BRED#85863 M2M/Verwijderen 'actiecode'-setting (deprecated)+SVRZ#85699 Rap/WP-bezetting

svn path=/Customer/trunk/; revision=66866
This commit is contained in:
Maarten van der Heide
2024-11-04 14:36:04 +00:00
parent 7cfa74c417
commit f982619e75

View File

@@ -1703,7 +1703,7 @@ EXCEPTION
END svrz_update_ins_scan;
/
/* Formatted on 30-3-2015 23:36:24 (QP5 v5.136.908.31019) */
/*
CREATE OR REPLACE VIEW svrz_v_export_nachtwerk
(
RESULT,
@@ -1877,7 +1877,7 @@ EXCEPTION
fac.writelog (p_applname, 'E', 'Proces NACHTWERK afgebroken!', v_errormsg);
END svrz_select_nachtwerk;
/
*/
/* Formatted on 12-9-2014 17:42:24 (QP5 v5.136.908.31019) */
CREATE OR REPLACE VIEW svrz_v_imp_bes_artikel_sync
(
@@ -2594,12 +2594,9 @@ BEGIN
VALUES (psessionid, 'maillog', 'Notitie onder exist-melding ' || v_melding_key);
-- Vlaggetjes zetten zoals mld_edit_note.asp dat doet!
IF fac.getsetting ('mld_melding_actiecode') = 1
THEN
UPDATE mld_melding
SET mld_melding_actiecode = 1 + 128 -- BO + Attentie
WHERE mld_melding_key = v_melding_key;
END IF;
UPDATE mld_melding
SET mld_melding_actiecode = 1 + 128 -- BO + Attentie
WHERE mld_melding_key = v_melding_key;
ELSE -- Nieuwe melding!
-- Bepaal de afgesproken soortmelding met key=1691=Harware/Computer!
v_errormsg := 'Fout bepalen soortmelding';
@@ -2738,12 +2735,9 @@ BEGIN
VALUES (psessionid, 'maillog', 'Notitie onder exist-melding ' || v_melding_key);
-- Vlaggetjes zetten zoals mld_edit_note.asp dat doet!
IF fac.getsetting ('mld_melding_actiecode') = 1
THEN
UPDATE mld_melding
SET mld_melding_actiecode = 1 + 128 -- BO + Attentie
WHERE mld_melding_key = v_melding_key;
END IF;
UPDATE mld_melding
SET mld_melding_actiecode = 1 + 128 -- BO + Attentie
WHERE mld_melding_key = v_melding_key;
ELSE -- Nieuwe melding!
-- Bepaal de afgesproken soortmelding met key=1697=Clientportaal!
v_errormsg := 'Fout bepalen soortmelding';
@@ -2915,12 +2909,9 @@ BEGIN
VALUES (psessionid, 'maillog', 'Notitie onder exist-melding ' || v_melding_key);
-- Vlaggetjes zetten zoals mld_edit_note.asp dat doet!
IF fac.getsetting ('mld_melding_actiecode') = 1
THEN
UPDATE mld_melding
SET mld_melding_actiecode = 1 + 128 -- BO + Attentie
WHERE mld_melding_key = v_melding_key;
END IF;
UPDATE mld_melding
SET mld_melding_actiecode = 1 + 128 -- BO + Attentie
WHERE mld_melding_key = v_melding_key;
ELSE -- Nieuwe melding!
-- Bepaal de afgesproken soortmelding met key=2661=OWS / ESS (roosterprogramma)!
v_errormsg := 'Fout bepalen soortmelding';
@@ -3084,12 +3075,9 @@ BEGIN
VALUES (psessionid, 'maillog', 'Notitie onder exist-melding ' || v_melding_key);
-- Vlaggetjes zetten zoals mld_edit_note.asp dat doet!
IF fac.getsetting ('mld_melding_actiecode') = 1
THEN
UPDATE mld_melding
SET mld_melding_actiecode = 1 + 128 -- BO + Attentie
WHERE mld_melding_key = v_melding_key;
END IF;
UPDATE mld_melding
SET mld_melding_actiecode = 1 + 128 -- BO + Attentie
WHERE mld_melding_key = v_melding_key;
ELSE -- Nieuwe melding!
-- Bepaal de afgesproken soortmelding met key=3121=Afas beheer!
v_errormsg := 'Fout bepalen soortmelding';
@@ -3253,12 +3241,9 @@ BEGIN
VALUES (psessionid, 'maillog', 'Notitie onder exist-melding ' || v_melding_key);
-- Vlaggetjes zetten zoals mld_edit_note.asp dat doet!
IF fac.getsetting ('mld_melding_actiecode') = 1
THEN
UPDATE mld_melding
SET mld_melding_actiecode = 1 + 128 -- BO + Attentie
WHERE mld_melding_key = v_melding_key;
END IF;
UPDATE mld_melding
SET mld_melding_actiecode = 1 + 128 -- BO + Attentie
WHERE mld_melding_key = v_melding_key;
ELSE -- Nieuwe melding!
-- Bepaal de afgesproken soortmelding met key=1741=Zorgalarmering (deur-, bewegingssensoren, etc.)!
v_errormsg := 'Fout bepalen soortmelding';
@@ -3422,12 +3407,9 @@ BEGIN
VALUES (psessionid, 'maillog', 'Notitie onder exist-melding ' || v_melding_key);
-- Vlaggetjes zetten zoals mld_edit_note.asp dat doet!
IF fac.getsetting ('mld_melding_actiecode') = 1
THEN
UPDATE mld_melding
SET mld_melding_actiecode = 1 + 128 -- BO + Attentie
WHERE mld_melding_key = v_melding_key;
END IF;
UPDATE mld_melding
SET mld_melding_actiecode = 1 + 128 -- BO + Attentie
WHERE mld_melding_key = v_melding_key;
ELSE -- Nieuwe melding!
-- Bepaal de afgesproken soortmelding met key=3201=Privacy + Security!
v_errormsg := 'Fout bepalen soortmelding';
@@ -3972,6 +3954,335 @@ AS
WHERE b.prs_bedrijf_key = ba.prs_bedrijf_key(+)
AND ba.mld_typeopdr_key = ot.mld_typeopdr_key(+);
-- SVRZ#83023: Wijzigingbeheer-notificaties in de volgende 5 gevallen:
-- 981=CUST05=Op hele uur na vullen <20>Specificatie door<6F> naar betreffende RFC-groep (of persoon?).
-- 982=CUST06=Op hele uur na vullen <20>Impact#<n><3E> naar betreffende RFC-groep.
-- 983=CUST07=Op hele uur na vullen <20>Accordering door<6F> naar betreffende RFC-groep (of persoon?).
-- 984=CUST08=Op hele uur na vullen <20>Uitvoering#<n><3E> naar betreffende RFC-groep.
-- 985=CUST09=Op hele uur na vullen <20>Nazorg door<6F> naar betreffende RFC-groep (of persoon?).
CREATE OR REPLACE VIEW SVRZ_V_RAP_RFC_REMINDER
AS
SELECT 'CUST05' fac_srtnotificatie_code,
m.mld_melding_key,
m.mld_melding_onderwerp,
sm.mld_stdmelding_omschrijving,
km.mld_kenmerkmelding_aanmaak,
rfc_gr.fac_usrdata_omschr rfc_gr,
rfc_to.fac_usrdata_key extra_key, -- Moet zo heten!
rfc_to.fac_usrdata_code rfc_to
FROM mld_melding m,
mld_stdmelding sm,
mld_discipline md,
(SELECT *
FROM mld_v_aanwezigkenmerkmelding
WHERE mld_kenmerk_key = 1910) km, -- Specificatie door
fac_v_aanwezigusrdata rfc_gr,
fac_v_aanwezigusrdata rfc_to,
fac_usrtab rfc_to_ut
WHERE m.mld_stdmelding_key = 3241 -- Wijziging-Wijzigingenbeheer-RFC
AND m.mld_stdmelding_key = sm.mld_stdmelding_key
AND sm.mld_ins_discipline_key = md.ins_discipline_key
AND m.mld_melding_key = km.mld_melding_key
--AND km.mld_kenmerkmelding_aanmaak > TRUNC (SYSDATE) -- Vandaag
AND km.mld_kenmerkmelding_aanmaak > TRUNC (SYSDATE, 'mm') -- Deze maand
AND fac.safe_to_number (km.mld_kenmerkmelding_waarde) = rfc_gr.fac_usrdata_key
--AND rfc_gr.fac_usrtab_key = 481 -- RFC-Groep
AND fac.safe_to_number (km.mld_kenmerkmelding_waarde) = fac.safe_to_number (rfc_to.fac_usrdata_omschr)
AND rfc_to.fac_usrtab_key = rfc_to_ut.fac_usrtab_key
AND (rfc_to_ut.fac_usrtab_key BETWEEN 501 AND 530
OR INSTR (UPPER (rfc_to_ut.fac_usrtab_naam), 'RFC-TO') > 1)
UNION ALL -- IMPACT#<n>
SELECT 'CUST06' fac_srtnotificatie_code,
m.mld_melding_key,
m.mld_melding_onderwerp,
sm.mld_stdmelding_omschrijving,
km.mld_kenmerkmelding_aanmaak,
rfc_gr.fac_usrdata_omschr rfc_gr,
rfc_to.fac_usrdata_key extra_key, -- Moet zo heten!
rfc_to.fac_usrdata_code rfc_to
FROM mld_melding m,
mld_stdmelding sm,
mld_discipline md,
(SELECT *
FROM mld_v_aanwezigkenmerkmelding
WHERE mld_kenmerk_key BETWEEN 1854 AND 1861) km, -- Impact#<n>
fac_v_aanwezigusrdata rfc_gr,
fac_v_aanwezigusrdata rfc_to,
fac_usrtab rfc_to_ut
WHERE m.mld_stdmelding_key = 3241 -- Wijziging-Wijzigingenbeheer-RFC
AND m.mld_stdmelding_key = sm.mld_stdmelding_key
AND sm.mld_ins_discipline_key = md.ins_discipline_key
AND m.mld_melding_key = km.mld_melding_key
--AND km.mld_kenmerkmelding_aanmaak > TRUNC (SYSDATE) -- Vandaag
AND km.mld_kenmerkmelding_aanmaak > TRUNC (SYSDATE, 'mm') -- Deze maand
AND fac.safe_to_number (km.mld_kenmerkmelding_waarde) = rfc_gr.fac_usrdata_key
--AND rfc_gr.fac_usrtab_key = 481 -- RFC-Groep
AND fac.safe_to_number (km.mld_kenmerkmelding_waarde) = fac.safe_to_number (rfc_to.fac_usrdata_omschr)
AND rfc_to.fac_usrtab_key = rfc_to_ut.fac_usrtab_key
AND (rfc_to_ut.fac_usrtab_key BETWEEN 501 AND 530
OR INSTR (UPPER (rfc_to_ut.fac_usrtab_naam), 'RFC-TO') > 1)
UNION ALL -- ACCORDERING DOOR
SELECT 'CUST07' fac_srtnotificatie_code,
m.mld_melding_key,
m.mld_melding_onderwerp,
sm.mld_stdmelding_omschrijving,
km.mld_kenmerkmelding_aanmaak,
rfc_gr.fac_usrdata_omschr rfc_gr,
rfc_to.fac_usrdata_key extra_key, -- Moet zo heten!
rfc_to.fac_usrdata_code rfc_to
FROM mld_melding m,
mld_stdmelding sm,
mld_discipline md,
--fac_tracking t,
(SELECT *
FROM mld_v_aanwezigkenmerkmelding
WHERE mld_kenmerk_key = 1913) km, -- Accordering door
fac_v_aanwezigusrdata rfc_gr,
fac_v_aanwezigusrdata rfc_to,
fac_usrtab rfc_to_ut
WHERE m.mld_stdmelding_key = 3241 -- Wijziging-Wijzigingenbeheer-RFC
AND m.mld_stdmelding_key = sm.mld_stdmelding_key
AND sm.mld_ins_discipline_key = md.ins_discipline_key
AND m.mld_melding_key = km.mld_melding_key
--AND km.mld_kenmerkmelding_aanmaak > TRUNC (SYSDATE) -- Vandaag
AND km.mld_kenmerkmelding_aanmaak > TRUNC (SYSDATE, 'mm') -- Deze maand
AND fac.safe_to_number (km.mld_kenmerkmelding_waarde) = rfc_gr.fac_usrdata_key
--AND rfc_gr.fac_usrtab_key = 481 -- RFC-Groep
AND fac.safe_to_number (km.mld_kenmerkmelding_waarde) = fac.safe_to_number (rfc_to.fac_usrdata_omschr)
AND rfc_to.fac_usrtab_key = rfc_to_ut.fac_usrtab_key
AND (rfc_to_ut.fac_usrtab_key BETWEEN 501 AND 530
OR INSTR (UPPER (rfc_to_ut.fac_usrtab_naam), 'RFC-TO') > 1)
UNION ALL -- UITVOERING#<n>
SELECT 'CUST08' fac_srtnotificatie_code,
m.mld_melding_key,
m.mld_melding_onderwerp,
sm.mld_stdmelding_omschrijving,
km.mld_kenmerkmelding_aanmaak,
rfc_gr.fac_usrdata_omschr rfc_gr,
rfc_to.fac_usrdata_key extra_key, -- Moet zo heten!
rfc_to.fac_usrdata_code rfc_to
FROM mld_melding m,
mld_stdmelding sm,
mld_discipline md,
(SELECT *
FROM mld_v_aanwezigkenmerkmelding
WHERE mld_kenmerk_key BETWEEN 1872 AND 1879) km, -- Uitvoering#<n>
fac_v_aanwezigusrdata rfc_gr,
fac_v_aanwezigusrdata rfc_to,
fac_usrtab rfc_to_ut
WHERE m.mld_stdmelding_key = 3241 -- Wijziging-Wijzigingenbeheer-RFC
AND m.mld_stdmelding_key = sm.mld_stdmelding_key
AND sm.mld_ins_discipline_key = md.ins_discipline_key
AND m.mld_melding_key = km.mld_melding_key
--AND km.mld_kenmerkmelding_aanmaak > TRUNC (SYSDATE) -- Vandaag
AND km.mld_kenmerkmelding_aanmaak > TRUNC (SYSDATE, 'mm') -- Deze maand
AND fac.safe_to_number (km.mld_kenmerkmelding_waarde) = rfc_gr.fac_usrdata_key
--AND rfc_gr.fac_usrtab_key = 481 -- RFC-Groep
AND fac.safe_to_number (km.mld_kenmerkmelding_waarde) = fac.safe_to_number (rfc_to.fac_usrdata_omschr)
AND rfc_to.fac_usrtab_key = rfc_to_ut.fac_usrtab_key
AND (rfc_to_ut.fac_usrtab_key BETWEEN 501 AND 530
OR INSTR (UPPER (rfc_to_ut.fac_usrtab_naam), 'RFC-TO') > 1)
UNION ALL -- NAZORG DOOR
SELECT 'CUST09' fac_srtnotificatie_code,
m.mld_melding_key,
m.mld_melding_onderwerp,
sm.mld_stdmelding_omschrijving,
km.mld_kenmerkmelding_aanmaak,
rfc_gr.fac_usrdata_omschr rfc_gr,
rfc_to.fac_usrdata_key extra_key, -- Moet zo heten!
rfc_to.fac_usrdata_code rfc_to
FROM mld_melding m,
mld_stdmelding sm,
mld_discipline md,
(SELECT *
FROM mld_v_aanwezigkenmerkmelding
WHERE mld_kenmerk_key = 1930) km, -- Nazorg door
fac_v_aanwezigusrdata rfc_gr,
fac_v_aanwezigusrdata rfc_to,
fac_usrtab rfc_to_ut
WHERE m.mld_stdmelding_key = 3241 -- Wijziging-Wijzigingenbeheer-RFC
AND m.mld_stdmelding_key = sm.mld_stdmelding_key
AND sm.mld_ins_discipline_key = md.ins_discipline_key
AND m.mld_melding_key = km.mld_melding_key
--AND km.mld_kenmerkmelding_aanmaak > TRUNC (SYSDATE) -- Vandaag
AND km.mld_kenmerkmelding_aanmaak > TRUNC (SYSDATE, 'mm') -- Deze maand
AND fac.safe_to_number (km.mld_kenmerkmelding_waarde) = rfc_gr.fac_usrdata_key
--AND rfc_gr.fac_usrtab_key = 481 -- RFC-Groep
AND fac.safe_to_number (km.mld_kenmerkmelding_waarde) = fac.safe_to_number (rfc_to.fac_usrdata_omschr)
AND rfc_to.fac_usrtab_key = rfc_to_ut.fac_usrtab_key
AND (rfc_to_ut.fac_usrtab_key BETWEEN 501 AND 530
OR INSTR (UPPER (rfc_to_ut.fac_usrtab_naam), 'RFC-TO') > 1)
;
CREATE OR REPLACE VIEW SVRZ_V_NOTI_RFC_REMINDER
(
code,
sender,
receiver,
text,
key,
--par1,
--par2,
xkey,
xemail,
xmobile
--fac_srtnotificatie_key,
--attachments,
--xsender,
--prs_bedrijfadres_key
)
AS -- SPECIFICATIE DOOR
SELECT x.fac_srtnotificatie_code,
TO_NUMBER (NULL),
TO_NUMBER (NULL),
REPLACE (
REPLACE (
REPLACE (
lcl.x ('fac_srtnotificatie_oms', sn.fac_srtnotificatie_key, sn.fac_srtnotificatie_oms),
'##KEY##', TO_CHAR (x.mld_melding_key)),
'##SUBJ##', x.mld_melding_onderwerp),
'##STDMLD##', x.mld_stdmelding_omschrijving),
r.fac_usrrap_key,
--NULL,
--NULL,
x.extra_key,
x.rfc_to,
NULL
--TO_NUMBER (NULL),
--NULL
--NULL,
--TO_NUMBER (NULL)
FROM svrz_v_rap_rfc_reminder x, fac_usrrap r, fac_srtnotificatie sn, fac_notificatie_job nj
WHERE x.fac_srtnotificatie_code = sn.fac_srtnotificatie_code
AND UPPER (r.fac_usrrap_view_name) = 'SVRZ_V_RAP_RFC_REMINDER'
AND nj.fac_notificatie_job_view = 'SVRZ_V_NOTI_RFC_REMINDER'
AND x.mld_kenmerkmelding_aanmaak > COALESCE (nj.fac_notificatie_job_lastrun, TRUNC (SYSDATE, 'mm'));
-- SVRZ#85699: Bezettingsgraad van werkplekken (= reserveringen uit catalogus
-- 3921=Flexplekken)!
CREATE OR REPLACE VIEW SVRZ_V_RAP_RES_WP_BZG
(
fclt_3d_locatie_key,
maand,
catalogus,
locatie,
wp_aant_nl,
wp_aant_loc,
wp_bzg_nl,
wp_bzg_loc
)
AS
WITH rescatl -- Per catalogus/locatie de reserveringen van WP-objecten op tot-tijd!
AS ( SELECT resbes.mnd,
rd.ins_discipline_omschrijving catalogus,
l.alg_locatie_key,
l.alg_locatie_omschrijving locatie_oms,
SUM (resbez.aant) aantal_reserveringen,
SUM (ROUND (resbes.uren, 2)) bes_uren,
SUM (ROUND (resbez.uren, 2)) bez_uren
FROM (SELECT TO_CHAR (p.mnd, 'yyyy-mm') mnd, -- DISTINCT per definitie!
rd.res_discipline_key,
rd.res_deel_key resource_key,
COALESCE (d.ins_alg_ruimte_key_org, d.ins_alg_ruimte_key) alg_ruimte_key,
fac.count_work_days (p.mnd - 1, ADD_MONTHS (p.mnd, 1) - 1) * 9 -- = 17-8
uren
FROM res_deel rd, ins_deel d,
(SELECT ADD_MONTHS (TRUNC (SYSDATE, 'mm'), LEVEL - 26) mnd FROM DUAL CONNECT BY LEVEL <= 25) p
WHERE rd.res_discipline_key = 3921 -- Flexplekken
AND rd.res_ins_deel_key = d.ins_deel_key
AND COALESCE (d.ins_alg_ruimte_type_org, d.ins_alg_ruimte_type) = 'R' -- Noodzakelijk?
AND rd.res_deel_aanmaak < ADD_MONTHS (p.mnd, 1)
AND (rd.res_deel_verwijder IS NULL OR rd.res_deel_verwijder >= p.mnd)) resbes,
( SELECT TO_CHAR (rrd.res_rsv_deel_tot, 'yyyy-mm') mnd,
rd.res_discipline_key,
rd.res_deel_key resource_key,
COALESCE (d.ins_alg_ruimte_key_org, d.ins_alg_ruimte_key) alg_ruimte_key,
COUNT ( * ) aant,
SUM (LEAST ((rrd.res_rsv_deel_tot - TRUNC (rrd.res_rsv_deel_tot)) * 24, 17)
- GREATEST ((rrd.res_rsv_deel_van - TRUNC (rrd.res_rsv_deel_van)) * 24, 8))
uren
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 TRUNC (rrd.res_rsv_deel_van) = TRUNC (rrd.res_rsv_deel_tot) -- Eendaags!
AND rrd.res_rsv_deel_tot BETWEEN ADD_MONTHS (TRUNC (SYSDATE, 'mm'), -25) AND TRUNC (SYSDATE, 'mm')
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 TO_CHAR (rrd.res_rsv_deel_van, 'hh24') < '17'
--AND TO_CHAR (rrd.res_rsv_deel_tot, 'hh24') > '08'
--AND rrd.bez_bezoekers_key IS NULL -- Geen parkeerplaatsen!
AND rrd.res_rsv_ruimte_key = rrr.res_rsv_ruimte_key(+)
AND rrr.res_status_fo_key(+) IN (1, 2) -- Optie/Definitief
AND rrd.res_deel_key = rd.res_deel_key
AND rd.res_discipline_key = 3921 -- Flexplekken
AND rd.res_ins_deel_key = d.ins_deel_key
AND COALESCE (d.ins_alg_ruimte_type_org, d.ins_alg_ruimte_type) = 'R' -- Noodzakelijk?
GROUP BY TO_CHAR (rrd.res_rsv_deel_tot, 'yyyy-mm'),
rd.res_discipline_key,
rd.res_deel_key,
COALESCE (d.ins_alg_ruimte_key_org, d.ins_alg_ruimte_key)
UNION ALL -- Meerdaagse voorzieningen?
SELECT TO_CHAR (p.dag, 'yyyy-mm') mnd,
rd.res_discipline_key,
rd.res_deel_key resource_key,
COALESCE (d.ins_alg_ruimte_key_org, d.ins_alg_ruimte_key) alg_ruimte_key,
COUNT ( * ) aant,
SUM (DECODE (p.dag,
TRUNC (rrd.res_rsv_deel_van), 17 - GREATEST ((rrd.res_rsv_deel_van - TRUNC (rrd.res_rsv_deel_van)) * 24, 8),
TRUNC (rrd.res_rsv_deel_tot), LEAST ((rrd.res_rsv_deel_tot - TRUNC (rrd.res_rsv_deel_tot)) * 24, 17) - 8,
9)) -- = 17-8
uren
FROM res_rsv_deel rrd, res_rsv_ruimte rrr, res_deel rd, ins_deel d,
(SELECT TRUNC (SYSDATE, 'mm') - LEVEL dag FROM DUAL CONNECT BY LEVEL <= TRUNC (SYSDATE, 'mm') - ADD_MONTHS (TRUNC (SYSDATE, 'mm'), -25)) p
WHERE rrd.res_rsv_deel_verwijder IS NULL
AND rrd.res_rsv_deel_dirtlevel = 0
AND TRUNC (rrd.res_rsv_deel_van) != TRUNC (rrd.res_rsv_deel_tot) -- Meerdaags!
AND rrd.res_rsv_deel_tot BETWEEN ADD_MONTHS (TRUNC (SYSDATE, 'mm'), -25) AND TRUNC (SYSDATE, 'mm')
--AND TO_CHAR (rrd.res_rsv_deel_van, 'hh24') < '17'
--AND TO_CHAR (rrd.res_rsv_deel_tot, 'hh24') > '08'
--AND rrd.bez_bezoekers_key IS NULL -- Geen parkeerplaatsen!
AND rrd.res_rsv_ruimte_key = rrr.res_rsv_ruimte_key(+)
AND rrr.res_status_fo_key(+) IN (1, 2) -- Optie/Definitief
AND rrd.res_deel_key = rd.res_deel_key
AND rd.res_discipline_key = 3921 -- Flexplekken
AND rd.res_ins_deel_key = d.ins_deel_key
AND COALESCE (d.ins_alg_ruimte_type_org, d.ins_alg_ruimte_type) = 'R' -- Noodzakelijk?
AND p.dag BETWEEN TRUNC (rrd.res_rsv_deel_van) AND TRUNC (rrd.res_rsv_deel_tot)
AND TO_CHAR (p.dag, 'd') BETWEEN '2' AND '6'
AND NOT EXISTS (SELECT 1 FROM mld_vrije_dagen WHERE TRUNC (mld_vrije_dagen_datum) = TRUNC (p.dag))
GROUP BY TO_CHAR (p.dag, 'yyyy-mm'),
rd.res_discipline_key,
rd.res_deel_key,
COALESCE (d.ins_alg_ruimte_key_org, d.ins_alg_ruimte_key)) resbez,
res_discipline rd, -- Ook verwijderde catalogi!
alg_v_onrgoed_boom aob, -- Ook verwijderde ruimten!
alg_locatie l -- Ook verwijderde locaties!
WHERE resbes.mnd = resbez.mnd(+)
AND resbes.res_discipline_key = resbez.res_discipline_key(+)
AND resbes.resource_key = resbez.resource_key(+)
AND resbes.alg_ruimte_key = resbez.alg_ruimte_key(+)
AND resbes.res_discipline_key = rd.ins_discipline_key(+)
AND resbes.alg_ruimte_key = aob.alg_ruimte_key
AND aob.alg_locatie_key = l.alg_locatie_key
AND resbes.uren > 0 -- Soms 0 of zelfs negatief bij vreemde/gelijke begin- en eindtijden (van reserveerbare ruimte = res_ruimte)!
AND COALESCE (resbez.uren, 1) > 0 -- Soms 0 of zelfs negatief bij vreemde/gelijke begin- en eindtijden (van res_rsv_ruimte/deel)!
GROUP BY l.alg_locatie_key,
resbes.mnd,
rd.ins_discipline_omschrijving,
l.alg_locatie_omschrijving)
SELECT loc.alg_locatie_key, nl.mnd, nl.catalogus,
loc.locatie_oms,
TO_CHAR (nl.ant_nl, '999990'),
TO_CHAR (loc.ant_loc, '999990'),
TO_CHAR (100 * nl.bzg_nl, '990') || '%',
TO_CHAR (100 * loc.bzg_loc, '990') || '%'
FROM ( SELECT mnd, catalogus, SUM (aantal_reserveringen) ant_nl, SUM (COALESCE (bez_uren, 0)) / SUM (bes_uren) bzg_nl
FROM rescatl
GROUP BY mnd, catalogus) nl
LEFT JOIN (SELECT mnd, catalogus, alg_locatie_key, locatie_oms, aantal_reserveringen ant_loc, COALESCE (bez_uren, 0) / bes_uren bzg_loc
FROM rescatl) loc
ON nl.mnd = loc.mnd AND nl.catalogus = loc.catalogus;
------ payload end ------
SET DEFINE OFF