Files
public/mklab_forecast_mrp/README.md

97 lines
6.6 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Номенклатурный производственный план на основе прогнозов (mklab_forecast_mrp)
---
## Описание
Модуль автоматизирует цикл планирования производства на основе анализа истории продаж:
- **Прогнозирование спроса** — анализирует заказы продаж за последние 12 месяцев с учётом дня недели и месяца года (сезонность). Нормализует исторические данные по прошедшим акциям и применяет ожидаемый рост, если на прогнозируемую дату запланирована маркетинговая акция.
- **Планирование производства** — по готовому прогнозу одним действием создаёт заказы на производство (`mrp.production`) для всех позиций.
- **Автоподбор ведомости материалов** — для каждого продукта автоматически находит спецификацию (BOM), для которой все компоненты есть на складе в нужном количестве.
- **Маркетинговые акции** — ведёт реестр акций с датами отгрузки и продаж на полке, привязывает к акции продукты (со скидками и ожидаемым ростом) и контрагентов.
- **Анализ влияния скидок** — мастер-форма для расчёта фактического роста продаж при заданной паре скидок (наша скидка + скидка на полке) на основе реальной истории заказов.
---
## Установка
### Требования
- Odoo 19.0
- PostgreSQL 16+
- Python 3.10+
### Ручная установка
1. Скопировать папку `mklab_forecast_mrp` в директорию `addons` вашего Odoo.
2. В `odoo.conf` добавить путь к папке в `addons_path`.
3. Перезапустить Odoo.
4. Настройки → Приложения → убрать фильтр "Приложения" → найти **mklab_forecast_mrp** → Установить.
---
## Как пользоваться
После установки в главном меню появится раздел **План** с тремя подразделами.
### Стимулирующие мероприятия
Перед работой с прогнозами заведите акции.
**План → Стимулирующие мероприятия → Мероприятия → Создать**
| Поле | Описание |
|---|---|
| Дата начала/окончания отгрузок | Период, когда товар отгружается по акции |
| Дата начала/окончания продаж на полке | Период продаж у покупателя |
| Продукты | Список товаров с размером скидки и ожидаемым ростом продаж (%) |
| Контрагенты | Если заполнено — акция действует только для указанных контрагентов |
---
### Прогнозирование и план производства
**План → Планирование → Прогнозы → Создать**
**Шаг 1.** Указать дату прогноза и при необходимости ограничить список контрагентов.
**Шаг 2.** Нажать **Заполнить строки** — автоматически добавятся все продукты с флагом "Участвует в прогнозах" (настраивается на карточке продукта).
**Шаг 3.** Для каждой строки доступны действия:
- **Прогноз** — рассчитать прогнозное количество на основе истории продаж
- **Факт** — подтянуть фактические данные по заказам и отгрузкам за эту дату
- **Подобрать ВМ** — найти ведомость материалов, для которой все компоненты есть на складе
**Шаг 4.** Включить флаг **Отправить на расчёт** — фоновый cron пересчитает строки автоматически (по 5 штук за итерацию).
**Шаг 5.** Нажать **Создать заказы на производство** — для всех строк с заполненным прогнозом и ведомостью материалов будут созданы заказы на производство.
**Шаг 6.** Нажать **Утвердить** для фиксации прогноза.
> Поле **Ожидаемый рост при акции, %** — применяется как коэффициент роста, если на прогнозируемую дату найдена акция, но продукт не указан в её составе явно.
---
### Анализ влияния скидок
**План → Анализ данных → Мастер анализа данных**
Позволяет оценить, насколько реально выросли продажи при заданной паре скидок в указанный период.
1. Указать период анализа и точность сопоставления скидок (±%).
2. Добавить строки: продукт + наша скидка + скидка на полке.
3. Нажать **Расчёт** — система сравнит средние продажи в дни акции и без акции и выведет процент роста.
---
### Настройка продуктов
На карточке продукта (Инвентарь → Продукты) доступны дополнительные поля:
- **Участвует в прогнозах** — продукт будет включён при автозаполнении строк прогноза
На карточке ведомости материалов:
- **Виртуальная** — пометить BOM как сгенерированный автоматически (такие BOM пропускаются при автоподборе)