* 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_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 =
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);
return $program->getTravelDates();
@ -375,10 +381,12 @@ class TravelPeriodRepository extends \Doctrine\ORM\EntityRepository
$seasonEndDate = clone $endDate;
}
// 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(),
\DateInterval::createFromDateString('1 day'), $seasonEndDate);
$doTestStartDate = $startDate != null;
/** @var \DateTime $date */
foreach ($dates as $date)
@ -403,15 +411,6 @@ class TravelPeriodRepository extends \Doctrine\ORM\EntityRepository
{
$flightPeriodKey = $travelDateKey .
$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;
}
$travelProgram->addTravelDateFromSeasonTravelPeriod(
@ -440,13 +439,8 @@ class TravelPeriodRepository extends \Doctrine\ORM\EntityRepository
$flightPeriod = null;
if (!$travelProgram->getIsMediated())
{
//$x = array_keys($flightPeriods);
//var_dump($x);
//die($travelDateKey . $travelProgram->getTravelArrivalPoint()->getId());
$flightPeriod = $flightPeriods[$travelDateKey . $travelProgram->getTravelArrivalPoint()->getId()]
?? null;
//if ($travelPeriod->getName() == 'ISRA-HOE18888D8');
//die($travelPeriod->getName() .';'. $flightPeriod->getPrice());
}
// #TODO There is an error in the old backend which causes duplicates

View file

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