<?php
namespace App\Controller\stock;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Contracts\Translation\TranslatorInterface;
use App\Types\user;
use App\Entity\stock\Produit;
use App\Entity\prod\SurfaceAnnee;
use App\Entity\prod\AnneeCampagne;
use App\Entity\user\Module;
use App\Entity\cms\Rubrique;
use App\Entity\cms\Article;
use App\Form\stock\ProduitType;
use App\Form\stock\ProduitVarieteType;
use App\Form\stock\ProduitRendementType;
use App\Form\prod\SurfaceAnneeProduitType;
use App\Form\prod\AnneeCampagneProduitType;
use App\Entity\stock\CarateristiqueProduit;
use App\Entity\prod\CertificationProduit;
use App\Entity\stock\Image;
use App\Entity\stock\CaisseProduit;
use App\Entity\stock\CaissePrix;
use App\Entity\stock\ProduitTypeOperation;
use App\Form\stock\VarieteType;
use App\Types\user\TypeEtat;
use App\Services\user\LoginManager;
use Symfony\Component\HttpFoundation\Request;
use Doctrine\Common\Collections\ArrayCollection;
use App\ControllerModel\user\paramUtilTrait;
use App\Repository\user\ConnexionRepository;
use App\Repository\user\AbonneRepository;
use App\Repository\user\ActionRepository;
use App\Services\param\ParametreManager;
use App\Repository\param\ParamRepository;
use App\Repository\user\ModuleRepository;
use App\Repository\user\ControleurRepository;
use App\Repository\user\ProfilRepository;
use App\Repository\user\UtilisateurRepository;
use App\Repository\stock\ProduitRepository;
use App\Repository\stock\FournisseurRepository;
use App\Repository\stock\InventaireRepository;
use App\Repository\stock\CaisseRepository;
use App\Repository\stock\TypeOperationRepository;
use App\Entity\prod\TacheProduitEtapeCroissance;
use App\Entity\prod\ProduitEtapeCroissance;
use App\Repository\prod\ProducteurRepository;
use App\Repository\prod\CertificationRepository;
use App\Repository\prod\AnneeCampagneRepository;
use App\Repository\stock\CategorieProduitRepository;
use App\Repository\stock\PrixRigueurRepository ;
use App\Repository\stock\CibleRepository ;
use App\Repository\inspection\InspectionRepository;
use App\Entity\stock\FournisseurProduit;
use App\Repository\stock\CaracteristiquePrixRepository;
use App\Repository\prod\EtapeCroissanceRepository;
use App\Repository\prod\TacheProduitEtapeCroissanceRepository;
use App\Repository\asso\ActiviteRepository;
use App\Repository\prod\SurfaceAnneeRepository;
use App\Repository\stock\LigneCommandeRepository;
use App\Repository\stock\ProduitTypeOperationRepository;
use App\Repository\stock\LivrerRepository;
use App\Repository\stock\CommandeRepository;
use App\Repository\stock\ProduitAbonneRepository;
use App\Repository\cms\RubriqueRepository;
use App\Repository\prod\ProduitEtapeCroissanceRepository;
use App\Repository\asso\ProjetRepository;
use App\Repository\prod\PlanteRepository;
use App\Repository\stock\ImageRepository;
/**
*
* Controlleur qui permet de gérer les operations sur les rubriques.
*
* @author armand.tevi@gmail.com
* @copyright ADMIN 2015
*
* @version 1
*/
class ProduitController extends AbstractController {
use paramUtilTrait;
/**
* Déclaration de l'entity manager.
*
* @var
*/
protected $em;
/**
* @var string
* Le comtroleur
*/
public function __construct(TranslatorInterface $translate, ImageRepository $imageRepository ) {
// parent::__construct();
$this->response = new Response();
$this->response->headers->addCacheControlDirective('no-cache', true);
$this->response->headers->addCacheControlDirective('max-age', TypeEtat::INACTIF);
$this->response->headers->addCacheControlDirective('must-revalidate', true);
$this->response->headers->addCacheControlDirective('no-store', true);
$this->moduleTitre = Module::MOD_GEST_PROD;
$this->moduleDesc = Module::MOD_GEST_PROD_DESC;
$this->logMessage = " [ ProduitController ] ";
$this->description = "Controlleur qui gère les produits";
$this->translate = $translate;
$this->imageRepository = $imageRepository;
}
/**
* Methode s'occupant de l'ajout du produit.
*
* @author armand.tevi@gmail.com
* @copyright ADMIN 2015
*
* @version 1
*
* @return twig d'ajout d'un abonne ajouterProduit.html.twig
*/
public function ajouterProduitAction(Request $request, $id, $siSimplifie, $siAgricole,LoginManager $loginManager,ParamRepository $paramRepositor,ConnexionRepository $connexionRepository,ActionRepository $actionRepository,
ModuleRepository $moduleRepository,ControleurRepository $controleurRepository,ProfilRepository $profilRepository,
ProduitRepository $produitRepository,AbonneRepository $abonneRepository, UtilisateurRepository $utilisateurRepository, CaisseRepository $caisseRepository
, FournisseurRepository $fournisseurRepository, PrixRigueurRepository $prixRigueurRepository, CibleRepository $cibleRepository, CaracteristiquePrixRepository $caracteristiquePrixRepository
,CategorieProduitRepository $categorieProduitRepository, ProduitTypeOperationRepository $produitTypeOperationRepository, TypeOperationRepository $typeOperationRepository) {
/*
* Nom de l'action en cours
*/
$nomAction = __FUNCTION__;
/*
* Description de l'action de l'action en cours
*/
$descAction = "Ajouter un produit ";
$locale ='fr';
$valRetour = $this->gestionDroitUtil($request, $nomAction, $descAction,$this->moduleTitre,$this->moduleDesc,
$loginManager,$paramRepositor,$connexionRepository, $actionRepository, $moduleRepository, $controleurRepository, $profilRepository);
if($valRetour==1){
return $this->redirect($this->generateUrl('app_logout'));
}elseif($valRetour==2){
return $this->redirect($this->generateUrl('app_admin_user_access_refuse'));
}
/*
* Informations de session
*/
$em = $this->getDoctrine()->getManager();
$sessionData = $this->infosConnecte($request, $loginManager, $paramRepositor,$connexionRepository, $actionRepository);
/*
* Création du formulaire par rapport a l'entité Produit
*/
if($id == 0){
$unProduit = new Produit();
$unProduit->setCodeProduit("PR".rand());
}else{
$unProduit = $produitRepository->find($id);
}
//var_dump($id, $siSimplifie);exit;
$form = $this->createForm(ProduitType::class, $unProduit, ['abonne'=>$this->getAbonne($em,$sessionData['abonneId'], $abonneRepository), 'siSimplifie'=>$siSimplifie]);
/*
* Declaration des principales methodes Symfony2 pour traiter les informations
*/
$objetUtilisateur = $utilisateurRepository->find($sessionData['id']);
$this->request = $request;
$this->session = $this->get('session');
$this->flashMessage = $this->get('session')->getFlashBag();
//Recuperation de la liste des Produits que Symfony 2 accepte
$tableauProduitSymfony = array();
/*
* Donnée à afficher sur le twig
*
*/
$this->data['formuView'] = $form->createView();
$this->data['Produit'] = $unProduit;
$this->data['locale'] = $locale;
$this->data['actionRepository'] = $actionRepository;
$originalImages = new ArrayCollection();
if ($this->request->isMethod('POST')) {
$form->handleRequest($this->request);
// Create an ArrayCollection of the current image
if ($unProduit->getImagepros() != null) {
foreach ($unProduit->getImagepros() as $image) {
$originalImages->add($image);
}
}
$typeOperation = $request->get('typeoperation');
/*
* Vérifier si les élément du formulaire sont valides
*
*/
if ($form->isSubmitted() ) {
/*
* On cherche si une Produit existe deja avec le mm nom et a un code
*/
//try {
$criteria = array('codeProduit' => $unProduit->getCodeProduit());
$ancienProduit = $produitRepository->findOneBy($criteria);
//$criteriaCode = array('codeProduit' => $unProduit->getCodeProduit());
$ancienProduitCode = $produitRepository->findOneBy($criteria);
//var_dump($ancienProduitCode);exit;
if ($ancienProduitCode != null && $id == 0 ) {
/*
* Un Produit existe mais est supprimé, on le reactive alors
*/
if ($ancienProduitCode->getEtatProduit() == TypeEtat::SUPPRIME) {
// remove the relationship between the tag and the Task
foreach ($originalImages as $image) {
$image->setProduit($unProduit);
}
$unProduit->setEtatProduit(TypeEtat::ACTIF);
$unProduit->setNomProduit($form->getData()->getNomProduit());
//Calcul du prix de vente de affecté
$fraiAffecte = ($form->getData()->getMontantHtAchat()*20)/100;
$margeSalaire = (($form->getData()->getMontantHtAchat()+$fraiAffecte)*10)/100;
$unProduit->setFraisAffecteProduit($fraiAffecte);
$unProduit->setMargeSalarialeProduit($margeSalaire);
//calcul de la marge sur salaire
$unProduit->setNomProduit($form->getData()->getNomProduit());
$em->persist($unProduit);
$em->flush();
$this->get('session')->getFlashBag()->add('produit.ajout.success', 'Ajout effectue avec succès');
//return $this->redirect($this->generateUrl('admin_produits'));
return $this->redirect($this->generateUrl('admin_prixrigueur_ajout',array('idProd'=>$unProduit->getId())));
} else {
$this->get('session')->getFlashBag()->add('produit.ajout.already.exist', 'Le code Produit ' . $ancienProduitCode->getCodeProduit() . ' existe déjà');
}
} else {
// var_dump(1);exit;
/*
* Vérification du libellé du critère
*/
if ($ancienProduit != null && $id == 0) {
/*
* Un Produit existe mais est supprimé, on le reactive alors
*/
$this->get('session')->getFlashBag()->add('produit.ajout.already.exist', 'Le Produit ' . $ancienProduit->getCodeProduit() . ' existe déjà');
} else {
foreach ($originalImages as $image) {
$image->setProduit($unProduit);
}
$unProduit->setDateModification(new \DateTime());
$unProduit->setDatePublication(new \DateTime());
$typeQualite = $request->get('type_qualite');
$typeCulture = $request->get('type_culture');
//Calcul du prix de vente de affecté
$fraiAffecte = 0;
$margeSalaire = 0;
$unProduit->setFraisAffecteProduit($fraiAffecte);
$unProduit->setMargeSalarialeProduit($margeSalaire);
$unProduit->setTypeQualite($typeQualite);
//$unProduit->setTypeCulture($typeCulture);
$unProduit->setCodeGenere($unProduit->getCodeProduit());
$unProduit->setDateCommer(new \DateTime());
if($siSimplifie != 0 ){
$unProduit->setDescriptionProduit($unProduit->getNomProduit());
}
$unProduit->setIdAuteur(1);
//$unProduit->setSeuilProduit(2);
$unProduit->setEtatProduit(1);
if($siAgricole == 1){
$objetCategorieProduit = $categorieProduitRepository->find(1);
$unProduit->setCategorie($objetCategorieProduit);
$unProduit->setSiAgricole($siAgricole);
$unProduit->setSiAgricoleParent($siAgricole);
}
$unProduit->setAbonne($this->getAbonne($em, $sessionData['abonneId'],$abonneRepository)) ;
$em->persist($unProduit);
$em->flush();
$siSimplifie = $request->get('siSimplifie');
$siAgricole = $request->get('siAgricole');
if($siSimplifie == 1){
$prixVente = $request->get('prix-vente');
if($prixVente != "")
$objetPrixRigueur = $this->savePrix($em, $prixVente, $unProduit, 2, $objetUtilisateur, $prixRigueurRepository, $cibleRepository, $caracteristiquePrixRepository) ;
$prixAchat = $request->get('prix-achat');
if($prixAchat != "")
$objetPrixRigueur = $this->savePrix($em, $prixAchat, $unProduit, 2, $objetUtilisateur, $prixRigueurRepository, $cibleRepository, $caracteristiquePrixRepository) ;
}
$tabIdCaisse = $request->get('tabCaisse');
if($tabIdCaisse != ""){
$tabDesDonneeCaisse = explode('|', $tabIdCaisse);
//var_dump($tabIdCaisse );exit;
if(count($tabDesDonneeCaisse) > 1)
$unProduit->setSiSemence(1);
foreach ($tabDesDonneeCaisse as $infoCaisseId) {
if($infoCaisseId != ""){
$objetCaisse = $caisseRepository->find($infoCaisseId);
$uneCaisseProduit = new CaisseProduit();
$uneCaisseProduit->setCaisse($objetCaisse);
$uneCaisseProduit->setProduit($unProduit);
$uneCaisseProduit->setAbonne($this->getAbonne($em, $sessionData['abonneId'],$abonneRepository));
$em->persist($uneCaisseProduit);
//Mettre le prix
$objetPrix = $prixRigueurRepository->findOneBy(["produit"=>$unProduit, "typePrixRigueur"=>2]);
$uneCaissePrix = new CaissePrix();
$uneCaissePrix->setCaisse($objetCaisse);
$uneCaissePrix->setPrixrigueur($objetPrix);
$uneCaissePrix->setAbonne($this->getAbonne($em, $sessionData['abonneId'],$abonneRepository));
$em->persist($uneCaissePrix);
}
}
}
$tabIdFournisseur = $request->get('tabFournisseur');
if($tabIdFournisseur != ""){
//var_dump($tabIdCaisse );exit;
$tabDesDonneeFournisseur = explode('|', $tabIdFournisseur);
foreach ($tabDesDonneeFournisseur as $infoFournisseurId) {
if($infoFournisseurId != ""){
$objetFournisseur = $fournisseurRepository->find($infoFournisseurId);
$uneCaisseFournisseur = new FournisseurProduit();
$uneCaisseFournisseur->setFournisseur($objetFournisseur);
$uneCaisseFournisseur->setProduit($unProduit);
//$uneCaisseFournisseur->setAbonne($this->getAbonne($em, $sessionData['abonneId'],$abonneRepository));
$em->persist($uneCaisseFournisseur);
}
}
}
$tabTypeOperation = explode(',', $typeOperation[0]);
foreach ($tabTypeOperation as $idT) {
if($idT != ""){
$objetTypeOperation = $typeOperationRepository->find($idT);
$objetProduitTypeOperation = $produitTypeOperationRepository->findOneBy(["produit"=>$unProduit, "typeoperation"=>$objetTypeOperation]);
if($objetProduitTypeOperation == null)
$objetProduitTypeOperation = new ProduitTypeOperation();
$objetProduitTypeOperation->setProduit($unProduit);
$objetProduitTypeOperation->setTypeoperation($objetTypeOperation);
$em->persist($objetProduitTypeOperation);
//$em->flush();
}
}
//Enregistrement des données
$em->flush();
$this->setAbonnePartenaire($em, $unProduit->getAbonne(), $unProduit->getAbonne()->getPartenaire(), $unProduit, $typeObjet=1);
if($unProduit->getProduit() != null){
$this->dupliquerImageProduit($em, $unProduit->getProduit()->getId(), $unProduit,$this->getAbonne($em, $sessionData['abonneId'],$abonneRepository));
}
$this->flashMessage->add('produit.ajout.success', $this->translate->trans("site.ajouter.succes"));
if($siAgricole ==1)
return $this->redirect($this->generateUrl('admin_produits', ['siAgricole'=>$siAgricole]));
else
return $this->redirect($this->generateUrl('admin_produits'));
}
}
/*} catch (\Exception $e) {
return var_dump($e->getMessage());
exit;
}*/
} else {
$this->flashMessage->add('produit.ajout.error', $this->translate->trans("site.formulaire.invalide"));
}
}
$listeProduit= $produitRepository->getAllProduitTransformation();
$listeCaisse = $caisseRepository->getAllCaisseAbonne($sessionData['abonneId']);
$listeFournisseur = $fournisseurRepository->getAllFournisseur(0,$sessionData['abonneId']);
$listeTypeOperation = $typeOperationRepository->findBy(['abonne' => $this->getAbonne($em, $sessionData['abonneId'], $abonneRepository)]);
//$siAgricole =0;
$this->data['siAgricole'] = $siAgricole;
$this->data['siAgricole'] = $siAgricole;
$this->data['listeTypeOperation'] = $listeTypeOperation;
$this->data['siSimplifie'] = $siSimplifie;
$this->data['listeCaisse'] = $listeCaisse;
$this->data['listeFournisseur'] = $listeFournisseur;
return $this->render($this->stockBundleSlash($sessionData['typePresentation']). '/Produit/ajouterProduit.html.twig', $this->data, $this->response);
}
/**
* Methode s'occupant de l'ajout du produit.
*
* @author armand.tevi@gmail.com
* @copyright ADMIN 2015
*
* @version 1
*
* @return twig d'ajout d'un abonne ajouterProduit.html.twig
*/
public function ajouterVarieteAction(Request $request,LoginManager $loginManager,ParamRepository $paramRepositor,ConnexionRepository $connexionRepository,ActionRepository $actionRepository,
ModuleRepository $moduleRepository,ControleurRepository $controleurRepository,ProfilRepository $profilRepository,
ProduitRepository $produitRepository,AbonneRepository $abonneRepository) {
/*
* Nom de l'action en cours
*/
$nomAction = __FUNCTION__;
/*
* Description de l'action de l'action en cours
*/
$em = $this->getDoctrine()->getManager();
$descAction = "Ajouter une varieté ";
$locale ='fr';
$sessionData = $this->infosConnecte($request, $loginManager, $paramRepositor,$connexionRepository, $actionRepository);;
$valRetour = $this->gestionDroitUtil($request, $nomAction, $descAction,$this->moduleTitre,$this->moduleDesc,
$loginManager,$paramRepositor,$connexionRepository, $actionRepository, $moduleRepository, $controleurRepository, $profilRepository);
if($valRetour==1){
return $this->redirect($this->generateUrl('app_logout'));
}elseif($valRetour==2){
return $this->redirect($this->generateUrl('app_admin_user_access_refuse'));
}
$prod = $sessionData["produit_id"];
$objetCultureMere = $produitRepository->find($prod);
/*
* Création du formulaire par rapport a l'entité Produit
*/
$unProduit = new Produit();
$form = $this->createForm(VarieteType::class, $unProduit);
/*
* Declaration des principales methodes Symfony2 pour traiter les informations
*/
$this->request = $request;
$this->session = $this->get('session');
$this->flashMessage = $this->get('session')->getFlashBag();
//Recuperation de la liste des Produits que Symfony 2 accepte
$tableauProduitSymfony = array();
/*
* Donnée à afficher sur le twig
*
*/
$this->data['formuView'] = $form->createView();
$this->data['Produit'] = $unProduit;
$this->data['locale'] = $locale;
$this->data['actionRepository'] = $actionRepository;
$originalImages = new ArrayCollection();
if ($this->request->isMethod('POST')) {
$form->handleRequest($this->request);
// Create an ArrayCollection of the current image
if ($unProduit->getImagepros() != null) {
foreach ($unProduit->getImagepros() as $image) {
$originalImages->add($image);
}
}
/*
* Vérifier si les élément du formulaire sont valides
*
*/
//var_dump($form);exit;
if ($form->isSubmitted() ) {
/*
* On cherche si une Produit existe deja avec le mm nom et a un code
*/
try {
$criteria = array('codeProduit' => $unProduit->getCodeProduit());
$ancienProduit = $produitRepository->findOneBy($criteria);
//$criteriaCode = array('codeProduit' => $unProduit->getCodeProduit());
$ancienProduitCode = $produitRepository->findOneBy($criteria);
if ($ancienProduitCode != null) {
/*
* Un Produit existe mais est supprimé, on le reactive alors
*/
if ($ancienProduitCode->getEtatProduit() == TypeEtat::SUPPRIME) {
// remove the relationship between the tag and the Task
foreach ($originalImages as $image) {
$image->setProduit($unProduit);
}
$unProduit->setEtatProduit(TypeEtat::ACTIF);
$unProduit->setNomProduit($form->getData()->getNomProduit());
//Calcul du prix de vente de affecté
//calcul de la marge sur salaire
$unProduit->setNomProduit($form->getData()->getNomProduit());
if ($unProduit->getImagepros() != null) {
$unProduit->addImagepro($unProduit->getImagepros()[0]);
}
$em->persist($unProduit);
$em->flush();
$this->get('session')->getFlashBag()->add('produit.ajout.success', 'Ajout effectue avec succès');
return $this->redirect($this->generateUrl('admin_varietes'));
} else {
$this->get('session')->getFlashBag()->add('produit.ajout.already.exist', 'Le code Produit ' . $ancienProduitCode->getCodeProduit() . ' existe déjà');
}
} else {
/*
* Vérification du libellé du critère
*/
if ($ancienProduit != null) {
/*
* Un Produit existe mais est supprimé, on le reactive alors
*/
$this->get('session')->getFlashBag()->add('produit.ajout.already.exist', 'Le Produit ' . $ancienProduit->getCodeProduit() . ' existe déjà');
} else {
foreach ($originalImages as $image) {
$image->setProduit($unProduit);
}
$unProduit->setDateModification(new \DateTime());
$unProduit->setDatePublication(new \DateTime());
if ($unProduit->getImagepros() != null) {
$unProduit->addImagepro($unProduit->getImagepros()[0]);
}
//Calcul du prix de vente de affecté
$unProduit->setDateCommer(new \DateTime());
$unProduit->setIdAuteur(1);
$unProduit->setEtatProduit(1);
$unProduit->setProduit($objetCultureMere);
$unProduit->setCategorie($objetCultureMere->getCategorie());
$em->persist($unProduit);
$em->flush();
$this->flashMessage->add('produit.ajout.success', $this->translate->trans("site.ajouter.succes"));
return $this->redirect($this->generateUrl('admin_varietes'));
}
}
} catch (\Exception $e) {
var_dump($e->getMessage());
exit;
}
} else {
$this->flashMessage->add('produit.ajout.error', $this->translate->trans("site.formulaire.invalide"));
}
}
return $this->render($this->stockBundleSlash($sessionData['typePresentation']). '/Produit/ajouterVariete.html.twig', $this->data, $this->response);
}
/**
* Methode s'occupant de la modification du produit.
*
* @author armand.tevi@gmail.com
* @copyright ADMIN 2015
*
* @version 1
*
* @return twig d'ajout d'un abonne modifierProduit.html.twig
*/
public function modifierProduitAction(Request $request, $siSimplifie,$id,LoginManager $loginManager,ParamRepository $paramRepositor,ConnexionRepository $connexionRepository,ActionRepository $actionRepository,
ModuleRepository $moduleRepository,ControleurRepository $controleurRepository,ProfilRepository $profilRepository,
ProduitRepository $produitRepository,AbonneRepository $abonneRepository, CaisseRepository $caisseRepository
, FournisseurRepository $fournisseurRepository) {
/*
* Nom de l'action en cours
*/
$nomAction = __FUNCTION__;
/*
* Description de l'action de l'action en cours
*/
$descAction = "Modifier un produit ";
$locale ='fr';
$valRetour = $this->gestionDroitUtil($request, $nomAction, $descAction,$this->moduleTitre,$this->moduleDesc,
$loginManager,$paramRepositor,$connexionRepository, $actionRepository, $moduleRepository, $controleurRepository, $profilRepository);
if($valRetour==1){
return $this->redirect($this->generateUrl('app_logout'));
}elseif($valRetour==2){
return $this->redirect($this->generateUrl('app_admin_user_access_refuse'));
}
$em = $this->getDoctrine()->getManager();
$this->flashMessage = $this->get('session')->getFlashBag();
$sessionData = $this->infosConnecte($request, $loginManager, $paramRepositor,$connexionRepository, $actionRepository);;
/*
* On vérifie si l'utilisateur est connecté
*/
/*
* Création du formulaire par rapport a l'entité Produit
*/
$unProduit = $produitRepository->find($id);
// Vérification de véracité des informations envoyées
$form = $this->createForm(ProduitType::class, $unProduit, ['abonne'=>$this->getAbonne($em,$sessionData['abonneId'], $abonneRepository), 'siSimplifie'=>$siSimplifie]);
if ($unProduit == null) {
return $this->redirect($this->generateUrl('admin_produits'));
}
// Vérifier si la méthode d'envoie
if ($request->isMethod('POST')) {
$form->handleRequest($request);
/*
* Vérifier si les éléments du formulaire sont valides et que le formulaire a ete soumis
*/
if ($form->isSubmitted()) {
try {
/*
* On cherche si une Produit existe deja avec le même nom
*/
$criteria = array('codeProduit' => $unProduit->getCodeProduit());
$ancienProduit = $produitRepository->findOneBy($criteria);
/*
* On cherche si une Produit existe deja avec le même code
*/
// $criteriaCode = array('codeProduit' => $unProduit->getCodeProduit());
$ancienProduitCode = $produitRepository->findBy($criteria);
$unProduit->setIdAuteur(1);
//var_dump(count($ancienProduitCode) );exit;
/* if (count($ancienProduitCode) > 1) {
$this->flashMessage->add('produit.modifier.already.exist', 'Le code Produit ' . $ancienProduitCode[0]->getCodeProduit() . ' existe déjà');
} else {*/
if ($ancienProduit != null) {
/*
* Traitement du cas d'un Produit qui existe mais est
* supprimé, on le reactive alors pour eviter
* les doublons dans la base de données
*/
if ($ancienProduit->getEtatProduit() == TypeEtat::SUPPRIME) {
/*
* Activation du critère supprimé
*/
$ancienProduit->getEtatProduit(TypeEtat::ACTIF);
} else {
/*
* Persistence de l'objet
*/
/* $margeSalaire = ($form->getData()->getMontantHtAchat()*10)/100;
$fraiAffecte = ($form->getData()->getMontantHtAchat()*20)/100;
$unProduit->setFraisAffecteProduit($fraiAffecte);
$unProduit->setMargeSalarialeProduit($margeSalaire);*/
$em->persist($unProduit);
}
} else {
$em->persist($unProduit);
}
/*
* Mise a jour des informations dans la base de donnée
*/
$em->flush();
$this->flashMessage->add('produit.modifier.success', $this->translate->trans("site.ajouter.succes"));
return $this->redirect($this->generateUrl('admin_produits'));
} catch (\Exception $e) {
var_dump($e->getMessage());
exit;
}
} else {
$this->flashMessage->add('produit.ajout.error', $this->translate->trans("site.formulaire.invalide"));
}
}
/*
* Preparation des informations à traiter sur les twig
*/
$listeCaisse = $caisseRepository->getAllCaisseAbonne($sessionData['abonneId']);
$listeFournisseur = $fournisseurRepository->getAllFournisseur(0,$sessionData['abonneId']);
$siAgricole =0;
$this->data['siAgricole'] = $siAgricole;
$this->data['listeCaisse'] = $listeCaisse;
$this->data['listeFournisseur'] = $listeFournisseur;
$this->data['formuView'] = $form->createView();
$this->data['Produit'] = $unProduit;
$this->data['siSimplifie'] = $siSimplifie;
$this->data['locale'] = $locale;
$this->data['actionRepository'] = $actionRepository;
$this->data['id'] = $id;
return $this->render($this->stockBundleSlash($sessionData['typePresentation']). '/Produit/modifierProduit.html.twig', $this->data, $this->response);
}
/**
* Methode s'occupant de la modification du produit.
*
* @author armand.tevi@gmail.com
* @copyright ADMIN 2015
*
* @version 1
*
* @return twig d'ajout d'un abonne modifierProduit.html.twig
*/
public function modifierVarieteAction(Request $request, $id,LoginManager $loginManager,ParamRepository $paramRepositor,ConnexionRepository $connexionRepository,ActionRepository $actionRepository,
ModuleRepository $moduleRepository,ControleurRepository $controleurRepository,ProfilRepository $profilRepository,
ProduitRepository $produitRepository,AbonneRepository $abonneRepository) {
/*
* Nom de l'action en cours
*/
$nomAction = __FUNCTION__;
/*
* Description de l'action de l'action en cours
*/
$descAction = "Modifier une varieté ";
$locale ='fr';
$valRetour = $this->gestionDroitUtil($request, $nomAction, $descAction,$this->moduleTitre,$this->moduleDesc,
$loginManager,$paramRepositor,$connexionRepository, $actionRepository, $moduleRepository, $controleurRepository, $profilRepository);
if($valRetour==1){
return $this->redirect($this->generateUrl('app_logout'));
}elseif($valRetour==2){
return $this->redirect($this->generateUrl('app_admin_user_access_refuse'));
}
$em = $this->getDoctrine()->getManager();
$this->flashMessage = $this->get('session')->getFlashBag();
/*
* On vérifie si l'utilisateur est connecté
*/
/*
* Création du formulaire par rapport a l'entité Produit
*/
$unProduit = $produitRepository->find($id);
//$ancienProduitAModif = $unProduit->getNomProduit();
$form = $this->createForm(VarieteType::class, $unProduit);
// Vérification de véracité des informations envoyées
if ($unProduit == null) {
return $this->redirect($this->generateUrl('admin_varietes'));
}
// Vérifier si la méthode d'envoie
if ($request->isMethod('POST')) {
$form->handleRequest($request);
/*
* Vérifier si les éléments du formulaire sont valides et que le formulaire a ete soumis
*/
if ($form->isSubmitted()) {
try {
/*
* On cherche si une Produit existe deja avec le même nom
*/
$criteria = array('codeProduit' => $unProduit->getCodeProduit());
$ancienProduit = $produitRepository->findOneBy($criteria);
/*
* On cherche si une Produit existe deja avec le même code
*/
// $criteriaCode = array('codeProduit' => $unProduit->getCodeProduit());
$ancienProduitCode = $produitRepository->getRepository($this->stockBundle . 'Produit')->findBy($criteria);
$unProduit->setIdAuteur(1);
if (count($ancienProduitCode) > 1) {
$this->flashMessage->add('produit.modifier.already.exist', 'Le code Produit ' . $ancienProduitCode[0]->getCodeProduit() . ' existe déjà');
} else {
if ($ancienProduit != null) {
/*
* Traitement du cas d'un Produit qui existe mais est
* supprimé, on le reactive alors pour eviter
* les doublons dans la base de données
*/
if ($ancienProduit->getEtatProduit() == TypeEtat::SUPPRIME) {
/*
* Activation du critère supprimé
*/
$ancienProduit->getEtatProduit(TypeEtat::ACTIF);
} else {
/*
* Persistence de l'objet
*/
$margeSalaire = ($form->getData()->getMontantHtAchat()*10)/100;
$fraiAffecte = ($form->getData()->getMontantHtAchat()*20)/100;
$unProduit->setFraisAffecteProduit($fraiAffecte);
$unProduit->setMargeSalarialeProduit($margeSalaire);
$em->persist($unProduit);
}
} else {
$em->persist($unProduit);
}
/*
* Mise a jour des informations dans la base de donnée
*/
$em->flush();
$this->flashMessage->add('produit.modifier.success', $this->translate->trans("site.ajouter.succes"));
return $this->redirect($this->generateUrl('admin_varietes'));
}
} catch (\Exception $e) {
var_dump($e->getMessage());
exit;
}
} else {
$this->flashMessage->add('produit.ajout.error', $this->translate->trans("site.formulaire.invalide"));
}
}
/*
* Preparation des informations à traiter sur les twig
*/
$this->data['formuView'] = $form->createView();
$this->data['Produit'] = $unProduit;
$this->data['locale'] = $locale;
$this->data['id'] = $id;
$this->data['actionRepository'] = $actionRepository;
return $this->render($this->stockBundleSlash($sessionData['typePresentation']). '/Produit/modifierVariete.html.twig', $this->data, $this->response);
}
/**
* Methode s'occupant de lister les Produits.
*
* @author armand.tevi@gmail.com
* @copyright ADMIN 2015
*
* @version 1
*
* @return twig d'ajout d'un abonne listeProduit.html.twig
*/
public function listerProduitAction(Request $request, $siAgricole,LoginManager $loginManager,ParamRepository $paramRepositor,ConnexionRepository $connexionRepository,ActionRepository $actionRepository,
ModuleRepository $moduleRepository,ControleurRepository $controleurRepository,ProfilRepository $profilRepository,
ProduitRepository $produitRepository,CategorieProduitRepository $categorieProduitRepository,AbonneRepository $abonneRepository) {
/*
* Nom de l'action en cours
*/
$nomAction = __FUNCTION__;
/*
* Description de l'action de l'action en cours
*/
$descAction = "Liste des produits ";
$locale ='fr';
$valRetour = $this->gestionDroitUtil($request, $nomAction, $descAction,$this->moduleTitre,$this->moduleDesc,
$loginManager,$paramRepositor,$connexionRepository, $actionRepository, $moduleRepository, $controleurRepository, $profilRepository);
if($valRetour==1){
return $this->redirect($this->generateUrl('app_logout'));
}elseif($valRetour==2){
return $this->redirect($this->generateUrl('app_admin_user_access_refuse'));
}
$sessionData = $this->infosConnecte($request, $loginManager, $paramRepositor,$connexionRepository, $actionRepository);;
$listeProduit = array();
try {
/*
* Récupération des la liste des critères
*/
$em = $this->getDoctrine()->getManager();
$infoPartenaire = $this->getInfoPartenaire($em, $this->getAbonne($em, $sessionData['abonneId'],$abonneRepository));
if($siAgricole == 0){
$objetAbonne = $this->getAbonne($em, $sessionData['abonneId'],$abonneRepository);
// $listeCategorie = $em->getRepository($this->stockBundle . 'CategorieProduit')->findBy(array("etat"=>1));
$listeCategorie = $categorieProduitRepository->getAllCategorieProduit($objetAbonne->getId());
foreach($listeCategorie as $uneCategorie){
$listeProduit[$uneCategorie->getId()] = $produitRepository->getAllProduitCategorieAjax($uneCategorie->getId(),$sessionData['abonneId'],0,0,$infoPartenaire['partenaireId'], $infoPartenaire['typeAction']); //$uneCategorie->getId()
}
//var_dump( $listeProduit);exit;
}else{
$listeProduit = $produitRepository->getAllProduitCategorieAjax(0,$sessionData['abonneId'], 1,1,$infoPartenaire['partenaireId'], $infoPartenaire['typeAction']); //$uneCategorie->getId()
}
//$listeProduit = $em->getRepository($this->stockBundle . 'Produit')->getAllProduit();
} catch (\Exception $e) {
var_dump($e->getMessage());
exit;
}
/*
* Préparation des informations que nous allons traiter sur le twig
*/
$this->data['listeProduit'] = $listeProduit;
$this->data['locale'] = $locale;
$this->data['siAgricole'] = $siAgricole;
$this->data['actionRepository'] = $actionRepository;
$this->data['type'] = 0;
if($siAgricole == 1){
return $this->render($this->stockBundleSlash($sessionData['typePresentation']). '/Produit/listeProduitAgricole.html.twig', $this->data, $this->response);
}else{
$this->data['listeCategorie'] = $listeCategorie;
return $this->render($this->stockBundleSlash($sessionData['typePresentation']). '/Produit/listeProduit.html.twig', $this->data, $this->response);
}
}
/**
* Methode s'occupant de lister les Produits.
*
* @author armand.tevi@gmail.com
* @copyright ADMIN 2015
*
* @version 1
*
* @return twig d'ajout d'un abonne listeProduit.html.twig
*/
public function listerVarieteAction(Request $request,LoginManager $loginManager,ParamRepository $paramRepositor,ConnexionRepository $connexionRepository,ActionRepository $actionRepository,
ModuleRepository $moduleRepository,ControleurRepository $controleurRepository,ProfilRepository $profilRepository,
ProduitRepository $produitRepository,AbonneRepository $abonneRepository) {
/*
* Nom de l'action en cours
*/
$nomAction = __FUNCTION__;
/*
* Description de l'action de l'action en cours
*/
$descAction = "Liste des variétés ";
$sessionData = $this->infosConnecte($request, $loginManager, $paramRepositor,$connexionRepository, $actionRepository);
$locale ='fr';
$valRetour = $this->gestionDroitUtil($request, $nomAction, $descAction,$this->moduleTitre,$this->moduleDesc,
$loginManager,$paramRepositor,$connexionRepository, $actionRepository, $moduleRepository, $controleurRepository, $profilRepository);
if($valRetour==1){
return $this->redirect($this->generateUrl('app_logout'));
}elseif($valRetour==2){
return $this->redirect($this->generateUrl('app_admin_user_access_refuse'));
}
$prod = $sessionData["produit_id"];
try {
/*
* Récupération des la liste des critères
*/
$em = $this->getDoctrine()->getManager();
$listeProduit = $produitRepository->getAllVariete($prod);
} catch (\Exception $e) {
var_dump($e->getMessage());
exit;
}
/*
* Préparation des informations que nous allons traiter sur le twig
*/
$this->data['listeProduit'] = $listeProduit;
$this->data['locale'] = $locale;
$this->data['actionRepository'] = $actionRepository;
return $this->render($this->stockBundleSlash($sessionData['typePresentation']). '/Produit/listevariete.html.twig', $this->data, $this->response);
}
/**
* Methode s'occupant de lister les Produits.
*
* @author armand.tevi@gmail.com
* @copyright ADMIN 2015
*
* @version 1
*
* @return twig d'ajout d'un abonne listeProduit.html.twig
*/
public function choixProduitAction(Request $request,LoginManager $loginManager,ParamRepository $paramRepositor,ConnexionRepository $connexionRepository,ActionRepository $actionRepository,
ModuleRepository $moduleRepository,ControleurRepository $controleurRepository,ProfilRepository $profilRepository,
ProduitRepository $produitRepository,AbonneRepository $abonneRepository) {
/*
* Nom de l'action en cours
*/
$nomAction = __FUNCTION__;
/*
* Description de l'action de l'action en cours
*/
$descAction = "Choix des produits ";
$locale ='fr';
$valRetour = $this->gestionDroitUtil($request, $nomAction, $descAction,$this->moduleTitre,$this->moduleDes,
$loginManager,$paramRepositor,$connexionRepository, $actionRepository, $moduleRepository, $controleurRepository, $profilRepository);
$sessionData = $this->infosConnecte($request, $loginManager, $paramRepositor,$connexionRepository, $actionRepository);
if($valRetour==1){
return $this->redirect($this->generateUrl('app_logout'));
}elseif($valRetour==2){
return $this->redirect($this->generateUrl('app_admin_user_access_refuse'));
}
try {
/*
* Récupération des la liste des critères
*/
$em = $this->getDoctrine()->getManager();
$listeProduit = $produitRepository->getAllProduit();
} catch (\Exception $e) {
var_dump($e->getMessage());
exit;
}
/*
* Préparation des informations que nous allons traiter sur le twig
*/
$this->data['listeProduit'] = $listeProduit;
$this->data['locale'] = $locale;
$this->data['actionRepository'] = $actionRepository;
return $this->render($this->stockBundleSlash($sessionData['typePresentation']). '/Produit/choixProduit.html.twig', $this->data, $this->response);
}
/**
* Methode s'occupant de la gestion des états du critère
* Activation, suppression, désactivation de pays.
*
* @author armand.tevi@gmail.com
* @copyright ADMIN 2015
*
* @version 1
*
* @return Response
*/
public function changerEtatProduitAction(Request $request,LoginManager $loginManager,ParamRepository $paramRepositor,ConnexionRepository $connexionRepository,ActionRepository $actionRepository,
ModuleRepository $moduleRepository,ControleurRepository $controleurRepository,ProfilRepository $profilRepository,
ProduitRepository $produitRepository,AbonneRepository $abonneRepository) {
$rep = array('etat' => FALSE, 'msg' => 'Erreur survenue lors du traitement', 'logout' => FALSE);
/*
* Nom de l'action en cours
*/
$nomAction = __FUNCTION__;
/*
* Description de l'action de l'action en cours
*/
$descAction = "Changer l'etat de la ligne des produits";
/*
* Préparation du message de log
*/
$this->logMessage .= ' [ ' . $nomAction . ' ] ';
/*
* Service de gestion des droits
*/
/*
* Informations de session
*/
$sessionData = $this->infosConnecte($request, $loginManager, $paramRepositor,$connexionRepository, $actionRepository);;
/*
* Locale en cours
*/
$locale = $loginManager->getLocale();
$this->data['locale'] = $locale;
$this->data['actionRepository'] = $actionRepository;
/*
* On vérifie si l'utilisateur est connecté
*/
$status = $loginManager->isConnecte($nomAction,$paramRepositor,$connexionRepository, $actionRepository);
if ($status['isConnecte']) {
/*
* Au cas ou l'utilisateur est connecté on vérifie s'il nest pas innactif. S'il est innactif
* on garde en mémoire flash la route actuelle pour effectuer une redirection lors de la prochaine connexion
*/
if ($status['isInnactif']) {
$rep['msg'] = "Vous avez accusé un long moment d'inactivité. Veuillez-vous connecter de nouveau";
$loginManager->logout(LoginManager::SESSION_DATA_NAME);
return new Response(json_encode($rep));
}
/*
* Seuls les utilisateurs admins ont le droit d'acceder à cette action
*/
if (!$status['isUser']) {
return new Response(json_encode($rep));
}
} else {
$rep['msg'] = "Vous êtes déconnecté. Veuillez-vous connecter de nouveau";
return new Response(json_encode($rep));
}
$em = $this->getDoctrine()->getManager();
/*
* Gestion des droits
*/
if (!$loginManager->getOrSetActions(Module::MOD_GEST_PROD, Module::MOD_GEST_PROD_DESC, $this->getNomClassRun(__CLASS__), $this->description, $nomAction, $descAction, $sessionData['idProfil'], $moduleRepository, $controleurRepository, $actionRepository, $profilRepository,
$moduleRepository, $controleurRepository, $actionRepository, $profilRepository)) {
$this->logMessage .= ' [ TENTATIVE DE VIOLATION DE DROITS ] ';
$rep['msg'] = "Vous n'avez pas le droit de déconnecter un utilisateur";
return new Response(json_encode($rep));
}
/*
* 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')) {
/*
* on recupere l'état actuel qu'on veut donner au(x) Produit(s)
* cette variable est envoyée depuis la vue a travers la requete post ajax
*/
$tempEtat = (int) $request->get('etat');
/*
* on recupere les ids des Produits qui ont été choisis sur la vue pour subir une modification d'états
* cette variable est envoyé depuis la vue a travers la requete post ajax
*/
$tempIds = $request->get('sId');
/*
* verification si l'etat envoyé est un état INACTIF , ACTIF ou SUPPRIME
* déclaration d'une variable pour prendre l'état comme constante de classe TypeEtat
*/
$etat = TypeEtat::INACTIF;
if ($tempEtat == TypeEtat::INACTIF) {
$etat = TypeEtat::INACTIF;
} elseif ($tempEtat == TypeEtat::ACTIF) {
$etat = TypeEtat::ACTIF;
} elseif ($tempEtat == TypeEtat::SUPPRIME) {
$etat = TypeEtat::SUPPRIME;
}
//var_dump($etat);exit;
/*
* éclatement de la chaine d'ids séparé par des | en tableau
* afin de parcourir le tabelau et faire le changement d'etat par compte
*/
$tabIds = explode('|', $tempIds);
//var_dump($tempEtat );exit;
/*
* variable boolean initialisé a false .elle va être modifier à true si tout se passe bien
*/
$oneOk = false;
/*
* Boucle de changement d'état à tout les comptes choisis
*/
foreach ($tabIds as $idS) {
/*
* Recuperation du Produit dont l'id est l'id courant de la boucle
*/
$unProduit = $produitRepository->find((int) $idS);
if ($unProduit != null) {
if($tempEtat == -1){
$unProduit->setSiAffichage(1);
}else{
$unProduit->setEtatProduit($etat);
}
/*
* Mise à jour des informations dans la base de donnée
*/
$em->flush();
$oneOk = true;
}
}
if ($oneOk) {
// $this->flashMessage->add('produit.gerer.success', $this->translate->trans("site.ajouter.succes"));
$rep['msg'] = '';
$rep['etat'] = true;
}
return new Response(json_encode($rep));
}
return new Response(json_encode($rep));
}
/**
* Methode s'occupant de la gestion des états du critère
* Activation, suppression, désactivation de pays.
*
* @author armand.tevi@gmail.com
* @copyright ADMIN 2015
*
* @version 1
*
* @return Response
*/
public function changerEtatSiCommerceProduitAction(Request $request,LoginManager $loginManager,ParamRepository $paramRepositor,ConnexionRepository $connexionRepository,ActionRepository $actionRepository,
ModuleRepository $moduleRepository,ControleurRepository $controleurRepository,ProfilRepository $profilRepository,
ProduitRepository $produitRepository,AbonneRepository $abonneRepository) {
$rep = array('etat' => FALSE, 'msg' => 'Erreur survenue lors du traitement', 'logout' => FALSE);
/*
* Nom de l'action en cours
*/
$nomAction = __FUNCTION__;
/*
* Description de l'action de l'action en cours
*/
$descAction = "Définir comme produit ecommerce";
/*
* Préparation du message de log
*/
$this->logMessage .= ' [ ' . $nomAction . ' ] ';
/*
* Service de gestion des droits
*/
/*
* Informations de session
*/
$sessionData = $this->infosConnecte($request, $loginManager, $paramRepositor,$connexionRepository, $actionRepository);;
/*
* Locale en cours
*/
$locale = $loginManager->getLocale();
$this->data['locale'] = $locale;
$this->data['actionRepository'] = $actionRepository;
/*
* On vérifie si l'utilisateur est connecté
*/
$status = $loginManager->isConnecte($nomAction,$paramRepositor,$connexionRepository, $actionRepository);
if ($status['isConnecte']) {
/*
* Au cas ou l'utilisateur est connecté on vérifie s'il nest pas innactif. S'il est innactif
* on garde en mémoire flash la route actuelle pour effectuer une redirection lors de la prochaine connexion
*/
if ($status['isInnactif']) {
$rep['msg'] = "Vous avez accusé un long moment d'inactivité. Veuillez-vous connecter de nouveau";
$loginManager->logout(LoginManager::SESSION_DATA_NAME);
return new Response(json_encode($rep));
}
/*
* Seuls les utilisateurs admins ont le droit d'acceder à cette action
*/
if (!$status['isUser']) {
return new Response(json_encode($rep));
}
} else {
$rep['msg'] = "Vous êtes déconnecté. Veuillez-vous connecter de nouveau";
return new Response(json_encode($rep));
}
$em = $this->getDoctrine()->getManager();
/*
* Gestion des droits
*/
if (!$loginManager->getOrSetActions(Module::MOD_GEST_PROD, Module::MOD_GEST_PROD_DESC, $this->getNomClassRun(__CLASS__), $this->description, $nomAction, $descAction, $sessionData['idProfil'], $moduleRepository, $controleurRepository, $actionRepository, $profilRepository,
$moduleRepository, $controleurRepository, $actionRepository, $profilRepository)) {
$this->logMessage .= ' [ TENTATIVE DE VIOLATION DE DROITS ] ';
$rep['msg'] = "Vous n'avez pas le droit de déconnecter un utilisateur";
return new Response(json_encode($rep));
}
/*
* 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')) {
/*
* on recupere l'état actuel qu'on veut donner au(x) Produit(s)
* cette variable est envoyée depuis la vue a travers la requete post ajax
*/
$produitId = (int) $request->get('produitId');
/*
* variable boolean initialisé a false .elle va être modifier à true si tout se passe bien
*/
$oneOk = false;
$etat=1;
$unProduit = $produitRepository->find((int) $produitId);
if($unProduit->getSiEcommerce() == 1)
$etat=0;
if ($unProduit != null) {
$unProduit->setSiEcommerce($etat);
/*
* Mise à jour des informations dans la base de donnée
*/
$em->flush();
$oneOk = true;
}
if ($oneOk) {
// $this->flashMessage->add('produit.gerer.success', $this->translate->trans("site.ajouter.succes"));
$rep['msg'] = '';
$rep['etat'] = true;
}
return new Response(json_encode($rep));
}
return new Response(json_encode($rep));
}
/**
* Methode s'occupant de detail du Produit.
*
* @author armand.tevi@gmail.com
* @copyright ADMIN 2015
*
* @version 1
*
* @return twig d'ajout d'un abonne detailProduit.html.twig
*/
public function detailProduitAction(Request $request, $id, $siAgricole,LoginManager $loginManager,ParamRepository $paramRepositor,ConnexionRepository $connexionRepository,ActionRepository $actionRepository,
ModuleRepository $moduleRepository,ControleurRepository $controleurRepository,ProfilRepository $profilRepository,
ProduitRepository $produitRepository,AbonneRepository $abonneRepository, ProducteurRepository $producteurRepository, AnneeCampagneRepository $anneeCampagneRepository, InventaireRepository $inventaireRepository
, EtapeCroissanceRepository $etapeCroissanceRepository, ActiviteRepository $activiteRepository, PlanteRepository $planteRepository, ProjetRepository $projetRepository,
UtilisateurRepository $utilisateurRepository, CategorieProduitRepository $categorieProduitRepository, SurfaceAnneeRepository $surfaceAnneeRepository,ImageRepository $imageRepository,
LigneCommandeRepository $ligneCommandeRepository, LivrerRepository $livrerRepository, CommandeRepository $commandeRepository, RubriqueRepository $rubriqueRepository,
ProduitEtapeCroissanceRepository $produitEtapeCroissanceRepository) {
/*
* Nom de l'action en cours
*/
$nomAction = __FUNCTION__;
/*
* Description de l'action de l'action en cours
*/
$descAction = "Détail d'un produit ";
$valRetour = $this->gestionDroitUtil($request, $nomAction, $descAction,$this->moduleTitre,$this->moduleDesc,
$loginManager,$paramRepositor,$connexionRepository, $actionRepository, $moduleRepository, $controleurRepository, $profilRepository);
if($valRetour==1){
return $this->redirect($this->generateUrl('app_logout'));
}elseif($valRetour==2){
return $this->redirect($this->generateUrl('app_admin_user_access_refuse'));
}
$sessionData = $this->infosConnecte($request, $loginManager, $paramRepositor,$connexionRepository, $actionRepository);;
$codeGenere= "PAR".rand();
//try {
if($id == 0)
$id = $request->get("produitId");
/*
* Récupération du détail de l'utilisateur
*/
// var_dump($id);exit;
$em = $this->getDoctrine()->getManager();
$objetAbonne = $this->getAbonne($em, $sessionData['abonneId'],$abonneRepository);
//var_dump($id);exit;
$detailProduit = $produitRepository->getOneProduit($id);
$surfaceAnnee = new SurfaceAnnee();
$surfaceAnnee->setCodeSurface($codeGenere);
$formParcelle = $this->createForm(SurfaceAnneeProduitType::class, $surfaceAnnee,['produit'=>$detailProduit[0]]);
$uneRubrique = new Rubrique();
$unArticle = new Article();
$formRubrique = $this->createForm('App\Form\cms\RubriqueProduitType', $uneRubrique);
$formArticle = $this->createForm('App\Form\cms\ArticleType',$unArticle ,['abonne'=>$this->getAbonne($em,$sessionData['abonneId'], $abonneRepository)]);
$unAnneeCampagne = new AnneeCampagne();
$formSaison = $this->createForm(AnneeCampagneProduitType::class, $unAnneeCampagne, ['abonne'=>$this->getAbonne($em,$sessionData['abonneId'], $abonneRepository)]);
$unProduit = new Produit();
$unProduit->setCodeProduit("PR".rand());
$siSimplifie = 3;
$formProduit = $this->createForm(ProduitVarieteType::class, $unProduit, ['abonne'=>$this->getAbonne($em,$sessionData['abonneId'], $abonneRepository), 'siSimplifie'=>$siSimplifie]);
$uneSemence = new Produit();
$uneSemence->setCodeProduit("PR".rand());
$formSemence = $this->createForm(ProduitRendementType::class, $uneSemence, ['abonne'=>$this->getAbonne($em,$sessionData['abonneId'], $abonneRepository), 'siSimplifie'=>$siSimplifie]);
$unProduitTransf = new Produit();
$unProduitTransf->setCodeProduit("PR".rand());
$formTransformation = $this->createForm(ProduitVarieteType::class, $unProduitTransf, ['abonne'=>$this->getAbonne($em,$sessionData['abonneId'], $abonneRepository), 'siSimplifie'=>$siSimplifie]);
$listeProducteur = $producteurRepository->getAllProducteur(0, 0, 0,0, 0, 0, 0, 0,0,1,5,0,0,$sessionData['abonneId']);
$listeProduitMelange = $produitRepository->findBy(["abonne"=> $this->getAbonne($em,$sessionData['abonneId'], $abonneRepository), 'categorie'=>$categorieProduitRepository->find(1)]);
$locale="fr";
$objetSaison = $anneeCampagneRepository->findOneBy(["etatAnneeCampagne"=>1, "produit"=> $detailProduit[0]]);
//Liste de tache
if($objetSaison == null)
$listeTache = array();
else
$listeTache = $activiteRepository->findBy(["saison"=> $objetSaison]);
if ($request->getMethod() == 'POST') {
$id = strtolower($request->get('prod_'));
$request->attributes->set('prod_', $id);
$datefin = strtolower($request->get('datefin_'));
$request->attributes->set('datefin_', $datefin);
$datedeb = strtolower($request->get('datedeb_'));
$request->attributes->set('datedeb_', $datedeb);
$afficher = 1;
// $detailProduit = $em->getRepository($this->stockBundle . 'Produit')->getOneProduit($id);
$inventaire = $inventaireRepository->findOneBy(["etatInventaire"=>1, "produit"=> $detailProduit[0]]);
//$producteurId = $request->get("prodId");
$formSemence->handleRequest($request);
$formParcelle->handleRequest($request);
$formSaison->handleRequest($request);
$formProduit->handleRequest($request);
$formRubrique->handleRequest($request);
$formTransformation->handleRequest($request);
$formArticle->handleRequest($request);
$id = $request->get("produitId");
$objetProduit = $produitRepository->find($id );
//var_dump($formArticle->isSubmitted());exit;
if ($formParcelle->isSubmitted()) {
//var_dump($produitId);exit;
$codeGenere = "W_INT".rand(0,99)."".rand(0,99);
$producteurId = $request->get("prodId");
$typeAction = $request->get("typeAction");
$this->saveSurfaceAnneeFormulaire($em, $surfaceAnnee, $producteurId, $id , null, $codeGenere, $sessionData['id'], $producteurRepository, $produitRepository , $utilisateurRepository);
}else if ($formSaison->isSubmitted()) {
$this->initialiserAnneeCampagne($em, $id );
//$id = $produitId;
$unAnneeCampagne->setEtatAnneeCampagne(1);
$unAnneeCampagne->setProduit($objetProduit);
$unAnneeCampagne->setAbonne($this->getAbonne($em, $sessionData['abonneId'],$abonneRepository));
$em->persist($unAnneeCampagne);
$em->flush();
}else if ($formProduit->isSubmitted()) {
$siSimplifie = $request->get("siSimplifie");
if($siSimplifie == 3){
$unProduit = $this->saveVarieteTransformation($em, $unProduit, $objetProduit, $categorieProduitRepository->find(1),$this->getAbonne($em, $sessionData['abonneId'],$abonneRepository),2) ;
$this->setAbonnePartenaire($em, $objetAbonne, $objetAbonne->getPartenaire(), $unProduit, $typeObjet=1);
}else{
$unProduit = $this->saveVarieteTransformation($em, $unProduitTransf, $objetProduit, $categorieProduitRepository->find(3),$this->getAbonne($em, $sessionData['abonneId'],$abonneRepository),0) ;
$siMelange = $request->get("siMelange");
if($siMelange){
$unProduit->setSiMelange(1);
$unProduit->setMelange($produitRepository->find($request->get("produit_melange")));
$em->persist($unProduit);
$em->flush();
}
}
//$this->setAbonnePartenaire($em, $objetProducteur->getAbonne(), $objetProducteur->getAbonne()->getPartenaire(), $objetProduit, $typeObjet=1);
// }else if ($formTransformation->isSubmitted()) {
//$id = $produitId;
} else if ($formSemence->isSubmitted()) {
$siSimplifie = $request->get("siSimplifie");
//if($siSimplifie == 3){
$objetVariete = $this->saveVarieteTransformation($em, $uneSemence, $objetProduit, $categorieProduitRepository->find(1),$this->getAbonne($em, $sessionData['abonneId'],$abonneRepository),1) ;
$id = $objetProduit->getProduit()->getId();
$this->setAbonnePartenaire($em, $objetAbonne, $objetAbonne->getPartenaire(), $objetVariete, $typeObjet=1);
// }else if ($formTransformation->isSubmitted()) {
//$id = $produitId;
} else if ($formRubrique->isSubmitted()) {
$objetEtapeCroissance = $etapeCroissanceRepository->find($request->get("etape_croissance"));
$objetProduitEtapeCroissance = $produitEtapeCroissanceRepository->findOneBy(['produit'=>$objetProduit, "etapecroissance"=>$objetEtapeCroissance]);
$uneRubrique->setAbonne($this->getAbonne($em, $sessionData['abonneId'],$abonneRepository));
$uneRubrique->setProduit($objetProduit);
$uneRubrique->setProduitEtapeCroissance ($objetProduitEtapeCroissance);
$em->persist($uneRubrique);
$em->flush();
} else if ($formArticle->isSubmitted()) {
$unArticle->setAbonne($this->getAbonne($em, $sessionData['abonneId'],$abonneRepository));
//$unArticle->setProduit($objetProduit);
$em->persist($unArticle);
$em->flush();
} else{
$titre = $request->get('titre');
$observation=$request->get('observation');
$datedeb=$request->get('datedeb');
$datefin=$request->get('datefin');
$heuredeb=$request->get('heuredeb');
$heurefin=$request->get('heurefin');
$idOperation=$request->get('idOperation');
$tabIdUtil=$request->get('utilId');
$utilId = $sessionData["id"];
$id = $request->get("produitId");
$type = 1;
$this->saveTacheFormulaire($em, $titre, $observation, $datedeb, $datefin, $heuredeb, $heurefin, $objetSaison->getId(),$tabIdUtil,$utilId , $type, $utilisateurRepository, $anneeCampagneRepository, $surfaceAnneeRepository, $planteRepository, $projetRepository, $producteurRepository,null);
}
return $this->redirect($this->generateUrl('admin_produit_detail',["id"=>$id,"siAgricole"=>1]));
}else{
$inventaire = $inventaireRepository->findOneBy(["etatInventaire"=>1, "produit"=> $detailProduit[0]]);
if($inventaire != null ){
$datedebut = $inventaire->getDateInventaire();
$datefin = new \DateTime();
$datedeb = $datedebut->format("d/m/Y");
$datefin = $datefin->format("d/m/Y");
}else{
$datedeb = 0;
$datefin = 0;
}
}
/*
* Préparation des informations que nous allons traiter sur le twig
*/
//$siAgricole =0;
$this->data['siAgricole'] = $siAgricole;
if($detailProduit!= null)
$dataillImage = $imageRepository->findOneBy(["elementCodeGenere"=>$detailProduit[0]->getCodeGenere()]);
else
$dataillImage = null;
$listeEtapeCroissance = $produitRepository->getAllEtapeCroissanceProduit($id);
$tabTache = array();
foreach($listeEtapeCroissance as $uneEtapeCroissance){
$tabTache[$uneEtapeCroissance['id']] = $produitRepository->getAllEtapeCroissanceProduitTache($uneEtapeCroissance['produitEtapeCroissanceId']); //$uneCategorie->getId()
}
$this->data['detailProduit'] = $detailProduit;
$this->data['dataillImage'] = $dataillImage;
// $inventaire = $em->getRepository($this->stockBundle . 'Inventaire')->findOneBy(["etatInventaire"=>1, "produit"=> $detailProduit[0]]);
$listeProduitAnnexe = $commandeRepository->getRechercheCommandeAnnexe(0,$datefin , $datedeb, 0, 0, 0, 0,0,4,20,1,4,$sessionData["abonneId"],0,$detailProduit[0]->getId());
// $listeStatistiqueCommande = $em->getRepository($this->stockBundle . 'Commande')->getStatsRechercheCommandeProducteur($nomcol, $datefin, $datedeb, $ville, $util, $silivre, $numcom, $prod = '0', $nbParPage = 20, $pageActuelle = 1) {
$quantiteLivrer = $commandeRepository->getStatsRechercheLivraisonQuantiteMois(0,0 , 0, 0, 0, 0, 0,20,1,$detailProduit[0]->getId(),4);
$objetLigneCommande = $ligneCommandeRepository->findOneBy(['produit'=>$detailProduit[0], 'etatLigneCommande'=>1]);
$objetDerniereLivraison = $livrerRepository->findOneBy(['lignecommande'=>$objetLigneCommande]);
$listeAnneeCampagne = $anneeCampagneRepository->getAllAnneeCampagneProduit($sessionData["abonneId"],$detailProduit[0]->getId());
if($detailProduit[0]->getProduit() == null)
$produitId = $detailProduit[0]->getId();
else
$produitId = $detailProduit[0]->getProduit()->getId();
$listeSurfaceAnnee = $surfaceAnneeRepository->getIntentionProduit($detailProduit[0]->getId());
$listeVariete = $produitRepository->getAllVarieteCategorieProduit($produitId, 1);//produit frai
$listeTransformation = $produitRepository->getAllVarieteCategorieProduit($detailProduit[0]->getId(), 3); //transformation
$listeUtilisateur = $utilisateurRepository->findBy(['abonne'=>$this->getAbonne($em, $sessionData['abonneId'],$abonneRepository), 'typeProdUser'=>3]); //transformation
$listeRubrique = $rubriqueRepository->findBy(['abonne'=>$this->getAbonne($em, $sessionData['abonneId'],$abonneRepository), 'produit'=>$detailProduit[0]]); //transformation
$listeCategorie = $categorieProduitRepository->findBy(['typeCategorie'=>3, 'abonne'=>$this->getAbonne($em, $sessionData['abonneId'],$abonneRepository)]);
$listeProduit =array();
foreach($listeCategorie as $uneCategorie){
$listeProduit[$uneCategorie->getId()] = $produitRepository->getAllProduitCategorieAjax($uneCategorie->getId(),$sessionData['abonneId']); //$uneCategorie->getId()
}
$tabVariete = array();
foreach($listeVariete as $uneVariete){
$tabVariete[$uneVariete->getId()] = $produitRepository->getAllVarieteCategorieProduit($uneVariete->getId(), 1); //$uneCategorie->getId()
}
$listeTacheSysteme= $activiteRepository->findBy(['siSysteme'=>1]);
$listeToutEtapeCroissance = $etapeCroissanceRepository->findAll();
//$this->data['listeCommandeOneProduit'] = $listeCommandeOneProduit;
$this->data['locale'] = $locale;
$this->data['tabTache'] = $tabTache;
$this->data['actionRepository'] = $actionRepository;
//$
$this->data['siSimplifie'] = $siSimplifie;
$this->data['listeTacheSysteme'] = $listeTacheSysteme;
$this->data['listeEtapeCroissance'] = $listeEtapeCroissance ;
$this->data['listeToutEtapeCroissance'] = $listeToutEtapeCroissance ;
$this->data['inventaire'] = $inventaire;
$this->data['listeProduitAnnexe'] = $listeProduitAnnexe;
$this->data['listeVariete'] = $listeVariete;
$this->data['tabVariete'] = $tabVariete;
$this->data['listeRubrique'] = $listeRubrique;
$this->data['listeTransformation'] = $listeTransformation;
$this->data['listeAnneeCampagne'] = $listeAnneeCampagne;
$this->data['listeSurfaceAnnee'] = $listeSurfaceAnnee;
$this->data['listeUtilisateur'] = $listeUtilisateur;
$this->data['datefin_'] = $datefin;
$this->data['datedeb_'] = $datedeb;
$this->data['listeProduitAnnexe'] = $listeProduitAnnexe;
$this->data['listeProducteur'] = $listeProducteur['data'];
$this->data['listeTache'] = $listeTache ;
$this->data['listeCategorie'] = $listeCategorie ;
$this->data['listeProduit'] = $listeProduit ;
$this->data['listeProduitMelange'] = $listeProduitMelange;
$this->data['quantiteLivrer'] = $quantiteLivrer ;
$this->data['abonneId'] = $sessionData['abonneId'];
// $
$this->data['formParcelleView'] = $formParcelle->createView();
$this->data['formSemenceView'] = $formSemence->createView();
$this->data['formArticleView'] =$formArticle->createView();
$this->data['formSaisonView'] = $formSaison->createView();
$this->data['formProduitView'] = $formProduit->createView();
$this->data['formTransformationView'] = $formTransformation->createView();
$this->data['formRubriqueView'] = $formRubrique->createView();
$this->data['objetLigneCommande'] = $objetLigneCommande;
$this->data['objetDerniereLivraison'] = $objetDerniereLivraison;
$this->data['listeCommandeOneProduit']=array();
if($siAgricole == 0)
return $this->render($this->stockBundleSlash($sessionData['typePresentation']). '/Produit/detailProduit.html.twig', $this->data, $this->response);
else
return $this->render($this->stockBundleSlash($sessionData['typePresentation']). '/Produit/detailProduitAgricole.html.twig', $this->data, $this->response);
}
public function traiteCarateristiqueProduitAction(Request $request,LoginManager $loginManager,ParamRepository $paramRepositor,ConnexionRepository $connexionRepository,ActionRepository $actionRepository,
ModuleRepository $moduleRepository,ControleurRepository $controleurRepository,ProfilRepository $profilRepository,
ProduitRepository $produitRepository,AbonneRepository $abonneRepository, CategorieProduitRepository $categorieProduitRepository
, ProduitAbonneRepository $produitAbonneRepository)
{
$em = $this->getDoctrine()->getManager();
$sessionData = $this->infosConnecte($request, $loginManager, $paramRepositor,$connexionRepository, $actionRepository);;
//$this->initialiserProduitUser($em,$this->getUser()->getId());
//var_dump(1);exit;
if ($request->isMethod('POST')) {
$idProduitSelection=$request->get('produit-select');
$unObjetProduit = $produitRepository->find($idProduitSelection);
$tabIdProduit=$request->get('produit_id');
$actionProduit=$request->get('actionProduit');
$tabIdValue=$request->get('value');
// var_dump($tabIdValue);exit;
$i = 0;
foreach($tabIdProduit as $idProduit){
if($idProduit !=""){
$unProduit = $produitRepository ->find($idProduit);
$unProduit->setSiHeritage(1);
$objetAbonneProduit = $produitAbonneRepository->findOneBy(['produit'=>$unObjetProduit, 'abonne'=>$this->getAbonne($em, $sessionData['abonneId'],$abonneRepository)]);
$value = $tabIdValue[$i];
$uneCarateristiqueProduit = new CarateristiqueProduit();
$uneCarateristiqueProduit->setProduit($unObjetProduit);
$uneCarateristiqueProduit->setProduitabonne($objetAbonneProduit);
$uneCarateristiqueProduit->setProduitparent($unProduit);
//$uneCarateristiqueProduit
$uneCarateristiqueProduit->setAbonne($this->getAbonne($em, $sessionData['abonneId'],$abonneRepository)) ;
$uneCarateristiqueProduit->setValue($value);
$uneCarateristiqueProduit->setLibelle($value);
$em->persist($unProduit);
$em->persist($uneCarateristiqueProduit);
++$i;
$objetProduitConditionne = new Produit();
$objetProduitConditionne->setCodeProduit("PR".rand());
$objetProduitConditionne->setNomProduit($unObjetProduit->getNomProduit()." ".$unProduit->getNomProduit());
$objetProduitConditionne->setDescriptionProduit($unObjetProduit->getNomProduit()." ".$unProduit->getNomProduit());
$objetProduitConditionne->setCategorie($categorieProduitRepository->find(1));
$em->persist($objetProduitConditionne);
$em->flush();
if($actionProduit !=1)
$this->saveProduitConditionne($em, $objetProduitConditionne, $uneCarateristiqueProduit, $categorieProduitRepository->findOneBy(['typeCategorie'=>4, 'abonne'=>$this->getAbonne($em, $sessionData['abonneId'],$abonneRepository)]), $this->getAbonne($em, $sessionData['abonneId'],$abonneRepository), $siSemence=0);
}
}
return $this->redirectToRoute('admin_produits');
//$this->flashMessage->add('producteur.ajout.success', $this->translate->trans("site.ajouter.succes"));
}
}
public function traiteCarateristiqueProduitCertificationAction(Request $request,LoginManager $loginManager,ParamRepository $paramRepositor,ConnexionRepository $connexionRepository,ActionRepository $actionRepository,
ModuleRepository $moduleRepository,ControleurRepository $controleurRepository,ProfilRepository $profilRepository,
ProduitRepository $produitRepository,AbonneRepository $abonneRepository, CertificationRepository $certificationRepository)
{ $em = $this->getDoctrine()->getManager();
$sessionData = $this->infosConnecte($request, $loginManager, $paramRepositor,$connexionRepository, $actionRepository);;
//$this->initialiserProduitUser($em,$this->getUser()->getId());
//var_dump(1);exit;
if ($request->isMethod('POST')) {
$certificationId =$request->get('certificationId');
$objetCertification= $certificationRepository->find($certificationId);
$tabIdProduit=$request->get('produit_id');
$tabIdValue=$request->get('value');
// var_dump($tabIdValue);exit;
$i = 0;
foreach($tabIdProduit as $produitId){
if($produitId !=""){
$unProduit = $produitRepository->find($produitId);
$value = $tabIdValue[$i];
$uneCertificationProduit = new CertificationProduit();
$uneCertificationProduit->setProduit($unProduit);
$uneCertificationProduit->setCertification($objetCertification);
$uneCertificationProduit->setNom($value);
$em->persist($uneCertificationProduit);
++$i;
}
}
$em->flush();
return $this->redirectToRoute('admin_certifications');
//$this->flashMessage->add('producteur.ajout.success', $this->translate->trans("site.ajouter.succes"));
}
}
/**
* Methode s'occupant de lister les Producteurs.
*
* @author armand.tevi@gmail.com
* @copyright ADMIN 2015
*
* @version 1
*
* @return twig d'ajout d'un abonne listeProducteur.html.twig
*/
public function uploadFileProduitAction(Request $request,LoginManager $loginManager,ParamRepository $paramRepositor,ConnexionRepository $connexionRepository,ActionRepository $actionRepository,
ModuleRepository $moduleRepository,ControleurRepository $controleurRepository,ProfilRepository $profilRepository,
ProduitRepository $produitRepository,AbonneRepository $abonneRepository, UtilisateurRepository $utilisateurRepository) {
$em = $this->getDoctrine()->getManager();
$sessionData = $this->infosConnecte($request, $loginManager, $paramRepositor,$connexionRepository, $actionRepository);
$objetUtilisateur = $utilisateurRepository->find($sessionData['id']);
$uploadStatus = 1;
// Upload file
$uploadedFile = '';
$idProd = $request->get('idProd');
//var_dump($idProd );
$uploadDir = __DIR__ . '/../../../public/upload/produit/';
$fileName = basename( $_FILES['file']['name']);
if(!empty($_FILES["file"]["name"])){
// File path config
$fileName = basename($_FILES["file"]["name"]);
$targetFilePath = $uploadDir . $fileName;
$fileType = pathinfo($targetFilePath, PATHINFO_EXTENSION);
// Allow certain file formats
$allowTypes = array('jpg', 'png', 'jpeg');
if(in_array($fileType, $allowTypes)){
// Upload file to the server
if(move_uploaded_file($_FILES["file"]["tmp_name"], $targetFilePath)){
$uploadedFile = $fileName;
$objetProduit = $produitRepository->find($idProd);
$objetImage = $this->imageRepository->findOneBy(["produit"=>$objetProduit]);
if($objetImage == null){
$objetImage = new Image();
}
$objetImage->setUrlImage("produit/".basename( $_FILES['file']['name']));
$objetImage->setProduit($objetProduit);
$objetImage->setAbonne($objetUtilisateur->getAbonne());
$objetImage->setCodeGenere("IMGV_".rand());
$objetImage->setElementCodeGenere($objetProduit->getCodeGenere());
$objetImage->setTitreImage("produit");
$em->persist($objetImage);
$em->flush($objetImage);
$response['message'] = 'fichier chargé avec succes';
}else{
$uploadStatus = 0;
$response['message'] = 'Sorry, there was an error uploading your file.';
}
}else{
$uploadStatus = 0;
$response['message'] = 'Sorry, only PDF, DOC, JPG, JPEG, & PNG files are allowed to upload.';
}
}
// Return response
return new Response(json_encode($response));
//return $this->render($this->prodBundleSlash($sessionData['typePresentation']). 'Producteur/listeSemenceProducteurFournisseur.html.twig', $this->data, $this->response);
}
public function deleteCarateristiqueProduitAction(Request $request,LoginManager $loginManager,ParamRepository $paramRepositor,ConnexionRepository $connexionRepository,ActionRepository $actionRepository,
ModuleRepository $moduleRepository,ControleurRepository $controleurRepository,ProfilRepository $profilRepository,
ProduitRepository $produitRepository,AbonneRepository $abonneRepository) {
/*
* Nom de l'action en cours
*/
$nomAction = __FUNCTION__;
/*
* Description de l'action de l'action en cours
*/
$descAction = 'mise à jour une nouvelle ligne commande!';
/*
* Préparation du message de log
*/
$this->logMessage .= ' [ ' . $nomAction . ' ] ';
/*
* Service de gestion des droits
*/
/*
* Informations de session
*/
$sessionData = $this->infosConnecte($request, $loginManager, $paramRepositor,$connexionRepository, $actionRepository);
/*
* Locale en cours
*/
$locale = $loginManager->getLocale();
$this->data['locale'] = $locale;
$this->data['actionRepository'] = $actionRepository;
/*
* On vérifie si l'utilisateur est connecté
*/
$status = $loginManager->isConnecte($nomAction,$paramRepositor,$connexionRepository, $actionRepository);
$em = $this->getDoctrine()->getManager();
$locale = $loginManager->getLocale();
$this->data['locale'] = $locale;
$this->request = $request;
$this->data['actionRepository'] = $actionRepository;
$id = $request->request->get('ids');
// var_dump($id);exit;
// $em->getConnection()->beginTransaction();
try {
$add["rep"]="0k";
$objetCarateristique = $CarateristiqueProduitRepository->find($id );
$objetCarateristique->setEtatCaratersitiqueProduit(3);
// $em->remove($objetCarateristique );
$em->persist($objetCarateristique);
$em->flush();
//$em->getConnection()->commit();
} catch (Exception $exc) {
//$em->getConnection()->rollBack();
throw $exc;
}
return new Response(json_encode(array('add' => $add)));
}
public function traiteProduitEtapeCroissanceAction(Request $request,LoginManager $loginManager,ParamRepository $paramRepositor,ConnexionRepository $connexionRepository,ActionRepository $actionRepository,
ModuleRepository $moduleRepository,ControleurRepository $controleurRepository,ProfilRepository $profilRepository,
ProduitRepository $produitRepository,AbonneRepository $abonneRepository, EtapeCroissanceRepository $etapeCroissanceRepository, ProduitEtapeCroissanceRepository $produitEtapeCroissanceRepository,
TacheProduitEtapeCroissanceRepository $tacheProduitEtapeCroissanceRepository, ActiviteRepository $activiteRepository, UtilisateurRepository $utilisateurRepository)
{
$em = $this->getDoctrine()->getManager();
//$this->initialiserProduitUser($em,$this->getUser()->getId());
$sessionData = $this->infosConnecte($request, $loginManager, $paramRepositor,$connexionRepository, $actionRepository);
$objetUtilisateur = $utilisateurRepository->find($sessionData['id']);
if ($request->isMethod('POST')) {
$tabIdEtapeCroissance = $request->get('tabEtapeCroissance');
//var_dump($tabIdEtapeCroissance );exit;
$produitId=$request->get('produitId');
$activeRadio=$request->get('activeRadio');
$tabDesDonneeEtapeCroissance = explode('|', $tabIdEtapeCroissance);
foreach ($tabDesDonneeEtapeCroissance as $uneEtapeCroissance) {
if($uneEtapeCroissance !=""){
$objetEtapeCroissance= $etapeCroissanceRepository->find((int)$uneEtapeCroissance);
$objetProduit = $produitRepository->find((int)$produitId);
$objetProduitetapeCroissance = $produitEtapeCroissanceRepository->findOneBy(['produit'=>$objetProduit, 'etapecroissance'=>$objetEtapeCroissance]);
if($objetProduitetapeCroissance ==null)
$objetProduitetapeCroissance = new ProduitEtapeCroissance();
if($objetEtapeCroissance->getId() == $activeRadio){
$objetProduitetapeCroissance->setSiDebut(1);
}
$objetProduitetapeCroissance->setProduit($objetProduit);
$objetProduitetapeCroissance->setPeriode($request->get('temps_'.$objetEtapeCroissance->getId()));
$objetProduitetapeCroissance->setEtapeCroissance($objetEtapeCroissance);
$objetProduitetapeCroissance->setEtatProduitEtapeCroissance(1);
$em->persist($objetProduitetapeCroissance);
$em->flush();
$objetActivite = $activiteRepository->findOneBy(['siLastEtapeActivite'=>1]);
$objetTacheProduitEtapeCroissance = $tacheProduitEtapeCroissanceRepository->findOneBy(['produitetapecroissance'=>$objetProduitetapeCroissance, 'siLastEtapeActivite'=>1]);
if($objetTacheProduitEtapeCroissance != null){
$objetTacheProduitetapeCroissance = new TacheProduitEtapeCroissance();
$objetTacheProduitetapeCroissance->setActivite($objetActivite);
$objetTacheProduitetapeCroissance->setAbonne($objetUtilisateur->getAbonne());
$objetTacheProduitetapeCroissance->setProduitetapecroissance($objetProduitetapeCroissance);
$objetTacheProduitetapeCroissance->setSiLastEtapeActivite($objetActivite->getSiLastEtapeActivite());
$objetTacheProduitetapeCroissance->setSiLastEtapeActivite(1);
$em->persist($objetTacheProduitetapeCroissance);
$em->flush();
}
$listeProduit = $produitRepository->findBy(['produit'=>$objetProduit]);
foreach ($listeProduit as $uneVariete) {
$objetVarieteEtapeCroissance = $produitEtapeCroissanceRepository->findOneBy(['produit'=>$uneVariete, 'etapecroissance'=>$objetEtapeCroissance]);
if($objetVarieteEtapeCroissance == null){
$produitEtapeCroissanceRepository->insertEtapeCroissanceVariete($em, $objetProduit->getId(), $uneVariete->getId(), $objetEtapeCroissance->getId());
//var_dump($objetProduit->getId(), $uneVariete->getId(), $objetEtapeCroissance->getId());exit;
$objetTacheVarieteEtapeCroissance = $tacheProduitEtapeCroissanceRepository->findOneBy(['activite'=>$objetActivite , 'produitetapecroissance'=>$objetVarieteEtapeCroissance ]);
if($objetTacheVarieteEtapeCroissance != null)
$tacheProduitEtapeCroissanceRepository->insertTacheEtapeCroissanceVariete($em, $objetTacheVarieteEtapeCroissance->getId(), $objetActivite->getId());
}
}
}
}
return $this->redirectToRoute('admin_produit_detail',array("id"=>$produitId, 'siAgricole'=>1));
//$this->flashMessage->add('producteur.ajout.success', $this->translate->trans("site.ajouter.succes"));
}
}
public function traiteEtapeCroissanceTacheAction(Request $request,LoginManager $loginManager,ParamRepository $paramRepositor,ConnexionRepository $connexionRepository,ActionRepository $actionRepository,
ModuleRepository $moduleRepository,ControleurRepository $controleurRepository,ProfilRepository $profilRepository,
ProduitRepository $produitRepository,UtilisateurRepository $utilisateurRepository,AbonneRepository $abonneRepository,EtapeCroissanceRepository $etapeCroissanceRepository,ProduitEtapeCroissanceRepository $produitEtapeCroissanceRepository, ActiviteRepository $activiteRepository,
TacheProduitEtapeCroissanceRepository $tacheProduitEtapeCroissanceRepository)
{
$em = $this->getDoctrine()->getManager();
//$this->initialiserProduitUser($em,$this->getUser()->getId());
$sessionData = $this->infosConnecte($request, $loginManager, $paramRepositor,$connexionRepository, $actionRepository);
$objetUtilisateur = $utilisateurRepository->find($sessionData['id']);
//var_dump(1);exit;
if ($request->isMethod('POST')) {
$tabIdTache = $request->get('tabTacheSysteme');
$etapeCroissanceId=$request->get('etapeCroissanceId');
$produitId=$request->get('produitId');
$tabDesDonneeTache = explode('|', $tabIdTache);
// var_dump($tabIdTache, $produitId,$etapeCroissanceId );exit;
foreach ($tabDesDonneeTache as $uneTache) {
if($uneTache !=""){
$objetActivite = $activiteRepository->find((int)$uneTache);
$objetEtapeCroissance = $etapeCroissanceRepository->find((int)$etapeCroissanceId);
$objetProduit = $produitRepository->find((int)$produitId);
$objetProduitEtapeCroissance = $produitEtapeCroissanceRepository->findOneBy(['produit'=>$objetProduit , 'etapecroissance'=>$objetEtapeCroissance]);
$objetTacheProduitetapeCroissance = $tacheProduitEtapeCroissanceRepository->findOneBy(['activite'=>$objetActivite , 'produitetapecroissance'=>$objetProduitEtapeCroissance]);
//var_dump($objetProduitEtapeCroissance->getId() );exit;
if($objetTacheProduitetapeCroissance ==null)
$objetTacheProduitetapeCroissance = new TacheProduitEtapeCroissance();
$objetTacheProduitetapeCroissance->setActivite($objetActivite);
$objetTacheProduitetapeCroissance->setAbonne($objetUtilisateur->getAbonne());
$objetTacheProduitetapeCroissance->setProduitetapecroissance($objetProduitEtapeCroissance);
$objetTacheProduitetapeCroissance->setSiLastEtapeActivite($objetActivite->getSiLastEtapeActivite());
$em->persist($objetTacheProduitetapeCroissance);
$em->flush();
$listeProduit = $produitRepository->findBy(['produit'=>$objetProduit, 'siAgricole'=>1]);
foreach ($listeProduit as $uneVariete) {
if($objetEtapeCroissance != null) {
$objetVarieteEtapeCroissance = $produitEtapeCroissanceRepository->findOneBy(['produit'=>$uneVariete , 'etapecroissance'=>$objetEtapeCroissance]);
$objetTacheVarieteEtapeCroissance = $tacheProduitEtapeCroissanceRepository->findOneBy(['activite'=>$objetActivite , 'produitetapecroissance'=>$objetVarieteEtapeCroissance ]);
if($objetTacheVarieteEtapeCroissance != null)
$tacheProduitEtapeCroissanceRepository->insertTacheEtapeCroissanceVariete($em, $objetTacheVarieteEtapeCroissance->getId(), $objetActivite->getId());
}
}
}
}
return $this->redirectToRoute('admin_produit_detail',array("id"=>$produitId, 'siAgricole'=>1));
//$this->flashMessage->add('producteur.ajout.success', $this->translate->trans("site.ajouter.succes"));
}
}
public function traiteOrdreTacheProduitEtapeCroissanceAction(Request $request,LoginManager $loginManager,ParamRepository $paramRepositor,ConnexionRepository $connexionRepository,ActionRepository $actionRepository,
ModuleRepository $moduleRepository,ControleurRepository $controleurRepository,ProfilRepository $profilRepository,
ProduitRepository $produitRepository,AbonneRepository $abonneRepository,TacheProduitEtapeCroissanceRepository $tacheProduitEtapeCroissanceRepository,ProduitEtapeCroissanceRepository $produitEtapeCroissanceRepository)
{
$em = $this->getDoctrine()->getManager();
/*
* Informations de session
*/
$sessionData = $this->infosConnecte($request, $loginManager, $paramRepositor,$connexionRepository, $actionRepository);
//$this->initialiserProduitUser($em,$this->getUser()->getId());
//var_dump(1);exit;
if ($request->isMethod('POST')) {
$donneeReponse = "";
if(!array_key_exists(0, $_POST )){
foreach ($_POST as $tabActivite) {
$i = 0;
foreach ($tabActivite as $activiteId) {
//$donneeReponse = $donneeReponse."_".$reponseId."-".$i;
$objetTacheProduitetapeCroissance = $tacheProduitEtapeCroissanceRepository->find($activiteId);
$objetTacheProduitetapeCroissance->setOrdre($i);
$em->persist($objetTacheProduitetapeCroissance);
++$i;
}
$em->flush();
}
}else{
foreach ($_POST as $tabActivite) {
$i = 0;
foreach ($tabActivite as $activiteId) {
//$donneeReponse = $donneeReponse."_".$reponseId."-".$i;
//var_dump($activiteId);exit;
$objetPoduitetapeCroissance = $produitEtapeCroissanceRepository->find($activiteId);
$objetPoduitetapeCroissance->setOrdre($i);
$em->persist($objetPoduitetapeCroissance);
++$i;
}
$em->flush();
}
}
// $donneeReponse = $donneeReponse. "#";
// $this->addHistoriqueAction($em, 'ReponseInspectionOrdre', 1, "", $sessionData['id'], NULL, 1, $donneeReponse);
$rep['msg'] = '';
$rep['etat'] = true;
return new Response(json_encode($rep));
}
}
public function chartStockProduitAction(Request $request,LoginManager $loginManager,ParamRepository $paramRepositor,ConnexionRepository $connexionRepository,ActionRepository $actionRepository,
ModuleRepository $moduleRepository,ControleurRepository $controleurRepository,ProfilRepository $profilRepository,
ProduitRepository $produitRepository,AbonneRepository $abonneRepository,TacheProduitEtapeCroissanceRepository $tacheProduitEtapeCroissanceRepository)
{
$em = $this->getDoctrine()->getManager();
/*
* Informations de session
*/
$sessionData = $this->infosConnecte($request, $loginManager, $paramRepositor,$connexionRepository, $actionRepository);
$objetAbonne = $this->getAbonne($em, $sessionData['abonneId'],$abonneRepository);
$listeVariete = $produitRepository->getAllCurrentVariete($objetAbonne->getId());
$listeAchatMois = $this->getAchatMoisAction($em,$objetAbonne->getId());
$tabDonnee = array();
$tabDonneeStock = array();
$tabDonneeMois= array();
$tabType = array();
$tabColeur=array();
if ($request->isMethod('POST')) {
$donneeReponse = "";
$j=0;
foreach ($listeVariete as $uneVariete) {
$i = 0;
$tabDonnee[$j]['name'] = $uneVariete->getNomProduit();
foreach ($listeAchatMois as $unMoisDonne) {
$infoStock = $this->getAchatVarieteAction($em,$objetAbonne->getId(),$uneVariete->getId());
//var_dump($infoStock);exit;
$tabDonneeMois[$i]= $this->traiteInfoMois($unMoisDonne['mois']);
$tabDonneeStock[$i] = $infoStock[0]['quantiteTotal'];
$i++;
}
$tabDonnee[$j]['data']=$tabDonneeStock;
$tabType[$j]="solid";
$tabColeur[$j]="#ffffff";
$j++;
}
// $donneeReponse = $donneeReponse. "#";
// $this->addHistoriqueAction($em, 'ReponseInspectionOrdre', 1, "", $sessionData['id'], NULL, 1, $donneeReponse);
$rep['msg'] = '';
$rep['infoMois'] = $tabDonneeMois;
$rep['infoData'] = $tabDonnee;
$rep['tabType'] = $tabType;
$rep['infoMax'] = 2;
$rep['tabColeur'] = $tabColeur;
return new Response(json_encode($rep));
}
}
public function chartInspectionAction(Request $request,LoginManager $loginManager,ParamRepository $paramRepositor,ConnexionRepository $connexionRepository,ActionRepository $actionRepository,
ModuleRepository $moduleRepository,ControleurRepository $controleurRepository,ProfilRepository $profilRepository,
ProduitRepository $produitRepository,AbonneRepository $abonneRepository,InspectionRepository $inspectionRepository,TacheProduitEtapeCroissanceRepository $tacheProduitEtapeCroissanceRepository)
{
$em = $this->getDoctrine()->getManager();
/*
* Informations de session
*/
$sessionData = $this->infosConnecte($request, $loginManager, $paramRepositor,$connexionRepository, $actionRepository);
$objetAbonne = $this->getAbonne($em, $sessionData['abonneId'],$abonneRepository);
$tabDonnee = [1,2,3,4,5,6,7,8,9,10,11,12];
$tabDonneeInspection = array();
$tabDonneeMois= array();
$infoInspection = array();
if ($request->isMethod('POST')) {
$donneeReponse = "";
$i=0;
$objetInspection =$inspectionRepository->findOneBy(['abonne'=>$objetAbonne]);
//var_dump(1);exit;
foreach ($tabDonnee as $uneDonneeMois ) {
if($objetInspection !=null)
$infoInspection =$this->getStatInspectionAction($em,$objetAbonne->getId(), $objetInspection->getId(), $uneDonneeMois) ;
$tabDonneeMois[$i]= $this->traiteInfoMois($uneDonneeMois);
if(count($infoInspection)!=0 )
$tabDonneeInspection[$i] = $infoInspection[0]['total'];
else
$tabDonneeInspection[$i] = 0;
$i++;
}
// $donneeReponse = $donneeReponse. "#";
// $this->addHistoriqueAction($em, 'ReponseInspectionOrdre', 1, "", $sessionData['id'], NULL, 1, $donneeReponse);
$rep['msg'] = '';
$rep['tabDonneeMois'] = $tabDonneeMois;
$rep['tabDonneeInspection'] = $tabDonneeInspection;
return new Response(json_encode($rep));
}
}
public function listeProduitEcommerceAction(Request $request, AbonneRepository $abonneRepository,LoginManager $loginManager,ParamRepository $paramRepositor,ConnexionRepository $connexionRepository,ActionRepository $actionRepository,
ModuleRepository $moduleRepository,ControleurRepository $controleurRepository,ProfilRepository $profilRepository,
CategorieProduitRepository $categorieRepository ,ProduitRepository $produitRepository,
){
$sessionData = $this->infosConnecte($request, $loginManager, $paramRepositor,$connexionRepository, $actionRepository);
$em = $this->getDoctrine()->getManager(); //recuperation de l"entité manager
//return $this->redirect($this->generateUrl('app_admin_user_login'));
$objetInitial=$this->getAbonne($em,$sessionData['abonneId'], $abonneRepository);
$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);
$this->data['listeProduit'] = $listeProduit;
$this->data['listeCategorie'] = $listeCategorie;
$this->data['objetAbonne'] = $objetInitial;
$this->data['actionRepository'] = $actionRepository;
return $this->render($this->stockBundleSlash($sessionData['typePresentation']). '/Produit/listeProduitEcommerce.html.twig', $this->data, $this->response);
}
/**
* Methode s'occupant de la gestion des états du critère
* Activation, suppression, désactivation de pays.
*
* @author armand.tevi@gmail.com
* @copyright ADMIN 2015
*
* @version 1
*
* @return Response
*/
public function supprimerProduitEtapeCroissanceAction(Request $request,LoginManager $loginManager,ParamRepository $paramRepositor,ConnexionRepository $connexionRepository,ActionRepository $actionRepository,
ModuleRepository $moduleRepository,ControleurRepository $controleurRepository,ProfilRepository $profilRepository,
ProduitRepository $produitRepository,AbonneRepository $abonneRepository, ProduitEtapeCroissanceRepository $produitEtapeCroissanceRepository) {
$rep = array('etat' => FALSE, 'msg' => 'Erreur survenue lors du traitement', 'logout' => FALSE);
/*
* Nom de l'action en cours
*/
$nomAction = __FUNCTION__;
/*
* Description de l'action de l'action en cours
*/
$descAction = "Supprimer une etape de croissance d'un produit ";
/*
* Préparation du message de log
*/
$this->logMessage .= ' [ ' . $nomAction . ' ] ';
/*
* Service de gestion des droits
*/
/*
* Informations de session
*/
$sessionData = $this->infosConnecte($request, $loginManager, $paramRepositor,$connexionRepository, $actionRepository);;
/*
* Locale en cours
*/
$locale = $loginManager->getLocale();
$this->data['locale'] = $locale;
$this->data['actionRepository'] = $actionRepository;
$em = $this->getDoctrine()->getManager();
/*
* On vérifie si l'utilisateur est connecté
*/
$status = $loginManager->isConnecte($nomAction,$paramRepositor,$connexionRepository, $actionRepository);
if ($status['isConnecte']) {
/*
* Au cas ou l'utilisateur est connecté on vérifie s'il nest pas innactif. S'il est innactif
* on garde en mémoire flash la route actuelle pour effectuer une redirection lors de la prochaine connexion
*/
if ($status['isInnactif']) {
$rep['msg'] = "Vous avez accusé un long moment d'inactivité. Veuillez-vous connecter de nouveau";
$loginManager->logout(LoginManager::SESSION_DATA_NAME);
return new Response(json_encode($rep));
}
/*
* Seuls les utilisateurs admins ont le droit d'acceder à cette action
*/
if (!$status['isUser']) {
return new Response(json_encode($rep));
}
} else {
$rep['msg'] = "Vous êtes déconnecté. Veuillez-vous connecter de nouveau";
return new Response(json_encode($rep));
}
$em = $this->getDoctrine()->getManager();
/*
* Gestion des droits
*/
if (!$loginManager->getOrSetActions(Module::MOD_GEST_PROD, Module::MOD_GEST_PROD_DESC, $this->getNomClassRun(__CLASS__), $this->description, $nomAction, $descAction, $sessionData['idProfil'], $moduleRepository, $controleurRepository, $actionRepository, $profilRepository,
$moduleRepository, $controleurRepository, $actionRepository, $profilRepository)) {
$this->logMessage .= ' [ TENTATIVE DE VIOLATION DE DROITS ] ';
$rep['msg'] = "Vous n'avez pas le droit de déconnecter un utilisateur";
return new Response(json_encode($rep));
}
/*
* 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')) {
/*
* on recupere les ids des Produits qui ont été choisis sur la vue pour subir une modification d'états
* cette variable est envoyé depuis la vue a travers la requete post ajax
*/
$tempIds = $request->get('sId');
/*
* verification si l'etat envoyé est un état INACTIF , ACTIF ou SUPPRIME
* déclaration d'une variable pour prendre l'état comme constante de classe TypeEtat
*/
/*
* Recuperation du Produit dont l'id est l'id courant de la boucle
*/
$objetProduitEtapeCroissanceRepository = $produitEtapeCroissanceRepository->find((int) $tempIds );
$objetProduitEtapeCroissanceRepository->setEtatProduitEtapeCroissance(3);
$em->persist($objetProduitEtapeCroissanceRepository);
/*
* Mise à jour des informations dans la base de donnée
*/
// $objetProduitEtapeCroissanceRepository->set
$em->flush();
$oneOk = true;
if ($oneOk) {
// $this->flashMessage->add('produit.gerer.success', $this->translate->trans("site.ajouter.succes"));
$rep['msg'] = '';
$rep['etat'] = true;
}
return new Response(json_encode($rep));
}
return new Response(json_encode($rep));
}
/**
* Methode s'occupant de la gestion des états du critère
* Activation, suppression, désactivation de pays.
*
* @author armand.tevi@gmail.com
* @copyright ADMIN 2015
*
* @version 1
*
* @return Response
*/
public function supprimerTacheProduitEtapeCroissanceAction(Request $request,LoginManager $loginManager,ParamRepository $paramRepositor,ConnexionRepository $connexionRepository,ActionRepository $actionRepository,
ModuleRepository $moduleRepository,ControleurRepository $controleurRepository,ProfilRepository $profilRepository,
ProduitRepository $produitRepository,AbonneRepository $abonneRepository, TacheProduitEtapeCroissanceRepository $tacheProduitEtapeCroissanceRepository) {
$rep = array('etat' => FALSE, 'msg' => 'Erreur survenue lors du traitement', 'logout' => FALSE);
/*
* Nom de l'action en cours
*/
$nomAction = __FUNCTION__;
/*
* Description de l'action de l'action en cours
*/
$descAction = "Supprimer une tache d'une etape de croissance d'un produit ";
/*
* Préparation du message de log
*/
$this->logMessage .= ' [ ' . $nomAction . ' ] ';
/*
* Service de gestion des droits
*/
/*
* Informations de session
*/
$sessionData = $this->infosConnecte($request, $loginManager, $paramRepositor,$connexionRepository, $actionRepository);;
/*
* Locale en cours
*/
$locale = $loginManager->getLocale();
$this->data['locale'] = $locale;
$this->data['actionRepository'] = $actionRepository;
$em = $this->getDoctrine()->getManager();
/*
* On vérifie si l'utilisateur est connecté
*/
$status = $loginManager->isConnecte($nomAction,$paramRepositor,$connexionRepository, $actionRepository);
if ($status['isConnecte']) {
/*
* Au cas ou l'utilisateur est connecté on vérifie s'il nest pas innactif. S'il est innactif
* on garde en mémoire flash la route actuelle pour effectuer une redirection lors de la prochaine connexion
*/
if ($status['isInnactif']) {
$rep['msg'] = "Vous avez accusé un long moment d'inactivité. Veuillez-vous connecter de nouveau";
$loginManager->logout(LoginManager::SESSION_DATA_NAME);
return new Response(json_encode($rep));
}
/*
* Seuls les utilisateurs admins ont le droit d'acceder à cette action
*/
if (!$status['isUser']) {
return new Response(json_encode($rep));
}
} else {
$rep['msg'] = "Vous êtes déconnecté. Veuillez-vous connecter de nouveau";
return new Response(json_encode($rep));
}
$em = $this->getDoctrine()->getManager();
/*
* Gestion des droits
*/
if (!$loginManager->getOrSetActions(Module::MOD_GEST_PROD, Module::MOD_GEST_PROD_DESC, $this->getNomClassRun(__CLASS__), $this->description, $nomAction, $descAction, $sessionData['idProfil'], $moduleRepository, $controleurRepository, $actionRepository, $profilRepository,
$moduleRepository, $controleurRepository, $actionRepository, $profilRepository)) {
$this->logMessage .= ' [ TENTATIVE DE VIOLATION DE DROITS ] ';
$rep['msg'] = "Vous n'avez pas le droit de déconnecter un utilisateur";
return new Response(json_encode($rep));
}
/*
* 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')) {
/*
* on recupere les ids des Produits qui ont été choisis sur la vue pour subir une modification d'états
* cette variable est envoyé depuis la vue a travers la requete post ajax
*/
$tempIds = $request->get('sId');
/*
* verification si l'etat envoyé est un état INACTIF , ACTIF ou SUPPRIME
* déclaration d'une variable pour prendre l'état comme constante de classe TypeEtat
*/
/*
* Recuperation du Produit dont l'id est l'id courant de la boucle
*/
$objetTacheProduitEtapeCroissanceRepository = $tacheProduitEtapeCroissanceRepository->find((int) $tempIds );
$objetTacheProduitEtapeCroissanceRepository->setEtatTacheProduitEtapeCroissance(3);
$em->persist($objetTacheProduitEtapeCroissanceRepository);
/*
* Mise à jour des informations dans la base de donnée
*/
// $objetProduitEtapeCroissanceRepository->set
$em->flush();
$oneOk = true;
if ($oneOk) {
// $this->flashMessage->add('produit.gerer.success', $this->translate->trans("site.ajouter.succes"));
$rep['msg'] = '';
$rep['etat'] = true;
}
return new Response(json_encode($rep));
}
return new Response(json_encode($rep));
}
public function setInfoDetailProduitEtapeCroissanceAction(Request $request,LoginManager $loginManager,ParamRepository $paramRepositor,ConnexionRepository $connexionRepository,ActionRepository $actionRepository,
ModuleRepository $moduleRepository,ControleurRepository $controleurRepository,ProfilRepository $profilRepository,
ProduitRepository $produitRepository,AbonneRepository $abonneRepository,TacheProduitEtapeCroissanceRepository $tacheProduitEtapeCroissanceRepository,ProduitEtapeCroissanceRepository $produitEtapeCroissanceRepository)
{
$em = $this->getDoctrine()->getManager();
/*
* Informations de session
*/
$sessionData = $this->infosConnecte($request, $loginManager, $paramRepositor,$connexionRepository, $actionRepository);
//$this->initialiserProduitUser($em,$this->getUser()->getId());
//var_dump(1);exit;
$poduitEtapeCroissanceId = $request->get('sId');
$typeInfo = $request->get('typeInfo');
$valeur = $request->get('valeur');
if ($request->isMethod('POST')) {
//var_dump($poduitEtapeCroissanceId, $typeInfo, $valeur );exit;
$objetPoduitetapeCroissance = $produitEtapeCroissanceRepository->find($poduitEtapeCroissanceId);
if( $typeInfo == 1)
$objetPoduitetapeCroissance->setSiDebut($valeur);
else
$objetPoduitetapeCroissance->setPeriode($valeur);
$em->persist($objetPoduitetapeCroissance);
$em->flush();
}
// $donneeReponse = $donneeReponse. "#";
// $this->addHistoriqueAction($em, 'ReponseInspectionOrdre', 1, "", $sessionData['id'], NULL, 1, $donneeReponse);
$rep['msg'] = '';
$rep['etat'] = true;
return new Response(json_encode($rep));
}
public function getInfoProduitCarateristiqueAction(Request $request,LoginManager $loginManager,ParamRepository $paramRepositor,ConnexionRepository $connexionRepository,ActionRepository $actionRepository,
ModuleRepository $moduleRepository,ControleurRepository $controleurRepository,ProfilRepository $profilRepository,
ProduitRepository $produitRepository,AbonneRepository $abonneRepository,TacheProduitEtapeCroissanceRepository $tacheProduitEtapeCroissanceRepository,ProduitEtapeCroissanceRepository $produitEtapeCroissanceRepository)
{
$em = $this->getDoctrine()->getManager();
/*
* Informations de session
*/
$sessionData = $this->infosConnecte($request, $loginManager, $paramRepositor,$connexionRepository, $actionRepository);
//$this->initialiserProduitUser($em,$this->getUser()->getId());
//var_dump(1);exit;
$produitId = $request->get('produitId');
$listeProduit = $produitRepository->getToutCarateristqueProduit($produitId, $sessionData['abonneId']);
// $donneeReponse = $donneeReponse. "#";
// $this->addHistoriqueAction($em, 'ReponseInspectionOrdre', 1, "", $sessionData['id'], NULL, 1, $donneeReponse);
$rep['listeProduit'] = $listeProduit;
$rep['etat'] = true;
return new Response(json_encode($rep));
}
}