|
|
| Строка 1: |
Строка 1: |
| | + | ==Предварительная подготовка== |
| | + | 1) Настраиваем двустороннюю синхронизацию таблиц WARES_TREB и G$PROFILES; |
| | + | 2) Проверяем, что у клиентов в PARAMS есть параметр CODE_PROFILE (Код профиля) и он корректный; |
| | + | 3) Обновляем у всех клиентов Менеджер до версии не ниже ManagerXP2_273_5 от декабря 2016г. |
| | + | |
| | ==Подготовка серверной базы и скриптов для Единого Окна== | | ==Подготовка серверной базы и скриптов для Единого Окна== |
| − | [[Подготовка серверной базы и скриптов для Единого Окна]]
| + | 1) Обновляем скрипты синхронизации на сервере; |
| | + | 2) Блокируем синхронизацию (оставляем только g$tasks); |
| | + | 3) Готовим серверную базу; |
| | | | |
| − | ==Заблокировать синхронизацию==
| |
| − | [[Заблокировать синхронизацию| Заблокировать синхронизацию, но, чтоб задания (g$tasks) выполнялись]]
| |
| | | | |
| − | | + | ==Останавливаем торговлю в точках== |
| − | ==Лехина процедура по сжатию варесов засчет пустых значений стран и изготовителей== | + | |
| | <pre> | | <pre> |
| | + | CREATE EXCEPTION EX_DONT_WORK 'Вход в программу заблокирован. Идет обновление...'; |
| | SET TERM ^ ; | | SET TERM ^ ; |
| − | | + | CREATE OR ALTER TRIGGER SESSIONS_DONT_WORK_BI0 FOR SESSIONS |
| − | create or alter procedure PR_COMPRESS_WARES
| + | ACTIVE BEFORE INSERT POSITION 0 |
| − | returns (
| + | |
| − | OUT DM_UUID_NULL)
| + | |
| − | as
| + | |
| − | declare variable WARE_ID DM_UUID;
| + | |
| − | declare variable NAME_ID DM_UUID;
| + | |
| − | declare variable IZG_ID DM_UUID;
| + | |
| − | declare variable COUNTRY_ID DM_UUID;
| + | |
| − | declare variable BARCODE DM_TEXT;
| + | |
| − | declare variable NEW_VALUE DM_UUID_NULL;
| + | |
| − | declare variable NULL_VALUE DM_UUID_NULL;
| + | |
| − | begin
| + | |
| − | /* заполняем страну */
| + | |
| − | null_value = null;
| + | |
| − | select v.id from vals v where v.alttype=0 and V.VTYPE = 2 and v.svalue='' into :null_value;
| + | |
| − | for select W.ID,
| + | |
| − | W.NAME_ID,
| + | |
| − | W.IZG_ID,
| + | |
| − | W.COUNTRY_ID,
| + | |
| − | W.BARCODE
| + | |
| − | from WARES W
| + | |
| − | where w.country_id=:null_value
| + | |
| − | into :WARE_ID,
| + | |
| − | :NAME_ID,
| + | |
| − | :IZG_ID,
| + | |
| − | :COUNTRY_ID,
| + | |
| − | :BARCODE
| + | |
| − | do
| + | |
| − | begin
| + | |
| − | NEW_VALUE = null;
| + | |
| − | | + | |
| − | select first 1 W.COUNTRY_ID
| + | |
| − | from WARES W
| + | |
| − | where 1 = 1
| + | |
| − | and W.NAME_ID = :NAME_ID
| + | |
| − | and ((W.IZG_ID = :IZG_ID) or (W.BARCODE = :BARCODE))
| + | |
| − | and W.COUNTRY_ID <> :COUNTRY_ID
| + | |
| − | order by W.INSERTDT desc
| + | |
| − | into :NEW_VALUE;
| + | |
| − | | + | |
| − | if (:NEW_VALUE is not null) then
| + | |
| − | update WARES W set W.COUNTRY_ID = :NEW_VALUE where W.ID = :WARE_ID;
| + | |
| − | | + | |
| − | end
| + | |
| − | | + | |
| − | | + | |
| − | /* заполняем изготовителя */
| + | |
| − | null_value = null;
| + | |
| − | select v.id from vals v where v.alttype=0 and V.VTYPE = 3 and v.svalue='' into :null_value;
| + | |
| − | for select W.ID,
| + | |
| − | W.NAME_ID,
| + | |
| − | W.IZG_ID,
| + | |
| − | W.COUNTRY_ID,
| + | |
| − | W.BARCODE
| + | |
| − | from WARES W
| + | |
| − | where w.izg_id=:null_value
| + | |
| − | into :WARE_ID,
| + | |
| − | :NAME_ID,
| + | |
| − | :IZG_ID,
| + | |
| − | :COUNTRY_ID,
| + | |
| − | :BARCODE
| + | |
| − | do
| + | |
| − | begin
| + | |
| − | NEW_VALUE = null;
| + | |
| − | select first 1 W.IZG_ID
| + | |
| − | from WARES W
| + | |
| − | where 1 = 1
| + | |
| − | and W.NAME_ID = :NAME_ID
| + | |
| − | and W.IZG_ID <> :IZG_ID
| + | |
| − | and ((W.COUNTRY_ID = :COUNTRY_ID) or (W.BARCODE = :BARCODE))
| + | |
| − | order by W.INSERTDT desc
| + | |
| − | into :NEW_VALUE;
| + | |
| − | if (:NEW_VALUE is not null) then
| + | |
| − | update WARES W set W.IZG_ID = :NEW_VALUE where W.ID = :WARE_ID;
| + | |
| − | end
| + | |
| − | | + | |
| − | | + | |
| − | | + | |
| − | /* заполняем штрихкод */
| + | |
| − | for select W.ID,
| + | |
| − | W.NAME_ID,
| + | |
| − | W.IZG_ID,
| + | |
| − | W.COUNTRY_ID,
| + | |
| − | W.BARCODE
| + | |
| − | from WARES W
| + | |
| − | where w.barcode = ''
| + | |
| − | into :WARE_ID,
| + | |
| − | :NAME_ID,
| + | |
| − | :IZG_ID,
| + | |
| − | :COUNTRY_ID,
| + | |
| − | :BARCODE
| + | |
| − | do
| + | |
| − | begin
| + | |
| − | NEW_VALUE = null;
| + | |
| − | select first 1 W.barcode
| + | |
| − | from WARES W
| + | |
| − | where 1 = 1
| + | |
| − | and W.NAME_ID = :NAME_ID
| + | |
| − | and W.barcode <> :barcode
| + | |
| − | and ((W.COUNTRY_ID = :COUNTRY_ID) or (W.izg_id = :izg_id))
| + | |
| − | order by W.INSERTDT desc
| + | |
| − | into :NEW_VALUE;
| + | |
| − | if (:NEW_VALUE is not null) then
| + | |
| − | update WARES W set W.barcode = :NEW_VALUE where W.ID = :WARE_ID;
| + | |
| − | end
| + | |
| − | | + | |
| − | | + | |
| − | suspend;
| + | |
| − | | + | |
| − | end^
| + | |
| − | | + | |
| − | SET TERM ; ^
| + | |
| − | | + | |
| − | /* Following GRANT statetements are generated automatically */
| + | |
| − | | + | |
| − | GRANT SELECT ON VALS TO PROCEDURE PR_COMPRESS_WARES;
| + | |
| − | GRANT SELECT,UPDATE ON WARES TO PROCEDURE PR_COMPRESS_WARES;
| + | |
| − | | + | |
| − | /* Existing privileges on this procedure */
| + | |
| − | | + | |
| − | GRANT EXECUTE ON PROCEDURE PR_COMPRESS_WARES TO SYSDBA;
| + | |
| − | </pre>
| + | |
| − | | + | |
| − | ==Лехина процедура по удалению тильд из наименований==
| + | |
| − | <pre>
| + | |
| − | SET TERM ^ ;
| + | |
| − | | + | |
| − | create or alter procedure PR_MAKE_AWESOME_SNAME
| + | |
| − | returns (
| + | |
| − | SNAME_START DM_TEXT,
| + | |
| − | SNAME_FINISH DM_TEXT,
| + | |
| − | S DM_TEXT1024)
| + | |
| − | as
| + | |
| − | declare variable I DM_ID;
| + | |
| − | declare variable K DM_METADATANAME;
| + | |
| − | declare variable AWESOME DM_TEXT;
| + | |
| − | declare variable OLD_ID DM_UUID;
| + | |
| − | declare variable NEW_ID DM_UUID_NULL;
| + | |
| − | declare variable ALTTYPE DM_STATUS;
| + | |
| − | declare variable VTYPE DM_STATUS;
| + | |
| − | declare variable CHECKED_LINE DM_UUID_NULL;
| + | |
| − | begin
| + | |
| − | | + | |
| − | /* исправляем наименования */
| + | |
| − | checked_line='';
| + | |
| − | for select first 1000 w.name_id, v.svalue, v.vtype, v.alttype
| + | |
| − | from wares w
| + | |
| − | left join vals v on v.ID = w.name_id
| + | |
| − | where (v.svalue starting with ' ')
| + | |
| − | or (v.svalue starting with '@')
| + | |
| − | or (v.svalue starting with '~')
| + | |
| − | or (v.svalue starting with 'ъ')
| + | |
| − | or (v.svalue starting with 'Ъ')
| + | |
| − | order by w.name_id asc
| + | |
| − | into :old_ID, :AWESOME, :vtype, :alttype
| + | |
| − | do
| + | |
| − | begin
| + | |
| − | if (:old_id<>:checked_line) then
| + | |
| − | begin
| + | |
| − | checked_line=:old_id;
| + | |
| − | s='';
| + | |
| − | sname_start = :AWESOME;
| + | |
| − | | + | |
| − | new_id = null;
| + | |
| − | I = 110;
| + | |
| − | K = '';
| + | |
| − | | + | |
| − | AWESOME=trim(:AWESOME);
| + | |
| − | | + | |
| − | if (upper(left(:awesome,1))='Ъ') then
| + | |
| − | awesome=right(:awesome,char_length(:awesome)-1);
| + | |
| − | | + | |
| − | while (I > 0) do
| + | |
| − | begin
| + | |
| − | K = '~' || :I;
| + | |
| − | I = :I - 1;
| + | |
| − | AWESOME = replace(:AWESOME, trim(:K || '_'), '');
| + | |
| − | AWESOME = replace(:AWESOME, trim(:K), '');
| + | |
| − | end
| + | |
| − | | + | |
| − | AWESOME = replace(:AWESOME, '~', '');
| + | |
| − | AWESOME = replace(:AWESOME, '@', '');
| + | |
| − | AWESOME = replace(:AWESOME, '_', '');
| + | |
| − | AWESOME = replace(:AWESOME, '''', '');
| + | |
| − | AWESOME = replace(:AWESOME, '"', '');
| + | |
| − | AWESOME = replace(:AWESOME, ' ', ' ');
| + | |
| − | | + | |
| − | | + | |
| − | select first 1 v.id from vals v where v.alttype=:alttype and v.vtype=:vtype and v.svalue=:AWESOME into :new_id;
| + | |
| − | | + | |
| − | if (:new_id is null) then
| + | |
| − | --s='update vals v set v.svalue='''||:AWESOME||''', v.uppervalue=upper('''||:AWESOME||''') where v.id='''||:old_id||'''';
| + | |
| − | update vals v set v.svalue=:AWESOME, v.uppervalue=upper(:AWESOME) where v.id=:old_id;
| + | |
| − | else
| + | |
| − | --s='update wares w set w.name_id='''||:new_id||''' where w.name_id='''||:old_id||'''';
| + | |
| − | update wares w set w.name_id=:new_id, w.sname=:awesome, w.mgn_name=:awesome where w.name_id=:old_id;
| + | |
| − | | + | |
| − | sname_finish = :AWESOME;
| + | |
| − | suspend;
| + | |
| − | end
| + | |
| − | end
| + | |
| − | | + | |
| − | | + | |
| − | /* исправляем изготовителя */
| + | |
| − | checked_line='';
| + | |
| − | for select first 1000 w.izg_id, v.svalue, v.vtype, v.alttype
| + | |
| − | from wares w
| + | |
| − | left join vals v on v.ID = w.izg_id
| + | |
| − | where (v.svalue starting with ' ')
| + | |
| − | or (v.svalue starting with '@')
| + | |
| − | or (v.svalue starting with '~')
| + | |
| − | or (v.svalue starting with 'ъ')
| + | |
| − | or (v.svalue starting with 'Ъ')
| + | |
| − | order by w.izg_id asc
| + | |
| − | into :old_ID, :AWESOME, :vtype, :alttype
| + | |
| − | do
| + | |
| − | begin
| + | |
| − | if (:old_id<>:checked_line) then
| + | |
| − | begin
| + | |
| − | checked_line=:old_id;
| + | |
| − | s='';
| + | |
| − | sname_start = :AWESOME;
| + | |
| − | | + | |
| − | new_id = null;
| + | |
| − | I = 110;
| + | |
| − | K = '';
| + | |
| − | | + | |
| − | AWESOME=trim(:AWESOME);
| + | |
| − | | + | |
| − | if (upper(left(:awesome,1))='Ъ') then
| + | |
| − | awesome=right(:awesome,char_length(:awesome)-1);
| + | |
| − | | + | |
| − | while (I > 0) do
| + | |
| − | begin
| + | |
| − | K = '~' || :I;
| + | |
| − | I = :I - 1;
| + | |
| − | AWESOME = replace(:AWESOME, trim(:K || '_'), '');
| + | |
| − | AWESOME = replace(:AWESOME, trim(:K), '');
| + | |
| − | end
| + | |
| − | | + | |
| − | AWESOME = replace(:AWESOME, '~', '');
| + | |
| − | AWESOME = replace(:AWESOME, '@', '');
| + | |
| − | AWESOME = replace(:AWESOME, '_', '');
| + | |
| − | AWESOME = replace(:AWESOME, '''', '');
| + | |
| − | AWESOME = replace(:AWESOME, '"', '');
| + | |
| − | AWESOME = replace(:AWESOME, ' ', ' ');
| + | |
| − | | + | |
| − | | + | |
| − | select first 1 v.id from vals v where v.alttype=:alttype and v.vtype=:vtype and v.svalue=:AWESOME into :new_id;
| + | |
| − | | + | |
| − | if (:new_id is null) then
| + | |
| − | --s='update vals v set v.svalue='''||:AWESOME||''', v.uppervalue=upper('''||:AWESOME||''') where v.id='''||:old_id||'''';
| + | |
| − | update vals v set v.svalue=:AWESOME, v.uppervalue=upper(:AWESOME) where v.id=:old_id;
| + | |
| − | else
| + | |
| − | --s='update wares w set w.izg_id='''||:new_id||''' where w.izg_id='''||:old_id||'''';
| + | |
| − | update wares w set w.izg_id=:new_id where w.izg_id=:old_id;
| + | |
| − | | + | |
| − | sname_finish = :AWESOME;
| + | |
| − | suspend;
| + | |
| − | end
| + | |
| − | end
| + | |
| − | | + | |
| − | | + | |
| − | | + | |
| − | /* исправляем страну */
| + | |
| − | checked_line='';
| + | |
| − | for select first 1000 w.country_id, v.svalue, v.vtype, v.alttype
| + | |
| − | from wares w
| + | |
| − | left join vals v on v.ID = w.country_id
| + | |
| − | where (v.svalue starting with ' ')
| + | |
| − | or (v.svalue starting with '@')
| + | |
| − | or (v.svalue starting with '~')
| + | |
| − | or (v.svalue starting with 'ъ')
| + | |
| − | or (v.svalue starting with 'Ъ')
| + | |
| − | order by w.country_id asc
| + | |
| − | into :old_ID, :AWESOME, :vtype, :alttype
| + | |
| − | do
| + | |
| − | begin
| + | |
| − | if (:old_id<>:checked_line) then
| + | |
| − | begin
| + | |
| − | checked_line=:old_id;
| + | |
| − | s='';
| + | |
| − | sname_start = :AWESOME;
| + | |
| − | | + | |
| − | new_id = null;
| + | |
| − | I = 110;
| + | |
| − | K = '';
| + | |
| − | | + | |
| − | AWESOME=trim(:AWESOME);
| + | |
| − | | + | |
| − | if (upper(left(:awesome,1))='Ъ') then
| + | |
| − | awesome=right(:awesome,char_length(:awesome)-1);
| + | |
| − | | + | |
| − | while (I > 0) do
| + | |
| − | begin
| + | |
| − | K = '~' || :I;
| + | |
| − | I = :I - 1;
| + | |
| − | AWESOME = replace(:AWESOME, trim(:K || '_'), '');
| + | |
| − | AWESOME = replace(:AWESOME, trim(:K), '');
| + | |
| − | end
| + | |
| − | | + | |
| − | AWESOME = replace(:AWESOME, '~', '');
| + | |
| − | AWESOME = replace(:AWESOME, '@', '');
| + | |
| − | AWESOME = replace(:AWESOME, '_', '');
| + | |
| − | AWESOME = replace(:AWESOME, '''', '');
| + | |
| − | AWESOME = replace(:AWESOME, '"', '');
| + | |
| − | AWESOME = replace(:AWESOME, ' ', ' ');
| + | |
| − | | + | |
| − | | + | |
| − | select first 1 v.id from vals v where v.alttype=:alttype and v.vtype=:vtype and v.svalue=:AWESOME into :new_id;
| + | |
| − | | + | |
| − | if (:new_id is null) then
| + | |
| − | --s='update vals v set v.svalue='''||:AWESOME||''', v.uppervalue=upper('''||:AWESOME||''') where v.id='''||:old_id||'''';
| + | |
| − | update vals v set v.svalue=:AWESOME, v.uppervalue=upper(:AWESOME) where v.id=:old_id;
| + | |
| − | else
| + | |
| − | --s='update wares w set w.country_id='''||:new_id||''' where w.country_id='''||:old_id||'''';
| + | |
| − | update wares w set w.country_id=:new_id where w.country_id=:old_id;
| + | |
| − | | + | |
| − | sname_finish = :AWESOME;
| + | |
| − | suspend;
| + | |
| − | end
| + | |
| − | end
| + | |
| − | | + | |
| − | --suspend;
| + | |
| − | | + | |
| − | end^
| + | |
| − | | + | |
| − | SET TERM ; ^
| + | |
| − | | + | |
| − | /* Following GRANT statetements are generated automatically */
| + | |
| − | | + | |
| − | GRANT SELECT,UPDATE ON WARES TO PROCEDURE PR_MAKE_AWESOME_SNAME;
| + | |
| − | GRANT SELECT,UPDATE ON VALS TO PROCEDURE PR_MAKE_AWESOME_SNAME;
| + | |
| − | | + | |
| − | /* Existing privileges on this procedure */
| + | |
| − | | + | |
| − | GRANT EXECUTE ON PROCEDURE PR_MAKE_AWESOME_SNAME TO SYSDBA;
| + | |
| − | </pre>
| + | |
| − | | + | |
| − | ==Лехин триггер, чтобы не пересвязывались партии - НЕ ТЕСТИРОВАЛСЯ!!!==
| + | |
| − | <pre>
| + | |
| − | /******************************************************************************/
| + | |
| − | /*** Following SET SQL DIALECT is just for the Database Comparer ***/
| + | |
| − | /******************************************************************************/
| + | |
| − | SET SQL DIALECT 3;
| + | |
| − | | + | |
| − | | + | |
| − | SET TERM ^ ;
| + | |
| − | | + | |
| − | | + | |
| − | | + | |
| − | CREATE OR ALTER TRIGGER WARES_BIU_COWA FOR WARES | + | |
| − | ACTIVE BEFORE INSERT OR UPDATE POSITION 0 | + | |
| | AS | | AS |
| − | /* заносим все поля в таблице wares в переменные */
| |
| − | declare variable ID type of DM_UUID;
| |
| − | declare variable NAME_ID type of DM_UUID;
| |
| − | declare variable IZG_ID type of DM_UUID;
| |
| − | declare variable COUNTRY_ID type of DM_UUID;
| |
| − | declare variable ORIG_CODE type of DM_TEXT;
| |
| − | declare variable ORIG_NAME_ID type of DM_UUID;
| |
| − | declare variable ORIG_IZG_ID type of DM_UUID;
| |
| − | declare variable ORIG_COUNTRY_ID type of DM_UUID;
| |
| − | declare variable BARCODE type of DM_TEXT;
| |
| − | declare variable Z_ID type of DM_ID;
| |
| − | declare variable SKLAD_ID type of DM_TEXT;
| |
| − | declare variable INSERTDT type of DM_DATETIME;
| |
| − | declare variable PACKET type of DM_ID;
| |
| − | declare variable L_ID type of DM_UUID;
| |
| − | declare variable cur_id type of DM_UUID;
| |
| − | declare variable D$SRVUPDDT type of DM_DATETIME;
| |
| − | declare variable SNAME type of DM_TEXT1024;
| |
| − | declare variable MGN_NAME type of DM_TEXT1024;
| |
| − | declare variable MGN_ID type of DM_ID_NULL;
| |
| − | declare variable MGN_SOURCE type of DM_TEXT1024;
| |
| − | declare variable WHASH type of DM_ID;
| |
| − | declare variable NEW_COUNTRY_ID type of DM_UUID_NULL;
| |
| − | declare variable NEW_IZG_ID type of DM_UUID_NULL;
| |
| | begin | | begin |
| − | /* находим тот варес, который уже есть в базе */
| + | exception EX_DONT_WORK; --Вход в программу заблокирован. Идет обновление... |
| − | select
| + | |
| − | ID,
| + | |
| − | NAME_ID,
| + | |
| − | IZG_ID,
| + | |
| − | COUNTRY_ID,
| + | |
| − | ORIG_CODE,
| + | |
| − | ORIG_NAME_ID,
| + | |
| − | ORIG_IZG_ID,
| + | |
| − | ORIG_COUNTRY_ID,
| + | |
| − | BARCODE,
| + | |
| − | Z_ID,
| + | |
| − | SKLAD_ID,
| + | |
| − | INSERTDT,
| + | |
| − | PACKET,
| + | |
| − | L_ID,
| + | |
| − | D$UUID,
| + | |
| − | D$SRVUPDDT,
| + | |
| − | SNAME,
| + | |
| − | MGN_NAME,
| + | |
| − | MGN_ID,
| + | |
| − | MGN_SOURCE,
| + | |
| − | WHASH
| + | |
| − | from wares where | + | |
| − | NAME_ID=new.name_id and IZG_ID=new.izg_id and COUNTRY_ID=new.COUNTRY_ID and BARCODE=new.BARCODE and d$uuid<>new.d$uuid into
| + | |
| − | :ID,
| + | |
| − | :NAME_ID,
| + | |
| − | :IZG_ID,
| + | |
| − | :COUNTRY_ID,
| + | |
| − | :ORIG_CODE,
| + | |
| − | :ORIG_NAME_ID,
| + | |
| − | :ORIG_IZG_ID,
| + | |
| − | :ORIG_COUNTRY_ID,
| + | |
| − | :BARCODE,
| + | |
| − | :Z_ID,
| + | |
| − | :SKLAD_ID,
| + | |
| − | :INSERTDT,
| + | |
| − | :PACKET,
| + | |
| − | :L_ID,
| + | |
| − | :cur_id,
| + | |
| − | :D$SRVUPDDT,
| + | |
| − | :SNAME,
| + | |
| − | :MGN_NAME,
| + | |
| − | :MGN_ID,
| + | |
| − | :MGN_SOURCE,
| + | |
| − | :WHASH;
| + | |
| − | | + | |
| − | /* если ничего не нашли, то выходим */
| + | |
| − | if (:cur_id is null) then exit;
| + | |
| − | | + | |
| − | /* это условие я тоже не понял */
| + | |
| − | --if (not exists(select id from wares_log where id=:new.id)) then | + | |
| − | --begin
| + | |
| − | --end
| + | |
| − | | + | |
| − | /* вот это я не понял что вообще значит */
| + | |
| − | update wares_log set ACTUAL_WARE_ID=new.d$uuid where ACTUAL_WARE_ID=:cur_id;
| + | |
| − | | + | |
| − | /* делаем связку нового товара на текущий варес в базе */
| + | |
| − | insert into wares_log (ID,NAME_ID,IZG_ID,COUNTRY_ID,ORIG_CODE,ORIG_NAME_ID,ORIG_IZG_ID,ORIG_COUNTRY_ID,BARCODE,Z_ID,SKLAD_ID,INSERTDT,PACKET,L_ID,ACTUAL_WARE_ID)
| + | |
| − | values (new.ID,new.NAME_ID,new.IZG_ID,new.COUNTRY_ID,new.ORIG_CODE,new.ORIG_NAME_ID,new.ORIG_IZG_ID,new.ORIG_COUNTRY_ID,new.BARCODE,new.Z_ID,new.SKLAD_ID,new.INSERTDT,new.PACKET,new.L_ID,:cur_id);
| + | |
| − | | + | |
| − | /* !!! */
| + | |
| − | /* подменяем новые значения на старые, */
| + | |
| − | /* чтобы после выхода из триггера у нас снова создался ба старый варес */
| + | |
| − | /* соответственно со старым d$uuid */
| + | |
| − | /* и нам не нужно пересвязывать партии и другие таблицы */
| + | |
| − | /* !!! */
| + | |
| − | new.id=:ID;
| + | |
| − | new.name_id=:NAME_ID;
| + | |
| − | new.izg_id=:IZG_ID;
| + | |
| − | new.country_id=:COUNTRY_ID;
| + | |
| − | new.orig_code=:ORIG_CODE;
| + | |
| − | new.orig_name_id=:ORIG_NAME_ID;
| + | |
| − | new.orig_izg_id=:ORIG_IZG_ID;
| + | |
| − | new.orig_country_id=:ORIG_COUNTRY_ID;
| + | |
| − | new.barcode=:BARCODE;
| + | |
| − | new.z_id=:Z_ID;
| + | |
| − | new.sklad_id=:SKLAD_ID;
| + | |
| − | new.insertdt=:INSERTDT;
| + | |
| − | new.packet=:PACKET;
| + | |
| − | new.l_id=:L_ID;
| + | |
| − | new.d$uuid=:cur_id;
| + | |
| − | new.d$srvupddt=:D$SRVUPDDT;
| + | |
| − | new.sname=:SNAME;
| + | |
| − | new.mgn_name=:MGN_NAME;
| + | |
| − | new.mgn_name=:MGN_ID;
| + | |
| − | new.mgn_name=:MGN_SOURCE;
| + | |
| − | new.whash=:WHASH;
| + | |
| − | | + | |
| − | /* удаляем старый варес. */
| + | |
| − | /* по выходу из триггера он снова будет создан */
| + | |
| − | delete from wares where d$uuid=:cur_id;
| + | |
| − | | + | |
| − | | + | |
| − | /* код старого триггера */
| + | |
| − | /*
| + | |
| − | AS
| + | |
| − | declare variable cur_id type of DM_UUID;
| + | |
| − | begin
| + | |
| − | select d$uuid from wares where
| + | |
| − | NAME_ID=new.name_id and IZG_ID=new.izg_id and COUNTRY_ID=new.COUNTRY_ID and BARCODE=new.BARCODE and d$uuid<>new.d$uuid into :cur_id;
| + | |
| − | if (cur_id is null) then exit;
| + | |
| − | if (not exists(select id from wares_log where id=:cur_id and actual_ware_id=new.id)) then
| + | |
| − | begin
| + | |
| − | update wares_log set ACTUAL_WARE_ID=new.d$uuid where ACTUAL_WARE_ID=:cur_id;
| + | |
| − | insert into wares_log (ID,NAME_ID,IZG_ID,COUNTRY_ID,ORIG_CODE,ORIG_NAME_ID,ORIG_IZG_ID,ORIG_COUNTRY_ID,BARCODE,Z_ID,SKLAD_ID,INSERTDT,PACKET,L_ID,ACTUAL_WARE_ID)
| + | |
| − | select ID,NAME_ID,IZG_ID,COUNTRY_ID,ORIG_CODE,ORIG_NAME_ID,ORIG_IZG_ID,ORIG_COUNTRY_ID,BARCODE,Z_ID,SKLAD_ID,INSERTDT,PACKET,L_ID,new.d$uuid from wares where d$uuid=:cur_id;
| + | |
| − | end
| + | |
| − | update parts set ware_id=new.d$uuid where ware_id=:cur_id;
| + | |
| − | update doc_detail_active set ware_id=new.d$uuid where ware_id=:cur_id;
| + | |
| − | delete from wares where d$uuid=:cur_id;
| + | |
| − | end
| + | |
| − | */
| + | |
| − | | + | |
| | end | | end |
| | ^ | | ^ |
| − |
| |
| − |
| |
| | SET TERM ; ^ | | SET TERM ; ^ |
| − | </pre>
| + | INSERT INTO Z$SERVICE (ID, TASK, STATUS, INSERTDT, STARTDT, ENDDT, TXTLOG) VALUES (999, 'POLITE_RESTORE', 0, current_timestamp, current_timestamp, current_timestamp, NULL); |
| − | | + | update sessions s |
| − | ==Скрипт Андрея - НЕ ДЛЯ СЕТИ!!!==
| + | set s.enddt=current_timestamp, s.endflag=0, s.endsession_id=s.id |
| − | [[Сжатие товаров| Сжатие товаров в одиночной аптеки перед внедрением единого окна]]
| + | where 1=1 |
| − | | + | and s.prog containing 'manager' |
| − | ==Лешины скрипты - ДЛЯ РАБОТЫ МЕНЕДЖЕРА С ЕДИНЫМ ОКНОМ==
| + | and s.endflag is null |
| − | <pre>
| + | and cast(s.startdt as dm_date) >= dateadd(-3 day to current_date); |
| − | create or alter procedure PR_AUTO_WARESLINK (
| + | |
| − | DOC_ID DM_ID_NULL,
| + | |
| − | ACTIVE_ID DM_ID_NULL)
| + | |
| − | as
| + | |
| − | declare variable DDA_BARCODE DM_TEXT1024;
| + | |
| − | declare variable DDA_WARE_ID DM_UUID_NULL;
| + | |
| − | declare variable DDA_ORIG_COUNTRYID DM_UUID_NULL;
| + | |
| − | declare variable DDA_ORIG_IZGID DM_UUID_NULL;
| + | |
| − | declare variable DDA_ORIG_NAMEID DM_UUID_NULL;
| + | |
| − | declare variable DDA_COUNTRY_ID DM_UUID_NULL;
| + | |
| − | declare variable DDA_IZG_ID DM_UUID_NULL;
| + | |
| − | declare variable DDA_NAME_ID DM_UUID_NULL;
| + | |
| − | declare variable DDA_Z_ID DM_UUID_NULL;
| + | |
| − | declare variable DDA_SKLAD_ID DM_UUID_NULL;
| + | |
| − | declare variable DDALOG_BARCODE DM_TEXT1024;
| + | |
| − | declare variable DDALOG_WARE_ID DM_UUID_NULL;
| + | |
| − | declare variable DDALOG_ORIG_COUNTRYID DM_UUID_NULL;
| + | |
| − | declare variable DDALOG_ORIG_IZGID DM_UUID_NULL;
| + | |
| − | declare variable DDALOG_ORIG_NAMEID DM_UUID_NULL;
| + | |
| − | declare variable DDALOG_COUNTRY_ID DM_UUID_NULL;
| + | |
| − | declare variable DDALOG_IZG_ID DM_UUID_NULL;
| + | |
| − | declare variable DDALOG_NAME_ID DM_UUID_NULL;
| + | |
| − | declare variable DDALOG_Z_ID DM_UUID_NULL;
| + | |
| − | declare variable DDALOG_SKLAD_ID DM_UUID_NULL;
| + | |
| − | declare variable DDALOG2_BARCODE DM_TEXT1024;
| + | |
| − | declare variable DDALOG2_WARE_ID DM_UUID_NULL;
| + | |
| − | declare variable DDALOG2_ORIG_COUNTRYID DM_UUID_NULL;
| + | |
| − | declare variable DDALOG2_ORIG_IZGID DM_UUID_NULL;
| + | |
| − | declare variable DDALOG2_ORIG_NAMEID DM_UUID_NULL;
| + | |
| − | declare variable DDALOG2_COUNTRY_ID DM_UUID_NULL;
| + | |
| − | declare variable DDALOG2_IZG_ID DM_UUID_NULL;
| + | |
| − | declare variable DDALOG2_NAME_ID DM_UUID_NULL;
| + | |
| − | declare variable DDALOG2_Z_ID DM_UUID_NULL;
| + | |
| − | declare variable DDALOG2_SKLAD_ID DM_UUID_NULL;
| + | |
| − | begin
| + | |
| − | | + | |
| − | select BCODE_IZG,
| + | |
| − | WARE_ID,
| + | |
| − | (select VAL_ID
| + | |
| − | from PR_GETVAL_ID(DDA.SNAME, 0, DDA.PART_TYPE)) as NAME_ID,
| + | |
| − | (select VAL_ID
| + | |
| − | from PR_GETVAL_ID(DDA.SIZG, 3, DDA.PART_TYPE)) as IZG_ID,
| + | |
| − | (select VAL_ID
| + | |
| − | from PR_GETVAL_ID(DDA.SCOUNTRY, 2, DDA.PART_TYPE)) as COUNTRY_ID,
| + | |
| − | (select VAL_ID
| + | |
| − | from PR_GETVAL_ID(DDA.SORIG_NAME, 1, DDA.PART_TYPE)) as ORIG_NAME_ID,
| + | |
| − | (select VAL_ID
| + | |
| − | from PR_GETVAL_ID(DDA.SORIG_IZG, 6, DDA.PART_TYPE)) as ORGI_IZG_ID,
| + | |
| − | (select VAL_ID
| + | |
| − | from PR_GETVAL_ID(DDA.SORIG_COUNTRY, 5, DDA.PART_TYPE)) as ORIG_COUNTRY_ID,
| + | |
| − | Z_ID,
| + | |
| − | SKLAD_ID
| + | |
| − | from DOC_DETAIL_ACTIVE DDA
| + | |
| − | where DOC_ID = :DOC_ID
| + | |
| − | and ID = :ACTIVE_ID
| + | |
| − | into DDA_BARCODE,
| + | |
| − | DDA_WARE_ID,
| + | |
| − | DDA_NAME_ID,
| + | |
| − | DDA_IZG_ID,
| + | |
| − | DDA_COUNTRY_ID,
| + | |
| − | DDA_ORIG_NAMEID,
| + | |
| − | DDA_ORIG_IZGID,
| + | |
| − | DDA_ORIG_COUNTRYID,
| + | |
| − | DDA_Z_ID,
| + | |
| − | DDA_SKLAD_ID;
| + | |
| − | | + | |
| − | select first 1 BCODE_IZG,
| + | |
| − | WARE_ID,
| + | |
| − | (select VAL_ID
| + | |
| − | from PR_GETVAL_ID(DDAL.SNAME, 0, DDAL.PART_TYPE)) as NAME_ID,
| + | |
| − | (select VAL_ID
| + | |
| − | from PR_GETVAL_ID(DDAL.SIZG, 3, DDAL.PART_TYPE)) as IZG_ID,
| + | |
| − | (select VAL_ID
| + | |
| − | from PR_GETVAL_ID(DDAL.SCOUNTRY, 2, DDAL.PART_TYPE)) as COUNTRY_ID,
| + | |
| − | (select VAL_ID
| + | |
| − | from PR_GETVAL_ID(DDAL.SORIG_NAME, 1, DDAL.PART_TYPE)) as ORIG_NAME_ID,
| + | |
| − | (select VAL_ID
| + | |
| − | from PR_GETVAL_ID(DDAL.SORIG_IZG, 6, DDAL.PART_TYPE)) as ORGI_IZG_ID,
| + | |
| − | (select VAL_ID
| + | |
| − | from PR_GETVAL_ID(DDAL.SORIG_COUNTRY, 5, DDAL.PART_TYPE)) as ORIG_COUNTRY_ID,
| + | |
| − | Z_ID,
| + | |
| − | SKLAD_ID
| + | |
| − | from DOC_DETAIL_ACTIVE_LOG DDAL
| + | |
| − | where DOC_ID = :DOC_ID
| + | |
| − | and ID = :ACTIVE_ID
| + | |
| − | order by LOG_ID
| + | |
| − | into DDALOG_BARCODE,
| + | |
| − | DDALOG_WARE_ID,
| + | |
| − | DDALOG_NAME_ID,
| + | |
| − | DDALOG_IZG_ID,
| + | |
| − | DDALOG_COUNTRY_ID,
| + | |
| − | DDALOG_ORIG_NAMEID,
| + | |
| − | DDALOG_ORIG_IZGID,
| + | |
| − | DDALOG_ORIG_COUNTRYID,
| + | |
| − | DDALOG_Z_ID,
| + | |
| − | DDALOG_SKLAD_ID;
| + | |
| − | | + | |
| − | select first 1 skip 1 BCODE_IZG,
| + | |
| − | WARE_ID,
| + | |
| − | (select VAL_ID
| + | |
| − | from PR_GETVAL_ID(DDAL.SNAME, 0, DDAL.PART_TYPE)) as NAME_ID,
| + | |
| − | (select VAL_ID
| + | |
| − | from PR_GETVAL_ID(DDAL.SIZG, 3, DDAL.PART_TYPE)) as IZG_ID,
| + | |
| − | (select VAL_ID
| + | |
| − | from PR_GETVAL_ID(DDAL.SCOUNTRY, 2, DDAL.PART_TYPE)) as COUNTRY_ID,
| + | |
| − | (select VAL_ID
| + | |
| − | from PR_GETVAL_ID(DDAL.SORIG_NAME, 1, DDAL.PART_TYPE)) as ORIG_NAME_ID,
| + | |
| − | (select VAL_ID
| + | |
| − | from PR_GETVAL_ID(DDAL.SORIG_IZG, 6, DDAL.PART_TYPE)) as ORGI_IZG_ID,
| + | |
| − | (select VAL_ID
| + | |
| − | from PR_GETVAL_ID(DDAL.SORIG_COUNTRY, 5, DDAL.PART_TYPE)) as ORIG_COUNTRY_ID,
| + | |
| − | Z_ID,
| + | |
| − | SKLAD_ID
| + | |
| − | from DOC_DETAIL_ACTIVE_LOG DDAL
| + | |
| − | where DOC_ID = :DOC_ID
| + | |
| − | and ID = :ACTIVE_ID
| + | |
| − | order by LOG_ID
| + | |
| − | into DDALOG2_BARCODE,
| + | |
| − | DDALOG2_WARE_ID,
| + | |
| − | DDALOG2_NAME_ID,
| + | |
| − | DDALOG2_IZG_ID,
| + | |
| − | DDALOG2_COUNTRY_ID,
| + | |
| − | DDALOG2_ORIG_NAMEID,
| + | |
| − | DDALOG2_ORIG_IZGID,
| + | |
| − | DDALOG2_ORIG_COUNTRYID,
| + | |
| − | DDALOG2_Z_ID,
| + | |
| − | DDALOG2_SKLAD_ID;
| + | |
| − | | + | |
| − | if (((DDA_WARE_ID <> '-1') and
| + | |
| − | (DDA_WARE_ID <> '0') and
| + | |
| − | (DDA_WARE_ID is not null)) and
| + | |
| − | ((DDALOG2_WARE_ID <> '-1') and
| + | |
| − | (DDALOG2_WARE_ID <> '0') and
| + | |
| − | (DDALOG2_WARE_ID is not null)) and
| + | |
| − | (DDA_BARCODE = DDALOG2_BARCODE) and
| + | |
| − | (DDA_WARE_ID <> DDALOG2_WARE_ID)) then
| + | |
| − | begin
| + | |
| − | update WARES
| + | |
| − | set NAME_ID = :DDA_NAME_ID,
| + | |
| − | IZG_ID = :DDA_IZG_ID,
| + | |
| − | COUNTRY_ID = :DDA_COUNTRY_ID,
| + | |
| − | ORIG_NAME_ID = :DDA_ORIG_NAMEID,
| + | |
| − | ORIG_IZG_ID = :DDA_ORIG_IZGID,
| + | |
| − | ORIG_COUNTRY_ID = :DDA_ORIG_COUNTRYID,
| + | |
| − | BARCODE = :DDA_BARCODE
| + | |
| − | where ID = :DDALOG2_WARE_ID;
| + | |
| − | exit;
| + | |
| − | end
| + | |
| − | | + | |
| − | if ((DDALOG_WARE_ID = '0') or (DDALOG_WARE_ID = '-1') or (DDALOG_WARE_ID is null)) then
| + | |
| − | begin
| + | |
| − | insert into WARES_LOG (ID, NAME_ID, IZG_ID, COUNTRY_ID, ORIG_NAME_ID, ORIG_IZG_ID, ORIG_COUNTRY_ID, BARCODE, Z_ID,
| + | |
| − | SKLAD_ID)
| + | |
| − | values (:DDA_WARE_ID, :DDALOG_NAME_ID, :DDALOG_IZG_ID, :DDALOG_COUNTRY_ID, :DDALOG_ORIG_NAMEID, :DDALOG_ORIG_IZGID,
| + | |
| − | :DDALOG_ORIG_COUNTRYID, :DDALOG_BARCODE, :DDALOG_Z_ID, :DDALOG_SKLAD_ID);
| + | |
| − | | + | |
| − | end
| + | |
| − | else
| + | |
| − | if (((DDA_WARE_ID <> '0') and
| + | |
| − | (DDA_WARE_ID <> '-1') and
| + | |
| − | (DDA_WARE_ID is not null)) and
| + | |
| − | ((DDA_NAME_ID <> DDALOG_NAME_ID) or (DDA_IZG_ID <> DDALOG_IZG_ID) or (DDA_COUNTRY_ID <> DDALOG_COUNTRY_ID) or (DDA_ORIG_NAMEID <> DDALOG_ORIG_NAMEID) or (DDA_ORIG_IZGID <> DDALOG_ORIG_IZGID) or (DDA_ORIG_COUNTRYID <> DDALOG_ORIG_COUNTRYID)) and
| + | |
| − | (DDA_BARCODE = DDALOG_BARCODE)) then
| + | |
| − | begin
| + | |
| − | update WARES
| + | |
| − | set NAME_ID = :DDA_NAME_ID,
| + | |
| − | IZG_ID = :DDA_IZG_ID,
| + | |
| − | COUNTRY_ID = :DDA_COUNTRY_ID,
| + | |
| − | ORIG_NAME_ID = :DDA_ORIG_NAMEID,
| + | |
| − | ORIG_IZG_ID = :DDA_ORIG_IZGID,
| + | |
| − | ORIG_COUNTRY_ID = :DDA_ORIG_COUNTRYID,
| + | |
| − | BARCODE = :DDA_BARCODE
| + | |
| − | where ID = :DDALOG_WARE_ID;
| + | |
| − | end
| + | |
| − | | + | |
| − | end;
| + | |
| − | | + | |
| − | grant execute
| + | |
| − | on procedure PR_GETVAL_ID to procedure PR_AUTO_WARESLINK;
| + | |
| − | grant select on DOC_DETAIL_ACTIVE to procedure PR_AUTO_WARESLINK;
| + | |
| − | grant select on DOC_DETAIL_ACTIVE_LOG to procedure PR_AUTO_WARESLINK;
| + | |
| − | grant insert on WARES_LOG to procedure PR_AUTO_WARESLINK;
| + | |
| − | grant select,
| + | |
| − | update on WARES to procedure PR_AUTO_WARESLINK;
| + | |
| − | grant execute
| + | |
| − | on procedure PR_AUTO_WARESLINK to SYSDBA;
| + | |
| − | | + | |
| − | create or alter procedure PR_MAKEGOODWAREVALUES(SNAME type of DM_TEXT, SORIG_NAME type of DM_TEXT, SIZG type of DM_TEXT, SORIG_IZG type of DM_TEXT, SCOUNTRY type of DM_TEXT, SORIG_COUNTRY type of DM_TEXT, ORIG_CODE type of DM_TEXT, ACTIVE_ID type of DM_ID, ALTTYPE DM_STATUS, BARCODE DM_TEXT1024 = '') returns(GOODNAME type of DM_TEXT, GOODIZG type of DM_TEXT, GOODCOUNTRY type of DM_TEXT, GOODBARCODE DM_TEXT)
| + | |
| − | as
| + | |
| − | declare variable WARE_ID type of DM_UUID_NULL;
| + | |
| − | declare variable NAME_ID type of DM_UUID_NULL;
| + | |
| − | declare variable ORIG_NAME_ID type of DM_UUID_NULL;
| + | |
| − | declare variable IZG_ID type of DM_UUID_NULL;
| + | |
| − | declare variable ORIG_IZG_ID type of DM_UUID_NULL;
| + | |
| − | declare variable COUNTRY_ID type of DM_UUID_NULL;
| + | |
| − | declare variable ORIG_COUNTRY_ID type of DM_UUID_NULL;
| + | |
| − | begin
| + | |
| − | | + | |
| − | /*
| + | |
| − | select val_id from pr_getval_id(:sname,0,:alttype) into :name_id;
| + | |
| − | select val_id from pr_getval_id(:sorig_name,1,:alttype) into :orig_name_id;
| + | |
| − | select val_id from pr_getval_id(:sizg,3,:alttype) into :izg_id;
| + | |
| − | select val_id from pr_getval_id(:sorig_izg,6,:alttype) into :orig_izg_id;
| + | |
| − | select val_id from pr_getval_id(:scountry,2,:alttype) into :country_id;
| + | |
| − | select val_id from pr_getval_id(:sorig_country,5,:alttype) into :orig_country_id;
| + | |
| − | */
| + | |
| − | | + | |
| − | select ID
| + | |
| − | from VALS
| + | |
| − | where VTYPE = 0
| + | |
| − | and ALTTYPE = :ALTTYPE
| + | |
| − | and SVALUE = :SNAME
| + | |
| − | into :NAME_ID;
| + | |
| − | select ID
| + | |
| − | from VALS
| + | |
| − | where VTYPE = 1
| + | |
| − | and ALTTYPE = :ALTTYPE
| + | |
| − | and SVALUE = :SORIG_NAME
| + | |
| − | into :ORIG_NAME_ID;
| + | |
| − | select ID
| + | |
| − | from VALS
| + | |
| − | where VTYPE = 3
| + | |
| − | and ALTTYPE = :ALTTYPE
| + | |
| − | and SVALUE = :SIZG
| + | |
| − | into :IZG_ID;
| + | |
| − | select ID
| + | |
| − | from VALS
| + | |
| − | where VTYPE = 6
| + | |
| − | and ALTTYPE = :ALTTYPE
| + | |
| − | and SVALUE = :SORIG_IZG
| + | |
| − | into :ORIG_IZG_ID;
| + | |
| − | select ID
| + | |
| − | from VALS
| + | |
| − | where VTYPE = 2
| + | |
| − | and ALTTYPE = :ALTTYPE
| + | |
| − | and SVALUE = :SCOUNTRY
| + | |
| − | into :COUNTRY_ID;
| + | |
| − | select ID
| + | |
| − | from VALS
| + | |
| − | where VTYPE = 5
| + | |
| − | and ALTTYPE = :ALTTYPE
| + | |
| − | and SVALUE = :SORIG_COUNTRY
| + | |
| − | into :ORIG_COUNTRY_ID;
| + | |
| − | | + | |
| − | select WARE_ID
| + | |
| − | from PR_GETWARE_BY_IDS(:NAME_ID, :IZG_ID, :COUNTRY_ID, :ORIG_CODE, :ORIG_NAME_ID, :ORIG_IZG_ID, :ORIG_COUNTRY_ID, 0, 1, :BARCODE)
| + | |
| − | into :WARE_ID;
| + | |
| − | if (WARE_ID is not null) then
| + | |
| − | begin
| + | |
| − | /* select actualware_id from PR_GETACTUALWAREID(:ware_id) into :ware_id; */
| + | |
| − | select SNAME,
| + | |
| − | SIZG,
| + | |
| − | SCOUNTRY,
| + | |
| − | BARCODE
| + | |
| − | from VW_WARES
| + | |
| − | where ID = :WARE_ID
| + | |
| − | into :GOODNAME,
| + | |
| − | :GOODIZG,
| + | |
| − | :GOODCOUNTRY,
| + | |
| − | :GOODBARCODE;
| + | |
| − | /* if ((active_id>0) and ((goodname<>sname) or (goodizg<>sizg) or (goodcountry<>scountry))) then */
| + | |
| − | /* insert into doc_detail_active_log(id,sname,sizg,scountry,part_type) values (:active_id,:sname,:sizg,:scountry,:alttype); */
| + | |
| − | /* goodname='2';--sname; */
| + | |
| − | if (GOODNAME is null) then
| + | |
| − | GOODNAME = SNAME;
| + | |
| − | if (GOODIZG is null) then
| + | |
| − | GOODIZG = SIZG;
| + | |
| − | if (GOODCOUNTRY is null) then
| + | |
| − | GOODCOUNTRY = SCOUNTRY;
| + | |
| − | if (GOODNAME is null) then
| + | |
| − | GOODNAME = SORIG_NAME;
| + | |
| − | if (GOODIZG is null) then
| + | |
| − | GOODIZG = SORIG_IZG;
| + | |
| − | if (GOODCOUNTRY is null) then
| + | |
| − | GOODCOUNTRY = SORIG_COUNTRY;
| + | |
| − | if (GOODBARCODE is null) then
| + | |
| − | GOODBARCODE = BARCODE;
| + | |
| − | suspend;
| + | |
| − | exit;
| + | |
| − | end
| + | |
| − | | + | |
| − | select WARE_ID
| + | |
| − | from PR_GETWARE_BY_IDS(:NAME_ID, :IZG_ID, :COUNTRY_ID, :ORIG_CODE, :ORIG_NAME_ID, :ORIG_IZG_ID, :ORIG_COUNTRY_ID, 0, null, :BARCODE)
| + | |
| − | into :WARE_ID;
| + | |
| − | if (WARE_ID is not null) then
| + | |
| − | begin
| + | |
| − | /* select actualware_id from PR_GETACTUALWAREID(:ware_id) into :ware_id; */
| + | |
| − | /* goodname='1';--sname; */
| + | |
| − | GOODNAME = SNAME;
| + | |
| − | GOODIZG = SIZG;
| + | |
| − | GOODCOUNTRY = SCOUNTRY;
| + | |
| − | GOODBARCODE = BARCODE;
| + | |
| − | | + | |
| − | suspend;
| + | |
| − | exit;
| + | |
| − | end
| + | |
| − | | + | |
| − | WARE_ID = null;
| + | |
| − | if (ORIG_NAME_ID is not null) then
| + | |
| − | begin
| + | |
| − | select first 1 ID
| + | |
| − | from WARES
| + | |
| − | where ORIG_NAME_ID = :ORIG_NAME_ID
| + | |
| − | order by ID desc
| + | |
| − | into :WARE_ID;
| + | |
| − | if (WARE_ID is null) then
| + | |
| − | select first 1 iif(ACTUAL_WARE_ID is null, ID, ACTUAL_WARE_ID)
| + | |
| − | from WARES_LOG
| + | |
| − | where ORIG_NAME_ID = :ORIG_NAME_ID
| + | |
| − | order by LOG_ID desc
| + | |
| − | into :WARE_ID;
| + | |
| − | end
| + | |
| − | if ((WARE_ID is null) and
| + | |
| − | (NAME_ID is not null)) then
| + | |
| − | begin
| + | |
| − | select first 1 ID
| + | |
| − | from WARES
| + | |
| − | where NAME_ID = :NAME_ID
| + | |
| − | into :WARE_ID;
| + | |
| − | if (WARE_ID is null) then
| + | |
| − | select first 1 iif(ACTUAL_WARE_ID is null, ID, ACTUAL_WARE_ID)
| + | |
| − | from WARES_LOG
| + | |
| − | where NAME_ID = :NAME_ID
| + | |
| − | order by LOG_ID desc
| + | |
| − | into :WARE_ID;
| + | |
| − | end
| + | |
| − | if (WARE_ID is null) then
| + | |
| − | begin
| + | |
| − | /* goodname='3';--sname; */
| + | |
| − | GOODNAME = SNAME;
| + | |
| − | NAME_ID = null;
| + | |
| − | end
| + | |
| − | else
| + | |
| − | begin
| + | |
| − | /* select actualware_id from PR_GETACTUALWAREID(:ware_id) into :ware_id; */
| + | |
| − | select W.NAME_ID,
| + | |
| − | V.SVALUE
| + | |
| − | from WARES W
| + | |
| − | left join VALS V on W.NAME_ID = V.ID
| + | |
| − | where W.ID = :WARE_ID
| + | |
| − | into :NAME_ID,
| + | |
| − | :GOODNAME;
| + | |
| − | end
| + | |
| − | | + | |
| − | WARE_ID = null;
| + | |
| − | if (ORIG_IZG_ID is not null) then
| + | |
| − | begin
| + | |
| − | select first 1 ID
| + | |
| − | from WARES
| + | |
| − | where ORIG_IZG_ID = :ORIG_IZG_ID
| + | |
| − | into :WARE_ID;
| + | |
| − | if (WARE_ID is null) then
| + | |
| − | select first 1 iif(ACTUAL_WARE_ID is null, ID, ACTUAL_WARE_ID)
| + | |
| − | from WARES_LOG
| + | |
| − | where ORIG_IZG_ID = :ORIG_IZG_ID
| + | |
| − | order by LOG_ID desc
| + | |
| − | into :WARE_ID;
| + | |
| − | end
| + | |
| − | if ((WARE_ID is null) and
| + | |
| − | (IZG_ID is not null)) then
| + | |
| − | begin
| + | |
| − | select first 1 ID
| + | |
| − | from WARES
| + | |
| − | where IZG_ID = :IZG_ID
| + | |
| − | into :WARE_ID;
| + | |
| − | if (WARE_ID is null) then
| + | |
| − | select first 1 iif(ACTUAL_WARE_ID is null, ID, ACTUAL_WARE_ID)
| + | |
| − | from WARES_LOG
| + | |
| − | where IZG_ID = :IZG_ID
| + | |
| − | order by LOG_ID desc
| + | |
| − | into :WARE_ID;
| + | |
| − | end
| + | |
| − | if (WARE_ID is null) then
| + | |
| − | GOODIZG = SIZG;
| + | |
| − | else
| + | |
| − | begin
| + | |
| − | /* select actualware_id from PR_GETACTUALWAREID(:ware_id) into :ware_id; */
| + | |
| − | select W.IZG_ID,
| + | |
| − | V.SVALUE
| + | |
| − | from WARES W
| + | |
| − | left join VALS V on W.IZG_ID = V.ID
| + | |
| − | where W.ID = :WARE_ID
| + | |
| − | into :IZG_ID,
| + | |
| − | :GOODIZG;
| + | |
| − | end
| + | |
| − | | + | |
| − | WARE_ID = null;
| + | |
| − | if (ORIG_COUNTRY_ID is not null) then
| + | |
| − | begin
| + | |
| − | select first 1 ID
| + | |
| − | from WARES
| + | |
| − | where ORIG_COUNTRY_ID = :ORIG_COUNTRY_ID
| + | |
| − | into :WARE_ID;
| + | |
| − | if (WARE_ID is null) then
| + | |
| − | select first 1 iif(ACTUAL_WARE_ID is null, ID, ACTUAL_WARE_ID)
| + | |
| − | from WARES_LOG
| + | |
| − | where ORIG_COUNTRY_ID = :ORIG_COUNTRY_ID
| + | |
| − | order by LOG_ID desc
| + | |
| − | into :WARE_ID;
| + | |
| − | end
| + | |
| − | if ((WARE_ID is null) and
| + | |
| − | (COUNTRY_ID is not null)) then
| + | |
| − | begin
| + | |
| − | select first 1 ID
| + | |
| − | from WARES
| + | |
| − | where COUNTRY_ID = :COUNTRY_ID
| + | |
| − | into :WARE_ID;
| + | |
| − | if (WARE_ID is null) then
| + | |
| − | select first 1 iif(ACTUAL_WARE_ID is null, ID, ACTUAL_WARE_ID)
| + | |
| − | from WARES_LOG
| + | |
| − | where COUNTRY_ID = :COUNTRY_ID
| + | |
| − | order by LOG_ID desc
| + | |
| − | into :WARE_ID;
| + | |
| − | end
| + | |
| − | if (WARE_ID is null) then
| + | |
| − | GOODCOUNTRY = SCOUNTRY;
| + | |
| − | else
| + | |
| − | begin
| + | |
| − | /* select actualware_id from PR_GETACTUALWAREID(:ware_id) into :ware_id; */
| + | |
| − | select W.COUNTRY_ID,
| + | |
| − | V.SVALUE
| + | |
| − | from WARES W
| + | |
| − | left join VALS V on W.COUNTRY_ID = V.ID
| + | |
| − | where W.ID = :WARE_ID
| + | |
| − | into :COUNTRY_ID,
| + | |
| − | :GOODCOUNTRY;
| + | |
| − | end
| + | |
| − | | + | |
| − | /* if ((active_id>0) and ((goodname<>sname) or (goodizg<>sizg) or (goodcountry<>scountry))) then */
| + | |
| − | /* insert into doc_detail_active_log(id,sname,sizg,scountry, part_type) values (:active_id,:sname,:sizg,:scountry,:alttype); */
| + | |
| − | | + | |
| − | /* goodname='3'; */
| + | |
| − | GOODBARCODE = BARCODE;
| + | |
| − | | + | |
| − | if (GOODNAME is null) then
| + | |
| − | GOODNAME = SNAME;
| + | |
| − | if (GOODIZG is null) then
| + | |
| − | GOODIZG = SIZG;
| + | |
| − | if (GOODCOUNTRY is null) then
| + | |
| − | GOODCOUNTRY = SCOUNTRY;
| + | |
| − | if (GOODNAME is null) then
| + | |
| − | GOODNAME = SORIG_NAME;
| + | |
| − | if (GOODIZG is null) then
| + | |
| − | GOODIZG = SORIG_IZG;
| + | |
| − | if (GOODCOUNTRY is null) then
| + | |
| − | GOODCOUNTRY = SORIG_COUNTRY;
| + | |
| − | | + | |
| − | suspend;
| + | |
| − | end;
| + | |
| − | | + | |
| − | create or alter procedure PR_GET_WARE (
| + | |
| − | SNAME type of DM_TEXT,
| + | |
| − | SIZG type of DM_TEXT,
| + | |
| − | SCOUNTRY type of DM_TEXT,
| + | |
| − | ORIG_CODE type of DM_TEXT = '',
| + | |
| − | SORIG_NAME type of DM_TEXT = '',
| + | |
| − | SORIG_IZG type of DM_TEXT = '',
| + | |
| − | SORIG_COUNTRY type of DM_TEXT = '',
| + | |
| − | BARCODE type of DM_TEXT = '',
| + | |
| − | Z_ID type of DM_ID = 0,
| + | |
| − | SKLAD_ID DM_TEXT = '',
| + | |
| − | ALTTYPE DM_STATUS = 0,
| + | |
| − | MNN DM_TEXT = '')
| + | |
| − | returns (
| + | |
| − | W_ID type of DM_UUID_NULL)
| + | |
| − | as
| + | |
| − | declare variable NAME_ID type of DM_UUID_NULL;
| + | |
| − | declare variable IZG_ID type of DM_UUID_NULL;
| + | |
| − | declare variable COUNTRY_ID type of DM_UUID_NULL;
| + | |
| − | declare variable ORIG_NAME_ID type of DM_UUID_NULL;
| + | |
| − | declare variable ORIG_IZG_ID type of DM_UUID_NULL;
| + | |
| − | declare variable ORIG_COUNTRY_ID type of DM_UUID_NULL;
| + | |
| − | begin
| + | |
| − | | + | |
| − | select VAL_ID
| + | |
| − | from PR_GETVAL_ID(:SNAME, 0, :ALTTYPE, :MNN)
| + | |
| − | into :NAME_ID;
| + | |
| − | select VAL_ID
| + | |
| − | from PR_GETVAL_ID(:SIZG, 3, :ALTTYPE)
| + | |
| − | into :IZG_ID;
| + | |
| − | select VAL_ID
| + | |
| − | from PR_GETVAL_ID(:SCOUNTRY, 2, :ALTTYPE)
| + | |
| − | into :COUNTRY_ID;
| + | |
| − | select VAL_ID
| + | |
| − | from PR_GETVAL_ID(:SORIG_NAME, 1, :ALTTYPE)
| + | |
| − | into :ORIG_NAME_ID;
| + | |
| − | select VAL_ID
| + | |
| − | from PR_GETVAL_ID(:SORIG_IZG, 6, :ALTTYPE)
| + | |
| − | into :ORIG_IZG_ID;
| + | |
| − | select VAL_ID
| + | |
| − | from PR_GETVAL_ID(:SORIG_COUNTRY, 5, :ALTTYPE)
| + | |
| − | into :ORIG_COUNTRY_ID;
| + | |
| − | /*
| + | |
| − | select first 1 id from wares where NAME_ID=:name_id and IZG_ID=:izg_id and COUNTRY_ID=:country_id and
| + | |
| − | ORIG_CODE=:orig_code and ORIG_NAME_ID=:orig_name_id and
| + | |
| − | ORIG_IZG_ID=:orig_izg_id and ORIG_COUNTRY_ID=:orig_country_id -- into :w_id;
| + | |
| − | and barcode=:barcode into :w_id;
| + | |
| − | */
| + | |
| − | select ID
| + | |
| − | from WARES
| + | |
| − | where NAME_ID = :NAME_ID
| + | |
| − | and IZG_ID = :IZG_ID
| + | |
| − | and COUNTRY_ID = :COUNTRY_ID
| + | |
| − | and BARCODE = :BARCODE
| + | |
| − | into :W_ID;
| + | |
| − | | + | |
| − | if (W_ID is null) then
| + | |
| − | begin
| + | |
| − | /* exception EX_WRONG_OPER; */
| + | |
| − | /* w_id=gen_id(gen_wares_id,1); */
| + | |
| − | W_ID = uuid_to_char(gen_uuid());
| + | |
| − | insert into WARES (ID, NAME_ID, IZG_ID, COUNTRY_ID, ORIG_CODE, ORIG_NAME_ID, ORIG_IZG_ID, ORIG_COUNTRY_ID, BARCODE,
| + | |
| − | Z_ID, SKLAD_ID)
| + | |
| − | values (:W_ID, :NAME_ID, :IZG_ID, :COUNTRY_ID, :ORIG_CODE, :ORIG_NAME_ID, :ORIG_IZG_ID, :ORIG_COUNTRY_ID, :BARCODE,
| + | |
| − | :Z_ID, :SKLAD_ID);
| + | |
| − | end
| + | |
| − | suspend;
| + | |
| − | end;
| + | |
| − | | + | |
| − | create or alter procedure PR_GETWARE_BY_IDS (
| + | |
| − | NAME_ID type of DM_UUID_NULL,
| + | |
| − | IZG_ID type of DM_UUID_NULL,
| + | |
| − | COUNTRY_ID type of DM_UUID_NULL,
| + | |
| − | ORIG_CODE type of DM_TEXT,
| + | |
| − | ORIG_NAME_ID type of DM_UUID_NULL,
| + | |
| − | ORIG_IZG_ID type of DM_UUID_NULL,
| + | |
| − | ORIG_COUNTRY_ID type of DM_UUID_NULL,
| + | |
| − | DOINSERT type of DM_STATUS,
| + | |
| − | SEARCHINLOGS type of DM_STATUS,
| + | |
| − | BARCODE DM_TEXT)
| + | |
| − | returns (
| + | |
| − | WARE_ID type of DM_UUID_NULL)
| + | |
| − | as
| + | |
| − | begin
| + | |
| − | if (ORIG_CODE is null) then
| + | |
| − | ORIG_CODE = '';
| + | |
| − | if (SEARCHINLOGS is null) then
| + | |
| − | SEARCHINLOGS = 0;
| + | |
| − | if (SEARCHINLOGS = 1) then
| + | |
| − | begin
| + | |
| − | select first 1 iif(ACTUAL_WARE_ID is null, ID, ACTUAL_WARE_ID)
| + | |
| − | from WARES_LOG
| + | |
| − | where NAME_ID = :NAME_ID
| + | |
| − | and IZG_ID = :IZG_ID
| + | |
| − | and COUNTRY_ID = :COUNTRY_ID
| + | |
| − | and BARCODE = :BARCODE
| + | |
| − | order by LOG_INSERTDT desc
| + | |
| − | into :WARE_ID;
| + | |
| − | select ID
| + | |
| − | from WARES
| + | |
| − | where ID = :WARE_ID
| + | |
| − | into :WARE_ID;
| + | |
| − | end
| + | |
| − | else
| + | |
| − | begin
| + | |
| − | select first 1 ID
| + | |
| − | from WARES
| + | |
| − | where NAME_ID = :NAME_ID
| + | |
| − | and IZG_ID = :IZG_ID
| + | |
| − | and COUNTRY_ID = :COUNTRY_ID
| + | |
| − | and BARCODE = :BARCODE
| + | |
| − | into :WARE_ID;
| + | |
| − | end
| + | |
| − | if ((WARE_ID is null) and
| + | |
| − | (DOINSERT = 1) and
| + | |
| − | (SEARCHINLOGS <> 1)) then
| + | |
| − | begin
| + | |
| − | /* ware_id=gen_id(gen_wares_id,1); */
| + | |
| − | WARE_ID = uuid_to_char(gen_uuid());
| + | |
| − | insert into WARES (ID, NAME_ID, IZG_ID, COUNTRY_ID, ORIG_CODE, ORIG_NAME_ID, ORIG_IZG_ID, ORIG_COUNTRY_ID, Z_ID,
| + | |
| − | SKLAD_ID, BARCODE)
| + | |
| − | values (:WARE_ID, :NAME_ID, :IZG_ID, :COUNTRY_ID, :ORIG_CODE, :ORIG_NAME_ID, :ORIG_IZG_ID, :ORIG_COUNTRY_ID, 0, '',
| + | |
| − | :BARCODE);
| + | |
| − | end
| + | |
| − | suspend;
| + | |
| − | end;
| + | |
| − | | + | |
| − | create or alter procedure PR_DOC_COMMIT (
| + | |
| − | DOC_ID type of DM_ID,
| + | |
| − | SESSION_ID type of DM_ID)
| + | |
| − | as
| + | |
| − | declare variable WRONG_WARES DM_STATUS;
| + | |
| − | declare variable BASE_TYPE type of DM_STATUS;
| + | |
| − | declare variable SUMMA type of DM_DOUBLE;
| + | |
| − | declare variable SUMMA_O type of DM_DOUBLE;
| + | |
| − | declare variable SUM_NDSO type of DM_DOUBLE;
| + | |
| − | declare variable DSCSUMMA type of DM_DOUBLE;
| + | |
| − | declare variable SUM_DSC type of DM_DOUBLE;
| + | |
| − | declare variable PRICE_TYPE DM_STATUS;
| + | |
| − | declare variable CONTRACT_ID DM_ID;
| + | |
| − | declare variable W_PARAM DM_STATUS;
| + | |
| − | declare variable WARES_MODE DM_STATUS;
| + | |
| − | begin
| + | |
| − | select DT.BASE_TYPE,
| + | |
| − | D.PRICE_TYPE,
| + | |
| − | D.CONTRACT_ID
| + | |
| − | from DOCS D
| + | |
| − | left join DOC_TYPES DT on D.DOC_TYPE = DT.ID
| + | |
| − | where D.ID = :DOC_ID
| + | |
| − | into :BASE_TYPE,
| + | |
| − | :PRICE_TYPE,
| + | |
| − | :CONTRACT_ID;
| + | |
| − | if (BASE_TYPE in (1, 3, 6, 8)) then
| + | |
| − | begin
| + | |
| − | | + | |
| − | WRONG_WARES = 0;
| + | |
| − | WARES_MODE = 1;
| + | |
| − | select PARAM_VALUE
| + | |
| − | from PR_GETPARAMVALUE('WARES_MODE', 0)
| + | |
| − | into WARES_MODE;
| + | |
| − | if (WARES_MODE = 0) then
| + | |
| − | begin
| + | |
| − | select count(ID)
| + | |
| − | from DOC_DETAIL_ACTIVE
| + | |
| − | where DOC_ID = :DOC_ID
| + | |
| − | and ((WARE_ID = '0') or (WARE_ID = '-1') or (WARE_ID = ''))
| + | |
| − | into WRONG_WARES;
| + | |
| − | if (WRONG_WARES > 0) then
| + | |
| − | exception EX_WRONG_OPER;
| + | |
| − | end
| + | |
| − | | + | |
| − | execute procedure PR_DOC_PRIHOD_COMMIT(:DOC_ID, 0);
| + | |
| − | end
| + | |
| − | else
| + | |
| − | if (BASE_TYPE in (2, 7, 9)) then
| + | |
| − | execute procedure PR_DOC_RASHOD_COMMIT(:DOC_ID, 0);
| + | |
| − | else
| + | |
| − | exception EX_WRONGDOC_BASE_TYPE;
| + | |
| − | delete from DOC_DETAIL_ACTIVE
| + | |
| − | where DOC_ID = :DOC_ID;
| + | |
| − | if (BASE_TYPE = 3) then
| + | |
| − | begin
| + | |
| − | delete from WAREBASE
| + | |
| − | where PART_ID in (select PART_ID
| + | |
| − | from DOC_DETAIL
| + | |
| − | where DOC_ID = :DOC_ID
| + | |
| − | and QUANT < 0
| + | |
| − | and PART_TYPE = 1);
| + | |
| − | end
| + | |
| − | select sum(SUMMA),
| + | |
| − | sum(SUMMA_O),
| + | |
| − | sum(SUM_NDSO),
| + | |
| − | sum(PRICE * QUANT / 10000),
| + | |
| − | sum(SUM_DSC)
| + | |
| − | from DOC_DETAIL
| + | |
| − | where DOC_ID = :DOC_ID
| + | |
| − | into :SUMMA,
| + | |
| − | :SUMMA_O,
| + | |
| − | :SUM_NDSO,
| + | |
| − | :DSCSUMMA,
| + | |
| − | :SUM_DSC;
| + | |
| − | DSCSUMMA = DSCSUMMA * 10000;
| + | |
| − | update DOCS
| + | |
| − | set COMMITSESSION_ID = :SESSION_ID,
| + | |
| − | STATUS = 1,
| + | |
| − | POSTDT = 'now',
| + | |
| − | CHECKDATA = (select CHECKDATA
| + | |
| − | from PR_DOCCHECKDATA(:DOC_ID)),
| + | |
| − | SUMMA = :SUMMA,
| + | |
| − | SUMMA_O = :SUMMA_O,
| + | |
| − | SUM_NDSO = :SUM_NDSO,
| + | |
| − | CALCSUMMA = :DSCSUMMA,
| + | |
| − | SUM_DSC = :SUM_DSC,
| + | |
| − | CASHDATA = (iif(:BASE_TYPE = 1, -:SUMMA, null))
| + | |
| − | where ID = :DOC_ID;
| + | |
| − | execute procedure PR_UPDBLOCKINFO_BY_DOC(:DOC_ID, 1);
| + | |
| − | /* if ((base_type = 2) and (contract_id<>0)) then */
| + | |
| − | if (CONTRACT_ID <> 0) then
| + | |
| − | begin
| + | |
| − | if (BASE_TYPE = 2) then
| + | |
| − | execute procedure PR_CREDITCOMMIT(:CONTRACT_ID);
| + | |
| − | if (BASE_TYPE in (8, 9)) then
| + | |
| − | execute procedure PR_CREDITREINITCOMMIT(:CONTRACT_ID, :SESSION_ID);
| + | |
| − | /* execute procedure PR_CREDITCOMMIT(:contract_id); */
| + | |
| − | end
| + | |
| − | execute procedure PR_DOEVENT('EV_DOCCOMMIT');
| + | |
| − | end;
| + | |
| − | | + | |
| − | create or alter trigger DOC_DETAIL_ACTIVE_BI for DOC_DETAIL_ACTIVE
| + | |
| − | active before insert position 0
| + | |
| − | as
| + | |
| − | begin
| + | |
| − | if (new.ID is null) then
| + | |
| − | new.ID = gen_id(GEN_DOC_DETAIL_ACTIVE_ID, 1);
| + | |
| − | new.INSERTDT = 'now';
| + | |
| − | if (new.BASE_AGENT_ID is null) then
| + | |
| − | new.BASE_AGENT_ID = 0;
| + | |
| − | if (new.STATUS is null) then
| + | |
| − | new.STATUS = 0;
| + | |
| − | if (new.PARENT_ID is null) then
| + | |
| − | new.PARENT_ID = 0;
| + | |
| − | if (new.PART_TYPE is null) then
| + | |
| − | new.PART_TYPE = 0;
| + | |
| − | | + | |
| − | /* первая строчка = до привидения, оригианльные значения накладной */
| + | |
| − | /* select first 1 ID from WARES where NAME_ID = new.NAME_ID and IZG_ID = new.IZG_ID and COUNTRY_ID = new.COUNTRY_ID and BARCODE = new.BCODE_IZG into new.WARE_ID; */
| + | |
| − | | + | |
| − | insert into DOC_DETAIL_ACTIVE_LOG (ID, PARENT_ID, DOC_ID, PART_ID, PART_PARENT_ID, DOC_DETAIL_ID, PRICE, NAC, QUANT,
| + | |
| − | DISCOUNT, SUMMA, SUMMA_O, DCARD, WARE_ID, PRICE_O, PRICE_Z, PRICE_R, BARCODE,
| + | |
| − | BARCODE1, BCODE_IZG, GODENDO, SERIA, NDS, SUM_NDSO, SERT, DATESERT, KEMVSERT,
| + | |
| − | SDSERT, REGN, NGTD, EDIZM, NAME_ID, IZG_ID, COUNTRY_ID, ORIG_CODE, ORIG_NAME_ID,
| + | |
| − | ORIG_IZG_ID, ORIG_COUNTRY_ID, Z_ID, SKLAD_ID, SNAME, SIZG, SCOUNTRY, SORIG_NAME,
| + | |
| − | SORIG_IZG, SORIG_COUNTRY, INSERTDT, INFO, KOEF, MOTHERPART_ID, DEP, SUM_DSC,
| + | |
| − | HUMAN_QUANT, CUSTOMDRAW, PART_TYPE, BASE_AGENT_ID)
| + | |
| − | values (new.ID, new.PARENT_ID, new.DOC_ID, new.PART_ID, new.PART_PARENT_ID, new.DOC_DETAIL_ID, new.PRICE, new.NAC,
| + | |
| − | new.QUANT, new.DISCOUNT, new.SUMMA, new.SUMMA_O, new.DCARD, new.WARE_ID, new.PRICE_O, new.PRICE_Z, new.PRICE_R,
| + | |
| − | new.BARCODE, new.BARCODE1, new.BCODE_IZG, new.GODENDO, new.SERIA, new.NDS, new.SUM_NDSO, new.SERT,
| + | |
| − | new.DATESERT, new.KEMVSERT, new.SDSERT, new.REGN, new.NGTD, new.EDIZM, new.NAME_ID, new.IZG_ID, new.COUNTRY_ID,
| + | |
| − | new.ORIG_CODE, new.ORIG_NAME_ID, new.ORIG_IZG_ID, new.ORIG_COUNTRY_ID, new.Z_ID, new.SKLAD_ID, new.SNAME,
| + | |
| − | new.SIZG, new.SCOUNTRY, new.SORIG_NAME, new.SORIG_IZG, new.SORIG_COUNTRY, new.INSERTDT, new.INFO, new.KOEF,
| + | |
| − | new.MOTHERPART_ID, new.DEP, new.SUM_DSC, new.HUMAN_QUANT, new.CUSTOMDRAW, new.PART_TYPE, new.BASE_AGENT_ID);
| + | |
| − | /* -- */
| + | |
| − | | + | |
| − | if ((new.PART_ID is null) or (new.PART_ID = 0)) then
| + | |
| − | begin
| + | |
| − | /* >cf20110923 */
| + | |
| − | /* if (new.ware_id<0) then */
| + | |
| − | if (new.WARE_ID = '-1') then
| + | |
| − | begin
| + | |
| − | select GOODNAME,
| + | |
| − | GOODIZG,
| + | |
| − | GOODCOUNTRY,
| + | |
| − | GOODBARCODE
| + | |
| − | from PR_MAKEGOODWAREVALUES(new.SNAME, new.SORIG_NAME, new.SIZG, new.SORIG_IZG, new.SCOUNTRY, new.SORIG_COUNTRY, new.ORIG_CODE, new.ID, new.PART_TYPE, new.BCODE_IZG)
| + | |
| − | into new.SNAME,
| + | |
| − | new.SIZG,
| + | |
| − | new.SCOUNTRY,
| + | |
| − | new.BCODE_IZG;
| + | |
| − | end
| + | |
| − | /* <cf20110923 */
| + | |
| − | new.PART_ID = 0;
| + | |
| − | select ID
| + | |
| − | from VALS
| + | |
| − | where VTYPE = 0
| + | |
| − | and ALTTYPE = new.PART_TYPE
| + | |
| − | and SVALUE = new.SNAME
| + | |
| − | into new.NAME_ID;
| + | |
| − | select ID
| + | |
| − | from VALS
| + | |
| − | where VTYPE = 3
| + | |
| − | and ALTTYPE = new.PART_TYPE
| + | |
| − | and SVALUE = new.SIZG
| + | |
| − | into new.IZG_ID;
| + | |
| − | select ID
| + | |
| − | from VALS
| + | |
| − | where VTYPE = 2
| + | |
| − | and ALTTYPE = new.PART_TYPE
| + | |
| − | and SVALUE = new.SCOUNTRY
| + | |
| − | into new.COUNTRY_ID;
| + | |
| − | select ID
| + | |
| − | from VALS
| + | |
| − | where VTYPE = 1
| + | |
| − | and ALTTYPE = new.PART_TYPE
| + | |
| − | and SVALUE = new.SORIG_NAME
| + | |
| − | into new.ORIG_NAME_ID;
| + | |
| − | select ID
| + | |
| − | from VALS
| + | |
| − | where VTYPE = 6
| + | |
| − | and ALTTYPE = new.PART_TYPE
| + | |
| − | and SVALUE = new.SORIG_IZG
| + | |
| − | into new.ORIG_IZG_ID;
| + | |
| − | select ID
| + | |
| − | from VALS
| + | |
| − | where VTYPE = 5
| + | |
| − | and ALTTYPE = new.PART_TYPE
| + | |
| − | and SVALUE = new.SORIG_COUNTRY
| + | |
| − | into new.ORIG_COUNTRY_ID;
| + | |
| − | new.WARE_ID = 0;
| + | |
| − | select first 1 ID
| + | |
| − | from WARES
| + | |
| − | where NAME_ID = new.NAME_ID
| + | |
| − | and IZG_ID = new.IZG_ID
| + | |
| − | and COUNTRY_ID = new.COUNTRY_ID
| + | |
| − | and BARCODE = new.BCODE_IZG
| + | |
| − | into new.WARE_ID;
| + | |
| − | | + | |
| − | /* вторая строчка = после приведения */
| + | |
| − | insert into DOC_DETAIL_ACTIVE_LOG (ID, PARENT_ID, DOC_ID, PART_ID, PART_PARENT_ID, DOC_DETAIL_ID, PRICE, NAC, QUANT,
| + | |
| − | DISCOUNT, SUMMA, SUMMA_O, DCARD, WARE_ID, PRICE_O, PRICE_Z, PRICE_R, BARCODE,
| + | |
| − | BARCODE1, BCODE_IZG, GODENDO, SERIA, NDS, SUM_NDSO, SERT, DATESERT, KEMVSERT,
| + | |
| − | SDSERT, REGN, NGTD, EDIZM, NAME_ID, IZG_ID, COUNTRY_ID, ORIG_CODE, ORIG_NAME_ID,
| + | |
| − | ORIG_IZG_ID, ORIG_COUNTRY_ID, Z_ID, SKLAD_ID, SNAME, SIZG, SCOUNTRY, SORIG_NAME,
| + | |
| − | SORIG_IZG, SORIG_COUNTRY, INSERTDT, INFO, KOEF, MOTHERPART_ID, DEP, SUM_DSC,
| + | |
| − | HUMAN_QUANT, CUSTOMDRAW, PART_TYPE, BASE_AGENT_ID)
| + | |
| − | values (new.ID, new.PARENT_ID, new.DOC_ID, new.PART_ID, new.PART_PARENT_ID, new.DOC_DETAIL_ID, new.PRICE, new.NAC,
| + | |
| − | new.QUANT, new.DISCOUNT, new.SUMMA, new.SUMMA_O, new.DCARD, new.WARE_ID, new.PRICE_O, new.PRICE_Z,
| + | |
| − | new.PRICE_R, new.BARCODE, new.BARCODE1, new.BCODE_IZG, new.GODENDO, new.SERIA, new.NDS, new.SUM_NDSO,
| + | |
| − | new.SERT, new.DATESERT, new.KEMVSERT, new.SDSERT, new.REGN, new.NGTD, new.EDIZM, new.NAME_ID, new.IZG_ID,
| + | |
| − | new.COUNTRY_ID, new.ORIG_CODE, new.ORIG_NAME_ID, new.ORIG_IZG_ID, new.ORIG_COUNTRY_ID, new.Z_ID, new.SKLAD_ID,
| + | |
| − | new.SNAME, new.SIZG, new.SCOUNTRY, new.SORIG_NAME, new.SORIG_IZG, new.SORIG_COUNTRY, new.INSERTDT, new.INFO,
| + | |
| − | new.KOEF, new.MOTHERPART_ID, new.DEP, new.SUM_DSC, new.HUMAN_QUANT, new.CUSTOMDRAW, new.PART_TYPE,
| + | |
| − | new.BASE_AGENT_ID);
| + | |
| − | /* -- */
| + | |
| − | | + | |
| − | end
| + | |
| − | if (new.PART_PARENT_ID is null) then
| + | |
| − | new.PART_PARENT_ID = 0;
| + | |
| − | if (new.WARE_ID is null) then
| + | |
| − | new.WARE_ID = 0;
| + | |
| − | if (new.NAME_ID is null) then
| + | |
| − | new.NAME_ID = 0;
| + | |
| − | if (new.IZG_ID is null) then
| + | |
| − | new.IZG_ID = 0;
| + | |
| − | if (new.COUNTRY_ID is null) then
| + | |
| − | new.COUNTRY_ID = 0;
| + | |
| − | if (new.ORIG_NAME_ID is null) then
| + | |
| − | new.ORIG_NAME_ID = 0;
| + | |
| − | if (new.ORIG_IZG_ID is null) then
| + | |
| − | new.ORIG_IZG_ID = 0;
| + | |
| − | if (new.ORIG_COUNTRY_ID is null) then
| + | |
| − | new.ORIG_COUNTRY_ID = 0;
| + | |
| − | if (new.Z_ID is null) then
| + | |
| − | new.Z_ID = 0;
| + | |
| − | if (new.SKLAD_ID is null) then
| + | |
| − | new.SKLAD_ID = '';
| + | |
| − | if (new.MOTHERPART_ID is null) then
| + | |
| − | new.MOTHERPART_ID = 0;
| + | |
| − | if (new.DOC_DETAIL_ID is null) then
| + | |
| − | new.DOC_DETAIL_ID = 0;
| + | |
| − | | + | |
| − | if (new.PART_ID > 0) then
| + | |
| − | /* заполняем значения партии */
| + | |
| − | begin
| + | |
| − | select WARE_ID,
| + | |
| − | PRICE,
| + | |
| − | PRICE_O,
| + | |
| − | PRICE_Z,
| + | |
| − | PRICE_R,
| + | |
| − | /* QUANT, */
| + | |
| − | /* BARCODE, */
| + | |
| − | BARCODE1,
| + | |
| − | /* KRITK, */
| + | |
| − | GODENDO,
| + | |
| − | SERIA,
| + | |
| − | NDS,
| + | |
| − | /* SUM_NDSO, */
| + | |
| − | SERT,
| + | |
| − | DATESERT,
| + | |
| − | KEMVSERT,
| + | |
| − | SDSERT,
| + | |
| − | REGN,
| + | |
| − | NGTD,
| + | |
| − | EDIZM,
| + | |
| − | NAC,
| + | |
| − | DEP,
| + | |
| − | PART_TYPE,
| + | |
| − | BASE_AGENT_ID,
| + | |
| − | GROUP_ID
| + | |
| − | from PARTS
| + | |
| − | where ID = new.PART_ID
| + | |
| − | into new.WARE_ID,
| + | |
| − | new.PRICE,
| + | |
| − | new.PRICE_O,
| + | |
| − | new.PRICE_Z,
| + | |
| − | new.PRICE_R,
| + | |
| − | | + | |
| − | /* new.QUANT, */
| + | |
| − | /* new.BARCODE, */
| + | |
| − | new.BARCODE1,
| + | |
| − | | + | |
| − | /* new.KRITK,*/
| + | |
| − | new.GODENDO,
| + | |
| − | new.SERIA,
| + | |
| − | new.NDS,
| + | |
| − | | + | |
| − | /* new.SUM_NDSO, */
| + | |
| − | new.SERT,
| + | |
| − | new.DATESERT,
| + | |
| − | new.KEMVSERT,
| + | |
| − | new.SDSERT,
| + | |
| − | new.REGN,
| + | |
| − | new.NGTD,
| + | |
| − | new.EDIZM,
| + | |
| − | new.NAC,
| + | |
| − | new.DEP,
| + | |
| − | new.PART_TYPE,
| + | |
| − | new.BASE_AGENT_ID,
| + | |
| − | new.GROUP_ID;
| + | |
| − | end
| + | |
| − | if (new.GROUP_ID is null) then
| + | |
| − | new.GROUP_ID = 0;
| + | |
| − | /* if (new.ware_id>0) then -- заполняем значения позиции */
| + | |
| − | if (new.WARE_ID not in ('-1', '0')) then
| + | |
| − | /* заполняем значения позиции */
| + | |
| − | begin
| + | |
| − | select WW.NAME_ID,
| + | |
| − | (select SVALUE
| + | |
| − | from VALS
| + | |
| − | where ID = WW.NAME_ID),
| + | |
| − | WW.IZG_ID,
| + | |
| − | (select SVALUE
| + | |
| − | from VALS
| + | |
| − | where ID = WW.IZG_ID),
| + | |
| − | WW.COUNTRY_ID,
| + | |
| − | (select SVALUE
| + | |
| − | from VALS
| + | |
| − | where ID = WW.COUNTRY_ID),
| + | |
| − | WW.ORIG_CODE,
| + | |
| − | WW.ORIG_NAME_ID,
| + | |
| − | (select SVALUE
| + | |
| − | from VALS
| + | |
| − | where ID = WW.ORIG_NAME_ID),
| + | |
| − | WW.ORIG_IZG_ID,
| + | |
| − | (select SVALUE
| + | |
| − | from VALS
| + | |
| − | where ID = WW.ORIG_IZG_ID),
| + | |
| − | WW.ORIG_COUNTRY_ID,
| + | |
| − | (select SVALUE
| + | |
| − | from VALS
| + | |
| − | where ID = WW.ORIG_COUNTRY_ID),
| + | |
| − | WW.BARCODE,
| + | |
| − | WW.Z_ID,
| + | |
| − | WW.SKLAD_ID
| + | |
| − | from WARES WW
| + | |
| − | where WW.ID = new.WARE_ID
| + | |
| − | into new.NAME_ID,
| + | |
| − | new.SNAME,
| + | |
| − | new.IZG_ID,
| + | |
| − | new.SIZG,
| + | |
| − | new.COUNTRY_ID,
| + | |
| − | new.SCOUNTRY,
| + | |
| − | new.ORIG_CODE,
| + | |
| − | new.ORIG_NAME_ID,
| + | |
| − | new.SORIG_NAME,
| + | |
| − | new.ORIG_IZG_ID,
| + | |
| − | new.SORIG_IZG,
| + | |
| − | new.ORIG_COUNTRY_ID,
| + | |
| − | new.SORIG_COUNTRY,
| + | |
| − | new.BCODE_IZG,
| + | |
| − | new.Z_ID,
| + | |
| − | new.SKLAD_ID;
| + | |
| − | end
| + | |
| − | else
| + | |
| − | begin
| + | |
| − | /* if (new.ware_id<0) then */
| + | |
| − | if (new.WARE_ID = '-1') then
| + | |
| − | begin
| + | |
| − | select GOODNAME,
| + | |
| − | GOODIZG,
| + | |
| − | GOODCOUNTRY
| + | |
| − | from PR_MAKEGOODWAREVALUES(new.SNAME, new.SORIG_NAME, new.SIZG, new.SORIG_IZG, new.SCOUNTRY, new.SORIG_COUNTRY, new.ORIG_CODE, new.ID, new.PART_TYPE, new.BCODE_IZG)
| + | |
| − | into new.SNAME,
| + | |
| − | new.SIZG,
| + | |
| − | new.SCOUNTRY;
| + | |
| − | new.WARE_ID = 0;
| + | |
| − | end
| + | |
| − | end
| + | |
| − | if (new.QUANT is null) then
| + | |
| − | new.QUANT = 0;
| + | |
| − | if (new.PRICE is null) then
| + | |
| − | new.PRICE = 0;
| + | |
| − | if (new.PRICE_O is null) then
| + | |
| − | new.PRICE_O = 0;
| + | |
| − | if (new.NDS is null) then
| + | |
| − | new.NDS = 0;
| + | |
| − | if (new.SUMMA is null) then
| + | |
| − | new.SUMMA = new.QUANT * new.PRICE;
| + | |
| − | if (new.SUM_DSC is null) then
| + | |
| − | new.SUM_DSC = 0;
| + | |
| − | if (new.SUMMA_O is null) then
| + | |
| − | begin
| + | |
| − | new.SUMMA_O = new.QUANT * new.PRICE_O;
| + | |
| − | end
| + | |
| − | else
| + | |
| − | begin
| + | |
| − | if (new.QUANT <> 0) then
| + | |
| − | new.PRICE_O = new.SUMMA_O / new.QUANT;
| + | |
| − | end
| + | |
| − | if (new.SUM_NDSO is null) then
| + | |
| − | new.SUM_NDSO = new.SUMMA_O * new.NDS / 100;
| + | |
| − | if (((new.NAC is null) or (new.NAC = 0)) and
| + | |
| − | new.PRICE_O <> 0) then
| + | |
| − | new.NAC = (new.PRICE - new.PRICE_O) * 100 / new.PRICE_O;
| + | |
| − | if (new.DEP is null) then
| + | |
| − | begin
| + | |
| − | select first 1 ID
| + | |
| − | from DEPS
| + | |
| − | where NDS = new.NDS
| + | |
| − | order by ID
| + | |
| − | into new.DEP;
| + | |
| − | end
| + | |
| − | if (new.DEP is null) then
| + | |
| − | new.DEP = 0;
| + | |
| − | /* -> 20130301-ann gen_barcode_by_name */
| + | |
| − | if ((new.BARCODE is null) or (trim(new.BARCODE) = '')) then
| + | |
| − | begin
| + | |
| − | if ((select PARAM_VALUE
| + | |
| − | from PR_GETPARAMVALUE('GEN_BARCODE', 0)) = 0) then
| + | |
| − | select RES_BCODE
| + | |
| − | from UTPR_GETCHECKSUM_EAN13(new.ID)
| + | |
| − | into new.BARCODE;
| + | |
| − | | + | |
| − | /* else select res_bcode from utpr_getchecksum_ean13(new.name_id,'88') into new.barcode; */
| + | |
| − | else
| + | |
| − | select RES_BCODE
| + | |
| − | from UTPR_GETCHECKSUM_EAN13((select L_ID
| + | |
| − | from VALS
| + | |
| − | where D$UUID = new.NAME_ID), '88')
| + | |
| − | into new.BARCODE;
| + | |
| − | end
| + | |
| − | /* -> 20130301-ann gen_barcode_by_name */
| + | |
| − | if (new.PART_PARENT_ID > 0) then
| + | |
| − | begin
| + | |
| − | update DOC_DETAIL_ACTIVE
| + | |
| − | set QUANT = QUANT - new.QUANT,
| + | |
| − | SUMMA = SUMMA - new.SUMMA,
| + | |
| − | SUMMA_O = SUMMA_O - new.SUMMA_O,
| + | |
| − | SUM_NDSO = SUM_NDSO - new.SUM_NDSO
| + | |
| − | where ID = new.PART_PARENT_ID;
| + | |
| − | execute procedure PR_COPY_MEMBERSHIP('DOC_DETAIL_ACTIVE', new.PART_PARENT_ID, new.ID);
| + | |
| − | end
| + | |
| − | end;
| + | |
| − | | + | |
| − | create or alter trigger DOC_DETAIL_ACTIVE_BU0 for DOC_DETAIL_ACTIVE
| + | |
| − | active before update position 0
| + | |
| − | as
| + | |
| − | begin
| + | |
| − | /*20160513
| + | |
| − | if ((new.SNAME <> old.SNAME) or (new.NAME_ID is null) or (new.NAME_ID = '0')) then
| + | |
| − | select VAL_ID from PR_GETVAL_ID(new.SNAME, 0, new.PART_TYPE, new.MNN) into new.NAME_ID;
| + | |
| − | */
| + | |
| − | | + | |
| − | if (new.NAME_ID is null) then
| + | |
| − | new.NAME_ID = 0;
| + | |
| − | if ((new.SUMMA is null) and
| + | |
| − | ((new.QUANT <> 0) and
| + | |
| − | (new.PRICE <> 0))) then
| + | |
| − | begin
| + | |
| − | new.SUMMA = new.QUANT * new.PRICE;
| + | |
| − | if (new.SUM_DSC is not null) then
| + | |
| − | new.SUMMA = new.SUMMA - new.SUM_DSC;
| + | |
| − | end
| + | |
| − | if (((new.SUMMA_O = 0) or (new.SUMMA_O is null)) and
| + | |
| − | ((new.QUANT <> 0) and
| + | |
| − | (new.PRICE_O <> 0))) then
| + | |
| − | new.SUMMA_O = new.QUANT * new.PRICE_O;
| + | |
| − | if (new.NAME_ID <> old.NAME_ID) then
| + | |
| − | execute procedure PR_COPYGROUPS(old.NAME_ID, new.NAME_ID);
| + | |
| − | if (new.SUM_DSC is null) then
| + | |
| − | if (new.SUMMA <> old.SUMMA) then
| + | |
| − | begin
| + | |
| − | new.SUM_DSC = (1 + new.DISCOUNT / 100) * 100 * new.SUMMA / (100 + old.DISCOUNT) - 100 * new.SUMMA / (100 + old.DISCOUNT);
| + | |
| − | --new.summa=(1+new.discount/100)*100*old.summa/(100+old.discount);
| + | |
| − | end
| + | |
| − | if (new.SUM_DSC is null) then
| + | |
| − | if (new.DISCOUNT <> old.DISCOUNT) then
| + | |
| − | begin
| + | |
| − | new.SUM_DSC = (1 + new.DISCOUNT / 100) * 100 * old.SUMMA / (100 + old.DISCOUNT) - 100 * old.SUMMA / (100 + old.DISCOUNT);
| + | |
| − | new.SUMMA = (1 + new.DISCOUNT / 100) * 100 * old.SUMMA / (100 + old.DISCOUNT);
| + | |
| − | end
| + | |
| − | | + | |
| − | select ID
| + | |
| − | from VALS
| + | |
| − | where VTYPE = 0
| + | |
| − | and ALTTYPE = new.PART_TYPE
| + | |
| − | and SVALUE = new.SNAME
| + | |
| − | into new.NAME_ID;
| + | |
| − | if (new.NAME_ID is null) then
| + | |
| − | new.NAME_ID = 0;
| + | |
| − | select ID
| + | |
| − | from VALS
| + | |
| − | where VTYPE = 3
| + | |
| − | and ALTTYPE = new.PART_TYPE
| + | |
| − | and SVALUE = new.SIZG
| + | |
| − | into new.IZG_ID;
| + | |
| − | if (new.IZG_ID is null) then
| + | |
| − | new.IZG_ID = 0;
| + | |
| − | select ID
| + | |
| − | from VALS
| + | |
| − | where VTYPE = 2
| + | |
| − | and ALTTYPE = new.PART_TYPE
| + | |
| − | and SVALUE = new.SCOUNTRY
| + | |
| − | into new.COUNTRY_ID;
| + | |
| − | if (new.COUNTRY_ID is null) then
| + | |
| − | new.COUNTRY_ID = 0;
| + | |
| − | select ID
| + | |
| − | from VALS
| + | |
| − | where VTYPE = 1
| + | |
| − | and ALTTYPE = new.PART_TYPE
| + | |
| − | and SVALUE = new.SORIG_NAME
| + | |
| − | into new.ORIG_NAME_ID;
| + | |
| − | if (new.ORIG_NAME_ID is null) then
| + | |
| − | new.ORIG_NAME_ID = 0;
| + | |
| − | select ID
| + | |
| − | from VALS
| + | |
| − | where VTYPE = 6
| + | |
| − | and ALTTYPE = new.PART_TYPE
| + | |
| − | and SVALUE = new.SORIG_IZG
| + | |
| − | into new.ORIG_IZG_ID;
| + | |
| − | if (new.ORIG_IZG_ID is null) then
| + | |
| − | new.ORIG_IZG_ID = 0;
| + | |
| − | select ID
| + | |
| − | from VALS
| + | |
| − | where VTYPE = 5
| + | |
| − | and ALTTYPE = new.PART_TYPE
| + | |
| − | and SVALUE = new.SORIG_COUNTRY
| + | |
| − | into new.ORIG_COUNTRY_ID;
| + | |
| − | if (new.ORIG_COUNTRY_ID is null) then
| + | |
| − | new.ORIG_COUNTRY_ID = 0;
| + | |
| − | | + | |
| − | insert into DOC_DETAIL_ACTIVE_LOG (ID, PARENT_ID, DOC_ID, PART_ID, PART_PARENT_ID, DOC_DETAIL_ID, PRICE, NAC, QUANT,
| + | |
| − | DISCOUNT, SUMMA, SUMMA_O, DCARD, WARE_ID, PRICE_O, PRICE_Z, PRICE_R, BARCODE,
| + | |
| − | BARCODE1, BCODE_IZG,
| + | |
| − | --KRITK,
| + | |
| − | GODENDO, SERIA, NDS, SUM_NDSO, SERT, DATESERT, KEMVSERT, SDSERT, REGN, NGTD, EDIZM,
| + | |
| − | NAME_ID, IZG_ID, COUNTRY_ID, ORIG_CODE, ORIG_NAME_ID, ORIG_IZG_ID, ORIG_COUNTRY_ID,
| + | |
| − | Z_ID, SKLAD_ID, SNAME, SIZG, SCOUNTRY, SORIG_NAME, SORIG_IZG, SORIG_COUNTRY,
| + | |
| − | INSERTDT, INFO, KOEF, MOTHERPART_ID, DEP, SUM_DSC, HUMAN_QUANT, CUSTOMDRAW,
| + | |
| − | PART_TYPE, BASE_AGENT_ID)
| + | |
| − | values (old.ID, old.PARENT_ID, old.DOC_ID, old.PART_ID, old.PART_PARENT_ID, old.DOC_DETAIL_ID, old.PRICE, old.NAC,
| + | |
| − | old.QUANT, old.DISCOUNT, old.SUMMA, old.SUMMA_O, old.DCARD, old.WARE_ID, old.PRICE_O, old.PRICE_Z, old.PRICE_R,
| + | |
| − | old.BARCODE, old.BARCODE1, old.BCODE_IZG,
| + | |
| − | --old.KRITK,
| + | |
| − | old.GODENDO, old.SERIA, old.NDS, old.SUM_NDSO, old.SERT, old.DATESERT, old.KEMVSERT, old.SDSERT, old.REGN,
| + | |
| − | old.NGTD, old.EDIZM, old.NAME_ID, old.IZG_ID, old.COUNTRY_ID, old.ORIG_CODE, old.ORIG_NAME_ID, old.ORIG_IZG_ID,
| + | |
| − | old.ORIG_COUNTRY_ID, old.Z_ID, old.SKLAD_ID, old.SNAME, old.SIZG, old.SCOUNTRY, old.SORIG_NAME, old.SORIG_IZG,
| + | |
| − | old.SORIG_COUNTRY, old.INSERTDT, old.INFO, old.KOEF, old.MOTHERPART_ID, old.DEP, old.SUM_DSC, old.HUMAN_QUANT,
| + | |
| − | old.CUSTOMDRAW, old.PART_TYPE, old.BASE_AGENT_ID);
| + | |
| − | end;
| + | |
| − | | + | |
| − | create or alter view VW_WARES (
| + | |
| − | ID,
| + | |
| − | NAME_ID,
| + | |
| − | SNAME,
| + | |
| − | IZG_ID,
| + | |
| − | SIZG,
| + | |
| − | COUNTRY_ID,
| + | |
| − | SCOUNTRY,
| + | |
| − | ORIG_CODE,
| + | |
| − | ORIG_NAME_ID,
| + | |
| − | SORIG_NAME,
| + | |
| − | ORIG_IZG_ID,
| + | |
| − | SORIG_IZG,
| + | |
| − | ORIG_COUNTRY_ID,
| + | |
| − | SORIG_COUNTRY,
| + | |
| − | BARCODE,
| + | |
| − | Z_ID,
| + | |
| − | SKLAD_ID,
| + | |
| − | INSERTDT,
| + | |
| − | PACKET,
| + | |
| − | MGN_NAME,
| + | |
| − | MGN_ID,
| + | |
| − | MGN_SOURCE)
| + | |
| − | as
| + | |
| − | select W.ID,
| + | |
| − | W.NAME_ID,
| + | |
| − | W.SNAME, --(select svalue from vals where id = w.name_id),
| + | |
| − | W.IZG_ID,
| + | |
| − | (select SVALUE
| + | |
| − | from VALS
| + | |
| − | where ID = W.IZG_ID),
| + | |
| − | W.COUNTRY_ID,
| + | |
| − | (select SVALUE
| + | |
| − | from VALS
| + | |
| − | where ID = W.COUNTRY_ID),
| + | |
| − | W.ORIG_CODE,
| + | |
| − | W.ORIG_NAME_ID,
| + | |
| − | (select SVALUE
| + | |
| − | from VALS
| + | |
| − | where ID = W.ORIG_NAME_ID),
| + | |
| − | W.ORIG_IZG_ID,
| + | |
| − | (select SVALUE
| + | |
| − | from VALS
| + | |
| − | where ID = W.ORIG_IZG_ID),
| + | |
| − | W.ORIG_COUNTRY_ID,
| + | |
| − | (select SVALUE
| + | |
| − | from VALS
| + | |
| − | where ID = W.ORIG_COUNTRY_ID),
| + | |
| − | W.BARCODE,
| + | |
| − | W.Z_ID,
| + | |
| − | W.SKLAD_ID,
| + | |
| − | W.INSERTDT,
| + | |
| − | W.PACKET,
| + | |
| − | W.MGN_NAME,
| + | |
| − | W.MGN_ID,
| + | |
| − | W.MGN_SOURCE
| + | |
| − | from WARES W;
| + | |
| − | | + | |
| − | create or alter procedure PR_DOC_DETAIL_ACTIVE_ONCOMMIT (
| + | |
| − | ACTIVE_ID type of DM_ID,
| + | |
| − | COMMIT_ID type of DM_ID,
| + | |
| − | DOC_ID type of DM_ID,
| + | |
| − | COMMITDATE type of DM_DATETIME)
| + | |
| − | as
| + | |
| − | begin
| + | |
| − | /*
| + | |
| − | эта процедура выполняется для каждой записи, добавляемой в DOC_DETAIL в процедурах проведения документов
| + | |
| − | */
| + | |
| − | /* Для вречей*/
| + | |
| − | update DOC_DETAIL_DOCTOR
| + | |
| − | set DOC_DETAIL_ID = :COMMIT_ID,
| + | |
| − | DOC_ID = :DOC_ID,
| + | |
| − | COMMITDATE = :COMMITDATE
| + | |
| − | where DOC_DETAIL_ACTIVE_ID = :ACTIVE_ID;
| + | |
| − | /* Старые рецепты*/
| + | |
| − | update DOC_DETAIL_MAKE
| + | |
| − | set DOC_DETAIL_ID = :COMMIT_ID,
| + | |
| − | DOC_ID = :DOC_ID,
| + | |
| − | COMMITDATE = :COMMITDATE
| + | |
| − | where DOC_DETAIL_ACTIVE_ID = :ACTIVE_ID;
| + | |
| − | /* Новые рецепты*/
| + | |
| − | update RECEPTS
| + | |
| − | set TABLE_ID = :COMMIT_ID,
| + | |
| − | TABLE_NAME = 'DOC_DETAIL',
| + | |
| − | STATUS = 1
| + | |
| − | where DOC_DETAIL_ACTIVE_ID = :ACTIVE_ID;--для рецептов
| + | |
| − | | + | |
| − | execute procedure PR_AUTO_WARESLINK(:DOC_ID, :ACTIVE_ID);
| + | |
| − | | + | |
| − | end;
| + | |
| − | </pre>
| + | |
| − | | + | |
| − | ==Славины скрипты - ДЛЯ СИНХРОНИЗАЦИИ И СЖАТИЯ ТОВАРОВ==
| + | |
| − | ===1===
| + | |
| − | <pre>
| + | |
| − | set term ^;
| + | |
| − | | + | |
| − | create trigger WARES_LOG_BI_COWATMP for WARES_LOG
| + | |
| − | active before insert position 0
| + | |
| − | as
| + | |
| − | begin
| + | |
| − | if (new.SKLAD_ID is null) then
| + | |
| − | new.SKLAD_ID = '';
| + | |
| − | end^
| + | |
| − | | + | |
| − | set term; ^
| + | |
| − | | + | |
| − | create table TMP_LOG (SKEY DM_TEXT, SVALUE DM_TEXT);
| + | |
| − | | + | |
| − | alter table WARES_LOG add ACTUAL_WARE_ID DM_UUID_NULL;
| + | |
| − | | + | |
| − | create index WARES_LOG_ACTUAL_WARE_ID on WARES_LOG (ACTUAL_WARE_ID);
| + | |
| − | | + | |
| − | create generator GEN_VALS_CARANTINE_ID;
| + | |
| − | | + | |
| − | create table VALS_CARANTINE (ID DM_ID not null, CUR_ID DM_UUID, NEW_ID DM_UUID, INSERTDT DM_DATETIME, FROM_PROFILE_ID DM_ID_NULL);
| + | |
| − | set term ^;
| + | |
| − | | + | |
| − | create or alter trigger VALS_CARANTINE_BI for VALS_CARANTINE
| + | |
| − | active before insert position 0
| + | |
| − | as
| + | |
| − | begin
| + | |
| − | if (new.ID is null) then
| + | |
| − | new.ID = gen_id(GEN_VALS_CARANTINE_ID, 1);
| + | |
| − | new.INSERTDT = current_timestamp;
| + | |
| − | if (new.FROM_PROFILE_ID is null) then
| + | |
| − | select FROM_PROFILE_ID
| + | |
| − | from G$DISTRIBUTE
| + | |
| − | where UUID = new.NEW_ID
| + | |
| − | into new.FROM_PROFILE_ID;
| + | |
| − | end^
| + | |
| − | | + | |
| − | set term ; ^
| + | |
| − | set term ^ ;
| + | |
| − | | + | |
| − | create or alter trigger VALS_BIU_DODOUBLES for VALS
| + | |
| − | active before insert or update position 0
| + | |
| − | as
| + | |
| − | declare variable ID type of DM_UUID;
| + | |
| − | begin
| + | |
| − | select ID
| + | |
| − | from VALS
| + | |
| − | where VTYPE = new.VTYPE
| + | |
| − | and SVALUE = new.SVALUE
| + | |
| − | and ALTTYPE = new.ALTTYPE
| + | |
| − | and D$UUID <> new.D$UUID
| + | |
| − | into :ID;
| + | |
| − | if (ID is null) then
| + | |
| − | exit;
| + | |
| − | /*
| + | |
| − | 0 - приведенное наименование
| + | |
| − | 3 - приведенный производитель
| + | |
| − | 2 - приведенная страна
| + | |
| − | 1 - ориг. наименование
| + | |
| − | 6 - ориг. производитель
| + | |
| − | 5 - ориг. страна
| + | |
| − | Запускает цепочку апдейтов. При изменении wares проверяются дубли, и, в случае нахождения, правятся партии
| + | |
| − | */
| + | |
| − | if (new.VTYPE = 0) then
| + | |
| − | update WARES
| + | |
| − | set NAME_ID = new.ID
| + | |
| − | where NAME_ID = :ID;
| + | |
| − | else
| + | |
| − | if (new.VTYPE = 3) then
| + | |
| − | update WARES
| + | |
| − | set IZG_ID = new.ID
| + | |
| − | where IZG_ID = :ID;
| + | |
| − | else
| + | |
| − | if (new.VTYPE = 2) then
| + | |
| − | update WARES
| + | |
| − | set COUNTRY_ID = new.ID
| + | |
| − | where COUNTRY_ID = :ID;
| + | |
| − | else
| + | |
| − | if (new.VTYPE = 1) then
| + | |
| − | update WARES
| + | |
| − | set ORIG_NAME_ID = new.ID
| + | |
| − | where ORIG_NAME_ID = :ID;
| + | |
| − | else
| + | |
| − | if (new.VTYPE = 6) then
| + | |
| − | update WARES
| + | |
| − | set ORIG_IZG_ID = new.ID
| + | |
| − | where ORIG_IZG_ID = :ID;
| + | |
| − | else
| + | |
| − | if (new.VTYPE = 5) then
| + | |
| − | update WARES
| + | |
| − | set ORIG_COUNTRY_ID = new.ID
| + | |
| − | where ORIG_COUNTRY_ID = :ID;
| + | |
| − | else
| + | |
| − | exit;
| + | |
| − | insert into VALS_CARANTINE (CUR_ID, NEW_ID)
| + | |
| − | values (:ID, new.ID);
| + | |
| − | delete from VALS
| + | |
| − | where ID = :ID;
| + | |
| − | end^
| + | |
| − | | + | |
| − | set term;
| + | |
| − | ^
| + | |
| − | | + | |
| − | set term ^;
| + | |
| − | | + | |
| − | create or alter trigger WARES_BIU_COWA for WARES
| + | |
| − | active before insert or update position 0
| + | |
| − | as
| + | |
| − | declare variable CUR_ID type of DM_UUID;
| + | |
| − | begin
| + | |
| − | select D$UUID
| + | |
| − | from WARES
| + | |
| − | where NAME_ID = new.NAME_ID
| + | |
| − | and IZG_ID = new.IZG_ID
| + | |
| − | and COUNTRY_ID = new.COUNTRY_ID
| + | |
| − | and BARCODE = new.BARCODE
| + | |
| − | and D$UUID <> new.D$UUID
| + | |
| − | into :CUR_ID;
| + | |
| − | if (CUR_ID is null) then
| + | |
| − | exit;
| + | |
| − | if (not exists(select ID
| + | |
| − | from WARES_LOG
| + | |
| − | where ID = :CUR_ID
| + | |
| − | and ACTUAL_WARE_ID = new.ID)) then
| + | |
| − | begin
| + | |
| − | insert into WARES_LOG (ID, NAME_ID, IZG_ID, COUNTRY_ID, ORIG_CODE, ORIG_NAME_ID, ORIG_IZG_ID, ORIG_COUNTRY_ID,
| + | |
| − | BARCODE, Z_ID, SKLAD_ID, INSERTDT, PACKET, L_ID, ACTUAL_WARE_ID)
| + | |
| − | select ID,
| + | |
| − | NAME_ID,
| + | |
| − | IZG_ID,
| + | |
| − | COUNTRY_ID,
| + | |
| − | ORIG_CODE,
| + | |
| − | ORIG_NAME_ID,
| + | |
| − | ORIG_IZG_ID,
| + | |
| − | ORIG_COUNTRY_ID,
| + | |
| − | BARCODE,
| + | |
| − | Z_ID,
| + | |
| − | SKLAD_ID,
| + | |
| − | INSERTDT,
| + | |
| − | PACKET,
| + | |
| − | L_ID,
| + | |
| − | new.D$UUID
| + | |
| − | from WARES
| + | |
| − | where D$UUID = :CUR_ID;
| + | |
| − | end
| + | |
| − | update PARTS
| + | |
| − | set WARE_ID = new.D$UUID
| + | |
| − | where WARE_ID = :CUR_ID;
| + | |
| − | update DOC_DETAIL_ACTIVE
| + | |
| − | set WARE_ID = new.D$UUID
| + | |
| − | where WARE_ID = :CUR_ID;
| + | |
| − | delete from WARES
| + | |
| − | where D$UUID = :CUR_ID;
| + | |
| − | end^
| + | |
| − | | + | |
| − | set term;
| + | |
| − | ^
| + | |
| − | | + | |
| − | set term ^;
| + | |
| − | | + | |
| − | create or alter trigger PARTS_BIU_COWA for PARTS
| + | |
| − | active before insert or update position 0
| + | |
| − | as | + | |
| − | declare variable WARE_ID type of DM_UUID;
| + | |
| − | begin
| + | |
| − | if (exists(select ID
| + | |
| − | from WARES
| + | |
| − | where ID = new.WARE_ID)) then
| + | |
| − | exit;
| + | |
| − | /* select max(actual_ware_id) from wares_log where id=new.ware_id into :ware_id; */
| + | |
| − | select max(ACTUAL_WARE_ID)
| + | |
| − | from WARES_LOG
| + | |
| − | where ID = new.WARE_ID
| + | |
| − | and (exists(select ID
| + | |
| − | from WARES W
| + | |
| − | where W.D$UUID = ACTUAL_WARE_ID))
| + | |
| − | into :WARE_ID;
| + | |
| − | if (WARE_ID is null) then
| + | |
| − | exit;
| + | |
| − | /* if (exists(select id from wares where d$uuid=:ware_id)) then */
| + | |
| − | new.WARE_ID = :WARE_ID;
| + | |
| − | end^
| + | |
| − | | + | |
| − | set term;
| + | |
| − | ^
| + | |
| − | | + | |
| − | set term ^;
| + | |
| − | | + | |
| − | create or alter trigger WARES_BD_COWA for WARES
| + | |
| − | active before delete position 0
| + | |
| − | as
| + | |
| − | declare variable WARE_ID type of DM_UUID;
| + | |
| − | begin
| + | |
| − | if (not exists(select ID
| + | |
| − | from PARTS
| + | |
| − | where WARE_ID = old.ID)) then
| + | |
| − | exit;
| + | |
| − | /* select max(actual_ware_id) from wares_log where id=old.id into ware_id; */
| + | |
| − | select max(ACTUAL_WARE_ID)
| + | |
| − | from WARES_LOG WL
| + | |
| − | where ID = old.ID
| + | |
| − | and (exists(select ID
| + | |
| − | from WARES W
| + | |
| − | where W.ID = WL.ACTUAL_WARE_ID))
| + | |
| − | into WARE_ID;
| + | |
| − | if (WARE_ID is null) then
| + | |
| − | insert into TMP_LOG (SKEY, SVALUE)
| + | |
| − | values ('Нет ware по acual_ware!', old.ID);
| + | |
| − | else
| + | |
| − | update PARTS
| + | |
| − | set WARE_ID = :WARE_ID
| + | |
| − | where WARE_ID = old.ID;
| + | |
| − | end^
| + | |
| − | | + | |
| − | set term;
| + | |
| − | ^
| + | |
| − | | + | |
| − | set term ^;
| + | |
| − | | + | |
| − | create or alter procedure PR_TMP_CHANGEWARES_CONSTR
| + | |
| − | as
| + | |
| − | declare variable UUID type of DM_UUID;
| + | |
| − | declare variable NAME_ID type of DM_UUID;
| + | |
| − | declare variable IZG_ID type of DM_UUID;
| + | |
| − | declare variable COUNTRY_ID type of DM_UUID;
| + | |
| − | declare variable BARCODE type of DM_TEXT;
| + | |
| − | declare variable ACTUAL_UUID type of DM_UUID;
| + | |
| − | declare variable EXISTING_ACTUAL_WARE_ID type of DM_UUID;
| + | |
| − | begin
| + | |
| − | /* delete from wares_log wl where (ACTUAL_WARE_ID is null) and (not exists (select id from wares w where w.id=wl.id)); */
| + | |
| − | for select min(D$UUID),
| + | |
| − | NAME_ID,
| + | |
| − | IZG_ID,
| + | |
| − | COUNTRY_ID,
| + | |
| − | BARCODE
| + | |
| − | from WARES
| + | |
| − | group by NAME_ID, IZG_ID, COUNTRY_ID, BARCODE
| + | |
| − | having count(1) > 1
| + | |
| − | into ACTUAL_UUID,
| + | |
| − | NAME_ID,
| + | |
| − | IZG_ID,
| + | |
| − | COUNTRY_ID,
| + | |
| − | BARCODE
| + | |
| − | do
| + | |
| − | begin
| + | |
| − | EXISTING_ACTUAL_WARE_ID = null;
| + | |
| − | select max(ACTUAL_WARE_ID)
| + | |
| − | from WARES_LOG
| + | |
| − | where NAME_ID = :NAME_ID
| + | |
| − | and IZG_ID = :IZG_ID
| + | |
| − | and COUNTRY_ID = :COUNTRY_ID
| + | |
| − | and BARCODE = :BARCODE
| + | |
| − | into EXISTING_ACTUAL_WARE_ID;
| + | |
| − | if (EXISTING_ACTUAL_WARE_ID is not null) then
| + | |
| − | begin
| + | |
| − | if (exists(select ID
| + | |
| − | from WARES
| + | |
| − | where D$UUID = :EXISTING_ACTUAL_WARE_ID)) then
| + | |
| − | ACTUAL_UUID = EXISTING_ACTUAL_WARE_ID;
| + | |
| − | end
| + | |
| − | for select D$UUID
| + | |
| − | from WARES
| + | |
| − | where NAME_ID = :NAME_ID
| + | |
| − | and IZG_ID = :IZG_ID
| + | |
| − | and COUNTRY_ID = :COUNTRY_ID
| + | |
| − | and BARCODE = :BARCODE
| + | |
| − | and D$UUID <> :ACTUAL_UUID
| + | |
| − | into UUID
| + | |
| − | do
| + | |
| − | begin
| + | |
| − | insert into WARES_LOG (ID, NAME_ID, IZG_ID, COUNTRY_ID, ORIG_CODE, ORIG_NAME_ID, ORIG_IZG_ID, ORIG_COUNTRY_ID,
| + | |
| − | BARCODE, Z_ID, SKLAD_ID, INSERTDT, PACKET, L_ID, ACTUAL_WARE_ID)
| + | |
| − | select ID,
| + | |
| − | NAME_ID,
| + | |
| − | IZG_ID,
| + | |
| − | COUNTRY_ID,
| + | |
| − | ORIG_CODE,
| + | |
| − | ORIG_NAME_ID,
| + | |
| − | ORIG_IZG_ID,
| + | |
| − | ORIG_COUNTRY_ID,
| + | |
| − | BARCODE,
| + | |
| − | Z_ID,
| + | |
| − | SKLAD_ID,
| + | |
| − | INSERTDT,
| + | |
| − | PACKET,
| + | |
| − | L_ID,
| + | |
| − | :ACTUAL_UUID
| + | |
| − | from WARES
| + | |
| − | where D$UUID = :UUID;
| + | |
| − | --на триггере update parts set ware_id=:actual_uuid where ware_id=:uuid;
| + | |
| − | delete from WARES
| + | |
| − | where D$UUID = :UUID;
| + | |
| − | end
| + | |
| − | end
| + | |
| − | end^
| + | |
| − | | + | |
| − | set term;
| + | |
| − | ^
| + | |
| − | | + | |
| − | set term ^;
| + | |
| − | | + | |
| − | create or alter trigger WARES_LOG_AI_COWATMP for WARES_LOG
| + | |
| − | active after insert position 0
| + | |
| − | as
| + | |
| − | begin
| + | |
| − | if (new.ACTUAL_WARE_ID is null) then
| + | |
| − | exit;
| + | |
| − | if (exists(select ID
| + | |
| − | from WARES
| + | |
| − | where ID = new.ACTUAL_WARE_ID)) then
| + | |
| − | delete from WARES
| + | |
| − | where ID = new.ID;
| + | |
| − | else
| + | |
| − | insert into TMP_LOG (SKEY, SVALUE)
| + | |
| − | values ('WARES_LOG_AI_COWATMP', new.ACTUAL_WARE_ID);
| + | |
| − | end^
| + | |
| − | | + | |
| − | set term;
| + | |
| − | ^
| + | |
| − | | + | |
| − | alter trigger WARES_AD_DISTR inactive;
| + | |
| − | alter trigger WARES_BU_DISTR inactive;
| + | |
| − | alter trigger WARES_LOG_BI_DISTR inactive;
| + | |
| − | alter trigger WARES_LOG_AI0 inactive;
| + | |
| − | alter trigger PARTS_AU0 inactive;
| + | |
| − | | + | |
| − | alter trigger PARTS_BU_DISTR inactive;
| + | |
| − | alter trigger PARTS_BU_G$SYNC inactive;
| + | |
| − | alter trigger PARTS_BU0 inactive;
| + | |
| − | </pre>
| + | |
| − | | + | |
| − | ===4===
| + | |
| − | <pre>
| + | |
| − | /* Insert into wares_log */
| + | |
| − | </pre>
| + | |
| − | | + | |
| − | ===3===
| + | |
| − | <pre>
| + | |
| − | alter trigger PARTS_BU_DISTR active;
| + | |
| − | alter trigger PARTS_BU_G$SYNC active;
| + | |
| − | alter trigger PARTS_BU0 active;
| + | |
| − | | + | |
| − | alter trigger WARES_LOG_BI_DISTR active;
| + | |
| − | alter trigger WARES_AD_DISTR active;
| + | |
| − | alter trigger WARES_BU_DISTR active;
| + | |
| − | | + | |
| − | create index WARES_IDX_U on WARES(NAME_ID, IZG_ID, COUNTRY_ID, BARCODE);
| + | |
| − | | + | |
| − | alter table WARES drop constraint UNQ1_WARES;
| + | |
| − | alter table WARES drop constraint WARES_IDX1;
| + | |
| − | create index WARES_IDX1 on WARES(NAME_ID, IZG_ID, COUNTRY_ID, ORIG_CODE, ORIG_NAME_ID, ORIG_IZG_ID, ORIG_COUNTRY_ID);
| + | |
| − | | + | |
| − | drop trigger WARES_LOG_BI_COWATMP;
| + | |
| − | | + | |
| − | alter trigger WARES_AU0 inactive;
| + | |
| − | | + | |
| − | alter trigger WARES_BU0 inactive;
| + | |
| − | alter trigger WARES_BIU_COWA inactive;
| + | |
| − | alter trigger WARES_SNAME_BU0 inactive;
| + | |
| − | alter trigger WARES_BU_DISTR inactive;
| + | |
| − | </pre>
| + | |
| − | | + | |
| − | ===4===
| + | |
| − | <pre>
| + | |
| − | update WARES
| + | |
| − | set BARCODE = ''
| + | |
| − | where BARCODE is null;
| + | |
| − | alter trigger WARES_BU0 active;
| + | |
| − | alter trigger WARES_BIU_COWA active;
| + | |
| − | alter trigger WARES_SNAME_BU0 active;
| + | |
| − | alter trigger WARES_BU_DISTR active;
| + | |
| − | | + | |
| − | create unique index WARES_IDX_UUID on WARES(D$UUID);
| + | |
| − | </pre>
| + | |
| − | | + | |
| − | ===5===
| + | |
| − | <pre>
| + | |
| − | execute procedure PR_TMP_CHANGEWARES_CONSTR;
| + | |
| − | </pre>
| + | |
| − | | + | |
| − | ===6===
| + | |
| − | <pre>
| + | |
| − | drop index WARES_IDX_U;
| + | |
| − | create unique index WARES_IDX_U on WARES (NAME_ID, IZG_ID, COUNTRY_ID, BARCODE);
| + | |
| − | | + | |
| − | drop trigger WARES_LOG_AI_COWATMP;
| + | |
| − | </pre>
| + | |
| − | | + | |
| − | ===7===
| + | |
| − | <pre>
| + | |
| − | /* update or insert into wares */
| + | |
| − | </pre>
| + | |
| − | | + | |
| − | ===8===
| + | |
| − | <pre>
| + | |
| − | ALTER TRIGGER WARES_AU0 ACTIVE;
| + | |
| − | ALTER TRIGGER WARES_LOG_AI0 ACTIVE;
| + | |
| − | ALTER TRIGGER PARTS_AU0 ACTIVE;
| + | |
| − | | + | |
| − | ALTER TRIGGER PARTS_BU_DISTR INACTIVE;
| + | |
| − | </pre>
| + | |
| − | | + | |
| − | ===9===
| + | |
| − | <pre>
| + | |
| − | execute procedure DBGPR_MAKEWAREBASEFROMDOCS(0);
| + | |
| − | </pre>
| + | |
| − | | + | |
| − | ===10===
| + | |
| − | <pre>
| + | |
| − | ALTER TRIGGER PARTS_BU_DISTR ACTIVE;
| + | |
| | </pre> | | </pre> |