[ОТВЕТИТЬ]
25.01.2008 14:19
reddevil
 
Код:
SQL> desc supermag.classifier.normalizeclassif - возвращает путь группы в виде пригодном для сортировки
Parameter Type     Mode Default? 
--------- -------- ---- -------- 
(RESULT)  VARCHAR2               
CLPATH    VARCHAR2 IN   - путь группы          

SQL> desc supermag.classifier.gettitlebypath  возвращает имя группы
Parameter Type     Mode Default? 
--------- -------- ---- -------- 
(RESULT)  VARCHAR2               
PPATH     VARCHAR2 IN     - путь группы                 
PTABLE    VARCHAR2 IN   имя таблицы SACARDCLASS либо SACARDASSORT         

SQL>
ну типа, положу начало. :)
это то что вспомнилось

А вообще же наименования процедур более или мене отвечают их назначению и потратив некоторое время можно найти то что нужно тебе, ну или не найти. И даже если они будут описаны, предпложим в следующий версии тот функционал который ты используешь в своих разработках меняется :)
16.03.2008 19:42
OlegON
 
Обсуждения здесь запрещены - создавайте отдельные топики
21.08.2008 10:03
OlegON
 
select supermag.RussianSpell.GetSumRub('1,1',0,0) from dual
----------------------------------------------------------------------------------------------------
1 руб 10 коп
17.09.2008 07:40
OlegON
 
Как получить остатки на дату –

begin
Supermag.Remains.Calс ('13/09/2008',FALSE,23, 0, FALSE);
End;

Далее во временно табличке SUPERMAG.TTREMAINS получаем все артикулы с остатками на конец 13/09/2008

Для производства

begin
Supermag.Remains.Calcprod ('13/09/2008',FALSE,23, 0, FALSE);
End;

Далее во временно табличке SUPERMAG.TTREMAINSPROD
получаем все артикулы с остатками на конец 13/09/2008


Время работы «SQL2.sql: Выполнение завершено успешно [1,020 c]»
02.02.2011 12:11
kadr
 
Код:
SELECT rep_getcardclasspath('2.1.2.',1,1) FROM dual;
возвращает полный путь группы
первый параметр - группа
второй параметр что смотреть 1- классификатор, 2-ассортимент
третий параметр - не знаю, но при 1 работает
31.10.2011 13:32
OlegON
 
supermag.CORE.ISSMCONTROLLERSTARTED - запущен ли сервер лицензий 1/0
31.10.2011 13:50
OlegON
 
Общение клиентов с сервером СМ идет через DBMS_PIPE, схема очень простая, сначала получается уникальный идентификатор сессии через DBMS_SESSION.UNIQUE_SESSION_ID, после чего создается публичная труба с именем вида ORA$ALERT$+полученный номер. Все это тормозное безобразие можно пролистать через select * from v$db_pipes;
31.10.2011 16:15
OlegON
 
core.GETSMERRMSG(Х) - выводит текст сообщения из ssmessages
27.01.2012 15:39
akonev
 
Розничная цена в формате для Бизнес-Анализа.
Цитата:
whitewizard Розничная цена:

supermag.smgetsellingpricebi({Карточка товара. Артикул},null,{Место хранения. Код места хранения},supermag.getaccountpriceforloc({Место хранения. Код места хранения}))
27.01.2012 17:21
whitewizard
 
вот цена на заданную дату:

supermag.SMGETPRICEONDATERL(Артикул,Код цены,Код места хранения,Дата)
02.06.2012 11:25
Pblcb
 
Код:
core.FailMsg( mas as varchar2 );
ORA-20000 с произвольным сообщением об ошибке.
02.06.2012 12:39
akonev
 
надергано из другой ветки для коллекции:
Цитата:
vdm Из встроенного можно попробовать:

Последние приходные
SMDOCSETLASTINCOMEPRICESIW( ADOCID IN DOCUMENTS.TDOCID, AFORCENULLS IN NUMBER, AONLYZEROS IN CORE.SMBOOL )

Продажные
SMDOCSETSELLINGPRICESIW( ADOCID IN SMSPEC.DOCID%TYPE, ASELLINGPRICE IN NUMBER, ALOCATION IN NUMBER, AFORCENULLS IN NUMBER, AONLYZEROS IN CORE.SMBOOL )

Учетные
SMDOCSETACCOUNTPRICESIW( ADOCID IN DOCUMENTS.TDOCID, AACCOUNTPRICE IN DOCUMENTS.TPRICETYPE, ALOCATIONPRICE IN DOCUMENTS.TLOCATION, AFORCENULLS IN CORE.SMBOOL, AONLYZEROS IN CORE.SMBOOL )

commit не забыть.
Цитата:
CrazyWolf А что правильно подставлять в качестве CORE.SMBOOL? не смог найти такой тип в PL/SQL девелопере в пакете CORE :tomato2:
Цитата:
vdm char '0' или '1'
Цитата:
CrazyWolf Заработало таким образом
Код:
declare
core_result pls_integer;
begin
if supermag.core.getproc is null then 
  core_result := supermag.Core.StartSMApp();
end if;
  supermag.documents.lockdoc('IW', 'НПххххххххх');
  smdocgetlastincomepricefi_iw('НПххххххххх', '1');
  smdocsetlastincomepricesiw('НПххххххххх', 1, '1');
  commit;
  supermag.documents.unlockdoc('IW', 'НПххххххххх');
end;
17.06.2012 23:25
Pblcb
 
взято отсюда
https://olegon.ru/showpost.php?p=85489&postcount=23

Код:
supermag.FixRemIncome.Calc(:Date);
заполняет ttRemIncome остатками по приходам

и до кучи из своих закромов:
Код:
-- вызывать перед supermag.FixRemIncome.Calc
supermag.RepTools.LoadClass(:P_Group_All, :P_BGroup, :P_Group_Tree); -- установить фильтр по классификатору
supermag.RepTools.LoadLoc(:P_Stored_All,:P_Stored_Name,:P_Partner,:P_RgnId,:P_FirstDate);--установить фильтр по МХ
supermag.RepTools.LoadSQLFilter; -- загрузить назначенные фильтры
описание параметров берется из седьмого тома документации, глава о подключении собственных отчетов.
14.09.2012 15:00
Lelik
 
Цитата:
Pblcb
Код:
-- вызывать перед supermag.FixRemIncome.Calc
supermag.RepTools.LoadClass(:P_Group_All, :P_BGroup, :P_Group_Tree); -- установить фильтр по классификатору
supermag.RepTools.LoadLoc(:P_Stored_All,:P_Stored_Name,:P_Partner,:P_RgnId,:P_FirstDate);--установить фильтр по МХ
supermag.RepTools.LoadSQLFilter; -- загрузить назначенные фильтры
описание параметров берется из седьмого тома документации, глава о подключении собственных отчетов.
Что бы долго не искать...
P_ GROUP_ONLY
0 – выбраны все группы товаров;
1 – выбрана только одна или
несколько групп товаров

P_GROUP_TREE
Список через запятую путей
выбранных групп товаров
(например, «1.,2.1.,2.3.»)

P_GROUP_NAME
Наименование выбранной группы
товаров, если выбрана одна группа
товаров (например, «1. ВИНО»);
если выбрано несколько групп
товаров, то этот параметр такой же,
как и P_GROUP_TREE

P_BGROUP
0 – если выбрана ассортиментная
группа товаров;
1 – если выбрана группа
классификатора товаров

P_GROUP_ALL
0 – группировать товары по всем
группам товаров;
1 – группировать товары по
старшим группам товаров;
2 – не группировать товары

P_STORED_ALL
0 – если выбраны все места
хранения;
1 – если выбрано одно или
несколько мест хранения;
2 – если выбрана одна группа мест
хранения

P_STORED_MULTI
0 – если выбрано одно место
хранения;
1 – если выбрано несколько мест
хранения

P_ STORED_NAME
Идентификатор места хранения,
если выбрано одно место хранения;
Идентификатор группы мест
хранения, если выбрана группа
мест хранения;
список через запятую
идентификаторов мест хранения,
если их выбрано несколько

P_FIRSTDATE Дата «С» временного периода
P_LASTDATE Дата «По» временного периода
дата в
формате
DD.MM.RRRR

P_PARTNER
Идентификатор выбранного
партнера (например, 5):
«-2» – если выбраны все партнеры
«-10» – если в ТС нет партнеров
или для текущего пользователя нет
ограничений по партнерам
28.09.2012 07:17
cb
 
rep_getextracharge(art => :art,
price_type => :price_type);
Возвращает наценку по артикулу и типу цены.
22.11.2012 06:09
Pblcb
 
Может кто еще не знает:
текущая цена по прайсу:
Код:
SUPERMAG.DOCUMENTS.getArticlePrice( :art, :prc_type, :loc )
цена по прайсу на дату:
Код:
SUPERMAG.DOCUMENTS.getArticlePriceOnDate( :art, :prc_type, :loc, :dat )
Цена на ближайшую дату:
Код:
SUPERMAG.DOCUMENTS.getArticlePriceOnNearestDate( :art, :prc_type, :loc, :dat )
26.11.2012 06:06
Pblcb
 
smBool в человеческом понимании
Код:
core.tosmbool (:bool_value)
заполнение документа ценой из прайса(требует блокировки объекта):
Код:
documents.SETSELLINGPRICES (adoctype           => :doctype,
                                  adocid             => :docid,
                                  asellingprice      => 0, -- id вида цены
                                  alocationprice     => 1, -- id места хранения откуда цену брать
                                  aforcenulls        => 0,
                                  aonlyzeros         => '0', -- только строки с нулевыми ценами
                                  ASPECITEMSFAILED   => specitemfailed, -- сюда пишутся ошибки, скорее всего
                                  AWANTFAILEDITEMS   => FALSE,
                                  APARTIALSPEC       => FALSE);
блокировка:
Код:
core.lockobject (flock => core.tosmbool (TRUE), pobjtype => :doctype, pobjid => :docid);
22.10.2013 18:44
OlegON
 
Код:
select supermag.smgettaxfromarticle('001397',0,1) from dual;
налог из карточки
1 - артикул
2 - identid из supermag.smtaxidentity, НДС обычно равен 0
3 - MX
02.11.2013 08:20
OlegON
 
declare
x varchar(255);
begin
Supermag.SMGENERATEBARCODE(1,x);
dbms_output.put_line(x);
end;
/
Первый параметр - тип штрихкода.
16.11.2013 16:48
whitewizard
 
номер документа = Supermag.SMGENERATEDOCNO('тип_документа','МХ');

Например,
id := Supermag.SMGENERATEDOCNO('WI','4');
26.12.2014 00:16
Starter
 
Еще один быстрый способ узнать остатки + документ последнего прихода + цену последнего прихода (или учетную):

begin
supermag.Rep_Ostatki('23.12.2014',0,0,0,2,0,0,0,0);
End;

Далее во временной табличке SUPERMAG.TTREMAINS получаем все артикулы с остатками на конец вчерашнего дня.
Во временной табличке SUPERMAG.TTOSTATKI1 получаем документ и дату последнего прихода (поля таблицы: LOCID, ARTICLE, ID, CREATEDAT)
Во временной табличке SUPERMAG.TTOSTATKI2 получаем остаток по документу последнего прихода, цену с НДС/без НДС (учетную или последнего прихода).
поля LOCID, ARTICLE, QTY, PRICE1, PRICE2, PRICEPREC
PRICE1 - цена полная, PRICE2 - без НДС. PRICEPREC- не знаю, что такое.

Входные параметры процедуры Rep_Ostatki(в зависимости от версии СМ+ их может быть 8 (1.030.4) или 9 (1.031)):

ARGUMENT_NAME DATA_TYPE SEQUENCE
------------------------------ ------------------------------ ---------
PDATE VARCHAR2 1
POST NUMBER 2
PQTYMIN NUMBER 3
PQTYMAX NUMBER 4
PVIEWSUM NUMBER 5
PVIEWSCALE NUMBER 6
PONLYACCEPTCARD NUMBER 7
PONLYNOPRICE NUMBER 8
PGROUPSTORE NUMBER 9

PDATE - дата в текстовом формате. К примеру, to_char(sysdate-1,'dd.mm.yyyy')

POST - какие остатки получить:
0: Все
1: Остатки: только отрицательные;
2: Остатки: только нулевые;
3: Остатки: только положительные;
4: Остатки: только ненулевые;
5: Остатки: в диапазон от PQTYMIN до PQTYMAX

PQTYMIN,PQTYMAX - используются, если POST=5, диапазон.

PVIEWSUM - какие суммы используются.
0: никакие (ttostatki1 и ttostatki2 пустые, только ttremains заполнена)
1: учетные цены МХ (в таком случае табличка ttostatki1 будет пустая, в ttostatki2 - учетные цены МХ)
2: если выводятся документы последних приходов (тогда в ttostatki1 ид и дата документа ПП, в ttostatki2 - цены ПП)

PVIEWSCALE - вероятно, детализация по свойствам, вероятнее всего, при этом заполняется еще и временная табличка TTREMAINSSCALE

PONLYACCEPTCARD -
0: все карточки
1: только активные

PONLYNOPRICE - только товары с неустановленной ценой

PGROUPSTORE - что означает, не знаю. Судя по названию, как то связано с группировкой по МХ. На что влияет - не проверял.

Важно: эта процедура присутствует не во всех версиях СМ+. в 1.030 ее, к примеру, нет.
02.03.2015 09:45
kadr
 
Цитата:
kadr
Код:
SELECT rep_getcardclasspath('2.1.2.',1,1) FROM dual;
возвращает полный путь группы
первый параметр - группа
второй параметр что смотреть 1- классификатор, 2-ассортимент
третий параметр - не знаю, но при 1 работает
В версии 1.031.1 изменена и теперь имеет только 1 параметр "ptree".
Все самописные отчеты с этой функцией подлежат корректировке. ((

На будущее, наверно правильнее делать свои обертки для использования стандартных функций, тогда хоть поправить надо будет только в базе, а не по всем запросам и исходникам отчетов.
04.01.2016 08:45
Occul
 
SQL код:
CREATE OR REPLACE FUNCTION Rep_GetCardClassPath (PTREE IN SUPERMAG.SACARDCLASS.TREE%TYPE)
                                                        RETURN 
VARCHAR2
IS
        VRES VARCHAR2
(25000);
BEGIN
        
FOR C IN (SELECT NAME FROM SACARDCLASS
                                WHERE PTREE LIKE TREE
||'%'
                                
ORDER BY TREE)
        
LOOP
                
IF NOT (VRES IS NULLTHEN VRES := VRES||'. 'END IF;
                
VRES := VRES||C.NAME;
        
END LOOP;
        RETURN 
VRES;
EXCEPTION WHEN OTHERS THEN
        
RETURN PTREE;
END;

Опции темы


Часовой пояс GMT +3, время: 12:23.

 

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