forked from CITKParus/P8-ExchangeService
Корректировка алгоритма обновления места хранения ОС по штрих-коду места хранения импортированного из ТСД
This commit is contained in:
parent
0c1c3e668a
commit
bb5840f37d
@ -56,13 +56,6 @@ create or replace package UDO_PKG_EXS_INV as
|
||||
NEXSQUEUE in number -- Ðåãèñòðàöèîííûé íîìåð îáðàáàòûâàåìîé ïîçèöèè î÷åðåäè îáìåíà
|
||||
);
|
||||
|
||||
/* Ýëåêòðîííàÿ èíâåíòàðèçàöèÿ - ñîõðàíåíèå ðåçóëüòàòîâ èíâåíòàðèçàöèè (ÄÅÌÎ, óáðàòü!!!!) */
|
||||
procedure SAVESHEETITEM_TMP
|
||||
(
|
||||
NIDENT in number, -- Èäåíòèôèêàòîð ïðîöåññà
|
||||
NEXSQUEUE in number -- Ðåãèñòðàöèîííûé íîìåð îáðàáàòûâàåìîé ïîçèöèè î÷åðåäè îáìåíà
|
||||
);
|
||||
|
||||
end;
|
||||
/
|
||||
create or replace package body UDO_PKG_EXS_INV as
|
||||
@ -582,7 +575,7 @@ create or replace package body UDO_PKG_EXS_INV as
|
||||
/* Ñ÷èòûâàåì "Íîìåð" (ïàðàìåòð îòáîðà) */
|
||||
SREQNUMBER := UTL_GETNODEVAL(XROOTNODE => XNODE_ROOT, SPATTERN => SNUMBER);
|
||||
/* Ñ÷èòûâàåì "Äàòó" (ïàðàìåòð îòáîðà) */
|
||||
DREQDATE := TO_DATE(UTL_GETNODEVAL(XROOTNODE => XNODE_ROOT, SPATTERN => SDATE), 'yyyy-mm-dd');
|
||||
DREQDATE := TO_DATE(UTL_GETNODEVAL(XROOTNODE => XNODE_ROOT, SPATTERN => SDATE), 'YYYY-MM-DD');
|
||||
/* Êîíòðîëü èíäåòèôèêàòîðà óñòðîéñòâà ïî ëèöåíçèè */
|
||||
/* UTL_CHECK_DEVICEID(SDEVICEID => SREQDEVICEID); */
|
||||
/* Ïîäãîòàâëèâàåì äîêóìåíò äëÿ îòâåòà */
|
||||
@ -703,7 +696,11 @@ create or replace package body UDO_PKG_EXS_INV as
|
||||
/* Ñîçäà¸ì ïðîñòðàíñòâî èì¸í äëÿ îòâåòà */
|
||||
XGETSHEETITEMSRESPONSE := UTL_CREATENODE(XDOC => XDOC, STAG => SGETSHEETITEMSRESPONSE, SNS => STSD);
|
||||
/* Îáõîäèì òèïû äîêóìåíòîâ ñâÿçàííûå ñ ðàçäåëîì "Ýëåêòðîííûå èíâåíòàðèçàöèè" */
|
||||
for REC in (select DECODE(T.INVPACK, null, O.PLACE_MNEMO, OP.PLACE_MNEMO) SSTORAGEMNEMOCODE,
|
||||
for REC in (select T.RN NRN,
|
||||
T.COMPANY NCOMPANY,
|
||||
T.BARCODE SBARCODE,
|
||||
T.IS_LOADED NIS_LOADED,
|
||||
DECODE(T.INVPACK, null, O.PLACE_MNEMO, OP.PLACE_MNEMO) SSTORAGEMNEMOCODE,
|
||||
DECODE(T.INVPACK, null, O.BARCODE, OP.BARCODE) SOBARCODE,
|
||||
T.INVPERSONS NINVPERSONS,
|
||||
DECODE(PS.RN,
|
||||
@ -759,6 +756,14 @@ create or replace package body UDO_PKG_EXS_INV as
|
||||
XNODE := DBMS_XMLDOM.APPENDCHILD(N => XITEM, NEWCHILD => XITEMNUMBER);
|
||||
XNODE := DBMS_XMLDOM.APPENDCHILD(N => XITEM, NEWCHILD => XQUANTITY);
|
||||
XNODE := DBMS_XMLDOM.APPENDCHILD(N => XGETSHEETITEMSRESPONSE, NEWCHILD => XITEM);
|
||||
/* Âûñòàâèì äàòó âûãðóçêè â òåðìèíàë äëÿ ïîçèöèè âåäîìîñòè èíâåíòàðèçàöèè */
|
||||
P_ELINVOBJECT_BASE_UPDATE(NCOMPANY => REC.NCOMPANY,
|
||||
NRN => REC.NRN,
|
||||
DUNLOAD_DATE => sysdate,
|
||||
DINV_DATE => null,
|
||||
NINVPERSONS => REC.NINVPERSONS,
|
||||
SBARCODE => REC.SBARCODE,
|
||||
NIS_LOADED => REC.NIS_LOADED);
|
||||
end loop;
|
||||
/* Îáîðà÷èâàåì îòâåò â êîíâåðò */
|
||||
CRESPONSE := UTL_CREATERESPONSE(XDOC => XDOC, XCONTENT => XGETSHEETITEMSRESPONSE);
|
||||
@ -849,7 +854,8 @@ create or replace package body UDO_PKG_EXS_INV as
|
||||
NVL(UTL_GEOGRAFY_GET_HIER_ITEM(G.RN, 4),
|
||||
NVL(UTL_GEOGRAFY_GET_HIER_ITEM(G.RN, 3), UTL_GEOGRAFY_GET_HIER_ITEM(G.RN, 2)))) SLOCALITY,
|
||||
UTL_GEOGRAFY_GET_HIER_ITEM(G.RN, 5) SSTREET,
|
||||
T.ADDR_HOUSE SHOUSENUMBER
|
||||
T.ADDR_HOUSE SHOUSENUMBER,
|
||||
T.BARCODE SBARCODE
|
||||
from DICPLACE T,
|
||||
GEOGRAFY G
|
||||
where T.COMPANY = 136018
|
||||
@ -866,7 +872,7 @@ create or replace package body UDO_PKG_EXS_INV as
|
||||
loop
|
||||
/* Ñîáèðàåì èíôîðìàöèþ ïî ìåñòó õðàíåíèÿ â îòâåò */
|
||||
XITEM := UTL_CREATENODE(XDOC => XDOC, STAG => SITEM, SNS => STSD);
|
||||
XCODE := UTL_CREATENODE(XDOC => XDOC, STAG => SCODE, SNS => STSD, SVAL => REC.NRN);
|
||||
XCODE := UTL_CREATENODE(XDOC => XDOC, STAG => SCODE, SNS => STSD, SVAL => REC.SBARCODE);
|
||||
XNAME := UTL_CREATENODE(XDOC => XDOC, STAG => SNAME, SNS => STSD, SVAL => REC.SNAME);
|
||||
XMNEMOCODE := UTL_CREATENODE(XDOC => XDOC, STAG => SMNEMOCODE, SNS => STSD, SVAL => REC.SMNEMOCODE);
|
||||
XLATITUDE := UTL_CREATENODE(XDOC => XDOC, STAG => SLATITUDE, SNS => STSD, SVAL => REC.SLATITUDE);
|
||||
@ -951,17 +957,21 @@ create or replace package body UDO_PKG_EXS_INV as
|
||||
SREQROOM PKG_STD.TSTRING; -- Ïîìåùåíèå ðàñïîëîæåíèÿ ÎÑ èç çàïðîñà (ïàðàìåòð ñîõðàíåíèÿ)
|
||||
SREQRACK PKG_STD.TSTRING; -- Ñòåëëàæ ðàñïîëîæåíèÿ ÎÑ èç çàïðîñà (ïàðàìåòð ñîõðàíåíèÿ)
|
||||
NELINVOBJECT PKG_STD.TREF; -- Ðåã. íîìåð ïîçèöèè âåäîìîñòè èíâåíòàðèçàöèè
|
||||
NDICPLACE PKG_STD.TREF; -- Ðåã. íîìåð ìåñòà õðàíåíèÿ
|
||||
SDICPLACEBARCODE PKG_STD.TSTRING; -- Øòðèõ-êîä ìåñòà õðàíåíèÿ gñîãëàñíî âåäîìîñòè
|
||||
NINVENTORY PKG_STD.TREF; -- Ðåã. íîìåð ÎÑ (êàðòî÷êè "Èíâåíòàðíîé êàðòîòåêè")
|
||||
NCOMPANY PKG_STD.TREF; -- Ðåã. íîìåð îðãàíèçàöèè
|
||||
NPROPERTY PKG_STD.TREF; -- Ðåã. íîìåð ÄÑ ïîçèöèè âåäîìîñòè èíâåíòàðèçàöèè äëÿ õðàíåíèÿ êîììåíòàðèÿ
|
||||
SERR PKG_STD.TSTRING; -- Áóôåð äëÿ îøèáîê
|
||||
NTMP PKG_STD.TREF; -- Áóôåð äëÿ ðåã. íîìåðîâ
|
||||
begin
|
||||
/* Èíèöèàëèçèðóåì îðãàíèçàöèþ */
|
||||
NCOMPANY := 136018;
|
||||
/* Èíèöèàëèçèðóåì ÄÑ äëÿ õðàíåíèÿ ïðèìå÷àíèÿ */
|
||||
FIND_DOCS_PROPS_CODE(NFLAG_SMART => 0, NCOMPANY => NCOMPANY, SCODE => 'COMMENT', NRN => NPROPERTY);
|
||||
/* Ñ÷èòàåì çàïèñü î÷åðåäè */
|
||||
REXSQUEUE := GET_EXSQUEUE_ID(NFLAG_SMART => 0, NRN => NEXSQUEUE);
|
||||
/* Âîçüìåì òåêñò çàïðîñà */
|
||||
CREQ := BLOB2CLOB(LBDATA => REXSQUEUE.MSG);
|
||||
CREQ := BLOB2CLOB(LBDATA => REXSQUEUE.MSG, SCHARSET => 'UTF8');
|
||||
/* Ñîçäàåì èíñòàíñ XML ïàðñåðà */
|
||||
XMLPARCER := DBMS_XMLPARSER.NEWPARSER;
|
||||
/* Ðàçáèðàåì XML èç çàïðîñà */
|
||||
@ -1017,7 +1027,7 @@ create or replace package body UDO_PKG_EXS_INV as
|
||||
/* Ñ÷èòûâàåì "Êîëè÷åñòâî ÎÑ" (ïàðàìåòð ñîõðàíåíèÿ) */
|
||||
NREQQUANTITY := TO_NUMBER(UTL_GETNODEVAL(XROOTNODE => XNODE_ROOT, SPATTERN => SQUANTITY));
|
||||
/* Ñ÷èòûâàåì "Äàòà ïðîâåäåíèÿ èíâåíòàðèçàöèè ÎÑ" (ïàðàìåòð ñîõðàíåíèÿ) */
|
||||
DREQCHECKDATE := TO_DATE(UTL_GETNODEVAL(XROOTNODE => XNODE_ROOT, SPATTERN => SCHECKDATE), 'yyyy-mm-dd');
|
||||
DREQCHECKDATE := TO_DATE(UTL_GETNODEVAL(XROOTNODE => XNODE_ROOT, SPATTERN => SCHECKDATE), 'YYYY-MM-DD"T"HH24:MI:SS');
|
||||
/* Ñ÷èòûâàåì "Êîììåíòàðèé ÌÎË ÎÑ" (ïàðàìåòð ñîõðàíåíèÿ) */
|
||||
SREQCOMMENT := UTL_GETNODEVAL(XROOTNODE => XNODE_ROOT, SPATTERN => SCOMMENT);
|
||||
/* Ñ÷èòûâàåì "Øèðîòà" (ïàðàìåòð ñîõðàíåíèÿ) */
|
||||
@ -1046,16 +1056,16 @@ create or replace package body UDO_PKG_EXS_INV as
|
||||
*/
|
||||
/* Åñëè çàäàí øòðèõ-êîä ìåñòàíõîæäåíèÿ ÎÑ */
|
||||
if (SREQSTORAGECODE is not null) then
|
||||
/* Ïðîâåðÿåì ìåñòîíàõîõæäåíèå ïî øòðèõ-êîäó */
|
||||
/* Ïðîâåðÿåì íàëè÷èå ìåñòîíàõîõæäåíèÿ */
|
||||
begin
|
||||
select T.RN
|
||||
into NDICPLACE
|
||||
select T.BARCODE
|
||||
into SDICPLACEBARCODE
|
||||
from DICPLACE T
|
||||
where T.COMPANY = NCOMPANY
|
||||
and T.BARCODE = SREQSTORAGECODE;
|
||||
exception
|
||||
when NO_DATA_FOUND then
|
||||
SERR := 'Ìåñòîíàõîæäåíèå èíâåíòàðíûõ îáúåêòîâ ñ øòðèõ-êîäîì: ' || SREQSTORAGECODE || ' íå íàéäåíî';
|
||||
SERR := 'Ìåñòîíàõîæäåíèå èíâåíòàðíûõ îáúåêòîâ ñ øòðèõ-êîäîì "' || SREQSTORAGECODE || '" íå íàéäåíî';
|
||||
end;
|
||||
end if;
|
||||
/* Ïðîáóåì íàéòè ïîçèöèþ âåäîìîñòè èíâåíòàðèçàöèè ïî øòðèõ-êîäó (åñëè ïåðåäàí ðåã. íîìåð âåäîìîñòè è ïîêà íåò îøèáîê) */
|
||||
@ -1078,22 +1088,34 @@ create or replace package body UDO_PKG_EXS_INV as
|
||||
and T.COMPANY = NCOMPANY;
|
||||
exception
|
||||
when NO_DATA_FOUND then
|
||||
SERR := 'Èíâåíòàðíàÿ êàðòî÷êà ñ øòðèõ-êîäîì: ' || SREQITEMCODE || ' íå íàéäåíà';
|
||||
SERR := 'Èíâåíòàðíàÿ êàðòî÷êà ñ øòðèõ-êîäîì "' || SREQITEMCODE || '" íå íàéäåíà';
|
||||
end;
|
||||
end;
|
||||
end if;
|
||||
/* Åñëè íåò îøèáîê ïðè ïðîâåðêàõ */
|
||||
if (SERR is null) then
|
||||
/* È ó íàñ åñòü øòðèõêîä ôàêòè÷åñêîãî ìåñòîíàõîæäåíèÿ */
|
||||
if (SDICPLACEBARCODE is not null) then
|
||||
/* Åñëè ïîçèöèÿ âåäîìîñòè èíâåíòàðèçàöèè íàéäåíà */
|
||||
if (NELINVOBJECT is not null) then
|
||||
/* Îáíîâèì å¸ */
|
||||
P_ELINVOBJECT_BASE_UPDATE(NCOMPANY => NCOMPANY,
|
||||
NRN => NELINVOBJECT,
|
||||
DUNLOAD_DATE => null,
|
||||
for C in (select T.* from ELINVOBJECT T where T.RN = NELINVOBJECT)
|
||||
loop
|
||||
P_DOCS_PROPS_VALS_BASE_MODIFY(NDOCUMENT => C.RN,
|
||||
SUNITCODE => 'ElectronicInventoriesObjects',
|
||||
NPROPERTY => NPROPERTY,
|
||||
SSTR_VALUE => SREQCOMMENT,
|
||||
NNUM_VALUE => null,
|
||||
DDATE_VALUE => null,
|
||||
NRN => NTMP);
|
||||
P_ELINVOBJECT_BASE_UPDATE(NCOMPANY => C.COMPANY,
|
||||
NRN => C.RN,
|
||||
DUNLOAD_DATE => C.UNLOAD_DATE,
|
||||
DINV_DATE => DREQCHECKDATE,
|
||||
NINVPERSONS => NREQUSERCODE,
|
||||
SBARCODE => SREQSTORAGECODE,
|
||||
NIS_LOADED => 0);
|
||||
SBARCODE => SDICPLACEBARCODE,
|
||||
NIS_LOADED => C.IS_LOADED);
|
||||
end loop;
|
||||
else
|
||||
/* Èëè äîáàâèì â âåäîìîñòü íàéäåííóþ ÈÊ åñëè íå íàøëè ïîçèöèþ âåäîìîñòè ïî øòðèõ-êîäó */
|
||||
P_ELINVOBJECT_BASE_INSERT(NCOMPANY => NCOMPANY,
|
||||
@ -1104,9 +1126,19 @@ create or replace package body UDO_PKG_EXS_INV as
|
||||
DUNLOAD_DATE => null,
|
||||
DINV_DATE => DREQCHECKDATE,
|
||||
NINVPERSONS => NREQUSERCODE,
|
||||
SBARCODE => SREQSTORAGECODE,
|
||||
SBARCODE => SDICPLACEBARCODE,
|
||||
NIS_LOADED => 1,
|
||||
NRN => NELINVOBJECT);
|
||||
P_DOCS_PROPS_VALS_BASE_MODIFY(NDOCUMENT => NELINVOBJECT,
|
||||
SUNITCODE => 'ElectronicInventoriesObjects',
|
||||
NPROPERTY => NPROPERTY,
|
||||
SSTR_VALUE => SREQCOMMENT,
|
||||
NNUM_VALUE => null,
|
||||
DDATE_VALUE => null,
|
||||
NRN => NTMP);
|
||||
end if;
|
||||
else
|
||||
SERR := 'Íå óäàëîñü îïðåäåëèòü ôàêòè÷åñêîå ìåñòîíàõîæäåíèå';
|
||||
end if;
|
||||
end if;
|
||||
end if;
|
||||
@ -1133,36 +1165,5 @@ create or replace package body UDO_PKG_EXS_INV as
|
||||
PKG_EXS.PRC_RESP_RESULT_SET(NIDENT => NIDENT, SRESULT => PKG_EXS.SPRC_RESP_RESULT_ERR, SMSG => sqlerrm);
|
||||
end SAVESHEETITEM;
|
||||
|
||||
/* Ýëåêòðîííàÿ èíâåíòàðèçàöèÿ - ñîõðàíåíèå ðåçóëüòàòîâ èíâåíòàðèçàöèè (ÄÅÌÎ, óáðàòü!!!!) */
|
||||
procedure SAVESHEETITEM_TMP
|
||||
(
|
||||
NIDENT in number, -- Èäåíòèôèêàòîð ïðîöåññà
|
||||
NEXSQUEUE in number -- Ðåãèñòðàöèîííûé íîìåð îáðàáàòûâàåìîé ïîçèöèè î÷åðåäè îáìåíà
|
||||
)
|
||||
is
|
||||
CRESPONSE clob; -- Áóôåð äëÿ îòâåòà
|
||||
XSAVESHEETITEMRESPONSE DBMS_XMLDOM.DOMNODE; -- Êîðíåâîé ýëåìåíò îòâåòà
|
||||
XNODE DBMS_XMLDOM.DOMNODE; -- Áóôåð äëÿ âåòêè îòâåòà
|
||||
XITEM DBMS_XMLDOM.DOMNODE; -- Ýëåìåíò îòâåòíîãî ñïèñêà
|
||||
XDOC DBMS_XMLDOM.DOMDOCUMENT; -- Äîêóìåíò
|
||||
begin
|
||||
UTL_CREATERESPONSEDOC(XDOC => XDOC);
|
||||
/* Ñîçäà¸ì ïðîñòðàíñòâî èì¸í äëÿ îòâåòà */
|
||||
XSAVESHEETITEMRESPONSE := UTL_CREATENODE(XDOC => XDOC, STAG => SSAVESHEETITEMRESPONSE, SNS => STSD);
|
||||
/* Ôîðìèðóåì ðåçóëüòàò */
|
||||
XITEM := UTL_CREATENODE(XDOC => XDOC, STAG => SRESULT, SNS => STSD, SVAL => 'true');
|
||||
XNODE := DBMS_XMLDOM.APPENDCHILD(N => XSAVESHEETITEMRESPONSE, NEWCHILD => XITEM);
|
||||
/* Îáîðà÷èâàåì îòâåò â êîíâåðò */
|
||||
CRESPONSE := UTL_CREATERESPONSE(XDOC => XDOC, XCONTENT => XSAVESHEETITEMRESPONSE);
|
||||
/* Âîçâðàùàåì îòâåò */
|
||||
PKG_EXS.PRC_RESP_RESULT_SET(NIDENT => NIDENT,
|
||||
SRESULT => PKG_EXS.SPRC_RESP_RESULT_OK,
|
||||
BRESP => CLOB2BLOB(LCDATA => CRESPONSE, SCHARSET => 'UTF8'));
|
||||
exception
|
||||
when others then
|
||||
/* Âåðí¸ì îøèáêó */
|
||||
PKG_EXS.PRC_RESP_RESULT_SET(NIDENT => NIDENT, SRESULT => PKG_EXS.SPRC_RESP_RESULT_ERR, SMSG => sqlerrm);
|
||||
end SAVESHEETITEM_TMP;
|
||||
|
||||
end;
|
||||
/
|
||||
|
Loading…
x
Reference in New Issue
Block a user