<?php
namespace App\Controller\Projet\Projet;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Response;
use App\Entity\Projet\Projet\Projet;
use App\Entity\Projet\Projet\Fournisseur;
use App\Entity\Projet\Projet\Projetmobile;
use App\Entity\Projet\Projet\Imgprofilprojet;
use App\Entity\Projet\Projet\Imgcouvertureprojet;
use App\Form\Projet\Projet\ProjetType;
use App\Form\Projet\Projet\ProjeteditType;
use App\Entity\Produit\Produit\Produit;
use App\Entity\Produit\Produit\Panier;
use App\Entity\Produit\Produit\Produitpanier;
use App\Entity\Produit\Produit\Coutlivraison;
use App\Entity\Produit\Produit\Produitboutique;
use App\Entity\Produit\Service\Ville;
use App\Entity\Produit\Produit\Detailproduit;
use App\Entity\Users\User\User;
use Symfony\Component\HttpFoundation\File\UploadedFile;
use App\Entity\Users\Annonce\Annonceaction;
use Symfony\Component\HttpFoundation\Request;
use App\Service\Servicetext\GeneralServicetext;
use App\Entity\Projet\Projet\Typeprojet;
use App\Entity\Users\User\Adminstruct;
use App\Entity\Users\User\Suivre;
use App\Entity\Produit\Service\Pays;
use App\Entity\Projet\Projet\Visiteurprojet;
use App\Entity\Projet\Tresorerie\Versementrecette;
use App\Entity\Users\User\Commerciauxprojet;
use App\Entity\Projet\Tresorerie\Operations;
use App\Entity\Projet\Tresorerie\Projetinvest;
use App\Twig\TwigExtensions;
use Symfony\Component\DependencyInjection\ParameterBag\ParameterBagInterface;
use App\Service\Projet\Projet\TypeprojetService;
use App\Service\Produit\Service\ContinentService;
use App\Service\Produit\Produit\ProduitService;
use App\Service\Projet\Tresorerie\ProjetinvestService;
use Symfony\Component\Validator\Validator\ValidatorInterface;
class ProjetController extends AbstractController
{
private $params;
private $typeprojetService;
private $continentService;
private $projetinvestService;
public function __construct(ParameterBagInterface $params, TypeprojetService $typeprojetService, ContinentService $continentService, ProduitService $produitService, ProjetinvestService $projetinvestService)
{
$this->params = $params;
$this->typeprojetService = $typeprojetService;
$this->continentService = $continentService;
$this->produitService = $produitService;
$this->projetinvestService = $projetinvestService;
}
public function nouveauprojet(GeneralServicetext $service)
{
$oldprojet = null;
$em = $this->getDoctrine()->getManager();
if($this->getUser() != null)
{
$oldprojet = $em->getRepository(Projet::class)
->findOneBy(array('user'=>$this->getUser(),'inscriptionacheve'=>false));
if($oldprojet != null)
{
$this->get('session')->getFlashBag()->add('information','<span class="fa fa-frown-o"></span> Inscription de '.$oldprojet->getNom().' non achevée. Terminez maintenant!');
}
}
$top_projet = $em->getRepository(Projet::class)
->topprojetsite(3);
foreach($top_projet as $projet)
{
$annonces = $em->getRepository(Annonceaction::class)
->findBy(array('projet'=>$projet));
$projet->setNbannonce(count($annonces));
}
return $this->render($service->getThemeDirectory().'/Projet/Projet/Projet/nouveauprojet.html.twig',
array('oldprojet'=>$oldprojet,'top_projet'=>$top_projet));
}
public function nomnouveauprojet(GeneralServicetext $service)
{
$em = $this->getDoctrine()->getManager();
if(isset($_POST['nom']) and isset($_POST['type']) and isset($_POST['tel']) and isset($_POST['email']) and isset($_POST['id']))
{
$produit = $em->getRepository(Produit::class)
->find($_POST['id']);
$type = $em->getRepository(Typeprojet::class)
->find($_POST['type']);
if($produit != null and $type != null)
{
$nom = 'UPlace-'.$service->getPassword(5);
$password = $service->getPassword(16);
$email = $_POST['email'];
$tel = $_POST['tel'];
$username = '';
if($email != '')
{
$username = $email;
}else if($tel != '')
{
$username = $tel;
}
$olduser = $em->getRepository(User::class)
->findOneBy(array('username'=>$username));
if($olduser == null or $this->getUser() != null)
{
if($this->getUser() == null)
{
$user = new User($service);
$user->setNom($nom);
$user->setUsername($username);
$user->setPassword($password);
$user->setComplet(false);
$user->setTel($tel);
$em->persist($user);
$em->flush();
$this->get('session')->set('user_login_id', $user->getId());
}else{
if($produit->getUser() != null)
{
$user = $produit->getUser();
}else{
$user = $this->getUser();
}
if($user->getTel() == null and $tel != '')
{
$user->setTel($tel);
$em->flush();
}
}
$nomprojet = $_POST['nom'];
$projet = new Projet($service);
$projet->setNom($nomprojet);
$projet->setEmail($email);
$projet->setTel($tel);
$projet->setUser($user);
$projet->setTypeprojet($type);
$produit->setUser($user);
$em->persist($projet);
$em->flush();
return $this->redirect($this->generateUrl('produit_produit_targue_boutique_produit',array('idprod'=>$produit->getId(), 'newbplace'=>'passs')));
}else{
echo 1;
exit;
}
}
}
echo 0;
exit;
}
public function savecaracteristique(Produit $produit)
{
$em = $this->getDoctrine()->getManager();
if(isset($_POST['nom']) and isset($_POST['valeur']))
{
$nom = $_POST['nom'];
$valeur = $_POST['valeur'];
}else{
$nom = '';
$valeur = '';
}
if($nom != '' and $valeur != '')
{
$caract = new Detailproduit();
$caract->setNom($nom);
$caract->setValeur($valeur);
$caract->setProduit($produit);
$em->persist($caract);
$em->flush();
return $this->redirect($this->generateUrl('projet_projet_adresse_binplace_nouveau_projet',
array('id'=>$produit->getId(), 'auth'=>'access')));
}else{
echo 0;
exit;
}
}
public function deletecaracteristique(Produit $produit)
{
$em = $this->getDoctrine()->getManager();
if(isset($_POST['idcaract']))
{
$idcaract = $_POST['idcaract'];
}else{
$idcaract = 0;
}
if($idcaract > 0)
{
$caract = $em->getRepository(Detailproduit::class)
->find($idcaract);
if($caract != null)
{
$em->remove($caract);
$em->flush();
return $this->redirect($this->generateUrl('projet_projet_adresse_binplace_nouveau_projet',
array('id'=>$produit->getId(), 'auth'=>'access')));
}
}else{
echo 0;
exit;
}
}
public function deletepointlivraison(Produit $produit)
{
$em = $this->getDoctrine()->getManager();
if(isset($_POST['idcaract']))
{
$idcaract = $_POST['idcaract'];
}else{
$idcaract = 0;
}
if($idcaract > 0)
{
$caract = $em->getRepository(Coutlivraison::class)
->find($idcaract);
if($caract != null)
{
$em->remove($caract);
$em->flush();
return $this->redirect($this->generateUrl('projet_projet_enregistrer_pays_projet_nouvel_binplace',array('id'=>$produit->getId())));
}
}else{
echo 0;
exit;
}
}
public function caracteristiqueproduit(Produit $produit, GeneralServicetext $service, $auth)
{
$em = $this->getDoctrine()->getManager();
if(isset($_POST['listean']))
{
$listean = htmlspecialchars(trim($_POST['listean']));
}else{
$listean = $auth;
}
if($listean != '')
{
$addnew = false;
if($listean != 'access')
{
$tab = explode('-', $listean);
$lis_projet = $em->getRepository(Projet::class)
->findBy(array('id'=>$tab));
foreach($lis_projet as $projet)
{
$oldprodb = $em->getRepository(Produitboutique::class)
->findOneBy(array('produit'=>$produit,'projet'=>$projet));
if($oldprodb == null)
{
$prodb = new Produitboutique();
$prodb->setProjet($projet);
$prodb->setProduit($produit);
$prodb->setNewprise($produit->getNewprise());
$prodb->setUser($produit->getUser());
$em->persist($prodb);
$em->flush();
}else{
$oldprodb->setNewprise($produit->getNewprise());
$oldprodb->setUser($produit->getUser());
$em->flush();
}
$addnew = true;
}
}
if(isset($_POST['idproduitgros']))
{
if($produit->getProduitdetail() == true)
{
$oldprodgros = $em->getRepository(Produitboutique::class)
->find($_POST['idproduitgros']);
if($oldprodgros != null and $produit != $oldprodgros->getProduit())
{
$produit->setProduitgro($oldprodgros->getProduit());
$em->flush();
}
}else{
$produit->setNbpiece($_POST['idproduitgros']);
$em->flush();
}
}
if($produit->getUser() != null and ($addnew == true or $listean == 'access'))
{
$liste_caract = $em->getRepository(Detailproduit::class)
->findBy(array('produit'=>$produit), array('date'=>'asc'));
return $this->render($service->getThemeDirectory().'/Produit/Produit/Produit/caracteristiqueproduit.html.twig',
array('produit'=>$produit, 'liste_caract'=>$liste_caract));
}else{
echo 1;
exit;
}
}else{
echo 0;
exit;
}
}
public function pointsdevente(Produit $produit, GeneralServicetext $service)
{
$em = $this->getDoctrine()->getManager();
if(isset($_POST['idboutique']) and isset($_POST['ville']) and isset($_POST['quartier']) and isset($_POST['cout']))
{
$projet = $em->getRepository(Projet::class)
->find($_POST['idboutique']);
$produitboutique = $em->getRepository(Produitboutique::class)
->findOneBy(array('projet'=>$projet,'produit'=>$produit));
if($produitboutique != null)
{
$ville = $em->getRepository(Ville::class)
->myFindByName($_POST['ville']);
if($ville != null)
{
$oldpoint = $em->getRepository(Coutlivraison::class)
->findBy(array('ville'=>$ville, 'produitboutique'=>$produitboutique,'quartiertext'=>$_POST['quartier']));
if($oldpoint == null)
{
$point = new Coutlivraison($service);
$point->setMontant($_POST['cout']);
$point->setQuartiertext($_POST['quartier']);
$point->setUser($produit->getUser());
$point->setVille($ville);
$point->setProduitboutique($produitboutique);
$em->persist($point);
$em->flush();
}
}else{
$ville = new Ville($service);
$ville->setNom($_POST['ville']);
$ville->setUser($produit->getUser());
$em->persist($ville);
$em->flush();
$point = new Coutlivraison($service);
$point->setMontant($_POST['cout']);
$point->setQuartiertext($_POST['quartier']);
$point->setUser($produit->getUser());
$point->setVille($ville);
$point->setProduitboutique($produitboutique);
$em->persist($point);
$em->flush();
}
}
}
$liste_point = $em->getRepository(Coutlivraison::class)
->getPointDeVenteProduit($produit->getId(),1,500);
$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/pointsdevente.html.twig',
array('produit'=>$produit, 'liste_point'=>$liste_point, 'liste_projet'=>$liste_projet));
}
public function accesbinplacename(Projet $projet, GeneralServicetext $service)
{
if($projet->getValide() == false)
{
if($this->getUser() == $projet->getUser())
{
return $this->redirect($this->generateUrl('projet_projet_ajouter_nouveau_projet_bin'));
}else{
return $this->redirect($this->generateUrl('users_annonce_actualite_accueil'));
}
}else{
return $this->render($service->getThemeDirectory().'/Projet/Projet/Projet/accesbinplacename.html.twig', array('projet'=>$projet));
}
}
public function changerprojetconnecter($page, $projetconnecter)
{
$em = $this->getDoctrine()->getManager();
if($this->getUser() != null)
{
$this->getUser()->setProjetconnecter($projetconnecter);
$em->flush();
}
$projet = $em->getRepository(Projet::class)
->find($page);
if($projet == null)
{
return $this->redirect($this->generateUrl('projet_projet_journal_nouvelles_annonces_desprojets'));
}else{
return $this->redirect($this->generateUrl('projet_projet_accueil_binplace_projet_name',array('binplace'=>$projet->getBinplace())));
}
}
public function quelquesabonneprojetuser(Projet $projet, GeneralServicetext $service)
{
$user = $projet->getUser();
$em = $this->getDoctrine()->getManager();
$liste_abonne = $em->getRepository(Suivre::class)
->abonnementAndAbonne($user->getId());
$newcollection = new \Doctrine\Common\Collections\ArrayCollection();
if(count($liste_abonne) < 2)
{
$newcollection[] = $user;
}
$all_abonne = array();
$i = 0;
foreach($liste_abonne as $abonne)
{
if(count($newcollection) < 2)
{
if($abonne->getDemande() != $user)
{
$newcollection[] = $abonne->getDemande();
if(!in_array($abonne->getDemande()->getId(),$all_abonne))
{
$all_abonne[$i] = $abonne->getDemande()->getId();
$i++;
}
}else{
$newcollection[] = $abonne->getBoss();
if(!in_array($abonne->getBoss()->getId(),$all_abonne))
{
$all_abonne[$i] = $abonne->getBoss()->getId();
$i++;
}
}
}else{
if($abonne->getDemande() != $user)
{
if(!in_array($abonne->getDemande()->getId(),$all_abonne))
{
$all_abonne[$i] = $abonne->getDemande()->getId();
$i++;
}
}else{
if(!in_array($abonne->getBoss()->getId(),$all_abonne))
{
$all_abonne[$i] = $abonne->getBoss()->getId();
$i++;
}
}
}
}
$projet->setNbabonne(count($all_abonne));
$em->flush();
return $this->render($service->getThemeDirectory().'/Projet/Projet/Projet/quelquesabonneprojetuser.html.twig',
array('projet'=>$projet,'user'=>$user,'liste_abonne'=>$liste_abonne,'newcollection'=>$newcollection,'all_abonne'=>$all_abonne));
}
public function listeabonneprojetuser(Projet $projet, GeneralServicetext $service)
{
return $this->render($service->getThemeDirectory().'/Projet/Projet/Projet/listeabonneprojetuser.html.twig',
array('projet'=>$projet));
}
public function rechercheabonneprojetpage(Projet $projet, GeneralServicetext $service, $page)
{
$user = $projet->getUser();
$em = $this->getDoctrine()->getManager();
$liste_abonne = $em->getRepository(Suivre::class)
->rechercheabonneprojetpage($user->getId(),$page,6);
$newcollection = new \Doctrine\Common\Collections\ArrayCollection();
$nombrepage = ceil(count($liste_abonne)/6);
$user_connecter = array();
if($nombrepage == 0 or $nombrepage == $page)
{
$newcollection[] = $user;
if($this->getUser() != null and $this->getUser() != $user)
{
$isconnect = $em->getRepository(Suivre::class)
->userAsuitB($user->getId(),$this->getUser()->getId());
$isabonnement = $em->getRepository(Suivre::class)
->userAsuitB($this->getUser()->getId(),$user->getId());
if($isconnect == true)
{
$user->setIsabonne(true);
}else{
$user->setIsabonne(false);
}
if($isabonnement == true)
{
$user->setIsabonnement(true);
}else{
$user->setIsabonnement(false);
}
}else{
$user->setIsabonne(false);
$user->setIsabonnement(false);
}
}
$i = 0;
foreach($liste_abonne as $abonne)
{
if($this->getUser() != null and $abonne->getDemande() != $user)
{
$isconnect = $em->getRepository(Suivre::class)
->userAsuitB($abonne->getDemande()->getId(),$this->getUser()->getId());
$isabonnement = $em->getRepository(Suivre::class)
->userAsuitB($this->getUser()->getId(),$abonne->getDemande()->getId());
if($isconnect == true)
{
$abonne->getDemande()->setIsabonne(true);
}else{
$abonne->getDemande()->setIsabonne(false);
}
if($isabonnement == true)
{
$abonne->getDemande()->setIsabonnement(true);
}else{
$abonne->getDemande()->setIsabonnement(false);
}
if(!in_array($abonne->getDemande()->getId(),$user_connecter))
{
$newcollection[] = $abonne->getDemande();
$user_connecter[$i] = $abonne->getDemande()->getId();
$i++;
}
}else{
if($this->getUser() != null and $abonne->getBoss() != $user)
{
$isconnect = $em->getRepository(Suivre::class)
->userAsuitB($abonne->getBoss()->getId(),$this->getUser()->getId());
$isabonnement = $em->getRepository(Suivre::class)
->userAsuitB($this->getUser()->getId(),$abonne->getBoss()->getId());
if($isconnect == true)
{
$abonne->getBoss()->setIsabonne(true);
}else{
$abonne->getBoss()->setIsabonne(false);
}
if($isabonnement == true)
{
$abonne->getBoss()->setIsabonnement(true);
}else{
$abonne->getBoss()->setIsabonnement(false);
}
if(!in_array($abonne->getBoss()->getId(),$user_connecter))
{
$newcollection[] = $abonne->getBoss();
$user_connecter[$i] = $abonne->getBoss()->getId();
$i++;
}
}else{
if($abonne->getDemande() != $user)
{
$abonne->getDemande()->setIsabonne(false);
$abonne->getDemande()->setIsabonnement(false);
if(!in_array($abonne->getDemande()->getId(),$user_connecter))
{
$newcollection[] = $abonne->getDemande();
$user_connecter[$i] = $abonne->getDemande()->getId();
$i++;
}
}else{
$abonne->getBoss()->setIsabonne(false);
$abonne->getBoss()->setIsabonnement(false);
if(!in_array($abonne->getBoss()->getId(),$user_connecter))
{
$newcollection[] = $abonne->getBoss();
$user_connecter[$i] = $abonne->getBoss()->getId();
$i++;
}
}
}
}
}
return $this->render($service->getThemeDirectory().'/Projet/Projet/Projet/rechercheabonneprojetpage.html.twig',
array('user'=>$user,'liste_abonne'=>$newcollection,'nombrepage'=>$nombrepage,'page'=>$page,'projet'=>$projet));
}
public function contactbinplace(Projet $projet, GeneralServicetext $service)
{
return $this->render($service->getThemeDirectory().'/Projet/Projet/Projet/contactbinplace.html.twig',
array('projet'=>$projet));
}
public function enregistrementsiteweb(Projet $projet)
{
$em = $this->getDoctrine()->getManager();
if(isset($_POST['donnee']))
{
$donnee = trim(htmlspecialchars($_POST['donnee']));
}else{
$donnee = '';
}
if($this->getUser() == $projet->getUser())
{
if($donnee != '')
{
$projet->setSiteweb($donnee);
$em->flush();
}
$liste_projet = $em->getRepository(Projet::class)
->villeprojetpays($projet->getPays()->getId());
$tab = array();
foreach($liste_projet as $propat){
if($propat['ville'] != null)
{
$d = array();
$d['drapeau'] = $propat['id'];
$d['nom'] = $propat['ville'];
$tab[] = $d;
}
}
return new Response(json_encode($tab));
}else{
echo 0;
exit;
}
}
public function updateville(Projet $projet)
{
$em = $this->getDoctrine()->getManager();
if(isset($_POST['ville']))
{
$ville = trim(htmlspecialchars($_POST['ville']));
}else{
$ville = '';
}
if($this->getUser() == $projet->getUser())
{
if($ville != '')
{
$projet->setVille($ville);
$em->flush();
}
$liste_projet = $em->getRepository(Projet::class)
->sloganbinplace();
$tab = array();
foreach($liste_projet as $prolog){
if($prolog->getSlogan() != null and $prolog->getSlogan() != "")
{
$d = array();
if($prolog->getImgprofilprojet() != null)
{
$d['drapeau'] = $prolog->getImgprofilprojet()->getWebpath();
}else{
$d['drapeau'] = 'images/icons/avatarprojet.jpg';
}
$d['nom'] = $prolog->getSlogan();
$tab[] = $d;
}
}
return new Response(json_encode($tab));
}else{
echo 0;
exit;
}
}
public function updateslogan(Projet $projet)
{
$em = $this->getDoctrine()->getManager();
if(isset($_POST['slogan']))
{
$slogan = trim(htmlspecialchars($_POST['slogan']));
}else{
$slogan = '';
}
if($this->getUser() == $projet->getUser())
{
if($slogan != '')
{
$projet->setSlogan($slogan);
$em->flush();
}
echo $projet->getNom();
exit;
}else{
echo 0;
exit;
}
}
public function updatereseausociaux(Projet $projet)
{
$em = $this->getDoctrine()->getManager();
if(isset($_POST['facebook']))
{
$facebook = trim(htmlspecialchars($_POST['facebook']));
}else{
$facebook = '';
}
if(isset($_POST['twitter']))
{
$twitter = trim(htmlspecialchars($_POST['twitter']));
}else{
$twitter = '';
}
if(isset($_POST['google']))
{
$google = trim(htmlspecialchars($_POST['google']));
}else{
$google = '';
}
if($this->getUser() == $projet->getUser())
{
if($facebook != '')
{
$projet->setFacebook($facebook);
$em->flush();
}
if($twitter != '')
{
$projet->setTwitter($twitter);
$em->flush();
}
if($google != '')
{
$projet->setGoogle($google);
$em->flush();
}
echo $projet->getNom();
exit;
}else{
echo 0;
exit;
}
}
public function updatelastreseau(Projet $projet)
{
$em = $this->getDoctrine()->getManager();
if(isset($_POST['linkedin']))
{
$linkedin = trim(htmlspecialchars($_POST['linkedin']));
}else{
$linkedin = '';
}
if($this->getUser() == $projet->getUser())
{
if($linkedin != '')
{
$projet->setLinkedin($linkedin);
$em->flush();
}
}
$liste_pays = $em->getRepository(Pays::class)
->findAll();
$tab = array();
foreach($liste_pays as $pays){
$d = array();
if($pays->getDrapeau() != null)
{
$d['drapeau'] = $pays->getDrapeau()->getWebpath();
}else{
$d['drapeau'] = 'images/icons/avatarprojet.jpg';
}
$d['nom'] = $pays->getCode();
$tab[] = $d;
}
return new Response(json_encode($tab));
}
public function updatenumerotel(Projet $projet)
{
$em = $this->getDoctrine()->getManager();
if(isset($_POST['telephone']))
{
$telephone = trim(htmlspecialchars($_POST['telephone']));
}else{
$telephone = '';
}
if(isset($_POST['code']))
{
$code = trim(htmlspecialchars($_POST['code']));
}else{
$code = '';
}
if($code == '')
{
$code = $projet->getPays()->getCode();
}
if($this->getUser() == $projet->getUser())
{
if($telephone != '' and $code != '')
{
if(isset($_POST['publictel']) and $_POST['publictel'] == 1)
{
$projet->setTelpublic(true);
}else{
$projet->setTelpublic(false);
}
$telephone = $code .' '.$telephone;
$projet->setTel($telephone);
$em->flush();
}
echo $projet->getNom();
exit;
}
echo 0;
exit;
}
public function allnouveauprojet(GeneralServicetext $service)
{
return $this->render($service->getThemeDirectory().'/Projet/Projet/Projet/allnouveauprojet.html.twig');
}
public function searchallnouveauprojet(GeneralServicetext $service, $page)
{
$em = $this->getDoctrine()->getManager();
$tabprojetvisit = array();
$i = 0;
if($this->getUser() != null)
{
$projet_visit = $em->getRepository(Visiteurprojet::class)
->findBy(array('user'=>$this->getUser()));
foreach($projet_visit as $visit)
{
$tabprojetvisit[$i] = $visit->getProjet()->getId();
$i++;
}
$liste_projet = $em->getRepository(Projet::class)
->searchallnouveauprojet($tabprojetvisit,$page,6);
}else{
$liste_projet = $em->getRepository(Projet::class)
->searchallnouveauprojet(array(0),$page,6);
}
$nombrepage = ceil(count($liste_projet)/6);
foreach($liste_projet as $projet)
{
$annonces = $em->getRepository(Annonceaction::class)
->findBy(array('projet'=>$projet));
$projet->setNbannonce(count($annonces));
}
return $this->render($service->getThemeDirectory().'/Projet/Projet/Projet/searchallnouveauprojet.html.twig',
array('liste_projet'=>$liste_projet,'nombrepage'=>$nombrepage,'page'=>$page));
}
public function brandingproje(GeneralServicetext $service)
{
$em = $this->getDoctrine()->getManager();
$liste_projet = $em->getRepository(Projet::class)
->findBy(array('valide'=>true,'profilupload'=>true),array('nbvisit'=>'desc'),1000);
$liste_projet = $service->selectEntities($liste_projet, 2);
return $this->render($service->getThemeDirectory().'/Projet/Projet/Projet/brandingprojet.html.twig', array('projet_aleatoires'=>$liste_projet));
}
public function mplaceslocal($idtype, $idpays, $idregion, $page, $add, GeneralServicetext $service)
{
$em = $this->getDoctrine()->getManager();
$typeprojet = $em->getRepository(Typeprojet::class)
->find($idtype);
$pays = $em->getRepository(Pays::class)
->find($idpays);
$ville = $em->getRepository(Ville::class)
->find($idregion);
if($idtype != 0)
{
if($idpays != 0)
{
if($idregion != 0)
{
$liste_projet = $em->getRepository(Projet::class)
->findProjetTypePaysRegion($idtype, $idpays, $idregion, $page, 15);
}else{
$liste_projet = $em->getRepository(Projet::class)
->findProjetTypePays($idtype, $idpays, $page, 15);
}
}else{
if($idregion != 0)
{
$liste_projet = $em->getRepository(Projet::class)
->findProjetTypeRegion($idtype, $idregion, $page, 15);
}else{
$liste_projet = $em->getRepository(Projet::class)
->findProjetType($idtype, $page, 15);
}
}
}else{
if($idpays != 0)
{
if($idregion != 0)
{
$liste_projet = $em->getRepository(Projet::class)
->findProjetPaysRegion($idpays, $idregion, $page, 15);
}else{
$liste_projet = $em->getRepository(Projet::class)
->findProjetPays($idpays, $page, 15);
}
}else{
if($idregion != 0)
{
$liste_projet = $em->getRepository(Projet::class)
->findProjetRegion($idregion, $page, 15);
}else{
$liste_projet = $em->getRepository(Projet::class)
->findAllProjet($page, 15);
}
}
}
$liste_pays = $em->getRepository(Pays::class)
->myfindAll();
$liste_type = $em->getRepository(Typeprojet::class)
->myFindAll();
return $this->render($service->getThemeDirectory().'/Projet/Projet/Projet/mplaceslocal.html.twig',
array('liste_projet'=>$liste_projet,'page'=>$page,'nombrepage' => ceil(count($liste_projet)/15),'typeprojet'=>$typeprojet,
'pays'=>$pays, 'ville'=>$ville, 'liste_pays'=>$liste_pays, 'liste_type'=>$liste_type, 'add'=>$add));
}
public function addnewmarketplace(GeneralServicetext $service, Request $request)
{
$em = $this->getDoctrine()->getManager();
$projet = new Projet($service);
$form = $this->createForm(ProjeteditType::class, $projet);
if($request->getMethod() == 'POST' and $this->getUser() != null)
{
$form->handleRequest($request);
$projet->setUser($this->getUser());
$projet->setServicetext($service);
if ($form->isValid()){
$em->persist($projet);
$em->flush();
return $this->redirect($this->generateUrl('projet_projet_accueil_binplace_projet_name', array('id'=>$projet->getId())));
}else{
$hjgh = $nb;
$this->get('session')->getFlashBag()->add('information','Données invalides.');
}
}
return $this->render($service->getThemeDirectory().'/Produit/Produit/Produitmarket/addnewmarketplace.html.twig',
array('form'=>$form->createView()));
}
public function validationboutique(Projet $projet, GeneralServicetext $service)
{
$em = $this->getDoctrine()->getManager();
if($projet->getValide() == true)
{
$projet->setValide(false);
}else{
$projet->setValide(true);
}
$em->flush();
return $this->redirect($this->generateUrl('users_adminuser_liste_projet_type',
array('id'=>$projet->getTypeprojet()->Id())));
}
public function commandesboutique(Projet $projet, $page, GeneralServicetext $service)
{
$em = $this->getDoctrine()->getManager();
if(isset($_POST['annee']) and isset($_POST['mois']) and isset($_POST['jour']))
{
$annee = $_POST['annee'];
$mois = $_POST['mois'];
$jour = $_POST['jour'];
}else{
$annee = date('Y');
$mois = date('m');
$jour = 0;
}
if($jour == 0)//Sélection de toutes les ventes de la boutique !
{
$liste_panier = $em->getRepository(Panier::class)
->findAllCommandeBoutique($projet->getId(), $page, 50000,$annee.'-'.$mois.'-01',$annee.'-'.$mois.'-31');
}else{
$liste_panier = $em->getRepository(Panier::class)
->findAllCommandeBoutique($projet->getId(), $page, 50000,$annee.'-'.$mois.'-'.$jour,$annee.'-'.$mois.'-'.$jour);
}
return $this->render($service->getThemeDirectory().'/Projet/Projet/Projet/commandesboutique.html.twig',
array('liste_panier'=>$liste_panier,'page'=>$page,'projet'=>$projet,'nombrepage' => ceil(count($liste_panier)/50000),
'currentmois'=>$mois,'currentannee'=>$annee,'currentjour'=>$jour));
}
public function commandesbm(Projet $projet, $page, GeneralServicetext $service)
{
$em = $this->getDoctrine()->getManager();
if(isset($_POST['annee']) and isset($_POST['mois']) and isset($_POST['jour']))
{
$annee = $_POST['annee'];
$mois = $_POST['mois'];
$jour = $_POST['jour'];
}else{
$annee = date('Y');
$mois = date('m');
$jour = 0;
}
if($jour == 0)
{
$liste_versement = $em->getRepository(Versementrecette::class)
->findAllRecetteVerse($projet->getId(), $page, 50000,$annee.'-'.$mois.'-01',$annee.'-'.$mois.'-31');
}else{
$liste_versement = $em->getRepository(Versementrecette::class)
->findAllRecetteVerse($projet->getId(), $page, 50000,$annee.'-'.$mois.'-'.$jour,$annee.'-'.$mois.'-'.$jour);
}
return $this->render($service->getThemeDirectory().'/Projet/Projet/Projet/commandesbm.html.twig',
array('liste_versement'=>$liste_versement,'page'=>$page,'projet'=>$projet,'nombrepage' => ceil(count($liste_versement)/50000),
'currentmois'=>$mois,'currentannee'=>$annee,'currentjour'=>$jour));
}
public function modifiermplace(Projet $projet, GeneralServicetext $service, Request $request, TwigExtensions $extensions, ValidatorInterface $validator)
{
$em = $this->getDoctrine()->getManager();
if($this->getUser() != null and ($extensions->isGrantedStruct($this->getUser(), $projet, 'ROLE_ADMIN_MAGASIN') or $projet->getUser() == $this->getUser()))
{
$formpro = $this->createForm(ProjetType::class, $projet);
if($request->getMethod() == 'POST')
{
$formpro->handleRequest($request);
$projet->setUser($this->getUser());
$projet->setServicetext($service);
$liste_erreurs = $validator->validate($projet);
if(count($liste_erreurs) > 0) {
$this->get('session')->getFlashBag()->add('information','Données invalides.');
}else{
$em->flush();
$this->get('session')->getFlashBag()->add('information','Modification effectuée avec succès !!!');
return $this->redirect($this->generateUrl('projet_projet_structure_modifier_courant_mplace', array('id'=>$projet->getId())));
}
}
$liste_admin = $em->getRepository(Adminstruct::class)
->findBy(array('projet'=>$projet));
return $this->render($service->getThemeDirectory().'/Projet/Projet/Projet/modifiermplace.html.twig',
array('formpro'=>$formpro->createView(),'projet'=>$projet,'liste_admin'=>$liste_admin));
}else{
$this->get('session')->getFlashBag()->add('information','Vous n\'avez pas accès à cette information !!!');
return $this->redirect($this->generateUrl('projet_projet_accueil_binplace_projet_name', array('id'=>$projet->getId())));
}
}
public function uploadelogo(Projet $projet, GeneralServicetext $service, Request $request)
{
$em = $this->getDoctrine()->getManager();
if($request->getMethod() == 'POST')
{
$extension = '';
if(isset($_FILES['imgprofilprojet']) and $_FILES['imgprofilprojet']['error'] == 0)
{
$uploadedFile = new UploadedFile($_FILES['imgprofilprojet']['tmp_name'],$_FILES['imgprofilprojet']['name'],strtolower(substr(strrchr($_FILES['imgprofilprojet']['name'], '.'),1)),$_FILES['imgprofilprojet']['size']);
$extension = strtolower($uploadedFile->getClientOriginalExtension());
if(in_array($extension, array('gif','jpg','png','bmp','jpeg')))
{
$oldprofil = $em->getRepository(Imgprofilprojet::class)
->FindOneBy(array('projet'=>$projet));
if($oldprofil == null)
{
$profil = new Imgprofilprojet($service);
$profil->setId($projet->getId());
$profil->setProjet($projet);
$profil->setFile($uploadedFile);
$em->persist($profil);
$em->flush();
}else{
$em->remove($oldprofil);
$em->flush();
$profil = new Imgprofilprojet($service);
$profil->setId($projet->getId());
$profil->setProjet($projet);
$profil->setFile($uploadedFile);
$em->persist($profil);
$em->flush();
}
}
}
}
return $this->redirect($this->generateUrl('projet_projet_structure_modifier_courant_mplace', array('id'=>$projet->getId())));
}
public function uploadcouverture(Projet $projet, GeneralServicetext $service, Request $request)
{
$em = $this->getDoctrine()->getManager();
$request = $this->getRequest();
if($request->getMethod() == 'POST')
{
$extension = '';
if(isset($_FILES['imgcouvertureprojet']) and $_FILES['imgcouvertureprojet']['error'] == 0)
{
$uploadedFile = new UploadedFile($_FILES['imgcouvertureprojet']['tmp_name'],$_FILES['imgcouvertureprojet']['name'],strtolower(substr(strrchr($_FILES['imgcouvertureprojet']['name'], '.'),1)),$_FILES['imgcouvertureprojet']['size']);
$extension = strtolower($uploadedFile->getClientOriginalExtension());
if(in_array($extension, array('gif','jpg','png','bmp','jpeg')))
{
$oldprofil = $em->getRepository(Imgcouvertureprojet::class)
->FindOneBy(array('projet'=>$projet));
if($oldprofil == null)
{
$profil = new imgcouvertureprojet($service);
$profil->setId($projet->getId());
$profil->setProjet($projet);
$profil->setFile($uploadedFile);
$em->persist($profil);
$em->flush();
}else{
$em->remove($oldprofil);
$em->flush();
$profil = new imgcouvertureprojet($service);
$profil->setId($projet->getId());
$profil->setProjet($projet);
$profil->setFile($uploadedFile);
$em->persist($profil);
$em->flush();
}
}
}
}
return $this->redirect($this->generateUrl('projet_projet_structure_modifier_courant_mplace', array('id'=>$projet->getId())));
}
public function mediasociaux(Projet $projet, $position, GeneralServicetext $service, Request $request)
{
$em = $this->getDoctrine()->getManager();
if($position == 0)
{
if(isset($_POST['facebook']) and $service->siteweb($_POST['facebook']))
{
$projet->setFacebook($_POST['facebook']);
}
if(isset($_POST['twitter']) and $service->siteweb($_POST['twitter']))
{
$projet->setTwitter($_POST['twitter']);
}
if(isset($_POST['linkedin']) and $service->siteweb($_POST['linkedin']))
{
$projet->setLinkedin($_POST['linkedin']);
}
if(isset($_POST['youtube']) and $service->siteweb($_POST['youtube']))
{
$projet->setGoogle($_POST['youtube']);
}
}else{
if(isset($_POST['tel']) and $service->telephone($_POST['tel']))
{
$projet->setTel($_POST['tel']);
}
if(isset($_POST['telpublic']))
{
if($_POST['telpublic'] == true or $_POST['telpublic'] == "on")
{
$projet->setTelpublic(true);
}else{
$projet->setTelpublic(false);
}
}
if(isset($_POST['email']) and $service->email($_POST['email']))
{
$projet->setEmail($_POST['email']);
}
if(isset($_POST['siteweb']) and $service->siteweb($_POST['siteweb']))
{
$projet->setSiteweb($_POST['siteweb']);
}
}
$em->flush();
return $this->redirect($this->generateUrl('projet_projet_structure_modifier_courant_mplace', array('id'=>$projet->getId())));
}
public function formaddnewprojet(GeneralServicetext $service)
{
$em = $this->getDoctrine()->getManager();
$type_projet = $em->getRepository(Typeprojet::class)
->myFindAll();
return $this->render($service->getThemeDirectory().'/Projet/Projet/Projet/formaddnewprojet.html.twig',
array('type_projet'=>$type_projet));
}
public function newmarketplace(GeneralServicetext $service)
{
$em = $this->getDoctrine()->getManager();
if(isset($_POST['nom']) and isset($_POST['type']) and isset($_POST['tel']) and isset($_POST['email']))
{
$type = $em->getRepository(Typeprojet::class)
->find($_POST['type']);
if($type != null)
{
$nom = 'UPlace-'.$service->getPassword(5);
$password = $service->getPassword(16);
$email = $_POST['email'];
$tel = $_POST['tel'];
$username = '';
if($email != '')
{
$username = $email;
}else if($tel != '')
{
$username = $tel;
}
$olduser = $em->getRepository(User::class)
->findOneBy(array('username'=>$username));
if($olduser == null or $this->getUser() != null)
{
if($this->getUser() == null)
{
$user = new User($service);
$user->setNom($nom);
$user->setUsername($username);
$user->setPassword($password);
$user->setComplet(false);
$user->setTel($tel);
$em->persist($user);
$em->flush();
$this->get('session')->set('user_login_id', $user->getId());
}else{
$user = $this->getUser();
if($user->getTel() == null and $tel != '')
{
$user->setTel($tel);
$em->flush();
}
}
$nomprojet = $_POST['nom'];
$projet = new Projet($service);
$projet->setNom($nomprojet);
$projet->setEmail($email);
$projet->setTel($tel);
$projet->setUser($user);
$projet->setTypeprojet($type);
$em->persist($projet);
$em->flush();
echo $this->generateUrl('projet_projet_accueil_binplace_projet_name', array('id'=>$projet->getId()));
exit;
}else{
echo -1;
exit;
}
}
}
echo 0;
exit;
}
public function mobilesmplace(Projet $projet, GeneralServicetext $service)
{
$em = $this->getDoctrine()->getManager();
$projet_mobile = $em->getRepository(Projetmobile::class)
->findBy(array('projet'=>$projet), array('date'=>'asc'));
return $this->render($service->getThemeDirectory().'/Projet/Projet/Projet/mobilesmplace.html.twig',
array('projet'=>$projet, 'projet_mobile'=>$projet_mobile));
}
public function commerciauxmplace(Projet $projet, GeneralServicetext $service)
{
$em = $this->getDoctrine()->getManager();
$liste_commercial = $em->getRepository(Commerciauxprojet::class)
->findBy(array('projet'=>$projet,'client'=>0), array('date'=>'asc'));
return $this->render($service->getThemeDirectory().'/Projet/Projet/Projet/commerciauxmplace.html.twig',
array('projet'=>$projet, 'liste_commercial'=>$liste_commercial));
}
public function clientsmplace(Projet $projet, GeneralServicetext $service)
{
$em = $this->getDoctrine()->getManager();
$liste_client = $em->getRepository(Commerciauxprojet::class)
->findBy(array('projet'=>$projet,'client'=>1), array('date'=>'asc'));
return $this->render($service->getThemeDirectory().'/Projet/Projet/Projet/clientsmplace.html.twig',
array('projet'=>$projet, 'liste_client'=>$liste_client));
}
public function extensionmplace(Projet $projet, GeneralServicetext $service)
{
$em = $this->getDoctrine()->getManager();
return $this->render($service->getThemeDirectory().'/Projet/Projet/Projet/extensionmplace.html.twig',
array('projet'=>$projet));
}
public function ajoutboutiquemob(Projet $projet, GeneralServicetext $service)
{
$em = $this->getDoctrine()->getManager();
$type_projet = $em->getRepository(Typeprojet::class)
->myFindMobile();
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']))
{
$type = $em->getRepository(Typeprojet::class)
->find($_POST['type_boutique']);
$livreur = $em->getRepository(User::class)
->findOneBy(array('username'=>$_POST['username_livreur']));
if($type != null and $livreur != null)
{
$oldprojetmobile = $em->getRepository(Projetmobile::class)
->findOneBy(array('livreur'=>$livreur,'proprietaire'=>1));
if($oldprojetmobile == null)
{
$nom = 'UPlace-'.$service->getPassword(5);
$password = $service->getPassword(16);
$email = $_POST['email_boutique'];
$tel = $_POST['tel_boutique'];
$nomprojet = $_POST['nom_boutique'];
$newprojet = new Projet($service);
$newprojet->setNom($nomprojet);
$newprojet->setEmail($email);
$newprojet->setTel($tel);
$newprojet->setUser($this->getUser());
$newprojet->setBoutiquemobile(true);
$newprojet->setTypeprojet($type);
$em->persist($newprojet);
$projetmobile = new Projetmobile();
$projetmobile->setLivreur($livreur);
$projetmobile->setProjet($projet);
$projetmobile->setMobile($newprojet);
$em->persist($projetmobile);
$em->flush();
$this->get('session')->getFlashBag()->add('information','La création de votre boutique mobile a été effectuée avec succès !!!');
}else{
$this->get('session')->getFlashBag()->add('information','Echec !!! Ce livreur est déjà associé comme livreur principal à une autre boutique !!!');
}
}else{
$this->get('session')->getFlashBag()->add('information','Echec !!! Une erreur a été rencontrée lors de la création de votre boutique mobile !!!');
}
return $this->redirect($this->generateUrl('projet_projet_boutique_mobile_mplace', array('id'=>$projet->getId())));
}
return $this->render($service->getThemeDirectory().'/Projet/Projet/Projet/formaddnewprojet.html.twig',
array('projet'=>$projet, 'type_projet'=>$type_projet));
}
public function autorecherchefournisseur($taille=500)
{
$em = $this->getDoctrine()->getManager();
if(isset($_POST['donnee']))
{
$donnee = $_POST['donnee'];
}else{
$donnee = '';
}
$devise = $this->params->get('devise');
$liste_projet = $em->getRepository(Projet::class)
->findLastProjet($donnee,$taille);
$tab = array();
foreach($liste_projet as $projet){
$d = array();
$compt = 0;
if($projet->getImgprofilprojet() != null)
{
$d['drapeau'] = $projet->getImgprofilprojet()->getWebpath();
}else{
$d['drapeau'] = 'template/images/3plan.png';
}
$d['nom'] = $projet->name(30);
$d['slogan'] = $projet->getEmail().' | '.$projet->getTel();
$d['relation'] = 'P: '.$projet->getNbproduit();
$d['link'] = $projet->getId();
$tab[] = $d;
}
return new Response(json_encode($tab));
}
public function createpanierstockmobile(Projet $projet, Produitboutique $produitboutique, GeneralServicetext $service, $position)
{
if(isset($_POST['idfournisseur']))
{
$idfournisseur = $_POST['idfournisseur'];
}else{
$idfournisseur = 0;
}
if(isset($_POST['qte']))
{
$qte = $_POST['qte'];
}else{
$qte = 0;
}
$em = $this->getDoctrine()->getManager();
$fournisseur = $em->getRepository(Projet::class)
->find($idfournisseur);
$oldfp = null;
if($fournisseur != null)
{
$oldfp = $em->getRepository(Fournisseur::class)
->findOneBy(array('projet'=>$projet,'fournisseur'=>$fournisseur));
if($oldfp == null)
{
$oldfp = new Fournisseur();
$oldfp->setProjet($projet);
$oldfp->setFournisseur($fournisseur);
$em->persist($oldfp);
$em->flush();
}
}
if($oldfp != null){
$prixlivraison = 0;
$oldpanier = $em->getRepository(Panier::class)
->findOneBy(array('user'=>$this->getUser(),'sousmis'=>0));
if($oldpanier == null)
{
$panier = new Panier();
$panier->setUser($this->getUser());
$panier->setProjet($projet);
$panier->setPanierdachat(true);
$em->persist($panier);
$produitpanier = new Produitpanier();
$produitpanier->setPanier($panier);
$produitpanier->setProduit($produitboutique->getProduit());
$produitpanier->setPrixunitaire($produitboutique->getNewprise());
$produitpanier->setPrixgros($produitboutique->getPrixachat()); //Enregistrement des prix d'achat du gros
$produitpanier->setQuantite($qte);
$produitpanier->setFournisseur($oldfp);
$produitpanier->setProduitboutique($produitboutique); //Le produit pour lequel le livreur commande (Pour ajouter le stock plustard)
$em->persist($produitpanier);
$em->flush();
$oldpanier = $panier;
}else{
if(count($oldpanier->getProduitpaniers()) != 0)
{
$listprod = $oldpanier->getProduitpaniers();
$trouve = false;
foreach($listprod as $prod)
{
if($prod->getProduit() == $produitboutique->getProduit())
{
$trouve = true;
break;
}
}
$oldpanier->setPanierdachat(true);
if($trouve == false)
{
$produitpanier = new Produitpanier();
$produitpanier->setPanier($oldpanier);
$produitpanier->setProduit($produitboutique->getProduit());
$produitpanier->setPrixunitaire($produitboutique->getNewprise());
$produitpanier->setPrixgros($produitboutique->getPrixachat()); //Enregistrement des prix d'achat du gros
$produitpanier->setQuantite($qte);
$produitpanier->setFournisseur($oldfp);
$produitpanier->setProduitboutique($produitboutique); //Le produit pour lequel le livreur commande (Pour ajouter le stock plustard)
$em->persist($produitpanier);
}
}else{
$oldpanier->setPanierdachat(true);
$produitpanier = new Produitpanier();
$produitpanier->setPanier($oldpanier);
$produitpanier->setProduit($produitboutique->getProduit());
$produitpanier->setPrixunitaire($produitboutique->getNewprise());
$produitpanier->setPrixgros($produitboutique->getPrixachat()); //Enregistrement des prix d'achat du gros
$produitpanier->setQuantite($qte);
$produitpanier->setFournisseur($oldfp);
$produitpanier->setProduitboutique($produitboutique); //Le produit pour lequel le livreur commande (Pour ajouter le stock plustard)
$em->persist($produitpanier);
}
$em->flush();
}
return $this->render($service->getThemeDirectory().'/Produit/Produit/Produitpanier/ravitaillementlivreur.html.twig',
array('oldlivreur'=>$projetmobile,'position'=>$position,'produit'=>$produit,'oldpanier'=>$oldpanier,'oldpb'=>$produitboutique));
}else{
echo 0;
exit;
}
}
public function capitalmagasin(Projet $projet, GeneralServicetext $service)
{
$em = $this->getDoctrine()->getManager();
$liste_charge = $em->getRepository(Operations::class)
->findFondCommerceProjet($projet->getId());
$liste_reclamation = $em->getRepository(Operations::class)
->findReclamationProjet($projet->getId());
$projetinvest = $em->getRepository(Projetinvest::class)
->findOneBy(array('projet'=>$projet), array('date'=>'asc'),1);
return $this->render($service->getThemeDirectory().'/Projet/Projet/Projet/capitalmagasin.html.twig',
array('projet'=>$projet,'liste_charge'=>$liste_charge,'liste_reclamation'=>$liste_reclamation,'projetinvest'=>$projetinvest));
}
public function downloadDataMarketPlace(Projet $projet, GeneralServicetext $service)
{
// data stored in an array called posts
$exportData = array();
$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'));
$exportData[0] = $headerArray;
$dataContinentTable = $this->continentService->getTableItems($projet);
$exportData[1] = Array(
"type" => "table",
"name" => "continent",
"database"=> "mbill",
"data"=> $dataContinentTable[0]
);
$exportData[2] = Array(
"type" => "table",
"name" => "pays",
"database"=> "mbill",
"data"=> $dataContinentTable[1]
);
$dataTypeprojeTable = $this->typeprojetService->getTableItems($projet);
$exportData[3] = Array(
"type" => "table",
"name" => "typeprojet",
"database"=> "mbill",
"data"=> $dataTypeprojeTable[0]
);
$exportData[4] = Array(
"type" => "table",
"name" => "user",
"database"=> "mbill",
"data"=> $dataTypeprojeTable[2]
);
$exportData[5] = Array(
"type" => "table",
"name" => "projet",
"database"=> "mbill",
"data"=> $dataTypeprojeTable[1]
);
$exportData[6] = Array(
"type" => "table",
"name" => "projetmobile",
"database"=> "mbill",
"data"=> $dataTypeprojeTable[3]
);
$exportData[7] = Array(
"type" => "table",
"name" => "adminstruct",
"database"=> "mbill",
"data"=> $dataTypeprojeTable[4]
);
$dataprojeTable = $this->produitService->getTableItems($projet);
$exportData[8] = Array(
"type" => "table",
"name" => "ville",
"database"=> "mbill",
"data"=> $dataprojeTable[0]
);
$exportData[9] = Array(
"type" => "table",
"name" => "categorie",
"database"=> "mbill",
"data"=> $dataprojeTable[1]
);
$exportData[10] = Array(
"type" => "table",
"name" => "souscategorie",
"database"=> "mbill",
"data"=> $dataprojeTable[2]
);
$exportData[11] = Array(
"type" => "table",
"name" => "marqueproduit",
"database"=> "mbill",
"data"=> $dataprojeTable[3]
);
$exportData[12] = Array(
"type" => "table",
"name" => "produit",
"database"=> "mbill",
"data"=> $dataprojeTable[4]
);
$exportData[13] = Array(
"type" => "table",
"name" => "imgproduit",
"database"=> "mbill",
"data"=> $dataprojeTable[5]
);
$exportData[14] = Array(
"type" => "table",
"name" => "detailproduit",
"database"=> "mbill",
"data"=> $dataprojeTable[6]
);
$exportData[15] = Array(
"type" => "table",
"name" => "animationproduit",
"database"=> "mbill",
"data"=> $dataprojeTable[7]
);
$exportData[16] = Array(
"type" => "table",
"name" => "produitboutique",
"database"=> "mbill",
"data"=> $dataprojeTable[8]
);
$exportData[17] = Array(
"type" => "table",
"name" => "coutlivraison",
"database"=> "mbill",
"data"=> $dataprojeTable[9]
);
$exportData[17] = Array(
"type" => "table",
"name" => "fournisseur",
"database"=> "mbill",
"data"=> $dataprojeTable[10]
);
// encode array to json
$json = json_encode($exportData, JSON_UNESCAPED_UNICODE);
$filename = 'marketplace'.$projet->getId().'_data_'. date( 'Y-m-d' );
header("Content-Type: application/json; charset=utf-8");
header("Content-type: application/vnd.ms-excel");
header("Content-Type: application/force-download");
header("Content-Type: application/download");
header("Content-disposition: " . $filename . ".json");
header("Content-disposition: filename=" . $filename . ".json");
print $json;
exit;
}
public function downloadDataTresorerie(Projet $projet, GeneralServicetext $service)
{
$exportData = array();
$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");
$exportData[0] = $headerArray;
$dataProjetinvestTable = $this->projetinvestService->getTableItems($projet);
if(count($dataProjetinvestTable) > 0)
{
$exportData[1] = Array(
"type" => "table",
"name" => "projetinvest",
"database"=> "mbill",
"data"=> $dataProjetinvestTable[0]
);
$exportData[2] = Array(
"type" => "table",
"name" => "operations",
"database"=> "mbill",
"data"=> $dataProjetinvestTable[1]
);
// encode array to json
$json = json_encode($exportData, JSON_UNESCAPED_UNICODE);
$filename = 'marketplace'.$projet->getId().'_tresor_'. date( 'Y-m-d' );
header("Content-Type: application/json; charset=utf-8");
header("Content-type: application/vnd.ms-excel");
header("Content-Type: application/force-download");
header("Content-Type: application/download");
header("Content-disposition: " . $filename . ".json");
header("Content-disposition: filename=" . $filename . ".json");
print $json;
exit;
}else{
$this->get('session')->getFlashBag()->add('information','Echec !!! Il semble que ce projet n\'est pas encore associé à une trésorerie !!!');
return $this->redirect($this->generateUrl('projet_projet_boutique_mobile_mplace', array('id'=>$projet->getId())));
}
}
}