Функция создания сеанса Парус 8, приведение в порядок тестовых функций для стенда (работаем через XML теперь), первый вариант поиска контрагента и договора по запросу от Яндекс-Диалогов
This commit is contained in:
parent
b43b8df330
commit
419696523e
@ -52,15 +52,15 @@ create or replace package body UDO_PKG_EXS_TEST as
|
|||||||
NEXSSERVICEFN EXSSERVICEFN.RN%type; -- Ðåã. íîìåð ôóíêöèè ñåðâèñà
|
NEXSSERVICEFN EXSSERVICEFN.RN%type; -- Ðåã. íîìåð ôóíêöèè ñåðâèñà
|
||||||
RCTMP sys_refcursor; -- Áóôåð äëÿ èçìåíåííîé ïîçèöèè î÷åðåäè
|
RCTMP sys_refcursor; -- Áóôåð äëÿ èçìåíåííîé ïîçèöèè î÷åðåäè
|
||||||
begin
|
begin
|
||||||
/* èíèöèàëèçèðóåì ìíåìîêîä ôóíêöèè ñåðâèñà */
|
/* Èíèöèàëèçèðóåì ìíåìîêîä ôóíêöèè ñåðâèñà */
|
||||||
SEXSSERVICEFN := 'Ïîëó÷åíèåÊîíòðàãåíòà';
|
SEXSSERVICEFN := 'Ïîëó÷åíèåÊîíòðàãåíòà';
|
||||||
/* Íàéäåì ðåã. íîìåð ôóíêöèè ñåðâñèâà */
|
/* Íàéäåì ðåã. íîìåð ôóíêöèè ñåðâèñà */
|
||||||
FIND_EXSSERVICEFN_CODE(NFLAG_SMART => 0, NFLAG_OPTION => 0, SCODE => SEXSSERVICEFN, NRN => NEXSSERVICEFN);
|
FIND_EXSSERVICEFN_CODE(NFLAG_SMART => 0, NFLAG_OPTION => 0, SCODE => SEXSSERVICEFN, NRN => NEXSSERVICEFN);
|
||||||
/* Ïîìåñòèì çàäàíèå â î÷åðåäü */
|
/* Ïîìåñòèì çàäàíèå â î÷åðåäü */
|
||||||
PKG_EXS.QUEUE_PUT(NEXSSERVICEFN => NEXSSERVICEFN,
|
PKG_EXS.QUEUE_PUT(NEXSSERVICEFN => NEXSSERVICEFN,
|
||||||
BMSG => CLOB2BLOB(LCDATA => TO_CHAR(NREMOTE_AGENT)),
|
BMSG => CLOB2BLOB(LCDATA => 'CPRMS={SACTION:"GET_AGENT",NAGENT:' || TO_CHAR(NREMOTE_AGENT) || '}'),
|
||||||
RCQUEUE => RCTMP);
|
RCQUEUE => RCTMP);
|
||||||
end;
|
end RECIVE_AGENT;
|
||||||
|
|
||||||
/* Îáðàáîòêà îòâåòà ñ èíôîðìàöèåé î êîíòðàãåíòå îò òåñòîâîãî ñòåíäà */
|
/* Îáðàáîòêà îòâåòà ñ èíôîðìàöèåé î êîíòðàãåíòå îò òåñòîâîãî ñòåíäà */
|
||||||
procedure PROCESS_AGN_INFO_RESP
|
procedure PROCESS_AGN_INFO_RESP
|
||||||
@ -74,7 +74,6 @@ create or replace package body UDO_PKG_EXS_TEST as
|
|||||||
CTMP clob; -- Áóôåð äëÿ êîíâåðòàöèè
|
CTMP clob; -- Áóôåð äëÿ êîíâåðòàöèè
|
||||||
RCTMP sys_refcursor; -- Áóôåð äëÿ èçìåíåííîé ïîçèöèè î÷åðåäè
|
RCTMP sys_refcursor; -- Áóôåð äëÿ èçìåíåííîé ïîçèöèè î÷åðåäè
|
||||||
NCOMPANY PKG_STD.TREF; -- Ðåã. íîìåð îðãàíèçàöèè
|
NCOMPANY PKG_STD.TREF; -- Ðåã. íîìåð îðãàíèçàöèè
|
||||||
NVERSION PKG_STD.TREF; -- Ðåã. íîìåð âåðñèè
|
|
||||||
NCRN PKG_STD.TREF; -- Ðåã. íîìåð êàòàëîãà
|
NCRN PKG_STD.TREF; -- Ðåã. íîìåð êàòàëîãà
|
||||||
SAGNABBR AGNLIST.AGNABBR%type; -- Ìíåìîêîä êîíòðàãåíòà
|
SAGNABBR AGNLIST.AGNABBR%type; -- Ìíåìîêîä êîíòðàãåíòà
|
||||||
SAGNNAME AGNLIST.AGNNAME%type; -- Íàèìåíîâàíèå êîíòðàãåíòà
|
SAGNNAME AGNLIST.AGNNAME%type; -- Íàèìåíîâàíèå êîíòðàãåíòà
|
||||||
@ -87,24 +86,23 @@ create or replace package body UDO_PKG_EXS_TEST as
|
|||||||
/* Êîíâåðòèðóåì â êîäèðîâêó ÁÄ */
|
/* Êîíâåðòèðóåì â êîäèðîâêó ÁÄ */
|
||||||
CTMP := BLOB2CLOB(LBDATA => REXSQUEUE.RESP, SCHARSET => 'UTF8');
|
CTMP := BLOB2CLOB(LBDATA => REXSQUEUE.RESP, SCHARSET => 'UTF8');
|
||||||
/* Êëàä¸ì êîíâåðòèðîâàííîå îáðàòíî (ïðîñòî äëÿ óäîáñòâà ìîíèòîðèíãà) */
|
/* Êëàä¸ì êîíâåðòèðîâàííîå îáðàòíî (ïðîñòî äëÿ óäîáñòâà ìîíèòîðèíãà) */
|
||||||
PKG_EXS.QUEUE_RESP_SET(NEXSQUEUE => REXSQUEUE.RN, BRESP => CLOB2BLOB(LCDATA => CTMP), RCQUEUE => RCTMP);
|
PKG_EXS.QUEUE_MSG_SET(NEXSQUEUE => REXSQUEUE.RN, BMSG => CLOB2BLOB(LCDATA => CTMP), RCQUEUE => RCTMP);
|
||||||
/* Ðàçáèðàåì îòâåò ñåðâåðà */
|
/* Ðàçáèðàåì îòâåò ñåðâåðà */
|
||||||
declare
|
if (CTMP is not null) then
|
||||||
SSPR varchar2(3) := '$#$';
|
select EXTRACTVALUE(XMLTYPE(CTMP), '/AGENT/SAGNABBR') SAGNABBR,
|
||||||
NSPRL number := LENGTH(SSPR);
|
EXTRACTVALUE(XMLTYPE(CTMP), '/AGENT/SAGNNAME') SAGNNAME
|
||||||
begin
|
into SAGNABBR,
|
||||||
SAGNABBR := SUBSTR(CTMP, 1, INSTR(CTMP, SSPR) - 1);
|
SAGNNAME
|
||||||
SAGNNAME := SUBSTR(CTMP, INSTR(CTMP, SSPR) + NSPRL);
|
from DUAL;
|
||||||
exception
|
else
|
||||||
when others then
|
P_EXCEPTION(0, 'Íå óêàçàíû äàííûå äëÿ äîáàâëåíèÿ êîíòðàãåíòà.');
|
||||||
P_EXCEPTION(0, 'Íåîæèäàííûé îòâåò ñåðâåðà');
|
end if;
|
||||||
end;
|
|
||||||
if (SAGNABBR is null) then
|
if (SAGNABBR is null) then
|
||||||
P_EXCEPTION(0, 'Â îòâåòå ñåðâåðà íå óêàçàí ìíåìîêîä êîíòðàãåíòà');
|
P_EXCEPTION(0, 'Â îòâåòå ñåðâåðà íå óêàçàí ìíåìîêîä êîíòðàãåíòà.');
|
||||||
end if;
|
end if;
|
||||||
if (SAGNNAME is null) then
|
if (SAGNNAME is null) then
|
||||||
P_EXCEPTION(0,
|
P_EXCEPTION(0,
|
||||||
'Â îòâåòå ñåðâåðà íå óêàçàíî íàèìåíîâàíèå êîíòðàãåíòà');
|
'Â îòâåòå ñåðâåðà íå óêàçàíî íàèìåíîâàíèå êîíòðàãåíòà.');
|
||||||
end if;
|
end if;
|
||||||
/* Íàéä¸ì êàòàëîã */
|
/* Íàéä¸ì êàòàëîã */
|
||||||
FIND_ACATALOG_NAME(NFLAG_SMART => 0,
|
FIND_ACATALOG_NAME(NFLAG_SMART => 0,
|
||||||
@ -122,40 +120,117 @@ create or replace package body UDO_PKG_EXS_TEST as
|
|||||||
exception
|
exception
|
||||||
when others then
|
when others then
|
||||||
PKG_EXS.PRC_RESP_ARG_STR_SET(NIDENT => NIDENT, SARG => PKG_EXS.SCONT_FLD_SERR, SVALUE => sqlerrm);
|
PKG_EXS.PRC_RESP_ARG_STR_SET(NIDENT => NIDENT, SARG => PKG_EXS.SCONT_FLD_SERR, SVALUE => sqlerrm);
|
||||||
end;
|
end PROCESS_AGN_INFO_RESP;
|
||||||
|
|
||||||
/* Îáðàáîòêà çàïðîñà íà ñîçäàíèå ñåññèè */
|
/* Îáðàáîòêà çàïðîñà íà ñîçäàíèå ñåññèè */
|
||||||
procedure RESP_LOGIN
|
procedure RESP_LOGIN
|
||||||
(
|
(
|
||||||
NIDENT in number, -- Èäåíòèôèêàòîð ïðîöåññà
|
NIDENT in number, -- Èäåíòèôèêàòîð ïðîöåññà
|
||||||
NSRV_TYPE in number, -- Òèï ñåðâèñà (ñì. êîíñòàíòû PKG_EXS.NSRV_TYPE*)
|
NSRV_TYPE in number, -- Òèï ñåðâèñà (ñì. êîíñòàíòû PKG_EXS.NSRV_TYPE*)
|
||||||
NEXSQUEUE in number -- Ðåãèñòðàöèîííûé íîìåð îáðàáàòûâàåìîé ïîçèöèè î÷åðåäè îáìåíà
|
NEXSQUEUE in number -- Ðåãèñòðàöèîííûé íîìåð îáðàáàòûâàåìîé ïîçèöèè î÷åðåäè îáìåíà
|
||||||
)
|
)
|
||||||
is
|
is
|
||||||
REXSQUEUE EXSQUEUE%rowtype; -- Çàïèñü ïîçèöèè î÷åðåäè
|
REXSQUEUE EXSQUEUE%rowtype; -- Çàïèñü ïîçèöèè î÷åðåäè
|
||||||
CTMP clob; -- Áóôåð äëÿ êîíâåðòàöèè
|
CTMP clob; -- Áóôåð äëÿ êîíâåðòàöèè
|
||||||
|
RCTMP sys_refcursor; -- Áóôåð äëÿ èçìåíåííîé ïîçèöèè î÷åðåäè
|
||||||
|
SUSER PKG_STD.TSTRING; -- Èìÿ ïîëüçîâàòåëÿ
|
||||||
|
SPASS PKG_STD.TSTRING; -- Ïàðîëü ïîëüçîâàòåëÿ
|
||||||
|
SCOMPANY PKG_STD.TSTRING; -- Íàèìåíîâàíèå îðãàíèçàöèè
|
||||||
|
SCONNECT PKG_STD.TSTRING; -- Èäåíòèôèêàòîð ñåñèè
|
||||||
begin
|
begin
|
||||||
/* Ñ÷èòàåì çàïèñü î÷åðåäè */
|
/* Ñ÷èòàåì çàïèñü î÷åðåäè */
|
||||||
REXSQUEUE := GET_EXSQUEUE_ID(NFLAG_SMART => 0, NRN => NEXSQUEUE);
|
REXSQUEUE := GET_EXSQUEUE_ID(NFLAG_SMART => 0, NRN => NEXSQUEUE);
|
||||||
/* Êîíâåðòèðóåì â êîäèðîâêó ÁÄ */
|
/* Çàáèðàåì äàííûå ñîîáùåíèÿ è êîíâåðòèðóåì â êîäèðîâêó ÁÄ */
|
||||||
CTMP := BLOB2CLOB(LBDATA => REXSQUEUE.MSG, SCHARSET => 'UTF8');
|
CTMP := BLOB2CLOB(LBDATA => REXSQUEUE.MSG, SCHARSET => 'UTF8');
|
||||||
/* Âûñòàâëÿåì ðåçóëüòàò îáðàáîòêè */
|
/* Êëàä¸ì êîíâåðòèðîâàííîå îáðàòíî (ïðîñòî äëÿ óäîáñòâà ìîíèòîðèíãà) */
|
||||||
PKG_EXS.PRC_RESP_ARG_BLOB_SET(NIDENT => NIDENT,
|
PKG_EXS.QUEUE_MSG_SET(NEXSQUEUE => REXSQUEUE.RN, BMSG => CLOB2BLOB(LCDATA => CTMP), RCQUEUE => RCTMP);
|
||||||
SARG => PKG_EXS.SCONT_FLD_BRESP,
|
/* Èçâëåêàåì ëîãèí è ïàðîëü */
|
||||||
BVALUE => CLOB2BLOB(LCDATA => CTMP || ' ÎÁÐÀÁÎÒÊÀ ÏÀÐÓÑ 8', SCHARSET => 'UTF8'));
|
if (CTMP is not null) then
|
||||||
end;
|
select EXTRACTVALUE(XMLTYPE(CTMP), '/auth/user') SUSER,
|
||||||
|
EXTRACTVALUE(XMLTYPE(CTMP), '/auth/pass') SPASS,
|
||||||
|
EXTRACTVALUE(XMLTYPE(CTMP), '/auth/company') SCOMP
|
||||||
|
into SUSER,
|
||||||
|
SPASS,
|
||||||
|
SCOMPANY
|
||||||
|
from DUAL;
|
||||||
|
else
|
||||||
|
P_EXCEPTION(0, 'Íå óêàçàíû äàííûå äëÿ àóòåíòèôèêàöèè.');
|
||||||
|
end if;
|
||||||
|
/* Åñëè è ëîãèí è ïàðîëü è îðãàíèçàöèÿ åñòü */
|
||||||
|
if ((SUSER is not null) and (SPASS is not null) and (SCOMPANY is not null)) then
|
||||||
|
/* Ôîðìèðóåì èäåíòèôèêàòîð ñåñèè */
|
||||||
|
SCONNECT := SYS_GUID();
|
||||||
|
/* Ñîçäà¸ì ñåññèþ */
|
||||||
|
PKG_SESSION.LOGON_WEB(SCONNECT => SCONNECT,
|
||||||
|
SUTILIZER => SUSER,
|
||||||
|
SPASSWORD => SPASS,
|
||||||
|
SIMPLEMENTATION => 'Other',
|
||||||
|
SAPPLICATION => 'Other',
|
||||||
|
SCOMPANY => SCOMPANY);
|
||||||
|
/* Âûñòàâëÿåì ðåçóëüòàò îáðàáîòêè */
|
||||||
|
PKG_EXS.PRC_RESP_ARG_BLOB_SET(NIDENT => NIDENT,
|
||||||
|
SARG => PKG_EXS.SCONT_FLD_BRESP,
|
||||||
|
BVALUE => CLOB2BLOB(LCDATA => SCONNECT, SCHARSET => 'UTF8'));
|
||||||
|
|
||||||
|
else
|
||||||
|
P_EXCEPTION(0, 'Íå óêàçàíî èìÿ ïîëüçîâàòåëÿ, ïàðîëü èëè îðãàíèçàöèÿ.');
|
||||||
|
end if;
|
||||||
|
exception
|
||||||
|
when others then
|
||||||
|
PKG_EXS.PRC_RESP_ARG_STR_SET(NIDENT => NIDENT, SARG => PKG_EXS.SCONT_FLD_SERR, SVALUE => sqlerrm);
|
||||||
|
end RESP_LOGIN;
|
||||||
|
|
||||||
/* Îáðàáîòêà çàïðîñà íà ïîèñê êîíòðàãåíòà */
|
/* Îáðàáîòêà çàïðîñà íà ïîèñê êîíòðàãåíòà */
|
||||||
procedure RESP_FIND_AGENT
|
procedure RESP_FIND_AGENT
|
||||||
(
|
(
|
||||||
NIDENT in number, -- Èäåíòèôèêàòîð ïðîöåññà
|
NIDENT in number, -- Èäåíòèôèêàòîð ïðîöåññà
|
||||||
NSRV_TYPE in number, -- Òèï ñåðâèñà (ñì. êîíñòàíòû PKG_EXS.NSRV_TYPE*)
|
NSRV_TYPE in number, -- Òèï ñåðâèñà (ñì. êîíñòàíòû PKG_EXS.NSRV_TYPE*)
|
||||||
NEXSQUEUE in number -- Ðåãèñòðàöèîííûé íîìåð îáðàáàòûâàåìîé ïîçèöèè î÷åðåäè îáìåíà
|
NEXSQUEUE in number -- Ðåãèñòðàöèîííûé íîìåð îáðàáàòûâàåìîé ïîçèöèè î÷åðåäè îáìåíà
|
||||||
)
|
)
|
||||||
is
|
is
|
||||||
|
REXSQUEUE EXSQUEUE%rowtype; -- Çàïèñü ïîçèöèè î÷åðåäè
|
||||||
|
CTMP clob; -- Áóôåð äëÿ êîíâåðòàöèè
|
||||||
|
CRESP clob; -- Äàííûå äëÿ îòâåòà
|
||||||
|
RCTMP sys_refcursor; -- Áóôåð äëÿ èçìåíåííîé ïîçèöèè î÷åðåäè
|
||||||
begin
|
begin
|
||||||
null;
|
/* Ñ÷èòàåì çàïèñü î÷åðåäè */
|
||||||
end;
|
REXSQUEUE := GET_EXSQUEUE_ID(NFLAG_SMART => 0, NRN => NEXSQUEUE);
|
||||||
|
/* Çàáèðàåì äàííûå ñîîáùåíèÿ è êîíâåðòèðóåì â êîäèðîâêó ÁÄ */
|
||||||
|
CTMP := BLOB2CLOB(LBDATA => REXSQUEUE.MSG, SCHARSET => 'UTF8');
|
||||||
|
/* Êëàä¸ì êîíâåðòèðîâàííîå îáðàòíî (ïðîñòî äëÿ óäîáñòâà ìîíèòîðèíãà) */
|
||||||
|
PKG_EXS.QUEUE_MSG_SET(NEXSQUEUE => REXSQUEUE.RN, BMSG => CLOB2BLOB(LCDATA => CTMP), RCQUEUE => RCTMP);
|
||||||
|
/* Åñëè åñòü ÷òî èñêàòü */
|
||||||
|
if (CTMP is not null) then
|
||||||
|
/* Èíèöèàëèçèðóåì îòâåò */
|
||||||
|
CRESP := 'Êîíòðàãåíò "' || CTMP || '" íå íàéäåí';
|
||||||
|
/* Èùåì çàïðîøåííîãî êîíòðàãåíòà */
|
||||||
|
for C in (select T.AGNNAME ||
|
||||||
|
DECODE(T.AGNTYPE, 1, ', ôèçè÷åñêîå ëèöî', ', þðèäè÷åñêîå ëèöî') SAGENT,
|
||||||
|
(select count(CN.RN) from CONTRACTS CN where CN.AGENT = T.RN) NCNT_CONTRACTS,
|
||||||
|
(select sum(CN.DOC_SUM) from CONTRACTS CN where CN.AGENT = T.RN) NSUM_CONTRACTS
|
||||||
|
from AGNLIST T
|
||||||
|
where ((STRINLIKE(LOWER(T.AGNABBR), '%' || LOWER(replace(CTMP, ' ', '% %')) || '%', ' ') <> 0) or
|
||||||
|
(STRINLIKE(LOWER(T.AGNNAME), '%' || LOWER(replace(CTMP, ' ', '% %')) || '%', ' ') <> 0))
|
||||||
|
and ROWNUM <= 1)
|
||||||
|
loop
|
||||||
|
CRESP := C.SAGENT;
|
||||||
|
if (C.NCNT_CONTRACTS = 0) then
|
||||||
|
CRESP := CRESP || ', íå èìååò çàðåãèñòðèðîâàííûõ â ñèñòåìå äîãîâîðîâ';
|
||||||
|
else
|
||||||
|
CRESP := CRESP || ', çàðåãèñòðèðîâàíî äîãîâîðîâ: ' || TO_CHAR(C.NCNT_CONTRACTS);
|
||||||
|
if (C.NSUM_CONTRACTS <> 0) then
|
||||||
|
CRESP := CRESP || ', íà îáùóþ ñóììó: ' || TO_CHAR(C.NSUM_CONTRACTS) || ' ðóá.';
|
||||||
|
end if;
|
||||||
|
end if;
|
||||||
|
end loop;
|
||||||
|
else
|
||||||
|
CRESP := 'Íå óêàçàí ïîèñêîâûé çàïðîñ';
|
||||||
|
end if;
|
||||||
|
/* Âîçâðàùàåì îòâåò */
|
||||||
|
PKG_EXS.PRC_RESP_ARG_BLOB_SET(NIDENT => NIDENT,
|
||||||
|
SARG => PKG_EXS.SCONT_FLD_BRESP,
|
||||||
|
BVALUE => CLOB2BLOB(LCDATA => CRESP, SCHARSET => 'UTF8'));
|
||||||
|
end RESP_FIND_AGENT;
|
||||||
|
|
||||||
/* Îáðàáîòêà çàïðîñà íà ïîèñê äîãîâîðà */
|
/* Îáðàáîòêà çàïðîñà íà ïîèñê äîãîâîðà */
|
||||||
procedure RESP_FIND_CONTRACT
|
procedure RESP_FIND_CONTRACT
|
||||||
@ -165,9 +240,49 @@ create or replace package body UDO_PKG_EXS_TEST as
|
|||||||
NEXSQUEUE in number -- Ðåãèñòðàöèîííûé íîìåð îáðàáàòûâàåìîé ïîçèöèè î÷åðåäè îáìåíà
|
NEXSQUEUE in number -- Ðåãèñòðàöèîííûé íîìåð îáðàáàòûâàåìîé ïîçèöèè î÷åðåäè îáìåíà
|
||||||
)
|
)
|
||||||
is
|
is
|
||||||
|
REXSQUEUE EXSQUEUE%rowtype; -- Çàïèñü ïîçèöèè î÷åðåäè
|
||||||
|
CTMP clob; -- Áóôåð äëÿ êîíâåðòàöèè
|
||||||
|
CRESP clob; -- Äàííûå äëÿ îòâåòà
|
||||||
|
RCTMP sys_refcursor; -- Áóôåð äëÿ èçìåíåííîé ïîçèöèè î÷åðåäè
|
||||||
begin
|
begin
|
||||||
null;
|
/* Ñ÷èòàåì çàïèñü î÷åðåäè */
|
||||||
end;
|
REXSQUEUE := GET_EXSQUEUE_ID(NFLAG_SMART => 0, NRN => NEXSQUEUE);
|
||||||
|
/* Çàáèðàåì äàííûå ñîîáùåíèÿ è êîíâåðòèðóåì â êîäèðîâêó ÁÄ */
|
||||||
|
CTMP := BLOB2CLOB(LBDATA => REXSQUEUE.MSG, SCHARSET => 'UTF8');
|
||||||
|
/* Êëàä¸ì êîíâåðòèðîâàííîå îáðàòíî (ïðîñòî äëÿ óäîáñòâà ìîíèòîðèíãà) */
|
||||||
|
PKG_EXS.QUEUE_MSG_SET(NEXSQUEUE => REXSQUEUE.RN, BMSG => CLOB2BLOB(LCDATA => CTMP), RCQUEUE => RCTMP);
|
||||||
|
/* Åñëè åñòü ÷òî èñêàòü */
|
||||||
|
if (CTMP is not null) then
|
||||||
|
/* Èùåì çàïðîøåííûé äîãîâîð */
|
||||||
|
begin
|
||||||
|
select DECODE(T.INOUT_SIGN, 0, 'Âõîäÿùèé', 'Èñõîäÿùèé') || ' äîãîâîð ¹' ||
|
||||||
|
NVL(T.EXT_NUMBER, trim(T.DOC_PREF) || '-' || trim(T.DOC_NUMB)) || ' îò ' ||
|
||||||
|
TO_CHAR(T.DOC_DATE, 'dd.mm.yyyy') || ' ñ êîíòðàãåíòîì ' || AG.AGNNAME || ' íà ñóììó ' ||
|
||||||
|
TO_CHAR(T.DOC_SUM) || ' ' || CN.INTCODE || ', îïëà÷åíî ' || TO_CHAR(T.FACT_OUTPAY_SUM) || ' ' ||
|
||||||
|
CN.INTCODE SDOC
|
||||||
|
into CRESP
|
||||||
|
from CONTRACTS T,
|
||||||
|
AGNLIST AG,
|
||||||
|
CURNAMES CN
|
||||||
|
where ((STRINLIKE(LOWER(T.EXT_NUMBER), '%' || LOWER(replace(CTMP, ' ', '% %')) || '%', ' ') <> 0) or
|
||||||
|
(STRINLIKE(LOWER(trim(T.DOC_PREF) || trim(T.DOC_NUMB)),
|
||||||
|
'%' || LOWER(replace(CTMP, ' ', '% %')) || '%',
|
||||||
|
' ') <> 0))
|
||||||
|
and T.AGENT = AG.RN
|
||||||
|
and T.CURRENCY = CN.RN
|
||||||
|
and ROWNUM <= 1;
|
||||||
|
exception
|
||||||
|
when NO_DATA_FOUND then
|
||||||
|
CRESP := 'Äîãîâîð "' || CTMP || '" íå íàéäåí';
|
||||||
|
end;
|
||||||
|
else
|
||||||
|
CRESP := 'Íå óêàçàí ïîèñêîâûé çàïðîñ';
|
||||||
|
end if;
|
||||||
|
/* Âîçâðàùàåì îòâåò */
|
||||||
|
PKG_EXS.PRC_RESP_ARG_BLOB_SET(NIDENT => NIDENT,
|
||||||
|
SARG => PKG_EXS.SCONT_FLD_BRESP,
|
||||||
|
BVALUE => CLOB2BLOB(LCDATA => CRESP, SCHARSET => 'UTF8'));
|
||||||
|
end RESP_FIND_CONTRACT;
|
||||||
|
|
||||||
end;
|
end;
|
||||||
/
|
/
|
||||||
|
Loading…
x
Reference in New Issue
Block a user