Real-time monitors capacitieve planning

svn path=/Customer/trunk/; revision=23027
This commit is contained in:
Peter Koerhuis
2014-10-20 14:34:14 +00:00
parent 49307f32f2
commit e10b06b2d8

View File

@@ -2490,4 +2490,508 @@ BEGIN fac.registercustversion('DEMO', 0); END;
/
commit;
spool off
--- CAPACITATIEVE PLANNING, 'GELEEND' VAN ARAI ---------------------------------
-- Alle (potentiele) uitvoerders met de disciplines waarvoor ze uitvoerder kunnen zijn.
CREATE OR REPLACE VIEW demo_v_uitvoerders
AS
SELECT DISTINCT p.prs_perslid_key,
pf.prs_perslid_naam_full,
p.prs_perslid_naam,
p.prs_perslid_voornaam,
p.prs_perslid_voorletters,
p.prs_perslid_dienstverband,
sp.prs_srtperslid_omschrijving,
p.prs_afdeling_key,
a.prs_afdeling_omschrijving,
d.ins_discipline_key,
d.ins_discipline_omschrijving
FROM prs_perslid p, prs_srtperslid sp, prs_afdeling a, mld_discipline d, fac_groeprechten gr, fac_gebruikersgroep gg, fac_functie f, prs_v_perslid_fullnames pf
WHERE p.prs_perslid_key = gg.prs_perslid_key
AND p.prs_perslid_key = pf.prs_perslid_key
AND p.prs_srtperslid_key = sp.prs_srtperslid_key
AND p.prs_afdeling_key = a.prs_afdeling_key
AND gr.fac_groep_key = gg.fac_groep_key
AND gr.ins_discipline_key = d.ins_discipline_key
AND gr.fac_functie_key = f.fac_functie_key
AND f.fac_functie_code = 'WEB_MLDORD';
CREATE OR REPLACE VIEW demo_v_uitvoerders_full
AS SELECT DISTINCT prs_perslid_key, prs_perslid_naam_full FROM demo_v_uitvoerders;
-- Teamlid welke nu (!), op dit moment (!) een (of meer) lopende opdracht(en) heeft.
-- Alle uitvoerders met alle opdrachten in de tijd uitgezet.
CREATE OR REPLACE VIEW demo_v_opdr_uitvoerders
AS
SELECT p.prs_perslid_key,
pf.prs_perslid_naam_full,
p.prs_perslid_naam,
p.prs_perslid_voornaam,
p.prs_perslid_voorletters,
p.prs_perslid_dienstverband,
p.prs_afdeling_key,
a.prs_afdeling_omschrijving,
o.mld_melding_key,
o.mld_opdr_key,
o.mld_opdr_datumbegin,
o.mld_opdr_einddatum,
o.mld_opdr_uren,
o.mld_statusopdr_key,
s.mld_statusopdr_omschrijving
FROM prs_perslid p, mld_opdr o, mld_statusopdr s, prs_afdeling a, prs_v_perslid_fullnames pf
WHERE p.prs_perslid_key = o.mld_uitvoerende_keys
AND p.prs_perslid_key = pf.prs_perslid_key
AND o.mld_statusopdr_key = s.mld_statusopdr_key
AND p.prs_afdeling_key = a.prs_afdeling_key;
CREATE OR REPLACE VIEW demo_v_opdr_uitvoerders_all
AS
SELECT prs_perslid_key,
prs_perslid_naam_full,
prs_perslid_naam,
prs_perslid_voornaam,
prs_perslid_voorletters,
prs_perslid_dienstverband,
prs_afdeling_key,
prs_afdeling_omschrijving,
mld_melding_key,
mld_opdr_key,
mld_opdr_datumbegin,
mld_opdr_einddatum,
mld_opdr_uren,
mld_statusopdr_omschrijving
FROM demo_v_opdr_uitvoerders
WHERE mld_statusopdr_key IN (5,8)
UNION
SELECT DISTINCT prs_perslid_key,
prs_perslid_naam_full,
prs_perslid_naam,
prs_perslid_voornaam,
prs_perslid_voorletters,
prs_perslid_dienstverband,
prs_afdeling_key,
prs_afdeling_omschrijving,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL
FROM demo_v_uitvoerders p WHERE NOT EXISTS (SELECT 'x' FROM demo_v_opdr_uitvoerders u WHERE u.prs_perslid_key = p.prs_perslid_key);
CREATE OR REPLACE VIEW demo_v_opdr_uitvoerders_grp
( prs_perslid_key,
prs_perslid_naam_full,
prs_perslid_naam,
prs_perslid_voornaam,
prs_perslid_voorletters,
prs_perslid_dienstverband_uren,
prs_afdeling_key,
prs_afdeling_omschrijving,
aantal_opdrachten,
som_mld_opdr_uren,
url)
AS
SELECT prs_perslid_key,
prs_perslid_naam_full,
prs_perslid_naam,
prs_perslid_voornaam,
prs_perslid_voorletters,
COALESCE(40*prs_perslid_dienstverband/100,0),
prs_afdeling_key,
prs_afdeling_omschrijving,
COUNT(mld_opdr_key),
COALESCE(SUM(mld_opdr_uren),0),
'appl/mld/opdr_search.asp?urole=bo' || '&' || 'autosearch=1' || '&' || 'handler_key=' || prs_perslid_key
FROM demo_v_opdr_uitvoerders_all
GROUP BY prs_perslid_key,
prs_perslid_naam_full,
prs_perslid_naam,
prs_perslid_voornaam,
prs_perslid_voorletters,
prs_perslid_dienstverband,
prs_afdeling_key,
prs_afdeling_omschrijving;
CREATE OR REPLACE VIEW demo_v_opdr_afdeling_grp
( prs_afdeling_key,
prs_afdeling_omschrijving,
aantal_opdrachten,
som_mld_opdr_uren,
url)
AS
SELECT prs_afdeling_key,
prs_afdeling_omschrijving,
COUNT(mld_opdr_key),
COALESCE(SUM(mld_opdr_uren),0),
NULL
FROM demo_v_opdr_uitvoerders_all
GROUP BY prs_afdeling_key,
prs_afdeling_omschrijving;
-- Dienstverband uren van medewerkers bij volle week, dus b.v. 40, 32, 30 etc
-- Beschikbare_uren_groen: normaal dienstverband, maar als ergen midden in de week, dan dienstverband - aantal voorbije dagen * # uren bij medewerker - # uren van vandaag gerekend vanaf 9 uur smorgens
-- Opdracht_uren_rood: opdrachturen bij medewerker, maar niet meer dan Beschikbare_uren_groen
CREATE OR REPLACE VIEW demo_v_opdr_uitvoerders_wk0
(
prs_perslid_key,
prs_afdeling_key,
prs_perslid_naam_full,
prs_perslid_dienstverband_uren,
beschikbare_uren_groen,
opdracht_uren_rood,
url
)
AS
SELECT prs_perslid_key,
prs_afdeling_key,
prs_perslid_naam_full,
prs_perslid_dienstverband_uren,
prs_perslid_dienstverband_uren -
( GREATEST( (TO_CHAR(SYSDATE,'D')-2),0)*(prs_perslid_dienstverband_uren/5) + (TO_CHAR(SYSDATE,'HH24') - 9) ) beschikbare_uren_groen,
LEAST(som_mld_opdr_uren, prs_perslid_dienstverband_uren - (GREATEST((TO_CHAR(SYSDATE,'D')-2),0)*(prs_perslid_dienstverband_uren/5) + (TO_CHAR(SYSDATE,'HH24') - 9) ) ) opdracht_uren_rood,
url
FROM demo_v_opdr_uitvoerders_grp;
CREATE OR REPLACE VIEW demo_v_graph_capac_mdw_week_0
(
prs_perslid_key,
FCLT_XAS_UITVOERDER,
FCLT_YAS_UREN,
FCLT_YAS2_UREN,
FCLT_URL
)
AS
SELECT prs_perslid_key,
prs_perslid_naam_full || ' (' || (opdracht_uren_rood) || '/' || beschikbare_uren_groen || ')',
opdracht_uren_rood,
beschikbare_uren_groen - opdracht_uren_rood,
url
FROM demo_v_opdr_uitvoerders_wk0;
CREATE OR REPLACE VIEW demo_v_opdr_uitvoerders_wk1
(
prs_perslid_key,
prs_afdeling_key,
prs_perslid_naam_full,
prs_perslid_dienstverband_uren,
beschikbare_uren_groen,
opdracht_uren_rood,
url
)
AS
SELECT g1.prs_perslid_key,
g1.prs_afdeling_key,
g1.prs_perslid_naam,
g1.prs_perslid_dienstverband_uren,
g1.prs_perslid_dienstverband_uren - LEAST(g1.som_mld_opdr_uren - w0.opdracht_uren_rood , g1.prs_perslid_dienstverband_uren) beschikbare_uren_groen,
LEAST(g1.som_mld_opdr_uren - w0.opdracht_uren_rood , g1.prs_perslid_dienstverband_uren) opdracht_uren_rood,
g1.url
FROM demo_v_opdr_uitvoerders_grp g1, demo_v_opdr_uitvoerders_wk0 w0
WHERE g1.prs_perslid_key = w0.prs_perslid_key;
CREATE OR REPLACE VIEW demo_v_graph_capac_mdw_week_1
(
prs_perslid_key,
FCLT_XAS_UITVOERDER,
FCLT_YAS_UREN,
FCLT_YAS2_UREN,
FCLT_URL
)
AS
SELECT prs_perslid_key,
prs_perslid_naam_full || ' (' || (opdracht_uren_rood) || '/' || prs_perslid_dienstverband_uren || ')',
opdracht_uren_rood,
beschikbare_uren_groen,
url
FROM demo_v_opdr_uitvoerders_wk1;
CREATE OR REPLACE VIEW demo_v_opdr_uitvoerders_wk2
(
prs_perslid_key,
prs_afdeling_key,
prs_perslid_naam_full,
prs_perslid_dienstverband_uren,
beschikbare_uren_groen,
opdracht_uren_rood,
url
)
AS
SELECT g1.prs_perslid_key,
g1.prs_afdeling_key,
g1.prs_perslid_naam,
g1.prs_perslid_dienstverband_uren,
g1.prs_perslid_dienstverband_uren - LEAST(g1.som_mld_opdr_uren - w0.opdracht_uren_rood - w1.opdracht_uren_rood, g1.prs_perslid_dienstverband_uren) beschikbare_uren_groen,
LEAST(g1.som_mld_opdr_uren - w0.opdracht_uren_rood - w1.opdracht_uren_rood , g1.prs_perslid_dienstverband_uren) opdracht_uren_rood,
g1.url
FROM demo_v_opdr_uitvoerders_grp g1, demo_v_opdr_uitvoerders_wk0 w0, demo_v_opdr_uitvoerders_wk1 w1
WHERE g1.prs_perslid_key = w0.prs_perslid_key
AND g1.prs_perslid_key = w1.prs_perslid_key;
CREATE OR REPLACE VIEW demo_v_graph_capac_mdw_week_2
(
prs_perslid_key,
FCLT_XAS_UITVOERDER,
FCLT_YAS_UREN,
FCLT_YAS2_UREN,
FCLT_URL
)
AS
SELECT prs_perslid_key,
prs_perslid_naam_full || ' (' || (opdracht_uren_rood) || '/' || prs_perslid_dienstverband_uren || ')',
opdracht_uren_rood,
beschikbare_uren_groen,
url
FROM demo_v_opdr_uitvoerders_wk2;
CREATE OR REPLACE VIEW demo_v_graph_capac_TD_week_0
(
prs_perslid_key,
FCLT_XAS_UITVOERDER,
FCLT_YAS_UREN,
FCLT_YAS2_UREN,
FCLT_URL
)
AS
SELECT prs_perslid_key,
prs_perslid_naam_full || ' (' || (opdracht_uren_rood) || '/' || beschikbare_uren_groen || ')',
opdracht_uren_rood,
beschikbare_uren_groen - opdracht_uren_rood,
url
FROM demo_v_opdr_uitvoerders_wk0
WHERE prs_afdeling_key = 630;
-- Grafiek van de medewerkers Technische Dienst Electra (key = 98)
CREATE OR REPLACE VIEW demo_v_graph_capac_ELE_week_0
(
prs_perslid_key,
FCLT_XAS_UITVOERDER,
FCLT_YAS_,
FCLT_YAS2_,
FCLT_URL
)
AS
SELECT prs_perslid_key,
prs_perslid_naam_full || ' (' || (opdracht_uren_rood) || '/' || beschikbare_uren_groen || ')',
opdracht_uren_rood,
beschikbare_uren_groen - opdracht_uren_rood,
url
FROM demo_v_opdr_uitvoerders_wk0
WHERE prs_afdeling_key = 31481;
-- Grafiek van de medewerkers Technische Dienst Werktuigbouw (key = 99)
CREATE OR REPLACE VIEW demo_v_graph_capac_WTB_week_0
(
prs_perslid_key,
FCLT_XAS_UITVOERDER,
FCLT_YAS_,
FCLT_YAS2_,
FCLT_URL
)
AS
SELECT prs_perslid_key,
prs_perslid_naam_full || ' (' || (opdracht_uren_rood) || '/' || beschikbare_uren_groen || ')',
opdracht_uren_rood,
beschikbare_uren_groen - opdracht_uren_rood,
url
FROM demo_v_opdr_uitvoerders_wk0
WHERE prs_afdeling_key = 31482;
-- Grafiek van de medewerkers Technische Dienst (key = 97)
CREATE OR REPLACE VIEW demo_v_graph_capac_TD_week_1
(
prs_perslid_key,
FCLT_XAS_,
FCLT_YAS_UREN,
FCLT_YAS2_UREN,
FCLT_URL
)
AS
SELECT prs_perslid_key,
prs_perslid_naam_full || ' (' || (opdracht_uren_rood) || '/' || prs_perslid_dienstverband_uren || ')',
opdracht_uren_rood,
beschikbare_uren_groen,
url
FROM demo_v_opdr_uitvoerders_wk1
WHERE prs_afdeling_key = 630;
-- Grafiek van de medewerkers Technische Dienst Electra (key = 98)
CREATE OR REPLACE VIEW demo_v_graph_capac_ELE_week_1
(
prs_perslid_key,
FCLT_XAS_,
FCLT_YAS_,
FCLT_YAS2_,
FCLT_URL
)
AS
SELECT prs_perslid_key,
prs_perslid_naam_full || ' (' || (opdracht_uren_rood) || '/' || prs_perslid_dienstverband_uren || ')',
opdracht_uren_rood,
beschikbare_uren_groen,
url
FROM demo_v_opdr_uitvoerders_wk1
WHERE prs_afdeling_key = 31481;
-- Grafiek van de medewerkers Technische Dienst Werktuigbouw (key = 99)
CREATE OR REPLACE VIEW demo_v_graph_capac_WTB_week_1
(
prs_perslid_key,
FCLT_XAS_,
FCLT_YAS_,
FCLT_YAS2_,
FCLT_URL
)
AS
SELECT prs_perslid_key,
prs_perslid_naam_full || ' (' || (opdracht_uren_rood) || '/' || prs_perslid_dienstverband_uren || ')',
opdracht_uren_rood,
beschikbare_uren_groen,
url
FROM demo_v_opdr_uitvoerders_wk1
WHERE prs_afdeling_key = 31482;
CREATE OR REPLACE VIEW demo_v_graph_capac_TD_week_2
(
prs_perslid_key,
FCLT_XAS_,
FCLT_YAS_UREN,
FCLT_YAS2_UREN,
FCLT_URL
)
AS
SELECT prs_perslid_key,
prs_perslid_naam_full || ' (' || (opdracht_uren_rood) || '/' || prs_perslid_dienstverband_uren || ')',
opdracht_uren_rood,
beschikbare_uren_groen,
url
FROM demo_v_opdr_uitvoerders_wk2
WHERE prs_afdeling_key = 630;
CREATE OR REPLACE VIEW demo_v_graph_capac_ELE_week_2
(
prs_perslid_key,
FCLT_XAS_,
FCLT_YAS_,
FCLT_YAS2_,
FCLT_URL
)
AS
SELECT prs_perslid_key,
prs_perslid_naam_full || ' (' || (opdracht_uren_rood) || '/' || prs_perslid_dienstverband_uren || ')',
opdracht_uren_rood,
beschikbare_uren_groen,
url
FROM demo_v_opdr_uitvoerders_wk2
WHERE prs_afdeling_key = 31481;
CREATE OR REPLACE VIEW demo_v_graph_capac_WTB_week_2
(
prs_perslid_key,
FCLT_XAS_,
FCLT_YAS_,
FCLT_YAS2_,
FCLT_URL
)
AS
SELECT prs_perslid_key,
prs_perslid_naam_full || ' (' || (opdracht_uren_rood) || '/' || prs_perslid_dienstverband_uren || ')',
opdracht_uren_rood,
beschikbare_uren_groen,
url
FROM demo_v_opdr_uitvoerders_wk2
WHERE prs_afdeling_key = 31482;
CREATE OR REPLACE VIEW demo_v_capac_mdw_max_weeknr
(max_weeknr)
AS
SELECT ROUND(COALESCE(MAX(som_mld_opdr_uren), 0) / 40 ) + 2
FROM demo_v_opdr_uitvoerders_grp;
CREATE OR REPLACE VIEW demo_v_graph_capac_mdw_all
(
prs_perslid_key,
prs_perslid_naam_full,
prs_perslid_dienstverband_uren,
beschikbare_uren_groen,
opdracht_uren_rood,
url
)
AS
SELECT prs_perslid_key,
prs_perslid_naam_full,
prs_perslid_dienstverband_uren,
40 * max_weeknr,
ROUND(som_mld_opdr_uren * (40 / prs_perslid_dienstverband_uren)),
url
FROM demo_v_opdr_uitvoerders_grp, demo_v_capac_mdw_max_weeknr;
CREATE OR REPLACE VIEW demo_v_graph_capac_mdw_totaal
(
prs_perslid_key,
FCLT_XAS_UITVOERDER,
FCLT_YAS_UREN,
FCLT_URL
)
AS
SELECT prs_perslid_key,
prs_perslid_naam_full || ' (' || prs_perslid_dienstverband_uren || ')',
opdracht_uren_rood,
url
FROM demo_v_graph_capac_mdw_all;
CREATE OR REPLACE VIEW demo_v_graph_aantopdr_mdw_all
(
prs_perslid_key,
FCLT_XAS_UITVOERDER,
FCLT_YAS_AANTAL,
FCLT_URL
)
AS
SELECT prs_perslid_key,
prs_perslid_naam_full,
aantal_opdrachten,
url
FROM demo_v_opdr_uitvoerders_grp;
CREATE OR REPLACE VIEW demo_v_graph_capac_afd_totaal
(
prs_afdeling_key,
FCLT_XAS_AFDELING,
FCLT_YAS_UREN,
FCLT_URL
)
AS
SELECT prs_afdeling_key,
prs_afdeling_omschrijving,
som_MLD_OPDR_UREN,
url
FROM demo_v_opdr_afdeling_grp;
CREATE OR REPLACE VIEW demo_v_graph_aantopdr_afd_all
(
prs_afdeling_key,
FCLT_XAS_AFDELING,
FCLT_YAS_AANTAL,
FCLT_URL
)
AS
SELECT prs_afdeling_key,
prs_afdeling_omschrijving,
aantal_opdrachten,
url
FROM demo_v_opdr_afdeling_grp;
BEGIN adm.systrackscriptId('$Id$'); END;
/
BEGIN fac.registercustversion('DEMO', 2); END;
/
COMMIT;
SPOOL OFF