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; /