Files
sprawozdania/project/src/Services/OverdueReports.php
T
2024-09-25 16:55:03 +02:00

61 lines
1.4 KiB
PHP

<?php
declare(strict_types=1);
namespace App\Services;
use App\Entity\Clients;
use App\Entity\Reports;
use Doctrine\ORM\EntityManager;
class OverdueReports
{
private array $list;
private int $leftCount = 0;
private ?Clients $client = null;
public function __construct(private readonly EntityManager $entity){}
public function getList(): array
{
if(!isset($this->list)){
$this->list = $this->takeOverdueList();
}
return $this->list;
}
public function setLeftCount(int $leftCount): void
{
$this->leftCount = $leftCount;
}
public function setClient(?Clients $client): void
{
$this->client = $client;
}
public function getLeftCount(): int
{
return $this->leftCount;
}
private function takeOverdueList() : array
{
$clientId = 0;
if($this->client){
$clientId = $this->client->getId();
}
$reports = $this->entity->getRepository(Reports::class)->findAllOverdue($clientId);
if (!$reports) {
return [];
}
$toReturn = [];
/** @var Reports $report */
foreach ($reports as $report) {
$date = $report->getDateStart()->format('Y-m');
if (!array_key_exists($date, $toReturn)) {
$toReturn[$date] = 1;
} else {
$toReturn[$date]++;
}
}
return $toReturn;
}
}