Authorisation
The user must be authorised to access these statistics and must also have at least reading rights to the selected group. Further information can be found in the article Using Evaluations.
Technical information
The evaluation is generated with the following SQL query:
EP capacity per group and week
declare
@INNO_USER
varchar
(12) = :INNO_USER;
declare
@INNO_USER_LANG
int
= :INNO_USER_LANG;
declare
@DATE_FROM
Date
= :date_from;
declare
@DATE_TO
Date
= :date_to;
declare
@USER_GRNR
int
= :user_grnr;
--declare @INNO_USER varchar(12) = 'inno';
--declare @INNO_USER_LANG int = 0;
--declare @DATE_FROM Date = '29.08.2016';
--declare @DATE_TO Date = '02.02.2018';
--declare @USER_GRNR int = 1;
--ARBEIT vorbereiten
IF OBJECT_ID(
'tempdb..#arbeiten'
,
'U'
)
IS
NOT
NULL
drop
table
#arbeiten;
create
table
#arbeiten
(
grnr
int
not
null
,
datumdt
date
not
null
,
arbeit
float
not
null
,
primary
key
(grnr, datumdt)
)
insert
into
#arbeiten
select
fet.fact_grnr grnr,
fet.DatumDT,
sum
(fet.ARBEITSZEIT)
as
arbeit
from
FACT_EINSAETZE_TAGE fet
where
fet.fact_grnr
in
(
select
pg.grnr
from
pwgrupp pg
where
pg.
NAME
= @INNO_USER
and
pg.RECHT >= 3)
and
fet.fact_ogrnr
in
(
select
pog.ogrnr
from
pwogrupp pog
where
pog.
NAME
= @INNO_USER
and
pog.Recht >= 1)
and
fet.DatumDT >= @DATE_FROM
and
fet.DatumDT <= @DATE_TO
and
fet.knr
in
(
select
distinct
(knr)
from
option_k
where
typ
in
(4, 5, 6, 7))
and
fet.Fact_GrNr = @USER_GRNR
group
by
fet.fact_grnr,
fet.DatumDT;
--FEHL vorbereiten
IF OBJECT_ID(
'tempdb..#fehl'
,
'U'
)
IS
NOT
NULL
drop
table
#fehl;
create
table
#fehl
(
grnr
int
not
null
,
datumdt
date
not
null
,
fehl
float
not
null
,
primary
key
(grnr, datumdt)
)
insert
into
#fehl
select
fet.fact_grnr grnr,
fet.DatumDT,
sum
(fet.ARBEITSZEIT)
as
fehl
from
FACT_EINSAETZE_TAGE fet
where
fet.fact_grnr
in
(
select
pg.grnr
from
pwgrupp pg
where
pg.
NAME
= @INNO_USER
and
pg.RECHT >= 3)
and
fet.fact_ogrnr
in
(
select
pog.ogrnr
from
pwogrupp pog
where
pog.
NAME
= @INNO_USER
and
pog.Recht >= 1)
and
fet.DatumDT >= @DATE_FROM
and
fet.DatumDT <= @DATE_TO
and
fet.knr
in
(
select
distinct
(knr)
from
option_k
where
typ
in
(1,2))
and
fet.Fact_GrNr = @USER_GRNR
group
by
fet.fact_grnr,
fet.DatumDT;
--KAPA vorbereiten
IF OBJECT_ID(
'tempdb..#kapa'
,
'U'
)
IS
NOT
NULL
drop
table
#kapa;
create
table
#kapa
(
grnr
int
not
null
,
datumdt
date
not
null
,
kapa
float
not
null
,
primary
key
(grnr, datumdt)
)
insert
into
#kapa
select
frk.grnr,
frk.DatumDT,
sum
(frk.KAPA_RESSOURCE) kapa
from
FACT_RESS_KAPA frk
where
frk.grnr
in
(
select
pg.grnr
from
pwgrupp pg
where
pg.
NAME
= @INNO_USER
and
pg.RECHT >= 3)
and
frk.ogrnr
in
(
select
pog.ogrnr
from
pwogrupp pog
where
pog.
NAME
= @INNO_USER
and
pog.Recht >= 1)
and
frk.DatumDT >= @DATE_FROM
and
frk.DatumDT <= @DATE_TO
and
frk.GrNr = @USER_GRNR
group
by
frk.grnr,
frk.DatumDT;
select
dd.Woche,
dd.Jahr,
RIGHT
(
'0'
+
cast
(dd.Woche
as
varchar
), 2) +
'.'
+
cast
(dd.Jahr
as
varchar
)
as
Zeiteinheit,
round(
sum
(
coalesce
(a.arbeit, 0)), 2) arbeit,
'RED'
as
arbeit_color,
round(
sum
(
coalesce
(k.kapa, 0)), 2) kapa_soll,
'ORANGE'
as
kapa_soll_color,
round(
sum
(
coalesce
(f.fehl, 0)), 2) fehl,
round(
sum
(
coalesce
(k.kapa, 0)) -
sum
(
coalesce
(f.fehl, 0)), 2) kapa_ist,
'GREEN'
as
kapa_ist_color,
round(
sum
(
coalesce
(k.kapa, 0)) -
sum
(
coalesce
(f.fehl, 0)) -
sum
(
coalesce
(a.arbeit, 0)), 2) kapa_frei
from
DIM_DATUM dd
left
outer
join
#kapa k
on
k.DatumDT = dd.DatumDT
left
outer
join
#fehl f
on
f.DatumDT = dd.DatumDT
left
outer
join
#arbeiten a
on
a.DatumDT = dd.DatumDT
where
dd.DatumDT >= @DATE_FROM
and
dd.DatumDT <= @DATE_TO
group
by
dd.Woche,dd.Jahr
order
by
dd.jahr, dd.woche
The interface is stored in the table "Statistic_UI" with the following data set:
INSERT capacity per group and CW
INSERT
INTO
STATISTIC_UI (ID,
NAME
, STATISTIC_CONFIGURATION, STATISTIC_CONTROLLER, CATEGORY_ID, DELETED, DESCRIPTION, IS_INTERNAL, OVERRIDDEN_BY)
VALUES
(
'{13540FB3-149E-4ED1-86F9-0A7BD09B06A8}19'
,
'Auslastung pro Gruppe und KW'
,
'{
"type": "STATISTIK",
"rows": [
{
"type": "ROW",
"rowItems": [
{
"type": "TABLECHART",
"width": "12",
"uid": "4a4c0dbb-ec1c-4b87-8ba2-e71900852e11",
"dataUrl": "api/dynamicapi/{205C8FC4-03D9-4C75-9634-CE9A6C9B7E72}36/GetData",
"titel": "{{{Statistik.VerfügbareKapazitätSollFehlBedarfPlanzeiten}}}",
"chartSettings": {
"theme": "bootstrap",
"autoSeries": [
{
"type": "line",
"style": "step",
"field": "KAPA_SOLL",
"colorField": "KAPA_SOLL_COLOR",
"color": "ORANGE",
"name": "{{{Statistik.SollKapazität}}}"
},
{
"type": "line",
"style": "step",
"field": "KAPA_IST",
"colorField": "KAPA_IST_COLOR",
"color": "GREEN",
"name": "{{{Statistik.VerfügbarSollFehl}}}"
},
{
"type": "column",
"field": "ARBEIT",
"colorField": "ARBEIT_COLOR",
"color": "RED",
"name": "{{{Statistik.Bedarf}}}"
}
],
"tooltip": {
"visible": true,
"template": ""
},
"chartArea": {
"margin": {
"left": 0
}
},
"valueAxis": {
"visible": false
},
"series": [
{
"type": "line",
"field": "KAPA_SOLL",
"colorField": "KAPA_SOLL_COLOR",
"color": "ORANGE",
"missingValues": "zero",
"visibleInLegend": false,
"name": "{{{Statistik.SollKapazität}}}",
"style": "step"
},
{
"type": "line",
"field": "KAPA_IST",
"colorField": "KAPA_IST_COLOR",
"color": "GREEN",
"missingValues": "zero",
"visibleInLegend": false,
"name": "{{{Statistik.VerfügbarSollFehl}}}",
"style": "step"
},
{
"type": "column",
"field": "ARBEIT",
"colorField": "ARBEIT_COLOR",
"color": "RED",
"missingValues": "zero",
"visibleInLegend": false,
"name": "{{{Statistik.Bedarf}}}"
}
]
},
"categoryAxis": {
"field": "ZEITEINHEIT"
},
"pageSize": "13",
"firstColumnWidth": "150",
"exportTemplate": "",
"chartHeight": "400"
}
],
"uid": "8bdfc3f5-61d8-476c-8038-aec51811a28a"
}
],
"parameters": [
{
"type": "DATE",
"width": "7",
"uid": "92bc1b28-ec61-4cf0-9163-5d091e39e524",
"name": "date_from",
"label": "{{{Standard.Von}}}"
},
{
"type": "DATE",
"width": "7",
"uid": "1509f2ba-a765-4870-9487-93f0aca4ae41",
"name": "date_to",
"label": "{{{Standard.Bis}}}"
},
{
"type": "SELECT",
"width": "12",
"uid": "d8440e15-e9ab-4add-9d6b-2e48db62cb05",
"label": "{{{Field.Ressource.gruppe}}}",
"dataUrl": "api/dynamicapi/{205C8FC4-03D9-4C75-9634-CE9A6C9B7E72}2/GetData",
"keyField": "GRNR",
"valueField": "GRUPPE",
"name": "user_grnr"
}
],
"settings": {
"type": "SETTINGS"
}
}'
,
'
var controller={};
controller.getInitialValues = function(paramsFromStorage, params, drilldownparams){
debugger;
if (drilldownparams) {
var Jahr = new Date().getFullYear();
var result = {};
result.date_from = drilldownparams.START_OF_CURRENT_WEEK;
result.date_to = '
'31.12.'
' + Jahr;
result.user_grnr = drilldownparams.GRNR;
return result;
}
//if (params)
//return params;
if (paramsFromStorage)
return paramsFromStorage;
}
controller;
'
, 0, 0,
'<h4>Kapazitäten für die gewählte Gruppe im gewählten Zeitraum:</h4>
<ul>
<li>Soll-Kapazität: Errechnet aus der bei der Ressource hinterlegten oder der systemweit eingestellten Arbeitszeit / Tag.
<br>Fremd-Ressourcen werden berücksichtigt, sobald ihnen ein Balken zugewiesen ist.
Die Soll-Kapazität erhöht sich dadurch für die Länge des Balkens um die im Balken erfasste Arbeitszeit / Tag.
<li>Verfügbar: Soll-Kapazität abzüglich der Fehlzeiten.
<li>Bedarf: Plankapazität aus Einsätzen vom Typ Adresse, Intern, Auftrag.
</ul>
<br>
<h4>Filter:</h4>
<ul><li>Start - Ende<li>Gruppe (unter Berücksichtigung der Benutzerberechtigung)</ul>'
, 1,
NULL
);