jde_exec_blocks/32_7.sql

149 lines
6.3 KiB
MySQL
Raw Normal View History

2024-06-27 16:33:57 +03:00
execute block (
2024-06-27 12:05:45 +03:00
IN_ID_APP_EVENT D_BIGINT = :IN_ID_APP_EVENT)
returns (
output_type D_SMALLINT)
as
2024-06-27 16:54:54 +03:00
-- APP_EVENT VARIABLES
declare variable F_ID_APP_EVENT type of column APP_EVENT.ID_APP_EVENT;
declare variable F_APP_EVENT_ID_SOTR type of column APP_EVENT.APP_EVENT_ID_SOTR;
declare variable F_APP_EVENT_ID_REC type of column APP_EVENT.APP_EVENT_ID_REC;
declare variable F_APP_EVENT_VID type of column APP_EVENT.APP_EVENT_VID;
declare variable F_APP_EVENT_TIP type of column APP_EVENT.APP_EVENT_TIP;
declare variable F_APP_EVENT_DT type of column APP_EVENT.APP_EVENT_DT;
declare variable F_APP_EVENT_TEXT type of column APP_EVENT.APP_EVENT_TEXT;
declare variable F_APP_EVENT_PARAM type of column APP_EVENT.APP_EVENT_PARAM;
declare variable F_APP_EVENT_DATA type of column APP_EVENT.APP_EVENT_DATA;
declare variable F_APP_EVENT_DEL type of column APP_EVENT.APP_EVENT_DEL;
declare variable F_APP_EVENT_IMP type of column APP_EVENT.APP_EVENT_IMP;
declare variable F_APP_EVENT_CR type of column APP_EVENT.APP_EVENT_CR;
declare variable F_APP_EVENT_WCR type of column APP_EVENT.APP_EVENT_WCR;
declare variable F_APP_EVENT_CH type of column APP_EVENT.APP_EVENT_CH;
declare variable F_APP_EVENT_WCH type of column APP_EVENT.APP_EVENT_WCH;
declare variable F_APP_EVENT_SEANS type of column APP_EVENT.APP_EVENT_SEANS;
declare variable F_APP_EVENT_OWNERMST type of column APP_EVENT.APP_EVENT_OWNERMST;
declare variable F_APP_EVENT_FIMP type of column APP_EVENT.APP_EVENT_FIMP;
declare variable F_APP_EVENT_MPOST type of column APP_EVENT.APP_EVENT_MPOST;
-- APP_NOTE VARIABLES
declare variable NEW_ID_APP_NOTE type of D_BIGINT;
declare variable NEW_APP_NOTE_ID_SOTR type of D_BIGINT;
declare variable NEW_APP_NOTE_ID_APP_TASK type of D_BIGINT;
declare variable NEW_APP_NOTE_STATUS type of D_SMALLINT;
declare variable NEW_APP_NOTE_TIP type of D_SMALLINT;
declare variable NEW_APP_NOTE_TEXT type of D_STR1024;
declare variable NEW_APP_NOTE_DEL type of D_SMALLINT;
declare variable NEW_APP_NOTE_CR type of D_DATETIME;
declare variable NEW_APP_NOTE_WCR type of D_BIGINT;
declare variable NEW_APP_NOTE_CH type of D_DATETIME;
declare variable NEW_APP_NOTE_WCH type of D_BIGINT;
declare variable CUR_ID_APP_NOTE type of D_BIGINT;
declare variable CUR_APP_NOTE_ID_SOTR type of D_BIGINT;
declare variable CUR_APP_NOTE_ID_APP_TASK type of D_BIGINT;
declare variable CUR_APP_NOTE_STATUS type of D_SMALLINT;
declare variable CUR_APP_NOTE_TIP type of D_SMALLINT;
declare variable CUR_APP_NOTE_TEXT type of D_STR1024;
declare variable CUR_APP_NOTE_DEL type of D_SMALLINT;
declare variable CUR_APP_NOTE_CR type of D_DATETIME;
declare variable CUR_APP_NOTE_WCR type of D_BIGINT;
declare variable CUR_APP_NOTE_CH type of D_DATETIME;
declare variable CUR_APP_NOTE_WCH type of D_BIGINT;
2024-06-27 12:05:45 +03:00
declare variable F_OPER type of D_SMALLINT;
begin
2024-06-27 16:33:57 +03:00
output_type = 0;/* 0- Не выполнено, -1 Ошибка*/
-- Находим событие с переданным идентификатором
2024-06-27 12:05:45 +03:00
2024-06-27 16:33:57 +03:00
--0. ДЛЯ ПОЧТОВОГО СЕРВЕРА НИЧЕГО НЕ ДЕЛАЕМ
2024-06-27 12:05:45 +03:00
if (exists(select 1
from PARSRV A
where A.PARSRV_VID = 1)) then
exit;
2024-06-27 16:54:54 +03:00
select first 1 E.ID_APP_EVENT, E.APP_EVENT_ID_SOTR, E.APP_EVENT_ID_REC, E.APP_EVENT_VID, E.APP_EVENT_TIP,
E.APP_EVENT_DT, E.APP_EVENT_TEXT, E.APP_EVENT_PARAM, E.APP_EVENT_DATA, E.APP_EVENT_DEL,
E.APP_EVENT_IMP, E.APP_EVENT_CR, E.APP_EVENT_WCR, E.APP_EVENT_CH, E.APP_EVENT_WCH, E.APP_EVENT_SEANS,
E.APP_EVENT_OWNERMST, E.APP_EVENT_FIMP, E.APP_EVENT_MPOST
2024-06-27 12:05:45 +03:00
from APP_EVENT E
where E.ID_APP_EVENT = :IN_ID_APP_EVENT
2024-06-27 16:54:54 +03:00
into :F_ID_APP_EVENT, :F_APP_EVENT_ID_SOTR, :F_APP_EVENT_ID_REC, :F_APP_EVENT_VID, :F_APP_EVENT_TIP, :F_APP_EVENT_DT,
:F_APP_EVENT_TEXT, :F_APP_EVENT_PARAM, :F_APP_EVENT_DATA, :F_APP_EVENT_DEL, :F_APP_EVENT_IMP, :F_APP_EVENT_CR,
:F_APP_EVENT_WCR, :F_APP_EVENT_CH, :F_APP_EVENT_WCH, :F_APP_EVENT_SEANS, :F_APP_EVENT_OWNERMST,
:F_APP_EVENT_FIMP, :F_APP_EVENT_MPOST
2024-06-27 12:05:45 +03:00
2024-06-27 16:54:54 +03:00
if (:CUR_APP_EVENT_VID = 8795 /*Создание уведомления*/ ) then F_OPER := 1;
2024-06-27 12:05:45 +03:00
else
begin
2024-06-27 16:54:54 +03:00
output = -2;/*Неизвестная операция*/
2024-06-27 12:05:45 +03:00
suspend;
exit;
end
if (:F_APP_EVENT_ID_REC is null or :F_APP_EVENT_ID_REC = 0) then begin
:F_APP_EVENT_ID_REC = :F_ID_APP_EVENT;
update APP_EVENT set APP_EVENT_ID_REC = :F_APP_EVENT_ID_REC where ID_APP_EVENT = :F_ID_APP_EVENT;
2024-06-27 12:05:45 +03:00
end
2024-06-27 12:05:45 +03:00
/*Получаем все события от начала до конца*/
FOR select E.ID_APP_EVENT, E.APP_EVENT_ID_SOTR, E.APP_EVENT_ID_REC, E.APP_EVENT_VID, E.APP_EVENT_TIP,
E.APP_EVENT_DT, E.APP_EVENT_TEXT, E.APP_EVENT_PARAM, E.APP_EVENT_DATA, E.APP_EVENT_DEL,
E.APP_EVENT_IMP, E.APP_EVENT_CR, E.APP_EVENT_WCR, E.APP_EVENT_CH, E.APP_EVENT_WCH, E.APP_EVENT_SEANS,
E.APP_EVENT_OWNERMST, E.APP_EVENT_FIMP, E.APP_EVENT_MPOST
from APP_EVENT E
2024-06-28 11:59:22 +03:00
where E.APP_EVENT_ID_REC = :F_APP_EVENT_ID_REC and E.APP_EVENT_DEL = 0 order by E.APP_EVENT_DT
into :F_ID_APP_EVENT, :F_APP_EVENT_ID_SOTR, :F_APP_EVENT_ID_REC, :F_APP_EVENT_VID, :F_APP_EVENT_TIP, :F_APP_EVENT_DT,
:F_APP_EVENT_TEXT, :F_APP_EVENT_PARAM, :F_APP_EVENT_DATA, :F_APP_EVENT_DEL, :F_APP_EVENT_IMP, :F_APP_EVENT_CR,
:F_APP_EVENT_WCR, :F_APP_EVENT_CH, :F_APP_EVENT_WCH, :F_APP_EVENT_SEANS, :F_APP_EVENT_OWNERMST,
:F_APP_EVENT_FIMP, :F_APP_EVENT_MPOST DO
begin
2024-06-28 11:59:22 +03:00
if (:F_APP_EVENT_VID = 8795) then
begin
NEW_ID_APP_NOTE = :F_APP_EVENT_ID_REC;
NEW_APP_NOTE_ID_SOTR = :F_APP_EVENT_ID_SOTR;
NEW_APP_NOTE_ID_APP_TASK = 0;
NEW_APP_NOTE_STATUS = 0;
NEW_APP_NOTE_TIP = F_APP_EVENT_TIP;
NEW_APP_NOTE_TEXT = F_APP_EVENT_TEXT;
NEW_APP_NOTE_DEL = F_APP_EVENT_DATA;
NEW_APP_NOTE_CR = F_APP_EVENT_CR;
NEW_APP_NOTE_WCR = F_APP_EVENT_WCR;
NEW_APP_NOTE_CH = F_APP_EVENT_CH;
NEW_APP_NOTE_WCH = F_APP_EVENT_WCH;
end;
2024-06-28 11:59:22 +03:00
end;
update or insert APP_NOTE (ID_APP_NOTE,
APP_NOTE_ID_SOTR,
APP_NOTE_ID_APP_TASK,
APP_NOTE_STATUS,
APP_NOTE_TIP,
APP_NOTE_TEXT,
APP_NOTE_DEL,
APP_NOTE_CR,
APP_NOTE_WCR,
APP_NOTE_CH,
APP_NOTE_WCH) values (
NEW_ID_APP_NOTE,
NEW_APP_NOTE_ID_SOTR,
NEW_APP_NOTE_ID_APP_TASK,
NEW_APP_NOTE_STATUS,
NEW_APP_NOTE_TIP,
NEW_APP_NOTE_TEXT,
NEW_APP_NOTE_DEL,
NEW_APP_NOTE_CR,
NEW_APP_NOTE_WCR,
NEW_APP_NOTE_CH,
NEW_APP_NOTE_WCH
) matching (ID_APP_NOTE)
2024-06-27 12:05:45 +03:00
end