<?php
declare(strict_types=1);
/**
* @author Raymond
*/
namespace App\Repository;
use App\Entity\Villes;
use Doctrine\Bundle\DoctrineBundle\Repository\ServiceEntityRepository;
use Doctrine\ORM\Query;
use Doctrine\Persistence\ManagerRegistry;
class VillesRepository extends ServiceEntityRepository implements iRepository
{
public function __construct(ManagerRegistry $registry)
{
parent::__construct($registry, Villes::class);
}
public function donne_string_noms_villes_principales_dune_localisation($id_localisation, $limit=3)
{
if ($id_localisation == "33_12_75") {
return "";
}
$qb = $this->getEntityManager()->createQueryBuilder();
$villes = $qb->select([
'v.nom_ville'
])
->from('App\Entity\Villes', 'v')
->where('v.code_departement LIKE :id_localisation')->setParameter('id_localisation', $id_localisation.'%')
->orderBy('v.population', self::DESC)
->setMaxResults($limit)
->getQuery()
->getResult(Query::HYDRATE_ARRAY);
$string = "";
foreach ($villes as $ville) {
$string .= $ville['nom_ville'] . ', ';
}
$string = trim($string, ", ");
return $string;
}
public function donne_tableau_valorisations_du_secteur($id_annonce)
{
$limit = 10;
$qb = $this->getEntityManager()->createQueryBuilder();
$valorisations = $qb->select([
'vlav.id_valorisation',
'v.titre_valorisation',
'v.ca_n_affichage AS ca_n',
'v.date_mois_operation',
'v.societe_difficulte',
'v.type_rachat',
'v.type_acquereur',
'v.description_publique',
])
->from('App\Entity\ValorisationsLiensAnnoncesVendeur', 'vlav')
->leftJoin('App\Entity\Valorisations', 'v', self::WITH, 'vlav.id_valorisation = v.id_valorisation')
->where('vlav.id_annonce = :id_annonce')->setParameter('id_annonce', (int)$id_annonce)
->andWhere('v.mode=\'publique\' ')
->orderBy('v.date_mois_operation', self::DESC)
->setMaxResults($limit)
->getQuery()
->getResult(Query::HYDRATE_ARRAY);
return $valorisations;
}
}