diff --git a/sources/Afup/Forum/Inscriptions.php b/sources/Afup/Forum/Inscriptions.php index df1d5799c..66508d4b2 100644 --- a/sources/Afup/Forum/Inscriptions.php +++ b/sources/Afup/Forum/Inscriptions.php @@ -81,13 +81,21 @@ public function getRegistrationsByReference($reference) return $registrations; } - function obtenirSuivi($id_forum) + /** + * @param int $idForum + * @param int $idForumPrecedent + * + * @return array + */ + function obtenirSuivi($idForum, $idForumPrecedent = null) { $forum = new Forum($this->_bdd); - $id_forum_precedent = $forum->obtenirForumPrecedent($id_forum); + if (null === $idForumPrecedent) { + $idForumPrecedent = $forum->obtenirForumPrecedent($idForum); + } $now = new \DateTime(); - $dateForum = \DateTime::createFromFormat('U', $forum->obtenir($id_forum)['date_fin_vente']); + $dateForum = \DateTime::createFromFormat('U', $forum->obtenir($idForum)['date_fin_vente']); $daysToEndOfSales = 0; if ($dateForum >= $now) { @@ -103,7 +111,7 @@ function obtenirSuivi($id_forum) RIGHT JOIN afup_forum_tarif aft ON (aft.id = i.type_inscription AND aft.default_price > 0) LEFT JOIN afup_forum af ON af.id = i.id_forum WHERE - i.id_forum IN (' . (int)$id_forum . ', ' . (int)$id_forum_precedent . ') + i.id_forum IN (' . (int)$idForum . ', ' . (int)$idForumPrecedent . ') AND etat <> 1 GROUP BY jour, i.id_forum @@ -118,14 +126,14 @@ function obtenirSuivi($id_forum) $suivis = []; for($i = $nombre_par_date[0]['jour']; $i <= 0; $i++) { - $infoForum = array_sum(array_map(function ($info) use ($i, $id_forum) { - if ($info['id_forum'] == $id_forum && $info['jour'] <= $i) { + $infoForum = array_sum(array_map(function ($info) use ($i, $idForum) { + if ($info['id_forum'] == $idForum && $info['jour'] <= $i) { return $info['nombre']; } return 0; }, $nombre_par_date)); - $infoN1 = array_sum(array_map(function ($info) use ($i, $id_forum_precedent) { - if ($info['id_forum'] == $id_forum_precedent && $info['jour'] <= $i) { + $infoN1 = array_sum(array_map(function ($info) use ($i, $idForumPrecedent) { + if ($info['id_forum'] == $idForumPrecedent && $info['jour'] <= $i) { return $info['nombre']; } return 0; diff --git a/sources/AppBundle/Controller/Admin/Event/StatsAction.php b/sources/AppBundle/Controller/Admin/Event/StatsAction.php index 1702fe26a..bdb63695f 100644 --- a/sources/AppBundle/Controller/Admin/Event/StatsAction.php +++ b/sources/AppBundle/Controller/Admin/Event/StatsAction.php @@ -53,12 +53,19 @@ public function __construct( public function __invoke(Request $request) { $id = $request->query->get('id'); + $comparedEventId = $request->query->get('compared_event_id'); $event = $this->eventActionHelper->getEventById($id); $legacyInscriptions = $this->legacyModelFactory->createObject(Inscriptions::class); - $stats = $legacyInscriptions->obtenirSuivi($event->getId()); + $comparedSerieName = 'n-1'; + if ($comparedEventId) { + $comparedEvent = $this->eventActionHelper->getEventById($comparedEventId, false); + $comparedSerieName = $comparedEvent->getTitle(); + } + + $stats = $legacyInscriptions->obtenirSuivi($event->getId(), $comparedEventId); $ticketsDayOne = $this->ticketRepository->getPublicSoldTicketsByDay(Ticket::DAY_ONE, $event); $ticketsDayTwo = $this->ticketRepository->getPublicSoldTicketsByDay(Ticket::DAY_TWO, $event); @@ -93,7 +100,7 @@ public function __invoke(Request $request) }, $stats['suivi'])), ], [ - 'name' => 'n-1', + 'name' => $comparedSerieName, 'data' => array_values(array_map(static function ($item) { return $item['n_1']; }, $stats['suivi'])),