#21 add planned closing time to food order #23

Merged
lubiana merged 1 commit from #21_planned-close-of-orders into main 2024-06-27 15:16:13 +00:00
5 changed files with 11 additions and 3 deletions
Showing only changes of commit b479fbf5ed - Show all commits

View file

@ -3,6 +3,7 @@
namespace App\Entity;
use App\Repository\FoodOrderRepository;
use DateInterval;
use DateTimeImmutable;
use Doctrine\Common\Collections\ArrayCollection;
use Doctrine\Common\Collections\Collection;
@ -36,6 +37,7 @@ class FoodOrder
public function __construct()
{
$this->orderItems = new ArrayCollection;
$this->open();
}
public function getId(): Ulid|null
@ -62,7 +64,7 @@ class FoodOrder
public function isClosed(): bool
{
return $this->closedAt instanceof DateTimeImmutable;
return $this->closedAt instanceof DateTimeImmutable && $this->closedAt->getTimestamp() <= (new DateTimeImmutable)->getTimestamp();
}
public function close(): static
@ -72,7 +74,8 @@ class FoodOrder
public function open(): static
{
return $this->setClosedAt(null);
$this->closedAt = (new DateTimeImmutable)->add(new DateInterval('PT1H'));
return $this;
}
public function getFoodVendor(): FoodVendor|null

View file

@ -21,6 +21,9 @@ final class FoodOrderType extends AbstractType
'class' => FoodVendor::class,
'choice_label' => 'name',
])
->add(child: 'closedAt', options: [
'label' => 'closes at',
])
;
if ($action !== null) {
$builder->setAction($action);

View file

@ -27,7 +27,7 @@ final class FoodOrderRepository extends ServiceEntityRepository
/**
* @return FoodOrder[]
*/
public function findLatestEntries(int $limit = 10): array
public function findLatestEntries(int $limit = 5): array
{
$qb = $this->createQueryBuilder('alias');

View file

@ -39,6 +39,7 @@ final class OrderItemControllerTest extends DbWebTest
$this->manager->persist($this->menuItem);
$this->manager->flush();
$this->menuItemRepository = static::getContainer()->get(MenuItemRepository::class);
}

View file

@ -27,6 +27,7 @@ abstract class DbWebTest extends WebTestCase
->getAllMetadata();
$schemaTool->dropDatabase();
$schemaTool->updateSchema($metadata);
$this->repository = $this->manager->getRepository($this->getEntityClass());
}
}