/* ALG_VIE.SRC
 * $Revision$
 * $Id$
 */

DEFINIEER_VIEW_AANWEZIG(alg_regio, alg_regio_verwijder,
    alg_v_aanwezigregio,0);

DEFINIEER_VIEW_AANWEZIG(alg_district, alg_district_verwijder,
    alg_v_aanwezigdistrict,0);

DEFINIEER_VIEW_AANWEZIG(alg_locatie, alg_locatie_verwijder,
    alg_v_aanweziglocatie,0);

DEFINIEER_VIEW_AANWEZIG(alg_srtgebouw, alg_srtgebouw_verwijder,
    alg_v_aanwezigsrtgebouw,0);

DEFINIEER_VIEW_AANWEZIG(alg_gebouw, alg_gebouw_verwijder,
    alg_v_aanweziggebouw,0);

DEFINIEER_VIEW_AANWEZIG(alg_verdieping, alg_verdieping_verwijder,
    alg_v_aanwezigverdieping,0);

DEFINIEER_VIEW_AANWEZIG(alg_srtruimte, alg_srtruimte_verwijder,
    alg_v_aanwezigsrtruimte,0);

DEFINIEER_VIEW_AANWEZIG(alg_ruimte, alg_ruimte_verwijder,
    alg_v_aanwezigruimte,0);

DEFINIEER_VIEW_AANWEZIG(alg_terreinsector, alg_terreinsector_verwijder,
    alg_v_aanwezigterreinsector,0);

CREATE_VIEW(alg_v_district_gegevens,0) AS
    SELECT ALG_R.alg_regio_key, ALG_R.alg_regio_omschrijving,
           ALG_R.alg_regio_upper, ALG_D.alg_district_key,
           ALG_D.alg_district_omschrijving, ALG_D.alg_district_upper
    FROM alg_regio ALG_R, alg_v_aanwezigdistrict ALG_D
    WHERE ALG_R.alg_regio_key = ALG_D.alg_regio_key;

CREATE_VIEW(alg_v_locatie_gegevens,0)
                     (alg_regio_key,
                      alg_regio_omschrijving,
                      alg_regio_upper,
                      alg_district_key,
                      alg_district_omschrijving,
                      alg_district_upper,
                      alg_locatie_key,
                      alg_locatie_omschrijving,
                      alg_locatie_code,
                      alg_locatie_upper,
                      alg_locatie_tekening) AS
    SELECT ALG_R.alg_regio_key,
           ALG_R.alg_regio_omschrijving,
           ALG_R.alg_regio_upper,
           ALG_D.alg_district_key,
           ALG_D.alg_district_omschrijving,
           ALG_D.alg_district_upper,
           ALG_L.alg_locatie_key,
           ALG_L.alg_locatie_omschrijving,
           ALG_L.alg_locatie_code,
           ALG_L.alg_locatie_upper,
           ALG_L.alg_locatie_tekening
    FROM alg_regio ALG_R,  alg_district ALG_D,
         alg_v_aanweziglocatie ALG_L
    WHERE ALG_D.alg_district_key = ALG_L.alg_district_key AND
          ALG_R.alg_regio_key = ALG_D.alg_regio_key;

CREATE_VIEW(alg_v_gebouw_gegevens,0) AS
    SELECT ALG_L.alg_locatie_key, ALG_L.alg_locatie_omschrijving,
           ALG_L.alg_locatie_code, ALG_L.alg_locatie_upper,
           ALG_L.alg_locatie_tekening,
           ALG_G.alg_gebouw_key, ALG_G.alg_gebouw_omschrijving,
           ALG_G.alg_gebouw_code, ALG_G.alg_gebouw_naam,
           ALG_G.alg_gebouw_upper, ALG_S.alg_srtgebouw_key,
           ALG_S.alg_srtgebouw_omschrijving,
           ALG_G.ALG_GEBOUW_BRUTO_VLOEROPP,
           ALG_G.ALG_GEBOUW_INHOUD,
           ALG_G.ALG_GEBOUW_OMTREK,
           ALG_G.ALG_GEBOUW_GETEKEND
    FROM alg_locatie ALG_L, alg_v_aanweziggebouw ALG_G,
         alg_v_aanwezigsrtgebouw ALG_S
    WHERE ALG_L.alg_locatie_key = ALG_G.alg_locatie_key AND
          ALG_G.alg_srtgebouw_key = ALG_S.alg_srtgebouw_key (+);

CREATE_VIEW(alg_v_verdieping_gegevens,0) AS
    SELECT ALG_L.alg_locatie_key, ALG_L.alg_district_key,
           ALG_L.alg_locatie_omschrijving, ALG_L.alg_locatie_code,
           ALG_L.alg_locatie_upper, ALG_G.alg_gebouw_key,
           ALG_G.alg_srtgebouw_key, ALG_G.alg_gebouw_naam, ALG_G.alg_gebouw_omschrijving,
           ALG_G.alg_gebouw_upper, ALG_V.alg_verdieping_key,
           ALG_V.alg_verdieping_omschrijving, ALG_V.alg_verdieping_upper,
           ALG_V.alg_verdieping_volgnr, ALG_V.alg_verdieping_code,
           ALG_V.alg_verdieping_tekening,
           ALG_V.alg_verdieping_in_bewerking
    FROM alg_locatie ALG_L, alg_gebouw ALG_G,
         alg_v_aanwezigverdieping ALG_V
    WHERE
          ALG_G.alg_gebouw_key = ALG_V.alg_gebouw_key AND
          ALG_L.alg_locatie_key = ALG_G.alg_locatie_key;

CREATE_VIEW(alg_v_srtvloer, 0)
           (alg_srtvloer_key,
            alg_srtvloer_omschrijving,
            alg_srtvloer_upper,
            alg_srtvloer_aanmaak,
            alg_srtvloer_verwijder) AS
     SELECT fac_usrdata_key,
            fac_usrdata_omschr,
            fac_usrdata_upper,
            fac_usrdata_aanmaak,
            fac_usrdata_verwijder
       FROM fac_usrdata FAC_D, fac_kenmerkdomein ALG_R,
            alg_kenmerk ALG_K
      WHERE FAC_D.fac_usrtab_key = ALG_R.fac_usrtab_key
        AND ALG_R.fac_kenmerkdomein_key = ALG_K.fac_kenmerkdomein_key
        AND ALG_K.alg_kenmerk_key = 2    /* systeemkenmerk 2 = Vloersoort */
;

DEFINIEER_VIEW_AANWEZIG(alg_v_srtvloer, alg_srtvloer_verwijder,
    alg_v_aanwezigsrtvloer,0);

CREATE_VIEW(alg_v_ruimte_gegevens, 0) AS
   SELECT alg_l.alg_locatie_key, alg_l.alg_district_key, alg_l.alg_locatie_omschrijving, alg_l.alg_locatie_code,
          alg_l.alg_locatie_upper, alg_g.alg_gebouw_key, alg_g.alg_srtgebouw_key, alg_g.alg_gebouw_omschrijving, alg_g.alg_gebouw_naam,
          alg_g.alg_gebouw_upper, alg_v.alg_verdieping_key, alg_v.alg_verdieping_omschrijving,
          alg_v.alg_verdieping_upper, alg_v.alg_verdieping_volgnr, alg_v.alg_verdieping_code,
          alg_v.alg_verdieping_tekening, alg_r.alg_ruimte_key, alg_r.alg_srtruimte_key, alg_r.alg_ruimte_nr,
          alg_r.alg_ruimte_acadkey, alg_r.alg_ruimte_omschrijving, alg_r.alg_ruimte_upper_nr,
          (SELECT alg_s.alg_srtruimte_omschrijving
             FROM alg_v_aanwezigsrtruimte alg_s
            WHERE alg_r.alg_srtruimte_key = alg_s.alg_srtruimte_key) alg_srtruimte_omschrijving,
          alg_r.alg_ruimte_vloer_omschrijving, alg_r.alg_ruimte_bruto_vloeropp, alg_r.alg_ruimte_opp_gevelglas,
          alg_r.alg_ruimte_opp_separatieglas, alg_r.alg_ruimte_opp_gevelbekleding,
             alg_l.alg_locatie_code
          || '-'
          || alg_g.alg_gebouw_code
          || '-'
          || alg_v.alg_verdieping_code
          || '-'
          || alg_r.alg_ruimte_nr alg_ruimte_aanduiding,
          alg_r.alg_ruimte_omtrek, alg_r.alg_ruimte_inhoud, alg_r.alg_ruimte_getekend, alg_r.alg_ruimte_opmerking,
          alg_ruimte_opp_alt1, alg_ruimte_opp_alt2
     FROM alg_locatie alg_l, alg_gebouw alg_g, alg_verdieping alg_v, alg_v_aanwezigruimte alg_r
    WHERE alg_v.alg_verdieping_key = alg_r.alg_verdieping_key
      AND alg_g.alg_gebouw_key = alg_v.alg_gebouw_key
      AND alg_l.alg_locatie_key = alg_g.alg_locatie_key;

CREATE_VIEW(alg_v_ruimte_gegevens_all, 0) AS
   SELECT alg_l.alg_locatie_key, alg_l.alg_district_key, alg_l.alg_locatie_omschrijving, alg_l.alg_locatie_adres, alg_l.alg_locatie_code,
          alg_l.alg_locatie_upper, alg_g.alg_gebouw_key, alg_g.alg_srtgebouw_key, alg_g.alg_gebouw_omschrijving, alg_g.alg_gebouw_naam,
          alg_g.alg_gebouw_upper, alg_v.alg_verdieping_key, alg_v.alg_verdieping_omschrijving,
          alg_v.alg_verdieping_upper, alg_v.alg_verdieping_volgnr, alg_v.alg_verdieping_code,
          alg_v.alg_verdieping_tekening, alg_r.alg_ruimte_key, alg_r.alg_srtruimte_key, alg_r.alg_ruimte_nr,
          alg_r.alg_ruimte_acadkey, alg_r.alg_ruimte_omschrijving, alg_r.alg_ruimte_upper_nr,
          (SELECT alg_s.alg_srtruimte_omschrijving
             FROM alg_v_aanwezigsrtruimte alg_s
            WHERE alg_r.alg_srtruimte_key = alg_s.alg_srtruimte_key) alg_srtruimte_omschrijving,
          alg_r.alg_ruimte_vloer_omschrijving, alg_r.alg_ruimte_bruto_vloeropp, alg_r.alg_ruimte_opp_gevelglas,
          alg_r.alg_ruimte_opp_separatieglas, alg_r.alg_ruimte_opp_gevelbekleding,
             alg_l.alg_locatie_code
          || '-'
          || alg_g.alg_gebouw_code
          || '-'
          || alg_v.alg_verdieping_code
          || '-'
          || alg_r.alg_ruimte_nr alg_ruimte_aanduiding,
          alg_r.alg_ruimte_omtrek, alg_r.alg_ruimte_inhoud, alg_r.alg_ruimte_getekend, alg_r.alg_ruimte_opmerking,
          alg_ruimte_opp_alt1, alg_ruimte_opp_alt2, alg_ruimte_verwijder
     FROM alg_locatie alg_l, alg_gebouw alg_g, alg_verdieping alg_v, alg_ruimte alg_r
    WHERE alg_v.alg_verdieping_key = alg_r.alg_verdieping_key
      AND alg_g.alg_gebouw_key = alg_v.alg_gebouw_key
      AND alg_l.alg_locatie_key = alg_g.alg_locatie_key;

/*
 *  View met alle sleutels van de gemeenschappelijke sequence
 *  alg_s_alg_onroerendgoed_keys, nl. alg_gebouw, alg_verdieping, alg_ruimte en
 *  alg_terreinsector.
 */

CREATE_VIEW(alg_v_onroerendgoed,0) (alg_onroerendgoed_keys,
                                 alg_ruimte_key,
                                 alg_verdieping_key,
                                 alg_gebouw_key,
                                 alg_terreinsector_key,
                                 alg_type) AS
   SELECT ALG_R.alg_ruimte_key,
          ALG_R.alg_ruimte_key,
          ALG_R.alg_verdieping_key,
          ALG_V.alg_gebouw_key,
          to_number(NULL),
          'R'
   FROM alg_v_aanwezigruimte ALG_R, alg_verdieping ALG_V
   WHERE ALG_R.alg_verdieping_key =
         ALG_V.alg_verdieping_key
   UNION ALL
   SELECT ALG_V.alg_verdieping_key,
          to_number(NULL),
          ALG_V.alg_verdieping_key,
          ALG_V.alg_gebouw_key,
          to_number(NULL),
          'V'
   FROM alg_v_aanwezigverdieping ALG_V
   UNION ALL
   SELECT ALG_G.alg_gebouw_key,
          to_number(NULL),
          to_number(NULL),
          ALG_G.alg_gebouw_key,
          to_number(NULL),
          'G'
   FROM alg_v_aanweziggebouw ALG_G
   UNION ALL
   SELECT ALG_T.alg_terreinsector_key,
          to_number(NULL),
          to_number(NULL),
          to_number(NULL),
          ALG_T.alg_terreinsector_key,
          'T'
   FROM alg_v_aanwezigterreinsector ALG_T;


CREATE_VIEW(alg_v_allonroerendgoed,0) (alg_onroerendgoed_keys,
                                 alg_ruimte_key,
                                 alg_verdieping_key,
                                 alg_gebouw_key,
                                 alg_terreinsector_key,
                                 alg_locatie_key,
                                 alg_type) AS
SELECT ALG_R.alg_ruimte_key,
          ALG_R.alg_ruimte_key,
          ALG_R.alg_verdieping_key,
          ALG_V.alg_gebouw_key,
          to_number(NULL),
	  ALG_G.alg_locatie_key,
          'R'
   FROM alg_ruimte ALG_R, alg_verdieping ALG_V, alg_gebouw ALG_G
   WHERE ALG_R.alg_verdieping_key = ALG_V.alg_verdieping_key
     AND ALG_V.alg_gebouw_key = ALG_G.alg_gebouw_key
   UNION
   SELECT ALG_V.alg_verdieping_key,
          to_number(NULL),
          ALG_V.alg_verdieping_key,
          ALG_V.alg_gebouw_key,
          to_number(NULL),
	  ALG_G.alg_locatie_key,
          'V'
   FROM alg_verdieping ALG_V, alg_gebouw ALG_G
   WHERE ALG_V.alg_gebouw_key = ALG_G.alg_gebouw_key
   UNION
   SELECT ALG_G.alg_gebouw_key,
          to_number(NULL),
          to_number(NULL),
          ALG_G.alg_gebouw_key,
          to_number(NULL),
	  ALG_G.alg_locatie_key,
          'G'
   FROM alg_gebouw ALG_G
   UNION
   SELECT ALG_T.alg_terreinsector_key,
          to_number(NULL),
          to_number(NULL),
          to_number(NULL),
          ALG_T.alg_terreinsector_key,
	  ALG_T.alg_locatie_key,
          'T'
   FROM alg_terreinsector ALG_T;


CREATE_VIEW(alg_v_allonrgoed_gegevens,0)
(
   alg_onroerendgoed_keys,
   alg_plaatsaanduiding,
   alg_plaatsomschrijving,
   alg_onroerendgoed_code,
   alg_onroerendgoed_omschrijving,
   alg_ruimte_key,
   alg_ruimte_nr,
   alg_ruimte_omschrijving,
   alg_verdieping_key,
   alg_verdieping_code,
   alg_verdieping_omschrijving,
   alg_gebouw_key,
   alg_gebouw_code,
   alg_gebouw_naam,
   alg_gebouw_toon_telefoon,
   alg_gebouw_toon_email,
   alg_gebouw_toon_kenteken,
   alg_gebouw_groep,
   alg_terreinsector_key,
   alg_terreinsector_code,
   alg_terreinsector_naam,
   alg_locatie_key,
   alg_type
)
AS
   SELECT alg_r.alg_ruimte_key,
          DECODE (SUBSTR (alg_g.alg_gebouw_code, 1, 1), '_', '', alg_g.alg_gebouw_code)
          || DECODE (SUBSTR (alg_v.alg_verdieping_code, 1, 1),
                     '_', '',
                     '-' || alg_v.alg_verdieping_code)
          || DECODE (SUBSTR (alg_r.alg_ruimte_nr, 1, 1), '_', '', '-' || alg_r.alg_ruimte_nr),
          DECODE (
             SUBSTR (alg_g.alg_gebouw_code, 1, 1),
             '_',
             alg_l.alg_locatie_omschrijving,
             DECODE (
                SUBSTR (alg_v.alg_verdieping_code, 1, 1),
                '_',
                alg_g.alg_gebouw_naam,
                DECODE (SUBSTR (alg_r.alg_ruimte_nr, 1, 1), '_', '', alg_r.alg_ruimte_omschrijving))),
          alg_r.alg_ruimte_nr,
          alg_r.alg_ruimte_omschrijving,
          alg_r.alg_ruimte_key,
          alg_r.alg_ruimte_nr,
          alg_r.alg_ruimte_omschrijving,
          alg_r.alg_verdieping_key,
          alg_v.alg_verdieping_code,
          alg_v.alg_verdieping_omschrijving,
          alg_g.alg_gebouw_key,
          alg_g.alg_gebouw_code,
          alg_g.alg_gebouw_naam,
          alg_g.alg_gebouw_toon_telefoon,
          alg_g.alg_gebouw_toon_email,
          alg_g.alg_gebouw_toon_kenteken,
          alg_g.alg_gebouw_groep,
          TO_NUMBER (NULL),
          NULL,
          NULL,
          alg_g.alg_locatie_key,
          'R'
     FROM alg_ruimte alg_r,
          alg_verdieping alg_v,
          alg_gebouw alg_g,
          alg_locatie alg_l
    WHERE     alg_r.alg_verdieping_key = alg_v.alg_verdieping_key
          AND alg_v.alg_gebouw_key = alg_g.alg_gebouw_key
          AND alg_l.alg_locatie_key = alg_g.alg_locatie_key
   UNION ALL
   SELECT alg_v.alg_verdieping_key,
          DECODE (SUBSTR (alg_g.alg_gebouw_code, 1, 1), '_', '', alg_g.alg_gebouw_code)
          || DECODE (SUBSTR (alg_v.alg_verdieping_code, 1, 1),
                     '_', '',
                     '-' || alg_v.alg_verdieping_code),
          DECODE (
             SUBSTR (alg_g.alg_gebouw_code, 1, 1),
             '_',
             alg_l.alg_locatie_omschrijving,
             DECODE (SUBSTR (alg_v.alg_verdieping_code, 1, 1),
                     '_', alg_v.alg_verdieping_omschrijving)),
          alg_v.alg_verdieping_code,
          alg_v.alg_verdieping_omschrijving,
          TO_NUMBER (NULL),
          NULL,
          NULL,
          alg_v.alg_verdieping_key,
          alg_v.alg_verdieping_code,
          alg_v.alg_verdieping_omschrijving,
          alg_g.alg_gebouw_key,
          alg_g.alg_gebouw_code,
          alg_g.alg_gebouw_naam,
          alg_g.alg_gebouw_toon_telefoon,
          alg_g.alg_gebouw_toon_email,
          alg_g.alg_gebouw_toon_kenteken,
          alg_g.alg_gebouw_groep,
          TO_NUMBER (NULL),
          NULL,
          NULL,
          alg_g.alg_locatie_key,
          'V'
     FROM alg_verdieping alg_v, alg_gebouw alg_g, alg_locatie alg_l
    WHERE alg_v.alg_gebouw_key = alg_g.alg_gebouw_key
          AND alg_l.alg_locatie_key = alg_g.alg_locatie_key
   UNION ALL
   SELECT alg_g.alg_gebouw_key,
          DECODE (SUBSTR (alg_g.alg_gebouw_code, 1, 1), '_', '', alg_g.alg_gebouw_code),
          DECODE (SUBSTR (alg_g.alg_gebouw_code, 1, 1),
                  '_', alg_l.alg_locatie_omschrijving,
                  alg_g.alg_gebouw_naam),
          alg_g.alg_gebouw_code,
          alg_g.alg_gebouw_naam,
          TO_NUMBER (NULL),
          NULL,
          NULL,
          TO_NUMBER (NULL),
          NULL,
          NULL,
          alg_g.alg_gebouw_key,
          alg_g.alg_gebouw_code,
          alg_g.alg_gebouw_naam,
          alg_g.alg_gebouw_toon_telefoon,
          alg_g.alg_gebouw_toon_email,
          alg_g.alg_gebouw_toon_kenteken,
          alg_g.alg_gebouw_groep,
          TO_NUMBER (NULL),
          NULL,
          NULL,
          alg_g.alg_locatie_key,
          'G'
     FROM alg_gebouw alg_g, alg_locatie alg_l
    WHERE alg_l.alg_locatie_key = alg_g.alg_locatie_key
   UNION ALL
   SELECT alg_t.alg_terreinsector_key,
          DECODE (SUBSTR (alg_t.alg_terreinsector_code, 1, 1),
                  '_', '',
                  alg_t.alg_terreinsector_code),
          DECODE (SUBSTR (alg_t.alg_terreinsector_code, 1, 1),
                  '_', alg_l.alg_locatie_omschrijving,
                  alg_terreinsector_naam),
          alg_t.alg_terreinsector_code,
          alg_t.alg_terreinsector_naam,
          TO_NUMBER (NULL),
          NULL,
          NULL,
          TO_NUMBER (NULL),
          NULL,
          NULL,
          TO_NUMBER (NULL),
          NULL,
          NULL,
          alg_t.alg_terreinsector_toon_telef,
          alg_t.alg_terreinsector_toon_email,
          alg_t.alg_terreinsector_toon_kentk,
          NULL,
          alg_t.alg_terreinsector_key,
          alg_t.alg_terreinsector_code,
          alg_t.alg_terreinsector_naam,
          alg_t.alg_locatie_key,
          'T'
     FROM alg_terreinsector alg_t, alg_locatie alg_l
    WHERE alg_l.alg_locatie_key = alg_t.alg_locatie_key;

CREATE_VIEW(alg_v_onroerendgoed_gegevens,0)
(
   alg_onroerendgoed_keys,
   alg_plaatsaanduiding,
   alg_plaatsomschrijving,
   alg_onroerendgoed_code,
   alg_onroerendgoed_omschrijving,
   alg_ruimte_key,
   alg_ruimte_nr,
   alg_ruimte_omschrijving,
   alg_verdieping_key,
   alg_verdieping_code,
   alg_verdieping_omschrijving,
   alg_gebouw_key,
   alg_gebouw_code,
   alg_gebouw_naam,
   alg_terreinsector_key,
   alg_terreinsector_code,
   alg_terreinsector_naam,
   alg_locatie_key,
   alg_type
)
AS
   SELECT alg_r.alg_ruimte_key,
          DECODE (SUBSTR (alg_g.alg_gebouw_code, 1, 1), '_', '', alg_g.alg_gebouw_code)
          || DECODE (SUBSTR (alg_v.alg_verdieping_code, 1, 1),
                     '_', '',
                     '-' || alg_v.alg_verdieping_code)
          || DECODE (SUBSTR (alg_r.alg_ruimte_nr, 1, 1), '_', '', '-' || alg_r.alg_ruimte_nr),
          DECODE (
             SUBSTR (alg_g.alg_gebouw_code, 1, 1),
             '_',
             alg_l.alg_locatie_omschrijving,
             DECODE (
                SUBSTR (alg_v.alg_verdieping_code, 1, 1),
                '_',
                alg_g.alg_gebouw_naam,
                DECODE (SUBSTR (alg_r.alg_ruimte_nr, 1, 1), '_', '', alg_r.alg_ruimte_omschrijving))),
          alg_r.alg_ruimte_nr,
          alg_r.alg_ruimte_omschrijving,
          alg_r.alg_ruimte_key,
          alg_r.alg_ruimte_nr,
          alg_r.alg_ruimte_omschrijving,
          alg_r.alg_verdieping_key,
          alg_v.alg_verdieping_code,
          alg_v.alg_verdieping_omschrijving,
          alg_g.alg_gebouw_key,
          alg_g.alg_gebouw_code,
          alg_g.alg_gebouw_naam,
          TO_NUMBER (NULL),
          NULL,
          NULL,
          alg_g.alg_locatie_key,
          'R'
     FROM alg_ruimte alg_r,
          alg_verdieping alg_v,
          alg_gebouw alg_g,
          alg_locatie alg_l
    WHERE     alg_r.alg_verdieping_key = alg_v.alg_verdieping_key
          AND alg_v.alg_gebouw_key = alg_g.alg_gebouw_key
          AND alg_l.alg_locatie_key = alg_g.alg_locatie_key
   UNION ALL
   SELECT alg_v.alg_verdieping_key,
          DECODE (SUBSTR (alg_g.alg_gebouw_code, 1, 1), '_', '', alg_g.alg_gebouw_code)
          || DECODE (SUBSTR (alg_v.alg_verdieping_code, 1, 1),
                     '_', '',
                     '-' || alg_v.alg_verdieping_code),
          DECODE (
             SUBSTR (alg_g.alg_gebouw_code, 1, 1),
             '_',
             alg_l.alg_locatie_omschrijving,
             DECODE (SUBSTR (alg_v.alg_verdieping_code, 1, 1),
                     '_', alg_v.alg_verdieping_omschrijving)),
          alg_v.alg_verdieping_code,
          alg_v.alg_verdieping_omschrijving,
          TO_NUMBER (NULL),
          NULL,
          NULL,
          alg_v.alg_verdieping_key,
          alg_v.alg_verdieping_code,
          alg_v.alg_verdieping_omschrijving,
          alg_g.alg_gebouw_key,
          alg_g.alg_gebouw_code,
          alg_g.alg_gebouw_naam,
          TO_NUMBER (NULL),
          NULL,
          NULL,
          alg_g.alg_locatie_key,
          'V'
     FROM alg_verdieping alg_v, alg_gebouw alg_g, alg_locatie alg_l
    WHERE alg_v.alg_gebouw_key = alg_g.alg_gebouw_key
          AND alg_l.alg_locatie_key = alg_g.alg_locatie_key
   UNION ALL
   SELECT alg_g.alg_gebouw_key,
          DECODE (SUBSTR (alg_g.alg_gebouw_code, 1, 1), '_', '', alg_g.alg_gebouw_code),
          DECODE (SUBSTR (alg_g.alg_gebouw_code, 1, 1),
                  '_', alg_l.alg_locatie_omschrijving,
                  alg_g.alg_gebouw_naam),
          alg_g.alg_gebouw_code,
          alg_g.alg_gebouw_naam,
          TO_NUMBER (NULL),
          NULL,
          NULL,
          TO_NUMBER (NULL),
          NULL,
          NULL,
          alg_g.alg_gebouw_key,
          alg_g.alg_gebouw_code,
          alg_g.alg_gebouw_naam,
          TO_NUMBER (NULL),
          NULL,
          NULL,
          alg_g.alg_locatie_key,
          'G'
     FROM alg_gebouw alg_g, alg_locatie alg_l
    WHERE alg_l.alg_locatie_key = alg_g.alg_locatie_key
   UNION ALL
   SELECT alg_t.alg_terreinsector_key,
          DECODE (SUBSTR (alg_t.alg_terreinsector_code, 1, 1),
                  '_', '',
                  alg_t.alg_terreinsector_code),
          DECODE (SUBSTR (alg_t.alg_terreinsector_code, 1, 1),
                  '_', alg_l.alg_locatie_omschrijving,
                  alg_terreinsector_naam),
          alg_t.alg_terreinsector_code,
          alg_t.alg_terreinsector_naam,
          TO_NUMBER (NULL),
          NULL,
          NULL,
          TO_NUMBER (NULL),
          NULL,
          NULL,
          TO_NUMBER (NULL),
          NULL,
          NULL,
          alg_t.alg_terreinsector_key,
          alg_t.alg_terreinsector_code,
          alg_t.alg_terreinsector_naam,
          alg_t.alg_locatie_key,
          'T'
     FROM alg_terreinsector alg_t, alg_locatie alg_l
    WHERE alg_l.alg_locatie_key = alg_t.alg_locatie_key;

CREATE_VIEW(alg_v_my_room, 0) AS
   SELECT DISTINCT r.alg_ruimte_key, r.alg_verdieping_key, pl.prs_perslid_key
              FROM alg_ruimte r,
                   prs_perslidwerkplek pl,
                   prs_werkplek wp
             WHERE r.alg_ruimte_key = wp.prs_alg_ruimte_key
               AND pl.prs_werkplek_key = wp.prs_werkplek_key;

CREATE_VIEW(alg_v_my_floor, 0) AS
  SELECT v.alg_verdieping_key,
         alg_gebouw_key,
         r.prs_perslid_key
    FROM alg_v_my_room r, alg_verdieping v
   WHERE r.alg_verdieping_key = v.alg_verdieping_key;

CREATE_VIEW(alg_v_my_building, 0) AS
  SELECT f.alg_gebouw_key,
         alg_locatie_key,
         f.prs_perslid_key
    FROM alg_v_my_floor f, alg_gebouw b
   WHERE f.alg_gebouw_key = b.alg_gebouw_key;

CREATE_VIEW(alg_v_my_location, 0) AS
  SELECT b.alg_locatie_key,
         l.alg_district_key,
         b.prs_perslid_key
    FROM alg_v_my_building b, alg_locatie l
   WHERE b.alg_locatie_key = l.alg_locatie_key;

CREATE_VIEW(alg_v_my_district, 0) AS
  SELECT l.alg_district_key,
         alg_regio_key,
         l.prs_perslid_key
    FROM alg_v_my_location l, alg_district d
   WHERE l.alg_district_key = d.alg_district_key;

CREATE_VIEW(alg_v_my_region, 0) AS
  SELECT alg_regio_key,
         prs_perslid_key
    FROM alg_v_my_district;


CREATE_VIEW(fac_v_my_regions, 0)
   (alg_regio_key,
    prs_perslid_key,
    niveau) AS
 SELECT alg_regio_key,
        prs_perslid_key,
        5
   FROM alg_v_my_region
UNION
 SELECT alg_regio_key,
        prs_perslid_key,
        4
   FROM alg_v_my_region
UNION
 SELECT alg_regio_key,
        prs_perslid_key,
        3
   FROM alg_v_my_region
 UNION
 SELECT alg_regio_key,
        prs_perslid_key,
        2
   FROM alg_v_my_region
UNION
 SELECT alg_regio_key,
        prs_perslid_key,
        1
   FROM alg_v_my_region
UNION
 SELECT alg_regio_key,
        prs_perslid_key,
        0
   FROM alg_v_my_region;


CREATE_VIEW(fac_v_my_districts, 0)
   (alg_district_key,
    prs_perslid_key,
    niveau) AS
 SELECT alg_district_key,
        prs_perslid_key,
        5
   FROM alg_v_my_district
UNION
 SELECT alg_district_key,
        prs_perslid_key,
        4
   FROM alg_v_my_district
UNION
 SELECT alg_district_key,
        prs_perslid_key,
        3
   FROM alg_v_my_district
 UNION
 SELECT alg_district_key,
        prs_perslid_key,
        2
   FROM alg_v_my_district
UNION
 SELECT alg_district_key,
        prs_perslid_key,
        1
   FROM alg_v_my_district d
UNION
 SELECT alg_district_key,
        ro.prs_perslid_key,
        0
   FROM alg_district d, alg_v_my_region ro
  WHERE ro.alg_regio_key = d.alg_regio_key;


CREATE_VIEW(fac_v_my_locations, 0)
   (alg_locatie_key,
    prs_perslid_key,
    niveau) AS
 SELECT alg_locatie_key,
        prs_perslid_key,
        5
   FROM alg_v_my_location
UNION
 SELECT alg_locatie_key,
        prs_perslid_key,
        4
   FROM alg_v_my_location
UNION
 SELECT alg_locatie_key,
        prs_perslid_key,
        3
   FROM alg_v_my_location
 UNION
 SELECT alg_locatie_key,
        prs_perslid_key,
        2
   FROM alg_v_my_location
UNION
 SELECT l.alg_locatie_key,
        d.prs_perslid_key,
        1
   FROM alg_v_my_district d, alg_locatie l
  WHERE l.alg_district_key= d.alg_district_key
UNION
 SELECT l.alg_locatie_key,
        ro.prs_perslid_key,
        0
   FROM alg_locatie l, alg_district d, alg_v_my_region ro
  WHERE l.alg_district_key= d.alg_district_key
    AND ro.alg_regio_key = d.alg_regio_key;


CREATE_VIEW(fac_v_my_buildings, 0)
   (alg_gebouw_key,
    prs_perslid_key,
    niveau) AS
 SELECT alg_gebouw_key,
        prs_perslid_key,
        5
   FROM alg_v_my_building
UNION
 SELECT alg_gebouw_key,
        prs_perslid_key,
        4
   FROM alg_v_my_building
UNION
 SELECT alg_gebouw_key,
        prs_perslid_key,
        3
   FROM alg_v_my_building
 UNION
 SELECT alg_gebouw_key,
        l.prs_perslid_key,
        2
   FROM alg_v_my_location l, alg_gebouw g
  WHERE g.alg_locatie_key = l.alg_locatie_key
UNION
 SELECT g.alg_gebouw_key,
        d.prs_perslid_key,
        1
   FROM alg_v_my_district d, alg_locatie l, alg_gebouw g
  WHERE d.alg_district_key = l.alg_district_key
    AND g.alg_locatie_key = l.alg_locatie_key
UNION
 SELECT g.alg_gebouw_key,
        ro.prs_perslid_key,
        0
   FROM alg_v_my_region ro, alg_gebouw g, alg_locatie l, alg_district d
  WHERE ro.alg_regio_key = d.alg_regio_key
    AND l.alg_district_key= d.alg_district_key
    AND g.alg_locatie_key = l.alg_locatie_key;


CREATE_VIEW(fac_v_my_floors, 0)
   (alg_verdieping_key,
    prs_perslid_key,
    niveau) AS
 SELECT alg_verdieping_key,
        prs_perslid_key,
        5
   FROM alg_v_my_floor
UNION
 SELECT alg_verdieping_key,
        prs_perslid_key,
        4
   FROM alg_v_my_floor
UNION
 SELECT v.alg_verdieping_key,
        b.prs_perslid_key,
        3
   FROM alg_v_my_building b, alg_verdieping v
  WHERE b.alg_gebouw_key = v.alg_gebouw_key
 UNION
 SELECT v.alg_verdieping_key,
        l.prs_perslid_key,
        2
   FROM alg_v_my_location l, alg_gebouw g, alg_verdieping v
  WHERE l.alg_locatie_key = g.alg_locatie_key
    AND g.alg_gebouw_key = v.alg_gebouw_key
UNION
 SELECT v.alg_verdieping_key,
        d.prs_perslid_key,
        1
   FROM alg_v_my_district d, alg_locatie l, alg_gebouw g, alg_verdieping v
  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
UNION
 SELECT v.alg_verdieping_key,
        ro.prs_perslid_key,
        0
   FROM alg_v_my_region ro, alg_district d, alg_locatie l, alg_gebouw g, alg_verdieping v
  WHERE ro.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;

CREATE_VIEW(fac_v_my_rooms, 0)
   (alg_ruimte_key,
    prs_perslid_key,
    niveau) AS
 SELECT alg_ruimte_key,
        prs_perslid_key,
        5
   FROM alg_v_my_room
UNION
 SELECT alg_ruimte_key,
        f.prs_perslid_key,
        4
   FROM alg_v_my_floor f, alg_ruimte r
  WHERE f.alg_verdieping_key = r.alg_verdieping_key
UNION
 SELECT alg_ruimte_key,
        b.prs_perslid_key,
        3
   FROM alg_v_my_building b, alg_verdieping v, alg_ruimte r
  WHERE b.alg_gebouw_key = v.alg_gebouw_key
    AND v.alg_verdieping_key = r.alg_verdieping_key
UNION
 SELECT alg_ruimte_key,
        l.prs_perslid_key,
        2
   FROM alg_v_my_location l, alg_gebouw b, alg_verdieping v, alg_ruimte r
  WHERE l.alg_locatie_key = b.alg_locatie_key
    AND b.alg_gebouw_key = v.alg_gebouw_key
    AND v.alg_verdieping_key = r.alg_verdieping_key
UNION
 SELECT alg_ruimte_key,
        d.prs_perslid_key,
        1
   FROM alg_v_my_district d, alg_locatie l, alg_gebouw b, alg_verdieping v, alg_ruimte r
  WHERE d.alg_district_key = l.alg_district_key
    AND l.alg_locatie_key = b.alg_locatie_key
    AND b.alg_gebouw_key = v.alg_gebouw_key
    AND v.alg_verdieping_key = r.alg_verdieping_key
UNION
 SELECT alg_ruimte_key,
        ro.prs_perslid_key,
        0
   FROM alg_v_my_region ro, alg_district d, alg_locatie l, alg_gebouw b, alg_verdieping v, alg_ruimte r
  WHERE ro.alg_regio_key = d.alg_regio_key
    AND d.alg_district_key = l.alg_district_key
    AND l.alg_locatie_key = b.alg_locatie_key
    AND b.alg_gebouw_key = v.alg_gebouw_key
    AND v.alg_verdieping_key = r.alg_verdieping_key;

-- Zwaar geoptimaliseerd FSN#25609
-- 5.4.1 toch weer terug naar bovenstaande originele
-- Deze even een versie laten staan om relatief simpel terug te kunnen
CREATE_VIEW(fac_v_my_rooms11, 0)
(
   ALG_RUIMTE_KEY,
   PRS_PERSLID_KEY,
   NIVEAU
)
AS
WITH avmr -- alg_v_my_room
        AS (SELECT DISTINCT
                   r.alg_ruimte_key, r.alg_verdieping_key, pl.prs_perslid_key
              FROM alg_ruimte r,
                   prs_perslidwerkplek pl,
                   prs_werkplek wp
             WHERE r.alg_ruimte_key = wp.prs_alg_ruimte_key
                   AND pl.prs_werkplek_key = wp.prs_werkplek_key),
     avmf -- alg_v_my_floor
        AS (SELECT v.alg_verdieping_key, alg_gebouw_key, r.prs_perslid_key
                FROM avmr r, alg_verdieping v
               WHERE r.alg_verdieping_key = v.alg_verdieping_key),
     avmb -- alg_v_my_building
        AS (SELECT f.alg_gebouw_key, alg_locatie_key, f.prs_perslid_key
                FROM avmf f, alg_gebouw b
               WHERE f.alg_gebouw_key = b.alg_gebouw_key),
     avml -- alg_v_my_location
        AS (SELECT b.alg_locatie_key, l.alg_district_key, b.prs_perslid_key
                FROM avmb b, alg_locatie l
               WHERE b.alg_locatie_key = l.alg_locatie_key),
     avmd -- alg_v_my_district
        AS (SELECT l.alg_district_key, alg_regio_key, l.prs_perslid_key
                FROM avml l, alg_district d
               WHERE l.alg_district_key = d.alg_district_key),
     avmrr -- alg_v_my_region
        AS (SELECT alg_regio_key, prs_perslid_key FROM avmd)
SELECT alg_ruimte_key, prs_perslid_key, 5 FROM avmr
UNION ALL
SELECT alg_ruimte_key, f.prs_perslid_key, 4
  FROM avmf f, alg_ruimte r
 WHERE f.alg_verdieping_key = r.alg_verdieping_key
UNION ALL
SELECT alg_ruimte_key, b.prs_perslid_key, 3
  FROM avmb b, alg_verdieping v, alg_ruimte r
 WHERE b.alg_gebouw_key = v.alg_gebouw_key
       AND v.alg_verdieping_key = r.alg_verdieping_key
UNION ALL
SELECT alg_ruimte_key, l.prs_perslid_key, 2
  FROM avml l,
       alg_gebouw b,
       alg_verdieping v,
       alg_ruimte r
 WHERE     l.alg_locatie_key = b.alg_locatie_key
       AND b.alg_gebouw_key = v.alg_gebouw_key
       AND v.alg_verdieping_key = r.alg_verdieping_key
UNION ALL
SELECT alg_ruimte_key, d.prs_perslid_key, 1
  FROM avmd d,
       alg_locatie l,
       alg_gebouw b,
       alg_verdieping v,
       alg_ruimte r
 WHERE     d.alg_district_key = l.alg_district_key
       AND l.alg_locatie_key = b.alg_locatie_key
       AND b.alg_gebouw_key = v.alg_gebouw_key
       AND v.alg_verdieping_key = r.alg_verdieping_key
UNION ALL
SELECT alg_ruimte_key, ro.prs_perslid_key, 0
  FROM avmrr ro,
       alg_district d,
       alg_locatie l,
       alg_gebouw b,
       alg_verdieping v,
       alg_ruimte r
 WHERE     ro.alg_regio_key = d.alg_regio_key
       AND d.alg_district_key = l.alg_district_key
       AND l.alg_locatie_key = b.alg_locatie_key
       AND b.alg_gebouw_key = v.alg_gebouw_key
       AND v.alg_verdieping_key = r.alg_verdieping_key;

DEFINIEER_VIEW_AANWEZIG(alg_srtterreinsector, alg_srtterreinsector_verwijder,
    alg_v_aanwezigsrtterreinsector,0);

DEFINIEER_VIEW_AANWEZIG(alg_onrgoedkenmerk, alg_onrgoedkenmerk_verwijder,
    alg_v_aanwezigonrgoedkenmerk,0);


CREATE_VIEW(alg_v_terrein_gegevens, 0 ) AS
select alg_terreinsector_key,
       s.alg_locatie_key,
       l.alg_locatie_omschrijving,
       alg_srtterreinsector_key,
       alg_locatie_code||' - '||alg_terreinsector_code  alg_terrein_aanduiding,
       alg_terreinsector_oppervlak
  from alg_v_aanwezigterreinsector s, alg_v_aanweziglocatie l
 where s.alg_locatie_key = l.alg_locatie_key;

CREATE_VIEW(ALG_V_ONRGOED_BOOM, 0 )
(ALG_REGIO_KEY, ALG_DISTRICT_KEY, ALG_LOCATIE_KEY, ALG_GEBOUW_KEY, ALG_VERDIEPING_KEY,
 ALG_RUIMTE_KEY)
AS
SELECT a1.alg_regio_key, a2.alg_district_key, a3.alg_locatie_key,
          a4.alg_gebouw_key, a5.alg_verdieping_key, a5.alg_ruimte_key
     FROM alg_regio a0,
          alg_district a1,
          alg_locatie a2,
          alg_gebouw a3,
          alg_verdieping a4,
          alg_ruimte a5
    WHERE a0.alg_regio_key = a1.alg_regio_key
      AND a1.alg_district_key = a2.alg_district_key
      AND a3.alg_locatie_key = a2.alg_locatie_key
      AND a3.alg_gebouw_key = a4.alg_gebouw_key
      AND a4.alg_verdieping_key = a5.alg_verdieping_key;

CREATE_VIEW(ALG_V_ONRGOED_FAMILIE, 0 )
(ALG_RUIMTE_KEY, ALG_ONRGOED_ELDER_KEY, NIVEAU)
AS
SELECT alg_ruimte_key, alg_ruimte_key alg_onrgoed_elder_key, 5 niveau
     FROM alg_v_onrgoed_boom
   UNION ALL
   SELECT alg_ruimte_key, alg_verdieping_key, 4 niveau
     FROM alg_v_onrgoed_boom
   UNION ALL
   SELECT alg_ruimte_key, alg_gebouw_key, 3 niveau
     FROM alg_v_onrgoed_boom
   UNION ALL
   SELECT alg_ruimte_key, alg_locatie_key, 2 niveau
     FROM alg_v_onrgoed_boom
   UNION ALL
   SELECT alg_ruimte_key, alg_district_key, 1 niveau
     FROM alg_v_onrgoed_boom
   UNION ALL
   SELECT alg_ruimte_key, alg_regio_key, 0 niveau
     FROM alg_v_onrgoed_boom;

/* Formatted on 2005/02/09 12:10 (Formatter Plus v4.8.5) */
CREATE_VIEW(alg_v_plaatsaanduiding_all, 0 )
(alg_onroerendgoed_keys, alg_onroerendgoed_type, alg_plaatsaanduiding)
AS
   SELECT alg_r.alg_ruimte_key, 'R',
             alg_l.alg_locatie_code
          || '-'
          || alg_g.alg_gebouw_code
          || '-'
          || alg_v.alg_verdieping_code
          || '-'
          || alg_r.alg_ruimte_nr
     FROM alg_ruimte alg_r,
          alg_verdieping alg_v,
          alg_gebouw alg_g,
          alg_locatie alg_l
    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
   UNION
   SELECT alg_v.alg_verdieping_key, 'V',
             alg_l.alg_locatie_code
          || '-'
          || alg_g.alg_gebouw_code
          || '-'
          || alg_v.alg_verdieping_code
     FROM alg_verdieping alg_v, alg_gebouw alg_g, alg_locatie alg_l
    WHERE alg_v.alg_gebouw_key = alg_g.alg_gebouw_key
      AND alg_g.alg_locatie_key = alg_l.alg_locatie_key
   UNION
   SELECT alg_g.alg_gebouw_key, 'G',
             alg_l.alg_locatie_code
          || '-'
          || alg_g.alg_gebouw_code
     FROM alg_gebouw alg_g, alg_locatie alg_l
    WHERE alg_g.alg_locatie_key = alg_l.alg_locatie_key
   UNION
   SELECT alg_l.alg_locatie_key, 'L',
          alg_l.alg_locatie_code
     FROM alg_locatie alg_l
   UNION
   SELECT alg_t.alg_terreinsector_key, 'T',
          alg_l.alg_locatie_code || '-' || alg_t.alg_terreinsector_code
     FROM alg_terreinsector alg_t, alg_locatie alg_l
    WHERE alg_t.alg_locatie_key = alg_l.alg_locatie_key;

CREATE_VIEW(alg_v_plaatsaanduiding, 0 )
(alg_onroerendgoed_keys, alg_onroerendgoed_type, alg_plaatsaanduiding)
AS
   SELECT alg_r.alg_ruimte_key, 'R',
             alg_l.alg_locatie_code
          || '-'
          || alg_g.alg_gebouw_code
          || '-'
          || alg_v.alg_verdieping_code
          || '-'
          || alg_r.alg_ruimte_nr
     FROM alg_v_aanwezigruimte alg_r,
          alg_verdieping alg_v,
          alg_gebouw alg_g,
          alg_locatie alg_l
    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
   UNION
   SELECT alg_v.alg_verdieping_key, 'V',
             alg_l.alg_locatie_code
          || '-'
          || alg_g.alg_gebouw_code
          || '-'
          || alg_v.alg_verdieping_code
     FROM alg_v_aanwezigverdieping alg_v, alg_gebouw alg_g, alg_locatie alg_l
    WHERE alg_v.alg_gebouw_key = alg_g.alg_gebouw_key
      AND alg_g.alg_locatie_key = alg_l.alg_locatie_key
   UNION
   SELECT alg_g.alg_gebouw_key, 'G',
             alg_l.alg_locatie_code
          || '-'
          || alg_g.alg_gebouw_code
     FROM alg_v_aanweziggebouw alg_g, alg_locatie alg_l
    WHERE alg_g.alg_locatie_key = alg_l.alg_locatie_key
   UNION
   SELECT alg_l.alg_locatie_key, 'L',
          alg_l.alg_locatie_code
     FROM alg_v_aanweziglocatie alg_l
   UNION
   SELECT alg_t.alg_terreinsector_key, 'T',
          alg_l.alg_locatie_code || '-' || alg_t.alg_terreinsector_code
     FROM alg_v_aanwezigterreinsector alg_t, alg_locatie alg_l
    WHERE alg_t.alg_locatie_key = alg_l.alg_locatie_key;

CREATE_VIEW(alg_v_allsrtonrgoed, 0 )
   (alg_srtonrgoed_key,
    alg_srtonrgoed_omschrijving,
    alg_srtonrgoed_upper,
    alg_srtonrgoed_aanmaak,
    alg_srtonrgoed_verwijder,
    prs_bevat_werkplek,
    prs_verhuurbaar,
    alg_srtonrgoed_prijs,
    alg_srtonrgoed_code,
    alg_type)
AS
   SELECT alg_srtruimte_key, alg_srtruimte_omschrijving, alg_srtruimte_upper, alg_srtruimte_aanmaak,
          alg_srtruimte_verwijder, prs_bevat_werkplek, prs_verhuurbaar, alg_srtruimte_prijs, alg_srtruimte_code, 'R'
     FROM alg_srtruimte
   UNION ALL
   SELECT alg_srtterreinsector_key, alg_srtterreinsec_omschrijving, alg_srtterreinsector_upper,
          alg_srtterreinsector_aanmaak, alg_srtterreinsector_verwijder, TO_NUMBER(NULL), prs_verhuurbaar,
          alg_srtterreinsector_prijs, alg_srtterreinsector_code, 'T'
     FROM alg_srtterreinsector;

-- Genormaliseerd oppervlakte (met name als prs_werkplek_implicit==1)
CREATE_VIEW(alg_v_norm_opp, 0)
                                               (alg_verdieping_key,
                                                 alg_ruimte_key,
                                                 alg_ruimte_nr,
                                                 alg_ruimte_bruto_vloeropp,
                                                 norm_opp,
                                                 bezetting_totaal
                                                )
AS
   SELECT   ar.alg_verdieping_key, ar.alg_ruimte_key, ar.alg_ruimte_nr,
            ar.alg_ruimte_bruto_vloeropp,
              TRUNC (  10
                     * alg_ruimte_bruto_vloeropp
                     / (SUM (NVL (pp.prs_perslid_dienstverband / pp2.aantalwp,
                                  100
                                 )
                            )
                       )
                     * 100
                    )
            / 10 norm_opp,
            SUM (NVL (pp.prs_perslid_dienstverband / pp2.aantalwp, 100))
       FROM alg_ruimte ar,
            prs_werkplek pw2,
            prs_perslidwerkplek pww2,
            prs_perslid pp,
            prs_v_aantalwp pp2
      WHERE ar.alg_ruimte_key = pw2.prs_alg_ruimte_key
        AND pw2.prs_werkplek_key = pww2.prs_werkplek_key
        AND pw2.prs_werkplek_virtueel = 0
        AND pp2.prs_perslid_key = pww2.prs_perslid_key
        AND pp.prs_perslid_key = pp2.prs_perslid_key
        AND pp.prs_perslid_dienstverband > 0
   GROUP BY ar.alg_verdieping_key,
            ar.alg_ruimte_key,
            ar.alg_ruimte_nr,
            ar.alg_ruimte_bruto_vloeropp;


// View die de verplichtingen op een gebouw weergeeft
// Verplichtingen worden gedefinieerd als relaties die het ontmantelen,
// d.i. het zetten van alg_gebouw_verwijder, kunnen beletten
// of althans daar een rol in spelen; moeten weggemanged worden
CREATE_VIEW(alg_v_gebouw_verplichting, 0) (alg_gebouw_key, fac_message_code, item, item_key, locatie_key)
AS
   /* open meldingen op een plaats binnen dit gebouw */
   SELECT m.mld_alg_onroerendgoed_keys, 'ALG_OPENST_MELDING',
             (SELECT isd.ins_srtdiscipline_prefix
                FROM ins_srtdiscipline isd, ins_tab_discipline ID
               WHERE ID.ins_srtdiscipline_key = isd.ins_srtdiscipline_key
                 AND std.mld_ins_discipline_key = ID.ins_discipline_key)
          || TO_CHAR (m.mld_melding_key),
          m.mld_melding_key, m.mld_alg_locatie_key
     FROM mld_melding m,
          mld_stdmelding std
    WHERE m.mld_stdmelding_key = std.mld_stdmelding_key
      AND m.mld_melding_status IN (2, 3, 4, 7) AND m.mld_alg_onroerendgoed_keys <> 0
   UNION
   /* facilitaire objecten met een plaats binnen dit gebouw */
   SELECT og.alg_gebouw_key, 'ALG_BEVAT_OBJECT', ins_deel_omschrijving, ins_deel_key, d.ins_alg_locatie_key
     FROM ins_v_aanwezigdeel d, ins_tab_discipline ID, alg_v_allonroerendgoed og
    WHERE d.ins_alg_ruimte_key = og.alg_onroerendgoed_keys
      AND ID.ins_discipline_key = d.ins_discipline_key
      AND ID.ins_discipline_min_level <> 3
   UNION
   /* niet-verwerkte reserveringen van een ruimte binnen dit gebouw */
   SELECT   rg.alg_gebouw_key, 'ALG_OPENST_RES', TO_CHAR (r.res_reservering_key) || ' (' || COUNT (*)||')',
            r.res_reservering_key, rg.alg_locatie_key
       FROM res_v_aanwezigreservering r,
            res_v_aanwezigrsv_ruimte rr,
            res_ruimte_opstelling ro,
            res_v_alg_ruimte_gegevens rg
      WHERE r.res_reservering_key = rr.res_reservering_key
        AND rr.res_ruimte_opstel_key = ro.res_ruimte_opstel_key
        AND ro.res_ruimte_key = rg.res_ruimte_key
        AND rr.res_status_bo_key IN (4, 3, 2)
   GROUP BY rg.alg_gebouw_key, 'PRS_OPENST_RES', r.res_reservering_key, rg.alg_locatie_key
   UNION
   /* niet-verwerkte reserveringen van een object in dit gebouw; doubleert met objecten zelf  */
   SELECT   rg.alg_gebouw_key, 'ALG_OPENST_RES_V', TO_CHAR (rr.res_reservering_key) || ' (' || COUNT (*) ||')',
            rr.res_reservering_key, rg.alg_locatie_key
       FROM res_v_aanwezigrsv_deel rd, alg_v_allonroerendgoed rg, res_rsv_ruimte rr, ins_deel d, res_deel rrd
      WHERE d.ins_alg_ruimte_key = rg.alg_ruimte_key
        AND rr.res_rsv_ruimte_key = rd.res_rsv_ruimte_key
        AND rd.res_deel_key = rrd.res_deel_key
        AND rd.res_status_bo_key IN (4, 3, 2, 7)
        AND d.ins_deel_key = rrd.res_ins_deel_key
   GROUP BY rg.alg_gebouw_key, 'ALG_OPENST_RES_V', rr.res_reservering_key, rg.alg_locatie_key
   UNION
   /* toekomstig bezoek van dit gebouw */
   SELECT og.alg_gebouw_key, 'ALG_TOEK_AFSPRAAK', TO_CHAR(a.bez_afspraak_key)||' ('||TO_CHAR (a.bez_afspraak_datum, 'DD-MM-YYYY')||')', a.bez_afspraak_key, a.alg_locatie_key
     FROM bez_afspraak a, alg_v_allonroerendgoed og
    WHERE a.alg_onrgoed_keys = og.alg_onroerendgoed_keys AND a.bez_afspraak_datum > SYSDATE
   UNION
   /* contracten over dit gebouw */
   SELECT alg_gebouw_key, 'ALG_OPEN_CONTRACT', TO_CHAR (cp.cnt_contract_key), cp.cnt_contract_key, og.alg_locatie_key
     FROM cnt_v_aanwezigcontract_plaats cp, alg_v_allonroerendgoed og, cnt_contract c
    WHERE c.cnt_contract_key=cp.cnt_contract_key
      AND c.cnt_contract_looptijd_tot > SYSDATE
      AND cp.cnt_alg_plaats_key = og.alg_onroerendgoed_keys
      AND cp.cnt_alg_plaats_code = og.alg_type;

/* En deze ten behoeve van de gebruikersrapportage */
CREATE_VIEW(alg_v_rap_gebouw_verplichting, 0) (fclt_f_gebouwcode, fclt_f_verplichting, item, fclt_3d_locatie_key)
AS
   SELECT g.alg_gebouw_code, COALESCE (t.fac_message_text, v.fac_message_code), v.item, v.locatie_key
     FROM alg_v_gebouw_verplichting v, alg_gebouw g, fac_message t
    WHERE g.alg_gebouw_key = v.alg_gebouw_key AND v.fac_message_code = t.fac_message_code(+);

// View die de verplichtingen op een ruimte weergeeft; conceptversie
CREATE_VIEW(alg_v_ruimte_verplichting, 0)
(alg_ruimte_key, fac_message_code, item, item_key, locatie_key)
AS
SELECT m.mld_alg_onroerendgoed_keys, 'ALG_OPENST_MELDING',
             (SELECT isd.ins_srtdiscipline_prefix
                FROM ins_srtdiscipline isd, ins_tab_discipline ID
               WHERE ID.ins_srtdiscipline_key = isd.ins_srtdiscipline_key
                 AND std.mld_ins_discipline_key = ID.ins_discipline_key)
          || TO_CHAR (m.mld_melding_key),
          m.mld_melding_key, m.mld_alg_locatie_key
     FROM mld_melding m,
          mld_stdmelding std
    WHERE m.mld_stdmelding_key = std.mld_stdmelding_key
      AND m.mld_melding_status IN (2, 3, 4, 7) AND m.mld_alg_onroerendgoed_keys <> 0
   UNION
   SELECT ins_alg_ruimte_key, 'ALG_BEZIT_OBJECT', ins_deel_omschrijving, ins_deel_key, d.ins_alg_locatie_key
     FROM ins_v_aanwezigdeel d, ins_tab_discipline ID
    WHERE d.ins_alg_ruimte_type = 'R'
      AND ID.ins_discipline_key = d.ins_discipline_key
      AND ID.ins_discipline_min_level <> 3
   UNION
   SELECT   rg.alg_ruimte_key, 'ALG_OPENST_RES_R', TO_CHAR (r.res_reservering_key) || '/' || COUNT (*),
            r.res_reservering_key, rg.alg_locatie_key
       FROM res_v_aanwezigreservering r,
            res_v_aanwezigrsv_ruimte rr,
            res_ruimte_opstelling ro,
            res_v_alg_ruimte_gegevens rg
      WHERE r.res_reservering_key = rr.res_reservering_key
        AND rr.res_ruimte_opstel_key = ro.res_ruimte_opstel_key
        AND ro.res_ruimte_key = rg.res_ruimte_key
        AND rr.res_status_bo_key IN (4, 3, 2)
   GROUP BY rg.alg_ruimte_key, 'PRS_OPENST_RES_R', r.res_reservering_key, rg.alg_locatie_key
   UNION
   SELECT   rg.alg_ruimte_key, 'ALG_OPENST_RES_V', TO_CHAR (r.res_reservering_key) || '/' || COUNT (*),
            r.res_reservering_key, rg.alg_locatie_key
       FROM res_v_aanwezigreservering r, res_v_aanwezigrsv_deel rd, res_v_alg_ruimte_gegevens rg, res_rsv_ruimte rr
      WHERE r.res_reservering_key = rr.res_reservering_key
        AND rr.alg_ruimte_key = rg.alg_ruimte_key
        AND rr.res_rsv_ruimte_key = rd.res_rsv_ruimte_key
        AND rd.res_status_bo_key IN (4, 3, 2)
   GROUP BY rg.alg_ruimte_key, 'ALG_OPENST_RES_V', r.res_reservering_key, rg.alg_locatie_key
   UNION
   SELECT   rg.alg_ruimte_key, 'ALG_OPENST_RES_C', TO_CHAR (r.res_reservering_key) || '/' || COUNT (*),
            r.res_reservering_key, rg.alg_locatie_key
       FROM res_v_aanwezigreservering r, res_v_aanwezigrsv_artikel ra, res_v_alg_ruimte_gegevens rg, res_rsv_ruimte rr
      WHERE r.res_reservering_key = rr.res_reservering_key
        AND rr.alg_ruimte_key = rg.alg_ruimte_key
        AND rr.res_rsv_ruimte_key = ra.res_rsv_ruimte_key
        AND ra.res_status_bo_key IN (4, 3, 2)
   GROUP BY rg.alg_ruimte_key, 'ALG_OPENST_RES_C', r.res_reservering_key, rg.alg_locatie_key
   UNION
   SELECT a.alg_onrgoed_keys, 'ALG_TOEK_AFSPRAAK', TO_CHAR (a.bez_afspraak_datum), a.bez_afspraak_key, a.alg_locatie_key
     FROM bez_afspraak a
    WHERE a.bez_afspraak_datum > SYSDATE;
/

REGISTERRUN('$Id$')
