$this->expectExceptionMessage('Price already exists.');
$discipline->addPrice(
$priceId = PriceId::next(),
$date = new Date($currentDate, $currentDate->modify('+1 day')),
$price = 120,
$currency = 'RUB',
$calculator = Price::CALCULATOR_TYPE_REGISTRATION
);
public function addPrice(PriceId $id, Date $date, int $value, string $currency, string $calculator): void
{
foreach ($this->prices as $current) {
if ($current->getDate()->getStart() >= $date->getStart() && $date->getStart() <= $current->getDate()->getEnd()) {
throw new \DomainException('Price already exists.');
}
if ($current->getDate()->getStart() >= $date->getEnd() && $date->getEnd() <= $current->getDate()->getEnd()) {
throw new \DomainException('Price already exists.');
}
}
$this->prices->add(new Price($this, $id, $date, $value, $currency, $calculator));
}
public function testExists(): void
{
$currentDate = new \DateTimeImmutable('+1 day');
$event = (new EventBuilder())->activate()->build();
$discipline = (new DisciplineBuilder())->build();
$discipline = Discipline::create($event, new Id($discipline->getId()->getValue()));
$discipline->addPrice(
$priceId = PriceId::next(),
$date = new Date($currentDate->modify('+4 day'), $currentDate->modify('+5 day')),
$price = 100,
$currency = 'RUB',
$calculator = Price::CALCULATOR_TYPE_PERSON
);
$this->expectExceptionMessage('Price already exists.');
$discipline->addPrice(
$priceId = PriceId::next(),
$date = new Date($currentDate, $currentDate->modify('+1 day')),
$price = 120,
$currency = 'RUB',
$calculator = Price::CALCULATOR_TYPE_REGISTRATION
);
}
__main__
и теперь определяет)) Спасибо большое!) Вообще не знал, что так нужно прописывать namespace. Где это написано? Читал не видел.проблема в неймспесах, они изменились :facepalm:
А мероприятие организует оргкомитет, у которого есть свой собственный ID, и без разницы, организует он 1 ивент или 100
email и ИИН нужны не для мероприятий, а для участников мероприятия. А иметь мероприятия где каждый участник уникален и не посещал прошлые/не станет посещать будущие, это бред.
что-то я не до кона понял зачем ваш gourp_id, вы хотите сделать 2 мероприятия, и что-бы пользователи одновременно регались на оба?
В эти выходные мероприятие Буратино с ID = 1, в следующие мероприятие Буратино с ID = 2. Что-бы посчитать уникальных у участников должен быть уникальный идентификатор, (не ID, так как это идентификатор внутри таблицы а не в целом) например email или ИИН. И через него смотрите кто регался на 1, но не на 2ой или наоборот.
Events = [
1 => [
'id' => UUID 1,
'group_id' => '2',
'name' => 'Всероссийский фестиваль Искусств «Буратино»',
'date' => '10.09.2019-12.10.2019'
],
2 => [
'id' => UUID 2,
'group_id' => '3',
'name' => 'Всероссийский фестиваль Искусств «Буратино»',
'date' => '22.09.2019-24.10.2019'
],
3 => [
'id' => UUID 3,
'group_id' => '3',
'name' => 'Всероссийский фестиваль Искусств «Буратино»',
'date' => '10.09.2020-12.10.2020'
]
]