src/Controller/Projet/Projet/ProjetController.php line 925

Open in your IDE?
  1. <?php
  2. namespace App\Controller\Projet\Projet;
  3. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  4. use Symfony\Component\HttpFoundation\Response;
  5. use App\Entity\Projet\Projet\Projet;
  6. use App\Entity\Projet\Projet\Fournisseur;
  7. use App\Entity\Projet\Projet\Projetmobile;
  8. use App\Entity\Projet\Projet\Imgprofilprojet;
  9. use App\Entity\Projet\Projet\Imgcouvertureprojet;
  10. use App\Form\Projet\Projet\ProjetType;
  11. use App\Form\Projet\Projet\ProjeteditType;
  12. use App\Entity\Produit\Produit\Produit;
  13. use App\Entity\Produit\Produit\Panier;
  14. use App\Entity\Produit\Produit\Produitpanier;
  15. use App\Entity\Produit\Produit\Coutlivraison;
  16. use App\Entity\Produit\Produit\Produitboutique;
  17. use App\Entity\Produit\Service\Ville;
  18. use App\Entity\Produit\Produit\Detailproduit;
  19. use App\Entity\Users\User\User;
  20. use Symfony\Component\HttpFoundation\File\UploadedFile;
  21. use App\Entity\Users\Annonce\Annonceaction;
  22. use Symfony\Component\HttpFoundation\Request;
  23. use App\Service\Servicetext\GeneralServicetext;
  24. use App\Entity\Projet\Projet\Typeprojet;
  25. use App\Entity\Users\User\Adminstruct;
  26. use App\Entity\Users\User\Suivre;
  27. use App\Entity\Produit\Service\Pays;
  28. use App\Entity\Projet\Projet\Visiteurprojet;
  29. use App\Entity\Projet\Tresorerie\Versementrecette;
  30. use App\Entity\Users\User\Commerciauxprojet;
  31. use App\Entity\Projet\Tresorerie\Operations;
  32. use App\Entity\Projet\Tresorerie\Projetinvest;
  33. use App\Twig\TwigExtensions;
  34. use Symfony\Component\DependencyInjection\ParameterBag\ParameterBagInterface;
  35. use App\Service\Projet\Projet\TypeprojetService;
  36. use App\Service\Produit\Service\ContinentService;
  37. use App\Service\Produit\Produit\ProduitService;
  38. use App\Service\Projet\Tresorerie\ProjetinvestService;
  39. use Symfony\Component\Validator\Validator\ValidatorInterface;
  40. class ProjetController extends AbstractController
  41. {
  42. private $params;
  43. private $typeprojetService;
  44. private $continentService;
  45. private $projetinvestService;
  46. public function __construct(ParameterBagInterface $paramsTypeprojetService $typeprojetServiceContinentService $continentServiceProduitService $produitServiceProjetinvestService $projetinvestService)
  47. {
  48.     $this->params $params;
  49.     $this->typeprojetService $typeprojetService;
  50.     $this->continentService $continentService;
  51.     $this->produitService $produitService;
  52.     $this->projetinvestService $projetinvestService;
  53. }
  54. public function nouveauprojet(GeneralServicetext $service)
  55. {
  56.     $oldprojet null;
  57.     $em $this->getDoctrine()->getManager();
  58.     if($this->getUser() != null)
  59.     {
  60.         $oldprojet $em->getRepository(Projet::class)
  61.                                 ->findOneBy(array('user'=>$this->getUser(),'inscriptionacheve'=>false));
  62.         if($oldprojet != null)
  63.         {
  64.         $this->get('session')->getFlashBag()->add('information','<span class="fa fa-frown-o"></span> Inscription de '.$oldprojet->getNom().' non achevée. Terminez maintenant!');
  65.         }
  66.     }
  67.     $top_projet $em->getRepository(Projet::class)
  68.                    ->topprojetsite(3);
  69.     foreach($top_projet as $projet)
  70.     {
  71.         $annonces $em->getRepository(Annonceaction::class)
  72.                       ->findBy(array('projet'=>$projet));
  73.         $projet->setNbannonce(count($annonces));
  74.         
  75.     }
  76.     return $this->render($service->getThemeDirectory().'/Projet/Projet/Projet/nouveauprojet.html.twig',
  77.     array('oldprojet'=>$oldprojet,'top_projet'=>$top_projet));
  78. }
  79. public function nomnouveauprojet(GeneralServicetext $service)
  80. {
  81.     $em $this->getDoctrine()->getManager();
  82.     if(isset($_POST['nom']) and isset($_POST['type']) and isset($_POST['tel']) and isset($_POST['email']) and isset($_POST['id']))
  83.     {
  84.         $produit $em->getRepository(Produit::class)
  85.                         ->find($_POST['id']);
  86.         $type $em->getRepository(Typeprojet::class)
  87.                    ->find($_POST['type']);
  88.         if($produit != null and $type != null)
  89.         {
  90.             $nom 'UPlace-'.$service->getPassword(5);
  91.             $password $service->getPassword(16);
  92.             $email $_POST['email'];
  93.             $tel $_POST['tel'];
  94.             
  95.             $username '';
  96.             if($email != '')
  97.             {
  98.                 $username $email;
  99.             }else if($tel != '')
  100.             {
  101.                 $username $tel;
  102.             }
  103.             
  104.             $olduser $em->getRepository(User::class)
  105.                           ->findOneBy(array('username'=>$username));
  106.             if($olduser == null or $this->getUser() != null)
  107.             {
  108.                 if($this->getUser() == null)
  109.                 {
  110.                     $user = new User($service);
  111.                     $user->setNom($nom);
  112.                     $user->setUsername($username);
  113.                     $user->setPassword($password);
  114.                     $user->setComplet(false);
  115.                     
  116.                     $user->setTel($tel);
  117.                     $em->persist($user);
  118.                     $em->flush();
  119.                     
  120.                     $this->get('session')->set('user_login_id'$user->getId());
  121.                 }else{
  122.                     if($produit->getUser() != null)
  123.                     {
  124.                         $user $produit->getUser();
  125.                     }else{
  126.                         $user $this->getUser();
  127.                     }
  128.                     if($user->getTel() == null and $tel != '')
  129.                     {
  130.                         $user->setTel($tel);
  131.                         $em->flush();
  132.                     }
  133.                 }
  134.                  
  135.                 
  136.                 $nomprojet $_POST['nom'];
  137.                 $projet = new Projet($service);
  138.                 $projet->setNom($nomprojet);
  139.                 $projet->setEmail($email);
  140.                 $projet->setTel($tel);
  141.                 $projet->setUser($user);
  142.                 $projet->setTypeprojet($type);
  143.                 $produit->setUser($user);
  144.                 $em->persist($projet);
  145.                 $em->flush();
  146.                 return $this->redirect($this->generateUrl('produit_produit_targue_boutique_produit',array('idprod'=>$produit->getId(), 'newbplace'=>'passs')));
  147.             }else{
  148.                 echo 1;
  149.                 exit;
  150.             }
  151.         }
  152.     }
  153.     
  154.     echo 0;
  155.     exit;
  156. }
  157. public function savecaracteristique(Produit $produit)
  158. {
  159.     $em $this->getDoctrine()->getManager();
  160.     if(isset($_POST['nom']) and isset($_POST['valeur']))
  161.     {
  162.         $nom $_POST['nom'];
  163.         $valeur $_POST['valeur'];
  164.     }else{
  165.         $nom '';
  166.         $valeur '';
  167.     }
  168.     
  169.     if($nom != '' and $valeur != '')
  170.     {
  171.         $caract = new Detailproduit();
  172.         $caract->setNom($nom);
  173.         $caract->setValeur($valeur);
  174.         $caract->setProduit($produit);
  175.         $em->persist($caract);
  176.         $em->flush();
  177.         return $this->redirect($this->generateUrl('projet_projet_adresse_binplace_nouveau_projet',
  178.         array('id'=>$produit->getId(), 'auth'=>'access')));
  179.     }else{
  180.         echo 0;
  181.         exit;
  182.     }
  183. }
  184. public function deletecaracteristique(Produit $produit)
  185. {
  186.     $em $this->getDoctrine()->getManager();
  187.     if(isset($_POST['idcaract']))
  188.     {
  189.         $idcaract $_POST['idcaract'];
  190.     }else{
  191.         $idcaract 0;
  192.     }
  193.     
  194.     if($idcaract 0)
  195.     {
  196.         $caract $em->getRepository(Detailproduit::class)
  197.                      ->find($idcaract);
  198.         if($caract != null)
  199.         {
  200.             $em->remove($caract);
  201.             $em->flush();
  202.             return $this->redirect($this->generateUrl('projet_projet_adresse_binplace_nouveau_projet',
  203.             array('id'=>$produit->getId(), 'auth'=>'access')));
  204.         }
  205.     }else{
  206.         echo 0;
  207.         exit;
  208.     }
  209. }
  210. public function deletepointlivraison(Produit $produit)
  211. {
  212.     $em $this->getDoctrine()->getManager();
  213.     if(isset($_POST['idcaract']))
  214.     {
  215.         $idcaract $_POST['idcaract'];
  216.     }else{
  217.         $idcaract 0;
  218.     }
  219.     
  220.     if($idcaract 0)
  221.     {
  222.         $caract $em->getRepository(Coutlivraison::class)
  223.                      ->find($idcaract);
  224.         if($caract != null)
  225.         {
  226.             $em->remove($caract);
  227.             $em->flush();
  228.             return $this->redirect($this->generateUrl('projet_projet_enregistrer_pays_projet_nouvel_binplace',array('id'=>$produit->getId())));
  229.         }
  230.     }else{
  231.         echo 0;
  232.         exit;
  233.     }
  234. }
  235. public function caracteristiqueproduit(Produit $produitGeneralServicetext $service$auth)
  236. {
  237.     $em $this->getDoctrine()->getManager();
  238.     if(isset($_POST['listean']))
  239.     {
  240.         $listean htmlspecialchars(trim($_POST['listean']));
  241.     }else{
  242.         $listean $auth;
  243.     }
  244.     
  245.     if($listean != '')
  246.     {
  247.         $addnew false;
  248.         if($listean != 'access')
  249.         {
  250.             $tab explode('-'$listean);
  251.             $lis_projet $em->getRepository(Projet::class)
  252.                              ->findBy(array('id'=>$tab));
  253.                              
  254.             foreach($lis_projet as $projet)
  255.             {
  256.                 $oldprodb $em->getRepository(Produitboutique::class)
  257.                               ->findOneBy(array('produit'=>$produit,'projet'=>$projet));
  258.                 if($oldprodb == null)
  259.                 {
  260.                     $prodb = new Produitboutique();
  261.                     $prodb->setProjet($projet);
  262.                     $prodb->setProduit($produit);
  263.                     $prodb->setNewprise($produit->getNewprise());
  264.                     $prodb->setUser($produit->getUser());
  265.                     $em->persist($prodb);
  266.                     $em->flush();
  267.                 }else{
  268.                     $oldprodb->setNewprise($produit->getNewprise());
  269.                     $oldprodb->setUser($produit->getUser());
  270.                     $em->flush();
  271.                 }
  272.                 $addnew true;
  273.             }
  274.         }
  275.         
  276.         if(isset($_POST['idproduitgros']))
  277.         {
  278.             if($produit->getProduitdetail() == true)
  279.             {
  280.                 $oldprodgros $em->getRepository(Produitboutique::class)
  281.                                   ->find($_POST['idproduitgros']);
  282.                 if($oldprodgros != null and $produit != $oldprodgros->getProduit())
  283.                 {
  284.                     $produit->setProduitgro($oldprodgros->getProduit());
  285.                     $em->flush();
  286.                 }
  287.             }else{
  288.                 $produit->setNbpiece($_POST['idproduitgros']);
  289.                 $em->flush();
  290.             }
  291.         }
  292.         
  293.         if($produit->getUser() != null and ($addnew == true or $listean == 'access'))
  294.         {
  295.             $liste_caract $em->getRepository(Detailproduit::class)
  296.                                ->findBy(array('produit'=>$produit), array('date'=>'asc'));
  297.                        
  298.             return $this->render($service->getThemeDirectory().'/Produit/Produit/Produit/caracteristiqueproduit.html.twig'
  299.             array('produit'=>$produit'liste_caract'=>$liste_caract));
  300.         }else{
  301.             echo 1;
  302.             exit;
  303.         }
  304.     }else{
  305.         echo 0;
  306.         exit;
  307.     }
  308. }
  309. public function pointsdevente(Produit $produitGeneralServicetext $service)
  310. {
  311.     $em $this->getDoctrine()->getManager();
  312.     if(isset($_POST['idboutique']) and isset($_POST['ville']) and isset($_POST['quartier']) and isset($_POST['cout']))
  313.     {
  314.         $projet $em->getRepository(Projet::class)
  315.                            ->find($_POST['idboutique']);
  316.         $produitboutique $em->getRepository(Produitboutique::class)
  317.                               ->findOneBy(array('projet'=>$projet,'produit'=>$produit));
  318.         if($produitboutique != null)
  319.         {
  320.             $ville $em->getRepository(Ville::class)
  321.                            ->myFindByName($_POST['ville']);
  322.                             
  323.             if($ville != null)
  324.             {
  325.                 $oldpoint $em->getRepository(Coutlivraison::class)
  326.                               ->findBy(array('ville'=>$ville'produitboutique'=>$produitboutique,'quartiertext'=>$_POST['quartier']));
  327.                 if($oldpoint == null)
  328.                 {
  329.                     $point = new Coutlivraison($service);
  330.                     $point->setMontant($_POST['cout']);
  331.                     $point->setQuartiertext($_POST['quartier']);
  332.                     $point->setUser($produit->getUser());
  333.                     $point->setVille($ville);
  334.                     $point->setProduitboutique($produitboutique);
  335.                     $em->persist($point);
  336.                     $em->flush();
  337.                 }
  338.             }else{
  339.                 $ville = new Ville($service);
  340.                 $ville->setNom($_POST['ville']);
  341.                 $ville->setUser($produit->getUser());
  342.                 $em->persist($ville);
  343.                 $em->flush();
  344.                 
  345.                 $point = new Coutlivraison($service);
  346.                 $point->setMontant($_POST['cout']);
  347.                 $point->setQuartiertext($_POST['quartier']);
  348.                 $point->setUser($produit->getUser());
  349.                 $point->setVille($ville);
  350.                 $point->setProduitboutique($produitboutique);
  351.                 $em->persist($point);
  352.                 $em->flush();
  353.             }
  354.         }
  355.     }
  356.     
  357.     $liste_point $em->getRepository(Coutlivraison::class)
  358.                        ->getPointDeVenteProduit($produit->getId(),1,500);
  359.     
  360.     $liste_projet = new \Doctrine\Common\Collections\ArrayCollection();
  361.     
  362.     if($this->getUser() != null)
  363.     {
  364.         
  365.         if($produit->getProduitdetail() == true)
  366.         {
  367.             $liste_projet $em->getRepository(Projet::class)
  368.                            ->findBy(array('user'=>$this->getUser(), 'boutiquemobile'=>1), array('nbpoint'=>'desc'));
  369.             
  370.             $adminstruct $em->getRepository(Adminstruct::class)
  371.                               ->findOneBy(array('user'=>$this->getUser()), array('date'=>'desc'),1);
  372.             if($adminstruct != null){
  373.                 $liste_projetmobile $em->getRepository(Projetmobile::class)
  374.                                          ->findBy(array('projet'=>$adminstruct->getProjet()), array('date'=>'desc'),1);
  375.                 foreach($liste_projetmobile as $projetmobile)
  376.                 {
  377.                     if($projetmobile->getMobile()->getBoutiquemobile() == true)
  378.                     {
  379.                         $liste_projet[] = $projetmobile->getMobile();
  380.                     }
  381.                 }
  382.             }
  383.         }else{
  384.             $liste_projet $em->getRepository(Projet::class)
  385.                                ->findBy(array('user'=>$this->getUser(), 'boutiquemobile'=>0), array('nbpoint'=>'desc'));
  386.                                
  387.             $adminstruct $em->getRepository(Adminstruct::class)
  388.                               ->findOneBy(array('user'=>$this->getUser()), array('date'=>'desc'),1);
  389.             if($adminstruct != null and $adminstruct->getProjet()->getBoutiquemobile() == false){
  390.                 
  391.                 $liste_projet[] = $adminstruct->getProjet();
  392.                 
  393.             }
  394.         }
  395.                 
  396.                 
  397.     }else{
  398.         if($produit->getUser() != null)
  399.         {
  400.             if($produit->getProduitdetail() == true)
  401.             {
  402.             $liste_projet $em->getRepository(Projet::class)
  403.                            ->findBy(array('user'=>$produit->getUser(), 'boutiquemobile'=>1), array('nbpoint'=>'desc'));
  404.             }else{
  405.             $liste_projet $em->getRepository(Projet::class)
  406.                            ->findBy(array('user'=>$produit->getUser(), 'boutiquemobile'=>0), array('nbpoint'=>'desc'));    
  407.             }
  408.         }
  409.     }
  410.             
  411.     return $this->render($service->getThemeDirectory().'/Produit/Produit/Produit/pointsdevente.html.twig'
  412.     array('produit'=>$produit'liste_point'=>$liste_point'liste_projet'=>$liste_projet));
  413. }
  414. public function accesbinplacename(Projet $projetGeneralServicetext $service)
  415. {
  416.     if($projet->getValide() == false)
  417.     {
  418.         if($this->getUser() == $projet->getUser())
  419.         {
  420.             return $this->redirect($this->generateUrl('projet_projet_ajouter_nouveau_projet_bin'));
  421.         }else{
  422.             return $this->redirect($this->generateUrl('users_annonce_actualite_accueil'));
  423.         }
  424.     }else{
  425.     return $this->render($service->getThemeDirectory().'/Projet/Projet/Projet/accesbinplacename.html.twig', array('projet'=>$projet));
  426.     }
  427. }
  428. public function changerprojetconnecter($page$projetconnecter)
  429. {
  430.     $em $this->getDoctrine()->getManager();
  431.     if($this->getUser() != null)
  432.     {
  433.         $this->getUser()->setProjetconnecter($projetconnecter);
  434.         $em->flush();
  435.     }
  436.     $projet $em->getRepository(Projet::class)
  437.                             ->find($page);
  438.     if($projet == null)
  439.     {
  440.         return $this->redirect($this->generateUrl('projet_projet_journal_nouvelles_annonces_desprojets'));
  441.     }else{
  442.         return $this->redirect($this->generateUrl('projet_projet_accueil_binplace_projet_name',array('binplace'=>$projet->getBinplace())));
  443.     }
  444. }
  445. public function quelquesabonneprojetuser(Projet $projetGeneralServicetext $service)
  446. {
  447.     $user $projet->getUser();
  448.     $em $this->getDoctrine()->getManager();
  449.     $liste_abonne $em->getRepository(Suivre::class)
  450.                        ->abonnementAndAbonne($user->getId());
  451.     $newcollection = new \Doctrine\Common\Collections\ArrayCollection();
  452.     if(count($liste_abonne) < 2)
  453.     {
  454.         $newcollection[] = $user;
  455.     }
  456.     $all_abonne = array();
  457.     $i 0;
  458.     foreach($liste_abonne as $abonne)
  459.     {
  460.         if(count($newcollection) < 2)
  461.         {
  462.             if($abonne->getDemande() != $user)
  463.             {
  464.                 $newcollection[] = $abonne->getDemande();
  465.                 if(!in_array($abonne->getDemande()->getId(),$all_abonne))
  466.                 {
  467.                     $all_abonne[$i] = $abonne->getDemande()->getId();
  468.                     $i++;
  469.                 }
  470.             }else{
  471.                 $newcollection[] = $abonne->getBoss();
  472.                 if(!in_array($abonne->getBoss()->getId(),$all_abonne))
  473.                 {
  474.                     $all_abonne[$i] = $abonne->getBoss()->getId();
  475.                     $i++;
  476.                 }
  477.             } 
  478.         }else{
  479.             if($abonne->getDemande() != $user)
  480.             {
  481.                 if(!in_array($abonne->getDemande()->getId(),$all_abonne))
  482.                 {
  483.                     $all_abonne[$i] = $abonne->getDemande()->getId();
  484.                     $i++;
  485.                 }
  486.             }else{
  487.                 if(!in_array($abonne->getBoss()->getId(),$all_abonne))
  488.                 {
  489.                     $all_abonne[$i] = $abonne->getBoss()->getId();
  490.                     $i++;
  491.                 }
  492.             }
  493.         }
  494.     }
  495.     $projet->setNbabonne(count($all_abonne));
  496.     $em->flush();
  497.     return $this->render($service->getThemeDirectory().'/Projet/Projet/Projet/quelquesabonneprojetuser.html.twig',
  498.     array('projet'=>$projet,'user'=>$user,'liste_abonne'=>$liste_abonne,'newcollection'=>$newcollection,'all_abonne'=>$all_abonne));
  499. }
  500. public function listeabonneprojetuser(Projet $projetGeneralServicetext $service)
  501. {
  502.     return $this->render($service->getThemeDirectory().'/Projet/Projet/Projet/listeabonneprojetuser.html.twig',
  503.     array('projet'=>$projet));
  504. }
  505. public function rechercheabonneprojetpage(Projet $projetGeneralServicetext $service$page)
  506. {
  507.     $user $projet->getUser();
  508.     $em $this->getDoctrine()->getManager();
  509.     $liste_abonne $em->getRepository(Suivre::class)
  510.                        ->rechercheabonneprojetpage($user->getId(),$page,6);
  511.     
  512.     $newcollection = new \Doctrine\Common\Collections\ArrayCollection();
  513.     $nombrepage ceil(count($liste_abonne)/6);
  514.     $user_connecter = array();
  515.     if($nombrepage == or $nombrepage == $page)
  516.     {
  517.     $newcollection[] = $user;
  518.         if($this->getUser() != null and $this->getUser() != $user)
  519.         {
  520.         $isconnect $em->getRepository(Suivre::class)
  521.                         ->userAsuitB($user->getId(),$this->getUser()->getId());
  522.         $isabonnement $em->getRepository(Suivre::class)
  523.                         ->userAsuitB($this->getUser()->getId(),$user->getId());
  524.             if($isconnect == true)
  525.             {
  526.                 $user->setIsabonne(true);
  527.             }else{
  528.                 $user->setIsabonne(false);
  529.             }
  530.             if($isabonnement == true)
  531.             {
  532.                 $user->setIsabonnement(true);
  533.             }else{
  534.                 $user->setIsabonnement(false);
  535.             }
  536.         }else{
  537.             $user->setIsabonne(false);
  538.             $user->setIsabonnement(false);
  539.         }
  540.     }
  541.     $i 0;
  542.     foreach($liste_abonne as $abonne)
  543.     {
  544.         if($this->getUser() != null and $abonne->getDemande() != $user)
  545.         {
  546.         $isconnect $em->getRepository(Suivre::class)
  547.                         ->userAsuitB($abonne->getDemande()->getId(),$this->getUser()->getId());
  548.                         
  549.         $isabonnement $em->getRepository(Suivre::class)
  550.                         ->userAsuitB($this->getUser()->getId(),$abonne->getDemande()->getId());
  551.                         
  552.             if($isconnect == true)
  553.             {
  554.                 $abonne->getDemande()->setIsabonne(true);
  555.             }else{
  556.                 $abonne->getDemande()->setIsabonne(false);
  557.             }
  558.             
  559.             if($isabonnement == true)
  560.             {
  561.                 $abonne->getDemande()->setIsabonnement(true);
  562.             }else{
  563.                 $abonne->getDemande()->setIsabonnement(false);
  564.             }
  565.             if(!in_array($abonne->getDemande()->getId(),$user_connecter))
  566.             {
  567.                 $newcollection[] = $abonne->getDemande();
  568.                 $user_connecter[$i] = $abonne->getDemande()->getId();
  569.                 $i++;
  570.             }
  571.             
  572.         }else{
  573.             if($this->getUser() != null and $abonne->getBoss() != $user)
  574.             {
  575.                 $isconnect $em->getRepository(Suivre::class)
  576.                                 ->userAsuitB($abonne->getBoss()->getId(),$this->getUser()->getId());
  577.                                 
  578.                 $isabonnement $em->getRepository(Suivre::class)
  579.                                 ->userAsuitB($this->getUser()->getId(),$abonne->getBoss()->getId());
  580.                                 
  581.                     if($isconnect == true)
  582.                     {
  583.                         $abonne->getBoss()->setIsabonne(true);
  584.                     }else{
  585.                         $abonne->getBoss()->setIsabonne(false);
  586.                     }
  587.                     
  588.                     if($isabonnement == true)
  589.                     {
  590.                         $abonne->getBoss()->setIsabonnement(true);
  591.                     }else{
  592.                         $abonne->getBoss()->setIsabonnement(false);
  593.                     }
  594.                     if(!in_array($abonne->getBoss()->getId(),$user_connecter))
  595.                     {
  596.                     $newcollection[] = $abonne->getBoss();
  597.                     $user_connecter[$i] = $abonne->getBoss()->getId();
  598.                     $i++;
  599.                     }
  600.             }else{
  601.                 if($abonne->getDemande() != $user)
  602.                 {
  603.                     $abonne->getDemande()->setIsabonne(false);
  604.                     $abonne->getDemande()->setIsabonnement(false);
  605.                     if(!in_array($abonne->getDemande()->getId(),$user_connecter))
  606.                     {
  607.                     $newcollection[] = $abonne->getDemande();
  608.                     $user_connecter[$i] = $abonne->getDemande()->getId();
  609.                     $i++;
  610.                     }
  611.                 }else{
  612.                     $abonne->getBoss()->setIsabonne(false);
  613.                     $abonne->getBoss()->setIsabonnement(false);
  614.                     if(!in_array($abonne->getBoss()->getId(),$user_connecter))
  615.                     {
  616.                     $newcollection[] = $abonne->getBoss();
  617.                     $user_connecter[$i] = $abonne->getBoss()->getId();
  618.                     $i++;
  619.                     }
  620.                 }
  621.             }
  622.         }
  623.     }
  624.     return $this->render($service->getThemeDirectory().'/Projet/Projet/Projet/rechercheabonneprojetpage.html.twig',
  625.     array('user'=>$user,'liste_abonne'=>$newcollection,'nombrepage'=>$nombrepage,'page'=>$page,'projet'=>$projet));
  626. }
  627. public function contactbinplace(Projet $projetGeneralServicetext $service)
  628. {
  629.     return $this->render($service->getThemeDirectory().'/Projet/Projet/Projet/contactbinplace.html.twig',
  630.     array('projet'=>$projet));
  631. }
  632. public function enregistrementsiteweb(Projet $projet)
  633. {
  634.     $em $this->getDoctrine()->getManager();
  635.     if(isset($_POST['donnee']))
  636.     {
  637.         $donnee trim(htmlspecialchars($_POST['donnee']));
  638.     }else{
  639.         $donnee '';
  640.     }
  641.     if($this->getUser() == $projet->getUser())
  642.     {
  643.         if($donnee != '')
  644.         {
  645.             $projet->setSiteweb($donnee);
  646.             $em->flush();
  647.         }
  648.         
  649.         $liste_projet $em->getRepository(Projet::class)
  650.                      ->villeprojetpays($projet->getPays()->getId());
  651.         $tab = array();
  652.         foreach($liste_projet as $propat){
  653.             if($propat['ville'] != null)
  654.             {
  655.             $d = array();
  656.             $d['drapeau'] = $propat['id'];
  657.             $d['nom'] = $propat['ville'];
  658.             $tab[] = $d;
  659.             }
  660.         }
  661.         return new Response(json_encode($tab));
  662.     }else{
  663.     echo 0;
  664.     exit;
  665.     }
  666. }
  667. public function updateville(Projet $projet)
  668. {
  669.     $em $this->getDoctrine()->getManager();
  670.     if(isset($_POST['ville']))
  671.     {
  672.         $ville trim(htmlspecialchars($_POST['ville']));
  673.     }else{
  674.         $ville '';
  675.     }
  676.     if($this->getUser() == $projet->getUser())
  677.     {
  678.         if($ville != '')
  679.         {
  680.             $projet->setVille($ville);
  681.             $em->flush();
  682.         }
  683.         
  684.         $liste_projet $em->getRepository(Projet::class)
  685.                      ->sloganbinplace();
  686.         $tab = array();
  687.         foreach($liste_projet as $prolog){
  688.             if($prolog->getSlogan() != null and $prolog->getSlogan() != "")
  689.             {
  690.             $d = array();
  691.             if($prolog->getImgprofilprojet() != null)
  692.             {
  693.             $d['drapeau'] = $prolog->getImgprofilprojet()->getWebpath();
  694.             }else{
  695.             $d['drapeau'] = 'images/icons/avatarprojet.jpg';
  696.             }
  697.             $d['nom'] = $prolog->getSlogan();
  698.             $tab[] = $d;
  699.             }
  700.         }
  701.         return new Response(json_encode($tab));
  702.     }else{
  703.     echo 0;
  704.     exit;
  705.     }
  706. }
  707. public function updateslogan(Projet $projet)
  708. {
  709.     $em $this->getDoctrine()->getManager();
  710.     if(isset($_POST['slogan']))
  711.     {
  712.         $slogan trim(htmlspecialchars($_POST['slogan']));
  713.     }else{
  714.         $slogan '';
  715.     }
  716.     if($this->getUser() == $projet->getUser())
  717.     {
  718.         if($slogan != '')
  719.         {
  720.             $projet->setSlogan($slogan);
  721.             $em->flush();
  722.         }
  723.         echo $projet->getNom();
  724.         exit;
  725.     }else{
  726.     echo 0;
  727.     exit;
  728.     }
  729. }
  730. public function updatereseausociaux(Projet $projet)
  731. {
  732.     $em $this->getDoctrine()->getManager();
  733.     if(isset($_POST['facebook']))
  734.     {
  735.         $facebook trim(htmlspecialchars($_POST['facebook']));
  736.     }else{
  737.         $facebook '';
  738.     }
  739.     if(isset($_POST['twitter']))
  740.     {
  741.         $twitter trim(htmlspecialchars($_POST['twitter']));
  742.     }else{
  743.         $twitter '';
  744.     }
  745.     if(isset($_POST['google']))
  746.     {
  747.         $google trim(htmlspecialchars($_POST['google']));
  748.     }else{
  749.         $google '';
  750.     }
  751.     
  752.     if($this->getUser() == $projet->getUser())
  753.     {
  754.         if($facebook != '')
  755.         {
  756.             $projet->setFacebook($facebook);
  757.             $em->flush();
  758.         }
  759.         if($twitter != '')
  760.         {
  761.             $projet->setTwitter($twitter);
  762.             $em->flush();
  763.         }
  764.         if($google != '')
  765.         {
  766.             $projet->setGoogle($google);
  767.             $em->flush();
  768.         }
  769.         echo $projet->getNom();
  770.         exit;
  771.     }else{
  772.     echo 0;
  773.     exit;
  774.     }
  775. }
  776. public function updatelastreseau(Projet $projet)
  777. {
  778.     $em $this->getDoctrine()->getManager();
  779.     if(isset($_POST['linkedin']))
  780.     {
  781.         $linkedin trim(htmlspecialchars($_POST['linkedin']));
  782.     }else{
  783.         $linkedin '';
  784.     }
  785.     
  786.     if($this->getUser() == $projet->getUser())
  787.     {
  788.         if($linkedin != '')
  789.         {
  790.             $projet->setLinkedin($linkedin);
  791.             $em->flush();
  792.         }
  793.     }
  794.     $liste_pays $em->getRepository(Pays::class)
  795.                      ->findAll();
  796.     $tab = array();
  797.     foreach($liste_pays as $pays){
  798.         $d = array();
  799.         if($pays->getDrapeau() != null)
  800.         {
  801.         $d['drapeau'] = $pays->getDrapeau()->getWebpath();
  802.         }else{
  803.         $d['drapeau'] = 'images/icons/avatarprojet.jpg';
  804.         }
  805.         $d['nom'] = $pays->getCode();
  806.         $tab[] = $d;
  807.     }
  808.     return new Response(json_encode($tab));
  809. }
  810. public function updatenumerotel(Projet $projet)
  811. {
  812.     $em $this->getDoctrine()->getManager();
  813.     if(isset($_POST['telephone']))
  814.     {
  815.         $telephone trim(htmlspecialchars($_POST['telephone']));
  816.     }else{
  817.         $telephone '';
  818.     }
  819.     if(isset($_POST['code']))
  820.     {
  821.         $code trim(htmlspecialchars($_POST['code']));
  822.     }else{
  823.         $code '';
  824.     }
  825.     if($code == '')
  826.     {
  827.         $code $projet->getPays()->getCode();
  828.     }
  829.     if($this->getUser() == $projet->getUser())
  830.     {
  831.         if($telephone != '' and $code != '')
  832.         {
  833.             if(isset($_POST['publictel']) and $_POST['publictel'] == 1)
  834.             {
  835.                 $projet->setTelpublic(true);
  836.             }else{
  837.                 $projet->setTelpublic(false);
  838.             }
  839.             $telephone $code .' '.$telephone;
  840.             $projet->setTel($telephone);
  841.             $em->flush();
  842.         }
  843.         echo $projet->getNom();
  844.         exit;
  845.     }
  846.     echo 0;
  847.     exit;
  848. }
  849. public function allnouveauprojet(GeneralServicetext $service)
  850. {
  851.     return $this->render($service->getThemeDirectory().'/Projet/Projet/Projet/allnouveauprojet.html.twig');
  852. }
  853. public function searchallnouveauprojet(GeneralServicetext $service$page)
  854. {
  855.     $em $this->getDoctrine()->getManager();
  856.     $tabprojetvisit = array();
  857.     $i 0;
  858.     if($this->getUser() != null)
  859.     {
  860.         $projet_visit $em->getRepository(Visiteurprojet::class)
  861.                            ->findBy(array('user'=>$this->getUser()));
  862.         foreach($projet_visit as $visit)
  863.         {
  864.             $tabprojetvisit[$i] = $visit->getProjet()->getId();
  865.             $i++;
  866.         }
  867.         $liste_projet $em->getRepository(Projet::class)
  868.                            ->searchallnouveauprojet($tabprojetvisit,$page,6);    
  869.     }else{
  870.         $liste_projet $em->getRepository(Projet::class)
  871.                            ->searchallnouveauprojet(array(0),$page,6);
  872.     }
  873.     $nombrepage ceil(count($liste_projet)/6);
  874.     foreach($liste_projet as $projet)
  875.     {
  876.         $annonces $em->getRepository(Annonceaction::class)
  877.                       ->findBy(array('projet'=>$projet));
  878.         $projet->setNbannonce(count($annonces));
  879.         
  880.     }
  881.     return $this->render($service->getThemeDirectory().'/Projet/Projet/Projet/searchallnouveauprojet.html.twig'
  882.     array('liste_projet'=>$liste_projet,'nombrepage'=>$nombrepage,'page'=>$page));
  883. }
  884. public function brandingproje(GeneralServicetext $service)
  885. {
  886.     $em $this->getDoctrine()->getManager();
  887.     $liste_projet $em->getRepository(Projet::class)
  888.                        ->findBy(array('valide'=>true,'profilupload'=>true),array('nbvisit'=>'desc'),1000);
  889.     $liste_projet $service->selectEntities($liste_projet2);
  890.     return $this->render($service->getThemeDirectory().'/Projet/Projet/Projet/brandingprojet.html.twig', array('projet_aleatoires'=>$liste_projet));
  891. }
  892. public function mplaceslocal($idtype$idpays$idregion$page$addGeneralServicetext $service)
  893. {
  894.     $em $this->getDoctrine()->getManager();
  895.     
  896.     $typeprojet $em->getRepository(Typeprojet::class)
  897.                        ->find($idtype);
  898.     $pays $em->getRepository(Pays::class)
  899.                        ->find($idpays);
  900.     $ville $em->getRepository(Ville::class)
  901.                        ->find($idregion);
  902.     if($idtype != 0)
  903.     {
  904.         if($idpays != 0)
  905.         {
  906.             if($idregion != 0)
  907.             {
  908.                 $liste_projet $em->getRepository(Projet::class)
  909.                           ->findProjetTypePaysRegion($idtype$idpays$idregion$page15);
  910.             }else{
  911.                 $liste_projet $em->getRepository(Projet::class)
  912.                           ->findProjetTypePays($idtype$idpays,  $page15);
  913.             }
  914.         }else{
  915.             if($idregion != 0)
  916.             {
  917.                 $liste_projet $em->getRepository(Projet::class)
  918.                           ->findProjetTypeRegion($idtype$idregion$page15);
  919.             }else{
  920.                 $liste_projet $em->getRepository(Projet::class)
  921.                           ->findProjetType($idtype$page15);
  922.             }
  923.         }
  924.     }else{
  925.         if($idpays != 0)
  926.         {
  927.             if($idregion != 0)
  928.             {
  929.                 $liste_projet $em->getRepository(Projet::class)
  930.                                    ->findProjetPaysRegion($idpays$idregion$page15);
  931.             }else{
  932.                 $liste_projet $em->getRepository(Projet::class)
  933.                                    ->findProjetPays($idpays$page15);
  934.             }
  935.         }else{
  936.             if($idregion != 0)
  937.             {
  938.                 $liste_projet $em->getRepository(Projet::class)
  939.                                    ->findProjetRegion($idregion$page15);
  940.             }else{
  941.                 $liste_projet $em->getRepository(Projet::class)
  942.                                    ->findAllProjet($page15);
  943.             }
  944.         }
  945.     }
  946.     
  947.     $liste_pays $em->getRepository(Pays::class)
  948.                        ->myfindAll();
  949.     $liste_type $em->getRepository(Typeprojet::class)
  950.                        ->myFindAll();
  951.                        
  952.     return $this->render($service->getThemeDirectory().'/Projet/Projet/Projet/mplaceslocal.html.twig',
  953.     array('liste_projet'=>$liste_projet,'page'=>$page,'nombrepage' => ceil(count($liste_projet)/15),'typeprojet'=>$typeprojet,
  954.     'pays'=>$pays'ville'=>$ville'liste_pays'=>$liste_pays'liste_type'=>$liste_type'add'=>$add));
  955. }
  956. public function addnewmarketplace(GeneralServicetext $serviceRequest $request)
  957. {
  958.     $em $this->getDoctrine()->getManager();
  959.     $projet = new Projet($service);
  960.     $form $this->createForm(ProjeteditType::class, $projet);
  961.     if($request->getMethod() == 'POST' and $this->getUser() != null)
  962.     {
  963.         $form->handleRequest($request);
  964.         
  965.         $projet->setUser($this->getUser());
  966.         $projet->setServicetext($service);
  967.         
  968.         if ($form->isValid()){
  969.             $em->persist($projet);
  970.             $em->flush();
  971.             return $this->redirect($this->generateUrl('projet_projet_accueil_binplace_projet_name', array('id'=>$projet->getId())));
  972.         }else{
  973.             $hjgh $nb;
  974.             $this->get('session')->getFlashBag()->add('information','Données invalides.');
  975.         }
  976.     }
  977.     return $this->render($service->getThemeDirectory().'/Produit/Produit/Produitmarket/addnewmarketplace.html.twig'
  978.     array('form'=>$form->createView()));
  979. }
  980. public function validationboutique(Projet $projetGeneralServicetext $service)
  981. {
  982.     $em $this->getDoctrine()->getManager();
  983.     if($projet->getValide() == true)
  984.     {
  985.         $projet->setValide(false);
  986.     }else{
  987.         $projet->setValide(true);
  988.     }
  989.     $em->flush();
  990.     return $this->redirect($this->generateUrl('users_adminuser_liste_projet_type'
  991.     array('id'=>$projet->getTypeprojet()->Id())));
  992. }
  993. public function commandesboutique(Projet $projet$pageGeneralServicetext $service)
  994. {
  995.     $em $this->getDoctrine()->getManager();
  996.     if(isset($_POST['annee']) and isset($_POST['mois']) and isset($_POST['jour']))
  997.     {
  998.         $annee $_POST['annee'];
  999.         $mois $_POST['mois'];
  1000.         $jour $_POST['jour'];
  1001.     }else{
  1002.         $annee date('Y');
  1003.         $mois date('m');
  1004.         $jour 0;
  1005.     }
  1006.     
  1007.     if($jour == 0)//Sélection de toutes les ventes de la boutique !
  1008.     {
  1009.         $liste_panier $em->getRepository(Panier::class)
  1010.                            ->findAllCommandeBoutique($projet->getId(), $page50000,$annee.'-'.$mois.'-01',$annee.'-'.$mois.'-31');
  1011.     }else{
  1012.         $liste_panier $em->getRepository(Panier::class)
  1013.                            ->findAllCommandeBoutique($projet->getId(), $page50000,$annee.'-'.$mois.'-'.$jour,$annee.'-'.$mois.'-'.$jour);
  1014.     }
  1015.            
  1016.     return $this->render($service->getThemeDirectory().'/Projet/Projet/Projet/commandesboutique.html.twig',
  1017.     array('liste_panier'=>$liste_panier,'page'=>$page,'projet'=>$projet,'nombrepage' => ceil(count($liste_panier)/50000),
  1018.     'currentmois'=>$mois,'currentannee'=>$annee,'currentjour'=>$jour));
  1019. }
  1020. public function commandesbm(Projet $projet$pageGeneralServicetext $service)
  1021. {
  1022.     $em $this->getDoctrine()->getManager();
  1023.     
  1024.     if(isset($_POST['annee']) and isset($_POST['mois']) and isset($_POST['jour']))
  1025.     {
  1026.         $annee $_POST['annee'];
  1027.         $mois $_POST['mois'];
  1028.         $jour $_POST['jour'];
  1029.     }else{
  1030.         $annee date('Y');
  1031.         $mois date('m');
  1032.         $jour 0;
  1033.     }
  1034.     
  1035.     if($jour == 0)
  1036.     {
  1037.         $liste_versement $em->getRepository(Versementrecette::class)
  1038.                            ->findAllRecetteVerse($projet->getId(), $page50000,$annee.'-'.$mois.'-01',$annee.'-'.$mois.'-31');
  1039.     }else{
  1040.         $liste_versement $em->getRepository(Versementrecette::class)
  1041.                            ->findAllRecetteVerse($projet->getId(), $page50000,$annee.'-'.$mois.'-'.$jour,$annee.'-'.$mois.'-'.$jour);
  1042.     }
  1043.     
  1044.     return $this->render($service->getThemeDirectory().'/Projet/Projet/Projet/commandesbm.html.twig',
  1045.     array('liste_versement'=>$liste_versement,'page'=>$page,'projet'=>$projet,'nombrepage' => ceil(count($liste_versement)/50000),
  1046.     'currentmois'=>$mois,'currentannee'=>$annee,'currentjour'=>$jour));
  1047. }
  1048.  
  1049. public function modifiermplace(Projet $projetGeneralServicetext $serviceRequest $requestTwigExtensions $extensionsValidatorInterface $validator)
  1050. {
  1051.     $em $this->getDoctrine()->getManager();
  1052.     if($this->getUser() != null and  ($extensions->isGrantedStruct($this->getUser(), $projet'ROLE_ADMIN_MAGASIN') or $projet->getUser() == $this->getUser()))
  1053.     {
  1054.         $formpro $this->createForm(ProjetType::class, $projet);
  1055.         if($request->getMethod() == 'POST')
  1056.         {
  1057.             $formpro->handleRequest($request);
  1058.             $projet->setUser($this->getUser());
  1059.             $projet->setServicetext($service);
  1060.             
  1061.             $liste_erreurs $validator->validate($projet);
  1062.             if(count($liste_erreurs) > 0) {
  1063.                 $this->get('session')->getFlashBag()->add('information','Données invalides.');
  1064.             }else{
  1065.                 $em->flush();
  1066.                 $this->get('session')->getFlashBag()->add('information','Modification effectuée avec succès !!!');
  1067.                 return $this->redirect($this->generateUrl('projet_projet_structure_modifier_courant_mplace', array('id'=>$projet->getId())));
  1068.             }
  1069.         }
  1070.         
  1071.         $liste_admin $em->getRepository(Adminstruct::class)
  1072.                             ->findBy(array('projet'=>$projet));
  1073.     
  1074.         return $this->render($service->getThemeDirectory().'/Projet/Projet/Projet/modifiermplace.html.twig'
  1075.         array('formpro'=>$formpro->createView(),'projet'=>$projet,'liste_admin'=>$liste_admin));    
  1076.     }else{
  1077.         $this->get('session')->getFlashBag()->add('information','Vous n\'avez pas accès à cette information !!!');
  1078.         return $this->redirect($this->generateUrl('projet_projet_accueil_binplace_projet_name', array('id'=>$projet->getId())));
  1079.     }
  1080. }
  1081. public function uploadelogo(Projet $projetGeneralServicetext $serviceRequest $request)
  1082. {
  1083.     $em $this->getDoctrine()->getManager();
  1084.     if($request->getMethod() == 'POST')
  1085.     {
  1086.         $extension '';
  1087.         if(isset($_FILES['imgprofilprojet']) and $_FILES['imgprofilprojet']['error'] == 0)
  1088.         {
  1089.             $uploadedFile = new UploadedFile($_FILES['imgprofilprojet']['tmp_name'],$_FILES['imgprofilprojet']['name'],strtolower(substr(strrchr($_FILES['imgprofilprojet']['name'], '.'),1)),$_FILES['imgprofilprojet']['size']);
  1090.             $extension strtolower($uploadedFile->getClientOriginalExtension());
  1091.             if(in_array($extension, array('gif','jpg','png','bmp','jpeg')))
  1092.             {
  1093.                 $oldprofil $em->getRepository(Imgprofilprojet::class)
  1094.                                 ->FindOneBy(array('projet'=>$projet));
  1095.                 if($oldprofil == null)
  1096.                 {
  1097.                     $profil = new Imgprofilprojet($service);
  1098.                     $profil->setId($projet->getId());
  1099.                     $profil->setProjet($projet);
  1100.                     $profil->setFile($uploadedFile);
  1101.                     $em->persist($profil);
  1102.                     $em->flush();
  1103.                 }else{
  1104.                     $em->remove($oldprofil);
  1105.                     $em->flush();
  1106.                     
  1107.                     $profil = new Imgprofilprojet($service);
  1108.                     $profil->setId($projet->getId());
  1109.                     $profil->setProjet($projet);
  1110.                     $profil->setFile($uploadedFile);
  1111.                     $em->persist($profil);
  1112.                     $em->flush();
  1113.                 }
  1114.             }
  1115.         }
  1116.     }
  1117.     return $this->redirect($this->generateUrl('projet_projet_structure_modifier_courant_mplace', array('id'=>$projet->getId())));
  1118. }
  1119. public function uploadcouverture(Projet $projetGeneralServicetext $serviceRequest $request)
  1120. {
  1121.     $em $this->getDoctrine()->getManager();
  1122.     $request $this->getRequest();
  1123.     if($request->getMethod() == 'POST')
  1124.     {
  1125.         $extension '';
  1126.         if(isset($_FILES['imgcouvertureprojet']) and $_FILES['imgcouvertureprojet']['error'] == 0)
  1127.         {
  1128.             $uploadedFile = new UploadedFile($_FILES['imgcouvertureprojet']['tmp_name'],$_FILES['imgcouvertureprojet']['name'],strtolower(substr(strrchr($_FILES['imgcouvertureprojet']['name'], '.'),1)),$_FILES['imgcouvertureprojet']['size']);
  1129.             $extension strtolower($uploadedFile->getClientOriginalExtension());
  1130.             if(in_array($extension, array('gif','jpg','png','bmp','jpeg')))
  1131.             {
  1132.                 $oldprofil $em->getRepository(Imgcouvertureprojet::class)
  1133.                                 ->FindOneBy(array('projet'=>$projet));
  1134.                 if($oldprofil == null)
  1135.                 {
  1136.                     $profil = new imgcouvertureprojet($service);
  1137.                     $profil->setId($projet->getId());
  1138.                     $profil->setProjet($projet);
  1139.                     $profil->setFile($uploadedFile);
  1140.                     
  1141.                     $em->persist($profil);
  1142.                     $em->flush();
  1143.                 }else{
  1144.                     $em->remove($oldprofil);
  1145.                     $em->flush();
  1146.                     
  1147.                     $profil = new imgcouvertureprojet($service);
  1148.                     $profil->setId($projet->getId());
  1149.                     $profil->setProjet($projet);
  1150.                     $profil->setFile($uploadedFile);
  1151.                     $em->persist($profil);
  1152.                     $em->flush();
  1153.                 }
  1154.             }
  1155.         }
  1156.     }
  1157.     return $this->redirect($this->generateUrl('projet_projet_structure_modifier_courant_mplace', array('id'=>$projet->getId())));
  1158. }
  1159. public function mediasociaux(Projet $projet$positionGeneralServicetext $serviceRequest $request)
  1160. {
  1161.     $em $this->getDoctrine()->getManager();
  1162.     if($position == 0)
  1163.     {
  1164.         if(isset($_POST['facebook']) and $service->siteweb($_POST['facebook']))
  1165.         {
  1166.             $projet->setFacebook($_POST['facebook']);
  1167.         }
  1168.         if(isset($_POST['twitter']) and $service->siteweb($_POST['twitter']))
  1169.         {
  1170.             $projet->setTwitter($_POST['twitter']);
  1171.         }
  1172.         if(isset($_POST['linkedin']) and $service->siteweb($_POST['linkedin']))
  1173.         {
  1174.             $projet->setLinkedin($_POST['linkedin']);
  1175.         }
  1176.         if(isset($_POST['youtube']) and $service->siteweb($_POST['youtube']))
  1177.         {
  1178.             $projet->setGoogle($_POST['youtube']);
  1179.         }
  1180.     }else{
  1181.         if(isset($_POST['tel']) and $service->telephone($_POST['tel']))
  1182.         {
  1183.             $projet->setTel($_POST['tel']);
  1184.         }
  1185.         if(isset($_POST['telpublic']))
  1186.         {
  1187.             if($_POST['telpublic'] == true or $_POST['telpublic'] == "on")
  1188.             {
  1189.                 $projet->setTelpublic(true);
  1190.             }else{
  1191.                 $projet->setTelpublic(false);
  1192.             }
  1193.         }
  1194.         if(isset($_POST['email']) and $service->email($_POST['email']))
  1195.         {
  1196.             $projet->setEmail($_POST['email']);
  1197.         }
  1198.         if(isset($_POST['siteweb']) and $service->siteweb($_POST['siteweb']))
  1199.         {
  1200.             $projet->setSiteweb($_POST['siteweb']);
  1201.         }
  1202.     }
  1203.     $em->flush();
  1204.     return $this->redirect($this->generateUrl('projet_projet_structure_modifier_courant_mplace', array('id'=>$projet->getId())));
  1205. }
  1206. public function formaddnewprojet(GeneralServicetext $service)
  1207. {
  1208.     $em $this->getDoctrine()->getManager();
  1209.     $type_projet $em->getRepository(Typeprojet::class)
  1210.                       ->myFindAll();
  1211.     return $this->render($service->getThemeDirectory().'/Projet/Projet/Projet/formaddnewprojet.html.twig'
  1212.     array('type_projet'=>$type_projet));
  1213. }
  1214. public function newmarketplace(GeneralServicetext $service)
  1215. {
  1216.     $em $this->getDoctrine()->getManager();
  1217.     if(isset($_POST['nom']) and isset($_POST['type']) and isset($_POST['tel']) and isset($_POST['email']))
  1218.     {
  1219.         $type $em->getRepository(Typeprojet::class)
  1220.                    ->find($_POST['type']);
  1221.         if($type != null)
  1222.         {
  1223.             $nom 'UPlace-'.$service->getPassword(5);
  1224.             $password $service->getPassword(16);
  1225.             $email $_POST['email'];
  1226.             $tel $_POST['tel'];
  1227.             
  1228.             $username '';
  1229.             if($email != '')
  1230.             {
  1231.                 $username $email;
  1232.             }else if($tel != '')
  1233.             {
  1234.                 $username $tel;
  1235.             }
  1236.             
  1237.             $olduser $em->getRepository(User::class)
  1238.                           ->findOneBy(array('username'=>$username));
  1239.             if($olduser == null or $this->getUser() != null)
  1240.             {
  1241.                 if($this->getUser() == null)
  1242.                 {
  1243.                     $user = new User($service);
  1244.                     $user->setNom($nom);
  1245.                     $user->setUsername($username);
  1246.                     $user->setPassword($password);
  1247.                     $user->setComplet(false);
  1248.                     $user->setTel($tel);
  1249.                     $em->persist($user);
  1250.                     $em->flush();
  1251.                     
  1252.                     $this->get('session')->set('user_login_id'$user->getId());
  1253.                     
  1254.                 }else{
  1255.                     $user $this->getUser();
  1256.                     if($user->getTel() == null and $tel != '')
  1257.                     {
  1258.                         $user->setTel($tel);
  1259.                         $em->flush();
  1260.                     }
  1261.                 }
  1262.                 
  1263.                 $nomprojet $_POST['nom'];
  1264.                 $projet = new Projet($service);
  1265.                 $projet->setNom($nomprojet);
  1266.                 $projet->setEmail($email);
  1267.                 $projet->setTel($tel);
  1268.                 $projet->setUser($user);
  1269.                 $projet->setTypeprojet($type);
  1270.                 $em->persist($projet);
  1271.                 $em->flush();
  1272.                 
  1273.                 echo $this->generateUrl('projet_projet_accueil_binplace_projet_name', array('id'=>$projet->getId()));
  1274.                 exit;
  1275.             }else{
  1276.                 echo -1;
  1277.                 exit;
  1278.             }
  1279.         }
  1280.     }
  1281.     
  1282.     echo 0;
  1283.     exit;
  1284. }
  1285. public function mobilesmplace(Projet $projetGeneralServicetext $service)
  1286. {
  1287.     $em $this->getDoctrine()->getManager();
  1288.     $projet_mobile $em->getRepository(Projetmobile::class)
  1289.                                   ->findBy(array('projet'=>$projet), array('date'=>'asc'));
  1290.                                                
  1291.     return $this->render($service->getThemeDirectory().'/Projet/Projet/Projet/mobilesmplace.html.twig'
  1292.     array('projet'=>$projet'projet_mobile'=>$projet_mobile));
  1293. }
  1294. public function commerciauxmplace(Projet $projetGeneralServicetext $service)
  1295. {
  1296.     $em $this->getDoctrine()->getManager();
  1297.     $liste_commercial $em->getRepository(Commerciauxprojet::class)
  1298.                            ->findBy(array('projet'=>$projet,'client'=>0), array('date'=>'asc'));
  1299.                                   
  1300.     return $this->render($service->getThemeDirectory().'/Projet/Projet/Projet/commerciauxmplace.html.twig'
  1301.     array('projet'=>$projet'liste_commercial'=>$liste_commercial));
  1302. }
  1303. public function clientsmplace(Projet $projetGeneralServicetext $service)
  1304. {
  1305.     $em $this->getDoctrine()->getManager();
  1306.     $liste_client $em->getRepository(Commerciauxprojet::class)
  1307.                                   ->findBy(array('projet'=>$projet,'client'=>1), array('date'=>'asc'));
  1308.                                   
  1309.     return $this->render($service->getThemeDirectory().'/Projet/Projet/Projet/clientsmplace.html.twig'
  1310.     array('projet'=>$projet'liste_client'=>$liste_client));
  1311. }
  1312. public function extensionmplace(Projet $projetGeneralServicetext $service)
  1313. {
  1314.     $em $this->getDoctrine()->getManager();
  1315.               
  1316.     return $this->render($service->getThemeDirectory().'/Projet/Projet/Projet/extensionmplace.html.twig'
  1317.     array('projet'=>$projet));
  1318. }
  1319. public function ajoutboutiquemob(Projet $projetGeneralServicetext $service)
  1320. {
  1321.     $em $this->getDoctrine()->getManager();
  1322.     $type_projet $em->getRepository(Typeprojet::class)
  1323.                               ->myFindMobile();
  1324.     
  1325.     if(isset($_POST['nom_boutique']) and isset($_POST['type_boutique']) and isset($_POST['tel_boutique']) and isset($_POST['email_boutique']) and isset($_POST['username_livreur']))
  1326.     {
  1327.         $type $em->getRepository(Typeprojet::class)
  1328.                    ->find($_POST['type_boutique']);
  1329.         
  1330.         $livreur $em->getRepository(User::class)
  1331.                       ->findOneBy(array('username'=>$_POST['username_livreur']));
  1332.         if($type != null and $livreur != null)
  1333.         {
  1334.             $oldprojetmobile $em->getRepository(Projetmobile::class)
  1335.                                   ->findOneBy(array('livreur'=>$livreur,'proprietaire'=>1));
  1336.             if($oldprojetmobile == null)
  1337.             {
  1338.                 $nom 'UPlace-'.$service->getPassword(5);
  1339.                 $password $service->getPassword(16);
  1340.                 $email $_POST['email_boutique'];
  1341.                 $tel $_POST['tel_boutique'];
  1342.                 
  1343.                 $nomprojet $_POST['nom_boutique'];
  1344.                 $newprojet = new Projet($service);
  1345.                 $newprojet->setNom($nomprojet);
  1346.                 $newprojet->setEmail($email);
  1347.                 $newprojet->setTel($tel);
  1348.                 $newprojet->setUser($this->getUser());
  1349.                 $newprojet->setBoutiquemobile(true);
  1350.                 $newprojet->setTypeprojet($type);
  1351.                 $em->persist($newprojet);
  1352.                 
  1353.                 $projetmobile = new Projetmobile();
  1354.                 $projetmobile->setLivreur($livreur);
  1355.                 $projetmobile->setProjet($projet);
  1356.                 $projetmobile->setMobile($newprojet);
  1357.                 $em->persist($projetmobile);
  1358.                 
  1359.                 $em->flush();
  1360.             
  1361.                 $this->get('session')->getFlashBag()->add('information','La création de votre boutique mobile a été effectuée avec succès !!!');
  1362.             }else{
  1363.                 $this->get('session')->getFlashBag()->add('information','Echec !!! Ce livreur est déjà associé comme livreur principal à une autre boutique !!!');
  1364.             }
  1365.             
  1366.         }else{
  1367.             $this->get('session')->getFlashBag()->add('information','Echec !!! Une erreur a été rencontrée lors de la création de votre boutique mobile !!!');
  1368.         }
  1369.         return $this->redirect($this->generateUrl('projet_projet_boutique_mobile_mplace', array('id'=>$projet->getId())));
  1370.     }
  1371.     
  1372.     return $this->render($service->getThemeDirectory().'/Projet/Projet/Projet/formaddnewprojet.html.twig'
  1373.     array('projet'=>$projet'type_projet'=>$type_projet));
  1374. }
  1375. public function autorecherchefournisseur($taille=500)
  1376. {
  1377.     $em $this->getDoctrine()->getManager();
  1378.     if(isset($_POST['donnee']))
  1379.     {
  1380.         $donnee $_POST['donnee'];
  1381.     }else{
  1382.         $donnee '';
  1383.     }
  1384.     $devise $this->params->get('devise');
  1385.     $liste_projet $em->getRepository(Projet::class)
  1386.                         ->findLastProjet($donnee,$taille);
  1387.     $tab = array();
  1388.     foreach($liste_projet as $projet){
  1389.         $d = array();
  1390.         $compt 0;
  1391.         if($projet->getImgprofilprojet() != null)
  1392.         {
  1393.             $d['drapeau'] = $projet->getImgprofilprojet()->getWebpath();
  1394.         }else{
  1395.             $d['drapeau'] = 'template/images/3plan.png';
  1396.         }
  1397.         
  1398.         $d['nom'] = $projet->name(30);
  1399.         
  1400.         $d['slogan'] = $projet->getEmail().' | '.$projet->getTel();
  1401.         
  1402.         $d['relation'] = 'P: '.$projet->getNbproduit();
  1403.         
  1404.         $d['link'] = $projet->getId();
  1405.         $tab[] = $d;
  1406.     }
  1407.     return new Response(json_encode($tab));
  1408. }
  1409. public function createpanierstockmobile(Projet $projetProduitboutique $produitboutiqueGeneralServicetext $service$position)
  1410. {
  1411.     if(isset($_POST['idfournisseur']))
  1412.     {
  1413.         $idfournisseur $_POST['idfournisseur'];
  1414.     }else{
  1415.         $idfournisseur 0;
  1416.     }
  1417.     
  1418.     if(isset($_POST['qte']))
  1419.     {
  1420.         $qte $_POST['qte'];
  1421.     }else{
  1422.         $qte 0;
  1423.     }
  1424.     
  1425.     $em $this->getDoctrine()->getManager();
  1426.     $fournisseur $em->getRepository(Projet::class)
  1427.                       ->find($idfournisseur);
  1428.     $oldfp null;
  1429.     if($fournisseur != null)
  1430.     {
  1431.         $oldfp $em->getRepository(Fournisseur::class)
  1432.                     ->findOneBy(array('projet'=>$projet,'fournisseur'=>$fournisseur));
  1433.         if($oldfp == null)
  1434.         {
  1435.             $oldfp = new Fournisseur();
  1436.             $oldfp->setProjet($projet);
  1437.             $oldfp->setFournisseur($fournisseur);
  1438.             $em->persist($oldfp);
  1439.             $em->flush();
  1440.         }
  1441.     }
  1442.     
  1443.     if($oldfp != null){
  1444.         $prixlivraison 0;
  1445.         $oldpanier $em->getRepository(Panier::class)
  1446.                         ->findOneBy(array('user'=>$this->getUser(),'sousmis'=>0));
  1447.         
  1448.         if($oldpanier == null)
  1449.         {
  1450.             $panier = new Panier();
  1451.             $panier->setUser($this->getUser());
  1452.             $panier->setProjet($projet);
  1453.             $panier->setPanierdachat(true);
  1454.             $em->persist($panier);
  1455.             
  1456.             $produitpanier = new Produitpanier();
  1457.             
  1458.             $produitpanier->setPanier($panier);
  1459.             $produitpanier->setProduit($produitboutique->getProduit());
  1460.             $produitpanier->setPrixunitaire($produitboutique->getNewprise());
  1461.             $produitpanier->setPrixgros($produitboutique->getPrixachat()); //Enregistrement des prix d'achat du gros
  1462.             $produitpanier->setQuantite($qte);
  1463.             $produitpanier->setFournisseur($oldfp);
  1464.             $produitpanier->setProduitboutique($produitboutique); //Le produit pour lequel le livreur commande (Pour ajouter le stock plustard)
  1465.             $em->persist($produitpanier);
  1466.             $em->flush();
  1467.             
  1468.             $oldpanier $panier;
  1469.         }else{
  1470.             if(count($oldpanier->getProduitpaniers()) != 0)
  1471.             {
  1472.                 $listprod $oldpanier->getProduitpaniers();
  1473.                 
  1474.                 $trouve false;
  1475.                 foreach($listprod as $prod)
  1476.                 {
  1477.                     if($prod->getProduit() == $produitboutique->getProduit())
  1478.                     {
  1479.                         $trouve true;
  1480.                         break;
  1481.                     }
  1482.                 }
  1483.                 $oldpanier->setPanierdachat(true);
  1484.                 if($trouve == false)
  1485.                 {
  1486.                     $produitpanier = new Produitpanier();
  1487.                     $produitpanier->setPanier($oldpanier);
  1488.                     $produitpanier->setProduit($produitboutique->getProduit());
  1489.                     $produitpanier->setPrixunitaire($produitboutique->getNewprise());
  1490.                     $produitpanier->setPrixgros($produitboutique->getPrixachat()); //Enregistrement des prix d'achat du gros
  1491.                     $produitpanier->setQuantite($qte);
  1492.                     $produitpanier->setFournisseur($oldfp);
  1493.                     $produitpanier->setProduitboutique($produitboutique); //Le produit pour lequel le livreur commande (Pour ajouter le stock plustard)
  1494.                     $em->persist($produitpanier);
  1495.                 }
  1496.             }else{
  1497.                 $oldpanier->setPanierdachat(true);
  1498.                 $produitpanier = new Produitpanier();
  1499.                 $produitpanier->setPanier($oldpanier);
  1500.                 $produitpanier->setProduit($produitboutique->getProduit());
  1501.                 $produitpanier->setPrixunitaire($produitboutique->getNewprise());
  1502.                 $produitpanier->setPrixgros($produitboutique->getPrixachat()); //Enregistrement des prix d'achat du gros
  1503.                 $produitpanier->setQuantite($qte);
  1504.                 $produitpanier->setFournisseur($oldfp);
  1505.                 $produitpanier->setProduitboutique($produitboutique); //Le produit pour lequel le livreur commande (Pour ajouter le stock plustard)
  1506.                 $em->persist($produitpanier);
  1507.             }
  1508.             $em->flush();
  1509.         }
  1510.     
  1511.     return $this->render($service->getThemeDirectory().'/Produit/Produit/Produitpanier/ravitaillementlivreur.html.twig',
  1512.     array('oldlivreur'=>$projetmobile,'position'=>$position,'produit'=>$produit,'oldpanier'=>$oldpanier,'oldpb'=>$produitboutique));
  1513.     }else{
  1514.         echo 0;
  1515.         exit;
  1516.     }
  1517. }
  1518. public function capitalmagasin(Projet $projetGeneralServicetext $service)
  1519. {
  1520.     $em $this->getDoctrine()->getManager();
  1521.     $liste_charge $em->getRepository(Operations::class)
  1522.                        ->findFondCommerceProjet($projet->getId());
  1523.     $liste_reclamation $em->getRepository(Operations::class)
  1524.                             ->findReclamationProjet($projet->getId());
  1525.     $projetinvest $em->getRepository(Projetinvest::class)
  1526.                        ->findOneBy(array('projet'=>$projet), array('date'=>'asc'),1);
  1527.     return $this->render($service->getThemeDirectory().'/Projet/Projet/Projet/capitalmagasin.html.twig',
  1528.     array('projet'=>$projet,'liste_charge'=>$liste_charge,'liste_reclamation'=>$liste_reclamation,'projetinvest'=>$projetinvest));
  1529. }
  1530. public function downloadDataMarketPlace(Projet $projetGeneralServicetext $service)
  1531. {
  1532.     // data stored in an array called posts
  1533.     $exportData = array();
  1534.     $headerArray = array("type"=>"header""version"=>"1.0""comment"=>"Export to JSON plugin by AFHunt Code""date"=>date'd-m-Y' ).' '.date'H:i:s' ), "destination"=>"install""devise"=>$this->params->get('devise'));
  1535.     $exportData[0] = $headerArray;
  1536.     $dataContinentTable $this->continentService->getTableItems($projet);
  1537.     $exportData[1] = Array(
  1538.         "type" => "table",
  1539.         "name" => "continent",
  1540.         "database"=> "mbill",
  1541.         "data"=> $dataContinentTable[0]
  1542.     );
  1543.     $exportData[2] = Array(
  1544.         "type" => "table",
  1545.         "name" => "pays",
  1546.         "database"=> "mbill",
  1547.         "data"=> $dataContinentTable[1]
  1548.     );
  1549.     $dataTypeprojeTable $this->typeprojetService->getTableItems($projet);
  1550.     $exportData[3] = Array(
  1551.         "type" => "table",
  1552.         "name" => "typeprojet",
  1553.         "database"=> "mbill",
  1554.         "data"=> $dataTypeprojeTable[0]
  1555.     );
  1556.     $exportData[4] = Array(
  1557.         "type" => "table",
  1558.         "name" => "user",
  1559.         "database"=> "mbill",
  1560.         "data"=> $dataTypeprojeTable[2]
  1561.     );
  1562.     $exportData[5] = Array(
  1563.         "type" => "table",
  1564.         "name" => "projet",
  1565.         "database"=> "mbill",
  1566.         "data"=> $dataTypeprojeTable[1]
  1567.     );
  1568.     $exportData[6] = Array(
  1569.         "type" => "table",
  1570.         "name" => "projetmobile",
  1571.         "database"=> "mbill",
  1572.         "data"=> $dataTypeprojeTable[3]
  1573.     );
  1574.     $exportData[7] = Array(
  1575.         "type" => "table",
  1576.         "name" => "adminstruct",
  1577.         "database"=> "mbill",
  1578.         "data"=> $dataTypeprojeTable[4]
  1579.     );
  1580.     $dataprojeTable =  $this->produitService->getTableItems($projet);
  1581.     $exportData[8] = Array(
  1582.         "type" => "table",
  1583.         "name" => "ville",
  1584.         "database"=> "mbill",
  1585.         "data"=> $dataprojeTable[0]
  1586.     );
  1587.     $exportData[9] = Array(
  1588.         "type" => "table",
  1589.         "name" => "categorie",
  1590.         "database"=> "mbill",
  1591.         "data"=> $dataprojeTable[1]
  1592.     );
  1593.     $exportData[10] = Array(
  1594.         "type" => "table",
  1595.         "name" => "souscategorie",
  1596.         "database"=> "mbill",
  1597.         "data"=> $dataprojeTable[2]
  1598.     );
  1599.     $exportData[11] = Array(
  1600.         "type" => "table",
  1601.         "name" => "marqueproduit",
  1602.         "database"=> "mbill",
  1603.         "data"=> $dataprojeTable[3]
  1604.     );
  1605.     $exportData[12] = Array(
  1606.         "type" => "table",
  1607.         "name" => "produit",
  1608.         "database"=> "mbill",
  1609.         "data"=> $dataprojeTable[4]
  1610.     );
  1611.     $exportData[13] = Array(
  1612.         "type" => "table",
  1613.         "name" => "imgproduit",
  1614.         "database"=> "mbill",
  1615.         "data"=> $dataprojeTable[5]
  1616.     );
  1617.     $exportData[14] = Array(
  1618.         "type" => "table",
  1619.         "name" => "detailproduit",
  1620.         "database"=> "mbill",
  1621.         "data"=> $dataprojeTable[6]
  1622.     );
  1623.     $exportData[15] = Array(
  1624.         "type" => "table",
  1625.         "name" => "animationproduit",
  1626.         "database"=> "mbill",
  1627.         "data"=> $dataprojeTable[7]
  1628.     );
  1629.     $exportData[16] = Array(
  1630.         "type" => "table",
  1631.         "name" => "produitboutique",
  1632.         "database"=> "mbill",
  1633.         "data"=> $dataprojeTable[8]
  1634.     );
  1635.     $exportData[17] = Array(
  1636.         "type" => "table",
  1637.         "name" => "coutlivraison",
  1638.         "database"=> "mbill",
  1639.         "data"=> $dataprojeTable[9]
  1640.     );
  1641.     $exportData[17] = Array(
  1642.         "type" => "table",
  1643.         "name" => "fournisseur",
  1644.         "database"=> "mbill",
  1645.         "data"=> $dataprojeTable[10]
  1646.     );
  1647.     // encode array to json
  1648.     $json json_encode($exportDataJSON_UNESCAPED_UNICODE);
  1649.     $filename 'marketplace'.$projet->getId().'_data_'date'Y-m-d' );
  1650.     header("Content-Type: application/json; charset=utf-8");
  1651.     header("Content-type: application/vnd.ms-excel");
  1652.     header("Content-Type: application/force-download");
  1653.     header("Content-Type: application/download");
  1654.     header("Content-disposition: " $filename ".json");
  1655.     header("Content-disposition: filename=" $filename ".json");
  1656.     print $json;
  1657.     exit;
  1658. }
  1659. public function downloadDataTresorerie(Projet $projetGeneralServicetext $service)
  1660. {
  1661.     $exportData = array();
  1662.     $headerArray = array("type"=>"header""version"=>"1.0""comment"=>"Export to JSON plugin by AFHunt Code""date"=>date'd-m-Y' ).' '.date'H:i:s' ), "destination"=>"tresorerie""operation"=>"initialisation");
  1663.     $exportData[0] = $headerArray;
  1664.     $dataProjetinvestTable $this->projetinvestService->getTableItems($projet);
  1665.     if(count($dataProjetinvestTable) > 0)
  1666.     {
  1667.         $exportData[1] = Array(
  1668.             "type" => "table",
  1669.             "name" => "projetinvest",
  1670.             "database"=> "mbill",
  1671.             "data"=> $dataProjetinvestTable[0]
  1672.         );
  1673.         $exportData[2] = Array(
  1674.             "type" => "table",
  1675.             "name" => "operations",
  1676.             "database"=> "mbill",
  1677.             "data"=> $dataProjetinvestTable[1]
  1678.         );
  1679.             // encode array to json
  1680.         $json json_encode($exportDataJSON_UNESCAPED_UNICODE);
  1681.         $filename 'marketplace'.$projet->getId().'_tresor_'date'Y-m-d' );
  1682.         header("Content-Type: application/json; charset=utf-8");
  1683.         header("Content-type: application/vnd.ms-excel");
  1684.         header("Content-Type: application/force-download");
  1685.         header("Content-Type: application/download");
  1686.         header("Content-disposition: " $filename ".json");
  1687.         header("Content-disposition: filename=" $filename ".json");
  1688.         print $json;
  1689.         exit;
  1690.     }else{
  1691.         $this->get('session')->getFlashBag()->add('information','Echec !!! Il semble que ce projet n\'est pas encore associé à une trésorerie !!!');
  1692.         return $this->redirect($this->generateUrl('projet_projet_boutique_mobile_mplace', array('id'=>$projet->getId())));
  1693.     }
  1694. }
  1695. }