diff --git a/src/AppBundle/Entity/TravelProgram.php b/src/AppBundle/Entity/TravelProgram.php index fef44c40..369db358 100644 --- a/src/AppBundle/Entity/TravelProgram.php +++ b/src/AppBundle/Entity/TravelProgram.php @@ -142,7 +142,7 @@ class TravelProgram */ private $htmlDescription; - /** + /** * @var string * * @ORM\Column(name="payment_conditions", type="text", length=65535, nullable=true) @@ -205,7 +205,7 @@ class TravelProgram */ private $travelAgenda; - /** + /** * @var integer * * @ORM\Column(name="travel_company", type="integer", nullable=true) @@ -317,7 +317,7 @@ class TravelProgram */ private $insurance2; - /** + /** * @var \AppBundle\Entity\TravelInsurance * * @ORM\ManyToOne(targetEntity="AppBundle\Entity\TravelInsurance") @@ -327,7 +327,7 @@ class TravelProgram */ private $insurance3; - /** + /** * @var \AppBundle\Entity\TravelInsurance * * @ORM\ManyToOne(targetEntity="AppBundle\Entity\TravelInsurance") @@ -395,6 +395,7 @@ class TravelProgram /** * @ORM\OneToMany(targetEntity="AppBundle\Entity\TravelProgramImage", mappedBy="program") + * @ORM\OrderBy({"id" = "ASC"}) */ private $images; @@ -890,37 +891,37 @@ class TravelProgram { $lines = array(); $count = 0; - if($this->htmlDescription){ + if ($this->htmlDescription) { $text = $this->htmlDescription; $regex = '#

(.*?)

#'; preg_match_all($regex, $text, $matches); - foreach ($matches[1] as $val){ - if(strpos($val, ':')){ + foreach ($matches[1] as $val) { + if (strpos($val, ':')) { $v = explode(':', $val); $int = (int) filter_var($v[0], FILTER_SANITIZE_NUMBER_INT); - if($int) { - $lines[$int] = array('count'=> $count, 'day' => trim($v[1]), 'date' => $startDate->format('d.m.Y')); + if ($int) { + $lines[$int] = array('count' => $count, 'day' => trim($v[1]), 'date' => $startDate->format('d.m.Y')); $startDate->modify('+1 day'); $count++; } } } } - if($this->classDescription){ + if ($this->classDescription) { $text = $this->classDescription; //standard //komfort $regex = "''si"; preg_match_all($regex, $text, $matches); - if(isset($matches[1][0]) && strpos($matches[1][0], '')){ + if (isset($matches[1][0]) && strpos($matches[1][0], '')) { $text = $matches[1][0]; $regex = '#
  • (.*?)
  • #'; preg_match_all($regex, $text, $matches); - foreach ($matches[1] as $val){ - if(strpos($val, ':')){ + foreach ($matches[1] as $val) { + if (strpos($val, ':')) { $v = explode(':', $val); $int = (int) filter_var($v[0], FILTER_SANITIZE_NUMBER_INT); - if($int && isset($lines[$int])) { + if ($int && isset($lines[$int])) { $lines[$int]['night'] = trim($v[1]); } } @@ -1122,7 +1123,7 @@ class TravelProgram return $this->travelAgenda; } - /** + /** * Set travelCompany * * @param integer $travelCompany @@ -1147,7 +1148,7 @@ class TravelProgram } - + /** * Set depositPercent @@ -1278,8 +1279,7 @@ class TravelProgram */ public function getIsAvailWeekday($weekday) { - if ($this->weekdays == null) - { + if ($this->weekdays == null) { return false; } return in_array($weekday, explode(',', $this->weekdays)); @@ -1463,7 +1463,7 @@ class TravelProgram return $this->insurance2; } - /** + /** * Set insurance3 * * @param \AppBundle\Entity\TravelInsurance $insurance2 @@ -1487,7 +1487,7 @@ class TravelProgram return $this->insurance3; } - /** + /** * Set insurance3 * * @param \AppBundle\Entity\TravelInsurance $insurance2 @@ -1751,77 +1751,113 @@ class TravelProgram private function assertTravelDateNotDefinedYet($key, $header = null) { - if($header){ - if (isset($this->headerTravelDateByKey[$key])) - { + if ($header) { + if (isset($this->headerTravelDateByKey[$key])) { return true; //throw new \Exception('Travel period with key '. $key .' already exists'); } - return false; + return false; } - if (isset($this->travelDateByKey[$key])) - { + if (isset($this->travelDateByKey[$key])) { return true; //throw new \Exception('Travel period with key '. $key .' already exists'); } - return false; + return false; } - public function addTravelDateFromNonSeasonTravelPeriod($key, TravelPeriod $travelPeriod, - FlightPeriod $flightPeriod = null, $currencyFactor, $header = null) - { + public function addTravelDateFromNonSeasonTravelPeriod( + $key, + TravelPeriod $travelPeriod, + FlightPeriod $flightPeriod = null, + $currencyFactor, + $header = null + ) { $now = new \DateTime(); - if($travelPeriod->getStartDate() <= $now){ - return false; - } - - if($header){ - if(!$this->assertTravelDateNotDefinedYet($key, $header)){ + if ($travelPeriod->getStartDate() <= $now) { + return false; + } + + if ($header) { + if (!$this->assertTravelDateNotDefinedYet($key, $header)) { $this->headerTravelDateByKey[$key] = TravelDate::createForNonSeasonTravelPeriod($key, $travelPeriod, $flightPeriod, $currencyFactor); } return $this->headerTravelDateByKey[$key];; } - if(!$this->assertTravelDateNotDefinedYet($key)){ + if (!$this->assertTravelDateNotDefinedYet($key)) { $this->travelDateByKey[$key] = TravelDate::createForNonSeasonTravelPeriod($key, $travelPeriod, $flightPeriod, $currencyFactor); } return $this->travelDateByKey[$key]; } - public function addTravelDateFromSeasonTravelPeriod($key, TravelPeriod $travelPeriod, $index, \DateTime $start, - \DateTime $end = null, FlightPeriod $flightPeriod = null, $currencyFactor, $header = null) - { + public function addTravelDateFromSeasonTravelPeriod( + $key, + TravelPeriod $travelPeriod, + $index, + \DateTime $start, + \DateTime $end = null, + FlightPeriod $flightPeriod = null, + $currencyFactor, + $header = null + ) { - if($header){ - if(!$this->assertTravelDateNotDefinedYet($key, $header)){ + if ($header) { + if (!$this->assertTravelDateNotDefinedYet($key, $header)) { $this->isHeaderTravelDateMapTainted = true; - $this->headerTravelDateByKey[$key] = TravelDate::createForSeasonTravelPeriod($key, $travelPeriod, $index, $start, - $end, $flightPeriod, $currencyFactor); + $this->headerTravelDateByKey[$key] = TravelDate::createForSeasonTravelPeriod( + $key, + $travelPeriod, + $index, + $start, + $end, + $flightPeriod, + $currencyFactor + ); } return; } - if(!$this->assertTravelDateNotDefinedYet($key)){ + if (!$this->assertTravelDateNotDefinedYet($key)) { $this->isTravelDateMapTainted = true; - $this->travelDateByKey[$key] = TravelDate::createForSeasonTravelPeriod($key, $travelPeriod, $index, $start, - $end, $flightPeriod, $currencyFactor); + $this->travelDateByKey[$key] = TravelDate::createForSeasonTravelPeriod( + $key, + $travelPeriod, + $index, + $start, + $end, + $flightPeriod, + $currencyFactor + ); } } - public function addTravelDate($key, TravelPeriod $travelPeriod, FlightPeriod $flightPeriod = null, $currencyFactor, - \DateTime $start = null, \DateTime $end = null, $index = null) - { - if(!$this->assertTravelDateNotDefinedYet($key)){ - $this->isTravelDateMapTainted = true; - $this->travelDateByKey[$key] = new TravelDate($key, $travelPeriod, $flightPeriod, $currencyFactor, $start, $end, - $index); + public function addTravelDate( + $key, + TravelPeriod $travelPeriod, + FlightPeriod $flightPeriod = null, + $currencyFactor, + \DateTime $start = null, + \DateTime $end = null, + $index = null + ) { + if (!$this->assertTravelDateNotDefinedYet($key)) { + $this->isTravelDateMapTainted = true; + $this->travelDateByKey[$key] = new TravelDate( + $key, + $travelPeriod, + $flightPeriod, + $currencyFactor, + $start, + $end, + $index + ); } } public function hasTravelDate($key, $header = null) { - if($header){ + if ($header) { return isset($this->headerTravelDateByKey[$key]); } return isset($this->travelDateByKey[$key]); @@ -1829,7 +1865,7 @@ class TravelProgram public function getTravelDate($key, $header = null) { - if($header){ + if ($header) { return $this->headerTravelDateByKey[$key] ?? null; } return $this->travelDateByKey[$key] ?? null; @@ -1840,17 +1876,15 @@ class TravelProgram */ public function getTravelDates($header = null) { - if($header){ - if ($this->isHeaderTravelDateMapTainted) - { + if ($header) { + if ($this->isHeaderTravelDateMapTainted) { ksort($this->headerTravelDateByKey); $this->isHeaderTravelDateMapTainted = false; } return $this->headerTravelDateByKey; } - if ($this->isTravelDateMapTainted) - { + if ($this->isTravelDateMapTainted) { ksort($this->travelDateByKey); $this->isTravelDateMapTainted = false; } @@ -1859,14 +1893,13 @@ class TravelProgram public function hasTravelDates($header = null) { - if($header){ + if ($header) { return !empty($this->headerTravelDateByKey); - } return !empty($this->travelDateByKey); } - + public function getIsPossibleStartDate(\DateTime $startDate) { return $this->getIsAvailWeekday(intval($startDate->format('w'))); @@ -1875,14 +1908,12 @@ class TravelProgram public function getLowestPrice() { $lowestPrice = -1; - foreach ($this->getTravelDates() as $travelDate) - { - if($travelDate->getStatus() == 0){ + foreach ($this->getTravelDates() as $travelDate) { + if ($travelDate->getStatus() == 0) { continue; } $curLowestPrice = $travelDate->getLowestPrice(); - if ($lowestPrice < 0 || $curLowestPrice < $lowestPrice) - { + if ($lowestPrice < 0 || $curLowestPrice < $lowestPrice) { $lowestPrice = $curLowestPrice; } } @@ -1925,14 +1956,23 @@ class TravelProgram public function getPreviewImage() { - foreach ($this->getImages() as $image) - { - if ($image->getType() == 2) - { - return $image; + $images = $this->getImages(); + if ($images->isEmpty()) { + return null; + } + + $previewImage = null; + foreach ($images as $image) { + if ((int) $image->getType() === 2) { + $previewImage = $image; } } - return $this->getImages()[0]; + + if ($previewImage !== null) { + return $previewImage; + } + + return $images->first(); } /** diff --git a/src/AppBundle/Entity/TravelProgramImage.php b/src/AppBundle/Entity/TravelProgramImage.php index 16a15267..6d1fec64 100644 --- a/src/AppBundle/Entity/TravelProgramImage.php +++ b/src/AppBundle/Entity/TravelProgramImage.php @@ -34,9 +34,9 @@ class TravelProgramImage private $description; /** - * @var boolean + * @var int|null 1=Gallery, 2=Box/Suche, 3=Header, 4=Slider * - * @ORM\Column(name="type", type="boolean", nullable=true) + * @ORM\Column(name="type", type="smallint", nullable=true) */ private $type; @@ -144,7 +144,7 @@ class TravelProgramImage /** * Set type * - * @param boolean $type + * @param int|null $type * * @return TravelProgramImage */ @@ -158,7 +158,7 @@ class TravelProgramImage /** * Get type * - * @return boolean + * @return int|null */ public function getType() {