create or replace function SCENARIO#0221(IN_ID in out NUMBER, -- ИД
IN_ISSUEDBID in out NUMBER, -- БД ИСТОЧНИК
IN_BANKOPERATIONID in out VARCHAR2, -- НОМЕР ОПЕРАЦИИ
IN_ORDERNUMBER in out VARCHAR2, -- НОМЕР ЗАЯВКИ В СИСТЕМЕ
IN_BRANCH in out VARCHAR2, -- КОД ФИЛИАЛА
IN_CURRENCYCODE in out VARCHAR2, -- КОД ВАЛЮТЫ
IN_OPERATIONDATETIME in out DATE, -- ДАТА ОПЕРАЦИИ
IN_BASEAMOUNT in out NUMBER, -- СУММА (НАЦ)
IN_CURRENCYAMOUNT in out NUMBER, -- СУММА (ВАЛ)
IN_EKNPCODE in out VARCHAR2, -- КНП
IN_DOCNUMBER in out VARCHAR2, -- № ДОКУМЕНТА
IN_DOCDATE in out DATE, -- ДАТА ДОКУМЕНТА
IN_DOCCATEGORY in out NUMBER, -- КАТЕГОРИЯ ДОКУМЕНТА
IN_DOCSUSPIC in out NUMBER, -- ТИП ПОДОЗРИТЕЛЬНОСТИ
IN_OPERATIONSTATUS in out NUMBER, -- СОСТОЯНИЕ ОПЕРАЦИИ
IN_OPERATIONREASON in out VARCHAR2, -- ОСНОВАНИЕ СОВЕРШЕНИЯ
OUT_MESS_NUMBER out NUMBER, -- ФМ1 - НОМЕР ФОРМЫ
OUT_MESS_DATE out DATE, -- ФМ1 - ДАТА ФОРМЫ
OUT_MESS_KIND out NUMBER, -- ФМ1 - ВИД ДОКУМЕНТА
OUT_MESS_STATUS out NUMBER, -- ФМ1 - ОСНОВАНИЕ ПОДАЧИ
OUT_SUSPIC_KIND out NUMBER, -- ВИД ДОКУМЕНТА (ФМ/ПОДОЗРИТ)
OUT_SUSPICIOUSTYPECODE out NUMBER, -- КОД КАТЕГОРИИ ФМ
OUT_CRITERIAFIRST out NUMBER, -- ПРИЗНАК ПОДОЗРИТЕЛЬНОСТИ 1
OUT_CRITERIASECOND out NUMBER, -- ПРИЗНАК ПОДОЗРИТЕЛЬНОСТИ 2
OUT_CRITERIATHIRD out NUMBER, -- ПРИЗНАК ПОДОЗРИТЕЛЬНОСТИ 3
OUT_CRITERIADIFFICULTIES out VARCHAR2, -- ЗАТРУДНЕНИЯ
OUT_OPERATIONEXTRAINFO out VARCHAR2, -- ДОПОЛНИТЕЛЬНАЯ ИНФОРМАЦИЯ
OUT_OFFLINEOPERATIONID out NUMBER, -- ID ОПЕРАЦИИ ИЗ TB_OFFLINEOPERATIONS
OUT_OPERATION_LIST out VARCHAR2 -- СПИСОК ID ОПЕРАЦИЙ TB_OFFLINEOPERATIONS
)
return number is
v_res number; -- СТАТУС ВОЗВРАТА, ЕСЛИ СРАБАТЫВАЕТ СЦЕНАРИЙ, ТО ВОЗВРАЩАЕМ 1
NCOUNT NUMBER := 0;
NSUM_OFFOPER TB_OFFLINEOPERATIONS.P_BASEAMOUNT%TYPE := 0;
V_OPERATION_LIST VARCHAR2(2000) := IN_ID;
v_ExtraInfo varchar2(2000) := ''; -- описание по клиенту
nIDSCENARIO number;
sWord varchar2(50) := null;
n_POROG number;
begin
v_res := -1;
/*****
ОПИСАНИЕ СЦЕНАРИЯ:
0221 - Продажа наличной иностранной валюты через обменные пункты в наличной форме;
Категория документа = 8- продажа
И
сумма >= 10 000 000 KZT
И оснавание содержит ‘Продаж'
*****/
-- НАЧАЛО ПОЛЬЗОВАТЕЛЬСКОГО КОДА
if IN_DOCCATEGORY = 8
and IN_BASEAMOUNT >= 10000000
and lower(IN_OPERATIONREASON) like '%продаж%'
then
OUT_MESS_NUMBER := -1;
OUT_MESS_DATE := sysdate;
OUT_MESS_KIND := '1';
OUT_MESS_STATUS := '1';
OUT_SUSPIC_KIND := '1';
OUT_SUSPICIOUSTYPECODE := '0221';
OUT_CRITERIAFIRST := null;
OUT_CRITERIASECOND := null;
OUT_CRITERIATHIRD := null;
OUT_CRITERIADIFFICULTIES := '';
OUT_OPERATIONEXTRAINFO := '[Сценарий № 0221]' || chr(10) ||
'Назначение платежа: ' ||
IN_OPERATIONREASON || chr(10) ||
'Продажа клиентом наличной иностранной валюты через обменные пункты в наличной форме' || -- Nauryzbay.R 15.11.2023 Продажа наличной иностранной валюты через обменные пункты;
chr(10) || 'КНП = ' || IN_EKNPCODE;-- ||
--chr(10) || 'Совпадение со словом: ' ||sWord;
OUT_OFFLINEOPERATIONID := IN_ID;
OUT_OPERATION_LIST := IN_ID;
IN_OPERATIONREASON := nvl(get_doc_type(IN_ID), IN_OPERATIONREASON);
v_res := 1;
end if;
create or replace function SCENARIO#0221(IN_ID in out NUMBER, -- ИД IN_ISSUEDBID in out NUMBER, -- БД ИСТОЧНИК IN_BANKOPERATIONID in out VARCHAR2, -- НОМЕР ОПЕРАЦИИ IN_ORDERNUMBER in out VARCHAR2, -- НОМЕР ЗАЯВКИ В СИСТЕМЕ IN_BRANCH in out VARCHAR2, -- КОД ФИЛИАЛА IN_CURRENCYCODE in out VARCHAR2, -- КОД ВАЛЮТЫ IN_OPERATIONDATETIME in out DATE, -- ДАТА ОПЕРАЦИИ IN_BASEAMOUNT in out NUMBER, -- СУММА (НАЦ) IN_CURRENCYAMOUNT in out NUMBER, -- СУММА (ВАЛ) IN_EKNPCODE in out VARCHAR2, -- КНП IN_DOCNUMBER in out VARCHAR2, -- № ДОКУМЕНТА IN_DOCDATE in out DATE, -- ДАТА ДОКУМЕНТА IN_DOCCATEGORY in out NUMBER, -- КАТЕГОРИЯ ДОКУМЕНТА IN_DOCSUSPIC in out NUMBER, -- ТИП ПОДОЗРИТЕЛЬНОСТИ IN_OPERATIONSTATUS in out NUMBER, -- СОСТОЯНИЕ ОПЕРАЦИИ IN_OPERATIONREASON in out VARCHAR2, -- ОСНОВАНИЕ СОВЕРШЕНИЯ OUT_MESS_NUMBER out NUMBER, -- ФМ1 - НОМЕР ФОРМЫ OUT_MESS_DATE out DATE, -- ФМ1 - ДАТА ФОРМЫ OUT_MESS_KIND out NUMBER, -- ФМ1 - ВИД ДОКУМЕНТА OUT_MESS_STATUS out NUMBER, -- ФМ1 - ОСНОВАНИЕ ПОДАЧИ OUT_SUSPIC_KIND out NUMBER, -- ВИД ДОКУМЕНТА (ФМ/ПОДОЗРИТ) OUT_SUSPICIOUSTYPECODE out NUMBER, -- КОД КАТЕГОРИИ ФМ OUT_CRITERIAFIRST out NUMBER, -- ПРИЗНАК ПОДОЗРИТЕЛЬНОСТИ 1 OUT_CRITERIASECOND out NUMBER, -- ПРИЗНАК ПОДОЗРИТЕЛЬНОСТИ 2 OUT_CRITERIATHIRD out NUMBER, -- ПРИЗНАК ПОДОЗРИТЕЛЬНОСТИ 3 OUT_CRITERIADIFFICULTIES out VARCHAR2, -- ЗАТРУДНЕНИЯ OUT_OPERATIONEXTRAINFO out VARCHAR2, -- ДОПОЛНИТЕЛЬНАЯ ИНФОРМАЦИЯ OUT_OFFLINEOPERATIONID out NUMBER, -- ID ОПЕРАЦИИ ИЗ TB_OFFLINEOPERATIONS OUT_OPERATION_LIST out VARCHAR2 -- СПИСОК ID ОПЕРАЦИЙ TB_OFFLINEOPERATIONS )
return number is v_res number; -- СТАТУС ВОЗВРАТА, ЕСЛИ СРАБАТЫВАЕТ СЦЕНАРИЙ, ТО ВОЗВРАЩАЕМ 1 NCOUNT NUMBER := 0; NSUM_OFFOPER TB_OFFLINEOPERATIONS.P_BASEAMOUNT%TYPE := 0; V_OPERATION_LIST VARCHAR2(2000) := IN_ID; v_ExtraInfo varchar2(2000) := ''; -- описание по клиенту nIDSCENARIO number; sWord varchar2(50) := null; n_POROG number; begin v_res := -1;
/***** ОПИСАНИЕ СЦЕНАРИЯ: 0221 - Продажа наличной иностранной валюты через обменные пункты в наличной форме;
*****/ -- НАЧАЛО ПОЛЬЗОВАТЕЛЬСКОГО КОДА if IN_DOCCATEGORY = 8 and IN_BASEAMOUNT >= 10000000 and lower(IN_OPERATIONREASON) like '%продаж%' then OUT_MESS_NUMBER := -1; OUT_MESS_DATE := sysdate; OUT_MESS_KIND := '1'; OUT_MESS_STATUS := '1'; OUT_SUSPIC_KIND := '1'; OUT_SUSPICIOUSTYPECODE := '0221'; OUT_CRITERIAFIRST := null; OUT_CRITERIASECOND := null; OUT_CRITERIATHIRD := null; OUT_CRITERIADIFFICULTIES := ''; OUT_OPERATIONEXTRAINFO := '[Сценарий № 0221]' || chr(10) || 'Назначение платежа: ' || IN_OPERATIONREASON || chr(10) || 'Продажа клиентом наличной иностранной валюты через обменные пункты в наличной форме' || -- Nauryzbay.R 15.11.2023 Продажа наличной иностранной валюты через обменные пункты; chr(10) || 'КНП = ' || IN_EKNPCODE;-- || --chr(10) || 'Совпадение со словом: ' ||sWord; OUT_OFFLINEOPERATIONID := IN_ID; OUT_OPERATION_LIST := IN_ID; IN_OPERATIONREASON := nvl(get_doc_type(IN_ID), IN_OPERATIONREASON); v_res := 1; end if;
return v_res; end;