Добавлена возможность менять статусы уведомлений

main
Ernest Litvinenko 2024-07-05 00:40:10 +03:00
parent f71cdc7830
commit d81d5d1509
1 changed files with 44 additions and 1 deletions

View File

@ -52,6 +52,11 @@ declare variable CUR_APP_NOTE_WCH type of D_BIGINT;
declare variable F_OPER type of D_SMALLINT;
-- Execute blocks
declare variable EXEC_BLOCK_TEXT_32_NEG_1 type of column EXEC_BLOCKS.EXEC_BLOCKS_TEXT;
declare variable EXEC_BLOCK_32_NEG_1_OUT_KEY type of D_BIGINT;
declare variable EXEC_BLOCK_32_NEG_1_OUT_VAL type of D_STR1024;
begin
output = 0;/* 0- Не выполнено, -1 Ошибка*/
-- Находим событие с переданным идентификатором
@ -73,9 +78,27 @@ begin
: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;
-- Получаем текст EXEC 32 -1
select E.EXEC_BLOCKS_TEXT
from EXEC_BLOCKS E
where E.EXEC_BLOCKS_VID = 32 and
E.EXEC_BLOCKS_TIP = -1 and
E.EXEC_BLOCKS_DEL = 0 rows 1 to 1
into :EXEC_BLOCK_TEXT_32_NEG_1;
if (:EXEC_BLOCK_TEXT_32_NEG_1 is null) then
begin
output = -1;/*Не найден EXEC BLOCK 32 -1 */
suspend;
exit;
end
if (:F_APP_EVENT_VID = 8795 /*Создание уведомления*/ ) then
F_OPER = 1;
else
if (:F_APP_EVENT_VID = 8797) /*Изменение уведомения*/ then
F_OPER = 2;
else
begin
output = -2;/*Неизвестная операция*/
suspend;
@ -123,7 +146,27 @@ begin
NEW_APP_NOTE_CH = F_APP_EVENT_CH;
NEW_APP_NOTE_WCH = F_APP_EVENT_WCH;
end
else
if (:F_APP_EVENT_VID = 8797) then
begin
/*Парсим параметры JSON-a APP_EVENT_DATA*/
for execute statement(:EXEC_BLOCK_TEXT_32_NEG_1)(IN_PARAM_JSON := :F_APP_EVENT_DATA)
into :EXEC_BLOCK_32_NEG_1_OUT_VAL, :EXEC_BLOCK_32_NEG_1_OUT_KEY
do
begin
if (:exec_block_32_neg_1_out_key = 8794) then
begin
NEW_APP_NOTE_STATUS = cast(:exec_block_32_neg_1_out_val as d_integer);
end
end
end
end
IF (new_id_app_note is null) then
begin
output = -5; /*Не было создано событие о создании Уведомсления (8795) */
suspend;
exit;
end
update or insert into APP_NOTE (ID_APP_NOTE, APP_NOTE_ID_SOTR, APP_NOTE_ID_APP_TASK, APP_NOTE_STATUS, APP_NOTE_TIP,