<?php
namespace App\Controller\api;
use Entity\user\User;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Method;
use Symfony\Component\Security\Core\Authentication\Token\Storage\TokenStorageInterface;
use Symfony\Component\PasswordHasher\Hasher\UserPasswordHasherInterface;
use Symfony\Component\Routing\Annotation\Route;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\JsonResponse;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Security\Core\Exception\AuthenticationException;
use Symfony\Component\Security\Core\Security;
use App\Services\user\LoginManager;
use App\Types\user\TypeEtat;
use App\Entity\stock\Commande;
use App\Entity\stock\Facture;
use App\Entity\user\Utilisateur;
use App\Entity\stock\LigneCommande;
use App\Entity\prod\ProducteurGroupement;
use App\Entity\stock\ZoneProducteur;
use App\Entity\stock\CaissePrix;
use App\Entity\stock\Caisse;
use App\Entity\stock\InfoLivrer;
use App\Entity\stock\Livrer;
use App\Entity\stock\Sac;
use App\Entity\stock\Image;
use App\Repository\stock\ProducteurLivraisonRepository;
use App\Entity\prod\Surface;
use App\Entity\prod\DetailSurface;
use App\Entity\prod\AnneeCampagne;
use App\Entity\prod\ProducteurEvenement;
use App\Entity\inspection\InspectionRempli;
use App\Entity\prod\Producteur;
use App\Entity\inspection\InspectionReponse;
use App\Entity\prod\SurfaceAnneeHistorique;
use App\Entity\prod\SurfaceAnnee;
use App\Entity\track\Localisation;
use App\Entity\stock\ProducteurLivraison;
use JMS\Serializer\SerializerBuilder;
use App\Entity\user\Connexion;
use App\Types\user\TypeCodeProfil;
use App\ControllerModel\user\paramUtilTrait;
use App\Entity\inspection\ProgrammeProducteurInspecteur;
use App\Repository\user\ConnexionRepository;
use App\Repository\user\AbonneRepository;
use App\Repository\user\ActionRepository;
use App\Services\param\ParametreManager;
use App\Repository\param\ParamRepository;
use App\Repository\user\ModuleRepository;
use App\Repository\user\ControleurRepository;
use App\Repository\user\ProfilRepository;
use App\Repository\user\UtilisateurRepository;
use App\Repository\cms\ArticleRepository;
use App\Repository\cms\LangueRepository;
use App\Repository\cms\RubriqueRepository;
use App\Repository\cms\TemplateRepository;
use App\Repository\inspection\ProgrammeRepository;
use App\Repository\stock\LivrerRepository;
use App\Repository\stock\ProduitTypeOperationRepository;
use App\Repository\prod\GroupementRepository;
use App\Repository\prod\ProducteurRepository;
use App\Repository\stock\VilleRepository;
use App\Repository\stock\FournisseurRepository;
use App\Repository\stock\ZoneProducteurRepository;
use App\Repository\stock\ProduitRepository;
use App\Repository\stock\CommandeRepository;
use App\Repository\stock\SeTrouverRepository;
use App\Repository\prod\SurfaceAnneeRepository;
use App\Entity\prod\AppelEvenement;
use App\Repository\prod\ProducteurGroupementRepository;
use App\Repository\inspection\InspectionRempliRepository;
use App\Repository\inspection\InspectionReponseRepository;
use App\Repository\inspection\InspectionRepository;
use App\Repository\prod\AnneeCampagneRepository;
use App\Repository\stock\PrixRigueurRepository;
use App\Entity\stock\PrixRigueur;
use App\Entity\stock\Inventaire;
use App\Repository\prod\SurfaceRepository;
use App\Repository\stock\OperationRepository;
use App\Repository\stock\ProduitAbonneRepository;
use App\Repository\stock\ImageRepository;
use App\Repository\stock\InfoInventaireRepository;
use App\Repository\stock\LigneCommandeRepository;
use App\Repository\stock\CibleRepository;
use App\Repository\prod\PlanteRepository;
use App\Repository\track\LocalisationRepository;
use App\Repository\stock\VillageRepository;
use App\Repository\stock\CaisseRepository;
use App\Repository\asso\ActiviteRepository;
use App\Repository\stock\CaracteristiquePrixRepository;
use App\Repository\inspection\CategorieQuestionInspectionRepository;
use App\Repository\inspection\ReponseQuestionInspectionRepository;
use App\Repository\inspection\QuestionInspectionRepository;
use App\Repository\inspection\InspecteurRepository;
use App\Repository\client\ClientRepository;
use App\Repository\stock\TypeOperationRepository;
use App\Repository\stock\InventaireRepository;
use App\Services\stock\OperationManager;
use App\Services\user\UtilsManager;
use App\Repository\stock\SacRepository;
use App\Repository\stock\TableRepository;
use App\Entity\prod\ProduitEtapeCroissance;
use App\Entity\prod\TacheProduitEtapeCroissance;
use App\Repository\stock\InfoLivrerRepository;
use App\Repository\stock\EntrepotRepository;
use App\Repository\stock\CategorieProduitRepository;
use App\Repository\prod\EvenementRepository;
use App\Repository\prod\ProduitEtapeCroissanceRepository;
use App\Repository\prod\TacheProduitEtapeCroissanceRepository;
use App\Repository\asso\ProjetRepository;
use App\Repository\prod\SurfaceAbonneRepository;
use App\Repository\prod\ProducteurAbonneRepository;
use App\Repository\user\HistoriqueActionRepository;
use App\Entity\stock\InfoInventaire;
use App\Entity\user\HistoriqueActionUtilisateur;
use App\Repository\client\EtatClientRepository;
use App\Repository\prod\SurfaceAnneeHistoriqueRepository;
use App\Repository\opportunite\EtatOpportuniteRepository;
use App\Repository\prod\ProducteurEvenementRepository;
use App\Repository\stock\TransformationRepository;
use App\Repository\stock\EtapeProcessusRepository;
use CrEOF\Spatial\PHP\Types\Geometry\LineString;
use CrEOF\Spatial\PHP\Types\Geometry\Point;
use CrEOF\Spatial\PHP\Types\Geometry\Polygon;
/**
* User controller.
* @Route("traite")
*/
class ApiController extends AbstractController
{
use paramUtilTrait;
private $_tokenStorage;
private $userPasswordHasherInterface;
public function __construct(Security $security, EtatClientRepository $etatClientRepository, TokenStorageInterface $tokenStorage, UserPasswordHasherInterface $userPasswordHasherInterface, SurfaceAnneeHistoriqueRepository $surfaceAnneeHistoriqueRepository)
{
$this->etatClientRepository = $etatClientRepository;
$this->_tokenStorage = $tokenStorage;
$this->_security = $security;
$this->userPasswordHasherInterface = $userPasswordHasherInterface;
$this->surfaceAnneeHistoriqueRepository = $surfaceAnneeHistoriqueRepository;
}
/**
* Creates a new user entity.
*
* @Route("/liste/mes/producteur/{id}/{profil}", name="api_liste_mes_producteurs")
* @Method({"GET","POST"})
*/
public function listeApiMesProducteursAction(
Request $request,
$id,
$profil,
LoginManager $loginManager,
ParamRepository $paramRepositor,
ConnexionRepository $connexionRepository,
ActionRepository $actionRepository,
ModuleRepository $moduleRepository,
ControleurRepository $controleurRepository,
ProfilRepository $profilRepository,
SurfaceAnneeRepository $surfaceAnneeRepository,
FournisseurRepository $fournisseurRepository,
AbonneRepository $abonneRepository,
ActiviteRepository $activiteRepository,
TypeOperationRepository $typeOperationRepository,
ProduitRepository $produitRepository,
AnneeCampagneRepository $anneeCampagneRepository,
PrixRigueurRepository $prixRigueurRepository,
EntrepotRepository $entrepotRepository,
CommandeRepository $commandeRepository,
InfoLivrerRepository $infoLivrerRepository
) {
$em = $this->getDoctrine()->getManager();
$produit = 2;
$objetProduit = $produitRepository->find($produit);
$objetAnneeCampagne = $anneeCampagneRepository->findOneBy(array("produit" => $objetProduit, "etatAnneeCampagne" => 1));
//$anneecampagne_id =
//$campagne_id = //$request->request->get('producteur_id');
$anneeCampagne = $objetAnneeCampagne->getId();;
$data = $request->getContent(); //$request->get('id')
if ($profil != TypeCodeProfil::IDPROFILAGENT) {
$id = 0;
}
//var_dump($id);exit;
$objetAgent = $fournisseurRepository->find($id);
if ($objetAgent == null) {
$id = 0;
$idville = 0;
} else {
$idville = $objetAgent->getVille()->getId();
}
$listeFournisseur = $fournisseurRepository->getAllFournisseurProducteur($id, $idville);
// $listeProducteur = $em->getRepository($this->prodBundle . 'Producteur')->getAllProducteur($typeprod, $objetFour->getVille()->getId(), $village,$nbParPage, $pageActuelle,4);
// var_dump(count($listeFournisseur)); exit;
// $cooperative =$em->getRepository($this->stockBundle . 'Ville')-> getCooperativeApi() ;
//var_dump($listeFournisseur) ;exit;
$i = 0;
$queryResult = array();
$dateJour = new \DateTime();
foreach ($listeFournisseur as $unFournisseur) {
$queryResult[$i]["id"] = $unFournisseur["id"];
$queryResult[$i]["nom"] = $unFournisseur["nom"] . " " . $unFournisseur["prenoms"];
$queryResult[$i]["nomFournisseur"] = $unFournisseur["nomFournisseur"];
$queryResult[$i]["village"] = $unFournisseur["village"];
$queryResult[$i]["idutil"] = $unFournisseur["idutil"];
$queryResult[$i]["siModification"] = $unFournisseur["siModification"];
$queryResult[$i]["siIntention"] = $unFournisseur["siIntention"];
$queryResult[$i]["siSemence"] = $unFournisseur["siSemence"];
$queryResult[$i]["idAnnee"] = $anneeCampagne;
$queryResult[$i]["telephone"] = $unFournisseur["telephone"];
$queryResult[$i]["entrepot"] = $entrepotRepository->getListeEntrepot();
// $queryResult[$i]["cooperative"] =$em->getRepository($this->stockBundle . 'Ville')-> getCooperativeApi() ;
//$queryResult[$i]["cooperative"]= $em->getRepository($this->prodBundle . 'Groupement')->getApiAllGroupement($objetUtilisateur->getAbonne()->getId() ); //getApiAllClient(0,0,0,2,0,0,[],$objetUtilisateur->getAbonne()->getId()) ;
$queryResult[$i]["achat"] = $infoLivrerRepository
->getApiRechercheProducteurLivraison(0, 0, 0, 0, 0, 0, $unFournisseur["id"]);
//$em->getRepository($this->stockBundle . 'InfoLivrer') ->getApiRechercheProducteurLivraison($unFournisseur["idutil"], 0, 0, 0,0,0,$unFournisseur["id"]) ;
$queryResult[$i]["intention"] = $surfaceAnneeRepository->getIntentionProducteur($unFournisseur["id"]);
$queryResult[$i]["semence"] = $commandeRepository->getApiFournisseurSemence(0, 0, 0, 0, 0, 0, 0, $unFournisseur["id"], 0, 20, 1);
$produit = $produitRepository->find(2);
$infoMontant = $prixRigueurRepository->findOneBy(array('produit' => $produit, 'etatPrixRigueur' => 1, 'typePrixRigueur' => 2));
if ($infoMontant == null) {
$prix = 0;
} else {
$prix = $infoMontant->getInfoPrixRigueur();
}
//var_dump($prix);exit;
$queryResult[$i]["prixAchat"] = $prix;
$detailUtil[$i] = $commandeRepository->getApiDetailFournisseurCommande($unFournisseur["id"], 0, 0, 0, 0, 0, 0, 0, 20, 1);
//Get Value for the current year
$currentValue = $surfaceAnneeRepository->getIntentionProducteurAnneeCompage($unFournisseur["id"], $anneeCampagne);
$infoStatCommande = $commandeRepository->getStatsRechercheCommandeProducteur($unFournisseur["id"], $dateJour->format("dd/mm/YY"), "01/05/2015", 0, 0, 0, 0, '0', 20, 1);
$totalLivre = $commandeRepository->getSumQuantiteLivraisonTotalProducteur($unFournisseur["id"], $dateJour->format("dd/mm/YY"), "01/05/2015", 0, 0, 0, 0, 20, 1, 0);
if ($infoStatCommande[0]['montantTotal'] == null) {
$queryResult[$i]["montantAvance"] = 0;
} else {
$queryResult[$i]["montantAvance"] = $infoStatCommande[0]['montantTotal'];
}
if ($totalLivre[0]["montantTotalLivraison"] == null) {
$queryResult[$i]["montantAchat"] = 0;
$queryResult[$i]["totalLivraison"] = 0;
} else {
$queryResult[$i]["montantAchat"] = $totalLivre[0]["montantTotalLivraison"];
$queryResult[$i]["totalLivraison"] = $totalLivre[0]["totalLivraison"];
}
if (count($currentValue) == 0) {
$queryResult[$i]["valSurface"] = 0;
} else {
//$id = $em->getRepository($this->prodBundle.'SurfaceAnnee')->
$newValueSurface = count($currentValue) - 1;
$queryResult[$i]["valSurface"] = $currentValue[$newValueSurface]["valSurface"];
}
if (count($detailUtil[$i]) == 0) {
$queryResult[$i]["quantiteReelle"] = 0;
$queryResult[$i]["montant"] = 0;
} else {
$queryResult[$i]["quantiteReelle"] = $detailUtil[$i][0]["quantiteReelle"];
$queryResult[$i]["codeProd"] = $detailUtil[$i][0]["codeProd"];
$queryResult[$i]["urlImage"] = $detailUtil[$i][0]["urlImage"];
$queryResult[$i]["montant"] = $detailUtil[$i][0]["montant"];
}
++$i;
}
// var_dump($detailUtil);exit;
$dataSend = $this->get('serializer')->serialize(array('data' => $queryResult), 'json');
$response = new Response($dataSend);
$response->headers->set('Content-Type', 'application/json');
return $response;
}
/**
* Creates a new user entity.
*
* @Route("/liste/intention/producteur/{idProd}", name="api_liste_intentions_producteurs")
* @Method({"GET","POST"})
*/
public function listeIntentionsProducteurAction(Request $request, $idProd, SurfaceAnneeRepository $surfaceAnneeRepository)
{
$em = $this->getDoctrine()->getManager();
$queryResult = $surfaceAnneeRepository->getIntentionProducteur($idProd);
// var_dump($detailUtil);exit;
$dataSend = $this->get('serializer')->serialize(array('data' => $queryResult), 'json');
$response = new Response($dataSend);
$response->headers->set('Content-Type', 'application/json');
return $response;
}
/**
* Creates a new user entity.
*
* @Route("/liste/map/intention/producteur/{typeLocalisation}/{idUtil}", name="api_liste_map_intentions_producteurs")
* @Method({"GET","POST"})
*/
public function listeIntentionsProducteurMapAction(Request $request, $typeLocalisation, $idUtil, SurfaceAnneeRepository $surfaceAnneeRepository, AbonneRepository $abonneRepository, UtilisateurRepository $utilisateurRepository)
{
$em = $this->getDoctrine()->getManager();
$objetUtilisateur = $utilisateurRepository->find($idUtil);
$tab = array();
$infoPartenaire = $this->getInfoPartenaire($em, $this->getAbonne($em, $objetUtilisateur->getAbonne()->getId(), $abonneRepository));
$tab[1]["type"] = 1;
$tab[1]["donnee"] = $surfaceAnneeRepository->getIntentionProducteurMap($typeLocalisation, $objetUtilisateur->getAbonne()->getId(), $infoPartenaire['partenaireId'], $infoPartenaire['typeAction']);
$tab[2]["type"] = 2;
$tab[2]["donnee"] = $surfaceAnneeRepository->getLocalisationFournisseurMap(3, $objetUtilisateur->getAbonne()->getId(), $infoPartenaire['partenaireId'], $infoPartenaire['typeAction']);
$dataSend = $this->get('serializer')->serialize(array('data' => $tab), 'json');
$response = new Response($dataSend);
$response->headers->set('Content-Type', 'application/json');
return $response;
}
/**
* Creates a new user entity.
*
* @Route("/liste/semence/producteur/{idProd}", name="api_liste_semence_producteurs")
* @Method({"GET","POST"})
*/
public function listeSemencesProducteurAction(Request $request, $idProd, CommandeRepository $commandeRepository)
{
$em = $this->getDoctrine()->getManager();
$queryResult = $commandeRepository->getApiFournisseurSemence(
0,
0,
0,
0,
0,
0,
0,
$idProd,
0,
20,
0
);
// var_dump($detailUtil);exit;
$dataSend = $this->get('serializer')->serialize(array('data' => $queryResult), 'json');
$response = new Response($dataSend);
$response->headers->set('Content-Type', 'application/json');
return $response;
}
/**
* Creates a new user entity.
*
* @Route("/liste/achat/producteur/{idProd}/{idFour}", name="api_liste_achat_producteurs")
* @Method({"GET","POST"})
*/
public function listeAchatsProducteurAction(
Request $request,
$idProd,
$idFour,
UtilisateurRepository $utilisateurRepository,
FournisseurRepository $fournisseurRepository,
InfoLivrerRepository $infoLivrerRepository,
SeTrouverRepository $seTrouverRepository
) {
$em = $this->getDoctrine()->getManager();
//Creation de l'objet fournisseur
$objetUtilisateur = $utilisateurRepository->find($idFour);
if ($idProd != 0) {
if ($objetUtilisateur->getProfil()->getId() == 11) {
$objetFournisseur = $fournisseurRepository->findOneBy(array('utilisateur' => $objetUtilisateur));
$queryResult = $infoLivrerRepository
->getApiRechercheProducteurLivraison($objetFournisseur->getId(), 0, 0, 0, 0, 0, $idProd);
} else {
$objetFournisseur = $fournisseurRepository->findOneBy(array('utilisateur' => $objetUtilisateur));
$queryResult = $infoLivrerRepository
->getApiRechercheProducteurLivraison(0, 0, 0, 0, 0, 0, $idProd);
}
} else {
$objetAgent = $fournisseurRepository->find($idFour);
if ($objetAgent == null) {
$id = 0;
//$idville = $ville;
//$objetVille = $em->getRepository($this->stockBundle . 'Ville')->find($ville);
$tabVille = 0; //$em->getRepository($this->stockBundle . 'SeTrouver')->findOneBy(array("ville"=>$objetVille));
} else {
$id = 0;
$idville = $objetAgent->getVille()->getId();
$tabVille = $seTrouverRepository->findBy(array("fournisseur" => $objetAgent));
}
$queryResult = $infoLivrerRepository->getApiNewRechercheProducteurLivraison($id, $tabVille, 0, 0, 0, 0, 0, 0, 0, 4, 0);
//var_dump(count($queryResult));exit;
}
// var_dump($detailUtil);exit;
$dataSend = $this->get('serializer')->serialize(array('data' => $queryResult), 'json');
$response = new Response($dataSend);
$response->headers->set('Content-Type', 'application/json');
return $response;
}
/**
* Creates a new user entity.
*
* @Route("/connexion/info", name="api_connexion_info")
* @Method({"POST"})
*/
public function apiConnexionAction(
Request $request,
LoginManager $loginManager,
ParametreManager $parametreManager,
UtilsManager $utilsManager,
AbonneRepository $abonneRepository,
ProduitRepository $produitRepository,
FournisseurRepository $fournisseurRepository,
ParamRepository $paramRepository,
UtilisateurRepository $reposiUtil,
ConnexionRepository $connexionRepository,
ActionRepository $actionRepository,
UtilisateurRepository $utilisateurRepository,
ProducteurRepository $producteurRepository,
ClientRepository $clientRepository
) {
$em = $this->getDoctrine()->getManager();
/*$listeFournisseur = $em->getRepository($this->stockBundle . 'Fournisseur')->getAllFournisseurByType(2) ;
//Envoyer la liste des agents Gebana
$tabInfomation["listeFournisseur"]=$listeFournisseur;
$dataSend = $this->get('serializer')->serialize(array('data'=>$tabInfomation), 'json');
$response = new Response($dataSend);
$response->headers->set('Content-Type', 'application/json');
//$this->logMessageddss .= ' [ USER ( ' . $email . ' ) BLOQUE TENTE DE SE /intentionR ] ';
return $response; */
//var_dump(1);exit;
$queryResult = [];
//$this->infos/intention($request, $loginManager, $paramRepositor,$connexionRepository, $actionRepository);;
$tabInfomation = [];
/*
* On vérifie si les parametres par défaut sont crées, si non on les ajoute
$paramTest = $parametreManager->getValeurParametre(TypeParametre::DUREE_TIME_OUT_INT);
if ($paramTest == NULL) {
$loginManager->addDefaultParametre();
}*/
//$loginManager->logout(1);
//$utilsManager = $this->get('utils_manager');
$maxAttempt = $loginManager->getMaxAttempt($paramRepository);
$parameters = json_decode($request->getContent(), true);
$device = trim($parameters['device']); // password saisie
//if( $device == 1 ){
$email = trim($parameters['username']); // email saisie
$password = trim($parameters['password']); // password saisie
//}
if (($email != NULL) && ($password != NULL) && !empty($email) && !empty($password)) {
$user = new Utilisateur();
// formulaire rempli
$user = $utilisateurRepository->getOneUserOnLogin($email, $this->userPasswordHasherInterface->hashPassword(
$user,
$password
));
if ($user == NULL) { // utilisateur introuvable avec le email et l password saisie
//$this->logMessage .=' [ USER INTROUVABLE AVEC PASS ET TEL ] ';
// on cherche l'utilisateur avec l emaol seulement
$user = $utilisateurRepository->getOneUserOnLoginForAttempt($email);
if ($user != NULL) { // L'utilisateur existe ds la db,il y a erreur de saisie de password
$tabInfomation["etat"] = false;
$tabInfomation["message"] = 'Email et/ou mot de passe invalides';
//Information à envoyer
$dataSend = $this->get('serializer')->serialize(array('data' => $tabInfomation), 'json');
$response = new Response($dataSend);
$response->headers->set('Content-Type', 'application/json');
return $response;
} else {
$tabInfomation["etat"] = false;
$tabInfomation["message"] = 'Email et/ou mot de passe invalides';
//Information à envoyer
$dataSend = $this->get('serializer')->serialize($tabInfomation, 'json');
$response = new Response($dataSend);
$response->headers->set('Content-Type', 'application/json');
return $response;
}
//$this->logMessage .=' [ USER INTROUVABLE AVEC EMAIl UNIQUEMENT ] ';
//$loginManager->writeLogMessage($this->logMessage);
} else { // utilisateur trouve avec tel et password saisie
/*
* Le profil de l'utilisateur est desactivé
*/
if (($user->getProfil()->getEtat() == TypeEtat::INACTIF) || ($user->getEtat() == TypeEtat::INACTIF)) {
$tabInfomation["etat"] = false;
$tabInfomation["message"] = 'Votre compte est désactivé';
//Information à envoyer
$dataSend = $this->get('serializer')->serialize($tabInfomation, 'json');
$response = new Response($dataSend);
$response->headers->set('Content-Type', 'application/json');
return $response;
}
$adresseIp = $_SERVER['REMOTE_ADDR'];
$user->setAdresseIp($adresseIp);
$con = new Connexion($adresseIp);
$con->setUtilisateur($user);
$con->setAdresseIp($adresseIp);
$user->addConnexion($con);
$em->persist($con);
$em->flush();
$user->setAttempt(0);
$user->setEtat/intention(TRUE);
$user->setDateSynchronisation(new \DateTime());
$em->flush();
$listeFournisseur = $fournisseurRepository->getAllFournisseurByType(1, $user->getAbonne()->getId());
$queryResult = $utilisateurRepository->findApiUtilisateur($user->getId());
$tabInfomation["etat"] = true;
$tabInfomation["message"] = 'Connexion reussié !';
$tabInfomation["username"] = $user->getUsername();
$tabInfomation["nomPrenoms"] = $user->getNom() . " " . $user->getPrenoms();
$tabInfomation["email"] = $user->getEmail();
$tabInfomation["idProfil"] = $user->getProfil()->getId();
$tabInfomation["siFournisseur"] = $user->getProfil()->getLieFournisseur();
$tabInfomation["adresse"] = $user->getAdresse();
$tabInfomation["telephone"] = $user->getTel1();
$tabInfomation["abonne"] = $user->getAbonne()->getId();
$tabInfomation["nomAbonne"] = $user->getAbonne()->getNom();
$tabInfomation["typeUtilisateur"] = $user->getTypeUtilisateur();
$tabInfomation["typeAbonne"] = $user->getAbonne()->getTypeAbonne()->getId();
$tabInfomation["typeActionProduit"] = $user->getAbonne()->getTypeActionProduit();
$tabInfomation["id"] = $user->getId();
if ($user->getAbonne()->getPartenaire() != null) {
$tabInfomation["partenaire"] = $user->getAbonne()->getPartenaire()->getUrlImage();
} else {
$tabInfomation["partenaire"] = "0";
}
if ($device == 2) {
$objetClient = $clientRepository->findOneBy(["utilisateur" => $user]);
$tabInfomation["codeGenereClient"] = $objetClient->getCodeGenere();
}
//Envoyer la liste des agents Gebana
$tabInfomation["listeFournisseur"] = $listeFournisseur;
//Prendre le code du produicteur
$objetProducteur = $producteurRepository->findOneBy(["utilisateur" => $user]);
if ($objetProducteur != null)
$codeProd = $objetProducteur->getCodeGenere();
else
$codeProd = 0;
$tabInfomation["prodCodeGenere"] = $codeProd;
$user = $this->getUser();
$dataSend = $this->get('serializer')->serialize(array('data' => $tabInfomation), 'json');
$response = new Response($dataSend);
$response->headers->set('Content-Type', 'application/json');
//$this->logMessageddss .= ' [ USER ( ' . $email . ' ) BLOQUE TENTE DE SE CONNECTER ] ';
return $response;
}
} else {
$tabInfomation["etat"] = false;
$tabInfomation["message"] = "Formulaire Invalide. Les champs Email et Mot de passe sont obligatoires";
//Information à envoyer
$dataSend = $this->get('serializer')->serialize($tabInfomation, 'json');
$response = new Response($dataSend);
$response->headers->set('Content-Type', 'application/json');
//$this->logMessage .= ' [ ' . "Formulaire Invalide. Les champs Email et Mot de passe sont obligatoires" . ' ] ';
return $response;
}
return true;
}
/**
* Creates a new user entity.
*
* @Route("/me/info", name="api_me_info")
* @Method({"POST"})
*/
public function apiMeInfoAction(
Request $request,
LoginManager $loginManager,
ParametreManager $parametreManager,
UtilsManager $utilsManager,
AbonneRepository $abonneRepository,
ProduitRepository $produitRepository,
FournisseurRepository $fournisseurRepository,
ParamRepository $paramRepository,
UtilisateurRepository $reposiUtil,
ConnexionRepository $connexionRepository,
ActionRepository $actionRepository,
UtilisateurRepository $utilisateurRepository,
ProducteurRepository $producteurRepository,
ClientRepository $clientRepository
) {
$em = $this->getDoctrine()->getManager();
$token = $this->_tokenStorage->getToken();
if (!$token) {
return $this->json([
'status' => 400,
'user' => null
], 400);
}
$user = $token->getUser();
$listeFournisseur = $fournisseurRepository->getAllFournisseurByType(1, $user->getAbonne()->getId());
$queryResult = $utilisateurRepository->findApiUtilisateur($user->getId());
//mettre que la personne est connectée.
if ($user->getEtatConnecte()) {
$tabInfomation["etatConnexion"] = true; // tout le temps connecté
} else {
$tabInfomation["etatConnexion"] = true;
}
if ($user->getId() == 9553)
$tabInfomation["etatConnexion"] = true;
$tabInfomation["message"] = 'Connexion reussié !';
$tabInfomation["username"] = $user->getUsername();
$tabInfomation["nomPrenoms"] = $user->getNom() . " " . $user->getPrenoms();
$tabInfomation["email"] = $user->getEmail();
$tabInfomation["idProfil"] = $user->getProfil()->getId();
$tabInfomation["siFournisseur"] = $user->getProfil()->getLieFournisseur();
$tabInfomation["adresse"] = $user->getAdresse();
$tabInfomation["telephone"] = $user->getTel1();
$tabInfomation["abonne"] = $user->getAbonne()->getId();
$tabInfomation["nomAbonne"] = $user->getAbonne()->getNom();
$tabInfomation["typeUtilisateur"] = $user->getTypeUtilisateur();
$tabInfomation["typeAbonne"] = $user->getAbonne()->getTypeAbonne()->getId();
$tabInfomation["typeActionProduit"] = $user->getAbonne()->getTypeActionProduit();
$tabInfomation["id"] = $user->getId();
$tabInfomation["siExplotation"] = $user->getAbonne()->getSiExploitation();
$tabInfomation["etatUtilisateur"] = $user->getEtat();
if ($user->getAbonne()->getPartenaire() != null) {
$tabInfomation["partenaire"] = $user->getAbonne()->getPartenaire()->getUrlImage();
} else {
$tabInfomation["partenaire"] = "0";
}
$objetClient = $clientRepository->findOneBy(["utilisateur" => $user]);
if ($objetClient != NULL)
$tabInfomation["codeGenereClient"] = $objetClient->getCodeGenere();
else
$tabInfomation["codeGenereClient"] = "";
//Envoyer la liste des agents Gebana
$tabInfomation["listeFournisseur"] = $listeFournisseur;
//Prendre le code du produicteur
$objetProducteur = $producteurRepository->findOneBy(["utilisateur" => $user]);
if ($objetProducteur != null)
$codeProd = $objetProducteur->getCodeGenere();
else
$codeProd = 0;
$tabInfomation["prodCodeGenere"] = $codeProd;
if($user->getAbonne() != null && $user->getAbonne()->getTypeAbonne()->getId() != 4)
$user->setEtatConnecte(TRUE);
$em->persist($user);
$em->flush();
$dataSend = $this->get('serializer')->serialize(array('data' => $tabInfomation), 'json');
$response = new Response($dataSend);
$response->headers->set('Content-Type', 'application/json');
//$this->logMessageddss .= ' [ USER ( ' . $email . ' ) BLOQUE TENTE DE SE CONNECTER ] ';
return $response;
}
/**
* Creates a new user entity.
*
* @Route("/me/producteur/info", name="api_me_producteur_info")
* @Method({"POST"})
*/
public function apiMeProducteurInfoAction(
Request $request,
LoginManager $loginManager,
ParametreManager $parametreManager,
UtilsManager $utilsManager,
AbonneRepository $abonneRepository,
ProduitRepository $produitRepository,
FournisseurRepository $fournisseurRepository,
ParamRepository $paramRepository,
UtilisateurRepository $reposiUtil,
ConnexionRepository $connexionRepository,
ActionRepository $actionRepository,
UtilisateurRepository $utilisateurRepository,
ProducteurRepository $producteurRepository,
ClientRepository $clientRepository,
SurfaceAnneeRepository $surfaceAnneeRepository
) {
$em = $this->getDoctrine()->getManager();
$token = $this->_tokenStorage->getToken();
if (!$token) {
return $this->json([
'status' => 400,
'user' => null
], 400);
}
$user = $token->getUser();
$listeFournisseur = $fournisseurRepository->getAllFournisseurByType(1, $user->getAbonne()->getId());
$queryResult = $utilisateurRepository->findApiUtilisateur($user->getId());
//mettre que la personne est connectée.
if ($user->getEtatConnecte()) {
$tabInfomation["etatConnexion"] = false;
} else {
$tabInfomation["etatConnexion"] = true;
}
if ($user->getId() == 9553)
$tabInfomation["etatConnexion"] = true;
$tabInfomation["message"] = 'Connexion reussié !';
$tabInfomation["username"] = $user->getUsername();
$tabInfomation["nomPrenoms"] = $user->getNom() . " " . $user->getPrenoms();
$tabInfomation["email"] = $user->getEmail();
$tabInfomation["idProfil"] = $user->getProfil()->getId();
$tabInfomation["siFournisseur"] = $user->getProfil()->getLieFournisseur();
$tabInfomation["adresse"] = $user->getAdresse();
$tabInfomation["telephone"] = $user->getTel1();
$tabInfomation["abonne"] = $user->getAbonne()->getId();
$tabInfomation["nomAbonne"] = $user->getAbonne()->getNom();
$tabInfomation["typeUtilisateur"] = $user->getTypeUtilisateur();
$tabInfomation["typeAbonne"] = $user->getAbonne()->getTypeAbonne()->getId();
$tabInfomation["typeActionProduit"] = $user->getAbonne()->getTypeActionProduit();
$tabInfomation["id"] = $user->getId();
$tabInfomation["siExplotation"] = $user->getAbonne()->getSiExploitation();
$tabInfomation["etatUtilisateur"] = $user->getEtat();
if ($user->getAbonne()->getPartenaire() != null) {
$tabInfomation["partenaire"] = $user->getAbonne()->getPartenaire()->getUrlImage();
} else {
$tabInfomation["partenaire"] = "0";
}
$objetClient = $clientRepository->findOneBy(["utilisateur" => $user]);
if ($objetClient != NULL)
$tabInfomation["codeGenereClient"] = $objetClient->getCodeGenere();
else
$tabInfomation["codeGenereClient"] = "";
//Envoyer la liste des agents Gebana
$tabInfomation["listeFournisseur"] = $listeFournisseur;
//Prendre le code du produicteur
$objetProducteur = $producteurRepository->findOneBy(["utilisateur" => $user]);
if ($objetProducteur != null){
$codeProd = $objetProducteur->getCodeGenere();
$producteurId = $objetProducteur->getId();
}else{
$codeProd = 0;
$producteurId =0;
}
$tabInfomation["prodCodeGenere"] = $codeProd;
$tabInfomation[0]["producteur"] = $fournisseurRepository->getAllFournisseurProducteurAPINew(0, array(), $niveau = 3, $prod = 0, $type = 0, $user->getAbonne()->getId(), $caisse = 0, $producteurId, 0, 0, 0);
$tabInfomation[0]["localisation"] = $fournisseurRepository->getAllFournisseurProducteurLocalisationAPINew(0, array(), $niveau = 3, $prod = 0, $type = 0, $user->getAbonne()->getId(), $caisse = 0, $producteurId, 0, 0, 0);
$tabInfomation[0]["image"] = $fournisseurRepository->getAllFournisseurProducteurImageAPINew(0, array(), $niveau = 3, $prod = 0, $type = 0, $user->getAbonne()->getId(), $caisse = 0, $producteurId, 0, 0, 0);
$tabInfomation[0]["intention"]= $surfaceAnneeRepository->getIntentionProducteurAnneeCompage($producteurId,$anneeCampagne=0);
$user->setEtatConnecte(TRUE);
$em->persist($user);
$em->flush();
$dataSend = $this->get('serializer')->serialize(array('data' => $tabInfomation), 'json');
$response = new Response($dataSend);
$response->headers->set('Content-Type', 'application/json');
//$this->logMessageddss .= ' [ USER ( ' . $email . ' ) BLOQUE TENTE DE SE CONNECTER ] ';
return $response;
}
/**
* Creates a new user entity.
*
* @Route("/liste/mes/operations/{id}/{type}", name="api_liste_mes_operations")
* @Method({"GET","POST"})
*/
public function listeApiMesOperationsAction(
Request $request,
$id,
$type,
FournisseurRepository $fournisseurRepository,
InfoLivrerRepository $infoLivrerRepository
) {
$em = $this->getDoctrine()->getManager();
$data = $request->getContent();
$queryResult = [];
$this->initialisePreparationPayement($em);
$objetFournisseur = $fournisseurRepository->find($id);
//if(count($objetFournisseur)!=0){
//$queryResult = $em->getRepository($this->stockBundle . 'Commande')-> getApiListeRechercheCommande($id, 0, 0, 0, 0, 0, 0, 0,20,1) ;
//}
$queryResult = $infoLivrerRepository
->getApiRechercheProducteurLivraison(0, 0, 0, 0, 0, 0, 0, 0, 0, $type);
$dataSend = $this->get('serializer')->serialize(array('data' => $queryResult), 'json');
$response = new Response($dataSend);
$response->headers->set('Content-Type', 'application/json');
return $response;
}
/**
* Creates a new user entity.
*
* @Route("/liste/deja/paye/mes/operations/{id}", name="api_liste_deja_paye_mes_operations")
* @Method({"GET","POST"})
*/
public function listeApiDejaPayeMesOperationsAction(
Request $request,
$id,
FournisseurRepository $fournisseurRepository,
InfoLivrerRepository $infoLivrerRepository
) {
$em = $this->getDoctrine()->getManager();
$data = $request->getContent();
$queryResult = [];
// $this->initialisePreparationPayement($em);
$objetFournisseur = $fournisseurRepository->find($id);
//if(count($objetFournisseur)!=0){
//$queryResult = $em->getRepository($this->stockBundle . 'Commande')-> getApiListeRechercheCommande($id, 0, 0, 0, 0, 0, 0, 0,20,1) ;
//}
$queryResult = $infoLivrerRepository
->getApiRechercheProducteurLivraison(0, 0, 0, 0, 0, 2, 0);
$dataSend = $this->get('serializer')->serialize(array('data' => $queryResult), 'json');
$response = new Response($dataSend);
$response->headers->set('Content-Type', 'application/json');
return $response;
}
/**
* Creates a new user entity.
*
* @Route("/liste/entrepot", name="api_liste_entrepots")
* @Method({"GET","POST"})
*/
public function listeApiEntrepotAction(Request $request, EntrepotRepository $entrepotRepository)
{
$em = $this->getDoctrine()->getManager();
$data = $request->getContent();
$queryResult = [];
$queryResult = $entrepotRepository->getListeEntrepot();
$dataSend = $this->get('serializer')->serialize($queryResult, 'json');
$response = new Response($dataSend);
$response->headers->set('Content-Type', 'application/json');
return $response;
}
/**
* Creates a new user entity.
*
* @Route("/user/{id}", name="api_detail_user")
* @Method({"GET","POST"})
*/
public function detailApiUserAction(Request $request, $id, UtilisateurRepository $utilisateurRepository)
{
$em = $this->getDoctrine()->getManager();
$data = $request->getContent();
$queryResult = $utilisateurRepository->findApiUtilisateur($id);
$dataSend = $this->get('serializer')->serialize($queryResult, 'json');
$response = new Response($dataSend);
$response->headers->set('Content-Type', 'application/json');
return $response;
}
/**
* Creates a new user entity.
*
* @Route("/detail/producteur/{id}", name="api_detail_detail_producteur")
* @Method({"GET","POST"})
*/
public function detailApiProducteurAction(Request $request, $id, ProducteurRepository $producteurRepository)
{
$em = $this->getDoctrine()->getManager();
$data = $request->getContent();
$queryResult = $producteurRepository->getDetailProducteur($id);
$dataSend = $this->get('serializer')->serialize($queryResult, 'json');
$response = new Response($dataSend);
$response->headers->set('Content-Type', 'application/json');
return $response;
}
/**
* Creates a new user entity.
*
* @Route("/save/fournisseur/achat", name="api_save_fournisseur_achat")
* @Method({"GET","POST"})
*/
public function saveFournisseurAchatAction(
Request $request,
ProduitRepository $produitRepository,
AnneeCampagneRepository $anneeCampagneRepository,
CommandeRepository $commandeRepository,
SurfaceAnneeRepository $surfaceAnneeRepository,
ProducteurRepository $producteurRepository,
UtilisateurRepository $utilisateurRepository,
LigneCommandeRepository $ligneCommandeRepository,
EntrepotRepository $entrepotRepository,
PrixRigueurRepository $prixRigueurRepository,
LivrerRepository $livrerRepository,
ProducteurLivraisonRepository $producteurLivraisonRepository,
VilleRepository $villeRepository,
SurfaceRepository $surfaceRepository,
FournisseurRepository $fournisseurRepository,
LocalisationRepository $localisationRepository,
SurfaceAbonneRepository $surfaceAbonneRepository,
ProducteurAbonneRepository $producteurAbonneRepository,
InfoLivrerRepository $infoLivrerRepository
) {
$em = $this->getDoctrine()->getManager();
//$data = $request->getContent();
$em->getConnection()->beginTransaction();
$responce = true;
try {
$tab = array();
$parameters = json_decode($request->getContent(), true);
$quantitePese = trim($parameters['quantite_pese']); // email saisie
$quantiteReelle = trim($parameters['quantite_reelle']); // email saisie
$prodCodeGenere = trim($parameters['prodCodeGenere']); // email saisie
$nomEntrepot = trim($parameters['entrepot']); // email saisie
$paiementType = trim($parameters['paiementType']); // email saisie
$produit = trim($parameters['produitId']); // email saisie
$producteurId = trim($parameters['producteurId']); // email saisie
$active = 1;
$objetProduit = $produitRepository->find($produit);
$objetAnneeCampagne = $anneeCampagneRepository->findOneBy(array("produit" => $objetProduit->getProduit(), "etatAnneeCampagne" => 1));
if ($objetAnneeCampagne == null) {
$anneecampagne_id = 0;
} else {
$anneecampagne_id = $objetAnneeCampagne->getId(); //$request->request->get('entrepot');
}
$util = $request->request->get('idUtil');
$lignecommande_id = $request->request->get('lignecommande_id');
$codeGenere = $request->request->get('codeGenere');
$parCodeGenere = $request->request->get('parCodeGenere');
$tab[0] = $quantitePese;
$tab[0] = $quantitePese;
$montant = 0; //$request->request->get('montant');
$tab[1] = $prodCodeGenere;
$tab[2] = $parCodeGenere;
$tab[3] = $util;
$tab[4] = $util;
$tab[6] = $produit;
$tab[5] = $request->request->get('codeGenere'); //$request->request->get('codeGenere');
$donnee = $quantitePese . "#" . $quantiteReelle . "#" . $montant . "#" . $prodCodeGenere . "#" . $nomEntrepot . "#" . $paiementType . "#" . $util . "#" . $lignecommande_id . "#" . $codeGenere;
$ligneCommande = $commandeRepository->getLigneCommandeOperation($producteurId, $anneecampagne_id);
$d = new \DateTime();
$an = $d->format('Y');
$m = $d->format('m');
$j = $d->format('d');
if ($ligneCommande != NULL) {
$ligneCommande = $ligneCommande[0];
} else {
$ligneCommande = $this->saveLigneCommande(
$em,
$tab,
$produitRepository,
$villeRepository,
$surfaceRepository,
$commandeRepository,
$prixRigueurRepository,
$utilisateurRepository,
$producteurRepository,
$anneeCampagneRepository,
$fournisseurRepository,
$surfaceAnneeRepository,
$localisationRepository,
$surfaceAbonneRepository,
$producteurAbonneRepository
);
}
$refCommande = $this->getRefCommandeSoja($em, 1, $an, $m, $entite = 'LIVRER', $taille = 5, 1);
//Creation de l'objet fournisseur
$objetUtilisateur = $utilisateurRepository->find($util);
$objetFournisseur = $fournisseurRepository->findOneBy(array('utilisateur' => $objetUtilisateur));
$objetUtil = $utilisateurRepository->find($util);
$objetLigneCommande = $ligneCommandeRepository->find($lignecommande_id);
$objetProducteur = $producteurRepository->findOneBy(array("codeGenere" => $prodCodeGenere, "abonne" => $objetUtilisateur->getAbonne()));
$objetParcelle = $surfaceAnneeRepository->findOneBy(array("codeGenere" => $parCodeGenere, "abonne" => $objetUtilisateur->getAbonne()));
$objetEntrepot = $entrepotRepository->findOneBy(array("nomEntrepot" => $nomEntrepot));
$objetPrix = $prixRigueurRepository->findOneBy(array("produit" => $objetProduit, "typePrixRigueur" => 1, "etatPrixRigueur" => 1));
$objetInfoLivrer = $infoLivrerRepository->findOneBy(array("codeGenere" => $codeGenere));
if ($objetInfoLivrer == null) {
$objetInfoLivrer = new InfoLivrer();
}
//Enregestre ces données comme livraison
$objetInfoLivrer->setNbreTotalLivre($quantiteReelle);
$objetInfoLivrer->setNbreSaisie($quantitePese);
$objetInfoLivrer->setRefBonLivraison("L" . $refCommande);
$objetInfoLivrer->setRefBonReception("L" . $refCommande);
$objetInfoLivrer->setFournisseur($objetFournisseur);
$objetInfoLivrer->setSiModification($active);
$objetInfoLivrer->setPrixrigueur($objetPrix);
$objetInfoLivrer->setAnneecampagne($objetAnneeCampagne);
$objetInfoLivrer->setCodeGenere($codeGenere);
$objetInfoLivrer->setSurfaceannee($objetParcelle);
$objetInfoLivrer->setTypeInfoLivrer($produit);
$objetInfoLivrer->setTypePayement($paiementType);
$objetInfoLivrer->setVariete($objetProduit);
$em->persist($objetInfoLivrer);
$em->flush($objetInfoLivrer);
$objetLivrer = $livrerRepository->findOneBy(array("infolivrer" => $objetInfoLivrer));
if ($objetLivrer == null) {
$objetLivrer = new Livrer();
}
$objetLivrer->setNbreLivre($quantiteReelle);
$objetLivrer->setNbreReste(0);
$objetLivrer->setRefBonLivraison("L" . $refCommande);
$objetLivrer->setRefBonReception("L" . $refCommande);
$objetLivrer->setLignecommande($ligneCommande);
$objetLivrer->setInfolivrer($objetInfoLivrer);
//$objetLivrer->setEntrepot($objetEntrepot);
$em->persist($objetLivrer);
$em->flush($objetLivrer);
$producteurLivraison = $producteurLivraisonRepository->findOneBy(array("infolivrer" => $objetInfoLivrer, "producteur" => $objetProducteur));
if ($producteurLivraison == null) {
$producteurLivraison = new ProducteurLivraison();
}
$producteurLivraison->setProducteur($objetProducteur);
$producteurLivraison->setInfolivrer($objetInfoLivrer);
$em->persist($producteurLivraison);
$em->flush($producteurLivraison);
$objetProducteur->setSiModification($active);
$em->persist($objetProducteur);
$em->flush($objetProducteur);
$this->addHistoriqueAction($em, "ProducteurAchat", 1, $codeGenere, $objetUtil->getId(), $objetProducteur->getId(), 1, $donnee, $utilisateurRepository);
$em->getConnection()->commit();
} catch (\Exception $e) {
$responce = false;
$em->getConnection()->rollBack();
throw $e;
}
//Envoi des donnée
$dataSend = $this->get('serializer')->serialize(array('server_response' => true), 'json');
$response = new Response($dataSend);
$response->headers->set('Content-Type', 'application/json');
return $response;
}
/**
* Creates a new user entity.
*
* @Route("/save/fournisseur/semence", name="api_save_producteur_semence")
* @Method({"GET","POST"})
*/
public function saveFournisseurSemenceAction(Request $request)
{
$responce = true;
$em = $this->getDoctrine()->getManager();
$data = $request->getContent();
$parameters = json_decode($request->getContent(), true);; // email saisie
$tab[0] = trim($parameters['val_surface']);
$montant = 0; //$request->request->get('montant');
$tab[1] = trim($parameters['prodCodeGenere']);
$tab[2] = trim($parameters['parCodeGenere']);
$tab[3] = trim($parameters['idUtil']);
$tab[4] = trim($parameters['idFournisseur']);
$tab[6] = 1;
$tab[5] = trim($parameters['codeGenere']); //$request->request->get('codeGenere');
$this->saveLigneCommande($em, $tab, $objetInfoLivrer, $objetCommande, $objetProduit, $objetPrixRigueur, $quantite, $idLigneCommande = 0, $etat = 1);
//Envoi des donnée
$dataSend = $this->get('serializer')->serialize(array('server_response' => $responce), 'json');
$response = new Response($dataSend);
$response->headers->set('Content-Type', 'application/json');
return $response;
}
/**
* Creates a new user entity.
*
* @Route("/save/fournisseur/intention", name="api_save_producteur_intention")
* @Method({"GET","POST"})
*/
public function saveFournisseurIntentionAction(
Request $request,
ProduitRepository $produitRepository,
VilleRepository $villeRepository,
SurfaceAnneeRepository $surfaceAnneeRepository,
ProducteurRepository $producteurRepository,
UtilisateurRepository $utilisateurRepository,
SurfaceRepository $surfaceRepository,
AnneeCampagneRepository $anneeCampagneRepository,
PrixRigueurRepository $prixRigueurRepository,
SurfaceAnneeHistoriqueRepository $surfaceAnneeHistoriqueRepository,
ProduitAbonneRepository $produitAbonneRepository
) {
$responce = true;
$em = $this->getDoctrine()->getManager();
//$data = $request->getContent();
$em->getConnection()->beginTransaction();
try {
$parameters = json_decode($request->getContent(), true);
$valSurface = trim($parameters['valSurface']); // email saisie
$prodCodeGenere = trim($parameters['prodCodeGenere']);
$codeGenere = trim($parameters['codeGenere']);
$codeParcelle = trim($parameters['codeParcelle']);
$typeParcelle = trim($parameters['typeParcelle']);
$explCodeGenere = trim($parameters['explCodeGenere']);
$idVille = trim($parameters['idVille']);
$idUtil = trim($parameters['idUtil']);
$idVariete = trim($parameters['idVariete']);
$donnee = $valSurface . "#" . $prodCodeGenere . "#" . $codeGenere . "#" . $codeParcelle . "#" . $idVille . "#" . $idVariete . "#0#" . $idUtil . "#" . $explCodeGenere . "#" . $typeParcelle . "#0#0#3";
//$produit =2;
$objetProduit = $produitRepository->find($idVariete);
$objetVille = $villeRepository->find($idVille);
$objetUtilisateur = $utilisateurRepository->find($idUtil);
$objetAnneeCampagne = $anneeCampagneRepository->findOneBy(array("produit" => $objetProduit->getProduit(), "etatAnneeCampagne" => 1));
//$anneecampagne_id =
//$campagne_id = $objetAnneeCampagne->getId();//$request->request->get('producteur_id');
//$campagne_id = 1;//$request->request->get('producteur_id');
//Creation de l'objet fournisseur
// $objetAnneeCampagne = $em->getRepository($this->prodBundle . 'AnneeCampagne')->find($campagne_id) ;
//$objetProducteur = $em->getRepository($this->prodBundle . 'Producteur')->find($producteur_id) ;
$objetProducteur = $producteurRepository->findOneBy(array("codeGenere" => $prodCodeGenere, "abonne" => $objetUtilisateur->getAbonne()));
$objetExploitation = $surfaceAnneeRepository->findOneBy(array("codeSurface" => $explCodeGenere, "abonne" => $objetUtilisateur->getAbonne()));
$objetSurface = $surfaceRepository->findOneBy(array('valSurface' => $valSurface));
//Tester si la surface existe deja
$objetSurfaceAnnee = $surfaceAnneeRepository->findOneBy(array("codeGenere" => $codeGenere, 'anneecampagne' => $objetAnneeCampagne));
$siPrincipale = 0;
$newAdd = 1;
if ($objetSurfaceAnnee == null) {
$objetSurfaceAnnee = new SurfaceAnnee();
$siPrincipale = 1;
$newAdd = 0;
}
$objetSurfaceAnnee->setSuperficie($valSurface);
$objetSurfaceAnnee->setCodeParcelle($codeParcelle);
$objetSurfaceAnnee->setCodeSurface($codeParcelle);
$objetSurfaceAnnee->setCodeGenere($codeGenere);
$objetSurfaceAnnee->setVille($objetVille);
if ($objetAnneeCampagne != null) {
$objetSurfaceAnnee->setAnneeCampagne($objetAnneeCampagne);
}
$objetSurfaceAnnee->setProduit($objetProduit);
$objetSurfaceAnnee->setSurface($objetSurface);
$objetSurfaceAnnee->setProducteur($objetProducteur);
$objetSurfaceAnnee->setUtilisateur($objetUtilisateur);
$objetSurfaceAnnee->setTypeParcelle($typeParcelle);
if ($objetExploitation != null)
$objetSurfaceAnnee->setSurfaceannee($objetExploitation);
$objetSurfaceAnnee->setAbonne($objetUtilisateur->getAbonne());
$objetSurfaceAnnee->setProdCodeGenere($prodCodeGenere);
$em->persist($objetSurfaceAnnee);
$em->flush($objetSurfaceAnnee);
//le mettre dans l'historique
/*$objetSurfaceAnneeHistorique = new SurfaceAnneeHistorique();
$objetSurfaceAnneeHistorique->setAnneeCampagne($objetAnneeCampagne);
$objetSurfaceAnneeHistorique->setSurfaceAnnee($objetSurfaceAnnee);
$em->persist($objetSurfaceAnneeHistorique);
$em->flush($objetSurfaceAnneeHistorique); */
//recuparation des abonnee lie au partenaires
if($newAdd == 0){
if ($objetUtilisateur->getAbonne() != null) {
if ($objetUtilisateur->getAbonne()->getPartenaire() != null && $objetUtilisateur->getAbonne()->getSiPrincipale()) {
$listeAbonnePartenaire = $produitAbonneRepository->findBy(array("produit" => $objetProduit));
foreach ($listeAbonnePartenaire as $unAbonnePartenaire) {
$this->setAbonnePartenaire($em, $unAbonnePartenaire->getAbonne(), $unAbonnePartenaire->getPartenaire(), $objetSurfaceAnnee, $typeObjet = 3, $siPrincipale);
}
} else {
$this->setAbonnePartenaire($em, $objetSurfaceAnnee->getAbonne(), $objetSurfaceAnnee->getAbonne()->getPartenaire(), $objetSurfaceAnnee, $typeObjet = 3, $siPrincipale);
}
}
}
$this->insertSurfaceAnneeHistorique($em, $objetSurfaceAnnee, $objetAnneeCampagne, $surfaceAnneeHistoriqueRepository);
/*
$objetSurfaceAnnee = $em->getRepository($this->prodBundle . 'SurfaceAnnee')
->findOneBy(array('anneecampagne'=>$objetAnneeCampagne,'producteur'=>$objetProducteur, )) ;
if(count($objetSurfaceAnnee)== 0 ){
$objetSurfaceAnnee = new SurfaceAnnee();
$objetSurface = $this->saveSurfaceAnnee($em,$objetSurfaceAnnee,$objetAnneeCampagne,$objetSurface,$objetProduit,$objetProducteur,$codeGenere);
}else{
$objetSurface = $this->saveSurfaceAnnee($em,$objetSurfaceAnnee,$objetAnneeCampagne,$objetSurface,$objetProduit,$objetProducteur,$codeGenere);
}
//Mettre à jour l'état intention
$objetProducteur->setSiIntention(1);
$em->persist($objetProducteur);
$em->flush($objetProducteur);
//sauvegarder les données dans la table détail
$objetDetailSurface = new DetailSurface();
$objetDetailSurface->setValSurface($valSurface);
$objetDetailSurface->setSurfaceannee($objetSurface);
$em->persist($objetDetailSurface);
$em->flush($objetDetailSurface);*/
$this->addHistoriqueAction($em, 'ProducteurIntention', 1, $codeGenere, $idUtil, $objetProducteur->getId(), 1, $donnee, $utilisateurRepository);
$em->getConnection()->commit();
} catch (\Exception $e) {
$tabInfomation["etat"] = false;
$em->getConnection()->rollBack();
throw $e;
}
//Envoi des donnée
$tabInfomation["etat"] = true;
$tabInfomation["codeGenere"] = $parameters['codeGenere'];
$dataSend = $this->get('serializer')->serialize(array('data' => $tabInfomation), 'json');
$response = new Response($dataSend);
$response->headers->set('Content-Type', 'application/json');
return $response;
}
/**
* Creates a new user entity.
*
* @Route("/save/achat/sac", name="api_save_achat_sac")
* @Method({"GET","POST"})
*/
public function saveAchatSacAction(
Request $request,
ProduitRepository $produitRepository,
VilleRepository $villeRepository,
SurfaceAnneeRepository $surfaceAnneeRepository,
LivrerRepository $livrerRepository,
ProducteurRepository $producteurRepository,
UtilisateurRepository $utilisateurRepository,
SurfaceRepository $surfaceRepository,
AnneeCampagneRepository $anneeCampagneRepository,
PrixRigueurRepository $prixRigueurRepository,
SacRepository $sacRepository
) {
$responce = true;
$em = $this->getDoctrine()->getManager();
//$data = $request->getContent();
$em->getConnection()->beginTransaction();
try {
//Recupération des données utilisateur
$parameters = json_decode($request->getContent(), true);
$quantite = trim($parameters['quantite']); // email saisie
$codeSac = trim($parameters['codeSac']); // email saisie
$codeGenere = trim($parameters['codeGenere']); // email saisie
$achatCodeGenere = trim($parameters['achatCodeGenere']); // email saisie
$prodCodeGenere = trim($parameters['prodCodeGenere']); // email saisie
$idUtil = trim($parameters['idUtil']); // email saisie
//Reception des information sur le Sac
$objetSac = $sacRepository->findOneBy(array('codeSac' => $codeSac));
$donnee = $quantite . "#" . $codeSac . "#" . $codeGenere . "#L" . $achatCodeGenere . "#" . $idUtil;
//$objetCodeBarre = $em->getRepository($this->stockBundle . 'CodeBarre')->findOneBy(array("codeBarre"=>$codeSac)) ;
$objetUtilisateur = $utilisateurRepository->find($idUtil);
$objetInfoLivrer = $objetSac->getInfolivrer(); //$em->getRepository($this->stockBundle . 'InfoLivrer')->findOneBy(array('refBonLivraison'=>$achatCodeGenere, 'abonne'=>$objetUtilisateur->getAbonne())) ;
$objetParcelle = $surfaceAnneeRepository->findOneBy(array('codeGenere' => $prodCodeGenere));
//$objetProducteur = $objetParcelle->getProducteur();
//Creer la ligne de la commande
$objetLivrer = $livrerRepository->findOneBy(array("infolivrer" => $objetInfoLivrer, 'producteur' => $objetProducteur));
if ($objetLivrer == null)
$objetLivrer = new Livrer();
//$objetLivrer->setNombreSac($quantite);
$objetLivrer->setRefBonLivraison($achatCodeGenere);
$objetLivrer->setRefBonReception($achatCodeGenere);
$objetLivrer->setInfolivrer($objetInfoLivrer);
$objetLivrer->setSurfaceannee($objetParcelle);
$objetLivrer->setNbreLivre($quantite);
$objetLivrer->setNbreReste(0);
$em->persist($objetLivrer);
$em->flush($objetLivrer);
//$objetSac = $em->getRepository($this->stockBundle . 'Sac')->findOneBy(array('codeGenere'=>$codeGenere, "infolivrer"=>$objetInfoLivrer)) ;
//$objetSac = new Sac();
if ($objetSac != null) {
$objetSac->setNombreSac($quantite);
$objetSac->setCodeSac($codeSac);
$objetSac->setCodeGenere($codeGenere);
$objetSac->setInfolivrer($objetInfoLivrer);
$objetSac->setLivrer($objetLivrer);
$objetSac->setUtilisateur($objetUtilisateur);
$em->persist($objetSac);
$em->flush($objetSac);
}
$this->addHistoriqueAction($em, 'AchatSac', 1, $codeGenere, 1, 1, 1, $donnee, $utilisateurRepository);
$em->getConnection()->commit();
} catch (\Exception $e) {
$responce = false;
$em->getConnection()->rollBack();
throw $e;
}
//Envoi des donnée
$tabInfomation["etat"] = true;
$tabInfomation["codeGenere"] = $parameters['codeGenere'];
$dataSend = $this->get('serializer')->serialize(array('data' => $tabInfomation), 'json');
$response = new Response($dataSend);
$response->headers->set('Content-Type', 'application/json');
return $response;
}
/**
* Creates a new user entity.
*
* @Route("/payement/mes/operations", name="api_payement_operation")
* @Method({"GET","POST"})
*/
public function payementOperationAction(
Request $request,
OperationManager $operationManager,
ProduitRepository $produitRepository,
VilleRepository $villeRepository,
SurfaceAnneeRepository $surfaceAnneeRepository,
InfoLivrerRepository $infoLivrerRepository,
ProducteurRepository $producteurRepository,
UtilisateurRepository $utilisateurRepository,
SurfaceRepository $surfaceRepository,
AnneeCampagneRepository $anneeCampagneRepository,
CaisseRepository $caisseRepository
) {
$responce = true;
$em = $this->getDoctrine()->getManager();
//$operationManager = $this->get('operation_manager');
//$data = $request->getContent();
$em->getConnection()->beginTransaction();
try {
//Recupération des données utilisateur
//$montantOperation =
$telephone = $request->request->get('telephone');
$piece = $request->request->get('message');
$numeroTransation = $request->request->get('numeroTransation');
$produit = 2;
$objetProduit = $produitRepository->find($produit);
$objetAnneeCampagne = $anneeCampagneRepository->findOneBy(array("produit" => $objetProduit, "etatAnneeCampagne" => 1));
//$anneecampagne_id =
$campagne_id = $objetAnneeCampagne->getId(); //$request->request->get('producteur_id');
//$campagne_id = 1;
//$request->request->get('producteur_id');
//Creation de l'objet fournisseur
//Prendre le fournisseur par son numero de téléphone
$objetUtilisateur = $utilisateurRepository->findOneBy(array("tel1" => $telephone));
$objetProducteur = $producteurRepository->findOneBy(array("utilisateur" => $objetUtilisateur));
$objetProducteur = $producteurRepository->findOneBy(array("utilisateur" => $objetUtilisateur));
$objetInfoLivrer = $infoLivrerRepository->findOneBy(array("etatPayement" => 1));
$objetInfoLivrerMondif = $infoLivrerRepository->find($objetInfoLivrer->getId());
$idTypeOp = 1;
$idVille = 1; //$objetUtilisateur->getVille()->getId();
//Recuperation de la caisse de la ville de l'utilisateur
$tabCompteId = $operationManager->getCompteVille($em, $idVille, $villeRepository, $caisseRepository);
//recuperation de l'identifiant du produit
$idProduit = 2;
$idTypeOp = \Types\stock\TypeStock::TYPEOPERACHATCACAO;
$montantEsp = $request->request->get('montantOperation');
$tabCompteMontant = $operationManager->getRecuperationCompte($em, $idTypeOp, $montantEsp, $typeOperationRepository);
$compteAuxi = $tabCompteId['compte'];
$infoDepo = 'Paiement Tmoney à ' . $objetUtilisateur->getNom();
$d = new \DateTime(); //$sessionData['dateChoisie'];
$dateChoisie = $d->format('Y/m/d H:i:s');
//var_dump($objetInfoLivrer->getId());exit;
$operationManager->geneLigneOperationComptable(Null, $tabCompteId['id'], $tabCompteMontant['montant'], $infoDepo, $telephone, $numeroTransation, '', $tabCompteMontant['compte'], $idTypeOp, $piece, $nomCompte = '', $typePaie = 1, $idProduit = 2, $compteAuxi, $dateChoisie, $idVille, \Types\stock\TypeStock::OPERATIONAVANCE, $objetInfoLivrer->getId(), null, $utilisateurRepository, $caisseRepository);
$objetInfoLivrerMondif->setSiPayement(2);
$em->persist($objetInfoLivrerMondif);
$em->flush($objetInfoLivrerMondif);
$em->getConnection()->commit();
} catch (\Exception $e) {
$responce = false;
$em->getConnection()->rollBack();
throw $e;
}
//Envoi des donnée
$dataSend = $this->get('serializer')->serialize(array('server_response' => $responce), 'json');
$response = new Response($dataSend);
$response->headers->set('Content-Type', 'application/json');
return $response;
}
/**
* Creates a new user entity.
*
* @Route("/initiliser/achat", name="api_initialisation_achat")
* @Method({"GET","POST"})
*/
public function initialiserAchatAction(
Request $request,
OperationManager $operationManager,
ProduitRepository $produitRepository,
SurfaceAnneeRepository $surfaceAnneeRepository,
InfoLivrerRepository $infoLivrerRepository,
AnneeCampagneRepository $anneeCampagneRepository
) {
$responce = true;
$em = $this->getDoctrine()->getManager();
//$data = $request->getContent();
$em->getConnection()->beginTransaction();
try {
//Recupération des données utilisateur
//$montantOperation =
$refAchat = $request->request->get('refAchat');
$produit = 2;
$objetProduit = $produitRepository->find($produit);
$objetAnneeCampagne = $anneeCampagneRepository->findOneBy(array("produit" => $objetProduit, "etatAnneeCampagne" => 1));
//$anneecampagne_id =
$campagne_id = $objetAnneeCampagne->getddId(); //$request->request->get('producteur_id');
//$campagne_id = 1;
//$request->request->get('producteur_id');
//Creation de l'objet fournisseur
//Prendre le fournisseur par son numero de téléphone
$objetInfoLivrer = $infoLivrerRepository->findOneBy(array("refBonReception" => $refAchat));
if ($objetInfoLivrer != null) {
$objetInfoLivrer->setEtatPayement(1);
$em->persist($objetInfoLivrer);
$em->flush($objetInfoLivrer);
$responce = "ok";
} else {
$responce = "nok";
}
$em->getConnection()->commit();
} catch (\Exception $e) {
$responce = "nok";
$em->getConnection()->rollBack();
throw $e;
}
//Envoi des donnée
$dataSend = $this->get('serializer')->serialize(array('server_response' => $responce), 'json');
$response = new Response($dataSend);
$response->headers->set('Content-Type', 'application/json');
return $response;
}
/**
* Creates a new user entity.
*
* @Route("/liste/mes/new/producteurs/{id}/{profil}/{ville}/{type}", name="api_liste_mes_new_producteurs")
* @Method({"POST"})
*/
public function listeApiMesProducteursNewAction(
Request $request,
$id,
$profil,
$ville,
$type,
ClientRepository $clientRepository,
ProducteurRepository $producteurRepository,
UtilisateurRepository $utilisateurRepository,
ProduitRepository $produitRepository,
TableRepository $tableRepository,
ZoneProducteurRepository $zoneProducteurRepository,
PrixRigueurRepository $prixRigueurRepository,
ProducteurGroupementRepository $producteurGroupementRepository,
VilleRepository $villeRepository,
AnneeCampagneRepository $anneeCampagneRepository,
SacRepository $sacRepository,
ImageRepository $imageRepository,
SeTrouverRepository $seTrouverRepository,
InfoLivrerRepository $infoLivrerRepository,
SurfaceAnneeRepository $surfaceAnneeRepository,
FournisseurRepository $fournisseurRepository,
InspectionRepository $inspectionRepository,
EntrepotRepository $entrepotRepository,
TypeOperationRepository $typeOperationRepository,
CategorieProduitRepository $categorieProduitRepository,
GroupementRepository $groupementRepository,
EvenementRepository $evenementRepository,
ProduitEtapeCroissanceRepository $produitEtapeCroissanceRepository,
TacheProduitEtapeCroissanceRepository $tacheProduitEtapeCroissanceRepository,
CategorieQuestionInspectionRepository $categorieQuestionInspectionRepository,
ReponseQuestionInspectionRepository $reponseQuestionInspectionRepository,
CommandeRepository $commandeRepository,
AbonneRepository $abonneRepository,
ProgrammeRepository $programmeRepository,
PlanteRepository $planteRepository,
ArticleRepository $articleRepository,
RubriqueRepository $rubriqueRepository,
TransformationRepository $transformationRepository,
EtapeProcessusRepository $etapeProcessusRepository,
QuestionInspectionRepository $questionInspectionRepository,
ProduitTypeOperationRepository $produitTypeOperationRepository
) {
$token = $this->_tokenStorage->getToken();
if (!$token) {
return $this->json([
'status' => 400,
'user' => null
], 400);
}
$em = $this->getDoctrine()->getManager();
$data = $request->getContent(); //$request->get('id')
$dateJour = new \DateTime();
$objetUtilisateur = $token->getUser(); //$utilisateurRepository->find($id) ;
$objetAgent = $fournisseurRepository->findOneBy(['utilisateur' => $objetUtilisateur]);
/* if($objetAgent ==null){
$id=0;
$idville = $ville;
$objetVille = $em->getRepository($this->stockBundle . 'Ville')->find($ville);
$tabVille[0]= $em->getRepository($this->stockBundle . 'SeTrouver')->findOneBy(array("ville"=>$objetVille));
if( $ville ==0){
$tabVille= $em->getRepository($this->stockBundle . 'SeTrouver')->findBy(array("fournisseur"=>$objetAgent));
}
}else{
$id = 0;
//$idville = $objetAgent->getVille()->getId();
$tabVille = $em->getRepository($this->stockBundle . 'SeTrouver')->findBy(array("fournisseur"=>$objetAgent));
}*/
$tabVille = array();
$groupementId = 0;
$infoPartenaire = $this->getInfoPartenaire($em, $this->getAbonne($em, $objetUtilisateur->getAbonne(), $abonneRepository));
$objetProducteur = $producteurRepository->findOneBy(array("utilisateur" => $objetUtilisateur));
if ($objetUtilisateur->getTypeUtilisateur() == 4 or $objetUtilisateur->getTypeUtilisateur() == 3) {
$id = 0;
$tabVille = $zoneProducteurRepository->findBy(array("producteur" => $objetProducteur));
if ($objetUtilisateur->getTypeUtilisateur() == 3) {
$objetProducteurGroupement = $producteurGroupementRepository->findOneBy(array("producteur" => $objetProducteur));
if ($objetProducteurGroupement->getGroupement() != null)
$groupementId = $objetProducteurGroupement->getGroupement()->getId();
$queryResult[0]["producteur"] = $fournisseurRepository->getAllFournisseurProducteurAPINew($id, $tabVille = array(), $niveau = 0, $prod = 0, $type = 0, $objetUtilisateur->getAbonne()->getId(), $caisse = 0, $producteurId = 0, $objetProducteurGroupement->getGroupement()->getId(), $infoPartenaire['partenaireId'], $infoPartenaire['typeAction']);
$queryResult[0]["intention"] = $surfaceAnneeRepository->getApiNewIntentionProducteurFournisseur($id, $tabVille = array(), 0, $niveau, $objetUtilisateur->getAbonne()->getId(), $objetProducteurGroupement->getGroupement()->getId(), $infoPartenaire['partenaireId'], $infoPartenaire['typeAction'], 0, 1);
}
} else {
if ($objetAgent == null) {
$id = 0;
$idville = $ville;
$objetVille = $villeRepository->find($ville);
$tabVille[0] = $seTrouverRepository->findOneBy(array("ville" => $objetVille));
if ($ville == 0) {
$tabVille = $seTrouverRepository->findBy(array("fournisseur" => $objetAgent, "etatSeTrouver" => 1));
}
} else {
$id = 0;
$tabVille = $seTrouverRepository->findBy(array("fournisseur" => $objetAgent, "etatSeTrouver" => 1));
}
}
if ($objetUtilisateur->getTypeUtilisateur() != 3) {
if ($objetUtilisateur->getTypeUtilisateur() == 2) {
$queryResult[0]["producteur"] = $fournisseurRepository->getAllFournisseurProducteurAPINew($id, $tabVille, $niveau = 3, $prod = 0, $type = 0, $objetUtilisateur->getAbonne()->getId(), $caisse = 0, $objetProducteur->getId(), 0, 0, 0);
$queryResult[0]["localisation"] = $fournisseurRepository->getAllFournisseurProducteurLocalisationAPINew($id, $tabVille, $niveau = 3, $prod = 0, $type = 0, $objetUtilisateur->getAbonne()->getId(), $caisse = 0, $objetProducteur->getId(), 0, 0, 0);
$queryResult[0]["image"] = $fournisseurRepository->getAllFournisseurProducteurImageAPINew($id, $tabVille, $niveau = 3, $prod = 0, $type = 0, $objetUtilisateur->getAbonne()->getId(), $caisse = 0, $objetProducteur->getId(), 0, 0, 0);
} else {
$queryResult[0]["producteur"] = $fournisseurRepository->getAllFournisseurProducteurAPINew($id, $tabVille, $niveau = 3, $prod = 0, $type = 0, $objetUtilisateur->getAbonne()->getId(), $caisse = 0, 0, 0, $infoPartenaire['partenaireId'], $infoPartenaire['typeAction']);
$queryResult[0]["localisation"] = $fournisseurRepository->getAllFournisseurProducteurLocalisationAPINew($id, $tabVille, $niveau = 3, $prod = 0, $type = 0, $objetUtilisateur->getAbonne()->getId(), $caisse = 0, 0, 0, $infoPartenaire['partenaireId'], $infoPartenaire['typeAction']);
$queryResult[0]["image"] = $fournisseurRepository->getAllFournisseurProducteurImageAPINew($id, $tabVille, $niveau = 3, $prod = 0, $type = 0, $objetUtilisateur->getAbonne()->getId(), $caisse = 0, 0, 0, $infoPartenaire['partenaireId'], $infoPartenaire['typeAction']);
}
if ($objetUtilisateur->getAbonne()->getSiExploitation() != 1) {
$listeExploitation = $surfaceAnneeRepository->getApiNewIntentionProducteurFournisseur($id, $tabVille, 0, $niveau = 3, $objetUtilisateur->getAbonne()->getId(), 0, $infoPartenaire['partenaireId'], $infoPartenaire['typeAction'], 0, 1);
$listeParcelle = $surfaceAnneeRepository->getApiNewIntentionProducteurFournisseur($id, $tabVille, 0, $niveau = 3, $objetUtilisateur->getAbonne()->getId(), 0, $infoPartenaire['partenaireId'], $infoPartenaire['typeAction'], 0, 0);
} else {
$listeExploitation = $surfaceAnneeRepository->getApiNewIntentionProducteurFournisseur($id, $tabVille, 0, $niveau = 3, $objetUtilisateur->getAbonne()->getId(), 0, $infoPartenaire['partenaireId'], $infoPartenaire['typeAction'], 1, 0);
$listeParcelle = $surfaceAnneeRepository->getApiNewIntentionProducteurFournisseur($id, $tabVille, 0, $niveau = 3, $objetUtilisateur->getAbonne()->getId(), 0, $infoPartenaire['partenaireId'], $infoPartenaire['typeAction'], 0, 0);
}
$queryResult[0]["intention"] = array_merge($listeExploitation, $listeParcelle);
}
//$tabVille=0;
//Recuperation du comapagne
//$objetAnneeCampagne = $anneeCampagneRepository->findOneBy(array("etatAnneeCampagne"=>1, "abonne"=>$objetUtilisateur->getAbonne()) );
//Recuperer le prix d'achat de tout les produits
$listePrix = $prixRigueurRepository->findOneBy(array('typePrixRigueur' => 2, 'abonne' => $objetUtilisateur->getAbonne()));
//Ajouter l'abonne a l'inspection
$listeInspection = $inspectionRepository->getListeApiInspection(-1, $objetUtilisateur->getAbonne()->getId(), $infoPartenaire['partenaireId'], $infoPartenaire['typeAction']);
$tablInspection = array();
$i = 0;
$tablInspection = $this->getInspectionInfo($em, $listeInspection, $objetUtilisateur, $inspectionRepository, $categorieQuestionInspectionRepository, $reponseQuestionInspectionRepository, $questionInspectionRepository);
$queryResult[0]["inspection"] = $tablInspection;
$queryResult[0]["configuration"] = $objetUtilisateur->getAbonne()->getConfiguration();
/* $listeInspectionRempli = $em->getRepository($this->inspectionBundle . 'InspectionRempli')->getListeApiInspectionAbonne($objetUtilisateur->getAbonne()->getId());
$tablInspectionRempli = array();
foreach($listeInspectionRempli as $unObjetInspectionRempli){
$tablInspectionRempli[$i]['id'] = $listeInspectionRempli["id"];
$tablInspectionRempli[$i]['inspId'] = $unObjetInspection["inspId"];
$tablInspectionRempli[$i]['reponse'] = $em->getRepository($this->inspectionBundle . 'InspectionReponse')->getListeInspectionReponse($listeInspectionRempli["id"]);
}*/
// $queryResult[0]["prixAchat"] =$prix ;
$niveau = 0;
$prod = 0;
if ($objetUtilisateur->getCaisse() != null) {
$caisse = $objetUtilisateur->getCaisse()->getId();
} else {
$caisse = 0;
}
//Prendre le code du produicteur
$objetProducteur = $producteurRepository->findOneBy(["utilisateur" => $objetUtilisateur]);
/*if($objetUtilisateur->getAbonne()->getTypeAbonne()->getId() != 1){
$queryResult[0]["producteur"] = array();
}*/
if ($objetUtilisateur->getCaisse() != null)
$queryResult[0]["client"] = $clientRepository->getAllClientCaisseAPi($objetUtilisateur->getAbonne()->getId(), $caisse);
else
$queryResult[0]["client"] = $clientRepository->getAllClientDirectAPi($objetUtilisateur->getAbonne()->getId());
//getApiAllClient(0,0,0,2,0,0,[],$objetUtilisateur->getAbonne()->getId()) ;
//$queryResult[0]["tableMange"] = $em->getRepository($this->clientBundle . 'Table')->getAllClientCaisseAPi($objetUtilisateur->getAbonne()->getId(), $caisse); //getApiAllClient(0,0,0,2,0,0,[],$objetUtilisateur->getAbonne()->getId()) ;
$queryResult[0]["achat"] = $infoLivrerRepository->getApiNewRechercheProducteurLivraison($id, $tabVille, 0, 0, 0, 0, 0, 0, 0, 4, $type, $objetUtilisateur->getAbonne()->getId());
$queryResult[0]["semence"] = $commandeRepository->getApiNewFournisseurProducteurSemence($id, 0, 0, $tabVille, 0, 0, 0, 0, 0, 20, 1, 4, $objetUtilisateur->getAbonne()->getId());
$queryResult[0]["entrepot"] = $entrepotRepository->getListeEntrepot($objetUtilisateur->getAbonne()->getId());
$queryResult[0]["listeSac"] = $sacRepository->getListeSac($objetUtilisateur->getAbonne()->getId());
$queryResult[0]["listePlante"] = $planteRepository->getListePlante($objetUtilisateur->getAbonne()->getId());
$queryResult[0]["inspectionproduit"] = $inspectionRepository->getListeApiInspectionProduit($objetUtilisateur->getAbonne()->getId(), $infoPartenaire['partenaireId'], $infoPartenaire['typeAction']);
$queryResult[0]["inspectionprofil"] = $inspectionRepository->getListeApiInspectionProfil($objetUtilisateur->getAbonne()->getId());
if ($objetAgent != null or $objetUtilisateur->getTypeUtilisateur() == 4 or $objetUtilisateur->getTypeUtilisateur() == 3) {
$queryResult[0]["ville"] = $villeRepository->getVilleUtilisateurAPIByZone($objetUtilisateur->getAbonne()->getId(), $tabVille, $infoPartenaire['partenaireId'], $infoPartenaire['typeAction']); //$fournisseurRepository->getFournisseurSeTrouverAPI($objetAgent->getId());//
} else {
$queryResult[0]["ville"] = array();
}
if ($objetUtilisateur->getCaisse() == null) {
$queryResult[0]["variete"] = $produitRepository->getAllProduitCategorieAPI(0, $objetUtilisateur->getAbonne()->getId(), $infoPartenaire['partenaireId'], $infoPartenaire['typeAction']);
} else {
$queryResult[0]["variete"] = $produitRepository->getAllProduitCaisseAPI($objetUtilisateur->getAbonne()->getId(), $caisse);
}
$queryResult[0]["listeFournisseur"] = $fournisseurRepository->getAllFournisseurByType(2, $objetUtilisateur->getAbonne()->getId());
$queryResult[0]["listeTable"] = $tableRepository->getAllTableAPI($objetUtilisateur->getAbonne()->getId());
/*if($objetUtilisateur->getTypeUtilisateur() == 2)
$type = 2; //2
else
$type = 3;*/
if ($objetUtilisateur->getCaisse() != null) {
$queryResult[0]["typeOperation"] = $typeOperationRepository->getListeTypeOperationAPI($objetUtilisateur->getAbonne()->getId(), $type = 0, $objetUtilisateur->getCaisse()->getId());
} else {
$queryResult[0]["typeOperation"] = $typeOperationRepository->getListeTypeOperationAPI($objetUtilisateur->getAbonne()->getId(), $type = 0);
}
// $queryResult[0]["inspectionRempli"] =$tablInspectionRempli;
/*if($objetAnneeCampagne != null)
$queryResult[0]["campagne"] = $objetAnneeCampagne->getId() ;
else*/
$queryResult[0]["campagne"] = $anneeCampagneRepository->getAllAnneeCampagneAPI($objetUtilisateur->getAbonne()->getId());
//$queryResult[0]["categorie"] = $categorieProduitRepository->getAlCategorieAPI(0,0);
if ($objetUtilisateur->getCaisse() == null)
$queryResult[0]["prix"] = $prixRigueurRepository->getAllPrixByPartenaireAPI(0, $objetUtilisateur->getAbonne()->getId(), $infoPartenaire['partenaireId'], $infoPartenaire['typeAction']); //getAllPrixDirectAPI($objetUtilisateur->getAbonne()->getId()); //getAllVarietePrixRigueurAPI(0,2,$objetUtilisateur->getAbonne()->getId());
else
$queryResult[0]["prix"] = $prixRigueurRepository->getAllPrixCaisseAPI($objetUtilisateur->getAbonne()->getId(), $caisse); //getAllVarietePrixRigueurAPI(0,2,$objetUtilisateur->getAbonne()->getId());
$queryResult[0]["prixAchat"] = 0;
$queryResult[0]["cooperative"] = $groupementRepository->getApiAllGeneralGroupement($objetUtilisateur->getAbonne()->getId(), $groupementId, $niveau, $tabVille, $infoPartenaire['partenaireId'], $infoPartenaire['typeAction']); //$groupementRepository->getApiAllGroupement($objetUtilisateur->getAbonne()->getId(), $groupementId ); //getApiAllClient(0,0,0,2,0,0,[],$objetUtilisateur->getAbonne()->getId()) ;
$queryResult[0]["evenement"] = $evenementRepository->getListeApiEvenement($objetUtilisateur->getAbonne()->getId());
$queryResult[0]["listeImage"] = $imageRepository->getAllImageAPI($objetUtilisateur->getAbonne()->getId());
$queryResult[0]["pec"] = $produitEtapeCroissanceRepository->getAllEtapeCroissanceProduit($objetUtilisateur->getAbonne()->getId(), $infoPartenaire['partenaireId'], $infoPartenaire['typeAction']);
$queryResult[0]["tachepec"] = $tacheProduitEtapeCroissanceRepository->getAllEtapeCroissanceProduitTache($objetUtilisateur->getAbonne()->getId(), $infoPartenaire['partenaireId'], $infoPartenaire['typeAction']);
$queryResult[0]["article"] = $articleRepository->getAllOrOneArticleSousActifAPI(0, $objetUtilisateur->getAbonne()->getId());
$queryResult[0]["rubrique"] = $rubriqueRepository->getAllOrOneRubriqueSousActifAPI($objetUtilisateur->getAbonne()->getId());
$queryResult[0]["transformation"] = $transformationRepository->getAllTransformationAPI($objetUtilisateur->getAbonne()->getId(), 1);
$queryResult[0]["etapeprocessus"] = $etapeProcessusRepository->getAllEtapeProcessusAPI($objetUtilisateur->getAbonne()->getId());
$queryResult[0]["produittypeoperation"] = $produitTypeOperationRepository->getAllProduitTypeOperation($objetUtilisateur->getAbonne()->getId());
$listeProgramme1 = $programmeRepository->getListeProgramme($objetUtilisateur->getAbonne()->getId(), $dateJour->format("d/m/Y H:i:s"), 0);
$listeProgramme2 = $programmeRepository->getListeProgrammeGeneral($objetUtilisateur->getAbonne()->getId(), $dateJour->format("d/m/Y H:i:s"), 1);
$queryResult[0]["programme"] = array_merge($listeProgramme1, $listeProgramme2);
//var_dump(count($queryResult[0]["producteur"]), count($queryResult[0]["achat"]));exit;
$this->setDateSynchronisation($em, $objetUtilisateur);
$dataSend = $this->get('serializer')->serialize(array('data' => $queryResult), 'json');
$response = new Response($dataSend);
$response->headers->set('Content-Type', 'application/json');
return $response;
}
/**
* Creates a new user entity.
*
* @Route("/liste/detail/zone", name="api_liste_detail_zone")
* @Method({"GET","POST"})
*/
public function listeApiDetailZoneAction(
Request $request,
ProduitRepository $produitRepository,
SurfaceAnneeRepository $surfaceAnneeRepository,
InfoLivrerRepository $infoLivrerRepository,
ProducteurRepository $producteurRepository,
AnneeCampagneRepository $anneeCampagneRepository,
VilleRepository $villeRepository,
CommandeRepository $commandeRepository
) {
$em = $this->getDoctrine()->getManager();
$prod = 2;
$dateJour = new \DateTime();
$toutProducteur = $producteurRepository->findAll();
$listeVille = $villeRepository->getAllActiveVille($prod);
$nbParPage = count($toutProducteur);
$pageActuelle = 1;
$i = 0;
foreach ($listeVille as $uneVille) {
$tabVille[0] = $uneVille;
$listeProducteur = $producteurRepository->getApiAllProducteur($prod, $uneVille->getId(), 0, $nbParPage, $pageActuelle, 4, $tabVille);
$queryResult[$i]["nbreProd"] = count($listeProducteur["data"]);
$queryResult[$i]["id"] = $uneVille->getId();
$queryResult[$i]["ville"] = $uneVille->getNomVille();
$statCommande = $commandeRepository->getStatsRechercheCommande(0, $dateJour->format("dd/mm/YY"), "01/05/2015", $uneVille->getId(), 0, 0, 0, $prod, 20, 1);
$statLivraison = $infoLivrerRepository->getRechercheTotalInfoLivrer(0, $uneVille->getId(), "01/05/2015", $dateJour->format("dd/mm/YY"), 0, $prod);
if ($statCommande[0]["quantiteTotal"] == null) {
$semence = 0;
} else {
$semence = $statCommande[0]["quantiteTotal"];
}
$queryResult[$i]["semence"] = $semence;
if ($statCommande[0]["montantSemence"] == null) {
$montantSemence = 0;
} else {
$montantSemence = $statCommande[0]["montantSemence"];
}
$queryResult[$i]["montantSemence"] = $montantSemence;
if ($statLivraison[0]["nbreTotal"] == null) {
$nbreTotal = 0;
} else {
$nbreTotal = $statLivraison[0]["nbreTotal"];
}
$queryResult[$i]["quantiteAchat"] = $nbreTotal;
if ($statLivraison[0]["montantTotalLivraison"] == null) {
$montantTotalLivraison = 0;
} else {
$montantTotalLivraison = $statLivraison[0]["montantTotalLivraison"];
}
$queryResult[$i]["montantAchat"] = $montantTotalLivraison;
$i++;
}
// var_dump($detailUtil);exit;
$dataSend = $this->get('serializer')->serialize(array('data' => $queryResult), 'json');
$response = new Response($dataSend);
$response->headers->set('Content-Type', 'application/json');
return $response;
}
/**
* Creates a new user entity.
*
* @Route("/modif/tel", name="api_modif_telephone")
* @Method({"GET","POST"})
*/
public function savModifTelephoneAction(
Request $request,
ProducteurRepository $producteurRepository,
UtilisateurRepository $utilisateurRepository
) {
$em = $this->getDoctrine()->getManager();
//$data = $request->getContent();
$em->getConnection()->beginTransaction();
$responce = true;
try {
$parameters = json_decode($request->getContent(), true);
$codeGenere = trim($parameters['codeGenere']); // email saisie
$telephone = trim($parameters['telephone']); // email saisie
$objetUtil = null;
$objetProd = $producteurRepository->findOneBy(array("codeGenere" => $codeGenere));
// if($objetProd != null){
$objetUtil = $utilisateurRepository->find($objetProd->getUtilisateur()->getId());
// }
// if($objetUtil != null){
$objetUtil->setTel1($telephone);
$em->persist($objetUtil);
//Enregestre ces données comme livraison
$em->flush();
// }
$em->getConnection()->commit();
} catch (\Exception $e) {
$responce = false;
$em->getConnection()->rollBack();
throw $e;
}
$tabInfomation["etat"] = true;
$tabInfomation["codeGenere"] = $parameters['codeGenere'];
$dataSend = $this->get('serializer')->serialize(array('data' => $tabInfomation), 'json');
$response = new Response($dataSend);
$response->headers->set('Content-Type', 'application/json');
return $response;
}
/**
* Creates a new user entity.
*
* @Route("/save/visite/inspecteur/producteur", name="api_save_visite_inspecteur_producteur")
* @Method({"GET","POST"})
*/
public function saveVisiteInspecteurProducteurAction(
Request $request,
SurfaceAnneeRepository $surfaceAnneeRepository,
ProgrammeRepository $programmeRepository,
InspecteurRepository $inspecteurRepository
) {
$token = $this->_tokenStorage->getToken();
if (!$token) {
return $this->json([
'status' => 400,
'user' => null
], 400);
}
$em = $this->getDoctrine()->getManager();
$dateJour = new \DateTime();
$parameters = json_decode($request->getContent(), true);
$parCodeGenere = trim($parameters['parCodeGenere']); // email saisie
/*$latidute = $request->request->get('latitude');
$logitude = $request->request->get('longitude');
$idPar = $request->request->get('id');*/
$objetSurfaceAnnee = $surfaceAnneeRepository->findOneBy(['codeGenere' => $parCodeGenere]);
$objetProgramme = $programmeRepository->findOneBy(['abonne' => $objetSurfaceAnnee->getAbonne(), 'etatProgramme' => 1]);
$objetInspecteur = $inspecteurRepository->findOneBy(['etatInspecteur' => 1]);
$objetProgrammeProducteurInspecteur = new ProgrammeProducteurInspecteur();
$objetProgrammeProducteurInspecteur->setProgramme($objetProgramme);
$objetProgrammeProducteurInspecteur->setInspecteur($objetInspecteur);
$objetProgrammeProducteurInspecteur->setSurfaceannee($objetSurfaceAnnee);
$em->persist($objetProgrammeProducteurInspecteur);
$em->flush($objetProgrammeProducteurInspecteur);
$queryResult = array(); //$em->getRepository($this->prodBundle . 'SurfaceAnnee')->getIntentionProducteur($idProd) ;
// var_dump($detailUtil);exit;
$tabInfomation["etat"] = true;
$dataSend = $this->get('serializer')->serialize(array('data' => $tabInfomation), 'json');
$response = new Response($dataSend);
$response->headers->set('Content-Type', 'application/json');
return $response;
}
/**
* Creates a new user entity.
*
* @Route("/get/geolocalisation/producteur", name="api_get_geolocalisation_producteur")
* @Method({"GET","POST"})
*/
public function getGeolocalisationProducteurAction(
Request $request,
ProducteurRepository $producteurRepository,
ProducteurAbonneRepository $producteurAbonneRepository
) {
$token = $this->_tokenStorage->getToken();
if (!$token) {
return $this->json([
'status' => 400,
'user' => null
], 400);
}
$em = $this->getDoctrine()->getManager();
$dateJour = new \DateTime();
$parameters = json_decode($request->getContent(), true);
$latitude = trim($parameters['latitude']); // email saisie
$longitude = trim($parameters['longitude']); // email saisie
$idProd = trim($parameters['id']); // email saisie
/*$latidute = $request->request->get('latitude');
$logitude = $request->request->get('longitude');
$idPar = $request->request->get('id');*/
$objetProducteur = $producteurRepository->find($idProd);
$objetProducteurAbonne = $producteurAbonneRepository->findOneBy(['abonne' => $objetProducteur->getAbonne(), 'producteur' => $objetProducteur]);
$objetLocalisation = new Localisation();
$objetLocalisation->setLatitude($latitude);
$objetLocalisation->setLongitude($longitude);
$objetLocalisation->setProducteurabonne($objetProducteurAbonne);
$objetLocalisation->setProducteur($objetProducteur);
$objetLocalisation->setDatePublication($dateJour);
$em->persist($objetLocalisation);
$em->flush($objetLocalisation);
$queryResult = array(); //$em->getRepository($this->prodBundle . 'SurfaceAnnee')->getIntentionProducteur($idProd) ;
// var_dump($detailUtil);exit;
$tabInfomation["etat"] = true;
$dataSend = $this->get('serializer')->serialize(array('data' => $tabInfomation), 'json');
$response = new Response($dataSend);
$response->headers->set('Content-Type', 'application/json');
return $response;
}
/**
* Creates a new user entity.
*
* @Route("/get/geolocalisation/parcelle", name="api_get_geolocalisation_parcelle")
* @Method({"GET","POST"})
*/
public function getGeolocalisationParcelleAction(
Request $request,
UtilisateurRepository $utilisateurRepository,
SurfaceAnneeRepository $surfaceAnneeRepository,
FournisseurRepository $fournisseurRepository,
LocalisationRepository $localisationRepository,
SurfaceAbonneRepository $surfaceAbonneRepository,
EntrepotRepository $entrepotRepository,
AnneeCampagneRepository $anneeCampagneRepository,
PlanteRepository $planteRepository,
ProjetRepository $projetRepository,
ProducteurRepository $producteurRepository
) {
$token = $this->_tokenStorage->getToken();
if (!$token) {
return $this->json([
'status' => 400,
'user' => null
], 400);
}
$em = $this->getDoctrine()->getManager();
$dateJour = new \DateTime();
$parameters = json_decode($request->getContent(), true);
$latidute = trim($parameters['latitude']); // email saisie
$logitude = trim($parameters['longitude']); // email saisie
$codeGenere = trim($parameters['codeGenere']); // email saisie
$parCodeGenere = trim($parameters['parCodeGenere']); // email saisie
$idUtil = trim($parameters['idUtil']); // email saisie
$typeLocalisation = trim($parameters['typeLocalisation']);
$tabLocalisation = trim($parameters['tabLocalisation']);
$superficie = trim($parameters['superficie']);
$objetUtilisateur = $utilisateurRepository->find($idUtil);
/*$latidute = $request->request->get('latitude');
$logitude = $request->request->get('longitude');
$codeGenere = $request->request->get('codeGenere');
$idUtil = $request->request->get('idUtil');*/
if ($typeLocalisation != 3) {
$objetSurface = $surfaceAnneeRepository->findOneBy(array('codeGenere' => $parCodeGenere,'abonne' => $objetUtilisateur->getAbonne()));
}else if ($typeLocalisation == 6) { //Quand c'est un entrepot
$objetEntrepot= $entrepotRepository->findOneBy(array('codeGenere' => $parCodeGenere,'abonne' => $objetUtilisateur->getAbonne()));
} else {
$objetFournisseur = $fournisseurRepository->findOneBy(array('codeGenere' => $parCodeGenere,'abonne' => $objetUtilisateur->getAbonne()));
//$typeLocalisation = 1;
}
if ($typeLocalisation == 3) {
$objetLocalisation = $localisationRepository->findOneBy(['fournisseur' => $objetFournisseur, 'typeLocalisation' => $typeLocalisation]);
} else {
$objetLocalisation = $localisationRepository->findOneBy(['surfaceannee' => $objetSurface, 'typeLocalisation' => $typeLocalisation]);
}
if($objetLocalisation !=null ){
//if($objetSurface != null)
//$this->initialiserLesAncienPolygon($em, $objetSurface->getId(), $typeLocalisation=1);
//rénitialisation pour un nouveau point
}
if ($typeLocalisation != 3 && $typeLocalisation != 6) {
$objetSurfaceAbonne = $surfaceAbonneRepository->findOneBy(['abonne' => $objetUtilisateur->getAbonne(), 'surfaceannee' => $objetSurface]);
}
if ($objetLocalisation == null)
$objetLocalisation = new Localisation();
$dateOperation = new \DateTime();
$objetLocalisation->setLatitude($latidute);
$objetLocalisation->setLongitude($logitude);
if ($typeLocalisation != 3) {
$objetLocalisation->setSurfaceannee($objetSurface);
} else if($typeLocalisation == 6) { //Quand c'est un entrepot
$objetLocalisation->setEntrepot($objetEntrepot);
} else {
$objetLocalisation->setFournisseur($objetFournisseur);
}
$objetLocalisation->setUtilisateur($objetUtilisateur);
$objetLocalisation->setAbonne($objetUtilisateur->getAbonne());
if ($typeLocalisation != 3)
$objetLocalisation->setSurfaceabonne($objetSurfaceAbonne);
$objetLocalisation->setCodeGenere($codeGenere);
$objetLocalisation->setTypeLocalisation($typeLocalisation);
$objetLocalisation->setTabPolygone($tabLocalisation);
$objetLocalisation->setDatePublication($dateJour);
$em->persist($objetLocalisation);
$em->flush($objetLocalisation);
$queryResult = array(); //$em->getRepository($this->prodBundle . 'SurfaceAnnee')->getIntentionProducteur($idProd) ;
if ($typeLocalisation != 3 && $typeLocalisation != 6 ) {
$pointLocalisation = new Point($logitude, $latidute, null);
if($objetSurface != null){
$objetSurface->setLocalisation($pointLocalisation);
//if($typeLocalisation == 1)
if($superficie != null && $superficie != '0' && $superficie != 'null' )
$objetSurface->setSuperficieRelle($superficie);
$em->persist($objetSurface);
$em->flush($objetSurface);
$idVille = 0;
$explCodeGenere= 0;
if($objetSurface->getVille()!=null)
$idVille = $objetSurface->getVille()->getId();
if($objetSurface->getSurfaceannee()!= null)
$explCodeGenere = $objetSurface->getSurfaceannee()->getCodeGenere();
$donnee = $objetSurface->getSuperficie(). "#" . $objetSurface->getProducteur()->getCodeGenere() . "#" . $parCodeGenere . "#" . $parCodeGenere. "#" . $idVille . "#" . $objetSurface->getProduit()->getId() . "#0#" . $idUtil . "#" . $explCodeGenere . "#" . $objetSurface->getTypeParcelle() . "#0#".$objetSurface->getSuperficieRelle()."#3" ;
$this->addHistoriqueAction($em, 'ProducteurIntention', 1, $codeGenere, $idUtil, $objetSurface->getId(), 1, $donnee, $utilisateurRepository);
}
/*$objetSurface->setLocalisation($pointLocalisation);
$em->persist($objetSurface);
$em->flush($objetSurface);*/
}
if ($typeLocalisation != 3 && $typeLocalisation != 6 )
if($objetSurface != null)
$prodCodeGenere = $objetSurface->getProducteur()->getCodeGenere();
if ($objetSurface != null && $typeLocalisation != 3) {
$objetLocalisation->setSurfaceannee($objetSurface);
$titre = "LocalisationAdd : " . $objetSurface->getProducteur()->getUtilisateur()->getNom() . " " . $objetSurface->getProducteur()->getUtilisateur()->getPrenoms() . "_" . $latidute . "_" . $logitude;
$codeGenere = $objetSurface->getProducteur()->getCodeGenere();
} else if($typeLocalisation == 6) { //Quand c'est un entrepot
$codeGenere = $objetEntrepot->getCodeGenere();
$objetLocalisation->setEntrepot($objetEntrepot);
} else {
$codeGenere = $objetFournisseur->getCodeGenere();
$objetLocalisation->setFournisseur($objetFournisseur);
}
$this->saveTacheFormulaire($em, $titre, $titre, $dateOperation->format("Y-m-d"), $dateOperation->format("Y-m-d"), $dateOperation->format("H:i:s"), $dateOperation->format("H:i:s"), $codeGenere, 0, $objetUtilisateur->getId(), $typeActivite = 4, $utilisateurRepository, $anneeCampagneRepository, $surfaceAnneeRepository, $planteRepository, $projetRepository, $producteurRepository, null);
$tabPolygone = 0;
if($objetLocalisation->getTabPolygone() != "")
$tabPolygone = $objetLocalisation->getTabPolygone();
$donnee = $idUtil . "#" . $parCodeGenere . "#" . $objetLocalisation->getCodeGenere() . "#" . $objetLocalisation->getLatitude() . "#" . $objetLocalisation->getLongitude() . "#" . $objetLocalisation->getTypeLocalisation() . "#" . $tabPolygone ;
$this->addHistoriqueAction($em, "ProducteurLocalisation", 1, $parCodeGenere, $objetUtilisateur->getId(), $objetSurface->getProducteur()->getId(), 1, $donnee, $utilisateurRepository);
$tabInfomation = ["prodCodeGenere" => $prodCodeGenere, "parCodeGenere" => $parCodeGenere];
$tabInfomation["etat"] = true;
$tabInfomation["codeGenere"] = $codeGenere;
$dataSend = $this->get('serializer')->serialize(array('data' => $tabInfomation), 'json');
$response = new Response($dataSend);
$response->headers->set('Content-Type', 'application/json');
return $response;
}
/**
* Creates a new user entity.
*
* @Route("/liste/event", name="api_liste_event")
* @Method({"GET","POST"})
*/
public function listeApiEventAction(Request $request, EvenementRepository $evenementRepository)
{
$em = $this->getDoctrine()->getManager();
$data = $request->getContent();
$abonneId = 1;
$queryResult = $evenementRepository->getListeApiEvenement($abonneId);
$dataSend = $this->get('serializer')->serialize(array('data' => $queryResult), 'json');
$response = new Response($dataSend);
$response->headers->set('Content-Type', 'application/json');
return $response;
}
/**
* Creates a new user entity.
*
* @Route("/liste/inspection/{id}", name="api_liste_inspection")
* @Method({"GET","POST"})
*/
public function listeApiInspectionAction(Request $request, $id, InspectionRepository $inspectionRepository, ReponseQuestionInspectionRepository $reponseQuestionInspectionRepository, CategorieQuestionInspectionRepository $categorieQuestionInspectionRepository)
{
$em = $this->getDoctrine()->getManager();
$data = $request->getContent();
$listeInspection = $inspectionRepository->getInfoApiInspection($id);
$tablInspection = array();
$i = 0;
foreach ($listeInspection as $unObjetInspection) {
$tablInspection[$i]['id'] = $unObjetInspection["id"];
$tablInspection[$i]['label'] = $unObjetInspection["label"];
$tablInspection[$i]['description'] = $unObjetInspection["description"];
$tablInspection[$i]['etat'] = $unObjetInspection["etatInspection"];
$tablInspection[$i]['type'] = $unObjetInspection["typeInspection"];
$uneInspection = $inspectionRepository->find($unObjetInspection["id"]);
$listeCategorieQuestionInspection = $categorieQuestionInspectionRepository->findBy(array("inspection" => $uneInspection));
$j = 0;
foreach ($listeCategorieQuestionInspection as $unCategorieQuestionInspection) {
$tablInspection[$i]['categorie'][$j]["id"] = $unCategorieQuestionInspection->getId(); //Tratement des catégories
$tablInspection[$i]['categorie'][$j]["label"] = $unCategorieQuestionInspection->getLabel(); //Tratement des catégories
$tablInspection[$i]['categorie'][$j]["description"] = $unCategorieQuestionInspection->getDescription();
$tablInspection[$i]['categorie'][$j]["type"] = $unCategorieQuestionInspection->getTypeCategorieQuestionInspection();
$tablInspection[$i]['categorie'][$j]["ordre"] = $unCategorieQuestionInspection->getOrdre();
$tablInspection[$i]['categorie'][$j]["etat"] = $unCategorieQuestionInspection->getEtatCategorieQuestionInspection();
$tablInspection[$i]['categorie'][$j]["inspectionId"] = $unCategorieQuestionInspection->getInspection()->getId();
$k = 0;
foreach ($unCategorieQuestionInspection->getQuestioninspections() as $unQuestionInspection) {
$tablInspection[$i]['categorie'][$j]["question"][$k]["id"] = $unQuestionInspection->getId();
$tablInspection[$i]['categorie'][$j]["question"][$k]["label"] = $unQuestionInspection->getLabel();
$tablInspection[$i]['categorie'][$j]["question"][$k]["description"] = $unQuestionInspection->getDescription();
$tablInspection[$i]['categorie'][$j]["question"][$k]["type"] = $unQuestionInspection->getTypeQuestionInspection();
$tablInspection[$i]['categorie'][$j]["question"][$k]["etat"] = $unQuestionInspection->getEtatQuestionInspection();
$tablInspection[$i]['categorie'][$j]["question"][$k]["ordre"] = $unQuestionInspection->getOrdre();
$tablInspection[$i]['categorie'][$j]["question"][$k]["siQuestionInter"] = $unQuestionInspection->getSiQuestionIntermediaire();
$tablInspection[$i]['categorie'][$j]["question"][$k]["siQuestionIssue"] = $unQuestionInspection->getSiQuestionIssueIntermediaire();
if ($unQuestionInspection->getTypeQuestionInspection() != 1) {
$tablInspection[$i]['categorie'][$j]["question"][$k]['reponse'] = $reponseQuestionInspectionRepository->getListeApiReponseQuestionInspection($unQuestionInspection->getId());
}
++$k;
}
++$j;
}
++$i;
}
$dataSend = $this->get('serializer')->serialize(array('data' => $tablInspection), 'json');
$response = new Response($dataSend);
$response->headers->set('Content-Type', 'application/json');
return $response;
}
private function userNotFound()
{
return \FOS\RestBundle\View\View::create(['message' => 'User not found'], Response::HTTP_NOT_FOUND);
}
/**
* Creates a new user entity.
*
* @Route("/save/producteur/event", name="api_save_producteur_event")
* @Method({"GET","POST"})
*/
public function saveProducteurEvenementAction(
Request $request,
ProducteurRepository $producteurRepository,
EvenementRepository $evenementRepository,
UtilisateurRepository $utilisateurRepository,
AnneeCampagneRepository $anneeCampagneRepository,
ProducteurEvenementRepository $producteurEvenementRepository
) {
$token = $this->_tokenStorage->getToken();
if (!$token) {
return $this->json([
'status' => 400,
'user' => null
], 400);
}
$em = $this->getDoctrine()->getManager();
//$data = $request->getContent();
$em->getConnection()->beginTransaction();
$responce = true;
try {
$parameters = json_decode($request->getContent(), true);
$JSONData = trim($parameters['JSONData']); // email saisie
//Recupération des données utilisateur
//$JSONData = $request->request->get('JSONData');
$JSONData = str_replace("PE:", "", $JSONData);
//$JSONData = '[{"anneeId":2,"codeGenere":"PES111","etat":0,"eventId":1,"producteurId":90,"utilisateurId":0}]' ;
$listeProducteurEvent = json_decode($JSONData, true);
//un appel evenement
$i = 0;
//var_dump($listeProducteurEvent);exit;
foreach ($listeProducteurEvent as $unProducteurEvent) {
if ($i == 0) {
$evenement = $evenementRepository->find($unProducteurEvent["eventId"]);
$unAppelEvenement = new AppelEvenement();
$unAppelEvenement->setEvenement($evenement);
$unAppelEvenement->setCodeGenere($unProducteurEvent["codeGenere"]);
$em->persist($unAppelEvenement);
}
$producteur = $producteurRepository->find($unProducteurEvent["producteurId"]);
$anneeCampagne = $anneeCampagneRepository->find($unProducteurEvent["anneeId"]);
$objetUtilisateur = $utilisateurRepository->find($unProducteurEvent["utilisateurId"]);
$siExiste = $producteurEvenementRepository->findOneBy(array("producteur" => $producteur, "appelevenement" => $unAppelEvenement)); //, "anneecampagne" => $anneeCampagne
if ($siExiste == null) {
$producteurEvenement = new ProducteurEvenement();
$producteurEvenement->setProducteur($producteur);
$producteurEvenement->setAppelevenement($unAppelEvenement);
$producteurEvenement->setAnneecampagne($anneeCampagne);
$producteurEvenement->setUtilisateur($objetUtilisateur);
$producteurEvenement->setCodeGenere($unProducteurEvent["codeGenere"]);
$em->persist($producteurEvenement);
}
$i++;
}
$em->flush($producteurEvenement);
$em->getConnection()->commit();
} catch (\Exception $e) {
$responce = false;
$em->getConnection()->rollBack();
throw $e;
}
///$listeProducteurEvent = json_dedddcode($JSONData,true);
//Envoi des donnée
$tabInfomation["etat"] = true;
$dataSend = $this->get('serializer')->serialize(array('data' => $tabInfomation), 'json');
$response = new Response($dataSend);
$response->headers->set('Content-Type', 'application/json');
return $response;
}
/**
* Creates a new user entity.
*
* @Route("/liste/api/question/inspection/{id}", name="api_liste_api_question_inspection")
* @Method({"GET","POST"})
*/
public function listeApiQuestionInspectionAction(Request $request, $id, InspectionRepository $inspectionRepository, ReponseQuestionInspectionRepository $reponseQuestionInspectionRepository, CategorieQuestionInspectionRepository $categorieQuestionInspectionRepository)
{
$token = $this->_tokenStorage->getToken();
if (!$token) {
return $this->json([
'status' => 400,
'user' => null
], 400);
}
$em = $this->getDoctrine()->getManager();
$data = $request->getContent();
$this->em = $this->getDoctrine()->getManager();
$uneInspection = $inspectionRepository->find($id);
$listeCategorieQuestionInspection = $categorieQuestionInspectionRepository->findBy(array("inspection" => $uneInspection));
$tablQuestionInspection = array();
$i = 0;
foreach ($listeCategorieQuestionInspection as $unCategorieQuestionInspection) {
//Tratement des catégories
$tablQuestionInspection[$unCategorieQuestionInspection->getId()]["label"] = $unCategorieQuestionInspection->getLabel();
$tablQuestionInspection[$unCategorieQuestionInspection->getId()]["description"] = $unCategorieQuestionInspection->getDescription();
$i = 0;
foreach ($unCategorieQuestionInspection->getQuestioninspections() as $unQuestionInspection) {
$tablQuestionInspection[$unCategorieQuestionInspection->getId()][$i]["label"] = $unQuestionInspection->getLabel();
$tablQuestionInspection[$unCategorieQuestionInspection->getId()][$i]["description"] = $unQuestionInspection->getDescription();
$tablQuestionInspection[$unCategorieQuestionInspection->getId()][$i]["typeQuestionInspection"] = $unQuestionInspection->getTypeQuestionInspection();
if ($unQuestionInspection->getTypeQuestionInspection() == 0) {
$tablQuestionInspection[$i]["reponsequestioninspections"] = $reponseQuestionInspectionRepository->getListeApiReponseQuestionInspection($unQuestionInspection->getId());
}
++$i;
}
}
$dataSend = $this->get('serializer')->serialize(array('data' => $tablQuestionInspection), 'json');
$response = new Response($dataSend);
$response->headers->set('Content-Type', 'application/json');
return $response;
}
/**
* Creates a new user entity.
*
* @Route("/save/producteur/inspection", name="api_save_producteur_inspection")
* @Method({"GET","POST"})
*/
public function saveInspectionReponseAction(
Request $request,
UtilisateurRepository $utilisateurRepository,
InspectionRepository $inspectionRepository,
AnneeCampagneRepository $anneeCampagneRepository,
SurfaceAnneeRepository $surfaceAnneeRepository,
InspectionRempliRepository $inspectionRempliRepository,
QuestionInspectionRepository $questionInspectionRepository,
InspectionReponseRepository $inspectionReponseRepository,
VilleRepository $villeRepository,
ProducteurRepository $producteurRepository,
PlanteRepository $planteRepository,
ProjetRepository $projetRepository,
SurfaceAbonneRepository $surfaceAbonneRepository,
ProducteurAbonneRepository $producteurAbonneRepository,
ProgrammeRepository $programmeRepository,
GroupementRepository $groupementRepository,
EvenementRepository $evenementRepository,
ClientRepository $clientRepository,
FournisseurRepository $fournisseurRepository
) {
$token = $this->_tokenStorage->getToken();
if (!$token) {
return $this->json([
'status' => 400,
'user' => null
], 400);
}
$em = $this->getDoctrine()->getManager();
$tabCodeGenere = array();
//$data = $request->getContent();
//$em->getConnection()->beginTransaction();
$responce = true;
try {
//Recupération des données utilisateur
$parameters = json_decode($request->getContent(), true);
$JSONData = trim($parameters['JSONData']); // email saisie
$tabInfomation = $this->traiteDonneeInspection(
$em,
$JSONData,
$utilisateurRepository,
$inspectionRepository,
$anneeCampagneRepository,
$surfaceAnneeRepository,
$inspectionRempliRepository,
$questionInspectionRepository,
$inspectionReponseRepository,
$villeRepository,
$producteurRepository,
$planteRepository,
$projetRepository,
$surfaceAbonneRepository,
$producteurAbonneRepository,
$programmeRepository,
$groupementRepository,
$evenementRepository,
$clientRepository,
$fournisseurRepository
);
} catch (\Exception $e) {
$responce = false;
$em->getConnection()->rollBack();
$tabInfomation["etat"] = false;
throw $e;
}
///$listeProducteurEvent = json_dedddcode($JSONData,true);
//Envoi des donnée
$tabInfomation["etat"] = true;
//$tabInfomation["etat"]=true;
$dataSend = $this->get('serializer')->serialize(array('data' => $tabInfomation), 'json');
$response = new Response($dataSend);
$response->headers->set('Content-Type', 'application/json');
return $response;
}
/**
* Creates a new user entity.
*
* @Route("/save/producteur/add", name="api_save_producteur_add")
* @Method({"GET","POST"})
*/
public function saveProducteurAddAction(
Request $request,
VilleRepository $villeRepository,
ProducteurRepository $producteurRepository,
UtilisateurRepository $utilisateurRepository,
GroupementRepository $groupementRepository,
ProducteurGroupementRepository $producteurGroupementRepository,
ZoneProducteurRepository $zoneProducteurRepository,
SurfaceAnneeRepository $surfaceAnneeRepository,
PlanteRepository $planteRepository,
ProjetRepository $projetRepository,
AnneeCampagneRepository $anneeCampagneRepository
) {
$token = $this->_tokenStorage->getToken();
if (!$token) {
return $this->json([
'status' => 400,
'user' => null
], 400);
}
$em = $this->getDoctrine()->getManager();
//$data = $request->getContent();
$em->getConnection()->beginTransaction();
$responce = true;
try {
$parameters = json_decode($request->getContent(), true);
$nom = trim($parameters['nom']); // email saisie
$prenoms = trim($parameters['prenoms']); // email saisie
$cni = trim($parameters['cni']); // email saisie
$groupement = trim($parameters['groupement']); // email saisie
$telephone = trim($parameters['telephone']); // email saisie
$codeGenere = trim($parameters['codeGenere']); // email saisie
$idVille = trim($parameters['idVille']); // email saisie
$sexe = trim($parameters['sexe']);
if (array_key_exists("dateNaiss", $parameters))
$dateNaissance = trim($parameters['dateNaiss']);
else
$dateNaissance = 0;
$donnee = $nom . "#" . $prenoms . "#" . $cni . "#" . $groupement . "#" . $telephone . "#" . $codeGenere . "#" . $idVille . "#" . $sexe . "#" . $groupement . "#" . $dateNaissance . "#3";
$objetVille = $villeRepository->find($idVille); //$em->getRepository($this->stockBundle . 'Ville')->findOneBy(array('nomVille'=>$groupement));
//Recuperation de la personne qui a
$id = trim($parameters['id']); //$request->request->get('id');
$objetAgent = $utilisateurRepository->find($id);
// $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');
$objetUtilisateur = $utilisateurRepository->findOneBy(['codeGenere' => $codeGenere, 'abonne' => $objetAgent->getAbonne()]); //$em->getRepository($this->stockBundle . 'Ville')->findOneBy(array('nomVille'=>$groupement));
if ($objetUtilisateur == null) {
$objetUtilisateur = new Utilisateur();
}
//Enregestre ces données comme livraison
$objetUtilisateur->setNom($nom);
$objetUtilisateur->setPrenoms($prenoms);
$objetUtilisateur->setCni($cni);
$objetUtilisateur->setSexe($sexe);
if ($objetVille != null)
$objetUtilisateur->setVille($objetVille);
$objetUtilisateur->setTel1($telephone);
$objetUtilisateur->setCodeGenere($codeGenere);
$objetUtilisateur->setAbonne($objetAgent->getAbonne());
if ($dateNaissance != 0) {
if (\DateTime::createFromFormat('d-m-Y', $dateNaissance) !== false) {
// it's a date
$objetUtilisateur->setDateNaissance(new \DateTime($dateNaissance));
}
}
// $
//$objetInfoLivrer->setGenereCode($codeGenere);
$em->persist($objetUtilisateur);
$em->flush($objetUtilisateur);
$newAdd=1;
$objetProducteur = $producteurRepository->findOneBy(['utilisateur' => $objetUtilisateur]); //$em->getRepository($this->stockBundle . 'Ville')->findOneBy(array('nomVille'=>$groupement));
if ($objetProducteur == null) {
$objetProducteur = new Producteur();
$newAdd=0;
}
//Generer un code pour les producteurs
$objetProducteur->setCodeProd($codeGenere);
$objetProducteur->setCodeGenere($codeGenere);
$objetProducteur->setVille($objetVille);
$objetProducteur->setUtilisateur($objetUtilisateur);
$objetProducteur->setAbonne($objetAgent->getAbonne());
$objetProducteur->setAgent($objetAgent);
$em->persist($objetProducteur);
$em->flush($objetProducteur);
$dateOperation = new \DateTime();
$titre = "ProducteurAdd : " . $objetProducteur->getUtilisateur()->getNom() . " " . $objetProducteur->getUtilisateur()->getPrenoms();
$this->saveTacheFormulaire($em, $titre, $titre, $dateOperation->format("Y-m-d"), $dateOperation->format("Y-m-d"), $dateOperation->format("H:i:s"), $dateOperation->format("H:i:s"), $objetProducteur->getCodeGenere(), 0, $objetUtilisateur->getId(), $typeActivite = 4, $utilisateurRepository, $anneeCampagneRepository, $surfaceAnneeRepository, $planteRepository, $projetRepository, $producteurRepository, null);
if($newAdd==0)
$this->setAbonnePartenaire($em, $objetProducteur->getAbonne(), $objetProducteur->getAbonne()->getPartenaire(), $objetProducteur, $typeObjet = 2);
$this->saveAutreInfoProducteur($em, $groupement, $objetProducteur, $idVille, $villeRepository, $groupementRepository, $producteurGroupementRepository, $zoneProducteurRepository);
$this->addHistoriqueAction($em, "ProducteurAdd", 1, $codeGenere, $id, $objetProducteur->getId(), 1, $donnee, $utilisateurRepository);
$em->getConnection()->commit();
} catch (\Exception $e) {
$tabInfomation["etat"] = false;
$em->getConnection()->rollBack();
throw $e;
}
//Envoi des donnée
$tabInfomation["etat"] = true;
$tabInfomation["codeGenere"] = $parameters['codeGenere'];
$dataSend = $this->get('serializer')->serialize(array('data' => $tabInfomation), 'json');
$response = new Response($dataSend);
$response->headers->set('Content-Type', 'application/json');
return $response;
}
/**
* Creates a new user entity.
*
* @Route("/get/synchronisation/data", name="api_get_synchronisation_data")
* @Method({"GET","POST"})
*
*/
public function getSynchronisationDataAction(
Request $request,
ClientRepository $clientRepository,
ProducteurRepository $producteurRepository,
UtilisateurRepository $utilisateurRepository,
ProduitRepository $produitRepository,
TableRepository $tableRepository,
ProducteurGroupementRepository $producteurGroupementRepository,
CommandeRepository $commandeRepository,
VilleRepository $villeRepository,
SurfaceRepository $surfaceRepository,
PrixRigueurRepository $prixRigueurRepository,
SacRepository $sacRepository,
ImageRepository $imageRepository,
InspectionRepository $inspectionRepository,
GroupementRepository $groupementRepository,
AnneeCampagneRepository $anneeCampagneRepository,
FournisseurRepository $fournisseurRepository,
LocalisationRepository $localisationRepository,
CibleRepository $cibleRepository,
CaracteristiquePrixRepository $caracteristiquePrixRepository,
InfoInventaireRepository $infoInventaireRepository,
LigneCommandeRepository $ligneCommandeRepository,
TypeOperationRepository $typeOperationRepository,
InventaireRepository $inventaireRepository,
OperationRepository $operationRepository,
SurfaceAnneeRepository $surfaceAnneeRepository,
InspectionRempliRepository $inspectionRempliRepository,
QuestionInspectionRepository $questionInspectionRepository,
ZoneProducteurRepository $zoneProducteurRepository,
InspectionReponseRepository $inspectionReponseRepository,
ProduitEtapeCroissanceRepository $produitEtapeCroissanceRepository,
TacheProduitEtapeCroissanceRepository $tacheProduitEtapeCroissanceRepository,
PlanteRepository $planteRepository,
ProjetRepository $projetRepository,
SurfaceAbonneRepository $surfaceAbonneRepository,
ProducteurAbonneRepository $producteurAbonneRepository,
LivrerRepository $livrerRepository,
OperationManager $operationManager,
CaisseRepository $caisseRepository,
InfoLivrerRepository $infoLivrerRepository,
HistoriqueActionRepository $historiqueActionRepository,
AbonneRepository $abonneRepository,
SeTrouverRepository $seTrouverRepository,
EtatOpportuniteRepository $etatOpportuniteRepository,
ProgrammeRepository $programmeRepository,
EntrepotRepository $entrepotRepository,
CategorieQuestionInspectionRepository $categorieQuestionInspectionRepository,
ReponseQuestionInspectionRepository $reponseQuestionInspectionRepository,
ArticleRepository $articleRepository,
EvenementRepository $evenementRepository,
RubriqueRepository $rubriqueRepository,
TransformationRepository $transformationRepository,
EtapeProcessusRepository $etapeProcessusRepository,
ProduitTypeOperationRepository $produitTypeOperationRepository
) {
$token = $this->_tokenStorage->getToken();
if (!$token) {
return $this->json([
'status' => 400,
'user' => null
], 400);
}
$em = $this->getDoctrine()->getManager();
// $em->getConnection()->beginTransaction();
$dateJour = new \DateTime();
$parameters = json_decode($request->getContent(), true);
$JSONData = $parameters['msgInspection'];
$JSONDataFacture = $parameters['msgFacture'];
$JSONDataProducteur = $parameters['msgProducteur'];
$JSONDataIntention = $parameters['msgIntention'];
$JSONDataLocalisation = $parameters['msgLocalisation'];
$JSONDataClient = $parameters['msgClient'];
$JSONDataImage = $parameters['msgImage'];
$idUtil = $parameters['idUtil'];
// $this->addHistoriqueAction($em, "SynchronisationLocalisation", 1, "test", 0, 0, 1,$JSONDataFacture);
$objetAgent = NULL;
//var_dump($idUtil );exit;
$objetUtilisateur = null;
$oldDateSynchronisation = new \DateTime();
if ($idUtil != null) {
$objetUtilisateur = $utilisateurRepository->find($idUtil);
$oldDateSynchronisation = $this->setDateSynchronisation($em, $objetUtilisateur);
$objetAgent = $fournisseurRepository->findOneBy(['utilisateur' => $objetUtilisateur]);
$infoPartenaire = $this->getInfoPartenaire($em, $this->getAbonne($em, $objetUtilisateur->getAbonne(), $abonneRepository));
}
$queryResul = array();
//Liste des donnes a prendre #endregion
//Mise a jour des donnees
// $JSONData = str_replace("QE#","",$JSONData);
$this->traiteDonneeAjoutProducteur(
$em,
$JSONDataProducteur,
$utilisateurRepository,
$inspectionRepository,
$anneeCampagneRepository,
$villeRepository,
$producteurRepository,
$groupementRepository,
$producteurGroupementRepository,
$zoneProducteurRepository,
$surfaceAnneeRepository,
$planteRepository,
$projetRepository
);
$this->traiteDonneeAjoutParcelle(
$em,
$JSONDataIntention,
$produitRepository,
$villeRepository,
$surfaceRepository,
$utilisateurRepository,
$producteurRepository,
$anneeCampagneRepository,
$surfaceAnneeRepository,
$planteRepository,
$projetRepository
);
$this->traiteDonneeAjoutClient(
$em,
$JSONDataClient,
$idUtil,
$utilisateurRepository,
$villeRepository,
$producteurRepository,
$clientRepository,
$prixRigueurRepository
);
$this->traiteDonneeInspection(
$em,
$JSONData,
$utilisateurRepository,
$inspectionRepository,
$anneeCampagneRepository,
$surfaceAnneeRepository,
$inspectionRempliRepository,
$questionInspectionRepository,
$inspectionReponseRepository,
$villeRepository,
$producteurRepository,
$planteRepository,
$projetRepository,
$surfaceAbonneRepository,
$producteurAbonneRepository,
$programmeRepository,
$groupementRepository,
$evenementRepository,
$clientRepository,
$fournisseurRepository
);
$this->traiteDonneeFacture(
$em,
$JSONDataFacture,
$produitRepository,
$villeRepository,
$clientRepository,
$surfaceRepository,
$commandeRepository,
$prixRigueurRepository,
$utilisateurRepository,
$producteurRepository,
$anneeCampagneRepository,
$fournisseurRepository,
$surfaceAnneeRepository,
$localisationRepository,
$cibleRepository,
$caracteristiquePrixRepository,
$infoInventaireRepository,
$ligneCommandeRepository,
$typeOperationRepository,
$inventaireRepository,
$operationRepository,
$tableRepository,
$surfaceAbonneRepository,
$producteurAbonneRepository,
$livrerRepository,
$operationManager,
$caisseRepository,
$infoLivrerRepository,
$etatOpportuniteRepository
);
$this->traiteDonneeImage($em, $JSONDataImage, $parameters, $surfaceAnneeRepository, $inspectionRempliRepository, $producteurRepository, $imageRepository, $type=1);
$this->traiteDonneeAjoutLocalisation(
$em,
$JSONDataLocalisation,
$produitRepository,
$villeRepository,
$surfaceRepository,
$utilisateurRepository,
$producteurRepository,
$anneeCampagneRepository,
$surfaceAnneeRepository,
$localisationRepository,
$planteRepository,
$projetRepository,
$surfaceAbonneRepository,
$inspectionRempliRepository,
$commandeRepository
);
// $em->getConnection()->commit();
$objetProducteur = $producteurRepository->findOneBy(array("utilisateur" => $objetUtilisateur));
if ($objetUtilisateur->getTypeUtilisateur() == 4 or $objetUtilisateur->getTypeUtilisateur() == 3) {
$id = 0;
$tabVille = $zoneProducteurRepository->findBy(array("producteur" => $objetProducteur));
if ($objetUtilisateur->getTypeUtilisateur() == 3) {
$objetProducteurGroupement = $producteurGroupementRepository->findOneBy(array("producteur" => $objetProducteur));
if ($objetProducteurGroupement->getGroupement() != null)
$groupementId = $objetProducteurGroupement->getGroupement()->getId();
}
} else {
$tabVille = $seTrouverRepository->findBy(array("fournisseur" => $objetAgent, "etatSeTrouver" => 1));
}
if ($idUtil != null)
$queryResult[0]['historique'] = $this->getHistoriqueAction($em, $objetUtilisateur->getAbonne()->getId(), 1, $oldDateSynchronisation->format("Y-m-d H:i:s"));
else
$queryResult[0]['historique'] = array();
$queryResult[0]["listeFournisseur"] = array();
$queryResult[0]["variete"] = array();
if ($idUtil != null) {
if ($objetUtilisateur->getCaisse() != null) {
$caisseId = $objetUtilisateur->getCaisse()->getId();
} else {
$caisseId = 0;
}
$queryResult[0]["client"] = $clientRepository->getAllClientCaisseAPi($objetUtilisateur->getAbonne()->getId(), $caisseId); //getApiAllClient(0,0,0,2,0,0,[],$objetUtilisateur->getAbonne()->getId()) ;
if ($objetUtilisateur->getCaisse() == null) {
$queryResult[0]["variete"] = $produitRepository->getAllProduitCategorieAPI(0, $objetUtilisateur->getAbonne()->getId());
} else {
$queryResult[0]["variete"] = $produitRepository->getAllProduitCaisseAPI($objetUtilisateur->getAbonne()->getId(), $objetUtilisateur->getCaisse()->getId());
}
$queryResult[0]["listeFournisseur"] = $fournisseurRepository->getAllFournisseurByType(2, $objetUtilisateur->getAbonne()->getId());
$queryResult[0]["listeTable"] = $tableRepository->getAllTableAPI($objetUtilisateur->getAbonne()->getId());
$groupementId = 0;
if ($objetUtilisateur->getTypeUtilisateur() == 3) {
$objetProducteur = $producteurRepository->findOneBy(array("utilisateur" => $objetUtilisateur));
$objetProducteurGroupement = $producteurGroupementRepository->findOneBy(array("producteur" => $objetProducteur));
if ($objetProducteurGroupement->getGroupement() != null)
$groupementId = $objetProducteurGroupement->getGroupement()->getId();
}
// $queryResult[0]["cooperative"] = $groupementRepository->getApiAllGroupement($objetUtilisateur->getAbonne()->getId(), $groupementId); //getApiAllClient(0,0,0,2,0,0,[],$objetUtilisateur->getAbonne()->getId()) ;
$queryResult[0]["cooperative"] = $groupementRepository->getApiAllGeneralGroupement($objetUtilisateur->getAbonne()->getId(), $groupementId, $niveau = 3, $tabVille, $infoPartenaire['partenaireId'], $infoPartenaire['typeAction']); //$groupementRepository->getApiAllGroupement($objetUtilisateur->getAbonne()->getId(), $groupementId ); //getApiAllClient(0,0,0,2,0,0,[],$objetUtilisateur->getAbonne()->getId()) ;
$queryResult[0]["inspectionproduit"] = $inspectionRepository->getListeApiInspectionProduit($objetUtilisateur->getAbonne()->getId());
$queryResult[0]["inspectionprofil"] = $inspectionRepository->getListeApiInspectionProfil($objetUtilisateur->getAbonne()->getId());
$queryResult[0]["listeSac"] = $sacRepository->getListeSac($objetUtilisateur->getAbonne()->getId());
$queryResult[0]["listePlante"] = $planteRepository->getListePlante($objetUtilisateur->getAbonne()->getId());
$queryResult[0]["entrepot"] = $entrepotRepository->getListeEntrepot($objetUtilisateur->getAbonne()->getId());
/* $listeInspection = $inspectionRepository->getListeApiInspection($id, $objetUtilisateur->getAbonne()->getId()) ;
$tablInspection = array();
$i=0;
$tablInspection = $this->getInspectionInfo($em, $listeInspection, $objetUtilisateur,$inspectionRepository,$categorieQuestionInspectionRepository, $reponseQuestionInspectionRepository);
$queryResult[0]["inspection"] =$tablInspection; */
$queryResult[0]["configuration"] = $objetUtilisateur->getAbonne()->getConfiguration();
//$queryResult[0]["ville"] =$villeRepository->getVilleUtilisateurAPI($objetUtilisateur->getAbonne()->getId());
if ($objetAgent != null or $objetUtilisateur->getTypeUtilisateur() == 4 or $objetUtilisateur->getTypeUtilisateur() == 3) {
$queryResult[0]["ville"] = $villeRepository->getVilleUtilisateurAPIByZone($objetUtilisateur->getAbonne()->getId(), $tabVille); //$fournisseurRepository->getFournisseurSeTrouverAPI($objetAgent->getId());//
} else {
$queryResult[0]["ville"] = array();
}
//activite de travail
$queryResult[0]["pec"] = $produitEtapeCroissanceRepository->getAllEtapeCroissanceProduit($objetUtilisateur->getAbonne()->getId());
$queryResult[0]["tachepec"] = $tacheProduitEtapeCroissanceRepository->getAllEtapeCroissanceProduitTache($objetUtilisateur->getAbonne()->getId());
if ($objetUtilisateur->getTypeUtilisateur() == 2)
$type = 2;
else
$type = 3;
if ($objetUtilisateur->getCaisse() != null) {
$queryResult[0]["typeOperation"] = $typeOperationRepository->getListeTypeOperationAPI($objetUtilisateur->getAbonne()->getId(), $type, $objetUtilisateur->getCaisse()->getId());
} else {
$queryResult[0]["typeOperation"] = $typeOperationRepository->getListeTypeOperationAPI($objetUtilisateur->getAbonne()->getId(), $type);
}
//Ajouter l'abonne a l'inspection
$id = 0;
//$listeInspection = $inspectionRepository->getListeApiInspection($id, $objetUtilisateur->getAbonne()->getId()) ;
$queryResult[0]["listeImage"] = $imageRepository->getAllImageAPI($objetUtilisateur->getAbonne()->getId());
$tablInspection = array();
//$objetHistoriqueAction = $historiqueActionRepository->findBy(array("fournisseur"=>$objetAgent,"operation"=>2));
$objetHistoriqueAction = $this->getHistoriqueAgentAction($em, $objetUtilisateur->getAbonne()->getId(), 1, $oldDateSynchronisation->format("Y-m-d H:i:s"));
$queryResult[0]["producteur"] = array();
$queryResult[0]["intention"] = array();
if (count($objetHistoriqueAction) > 0) {
$infoPartenaire = $this->getInfoPartenaire($em, $this->getAbonne($em, $objetUtilisateur->getAbonne(), $abonneRepository));
if ($objetAgent == null) {
$id = 0;
$idville = 1;
$objetVille = $villeRepository->find($idville);
$tabVille[0] = $seTrouverRepository->findOneBy(array("ville" => $objetVille));
if ($idville == 0) {
$tabVille = $seTrouverRepository->findBy(array("fournisseur" => $objetAgent, "etatSeTrouver" => 1));
}
} else {
$id = 0;
//$idville = $objetAgent->getVille()->getId();
$tabVille = $seTrouverRepository->findBy(array("fournisseur" => $objetAgent, "etatSeTrouver" => 1));
}
if ($objetUtilisateur->getTypeUtilisateur() != 3) {
if ($objetUtilisateur->getTypeUtilisateur() == 2) {
$queryResult[0]["producteur"] = $fournisseurRepository->getAllFournisseurProducteurAPINew($id, $tabVille, $niveau = 3, $prod = 0, $type = 0, $objetUtilisateur->getAbonne()->getId(), $caisse = 0, $objetProducteur->getId(), 0, 0, 0);
} else {
$queryResult[0]["producteur"] = $fournisseurRepository->getAllFournisseurProducteurAPINew($id, $tabVille, $niveau = 3, $prod = 0, $type = 0, $objetUtilisateur->getAbonne()->getId(), $caisse = 0, 0, 0, $infoPartenaire['partenaireId'], $infoPartenaire['typeAction']);
}
if ($objetUtilisateur->getAbonne()->getSiExploitation() != 1) {
$queryResult[0]["intention"] = $surfaceAnneeRepository->getApiNewIntentionProducteurFournisseur($id, $tabVille, 0, $niveau = 3, $objetUtilisateur->getAbonne()->getId(), 0, $infoPartenaire['partenaireId'], $infoPartenaire['typeAction'], 0, 1);
} else {
$listeExploitation = $surfaceAnneeRepository->getApiNewIntentionProducteurFournisseur($id, $tabVille, 0, $niveau = 3, $objetUtilisateur->getAbonne()->getId(), 0, $infoPartenaire['partenaireId'], $infoPartenaire['typeAction'], 1, 0);
$listeParcelle = $surfaceAnneeRepository->getApiNewIntentionProducteurFournisseur($id, $tabVille, 0, $niveau = 3, $objetUtilisateur->getAbonne()->getId(), 0, $infoPartenaire['partenaireId'], $infoPartenaire['typeAction'], 0, 0);
$queryResult[0]["intention"] = array_merge($listeExploitation, $listeParcelle);
}
}
}
$i = 0;
// $tablInspection = $this->getInspectionInfo($em, $listeInspection, $objetUtilisateur);
// $queryResult[0]["inspection"] =$tablInspection;
} else {
$queryResult[0]["variete"] = array();
}
$queryResult[0]["configuration"] = $objetUtilisateur->getAbonne()->getConfiguration();
$listeProgramme1 = $programmeRepository->getListeProgramme($objetUtilisateur->getAbonne()->getId(), $dateJour->format("d/m/Y H:i:s"), 0);
$listeProgramme2 = $programmeRepository->getListeProgrammeGeneral($objetUtilisateur->getAbonne()->getId(), $dateJour->format("d/m/Y H:i:s"), 1);
$queryResult[0]["programme"] = array_merge($listeProgramme1, $listeProgramme2);
$queryResult[0]["article"] = $articleRepository->getAllOrOneArticleSousActifAPI(0, $objetUtilisateur->getAbonne()->getId());
$queryResult[0]["rubrique"] = $rubriqueRepository->getAllOrOneRubriqueSousActifAPI($objetUtilisateur->getAbonne()->getId());
$queryResult[0]["transformation"] = $transformationRepository->getAllTransformationAPI($objetUtilisateur->getAbonne()->getId(), 1);
$queryResult[0]["etapeprocessus"] = $etapeProcessusRepository->getAllEtapeProcessusAPI($objetUtilisateur->getAbonne()->getId());
if ($objetUtilisateur->getCaisse() == null)
$queryResult[0]["prix"] = $prixRigueurRepository->getAllPrixByPartenaireAPI(0, $objetUtilisateur->getAbonne()->getId(), $infoPartenaire['partenaireId'], $infoPartenaire['typeAction']); //getAllPrixDirectAPI($objetUtilisateur->getAbonne()->getId()); //getAllVarietePrixRigueurAPI(0,2,$objetUtilisateur->getAbonne()->getId());
else
$queryResult[0]["prix"] = $prixRigueurRepository->getAllPrixCaisseAPI($objetUtilisateur->getAbonne()->getId(), $caisseId); //getAllVarietePrixRigueurAPI(0,2,$objetUtilisateur->getAbonne()->getId());
$queryResult[0]["etatUtilisateur"] = $objetUtilisateur->getEtat();
$queryResult[0]["produittypeoperation"] = $produitTypeOperationRepository->getAllProduitTypeOperation($objetUtilisateur->getAbonne()->getId());
$queryResult[0]["evenement"] = $evenementRepository->getListeApiEvenement($objetUtilisateur->getAbonne()->getId());
//fin de la sychronisation
if($objetUtilisateur!=null){
$dateFinSynchronisation = new \DateTime();
$interval = $dateFinSynchronisation->diff($objetUtilisateur->getDateSynchronisation());
$duree = $interval->format("%H:%I:%S ");
$historiqueActionUtilisateur = new HistoriqueActionUtilisateur();
$historiqueActionUtilisateur->setDureeSynchronisation($duree);
$historiqueActionUtilisateur->setUtilisateur($objetUtilisateur);
$historiqueActionUtilisateur->setDatePublication($dateFinSynchronisation);
$em->persist($historiqueActionUtilisateur);
$em->flush($historiqueActionUtilisateur);
}
//$queryResult['variete'] = $this->getHistoriqueAction($em, $idUtil, 1) ;
// var_dump($detailUtil);exit;
$dataSend = $this->get('serializer')->serialize(array('data' => $queryResult), 'json');
$response = new Response($dataSend);
$response->headers->set('Content-Type', 'application/json');
return $response;
}
/**
* Creates a new user entity.
*
* @Route("/save/image/inspection/rempli", name="api_save_image_inspection_rempli")
* @Method({"GET","POST"})
*/
public function saveImageInspectionRempliAction(Request $request, InspectionRempliRepository $inspectionRempliRepository)
{
$token = $this->_tokenStorage->getToken();
if (!$token) {
return $this->json([
'status' => 400,
'user' => null
], 400);
}
$em = $this->getDoctrine()->getManager();
$data = $request->getContent();
$this->em = $this->getDoctrine()->getManager();
$codeGenere = $request->request->get('codeGenere');
$tablQuestionInspection = array();
$objetInspectionRempli = $inspectionRempliRepository->findOneBy(array("codeGenere" => $codeGenere));
$file_path = __DIR__ . '/../../../public/inspection/';;
$file_path = $file_path . basename($_FILES['uploaded_file']['name']);
$objetImage = new Image();
$objetImage->setUrlImage(basename($_FILES['uploaded_file']['name']));
$objetImage->setInspectionrempli($objetInspectionRempli);
$objetImage->setCodeGenere($codeGenere);
$objetImage->setTitreImage("Inspection Signature");
$em->persist($objetImage);
$em->flush($objetImage);
if (move_uploaded_file($_FILES['uploaded_file']['tmp_name'], $file_path)) {
echo "success";
} else {
echo "fail";
}
$dataSend = $this->get('serializer')->serialize(array('data' => $tablQuestionInspection), 'json');
$response = new Response($dataSend);
$response->headers->set('Content-Type', 'application/json');
return $response;
}
/**
* Creates a new user entity.
*
* @Route("/save/info/map/data", name="api_save_info_map_data")
* @Method({"GET","POST"})
*
*/
public function saveInfoMapDataAction(Request $request, UtilisateurRepository $utilisateurRepository, SurfaceAnneeRepository $surfaceAnneeRepository, SurfaceAbonneRepository $surfaceAbonneRepository,
AnneeCampagneRepository $anneeCampagneRepository, PlanteRepository $planteRepository, ProjetRepository $projetRepository, ProducteurRepository $producteurRepository)
{
$token = $this->_tokenStorage->getToken();
if (!$token) {
return $this->json([
'status' => 400,
'user' => null
], 400);
}
$em = $this->getDoctrine()->getManager();
$parameters = json_decode($request->getContent(), true);
$idUtil = trim($parameters['idUtil']);
$parCodeGenere = trim($parameters['parCodeGenere']);
$superficieRelle = trim($parameters['superficieRelle']);
$margeErreur = trim($parameters['margeErreur']);
$LatLngJSONData = trim($parameters['JSONData']);
$dateOperation = new \DateTime();
$queryResult = array();
//Liste des donnes a prendre #endregion
$objetUtilisateur = $utilisateurRepository->find($idUtil);
// $listeAction = $this->getHistoriqueAction($em,$idUtil,1);
$objetSurfaceAnnee = $surfaceAnneeRepository->findOneBy(array("codeGenere" => $parCodeGenere));
if( $objetSurfaceAnnee == null ){
$tabInfomation["etat"] = false;
$tabInfomation["codeGenere"] = "";
$dataSend = $this->get('serializer')->serialize(array('data' => $tabInfomation), 'json');
$response = new Response($dataSend);
$response->headers->set('Content-Type', 'application/json');
return $response;
}
if ($superficieRelle != null) {
if($superficieRelle != null && $superficieRelle != '0' && $superficieRelle != 'null' )
$objetSurfaceAnnee->setSuperficieRelle($superficieRelle);
}
$em->persist($objetSurfaceAnnee);
$em->flush($objetSurfaceAnnee);
$tabPoint = array();
$idVille = 0;
$explCodeGenere= 0;
if($objetSurfaceAnnee->getVille()!=null)
$idVille = $objetSurfaceAnnee->getVille()->getId();
if($objetSurfaceAnnee->getSurfaceannee()!= null)
$explCodeGenere = $objetSurfaceAnnee->getSurfaceannee()->getCodeGenere();
$donnee = $objetSurfaceAnnee->getSuperficie(). "#" . $objetSurfaceAnnee->getProducteur()->getCodeGenere() . "#" . $parCodeGenere . "#" . $parCodeGenere. "#" . $idVille . "#" . $objetSurfaceAnnee->getProduit()->getId() . "#0#" . $idUtil . "#" . $explCodeGenere . "#" . $objetSurfaceAnnee->getTypeParcelle() . "#0#".$objetSurfaceAnnee->getSuperficieRelle()."#3" ;
if($objetSurfaceAnnee->getSiPolygon()== 1)
$this->initialiserLesAncienPolygon($em, $objetSurfaceAnnee->getId(), $typeLocalisation=2);
//Mise a jour des donnees
$listLocalisation = json_decode($LatLngJSONData, true);
$objetSurfaceAbonne = $surfaceAbonneRepository->findOneBy(['abonne' => $objetUtilisateur->getAbonne(), 'surfaceannee' => $objetSurfaceAnnee]);
$i = 0;
$firstPoint = 0;
$donnee1 = $LatLngJSONData;
$this->addHistoriqueAction($em, "P", 1, $parCodeGenere, $objetUtilisateur->getId(), $objetSurfaceAnnee->getProducteur()->getId(), 1, $donnee1, $utilisateurRepository);
$this->addHistoriqueAction($em, 'ProducteurIntention', 1, $parCodeGenere, $idUtil, 1, 1, $donnee, $utilisateurRepository);
if (count($listLocalisation) != 0) {
foreach ($listLocalisation as $localisation) {
if ($i == 0)
$firstPoint = new Point($localisation["longitude"], $localisation["latitude"], null);
$uneLocalisation = new Localisation();
$uneLocalisation->setSurfaceAnnee($objetSurfaceAnnee);
$uneLocalisation->setSurfaceabonne($objetSurfaceAbonne);
$uneLocalisation->setLatitude($localisation["latitude"]);
$uneLocalisation->setLongitude($localisation["longitude"]);
$uneLocalisation->setTypeLocalisation($localisation["typeLocalisation"]);
$uneLocalisation->setCodeGenere($localisation["codeGenere"]);
$uneLocalisation->setAbonne($objetUtilisateur->getAbonne());
// $uneLocalisation->setEtatLocalisation(2);
$uneLocalisation->setUtilisateur($objetUtilisateur);
//$donnee = $localisation["latitude"]."-".$localisation["longitude"]."-".$localisation["typeLocalisation"]."-".$localisation["codeGenere"]."-".$objetUtilisateur->getAbonne()->getId();
$em->persist($uneLocalisation);
$em->flush($uneLocalisation);
$tabPoint[$i] = new Point($localisation["longitude"], $localisation["latitude"], null);
$i++;
$tabPolygone = 0;
if($localisation['tabLocalisation'] != "")
$tabPolygone = $localisation['tabLocalisation'];
$donnee = $localisation['utilisateurId'] . "#" . $localisation['parCodeGenere'] . "#" . $localisation['codeGenere'] . "#" . $localisation['latitude'] . "#" . $localisation['longitude'] . "#" . $localisation['typeLocalisation']."#" . $tabPolygone;
$this->addHistoriqueAction($em, "ProducteurLocalisation", 1, $parCodeGenere, $objetUtilisateur->getId(), $objetSurfaceAnnee->getProducteur()->getId(), 1, $donnee, $utilisateurRepository);
}
//if($firstPoint != 0) {
//if($firstPoint != 0)
$tabPoint[$i] = $firstPoint;
$infoPolygon = array(
new LineString(
$tabPoint
)
);
$polygon = new Polygon($infoPolygon);
$objetSurfaceAnnee->setSiPolygon(1);
$objetSurfaceAnnee->setPolygon($polygon);
$em->persist($objetSurfaceAnnee);
$em->flush($objetSurfaceAnnee);
$titre = "polygonAdd : " . $objetSurfaceAnnee->getProducteur()->getUtilisateur()->getNom() . " " . $objetSurfaceAnnee->getProducteur()->getUtilisateur()->getPrenoms() . "_" . $uneLocalisation->getLatitude() . "_" . $uneLocalisation->getLongitude();
$this->saveTacheFormulaire($em, $titre, $titre, $dateOperation->format("Y-m-d"), $dateOperation->format("Y-m-d"), $dateOperation->format("H:i:s"), $dateOperation->format("H:i:s"), $objetSurfaceAnnee->getProducteur()->getCodeGenere(), 0, $objetUtilisateur->getId(), $typeActivite = 4, $utilisateurRepository, $anneeCampagneRepository, $surfaceAnneeRepository, $planteRepository, $projetRepository, $producteurRepository, null);
$donnee2 = $objetSurfaceAnnee->getSuperficie() . "#" . $objetSurfaceAnnee->getProducteur()->getCodeGenere() . "#" . $objetSurfaceAnnee->getCodeGenere() . "#" . $objetSurfaceAnnee->getCodeGenere() . "#1#" . $objetSurfaceAnnee->getProduit()->getId() . "#0#" . $idUtil . "#" . $objetSurfaceAnnee->getCodeGenere() . "#" . $objetSurfaceAnnee->getTypeParcelle() . "#1#".$objetSurfaceAnnee->getSuperficieRelle()."#3";
$this->addHistoriqueAction($em, 'ProducteurIntention', 1, $objetSurfaceAnnee->getCodeGenere(), $idUtil, $objetSurfaceAnnee->getProducteur()->getId(), 1, $donnee2, $utilisateurRepository);
// }
}
$queryResult = $surfaceAnneeRepository->getIntentionProducteur($objetSurfaceAnnee->getProducteur()->getId());
$tabInfomation["etat"] = true;
$tabInfomation["codeGenere"] = $parameters['parCodeGenere'];
$dataSend = $this->get('serializer')->serialize(array('data' => $tabInfomation), 'json');
$response = new Response($dataSend);
$response->headers->set('Content-Type', 'application/json');
return $response;
}
/**
* Creates a new user entity.
*
* @Route("/get/synchro/data/parcelle/producteur", name="api_get_synchro_data_parcelle_producteur")
* @Method({"GET","POST"})
*
*/
public function getSynchroDataParcelleProducteurAction(
Request $request,
ProducteurRepository $producteurRepository,
UtilisateurRepository $utilisateurRepository,
ProduitRepository $produitRepository,
ProducteurGroupementRepository $producteurGroupementRepository,
VilleRepository $villeRepository,
SurfaceRepository $surfaceRepository,
InspectionRepository $inspectionRepository,
GroupementRepository $groupementRepository,
AnneeCampagneRepository $anneeCampagneRepository,
SurfaceAnneeRepository $surfaceAnneeRepository,
ZoneProducteurRepository $zoneProducteurRepository,
PlanteRepository $planteRepository,
ProjetRepository $projetRepository,
) {
$token = $this->_tokenStorage->getToken();
if (!$token) {
return $this->json([
'status' => 400,
'user' => null
], 400);
}
$em = $this->getDoctrine()->getManager();
// $em->getConnection()->beginTransaction();
$dateJour = new \DateTime();
$parameters = json_decode($request->getContent(), true);
$JSONDataProducteur = $parameters['msgProducteur'];
$JSONDataIntention = $parameters['msgIntention'];
// $JSONData = str_replace("QE#","",$JSONData);
$this->traiteDonneeAjoutProducteur(
$em,
$JSONDataProducteur,
$utilisateurRepository,
$inspectionRepository,
$anneeCampagneRepository,
$villeRepository,
$producteurRepository,
$groupementRepository,
$producteurGroupementRepository,
$zoneProducteurRepository,
$surfaceAnneeRepository,
$planteRepository,
$projetRepository
);
$this->traiteDonneeAjoutParcelle(
$em,
$JSONDataIntention,
$produitRepository,
$villeRepository,
$surfaceRepository,
$utilisateurRepository,
$producteurRepository,
$anneeCampagneRepository,
$surfaceAnneeRepository,
$planteRepository,
$projetRepository
);
//Envoi des donnée
$tabInfomation["etat"] = true;
$dataSend = $this->get('serializer')->serialize(array('data' => $tabInfomation), 'json');
$response = new Response($dataSend);
$response->headers->set('Content-Type', 'application/json');
return $response;
}
/**
* Creates a new user entity.
*
* @Route("/save/synchro/info/map/data", name="api_save_synchro_info_map_data")
* @Method({"GET","POST"})
*
*/
public function saveSynchroInfoMapDataAction(Request $request, UtilisateurRepository $utilisateurRepository, SurfaceAnneeRepository $surfaceAnneeRepository, SurfaceAbonneRepository $surfaceAbonneRepository,
AnneeCampagneRepository $anneeCampagneRepository, PlanteRepository $planteRepository, ProjetRepository $projetRepository, ProducteurRepository $producteurRepository,
LocalisationRepository $localisationRepository,InspectionRempliRepository $inspectionRempliRepository, CommandeRepository $commandeRepository,)
{
$token = $this->_tokenStorage->getToken();
if (!$token) {
return $this->json([
'status' => 400,
'user' => null
], 400);
}
$em = $this->getDoctrine()->getManager();
$parameters = json_decode($request->getContent(), true);
$idUtil = trim($parameters['idUtil']);
$parCodeGenere = trim($parameters['parCodeGenere']);
$superficieRelle = trim($parameters['superficieRelle']);
$margeErreur = trim($parameters['margeErreur']);
$LatLngJSONData = trim($parameters['JSONData']);
$dateOperation = new \DateTime();
$queryResult = array();
//Liste des donnes a prendre #endregion
$objetUtilisateur = $utilisateurRepository->find($idUtil);
// $listeAction = $this->getHistoriqueAction($em,$idUtil,1);
$objetSurfaceAnnee = $surfaceAnneeRepository->findOneBy(array("codeGenere" => $parCodeGenere));
if( $objetSurfaceAnnee == null ){
$tabInfomation["etat"] = false;
$tabInfomation["codeGenere"] = "";
$dataSend = $this->get('serializer')->serialize(array('data' => $tabInfomation), 'json');
$response = new Response($dataSend);
$response->headers->set('Content-Type', 'application/json');
return $response;
}
if ($superficieRelle != null) {
if( $superficieRelle != '0' && $superficieRelle != 'null' )
$objetSurfaceAnnee->setSuperficieRelle($superficieRelle);
}
$em->persist($objetSurfaceAnnee);
$em->flush($objetSurfaceAnnee);
$tabPoint = array();
if($objetSurfaceAnnee->getSiPolygon()== 1)
$this->initialiserLesAncienPolygon($em, $objetSurfaceAnnee->getId(), $typeLocalisation=2);
//Mise a jour des donnees
$tabLocalisation = json_decode($LatLngJSONData, true);
$listLocalisation = $tabLocalisation["audit"];
$infoLocalisation = $tabLocalisation["simple"];
$objetSurfaceAbonne = $surfaceAbonneRepository->findOneBy(['abonne' => $objetUtilisateur->getAbonne(), 'surfaceannee' => $objetSurfaceAnnee]);
$i = 0;
$firstPoint = 0;
$listLocalisation = json_decode($listLocalisation, true);
$tabLocalisationSimple = json_decode($infoLocalisation, true);
if(count($tabLocalisationSimple)!=0)
$this->saveLocalisation($em,0, 0, 0, $parCodeGenere, $listLocalisation, $tabLocalisationSimple[0], $surfaceAnneeRepository, $utilisateurRepository,$localisationRepository,$surfaceAbonneRepository, $inspectionRempliRepository, $commandeRepository,$anneeCampagneRepository,$planteRepository, $projetRepository, $producteurRepository);
$donnee1 = $LatLngJSONData;
$this->addHistoriqueAction($em, "P", 1, $parCodeGenere, $objetUtilisateur->getId(), $objetSurfaceAnnee->getProducteur()->getId(), 1, $donnee1, $utilisateurRepository);
if (count($listLocalisation) != 0) {
foreach ($listLocalisation as $localisation) {
if ($i == 0)
$firstPoint = new Point($localisation["longitude"], $localisation["latitude"], null);
$uneLocalisation = $localisationRepository->findOneBy(['abonne' => $objetUtilisateur->getAbonne(), 'codeGenere' => $localisation["codeGenere"]]);
if($uneLocalisation == null)
$uneLocalisation = new Localisation();
$uneLocalisation->setSurfaceAnnee($objetSurfaceAnnee);
$uneLocalisation->setSurfaceabonne($objetSurfaceAbonne);
$uneLocalisation->setLatitude($localisation["latitude"]);
$uneLocalisation->setLongitude($localisation["longitude"]);
$uneLocalisation->setTypeLocalisation($localisation["typeLocalisation"]);
$uneLocalisation->setCodeGenere($localisation["codeGenere"]);
$uneLocalisation->setTabPolygone($localisation["tabLocalisation"]);
$uneLocalisation->setAbonne($objetUtilisateur->getAbonne());
// $uneLocalisation->setEtatLocalisation(2);
$uneLocalisation->setUtilisateur($objetUtilisateur);
//$donnee = $localisation["latitude"]."-".$localisation["longitude"]."-".$localisation["typeLocalisation"]."-".$localisation["codeGenere"]."-".$objetUtilisateur->getAbonne()->getId();
$donnee = $localisation['utilisateurId'] . "#" . $localisation['parCodeGenere'] . "#" . $localisation['codeGenere'] . "#" . $localisation['latitude'] . "#" . $localisation['longitude'] . "#" . $localisation['typeLocalisation']. "#" . $localisation['tabLocalisation'];
$em->persist($uneLocalisation);
$em->flush($uneLocalisation);
$tabPoint[$i] = new Point($localisation["longitude"], $localisation["latitude"], null);
$i++;
$tabPolygone = 0;
if($localisation['tabLocalisation'] != "" )
$tabPolygone = $localisation['tabLocalisation'];
$donnee = $localisation['utilisateurId'] . "#" . $localisation['parCodeGenere'] . "#" . $localisation['codeGenere'] . "#" . $localisation['latitude'] . "#" . $localisation['longitude'] . "#" . $localisation['typeLocalisation']. "#" . $tabPolygone;
$this->addHistoriqueAction($em, "ProducteurLocalisation", 1, $parCodeGenere, $objetUtilisateur->getId(), $objetSurfaceAnnee->getProducteur()->getId(), 1, $donnee, $utilisateurRepository);
}
//if($firstPoint != 0) {
//if($firstPoint != 0)
$tabPoint[$i] = $firstPoint;
$infoPolygon = array(
new LineString(
$tabPoint
)
);
$polygon = new Polygon($infoPolygon);
$objetSurfaceAnnee->setSiPolygon(1);
$objetSurfaceAnnee->setPolygon($polygon);
$em->persist($objetSurfaceAnnee);
$em->flush($objetSurfaceAnnee);
$titre = "polygonAdd : " . $objetSurfaceAnnee->getProducteur()->getUtilisateur()->getNom() . " " . $objetSurfaceAnnee->getProducteur()->getUtilisateur()->getPrenoms() . "_" . $uneLocalisation->getLatitude() . "_" . $uneLocalisation->getLongitude();
$this->saveTacheFormulaire($em, $titre, $titre, $dateOperation->format("Y-m-d"), $dateOperation->format("Y-m-d"), $dateOperation->format("H:i:s"), $dateOperation->format("H:i:s"), $objetSurfaceAnnee->getProducteur()->getCodeGenere(), 0, $objetUtilisateur->getId(), $typeActivite = 4, $utilisateurRepository, $anneeCampagneRepository, $surfaceAnneeRepository, $planteRepository, $projetRepository, $producteurRepository, null);
$donnee2 = $objetSurfaceAnnee->getSuperficie() . "#" . $objetSurfaceAnnee->getProducteur()->getCodeGenere() . "#" . $objetSurfaceAnnee->getCodeGenere() . "#" . $objetSurfaceAnnee->getCodeGenere() . "#1#" . $objetSurfaceAnnee->getProduit()->getId() . "#0#" . $idUtil . "#" . $objetSurfaceAnnee->getCodeGenere() . "#" . $objetSurfaceAnnee->getTypeParcelle() . "#1#".$objetSurfaceAnnee->getSuperficieRelle()."#3";
$this->addHistoriqueAction($em, 'ProducteurIntention', 1, $objetSurfaceAnnee->getCodeGenere(), $idUtil, $objetSurfaceAnnee->getProducteur()->getId(), 1, $donnee2, $utilisateurRepository);
// }
}
$queryResult = $surfaceAnneeRepository->getIntentionProducteur($objetSurfaceAnnee->getProducteur()->getId());
$tabInfomation["etat"] = true;
$tabInfomation["codeGenere"] = $parameters['parCodeGenere'];
$dataSend = $this->get('serializer')->serialize(array('data' => $tabInfomation), 'json');
$response = new Response($dataSend);
$response->headers->set('Content-Type', 'application/json');
return $response;
}
/**
* Creates a new user entity.
*
* @Route("/save/activite/culturale/data", name="api_save_activite_culturalle_data")
* @Method({"GET","POST"})
*
*/
public function saveActiviteCulturalleDataAction(
Request $request,
SurfaceAnneeRepository $surfaceAnneeRepository,
UtilisateurRepository $utilisateurRepository,
TacheProduitEtapeCroissanceRepository $tacheProduitEtapeCroissanceRepository,
AnneeCampagneRepository $anneeCampagneRepository,
PlanteRepository $planteRepository,
ProjetRepository $projetRepository,
ProducteurRepository $producteurRepository
) {
$token = $this->_tokenStorage->getToken();
if (!$token) {
return $this->json([
'status' => 400,
'user' => null
], 400);
}
$em = $this->getDoctrine()->getManager();
$parameters = json_decode($request->getContent(), true);
$idUtil = trim($parameters['idUtil']);
$tachepecId = trim($parameters['tachepecId']);
$idOperation = trim($parameters['varCodeGenere']);
$datePublication = trim($parameters['datePublication']);
$description = trim($parameters['description']);
$typeActivite = trim($parameters['typeActivite']);
$codeGenere = trim($parameters['codeGenere']);
$objetTacheProduitEtapeCroissance = $tacheProduitEtapeCroissanceRepository->find($tachepecId);
$titre = $objetTacheProduitEtapeCroissance->getActivite()->getTitreActivite();
$tabIdUtil = [$idUtil];
$queryResult = array();
//Liste des donnes a prendre #endregion
$objetUtilisateur = $utilisateurRepository->find($idUtil);
$dateOperation = new \DateTime($datePublication);
$this->saveTacheFormulaire($em, $titre, $description, $dateOperation->format("Y-m-d"), $dateOperation->format("Y-m-d"), $heuredeb = "00:00:00", $heurefin = "00:00:00", $idOperation, $tabIdUtil, $idUtil, $typeActivite, $utilisateurRepository, $anneCampagneRepository, $surfaceAnneeRepository, $planteRepository, $projetRepository, $producteurRepository, null);
//$queryResult = $surfaceAnneeRepository->getIntentionProducteur($idProd) ;
// var_dump($detailUtil);exit;
$tabInfomation["etat"] = true;
$tabInfomation["codeGenere"] = $parameters['codeGenere'];
$dataSend = $this->get('serializer')->serialize(array('data' => $tabInfomation), 'json');
$response = new Response($dataSend);
$response->headers->set('Content-Type', 'application/json');
return $response;
}
function traiteDonneeInspection(
$em,
$JSONData,
$utilisateurRepository,
$inspectionRepository,
$anneeCampagneRepository,
$surfaceAnneeRepository,
$inspectionRempliRepository,
$questionInspectionRepository,
$inspectionReponseRepository,
$villeRepository,
$producteurRepository,
$planteRepository,
$projetRepository,
$surfaceAbonneRepository,
$producteurAbonneRepository,
$programmeRepository,
$groupementRepository,
$evenementRepository,
$clientRepository,
$fournisseurRepository
) {
$prodCodeGenere = "";
$parCodeGenere = "";
$JSONData = str_replace("QE#", "", $JSONData);
$tabJSONData = explode("|||", $JSONData);
$listInspectionRempli = json_decode($tabJSONData[0], true);
$em->getConnection()->beginTransaction();
$dateOperation = new \DateTime();
$objetEvenement = null;
if (count($tabJSONData) > 1) {
if ($listInspectionRempli != NULL) {
foreach ($listInspectionRempli as $unInspectionRempli) {
$utilisateurId = $unInspectionRempli["utilisateurId"];
$objetUtilisateur = $utilisateurRepository->find($unInspectionRempli["utilisateurId"]);
$objetInspection = $inspectionRepository->find($unInspectionRempli["inpectionId"]);
$prodCodeGenere = $unInspectionRempli["producteurId"];
$parCodeGenere = $unInspectionRempli["parCodeGenere"];
//$objetAnnee = $anneeCampagneRepository->find($unInspectionRempli["anneeId"]);
$objetProducteur = $producteurRepository->findOneBy(["codeGenere" => $unInspectionRempli["producteurId"], 'abonne' => $objetUtilisateur->getAbonne()]);
$objetSurfaceAnnee = $surfaceAnneeRepository->findOneBy(array("codeGenere" => $unInspectionRempli["parCodeGenere"], 'abonne' => $objetUtilisateur->getAbonne()));
$objetSurfaceAbonne = $surfaceAbonneRepository->findOneBy(['abonne' => $objetUtilisateur->getAbonne(), 'surfaceannee' => $objetSurfaceAnnee]);
//if($objetInspection->getTypeInspection() == 2)
//$objetEvenement = $evenementRepository->find((int)$unInspectionRempli["prodCodeGenere"]);
if($objetInspection->getTypeInspection() == 2){
$objetEvenement = $evenementRepository->find((int)$prodCodeGenere);
}else if($objetInspection->getTypeInspection() == 3){
$objetClient = $clientRepository->find((int)$prodCodeGenere);
}else if($objetInspection->getTypeInspection() == 4){
$objetFournisseur = $fournisseurRepository->find((int)$prodCodeGenere);
}else if($objetInspection->getTypeInspection() == 11){
$objetGroupement = $groupementRepository->find((int)$prodCodeGenere);
}
$objetProduit = null;
if ($objetSurfaceAnnee != null)
$objetProduit = $objetSurfaceAnnee->getProduit();
if ($objetSurfaceAnnee != null)
$objetSurfaceAnnee->setDateVisite(new \DateTime($unInspectionRempli["datePublication"]));
$objetAnnee = $anneeCampagneRepository->findOneBy(['produit' => $objetProduit, 'etatAnneeCampagne' => 1]);
$objetProducteurAbonne = $producteurAbonneRepository->findOneBy(['abonne' => $objetUtilisateur->getAbonne(), 'producteur' => $objetProducteur, 'abonne' => $objetUtilisateur->getAbonne()]);
$inspectionRempli = $inspectionRempliRepository->findOneBy(array("codeGenere" => $unInspectionRempli["codeGenere"]));
$objetProgramme = $programmeRepository->findOneBy(['abonne' => $objetUtilisateur->getAbonne(), 'etatProgramme' => 1]);
//{
if ($objetInspection != null) {
if ($objetInspection->getTypeInspection() == 0) {
if ($objetInspection->getSiRepetitif() != 1){
//if ( $objetProducteur != null && $inspectionRempli != null )
//$this->initialiserInspectionRempliProducteur($em, $objetProducteur->getId(), $unInspectionRempli["inpectionId"]);
}
} else if ($objetInspection->getTypeInspection() == 1) {
if ($objetInspection->getSiRepetitif() != 1 ) {
//if ($objetSurfaceAnnee != null && $inspectionRempli != null)
//$this->initialiserInspectionRempliSurface($em, $objetSurfaceAnnee->getId(), $unInspectionRempli["inpectionId"]);
}
}
//mise à jour les etat des ancienne inspection rempli pour cette parcelle
//if ($objetSurfaceAnnee != null) {
//if ($objetInspection->getSiRepetitif() != 1)
//$this->initialiserInspectionRempli($em, $objetInspection->getId(), $objetSurfaceAnnee->getId());
//}
//En registrer la nouvelle inspection rempli par l'utilisateur
if ($inspectionRempli == null)
$inspectionRempli = new InspectionRempli();
$inspectionRempli->setUtilisateur($objetUtilisateur);
$inspectionRempli->setInspection($objetInspection);
$inspectionRempli->setProgramme($objetProgramme);
if ($objetAnnee != null)
$inspectionRempli->setAnneecampagne($objetAnnee);
$inspectionRempli->setProducteur($objetProducteur);
$inspectionRempli->setSurfaceannee($objetSurfaceAnnee);
$inspectionRempli->setProducteurAbonne($objetProducteurAbonne);
$inspectionRempli->setSurfaceabonne($objetSurfaceAbonne);
$inspectionRempli->setEtatInspectionRempli(1);
if($objetInspection->getTypeInspection() == 2){
$inspectionRempli->setEvenement($objetEvenement);
}else if($objetInspection->getTypeInspection() == 3){
$inspectionRempli->setClient($objetClient);
}else if($objetInspection->getTypeInspection() == 4){
$inspectionRempli->setFournisseur($objetFournisseur);
}else if($objetInspection->getTypeInspection() == 11){
$inspectionRempli->setGroupement($objetGroupement);
}
$inspectionRempli->setCodeGenere($unInspectionRempli["codeGenere"]);
$inspectionRempli->setAbonne($objetUtilisateur->getAbonne());
// $inspectionRempli->setEtat($unInspectionRempli["etat"]);
$parCodeGenere = $unInspectionRempli["producteurId"];
if ($unInspectionRempli["parCodeGenere"] != "") {
$parCodeGenere = $unInspectionRempli["parCodeGenere"];
}
$donnee = $unInspectionRempli["inpectionId"] . "#" . $unInspectionRempli["producteurId"] . "#" . $unInspectionRempli["utilisateurId"] . "#" . $unInspectionRempli["anneeId"] . "#" . $unInspectionRempli["codeGenere"] . "#" . $parCodeGenere."#3";
$em->persist($inspectionRempli);
$em->flush($inspectionRempli);
$this->addHistoriqueAction($em, "ProducteurInspectionRempli", 1, $unInspectionRempli["codeGenere"], $utilisateurId, 1, 1, $donnee, $utilisateurRepository);
}
// }
if ($objetInspection != null) {
if ($objetProducteur != null) {
$titre = "ProducteurInspection : " . $objetProducteur->getUtilisateur()->getNom() . ": " . $objetInspection->getLabel();
$this->saveTacheFormulaire($em, $titre, $titre, $dateOperation->format("Y-m-d"), $dateOperation->format("Y-m-d"), $dateOperation->format("H:i:s"), $dateOperation->format("H:i:s"), $objetProducteur->getCodeGenere(), 0, $objetUtilisateur->getId(), $typeActivite = 4, $utilisateurRepository, $anneeCampagneRepository, $surfaceAnneeRepository, $planteRepository, $projetRepository, $producteurRepository, null);
} else {
$titre = "AgentInspection : " . $objetUtilisateur->getNom() . ": " . $objetInspection->getLabel();
$this->saveTacheFormulaire($em, $titre, $titre, $dateOperation->format("Y-m-d"), $dateOperation->format("Y-m-d"), $dateOperation->format("H:i:s"), $dateOperation->format("H:i:s"), $objetUtilisateur->getCodeGenere(), 0, $objetUtilisateur->getId(), $typeActivite = 4, $utilisateurRepository, $anneeCampagneRepository, $surfaceAnneeRepository, $planteRepository, $projetRepository, $producteurRepository, null);
}
//$titre="ProducteurInspection : ".$objetProducteur->getUtilisateur()->getNom().": ".$objetInspection->getLabel();
}
// $this->addHistoriqueAction($em, "ProducteurInspectionRempli", 1, $unInspectionRempli["codeGenere"], $objetUtilisateur->getId(), $objetProducteur->getId(), 1, $donnee ,$utilisateurRepository);
}
}
//$JSONData = '[{"anneeId":2,"codeGenere":"PES111","etat":0,"eventId":1,"producteurId":90,"utilisateurId":0}]' ;
$listInspectionReponse = json_decode($tabJSONData[1], true);
if ($listInspectionReponse != NULL) {
foreach ($listInspectionReponse as $unInspectionReponse) {
$questionInspection = $questionInspectionRepository->find($unInspectionReponse["questionId"]);
$inspectionRempli = $inspectionRempliRepository->findOneBy(array("codeGenere" => $unInspectionReponse["codeGenereRempli"]));
$inspectionReponse = $inspectionReponseRepository->findOneBy(array("codeGenere" => $unInspectionReponse["codeGenere"], "inspectionrempli" => $inspectionRempli));
if ($inspectionReponse == null) //{
$inspectionReponse = new InspectionReponse();
$inspectionReponse->setQuestioninspection($questionInspection);
$inspectionReponse->setInspectionrempli($inspectionRempli);
$inspectionReponse->setCodeGenere($unInspectionReponse["codeGenere"]);
$inspectionReponse->setReponse($unInspectionReponse["reponse"]);
if ($objetUtilisateur != null)
$inspectionReponse->setAbonne($objetUtilisateur->getAbonne());
$em->persist($inspectionReponse);
$em->flush($inspectionReponse);
$donnee = $unInspectionReponse["questionId"] . "#" . $unInspectionReponse["codeGenereRempli"] . "#" . $unInspectionReponse["reponse"] . "#" . $unInspectionReponse["codeGenere"]."#3";
// $this->addHistoriqueAction($em, "ProducteurInspectionReponse", 1, $unInspectionReponse["codeGenere"], $objetUtilisateur->getId(), $objetProducteur->getId(), 1,$donnee);
//$this->addHistoriqueAction($em, "ProducteurInspectionReponse", 1, $unInspectionRempli["codeGenere"], $utilisateurId, 1, 1, $donnee, $utilisateurRepository);
//}
}
}
// Image enregistre
/* $listImage = json_decode($tabJSONData[2],true);
if($listImage !=NULL){
foreach($listImage as $uneImage){
$objetInspectionRempli = $em->getRepository($this->inspectionBundle . 'InspectionRempli')->findOneBy(array("codeGenere"=>$uneImage['inspectionRempliCodeGenere']));
$objetImage = new Image();
$objetImage->setUrlImage($uneImage['titreImage']);
$objetImage->setInspectionrempli($objetInspectionRempli);
$objetImage->setTitreImage("Inspection Signature");
$objetImage->setCodeGenere($uneImage['codeGenere']);
$em->persist($objetImage);
$em->flush($objetImage);
}
}*/
}
//$this->addHistoriqueAction($em, "ProducteurInspection", 1, '-', $objetUtilisateur->getId(), $objetProducteur->getId(), 1,$tabJSONData );
$em->getConnection()->commit();
return ["prodCodeGenere" => $prodCodeGenere, "parCodeGenere" => $parCodeGenere];
}
function traiteDonneeAjoutProducteur(
$em,
$JSONData,
$utilisateurRepository,
$inspectionRepository,
$anneeCampagneRepository,
$villeRepository,
$producteurRepository,
$groupementRepository,
$producteurGroupementRepository,
$zoneProducteurRepository,
$surfaceAnneeRepository,
$planteRepository,
$projetRepository
) { ///Revoir comment ajouter l'abonne
$listProducteur = json_decode($JSONData, true);
$em->getConnection()->beginTransaction();
if ($listProducteur != null) {
foreach ($listProducteur as $unProducteur) {
//$donnee = $unProducteur["nom"] ."#". $unProducteur["prenoms"] ."#".$unProducteur["telephone"] ."#". $unProducteur["idVille"] ."#".$unProducteur["codeGenere"] ."#".$unProducteur["idutil"] ."#".$unProducteur["sexe"]."#".$unProducteur["cni"] ;
$objetVille = $villeRepository->find($unProducteur["idVille"]);
$objetUtilisateur = $utilisateurRepository->find($unProducteur["idutil"]);
//$unProducteur['idVille'] //$em->getRepository($this->stockBundle . 'Ville')->findOneBy(array('nomVille'=>$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');
$newAdd = 1;
$objetUtilisateurProd = $utilisateurRepository->findOneBy(array('codeGenere' => $unProducteur["codeGenere"]));
if ($objetUtilisateurProd == null) {
$objetUtilisateurProd = new Utilisateur();
}
//Enregestre ces données comme livraison
$objetUtilisateurProd->setNom($unProducteur["nom"]);
$objetUtilisateurProd->setPrenoms($unProducteur["prenoms"]);
$objetUtilisateurProd->setCni($unProducteur["cni"]);
if (array_key_exists("dateNaiss", $unProducteur)) {
$dateNaissance = $unProducteur["dateNaiss"];
//if($dateNaissance !=0){
//if(array_key_exists("dateNaiss", $unProducteur)){
if (\DateTime::createFromFormat('d-m-Y', $unProducteur["dateNaiss"]) !== false) {
// it's a date
$infoDateNaissance = new \DateTime($unProducteur["dateNaiss"]);
$objetUtilisateurProd->setDateNaissance(new \DateTime($infoDateNaissance->format("Y-m-d")));
}
// }
//}
} else {
$dateNaissance = 0;
}
//if($dateNaissance !=0 )
//$objetUtilisateurProd->setDateNaissance(new \DateTime($dateNaissance));
if ($objetVille != null) {
$objetUtilisateurProd->setVille($objetVille);
}
$objetUtilisateurProd->setSexe($unProducteur["sexe"]);
$objetUtilisateurProd->setTel1($unProducteur["telephone"]);
$objetUtilisateurProd->setCodeGenere($unProducteur["codeGenere"]);
if ($objetUtilisateur != null)
$objetUtilisateurProd->setAbonne($objetUtilisateur->getAbonne());
//$objetInfoLivrer->setGenereCode($codeGenere);
$em->persist($objetUtilisateurProd);
$em->flush($objetUtilisateurProd);
$objetProducteur = $producteurRepository->findOneBy(array('codeGenere' => $unProducteur["codeGenere"]));
if ($objetProducteur == null) {
$objetProducteur = new Producteur();
$newAdd = 0;
}
$groupement = $unProducteur['groupement'];
$donnee = $unProducteur["nom"] . "#" . $unProducteur["prenoms"] . "#" . $unProducteur["cni"] . "#" . $unProducteur['groupement'] . "#" . $unProducteur["telephone"] . "#" . $unProducteur["codeGenere"] . "#" . $unProducteur["idVille"] . "#" . $unProducteur["sexe"] . "#" . $unProducteur["idVille"] . "#" . $dateNaissance . "#3";
//Generer un code pour les producteurs
$objetProducteur->setCodeProd($unProducteur["codeGenere"]);
$objetProducteur->setCodeGenere($unProducteur["codeGenere"]);
if ($objetVille != null) {
$objetProducteur->setVille($objetVille);
}
$objetProducteur->setUtilisateur($objetUtilisateurProd);
$objetProducteur->setAgent($objetUtilisateur);
if ($objetUtilisateur != null)
$objetProducteur->setAbonne($objetUtilisateur->getAbonne());
$em->persist($objetProducteur);
$em->flush($objetProducteur);
$dateOperation = new \DateTime();
$titre = "ProducteurAdd : " . $objetProducteur->getUtilisateur()->getNom() . " " . $objetProducteur->getUtilisateur()->getPrenoms();
$this->saveTacheFormulaire($em, $titre, $titre, $dateOperation->format("Y-m-d"), $dateOperation->format("Y-m-d"), $dateOperation->format("H:i:s"), $dateOperation->format("H:i:s"), $objetProducteur->getCodeGenere(), 0, $objetProducteur->getUtilisateur()->getId(), $typeActivite = 4, $utilisateurRepository, $anneeCampagneRepository, $surfaceAnneeRepository, $planteRepository, $projetRepository, $producteurRepository, null);
if($objetProducteur->getAbonne() != null && $newAdd==0)
$this->setAbonnePartenaire($em, $objetProducteur->getAbonne(), $objetProducteur->getAbonne()->getPartenaire(), $objetProducteur, $typeObjet = 2);
//Groupement et Zone Producteur
$this->saveAutreInfoProducteur($em, $groupement, $objetProducteur, $unProducteur["idVille"], $villeRepository, $groupementRepository, $producteurGroupementRepository, $zoneProducteurRepository);
//Groupementif8)
if($objetUtilisateurProd != null)
$this->addHistoriqueAction($em, "ProducteurAdd", 1, $unProducteur["codeGenere"], $objetUtilisateurProd->getId(), $objetProducteur->getId(), 1, $donnee, $utilisateurRepository);
}
}
$em->getConnection()->commit();
}
function traiteDonneeAjoutClient(
$em,
$JSONData,
$idUtil,
$utilisateurRepository,
$villeRepository,
$producteurRepository,
$clientRepository,
$prixRigueurRepository
) { ///Revoir comment ajouter l'abonne
$listClient = json_decode($JSONData, true);
$em->getConnection()->beginTransaction();
// $ddsse;
//$donnee = $unProducteur["nom"] ."#". $unProducteur["prenoms"] ."#".$unProducteur["telephone"] ."#". $unProducteur["idVille"] ."#".$unProducteur["codeGenere"] ."#".$unProducteur["idutil"] ."#".$unProducteur["sexe"]."#".$unProducteur["cni"] ;
if ($listClient != null) {
foreach ($listClient as $unClient) {
$this->saveClient($em, $unClient["nom"], $unClient["prenoms"], $unClient["cni"], $unClient["telephone"], $unClient["codeGenere"], $unClient["idVille"], $unClient["sexe"], $idUtil, '', $utilisateurRepository, $villeRepository, $clientRepository, $prixRigueurRepository, $this->etatClientRepository);
}
}
$em->getConnection()->commit();
}
function traiteDonneeAjoutParcelle(
$em,
$JSONData,
$produitRepository,
$villeRepository,
$surfaceRepository,
$utilisateurRepository,
$producteurRepository,
$anneeCampagneRepository,
$surfaceAnneeRepository,
$planteRepository,
$projetRepository
) {
$listParcelle = json_decode($JSONData, true);
$em->getConnection()->beginTransaction();
if ($listParcelle != null) {
foreach ($listParcelle as $uneParcelle) {
// $donnee = $localisation['utilisateurId']."#".$localisation['parCodeGenere'] ."#".$localisation['codeGenere'] ."#".$localisation['latitude'] ."#".$localisation['longitude'] ."#".$localisation['idVariete']
$valSurface = $uneParcelle["valSurface"];
$prodCodeGenere = $uneParcelle["prodCodeGenere"];
$codeGenere = $uneParcelle["codeGenere"];
$codeParcelle = $uneParcelle["codeGenere"];
$typeParcelle = $uneParcelle['typeParcelle'];
$explCodeGenere = $uneParcelle['explCodeGenere'];
$valSurfaceAudit = $uneParcelle["valSurfaceAudit"];
$idVille = $uneParcelle["idVille"];; //$uneParcelle[];
$idVariete = $uneParcelle["idVariete"];
$idUtil = $uneParcelle["idUtil"];
#if($valSurfaceAudit ==null)
#$valSurfaceAudit = 0;
//$produit =2;
$objetProduit = $produitRepository->find($idVariete); //$idVariete
$objetVille = $villeRepository->find($idVille);
$objetAnneeCampagne = $anneeCampagneRepository->findOneBy(array("produit" => $objetProduit, "etatAnneeCampagne" => 1));
//$anneecampagne_id =
//$campagne_id = $objetAnneeCampagne->getId();//$request->request->get('producteur_id');
$objetProducteur = $producteurRepository->findOneBy(array("codeGenere" => $prodCodeGenere));
$objetExploitation = $surfaceAnneeRepository->findOneBy(array("codeSurface" => $explCodeGenere));
$objetUtilisateur = $utilisateurRepository->find($idUtil);
$objetSurface = $surfaceRepository->findOneBy(array('valSurface' => $valSurface));
//Tester si la surface existe deja
$objetSurfaceAnnee = $surfaceAnneeRepository->findOneBy(array("codeGenere" => $codeGenere));
$donnee = $valSurface . "#" . $prodCodeGenere . "#" . $codeGenere . "#" . $codeParcelle . "#" . $idVille . "#" . $idVariete . "#0#" . $idUtil . "#" . $explCodeGenere . "#" . $typeParcelle . "#0#".$valSurfaceAudit."#3" ;
// $donnee = $valSurface ."#".$prodCodeGenere ."#".$codeGenere ."#".$codeParcelle ."#".$idVille ."#".$idVariete ;
$siPrincipale = 0;
$newAdd = 1;
if ($objetSurfaceAnnee == null) {
$objetSurfaceAnnee = new SurfaceAnnee();
$siPrincipale = 1;
$newAdd = 0;
}
$objetSurfaceAnnee->setSuperficie((float)$valSurface);
$objetSurfaceAnnee->setCodeParcelle($codeParcelle);
$objetSurfaceAnnee->setCodeSurface($codeParcelle);
if($valSurfaceAudit != null && $valSurfaceAudit != '0' && $valSurfaceAudit != 'null' )
$objetSurfaceAnnee->setSuperficieRelle($valSurfaceAudit);
$objetSurfaceAnnee->setCodeGenere($codeGenere);
$objetSurfaceAnnee->setVille($objetVille);
if ($objetAnneeCampagne != null) {
$objetSurfaceAnnee->setAnneeCampagne($objetAnneeCampagne);
}
if($objetProduit != null)
$objetSurfaceAnnee->setProduit($objetProduit);
$objetSurfaceAnnee->setProducteur($objetProducteur);
$objetSurfaceAnnee->setUtilisateur($objetUtilisateur);
$objetSurfaceAnnee->setTypeParcelle($typeParcelle);
if ($objetExploitation != null)
$objetSurfaceAnnee->setSurfaceannee($objetExploitation);
if ($objetUtilisateur != null)
$objetSurfaceAnnee->setAbonne($objetUtilisateur->getAbonne());
//$
$objetSurfaceAnnee->setProdCodeGenere($prodCodeGenere);
$em->persist($objetSurfaceAnnee);
$em->flush($objetSurfaceAnnee);
$dateOperation = new \DateTime();
$titre = "ParcelleAdd : " . $objetProducteur->getUtilisateur()->getNom() . " " . $objetProducteur->getUtilisateur()->getPrenoms() . "_" . $objetSurfaceAnnee->getCodeGenere() . "_" . $objetSurfaceAnnee->getSuperficie();
$this->saveTacheFormulaire($em, $titre, $titre, $dateOperation->format("Y-m-d"), $dateOperation->format("Y-m-d"), $dateOperation->format("H:i:s"), $dateOperation->format("H:i:s"), $objetProducteur->getCodeGenere(), 0, $objetProducteur->getUtilisateur()->getId(), $typeActivite = 4, $utilisateurRepository, $anneeCampagneRepository, $surfaceAnneeRepository, $planteRepository, $projetRepository, $producteurRepository, null);
//le mettre dans l'historique
$objetSurfaceAnneeHistorique = new SurfaceAnneeHistorique();
$objetSurfaceAnneeHistorique->setAnneeCampagne($objetAnneeCampagne);
$objetSurfaceAnneeHistorique->setSurfaceAnnee($objetSurfaceAnnee);
$em->persist($objetSurfaceAnneeHistorique);
$em->flush($objetSurfaceAnneeHistorique);
if($objetUtilisateur != null){
if ($objetUtilisateur->getAbonne() != null && $newAdd == 0)
$this->setAbonnePartenaire($em, $objetSurfaceAnnee->getAbonne(), $objetSurfaceAnnee->getAbonne()->getPartenaire(), $objetSurfaceAnnee, $typeObjet = 3, $siPrincipale);
}
$this->addHistoriqueAction($em, 'ProducteurIntention', 1, $codeGenere, $idUtil, 1, 1, $donnee, $utilisateurRepository);
}
}
$em->getConnection()->commit();
}
function traiteDonneeAjoutLocalisation(
$em,
$JSONData,
$produitRepository,
$villeRepository,
$surfaceRepository,
$utilisateurRepository,
$producteurRepository,
$anneeCampagneRepository,
$surfaceAnneeRepository,
$localisationRepository,
$planteRepository,
$projetRepository,
$surfaceAbonneRepository,
$inspectionRempliRepository,
$commandeRepository
) {
$listLocalisation = json_decode($JSONData, true);
$em->getConnection()->beginTransaction();
$parCodeGenere = "";
try {
$firstPoint = 0;
if ($listLocalisation != NULL) {
$k = 0;
$i = 0;
$l = 1;
foreach ($listLocalisation as $localisation) {
if (array_key_exists("parCodeGenere", $localisation)) {
if ($parCodeGenere != $localisation['parCodeGenere']) {
$parCodeGenere = $localisation['parCodeGenere'];
}
$objetSurfaceAnnee = $surfaceAnneeRepository->findOneBy(array("codeGenere" => $localisation["parCodeGenere"]));
$objetUtilisateur = $utilisateurRepository->find($localisation["utilisateurId"]);
$uneLocalisation = $localisationRepository->findOneBy(array("codeGenere" => $localisation["codeGenere"], "typeLocalisation" => $localisation['typeLocalisation']));
$objetSurfaceAbonne = $surfaceAbonneRepository->findOneBy(['abonne' => $objetUtilisateur->getAbonne(), 'surfaceannee' => $objetSurfaceAnnee]);
$siTestLocalisation = $localisationRepository->findOneBy(array("typeLocalisation" => $localisation['typeLocalisation'], "surfaceannee"=>$objetSurfaceAnnee));
if($localisation['typeLocalisation'] == 1){
if($siTestLocalisation != null && $uneLocalisation == null ){
//$this->initialiserLesAncienPolygon($em, $objetSurfaceAnnee->getId(), $typeLocalisation=1);
}
}
if($localisation['typeLocalisation'] == 2 && $i==0 && $objetSurfaceAnnee != null && $objetSurfaceAnnee->getSiPolygon()==1){
if($siTestLocalisation != null && $uneLocalisation == null ){
//$this->initialiserLesAncienPolygon($em, $objetSurfaceAnnee->getId(), $typeLocalisation=2);
//continue;
}
}
if ($localisation['typeLocalisation'] == 2) {
if ($i == 0)
$firstPoint = new Point($localisation["longitude"], $localisation["latitude"], null);
}
$tabPolygone = 0;
if($localisation['tabLocalisation'] != "")
$tabPolygone = $localisation['tabLocalisation'];
$donnee = $localisation['utilisateurId'] . "#" . $localisation['parCodeGenere'] . "#" . $localisation['codeGenere'] . "#" . $localisation['latitude'] . "#" . $localisation['longitude'] . "#" . $localisation['typeLocalisation']. "#" . $tabPolygone;
//$test;
//Liste des donnes a prendre #endregion
// $listeAction = $this->getHistoriqueAction($em,$idUtil,1);
$dateOperation = new \DateTime();
//if($localisation['typeLocalisation'] == 2)
$uneLocalisation = $localisationRepository->findOneBy(array("latitude" => $localisation['latitude'],"longitude" => $localisation['longitude'], "surfaceannee"=>$objetSurfaceAnnee, "typeLocalisation"=>$localisation['typeLocalisation'] ));
if ($uneLocalisation == null)
$uneLocalisation = new Localisation();
if($localisation["typeLocalisation"]== 1 || $localisation["typeLocalisation"]== 2) {
$uneLocalisation->setSurfaceAnnee($objetSurfaceAnnee);
$uneLocalisation->setSurfaceabonne($objetSurfaceAbonne);
}
if($localisation["typeLocalisation"]== 7) { //Enregistrement des données sur la l'inspect
$objetInspectionRempli = $inspectionRempliRepository->findOneBy(array("codeGenere" => $localisation["parCodeGenere"]));
if($objetInspectionRempli != null ){
$objetSurfaceAnnee = $objetInspectionRempli->getSurfaceannee();
$uneLocalisation->setSurfaceAnnee($objetSurfaceAnnee);
}
$uneLocalisation->setInspectionrempli($objetInspectionRempli);
}else if($localisation["typeLocalisation"]== 8) { //Enregistrement des données sur la l'inspect
$objetCommande = $commandeRepository->findOneBy(array("codeGenere" => $localisation["parCodeGenere"]));
if($objetCommande != null ){
$objetSurfaceAnnee = $objetCommande->getSurfaceannee();
$uneLocalisation->setSurfaceAnnee($objetSurfaceAnnee);
}
$uneLocalisation->setCommande($objetCommande);
}
$uneLocalisation->setLatitude($localisation["latitude"]);
$uneLocalisation->setLongitude($localisation["longitude"]);
$uneLocalisation->setTypeLocalisation($localisation["typeLocalisation"]);
$uneLocalisation->setTabPolygone($localisation["tabLocalisation"]);
$uneLocalisation->setCodeGenere($localisation["codeGenere"]);
$uneLocalisation->setEtatLocalisation(1);
$uneLocalisation->setUtilisateur($objetUtilisateur);
if($objetUtilisateur != null )
$uneLocalisation->setAbonne($objetUtilisateur->getAbonne());
$em->persist($uneLocalisation);
$em->flush($uneLocalisation);
if ($localisation['typeLocalisation'] == 2) {
$tabPoint[$i] = new Point($localisation["longitude"], $localisation["latitude"], null);
$i++;
}
if ($localisation['typeLocalisation'] == 2) {
//if(!array_key_exists($l,$listLocalisation) || $listLocalisation[$k]['parCodeGenere'] != $listLocalisation[$l]['parCodeGenere']){
if (!array_key_exists($l, $listLocalisation) || ($listLocalisation[$k]['parCodeGenere'] != $listLocalisation[$l]['parCodeGenere']) || ($listLocalisation[$k]['parCodeGenere'] == $listLocalisation[$l]['parCodeGenere'] && $listLocalisation[$l]['typeLocalisation'] == 1)) {
//if($firstPoint != 0){
$tabPoint[$i] = $firstPoint;
$infoPolygon = array(
new LineString(
$tabPoint
)
);
///if($infoPolygon != null)
$polygon = new Polygon($infoPolygon);
$objetSurfaceAnnee->setSiPolygon(1);
$objetSurfaceAnnee->setPolygon($polygon);
//$k = 0;
$i = 0;
//$l = 1;
$tabPoint = array();
$titre = "polygonAdd : " . $objetSurfaceAnnee->getProducteur()->getUtilisateur()->getNom() . " " . $objetSurfaceAnnee->getProducteur()->getUtilisateur()->getPrenoms() . "_" . $uneLocalisation->getLatitude() . "_" . $uneLocalisation->getLongitude();
$this->saveTacheFormulaire($em, $titre, $titre, $dateOperation->format("Y-m-d"), $dateOperation->format("Y-m-d"), $dateOperation->format("H:i:s"), $dateOperation->format("H:i:s"), $objetSurfaceAnnee->getProducteur()->getCodeGenere(), 0, $objetUtilisateur->getId(), $typeActivite = 4, $utilisateurRepository, $anneeCampagneRepository, $surfaceAnneeRepository, $planteRepository, $projetRepository, $producteurRepository, null);
}
}
$k++;
$l++;
if ($objetSurfaceAnnee != null) {
if ($localisation['typeLocalisation'] == 1) {
//$dateOperation = new \DateTime();
$titre = "LocalisationAdd : " . $objetSurfaceAnnee->getProducteur()->getUtilisateur()->getNom() . " " . $objetSurfaceAnnee->getProducteur()->getUtilisateur()->getPrenoms() . "_" . $uneLocalisation->getLatitude() . "_" . $uneLocalisation->getLongitude();
$this->saveTacheFormulaire($em, $titre, $titre, $dateOperation->format("Y-m-d"), $dateOperation->format("Y-m-d"), $dateOperation->format("H:i:s"), $dateOperation->format("H:i:s"), $objetSurfaceAnnee->getProducteur()->getCodeGenere(), 0, $objetUtilisateur->getId(), $typeActivite = 4, $utilisateurRepository, $anneeCampagneRepository, $surfaceAnneeRepository, $planteRepository, $projetRepository, $producteurRepository, null);
$this->addHistoriqueAction($em, 'ProducteurLocalisation', 1, $uneLocalisation->getCodeGenere(), $localisation["utilisateurId"], $objetSurfaceAnnee->getProducteur()->getId(), 1, $donnee, $utilisateurRepository);
}
}
if ($localisation["typeLocalisation"] == 1) {
$objetLocalisation = new Point($localisation["longitude"], $localisation["latitude"], null);
$objetSurfaceAnnee->setLocalisation($objetLocalisation);
}
if($localisation["typeLocalisation"] == 1 || $localisation["typeLocalisation"] == 2){
$em->persist($objetSurfaceAnnee);
$em->flush($objetSurfaceAnnee);
}
}
}
}
$em->getConnection()->commit();
} catch (\Exception $e) {
$responce = false;
$em->getConnection()->rollBack();
throw $e;
}
}
function saveLocalisation($em,$i, $k, $l, $parCodeGenere, $listLocalisation, $localisation, $surfaceAnneeRepository, $utilisateurRepository,$localisationRepository,$surfaceAbonneRepository, $inspectionRempliRepository, $commandeRepository,$anneeCampagneRepository,$planteRepository, $projetRepository, $producteurRepository){
if (array_key_exists("parCodeGenere", $localisation)) {
if ($parCodeGenere != $localisation['parCodeGenere']) {
$parCodeGenere = $localisation['parCodeGenere'];
}
$objetSurfaceAnnee = $surfaceAnneeRepository->findOneBy(array("codeGenere" => $localisation["parCodeGenere"]));
$objetUtilisateur = $utilisateurRepository->find($localisation["utilisateurId"]);
$uneLocalisation = $localisationRepository->findOneBy(array("codeGenere" => $localisation["codeGenere"], "typeLocalisation" => $localisation['typeLocalisation']));
$objetSurfaceAbonne = $surfaceAbonneRepository->findOneBy(['abonne' => $objetUtilisateur->getAbonne(), 'surfaceannee' => $objetSurfaceAnnee]);
$siTestLocalisation = $localisationRepository->findOneBy(array("typeLocalisation" => $localisation['typeLocalisation'], "surfaceannee"=>$objetSurfaceAnnee));
if($localisation['typeLocalisation'] == 1){
if($siTestLocalisation != null && $uneLocalisation == null ){
$this->initialiserLesAncienPolygon($em, $objetSurfaceAnnee->getId(), $typeLocalisation=1);
}
}
if($localisation['typeLocalisation'] == 2 && $i==0 && $objetSurfaceAnnee != null && $objetSurfaceAnnee->getSiPolygon()==1){
if($siTestLocalisation != null && $uneLocalisation == null ){
$this->initialiserLesAncienPolygon($em, $objetSurfaceAnnee->getId(), $typeLocalisation=2);
}
}
if ($localisation['typeLocalisation'] == 2) {
if ($i == 0)
$firstPoint = new Point($localisation["longitude"], $localisation["latitude"], null);
}
$tabPolygone = 0;
if($localisation['tabLocalisation'] != "")
$tabPolygone = $localisation['tabLocalisation'];
$donnee = $localisation['utilisateurId'] . "#" . $localisation['parCodeGenere'] . "#" . $localisation['codeGenere'] . "#" . $localisation['latitude'] . "#" . $localisation['longitude'] . "#" . $localisation['typeLocalisation']. "#".$tabPolygone ;
//$test;
//Liste des donnes a prendre #endregion
// $listeAction = $this->getHistoriqueAction($em,$idUtil,1);
$dateOperation = new \DateTime();
//if($localisation['typeLocalisation'] == 2)
$uneLocalisation = $localisationRepository->findOneBy(array("latitude" => $localisation['latitude'],"longitude" => $localisation['longitude'], "surfaceannee"=>$objetSurfaceAnnee, "typeLocalisation"=>$localisation['typeLocalisation'] ));
if ($uneLocalisation == null)
$uneLocalisation = new Localisation();
if($localisation["typeLocalisation"]== 1 || $localisation["typeLocalisation"]== 2) {
$uneLocalisation->setSurfaceAnnee($objetSurfaceAnnee);
$uneLocalisation->setSurfaceabonne($objetSurfaceAbonne);
}
if($localisation["typeLocalisation"]== 7) { //Enregistrement des données sur la l'inspect
$objetInspectionRempli = $inspectionRempliRepository->findOneBy(array("codeGenere" => $localisation["parCodeGenere"]));
if($objetInspectionRempli != null ){
$objetSurfaceAnnee = $objetInspectionRempli->getSurfaceannee();
$uneLocalisation->setSurfaceAnnee($objetSurfaceAnnee);
}
$uneLocalisation->setInspectionrempli($objetInspectionRempli);
}else if($localisation["typeLocalisation"]== 8) { //Enregistrement des données sur la l'inspect
$objetCommande = $commandeRepository->findOneBy(array("codeGenere" => $localisation["parCodeGenere"]));
if($objetCommande != null ){
$objetSurfaceAnnee = $objetCommande->getSurfaceannee();
$uneLocalisation->setSurfaceAnnee($objetSurfaceAnnee);
}
$uneLocalisation->setCommande($objetCommande);
}
$uneLocalisation->setLatitude($localisation["latitude"]);
$uneLocalisation->setLongitude($localisation["longitude"]);
$uneLocalisation->setTypeLocalisation($localisation["typeLocalisation"]);
if($localisation["tabLocalisation"] != '0')
$uneLocalisation->setTabPolygone($localisation["tabLocalisation"]);
$uneLocalisation->setCodeGenere($localisation["codeGenere"]);
$uneLocalisation->setEtatLocalisation(1);
$uneLocalisation->setUtilisateur($objetUtilisateur);
$em->persist($uneLocalisation);
$em->flush($uneLocalisation);
if ($localisation['typeLocalisation'] == 2) {
$tabPoint[$i] = new Point($localisation["longitude"], $localisation["latitude"], null);
$i++;
}
if ($localisation['typeLocalisation'] == 2) {
//if(!array_key_exists($l,$listLocalisation) || $listLocalisation[$k]['parCodeGenere'] != $listLocalisation[$l]['parCodeGenere']){
if (!array_key_exists($l, $listLocalisation) || ($listLocalisation[$k]['parCodeGenere'] != $listLocalisation[$l]['parCodeGenere']) || ($listLocalisation[$k]['parCodeGenere'] == $listLocalisation[$l]['parCodeGenere'] && $listLocalisation[$l]['typeLocalisation'] == 1)) {
//if($firstPoint != 0){
$tabPoint[$i] = $firstPoint;
$infoPolygon = array(
new LineString(
$tabPoint
)
);
///if($infoPolygon != null)
$polygon = new Polygon($infoPolygon);
$objetSurfaceAnnee->setSiPolygon(1);
$objetSurfaceAnnee->setPolygon($polygon);
//$k = 0;
$i = 0;
//$l = 1;
$tabPoint = array();
$titre = "polygonAdd : " . $objetSurfaceAnnee->getProducteur()->getUtilisateur()->getNom() . " " . $objetSurfaceAnnee->getProducteur()->getUtilisateur()->getPrenoms() . "_" . $uneLocalisation->getLatitude() . "_" . $uneLocalisation->getLongitude();
$this->saveTacheFormulaire($em, $titre, $titre, $dateOperation->format("Y-m-d"), $dateOperation->format("Y-m-d"), $dateOperation->format("H:i:s"), $dateOperation->format("H:i:s"), $objetSurfaceAnnee->getProducteur()->getCodeGenere(), 0, $objetUtilisateur->getId(), $typeActivite = 4, $utilisateurRepository, $anneeCampagneRepository, $surfaceAnneeRepository, $planteRepository, $projetRepository, $producteurRepository, null);
}
}
$k++;
$l++;
if ($objetSurfaceAnnee != null) {
if ($localisation['typeLocalisation'] == 1) {
//$dateOperation = new \DateTime();
$titre = "LocalisationAdd : " . $objetSurfaceAnnee->getProducteur()->getUtilisateur()->getNom() . " " . $objetSurfaceAnnee->getProducteur()->getUtilisateur()->getPrenoms() . "_" . $uneLocalisation->getLatitude() . "_" . $uneLocalisation->getLongitude();
$this->saveTacheFormulaire($em, $titre, $titre, $dateOperation->format("Y-m-d"), $dateOperation->format("Y-m-d"), $dateOperation->format("H:i:s"), $dateOperation->format("H:i:s"), $objetSurfaceAnnee->getProducteur()->getCodeGenere(), 0, $objetUtilisateur->getId(), $typeActivite = 4, $utilisateurRepository, $anneeCampagneRepository, $surfaceAnneeRepository, $planteRepository, $projetRepository, $producteurRepository, null);
$this->addHistoriqueAction($em, 'ProducteurLocalisation', 1, $uneLocalisation->getCodeGenere(), $localisation["utilisateurId"], $objetSurfaceAnnee->getProducteur()->getId(), 1, $donnee, $utilisateurRepository);
}
}
if ($localisation["typeLocalisation"] == 1) {
$objetLocalisation = new Point($localisation["longitude"], $localisation["latitude"], null);
$objetSurfaceAnnee->setLocalisation($objetLocalisation);
}
if($localisation["typeLocalisation"] == 1 || $localisation["typeLocalisation"] == 2){
$em->persist($objetSurfaceAnnee);
$em->flush($objetSurfaceAnnee);
}
}
}
function saveLigneCommande(
$em,
$tab,
$produitRepository,
$villeRepository,
$surfaceRepository,
$commandeRepository,
$prixRigueurRepository,
$utilisateurRepository,
$producteurRepository,
$anneeCampagneRepository,
$fournisseurRepository,
$surfaceAnneeRepository,
$localisationRepository,
$surfaceAbonneRepository,
$producteurAbonneRepository
) {
$em->getConnection()->beginTransaction();
$quantitePese = $tab[0]; //$request->request->get('val_surface');
$quantiteReelle = $tab[0]; //$request->request->get('val_surface');
$montant = 0; //$request->request->get('montant');
$prodCodeGenere = $tab[1]; //$request->request->get('prodCodeGenere');
$parCodeGenere = $tab[2]; //$request->request->get('parCodeGenere');
$util_id = $tab[3]; //$request->request->get('util_id');
$fournisseur_id = $tab[4]; //$request->request->get('fournisseur_id');
$donnee = $quantitePese . "#" . $montant . "#" . $prodCodeGenere . "#" . $parCodeGenere . "#" . $util_id . "#" . $fournisseur_id;
$produit = $tab[6];
$produit = 1;
$util_id = 1;
$objetProduit = $produitRepository->find($produit);
$objetAnneeCampagne = $anneeCampagneRepository->findOneBy(array("produit" => $objetProduit, "etatAnneeCampagne" => 1));
//$anneecampagne_id =
if ($objetAnneeCampagne == null) {
$anneecampagne_id = 0;
} else {
$anneecampagne_id = $objetAnneeCampagne->getId(); //$request->request->get('entrepot');
} //$request->request->get('producteur_id');
$codeGenere = $tab[5]; //$request->request->get('codeGenere');
//Creation de l'objet fournisseur
// $objetAnneeCampagne = $em->getRepository($this->prodBundle . 'AnneeCampagne')->find($campagne_id) ;
$d = new \DateTime();
$an = $d->format('Y');
$m = $d->format('m');
$j = $d->format('d');
$valTotal = 0;
$objetUtilisateur = $utilisateurRepository->find($util_id);
$objetFournisseur = $fournisseurRepository->findOneBy(['utilisateur' => $objetUtilisateur]);
$objetProducteur = $producteurRepository->findOneBy(array("codeGenere" => $prodCodeGenere));
$objetParcelle = $surfaceAnneeRepository->findOneBy(array("codeGenere" => $parCodeGenere));
//Ecrire une function qui permet de sortir le total des semences recus par un producteur
$totalFournisseur = $commandeRepository->getApiFournisseurSumSemence(0, 0, 0, 0, 0, 0, 0, $objetProducteur->getId(), 0, 20, 1);
// Ajouter le total des semences au semence saisie et comparer avec la semence de son intention
if (count($totalFournisseur) != 0) {
$valTotal = (int)$totalFournisseur[0]['quantiteTotale'] + (int)$quantitePese;
}
// Fait l'opération si le semence recu n'atteint pas ou égal
$refCommande = $this->getRefCommande($em, 1, $an, $m, $entite = 'COMMANDE', $taille = 5, 1);
//Creation de l'objet fournisseur
// $objetUtilisateur= $em->getRepository($this->userBundle . 'Utilisateur')->find($util_id) ;
//Revoir la gestion des produits et des prix
$objetProduit = $produitRepository->find(2);
$objetPrix = $prixRigueurRepository->find(2);
//Enrégistrement des donnees utilisateur
$objetCommande = new Commande();
$objetCommande->setCodeCommande($refCommande);
$objetCommande->setDescriptionCommande("Api send");
$objetCommande->setMontantCommande($montant);
$objetCommande->setMontantResteCommande(0);
$objetCommande->setEtatCommande(1);
$objetCommande->setTypeCommande(2);
$objetCommande->setCodeGenere($codeGenere);
$objetCommande->setRefBonCommande($refCommande);
$objetCommande->setUtilisateur($objetUtilisateur);
$objetSurfaceAbonne = $surfaceAbonneRepository->findOneBy(['abonne' => $objetUtilisateur->getAbonne(), 'surfaceannee' => $objetParcelle]);
$objetProducteurAbonne = $producteurAbonneRepository->findOneBy(['abonne' => $objetUtilisateur->getAbonne(), 'producteur' => $objetParcelle->getProducteur()]);
//$objetCommande->setSurfaceAbonne($objetSurfaceAbonne);
$objetCommande->setProducteurabonne($objetProducteurAbonne);
$objetCommande->setAnneecampagne($objetAnneeCampagne);
$objetCommande->setSurfaceannee($objetParcelle);
$objetCommande->setAbonne($objetUtilisateur->getAbonne());
$objetCommande->setAnnule(0);
if ($objetFournisseur != null) {
$objetCommande->setFournisseur($objetFournisseur);
}
$em->persist($objetCommande);
$em->flush($objetCommande);
///Enregistrement de la ligne de commande
$objetLigneCommande = new LigneCommande();
$objetLigneCommande->setQuantite($quantiteReelle);
$objetLigneCommande->setQuantiteLivre($quantitePese);
$objetLigneCommande->setQuantiteReste($quantitePese);
$objetLigneCommande->setEtatLigneCommande(1);
$objetLigneCommande->setProduit($objetProduit);
$objetLigneCommande->setCommande($objetCommande);
$objetLigneCommande->setAnnule(0);
$objetLigneCommande->setMontantHt($montant);
$objetLigneCommande->setMontantAutreTaxe($montant);
$objetLigneCommande->setFournisseur($objetFournisseur);
$objetLigneCommande->setPrixrigueur($objetPrix);
$objetLigneCommande->setProducteur($objetProducteur);
$objetLigneCommande->setProducteurabonne($objetProducteurAbonne);
$objetLigneCommande->setAbonne($objetUtilisateur->getAbonne());
$em->persist($objetLigneCommande);
$em->flush($objetLigneCommande);
//Mettre à jour l'état semence
$objetProducteur->setSiSemence(1);
$em->persist($objetProducteur);
$em->flush($objetProducteur);
//$this->addHistoriqueAction($em, "ProducteurSemence", 1, $codeGenere, $$objetUtilisateur->getId(), $objetProducteur->getId(), 1, $donnee ,$utilisateurRepository);
$em->getConnection()->commit();
return $objetLigneCommande;
}
public function traiteDonneeFacture(
$em,
$JSONDataFacture,
$produitRepository,
$villeRepository,
$clientRepository,
$surfaceRepository,
$commandeRepository,
$prixRigueurRepository,
$utilisateurRepository,
$producteurRepository,
$anneeCampagneRepository,
$fournisseurRepository,
$surfaceAnneeRepository,
$localisationRepository,
$cibleRepository,
$caracteristiquePrixRepository,
$infoInventaireRepository,
$ligneCommandeRepository,
$typeOperationRepository,
$inventaireRepository,
$operationRepository,
$tableRepository,
$surfaceAbonneRepository,
$producteurAbonneRepository,
$livrerRepository,
$operationManager,
$caisseRepository,
$infoLivrerRepository,
$etatOpportuniteRepository
) {
$em = $this->getDoctrine()->getManager();
//$JSONData = $request->request->get('JSONData');
$tabJSONData = explode("|||", $JSONDataFacture);
$listCommande = json_decode($tabJSONData[0], true);
//$em->getConnection()->beginTransaction();
//$uneCommande["utilId"]
$inc = 0;
$tabDateOperation = array();
$siObjetCommandeTable = null;
$dejaTraite = 0;
$objetFournisseur = null;
$siClientDejaAchete = 0;
if ($listCommande != NULL) {
foreach ($listCommande as $uneCommande) {
// $dateOperation = ;
$objetUtilisateur = $utilisateurRepository->find($uneCommande["utilId"]);
if ($uneCommande["typeCommande"] != 2) {
/*if($uneCommande["typeCommande"] == 0){
$objetFournisseur = $fournisseurRepository->findOneBy(array("codeGenere"=>$uneCommande["clientCodeGenere"]));
}else if($uneCommande["typeCommande"] != 4){
if($uneCommande["typeCommande"] != 7){
$objetClient = $clientRepository->findOneBy(array("codeGenere"=>$uneCommande["clientCodeGenere"]));
}
}*/
if ($uneCommande["typeCommande"] == 0) {
$typeCommande = 0;
$objetFournisseur = $fournisseurRepository->findOneBy(array("codeGenere" => $uneCommande["clientCodeGenere"], 'abonne' => $objetUtilisateur->getAbonne()));
} else {
if ($uneCommande["typeCommande"] != 7) {
$objetClient = $clientRepository->findOneBy(array("codeGenere" => $uneCommande["clientCodeGenere"], 'abonne' => $objetUtilisateur->getAbonne()));
if ($objetClient != null) {
if ($objetClient->getAbonne()->getId() == 10) {
$siClientDejaAchete = 1;
$siObjetCommandeClient = $commandeRepository->findOneBy(array("client" => $objetClient, "siCredit" => 0, "annule" => 0));
}
}
if ($uneCommande["typeCommande"] == 6 || $uneCommande["typeCommande"] == 5) {
if ($uneCommande["typePaiement"] != 0)
$objetFournisseur = $fournisseurRepository->find($uneCommande["typePaiement"]);
}
}
}
if ($uneCommande["typeCommande"] != 2) {
if ($uneCommande["typeCommande"] == 4) {
$objetTable = $tableRepository->findOneBy(array("codeGenere" => $uneCommande["clientCodeGenere"])); //$em->getRepository($this->stockBundle . 'TableMange')
$siObjetCommandeTable = $commandeRepository->findOneBy(array("tableMange" => $objetTable, "siCredit" => 1));
}
$objetCommande = $commandeRepository->findOneBy(array("codeCommande" => $uneCommande["codeGenere"], 'abonne' => $objetUtilisateur->getAbonne()));
if ($objetCommande == null) {
$objetCommande = new Commande();
$dejaTraite = 1;
}
if ($siObjetCommandeTable != null) {
$objetCommande = $siObjetCommandeTable;
$dejaTraite = 1;
}
if ($uneCommande["typeCommande"] == 5 || $uneCommande["typeCommande"] == 6 || $uneCommande["typeCommande"] == 7 || $uneCommande["typeCommande"] == 8 || $uneCommande["typeCommande"] == 9 || $uneCommande["typeCommande"] == 10) {
$objetSurface = $surfaceAnneeRepository->findOneBy(array("codeGenere" => $uneCommande["clientCodeGenere"]));
$surfaceanneeId = $objetSurface->getId();
// $siObjetCommandeTable =$em->getRepository($this->stockBundle . 'Commande')->findOneBy(array("tableMange"=>$objetTable, "siCredit"=>0));
}
$d = new \DateTime($uneCommande["dateFacture"]); //$sessionData['dateChoisie'];
$objetCommande->setAnnule(FALSE);
$objetCommande->setCodeCommande($uneCommande["codeGenere"]);
$objetCommande->setDescriptionCommande("Reception mobile");
$objetCommande->setEtatCommande(1);
$objetCommande->setRefBonCommande($uneCommande["codeGenere"]);
$objetCommande->setCodeGenere($uneCommande["codeGenere"]);
if ($uneCommande["typeCommande"] == 5 || $uneCommande["typeCommande"] == 6 || $uneCommande["typeCommande"] == 7 || $uneCommande["typeCommande"] == 8 || $uneCommande["typeCommande"] == 9 || $uneCommande["typeCommande"] == 10) {
$objetCommande->setSurfaceannee($objetSurface);
if ($objetSurface != null) {
$objetCommande->setProducteur($objetSurface->getProducteur());
$objetAnneeCampagne = $anneeCampagneRepository->findOneBy(array("produit" => $objetSurface->getProduit(), 'etatAnneeCampagne' => 1));
//$objetCommande->setAnneeCampagne($objetAnneeCampagne);
}
$objetSurfaceAbonne = $surfaceAbonneRepository->findOneBy(['abonne' => $objetUtilisateur->getAbonne(), 'surfaceannee' => $objetSurface]);
$objetProducteurAbonne = $producteurAbonneRepository->findOneBy(['abonne' => $objetUtilisateur->getAbonne(), 'producteur' => $objetSurface->getProducteur()]);
//$objetCommande->setSurfaceabonne($objetSurfaceAbonne);
$objetCommande->setProducteurabonne($objetProducteurAbonne);
$objetAnneeCampagne = $anneeCampagneRepository->findOneBy(array("produit" => $objetSurface->getProduit(), "abonne" => $objetUtilisateur->getAbonne(), 'etatAnneeCampagne' => 1));
if ($objetAnneeCampagne != null)
$objetCommande->setAnneeCampagne($objetAnneeCampagne);
}
$objetCommande->setTauxEchange(0);
//$objetCommande->setNumeroLot($uneCommande["numeroLot"]);
if (array_key_exists("numeroLot", $uneCommande))
$objetCommande->setNumeroLot($uneCommande["numeroLot"]);
else
$objetCommande->setNumeroLot($uneCommande["codeGenere"]);
$objetCommande->setDatePublication($d);
$objetCommande->setMontantResteCommande(0);
$objetCommande->setTypeCommande($uneCommande["typeCommande"]);
$objetCommande->setCaisse($objetUtilisateur->getCaisse());
if ($dejaTraite == 0)
$objetCommande->setSiCredit($uneCommande["siCredit"]);
$objetCommande->setMontantCommande($uneCommande["montant"]);
$objetCommande->setUtilisateur($objetUtilisateur);
if ($objetUtilisateur != null) {
$objetCommande->setAbonne($objetUtilisateur->getAbonne());
$objetAbonne = $objetUtilisateur->getAbonne();
} else {
$objetAbonne = null;
}
if ($uneCommande["typeCommande"] == 0) {
$objetCommande->setFournisseur($objetFournisseur);
} else if ($uneCommande["typeCommande"] != 4) {
$objetCommande->setClient($objetClient);
}
if ($uneCommande["typeCommande"] == 0 || $uneCommande["typeCommande"] == 6 || $uneCommande["typeCommande"] == 5) {
if ($objetFournisseur != null)
$objetCommande->setFournisseur($objetFournisseur);
} else if ($uneCommande["typeCommande"] != 4) {
$objetCommande->setClient($objetClient);
} else {
$objetCommande->setTableMange($objetTable);
}
$donnee = $uneCommande["codeGenere"] . "#" . $uneCommande["utilId"];
$em->persist($objetCommande);
$em->flush($objetCommande);
if ($uneCommande["typeCommande"] == 3) {
$objetOpportunite = $this->saveOpportuniteClient($em, $objetClient, $objetUtilisateur->getAbonne(), $uneCommande["codeGenere"], new \DateTime());
$this->saveEtatInfoOpportuniteClient($em, $etatOpportuniteRepository->findOneBy(["abonne" => $objetUtilisateur->getAbonne(), 'siCommande' => 1]), $objetOpportunite);
$objetCommande->setOpportunite($objetOpportunite);
}
$this->addHistoriqueAction($em, "OperationVenteCommande", 1, $uneCommande["codeGenere"], 1, 1, 1, $donnee, $utilisateurRepository);
$siCommande = 1;
}
} else {
if ($uneCommande["clientCodeGenere"] == "INVENTAIRE") {
$objetInfoInventaire = $infoInventaireRepository->findOneBy(['codeGenere' => $uneCommande["codeGenere"]]);
if ($objetInfoInventaire == null) {
$objetInfoInventaire = new InfoInventaire();
}
$dateJour = new \DateTime();
$objetInfoInventaire->setDateInventaire($dateJour);
$objetInfoInventaire->setMoisInventaire($dateJour->format("m"));
$objetInfoInventaire->setAnneeInventaire($dateJour->format("Y"));
$objetInfoInventaire->setCodeGenere($uneCommande["codeGenere"]);
$objetInfoInventaire->setAbonne($objetUtilisateur->getAbonne());
$em->persist($objetInfoInventaire);
$em->flush();
} else {
$tabDateOperation[$inc] = $uneCommande["dateFacture"];
++$inc;
}
}
}
//$JSONData = '[{"anneeId":2,"codeGenere":"PES111","etat":0,"eventId":1,"producteurId":90,"utilisateurId":0}]' ;
$listLigneCommande = json_decode($tabJSONData[1], true);
//$operationManager = $this->get('operation_manager');
// var_dump($idCommande);exit;
//Generation de la reference de la facture.
$d = new \DateTime();
$an = $d->format('Y');
$m = $d->format('m');
//Fonction pour generer une facture
$refFacture = $this->getRefLivrer($em, 1, $an, $m, $entite = 'LIVRER', $taille = 5);
$refFacture = $refFacture . rand();
//creation de l'entite fature
$uneFacture = new Facture();
$uneFacture->setCodeFacture($refFacture);
$uneFacture->setDatePublication($d);
$uneFacture->setTypeFacture(0);
if ($uneCommande["typeCommande"] != 2) {
$uneFacture->setCommande($objetCommande);
}
$em->persist($uneFacture);
$em->flush();
//Si c'est un client departement ou client interne
//Creer objet Commande
if ($uneCommande["typeCommande"] != 2) {
if ($objetCommande->getTypeCommande() != 0) {
if ($objetClient != NULL) {
if ($objetClient->getSiInterne() == 1) {
$autoObjetCommande = $this->saveCommande($em, "R" . $uneCommande["codeGenere"], $uneCommande["montant"], $objetClient, $objetUtilisateur);
$autoObjetLivraison = $this->saveLivraison($em, $autoObjetCommande, $objetClient, $infoLivrerRepository);
}
}
}
}
$incSuite = 0;
foreach ($listLigneCommande as $ligneCommande) {
$objetProduit = $produitRepository->find($ligneCommande["artCodeGenere"]);
$objetCommande = $commandeRepository->findOneBy(['codeCommande' => $ligneCommande["factCodeGenere"]]);
if ($objetCommande != null) {
$objetPrix = $prixRigueurRepository->findOneBy(['infoPrixRigueur' => $ligneCommande["prix"], 'produit' => $objetProduit, 'typePrixRigueur' => 2]);
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($ligneCommande["prix"]);
$objetPrix->setTypePrixRigueur(2);
$objetPrix->setEtatPrixRigueur(1);
if ($objetUtilisateur != null) {
$objetPrix->setAbonne($objetUtilisateur->getAbonne());
}
$em->persist($objetPrix);
$em->flush();
//Enregistrer dans la prix lie à la caisse
$unCaissePrix = new CaissePrix();
if ($objetUtilisateur != null) {
$unCaissePrix->setCaisse($objetUtilisateur->getCaisse());
$unCaissePrix->setPrixrigueur($objetPrix);
if ($objetUtilisateur != null) {
$unCaissePrix->setAbonne($objetUtilisateur->getAbonne());
}
$em->persist($unCaissePrix);
}
}
$montant = (float)$ligneCommande["prix"] * (float)$ligneCommande["nombre"];
$objetLigneCommande = $ligneCommandeRepository->findOneBy(array("codeGenere" => $ligneCommande["codeGenere"]));
$siNouveau = 0;
if ($objetLigneCommande == null) {
$siNouveau = 1;
$objetLigneCommande = new LigneCommande();
}
$objetLigneCommande->setAnnule(false);
$objetLigneCommande->setEtatLigneCommande(1);
$objetLigneCommande->setProduit($objetProduit);
$objetLigneCommande->setMontantAutreTaxe(0);
$objetLigneCommande->setMontantHt($montant);
$objetLigneCommande->setQuantite($ligneCommande["nombre"]);
$objetLigneCommande->setQuantiteLivre($ligneCommande["nombre"]);
$objetLigneCommande->setCodeGenere($ligneCommande["codeGenere"]);
$objetLigneCommande->setPrixrigueur($objetPrix);
//$objetLigneCommande->setCaisse($objetUtilisateur->getCaisse());
$objetLigneCommande->setQuantiteReste(0);
$objetLigneCommande->setTypeOperation(1);
$objetLigneCommande->setClient($objetClient);
$objetLigneCommande->setCommande($objetCommande);
if ($objetUtilisateur != null) {
$objetLigneCommande->setAbonne($objetUtilisateur->getAbonne());
}
$objetLigneCommande->setTypeLigneCommande(1);
//$montantCommande = (int) $montantCommande + (int) $ligneCommande["montant"];
$codeVente = "V_" . rand();
$em->persist($objetLigneCommande);
$em->flush();
if ($objetCommande->getTypeCommande() != 0) {
if ($objetCommande->getTypeCommande() != 5 && $objetCommande->getTypeCommande() != 7) {
$objetLigneCommande->setClient($objetClient);
}
if ($objetClient != NULL) {
if ($objetClient->getSiInterne() == 1) {
$this->validateLigneCommandeInterne($em, $codeVente, $autoObjetLivraison, $autoObjetCommande, $objetProduit, $objetPrix, $ligneCommande["nombre"], 0, $ligneCommandeRepository, $livrerRepository);
}
}
}
if ($objetCommande->getTypeCommande() == 0 || $objetCommande->getTypeCommande() == 5 || $objetCommande->getTypeCommande() == 7 || $objetCommande->getTypeCommande() == 9 || $objetCommande->getTypeCommande() == 11) {
$objetInfoLivrer = $this->saveLivraison($em, $objetCommande, NULL, $infoLivrerRepository);
//$objetPrix= $this->savePrix($em, $request->get('prix'.$uneLigneCommande->getId()),$uneLigneCommande->getProduit(), 1, $objetUtilisateur);
$this->validateLigneCommandeInterne($em, "L_" . rand(), $objetInfoLivrer, $objetCommande, NULL, $objetPrix, $ligneCommande["nombre"], $objetLigneCommande, $ligneCommandeRepository, $livrerRepository);
}
//if($siNouveau ==1){
if (($siNouveau == 1 && $objetCommande->getSiCredit() == 0 && $objetCommande->getTypeCommande() == 3) || $objetCommande->getTypeCommande() == 5 || $objetCommande->getTypeCommande() == 6 || $objetCommande->getTypeCommande() == 7 || $objetCommande->getTypeCommande() == 9 || $objetCommande->getTypeCommande() == 10) {
if ($objetUtilisateur->getAbonne()->getId() != 10) {
$idProduit = $objetProduit->getId();
if ($objetCommande->getTypeCommande() == 5 || $objetCommande->getTypeCommande() == 6 || $objetCommande->getTypeCommande() == 9 || $objetCommande->getTypeCommande() == 10)
$objetTypeOperation = $typeOperationRepository->findOneBy(["categorieTypeOperation" => $uneCommande["typeCommande"], 'abonne' => $objetUtilisateur->getAbonne()]);
else
$objetTypeOperation = $typeOperationRepository->findOneBy(['abonne' => $objetUtilisateur->getAbonne(), 'codeOpInt' => $objetCommande->getTypeCommande(), 'caisse' => $objetUtilisateur->getCaisse()]);
if ($objetTypeOperation != null) {
$idTypeOp = $objetTypeOperation->getId();
if ($objetUtilisateur->getCaisse() != null) {
$caisseId = $objetUtilisateur->getCaisse()->getId();
} else {
$objetCaisse = $caisseRepository->findOneby(['abonne' => $objetUtilisateur->getAbonne()]);
$caisseId = $objetCaisse->getId();
}
$tabCompteId = $operationManager->getCompteCaisse($em, $caisseId, $caisseRepository);
$tabCompteMontant = $operationManager->getRecuperationCompte($em, $idTypeOp, $montant, $typeOperationRepository);
$compteAuxi = $tabCompteId['compte'];
//$idVille = $objetUtilisateur->getVille()->getId();
if ($objetUtilisateur->getVille() == null) {
$idVille = 1;
} else {
$idVille = $objetUtilisateur->getVille()->getId();
}
$clientId = 0;
if ($objetClient != null) {
$clientId = $objetClient->getId();
$nomClient = $objetClient->getUtilisateur()->getNom();
} else {
$clientId = null;
if ($objetCommande->getTypeCommande() == 5 || $objetCommande->getTypeCommande() == 6 || $objetCommande->getTypeCommande() == 9 || $objetCommande->getTypeCommande() == 10)
$nomClient = $objetCommande->getProducteur()->getUtilisateur()->getNom() . " " . $objetCommande->getProducteur()->getUtilisateur()->getPrenoms();
else
$nomClient = "Passant";
}
$infoDepo = $objetTypeOperation->getLibTypeOperation() . "/" . $ligneCommande["nombre"] . "_" . $objetProduit->getNomProduit() . "/" . $nomClient;
//$d = new \DateTime($dateOperation); //$sessionData['dateChoisie'];
if ($objetCommande->getTypeCommande() == 5 || $objetCommande->getTypeCommande() == 6 || $objetCommande->getTypeCommande() == 9 || $objetCommande->getTypeCommande() == 10)
$producteurId = $objetCommande->getProducteur()->getId();
else
$producteurId = NULL;
$dateChoisie = $objetCommande->getDatePublication()->format('Y/m/d H:i:s');
$fournisseurId = null;
if ($objetFournisseur != null)
$fournisseurId = $objetFournisseur->getId();
$objetOperation = $operationRepository->findOneBy(['commande' => $objetCommande]);
if ($objetOperation == null)
$operationManager->geneLigneOperationComptable($objetCommande->getId(), $tabCompteId['id'], $tabCompteMontant['montant'], $infoDepo, $telDepo = '', $refFacture, '', $tabCompteMontant['compte'], $idTypeOp, $piece = 0, $nomCompte = '', $typePaie = 2, $idProduit, $compteAuxi, $dateChoisie, $idVille, $objetUtilisateur->getAbonne()->getId(), 0, $clientId, $utilisateurRepository, $caisseRepository, $producteurId, $fournisseurId, $activiteId = null, $surfaceanneeId);
$donnee = $montant . "#" . $objetLigneCommande->getQuantite() . "#" . $objetCommande->getCodeGenere() . "#" . $objetPrix->getInfoPrixRigueur();
// $this->addHistoriqueAction($em, "ProducteurInspectionReponse", 1, $unInspectionReponse["codeGenere"], $objetUtilisateur->getId(), $objetProducteur->getId(), 1,$donnee);
$this->addHistoriqueAction($em, "OperationVenteLigneCommande", 1, "XXXX", 1, 1, 1, $donnee, $utilisateurRepository);
}
}
if ($uneCommande["typeCommande"] == 4 || $siClientDejaAchete == 1) {
$montantTotalCommande = $ligneCommandeRepository->sumLigneCommande($objetCommande->getId());
$objetCommande->setMontantCommande($montantTotalCommande); //
$em->persist($objetCommande);
$em->flush($objetCommande);
}
}
} else {
$objetInfoInventaire = $infoInventaireRepository->findOneBy(['codeGenere' => $ligneCommande["factCodeGenere"]]);
if ($ligneCommande["typeOperation"] == -1) {
$objetProduit = $produitRepository->find($ligneCommande["artCodeGenere"]);
$this->initialiserInventaire($em, $objetProduit->getId());
$objetInventaire = null;
if (array_key_exists("numeroLot", $uneCommande))
$objetInventaire = $inventaireRepository->findOneBy(['codeGenere' => $ligneCommande["CodeGenere"]]);
if ($objetInventaire == null) {
$siNouveau = 1;
$objetInventaire = new Inventaire();
}
// $objetInventaire->setAnnule(false);
$objetInventaire->setQuantiteSaisie($ligneCommande["nombre"]);
$objetInventaire->setSaveQuantiteSaisie($ligneCommande["nombre"]);
$objetInventaire->setCodeGenere($ligneCommande["codeGenere"]);
$objetInventaire->setProduit($objetProduit);
$objetInventaire->setInfoinventaire($objetInfoInventaire);
if ($objetUtilisateur != null) {
$objetInventaire->setAbonne($objetUtilisateur->getAbonne());
}
$em->persist($objetInventaire);
$em->flush();
} else {
if ($objetUtilisateur->getCaisse() != null) {
$caisseId = $objetUtilisateur->getCaisse()->getId();
} else {
$objetCaisse = $caisseRepository->findOneby(['abonne' => $objetUtilisateur->getAbonne()]);
$caisseId = $objetCaisse->getId();
}
$tabCompteId = $operationManager->getCompteCaisse($em, $caisseId, $caisseRepository);
$refFacture = $ligneCommande["factCodeGenere"]; //$uneCommande->getCodeCommande();
// foreach ( $uneCommande->getlignecommandeTmps() as $uneLigneCommandeTmp) {
// $montantCommission = $montant * $objetUtilisateur->getCommission();
$idProduit = $objetProduit->getId();
//var_dump($uneLigneCommandeTmp->getTypeOperation(), $objetUtilisateur->getCaisse()->getId()); exit;
// $objetTypeOperation = $em->getRepository($this->stockBundle . 'TypeOperation')->findOneBy(['abonne'=>$objetUtilisateur->getAbonne(), 'codeOpInt'=>$ligneCommande["typeOperation"], 'caisse'=>$objetUtilisateur->getCaisse() ]); //7 commision
$objetTypeOperation = $typeOperationRepository->find($ligneCommande["typeOperation"]);
$idTypeOp = $objetTypeOperation->getId();
$montantAPaye = $ligneCommande["prix"]; //$montantEsp = $infoCommande->getMontantCommande();
$tabCompteMontant = $operationManager->getRecuperationCompte($em, $idTypeOp, $montantAPaye, $typeOperationRepository);
$compteAuxi = $tabCompteId['compte'];
//$infoDepo = $objetTypeOperation ->getLibTypeOperation()."/".$ligneCommande["detail"]; //.$uneCommande->getClient()->getUtilisateur()->getNom();
//var_dump( $idTypeOp );exit;
$infoDepo = $objetTypeOperation->getLibTypeOperation() . "/" . $objetProduit->getNomProduit() . "/" . $ligneCommande["detail"]; //.$uneCommande->getClient()->getUtilisateur()->getNom();
if ($objetUtilisateur->getVille() == null) {
$idVille = 1;
} else {
$idVille = $objetUtilisateur->getVille()->getId();
}
$d = new \DateTime($tabDateOperation[$incSuite]); //$sessionData['dateChoisie'];
$dateChoisie = $d->format('Y/m/d H:i:s');
++$incSuite;
//voir si les données existent dans la table operation
$siOperation = $operationRepository->findOneBy(array("refFacture" => $ligneCommande["factCodeGenere"]));
if ($siOperation == null) {
$operationManager->geneLigneOperationComptable(null, $tabCompteId['id'], $tabCompteMontant['montant'], $infoDepo, $telDepo = '', $refFacture, '', $tabCompteMontant['compte'], $idTypeOp, $piece = 0, $nomCompte = '', $typePaie = 2, $idProduit, $compteAuxi, $dateChoisie, $idVille, $objetUtilisateur->getAbonne()->getId(), 0, null, $utilisateurRepository, $caisseRepository);
}
//}
}
}
}
}
//$em->getConnection()->commit();
$dataSend = $this->get('serializer')->serialize(array('server_response' => true), 'json');
$response = new Response($dataSend);
$response->headers->set('Content-Type', 'application/json');
return $response;
}
function traiteDonneeImage($em, $JSONData, $parameters, $surfaceAnneeRepository, $inspectionRempliRepository, $producteurRepository, $imageRepository)
{ ///Revoir comment ajouter l'abonne
$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 ($uneImage["typeImage"] == 2) {
$media = str_replace('data:audio/mpeg;base64,Base64EncodedMP3Data', '', $parameters['image' . $uneImage["id"]]);
$media = str_replace(' ', '+', $media);
$nameImage = "audio_" . uniqid() . "_" . $uneImage["id"] . '.mp3';
} else {
$media = str_replace('data:image/png;base64,', '', $parameters['image' . $uneImage["id"]]);
$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($parameters['image' . $uneImage["id"]]);
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();
}
public function getInspectionInfo($em, $listeInspection, $objetUtilisateur, $inspectionRepository, $categorieQuestionInspectionRepository, $reponseQuestionInspectionRepository, $questionInspectionRepository)
{
$tablInspection = array();
$i = 0;
foreach ($listeInspection as $unObjetInspection) {
$tablInspection[$i]['id'] = $unObjetInspection["id"];
$tablInspection[$i]['label'] = $unObjetInspection["label"];
$tablInspection[$i]['description'] = $unObjetInspection["description"];
$tablInspection[$i]['etat'] = $unObjetInspection["etatInspection"];
$tablInspection[$i]['type'] = $unObjetInspection["typeInspection"];
$tablInspection[$i]['siAudio'] = $unObjetInspection["siAudio"];
$tablInspection[$i]['siSignature'] = $unObjetInspection["siSignature"];
$tablInspection[$i]['siImage'] = $unObjetInspection["siImage"];
$tablInspection[$i]['codeGenere'] = $unObjetInspection["codeGenere"];
$tablInspection[$i]['siApresAjout'] = $unObjetInspection["siApresAjout"];
$tablInspection[$i]['siInspectionSuivant'] = $unObjetInspection["siInspectionSuivant"];
$tablInspection[$i]['inspectionSuivant'] = $unObjetInspection["inspectionSuivant"];
$tablInspection[$i]['infoAutre'] = $unObjetInspection["infoAutre"];
$tablInspection[$i]['ordre'] = $unObjetInspection["ordre"];
$uneInspection = $inspectionRepository->find($unObjetInspection["id"]);
$listeCategorieQuestionInspection = $categorieQuestionInspectionRepository->findBy(array("inspection" => $uneInspection, 'abonne' => $objetUtilisateur->getAbonne()));
$j = 0;
foreach ($listeCategorieQuestionInspection as $unCategorieQuestionInspection) {
$tablInspection[$i]['categorie'][$j]["id"] = $unCategorieQuestionInspection->getId(); //Tratement des catégories
$tablInspection[$i]['categorie'][$j]["label"] = $unCategorieQuestionInspection->getLabel(); //Tratement des catégories
$tablInspection[$i]['categorie'][$j]["description"] = $unCategorieQuestionInspection->getDescription();
$tablInspection[$i]['categorie'][$j]["type"] = $unCategorieQuestionInspection->getTypeCategorieQuestionInspection();
$tablInspection[$i]['categorie'][$j]["ordre"] = $unCategorieQuestionInspection->getOrdre();
$tablInspection[$i]['categorie'][$j]["etat"] = $unCategorieQuestionInspection->getEtatCategorieQuestionInspection();
$tablInspection[$i]['categorie'][$j]["inspectionId"] = $unCategorieQuestionInspection->getInspection()->getId();
$tablInspection[$i]['categorie'][$j]["codeGenere"] = $unCategorieQuestionInspection->getCodeCategorieInspection();
$k = 0;
$listeQuestionInspection = $questionInspectionRepository->findBy(['categoriequestioninspection' => $unCategorieQuestionInspection, 'etatQuestionInspection' => 1], ["id" => "ASC"]);
foreach ($listeQuestionInspection as $unQuestionInspection) {
$tablInspection[$i]['categorie'][$j]["question"][$k]["id"] = $unQuestionInspection->getId();
$tablInspection[$i]['categorie'][$j]["question"][$k]["label"] = $unQuestionInspection->getLabel();
$tablInspection[$i]['categorie'][$j]["question"][$k]["description"] = $unQuestionInspection->getDescription();
$tablInspection[$i]['categorie'][$j]["question"][$k]["type"] = $unQuestionInspection->getTypeQuestionInspection();
$tablInspection[$i]['categorie'][$j]["question"][$k]["etat"] = $unQuestionInspection->getEtatQuestionInspection();
$tablInspection[$i]['categorie'][$j]["question"][$k]["ordre"] = $unQuestionInspection->getOrdre();
$tablInspection[$i]['categorie'][$j]["question"][$k]["siQuestionInter"] = $unQuestionInspection->getSiQuestionIntermediaire();
$tablInspection[$i]['categorie'][$j]["question"][$k]["siQuestionIssue"] = $unQuestionInspection->getSiObligatoire();
$tablInspection[$i]['categorie'][$j]["question"][$k]["codeGenere"] = $unQuestionInspection->getCodeQuestion();
if ($unQuestionInspection->getTypeQuestionInspection() != 1) {
$tablInspection[$i]['categorie'][$j]["question"][$k]['reponse'] = $reponseQuestionInspectionRepository->getListeApiReponseQuestionInspection($unQuestionInspection->getId());
}
++$k;
}
++$j;
}
++$i;
}
return $tablInspection;
}
/**
* Creates a new user entity.
*
* @Route("/liste/produit/agricole", name="api_liste_produit_agricole")
* @Method({"GET","POST"})
*/
public function saveListeProduitAgricoleAction(Request $request, UtilisateurRepository $utilisateurRepository, ClientRepository $clientRepository, ProduitRepository $produitRepository)
{
$token = $this->_tokenStorage->getToken();
if (!$token) {
return $this->json([
'status' => 400,
'user' => null
], 400);
}
$em = $this->getDoctrine()->getManager();
// $em->getConnection()->beginTransaction();
$parameters = json_decode($request->getContent(), true);
$codeClientGenere = $parameters['codeGenereClient'];
$idUtil = trim($parameters['idUtil']); // email saisie
//recuperer les informations sur
$objetUtilisateur = $utilisateurRepository->find($idUtil);
$objetClient = $clientRepository->findOneBy(["codeGenere" => $codeClientGenere]);
//$queryResult[0]["categorie"] =$em->getRepository($this->stockBundle . 'CategorieProduit')-> getAlCategorieAPI(0,$objetUtilisateur->getAbonne()->getId());
$objetInitial = $objetUtilisateur->getAbonne();
if ($objetClient != null) {
// $queryResult[0]["produit"] =$produitRepository->getAllProduitClientMobileAPI(0,$objetUtilisateur->getAbonne()->getId(), $objetClient->getId());
$listeProduit1 = $produitRepository->getAllProduitClientSiteWebAPI(3, $objetInitial->getId(), $objetClient->getId());
$listeProduit2 = $produitRepository->getAllProduitProduitFini(0, $objetInitial->getId(), $objetClient->getId());
$queryResult[0]["produit"] = array_merge($listeProduit1, $listeProduit2);
//produit Conditionné
$listeProduitConditionne = $produitRepository->getAllListeProduitConditionne($produitId = 0, $siCategorie = 0, $objetInitial->getId(), $partenaireId = 0, $typeAction = 0);
$listeCarateristique = $produitRepository->getAllCarateristqueProduit($objetInitial->getId());
//getAllProduitConditionne($produitId=0, $siCategorie, $abonneId=0,$partenaireId=0, $typeAction=0)
} else {
if ($objetUtilisateur->getCaisse() != null) {
$queryResult[0]["produit"] = $produitRepository->getAllProduitMobileAPI(0, $objetUtilisateur->getAbonne()->getId());
} else {
//$queryResult[0]["produit"] =$produitRepository-> getAllProduitCaisseAPI($objetUtilisateur->getAbonne()->getId(), $caisse);
$listeProduit1 = $produitRepository->getAllProduitClientSiteWebAPI(3, $objetInitial->getId(), 0);
$listeProduit2 = $produitRepository->getAllProduitProduitFini(0, $objetInitial->getId(), 0);
$queryResult[0]["produit"] = array_merge($listeProduit1, $listeProduit2);
}
}
$queryResult[0]["code"] = $codeClientGenere;
$queryResult[0]["listeProduitConditionne"] = $listeProduitConditionne;
$queryResult[0]["listeCarateristique"] = $listeCarateristique;
$dataSend = $this->get('serializer')->serialize(array('data' => $queryResult), 'json');
$response = new Response($dataSend);
$response->headers->set('Content-Type', 'application/json');
return $response;
}
/**
* Creates a new user entity.
*
* @Route("/liste/commande/agricole", name="api_liste_commande_agricole")
* @Method({"GET","POST"})
*/
public function saveListeCommandeAgricoleAction(Request $request, UtilisateurRepository $utilisateurRepository, ClientRepository $clientRepository, ProduitRepository $produitRepository, CommandeRepository $commandeRepository)
{
$token = $this->_tokenStorage->getToken();
if (!$token) {
return $this->json([
'status' => 400,
'user' => null
], 400);
}
$em = $this->getDoctrine()->getManager();
// $em->getConnection()->beginTransaction();
$parameters = json_decode($request->getContent(), true);
$codeClientGenere = $parameters['codeClientGenere'];
$idUtil = trim($parameters['idUtil']); // email saisie
//recuperer les informations sur
$objetUtilisateur = $utilisateurRepository->find($idUtil);
$objetClient = $clientRepository->findOneBy(["codeGenere" => $codeClientGenere]);
// $queryResult[0]["categorie"] =$em->getRepository($this->stockBundle . 'CategorieProduit')-> getAlCategorieAPI(0,$objetUtilisateur->getAbonne()->getId());
//$queryResult[0]["commande"]
$i = 0;
$listeCommande = $commandeRepository->getListeRechercheCommandeAPI($nomcol = 0, $datefin = 0, $datedeb = 0, $ville = 0, $util = 0, $silivre = 0, $numcom = 0, $prod = 0, $type = 3, 0, 100, 1, $objetUtilisateur->getAbonne()->getId(), 0, $objetClient->getId());
foreach ($listeCommande as $uneCommande) {
$queryResult[$i]["commande"]["code"] = $uneCommande["codeCommande"];
$queryResult[$i]["commande"]["date"] = $uneCommande["datePublication"];
$queryResult[$i]["commande"]["montant"] = $uneCommande["montantCommande"];
$queryResult[$i]["commande"]["ligne"] = $commandeRepository->getListeRechercheLigneCommandeAPI($nomcol = 0, $datefin = 0, $datedeb = 0, $ville = 0, $util = 0, $silivre = 0, $uneCommande["codeCommande"], $prod = 0, $type = 3, 0, 100, 1, $objetUtilisateur->getAbonne()->getId(), 0, $objetClient->getId()); //$em->getRepository($this->stockBundle . 'Commande')
$i++;
}
$dataSend = $this->get('serializer')->serialize(array('data' => $queryResult), 'json');
$response = new Response($dataSend);
$response->headers->set('Content-Type', 'application/json');
return $response;
}
/**
* Creates a new user entity.
*
* @Route("/liste/categorie/agricole", name="api_liste_categorie_agricole")
* @Method({"GET","POST"})
*/
public function saveListeCategorieAgricoleAction(Request $request, UtilisateurRepository $utilisateurRepository, ProduitRepository $produitRepository)
{
$token = $this->_tokenStorage->getToken();
if (!$token) {
return $this->json([
'status' => 400,
'user' => null
], 400);
}
$em = $this->getDoctrine()->getManager();
// $em->getConnection()->beginTransaction();
$parameters = json_decode($request->getContent(), true);
$idUtil = trim($parameters['idUtil']); // email saisie
//recuperer les informations sur
$objetUtilisateur = $utilisateurRepository->find($idUtil);
$objetInitial = $objetUtilisateur->getAbonne();
// $queryResult[0]["categorie"] =$em->getRepository($this->stockBundle . 'CategorieProduit')-> getAlCategorieAPI(0,$objetUtilisateur->getAbonne()->getId());
if ($objetUtilisateur->getCaisse() == null) {
$queryResult[0]["categorie"] = $produitRepository->getAllCategorieMobileAPI(0, $objetUtilisateur->getAbonne()->getId(), 1);
} else {
//$queryResult[0]["categorie"] =$produitRepository-> getAllProduitCaisseAPI($objetUtilisateur->getAbonne()->getId(), $objetUtilisateur->getCaisse()->getId());
//var_dump($listeCategorie1);
$listeCategorie1 = $produitRepository->getAllCategorieProduitParent(0, $objetInitial->getId(), 1);
//var_dump($listeCategorie1);
$listeCategorie2 = $produitRepository->getAllCategorieProduitFini(0, $objetInitial->getId(), 0);
//var_dump($listeCategorie2);exit;
$listeCategorie3 = $produitRepository->getAllCategorieTransforme(0, $objetInitial->getId(), 0);
//var_dump($listeCategorie3);
$queryResult[0]["categorie"] = $listeCategorie = array_merge($listeCategorie1, $listeCategorie2, $listeCategorie3);
}
$dataSend = $this->get('serializer')->serialize(array('data' => $queryResult), 'json');
$response = new Response($dataSend);
$response->headers->set('Content-Type', 'application/json');
return $response;
}
/**
* Creates a new user entity.
*
* @Route("/liste/article/agricole", name="api_liste_article_agricole")
* @Method({"GET","POST"})
*/
public function saveListeArticleAgricoleAction(Request $request, UtilisateurRepository $utilisateurRepository, ArticleRepository $articleRepository,
RubriqueRepository $rubriqueRepository, ImageRepository $imageRepository, LangueRepository $langueRepository)
{
$token = $this->_tokenStorage->getToken();
if (!$token) {
return $this->json([
'status' => 400,
'user' => null
], 400);
}
$em = $this->getDoctrine()->getManager();
// $em->getConnection()->beginTransaction();
$parameters = json_decode($request->getContent(), true);
$idUtil = trim($parameters['idUtil']); // email saisie
//recuperer les informations sur
$objetUtilisateur = $utilisateurRepository->find($idUtil);
// $queryResult[0]["categorie"] =$em->getRepository($this->stockBundle . 'CategorieProduit')-> getAlCategorieAPI(0,$objetUtilisateur->getAbonne()->getId());
$queryResult[0]["rubrique"] = $rubriqueRepository->getAllOrOneRubriqueByProduitSousActifAPI($objetUtilisateur->getAbonne()->getId());
$queryResult[0]["artice"] = $articleRepository->getAllOrOneArticleSousActifAPI(0, $objetUtilisateur->getAbonne()->getId());
$queryResult[0]["image"] = $imageRepository->getAllImageAPI($objetUtilisateur->getAbonne()->getId());
$queryResult[0]["langueImage"] = $imageRepository->getAllLangueImageAPI(0, $objetUtilisateur->getAbonne()->getId());
$queryResult[0]["langue"] = $langueRepository->getAllLangue($objetUtilisateur->getAbonne()->getId());
$dataSend = $this->get('serializer')->serialize(array('data' => $queryResult), 'json');
$response = new Response($dataSend);
$response->headers->set('Content-Type', 'application/json');
return $response;
}
/**
* Creates a new user entity.
*
* @Route("/liste/carateristique/prix/agricole", name="api_liste_carateristique_prix_agricole")
* @Method({"GET","POST"})
*/
public function saveListeCarateristiquePrixAgricoleAction(Request $request, UtilisateurRepository $utilisateurRepository, PrixRigueurRepository $prixRigueurRepository)
{
$token = $this->_tokenStorage->getToken();
if (!$token) {
return $this->json([
'status' => 400,
'user' => null
], 400);
}
$em = $this->getDoctrine()->getManager();
// $em->getConnection()->beginTransaction();
$parameters = json_decode($request->getContent(), true);
$idUtil = trim($parameters['idUtil']); // email saisie
//recuperer les informations sur
$objetUtilisateur = $utilisateurRepository->find($idUtil);
// $queryResult[0]["categorie"] =$em->getRepository($this->stockBundle . 'CategorieProduit')-> getAlCategorieAPI(0,$objetUtilisateur->getAbonne()->getId());
$queryResult[0]["carateristiqueprix"] = $prixRigueurRepository->getAllCarateristiquePrixAPI($objetUtilisateur->getAbonne()->getId());
$dataSend = $this->get('serializer')->serialize(array('data' => $queryResult), 'json');
$response = new Response($dataSend);
$response->headers->set('Content-Type', 'application/json');
return $response;
}
/**
* Creates a new user entity.
*
* @Route("/liste/prix/agricole", name="api_liste_prix_agricole")
* @Method({"GET","POST"})
*/
public function saveListePrixAgricoleAction(Request $request, UtilisateurRepository $utilisateurRepository, PrixRigueurRepository $prixRigueurRepository)
{
$token = $this->_tokenStorage->getToken();
if (!$token) {
return $this->json([
'status' => 400,
'user' => null
], 400);
}
$em = $this->getDoctrine()->getManager();
// $em->getConnection()->beginTransaction();
$parameters = json_decode($request->getContent(), true);
$idUtil = trim($parameters['idUtil']); // email saisie
//recuperer les informations sur
$objetUtilisateur = $utilisateurRepository->find($idUtil);
// $queryResult[0]["categorie"] =$em->getRepository($this->stockBundle . 'CategorieProduit')-> getAlCategorieAPI(0,$objetUtilisateur->getAbonne()->getId());
$queryResult[0]["prix"] = $prixRigueurRepository->getAllPrixAPI($objetUtilisateur->getAbonne()->getId());
$dataSend = $this->get('serializer')->serialize(array('data' => $queryResult), 'json');
$response = new Response($dataSend);
$response->headers->set('Content-Type', 'application/json');
return $response;
}
/**
* Creates a new user entity.
*
* @Route("/liste/info/logistique/agricole", name="api_liste_info_logistique_agricole")
* @Method({"GET","POST"})
*/
public function saveListeInfoLogisitiqueAgricoleAction(
Request $request,
UtilisateurRepository $utilisateurRepository,
EntrepotRepository $entrepotRepository,
FournisseurRepository $fournisseurRepository,
ProduitRepository $produitRepository,
AbonneRepository $abonneRepository
) {
$token = $this->_tokenStorage->getToken();
if (!$token) {
return $this->json([
'status' => 400,
'user' => null
], 400);
}
$em = $this->getDoctrine()->getManager();
// $em->getConnection()->beginTransaction();
$parameters = json_decode($request->getContent(), true);
$idUtil = trim($parameters['idUtil']); // email saisie
//recuperer les informations sur
$objetUtilisateur = $utilisateurRepository->find($idUtil);
$infoPartenaire = $this->getInfoPartenaire($em, $this->getAbonne($em, $objetUtilisateur->getAbonne(), $abonneRepository));
// $queryResult[0]["categorie"] =$em->getRepository($this->stockBundle . 'CategorieProduit')-> getAlCategorieAPI(0,$objetUtilisateur->getAbonne()->getId());
$queryResult[0]["entrepot"] = $entrepotRepository->getListeEntrepot($objetUtilisateur->getAbonne()->getId());
$queryResult[0]["agent"] = $fournisseurRepository->getAllFournisseurByType(1, $objetUtilisateur->getAbonne()->getId());
$queryResult[0]["variete"] = $produitRepository->getAllProduitCategorieAPI(0, $objetUtilisateur->getAbonne()->getId(), $infoPartenaire['partenaireId'], $infoPartenaire['typeAction']);
$dataSend = $this->get('serializer')->serialize(array('data' => $queryResult), 'json');
$response = new Response($dataSend);
$response->headers->set('Content-Type', 'application/json');
return $response;
}
/**
* Creates a new user entity.
*
* @Route("/liste/info/inspection/rempli", name="api_liste_inspection_rempli")
* @Method({"GET","POST"})
*/
public function getListeInspectionRempliAction(
Request $request,
InspectionRempliRepository $inspectionRempliRepository,
InspectionReponseRepository $inspectionReponseRepository
) {
$token = $this->_tokenStorage->getToken();
if (!$token) {
return $this->json([
'status' => 400,
'user' => null
], 400);
}
$em = $this->getDoctrine()->getManager();
// $em->getConnection()->beginTransaction();
$parameters = json_decode($request->getContent(), true);
$type = trim($parameters['type']);
$infoCodeGenere = trim($parameters['infoCodeGenere']);
// $queryResult[0]["categorie"] =$em->getRepository($this->stockBundle . 'CategorieProduit')-> getAlCategorieAPI(0,$objetUtilisateur->getAbonne()->getId());
$queryResult[0]["inspectionrempli"] = $inspectionRempliRepository->getListeInspectionRempliBySurface($infoCodeGenere, $type);
$queryResult[0]["inspectionreponse"] = $inspectionReponseRepository->getListeInspectionReponseByCode($infoCodeGenere, $type);
$queryResult[0]["inspectionimage"] = $inspectionRempliRepository->getListeImageInspectionRempli($infoCodeGenere, $type);
$dataSend = $this->get('serializer')->serialize(array('data' => $queryResult), 'json');
$response = new Response($dataSend);
$response->headers->set('Content-Type', 'application/json');
return $response;
}
/**
* Creates a new user entity.
*
* @Route("/get/liste/info/localisation", name="api_get_liste_info_localisation")
* @Method({"GET","POST"})
*/
public function getListeInfoLocalisationAction(
Request $request,
LocalisationRepository $localisationRepository,
SurfaceAnneeRepository $surfaceanneeRepository
) {
$token = $this->_tokenStorage->getToken();
if (!$token) {
return $this->json([
'status' => 400,
'user' => null
], 400);
}
$em = $this->getDoctrine()->getManager();
// $em->getConnection()->beginTransaction();
$parameters = json_decode($request->getContent(), true);
$parCodeGenere = trim($parameters['parCodeGenere']); // email saisie
//recuperer les informations sur
$objetSurfaceAnnee = $surfaceanneeRepository->findOneBy(['codeGenere' => $parCodeGenere]);
$surfaceId = 0;
$queryResult[0]["localisation"] = array();
if ($objetSurfaceAnnee != null) {
$surfaceId = $objetSurfaceAnnee->getId();
// $queryResult[0]["categorie"] =$em->getRepository($this->stockBundle . 'CategorieProduit')-> getAlCategorieAPI(0,$objetUtilisateur->getAbonne()->getId());
$queryResult[0]["localisation"] = $localisationRepository->getLocalisationAuditMap($surfaceId, $typeLocalisation = 2);
}
$dataSend = $this->get('serializer')->serialize(array('data' => $queryResult), 'json');
$response = new Response($dataSend);
$response->headers->set('Content-Type', 'application/json');
return $response;
}
/**
* Creates a new user entity.
*
* @Route("/get/liste/info/commande", name="api_get_liste_info_commande")
* @Method({"GET","POST"})
*/
public function getListeInfoCommandeAction(
Request $request,
LocalisationRepository $localisationRepository,
SurfaceAnneeRepository $surfaceanneeRepository
) {
$token = $this->_tokenStorage->getToken();
if (!$token) {
return $this->json([
'status' => 400,
'user' => null
], 400);
}
$em = $this->getDoctrine()->getManager();
// $em->getConnection()->beginTransaction();
$parameters = json_decode($request->getContent(), true);
$parCodeGenere = trim($parameters['parCodeGenere']); // email saisie
//recuperer les informations sur
$objetSurfaceAnnee = $surfaceanneeRepository->findOneBy(['codeGenere' => $parCodeGenere]);
$surfaceId = 0;
$queryResult[0]["entrepot"] = array();
if ($objetSurfaceAnnee != null) {
$surfaceId = $objetSurfaceAnnee->getId();
// $queryResult[0]["categorie"] =$em->getRepository($this->stockBundle . 'CategorieProduit')-> getAlCategorieAPI(0,$objetUtilisateur->getAbonne()->getId());
$queryResult[0]["entrepot"] = $localisationRepository->getLocalisationAuditMap($surfaceId, $typeLocalisation = 2);
}
$dataSend = $this->get('serializer')->serialize(array('data' => $queryResult), 'json');
$response = new Response($dataSend);
$response->headers->set('Content-Type', 'application/json');
return $response;
}
/**
* Creates a new user entity.
*
* @Route("/save/surface/annee/historique", name="api_save_surface_annee_historique")
* @Method({"POST"})
*/
public function saveSurfaceAnneeHistoriqueAction(
Request $request,
SurfaceAnneeRepository $surfaceanneeRepository,
SurfaceAnneeHistoriqueRepository $surfaceAnneeHistoriqueRepository,
AnneeCampagneRepository $anneeCampagneRepository
) {
$token = $this->_tokenStorage->getToken();
if (!$token) {
return $this->json([
'status' => 400,
'user' => null
], 400);
}
$em = $this->getDoctrine()->getManager();
$objetAnneeCampagne = null;
// $em->getConnection()->beginTransaction();
$parameters = json_decode($request->getContent(), true);
$parCodeGenere = trim($parameters['parCodeGenere']); //
//recuperer les informations sur
$objetSurfaceAnnee = $surfaceanneeRepository->findOneBy(['codeGenere' => $parCodeGenere]);
if($objetSurfaceAnnee != null)
$objetAnneeCampagne = $anneeCampagneRepository->findOneBy(array("produit"=>$objetSurfaceAnnee->getProduit(),"etatAnneeCampagne"=>1 ) );
$this->insertSurfaceAnneeHistorique($em, $objetSurfaceAnnee, $objetAnneeCampagne, $surfaceAnneeHistoriqueRepository);
$dataSend = $this->get('serializer')->serialize(array('data' => $parCodeGenere), 'json');
$response = new Response($dataSend);
$response->headers->set('Content-Type', 'application/json');
return $response;
}
function setDateSynchronisation($em, $objetUtilisateur)
{
$oldDateSynchronisation = $objetUtilisateur->getDateSynchronisation();
$objetUtilisateur->setDateSynchronisation(new \DateTime());
$em->persist($objetUtilisateur);
$em->flush();
return $oldDateSynchronisation;
}
}