Initial xentral_oss_20.3.c9ffacf

This commit is contained in:
Alex
2021-05-21 08:49:41 +02:00
parent 5406e4a551
commit 34e5ac43d9
18884 changed files with 2109867 additions and 0 deletions
@@ -0,0 +1,53 @@
<?php
declare(strict_types=1);
namespace Xentral\Modules\TimeManagement\Service;
use Xentral\Components\Database\Database;
use Xentral\Modules\TimeManagement\Data\HolidayData;
use Xentral\Modules\TimeManagement\Exception\InvalidDateFormatException;
final class HolidayGateway
{
/** @var Database $db */
private $db;
/**
* @param Database $db
*/
public function __construct(Database $db)
{
$this->db = $db;
}
/**
* @param $year
*
* @throws InvalidDateFormatException
*
* @return array|HolidayData[]
*/
public function findHolidayDataByYear(int $year): array
{
$sql =
'SELECT
af.bezeichnung as `name`,
af.datum as `date`
FROM `arbeitsfreietage` AS `af`
WHERE af.datum >= :first_date_of_year
AND af.typ = \'feiertag\'
ORDER BY af.datum';
$holidays = $this->db->fetchAll($sql, ['first_date_of_year' => $year . '-01-01']);
$holidayData = [];
if (!empty($holidays)) {
foreach ($holidays as $holiday) {
$holidayData[] = HolidayData::fromDbState($holiday);
}
}
return $holidayData;
}
}