diff --git a/addons/default/visiosoft/advs-module/resources/views/partials/list-filter.twig b/addons/default/visiosoft/advs-module/resources/views/partials/list-filter.twig
index 54f696b63..764a1f4b8 100644
--- a/addons/default/visiosoft/advs-module/resources/views/partials/list-filter.twig
+++ b/addons/default/visiosoft/advs-module/resources/views/partials/list-filter.twig
@@ -145,6 +145,29 @@
{% endfor %}
+
+ {% for key,value in ranges %}
+
+
+
+ {% endfor %}
+
diff --git a/addons/default/visiosoft/advs-module/src/Adv/AdvRepository.php b/addons/default/visiosoft/advs-module/src/Adv/AdvRepository.php
index 429723681..0f2f86a92 100644
--- a/addons/default/visiosoft/advs-module/src/Adv/AdvRepository.php
+++ b/addons/default/visiosoft/advs-module/src/Adv/AdvRepository.php
@@ -56,6 +56,7 @@ class AdvRepository extends EntryRepository implements AdvRepositoryInterface
$query = $query->where('advs_advs.slug', '!=', "");
$query = $query->where('advs_advs.status', 'approved');
$query = $query->where('advs_advs.finish_at', '>', date('Y-m-d H:i:s'));
+
if (!empty($param['keyword'])) {
$delimiter = '_';
$keyword = str_slug($param['keyword'], $delimiter);
@@ -103,10 +104,11 @@ class AdvRepository extends EntryRepository implements AdvRepositoryInterface
foreach ($param as $para => $value) {
if (substr($para, 0, 3) === "cf_") {
- $id = substr($para, 3, 3);
+ $id = substr($para, 3);
$customParameters[] = ['id' => "$.cf" . $id, 'value' => $param[$para]];
}
}
+
foreach ($customParameters as $key => $customParameter) {
if ($key == 0) {
$jsonQuery = "(";
@@ -140,6 +142,43 @@ class AdvRepository extends EntryRepository implements AdvRepositoryInterface
$query = $query->whereRaw($jsonQuery);
}
+ if (!empty($param['max_price'])) {
+ $num = $param['max_price'];
+ $int = (int)$num;
+ $column = "JSON_EXTRACT(foreign_currencies, '$." . $param['currency'] . "') <=" . $int;
+ $query = $query->whereRaw($column);
+ }
+
+ if (!empty($param['max_price'])) {
+ $num = $param['max_price'];
+ $int = (int)$num;
+ $column = "JSON_EXTRACT(foreign_currencies, '$." . $param['currency'] . "') <=" . $int;
+ $query = $query->whereRaw($column);
+ }
+
+ foreach ($param as $para => $value) {
+ if (substr($para, 4, 3) === "cf_") {
+ $id = substr($para, 7);
+ $minmax = substr($para, 0, 3);
+ if($minmax == 'min'){
+
+ $num = $param[$minmax.'_cf_'.$id];
+ $int = (int)$num;
+ $column = "JSON_EXTRACT(cf_json, '$.cf" . $id . "') >= '" . $int ."'";
+ $query = $query->whereRaw($column);
+
+ }
+ if($minmax == 'max'){
+
+ $num = $param[$minmax.'_cf_'.$id];
+ $int = (int)$num;
+ $column = "JSON_EXTRACT(cf_json, '$.cf" . $id . "') <= '" . $int ."'";
+ $query = $query->whereRaw($column);
+
+ }
+ }
+ }
+
if (!empty($param['dlong']) && !empty($param['dlat']) && !empty($param['distance'])) {
$query = $query->whereNotNull('coor');
$query = $query->whereRaw("ST_DISTANCE(ST_GeomFromText('POINT(" . $param['dlong'] . " " . $param['dlat'] . ")'), coor) < " . $param['distance']);
@@ -155,6 +194,7 @@ class AdvRepository extends EntryRepository implements AdvRepositoryInterface
$join->on('advs_advs.id', '=', 'dopings_dopings.adv_name_id');
$join->where('dopings_dopings.doping_type_id', '=', 4);
});
+
$query = $query->select('advs_advs.*', 'dopings_dopings.id as doping');
}
if (!empty($param['sort_by'])) {
@@ -173,12 +213,12 @@ class AdvRepository extends EntryRepository implements AdvRepositoryInterface
$query = $query->orderBy('created_at', 'desc');
}
+
if ($type == "list") {
return $query->paginate($this->settings->value('streams::per_page'));
} else {
return $query->get();
}
-
}
public function softDeleteAdv($id)
diff --git a/addons/default/visiosoft/advs-module/src/Http/Controller/advsController.php b/addons/default/visiosoft/advs-module/src/Http/Controller/advsController.php
index 81de60340..5ceed9540 100644
--- a/addons/default/visiosoft/advs-module/src/Http/Controller/advsController.php
+++ b/addons/default/visiosoft/advs-module/src/Http/Controller/advsController.php
@@ -112,6 +112,7 @@ class AdvsController extends PublicController
$checkboxes = $returnvalues['checkboxes'];
$textfields = $returnvalues['textfields'];
$topfields = $returnvalues['topfields'];
+ $ranges = $returnvalues['ranges'];
}
if (!empty($param['user'])) {
@@ -119,7 +120,7 @@ class AdvsController extends PublicController
$userProfile = $profileRepository->getProfile($user->id);
}
$compact = compact('advs', 'countries', 'mainCats', 'subCats', 'textfields', 'checkboxes', 'request',
- 'user', 'userProfile', 'featured_advs', 'type', 'topfields');
+ 'user', 'userProfile', 'featured_advs', 'type', 'topfields', 'ranges');
Cookie::queue(Cookie::make('last_search', $request->getRequestUri(), 84000));