Files
Customer/VBGO/vbgo.sql
Arthur Egberink a11d0f8ef1 YAXX#90361 Verwijderen oude procedures
svn path=/Customer/trunk/; revision=70186
2025-09-02 11:24:41 +00:00

991 lines
43 KiB
MySQL

--
-- $Id$
--
-- Script containing customer specific db-configuration for VBGO.
DEFINE thisfile = 'VBGO.SQL'
DEFINE dbuser = '^VBGO'
SET ECHO ON
SET DEFINE ON
COLUMN fcltlogfile NEW_VALUE fcltlogfile NOPRINT;
COLUMN fcltcusttxt NEW_VALUE fcltcusttxt NOPRINT;
WHENEVER SQLERROR CONTINUE;
SELECT adm.getscriptspoolfile('&thisfile') AS fcltlogfile FROM DUAL;
SPOOL &fcltlogfile
WHENEVER SQLERROR EXIT;
SELECT adm.checkscriptcust('&dbuser') AS fcltcusttxt FROM DUAL;
WHENEVER SQLERROR CONTINUE;
---------------------------------------
PROMPT &fcltcusttxt
---------------------------------------
SET DEFINE OFF
------ payload begin ------
-- View voor reserveerbare (werkplek)OBJECTEN, het default thema met key 13
-- Deze core-view wordt direct als kleur-objecten-thema gebruikt, maar kan ook als basis voor een alternatief via worden gebruikt
-- Kijkt nu hard maximaal 42 dagen tov van nu vooruit, wat hopelijk even genoeg is voor alle situaties
-- De verschillende waardevarianten zijn presentatie alternatieven, evt meerdere regels onder elkaar
-- waarde1: Voor hele dagen: Vrij(0) of Bezet (3)
-- waarde: Voor halve dagen: Vrij(0), Ochtendbezet(1), MiddagBezet(2), Helemaalbezet(3) of het type werkplek (kenmerk bij deel)
-- waarde3: Voor tellen: Het aantal reservering op de dag, met 0 is dus Vrij
CREATE OR REPLACE VIEW vbgo_v_thema_wp_res_datum
AS
WITH
datums
AS
( SELECT TRUNC (SYSDATE) + LEVEL - 1 datum
FROM DUAL
CONNECT BY LEVEL <= 42)
SELECT datum
fclt_f_datum,
ins_deel_key,
MIN (res_rsv_deel_van)
min_van,
MAX (res_rsv_deel_tot)
max_tot,
CASE WHEN MAX (res_rsv_deel_tot) IS NULL THEN 0 ELSE 3 -- hele dag
END
waarde1,
CASE
WHEN MAX (res_rsv_deel_tot) IS NULL THEN FAC.safe_to_number(fac_usrdata_code)
WHEN TO_CHAR (MAX (res_rsv_deel_tot), 'HH24') <= 13 THEN 1 -- ochtend
WHEN TO_CHAR (MIN (res_rsv_deel_van), 'HH24') >= 12 THEN 2 -- middag
ELSE 3 -- hele dag
END
waarde,
COUNT (res_rsv_deel_tot) -- aantal reservering deze dag
waarde3
FROM (SELECT datums.datum,
res_ins_deel_key ins_deel_key,
res_rsv_deel_van,
res_rsv_deel_tot,
fac_usrdata_code
FROM res_v_aanwezigdeel r,
ins_deel d,
datums,
ins_kenmerkdeel kd,
fac_usrdata ud,
(SELECT datum,
res_deel_key,
res_rsv_deel_van,
res_rsv_deel_tot
FROM datums, res_v_aanwezigrsv_deel rrd
WHERE res_rsv_deel_van > TRUNC(SYSDATE) - 1 -- negeer alle irrelevante historie sowieso
AND datum + 1 >= res_rsv_deel_van
AND datum < res_rsv_deel_tot) blokkerend -- vandaag en nog niet afgelopen
WHERE r.res_deel_key = blokkerend.res_deel_key(+)
AND datums.datum = blokkerend.datum(+)
AND (r.res_deel_vervaldatum IS NULL or r.res_deel_vervaldatum > datums.datum)
AND d.ins_deel_key = r.res_ins_deel_key
AND d.ins_deel_key = kd.ins_deel_key
AND kd.ins_kenmerk_key = 1 -- type werkplek
AND FAC.safe_to_number(ins_kenmerkdeel_waarde) = ud.fac_usrdata_key)
GROUP BY datum, ins_deel_key, fac_usrdata_code
ORDER BY datum, ins_deel_key;
-- rapportage voor vergaderdisplays
CREATE OR REPLACE VIEW vbgo_v_rap_res_room_display
AS
SELECT prs_perslid_naam_friendly
res_rsv_ruimte_host_friendly,
res_ruimte_nr,
TO_CHAR (COALESCE (rrr.res_rsv_ruimte_van, SYSDATE), 'Day')
dagvdweek,
TO_CHAR (COALESCE (rrr.res_rsv_ruimte_van, SYSDATE), 'Month')
maand,
TO_CHAR (COALESCE (rrr.res_rsv_ruimte_van, SYSDATE), 'YYYY')
jaar,
TO_CHAR (COALESCE (rrr.res_rsv_ruimte_van, SYSDATE), 'DD')
dag,
DECODE (rrr.res_rsv_ruimte_key, NULL, 'Vrij',
DECODE(SIGN(rrr.res_rsv_ruimte_van - SYSDATE), 1, 'Vrij', 'Bezet'))
status,
TO_CHAR (rrr.res_rsv_ruimte_van, 'hh24:mi')
res_rsv_ruimte_van,
TO_CHAR (rrr.res_rsv_ruimte_tot, 'hh24:mi')
res_rsv_ruimte_tot,
rar.res_alg_ruimte_key
FROM res_ruimte rr,
res_rsv_ruimte rrr,
prs_v_perslid_fullnames pf,
res_alg_ruimte rar,
(SELECT *
FROM res_v_rsv_ruimte_2_alg_ruimte
WHERE res_rsv_ruimte_tot > SYSDATE
AND TRUNC(res_rsv_ruimte_van) = TRUNC(SYSDATE))
r2a
WHERE rr.res_ruimte_key = r2a.res_ruimte_key(+)
AND r2a.res_rsv_ruimte_key = rrr.res_rsv_ruimte_key(+)
AND rrr.res_rsv_ruimte_host_key = pf.prs_perslid_key(+)
AND rr.res_ruimte_key = rar.res_ruimte_key;
-- View om een catalogus te exporteren die daarna weer ingelezen kan worden.
-- Hopelijk komt hier met YAXX#78417 een generieke oplossing voor.
CREATE OR REPLACE VIEW vbgo_v_rap_sync_catalogus
AS
SELECT d.ins_discipline_omschrijving catalogus_naam,
b.prs_bedrijf_naam leverancier,
NULL cat_datum,
sd.bes_srtdeel_nr artikelnr,
sg.bes_srtgroep_omschrijving groep,
sd.bes_srtdeel_omschrijving omschrijving,
REPLACE (TO_CHAR (bes.getsrtdeelprijs (sd.bes_srtdeel_key, NULL)), ',', '.') prijs,
sd.bes_srtdeel_eenheid eenheid,
sd.bes_srtdeel_image picture,
sd.bes_srtdeel_veelvoud orderaantal,
sd.bes_srtdeel_btw tax,
TO_CHAR (sd.bes_srtdeel_vervaldatum, 'yyyymmdd') duedate,
REPLACE (TO_CHAR (bes.getsrtdeelinkprijs (sd.bes_srtdeel_key, NULL)), ',', '.') inkoopprijs,
bes_srtdeel_minimum minimum,
bes_staffeltabel_naam staffeltabel,
bes_srtdeel_wijzigdagen wijzigdagen,
bes_srtdeel_annuleerdagen annuleerdagen,
bes_srtdeel_opmerking opmerking
FROM bes_srtdeel sd,
bes_srtgroep sg,
bes_discipline d,
prs_bedrijf b,
bes_staffeltabel st
WHERE sd.bes_srtgroep_key = sg.bes_srtgroep_key
AND sg.ins_discipline_key = d.ins_discipline_key
AND sd.prs_bedrijf_key = b.prs_bedrijf_key
AND sd.bes_staffeltabel_key = st.bes_staffeltabel_key(+)
AND sd.bes_srtdeel_verwijder IS NULL
AND sg.bes_srtgroep_verwijder IS NULL;
-- Views overgenomen uit de Yask omgeving
CREATE OR REPLACE VIEW vbgo_v_kosten_doorbelasting
AS
SELECT sd.ins_srtdiscipline_prefix || m.mld_melding_key meldingnummer,
m.mld_melding_key,
l.alg_locatie_omschrijving meldinglocatie,
pf.prs_perslid_naam_full melder,
sd.ins_srtdiscipline_omschrijving soortmelding,
d.ins_discipline_omschrijving productgroep,
std.mld_stdmelding_omschrijving subproductgroep,
ksm.prs_kostensoort_oms melding_nen_omschrijving,
ksm.prs_kostensoort_refcode melding_nen_code,
CASE
WHEN m.mld_melding_status = 5 AND m.mld_melding_afgerond = 1
THEN
'Afgerond'
ELSE
ms.mld_statuses_omschrijving
END
meldingstatus,
fs.fac_usrdata_omschr facturatiestatus,
m.mld_melding_datum meldingdatum,
MLD.getmeldingstatusdate (m.mld_melding_key, 5) afgemeld,
m.mld_melding_onderwerp onderwerp,
m.mld_melding_omschrijving vomschrijving,
sd.ins_srtdiscipline_prefix || m.mld_melding_key || '/' || o.mld_opdr_bedrijfopdr_volgnr opdrachtnummer,
ot.mld_typeopdr_omschrijving opdrachttype,
so.mld_statusopdr_omschrijving opdrachtstatus,
o.mld_opdr_omschrijving opdrachtomschrijving,
kso.prs_kostensoort_oms opdracht_nen_omschrijving,
b.prs_bedrijf_naam opdrachtuitvoerende,
o.mld_opdr_kosten opdrachtkosten,
'Geen' soortopslag,
0 opslag,
o.mld_opdr_kosten kostenplusopslag,
NULL geenopslag,
NULL boekmaand,
aog.alg_gebouw_naam meldinggebouw,
(SELECT mld_kenmerkmelding_waarde FROM mld_kenmerkmelding km WHERE km.mld_melding_key = m.mld_melding_key AND km.mld_kenmerk_key = 182) klant_inkoopordernr, -- keys uit Yask omgeving.
(SELECT mld_kenmerkmelding_waarde FROM mld_kenmerkmelding km WHERE km.mld_melding_key = m.mld_melding_key AND km.mld_kenmerk_key = 181) klant_kostenplaats,
(SELECT mld_kenmerkmelding_waarde FROM mld_kenmerkmelding km WHERE km.mld_melding_key = m.mld_melding_key AND km.mld_kenmerk_key = 183) klant_werkorder,
o.mld_opdr_key,
l.alg_district_key
FROM prs_v_perslid_fullnames_all pf,
prs_kostensoort ksm,
mld_statuses ms,
mld_opdr o,
mld_typeopdr ot,
mld_statusopdr so,
prs_bedrijf b,
alg_locatie l,
prs_kostensoort kso,
mld_melding m,
mld_stdmelding std,
ins_tab_discipline d,
ins_srtdiscipline sd,
alg_v_allonrgoed_gegevens aog,
(SELECT mld_melding_key, fac_usrdata_omschr
FROM fac_usrdata ud, mld_kenmerkmelding km
WHERE km.mld_kenmerk_key = 1 -- Facturatiestatus
AND FAC.safe_to_number (mld_kenmerkmelding_waarde) =
ud.fac_usrdata_key) fs
WHERE m.mld_stdmelding_key = std.mld_stdmelding_key
AND std.mld_ins_discipline_key = d.ins_discipline_key
AND d.ins_srtdiscipline_key = sd.ins_srtdiscipline_key
AND std.prs_kostensoort_key = ksm.prs_kostensoort_key(+)
AND m.mld_melding_status = ms.mld_statuses_key
AND m.mld_melding_key = fs.mld_melding_key(+)
AND m.mld_melding_key = o.mld_melding_key
AND m.prs_perslid_key = pf.prs_perslid_key
AND m.mld_alg_locatie_key = l.alg_locatie_key
AND o.mld_typeopdr_key = ot.mld_typeopdr_key
AND o.mld_statusopdr_key = so.mld_statusopdr_key
AND m.mld_alg_onroerendgoed_keys = aog.alg_onroerendgoed_keys(+)
AND o.mld_uitvoerende_keys = b.prs_bedrijf_key(+)
AND o.prs_kostensoort_key = kso.prs_kostensoort_key(+);
--yask_v_kosten_export_power_bi
CREATE OR REPLACE VIEW vbgo_v_kosten_export_power_bi
AS
SELECT d.meldingnummer,
d.mld_melding_key,
d.meldinglocatie,
u.melding_gebouw,
u.melding_gebouwcode,
d.melder,
d.soortmelding,
d.productgroep,
d.subproductgroep,
d.melding_nen_omschrijving,
d.melding_nen_code,
d.meldingstatus,
d.facturatiestatus,
d.meldingdatum,
d.afgemeld,
d.onderwerp,
d.vomschrijving,
d.opdrachtnummer,
d.opdrachttype,
d.opdrachtstatus,
d.opdrachtomschrijving,
d.opdracht_nen_omschrijving,
d.opdrachtuitvoerende,
d.opdrachtkosten,
d.soortopslag,
d.opslag,
d.kostenplusopslag,
d.geenopslag,
d.boekmaand,
d.klant_inkoopordernr,
d.klant_kostenplaats,
d.klant_werkorder,
d.mld_opdr_key,
u.sla_accpturen,
u.plan_uitvoertijd_sla,
u.accept_sla_dagen,
u.accept_sla_uren,
u.afspraak_sla_dagen,
u.accept_sla_optijd,
u.uitvoering_sla_optijd,
u.afspraak_sla_optijd,
u.melding_afgemeld datum_afgemeld,
u.melding_accepted datum_acceptatie,
u.melding_datum datum_aanmaak,
u.fclt_3d_locatie_key
FROM vbgo_v_kosten_doorbelasting d, mld_v_udr_melding u
WHERE d.mld_melding_key = u.melding_key;
-- Tijdelijke versie van de UDR view omdat in de originele view de kostenplaats hard wordt vereist.
-- Melding VBGO#70402 aangemaakt om de UDR view aan te passen.
-- VBGO#71830: Bestelkenmerk met key=101=Vebego onderdeel opnemen als kolom.
CREATE OR REPLACE VIEW vbgo_v_udr_bestelling
AS
SELECT bes_bestelling_key,
bestelaanvraagnr,
besteldatum,
bedrijf_naam,
besteller,
invoerder,
kostensoortgroep,
kostensoort,
kpn,
kpn_omschrijving,
prs_afdeling_key,
afdeling_code,
afdeling_omschrijving,
alg_locatie_key,
locatie_code,
regio_omschrijving,
district_omschijving,
afleveradres,
afleverplaats,
mandaat,
ins_discipline_key,
catalogus,
groep,
productomschrijving,
productcode,
afleverdatum,
doorlooptijd_werkdgn,
sla_tijd,
prijs,
inkoopprijs,
status,
gefiatteerddoor,
bestelopdrachtnummer,
aantal,
itemprijs,
iteminkoopprijs,
itemposnr,
vebego_onderdeel
FROM (SELECT b.bes_bestelling_key
bes_bestelling_key,
'A-' || b.bes_bestelling_key
bestelaanvraagnr,
b.bes_bestelling_datum
besteldatum,
(SELECT prs_perslid_naam_full
FROM prs_v_perslid_fullnames_all pf
WHERE pf.prs_perslid_key = p.prs_perslid_key)
besteller,
(SELECT prs_perslid_naam_full
FROM prs_v_perslid_fullnames_all pf
WHERE pf.prs_perslid_key =
COALESCE (
fac.gettrackinguserkey ('BESNEW',
b.bes_bestelling_key),
fac.gettrackinguserkey ('BESAP2',
b.bes_bestelling_key)))
invoerder,
(SELECT ksg.prs_kostensoortgrp_oms
FROM prs_kostensoortgrp ksg, prs_kostensoort ks
WHERE ksg.prs_kostensoortgrp_key =
ks.prs_kostensoortgrp_key
AND ks.prs_kostensoort_key =
(SELECT MAX (
COALESCE (
bsg.prs_kostensoort_key,
disc.prs_kostensoort_key))
FROM bes_discipline disc, bes_srtgroep bsg
WHERE disc.ins_discipline_key =
d.ins_discipline_key))
kostensoortgroep,
(SELECT ks.prs_kostensoort_oms
FROM prs_kostensoort ks
WHERE ks.prs_kostensoort_key =
(SELECT MAX (
COALESCE (bsg.prs_kostensoort_key,
disc.prs_kostensoort_key))
FROM bes_discipline disc, bes_srtgroep bsg
WHERE disc.ins_discipline_key =
bsg.ins_discipline_key
AND disc.ins_discipline_key =
d.ins_discipline_key))
kostensoort,
k.prs_kostenplaats_nr
kpn,
k.prs_kostenplaats_omschrijving
kpn_omschrijving,
(SELECT b.prs_bedrijf_naam
FROM prs_bedrijf b
WHERE b.prs_bedrijf_key = sd.prs_bedrijf_key)
bedrijf_naam,
a.prs_afdeling_key,
a.prs_afdeling_naam
afdeling_code,
a.prs_afdeling_omschrijving
afdeling_omschrijving,
ma.alg_locatie_key
alg_locatie_key,
(SELECT alg_locatie_code
FROM alg_locatie l
WHERE l.alg_locatie_key = ma.alg_locatie_key)
locatie_code,
(SELECT alg_regio_omschrijving
FROM alg_locatie l, alg_district d, alg_regio r
WHERE r.alg_regio_key = d.alg_regio_key
AND l.alg_district_key = d.alg_district_key
AND l.alg_locatie_key = ma.alg_locatie_key)
regio_omschrijving,
(SELECT alg_district_omschrijving
FROM alg_locatie l, alg_district d
WHERE l.alg_district_key = d.alg_district_key
AND l.alg_locatie_key = ma.alg_locatie_key)
district_omschijving,
ma.mld_adres_naam
afleveradres,
b.bes_bestelling_plaats
afleverplaats,
NVL ((SELECT pr.fac_profiel_limiet
FROM fac_profiel pr
WHERE p.fac_profiel_key = pr.fac_profiel_key),
0)
mandaat,
d.ins_discipline_key
ins_discipline_key,
d.ins_discipline_omschrijving
catalogus,
sg.bes_srtgroep_omschrijving
groep,
b.bes_bestelling_leverdatum
afleverdatum,
fac.count_work_days (
b.bes_bestelling_datum,
NVL (
fac.gettrackingdate ('BESOTV',
b.bes_bestelling_key),
SYSDATE))
doorlooptijd_werkdgn,
NVL (
(SELECT bdp.bes_disc_params_leverdagen
FROM bes_disc_params bdp
WHERE d.ins_discipline_key =
bdp.bes_ins_discipline_key),
0)
sla_tijd,
sd.bes_srtdeel_nr
productcode,
bi.bes_bestelling_item_prijs
* bi.bes_bestelling_item_aantal
prijs,
NVL (
bes.getsrtdeelinkprijs (sd.bes_srtdeel_key,
bes_bestelling_datum),
bi.bes_bestelling_item_prijs)
* bi.bes_bestelling_item_aantal
inkoopprijs,
(SELECT bes_bestellingstatuses_omschr
FROM bes_bestellingstatuses bs
WHERE bs.bes_bestellingstatuses_key =
b.bes_bestelling_status)
status,
(SELECT prs_perslid_naam_full
FROM prs_v_perslid_fullnames_all pf
WHERE pf.prs_perslid_key = b.bes_bestelling_fiat_user)
gefiatteerddoor,
'O-' || bo.bes_bestelopdr_id
bestelopdrachtnummer,
bi.bes_bestelling_item_aantal
aantal,
bi.bes_bestelling_item_prijs
itemprijs,
NVL (
bes.getsrtdeelinkprijs (sd.bes_srtdeel_key,
bes_bestelling_datum),
bi.bes_bestelling_item_prijs)
iteminkoopprijs,
sd.bes_srtdeel_omschrijving
productomschrijving,
boi.bes_bestelopdr_item_posnr
itemposnr,
vo.fac_usrdata_omschr vebego_onderdeel
FROM bes_bestelling b,
prs_perslid p,
prs_afdeling a,
prs_kostenplaats k,
mld_adres ma,
bes_bestelling_item bi,
bes_bestelopdr_item boi,
bes_bestelopdr bo,
bes_srtdeel sd,
bes_srtgroep sg,
ins_tab_discipline d,
(SELECT kb.bes_bestelling_key, ud.fac_usrdata_omschr
FROM bes_kenmerkbestell kb, fac_usrdata ud
WHERE kb.bes_kenmerkbestell_verwijder IS NULL
AND kb.bes_kenmerk_key = 101 -- Vebego onderdeel
AND fac.safe_to_number (kb.bes_kenmerkbestell_waarde) = ud.fac_usrdata_key) vo
WHERE b.prs_perslid_key = p.prs_perslid_key
AND p.prs_afdeling_key = a.prs_afdeling_key
AND b.prs_kostenplaats_key = k.prs_kostenplaats_key(+)
AND b.mld_adres_key_lev = ma.mld_adres_key
AND b.bes_bestelling_key = bi.bes_bestelling_key
AND bi.bes_bestelopdr_item_key = boi.bes_bestelopdr_item_key(+)
AND boi.bes_bestelopdr_key = bo.bes_bestelopdr_key(+)
AND bi.bes_srtdeel_key = sd.bes_srtdeel_key
AND sd.bes_srtgroep_key = sg.bes_srtgroep_key
AND sg.ins_discipline_key = d.ins_discipline_key
AND b.bes_bestelling_key = vo.bes_bestelling_key(+));
/*
CREATE OR REPLACE VIEW VBGO_V_RES_WP_DAG_BEZETTING
(
RES_RSV_RUIMTE_VAN,
RES_RSV_RUIMTE_TOT,
RES_RUIMTE_OPSTEL_KEY,
RES_RSV_RUIMTE_VERWIJDER,
RES_RSV_RUIMTE_KEY,
RES_STATUS_FO_KEY,
N8,
N9,
N10,
N11,
N12,
N13,
N14,
N15,
N16,
N17
)
AS
SELECT res_rsv_deel_key,
res_rsv_deel_van,
res_rsv_deel_tot,
SUM (DECODE (uurnum, 8, n_uur)) n8,
SUM (DECODE (uurnum, 9, n_uur)) n9,
SUM (DECODE (uurnum, 10, n_uur)) n10,
SUM (DECODE (uurnum, 11, n_uur)) n11,
SUM (DECODE (uurnum, 12, n_uur)) n12,
SUM (DECODE (uurnum, 13, n_uur)) n13,
SUM (DECODE (uurnum, 14, n_uur)) n14,
SUM (DECODE (uurnum, 15, n_uur)) n15,
SUM (DECODE (uurnum, 16, n_uur)) n16,
SUM (DECODE (uurnum, 17, n_uur)) n17
FROM (SELECT res_rsv_deel_key,
res_rsv_deel_van,
res_rsv_deel_tot,
uurnum,
CASE
WHEN res.van <= uurnum + 0.00 AND res.tot >= uurnum + 0.25
THEN 1 / 4
ELSE 0
END
+ CASE
WHEN res.van <= uurnum + 0.25 AND res.tot >= uurnum + 0.50
THEN 1 / 4
ELSE 0
END
+ CASE
WHEN res.van <= uurnum + 0.50 AND res.tot >= uurnum + 0.75
THEN 1 / 4
ELSE 0
END
+ CASE
WHEN res.van <= uurnum + 0.75 AND res.tot >= uurnum + 1.00
THEN 1 / 4
ELSE 0
END
n_uur
FROM (SELECT rrd.res_rsv_deel_key,
(rrd.res_rsv_deel_van - TRUNC (rrd.res_rsv_deel_van)) * 24
van,
(rrd.res_rsv_deel_tot - TRUNC (rrd.res_rsv_deel_tot)) * 24
tot,
rrd.res_rsv_deel_van,
rrd.res_rsv_deel_tot
FROM res_rsv_deel rrd, res_rsv_ruimte rrr, res_deel rd, ins_deel d
WHERE rrd.res_rsv_deel_verwijder IS NULL
AND rrd.res_rsv_deel_dirtlevel = 0
--AND TO_CHAR (rrd.res_rsv_deel_tot, 'd') BETWEEN '2' AND '6'
--AND NOT EXISTS (SELECT 1 FROM mld_vrije_dagen WHERE TRUNC (mld_vrije_dagen_datum) = TRUNC (rrd.res_rsv_deel_tot))
AND TRUNC (rrd.res_rsv_deel_van) = TRUNC (rrd.res_rsv_deel_tot) -- Eendaags!
AND rrd.res_rsv_deel_tot BETWEEN TRUNC (ADD_MONTHS (SYSDATE, -12), 'yyyy') AND TRUNC (SYSDATE + 7, 'iw')
AND rrd.res_rsv_ruimte_key = rrr.res_rsv_ruimte_key(+)
AND rrr.res_status_fo_key(+) IN (1, 2) -- Optie/Definitief
AND rrr.res_activiteit_key = 30 -- Reservering werkplekken
AND rrd.res_deel_key = rd.res_deel_key
AND rd.res_ins_deel_key = d.ins_deel_key
AND COALESCE (d.ins_alg_ruimte_type_org, d.ins_alg_ruimte_type) = 'R') res, -- Noodzakelijk?
( SELECT 8 + LEVEL - 1 uurnum
FROM DUAL
CONNECT BY LEVEL <= 10) uren)
GROUP BY res_rsv_deel_key,
res_rsv_deel_van,
res_rsv_deel_tot;
*/
CREATE OR REPLACE VIEW VBGO_V_RAP_RES_BZG
(
hide_f_sortering,
fclt_3d_locatie_key,
locatie,
datum,
zaal,
uur_08_09,
uur_09_10,
uur_10_11,
uur_11_12,
uur_12_13,
uur_13_14,
uur_14_15,
uur_15_16,
uur_16_17,
uur_17_18
)
AS
SELECT TO_CHAR (x.res_rsv_ruimte_van, 'yyyymmdd') || l.alg_locatie_code sortering,
l.alg_locatie_key,
l.alg_locatie_code locatie,
TRUNC (x.res_rsv_ruimte_van) datum,
rr.res_ruimte_nr zaal,
x.n8,
x.n9,
x.n10,
x.n11,
x.n12,
x.n13,
x.n14,
x.n15,
x.n16,
x.n17
FROM res_v_res_dag_bezetting x,
res_ruimte_opstelling rro,
( SELECT res_ruimte_key, MAX (alg_ruimte_key) alg_ruimte_key
FROM res_alg_ruimte
WHERE res_alg_ruimte_verwijder IS NULL
GROUP BY res_ruimte_key) rar1,
( SELECT res_ruimte_key, MAX (alg_ruimte_key) alg_ruimte_key
FROM res_alg_ruimte
WHERE res_alg_ruimte_verwijder IS NOT NULL
GROUP BY res_ruimte_key) rar2,
--alg_v_allonrgoed_gegevens aog, -- Ook verwijderde ruimten!
alg_v_allonroerendgoed aog, -- Ook verwijderde ruimten!
alg_locatie l, -- Ook verwijderde locaties
res_ruimte rr
WHERE x.res_rsv_ruimte_verwijder IS NULL
AND x.res_status_fo_key IN (1, 2) -- Optie/Definitief
AND x.res_ruimte_opstel_key = rro.res_ruimte_opstel_key
AND rro.res_ruimte_key = rar1.res_ruimte_key(+)
AND rro.res_ruimte_key = rar2.res_ruimte_key(+)
AND COALESCE (rar1.alg_ruimte_key, rar2.alg_ruimte_key) = aog.alg_ruimte_key
AND aog.alg_locatie_key = l.alg_locatie_key
AND rro.res_ruimte_key = rr.res_ruimte_key;
-- Rapportage overgenomen uit de VENR omgeving.
-- TODO: Keys aanpassen
-- VENR#65754: Opdrachtgegevens incl. kenmerken (afgeleid van mld_v_udr_opdrachtkenmerk_cnd).
-- VENR#69955: Uitbreiden met de SLA-velden van de bovenliggende melding + (sub)productgroep.
CREATE OR REPLACE VIEW vbgo_v_udr_opdrachten
(
opdracht_key,
opdracht_nummer,
opdracht_regio,
opdracht_district,
opdracht_locatie_code,
opdracht_locatie,
opdracht_locatieplaats,
fclt_3d_locatie_key,
opdracht_gebouwcode,
opdracht_gebouw,
opdracht_verdieping,
opdracht_ruimtenr,
opdracht_ruimte,
opdracht_kostenplaats,
opdracht_kostenplaats_oms,
melding_key,
opdracht_type,
opdracht_volgnummer,
opdracht_status,
opdracht_duur_gepland,
opdracht_datum,
opdracht_einddatum,
opdracht_plandatum,
opdracht_acceptdatum,
opdracht_afgemeld,
opdracht_doorlooptijd,
opdracht_accepttijd,
opdracht_omschrijving,
opdracht_opmerking,
opdracht_uitvoerende,
opdracht_uitvoerende_contact,
opdracht_behandelaar,
opdracht_contract,
opdracht_contract_versie,
opdracht_contactpersoon,
opdracht_uren,
opdracht_correctie,
opdracht_materiaal,
opdracht_uurtarief,
opdracht_kosten,
opdracht_parent_key,
opdracht_parent_nummer,
opdracht_parent_volgnummer,
opdracht_verstrektdatum,
opdracht_lev_doorloopdagen,
opdracht_lev_doorloopuren,
refnr_lev,
klant,
accept_sla_dagen,
accept_sla_uren,
uitvoering_sla_dagen,
uitvoering_sla_uren,
afspraak_sla_dagen,
afspraak_sla_uren,
accept_sla_optijd,
uitvoering_sla_optijd,
afspraak_sla_optijd,
productgroep,
subproductgroep
)
AS
SELECT o.opdracht_key,
o.opdracht_nummer,
o.opdracht_regio,
o.opdracht_district,
o.opdracht_locatie_code,
o.opdracht_locatie,
o.opdracht_locatieplaats,
o.fclt_3d_locatie_key,
o.opdracht_gebouwcode,
o.opdracht_gebouw,
o.opdracht_verdieping,
o.opdracht_ruimtenr,
o.opdracht_ruimte,
o.opdracht_kostenplaats,
o.opdracht_kostenplaats_oms,
o.melding_key,
o.opdracht_type,
o.opdracht_volgnummer,
o.opdracht_status,
o.opdracht_duur_gepland,
o.opdracht_datum,
o.opdracht_einddatum,
o.opdracht_plandatum,
o.opdracht_acceptdatum,
o.opdracht_afgemeld,
o.opdracht_doorlooptijd,
o.opdracht_accepttijd,
o.opdracht_omschrijving,
o.opdracht_opmerking,
o.opdracht_uitvoerende,
o.opdracht_uitvoerende_contact,
o.opdracht_behandelaar,
o.opdracht_contract,
o.opdracht_contract_versie,
o.opdracht_contactpersoon,
o.opdracht_uren,
o.opdracht_correctie,
o.opdracht_materiaal,
o.opdracht_uurtarief,
o.opdracht_kosten,
o.opdracht_parent_key,
o.opdracht_parent_nummer,
o.opdracht_parent_volgnummer,
o.opdracht_verstrektdatum,
o.opdracht_lev_doorloopdagen,
o.opdracht_lev_doorloopuren,
ko4.mld_kenmerkopdr_waarde,
km5.fac_usrdata_omschr,
m.accept_sla_dagen,
m.accept_sla_uren,
m.uitvoering_sla_dagen,
m.uitvoering_sla_uren,
m.afspraak_sla_dagen,
m.afspraak_sla_uren,
m.accept_sla_optijd,
m.uitvoering_sla_optijd,
m.afspraak_sla_optijd,
m.productgroep,
m.subproductgroep
FROM mld_v_udr_opdracht o,
mld_v_udr_melding m,
(SELECT ko.mld_opdr_key, ko.mld_kenmerkopdr_waarde
FROM mld_v_aanwezigkenmerkopdr ko
WHERE EXISTS
(SELECT 1
FROM mld_kenmerk
WHERE mld_srtkenmerk_key = 341
AND mld_kenmerk_key = ko.mld_kenmerk_key)) ko4, -- Refnr. Leverancier
(SELECT km.mld_melding_key, ud.fac_usrdata_omschr
FROM mld_v_aanwezigkenmerkmelding km, fac_usrdata ud
WHERE fac.safe_to_number (km.mld_kenmerkmelding_waarde) = ud.fac_usrdata_key
AND EXISTS
(SELECT 1
FROM mld_kenmerk
WHERE mld_srtkenmerk_key = 461
AND mld_kenmerk_key = km.mld_kenmerk_key)) km5 -- Klant(R)
WHERE fac.gettrackingdate ('ORDNEW', o.opdracht_key) > TRUNC (ADD_MONTHS (SYSDATE, -24), 'yyyy')
AND o.melding_key = m.melding_key
AND o.opdracht_key = ko4.mld_opdr_key(+)
AND m.melding_key = km5.mld_melding_key(+);
CREATE OR REPLACE VIEW VBGO_V_RUIMTEEXPORT
(
ruimte_key,
gebouw_code,
verdieping_nr,
ruimte_nr,
ruimte_soort,
werkplek_key,
werkplek_omschrijving,
werkplek_persoon
)
AS
SELECT a.alg_ruimte_key,
b.alg_gebouw_code,
v.alg_verdieping_code,
a.alg_ruimte_nr,
s.alg_srtruimte_omschrijving,
w.prs_werkplek_key,
w.prs_werkplek_omschrijving,
(SELECT p.prs_perslid_naam_friendly
FROM prs_v_perslid_fullnames p, prs_perslidwerkplek pw
WHERE pw.prs_werkplek_key=w.prs_werkplek_key
AND pw.prs_perslid_key = p.prs_perslid_key) werkplek_persoon
FROM alg_v_aanwezigruimte a,
alg_v_aanwezigsrtruimte s,
alg_v_aanweziggebouw b,
alg_v_aanwezigverdieping v,
prs_werkplek w
WHERE s.alg_srtruimte_key = a.alg_srtruimte_key
AND v.alg_verdieping_key=a.alg_verdieping_key
AND b.alg_gebouw_key=v.alg_gebouw_key
AND w.prs_alg_ruimte_key(+) =a.alg_ruimte_key;
-- Procedure tbv de Facilitor - Facilitor koppeling met het logcenter.
CREATE OR REPLACE PROCEDURE vbgo_pre_putorders
AS
BEGIN
UPDATE mld_opdr
SET mld_opdr_teverzenden = 2, mld_opdr_verzonden = NULL
WHERE mld_opdr_key IN
( SELECT new.mld_opdr_key
FROM ( SELECT mld_opdr_key, MAX (datum) datum
FROM (SELECT o.mld_opdr_key, fac_tracking_datum datum
FROM fac_tracking t, fac_srtnotificatie sn, mld_opdr o
WHERE t.fac_srtnotificatie_key = sn.fac_srtnotificatie_key
AND sn.fac_srtnotificatie_xmlnode = 'opdracht'
AND fac_tracking_refkey = o.mld_opdr_key
AND o.mld_opdr_externnr IS NOT NULL
AND sn.fac_srtnotificatie_code <> 'ORDTRK'
UNION
SELECT o.mld_opdr_key, mld_opdr_note_wijzigdatum datum
FROM mld_opdr_note n, mld_opdr o
WHERE n.mld_opdr_key = o.mld_opdr_key
AND o.mld_opdr_externnr IS NOT NULL
AND BITAND (mld_opdr_note_flag, 4) = 4)
GROUP BY mld_opdr_key) new,
( SELECT o.mld_opdr_key, MAX (fac_tracking_datum) fac_tracking_datum
FROM fac_tracking t, fac_srtnotificatie sn, mld_opdr o
WHERE t.fac_srtnotificatie_key = sn.fac_srtnotificatie_key
AND sn.fac_srtnotificatie_xmlnode = 'opdracht'
AND fac_tracking_refkey = o.mld_opdr_key
AND o.mld_opdr_externnr IS NOT NULL
AND sn.fac_srtnotificatie_code = 'ORDTRK'
GROUP BY o.mld_opdr_key) ordtrk
WHERE new.mld_opdr_key = ordtrk.mld_opdr_key(+) AND new.datum > COALESCE (ordtrk.fac_tracking_datum, SYSDATE - 100));
END;
/
CREATE OR REPLACE PROCEDURE vbgo_daily
AS
-- Alle personen die in de groep zitten dat ze alleen een emailadres hebben en geen windows login (geen laptop)
-- Waarbij geen wachtwoord is ingesteld.
CURSOR c_setpw IS
SELECT p.*
FROM prs_perslid p
WHERE prs_perslid_key IN
(SELECT prs_perslid_key
FROM fac_gebruikersgroep gg, fac_groep g
WHERE gg.fac_groep_key = g.fac_groep_key AND fac_groep_omschrijving = 'SG-VFS-NL-APP-FACPRD')
AND prs_perslid_salt IS NULL;
-- Alle personen die in de groep zitten dat ze alleen een emailadres hebben en geen windows login (geen laptop)
-- Waarbij al wel een wachtwoord is ingesteld.
-- Bij deze mensen hoeven we alleen het vinkje te zetten.
CURSOR c_setpw_once (c_kenmerk_key NUMBER)
IS
SELECT p.*
FROM prs_perslid p
WHERE prs_perslid_key IN
(SELECT prs_perslid_key
FROM fac_gebruikersgroep gg, fac_groep g
WHERE gg.fac_groep_key = g.fac_groep_key AND fac_groep_omschrijving = 'SG-VFS-NL-APP-FACPRD')
AND prs_perslid_salt IS NOT NULL
AND NOT EXISTS
(SELECT 1
FROM prs_kenmerklink kl, prs_kenmerk k
WHERE kl.prs_link_key = p.prs_perslid_key AND kl.prs_kenmerk_key = c_kenmerk_key);
-- Alle personen die het vinkje hebben staan dat ze in de via wachtwoord inloggen maar die niet (meer) deel uitmaken van de autorisatiegroep
CURSOR c_delpw (c_kenmerk_key NUMBER)
IS
SELECT p.*
FROM prs_perslid p
WHERE prs_perslid_key NOT IN
(SELECT prs_perslid_key
FROM fac_gebruikersgroep gg, fac_groep g
WHERE gg.fac_groep_key = g.fac_groep_key AND fac_groep_omschrijving = 'SG-VFS-NL-APP-FACPRD')
AND EXISTS
(SELECT 1
FROM prs_kenmerklink kl
WHERE kl.prs_link_key = p.prs_perslid_key AND kl.prs_kenmerk_key = c_kenmerk_key AND kl.prs_kenmerklink_waarde = '1');
v_kenmerk_key NUMBER;
BEGIN
BEGIN
SELECT prs_kenmerk_key
INTO v_kenmerk_key
FROM prs_kenmerk
WHERE prs_kenmerk_code = 'WACHTWOORDACCOUNT';
FOR rec IN c_setpw
LOOP
PRS.setpassword (rec.prs_perslid_key, 'kPrqyyQcvaEUwhmqMoExSfQCGFs6-Egb');
FLX.setflex ('PRS',
v_kenmerk_key,
rec.prs_perslid_key,
'P',
1);
FAC.trackaction ('PRSUPD',
rec.prs_perslid_key,
NULL,
NULL,
'Logt in met wachtwoord: (leeg) --> 1');
FAC.putnotificationsrtprio (NULL, -- pfrom
rec.prs_perslid_key, -- pto
'CUST01', -- pcode
rec.prs_perslid_key, -- pref
'Inloggegevens Facilitor', -- poptmessage
NULL, --poptstatus
NULL, -- poptemail
NULL, -- poptmobile
NULL, -- pxref
2, -- pprio
NULL -- psender
);
END LOOP;
FOR rec IN c_setpw_once (v_kenmerk_key)
LOOP
FLX.setflex ('PRS',
v_kenmerk_key,
rec.prs_perslid_key,
'P',
1);
FAC.trackaction ('PRSUPD',
rec.prs_perslid_key,
NULL,
NULL,
'Logt in met wachtwoord: (leeg) --> 1');
END LOOP;
FOR rec IN c_delpw (v_kenmerk_key)
LOOP
PRS.setpassword (rec.prs_perslid_key, NULL);
FLX.setflex ('PRS',
v_kenmerk_key,
rec.prs_perslid_key,
'P',
NULL);
FAC.trackaction ('PRSUPD',
rec.prs_perslid_key,
NULL,
NULL,
'Logt in met wachtwoord: 1 --> (leeg)');
END LOOP;
EXCEPTION WHEN NO_DATA_FOUND
THEN
-- Kenmerk met code WACHTWOORDACCOUNT moet nog aangemaakt worden
fac.writelog ('VBGO_DAILY', 'W', 'Kenmerk: "Logt in met wachtwoord" is niet aangemaakt bij personen.', NULL);
END;
END;
/
------ payload end ------
SET DEFINE OFF
BEGIN adm.systrackscriptId ('$Id$', 0); END;
/
COMMIT;
SET ECHO OFF
SPOOL OFF
SET DEFINE ON
PROMPT Logfile of this upgrade is: &fcltlogfile