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

Добавить колонку "процент наценки" в бизнес анализе : Супермаг Плюс (Супермаг 2000)

23.04.2024 19:13


23.01.2018 13:11
m1n1mal
 
Добрый день.
Подскажите, как можно добавить установленный % наценки на товар в бизнес анализе, если используемая модель не содержит такого поля?
Отчет построен на модели "Реализация в закупочных ценах по датам"
Задача стоит в следующем, видеть реальный процент по которому был продан товар и сверять его с установленным на товаре.
23.01.2018 15:44
m1n1mal
 
Что-то у меня не выходит.
1. Создал функцию.
2. Добавил в отчет колонку с формулой "( SUPERMAG.EXTRACHARGE2({Карточка товара. Артикул},{Цена учетная места хранения. Код цены}) )"
Но при построении она у меня пустая выходит.
Может не подходит "модель" в которой у меня сам отчет построен?
23.01.2018 22:37
Starter
 
Цитата:
m1n1mal Что-то у меня не выходит.
1. Создал функцию.
2. Добавил в отчет колонку с формулой "( SUPERMAG.EXTRACHARGE2({Карточка товара. Артикул},{Цена учетная места хранения. Код цены}) )"
Так в описании функции по ссылке второй аргумент - код места хранения, а не код цены.
Попробуйте:
SUPERMAG.extracharge2({Карточка товара. Артикул},{Место хранения. Код места хранения})
24.01.2018 12:15
m1n1mal
 
В данном случае выдает ошибку "неверное число"

Код:
2018.01.24 (Wednesday) 11:15:10 1.36.0.0 sp1  Sm.Main ( NANALY )
----- Прерывание работы программы -----
сообщение: "ORA-01722: неверное число"
исключение: Sm.Core.InteropException
hResult: 80040E07h; доп. код: 1722
источник: Microsoft OLE DB Provider for Oracle

----- Причина исключения, уровень вложения 1 -----
сообщение: "begin supermag.SMARunTemplate(2163); end;"
исключение: Sm.Core.InteropException
hResult: 80004005h; доп. код: 0
источник: SmLibaryBase trace
24.01.2018 12:21
Starter
 
Есть подозрение, что выбрали формат число или деньги для этого поля.
А функция возвращает значение строку (там присутствуют скобки).
Удалите это поле задачи и создайте новое с типом строка.
24.01.2018 13:05
m1n1mal
 
Спасибо, действительно была проблема в строке. Поправил отчет построился.
Осталась одна проблема, если на товаре не установлен процент наценки, а установлен только на группу, данные в отчет не выводятся.
Пример:
24.01.2018 13:21
Starter
 
А так ?

SQL код:
supermag.extracharge2({Карточка товараАртикул},{Место храненияКод места хранения})|| '('||supermag.smgetextrachargeclass({Карточка товараАртикул},{Цена учетная места храненияКод цены})||')' 
24.01.2018 14:11
m1n1mal
 
Ничего не изменилось, добавились только новые скобки.
24.01.2018 14:16
Starter
 
Функция по ссылке с ошибками. И к тому же в теории она должна выводить в скобках значения наценки для группы только если наценка для группы отличается от инд. наценки.
Для вас лучше исправленная функция, которая возвращает всегда инд и в скобках на группу.

SQL код:
CREATE OR REPLACE 
function extracharge2  p_a in varchar2loc in integer )
    return 
varchar2
    is
        cl_name  varchar2
(100) default null;
        
cl_name2  varchar2(100) default null;
        
pt  integer(3) default null;        
    
begin
          select pricetype into pt from supermag
.smlocprices where locid loc and (bitand(flags2) = 2);
          
select max(extrachargeinto cl_name from supermag.smextracharge where article=p_a and pricetype pt;
          return 
cl_name||'('||supermag.smgetextrachargeclass(p_apt)||')'
   
end;
   /
   
commit
Ну а в бизнес анализе - в формуле нужно писать:
SQL код:
SUPERMAG.extracharge2({Карточка товараАртикул},{Место храненияКод места хранения}) 
Часовой пояс GMT +3, время: 19:13.

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