refs #724. New field . RemotePc
parent
feb239f3de
commit
ca23d41241
|
@ -12,6 +12,9 @@ resources:
|
||||||
ApiPlatform\Metadata\Get:
|
ApiPlatform\Metadata\Get:
|
||||||
provider: App\State\Provider\TraceProvider
|
provider: App\State\Provider\TraceProvider
|
||||||
|
|
||||||
|
order:
|
||||||
|
createdAt: DESC
|
||||||
|
|
||||||
properties:
|
properties:
|
||||||
App\Entity\Trace:
|
App\Entity\Trace:
|
||||||
id:
|
id:
|
||||||
|
|
|
@ -127,6 +127,18 @@ services:
|
||||||
arguments: [ { 'synchronized': ~ } ]
|
arguments: [ { 'synchronized': ~ } ]
|
||||||
tags: [ 'api_platform.filter' ]
|
tags: [ 'api_platform.filter' ]
|
||||||
|
|
||||||
|
api_platform.filter.remote_calendar.order:
|
||||||
|
parent: 'api_platform.doctrine.orm.order_filter'
|
||||||
|
arguments:
|
||||||
|
$properties: { 'id': ~, 'name': ~ }
|
||||||
|
$orderParameterName: 'order'
|
||||||
|
tags: [ 'api_platform.filter' ]
|
||||||
|
|
||||||
|
api_platform.filter.remote_calendar.search:
|
||||||
|
parent: 'api_platform.doctrine.orm.search_filter'
|
||||||
|
arguments: [ { 'id': 'exact', 'name': 'partial', } ]
|
||||||
|
tags: [ 'api_platform.filter' ]
|
||||||
|
|
||||||
api_platform.filter.user.order:
|
api_platform.filter.user.order:
|
||||||
parent: 'api_platform.doctrine.orm.order_filter'
|
parent: 'api_platform.doctrine.orm.order_filter'
|
||||||
arguments:
|
arguments:
|
||||||
|
|
|
@ -0,0 +1,31 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
declare(strict_types=1);
|
||||||
|
|
||||||
|
namespace DoctrineMigrations;
|
||||||
|
|
||||||
|
use Doctrine\DBAL\Schema\Schema;
|
||||||
|
use Doctrine\Migrations\AbstractMigration;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Auto-generated Migration: Please modify to your needs!
|
||||||
|
*/
|
||||||
|
final class Version20241002062742 extends AbstractMigration
|
||||||
|
{
|
||||||
|
public function getDescription(): string
|
||||||
|
{
|
||||||
|
return '';
|
||||||
|
}
|
||||||
|
|
||||||
|
public function up(Schema $schema): void
|
||||||
|
{
|
||||||
|
// this up() migration is auto-generated, please modify it to your needs
|
||||||
|
$this->addSql('ALTER TABLE organizational_unit ADD remote_pc TINYINT(1) NOT NULL, ADD reserved TINYINT(1) NOT NULL');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function down(Schema $schema): void
|
||||||
|
{
|
||||||
|
// this down() migration is auto-generated, please modify it to your needs
|
||||||
|
$this->addSql('ALTER TABLE organizational_unit DROP remote_pc, DROP reserved');
|
||||||
|
}
|
||||||
|
}
|
|
@ -84,20 +84,33 @@ class RemoteCalendar extends AbstractEntity
|
||||||
return $this;
|
return $this;
|
||||||
}
|
}
|
||||||
|
|
||||||
public function isRemoteAvailable(): bool
|
public function isAvailable(): bool
|
||||||
{
|
{
|
||||||
$now = new \DateTime();
|
$now = new \DateTime();
|
||||||
|
|
||||||
foreach ($this->getRules() as $rule) {
|
foreach ($this->getRules() as $rule) {
|
||||||
$dayOfWeek = (int) $now->format('w');
|
if ($rule->isRemoteAvailable()) {
|
||||||
$adjustedDayOfWeek = ($dayOfWeek + 6) % 7;
|
$fromDate = $rule->getAvailableFromDate();
|
||||||
if (!in_array($adjustedDayOfWeek, $rule->getBusyWeekdays())) {
|
$toDate = $rule->getAvailableToDate();
|
||||||
return false;
|
|
||||||
|
if ($fromDate && $toDate && $fromDate <= $now && $now <= $toDate) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
$dayOfWeek = (int) $now->format('w');
|
||||||
|
$adjustedDayOfWeek = ($dayOfWeek + 6) % 7;
|
||||||
|
|
||||||
|
if (!in_array($adjustedDayOfWeek, $rule->getBusyWeekdays())) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
$currentTime = $now->format('H:i');
|
||||||
|
if (!($currentTime >= $rule->getBusyFromHour() && $currentTime <= $rule->getBusyToHour())) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
$currentTime = $now->format('H:i');
|
|
||||||
|
|
||||||
return ($currentTime >= $rule->getBusyFromHour() && $currentTime <= $rule->getBusyToHour());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue