diff --git a/db/UDO_PKG_EXS_ATOL.pck b/db/UDO_PKG_EXS_ATOL.pck index b094193..e51fc26 100644 --- a/db/UDO_PKG_EXS_ATOL.pck +++ b/db/UDO_PKG_EXS_ATOL.pck @@ -49,6 +49,13 @@ create or replace package UDO_PKG_EXS_ATOL as NEXSQUEUE in number -- ); + /* */ + procedure OFD_PROCESS_GET_BILL_DOC + ( + NIDENT in number, -- + NEXSQUEUE in number -- + ); + end; / create or replace package body UDO_PKG_EXS_ATOL as @@ -264,6 +271,7 @@ create or replace package body UDO_PKG_EXS_ATOL as STAG1077 PKG_STD.TSTRING; -- " " ( 1077) SERR_CODE PKG_STD.TSTRING; -- " " SERR_TEXT PKG_STD.TSTRING; -- " " + NNEW_EXSQUEUE PKG_STD.TREF; -- . ( ) begin /* */ REXSQUEUE := GET_EXSQUEUE_ID(NFLAG_SMART => 0, NRN => NEXSQUEUE); @@ -326,12 +334,12 @@ create or replace package body UDO_PKG_EXS_ATOL as P_EXCEPTION(0, ' "%s", " " ( 1012).', SSTATUS); - end if; + end if; if (STAG1038 is null) then P_EXCEPTION(0, ' "%s", " " ( 1038).', SSTATUS); - end if; + end if; if (STAG1040 is null) then P_EXCEPTION(0, ' "%s", " " ( 1040).', @@ -389,7 +397,7 @@ create or replace package body UDO_PKG_EXS_ATOL as UDO_P_FISCDOCSPROP_SET_VAL(NPRN => RFISCDOC.RN, NCOMPANY => RFISCDOC.COMPANY, SATTRIBUTE => '1042', - NVAL_NUMB => TO_NUMBER(STAG1042)); + NVAL_NUMB => TO_NUMBER(STAG1042)); UDO_P_FISCDOCSPROP_SET_VAL(NPRN => RFISCDOC.RN, NCOMPANY => RFISCDOC.COMPANY, SATTRIBUTE => '1077', @@ -400,6 +408,15 @@ create or replace package body UDO_PKG_EXS_ATOL as ' : %s', sqlerrm); end; + /* */ + PKG_EXS.QUEUE_PUT(SEXSSERVICE => '_', + SEXSSERVICEFN => '', + BMSG => CLOB2BLOB(LCDATA => STAG1041 || '/' || STAG1040 || '/' || STAG1077, + SCHARSET => 'UTF8'), + NLNK_COMPANY => RFISCDOC.COMPANY, + NLNK_DOCUMENT => RFISCDOC.RN, + SLNK_UNITCODE => 'UDO_FiscalDocuments', + NNEW_EXSQUEUE => NNEW_EXSQUEUE); end; /* */ when SSTATUS_FAIL then @@ -430,5 +447,28 @@ create or replace package body UDO_PKG_EXS_ATOL as PKG_EXS.PRC_RESP_RESULT_SET(NIDENT => NIDENT, SRESULT => PKG_EXS.SPRC_RESP_RESULT_ERR, SMSG => sqlerrm); end V4_FFD105_PROCESS_GET_BILL_INF; + /* */ + procedure OFD_PROCESS_GET_BILL_DOC + ( + NIDENT in number, -- + NEXSQUEUE in number -- + ) + is + REXSQUEUE EXSQUEUE%rowtype; -- + begin + /* */ + REXSQUEUE := GET_EXSQUEUE_ID(NFLAG_SMART => 0, NRN => NEXSQUEUE); + /* */ + UTL_EXSQUEUE_CHECK_ATTRS(REXSQUEUE => REXSQUEUE); + /* */ + UDO_P_FISCDOCS_PUT_BILL(NRN => REXSQUEUE.LNK_DOCUMENT, NCOMPANY => REXSQUEUE.LNK_COMPANY, BDATA => REXSQUEUE.RESP); + /* */ + 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 OFD_PROCESS_GET_BILL_DOC; + end; / diff --git a/modules/parus_atol_v4_ffd1.05.js b/modules/parus_atol_v4_ffd1.05.js index 10e95ee..86f8680 100644 --- a/modules/parus_atol_v4_ffd1.05.js +++ b/modules/parus_atol_v4_ffd1.05.js @@ -674,8 +674,6 @@ const beforeGetBillInfo = async prms => { //Обработчик "После" отправки запроса на получение информации о чеке серверу "АТОЛ-Онлайн" const afterGetBillInfo = async prms => { - //if (prms.queue.blResp) console.log(prms.queue.blResp.toString()); - //else console.log("Сервер не вернул ответ"); //Буфер для результата работы обработчика let res = null; //Буфер для данных ответа сервера @@ -781,6 +779,32 @@ const afterGetBillInfo = async prms => { }; }; +//Обработчик "До" отправки запроса на получение чека серверу "ОФД" +const beforeGetOFDBillDoc = async prms => { + //Разберем данные для получения чека + let sDocPath = null; + if (prms.queue.blMsg) { + sDocPath = prms.queue.blMsg.toString(); + } else { + throw new Error("В теле сообщения отсутствуют данные для получения чека фискального документа"); + } + //Собираем общий результат работы + let res = { + options: { + url: buildURL({ sSrvRoot: prms.service.sSrvRoot, sFnURL: prms.function.sFnURL }).replace( + "", + sDocPath + ), + simple: true + } + }; + //Возврат резульатата + return res; +}; + +//Обработчик "После" отправки запроса на получение чека серверу "ОФД" +const afterGetOFDBillDoc = async prms => {}; + //----------------- // Интерфейс модуля //----------------- @@ -791,3 +815,5 @@ exports.beforeRegBillSIR = beforeRegBillSIR; exports.afterRegBillSIR = afterRegBillSIR; exports.beforeGetBillInfo = beforeGetBillInfo; exports.afterGetBillInfo = afterGetBillInfo; +exports.beforeGetOFDBillDoc = beforeGetOFDBillDoc; +exports.afterGetOFDBillDoc = afterGetOFDBillDoc;