End of chapter 6
[PFCLatex/.git] / source / PHPWebServiceModel.php
diff --git a/source/PHPWebServiceModel.php b/source/PHPWebServiceModel.php
new file mode 100644 (file)
index 0000000..8b1a210
--- /dev/null
@@ -0,0 +1,22 @@
+public function getAdsByGPSAndUserIdAndLanguageId(array $parameters, $userId, $languageId)
+{
+    $longitude = $parameters['longitude'];
+    $latitude = $parameters['latitude'];
+    $radius = sfConfig::get('app_radius', '100');
+    $adIds = Doctrine_Manager::getInstance()->getCurrentConnection()->fetchColumn(
+        SELECT ad_id FROM office INNER JOIN office_ads ON (office_ads.office_id=office.id)
+        WHERE ST_DWithin(office_gps, ST_GeographyFromText(SRID=4326;POINT($longitude $latitude)), $radius)
+        );
+    foreach ($adIds as $adId)
+    {
+        $adIds[] = Doctrine_Manager::getInstance()->getCurrentConnection()->fetchOne(
+        SELECT ad.id FROM ad INNER JOIN company_category ON (ad.company_categ_id=company_category.id)
+        INNER JOIN general_category ON (company_category.general_categ_id=general_category.id)
+        INNER JOIN user_basket ON (user_basket.general_categ_id=general_category.id)
+        WHERE user_id=$userId AND ad.id=$adId);
+    }
+    $ads = array();
+    foreach($adIds as $adId)
+        $ads[] = $this->findOneByAdIdAndLanguageId($adId, $languageId);
+    return $ads;
+}