Files
Customer/SROZ/sroz.sql
Maarten van der Heide 7f65255629 SROZ#56682 RES-managementrapportages
svn path=/Customer/trunk/; revision=49259
2020-12-21 08:48:54 +00:00

2910 lines
166 KiB
MySQL
Raw Blame History

--
-- $Id$
--
-- Script containing customer specific db-configuration for SROZ.
DEFINE thisfile = 'SROZ.SQL'
DEFINE dbuser = '^SROZ'
SET ECHO ON
SET DEFINE ON
COLUMN fcltlogfile NEW_VALUE fcltlogfile NOPRINT;
WHENEVER SQLERROR EXIT;
SELECT adm.scriptspoolfile('&dbuser', '&thisfile') AS fcltlogfile FROM DUAL;
WHENEVER SQLERROR CONTINUE;
SPOOL &fcltlogfile
SET DEFINE OFF
------ payload begin ------
CREATE OR REPLACE VIEW sroz_v_rap_import_log
(
fclt_f_applicatie,
datum,
fclt_f_status,
omschrijving,
hint
)
AS
SELECT COALESCE (fac_import_app_code, imp_log_applicatie),
TO_CHAR (imp_log_datum, 'dd-mm-yyyy hh24:mi'),
imp_log_status,
imp_log_omschrijving,
imp_log_hint
FROM imp_log il1, fac_import fi1, fac_import_app fia1
WHERE il1.fac_import_key = fi1.fac_import_key(+)
AND fi1.fac_import_app_key = fia1.fac_import_app_key(+)
AND NOT EXISTS
(SELECT 1
FROM imp_log il2, fac_import fi2
WHERE il2.fac_import_key = fi2.fac_import_key
AND fi2.fac_import_app_key = fi1.fac_import_app_key
AND il2.fac_import_key > il1.fac_import_key);
CREATE OR REPLACE PROCEDURE sroz_import_prs (p_import_key IN NUMBER)
AS
v_errormsg VARCHAR2 (1000) := '-';
oracle_err_num NUMBER;
oracle_err_mes VARCHAR2 (200);
BEGIN
-- Generieke import.
-- De sequence array staat beschreven in PRS_PAC.SRC bij de import_perslid-PROCEDURE.
--'%"Personeelsnummer";"Loginnaam";"Achternaam";"Tussenvoegsel";"Voorletters";"Voornaam";"Afdelingscode";"Functie";"Email";"Telefoonnr";"Mobiel";"Gebouwcode"%');
--'%Personeelsnummer;Loginnaam;Achternaam;Tussenvoegsel;Voorletters;Voornaam;Afdelingscode;Functie;Email;Telefoonnr;Mobiel;Gebouwcode%');
prs.import_perslid (
p_import_key,
'0;0;0;0;0;0;7;3;4;6;'
|| '5;0;0;0;0;10;11;9;0;1;'
|| '8;2;0;0;0;0;12;0;0;0;'
|| '0;0;0;0;0;0;0;0;0;0;'
|| '0;0;0;0;0;0',
'%"Personeelsnummer";"Loginnaam";"Achternaam";"Tussenvoegsel";"Voorletters";"Voornaam";"Afdelingscode";"Functie";"Email";"Telefoonnr";"Mobiel";"Gebouwcode"%');
-- Klantspecifieke aanpassingen.
-- Als geen Loginnaam aangeleverd, dan handmatig toegekende niet wissen.
UPDATE fac_imp_perslid i
SET i.prs_perslid_oslogin =
(SELECT MAX (prs_perslid_oslogin)
FROM prs_v_aanwezigperslid
WHERE prs_perslid_nr = i.prs_perslid_nr)
WHERE i.prs_perslid_oslogin IS NULL -- Aangeleverde Loginnaam wint!
AND EXISTS
(SELECT 1
FROM prs_v_aanwezigperslid
WHERE prs_perslid_oslogin IS NOT NULL
AND prs_perslid_nr = i.prs_perslid_nr);
COMMIT;
-- Ontvangen Functie negeren en - voorlopig? - altijd op 'Onbekend'!
UPDATE fac_imp_perslid
SET prs_srtperslid_omschrijving = 'Onbekend';
-- Als geen Email aangeleverd, dan handmatig toegekende niet wissen.
UPDATE fac_imp_perslid i
SET i.prs_perslid_email =
(SELECT MAX (prs_perslid_email)
FROM prs_v_aanwezigperslid
WHERE prs_perslid_nr = i.prs_perslid_nr)
WHERE i.prs_perslid_email IS NULL -- Aangeleverde Email wint!
AND EXISTS
(SELECT 1
FROM prs_v_aanwezigperslid
WHERE prs_perslid_email IS NOT NULL
AND prs_perslid_nr = i.prs_perslid_nr);
COMMIT;
-- Als Gebouwcode niet aangeleverd, dan krijgen medewerkers - zover mogelijk - een WP
-- in het 'RZT'-gebouw (zie hieronder)!
UPDATE fac_imp_perslid
SET prs_kenmerk1 = 'RZT'
WHERE prs_kenmerk1 IS NULL;
COMMIT;
-- Locatie/Gebouw/Verdieping/Ruimte bepalen via Kenmerk1-kolom -> Gebouw en daaronder
-- Ruimte '_000' op de verdieping met het laagste volgnummer!
-- Als persoon al een WP heeft op import-locatie, dan is dat de juiste en blijft deze
-- (handmatig gecorrigeerde WP) ongewijzigd. In alle andere gevallen verhuist persoon
-- naar Ruimte '_000' op de meegegeven locatie.
-- Eventuele WPs onder andere locaties dan import-locatie blijven ook ongewijzigd!
UPDATE fac_imp_perslid i
SET i.alg_locatie_code =
(SELECT il.alg_locatie_code
FROM alg_v_aanweziggebouw ig, alg_locatie il
WHERE ig.alg_gebouw_upper = UPPER (i.prs_kenmerk1)
AND ig.alg_locatie_key = il.alg_locatie_key
AND NOT EXISTS
(SELECT 1
FROM alg_v_aanweziggebouw
WHERE alg_gebouw_upper = UPPER (i.prs_kenmerk1)
AND alg_locatie_key < il.alg_locatie_key)),
i.alg_gebouw_code =
(SELECT ig.alg_gebouw_code
FROM alg_v_aanweziggebouw ig, alg_locatie il
WHERE ig.alg_gebouw_upper = UPPER (i.prs_kenmerk1)
AND ig.alg_locatie_key = il.alg_locatie_key
AND NOT EXISTS
(SELECT 1
FROM alg_v_aanweziggebouw
WHERE alg_gebouw_upper = UPPER (i.prs_kenmerk1)
AND alg_locatie_key < il.alg_locatie_key)),
i.alg_verdieping_volgnr =
(SELECT iv.alg_verdieping_volgnr
FROM alg_v_aanweziggebouw ig, alg_locatie il, alg_verdieping iv, alg_ruimte ir
WHERE ig.alg_gebouw_upper = UPPER (i.prs_kenmerk1)
AND ig.alg_locatie_key = il.alg_locatie_key
AND NOT EXISTS
(SELECT 1
FROM alg_v_aanweziggebouw
WHERE alg_gebouw_upper = UPPER (i.prs_kenmerk1)
AND alg_locatie_key < il.alg_locatie_key)
AND ig.alg_gebouw_key = iv.alg_gebouw_key
AND iv.alg_verdieping_key = ir.alg_verdieping_key
AND ir.alg_ruimte_nr = '_000'
AND NOT EXISTS
(SELECT 1
FROM alg_v_aanwezigruimte r, alg_verdieping v
WHERE r.alg_ruimte_nr = '_000'
AND r.alg_verdieping_key = v.alg_verdieping_key
AND v.alg_gebouw_key = iv.alg_gebouw_key
AND v.alg_verdieping_volgnr < iv.alg_verdieping_volgnr)),
i.alg_ruimte_nr =
(SELECT ir.alg_ruimte_nr
FROM alg_v_aanweziggebouw ig, alg_locatie il, alg_verdieping iv, alg_ruimte ir
WHERE ig.alg_gebouw_upper = UPPER (i.prs_kenmerk1)
AND ig.alg_locatie_key = il.alg_locatie_key
AND NOT EXISTS
(SELECT 1
FROM alg_v_aanweziggebouw
WHERE alg_gebouw_upper = UPPER (i.prs_kenmerk1)
AND alg_locatie_key < il.alg_locatie_key)
AND ig.alg_gebouw_key = iv.alg_gebouw_key
AND iv.alg_verdieping_key = ir.alg_verdieping_key
AND ir.alg_ruimte_nr = '_000'
AND NOT EXISTS
(SELECT 1
FROM alg_v_aanwezigruimte r, alg_verdieping v
WHERE r.alg_ruimte_nr = '_000'
AND r.alg_verdieping_key = v.alg_verdieping_key
AND v.alg_gebouw_key = iv.alg_gebouw_key
AND v.alg_verdieping_volgnr < iv.alg_verdieping_volgnr))
WHERE NOT EXISTS -- Nog geen werkplek op Locatie!
(SELECT 1
FROM alg_v_aanweziggebouw ig,
alg_locatie il,
prs_v_aanwezigperslid p,
prs_perslidwerkplek pw,
prs_werkplek cw,
alg_v_aanwezigruimte cr,
alg_verdieping cv,
alg_gebouw cg,
alg_locatie cl
WHERE ig.alg_gebouw_upper = UPPER (i.prs_kenmerk1)
AND ig.alg_locatie_key = il.alg_locatie_key
AND NOT EXISTS
(SELECT 1
FROM alg_v_aanweziggebouw
WHERE alg_gebouw_upper = UPPER (i.prs_kenmerk1)
AND alg_locatie_key < il.alg_locatie_key)
AND p.prs_perslid_oslogin = i.prs_perslid_nr
AND p.prs_perslid_key = pw.prs_perslid_key
AND pw.prs_werkplek_key = cw.prs_werkplek_key
AND cw.prs_alg_ruimte_key = cr.alg_ruimte_key
AND cr.alg_verdieping_key = cv.alg_verdieping_key
AND cv.alg_gebouw_key = cg.alg_gebouw_key
AND cg.alg_locatie_key = il.alg_locatie_key);
COMMIT;
-- Resulteert in nette foutmelding als ruimte niet kan worden bepaald.
UPDATE fac_imp_perslid
SET alg_verdieping_volgnr = 0
WHERE alg_gebouw_code IS NOT NULL
AND alg_verdieping_volgnr IS NULL;
COMMIT;
EXCEPTION
WHEN OTHERS
THEN
oracle_err_num := SQLCODE;
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
v_errormsg := 'ORACLE (error ' || oracle_err_num || '/' || oracle_err_mes || ') ';
fac.imp_writelog (p_import_key, 'E', v_errormsg, 'Inleesproces personen afgebroken!');
END sroz_import_prs;
/
CREATE OR REPLACE PROCEDURE sroz_update_prs (p_import_key IN NUMBER)
AS
-- Maximaal percentage aan nieuwe medewerkers tov. actieve medewerkers (met
-- een personeelsnummer).
c_max_delta_percentage NUMBER (10) := 50; -- 50%!
v_count_prs_import NUMBER (10); -- #actieve personen na import!
v_count_prs_actual NUMBER (10); -- #actieve personen voor import!
-- Mandateren personen met >1 dienstverband, namelijk voor kostenplaats(en)
-- van de andere dan de eigen afdeling!
/*
CURSOR c_mandate
IS
SELECT p.prs_perslid_key, p.prs_perslid_nr, a.prs_kostenplaats_key
FROM prs_v_aanwezigperslid p, prs_afdeling a, fac_imp_perslid i
WHERE p.prs_afdeling_key = a.prs_afdeling_key
AND UPPER (p.prs_perslid_nr) = UPPER (i.prs_perslid_nr)
AND a.prs_afdeling_upper != UPPER (i.prs_perslid_naam)
ORDER BY 2;
*/
-- Verwijderen personen niet in import!
CURSOR c_del
IS
SELECT p.prs_perslid_key, p.prs_perslid_nr
FROM prs_v_aanwezigperslid p
WHERE p.prs_perslid_nr IS NOT NULL
AND NOT EXISTS
(SELECT 1
FROM fac_imp_perslid
WHERE UPPER (prs_perslid_nr) = UPPER (p.prs_perslid_nr))
ORDER BY 2;
BEGIN
-- Bepaal aantal actieve personen in FACILITOR na import!
SELECT COUNT (DISTINCT prs_perslid_nr)
INTO v_count_prs_import
FROM fac_imp_perslid
WHERE prs_perslid_nr IS NOT NULL;
-- Bepaal aantal actieve personen in FACILITOR voor import!
SELECT DECODE (COUNT ( * ), 0, 1, COUNT ( * ))
INTO v_count_prs_actual
FROM prs_v_aanwezigperslid
WHERE prs_perslid_nr IS NOT NULL;
IF (TRUNC ( (v_count_prs_import / v_count_prs_actual) * 100) < (100 - c_max_delta_percentage))
THEN
fac.imp_writelog (
p_import_key, 'E',
'Verschil tussen huidig aantal en te importeren aantal personen te groot; zie specificatie!',
'- max. verschilpercentage = [' || TO_CHAR (c_max_delta_percentage) || '%]'
|| CHR (13) || CHR (10)
|| '- #personen/import = [' || TO_CHAR (v_count_prs_import) || ']'
|| CHR (13) || CHR (10)
|| '- #personen/huidig = [' || TO_CHAR (v_count_prs_actual) || ']');
RETURN;
END IF;
-- Generieke update (op personeelsnummer).
prs.update_perslid (p_import_key, 'NR', 'D');
-- Verwijder personen die niet meer in de import voorkomen.
FOR rec IN c_del
LOOP
prs.delete_perslid (p_import_key, rec.prs_perslid_key);
END LOOP;
END sroz_update_prs;
/
-- Domein met alle huurders (debiteuren).
CREATE OR REPLACE VIEW sroz_v_huurders
(
prs_bedrijf_key,
prs_bedrijf_naam,
prs_bedrijf_verwijder
)
AS
SELECT b.prs_bedrijf_key,
b.prs_bedrijf_naam || ' [' || prs_overeenkomst_nr || ']/-;T:'
|| COALESCE (b.prs_bedrijf_telefoon, b.prs_bedrijf_telefoon2, '-') || ';E:'
|| COALESCE (b.prs_bedrijf_email, '-') || ';F:'
|| DECODE (b.prs_bedrijf_post_adres, NULL, '-', TRIM (b.prs_bedrijf_post_adres || ', ' || b.prs_bedrijf_post_postcode) || ' ' || b.prs_bedrijf_post_plaats),
prs_bedrijf_verwijder
FROM prs_bedrijf b
WHERE b.prs_bedrijf_huurder = 1
UNION ALL
SELECT 100000000 + cp.prs_contactpersoon_key,
b.prs_bedrijf_naam || ' [' || prs_overeenkomst_nr || ']/'
|| COALESCE (TRIM (cp.prs_contactpersoon_aanhef || ' ' || TRIM (cp.prs_contactpersoon_voornaam || ' ' || TRIM (cp.prs_contactpersoon_tussenv || ' ' || cp.prs_contactpersoon_naam))), '-') || ';T:'
|| COALESCE (cp.prs_contactpersoon_telefoon_1, cp.prs_contactpersoon_telefoon_2, b.prs_bedrijf_telefoon, b.prs_bedrijf_telefoon2, '-') || ';E:'
|| COALESCE (cp.prs_contactpersoon_email, b.prs_bedrijf_email, '-') || ';F:'
|| DECODE (b.prs_bedrijf_post_adres, NULL, '-', TRIM (b.prs_bedrijf_post_adres || ', ' || b.prs_bedrijf_post_postcode) || ' ' || b.prs_bedrijf_post_plaats),
cp.prs_contactpersoon_verwijder
FROM prs_bedrijf b, prs_contactpersoon cp
WHERE b.prs_bedrijf_huurder = 1
AND b.prs_bedrijf_key = cp.prs_bedrijf_key;
-- Domein met controleurs.
CREATE OR REPLACE VIEW sroz_v_controleurs
(
prs_perslid_key,
prs_perslid_naam_full,
prs_perslid_naam_friendly,
prs_perslid_verwijder
)
AS
SELECT pf.prs_perslid_key,
pf.prs_perslid_naam_full,
pf.prs_perslid_naam_friendly,
p.prs_perslid_verwijder
FROM fac_gebruikersgroep gg, prs_perslid p, prs_v_perslid_fullnames_all pf
WHERE gg.fac_groep_key = 6 -- FOBO RES
AND gg.prs_perslid_key = p.prs_perslid_key
AND p.prs_perslid_key = pf.prs_perslid_key
AND SUBSTR (p.prs_perslid_oslogin, 1, 1) != '_';
-- Bronview met alle afgemelde Externe bijeenkomsten tot *nu*!
CREATE OR REPLACE VIEW sroz_v_res_all
(
sortering,
res_rsv_ruimte_key,
res_rsv_artikel_key,
res_rsv_deel_key,
res_reservering_key,
res_rsv_ruimte_volgnr,
debiteurnummer,
debiteurnaam,
debiteurcontact,
res_rsv_ruimte_van,
res_rsv_ruimte_tot,
res_rsv_ruimte_omschrijving,
res_status_bo_key,
res_rsv_ruimte_ordernr,
aantal,
artikelomschrijving,
artikelprijs,
btw,
debiteurreferentie,
administratie,
kostenplaats,
code_rcvm,
export2afas_key,
export2afas_oms,
controleur
)
AS
SELECT x.sortering,
x.res_rsv_ruimte_key, x.res_rsv_artikel_key, x.res_rsv_deel_key,
x.res_reservering_key, x.res_rsv_ruimte_volgnr,
TRIM (SUBSTR (h.prs_bedrijf_naam,
INSTR (h.prs_bedrijf_naam, '[') + 1,
INSTR (h.prs_bedrijf_naam, ']/') - INSTR (h.prs_bedrijf_naam, '[') - 1))
debiteurnummer,
TRIM (SUBSTR (h.prs_bedrijf_naam,
1,
INSTR (h.prs_bedrijf_naam, '[') - 1))
debiteurnaam,
TRIM (SUBSTR (h.prs_bedrijf_naam,
INSTR (h.prs_bedrijf_naam, '/') + 1,
INSTR (h.prs_bedrijf_naam, ';T') - INSTR (h.prs_bedrijf_naam, '/') - 1))
debiteurcontact,
x.res_rsv_ruimte_van, x.res_rsv_ruimte_tot,
x.res_rsv_ruimte_omschrijving,
x.res_status_bo_key, x.res_rsv_ruimte_ordernr,
ROUND (x.aantal, 2),
x.artikelomschrijving,
ROUND (COALESCE (x.artikelprijs, 0), 2),
x.btw,
ref.res_kenmerkreservering_waarde debiteurref,
a.fac_usrdata_code administratie,
'7' kostenplaats,
x.code_rcvm,
e.fac_usrdata_key,
e.fac_usrdata_omschr,
c.prs_perslid_naam_friendly
FROM (SELECT TO_CHAR (rrr.res_rsv_ruimte_van, 'yyyymmdd hh24mi') || SUBSTR ('00000000' || TO_CHAR (res_reservering_key), -9) || 'R0' sortering,
rrr.res_rsv_ruimte_key, NULL res_rsv_artikel_key, NULL res_rsv_deel_key,
rrr.res_reservering_key, rrr.res_rsv_ruimte_volgnr,
rrr.res_rsv_ruimte_van, rrr.res_rsv_ruimte_tot,
rrr.res_rsv_ruimte_omschrijving,
rrr.res_status_bo_key, rrr.res_rsv_ruimte_ordernr,
24 * (rrr.res_rsv_ruimte_tot - rrr.res_rsv_ruimte_van) aantal,
rr.res_ruimte_nr artikelomschrijving,
DECODE (rrr.res_rsv_ruimte_ordernr,
NULL, -- Nog niet AV=Verwerkt!
DECODE (vht.res_kenmerkreservering_waarde, -- 1=Commercieel/2=Maatschappelijk
'1', rr.res_ruimte_prijs,
rr.res_ruimte_prijs * 0.5),
rrr.res_rsv_ruimte_prijs / (24 * (rrr.res_rsv_ruimte_tot - rrr.res_rsv_ruimte_van)))
artikelprijs,
COALESCE (fac.safe_to_number (rr.res_ruimte_groep), 21) btw,
COALESCE (rar1.alg_ruimte_key, rar2.alg_ruimte_key) alg_ruimte_key,
'R' code_rcvm
FROM res_v_aanwezigrsv_ruimte rrr,
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,
res_ruimte rr,
(SELECT kw.res_rsv_ruimte_key, kw.res_kenmerkreservering_waarde
FROM res_v_aanwezigkenmerkwaarde kw, res_kenmerk k
WHERE kw.res_kenmerk_key = k.res_kenmerk_key
AND k.res_srtkenmerk_key = 1) vht -- Verhuurtarief
WHERE rrr.res_activiteit_key = 30 -- Externe bijeenkomst (g<><67>n 11 of 50=Uitleen of Rondleiding)!
AND rrr.res_rsv_ruimte_tot < TRUNC (SYSDATE + 1) -- Niet in toekomst!
AND rrr.res_rsv_ruimte_dirtlevel = 0 -- Niet dirty!
AND COALESCE (rrr.res_rsv_ruimte_totaal, 0) = 0 -- G<><47>n afgesproken prijs!
AND rrr.res_ruimte_opstel_key = rro.res_ruimte_opstel_key -- Alleen Ruimte-reserveringen!
AND rro.res_ruimte_key = rar1.res_ruimte_key(+)
AND rro.res_ruimte_key = rar2.res_ruimte_key(+)
AND COALESCE (rar1.res_ruimte_key, rar2.res_ruimte_key) = rr.res_ruimte_key
AND rrr.res_rsv_ruimte_key = vht.res_rsv_ruimte_key(+)
AND rrr.res_status_bo_key IN (5, 6)
AND NOT EXISTS
(SELECT 1
FROM res_v_aanwezigrsv_artikel
WHERE res_rsv_artikel_dirtlevel = 0 -- Niet dirty!
AND res_status_bo_key = 2
AND res_rsv_ruimte_key = rrr.res_rsv_ruimte_key)
AND NOT EXISTS
(SELECT 1
FROM res_v_aanwezigrsv_deel
WHERE res_rsv_deel_dirtlevel = 0 -- Niet dirty!
AND res_status_bo_key = 2
AND res_rsv_ruimte_key = rrr.res_rsv_ruimte_key)
AND 24 * (rrr.res_rsv_ruimte_tot - rrr.res_rsv_ruimte_van) > 0 -- Zou zo moeten zijn!?
UNION ALL -- Afgesproken ruimteprijs
SELECT TO_CHAR (rrr.res_rsv_ruimte_van, 'yyyymmdd hh24mi') || SUBSTR ('00000000' || TO_CHAR (res_reservering_key), -9) || 'R0' sortering,
rrr.res_rsv_ruimte_key, NULL res_rsv_artikel_key, NULL res_rsv_deel_key,
rrr.res_reservering_key, rrr.res_rsv_ruimte_volgnr,
rrr.res_rsv_ruimte_van, rrr.res_rsv_ruimte_tot,
rrr.res_rsv_ruimte_omschrijving,
rrr.res_status_bo_key, rrr.res_rsv_ruimte_ordernr,
1 aantal,
'Afgesproken prijs' artikelomschrijving,
rrr.res_rsv_ruimte_totaal artikelprijs,
COALESCE (fac.safe_to_number (rr.res_ruimte_groep), 21) btw,
COALESCE (rar1.alg_ruimte_key, rar2.alg_ruimte_key) alg_ruimte_key,
'R' code_rcvm
FROM res_v_aanwezigrsv_ruimte rrr,
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,
res_ruimte rr
WHERE rrr.res_activiteit_key = 30 -- Externe bijeenkomst (g<><67>n 11 of 50=Uitleen of Rondleiding)!
AND rrr.res_rsv_ruimte_tot < TRUNC (SYSDATE + 1) -- Niet in toekomst!
AND rrr.res_rsv_ruimte_dirtlevel = 0 -- Niet dirty!
AND COALESCE (rrr.res_rsv_ruimte_totaal, 0) != 0 -- Afgesproken prijs!
AND rrr.res_ruimte_opstel_key = rro.res_ruimte_opstel_key -- Alleen Ruimte-reserveringen!
AND rro.res_ruimte_key = rar1.res_ruimte_key(+)
AND rro.res_ruimte_key = rar2.res_ruimte_key(+)
AND COALESCE (rar1.res_ruimte_key, rar2.res_ruimte_key) = rr.res_ruimte_key
AND rrr.res_status_bo_key IN (5, 6)
AND NOT EXISTS
(SELECT 1
FROM res_v_aanwezigrsv_artikel
WHERE res_rsv_artikel_dirtlevel = 0 -- Niet dirty!
AND res_status_bo_key = 2
AND res_rsv_ruimte_key = rrr.res_rsv_ruimte_key)
AND NOT EXISTS
(SELECT 1
FROM res_v_aanwezigrsv_deel
WHERE res_rsv_deel_dirtlevel = 0 -- Niet dirty!
AND res_status_bo_key = 2
AND res_rsv_ruimte_key = rrr.res_rsv_ruimte_key)
UNION ALL -- Korting
SELECT TO_CHAR (rrr.res_rsv_ruimte_van, 'yyyymmdd hh24mi') || SUBSTR ('00000000' || TO_CHAR (res_reservering_key), -9) || 'R1' sortering,
rrr.res_rsv_ruimte_key, NULL res_rsv_artikel_key, NULL res_rsv_deel_key,
rrr.res_reservering_key, rrr.res_rsv_ruimte_volgnr,
rrr.res_rsv_ruimte_van, rrr.res_rsv_ruimte_tot,
rrr.res_rsv_ruimte_omschrijving,
rrr.res_status_bo_key, rrr.res_rsv_ruimte_ordernr,
1 aantal,
'Korting' artikelomschrijving,
-1 * rrr.res_rsv_ruimte_korting artikelprijs,
COALESCE (fac.safe_to_number (rr.res_ruimte_groep), 21) btw,
COALESCE (rar1.alg_ruimte_key, rar2.alg_ruimte_key) alg_ruimte_key,
'R' code_rcvm
FROM res_v_aanwezigrsv_ruimte rrr,
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,
res_ruimte rr
WHERE rrr.res_activiteit_key = 30 -- Externe bijeenkomst (g<><67>n 11 of 50=Uitleen of Rondleiding)!
AND rrr.res_rsv_ruimte_tot < TRUNC (SYSDATE + 1) -- Niet in toekomst!
AND rrr.res_rsv_ruimte_dirtlevel = 0 -- Niet dirty!
AND COALESCE (rrr.res_rsv_ruimte_korting, 0) != 0
AND rrr.res_ruimte_opstel_key = rro.res_ruimte_opstel_key -- Alleen Ruimte-reserveringen!
AND rro.res_ruimte_key = rar1.res_ruimte_key(+)
AND rro.res_ruimte_key = rar2.res_ruimte_key(+)
AND COALESCE (rar1.res_ruimte_key, rar2.res_ruimte_key) = rr.res_ruimte_key
AND rrr.res_status_bo_key IN (5, 6)
AND NOT EXISTS
(SELECT 1
FROM res_v_aanwezigrsv_artikel
WHERE res_rsv_artikel_dirtlevel = 0 -- Niet dirty!
AND res_status_bo_key = 2
AND res_rsv_ruimte_key = rrr.res_rsv_ruimte_key)
AND NOT EXISTS
(SELECT 1
FROM res_v_aanwezigrsv_deel
WHERE res_rsv_deel_dirtlevel = 0 -- Niet dirty!
AND res_status_bo_key = 2
AND res_rsv_ruimte_key = rrr.res_rsv_ruimte_key)
UNION ALL -- Verbruik=Verbruiksartikelen
SELECT TO_CHAR (rrr.res_rsv_ruimte_van, 'yyyymmdd hh24mi') || SUBSTR ('00000000' || TO_CHAR (res_reservering_key), -9) || 'V' || TO_CHAR (rra.res_discipline_key) || SUBSTR ('000' || TO_CHAR (COALESCE (rra.res_artikel_volgnummer, 0)), -3) sortering,
rrr.res_rsv_ruimte_key, rra.res_rsv_artikel_key, NULL res_rsv_deel_key,
rrr.res_reservering_key, rrr.res_rsv_ruimte_volgnr,
rrr.res_rsv_ruimte_van, rrr.res_rsv_ruimte_tot,
rrr.res_rsv_ruimte_omschrijving,
rrr.res_status_bo_key, rrr.res_rsv_ruimte_ordernr,
rra.res_rsv_artikel_aantal aantal,
rra.res_artikel_omschrijving artikelomschrijving,
DECODE (rra.res_rsv_artikel_prijs, NULL, rra.res_artikel_prijs, rra.res_rsv_artikel_prijs / rra.res_rsv_artikel_aantal)
artikelprijs,
rra.btw,
COALESCE (rar1.alg_ruimte_key, rar2.alg_ruimte_key, rrr.alg_ruimte_key) alg_ruimte_key,
DECODE (rra.res_artikel_groep,
'R', rra.res_artikel_groep,
'C', rra.res_artikel_groep,
'V', rra.res_artikel_groep,
'M', rra.res_artikel_groep,
ks.prs_kostensoort_altcode)
code_rcvm
FROM res_v_aanwezigrsv_ruimte rrr,
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,
res_ruimte rr,
(SELECT rra.res_rsv_ruimte_key, rra.res_rsv_artikel_key,
rra.res_rsv_artikel_levering, rra.res_status_bo_key,
rra.res_rsv_artikel_aantal,
ra.res_artikel_nr,
ra.res_artikel_omschrijving,
rra.res_rsv_artikel_prijs,
ra.res_artikel_prijs,
COALESCE (rra.res_rsv_artikel_btw, ra.res_artikel_btw, 21) btw,
ra.res_discipline_key, ra.res_artikel_volgnummer,
ra.res_artikel_groep
FROM res_v_aanwezigrsv_artikel rra, res_artikel ra
WHERE rra.res_rsv_artikel_levering < TRUNC (SYSDATE + 1)
AND rra.res_rsv_artikel_dirtlevel = 0
AND rra.res_artikel_key = ra.res_artikel_key
AND (ra.res_discipline_key NOT IN (48, 50) OR ra.res_artikel_btw IS NOT NULL)
UNION ALL -- Dichtbij BTW laag
SELECT rra.res_rsv_ruimte_key, rra.res_rsv_artikel_key,
rra.res_rsv_artikel_levering, rra.res_status_bo_key,
rra.res_rsv_artikel_aantal,
ra.res_artikel_nr,
ra.res_artikel_omschrijving,
0.66 * rra.res_rsv_artikel_prijs res_rsv_artikel_prijs,
0.66 * ra.res_artikel_prijs res_artikel_prijs,
6 btw,
ra.res_discipline_key, ra.res_artikel_volgnummer,
ra.res_artikel_groep
FROM res_v_aanwezigrsv_artikel rra, res_artikel ra
WHERE rra.res_rsv_artikel_levering < TRUNC (SYSDATE + 1)
AND rra.res_rsv_artikel_dirtlevel = 0
AND rra.res_artikel_key = ra.res_artikel_key
AND ra.res_discipline_key IN (48) -- Dichtbij extra
AND ra.res_artikel_btw IS NULL
UNION ALL -- Dichtbij BTW hoog
SELECT rra.res_rsv_ruimte_key, rra.res_rsv_artikel_key,
rra.res_rsv_artikel_levering, rra.res_status_bo_key,
rra.res_rsv_artikel_aantal,
ra.res_artikel_nr,
ra.res_artikel_omschrijving,
0.34 * rra.res_rsv_artikel_prijs res_rsv_artikel_prijs,
0.34 * ra.res_artikel_prijs res_artikel_prijs,
21 btw,
ra.res_discipline_key, ra.res_artikel_volgnummer,
ra.res_artikel_groep
FROM res_v_aanwezigrsv_artikel rra, res_artikel ra
WHERE rra.res_rsv_artikel_levering < TRUNC (SYSDATE + 1)
AND rra.res_rsv_artikel_dirtlevel = 0
AND rra.res_artikel_key = ra.res_artikel_key
AND ra.res_discipline_key IN (48) -- Dichtbij extra
AND ra.res_artikel_btw IS NULL
UNION ALL -- Momento BTW laag
SELECT rra.res_rsv_ruimte_key, rra.res_rsv_artikel_key,
rra.res_rsv_artikel_levering, rra.res_status_bo_key,
rra.res_rsv_artikel_aantal,
ra.res_artikel_nr,
ra.res_artikel_omschrijving,
0.65 * rra.res_rsv_artikel_prijs res_rsv_artikel_prijs,
0.65 * ra.res_artikel_prijs res_artikel_prijs,
6 btw,
ra.res_discipline_key, ra.res_artikel_volgnummer,
ra.res_artikel_groep
FROM res_v_aanwezigrsv_artikel rra, res_artikel ra
WHERE rra.res_rsv_artikel_levering < TRUNC (SYSDATE + 1)
AND rra.res_rsv_artikel_dirtlevel = 0
AND rra.res_artikel_key = ra.res_artikel_key
AND ra.res_discipline_key IN (50) -- Momento extra
AND ra.res_artikel_btw IS NULL
UNION ALL -- Momento BTW hoog
SELECT rra.res_rsv_ruimte_key, rra.res_rsv_artikel_key,
rra.res_rsv_artikel_levering, rra.res_status_bo_key,
rra.res_rsv_artikel_aantal,
ra.res_artikel_nr,
ra.res_artikel_omschrijving,
0.35 * rra.res_rsv_artikel_prijs res_rsv_artikel_prijs,
0.35 * ra.res_artikel_prijs res_artikel_prijs,
21 btw,
ra.res_discipline_key, ra.res_artikel_volgnummer,
ra.res_artikel_groep
FROM res_v_aanwezigrsv_artikel rra, res_artikel ra
WHERE rra.res_rsv_artikel_levering < TRUNC (SYSDATE + 1)
AND rra.res_rsv_artikel_dirtlevel = 0
AND rra.res_artikel_key = ra.res_artikel_key
AND ra.res_discipline_key IN (50) -- Momento extra
AND ra.res_artikel_btw IS NULL) rra,
res_discipline rd,
prs_kostensoort ks
WHERE rrr.res_activiteit_key IN (30, -11, -50) -- Externe bijeenkomst/Uitleen/Rondleiding
AND rrr.res_rsv_ruimte_tot < TRUNC (SYSDATE + 1) -- Niet in toekomst!
AND rrr.res_rsv_ruimte_dirtlevel = 0 -- Niet dirty!
AND rrr.res_ruimte_opstel_key = rro.res_ruimte_opstel_key(+) -- Ruimte- <20>n Uitleen-reserveringen!
AND rro.res_ruimte_key = rar1.res_ruimte_key(+)
AND rro.res_ruimte_key = rar2.res_ruimte_key(+)
AND COALESCE (rar1.res_ruimte_key, rar2.res_ruimte_key) = rr.res_ruimte_key(+)
AND rrr.res_rsv_ruimte_key = rra.res_rsv_ruimte_key
AND rra.res_discipline_key = rd.ins_discipline_key
AND rd.prs_kostensoort_key = ks.prs_kostensoort_key(+)
AND rrr.res_status_bo_key IN (5, 6)
AND NOT EXISTS
(SELECT 1
FROM res_v_aanwezigrsv_artikel
WHERE res_rsv_artikel_dirtlevel = 0 -- Niet dirty!
AND res_status_bo_key = 2
AND res_rsv_ruimte_key = rrr.res_rsv_ruimte_key)
AND NOT EXISTS
(SELECT 1
FROM res_v_aanwezigrsv_deel
WHERE res_rsv_deel_dirtlevel = 0 -- Niet dirty!
AND res_status_bo_key = 2
AND res_rsv_ruimte_key = rrr.res_rsv_ruimte_key)
UNION ALL -- Overig=Voorzieningen
SELECT TO_CHAR (rrr.res_rsv_ruimte_van, 'yyyymmdd hh24mi') || SUBSTR ('00000000' || TO_CHAR (res_reservering_key), -9) || 'X' || SUBSTR (rd.res_deel_omschrijving, 1, 3) sortering,
rrr.res_rsv_ruimte_key, NULL res_rsv_artikel_key, rrd.res_rsv_deel_key,
rrr.res_reservering_key, rrr.res_rsv_ruimte_volgnr,
rrr.res_rsv_ruimte_van, rrr.res_rsv_ruimte_tot,
rrr.res_rsv_ruimte_omschrijving,
rrr.res_status_bo_key, rrr.res_rsv_ruimte_ordernr,
24 * (rrd.res_rsv_deel_tot - rrd.res_rsv_deel_van) aantal,
rd.res_deel_omschrijving artikelomschrijving,
DECODE (rrd.res_rsv_deel_prijs, NULL, rd.res_deel_prijs, rrd.res_rsv_deel_prijs / (24 * (rrd.res_rsv_deel_tot - rrd.res_rsv_deel_van)))
artikelprijs,
21 btw, -- Hard 21%
COALESCE (rar1.alg_ruimte_key, rar2.alg_ruimte_key, rrr.alg_ruimte_key) alg_ruimte_key,
'V' code_rcvm
FROM res_v_aanwezigrsv_ruimte rrr,
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,
res_ruimte rr,
res_v_aanwezigrsv_deel rrd,
res_deel rd
WHERE rrr.res_activiteit_key IN (30, -11, -50) -- Externe bijeenkomst/Uitleen/Rondleiding
AND rrr.res_rsv_ruimte_tot < TRUNC (SYSDATE + 1) -- Niet in toekomst!
AND rrr.res_rsv_ruimte_dirtlevel = 0 -- Niet dirty!
AND rrr.res_ruimte_opstel_key = rro.res_ruimte_opstel_key(+) -- Ruimte- <20>n Uitleen-reserveringen!
AND rro.res_ruimte_key = rar1.res_ruimte_key(+)
AND rro.res_ruimte_key = rar2.res_ruimte_key(+)
AND COALESCE (rar1.res_ruimte_key, rar2.res_ruimte_key) = rr.res_ruimte_key(+)
AND rrr.res_rsv_ruimte_key = rrd.res_rsv_ruimte_key
AND rrd.res_rsv_deel_tot < SYSDATE -- Niet in toekomst!
AND rrd.res_rsv_deel_dirtlevel = 0 -- Niet dirty!
AND rrd.res_deel_key = rd.res_deel_key
AND rrr.res_status_bo_key IN (5, 6)
AND NOT EXISTS
(SELECT 1
FROM res_v_aanwezigrsv_artikel
WHERE res_rsv_artikel_dirtlevel = 0 -- Niet dirty!
AND res_status_bo_key = 2
AND res_rsv_ruimte_key = rrr.res_rsv_ruimte_key)
AND NOT EXISTS
(SELECT 1
FROM res_v_aanwezigrsv_deel
WHERE res_rsv_deel_dirtlevel = 0 -- Niet dirty!
AND res_status_bo_key = 2
AND res_rsv_ruimte_key = rrr.res_rsv_ruimte_key)) x
LEFT JOIN res_v_aanwezigkenmerkwaarde deb
ON x.res_rsv_ruimte_key = deb.res_rsv_ruimte_key
AND deb.res_kenmerk_key = 2 -- Debiteur
LEFT JOIN sroz_v_huurders h
ON deb.res_kenmerkreservering_waarde = TO_CHAR (h.prs_bedrijf_key)
LEFT JOIN res_v_aanwezigkenmerkwaarde ref
ON x.res_rsv_ruimte_key = ref.res_rsv_ruimte_key
AND ref.res_kenmerk_key = 3 -- Referentie debiteur
LEFT JOIN res_v_aanwezigkenmerkwaarde adm
ON x.res_rsv_ruimte_key = adm.res_rsv_ruimte_key
AND adm.res_kenmerk_key = 161 -- Administratie
LEFT JOIN fac_v_aanwezigusrdata a
ON adm.res_kenmerkreservering_waarde = TO_CHAR (a.fac_usrdata_key)
LEFT JOIN res_v_aanwezigkenmerkwaarde e2a
ON x.res_rsv_ruimte_key = e2a.res_rsv_ruimte_key
AND e2a.res_kenmerk_key = 181 -- Export naar Afas
LEFT JOIN fac_v_aanwezigusrdata e
ON e2a.res_kenmerkreservering_waarde = TO_CHAR (e.fac_usrdata_key)
LEFT JOIN res_v_aanwezigkenmerkwaarde gdr
ON x.res_rsv_ruimte_key = gdr.res_rsv_ruimte_key
AND gdr.res_kenmerk_key = 182 -- Gecontroleerd door
LEFT JOIN sroz_v_controleurs c
ON gdr.res_kenmerkreservering_waarde = TO_CHAR (c.prs_perslid_key)
WHERE x.res_rsv_ruimte_van > TO_DATE ('01-01-2019', 'dd-mm-yyyy')
;
-- Actueel: Externe reserveringen lopende week!
CREATE OR REPLACE VIEW sroz_v_rap_actual_res
(
hide_f_sortering,
reserveringsnummer,
debiteurnummer,
debiteurnaam,
debiteurcontact,
vandatum,
totdatum,
omschrijving,
aantal,
artikelomschrijving,
artikelprijs,
btw,
debiteurreferentie,
administratie,
kostenplaats,
code_rcvm,
controleur
)
AS
SELECT sortering,
TO_CHAR (res_reservering_key) || '/' || TO_CHAR (res_rsv_ruimte_volgnr),
debiteurnummer,
debiteurnaam,
debiteurcontact,
TO_CHAR (res_rsv_ruimte_van, 'dd-mm-yyyy hh24:mi:ss'),
TO_CHAR (res_rsv_ruimte_tot, 'dd-mm-yyyy hh24:mi:ss'),
res_rsv_ruimte_omschrijving,
SUM (aantal),
artikelomschrijving,
artikelprijs,
btw,
debiteurreferentie,
administratie,
kostenplaats,
code_rcvm,
controleur
FROM sroz_v_res_all
WHERE res_rsv_ruimte_van > TRUNC (SYSDATE, 'iw')
AND res_status_bo_key != 6 -- Niet AV
AND export2afas_key = 161 -- Ja (zodra afgemeld+gecontroleerd)
GROUP BY sortering,
TO_CHAR (res_reservering_key) || '/' || TO_CHAR (res_rsv_ruimte_volgnr),
debiteurnummer,
debiteurnaam,
debiteurcontact,
TO_CHAR (res_rsv_ruimte_van, 'dd-mm-yyyy hh24:mi:ss'),
TO_CHAR (res_rsv_ruimte_tot, 'dd-mm-yyyy hh24:mi:ss'),
res_rsv_ruimte_omschrijving,
artikelomschrijving,
artikelprijs,
btw,
debiteurreferentie,
administratie,
kostenplaats,
code_rcvm,
controleur;
-- Concept: Externe reserveringen voorgaande week!
CREATE OR REPLACE VIEW sroz_v_rap_dryrun_res
(
hide_f_sortering,
reserveringsnummer,
debiteurnummer,
debiteurnaam,
debiteurcontact,
vandatum,
totdatum,
omschrijving,
aantal,
artikelomschrijving,
artikelprijs,
btw,
debiteurreferentie,
administratie,
kostenplaats,
code_rcvm,
controleur
)
AS
SELECT sortering,
TO_CHAR (res_reservering_key) || '/' || TO_CHAR (res_rsv_ruimte_volgnr),
debiteurnummer,
debiteurnaam,
debiteurcontact,
TO_CHAR (res_rsv_ruimte_van, 'dd-mm-yyyy hh24:mi:ss'),
TO_CHAR (res_rsv_ruimte_tot, 'dd-mm-yyyy hh24:mi:ss'),
res_rsv_ruimte_omschrijving,
SUM (aantal),
artikelomschrijving,
artikelprijs,
btw,
debiteurreferentie,
administratie,
kostenplaats,
code_rcvm,
controleur
FROM sroz_v_res_all
WHERE res_rsv_ruimte_van < TRUNC (SYSDATE, 'iw')
AND res_status_bo_key != 6 -- Niet AV
AND export2afas_key = 161 -- Ja (zodra afgemeld+gecontroleerd)
GROUP BY sortering,
TO_CHAR (res_reservering_key) || '/' || TO_CHAR (res_rsv_ruimte_volgnr),
debiteurnummer,
debiteurnaam,
debiteurcontact,
TO_CHAR (res_rsv_ruimte_van, 'dd-mm-yyyy hh24:mi:ss'),
TO_CHAR (res_rsv_ruimte_tot, 'dd-mm-yyyy hh24:mi:ss'),
res_rsv_ruimte_omschrijving,
artikelomschrijving,
artikelprijs,
btw,
debiteurreferentie,
administratie,
kostenplaats,
code_rcvm,
controleur;
-- Definitief: Externe reserveringen voorgaande weken!
-- TODO: Beter historisch opslaan in fin_verkoopfactuur-tabel?
CREATE OR REPLACE VIEW sroz_v_rap_frozen_res
(
hide_f_sortering,
fclt_x_week,
reserveringsnummer,
debiteurnummer,
debiteurnaam,
debiteurcontact,
vandatum,
totdatum,
omschrijving,
aantal,
artikelomschrijving,
artikelprijs,
btw,
debiteurreferentie,
administratie,
kostenplaats,
code_rcvm,
controleur
)
AS
SELECT TO_CHAR (TRUNC (fac.gettrackingdate ('RESVER', res_rsv_ruimte_key), 'iw') - 1, 'iyyy-iw') || TO_CHAR (SUBSTR (res_rsv_ruimte_ordernr, 1, INSTR (res_rsv_ruimte_ordernr, '|') - 1), 'FM00000009') || sortering sortering,
TO_CHAR (TRUNC (fac.gettrackingdate ('RESVER', res_rsv_ruimte_key), 'iw') - 1, 'iyyy-iw') week,
TO_CHAR (res_reservering_key) || '/' || TO_CHAR (res_rsv_ruimte_volgnr),
debiteurnummer,
debiteurnaam,
debiteurcontact,
TO_CHAR (res_rsv_ruimte_van, 'dd-mm-yyyy hh24:mi:ss'),
TO_CHAR (res_rsv_ruimte_tot, 'dd-mm-yyyy hh24:mi:ss'),
res_rsv_ruimte_omschrijving,
SUM (aantal),
artikelomschrijving,
artikelprijs,
btw,
debiteurreferentie,
administratie,
kostenplaats,
code_rcvm,
controleur
FROM sroz_v_res_all
WHERE fac.gettrackingdate ('RESVER', res_rsv_ruimte_key) > TRUNC (ADD_MONTHS (SYSDATE, -24), 'yyyy') -- Huidige jaar en 2 voorgaande jaren!
--AND res_status_bo_key = 6 -- AV!
AND res_rsv_ruimte_ordernr IS NOT NULL
AND export2afas_key = 161 -- Ja (zodra afgemeld+gecontroleerd)
GROUP BY TO_CHAR (TRUNC (fac.gettrackingdate ('RESVER', res_rsv_ruimte_key), 'iw') - 1, 'iyyy-iw') || TO_CHAR (SUBSTR (res_rsv_ruimte_ordernr, 1, INSTR (res_rsv_ruimte_ordernr, '|') - 1), 'FM00000009') || sortering,
TO_CHAR (TRUNC (fac.gettrackingdate ('RESVER', res_rsv_ruimte_key), 'iw') - 1, 'iyyy-iw'),
TO_CHAR (res_reservering_key) || '/' || TO_CHAR (res_rsv_ruimte_volgnr),
debiteurnummer,
debiteurnaam,
debiteurcontact,
TO_CHAR (res_rsv_ruimte_van, 'dd-mm-yyyy hh24:mi:ss'),
TO_CHAR (res_rsv_ruimte_tot, 'dd-mm-yyyy hh24:mi:ss'),
res_rsv_ruimte_omschrijving,
artikelomschrijving,
artikelprijs,
btw,
debiteurreferentie,
administratie,
kostenplaats,
code_rcvm,
controleur;
-- WHERE FAC.count_work_days (TRUNC (SYSDATE, 'mm') - 1, SYSDATE - 1) = 15
-- AND TO_CHAR (SYSDATE - 1, 'd') BETWEEN '2' AND '6'
-- AND NOT EXISTS
-- (SELECT 1
-- FROM mld_vrije_dagen
-- WHERE TRUNC (mld_vrije_dagen_datum) = TRUNC (SYSDATE - 1))
CREATE OR REPLACE VIEW sroz_v_export_fin
(
result,
result_order
)
AS -- View bevat alleen inhoud op donderdagen!
SELECT 'reserveringsnummer'
|| ';debiteur'
|| ';vandatum'
|| ';totdatum'
|| ';omschrijving'
|| ';aantal'
|| ';artikelomschrijving'
|| ';artikelprijs'
|| ';btw'
|| ';debiteurreferentie'
|| ';administratie'
|| ';kostenplaats'
|| ';codercvm'
|| ';contactpersoon',
0
FROM DUAL
WHERE TO_CHAR (SYSDATE, 'd') = '5' -- Donderdag
UNION ALL
SELECT reserveringsnummer
|| ';'
|| debiteurnummer
|| ';'
|| vandatum
|| ';'
|| totdatum
|| ';'
|| omschrijving
|| ';'
|| REPLACE (TO_CHAR (aantal), '.', ',')
|| ';'
|| artikelomschrijving
|| ';'
|| REPLACE (TO_CHAR (artikelprijs), '.', ',')
|| ';'
|| REPLACE (TO_CHAR (btw), '.', ',')
|| ';'
|| debiteurreferentie
|| ';'
|| administratie
|| ';'
|| kostenplaats
|| ';'
|| code_rcvm
|| ';'
|| debiteurcontact,
ROWNUM
FROM ( SELECT reserveringsnummer,
debiteurnummer,
vandatum,
totdatum,
omschrijving,
aantal,
artikelomschrijving,
artikelprijs,
btw,
debiteurreferentie,
administratie,
kostenplaats,
code_rcvm,
debiteurcontact
FROM sroz_v_rap_frozen_res
WHERE fclt_x_week = TO_CHAR (TRUNC (SYSDATE, 'iw') - 1, 'iyyy-iw')
ORDER BY hide_f_sortering)
WHERE TO_CHAR (SYSDATE, 'd') = '5' -- Donderdag
;
CREATE OR REPLACE PROCEDURE sroz_select_fin (p_applname IN VARCHAR2,
p_applrun IN VARCHAR2)
AS
-- Verwerken gedefineerde set aan 'Externe bijeenkomst'-regels (waarvan
-- mogelijk slechts een deel wordt ge<67>xporteerd)!
CURSOR c1
IS
SELECT '[' || debiteurnummer || '] ' aanduiding,
res_rsv_ruimte_key, res_rsv_artikel_key, res_rsv_deel_key,
debiteurnummer, aantal, artikelprijs, btw
FROM sroz_v_res_all
WHERE res_rsv_ruimte_van < TRUNC (SYSDATE, 'iw')
AND res_status_bo_key != 6 -- Niet AV
AND ((export2afas_key = 161 AND controleur IS NOT NULL) -- Ja (zodra afgemeld+gecontroleerd)
OR export2afas_key = 162)
AND sortering NOT LIKE '%R1' -- Skip Korting-regels!
ORDER BY debiteurnummer, sortering DESC;
v_errormsg VARCHAR2 (1000);
oracle_err_num NUMBER;
oracle_err_mes VARCHAR2 (200);
v_regel_nr NUMBER;
v_amount_tot NUMBER (10, 2);
v_prijs NUMBER (9, 2);
BEGIN
-- LET OP: FIN-export draait dagelijks na middernacht (begin van dag) en de
-- verkoop wordt wekelijks alleen in de nacht na woensdag doorgezet.
IF TO_CHAR (SYSDATE, 'd') = '5'
THEN
v_regel_nr := 0;
v_amount_tot := 0;
FOR rec IN c1
LOOP
BEGIN
v_prijs := ROUND (rec.aantal * rec.artikelprijs, 2);
IF rec.res_rsv_artikel_key IS NOT NULL
THEN -- Artikel-regel
v_errormsg := 'Fout verwerken res_rsv_artikel';
UPDATE res_rsv_artikel
SET res_status_bo_key = 6 -- AV (en zet ook Verwerkt-date)
WHERE res_rsv_artikel_key = rec.res_rsv_artikel_key;
v_errormsg := 'Fout tracken C-verwerking';
fac.trackaction ('RESVER', rec.res_rsv_ruimte_key, NULL, NULL, 'Artikel verwerkt');
ELSIF rec.res_rsv_deel_key IS NOT NULL
THEN -- Voorziening-regel
v_errormsg := 'Fout bewaren res_rsv_deel_prijs';
UPDATE res_rsv_deel
SET res_rsv_deel_prijs = v_prijs
WHERE res_rsv_deel_key = rec.res_rsv_deel_key;
v_errormsg := 'Fout verwerken res_rsv_deel';
UPDATE res_rsv_deel
SET res_status_bo_key = 6 -- AV (en zet ook Verwerkt-date)
WHERE res_rsv_deel_key = rec.res_rsv_deel_key;
v_errormsg := 'Fout tracken V-verwerking';
fac.trackaction ('RESVER', rec.res_rsv_ruimte_key, NULL, NULL, 'Voorziening verwerkt');
ELSE -- Ruimte-regel
v_errormsg := 'Fout bewaren res_rsv_ruimte_prijs';
UPDATE res_rsv_ruimte
SET res_rsv_ruimte_prijs = v_prijs,
res_rsv_ruimte_ordernr = rec.debiteurnummer || '|' || TO_CHAR (rec.btw) -- Historisch bewaren: debiteurnummer + btw
WHERE res_rsv_ruimte_key = rec.res_rsv_ruimte_key;
v_errormsg := 'Fout verwerken res_rsv_ruimte';
UPDATE res_rsv_ruimte
SET res_status_bo_key = 6 -- AV
WHERE res_rsv_ruimte_key = rec.res_rsv_ruimte_key;
v_errormsg := 'Fout tracken R-verwerking';
fac.trackaction ('RESVER', rec.res_rsv_ruimte_key, NULL, NULL, NULL);
END IF;
v_regel_nr := v_regel_nr + 1;
v_amount_tot := v_amount_tot + v_prijs;
COMMIT;
EXCEPTION
WHEN OTHERS
THEN
oracle_err_num := SQLCODE;
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
v_errormsg := v_errormsg || ' ORACLE (error ' || oracle_err_num || '/' || oracle_err_mes || ')';
fac.writelog (p_applname, 'W', rec.aanduiding || v_errormsg, 'FIN-regels');
COMMIT;
END;
END LOOP;
fac.writelog (p_applname, 'S', 'FIN export/#regels: ' || TO_CHAR (v_regel_nr), TO_CHAR (v_amount_tot));
END IF;
END;
/
-- View tbv. Fidato/TiC Narrow Casting om reserveringsgegevens te tonen <20>n de
-- Omschrijvingen van geaccepteerde/niet afgemelde meldingen van soortmelding
-- Bericht (met key=1).
-- SROZ#59450: Organisatie-kolom leeg als er geen debiteur is gekozen.
CREATE OR REPLACE VIEW sroz_v_rap_infobord
AS
SELECT (CASE
WHEN rrr.res_rsv_ruimte_van > SYSDATE THEN 'expected'
WHEN rrr.res_rsv_ruimte_tot < SYSDATE THEN 'passed'
ELSE 'active'
END)
aktief,
--TRUNC ((SYSDATE - rrr.res_rsv_ruimte_van) * 24 * 60) offset,
TO_CHAR (rrr.res_rsv_ruimte_van, 'dd-mm-yyyy') dag,
TO_CHAR (rrr.res_rsv_ruimte_van, 'hh24:mi') tijd_van,
TO_CHAR (rrr.res_rsv_ruimte_tot, 'hh24:mi') tijd_tot,
rrg.res_ruimte_nr ruimte,
--rd.ins_discipline_omschrijving catalogus,
--aanvrager.prs_perslid_naam_full aanvrager,
--gastheer.prs_perslid_naam_full gastheer,
rrr.res_rsv_ruimte_omschrijving omschrijving,
--sf.res_status_fo_omschrijving status,
--l.alg_locatie_code locatie_code,
--g.alg_gebouw_code gebouw_code,
--v.alg_verdieping_code verdieping_code,
--l.alg_locatie_omschrijving locatie_omschrijving,
--g.alg_gebouw_omschrijving gebouw_omschrijving,
--v.alg_verdieping_omschrijving verdieping_omschrijving,
--l.alg_locatie_key,
--g.alg_gebouw_key,
--v.alg_verdieping_key
COALESCE (deb.prs_bedrijf_naam, '') organisatie
FROM res_v_aanwezigrsv_ruimte rrr,
res_ruimte_opstelling rro,
res_v_res_ruimte_gegevens rrg,
--prs_v_perslid_fullnames aanvrager,
--prs_v_perslid_fullnames gastheer,
--alg_locatie l,
--alg_gebouw g,
--alg_verdieping v,
--res_status_fo sf,
--res_discipline rd,
(SELECT kw.res_rsv_ruimte_key, b.prs_bedrijf_naam
FROM res_kenmerkwaarde kw, res_kenmerk k, prs_bedrijf b
WHERE kw.res_kenmerk_key = k.res_kenmerk_key
AND k.res_srtkenmerk_key = 2 -- Debiteur
AND kw.res_kenmerkreservering_waarde = TO_CHAR (b.prs_bedrijf_key)
UNION ALL
SELECT kw.res_rsv_ruimte_key, b.prs_bedrijf_naam
FROM res_kenmerkwaarde kw, res_kenmerk k, prs_contactpersoon cp, prs_bedrijf b
WHERE kw.res_kenmerk_key = k.res_kenmerk_key
AND k.res_srtkenmerk_key = 2 -- Debiteur
AND kw.res_kenmerkreservering_waarde = TO_CHAR (cp.prs_contactpersoon_key - 100000000)
AND cp.prs_bedrijf_key = b.prs_bedrijf_key) deb,
prs_perslid ph,
prs_afdeling a
WHERE TRUNC (rrr.res_rsv_ruimte_van) = TRUNC (SYSDATE) -- Alleen vandaag!
AND rrr.res_ruimte_opstel_key = rro.res_ruimte_opstel_key
AND rro.res_ruimte_key = rrg.res_ruimte_key
--AND rrr.res_rsv_ruimte_contact_key = aanvrager.prs_perslid_key
--AND rrr.res_rsv_ruimte_host_key = gastheer.prs_perslid_key
--AND rrg.alg_locatie_key = l.alg_locatie_key
--AND rrg.alg_gebouw_key = g.alg_gebouw_key
--AND rrg.alg_verdieping_key = v.alg_verdieping_key
--AND rrr.res_status_fo_key = sf.res_status_fo_key
--AND rrg.res_discipline_key = rd.ins_discipline_key
AND rrr.res_rsv_ruimte_key = deb.res_rsv_ruimte_key(+)
AND rrr.res_rsv_ruimte_host_key = ph.prs_perslid_key
AND ph.prs_afdeling_key = a.prs_afdeling_key
AND EXISTS
(SELECT 1
FROM res_kenmerkwaarde kw, res_kenmerk k
WHERE kw.res_kenmerkwaarde_verwijder IS NULL
AND kw.res_kenmerk_key = k.res_kenmerk_key
AND k.res_srtkenmerk_key = 21 -- Toon op scherm
AND kw.res_rsv_ruimte_key = rrr.res_rsv_ruimte_key)
UNION ALL
SELECT 'active' aktief,
TO_CHAR (SYSDATE, 'dd-mm-yyyy') dag,
'08:30' tijd_van,
'22:00' tijd_tot,
NULL,
mld_melding_omschrijving omschrijving,
NULL organisatie
FROM mld_melding
WHERE mld_stdmelding_key = 1 -- Bericht
AND mld_melding_status = 4 -- In behandeling (van Acceptatie tot Afgemeld)
;
CREATE OR REPLACE VIEW sroz_v_rap_meubels
(
hide_f_sortering,
datum,
artikel,
aantal_aanwezig,
aantal_gebruikt,
mogelijk_tekort,
resnrs
)
AS
SELECT TO_CHAR (datum, 'yyyymmdd') || artikel,
datum,
artikel,
aanwezig,
gebruikt,
DECODE (SIGN (aanwezig - gebruikt), -1, 'Ja', 'Nee') tekort,
resnrs
FROM ( SELECT TRUNC (rra.res_rsv_artikel_levering) datum,
ra.res_artikel_omschrijving artikel,
COALESCE (fac.safe_to_number (ra.res_artikel_groep), 0) aanwezig,
SUM (rra.res_rsv_artikel_aantal) gebruikt,
listagg (
TO_CHAR (rrr.res_reservering_key) || '/' || TO_CHAR (rrr.res_rsv_ruimte_volgnr),
', ')
WITHIN GROUP (ORDER BY rrr.res_rsv_ruimte_key)
AS resnrs
FROM res_v_aanwezigrsv_ruimte rrr, res_v_aanwezigrsv_artikel rra, res_artikel ra
WHERE rrr.res_rsv_ruimte_key = rra.res_rsv_ruimte_key
AND rra.res_artikel_key = ra.res_artikel_key
AND ra.res_discipline_key = 52 -- Meubels
GROUP BY TRUNC (rra.res_rsv_artikel_levering),
ra.res_artikel_omschrijving,
ra.res_artikel_groep);
CREATE OR REPLACE VIEW sroz_v_rap_zalenzetters
(
hide_f_sortering,
res_rsv_ruimte_key,
datum,
resnr,
titel,
begin_eind,
tijd,
ruimte,
deelnemers,
opstelling_voorzieningen,
opmerking_beheerder,
catering
)
AS
SELECT DECODE (x.begin_eind, 'Begin', TO_CHAR (x.res_rsv_ruimte_van, 'yyyymmdd hh24:mi'), TO_CHAR (x.res_rsv_ruimte_tot, 'yyyymmdd hh24:mi')) || TO_CHAR (res_ruimte_nr)
sortering,
x.res_rsv_ruimte_key,
x.res_rsv_ruimte_van datum,
TO_CHAR (x.res_reservering_key) || '/' || TO_CHAR (x.res_rsv_ruimte_volgnr) resnr,
x.res_rsv_ruimte_omschrijving titel,
x.begin_eind,
DECODE (x.begin_eind, 'Begin', TO_CHAR (x.res_rsv_ruimte_van, 'hh24:mi') || '-' || TO_CHAR (x.res_rsv_ruimte_tot, 'hh24:mi'), TO_CHAR (x.res_rsv_ruimte_tot, 'hh24:mi')) tijd,
x.res_ruimte_nr ruimte,
x.res_rsv_ruimte_bezoekers deelnemers,
DECODE (x.next_van, NULL, '', '[' || TO_CHAR (x.next_van, 'hh24:mi') || ']' || CHR (13) || CHR (10))
|| DECODE (x.begin_eind, 'Eind', DECODE (x.res_ruimte_opstel_default, 1, '', 'Opstelling terugbouwen' || CHR (13) || CHR (10)), x.res_opstelling_omschrijving || CHR (13) || CHR (10))
|| DECODE (rar.aantal, NULL, '', 0, '', 1, '', DECODE (x.begin_eind, 'Eind', 'Koppelzaal dicht', 'Koppelzaal open') || CHR (13) || CHR (10))
|| DECODE (sbo_beh.res_kenmerkreservering_waarde, NULL, '', DECODE (x.begin_eind, 'Eind', '', 'Smartboard opstarten') || CHR (13) || CHR (10))
|| DECODE (ra.res_artikels, NULL, '', ra.res_artikels || CHR (13) || CHR (10))
|| rd.res_deels
opstelling_voorzieningen,
opm_beh.res_kenmerkreservering_waarde opmerking_beheerder,
cat.res_catalogi
FROM (SELECT 'Begin' begin_eind, -- Begin als opstelling anders dan voorgaande
rrr1.*, rr1.res_ruimte_key, rr1.res_ruimte_nr, ro1.res_opstelling_omschrijving, res_ruimte_opstel_default,
NULL next_van
FROM res_v_aanwezigrsv_ruimte rrr1, res_ruimte_opstelling rro1, res_ruimte rr1, res_opstelling ro1
WHERE rrr1.res_rsv_ruimte_van > TRUNC (SYSDATE)
AND rrr1.res_ruimte_opstel_key = rro1.res_ruimte_opstel_key
AND rro1.res_ruimte_key = rr1.res_ruimte_key
AND rro1.res_opstelling_key = ro1.res_opstelling_key
AND EXISTS
(SELECT 1
FROM res_v_aanwezigrsv_ruimte rrr2, res_ruimte_opstelling rro2
WHERE rrr2.res_ruimte_opstel_key = rro2.res_ruimte_opstel_key
AND rrr2.res_rsv_ruimte_tot BETWEEN TRUNC (rrr1.res_rsv_ruimte_van - 1) AND rrr1.res_rsv_ruimte_van
AND rro2.res_ruimte_key = rro1.res_ruimte_key
AND rro2.res_opstelling_key != rro1.res_opstelling_key
AND NOT EXISTS
(SELECT 1
FROM res_v_aanwezigrsv_ruimte rrr3, res_ruimte_opstelling rro3
WHERE rrr3.res_ruimte_opstel_key = rro3.res_ruimte_opstel_key
AND rrr3.res_rsv_ruimte_tot BETWEEN TRUNC (rrr1.res_rsv_ruimte_van - 1) AND rrr1.res_rsv_ruimte_van
AND rro3.res_ruimte_key = rro2.res_ruimte_key
AND rrr3.res_rsv_ruimte_tot > rrr2.res_rsv_ruimte_tot))
UNION
SELECT 'Begin' begin_eind, -- Begin als opstelling anders dan default
rrr1.*, rr1.res_ruimte_key, rr1.res_ruimte_nr, ro1.res_opstelling_omschrijving, res_ruimte_opstel_default,
NULL next_van
FROM res_v_aanwezigrsv_ruimte rrr1, res_ruimte_opstelling rro1, res_ruimte rr1, res_opstelling ro1
WHERE rrr1.res_rsv_ruimte_van > TRUNC (SYSDATE)
AND rrr1.res_ruimte_opstel_key = rro1.res_ruimte_opstel_key
AND rro1.res_ruimte_key = rr1.res_ruimte_key
AND rro1.res_opstelling_key = ro1.res_opstelling_key
AND rro1.res_ruimte_opstel_default IS NULL
UNION
SELECT 'Eind' begin_eind, -- Eind als opstelling anders dan default
rrr1.*, rr1.res_ruimte_key, rr1.res_ruimte_nr, ro1.res_opstelling_omschrijving, res_ruimte_opstel_default,
(SELECT MIN (x.res_rsv_ruimte_van)
FROM res_v_aanwezigrsv_ruimte x, res_ruimte_opstelling y
WHERE x.res_ruimte_opstel_key = y.res_ruimte_opstel_key
AND y.res_ruimte_key = rr1.res_ruimte_key
AND TRUNC (x.res_rsv_ruimte_van) = TRUNC (rrr1.res_rsv_ruimte_tot)
AND x.res_rsv_ruimte_van > rrr1.res_rsv_ruimte_tot)
next_van
FROM res_v_aanwezigrsv_ruimte rrr1, res_ruimte_opstelling rro1, res_ruimte rr1, res_opstelling ro1
WHERE rrr1.res_rsv_ruimte_van > TRUNC (SYSDATE)
AND rrr1.res_ruimte_opstel_key = rro1.res_ruimte_opstel_key
AND rro1.res_ruimte_key = rr1.res_ruimte_key
AND rro1.res_opstelling_key = ro1.res_opstelling_key
AND rro1.res_ruimte_opstel_default IS NULL
UNION
SELECT 'Begin' begin_eind, -- Begin als koppelzaal of smartboard opstarten of Opmerking beheerder
rrr1.*, rr1.res_ruimte_key, rr1.res_ruimte_nr, ro1.res_opstelling_omschrijving, res_ruimte_opstel_default,
NULL next_van
FROM res_v_aanwezigrsv_ruimte rrr1, res_ruimte_opstelling rro1, res_ruimte rr1, res_opstelling ro1,
( SELECT res_ruimte_key, COUNT (*) aantal
FROM res_alg_ruimte
WHERE res_alg_ruimte_verwijder IS NULL
GROUP BY res_ruimte_key) rar
WHERE rrr1.res_rsv_ruimte_van > TRUNC (SYSDATE)
AND rrr1.res_ruimte_opstel_key = rro1.res_ruimte_opstel_key
AND rro1.res_ruimte_key = rr1.res_ruimte_key
AND rro1.res_opstelling_key = ro1.res_opstelling_key
AND rro1.res_ruimte_key = rar.res_ruimte_key
AND (rar.aantal > 1
OR EXISTS
(SELECT 1
FROM res_v_aanwezigkenmerkwaarde kw, res_kenmerk k
WHERE kw.res_kenmerk_key = k.res_kenmerk_key
AND k.res_srtkenmerk_key = 121 -- Smartboard opstarten door beheerder
AND kw.res_rsv_ruimte_key = rrr1.res_rsv_ruimte_key)
OR EXISTS
(SELECT 1
FROM res_v_aanwezigkenmerkwaarde kw
WHERE kw.res_kenmerk_key IN (44, 46) -- Opmerking beheerder
AND kw.res_rsv_ruimte_key = rrr1.res_rsv_ruimte_key))
UNION
SELECT 'Eind' begin_eind, -- Eind als koppelzaal
rrr1.*, rr1.res_ruimte_key, rr1.res_ruimte_nr, ro1.res_opstelling_omschrijving, res_ruimte_opstel_default,
(SELECT MIN (x.res_rsv_ruimte_van)
FROM res_v_aanwezigrsv_ruimte x, res_ruimte_opstelling y
WHERE x.res_ruimte_opstel_key = y.res_ruimte_opstel_key
AND y.res_ruimte_key = rr1.res_ruimte_key
AND TRUNC (x.res_rsv_ruimte_van) = TRUNC (rrr1.res_rsv_ruimte_tot)
AND x.res_rsv_ruimte_van > rrr1.res_rsv_ruimte_tot)
next_van
FROM res_v_aanwezigrsv_ruimte rrr1, res_ruimte_opstelling rro1, res_ruimte rr1, res_opstelling ro1,
( SELECT res_ruimte_key, COUNT (*) aantal
FROM res_alg_ruimte
WHERE res_alg_ruimte_verwijder IS NULL
GROUP BY res_ruimte_key) rar
WHERE rrr1.res_rsv_ruimte_van > TRUNC (SYSDATE)
AND rrr1.res_ruimte_opstel_key = rro1.res_ruimte_opstel_key
AND rro1.res_ruimte_key = rr1.res_ruimte_key
AND rro1.res_opstelling_key = ro1.res_opstelling_key
AND rro1.res_ruimte_key = rar.res_ruimte_key
AND rar.aantal > 1
UNION
SELECT 'Begin' begin_eind, -- Begin als geboekt uit Beheerder-catalogi
rrr1.*, rr1.res_ruimte_key, rr1.res_ruimte_nr, ro1.res_opstelling_omschrijving, res_ruimte_opstel_default,
NULL next_van
FROM res_v_aanwezigrsv_ruimte rrr1, res_ruimte_opstelling rro1, res_ruimte rr1, res_opstelling ro1
WHERE rrr1.res_rsv_ruimte_van > TRUNC (SYSDATE)
AND rrr1.res_ruimte_opstel_key = rro1.res_ruimte_opstel_key
AND rro1.res_ruimte_key = rr1.res_ruimte_key
AND rro1.res_opstelling_key = ro1.res_opstelling_key
AND (EXISTS
(SELECT 1
FROM res_v_aanwezigrsv_artikel rra, res_artikel ra
WHERE rra.res_artikel_key = ra.res_artikel_key
AND ra.res_discipline_key = 52 -- Meubels
AND rra.res_rsv_ruimte_key = rrr1.res_rsv_ruimte_key)
OR EXISTS
(SELECT 1
FROM res_v_aanwezigrsv_deel rrd, res_deel rd
WHERE rrd.res_deel_key = rd.res_deel_key
AND rd.res_discipline_key IN (54, 55, 102, 103)
AND rrd.res_rsv_ruimte_key = rrr1.res_rsv_ruimte_key))
UNION
SELECT 'Eind' begin_eind, -- Eind als geboekt uit Beheerder-catalogi
rrr1.*, rr1.res_ruimte_key, rr1.res_ruimte_nr, ro1.res_opstelling_omschrijving, res_ruimte_opstel_default,
(SELECT MIN (x.res_rsv_ruimte_van)
FROM res_v_aanwezigrsv_ruimte x, res_ruimte_opstelling y
WHERE x.res_ruimte_opstel_key = y.res_ruimte_opstel_key
AND y.res_ruimte_key = rr1.res_ruimte_key
AND TRUNC (x.res_rsv_ruimte_van) = TRUNC (rrr1.res_rsv_ruimte_tot)
AND x.res_rsv_ruimte_van > rrr1.res_rsv_ruimte_tot)
next_van
FROM res_v_aanwezigrsv_ruimte rrr1, res_ruimte_opstelling rro1, res_ruimte rr1, res_opstelling ro1
WHERE rrr1.res_rsv_ruimte_van > TRUNC (SYSDATE)
AND rrr1.res_ruimte_opstel_key = rro1.res_ruimte_opstel_key
AND rro1.res_ruimte_key = rr1.res_ruimte_key
AND rro1.res_opstelling_key = ro1.res_opstelling_key
AND (EXISTS
(SELECT 1
FROM res_v_aanwezigrsv_artikel rra, res_artikel ra
WHERE rra.res_artikel_key = ra.res_artikel_key
AND ra.res_discipline_key = 52 -- Meubels
AND rra.res_rsv_ruimte_key = rrr1.res_rsv_ruimte_key)
OR EXISTS
(SELECT 1
FROM res_v_aanwezigrsv_deel rrd, res_deel rd
WHERE rrd.res_deel_key = rd.res_deel_key
AND rd.res_discipline_key IN (54, 55, 102, 103)
AND rrd.res_rsv_ruimte_key = rrr1.res_rsv_ruimte_key))
UNION
SELECT 'Begin' begin_eind, -- SROZ#60166: Begin als geboekt uit Catering(/Voorziening)-catalogi
rrr1.*, rr1.res_ruimte_key, rr1.res_ruimte_nr, ro1.res_opstelling_omschrijving, res_ruimte_opstel_default,
NULL next_van
FROM res_v_aanwezigrsv_ruimte rrr1, res_ruimte_opstelling rro1, res_ruimte rr1, res_opstelling ro1
WHERE rrr1.res_rsv_ruimte_van > TRUNC (SYSDATE)
AND rrr1.res_ruimte_opstel_key = rro1.res_ruimte_opstel_key
AND rro1.res_ruimte_key = rr1.res_ruimte_key
AND rro1.res_opstelling_key = ro1.res_opstelling_key
AND (EXISTS
(SELECT 1
FROM res_v_aanwezigrsv_artikel rra, res_artikel ra
WHERE rra.res_rsv_artikel_dirtlevel = 0
AND rra.res_artikel_key = ra.res_artikel_key
AND ra.res_discipline_key IN (49, 50, 301, 321, 341) -- Momento/A-vif/Koffie- en theekar
AND rra.res_rsv_ruimte_key = rrr1.res_rsv_ruimte_key)
OR EXISTS
(SELECT 1
FROM res_v_aanwezigrsv_deel rrd, res_deel rd
WHERE rrd.res_rsv_deel_dirtlevel = 0
AND rrd.res_deel_key = rd.res_deel_key
AND rd.res_discipline_key IN (381) -- SROZ#60166: Koffie- en theekar Rozet
AND rrd.res_rsv_ruimte_key = rrr1.res_rsv_ruimte_key))
UNION
SELECT 'Eind' begin_eind, -- SROZ#60166: Eind als geboekt uit Catering(/Voorziening)-catalogi
rrr1.*, rr1.res_ruimte_key, rr1.res_ruimte_nr, ro1.res_opstelling_omschrijving, res_ruimte_opstel_default,
(SELECT MIN (x.res_rsv_ruimte_van)
FROM res_v_aanwezigrsv_ruimte x, res_ruimte_opstelling y
WHERE x.res_ruimte_opstel_key = y.res_ruimte_opstel_key
AND y.res_ruimte_key = rr1.res_ruimte_key
AND TRUNC (x.res_rsv_ruimte_van) = TRUNC (rrr1.res_rsv_ruimte_tot)
AND x.res_rsv_ruimte_van > rrr1.res_rsv_ruimte_tot)
next_van
FROM res_v_aanwezigrsv_ruimte rrr1, res_ruimte_opstelling rro1, res_ruimte rr1, res_opstelling ro1
WHERE rrr1.res_rsv_ruimte_van > TRUNC (SYSDATE)
AND rrr1.res_ruimte_opstel_key = rro1.res_ruimte_opstel_key
AND rro1.res_ruimte_key = rr1.res_ruimte_key
AND rro1.res_opstelling_key = ro1.res_opstelling_key
AND (EXISTS
(SELECT 1
FROM res_v_aanwezigrsv_artikel rra, res_artikel ra
WHERE rra.res_rsv_artikel_dirtlevel = 0
AND rra.res_artikel_key = ra.res_artikel_key
AND ra.res_discipline_key IN (49, 50, 301, 321, 341) -- Momento/A-vif/Koffie- en theekar
AND rra.res_rsv_ruimte_key = rrr1.res_rsv_ruimte_key)
OR EXISTS
(SELECT 1
FROM res_v_aanwezigrsv_deel rrd, res_deel rd
WHERE rrd.res_rsv_deel_dirtlevel = 0
AND rrd.res_deel_key = rd.res_deel_key
AND rd.res_discipline_key IN (381) -- SROZ#60166: Koffie- en theekar Rozet
AND rrd.res_rsv_ruimte_key = rrr1.res_rsv_ruimte_key))) x
LEFT JOIN ( SELECT res_ruimte_key, COUNT (*) aantal
FROM res_alg_ruimte
WHERE res_alg_ruimte_verwijder IS NULL
GROUP BY res_ruimte_key) rar
ON x.res_ruimte_key = rar.res_ruimte_key
LEFT JOIN res_v_aanwezigkenmerkwaarde sbo_beh
ON x.res_rsv_ruimte_key = sbo_beh.res_rsv_ruimte_key
AND sbo_beh.res_kenmerk_key IN (141, 142) -- Smartboard opstarten door beheerder
LEFT JOIN ( SELECT rra.res_rsv_ruimte_key, -- Te bezorgen/afhalen Beheerder-artikelen
listagg (
TO_CHAR (rra.res_rsv_artikel_aantal) || ' x ' || TO_CHAR (ra.res_artikel_omschrijving),
CHR (13) || CHR (10))
WITHIN GROUP (ORDER BY ra.res_artikel_omschrijving)
AS res_artikels
FROM res_v_aanwezigrsv_artikel rra, res_artikel ra
WHERE rra.res_rsv_artikel_levering > TRUNC (SYSDATE)
AND rra.res_artikel_key = ra.res_artikel_key
AND ra.res_discipline_key = 52 -- Meubels
GROUP BY rra.res_rsv_ruimte_key) ra
ON x.res_rsv_ruimte_key = ra.res_rsv_ruimte_key
LEFT JOIN ( SELECT rrd.res_rsv_ruimte_key, -- Te bezorgen/afhalen Beheerder-delen
listagg (
TO_CHAR (rd.res_deel_omschrijving),
CHR (13) || CHR (10))
WITHIN GROUP (ORDER BY rd.res_deel_omschrijving)
AS res_deels
FROM res_v_aanwezigrsv_deel rrd, res_deel rd
WHERE rrd.res_rsv_deel_van > TRUNC (SYSDATE)
AND rrd.res_deel_key = rd.res_deel_key
AND rd.res_discipline_key IN (54, 55, 102, 103)
GROUP BY rrd.res_rsv_ruimte_key) rd
ON x.res_rsv_ruimte_key = rd.res_rsv_ruimte_key
LEFT JOIN res_v_aanwezigkenmerkwaarde opm_beh
ON x.res_rsv_ruimte_key = opm_beh.res_rsv_ruimte_key
AND opm_beh.res_kenmerk_key IN (44, 46) -- Opmerking beheerder
LEFT JOIN ( SELECT res_rsv_ruimte_key, -- SROZ#60166+SROZ#61582: Geboekte Catering(/Voorziening)-catalogi
listagg (
ins_discipline_omschrijving,
CHR (13) || CHR (10))
WITHIN GROUP (ORDER BY ins_discipline_omschrijving)
AS res_catalogi
FROM (SELECT DISTINCT rra.res_rsv_ruimte_key, cat.ins_discipline_omschrijving
FROM res_v_aanwezigrsv_artikel rra, res_artikel ra, res_discipline cat
WHERE rra.res_rsv_artikel_levering > TRUNC (SYSDATE)
AND rra.res_artikel_key = ra.res_artikel_key
AND ra.res_discipline_key = cat.ins_discipline_key
AND cat.ins_discipline_key IN (49, 50, 301, 321, 341) -- Momento/A-vif/Koffie- en theekar
UNION ALL
SELECT DISTINCT rrd.res_rsv_ruimte_key, rd.res_deel_omschrijving ins_discipline_omschrijving
FROM res_v_aanwezigrsv_deel rrd, res_deel rd, res_discipline cat
WHERE rrd.res_rsv_deel_van > TRUNC (SYSDATE)
AND rrd.res_deel_key = rd.res_deel_key
AND rd.res_discipline_key = cat.ins_discipline_key
AND cat.ins_discipline_key IN (381)) -- SROZ#60166+SROZ#61582: Koffie- en theekar Rozet
GROUP BY res_rsv_ruimte_key) cat
ON x.res_rsv_ruimte_key = cat.res_rsv_ruimte_key
;
CREATE OR REPLACE VIEW sroz_v_rap_infopunt
(
hide_f_sortering,
res_rsv_ruimte_key,
datum,
resnr,
begintijd,
eindtijd,
ruimte,
titel,
programma,
debiteur,
team
)
AS
SELECT TO_CHAR (x.res_rsv_ruimte_van, 'yyyymmdd hh24:mi') || TO_CHAR (res_ruimte_nr)
sortering,
x.res_rsv_ruimte_key,
x.res_rsv_ruimte_van datum,
TO_CHAR (x.res_reservering_key) || '/' || TO_CHAR (x.res_rsv_ruimte_volgnr)
resnr,
x.res_rsv_ruimte_van,
x.res_rsv_ruimte_tot,
x.res_ruimte_nr ruimte,
x.res_rsv_ruimte_omschrijving titel,
prog.res_kenmerkreservering_waarde programma,
x.prs_bedrijf_naam debiteur,
CASE
WHEN x.res_rsv_ruimte_flag > 0
THEN lcl.l ('lcl_res_flag' || x.res_rsv_ruimte_flag)
END
team
FROM (SELECT rrr.res_rsv_ruimte_key,
rrr.res_reservering_key,
rrr.res_rsv_ruimte_volgnr,
rrr.res_rsv_ruimte_van,
rrr.res_rsv_ruimte_tot,
rrr.res_rsv_ruimte_omschrijving,
rrr.res_rsv_ruimte_flag,
rr.res_ruimte_nr,
deb.prs_bedrijf_naam
FROM res_v_aanwezigrsv_ruimte rrr,
res_ruimte_opstelling rro,
res_ruimte rr,
(SELECT kw.res_rsv_ruimte_key, b.prs_bedrijf_naam
FROM res_kenmerkwaarde kw, res_kenmerk k, prs_bedrijf b
WHERE kw.res_kenmerk_key = k.res_kenmerk_key
AND k.res_srtkenmerk_key = 2 -- Debiteur
AND kw.res_kenmerkreservering_waarde = TO_CHAR (b.prs_bedrijf_key)
UNION ALL
SELECT kw.res_rsv_ruimte_key, b.prs_bedrijf_naam
FROM res_kenmerkwaarde kw, res_kenmerk k, prs_contactpersoon cp, prs_bedrijf b
WHERE kw.res_kenmerk_key = k.res_kenmerk_key
AND k.res_srtkenmerk_key = 2 -- Debiteur
AND kw.res_kenmerkreservering_waarde = TO_CHAR (cp.prs_contactpersoon_key - 100000000)
AND cp.prs_bedrijf_key = b.prs_bedrijf_key) deb
WHERE rrr.res_rsv_ruimte_van BETWEEN TRUNC (SYSDATE) AND TRUNC (SYSDATE + 10)
AND rrr.res_ruimte_opstel_key = rro.res_ruimte_opstel_key
AND rro.res_ruimte_key = rr.res_ruimte_key
AND rrr.res_rsv_ruimte_key = deb.res_rsv_ruimte_key(+)) x
LEFT JOIN
res_v_aanwezigkenmerkwaarde prog
ON x.res_rsv_ruimte_key = prog.res_rsv_ruimte_key
AND prog.res_kenmerk_key IN (41, 42) -- Programma
;
-- SROZ#55615: Rapportage cateraars.
CREATE OR REPLACE VIEW sroz_v_rap_cateraar
(
hide_f_sortering,
res_rsv_ruimte_key,
datum,
begintijd,
eindtijd,
resnr,
titel,
--team, -- Organisatie?
ruimte,
deelnemers,
artikel,
aantal,
prijs_incl_btw,
btw,
totaal_incl_btw,
opm_cateraar,
fclt_3d_discipline_key,
catalogus
)
AS
SELECT TO_CHAR (rrr.res_rsv_ruimte_van, 'yyyymmdd hh24:mi')
|| SUBSTR ('000000000' || TO_CHAR (rrr.res_reservering_key), -10)
|| '/'
|| SUBSTR ('0000' || TO_CHAR (rrr.res_rsv_ruimte_volgnr), -5)
|| SUBSTR ('00' || TO_CHAR (rra.volgnr), -3)
sortering,
rrr.res_rsv_ruimte_key,
rrr.res_rsv_ruimte_van datum,
rra.res_rsv_artikel_levering,
rrr.res_rsv_ruimte_tot,
TO_CHAR (rrr.res_reservering_key) || '/' || TO_CHAR (rrr.res_rsv_ruimte_volgnr)
resnr,
rrr.res_rsv_ruimte_omschrijving titel,
--CASE
-- WHEN rrr.res_rsv_ruimte_flag > 0
-- THEN lcl.l ('lcl_res_flag' || rrr.res_rsv_ruimte_flag)
--END
-- team,
COALESCE (rr.res_ruimte_nr, (SELECT alg_plaatsaanduiding FROM alg_v_plaatsaanduiding_all WHERE alg_onroerendgoed_keys = rrr.alg_ruimte_key))
ruimte,
rrr.res_rsv_ruimte_bezoekers deelnemers,
rra.res_artikel_omschrijving artikel,
rra.res_rsv_artikel_aantal aantal,
DECODE (rra.res_rsv_artikel_prijs, NULL, rra.res_artikel_prijs, rra.res_rsv_artikel_prijs / rra.res_rsv_artikel_aantal)
prijs_incl_btw,
rra.btw,
DECODE (rra.res_rsv_artikel_prijs, NULL, rra.res_rsv_artikel_aantal * rra.res_artikel_prijs, rra.res_rsv_artikel_prijs)
totaal_incl_btw,
DECODE (rra.volgnr, 1, opm_cat.res_kenmerkreservering_waarde, NULL)
opmerking_cateraar,
rra.res_discipline_key,
rd.ins_discipline_omschrijving catalogus
FROM res_v_aanwezigrsv_ruimte rrr,
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,
res_ruimte rr,
(SELECT res_rsv_ruimte_key, res_rsv_artikel_key,
res_rsv_artikel_levering, res_status_bo_key,
res_rsv_artikel_aantal, res_artikel_nr, res_artikel_omschrijving,
res_rsv_artikel_prijs, res_artikel_prijs, btw,
res_discipline_key,
ROW_NUMBER ()
OVER (
PARTITION BY res_rsv_ruimte_key
ORDER BY res_discipline_key, res_artikel_volgnummer, res_artikel_omschrijving)
AS volgnr
FROM (SELECT rra.res_rsv_ruimte_key, rra.res_rsv_artikel_key,
rra.res_rsv_artikel_levering, rra.res_status_bo_key,
rra.res_rsv_artikel_aantal, ra.res_artikel_nr, ra.res_artikel_omschrijving,
rra.res_rsv_artikel_prijs, ra.res_artikel_prijs,
COALESCE (rra.res_rsv_artikel_btw, ra.res_artikel_btw, 21) btw,
ra.res_discipline_key, ra.res_artikel_volgnummer
FROM res_v_aanwezigrsv_artikel rra, res_artikel ra
WHERE rra.res_rsv_artikel_dirtlevel = 0
AND rra.res_artikel_key = ra.res_artikel_key
AND (ra.res_discipline_key NOT IN (48, 50) OR ra.res_artikel_btw IS NOT NULL)
UNION ALL -- Dichtbij BTW laag
SELECT rra.res_rsv_ruimte_key, rra.res_rsv_artikel_key,
rra.res_rsv_artikel_levering, rra.res_status_bo_key,
rra.res_rsv_artikel_aantal, ra.res_artikel_nr, ra.res_artikel_omschrijving,
0.66 * rra.res_rsv_artikel_prijs res_rsv_artikel_prijs,
0.66 * ra.res_artikel_prijs res_artikel_prijs,
DECODE (TO_CHAR (rra.res_rsv_artikel_levering, 'yyyy'), '2018', 6, 9) btw,
ra.res_discipline_key, ra.res_artikel_volgnummer
FROM res_v_aanwezigrsv_artikel rra, res_artikel ra
WHERE rra.res_rsv_artikel_dirtlevel = 0
AND rra.res_artikel_key = ra.res_artikel_key
AND ra.res_discipline_key IN (48) -- Dichtbij extra
AND ra.res_artikel_btw IS NULL
UNION ALL -- Dichtbij BTW hoog
SELECT rra.res_rsv_ruimte_key, rra.res_rsv_artikel_key,
rra.res_rsv_artikel_levering, rra.res_status_bo_key,
rra.res_rsv_artikel_aantal, ra.res_artikel_nr, ra.res_artikel_omschrijving,
0.34 * rra.res_rsv_artikel_prijs res_rsv_artikel_prijs,
0.34 * ra.res_artikel_prijs res_artikel_prijs,
21 btw,
ra.res_discipline_key, ra.res_artikel_volgnummer
FROM res_v_aanwezigrsv_artikel rra, res_artikel ra
WHERE rra.res_rsv_artikel_dirtlevel = 0
AND rra.res_artikel_key = ra.res_artikel_key
AND ra.res_discipline_key IN (48) -- Dichtbij extra
AND ra.res_artikel_btw IS NULL
UNION ALL -- Momento BTW laag
SELECT rra.res_rsv_ruimte_key, rra.res_rsv_artikel_key,
rra.res_rsv_artikel_levering, rra.res_status_bo_key,
rra.res_rsv_artikel_aantal, ra.res_artikel_nr, ra.res_artikel_omschrijving,
0.65 * rra.res_rsv_artikel_prijs res_rsv_artikel_prijs,
0.65 * ra.res_artikel_prijs res_artikel_prijs,
DECODE (TO_CHAR (rra.res_rsv_artikel_levering, 'yyyy'), '2018', 6, 9) btw,
ra.res_discipline_key, ra.res_artikel_volgnummer
FROM res_v_aanwezigrsv_artikel rra, res_artikel ra
WHERE rra.res_rsv_artikel_dirtlevel = 0
AND rra.res_artikel_key = ra.res_artikel_key
AND ra.res_discipline_key IN (50) -- Momento extra
AND ra.res_artikel_btw IS NULL
UNION ALL -- Momento BTW hoog
SELECT rra.res_rsv_ruimte_key, rra.res_rsv_artikel_key,
rra.res_rsv_artikel_levering, rra.res_status_bo_key,
rra.res_rsv_artikel_aantal, ra.res_artikel_nr, ra.res_artikel_omschrijving,
0.35 * rra.res_rsv_artikel_prijs res_rsv_artikel_prijs,
0.35 * ra.res_artikel_prijs res_artikel_prijs,
21 btw,
ra.res_discipline_key, ra.res_artikel_volgnummer
FROM res_v_aanwezigrsv_artikel rra, res_artikel ra
WHERE rra.res_rsv_artikel_dirtlevel = 0
AND rra.res_artikel_key = ra.res_artikel_key
AND ra.res_discipline_key IN (50) -- Momento extra
AND ra.res_artikel_btw IS NULL)) rra,
(SELECT res_rsv_ruimte_key, res_kenmerkreservering_waarde
FROM res_v_aanwezigkenmerkwaarde
WHERE res_kenmerk_key IN (43, 45)) opm_cat, -- Opmerking cateraar
res_discipline rd
WHERE rrr.res_rsv_ruimte_van > TRUNC (ADD_MONTHS (SYSDATE, -12), 'yyyy')
AND rrr.res_rsv_ruimte_dirtlevel = 0 -- Niet dirty!
AND rrr.res_ruimte_opstel_key = rro.res_ruimte_opstel_key(+) -- Ruimte- <20>n Uitleen-reserveringen!
AND rro.res_ruimte_key = rar1.res_ruimte_key(+)
AND rro.res_ruimte_key = rar2.res_ruimte_key(+)
AND COALESCE (rar1.res_ruimte_key, rar2.res_ruimte_key) = rr.res_ruimte_key(+)
AND rrr.res_rsv_ruimte_key = rra.res_rsv_ruimte_key
AND rra.res_rsv_artikel_aantal != 0 -- Zou altijd zo moeten zijn!?
AND rrr.res_rsv_ruimte_key = opm_cat.res_rsv_ruimte_key(+)
AND rra.res_discipline_key = rd.ins_discipline_key;
-- SROZ#56682: RES-managementrapportages
-- - Alle Externe en Interne (niet dirty) reserveringen ongeacht BO-status t/m volgend jaar
-- - Inclusief activiteit (key + omschrijving)
-- - Inclusief gebruiker (key + omschrijving)
-- - Inclusief res_status_fo_key (1=Optie of 2=Definitief)
-- - Inclusief catalogus (R-, C-, V- of M-catalogus)
-- - Ruimtenr als Artikelomschrijving ook igv. Afgesproken prijs en Korting
-- - Inclusief netto- en bruto prijs
-- - Inclusief verhuurtarief (key + omschrijving)
-- - Exclusief overbodige kolommen
CREATE OR REPLACE VIEW sroz_v_res_all2
(
sortering,
periode,
res_rsv_ruimte_key,
res_rsv_artikel_key,
res_rsv_deel_key,
res_reservering_key,
res_rsv_ruimte_volgnr,
debiteurnummer,
debiteurnaam,
debiteurcontact,
res_rsv_ruimte_van,
res_rsv_ruimte_tot,
res_rsv_ruimte_omschrijving,
activiteit_key, -- 10=Intern of 30=Extern
activiteit, -- Intern of Extern
gebruiker_key,
gebruiker,
res_status_fo_key, -- 1=Optie of 2=Definitief
res_status_bo_key,
res_rsv_ruimte_ordernr,
aantal,
catalogus_key,
catalogus,
artikel_key,
artikel,
--artikelprijs,
--btw,
excl_btw,
incl_btw,
verhuurtarief_key, -- 1=Commercieel of 2=Maatschappelijk
verhuurtarief, -- Commercieel of Maatschappelijk
--debiteurreferentie,
--administratie,
--kostenplaats,
code_rcvm
--export2afas_key,
--export2afas_oms,
--controleur
)
AS
SELECT x.sortering,
TO_CHAR (x.res_rsv_ruimte_van, 'yyyy-mm') periode,
x.res_rsv_ruimte_key, x.res_rsv_artikel_key, x.res_rsv_deel_key,
x.res_reservering_key, x.res_rsv_ruimte_volgnr,
TRIM (SUBSTR (h.prs_bedrijf_naam,
INSTR (h.prs_bedrijf_naam, '[') + 1,
INSTR (h.prs_bedrijf_naam, ']/') - INSTR (h.prs_bedrijf_naam, '[') - 1))
debiteurnummer,
TRIM (SUBSTR (h.prs_bedrijf_naam,
1,
INSTR (h.prs_bedrijf_naam, '[') - 1))
debiteurnaam,
TRIM (SUBSTR (h.prs_bedrijf_naam,
INSTR (h.prs_bedrijf_naam, '/') + 1,
INSTR (h.prs_bedrijf_naam, ';T') - INSTR (h.prs_bedrijf_naam, '/') - 1))
debiteurcontact,
x.res_rsv_ruimte_van, x.res_rsv_ruimte_tot,
x.res_rsv_ruimte_omschrijving,
ra.res_activiteit_key activiteit_key,
ra.res_activiteit_omschrijving activiteit,
--CASE
-- WHEN x.res_rsv_ruimte_flag > 0
-- THEN lcl.l ('lcl_res_flag' || x.res_rsv_ruimte_flag)
--END
DECODE (x.res_activiteit_key, 10, COALESCE (afd3.prs_afdeling_key, afd2.prs_afdeling_key, afd1.prs_afdeling_key), COALESCE (gebr1.fac_usrdata_key, gebr2.fac_usrdata_key))
gebruiker_key,
DECODE (x.res_activiteit_key, 10, COALESCE (afd3.prs_afdeling_omschrijving, afd2.prs_afdeling_omschrijving, afd1.prs_afdeling_omschrijving), COALESCE (gebr1.fac_usrdata_omschr, gebr2.fac_usrdata_omschr))
gebruiker,
x.res_status_fo_key, x.res_status_bo_key, x.res_rsv_ruimte_ordernr,
ROUND (x.aantal, 2),
rd.ins_discipline_key catalogus_key,
rd.ins_discipline_omschrijving catalogus,
x.artikel_key,
x.artikel,
--ROUND (COALESCE (x.artikelprijs, 0), 2),
--x.btw,
ROUND (COALESCE (x.regelprijs, 0), 2) excl_btw,
ROUND ((ROUND (COALESCE (x.regelprijs, 0), 2) * (100 + x.btw)) / 100, 2) incl_btw,
fac.safe_to_number (tar.res_kenmerkreservering_waarde) tar_key,
(SELECT fac_usrdata_omschr FROM fac_v_aanwezigusrdata WHERE fac_usrdata_key = fac.safe_to_number (tar.res_kenmerkreservering_waarde)) tar,
--ref.res_kenmerkreservering_waarde ref,
--a.fac_usrdata_code administratie,
--'7' kostenplaats,
x.code_rcvm
--e.fac_usrdata_key,
--e.fac_usrdata_omschr,
--c.prs_perslid_naam_friendly
FROM (SELECT TO_CHAR (rrr.res_rsv_ruimte_van, 'yyyymmdd hh24mi') || SUBSTR ('00000000' || TO_CHAR (res_reservering_key), -9) || SUBSTR ('0000' || TO_CHAR (res_rsv_ruimte_volgnr), -5) || 'R0' sortering,
rrr.res_rsv_ruimte_key, NULL res_rsv_artikel_key, NULL res_rsv_deel_key,
rrr.res_reservering_key, rrr.res_rsv_ruimte_volgnr,
rrr.res_rsv_ruimte_van, rrr.res_rsv_ruimte_tot,
rrr.res_rsv_ruimte_omschrijving,
rrr.res_rsv_ruimte_contact_key, rrr.res_rsv_ruimte_host_key,
rrr.res_rsv_ruimte_flag,
rrr.res_status_bo_key, rrr.res_status_fo_key, rrr.res_rsv_ruimte_ordernr,
ROUND (24 * (rrr.res_rsv_ruimte_tot - rrr.res_rsv_ruimte_van), 2) aantal, -- Uren
rr.res_discipline_key,
rr.res_ruimte_key artikel_key,
rr.res_ruimte_nr artikel,
DECODE (rrr.res_rsv_ruimte_ordernr,
NULL, -- Nog niet AV=Verwerkt!
DECODE (vht.res_kenmerkreservering_waarde, -- 1=Commercieel/2=Maatschappelijk
'1', ROUND (24 * (rrr.res_rsv_ruimte_tot - rrr.res_rsv_ruimte_van), 2) * ROUND (rr.res_ruimte_prijs, 2),
'2', ROUND (24 * (rrr.res_rsv_ruimte_tot - rrr.res_rsv_ruimte_van), 2) * ROUND (rr.res_ruimte_prijs * 0.5, 2),
0),
rrr.res_rsv_ruimte_prijs)
regelprijs,
COALESCE (fac.safe_to_number (rr.res_ruimte_groep), 21) btw,
COALESCE (rar1.alg_ruimte_key, rar2.alg_ruimte_key) alg_ruimte_key,
'R' code_rcvm,
rrr.res_activiteit_key
FROM res_v_aanwezigrsv_ruimte rrr,
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,
res_ruimte rr,
(SELECT kw.res_rsv_ruimte_key, kw.res_kenmerkreservering_waarde
FROM res_v_aanwezigkenmerkwaarde kw, res_kenmerk k
WHERE kw.res_kenmerk_key = k.res_kenmerk_key
AND k.res_srtkenmerk_key = 1) vht -- Verhuurtarief
WHERE rrr.res_activiteit_key IN (10, 30) -- Interne of Externe bijeenkomst (g<><67>n 11 of 50=Uitleen of Rondleiding)!
--AND rrr.res_rsv_ruimte_tot < TRUNC (SYSDATE + 1) -- Niet in toekomst!
AND rrr.res_rsv_ruimte_tot < TRUNC (ADD_MONTHS (SYSDATE, 24), 'yyyy') -- T/m volgend jaar!
AND rrr.res_rsv_ruimte_dirtlevel = 0 -- Niet dirty!
AND COALESCE (rrr.res_rsv_ruimte_totaal, 0) = 0 -- TODO:G<><47>n afgesproken prijs!
AND rrr.res_ruimte_opstel_key = rro.res_ruimte_opstel_key -- Alleen Ruimte-reserveringen!
AND rro.res_ruimte_key = rar1.res_ruimte_key(+)
AND rro.res_ruimte_key = rar2.res_ruimte_key(+)
AND COALESCE (rar1.res_ruimte_key, rar2.res_ruimte_key) = rr.res_ruimte_key
AND rrr.res_rsv_ruimte_key = vht.res_rsv_ruimte_key(+)
AND 24 * (rrr.res_rsv_ruimte_tot - rrr.res_rsv_ruimte_van) > 0 -- Zou zo moeten zijn!?
UNION ALL -- Afgesproken ruimteprijs
SELECT TO_CHAR (rrr.res_rsv_ruimte_van, 'yyyymmdd hh24mi') || SUBSTR ('00000000' || TO_CHAR (res_reservering_key), -9) || SUBSTR ('0000' || TO_CHAR (res_rsv_ruimte_volgnr), -5) || 'R0' sortering,
rrr.res_rsv_ruimte_key, NULL res_rsv_artikel_key, NULL res_rsv_deel_key,
rrr.res_reservering_key, rrr.res_rsv_ruimte_volgnr,
rrr.res_rsv_ruimte_van, rrr.res_rsv_ruimte_tot,
rrr.res_rsv_ruimte_omschrijving,
rrr.res_rsv_ruimte_contact_key, rrr.res_rsv_ruimte_host_key,
rrr.res_rsv_ruimte_flag,
rrr.res_status_bo_key, rrr.res_status_fo_key, rrr.res_rsv_ruimte_ordernr,
ROUND (24 * (rrr.res_rsv_ruimte_tot - rrr.res_rsv_ruimte_van), 2) aantal, -- Uren
rr.res_discipline_key,
rr.res_ruimte_key artikel_key,
rr.res_ruimte_nr artikel,
DECODE (rrr.res_activiteit_key, 10, 0, rrr.res_rsv_ruimte_totaal) regelprijs,
COALESCE (fac.safe_to_number (rr.res_ruimte_groep), 21) btw,
COALESCE (rar1.alg_ruimte_key, rar2.alg_ruimte_key) alg_ruimte_key,
'R' code_rcvm,
rrr.res_activiteit_key
FROM res_v_aanwezigrsv_ruimte rrr,
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,
res_ruimte rr
WHERE rrr.res_activiteit_key IN (10, 30) -- Interne of Externe bijeenkomst (g<><67>n 11 of 50=Uitleen of Rondleiding)!
--AND rrr.res_rsv_ruimte_tot < TRUNC (SYSDATE + 1) -- Niet in toekomst!
AND rrr.res_rsv_ruimte_tot < TRUNC (ADD_MONTHS (SYSDATE, 24), 'yyyy') -- T/m volgend jaar!
AND rrr.res_rsv_ruimte_dirtlevel = 0 -- Niet dirty!
AND COALESCE (rrr.res_rsv_ruimte_totaal, 0) != 0 -- TODO:Afgesproken prijs!
AND rrr.res_ruimte_opstel_key = rro.res_ruimte_opstel_key -- Alleen Ruimte-reserveringen!
AND rro.res_ruimte_key = rar1.res_ruimte_key(+)
AND rro.res_ruimte_key = rar2.res_ruimte_key(+)
AND COALESCE (rar1.res_ruimte_key, rar2.res_ruimte_key) = rr.res_ruimte_key
UNION ALL -- Korting
SELECT TO_CHAR (rrr.res_rsv_ruimte_van, 'yyyymmdd hh24mi') || SUBSTR ('00000000' || TO_CHAR (res_reservering_key), -9) || SUBSTR ('0000' || TO_CHAR (res_rsv_ruimte_volgnr), -5) || 'R1' sortering,
rrr.res_rsv_ruimte_key, NULL res_rsv_artikel_key, NULL res_rsv_deel_key,
rrr.res_reservering_key, rrr.res_rsv_ruimte_volgnr,
rrr.res_rsv_ruimte_van, rrr.res_rsv_ruimte_tot,
rrr.res_rsv_ruimte_omschrijving,
rrr.res_rsv_ruimte_contact_key, rrr.res_rsv_ruimte_host_key,
rrr.res_rsv_ruimte_flag,
rrr.res_status_bo_key, rrr.res_status_fo_key, rrr.res_rsv_ruimte_ordernr,
0 aantal, -- Voor Koring-regel Uren = 0!
rr.res_discipline_key,
rr.res_ruimte_key artikel_key,
rr.res_ruimte_nr artikel,
DECODE (rrr.res_activiteit_key, 10, 0, -1 * rrr.res_rsv_ruimte_korting) regelprijs,
COALESCE (fac.safe_to_number (rr.res_ruimte_groep), 21) btw,
COALESCE (rar1.alg_ruimte_key, rar2.alg_ruimte_key) alg_ruimte_key,
'R' code_rcvm,
rrr.res_activiteit_key
FROM res_v_aanwezigrsv_ruimte rrr,
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,
res_ruimte rr
WHERE rrr.res_activiteit_key IN (10, 30) -- Interne of Externe bijeenkomst (g<><67>n 11 of 50=Uitleen of Rondleiding)!
--AND rrr.res_rsv_ruimte_tot < TRUNC (SYSDATE + 1) -- Niet in toekomst!
AND rrr.res_rsv_ruimte_tot < TRUNC (ADD_MONTHS (SYSDATE, 24), 'yyyy') -- T/m volgend jaar!
AND rrr.res_rsv_ruimte_dirtlevel = 0 -- Niet dirty!
AND COALESCE (rrr.res_rsv_ruimte_korting, 0) != 0
AND rrr.res_ruimte_opstel_key = rro.res_ruimte_opstel_key -- Alleen Ruimte-reserveringen!
AND rro.res_ruimte_key = rar1.res_ruimte_key(+)
AND rro.res_ruimte_key = rar2.res_ruimte_key(+)
AND COALESCE (rar1.res_ruimte_key, rar2.res_ruimte_key) = rr.res_ruimte_key
UNION ALL -- Verbruik=Verbruiksartikelen
SELECT TO_CHAR (rrr.res_rsv_ruimte_van, 'yyyymmdd hh24mi') || SUBSTR ('00000000' || TO_CHAR (res_reservering_key), -9) || SUBSTR ('0000' || TO_CHAR (res_rsv_ruimte_volgnr), -5) || 'V' || TO_CHAR (rra.res_discipline_key) || SUBSTR ('000' || TO_CHAR (COALESCE (rra.res_artikel_volgnummer, 0)), -3) sortering,
rrr.res_rsv_ruimte_key, rra.res_rsv_artikel_key, NULL res_rsv_deel_key,
rrr.res_reservering_key, rrr.res_rsv_ruimte_volgnr,
rrr.res_rsv_ruimte_van, rrr.res_rsv_ruimte_tot,
rrr.res_rsv_ruimte_omschrijving,
rrr.res_rsv_ruimte_contact_key, rrr.res_rsv_ruimte_host_key,
rrr.res_rsv_ruimte_flag,
rrr.res_status_bo_key, rrr.res_status_fo_key, rrr.res_rsv_ruimte_ordernr,
rra.res_rsv_artikel_aantal aantal, -- Stuks/TODO: Misschien igv. V omzetten naar uren???
DECODE (rra.res_artikel_groep, 'R', rr.res_discipline_key, rra.res_discipline_key)
res_discipline_key,
rra.res_artikel_key artikel_key,
rra.res_artikel_omschrijving artikel,
DECODE (rra.res_rsv_artikel_prijs, NULL, rra.res_rsv_artikel_aantal * rra.res_artikel_prijs, rra.res_rsv_artikel_prijs)
regelprijs,
rra.btw,
COALESCE (rar1.alg_ruimte_key, rar2.alg_ruimte_key, rrr.alg_ruimte_key) alg_ruimte_key,
DECODE (rra.res_artikel_groep,
'R', rra.res_artikel_groep, -- TODO:Komt dit ooit voor???
'C', rra.res_artikel_groep,
'V', rra.res_artikel_groep,
'M', rra.res_artikel_groep,
ks.prs_kostensoort_altcode)
code_rcvm,
rrr.res_activiteit_key
FROM res_v_aanwezigrsv_ruimte rrr,
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,
res_ruimte rr,
(SELECT rra.res_rsv_ruimte_key, rra.res_rsv_artikel_key,
rra.res_rsv_artikel_levering, rra.res_status_bo_key,
rra.res_rsv_artikel_aantal,
ra.res_artikel_nr,
ra.res_artikel_omschrijving,
rra.res_rsv_artikel_prijs,
ra.res_artikel_prijs,
COALESCE (rra.res_rsv_artikel_btw, ra.res_artikel_btw, 21) btw,
ra.res_discipline_key, ra.res_artikel_key, ra.res_artikel_volgnummer,
ra.res_artikel_groep
FROM res_v_aanwezigrsv_artikel rra, res_artikel ra
WHERE rra.res_rsv_artikel_levering < TRUNC (SYSDATE + 1)
AND rra.res_rsv_artikel_dirtlevel = 0
AND rra.res_artikel_key = ra.res_artikel_key
AND (ra.res_discipline_key NOT IN (48, 50) OR ra.res_artikel_btw IS NOT NULL)
UNION ALL -- Dichtbij BTW laag
SELECT rra.res_rsv_ruimte_key, rra.res_rsv_artikel_key,
rra.res_rsv_artikel_levering, rra.res_status_bo_key,
rra.res_rsv_artikel_aantal,
ra.res_artikel_nr,
ra.res_artikel_omschrijving,
0.66 * rra.res_rsv_artikel_prijs res_rsv_artikel_prijs,
0.66 * ra.res_artikel_prijs res_artikel_prijs,
6 btw,
ra.res_discipline_key, ra.res_artikel_key, ra.res_artikel_volgnummer,
ra.res_artikel_groep
FROM res_v_aanwezigrsv_artikel rra, res_artikel ra
WHERE rra.res_rsv_artikel_levering < TRUNC (SYSDATE + 1)
AND rra.res_rsv_artikel_dirtlevel = 0
AND rra.res_artikel_key = ra.res_artikel_key
AND ra.res_discipline_key IN (48) -- Dichtbij extra
AND ra.res_artikel_btw IS NULL
UNION ALL -- Dichtbij BTW hoog
SELECT rra.res_rsv_ruimte_key, rra.res_rsv_artikel_key,
rra.res_rsv_artikel_levering, rra.res_status_bo_key,
rra.res_rsv_artikel_aantal,
ra.res_artikel_nr,
ra.res_artikel_omschrijving,
0.34 * rra.res_rsv_artikel_prijs res_rsv_artikel_prijs,
0.34 * ra.res_artikel_prijs res_artikel_prijs,
21 btw,
ra.res_discipline_key, ra.res_artikel_key, ra.res_artikel_volgnummer,
ra.res_artikel_groep
FROM res_v_aanwezigrsv_artikel rra, res_artikel ra
WHERE rra.res_rsv_artikel_levering < TRUNC (SYSDATE + 1)
AND rra.res_rsv_artikel_dirtlevel = 0
AND rra.res_artikel_key = ra.res_artikel_key
AND ra.res_discipline_key IN (48) -- Dichtbij extra
AND ra.res_artikel_btw IS NULL
UNION ALL -- Momento BTW laag
SELECT rra.res_rsv_ruimte_key, rra.res_rsv_artikel_key,
rra.res_rsv_artikel_levering, rra.res_status_bo_key,
rra.res_rsv_artikel_aantal,
ra.res_artikel_nr,
ra.res_artikel_omschrijving,
0.65 * rra.res_rsv_artikel_prijs res_rsv_artikel_prijs,
0.65 * ra.res_artikel_prijs res_artikel_prijs,
6 btw,
ra.res_discipline_key, ra.res_artikel_key, ra.res_artikel_volgnummer,
ra.res_artikel_groep
FROM res_v_aanwezigrsv_artikel rra, res_artikel ra
WHERE rra.res_rsv_artikel_levering < TRUNC (SYSDATE + 1)
AND rra.res_rsv_artikel_dirtlevel = 0
AND rra.res_artikel_key = ra.res_artikel_key
AND ra.res_discipline_key IN (50) -- Momento extra
AND ra.res_artikel_btw IS NULL
UNION ALL -- Momento BTW hoog
SELECT rra.res_rsv_ruimte_key, rra.res_rsv_artikel_key,
rra.res_rsv_artikel_levering, rra.res_status_bo_key,
rra.res_rsv_artikel_aantal,
ra.res_artikel_nr,
ra.res_artikel_omschrijving,
0.35 * rra.res_rsv_artikel_prijs res_rsv_artikel_prijs,
0.35 * ra.res_artikel_prijs res_artikel_prijs,
21 btw,
ra.res_discipline_key, ra.res_artikel_key, ra.res_artikel_volgnummer,
ra.res_artikel_groep
FROM res_v_aanwezigrsv_artikel rra, res_artikel ra
WHERE rra.res_rsv_artikel_levering < TRUNC (SYSDATE + 1)
AND rra.res_rsv_artikel_dirtlevel = 0
AND rra.res_artikel_key = ra.res_artikel_key
AND ra.res_discipline_key IN (50) -- Momento extra
AND ra.res_artikel_btw IS NULL) rra,
res_discipline rd,
prs_kostensoort ks
WHERE rrr.res_activiteit_key IN (10, 30) -- Interne of Externe bijeenkomst (g<><67>n 11 of 50=Uitleen of Rondleiding)!
--AND rrr.res_rsv_ruimte_tot < TRUNC (SYSDATE + 1) -- Niet in toekomst!
AND rrr.res_rsv_ruimte_tot < TRUNC (ADD_MONTHS (SYSDATE, 24), 'yyyy') -- T/m volgend jaar!
AND rrr.res_rsv_ruimte_dirtlevel = 0 -- Niet dirty!
AND rrr.res_ruimte_opstel_key = rro.res_ruimte_opstel_key(+) -- Ruimte- <20>n Uitleen-reserveringen!
AND rro.res_ruimte_key = rar1.res_ruimte_key(+)
AND rro.res_ruimte_key = rar2.res_ruimte_key(+)
AND COALESCE (rar1.res_ruimte_key, rar2.res_ruimte_key) = rr.res_ruimte_key(+)
AND rrr.res_rsv_ruimte_key = rra.res_rsv_ruimte_key
AND rra.res_discipline_key = rd.ins_discipline_key
AND rd.prs_kostensoort_key = ks.prs_kostensoort_key(+)
UNION ALL -- Overig=Voorzieningen
SELECT TO_CHAR (rrr.res_rsv_ruimte_van, 'yyyymmdd hh24mi') || SUBSTR ('00000000' || TO_CHAR (res_reservering_key), -9) || SUBSTR ('0000' || TO_CHAR (res_rsv_ruimte_volgnr), -5) || 'X' || SUBSTR (rd.res_deel_omschrijving, 1, 3) sortering,
rrr.res_rsv_ruimte_key, NULL res_rsv_artikel_key, rrd.res_rsv_deel_key,
rrr.res_reservering_key, rrr.res_rsv_ruimte_volgnr,
rrr.res_rsv_ruimte_van, rrr.res_rsv_ruimte_tot,
rrr.res_rsv_ruimte_omschrijving,
rrr.res_rsv_ruimte_contact_key, rrr.res_rsv_ruimte_host_key,
rrr.res_rsv_ruimte_flag,
rrr.res_status_bo_key, rrr.res_status_fo_key, rrr.res_rsv_ruimte_ordernr,
ROUND (24 * (rrr.res_rsv_ruimte_tot - rrr.res_rsv_ruimte_van), 2) aantal, -- Uren
rd.res_discipline_key,
rd.res_deel_key artikel_key,
rd.res_deel_omschrijving artikel,
DECODE (rrd.res_rsv_deel_prijs, NULL, ROUND (24 * (rrr.res_rsv_ruimte_tot - rrr.res_rsv_ruimte_van), 2) * ROUND (rd.res_deel_prijs, 2), rrd.res_rsv_deel_prijs)
regelprijs,
21 btw, -- Hard 21%
COALESCE (rar1.alg_ruimte_key, rar2.alg_ruimte_key, rrr.alg_ruimte_key) alg_ruimte_key,
'V' code_rcvm,
rrr.res_activiteit_key
FROM res_v_aanwezigrsv_ruimte rrr,
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,
res_ruimte rr,
res_v_aanwezigrsv_deel rrd,
res_deel rd
WHERE rrr.res_activiteit_key IN (10, 30) -- Interne of Externe bijeenkomst (g<><67>n 11 of 50=Uitleen of Rondleiding)!
--AND rrr.res_rsv_ruimte_tot < TRUNC (SYSDATE + 1) -- Niet in toekomst!
AND rrr.res_rsv_ruimte_tot < TRUNC (ADD_MONTHS (SYSDATE, 24), 'yyyy') -- T/m volgend jaar!
AND rrr.res_rsv_ruimte_dirtlevel = 0 -- Niet dirty!
AND rrr.res_ruimte_opstel_key = rro.res_ruimte_opstel_key(+) -- Ruimte- <20>n Uitleen-reserveringen!
AND rro.res_ruimte_key = rar1.res_ruimte_key(+)
AND rro.res_ruimte_key = rar2.res_ruimte_key(+)
AND COALESCE (rar1.res_ruimte_key, rar2.res_ruimte_key) = rr.res_ruimte_key(+)
AND rrr.res_rsv_ruimte_key = rrd.res_rsv_ruimte_key
AND rrd.res_rsv_deel_tot < SYSDATE -- Niet in toekomst!
AND rrd.res_rsv_deel_dirtlevel = 0 -- Niet dirty!
AND rrd.res_deel_key = rd.res_deel_key) x
LEFT JOIN prs_perslid p
ON x.res_rsv_ruimte_host_key = p.prs_perslid_key -- Of res_rsv_ruimte_contact_key?
LEFT JOIN prs_v_afdeling_boom ab
ON p.prs_afdeling_key = ab.prs_afdeling_key
LEFT JOIN prs_afdeling afd3
ON ab.prs_afdeling_key3 = afd3.prs_afdeling_key
LEFT JOIN prs_afdeling afd2
ON ab.prs_afdeling_key2 = afd2.prs_afdeling_key
LEFT JOIN prs_afdeling afd1
ON ab.prs_afdeling_key1 = afd1.prs_afdeling_key
LEFT JOIN res_discipline rd
ON x.res_discipline_key = rd.ins_discipline_key
LEFT JOIN res_activiteit ra
ON x.res_activiteit_key = ra.res_activiteit_key
LEFT JOIN res_v_aanwezigkenmerkwaarde tar
ON x.res_rsv_ruimte_key = tar.res_rsv_ruimte_key
AND tar.res_kenmerk_key = 1 -- Verhuur tarief
LEFT JOIN res_v_aanwezigkenmerkwaarde deb
ON x.res_rsv_ruimte_key = deb.res_rsv_ruimte_key
AND deb.res_kenmerk_key = 2 -- Debiteur
LEFT JOIN sroz_v_huurders h
ON deb.res_kenmerkreservering_waarde = TO_CHAR (h.prs_bedrijf_key)
LEFT JOIN prs_bedrijf b
ON h.prs_bedrijf_key = b.prs_bedrijf_key
LEFT JOIN prs_kenmerklink kc1
ON b.prs_bedrijf_key = kc1.prs_link_key
AND kc1.prs_kenmerk_key = 1000 -- Klantcategorie
LEFT JOIN fac_v_aanwezigusrdata gebr1
ON kc1.prs_kenmerklink_waarde = TO_CHAR (gebr1.fac_usrdata_key)
LEFT JOIN prs_contactpersoon cp
ON MOD (h.prs_bedrijf_key, 100000000) = cp.prs_contactpersoon_key
LEFT JOIN prs_kenmerklink kc2
ON cp.prs_bedrijf_key = kc2.prs_link_key
AND kc2.prs_kenmerk_key = 1000 -- Klantcategorie
LEFT JOIN fac_v_aanwezigusrdata gebr2
ON kc2.prs_kenmerklink_waarde = TO_CHAR (gebr2.fac_usrdata_key)
--LEFT JOIN res_v_aanwezigkenmerkwaarde ref
-- ON x.res_rsv_ruimte_key = ref.res_rsv_ruimte_key
-- AND ref.res_kenmerk_key = 3 -- Referentie debiteur
--LEFT JOIN res_v_aanwezigkenmerkwaarde adm
-- ON x.res_rsv_ruimte_key = adm.res_rsv_ruimte_key
-- AND adm.res_kenmerk_key = 161 -- Administratie
--LEFT JOIN fac_v_aanwezigusrdata a
-- ON adm.res_kenmerkreservering_waarde = TO_CHAR (a.fac_usrdata_key)
--LEFT JOIN res_v_aanwezigkenmerkwaarde e2a
-- ON x.res_rsv_ruimte_key = e2a.res_rsv_ruimte_key
-- AND e2a.res_kenmerk_key = 181 -- Export naar Afas
--LEFT JOIN fac_v_aanwezigusrdata e
-- ON e2a.res_kenmerkreservering_waarde = TO_CHAR (e.fac_usrdata_key)
--LEFT JOIN res_v_aanwezigkenmerkwaarde gdr
-- ON x.res_rsv_ruimte_key = gdr.res_rsv_ruimte_key
-- AND gdr.res_kenmerk_key = 182 -- Gecontroleerd door
--LEFT JOIN sroz_v_controleurs c
-- ON gdr.res_kenmerkreservering_waarde = TO_CHAR (c.prs_perslid_key)
WHERE x.res_rsv_ruimte_van > TO_DATE ('01-01-2019', 'dd-mm-yyyy')
;
-- SROZ#56682: RES-managementrapportages/Omzet:
-- O1 <20> Omzet zaalhuur per maand/tarief (of week?) met de 4 kolommen als in Afbeelding 1
-- O2 <20> Omzet per maand/zaaltype met de 8 kolommen als in Afbeelding 1
-- O3 <20> Omzet per maand/artikelcatalogus met de 4 kolommen als in Afbeelding 1
-- O4 <20> Omzet per maand/intern of extern/team of doelgroep met de 6 kolommen als in Afbeelding 1
-- O5 <20> Omzet per maand/intern of extern/team of doelgroep/artikelcatalogus/artikel met de 6 kolommen als in Afbeelding 1
CREATE OR REPLACE VIEW sroz_v_rap_res_omzet1
(
maand, -- Of week?
zaalhuur,
aant_res,
uren,
optie_excl,
optie_incl,
contract_excl,
contract_incl,
verhuurtarief_key
)
AS
SELECT periode, verhuurtarief,
COUNT (DISTINCT res_rsv_ruimte_key) aant_res,
SUM (COALESCE (aantal, 0)) uren,
SUM (DECODE (res_status_fo_key, 1, excl_btw, 0)) oe,
SUM (DECODE (res_status_fo_key, 1, incl_btw, 0)) oi,
SUM (DECODE (res_status_fo_key, 2, excl_btw, 0)) ce,
SUM (DECODE (res_status_fo_key, 2, incl_btw, 0)) ci,
verhuurtarief_key
FROM sroz_v_res_all2
WHERE activiteit_key = 30 -- Alleen Extern!
AND code_rcvm = 'R'
--AND excl_btw != 0
GROUP BY periode, verhuurtarief,
verhuurtarief_key;
CREATE OR REPLACE VIEW sroz_v_rap_res_omzet2
(
maand, -- Of week?
zaaltype,
zaalnaam,
aant_res,
uren,
maatsch_optie_excl,
maatsch_optie_incl,
maatsch_contract_excl,
maatsch_contract_incl,
commerc_optie_excl,
commerc_optie_incl,
commerc_contract_excl,
commerc_contract_incl,
catalogus_key,
artikel_key
)
AS
SELECT periode, catalogus, artikel,
COUNT (DISTINCT res_rsv_ruimte_key) aant_res,
SUM (COALESCE (aantal, 0)) uren,
SUM (DECODE (res_status_fo_key, 1, DECODE (verhuurtarief_key, 2, excl_btw, 0), 0)) moe,
SUM (DECODE (res_status_fo_key, 1, DECODE (verhuurtarief_key, 2, incl_btw, 0), 0)) moi,
SUM (DECODE (res_status_fo_key, 2, DECODE (verhuurtarief_key, 2, excl_btw, 0), 0)) mce,
SUM (DECODE (res_status_fo_key, 2, DECODE (verhuurtarief_key, 2, incl_btw, 0), 0)) mci,
SUM (DECODE (res_status_fo_key, 1, DECODE (verhuurtarief_key, 1, excl_btw, 0), 0)) coe,
SUM (DECODE (res_status_fo_key, 1, DECODE (verhuurtarief_key, 1, incl_btw, 0), 0)) coi,
SUM (DECODE (res_status_fo_key, 2, DECODE (verhuurtarief_key, 1, excl_btw, 0), 0)) cce,
SUM (DECODE (res_status_fo_key, 2, DECODE (verhuurtarief_key, 1, incl_btw, 0), 0)) cci,
catalogus_key, artikel_key
FROM sroz_v_res_all2
WHERE activiteit_key = 30 -- Alleen Extern!
AND code_rcvm = 'R'
--AND excl_btw != 0
GROUP BY periode, catalogus, artikel,
catalogus_key, artikel_key;
CREATE OR REPLACE VIEW sroz_v_rap_res_omzet3
(
maand, -- Of week?
intern_extern,
catalogus,
artikel,
aant_res,
uren_of_stuks,
optie_excl,
optie_incl,
contract_excl,
contract_incl,
activiteit_key,
catalogus_key,
artikel_key
)
AS
SELECT periode, activiteit, catalogus, artikel,
COUNT (DISTINCT res_rsv_ruimte_key) aant_res,
SUM (COALESCE (aantal, 0)) uren_of_stuks,
SUM (DECODE (res_status_fo_key, 1, excl_btw, 0)) oe,
SUM (DECODE (res_status_fo_key, 1, incl_btw, 0)) oi,
SUM (DECODE (res_status_fo_key, 2, excl_btw, 0)) ce,
SUM (DECODE (res_status_fo_key, 2, incl_btw, 0)) ci,
activiteit_key, catalogus_key, artikel_key
FROM sroz_v_res_all2
WHERE code_rcvm != 'R'
--AND excl_btw != 0
GROUP BY periode, activiteit, catalogus, artikel,
activiteit_key, catalogus_key, artikel_key;
CREATE OR REPLACE VIEW sroz_v_rap_res_omzet4
(
maand, -- Of week?
intern_extern,
gebruiker,
aant_res,
zaalhuur_uren,
zaalhuur_optie_excl,
zaalhuur_optie_incl,
zaalhuur_contract_excl,
zaalhuur_contract_incl,
artikelen_optie_excl,
artikelen_optie_incl,
artikelen_contract_excl,
artikelen_contract_incl,
activiteit_key,
gebruiker_key
)
AS
SELECT periode, activiteit, gebruiker,
COUNT (DISTINCT res_rsv_ruimte_key) aant_res,
SUM (DECODE (code_rcvm, 'R', COALESCE (aantal, 0), 0)) uren_of_stuks,
SUM (DECODE (res_status_fo_key, 1, DECODE (code_rcvm, 'R', excl_btw, 0), 0)) zoe,
SUM (DECODE (res_status_fo_key, 1, DECODE (code_rcvm, 'R', incl_btw, 0), 0)) zoi,
SUM (DECODE (res_status_fo_key, 2, DECODE (code_rcvm, 'R', excl_btw, 0), 0)) zce,
SUM (DECODE (res_status_fo_key, 2, DECODE (code_rcvm, 'R', incl_btw, 0), 0)) zci,
SUM (DECODE (res_status_fo_key, 1, DECODE (code_rcvm, 'R', 0, excl_btw), 0)) aoe,
SUM (DECODE (res_status_fo_key, 1, DECODE (code_rcvm, 'R', 0, incl_btw), 0)) aoi,
SUM (DECODE (res_status_fo_key, 2, DECODE (code_rcvm, 'R', 0, excl_btw), 0)) ace,
SUM (DECODE (res_status_fo_key, 2, DECODE (code_rcvm, 'R', 0, incl_btw), 0)) aci,
activiteit_key, gebruiker_key
FROM sroz_v_res_all2
--WHERE excl_btw != 0
GROUP BY periode, activiteit, gebruiker,
activiteit_key, gebruiker_key;
CREATE OR REPLACE VIEW sroz_v_rap_res_omzet5
(
maand, -- Of week?
intern_extern,
gebruiker,
catalogus,
zaal_of_artikel,
aant_res,
uren_of_stuks,
optie_excl,
optie_incl,
contract_excl,
contract_incl,
activiteit_key,
gebruiker_key,
catalogus_key,
artikel_key
)
AS
SELECT periode, activiteit, gebruiker, catalogus, artikel,
COUNT (DISTINCT res_rsv_ruimte_key) aant_res,
SUM (COALESCE (aantal, 0)) uren_of_stuks,
SUM (DECODE (res_status_fo_key, 1, excl_btw, 0)) oe,
SUM (DECODE (res_status_fo_key, 1, incl_btw, 0)) oi,
SUM (DECODE (res_status_fo_key, 2, excl_btw, 0)) ce,
SUM (DECODE (res_status_fo_key, 2, incl_btw, 0)) ci,
activiteit_key, gebruiker_key, catalogus_key, artikel_key
FROM sroz_v_res_all2
--WHERE excl_btw != 0
GROUP BY periode, activiteit, gebruiker, catalogus, artikel,
activiteit_key, gebruiker_key, catalogus_key, artikel_key;
-- Beschikbare uren per maand/zaaltype/zaalnaam!
-- TODO:Vrije dagen als zondag?
CREATE OR REPLACE VIEW sroz_v_res_besuren
(
maand, -- Of week?
ins_discipline_key,
ins_discipline_omschrijving,
res_ruimte_key,
res_ruimte_nr,
alg_ruimte_key,
quotum
)
AS
SELECT TO_CHAR (d.dag, 'yyyy-mm') mnd,
rd.ins_discipline_key, rd.ins_discipline_omschrijving, -- R-catalogi
rr.res_ruimte_key, rr.res_ruimte_nr,
rar.alg_ruimte_key,
SUM (CASE
WHEN EXISTS (SELECT 1 FROM mld_vrije_dagen WHERE TRUNC (mld_vrije_dagen_datum) = TRUNC (d.dag)) -- Vrije dag=Zondag?
THEN CASE
WHEN TO_CHAR (d.dag, 'mm') BETWEEN '04' AND '08'
THEN 0 -- Op zondag alleen van september-april open van 13:00-17:00, dus in dr zomermaanden gesloten (= 0 uur)!
ELSE LEAST (COALESCE (rr.res_ruimte_eindtijd, 17), 17) - GREATEST (COALESCE (rr.res_ruimte_begintijd, 13), 13)
END
ELSE CASE
WHEN TO_CHAR (d.dag, 'd') = '1' -- Zondag
THEN CASE
WHEN TO_CHAR (d.dag, 'mm') BETWEEN '04' AND '08'
THEN 0 -- Op zondag alleen van september-april open van 13:00-17:00, dus in dr zomermaanden gesloten (= 0 uur)!
ELSE LEAST (COALESCE (rr.res_ruimte_eindtijd, 17), 17) - GREATEST (COALESCE (rr.res_ruimte_begintijd, 13), 13)
END
WHEN TO_CHAR (d.dag, 'd') = '7' -- Zaterdag
THEN LEAST (COALESCE (rr.res_ruimte_eindtijd, 17), 17) - GREATEST (COALESCE (rr.res_ruimte_begintijd, 8.5), 8.5)
ELSE LEAST (COALESCE (rr.res_ruimte_eindtijd, 22), 22) - GREATEST (COALESCE (rr.res_ruimte_begintijd, 8.5), 8.5) -- Werkdag
END
END)
quotum
FROM res_ruimte rr, -- Ook verwijderde zalen!
res_discipline rd, -- Ook verwijderde catalogi!
res_alg_ruimte rar,
( SELECT TRUNC (ADD_MONTHS (SYSDATE, -12), 'yyyy') + LEVEL - 1 dag
FROM DUAL
CONNECT BY LEVEL <= (TRUNC (ADD_MONTHS (SYSDATE, 24), 'yyyy') - TRUNC (ADD_MONTHS (SYSDATE, -12), 'yyyy'))) d
WHERE rr.res_discipline_key = rd.ins_discipline_key
AND rr.res_ruimte_key = rar.res_ruimte_key
AND rar.res_alg_ruimte_aanmaak < TRUNC (ADD_MONTHS (d.dag, 1), 'mm')
AND (rar.res_alg_ruimte_verwijder IS NULL OR rar.res_alg_ruimte_verwijder >= TRUNC (d.dag, 'mm'))
GROUP BY TO_CHAR (d.dag, 'yyyy-mm'),
rd.ins_discipline_key, rd.ins_discipline_omschrijving, -- R-catalogi
rr.res_ruimte_key, rr.res_ruimte_nr,
rar.alg_ruimte_key;
-- SROZ#56682: RES-managementrapportages/Bezettingsgraad:
-- B1 <20> Bezetting per maand/zaaltype met de 6 kolommen als in Afbeelding 2 en doorklikbaar naar B2
-- B2 <20> Bezetting per maand/zaaltype/zaal met de 6 kolommen als in Afbeelding 2
-- B3 <20> Bezetting per maand/intern of extern/team of doelgroep met de 4 kolommen als in Afbeelding 2
CREATE OR REPLACE VIEW sroz_v_rap_res_bezgr1
(
maand, -- Of week?
zaaltype,
quotum,
totaal,
intern_optie,
intern_contract,
extern_optie,
extern_contract,
catalogus_key
)
AS
WITH resztznieoc -- Per maand/zaaltype/zaalnaam/activiteit/fo-status de beschikbare en bezette uren (op tot-tijd)!
AS ( SELECT resbes.mnd,
resbes.ins_discipline_omschrijving zaaltype,
resbes.res_ruimte_nr zaalnaam,
resbes.res_discipline_key,
resbes.res_ruimte_key,
resbes.res_activiteit_key,
resbes.res_status_fo_key,
SUM (ROUND (resbes.uren, 3)) bes_uren,
SUM (ROUND (resbez.uren, 3)) bez_uren,
SUM (resbez.aant) aantal_reserveringen
FROM (SELECT DISTINCT TO_CHAR (p.mnd, 'yyyy-mm') mnd, -- DISTINCT igv. verwijderde res_alg_ruimte!
rr.res_discipline_key, rd.ins_discipline_omschrijving, -- R-catalogi
rr.res_ruimte_key, rr.res_ruimte_nr,
rar.alg_ruimte_key,
ra.res_activiteit_key,
sfo.res_status_fo_key,
--fac.count_work_days (p.mnd - 1, ADD_MONTHS (p.mnd, 1) - 1) -- TODO: Alleen werkdagen?
(ADD_MONTHS (p.mnd, 1) - p.mnd)
* (LEAST (COALESCE (rr.res_ruimte_eindtijd, 22), 22) - GREATEST (COALESCE (rr.res_ruimte_begintijd, 8.5), 8.5))
uren
FROM res_ruimte rr, -- Ook verwijderde zalen!
res_discipline rd, -- Ook verwijderde catalogi!
res_alg_ruimte rar,
res_activiteit ra,
res_status_fo sfo,
(SELECT ADD_MONTHS (TRUNC (ADD_MONTHS (SYSDATE, -12), 'yyyy'), LEVEL - 1) mnd FROM DUAL CONNECT BY LEVEL <= 36) p
WHERE rr.res_discipline_key = rd.ins_discipline_key
AND rr.res_ruimte_key = rar.res_ruimte_key
AND ra.res_activiteit_key IN (10, 30) -- Intern/Extern
AND sfo.res_status_fo_key IN (1, 2) -- Optie/Definitief
AND rar.res_alg_ruimte_aanmaak < ADD_MONTHS (p.mnd, 1)
AND (rar.res_alg_ruimte_verwijder IS NULL OR rar.res_alg_ruimte_verwijder >= p.mnd)) resbes,
( SELECT TO_CHAR (rrr.res_rsv_ruimte_tot, 'yyyy-mm') mnd,
rr.res_discipline_key, -- R-catalogi
rr.res_ruimte_key,
ra.alg_ruimte_key,
rrr.res_activiteit_key,
rrr.res_status_fo_key,
COUNT ( * ) aant,
SUM (LEAST ((rrr.res_rsv_ruimte_tot - TRUNC (rrr.res_rsv_ruimte_tot)) * 24, 22)
- GREATEST ((rrr.res_rsv_ruimte_van - TRUNC (rrr.res_rsv_ruimte_van)) * 24, 8.5))
uren
FROM res_v_aanwezigrsv_ruimte rrr, res_ruimte_opstelling ro, res_ruimte rr, res_alg_ruimte ra
WHERE rrr.res_activiteit_key IN (10, 30) -- Intern/Extern
AND rrr.res_rsv_ruimte_dirtlevel = 0
AND rrr.res_status_fo_key IN (1, 2) -- Optie/Definitief
AND rrr.res_rsv_ruimte_tot BETWEEN TRUNC (ADD_MONTHS (SYSDATE, -12), 'yyyy') AND TRUNC (ADD_MONTHS (SYSDATE, 24), 'yyyy') -- T/m volgend jaar!
--AND TO_CHAR (rrr.res_rsv_ruimte_tot, 'd') BETWEEN '2' AND '6' -- TODO: Alleen werkdagen?
--AND NOT EXISTS (SELECT 1 FROM mld_vrije_dagen WHERE TRUNC (mld_vrije_dagen_datum) = TRUNC (rrr.res_rsv_ruimte_tot)) -- TODO: Alleen werkdagen?
AND rrr.res_ruimte_opstel_key = ro.res_ruimte_opstel_key
AND ro.res_ruimte_key = rr.res_ruimte_key
AND rr.res_ruimte_key = ra.res_ruimte_key
GROUP BY TO_CHAR (rrr.res_rsv_ruimte_tot, 'yyyy-mm'),
rr.res_discipline_key,
rr.res_ruimte_key,
ra.alg_ruimte_key,
rrr.res_activiteit_key,
rrr.res_status_fo_key) resbez
WHERE resbes.mnd = resbez.mnd(+)
AND resbes.res_discipline_key = resbez.res_discipline_key(+)
AND resbes.res_ruimte_key = resbez.res_ruimte_key(+)
AND resbes.alg_ruimte_key = resbez.alg_ruimte_key(+)
AND resbes.res_activiteit_key = resbez.res_activiteit_key(+)
AND resbes.res_status_fo_key = resbez.res_status_fo_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 resbes.mnd,
resbes.ins_discipline_omschrijving,
resbes.res_ruimte_nr,
resbes.res_discipline_key,
resbes.res_ruimte_key,
resbes.res_activiteit_key,
resbes.res_status_fo_key)
SELECT x.mnd, x.zaaltype, x.bes_uren,
TO_CHAR (COALESCE (x.bez_uren, 0), '999990.99') || ' / ' || TRIM (TO_CHAR (100 * (COALESCE (x.bez_uren, 0) / x.bes_uren), '990') || '%'),
TO_CHAR (COALESCE (io.bez_uren, 0), '999990.99') || ' / ' || TRIM (TO_CHAR (100 * (COALESCE (io.bez_uren, 0) / x.bes_uren), '990') || '%'),
TO_CHAR (COALESCE (ic.bez_uren, 0), '999990.99') || ' / ' || TRIM (TO_CHAR (100 * (COALESCE (ic.bez_uren, 0) / x.bes_uren), '990') || '%'),
TO_CHAR (COALESCE (eo.bez_uren, 0), '999990.99') || ' / ' || TRIM (TO_CHAR (100 * (COALESCE (eo.bez_uren, 0) / x.bes_uren), '990') || '%'),
TO_CHAR (COALESCE (ec.bez_uren, 0), '999990.99') || ' / ' || TRIM (TO_CHAR (100 * (COALESCE (ec.bez_uren, 0) / x.bes_uren), '990') || '%'),
x.res_discipline_key
FROM ( SELECT mnd, zaaltype, res_discipline_key, SUM (bes_uren / 4) bes_uren, SUM (COALESCE (bez_uren, 0)) bez_uren
FROM resztznieoc
--WHERE res_status_fo_key = 1
GROUP BY mnd, zaaltype, res_discipline_key) x
LEFT JOIN ( SELECT mnd, zaaltype, SUM (bez_uren) bez_uren
FROM resztznieoc
WHERE res_activiteit_key = 10 AND res_status_fo_key = 1
GROUP BY mnd, zaaltype) io
ON x.mnd = io.mnd AND x.zaaltype = io.zaaltype
LEFT JOIN ( SELECT mnd, zaaltype, SUM (bez_uren) bez_uren
FROM resztznieoc
WHERE res_activiteit_key = 10 AND res_status_fo_key = 2
GROUP BY mnd, zaaltype) ic
ON x.mnd = ic.mnd AND x.zaaltype = ic.zaaltype
LEFT JOIN ( SELECT mnd, zaaltype, SUM (bez_uren) bez_uren
FROM resztznieoc
WHERE res_activiteit_key = 30 AND res_status_fo_key = 1
GROUP BY mnd, zaaltype) eo
ON x.mnd = eo.mnd AND x.zaaltype = eo.zaaltype
LEFT JOIN ( SELECT mnd, zaaltype, SUM (bez_uren) bez_uren
FROM resztznieoc
WHERE res_activiteit_key = 30 AND res_status_fo_key = 2
GROUP BY mnd, zaaltype) ec
ON x.mnd = ec.mnd AND x.zaaltype = ec.zaaltype;
CREATE OR REPLACE VIEW sroz_v_rap_res_bezgr2
(
maand, -- Of week?
zaaltype,
zaalnaam,
quotum,
totaal,
intern_optie,
intern_contract,
extern_optie,
extern_contract,
catalogus_key,
artikel_key
)
AS
WITH resztznieoc -- Per maand/zaaltype/zaalnaam/activiteit/fo-status de beschikbare en bezette uren (op tot-tijd)!
AS ( SELECT resbes.mnd,
resbes.ins_discipline_omschrijving zaaltype,
resbes.res_ruimte_nr zaalnaam,
resbes.res_discipline_key,
resbes.res_ruimte_key,
resbes.res_activiteit_key,
resbes.res_status_fo_key,
SUM (ROUND (resbes.uren, 3)) bes_uren,
SUM (ROUND (resbez.uren, 3)) bez_uren,
SUM (resbez.aant) aantal_reserveringen
FROM (SELECT DISTINCT TO_CHAR (p.mnd, 'yyyy-mm') mnd, -- DISTINCT igv. verwijderde res_alg_ruimte!
rr.res_discipline_key, rd.ins_discipline_omschrijving, -- R-catalogi
rr.res_ruimte_key, rr.res_ruimte_nr,
rar.alg_ruimte_key,
ra.res_activiteit_key,
sfo.res_status_fo_key,
--fac.count_work_days (p.mnd - 1, ADD_MONTHS (p.mnd, 1) - 1) -- TODO: Alleen werkdagen?
(ADD_MONTHS (p.mnd, 1) - p.mnd)
* (LEAST (COALESCE (rr.res_ruimte_eindtijd, 22), 22) - GREATEST (COALESCE (rr.res_ruimte_begintijd, 8.5), 8.5))
uren
FROM res_ruimte rr, -- Ook verwijderde zalen!
res_discipline rd, -- Ook verwijderde catalogi!
res_alg_ruimte rar,
res_activiteit ra,
res_status_fo sfo,
(SELECT ADD_MONTHS (TRUNC (ADD_MONTHS (SYSDATE, -12), 'yyyy'), LEVEL - 1) mnd FROM DUAL CONNECT BY LEVEL <= 36) p
WHERE rr.res_discipline_key = rd.ins_discipline_key
AND rr.res_ruimte_key = rar.res_ruimte_key
AND ra.res_activiteit_key IN (10, 30) -- Intern/Extern
AND sfo.res_status_fo_key IN (1, 2) -- Optie/Definitief
AND rar.res_alg_ruimte_aanmaak < ADD_MONTHS (p.mnd, 1)
AND (rar.res_alg_ruimte_verwijder IS NULL OR rar.res_alg_ruimte_verwijder >= p.mnd)) resbes,
( SELECT TO_CHAR (rrr.res_rsv_ruimte_tot, 'yyyy-mm') mnd,
rr.res_discipline_key, -- R-catalogi
rr.res_ruimte_key,
ra.alg_ruimte_key,
rrr.res_activiteit_key,
rrr.res_status_fo_key,
COUNT ( * ) aant,
SUM (LEAST ((rrr.res_rsv_ruimte_tot - TRUNC (rrr.res_rsv_ruimte_tot)) * 24, 22)
- GREATEST ((rrr.res_rsv_ruimte_van - TRUNC (rrr.res_rsv_ruimte_van)) * 24, 8.5))
uren
FROM res_v_aanwezigrsv_ruimte rrr, res_ruimte_opstelling ro, res_ruimte rr, res_alg_ruimte ra
WHERE rrr.res_activiteit_key IN (10, 30) -- Intern/Extern
AND rrr.res_rsv_ruimte_dirtlevel = 0
AND rrr.res_status_fo_key IN (1, 2) -- Optie/Definitief
AND rrr.res_rsv_ruimte_tot BETWEEN TRUNC (ADD_MONTHS (SYSDATE, -12), 'yyyy') AND TRUNC (ADD_MONTHS (SYSDATE, 24), 'yyyy') -- T/m volgend jaar!
--AND TO_CHAR (rrr.res_rsv_ruimte_tot, 'd') BETWEEN '2' AND '6' -- TODO: Alleen werkdagen?
--AND NOT EXISTS (SELECT 1 FROM mld_vrije_dagen WHERE TRUNC (mld_vrije_dagen_datum) = TRUNC (rrr.res_rsv_ruimte_tot)) -- TODO: Alleen werkdagen?
AND rrr.res_ruimte_opstel_key = ro.res_ruimte_opstel_key
AND ro.res_ruimte_key = rr.res_ruimte_key
AND rr.res_ruimte_key = ra.res_ruimte_key
GROUP BY TO_CHAR (rrr.res_rsv_ruimte_tot, 'yyyy-mm'),
rr.res_discipline_key,
rr.res_ruimte_key,
ra.alg_ruimte_key,
rrr.res_activiteit_key,
rrr.res_status_fo_key) resbez
WHERE resbes.mnd = resbez.mnd(+)
AND resbes.res_discipline_key = resbez.res_discipline_key(+)
AND resbes.res_ruimte_key = resbez.res_ruimte_key(+)
AND resbes.alg_ruimte_key = resbez.alg_ruimte_key(+)
AND resbes.res_activiteit_key = resbez.res_activiteit_key(+)
AND resbes.res_status_fo_key = resbez.res_status_fo_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 resbes.mnd,
resbes.ins_discipline_omschrijving,
resbes.res_ruimte_nr,
resbes.res_discipline_key,
resbes.res_ruimte_key,
resbes.res_activiteit_key,
resbes.res_status_fo_key)
SELECT x.mnd, x.zaaltype, x.zaalnaam, x.bes_uren,
TO_CHAR (COALESCE (x.bez_uren, 0), '999990.99') || ' / ' || TRIM (TO_CHAR (100 * (COALESCE (x.bez_uren, 0) / x.bes_uren), '990') || '%'),
TO_CHAR (COALESCE (io.bez_uren, 0), '999990.99') || ' / ' || TRIM (TO_CHAR (100 * (COALESCE (io.bez_uren, 0) / x.bes_uren), '990') || '%'),
TO_CHAR (COALESCE (ic.bez_uren, 0), '999990.99') || ' / ' || TRIM (TO_CHAR (100 * (COALESCE (ic.bez_uren, 0) / x.bes_uren), '990') || '%'),
TO_CHAR (COALESCE (eo.bez_uren, 0), '999990.99') || ' / ' || TRIM (TO_CHAR (100 * (COALESCE (eo.bez_uren, 0) / x.bes_uren), '990') || '%'),
TO_CHAR (COALESCE (ec.bez_uren, 0), '999990.99') || ' / ' || TRIM (TO_CHAR (100 * (COALESCE (ec.bez_uren, 0) / x.bes_uren), '990') || '%'),
x.res_discipline_key, x.res_ruimte_key
FROM ( SELECT mnd, zaaltype, zaalnaam, res_discipline_key, res_ruimte_key, SUM (bes_uren / 4) bes_uren, SUM (COALESCE (bez_uren, 0)) bez_uren
FROM resztznieoc
--WHERE res_status_fo_key = 1
GROUP BY mnd, zaaltype, zaalnaam, res_discipline_key, res_ruimte_key) x
LEFT JOIN ( SELECT mnd, zaaltype, zaalnaam, SUM (bez_uren) bez_uren
FROM resztznieoc
WHERE res_activiteit_key = 10 AND res_status_fo_key = 1
GROUP BY mnd, zaaltype, zaalnaam) io
ON x.mnd = io.mnd AND x.zaaltype = io.zaaltype AND x.zaalnaam = io.zaalnaam
LEFT JOIN ( SELECT mnd, zaaltype, zaalnaam, SUM (bez_uren) bez_uren
FROM resztznieoc
WHERE res_activiteit_key = 10 AND res_status_fo_key = 2
GROUP BY mnd, zaaltype, zaalnaam) ic
ON x.mnd = ic.mnd AND x.zaaltype = ic.zaaltype AND x.zaalnaam = ic.zaalnaam
LEFT JOIN ( SELECT mnd, zaaltype, zaalnaam, SUM (bez_uren) bez_uren
FROM resztznieoc
WHERE res_activiteit_key = 30 AND res_status_fo_key = 1
GROUP BY mnd, zaaltype, zaalnaam) eo
ON x.mnd = eo.mnd AND x.zaaltype = eo.zaaltype AND x.zaalnaam = eo.zaalnaam
LEFT JOIN ( SELECT mnd, zaaltype, zaalnaam, SUM (bez_uren) bez_uren
FROM resztznieoc
WHERE res_activiteit_key = 30 AND res_status_fo_key = 2
GROUP BY mnd, zaaltype, zaalnaam) ec
ON x.mnd = ec.mnd AND x.zaaltype = ec.zaaltype AND x.zaalnaam = ec.zaalnaam;
CREATE OR REPLACE VIEW sroz_v_rap_res_bezgr3
(
maand, -- Of week?
intern_extern,
gebruiker, -- Vooralsnog Commercieel/Maatschappelijk igv. Extern!
aant_res,
zaalhuur_optie_uren,
zaalhuur_contract_uren,
obj_optie_aant,
obj_contract_aant,
art_optie_aant,
art_contract_aant,
activiteit_key,
gebruiker_key
)
AS
WITH resiegoc -- Per maand/activiteit/gebruiker het aantal geboekte optie- en contract-uren!
AS ( SELECT resbes.mnd,
resbes.res_activiteit_omschrijving,
resbes.gebruiker,
resbes.res_activiteit_key,
resbes.gebruiker_key,
SUM (resbez.aant) aant_res,
SUM (DECODE (resbez.res_status_fo_key, 1, ROUND (resbez.uren, 3), 0)) ou,
SUM (DECODE (resbez.res_status_fo_key, 2, ROUND (resbez.uren, 3), 0)) cu,
SUM (DECODE (objbez.res_status_fo_key, 1, ROUND (objbez.aant, 3), 0)) oobj,
SUM (DECODE (objbez.res_status_fo_key, 2, ROUND (objbez.aant, 3), 0)) cobj,
SUM (DECODE (artbez.res_status_fo_key, 1, ROUND (artbez.aant, 3), 0)) oart,
SUM (DECODE (artbez.res_status_fo_key, 2, ROUND (artbez.aant, 3), 0)) cart
FROM (SELECT DISTINCT TO_CHAR (p.mnd, 'yyyy-mm') mnd,
ra.res_activiteit_key, ra.res_activiteit_omschrijving,
afd.prs_afdeling_key gebruiker_key, afd.prs_afdeling_omschrijving gebruiker
FROM res_v_aanwezigrsv_ruimte rrr, res_activiteit ra, prs_perslid p, prs_afdeling afd,
(SELECT ADD_MONTHS (TRUNC (ADD_MONTHS (SYSDATE, -12), 'yyyy'), LEVEL - 1) mnd FROM DUAL CONNECT BY LEVEL <= 36) p
WHERE rrr.res_activiteit_key = ra.res_activiteit_key
AND ra.res_activiteit_key = 10 -- Intern
AND rrr.res_rsv_ruimte_host_key = p.prs_perslid_key -- Of res_rsv_ruimte_contact_key?
AND p.prs_afdeling_key = afd.prs_afdeling_key
UNION ALL
SELECT DISTINCT TO_CHAR (p.mnd, 'yyyy-mm') mnd,
ra.res_activiteit_key, ra.res_activiteit_omschrijving,
COALESCE (gebr1.fac_usrdata_key, gebr2.fac_usrdata_key) gebruiker_key, COALESCE (gebr1.fac_usrdata_omschr, gebr2.fac_usrdata_omschr, '?') gebruiker
FROM res_v_aanwezigrsv_ruimte rrr, res_activiteit ra, res_v_aanwezigkenmerkwaarde deb, sroz_v_huurders h,
(SELECT b.prs_bedrijf_key deb_key, ud.fac_usrdata_key, ud.fac_usrdata_omschr FROM prs_bedrijf b, (SELECT * FROM prs_v_aanwezigkenmerklink WHERE prs_kenmerk_key = 1000) kl, fac_usrdata ud WHERE b.prs_bedrijf_key = kl.prs_link_key(+) AND fac.safe_to_number (kl.prs_kenmerklink_waarde) = ud.fac_usrdata_key(+)) gebr1,
(SELECT cp.prs_contactpersoon_key deb_key, ud.fac_usrdata_key, ud.fac_usrdata_omschr FROM prs_contactpersoon cp, (SELECT * FROM prs_v_aanwezigkenmerklink WHERE prs_kenmerk_key = 1000) kl, fac_usrdata ud WHERE cp.prs_bedrijf_key = kl.prs_link_key(+) AND fac.safe_to_number (kl.prs_kenmerklink_waarde) = ud.fac_usrdata_key(+)) gebr2,
(SELECT ADD_MONTHS (TRUNC (ADD_MONTHS (SYSDATE, -12), 'yyyy'), LEVEL - 1) mnd FROM DUAL CONNECT BY LEVEL <= 36) p
WHERE rrr.res_activiteit_key = ra.res_activiteit_key
AND rrr.res_activiteit_key = 30 -- Extern
AND deb.res_kenmerk_key = 2 -- Debiteur
AND rrr.res_rsv_ruimte_key = deb.res_rsv_ruimte_key
AND fac.safe_to_number (deb.res_kenmerkreservering_waarde) = h.prs_bedrijf_key
AND h.prs_bedrijf_key = gebr1.deb_key(+)
AND MOD (h.prs_bedrijf_key, 100000000) = gebr2.deb_key(+)) resbes,
( SELECT TO_CHAR (rrr.res_rsv_ruimte_tot, 'yyyy-mm') mnd,
rrr.res_activiteit_key,
p.prs_afdeling_key gebruiker_key,
rrr.res_status_fo_key,
COUNT ( * ) aant,
SUM ((rrr.res_rsv_ruimte_tot - rrr.res_rsv_ruimte_van) * 24) uren
FROM res_v_aanwezigrsv_ruimte rrr, prs_perslid p
WHERE rrr.res_activiteit_key = 10 -- Intern
AND rrr.res_rsv_ruimte_dirtlevel = 0
AND rrr.res_status_fo_key IN (1, 2) -- Optie/Definitief
AND rrr.res_rsv_ruimte_tot BETWEEN TRUNC (ADD_MONTHS (SYSDATE, -12), 'yyyy') AND TRUNC (ADD_MONTHS (SYSDATE, 24), 'yyyy') -- T/m volgend jaar!
--AND TO_CHAR (rrr.res_rsv_ruimte_tot, 'd') BETWEEN '2' AND '6' -- TODO: Alleen werkdagen?
--AND NOT EXISTS (SELECT 1 FROM mld_vrije_dagen WHERE TRUNC (mld_vrije_dagen_datum) = TRUNC (rrr.res_rsv_ruimte_tot)) -- TODO: Alleen werkdagen?
AND rrr.res_rsv_ruimte_host_key = p.prs_perslid_key -- Of res_rsv_ruimte_contact_key?
GROUP BY TO_CHAR (rrr.res_rsv_ruimte_tot, 'yyyy-mm'),
rrr.res_activiteit_key,
p.prs_afdeling_key,
rrr.res_status_fo_key
UNION ALL
SELECT TO_CHAR (rrr.res_rsv_ruimte_tot, 'yyyy-mm') mnd,
rrr.res_activiteit_key,
COALESCE (gebr1.fac_usrdata_key, gebr2.fac_usrdata_key) gebruiker_key,
rrr.res_status_fo_key,
COUNT ( * ) aant,
SUM ((rrr.res_rsv_ruimte_tot - rrr.res_rsv_ruimte_van) * 24) uren
FROM res_v_aanwezigrsv_ruimte rrr, res_v_aanwezigkenmerkwaarde deb, sroz_v_huurders h,
(SELECT b.prs_bedrijf_key deb_key, ud.fac_usrdata_key, ud.fac_usrdata_omschr FROM prs_bedrijf b, (SELECT * FROM prs_v_aanwezigkenmerklink WHERE prs_kenmerk_key = 1000) kl, fac_usrdata ud WHERE b.prs_bedrijf_key = kl.prs_link_key(+) AND fac.safe_to_number (kl.prs_kenmerklink_waarde) = ud.fac_usrdata_key(+)) gebr1,
(SELECT cp.prs_contactpersoon_key deb_key, ud.fac_usrdata_key, ud.fac_usrdata_omschr FROM prs_contactpersoon cp, (SELECT * FROM prs_v_aanwezigkenmerklink WHERE prs_kenmerk_key = 1000) kl, fac_usrdata ud WHERE cp.prs_bedrijf_key = kl.prs_link_key(+) AND fac.safe_to_number (kl.prs_kenmerklink_waarde) = ud.fac_usrdata_key(+)) gebr2
WHERE rrr.res_activiteit_key = 30 -- Extern
AND rrr.res_rsv_ruimte_dirtlevel = 0
AND rrr.res_status_fo_key IN (1, 2) -- Optie/Definitief
AND rrr.res_rsv_ruimte_tot BETWEEN TRUNC (ADD_MONTHS (SYSDATE, -12), 'yyyy') AND TRUNC (ADD_MONTHS (SYSDATE, 24), 'yyyy') -- T/m volgend jaar!
--AND TO_CHAR (rrr.res_rsv_ruimte_tot, 'd') BETWEEN '2' AND '6' -- TODO: Alleen werkdagen?
--AND NOT EXISTS (SELECT 1 FROM mld_vrije_dagen WHERE TRUNC (mld_vrije_dagen_datum) = TRUNC (rrr.res_rsv_ruimte_tot)) -- TODO: Alleen werkdagen?
AND deb.res_kenmerk_key = 2 -- Debiteur
AND rrr.res_rsv_ruimte_key = deb.res_rsv_ruimte_key
AND fac.safe_to_number (deb.res_kenmerkreservering_waarde) = h.prs_bedrijf_key
AND h.prs_bedrijf_key = gebr1.deb_key(+)
AND MOD (h.prs_bedrijf_key, 100000000) = gebr2.deb_key(+)
GROUP BY TO_CHAR (rrr.res_rsv_ruimte_tot, 'yyyy-mm'),
rrr.res_activiteit_key,
COALESCE (gebr1.fac_usrdata_key, gebr2.fac_usrdata_key),
rrr.res_status_fo_key) resbez,
( SELECT TO_CHAR (rrr.res_rsv_ruimte_tot, 'yyyy-mm') mnd,
rrr.res_activiteit_key,
p.prs_afdeling_key gebruiker_key,
rrr.res_status_fo_key,
SUM (obj.aant) aant
FROM res_v_aanwezigrsv_ruimte rrr, prs_perslid p,
(SELECT rrd.res_rsv_ruimte_key, rrd.res_rsv_deel_aantal aant
FROM res_v_aanwezigrsv_deel rrd
UNION ALL
SELECT rra.res_rsv_ruimte_key, rra.res_rsv_artikel_aantal aant
FROM res_v_aanwezigrsv_artikel rra
WHERE EXISTS (SELECT 1 FROM res_artikel WHERE res_artikel_key = rra.res_artikel_key AND res_discipline_key = 52)) obj
WHERE rrr.res_activiteit_key = 10 -- Intern
AND rrr.res_rsv_ruimte_dirtlevel = 0
AND rrr.res_status_fo_key IN (1, 2) -- Optie/Definitief
AND rrr.res_rsv_ruimte_tot BETWEEN TRUNC (ADD_MONTHS (SYSDATE, -12), 'yyyy') AND TRUNC (ADD_MONTHS (SYSDATE, 24), 'yyyy') -- T/m volgend jaar!
--AND TO_CHAR (rrr.res_rsv_ruimte_tot, 'd') BETWEEN '2' AND '6' -- TODO: Alleen werkdagen?
--AND NOT EXISTS (SELECT 1 FROM mld_vrije_dagen WHERE TRUNC (mld_vrije_dagen_datum) = TRUNC (rrr.res_rsv_ruimte_tot)) -- TODO: Alleen werkdagen?
AND rrr.res_rsv_ruimte_host_key = p.prs_perslid_key -- Of res_rsv_ruimte_contact_key?
AND rrr.res_rsv_ruimte_key = obj.res_rsv_ruimte_key
GROUP BY TO_CHAR (rrr.res_rsv_ruimte_tot, 'yyyy-mm'),
rrr.res_activiteit_key,
p.prs_afdeling_key,
rrr.res_status_fo_key
UNION ALL
SELECT TO_CHAR (rrr.res_rsv_ruimte_tot, 'yyyy-mm') mnd,
rrr.res_activiteit_key,
COALESCE (gebr1.fac_usrdata_key, gebr2.fac_usrdata_key) gebruiker_key,
rrr.res_status_fo_key,
SUM (obj.aant) aant
FROM res_v_aanwezigrsv_ruimte rrr, res_v_aanwezigkenmerkwaarde deb, sroz_v_huurders h,
(SELECT b.prs_bedrijf_key deb_key, ud.fac_usrdata_key, ud.fac_usrdata_omschr FROM prs_bedrijf b, (SELECT * FROM prs_v_aanwezigkenmerklink WHERE prs_kenmerk_key = 1000) kl, fac_usrdata ud WHERE b.prs_bedrijf_key = kl.prs_link_key(+) AND fac.safe_to_number (kl.prs_kenmerklink_waarde) = ud.fac_usrdata_key(+)) gebr1,
(SELECT cp.prs_contactpersoon_key deb_key, ud.fac_usrdata_key, ud.fac_usrdata_omschr FROM prs_contactpersoon cp, (SELECT * FROM prs_v_aanwezigkenmerklink WHERE prs_kenmerk_key = 1000) kl, fac_usrdata ud WHERE cp.prs_bedrijf_key = kl.prs_link_key(+) AND fac.safe_to_number (kl.prs_kenmerklink_waarde) = ud.fac_usrdata_key(+)) gebr2,
(SELECT rrd.res_rsv_ruimte_key, rrd.res_rsv_deel_aantal aant
FROM res_v_aanwezigrsv_deel rrd
UNION ALL
SELECT rra.res_rsv_ruimte_key, rra.res_rsv_artikel_aantal aant
FROM res_v_aanwezigrsv_artikel rra
WHERE EXISTS (SELECT 1 FROM res_artikel WHERE res_artikel_key = rra.res_artikel_key AND res_discipline_key = 52)) obj
WHERE rrr.res_activiteit_key = 30 -- Extern
AND rrr.res_rsv_ruimte_dirtlevel = 0
AND rrr.res_status_fo_key IN (1, 2) -- Optie/Definitief
AND rrr.res_rsv_ruimte_tot BETWEEN TRUNC (ADD_MONTHS (SYSDATE, -12), 'yyyy') AND TRUNC (ADD_MONTHS (SYSDATE, 24), 'yyyy') -- T/m volgend jaar!
--AND TO_CHAR (rrr.res_rsv_ruimte_tot, 'd') BETWEEN '2' AND '6' -- TODO: Alleen werkdagen?
--AND NOT EXISTS (SELECT 1 FROM mld_vrije_dagen WHERE TRUNC (mld_vrije_dagen_datum) = TRUNC (rrr.res_rsv_ruimte_tot)) -- TODO: Alleen werkdagen?
AND deb.res_kenmerk_key = 2 -- Debiteur
AND rrr.res_rsv_ruimte_key = deb.res_rsv_ruimte_key
AND fac.safe_to_number (deb.res_kenmerkreservering_waarde) = h.prs_bedrijf_key
AND h.prs_bedrijf_key = gebr1.deb_key(+)
AND MOD (h.prs_bedrijf_key, 100000000) = gebr2.deb_key(+)
AND rrr.res_rsv_ruimte_key = obj.res_rsv_ruimte_key
GROUP BY TO_CHAR (rrr.res_rsv_ruimte_tot, 'yyyy-mm'),
rrr.res_activiteit_key,
COALESCE (gebr1.fac_usrdata_key, gebr2.fac_usrdata_key),
rrr.res_status_fo_key) objbez,
( SELECT TO_CHAR (rrr.res_rsv_ruimte_tot, 'yyyy-mm') mnd,
rrr.res_activiteit_key,
p.prs_afdeling_key gebruiker_key,
rrr.res_status_fo_key,
SUM (art.res_rsv_artikel_aantal) aant
FROM res_v_aanwezigrsv_ruimte rrr, prs_perslid p,
(SELECT *
FROM res_v_aanwezigrsv_artikel rra
WHERE EXISTS (SELECT 1 FROM res_artikel WHERE res_artikel_key = rra.res_artikel_key AND res_discipline_key != 52)) art
WHERE rrr.res_activiteit_key = 10 -- Intern
AND rrr.res_rsv_ruimte_dirtlevel = 0
AND rrr.res_status_fo_key IN (1, 2) -- Optie/Definitief
AND rrr.res_rsv_ruimte_tot BETWEEN TRUNC (ADD_MONTHS (SYSDATE, -12), 'yyyy') AND TRUNC (ADD_MONTHS (SYSDATE, 24), 'yyyy') -- T/m volgend jaar!
--AND TO_CHAR (rrr.res_rsv_ruimte_tot, 'd') BETWEEN '2' AND '6' -- TODO: Alleen werkdagen?
--AND NOT EXISTS (SELECT 1 FROM mld_vrije_dagen WHERE TRUNC (mld_vrije_dagen_datum) = TRUNC (rrr.res_rsv_ruimte_tot)) -- TODO: Alleen werkdagen?
AND rrr.res_rsv_ruimte_host_key = p.prs_perslid_key -- Of res_rsv_ruimte_contact_key?
AND rrr.res_rsv_ruimte_key = art.res_rsv_ruimte_key
GROUP BY TO_CHAR (rrr.res_rsv_ruimte_tot, 'yyyy-mm'),
rrr.res_activiteit_key,
p.prs_afdeling_key,
rrr.res_status_fo_key
UNION ALL
SELECT TO_CHAR (rrr.res_rsv_ruimte_tot, 'yyyy-mm') mnd,
rrr.res_activiteit_key,
COALESCE (gebr1.fac_usrdata_key, gebr2.fac_usrdata_key) gebruiker_key,
rrr.res_status_fo_key,
SUM (art.res_rsv_artikel_aantal) aant
FROM res_v_aanwezigrsv_ruimte rrr, res_v_aanwezigkenmerkwaarde deb, sroz_v_huurders h,
(SELECT b.prs_bedrijf_key deb_key, ud.fac_usrdata_key, ud.fac_usrdata_omschr FROM prs_bedrijf b, (SELECT * FROM prs_v_aanwezigkenmerklink WHERE prs_kenmerk_key = 1000) kl, fac_usrdata ud WHERE b.prs_bedrijf_key = kl.prs_link_key(+) AND fac.safe_to_number (kl.prs_kenmerklink_waarde) = ud.fac_usrdata_key(+)) gebr1,
(SELECT cp.prs_contactpersoon_key deb_key, ud.fac_usrdata_key, ud.fac_usrdata_omschr FROM prs_contactpersoon cp, (SELECT * FROM prs_v_aanwezigkenmerklink WHERE prs_kenmerk_key = 1000) kl, fac_usrdata ud WHERE cp.prs_bedrijf_key = kl.prs_link_key(+) AND fac.safe_to_number (kl.prs_kenmerklink_waarde) = ud.fac_usrdata_key(+)) gebr2,
(SELECT *
FROM res_v_aanwezigrsv_artikel rra
WHERE EXISTS (SELECT 1 FROM res_artikel WHERE res_artikel_key = rra.res_artikel_key AND res_discipline_key != 52)) art
WHERE rrr.res_activiteit_key = 30 -- Extern
AND rrr.res_rsv_ruimte_dirtlevel = 0
AND rrr.res_status_fo_key IN (1, 2) -- Optie/Definitief
AND rrr.res_rsv_ruimte_tot BETWEEN TRUNC (ADD_MONTHS (SYSDATE, -12), 'yyyy') AND TRUNC (ADD_MONTHS (SYSDATE, 24), 'yyyy') -- T/m volgend jaar!
--AND TO_CHAR (rrr.res_rsv_ruimte_tot, 'd') BETWEEN '2' AND '6' -- TODO: Alleen werkdagen?
--AND NOT EXISTS (SELECT 1 FROM mld_vrije_dagen WHERE TRUNC (mld_vrije_dagen_datum) = TRUNC (rrr.res_rsv_ruimte_tot)) -- TODO: Alleen werkdagen?
AND deb.res_kenmerk_key = 2 -- Debiteur
AND rrr.res_rsv_ruimte_key = deb.res_rsv_ruimte_key
AND fac.safe_to_number (deb.res_kenmerkreservering_waarde) = h.prs_bedrijf_key
AND h.prs_bedrijf_key = gebr1.deb_key(+)
AND MOD (h.prs_bedrijf_key, 100000000) = gebr2.deb_key(+)
AND rrr.res_rsv_ruimte_key = art.res_rsv_ruimte_key
GROUP BY TO_CHAR (rrr.res_rsv_ruimte_tot, 'yyyy-mm'),
rrr.res_activiteit_key,
COALESCE (gebr1.fac_usrdata_key, gebr2.fac_usrdata_key),
rrr.res_status_fo_key) artbez
WHERE resbes.mnd = resbez.mnd(+)
AND resbes.res_activiteit_key = resbez.res_activiteit_key(+)
AND resbes.gebruiker_key = resbez.gebruiker_key(+)
AND resbes.mnd = objbez.mnd(+)
AND resbes.res_activiteit_key = objbez.res_activiteit_key(+)
AND resbes.gebruiker_key = objbez.gebruiker_key(+)
AND resbes.mnd = artbez.mnd(+)
AND resbes.res_activiteit_key = artbez.res_activiteit_key(+)
AND resbes.gebruiker_key = artbez.gebruiker_key(+)
--AND COALESCE (resbez.uren, 1) > 0 -- Soms 0 of zelfs negatief bij vreemde/gelijke begin- en eindtijden (van res_rsv_ruimte/deel)!
GROUP BY resbes.mnd,
resbes.res_activiteit_omschrijving,
resbes.gebruiker,
resbes.res_activiteit_key,
resbes.gebruiker_key)
SELECT mnd, res_activiteit_omschrijving, gebruiker,
COALESCE (aant_res, 0),
COALESCE (ou, 0),
COALESCE (cu, 0),
COALESCE (oobj, 0),
COALESCE (cobj, 0),
COALESCE (oart, 0),
COALESCE (cart, 0),
res_activiteit_key,
gebruiker_key
FROM resiegoc;
------ 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