55 lines
2.1 KiB
Plaintext
55 lines
2.1 KiB
Plaintext
create or replace package UDO_PKG_EXS_ATOL as
|
|
|
|
/* Îòðàáîòêà îòâåòîâ ÀÒÎË (v4) íà ðåãèñòðàöèþ ÷åêà íà ïðèõîä, ðàñõîä, âîçâðàò (ÔÔÄ 1.05) */
|
|
procedure V4_FFD105_PROCESS_REG_BILL_SIR
|
|
(
|
|
NIDENT in number, -- Èäåíòèôèêàòîð ïðîöåññà
|
|
NEXSQUEUE in number -- Ðåãèñòðàöèîííûé íîìåð îáðàáàòûâàåìîé ïîçèöèè î÷åðåäè îáìåíà
|
|
);
|
|
|
|
end;
|
|
/
|
|
create or replace package body UDO_PKG_EXS_ATOL as
|
|
|
|
/* Îòðàáîòêà îòâåòîâ ÀÒÎË (v4) íà ðåãèñòðàöèþ ÷åêà íà ïðèõîä, ðàñõîä, âîçâðàò (ÔÔÄ 1.05) */
|
|
procedure V4_FFD105_PROCESS_REG_BILL_SIR
|
|
(
|
|
NIDENT in number, -- Èäåíòèôèêàòîð ïðîöåññà
|
|
NEXSQUEUE in number -- Ðåãèñòðàöèîííûé íîìåð îáðàáàòûâàåìîé ïîçèöèè î÷åðåäè îáìåíà
|
|
)
|
|
is
|
|
REXSQUEUE EXSQUEUE%rowtype; -- Çàïèñü ïîçèöèè î÷åðåäè
|
|
CTMP clob; -- Áóôåð äëÿ õðàíåíèÿ äàííûõ îòâåòà ñåðâåðà
|
|
begin
|
|
/* Ñ÷èòàåì çàïèñü î÷åðåäè */
|
|
REXSQUEUE := GET_EXSQUEUE_ID(NFLAG_SMART => 0, NRN => NEXSQUEUE);
|
|
/* Ïðîâåðèì ÷òî ïîçèöèÿ î÷åðåäè êîððåêòíà */
|
|
if (REXSQUEUE.LNK_DOCUMENT is null) then
|
|
P_EXCEPTION(0, 'Äëÿ ïîçèöèè î÷åðåäè íå óêàçàí ñâÿçàííûé äîêóìåíò.');
|
|
end if;
|
|
if (REXSQUEUE.LNK_UNITCODE is null) then
|
|
P_EXCEPTION(0, 'Äëÿ ïîçèöèè î÷åðåäè íå óêàçàí ñâÿçàííûé ðàçäåë.');
|
|
end if;
|
|
if (REXSQUEUE.LNK_UNITCODE <> 'UDO_FiscalDocuments') then
|
|
P_EXCEPTION(0,
|
|
'Ñâÿçàííûé ðàçäåë "%s", óêàçàííûé â ïîçèöèè î÷åðåäè, íå ïîääåðæèâàåòñÿ.',
|
|
REXSQUEUE.LNK_UNITCODE);
|
|
end if;
|
|
/* Ðàçáèðàåì îòâåò */
|
|
CTMP := BLOB2CLOB(LBDATA => REXSQUEUE.RESP, SCHARSET => 'UTF8');
|
|
if (CTMP is null) then
|
|
P_EXCEPTION(0, 'Íåò îòâåòà îò ñåðâåðà.');
|
|
end if;
|
|
/* Âûñòàâëÿåì èäåíòèôèêàòîð ÀÒÎË â ÔÄ */
|
|
update UDO_FISCDOCS T set T.NUMB_FD = CTMP where T.RN = REXSQUEUE.LNK_DOCUMENT;
|
|
/* Âñ¸ ïðîøëî óñïåøíî */
|
|
PKG_EXS.PRC_RESP_RESULT_SET(NIDENT => NIDENT);
|
|
exception
|
|
when others then
|
|
/* Âåðí¸ì îøèáêó */
|
|
PKG_EXS.PRC_RESP_RESULT_SET(NIDENT => NIDENT, SRESULT => PKG_EXS.SPRC_RESP_RESULT_ERR, SMSG => sqlerrm);
|
|
end V4_FFD105_PROCESS_REG_BILL_SIR;
|
|
|
|
end;
|
|
/
|