<?php
namespace App\Repository\prod;
use Doctrine\Bundle\DoctrineBundle\Repository\ServiceEntityRepository;
use Doctrine\Persistence\ManagerRegistry;
use App\ControllerModel\user\paramUtilTrait;
use App\Entity\prod\SurfaceAnnee;
use PDO;
/**
* SurfaceAnneeRepository
*
* This class was generated by the Doctrine ORM. Add your own custom
* repository methods below.
*/
class SurfaceAnneeRepository extends ServiceEntityRepository
{
use paramUtilTrait;
public function __construct(ManagerRegistry $registry)
{
parent::__construct($registry, SurfaceAnnee::class);
}
/**
* Retourne un fournisseur.
*
* @return type
*/
public function getIntentionProducteur($idProd)
{
$query = $this->_em->createQuery(
'SELECT DISTINCT sa.id, sa.superficie as valSurface, sa.datePublication as dateSaisie, a.infoAnneeCampagne as anneeCampagne, sa.etatSurfaceAnnee, p.id as idProd, a.id as idAnnee, pr.nomProduit, sa.codeGenere
FROM App\Entity\prod\SurfaceAnnee sa
INNER JOIN sa.producteur p
INNER JOIN sa.produit pr
INNER JOIN sa.anneecampagne a
WHERE p.id =:idProd ' )
->setParameters(array('idProd'=>$idProd));
return $query->getResult();
}
/**
* Retourne un fournisseur.
*
* @return type
*/
public function getSumIntentionProducteur($idProd)
{
$query = $this->_em->createQuery(
'SELECT DISTINCT SUM(sa.superficie) as valSurface
FROM App\Entity\prod\SurfaceAnnee sa
INNER JOIN sa.producteur p
INNER JOIN sa.produit pr
WHERE p.id =:idProd and sa.typeParcelle =0 ' ) // INNER JOIN sa.anneecampagne a
->setParameters(array('idProd'=>$idProd));
return $query->getResult();
}
/**
* Retourne un fournisseur.
*
* @return type
*/
public function getSumIntentionProducteurByTypeProduit($idProd, $typeCulture=0, $produitId=0, $groupByProduit =0)
{
$param = array();
$sql = " SELECT DISTINCT SUM(sa.superficie) as valSurface, pr.nomProduit
FROM App\Entity\prod\SurfaceAnnee sa
INNER JOIN sa.producteur p
INNER JOIN sa.produit pr
";
$sql .= " WHERE 1=1 and sa.typeParcelle =0";
($typeCulture == '0' || $typeCulture == '') ? $sql .= '' : $sql .= ' AND sa.typeCulture = :typeCulture ';
($produitId == '0' || $produitId == '') ? $sql .= '' : $sql .= ' AND pr.id = :produitId ';
($idProd == '0' || $idProd == '') ? $sql .= '' : $sql .= ' AND p.id =:idProd ';
( $idProd == '0' || $idProd == '') ? $sql .= '' : $param['idProd'] = $idProd;
( $typeCulture == '0' || $typeCulture == '') ? $sql .= '' : $param['typeCulture'] = $typeCulture;
( $produitId == '0' || $produitId == '') ? $sql .= '' : $param['produitId'] = $produitId;
if($groupByProduit ==1)
$sql .= " GROUP BY pr.id ";
$query = $this->_em->createQuery($sql);
$query->setParameters($param);
return $query->getResult();
}
/**
* Retourne un fournisseur.
*
* @return type
*/
public function getCountIntentionProducteur($idProd)
{
$query = $this->_em->createQuery(
'SELECT DISTINCT COUNT(sa.superficie) as valSurface
FROM App\Entity\prod\SurfaceAnnee sa
INNER JOIN sa.producteur p
INNER JOIN sa.produit pr
WHERE p.id =:idProd and sa.typeParcelle =0 ' ) // INNER JOIN sa.anneecampagne a
->setParameters(array('idProd'=>$idProd));
return $query->getResult();
}
/**
* Retourne un fournisseur.
*
* @return type
*/
public function getVarieteIntentionProducteur($idProd)
{
$query = $this->_em->createQuery(
'SELECT DISTINCT pr.nomProduit
FROM App\Entity\prod\SurfaceAnnee sa
INNER JOIN sa.producteur p
INNER JOIN sa.produit pr
WHERE p.id =:idProd ' ) // INNER JOIN sa.anneecampagne a
->setParameters(array('idProd'=>$idProd));
return $query->getResult();
}
/**
* Retourne un fournisseur.
*
* @return type
*/
public function getSumIntentionProducteurByAbonne($abonneId, $groupement=0, $tabVille=0, $type=0, $producteurId=1, $agentId=0, $zone=0
,$partenaireId=0, $typeAction=0, $siPolygon=0,$region=0, $ville=0, $produit=0, $sexe=0, $agent=0)
{
if($type == 0){
$sql = " SELECT DISTINCT SUM(sa.superficie) as valSurface, COUNT(DISTINCT(sa)) as countSurface ";
} else if($type == 3) {
$sql = " SELECT sa ";
} else{
$sql = " SELECT COUNT(DISTINCT(sa)) as valSurface ";
}
$sql .= " FROM App\Entity\prod\SurfaceAnnee sa
INNER JOIN sa.producteur p
INNER JOIN sa.produit pr
INNER JOIN p.utilisateur u
";
if($typeAction != 0){
$sql .= " INNER JOIN sa.surfaceabonnes sas ";
$sql .= " INNER JOIN sas.abonne a ";
if($typeAction == 2 && $partenaireId != 0)
$sql .= " INNER JOIN sas.partenaire pt ";
}else{
$sql .= " INNER JOIN p.abonne a";
}
if($groupement != '0' ){
$sql .= " INNER JOIN p.producteurgroupements pg ";
$sql .= " INNER JOIN pg.groupement g ";
}
if( $tabVille !=0 || $zone != '0'){
$sql .= " INNER JOIN p.zoneproducteurs zp ";
$sql .= " LEFT JOIN zp.ville z ";
}
( $agentId == '0' || $agentId == '') ? $sql .= '' : $sql .= ' INNER JOIN p.agent ag ';
$sql .= " WHERE p.etatProd !=:etatProd and sa.typeParcelle = 0 ";
if($typeAction == 0 || $typeAction == 1){
//if($abonneId!=0)
//$sql .= "and a.id =:abonneId ";
}
if($producteurId == -1)
$sql .= " AND sa.siPolygon = 1 ";
( $groupement == '0' || $groupement == '') ? $sql .= '' : $sql .= ' AND g.id = :groupement ';
//( $agentId == '0' || $agentId == '') ? $sql .= '' : $sql .= ' AND u.id = :agentId ';
( $producteurId == '0' || $producteurId == '') ? $sql .= '' : $sql .= ' AND p.id = :producteurId ';
if($typeAction == 0 || $typeAction == 1)
( $abonneId == '0' || $abonneId == '') ? $sql .= '' : $sql .= ' AND a.id = :abonneId ';
else
( $partenaireId == '0' || $partenaireId == '') ? $sql .= '' : $sql .= ' AND pt.id = :partenaireId ';
// var_dump($sql, $typeAction, $abonneId, $producteurId );exit;
if($typeAction == 2 && $abonneId != 0)
( $abonneId == '0' || $abonneId == '') ? $sql .= '' : $sql .= ' AND a.id = :abonneId ';
( $zone == '0' || $zone == '') ? $sql .= '' : $sql .= ' AND z.id = :zoneId ';
( $agentId == '0' || $agentId == '') ? $sql .= '' : $sql .= ' AND ag.id = :agentId ';
( $sexe == '0' || $sexe == '') ? $sql .= '' : $sql .= ' AND u.sexe = :sexe ';
( $siPolygon == '0' || $siPolygon == '') ? $sql .= '' : $sql .= ' AND sa.siPolygon = 1 ';
//var_dump($partenaireId=0, $typeAction=0);exit;
if($tabVille !=0 && count($tabVille)!=0){
// if($prod != 1){
$i=0;
foreach($tabVille as $uneVille){
if($i == 0){
$sql .= " AND ( z.id = :ville".$uneVille->getVille()->getId()."";
//var_dump($uneVille->getId());
}else{
$sql .= " OR z.id = :ville".$uneVille->getVille()->getId()."";
}
$i++;
//$tabProduitUser[] = $unInfoProduit->getId();
}
$sql .= " ) ";
}
( $zone == '0' || $zone == '') ? $sql .= '' : $param['zoneId'] = $zone;
( $sexe == '0' || $sexe == '') ? $sql .= '' : $param['sexe'] = $sexe;
( $groupement == '0' || $groupement == '') ? $sql .= '' : $param['groupement'] = $groupement;
( $producteurId == '0' || $producteurId == '') ? $sql .= '' : $param['producteurId'] = $producteurId;
if($typeAction == 0 || $typeAction == 1)
( $abonneId == '0' || $abonneId == '') ? $sql .= '' : $param['abonneId'] = $abonneId;
else
( $partenaireId == '0' || $partenaireId == '') ? $sql .= '' : $param['partenaireId'] = $partenaireId;
if($typeAction == 2 && $abonneId != 0)
( $abonneId == '0' || $abonneId == '') ? $sql .= '' : $param['abonneId'] = $abonneId;
( $agentId == '0' || $agentId == '') ? $sql .= '' : $param['agentId'] = $agentId;
$param['etatProd'] = 2;
if($tabVille !=0){
// if($prod != 1){
foreach($tabVille as $uneVille){
$param["ville".$uneVille->getVille()->getId().""] = $uneVille->getVille()->getId();
}
/*}else{
( $tabVille == '0' || $tabVille == '') ? $sql .= '' : $param['ville'] = $tabVille;
}*/
}
//var_dump($sql);exit;
/*$query = $this->_em->createQuery(
'SELECT DISTINCT SUM(sa.superficie) as valSurface
FROM App\Entity\prod\SurfaceAnnee sa
INNER JOIN sa.producteur p
INNER JOIN sa.produit pr
INNER JOIN p.abonne a
WHERE a.id =:abonneId and p.etatProd !=:etatProd ' ) // INNER JOIN sa.anneecampagne a
->setParameters(array('abonneId'=>$abonneId,'etatProd'=>3 ));*/
//( $ville == '0' || $ville == '') ? $sql .= '' : $sql .= ' AND v3.id = :ville';
/* }else{
( $tabVille == '0' || $tabVille == '') ? $sql .= '' : $sql .= ' AND v.id = :ville';
}*/
$query = $this->_em->createQuery($sql);
$query->setParameters($param);
return $query->getResult();
}
/**
* Retourne un fournisseur.
*
* @return type
*/
public function getIntentionProduit($produitId)
{
$query = $this->_em->createQuery(
'SELECT sa
FROM App\Entity\prod\SurfaceAnnee sa
INNER JOIN sa.produit pr
WHERE pr.id =:produitId AND sa.typeParcelle = 0 ' ) //INNER JOIN sa.anneecampagne a // INNER JOIN sa.producteur p
->setParameters(array('produitId'=>$produitId));
return $query->getResult();
}
/**
* Retourne un fournisseur.
*
* @return type
*/
public function getIntentionProducteurAnneeCompage($idProd,$anneeCampagne=0)
{
$query = $this->_em->createQuery(
'SELECT DISTINCT sa.id, sa.superficie as valSurface, sa.datePublication as dateSaisie, 0 as anneeCampagne, sa.etatSurfaceAnnee,sa.codeGenere,0 as idAnnee
FROM App\Entity\prod\SurfaceAnnee sa
INNER JOIN sa.producteur p
WHERE p.id =:idProd ' )
->setParameters(array('idProd'=>$idProd));
return $query->getResult();
}
/**
* Retourne un fournisseur.
*
* @return type
*/
public function getIntentionProducteurFournisseur($idFour)
{
$query = $this->_em->createQuery(
'SELECT DISTINCT sa.id, sa.superficie as valSurface,sa.datePublication as dateSaisie, a.infoAnneeCampagne as anneeCampagne, sa.etatSurfaceAnnee, p.id as idProd, a.id as idAnnee, pr.nomProduit, sa.codeGenere
FROM App\Entity\prod\SurfaceAnnee sa
INNER JOIN sa.producteur p
INNER JOIN p.fournisseurproducteurs fp
INNER JOIN fp.fournisseur f
INNER JOIN sa.produit pr
INNER JOIN sa.anneecampagne a
WHERE f.id =:idFour ' )
->setParameters(array('idFour'=>$idFour));
return $query->getResult();
}
public function getApiNewIntentionProducteurFournisseur($idFour, $tabVille,$prod = 2, $niveau =4, $abonneId, $groupement=0,
$partenaireId=0, $typeAction=0 , $siExploitation=0, $siSeulParcelle=0)
{
$param =array();
$champSiExploitation =" , 0 as explCodeGenere ";
if($siExploitation == 0 && $siSeulParcelle == 0)
$champSiExploitation = " , saa.codeGenere as explCodeGenere ";
$infoVille = $this->getStringSqlVille($niveau);
$sql ='SELECT DISTINCT sa.id, sa.superficie as valSurface, sa.datePublication as dateSaisie, sa.datePlantation as dateSemi, sa.siPolygon as siPolygone, 0 as anneeCampagne, sa.etatSurfaceAnnee as etat, pr.id as idVariete, v.id as idVille, pr.nomProduit, sa.codeGenere, p.codeGenere as prodCodeGenere, sa.typeParcelle '.$champSiExploitation .', sa.superficieRelle as valSurfaceAudit
FROM App\Entity\prod\SurfaceAnnee sa ';
$sql .=' INNER JOIN sa.produit pr
';
$sql .=' INNER JOIN sa.producteur p
INNER JOIN p.producteurgroupements pg
INNER JOIN pg.groupement g ';
$sql .=' INNER JOIN p.utilisateur u ';
if($siExploitation == 0 && $siSeulParcelle == 0)
$sql .=' INNER JOIN sa.surfaceannee saa ';
//if($idFour != 0 ){
/*$sql =' INNER JOIN p.fournisseurproducteurs fp
INNER JOIN fp.fournisseur f';*/
/* $sql .= " INNER JOIN p.zoneproducteurs zp
INNER JOIN zp.ville v
INNER JOIN v.setrouvers st ";*/
$sql .= " INNER JOIN p.zoneproducteurs zp
INNER JOIN zp.ville v
";
//}
if($typeAction != 0){
$sql .= " INNER JOIN sa.surfaceabonnes pas ";
$sql .= " INNER JOIN pas.abonne a ";
if($typeAction == 2 && $partenaireId != 0)
$sql .= " INNER JOIN pas.partenaire pt ";
}else{
// $sql .= " INNER JOIN p.abonne a";
( $abonneId == '0' || $abonneId == '') ? $sql .= '' : $sql .= ' INNER JOIN sa.abonne a ';
}
$sql .= $infoVille[0];
;
//( $abonneId == '0' || $abonneId == '') ? $sql .= '' : $sql .= ' INNER JOIN p.abonne a ';
$sql .= ' WHERE 1=1 AND p.etatProd !=2 AND sa.etatSurfaceAnnee != 2 ';
if($siExploitation == 1)
$sql .= ' AND sa.typeParcelle = 1 ';
else
$sql .= ' AND sa.typeParcelle = 0 ';
if($groupement==0){
if(count($tabVille) !=0){
if($prod != 1){
$i=0;
foreach($tabVille as $uneVille){
if($i == 0){
$sql .= " AND ( v.id = :ville".$uneVille->getVille()->getId()."";
//var_dump($uneVille->getId());
}else{
$sql .= " OR v.id = :ville".$uneVille->getVille()->getId()."";
}
$i++;
//$tabProduitUser[] = $unInfoProduit->getId();
}
$sql .= " ) ";
//( $ville == '0' || $ville == '') ? $sql .= '' : $sql .= ' AND v3.id = :ville';
}else{
( $tabVille == '0' || $tabVille == '') ? $sql .= '' : $sql .= ' AND v.id = :ville';
}
}
// ( $idFour == '0' || $idFour == '') ? $sql .= '' : $sql .= ' AND f.id = :idFour';
}
if($typeAction == 0 || $typeAction == 1)
( $abonneId == '0' || $abonneId == '') ? $sql .= '' : $sql .= ' AND a.id = :abonneId ';
else
( $partenaireId == '0' || $partenaireId == '') ? $sql .= '' : $sql .= ' AND pt.id = :partenaireId ';
( $groupement == '0' || $groupement == '') ? $sql .= '' : $sql .= ' AND g.id = :groupement';
( $groupement == '0' || $groupement == '') ? $sql .= '' : $param['groupement'] = $groupement;
if($typeAction == 0 || $typeAction == 1)
( $abonneId == '0' || $abonneId == '') ? $sql .= '' : $param['abonneId'] = $abonneId;
else
( $partenaireId == '0' || $partenaireId == '') ? $sql .= '' : $param['partenaireId'] = $partenaireId;
//( $ville == '0' || $ville == '') ? $sql .= '' : $param['ville'] = $ville;
if($groupement==0){
if($tabVille !=0){
if($prod != 1){
foreach($tabVille as $uneVille){
$param["ville".$uneVille->getVille()->getId().""] = $uneVille->getVille()->getId();
}
}else{
( $tabVille == '0' || $tabVille == '') ? $sql .= '' : $param['ville'] = $tabVille;
}
}
// ( $idFour == '0' || $idFour == '') ? $sql .= '' : $param['idFour'] = $idFour;
}
// var_dump($sql);exit;
$query = $this->_em->createQuery($sql);
$query->setParameters($param);
//var_dump($query->getSql());exit;
return $query->getResult();
}
/**
* Retourne un fournisseur.
*
* @return type
*/
public function getIntentionProducteurMap($typeLocalisation,$abonneId,$partenaireId=0, $typeAction=0)
{
$param=array();
$sql = " SELECT l.latitude, l.longitude, p.id, u.nom as nomProd, u.prenoms, sa.superficie as valSurface,sa.datePublication as dateSaisie, sa.etatSurfaceAnnee, p.id as idProd, pr.nomProduit, sa.codeGenere, sa.codeSurface, l.typeLocalisation
";
$sql .= " FROM App\Entity\prod\SurfaceAnnee sa
INNER JOIN sa.producteur p
INNER JOIN sa.produit pr
INNER JOIN p.utilisateur u
INNER JOIN sa.localisations l
";
if($typeAction != 0){
$sql .= " INNER JOIN sa.surfaceabonnes sas ";
$sql .= " INNER JOIN sas.abonne a ";
if($typeAction == 2 && $partenaireId != 0)
$sql .= " INNER JOIN sas.partenaire pt ";
}else{
$sql .= " INNER JOIN p.abonne a";
}
$sql .= " WHERE p.etatProd !=:etatProd AND l.etatLocalisation = 1 ";
($typeLocalisation == '0' || $typeLocalisation == '') ? $sql .= '' : $sql .= ' AND l.typeLocalisation = :typeLocalisation ';
if($typeAction == 0 || $typeAction == 1)
( $abonneId == '0' || $abonneId == '') ? $sql .= '' : $sql .= ' AND a.id = :abonneId ';
else
( $partenaireId == '0' || $partenaireId == '') ? $sql .= '' : $sql .= ' AND pt.id = :partenaireId ';
$param['etatProd'] = 2;
( $typeLocalisation == '0' || $typeLocalisation == '') ? $sql .= '' : $param['typeLocalisation'] = $typeLocalisation;
if($typeAction == 0 || $typeAction == 1)
( $abonneId == '0' || $abonneId == '') ? $sql .= '' : $param['abonneId'] = $abonneId;
else
( $partenaireId == '0' || $partenaireId == '') ? $sql .= '' : $param['partenaireId'] = $partenaireId;
$query = $this->_em->createQuery($sql);
$query->setParameters($param);
return $query->getResult();
}
/**
* Retourne un fournisseur.
*
* @return type
*/
public function getLocalisationFournisseurMap($typeLocalisation,$abonneId,$partenaireId=0, $typeAction=0)
{
$param=array();
$sql = " SELECT l.latitude, l.longitude, f.id, f.nomFournisseur as nomProd, 0 as prenoms, 0 as valSurface,l.datePublication as dateSaisie, l.typeLocalisation, f.id as idProd, 0 as nomProduit, l.codeGenere
";
$sql .= " FROM App\Entity\stock\Fournisseur f
INNER JOIN f.localisations l
";
if($typeAction != 0){
$sql .= " INNER JOIN f.fournisseurabonnes fas ";
$sql .= " INNER JOIN fas.abonne a ";
if($typeAction == 2 && $partenaireId != 0)
$sql .= " INNER JOIN fas.partenaire pt ";
}else{
$sql .= " INNER JOIN f.abonne a";
}
$sql .= " WHERE f.etatFournisseur !=:etatFournisseur ";
($typeLocalisation == '0' || $typeLocalisation == '') ? $sql .= '' : $sql .= ' AND l.typeLocalisation = :typeLocalisation ';
if($typeAction == 0 || $typeAction == 1)
( $abonneId == '0' || $abonneId == '') ? $sql .= '' : $sql .= ' AND a.id = :abonneId ';
else
( $partenaireId == '0' || $partenaireId == '') ? $sql .= '' : $sql .= ' AND pt.id = :partenaireId ';
$param['etatFournisseur'] = 1;
( $typeLocalisation == '0' || $typeLocalisation == '') ? $sql .= '' : $param['typeLocalisation'] = $typeLocalisation;
if($typeAction == 0 || $typeAction == 1)
( $abonneId == '0' || $abonneId == '') ? $sql .= '' : $param['abonneId'] = $abonneId;
else
( $partenaireId == '0' || $partenaireId == '') ? $sql .= '' : $param['partenaireId'] = $partenaireId;
$query = $this->_em->createQuery($sql);
$query->setParameters($param);
return $query->getResult();
}
/**
* Retourne un fournisseur.
*
* @return type
*/
public function getParcelleProche_1($pointLocalisation, $abonneId)
{
$query = $this->_em->createQuery(
'SELECT DISTINCT sa.id, sa.superficie as valSurface, p.id as idProd, pr.nomProduit, sa.codeGenere, u.nom, u.prenoms, stdistancesphere(sa.localisation, :pointLocalisation)
FROM App\Entity\prod\SurfaceAnnee sa
INNER JOIN sa.producteur p
INNER JOIN sa.abonne a
INNER JOIN p.utilisateur u
INNER JOIN sa.produit pr
WHERE a.id =:abonneId AND sa.localisation =:pointLocalisation AND sa.typeParcelle = 0
AND stdistancesphere(sa.localisation, :pointLocalisation) is not NULL
ORDER BY stdistancesphere(sa.localisation, :pointLocalisation) ASC
'
)
->setParameters(array('abonneId'=>$abonneId,'pointLocalisation'=>$pointLocalisation));
return $query->getResult();
}
public function getParcelleProche($pointLocalisation, $abonneId, $surfaceId=0, $limit=3 ) {
if($pointLocalisation != null ){
$sqlrech = " SELECT DISTINCT sa.id, sa.superficie as valSurface, p.id as idProd, pr.nom_produit as nomProduit, sa.code_genere as codeGenere, st_distance_sphere(sa.localisation, POINT(:longitude, :latidute))/1000 as distance , u.nom_user, u.prenoms_user
FROM surface_annee sa ";
$sqlrech .= " INNER JOIN producteur p on p.id = sa.producteur_id
INNER JOIN abonne a on a.id = sa.abonne_id
INNER JOIN utilisateur u on u.id = p.utilisateur_id
INNER JOIN produit pr on pr.id= sa.produit_id
";
$sqlrech .= "
WHERE 1=1 AND sa.type_parcelle = 0 AND st_distance_sphere(sa.localisation, POINT(:longitude, :latidute)) is not NULL ";
($surfaceId == '0' || $surfaceId == '') ? $sqlrech .= '' : $sqlrech .= ' AND sa.id !=:surfaceId ';
if($abonneId !=0){
$sqlrech .= " and a.id =:abonneId ";
}
$stmt = $this->_em->getConnection()->prepare($sqlrech);
//var_dump($sqlrech );exit;
( $surfaceId == '0' || $surfaceId == '') ? $sqlrech .= '' : $stmt->bindValue(':surfaceId', $surfaceId, PDO::PARAM_INT);
$sqlrech .= " ORDER BY distance ASC Limit :limit";
if($abonneId !=0){
$stmt->bindValue(':abonneId', $abonneId, PDO::PARAM_INT);
}
$stmt->bindValue(':longitude', $pointLocalisation->getX(), PDO::PARAM_STR);
$stmt->bindValue(':latidute', $pointLocalisation->getY(), PDO::PARAM_STR);
$stmt->bindValue(':limit', $limit, PDO::PARAM_INT);
//$stmt->execute();
$res = $stmt->executeQuery()->fetchAllAssociative();
//var_dump($sqlrech,$pointLocalisation->getX(), $pointLocalisation->getY(), $abonneId );exit;
return $res;
}else{
return array();
}
}
/**
* Retourne un fournisseur.
*
* @return type
*/
public function getCalculDistanceDeuxPont($tabLocalisationA, $tabLocalisationB)
{
$query = $this->_em->createQuery(
'SELECT st_distance_sphere(POINT(:longitudeA, :latiduteA), POINT(:longitudeB, :latiduteB))/1000 as distance
FROM App\Entity\stack\Localisation sa
'
)
->setParameters(array('longitudeA'=>$tabLocalisationA[1],'latiduteA'=>$tabLocalisationA[0], 'longitudeB'=>$tabLocalisationB[1],'latiduteA'=>$tabLocalisationB[0]));
return $query->getResult();
}
}