support different formats in user timesheet exports (#1222)

This commit is contained in:
Kevin Papst
2019-11-08 16:10:38 +01:00
committed by GitHub
parent 0705c26513
commit fa1c79e15c
75 changed files with 1872 additions and 951 deletions

View File

@@ -9,55 +9,12 @@
namespace App\Export\Renderer;
use App\Entity\Timesheet;
use App\Export\Base\RendererTrait as BaseRendererTrait;
/**
* @deprecated since 1.6, will be removed with 2.0
*/
trait RendererTrait
{
/**
* @param Timesheet[] $timesheets
* @return array
*/
protected function calculateSummary(array $timesheets)
{
$summary = [];
foreach ($timesheets as $timesheet) {
$id = $timesheet->getProject()->getCustomer()->getId() . '_' . $timesheet->getProject()->getId();
$activityId = $timesheet->getActivity()->getId();
if (!isset($summary[$id])) {
$summary[$id] = [
'customer' => $timesheet->getProject()->getCustomer()->getName(),
'project' => $timesheet->getProject()->getName(),
'activities' => [],
'currency' => $timesheet->getProject()->getCustomer()->getCurrency(),
'rate' => 0,
'duration' => 0,
];
}
if (!isset($summary[$id]['activities'][$activityId])) {
$summary[$id]['activities'][$activityId] = [
'activity' => $timesheet->getActivity()->getName(),
'currency' => $timesheet->getProject()->getCustomer()->getCurrency(),
'rate' => 0,
'duration' => 0,
];
}
$duration = $timesheet->getDuration();
if (null === $duration) {
$duration = 0;
}
$summary[$id]['rate'] += $timesheet->getRate();
$summary[$id]['duration'] += $duration;
$summary[$id]['activities'][$activityId]['rate'] += $timesheet->getRate();
$summary[$id]['activities'][$activityId]['duration'] += $duration;
}
asort($summary);
return $summary;
}
use BaseRendererTrait;
}