<?php
/*(c) Noel Kenfack <noel.kenfack@yahoo.fr> Avril 2016
*/
namespace App\Controller\Produit\Service;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Response;
use App\Form\Produit\Service\VilleType;
use App\Entity\Produit\Service\Ville;
use Symfony\Component\HttpFoundation\Request;
use App\Service\Servicetext\GeneralServicetext;
use App\Entity\Produit\Produit\Panier;
class VilleController extends AbstractController
{
public function ajoutville($page, GeneralServicetext $service, request $request)
{
$em = $this->getDoctrine()->getManager();
$ville = new Ville($service);
$form = $this->createForm(VilleType::class, $ville);
$formsupp = $this->createFormBuilder()->getForm();
if ($request->getMethod() == 'POST'){
$form->handleRequest($request);
$ville->setUser($this->getUser());
if ($form->isValid()){
$em->persist($ville);
$em->flush();
$this->get('session')->getFlashBag()->add('information','Enregistrement effectué avec succès');
}else{
$this->get('session')->getFlashBag()->add('information','Une ereur a été rencontrée, Choisissez une ville et retransmettez le formulaire!');
}
}
$liste_ville = $em->getRepository(Ville::class)
->myFindAll($page, 30);
return $this->render($service->getThemeDirectory().'/Users/Adminuser/Service/ville.html.twig',
array('form'=>$form->createView(),'liste_ville'=>$liste_ville,'page'=>$page,
'formsupp'=>$formsupp->createView(),'nombrepage' => ceil(count($liste_ville)/30)));
}
public function supprimerville(Ville $ville, GeneralServicetext $service, request $request)
{
$em = $this->getDoctrine()->getManager();
$formsupp = $this->createFormBuilder()->getForm();
if ($request->getMethod() == 'POST') {
$liste_panier = $em->getRepository(Panier::class)
->findBy(array('ville'=>$ville));
if ($formsupp->isValid() and count($ville->getCoutlivraisons()) == 0 and count($liste_panier) == 0){
$em->remove($ville);
$em->flush();
$this->get('session')->getFlashBag()->add('information','Suppression effectuée avec succès');
}else{
$this->get('session')->getFlashBag()->add('information','Action réfusée! Il ya les produits dont la livraison est liée à cette ville');
}
}else{
$this->get('session')->getFlashBag()->add('supprime_ville',$ville->getId());
$this->get('session')->getFlashBag()->add('supprime_ville',$ville->getNom());
}
return $this->redirect($this->generateUrl('produit_service_ajouter_ville'));
}
public function modifierville(Ville $ville, GeneralServicetext $service, request $request)
{
$em = $this->getDoctrine()->getManager();
$form = $this->createForm(VilleType::class, $ville);
if ($request->getMethod() == 'POST'){
$form->handleRequest($request);
$ville->setServicetext($service);
$ville->setUser($this->getUser());
if ($form->isValid()){
$em->flush();
$this->get('session')->getFlashBag()->add('information','Enregistrement effectué avec succès');
}else{
$this->get('session')->getFlashBag()->add('information','Une ereur a été rencontrée, Choisissez une ville et retransmettez le formulaire!');
}
return $this->redirect($this->generateUrl('produit_service_ajouter_ville'));
}
$liste_ville = $em->getRepository(Ville::class)
->findAll();
return $this->render($service->getThemeDirectory().'/Users/Adminuser/Service/modifierville.html.twig',
array('form'=>$form->createView(),'liste_ville'=>$liste_ville,'ville'=>$ville));
}
public function autorechercheville($taille=500, $donnee ='')
{
$em = $this->getDoctrine()->getManager();
if(isset($_POST['donnee']))
{
$donnee = trim($_POST['donnee']);
}else{
$donnee = $donnee;
}
$liste_ville = $em->getRepository(Ville::class)
->findLastVille($taille, $donnee);
$tab = array();
foreach($liste_ville as $ville){
$d = array();
if($ville->getPays() != null)
{
$d['drapeau'] = $ville->getPays()->getDrapeau()->getWebPath();
}else{
$d['drapeau'] = 'template/images/logomarket.png';
}
$d['nom'] = $ville->getNom();
$d['id'] = $ville->getId();
$tab[] = $d;
}
return new Response(json_encode($tab));
}
}
?>