8b1a21051ab11a5d86abd8c624016f302b09af33
[PFCLatex/.git] / source / PHPWebServiceModel.php
1 public function getAdsByGPSAndUserIdAndLanguageId(array $parameters, $userId, $languageId)
2 {
3     $longitude = $parameters['longitude'];
4     $latitude = $parameters['latitude'];
5     $radius = sfConfig::get('app_radius', '100');
6     $adIds = Doctrine_Manager::getInstance()->getCurrentConnection()->fetchColumn(
7         SELECT ad_id FROM office INNER JOIN office_ads ON (office_ads.office_id=office.id)
8         WHERE ST_DWithin(office_gps, ST_GeographyFromText(SRID=4326;POINT($longitude $latitude)), $radius)
9         );
10     foreach ($adIds as $adId)
11     {
12         $adIds[] = Doctrine_Manager::getInstance()->getCurrentConnection()->fetchOne(
13         SELECT ad.id FROM ad INNER JOIN company_category ON (ad.company_categ_id=company_category.id)
14         INNER JOIN general_category ON (company_category.general_categ_id=general_category.id)
15         INNER JOIN user_basket ON (user_basket.general_categ_id=general_category.id)
16         WHERE user_id=$userId AND ad.id=$adId);
17     }
18     $ads = array();
19     foreach($adIds as $adId)
20         $ads[] = $this->findOneByAdIdAndLanguageId($adId, $languageId);
21     return $ads;
22 }