* Behoben: Teilweise fehlen Termine

* Sortierung Reiseterminetabelle

git-svn-id: http://78.47.251.156/svn/dev/sterntours-3@3292 f459cee4-fb09-11de-96c3-f9c5f16c3c76
This commit is contained in:
uli 2017-02-14 14:05:47 +00:00
parent d87bb5dc3c
commit 03f50fc03c
2 changed files with 20 additions and 17 deletions

View file

@ -202,6 +202,14 @@ class TravelPeriodRepository extends \Doctrine\ORM\EntityRepository
const TD_QUERY_ACP = self::TD_QUERY_INACTIVE | self::TD_QUERY_OUTDATED; const TD_QUERY_ACP = self::TD_QUERY_INACTIVE | self::TD_QUERY_OUTDATED;
const TD_QUERY_VIRTUAL_AND_NON_VIRTUAL = self::TD_QUERY_VIRTUAL | self::TD_QUERY_NON_VIRTUAL; const TD_QUERY_VIRTUAL_AND_NON_VIRTUAL = self::TD_QUERY_VIRTUAL | self::TD_QUERY_NON_VIRTUAL;
/**
* @param TravelProgram $program
* @param bool $class
* @param int $flags
*
* @return TravelDate[]|array
* @todo Find a more appropriate name for this method
*/
public function getTrueTravelPeriods(TravelProgram $program, $class = false, $flags = public function getTrueTravelPeriods(TravelProgram $program, $class = false, $flags =
self::TD_QUERY_VIRTUAL_AND_NON_VIRTUAL) self::TD_QUERY_VIRTUAL_AND_NON_VIRTUAL)
{ {
@ -320,8 +328,6 @@ class TravelPeriodRepository extends \Doctrine\ORM\EntityRepository
} }
} }
} }
//$x = array_keys($flightPeriodByKey);
//var_dump($x); die();
$this->addTravelDatesToProgram($program, $entities, $flightPeriodByKey, $startDate, null); $this->addTravelDatesToProgram($program, $entities, $flightPeriodByKey, $startDate, null);
return $program->getTravelDates(); return $program->getTravelDates();
@ -375,10 +381,12 @@ class TravelPeriodRepository extends \Doctrine\ORM\EntityRepository
$seasonEndDate = clone $endDate; $seasonEndDate = clone $endDate;
} }
// Subtract temporarily added days which were added above. (Also subtract if date was limited!) // Subtract temporarily added days which were added above. (Also subtract if date was limited!)
$seasonEndDate->modify('-'.$travelProgram->getProgramDuration().' day'); // Add one day to include season end date in $dates array below (would be excluded otherwise)
$seasonEndDate->modify('-'. ($travelProgram->getProgramDuration() - 1) .' day');
$dates = new \DatePeriod($travelPeriodDate->getStartDate(), $dates = new \DatePeriod($travelPeriodDate->getStartDate(),
\DateInterval::createFromDateString('1 day'), $seasonEndDate); \DateInterval::createFromDateString('1 day'), $seasonEndDate);
$doTestStartDate = $startDate != null; $doTestStartDate = $startDate != null;
/** @var \DateTime $date */ /** @var \DateTime $date */
foreach ($dates as $date) foreach ($dates as $date)
@ -403,15 +411,6 @@ class TravelPeriodRepository extends \Doctrine\ORM\EntityRepository
{ {
$flightPeriodKey = $travelDateKey . $flightPeriodKey = $travelDateKey .
$travelProgram->getTravelArrivalPoint()->getId(); $travelProgram->getTravelArrivalPoint()->getId();
// #DEBUG
/*
if ($travelPeriodDate->getId() . $travelPeriod->getName() . $i == '18888D8')
{
$x = array_keys($flightPeriods);
var_dump($x);
die (isset($flightPeriods[$flightPeriodKey]) ? 'ok' : 'nok');
}
*/
$flightPeriod = $flightPeriods[$flightPeriodKey] ?? null; $flightPeriod = $flightPeriods[$flightPeriodKey] ?? null;
} }
$travelProgram->addTravelDateFromSeasonTravelPeriod( $travelProgram->addTravelDateFromSeasonTravelPeriod(
@ -440,13 +439,8 @@ class TravelPeriodRepository extends \Doctrine\ORM\EntityRepository
$flightPeriod = null; $flightPeriod = null;
if (!$travelProgram->getIsMediated()) if (!$travelProgram->getIsMediated())
{ {
//$x = array_keys($flightPeriods);
//var_dump($x);
//die($travelDateKey . $travelProgram->getTravelArrivalPoint()->getId());
$flightPeriod = $flightPeriods[$travelDateKey . $travelProgram->getTravelArrivalPoint()->getId()] $flightPeriod = $flightPeriods[$travelDateKey . $travelProgram->getTravelArrivalPoint()->getId()]
?? null; ?? null;
//if ($travelPeriod->getName() == 'ISRA-HOE18888D8');
//die($travelPeriod->getName() .';'. $flightPeriod->getPrice());
} }
// #TODO There is an error in the old backend which causes duplicates // #TODO There is an error in the old backend which causes duplicates

View file

@ -341,6 +341,8 @@ class TravelProgram
*/ */
private $travelDateByKey = []; private $travelDateByKey = [];
private $isTravelDateMapTainted = true;
/** /**
* Set profitMargin * Set profitMargin
* *
@ -1424,6 +1426,7 @@ class TravelProgram
\DateTime $end = null, FlightPeriod $flightPeriod = null, $currencyFactor) \DateTime $end = null, FlightPeriod $flightPeriod = null, $currencyFactor)
{ {
$this->assertTravelDateNotDefinedYet($key); $this->assertTravelDateNotDefinedYet($key);
$this->isTravelDateMapTainted = true;
$this->travelDateByKey[$key] = TravelDate::createForSeasonTravelPeriod($key, $travelPeriod, $index, $start, $this->travelDateByKey[$key] = TravelDate::createForSeasonTravelPeriod($key, $travelPeriod, $index, $start,
$end, $flightPeriod, $currencyFactor); $end, $flightPeriod, $currencyFactor);
} }
@ -1432,6 +1435,7 @@ class TravelProgram
\DateTime $start = null, \DateTime $end = null, $index = null) \DateTime $start = null, \DateTime $end = null, $index = null)
{ {
$this->assertTravelDateNotDefinedYet($key); $this->assertTravelDateNotDefinedYet($key);
$this->isTravelDateMapTainted = true;
$this->travelDateByKey[$key] = new TravelDate($key, $travelPeriod, $flightPeriod, $currencyFactor, $start, $end, $this->travelDateByKey[$key] = new TravelDate($key, $travelPeriod, $flightPeriod, $currencyFactor, $start, $end,
$index); $index);
} }
@ -1451,6 +1455,11 @@ class TravelProgram
*/ */
public function getTravelDates() public function getTravelDates()
{ {
if ($this->isTravelDateMapTainted)
{
ksort($this->travelDateByKey);
$this->isTravelDateMapTainted = false;
}
return $this->travelDateByKey; return $this->travelDateByKey;
} }