Files
kimai/src/Reporting/ProjectDateRange/ProjectDateRangeQuery.php
Kevin Papst afb5a0bba4 Release 2.45 (#5721)
Co-authored-by: Henning Klein <info@henningklein.de>
2025-12-21 16:42:34 +01:00

98 lines
2.0 KiB
PHP

<?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\Reporting\ProjectDateRange;
use App\Entity\Customer;
use App\Entity\User;
final class ProjectDateRangeQuery
{
private ?\DateTime $month;
private ?Customer $customer = null;
private bool $includeNoWork = false;
private ?string $budgetType = null;
private ?string $view = '0';
public function __construct(\DateTime $month, private User $user)
{
$this->month = clone $month;
}
public function isBudgetIndependent(): bool
{
return $this->budgetType === null;
}
public function isIncludeNoBudget(): bool
{
return $this->budgetType === 'none';
}
public function isIncludeNoWork(): bool
{
return $this->includeNoWork;
}
public function setIncludeNoWork(bool $includeNoWork): void
{
$this->includeNoWork = $includeNoWork;
}
public function getUser(): User
{
return $this->user;
}
public function getMonth(): ?\DateTime
{
return $this->month;
}
public function setMonth(?\DateTime $month): void
{
$this->month = $month;
}
public function getCustomer(): ?Customer
{
return $this->customer;
}
public function setCustomer(?Customer $customer): void
{
$this->customer = $customer;
}
public function isBudgetTypeMonthly(): bool
{
return $this->budgetType === 'month';
}
public function getBudgetType(): ?string
{
return $this->budgetType;
}
public function setBudgetType(?string $budgetType): void
{
$this->budgetType = $budgetType;
}
public function getView(): ?string
{
return $this->view;
}
public function setView(?string $view): void
{
$this->view = $view;
}
}