Разбираюсь сейчас с тарифными опциями. Для примера сделал две тарифные опции (1 и 2) продолжительностью 1 месяц с двумя режимами активации (с текущего месяца и со следующего месяца), при этом опции не совместимы друг с другом. Вешаю первую опцию с режимом со следующего и на вкладке "Текущие" вижу эту опцию со следующими параметрами:
Код:
Время активации: 01.12.2012 00:00:00
Время окончания: 01.01.2013 00:00:00
Всё правильно. Теперь хочу повесить вторую опцию с режимом активации "с текущего". По логике, это возможно, так как периоды не должны пересекаться, но биллинг не даёт этого сделать и говорит лишь, что опции не совместимы. Это вообще нормально?
Далее убираю галки у опций в разделе "Не совместимы с" и пробую повесить вторую опцию - всё проходит нормально, и к текущим опциям добавляется опция с параметрами:
Код:
Время активации: 01.11.2012 00:00:00
Время окончания: 01.12.2012 00:00:00
По факту диапазоны опций не пересекаются, поэтому на совместимость проверять их смыла нет.
Для дальнейших изысканий написал простенький скрипт, который получает текущие опции договора. Примерное содержание и результат:
Код:
ContractTariffOptionDao d = new ContractTariffOptionDao(con);
d.list(12, '2012-10-02'); // => Опция 1, Опция 2
d.list(12, '2013-01-02'); // => пусто
Отсюда делаю вывод, что у активных тарифных опций бесконечно маленькая левая граница, несмотря на то, что левая граница явно задана. Так и должно быть?