/** * @param AnalyticsExport $export * @param array $attachments */ protected function emailAnalytic(AnalyticsExport $export, array $attachments) { /** @var EmailService $mailer */ $mailer = $this->getContainer()->get('transformcore.phe.analytics.email'); $subject = 'Analytic rollup for ' . $export->getStartDate()->format('d-m-Y') . ' to ' . $export->getEndDate()->format('d-m-Y'); $body = $subject . PHP_EOL . ' Extracted ' . (new \DateTime())->format(\DateTime::ISO8601); $mailer->sendEmail($subject, $body, $attachments); }
public function testGetSetActualDropoutCompletionAverage() { $expected = 10.395; $this->assertEmpty($this->instance->getActualDropoutCompletionAverage()); $this->assertTrue(is_float($this->instance->getActualDropoutCompletionAverage())); $this->assertInstanceOf(AnalyticsExport::class, $this->instance->setActualDropoutCompletionAverage($expected)); $this->assertEquals($expected, $this->instance->getActualDropoutCompletionAverage()); $this->assertFalse(is_int($this->instance->getActualDropoutCompletionAverage())); }
/** * @param AnalyticsExport $export * @return string */ protected function generateFileNameAndPath(AnalyticsExport $export) { $prefix = 'daily_'; if ($export->getEndDate()->diff($export->getStartDate())->days > 0) { $prefix = 'weekly_'; } return $this->exportPath . DIRECTORY_SEPARATOR . $prefix . 'rollup_' . $export->getStartDate()->format('d_m_Y') . '_to_' . $export->getEndDate()->format('d_m_Y') . '_analytics.csv'; }
/** * @param AnalyticsExport $exportEntity * @param array $dataSet * @return AnalyticsExport */ protected function populateExportSet(AnalyticsExport $exportEntity, array $dataSet) { $dropoutTotals = $this->extractDropoutTotals($dataSet); $exportEntity->setStarts($dataSet['starts'])->setCompletions($dataSet['completions'])->setGenderStartsMale($dataSet['gender_starts_male'])->setGenderStartsFemale($dataSet['gender_starts_female'])->setGenderCompletionsMale($dataSet['gender_completions_male'])->setGenderCompletionsFemale($dataSet['gender_completions_female'])->setProvidedEmailAddress($dataSet['provided_email_address'])->setProvidedPostCodes($dataSet['provided_post_codes'])->setWeightedDropoutCompletionAverage($this->calculateWeightedAverage($dropoutTotals))->setActualDropoutCompletionAverage($this->calculateActualAverage($dropoutTotals)); return $exportEntity; }