-- -- $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; COLUMN fcltcusttxt NEW_VALUE fcltcusttxt NOPRINT; WHENEVER SQLERROR CONTINUE; SELECT adm.getscriptspoolfile('&thisfile') AS fcltlogfile FROM DUAL; SPOOL &fcltlogfile WHENEVER SQLERROR EXIT; SELECT adm.checkscriptcust('&dbuser') AS fcltcusttxt FROM DUAL; WHENEVER SQLERROR CONTINUE; --------------------------------------- PROMPT &fcltcusttxt --------------------------------------- SET DEFINE OFF ------ payload begin ------ 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éé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één afgesproken prijs! AND rrr.res_rsv_ruimte_totaal IS NULL -- Géé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éé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_rsv_ruimte_totaal IS NOT NULL -- 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éé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- é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- é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) AND 24 * (rrd.res_rsv_deel_tot - rrd.res_rsv_deel_van) > 0) x -- Zou zo moeten zijn!? 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 COALESCE (export2afas_key, 161) = 161 -- Ja of leeg (zodra afgemeld+gecontroleerd) 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 > TO_DATE ('01-01-2023', 'dd-mm-yyyy') AND res_rsv_ruimte_van < TRUNC (SYSDATE, 'iw') AND res_status_bo_key != 6 -- Niet AV --AND COALESCE (export2afas_key, 161) = 161 -- Ja of leeg (zodra afgemeld+gecontroleerd) 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? -- SROZ#85316: Tonen wat verwerkt is en afgemeld+gecontroleerd op ja of leeg! 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, CASE -- SROZ#76265: Alles op 1 per export op 02-03-2023! WHEN fac.gettrackingdate ('RESVER', res_rsv_ruimte_key) > TO_DATE ('02-03-2023', 'dd-mm-yyyy') THEN '1' -- 1=Stichting Rozet ELSE administratie END 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) AND COALESCE (export2afas_key, 161) = 161 -- Ja of leeg (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, CASE -- SROZ#76265: Alles op 1 per export op 02-03-2023! WHEN fac.gettrackingdate ('RESVER', res_rsv_ruimte_key) > TO_DATE ('02-03-2023', 'dd-mm-yyyy') THEN '1' -- 1=Stichting Rozet ELSE administratie END, 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 woensdagen! SELECT 'reserveringsnummer' || ';debiteur' || ';vandatum' || ';totdatum' || ';omschrijving' || ';aantal' || ';artikelomschrijving' || ';artikelprijs' || ';btw' || ';debiteurreferentie' || ';administratie' || ';kostenplaats' || ';codercvm' || ';contactpersoon', 0 FROM DUAL WHERE TO_CHAR (SYSDATE, 'd') = '4' -- Per SROZ#89074 op woensdag 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') AND artikelprijs != 0 ORDER BY hide_f_sortering) WHERE TO_CHAR (SYSDATE, 'd') = '4' -- Per SROZ#89074 op woensdag ; 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ë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 > TO_DATE ('01-01-2023', 'dd-mm-yyyy') AND res_rsv_ruimte_van < TRUNC (SYSDATE, 'iw') AND res_status_bo_key != 6 -- Niet AV --AND ((COALESCE (export2afas_key, 161) = 161 AND controleur IS NOT NULL) -- Ja of leeg (zodra afgemeld+gecontroleerd) 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 - per SROZ#89074 - alleen in de nacht na dinsdag -- doorgezet. IF TO_CHAR (SYSDATE, 'd') = '4' 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 é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, TO_CHAR(SUBSTR(mld_melding_omschrijving,1,4000)) 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, 461) 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, 461) 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, 541) -- SROZ#60166+SROZ#71251: Koffie- en theekar Rozet (Extra) 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, 541) -- SROZ#60166+SROZ#71251: Koffie- en theekar Rozet (Extra) 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, 461) 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+SROZ#71251: 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, 541)) -- SROZ#60166+SROZ#71251: Koffie- en theekar Rozet (Extra) 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. -- SROZ#71881: Verbruiksartikelen-catalogus 52=Meubels negeren in rapportage. 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, 52) 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- é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éé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éé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éé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éé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éé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- é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éé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- é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 24 * (rrd.res_rsv_deel_tot - rrd.res_rsv_deel_van) > 0) x -- Zou zo moeten zijn!? 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 – Omzet zaalhuur per maand/tarief (of week?) met de 4 kolommen als in Afbeelding 1 -- O2 – Omzet per maand/zaaltype met de 8 kolommen als in Afbeelding 1 -- O3 – Omzet per maand/artikelcatalogus met de 4 kolommen als in Afbeelding 1 -- O4 – Omzet per maand/intern of extern/team of doelgroep met de 6 kolommen als in Afbeelding 1 -- O5 – 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 – Bezetting per maand/zaaltype met de 6 kolommen als in Afbeelding 2 en doorklikbaar naar B2 -- B2 – Bezetting per maand/zaaltype/zaal met de 6 kolommen als in Afbeelding 2 -- B3 – 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