Skip to content

Commit

Permalink
made housingOption condition available to Duration and DepartureDate …
Browse files Browse the repository at this point in the history
…filters
  • Loading branch information
michael-graute committed May 27, 2021
1 parent 336f825 commit d264042
Show file tree
Hide file tree
Showing 3 changed files with 22 additions and 2 deletions.
11 changes: 10 additions & 1 deletion src/Pressmind/Search/Filter/DepartureDate.php
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,16 @@ public function getResult()
foreach ($results as $result) {
$media_object_ids[] = $result->id;
}
$dates = $db->fetchAll("SELECT date_departure from pmt2core_cheapest_price_speed WHERE id_media_object in(" . implode(',', $media_object_ids) . ") ORDER BY date_departure ASC");
$query = [];
$query[] = "SELECT date_departure from pmt2core_cheapest_price_speed WHERE id_media_object in(" . implode(',', $media_object_ids) . ")";
/** @var Search\Condition\HousingOption $housing_option_condition */
if($housing_option_condition = $this->_search->getCondition('\Pressmind\Search\Condition\HousingOption')) {
$cheapest_price_filter = new Search\CheapestPrice();
$cheapest_price_filter->occupancy = $housing_option_condition->occupancy;
$query[] = "AND (" . $housing_option_condition->occupancy . " BETWEEN option_occupancy_min AND option_occupancy_max OR option_occupancy = " . $housing_option_condition->occupancy . ")";
}
$query[] = "ORDER BY date_departure ASC";
$dates = $db->fetchAll(implode(' ', $query));
if (count($dates) > 0) {
$counter = count($dates) - 1;
$earliest_departure_date = \DateTime::createFromFormat('Y-m-d H:i:s', $dates[0]->date_departure);
Expand Down
12 changes: 11 additions & 1 deletion src/Pressmind/Search/Filter/Duration.php
Original file line number Diff line number Diff line change
Expand Up @@ -42,10 +42,20 @@ public function getResult()
$results = $this->_search->getResults(false, true);
$durations = [];
foreach ($results as $result) {
foreach ($result->booking_packages as $booking_package) {
/*foreach ($result->booking_packages as $booking_package) {
if(($min == null || $max == null) || ($min <= $booking_package->duration && $max >= $booking_package->duration)) {
$durations[] = $booking_package->duration;
}
}*/
$cheapest_price_filter = null;
/** @var Search\Condition\HousingOption $housing_option_condition */
if($housing_option_condition = $this->_search->getCondition('\Pressmind\Search\Condition\HousingOption')) {
$cheapest_price_filter = new Search\CheapestPrice();
$cheapest_price_filter->occupancy = $housing_option_condition->occupancy;
}
$cheapest_price = $result->getCheapestPrice($cheapest_price_filter);
if(!is_null($cheapest_price) && (($min == null || $max == null) || ($min <= $cheapest_price->price_total && $max >= $cheapest_price->price_total))) {
$durations[] = $cheapest_price->duration;
}
}
sort($durations);
Expand Down
1 change: 1 addition & 0 deletions src/Pressmind/Search/Filter/PriceRange.php
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,7 @@ public function getResult()
$prices = [];
foreach ($results as $result) {
$cheapest_price_filter = null;
/** @var Search\Condition\HousingOption $housing_option_condition */
if($housing_option_condition = $this->_search->getCondition('\Pressmind\Search\Condition\HousingOption')) {
$cheapest_price_filter = new Search\CheapestPrice();
$cheapest_price_filter->occupancy = $housing_option_condition->occupancy;
Expand Down

0 comments on commit d264042

Please sign in to comment.