Установка автозаказа — различия между версиями
Материал из wiki.standart-n.ru
Agk (обсуждение | вклад) |
Agk (обсуждение | вклад) |
||
Строка 1: | Строка 1: | ||
==Заменить версию Менеджера== | ==Заменить версию Менеджера== | ||
− | Заменить '''ManagerXP2.exe''' на версию '''2.272. | + | Заменить '''ManagerXP2.exe''' на версию '''2.272.26''' от октября 2014 г. или более новую. |
==Создать таблицу ELNAKLS== | ==Создать таблицу ELNAKLS== | ||
Строка 7: | Строка 7: | ||
==Создать таблицу EXT_DATA== | ==Создать таблицу EXT_DATA== | ||
<nowiki> | <nowiki> | ||
− | + | CREATE TABLE EXT_DATA(ID DM_ID NOT NULL, | |
− | + | SNAME DM_TEXT1024, | |
− | + | ORIG_NAME DM_TEXT1024, | |
− | + | MGN_SOURCE DM_TEXT1024, | |
− | + | QUANT DM_DOUBLE, | |
− | + | PRICE DM_DOUBLE, | |
− | + | SUMMA DM_DOUBLE, | |
− | + | SDOC_TYPE DM_TEXT1024, | |
− | + | COMMITDATE DM_DATETIME, | |
− | + | DOC_TYPE DM_STATUS, | |
− | + | STATUS DM_STATUS, | |
− | + | MGN_ID DM_ID_NULL, | |
− | + | INSERTDT DM_DATETIME, | |
+ | G$PROFILE_ID DM_ID_NULL); | ||
CREATE SEQUENCE GEN_EXT_DATA_ID; | CREATE SEQUENCE GEN_EXT_DATA_ID; | ||
Строка 38: | Строка 39: | ||
</nowiki> | </nowiki> | ||
− | ==Добавить в таблицу WARES поля== | + | ==Добавить в таблицу WARES поля и индексы== |
<nowiki> | <nowiki> | ||
ALTER TABLE WARES ADD SNAME DM_TEXT1024; | ALTER TABLE WARES ADD SNAME DM_TEXT1024; | ||
Строка 44: | Строка 45: | ||
ALTER TABLE WARES ADD MGN_ID DM_ID_NULL; | ALTER TABLE WARES ADD MGN_ID DM_ID_NULL; | ||
ALTER TABLE WARES ADD MGN_SOURCE DM_TEXT1024; | ALTER TABLE WARES ADD MGN_SOURCE DM_TEXT1024; | ||
+ | |||
+ | CREATE INDEX WARES_IDX3 ON WARES (MGN_NAME); | ||
+ | CREATE DESCENDING INDEX WARES_IDX4 ON WARES (MGN_NAME); | ||
+ | CREATE INDEX WARES_IDX7 ON WARES (MGN_ID); | ||
</nowiki> | </nowiki> | ||
==В представления VW_DOC_DETAIL и VW_WARES добавить поля== | ==В представления VW_DOC_DETAIL и VW_WARES добавить поля== | ||
<nowiki> | <nowiki> | ||
− | + | MGN_NAME, | |
− | + | MGN_ID, | |
− | + | MGN_SOURCE | |
</nowiki> | </nowiki> | ||
как | как | ||
<nowiki> | <nowiki> | ||
− | + | w.mgn_name, | |
− | + | w.mgn_id, | |
− | + | w.mgn_source | |
</nowiki> | </nowiki> | ||
где w - таблица WARES | где w - таблица WARES | ||
Строка 62: | Строка 67: | ||
==В представление VW_DOC_DETAIL_ACTIVE добавить поля== | ==В представление VW_DOC_DETAIL_ACTIVE добавить поля== | ||
<nowiki> | <nowiki> | ||
− | + | MGN_NAME, | |
− | + | MGN_ID, | |
− | + | MGN_SOURCE | |
</nowiki> | </nowiki> | ||
как | как | ||
<nowiki> | <nowiki> | ||
− | + | (select mgn_name from wares where id = da.ware_id) as mgn_name, | |
− | + | (select mgn_id from wares where id = da.ware_id) as mgn_id, | |
− | + | (select mgn_source from wares where id = da.ware_id) as mgn_source | |
</nowiki> | </nowiki> | ||
==В представление VW_WAREBASE добавить поле== | ==В представление VW_WAREBASE добавить поле== | ||
<nowiki> | <nowiki> | ||
− | + | MGN_NAME | |
</nowiki> | </nowiki> | ||
как | как | ||
<nowiki> | <nowiki> | ||
− | + | (select mgn_name from wares where id = wb.ware_id) | |
</nowiki> | </nowiki> | ||
− | ==В триггер | + | ==В триггер WARES_BU0 добавить условие== |
<nowiki> | <nowiki> | ||
if (new.name_id <> old.name_id) then | if (new.name_id <> old.name_id) then | ||
Строка 89: | Строка 94: | ||
new.mgn_id = 0; | new.mgn_id = 0; | ||
end | end | ||
+ | </nowiki> | ||
+ | |||
+ | ==В триггер WARES_BI_SNAME добавить строку== | ||
+ | <nowiki> | ||
+ | new.sname = (select svalue from vals where id = new.name_id); | ||
+ | </nowiki> | ||
+ | или создать его при отсутствии | ||
+ | <nowiki> | ||
+ | CREATE OR ALTER TRIGGER WARES_BI_SNAME FOR WARES | ||
+ | ACTIVE BEFORE INSERT POSITION 0 | ||
+ | AS | ||
+ | begin | ||
+ | new.sname = (select svalue from vals where id = new.name_id); | ||
+ | end; | ||
</nowiki> | </nowiki> | ||
==Создать таблицу ORDER_DATA== | ==Создать таблицу ORDER_DATA== | ||
<nowiki> | <nowiki> | ||
− | + | CREATE TABLE ORDER_DATA ( | |
ID DM_ID NOT NULL /* DM_ID = BIGINT */, | ID DM_ID NOT NULL /* DM_ID = BIGINT */, | ||
MGN_NAME DM_TEXT1024 /* DM_TEXT1024 = VARCHAR(1024) */, | MGN_NAME DM_TEXT1024 /* DM_TEXT1024 = VARCHAR(1024) */, | ||
Строка 118: | Строка 137: | ||
LAST_OZ_PRICE DM_DOUBLE /* DM_DOUBLE = DOUBLE PRECISION */, | LAST_OZ_PRICE DM_DOUBLE /* DM_DOUBLE = DOUBLE PRECISION */, | ||
LAST_RASHOD_DATE DM_DATETIME, | LAST_RASHOD_DATE DM_DATETIME, | ||
− | ACTIVE_ORDER_QUANT | + | ACTIVE_ORDER_QUANT DM_DOUBLE, |
MGN_ID DM_ID_NULL /* DM_ID_NULL = BIGINT */, | MGN_ID DM_ID_NULL /* DM_ID_NULL = BIGINT */, | ||
BAD_FLAG DM_STATUS /* DM_STATUS = INTEGER */, | BAD_FLAG DM_STATUS /* DM_STATUS = INTEGER */, | ||
− | INSERTDT DM_DATETIME /* DM_DATETIME = TIMESTAMP */ | + | INSERTDT DM_DATETIME /* DM_DATETIME = TIMESTAMP */, |
− | + | G$PROFILE_ID DM_ID_NULL | |
− | + | ); | |
CREATE GENERATOR GEN_ORDER_DATA_ID; | CREATE GENERATOR GEN_ORDER_DATA_ID; | ||
ALTER TABLE ORDER_DATA ADD CONSTRAINT PK_ORDER_DATA PRIMARY KEY (ID); | ALTER TABLE ORDER_DATA ADD CONSTRAINT PK_ORDER_DATA PRIMARY KEY (ID); |
Версия 16:30, 9 октября 2014
Содержание
- 1 Заменить версию Менеджера
- 2 Создать таблицу ELNAKLS
- 3 Создать таблицу EXT_DATA
- 4 Добавить в таблицу WARES поля и индексы
- 5 В представления VW_DOC_DETAIL и VW_WARES добавить поля
- 6 В представление VW_DOC_DETAIL_ACTIVE добавить поля
- 7 В представление VW_WAREBASE добавить поле
- 8 В триггер WARES_BU0 добавить условие
- 9 В триггер WARES_BI_SNAME добавить строку
- 10 Создать таблицу ORDER_DATA
- 11 Сетка
- 12 Проверка себя
Заменить версию Менеджера
Заменить ManagerXP2.exe на версию 2.272.26 от октября 2014 г. или более новую.
Создать таблицу ELNAKLS
CREATE TABLE ELNAKLS(FILENAME DM_TEXT1024);
Создать таблицу EXT_DATA
CREATE TABLE EXT_DATA(ID DM_ID NOT NULL, SNAME DM_TEXT1024, ORIG_NAME DM_TEXT1024, MGN_SOURCE DM_TEXT1024, QUANT DM_DOUBLE, PRICE DM_DOUBLE, SUMMA DM_DOUBLE, SDOC_TYPE DM_TEXT1024, COMMITDATE DM_DATETIME, DOC_TYPE DM_STATUS, STATUS DM_STATUS, MGN_ID DM_ID_NULL, INSERTDT DM_DATETIME, G$PROFILE_ID DM_ID_NULL); CREATE SEQUENCE GEN_EXT_DATA_ID; ALTER SEQUENCE GEN_EXT_DATA_ID RESTART WITH 0; CREATE INDEX EXT_DATA_IDX1 ON EXT_DATA (ID); CREATE INDEX EXT_DATA_IDX2 ON EXT_DATA (SNAME); CREATE INDEX EXT_DATA_IDX3 ON EXT_DATA (MGN_ID); CREATE OR ALTER TRIGGER EXT_DATA_BI FOR EXT_DATA ACTIVE BEFORE INSERT POSITION 0 as begin new.insertdt = 'now'; if (new.id is null) then new.id = gen_id(gen_ext_data_id,1); end;
Добавить в таблицу WARES поля и индексы
ALTER TABLE WARES ADD SNAME DM_TEXT1024; ALTER TABLE WARES ADD MGN_NAME DM_TEXT1024; ALTER TABLE WARES ADD MGN_ID DM_ID_NULL; ALTER TABLE WARES ADD MGN_SOURCE DM_TEXT1024; CREATE INDEX WARES_IDX3 ON WARES (MGN_NAME); CREATE DESCENDING INDEX WARES_IDX4 ON WARES (MGN_NAME); CREATE INDEX WARES_IDX7 ON WARES (MGN_ID);
В представления VW_DOC_DETAIL и VW_WARES добавить поля
MGN_NAME, MGN_ID, MGN_SOURCE
как
w.mgn_name, w.mgn_id, w.mgn_source
где w - таблица WARES
В представление VW_DOC_DETAIL_ACTIVE добавить поля
MGN_NAME, MGN_ID, MGN_SOURCE
как
(select mgn_name from wares where id = da.ware_id) as mgn_name, (select mgn_id from wares where id = da.ware_id) as mgn_id, (select mgn_source from wares where id = da.ware_id) as mgn_source
В представление VW_WAREBASE добавить поле
MGN_NAME
как
(select mgn_name from wares where id = wb.ware_id)
В триггер WARES_BU0 добавить условие
if (new.name_id <> old.name_id) then begin new.mgn_name = null; new.mgn_id = 0; end
В триггер WARES_BI_SNAME добавить строку
new.sname = (select svalue from vals where id = new.name_id);
или создать его при отсутствии
CREATE OR ALTER TRIGGER WARES_BI_SNAME FOR WARES ACTIVE BEFORE INSERT POSITION 0 AS begin new.sname = (select svalue from vals where id = new.name_id); end;
Создать таблицу ORDER_DATA
CREATE TABLE ORDER_DATA ( ID DM_ID NOT NULL /* DM_ID = BIGINT */, MGN_NAME DM_TEXT1024 /* DM_TEXT1024 = VARCHAR(1024) */, ORDER_QUANT DM_DOUBLE /* DM_DOUBLE = DOUBLE PRECISION */, SHORT_ORDER_QUANT DM_DOUBLE /* DM_DOUBLE = DOUBLE PRECISION */, OPTIMAL_ORDER_QUANT DM_DOUBLE /* DM_DOUBLE = DOUBLE PRECISION */, ASSORT_ORDER_QUANT DM_DOUBLE /* DM_DOUBLE = DOUBLE PRECISION */, LAST_PRIHOD_QUANT SMALLINT, REALQUANT DM_DOUBLE /* DM_DOUBLE = DOUBLE PRECISION */, LAST_PRIHOD_DATE DM_DATETIME /* DM_DATETIME = TIMESTAMP */, LAST_PRIHOD_PRICE DM_DOUBLE /* DM_DOUBLE = DOUBLE PRECISION */, LAST_WEEK_SUM DM_DOUBLE /* DM_DOUBLE = DOUBLE PRECISION */, LAST_2WEEKS_SUM DM_DOUBLE /* DM_DOUBLE = DOUBLE PRECISION */, LAST_PERIOD_SUM DM_DOUBLE /* DM_DOUBLE = DOUBLE PRECISION */, LAST_MONTH_SUM DM_DOUBLE /* DM_DOUBLE = DOUBLE PRECISION */, SEASON_SUM DM_DOUBLE /* DM_DOUBLE = DOUBLE PRECISION */, RASHOD_DOC_QUANT DM_STATUS /* DM_STATUS = INTEGER */, PRIHOD_DOC_QUANT DM_STATUS /* DM_STATUS = INTEGER */, LAST_OZ_DATE DM_DATETIME /* DM_DATETIME = TIMESTAMP */, ELNAKL_QUANT DM_DOUBLE /* DM_DOUBLE = DOUBLE PRECISION */, QUANT DM_DOUBLE /* DM_DOUBLE = DOUBLE PRECISION */, LAST_OZ_QUANT DM_DOUBLE /* DM_DOUBLE = DOUBLE PRECISION */, ACTIVE_PRIHOD_DOC_QUANT DM_DOUBLE /* DM_DOUBLE = DOUBLE PRECISION */, LAST_OZ_PRICE DM_DOUBLE /* DM_DOUBLE = DOUBLE PRECISION */, LAST_RASHOD_DATE DM_DATETIME, ACTIVE_ORDER_QUANT DM_DOUBLE, MGN_ID DM_ID_NULL /* DM_ID_NULL = BIGINT */, BAD_FLAG DM_STATUS /* DM_STATUS = INTEGER */, INSERTDT DM_DATETIME /* DM_DATETIME = TIMESTAMP */, G$PROFILE_ID DM_ID_NULL ); CREATE GENERATOR GEN_ORDER_DATA_ID; ALTER TABLE ORDER_DATA ADD CONSTRAINT PK_ORDER_DATA PRIMARY KEY (ID); CREATE INDEX ORDER_DATA_IDX1 ON ORDER_DATA (MGN_NAME); CREATE DESCENDING INDEX ORDER_DATA_IDX2 ON ORDER_DATA (MGN_NAME); CREATE DESCENDING INDEX ORDER_DATA_IDX3 ON ORDER_DATA (ID); CREATE OR ALTER TRIGGER ORDER_DATA_BI FOR ORDER_DATA ACTIVE BEFORE INSERT POSITION 0 as begin if (new.id is null) then new.id = gen_id(gen_order_data_id,1); end;
Сетка
Прикрепленный файл Файл:Сетка автозаказа.zip
Проверка себя
В Менеджере, перед проверкой убедитесь, что в "Сервис"-"Параметры системы"-"Глобальный справочник" указаны корректные параметры "Строка подключения Общего заказа" и "Путь к Общему заказу" (при наличии программы Общий заказ). После чего в меню "Сервис-Заказ" открываем окно Автозаказа и нажимаем кнопку "Рассчитать заказ", после расчета мы должны увидеть позиции в кратком, оптимальном и ассортиментном заказе. Пример внешнего вида см. ниже.
Теги: автозаказ, автозаявка, заказ, заявка