diff --git a/DEMO/demo.sql b/DEMO/demo.sql index 3c25e1a30..df74fb7b2 100644 --- a/DEMO/demo.sql +++ b/DEMO/demo.sql @@ -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