new user-year reporting and data-type chooser (#3155)
This commit is contained in:
@@ -14,7 +14,7 @@ use App\Model\Statistic\StatisticDate;
|
||||
use DateTime;
|
||||
use DateTimeInterface;
|
||||
|
||||
final class DailyStatistic
|
||||
final class DailyStatistic implements DateStatisticInterface
|
||||
{
|
||||
/**
|
||||
* @var array<string, StatisticDate>
|
||||
@@ -61,11 +61,26 @@ final class DailyStatistic
|
||||
return array_values($this->days);
|
||||
}
|
||||
|
||||
/**
|
||||
* For unified frontend access
|
||||
*
|
||||
* @return StatisticDate[]
|
||||
*/
|
||||
public function getData(): array
|
||||
{
|
||||
return $this->getDays();
|
||||
}
|
||||
|
||||
public function getDayByDateTime(\DateTimeInterface $date): ?StatisticDate
|
||||
{
|
||||
return $this->getDay($date->format('Y'), $date->format('m'), $date->format('d'));
|
||||
}
|
||||
|
||||
public function getByDateTime(\DateTimeInterface $date): ?StatisticDate
|
||||
{
|
||||
return $this->getDayByDateTime($date);
|
||||
}
|
||||
|
||||
public function getDayByReportDate(string $date): ?StatisticDate
|
||||
{
|
||||
$this->setupDays();
|
||||
|
||||
30
src/Model/DateStatisticInterface.php
Normal file
30
src/Model/DateStatisticInterface.php
Normal file
@@ -0,0 +1,30 @@
|
||||
<?php
|
||||
|
||||
/*
|
||||
* This file is part of the Kimai time-tracking app.
|
||||
*
|
||||
* For the full copyright and license information, please view the LICENSE
|
||||
* file that was distributed with this source code.
|
||||
*/
|
||||
|
||||
namespace App\Model;
|
||||
|
||||
use App\Model\Statistic\StatisticDate;
|
||||
use DateTimeInterface;
|
||||
|
||||
interface DateStatisticInterface
|
||||
{
|
||||
/**
|
||||
* For unified frontend access
|
||||
*
|
||||
* @return StatisticDate[]
|
||||
*/
|
||||
public function getData(): array;
|
||||
|
||||
public function getByDateTime(DateTimeInterface $date): ?StatisticDate;
|
||||
|
||||
/**
|
||||
* @return DateTimeInterface[]
|
||||
*/
|
||||
public function getDateTimes(): array;
|
||||
}
|
||||
@@ -14,7 +14,7 @@ use App\Model\Statistic\StatisticDate;
|
||||
use DateTime;
|
||||
use DateTimeInterface;
|
||||
|
||||
final class MonthlyStatistic
|
||||
final class MonthlyStatistic implements DateStatisticInterface
|
||||
{
|
||||
/**
|
||||
* @var array<string, array<int, StatisticDate>>
|
||||
@@ -107,6 +107,26 @@ final class MonthlyStatistic
|
||||
return $all;
|
||||
}
|
||||
|
||||
/**
|
||||
* For unified frontend access
|
||||
*
|
||||
* @return StatisticDate[]
|
||||
*/
|
||||
public function getData(): array
|
||||
{
|
||||
return $this->getMonths();
|
||||
}
|
||||
|
||||
public function getMonthByDateTime(DateTimeInterface $date): ?StatisticDate
|
||||
{
|
||||
return $this->getMonth($date->format('Y'), $date->format('m'));
|
||||
}
|
||||
|
||||
public function getByDateTime(DateTimeInterface $date): ?StatisticDate
|
||||
{
|
||||
return $this->getMonthByDateTime($date);
|
||||
}
|
||||
|
||||
public function getMonth(string $year, string $month): ?StatisticDate
|
||||
{
|
||||
$this->setupYears();
|
||||
|
||||
Reference in New Issue
Block a user