882 lines
54 KiB
Plaintext
882 lines
54 KiB
Plaintext
create or replace package UDO_PKG_P8PANELS_RPR_ANL as
|
||
|
||
/* ‘÷èòûâàíèå íàèìåíîâàíèß ïîäðàçäåëåíèß ïî ìíåìîêîäó */
|
||
procedure GET_INS_DEPARTMENT_NAME
|
||
(
|
||
SCODE in varchar2, -- Œíåìîêîä ïîäðàçäåëåíèß
|
||
SNAME out varchar2 -- <20>àèìåíîâàíèå ïîäðàçäåëåíèß
|
||
);
|
||
|
||
/* ƒðàôèê ñîñòîßíèé ðåìîíòíûõ âåäîìîñòåé */
|
||
procedure CHART_STATUSES
|
||
(
|
||
DDATE_FROM in date, -- „àòà ñ
|
||
DDATE_TO in date, -- „àòà ïî
|
||
SINS_DEPARTMENT in varchar2, -- Œíåìîêîä òðàíñïîðòíîãî ó÷àñòêà
|
||
SEQTYPEWRK in varchar2, -- Œíåìîêîä òèïîâîé ðàáîòû
|
||
SEQWRKKIND in varchar2, -- Œíåìîêîä âèäà òèïîâûõ ðàáîò
|
||
NSTATE in number, -- ‘îñòîßíèå
|
||
NTYPESPEND in number, -- ’ðóäîâûå çàòðàòû (null, 0 - âíóòðåííèå, 1 - âíåøíèå)
|
||
COUT out clob -- „àííûå ãðàôèêà
|
||
);
|
||
|
||
/* ƒðàôèê òðóäîâûõ çàâòðàò */
|
||
procedure CHART_SPENDINGS
|
||
(
|
||
DDATE_FROM in date, -- „àòà ñ
|
||
DDATE_TO in date, -- „àòà ïî
|
||
SINS_DEPARTMENT in varchar2, -- Œíåìîêîä òðàíñïîðòíîãî ó÷àñòêà
|
||
SEQTYPEWRK in varchar2, -- Œíåìîêîä òèïîâîé ðàáîòû
|
||
SEQWRKKIND in varchar2, -- Œíåìîêîä âèäà òèïîâûõ ðàáîò
|
||
NSTATE in number, -- ‘îñòîßíèå
|
||
NTYPESPEND in number, -- ’ðóäîâûå çàòðàòû (null, 0 - âíóòðåííèå, 1 - âíåøíèå)
|
||
COUT out clob -- ‘åðèàëèçîâàííûé ãðàôèê
|
||
);
|
||
|
||
/* ’àáëèöà ñòðîê ðåìîíòíûõ âåäîìîñòåé */
|
||
procedure DATA_GRID
|
||
(
|
||
NPAGE_NUMBER in number, -- <20>îìåð ñòðàíèöû (èãíîðèðóåòñß ïðè NPAGE_SIZE=0)
|
||
NPAGE_SIZE in number, -- Šîëè÷åñòâî çàïèñåé íà ñòðàíèöå (0 - âñå)
|
||
CFILTERS in clob, -- ”èëüòðû
|
||
CORDERS in clob, -- ‘îðòèðîâêè
|
||
NINCLUDE_DEF in number, -- <20>ðèçíàê âêëþ÷åíèß îïèñàíèß êîëîíîê òàáëèöû â îòâåò
|
||
COUT out clob -- ‘åðèàëèçîâàííàß òàáëèöà äàííûõ
|
||
);
|
||
|
||
/* <20>àçîâîå ôîðìèðîâàíèå óñëîâèé îòáîðà ðåìîíòíûõ âåäîìîñòåé */
|
||
procedure EQRPSHEETS_BASE_COND;
|
||
|
||
end UDO_PKG_P8PANELS_RPR_ANL;
|
||
/
|
||
create or replace package body UDO_PKG_P8PANELS_RPR_ANL as
|
||
|
||
/* ‘÷èòûâàíèå íàèìåíîâàíèß ïîäðàçäåëåíèß ïî ìíåìîêîäó */
|
||
procedure GET_INS_DEPARTMENT_NAME
|
||
(
|
||
SCODE in varchar2, -- Œíåìîêîä ïîäðàçäåëåíèß
|
||
SNAME out varchar2 -- <20>àèìåíîâàíèå ïîäðàçäåëåíèß
|
||
)
|
||
is
|
||
NCOMPANY PKG_STD.TREF := GET_SESSION_COMPANY(); -- Žðãàíèçàöèß ñåàíñà
|
||
begin
|
||
/* ‘÷èòûâàåì íàèìåíîâàíèå ïîäðàçäåëåíèß */
|
||
begin
|
||
select T.NAME
|
||
into SNAME
|
||
from INS_DEPARTMENT T
|
||
where T.CODE = SCODE
|
||
and T.COMPANY = NCOMPANY;
|
||
exception
|
||
when others then
|
||
SNAME := '<27>å îïðåäåëåíî';
|
||
end;
|
||
end GET_INS_DEPARTMENT_NAME;
|
||
|
||
/* <20>àçðåøåíèå ññûëîê ïàðàìåòðîâ */
|
||
procedure PARAMS_JOINS
|
||
(
|
||
NCOMPANY in number, -- <20>åã. íîìåð îðãàíèçàöèè
|
||
SINS_DEPARTMENT in varchar2, -- Œíåìîêîä òðàíñïîðòíîãî ó÷àñòêà
|
||
SEQTYPEWRK in varchar2, -- Œíåìîêîä òèïîâîé ðàáîòû
|
||
SEQWRKKIND in varchar2, -- Œíåìîêîä âèäà òèïîâûõ ðàáîò
|
||
NDEPTCUSTOMER out number, -- <20>åã. íîìåð ïîäðàçäåëåíèß-çàêàç÷èêà
|
||
NTYPEWRK out number, -- <20>åã. íîìåð òèïîâîé ðàáîòû ñïåöèôèêàöèè
|
||
NEQWRKKIND out number -- <20>åã. íîìåð âèäà òèïîâîé ðàáîòû ñïåöèôèêàöèè
|
||
)
|
||
is
|
||
begin
|
||
/* <20>åã. íîìåð ïîäðàçäåëåíèß-çàêàç÷èêà */
|
||
FIND_SUBDIVS_CODE_EX(NFLAG_SMART => 0,
|
||
NFLAG_OPTION => 1,
|
||
NCOMPANY => NCOMPANY,
|
||
SCODE => SINS_DEPARTMENT,
|
||
NRN => NDEPTCUSTOMER);
|
||
/* <20>åã. íîìåð òèïîâîé ðàáîòû ñïåöèôèêàöèè */
|
||
FIND_EQTYPEWRK_CODE(NFLAG_SMART => 0,
|
||
NFLAG_OPTION => 1,
|
||
NCOMPANY => NCOMPANY,
|
||
SCODE => SEQTYPEWRK,
|
||
NRN => NTYPEWRK);
|
||
/* <20>åã. íîìåð âèäà òèïîâîé ðàáîòû ñïåöèôèêàöèè */
|
||
FIND_EQWRKKIND_CODE(NFLAG_SMART => 0,
|
||
NFLAG_OPTION => 1,
|
||
NCOMPANY => NCOMPANY,
|
||
SCODE => SEQWRKKIND,
|
||
NRN => NEQWRKKIND);
|
||
end PARAMS_JOINS;
|
||
|
||
/* ”îðìèðîâàíèå óñëîâèé äëß îòáîðà çàïèñåé ðåìîíòíûõ âåäîìîñòåé */
|
||
procedure EQRPSHEETS_COND_SET
|
||
(
|
||
NCOMPANY in number, -- <20>åã. íîìåð îðãàíèçàöèè
|
||
DDATE_FROM in date, -- „àòà ñ
|
||
DDATE_TO in date, -- „àòà ïî
|
||
SINS_DEPARTMENT in varchar2, -- Œíåìîêîä òðàíñïîðòíîãî ó÷àñòêà
|
||
SEQTYPEWRK in varchar2, -- Œíåìîêîä òèïîâîé ðàáîòû
|
||
SEQWRKKIND in varchar2, -- Œíåìîêîä âèäà òèïîâûõ ðàáîò
|
||
NSTATE in number, -- ‘îñòîßíèå (null, 0 - íå çàâåðøåííûå, 1 - çàâåðøåííûå)
|
||
NTYPESPEND in number, -- ’ðóäîâûå çàòðàòû (null, 0 - âíóòðåííèå, 1 - âíåøíèå)
|
||
NIDENT out number -- ˆäåíòèôèêàòîð äàííûõ
|
||
)
|
||
is
|
||
begin
|
||
/* ƒåíåðèðóåì èäåíòèôèêàòîð */
|
||
NIDENT := GEN_IDENT();
|
||
/* ”îðìèðîâàíèå óñëîâèé îòáîðà - <20>ðîëîã */
|
||
PKG_COND_BROKER.PROLOGUE(IMODE => PKG_COND_BROKER.MODE_SMART_, NIDENT => NIDENT);
|
||
/* ”îðìèðîâàíèå óñëîâèé îòáîðà - “ñòàíîâêà ïðîöåäóðû ñåðâåðíîãî îòáîðà */
|
||
PKG_COND_BROKER.SET_PROCEDURE(SPROCEDURE_NAME => 'UDO_PKG_P8PANELS_RPR_ANL.EQRPSHEETS_BASE_COND');
|
||
/* ”îðìèðîâàíèå óñëîâèé îòáîðà - “ñòàíîâêà ðàçäåëà */
|
||
PKG_COND_BROKER.SET_UNIT(SUNITCODE => 'EquipRepairSheets');
|
||
/* ”îðìèðîâàíèå óñëîâèé îòáîðà - “ñòàíîâêà îðãàíèçàöèè */
|
||
PKG_COND_BROKER.SET_COMPANY(NCOMPANY => NCOMPANY);
|
||
/* „àòà íà÷àëà ôàêòè÷åñêàß ñ */
|
||
PKG_COND_BROKER.SET_CONDITION_DATE('EDREPAIRFACTBEGINFrom', DDATE_FROM);
|
||
/* „àòà íà÷àëà ôàêòè÷åñêàß ïî */
|
||
PKG_COND_BROKER.SET_CONDITION_DATE('EDREPAIRFACTBEGINTo', DDATE_TO);
|
||
/* <20>îäðàçäåëåíèå-çàêàç÷èê */
|
||
PKG_COND_BROKER.SET_CONDITION_STR('CUSTOMERDEPTEDIT', SINS_DEPARTMENT, 0);
|
||
/* ’èïîâàß ðàáîòà */
|
||
PKG_COND_BROKER.SET_CONDITION_STR('EQTYPEWRKCOMP', SEQTYPEWRK, 0);
|
||
/* ‚èä òèïîâîé ðàáîòû */
|
||
PKG_COND_BROKER.SET_CONDITION_STR('EQWRKKINDCOMP', SEQWRKKIND, 0);
|
||
/* ‘îñòîßíèå */
|
||
PKG_COND_BROKER.SET_CONDITION_NUM('STATETYPE', NSTATE);
|
||
/* ’ðóäîâûå çàòðàòû */
|
||
PKG_COND_BROKER.SET_CONDITION_NUM('TYPESPEND', NTYPESPEND);
|
||
|
||
/* ”îðìèðîâàíèå óñëîâèé îòáîðà - <20>ïèëîã */
|
||
PKG_COND_BROKER.EPILOGUE();
|
||
end EQRPSHEETS_COND_SET;
|
||
|
||
/* ƒðàôèê ñîñòîßíèé ðåìîíòíûõ âåäîìîñòåé */
|
||
procedure CHART_STATUSES
|
||
(
|
||
DDATE_FROM in date, -- „àòà ñ
|
||
DDATE_TO in date, -- „àòà ïî
|
||
SINS_DEPARTMENT in varchar2, -- Œíåìîêîä òðàíñïîðòíîãî ó÷àñòêà
|
||
SEQTYPEWRK in varchar2, -- Œíåìîêîä òèïîâîé ðàáîòû
|
||
SEQWRKKIND in varchar2, -- Œíåìîêîä âèäà òèïîâûõ ðàáîò
|
||
NSTATE in number, -- ‘îñòîßíèå (null, 0 - íå çàâåðøåííûå, 1 - çàâåðøåííûå)
|
||
NTYPESPEND in number, -- ’ðóäîâûå çàòðàòû (null, 0 - âíóòðåííèå, 1 - âíåøíèå)
|
||
COUT out clob -- ‘åðèàëèçîâàííûé ãðàôèê
|
||
)
|
||
is
|
||
NCOMPANY PKG_STD.TREF := GET_SESSION_COMPANY(); -- Žðãàíèçàöèß ñåàíñà
|
||
RCH PKG_P8PANELS_VISUAL.TCHART; -- ƒðàôèê
|
||
RCH_DS PKG_P8PANELS_VISUAL.TCHART_DATASET; -- <20>àáîð äàííûõ
|
||
RATTR_VALS PKG_P8PANELS_VISUAL.TCHART_DATASET_ITEM_ATTR_VALS; -- €òðèáóòû ýëåìåíòà íàáîðà äàííûõ
|
||
NCOMPLETED PKG_STD.TNUMBER; -- Šîëè÷åñòâî çàâåðøåííûõ
|
||
NUNCOMPLETED PKG_STD.TNUMBER; -- Šîëè÷åñòâî íåçàâåðøåííûõ
|
||
NIDENT PKG_STD.TREF; -- ˆäåíòèôèêàòîð îòîáðàííûõ çàïèñåé
|
||
NCOMPLETED_SUM EQRPSHEETS.COASTFACT%type; -- ‘óììà ïî çàâåðøåííûì
|
||
NUNCOMPLETED_SUM EQRPSHEETS.COASTFACT%type; -- ‘óììà ïî íåçàâåðøåííûì
|
||
begin
|
||
/* ‘ôîðìèðóåì çàãîëîâîê ãðàôèêà */
|
||
RCH := PKG_P8PANELS_VISUAL.TCHART_MAKE(STYPE => PKG_P8PANELS_VISUAL.SCHART_TYPE_PIE,
|
||
STITLE => '<27>åìîíòû',
|
||
SLGND_POS => PKG_P8PANELS_VISUAL.SCHART_LGND_POS_RIGHT);
|
||
/* ‘ôîðìèðóåì íàáîð äàííûõ */
|
||
RCH_DS := PKG_P8PANELS_VISUAL.TCHART_DATASET_MAKE(SCAPTION => '<27>åìîíòû');
|
||
/* Žòáåðåì ðåìîíòíûå âåäîìîñòè */
|
||
EQRPSHEETS_COND_SET(NCOMPANY => NCOMPANY,
|
||
DDATE_FROM => TRUNC(DDATE_FROM),
|
||
DDATE_TO => TRUNC(DDATE_TO),
|
||
SINS_DEPARTMENT => SINS_DEPARTMENT,
|
||
SEQTYPEWRK => SEQTYPEWRK,
|
||
SEQWRKKIND => SEQWRKKIND,
|
||
NSTATE => NSTATE,
|
||
NTYPESPEND => NTYPESPEND,
|
||
NIDENT => NIDENT);
|
||
/* ‘÷èòûâàåì êîëè÷åñòâà ïî ñòàòóñàì */
|
||
begin
|
||
select COALESCE(sum(case
|
||
when T.STATE = 3 then
|
||
1
|
||
else
|
||
0
|
||
end), 0) COMPLETED,
|
||
COALESCE(sum(case
|
||
when T.STATE = 3 then
|
||
T.COASTFACT
|
||
else
|
||
0
|
||
end), 0) COMPLETED_SUM,
|
||
COALESCE(sum(case
|
||
when T.STATE in (0, 2) then
|
||
1
|
||
else
|
||
0
|
||
end), 0) UNCOMPLETED,
|
||
COALESCE(sum(case
|
||
when T.STATE in (0, 2) then
|
||
T.COASTFACT
|
||
else
|
||
0
|
||
end), 0) UNCOMPLETED_SUM
|
||
into NCOMPLETED,
|
||
NCOMPLETED_SUM,
|
||
NUNCOMPLETED,
|
||
NUNCOMPLETED_SUM
|
||
from EQRPSHEETS T
|
||
where T.RN in (select ID from COND_BROKER_IDSMART where IDENT = NIDENT)
|
||
and T.STATE in (0,2,3);
|
||
exception
|
||
when NO_DATA_FOUND then
|
||
NCOMPLETED := 0;
|
||
NUNCOMPLETED := 0;
|
||
when others then
|
||
P_EXCEPTION(0, 'Žøèáêà ñ÷èòûâàíèß ãðàôèêà ñòàòóñîâ.');
|
||
end;
|
||
/* „îáàâèì ìåòêó äëß çàâåðøåííûõ */
|
||
PKG_P8PANELS_VISUAL.TCHART_ADD_LABEL(RCHART => RCH, SLABEL => '‡àâåðøåííûå (' || TRIM(TO_CHAR(NCOMPLETED_SUM, '999G999G999G999G999G990D99', 'nls_numeric_characters=''. ''')) || ')');
|
||
/* ‘ôîðìèðóåì äîïîëíèòåëüíûå àòðèáóòû äëß êëèåíòñêîãî ïðèëîæåíèß */
|
||
PKG_P8PANELS_VISUAL.TCHART_DATASET_ITM_ATTR_VL_ADD(RATTR_VALS => RATTR_VALS,
|
||
SNAME => 'NSTATE',
|
||
SVALUE => '1',
|
||
BCLEAR => true);
|
||
/* „îáàâèì çàâåðøåííûå â íàáîð äàííûõ */
|
||
PKG_P8PANELS_VISUAL.TCHART_DATASET_ADD_ITEM(RDATASET => RCH_DS, NVALUE => NCOMPLETED, RATTR_VALS => RATTR_VALS);
|
||
/* „îáàâèì ìåòêó äëß íåçàâåðøåííûõ */
|
||
PKG_P8PANELS_VISUAL.TCHART_ADD_LABEL(RCHART => RCH, SLABEL => '<27>å çàâåðøåííûå (' || TRIM(TO_CHAR(NUNCOMPLETED_SUM, '999G999G999G999G999G990D99', 'nls_numeric_characters=''. ''')) || ')');
|
||
/* ‘ôîðìèðóåì äîïîëíèòåëüíûå àòðèáóòû äëß êëèåíòñêîãî ïðèëîæåíèß */
|
||
PKG_P8PANELS_VISUAL.TCHART_DATASET_ITM_ATTR_VL_ADD(RATTR_VALS => RATTR_VALS,
|
||
SNAME => 'NSTATE',
|
||
SVALUE => '0',
|
||
BCLEAR => true);
|
||
/* „îáàâèì çàâåðøåííûå â íàáîð äàííûõ */
|
||
PKG_P8PANELS_VISUAL.TCHART_DATASET_ADD_ITEM(RDATASET => RCH_DS, NVALUE => NUNCOMPLETED, RATTR_VALS => RATTR_VALS);
|
||
/* „îáàâèì íàáîð äàííûõ â ãðàôèê */
|
||
PKG_P8PANELS_VISUAL.TCHART_ADD_DATASET(RCHART => RCH, RDATASET => RCH_DS);
|
||
/* ‘åðèàëèçóåì îïèñàíèå */
|
||
COUT := PKG_P8PANELS_VISUAL.TCHART_TO_XML(RCHART => RCH, NINCLUDE_DEF => 1);
|
||
end CHART_STATUSES;
|
||
|
||
/* ƒðàôèê òðóäîâûõ çàâòðàò */
|
||
procedure CHART_SPENDINGS
|
||
(
|
||
DDATE_FROM in date, -- „àòà ñ
|
||
DDATE_TO in date, -- „àòà ïî
|
||
SINS_DEPARTMENT in varchar2, -- Œíåìîêîä òðàíñïîðòíîãî ó÷àñòêà
|
||
SEQTYPEWRK in varchar2, -- Œíåìîêîä òèïîâîé ðàáîòû
|
||
SEQWRKKIND in varchar2, -- Œíåìîêîä âèäà òèïîâûõ ðàáîò
|
||
NSTATE in number, -- ‘îñòîßíèå (null, 0 - íå çàâåðøåííûå, 1 - çàâåðøåííûå)
|
||
NTYPESPEND in number, -- ’ðóäîâûå çàòðàòû (null, 0 - âíóòðåííèå, 1 - âíåøíèå)
|
||
COUT out clob -- ‘åðèàëèçîâàííûé ãðàôèê
|
||
)
|
||
is
|
||
NCOMPANY PKG_STD.TREF := GET_SESSION_COMPANY(); -- Žðãàíèçàöèß ñåàíñà
|
||
RCH PKG_P8PANELS_VISUAL.TCHART; -- ƒðàôèê
|
||
RCH_DS_MTR PKG_P8PANELS_VISUAL.TCHART_DATASET; -- <20>àáîð äàííûõ çàòðàò íà Œ’<C592>
|
||
RCH_DS_LABOR PKG_P8PANELS_VISUAL.TCHART_DATASET; -- <20>àáîð äàííûõ òðóäîâûõ çàòðàò
|
||
RATTR_VALS PKG_P8PANELS_VISUAL.TCHART_DATASET_ITEM_ATTR_VALS; -- €òðèáóòû ýëåìåíòà íàáîðà äàííûõ
|
||
NINTERNAL_MTR PKG_STD.TLNUMBER; -- Šîëè÷åñòâî çàòðàò íà Œ’<C592> (âíóòðåííèå)
|
||
NINTERNAL_LABOR PKG_STD.TLNUMBER; -- Šîëè÷åñòâî òðóäîâûõ çàòðàò (âíóòðåííèå)
|
||
NEXTERNAL_MTR PKG_STD.TLNUMBER; -- Šîëè÷åñòâî çàòðàò íà Œ’<C592> (âíåøíèå)
|
||
NEXTERNAL_LABOR PKG_STD.TLNUMBER; -- Šîëè÷åñòâî òðóäîâûõ çàòðàò (âíåøíèå)
|
||
NIDENT PKG_STD.TREF; -- ˆäåíòèôèêàòîð îòîáðàííûõ çàïèñåé
|
||
|
||
/* ”îðìèðîâàíèå ýëåìåíòà ãðàôèêà */
|
||
procedure MAKE_CHART_ELEMENT
|
||
(
|
||
RCH in out nocopy PKG_P8PANELS_VISUAL.TCHART, -- ƒðàôèê
|
||
RCH_DS_MTR in out nocopy PKG_P8PANELS_VISUAL.TCHART_DATASET, -- <20>àáîð äàííûõ çàòðàò íà Œ’<C592>
|
||
RCH_DS_LABOR in out nocopy PKG_P8PANELS_VISUAL.TCHART_DATASET, -- <20>àáîð äàííûõ òðóäîâûõ çàòðàò
|
||
SELEMENT_NAME in varchar2, -- <20>àèìåíîâàíèå ýëåìåíòà
|
||
NTYPE in number, -- ’èï ýëåìåíòà
|
||
NMTR_VALUE in number, -- ‡íà÷åíèå çàòðàò íà Œ’<C592>
|
||
NLABOR_VALUE in number -- ‡íà÷åíèå òðóäîâûõ çàòðàò
|
||
)
|
||
is
|
||
RATTR_VALS PKG_P8PANELS_VISUAL.TCHART_DATASET_ITEM_ATTR_VALS; -- €òðèáóòû ýëåìåíòà íàáîðà äàííûõ
|
||
begin
|
||
/* „îáàâèì ìåòêó */
|
||
PKG_P8PANELS_VISUAL.TCHART_ADD_LABEL(RCHART => RCH, SLABEL => SELEMENT_NAME);
|
||
/* ‘ôîðìèðóåì äîï. àòðèáóò òèïà */
|
||
PKG_P8PANELS_VISUAL.TCHART_DATASET_ITM_ATTR_VL_ADD(RATTR_VALS => RATTR_VALS,
|
||
SNAME => 'NTYPE',
|
||
SVALUE => TO_CHAR(NTYPE),
|
||
BCLEAR => true);
|
||
/* „îï. àòðèáóò ñõëîïûâàíèß */
|
||
PKG_P8PANELS_VISUAL.TCHART_DATASET_ITM_ATTR_VL_ADD(RATTR_VALS => RATTR_VALS,
|
||
SNAME => 'stack',
|
||
SVALUE => SELEMENT_NAME);
|
||
/* „îáàâèì çàâåðøåííûå â íàáîð äàííûõ */
|
||
PKG_P8PANELS_VISUAL.TCHART_DATASET_ADD_ITEM(RDATASET => RCH_DS_MTR, NVALUE => NMTR_VALUE, RATTR_VALS => RATTR_VALS);
|
||
/* ‘ôîðìèðóåì äîï. àòðèáóò òèïà */
|
||
PKG_P8PANELS_VISUAL.TCHART_DATASET_ITM_ATTR_VL_ADD(RATTR_VALS => RATTR_VALS,
|
||
SNAME => 'NTYPE',
|
||
SVALUE => '0',
|
||
BCLEAR => true);
|
||
/* „îïîëíèòåëüíûé àòðèáóò ñõëîïûâàíèß */
|
||
PKG_P8PANELS_VISUAL.TCHART_DATASET_ITM_ATTR_VL_ADD(RATTR_VALS => RATTR_VALS,
|
||
SNAME => 'stack',
|
||
SVALUE => SELEMENT_NAME);
|
||
/* „îáàâèì çàâåðøåííûå â íàáîð äàííûõ */
|
||
PKG_P8PANELS_VISUAL.TCHART_DATASET_ADD_ITEM(RDATASET => RCH_DS_LABOR, NVALUE => NLABOR_VALUE, RATTR_VALS => RATTR_VALS);
|
||
end MAKE_CHART_ELEMENT;
|
||
begin
|
||
/* ‘ôîðìèðóåì çàãîëîâîê ãðàôèêà */
|
||
RCH := PKG_P8PANELS_VISUAL.TCHART_MAKE(STYPE => PKG_P8PANELS_VISUAL.SCHART_TYPE_BAR,
|
||
STITLE => '‡àòðàòû íà ðåìîíòû',
|
||
SLGND_POS => PKG_P8PANELS_VISUAL.SCHART_LGND_POS_RIGHT);
|
||
/* ‘ôîðìèðóåì íàáîð äàííûõ çàòðàò íà Œ’<C592> */
|
||
RCH_DS_MTR := PKG_P8PANELS_VISUAL.TCHART_DATASET_MAKE(SCAPTION => '‡àòðàòû íà Œ’<C592>');
|
||
/* ‘ôîðìèðóåì íàáîð äàííûõ òðóäîâûõ çàòðàò */
|
||
RCH_DS_LABOR := PKG_P8PANELS_VISUAL.TCHART_DATASET_MAKE(SCAPTION => '’ðóäîâûå çàòðàòû');
|
||
/* Žòáåðåì ðåìîíòíûå âåäîìîñòè */
|
||
EQRPSHEETS_COND_SET(NCOMPANY => NCOMPANY,
|
||
DDATE_FROM => TRUNC(DDATE_FROM),
|
||
DDATE_TO => TRUNC(DDATE_TO),
|
||
SINS_DEPARTMENT => SINS_DEPARTMENT,
|
||
SEQTYPEWRK => SEQTYPEWRK,
|
||
SEQWRKKIND => SEQWRKKIND,
|
||
NSTATE => NSTATE,
|
||
NTYPESPEND => NTYPESPEND,
|
||
NIDENT => NIDENT);
|
||
/* ‘÷èòûâàåì êîëè÷åñòâà ïî âíóòðåííèì/âíåøíèì */
|
||
begin
|
||
select /*COALESCE(sum(case when T.DEPTPERF is not null then 1 else 0 end), 0) INTERNAL_MTR,
|
||
COALESCE(sum(case when T.DEPTPERF is not null then 2 else 0 end), 0) INTERNAL_LABOR,
|
||
COALESCE(sum(case when T.PERFORM_AGN is not null then 1 else 0 end), 0) EXTERNAL_MTR,
|
||
COALESCE(sum(case when T.PERFORM_AGN is not null then 2 else 0 end), 0) EXTERNAL_LABOR*/
|
||
/* „ëß –…Œ<E280A6>Ž‘ */
|
||
COALESCE(sum(case when T.DEPTPERF is not null then UDO_F_EQRP_SHMRC_SHOVH_SUM(T.COMPANY, T.RN) else 0 end), 0) INTERNAL_MTR,
|
||
COALESCE(sum(case when T.DEPTPERF is not null then UDO_F_ERS_EQRPSHWRK_SUM(T.COMPANY, T.RN) else 0 end), 0) INTERNAL_LABOR,
|
||
COALESCE(sum(case when T.PERFORM_AGN is not null then UDO_F_EQRP_SHMRC_SHOVH_SUM(T.COMPANY, T.RN) else 0 end), 0) EXTERNAL_MTR,
|
||
COALESCE(sum(case when T.PERFORM_AGN is not null then UDO_F_ERS_EQRPSHWRK_SUM(T.COMPANY, T.RN) else 0 end), 0) EXTERNAL_LABOR
|
||
into NINTERNAL_MTR,
|
||
NINTERNAL_LABOR,
|
||
NEXTERNAL_MTR,
|
||
NEXTERNAL_LABOR
|
||
from EQRPSHEETS T
|
||
where T.RN in (select ID from COND_BROKER_IDSMART where IDENT = NIDENT)
|
||
and T.STATE in (0,2,3);
|
||
exception
|
||
when NO_DATA_FOUND then
|
||
NINTERNAL_MTR := 0;
|
||
NINTERNAL_LABOR := 0;
|
||
NEXTERNAL_MTR := 0;
|
||
NEXTERNAL_LABOR := 0;
|
||
when others then
|
||
P_EXCEPTION(0, 'Žøèáêà ñ÷èòûâàíèß ãðàôèêà òðóäîâûõ çàòðàò.');
|
||
end;
|
||
/* ”îðìèðîâàíèå âíóòðåííèõ */
|
||
MAKE_CHART_ELEMENT(RCH => RCH,
|
||
RCH_DS_MTR => RCH_DS_MTR,
|
||
RCH_DS_LABOR => RCH_DS_LABOR,
|
||
SELEMENT_NAME => '‚íóòðåííèå',
|
||
NTYPE => 0,
|
||
NMTR_VALUE => NINTERNAL_MTR,
|
||
NLABOR_VALUE => NINTERNAL_LABOR);
|
||
/* ”îðìèðîâàíèå âíåøíèõ */
|
||
MAKE_CHART_ELEMENT(RCH => RCH,
|
||
RCH_DS_MTR => RCH_DS_MTR,
|
||
RCH_DS_LABOR => RCH_DS_LABOR,
|
||
SELEMENT_NAME => '‚íåøíèå',
|
||
NTYPE => 1,
|
||
NMTR_VALUE => NEXTERNAL_MTR,
|
||
NLABOR_VALUE => NEXTERNAL_LABOR);
|
||
/* „îáàâèì íàáîð äàííûõ â ãðàôèê */
|
||
PKG_P8PANELS_VISUAL.TCHART_ADD_DATASET(RCHART => RCH, RDATASET => RCH_DS_MTR);
|
||
/* „îáàâèì íàáîð äàííûõ â ãðàôèê */
|
||
PKG_P8PANELS_VISUAL.TCHART_ADD_DATASET(RCHART => RCH, RDATASET => RCH_DS_LABOR);
|
||
/* ‘åðèàëèçóåì îïèñàíèå */
|
||
COUT := PKG_P8PANELS_VISUAL.TCHART_TO_XML(RCHART => RCH, NINCLUDE_DEF => 1);
|
||
end CHART_SPENDINGS;
|
||
|
||
/* ’àáëèöà ñòðîê ðåìîíòíûõ âåäîìîñòåé */
|
||
procedure DATA_GRID
|
||
(
|
||
NPAGE_NUMBER in number, -- <20>îìåð ñòðàíèöû (èãíîðèðóåòñß ïðè NPAGE_SIZE=0)
|
||
NPAGE_SIZE in number, -- Šîëè÷åñòâî çàïèñåé íà ñòðàíèöå (0 - âñå)
|
||
CFILTERS in clob, -- ”èëüòðû
|
||
CORDERS in clob, -- ‘îðòèðîâêè
|
||
NINCLUDE_DEF in number, -- <20>ðèçíàê âêëþ÷åíèß îïèñàíèß êîëîíîê òàáëèöû â îòâåò
|
||
COUT out clob -- ‘åðèàëèçîâàííàß òàáëèöà äàííûõ
|
||
)
|
||
is
|
||
NCOMPANY PKG_STD.TREF := GET_SESSION_COMPANY(); -- Žðãàíèçàöèß ñåàíñà
|
||
NIDENT PKG_STD.TREF := GEN_IDENT(); -- ˆäåíòèôèêàòîð îòáîðà
|
||
RF PKG_P8PANELS_VISUAL.TDG_FILTERS; -- ”èëüòðû
|
||
RO PKG_P8PANELS_VISUAL.TDG_ORDERS; -- ‘îðòèðîâêè
|
||
RDG PKG_P8PANELS_VISUAL.TDG; -- Žïèñàíèå òàáëèöû
|
||
RDG_ROW PKG_P8PANELS_VISUAL.TDG_ROW; -- ‘òðîêà òàáëèöû
|
||
NROW_FROM PKG_STD.TREF; -- <20>îìåð ñòðîêè ñ
|
||
NROW_TO PKG_STD.TREF; -- <20>îìåð ñòðîêè ïî
|
||
CSQL clob; -- <20>óôåð äëß çàïðîñà
|
||
ICURSOR integer; -- Šóðñîð äëß èñïîëíåíèß çàïðîñà
|
||
begin
|
||
/* —èòàåì ôèëüòðû */
|
||
RF := PKG_P8PANELS_VISUAL.TDG_FILTERS_FROM_XML(CFILTERS => CFILTERS);
|
||
/* —èòåì ñîðòèðîâêè */
|
||
RO := PKG_P8PANELS_VISUAL.TDG_ORDERS_FROM_XML(CORDERS => CORDERS);
|
||
/* <20>ðåîáðàçóåì íîìåð è ðàçìåð ñòðàíèöû â íîìåð ñòðîê ñ è ïî */
|
||
PKG_P8PANELS_VISUAL.UTL_ROWS_LIMITS_CALC(NPAGE_NUMBER => NPAGE_NUMBER,
|
||
NPAGE_SIZE => NPAGE_SIZE,
|
||
NROW_FROM => NROW_FROM,
|
||
NROW_TO => NROW_TO);
|
||
/* ˆíèöèàëèçèðóåì òàáëèöó äàííûõ */
|
||
RDG := PKG_P8PANELS_VISUAL.TDG_MAKE(BFIXED_HEADER => true);
|
||
/* Žïèñûâàåì êîëîíêè òàáëèöû äàííûõ */
|
||
PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
|
||
SNAME => 'NRN',
|
||
SCAPTION => '<27>åã. íîìåð',
|
||
SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB,
|
||
BVISIBLE => false);
|
||
/* Žòîáðàæàåìûå êîëîíêè òàáëèöû */
|
||
PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
|
||
SNAME => 'SDOCTYPES',
|
||
SCAPTION => '’èï äîêóìåíòà',
|
||
SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_STR,
|
||
SCOND_FROM => 'EDDOCTYPE',
|
||
BORDER => true,
|
||
BFILTER => true);
|
||
PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
|
||
SNAME => 'SPREF',
|
||
SCAPTION => '<27>ðåôèêñ äîêóìåíòà',
|
||
SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_STR,
|
||
SCOND_FROM => 'EDPREFFrom',
|
||
BORDER => true,
|
||
BFILTER => true);
|
||
PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
|
||
SNAME => 'SNUMB',
|
||
SCAPTION => '<27>îìåð äîêóìåíòà',
|
||
SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_STR,
|
||
SCOND_FROM => 'EDNUMBFrom',
|
||
BORDER => true,
|
||
BFILTER => true);
|
||
PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
|
||
SNAME => 'DDOCDATE',
|
||
SCAPTION => '„àòà äîêóìåíòà',
|
||
SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_DATE,
|
||
SCOND_FROM => 'EDDATEFrom',
|
||
SCOND_TO => 'EDDATETo',
|
||
BORDER => true,
|
||
BFILTER => true);
|
||
PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
|
||
SNAME => 'NSTATE',
|
||
SCAPTION => '‘îñòîßíèå',
|
||
SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB,
|
||
BORDER => true);
|
||
PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
|
||
SNAME => 'DDATEFACT_BEG',
|
||
SCAPTION => '„àòà è âðåìß ôàêòè÷åñêîãî íà÷àëà',
|
||
SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_DATE,
|
||
BORDER => true);
|
||
PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
|
||
SNAME => 'DDATEFACT_END',
|
||
SCAPTION => '„àòà è âðåìß ôàêòè÷åñêîãî îêîí÷àíèß',
|
||
SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_DATE,
|
||
BORDER => true);
|
||
PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
|
||
SNAME => 'SDEPTCUSTOMER_CODE',
|
||
SCAPTION => '<27>îäðàçäåëåíèå çàêàç÷èê',
|
||
SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_STR,
|
||
BORDER => true);
|
||
PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
|
||
SNAME => 'SDEPTCUSTOMER_NAME',
|
||
SCAPTION => '<27>àèìåíîâàíèå ïîäðàçäåëåíèß çàêàç÷èêà',
|
||
SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_STR,
|
||
BORDER => true);
|
||
PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
|
||
SNAME => 'SDEPTPERF_CODE',
|
||
SCAPTION => '<27>îäðàçäåëåíèå èñïîëíèòåëü',
|
||
SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_STR,
|
||
BORDER => true);
|
||
PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
|
||
SNAME => 'SDEPTPERF_NAME',
|
||
SCAPTION => '<27>àèìåíîâàíèå ïîäðàçäåëåíèß èñïîëíèòåëß',
|
||
SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_STR,
|
||
BORDER => true);
|
||
PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
|
||
SNAME => 'SPERFORM_AGN_CODE',
|
||
SCAPTION => '‚íåøíèé èñïîëíèòåëü',
|
||
SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_STR,
|
||
BORDER => true);
|
||
PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
|
||
SNAME => 'SPERFORM_AGN_NAME',
|
||
SCAPTION => '<27>àèìåíîâàíèå âíåøíåãî èñïîëíèòåëß',
|
||
SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_STR,
|
||
BORDER => true);
|
||
PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
|
||
SNAME => 'NLABORIOUSNESS_PLAN',
|
||
SCAPTION => '’ðóäîåìêîñòü, ÷àñ (ïëàí)',
|
||
SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB,
|
||
BORDER => true);
|
||
PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
|
||
SNAME => 'NLABORIOUSNESS_FACT',
|
||
SCAPTION => '’ðóäîåìêîñòü, ÷àñ (ôàêò)',
|
||
SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB,
|
||
BORDER => true);
|
||
PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
|
||
SNAME => 'NNORMH_COST',
|
||
SCAPTION => '#‘òîèìîñòü í/÷',
|
||
SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB,
|
||
BORDER => true);
|
||
PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
|
||
SNAME => 'NWORK_COST',
|
||
SCAPTION => '#‘òîèìîñòü ðàáîò',
|
||
SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB,
|
||
BORDER => true);
|
||
PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
|
||
SNAME => 'NMTR_COST',
|
||
SCAPTION => '#‘òîèìîñòü ‡/—',
|
||
SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB,
|
||
BORDER => true);
|
||
PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
|
||
SNAME => 'NCOASTFACT',
|
||
SCAPTION => '‘òîèìîñòü ïî ôàêòó',
|
||
SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB,
|
||
BORDER => true);
|
||
/* ‘êðûòûå êîëîíêè òàáëèöû (äëß äîï. ôèëüòðîâ) */
|
||
PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
|
||
SNAME => 'DDATEBEGIN_FILTER',
|
||
SCAPTION => '„àòà è âðåìß ôàêòè÷åñêîãî îêîí÷àíèß (ôèëüòð)',
|
||
SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_DATE,
|
||
SCOND_FROM => 'EDREPAIRFACTBEGINFrom',
|
||
SCOND_TO => 'EDREPAIRFACTBEGINTo',
|
||
BFILTER => true,
|
||
BVISIBLE => false);
|
||
PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
|
||
SNAME => 'SCUSTOMERDEPT_FILTER',
|
||
SCAPTION => '<27>îäðàçäåëåíèå çàêàç÷èê (ôèëüòð)',
|
||
SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_STR,
|
||
SCOND_FROM => 'CUSTOMERDEPTEDIT',
|
||
BFILTER => true,
|
||
BVISIBLE => false);
|
||
PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
|
||
SNAME => 'SWORKTYPE_FILTER',
|
||
SCAPTION => '’èïîâàß ðàáîòà (ôèëüòð)',
|
||
SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_STR,
|
||
SCOND_FROM => 'EQTYPEWRKCOMP',
|
||
BFILTER => true,
|
||
BVISIBLE => false);
|
||
PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
|
||
SNAME => 'SWORKKIND_FILTER',
|
||
SCAPTION => '‚èä òèïîâûõ ðàáîò (ôèëüòð)',
|
||
SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_STR,
|
||
SCOND_FROM => 'EQWRKKINDCOMP',
|
||
BFILTER => true,
|
||
BVISIBLE => false);
|
||
PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
|
||
SNAME => 'NSTATE_FILTER',
|
||
SCAPTION => '‘îñòîßíèå (ôèëüòð)',
|
||
SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB,
|
||
SCOND_FROM => 'STATETYPE',
|
||
BFILTER => true,
|
||
BVISIBLE => false);
|
||
PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
|
||
SNAME => 'NTYPESPEND_FILTER',
|
||
SCAPTION => '’ðóäîâûå çàòðàòû (ôèëüòð)',
|
||
SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB,
|
||
SCOND_FROM => 'TYPESPEND',
|
||
BFILTER => true,
|
||
BVISIBLE => false);
|
||
begin
|
||
/* „îáàâëßåì ïîäñêàçêó ñîâìåñòèìîñòè */
|
||
CSQL := PKG_SQL_BUILD.COMPATIBLE(SSQL => CSQL);
|
||
/* ”îðìèðóåì çàïðîñ */
|
||
PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => 'select *');
|
||
PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' from (select D.*,');
|
||
PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => PKG_SQL_BUILD.SQLROWNUM() || ' NROW');
|
||
PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' from (select A.RN as NRN,');
|
||
PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' B.DOCCODE as SDOCTYPES,');
|
||
PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' TRIM(A.PREF) as SPREF,');
|
||
PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' TRIM(A.NUMB) as SNUMB,');
|
||
PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' A.DOCDATE as DDOCDATE,');
|
||
PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' A.STATE as NSTATE,');
|
||
PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' A.DATEFACT_BEG as DDATEFACT_BEG,');
|
||
PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' A.DATEFACT_END as DDATEFACT_END,');
|
||
PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' DP.CODE as SDEPTCUSTOMER_CODE,');
|
||
PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' DP.NAME as SDEPTCUSTOMER_NAME,');
|
||
PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' E.CODE as SDEPTPERF_CODE,');
|
||
PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' E.NAME as SDEPTPERF_NAME,');
|
||
PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' C.AGNABBR as SPERFORM_AGN_CODE,');
|
||
PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' C.AGNNAME as SPERFORM_AGN_NAME,');
|
||
PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' (select NVL(sum(ES.WORKTIMEPLAN * DECODE(ES.TIME_MEAS,');
|
||
PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' ' || PKG_SQL_BUILD.WRAP_NUM(1) || ',');
|
||
PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' ' || PKG_SQL_BUILD.WRAP_NUM(24) || ',');
|
||
PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' ' || PKG_SQL_BUILD.WRAP_NUM(1) || ') * ES.PERFORM_QUANT),');
|
||
PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' ' || PKG_SQL_BUILD.WRAP_NUM(0) || ')');
|
||
PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' from EQRPSHWRK W,');
|
||
PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' EQRPSHWRC ES');
|
||
PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' where ES.PRN = W.RN');
|
||
PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' and W.PRN = A.RN) as NLABORIOUSNESS_PLAN,');
|
||
PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' (select NVL(sum(ES.WORKTIMEFACT * DECODE(ES.TIME_MEAS,');
|
||
PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' ' || PKG_SQL_BUILD.WRAP_NUM(1) || ',');
|
||
PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' ' || PKG_SQL_BUILD.WRAP_NUM(24) || ',');
|
||
PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' ' || PKG_SQL_BUILD.WRAP_NUM(1) ||') * ES.QUANTFACT),');
|
||
PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' ' || PKG_SQL_BUILD.WRAP_NUM(0) || ')');
|
||
PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' from EQRPSHWRK W,');
|
||
PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' EQRPSHWRC ES');
|
||
PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' where ES.PRN = W.RN');
|
||
PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' and W.PRN = A.RN) as NLABORIOUSNESS_FACT,');
|
||
PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => PKG_SQL_BUILD.PERFORM('UDO_F_ERS_EQRPSHWRK_AVG_PRICE') || '(A.COMPANY, A.RN) NNORMH_COST,');
|
||
PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => PKG_SQL_BUILD.PERFORM('UDO_F_ERS_EQRPSHWRK_SUM') || '(A.COMPANY, A.RN) NWORK_COST,');
|
||
PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => PKG_SQL_BUILD.PERFORM('UDO_F_EQRP_SHMRC_SHOVH_SUM') || '(A.COMPANY, A.RN) NMTR_COST,');
|
||
PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' A.COASTFACT as NCOASTFACT');
|
||
PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' from EQRPSHEETS A');
|
||
PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' left outer join AGNLIST C on A.PERFORM_AGN = C.RN');
|
||
PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' left outer join INS_DEPARTMENT E on A.DEPTPERF = E.RN');
|
||
PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' left outer join AGNLIST AGN on A.CUSTOMER_AGN = AGN.RN');
|
||
PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' left outer join INS_DEPARTMENT DP on A.DEPTCUSTOMER = DP.RN,');
|
||
PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' DOCTYPES B');
|
||
PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' where A.COMPANY = :NCOMPANY');
|
||
PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' and A.STATE in (0,2,3)');
|
||
PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' and A.DOCTYPES = B.RN');
|
||
/*PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' and exists (select null from V_USERPRIV UP where UP.CATALOG = A.CRN)');
|
||
PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' and exists (select null');
|
||
PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' from V_USERPRIV UP');
|
||
PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' where UP.JUR_PERS = A.JURPERSONS');
|
||
PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' and UP.UNITCODE = ' || PKG_SQL_BUILD.WRAP_STR('EquipRepairSheets') || ')');*/
|
||
PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' and A.RN in (select ID from COND_BROKER_IDSMART where IDENT = :NIDENT)');
|
||
PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' %ORDER_BY%) D) F');
|
||
PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' where F.NROW between :NROW_FROM and :NROW_TO');
|
||
/* “÷òÞì ñîðòèðîâêè */
|
||
PKG_P8PANELS_VISUAL.TDG_ORDERS_SET_QUERY(RDATA_GRID => RDG,
|
||
RORDERS => RO,
|
||
SPATTERN => '%ORDER_BY%',
|
||
CSQL => CSQL);
|
||
/* “÷òÞì ôèëüòðû */
|
||
PKG_P8PANELS_VISUAL.TDG_FILTERS_SET_QUERY(NIDENT => NIDENT,
|
||
NCOMPANY => NCOMPANY,
|
||
SUNIT => 'EquipRepairSheets',
|
||
SPROCEDURE => 'UDO_PKG_P8PANELS_RPR_ANL.EQRPSHEETS_BASE_COND',
|
||
RDATA_GRID => RDG,
|
||
RFILTERS => RF);
|
||
/* <20>àçáèðàåì åãî */
|
||
ICURSOR := PKG_SQL_DML.OPEN_CURSOR(SWHAT => 'SELECT');
|
||
PKG_SQL_DML.PARSE(ICURSOR => ICURSOR, SQUERY => CSQL);
|
||
/* „åëàåì ïîäñòàíîâêó ïàðàìåòðîâ */
|
||
PKG_SQL_DML.BIND_VARIABLE_NUM(ICURSOR => ICURSOR, SNAME => 'NCOMPANY', NVALUE => NCOMPANY);
|
||
PKG_SQL_DML.BIND_VARIABLE_NUM(ICURSOR => ICURSOR, SNAME => 'NIDENT', NVALUE => NIDENT);
|
||
PKG_SQL_DML.BIND_VARIABLE_NUM(ICURSOR => ICURSOR, SNAME => 'NROW_FROM', NVALUE => NROW_FROM);
|
||
PKG_SQL_DML.BIND_VARIABLE_NUM(ICURSOR => ICURSOR, SNAME => 'NROW_TO', NVALUE => NROW_TO);
|
||
/* Žïèñûâàåì ñòðóêòóðó çàïèñè êóðñîðà */
|
||
PKG_SQL_DML.DEFINE_COLUMN_NUM(ICURSOR => ICURSOR, IPOSITION => 1);
|
||
PKG_SQL_DML.DEFINE_COLUMN_STR(ICURSOR => ICURSOR, IPOSITION => 2);
|
||
PKG_SQL_DML.DEFINE_COLUMN_STR(ICURSOR => ICURSOR, IPOSITION => 3);
|
||
PKG_SQL_DML.DEFINE_COLUMN_STR(ICURSOR => ICURSOR, IPOSITION => 4);
|
||
PKG_SQL_DML.DEFINE_COLUMN_DATE(ICURSOR => ICURSOR, IPOSITION => 5);
|
||
PKG_SQL_DML.DEFINE_COLUMN_NUM(ICURSOR => ICURSOR, IPOSITION => 6);
|
||
PKG_SQL_DML.DEFINE_COLUMN_DATE(ICURSOR => ICURSOR, IPOSITION => 7);
|
||
PKG_SQL_DML.DEFINE_COLUMN_DATE(ICURSOR => ICURSOR, IPOSITION => 8);
|
||
PKG_SQL_DML.DEFINE_COLUMN_STR(ICURSOR => ICURSOR, IPOSITION => 9);
|
||
PKG_SQL_DML.DEFINE_COLUMN_STR(ICURSOR => ICURSOR, IPOSITION => 10);
|
||
PKG_SQL_DML.DEFINE_COLUMN_STR(ICURSOR => ICURSOR, IPOSITION => 11);
|
||
PKG_SQL_DML.DEFINE_COLUMN_STR(ICURSOR => ICURSOR, IPOSITION => 12);
|
||
PKG_SQL_DML.DEFINE_COLUMN_STR(ICURSOR => ICURSOR, IPOSITION => 13);
|
||
PKG_SQL_DML.DEFINE_COLUMN_STR(ICURSOR => ICURSOR, IPOSITION => 14);
|
||
PKG_SQL_DML.DEFINE_COLUMN_NUM(ICURSOR => ICURSOR, IPOSITION => 15);
|
||
PKG_SQL_DML.DEFINE_COLUMN_NUM(ICURSOR => ICURSOR, IPOSITION => 16);
|
||
PKG_SQL_DML.DEFINE_COLUMN_NUM(ICURSOR => ICURSOR, IPOSITION => 17);
|
||
PKG_SQL_DML.DEFINE_COLUMN_NUM(ICURSOR => ICURSOR, IPOSITION => 18);
|
||
PKG_SQL_DML.DEFINE_COLUMN_NUM(ICURSOR => ICURSOR, IPOSITION => 19);
|
||
PKG_SQL_DML.DEFINE_COLUMN_NUM(ICURSOR => ICURSOR, IPOSITION => 20);
|
||
PKG_SQL_DML.DEFINE_COLUMN_NUM(ICURSOR => ICURSOR, IPOSITION => 21);
|
||
/* „åëàåì âûáîðêó */
|
||
if (PKG_SQL_DML.EXECUTE(ICURSOR => ICURSOR) = 0) then
|
||
null;
|
||
end if;
|
||
/* Žáõîäèì âûáðàííûå çàïèñè */
|
||
while (PKG_SQL_DML.FETCH_ROWS(ICURSOR => ICURSOR) > 0)
|
||
loop
|
||
/* „îáàâëßåì êîëîíêè ñ äàííûìè */
|
||
PKG_P8PANELS_VISUAL.TDG_ROW_ADD_CUR_COLN(RROW => RDG_ROW,
|
||
SNAME => 'NRN',
|
||
ICURSOR => ICURSOR,
|
||
NPOSITION => 1,
|
||
BCLEAR => true);
|
||
PKG_P8PANELS_VISUAL.TDG_ROW_ADD_CUR_COLS(RROW => RDG_ROW,
|
||
SNAME => 'SDOCTYPES',
|
||
ICURSOR => ICURSOR,
|
||
NPOSITION => 2);
|
||
PKG_P8PANELS_VISUAL.TDG_ROW_ADD_CUR_COLS(RROW => RDG_ROW,
|
||
SNAME => 'SPREF',
|
||
ICURSOR => ICURSOR,
|
||
NPOSITION => 3);
|
||
PKG_P8PANELS_VISUAL.TDG_ROW_ADD_CUR_COLS(RROW => RDG_ROW,
|
||
SNAME => 'SNUMB',
|
||
ICURSOR => ICURSOR,
|
||
NPOSITION => 4);
|
||
PKG_P8PANELS_VISUAL.TDG_ROW_ADD_CUR_COLD(RROW => RDG_ROW,
|
||
SNAME => 'DDOCDATE',
|
||
ICURSOR => ICURSOR,
|
||
NPOSITION => 5);
|
||
PKG_P8PANELS_VISUAL.TDG_ROW_ADD_CUR_COLN(RROW => RDG_ROW,
|
||
SNAME => 'NSTATE',
|
||
ICURSOR => ICURSOR,
|
||
NPOSITION => 6);
|
||
PKG_P8PANELS_VISUAL.TDG_ROW_ADD_CUR_COLD(RROW => RDG_ROW,
|
||
SNAME => 'DDATEFACT_BEG',
|
||
ICURSOR => ICURSOR,
|
||
NPOSITION => 7);
|
||
PKG_P8PANELS_VISUAL.TDG_ROW_ADD_CUR_COLD(RROW => RDG_ROW,
|
||
SNAME => 'DDATEFACT_END',
|
||
ICURSOR => ICURSOR,
|
||
NPOSITION => 8);
|
||
PKG_P8PANELS_VISUAL.TDG_ROW_ADD_CUR_COLS(RROW => RDG_ROW,
|
||
SNAME => 'SDEPTCUSTOMER_CODE',
|
||
ICURSOR => ICURSOR,
|
||
NPOSITION => 9);
|
||
PKG_P8PANELS_VISUAL.TDG_ROW_ADD_CUR_COLS(RROW => RDG_ROW,
|
||
SNAME => 'SDEPTCUSTOMER_NAME',
|
||
ICURSOR => ICURSOR,
|
||
NPOSITION => 10);
|
||
PKG_P8PANELS_VISUAL.TDG_ROW_ADD_CUR_COLS(RROW => RDG_ROW,
|
||
SNAME => 'SDEPTPERF_CODE',
|
||
ICURSOR => ICURSOR,
|
||
NPOSITION => 11);
|
||
PKG_P8PANELS_VISUAL.TDG_ROW_ADD_CUR_COLS(RROW => RDG_ROW,
|
||
SNAME => 'SDEPTPERF_NAME',
|
||
ICURSOR => ICURSOR,
|
||
NPOSITION => 12);
|
||
PKG_P8PANELS_VISUAL.TDG_ROW_ADD_CUR_COLS(RROW => RDG_ROW,
|
||
SNAME => 'SPERFORM_AGN_CODE',
|
||
ICURSOR => ICURSOR,
|
||
NPOSITION => 13);
|
||
PKG_P8PANELS_VISUAL.TDG_ROW_ADD_CUR_COLS(RROW => RDG_ROW,
|
||
SNAME => 'SPERFORM_AGN_NAME',
|
||
ICURSOR => ICURSOR,
|
||
NPOSITION => 14);
|
||
PKG_P8PANELS_VISUAL.TDG_ROW_ADD_CUR_COLN(RROW => RDG_ROW,
|
||
SNAME => 'NLABORIOUSNESS_PLAN',
|
||
ICURSOR => ICURSOR,
|
||
NPOSITION => 15);
|
||
PKG_P8PANELS_VISUAL.TDG_ROW_ADD_CUR_COLN(RROW => RDG_ROW,
|
||
SNAME => 'NLABORIOUSNESS_FACT',
|
||
ICURSOR => ICURSOR,
|
||
NPOSITION => 16);
|
||
PKG_P8PANELS_VISUAL.TDG_ROW_ADD_CUR_COLN(RROW => RDG_ROW,
|
||
SNAME => 'NNORMH_COST',
|
||
ICURSOR => ICURSOR,
|
||
NPOSITION => 17);
|
||
PKG_P8PANELS_VISUAL.TDG_ROW_ADD_CUR_COLN(RROW => RDG_ROW,
|
||
SNAME => 'NWORK_COST',
|
||
ICURSOR => ICURSOR,
|
||
NPOSITION => 18);
|
||
PKG_P8PANELS_VISUAL.TDG_ROW_ADD_CUR_COLN(RROW => RDG_ROW,
|
||
SNAME => 'NMTR_COST',
|
||
ICURSOR => ICURSOR,
|
||
NPOSITION => 19);
|
||
PKG_P8PANELS_VISUAL.TDG_ROW_ADD_CUR_COLN(RROW => RDG_ROW,
|
||
SNAME => 'NCOASTFACT',
|
||
ICURSOR => ICURSOR,
|
||
NPOSITION => 20);
|
||
/* „îáàâëßåì ñòðîêó â òàáëèöó */
|
||
PKG_P8PANELS_VISUAL.TDG_ADD_ROW(RDATA_GRID => RDG, RROW => RDG_ROW);
|
||
end loop;
|
||
/* Žñâîáîæäàåì êóðñîð */
|
||
PKG_SQL_DML.CLOSE_CURSOR(ICURSOR => ICURSOR);
|
||
exception
|
||
when others then
|
||
PKG_SQL_DML.CLOSE_CURSOR(ICURSOR => ICURSOR);
|
||
raise;
|
||
end;
|
||
/* ‘åðèàëèçóåì îïèñàíèå */
|
||
COUT := PKG_P8PANELS_VISUAL.TDG_TO_XML(RDATA_GRID => RDG, NINCLUDE_DEF => NINCLUDE_DEF);
|
||
end DATA_GRID;
|
||
|
||
/* <20>àçîâîå ôîðìèðîâàíèå óñëîâèé îòáîðà ðåìîíòíûõ âåäîìîñòåé */
|
||
procedure EQRPSHEETS_BASE_COND
|
||
as
|
||
SPREF PKG_STD.TSTRING;
|
||
SNUMB PKG_STD.TSTRING;
|
||
SWORK_TYPE PKG_STD.TSTRING;
|
||
SWORK_KIND PKG_STD.TSTRING;
|
||
SCLAUSE PKG_STD.TSTRING;
|
||
NSTATE PKG_STD.TNUMBER;
|
||
NTYPESPEND PKG_STD.TNUMBER;
|
||
begin
|
||
/* “ñòàíîâêà ãëàâíîé òàáëèöû */
|
||
PKG_COND_BROKER.SET_TABLE( 'EQRPSHEETS' );
|
||
|
||
/* ”îðìèðîâàíèå óñëîâèé òàáëèöû */
|
||
-- <20>åêâèçèòû/„îêóìåíò/’èï
|
||
PKG_COND_BROKER.ADD_CONDITION_CODE( 'DOCCODE','EDDOCTYPE','DOCTYPES <- RN;DOCTYPES' );
|
||
-- <20>åêâèçèòû/„îêóìåíò/<2F>ðåôèêñ
|
||
if (PKG_COND_BROKER.CONDITION_EXISTS('EDPREFFrom') = 1) then
|
||
/* ‘÷èòûâàåì ïðåôèêñ ñ ó÷åòîì trim */
|
||
SPREF := UPPER(TRIMNUMB(PKG_COND_BROKER.GET_CONDITION_STR('EDPREFFrom') ,10));
|
||
/* “ñòàíàâëèâàåì îòáîð */
|
||
PKG_COND_BROKER.ADD_CLAUSE('UPPER(PREF) = ''' || SPREF || '''');
|
||
end if;
|
||
-- <20>åêâèçèòû/„îêóìåíò/<2F>îìåð
|
||
if (PKG_COND_BROKER.CONDITION_EXISTS('EDNUMBFrom') = 1) then
|
||
/* ‘÷èòûâàåì íîìåð ñ ó÷åòîì trim */
|
||
SNUMB := UPPER(TRIMNUMB(PKG_COND_BROKER.GET_CONDITION_STR('EDNUMBFrom') ,10));
|
||
/* “ñòàíàâëèâàåì îòáîð */
|
||
PKG_COND_BROKER.ADD_CLAUSE('UPPER(NUMB) = ''' || SNUMB || '''');
|
||
end if;
|
||
-- <20>åêâèçèòû/„îêóìåíò/„àòà ñ..ïî
|
||
PKG_COND_BROKER.ADD_CONDITION_BETWEEN( 'DOCDATE','EDDATEFrom','EDDATETo' );
|
||
/* …ñëè ñîñòîßíèå óêàçàíî */
|
||
if (PKG_COND_BROKER.CONDITION_EXISTS('STATETYPE') = 1) then
|
||
/* ‘÷èòûâàåì ôèëüòð ñîñòîßíèß (0 - íå çàâåðøåííûå, 1 - çàâåðøåííûå) */
|
||
NSTATE := PKG_COND_BROKER.GET_CONDITION_NUM('STATETYPE');
|
||
/* …ñëè ñîñòîßíèå - çàâåðøåííûå */
|
||
if (NSTATE = 1) then
|
||
/* “ñòàíàâëèâàåì òîëüêî ñ ñîñòîßíèåì "‡àêðûò" */
|
||
PKG_COND_BROKER.SET_CONDITION_ENUM('CGSTATE', '3');
|
||
else
|
||
/* “ñòàíàâëèâàåì òîëüêî ñ ñîñòîßíèåì "<22>å óòâåðæäÞí", "“òâåðæäÞí" */
|
||
PKG_COND_BROKER.SET_CONDITION_ENUM('CGSTATE', '0;2', ';');
|
||
end if;
|
||
-- ‘îñòîßíèå/‘îñòîßíèå
|
||
PKG_COND_BROKER.ADD_CONDITION_ENUM( 'STATE','CGSTATE' );
|
||
end if;
|
||
/* …ñëè óêàçàíû òðóäîâûå çàòðàòû */
|
||
if (PKG_COND_BROKER.CONDITION_EXISTS('TYPESPEND') = 1) then
|
||
/* ‘÷èòûâàåì ôèëüòð òðóäîâûõ çàòðàò (0 - âíóòðåííèå, 1 - âíåøíèå) */
|
||
NTYPESPEND := PKG_COND_BROKER.GET_CONDITION_NUM('TYPESPEND');
|
||
/* …ñëè òðóäîâûå çàòðàòû - âíóòðåííèå */
|
||
if (NTYPESPEND = 0) then
|
||
PKG_COND_BROKER.ADD_NOT_NULL('DEPTPERF');
|
||
else
|
||
PKG_COND_BROKER.ADD_NOT_NULL('PERFORM_AGN');
|
||
end if;
|
||
end if;
|
||
|
||
/* ”îðìèðîâàíèå óñëîâèé ïàíåëè */
|
||
-- „îïîëíèòåëüíî/‡àêàç÷èê, ˆñïîëíèòåëü/<2F>îäðàçäåëåíèå-çàêàç÷èê
|
||
PKG_COND_BROKER.ADD_CONDITION_CODE( 'CODE','CUSTOMERDEPTEDIT','DEPTCUSTOMER <- RN;INS_DEPARTMENT' );
|
||
-- „îïîëíèòåëüíî/<2F>åêâèçèòû ðåìîíòà/„àòà íà÷àëà ôàêòè÷åñêàß ñ..ïî
|
||
PKG_COND_BROKER.ADD_CONDITION_BETWEEN( 'DATEFACT_BEG','EDREPAIRFACTBEGINFrom','EDREPAIRFACTBEGINTo' );
|
||
-- …ñëè åñòü óñëîâèå íà òèïîâóþ ðàáîòó èëè âèä òèïîâîé ðàáîòû
|
||
if ((PKG_COND_BROKER.CONDITION_EXISTS('EQTYPEWRKCOMP') = 1) or (PKG_COND_BROKER.CONDITION_EXISTS('EQWRKKINDCOMP') = 1)) then
|
||
/* ‘÷èòûâàåì òèïîâóþ ðàáîòó */
|
||
SWORK_TYPE := PKG_COND_BROKER.GET_CONDITION_STR('EQTYPEWRKCOMP');
|
||
/* ‘÷èòûâàåì âèä òèïîâîé ðàáîòû */
|
||
SWORK_KIND := PKG_COND_BROKER.GET_CONDITION_STR('EQWRKKINDCOMP');
|
||
/* ”îðìèðîâàíèå äîï. óñëîâèß */
|
||
SCLAUSE := ' exists (select null';
|
||
SCLAUSE := SCLAUSE || ' from EQRPSHWRK SW,';
|
||
SCLAUSE := SCLAUSE || ' EQTYPEWRK TW';
|
||
/* …ñëè óêàçàí âèä òèïîâîé ðàáîòû */
|
||
if (SWORK_KIND is not null) then
|
||
SCLAUSE := SCLAUSE || ' left outer join EQWRKKIND WK on TW.KIND = WK.RN';
|
||
end if;
|
||
SCLAUSE := SCLAUSE || ' where SW.PRN = T.RN';
|
||
SCLAUSE := SCLAUSE || ' and TW.RN = SW.TYPEWRK';
|
||
/* …ñëè óêàçàíà òèïîâàß ðàáîòà */
|
||
if (SWORK_TYPE is not null) then
|
||
SCLAUSE := SCLAUSE || ' and TW.CODE = ''' || SWORK_TYPE || '''';
|
||
end if;
|
||
/* …ñëè óêàçàí âèä òèïîâîé ðàáîòû */
|
||
if (SWORK_KIND is not null) then
|
||
SCLAUSE := SCLAUSE || ' and WK.CODE = ''' || SWORK_KIND || '''';
|
||
end if;
|
||
SCLAUSE := SCLAUSE || ')';
|
||
/* “ñòàíàâëèâàåì îòáîð */
|
||
PKG_COND_BROKER.ADD_CLAUSE(SCLAUSE);
|
||
end if;
|
||
-- ‘îñòîßíèå/‘îñòîßíèå
|
||
--PKG_COND_BROKER.ADD_CONDITION_ENUM( 'STATE','CGSTATE' );
|
||
|
||
end EQRPSHEETS_BASE_COND;
|
||
|
||
end UDO_PKG_P8PANELS_RPR_ANL;
|
||
/
|