<?php
namespace App\ControllerModel\user;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Contracts\Translation\TranslatorInterface;
use \Symfony\Component\HttpFoundation\Request;
use \Doctrine\ORM\EntityManager;
use App\Entity\stock\Compteur;
use App\Entity\asso\Activite;
use App\Entity\asso\Concerne;
use App\Types\user\TypeEtat;
use App\Entity\stock\SuivieLivraison;
use App\Entity\user\HistoriqueAction;
use App\Services\user\LoginManager;
use App\Controller\param\ParametreController;
use App\Entity\stock\CodeBarre;
use App\Entity\stock\CaissePrix;
use App\Entity\stock\CaisseClient;
use App\Entity\user\Utilisateur;
use App\Entity\client\Client;
use App\Entity\prod\Plante;
use App\Entity\client\ClientPrix;
use App\Entity\stock\Image;
use App\Entity\prod\ProducteurGroupement;
use App\Entity\prod\ProducteurAbonne;
use App\Entity\prod\SurfaceAbonne;
use App\Entity\stock\FournisseurAbonne;
use App\Entity\stock\ProduitAbonne;
use App\Entity\stock\ZoneProducteur;
use App\Entity\stock\Commande;
use App\Entity\stock\Ville;
use App\Repository\param\ParamRepository;
use App\Repository\user\ConnexionRepository;
use App\Repository\user\ActionRepository;
use App\Repository\user\UtilisateurRepository;
use App\Repository\user\AbonneRepository;
use App\Repository\user\ModuleRepository;
use App\Repository\user\ControleurRepository;
use App\Repository\user\ProfilRepository;
use App\Entity\stock\InfoLivrer;
use App\Entity\stock\Livrer;
use App\Entity\client\EtatInfoClient;
use App\Entity\client\EtatClient;
use App\Entity\stock\LigneCommandeClient;
use App\Repository\stock\InfoLivrerRepository;
use App\Entity\stock\LigneCommande;
use App\Entity\stock\PrixRigueur;
use App\Entity\stock\SurPlus;
use App\Repository\stock\ParamSystDateRepository;
use App\Repository\cms\MenuRepository;
use App\Entity\user\AbonneVille;
use App\Entity\prod\Groupement;
use App\Entity\cms\ZoneGroupement;
use App\Entity\cms\Page;
use App\Entity\stock\EtatInfoOpportunite;
use App\Entity\stock\Opportunite;
use App\Entity\prod\SurfaceAnneeHistorique;
use App\Entity\prod\GroupementAbonne;
use App\Entity\inspection\InspectionAbonne;
use App\Entity\stock\InfoDeplacer;
use App\Entity\stock\ZoneAbonne;
use App\Repository\prod\SurfaceAnneeHistoriqueRepository;
use PDO;
use DateInterval;
Trait paramUtilTrait {
/**
* @var string
* Nom du Bundle
*/
protected $stockBundle = 'adminStockBundle:';
protected $stockBundleSlash = 'stock/';
protected $moduleTitre = '';
protected $moduleDesc = '';
/**
* @var string
* Nom du Bundle
*/
public function __construct(InfoLivrerRepository $infoLivrerRepository, TranslatorInterface $translator, SurfaceAnneeHistoriqueRepository $surfaceAnneeHistoriqueRepository)
{
//parent::__construct();
$this->infoLivrerRepository = $infoLivrerRepository;
$this->translator = $translator;
$this->surfaceAnneeHistoriqueRepository = $surfaceAnneeHistoriqueRepository;
//$this->infoLivrerRepository =
//var_dump(1);exit;
}
protected $gmaoBundle = 'adminGmaoBundle:';
public function gmaoBundleSlash($typePresentation){
if($typePresentation == 2 )
return 'template_1/gmao/';
else
return 'gmao/';
}
protected $gmaoBundleSlash = 'gmao/';
protected $paramBundle = 'adminParamBundle:';
public function paramBundleSlash($typePresentation){
if($typePresentation == 2 )
return 'template_1/param/';
else
return 'param/';
}
protected $cmsBundle = 'adminCmsBundle:';
public function cmsBundleSlash($typePresentation){
if($typePresentation == 2 )
return 'template_1/cms/';
else
return 'cms/';
}
protected $trackBundle = 'adminTrackBundle:';
public function trackBundleSlash($typePresentation){
if($typePresentation == 2 )
return 'template_1/track/';
else
return 'track/';
}
protected $aVenteBundle = 'AppBundle:';
protected $userBundle = 'App\\Entity\\user\\';
protected $prodBundle = 'adminProdBundle:';
public function prodBundleSlash($typePresentation){
if($typePresentation == 2 )
return 'template_1/prod/';
else
return 'prod/';
}
public function stockBundleSlash($typePresentation){
if($typePresentation == 2 )
return 'template_1/stock/';
else
return 'stock/';
}
protected $siteBundle = 'adminSiteBundle:';
protected $siteBundleSlash = 'site/';
protected $inspectionBundle = 'adminInspectionBundle:';
public function inspectionBundleSlash($typePresentation){
if($typePresentation == 2 )
return 'template_1/inspection/';
else
return 'inspection/';
}
protected $clientBundle = 'adminClientBundle:';
public function clientBundleSlash($typePresentation){
if($typePresentation == 2 )
return 'template_1/client/';
else
return 'client/';
}
protected $assoBundle = 'adminAssoBundle:';
public function assoBundleSlash($typePresentation){
if($typePresentation == 2 )
return 'template_1/asso/';
else
return 'asso/';
}
protected $bailleurBundle = 'adminBailleurBundle:';
public function bailleurBundleSlash($typePresentation){
if($typePresentation == 2 )
return 'template_1/bailleur/';
else
return 'bailleur/';
}
public function userBundleSlash($typePresentation){
if($typePresentation == 2 )
return 'template_1/user/';
else
return 'user/';
}
public function getInfoPartenaire($em, $objetAbonne){
$data =array();
if($objetAbonne->getSiPrincipale() == 2 ){
$data['typeAction'] = $objetAbonne->getSiPrincipale();
$data['partenaireId'] = $objetAbonne->getPartenaire()->getId();
}else if ($objetAbonne->getSiPrincipale() == 1){
$data['typeAction'] = $objetAbonne->getSiPrincipale();
$data['partenaireId'] = $objetAbonne->getPartenaire()->getId();
}else{
$data['typeAction'] = $objetAbonne->getSiPrincipale() ;
$data['partenaireId'] = 0;
}
return $data;
}
public function setAbonnePartenaire($em, $objetAbonne, $objetPartenaire, $objetClasse, $typeObjet, $siPrincipale=0){
$data =array();
if($typeObjet == 1 ){
$objetAbonnePartenaire = new ProduitAbonne();
$objetAbonnePartenaire->setProduit($objetClasse);
}else if ($typeObjet == 2){
$objetAbonnePartenaire = new ProducteurAbonne();
$objetAbonnePartenaire->setProducteur($objetClasse);
}else if ($typeObjet == 3){
$objetAbonnePartenaire = new SurfaceAbonne();
$objetAbonnePartenaire->setSurfaceannee($objetClasse);
}else if ($typeObjet == 4){
$objetAbonnePartenaire = new FournisseurAbonne();
$objetAbonnePartenaire->setFournisseur($objetClasse);
}else if ($typeObjet == 5){
$objetAbonnePartenaire = new GroupementAbonne();
$objetAbonnePartenaire->setGroupement($objetClasse);
}else if ($typeObjet == 6){
$objetAbonnePartenaire = new AbonneVille();
$objetAbonnePartenaire->setVille($objetClasse);
}else if ($typeObjet == 7){
$objetAbonnePartenaire = new InspectionAbonne();
$objetAbonnePartenaire->setInspection($objetClasse);
}
$objetAbonnePartenaire->setAbonne($objetAbonne);
$objetAbonnePartenaire->setPartenaire($objetPartenaire);
$objetAbonnePartenaire->setSiPrincipale($siPrincipale);
$em->persist($objetAbonnePartenaire);
$em->flush();
return 1;
}
/**
* @var string
* Nom du Bundle
*/
protected $messagerieBundle = 'adminMessagerieBundle:';
// use \Symfony\Component\DependencyInjection\ContainerAwareTrait;
public function infosConnecte(Request $request, LoginManager $loginManager, ParamRepository $paramRepositor,ConnexionRepository $connexionRepository, ActionRepository $actionRepository ) {
//$this->updateMessageNonLu();
//
$sessionData = $loginManager->getSessionData(LoginManager::SESSION_DATA_NAME);
$status = $loginManager->isConnecte('',$paramRepositor,$connexionRepository,$actionRepository );
// $banque = $loginManager->getBanque();
$request->attributes->set('isConnecte', $status['isConnecte']);
$request->attributes->set('isUser', $status['isUser']);
$request->attributes->set('logoUrl', ParametreController::DEFAULT_LOGO_NAME);
$request->attributes->set('nbMessageNonLu', 0);
// $request->attributes->set('infos', $banque);
// if($banque instanceof Banque){
// $request->attributes->set('logoUrl',$banque->getUrlLogo());
// }
if (($sessionData != NULL) && (is_array($sessionData)) && ($status['isConnecte'])) {
if (array_key_exists('nbMessageNonLu', $sessionData)) {
$request->attributes->set('nbMessageNonLu', $sessionData['nbMessageNonLu']);
}
if (array_key_exists('nomTableConnecte', $sessionData)) {
$request->attributes->set('nomTableConnecte', $sessionData['nomTableConnecte']);
}
if (array_key_exists('isUser', $sessionData)) {
$request->attributes->set('isUser', $sessionData['isUser']);
}
if (array_key_exists('isAbonne', $sessionData)) {
$request->attributes->set('isAbonne', $sessionData['isAbonne']);
}
if (array_key_exists('id', $sessionData)) {
$request->attributes->set('id', $sessionData['id']);
}
if (array_key_exists('prenoms', $sessionData)) {
$request->attributes->set('prenoms', $sessionData['prenoms']);
}
if (array_key_exists('nom', $sessionData)) {
$request->attributes->set('nom', $sessionData['nom']);
}
if (array_key_exists('sexe', $sessionData)) {
$request->attributes->set('sexe', $sessionData['sexe']);
}
if (array_key_exists('idConnexion', $sessionData)) {
$request->attributes->set('idConnexion', $sessionData['idConnexion']);
}
if (array_key_exists('username', $sessionData)) {
$request->attributes->set('username', $sessionData['username']);
}
if (array_key_exists('idProfil', $sessionData)) {
$request->attributes->set('idProfil', $sessionData['idProfil']);
}
if (array_key_exists('libelleProfil', $sessionData)) {
$request->attributes->set('libelleProfil', $sessionData['libelleProfil']);
}
if (array_key_exists('codeProfil', $sessionData)) {
$request->attributes->set('codeProfil', $sessionData['codeProfil']);
}
$this->data['tabIdActions'] = array();
if (array_key_exists('tabIdActions', $sessionData)) {
$request->attributes->set('tabIdActions', $sessionData['tabIdActions']);
$this->data['tabIdActions'] = $sessionData['tabIdActions'];
}
if (array_key_exists('locale', $sessionData)) {
$request->attributes->set('locale', $sessionData['locale']);
$this->data['locale'] = $sessionData['locale'];
$request->setLocale($sessionData['locale']);
} else {
$locale = $loginManager->getLocale();
$request->attributes->set('locale', $locale);
$this->data['locale'] = $locale;
$request->setLocale($locale);
}
if ($status['isUser']) {
// $profilsAbonne = $loginManager->getAllProfilAbonne();
}
}
// $this->data['profilsAbonne'] = $profilsAbonne;
return $sessionData;
}
/**
* Récupération du service de gestion des logs;
* @return LogManager
*/
private function getLogManager() {
return $this->get('logManager');
}
/**
* Retourne le nom d'une classe à partir de l'espace de nom complet de la classe
* @param type $nameSpace
* @return type
*/
public function getNomClassRun($nameSpace) {
$nom = '';
if (strlen($nameSpace) > 0) {
$tab = explode("\\", $nameSpace);
$taille = count($tab);
if ($taille > 0) {
$nom = $tab[$taille - 1];
}
}
return $nom;
}
public function gestionDroitUtil($request, $nomAction, $descAction, $module, $moduledescript , LoginManager $loginManager,ParamRepository $paramRepositor,ConnexionRepository $connexionRepository,ActionRepository $actionRepository,
ModuleRepository $moduleRepository,ControleurRepository $controleurRepository,ProfilRepository $profilRepository) {
/*
* 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;
/*
* 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']) {
$routeName = $request->get('_route');
$routeParams = $request->get('_route_params');
$this->get('session')->getFlashBag()->add('restoreUrl', $this->generateUrl($routeName, $routeParams));
$this->get('session')->getFlashBag()->add('ina', $this->translator->trans("site.long.periode"));
return 1; // $this->redirect($this->generateUrl('app_logout'));
}
/*
* Seuls les utilisateurs admins ont le droit d'acceder à cette action
*/
if (!$status['isUser']) {
return 1; //$this->redirect($this->generateUrl('app_logout'));
}
} else {
return 1; //return $this->redirect($this->generateUrl('app_logout'));
}
/*
* Gestion des droits
*/
if (!$loginManager->getOrSetActions($module, $moduledescript, $this->getNomClassRun(__CLASS__), $this->description, $nomAction, $descAction, $sessionData['idProfil'], $moduleRepository, $controleurRepository, $actionRepository, $profilRepository, $moduleRepository, $controleurRepository, $actionRepository, $profilRepository)) {
$this->logMessage .= ' [ TENTATIVE DE VIOLATION DE DROITS ] ';
$this->get('session')->getFlashBag()->add('access', "Vous n'avez pas le droit d'accéder à cette page");
return 2; //$this->redirect($this->generateUrl('app_admin_user_access_refuse'));
}
return 0;
}
public function getRefCommande(EntityManager $em, $type = 0, $an = 0, $mois = 0, $entite = 'COMMANDE', $taille = 5, $four=0) {
$res = '';
$cp = $this->getcompteur($em, $type, $an, $mois, $entite, $taille, $four);
( array_key_exists('compteur', $cp)) ? $cp = $cp['compteur'] : $cp = '';
($type === 1) ? $res .= 'CDF' : $res .= 'CDC';
if ($four == 2) {
$val = "K";
} else {
$val = "C";
}
return $val . "" . str_pad($cp, 3, 0, STR_PAD_LEFT) . '/' . $this->traiteInfoMois($mois) . '/' . $an;
}
public function getRefCommandeSoja(EntityManager $em, $type = 0, $an = 0, $mois = 0, $entite = 'COMMANDE', $taille = 5, $four=0) {
$res = '';
$cp = $this->getcompteur($em, $type, $an, $mois, $entite, $taille, $four);
( array_key_exists('compteur', $cp)) ? $cp = $cp['compteur'] : $cp = '';
($type === 1) ? $res .= 'CDF' : $res .= 'CDC';
if ($four == 2) {
$val = "S";
} else {
$val = "S";
}
$toutInfoLivrer = $em->getRepository($this->stockBundle . 'InfoLivrer')->findAll();
return $val . "" . count($toutInfoLivrer ) . '/' . $this->traiteInfoMois($mois) . '/' . $an;
}
public function reinitialiserRef(EntityManager $em, $type = 0, $an = 0, $mois = 0, $entite = 'COMMANDE', $taille = 5, $four=0) {
$res = '';
$cp = $this->reinitialiser($em, $type, $an, $mois, $entite, $taille, $four);
return $cp;
}
function traiteInfoMois($mois) {
switch ($mois) {
case 1 :
return "JAN";
case 2 :
return "FEV";
case 3 :
return "MAR";
case 4 :
return "AVR";
case 5 :
return "MAI";
case 6 :
return "JUIN";
case 7 :
return "JUIL";
case 8 :
return "AOU";
case 9 :
return "SEP";
case 10 :
return "OCT";
case 11 :
return "NOV";
case 12 :
return "DEC";
}
}
public function getRefLivrer(EntityManager $em, $type = 0, $an = 0, $mois = 0, $entite = 'COMMANDE', $taille = 5, $jour = "") {
$res = '';
$cp = $this->getcompteur($em, $type, $an, $mois, $entite, $taille,0);
( array_key_exists('compteur', $cp)) ? $cp = $cp['compteur'] : $cp = rand(0,999999);
($type === 1) ? $res .= 'REC' : $res .= 'LIV';
return $res . '-' . substr($an, -2) . $mois . $jour . '-' . $cp;
}
public function getcompteur(EntityManager $em, $type = 0, $an = 0, $mois = 0, $entite = 'COMMANDE', $taille = 5, $four) {
try {
$sqlrech = ' SELECT getcompteur(:p_type ,:p_an ,:p_mois ,:p_entite ,:p_taille, :four) as compteur; ';
$stmt = $em->getConnection()->prepare($sqlrech);
$stmt->bindValue(':p_type', $type, PDO::PARAM_INT);
$stmt->bindValue(':p_an', $an, PDO::PARAM_INT);
$stmt->bindValue(':p_mois', $mois, PDO::PARAM_INT);
$stmt->bindValue(':p_entite', $entite, PDO::PARAM_STR);
$stmt->bindValue(':p_taille', $taille, PDO::PARAM_INT);
$stmt->bindValue(':four', $four, PDO::PARAM_INT);
$result = $stmt->executeQuery()->fetchAllAssociative();
//$stmt->execute();
//var_dump($stmt);exit;
$res = $result;//$stmt->fetch(PDO::FETCH_ASSOC);
} catch (\Symfony\Component\Form\Exception\Exception $e) {
$stmt = null;
$res = nnull;
var_dump($e->getMessage());
}
return $res;
}
public function manageStock(EntityManager $em, $id = 0, $quantite = 0, $action = 0) {
/* try {
$sqlrech = ' SELECT getcompteur(:p_id ,:p_quantite,:p_action) as compteur; ';
$stmt = $em->getConnection()->prepare($sqlrech);
$stmt->bindValue(':p_id', $id, PDO::PARAM_INT);
$stmt->bindValue(':p_quantite', $quantite, PDO::PARAM_INT);
$stmt->bindValue(':p_action', $action, PDO::PARAM_INT);
$stmt->execute();
$res = $stmt->fetch(PDO::FETCH_ASSOC);
} catch (\Symfony\Component\Form\Exception\Exception $e) {
$stmt = null;
$res = nnull;
var_dump($e->getMessage());
}*/
return 1;
}
public function reinitialiser(EntityManager $em, $type = 0, $an = 0, $mois = 0, $entite = 'COMMANDE', $taille = 5, $four) {
try {
$sqlrech = ' SELECT reinitiation(:p_type ,:p_an ,:p_mois ,:p_entite ,:p_taille, :four) as compteur; ';
$stmt = $em->getConnection()->prepare($sqlrech);
$stmt->bindValue(':p_type', $type, PDO::PARAM_INT);
$stmt->bindValue(':p_an', $an, PDO::PARAM_INT);
$stmt->bindValue(':p_mois', $mois, PDO::PARAM_INT);
$stmt->bindValue(':p_entite', $entite, PDO::PARAM_STR);
$stmt->bindValue(':p_taille', $taille, PDO::PARAM_INT);
$stmt->bindValue(':four', $four, PDO::PARAM_INT);
$stmt->execute();
$res = $stmt->executeQuery()->fetchAllAssociative();//$stmt->fetch(PDO::FETCH_ASSOC);
} catch (\Symfony\Component\Form\Exception\Exception $e) {
$stmt = null;
$res = null;
var_dump($e->getMessage());
}
return $res;
}
public function getNumMvt(EntityManager $em, $type = 0, $an = 0, $mois = 0, $entite = 'COMMANDE', $taille = 5) {
$res = '';
$cp = $this->getcompteur($em, $type, $an, $mois, $entite, $taille, 1);
( array_key_exists('compteur', $cp)) ? $cp = $cp['compteur'] : $cp = '';
($type === 1) ? $res .= 'MVT' : $res .= 'MVT';
return $res . '' . substr($an, -2) . $mois . '' . $cp;
}
public function initialiserAncienPrixZero(EntityManager $em, $idProduit = 0) {
try {
$sqlrech = ' UPDATE prix_rigueur set etat_prix = 0 where produit_id =:produitId ';
// var_dump($sqlrech, $idProduit);exit;
$stmt = $em->getConnection()->prepare($sqlrech);
$stmt->bindValue(':produitId', $idProduit, PDO::PARAM_INT);
$stmt->execute();
} catch (\Symfony\Component\Form\Exception\Exception $e) {
$stmt = null;
$res = null;
var_dump($e->getMessage());
}
return 1;
}
public function initialiserLesAncienPolygon(EntityManager $em, $surfaceanneeId= 0, $typeLocalisation) {
try {
$sqlrech = ' UPDATE localisation set etat_localisation = 2 where surfaceannee_id =:surfaceanneeId AND type_localisation =:typeLocalisation ';
// var_dump($sqlrech, $idProduit);exit;
$stmt = $em->getConnection()->prepare($sqlrech);
$stmt->bindValue(':surfaceanneeId', $surfaceanneeId, PDO::PARAM_INT);
$stmt->bindValue(':typeLocalisation', $typeLocalisation, PDO::PARAM_INT);
$stmt->execute();
} catch (\Symfony\Component\Form\Exception\Exception $e) {
$stmt = null;
$res = null;
var_dump($e->getMessage());
}
return 1;
}
public function initialiserSeTrouver(EntityManager $em, $fournisseurId = 0) {
try {
$sqlrech = ' UPDATE se_trouver set etat_se_trouver = 0 where fournisseur_id =:fournisseurId ';
// var_dump($sqlrech, $idProduit);exit;
$stmt = $em->getConnection()->prepare($sqlrech);
$stmt->bindValue(':fournisseurId', $fournisseurId, PDO::PARAM_INT);
$stmt->execute();
} catch (\Symfony\Component\Form\Exception\Exception $e) {
$stmt = null;
$res = null;
var_dump($e->getMessage());
}
return 1;
}
public function initialiserInspectionRempli(EntityManager $em, $inspectionId = 0, $surfaceAnneeId=0) {
try {
$sqlrech = ' UPDATE inspection_rempli set etat_fournisseur_producteur = 0 where surfaceannee_id =:surfaceAnneeId AND inspection_id =:inspectionId ';
// var_dump($sqlrech, $idProduit);exit;
$stmt = $em->getConnection()->prepare($sqlrech);
$stmt->bindValue(':inspectionId', $inspectionId, PDO::PARAM_INT);
$stmt->bindValue(':surfaceAnneeId', $surfaceAnneeId, PDO::PARAM_INT);
$stmt->execute();
} catch (\Symfony\Component\Form\Exception\Exception $e) {
$stmt = null;
$res = null;
var_dump($e->getMessage());
}
return 1;
}
public function updatePageTemplate(EntityManager $em, $abonneId, $ancienTemplate = 0, $nouveauTemplate) {
try {
$sqlrech = ' UPDATE page set template_id =:nouveauTemplate where template_id =:ancienTemplate and abonne_id =:abonneId ';
// var_dump($sqlrech, $idProduit);exit;
$stmt = $em->getConnection()->prepare($sqlrech);
$stmt->bindValue(':nouveauTemplate', $nouveauTemplate, PDO::PARAM_INT);
$stmt->bindValue(':ancienTemplate', $ancienTemplate, PDO::PARAM_INT);
$stmt->bindValue(':abonneId', $abonneId, PDO::PARAM_INT);
$stmt->execute();
} catch (\Symfony\Component\Form\Exception\Exception $e) {
$stmt = null;
$res = null;
var_dump($e->getMessage());
}
return 1;
}
public function updateParcelle(EntityManager $em, $abonneId, $producteurId =0) {
try {
$sqlrech = ' UPDATE surface_annee set etat_surface_annee =:etatSupprime where producteur_id =:producteurId and abonne_id =:abonneId ';
// var_dump($sqlrech, $idProduit);exit;
$stmt = $em->getConnection()->prepare($sqlrech);
$stmt->bindValue(':etatSupprime', 2, PDO::PARAM_INT);
$stmt->bindValue(':producteurId', $producteurId, PDO::PARAM_INT);
$stmt->bindValue(':abonneId', $abonneId, PDO::PARAM_INT);
$stmt->execute();
} catch (\Symfony\Component\Form\Exception\Exception $e) {
$stmt = null;
$res = null;
var_dump($e->getMessage());
}
return 1;
}
public function initialiserToutIspectionApresAjour(EntityManager $em, $abonneId = 0, $type=0) {
try {
$sqlrech = ' UPDATE inspection set si_apres_ajout = 0 where abonne_id =:abonneId and type_inspection =:typeinspection';
// var_dump($sqlrech, $idProduit);exit;
$stmt = $em->getConnection()->prepare($sqlrech);
$stmt->bindValue(':abonneId', $abonneId, PDO::PARAM_INT);
$stmt->bindValue(':typeinspection', $type, PDO::PARAM_INT);
$stmt->execute();
} catch (\Symfony\Component\Form\Exception\Exception $e) {
$stmt = null;
$res = null;
var_dump($e->getMessage());
}
return 1;
}
public function initialiserInspectionSuivant(EntityManager $em, $abonneId = 0, $inspectionId=0) {
try {
$sqlrech = ' UPDATE inspection set si_apres_ajout = 0 where abonne_id =:abonneId and id =:inspectionId';
// var_dump($sqlrech, $idProduit);exit;
$stmt = $em->getConnection()->prepare($sqlrech);
$stmt->bindValue(':abonneId', $abonneId, PDO::PARAM_INT);
$stmt->bindValue(':inspectionId', $inspectionId, PDO::PARAM_INT);
$stmt->execute();
} catch (\Symfony\Component\Form\Exception\Exception $e) {
$stmt = null;
$res = null;
var_dump($e->getMessage());
}
return 1;
}
public function supprimerSurfaceAnnee(EntityManager $em) {
try {
$sqlrech = ' UPDATE
producteur p, surface_annee s SET s.etat_surface_annee = 2
WHERE p.id = s.producteur_id and p.etat_prod = 2 ';
// var_dump($sqlrech, $idProduit);exit;
$stmt = $em->getConnection()->prepare($sqlrech);
//$stmt->bindValue(':produitId', $idProduit, PDO::PARAM_INT);
$stmt->execute();
} catch (\Symfony\Component\Form\Exception\Exception $e) {
$stmt = null;
$res = null;
var_dump($e->getMessage());
}
return 1;
}
public function supprimerInspectionRempliSurface(EntityManager $em) {
try {
$sqlrech = ' UPDATE
surface_annee s, inspection_rempli r SET r.etat_fournisseur_producteur = 2
WHERE s.id = r.surfaceannee_id and s.etat_surface_annee = 2
';
// var_dump($sqlrech, $idProduit);exit;
$stmt = $em->getConnection()->prepare($sqlrech);
//$stmt->bindValue(':produitId', $idProduit, PDO::PARAM_INT);
$stmt->execute();
} catch (\Symfony\Component\Form\Exception\Exception $e) {
$stmt = null;
$res = null;
var_dump($e->getMessage());
}
return 1;
}
public function supprimerInspectionRempliProducteur(EntityManager $em) {
try {
$sqlrech = ' UPDATE
producteur p, inspection_rempli r SET r.etat_fournisseur_producteur = 2
WHERE p.id = r.surfaceannee_id and p.etat_prod = 2
';
// var_dump($sqlrech, $idProduit);exit;
$stmt = $em->getConnection()->prepare($sqlrech);
//$stmt->bindValue(':produitId', $idProduit, PDO::PARAM_INT);
$stmt->execute();
} catch (\Symfony\Component\Form\Exception\Exception $e) {
$stmt = null;
$res = null;
var_dump($e->getMessage());
}
return 1;
}
public function initialiserSuiviHistoriqueCommande(EntityManager $em, $oldId=0, $lnewId=0, $produitId=0) {
try {
$sqlrech = ' UPDATE lignecommande set suivi_historique = :lnewId where suivi_historique = :oldId and produit_id =:produitId ';
// var_dump($sqlrech, $idProduit);exit;
$stmt = $em->getConnection()->prepare($sqlrech);
$stmt->bindValue(':oldId', $oldId, PDO::PARAM_INT);
$stmt->bindValue(':lnewId', $lnewId, PDO::PARAM_INT);
$stmt->bindValue(':produitId', $produitId, PDO::PARAM_INT);
$stmt->execute();
} catch (\Symfony\Component\Form\Exception\Exception $e) {
$stmt = null;
$res = null;
var_dump($e->getMessage());
}
return 1;
}
public function initialiserCommandeSuivant(EntityManager $em, $oldId=0, $produitId=0, $ligneCommandeId) {
try {
$sqlrech = ' UPDATE lignecommande set suivant_commande = :ligneCommandeId where suivi_historique = :oldId and produit_id =:produitId ';
// var_dump($sqlrech, $idProduit);exit;
$stmt = $em->getConnection()->prepare($sqlrech);
$stmt->bindValue(':oldId', $oldId, PDO::PARAM_INT);
$stmt->bindValue(':ligneCommandeId', $ligneCommandeId, PDO::PARAM_INT);
$stmt->bindValue(':produitId', $produitId, PDO::PARAM_INT);
$stmt->execute();
} catch (\Symfony\Component\Form\Exception\Exception $e) {
$stmt = null;
$res = null;
var_dump($e->getMessage());
}
return 1;
}
public function deleteCommandeTmp(EntityManager $em, $clientId = 0) {
try {
$sqlrech = ' DELETE FROM commandetmp where client_id =:clientId ';
// var_dump($sqlrech, $idProduit);exit;
$stmt = $em->getConnection()->prepare($sqlrech);
$stmt->bindValue(':clientId', $clientId, PDO::PARAM_INT);
$stmt->execute();
} catch (\Symfony\Component\Form\Exception\Exception $e) {
$stmt = null;
$res = null;
var_dump($e->getMessage());
}
//var_dump($clientId );exit;
return 1;
}
public function deleteLigneCommandeTmp(EntityManager $em, $clientId = 0) {
try {
$sqlrech = ' DELETE FROM lignecommandetmp where client_id =:clientId ';
// var_dump($sqlrech, $idProduit);exit;
$stmt = $em->getConnection()->prepare($sqlrech);
$stmt->bindValue(':clientId', $clientId, PDO::PARAM_INT);
$stmt->execute();
} catch (\Symfony\Component\Form\Exception\Exception $e) {
$stmt = null;
$res = null;
var_dump($e->getMessage());
}
return 1;
}
public function initialiserVille(EntityManager $em) {
try {
$sqlrech = ' UPDATE ville set etat_ville= 3 ';
// var_dump($sqlrech, $idProduit);exit;
$stmt = $em->getConnection()->prepare($sqlrech);
$stmt->execute();
} catch (\Symfony\Component\Form\Exception\Exception $e) {
$stmt = null;
$res = null;
var_dump($e->getMessage());
}
return 1;
}
public function initialisePreparationPayement(EntityManager $em) {
try {
$sqlrech = ' UPDATE info_livrer set etat_payement = 0';
$stmt = $em->getConnection()->prepare($sqlrech);
$stmt->execute();
} catch (\Symfony\Component\Form\Exception\Exception $e) {
$stmt = null;
$res = null;
var_dump($e->getMessage());
}
return 1;
}
public function initialiserAnneeCampagne(EntityManager $em, $idProduit = 0){
try {
$sqlrech = ' UPDATE annee_campagne set etat_annee = 0 where produit_id = :produitId ';
$stmt = $em->getConnection()->prepare($sqlrech);
$stmt->bindValue(':produitId', $idProduit, PDO::PARAM_INT);
$stmt->execute();
//var_dump(1);exit;
} catch (\Symfony\Component\Form\Exception\Exception $e) {
$stmt = null;
$res = null;
var_dump($e->getMessage()) ;
}
return 1;
}
public function initialiserInventaire(EntityManager $em, $idProduit = 0){
try {
$sqlrech = ' UPDATE inventaire set etat_inventaire = 0 where produit_id = :produitId ';
$stmt = $em->getConnection()->prepare($sqlrech);
$stmt->bindValue(':produitId', $idProduit, PDO::PARAM_INT);
$stmt->execute();
//var_dump(1);exit;
} catch (\Symfony\Component\Form\Exception\Exception $e) {
$stmt = null;
$res = null;
var_dump($e->getMessage()) ;
}
return 1;
}
public function initialiserAncienConteneurZero(EntityManager $em) {
try {
$sqlrech = ' UPDATE conteneur set etat_conteneur = 0 ';
$stmt = $em->getConnection()->prepare($sqlrech);
$stmt->execute();
} catch (\Symfony\Component\Form\Exception\Exception $e) {
$stmt = null;
$res = null;
var_dump($e->getMessage());
}
return 1;
}
public function calculerStatCommande($listeCommande) {
foreach ($listeCommande as $uneCommande) {
$statTab['quantiteTotal'] = $statTab['quantiteTotal'] + $uneCommande->getLignecommandes()[0]->getQuantite();
$statTab['quantiteTotalLivre'] = $statTab['quantiteTotalLivre'] + $uneCommande->getLignecommandes()[0]->getQuantiteLivre();
//
// var_dump($uneCommande->getLignecommandes()[0]->getId());
}
$statTab['pourcentage'] = intval(($statTab['quantiteTotalLivre'] / $statTab['quantiteTotal']) * 100);
return $statTab;
}
function traiterDateFormat($date) {
$tabDate = array();
$tabdateWithHour = explode(' ', $date);
$tabDate = array_reverse(explode('-', str_replace("/", "-", $tabdateWithHour[0])));
// $tabDateOrd[0]=$tabDate[0];
// $tabDateOrd[1]=$tabDate[2];
// $tabDateOrd[2]=$tabDate[1];
// var_dump($tabDate);exit;
return $tabDate;
}
function getDateFormat($date) {
$tabDate = array();
$tabdateWithHour = explode(' ', $date);
$tabDate = array_reverse(explode('-', str_replace("/", "-", $tabdateWithHour[0])));
// $tabDateOrd[0]=$tabDate[0];
// $tabDateOrd[1]=$tabDate[2];
// $tabDateOrd[2]=$tabDate[1];
// var_dump($tabDate);exit;
return $tabDate[0]."-".$tabDate[1]."-".$tabDate[2]." ".$tabdateWithHour[1] ;
}
function affichageCorrectDate($date) {
$tabDate = array();
$tabDate = array_reverse(explode('-', $date));
$tabDateOrd[0] = $tabDate[1];
$tabDateOrd[1] = $tabDate[2];
$tabDateOrd[2] = $tabDate[0];
//var_dump($tabDateOrd);exit;
return implode("/", $tabDateOrd);
}
function dateDuPremierDuMois($dateJour) {
$datedebMois = $dateJour->format("m");
$datedebYear = $dateJour->format("Y");
return new \DateTime($datedebMois . "/01/" . $datedebYear);
}
public function bloquerFournisseur($em, $montantRestant, $montantSessionData, $id, $fournisseurRepository) {
if ($montantRestant > $montantSessionData) {
$objetFournisseur = $fournisseurRepository->find($id);
$objetFournisseur->setEtatFournisseur(TypeEtat::INACTIF);
$em->persist($objetFournisseur);
$em->flush();
return true;
} else {
return false;
}
}
public function activerFournisseur($em, $montantRestant, $montantSessionData, $id, $fournisseurRepository) {
if ($montantRestant > $montantSessionData) {
$objetFournisseur = $fournisseurRepository->find($id);
$objetFournisseur->setEtatFournisseur(TypeEtat::ACTIF);
$em->persist($objetFournisseur);
$em->flush();
return true;
} else {
return false;
}
}
public function genereLigneSuivieLivraison($em, $zone, $montant, $typeOperation, $institule, $objetOperation, $objetInfoLivrer) {
$objetSuivieLivraison = new SuivieLivraison();
$objetSuivieLivraison->setInfolivrer($objetInfoLivrer);
$objetSuivieLivraison->setOperation($objetOperation);
$objetSuivieLivraison->setTypeoperation($typeOperation);
$objetSuivieLivraison->setMontant($montant);
$objetSuivieLivraison->setInstitule($institule);
$objetSuivieLivraison->setVille($zone);
$em->persist($objetSuivieLivraison);
$em->flush();
return true;
}
public function getParamLivraisonDate($em, $id, ParamSystDateRepository $paramSystDateRepository) {
$unParam = $paramSystDateRepository->find($id);
if($unParam !=null){
$dateChoisi = $unParam->getDateParam();
}else{
$dateChoisi = new \DateTime();
}
return $dateChoisi->format("d/m/Y");
}
public function traiteCommande($em, $tempIds, $prixLimiteCacao, $typeaction = 1, $fournisseurRepository,$commandeRepository ) {
$oneOk = false;
$rep = array();
$rep['quantiteTotal'] = 1;
$rep['quantiteTotalLivre'] = 1;
$rep['montantTotal'] = 1;
$rep['montantTotalLivre'] = 1;
$detailFournisseur = $fournisseurRepository->find($tempIds);
$rep['nomFournisseur'] = $detailFournisseur->getNomFournisseur();
$rep['id'] = $detailFournisseur->getId();
$rep['contactFournisseur'] = $detailFournisseur->getContactFournisseur();
$listeCommande = $commandeRepository->getUtilisateurCommande($tempIds);
$quantite = 0;
$quantiteLivre = 0;
$prix = 0;
foreach ($listeCommande as $uneCommande) {
if($uneCommande->getLignecommandes()[0] != null){
$quantite = $uneCommande->getLignecommandes()[0]->getQuantite();
$quantiteLivre = $uneCommande->getLignecommandes()[0]->getQuantiteLivre();
$prix = $uneCommande->getLignecommandes()[0]->getPrixRigueur()->getInfoPrixRigueur();
}
$rep['quantiteTotal'] = $rep['quantiteTotal'] + $quantite;
$rep['quantiteTotalLivre'] = $rep['quantiteTotalLivre'] + $quantiteLivre ;
$montantTotal = $quantite * $prix;
$montantTotalLivre = $quantiteLivre * $prix;
// var_dump($uneCommande->getLignecommandes()[0]->getId());
$rep['montantTotal'] = $rep['montantTotal'] + $montantTotal;
$rep['montantTotalLivre'] = $rep['montantTotalLivre'] + $montantTotalLivre;
}
$rep['pourcentage'] = intval(($rep['quantiteTotalLivre'] / $rep['quantiteTotal']) * 100);
$rep['resteLivre'] = $rep['quantiteTotal'] - $rep['quantiteTotalLivre'];
$rep['montantRestant'] = $rep['montantTotal'] - $rep['montantTotalLivre'];
$prixLimiteCacao = $detailFournisseur->getCreditFournisseur() + $detailFournisseur->getDepassementFournisseur();
/*
* variable boolean initialisé a false .elle va être modifier à true si tout se passe bien
*/
if ($typeaction == 1) {
$actionFournisseur = $this->activerFournisseur($em, $rep['montantRestant'], $prixLimiteCacao, $tempIds);
} else {
$actionFournisseur = $this->bloquerFournisseur($em, $rep['montantRestant'], $prixLimiteCacao, $tempIds);
}
if ($actionFournisseur) {
$rep['msg'] = 'bloque';
$rep['montantDu'] = $rep['montantRestant'];
$rep['montantAccepte'] = $prixLimiteCacao;
} else {
if ($oneOk) {
// $this->flashMessage->add('fournisseur.gerer.success', $this->translator->trans("site.ajouter.succes"));
$rep['msg'] = '';
$rep['etat'] = true;
}
}
return $rep;
}
public function getInfoAvcanceFournisseur($em, $tempIds) {
$oneOk = false;
$rep = array();
$rep['quantiteTotal'] = 1;
$rep['quantiteTotalLivre'] = 1;
$rep['montantTotal'] = 1;
$rep['montantTotalLivre'] = 1;
$detailFournisseur = $em->getRepository($this->stockBundle . 'Fournisseur')->find($tempIds);
$rep['nomFournisseur'] = $detailFournisseur->getNomFournisseur();
$rep['id'] = $detailFournisseur->getId();
$rep['contactFournisseur'] = $detailFournisseur->getContactFournisseur();
$listeCommande = $em->getRepository($this->stockBundle . 'Commande')->getUtilisateurCommande($tempIds);
$infoSurPlus = $em->getRepository($this->stockBundle . 'SurPlus')->findOneBy(array("fournisseur" => $detailFournisseur));
$quantite = 0;
$quantiteLivre = 0;
$prix = 0;
foreach ($listeCommande as $uneCommande) {
if($uneCommande->getLignecommandes()[0] != null){
$quantite = $uneCommande->getLignecommandes()[0]->getQuantite();
$quantiteLivre = $uneCommande->getLignecommandes()[0]->getQuantiteLivre();
$prix = $uneCommande->getLignecommandes()[0]->getPrixRigueur()->getInfoPrixRigueur();
}
$rep['quantiteTotal'] = $rep['quantiteTotal'] + $quantite;
$rep['quantiteTotalLivre'] = $rep['quantiteTotalLivre'] +$quantiteLivre ;
$montantTotal = $quantite * $prix;
$montantTotalLivre = $quantite * $prix;
$rep['montantTotal'] = $rep['montantTotal'] + $montantTotal;
$rep['montantTotalLivre'] = $rep['montantTotalLivre'] + $montantTotalLivre;
}
$prixR = $em->getRepository($this->stockBundle . 'PrixRigueur')->getActifPrixRigueur();
$nombreInfoLi = 0;
$montantInfoLi = 0;
if ($infoSurPlus != null ) {
$nombreInfoLi = $infoSurPlus->getQuantite();
$montantInfoLi = $prixR[0]->getInfoPrixRigueur() * $nombreInfoLi;
}
$rep['quantiteTotalLivre'] = $rep['quantiteTotalLivre'] + $nombreInfoLi;
$rep['montantTotalLivre'] = $rep['montantTotalLivre'] + $montantInfoLi;
$rep['pourcentage'] = intval(($rep['quantiteTotalLivre'] / $rep['quantiteTotal']) * 100);
$rep['resteLivre'] = $rep['quantiteTotal'] - $rep['quantiteTotalLivre'];
$rep['montantRestant'] = $rep['montantTotal'] - $rep['montantTotalLivre'];
//var_dump(1);exit;
if ($oneOk) {
// $this->flashMessage->add('fournisseur.gerer.success', $this->translator->trans("site.ajouter.succes"));
$rep['msg'] = '';
$rep['etat'] = true;
}
return $rep;
}
public function RecuperCritereRecherche($em, $nomcol, $datefin, $datedeb, $ville, $util, $silivre, $numcom) {
if ($datedeb == 0 && $datefin == 0) {
$dateJour = new \DateTime();
$premierDate = $this->dateDuPremierDuMois($dateJour);
$datedeb = $premierDate->format("d/m/Y");
$dateMoi = $premierDate->add(new DateInterval('P1M'));
$datefin = $dateMoi->format("d/m/Y");
}
$tabRetour = array();
if ($nomcol != 0) {
$objetCollecteur = $em->getRepository($this->stockBundle . 'Fournisseur')->find($nomcol);
$tabRetour['nomCollecteur'] = $objetCollecteur->getNomFournisseur();
} else {
$tabRetour['nomCollecteur'] = '-';
}
if ($ville != 0) {
$objetVille = $em->getRepository($this->stockBundle . 'Ville')->find($ville);
$tabRetour['nomVille'] = $objetVille->getNomVille();
} else {
$tabRetour['nomVille'] = '-';
}
if ($util != 0) {
$objetUtil = $em->getRepository($this->userBundle . 'Utilisateur')->find($util);
$tabRetour['nomGerant'] = $objetUtil->getNom();
} else {
$tabRetour['nomGerant'] = '-';
}
if ($silivre != 0) {
if ($silivre == 1) {
$tabRetour['livre'] = 'Non Livrée';
} elseif ($silivre == 2) {
$tabRetour['livre'] = 'Livr. partielle';
} elseif ($silivre == 3) {
$tabRetour['livre'] = 'Livr. totale';
} else {
$tabRetour['livre'] = 'livr. partielle|totale';
}
} else {
$tabRetour['livre'] = '-';
}
if ($numcom != 0) {
$tabRetour['codeCommande'] = $numcom;
} else {
$tabRetour['codeCommande'] = '-';
}
//var_dump($datedeb);exit;
$tabRetour['dateDebut'] = $datedeb; //$this->affichageCorrectDate($datedeb);
$tabRetour['dateFin'] = $datefin; //$this->affichageCorrectDate($datefin);
return $tabRetour;
}
public function RecuperCritereRechercheSuivie($em, $datefin, $datedeb, $ville) {
if ($datedeb == 0 && $datefin == 0) {
$dateJour = new \DateTime();
$premierDate = $this->dateDuPremierDuMois($dateJour);
$datedeb = $premierDate->format("d/m/Y");
$dateMoi = $premierDate->add(new DateInterval('P1M'));
$datefin = $dateMoi->format("d/m/Y");
}
$tabRetour = array();
if ($ville != 0) {
$objetVille = $em->getRepository($this->stockBundle . 'Ville')->find($ville);
$tabRetour['nomVille'] = $objetVille->getNomVille();
} else {
$tabRetour['nomVille'] = '-';
}
$tabRetour['dateDebut'] = $datedeb; //$this->affichageCorrectDate($datedeb);
$tabRetour['dateFin'] = $datefin; //$this->affichageCorrectDate($datefin);
return $tabRetour;
}
public function upDateSurPlus($em, $nomCollecteur, $quantite, $fournisseurRepository,$surplusRepository ) {
//objet collecteur
$criteria = array('codeFournisseur' => $nomCollecteur);
$unFournisseur = $fournisseurRepository->findOneBy($criteria);
//Information sur le surplus
$criteriaSurplus = array('fournisseur' => $unFournisseur);
$objetSurplus = $surplusRepository->findOneBy($criteriaSurplus);
if ($objetSurplus == null) {
$objetSurplus = new SurPlus();
}
$objetSurplus->setQuantite($quantite);
$objetSurplus->setFournisseur($unFournisseur);
$objetSurplus->setDatePublication(new \DateTime());
$em->persist($objetSurplus);
$em->flush();
return $objetSurplus;
}
public function recupererSurPlus($em, $nomCollecteur, $fournisseurRepository,$surplusRepository ) {
//objet collecteur
$criteria = array('codeFournisseur' => $nomCollecteur);
$unFournisseur = $fournisseurRepository->findOneBy($criteria);
//Information sur le surplus
$criteriaSurplus = array('fournisseur' => $unFournisseur);
$objetSurplus = $surplusRepository->findOneBy($criteriaSurplus);
if ($objetSurplus == null) {
$quantite = 0;
} else {
$quantite = $objetSurplus->getQuantite();
}
return $quantite;
}
public function saveSurfaceAnnee($em,$objetSurfaceAnnee,$objetAnneeCampagne,$objetSurface,$objetProduit,$objetProducteur,$codeGenere){
$objetSurfaceAnnee->setAnneecampagne($objetAnneeCampagne);
$objetSurfaceAnnee->setSurface($objetSurface);
$objetSurfaceAnnee->setProduit($objetProduit);
$objetSurfaceAnnee->setCodeGenere($codeGenere);
$objetSurfaceAnnee->setProducteur($objetProducteur);
$em->persist($objetSurfaceAnnee);
$em->flush($objetSurfaceAnnee);
return $objetSurfaceAnnee;
}
public function getStringSqlVille($niveau){
$sql = "";
$j=0;
for($i=1; $i<=$niveau; $i++){
if($i==1){
$sql .=" LEFT JOIN p.ville v".$i;
}else{
$sql .=" LEFT JOIN v".$j.".ville v".$i;
}
$j=$i;
}
$sqlCond ="";
$sqlCond .=" AND v".$niveau.".id = :ville";
$tab[0]= $sql;
$tab[1]= $sqlCond;
return $tab;
}
public function initialiserIntentionSemence(EntityManager $em) {
try {
$sqlrech = ' UPDATE producteur set si_intention = 1 , si_semence = 1 ';
$stmt = $em->getConnection()->prepare($sqlrech);
$stmt->bindValue(':prod', $prod, PDO::PARAM_INT);
$stmt->execute();
} catch (\Symfony\Component\Form\Exception\Exception $e) {
$stmt = null;
$res = null;
var_dump($e->getMessage());
}
return 1;
}
public function addHistoriqueAction($em, $info, $operation, $codeGenere, $utilisateur, $producteurId, $plateforme, $donnee, UtilisateurRepository $utilisateurRepository) {
//Objet Utilisateur
$objetUtilisateur = $utilisateurRepository->find($utilisateur);
//Objet Producteur
//$objetProducteur = $em->getRepository($this->prodBundle . 'Producteur')->find($producteurId);
$objetHistoriqueAction = new HistoriqueAction();
//$objetHistoriqueAction->setProducteur($objetProducteur);
if($objetUtilisateur !=null){
$objetHistoriqueAction->setUtilisateur($objetUtilisateur);
$objetHistoriqueAction->setAbonne($objetUtilisateur->getAbonne());
}
$objetHistoriqueAction->setInfoTable($info);
$objetHistoriqueAction->setOperation($operation);
$objetHistoriqueAction->setCodeGenere($codeGenere);
$objetHistoriqueAction->setDonnee($donnee);
$objetHistoriqueAction->setTypePlateforme($plateforme);
$em->persist($objetHistoriqueAction);
$em->flush();
//var_dump($info);exit;
return true;
}
public function addHistoriqueAgentAction($em, $info, $operation, $codeGenere, $utilisateur, $producteurId, $plateforme, $donnee,$agentId, UtilisateurRepository $utilisateurRepository, $fournisseurRepository) {
//Objet Utilisateur
$objetUtilisateur = $utilisateurRepository->find($utilisateur);
$objetFournisseur = $fournisseurRepository->find($agentId);
//Objet Producteur
//$objetProducteur = $em->getRepository($this->prodBundle . 'Producteur')->find($producteurId);
$objetHistoriqueAction = new HistoriqueAction();
//$objetHistoriqueAction->setProducteur($objetProducteur);
if($objetUtilisateur !=null){
$objetHistoriqueAction->setUtilisateur($objetUtilisateur);
$objetHistoriqueAction->setAbonne($objetUtilisateur->getAbonne());
}
$objetHistoriqueAction->setInfoTable($info);
$objetHistoriqueAction->setOperation($operation);
$objetHistoriqueAction->setFournisseur($objetFournisseur);
$objetHistoriqueAction->setCodeGenere($codeGenere);
$objetHistoriqueAction->setDonnee($donnee);
$objetHistoriqueAction->setTypePlateforme($plateforme);
$em->persist($objetHistoriqueAction);
$em->flush();
//var_dump($info);exit;
return true;
}
public function getHistoriqueAction(EntityManager $em,$abonneId,$etat, $datesych) {
try {
$sqlrech = 'SELECT info_table as infoTable, operation, codeGenere, donnee FROM historique_action WHERE abonne_id =:abonneId and date_publication >=:datesych and operation = 1 '; //
// $sqlrech .= ' SELECT id FROM historique_action_utilisateur WHERE 1=1 )';
$stmt = $em->getConnection()->prepare($sqlrech);
$stmt->bindValue(':abonneId', $abonneId, PDO::PARAM_INT);
$stmt->bindValue(':datesych', $datesych, PDO::PARAM_STR);
$stmt->execute();
$res = $stmt->executeQuery()->fetchAllAssociative(); //$stmt->fetchAll(PDO::FETCH_ASSOC);
} catch (\Symfony\Component\Form\Exception\Exception $e) {
$stmt = null;
$res = null;
var_dump($e->getMessage());
}
return $res;
}
public function getHistoriqueAgentAction(EntityManager $em,$abonneId,$etat, $datesych) {
try {
$sqlrech = 'SELECT info_table as infoTable, operation, codeGenere, donnee FROM historique_action WHERE abonne_id =:abonneId and date_publication >=:datesych and operation = 2 '; //
// $sqlrech .= ' SELECT id FROM historique_action_utilisateur WHERE 1=1 )';
$stmt = $em->getConnection()->prepare($sqlrech);
$stmt->bindValue(':abonneId', $abonneId, PDO::PARAM_INT);
$stmt->bindValue(':datesych', $datesych, PDO::PARAM_STR);
$stmt->execute();
$res = $stmt->executeQuery()->fetchAllAssociative(); //$stmt->fetchAll(PDO::FETCH_ASSOC);
} catch (\Symfony\Component\Form\Exception\Exception $e) {
$stmt = null;
$res = null;
var_dump($e->getMessage());
}
return $res;
}
public function genereCodeBarre($em, $nombre, $conditionnementId){
$tab = array();
for($i = 0;$i<=$nombre;$i++){
$tab[$i] = uniqid()."_".$i ;
// Inserer les informations dans la table
$unCodeBarre = new CodeBarre();
$unCodeBarre->setCodeBarre($tab[$i]);
$unCodeBarre->setUrlCodeBarre($tab[$i]);
if($conditionnementId != 0){
$unCodeBarre->setConditionnement($em->getRepository($this->stockBundle . 'Conditionnement')->find($conditionnementId));
}
$em->persist($unCodeBarre);
$em->flush();
}
return $tab ;
}
public function getAbonne(EntityManager $em, $abonneId, AbonneRepository $abonne) {
return $abonne->find($abonneId);
}
public function initialiserClientTableCommande(EntityManager $em, $commandeId = 0) {
try {
$sqlrech = ' UPDATE commande set client_id = null, table_mange_id = null where id =:commandeId ';
// var_dump($sqlrech, $idProduit);exit;
$stmt = $em->getConnection()->prepare($sqlrech);
$stmt->bindValue(':commandeId', $commandeId, PDO::PARAM_INT);
$stmt->execute();
} catch (\Symfony\Component\Form\Exception\Exception $e) {
$stmt = null;
$res = null;
var_dump($e->getMessage());
}
return 1;
}
/**
* Methode s'occupant de copier les commandes en attente vers les commandes validees .
*
* @author armand.tevi@gmail.com
* @copyright ADMIN 2015
*
* @version 1
*
* @return twig d'ajout d'un abonne ajouterFournisseur.html.twig
*/
protected function validateLigneCommandeInterne($em, $codeVente, $objetInfoLivrer, $objetCommande, $objetProduit, $objetPrixRigueur, $quantite, $idLigneCommande = 0,
$ligneCommandeRepository, $livrerRepository) {
$em->getConnection()->beginTransaction();
//(
try {
//var_dump($objetPrixRigueur->getInfoPrixRigueur(), $quantite);exit;
$montant=0;
if($objetPrixRigueur != null){
$prix = $objetPrixRigueur->getInfoPrixRigueur();
$montant = (int)$prix * $quantite;
}
// $prix = $objetPrixRigueur->getInfoPrixRigueur();
//$montant = (int)$prix * $quantite;
$uneLigneCommande= $ligneCommandeRepository->find($idLigneCommande);
if($uneLigneCommande==null){
$uneLigneCommande = new LigneCommande();
$quantite = $quantite * $objetProduit->getQuantiteDetail();
$uneLigneCommande->setAnnule(false);
$uneLigneCommande->setEtatLigneCommande(1);
$uneLigneCommande->setProduit($objetProduit);
$uneLigneCommande->setFournisseur($objetCommande->getFournisseur());
$uneLigneCommande->setMontantAutreTaxe($montant);
$uneLigneCommande->setMontantHt($montant);
$uneLigneCommande->setQuantite($quantite);
$uneLigneCommande->setQuantiteLivre($quantite);
if($objetPrixRigueur != null)
$uneLigneCommande->setPrixrigueur($objetPrixRigueur);
$uneLigneCommande->setAbonne($objetCommande->getUtilisateur()->getAbonne());
$uneLigneCommande->setQuantiteReste(0);
$uneLigneCommande->setCodeGenere("L_".rand());
$uneLigneCommande->setTauxTva(0);
$uneLigneCommande->setCommande($objetCommande);
$em->persist($uneLigneCommande);
$em->flush();
}
$uneLivrer= $livrerRepository->findOneBy(['lignecommande'=>$uneLigneCommande]);
if($uneLivrer == null){
$uneLivrer = new Livrer();
}
$uneLivrer->setDateLivraison(new \DateTime());
$uneLivrer->setEtatLivraison(1);
$uneLivrer->setLignecommande($uneLigneCommande);
$uneLivrer->setNbreLivre($quantite);
//$uneLivrer->setAbonne($objetCommande->getUtilisateur()->getAbonne());
$uneLigneCommande->setQuantiteLivre($quantite);
$uneLigneCommande->setQuantiteReste(0);
//$uneLigneCommande->setEtatLigneCommande(2);
$objetCommande->setEtatCommande(2);
$uneLivrer->setNbreReste(0);
$uneLivrer->setNombreRestantLivrer(0);
if($objetInfoLivrer!=null){
$uneLivrer->setInfoLivrer($objetInfoLivrer);
$uneLivrer->setRefBonLivraison($objetInfoLivrer->getRefBonLivraison());
$uneLivrer->setRefBonReception($objetInfoLivrer->getRefBonLivraison());
}else{
$uneLivrer->setRefBonLivraison($codeVente);
$uneLivrer->setRefBonReception($codeVente);
}
$uneLivrer->setPrixrigueur($objetPrixRigueur);
$em->persist($uneLigneCommande);
$em->persist($uneLivrer);
$em->flush();
$em->getConnection()->commit();
} catch (\Exception $e) {
$em->getConnection()->rollback();
$em->close();
throw $e;
}
}
/**
* Methode s'occupant de copier les commandes en attente vers les commandes validees .
*
* @author armand.tevi@gmail.com
* @copyright ADMIN 2015
*
* @version 1
*
* @return twig d'ajout d'un abonne ajouterFournisseur.html.twig
*/
protected function saveCommande($em, $codeCommande, $montant, $objetClient, $objetutilisateur) {
$objetCommande = new Commande();
$objetCommande->setAnnule(FALSE);
$objetCommande->setCodeCommande($codeCommande);
$objetCommande->setDescriptionCommande("Reception mobile");
$objetCommande->setEtatCommande(1);
$objetCommande->setRefBonCommande($codeCommande);
$objetCommande->setCodeGenere($codeCommande);
$objetCommande->setTauxEchange(0);
$objetCommande->setDatePublication(new \DateTime());
$objetCommande->setMontantResteCommande(0);
$objetCommande->setTypeCommande(3);
$objetCommande->setUtilisateur($objetutilisateur);
$objetCommande->setSiCredit(0);
if($objetutilisateur != null)
$objetCommande->setAbonne($objetutilisateur->getAbonne());
$objetCommande->setMontantCommande($montant);
if($objetClient !=null){
$objetCommande->setUtilisateur($objetClient->getUtilisateur());
if($objetClient->getUtilisateur() !=null ){
if($objetClient->getCaisse() != null)
$objetCommande->setCaisse($objetClient->getCaisse());
else
$objetCommande->setAbonne($objetClient->getUtilisateur()->getAbonne());
}
}
$em->persist($objetCommande);
$em->flush();
return $objetCommande;
}
/**
* Methode s'occupant de copier les commandes en attente vers les commandes validees .
*
* @author armand.tevi@gmail.com
* @copyright ADMIN 2015
*
* @version 1
*
* @return twig d'ajout d'un abonne ajouterFournisseur.html.twig
*/
protected function saveLivraison($em, $objetCommande, $objetClient,$infoLivrerRepository){
$uneInfoLivraison = $infoLivrerRepository->findOneBy(['commande'=>$objetCommande]);
if($uneInfoLivraison == null){
$uneInfoLivraison = new InfoLivrer();
$uneInfoLivraison->setCommande($objetCommande);
$uneInfoLivraison->setRefBonLivraison("L".$objetCommande->getRefBonCommande());
$uneInfoLivraison->setRefBonReception("L".$objetCommande->getRefBonCommande());
$uneInfoLivraison->setCodeGenere("L".$objetCommande->getRefBonCommande());
$uneInfoLivraison->setEtatInfoLivrer(1);
if($objetCommande->getFournisseur()!=NULL){
$uneInfoLivraison->setFournisseur($objetCommande->getFournisseur());
}
$uneInfoLivraison->setNbreTotalLivre(0);
$uneInfoLivraison->setNbreSaisie(0);
$uneInfoLivraison->setAbonne($objetCommande->getAbonne());
if($objetClient!=null ){
if($objetClient->getUtilisateur() !=null ){
if($objetClient->getCaisse() != null)
$uneInfoLivraison->setCaisse($objetClient->getCaisse());
//else
}
}
$uneInfoLivraison->setAbonne($objetCommande->getAbonne());
if($objetCommande->getSurfaceannee()!=null)
$uneInfoLivraison->setSurfaceannee($objetCommande->getSurfaceannee());
$em->persist($uneInfoLivraison);
$em->flush();
}
return $uneInfoLivraison;
}
/**
* Methode s'occupant de copier les commandes en attente vers les commandes validees .
*
* @author armand.tevi@gmail.com
* @copyright ADMIN 2015
*
* @version 1
*
* @return twig d'ajout d'un abonne ajouterFournisseur.html.twig
*/
protected function saveClient($em, $nom, $prenoms, $cni, $telephone, $codeGenere, $idVille, $sexe, $id,$password="", $utilisateurRepository, $villeRepository, $clientRepository, $prixRigueurRepository, $etatClientRepository) {
$objetVille= $villeRepository->find($idVille);
$objetAgent=$utilisateurRepository->find($id);
$donnee = $nom ."#".$prenoms ."#".$cni ."#"."0"."#".$telephone ."#".$codeGenere ."#".$idVille . "#".$sexe ;
$d = new \DateTime();
$an = $d->format('Y');
$m = $d->format('m');
$j = $d->format('d');
$testObjetUtilisateur= $utilisateurRepository->findOneBy(['username'=>$telephone, 'abonne'=>$objetAgent->getAbonne()]);
$objetClient= $clientRepository->findOneBy(['utilisateur'=>$testObjetUtilisateur]);
if( $testObjetUtilisateur == null){
$objetUtilisateur= $utilisateurRepository->findOneBy(['codeGenere'=>$codeGenere]);
if($objetUtilisateur == null)
$objetUtilisateur= new Utilisateur();
//Enregestre ces données comme livraison
$objetUtilisateur->setNom($nom);
$objetUtilisateur->setPrenoms($prenoms);
$objetUtilisateur->setCni($cni);
$objetUtilisateur->setSexe($sexe);
// $objetUtilisateur->setVille($objetVille);
if($objetVille !=null ){
$objetUtilisateur->setVille($objetVille);
}
$objetUtilisateur->setTel1($telephone);
$objetUtilisateur->setCodeGenere($codeGenere);
$objetUtilisateur->setAbonne($objetAgent->getAbonne());
if($password != ""){
$objetUtilisateur->setPassword($password);
$objetUtilisateur->setCPassword($password);
}
if($telephone != ""){
$objetUtilisateur->setUsername($telephone);
$objetUtilisateur->setProfil($objetAgent->getProfil());
}
$em->persist($objetUtilisateur);
$em->flush($objetUtilisateur);
if($objetClient == null)
$objetClient= new Client();
//Generer un code pour les producteurs
$objetClient->setCodeClient($codeGenere);
$objetClient->setCodeGenere($codeGenere);
if($objetVille !=null ){
$objetClient->setVille($objetVille);
}
$objetClient->setUtilisateur($objetUtilisateur);
$objetClient->setAbonne($objetAgent->getAbonne());
$em->persist($objetClient);
$em->flush($objetClient);
if($objetUtilisateur == null){
//Enregistrer dans la prix lie à la caisse
$unCaisseClient = new CaisseClient();
$unCaisseClient->setCaisse($objetUtilisateur->getCaisse());
$unCaisseClient->setClient($objetClient) ;
$unCaisseClient->setAbonne($objetUtilisateur->getAbonne());
$em->persist($unCaisseClient);
}
// if($password !=""){
$objetListePrix= $prixRigueurRepository->findBy(['etatPrixRigueur'=>1, 'abonne'=>$objetAgent->getAbonne()]);
foreach($objetListePrix as $objetPrix){
$unClientPrix = new ClientPrix();
$unClientPrix->setPrixrigueur($objetPrix);
$unClientPrix->setClient($objetClient) ;
$unClientPrix->setInfoPrix($objetPrix->getInfoPrixRigueur()) ;
$em->persist($unClientPrix);
}
$em->flush();
//Enregister le type de client
$objectEtatClient = $etatClientRepository->find($etat=1);
$this->saveEtatClient( $em, $objectEtatClient, $objetClient);
//}
$this->addHistoriqueAction($em, "ClientAdd", 1, $codeGenere, 1, $objetClient->getId(), 1, $donnee, $utilisateurRepository);
$tabInfomation["etat"]=true;
$tabInfomation["client"]=$objetClient;
$tabInfomation["codeGenere"]=$codeGenere;
$tabInfomation["message"]='Compte crée avec succés !';
}else {
$tabInfomation["etat"]=false;
$tabInfomation["client"]=$objetClient;
$tabInfomation["codeGenere"]=$codeGenere;
$tabInfomation["message"]='Un compte est déjà crée avec ce numéro !';
}
return $tabInfomation ;
}
/**
* Methode s'occupant de copier les commandes en attente vers les commandes validees .
*
* @author armand.tevi@gmail.com
* @copyright ADMIN 2015
*
* @version 1
*
* @return twig d'ajout d'un abonne ajouterFournisseur.html.twig
*/
protected function saveApiClient($em, $nom, $prenoms, $cni, $telephone, $codeGenere, $idVille, $sexe, $id,$password="", $utilisateurRepository, $villeRepository, $clientRepository, $prixRigueurRepository, $etatClientRepository) {
$objetVille= $villeRepository->find($idVille);
$objetAgent=$utilisateurRepository->find($id);
$donnee = $nom ."#".$prenoms ."#".$cni ."#"."0"."#".$telephone ."#".$codeGenere ."#".$idVille . "#".$sexe ;
$d = new \DateTime();
$an = $d->format('Y');
$m = $d->format('m');
$j = $d->format('d');
$testObjetUtilisateur= $utilisateurRepository->findOneBy(['username'=>$telephone, 'abonne'=>$objetAgent->getAbonne()]);
$objetClient= $clientRepository->findOneBy(['utilisateur'=>$testObjetUtilisateur]);
if( $testObjetUtilisateur == null){
$objetUtilisateur= $utilisateurRepository->findOneBy(['codeGenere'=>$codeGenere]);
if($objetUtilisateur == null)
$objetUtilisateur= new Utilisateur();
//Enregestre ces données comme livraison
$objetUtilisateur->setNom($nom);
$objetUtilisateur->setPrenoms($prenoms);
$objetUtilisateur->setCni($cni);
$objetUtilisateur->setSexe($sexe);
// $objetUtilisateur->setVille($objetVille);
if($objetVille !=null ){
$objetUtilisateur->setVille($objetVille);
}
$objetUtilisateur->setTel1($telephone);
$objetUtilisateur->setCodeGenere($codeGenere);
$objetUtilisateur->setAbonne($objetAgent->getAbonne());
if($password != ""){
$objetUtilisateur->setPassword($password);
$objetUtilisateur->setCPassword($password);
}
if($telephone != ""){
$objetUtilisateur->setUsername($telephone);
$objetUtilisateur->setProfil($objetAgent->getProfil());
}
$em->persist($objetUtilisateur);
$em->flush($objetUtilisateur);
if($objetClient == null)
$objetClient= new Client();
//Generer un code pour les producteurs
$objetClient->setCodeClient($codeGenere);
$objetClient->setCodeGenere($codeGenere);
if($objetVille !=null ){
$objetClient->setVille($objetVille);
}
$objetClient->setUtilisateur($objetUtilisateur);
$objetClient->setAbonne($objetAgent->getAbonne());
$em->persist($objetClient);
$em->flush($objetClient);
if($objetUtilisateur == null){
//Enregistrer dans la prix lie à la caisse
$unCaisseClient = new CaisseClient();
$unCaisseClient->setCaisse($objetUtilisateur->getCaisse());
$unCaisseClient->setClient($objetClient) ;
$unCaisseClient->setAbonne($objetUtilisateur->getAbonne());
$em->persist($unCaisseClient);
}
// if($password !=""){
$objetListePrix= $prixRigueurRepository->findBy(['etatPrixRigueur'=>1, 'abonne'=>$objetAgent->getAbonne()]);
foreach($objetListePrix as $objetPrix){
$unClientPrix = new ClientPrix();
$unClientPrix->setPrixrigueur($objetPrix);
$unClientPrix->setClient($objetClient) ;
$unClientPrix->setInfoPrix($objetPrix->getInfoPrixRigueur()) ;
$em->persist($unClientPrix);
}
$em->flush();
//Enregister le type de client
$objectEtatClient = $etatClientRepository->find($etat=1);
$this->saveEtatClient( $em, $objectEtatClient, $objetClient);
//}
$this->addHistoriqueAction($em, "ClientAdd", 1, $codeGenere, 1, $objetClient->getId(), 1, $donnee, $utilisateurRepository);
$tabInfomation["etat"]=true;
//$tabInfomation["client"]=$objetClient;
$tabInfomation["codeGenere"]=$codeGenere;
$tabInfomation["message"]='Compte crée avec succés !';
}else {
$tabInfomation["etat"]=false;
//$tabInfomation["client"]=$objetClient;
$tabInfomation["codeGenere"]=$codeGenere;
$tabInfomation["message"]='Un compte est déjà crée avec ce numéro !';
}
return $tabInfomation ;
}
protected function saveEtatClient($em, $objectEtatClient, $objetClient){
$objetEtatInfoClient = new EtatInfoClient();
$objetEtatInfoClient->setEtatclient($objectEtatClient);
$objetEtatInfoClient->setClient($objetClient) ;
$em->persist($objetEtatInfoClient);
return $objetEtatInfoClient;
}
protected function saveEtatInfoOpportuniteClient($em, $objetEtatOpportunite, $objetOpportunite){
$objetEtatInfoOpportunite= new EtatInfoOpportunite();
$objetEtatInfoOpportunite->setOpportunite($objetOpportunite);
$objetEtatInfoOpportunite->setEtatopportunite($objetEtatOpportunite) ;
$em->persist($objetEtatInfoOpportunite);
return $objetEtatInfoOpportunite;
}
protected function saveOpportuniteClient($em, $objetClient, $objetAbonne, $codeCommande, $dateJour){
$objetOpportunite= new Opportunite();
$objetOpportunite->setClient($objetClient);
$objetOpportunite->setAbonne($objetAbonne) ;
if($objetClient != null)
$objetOpportunite->setTitreOpportunite("commande du client ".$objetClient->getUtilisateur()->getNom()." <br/> Num Commnande ". $codeCommande ." <br/> Date Commnande ".$dateJour->format("d-m-Y") ) ;
else
$objetOpportunite->setTitreOpportunite("commande du client <br/> Num Commnande ". $codeCommande ." <br/> Date Commnande ".$dateJour->format("d-m-Y") ) ;
$em->persist($objetOpportunite);
return $objetOpportunite;
}
/**
* Methode s'occupant de copier les commandes en attente vers les commandes validees .
*
* @author armand.tevi@gmail.com
* @copyright ADMIN 2015
*
* @version 1
*
* @return twig d'ajout d'un abonne ajouterFournisseur.html.twig
*/
protected function updateClient($em, $nom, $prenoms, $cni, $telephone, $codeGenere, $idVille, $sexe, $id,$password="", $email, $adresse, $utilisateurRepository, $villeRepository, $clientRepository, $prixRigueurRepository) {
$objetVille= $em->getRepository($this->stockBundle . 'Ville')->find($idVille);
$objetAgent= $em->getRepository($this->userBundle . 'Utilisateur')->find($id);
$donnee = $nom ."#".$prenoms ."#".$cni ."#"."0"."#".$telephone ."#".$codeGenere ."#".$idVille . "#".$sexe ;
//$groupement
// $objetProduit= $em->getRepository($this->stockBundle . 'Produit')->find(1);
//$objetAnneeCampagne = $em->getRepository($this->prodBundle . 'AnneeCampagne')->findOneBy(array("produit"=>$objetProduit,"etatAnneeCampagne"=>1 )) ;
///$ligneCommande = $em->getRepository($this->stockBundle . 'Commande')->getLigneCommandeOperation($producteur_id, $anneecampagne_id);
$d = new \DateTime();
$an = $d->format('Y');
$m = $d->format('m');
$j = $d->format('d');
//$testObjetUtilisateur= $em->getRepository($this->userBundle . 'Utilisateur')->findOneBy(['username'=>$telephone, 'abonne'=>$objetAgent->getAbonne()]);
//if( $testObjetUtilisateur == null){
$objetUtilisateur= $utilisateurRepository->findOneBy(['codeGenere'=>$codeGenere]);
if($objetUtilisateur == null)
$objetUtilisateur= new Utilisateur();
//Enregestre ces données comme livraison
$objetUtilisateur->setNom($nom);
$objetUtilisateur->setPrenoms($prenoms);
$objetUtilisateur->setCni($cni);
$objetUtilisateur->setSexe($sexe);
$objetUtilisateur->setEmail($email);
$objetUtilisateur->setAdresse($adresse);
// $objetUtilisateur->setVille($objetVille);
if($objetVille !=null ){
$objetUtilisateur->setVille($objetVille);
}
$objetUtilisateur->setTel1($telephone);
$objetUtilisateur->setCodeGenere($codeGenere);
$objetUtilisateur->setAbonne($objetAgent->getAbonne());
if($password != ""){
$objetUtilisateur->setPassword(md5($password));
$objetUtilisateur->setCPassword(md5($password));
}
if($telephone != ""){
$objetUtilisateur->setUsername($telephone);
$objetUtilisateur->setProfil($objetAgent->getProfil());
}
$em->persist($objetUtilisateur);
$em->flush($objetUtilisateur);
$objetClient= $clientRepository->findOneBy(['codeGenere'=>$codeGenere]);
if($objetClient == null)
$objetClient= new Client();
//Generer un code pour les producteurs
$objetClient->setCodeClient($codeGenere);
$objetClient->setCodeGenere($codeGenere);
if($objetVille !=null ){
$objetClient->setVille($objetVille);
}
$objetClient->setUtilisateur($objetUtilisateur);
$objetClient->setAbonne($objetAgent->getAbonne());
$em->persist($objetClient);
$em->flush($objetClient);
if($objetUtilisateur == null){
//Enregistrer dans la prix lie à la caisse
$unCaisseClient = new CaisseClient();
$unCaisseClient->setCaisse($objetUtilisateur->getCaisse());
$unCaisseClient->setClient($objetClient) ;
$unCaisseClient->setAbonne($objetUtilisateur->getAbonne());
$em->persist($unCaisseClient);
}
$this->addHistoriqueAction($em, "ClientAdd", 1, $codeGenere, 1, $objetClient->getId(), 1, $donnee, $utilisateurRepository);
$tabInfomation["etat"]=true;
$tabInfomation["message"]='Compte mise à jour avec succes !';
/* }else {
$tabInfomation["etat"]=false;
$tabInfomation["message"]='Un compte est déjà crée avec ce numéro !';
} */
return $tabInfomation ;
}
/**
* Methode s'occupant de copier les commandes en attente vers les commandes validees .
*
* @author armand.tevi@gmail.com
* @copyright ADMIN 2015
*
* @version 1
*
* @return twig d'ajout d'un abonne ajouterFournisseur.html.twig
*/
protected function saveLigneCommande($em, $codeVente, $objetInfoLivrer, $objetCommande, $objetProduit, $objetPrixRigueur, $quantite, $idLigneCommande = 0, $etat=1, $ligneCommandeRepository) {
$em->getConnection()->beginTransaction();
//(
try {
$montant =0;
if($objetPrixRigueur != null){
$prix = $objetPrixRigueur->getInfoPrixRigueur();
$montant = (int)$prix * $quantite;
}
$objetLigneCommande =$ligneCommandeRepository->findOneBy(array("codeGenere"=>$codeVente));
$siNouveau = 0;
if($objetLigneCommande ==null){
$siNouveau = 1;
$objetLigneCommande = new LigneCommande();
}
$objetLigneCommande->setAnnule(false);
$objetLigneCommande->setEtatLigneCommande($etat);
$objetLigneCommande->setProduit($objetProduit);
$objetLigneCommande->setMontantAutreTaxe(0);
$objetLigneCommande->setMontantHt($montant);
$objetLigneCommande->setQuantite($quantite);
$objetLigneCommande->setQuantiteLivre($quantite);
$objetLigneCommande->setCodeGenere($codeVente);
if($objetPrixRigueur != null)
$objetLigneCommande->setPrixrigueur($objetPrixRigueur);
$objetLigneCommande->setQuantiteReste(0);
// $objetLigneCommande->setCaisse($objetUtilisateur->getCaisse());
$objetLigneCommande->setTypeOperation($objetCommande->getTypeCommande());
$objetLigneCommande->setCommande($objetCommande);
// if($objetUtilisateur !=null ){
$objetLigneCommande->setAbonne($objetCommande->getAbonne());
$objetLigneCommande->setTypeLigneCommande(1);
// $montantCommande = (int) $montantCommande + (int) $montant;
$em->persist($objetLigneCommande);
$em->flush();
$em->getConnection()->commit();
} catch (\Exception $e) {
$em->getConnection()->rollback();
$em->close();
throw $e;
}
return $objetLigneCommande;
}
/**
* Methode s'occupant de copier les commandes en attente vers les commandes validees .
*
* @author armand.tevi@gmail.com
* @copyright ADMIN 2015
*
* @version 1
*
* @return twig d'ajout d'un abonne ajouterFournisseur.html.twig
*/
protected function saveLigneCommandeClient($em, $codeVente, $objetInfoLivrer, $objetCommande, $objetProduit, $objetPrixRigueur, $quantite, $idLigneCommande = 0, $etat=1) {
$em->getConnection()->beginTransaction();
//(
try {
$montant =0;
if($objetPrixRigueur != null){
$prix = $objetPrixRigueur->getInfoPrixRigueur();
$montant = (int)$prix * $quantite;
}
$objetLigneCommande =$this->LigneCommandeClient->findOneBy(array("codeGenere"=>$codeVente));
$siNouveau = 0;
if($objetLigneCommande ==null){
$siNouveau = 1;
$objetLigneCommande = new LigneCommandeClient();
}
$objetLigneCommande->setAnnule(false);
$objetLigneCommande->setEtatLigneCommande($etat);
$objetLigneCommande->setProduit($objetProduit);
$objetLigneCommande->setMontantAutreTaxe(0);
$objetLigneCommande->setMontantHt($montant);
$objetLigneCommande->setQuantite($quantite);
$objetLigneCommande->setQuantiteLivre($quantite);
$objetLigneCommande->setCodeGenere($codeVente);
if($objetPrixRigueur != null)
$objetLigneCommande->setPrixrigueur($objetPrixRigueur);
$objetLigneCommande->setQuantiteReste(0);
// $objetLigneCommande->setCaisse($objetUtilisateur->getCaisse());
$objetLigneCommande->setTypeOperation($objetCommande->getTypeCommande());
$objetLigneCommande->setCommandeclient( $objetCommande);
// if($objetUtilisateur !=null ){
$objetLigneCommande->setAbonne($objetCommande->getAbonne());
$objetLigneCommande->setTypeLigneCommande(1);
// $montantCommande = (int) $montantCommande + (int) $montant;
$em->persist($objetLigneCommande);
$em->flush();
$em->getConnection()->commit();
} catch (\Exception $e) {
$em->getConnection()->rollback();
$em->close();
throw $e;
}
return $objetLigneCommande;
}
protected function savePrix($em, $prix, $objetProduit, $typePrix, $objetUtilisateur, $prixRigueurRepository, $cibleRepository, $caracteristiquePrixRepository) {
$objetPrix = $prixRigueurRepository->findOneBy(['infoPrixRigueur'=>$prix, 'produit'=>$objetProduit, 'typePrixRigueur'=> $typePrix]);
if($objetPrix == null){
$objetCible = $cibleRepository->findOneBy(['etat'=>3, 'abonne'=>$objetUtilisateur->getAbonne()]);
$objetCarat = $caracteristiquePrixRepository->findOneBy(['etat'=>3, 'abonne'=>$objetUtilisateur->getAbonne()]);
$objetPrix = new PrixRigueur();
if($objetCible!= null)
$objetPrix->setCible($objetCible );
if($objetCarat != null)
$objetPrix->setCaracteristiquePrix($objetCarat);
$objetPrix->setProduit($objetProduit);
$objetPrix->setInfoPrixRigueur($prix);
$objetPrix->setTypePrixRigueur(2);
$objetPrix->setEtatPrixRigueur(1);
$objetPrix->setAbonne($objetUtilisateur->getAbonne());
$em->persist($objetPrix);
$em->flush();
//Enregistrer dans la prix lie à la caisse
if($objetUtilisateur->getCaisse()!=null){
$unCaissePrix = new CaissePrix();
$unCaissePrix->setCaisse($objetUtilisateur->getCaisse());
$unCaissePrix->setPrixrigueur($objetPrix) ;
$unCaissePrix->setAbonne($objetUtilisateur->getAbonne());
$em->persist($unCaissePrix);
}
}
return $objetPrix;
}
protected function saveSurfaceAnneeFormulaire($em, $surfaceAnnee, $producteurId, $produitId, $objetAnneeCampagne, $codeGenere, $utilId, $producteurRepository, $produitRepository, $utilisateurRepository, $codeExploitation=0, $typeParcelle=0) {
$objetProducteur = $producteurRepository->find($producteurId);
if($produitId !=0)
$objetProduit =$produitRepository->find($produitId);
$parCodeGenere = $codeGenere;
$surfaceAnnee->setAnneecampagne($objetAnneeCampagne);
$surfaceAnnee->setProducteur($objetProducteur);
$surfaceAnnee->setProduit($objetProduit);
$surfaceAnnee->setCodeGenere($codeGenere);
$surfaceAnnee->setCodeSurface($codeGenere);
$surfaceAnnee->setProdCodeGenere($objetProducteur->getCodeGenere());
$em->persist($surfaceAnnee);
$em->flush();
if($surfaceAnnee->getSurfaceannee() != null)
$parCodeGenere = $surfaceAnnee->getSurfaceannee()->getCodeGenere();
$donnee = $surfaceAnnee->getSuperficie() ."#".$objetProducteur->getCodeGenere() ."#".$codeGenere ."#". $parCodeGenere ."#1#".$produitId ."#0#".$utilId."#".$codeExploitation."#".$typeParcelle."#0#0";
$this->addHistoriqueAction($em, 'ProducteurIntention', 1, $codeGenere, $utilId, $objetProducteur->getId(), 1, $donnee, $utilisateurRepository);
return $surfaceAnnee;
}
protected function saveTacheFormulaire($em, $titre, $observation, $datedeb, $datefin, $heuredeb, $heurefin, $idOperation,$tabIdUtil, $utilId, $type,
$utilisateurRepository, $anneCampagneRepository, $surfaceAnneeRepository, $planteRepository, $projetRepository, $producteurRepository, $tacheProduitEtapeCroissanceRepository) {
$objetUtilisateur = $utilisateurRepository->find((int)$utilId);
//$idProjet =0;
if($type == 1){
$objetSaison = $anneCampagneRepository->find((int)$idOperation);
}
else if($type == 2){
$objetSurfaceAnnee = $surfaceAnneeRepository->findOneBy(["codeGenere"=>$idOperation]);
}
else if($type == 3){
$objetPlante= $planteRepository->findOneBy(["codeGenere"=>$idOperation]);
}
else if($type == 4){
$objetProducteur= $producteurRepository->findOneBy(["codeGenere"=>$idOperation]);
}
else if($type == 5){
$objeTacheProduitEtapeCroissance= $tacheProduitEtapeCroissanceRepository->find($idOperation);
}else{
$unProjet = $projetRepository->find((int)$idOperation);
}
//$unBeneficiaire = $em->getRepository($this->assoBundle . 'Beneficiaire')->find((int) $idBeneficiaire);
//$type = $request->request->get("type");
$uneActivite = new Activite();
//AnneeCampagne
if($type != 5)
$uneActivite->setDescriptionActivite($observation);
else
$uneActivite->setSurfaceAnnee($observation);
//$uneActivite->setMotif($motif);
//$uneActivite->setCat($cat);
$uneActivite->setTitreActivite($titre);
$uneActivite->setDateDebut(new \DateTime($datedeb." ".$heuredeb));
$uneActivite->setDateFin(new \DateTime($datefin." ".$heurefin));
if($type == 5){
$uneActivite->setSiAgricole(1);
if($utilId == 1 )
$uneActivite->setSiRecolte(1);
}
//$objetPlante->setAbonne($objetUtilisateur->getAbonne());
//$uneActivite->setBeneficiaire($descriptionActivite);
//$uneActivite->setVille($uneVille);
if($type == 1){
$uneActivite->setSaison($objetSaison);
} else if($type == 2){
$uneActivite->setSurfaceAnnee($objetSurfaceAnnee);
} else if($type == 3){
$uneActivite->setPlante($objetPlante);
} else if($type == 4){
$uneActivite->setProducteur($objetProducteur);
//var_dump(1);exit;
} else if($type == 5){
$uneActivite->setTacheproduitetapecroissance($objeTacheProduitEtapeCroissance);
//var_dump(1);exit;
}else{
$uneActivite->setProjet($unProjet);
}
$uneActivite->setTypeActivite($type);
$uneActivite->setAbonne($objetUtilisateur->getAbonne());
$em->persist($uneActivite);
$tabIdUtil = explode('|', $tabIdUtil);
$i = 0;
foreach($tabIdUtil as $utilId){
if($utilId !=""){
$objetUtilisateur= $utilisateurRepository->find($utilId);
$concerne = new Concerne();
$concerne->setActivite($uneActivite);
// $concerne->setBeneficiaire($unBeneficiaire);
$concerne->setUtilisateur($objetUtilisateur);
//$concerne->setObservation($observation);
//$em->persist($uneActivite);
$em->persist($concerne);
++$i;
}
}
$em->flush();
}
public function getActiviteSuivant(EntityManager $em, $objetProduitEtapeCroissance, $objetTacheProduitEtapeCroissance, $produitEtapeCroissanceRepository, $tacheProduitEtapeCroissanceRepository, $objetSurfaceAnnee) {
$i=1;
do {
$ordreSuivant = $objetProduitEtapeCroissance->getOrdre() + $i;
$siStop = false ;
$objetProduitEtapeCroissanceSuivant = $produitEtapeCroissanceRepository->findOneBy(['produit'=>$objetProduitEtapeCroissance->getProduit(), "ordre"=>$ordreSuivant]);
if($objetProduitEtapeCroissanceSuivant != null){
$objetTacheProduitEtapeCroissance = $tacheProduitEtapeCroissanceRepository->findOneBy(['produitetapecroissance'=>$objetProduitEtapeCroissanceSuivant, 'siLastEtapeActivite'=>1]);
if($objetTacheProduitEtapeCroissance != null) {
$objetActivite= new Activite();
$objetActivite->setDescriptionActivite("Tache");
$objetActivite->setTypeActivite($objetTacheProduitEtapeCroissance->getActivite()->getTypeActivite());
$objetActivite->setTitreActivite($objetTacheProduitEtapeCroissance->getActivite()->getTitreActivite());
$periode = $objetProduitEtapeCroissance->getPeriodeEtapeCroissance();
$periodeSuivant = $objetProduitEtapeCroissance->getPeriodeEtapeCroissance() + 10;
if($i == 1){
$dateDebut = $objetTacheProduitEtapeCroissance->getDateDebut()->modify("+"+ $periode +" days");
$dateFin = $objetTacheProduitEtapeCroissance->getDateFin()->modify("+"+ $periodeSuivant +" days");
}else{
$dateDebut = $objetProduitEtapeCroissanceSuivant->getDateDebut()->modify("+"+ $periode +" days");
$dateFin = $objetProduitEtapeCroissanceSuivant->getDateFin()->modify("+"+ $periodeSuivant +" days");
}
$objetActivite->setDateDebut($dateDebut);
$objetActivite->setDateFin($dateFin);
$objetActivite->setTacheproduitetapecroissance($objetTacheProduitEtapeCroissance);
$objetActivite->setSurfaceannee($objetSurfaceAnnee);
$objetActivite->setProducteur($objetSurfaceAnnee->getProducteur());
$em->persist($objetActivite);
}
}
if($objetProduitEtapeCroissance ==null)
$siStop = true;
$objetProduitEtapeCroissance = $objetProduitEtapeCroissanceSuivant ;
++$i;
}while($siStop);
$em->flush();
return 1;
}
protected function saveVarieteTransformation($em, $unProduit, $objetProduit, $categorie, $objetAbonne, $siSemence=0) {
$unProduit->setProduit($objetProduit);
$unProduit->setCodeGenere($unProduit->getCodeProduit());
$unProduit->setDescriptionProduit($unProduit->getNomProduit());
$unProduit->setCategorie($categorie); //Produit transforme
if($siSemence == 1 ){
$unProduit->setSiSemence(1);
}else if( $siSemence == 2 ){
$unProduit->setSiAgricole(1);
}
$unProduit->setAbonne($objetAbonne);
$em->persist($unProduit);
$em->flush();
return $unProduit;
}
protected function saveProduitConditionne($em, $unProduit, $objetCarateristiqueProduit, $categorie, $objetAbonne, $siSemence=0) {
$unProduit->setCarateristiqueproduit($objetCarateristiqueProduit);
$unProduit->setCodeGenere($unProduit->getCodeProduit());
$unProduit->setDescriptionProduit($unProduit->getNomProduit());
$unProduit->setCategorie($categorie); //Produit transforme
if($siSemence == 1 ){
$unProduit->setSiSemence(1);
}else if( $siSemence == 2 ){
$unProduit->setSiAgricole(1);
}
$unProduit->setAbonne($objetAbonne);
$em->persist($unProduit);
$em->flush();
return $unProduit;
}
public function initialiserProduitInspection(EntityManager $em, $inspectionId = 0) {
try {
$sqlrech = ' UPDATE inspection_produit set etat_inspection_produit = 2 where inspection_id =:inspectionId ';
// var_dump($sqlrech, $idProduit);exit;
$stmt = $em->getConnection()->prepare($sqlrech);
$stmt->bindValue(':inspectionId', $inspectionId, PDO::PARAM_INT);
$stmt->execute();
} catch (\Symfony\Component\Form\Exception\Exception $e) {
$stmt = null;
$res = null;
var_dump($e->getMessage());
}
return 1;
}
public function initialiserOpportunite(EntityManager $em, $etatOpportuniteId = 0, $opportuniteId = 0) {
try {
$sqlrech = ' UPDATE etat_info_opportunite set etat_data_info_opportunite = 0 where etatopportunite_id =:etatOpportuniteId AND opportunite_id =:opportuniteId ';
// var_dump($sqlrech, $idProduit);exit;
$stmt = $em->getConnection()->prepare($sqlrech);
$stmt->bindValue(':etatOpportuniteId', $etatOpportuniteId, PDO::PARAM_INT);
$stmt->bindValue(':opportuniteId', $opportuniteId, PDO::PARAM_INT);
$stmt->execute();
} catch (\Symfony\Component\Form\Exception\Exception $e) {
$stmt = null;
$res = null;
var_dump($e->getMessage());
}
return 1;
}
public function initialiserProfilInspection(EntityManager $em, $inspectionId = 0) {
try {
$sqlrech = ' UPDATE inspection_profil set etat_inspection_profil = 2 where inspection_id =:inspectionId ';
// var_dump($sqlrech, $idProduit);exit;
$stmt = $em->getConnection()->prepare($sqlrech);
$stmt->bindValue(':inspectionId', $inspectionId, PDO::PARAM_INT);
$stmt->execute();
} catch (\Symfony\Component\Form\Exception\Exception $e) {
$stmt = null;
$res = null;
var_dump($e->getMessage());
}
return 1;
}
public function genereCodeProducteurVersionAnanas(EntityManager $em, $villageId, $groupementId, $anneeAdhesion, $zoneProducteur=0, $groupementRepository, $producteurGroupementRepository
,$villeRepository, $abonneVilleRepository) {
//var_dump($villageId, $groupementId, $anneeAdhesion);exit;
try {
$objetGroupement = $groupementRepository->find($groupementId);
$listeProducteurGroupement = $producteurGroupementRepository->findBy(['groupement'=>$objetGroupement]);
$rangProducteur = count($listeProducteurGroupement)+1;
if($rangProducteur<10)
$rangProducteur = "0".$rangProducteur;
$objetVillage= $villeRepository->find($villageId);
$codeVillage = substr($objetVillage->getNomVille(), 0, 3);
if($zoneProducteur != null )
$codeZone = substr($zoneProducteur->getNomVille(), 0, 2);
else
$codeZone ="";
$anneeAdhesion = substr($anneeAdhesion, 2, 2);
$criteriaAbonneVille = array('abonne' => $objetGroupement->getAbonne(), 'ville'=>$objetVillage);
$objetAbonneVille = $abonneVilleRepository->findOneBy($criteriaAbonneVille);
$objetPartenaire = $objetVillage;
if($objetAbonneVille !=null)
$etatVilleAbonne = $objetAbonneVille->getEtatAbonneVille();
else
$etatVilleAbonne = "";
//var_dump($codeVillage);exit;
/*if($objetVillage->getTypeVille() == 5){
$objetPartenaire = $objetVillage->getVille()->getVille()->getVille();
}else if($objetVillage->getTypeVille() == 4){
$objetPartenaire = $objetVillage->getVille()->getVille();
}else if($objetVillage->getTypeVille() == 3){
$objetPartenaire = $objetVillage->getVille();
}
if($zoneProducteur!=0)
$objetZoneProducteur = $zoneProducteur;
else
$objetZoneProducteur =$objetPartenaire->getVille();*/
//var_dump($objetPartenaire->getId(),$objetPartenaire->getTypeVille(),$objetPartenaire->getCodeVille());exit;
$codeProducteur = "F".$anneeAdhesion." ".$codeZone." ".$etatVilleAbonne." ".$objetGroupement->getCodeGenere()." ".$rangProducteur;
// var_dump( $codeProducteur);exit;
//var_dump($objetPartenaire->getVille()->getVille(), $objetPartenaire->getCodeVille(), $anneeAdhesion,$codeVillage,$objetGroupement->getCodeGenere(),$rangProducteur);exit;
} catch (\Symfony\Component\Form\Exception\Exception $e) {
var_dump($e->getMessage());
}
return $codeProducteur;
}
public function genereCodeProducteurVersionAnanas_2(EntityManager $em, $villageId, $groupementId, $anneeAdhesion, $zoneProducteur=0) {
//var_dump($villageId, $groupementId, $anneeAdhesion);exit;
try {
$objetGroupement = $em->getRepository($this->prodBundle . 'Groupement')->find($groupementId);
$listeProducteurGroupement = $em->getRepository($this->prodBundle . 'ProducteurGroupement')->findBy(['groupement'=>$objetGroupement]);
$rangProducteur = count($listeProducteurGroupement)+1;
if($rangProducteur<10)
$rangProducteur = "0".$rangProducteur;
$objetVillage= $em->getRepository($this->stockBundle . 'Ville')->find($villageId);
$codeVillage = substr($objetVillage->getNomVille(), 0, 3);
$anneeAdhesion = substr($anneeAdhesion, 2, 2);
//var_dump($objetVillage->getVille()->getVille()->getVille()->getId());exit;
$criteriaAbonneVille = array('abonne' => $objetGroupement->getAbonne(), 'ville'=>$objetVillage);
$objetAbonneVille = $em->getRepository($this->userBundle . 'AbonneVille')->findOneBy($criteriaAbonneVille);
$objetPartenaire = $objetVillage;
if($objetVillage->getTypeVille() == 5){
$objetPartenaire = $objetVillage->getVille()->getVille()->getVille();
}else if($objetVillage->getTypeVille() == 4){
$objetPartenaire = $objetVillage->getVille()->getVille();
}else if($objetVillage->getTypeVille() == 3){
$objetPartenaire = $objetVillage->getVille();
}
if($zoneProducteur!=0)
$objetZoneProducteur = $zoneProducteur;
else
$objetZoneProducteur =$objetPartenaire->getVille();
//var_dump($objetPartenaire->getId(),$objetPartenaire->getTypeVille(),$objetPartenaire->getCodeVille());exit;
$codeProducteur = "F".$anneeAdhesion." ".$objetPartenaire->getCodeVille()." ".$objetZoneProducteur->getCodeVille()." ".$objetAbonneVille->getEtatAbonneVille()." ".$objetGroupement->getCodeGenere()." ".$rangProducteur;
//var_dump("F",$anneeAdhesion,$objetPartenaire->getCodeVille(),$objetZoneProducteur->getCodeVille(),$objetAbonneVille->getEtatAbonneVille(),$objetGroupement->getCodeGenere(),$rangProducteur);exit;
//var_dump($objetPartenaire->getVille()->getVille(), $objetPartenaire->getCodeVille(), $anneeAdhesion,$codeVillage,$objetGroupement->getCodeGenere(),$rangProducteur);exit;
} catch (\Symfony\Component\Form\Exception\Exception $e) {
var_dump($e->getMessage());
}
return $codeProducteur;
}
public function genereNumeroLotCaisse(EntityManager $em, $nombreCargaison,$nombreCarton, $anneeAdhesion, $regionId) {
try {
$objetVillage= $em->getRepository($this->stockBundle . 'Ville')->find($regionId);
$codeVillage = substr($objetVillage->getNomVille(), 0, 2);
$anneeAdhesion = substr($anneeAdhesion, 2, 2);
//var_dump($objetVillage->getVille()->getVille()->getVille()->getId());exit
//var_dump($objetPartenaire->getId(),$objetPartenaire->getTypeVille(),$objetPartenaire->getCodeVille());exit;
$codeLot = sprintf("%04d", $nombreCargaison)."-".sprintf("%05d", $nombreCarton)."-".$anneeAdhesion."-".$codeVillage."-TG" ;
//var_dump("F",$anneeAdhesion,$objetPartenaire->getCodeVille(),$objetZoneProducteur->getCodeVille(),$objetAbonneVille->getEtatAbonneVille(),$objetGroupement->getCodeGenere(),$rangProducteur);exit;
//var_dump($objetPartenaire->getVille()->getVille(), $objetPartenaire->getCodeVille(), $anneeAdhesion,$codeVillage,$objetGroupement->getCodeGenere(),$rangProducteur);exit;
} catch (\Symfony\Component\Form\Exception\Exception $e) {
var_dump($e->getMessage());
}
return $codeLot;
}
public function dupliquerImageProduit(EntityManager $em, $parentId, $objetProduitEncours, $objetAbonne) {
//var_dump($villageId, $groupementId, $anneeAdhesion);exit;
try {
$objetProduit = $em->getRepository($this->stockBundle . 'Produit')->find($parentId);
$objetImageParent = $em->getRepository($this->stockBundle . 'Image')->findOneBy(['produit'=>$objetProduit]);
if($objetImageParent != null){
$objetImage = new Image();
$objetImage->setUrlImage($objetImageParent->getUrlImage());
// $objetImage->setInspectionrempli($$objetProduit);
$objetImage->setElementCodeGenere($objetProduitEncours->getCodeGenere());
$objetImage->setProduit($objetProduit);
$objetImage->setAbonne($objetAbonne);
$objetImage->setCodeGenere("IMGV_".rand());
$objetImage->setTitreImage("Produit Image");
$em->persist($objetImage);
$em->flush($objetImage);
}
//var_dump($objetPartenaire->getVille()->getVille(), $objetPartenaire->getCodeVille(), $anneeAdhesion,$codeVillage,$objetGroupement->getCodeGenere(),$rangProducteur);exit;
} catch (\Symfony\Component\Form\Exception\Exception $e) {
var_dump($e->getMessage());
}
return $objetImage;
}
/**
* Methode s'occupant de copier les commandes en attente vers les commandes validees .
*
* @author armand.tevi@gmail.com
* @copyright ADMIN 2015
*
* @version 1
*
* @return twig d'ajout d'un abonne ajouterFournisseur.html.twig
*/
protected function savePlante($em, $codePlante, $prodCodeGenere, $codeGenere, $parCodeGenere, $utilisateurRepository, $produitRepository, $surfaceAnneeRepository , $planteRepository){
$donnee = $codePlante."#".$prodCodeGenere."#".$codeGenere."#".$parCodeGenere;
$objetProduit= $produitRepository->findOneBy(['codeGenere'=>$prodCodeGenere]);
$objetSurfaceAnnee= $surfaceAnneeRepository->findOneBy(['codeGenere'=>$prodCodeGenere]);
$objetPlante = $planteRepository->findOneBy(['codePlante'=>$codePlante, 'produit'=>$objetProduit, 'surfaceannee'=>$objetSurfaceAnnee ]);
if($objetPlante == null)
$objetPlante= new Plante();
//Enregestre ces données comme livraison
$objetPlante->setCodePlante($codePlante);
$objetPlante->setCodeGenere($codeGenere);
$objetPlante->setProduit($objetProduit);
$objetPlante->setAbonne($objetProduit->getAbonne());
$objetPlante->setSurfaceannee($objetSurfaceAnnee);
// $objetUtilisateur->setVille($objetVille);
$em->persist($objetPlante);
// }
$em->flush();
$this->addHistoriqueAction($em, "PlanteAdd", 1, $codeGenere, 1, NUll, 1, $donnee, $utilisateurRepository);
}
/**
* Methode s'occupant de copier les commandes en attente vers les commandes validees .
*
* @author armand.tevi@gmail.com
* @copyright ADMIN 2015
*
* @version 1
*
* @return twig d'ajout d'un abonne ajouterFournisseur.html.twig
*/
protected function saveUtilisateur($em, $nom, $prenoms, $username,$password, $cni, $telephone, $codeGenere, $idVille, $sexe, $profilId) {
//$objetVille= $em->getRepository($this->stockBundle . 'Ville')->find($idVille);
$d = new \DateTime();
$an = $d->format('Y');
$m = $d->format('m');
$j = $d->format('d');
$objetUtilisateur= $em->getRepository($this->userBundle . 'Utilisateur')->findOneBy(['codeGenere'=>$codeGenere]);
$objetProfil= $em->getRepository($this->userBundle . 'Profil')->find($profilId);
if($objetUtilisateur == null)
$objetUtilisateur= new Utilisateur();
//Enregestre ces données comme livraison
$objetUtilisateur->setNom($nom);
$objetUtilisateur->setPrenoms($prenoms);
$objetUtilisateur->setCni($cni);
$objetUtilisateur->setSexe($sexe);
$objetUtilisateur->setUsername($username);
$objetUtilisateur->setPassword($password);
$objetUtilisateur->setCpassword($password);
// $objetUtilisateur->setVille($objetVille);
$objetUtilisateur->setTel1($telephone);
$objetUtilisateur->setCodeGenere($codeGenere);
$objetUtilisateur->setAbonne($objetProfil->getAbonne());
$objetUtilisateur->setProfil($objetProfil);
$em->persist($objetUtilisateur);
$em->flush($objetUtilisateur);
}
/**
* Methode s'occupant de copier les commandes en attente vers les commandes validees .
*
* @author armand.tevi@gmail.com
* @copyright ADMIN 2015
*
* @version 1
*
* @return twig d'ajout d'un abonne ajouterFournisseur.html.twig
*/
protected function saveAutreInfoProducteur($em,$groupement, $objetProducteur, $ville = 0, $villeRepository,$groupementRepository, $producteurGroupementRepository, $zoneProducteurRepository) {
//$objetVille= $em->getRepository($this->stockBundle . 'Ville')->find($idVille);
//Enregistrer le groupement
$objetGroupement = $groupementRepository->find($groupement);
if($ville !=0)
$objetVille = $villeRepository->find($ville);
//$em->getRepository($this->stockBundle . 'Ville')->findOneBy(array('nomVille'=>$groupement));
$objetProducteurGroupement= $producteurGroupementRepository->findOneBy(['producteur'=>$objetProducteur]); //$em->getRepository($this->stockBundle . 'Ville')->findOneBy(array('nomVille'=>$groupement));
if($objetProducteurGroupement == null )
$objetProducteurGroupement= new ProducteurGroupement();
$objetProducteurGroupement->setProducteur($objetProducteur);
$objetProducteurGroupement->setGroupement($objetGroupement);
$objetProducteurGroupement->setAbonne($objetProducteur->getAbonne());
$em->persist($objetProducteurGroupement);
$em->flush($objetProducteurGroupement);
// Mettre le producteur dans une zone
$objetZoneProducteur= $zoneProducteurRepository->findOneBy(['producteur'=>$objetProducteur]); //$em->getRepository($this->stockBundle . 'Ville')->findOneBy(array('nomVille'=>$groupement));
if($objetZoneProducteur == null )
$objetZoneProducteur= new ZoneProducteur();
$objetZoneProducteur->setProducteur($objetProducteur);
if($ville !=0)
$objetZoneProducteur->setVille($objetVille );
$objetZoneProducteur->setAbonne($objetProducteur->getAbonne());
$em->persist($objetZoneProducteur);
$em->flush($objetZoneProducteur);
}
protected function getInfoProduit($int) {
if($int ==1 ){
$info = "Montant";
}else if($int ==2){
$info = "Nbre";
}else{
$info = "Liquidité";
}
return $info;
}
protected function getInfoService($int) {
if($int ==1 ){
$info = "Dépot";
}else if($int ==2){
$info = "Retrait";
}else if($int ==3){
$info = "Commision";
}else if($int ==3){
$info = "Liquidité";
}else if($int ==3){
$info = "S.virtuel";
}else{
$info = "Approvisionnement";
}
return $info;
}
protected function getRealCell($nombre){
$nombreDebut = 65;
if($nombre<=90){
return chr($nombre);
}else{
$reste = $nombre%91;
//var_dump("nombre = ".$nombre, "reste = ".$reste );
if($reste%26 == 0){
++$nombreDebut;
$reste = 0;
}
if($reste>26)
$reste =$reste%27;
$nombreSuivant = 65+$reste;
//var_dump("nombre = ".$nombre, "reste = ".$reste , "SUivant = ".$nombreSuivant);
return chr($nombreDebut).chr($nombreSuivant);
}
}
protected function afficherVenteProduit($donneeProduit, $i){
if($i==1){
$result = $donneeProduit[0]['quantiteTotal'];
}else if($i==2) {
$result = $donneeProduit[0]['montantTotal'];
}else if($i==3) {
$result = "-";
}
return $result;
}
protected function afficherVenteService($donneeProduit, $i){
// var_dump();exit;
if($donneeProduit !=null){
if($i==1){
$result = $donneeProduit[0]['soldedebit'];
}else if($i==2) {
$result = $donneeProduit[0]['soldecredit'] ;
}else if($i==3) {
$result = "-";
}
else {
$result = "-";
}
return $result;;
}
}
protected function saveGroupement($em, $groupement, $objetAbonne,$groupementRepositroy, $objetZoneAbonne){
$criteriaGroupe = array('nomGroupement' => $groupement, 'abonne' => $objetAbonne);
$objetGroupement = $groupementRepositroy->findOneBy($criteriaGroupe);
if($objetGroupement ==null){
$objetGroupement = new Groupement();
}
$objetGroupement->setNomGroupement($groupement);
$objetGroupement->setAbonne($objetAbonne);
$objetGroupement->setVille($objetZoneAbonne);
$em->persist($objetGroupement);
$em->flush();
}
protected function saveZoneAbonne($em, $villeProducteur, $objetAbonne, $villeRepositroy){
$criteriaSup = array('nomVille' => $villeProducteur);
$objetVille = $villeRepositroy->findOneBy($criteriaSup);
if ($objetVille == null) {
$objetVille = new Ville();
$objetVille->setNomVille($villeProducteur);
//$objetVille->setVille($villeZone);
$objetVille->setPays($em->getRepository($this->stockBundle . 'Pays')->find(1));
$objetVille->setTypeVille(7);
$em->persist($objetVille);
}
$objetZoneAbonne = new AbonneVille();
$objetZoneAbonne->setVille($objetVille);
$objetZoneAbonne->setAbonne($objetAbonne);
$objetZoneAbonne->setTypeAbonneVille(5);
$em->persist($objetZoneAbonne);
$em->flush();
return $objetVille;
}
protected function saveZone($em, $objetPage, $objetGroupement,$objetAbonne){
//faire une boucle sur les pages que recevoir les zones
$criteriaSup = array('page' => $objetPage,'groupement'=>$objetGroupement);
$objetZoneGroupement = $em->getRepository($this->cmsBundle . 'ZoneGroupement')->findOneBy($criteriaSup);
foreach ($objetPage->getZones() as $objetZone) {
$objetNZone = new \Entity\cms\ZoneGroupement();
$objetNZone->setTitreZone($objetZone->getTitreZone());
$objetNZone->setDescriptionZone($objetZone->getDescriptionZone());
$objetNZone->setEtatZone($objetZone->getEtatZone());
$objetNZone->setTypeElement($objetZone->getTypeElement());
if($objetZone->getTypeElement()== 2){
$uneRubrique = $this->saveRubrique($em, $objetAbonne, $objetZone->getPointeVers());
$objetNZone->setPointeVers($uneRubrique->getId());
}
if($objetZone->getTypeElement()== 1){
$unArticle = $this->saveArticle($em, $objetAbonne, $objetZone->getPointeVers());
$objetNZone->setPointeVers($unArticle->getId());
}
// $objetNZone->setSiSysteme($objetZone->getSiSysteme());
$objetNZone->setTypeAffichage($objetZone->getTypeAffichage());
$objetNZone->setStyle($objetZone->getStyle());
$objetNZone->setAbonne($objetAbonne);
$objetNZone->setPage($objetPage);
$objetNZone->setGroupement($objetGroupement);
$objetNZone->setDateAjoutZone($objetZone->getDateAjoutZone());
$em->persist($objetNZone);
$em->flush();
}
}
protected function saveRubrique($em, $objetAbonne, $id){
//faire une boucle sur les pages que recevoir les zones
$objetCurrentRubrique= $em->getRepository($this->cmsBundle . 'Rubrique')->find($id);
$objetRubrique = new \Entity\cms\Rubrique();
$objetRubrique->setDesignationRubrique($objetCurrentRubrique->getDesignationRubrique());
$objetRubrique->setDescriptionRubrique($objetCurrentRubrique->getDescriptionRubrique());
$objetRubrique->setAbonne($objetAbonne);
$em->persist($objetRubrique);
$em->flush();
return $objetRubrique;
}
protected function saveArticle($em, $objetAbonne, $id){
//faire une boucle sur les pages que recevoir les zones
$objetCurrentArticle= $em->getRepository($this->cmsBundle . 'Article')->find($id);
$objetRubrique = $this->saveRubrique($em, $objetAbonne, $objetCurrentArticle->getRubrique()->getId());
$objetArticle = new \Entity\cms\Article();
$objetArticle->setRubrique($objetRubrique);
$objetArticle->setTitre($objetCurrentArticle->getTitre());
$objetArticle->setContenuArticle($objetCurrentArticle->getContenuArticle());
$objetArticle->setResumeArticle($objetCurrentArticle->getResumeArticle());
$objetArticle->setTypeArticle($objetCurrentArticle->getTypeArticle());
$objetArticle->setAbonne($objetAbonne);
$em->persist($objetArticle);
$em->flush();
return $objetArticle;
}
public function getStatInspectionAction(EntityManager $em,$abonneId, $inspectionId, $mois) {
try {
$dateTime = new \DateTime();
$sqlrech = 'SELECT Count(ir.id) as total
FROM inspection_rempli ir
INNER JOIN inspection i on i.id = ir.inspection_id
WHERE i.abonne_id =:abonneId AND YEAR(ir.date_enregistrement) =:annee
AND i.id =:inspectionId AND MONTH(ir.date_enregistrement)=:mois
GROUP BY i.id, MONTH(ir.date_enregistrement) '; //
$stmt = $em->getConnection()->prepare($sqlrech);
$stmt->bindValue(':abonneId', $abonneId, PDO::PARAM_INT);
$stmt->bindValue(':annee', $dateTime->format('Y'), PDO::PARAM_STR);
$stmt->bindValue(':inspectionId', $inspectionId, PDO::PARAM_INT);
$stmt->bindValue(':mois', $mois, PDO::PARAM_INT);
$stmt->execute();
$res = $stmt->executeQuery()->fetchAllAssociative(); //$stmt->fetchAll(PDO::FETCH_ASSOC);
} catch (\Symfony\Component\Form\Exception\Exception $e) {
$stmt = null;
$res = null;
var_dump($e->getMessage());
}
return $res;
}
public function getAchatVarieteAction(EntityManager $em,$abonneId, $produitId) {
try {
$dateTime = new \DateTime();
$sqlrech = 'SELECT Count(lc.quantite) as quantiteTotal
FROM commande c
INNER JOIN lignecommande lc on lc.commande_id = c.id
INNER JOIN produit_abonne pa on lc.produitabonne_id = pa.id
INNER JOIN produit p on pa.produit_id = p.id
INNER JOIN abonne a on pa.abonne_id = a.id
WHERE a.id =:abonneId AND YEAR(c.date_commande) =:annee AND p.id =:produitId
GROUP BY p.nom_produit, MONTH(c.date_commande) '; //
$stmt = $em->getConnection()->prepare($sqlrech);
$stmt->bindValue(':abonneId', $abonneId, PDO::PARAM_INT);
$stmt->bindValue(':annee', $dateTime->format('Y'), PDO::PARAM_STR);
$stmt->bindValue(':produitId', $produitId, PDO::PARAM_INT);
$stmt->execute();
$res = $stmt->executeQuery()->fetchAllAssociative(); //$stmt->fetchAll(PDO::FETCH_ASSOC);
} catch (\Symfony\Component\Form\Exception\Exception $e) {
$stmt = null;
$res = null;
var_dump($e->getMessage());
}
return $res;
}
public function getAchatMoisAction(EntityManager $em,$abonneId) {
try {
$dateTime = new \DateTime();
$sqlrech = 'SELECT DISTINCT( MONTH(c.date_commande)) as mois
FROM commande c
INNER JOIN lignecommande lc on lc.commande_id = c.id
INNER JOIN produit_abonne pa on lc.produitabonne_id = pa.id
INNER JOIN produit p on pa.produit_id = p.id
INNER JOIN abonne a on pa.abonne_id = a.id
WHERE a.id =:abonneId AND YEAR(c.date_commande) =:annee
GROUP BY p.nom_produit, MONTH(c.date_commande) '; //
$stmt = $em->getConnection()->prepare($sqlrech);
$stmt->bindValue(':abonneId', $abonneId, PDO::PARAM_INT);
$stmt->bindValue(':annee', $dateTime->format('Y'), PDO::PARAM_STR);
$stmt->execute();
$res = $stmt->executeQuery()->fetchAllAssociative(); //$stmt->fetchAll(PDO::FETCH_ASSOC);
} catch (\Symfony\Component\Form\Exception\Exception $e) {
$stmt = null;
$res = null;
var_dump($e->getMessage());
}
return $res;
}
public function getStatProducteurGroupementAction(EntityManager $em,$abonneId, $groupementId) {
try {
$sqlrech = 'SELECT Count(g.id) as total
FROM groupement g
INNER JOIN producteur_groupement gp on gp.groupement_id = g.id
INNER JOIN producteur p on gp.producteur_id = p.id
INNER JOIN producteur_abonne pa on pa.producteur_id = p.id
INNER JOIN abonne a on pa.abonne_id = a.id
WHERE a.id =:abonneId AND g.id =:groupementId
GROUP BY g.id
';
$stmt = $em->getConnection()->prepare($sqlrech);
$stmt->bindValue(':abonneId', $abonneId, PDO::PARAM_INT);
$stmt->bindValue(':groupementId', $groupementId, PDO::PARAM_INT);
$stmt->execute();
$res = $stmt->executeQuery()->fetchAllAssociative(); //$stmt->fetchAll(PDO::FETCH_ASSOC);
} catch (\Symfony\Component\Form\Exception\Exception $e) {
$stmt = null;
$res = null;
var_dump($e->getMessage());
}
return $res;
}
public function getStatProducteurEntity(EntityManager $em,$abonneId, $entityId, $siGroupement, $partenaireId=0, $typeAction=0, $tabProduit=0) {
try {
$sqlrech = 'SELECT COUNT(DISTINCT(p.id)) as total ' ;
if($siGroupement == 1){
$sqlrech .= '
FROM groupement g ';
$sqlrech .= ' INNER JOIN producteur_groupement gp on gp.groupement_id = g.id
INNER JOIN producteur p on gp.producteur_id = p.id' ;
}else{
$sqlrech .= '
FROM ville v ' ;
$sqlrech .= ' INNER JOIN zone_producteur zp on zp.ville_id = v.id
INNER JOIN producteur p on zp.producteur_id = p.id' ;
}
if($typeAction != 0){
$sqlrech .= ' INNER JOIN producteur_abonne pa on pa.producteur_id = p.id
INNER JOIN abonne a on pa.abonne_id = a.id
';
if($typeAction == 2 && $partenaireId != 0)
$sqlrech .= " INNER JOIN partenaire pt on pa.partenaire_id = pt.id ";
}else{
$sqlrech .= " INNER JOIN abonne a on p.abonne_id = a.id ";
}
if($tabProduit != 0){
$sqlrech .= " INNER JOIN surface_annee sa on sa.producteur_id = p.id
INNER JOIN produit prod on prod.id = sa.produit_id ";
}
if($siGroupement == 1)
$sqlrech .= ' WHERE a.id =:abonneId AND g.id =:entityId ';
else
$sqlrech .= ' WHERE a.id =:abonneId AND v.id =:entityId ';
$i = 0;
if($tabProduit !=0 && count($tabProduit)!=0){
// if($prod != 1){
$i=0;
foreach($tabProduit as $unProduitId){
if($i == 0){
$sqlrech .= " AND ( prod.id = :produit".$unProduitId."";
//var_dump($uneVille->getId());
}else{
$sqlrech .= " OR prod.id= :produit".$unProduitId."";
}
$i++;
//$tabProduitUser[] = $unInfoProduit->getId();
}
$sqlrech .= " ) ";
}
if($siGroupement == 1)
$sqlrech .= ' GROUP BY g.id ';
else
$sqlrech .= ' GROUP BY v.id ';
//var_dump( $sqlrech , $abonneId, $entityId);exit;
$stmt = $em->getConnection()->prepare($sqlrech);
if($tabProduit !=0){
foreach($tabProduit as $unProduitId){
$stmt->bindValue(":produit".$unProduitId."", $unProduitId, PDO::PARAM_INT);
}
}
$stmt->bindValue(':abonneId', $abonneId, PDO::PARAM_INT);
$stmt->bindValue(':entityId', $entityId, PDO::PARAM_INT);
$stmt->execute();
$res = $stmt->executeQuery()->fetchAllAssociative(); //$stmt->fetchAll(PDO::FETCH_ASSOC);
} catch (\Symfony\Component\Form\Exception\Exception $e) {
$stmt = null;
$res = null;
var_dump($e->getMessage());
}
return $res;
}
public function getCountStatSurfaceEntity(EntityManager $em,$abonneId, $entityId, $siGroupement, $partenaireId=0, $typeAction=0, $tabProduit=0) {
try {
$sqlrech = 'SELECT Count(DISTINCT(sa.id)) as nombreTotal ' ;
if($siGroupement == 1){
$sqlrech .= '
FROM groupement g ';
$sqlrech .= ' INNER JOIN producteur_groupement gp on gp.groupement_id = g.id
INNER JOIN producteur p on gp.producteur_id = p.id' ;
}else{
$sqlrech .= '
FROM ville v ' ;
$sqlrech .= ' INNER JOIN zone_producteur zp on zp.ville_id = v.id
INNER JOIN producteur p on zp.producteur_id = p.id' ;
}
$sqlrech .= ' INNER JOIN surface_annee sa on sa.producteur_id = p.id ';
if($typeAction != 0){
$sqlrech .= ' INNER JOIN producteur_abonne pa on pa.producteur_id = p.id
INNER JOIN abonne a on pa.abonne_id = a.id ';
if($typeAction == 2 && $partenaireId != 0)
$sqlrech .= " INNER JOIN partenaire pt on pa.partenaire_id = pt.id ";
}else{
$sqlrech .= " INNER JOIN abonne a on p.abonne_id = a.id ";
}
if($tabProduit != 0){
$sqlrech .= "INNER JOIN produit prod on prod.id = sa.produit_id ";
}
if($siGroupement == 1)
$sqlrech .= ' WHERE a.id =:abonneId AND g.id =:entityId and sa.type_parcelle = 0';
else
$sqlrech .= ' WHERE a.id =:abonneId AND v.id =:entityId and sa.type_parcelle = 0 ';
$i = 0;
if($tabProduit !=0 && count($tabProduit)!=0){
// if($prod != 1){
$i=0;
foreach($tabProduit as $unProduitId){
if($i == 0){
$sqlrech .= " AND ( prod.id = :produit".$unProduitId."";
//var_dump($uneVille->getId());
}else{
$sqlrech .= " OR prod.id= :produit".$unProduitId."";
}
$i++;
//$tabProduitUser[] = $unInfoProduit->getId();
}
$sqlrech .= " ) ";
}
if($siGroupement == 1)
$sqlrech .= ' GROUP BY g.id ';
else
$sqlrech .= ' GROUP BY v.id ';
$stmt = $em->getConnection()->prepare($sqlrech);
//if($produitId != 0)
//$stmt->bindValue(':produitId', $produitId, PDO::PARAM_INT);
if($tabProduit !=0){
foreach($tabProduit as $unProduitId){
$stmt->bindValue(":produit".$unProduitId."", $unProduitId, PDO::PARAM_INT);
}
}
$stmt->bindValue(':abonneId', $abonneId, PDO::PARAM_INT);
$stmt->bindValue(':entityId', $entityId, PDO::PARAM_INT);
$stmt->execute();
$res = $stmt->executeQuery()->fetchAllAssociative(); //$stmt->fetchAll(PDO::FETCH_ASSOC);
} catch (\Symfony\Component\Form\Exception\Exception $e) {
$stmt = null;
$res = null;
var_dump($e->getMessage());
}
return $res;
}
public function getSumStatSurfaceEntity(EntityManager $em,$abonneId, $entityId, $siGroupement, $partenaireId=0, $typeAction=0, $tabProduit=0) {
try {
$sqlrech = 'SELECT CAST(SUM(sa.superficie) AS DECIMAL(10,2)) as surperficieTotal ' ;
if($siGroupement == 1){
$sqlrech .= ' FROM groupement g ';
$sqlrech .= ' INNER JOIN producteur_groupement gp on gp.groupement_id = g.id
INNER JOIN producteur p on gp.producteur_id = p.id' ;
}else{
$sqlrech .= ' FROM ville v ' ;
$sqlrech .= ' INNER JOIN zone_producteur zp on zp.ville_id = v.id
INNER JOIN producteur p on zp.producteur_id = p.id' ;
}
$sqlrech .= ' INNER JOIN surface_annee sa on sa.producteur_id = p.id ';
if($tabProduit != 0){
$sqlrech .= " INNER JOIN produit prod on prod.id = sa.produit_id ";
}
if($typeAction != 0){
$sqlrech .= ' INNER JOIN producteur_abonne pa on pa.producteur_id = p.id
INNER JOIN abonne a on pa.abonne_id = a.id
';
if($typeAction == 2 && $partenaireId != 0)
$sqlrech .= " INNER JOIN partenaire pt on pa.partenaire_id = pt.id ";
}else{
$sqlrech .= " INNER JOIN abonne a on p.abonne_id = a.id";
}
if($siGroupement == 1)
$sqlrech .= ' WHERE a.id =:abonneId AND g.id =:entityId and sa.type_parcelle = 0 ';
else
$sqlrech .= ' WHERE a.id =:abonneId AND v.id =:entityId and sa.type_parcelle = 0 ';
if($tabProduit !=0 && count($tabProduit)!=0){
// if($prod != 1){
$i=0;
foreach($tabProduit as $unProduitId){
if($i == 0){
$sqlrech .= " AND ( prod.id = :produit".$unProduitId."";
//var_dump($uneVille->getId());
}else{
$sqlrech .= " OR prod.id= :produit".$unProduitId."";
}
$i++;
//$tabProduitUser[] = $unInfoProduit->getId();
}
$sqlrech .= " ) ";
}
if($siGroupement == 1)
$sqlrech .= ' GROUP BY g.id ';
else
$sqlrech .= ' GROUP BY v.id ';
// if($siGroupement == 2)
//var_dump($sqlrech);exit;
$stmt = $em->getConnection()->prepare($sqlrech);
if($tabProduit !=0){
foreach($tabProduit as $unProduitId){
$stmt->bindValue(":produit".$unProduitId."", $unProduitId, PDO::PARAM_INT);
}
}
$stmt->bindValue(':abonneId', $abonneId, PDO::PARAM_INT);
$stmt->bindValue(':entityId', $entityId, PDO::PARAM_INT);
$stmt->execute();
$res = $stmt->executeQuery()->fetchAllAssociative(); //$stmt->fetchAll(PDO::FETCH_ASSOC);
} catch (\Symfony\Component\Form\Exception\Exception $e) {
$stmt = null;
$res = null;
var_dump($e->getMessage());
}
return $res;
}
public function getStatStockGroupementAction(EntityManager $em,$abonneId, $groupementId) {
try {
$sqlrech = 'SELECT Count(g.id) as total
FROM lignecommande lc
INNER JOIN livrer l on l.lignecommande_id = lc.id
INNER JOIN info_livrer il on il.id = l.infolivrer_id
INNER JOIN producteur p on lc.producteur_id = p.id
INNER JOIN producteur_groupement gp on gp.groupement_id = p.id
LEFT JOIN groupement g on gp.groupement_id = g.id
INNER JOIN producteur_abonne pa on pa.producteur_id = p.id
INNER JOIN abonne a on pa.abonne_id = a.id
WHERE a.id =:abonneId AND g.id =:groupementId
GROUP BY g.id
' ;
$stmt = $em->getConnection()->prepare($sqlrech);
$stmt->bindValue(':abonneId', $abonneId, PDO::PARAM_INT);
$stmt->bindValue(':groupementId', $groupementId, PDO::PARAM_INT);
$stmt->execute();
$res = $stmt->executeQuery()->fetchAllAssociative(); //$stmt->fetchAll(PDO::FETCH_ASSOC);
} catch (\Symfony\Component\Form\Exception\Exception $e) {
$stmt = null;
$res = null;
var_dump($e->getMessage());
}
return $res;
}
public function getStatProducteurZoneAction(EntityManager $em,$abonneId, $groupementId) {
try {
$sqlrech = 'SELECT Count(g.id) as total
FROM groupement g
INNER JOIN producteur_groupement gp on gp.groupement_id = g.id
INNER JOIN producteur p on gp.producteur_id = p.id
INNER JOIN producteur_abonne pa on pa.producteur_id = p.id
INNER JOIN abonne a on pa.abonne_id = a.id
WHERE a.id =:abonneId AND g.id =:groupementId
GROUP BY g.id
';
$stmt = $em->getConnection()->prepare($sqlrech);
$stmt->bindValue(':abonneId', $abonneId, PDO::PARAM_INT);
$stmt->bindValue(':groupementId', $groupementId, PDO::PARAM_INT);
$stmt->execute();
$res = $stmt->executeQuery()->fetchAllAssociative(); //$stmt->fetchAll(PDO::FETCH_ASSOC);
} catch (\Symfony\Component\Form\Exception\Exception $e) {
$stmt = null;
$res = null;
var_dump($e->getMessage());
}
return $res;
}
public function getStatStockParcelleAction(EntityManager $em,$abonneId, $groupementId, $zoneId) {
try {
$sqlrech = 'SELECT Count(sa.id) as total
FROM surface_annee sa
INNER JOIN produit p on sa.produit_id = p.id
INNER JOIN produit_abonne pa on pa.produit_id = p.id
INNER JOIN abonne a on pa.abonne_id = a.id
WHERE a.id =:abonneId
GROUP BY p.id
' ;
$stmt = $em->getConnection()->prepare($sqlrech);
$stmt->bindValue(':abonneId', $abonneId, PDO::PARAM_INT);
$stmt->execute();
$res = $stmt->executeQuery()->fetchAllAssociative(); //$stmt->fetchAll(PDO::FETCH_ASSOC);
} catch (\Symfony\Component\Form\Exception\Exception $e) {
$stmt = null;
$res = null;
var_dump($e->getMessage());
}
return $res;
}
public function getStatGeolocalisationAction(EntityManager $em,$abonneId, $groupementId, $zoneId, $siP=0, $partenaireId=0, $typeAction=0) {
try {
$sqlrech = 'SELECT Count(sa.id) as total
FROM surface_annee sa
INNER JOIN produit pr on sa.produit_id = pr.id
';
if($groupementId != 0 || $zoneId !=0)
$sqlrech .= " INNER JOIN producteur p on sa.producteur_id = p.id";
if($groupementId != 0){
$sqlrech .= ' INNER JOIN producteur_groupement gp on gp.producteur_id = p.id
INNER JOIN groupement g on gp.groupement_id = g.id' ;
}
if($zoneId != 0){
$sqlrech .= ' INNER JOIN zone_producteur zp on zp.producteur_id = p.id
INNER JOIN ville v on zp.ville_id = v.id' ;
}
if($typeAction != 0){
$sqlrech .= " INNER JOIN surface_abonne sab on sab.surfaceannee_id = sa.id ";
$sqlrech .= " INNER JOIN abonne a on sab.abonne_id = a.id ";
if($typeAction == 2 && $partenaireId != 0)
$sqlrech .= " INNER JOIN partenaire pt on sab.partenaire_id = pt.id ";
}else{
$sqlrech .= " INNER JOIN abonne a on sa.abonne_id = a.id";
}
$sqlrech .= " WHERE a.id =:abonneId AND sa.id ";
if($siP==0)
$sqlrech .= ' IN';
else
$sqlrech .= ' NOT IN';
$sqlrech .= ' (
SELECT DISTINCT(surfaceannee_id) FROM localisation WHERE 1=1 and type_localisation = 1
)
' ;
if($typeAction == 2 && $partenaireId != 0)
$sqlrech .= " AND pt.id =:partenaireId ";
if($groupementId != 0 )
$sqlrech .= " AND g.id =:groupementId ";
if($zoneId != 0 )
$sqlrech .= " AND v.id =:zoneId ";
//var_dump($sqlrech);exit;
//INNER JOIN produit_abonne pa on pa.produit_id = p.id
$stmt = $em->getConnection()->prepare($sqlrech);
if($typeAction == 2 && $partenaireId != 0)
$stmt->bindValue(':partenaireId', $partenaireId, PDO::PARAM_INT);
if($groupementId != 0 )
$stmt->bindValue(':groupementId', $groupementId, PDO::PARAM_INT);
if($zoneId != 0 )
$stmt->bindValue(':zoneId', $zoneId, PDO::PARAM_INT);
if($typeAction == 0 || $typeAction == 1)
$stmt->bindValue(':abonneId', $abonneId, PDO::PARAM_INT);
$stmt->execute();
$res = $stmt->executeQuery()->fetchAllAssociative(); //$stmt->fetchAll(PDO::FETCH_ASSOC);
} catch (\Symfony\Component\Form\Exception\Exception $e) {
$stmt = null;
$res = null;
var_dump($e->getMessage());
}
return $res;
}
public function getStatGeolocalisationTotalAction(EntityManager $em,$abonneId, $groupementId, $zoneId, $siP=0, $partenaireId=0, $typeAction=0) {
try {
$sqlrech = 'SELECT Count(sa.id) as total
FROM surface_annee sa
INNER JOIN produit pr on sa.produit_id = pr.id
';
if($groupementId != 0 || $zoneId !=0)
$sqlrech .= " INNER JOIN producteur p on sa.producteur_id = p.id";
if($groupementId != 0){
$sqlrech .= ' INNER JOIN producteur_groupement gp on gp.producteur_id = p.id
INNER JOIN groupement g on gp.groupement_id = g.id' ;
}
if($zoneId != 0){
$sqlrech .= ' INNER JOIN zone_producteur zp on zp.producteur_id = p.id
INNER JOIN ville v on zp.ville_id = v.id' ;
}
if($typeAction != 0){
$sqlrech .= " INNER JOIN surface_abonne sab on sab.surfaceannee_id = sa.id ";
$sqlrech .= " INNER JOIN abonne a on sab.abonne_id = a.id ";
if($typeAction == 2 && $partenaireId != 0)
$sqlrech .= " INNER JOIN partenaire pt on sab.partenaire_id = pt.id ";
}else{
$sqlrech .= " INNER JOIN abonne a on sa.abonne_id = a.id";
}
/*if($siP==0)
$sqlrech .= ' IN';
else
$sqlrech .= ' NOT IN';
$sqlrech .= ' (
SELECT DISTINCT(surfaceannee_id) FROM localisation WHERE 1=1 and type_localisation = 1
)
' ; */
$sqlrech .= " WHERE a.id =:abonneId ";
if($typeAction == 2 && $partenaireId != 0)
$sqlrech .= " AND pt.id =:partenaireId ";
if($groupementId != 0 )
$sqlrech .= " AND g.id =:groupementId ";
if($zoneId != 0 )
$sqlrech .= " AND v.id =:zoneId ";
//INNER JOIN produit_abonne pa on pa.produit_id = p.id
$stmt = $em->getConnection()->prepare($sqlrech);
if($typeAction == 2 && $partenaireId != 0)
$stmt->bindValue(':partenaireId', $partenaireId, PDO::PARAM_INT);
if($groupementId != 0 )
$stmt->bindValue(':groupementId', $groupementId, PDO::PARAM_INT);
if($zoneId != 0 )
$stmt->bindValue(':zoneId', $zoneId, PDO::PARAM_INT);
if($typeAction == 0 || $typeAction == 1)
$stmt->bindValue(':abonneId', $abonneId, PDO::PARAM_INT);
$stmt->execute();
$res = $stmt->executeQuery()->fetchAllAssociative(); //$stmt->fetchAll(PDO::FETCH_ASSOC);
} catch (\Symfony\Component\Form\Exception\Exception $e) {
$stmt = null;
$res = null;
var_dump($e->getMessage());
}
return $res;
}
public function getStatInspectionParcelleAction(EntityManager $em,$abonneId, $groupementId, $zoneId, $inspectionId, $siP=0, $partenaireId=0, $typeAction=0) {
try {
$sqlrech = 'SELECT Count(sa.id) as total
FROM surface_annee sa
';
if($groupementId != 0 || $zoneId !=0)
$sqlrech .= " INNER JOIN producteur p on sa.producteur_id = p.id";
if($groupementId != 0){
$sqlrech .= ' INNER JOIN producteur_groupement gp on gp.producteur_id = p.id
INNER JOIN groupement g on gp.groupement_id = g.id' ;
}
if($zoneId != 0){
$sqlrech .= ' INNER JOIN zone_producteur zp on zp.producteur_id = p.id
INNER JOIN ville v on zp.ville_id = v.id' ;
}
if($typeAction != 0){
$sqlrech .= " INNER JOIN surface_abonne sab on sab.surfaceannee_id = sa.id ";
$sqlrech .= " INNER JOIN abonne a on sab.abonne_id = a.id ";
if($typeAction == 2 && $partenaireId != 0)
$sqlrech .= " INNER JOIN partenaire pt on sab.partenaire_id = pt.id ";
}else{
$sqlrech .= " INNER JOIN abonne a on sa.abonne_id = a.id";
}
$sqlrech .= " WHERE a.id =:abonneId AND sa.id ";
if($siP==0)
$sqlrech .= ' IN';
else
$sqlrech .= ' NOT IN';
$sqlrech .= ' (
SELECT surfaceannee_id FROM inspection_rempli WHERE inspection_id =:inspectionId AND surfaceannee_id is not null
)
' ;
if($typeAction == 2 && $partenaireId != 0)
$sqlrech .= " AND pt.id =:partenaireId ";
if($groupementId != 0 )
$sqlrech .= " AND g.id =:groupementId ";
if($zoneId != 0 )
$sqlrech .= " AND v.id =:zoneId ";
//INNER JOIN produit_abonne pa on pa.produit_id = p.id
$stmt = $em->getConnection()->prepare($sqlrech);
//var_dump($sqlrech, $zoneId);exit;
if($typeAction == 2 && $partenaireId != 0)
$stmt->bindValue(':partenaireId', $partenaireId, PDO::PARAM_INT);
if($typeAction == 0 || $typeAction == 1)
$stmt->bindValue(':abonneId', $abonneId, PDO::PARAM_INT);
if($groupementId != 0 )
$stmt->bindValue(':groupementId', $groupementId, PDO::PARAM_INT);
if($zoneId != 0 )
$stmt->bindValue(':zoneId', $zoneId, PDO::PARAM_INT);
$stmt->bindValue(':inspectionId', $inspectionId, PDO::PARAM_INT);
$stmt->execute();
$res = $stmt->executeQuery()->fetchAllAssociative(); //$stmt->fetchAll(PDO::FETCH_ASSOC);
} catch (\Symfony\Component\Form\Exception\Exception $e) {
$stmt = null;
$res = null;
var_dump($e->getMessage());
}
return $res;
}
function siVide($value){
if($value == "")
return "_____________________________";
else
return $value;
}
public function genereStockProduitConditionne($em, $codeCommande, $montant, $objetProduit, $objetPrix, $quantite,$infoLivrerRepository, $ligneCommandeRepository, $livrerRepository,$objetUtilisateur) {
$autoObjetCommande = $this->saveCommande($em, $codeCommande, $montant, null, $objetUtilisateur);
$autoObjetLivraison = $this->saveLivraison($em, $autoObjetCommande, null,$infoLivrerRepository) ;
$this->validateLigneCommandeInterne($em, $codeCommande, $autoObjetLivraison, $autoObjetCommande, $objetProduit, $objetPrix, $quantite, 0, $ligneCommandeRepository, $livrerRepository);
$this->manageStock($em, $objetProduit->getId(),$quantite, 1);
}
public function creerTabMenu($em,$idEtabl, $abonneId, MenuRepository $menuRepository){
$listeMenu = $menuRepository->getAllMenuActif($abonneId);
$i=0;
$tabMenu = array();
foreach($listeMenu as $unMenu){
$tab = explode('|', $unMenu->getContenuMenu());
$tabMenu[$i]['lien'] = $tab[0];
if(count($tab) >1)
$tabMenu[$i]['id'] = $tab[1];
else
$tabMenu[$i]['id'] ="";
$tabMenu[$i]['titre'] = $unMenu->getTitre();
$tabMenu[$i]['type'] = $unMenu->getTypeMenu();
$i++;
}
return $tabMenu;
}
protected function saveDefautPageTemplate($em, $objetTemplate,$objetAbonne, $pageRepository){
//faire une boucle sur les pages que recevoir les zones
$criteriaSup = array('template' => $objetTemplate,'abonne' => $objetAbonne);
$objetPage = $pageRepository->findOneBy($criteriaSup);
if ($objetPage == null ) {
$objetNPage = new Page();
$objetNPage->setTitrePage("Accueil");
$objetNPage->setTwigPage("index.html.twig");
$objetNPage->setDescriptionPage("Gestion de la page d'accueil de l'abonne : ".$objetAbonne->getNom());
$objetNPage->setSiPageAccueil(1);
$objetNPage->setAbonne($objetAbonne);
$objetNPage->setTemplate($objetTemplate);
$em->persist($objetNPage);
$em->flush();
}
}
protected function getListeAbonne($em,$objetAbonne ,$abonneRepository){
if($objetAbonne->getSiPrincipale() == 2)
$listeAbonne= $abonneRepository->findBy(array("partenaire"=>$objetAbonne->getpartenaire()));
else
$listeAbonne = array();
return $listeAbonne;
}
/**
* Methode s'occupant de copier les commandes en attente vers les commandes validees .
*
* @author armand.tevi@gmail.com
* @copyright ADMIN 2015
*
* @version 1
*
* @return twig d'ajout d'un abonne ajouterFournisseur.html.twig
*/
protected function insertSurfaceAnneeHistorique($em, $objetSurfaceAnnee, $objetAnneeCampagne,$surfaceAnneeHistoriqueRepository) {
//$objetVille= $em->getRepository($this->stockBundle . 'Ville')->find($idVille);
$criteriaHistorique = array('surfaceannee' => $objetSurfaceAnnee, 'anneecampagne'=>$objetAnneeCampagne);
$objetSurfaceAnneeHistorique = $surfaceAnneeHistoriqueRepository->findOneBy($criteriaHistorique);
if( $objetSurfaceAnneeHistorique == null)
$objetSurfaceAnneeHistorique = new SurfaceAnneeHistorique;
$objetSurfaceAnneeHistorique->setSurfaceannee($objetSurfaceAnnee);
$objetSurfaceAnneeHistorique->setAnneecampagne($objetAnneeCampagne);
$objetSurfaceAnneeHistorique->setAbonne($objetSurfaceAnnee->getAbonne());
$em->persist($objetSurfaceAnneeHistorique);
$em->flush();
}
protected function infoSigne($signe){
$infoSigne = "";
switch ($signe) {
case 1:
$infoSigne = ">";
break;
case 2:
$infoSigne =">=";
break;
case 3:
$infoSigne = "<";
break;
case 4:
$infoSigne = "<=";
break;
}
return $infoSigne;
}
public function initialiserInspectionRempliProducteur(EntityManager $em, $producteurId = 0, $inspectionId= 0) {
try {
$sqlrech = ' UPDATE inspection_rempli set etat_fournisseur_producteur = 2 WHERE producteur_id =:producteurId AND inspection_id =:inspectionId ';
// var_dump($sqlrech, $idProduit);exit;
$stmt = $em->getConnection()->prepare($sqlrech);
$stmt->bindValue(':producteurId', $producteurId, PDO::PARAM_INT);
$stmt->bindValue(':inspectionId', $inspectionId, PDO::PARAM_INT);
$stmt->execute();
} catch (\Symfony\Component\Form\Exception\Exception $e) {
$stmt = null;
$res = null;
var_dump($e->getMessage());
}
return 1;
}
public function initialiserProgrammeInspection(EntityManager $em, $typeProgramme = 0, $etatProgramme=0 ) {
try {
$sqlrech = ' UPDATE programme_inspection set etat_programme_inspection = 0 WHERE programme_id in ( SELECT id FROM programme WHERE type_programme =:typeProgramme and etat_programme =:etatProgramme )';
$stmt = $em->getConnection()->prepare($sqlrech);
$stmt->bindValue(':typeProgramme', $typeProgramme, PDO::PARAM_INT);
$stmt->bindValue(':etatProgramme', $etatProgramme, PDO::PARAM_INT);
$stmt->execute();
} catch (\Symfony\Component\Form\Exception\Exception $e) {
$stmt = null;
$res = null;
var_dump($e->getMessage());
}
return 1;
}
public function initialiserProgramme(EntityManager $em, $typeProgramme = 0) {
try {
$sqlrech = ' UPDATE programme set etat_programme = 0 WHERE type_programme =:typeProgramme ';
// var_dump($sqlrech, $idProduit);exit;
$stmt = $em->getConnection()->prepare($sqlrech);
$stmt->bindValue(':typeProgramme', $typeProgramme, PDO::PARAM_INT);
$stmt->execute();
} catch (\Symfony\Component\Form\Exception\Exception $e) {
$stmt = null;
$res = null;
var_dump($e->getMessage());
}
return 1;
}
public function initialiserInspectionRempliSurface(EntityManager $em, $surfaceId = 0, $inspectionId= 0) {
try {
$sqlrech = ' UPDATE inspection_rempli set etat_fournisseur_producteur = 2 where surfaceannee_id =:surfaceId AND inspection_id =:inspectionId ';
// var_dump($sqlrech, $idProduit);exit;
$stmt = $em->getConnection()->prepare($sqlrech);
$stmt->bindValue(':surfaceId', $surfaceId, PDO::PARAM_INT);
$stmt->bindValue(':inspectionId', $inspectionId, PDO::PARAM_INT);
$stmt->execute();
} catch (\Symfony\Component\Form\Exception\Exception $e) {
$stmt = null;
$res = null;
var_dump($e->getMessage());
}
return 1;
}
public function getInfoProducteurAnniversaireAction(EntityManager $em,$abonneId) {
try {
$dateTime = new \DateTime();
$sqlrech = 'SELECT u.id,u.nom_user as nom, u.prenoms_user as prenoms , u.email_user, u.date_naissance as dateNaissance, p.code_genere
FROM producteur p
INNER JOIN utilisateur u on p.utilisateur_id = u.id
INNER JOIN abonne a on p.abonne_id = a.id
WHERE a.id =:abonneId AND MONTH(u.date_naissance) =:mois AND DAY(u.date_naissance) =:jour
'; //
//var_dump($sqlrech, $dateTime->format('m'), $dateTime->format('d'));exit;
$stmt = $em->getConnection()->prepare($sqlrech);
$stmt->bindValue(':abonneId', $abonneId, PDO::PARAM_INT);
$stmt->bindValue(':mois', $dateTime->format('m'), PDO::PARAM_STR);
$stmt->bindValue(':jour', $dateTime->format('d'), PDO::PARAM_STR);
$stmt->execute();
$res = $stmt->executeQuery()->fetchAllAssociative(); //$stmt->fetchAll(PDO::FETCH_ASSOC);
} catch (\Symfony\Component\Form\Exception\Exception $e) {
$stmt = null;
$res = null;
var_dump($e->getMessage());
}
return $res;
}
public function getTonnageByAnnee($abonneId, $commandeRepository,$produitId, $type, $surfaceId, $producteurId, $typeCulture, $infoAnnee ) {
$tab = array();
$infoAnneePasse =0;
if($infoAnnee!=0)
$infoAnneePasse = $infoAnnee-1;
$totalInfoAnnee = $commandeRepository->getCountInfoCommandeByAnnee($nomcol=0, $datefin=0, $datedeb=0, $ville=0, $util=0, $silivre=0, $numcom=0, $produitId, $type,$typeLimite = 0, $nbParPage = 20, $pageActuelle = 1,$abonneId,$retrait=0, $clientId = 0, $siCredit=0,$surfaceId, $anneeId=0,$producteurId, $typeCulture, $infoAnnee);
$totalInfoAnneePasse = $commandeRepository->getCountInfoCommandeByAnnee($nomcol=0, $datefin=0, $datedeb=0, $ville=0, $util=0, $silivre=0, $numcom=0, $produitId, $type,$typeLimite = 0, $nbParPage = 20, $pageActuelle = 1,$abonneId,$retrait=0, $clientId = 0, $siCredit=0,$surfaceId, $anneeId=0,$producteurId, $typeCulture, $infoAnneePasse);
//(0,0,0,0,0,0,0,0,6,0,20,1,$sessionData['abonneId'], 0,0,0,$listeObjetSurface[0]->getId(),$infoAnneeId);
$tab = [$totalInfoAnnee, $totalInfoAnneePasse];
return $tab;
}
public function getFinanceByAnnee($em, $operationManager,$produitId, $type, $surfaceId, $producteurId, $typeCompe, $infoAnnee, $sens ) {
$tab = array();
$infoAnneePasse =0;
if($infoAnnee!=0)
$infoAnneePasse = $infoAnnee-1;
$totalInfoAnnee = $operationManager->soldeCaisseProducteurDate($em,$idCaisse=0,$datedeb=0, $datefin=0, $idprod=0,$idab=0,$compte='0', $producteurId, $fournisseurId=0,$sens, $typeCompe, $infoAnnee) ;
$totalInfoAnneePasse = $operationManager->soldeCaisseProducteurDate($em,$idCaisse=0,$datedeb=0, $datefin=0, $idprod=0,$idab=0,$compte='0', $producteurId, $fournisseurId=0,$sens, $typeCompe, $infoAnneePasse) ;
//(0,0,0,0,0,0,0,0,6,0,20,1,$sessionData['abonneId'], 0,0,0,$listeObjetSurface[0]->getId(),$infoAnneeId);
$tab = [$totalInfoAnnee, $totalInfoAnneePasse];
return $tab;
}
/**
* Methode s'occupant de copier les commandes en attente vers les commandes validees .
*
* @author armand.tevi@gmail.com
* @copyright ADMIN 2015
*
* @version 1
*
* @return twig d'ajout d'un abonne ajouterFournisseur.html.twig
*/
protected function saveInfoDeplacer($em, $objetLigneCommande, $entrepotDepart, $entrepotArrive, $quantite, $numeroLot, $dateEnvoi, $dateReception) {
$em->getConnection()->beginTransaction();
//(
try {
$objetInfoDeplacer = new InfoDeplacer();
$objetInfoDeplacer->setLigneCommande($objetLigneCommande);
$objetInfoDeplacer->setEntrepotDepart($entrepotDepart);
$objetInfoDeplacer->setEntrepotArrive($entrepotArrive);
$objetInfoDeplacer->setQuantite($quantite);
$objetInfoDeplacer->setNumeroLot($numeroLot);
$objetInfoDeplacer->setDateLivraison($dateReception);
$objetInfoDeplacer->setDateEnvoi($dateEnvoi);
// $montantCommande = (int) $montantCommande + (int) $montant;
$em->persist($objetInfoDeplacer);
$em->flush();
$em->getConnection()->commit();
} catch (\Exception $e) {
$em->getConnection()->rollback();
$em->close();
throw $e;
}
return $objetInfoDeplacer;
}
function traiteFonctionDonneeImage($em, $JSONData, $parameters, $surfaceAnneeRepository, $inspectionRempliRepository, $producteurRepository, $imageRepository, $type)
{ ///Revoir comment aj()outer l'abonne
if($type == 2)
$listImage = $JSONData;
else
$listImage = json_decode($JSONData, true);
$em->getConnection()->beginTransaction();
//$donnee = $unProducteur["nom"] ."#". $unProducteur["prenoms"] ."#".$unProducteur["telephone"] ."#". $unProducteur["idVille"] ."#".$unProducteur["codeGenere"] ."#".$unProducteur["idutil"] ."#".$unProducteur["sexe"]."#".$unProducteur["cni"] ;
$codeGenere = "0001";
if ($listImage != null) {
foreach ($listImage as $uneImage) {
//$votreImage = base64_decode($parameters['image'.$uneImage["id"]]);
$file_path = __DIR__ . '/../../../public/';
$dossier = "producteur/";
if(array_key_exists('image' . $uneImage["id"], $parameters)){
if($type == 2)
$urlImage = $parameters['path'];
else
$urlImage = $parameters['image' . $uneImage["id"]];
if ($uneImage["typeImage"] == 2) {
$media = str_replace('data:audio/mpeg;base64,Base64EncodedMP3Data', '', $urlImage);
$media = str_replace(' ', '+', $media);
$nameImage = "audio_" . uniqid() . "_" . $uneImage["id"] . '.mp3';
} else {
$media = str_replace('data:image/png;base64,', '', $urlImage);
$media = str_replace(' ', '+', $media);
$nameImage = "signature_" . uniqid() . "_" . $uneImage["id"] . '.png';
}
// Create Image path with Image name and Extension
$file = $file_path . $dossier . $nameImage;
// Decode the Base64 encoded Image
if ($uneImage["typeImage"] == 2)
$data = base64_decode($urlImage);
else
$data = base64_decode($media);
// Save Image in the Image Directory
$success = file_put_contents($file, $data);
//$file_path = $file_path . base64_decode( $_FILES['image'.$uneImage["id"]]['name']);
$objetImage = null;
if ($uneImage["typeImage"] != 3)
$objetImage = $imageRepository->findOneBy(array("titreImage" => $uneImage["codeGenere"]));
if ($objetImage == null) {
$objetImage = new Image();
$objetImage->setUrlImage($dossier . $nameImage);
if ($uneImage["typeImage"] == 3) {
$objetSurfaceAnnee = $surfaceAnneeRepository->findOneBy(array("codeGenere" => $uneImage['prodCodeGenere']));
if ($objetSurfaceAnnee != null)
$objetImage->setSurfaceannee($objetSurfaceAnnee);
}
if ($uneImage["typeImage"] == 10) {
$objetProducteur = $producteurRepository->findOneBy(array("codeGenere" => $uneImage['prodCodeGenere']));
if ($objetProducteur != null)
$objetImage->setProducteur($objetProducteur);
} else {
$objetInspectionRempli = $inspectionRempliRepository->findOneBy(array("codeGenere" => $uneImage['prodCodeGenere']));
if ($objetInspectionRempli != null)
$objetImage->setInspectionrempli($objetInspectionRempli);
}
$objetImage->setCodeGenere($uneImage["prodCodeGenere"]);
$objetImage->setElementCodeGenere($uneImage["prodCodeGenere"]);
$objetImage->setTitreImage($uneImage["codeGenere"]);
$em->persist($objetImage);
$em->flush($objetImage);
}
}
}
}
$em->getConnection()->commit();
}
}