Форум OlegON > Программы и оборудование для автоматизации торговли > Системы автоматизации торговли > Супермаг Плюс (Супермаг 2000)

запрос для детализации себестоимости : Супермаг Плюс (Супермаг 2000)

19.04.2024 9:14


18.02.2016 11:02
akonev
 
В очередной раз коммерческому понадобилось разобраться почему просела рентабельность по конкретной позиции в определенном магазине.

Пришлось подправить запрос, который они обычно гоняли для этого в Query Reporter. Пусть тут полежит :)

!!! Сейчас всё это есть в бизнес-анализе в модели "Товародвижение FIFO".
Так сложилось исторически, что часть отчетов у нас снаружи супермага живут и понемногу мутируют под текущие потребности.

Код:
-- детализация себестоимости
select lf.name as магазин, ff.article as артикул
       ,oo.typename as тип_расхода
       ,ff.saleid as расход, ff.saledate as дата_расхода
       ,ff.salesum as сумма_расхода_полная
       ,ff.quantity as количество_расхода
       ,round(ff.salesum/ff.saleq,4) as цена_расхода
       ,round(ff.quantity*ff.salesum/ff.saleq,4) as сумма_расхода
       ,oi.typename as тип_прихода
       ,(select op.name from saoperation op, smdocuments od where od.doctype=ff.incometype and od.id=ff.incomeid and op.id = od.opcode) as операция
--       ,(select nvl(uo.title,' ') from smuserop uo, smdocuments ud where ud.doctype=ff.incometype and ud.id=ff.incomeid and uo.id = ud.userop(+)) as польз_операция -- пользовательские операции стали использовать мало
       ,ff.incomeid as приход, ff.incomedate as дата_прихода
       ,round(ff.incomesum/ff.incomeq,4) as цена_сс
       ,round(ff.quantity*ff.incomesum/ff.incomeq,4) as сумма_сс
--       , round(ff.incomenovat/ff.incomeq,4) as цена_СС_без_НДС, ff.salenovat as сумма_без_ндс -- цена и сумма себестоимости без НДС пока оказались не нужны
       ,decode(ff.primecostforced, 0, ' ', 'Неустановленная СС') as неустановленная_сс
 from ffmaprep ff -- в ffmaprep только открытый период. заменить на fvmaprep, если нужны и закрытые периоды тоже
      , ssobjecttypes oi, ssobjecttypes oo, smstorelocations lf
where oi.objtype=ff.incometype
  and oo.objtype=ff.saletype
  and lf.id=ff.salelocationfrom
  and ff.saletype in ('CS','WO') -- нам были интересны только расходные накладные и кассовые документы. можно добавить другие типы документов или совсем убрать строку.
  and ff.salelocationfrom in (select l.id from smstorelocations l where upper(name) like upper('%&МЕСТО_ХРАНЕНИЯ%')) -- тут по запросу напишем часть названия магазина, как оно в супермаге
  and ff.article in ('&АРТИКУЛ') -- тут по запросу укажем артикул ТОЧНО (!!!) как в супермаге
--  and ff.saledate>=to_date('&Дата_расхода_начиная_с','DD.MM.YYYY') -- тут можно добавить фильтр по дате
order by ff.saledate asc
Часовой пояс GMT +3, время: 09:14.

Форум на базе vBulletin®
Copyright © Jelsoft Enterprises Ltd.
В случае заимствования информации гипертекстовая индексируемая ссылка на Форум обязательна.