...
Форма Корректировка прогноза
Описание корректировки прогноза
Форма Корректировка прогноза
http://localhost:3000/forecast_adjustments
Основная таблица этой формы FCST_ADJUSTMENTS.
Таблица интерфейсная, в [after_forecasting_batch_query] и [forecast_adjustment_batch] данные перегружаются в таблицу FCST_SKU.
Фронтовой функционал собран в:
public\javascripts\manual_forecast\main.js
public\javascripts\manual_forecast\templates.js
Серверная часть в:
classes\controllers\manualForecast.js
manual_forecast_table_data
Основной запрос страницы forecast_adjustments. Предназначен для извлечения данных отображаемых таблицей. Назначен на /api/manual_fcst/data и /api/manual_fcst/data_by_filters.
Первый используется при первом открытии страницы и дополнительно извлекает список магазинов, групп, SKU и т.д., а второй для обновления таблицы при применении фильтров.
Фильтры SKU, магазин и неделя.
Code Block | ||
---|---|---|
| ||
SELECT
WEEK,
SKU_ID,
STORE_ID,
'DEFAULT USER' MANAGER,
SUBSTRING(CONVERT(VARCHAR, UPDATED, 120), 1, 16) UPDATED,
COEF,
FCST
FROM FCST_ADJUSTMENTS
WHERE WEEK = :week
and (:sku = -999 or SKU_ID = :sku)
and (:store = -999 or STORE_ID = :store)
ORDER BY UPDATED DESC; |
manual_forecast_create
Запрос сохранения данных в FCST_ADJUSTMENTS. Привязан к /api/manual_fcst/create-new-skustore.
Используется при редактировании данных из формы.
Code Block | ||
---|---|---|
| ||
INSERT INTO FCST_ADJUSTMENTS (WEEK, SKU_ID, STORE_ID, COEF, UPDATED_BY, UPDATED)
VALUES (:week, :sku, :store, :coef, :user, GETDATE()) |
manual_forecast_delete
Запрос удаления данных из FCST_ADJUSTMENTS. Привязан к /api/manual_fcst/delete_row, а также выполняется при редактировании записи в /api/manual_fcst/create-new-skustore, /api/manual_fcst/create-new-skustore__bulk и /api/manual_fcst/create-new-promo__bulk.
Первый назначен на удаление записи из формы.
Code Block | ||
---|---|---|
| ||
DELETE FROM FCST_ADJUSTMENTS
WHERE WEEK = :week AND SKU_ID = :sku AND STORE_ID = :store; |
manual_forecast_update
Запрос изменения данных в FCST_ADJUSTMENTS. Привязан к /api/manual_fcst/update-skustore, а также к /api/manual_fcst/import_skustores_to_table.
Первый используется при редактировании данных из формы, а второй при импорте из csv.
Code Block | ||
---|---|---|
| ||
MERGE INTO FCST_ADJUSTMENTS dest
USING (SELECT :week WEEK, :sku SKU_ID, :store STORE_ID) src
ON (dest.WEEK = src.WEEK AND dest.SKU_ID = src.SKU_ID AND dest.STORE_ID = src.STORE_ID)
WHEN MATCHED THEN UPDATE SET UPDATED = GETDATE(), UPDATED_BY = :user, COEF = :coef, FCST = :fcst
WHEN NOT MATCHED THEN
INSERT(WEEK, SKU_ID, STORE_ID, COEF, FCST, UPDATED_BY, UPDATED)
VALUES(src.WEEK, src.SKU_ID, src.STORE_ID, :coef, :fcst, :user, GETDATE()); |
manual_forecast_sales_sku_day
Используется для извлечения объемов продаж из таблицы SALES_SKU_DAY, при добавлении записи в /api/manual_fcst/create-new-skustore__bulk.
Code Block | ||
---|---|---|
| ||
SELECT STORE_ID, sum(sales_volume)/sum(CASE WHEN sales_volume > 0 THEN 0.5 ELSE 1 END) SALES_VOLUME
FROM SALES_SKU_DAY
WHERE SKU_ID = :sku
and (stock_volume > 0 or sales_volume > 0)
AND sdate BETWEEN ':dateFrom' AND ':dateTo' AND store_id [stores]
GROUP BY STORE_ID;
|
manual_forecast_sales_sku_day_group
Используется для извлечения объемов продаж из таблицы SALES_SKU_DAY, при добавлении записи в /api/manual_fcst/create-new-skustore__bulk.
Code Block | ||
---|---|---|
| ||
SELECT s.STORE_ID, sum(s.sales_volume) SALES_VOLUME
FROM SALES_SKU_DAY s join PRODUCTS p on p.SKU_ID=s.SKU_ID
WHERE p.GROUP_ID = :group
and (s.stock_volume > 0 or s.sales_volume > 0)
AND s.sdate BETWEEN ':dateFrom' AND ':dateTo' AND s.store_id [stores]
GROUP BY s.STORE_ID; |
fcst_adjustments_promo
Извлекает список промо, актуальных для заданной недели, через startDate и endDate. Выведен в /api/manual_fcst/get_promo.
Используется для наполнения выпадающего списка промо.
Code Block | ||
---|---|---|
| ||
SELECT ID, NAME FROM PROMO_HEADER WHERE
(start_date BETWEEN ':startDate'AND ':endDate') OR
(end_date BETWEEN ':startDate' AND ':endDate') OR
(start_date <= ':startDate' AND end_date >= ':endDate')
|
fcst_adjustments_promo_stores_by_id
Извлекает список магазинов привязанных к заданному промо. Выведен в /manual_fcst/get_promo_sku-stores.
Используется для наполнения списка выбора магазина в модальном окне заведения коэффициента.
Code Block | ||
---|---|---|
| ||
select STORE_ID as ID, (select STORE_NAME from STORES where STORES.STORE_ID = ps.STORE_ID) as NAME
from PROMO_STORES as ps
where ID = :promoId |
fcst_adjustments_promo_skus_by_id
Извлекает список SKU привязанных к заданному промо. Выведен в /manual_fcst/get_promo_sku-stores.
Используется для наполнения списка выбора SKU в модальном окне заведения коэффициента.
Code Block | ||
---|---|---|
| ||
SELECT SKU_ID as ID, (SELECT ARTICLE_NAME FROM PRODUCTS WHERE PRODUCTS.SKU_ID = ps.SKU_ID) as NAME
from PROMO_SKU as ps
where ID = :promoId |
ss_adjustments_table_get_skus
...
ss_adjustments_skustore_create
manual_forecast_table_data
manual_forecast_create
manual_forecast_delete
manual_forecast_update
manual_forecast_sales_sku_day
manual_forecast_sales_sku_day_group
fcst_adjustments_promo
fcst_adjustments_promo_stores_by_id
fcst_adjustments_promo_skus_by_id
Форма Просмотр прогнозов
fcst_view_sku_by_all_regions
...