Adapt calendar exports to not take into account calendars of canceled accompanying periods

This commit is contained in:
Julie Lenaerts 2023-09-29 07:48:54 +02:00
parent 29983cc2ad
commit b38f5800d9
3 changed files with 32 additions and 7 deletions

View File

@ -13,6 +13,7 @@ namespace Chill\CalendarBundle\Export\Export;
use Chill\CalendarBundle\Export\Declarations;
use Chill\CalendarBundle\Repository\CalendarRepository;
use Chill\MainBundle\Export\AccompanyingCourseExportHelper;
use Chill\MainBundle\Export\ExportInterface;
use Chill\MainBundle\Export\FormatterInterface;
use Chill\MainBundle\Export\GroupedExportInterface;
@ -27,9 +28,15 @@ class CountCalendars implements ExportInterface, GroupedExportInterface
{
private CalendarRepository $calendarRepository;
public function __construct(CalendarRepository $calendarRepository)
private AccompanyingCourseExportHelper $accompanyingCourseExportHelper;
public function __construct(
CalendarRepository $calendarRepository,
AccompanyingCourseExportHelper $accompanyingCourseExportHelper
)
{
$this->calendarRepository = $calendarRepository;
$this->accompanyingCourseExportHelper = $accompanyingCourseExportHelper;
}
public function buildForm(FormBuilderInterface $builder)
@ -98,6 +105,9 @@ class CountCalendars implements ExportInterface, GroupedExportInterface
$qb = $this->calendarRepository->createQueryBuilder('cal');
$qb->select('COUNT(cal.id) AS export_result');
$qb->join('cal.accompanyingPeriod', 'acp');
$this->accompanyingCourseExportHelper::addClosingMotiveExclusionClause($qb);
return $qb;
}

View File

@ -13,6 +13,7 @@ namespace Chill\CalendarBundle\Export\Export;
use Chill\CalendarBundle\Export\Declarations;
use Chill\CalendarBundle\Repository\CalendarRepository;
use Chill\MainBundle\Export\AccompanyingCourseExportHelper;
use Chill\MainBundle\Export\ExportInterface;
use Chill\MainBundle\Export\FormatterInterface;
use Chill\MainBundle\Export\GroupedExportInterface;
@ -26,10 +27,15 @@ class StatCalendarAvgDuration implements ExportInterface, GroupedExportInterface
{
private CalendarRepository $calendarRepository;
private AccompanyingCourseExportHelper $accompanyingCourseExportHelper;
public function __construct(
CalendarRepository $calendarRepository
CalendarRepository $calendarRepository,
AccompanyingCourseExportHelper $accompanyingCourseExportHelper
) {
$this->calendarRepository = $calendarRepository;
$this->accompanyingCourseExportHelper = $accompanyingCourseExportHelper;
}
public function buildForm(FormBuilderInterface $builder): void
@ -92,8 +98,10 @@ class StatCalendarAvgDuration implements ExportInterface, GroupedExportInterface
{
$qb = $this->calendarRepository->createQueryBuilder('cal');
$qb
->select('AVG(cal.endDate - cal.startDate) AS export_result');
$qb->select('AVG(cal.endDate - cal.startDate) AS export_result');
$qb->join('cal.accompanyingPeriod', 'acp');
$this->accompanyingCourseExportHelper::addClosingMotiveExclusionClause($qb);
return $qb;
}

View File

@ -13,6 +13,7 @@ namespace Chill\CalendarBundle\Export\Export;
use Chill\CalendarBundle\Export\Declarations;
use Chill\CalendarBundle\Repository\CalendarRepository;
use Chill\MainBundle\Export\AccompanyingCourseExportHelper;
use Chill\MainBundle\Export\ExportInterface;
use Chill\MainBundle\Export\FormatterInterface;
use Chill\MainBundle\Export\GroupedExportInterface;
@ -26,10 +27,14 @@ class StatCalendarSumDuration implements ExportInterface, GroupedExportInterface
{
private CalendarRepository $calendarRepository;
private AccompanyingCourseExportHelper $accompanyingCourseExportHelper;
public function __construct(
CalendarRepository $calendarRepository
CalendarRepository $calendarRepository,
AccompanyingCourseExportHelper $accompanyingCourseExportHelper
) {
$this->calendarRepository = $calendarRepository;
$this->accompanyingCourseExportHelper = $accompanyingCourseExportHelper;
}
public function buildForm(FormBuilderInterface $builder): void
@ -92,8 +97,10 @@ class StatCalendarSumDuration implements ExportInterface, GroupedExportInterface
{
$qb = $this->calendarRepository->createQueryBuilder('cal');
$qb
->select('SUM(cal.endDate - cal.startDate) AS export_result');
$qb->select('SUM(cal.endDate - cal.startDate) AS export_result');
$qb->join('cal.accompanyingPeriod', 'acp');
$this->accompanyingCourseExportHelper::addClosingMotiveExclusionClause($qb);
return $qb;
}