<?php
namespace App\Controller\site;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\Routing\Annotation\Route;
use App\Entity\stock\CommandeClient;
use Symfony\Component\HttpFoundation\Response;
use App\Entity\stock\LigneCommandeClient;
use App\ControllerModel\user\paramUtilTrait;
use App\Types\user\TypeEtat;
use App\Repository\cms\PageRepository;
use App\Repository\user\AbonneRepository;
use App\Repository\cms\ZoneRepository;
use App\Services\param\ParametreManager;
use App\Repository\cms\ArticleRepository;
use App\Repository\cms\RubriqueRepository;
use App\Repository\stock\CategorieProduitRepository;
use App\Repository\user\ProfilRepository;
use App\Repository\user\UtilisateurRepository;
use App\Repository\stock\ProduitRepository;
use App\Repository\cms\TemplateRepository;
use App\Repository\cms\MenuRepository;
use App\Repository\prod\GroupementRepository;
use App\Repository\prod\SurfaceAnneeRepository;
use App\Repository\prod\ProducteurRepository;
use App\Repository\stock\CaracteristiquePrixRepository;
use App\Repository\stock\CibleRepository;
use App\Repository\stock\CommandeClientRepository;
use App\Repository\stock\LigneCommandeClientRepository;
use App\Repository\stock\SacRepository;
use App\Repository\stock\InfoLivrerRepository;
use App\Repository\stock\CommandeRepository;
use App\Repository\prod\ProducteurGroupementRepository;
use App\Repository\stock\CarateristiqueProduitRepository;
use App\Repository\stock\PrixRigueurRepository;
use App\Repository\asso\ProjetRepository;
class SiteController extends AbstractController
{
use paramUtilTrait;
/* public function indexAction()
{
//var_dump('ters');exit;
return $this->render('site/Site/index.html.twig');
}*/
private $data;
public function indexTestAction()
{
//Liste des bannières
$em = $this->getDoctrine()->getManager();
$banniere = $em->getRepository('adminCmsBundle:Rubrique')->getAllOrOneRubriqueArticleActif(2);
//Recupération des activités
$activites = $em->getRepository('adminCmsBundle:Rubrique')->getAllOrOneRubriqueSousActif(3);
$this->data['activites'] = $activites;
$this->data['banniere'] = $banniere;
return $this->render('site/Site/index.html.twig', $this->data);
}
//private $datas;
public function detailsRubriqueAction(Request $request, $id,MenuRepository $menuRepository, AbonneRepository $abonneRepository
, GroupementRepository $groupementRepository, TemplateRepository $templateRepository, PageRepository $pageRepository,
ZoneRepository $zoneRepository, RubriqueRepository $rubriqueRepository)
{
$em = $this->getDoctrine()->getManager();
$adresseWeb = $request->getHost();
//recuperation et traitement des informations sur les zones
$objetInitial= $abonneRepository->findOneBy(['adresseWeb'=>$adresseWeb]);
$rubrique = $rubriqueRepository->find($id);
//traitement des menus
$listeMenu = $this->creerTabMenu($em,0,$objetInitial->getId(), $menuRepository);
if($objetInitial == null ){
$template = $templateRepository->find(20);
}else{
$template = $objetInitial->getTemplate();
// $template = $em->getRepository($this->cmsBundle . 'Template')->find(1);
}
if($template->getNomDossierTemplate()==''){
$nomTemplate = "Default";
}else{
$nomTemplate = $template->getNomDossierTemplate();
} //recuperation et traitement des informations sur les zones
$nomTwig = "detailsRubrique.html.twig";
// $etablissements = $em->getRepository($this->scolariteBundle . 'Etablissement')->getAllActifEtablissementAccueil();
//$rubriques = $em->getRepository('adminCmsBundle:Rubrique')->findAll();
$typeSite=1;
$this->data['rubrique'] = $rubrique;
// $this->data['listeEtablissement'] = $etablissements;
$this->data['listeMenu'] = $listeMenu;
$this->data['objetInitial'] = $objetInitial;
$this->data['objetAbonne'] = $objetInitial;
$this->data['typeSite'] = $typeSite;
$this->data['zoneRepository'] = $zoneRepository;
//$this->datas['rubriques'] = $rubriques;
// var_dump('adminSiteBundle'.':'.$nomTemplate.':'.$nomTwig);exit;
return $this->render('site/'.$nomTemplate.'/'.$nomTwig, $this->data);
}
public function detailsArticleAction(Request $request, $id, MenuRepository $menuRepository, AbonneRepository $abonneRepository
, GroupementRepository $groupementRepository, TemplateRepository $templateRepository, PageRepository $pageRepository,
ZoneRepository $zoneRepository, ArticleRepository $articleRepository)
{
$em = $this->getDoctrine()->getManager();
//recuperation de l'objet classe par rapport
$adresseWeb = $request->getHost();
//recuperation et traitement des informations sur les zones
$objetInitial= $abonneRepository->findOneBy(['adresseWeb'=>$adresseWeb]);
$article = $articleRepository->find($id);
//traitement des menus
$listeMenu = $this->creerTabMenu($em,0,$objetInitial->getId(), $menuRepository);
if($objetInitial == null ){
$template = $templateRepository->find(20);
}else{
$template = $objetInitial->getTemplate();
// $template = $em->getRepository($this->cmsBundle . 'Template')->find(1);
}
if($template->getNomDossierTemplate()==''){
$nomTemplate = "Default";
}else{
$nomTemplate = $template->getNomDossierTemplate();
}
// if(count($getInfoPage)!=0){
// if($getInfoPage->getTwigPage()==''){
// $nomTemplate = "detailArticle.html.twig";
// }else{
// $nomTwig = $getInfoPage->getTwigPage();
// }
// }else{
$nomTwig = "detailsArticle.html.twig";
// }
$typeSite = 1;
$this->data['objetInitial'] = $objetInitial;
$this->data['objetAbonne'] = $objetInitial;
$this->data['article'] = $article;
$this->data['typeSite'] = $typeSite;
$this->data['listeMenu'] = $listeMenu;
$this->data['zoneRepository'] = $zoneRepository;
//var_dump('site'.'/'.$nomTemplate.'/'.$nomTwig);exit;
return $this->render('site'.'/'.$nomTemplate.'/'.$nomTwig, $this->data);
}
public function traitePageTemplateAction(Request $request, AbonneRepository $abonneRepository,
GroupementRepository $groupementRepository, TemplateRepository $templateRepository, PageRepository $pageRepository,
ZoneRepository $zoneRepository, ArticleRepository $articleRepository, RubriqueRepository $rubriqueRepository
,CategorieProduitRepository $categorieRepository , ProducteurRepository $producteurRepository ,ProduitRepository $produitRepository,
MenuRepository $menuRepository, SurfaceAnneeRepository $surfaceAnneeRepository, ProjetRepository $projetRepository){
$em = $this->getDoctrine()->getManager(); //recuperation de l"entité manager
//return $this->redirect($this->generateUrl('app_admin_user_login'));
$tabTraiteZone = array();
$tabZonePage = array();
$idEtablissement = TypeEtat::ACTIF;
$adresseWeb = $request->getHost();
$template = null;
$typeSite = 1;
//Recuperation du local de l'utilisateur
$objetInitial= $abonneRepository->findOneBy(['adresseWeb'=>$adresseWeb]);
if($objetInitial== null){
$objetInitial= $groupementRepository->findOneBy(['adresseWeb'=>$adresseWeb]);
if($objetInitial!= null)
$typeSite = 2;
}
//$objetAbonne = $em->getRepository($this->userBundle . 'Abonne')->find(9);
if($objetInitial == null ){
$template = $templateRepository->find(20);
}else{
$template = $objetInitial->getTemplate();
// $template = $em->getRepository($this->cmsBundle . 'Template')->find(1);
}
if($objetInitial != null )
$request->setLocale($objetInitial->getLangue());
else
$request->setLocale("fr");
// var_dump($template->getId());exit;
if($objetInitial != null ){
if($typeSite == 1)
$listeMenu = $this->creerTabMenu($em,0,$objetInitial->getId(),$menuRepository);
else
$listeMenu = $this->creerTabMenu($em,0,$objetInitial->getId(), $menuRepository);
}else{
$listeMenu = array();
// $template = $em->getRepository($this->cmsBundle . 'Template')->find(1);
}
$listeZone = array();
//recuperation de l'objet page d'accueil et recuperation des zones celle-ci
if($typeSite == 1)
$getInfoPage = $pageRepository->findOneBy(array('template'=>$template, 'abonne'=>$objetInitial, 'siPageAccueil'=> TypeEtat::ACTIF));
else
$getInfoPage = $pageRepository->findOneBy(array('template'=>$template, 'siPageAccueil'=> TypeEtat::ACTIF)); //'groupement'=>$objetInitial,
//recuperation et traitement des informations sur les zones
//var_dump($getInfoPage);exit;
if($getInfoPage!=null){
//$tabZonePage=$getInfoPage->getZones();
if($objetInitial != null ){
if($typeSite == 1)
$listeZone = $zoneRepository->getAllZonePage($getInfoPage->getId());
else
$listeZone = $zoneRepository->getAllZonePageGroupement($objetInitial->getId());
}
foreach ($listeZone as $uneZone) {
if($uneZone["typeElement"]== 1 ){ //Affichage d'article seul'
$tabTraiteZone[$uneZone["id"]]['article'] =$articleRepository->getAllOrOneArticle($uneZone["pointeVers"]);
$tabTraiteZone[$uneZone["id"]]['typeInfo'] =1;
} elseif($uneZone["typeElement"]== 2 || $uneZone["typeElement"]== 0){// Affichage du détail d'une rubrique seul
$uneRub = $rubriqueRepository->getAllOrOneRubrique($uneZone["pointeVers"]);
$tabTraiteZone[$uneZone["id"]]['rubrique'] = $uneRub;
$tabTraiteZone[$uneZone["id"]]['typeInfo'] =$uneZone["typeElement"];
// var_dump($uneZone );exit;
if($uneRub !=null ){
$tabTraiteZone[$uneZone["id"]]['article'] = $articleRepository->getAllOrOneArticleSousActif($uneRub[0]->getId());
// $tabTraiteZone[$uneZone["id"]]['article'] = $em->getRepository($this->cmsBundle . 'Article')->getAllOrOneArticleSousActif($uneZone["pointeVers"]);
}else{
$tabTraiteZone[$uneZone["id"]]['article'] = array();
}
$tabTraiteZone[$uneZone["id"]]['categorie'] = array();
$tabTraiteZone[$uneZone["id"]]['produit'] = array();
//var_dump( $tabTraiteZone);exit;
} elseif($uneZone["typeElement"]== 3 ){// Affichage des sous rubriques d'une rubrique
$uneRub = $rubriqueRepository->getAllOrOneRubrique($uneZone["pointeVers"]);
$tabTraiteZone[$uneZone["id"]]['rubrique'] = $uneRub;
$tabTraiteZone[$uneZone["id"]]['typeInfo'] =$uneZone["typeElement"];
if($uneRub !=null ){
$tabTraiteZone[$uneZone["id"]]['rubrique'] =$rubriqueRepository->getAllOrOneRubriqueSousActif($uneZone["pointeVers"]);
}else{
}
} elseif($uneZone["typeElement"]== 4 ){// Affichage des produits
$tabTraiteZone[$uneZone["id"]]['typeInfo'] =$uneZone["typeElement"];
$tabTraiteZone[$uneZone["id"]]['categorie'] = $categorieRepository->getAllCategorieProduit($objetInitial->getTypeAbonne()->getId());
$tabTraiteZone[$uneZone["id"]]['produit'] = array();//$producteurRepository->getAllProduitIdActive($objetInitial->getTypeAbonne()->getId());
//array(); //
} elseif($uneZone["typeElement"]== 5 ){// Affichage des produits
$tabTraiteZone[$uneZone["id"]]['typeInfo'] =$uneZone["typeElement"];
$tabTraiteZone[$uneZone["id"]]['producteurs'] = $producteurRepository->getApiAllProducteurCooperative(0, 0, 0,$nbParPage = 20, $pageActuelle = 1, $niveau=3, $tabVille=array(), $uneZone["pointeVers"]);
$tabTraiteZone[$uneZone["id"]]['groupement'] = $groupementRepository->find($uneZone["pointeVers"]);
//getAllCategorieProduit($objetAbonne->getTypeAbonne()->getId());
}elseif($uneZone["typeElement"]== 6 ){// Affichage des produits
$tabTraiteZone[$uneZone["id"]]['typeInfo'] =$uneZone["typeElement"];
$tabTraiteZone[$uneZone["id"]]['producteur'] = $producteurRepository->find($uneZone["pointeVers"]);//getApiAllProducteurCooperative(0, 0, 0,$nbParPage = 20, $pageActuelle = 1, $niveau=3, $tabVille=array(), $groupement=0);
$tabTraiteZone[$uneZone["id"]]['superficie'] = $surfaceAnneeRepository->getSumIntentionProducteur($uneZone["pointeVers"]);
$tabTraiteZone[$uneZone["id"]]['groupement'] = $groupementRepository->getOneProducteurGroupement($uneZone["pointeVers"]);
$tabTraiteZone[$uneZone["id"]]['variete'] = $surfaceAnneeRepository->getVarieteIntentionProducteur($uneZone["pointeVers"]);
//getAllCategorieProduit($objetAbonne->getTypeAbonne()->getId());
}elseif($uneZone["typeElement"]== 7 ){// Affichage des produits
$tabTraiteZone[$uneZone["id"]]['typeInfo'] =$uneZone["typeElement"];
$tabTraiteZone[$uneZone["id"]]['projet'] = $projetRepository->findBy(["abonne"=>$objetInitial]);//getApiAllProducteurCooperative(0, 0, 0,$nbParPage = 20, $pageActuelle = 1, $niveau=3, $tabVille=array(), $groupement=0);
}
}
}
if($objetInitial != null ){
$listeProduit1 = $produitRepository->getAllProduitClientSiteWebAPI(3,$objetInitial->getId(), 0);
$listeProduit2 = $produitRepository->getAllProduitProduitFini(0,$objetInitial->getId(), 0);
$listeCategorie1 = $produitRepository->getAllCategorieProduitParent(0,$objetInitial->getId(), 1);
$listeCategorie2 = $produitRepository->getAllCategorieProduitFini(0,$objetInitial->getId(), 0);
$listeCategorie3 = $produitRepository->getAllCategorieTransforme(0,$objetInitial->getId(), 0);
} else{
$listeProduit1 = array();
$listeProduit2 = array();
$listeCategorie1 = array();
$listeCategorie2 = array();
$listeCategorie3 = array();
}
$listeCategorie = array_merge($listeCategorie1, $listeCategorie2, $listeCategorie3);
$listeProduit = array_merge($listeProduit1, $listeProduit2);
//var_dump($listeProduit);exit;
// }
if($template != null ){
$this->redirect($this->generateUrl('app_login'));
if($template->getNomDossierTemplate()==''){
$nomTemplate = "Default";
}else{
$nomTemplate = $template->getNomDossierTemplate();
}
}else{
$nomTemplate = "Default";
return $this->redirect($this->generateUrl('app_login'));
//var_dump(1);exit;
}
if($getInfoPage!=null){
if($getInfoPage->getTwigPage()==''){
$nomTemplate = "index.html.twig";
}else{
$nomTwig = $getInfoPage->getTwigPage();
}
}else{
$nomTwig = "index.html.twig";
}
$this->data['tabTraiteZone'] = $tabTraiteZone;
$this->data['listeZone'] = $listeZone;
$this->data['listeMenu'] = $listeMenu;
$this->data['listeProduit'] = $listeProduit;
$this->data['listeCategorie'] = $listeCategorie;
$this->data['typeSite'] = $typeSite;
$this->data['objetAbonne'] = $objetInitial;
$this->data['objetGoupement'] = $objetInitial;
$this->data['zoneRepository'] = $zoneRepository;
// var_dump($nomTemplate);exit;
// var_dump($nomTemplate,$nomTwig);exit;
return $this->render('site'.'/'.$nomTemplate.'/'.$nomTwig, $this->data);
}
function classerIncrZoneAfficher(){
}
// public function detailsArticleRubriqueAction(Request $request)
// {
// $em = $this->getDoctrine()->getManager();
//
// //Recupération des activités
//
// $rubrique = $em->getRepository('adminCmsBundle:Rubrique')->findAll();
// $this->data['rubriques'] = $rubrique;
// return $this->render('site/Site/detailsRubrique.html.twig', $this->data);
// }
public function catalogueAction(Request $request, MenuRepository $menuRepository, AbonneRepository $abonneRepository
, GroupementRepository $groupementRepository, TemplateRepository $templateRepository, PageRepository $pageRepository,
ZoneRepository $zoneRepository, CaracteristiquePrixRepository $caracteristiquePrixRepository, CibleRepository $cibleRepository , ProduitRepository $produitRepository)
{
//Liste des bannières
$em = $this->getDoctrine()->getManager();
$adresseWeb = $request->getHost();
$template = null;
$objetInitial = $abonneRepository->findOneBy(['adresseWeb'=>$adresseWeb]);
//$objetAbonne= $abonneRepository->find(2);
//Carateristique produit
$listeCarateristiquePrix = $caracteristiquePrixRepository->findBy(['abonne'=>$objetInitial]);
$listeCible = $cibleRepository->findBy(['abonne'=>$objetInitial]);
$listeProduit= $produitRepository->findBy(['abonne'=>$objetInitial]);
$tabPrix = array();
foreach ($listeCarateristiquePrix as $uneCarateristiquePrix) {
foreach ($listeProduit as $unProduit) {
foreach ($listeCible as $uneCible) {
$tabPrix[$uneCarateristiquePrix->getId()][$unProduit->getId()][$uneCible->getId()]= $em->getRepository($this->stockBundle . 'PrixRigueur')->findOneBy(['cible'=>$uneCible, 'produit'=>$unProduit, 'caracteristiquePrix'=>$uneCarateristiquePrix]);
}
}
}
$listeProduit = $produitRepository->getAllProduitClientMobileAPI(0,$objetInitial->getId(), 0);
$listeCategorie = $produitRepository->getAllCategorieMobileAPI(0,$objetInitial->getId(), 1);
$listeProduit1 = $produitRepository->getAllProduitClientSiteWebAPI(3,$objetInitial->getId(), 0);
$listeProduit2 = $produitRepository->getAllProduitProduitFini(0,$objetInitial->getId(), 0);
$listeCategorie1 = $produitRepository->getAllCategorieProduitParent(0,$objetInitial->getId(), 1);
//var_dump($listeCategorie1);
$listeCategorie2 = $produitRepository->getAllCategorieProduitFini(0,$objetInitial->getId(), 0);
//var_dump($listeCategorie2);exit;
$listeCategorie3 = $produitRepository->getAllCategorieTransforme(0,$objetInitial->getId(), 0);
//var_dump($listeCategorie3);
$listeCategorie = array_merge($listeCategorie1, $listeCategorie2, $listeCategorie3);
$listeProduit = array_merge($listeProduit1, $listeProduit2);
$typeSite = 1;
if($typeSite == 1)
$listeMenu = $this->creerTabMenu($em,0,$objetInitial->getId(),$menuRepository);
else
$listeMenu = $this->creerTabMenu($em,0,$objetInitial->getId(), $menuRepository);
$this->data['typeSite'] = $typeSite;
$this->data['listeCarateristiquePrix']=$listeCarateristiquePrix;
$this->data['listeCible']=$listeCible;
$this->data['listeProduit']=$listeProduit;
$this->data['listeCategorie']=$listeCategorie;
$this->data['tabPrix'] =$tabPrix;
$this->data['listeMenu'] = $listeMenu;
$this->data['objetAbonne'] =$objetInitial;
$this->data['zoneRepository'] = $zoneRepository;
return $this->render('site/Site/catalogue.html.twig', $this->data);
}
/**
* Methode s'occupant de l'ajout d'une commande.
*
* @author armand.tevi@gmail.com
* @copyright ADMIN 2015
*
* @version 1
*
* @return twig d'ajout d'un abonne ajouterproduit.html.twig
*/
public function commandeClientAction(Request $request, MenuRepository $menuRepository, AbonneRepository $abonneRepository
, GroupementRepository $groupementRepository, TemplateRepository $templateRepository, PageRepository $pageRepository,
ZoneRepository $zoneRepository, CategorieProduitRepository $categorieRepository, CibleRepository $cibleRepository ,
ProduitRepository $produitRepository, CommandeClientRepository $commandeClientRepository) {
//var_dump(1);exit;
$em = $this->getDoctrine()->getManager();
$adresseWeb = $request->getHost();
$template = null;
$objetAbonne = $abonneRepository->findOneBy(['adresseWeb'=>$adresseWeb]);
/*
* Création du formulaire par rapport a l'entité commandetmp
*/
// $uneLigneCommande = new LigneCommandeTmp();
// $form = $this->createForm(LigneCommandeTmpType::class, $uneLigneCommande);
//$objetUtilisateur = $em->getRepository($this->userBundle . 'Utilisateur')->find($sessionData['id']);
/* $listeClient = $em->getRepository($this->clientBundle . 'Client')->find($sessionData['id']);
if($objetUtilisateur->getCaisse() ==null ){
$listeClient = $em->getRepository($this->clientBundle . 'Client')->findBy(['abonne'=>$objetUtilisateur->getAbonne(),'etatClient'=>1]); //getAllClient(0, 0, 0, 0, 0, 0, 1, 1,0,5,0,0,$sessionData['abonneId']);
}else{
$listeClient = $em->getRepository($this->clientBundle . 'Client')->getAllClientCaisse($objetUtilisateur->getAbonne()->getId(), $objetUtilisateur->getCaisse()->getId()); //getAllClient(0, 0, 0, 0, 0, 0, 1, 1,0,5,0,0,$sessionData['abonneId']);
}
$listeTable = $em->getRepository($this->stockBundle . 'TableMange')->findBy(['abonne'=>$objetUtilisateur->getAbonne(),'etatTable'=>1]); //getAllClient(0, 0, 0, 0, 0, 0, 1, 1,0,5,0,0,$sessionData['abonneId']);
*/
$listeCategorie = $categorieRepository->getAllCategorieProduit($objetAbonne->getId());
/* if($objetUtilisateur->getCaisse() ==null ){
foreach($listeCategorie as $uneCategorie){
$listeProduit[$uneCategorie->getId()] = $em->getRepository($this->stockBundle . 'Produit')->getAllProduitCategorieAjax($uneCategorie->getId(),$objetAbonne->getId()); //$uneCategorie->getId()
}
}else{
foreach($listeCategorie as $uneCategorie){
$listeProduit[$uneCategorie->getId()] = $em->getRepository($this->stockBundle . 'Produit')->getAllProduitCaisseWithPrix($objetAbonne->getId(), 6, $uneCategorie->getId()); //$uneCategorie->getId() //getAllProduitCaisse
}
// }*/
$listeCategorie =$produitRepository-> getAllCategorieMobileAPI(0,$objetAbonne->getId(), 1);
$listeProduit =$produitRepository-> getAllProduitClientMobileAPI(0,$objetAbonne->getId(), 0);
/*foreach($listeCategorie as $uneCategorie){
$listeProduit[$uneCategorie["id"]] = $em->getRepository($this->stockBundle . 'Produit')-> getAllProduitClientMobileAPI(0,$objetAbonne->getId(), 0, $uneCategorie["codeGenere"]); //$uneCategorie->getId()
}*/
$d = new \DateTime();
$an = $d->format('Y');
$m = $d->format('m');
$j = $d->format('d');
$refCommande = $this->getRefCommande($em, (int) 1, $an, $m, $entite = 'COMMANDE', $taille = 5, $objetAbonne->getId());
$dateJour = $j."/".$m."/".$an;
//$uneCommande = $em->getRepository($this->stockBundle . 'CommandeClient')->find(2000);
//if($uneCommande == null ){
$uneCommande = $commandeClientRepository->findOneBy(['siRetrait'=>1, 'abonne'=>$objetAbonne]);
if($uneCommande == null){
$uneCommande = new CommandeClient();
$uneCommande->setCodeCommande($refCommande);
$uneCommande->setDescriptionCommande("Evoluer ".$refCommande);
}
$uneCommande->setAnnule(FALSE);
$uneCommande->setEtatCommande(1);
//$uneCommande->setUtilisateur($objetUtilisateur);
$uneCommande->setRefBonCommande($refCommande);
$uneCommande->setCodeGenere($refCommande);
$uneCommande->setTauxEchange(0);
/*if($type == 0)
$uneCommande->setSiRetrait(1);
else*/
$uneCommande->setSiRetrait(0);
$uneCommande->setDateCommande(new \DateTime());
$uneCommande->setDateModification(new \DateTime());
$uneCommande->setAbonne($objetAbonne);
$uneCommande->setDatePublication(new \DateTime());
//if($type == 0){
$uneCommande->setMontantResteCommande(0);
//$uneCommande->setMontantCommande(0);
//}
$uneCommande->setTypeCommande(3);
$em->persist($uneCommande);
$em->flush();
//if($type != 0)
//return $this->redirect($this->generateUrl('admin_vente_evoluee'));
//}
//traitement des menus
$listeMenu = $this->creerTabMenu($em,0,0, $menuRepository);
$typeSite = 1;
$this->data['listeProduit'] = $listeProduit;
$this->data['listeCategorie'] = $listeCategorie;
$this->data['listeMenu'] = $listeMenu;
$this->data['typeSite'] = $typeSite;
//$this->data['listeClient'] = $listeClient;
//$this->data['listeTable'] = $listeTable;
$this->data['dateJour'] = $dateJour ;
$this->data['uneCommande'] = $uneCommande;
//$this->data['objetUtilisateur'] = $objetUtilisateur;
$this->data['objetAbonne'] = $objetAbonne;
$this->data['zoneRepository'] = $zoneRepository;
//$this->data['locale'] = $locale;
return $this->render('site/Site/commandeClient.html.twig', $this->data);
}
/* @copyright ADMIN 2015
*
* @version 1
*
* @return twig d'ajout d'un abonne detailOperation.html.twig
*/
public function incrementerLigneCommandeClientAction(Request $request, AbonneRepository $abonneRepository
, GroupementRepository $groupementRepository, TemplateRepository $templateRepository, PageRepository $pageRepository,
ZoneRepository $zoneRepository, CategorieProduitRepository $categorieRepository, CibleRepository $cibleRepository ,
ProduitRepository $produitRepository, CommandeClientRepository $commandeClientRepository ,
LigneCommandeClientRepository $ligneCommandeClientRepository, UtilisateurRepository $utilisateurRepository ) {
$tabLivrer = array();
$tabLigneCommande = array();
/*
* Traitement de la requete qui vient de la vue
* on vérifie si la requete est Ajax et si la methode est post
*/
if (($request->isXmlHttpRequest()) && ($request->getMethod() == 'POST')) {
//Recuperation du code de la commande
$commandeId= $request->get('commandeId');
$produitId= $request->get('produitId');
$quantite= $request->get('quantite');
// $quantite = 0;
$prix=$request->get('prix');
//var_dump($idLigneCmde, $pourcentage);exit;
$em = $this->getDoctrine()->getManager();
//var_dump($commandeId);exit;
//$objetUtilisateur = $em->getRepository($this->userBundle . 'Utilisateur')->find($sessionData['id']);
$operationManager = $this->get('operation_manager');
$objetProduit = $produitRepository->find($produitId);
$objetCommande = $commandeClientRepository->find($commandeId);
$detailLigneCommande = $ligneCommandeClientRepository->findOneBy(['produit'=>$objetProduit, 'commandeclient'=>$objetCommande]);
if($detailLigneCommande == null){
$codeVente = "RV".rand();
// $quantite = 1;
$idUtil = 9529;
$objetUtilisateur = $utilisateurRepository->find($idUtil);
$objetPrixRigueur = $this->savePrix($em, $prix, $objetProduit, 2, $objetUtilisateur) ;
$this->saveLigneCommandeclient($em, $codeVente, null, $objetCommande , $objetProduit, $objetPrixRigueur, $quantite, 0, 2) ;
} else{
//$quantite = $detailLigneCommande->getQuantite()+1;
$detailLigneCommande->setQuantite($quantite);
$em->persist($detailLigneCommande);
$em->flush();
}
$j = 0;
$tabInfoGeneral = array();
foreach ($objetCommande->getLignecommandeclients() as $uneLigneCommande) {
$i = 0;
$prixTotalReel = 0;
$reference = 0;
$totalLivre = 0;
foreach ($uneLigneCommande->getLivrers() as $uneLivraison) {
$tabLivrer[$uneLigneCommande->getId()][$i]['nbreLivre'] = $uneLivraison->getNbreLivre();
$tabLivrer[$uneLigneCommande->getId()][$i]['dateLivraison'] = $uneLivraison->getDateLivraison();
$tabLivrer[$uneLigneCommande->getId()][$i]['nbreReste'] = $uneLivraison->getNbreReste();
$tabLivrer[$uneLigneCommande->getId()][$i]['ref'] = $uneLivraison->getRefBonLivraison();
$tabLivrer[$uneLigneCommande->getId()][$i]['prixUnitaire'] = $uneLivraison->getLigneCommande()->getPrixrigueur()->getInfoPrixRigueur();
$prixTotal = (int) $uneLivraison->getNbreLivre() * $uneLivraison->getLigneCommande()->getPrixrigueur()->getInfoPrixRigueur();
$tabLivrer[$uneLigneCommande->getId()][$i]['prixTotal'] = (String) $prixTotal;
$i++;
$reference = $uneLivraison->getRefBonLivraison();
$prixTotalReel= $prixTotalReel + $prixTotal;
$totalLivre = $totalLivre + $uneLivraison->getNbreLivre();
}
$tabLigneCommande[$j]["id"] = $uneLigneCommande->getId();
$tabLigneCommande[$j]["produit"] = $uneLigneCommande->getProduit()->getNomProduit();
//Get Information dernierre commande
/*$ligneDernCommande = $em->getRepository($this->stockBundle . 'LigneCommande')->findOneby(['produit'=>$uneLigneCommande->getProduit(),'suivantCommande'=>$uneLigneCommande->getId()]);
$tabLigneCommande[$j]["id"] = $uneLigneCommande->getId();
$tabLigneCommande[$j]["produit"] = $uneLigneCommande->getProduit()->getNomProduit();
if($ligneDernCommande != null){
$tabLigneCommande[$j]["oldQuantite"] = $ligneDernCommande->getQuantite();
$tabLigneCommande[$j]["oldDateCommande"] = $ligneDernCommande->getCommande()->getDateCommande()->format("d/m/Y");
$tabLigneCommande[$j]["oldPrix"] = $ligneDernCommande->getPrixRigueur()->getInfoPrixRigueur();
}else{
$tabLigneCommande[$j]["oldQuantite"] = "-";
$tabLigneCommande[$j]["oldDateCommande"] = "-";
$tabLigneCommande[$j]["oldPrix"] = "-";
}*/
$tabLigneCommande[$j]["quantite"] = $uneLigneCommande->getQuantite();
$tabLigneCommande[$j]["dateCommande"] = $objetCommande->getDateCommande()->format("d/m/Y");
$tabLigneCommande[$j]["prix"] = $uneLigneCommande->getPrixRigueur()->getInfoPrixRigueur();
$tabLigneCommande[$j]["nombreLivrer"] = $totalLivre ;
$tabLigneCommande[$j]["nombrePrix"] = $uneLigneCommande->getPrixRigueur()->getInfoPrixRigueur();
$j++;
}
$montantTotalCommande = $ligneCommandeClientRepository->sumLigneCommande($objetCommande->getId());
$objetCommande->setMontantCommande($montantTotalCommande); //
$em->persist($objetCommande);
$em->flush($objetCommande);
$tabInfoGeneral['prixTotalReel']= $prixTotalReel;
$tabInfoGeneral['reference'] = $reference;
$tabInfoGeneral['codeCommande'] = $objetCommande->getCodeCommande();
$tabInfoGeneral['commandeId'] = $objetCommande->getId();
$tabInfoGeneral['fournisseur'] = "TEST";//$detailCommande[0]->getFournisseur()->getNomFournisseur();
$tabInfoGeneral['dateCommande'] = $objetCommande->getDateCommande()->format("d/m/Y");
$tabInfoGeneral['totalLivre'] = $totalLivre;
$rep['reponse'] = $tabLivrer;
$rep['infoGenerale'] = $tabInfoGeneral;
$rep['lignecommande'] = $tabLigneCommande;
// var_dump($listeLigneCommande);exit;
$rep['etat'] = 1;
}
return new Response(json_encode($rep));
}
public function getTracabiliteAction(Request $request, $codeLot, SacRepository $sacRepository
, InfoLivrerRepository $infoLivrerRepository, CommandeRepository $commandeRepository, ProducteurGroupementRepository $producteurGroupementRepository,
ZoneRepository $zoneRepository )
{
$em = $this->getDoctrine()->getManager();
$objetAbonne = null;
$objetProducteur = null;
$objetProducteurGroupement = null;
$objetCommande =null;
$tabCodeLot = explode("_", $codeLot);
$objetSac = $sacRepository->findOneBy(['codeGenere'=>$codeLot]) ;
$objetInfoLivre = $infoLivrerRepository->findOneBy(array('refBonReception'=>$tabCodeLot[0]));
// var_dump( $tabCodeLot[0], $objetInfoLivre );exit;
//recuperation et traitement des informations sur les zones
if($objetInfoLivre != null){
//information sur l'abonne
$objetAbonne = $objetInfoLivre->getAbonne();
//information sur le producteur
if($objetInfoLivre->getCommande() != null)
$objetProducteur = $objetInfoLivre->getCommande()->getProducteur();
else
$objetProducteur = null;
//Groupement du producteur avec le nombre acteur
$objetProducteurGroupement = $producteurGroupementRepository->findOneBy(array('producteur'=>$objetProducteur));
//information sur la semence
$objetCommande = $commandeRepository->findOneBy(array('producteur'=>$objetProducteur, 'typeCommande'=> 6));
}
$nomTemplate = "Default";
$nomTwig = "tracabilite.html.twig";
$this->data['objetAbonne'] = $objetAbonne;
$this->data['codeLot'] = $codeLot;
$this->data['objetSac'] = $objetSac;
$this->data['objetInfoLivre'] = $objetInfoLivre;
$this->data['objetProducteur'] = $objetProducteur;
$this->data['objetProducteurGroupement'] = $objetProducteurGroupement;
$this->data['objetCommande'] = $objetCommande;
$this->data['zoneRepository'] = $zoneRepository;
return $this->render('site'.'/'.$nomTemplate.'/'.$nomTwig, $this->data);
}
public function getMapProducteurAction(Request $request, AbonneRepository $abonneRepository,MenuRepository $menuRepository )
{
$em = $this->getDoctrine()->getManager();
$adresseWeb = $request->getHost();
$objetAbonne = null;
$objetInitial= $abonneRepository->findOneBy(['adresseWeb'=>$adresseWeb]);
//$objetInitial= $abonneRepository->find(21);
$nomTemplate = "Default";
$nomTwig = "carte.html.twig";
$typeSite = 1;
if($typeSite == 1)
$listeMenu = $this->creerTabMenu($em,0,$objetInitial->getId(),$menuRepository);
else
$listeMenu = $this->creerTabMenu($em,0,$objetInitial->getId(), $menuRepository);
$this->data['typeSite'] = $typeSite;
$this->data['objetAbonne'] = $objetInitial;
$this->data['listeMenu'] = $listeMenu;
return $this->render('site'.'/'.$nomTemplate.'/'.$nomTwig, $this->data);
}
public function getArticleProducteurAction(Request $request,$idProd,ArticleRepository $articleRepository, ProducteurRepository $producteurRepository,AbonneRepository $abonneRepository,MenuRepository $menuRepository )
{
$em = $this->getDoctrine()->getManager();
$objetAbonne = null;
$objetInitial= $abonneRepository->findOneBy(['adresseWeb'=>$adresseWeb]);
//$objetInitial= $abonneRepository->find(21);
$objetProducteur= $producteurRepository->find($idProd);
$listeArticle = $articleRepository->findBy(['producteur'=>$objetProducteur]);
$nomTemplate = "Default";
$nomTwig = "articleProducteur.html.twig";
$typeSite = 1;
if($typeSite == 1)
$listeMenu = $this->creerTabMenu($em,0,$objetInitial->getId(),$menuRepository);
else
$listeMenu = $this->creerTabMenu($em,0,$objetInitial->getId(), $menuRepository);
$this->data['typeSite'] = $typeSite;
$this->data['objetAbonne'] = $objetInitial;
$this->data['listeMenu'] = $listeMenu;
$this->data['listeArticle'] = $listeArticle;
return $this->render('site'.'/'.$nomTemplate.'/'.$nomTwig, $this->data);
}
public function getProduitDetailPublicAction(Request $request,$idProd,ProduitRepository $produitRepository, ProducteurRepository $producteurRepository
,AbonneRepository $abonneRepository,MenuRepository $menuRepository, PrixRigueurRepository $prixRigueurRepository)
{
$em = $this->getDoctrine()->getManager();
$adresseWeb = $request->getHost();
$objetAbonne = null;
$objetInitial= $abonneRepository->findOneBy(['adresseWeb'=>$adresseWeb]);
//$objetInitial= $abonneRepository->find(62);
$objetProduitDefault = $produitRepository->findOneBy(['abonne'=>$objetInitial,'id'=>$idProd]);
$objetProduit = $produitRepository->getOneProduitAPI(0,$objetInitial->getId(), 0, $objetProduitDefault->getCodeGenere()); //$produitRepository->findBy(['abonne'=>$objetInitial,'id'=>$idProd]);
//liste des données concernant les conditionnements ¨
$listeConditionne = array();
if(count($objetProduit)!=0)
$listeConditionne = $produitRepository->getAllProduitConditionne($objetProduit[0]["id"], 0, $objetInitial->getId(),$partenaireId=0, $typeAction=0);
$template = $objetInitial->getTemplate();
$typeSite = 1;
if($typeSite == 1)
$listeMenu = $this->creerTabMenu($em,0,$objetInitial->getId(),$menuRepository);
else
$listeMenu = $this->creerTabMenu($em,0,$objetInitial->getId(), $menuRepository);
if($template != null ){
if($template->getNomDossierTemplate()==''){
$nomTemplate = "Default";
}else{
$nomTemplate = $template->getNomDossierTemplate();
}
}else{
$nomTemplate = "Default";
}
//var_dump($objetProduit);exit;
//$objetReelProduit = $produitRepository->find($objetProduit["id"]);
//Récuperé les informations sur les catérisitiques
$listeCarateristique = $prixRigueurRepository->getAllCarateristiquePrixByProduitAPI($objetInitial->getId(), $objetProduit[0]["id"]);
//var_dump($objetProduitDefault->getCodeGenere());exit;
$nomTwig = "cart/detail.html.twig";
$this->data['typeSite'] = $typeSite;
$this->data['objetAbonne'] = $objetInitial;
$this->data['listeMenu'] = $listeMenu;
$this->data['unProduit'] = $objetProduit;
$this->data['listeConditionne'] = $listeConditionne;
$this->data['listeCarateristique'] = $listeCarateristique ;
return $this->render('site'.'/'.$nomTemplate.'/'.$nomTwig, $this->data);
}
public function getInfoConditionement(Request $request,PrixRigueurRepository $prixRigueurRepository, CarateristiqueProduitRepository $carateristiqueProduitRepository, ProduitRepository $produitRepository,AbonneRepository $abonneRepository,MenuRepository $menuRepository )
{
$em = $this->getDoctrine()->getManager();
$adresseWeb = $request->getHost();
$objetAbonne = null;
$objetInitial= $abonneRepository->findOneBy(['adresseWeb'=>$adresseWeb]);
//$objetInitial= $abonneRepository->find(21);
$produitId = (int) $request->get('produitId');
$produitCondId = (int) $request->get('produitCondId');
$objetProduit= $produitRepository->find($produitId);
$objetProduitCond= $produitRepository->find($produitCondId);
$objetCarateristiqueProduit = $carateristiqueProduitRepository->findOneBy(['produit'=>$objetProduit, 'produitparent'=>$objetProduitCond]);
//var_dump( $produitId,$produitCondId );exit;
$objetProduitFini= $produitRepository->findOneBy(['carateristiqueproduit'=>$objetCarateristiqueProduit] );
$objetPrixRigueur= $prixRigueurRepository->findOneBy(['produit'=>$objetProduitFini, 'typePrixRigueur'=>2] );
$listeCarateristiquePrix = $prixRigueurRepository->getAllCarateristiquePrixByProduitAPI($objetInitial->getId(), $objetProduitFini->getId());
// $this->flashMessage->add('produit.gerer.success', $this->translate->trans("site.ajouter.succes"));
$rep['msg'] = '';
if($objetPrixRigueur!=null)
$rep['prixVente'] = $objetPrixRigueur->getInfoPrixRigueur();
else
$rep['prixVente'] = "-";
$rep['produitId'] = $objetProduitFini->getId();
$rep['produitNom'] = $objetProduitFini->getNomProduit();
$rep['listeCarateristiquePrix'] = $listeCarateristiquePrix;
return new Response(json_encode($rep));
}
public function getInfoPrixByCarateristiqueAction(Request $request,PrixRigueurRepository $prixRigueurRepository, CarateristiqueProduitRepository $carateristiqueProduitRepository, ProduitRepository $produitRepository,AbonneRepository $abonneRepository,MenuRepository $menuRepository )
{
$em = $this->getDoctrine()->getManager();
$adresseWeb = $request->getHost();
$objetAbonne = null;
$objetInitial= $abonneRepository->findOneBy(['adresseWeb'=>$adresseWeb]);
//$objetInitial= $abonneRepository->find(21);
$produitId = (int) $request->get('produitId');
$carateristiqueProduit = (int) $request->get('carateristiqueProduit');
$objetProduit= $produitRepository->find($produitId);
//$objetProduitCond= $produitRepository->find($produitCondId);
//$objetCarateristiqueProduit = $carateristiqueProduitRepository->findOneBy(['produit'=>$objetProduit, 'produitparent'=>$objetProduitCond]);
$listeCarateristiquePrix = $prixRigueurRepository->getPrixByCarateristiqueProduit($objetInitial->getId(), $objetProduit->getId(),$carateristiqueProduit );//$prixRigueurRepository->getAllCarateristiquePrixByProduitAPI($objetInitial->getId(), $objetProduit->getId());
$rep['msg'] = '';
if($listeCarateristiquePrix !=null)
$rep['prixVente'] = $listeCarateristiquePrix[0]['infoPrixRigueur'];
else
$rep['prixVente'] = "-";
$rep['produitId'] = $objetProduit->getId();
$rep['produitNom'] = $objetProduit->getNomProduit();
$rep['listeCarateristiquePrix'] = $listeCarateristiquePrix;
if($objetInitial->getDevise() != null)
$rep['devise'] = $objetInitial->getDevise()->getLibelle();
else
$rep['devise'] = "XOF";
return new Response(json_encode($rep));
}
public function listePublicProjetAction(Request $request, MenuRepository $menuRepository, AbonneRepository $abonneRepository
, GroupementRepository $groupementRepository, TemplateRepository $templateRepository, PageRepository $pageRepository,
ZoneRepository $zoneRepository, ProjetRepository $projetRepository)
{
$em = $this->getDoctrine()->getManager();
$adresseWeb = $request->getHost();
//recuperation et traitement des informations sur les zones
$objetInitial= $abonneRepository->findOneBy(['adresseWeb'=>$adresseWeb]);
$projet = $projetRepository->getAllProjet($objetInitial->getId());
//traitement des menus
$listeMenu = $this->creerTabMenu($em,0,$objetInitial->getId(), $menuRepository);
if($objetInitial == null ){
$template = $templateRepository->find(20);
}else{
$template = $objetInitial->getTemplate();
// $template = $em->getRepository($this->cmsBundle . 'Template')->find(1);
}
$typeSite = 1;
if($template->getNomDossierTemplate()==''){
$nomTemplate = "Default";
}else{
$nomTemplate = $template->getNomDossierTemplate();
} //recuperation et traitement des informations sur les zones
//traitement des menus
//$listeMenu = $this->creerTabMenu($em,0,0,$menuRepository);
if($typeSite == 1)
$listeMenu = $this->creerTabMenu($em,0,$objetInitial->getId(),$menuRepository);
else
$listeMenu = $this->creerTabMenu($em,0,$objetInitial->getId(), $menuRepository);
$nomTwig = "projet.html.twig";
// $etablissements = $em->getRepository($this->scolariteBundle . 'Etablissement')->getAllActifEtablissementAccueil();
//$rubriques = $em->getRepository('adminCmsBundle:Rubrique')->findAll();
$typeSite=1;
$this->data['listeProjet'] = $projet;
// $this->data['listeEtablissement'] = $etablissements;
$this->data['listeMenu'] = $listeMenu;
$this->data['objetInitial'] = $objetInitial;
$this->data['objetAbonne'] = $objetInitial;
$this->data['typeSite'] = $typeSite;
//$this->datas['rubriques'] = $rubriques;
// var_dump('adminSiteBundle'.':'.$nomTemplate.':'.$nomTwig);exit;
return $this->render('site/'.$nomTemplate.'/'.$nomTwig, $this->data);
}
}