diff --git a/db/UDO_P8PANELS_USETTING.sql b/db/UDO_P8PANELS_USETTING.sql
new file mode 100644
index 0000000..cae3940
--- /dev/null
+++ b/db/UDO_P8PANELS_USETTING.sql
@@ -0,0 +1,19 @@
+/*
+ 8 -
+
+*/
+create table UDO_P8PANELS_USETTING
+(
+ /* . */
+ RN number( 17 ) not null,
+ /* . */
+ COMPANY number( 17 ) not null,
+ /* */
+ AUTHID varchar2( 30 ) not null,
+ /* */
+ PANEL varchar2( 100 ) not null,
+ /* */
+ PANEL_SETTINGS clob,
+ constraint C_UDO_P8PANELS_USETTING_PK primary key( RN ),
+ constraint C_UDO_P8PANELS_USETTING_UK unique( COMPANY, AUTHID, PANEL )
+)
diff --git a/db/UDO_PKG_P8PANELS_HAULER_ANL.pck b/db/UDO_PKG_P8PANELS_HAULER_ANL.pck
new file mode 100644
index 0000000..6ac64d9
--- /dev/null
+++ b/db/UDO_PKG_P8PANELS_HAULER_ANL.pck
@@ -0,0 +1,1529 @@
+create or replace package UDO_PKG_P8PANELS_HAULER_ANL as
+
+ /* */
+ function GET_HLUNITSCARD_STATE_BY_DATE
+ (
+ NRN in number, -- .
+ DDATE in date := null --
+ ) return varchar2; --
+
+ /* */
+ procedure GET_INS_DEPARTMENT_NAME
+ (
+ SCODE in varchar2, --
+ SNAME out varchar2 --
+ );
+
+ /* */
+ function HLWAYBILL_EXISTS
+ (
+ NJURPERSONS in number, -- .
+ NHLUNITSCARD in number, -- .
+ DDATE in date := null --
+ ) return number; -- (0 - , 1 - )
+
+ /* */
+ function GET_ATC_EQDAMCTRL
+ (
+ NHLUNITSCARD in number, -- .
+ DDATE in date := null --
+ ) return number; -- (1 - , 2 - , -1 - )
+
+ /* */
+ function GET_ATC_STATE
+ (
+ NJURPERSONS in number, -- .
+ NHLUNITSCARD in number, -- .
+ DDATE in date := null, --
+ NUNION_DAMAGE in number := 0 -- " " " " (0 - , 1 - )
+ ) return number; -- (0 - , 1 - , 2 - )
+
+ /* */
+ function GET_ATC_ACTIVE_BY_PERIOD
+ (
+ NCOMPANY in number, -- .
+ NDEPARTMENT in number, -- .
+ DDATE_FROM in date, --
+ DDATE_TO in date, --
+ DDATE in date := null, --
+ NSTATE in number := null -- (null, 0 - , 1 - , -1 - )
+ ) return number; --
+
+ /* */
+ function GET_ATC_COUNT_BY_DEP
+ (
+ NCOMPANY in number, -- .
+ NDEPARTMENT in number, -- .
+ DDATE in date := null, --
+ NSTATE in number := null -- (null, 0 - , 1 - , -1 - )
+ ) return number; --
+
+ /* */
+ function GET_ATC_KOA_BY_PERIOD
+ (
+ NJURPERSONS in number, -- .
+ NHLUNITSCARD in number, -- .
+ DDATE_FROM in date, --
+ DDATE_TO in date --
+ ) return number; --
+
+ /* */
+ function GET_ATC_DRIVERS
+ (
+ NHLUNITSCARD in number, -- .
+ DDATE in date --
+ ) return varchar2; --
+
+ /* */
+ procedure CHART_ATC_INFO
+ (
+ DDATE in date, --
+ SDEPARTMENT in varchar2, --
+ NSTATE in number, -- (null, 0 - , 1 - , -1 - )
+ COUT out clob --
+ );
+
+ /* / */
+ procedure CHART_ATC_KTG_KOA
+ (
+ SDEPARTMENT in varchar2, --
+ DDATE_KOA_FROM in date, --
+ DDATE_KOA_TO in date, --
+ DDATE in date, --
+ NSTATE in number, -- (null, 0 - , 1 - , -1 - )
+ COUT out clob --
+ );
+
+ /* */
+ procedure DATA_GRID_ATC
+ (
+ NPAGE_NUMBER in number, -- ( NPAGE_SIZE=0)
+ NPAGE_SIZE in number, -- (0 - )
+ CFILTERS in clob, --
+ CORDERS in clob, --
+ NINCLUDE_DEF in number, --
+ SDEPARTMENT in varchar2, --
+ DDATE in date, --
+ DDATE_KOA_FROM in date, --
+ DDATE_KOA_TO in date, --
+ NSTATE in number, -- (null, 0 - , 1 - , -1 - )
+ COUT out clob --
+ );
+
+ /* */
+ procedure HLUNITSCARD_BASE_COND;
+
+end UDO_PKG_P8PANELS_HAULER_ANL;
+/
+create or replace package body UDO_PKG_P8PANELS_HAULER_ANL as
+
+ /* - */
+ NAVG_SPEED_W_GRUZ constant PKG_STD.TNUMBER := 56; --
+ NAVG_SPEED_WO_GRUZ constant PKG_STD.TNUMBER := 64; --
+ NDAY_HOURS constant PKG_STD.TNUMBER := 24; --
+ NSERVICE_HOURS constant PKG_STD.TNUMBER := 1; -- (, , )
+ NREST_HOURS constant PKG_STD.TNUMBER := 6; --
+ NMEAL_HOURS constant PKG_STD.TNUMBER := 2; --
+ NDELIVERY_COEF constant PKG_STD.TNUMBER := 2; --
+ NLOAD_HOURS constant PKG_STD.TNUMBER := 1; --
+ NUNLOAD_HOURS constant PKG_STD.TNUMBER := 1; --
+ SHLTYPE_CEMENTOVOZ constant PKG_STD.TSTRING := ''; -- ""
+ SHLTYPE_PRICEP constant PKG_STD.TSTRING := ''; -- ""
+ SHLTYPE_POLUPRICEP constant PKG_STD.TSTRING := ''; -- ""
+
+
+ /* */
+ function GET_HLUNITSCARD_STATE_BY_DATE
+ (
+ NRN in number, -- .
+ DDATE in date := null --
+ ) return varchar2 --
+ is
+ SSTATE HLSTATETYPES.CODE%TYPE; --
+ DCHECK_DATE PKG_STD.TLDATE; --
+ begin
+ /* */
+ DCHECK_DATE := COALESCE(TRUNC(DDATE), sysdate);
+ /* */
+ begin
+ select /*+ ORDERED */
+ distinct FIRST_VALUE(CHT.CODE) OVER(order by CHIST.OPERDATE desc ROWS UNBOUNDED PRECEDING)
+ into SSTATE
+ from HLSTATEHIST CHIST,
+ HLSTATETYPES CHT
+ where CHIST.HLUNITSCARD = NRN
+ and CHIST.OPERDATE <= DCHECK_DATE
+ and CHT.RN = CHIST.HLSTATETYPES;
+ exception
+ when NO_DATA_FOUND then
+ SSTATE := null;
+ when TOO_MANY_ROWS then
+ SSTATE := null;
+ when others then
+ SSTATE := null;
+ end;
+ /* */
+ return SSTATE;
+ end GET_HLUNITSCARD_STATE_BY_DATE;
+
+ /* */
+ procedure GET_INS_DEPARTMENT_NAME
+ (
+ SCODE in varchar2, --
+ SNAME out varchar2 --
+ )
+ 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 := ' ';
+ end;
+ end GET_INS_DEPARTMENT_NAME;
+
+ /* */
+ function HLWAYBILL_EXISTS
+ (
+ NJURPERSONS in number, -- .
+ NHLUNITSCARD in number, -- .
+ DDATE in date := null --
+ ) return number -- (0 - , 1 - )
+ is
+ DCHECK_DATE PKG_STD.TLDATE; --
+ NRESULT PKG_STD.TNUMBER; -- (0 - , 1 - )
+ begin
+ /* */
+ DCHECK_DATE := TRUNC(COALESCE(DDATE, sysdate));
+ /* */
+ begin
+ select 1
+ into NRESULT
+ from dual
+ where exists (select null
+ from HLWAYBILL T
+ where T.JURPERSONS = NJURPERSONS
+ and T.HLUNITSCARD = NHLUNITSCARD
+ and TRUNC(T.FACTDATE_LEAVE) <= DCHECK_DATE
+ and TRUNC(T.FACTDATE_RETURN) >= DCHECK_DATE);
+ exception
+ when others then
+ NRESULT := 0;
+ end;
+ /* */
+ return NRESULT;
+ end HLWAYBILL_EXISTS;
+
+ /* */
+ function GET_ATC_EQDAMCTRL
+ (
+ NHLUNITSCARD in number, -- .
+ DDATE in date := null --
+ ) return number -- (1 - , 2 - , -1 - )
+ is
+ NRESULT PKG_STD.TNUMBER; -- (1 - , 2 - , -1 - )
+ begin
+ begin
+ select TMP.RN
+ into NRESULT
+ from (select DAM.RN
+ from DOCLINKS DL,
+ EQDAMCTRL DAM
+ where DL.IN_DOCUMENT = NHLUNITSCARD
+ and DL.IN_UNITCODE = 'HaulerUnitsCards'
+ and DL.OUT_UNITCODE = 'EquipDamageControl'
+ and DAM.RN = DL.OUT_DOCUMENT
+ and TRUNC(DAM.DAMAGE_DATE) <= DDATE
+ and ((TRUNC(DAM.FIX_DATE) >= DDATE) or (DAM.FIX_DATE is null))
+ order by case
+ when DAM.FIX_DATE is not null then
+ 1
+ else
+ 0
+ end desc,
+ DAM.FIX_DATE desc,
+ DAM.DAMAGE_DATE desc) TMP
+ where ROWNUM = 1;
+ exception
+ when others then
+ NRESULT := null;
+ end;
+ return NRESULT;
+ end GET_ATC_EQDAMCTRL;
+
+ /* */
+ function GET_ATC_REPAIR_STATE
+ (
+ NHLUNITSCARD in number, -- .
+ DDATE in date := null --
+ ) return number -- (1 - , 2 - , -1 - )
+ is
+ NRESULT PKG_STD.TNUMBER; -- (1 - , 2 - , -1 - )
+ begin
+ /* */
+ begin
+ select case
+ when D.RN is not null then
+ 1
+ else
+ 2
+ end NSTATE
+ into NRESULT
+ from (select TMP.*
+ from (select DAM.RN,
+ DAM.DAMAGE_DATE,
+ DAM.FIX_DATE
+ from DOCLINKS DL,
+ EQDAMCTRL DAM
+ where DL.IN_DOCUMENT = NHLUNITSCARD
+ and DL.IN_UNITCODE = 'HaulerUnitsCards'
+ and DL.OUT_UNITCODE = 'EquipDamageControl'
+ and DAM.RN = DL.OUT_DOCUMENT
+ and TRUNC(DAM.DAMAGE_DATE) <= DDATE
+ and ((TRUNC(DAM.FIX_DATE) >= DDATE) or (DAM.FIX_DATE is null))
+ order by case
+ when DAM.FIX_DATE is not null then
+ 1
+ else
+ 0
+ end desc,
+ DAM.FIX_DATE desc,
+ DAM.DAMAGE_DATE desc) TMP
+ where ROWNUM = 1) T
+ left join DOCLINKS D
+ on D.IN_DOCUMENT = T.RN
+ and D.IN_UNITCODE = 'EquipDamageControl'
+ and D.OUT_UNITCODE = 'EquipRepairSheets';
+ exception
+ when others then
+ NRESULT := -1;
+ end;
+ /* */
+ return NRESULT;
+ end GET_ATC_REPAIR_STATE;
+
+ /* */
+ function GET_ATC_STATE
+ (
+ NJURPERSONS in number, -- .
+ NHLUNITSCARD in number, -- .
+ DDATE in date := null, --
+ NUNION_DAMAGE in number := 0 -- " " " " (0 - , 1 - )
+ ) return number -- (0 - , 1 - , 2 - , -1 - )
+ is
+ SSTATUS PKG_STD.TSTRING; --
+ NRESULT PKG_STD.TNUMBER; -- (0 - , 1 - , 2 - , -1 - )
+ begin
+ /* */
+ NRESULT := GET_ATC_REPAIR_STATE(NHLUNITSCARD => NHLUNITSCARD, DDATE => DDATE);
+ /* */
+ if (NRESULT in (1,2)) then
+ /* */
+ return NRESULT;
+ end if;
+ /* " " */
+ if (HLWAYBILL_EXISTS(NJURPERSONS => NJURPERSONS, NHLUNITSCARD => NHLUNITSCARD, DDATE => DDATE) = 1) then
+ /* */
+ return 0;
+ end if;
+ /* */
+ return NRESULT;
+ /* */
+ /*SSTATUS := GET_HLUNITSCARD_STATE_BY_DATE(NRN => NHLUNITSCARD, DDATE => DDATE);
+ \* *\
+ if (SSTATUS in ('', '푒') or (SSTATUS like '%') or (SSTATUS like '%')) then
+ \* " " *\
+ if (NUNION_DAMAGE = 1) then
+ \* *\
+ return 0;
+ else
+ \* *\
+ return 2;
+ end if;
+ end if;
+ \* *\
+ if (SSTATUS = '') then
+ \* *\
+ return 1;
+ end if;
+ \* *\
+ if ((SSTATUS = '') and (HLWAYBILL_EXISTS(NJURPERSONS => NJURPERSONS, NHLUNITSCARD => NHLUNITSCARD, DDATE => DDATE) = 1)) then
+ \* *\
+ return 0;
+ end if;
+ \* *\
+ return -1;*/
+ end GET_ATC_STATE;
+
+ /* */
+ function GET_ATC_ACTIVE_BY_PERIOD
+ (
+ NCOMPANY in number, -- .
+ NDEPARTMENT in number, -- .
+ DDATE_FROM in date, --
+ DDATE_TO in date, --
+ DDATE in date := null, --
+ NSTATE in number := null -- (null, 0 - , 1 - , -1 - )
+ ) return number --
+ is
+ NRESULT PKG_STD.TNUMBER; --
+ begin
+ /* */
+ begin
+ with DATES as
+ (select (TRUNC(DDATE_FROM) + level - 1) DDATE
+ from DUAL
+ connect by level <= (TRUNC(DDATE_TO) - TRUNC(DDATE_FROM) + 1))
+ select COALESCE(sum(case
+ when UDO_PKG_P8PANELS_HAULER_ANL.GET_ATC_STATE(H.JURPERSONS, H.RN, D.DDATE, 1) = 0 then
+ 1
+ else
+ 0
+ end),
+ 0) NSUM
+ into NRESULT
+ from DATES D,
+ (select T.RN,
+ T.JURPERSONS
+ from HLUNITSCARD T
+ where T.COMPANY = NCOMPANY
+ and ((NDEPARTMENT is null) or ((NDEPARTMENT is not null) and (T.DEPARTMENT = NDEPARTMENT)))
+ and T.DEPARTMENT in (23218545348, 23218545435, 23218547825, 28176212241, 24286125541, 24597391278, 24984694945, 23254086198)
+ and exists (select null
+ from DICCMRKS TR2,
+ HLTYPE HT
+ where T.DICCMRKS = TR2.RN
+ and TR2.HLTYPE = HT.RN
+ and HT.CODE = SHLTYPE_CEMENTOVOZ)
+ and exists
+ (select null
+ from HLUNITSCARDPART CP,
+ HLUNITSCARD CP_C,
+ DICCMRKS CP_TR2,
+ HLTYPE CP_HT
+ where CP.PRN = T.RN
+ and CP_C.RN = CP.HLUNITSCARD_PART
+ and CP_C.DICCMRKS = CP_TR2.RN
+ and CP_TR2.HLTYPE = CP_HT.RN
+ and CP_HT.CODE in (SHLTYPE_PRICEP, SHLTYPE_POLUPRICEP))
+ and ((NSTATE is null) or ((NSTATE is not null) and
+ (UDO_PKG_P8PANELS_HAULER_ANL.GET_ATC_STATE(T.JURPERSONS, T.RN, DDATE, 1) = NSTATE)))) H;
+ end;
+ /* */
+ return NRESULT;
+ end GET_ATC_ACTIVE_BY_PERIOD;
+
+ /* */
+ function GET_ATC_COUNT_BY_DEP
+ (
+ NCOMPANY in number, -- .
+ NDEPARTMENT in number, -- .
+ DDATE in date := null, --
+ NSTATE in number := null -- (null, 0 - , 1 - , -1 - )
+ ) return number --
+ is
+ NRESULT PKG_STD.TNUMBER; --
+ begin
+ /* */
+ begin
+ select count(T.RN)
+ into NRESULT
+ from HLUNITSCARD T
+ where T.COMPANY = NCOMPANY
+ and ((NDEPARTMENT is null) or ((NDEPARTMENT is not null) and (T.DEPARTMENT = NDEPARTMENT)))
+ and T.DEPARTMENT in (23218545348, 23218545435, 23218547825, 28176212241, 24286125541, 24597391278, 24984694945, 23254086198)
+ and exists (select null
+ from DICCMRKS TR2,
+ HLTYPE HT
+ where T.DICCMRKS = TR2.RN
+ and TR2.HLTYPE = HT.RN
+ and HT.CODE = SHLTYPE_CEMENTOVOZ)
+ and exists (select null
+ from HLUNITSCARDPART CP,
+ HLUNITSCARD CP_C,
+ DICCMRKS CP_TR2,
+ HLTYPE CP_HT
+ where CP.PRN = T.RN
+ and CP_C.RN = CP.HLUNITSCARD_PART
+ and CP_C.DICCMRKS = CP_TR2.RN
+ and CP_TR2.HLTYPE = CP_HT.RN
+ and CP_HT.CODE in (SHLTYPE_PRICEP, SHLTYPE_POLUPRICEP))
+ and ((NSTATE is null) or ((NSTATE is not null) and
+ (UDO_PKG_P8PANELS_HAULER_ANL.GET_ATC_STATE(T.JURPERSONS, T.RN, DDATE, 1) = NSTATE)));
+ exception
+ when others then
+ NRESULT := 0;
+ end;
+ /* */
+ return NRESULT;
+ end GET_ATC_COUNT_BY_DEP;
+
+ /* */
+ function GET_ATC_KOA_BY_PERIOD
+ (
+ NJURPERSONS in number, -- .
+ NHLUNITSCARD in number, -- .
+ DDATE_FROM in date, --
+ DDATE_TO in date --
+ ) return number --
+ is
+ NRESULT PKG_STD.TSUMM := 0; --
+ NWITH_GRUZ PKG_STD.TSUMM; --
+ NWITHOUT_GRUZ PKG_STD.TSUMM; --
+ NVOYAGE_HOURS PKG_STD.TNUMBER; --
+ NDELIVERY_EXTRA_TIME PKG_STD.TNUMBER; -- /
+ begin
+ /* */
+ /*begin
+ select sum(case
+ when TMP.IS_WITH_GRUZ = 1 then
+ TMP.CAR_RUN
+ else
+ 0
+ end) WITH_GRUZ,
+ sum(case
+ when TMP.IS_WITH_GRUZ = 0 then
+ TMP.CAR_EMPTY_RUN
+ else
+ 0
+ end) WITHOUT_GRUZ
+ into NWITH_GRUZ,
+ NWITHOUT_GRUZ
+ from (select T.RN as NRN,
+ T.CAR_RUN,
+ T.CAR_EMPTY_RUN,
+ case
+ when D.RN is not null then
+ 1
+ else
+ 0
+ end IS_WITH_GRUZ
+ from HLWAYBILL B,
+ HLWAYBILLTASK TA,
+ HLWAYBILLTRIP T
+ left outer join DOCLINKS D
+ on D.IN_DOCUMENT = T.RN
+ and D.IN_UNITCODE = 'HaulerWayBillsTasksOnTrips'
+ and D.OUT_UNITCODE = 'GoodsTransInvoicesToConsumers'
+ where B.STATUS = 2
+ and B.HLUNITSCARD = NHLUNITSCARD
+ and B.JURPERSONS = NJURPERSONS
+ and B.FACTDATE_LEAVE >= DDATE_FROM
+ and B.FACTDATE_RETURN <= DDATE_TO
+ and TA.PRN = B.RN
+ and T.PRN = TA.RN) TMP;
+ exception
+ when others then
+ NWITH_GRUZ := 0;
+ NWITHOUT_GRUZ := 0;
+ end;*/
+ /* null' */
+ /*NWITH_GRUZ := COALESCE(NWITH_GRUZ, 0);
+ NWITHOUT_GRUZ := COALESCE(NWITHOUT_GRUZ, 0);
+ \* - *\
+ if (NWITH_GRUZ <> 0) then
+ NRESULT := ROUND((24 - 1 - 6 - 2) / (((NWITH_GRUZ / NAVG_SPEED_W_GRUZ) * 2) + 1 + 1), 2);
+ end if;
+ \* - *\
+ if (NWITHOUT_GRUZ <> 0) then
+ NRESULT := ROUND(NRESULT + ((24 - 1 - 6 - 2) / (((NWITHOUT_GRUZ / NAVG_SPEED_WO_GRUZ) * 2) + 1 + 1)), 2);
+ end if;*/
+ /* */
+ NVOYAGE_HOURS := NDAY_HOURS - NSERVICE_HOURS - NREST_HOURS - NMEAL_HOURS;
+ /* / */
+ NDELIVERY_EXTRA_TIME := NLOAD_HOURS + NUNLOAD_HOURS;
+ /* */
+ begin
+ select ROUND(sum(case
+ when R.WITH_GRUZ <> 0 then
+ NVOYAGE_HOURS / (((R.WITH_GRUZ / NAVG_SPEED_W_GRUZ) * NDELIVERY_COEF) + NDELIVERY_EXTRA_TIME)
+ else
+ 0
+ end),
+ 2) TOTAL_WITH_GRUZ,
+ ROUND(sum(case
+ when R.WITHOUT_GRUZ <> 0 then
+ NVOYAGE_HOURS / (((R.WITHOUT_GRUZ / NAVG_SPEED_WO_GRUZ) * NDELIVERY_COEF) + NDELIVERY_EXTRA_TIME)
+ else
+ 0
+ end),
+ 2) TOTAL_WITH_GRUZ
+ into NWITH_GRUZ,
+ NWITHOUT_GRUZ
+ from (select sum(case
+ when TMP.IS_WITH_GRUZ = 1 then
+ TMP.DISTANCE
+ else
+ 0
+ end) WITH_GRUZ,
+ sum(case
+ when TMP.IS_WITH_GRUZ = 0 then
+ TMP.DISTANCE
+ else
+ 0
+ end) WITHOUT_GRUZ
+ from (select case
+ when D.RN is not null then
+ T.CAR_RUN
+ else
+ T.CAR_EMPTY_RUN
+ end DISTANCE,
+ case
+ when D.RN is not null then
+ 1
+ else
+ 0
+ end IS_WITH_GRUZ,
+ B.RN HLWAYBILL
+ from HLWAYBILL B,
+ HLWAYBILLTASK TA,
+ HLWAYBILLTRIP T
+ left outer join DOCLINKS D
+ on D.IN_DOCUMENT = T.RN
+ and D.IN_UNITCODE = 'HaulerWayBillsTasksOnTrips'
+ and D.OUT_UNITCODE = 'GoodsTransInvoicesToConsumers'
+ where B.STATUS = 2
+ and B.HLUNITSCARD = NHLUNITSCARD
+ and B.JURPERSONS = NJURPERSONS
+ and B.FACTDATE_LEAVE >= DDATE_FROM
+ and B.FACTDATE_RETURN <= DDATE_TO
+ and TA.PRN = B.RN
+ and T.PRN = TA.RN) TMP
+ group by TMP.HLWAYBILL) R;
+ exception
+ when others then
+ NWITH_GRUZ := 0;
+ NWITHOUT_GRUZ := 0;
+ end;
+ /* */
+ NRESULT := ROUND(NWITH_GRUZ + NWITHOUT_GRUZ, 2);
+ /* */
+ return NRESULT;
+ end GET_ATC_KOA_BY_PERIOD;
+
+ /* */
+ function GET_ATC_KOA_SUM_BY_PERIOD
+ (
+ NCOMPANY in number, -- .
+ NDEPARTMENT in number, -- .
+ DDATE_FROM in date, --
+ DDATE_TO in date, --
+ DDATE in date := null, --
+ NSTATE in number := null -- (null, 0 - , 1 - , -1 - )
+ ) return number --
+ is
+ NRESULT PKG_STD.TSUMM; --
+ begin
+ /* */
+ begin
+ select SUM(GET_ATC_KOA_BY_PERIOD(T.JURPERSONS, T.RN, DDATE_FROM, DDATE_TO))
+ into NRESULT
+ from HLUNITSCARD T
+ where T.COMPANY = NCOMPANY
+ and ((NDEPARTMENT is null) or ((NDEPARTMENT is not null) and (T.DEPARTMENT = NDEPARTMENT)))
+ and exists (select null
+ from DICCMRKS TR2,
+ HLTYPE HT
+ where T.DICCMRKS = TR2.RN
+ and TR2.HLTYPE = HT.RN
+ and HT.CODE = SHLTYPE_CEMENTOVOZ)
+ and exists (select null
+ from HLUNITSCARDPART CP,
+ HLUNITSCARD CP_C,
+ DICCMRKS CP_TR2,
+ HLTYPE CP_HT
+ where CP.PRN = T.RN
+ and CP_C.RN = CP.HLUNITSCARD_PART
+ and CP_C.DICCMRKS = CP_TR2.RN
+ and CP_TR2.HLTYPE = CP_HT.RN
+ and CP_HT.CODE in (SHLTYPE_PRICEP, SHLTYPE_POLUPRICEP))
+ and ((NSTATE is null) or ((NSTATE is not null) and
+ (UDO_PKG_P8PANELS_HAULER_ANL.GET_ATC_STATE(T.JURPERSONS, T.RN, DDATE, 1) = NSTATE)));
+ exception
+ when others then
+ NRESULT := 0;
+ end;
+ /* */
+ return NRESULT;
+ end GET_ATC_KOA_SUM_BY_PERIOD;
+
+ /* */
+ function GET_ATC_DRIVERS
+ (
+ NHLUNITSCARD in number, -- .
+ DDATE in date --
+ ) return varchar2 --
+ is
+ SRESULT PKG_STD.TSTRING; --
+ begin
+ begin
+ select LISTAGG(TMP.DRIVER, '<|>')
+ into SRESULT
+ from (select trim(AG.AGNFAMILYNAME) || ' ' || trim(AG.AGNFIRSTNAME) || ' ' || trim(AG.AGNLASTNAME) DRIVER
+ from HLWAYBILL HLB,
+ HLWAYBILLDRV HLD,
+ CLNPSPFM CPFM,
+ CLNPERSONS PERS,
+ AGNLIST AG
+ where HLB.HLUNITSCARD = NHLUNITSCARD
+ and TRUNC(HLB.FACTDATE_LEAVE) <= TRUNC(DDATE)
+ and TRUNC(HLB.FACTDATE_RETURN) >= TRUNC(DDATE)
+ and HLD.PRN = HLB.RN
+ and CPFM.RN = HLD.CLNPSPFM
+ and PERS.RN = CPFM.PERSRN
+ and AG.RN = PERS.PERS_AGENT
+ group by AG.AGNFAMILYNAME,
+ AG.AGNFIRSTNAME,
+ AG.AGNLASTNAME) TMP;
+ exception
+ when others then
+ SRESULT := null;
+ end;
+ /* */
+ return SRESULT;
+ end GET_ATC_DRIVERS;
+
+ /* */
+ procedure CHART_ATC_INFO
+ (
+ DDATE in date, --
+ SDEPARTMENT in varchar2, --
+ NSTATE in number, -- (null, 0 - , 1 - , -1 - )
+ COUT out clob --
+ )
+ is
+ NCOMPANY PKG_STD.TREF := GET_SESSION_COMPANY(); --
+ RCH PKG_P8PANELS_VISUAL.TCHART; --
+ RCH_DS PKG_P8PANELS_VISUAL.TCHART_DATASET; --
+ RATTR_VALS PKG_P8PANELS_VISUAL.TCHART_DATASET_ITEM_ATTR_VALS; --
+ NDEPARTMENT PKG_STD.TNUMBER; -- .
+ NON_LINE PKG_STD.TNUMBER; --
+ NON_REPAIR PKG_STD.TNUMBER; --
+ NUNDEF PKG_STD.TNUMBER; --
+ DSTATE_DATE PKG_STD.TLDATE; --
+ begin
+ /* . */
+ FIND_SUBDIVS_CODE_EX(NFLAG_SMART => 0,
+ NFLAG_OPTION => 1, --
+ NCOMPANY => NCOMPANY,
+ SCODE => SDEPARTMENT,
+ NRN => NDEPARTMENT);
+ /* */
+ DSTATE_DATE := TRUNC(COALESCE(DDATE, sysdate));
+ /* */
+ begin
+ select COALESCE(sum(case
+ when T.STATE = 0 then
+ 1
+ else
+ 0
+ end),
+ 0) ON_LINE, --
+ COALESCE(sum(case
+ when T.STATE = 1 then
+ 1
+ else
+ 0
+ end),
+ 0) ON_REPAIR, --
+ COALESCE(sum(case
+ when T.STATE = -1 then
+ 1
+ else
+ 0
+ end),
+ 0) UNDEF --
+ into NON_LINE,
+ NON_REPAIR,
+ NUNDEF
+ from (select TMP.STATE
+ from (select UDO_PKG_P8PANELS_HAULER_ANL.GET_ATC_STATE(T.JURPERSONS, T.RN, DSTATE_DATE, 1) STATE
+ from HLUNITSCARD T
+ where T.COMPANY = NCOMPANY
+ and ((NDEPARTMENT is null) or ((NDEPARTMENT is not null) and (T.DEPARTMENT = NDEPARTMENT)))
+ and T.DEPARTMENT in (23218545348, 23218545435, 23218547825, 28176212241, 24286125541, 24597391278, 24984694945, 23254086198)
+ and exists (select null
+ from DICCMRKS TR2,
+ HLTYPE HT
+ where T.DICCMRKS = TR2.RN
+ and TR2.HLTYPE = HT.RN
+ and HT.CODE = SHLTYPE_CEMENTOVOZ)
+ and exists (select null
+ from HLUNITSCARDPART CP,
+ HLUNITSCARD CP_C,
+ DICCMRKS CP_TR2,
+ HLTYPE CP_HT
+ where CP.PRN = T.RN
+ and CP_C.RN = CP.HLUNITSCARD_PART
+ and CP_C.DICCMRKS = CP_TR2.RN
+ and CP_TR2.HLTYPE = CP_HT.RN
+ and CP_HT.CODE in (SHLTYPE_PRICEP, SHLTYPE_POLUPRICEP))) TMP
+ where ((NSTATE is null) or ((NSTATE is not null) and (TMP.STATE = NSTATE)))) T;
+ exception
+ when others then
+ P_EXCEPTION(0, ' .');
+ end;
+ /* */
+ RCH := PKG_P8PANELS_VISUAL.TCHART_MAKE(STYPE => PKG_P8PANELS_VISUAL.SCHART_TYPE_PIE,
+ STITLE => ' ( - ' || TO_CHAR(NON_LINE + NON_REPAIR + NUNDEF) || ')',
+ SLGND_POS => PKG_P8PANELS_VISUAL.SCHART_LGND_POS_RIGHT);
+ /* */
+ RCH_DS := PKG_P8PANELS_VISUAL.TCHART_DATASET_MAKE(SCAPTION => '');
+ /* " " */
+ PKG_P8PANELS_VISUAL.TCHART_ADD_LABEL(RCHART => RCH, SLABEL => ' (' || TO_CHAR(NON_LINE) || ')');
+ /* */
+ 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 => NON_LINE, RATTR_VALS => RATTR_VALS);
+ /* "" */
+ PKG_P8PANELS_VISUAL.TCHART_ADD_LABEL(RCHART => RCH, SLABEL => ' (' || TO_CHAR(NON_REPAIR) || ')');
+ /* */
+ 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 => NON_REPAIR, RATTR_VALS => RATTR_VALS);
+ /* " " */
+ PKG_P8PANELS_VISUAL.TCHART_ADD_LABEL(RCHART => RCH, SLABEL => ' (' || TO_CHAR(NUNDEF) || ')');
+ /* */
+ 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 => NUNDEF, 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_ATC_INFO;
+
+ /* / */
+ procedure CHART_ATC_KTG_KOA
+ (
+ SDEPARTMENT in varchar2, --
+ DDATE_KOA_FROM in date, --
+ DDATE_KOA_TO in date, --
+ DDATE in date, --
+ NSTATE in number, -- (null, 0 - , 1 - , -1 - )
+ COUT out clob --
+ )
+ is
+ NCOMPANY PKG_STD.TREF := GET_SESSION_COMPANY(); --
+ RCH PKG_P8PANELS_VISUAL.TCHART; --
+ RCH_DS_KTG PKG_P8PANELS_VISUAL.TCHART_DATASET; --
+ RCH_DS_KOA PKG_P8PANELS_VISUAL.TCHART_DATASET; --
+ RATTR_VALS PKG_P8PANELS_VISUAL.TCHART_DATASET_ITEM_ATTR_VALS; --
+ NKTG PKG_STD.TSUMM; --
+ NKOA PKG_STD.TSUMM; --
+ NDAYS PKG_STD.TNUMBER; --
+ NACTIVE_ATC PKG_STD.TNUMBER; --
+ NCOUNT_ATC PKG_STD.TNUMBER; --
+ NDEPARTMENT PKG_STD.TNUMBER; -- .
+ DWORK_DATE_FROM PKG_STD.TLDATE; --
+ DWORK_DATE_TO PKG_STD.TLDATE; --
+ DWORK_DATE PKG_STD.TLDATE; --
+
+ /* */
+ procedure MAKE_CHART_ELEMENT
+ (
+ RCH in out nocopy PKG_P8PANELS_VISUAL.TCHART, --
+ RCH_DS_KTG in out nocopy PKG_P8PANELS_VISUAL.TCHART_DATASET, --
+ RCH_DS_KOA in out nocopy PKG_P8PANELS_VISUAL.TCHART_DATASET, --
+ SELEMENT_NAME in varchar2, --
+ NKTG_VALUE in number, --
+ NKOA_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 => 'SCODE',
+ SVALUE => SELEMENT_NAME,
+ 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_KOA, NVALUE => NKOA_VALUE, RATTR_VALS => RATTR_VALS);
+ /* . */
+ PKG_P8PANELS_VISUAL.TCHART_DATASET_ITM_ATTR_VL_ADD(RATTR_VALS => RATTR_VALS,
+ SNAME => 'SCODE',
+ SVALUE => SELEMENT_NAME,
+ 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_KTG, NVALUE => NKTG_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);
+ /* */
+ RCH_DS_KTG := PKG_P8PANELS_VISUAL.TCHART_DATASET_MAKE(SCAPTION => '');
+ /* */
+ RCH_DS_KOA := PKG_P8PANELS_VISUAL.TCHART_DATASET_MAKE(SCAPTION => '');
+ /* . */
+ FIND_SUBDIVS_CODE_EX(NFLAG_SMART => 0,
+ NFLAG_OPTION => 1,
+ NCOMPANY => NCOMPANY,
+ SCODE => SDEPARTMENT,
+ NRN => NDEPARTMENT);
+ /* */
+ DWORK_DATE_FROM := COALESCE(DDATE_KOA_FROM, TRUNC(sysdate));
+ DWORK_DATE_TO := COALESCE(DDATE_KOA_TO, TRUNC(sysdate) + 86399 / 86400);
+ DWORK_DATE := TRUNC(COALESCE(DDATE, sysdate));
+ /* */
+ NDAYS := TRUNC(DWORK_DATE_TO) - TRUNC(DWORK_DATE_FROM) + 1;
+ /* */
+ if (NDEPARTMENT is null) then
+ /* */
+ for REC in (select I.RN,
+ I.CODE
+ from HLUNITSCARD T,
+ INS_DEPARTMENT I
+ where T.COMPANY = NCOMPANY
+ and exists (select null
+ from DICCMRKS TR2,
+ HLTYPE HT
+ where T.DICCMRKS = TR2.RN
+ and TR2.HLTYPE = HT.RN
+ and HT.CODE = SHLTYPE_CEMENTOVOZ)
+ and exists (select null
+ from HLUNITSCARDPART CP,
+ HLUNITSCARD CP_C,
+ DICCMRKS CP_TR2,
+ HLTYPE CP_HT
+ where CP.PRN = T.RN
+ and CP_C.RN = CP.HLUNITSCARD_PART
+ and CP_C.DICCMRKS = CP_TR2.RN
+ and CP_TR2.HLTYPE = CP_HT.RN
+ and CP_HT.CODE in (SHLTYPE_PRICEP, SHLTYPE_POLUPRICEP))
+ and ((NSTATE is null) or ((NSTATE is not null) and
+ (UDO_PKG_P8PANELS_HAULER_ANL.GET_ATC_STATE(T.JURPERSONS, T.RN, DWORK_DATE, 1) = NSTATE)))
+ and I.RN = T.DEPARTMENT
+ and I.RN in (23218545348, 23218545435, 23218547825, 28176212241, 24286125541, 24597391278, 24984694945, 23254086198)
+ group by I.RN, I.CODE)
+ loop
+ /* */
+ NACTIVE_ATC := GET_ATC_ACTIVE_BY_PERIOD(NCOMPANY => NCOMPANY,
+ NDEPARTMENT => REC.RN,
+ DDATE_FROM => DWORK_DATE_FROM,
+ DDATE_TO => DWORK_DATE_TO,
+ DDATE => DWORK_DATE,
+ NSTATE => NSTATE);
+ /* */
+ NCOUNT_ATC := GET_ATC_COUNT_BY_DEP(NCOMPANY => NCOMPANY,
+ NDEPARTMENT => REC.RN,
+ DDATE => DWORK_DATE,
+ NSTATE => NSTATE);
+ /* = 0 */
+ if (NCOUNT_ATC = 0) then
+ /* = 0 */
+ NKTG := 0;
+ else
+ /* */
+ NKTG := NACTIVE_ATC / (NCOUNT_ATC * NDAYS);
+ end if;
+ /* */
+ NKOA := GET_ATC_KOA_SUM_BY_PERIOD(NCOMPANY => NCOMPANY,
+ NDEPARTMENT => REC.RN,
+ DDATE_FROM => DWORK_DATE_FROM,
+ DDATE_TO => DWORK_DATE_TO,
+ DDATE => DWORK_DATE,
+ NSTATE => NSTATE);
+ /* */
+ MAKE_CHART_ELEMENT(RCH => RCH,
+ RCH_DS_KTG => RCH_DS_KTG,
+ RCH_DS_KOA => RCH_DS_KOA,
+ SELEMENT_NAME => REC.CODE,
+ NKTG_VALUE => COALESCE(NKTG, 0),
+ NKOA_VALUE => COALESCE(NKOA, 0));
+ end loop;
+ else
+ /* */
+ NACTIVE_ATC := GET_ATC_ACTIVE_BY_PERIOD(NCOMPANY => NCOMPANY,
+ NDEPARTMENT => NDEPARTMENT,
+ DDATE_FROM => DWORK_DATE_FROM,
+ DDATE_TO => DWORK_DATE_TO,
+ DDATE => DDATE,
+ NSTATE => NSTATE);
+ /* */
+ NCOUNT_ATC := GET_ATC_COUNT_BY_DEP(NCOMPANY => NCOMPANY, NDEPARTMENT => NDEPARTMENT,
+ DDATE => DWORK_DATE,
+ NSTATE => NSTATE);
+ /* = 0 */
+ if (NCOUNT_ATC = 0) then
+ /* = 0 */
+ NKTG := 0;
+ else
+ /* */
+ NKTG := NACTIVE_ATC / (NCOUNT_ATC * NDAYS);
+ end if;
+ /* */
+ NKOA := GET_ATC_KOA_SUM_BY_PERIOD(NCOMPANY => NCOMPANY,
+ NDEPARTMENT => NDEPARTMENT,
+ DDATE_FROM => DWORK_DATE_FROM,
+ DDATE_TO => DWORK_DATE_TO,
+ DDATE => DWORK_DATE,
+ NSTATE => NSTATE);
+ /* */
+ MAKE_CHART_ELEMENT(RCH => RCH,
+ RCH_DS_KTG => RCH_DS_KTG,
+ RCH_DS_KOA => RCH_DS_KOA,
+ SELEMENT_NAME => SDEPARTMENT,
+ NKTG_VALUE => COALESCE(NKTG, 0),
+ NKOA_VALUE => COALESCE(NKOA, 0));
+ end if;
+ /* */
+ PKG_P8PANELS_VISUAL.TCHART_ADD_DATASET(RCHART => RCH, RDATASET => RCH_DS_KTG);
+ /* */
+ PKG_P8PANELS_VISUAL.TCHART_ADD_DATASET(RCHART => RCH, RDATASET => RCH_DS_KOA);
+ /* */
+ COUT := PKG_P8PANELS_VISUAL.TCHART_TO_XML(RCHART => RCH, NINCLUDE_DEF => 1);
+ end CHART_ATC_KTG_KOA;
+
+ /* */
+ procedure DATA_GRID_ATC
+ (
+ NPAGE_NUMBER in number, -- ( NPAGE_SIZE=0)
+ NPAGE_SIZE in number, -- (0 - )
+ CFILTERS in clob, --
+ CORDERS in clob, --
+ NINCLUDE_DEF in number, --
+ SDEPARTMENT in varchar2, --
+ DDATE in date, --
+ DDATE_KOA_FROM in date, --
+ DDATE_KOA_TO in date, --
+ NSTATE in number, -- (null, 0 - , 1 - , -1 - )
+ 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; --
+ NROW_TO PKG_STD.TREF; --
+ CSQL clob; --
+ ICURSOR integer; --
+ NDEPARTMENT PKG_STD.TNUMBER; -- .
+ DWORK_DATE PKG_STD.TLDATE; --
+ DKOA_FROM PKG_STD.TLDATE; -- ()
+ DKOA_TO PKG_STD.TLDATE; -- ()
+ begin
+ /* */
+ RF := PKG_P8PANELS_VISUAL.TDG_FILTERS_FROM_XML(CFILTERS => CFILTERS);
+ /* */
+ RO := PKG_P8PANELS_VISUAL.TDG_ORDERS_FROM_XML(CORDERS => CORDERS);
+ /* */
+ 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 => '. ',
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB,
+ BVISIBLE => false);
+ /* */
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => 'SDICCMRKS_CODE_TG',
+ SCAPTION => ' ',
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_STR,
+ SCOND_FROM => 'EDHLTYPE',
+ BORDER => true,
+ BFILTER => true);
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => 'SSTATE_NUMB_TG',
+ SCAPTION => '. ',
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_STR,
+ SCOND_FROM => 'EDSTATE_NUMBFrom',
+ BORDER => true,
+ BFILTER => true);
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => 'SDICCMRKS_CODE_PC',
+ SCAPTION => ' ',
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_STR,
+ SCOND_FROM => 'EDHLTYPE_PRICEP',
+ BORDER => true,
+ BFILTER => true);
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => 'SSTATE_NUMB_PC',
+ SCAPTION => '. ',
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_STR,
+ SCOND_FROM => 'EDSTATE_NUMBFrom_PRICEP',
+ BORDER => true,
+ BFILTER => true);
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => 'NTONNAGE_NORMAL',
+ SCAPTION => ' ',
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB,
+ BORDER => 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 => 'SDAMTYPE_NAME',
+ SCAPTION => ' ',
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_STR,
+ BORDER => true);
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => 'SEQDAMCTRL_NOTE',
+ SCAPTION => ' ',
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_STR,
+ BORDER => true);
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => 'SDRIVER',
+ SCAPTION => ' ',
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_STR,
+ BORDER => true);
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => 'SREPAIR_DOC',
+ SCAPTION => ' ',
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_STR,
+ BORDER => true);
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => 'NKOA',
+ SCAPTION => ' ',
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB,
+ BORDER => true);
+ /* . */
+ FIND_SUBDIVS_CODE_EX(NFLAG_SMART => 0,
+ NFLAG_OPTION => 1,
+ NCOMPANY => NCOMPANY,
+ SCODE => SDEPARTMENT,
+ NRN => NDEPARTMENT);
+ /* */
+ DWORK_DATE := TRUNC(COALESCE(DDATE, sysdate));
+ /* */
+ DKOA_FROM := COALESCE(DDATE_KOA_FROM, TRUNC(sysdate));
+ DKOA_TO := COALESCE(DDATE_KOA_TO, TRUNC(sysdate) + 86399 / 86400);
+ --DKOA_FROM := TRUNC(COALESCE(DDATE_KOA_FROM, DWORK_DATE));
+ --DKOA_TO := TRUNC(COALESCE(DDATE_KOA_TO, DWORK_DATE));
+ 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 F.NRN,');
+ PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' F.SDICCMRKS_CODE_TG,');
+ PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' F.SSTATE_NUMB_TG,');
+ PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' F.SDICCMRKS_CODE_PC,');
+ PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' F.SSTATE_NUMB_PC,');
+ PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' F.NTONNAGE_NORMAL,');
+ PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' F.NSTATE,');
+ PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' case when F.NSTATE in (1,2) then F.SDAMTYPE_NAME else null end SDAMTYPE_NAME,');
+ PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' case when F.NSTATE in (1,2) then F.SEQDAMCTRL_NOTE else null end SEQDAMCTRL_NOTE,');
+ PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' F.SDRIVER,');
+ PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' case when F.NSTATE = 1 then F.SREPAIR_DOC else null end SREPAIR_DOC,');
+ PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' F.NKOA');
+ PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' from (select TMP.NRN,');
+ PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' TMP.SDICCMRKS_CODE_TG,');
+ PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' TMP.SSTATE_NUMB_TG,');
+ PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' TMP.SDICCMRKS_CODE_PC,');
+ PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' TMP.SSTATE_NUMB_PC,');
+ PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' TMP.NTONNAGE_NORMAL,');
+ --PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' TMP.NSTATE,');
+ PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' ' || PKG_SQL_BUILD.PKG_NAME('UDO_PKG_P8PANELS_HAULER_ANL.GET_ATC_STATE') || '(TMP.NJURPERSONS, TMP.NRN, :DDATE) NSTATE,');
+ PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' D.NAME SDAMTYPE_NAME,');
+ --PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' '''' SDAMTYPE_NAME,');
+ PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' D.NOTE SEQDAMCTRL_NOTE,');
+ PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' D.SREPAIR_DOC SREPAIR_DOC,');
+ --PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' '''' SEQDAMCTRL_NOTE,');
+ --PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' LISTAGG(TMP.SDRIVER, '';'') SDRIVER,');
+ PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => PKG_SQL_BUILD.PKG_NAME('UDO_PKG_P8PANELS_HAULER_ANL.GET_ATC_DRIVERS') || '(TMP.NRN, :DDATE) SDRIVER,');
+ --PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' '''' SREPAIR_DOC,');
+ PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => PKG_SQL_BUILD.PKG_NAME('UDO_PKG_P8PANELS_HAULER_ANL.GET_ATC_KOA_BY_PERIOD') || '(TMP.NJURPERSONS, TMP.NRN, :DKOA_FROM, :DKOA_TO) NKOA');
+ PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' from (select T.RN NRN,');
+ PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' T.JURPERSONS NJURPERSONS,');
+ PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' TR2.CODE SDICCMRKS_CODE_TG,');
+ PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' T.STATE_NUMB SSTATE_NUMB_TG,');
+ PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' CP_TR2.CODE SDICCMRKS_CODE_PC,');
+ PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' CP_C.STATE_NUMB SSTATE_NUMB_PC,');
+ PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' TR2.TONNAGE_NORMAL NTONNAGE_NORMAL');
+ --PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' ' || PKG_SQL_BUILD.PKG_NAME('UDO_PKG_P8PANELS_HAULER_ANL.GET_ATC_STATE') || '(T.JURPERSONS, T.RN, :DDATE) NSTATE,');
+ /*PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' EQ_DAM.NAME SDAMTYPE_NAME,');
+ PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' EQ_DAM.NOTE SEQDAMCTRL_NOTE,');
+ PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' DECODE(RPR.SDOCUMENT,');
+ PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' ' || PKG_SQL_BUILD.NULL_STR() || ',');
+ PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' ' || PKG_SQL_BUILD.NULL_STR() || ',');
+ PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' (RPR.SDOCUMENT || '', '' || RPR.SPLACE_REPAIR)) SREPAIR_DOC');*/
+ PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' from HLUNITSCARD T,');
+ PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' DICCMRKS TR2,');
+ PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' HLTYPE HT,');
+ PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' HLUNITSCARDPART CP,');
+ PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' HLUNITSCARD CP_C,');
+ PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' DICCMRKS CP_TR2,');
+ PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' HLTYPE CP_HT');
+ PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' where T.COMPANY = :NCOMPANY');
+ PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' and ((:NDEPARTMENT is null) or ((:NDEPARTMENT is not null) and (T.DEPARTMENT = :NDEPARTMENT)))');
+ PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' and T.DEPARTMENT in (23218545348, 23218545435, 23218547825, 28176212241, 24286125541, 24597391278, 24984694945, 23254086198)');
+ PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' and T.RN in (select ID from COND_BROKER_IDSMART where IDENT = :NIDENT)');
+ PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' and T.DICCMRKS = TR2.RN');
+ PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' and TR2.HLTYPE = HT.RN');
+ PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' and HT.CODE = :HLTYPE_CEMENTOVOZ');
+ PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' and CP.PRN = T.RN');
+ PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' and CP_C.RN = CP.HLUNITSCARD_PART');
+ PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' and CP_C.DICCMRKS = CP_TR2.RN');
+ PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' and CP_TR2.HLTYPE = CP_HT.RN');
+ PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' and CP_HT.CODE in (:HLTYPE_PRICEP, :HLTYPE_POLUPRICEP)');
+ PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' group by T.RN,');
+ PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' T.JURPERSONS,');
+ PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' TR2.CODE,');
+ PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' T.STATE_NUMB,');
+ PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' CP_TR2.CODE,');
+ PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' CP_C.STATE_NUMB,');
+ PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' TR2.TONNAGE_NORMAL) TMP');
+ PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' left outer join (select DAM.RN,');
+ PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' T_DAM.NAME NAME,');
+ PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' DAM.NOTE NOTE,');
+ PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' LISTAGG(RPR.SDOCUMENT, ''<|>'') SREPAIR_DOC');
+ PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' from EQDAMCTRL DAM');
+ PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' left outer join (select G.RN,');
+ PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' DT.NAME');
+ PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' from EQCONFIGDM G,');
+ PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' EQUIPWORKDAMTYPE DT');
+ PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' where DT.RN = G.DAMTYPE) T_DAM');
+ PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' on DAM.EQUIPWORKDAMTYPE = T_DAM.RN');
+ PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' left outer join (select DL.IN_DOCUMENT,');
+ PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' DECODE(RS.DOCTYPES,');
+ PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' TO_CHAR(NULL),');
+ PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' TO_CHAR(NULL),');
+ PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' (''<'' || TO_CHAR(RS.RN) || ''>'' ||');
+ PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' TRIM(DT.DOCCODE) || '','' || ');
+ PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' TRIM(RS.PREF) || ''-'' || ');
+ PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' TRIM(RS.NUMB) || '','' || ');
+ PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' TO_CHAR(RS.DOCDATE, ''dd/mm/yyyy''))) SDOCUMENT,');
+ PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' case');
+ PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' when (RS.PERFORM_AGN is not null) then');
+ PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' (select AG.AGNNAME from AGNLIST AG where AG.RN = RS.PERFORM_AGN)');
+ PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' when (RS.DEPTPERF is not null) then');
+ PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' (select I.NAME from INS_DEPARTMENT I where I.RN = RS.DEPTPERF)');
+ PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' else');
+ PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' TO_CHAR(NULL)');
+ PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' end SPLACE_REPAIR');
+ PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' from DOCLINKS DL,');
+ PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' EQRPSHEETS RS,');
+ PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' DOCTYPES DT');
+ PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' where DL.IN_UNITCODE = ' || PKG_SQL_BUILD.WRAP_STR('EquipDamageControl'));
+ PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' and DL.OUT_UNITCODE = ' || PKG_SQL_BUILD.WRAP_STR('EquipRepairSheets'));
+ PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' and RS.RN = DL.OUT_DOCUMENT');
+ PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' and DT.RN = RS.DOCTYPES) RPR');
+ PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' on RPR.IN_DOCUMENT = DAM.RN');
+ PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' group by DAM.RN,');
+ PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' T_DAM.NAME,');
+ PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' DAM.NOTE) D');
+ PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' on D.RN = ' || PKG_SQL_BUILD.PKG_NAME('UDO_PKG_P8PANELS_HAULER_ANL.GET_ATC_EQDAMCTRL') || '(TMP.NRN, :DDATE)');
+ PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' ) F');
+ --PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' where ((:NSTATE is null) or ((:NSTATE is not null) and (F.NSTATE = :NSTATE)))');
+ PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' where ((:NSTATE is null) or ((:NSTATE is not null) and (((:NSTATE = 0) and (F.NSTATE in (0, 2))) or (((:NSTATE <> 0) and (F.NSTATE = :NSTATE))))))');
+ PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' %ORDER_BY%) D) R');
+ PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' where R.NROW between :NROW_FROM and :NROW_TO');
+ /*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 F.NRN,');
+ PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' F.SDICCMRKS_CODE_TG,');
+ PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' F.SSTATE_NUMB_TG,');
+ PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' F.SDICCMRKS_CODE_PC,');
+ PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' F.SSTATE_NUMB_PC,');
+ PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' F.NTONNAGE_NORMAL,');
+ PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' F.NSTATE,');
+ PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' case when F.NSTATE = 2 then F.SDAMTYPE_NAME else null end SDAMTYPE_NAME,');
+ PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' case when F.NSTATE = 2 then F.SEQDAMCTRL_NOTE else null end SEQDAMCTRL_NOTE,');
+ PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' F.SDRIVER,');
+ PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' case when F.NSTATE = 1 then F.SREPAIR_DOC else null end SREPAIR_DOC,');
+ PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' F.NKOA');
+ PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' from (select TMP.NRN,');
+ PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' TMP.SDICCMRKS_CODE_TG,');
+ PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' TMP.SSTATE_NUMB_TG,');
+ PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' TMP.SDICCMRKS_CODE_PC,');
+ PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' TMP.SSTATE_NUMB_PC,');
+ PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' TMP.NTONNAGE_NORMAL,');
+ --PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' TMP.NSTATE,');
+ PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' ' || PKG_SQL_BUILD.PKG_NAME('UDO_PKG_P8PANELS_HAULER_ANL.GET_ATC_STATE') || '(TMP.NJURPERSONS, TMP.NRN, :DDATE) NSTATE,');
+ PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' LISTAGG(TMP.SDAMTYPE_NAME, ''<|>'') SDAMTYPE_NAME,');
+ --PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' '''' SDAMTYPE_NAME,');
+ PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' LISTAGG(TMP.SEQDAMCTRL_NOTE, ''<|>'') SEQDAMCTRL_NOTE,');
+ --PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' '''' SEQDAMCTRL_NOTE,');
+ --PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' LISTAGG(TMP.SDRIVER, '';'') SDRIVER,');
+ PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => PKG_SQL_BUILD.PKG_NAME('UDO_PKG_P8PANELS_HAULER_ANL.GET_ATC_DRIVERS') || '(TMP.NRN, :DDATE) SDRIVER,');
+ PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' LISTAGG(TMP.SREPAIR_DOC, ''<|>'') SREPAIR_DOC,');
+ --PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' '''' SREPAIR_DOC,');
+ PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => PKG_SQL_BUILD.PKG_NAME('UDO_PKG_P8PANELS_HAULER_ANL.GET_ATC_KOA_BY_PERIOD') || '(TMP.NJURPERSONS, TMP.NRN, :DKOA_FROM, :DKOA_TO) NKOA');
+ PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' from (select T.RN NRN,');
+ PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' T.JURPERSONS NJURPERSONS,');
+ PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' HT.CODE SDICCMRKS_CODE_TG,');
+ PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' T.STATE_NUMB SSTATE_NUMB_TG,');
+ PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' CP_HT.CODE SDICCMRKS_CODE_PC,');
+ PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' CP_C.STATE_NUMB SSTATE_NUMB_PC,');
+ PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' TR2.TONNAGE_NORMAL NTONNAGE_NORMAL,');
+ --PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' ' || PKG_SQL_BUILD.PKG_NAME('UDO_PKG_P8PANELS_HAULER_ANL.GET_ATC_STATE') || '(T.JURPERSONS, T.RN, :DDATE) NSTATE,');
+ PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' EQ_DAM.NAME SDAMTYPE_NAME,');
+ PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' EQ_DAM.NOTE SEQDAMCTRL_NOTE,');
+ PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' DECODE(RPR.SDOCUMENT,');
+ PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' ' || PKG_SQL_BUILD.NULL_STR() || ',');
+ PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' ' || PKG_SQL_BUILD.NULL_STR() || ',');
+ PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' (RPR.SDOCUMENT || '', '' || RPR.SPLACE_REPAIR)) SREPAIR_DOC');
+ PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' from HLUNITSCARD T');
+ PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' left outer join (select DL.IN_DOCUMENT,');
+ PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' DAM.RN,');
+ PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' T_DAM.NAME,');
+ PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' DAM.NOTE,');
+ PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' row_number() over (partition by DL.IN_DOCUMENT order by DAM.DAMAGE_DATE desc) RNUM');
+ PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' from DOCLINKS DL,');
+ PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' EQDAMCTRL DAM');
+ PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' left outer join (select G.RN,');
+ PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' DT.NAME');
+ PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' from EQCONFIGDM G,');
+ PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' EQUIPWORKDAMTYPE DT');
+ PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' where DT.RN = G.DAMTYPE) T_DAM');
+ PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' on DAM.EQUIPWORKDAMTYPE = T_DAM.RN');
+ PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' where DL.IN_UNITCODE = ' || PKG_SQL_BUILD.WRAP_STR('HaulerUnitsCards'));
+ PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' and DL.OUT_UNITCODE = ' || PKG_SQL_BUILD.WRAP_STR('EquipDamageControl'));
+ PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' and DAM.RN = DL.OUT_DOCUMENT');
+ PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' and TRUNC(DAM.DAMAGE_DATE) <= :DDATE');
+ PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' group by DL.IN_DOCUMENT,');
+ PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' DAM.RN,');
+ PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' T_DAM.NAME,');
+ PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' DAM.NOTE,');
+ PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' DAM.DAMAGE_DATE) EQ_DAM');
+ PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' on T.RN = EQ_DAM.IN_DOCUMENT and EQ_DAM.RNUM = 1');
+ PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' left outer join (select DL.IN_DOCUMENT,');
+ PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' DECODE(RS.DOCTYPES,');
+ PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' ' || PKG_SQL_BUILD.NULL_STR() || ',');
+ PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' ' || PKG_SQL_BUILD.NULL_STR() || ',');
+ PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' (''<'' || TO_CHAR(RS.RN) || ''>'' || ');
+ PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' ' || PKG_SQL_BUILD.TRIM_() || '(DT.DOCCODE) || '','' || ');
+ PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' ' || PKG_SQL_BUILD.TRIM_() || '(RS.PREF) || ''-'' || ');
+ PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' ' || PKG_SQL_BUILD.TRIM_() || '(RS.NUMB) || '','' || ');
+ PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' TO_CHAR(RS.DOCDATE, ''dd/mm/yyyy''))) SDOCUMENT,');
+ PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' case');
+ PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' when (RS.PERFORM_AGN is not null) then');
+ PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' (select AG.AGNNAME from AGNLIST AG where AG.RN = RS.PERFORM_AGN)');
+ PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' when (RS.DEPTPERF is not null) then');
+ PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' (select I.NAME from INS_DEPARTMENT I where I.RN = RS.DEPTPERF)');
+ PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' else');
+ PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' ' || PKG_SQL_BUILD.NULL_STR());
+ PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' end SPLACE_REPAIR');
+ PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' from DOCLINKS DL,');
+ PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' EQRPSHEETS RS,');
+ PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' DOCTYPES DT');
+ PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' where DL.IN_UNITCODE = ' || PKG_SQL_BUILD.WRAP_STR('EquipDamageControl'));
+ PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' and DL.OUT_UNITCODE = ' || PKG_SQL_BUILD.WRAP_STR('EquipRepairSheets'));
+ PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' and RS.RN = DL.OUT_DOCUMENT');
+ PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' and DT.RN = RS.DOCTYPES) RPR');
+ PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' on RPR.IN_DOCUMENT = EQ_DAM.RN,');
+ PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' DICCMRKS TR2,');
+ PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' HLTYPE HT,');
+ PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' HLUNITSCARDPART CP,');
+ PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' HLUNITSCARD CP_C,');
+ PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' DICCMRKS CP_TR2,');
+ PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' HLTYPE CP_HT');
+ PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' where T.COMPANY = :NCOMPANY');
+ PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' and ((:NDEPARTMENT is null) or ((:NDEPARTMENT is not null) and (T.DEPARTMENT = :NDEPARTMENT)))');
+ PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' and T.DEPARTMENT in (23218545348, 23218545435, 23218547825, 28176212241, 24286125541, 24597391278, 24984694945, 23254086198)');
+ PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' and T.RN in (select ID from COND_BROKER_IDSMART where IDENT = :NIDENT)');
+ PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' and T.DICCMRKS = TR2.RN');
+ PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' and TR2.HLTYPE = HT.RN');
+ PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' and HT.CODE = :HLTYPE_CEMENTOVOZ');
+ PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' and CP.PRN = T.RN');
+ PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' and CP_C.RN = CP.HLUNITSCARD_PART');
+ PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' and CP_C.DICCMRKS = CP_TR2.RN');
+ PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' and CP_TR2.HLTYPE = CP_HT.RN');
+ PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' and CP_HT.CODE in (:HLTYPE_PRICEP, :HLTYPE_POLUPRICEP)) TMP');
+ PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' group by TMP.NRN,');
+ PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' TMP.NJURPERSONS,');
+ PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' TMP.SDICCMRKS_CODE_TG,');
+ PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' TMP.SSTATE_NUMB_TG,');
+ PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' TMP.SDICCMRKS_CODE_PC,');
+ PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' TMP.SSTATE_NUMB_PC,');
+ PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' TMP.NTONNAGE_NORMAL) F');
+ --PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' where ((:NSTATE is null) or ((:NSTATE is not null) and (F.NSTATE = :NSTATE)))');
+ PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' where ((:NSTATE is null) or ((:NSTATE is not null) and (((:NSTATE = 0) and (F.NSTATE in (0, 2))) or (((:NSTATE <> 0) and (F.NSTATE = :NSTATE))))))');
+ PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' %ORDER_BY%) D) R');
+ PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' where R.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 => 'HaulerUnitsCards',
+ SPROCEDURE => 'UDO_PKG_P8PANELS_HAULER_ANL.HLUNITSCARD_BASE_COND',
+ RDATA_GRID => RDG,
+ RFILTERS => RF);
+ /* */
+ 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 => 'NDEPARTMENT', NVALUE => NDEPARTMENT);
+ PKG_SQL_DML.BIND_VARIABLE_STR(ICURSOR => ICURSOR, SNAME => 'HLTYPE_CEMENTOVOZ', SVALUE => SHLTYPE_CEMENTOVOZ);
+ PKG_SQL_DML.BIND_VARIABLE_STR(ICURSOR => ICURSOR, SNAME => 'HLTYPE_PRICEP', SVALUE => SHLTYPE_PRICEP);
+ PKG_SQL_DML.BIND_VARIABLE_STR(ICURSOR => ICURSOR, SNAME => 'HLTYPE_POLUPRICEP', SVALUE => SHLTYPE_POLUPRICEP);
+ PKG_SQL_DML.BIND_VARIABLE_DATE(ICURSOR => ICURSOR, SNAME => 'DDATE', DVALUE => DWORK_DATE);
+ PKG_SQL_DML.BIND_VARIABLE_DATE(ICURSOR => ICURSOR, SNAME => 'DKOA_FROM', DVALUE => DKOA_FROM);
+ PKG_SQL_DML.BIND_VARIABLE_DATE(ICURSOR => ICURSOR, SNAME => 'DKOA_TO', DVALUE => DKOA_TO);
+ PKG_SQL_DML.BIND_VARIABLE_NUM(ICURSOR => ICURSOR, SNAME => 'NSTATE', NVALUE => NSTATE);
+ 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_STR(ICURSOR => ICURSOR, IPOSITION => 5);
+ PKG_SQL_DML.DEFINE_COLUMN_NUM(ICURSOR => ICURSOR, IPOSITION => 6);
+ PKG_SQL_DML.DEFINE_COLUMN_NUM(ICURSOR => ICURSOR, IPOSITION => 7);
+ PKG_SQL_DML.DEFINE_COLUMN_STR(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_NUM(ICURSOR => ICURSOR, IPOSITION => 12);
+ PKG_SQL_DML.DEFINE_COLUMN_NUM(ICURSOR => ICURSOR, IPOSITION => 13);
+ /* */
+ 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 => 'SDICCMRKS_CODE_TG',
+ ICURSOR => ICURSOR,
+ NPOSITION => 2);
+ PKG_P8PANELS_VISUAL.TDG_ROW_ADD_CUR_COLS(RROW => RDG_ROW,
+ SNAME => 'SSTATE_NUMB_TG',
+ ICURSOR => ICURSOR,
+ NPOSITION => 3);
+ PKG_P8PANELS_VISUAL.TDG_ROW_ADD_CUR_COLS(RROW => RDG_ROW,
+ SNAME => 'SDICCMRKS_CODE_PC',
+ ICURSOR => ICURSOR,
+ NPOSITION => 4);
+ PKG_P8PANELS_VISUAL.TDG_ROW_ADD_CUR_COLS(RROW => RDG_ROW,
+ SNAME => 'SSTATE_NUMB_PC',
+ ICURSOR => ICURSOR,
+ NPOSITION => 5);
+ PKG_P8PANELS_VISUAL.TDG_ROW_ADD_CUR_COLN(RROW => RDG_ROW,
+ SNAME => 'NTONNAGE_NORMAL',
+ ICURSOR => ICURSOR,
+ NPOSITION => 6);
+ PKG_P8PANELS_VISUAL.TDG_ROW_ADD_CUR_COLN(RROW => RDG_ROW,
+ SNAME => 'NSTATE',
+ ICURSOR => ICURSOR,
+ NPOSITION => 7);
+ PKG_P8PANELS_VISUAL.TDG_ROW_ADD_CUR_COLS(RROW => RDG_ROW,
+ SNAME => 'SDAMTYPE_NAME',
+ ICURSOR => ICURSOR,
+ NPOSITION => 8);
+ PKG_P8PANELS_VISUAL.TDG_ROW_ADD_CUR_COLS(RROW => RDG_ROW,
+ SNAME => 'SEQDAMCTRL_NOTE',
+ ICURSOR => ICURSOR,
+ NPOSITION => 9);
+ PKG_P8PANELS_VISUAL.TDG_ROW_ADD_CUR_COLS(RROW => RDG_ROW,
+ SNAME => 'SDRIVER',
+ ICURSOR => ICURSOR,
+ NPOSITION => 10);
+ PKG_P8PANELS_VISUAL.TDG_ROW_ADD_CUR_COLS(RROW => RDG_ROW,
+ SNAME => 'SREPAIR_DOC',
+ ICURSOR => ICURSOR,
+ NPOSITION => 11);
+ PKG_P8PANELS_VISUAL.TDG_ROW_ADD_CUR_COLN(RROW => RDG_ROW,
+ SNAME => 'NKOA',
+ ICURSOR => ICURSOR,
+ NPOSITION => 12);
+ /* */
+ 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_ATC;
+
+ /* */
+ procedure HLUNITSCARD_BASE_COND
+ is
+ SSTATE_NUMB PKG_STD.TSTRING; -- .
+ SSTATE_NUMB_PRICEP PKG_STD.TSTRING; -- .
+ SCLAUSE PKG_STD.TSTRING; -- .
+ begin
+ /* */
+ PKG_COND_BROKER.SET_TABLE( 'HLUNITSCARD' );
+ --
+ PKG_COND_BROKER.SET_GROUP( 'PART','HLUNITSCARDPART','PRN','RN' );
+ --
+ PKG_COND_BROKER.SET_GROUP('PART_CARD', 'HLUNITSCARD', 'RN', 'PART', 'HLUNITSCARD_PART');
+
+ /* */
+ -- //
+ PKG_COND_BROKER.ADD_CONDITION_CODE( 'CODE','EDHLTYPE','DICCMRKS <- RN;DICCMRKS;HLTYPE <- RN;HLTYPE' );
+ -- .
+ if (PKG_COND_BROKER.CONDITION_EXISTS('EDSTATE_NUMBFrom') = 1) then
+ /* */
+ SSTATE_NUMB := PKG_COND_BROKER.GET_CONDITION_STR('EDSTATE_NUMBFrom');
+ /* . */
+ SCLAUSE := 'T.STATE_NUMB like ''' || SSTATE_NUMB || '%''';
+ /* */
+ PKG_COND_BROKER.ADD_CLAUSE(SCLAUSE);
+ end if;
+
+ /* */
+ -- //
+ PKG_COND_BROKER.ADD_GROUP_CONDITION_CODE('PART_CARD', 'CODE', 'EDHLTYPE_PRICEP','DICCMRKS <- RN;DICCMRKS;HLTYPE <- RN;HLTYPE' );
+ -- .
+ if (PKG_COND_BROKER.CONDITION_EXISTS('EDSTATE_NUMBFrom_PRICEP') = 1) then
+ /* */
+ SSTATE_NUMB_PRICEP := PKG_COND_BROKER.GET_CONDITION_STR('EDSTATE_NUMBFrom_PRICEP');
+ /* . */
+ SCLAUSE := 'STATE_NUMB like ''' || SSTATE_NUMB_PRICEP || '%''';
+ /* */
+ PKG_COND_BROKER.ADD_GROUP_CLAUSE('PART_CARD', SCLAUSE);
+ end if;
+ end HLUNITSCARD_BASE_COND;
+
+end UDO_PKG_P8PANELS_HAULER_ANL;
+/
diff --git a/db/UDO_PKG_P8PANELS_RPR_ANL.pck b/db/UDO_PKG_P8PANELS_RPR_ANL.pck
new file mode 100644
index 0000000..52687d8
--- /dev/null
+++ b/db/UDO_PKG_P8PANELS_RPR_ANL.pck
@@ -0,0 +1,881 @@
+create or replace package UDO_PKG_P8PANELS_RPR_ANL as
+
+ /* */
+ procedure GET_INS_DEPARTMENT_NAME
+ (
+ SCODE in varchar2, --
+ SNAME out varchar2 --
+ );
+
+ /* */
+ 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, -- ( NPAGE_SIZE=0)
+ NPAGE_SIZE in number, -- (0 - )
+ CFILTERS in clob, --
+ CORDERS in clob, --
+ NINCLUDE_DEF in number, --
+ COUT out clob --
+ );
+
+ /* */
+ 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 --
+ )
+ 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 := ' ';
+ end;
+ end GET_INS_DEPARTMENT_NAME;
+
+ /* */
+ procedure PARAMS_JOINS
+ (
+ NCOMPANY in number, -- .
+ SINS_DEPARTMENT in varchar2, --
+ SEQTYPEWRK in varchar2, --
+ SEQWRKKIND in varchar2, --
+ NDEPTCUSTOMER out number, -- . -
+ NTYPEWRK out number, -- .
+ NEQWRKKIND out number -- .
+ )
+ is
+ begin
+ /* . - */
+ FIND_SUBDIVS_CODE_EX(NFLAG_SMART => 0,
+ NFLAG_OPTION => 1,
+ NCOMPANY => NCOMPANY,
+ SCODE => SINS_DEPARTMENT,
+ NRN => NDEPTCUSTOMER);
+ /* . */
+ FIND_EQTYPEWRK_CODE(NFLAG_SMART => 0,
+ NFLAG_OPTION => 1,
+ NCOMPANY => NCOMPANY,
+ SCODE => SEQTYPEWRK,
+ NRN => NTYPEWRK);
+ /* . */
+ 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, -- .
+ 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();
+ /* - */
+ 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);
+ /* - */
+ 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);
+
+ /* - */
+ 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; --
+ 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 => '',
+ SLGND_POS => PKG_P8PANELS_VISUAL.SCHART_LGND_POS_RIGHT);
+ /* */
+ RCH_DS := 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.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 => ' (' || 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; --
+ RCH_DS_LABOR PKG_P8PANELS_VISUAL.TCHART_DATASET; --
+ RATTR_VALS PKG_P8PANELS_VISUAL.TCHART_DATASET_ITEM_ATTR_VALS; --
+ NINTERNAL_MTR PKG_STD.TLNUMBER; -- ()
+ NINTERNAL_LABOR PKG_STD.TLNUMBER; -- ()
+ NEXTERNAL_MTR PKG_STD.TLNUMBER; -- ()
+ 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, --
+ RCH_DS_LABOR in out nocopy PKG_P8PANELS_VISUAL.TCHART_DATASET, --
+ SELEMENT_NAME in varchar2, --
+ NTYPE in number, --
+ NMTR_VALUE in number, --
+ 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);
+ /* */
+ RCH_DS_MTR := PKG_P8PANELS_VISUAL.TCHART_DATASET_MAKE(SCAPTION => ' ');
+ /* */
+ 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*/
+ /* */
+ 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, -- ( NPAGE_SIZE=0)
+ NPAGE_SIZE in number, -- (0 - )
+ CFILTERS in clob, --
+ CORDERS in clob, --
+ NINCLUDE_DEF in number, --
+ 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; --
+ NROW_TO PKG_STD.TREF; --
+ CSQL clob; --
+ ICURSOR integer; --
+ begin
+ /* */
+ RF := PKG_P8PANELS_VISUAL.TDG_FILTERS_FROM_XML(CFILTERS => CFILTERS);
+ /* */
+ RO := PKG_P8PANELS_VISUAL.TDG_ORDERS_FROM_XML(CORDERS => CORDERS);
+ /* */
+ 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 => '. ',
+ 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 => ' ',
+ 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 => ' ',
+ 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 => ' ',
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_STR,
+ BORDER => true);
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => 'SDEPTCUSTOMER_NAME',
+ SCAPTION => ' ',
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_STR,
+ BORDER => true);
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => 'SDEPTPERF_CODE',
+ SCAPTION => ' ',
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_STR,
+ BORDER => true);
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => 'SDEPTPERF_NAME',
+ SCAPTION => ' ',
+ 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 => ' ',
+ 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 => ' ()',
+ 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);
+ /* */
+ 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;
+
+ /* */
+ 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' );
+
+ /* */
+ -- //
+ PKG_COND_BROKER.ADD_CONDITION_CODE( 'DOCCODE','EDDOCTYPE','DOCTYPES <- RN;DOCTYPES' );
+ -- //
+ 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;
+ -- //
+ 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;
+ -- // ..
+ 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
+ /* " ", "" */
+ 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;
+
+ /* */
+ -- /, /-
+ PKG_COND_BROKER.ADD_CONDITION_CODE( 'CODE','CUSTOMERDEPTEDIT','DEPTCUSTOMER <- RN;INS_DEPARTMENT' );
+ -- / / ..
+ 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;
+/
diff --git a/db/UDO_PKG_P8PANELS_USETTINGS.pck b/db/UDO_PKG_P8PANELS_USETTINGS.pck
new file mode 100644
index 0000000..e9d2654
--- /dev/null
+++ b/db/UDO_PKG_P8PANELS_USETTINGS.pck
@@ -0,0 +1,233 @@
+create or replace package UDO_PKG_P8PANELS_USETTINGS as
+
+ /* */
+ procedure SETTINGS_SET
+ (
+ SPANEL in varchar2, --
+ CSETTINGS in clob --
+ );
+
+ /* */
+ procedure SETTINGS_GET
+ (
+ SPANEL in varchar2, --
+ COUT out clob --
+ );
+
+end UDO_PKG_P8PANELS_USETTINGS;
+/
+create or replace package body UDO_PKG_P8PANELS_USETTINGS as
+
+ /* - */
+ XRQ_SETTINGS constant PKG_STD.TSTRING := 'XSETTINGS'; --
+
+ /* */
+ procedure P8PANELS_USETTING_INSERT
+ (
+ NCOMPANY in number, -- .
+ SAUTHID in varchar2, --
+ SPANEL in varchar2, --
+ CPANEL_SETTINGS in clob, --
+ NRN out number -- .
+ )
+ is
+ begin
+ /* */
+ NRN := GEN_IDENT();
+ /* */
+ insert into UDO_P8PANELS_USETTING
+ (RN, COMPANY, authid, PANEL, PANEL_SETTINGS)
+ values
+ (NRN, NCOMPANY, SAUTHID, SPANEL, CPANEL_SETTINGS);
+ end P8PANELS_USETTING_INSERT;
+
+ /* */
+ procedure P8PANELS_USETTING_UPDATE
+ (
+ NRN in number, -- .
+ NCOMPANY in number, -- .
+ SAUTHID in varchar2, --
+ SPANEL in varchar2, --
+ CPANEL_SETTINGS in clob --
+ )
+ is
+ begin
+ /* */
+ update UDO_P8PANELS_USETTING T
+ set T.AUTHID = SAUTHID,
+ T.PANEL = SPANEL,
+ T.PANEL_SETTINGS = CPANEL_SETTINGS
+ where T.RN = NRN
+ and T.COMPANY = NCOMPANY;
+ if (sql%notfound) then
+ P_EXCEPTION(0,
+ ' . "%s" .',
+ TO_CHAR(NRN));
+ end if;
+ end P8PANELS_USETTING_UPDATE;
+
+ /* */
+ procedure P8PANELS_USETTING_DELETE
+ (
+ NRN in number, -- .
+ NCOMPANY in number -- .
+ )
+ is
+ begin
+ /* */
+ delete from UDO_P8PANELS_USETTING
+ where RN = NRN
+ and COMPANY = NCOMPANY;
+
+ if (sql%notfound) then
+ P_EXCEPTION(0,
+ ' . "%s" .',
+ TO_CHAR(NRN));
+ end if;
+ end P8PANELS_USETTING_DELETE;
+
+ /* */
+ function P8PANELS_USETTING_GET
+ (
+ NFLAG_SMART in number, --
+ NRN in number, -- .
+ NCOMPANY in number -- .
+ ) return UDO_P8PANELS_USETTING%rowtype --
+ is
+ RRESULT UDO_P8PANELS_USETTING%rowtype; --
+ begin
+ /* */
+ begin
+ select T.*
+ into RRESULT
+ from UDO_P8PANELS_USETTING T
+ where T.RN = NRN
+ and T.COMPANY = NCOMPANY;
+ exception
+ when NO_DATA_FOUND then
+ P_EXCEPTION(NFLAG_SMART, ' . "%s".');
+ end;
+ /* */
+ return RRESULT;
+ end P8PANELS_USETTING_GET;
+
+ /* . */
+ procedure P8PANELS_USETTING_FIND
+ (
+ NFLAG_SMART in number, -- (0 - , 1 - )
+ NCOMPANY in number, -- .
+ SAUTHID in varchar2, --
+ SPANEL in varchar2, --
+ NRN out number -- .
+ )
+ is
+ begin
+ /* */
+ if (RTRIM(SPANEL) is null) then
+ /* */
+ P_EXCEPTION(NFLAG_SMART, ' .');
+ /* */
+ return;
+ end if;
+ /* */
+ if (RTRIM(SAUTHID) is null) then
+ /* */
+ P_EXCEPTION(NFLAG_SMART, ' .');
+ /* */
+ return;
+ end if;
+ /* */
+ begin
+ select T.RN
+ into NRN
+ from UDO_P8PANELS_USETTING T
+ where T.PANEL = SPANEL
+ and T.AUTHID = SAUTHID
+ and T.COMPANY = NCOMPANY;
+ exception
+ when NO_DATA_FOUND then
+ P_EXCEPTION(NFLAG_SMART,
+ ' "%s" .',
+ SPANEL);
+ end;
+ end P8PANELS_USETTING_FIND;
+
+ /* */
+ procedure SETTINGS_SET
+ (
+ SPANEL in varchar2, --
+ CSETTINGS in clob --
+ )
+ is
+ NUDO_P8PANELS_USETTING PKG_STD.TREF; -- .
+ NCOMPANY PKG_STD.TREF := GET_SESSION_COMPANY(); --
+ SAUTHID PKG_STD.TSTRING := UTILIZER(); --
+ CDATA clob; --
+ begin
+ /* */
+ if (RTRIM(SPANEL) is null) then
+ P_EXCEPTION(0,
+ ' .');
+ end if;
+ /* */
+ CDATA := '<' || XRQ_SETTINGS || '>' ||
+ BLOB2CLOB(LBDATA => BASE64_DECODE(LCSRCE => CSETTINGS), SCHARSET => PKG_CHARSET.CHARSET_UTF_()) || '' ||
+ XRQ_SETTINGS || '>';
+ /* */
+ P8PANELS_USETTING_FIND(NFLAG_SMART => 1,
+ NCOMPANY => NCOMPANY,
+ SAUTHID => SAUTHID,
+ SPANEL => SPANEL,
+ NRN => NUDO_P8PANELS_USETTING);
+ /* */
+ if (NUDO_P8PANELS_USETTING is not null) then
+ /* */
+ P8PANELS_USETTING_UPDATE(NRN => NUDO_P8PANELS_USETTING,
+ NCOMPANY => NCOMPANY,
+ SAUTHID => SAUTHID,
+ SPANEL => SPANEL,
+ CPANEL_SETTINGS => CDATA);
+ else
+ /* */
+ P8PANELS_USETTING_INSERT(NCOMPANY => NCOMPANY,
+ SAUTHID => SAUTHID,
+ SPANEL => SPANEL,
+ CPANEL_SETTINGS => CDATA,
+ NRN => NUDO_P8PANELS_USETTING);
+ end if;
+ end SETTINGS_SET;
+
+ /* */
+ procedure SETTINGS_GET
+ (
+ SPANEL in varchar2, --
+ COUT out clob --
+ )
+ is
+ NCOMPANY PKG_STD.TREF := GET_SESSION_COMPANY(); --
+ SAUTHID PKG_STD.TSTRING := UTILIZER(); --
+ NUDO_P8PANELS_USETTING PKG_STD.TREF; -- .
+ RUDO_P8PANELS_USETTING UDO_P8PANELS_USETTING%rowtype; --
+ begin
+ /* */
+ P8PANELS_USETTING_FIND(NFLAG_SMART => 1,
+ NCOMPANY => NCOMPANY,
+ SAUTHID => SAUTHID,
+ SPANEL => SPANEL,
+ NRN => NUDO_P8PANELS_USETTING);
+ /* */
+ if (NUDO_P8PANELS_USETTING is not null) then
+ /* */
+ RUDO_P8PANELS_USETTING := P8PANELS_USETTING_GET(NFLAG_SMART => 1,
+ NRN => NUDO_P8PANELS_USETTING,
+ NCOMPANY => NCOMPANY);
+ /* */
+ COUT := RUDO_P8PANELS_USETTING.PANEL_SETTINGS;
+ else
+ /* */
+ COUT := '';
+ end if;
+ end SETTINGS_GET;
+
+end UDO_PKG_P8PANELS_USETTINGS;
+/
diff --git a/db/grants.sql b/db/grants.sql
new file mode 100644
index 0000000..924d063
--- /dev/null
+++ b/db/grants.sql
@@ -0,0 +1,4 @@
+grant select on UDO_P8PANELS_USETTING to public;
+grant execute on UDO_PKG_P8PANELS_USETTINGS to public;
+grant execute on UDO_PKG_P8PANELS_HAULER_ANL to public;
+grant execute on UDO_PKG_P8PANELS_RPR_ANL to public;
\ No newline at end of file
diff --git a/p8-panels.js b/p8-panels.js
index ff7d56b..25c32f0 100644
--- a/p8-panels.js
+++ b/p8-panels.js
@@ -214,7 +214,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ P8PChart: () => (/* binding */ P8PChart),\n/* harmony export */ P8P_CHART_TYPE: () => (/* binding */ P8P_CHART_TYPE)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var chart_js_auto__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! chart.js/auto */ \"./node_modules/chart.js/auto/auto.js\");\n/*\n Парус 8 - Панели мониторинга\n Компонент: График\n*/\n\n//---------------------\n//Подключение библиотек\n//---------------------\n\n //Классы React\n //Контроль свойств компонента\n //Диаграммы и графики\n\n//---------\n//Константы\n//---------\n\n//Виды графиков\nconst P8P_CHART_TYPE = {\n BAR: \"bar\",\n LINE: \"line\",\n PIE: \"pie\",\n DOUGHNUT: \"doughnut\"\n};\n\n//Структура элемента набора данных\nconst P8P_CHART_DATASET_SHAPE = prop_types__WEBPACK_IMPORTED_MODULE_2___default().shape({\n label: (prop_types__WEBPACK_IMPORTED_MODULE_2___default().string).isRequired,\n borderColor: prop_types__WEBPACK_IMPORTED_MODULE_2___default().oneOfType([(prop_types__WEBPACK_IMPORTED_MODULE_2___default().string), prop_types__WEBPACK_IMPORTED_MODULE_2___default().arrayOf((prop_types__WEBPACK_IMPORTED_MODULE_2___default().string))]),\n backgroundColor: prop_types__WEBPACK_IMPORTED_MODULE_2___default().oneOfType([(prop_types__WEBPACK_IMPORTED_MODULE_2___default().string), prop_types__WEBPACK_IMPORTED_MODULE_2___default().arrayOf((prop_types__WEBPACK_IMPORTED_MODULE_2___default().string))]),\n data: prop_types__WEBPACK_IMPORTED_MODULE_2___default().arrayOf((prop_types__WEBPACK_IMPORTED_MODULE_2___default().number)),\n items: prop_types__WEBPACK_IMPORTED_MODULE_2___default().arrayOf((prop_types__WEBPACK_IMPORTED_MODULE_2___default().object))\n});\n\n//-----------\n//Тело модуля\n//-----------\n\n//График\nconst P8PChart = ({\n type,\n title,\n legendPosition,\n options = {},\n labels = [],\n datasets = [],\n onClick,\n style\n}) => {\n //Ссылки на DOM\n const chartCanvasRef = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(null);\n const chartRef = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(null);\n\n //Обработка нажатия на элемент графика\n const handleClick = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(e => {\n const bar = chartRef.current.getElementsAtEventForMode(e, \"nearest\", {\n intersect: true\n }, true)[0];\n if (onClick && bar) onClick({\n datasetIndex: bar.datasetIndex,\n itemIndex: bar.index,\n item: chartRef.current.data.datasets[bar.datasetIndex].items ? chartRef.current.data.datasets[bar.datasetIndex].items[bar.index] : null\n });\n }, [onClick]);\n\n //При подключении к старнице\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {\n if (!chartRef.current) {\n const ctx = chartCanvasRef.current.getContext(\"2d\");\n chartRef.current = new chart_js_auto__WEBPACK_IMPORTED_MODULE_1__[\"default\"](ctx, {\n type,\n data: {\n labels: [...labels],\n datasets: [...datasets]\n },\n options: {\n ...options,\n labels: {\n render: \"label\"\n },\n ...{\n responsive: true,\n plugins: {\n legend: {\n display: legendPosition ? true : false,\n position: legendPosition,\n usePointStyle: true\n },\n title: {\n display: title ? true : false,\n text: title\n }\n }\n },\n onClick: handleClick\n }\n });\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n //При обновлении данных\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {\n if (chartRef.current) {\n chartRef.current.data.labels = [...labels];\n chartRef.current.data.datasets = [...datasets];\n chartRef.current.options.onClick = handleClick;\n chartRef.current.update();\n }\n }, [datasets, labels, handleClick]);\n\n //Генерация содержимого\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", {\n style: {\n ...style\n }\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"canvas\", {\n ref: chartCanvasRef\n }));\n};\n\n//Контроль свойств - График\nP8PChart.propTypes = {\n type: (prop_types__WEBPACK_IMPORTED_MODULE_2___default().string).isRequired,\n title: (prop_types__WEBPACK_IMPORTED_MODULE_2___default().string),\n legendPosition: (prop_types__WEBPACK_IMPORTED_MODULE_2___default().string),\n options: (prop_types__WEBPACK_IMPORTED_MODULE_2___default().object),\n labels: prop_types__WEBPACK_IMPORTED_MODULE_2___default().arrayOf((prop_types__WEBPACK_IMPORTED_MODULE_2___default().string)),\n datasets: prop_types__WEBPACK_IMPORTED_MODULE_2___default().arrayOf(P8P_CHART_DATASET_SHAPE),\n onClick: (prop_types__WEBPACK_IMPORTED_MODULE_2___default().func),\n style: (prop_types__WEBPACK_IMPORTED_MODULE_2___default().object)\n};\n\n//----------------\n//Интерфейс модуля\n//----------------\n\n\n\n//# sourceURL=webpack://parus_8_panels_plugin/./app/components/p8p_chart.js?");
+eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ P8PChart: () => (/* binding */ P8PChart),\n/* harmony export */ P8P_CHART_TYPE: () => (/* binding */ P8P_CHART_TYPE)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var chart_js_auto__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! chart.js/auto */ \"./node_modules/chart.js/auto/auto.js\");\n/*\n Парус 8 - Панели мониторинга\n Компонент: График\n*/\n\n//---------------------\n//Подключение библиотек\n//---------------------\n\n //Классы React\n //Контроль свойств компонента\n //Диаграммы и графики\n\n//---------\n//Константы\n//---------\n\n//Виды графиков\nconst P8P_CHART_TYPE = {\n BAR: \"bar\",\n LINE: \"line\",\n PIE: \"pie\",\n DOUGHNUT: \"doughnut\"\n};\n\n//Структура элемента набора данных\nconst P8P_CHART_DATASET_SHAPE = prop_types__WEBPACK_IMPORTED_MODULE_2___default().shape({\n label: (prop_types__WEBPACK_IMPORTED_MODULE_2___default().string).isRequired,\n borderColor: prop_types__WEBPACK_IMPORTED_MODULE_2___default().oneOfType([(prop_types__WEBPACK_IMPORTED_MODULE_2___default().string), prop_types__WEBPACK_IMPORTED_MODULE_2___default().arrayOf((prop_types__WEBPACK_IMPORTED_MODULE_2___default().string))]),\n backgroundColor: prop_types__WEBPACK_IMPORTED_MODULE_2___default().oneOfType([(prop_types__WEBPACK_IMPORTED_MODULE_2___default().string), prop_types__WEBPACK_IMPORTED_MODULE_2___default().arrayOf((prop_types__WEBPACK_IMPORTED_MODULE_2___default().string))]),\n data: prop_types__WEBPACK_IMPORTED_MODULE_2___default().arrayOf((prop_types__WEBPACK_IMPORTED_MODULE_2___default().number)),\n items: prop_types__WEBPACK_IMPORTED_MODULE_2___default().arrayOf((prop_types__WEBPACK_IMPORTED_MODULE_2___default().object))\n});\n\n//-----------\n//Тело модуля\n//-----------\n\n//График\nconst P8PChart = ({\n type,\n title,\n legendPosition,\n options = {},\n labels = [],\n datasets = [],\n onClick,\n style\n}) => {\n //Ссылки на DOM\n const chartCanvasRef = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(null);\n const chartRef = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(null);\n\n //Обработка нажатия на элемент графика\n const handleClick = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(e => {\n const bar = chartRef.current.getElementsAtEventForMode(e, \"nearest\", {\n intersect: true\n }, true)[0];\n if (onClick && bar) onClick({\n datasetIndex: bar.datasetIndex,\n itemIndex: bar.index,\n item: chartRef.current.data.datasets[bar.datasetIndex].items ? chartRef.current.data.datasets[bar.datasetIndex].items[bar.index] : null\n });\n }, [onClick]);\n\n //При подключении к старнице\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {\n if (!chartRef.current) {\n const ctx = chartCanvasRef.current.getContext(\"2d\");\n chartRef.current = new chart_js_auto__WEBPACK_IMPORTED_MODULE_1__[\"default\"](ctx, {\n type,\n data: {\n labels: [...labels],\n datasets: [...datasets]\n },\n options: {\n ...options,\n labels: {\n render: \"label\"\n },\n ...{\n responsive: true,\n plugins: {\n legend: {\n display: legendPosition ? true : false,\n position: legendPosition,\n usePointStyle: true\n },\n title: {\n display: title ? true : false,\n text: title\n }\n }\n },\n onClick: handleClick\n }\n });\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n //При обновлении данных\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {\n if (chartRef.current) {\n chartRef.current.data.labels = [...labels];\n chartRef.current.data.datasets = [...datasets];\n chartRef.current.options.onClick = handleClick;\n //chartRef.current.options.plugins.title.text = title;\n chartRef.current.update();\n }\n }, [datasets, labels, handleClick]);\n //}, [title, datasets, labels, handleClick]);\n\n //Генерация содержимого\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", {\n style: {\n ...style\n }\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"canvas\", {\n ref: chartCanvasRef\n }));\n};\n\n//Контроль свойств - График\nP8PChart.propTypes = {\n type: (prop_types__WEBPACK_IMPORTED_MODULE_2___default().string).isRequired,\n title: (prop_types__WEBPACK_IMPORTED_MODULE_2___default().string),\n legendPosition: (prop_types__WEBPACK_IMPORTED_MODULE_2___default().string),\n options: (prop_types__WEBPACK_IMPORTED_MODULE_2___default().object),\n labels: prop_types__WEBPACK_IMPORTED_MODULE_2___default().arrayOf((prop_types__WEBPACK_IMPORTED_MODULE_2___default().string)),\n datasets: prop_types__WEBPACK_IMPORTED_MODULE_2___default().arrayOf(P8P_CHART_DATASET_SHAPE),\n onClick: (prop_types__WEBPACK_IMPORTED_MODULE_2___default().func),\n style: (prop_types__WEBPACK_IMPORTED_MODULE_2___default().object)\n};\n\n//----------------\n//Интерфейс модуля\n//----------------\n\n\n\n//# sourceURL=webpack://parus_8_panels_plugin/./app/components/p8p_chart.js?");
/***/ }),
@@ -829,7 +829,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ FilterDialog: () => (/* binding */ FilterDialog)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_13___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_13__);\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/Dialog/Dialog.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/DialogTitle/DialogTitle.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/IconButton/IconButton.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/Icon/Icon.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/DialogContent/DialogContent.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/Box/Box.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/TextField/TextField.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/InputAdornment/InputAdornment.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/DialogActions/DialogActions.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/Button/Button.js\");\n/* harmony import */ var _hooks_dict_hooks__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./hooks/dict_hooks */ \"./app/panels/hauler_anl/hooks/dict_hooks.js\");\n/* harmony import */ var _core_utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../core/utils */ \"./app/core/utils.js\");\n/*\r\n Парус 8 - Панели мониторинга - ТОиР - Гаражка\r\n Компонент: Диалоговое окно фильтра отбора\r\n*/\n\n//---------------------\n//Подключение библиотек\n//---------------------\n\n //Классы React\n //Контроль свойств компонента\n //Интерфейсные компоненты\n //Хуки открытий разделов\n //Вспомогательные функции\n\n//---------\n//Константы\n//---------\n\n//Стили\nconst STYLES = {\n DIALOG_ACTIONS: {\n justifyContent: \"flex-end\"\n },\n CLOSE_BUTTON: {\n position: \"absolute\",\n right: 8,\n top: 8,\n color: theme => theme.palette.grey[500]\n },\n BOX_WITH_LEGEND: {\n border: \"1px solid #939393\",\n marginBottom: \"1px\"\n },\n LEGEND: {\n textAlign: \"left\"\n }\n};\n\n//--------------------------\n//Вспомогательные компоненты\n//--------------------------\n\n//Проверка возможности выполнения действия\nconst isActionAllow = (filter, isFiltersInit = false) => {\n //Если указана \"На дату\", а также это не инициализация\n return (0,_core_utils__WEBPACK_IMPORTED_MODULE_2__.hasValue)(filter.dDate) && !isFiltersInit;\n};\n\n//---------------\n//Тело компонента\n//---------------\n\n//Диалоговое окно фильтра отбора\nconst FilterDialog = ({\n initial,\n isFiltersInit,\n onCancel,\n onOk\n}) => {\n //Собственное состояние\n const [filter, setFilter] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)({\n ...initial\n });\n\n //Вспомогательные функции открытия раздела\n const {\n handleInsDepartmentOpen\n } = (0,_hooks_dict_hooks__WEBPACK_IMPORTED_MODULE_1__.useDictionary)();\n\n //Вспомогательные функции\n const {\n handleInsDepartmentNameGet\n } = (0,_hooks_dict_hooks__WEBPACK_IMPORTED_MODULE_1__.useProcedures)();\n\n //Отработка воода значения в фильтр\n const handleValueChanged = e => {\n setFilter(pv => ({\n ...pv,\n [e.target.name]: e.target.value,\n ...(e.target.name === \"sCustomerDept\" ? {\n sCustomerDeptName: \"\"\n } : {})\n }));\n };\n\n //При изменении каталога фильтра\n const handleCustomerDeptSelect = () => handleInsDepartmentOpen({\n sCode: filter.sCustomerDept,\n callBack: res => {\n setFilter(pv => ({\n ...pv,\n sCustomerDept: res.outParameters.out_CODE,\n sCustomerDeptName: res.outParameters.out_NAME\n }));\n }\n });\n\n //При загрузке текущей даты\n const handleLoadCurrentDate = () => {\n //Определяем текущую дату\n const currentDate = (0,_core_utils__WEBPACK_IMPORTED_MODULE_2__.formatDateJSONDateOnly)(new Date());\n //Устанавливаем\n setFilter(pv => ({\n ...pv,\n dDate: currentDate\n }));\n };\n\n //При очистке фильтра\n const handleClear = () => {\n setFilter({\n dDate: \"\",\n sCustomerDept: \"\",\n sCustomerDeptName: \"\",\n dDateKOAFrom: \"\",\n dDateKOATo: \"\"\n });\n };\n\n //При закрытии диалога без изменения фильтра\n const handleCancel = () => isActionAllow(initial, isFiltersInit) ? onCancel && onCancel() : null;\n\n //При закрытии диалога с изменением фильтра\n const handleOK = async () => {\n let filterRes = {\n ...filter\n };\n //Если наименование подразделения пустое\n if (!filterRes.sCustomerDeptName) {\n //Если мнемокоды подразделений совпадают\n filterRes.sCustomerDeptName = filterRes.sCustomerDept === initial.sCustomerDept ? initial.sCustomerDeptName : await handleInsDepartmentNameGet({\n code: filterRes.sCustomerDept\n });\n }\n isActionAllow(filterRes) && onOk ? onOk(filterRes) : null;\n };\n\n //Генерация содержимого\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_3__[\"default\"], {\n open: true,\n onClose: handleCancel,\n fullWidth: true,\n maxWidth: \"sm\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_4__[\"default\"], null, \"\\u0424\\u0438\\u043B\\u044C\\u0442\\u0440 \\u043E\\u0442\\u0431\\u043E\\u0440\\u0430\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_5__[\"default\"], {\n \"aria-label\": \"close\",\n onClick: handleCancel,\n sx: STYLES.CLOSE_BUTTON\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_6__[\"default\"], null, \"close\")), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_7__[\"default\"], null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_8__[\"default\"], {\n sx: {\n display: \"flex\",\n flexDirection: \"column\",\n gap: \"10px\"\n }\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_9__[\"default\"], {\n name: \"dDate\",\n type: \"date\",\n InputLabelProps: {\n shrink: true\n },\n value: filter.dDate,\n onChange: handleValueChanged,\n label: \"\\u041D\\u0430 \\u0434\\u0430\\u0442\\u0443\",\n variant: \"standard\",\n fullWidth: true,\n required: true,\n error: !filter.dDate,\n InputProps: {\n endAdornment: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_10__[\"default\"], {\n position: \"end\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_5__[\"default\"], {\n \"aria-label\": `dDate currentDate`,\n onClick: handleLoadCurrentDate,\n edge: \"end\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_6__[\"default\"], null, \"refresh\")))\n }\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_9__[\"default\"], {\n name: \"sCustomerDept\",\n value: filter.sCustomerDept,\n onChange: handleValueChanged,\n label: \"\\u0422\\u0440\\u0430\\u043D\\u0441\\u043F\\u043E\\u0440\\u0442\\u043D\\u044B\\u0439 \\u0443\\u0447\\u0430\\u0441\\u0442\\u043E\\u043A\",\n variant: \"standard\",\n InputProps: {\n endAdornment: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_10__[\"default\"], {\n position: \"end\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_5__[\"default\"], {\n \"aria-label\": `sCustomerDept select`,\n onClick: handleCustomerDeptSelect,\n edge: \"end\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_6__[\"default\"], null, \"list\")))\n },\n fullWidth: true\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_8__[\"default\"], {\n sx: STYLES.BOX_WITH_LEGEND,\n component: \"fieldset\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"legend\", {\n style: STYLES.LEGEND\n }, \"\\u0420\\u0430\\u0441\\u0447\\u0435\\u0442 \\u041A\\u041E\\u0410\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_9__[\"default\"], {\n name: \"dDateKOAFrom\",\n type: \"datetime-local\",\n InputLabelProps: {\n shrink: true\n },\n value: filter.dDateKOAFrom,\n onChange: handleValueChanged,\n label: \"\\u0414\\u0430\\u0442\\u0430 \\u0441\",\n variant: \"standard\",\n fullWidth: true\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_9__[\"default\"], {\n name: \"dDateKOATo\",\n type: \"datetime-local\",\n InputLabelProps: {\n shrink: true\n },\n value: filter.dDateKOATo,\n onChange: handleValueChanged,\n label: \"\\u0414\\u0430\\u0442\\u0430 \\u043F\\u043E\",\n variant: \"standard\",\n fullWidth: true\n })))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_11__[\"default\"], {\n sx: STYLES.DIALOG_ACTIONS\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_12__[\"default\"], {\n variant: \"text\",\n disabled: !isActionAllow(filter),\n onClick: handleOK\n }, \"\\u041F\\u0440\\u0438\\u043C\\u0435\\u043D\\u0438\\u0442\\u044C\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_12__[\"default\"], {\n variant: \"text\",\n onClick: handleClear\n }, \"\\u041E\\u0447\\u0438\\u0441\\u0442\\u0438\\u0442\\u044C\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_12__[\"default\"], {\n variant: \"text\",\n disabled: !isActionAllow(initial, isFiltersInit),\n onClick: handleCancel\n }, \"\\u041E\\u0442\\u043C\\u0435\\u043D\\u0430\"))));\n};\n\n//Контроль свойств компонента - Диалоговое окно фильтра отбора\nFilterDialog.propTypes = {\n initial: (prop_types__WEBPACK_IMPORTED_MODULE_13___default().object).isRequired,\n isFiltersInit: (prop_types__WEBPACK_IMPORTED_MODULE_13___default().bool),\n onOk: (prop_types__WEBPACK_IMPORTED_MODULE_13___default().func),\n onCancel: (prop_types__WEBPACK_IMPORTED_MODULE_13___default().func)\n};\n\n//--------------------\n//Интерфейс компонента\n//--------------------\n\n\n\n//# sourceURL=webpack://parus_8_panels_plugin/./app/panels/hauler_anl/filter_dialog.js?");
+eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ FilterDialog: () => (/* binding */ FilterDialog)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_13___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_13__);\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/Dialog/Dialog.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/DialogTitle/DialogTitle.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/IconButton/IconButton.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/Icon/Icon.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/DialogContent/DialogContent.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/Box/Box.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/TextField/TextField.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/InputAdornment/InputAdornment.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/DialogActions/DialogActions.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/Button/Button.js\");\n/* harmony import */ var _hooks_dict_hooks__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./hooks/dict_hooks */ \"./app/panels/hauler_anl/hooks/dict_hooks.js\");\n/* harmony import */ var _core_utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../core/utils */ \"./app/core/utils.js\");\n/*\r\n Парус 8 - Панели мониторинга - ТОиР - Гаражка\r\n Компонент: Диалоговое окно фильтра отбора\r\n*/\n\n//---------------------\n//Подключение библиотек\n//---------------------\n\n //Классы React\n //Контроль свойств компонента\n //Интерфейсные компоненты\n //Хуки открытий разделов\n //Вспомогательные функции\n\n//---------\n//Константы\n//---------\n\n//Стили\nconst STYLES = {\n DIALOG_ACTIONS: {\n justifyContent: \"flex-end\"\n },\n CLOSE_BUTTON: {\n position: \"absolute\",\n right: 8,\n top: 8,\n color: theme => theme.palette.grey[500]\n },\n BOX_WITH_LEGEND: {\n border: \"1px solid #939393\",\n marginBottom: \"1px\"\n },\n LEGEND: {\n textAlign: \"left\"\n }\n};\n\n//--------------------------\n//Вспомогательные компоненты\n//--------------------------\n\n//Проверка возможности выполнения действия\nconst isActionAllow = (filter, isFiltersInit = false) => {\n //Если указана \"На дату\", а также это не инициализация\n return (0,_core_utils__WEBPACK_IMPORTED_MODULE_2__.hasValue)(filter.dDate) && !isFiltersInit;\n};\n\n//---------------\n//Тело компонента\n//---------------\n\n//Диалоговое окно фильтра отбора\nconst FilterDialog = ({\n initial,\n isFiltersInit,\n onCancel,\n onOk\n}) => {\n //Собственное состояние\n const [filter, setFilter] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)({\n ...initial\n });\n\n //Вспомогательные функции открытия раздела\n const {\n handleInsDepartmentOpen\n } = (0,_hooks_dict_hooks__WEBPACK_IMPORTED_MODULE_1__.useDictionary)();\n\n //Вспомогательные функции\n const {\n handleInsDepartmentNameGet\n } = (0,_hooks_dict_hooks__WEBPACK_IMPORTED_MODULE_1__.useProcedures)();\n\n //Отработка воода значения в фильтр\n const handleValueChanged = e => {\n setFilter(pv => ({\n ...pv,\n [e.target.name]: e.target.value,\n ...(e.target.name === \"sCustomerDept\" ? {\n sCustomerDeptName: \"\"\n } : {})\n }));\n };\n\n //При изменении каталога фильтра\n const handleCustomerDeptSelect = () => handleInsDepartmentOpen({\n sCode: filter.sCustomerDept,\n callBack: res => {\n setFilter(pv => ({\n ...pv,\n sCustomerDept: res.outParameters.out_CODE,\n sCustomerDeptName: res.outParameters.out_NAME\n }));\n }\n });\n\n //При загрузке текущей даты\n const handleLoadCurrentDate = () => {\n //Определяем текущую дату\n const currentDate = (0,_core_utils__WEBPACK_IMPORTED_MODULE_2__.formatDateJSONDateOnly)(new Date());\n //Устанавливаем\n setFilter(pv => ({\n ...pv,\n dDate: currentDate\n }));\n };\n\n //При очистке фильтра\n const handleClear = () => {\n setFilter({\n dDate: \"\",\n sCustomerDept: \"\",\n sCustomerDeptName: \"\",\n dDateKOAFrom: \"\",\n dDateKOATo: \"\"\n });\n };\n\n //При закрытии диалога без изменения фильтра\n const handleCancel = () => isActionAllow(initial, isFiltersInit) ? onCancel && onCancel() : null;\n\n //При закрытии диалога с изменением фильтра\n const handleOK = async () => {\n let filterRes = {\n ...filter\n };\n //Если наименование подразделения пустое\n if (!filterRes.sCustomerDeptName) {\n //Если мнемокоды подразделений совпадают\n filterRes.sCustomerDeptName = filterRes.sCustomerDept === initial.sCustomerDept ? initial.sCustomerDeptName : await handleInsDepartmentNameGet({\n code: filterRes.sCustomerDept\n });\n }\n isActionAllow(filterRes) && onOk ? onOk(filterRes) : null;\n };\n\n //Генерация содержимого\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_3__[\"default\"], {\n open: true,\n onClose: handleCancel,\n fullWidth: true,\n maxWidth: \"sm\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_4__[\"default\"], null, \"\\u0424\\u0438\\u043B\\u044C\\u0442\\u0440 \\u043E\\u0442\\u0431\\u043E\\u0440\\u0430\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_5__[\"default\"], {\n \"aria-label\": \"close\",\n onClick: handleCancel,\n sx: STYLES.CLOSE_BUTTON\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_6__[\"default\"], null, \"close\")), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_7__[\"default\"], null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_8__[\"default\"], {\n sx: {\n display: \"flex\",\n flexDirection: \"column\",\n gap: \"10px\"\n }\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_9__[\"default\"], {\n name: \"dDate\",\n type: \"date\",\n InputLabelProps: {\n shrink: true\n },\n value: filter.dDate,\n onChange: handleValueChanged,\n label: \"\\u041D\\u0430 \\u0434\\u0430\\u0442\\u0443\",\n variant: \"standard\",\n fullWidth: true,\n required: true,\n error: !filter.dDate,\n InputProps: {\n endAdornment: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_10__[\"default\"], {\n position: \"end\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_5__[\"default\"], {\n \"aria-label\": `dDate currentDate`,\n onClick: handleLoadCurrentDate,\n edge: \"end\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_6__[\"default\"], null, \"refresh\")))\n }\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_9__[\"default\"], {\n name: \"sCustomerDept\",\n value: filter.sCustomerDept,\n onChange: handleValueChanged,\n label: \"\\u0422\\u0440\\u0430\\u043D\\u0441\\u043F\\u043E\\u0440\\u0442\\u043D\\u044B\\u0439 \\u0443\\u0447\\u0430\\u0441\\u0442\\u043E\\u043A\",\n variant: \"standard\",\n InputProps: {\n endAdornment: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_10__[\"default\"], {\n position: \"end\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_5__[\"default\"], {\n \"aria-label\": `sCustomerDept select`,\n onClick: handleCustomerDeptSelect,\n edge: \"end\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_6__[\"default\"], null, \"list\")))\n },\n fullWidth: true\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_8__[\"default\"], {\n sx: STYLES.BOX_WITH_LEGEND,\n component: \"fieldset\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"legend\", {\n style: STYLES.LEGEND\n }, \"\\u0420\\u0430\\u0441\\u0447\\u0435\\u0442 \\u041A\\u0422\\u0413/\\u041A\\u041E\\u0410\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_9__[\"default\"], {\n name: \"dDateKOAFrom\",\n type: \"datetime-local\",\n InputLabelProps: {\n shrink: true\n },\n value: filter.dDateKOAFrom,\n onChange: handleValueChanged,\n label: \"\\u0414\\u0430\\u0442\\u0430 \\u0441\",\n variant: \"standard\",\n fullWidth: true\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_9__[\"default\"], {\n name: \"dDateKOATo\",\n type: \"datetime-local\",\n InputLabelProps: {\n shrink: true\n },\n value: filter.dDateKOATo,\n onChange: handleValueChanged,\n label: \"\\u0414\\u0430\\u0442\\u0430 \\u043F\\u043E\",\n variant: \"standard\",\n fullWidth: true\n })))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_11__[\"default\"], {\n sx: STYLES.DIALOG_ACTIONS\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_12__[\"default\"], {\n variant: \"text\",\n disabled: !isActionAllow(filter),\n onClick: handleOK\n }, \"\\u041F\\u0440\\u0438\\u043C\\u0435\\u043D\\u0438\\u0442\\u044C\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_12__[\"default\"], {\n variant: \"text\",\n onClick: handleClear\n }, \"\\u041E\\u0447\\u0438\\u0441\\u0442\\u0438\\u0442\\u044C\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_12__[\"default\"], {\n variant: \"text\",\n disabled: !isActionAllow(initial, isFiltersInit),\n onClick: handleCancel\n }, \"\\u041E\\u0442\\u043C\\u0435\\u043D\\u0430\"))));\n};\n\n//Контроль свойств компонента - Диалоговое окно фильтра отбора\nFilterDialog.propTypes = {\n initial: (prop_types__WEBPACK_IMPORTED_MODULE_13___default().object).isRequired,\n isFiltersInit: (prop_types__WEBPACK_IMPORTED_MODULE_13___default().bool),\n onOk: (prop_types__WEBPACK_IMPORTED_MODULE_13___default().func),\n onCancel: (prop_types__WEBPACK_IMPORTED_MODULE_13___default().func)\n};\n\n//--------------------\n//Интерфейс компонента\n//--------------------\n\n\n\n//# sourceURL=webpack://parus_8_panels_plugin/./app/panels/hauler_anl/filter_dialog.js?");
/***/ }),
@@ -840,7 +840,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ HaulerAnl: () => (/* binding */ HaulerAnl)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/Box/Box.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/Grid/Grid.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/Paper/Paper.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/Fab/Fab.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/Icon/Icon.js\");\n/* harmony import */ var _components_p8p_app_workspace__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../components/p8p_app_workspace */ \"./app/components/p8p_app_workspace.js\");\n/* harmony import */ var _components_p8p_chart__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../components/p8p_chart */ \"./app/components/p8p_chart.js\");\n/* harmony import */ var _app_styles__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../app.styles */ \"./app.styles.js\");\n/* harmony import */ var _components_p8p_data_grid__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../components/p8p_data_grid */ \"./app/components/p8p_data_grid.js\");\n/* harmony import */ var _config_wrapper__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../config_wrapper */ \"./app/config_wrapper.js\");\n/* harmony import */ var _filter_dialog__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./filter_dialog */ \"./app/panels/hauler_anl/filter_dialog.js\");\n/* harmony import */ var _filter__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./filter */ \"./app/panels/hauler_anl/filter.js\");\n/* harmony import */ var _hooks_filter_hooks__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./hooks/filter_hooks */ \"./app/panels/hauler_anl/hooks/filter_hooks.js\");\n/* harmony import */ var _hooks_hooks__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./hooks/hooks */ \"./app/panels/hauler_anl/hooks/hooks.js\");\n/* harmony import */ var _layouts__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./layouts */ \"./app/panels/hauler_anl/layouts.js\");\n/* harmony import */ var _chart_filter__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./chart_filter */ \"./app/panels/hauler_anl/chart_filter.js\");\n/* harmony import */ var _core_utils__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ../../core/utils */ \"./app/core/utils.js\");\n/* harmony import */ var _hooks_dict_hooks__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./hooks/dict_hooks */ \"./app/panels/hauler_anl/hooks/dict_hooks.js\");\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\n/*\r\n Парус 8 - Панели мониторинга - ТОиР - Гаражка\r\n Панель мониторинга: Корневая панель гаражки\r\n*/\n\n//---------------------\n//Подключение библиотек\n//---------------------\n\n //Классы React\n //Интерфейсные компоненты\n //Заголовок страницы\n //График\n //Типовые стили\n //Таблица данных\n //Подключение компонентов к настройкам приложения\n //Диалог фильтра\n //Фильтры\n //Хуки фильтров\n\n //Вспомогательные функции верстки\n //Фильтр графика\n //Вспомогательные функции\n //Хуки для открытия раздела\n\n//---------\n//Константы\n//---------\n\n//Высота графиков\nconst CHART_HEIGHT = \"300px\";\n\n//Стили\nconst STYLES = {\n TABLE_PROJECTS: (showCharts, morePages, filters, isChartsFiltered) => ({\n height: `calc(100vh - ${_components_p8p_app_workspace__WEBPACK_IMPORTED_MODULE_1__.APP_BAR_HEIGHT} - ${showCharts ? CHART_HEIGHT : \"0px\"} - ${morePages ? _components_p8p_data_grid__WEBPACK_IMPORTED_MODULE_4__.P8P_DATA_GRID_MORE_HEIGHT : \"0px\"} - ${filters ? _components_p8p_data_grid__WEBPACK_IMPORTED_MODULE_4__.P8P_DATA_GRID_FILTERS_HEIGHT : \"0px\"} - ${showCharts && isChartsFiltered ? \"53px\" : \"0px\"} - 90px)`,\n maxWidth: `calc(100vw - 16px)`,\n ..._app_styles__WEBPACK_IMPORTED_MODULE_3__.APP_STYLES.SCROLL\n }),\n CHART: {\n maxHeight: CHART_HEIGHT,\n display: \"flex\",\n justifyContent: \"center\"\n },\n CHART_PAPER: {\n height: \"100%\",\n paddingBottom: \"5px\"\n },\n CHART_FAB: {\n position: \"absolute\",\n top: 80,\n left: 16\n }\n};\n\n//Графики страницы\nconst CHART_NAMES = {\n info: \"INFO\",\n calcs: \"CALCS\"\n};\n\n//-----------\n//Тело модуля\n//-----------\n\n//Корневая панель гаражки\nconst HaulerAnl = () => {\n //Вспомогательные функции открытия раздела\n const {\n handleEquipRepairSheetsOpen,\n handleHaulerUnitsCardsOpen\n } = (0,_hooks_dict_hooks__WEBPACK_IMPORTED_MODULE_13__.useDictionary)();\n\n //Собственное состояние - признак отображения фильтров\n const [isFilterOpen, setIsFilterOpen] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(true);\n\n //Состояния графиков\n const [showCharts, setShowCharts] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(true);\n\n //Собственное состояние - общие фильтры\n const [filterValues, isFiltersLoaded, filtersInit, handleFilterChange] = (0,_hooks_filter_hooks__WEBPACK_IMPORTED_MODULE_8__.useFilters)();\n\n //Собственное состояние - фильтры информации\n const [filterInfo, setFilterInfo] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)({\n nState: null\n });\n\n //Собственное состояние - фильтры расчетов\n const [filterCalcs, setFilterCalcs] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)({\n sDepartment: null\n });\n\n //Общие фильтры панели\n const allFilters = (0,react__WEBPACK_IMPORTED_MODULE_0__.useMemo)(() => {\n return {\n ...filterValues,\n nState: filterInfo.nState,\n sDepartment: filterCalcs.sDepartment\n };\n }, [filterValues, filterInfo, filterCalcs]);\n\n //Состояние графика информации АТС\n const {\n chartInfo,\n handleReload: handleChartInfoReload\n } = (0,_hooks_hooks__WEBPACK_IMPORTED_MODULE_9__.useChartInfo)({\n storedArgs: allFilters\n });\n\n //Состояние графика расчетов\n const {\n chartCalcs,\n handleReload: handleChartCalcsReload\n } = (0,_hooks_hooks__WEBPACK_IMPORTED_MODULE_9__.useChartCalcs)({\n storedArgs: allFilters\n });\n\n //Состояние таблицы ремонтных ведомостей\n const {\n dataGrid,\n handleReload: handleTableATCReload,\n handleFilterChanged,\n handleOrderChanged,\n handlePagesCountChanged\n } = (0,_hooks_hooks__WEBPACK_IMPORTED_MODULE_9__.useTableATC)({\n storedArgs: allFilters\n });\n\n //При изменении фильтра в диалоге\n const handleFilterOk = async filter => {\n //Обновляем фильтры\n await handleFilterChange({\n filter\n });\n //Если указан общий и внутренний фильтр по подразделению\n if (filter.sCustomerDept && filterCalcs.sDepartment) {\n //Очищаем внутренний\n setFilterCalcs({\n sDepartment: null,\n ignoreReload: true\n });\n }\n //Закрываем диалог фильтра\n setIsFilterOpen(false);\n };\n\n //При закрытии диалога фильтра\n const handleFilterCancel = () => setIsFilterOpen(false);\n\n //При открытии диалога фильтра\n const handleFilterDialogOpen = () => setIsFilterOpen(true);\n\n //При нажатии на элемент графика \"Информация АТС\"\n const handleChartInfoClick = ({\n item\n }) => {\n setFilterInfo({\n nState: item.NSTATE\n });\n };\n\n //При нажатии на элемент графика расчетов\n const handleChartCalcsClick = ({\n item\n }) => {\n //Если подразделение не соответствует текущему\n if (item.SCODE !== filterCalcs.sDepartment && !filterValues.sCustomerDept) setFilterCalcs({\n sDepartment: item.SCODE\n });\n };\n\n //При изменении фильтра графика\n const handleChartFilterChange = ({\n chartName,\n filter\n }) => {\n //При изменении фильтров графика \"Информация АТС\"\n if (chartName === CHART_NAMES.info) {\n setFilterInfo({\n ...filter\n });\n }\n //При изменении фильтров графика расчетов\n if (chartName === CHART_NAMES.calcs) setFilterCalcs({\n ...filter\n });\n };\n\n //При изменении фильтра\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {\n //Если фильтр установлен\n if (!filtersInit) {\n handleChartInfoReload();\n handleChartCalcsReload();\n handleTableATCReload();\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [allFilters, filtersInit]);\n\n //Генерация содержимого\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_14__[\"default\"], {\n p: 1\n }, !filtersInit ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_filter__WEBPACK_IMPORTED_MODULE_7__.Filter, {\n filter: filterValues,\n onFilterOpen: handleFilterDialogOpen\n }) : null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_15__[\"default\"], {\n container: true,\n spacing: 1\n }, showCharts ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((react__WEBPACK_IMPORTED_MODULE_0___default().Fragment), null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_15__[\"default\"], {\n item: true,\n xs: 6\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_16__[\"default\"], {\n elevation: 3,\n sx: STYLES.CHART_PAPER\n }, (0,_core_utils__WEBPACK_IMPORTED_MODULE_12__.hasValue)(filterInfo.nState) ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_chart_filter__WEBPACK_IMPORTED_MODULE_11__.ChartFilter, {\n chartName: CHART_NAMES.info,\n filter: filterInfo,\n onFilterChange: handleChartFilterChange\n }) : null, chartInfo.loaded ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_components_p8p_chart__WEBPACK_IMPORTED_MODULE_2__.P8PChart, _extends({}, chartInfo, {\n style: STYLES.CHART,\n onClick: handleChartInfoClick,\n legendPosition: \"top\"\n })) : null)), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_15__[\"default\"], {\n item: true,\n xs: 6\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_16__[\"default\"], {\n elevation: 3,\n sx: STYLES.CHART_PAPER\n }, (0,_core_utils__WEBPACK_IMPORTED_MODULE_12__.hasValue)(filterCalcs.sDepartment) ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_chart_filter__WEBPACK_IMPORTED_MODULE_11__.ChartFilter, {\n chartName: CHART_NAMES.calcs,\n filter: filterCalcs,\n onFilterChange: handleChartFilterChange\n }) : null, chartCalcs.loaded ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_components_p8p_chart__WEBPACK_IMPORTED_MODULE_2__.P8PChart, _extends({}, chartCalcs, {\n style: STYLES.CHART,\n options: {\n scales: {\n x: {\n stacked: true\n },\n y: {\n stacked: true\n }\n }\n },\n legendPosition: \"top\",\n onClick: handleChartCalcsClick\n })) : null))) : null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_15__[\"default\"], {\n item: true,\n xs: 12\n }, dataGrid.dataLoaded ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_components_p8p_data_grid__WEBPACK_IMPORTED_MODULE_4__.P8PDataGrid, _extends({}, _config_wrapper__WEBPACK_IMPORTED_MODULE_5__.P8P_DATA_GRID_CONFIG_PROPS, dataGrid, {\n size: _components_p8p_data_grid__WEBPACK_IMPORTED_MODULE_4__.P8P_DATA_GRID_SIZE.LARGE,\n containerComponentProps: {\n sx: STYLES.TABLE_PROJECTS(showCharts, dataGrid.morePages, (dataGrid.filters || []).length > 0, (0,_core_utils__WEBPACK_IMPORTED_MODULE_12__.hasValue)(filterInfo.nState) || (0,_core_utils__WEBPACK_IMPORTED_MODULE_12__.hasValue)(filterCalcs.sDepartment))\n },\n filtersInitial: dataGrid.filters,\n onOrderChanged: handleOrderChanged,\n onFilterChanged: handleFilterChanged,\n onPagesCountChanged: handlePagesCountChanged,\n dataCellRender: prms => (0,_layouts__WEBPACK_IMPORTED_MODULE_10__.dataCellRender)({\n ...prms,\n showHaulerUnitsCards: handleHaulerUnitsCardsOpen\n }),\n valueFormatter: prms => (0,_layouts__WEBPACK_IMPORTED_MODULE_10__.valueFormatter)({\n ...prms,\n onRepairSheetOpen: handleEquipRepairSheetsOpen\n })\n })) : null)), chartInfo.loaded && chartCalcs.loaded ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_17__[\"default\"], {\n size: \"small\",\n color: \"secondary\",\n sx: STYLES.CHART_FAB,\n onClick: () => setShowCharts(!showCharts)\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_18__[\"default\"], null, showCharts ? \"expand_less\" : \"expand_more\")) : null, isFilterOpen && isFiltersLoaded ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_filter_dialog__WEBPACK_IMPORTED_MODULE_6__.FilterDialog, {\n initial: filterValues,\n isFiltersInit: filtersInit,\n onOk: handleFilterOk,\n onCancel: handleFilterCancel\n }) : null);\n};\n\n//----------------\n//Интерфейс модуля\n//----------------\n\n\n\n//# sourceURL=webpack://parus_8_panels_plugin/./app/panels/hauler_anl/hauler_anl.js?");
+eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ HaulerAnl: () => (/* binding */ HaulerAnl)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/Box/Box.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/Grid/Grid.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/Paper/Paper.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/Fab/Fab.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/Icon/Icon.js\");\n/* harmony import */ var _components_p8p_app_workspace__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../components/p8p_app_workspace */ \"./app/components/p8p_app_workspace.js\");\n/* harmony import */ var _components_p8p_chart__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../components/p8p_chart */ \"./app/components/p8p_chart.js\");\n/* harmony import */ var _app_styles__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../app.styles */ \"./app.styles.js\");\n/* harmony import */ var _components_p8p_data_grid__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../components/p8p_data_grid */ \"./app/components/p8p_data_grid.js\");\n/* harmony import */ var _config_wrapper__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../config_wrapper */ \"./app/config_wrapper.js\");\n/* harmony import */ var _filter_dialog__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./filter_dialog */ \"./app/panels/hauler_anl/filter_dialog.js\");\n/* harmony import */ var _filter__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./filter */ \"./app/panels/hauler_anl/filter.js\");\n/* harmony import */ var _hooks_filter_hooks__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./hooks/filter_hooks */ \"./app/panels/hauler_anl/hooks/filter_hooks.js\");\n/* harmony import */ var _hooks_hooks__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./hooks/hooks */ \"./app/panels/hauler_anl/hooks/hooks.js\");\n/* harmony import */ var _layouts__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./layouts */ \"./app/panels/hauler_anl/layouts.js\");\n/* harmony import */ var _chart_filter__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./chart_filter */ \"./app/panels/hauler_anl/chart_filter.js\");\n/* harmony import */ var _core_utils__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ../../core/utils */ \"./app/core/utils.js\");\n/* harmony import */ var _hooks_dict_hooks__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./hooks/dict_hooks */ \"./app/panels/hauler_anl/hooks/dict_hooks.js\");\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\n/*\r\n Парус 8 - Панели мониторинга - ТОиР - Гаражка\r\n Панель мониторинга: Корневая панель гаражки\r\n*/\n\n//---------------------\n//Подключение библиотек\n//---------------------\n\n //Классы React\n //Интерфейсные компоненты\n //Заголовок страницы\n //График\n //Типовые стили\n //Таблица данных\n //Подключение компонентов к настройкам приложения\n //Диалог фильтра\n //Фильтры\n //Хуки фильтров\n\n //Вспомогательные функции верстки\n //Фильтр графика\n //Вспомогательные функции\n //Хуки для открытия раздела\n\n//---------\n//Константы\n//---------\n\n//Высота графиков\nconst CHART_HEIGHT = \"300px\";\n\n//Стили\nconst STYLES = {\n TABLE_PROJECTS: (showCharts, morePages, filters, isChartsFiltered) => ({\n height: `calc(100vh - ${_components_p8p_app_workspace__WEBPACK_IMPORTED_MODULE_1__.APP_BAR_HEIGHT} - ${showCharts ? CHART_HEIGHT : \"0px\"} - ${morePages ? _components_p8p_data_grid__WEBPACK_IMPORTED_MODULE_4__.P8P_DATA_GRID_MORE_HEIGHT : \"0px\"} - ${filters ? _components_p8p_data_grid__WEBPACK_IMPORTED_MODULE_4__.P8P_DATA_GRID_FILTERS_HEIGHT : \"0px\"} - ${showCharts && isChartsFiltered ? \"53px\" : \"0px\"} - 90px)`,\n maxWidth: `calc(100vw - 16px)`,\n ..._app_styles__WEBPACK_IMPORTED_MODULE_3__.APP_STYLES.SCROLL\n }),\n CHART: {\n maxHeight: CHART_HEIGHT,\n display: \"flex\",\n justifyContent: \"center\"\n },\n CHART_PAPER: {\n height: \"100%\",\n paddingBottom: \"5px\"\n },\n CHART_FAB: {\n position: \"absolute\",\n top: 80,\n left: 16\n }\n};\n\n//Графики страницы\nconst CHART_NAMES = {\n info: \"INFO\",\n calcs: \"CALCS\"\n};\n\n//-----------\n//Тело модуля\n//-----------\n\n//Корневая панель гаражки\nconst HaulerAnl = () => {\n //Вспомогательные функции открытия раздела\n const {\n handleEquipRepairSheetsOpen,\n handleHaulerUnitsCardsOpen\n } = (0,_hooks_dict_hooks__WEBPACK_IMPORTED_MODULE_13__.useDictionary)();\n\n //Собственное состояние - признак отображения фильтров\n const [isFilterOpen, setIsFilterOpen] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(true);\n\n //Состояния графиков\n const [showCharts, setShowCharts] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(true);\n\n //Собственное состояние - общие фильтры\n const [filterValues, isFiltersLoaded, filtersInit, handleFilterChange] = (0,_hooks_filter_hooks__WEBPACK_IMPORTED_MODULE_8__.useFilters)();\n\n //Собственное состояние - фильтры информации\n const [filterInfo, setFilterInfo] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)({\n nState: null\n });\n\n //Собственное состояние - фильтры расчетов\n const [filterCalcs, setFilterCalcs] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)({\n sDepartment: null\n });\n\n //Общие фильтры панели\n const allFilters = (0,react__WEBPACK_IMPORTED_MODULE_0__.useMemo)(() => {\n return {\n ...filterValues,\n nState: filterInfo.nState,\n sDepartment: filterCalcs.sDepartment\n };\n }, [filterValues, filterInfo, filterCalcs]);\n\n //Состояние графика информации АТС\n const {\n chartInfo,\n handleReload: handleChartInfoReload,\n loading: chartInfoLoading\n } = (0,_hooks_hooks__WEBPACK_IMPORTED_MODULE_9__.useChartInfo)({\n storedArgs: allFilters\n });\n\n //Состояние графика расчетов\n const {\n chartCalcs,\n handleReload: handleChartCalcsReload\n } = (0,_hooks_hooks__WEBPACK_IMPORTED_MODULE_9__.useChartCalcs)({\n storedArgs: allFilters\n });\n\n //Состояние таблицы ремонтных ведомостей\n const {\n dataGrid,\n handleReload: handleTableATCReload,\n handleFilterChanged,\n handleOrderChanged,\n handlePagesCountChanged\n } = (0,_hooks_hooks__WEBPACK_IMPORTED_MODULE_9__.useTableATC)({\n storedArgs: allFilters\n });\n\n //При изменении фильтра в диалоге\n const handleFilterOk = async filter => {\n //Обновляем фильтры\n await handleFilterChange({\n filter\n });\n //Если указан общий и внутренний фильтр по подразделению\n if (filter.sCustomerDept && filterCalcs.sDepartment) {\n //Очищаем внутренний\n setFilterCalcs({\n sDepartment: null,\n ignoreReload: true\n });\n }\n //Закрываем диалог фильтра\n setIsFilterOpen(false);\n };\n\n //При закрытии диалога фильтра\n const handleFilterCancel = () => setIsFilterOpen(false);\n\n //При открытии диалога фильтра\n const handleFilterDialogOpen = () => setIsFilterOpen(true);\n\n //При нажатии на элемент графика \"Информация АТС\"\n const handleChartInfoClick = ({\n item\n }) => {\n setFilterInfo({\n nState: item.NSTATE\n });\n };\n\n //При нажатии на элемент графика расчетов\n const handleChartCalcsClick = ({\n item\n }) => {\n //Если подразделение не соответствует текущему\n if (item.SCODE !== filterCalcs.sDepartment && !filterValues.sCustomerDept) setFilterCalcs({\n sDepartment: item.SCODE\n });\n };\n\n //При изменении фильтра графика\n const handleChartFilterChange = ({\n chartName,\n filter\n }) => {\n //При изменении фильтров графика \"Информация АТС\"\n if (chartName === CHART_NAMES.info) {\n setFilterInfo({\n ...filter\n });\n }\n //При изменении фильтров графика расчетов\n if (chartName === CHART_NAMES.calcs) setFilterCalcs({\n ...filter\n });\n };\n\n //При изменении фильтра\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {\n //Если фильтр установлен\n if (!filtersInit) {\n handleChartInfoReload();\n handleChartCalcsReload();\n handleTableATCReload();\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [allFilters, filtersInit]);\n\n //Генерация содержимого\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_14__[\"default\"], {\n p: 1\n }, !filtersInit ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_filter__WEBPACK_IMPORTED_MODULE_7__.Filter, {\n filter: filterValues,\n onFilterOpen: handleFilterDialogOpen\n }) : null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_15__[\"default\"], {\n container: true,\n spacing: 1\n }, showCharts ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((react__WEBPACK_IMPORTED_MODULE_0___default().Fragment), null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_15__[\"default\"], {\n item: true,\n xs: 6\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_16__[\"default\"], {\n elevation: 3,\n sx: STYLES.CHART_PAPER\n }, (0,_core_utils__WEBPACK_IMPORTED_MODULE_12__.hasValue)(filterInfo.nState) ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_chart_filter__WEBPACK_IMPORTED_MODULE_11__.ChartFilter, {\n chartName: CHART_NAMES.info,\n filter: filterInfo,\n onFilterChange: handleChartFilterChange\n }) : null, chartInfo.loaded && !chartInfoLoading ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_components_p8p_chart__WEBPACK_IMPORTED_MODULE_2__.P8PChart, _extends({}, chartInfo, {\n style: STYLES.CHART,\n onClick: handleChartInfoClick,\n legendPosition: \"top\"\n })) : null)), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_15__[\"default\"], {\n item: true,\n xs: 6\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_16__[\"default\"], {\n elevation: 3,\n sx: STYLES.CHART_PAPER\n }, (0,_core_utils__WEBPACK_IMPORTED_MODULE_12__.hasValue)(filterCalcs.sDepartment) ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_chart_filter__WEBPACK_IMPORTED_MODULE_11__.ChartFilter, {\n chartName: CHART_NAMES.calcs,\n filter: filterCalcs,\n onFilterChange: handleChartFilterChange\n }) : null, chartCalcs.loaded ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_components_p8p_chart__WEBPACK_IMPORTED_MODULE_2__.P8PChart, _extends({}, chartCalcs, {\n style: STYLES.CHART,\n options: {\n scales: {\n x: {\n stacked: true\n },\n y: {\n stacked: true\n }\n }\n },\n legendPosition: \"top\",\n onClick: handleChartCalcsClick\n })) : null))) : null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_15__[\"default\"], {\n item: true,\n xs: 12\n }, dataGrid.dataLoaded ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_components_p8p_data_grid__WEBPACK_IMPORTED_MODULE_4__.P8PDataGrid, _extends({}, _config_wrapper__WEBPACK_IMPORTED_MODULE_5__.P8P_DATA_GRID_CONFIG_PROPS, dataGrid, {\n size: _components_p8p_data_grid__WEBPACK_IMPORTED_MODULE_4__.P8P_DATA_GRID_SIZE.LARGE,\n containerComponentProps: {\n sx: STYLES.TABLE_PROJECTS(showCharts, dataGrid.morePages, (dataGrid.filters || []).length > 0, (0,_core_utils__WEBPACK_IMPORTED_MODULE_12__.hasValue)(filterInfo.nState) || (0,_core_utils__WEBPACK_IMPORTED_MODULE_12__.hasValue)(filterCalcs.sDepartment))\n },\n filtersInitial: dataGrid.filters,\n onOrderChanged: handleOrderChanged,\n onFilterChanged: handleFilterChanged,\n onPagesCountChanged: handlePagesCountChanged,\n dataCellRender: prms => (0,_layouts__WEBPACK_IMPORTED_MODULE_10__.dataCellRender)({\n ...prms,\n showHaulerUnitsCards: handleHaulerUnitsCardsOpen\n }),\n valueFormatter: prms => (0,_layouts__WEBPACK_IMPORTED_MODULE_10__.valueFormatter)({\n ...prms,\n onRepairSheetOpen: handleEquipRepairSheetsOpen\n })\n })) : null)), chartInfo.loaded && chartCalcs.loaded ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_17__[\"default\"], {\n size: \"small\",\n color: \"secondary\",\n sx: STYLES.CHART_FAB,\n onClick: () => setShowCharts(!showCharts)\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_18__[\"default\"], null, showCharts ? \"expand_less\" : \"expand_more\")) : null, isFilterOpen && isFiltersLoaded ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_filter_dialog__WEBPACK_IMPORTED_MODULE_6__.FilterDialog, {\n initial: filterValues,\n isFiltersInit: filtersInit,\n onOk: handleFilterOk,\n onCancel: handleFilterCancel\n }) : null);\n};\n\n//----------------\n//Интерфейс модуля\n//----------------\n\n\n\n//# sourceURL=webpack://parus_8_panels_plugin/./app/panels/hauler_anl/hauler_anl.js?");
/***/ }),
@@ -873,7 +873,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ useChartCalcs: () => (/* binding */ useChartCalcs),\n/* harmony export */ useChartInfo: () => (/* binding */ useChartInfo),\n/* harmony export */ useTableATC: () => (/* binding */ useTableATC)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _context_backend__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../context/backend */ \"./app/context/backend.js\");\n/* harmony import */ var _core_utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../core/utils */ \"./app/core/utils.js\");\n/*\r\n Парус 8 - Панели мониторинга - ТОиР - Гаражка\r\n Пользовательские хуки: Хуки основных компонентов\r\n*/\n\n//---------------------\n//Подключение библиотек\n//---------------------\n\n //Классы React\n //Контекст взаимодействия с сервером\n\n\n//--------------------------\n//Вспомогательные компоненты\n//--------------------------\n\n//-----------\n//Тело модуля\n//-----------\n\n//Хук графика АТС\nconst useChartInfo = ({\n storedArgs = {}\n}) => {\n //Собственное состояние - график\n const [chartInfo, setChartInfo] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)({\n loaded: false,\n reload: false\n });\n\n //Подключение к контексту взаимодействия с сервером\n const {\n executeStored\n } = (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(_context_backend__WEBPACK_IMPORTED_MODULE_1__[\"BackEndСtx\"]);\n\n //При необходимости перезагрузки графика\n const handleReload = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(() => setChartInfo(pv => ({\n ...pv,\n reload: true\n })), []);\n\n //При подключении к странице\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {\n //Загрузка данных графика с сервера\n const loadChart = async () => {\n try {\n const chart = await executeStored({\n stored: \"UDO_PKG_P8PANELS_HAULER_ANL.CHART_ATC_INFO\",\n args: {\n DDATE: storedArgs.dDate ? new Date(storedArgs.dDate) : null,\n SDEPARTMENT: storedArgs.sCustomerDept || storedArgs.sDepartment,\n NSTATE: storedArgs.nState\n },\n respArg: \"COUT\"\n });\n setChartInfo(pv => ({\n ...pv,\n loaded: true,\n reload: false,\n ...chart.XCHART\n }));\n } catch (e) {\n setChartInfo(pv => ({\n ...pv,\n loaded: false,\n reload: false\n }));\n }\n };\n //При необходимости перезагрузить\n if (chartInfo.reload) loadChart();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [chartInfo.reload, executeStored]);\n\n //Возвращаем график\n return {\n chartInfo,\n handleReload\n };\n};\n\n//Хук графика КГТ/КОА\nconst useChartCalcs = ({\n storedArgs = {}\n}) => {\n //Собственное состояние - график\n const [chartCalcs, setChartCalcs] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)({\n loaded: false,\n reload: false\n });\n\n //Подключение к контексту взаимодействия с сервером\n const {\n executeStored\n } = (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(_context_backend__WEBPACK_IMPORTED_MODULE_1__[\"BackEndСtx\"]);\n\n //При необходимости перезагрузки графика\n const handleReload = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(() => setChartCalcs(pv => ({\n ...pv,\n reload: true\n })), []);\n\n //При подключении к странице\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {\n //Загрузка данных графика с сервера\n const loadChart = async () => {\n try {\n const chart = await executeStored({\n stored: \"UDO_PKG_P8PANELS_HAULER_ANL.CHART_ATC_KTG_KOA\",\n args: {\n SDEPARTMENT: storedArgs.sCustomerDept || storedArgs.sDepartment,\n DDATE_KOA_FROM: storedArgs.dDateKOAFrom ? new Date(storedArgs.dDateKOAFrom) : null,\n DDATE_KOA_TO: storedArgs.dDateKOATo ? new Date(storedArgs.dDateKOATo) : null,\n DDATE: storedArgs.dDate ? new Date(storedArgs.dDate) : null,\n NSTATE: storedArgs.nState\n },\n respArg: \"COUT\"\n });\n setChartCalcs(pv => ({\n ...pv,\n loaded: true,\n reload: false,\n labels: chart.XCHART?.labels ? [...chart.XCHART.labels] : [],\n ...chart.XCHART\n }));\n } catch (e) {\n setChartCalcs(pv => ({\n ...pv,\n loaded: false,\n reload: false\n }));\n }\n };\n //При необходимости перезагрузить\n if (chartCalcs.reload) loadChart();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [chartCalcs.reload, executeStored]);\n\n //Возвращаем график\n return {\n chartCalcs,\n handleReload\n };\n};\n\n//Хук таблицы АТС\nconst useTableATC = ({\n storedArgs = {}\n}) => {\n //Собственное состояние - таблица\n const [dataGrid, setDataGrid] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)({\n dataLoaded: false,\n filters: [],\n orders: null,\n pageNumber: 1,\n morePages: true,\n reloading: false\n });\n\n //Подключение к контексту взаимодействия с сервером\n const {\n executeStored,\n SERV_DATA_TYPE_CLOB\n } = (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(_context_backend__WEBPACK_IMPORTED_MODULE_1__[\"BackEndСtx\"]);\n\n //При изменении состояния фильтра\n const handleFilterChanged = ({\n filters\n }) => setDataGrid(pv => ({\n ...pv,\n filters: [...filters],\n pageNumber: 1,\n reloading: true\n }));\n\n //При изменении состояния сортировки\n const handleOrderChanged = ({\n orders\n }) => setDataGrid(pv => ({\n ...pv,\n orders: [...orders],\n pageNumber: 1,\n reloading: true\n }));\n\n //При изменении количества отображаемых страниц\n const handlePagesCountChanged = () => setDataGrid(pv => ({\n ...pv,\n pageNumber: pv.pageNumber + 1,\n reloading: true\n }));\n\n //При необходимости перезагрузки таблицы\n const handleReload = () => setDataGrid(pv => ({\n ...pv,\n pageNumber: 1,\n reloading: true\n }));\n\n //При подключении к странице\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {\n //Загрузка данных графика с сервера\n const loadDataGrid = async () => {\n try {\n const data = await executeStored({\n stored: \"UDO_PKG_P8PANELS_HAULER_ANL.DATA_GRID_ATC\",\n args: {\n CFILTERS: {\n VALUE: (0,_core_utils__WEBPACK_IMPORTED_MODULE_2__.object2Base64XML)(dataGrid.filters, {\n arrayNodeName: \"filters\"\n }),\n SDATA_TYPE: SERV_DATA_TYPE_CLOB\n },\n CORDERS: {\n VALUE: (0,_core_utils__WEBPACK_IMPORTED_MODULE_2__.object2Base64XML)(dataGrid.orders, {\n arrayNodeName: \"orders\"\n }),\n SDATA_TYPE: SERV_DATA_TYPE_CLOB\n },\n NPAGE_NUMBER: dataGrid.pageNumber,\n NPAGE_SIZE: 10,\n NINCLUDE_DEF: dataGrid.dataLoaded ? 0 : 1,\n DDATE: storedArgs.dDate ? new Date(storedArgs.dDate) : null,\n DDATE_KOA_FROM: storedArgs.dDateKOAFrom ? new Date(storedArgs.dDateKOAFrom) : null,\n DDATE_KOA_TO: storedArgs.dDateKOATo ? new Date(storedArgs.dDateKOATo) : null,\n SDEPARTMENT: storedArgs.sCustomerDept || storedArgs.sDepartment,\n NSTATE: storedArgs.nState\n },\n attributeValueProcessor: (name, val) => [\"DDOCDATE\", \"DDATEFACT_BEG\", \"DDATEFACT_END\"].includes(name) ? (0,_core_utils__WEBPACK_IMPORTED_MODULE_2__.formatDateRF)(val) : val,\n respArg: \"COUT\"\n });\n setDataGrid(pv => ({\n ...pv,\n ...data.XDATA_GRID,\n columnsDef: data.XDATA_GRID.columnsDef ? [...data.XDATA_GRID.columnsDef] : pv.columnsDef || [],\n rows: pv.pageNumber == 1 ? [...(data.XDATA_GRID.rows || [])] : [...(pv.rows || []), ...(data.XDATA_GRID.rows || [])],\n dataLoaded: true,\n reloading: false,\n morePages: (data.XDATA_GRID.rows || []).length >= 10\n }));\n } catch (e) {\n setDataGrid(pv => ({\n ...pv,\n loaded: false,\n reload: false\n }));\n }\n };\n //При необходимости перезагрузить\n if (dataGrid.reloading) loadDataGrid();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [dataGrid.reloading, executeStored]);\n\n //Возвращаем график\n return {\n dataGrid,\n handleReload,\n handleFilterChanged,\n handleOrderChanged,\n handlePagesCountChanged\n };\n};\n\n//----------------\n//Интерфейс модуля\n//----------------\n\n\n\n//# sourceURL=webpack://parus_8_panels_plugin/./app/panels/hauler_anl/hooks/hooks.js?");
+eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ useChartCalcs: () => (/* binding */ useChartCalcs),\n/* harmony export */ useChartInfo: () => (/* binding */ useChartInfo),\n/* harmony export */ useTableATC: () => (/* binding */ useTableATC)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _context_backend__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../context/backend */ \"./app/context/backend.js\");\n/* harmony import */ var _core_utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../core/utils */ \"./app/core/utils.js\");\n/*\r\n Парус 8 - Панели мониторинга - ТОиР - Гаражка\r\n Пользовательские хуки: Хуки основных компонентов\r\n*/\n\n//---------------------\n//Подключение библиотек\n//---------------------\n\n //Классы React\n //Контекст взаимодействия с сервером\n //Вспомогательные функции\n\n//--------------------------\n//Вспомогательные компоненты\n//--------------------------\n\n//-----------\n//Тело модуля\n//-----------\n\n//Хук графика АТС\nconst useChartInfo = ({\n storedArgs = {}\n}) => {\n //Собственное состояние - график\n const [chartInfo, setChartInfo] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)({\n loaded: false,\n reload: false\n });\n\n //Собственное состояние - загрузка данных\n const [loading, setLoading] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(false);\n\n //Подключение к контексту взаимодействия с сервером\n const {\n executeStored\n } = (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(_context_backend__WEBPACK_IMPORTED_MODULE_1__[\"BackEndСtx\"]);\n\n //При необходимости перезагрузки графика\n const handleReload = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(() => setChartInfo(pv => ({\n ...pv,\n reload: true\n })), []);\n\n //При подключении к странице\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {\n //Загрузка данных графика с сервера\n const loadChart = async () => {\n try {\n setLoading(true);\n const chart = await executeStored({\n stored: \"UDO_PKG_P8PANELS_HAULER_ANL.CHART_ATC_INFO\",\n args: {\n DDATE: storedArgs.dDate ? new Date(storedArgs.dDate) : null,\n SDEPARTMENT: storedArgs.sCustomerDept || storedArgs.sDepartment,\n NSTATE: storedArgs.nState\n },\n respArg: \"COUT\"\n });\n setChartInfo(pv => ({\n ...pv,\n loaded: true,\n reload: false,\n ...chart.XCHART\n }));\n } catch (e) {\n setChartInfo(pv => ({\n ...pv,\n loaded: false,\n reload: false\n }));\n } finally {\n setLoading(false);\n }\n };\n //При необходимости перезагрузить\n if (chartInfo.reload) loadChart();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [chartInfo.reload, executeStored]);\n\n //Возвращаем график\n return {\n chartInfo,\n handleReload,\n loading\n };\n};\n\n//Хук графика КГТ/КОА\nconst useChartCalcs = ({\n storedArgs = {}\n}) => {\n //Собственное состояние - график\n const [chartCalcs, setChartCalcs] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)({\n loaded: false,\n reload: false\n });\n\n //Подключение к контексту взаимодействия с сервером\n const {\n executeStored\n } = (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(_context_backend__WEBPACK_IMPORTED_MODULE_1__[\"BackEndСtx\"]);\n\n //При необходимости перезагрузки графика\n const handleReload = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(() => setChartCalcs(pv => ({\n ...pv,\n reload: true\n })), []);\n\n //При подключении к странице\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {\n //Загрузка данных графика с сервера\n const loadChart = async () => {\n try {\n const chart = await executeStored({\n stored: \"UDO_PKG_P8PANELS_HAULER_ANL.CHART_ATC_KTG_KOA\",\n args: {\n SDEPARTMENT: storedArgs.sCustomerDept || storedArgs.sDepartment,\n DDATE_KOA_FROM: storedArgs.dDateKOAFrom ? new Date(storedArgs.dDateKOAFrom) : null,\n DDATE_KOA_TO: storedArgs.dDateKOATo ? new Date(storedArgs.dDateKOATo) : null,\n DDATE: storedArgs.dDate ? new Date(storedArgs.dDate) : null,\n NSTATE: storedArgs.nState\n },\n respArg: \"COUT\"\n });\n setChartCalcs(pv => ({\n ...pv,\n loaded: true,\n reload: false,\n labels: chart.XCHART?.labels ? [...chart.XCHART.labels] : [],\n ...chart.XCHART\n }));\n } catch (e) {\n setChartCalcs(pv => ({\n ...pv,\n loaded: false,\n reload: false\n }));\n }\n };\n //При необходимости перезагрузить\n if (chartCalcs.reload) loadChart();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [chartCalcs.reload, executeStored]);\n\n //Возвращаем график\n return {\n chartCalcs,\n handleReload\n };\n};\n\n//Хук таблицы АТС\nconst useTableATC = ({\n storedArgs = {}\n}) => {\n //Собственное состояние - таблица\n const [dataGrid, setDataGrid] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)({\n dataLoaded: false,\n filters: [],\n orders: null,\n pageNumber: 1,\n morePages: true,\n reloading: false\n });\n\n //Подключение к контексту взаимодействия с сервером\n const {\n executeStored,\n SERV_DATA_TYPE_CLOB\n } = (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(_context_backend__WEBPACK_IMPORTED_MODULE_1__[\"BackEndСtx\"]);\n\n //При изменении состояния фильтра\n const handleFilterChanged = ({\n filters\n }) => setDataGrid(pv => ({\n ...pv,\n filters: [...filters],\n pageNumber: 1,\n reloading: true\n }));\n\n //При изменении состояния сортировки\n const handleOrderChanged = ({\n orders\n }) => setDataGrid(pv => ({\n ...pv,\n orders: [...orders],\n pageNumber: 1,\n reloading: true\n }));\n\n //При изменении количества отображаемых страниц\n const handlePagesCountChanged = () => setDataGrid(pv => ({\n ...pv,\n pageNumber: pv.pageNumber + 1,\n reloading: true\n }));\n\n //При необходимости перезагрузки таблицы\n const handleReload = () => setDataGrid(pv => ({\n ...pv,\n pageNumber: 1,\n reloading: true\n }));\n\n //При подключении к странице\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {\n //Загрузка данных графика с сервера\n const loadDataGrid = async () => {\n try {\n const data = await executeStored({\n stored: \"UDO_PKG_P8PANELS_HAULER_ANL.DATA_GRID_ATC\",\n args: {\n CFILTERS: {\n VALUE: (0,_core_utils__WEBPACK_IMPORTED_MODULE_2__.object2Base64XML)(dataGrid.filters, {\n arrayNodeName: \"filters\"\n }),\n SDATA_TYPE: SERV_DATA_TYPE_CLOB\n },\n CORDERS: {\n VALUE: (0,_core_utils__WEBPACK_IMPORTED_MODULE_2__.object2Base64XML)(dataGrid.orders, {\n arrayNodeName: \"orders\"\n }),\n SDATA_TYPE: SERV_DATA_TYPE_CLOB\n },\n NPAGE_NUMBER: dataGrid.pageNumber,\n NPAGE_SIZE: 10,\n NINCLUDE_DEF: dataGrid.dataLoaded ? 0 : 1,\n DDATE: storedArgs.dDate ? new Date(storedArgs.dDate) : null,\n DDATE_KOA_FROM: storedArgs.dDateKOAFrom ? new Date(storedArgs.dDateKOAFrom) : null,\n DDATE_KOA_TO: storedArgs.dDateKOATo ? new Date(storedArgs.dDateKOATo) : null,\n SDEPARTMENT: storedArgs.sCustomerDept || storedArgs.sDepartment,\n NSTATE: storedArgs.nState\n },\n attributeValueProcessor: (name, val) => [\"DDOCDATE\", \"DDATEFACT_BEG\", \"DDATEFACT_END\"].includes(name) ? (0,_core_utils__WEBPACK_IMPORTED_MODULE_2__.formatDateRF)(val) : val,\n respArg: \"COUT\"\n });\n setDataGrid(pv => ({\n ...pv,\n ...data.XDATA_GRID,\n columnsDef: data.XDATA_GRID.columnsDef ? [...data.XDATA_GRID.columnsDef] : pv.columnsDef || [],\n rows: pv.pageNumber == 1 ? [...(data.XDATA_GRID.rows || [])] : [...(pv.rows || []), ...(data.XDATA_GRID.rows || [])],\n dataLoaded: true,\n reloading: false,\n morePages: (data.XDATA_GRID.rows || []).length >= 10\n }));\n } catch (e) {\n setDataGrid(pv => ({\n ...pv,\n loaded: false,\n reload: false\n }));\n }\n };\n //При необходимости перезагрузить\n if (dataGrid.reloading) loadDataGrid();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [dataGrid.reloading, executeStored]);\n\n //Возвращаем график\n return {\n dataGrid,\n handleReload,\n handleFilterChanged,\n handleOrderChanged,\n handlePagesCountChanged\n };\n};\n\n//----------------\n//Интерфейс модуля\n//----------------\n\n\n\n//# sourceURL=webpack://parus_8_panels_plugin/./app/panels/hauler_anl/hooks/hooks.js?");
/***/ }),
diff --git a/p8panels.config b/p8panels.config
index 4fba77d..7acc403 100644
--- a/p8panels.config
+++ b/p8panels.config
@@ -17,7 +17,7 @@
-
+
@@ -205,18 +205,18 @@
showInPanelsList="true"
preview="./img/clnt_task_board.jpg"/>
{
fullWidth
/>
-
+
{
}, [filterValues, filterInfo, filterCalcs]);
//Состояние графика информации АТС
- const { chartInfo, handleReload: handleChartInfoReload } = useChartInfo({ storedArgs: allFilters });
+ const { chartInfo, handleReload: handleChartInfoReload, loading: chartInfoLoading } = useChartInfo({ storedArgs: allFilters });
//Состояние графика расчетов
const { chartCalcs, handleReload: handleChartCalcsReload } = useChartCalcs({ storedArgs: allFilters });
@@ -159,7 +159,7 @@ const HaulerAnl = () => {
{hasValue(filterInfo.nState) ? (
) : null}
- {chartInfo.loaded ? (
+ {chartInfo.loaded && !chartInfoLoading ? (
) : null}
diff --git a/hauler_anl/hooks/dict_hooks.js b/panels/hauler_anl/hooks/dict_hooks.js
similarity index 100%
rename from hauler_anl/hooks/dict_hooks.js
rename to panels/hauler_anl/hooks/dict_hooks.js
diff --git a/hauler_anl/hooks/filter_hooks.js b/panels/hauler_anl/hooks/filter_hooks.js
similarity index 100%
rename from hauler_anl/hooks/filter_hooks.js
rename to panels/hauler_anl/hooks/filter_hooks.js
diff --git a/hauler_anl/hooks/hooks.js b/panels/hauler_anl/hooks/hooks.js
similarity index 96%
rename from hauler_anl/hooks/hooks.js
rename to panels/hauler_anl/hooks/hooks.js
index 8074f0f..d6f85b1 100644
--- a/hauler_anl/hooks/hooks.js
+++ b/panels/hauler_anl/hooks/hooks.js
@@ -9,7 +9,7 @@
import { useState, useContext, useCallback, useEffect } from "react"; //Классы React
import { BackEndСtx } from "../../../context/backend"; //Контекст взаимодействия с сервером
-import { object2Base64XML, formatDateRF } from "../../../core/utils";
+import { object2Base64XML, formatDateRF } from "../../../core/utils"; //Вспомогательные функции
//--------------------------
//Вспомогательные компоненты
@@ -24,6 +24,9 @@ const useChartInfo = ({ storedArgs = {} }) => {
//Собственное состояние - график
const [chartInfo, setChartInfo] = useState({ loaded: false, reload: false });
+ //Собственное состояние - загрузка данных
+ const [loading, setLoading] = useState(false);
+
//Подключение к контексту взаимодействия с сервером
const { executeStored } = useContext(BackEndСtx);
@@ -35,6 +38,7 @@ const useChartInfo = ({ storedArgs = {} }) => {
//Загрузка данных графика с сервера
const loadChart = async () => {
try {
+ setLoading(true);
const chart = await executeStored({
stored: "UDO_PKG_P8PANELS_HAULER_ANL.CHART_ATC_INFO",
args: {
@@ -47,6 +51,8 @@ const useChartInfo = ({ storedArgs = {} }) => {
setChartInfo(pv => ({ ...pv, loaded: true, reload: false, ...chart.XCHART }));
} catch (e) {
setChartInfo(pv => ({ ...pv, loaded: false, reload: false }));
+ } finally {
+ setLoading(false);
}
};
//При необходимости перезагрузить
@@ -55,7 +61,7 @@ const useChartInfo = ({ storedArgs = {} }) => {
}, [chartInfo.reload, executeStored]);
//Возвращаем график
- return { chartInfo, handleReload };
+ return { chartInfo, handleReload, loading };
};
//Хук графика КГТ/КОА
diff --git a/hauler_anl/index.js b/panels/hauler_anl/index.js
similarity index 100%
rename from hauler_anl/index.js
rename to panels/hauler_anl/index.js
diff --git a/hauler_anl/layouts.js b/panels/hauler_anl/layouts.js
similarity index 100%
rename from hauler_anl/layouts.js
rename to panels/hauler_anl/layouts.js
diff --git a/repair_anl_atc/chart_filter.js b/panels/repair_anl_atc/chart_filter.js
similarity index 100%
rename from repair_anl_atc/chart_filter.js
rename to panels/repair_anl_atc/chart_filter.js
diff --git a/repair_anl_atc/filter.js b/panels/repair_anl_atc/filter.js
similarity index 100%
rename from repair_anl_atc/filter.js
rename to panels/repair_anl_atc/filter.js
diff --git a/repair_anl_atc/filter_dialog.js b/panels/repair_anl_atc/filter_dialog.js
similarity index 100%
rename from repair_anl_atc/filter_dialog.js
rename to panels/repair_anl_atc/filter_dialog.js
diff --git a/repair_anl_atc/hooks/dict_hooks.js b/panels/repair_anl_atc/hooks/dict_hooks.js
similarity index 100%
rename from repair_anl_atc/hooks/dict_hooks.js
rename to panels/repair_anl_atc/hooks/dict_hooks.js
diff --git a/repair_anl_atc/hooks/filter_hooks.js b/panels/repair_anl_atc/hooks/filter_hooks.js
similarity index 100%
rename from repair_anl_atc/hooks/filter_hooks.js
rename to panels/repair_anl_atc/hooks/filter_hooks.js
diff --git a/repair_anl_atc/hooks/hooks.js b/panels/repair_anl_atc/hooks/hooks.js
similarity index 100%
rename from repair_anl_atc/hooks/hooks.js
rename to panels/repair_anl_atc/hooks/hooks.js
diff --git a/repair_anl_atc/index.js b/panels/repair_anl_atc/index.js
similarity index 100%
rename from repair_anl_atc/index.js
rename to panels/repair_anl_atc/index.js
diff --git a/repair_anl_atc/layouts.js b/panels/repair_anl_atc/layouts.js
similarity index 100%
rename from repair_anl_atc/layouts.js
rename to panels/repair_anl_atc/layouts.js
diff --git a/repair_anl_atc/repair_anl_atc.js b/panels/repair_anl_atc/repair_anl_atc.js
similarity index 100%
rename from repair_anl_atc/repair_anl_atc.js
rename to panels/repair_anl_atc/repair_anl_atc.js