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

Создание отчета для вывода суммы на остаток с приходных накладных : Супермаг Плюс (Супермаг 2000)

28.03.2024 22:09


27.02.2019 18:15
OnixO
 
Добрый день.
Появилась необходимость создать отчет для вывода суммы на остаток с приходных накладных. За основу взята таблица FFMAPREP, как наиболее подходящая.
Собственно описание задачи:
Нужно отобрать все документы у которых разница значения WI (приход) и сумма значений WO (расход) + CS (продажи) не равна 0, т.е. еще остался товар от данного прихода

WI - (WO+CS)) или WI-WO-CS != 0 (не равна нулю) .
Взять остаток из каждого документа, отобранного таким образом и перемножить на цену товара (расчитывается путем деления суммы приходной накладной на кол-во), например:
Есть док 1 и док 2 в обоих остаток 5 шт и цена по 20$ (приход 100шт сумма 2000$)- нам нужно вывести в бизнес-анализе таблицу вида -

док1 цена:20 кол-во 5 сумма 100
док2 цена:20 кол-во 5 сумма 100

Как вводные данные используем артикул, номенклатуру, группу товаров и .д.
27.02.2019 20:55
OlegON
 
Что не получается-то?
28.02.2019 09:56
OnixO
 
не получается построить логику запросов
28.02.2019 10:01
Mtirt
 
Какой запрос удалось построить сейчас?
28.02.2019 10:37
OnixO
 
select ((select SALEQ from FFMAPREP WHERE SALETYPE = 'WI' AND INCOMEID = '40000007905' AND ARTICLE = '000005')
-(select sum(SALEQ) from FFMAPREP WHERE SALETYPE = 'WO' AND INCOMEID = '40000007905' AND ARTICLE = '000005')
-(select SALEQ from FFMAPREP WHERE SALETYPE = 'CS' AND INCOMEID = '40000007905' AND ARTICLE = '000005'))
* ( (select SALESUM from FFMAPREP WHERE SALETYPE = 'WI' AND INCOMEID = '40000007905' AND ARTICLE = '000005' )
/ (select SALEQ from FFMAPREP WHERE SALETYPE = 'WI' AND INCOMEID = '40000007905' AND ARTICLE = '000005' ) ) AS "SUM" from dual;

этот запрос делает расчет суммы (остаток умножает на цену 1 ед товара), но только по одному документу
Нужно вместо 40000007905 задать какую то переменную IncomeId в которую будут передаваться данные с запроса вида

select INCOMEID from FFMAPREP where article = '000005' and SALETYPE = 'WI'.

но такой запрос возвращает множество значений и вот тут самая проблема, у меня с SQL(PL/SQL) совсем плохо, точнее никак (я больше по JS) и я не знаю как обрабатывать результат выборки - по логике нужно множество полученных значений запихнуть в массив, циклично перебрать, получить множество переменных IncomeId[i] и каждую передать в пред запрос, получив несколько строк в которых будет остаток и сумма по всем отобранным документам
28.02.2019 14:08
vdm
 
Вместо ffmaprep лучше использовать fvmaprep.
Сильно в условия не вникал, кучу условий еще соблюсти надо бы - возвраты например.
Но на базе этого можно двигаться дальше.
SQL код:
select inc.articleinc.docid in_docinc.qty in_qtyinc.sum in_sumNVL(outc.qty0out_qtyNVL(outc.sum0out_sum,
      (
inc.qty-NVL(outc.qty0)) ost_qty
from
(   select m.articlem.saleid docidsum(m.saleqqtysum(m.salesumsum 
      from FVMAPREP m
     where m
.article '512345' and m.saletype 'WI' and m.saleop=0
     group by m
.articlem.saleid
inc,
(   
select m.articlem.incomeid docidsum(m.quantityqtysum(decode(m.SaleQ00m.SaleSum*m.Quantity/m.SaleQ)) sum 
      from FVMAPREP m
     where article 
'512345' and saletype in ('WO','CS') and m.saleop=1
     group by m
.articlem.incomeid
outc
where inc
.article=outc.article(+) and inc.docid=outc.docid(+)
  and (
inc.qty-NVL(outc.qty,0))>0

28.02.2019 17:15
OnixO
 
Большое спасибо. Все то что нужно, только вопрос - Как результат этого запроса полностью вывести в бизнес анализе?
04.03.2019 04:05
АндрейСупермаг
 
Цитата:
OnixO Большое спасибо. Все то что нужно, только вопрос - Как результат этого запроса полностью вывести в бизнес анализе?
Хороший вопрос. Я краем уха слышал что в бизнес анализе можно использовать sql запросы а вот как это работает не понял. Может у кого то есть пример простенький?
04.03.2019 04:31
АндрейСупермаг
 
Есть документация на FTP HELP/SM+/Бизнес анализ
04.03.2019 07:14
Mtirt
 
В бизнес-анализе есть куб "Товародвижение FIFO".
На его основе и создай задачу, которая тебе нужна.
И не понадобятся дополнительные запросы.
Часовой пояс GMT +3, время: 22:09.

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