#ifdef  RES // 07-12-99 BIV
/*
 * $Revision$
 * $Id$
 */


CREATE_VIEW(RES_DISCIPLINE, 0) AS
  SELECT * FROM INS_TAB_DISCIPLINE
   WHERE INS_DISCIPLINE_MODULE = 'RES';

CREATE_VIEW(RES_V_AANWEZIGDISCIPLINE, 0) AS
  SELECT * FROM RES_DISCIPLINE
   WHERE INS_DISCIPLINE_VERWIJDER IS NULL;

/* LET OP (FSN#21553)
 * Deze view lijkt qua naam een tabel, maar is het technisch niet
 * Hij levert de statustekst in de juiste taal op, van een specifieke statuscode
 * Voorheen was dit een tabel met deze naam, en werd deze initieel gevuld. Dit is
 * hiermee dus vanwege de i18n veranderd.
 */
CREATE_VIEW(res_status_bo, 0)
AS
SELECT   fac_code2label_code res_status_bo_key,
         COALESCE (fac_locale_xsl_cust, fac_locale_xsl_tekst) res_status_bo_omschrijving
  FROM   fac_locale_xsl fl, fac_code2label fs
 WHERE       fl.fac_locale_xsl_label = fac_code2label_label
         AND fac_code2label_domein = 'reservering'
         AND fac_locale_xsl_lang = lcl.getuserlanguage ();

CREATE_VIEW(res_status_fo, 0)
AS
SELECT   fac_code2label_code res_status_fo_key,
         COALESCE (fac_locale_xsl_cust, fac_locale_xsl_tekst) res_status_fo_omschrijving
  FROM   fac_locale_xsl fl, fac_code2label fs
 WHERE       fl.fac_locale_xsl_label = fac_code2label_label
         AND fac_code2label_domein = 'resfostatus'
         AND fac_locale_xsl_lang = lcl.getuserlanguage ();


DEFINIEER_VIEW_AANWEZIG(res_reservering, res_reservering_verwijder,
    res_v_aanwezigreservering,0);

DEFINIEER_VIEW_AANWEZIG(res_rsv_ruimte, res_rsv_ruimte_verwijder,
    res_v_aanwezigrsv_ruimte,0);

DEFINIEER_VIEW_AANWEZIG(res_opstelling, res_opstelling_verwijder,
    res_v_aanwezigopstelling,0);

DEFINIEER_VIEW_AANWEZIG(res_ruimte, res_ruimte_verwijder,
    res_v_aanwezigruimte,0);

DEFINIEER_VIEW_AANWEZIG(res_artikel, res_artikel_verwijder,
    res_v_aanwezigartikel, 0);

DEFINIEER_VIEW_AANWEZIG(res_deel, res_deel_verwijder,
    res_v_aanwezigdeel, 0);

DEFINIEER_VIEW_AANWEZIG(res_rsv_artikel, res_rsv_artikel_verwijder,
    res_v_aanwezigrsv_artikel, 0);

DEFINIEER_VIEW_AANWEZIG(res_rsv_deel, res_rsv_deel_verwijder,
    res_v_aanwezigrsv_deel, 0);

DEFINIEER_VIEW_AANWEZIG(res_alg_ruimte, res_alg_ruimte_verwijder,
    res_v_aanwezigalg_ruimte, 0);

CREATE_VIEW(res_v_aanwezigins_deel, 0)
        (res_deel_key,
         ins_deel_key) AS
  SELECT res_deel_key,
         res_ins_deel_key
    FROM res_deel
   WHERE res_deel_verwijder IS NULL;

CREATE_VIEW(res_v_res_ruimte_gegevens_all, 0)
     ( alg_regio_key,
       alg_district_key,
       alg_locatie_key,
       alg_gebouw_key,
       alg_verdieping_key,
       res_ruimte_key,
       res_ruimte_nr,
       res_ruimte_volgnummer,
       res_ruimte_prijs,
       bez_actie_key,
       res_discipline_key,
       res_ruimte_extern_id,
       alg_ruimte_verwijder,
       res_ruimte_verwijder,
       res_alg_ruimte_verwijder
 ) AS
SELECT DISTINCT
       ALG_D.alg_regio_key
,      ALG_D.alg_district_key
,      ALG_L.alg_locatie_key
,      ALG_G.alg_gebouw_key
,      ALG_V.alg_verdieping_key
,      RES_R.res_ruimte_key
,      RES_R.res_ruimte_nr
,      RES_R.res_ruimte_volgnummer
,      RES_R.res_ruimte_prijs
,      RES_R.bez_actie_key
,      RES_R.res_discipline_key
,      RES_R.res_ruimte_extern_id
,      alg_ruimte_verwijder
,      res_ruimte_verwijder
,      res_alg_ruimte_verwijder
FROM   ALG_DISTRICT         ALG_D
,      ALG_LOCATIE          ALG_L
,      ALG_GEBOUW           ALG_G
,      ALG_VERDIEPING       ALG_V
,      alg_ruimte           ALG_R
,      res_ruimte           RES_R
,      RES_ALG_RUIMTE       RES_RA
WHERE  RES_R.res_ruimte_key     = RES_RA.res_ruimte_key
AND    ALG_R.alg_ruimte_key     = RES_RA.alg_ruimte_key
AND    ALG_R.alg_verdieping_key = ALG_V.alg_verdieping_key
AND    ALG_V.alg_gebouw_key     = ALG_G.alg_gebouw_key
AND    ALG_G.alg_locatie_key    = ALG_L.alg_locatie_key
AND    ALG_L.alg_district_key   = ALG_D.alg_district_key;
/

CREATE_VIEW(res_v_res_ruimte_gegevens,0) AS
SELECT * FROM res_v_res_ruimte_gegevens_all
  WHERE alg_ruimte_verwijder IS NULL
    AND res_ruimte_verwijder IS NULL
    AND res_alg_ruimte_verwijder IS NULL;
/


CREATE_VIEW(res_v_alg_ruimte_gegevens,0)
        (alg_locatie_key,
         alg_gebouw_key,
         alg_verdieping_key,
         alg_ruimte_key,
         alg_ruimte_aanduiding,
         res_ruimte_key,
         res_ruimte_nr,
         res_alg_ruimte_key) AS
  SELECT ALG_L.alg_locatie_key,
         ALG_G.alg_gebouw_key,
         ALG_V.alg_verdieping_key,
         ALG_R.alg_ruimte_key,
         ALG_L.alg_locatie_code           ||' - '||
         ALG_G.alg_gebouw_code            ||' - '||
         ALG_V.alg_verdieping_code        ||' - '||
         ALG_R.alg_ruimte_nr,
         RES_R.res_ruimte_key,
         RES_R.res_ruimte_nr,
         RES_RA.res_alg_ruimte_key
    FROM alg_locatie ALG_L, alg_gebouw ALG_G, alg_verdieping ALG_V, alg_v_aanwezigruimte ALG_R,
         res_v_aanwezigruimte RES_R, res_v_aanwezigalg_ruimte RES_RA
   WHERE RES_R.res_ruimte_key = RES_RA.res_ruimte_key
     AND ALG_R.alg_ruimte_key = RES_RA.alg_ruimte_key
     AND ALG_R.alg_verdieping_key = ALG_V.alg_verdieping_key
     AND ALG_V.alg_gebouw_key = ALG_G.alg_gebouw_key
     AND ALG_G.alg_locatie_key = ALG_L.alg_locatie_key
UNION
  SELECT ALG_L.alg_locatie_key,
         ALG_G.alg_gebouw_key,
         ALG_V.alg_verdieping_key,
         ALG_R.alg_ruimte_key,
         ALG_L.alg_locatie_code                || ' - ' ||
         ALG_G.alg_gebouw_code                 || ' - ' ||
         ALG_V.alg_verdieping_code             || ' - ' ||
         ALG_R.alg_ruimte_nr,
         TO_NUMBER(NULL),
         NULL,
         TO_NUMBER(NULL)
    FROM alg_locatie ALG_L, alg_gebouw ALG_G, alg_verdieping ALG_V,
         alg_v_aanwezigruimte ALG_R
   WHERE ALG_R.alg_verdieping_key = ALG_V.alg_verdieping_key
     AND ALG_V.alg_gebouw_key = ALG_G.alg_gebouw_key
     AND ALG_G.alg_locatie_key = ALG_L.alg_locatie_key
-- When excluded catering ordered on ALG_RUIMTE which happened to be part of RES_RUIMTE
-- would not show on BO-list
--     AND ALG_R.alg_ruimte_key NOT IN
--        (SELECT alg_ruimte_key
--           FROM res_v_aanwezigalg_ruimte RES_RA)
/

CREATE_VIEW(res_v_rsv_ruimte_2_alg_ruimte,0) AS
SELECT
  r.res_reservering_key,
  r.res_rsv_ruimte_key,
  r.res_ruimte_opstel_key,
  ro.res_ruimte_key,
  ra.alg_ruimte_key,
  r.res_rsv_ruimte_van,
  r.res_rsv_ruimte_tot,
  r.res_status_fo_key,
  rac.res_activiteit_posttime,
  ra.res_alg_ruimte_verwijder,
  r.res_rsv_ruimte_dirtlevel
FROM
  res_rsv_ruimte r,
  res_ruimte_opstelling ro,
  res_ruimte rr,
  res_alg_ruimte ra,
  res_activiteit rac
WHERE
  r.res_rsv_ruimte_verwijder IS NULL AND
  r.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 AND
  r.res_activiteit_key = rac.res_activiteit_key;
/

CREATE_VIEW(res_v_reserveringruimte_geg, 0) AS
   SELECT rr.res_reservering_key, rr2.res_rsv_ruimte_opmerking,
          rr2.res_rsv_ruimte_omschrijving, k.prs_kostenplaats_nr res_rsv_ruimte_ordernr, rr2.res_rsv_ruimte_telefoon,
          rr2.res_rsv_ruimte_aanmaak, rr2.res_rsv_ruimte_verwijder, rr2.res_rsv_ruimte_contact_key,
          rr2.res_rsv_ruimte_host_key, rr.res_ruimte_key, rr.alg_ruimte_key, k.prs_kostenplaats_nr
     FROM res_v_rsv_ruimte_2_alg_ruimte rr, prs_kostenplaats k, res_rsv_ruimte rr2
    WHERE k.prs_kostenplaats_key = rr2.prs_kostenplaats_key AND rr2.res_rsv_ruimte_key = rr.res_rsv_ruimte_key;

CREATE_VIEW(res_v_ruimte_opstel_gegevens,0) AS
  SELECT RES_RO.res_ruimte_opstel_key,
         RES_R.res_ruimte_key,
         RES_R.res_ruimte_nr,
         RES_R.res_ruimte_upper,
         RES_O.res_opstelling_key,
         RES_O.res_opstelling_omschrijving,
         RES_RO.res_ruimte_opstel_bezoekers
    FROM res_v_aanwezigruimte RES_R, res_v_aanwezigopstelling RES_O,
         res_ruimte_opstelling RES_RO
   WHERE RES_R.res_ruimte_key = RES_RO.res_ruimte_key
     AND RES_O.res_opstelling_key = RES_RO.res_opstelling_key;



CREATE_VIEW(res_v_ins_deel,0)
   (      ins_discipline_key
   ,      ins_srtgroep_key
   ,      ins_srtdeel_key
   ,      ins_srtdeel_omschrijving
   ,      alg_locatie_key
   ,      alg_gebouw_key
   ,      alg_verdieping_key
   ,      alg_ruimte_key
   ,      prs_werkplek_key
   ,      alg_terreinsector_key
   ,      alg_plaatsaanduiding
   ,      ins_deel_key
   ,      res_deel_omschrijving
   ,      res_deel_key
   ,      res_deel_eenheid
   ,      res_deel_prijs
   ,      res_deel_reserveerbaar
   )
AS SELECT INS_DI.ins_discipline_key
   ,      INS_SG.ins_srtgroep_key
   ,      INS_SD.ins_srtdeel_key
   ,      INS_SD.ins_srtdeel_code||' - '||INS_SD.ins_srtdeel_omschrijving
   ,      INS_DE.ins_alg_locatie_key
   ,      INS_AO.alg_gebouw_key
   ,      INS_AO.alg_verdieping_key
   ,      INS_AO.alg_ruimte_key
   ,      INS_AO.prs_werkplek_key
   ,      INS_AO.alg_terreinsector_key
   ,      INS_AO.alg_plaatsaanduiding
   ,      INS_DE.ins_deel_key
   ,      RES_DE.res_deel_omschrijving
   ,      RES_DE.res_deel_key
   ,      RES_DE.res_deel_eenheid
   ,      RES_DE.res_deel_prijs
   ,      decode(RES_DE.res_deel_key,null,0,1)
   FROM   ins_v_aanwezigdeel  INS_DE
   ,      ins_tab_discipline  INS_DI
   ,      ins_v_alg_overzicht INS_AO
   ,      ins_srtdeel         INS_SD
   ,      ins_srtgroep        INS_SG
   ,      res_v_aanwezigdeel  RES_DE
   WHERE  INS_DE.ins_deel_key           = RES_DE.res_ins_deel_key (+)
   AND    INS_DE.ins_deel_module        = 'INS'
   AND    INS_DE.ins_deel_parent_key   IS NULL
   AND    INS_AO.alg_onroerendgoed_keys = INS_DE.ins_alg_ruimte_key
   AND    INS_AO.alg_onroerendgoed_type = INS_DE.ins_alg_ruimte_type
   AND    INS_AO.alg_locatie_key        = INS_DE.ins_alg_locatie_key
   AND    INS_SD.ins_srtdeel_key        = INS_DE.ins_srtdeel_key
   AND    INS_SG.ins_srtgroep_key       = INS_SD.ins_srtgroep_key
   AND    INS_DI.ins_discipline_key     = INS_DE.ins_discipline_key
   AND    INS_DE.ins_discipline_key IN (SELECT ins_discipline_key FROM ins_discipline);
/

CREATE_VIEW(res_v_aanwezig_deel_artikel, 0)
   (      res_deel_key
   ,      res_artikel_key
   ,      res_deel_artikel_prijs
   ,      res_deel_artikel_naam
   ,      res_deel_artikel_eenheid)
AS SELECT R.res_deel_key
   ,      to_number(null)
   ,      R.res_deel_prijs
   ,      substr((S.ins_srtdeel_omschrijving ||' '|| R.res_deel_omschrijving),1,50)
   ,      R.res_deel_eenheid
   FROM   res_v_aanwezigdeel R
   ,      ins_deel           D
   ,      ins_srtdeel        S
   WHERE  R.res_ins_deel_key = D.ins_deel_key
   AND    D.ins_srtdeel_key  = S.ins_srtdeel_key
   UNION
   SELECT to_number(null)
   ,      res_artikel_key
   ,      res_artikel_prijs
   ,      res_artikel_omschrijving
   ,      res_artikel_eenheid
   FROM   res_v_aanwezigartikel;

CREATE_VIEW(res_v_aanwezig_rsv_deelartikel, 0)
 (res_rsv_deel_key,
  res_rsv_artikel_key,
  res_reservering_key,
  res_deel_key,
  res_artikel_key,
  res_deel_artikel_omschrijving,
  res_deel_artikel_eenheid,
  res_deel_artikel_prijs,
  res_deel_artikel_aantal,
  res_deel_artikel_levering
 )
AS
   SELECT r.res_rsv_deel_key, TO_NUMBER (NULL), rr.res_reservering_key, r.res_deel_key, TO_NUMBER (NULL),
          SUBSTR ((s.ins_srtdeel_omschrijving || ' ' || d.res_deel_omschrijving), 1, 50), d.res_deel_eenheid,
          d.res_deel_prijs, r.res_rsv_deel_aantal, to_date(NULL)
     FROM res_rsv_deel r, res_v_aanwezigdeel d, ins_v_aanwezigdeel i, ins_srtdeel s, res_rsv_ruimte rr
    WHERE d.res_deel_key = r.res_deel_key
      AND d.res_ins_deel_key = i.ins_deel_key
      AND i.ins_srtdeel_key = s.ins_srtdeel_key
      AND r.res_rsv_deel_verwijder IS NULL
      AND rr.res_rsv_ruimte_key = r.res_rsv_ruimte_key
   UNION
   SELECT TO_NUMBER (NULL), r.res_rsv_artikel_key, rr.res_reservering_key, TO_NUMBER (NULL), r.res_artikel_key,
          a.res_artikel_omschrijving, a.res_artikel_eenheid, a.res_artikel_prijs, r.res_rsv_artikel_aantal,
          r.res_rsv_artikel_levering
     FROM res_rsv_artikel r, res_v_aanwezigartikel a, res_rsv_ruimte rr
    WHERE a.res_artikel_key = r.res_artikel_key
      AND r.res_rsv_artikel_verwijder IS NULL
      AND rr.res_rsv_ruimte_key = r.res_rsv_ruimte_key;

DEFINIEER_VIEW_AANWEZIG(res_kenmerkwaarde, res_kenmerkwaarde_verwijder,
res_v_aanwezigkenmerkwaarde, 0);

CREATE_VIEW(res_v_res_catalogus, 0)
AS SELECT *
FROM   INS_TAB_DISCIPLINE
WHERE  ins_discipline_module = 'RES'
AND    ins_discipline_min_level IN (1,2,3);


-- View levert op in welke alg_ruimtes uit een bepaalde catalogus besteld mag worden
CREATE_VIEW(res_v_srtartikel_onrgoed, 0)
     ( alg_ruimte_key,
       res_discipline_key,
       alg_onrgoed_niveau) AS
   SELECT ra.alg_ruimte_key, res_discipline_key, alg_onrgoed_niveau
     FROM res_srtartikel_onrgoed og,
          alg_ruimte ra,
          alg_verdieping rv,
          alg_gebouw rg
    WHERE og.alg_onrgoed_key = rg.alg_locatie_key
      AND ra.alg_verdieping_key = rv.alg_verdieping_key
      AND rv.alg_gebouw_key = rg.alg_gebouw_key
      AND og.alg_onrgoed_niveau = 'L'
      AND res_srtartikel_og_verwijder IS NULL
      AND alg_ruimte_key IS NOT NULL
   UNION
   SELECT ra.alg_ruimte_key, res_discipline_key, alg_onrgoed_niveau
     FROM res_srtartikel_onrgoed og, alg_ruimte ra, alg_verdieping rv
    WHERE og.alg_onrgoed_key = rv.alg_gebouw_key
      AND ra.alg_verdieping_key = rv.alg_verdieping_key
      AND og.alg_onrgoed_niveau = 'G'
      AND res_srtartikel_og_verwijder IS NULL
      AND alg_ruimte_key IS NOT NULL
   UNION
   SELECT ra.alg_ruimte_key, res_discipline_key, alg_onrgoed_niveau
     FROM res_srtartikel_onrgoed og, alg_ruimte ra
    WHERE og.alg_onrgoed_key = ra.alg_ruimte_key
      AND og.alg_onrgoed_niveau = 'R'
      AND res_srtartikel_og_verwijder IS NULL
      AND alg_ruimte_key IS NOT NULL;

CREATE_VIEW(fac_v_my_res_rooms, 0) AS
 SELECT res_ruimte_key,
    prs_perslid_key,
    niveau
   FROM fac_v_my_rooms fr, res_alg_ruimte ar
  WHERE fr.alg_ruimte_key = ar.alg_ruimte_key
    AND ar.res_alg_ruimte_verwijder IS NULL
UNION
 SELECT res_ruimte_key, prs_perslid_key, -1
   FROM res_v_aanwezigruimte, prs_v_aanwezigperslid;

CREATE_VIEW(res_v_deelscope, 0)
    (res_deel_key,
     res_deel_alg_level,
     alg_regio_key,
     alg_district_key,
     alg_locatie_key,
     alg_gebouw_key,
     alg_verdieping_key,
     alg_ruimte_key
    )
AS
   SELECT res_deel_key, res_deel_alg_level, to_number(NULL), to_number(NULL), to_number(NULL), to_number(NULL), to_number(NULL), to_number(NULL)
     FROM res_deel rd, ins_deel id
    WHERE rd.res_ins_deel_key = id.ins_deel_key
      AND COALESCE(id.ins_alg_ruimte_type_org, ID.ins_alg_ruimte_type) IN ('R', 'T')
      AND rd.res_deel_alg_level = -1
   UNION ALL
   SELECT res_deel_key, res_deel_alg_level, alg_regio_key, to_number(NULL), to_number(NULL), to_number(NULL), to_number(NULL), to_number(NULL)
     FROM res_deel rd, ins_deel ID, alg_locatie l, alg_district d
    WHERE rd.res_ins_deel_key = ID.ins_deel_key
      AND l.alg_district_key = d.alg_district_key
      AND alg_locatie_key = ins_alg_locatie_key
      AND COALESCE(id.ins_alg_ruimte_type_org, ID.ins_alg_ruimte_type) IN ('R', 'T')
      AND rd.res_deel_alg_level = 0
   UNION ALL
   SELECT res_deel_key, res_deel_alg_level, to_number(NULL), alg_district_key, to_number(NULL), to_number(NULL), to_number(NULL), to_number(NULL)
     FROM res_deel rd, ins_deel ID, alg_locatie l
    WHERE rd.res_ins_deel_key = ID.ins_deel_key
      AND alg_locatie_key = ins_alg_locatie_key
      AND COALESCE(id.ins_alg_ruimte_type_org, ID.ins_alg_ruimte_type) IN ('R', 'T')
      AND rd.res_deel_alg_level = 1
   UNION ALL
   SELECT res_deel_key, res_deel_alg_level, to_number(NULL), to_number(NULL), ins_alg_locatie_key, to_number(NULL), to_number(NULL), to_number(NULL)
     FROM res_deel rd, ins_deel ID
    WHERE rd.res_ins_deel_key = ID.ins_deel_key
      AND COALESCE(id.ins_alg_ruimte_type_org, ID.ins_alg_ruimte_type) IN ('R', 'T')
      AND rd.res_deel_alg_level = 2
   UNION ALL
   SELECT res_deel_key, res_deel_alg_level, to_number(NULL), to_number(NULL), to_number(NULL), alg_gebouw_key, to_number(NULL), to_number(NULL)
     FROM res_deel rd, ins_deel ID, alg_ruimte r, alg_verdieping v
    WHERE rd.res_ins_deel_key = ID.ins_deel_key
      AND COALESCE(ID.ins_alg_ruimte_key_org, ID.ins_alg_ruimte_key) = r.alg_ruimte_key
      AND r.alg_verdieping_key = v.alg_verdieping_key
      AND COALESCE(id.ins_alg_ruimte_type_org, ID.ins_alg_ruimte_type) = 'R'
      AND rd.res_deel_alg_level = 3
   UNION ALL
   SELECT res_deel_key, res_deel_alg_level, to_number(NULL), to_number(NULL), to_number(NULL), to_number(NULL), alg_verdieping_key, to_number(NULL)
     FROM res_deel rd, ins_deel ID, alg_ruimte r
    WHERE rd.res_ins_deel_key = ID.ins_deel_key
      AND COALESCE(ID.ins_alg_ruimte_key_org, ID.ins_alg_ruimte_key) = r.alg_ruimte_key
      AND COALESCE(id.ins_alg_ruimte_type_org, ID.ins_alg_ruimte_type) = 'R'
      AND rd.res_deel_alg_level = 4
   UNION ALL
   SELECT res_deel_key, res_deel_alg_level, to_number(NULL), to_number(NULL), to_number(NULL), to_number(NULL), to_number(NULL), COALESCE(ins_alg_ruimte_key_org, ins_alg_ruimte_key)
     FROM res_deel rd, ins_deel id
    WHERE rd.res_ins_deel_key = id.ins_deel_key
      AND COALESCE(id.ins_alg_ruimte_type_org, ID.ins_alg_ruimte_type) = 'R'
      AND rd.res_deel_alg_level = 5;

// Oracle 11g kent pas een PIVOT dus nog even behelpen
CREATE OR REPLACE FORCE VIEW RES_V_RES_DAG_BEZETTING AS
select res_rsv_ruimte_van,
       res_rsv_ruimte_tot,
       res_ruimte_opstel_key,
       res_rsv_ruimte_verwijder,
       res_rsv_ruimte_key,
       res_status_fo_key,
       sum(decode(uurnum, 0,n_uur)) n0,
       sum(decode(uurnum, 1,n_uur)) n1,
       sum(decode(uurnum, 2,n_uur)) n2,
       sum(decode(uurnum, 3,n_uur)) n3,
       sum(decode(uurnum, 4,n_uur)) n4,
       sum(decode(uurnum, 5,n_uur)) n5,
       sum(decode(uurnum, 6,n_uur)) n6,
       sum(decode(uurnum, 7,n_uur)) n7,
       sum(decode(uurnum, 8,n_uur)) n8,
       sum(decode(uurnum, 9,n_uur)) n9,
       sum(decode(uurnum,10,n_uur)) n10,
       sum(decode(uurnum,11,n_uur)) n11,
       sum(decode(uurnum,12,n_uur)) n12,
       sum(decode(uurnum,13,n_uur)) n13,
       sum(decode(uurnum,14,n_uur)) n14,
       sum(decode(uurnum,15,n_uur)) n15,
       sum(decode(uurnum,16,n_uur)) n16,
       sum(decode(uurnum,17,n_uur)) n17,
       sum(decode(uurnum,18,n_uur)) n18,
       sum(decode(uurnum,19,n_uur)) n19,
       sum(decode(uurnum,20,n_uur)) n20,
       sum(decode(uurnum,21,n_uur)) n21,
       sum(decode(uurnum,22,n_uur)) n22,
       sum(decode(uurnum,23,n_uur)) n23
FROM (
SELECT res_rsv_ruimte_van,
       res_rsv_ruimte_tot,
       res_ruimte_opstel_key,
       res_rsv_ruimte_verwijder,
       res_rsv_ruimte_key,
       res_status_fo_key,
       uurnum,
       case when res.van <= uurnum + 0.00 AND res.tot >= uurnum + 0.25 then 1/4 else 0 end +
       case when res.van <= uurnum + 0.25 AND res.tot >= uurnum + 0.50 then 1/4 else 0 end +
       case when res.van <= uurnum + 0.50 AND res.tot >= uurnum + 0.75 then 1/4 else 0 end +
       case when res.van <= uurnum + 0.75 AND res.tot >= uurnum + 1.00 then 1/4 else 0 end n_uur
  FROM (SELECT (res_rsv_ruimte_van - TRUNC (res_rsv_ruimte_van)) * 24 van,
               (res_rsv_ruimte_tot - TRUNC (res_rsv_ruimte_tot)) * 24 tot,
               res_rsv_ruimte_van,
               res_rsv_ruimte_tot,
               res_ruimte_opstel_key,
               res_rsv_ruimte_verwijder,
               res_rsv_ruimte_key,
               res_status_fo_key
          FROM res_rsv_ruimte) res, (    SELECT LEVEL-1 uurnum
                                           FROM DUAL
                                     CONNECT BY LEVEL <= 24) uren)
GROUP BY res_rsv_ruimte_van,
       res_rsv_ruimte_tot,
       res_ruimte_opstel_key,
       res_rsv_ruimte_verwijder,
       res_rsv_ruimte_key,
       res_status_fo_key;

CREATE_VIEW(res_v_qvw_algemeen, 0) (res_reservering_key,
                                       nummer,
                                       res_omschrijving,
                                       invoerdatum,
                                       datum,
                                       gastheer,
                                       contact,
                                       invoerder,
                                       kostensoortgroep,
                                       kostensoort,
                                       kpn,
                                       kpn_omschrijving,
                                       prs_bedrijf_key,
                                       afdeling_code,
                                       afdeling_omschrijving,
                                       district_omschijving,
                                       alg_locatie_key,
                                       locatie,
                                       locatie_omschrijving,
                                       gebouw,
                                       verdieping,
                                       ruimte,
                                       opstelling,
                                       no_show,
                                       mandaat,
                                       personeelsnr,
                                       bsn,
                                       werkplek,
                                       ins_discipline_key,
                                       catalogus_ins_discipline_key,
                                       catalogus,
                                       reserveerbare_ruimte,
                                       bezoekers,
                                       van,
                                       tot,
                                       duur,
                                       status,
                                       res_activiteit_key,
                                       activiteit,
                                       res_srtactiviteit_key,
                                       activiteitsoort,
                                       voorziening_ins_discipline_key,
                                       voorziening_catalogus,
                                       voorziening_product_key,
                                       voorziening_product,
                                       voorziening_totaalprijs,
                                       voorziening_van,
                                       voorziening_tot,
                                       voorziening_aantal,
                                       voorziening_prijs,
                                       voorziening_afgemeld)
AS SELECT res.res_reservering_key
      , res.res_reservering_key || '/' || rrr.res_rsv_ruimte_volgnr
      , rrr.res_rsv_ruimte_omschrijving
      , TRUNC(NVL(rrr.res_rsv_ruimte_aanmaak, voorz.van))
      , TRUNC(NVL(rrr.res_rsv_ruimte_van, voorz.van))
      , (SELECT prs_perslid_naam_full FROM prs_v_perslid_fullnames_all pf WHERE pf.prs_perslid_key = rrr.res_rsv_ruimte_host_key)
      , (SELECT prs_perslid_naam_full FROM prs_v_perslid_fullnames_all pf WHERE pf.prs_perslid_key = rrr.res_rsv_ruimte_contact_key)
      , (SELECT   pf.prs_perslid_naam_full
            FROM   fac_tracking tr,
                   fac_srtnotificatie str,
                   prs_v_perslid_fullnames_all pf
           WHERE   tr.prs_perslid_key = pf.prs_perslid_key
                   AND str.fac_srtnotificatie_code = 'RESNEW'
                   AND tr.fac_srtnotificatie_key = str.fac_srtnotificatie_key
                   AND tr.fac_tracking_refkey = rrr.res_rsv_ruimte_key)
      , (select ksg.prs_kostensoortgrp_oms
                              from prs_kostensoortgrp ksg, prs_kostensoort ks
                              where ksg.PRS_KOSTENSOORTGRP_KEY = ks.PRS_KOSTENSOORTGRP_KEY
                              and ks.PRS_KOSTENSOORT_KEY = (select disc.PRS_KOSTENSOORT_KEY
                                                                            from res_discipline disc
                                                                            where disc.ins_DISCIPLINE_KEY = COALESCE(voorz.ins_discipline_key, (SELECT ins_discipline_key FROM ins_tab_discipline d, res_ruimte_opstelling ro, res_ruimte rr WHERE rrr.res_ruimte_opstel_key = ro.res_ruimte_opstel_key AND ro.res_ruimte_key = rr.res_ruimte_key AND rr.res_discipline_key = d.ins_discipline_key))
                                                                            )
            )   kostensoortgroep
         , (select ks.prs_kostensoort_oms
                        from prs_kostensoort ks
                        where ks.PRS_KOSTENSOORT_KEY = (select disc.PRS_KOSTENSOORT_KEY
                                                                        from res_discipline disc
                                                                         where disc.ins_DISCIPLINE_KEY = COALESCE(voorz.ins_discipline_key, (SELECT ins_discipline_key FROM ins_tab_discipline d, res_ruimte_opstelling ro, res_ruimte rr WHERE rrr.res_ruimte_opstel_key = ro.res_ruimte_opstel_key AND ro.res_ruimte_key = rr.res_ruimte_key AND rr.res_discipline_key = d.ins_discipline_key))
                                                                         )
            )kostensoort
      , k.prs_kostenplaats_nr
      , k.prs_kostenplaats_omschrijving
      , (SELECT prs_bedrijf_key FROM prs_v_afdeling pva WHERE pva.prs_afdeling_key = a.prs_afdeling_key)
      , a.prs_afdeling_naam
      , a.prs_afdeling_omschrijving
      , (SELECT d.alg_district_omschrijving FROM alg_district d, alg_locatie l, alg_gebouw g, alg_verdieping v, alg_ruimte r where d.alg_district_key = l.alg_district_key and l.alg_locatie_key = g.alg_locatie_key and g.alg_gebouw_key = v.alg_gebouw_key and v.alg_verdieping_key = r.alg_verdieping_key and r.alg_ruimte_key = r2a.alg_ruimte_key)
      , (SELECT l.alg_locatie_key FROM alg_locatie l, alg_gebouw g, alg_verdieping v, alg_ruimte r where l.alg_locatie_key = g.alg_locatie_key and g.alg_gebouw_key = v.alg_gebouw_key and v.alg_verdieping_key = r.alg_verdieping_key and r.alg_ruimte_key = r2a.alg_ruimte_key)
      , (SELECT alg_locatie_code FROM alg_locatie l, alg_gebouw g, alg_verdieping v, alg_ruimte r where l.alg_locatie_key = g.alg_locatie_key and g.alg_gebouw_key = v.alg_gebouw_key and v.alg_verdieping_key = r.alg_verdieping_key and r.alg_ruimte_key = r2a.alg_ruimte_key)
      , (SELECT alg_locatie_omschrijving FROM alg_locatie l, alg_gebouw g, alg_verdieping v, alg_ruimte r where l.alg_locatie_key = g.alg_locatie_key and g.alg_gebouw_key = v.alg_gebouw_key and v.alg_verdieping_key = r.alg_verdieping_key and r.alg_ruimte_key = r2a.alg_ruimte_key)
      , (SELECT alg_gebouw_code FROM alg_gebouw g, alg_verdieping v, alg_ruimte r where g.alg_gebouw_key = v.alg_gebouw_key and v.alg_verdieping_key = r.alg_verdieping_key and r.alg_ruimte_key = r2a.alg_ruimte_key)
      , (SELECT alg_verdieping_code FROM alg_verdieping v, alg_ruimte r where v.alg_verdieping_key = r.alg_verdieping_key and r.alg_ruimte_key = r2a.alg_ruimte_key)
      , r2a.ruimte_nr
      , r2a.opstelling
      , rrr.res_rsv_ruimte_noshow
      , NVL ((SELECT pr.fac_profiel_limiet FROM fac_profiel pr WHERE p.fac_profiel_key = pr.fac_profiel_key), 0)
      , prs_perslid_nr
      , NULL
      , wp2.prs_werkplek_aanduiding
      , COALESCE(voorz.ins_discipline_key, (SELECT ins_discipline_key FROM ins_tab_discipline d, res_ruimte_opstelling ro, res_ruimte rr WHERE rrr.res_ruimte_opstel_key = ro.res_ruimte_opstel_key AND ro.res_ruimte_key = rr.res_ruimte_key AND rr.res_discipline_key = d.ins_discipline_key))
      , (SELECT ins_discipline_key FROM ins_tab_discipline d, res_ruimte_opstelling ro, res_ruimte rr WHERE rrr.res_ruimte_opstel_key = ro.res_ruimte_opstel_key AND ro.res_ruimte_key = rr.res_ruimte_key AND rr.res_discipline_key = d.ins_discipline_key)
      , (SELECT ins_discipline_omschrijving FROM ins_tab_discipline d, res_ruimte_opstelling ro, res_ruimte rr WHERE rrr.res_ruimte_opstel_key = ro.res_ruimte_opstel_key AND ro.res_ruimte_key = rr.res_ruimte_key AND rr.res_discipline_key = d.ins_discipline_key)
      , DECODE (rrr.alg_ruimte_key, null, 'Ja', 'Nee')
      , rrr.res_rsv_ruimte_bezoekers
      , to_char(rrr.res_rsv_ruimte_van, 'hh24:mi')
      , to_char(rrr.res_rsv_ruimte_tot, 'hh24:mi')
      , nvl((rrr.res_rsv_ruimte_tot-rrr.res_rsv_ruimte_van)*24,0)
      , (SELECT res_status_fo_omschrijving FROM res_status_fo rs WHERE rs.res_status_fo_key = rrr.res_status_fo_key)
      , ra.res_activiteit_key
      , ra.res_activiteit_omschrijving
      , rsa.res_srtactiviteit_key
      , rsa.res_srtactiviteit_omschrijving
      , voorz.ins_discipline_key
      , voorz.catalogus
      , voorz.product_key
      , voorz.product
      , voorz.totaalprijs
      , to_char(voorz.van,'hh24:mi')
      , to_char(voorz.tot,'hh24:mi')
      , voorz.aantal
      , voorz.prijs
      , voorz.afgemeld
  from res_v_aanwezigrsv_ruimte rrr
     , res_activiteit ra
     , res_srtactiviteit rsa
     , res_reservering res
     , prs_kostenplaats k
     , prs_perslid p
     , prs_afdeling a
     , ( SELECT res_rsv_ruimte_key, max(o.res_opstelling_omschrijving) opstelling
              , max(ra.alg_ruimte_key) alg_ruimte_key
              , max(rr.res_ruimte_nr) ruimte_nr
           FROM res_rsv_ruimte r
              , res_ruimte_opstelling ro
              , res_opstelling o
              , res_ruimte rr
              , res_alg_ruimte ra
          WHERE r.res_rsv_ruimte_verwijder IS NULL
            AND r.res_ruimte_opstel_key = ro.res_ruimte_opstel_key
            AND ro.res_ruimte_key = rr.res_ruimte_key
            AND ro.res_opstelling_key = o.res_opstelling_key
            AND rr.res_ruimte_key = ra.res_ruimte_key
       GROUP BY res_rsv_ruimte_key
      UNION ALL
         SELECT res_rsv_ruimte_key, '' opstelling
              , rrr.alg_ruimte_key
              , r.alg_ruimte_nr
           FROM res_rsv_ruimte rrr
              , alg_ruimte r
          WHERE rrr.alg_ruimte_key IS NOT NULL
            AND r.alg_ruimte_key = rrr.alg_ruimte_key) r2a
     , ( SELECT rrd.res_rsv_ruimte_key res_rsv_ruimte_key, -rd.res_deel_key product_key, rd.res_deel_omschrijving product, DECODE(rd.res_deel_prijs_vast, 1, nvl(rrd.res_rsv_deel_prijs, rd.res_deel_prijs), (rrd.res_rsv_deel_tot - rrd.res_rsv_deel_van) * 24 * nvl(rrd.res_rsv_deel_prijs,rd.res_deel_prijs)) totaalprijs, rrd.res_rsv_deel_van van, rrd.res_rsv_deel_tot tot, (rrd.res_rsv_deel_tot - rrd.res_rsv_deel_van) * 24 aantal, nvl(rrd.res_rsv_deel_prijs,rd.res_deel_prijs) prijs, 'TODO' afgemeld, c.ins_discipline_key ins_discipline_key, c.ins_discipline_omschrijving catalogus
           FROM res_v_aanwezigrsv_deel rrd
              , res_deel rd
              , ins_deel d
              , ins_tab_discipline c
          WHERE rrd.res_deel_key = rd.res_deel_key
            AND d.ins_deel_key = rd.res_ins_deel_key
            AND rrd.res_rsv_ruimte_key IS NOT NULL
            AND c.ins_discipline_key = rd.res_discipline_key
      UNION ALL
         SELECT rra.res_rsv_ruimte_key res_rsv_ruimte_key, ra.res_artikel_key product_key, ra.res_artikel_omschrijving product, NVL(rra.res_rsv_artikel_prijs, rra.res_rsv_artikel_aantal * res_artikel_prijs) totaalprijs, rra.res_rsv_artikel_levering van, null tot, rra.res_rsv_artikel_aantal aantal, NVL(rra.res_rsv_artikel_prijs/rra.res_rsv_artikel_aantal, res_artikel_prijs) prijs, 'TODO' afgemeld, c.ins_discipline_key ins_discipline_key, c.ins_discipline_omschrijving catalogus
           FROM res_v_aanwezigrsv_artikel rra
              , res_artikel ra
              , ins_tab_discipline c
          WHERE rra.res_artikel_key = ra.res_artikel_key
            AND ra.res_discipline_key = c.ins_discipline_key ) voorz
     , ( SELECT pw.prs_perslid_key, MIN(prs_werkplek_aanduiding)|| DECODE (COUNT (*), 1, '', '...') prs_werkplek_aanduiding
           FROM prs_v_werkplek_gegevens wp
              , prs_perslidwerkplek pw
          WHERE wp.prs_werkplek_key = pw.prs_werkplek_key
       GROUP BY pw.prs_perslid_key) wp2
 WHERE rrr.res_reservering_key = res.res_reservering_key
   AND rrr.res_rsv_ruimte_key = r2a.res_rsv_ruimte_key(+)
   AND rrr.prs_kostenplaats_key = k.prs_kostenplaats_key(+)
   AND rrr.res_rsv_ruimte_key = voorz.res_rsv_ruimte_key(+)
   AND rrr.res_activiteit_key = ra.res_activiteit_key
   AND ra.res_srtactiviteit_key = rsa.res_srtactiviteit_key
   AND rrr.res_rsv_ruimte_host_key = p.prs_perslid_key
   AND p.prs_afdeling_key = a.prs_afdeling_key
   AND wp2.prs_perslid_key(+) = p.prs_perslid_key
   AND (rrr.res_ruimte_opstel_key IS NOT NULL OR voorz.res_rsv_ruimte_key IS NOT NULL);

CREATE_VIEW(res_v_qvw_locale, 0)
(fac_locale_kolomkeyval, fac_locale_kolomnaam, fac_locale_tekst_nl, fac_locale_tekst_en, fac_locale_tekst_de, fac_locale_tekst_fr)
AS
    WITH rqa AS (SELECT DISTINCT catalogus_ins_discipline_key,
                                 catalogus,
                                 res_activiteit_key,
                                 activiteit,
                                 res_srtactiviteit_key,
                                 activiteitsoort,
                                 voorziening_ins_discipline_key,
                                 voorziening_catalogus,
                                 voorziening_product_key,
                                 voorziening_product
                   FROM res_v_qvw_algemeen)
    SELECT DISTINCT rqa.catalogus_ins_discipline_key,
                    'INS_DISCIPLINE_OMSCHRIJVING',
                    rqa.catalogus,
                    COALESCE (en.fac_locale_tekst, rqa.catalogus),
                    COALESCE (de.fac_locale_tekst, rqa.catalogus),
                    COALESCE (fr.fac_locale_tekst, rqa.catalogus)
      FROM fac_locale en,
           fac_locale de,
           fac_locale fr,
           rqa
     WHERE     rqa.catalogus IS NOT NULL
           AND rqa.catalogus_ins_discipline_key = en.fac_locale_kolomkeyval(+)
           AND en.fac_locale_kolomnaam(+) = 'INS_DISCIPLINE_OMSCHRIJVING'
           AND en.fac_locale_lang(+) = 'EN'
           AND rqa.catalogus_ins_discipline_key = de.fac_locale_kolomkeyval(+)
           AND de.fac_locale_kolomnaam(+) = 'INS_DISCIPLINE_OMSCHRIJVING'
           AND de.fac_locale_lang(+) = 'DE'
           AND rqa.catalogus_ins_discipline_key = fr.fac_locale_kolomkeyval(+)
           AND fr.fac_locale_kolomnaam(+) = 'INS_DISCIPLINE_OMSCHRIJVING'
           AND fr.fac_locale_lang(+) = 'FR'
    UNION ALL
    SELECT DISTINCT rqa.voorziening_ins_discipline_key,
                    'INS_DISCIPLINE_OMSCHRIJVING',
                    rqa.voorziening_catalogus,
                    COALESCE (en.fac_locale_tekst, rqa.voorziening_catalogus),
                    COALESCE (de.fac_locale_tekst, rqa.voorziening_catalogus),
                    COALESCE (fr.fac_locale_tekst, rqa.voorziening_catalogus)
      FROM fac_locale en,
           fac_locale de,
           fac_locale fr,
           rqa
     WHERE     rqa.voorziening_catalogus IS NOT NULL
           AND rqa.voorziening_ins_discipline_key = en.fac_locale_kolomkeyval(+)
           AND en.fac_locale_kolomnaam(+) = 'INS_DISCIPLINE_OMSCHRIJVING'
           AND en.fac_locale_lang(+) = 'EN'
           AND rqa.voorziening_ins_discipline_key = de.fac_locale_kolomkeyval(+)
           AND de.fac_locale_kolomnaam(+) = 'INS_DISCIPLINE_OMSCHRIJVING'
           AND de.fac_locale_lang(+) = 'DE'
           AND rqa.voorziening_ins_discipline_key = fr.fac_locale_kolomkeyval(+)
           AND fr.fac_locale_kolomnaam(+) = 'INS_DISCIPLINE_OMSCHRIJVING'
           AND fr.fac_locale_lang(+) = 'FR'
    UNION ALL
    SELECT DISTINCT rqa.res_activiteit_key,
                    'RES_ACTIVITEIT_OMSCHRIJVING',
                    rqa.activiteit,
                    COALESCE (en.fac_locale_tekst, rqa.activiteit),
                    COALESCE (de.fac_locale_tekst, rqa.activiteit),
                    COALESCE (fr.fac_locale_tekst, rqa.activiteit)
      FROM fac_locale en,
           fac_locale de,
           fac_locale fr,
           rqa
     WHERE     rqa.res_activiteit_key = en.fac_locale_kolomkeyval(+)
           AND en.fac_locale_kolomnaam(+) = 'RES_ACTIVITEIT_OMSCHRIJVING'
           AND en.fac_locale_lang(+) = 'EN'
           AND rqa.res_activiteit_key = de.fac_locale_kolomkeyval(+)
           AND de.fac_locale_kolomnaam(+) = 'RES_ACTIVITEIT_OMSCHRIJVING'
           AND de.fac_locale_lang(+) = 'DE'
           AND rqa.res_activiteit_key = fr.fac_locale_kolomkeyval(+)
           AND fr.fac_locale_kolomnaam(+) = 'RES_ACTIVITEIT_OMSCHRIJVING'
           AND fr.fac_locale_lang(+) = 'FR'
    UNION ALL
    SELECT DISTINCT rqa.res_srtactiviteit_key,
                    'RES_SRTACTIVITEIT_OMSCHRIJVING',
                    rqa.activiteitsoort,
                    COALESCE (en.fac_locale_tekst, rqa.activiteitsoort),
                    COALESCE (de.fac_locale_tekst, rqa.activiteitsoort),
                    COALESCE (fr.fac_locale_tekst, rqa.activiteitsoort)
      FROM fac_locale en,
           fac_locale de,
           fac_locale fr,
           rqa
     WHERE     rqa.res_srtactiviteit_key = en.fac_locale_kolomkeyval(+)
           AND en.fac_locale_kolomnaam(+) = 'RES_SRTACTIVITEIT_OMSCHRIJVING'
           AND en.fac_locale_lang(+) = 'EN'
           AND rqa.res_srtactiviteit_key = de.fac_locale_kolomkeyval(+)
           AND de.fac_locale_kolomnaam(+) = 'RES_SRTACTIVITEIT_OMSCHRIJVING'
           AND de.fac_locale_lang(+) = 'DE'
           AND rqa.res_srtactiviteit_key = fr.fac_locale_kolomkeyval(+)
           AND fr.fac_locale_kolomnaam(+) = 'RES_SRTACTIVITEIT_OMSCHRIJVING'
           AND fr.fac_locale_lang(+) = 'FR'
    UNION ALL
    SELECT DISTINCT rqa.voorziening_product_key,
                    'RES_PRODUCT_OMSCHRIJVING',
                    rqa.voorziening_product,
                    COALESCE (en.fac_locale_tekst, rqa.voorziening_product),
                    COALESCE (de.fac_locale_tekst, rqa.voorziening_product),
                    COALESCE (fr.fac_locale_tekst, rqa.voorziening_product)
      FROM fac_locale en,
           fac_locale de,
           fac_locale fr,
           rqa
     WHERE     rqa.voorziening_product IS NOT NULL
           AND rqa.voorziening_product_key = en.fac_locale_kolomkeyval(+)
           AND en.fac_locale_kolomnaam(+) = 'RES_ARTIKEL_OMSCHRIJVING'
           AND en.fac_locale_lang(+) = 'EN'
           AND rqa.voorziening_product_key = de.fac_locale_kolomkeyval(+)
           AND de.fac_locale_kolomnaam(+) = 'RES_ARTIKEL_OMSCHRIJVING'
           AND de.fac_locale_lang(+) = 'DE'
           AND rqa.voorziening_product_key = fr.fac_locale_kolomkeyval(+)
           AND fr.fac_locale_kolomnaam(+) = 'RES_ARTIKEL_OMSCHRIJVING'
           AND fr.fac_locale_lang(+) = 'FR';

-- Algemeen bruikbare bronview voor infoborden
CREATE_VIEW (res_v_rap_infobord, 0)
(
   aktief,
   offset,
   dag,
   tijd_van,
   tijd_tot,
   ruimte,
   catalogus,
   aanvrager,
   gastheer,
   omschrijving,
   status,
   locatie_code,
   gebouw_code,
   verdieping_code,
   locatie_omschrijving,
   gebouw_omschrijving,
   verdieping_omschrijving,
   alg_locatie_key,
   alg_gebouw_key,
   alg_verdieping_key
)
AS
   SELECT (CASE WHEN res_rsv_ruimte_van > SYSDATE THEN 'expected'
                WHEN res_rsv_ruimte_tot < SYSDATE THEN 'passed'
                ELSE 'active'
           END) aktief,
            TRUNC ( (SYSDATE - res_rsv_ruimte_van) * 24 * 60) offset,
            TO_CHAR (res_rsv_ruimte_van, 'dd-mm-yyyy') dag,
            TO_CHAR (res_rsv_ruimte_van, 'hh24:mi') tijd_van,
            TO_CHAR (res_rsv_ruimte_tot, 'hh24:mi') tijd_tot,
            res_ruimte_nr ruimte,
            ins_discipline_omschrijving catalogus,
            aanvrager.prs_perslid_naam_full aanvrager,
            gastheer.prs_perslid_naam_full gastheer,
            res_rsv_ruimte_omschrijving omschrijving,
            sf.res_status_fo_omschrijving status,
            alg_locatie_code locatie_code,
            alg_gebouw_code gebouw_code,
            alg_verdieping_code verdieping_code,
            alg_locatie_omschrijving locatie_omschrijving,
            alg_gebouw_omschrijving gebouw_omschrijving,
            alg_verdieping_omschrijving verdieping_omschrijving,
            l.alg_locatie_key,
            g.alg_gebouw_key,
            v.alg_verdieping_key
     FROM   res_v_aanwezigrsv_ruimte rrr,
            res_ruimte_opstelling rro,
            prs_v_perslid_fullnames aanvrager,
            prs_v_perslid_fullnames gastheer,
            res_v_res_ruimte_gegevens rrg,
            alg_locatie l,
            alg_gebouw g,
            alg_verdieping v,
            res_status_fo sf,
            res_discipline rd
    WHERE       rrr.res_ruimte_opstel_key = rro.res_ruimte_opstel_key
            AND rro.res_ruimte_key = rrg.res_ruimte_key
            AND rrr.res_rsv_ruimte_host_key = gastheer.prs_perslid_key
            AND rrr.res_rsv_ruimte_contact_key = aanvrager.prs_perslid_key
            AND TRUNC (res_rsv_ruimte_van) = TRUNC (SYSDATE)
            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;

-- DE DEFAULTVIEW GEBRUIKT VOOR HET INFOBORD (FAC_USRRAP MET KEY 12)
CREATE_VIEW (res_v_rap_infobordframe, 0)
(
    tijd,
    kamer,
    omschrijving,
    voorzitter,
    hide_f_alg_locatie_key,
    hide_f_alg_gebouw_key,
    hide_f_alg_verdieping_key
)
AS
    SELECT tijd_van || '-' || tijd_tot,
           ruimte,
           omschrijving,
           gastheer,
           alg_locatie_key,
           alg_gebouw_key,
           alg_verdieping_key
      FROM res_v_rap_infobord
     WHERE (status = lcl.l('lcl_def') OR status = lcl.l('lcl_optie')) AND aktief <> 'passed' AND offset > -60;


CREATE_VIEW(res_v_api_reserveringen, 1)
(
   van,
   tot,
   key,
   resid,
   locatiecode,
   gebouwcode,
   fclt_3d_gebouw_key,
   verdiepingcode,
   ruimtecode,
   ruimtenaam,
   rvck_vnr,
   voorziening,
   aantal,
   prijs,
   btw,
   act_oms,
   srtact_oms,
   bezoekers,
   fo_status_key,                                       --  voorstel: weglaten
   fo_status,
   bo_status_key,                                       --  voorstel: weglaten
   bo_status,
   contact,
   host,
   kostenplaats,
   omschrijving,
   opmerking,
   k_naam,
   k_waarde
)
AS
   SELECT   x.van van_datumtijd,
            x.tot tot_datumtijd,
            x.res_rsv_ruimte_key res_key,
               TO_CHAR (x.res_reservering_key)
            || '/'
            || TO_CHAR (x.res_rsv_ruimte_volgnr)
               res_id,
            rvck.loc_code,
            rvck.geb_code,
            rvck.geb_key,
            rvck.ver_code,
            rvck.ruimtenr,
            rvck.ruimtenaam,
            rvck.vnr,
            rvck.voorziening,
            rvck.aantal,
            ROUND (COALESCE (rvck.res_rsv_prijs, rvck.aantal * rvck.ps), 2)
               prijs,
            rvck.btw,
            x.res_activiteit_omschrijving,
            x.res_srtactiviteit_omschrijving,
            x.res_rsv_ruimte_bezoekers bezoekers,
            x.fo_status_key,
            DECODE (x.fo_status_key,
                    1, 'RESOPT',
                    2, 'RESDEF',
                    3, 'RESBLK',
                    'RESDEL')
               fo_status,
            x.bo_status_key,
            x.bo_status_oms,
            x.contact_naam,
            x.host_naam,
            x.kp_nr,
            x.res_rsv_ruimte_omschrijving oms,
            x.res_rsv_ruimte_opmerking opm,
            rvck.k_naam,
            rvck.k_waarde
     FROM      (SELECT   rr.res_rsv_ruimte_key,
                         rr.res_reservering_key,
                         rr.res_rsv_ruimte_volgnr,
                         a.res_activiteit_key,
                         a.res_activiteit_omschrijving,
                         sa.res_srtactiviteit_key,
                         sa.res_srtactiviteit_omschrijving,
                         rr.res_rsv_ruimte_van van,
                         rr.res_rsv_ruimte_tot tot,
                         rr.res_rsv_ruimte_bezoekers,
                         fs.res_status_fo_key fo_status_key,
                         fs.res_status_fo_omschrijving fo_status_oms,
                         bs.res_status_bo_key bo_status_key,
                         bs.res_status_bo_omschrijving bo_status_oms,
                         pfc.prs_perslid_key contact_key,
                         pfc.prs_perslid_naam_full contact_naam,
                         pfh.prs_perslid_key host_key,
                         pfh.prs_perslid_naam_full host_naam,
                         k.prs_kostenplaats_nr kp_nr,
                         k.prs_kostenplaats_omschrijving kp_oms,
                         rr.res_rsv_ruimte_omschrijving,
                         rr.res_rsv_ruimte_opmerking
                  FROM   res_v_aanwezigrsv_ruimte rr,       -- Alleen actieve!
                         res_activiteit a,
                         res_srtactiviteit sa,
                         res_status_fo fs,
                         res_status_bo bs,
                         prs_v_perslid_fullnames_all pfc,
                         prs_v_perslid_fullnames_all pfh,
                         prs_kostenplaats k
                 WHERE   rr.res_rsv_ruimte_tot > TRUNC (SYSDATE, 'IW') - 7
                         AND rr.res_ruimte_opstel_key IS NOT NULL -- Alleen ruimtereserveringen!
                         AND rr.res_activiteit_key = a.res_activiteit_key
                         AND a.res_activiteit_verwijder IS NULL
                         AND a.res_srtactiviteit_key =
                               sa.res_srtactiviteit_key
                         AND sa.res_srtactiviteit_verwijder IS NULL
                         AND rr.res_status_fo_key = fs.res_status_fo_key
                         AND rr.res_status_bo_key = bs.res_status_bo_key
                         AND rr.res_rsv_ruimte_dirtlevel = 0
                         AND rr.res_rsv_ruimte_contact_key =
                               pfc.prs_perslid_key
                         AND rr.res_rsv_ruimte_host_key = pfh.prs_perslid_key
                         AND rr.prs_kostenplaats_key =
                               k.prs_kostenplaats_key(+)) x
            LEFT JOIN
               (SELECT   rrr.res_rsv_ruimte_key,
                         l.alg_locatie_code loc_code,
                         g.alg_gebouw_code geb_code,
                         g.alg_gebouw_key geb_key,
                         v.alg_verdieping_code ver_code,
                         r.alg_ruimte_nr ruimtenr,
                         rr.res_ruimte_nr ruimtenaam,
                         TO_NUMBER (NULL) vnr,
                         ro.res_opstelling_omschrijving voorziening,
                         ROUND((rrr.res_rsv_ruimte_tot - rrr.res_rsv_ruimte_van)
                         * 24, 2)
                            aantal,                            -- Duur in uren
                         rrr.res_rsv_ruimte_prijs res_rsv_prijs,
                         rr.res_ruimte_prijs ps,                 -- Uur-tarief
                         rr.res_ruimte_prijs_ochtend po,
                         rr.res_ruimte_prijs_middag pm,
                         rr.res_ruimte_prijs_avond pa,
                         NULL btw,
                         TO_NUMBER (NULL) k_key,
                         NULL k_naam,
                         NULL k_type,
                         NULL k_waarde
                  FROM   res_v_aanwezigrsv_ruimte rrr,
                         res_ruimte_opstelling rro,
                         res_ruimte rr,
                         res_opstelling ro,
                         (  SELECT   res_ruimte_key,
                                     MAX (alg_ruimte_key) alg_ruimte_key,
                                     COUNT ( * ) aantal
                              FROM   res_alg_ruimte
                             WHERE   res_alg_ruimte_verwijder IS NULL
                          GROUP BY   res_ruimte_key) rar,
                         alg_ruimte r,
                         alg_verdieping v,
                         alg_gebouw g,
                         alg_locatie l
                 WHERE   rrr.res_ruimte_opstel_key =
                            rro.res_ruimte_opstel_key
                         AND rro.res_ruimte_key = rr.res_ruimte_key
                         AND rro.res_opstelling_key = ro.res_opstelling_key
                         AND rr.res_ruimte_key = rar.res_ruimte_key(+)
                         AND rar.alg_ruimte_key = r.alg_ruimte_key(+)
                         AND r.alg_verdieping_key = v.alg_verdieping_key(+)
                         AND v.alg_gebouw_key = g.alg_gebouw_key(+)
                         AND g.alg_locatie_key = l.alg_locatie_key(+)
                UNION ALL
                SELECT   kw.res_rsv_ruimte_key,
                         NULL loc_code,
                         NULL geb_code,
                         TO_NUMBER (NULL) geb_key,
                         NULL ver_code,
                         NULL ruimtenr,
                         NULL ruimtenaam,
                         k.res_kenmerk_volgnummer vnr,
                         NULL voorziening,
                         TO_NUMBER (NULL) aantal,
                         TO_NUMBER (NULL) res_rsv_prijs,
                         TO_NUMBER (NULL) ps,
                         TO_NUMBER (NULL) po,
                         TO_NUMBER (NULL) pm,
                         TO_NUMBER (NULL) pa,
                         NULL btw,
                         k.res_kenmerk_key k_key,
                         sk.res_srtkenmerk_omschrijving k_naam,
                         sk.res_srtkenmerk_kenmerktype k_type,
                         DECODE (
                            sk.res_srtkenmerk_kenmerktype,
                            'R',
                            flx.getdomeinwaarde (
                               sk.fac_kenmerkdomein_key,
                               kw.res_kenmerkreservering_waarde
                            ),
                            'S',
                            flx.getdomeinwaarde (
                               sk.fac_kenmerkdomein_key,
                               kw.res_kenmerkreservering_waarde
                            ),
                            kw.res_kenmerkreservering_waarde
                         )
                            k_waarde
                  FROM   res_v_aanwezigkenmerkwaarde kw,
                         res_kenmerk k,
                         res_srtkenmerk sk
                 WHERE   kw.res_kenmerk_key = k.res_kenmerk_key
                         AND k.res_srtkenmerk_key = sk.res_srtkenmerk_key)
               rvck
            ON x.res_rsv_ruimte_key = rvck.res_rsv_ruimte_key;

-- om mee te beginnen
CREATE_VIEW(res_v_api_voorzieningen, 1)
(
   van,
   tot,
   key,
   resid,
   locatiecode,
   gebouwcode,
   verdiepingcode,
   ruimtecode,
   ruimtenaam,
   rvck_vnr,
   voorziening,
   aantal,
   prijs,
   btw,
   act_oms,
   srtact_oms,
   bezoekers,
   fo_status_key,                                       --  voorstel: weglaten
   fo_status,
   bo_status_key,                                       --  voorstel: weglaten
   bo_status,
   contact,
   host,
   kostenplaats,
   omschrijving,
   opmerking,
   k_naam,
   k_waarde
)
AS
   SELECT   x.van van_datumtijd,
            x.tot tot_datumtijd,
            x.res_rsv_ruimte_key res_key,
               TO_CHAR (x.res_reservering_key)
            || '/'
            || TO_CHAR (x.res_rsv_ruimte_volgnr)
               res_id,
            rvck.loc_code,
            rvck.geb_code,
            rvck.ver_code,
            rvck.ruimtenr,
            rvck.ruimtenaam,
            rvck.vnr,
            rvck.voorziening,
            rvck.aantal,
            ROUND (COALESCE (rvck.res_rsv_prijs, rvck.aantal * rvck.ps), 2)
               prijs,
            rvck.btw,
            x.res_activiteit_omschrijving,
            x.res_srtactiviteit_omschrijving,
            x.res_rsv_ruimte_bezoekers bezoekers,
            x.fo_status_key,
            DECODE (x.fo_status_key,
                    1, 'RESOPT',
                    2, 'RESDEF',
                    3, 'RESBLK',
                    'RESDEL')
               fo_status,
            x.bo_status_key,
            x.bo_status_oms,
            x.contact_naam,
            x.host_naam,
            x.kp_nr,
            x.res_rsv_ruimte_omschrijving oms,
            x.res_rsv_ruimte_opmerking opm,
            rvck.k_naam,
            rvck.k_waarde
     FROM      (SELECT   rr.res_rsv_ruimte_key,
                         rr.res_reservering_key,
                         rr.res_rsv_ruimte_volgnr,
                         a.res_activiteit_key,
                         a.res_activiteit_omschrijving,
                         sa.res_srtactiviteit_key,
                         sa.res_srtactiviteit_omschrijving,
                         rr.res_rsv_ruimte_van van,
                         rr.res_rsv_ruimte_tot tot,
                         rr.res_rsv_ruimte_bezoekers,
                         fs.res_status_fo_key fo_status_key,
                         fs.res_status_fo_omschrijving fo_status_oms,
                         bs.res_status_bo_key bo_status_key,
                         bs.res_status_bo_omschrijving bo_status_oms,
                         pfc.prs_perslid_key contact_key,
                         pfc.prs_perslid_naam_full contact_naam,
                         pfh.prs_perslid_key host_key,
                         pfh.prs_perslid_naam_full host_naam,
                         rr.res_rsv_ruimte_kosten_klant kosten_klant,
                         k.prs_kostenplaats_nr kp_nr,
                         k.prs_kostenplaats_omschrijving kp_oms,
                         rr.res_rsv_ruimte_omschrijving,
                         rr.res_rsv_ruimte_opmerking
                  FROM   res_v_aanwezigrsv_ruimte rr,       -- Alleen actieve!
                         res_activiteit a,
                         res_srtactiviteit sa,
                         res_status_fo fs,
                         res_status_bo bs,
                         prs_v_perslid_fullnames_all pfc,
                         prs_v_perslid_fullnames_all pfh,
                         prs_kostenplaats k
                 WHERE   rr.res_rsv_ruimte_tot > TRUNC (SYSDATE, 'IW') - 7 -- Incl. deze periode nog lopende meerdaagse reserveringen
                         AND rr.res_ruimte_opstel_key IS NULL -- Alleen "roomservice" reserveringen!
                         AND rr.res_activiteit_key = a.res_activiteit_key
                         AND a.res_activiteit_verwijder IS NULL
                         AND a.res_srtactiviteit_key =
                               sa.res_srtactiviteit_key
                         AND sa.res_srtactiviteit_verwijder IS NULL
                         AND rr.res_status_fo_key = fs.res_status_fo_key
                         AND rr.res_status_bo_key = bs.res_status_bo_key
                         AND rr.res_rsv_ruimte_dirtlevel = 0
                         AND rr.res_rsv_ruimte_contact_key =
                               pfc.prs_perslid_key
                         AND rr.res_rsv_ruimte_host_key = pfh.prs_perslid_key
                         AND rr.prs_kostenplaats_key =
                               k.prs_kostenplaats_key(+)) x
            LEFT JOIN
               (SELECT   rrr.res_rsv_ruimte_key,
                         l.alg_locatie_code loc_code,
                         g.alg_gebouw_code geb_code,
                         v.alg_verdieping_code ver_code,
                         r.alg_ruimte_nr ruimtenr,
                         NULL ruimtenaam,
                         TO_NUMBER (NULL) vnr,
                         NULL voorziening,
                         (rrr.res_rsv_ruimte_tot - rrr.res_rsv_ruimte_van)
                         * 24
                            aantal,                            -- Duur in uren
                         rrr.res_rsv_ruimte_prijs res_rsv_prijs,
                         TO_NUMBER (NULL) ps,
                         TO_NUMBER (NULL) po,
                         TO_NUMBER (NULL) pm,
                         TO_NUMBER (NULL) pa,
                         NULL btw,
                         TO_NUMBER (NULL) k_key,
                         NULL k_naam,
                         NULL k_type,
                         NULL k_waarde
                  FROM   res_v_aanwezigrsv_ruimte rrr,
                         alg_ruimte r,
                         alg_verdieping v,
                         alg_gebouw g,
                         alg_locatie l
                 WHERE       rrr.alg_ruimte_key = r.alg_ruimte_key
                         AND r.alg_verdieping_key = v.alg_verdieping_key
                         AND v.alg_gebouw_key = g.alg_gebouw_key
                         AND g.alg_locatie_key = l.alg_locatie_key
                UNION ALL
                SELECT   rrd.res_rsv_ruimte_key,
                         NULL loc_code,
                         NULL geb_code,
                         NULL ver_code,
                         NULL ruimtenr,
                         NULL ruimtenaam,
                         rd.res_ins_deel_key vnr,
                         LTRIM (RD.res_deel_omschrijving)
                         || DECODE (rd.res_deel_eenheid,
                                    NULL, '',
                                    ' (' || rd.res_deel_eenheid || ')')
                            voorziening,
                         (rrd.res_rsv_deel_tot - rrd.res_rsv_deel_van) * 24
                            aantal,                            -- Duur in uren
                         rrd.res_rsv_deel_prijs res_rsv_prijs,
                         rd.res_deel_prijs ps,                   -- Uur-tarief
                         TO_NUMBER (NULL) po,
                         TO_NUMBER (NULL) pm,
                         TO_NUMBER (NULL) pa,
                         NULL btw,
                         TO_NUMBER (NULL) k_key,
                         NULL k_naam,
                         NULL k_type,
                         NULL k_waarde
                  FROM   res_v_aanwezigrsv_deel rrd, res_deel rd, ins_deel ID
                 WHERE   rrd.res_deel_key = rd.res_deel_key
                         AND rd.res_ins_deel_key = ID.ins_deel_key
                UNION ALL
                SELECT   rra.res_rsv_ruimte_key,
                         NULL loc_code,
                         NULL geb_code,
                         NULL ver_code,
                         NULL ruimtenr,
                         NULL ruimtenaam,
                         ra.res_artikel_volgnummer vnr,
                         LTRIM (ra.res_artikel_omschrijving)
                         || DECODE (ra.res_artikel_eenheid,
                                    NULL, '',
                                    ' (' || ra.res_artikel_eenheid || ')')
                            voorziening,
                         rra.res_rsv_artikel_aantal aantal,
                         rra.res_rsv_artikel_prijs res_rsv_prijs,
                         ra.res_artikel_prijs ps,                -- Stuksprijs
                         TO_NUMBER (NULL) po,
                         TO_NUMBER (NULL) pm,
                         TO_NUMBER (NULL) pa,
                         COALESCE (rra.res_rsv_artikel_btw,
                                   ra.res_artikel_btw)
                            btw,
                         TO_NUMBER (NULL) k_key,
                         NULL k_naam,
                         NULL k_type,
                         NULL k_waarde
                  FROM   res_v_aanwezigrsv_artikel rra, res_artikel ra
                 WHERE   rra.res_artikel_key = ra.res_artikel_key
                UNION ALL
                SELECT   kw.res_rsv_ruimte_key,
                         NULL loc_code,
                         NULL geb_code,
                         NULL ver_code,
                         NULL ruimtenr,
                         NULL ruimtenaam,
                         k.res_kenmerk_volgnummer vnr,
                         NULL voorziening,
                         TO_NUMBER (NULL) aantal,
                         TO_NUMBER (NULL) res_rsv_prijs,
                         TO_NUMBER (NULL) ps,
                         TO_NUMBER (NULL) po,
                         TO_NUMBER (NULL) pm,
                         TO_NUMBER (NULL) pa,
                         NULL btw,
                         k.res_kenmerk_key k_key,
                         sk.res_srtkenmerk_omschrijving k_naam,
                         sk.res_srtkenmerk_kenmerktype k_type,
                         DECODE (
                            sk.res_srtkenmerk_kenmerktype,
                            'R',
                            flx.getdomeinwaarde (
                               sk.fac_kenmerkdomein_key,
                               kw.res_kenmerkreservering_waarde
                            ),
                            'S',
                            flx.getdomeinwaarde (
                               sk.fac_kenmerkdomein_key,
                               kw.res_kenmerkreservering_waarde
                            ),
                            kw.res_kenmerkreservering_waarde
                         )
                            k_waarde
                  FROM   res_v_aanwezigkenmerkwaarde kw,
                         res_kenmerk k,
                         res_srtkenmerk sk
                 WHERE   kw.res_kenmerk_key = k.res_kenmerk_key
                         AND k.res_srtkenmerk_key = sk.res_srtkenmerk_key)
               rvck
            ON x.res_rsv_ruimte_key = rvck.res_rsv_ruimte_key;

/* ROOT VIEWS for User defined Reports (UDR) */
CREATE_VIEW(res_v_udr_reservering, 1)
(
   key,
   nummer,
   res_omschrijving,
   invoerdatum,
   datum,
   gastheer,
   contact,
   invoerder,
   kostensoortgroep,
   kostensoort,
   kpn,
   kpn_omschrijving,
   kpn_extern,
   fclt_3d_afdeling_key,
   afdeling_code,
   afdeling_omschrijving,
   regio_omschrijving,
   district_omschijving,
   fclt_3d_locatie_key,
   locatie,
   locatie_omschrijving,
   locatie_plaats,
   gebouw,
   verdieping,
   ruimte,
   opstelling,
   capaciteit,
   no_show,
   mandaat,
   personeelsnr,
   fclt_3d_discipline_key,
   catalogus_key,
   catalogus,
   reserveerbare_ruimte,
   bezoekers,
   van,
   tot,
   duur,
   status,
   bostatus,
   activiteit,
   srtactiviteit_key,
   activiteitsoort
)
AS
   SELECT rrr.res_rsv_ruimte_key,
          res.res_reservering_key || '/' || rrr.res_rsv_ruimte_volgnr,
          rrr.res_rsv_ruimte_omschrijving,
          rrr.res_rsv_ruimte_aanmaak,
          rrr.res_rsv_ruimte_van,
          (SELECT prs_perslid_naam_full
             FROM prs_v_perslid_fullnames_all pf
            WHERE pf.prs_perslid_key = rrr.res_rsv_ruimte_host_key),
          (SELECT prs_perslid_naam_full
             FROM prs_v_perslid_fullnames_all pf
            WHERE pf.prs_perslid_key = rrr.res_rsv_ruimte_contact_key),
          (SELECT pf.prs_perslid_naam_full
             FROM fac_tracking tr, fac_srtnotificatie str, prs_v_perslid_fullnames_all pf
            WHERE     tr.prs_perslid_key = pf.prs_perslid_key
                  AND str.fac_srtnotificatie_code = 'RESNEW'
                  AND tr.fac_srtnotificatie_key = str.fac_srtnotificatie_key
                  AND tr.fac_tracking_refkey = rrr.res_rsv_ruimte_key),
          (SELECT ksg.prs_kostensoortgrp_oms
             FROM prs_kostensoortgrp ksg, prs_kostensoort ks
            WHERE ksg.prs_kostensoortgrp_key = ks.prs_kostensoortgrp_key
                  AND ks.prs_kostensoort_key =
                        (SELECT disc.prs_kostensoort_key
                           FROM res_discipline disc
                          WHERE disc.ins_discipline_key =
                                   (SELECT ins_discipline_key
                                      FROM ins_tab_discipline d,
                                           res_ruimte_opstelling ro,
                                           res_ruimte rr
                                     WHERE     rrr.res_ruimte_opstel_key = ro.res_ruimte_opstel_key
                                           AND ro.res_ruimte_key = rr.res_ruimte_key
                                           AND rr.res_discipline_key = d.ins_discipline_key)))
             kostensoortgroep,
          (SELECT ks.prs_kostensoort_oms
             FROM prs_kostensoort ks
            WHERE ks.prs_kostensoort_key =
                     (SELECT disc.prs_kostensoort_key
                        FROM res_discipline disc
                       WHERE disc.ins_discipline_key =
                                (SELECT ins_discipline_key
                                   FROM ins_tab_discipline d,
                                        res_ruimte_opstelling ro,
                                        res_ruimte rr
                                  WHERE     rrr.res_ruimte_opstel_key = ro.res_ruimte_opstel_key
                                        AND ro.res_ruimte_key = rr.res_ruimte_key
                                        AND rr.res_discipline_key = d.ins_discipline_key)))
             kostensoort,
          k.prs_kostenplaats_nr,
          k.prs_kostenplaats_omschrijving,
          k.prs_kostenplaats_extern,
          a.prs_afdeling_key,
          a.prs_afdeling_naam,
          a.prs_afdeling_omschrijving,
          (SELECT rg.alg_regio_omschrijving
             FROM alg_regio rg,
                  alg_district d,
                  alg_locatie l,
                  alg_gebouw g,
                  alg_verdieping v,
                  alg_ruimte r
            WHERE     rg.alg_regio_key = d.alg_regio_key
                  AND d.alg_district_key = l.alg_district_key
                  AND l.alg_locatie_key = g.alg_locatie_key
                  AND g.alg_gebouw_key = v.alg_gebouw_key
                  AND v.alg_verdieping_key = r.alg_verdieping_key
                  AND r.alg_ruimte_key = r2a.alg_ruimte_key),
          (SELECT d.alg_district_omschrijving
             FROM alg_district d,
                  alg_locatie l,
                  alg_gebouw g,
                  alg_verdieping v,
                  alg_ruimte r
            WHERE     d.alg_district_key = l.alg_district_key
                  AND l.alg_locatie_key = g.alg_locatie_key
                  AND g.alg_gebouw_key = v.alg_gebouw_key
                  AND v.alg_verdieping_key = r.alg_verdieping_key
                  AND r.alg_ruimte_key = r2a.alg_ruimte_key),
          (SELECT l.alg_locatie_key
             FROM alg_locatie l,
                  alg_gebouw g,
                  alg_verdieping v,
                  alg_ruimte r
            WHERE     l.alg_locatie_key = g.alg_locatie_key
                  AND g.alg_gebouw_key = v.alg_gebouw_key
                  AND v.alg_verdieping_key = r.alg_verdieping_key
                  AND r.alg_ruimte_key = r2a.alg_ruimte_key),
          (SELECT alg_locatie_code
             FROM alg_locatie l,
                  alg_gebouw g,
                  alg_verdieping v,
                  alg_ruimte r
            WHERE     l.alg_locatie_key = g.alg_locatie_key
                  AND g.alg_gebouw_key = v.alg_gebouw_key
                  AND v.alg_verdieping_key = r.alg_verdieping_key
                  AND r.alg_ruimte_key = r2a.alg_ruimte_key),
          (SELECT alg_locatie_omschrijving
             FROM alg_locatie l,
                  alg_gebouw g,
                  alg_verdieping v,
                  alg_ruimte r
            WHERE     l.alg_locatie_key = g.alg_locatie_key
                  AND g.alg_gebouw_key = v.alg_gebouw_key
                  AND v.alg_verdieping_key = r.alg_verdieping_key
                  AND r.alg_ruimte_key = r2a.alg_ruimte_key),
          (SELECT alg_locatie_plaats
             FROM alg_locatie l,
                  alg_gebouw g,
                  alg_verdieping v,
                  alg_ruimte r
            WHERE     l.alg_locatie_key = g.alg_locatie_key
                  AND g.alg_gebouw_key = v.alg_gebouw_key
                  AND v.alg_verdieping_key = r.alg_verdieping_key
                  AND r.alg_ruimte_key = r2a.alg_ruimte_key),
          (SELECT alg_gebouw_code
             FROM alg_gebouw g, alg_verdieping v, alg_ruimte r
            WHERE     g.alg_gebouw_key = v.alg_gebouw_key
                  AND v.alg_verdieping_key = r.alg_verdieping_key
                  AND r.alg_ruimte_key = r2a.alg_ruimte_key),
          (SELECT alg_verdieping_code
             FROM alg_verdieping v, alg_ruimte r
            WHERE v.alg_verdieping_key = r.alg_verdieping_key
                  AND r.alg_ruimte_key = r2a.alg_ruimte_key),
          r2a.ruimte_nr,
          r2a.opstelling,
          r2a.capaciteit,
          rrr.res_rsv_ruimte_noshow,
          NVL ( (SELECT pr.fac_profiel_limiet
                   FROM fac_profiel pr
                  WHERE p.fac_profiel_key = pr.fac_profiel_key), 0),
          prs_perslid_nr,
          (SELECT ins_discipline_key
             FROM ins_tab_discipline d, res_ruimte_opstelling ro, res_ruimte rr
            WHERE     rrr.res_ruimte_opstel_key = ro.res_ruimte_opstel_key
                  AND ro.res_ruimte_key = rr.res_ruimte_key
                  AND rr.res_discipline_key = d.ins_discipline_key),
          (SELECT ins_discipline_key
             FROM ins_tab_discipline d, res_ruimte_opstelling ro, res_ruimte rr
            WHERE     rrr.res_ruimte_opstel_key = ro.res_ruimte_opstel_key
                  AND ro.res_ruimte_key = rr.res_ruimte_key
                  AND rr.res_discipline_key = d.ins_discipline_key),
          (SELECT ins_discipline_omschrijving
             FROM ins_tab_discipline d, res_ruimte_opstelling ro, res_ruimte rr
            WHERE     rrr.res_ruimte_opstel_key = ro.res_ruimte_opstel_key
                  AND ro.res_ruimte_key = rr.res_ruimte_key
                  AND rr.res_discipline_key = d.ins_discipline_key),
          DECODE (rrr.alg_ruimte_key, NULL, 'Ja', 'Nee'),
          rrr.res_rsv_ruimte_bezoekers,
          rrr.res_rsv_ruimte_van,
          rrr.res_rsv_ruimte_tot,
          COALESCE ( (rrr.res_rsv_ruimte_tot - rrr.res_rsv_ruimte_van) * 24, 0),
          (SELECT res_status_fo_omschrijving
             FROM res_status_fo rs
            WHERE rs.res_status_fo_key = rrr.res_status_fo_key),
          (SELECT res_status_bo_omschrijving
             FROM res_status_bo rs
            WHERE rs.res_status_bo_key = rrr.res_status_bo_key),
          ra.res_activiteit_omschrijving,
          rsa.res_srtactiviteit_key,
          rsa.res_srtactiviteit_omschrijving
     FROM res_v_aanwezigrsv_ruimte rrr,
          res_activiteit ra,
          res_srtactiviteit rsa,
          res_reservering res,
          prs_kostenplaats k,
          prs_perslid p,
          prs_afdeling a,
          (  SELECT res_rsv_ruimte_key,
                    MAX (o.res_opstelling_omschrijving) opstelling,
                    MAX (ro.res_ruimte_opstel_bezoekers) capaciteit,
                    MAX (ra.alg_ruimte_key) alg_ruimte_key,
                    MAX (rr.res_ruimte_nr) ruimte_nr
               FROM res_rsv_ruimte r,
                    res_ruimte_opstelling ro,
                    res_opstelling o,
                    res_ruimte rr,
                    res_alg_ruimte ra
              WHERE     r.res_rsv_ruimte_verwijder IS NULL
                    AND r.res_ruimte_opstel_key = ro.res_ruimte_opstel_key
                    AND ro.res_ruimte_key = rr.res_ruimte_key
                    AND ro.res_opstelling_key = o.res_opstelling_key
                    AND rr.res_ruimte_key = ra.res_ruimte_key
           GROUP BY res_rsv_ruimte_key
           UNION ALL
           SELECT res_rsv_ruimte_key,
                  '' opstelling,
                  NULL capaciteit,
                  rrr.alg_ruimte_key,
                  r.alg_ruimte_nr
             FROM res_rsv_ruimte rrr, alg_ruimte r
            WHERE rrr.alg_ruimte_key IS NOT NULL AND r.alg_ruimte_key = rrr.alg_ruimte_key) r2a
    WHERE     rrr.res_reservering_key = res.res_reservering_key
          AND rrr.res_rsv_ruimte_key = r2a.res_rsv_ruimte_key(+)
          AND rrr.prs_kostenplaats_key = k.prs_kostenplaats_key(+)
          AND rrr.res_activiteit_key = ra.res_activiteit_key
          AND ra.res_srtactiviteit_key = rsa.res_srtactiviteit_key
          AND rrr.res_rsv_ruimte_host_key = p.prs_perslid_key
          AND p.prs_afdeling_key = a.prs_afdeling_key
          AND rrr.res_rsv_ruimte_van >= TO_DATE ('01-01-2010', 'DD-MM-YYYY');

CREATE_VIEW(res_v_udr_reserveringincl, 1)
(
   key,
   nummer,
   res_omschrijving,
   invoerdatum,
   datum,
   gastheer,
   contact,
   invoerder,
   kostensoortgroep,
   kostensoort,
   kpn,
   kpn_omschrijving,
   kpn_extern,
   fclt_3d_afdeling_key,
   afdeling_code,
   afdeling_omschrijving,
   regio_omschrijving,
   district_omschijving,
   fclt_3d_locatie_key,
   locatie,
   locatie_omschrijving,
   locatie_plaats,
   gebouw,
   verdieping,
   ruimte,
   opstelling,
   capaciteit,
   no_show,
   mandaat,
   personeelsnr,
   fclt_3d_discipline_key,
   catalogus_key,
   catalogus,
   reserveerbare_ruimte,
   bezoekers,
   van,
   tot,
   duur,
   status,
   bostatus,
   activiteit,
   srtactiviteit_key,
   activiteitsoort,
   voorziening_discipline_key,
   voorziening_type,
   voorziening_catalogus,
   leverancier,
   voorziening_product_key,
   voorziening_product,
   voorziening_totaalprijs,
   voorziening_van,
   voorziening_tot,
   voorziening_aantal,
   voorziening_prijs
)
AS
   SELECT rrr.res_rsv_ruimte_key,
          res.res_reservering_key || '/' || rrr.res_rsv_ruimte_volgnr,
          rrr.res_rsv_ruimte_omschrijving,
          COALESCE (rrr.res_rsv_ruimte_aanmaak, voorz.van),
          COALESCE (rrr.res_rsv_ruimte_van, voorz.van),
          (SELECT prs_perslid_naam_full
             FROM prs_v_perslid_fullnames_all pf
            WHERE pf.prs_perslid_key = rrr.res_rsv_ruimte_host_key),
          (SELECT prs_perslid_naam_full
             FROM prs_v_perslid_fullnames_all pf
            WHERE pf.prs_perslid_key = rrr.res_rsv_ruimte_contact_key),
          (SELECT pf.prs_perslid_naam_full
             FROM fac_tracking tr, fac_srtnotificatie str, prs_v_perslid_fullnames_all pf
            WHERE     tr.prs_perslid_key = pf.prs_perslid_key
                  AND str.fac_srtnotificatie_code = 'RESNEW'
                  AND tr.fac_srtnotificatie_key = str.fac_srtnotificatie_key
                  AND tr.fac_tracking_refkey = rrr.res_rsv_ruimte_key),
          (SELECT ksg.prs_kostensoortgrp_oms
             FROM prs_kostensoortgrp ksg, prs_kostensoort ks
            WHERE ksg.prs_kostensoortgrp_key = ks.prs_kostensoortgrp_key
                  AND ks.prs_kostensoort_key =
                        (SELECT disc.prs_kostensoort_key
                           FROM res_discipline disc
                          WHERE disc.ins_discipline_key =
                                   COALESCE (
                                      voorz.ins_discipline_key,
                                      (SELECT ins_discipline_key
                                         FROM ins_tab_discipline d,
                                              res_ruimte_opstelling ro,
                                              res_ruimte rr
                                        WHERE rrr.res_ruimte_opstel_key = ro.res_ruimte_opstel_key
                                              AND ro.res_ruimte_key = rr.res_ruimte_key
                                              AND rr.res_discipline_key = d.ins_discipline_key))))
             kostensoortgroep,
          (SELECT ks.prs_kostensoort_oms
             FROM prs_kostensoort ks
            WHERE ks.prs_kostensoort_key =
                     (SELECT disc.prs_kostensoort_key
                        FROM res_discipline disc
                       WHERE disc.ins_discipline_key =
                                COALESCE (
                                   voorz.ins_discipline_key,
                                   (SELECT ins_discipline_key
                                      FROM ins_tab_discipline d,
                                           res_ruimte_opstelling ro,
                                           res_ruimte rr
                                     WHERE     rrr.res_ruimte_opstel_key = ro.res_ruimte_opstel_key
                                           AND ro.res_ruimte_key = rr.res_ruimte_key
                                           AND rr.res_discipline_key = d.ins_discipline_key))))
             kostensoort,
          k.prs_kostenplaats_nr,
          k.prs_kostenplaats_omschrijving,
          k.prs_kostenplaats_extern,
          a.prs_afdeling_key,
          a.prs_afdeling_naam,
          a.prs_afdeling_omschrijving,
          (SELECT rg.alg_regio_omschrijving
             FROM alg_regio rg,
                  alg_district d,
                  alg_locatie l,
                  alg_gebouw g,
                  alg_verdieping v,
                  alg_ruimte r
            WHERE     rg.alg_regio_key = d.alg_regio_key
                  AND d.alg_district_key = l.alg_district_key
                  AND l.alg_locatie_key = g.alg_locatie_key
                  AND g.alg_gebouw_key = v.alg_gebouw_key
                  AND v.alg_verdieping_key = r.alg_verdieping_key
                  AND r.alg_ruimte_key = r2a.alg_ruimte_key),
          (SELECT d.alg_district_omschrijving
             FROM alg_district d,
                  alg_locatie l,
                  alg_gebouw g,
                  alg_verdieping v,
                  alg_ruimte r
            WHERE     d.alg_district_key = l.alg_district_key
                  AND l.alg_locatie_key = g.alg_locatie_key
                  AND g.alg_gebouw_key = v.alg_gebouw_key
                  AND v.alg_verdieping_key = r.alg_verdieping_key
                  AND r.alg_ruimte_key = r2a.alg_ruimte_key),
          (SELECT l.alg_locatie_key
             FROM alg_locatie l,
                  alg_gebouw g,
                  alg_verdieping v,
                  alg_ruimte r
            WHERE     l.alg_locatie_key = g.alg_locatie_key
                  AND g.alg_gebouw_key = v.alg_gebouw_key
                  AND v.alg_verdieping_key = r.alg_verdieping_key
                  AND r.alg_ruimte_key = r2a.alg_ruimte_key),
          (SELECT alg_locatie_code
             FROM alg_locatie l,
                  alg_gebouw g,
                  alg_verdieping v,
                  alg_ruimte r
            WHERE     l.alg_locatie_key = g.alg_locatie_key
                  AND g.alg_gebouw_key = v.alg_gebouw_key
                  AND v.alg_verdieping_key = r.alg_verdieping_key
                  AND r.alg_ruimte_key = r2a.alg_ruimte_key),
          (SELECT alg_locatie_omschrijving
             FROM alg_locatie l,
                  alg_gebouw g,
                  alg_verdieping v,
                  alg_ruimte r
            WHERE     l.alg_locatie_key = g.alg_locatie_key
                  AND g.alg_gebouw_key = v.alg_gebouw_key
                  AND v.alg_verdieping_key = r.alg_verdieping_key
                  AND r.alg_ruimte_key = r2a.alg_ruimte_key),
          (SELECT alg_locatie_plaats
             FROM alg_locatie l,
                  alg_gebouw g,
                  alg_verdieping v,
                  alg_ruimte r
            WHERE     l.alg_locatie_key = g.alg_locatie_key
                  AND g.alg_gebouw_key = v.alg_gebouw_key
                  AND v.alg_verdieping_key = r.alg_verdieping_key
                  AND r.alg_ruimte_key = r2a.alg_ruimte_key),
          (SELECT alg_gebouw_code
             FROM alg_gebouw g, alg_verdieping v, alg_ruimte r
            WHERE     g.alg_gebouw_key = v.alg_gebouw_key
                  AND v.alg_verdieping_key = r.alg_verdieping_key
                  AND r.alg_ruimte_key = r2a.alg_ruimte_key),
          (SELECT alg_verdieping_code
             FROM alg_verdieping v, alg_ruimte r
            WHERE v.alg_verdieping_key = r.alg_verdieping_key
                  AND r.alg_ruimte_key = r2a.alg_ruimte_key),
          r2a.ruimte_nr,
          r2a.opstelling,
          r2a.capaciteit,
          rrr.res_rsv_ruimte_noshow,
          NVL ( (SELECT pr.fac_profiel_limiet
                   FROM fac_profiel pr
                  WHERE p.fac_profiel_key = pr.fac_profiel_key), 0),
          prs_perslid_nr,
          COALESCE (
             voorz.ins_discipline_key,
             (SELECT ins_discipline_key
                FROM ins_tab_discipline d, res_ruimte_opstelling ro, res_ruimte rr
               WHERE     rrr.res_ruimte_opstel_key = ro.res_ruimte_opstel_key
                     AND ro.res_ruimte_key = rr.res_ruimte_key
                     AND rr.res_discipline_key = d.ins_discipline_key)),
          (SELECT ins_discipline_key
             FROM ins_tab_discipline d, res_ruimte_opstelling ro, res_ruimte rr
            WHERE     rrr.res_ruimte_opstel_key = ro.res_ruimte_opstel_key
                  AND ro.res_ruimte_key = rr.res_ruimte_key
                  AND rr.res_discipline_key = d.ins_discipline_key),
          (SELECT ins_discipline_omschrijving
             FROM ins_tab_discipline d, res_ruimte_opstelling ro, res_ruimte rr
            WHERE     rrr.res_ruimte_opstel_key = ro.res_ruimte_opstel_key
                  AND ro.res_ruimte_key = rr.res_ruimte_key
                  AND rr.res_discipline_key = d.ins_discipline_key),
          DECODE (rrr.alg_ruimte_key, NULL, 'Ja', 'Nee'),
          rrr.res_rsv_ruimte_bezoekers,
          rrr.res_rsv_ruimte_van,
          rrr.res_rsv_ruimte_tot,
          COALESCE ( (rrr.res_rsv_ruimte_tot - rrr.res_rsv_ruimte_van) * 24, 0),
          (SELECT res_status_fo_omschrijving
             FROM res_status_fo rs
            WHERE rs.res_status_fo_key = rrr.res_status_fo_key),
          (SELECT res_status_bo_omschrijving
             FROM res_status_bo rs
            WHERE rs.res_status_bo_key = rrr.res_status_bo_key),
          ra.res_activiteit_omschrijving,
          rsa.res_srtactiviteit_key,
          rsa.res_srtactiviteit_omschrijving,
          voorz.ins_discipline_key,
          voorz.vtype,
          voorz.catalogus,
          (SELECT prs_bedrijf_naam
             FROM res_disc_params rdp, prs_bedrijf b
            WHERE     rdp.prs_bedrijf_key = b.prs_bedrijf_key
                  AND rdp.res_ins_discipline_key = voorz.ins_discipline_key),
          voorz.product_key,
          voorz.product,
          voorz.totaalprijs,
          TO_CHAR (voorz.van, 'hh24:mi'),
          TO_CHAR (voorz.tot, 'hh24:mi'),
          voorz.aantal,
          voorz.prijs
     FROM res_v_aanwezigrsv_ruimte rrr,
          res_activiteit ra,
          res_srtactiviteit rsa,
          res_reservering res,
          prs_kostenplaats k,
          prs_perslid p,
          prs_afdeling a,
          (  SELECT res_rsv_ruimte_key,
                    MAX (o.res_opstelling_omschrijving) opstelling,
                    MAX (ro.res_ruimte_opstel_bezoekers) capaciteit,
                    MAX (ra.alg_ruimte_key) alg_ruimte_key,
                    MAX (rr.res_ruimte_nr) ruimte_nr
               FROM res_rsv_ruimte r,
                    res_ruimte_opstelling ro,
                    res_opstelling o,
                    res_ruimte rr,
                    res_alg_ruimte ra
              WHERE     r.res_rsv_ruimte_verwijder IS NULL
                    AND r.res_ruimte_opstel_key = ro.res_ruimte_opstel_key
                    AND ro.res_ruimte_key = rr.res_ruimte_key
                    AND ro.res_opstelling_key = o.res_opstelling_key
                    AND rr.res_ruimte_key = ra.res_ruimte_key
           GROUP BY res_rsv_ruimte_key
           UNION ALL
           SELECT res_rsv_ruimte_key,
                  '' opstelling,
                  NULL capaciteit,
                  rrr.alg_ruimte_key,
                  r.alg_ruimte_nr
             FROM res_rsv_ruimte rrr, alg_ruimte r
            WHERE rrr.alg_ruimte_key IS NOT NULL AND r.alg_ruimte_key = rrr.alg_ruimte_key) r2a,
          (SELECT rrd.res_rsv_ruimte_key res_rsv_ruimte_key,
                  -rd.res_deel_key product_key,
                  rd.res_deel_omschrijving product,
                  DECODE (
                     rd.res_deel_prijs_vast,
                     1,
                     NVL (rrd.res_rsv_deel_prijs, rd.res_deel_prijs),
                       (rrd.res_rsv_deel_tot - rrd.res_rsv_deel_van)
                     * 24
                     * NVL (rrd.res_rsv_deel_prijs, rd.res_deel_prijs))
                     totaalprijs,
                  rrd.res_rsv_deel_van van,
                  rrd.res_rsv_deel_tot tot,
                  (rrd.res_rsv_deel_tot - rrd.res_rsv_deel_van) * 24 aantal,
                  NVL (rrd.res_rsv_deel_prijs, rd.res_deel_prijs) prijs,
                  c.ins_discipline_key ins_discipline_key,
                  c.ins_discipline_omschrijving catalogus,
                  'object' vtype
             FROM res_v_aanwezigrsv_deel rrd,
                  res_deel rd,
                  ins_deel d,
                  ins_tab_discipline c
            WHERE     rrd.res_deel_key = rd.res_deel_key
                  AND d.ins_deel_key = rd.res_ins_deel_key
                  AND rrd.res_rsv_ruimte_key IS NOT NULL
                  AND c.ins_discipline_key = rd.res_discipline_key
           UNION ALL
           SELECT rra.res_rsv_ruimte_key res_rsv_ruimte_key,
                  ra.res_artikel_key product_key,
                  ra.res_artikel_omschrijving product,
                  NVL (rra.res_rsv_artikel_prijs, rra.res_rsv_artikel_aantal * res_artikel_prijs)
                     totaalprijs,
                  rra.res_rsv_artikel_levering van,
                  NULL tot,
                  rra.res_rsv_artikel_aantal aantal,
                  NVL (rra.res_rsv_artikel_prijs / rra.res_rsv_artikel_aantal, res_artikel_prijs)
                     prijs,
                  c.ins_discipline_key ins_discipline_key,
                  c.ins_discipline_omschrijving catalogus,
                  'consumable' vtype
             FROM res_v_aanwezigrsv_artikel rra, res_artikel ra, ins_tab_discipline c
            WHERE rra.res_artikel_key = ra.res_artikel_key
                  AND ra.res_discipline_key = c.ins_discipline_key) voorz
    WHERE     rrr.res_reservering_key = res.res_reservering_key
          AND rrr.res_rsv_ruimte_key = r2a.res_rsv_ruimte_key(+)
          AND rrr.prs_kostenplaats_key = k.prs_kostenplaats_key(+)
          AND rrr.res_rsv_ruimte_key = voorz.res_rsv_ruimte_key(+)
          AND rrr.res_activiteit_key = ra.res_activiteit_key
          AND ra.res_srtactiviteit_key = rsa.res_srtactiviteit_key
          AND rrr.res_rsv_ruimte_host_key = p.prs_perslid_key
          AND p.prs_afdeling_key = a.prs_afdeling_key
          AND (rrr.res_ruimte_opstel_key IS NOT NULL OR voorz.res_rsv_ruimte_key IS NOT NULL)
          AND rrr.res_rsv_ruimte_van >= TO_DATE ('01-01-2010', 'DD-MM-YYYY');

REGISTERRUN('$Id$')
#endif  // RES
