26.12.2014 00:16
Еще один быстрый способ узнать остатки + документ последнего прихода + цену последнего прихода (или учетную):

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
Код:
SELECT rep_getcardclasspath('2.1.2.',1,1) FROM dual;
возвращает полный путь группы
первый параметр - группа
второй параметр что смотреть 1- классификатор, 2-ассортимент
третий параметр - не знаю, но при 1 работает
В версии 1.031.1 изменена и теперь имеет только 1 параметр "ptree".
Все самописные отчеты с этой функцией подлежат корректировке. ((

На будущее, наверно правильнее делать свои обертки для использования стандартных функций, тогда хоть поправить надо будет только в базе, а не по всем запросам и исходникам отчетов.
04.01.2016 08:45
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 NULL) THEN VRES := VRES||'. '; END IF;
                VRES := VRES||C.NAME;
        END LOOP;
        RETURN VRES;
EXCEPTION WHEN OTHERS THEN
        RETURN PTREE;
END;
/ 
Часовой пояс GMT +3, время: 23:41.

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