jde_exec_blocks/32_7.sql

149 lines
6.3 KiB
SQL
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

execute block (
IN_ID_APP_EVENT D_BIGINT = :IN_ID_APP_EVENT)
returns (
output_type D_SMALLINT)
as
-- 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;
declare variable F_OPER type of D_SMALLINT;
begin
output_type = 0;/* 0- Не выполнено, -1 Ошибка*/
-- Находим событие с переданным идентификатором
--0. ДЛЯ ПОЧТОВОГО СЕРВЕРА НИЧЕГО НЕ ДЕЛАЕМ
if (exists(select 1
from PARSRV A
where A.PARSRV_VID = 1)) then
exit;
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
from APP_EVENT E
where E.ID_APP_EVENT = :IN_ID_APP_EVENT
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
if (:CUR_APP_EVENT_VID = 8795 /*Создание уведомления*/ ) then F_OPER := 1;
else
begin
output = -2;/*Неизвестная операция*/
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;
end
/*Получаем все события от начала до конца*/
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
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
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;
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)
end