Автоприсвоение групп в эл. накладных — различия между версиями
Материал из wiki.standart-n.ru
Agk (обсуждение | вклад) |
Agk (обсуждение | вклад) |
||
Строка 1: | Строка 1: | ||
− | + | Если клиенту требуется, чтобы группы товаров (например: делимый, дет. питание, оптика и др.), назначенные в одной точке (магазине,аптеке) автоматически присваивались при перемещении товаров в другой точке, необходимо выполнить следующее: | |
− | автоматически присваивались при перемещении товаров в другой точке, необходимо выполнить следующее: | + | |
Строка 6: | Строка 5: | ||
1) Строка создания dbf должна содержать SKLAD_ID и выглядеть следующим образом: | 1) Строка создания dbf должна содержать SKLAD_ID и выглядеть следующим образом: | ||
<nowiki> | <nowiki> | ||
− | CREATE TABLE temp (DOCNUM CHAR(250), DOCNUM1 CHAR(100),DOCDATE DATE,TOVAR CHAR(250),ORIG_TOVAR CHAR(250),SER CHAR(250),QUANT NUMERIC(20,9),QUANT1 CHAR(100),PRICE_O1 NUMERIC(20,5),PRICE_Z NUMERIC(20,5),PRICE_O NUMERIC(20,9),NDSO NUMERIC(20,5),SUM_NDSO NUMERIC(20,5),PRICE_R NUMERIC(20,5),IZG CHAR(250),SERT CHAR(250),SDSERT DATE,KEMVSERT CHAR(250),REGN CHAR(250),DATESERT DATE,GODENDO DATE,NGTD CHAR(250),STRANA CHAR(250),PRICE NUMERIC(20,5),BARCODE CHAR(250),GNVLS NUMERIC(20,5),ORIG_CODE CHAR(250),PART CHAR(250),SUM_NDSR NUMERIC(20,5),SKLAD_ID CHAR(250)); | + | CREATE TABLE temp (DOCNUM CHAR(250), DOCNUM1 CHAR(100),DOCDATE DATE,TOVAR CHAR(250),ORIG_TOVAR CHAR(250),SER CHAR(250), |
+ | QUANT NUMERIC(20,9),QUANT1 CHAR(100),PRICE_O1 NUMERIC(20,5),PRICE_Z NUMERIC(20,5),PRICE_O NUMERIC(20,9),NDSO NUMERIC(20,5), | ||
+ | SUM_NDSO NUMERIC(20,5),PRICE_R NUMERIC(20,5),IZG CHAR(250),SERT CHAR(250),SDSERT DATE,KEMVSERT CHAR(250),REGN CHAR(250), | ||
+ | DATESERT DATE,GODENDO DATE,NGTD CHAR(250),STRANA CHAR(250),PRICE NUMERIC(20,5),BARCODE CHAR(250),GNVLS NUMERIC(20,5), | ||
+ | ORIG_CODE CHAR(250),PART CHAR(250),SUM_NDSR NUMERIC(20,5),SKLAD_ID CHAR(250)); | ||
</nowiki> | </nowiki> | ||
Версия 18:39, 10 февраля 2015
Если клиенту требуется, чтобы группы товаров (например: делимый, дет. питание, оптика и др.), назначенные в одной точке (магазине,аптеке) автоматически присваивались при перемещении товаров в другой точке, необходимо выполнить следующее:
Редактирование подпрограммы отправки накладных
1) Строка создания dbf должна содержать SKLAD_ID и выглядеть следующим образом:
CREATE TABLE temp (DOCNUM CHAR(250), DOCNUM1 CHAR(100),DOCDATE DATE,TOVAR CHAR(250),ORIG_TOVAR CHAR(250),SER CHAR(250), QUANT NUMERIC(20,9),QUANT1 CHAR(100),PRICE_O1 NUMERIC(20,5),PRICE_Z NUMERIC(20,5),PRICE_O NUMERIC(20,9),NDSO NUMERIC(20,5), SUM_NDSO NUMERIC(20,5),PRICE_R NUMERIC(20,5),IZG CHAR(250),SERT CHAR(250),SDSERT DATE,KEMVSERT CHAR(250),REGN CHAR(250), DATESERT DATE,GODENDO DATE,NGTD CHAR(250),STRANA CHAR(250),PRICE NUMERIC(20,5),BARCODE CHAR(250),GNVLS NUMERIC(20,5), ORIG_CODE CHAR(250),PART CHAR(250),SUM_NDSR NUMERIC(20,5),SKLAD_ID CHAR(250));
2)Заполняем поле SKLAD_ID информацией о присвоенных группах (поле mmbsh):
stringreplace(IBQuery_FieldByName_s(query1, 'mmbsh'),'''','',1)
3) Если поля mmbsh в запросе к данным документа нет, добавляем его.
Не забываем исправить в подпрограммах "Проведение активного документа" и "Отправить на почту"
Настройка менеджера групп партий
В менеджере групп партий, для требуемых групп изменить или создать процедуру CheckMembership, которая будет проверять поле SKLAD_ID на необходимое значение. Пример см. ниже. program GroupProgram; procedure CheckMembership; begin if pos('Сан. гиг',fieldvalue_s('SKLAD_ID'))>0 then return_boolean(true); end; begin end.
Проверка себя
Настроить исходную и целевую базы, повторно отправить накладную с требуемыми группами и принять. Группы должны присвоиться автоматически.
Теги: группы, менеджер групп, CheckMembership, накладные