• Php DateTimeImmulable как проверить даты в диапазоне?

    pro-dev
    @pro-dev Автор вопроса
    Denis, А вот так заработало)) Голову сломал блин)) Интересно только такой вариант есть?) Я думал может есть в interval что-то связанное)) Ну это ладно. Всё равно спасибо) Чуть позже отмечу решением!
  • Php DateTimeImmulable как проверить даты в диапазоне?

    pro-dev
    @pro-dev Автор вопроса
    Denis,
    $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
            );


    здесь он проходит тест. Хотя не должен ошибку выдавать. другая дата
  • Php DateTimeImmulable как проверить даты в диапазоне?

    pro-dev
    @pro-dev Автор вопроса
    Denis,
    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
            );
        }
  • Php DateTimeImmulable как проверить даты в диапазоне?

    pro-dev
    @pro-dev Автор вопроса
    2019-11-01 - 2019-11-02
    2019-11-03- 2019-11-05
    2019-11-06 - 2019-11-08

    Добавляем в массив
    2019-11-08 - 2019-11-10

    Должен ругнуться. У меня тесты что-то не проходят.
  • Php DateTimeImmulable как проверить даты в диапазоне?

    pro-dev
    @pro-dev Автор вопроса
    Denis, А если две даты в массиве и две даты добавляются в массив?
  • Php DateTimeImmulable как проверить даты в диапазоне?

    pro-dev
    @pro-dev Автор вопроса
    Нет. Так диапазон дат не проверить. Это можно проверить если обеты и данные в них равны. А входит ли диапазон или нет так не проверить.
  • Как использовать VueJS и Symfony?

    pro-dev
    @pro-dev Автор вопроса
    Максим Федоров, То что нужен API понятно. Я думал, что есть какие-то нюансы с работой в симфони. Например, тут есть полноценный шаблонизатор твиг. Который может быть использован в VUE. Но видимо это были мои догадки)

    Остальное в принципе понял) Просто видел отрывки разного кода, что кто-то vue размещает в assets. Так и не понял почему кто-то его поместил туда, когда это полноценное приложение. Вот и возникли вопросы)
  • Cannot find declaration to go?

    pro-dev
    @pro-dev Автор вопроса
    BoShurik, заглядывал. Даже пытался там вписать namespace "app", но в итоге получалось @App/base.htm.twig, а вот сейчас посмотреть у вас на скриншоте, что указывать там нужно __main__ и теперь определяет)) Спасибо большое!) Вообще не знал, что так нужно прописывать namespace. Где это написано? Читал не видел.

    Можете ещё подсказать что нужно прописывать тут для вложенной папки manager
    5dba07b0015b7415116053.png
  • Cannot find declaration to go?

    pro-dev
    @pro-dev Автор вопроса
    Владислав Лысков,
    проблема в неймспесах, они изменились :facepalm:

    Скорее всего именно это. А как их изменить?
  • Cannot find declaration to go?

    pro-dev
    @pro-dev Автор вопроса
    Игорь, Twig вообще работает. Но проблема именно в том, что если проект весь переместить в подпапку: symfony/manager, то твиг перестает находить файлы. Если перенести обратно symfony/ то твиг работает прекрасно! Вот не пойму что это такое
  • Cannot find declaration to go?

    pro-dev
    @pro-dev Автор вопроса
    Игорь, да. Конечно. Проблема именно в том, что перемещаю проект в папку manager и все. Твиг перестаёт видеть. А в корне все работает.
  • Cannot find declaration to go?

    pro-dev
    @pro-dev Автор вопроса
    Игорь, не помогло.
  • Cannot find declaration to go?

    pro-dev
    @pro-dev Автор вопроса
    если переместить обратно в корень - находит. А в manager директории не работает
  • Cannot find declaration to go?

    pro-dev
    @pro-dev Автор вопроса
    Не видит роуты и виды в твиге
  • Cannot find declaration to go?

    pro-dev
    @pro-dev Автор вопроса
    Игорь, с этого начал) два раза делал. Не помогло. Проблема в директории скорее всего
  • Cannot find declaration to go?

    pro-dev
    @pro-dev Автор вопроса
    Максим Федоров, я знаю про эти Настройки. Все уже там потыкал. Может быть я путь не правильно указываю? Какой тут надо путь указать, чтобы в директории manager лежало? Я только только создать новый алиас. И это работало. Но это не то... было @app/base
  • Как связывать данные мероприятий?

    pro-dev
    @pro-dev Автор вопроса
    А мероприятие организует оргкомитет, у которого есть свой собственный ID, и без разницы, организует он 1 ивент или 100


    Оргкомитет тоже сделается, только в оргкомитет входит организатор, ведущий, счётчик, регистрация и так далее. Поэтому для них будет отдельная таблица.

    email и ИИН нужны не для мероприятий, а для участников мероприятия. А иметь мероприятия где каждый участник уникален и не посещал прошлые/не станет посещать будущие, это бред.


    Я об этом не говорил. Как раз таки это не так. Вы просто не поняли) Говорю лишь о том, что нельзя по email и ИИН посчитать количество участников в разные дни мероприятия ID = 1 и ID = 2. Так как по этим данным email и ИИН организатор может организовать другое мероприятие с ID = 3, поэтому и предложил GROUP_ID
  • Как связывать данные мероприятий?

    pro-dev
    @pro-dev Автор вопроса
    что-то я не до кона понял зачем ваш gourp_id, вы хотите сделать 2 мероприятия, и что-бы пользователи одновременно регались на оба?


    Нет. Пользователи в любом случае могут регистрироваться в оба. gourp_id нужен для того, чтобы посчитать статистику и выводить общее количество человек, финансов ВСЕГО мероприятия.

    Объясняю. Мероприятие "Всероссийский фестиваль Искусств «Буратино»" проводится 30 октября 2019 года и 5 ноября 2019 года. Так как мероприятие идет в два разных дня, то даты проведения нельзя поставить 30 октября - 5 ноября 2019 года. Но это одно и тоже мероприятие, просто разделено на два дня. И, чтобы нам вести общую статистику мы вводим gourp_id. По этому gourp_id мы считаем сколько зарегистрировалось участников.
  • Как связывать данные мероприятий?

    pro-dev
    @pro-dev Автор вопроса
    Ordec, благодарю за столь точное разъяснение в комментариях.

    В эти выходные мероприятие Буратино с ID = 1, в следующие мероприятие Буратино с ID = 2. Что-бы посчитать уникальных у участников должен быть уникальный идентификатор, (не ID, так как это идентификатор внутри таблицы а не в целом) например email или ИИН. И через него смотрите кто регался на 1, но не на 2ой или наоборот.


    Если взять email или ИИН, то опять же это не уникально для каждого мероприятия. Организатор с такими данными может и проводить и другое мероприятие.

    Все ID у меня в формате UUID, то есть уникальны глобально. Ваш комментарий навел на одну мысль. Чтобы связывать мероприятия можно сделать GROUP ID, который автоматически генерировать для каждого мероприятия. Но если человек хочет связать одно мероприятие с другим - мы просто GROUP ID делаем для двух мероприятий один. Как такая идея? Имеет место быть в реализации? Как я понял вас это именно то, о чем вы говорили...

    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'
      ]
    ]
  • Как связывать данные мероприятий?

    pro-dev
    @pro-dev Автор вопроса
    Ordec, можно ещё делать так. Указывать ID мероприятия и ID периода.

    Получается без привязки дат могут быть: отзывы, название, комментарии, фотографии, видео. Остальное все привязано к датам.

    То есть основная проблематика это то, что нужно связать данные мероприятия, которое проходит в разные даты под одним названием. Вот как тогда эти данные связывать?