Provide pax in ical feed

This commit is contained in:
Björn Fromme
2020-02-04 20:47:24 +01:00
parent 73b6212a98
commit 832a98df56
@@ -71,29 +71,37 @@ class IcalService implements SingletonInterface
$vcalendar = $this->createCalendarInstance();
$dateStart = $dateEnd = null;
$paxOccupiedCurrent = $dateStart = $dateEnd = null;
foreach ($events as $event) {
/** @var Contingent $event */
$paxTotal = $event->getPax();
$paxAvaiable = $event->getAvailable();
$paxAvailable = $event->getAvailable();
$percentageBooked = 100;
if ($paxTotal > 0 && Contingent::STATUS_BLOCKED !== $event->getStatus()) {
$percentageBooked = 100 - round($paxAvaiable / $paxTotal * 100);
if (Contingent::STATUS_BLOCKED === $event->getStatus()) {
$paxOccupied = $paxTotal;
} else {
$paxOccupied = $paxTotal - $paxAvailable;
}
if ($percentageBooked >= self::THRESHOLD) {
if (null !== $dateStart) {
continue;
if ($paxOccupied !== $paxOccupiedCurrent) {
if (null === $dateStart) {
$dateStart = $event->getBegin();
} else {
$dateEnd = $event->getEnd();
if ($paxOccupiedCurrent > 0) {
$this->addCalendarItem(
$vcalendar,
$dateStart,
$dateEnd,
$paxOccupiedCurrent
);
}
$dateStart = $dateEnd = null;
}
$dateStart = $event->getBegin();
} elseif (null !== $dateStart) {
$dateEnd = $event->getEnd();
$this->addCalendarItem($vcalendar, $dateStart, $dateEnd);
$dateStart = $dateEnd = null;
}
$paxOccupiedCurrent = $paxOccupied;
}
try {
@@ -110,20 +118,16 @@ class IcalService implements SingletonInterface
* @param Vcalendar $vcalendar
* @param \DateTime $dateStart
* @param \DateTime $dateEnd
* @param int $pax
*/
protected function addCalendarItem(Vcalendar $vcalendar, \DateTime $dateStart, \DateTime $dateEnd): void
protected function addCalendarItem(Vcalendar $vcalendar, \DateTime $dateStart, \DateTime $dateEnd, int $pax): void
{
try {
$vcalendar
->newVevent()
->setDtstart($dateStart)
->setDtend($dateEnd)
->setSummary('Unavailable')
->setDescription(sprintf(
'Unavailable from %s to %s',
$dateStart->format('d M Y'),
$dateEnd->format('d.M Y')
))
->setDescription(sprintf('Part-occupied:%d', $pax))
;
}
catch (\Exception $e) {
@@ -143,4 +147,4 @@ class IcalService implements SingletonInterface
return $vcalendar;
}
}
}