Перейти к содержанию

Ibp1

Изменена логика формирования плана продаж

Описание

  • Изменен процесс формирования плана продаж. История продаж и План продаж разделены на параметры: demand__sellin_history_weekly, demand__sellin_history_drivers_weekly, demand__sellin_plan, demand_sellin_plan_drivers.

  • При внесении изменений в demand__sellin_history_drivers_weekly триггер агрегирует и переносит данные в параметр demand__sellin_history_weekly.

  • При внесении изменений в demand__sellin_plan_drivers триггер агрегирует и переносит данные в параметр demand__sellin_plan.

  • demand__sellin_plan, demand_sellin_plan_drivers заданы по тех неделям.

Установка

  • Добавить переменную MODULE_IBP=ibp1 в .env файл

  • Добавить тех недели в календарь:

python manage.py generatecalendar 2021-01-01 2027-12-31 true
- Выполнить команды:

python manage.py collectscripts
python manage.py loadparameters ibp_base_dimensions ibp_base_parameters
python manage.py loaddata ibp_base_parameter_measure_scripts
python manage.py loaddata ibp_base_triggers
  • Подготовить вспомогательные параметры для тех недель:

  • Параметр working_days_calendar — создается и заполняется скриптом "Заполнить календарь рабочих дней", начало/окончание выбрать в соответствии с началом/окончанием сгенерированного ранее календаря.

  • Параметр week_weight_tech_week — заполняется на основе working_days_calendar командой:

    python manage.py fill_week_weight_tech_week --flush --year 2025 2026 2027
    

Для разработчика

  • Преобразование week -> tech_week
from planiqum.apps.ibp.scripts.plan_actions import distribute_to_tech_week

data = distribute_to_tech_week(df=plan_df, measure="fcst_eff", horizon_dim="horizon__month")
  • Преобразование tech_week -> week
from planiqum.core.parameters.libs.import_data import get_param_df

columns = {
    "product__plan_level": ["product__plan_level"],
    "client__plan_level": ["client__plan_level"],
    "horizon__tech_week": ["horizon__week"],
}
get_param_df(..., columns=columns)
  • Импорт данных в детальные параметры по драйверам
from planiqum.core.parameters.libs.import_data import import_data

import_data(..., execute_triggers=True)

Изменен расчет прогноза - добавлена опция подготовки истории

Описание

  • В скрипт build_forecast_full добавлена опция prepare_history_for_forecast(True), контролирующая подготовку истории для расчета прогноза.

  • При расчете с клиента шаг подготовки истории выполняется.

  • В цикле планирования для увеличения скорости расчета подготовка истории для прогноза делается заранее отдельным скриптом prepare_history_for_forecast.

  • Скрипт подготовки истории для прогноза - planiqum.apps.ibp__prepare_history_for_forecast:

  • Удаляет данные из параметра "Первичные продажи - история для прогноза (недели)"
  • Агрегирует историю продаж до уровня прогнозирования