В версии Logus 2.4 для оптимизации работы существующих статистических отчётов разработано Хранилище данных.
Хранилище данных – отдельная структура, где данные представлены в удобном для построения отчётов виде. Хранилище позволяет оптимизировать скорость построения отчётов, их разработку и поддержку.
Планируется, что в сетевых объектах при помощи хранилища можно строить отчёты по всем/выбранным/только одному объекту сети (сейчас в сетевых объектах можно строить только по одному). Нужно продумать как вообще можно(?) видеть наши отчёты в "суммарном" виде.
| Данные в базу хранилища выгружаются из основной базы данных Logus по расписанию (обычно один раз в сутки), то есть в базе данных хранилища находятся данные без учёта изменений после последней выгрузки в хранилище. Таким образом, данные в базе хранилища отстают от основной базы на одни сутки. |
Одни и те же показатели во всех статистических отчетах централизации имеют одни и те же значения, поскольку формируются они из одних и тех же данных хранилища. Таким образом обеспечивается сходимость всех показателей в разных отчетах.
На данный момент на базе хранилища реализованы следующие статистические отчёты:
В рамках работы над отчётами хранилища логика расчётов была значительно переработана:
В новых статистических отчетах появилась возможность формировать их с разным Методом подсчета загрузки комнат: по номерам, по местам, смешанный.
| Метод подсчета загрузки | Описание |
|---|---|
По комнатам/койкам (смешанный) | Метод аналогичен тому, что используется в обычных статистических отчетах. При таком методе расчета для многокомпонентов мы берем количество основных мест, для всех остальных типов номеров 1. |
По комнатам | Тут подсчет ведется на уровне номеров. Поэтому при группировке по типу номера в отчете даже не отображаются строки типов номеров-компонентов. Их атрибуты эскалируются до родительского многокомпонентного типа. Т.е., если бронь была сделана на многокомпонентный тип номера DBL - в колонке, например, Комнаты/Прож она даст 1. Если же бронь была сделана на компонентный тип номера DBL.K, то она даст 1 в родительском многокомпонентном типе DBL. Если будут сделаны две брони на компоненты одного многокомпонентного номера, то они дадут 1 в родительском типе, поскольку они обе в одном и том же номере. |
По койкам | При таком методе подсчета загрузки учитывается количество основных мест по всем типам номеров, кроме компонентов, для них берем 1. |
Изменения коснулись и логики некоторых отчетов
№ | Отчёт | Изменения / Отличия |
1 | Факт и прогноз загрузки |
|
2 | Отчет менеджера |
|
3 | Загрузка за год | Отчёт Загрузка за год строится в разрезе месяцев за завершенные месяцы. |
4 | Загрузка за месяц | Отчёт Загрузка за месяц строится в разрезе дней за завершенные дни. |
5 | Доходы за период |
|
Благодаря хранилищу отчетов добавлены новые варианты группировки, а также второй уровень группировки в некоторые отчеты. Теперь данные в статистических отчетах возможно группировать (думаю, следует указать конкретные отчёты, иначе пользователь может подумать, что реально во всех отчетах уже можно):
На примере отчета Факт и прогноз загрузки можно рассмотреть как будут выведены данные в блоке КОМНАТЫ: Налич, Загр %, К прод при различных вариантах двух видов группировки.
| Группировка 2-го уровня | |||||||
| Отсутствует | По дате | По типу комнаты | По категории комнат | Тот же вариант, что и в Группировке 1-го уровня (кроме По дате, По типу комнаты, По категории комнаты) | Остальные варианты | ||
| Группировка 1-го уровня | По дате | Налич - есть Загр % - по строке К прод - есть | Налич - есть Загр % - по строке К прод - есть | Налич - есть Загр % - по строке К прод - есть Налич группа - есть Загр группа - по строке К прод группа - есть | Налич - есть Загр % - по строке К прод - есть Налич группа - есть Загр группа - по строке К прод группа - есть | Налич - нет Загр % - относительно группы К прод - нет Налич группа - есть Загр группа - по строке К прод группа - есть | |
| По типу комнаты | Налич - есть Загр % - по строке К прод - есть | Налич - есть Загр % - по строке К прод - есть Налич группа - есть Загр группа - по строке К прод группа - есть | Налич - есть Загр % - по строке К прод - есть | Налич - есть Загр % - по строке К прод - есть Налич группа - есть Загр группа - по строке К прод группа - есть | Налич - нет Загр % - относительно группы К прод - нет Налич группа - есть Загр группа - по строке К прод группа - есть | ||
| По категории комнат | Налич - есть Загр % - по строке К прод - есть | Налич - есть Загр % - по строке К прод - есть Налич группа - есть Загр группа - по строке К прод группа - есть | Налич - есть Загр % - по строке К прод - есть Налич группа - есть Загр группа - по строке К прод группа - есть | Налич - есть Загр % - по строке К прод - есть | Налич - нет Загр % - относительно группы К прод - нет Налич группа - есть Загр группа - по строке К прод группа - есть | ||
| Остальные варианты | Налич - нет Загр % - относительно Итого К прод - нет | Налич - нет Загр % - относительно Итого К прод - нет Налич группа - нет Загр группа - относительно Итого К прод группа - нет | Налич - нет Загр % - относительно Итого К прод - нет Налич группа - нет Загр группа - относительно Итого К прод группа - нет | Налич - нет Загр % - относительно Итого К прод - нет Налич группа - нет Загр группа - относительно Итого К прод группа - нет | Налич - нет Загр % - относительно Итого К прод - нет | Налич - нет Загр % - относительно Итого К прод - нет Налич группа - нет Загр группа - относительно Итого К прод группа - нет | |
Так например видно, что при группировке 1-го уровня по дате и группировке 2-го уровня по типу комнаты данные в блоке Комнаты/Койки будут рассчитаны следующие данные:
Наличие - общее и по строке ???
Загр % - по строке
К прод - количество номеров к продаже
Налич группа - есть
Загр группа - по строке
К прод группа - есть

При расчете показателей групповых броней учитываются следующие нюансы:

2. Если продолжительность контракта выходит за время стандартное выезда объекта, в бронях этого контракта получаем таймлайн позднего выезда и в стоимость контракта включается соответственно стоимость этого таймлайна. Но при расчете стоимости проживания за день по этому контракту в силу сложности вычислений, пренебрегаем тем, что существует такой таймлайн позднего выезда и просто делим сумму по контракту на количество количество дней действия контракта. Из-за этого можем получить расхождение в стоимости дня проживания по контракту и стоимости дня проживания по брони.

3. В отчетах хранилища при наступлении срока высвобождения блоков, такая групповая бронь вообще не учитывается, поскольку по ней все показатели должны свестись к 0.
Например, по контракту 20 номеров, было создано 10 броней. При наступлении срока высвобождения по этой групповой брони все ее незанятые блоки высвобождаются, остаток по групповой брони становится = 0.