ИнфоАптека ®

Автоматизация аптек и аптечных сетей

Инструменты пользователя

Инструменты сайта


user:vmsirenko:остатки_срок_годности_которых_меньше_расчетной_даты_окончания_продаж

Остатки, срок годности которых меньше расчетной даты окончания продаж

Зная окончание срока годности и скорость продаж товара, можно примерно рассчитать - закончится ли товар до окончания срока годности или нет. В товарных запасах нет скоростей продаж, зато они есть в ассортиментном плане. Но ассортиментный план строится в группах аналогов, поэтому в запросе мне пришлось связать таблицу запасы и ассортиментный план два раза, для товаров и для групп аналогов. Так же введено ограничение тех запасов, срок годности которых не превышает одного года. Здесь важно понимать, что запрос выводится только по тем товарам, скорость продаж у которых известна.

SQL запрос

SELECT
  st.iid,
  dep.dep_name,
  med.med_name,
  st.valid_date,
  (st.qtty+0.0000)/st.divisor AS float_qtty,
  st.sallsum,
  COALESCE(ass_m.speed, ass_g.speed) AS speed,
  CAST((COALESCE(ass_m.speed, ass_g.speed)/30)*(st.qtty/st.divisor) AS INTEGER) AS days_qspeed,
  st.valid_date-CURRENT_DATE AS days_vdate,
  CAST((COALESCE(ass_m.speed, ass_g.speed)/30)*(st.qtty/st.divisor)-(st.valid_date-CURRENT_DATE) AS INTEGER) AS days_dif
FROM stock_v st
INNER JOIN medicine med ON med.med_id=st.med_id
INNER JOIN department dep ON dep.dep_id=st.dep_id
LEFT JOIN depgroup dg ON dg.dep_id=st.dep_id
LEFT JOIN assort ass_m ON dg.dgroup_id=ass_m.dgroup_id AND ass_m.med_id=med.med_id
LEFT JOIN assort ass_g ON dg.dgroup_id=ass_g.dgroup_id AND ass_g.med_id=med.analog_id
WHERE st.valid_date IS NOT NULL
  AND st.valid_date<dateadd(YEAR, 1, CURRENT_TIMESTAMP)
  AND (ass_m.speed IS NOT NULL OR ass_g.speed IS NOT NULL)
  AND st.valid_date-current_date<(COALESCE(ass_m.speed, ass_g.speed)/30)*(st.qtty/st.divisor)
ORDER BY 4

В результате работы запроса, в основном вывелись записи с пересортицей в партиях. Пересортица в партиях возникает зачастую при списании по чеку нескольких штук товаров одной партии и фактической отдачи покупателю товаров из разных партий.

Только авторизованные участники могут оставлять комментарии.
user/vmsirenko/остатки_срок_годности_которых_меньше_расчетной_даты_окончания_продаж.txt · Последние изменения: 2018/02/22 10:35 — Владимир Сиренко