<?php
/*
(c) Noel Kenfack <noel.kenfack@yahoo.fr> Février 2015
*/
namespace App\Controller\Produit\Produit;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Response;
use App\Entity\Produit\Produit\Produit;
use App\Entity\Produit\Produit\Animationproduit;
use App\Entity\Produit\Produit\Livraisonexpress;
use App\Entity\Produit\Produit\Coutlivraison;
use App\Entity\Produit\Produit\Panier;
use App\Entity\Users\User\User;
use App\Entity\Produit\Produit\Produitpanier;
use App\Entity\Produit\Produit\Imgproduit;
use App\Form\Produit\Produit\ProduitType;
use App\Form\Produit\Produit\ProduiteditType;
use App\Form\Produit\Produit\CoutlivraisonType;
use App\Form\Produit\Produit\CoutlivraisoneditType;
use App\Entity\Produit\Produit\Souscategorie;
use App\Entity\Projet\Projet\Typeprojet;
use App\Entity\Projet\Projet\Faqpme;
use App\Form\Projet\Projet\FaqpmeType;
use App\Entity\Projet\Projet\Projet;
use App\Entity\Produit\Service\Ville;
use App\Entity\General\Template\Recherche;
use App\Service\Servicetext\GeneralServicetext;
use App\Entity\Users\User\Imgslide;
use Symfony\Component\HttpFoundation\Request;
use App\Service\AfPdf\PDFProduit;
use Symfony\Component\HttpFoundation\File\UploadedFile;
use App\Entity\Projet\Projet\Projetmobile;
use App\Entity\Produit\Produit\Detailproduit;
use App\Entity\Produit\Produit\Produitboutique;
use App\Entity\Produit\Service\Pays;
use App\Entity\Produit\Produit\Marqueproduit;
use App\Entity\Users\Adminuser\Parametreadmin;
use Symfony\Component\DependencyInjection\ParameterBag\ParameterBagInterface;
use App\Service\Email\Singleemail;
use App\Entity\Users\Annonce\Annonceaction;
use App\Entity\Produit\Produit\Categorie;
use App\Entity\Users\User\Adminstruct;
use Symfony\Component\Validator\Validator\ValidatorInterface;
use App\Service\Servicetext\FileUploader;
class ProduitController extends AbstractController
{
private $params;
private $_servicemail;
private $fileUploader;
public function __construct(ParameterBagInterface $params, FileUploader $fileUploader, Singleemail $servicemail)
{
$this->params = $params;
$this->_servicemail = $servicemail;
$this->fileUploader = $fileUploader;
}
public function modifierproduit(Produit $produit, GeneralServicetext $service)
{
$formpro = $this->createForm(ProduiteditType::class, $produit, array('cat' => $produit->getsouscategorie()->getTypeprojet()));//($produit->getsouscategorie()->getTypeprojet())
$coutlivraison = new Coutlivraison($service);
$formlivraison = $this->createForm(new CoutlivraisonType(), $coutlivraison);
$formsupp = $this->createFormBuilder()->getForm();
return $this->render($service->getThemeDirectory().'/Users/Adminuser/Produit/modifierproduit.html.twig',
array('produit'=>$produit,'formpro'=>$formpro->createView(),'formsupp'=>$formsupp->createView(),
'formlivraison'=>$formlivraison->createView()));
}
public function miseajourproduit(Produit $produit, GeneralServicetext $service, Request $request)
{
$em = $this->getDoctrine()->getManager();
$formpro = $this->createForm(ProduiteditType::class, $produit, array('cat' => $produit->getsouscategorie()->getTypeprojet()));
if($request->getMethod() == 'POST')
{
$formpro->handleRequest($request);
if($formpro->isValid()){
$em->flush();
}else{
if( count($liste_img) > $nbimgproduit )
{
$this->get('session')->getFlashBag()->add('images','Trop d\'image pour ce produit.');
}else{
$this->get('session')->getFlashBag()->add('images','Données invalides.');
}
}
}
return $this->redirect($this->generateUrl('users_adminuser_update_courant_produit',
array('id'=>$produit->getId())));
}
public function supprimerimage(Imgproduit $imgproduit, Request $request)
{
$em = $this->getDoctrine()->getManager();
$formsupp = $this->createFormBuilder()->getForm();
$produit = $imgproduit->getProduit();
if($request->getMethod() == 'POST'){
$formsupp->handleRequest($request);
if($formsupp->isValid()){
if(count($produit->getImgproduits()) > 1)
{
$em->remove($imgproduit);
$em->flush();
$this->get('session')->getFlashBag()->add('informationsupp','Suppression effectuée avec succés');
}else{
$this->get('session')->getFlashBag()->add('informationsupp','Un produit doit avoir au mions une images');
}
return $this->redirect($this->generateUrl('users_adminuser_update_courant_produit',array('id'=>$produit->getId())));
}
}
$this->get('session')->getFlashBag()->add('supprime_image',$imgproduit->getId());
$this->get('session')->getFlashBag()->add('supprime_image',$imgproduit->getProduit()->getNom());
return $this->redirect($this->generateUrl('users_adminuser_update_courant_produit',array('id'=>$produit->getId())));
}
public function listeproduituser(Souscategorie $souscategorie, GeneralServicetext $service)
{
$em = $this->getDoctrine()->getManager();
$liste_produit = $em->getRepository(Produit::class)
->myFindBy($souscategorie->getId());
$liste_slide = $em->getRepository(Imgslide::class)
->myFindAll();
return $this->render($service->getThemeDirectory().'/Produit/Produit/Produit/listeproduituser.html.twig',
array('souscategorie'=>$souscategorie,'liste_produit'=>$liste_produit,'liste_slide'=>$liste_slide));
}
public function detailproduit(Produit $produit, GeneralServicetext $service)
{
$em = $this->getDoctrine()->getManager();
$produit_similaire = $em->getRepository(Produit::class)
->findProduitExclu($produit->getSouscategorie()->getId(), $produit->getId(), 7);
$detail_produit = $em->getRepository(Detailproduit::class)
->findBy(array('produit'=>$produit), array('date'=>'asc'));
$liste_point = $em->getRepository(Coutlivraison::class)
->getPointDeVenteProduit($produit->getId(),1,500);
return $this->render($service->getThemeDirectory().'/Produit/Produit/Produit/detailproduit.html.twig',
array('produit'=>$produit, 'produit_similaire'=>$produit_similaire, 'detail_produit'=>$detail_produit,
'liste_point'=>$liste_point));
}
public function likeproduct()
{
if(isset($_GET['id']))
{
$id = $_GET['id'];
}else{
$id = 0;
}
$em = $this->getDoctrine()->getManager();
$produit = $em->getRepository(Produit::class)
->find($id);
if($produit != null and $this->getUser() != null){
$userlikes = $produit->getUserlikes();
$trouve = false;
foreach($userlikes as $user)
{
if($this->getUser() == $user)
{
$trouve = true;
}
}
if($trouve == false)
{
$produit->addUserlike($this->getUser());
$em->flush();
}
echo 1;
exit;
}else{
echo 0;
exit;
}
}
public function ajouterpanier()
{
if(isset($_POST['id']))
{
$id = $_POST['id'];
}else{
$id = 1;
}
if(isset($_POST['livraison']))
{
$livraison = $_POST['livraison'];
}else{
$livraison = 1;
}
if(isset($_POST['quantite']))
{
$quantite = $_POST['quantite'];
}else{
$quantite = 1;
}
$produitboutique = null;
$em = $this->getDoctrine()->getManager();
$produit = $em->getRepository(Produit::class)
->find($id);
$coutlivraison = $em->getRepository(Coutlivraison::class)
->find($livraison);
if($produit != null){
$idcard = 0;
if(isset($_COOKIE["PIDCARD"]) and $_COOKIE["PIDCARD"] != 'empty')
{
$idcard = $_COOKIE["PIDCARD"];
}
$prixlivraison = 0;
$livraisonexpress = null;
$acteur = null;
$projet = null;
if(isset($_POST['idboutique']) and isset($_POST['ville']) and isset($_POST['quartier']) and isset($_POST['cout']))
{
$tabb = explode('_', $_POST['idboutique']);
$ville = $em->getRepository(Ville::class)
->myFindByName($_POST['ville']);
$prixlivraison = $_POST['cout'];
if(count($tabb) >= 2 and $tabb[0] == 'struct')
{
$projet = $em->getRepository(Projet::class)
->find($tabb[1]);
if($ville != null)
{
$livraisonexpress = $em->getRepository(Livraisonexpress::class)
->myFindByProjet($tabb[1], $ville->getId(), $_POST['quartier']);
}else{
$livraisonexpress = $em->getRepository(Livraisonexpress::class)
->myFindByQuartier($tabb[1], $_POST['ville'], $_POST['quartier']);
}
}else if(count($tabb) >= 2 and $tabb[0] == 'user')
{
$acteur = $em->getRepository(User::class)
->find($tabb[1]);
if($ville != null)
{
$livraisonexpress = $em->getRepository(Livraisonexpress::class)
->myFindByUser($tabb[1], $ville->getId(), $_POST['quartier']);
}else{
$livraisonexpress = $em->getRepository(Livraisonexpress::class)
->myFindByQuartierUser($tabb[1], $_POST['ville'], $_POST['quartier']);
}
}
if($livraisonexpress == null)
{
$livraisonexpress = new Livraisonexpress();
$livraisonexpress->setQuartiertext($_POST['quartier']);
$livraisonexpress->setVilletext($_POST['ville']);
$livraisonexpress->setMontant($prixlivraison);
if($acteur != null)
{
$livraisonexpress->setUser($acteur);
}
if($projet != null)
{
$livraisonexpress->setProjet($projet);
}
if($ville != null)
{
$livraisonexpress->setVille($ville);
}
$em->persist($livraisonexpress);
$em->flush();
}
}
if(isset($_POST['produitboutique']))
{
$produitboutique = $em->getRepository(Produitboutique::class)
->find($_POST['produitboutique']);
}
if($produitboutique == null and $projet != null){
$produitboutique = $em->getRepository(Produitboutique::class)
->findOneBy(array('produit'=>$produit,'projet'=>$projet));
}
$oldpanier = $em->getRepository(Panier::class)
->findOneBy(array('id'=>$idcard,'sousmis'=>0));
if($oldpanier == null and $this->getUser() != null)
{
$oldpanier = $em->getRepository(Panier::class)
->findOneBy(array('user'=>$this->getUser(),'sousmis'=>0));
}
if($oldpanier == null)
{
$panier = new Panier();
$panier->setUser($this->getUser());
$em->persist($panier);
$produitpanier = new Produitpanier();
$produitpanier->setPanier($panier);
$produitpanier->setQuantite($quantite);
if($produitboutique == null)
{
$produitpanier->setProduit($produit);
$produitpanier->setPrixunitaire($produit->getNewprise());
$produitpanier->setPrixgros($produit->getNewprise());
}else{
$produitpanier->setProduit($produitboutique->getProduit());
$produitpanier->setProduitboutique($produitboutique);
$produitpanier->setPrixunitaire($produitboutique->getNewprise());
if($projet != null and $projet->getBoutiquemobile() == true)
{
if($produitboutique->getProduit()->getProduitgro() != null)
{
$oldproduitpanier = $em->getRepository(Produitpanier::class) //Sélectionner la dernière commande du produitgros acheter par cette boutique mobile.
->findLastCommande($produitboutique->getId());
if($oldproduitpanier != null)
{
$produitpanier->setPrixgros(round($oldproduitpanier->getProduitboutiquegros()->getNewprise() / $produitboutique->getProduit()->getProduitgro()->getNbpiece(),2));
}else{
$produitpanier->setPrixgros(round($produitboutique->getProduit()->getProduitgro()->getNewprise() / $produitboutique->getProduit()->getProduitgro()->getNbpiece(),2));
}
}
$produitpanier->setNbpiecegros($produitboutique->getProduit()->getProduitgro()->getNbpiece());
}else{
$produitpanier->setPrixgros($produitboutique->getPrixachat());
$produitpanier->setNbpiecegros($produitboutique->getProduit()->getNbpiece());
}
}
if($coutlivraison != null)
{
$produitpanier->setCoutlivraison($coutlivraison);
}
if($livraisonexpress != null)
{
$produitpanier->setPrixlivraison($prixlivraison);
$produitpanier->setLivraisonexpress($livraisonexpress);
}
$em->persist($produitpanier);
$em->flush();
// Stock les infos du cookie
$cookie_info = array(
'name' => 'PIDCARD',
'value' => $panier->getId(),
'time' => time() + (3600 * 24 * 360)
);
// Cree le cookie
setCookie($cookie_info['name'], $cookie_info['value'], $cookie_info['time'],'/');
setCookie('PIDCARDDUR',$cookie_info['time'], $cookie_info['time'],'/');
}else{
if(count($oldpanier->getProduitpaniers()) != 0)
{
$listprod = $oldpanier->getProduitpaniers();
$trouve = false;
$produitpanier = null;
foreach($listprod as $prod)
{
if($prod->getProduit() == $produit)
{
$prod->setQuantite($prod->getQuantite() + $quantite);
$produitpanier = $prod;
$trouve = true;
break;
}
}
if($trouve == false)
{
$produitpanier = new Produitpanier();
$produitpanier->setPanier($oldpanier);
$produitpanier->setQuantite($quantite);
if($coutlivraison != null)
{
$produitpanier->setCoutlivraison($coutlivraison);
}
if($livraisonexpress != null)
{
$produitpanier->setPrixlivraison($prixlivraison);
$produitpanier->setLivraisonexpress($livraisonexpress);
}
if($produitboutique == null)
{
$produitpanier->setProduit($produit);
$produitpanier->setPrixunitaire($produit->getNewprise());
$produitpanier->setPrixgros($produit->getNewprise());
}else{
$produitpanier->setProduit($produitboutique->getProduit());
$produitpanier->setProduitboutique($produitboutique);
$produitpanier->setPrixunitaire($produitboutique->getNewprise());
$produitpanier->setPrixgros($produitboutique->getNewprise());
if($projet != null and $projet->getBoutiquemobile() == true)
{
if($produitboutique->getProduit()->getProduitgro() != null)
{
$oldproduitpanier = $em->getRepository(Produitpanier::class) //Sélectionner la dernière commande du produitgros acheter par cette boutique mobile.
->findLastCommande($produitboutique->getId(), $produitboutique->getProduit()->getProduitgro()->getId());
if($oldproduitpanier != null)
{
$produitpanier->setPrixgros(round($oldproduitpanier->getProduitboutiquegros()->getNewprise() / $produitboutique->getProduit()->getProduitgro()->getNbpiece(),2));
}else{
$produitpanier->setPrixgros(round($produitboutique->getProduit()->getProduitgro()->getNewprise() / $produitboutique->getProduit()->getProduitgro()->getNbpiece(),2));
}
}
$produitpanier->setNbpiecegros($produitboutique->getProduit()->getProduitgro()->getNbpiece());
}else{
$produitpanier->setPrixgros($produitboutique->getPrixachat());
$produitpanier->setNbpiecegros($produitboutique->getProduit()->getNbpiece());
}
}
$em->persist($produitpanier);
}else{
if($produitboutique != null)
{
$produitpanier->setProduitboutique($produitboutique);
$produitpanier->setPrixunitaire($produitboutique->getNewprise());
$produitpanier->setPrixgros($produitboutique->getNewprise());
}
}
}else{
$produitpanier = new Produitpanier();
$produitpanier->setPanier($oldpanier);
$produitpanier->setQuantite($quantite);
if($coutlivraison != null)
{
$produitpanier->setCoutlivraison($coutlivraison);
}
if($livraisonexpress != null)
{
$produitpanier->setPrixlivraison($prixlivraison);
$produitpanier->setLivraisonexpress($livraisonexpress);
}
if($produitboutique == null)
{
$produitpanier->setProduit($produit);
$produitpanier->setPrixunitaire($produit->getNewprise());
$produitpanier->setPrixgros($produit->getNewprise());
}else{
$produitpanier->setProduit($produitboutique->getProduit());
$produitpanier->setProduitboutique($produitboutique);
$produitpanier->setPrixunitaire($produitboutique->getNewprise());
$produitpanier->setPrixgros($produitboutique->getNewprise());
if($projet != null and $projet->getBoutiquemobile() == true)
{
if($produitboutique->getProduit()->getProduitgro() != null)
{
$oldproduitpanier = $em->getRepository(Produitpanier::class) //Sélectionner la dernière commande du produitgros acheter par cette boutique mobile.
->findLastCommande($produitboutique->getId(), $produitboutique->getProduit()->getProduitgro()->getId());
if($oldproduitpanier != null)
{
$produitpanier->setPrixgros(round($oldproduitpanier->getProduitboutiquegros()->getNewprise() / $produitboutique->getProduit()->getProduitgro()->getNbpiece(),2));
}else{
$produitpanier->setPrixgros(round($produitboutique->getProduit()->getProduitgro()->getNewprise() / $produitboutique->getProduit()->getProduitgro()->getNbpiece(),2));
}
}
$produitpanier->setNbpiecegros($produitboutique->getProduit()->getProduitgro()->getNbpiece());
}else{
$produitpanier->setPrixgros($produitboutique->getPrixachat());
$produitpanier->setNbpiecegros($produitboutique->getProduit()->getNbpiece());
}
}
$em->persist($produitpanier);
}
$em->flush();
}
echo 1;
exit;
}else{
echo 0;
exit;
}
}
public function addpanier(Produit $produit)
{
$em = $this->getDoctrine()->getManager();
if($this->getUser() != null)
{
$oldpanier = $em->getRepository(Panier::class)
->findOneBy(array('user'=>$this->getUser(),'payer'=>0));
if($oldpanier == null)
{
$panier = new Panier();
$panier->setUser($this->getUser());
$em->persist($panier);
$produitpanier = new Produitpanier();
$produitpanier->setPanier($panier);
$produitpanier->setProduit($produit);
$em->persist($produitpanier);
$em->flush();
}else{
if(count($oldpanier->getProduitpaniers()) != 0)
{
$listprod = $oldpanier->getProduitpaniers();
$trouve = false;
foreach($listprod as $prod)
{
if($prod->getProduit() == $produit)
{
$prod->setQuantite($prod->getQuantite() + 1);
$trouve = true;
break;
}
}
if($trouve == false)
{
$produitpanier = new Produitpanier();
$produitpanier->setPanier($oldpanier);
$produitpanier->setProduit($produit);
$em->persist($produitpanier);
}
}else{
$produitpanier = new Produitpanier();
$produitpanier->setPanier($oldpanier);
$produitpanier->setProduit($produit);
$em->persist($produitpanier);
}
$em->flush();
}
$this->get('session')->getFlashBag()->add('ajoutproduit','Produit ajouter avec succès');
}else{
$this->get('session')->getFlashBag()->add('ajoutproduit','Une erreur a été rencontrée !');
}
return $this->redirect($this->generateUrl('produit_produit_liste_produit_souscategorie',array('id'=>$produit->getSouscategorie()->getId())));
}
public function reglementcommande(Panier $panier, GeneralServicetext $service)
{
$em = $this->getDoctrine()->getManager();
$nbprod = 0;
$produitpanier = null;
$produitpanier = $panier->getProduitpaniers();
foreach($produitpanier as $prodpan)
{
$nbprod = $nbprod + $prodpan->getQuantite();
$prodpan->getProduit()->setEm($em);
$prodpan->setEm($em);
}
if(count($produitpanier) > 0 and $panier->getSousmis() == false)
{
return $this->render($service->getThemeDirectory().'/Produit/Produit/Produit/reglementcommande.html.twig',
array('panier'=>$panier,'produitpanier'=>$produitpanier, 'nbprod'=>$nbprod));
}else{
$this->get('session')->getFlashBag()->add('information','Le panier que vous assayez de payer est vide ou a déjà été payé !');
return $this->redirect($this->generateUrl('users_user_acces_plateforme'));
}
}
public function editcommande()
{
if(isset($_GET['id']))
{
$id = $_GET['id'];
}else{
$id = 0;
}
if(isset($_GET['quantite']))
{
$quantite = $_GET['quantite'];
}else{
$quantite = 0;
}
$em = $this->getDoctrine()->getManager();
$prodpan = $em->getRepository(Produitpanier::class)
->find($id);
if($prodpan != null)
{
$prodpan->setQuantite($quantite);
$em->flush();
echo 1;
exit;
}else{
echo 0;
exit;
}
}
public function eleveproduit()
{
$em = $this->getDoctrine()->getManager();
if(isset($_GET['id']))
{
$id = $_GET['id'];
}else{
$id = 0;
}
$prodpan = $em->getRepository(Produitpanier::class)
->find($id);
$idcard = 0;
if(isset($_COOKIE["PIDCARD"]) and $_COOKIE["PIDCARD"] != 'empty')
{
$idcard = $_COOKIE["PIDCARD"];
}
if($prodpan != null)
{
$panier = $prodpan->getPanier();
$em = $this->getDoctrine()->getManager();
$em->remove($prodpan);
$em->flush();
echo 1;
exit;
}
echo 0;
exit;
}
public function supprimerproduit()
{
$em = $this->getDoctrine()->getManager();
if(isset($_POST['idprod']))
{
$idprod = $_POST['idprod'];
}else{
$idprod = 0;
}
$produit = $em->getRepository(Produit::class)
->find($idprod);
if($produit != null)
{
$produitpan = $em->getRepository(Produitpanier::class)
->findBy(array('produit'=>$produit));
if(count($produitpan) == 0){
$produitboutique = $em->getRepository(Produitboutique::class)
->findBy(array('produit'=>$produit));
if(count($produitboutique) == 0){
$liste_image = $produit->getImgproduits();
foreach($liste_image as $img)
{
$em->remove($img);
}
$em->remove($produit);
$em->flush();
echo 1;
exit;
}else{
echo 3;
exit;
}
}else{
echo 2;
exit;
}
}else{
echo 0;
exit;
}
}
public function rechercheproduit(GeneralServicetext $service, $type, $page, $donnee)
{
$em = $this->getDoctrine()->getManager();
$liste_produit = new \Doctrine\Common\Collections\ArrayCollection();
$liste_projet = new \Doctrine\Common\Collections\ArrayCollection();
if (isset($_POST['donnee']) ){
$donnee = $_POST['donnee'];
}
if($type == 1)
{
$liste_produit = $em->getRepository(Produit::class)
->findProduit($donnee, $page, 15);
$nombrepage = ceil(count($liste_produit)/15);
}else{
$liste_projet = $em->getRepository(Projet::class)
->searchingprojetpage($donnee, $page, 15);
$nombrepage = ceil(count($liste_projet)/15);
}
return $this->render($service->getThemeDirectory().'/Produit/Produit/Produit/recherche.html.twig',
array('liste_produit'=>$liste_produit,'liste_projet'=>$liste_projet,'nombrepage'=>$nombrepage,
'type'=>$type,'page'=>$page,'donnee'=>$donnee));
}
public function addcoutlivraison(Produit $produit, GeneralServicetext $service, Request $request)
{
$em = $this->getDoctrine()->getManager();
$coutlivraison = new Coutlivraison($service);
$formlivraison = $this->createForm(CoutlivraisonType::class, $coutlivraison);
if ($request->getMethod() == 'POST'){
$formlivraison->handleRequest($request);
$coutlivraison->setUser($this->getUser());
$coutlivraison->setProduit($produit);
$oldcout = $em->getRepository(Coutlivraison::class)
->findOneBy(array('ville'=>$coutlivraison->getVille(),'produit'=>$produit));
if ($formlivraison->isValid() and $oldcout == null){
$em->persist($coutlivraison);
$em->flush();
$this->get('session')->getFlashBag()->add('informationsupp','Enregistrement effectué avec succès');
}
}
return $this->redirect($this->generateUrl('users_adminuser_update_courant_produit',array('id'=>$produit->getId())));
}
public function modifcoutlivraison(Coutlivraison $coutlivraison)
{
$em = $this->getDoctrine()->getManager();
if (isset($_POST['coutlivraison']) and is_numeric($_POST['coutlivraison'])){
$coutlivraison->setMontant(htmlspecialchars($_POST['coutlivraison']));
$em->flush();
$this->get('session')->getFlashBag()->add('informationsupp','Enregistrement effectué avec succès');
}
return $this->redirect($this->generateUrl('users_adminuser_update_courant_produit',
array('id'=>$coutlivraison->getProduit()->getId())));
}
public function supprimercoutlivraison(Coutlivraison $coutlivraison)
{
$produit = $coutlivraison->getProduit();
$em = $this->getDoctrine()->getManager();
$em->remove($coutlivraison);
$em->flush();
return $this->redirect($this->generateUrl('users_adminuser_update_courant_produit',
array('id'=>$produit->getId())));
}
////////////---------------------------------Afex Market
public function domaineactivite()
{
$em = $this->getDoctrine()->getManager();
if(isset($_POST['paysid']) and isset($_POST['marqueid']) and isset($_POST['scatid']) and isset($_POST['secteurid']) and isset($_POST['villename']))
{
$ville = $em->getRepository(Ville::class)
->myFindByName($_POST['villename']);
$idv = 0;
if($ville != null and $_POST['villename'] != '')
{
$idv = $ville->getId();
}
return $this->redirect($this->generateUrl('produit_produit_acceuil_sousdomaine_type_market_place',
array('idscat'=>$_POST['scatid'],'idpays'=>$_POST['paysid'],'idmarque'=>$_POST['marqueid'],'idtype'=>$_POST['secteurid'], 'idville'=>$idv)));
}
return $this->redirect($this->generateUrl('produit_produit_acceuil_sousdomaine_type_market_place'));
}
public function acceuilproduit($idscat, $idpays, $idmarque, $idtype, $page, $idville, GeneralServicetext $service)
{
$em = $this->getDoctrine()->getManager();
$souscategorie = $em->getRepository(Souscategorie::class)
->find($idscat);
$pays = $em->getRepository(Pays::class)
->find($idpays);
$marque = $em->getRepository(Marqueproduit::class)
->find($idmarque);
$typeprojet = $em->getRepository(Typeprojet::class)
->find($idtype);
$ville = $em->getRepository(Ville::class)
->find($idville);
if($pays == null)
{
$param = $this->params->get('pays');
$pays = $em->getRepository(Pays::class)
->findPaysCurrent($param);
}
if($pays != null)
{
if($souscategorie != null)
{
if($marque != null)
{
if($typeprojet != null)
{
if($ville != null)
{
$liste_produit = $em->getRepository(Produit::class)
->myfindProduitVilleTypeMarqueScatPays($souscategorie->getId(),$pays->getId(),$marque->getId(),$typeprojet->getId(),$ville->getId(),$page,12);
}else{
$liste_produit = $em->getRepository(Produit::class)
->myfindProduitTypeMarqueScatPays($souscategorie->getId(),$pays->getId(),$marque->getId(),$typeprojet->getId(),$page,12);
}
}else{
if($ville != null)
{
$liste_produit = $em->getRepository(Produit::class)
->myfindProduitVilleMarqueScatPays($souscategorie->getId(),$pays->getId(),$marque->getId(),$ville->getId(),$page,12);
}else{
$liste_produit = $em->getRepository(Produit::class)
->myfindProduitMarqueScatPays($souscategorie->getId(),$pays->getId(),$marque->getId(),$page,12);
}
}
}else{
if($typeprojet != null)
{
if($ville != null)
{
$liste_produit = $em->getRepository(Produit::class)
->myfindProduitVilleTypeScatPays($souscategorie->getId(),$pays->getId(),$typeprojet->getId(),$ville->getId(),$page,12);
}else{
$liste_produit = $em->getRepository(Produit::class)
->myfindProduitTypeScatPays($souscategorie->getId(),$pays->getId(),$typeprojet->getId(),$page,12);
}
}else{
if($ville != null)
{
$liste_produit = $em->getRepository(Produit::class)
->myfindProduitVilleScatPays($souscategorie->getId(),$pays->getId(),$ville->getId(),$page,12);
}else{
$liste_produit = $em->getRepository(Produit::class)
->myfindProduitScatPays($souscategorie->getId(),$pays->getId(),$page,12);
}
}
}
}else{
if($marque != null)
{
if($typeprojet != null)
{
if($ville != null)
{
$liste_produit = $em->getRepository(Produit::class)
->myfindProduitVilleTypeMarquePays($pays->getId(),$marque->getId(),$typeprojet->getId(),$ville->getId(),$page,12);
}else{
$liste_produit = $em->getRepository(Produit::class)
->myfindProduitTypeMarquePays($pays->getId(),$marque->getId(),$typeprojet->getId(),$page,12);
}
}else{
if($ville != null)
{
$liste_produit = $em->getRepository(Produit::class)
->myfindProduitVilleMarquePays($pays->getId(),$marque->getId(),$ville->getId(),$page,12);
}else{
$liste_produit = $em->getRepository(Produit::class)
->myfindProduitMarquePays($pays->getId(),$marque->getId(),$page,12);
}
}
}else{
if($typeprojet != null)
{
if($ville != null)
{
$liste_produit = $em->getRepository(Produit::class)
->myfindProduitVilleTypePays($pays->getId(),$typeprojet->getId(),$ville->getId(),$page,12);
}else{
$liste_produit = $em->getRepository(Produit::class)
->myfindProduitTypePays($pays->getId(),$typeprojet->getId(),$page,12);
}
}else{
if($ville != null)
{
$liste_produit = $em->getRepository(Produit::class)
->myfindProduitVillePays($pays->getId(),$ville->getId(),$page,12);
}else{
$liste_produit = $em->getRepository(Produit::class)
->myfindProduitPays($pays->getId(),$page,12);
}
}
}
}
}else{
$liste_produit = new \Doctrine\Common\Collections\ArrayCollection();
}
$liste_pays = $em->getRepository(Pays::class)
->myfindAll();
$liste_marque = $em->getRepository(Marqueproduit::class)
->myfindAll();
$liste_scat = $em->getRepository(Souscategorie::class)
->myfindAll();
$type_projet = $em->getRepository(Typeprojet::class)
->myFindAll();
return $this->render($service->getThemeDirectory().'/Produit/Produit/Produit/acceuilproduit.html.twig',
array('page'=>$page, 'liste_produit'=>$liste_produit, 'liste_pays'=>$liste_pays, 'liste_marque'=>$liste_marque,
'liste_scat'=>$liste_scat,'type_projet'=>$type_projet, 'souscategorie'=>$souscategorie, 'marque'=>$marque,'typeprojet'=>$typeprojet,
'pays'=>$pays, 'ville'=>$ville, 'nombrepage' => ceil(count($liste_produit)/12),'idscat'=>$idscat,'idpays'=>$idpays,'idmarque'=>$idmarque,
'idtype'=>$idtype,'idville'=>$idville));
}
public function menuleftmplace(Projet $projet, GeneralServicetext $service)
{
$em = $this->getDoctrine()->getManager();
$offrembill = $em->getRepository(Parametreadmin::class)
->findOneBy(array('type'=>'offrembill'));
return $this->render($service->getThemeDirectory().'/Produit/Produit/Projet/menuleftmplace.html.twig',
array('projet'=>$projet, 'offrembill'=>$offrembill));
}
public function accesbinplacename($id, $page, GeneralServicetext $service, Request $request)
{
$em = $this->getDoctrine()->getManager();
$projet = $em->getRepository(Projet::class)
->find($id);
if($projet == null)
{
throw $this->createNotFoundException();
}
$faqpme = new Faqpme($service);
$form = $this->createForm(FaqpmeType::class, $faqpme);
$nbfaqpme = 200;
if($request->getMethod() == 'POST')
{
$form->handleRequest($request);
$faqpme->setProjet($projet);
$nbstruct = $em->getRepository(Faqpme::class)
->findBy(array('projet'=>$projet));
if ($form->isValid() and count($nbstruct) <= $nbfaqpme){
$em->persist($faqpme);
$em->flush();
}else{
if(count($nbstruct) > $nbfaqpme)
{
$this->get('session')->getFlashBag()->add('information','Le seuil des publications est atteind.');
}else{
$this->get('session')->getFlashBag()->add('information','Données invalides.');
}
}
}
$liste_faqpme = $em->getRepository(Faqpme::class)
->listefaqStruct($projet->getId(),$page,4);
return $this->render($service->getThemeDirectory().'/Produit/Produit/Projet/accesbinplacename.html.twig',
array('projet'=>$projet,'categorie'=>$projet->getTypeprojet(), 'liste_faqpme'=>$liste_faqpme,
'form'=>$form->createView(),'page'=>$page, 'nombrepage'=> ceil(count($liste_faqpme)/4)));
}
public function bannieremarket(Projet $projet, GeneralServicetext $service)
{
$em = $this->getDoctrine()->getManager();
/*
$annonces = $em->getRepository(Annonceaction::class)
->findBy(array('projet'=>$projet));
$projet->setNbannonce(count($annonces));
$liste_prod = $em->getRepository(Produit::class)
->findBy(array('projet'=>$projet));
$panier_impaye = $em->getRepository('ProduitProduitBundle:Panier')
->findBy(array('projet'=>$projet,'livrer'=>false));
*/
$liste_prod = $em->getRepository(Produit::class)
->getPublicProductBinplace($projet->getId(),1,2000);
return $this->render($service->getThemeDirectory().'/Produit/Produit/Projet/bannieremarket.html.twig',
array('projet'=>$projet,'liste_prod'=>$liste_prod));
}
public function menusousdomainebinplace(Projet $projet, GeneralServicetext $service)
{
$em = $this->getDoctrine()->getManager();
$liste_scat = $em->getRepository(Souscategorie::class)
->listeScatMPlace($projet->getId());
return $this->render($service->getThemeDirectory().'/Produit/Produit/Projet/menusousdomainebinplace.html.twig',
array('projet'=>$projet,'liste_scat'=>$liste_scat));
}
public function ajouternouveauxproduits($position, $ide, GeneralServicetext $service)
{
$em = $this->getDoctrine()->getManager();
$liste_cat = $em->getRepository(Categorie::class)
->myFindAll();
$liste_marque = $em->getRepository(Marqueproduit::class)
->myFindAll();
$produit = $em->getRepository(Produit::class)
->find($ide);
$boutiques_mobile = new \Doctrine\Common\Collections\ArrayCollection();
if($this->getUser() != null)
{
$boutiques_mobile = $em->getRepository(Projet::class)
->findBy(array('user'=>$this->getUser(),'boutiquemobile'=>1));
}
$adminstruct = $em->getRepository(Adminstruct::class)
->findOneBy(array('user'=>$this->getUser()), array('date'=>'desc'),1);
if($adminstruct != null){
$liste_projetmobile = $em->getRepository(Projetmobile::class)
->findBy(array('projet'=>$adminstruct->getProjet()), array('date'=>'desc'),1);
foreach($liste_projetmobile as $projetmobile)
{
if($projetmobile->getMobile()->getBoutiquemobile() == true)
{
$boutiques_mobile[] = $projetmobile->getMobile();
}
}
}
return $this->render($service->getThemeDirectory().'/Produit/Produit/Projet/ajouternouveauxproduits.html.twig',
array('position'=>$position, 'ide'=>$ide, 'liste_cat'=>$liste_cat, 'liste_marque'=>$liste_marque,
'produit'=>$produit, 'boutiques_mobile'=>$boutiques_mobile));
}
public function modificationnouveauproduit(Produit $produit, GeneralServicetext $service)
{
if($this->getUser() == $produit->getProjet()->getUser())
{
$formpro = $this->createForm(ProduitType::class, $produit, array('cat'=>$produit->getsouscategorie()->getTypeprojet()));
$coutlivraison = new Coutlivraison($service);
$formlivraison = $this->createForm(CoutlivraisoneditType::class, $coutlivraison);
$formsupp = $this->createFormBuilder()->getForm();
return $this->render($service->getThemeDirectory().'/Produit/Produit/Projet/modificationnouveauproduit.html.twig',
array('produit'=>$produit,'projet'=>$produit->getProjet(),'formpro'=>$formpro->createView(),'formsupp'=>$formsupp->createView(),'formlivraison'=>$formlivraison->createView()));
}else{
return $this->redirect($this->generateUrl('projet_projet_accueil_binplace_projet_name',array('binplace'=>$produit->getProjet()->getBinplace())));
}
}
public function ajoutcoutlivraison(Produit $produit, Request $request, GeneralServicetext $service)
{
$em = $this->getDoctrine()->getManager();
$coutlivraison = new Coutlivraison($service);
$formlivraison = $this->createForm(CoutlivraisoneditType::class, $coutlivraison);
if ($request->getMethod() == 'POST' and isset($_POST['villelivraison'])){
$formlivraison->handleRequest($request);
$coutlivraison->setUser($this->getUser());
$coutlivraison->setProduit($produit);
$ville = $em->getRepository(Ville::class)
->findOneBy(array('nom'=>trim(htmlspecialchars($_POST['villelivraison']))));
if($ville == null)
{
$ville = new ville($service);
$ville->setUser($this->getUser());
$ville->setNom(trim(htmlspecialchars($_POST['villelivraison'])));
$em->persist($ville);
}
$coutlivraison->setVille($ville);
$oldcout = $em->getRepository(Coutlivraison::class)
->findOneBy(array('ville'=>$coutlivraison->getVille(),'produit'=>$produit));
if ($formlivraison->isValid() and $oldcout == null){
$em->persist($coutlivraison);
$em->flush();
$this->get('session')->getFlashBag()->add('informationsupp','Enregistrement effectué avec succès');
}else{
$this->get('session')->getFlashBag()->add('informationsupp','Une erreur rencontrée. Vérifier l\'existance du produit dans cette ville');
}
}
return $this->redirect($this->generateUrl('produit_produit_modification_duproduit_courant_binplace',
array('id'=>$produit->getId())));
}
public function updatebinplaceproduit(Produit $produit, GeneralServicetext $service, Request $request)
{
$em = $this->getDoctrine()->getManager();
$formpro = $this->createForm(ProduitType::class, $produit, array('cat'=>$produit->getsouscategorie()->getTypeprojet()));
if($request->getMethod() == 'POST')
{
$formpro->handleRequest($request);
$produit->setUser($this->getUser());
$imgpro = $produit->getImgpro();
$imgpro->setServicetext($service);
$imgpro->setProduit($produit);
$liste_img = $produit->getImgproduits();
$nbimgproduit = $this->params->get('nbimgparproduit');
if($formpro->isValid() and count($liste_img) <= $nbimgproduit){
$em->persist($imgpro);
$em->flush();
$this->get('session')->getFlashBag()->add('images','Modification enregistrée avec succès.');
}else{
if( count($liste_img) > $nbimgproduit )
{
$this->get('session')->getFlashBag()->add('images','Trop d\'image pour ce produit.');
}else{
$this->get('session')->getFlashBag()->add('images','Données invalides.');
}
}
}
return $this->redirect($this->generateUrl('produit_produit_modification_duproduit_courant_binplace',
array('id'=>$produit->getId())));
}
public function updatecoutlivraison(Coutlivraison $coutlivraison)
{
$em = $this->getDoctrine()->getManager();
if (isset($_POST['coutlivraison']) and is_numeric($_POST['coutlivraison'])){
$coutlivraison->setMontant(htmlspecialchars($_POST['coutlivraison']));
$em->flush();
$this->get('session')->getFlashBag()->add('informationsupp','Enregistrement effectué avec succès');
}
return $this->redirect($this->generateUrl('produit_produit_modification_duproduit_courant_binplace',
array('id'=>$coutlivraison->getProduit()->getId())));
}
public function supprimercoutlivraisonuser(Coutlivraison $coutlivraison)
{
$produit = $coutlivraison->getProduit();
$em = $this->getDoctrine()->getManager();
$em->remove($coutlivraison);
$em->flush();
return $this->redirect($this->generateUrl('produit_produit_modification_duproduit_courant_binplace',
array('id'=>$coutlivraison->getProduit()->getId())));
}
public function autorechercheproduit($taille)
{
$em = $this->getDoctrine()->getManager();
if(isset($_POST['donnee']))
{
$donnee = $_POST['donnee'];
}else{
$donnee = '';
}
$devise = $this->params->get('devise');
$produittaille = ceil($taille/2);
$projettaille = ceil($taille/2);
$liste_produit = $em->getRepository(Produit::class)
->findLastProduit($donnee,$produittaille);
$liste_projet = $em->getRepository(Projet::class)
->findLastProjet($donnee,$projettaille);
$tab = array();
foreach($liste_produit as $produit){
$d = array();
$compt = 0;
$imgproduit = $produit->getBestProduit();
if($imgproduit != null)
{
$d['drapeau'] = $imgproduit->getWebpath();
}else{
$d['drapeau'] = 'template/images/logomarket.png';
}
$d['nom'] = $produit->getNom();
$d['slogan'] = $produit->subdescription(25);
$d['relation'] = $produit->getNewprise().''.$devise;
$d['link'] = $this->generateUrl('produit_produit_detail_produit_market', array('id'=>$produit->getId()));
$tab[] = $d;
}
/*foreach($liste_projet as $projet){
$d = array();
if($projet->getImgprofilprojet() != null)
{
$d['drapeau'] = $projet->getImgprofilprojet()->getWebpath();
}else{
$d['drapeau'] = 'template/images/logomarket.png';
}
$d['nom'] = $projet->getNom();
if($projet->getSlogan() != null)
{
$d['slogan'] = $projet->resizeSlogan(25);
}else{
$d['slogan'] = $projet->getTypeprojet()->getNom();
}
$d['relation'] = $projet->getNbproduit().' Produit(s)';
$d['link'] = $this->generateUrl('projet_projet_accueil_binplace_projet_name', array('id'=>$projet->getId()));
$tab[] = $d;
}*/
return new Response(json_encode($tab));
}
public function soumettrerecherche(GeneralServicetext $service)
{
if(isset($_POST['donnee']))
{
$tabdonnee = explode('|', $_POST['donnee']);
$donnee = trim($tabdonnee[0]);
}else{
$donnee = '';
}
return $this->render($service->getThemeDirectory().'/Produit/Produit/Produit/soumettrerecherche.html.twig',
array('donnee'=>$donnee));
}
public function autorecherchesoumission(GeneralServicetext $service, $donnee,$page)
{
$em = $this->getDoctrine()->getManager();
$session = $this->get('session');
$villelivraison = $session->get('villelivraison');
if($this->getUser() != null and $villelivraison != null)
{
$liste_produit = new \Doctrine\Common\Collections\ArrayCollection();
$liste_cout = $em->getRepository(Coutlivraison::class)
->searchingproduitpage($donnee,$page,6,$villelivraison);
foreach($liste_cout as $cout)
{
$liste_produit[] = $cout->getProduit();
}
}else{
$liste_produit = $em->getRepository(Produit::class)
->searchingproduitpage($donnee,$page,6);
}
$liste_projet = $em->getRepository(Projet::class)
->searchingprojetpage($donnee,$page,6);
if($this->getUser() != null and $villelivraison != null)
{
$all_produit = $em->getRepository(Coutlivraison::class)
->findLastProduit($donnee,1000000,$villelivraison);
}else{
$all_produit = $em->getRepository(Produit::class)
->findLastProduit($donnee,1000000);
}
$all_projet = $em->getRepository(Projet::class)
->findLastProjet($donnee,1000000);
if( count($liste_produit) > count($liste_projet) )
{
$nombrepage = ceil(count($liste_produit)/6);
}else{
$nombrepage = ceil(count($liste_projet)/6);
}
foreach($liste_projet as $projet)
{
$annonces = $em->getRepository(Annonceaction::class)
->findBy(array('projet'=>$projet));
$projet->setNbannonce(count($annonces));
}
$top_produit = new \Doctrine\Common\Collections\ArrayCollection();
if((count($all_produit) + count($all_projet)) == 0)
{
$repository = $em->getRepository(Produit::class);
if($this->getUser() != null and $villelivraison != null)
{
$liste_cout = $em->getRepository(Coutlivraison::class)
->topproduitville(8,$this->getUser()->getVillelivraison());
foreach($liste_cout as $cout)
{
$top_produit[] = $cout->getProduit();
}
}else{
$top_produit = $repository->topProduit(8);
}
}
return $this->render($service->getThemeDirectory().'/Produit/Produit/Produit/autorecherchesoumission.html.twig',
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));
}
public function addnewimageproduit(GeneralServicetext $service, ValidatorInterface $validator, Request $request)
{
$em = $this->getDoctrine()->getManager();
$session = $this->get('session');
$valide = true;
if(!isset($_POST['content_produit']) or !isset($_FILES['imageproduit']) or !isset($_POST['identifiantproduit']))
{
echo '0$$$$$$0$$$$$$0';
exit;
}else{
$tab_content = explode('$$$$$$',$_POST['content_produit']);
if(count($tab_content) >= 6)
{
$titre = trim(htmlspecialchars($tab_content[0]));
$description = trim(htmlspecialchars($tab_content[1]));
$prix = trim(htmlspecialchars($tab_content[2]));
$categorie = trim(htmlspecialchars($tab_content[3]));
$idmarque = trim(htmlspecialchars($tab_content[4]));
$produitdetail = trim(htmlspecialchars($tab_content[5]));
if(isset($_POST['identifiantproduit']) and $_POST['identifiantproduit'] == 0)
{
$scat = $em->getRepository(Souscategorie::class)
->find($categorie);
$marque = $em->getRepository(Marqueproduit::class)
->find($idmarque);
if($scat != null)
{
$vente = new Produit($service);
$vente->setNom($titre);
$vente->setDescription($description);
$vente->setNewprise($prix);
$vente->setSouscategorie($scat);
$vente->setMarqueproduit($marque);
$session->set('idproduit',$vente->getId());
if($this->getUser() != null)
{
$vente->setUser($this->getUser());
}
if($produitdetail == 2)
{
$vente->setProduitdetail(true);
}else{
$vente->setProduitdetail(false);
}
$liste_erreursprod = $validator->validate($vente);
if(count($liste_erreursprod) <= 0)
{
$image = new Imgproduit();
$image->setServicetext($service);
$uploadedFile = $request->files->get('imageproduit');
$liste_erreursimg = $validator->validate($image);
if(count($liste_erreursimg) <= 0 and $uploadedFile){
$em->persist($vente);
$em->flush();
$image->setProduit($vente);
$profilFileName = $this->fileUploader->publicFileUpload($uploadedFile, $image->getUploadRootDir(), 'image');
$image->updateSaveFile($profilFileName);
$em->persist($image);
$em->flush();
echo ''.$image->getId().'$$$$$$'.$image->getWebPath().'$$$$$$'.$vente->getId();
exit;
}else{
echo '0$$$$$$4$$$$$$0';
exit;
}
}else{
echo '0$$$$$$3$$$$$$0';
exit;
}
}else{
echo '0$$$$$$6$$$$$$0';
exit;
}
}else{
if(isset($_POST['identifiantproduit']) and $_POST['identifiantproduit'] != 0)
{
$vente = $em->getRepository(Produit::class)
->find($_POST['identifiantproduit']);
if($vente != null)
{
$envoi = $session->get('idproduit');
if($vente->getUser() == $this->getUser() or $envoi == $vente->getId())
{
$image = new Imgproduit();
$image->setServicetext($service);
$uploadedFile = $request->files->get('imageproduit');
$liste_erreursimg = $validator->validate($image);
if(count($liste_erreursimg) <= 0 and $uploadedFile){
if($this->getUser() != null)
{
$vente->setUser($this->getUser());
}
$image->setProduit($vente);
$profilFileName = $this->fileUploader->publicFileUpload($uploadedFile, $image->getUploadRootDir(), 'image');
$image->updateSaveFile($profilFileName);
$em->persist($image);
$em->flush();
echo ''.$image->getId().'$$$$$$'.$image->getWebPath().'$$$$$$'.$vente->getId();
exit;
}else{
echo '0$$$$$$4$$$$$$0';
exit;
}
}else{
echo '0$$$$$$7$$$$$$0';
exit;
}
}else{
echo '0$$$$$$5$$$$$$0';
exit;
}
}else{
echo '0$$$$$$2$$$$$$0';
exit;
}
}
}else{
echo '0$$$$$$1$$$$$$0';
exit;
}
}
}
public function deleteimageproduit()
{
if(isset($_POST['id']))
{
$id = $_POST['id'];
}else{
$id = 5;
}
$em = $this->getDoctrine()->getManager();
$image = $em->getRepository(Imgproduit::class)
->find($id);
$session = $this->get('session');
$envoi = $session->get('idproduit');
if($image != null and ($image->getProduit()->getUser() == $this->getUser() or $envoi == $image->getProduit()->getId()))
{
$produit = $image->getProduit();
if(count($produit->getImgproduits()) > 1)
{
$em->remove($image);
$em->flush();
echo 1;
exit;
}else{
echo 2;
exit;
}
}else{
echo 0;
exit;
}
}
public function targuemplace($idprod, $newbplace, GeneralServicetext $service) //newbplace est une variable de passer la ligne de controlle ci-dessous.
{
$em = $this->getDoctrine()->getManager();
$session = $this->get('session');
if(isset($_POST['idprod']))
{
$idprod = $_POST['idprod'];
}else{
$idprod = $idprod;
}
if($idprod > 0)
{
$produit = $em->getRepository(Produit::class)
->find($idprod);
$envoi = $session->get('idproduit');
$adminstruct = $em->getRepository(Adminstruct::class)
->findOneBy(array('user'=>$this->getUser()), array('date'=>'desc'),1);
if($produit != null and ($produit->getUser() == $this->getUser() or $envoi == $produit->getId() or $newbplace == 'passs' or $adminstruct != null))//Ligne de controle --------------
{
$session->set('idproduit', $produit->getId());
if(isset($_POST['contentproduit']))//pour la mise à jour du produit
{
$tab_content = explode('$$$$$$',$_POST['contentproduit']);
if(count($tab_content) >= 6)
{
$titre = $tab_content[0];
if($service->chaineValide($titre, 3,150))
{
$produit->setNom($titre);
}
$description = $tab_content[1];
if($service->chaineValide($description, 3,600))
{
$produit->setDescription($description);
}
$prix = $tab_content[2];
if($service->prixValide($prix))
{
$produit->setNewprise($prix);
}
$scat = $em->getRepository(Souscategorie::class)
->find($tab_content[3]);
$marque = $em->getRepository(Marqueproduit::class)
->find($tab_content[4]);
if($scat != null)
{
$produit->setSouscategorie($scat);
}
if($marque != null)
{
$produit->setMarqueproduit($marque);
}
$produitdetail = $tab_content[5];
if($produitdetail == 2)
{
$produit->setProduitdetail(true);
}else{
$produit->setProduitdetail(false);
}
$em->flush();
}
}
$type_projet = $em->getRepository(Typeprojet::class)
->myFindAll();
$liste_projet = new \Doctrine\Common\Collections\ArrayCollection();
if($this->getUser() != null)
{
if($produit->getProduitdetail() == true)
{
$liste_projet = $em->getRepository(Projet::class)
->findBy(array('user'=>$this->getUser(), 'boutiquemobile'=>1), array('nbpoint'=>'desc'));
$adminstruct = $em->getRepository(Adminstruct::class)
->findOneBy(array('user'=>$this->getUser()), array('date'=>'desc'),1);
if($adminstruct != null){
$liste_projetmobile = $em->getRepository(Projetmobile::class)
->findBy(array('projet'=>$adminstruct->getProjet()), array('date'=>'desc'),1);
foreach($liste_projetmobile as $projetmobile)
{
if($projetmobile->getMobile()->getBoutiquemobile() == true)
{
$liste_projet[] = $projetmobile->getMobile();
}
}
}
}else{
$liste_projet = $em->getRepository(Projet::class)
->findBy(array('user'=>$this->getUser(), 'boutiquemobile'=>0), array('nbpoint'=>'desc'));
$adminstruct = $em->getRepository(Adminstruct::class)
->findOneBy(array('user'=>$this->getUser()), array('date'=>'desc'),1);
if($adminstruct != null and $adminstruct->getProjet()->getBoutiquemobile() == false){
$liste_projet[] = $adminstruct->getProjet();
}
}
}else{
if($produit->getUser() != null)
{
if($produit->getProduitdetail() == true)
{
$liste_projet = $em->getRepository(Projet::class)
->findBy(array('user'=>$produit->getUser(), 'boutiquemobile'=>1), array('nbpoint'=>'desc'));
}else{
$liste_projet = $em->getRepository(Projet::class)
->findBy(array('user'=>$produit->getUser(), 'boutiquemobile'=>0), array('nbpoint'=>'desc'));
}
}
}
return $this->render($service->getThemeDirectory().'/Produit/Produit/Produit/targuemplace.html.twig',
array('type_projet'=>$type_projet, 'produit'=>$produit, 'liste_projet'=>$liste_projet));
}else{
echo 0;
exit;
}
}else{
echo 0;
exit;
}
}
public function persoproduitcommande(GeneralServicetext $service)
{
$em = $this->getDoctrine()->getManager();
if(isset($_POST['id']))
{
$id = $_POST['id'];
}else{
$id = 0;
}
$produit = $em->getRepository(Produit::class)
->find($id);
$produit_boutique = $em->getRepository(Produitboutique::class)
->findBy(array('produit'=>$produit));
return $this->render($service->getThemeDirectory().'/Produit/Produit/Panier/persoproduitcommande.html.twig',
array('produit_boutique'=>$produit_boutique, 'produit'=>$produit));
}
public function packvalidationproduit(Produit $produit, GeneralServicetext $service)
{
$em = $this->getDoctrine()->getManager();
$session = $this->get('session');
$session->set('idproduit', 0);
return $this->render($service->getThemeDirectory().'/Produit/Produit/Produit/packvalidationproduit.html.twig',
array('produit'=>$produit));
}
public function autorechercheproduitgros($taille=500)
{
$em = $this->getDoctrine()->getManager();
if(isset($_POST['donnee']))
{
$donnee = $_POST['donnee'];
}else{
$donnee = '';
}
$devise = $this->params->get('devise');
$produit_boutique = $em->getRepository(Produitboutique::class)
->findProduitGros($donnee,$taille);
$tab = array();
foreach($produit_boutique as $produitboutique){
$d = array();
$compt = 0;
$imgproduit = $produitboutique->getProduit()->getBestProduit();
if($imgproduit != null)
{
$d['drapeau'] = $imgproduit->getWebpath();
}else{
$d['drapeau'] = 'template/images/logomarket.png';
}
$entreprises = 'Grossiste: '.$produitboutique->getProjet()->getNom();
if($produitboutique->getNom() != null)
{
$nom = $produitboutique->getNom();
}else{
$nom = $produitboutique->getProduit()->getNom();
}
$d['nom'] = $nom;
$d['slogan'] = $entreprises;
$d['relation'] = $produitboutique->getNewprise().''.$devise;
$d['link'] = $produitboutique->getId();
$tab[] = $d;
}
return new Response(json_encode($tab));
}
public function intanceproduitboutique(Projet $projet, GeneralServicetext $service)
{
$em = $this->getDoctrine()->getManager();
$repository = $em->getRepository(Produitboutique::class);
$liste_produit = $repository->getPublicProductMobile($projet->getId(),1,2000);
return $this->render($service->getThemeDirectory().'/Produit/Produit/Produit/intanceproduitboutique.html.twig',
array('projet'=>$projet, 'liste_produit'=>$liste_produit));
}
public function listeproduit(Projet $projet, $page, $nbperpage, GeneralServicetext $service)
{
$em = $this->getDoctrine()->getManager();
if(isset($_GET['page']))
{
$page = $_GET['page'];
}else{
$page = $page;
}
if(isset($_GET['nbperpage']))
{
$nbperpage = $_GET['nbperpage'];
}else{
$nbperpage = $nbperpage;
}
$repository = $em->getRepository(Produitboutique::class);
$liste_produit = $repository->getPublicProductMobile($projet->getId(),$page,$nbperpage);
$pdf = new PDFProduit('P','mm','A4');
$addpagedeux = false;
$pdf->AliasNbPages();
$pdf->AddPage();
$page = 1;
$pdf->myheader('Impression du: '.date('d').'-'.date('m').'-'.date('Y'),'Noel K.','Prix Officiels sur market.afhunt.com');
$pdf->headerdescriptionLivreurMobile();
$nbligne = 0;
$total = 0;
$nbarticle = 0;
foreach($liste_produit as $produitboutique)
{
if($produitboutique->getProjet()->getBoutiquemobile() == false)
{
$prixachat = $produitboutique->getPrixachat();
}else{
$produitgro = $produitboutique->getProduit()->getProduitgro();
$repository = $em->getRepository(Projetmobile::class);
$projetmobile = $repository->findOneBy(array('mobile'=>$projet));
if($produitgro != null and $projetmobile != null)
{
$repository = $em->getRepository(Produitboutique::class);
$produitboutiquegros = $repository->findOneBy(array('projet'=>$projetmobile->getProjet(), 'produit'=>$produitgro));
if($produitgro->getNbpiece() > 0 and $produitboutiquegros != null)
{
$prixachat = ceil($produitboutiquegros->getPrixachat()/$produitgro->getNbpiece());
}else{
$prixachat = $produitboutique->getNewprise();
}
}else{
$prixachat = $produitboutique->getNewprise();
}
}
$prixvente = $produitboutique->getNewprise();
$pdf->addProductLivreurMobile($produitboutique->getProduit()->getRef(), $service->retireAccent($produitboutique->getProduit()->name(35)),$prixachat , $prixvente);
if($nbligne >= 30 and $nbligne <= 36)
{
$addpagedeux = true;
$y = $pdf->GetY();
if ($y >= 250){
$pdf->AddPage();
$pdf->setY(15);
$addpagedeux = false;
}
}else{
$addpagedeux = false;
}
$nbligne++;
}
if($addpagedeux == true)
{
$pdf->AddPage();
$addpagedeux = false;
}
$pluscouteux = '____';
$moinscouteux = '____';
$pluscommander = '____';
$pdf->statistique($pluscouteux, $moinscouteux, $pluscommander, 'Boutique : Yaounde ','Quartier: Biyem-Assi', 'Tel: 693839823','680288416',$page,$service->retireAccent($projet->getNom()),'Noel K.','Auteur');
$pdf->Output();
}
public function produitsdisponibles(Projet $projet, GeneralServicetext $service)
{
$em = $this->getDoctrine()->getManager();
$repository = $em->getRepository(Produit::class);
//$array_prod = $repository->produitsBoutiques($projet->getId());//On sélectionne un tableau contenant les ID des produits Vendu
$pb_produit = $em->getRepository(Produitboutique::class)
->getPublicProductMobile($projet->getId(),1,2000);
$array_prod = array(0);
$i = 1;
foreach($pb_produit as $prob)
{
$array_prod[$i] = $prob->getProduit()->getId();
$i++;
}
if($projet->getBoutiquemobile() == true)
{
$detail = 1;
}else{
$detail = 0;
}
$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.
return $this->render($service->getThemeDirectory().'/Produit/Produit/Produit/produitsdisponibles.html.twig',
array('projet'=>$projet, 'liste_produit'=>$liste_produit));
}
public function produitsfavoris(GeneralServicetext $service, $page)
{
$em = $this->getDoctrine()->getManager();
$liste_produit = $em->getRepository(Animationproduit::class)
->produitsfavoris($page, 12);
return $this->render($service->getThemeDirectory().'/Produit/Produit/Produit/produitsfavoris.html.twig',
array('liste_produit'=>$liste_produit,'page'=>$page,'nombrepage' => ceil(count($liste_produit)/12)));
}
}