--
-- $Id$
--
-- Script containing customer specific sql for UWVA (UWV Amsterdam)
-- related to HV/CAD/CNT/PCS.

DEFINE thisfile = 'UWVA_HV.SQL'
DEFINE dbuser   = '^UWVA'

SET ECHO ON
SET DEFINE ON
COLUMN fcltlogfile NEW_VALUE fcltlogfile NOPRINT;
WHENEVER SQLERROR EXIT;
SELECT adm.scriptspoolfile('&dbuser', '&thisfile') AS fcltlogfile FROM DUAL;
WHENEVER SQLERROR CONTINUE;
SPOOL &fcltlogfile
SET DEFINE OFF

------ payload begin ------

-- HV views en rapportages (NoFa)
-- Bevat de mogelijke waarde voor ruimtehuurders op het laagste nivo zeg maar
/* Formatted on 2008/06/06 17:04 (Formatter Plus v4.8.7) */
CREATE OR REPLACE VIEW uwva_v_hv_afdeling (prs_kostenplaats_key,
                                           prs_kostenplaats_nr,
                                           prs_kostenplaats_oms,
                                           prs_kostenplaats_nr_oms
                                          )
AS
   SELECT kp.prs_kostenplaats_key, kp.prs_kostenplaats_nr,
          kp.prs_kostenplaats_omschrijving,
          kp.prs_kostenplaats_nr || ' ' || kp.prs_kostenplaats_omschrijving
     FROM prs_kostenplaats kp
    WHERE kp.prs_kostenplaats_omschrijving NOT LIKE 'INACTIEF%'
      AND kp.prs_kostenplaats_verwijder IS NULL
   UNION ALL           -- bezetingsverlies (= een  - tijdelijk - leeg kantoor)
   SELECT fac.safe_to_number ('-2'), 'LEEG', 'LEEG', 'LEEG'
     FROM DUAL
   UNION ALL       -- inrichtingsleegstand (= na oplevering of bij verbouwing)
   SELECT fac.safe_to_number ('-3'), 'LEEG INRICHTING', 'LEEG INRICHTING',
          'LEEG INRICHTING'
     FROM DUAL
   UNION ALL                  -- leegstand (= kan op de markt worden gebracht)
   SELECT fac.safe_to_number ('-4'), 'LEEG STRUCTUREEL', 'LEEG STRUCTUREEL',
          'LEEG STRUCTUREEL'
     FROM DUAL
   UNION ALL
   SELECT fac.safe_to_number ('-5'), 'ALGEMEEN', 'ALGEMEEN', 'ALGEMEEN'
     FROM DUAL
   UNION ALL
   SELECT fac.safe_to_number ('-6'), 'CENTRALE WI', 'CENTRALE WI',
          'CENTRALE WI'
     FROM DUAL
   UNION ALL   -- opleveringsleegstand (= vaak fase voor inrichtingsleegstand)
   SELECT fac.safe_to_number ('-7'), 'LEEG OPLEVERING', 'LEEG OPLEVERING',
          'LEEG OPLEVERING'
     FROM DUAL
/

-- Bevat de F&I contractgeinteresseerden
/* Formatted on 2008/03/21 15:42 (Formatter Plus v4.8.7) */
CREATE OR REPLACE VIEW uwva_v_hv_receivers (prs_perslid_key)
AS
   SELECT gg.prs_perslid_key
     FROM fac_gebruikersgroep gg
    WHERE gg.fac_groep_key = 741                  -- Groep = HV_contract_admin
/

-- KLANTSPECIFIEKE trigger die wijziging van contracteinddatum van HV-contracten als CUST01 notificeert
-- naar alle personen in uwva_v_hv_receivers
-- UWVA#26787: Dezelfde notificatie ook op FDO-contracten (ins_discipline_key=358)!
CREATE OR REPLACE TRIGGER uwva_t_cnt_contract_bu
   BEFORE UPDATE
   ON cnt_contract
   FOR EACH ROW
DECLARE
   CURSOR c1
   IS
      SELECT prs_perslid_key
        FROM uwva_v_hv_receivers;
BEGIN
   IF :OLD.cnt_contract_looptijd_tot <> :NEW.cnt_contract_looptijd_tot
   AND :NEW.ins_discipline_key IN (198, 358)
   THEN
      FOR rec1 IN c1
      LOOP
         fac.putnotificationsrtprio (NULL,
                                     rec1.prs_perslid_key,
                                     'CUST01',
                                     :NEW.cnt_contract_key,
                                     'Einddatum van contract '||:new.cnt_contract_nummer_intern||' is gewijzigd',
                                     NULL,
                                     NULL,
                                     NULL,
                                     NULL,
                                     2,
                                     NULL
                                    );
      END LOOP;
   END IF;
END;
/

-- Bevat notificaties naar alle personen in uwva_v_hv_receivers bij wijziging financiele verplichting (CUST02)
-- of status (CUST03) van HV-contracten.
-- En de notificaties naar contractbeheerders als rappel-, opzeg- of einddatum is of binnenkort wordt bereikt.
-- LET OP: CUST04, CUST05 en CUST06 voor alle contractsoorten BEHALVE ABONNEMENTEN!!!
-- UWVA#26787: Dezelfde notificatie ook op FDO-contracten (ins_discipline_key=358)!
/* Formatted on 7-6-2013 15:55:56 (QP5 v5.115.810.9015) */
CREATE OR REPLACE VIEW uwva_v_noti_hv_cntmut
(
   code,
   sender,
   receiver,
   text,
   KEY,
   par1,
   par2,
   xkey
)
AS
   SELECT   'CUST02',
            '',
            hr.prs_perslid_key,
               'Financiële verplichting van '
            || a.cnt_contract_nummer_intern
            || ' is gewijzigd',
            a.cnt_contract_key,
            a.cnt_contract_nummer_intern,
            NULL,
            NULL
     FROM      (SELECT   DISTINCT
                         c.cnt_contract_key,
                         c.cnt_contract_nummer_intern,
                         c.prs_perslid_key_beh
                  FROM   cnt_v_aanwezigcontract c, cnt_kenmerkcontract kc
                 WHERE   c.ins_discipline_key = 198
                         AND c.cnt_contract_key = kc.cnt_contract_key
                         AND kc.cnt_kenmerk_key IN
                                  (221,                  -- Kosten excl. BTW 1
                                   242,                        -- BTW-tarief 1
                                   263,                  -- Kosten excl. BTW 2
                                   281,                        -- BTW-tarief 2
                                   392,                  -- Kosten excl. BTW 3
                                   393,                        -- BTW-tarief 3
                                   396,                  -- Kosten excl. BTW 4
                                   421,                        -- BTW-tarief 4
                                   400,                  -- Kosten excl. BTW 5
                                   401                         -- BTW-tarief 5
                                      )
                         AND (TRUNC (kc.cnt_kenmerkcontract_aanmaak) =
                                 TRUNC (SYSDATE)
                              OR TRUNC (kc.cnt_kenmerkcontract_wijzig) =
                                   TRUNC (SYSDATE))) a
            LEFT JOIN
               (SELECT   c.cnt_contract_key,
                         kc.cnt_kenmerkcontract_waarde actief
                  FROM   cnt_v_aanwezigcontract c, cnt_kenmerkcontract kc
                 WHERE   c.cnt_contract_key = kc.cnt_contract_key
                         AND kc.cnt_kenmerk_key = 184) b
            ON a.cnt_contract_key = b.cnt_contract_key,
            uwva_v_hv_receivers hr
    WHERE   b.actief = '1221'
   UNION ALL
   SELECT   'CUST02',
            '',
            hr.prs_perslid_key,
               'Financiële verplichting van '
            || a.cnt_contract_nummer_intern
            || ' is gewijzigd',
            a.cnt_contract_key,
            a.cnt_contract_nummer_intern,
            NULL,
            NULL
     FROM   (SELECT   DISTINCT
                      c.cnt_contract_key,
                      c.cnt_contract_nummer_intern,
                      c.prs_perslid_key_beh
               FROM   cnt_v_aanwezigcontract c, cnt_kenmerkcontract kc
              WHERE       c.ins_discipline_key = 358
                      AND c.cnt_contract_looptijd_tot > SYSDATE
                      AND c.cnt_contract_key = kc.cnt_contract_key
                      AND kc.cnt_kenmerk_key IN
                               (751,                           -- Schoonmaak 1
                                752,                           -- BTW-tarief 1
                                753,                             -- Catering 2
                                754,                           -- BTW-tarief 2
                                755,                          -- Beveiliging 3
                                760,                           -- BTW-tarief 3
                                757,                        -- Administratie 4
                                758,                           -- BTW-tarief 4
                                759,                               -- Overig 5
                                760                            -- BTW-tarief 5
                                   )
                      AND (TRUNC (kc.cnt_kenmerkcontract_aanmaak) =
                              TRUNC (SYSDATE)
                           OR TRUNC (kc.cnt_kenmerkcontract_wijzig) =
                                TRUNC (SYSDATE))) a,
            uwva_v_hv_receivers hr
   UNION ALL
   SELECT   'CUST03',
            '',
            hr.prs_perslid_key,
               'Contractstatus van '
            || a.cnt_contract_nummer_intern
            || ' is gewijzigd',
            a.cnt_contract_key,
            a.cnt_contract_nummer_intern,
            NULL,
            NULL
     FROM      (SELECT   c.cnt_contract_key,
                         c.cnt_contract_nummer_intern,
                         c.prs_perslid_key_beh,
                         ud.fac_usrdata_omschr contractstatus,
                         NVL (kc.cnt_kenmerkcontract_wijzig,
                              kc.cnt_kenmerkcontract_aanmaak)
                            contractstatusdatum
                  FROM   cnt_v_aanwezigcontract c,
                         cnt_kenmerkcontract kc,
                         fac_usrdata ud
                 WHERE       c.ins_discipline_key = 198
                         AND c.cnt_contract_key = kc.cnt_contract_key
                         AND kc.cnt_kenmerk_key = 183
                         AND fac.safe_to_number (kc.cnt_kenmerkcontract_waarde) =
                               ud.fac_usrdata_key) a
            LEFT JOIN
               (SELECT   c.cnt_contract_key,
                         kc.cnt_kenmerkcontract_waarde actief,
                         NVL (kc.cnt_kenmerkcontract_wijzig,
                              kc.cnt_kenmerkcontract_aanmaak)
                            actiefdatum
                  FROM   cnt_v_aanwezigcontract c, cnt_kenmerkcontract kc
                 WHERE   c.cnt_contract_key = kc.cnt_contract_key
                         AND kc.cnt_kenmerk_key = 184) b
            ON a.cnt_contract_key = b.cnt_contract_key,
            uwva_v_hv_receivers hr
    WHERE   (TRUNC (a.contractstatusdatum) = TRUNC (SYSDATE)
             AND a.contractstatus IN
                      ('Actief', 'Beeindigd', 'Opgezegd en bevestigd'))
            OR TRUNC (b.actiefdatum) = TRUNC (SYSDATE)
   UNION ALL
   SELECT   'CUST03',
            '',
            hr.prs_perslid_key,
               'Contractstatus van '
            || a.cnt_contract_nummer_intern
            || ' is gewijzigd',
            a.cnt_contract_key,
            a.cnt_contract_nummer_intern,
            NULL,
            NULL
     FROM   (SELECT   c.cnt_contract_key,
                      c.cnt_contract_nummer_intern,
                      c.prs_perslid_key_beh,
                      ud.fac_usrdata_omschr contractstatus,
                      NVL (kc.cnt_kenmerkcontract_wijzig,
                           kc.cnt_kenmerkcontract_aanmaak)
                         contractstatusdatum
               FROM   cnt_v_aanwezigcontract c,
                      cnt_kenmerkcontract kc,
                      fac_usrdata ud
              WHERE       c.ins_discipline_key = 358
                      AND c.cnt_contract_looptijd_tot > SYSDATE
                      AND c.cnt_contract_key = kc.cnt_contract_key
                      AND kc.cnt_kenmerk_key = 183
                      AND fac.safe_to_number (kc.cnt_kenmerkcontract_waarde) =
                            ud.fac_usrdata_key) a,
            uwva_v_hv_receivers hr
    WHERE   TRUNC (a.contractstatusdatum) = TRUNC (SYSDATE)
            AND a.contractstatus IN
                     ('Actief', 'Beeindigd', 'Opgezegd en bevestigd')
   UNION ALL
   SELECT   'CUST04',
            '',
            c.prs_perslid_key_beh,
               'Rappeldatum van contract '
            || c.cnt_contract_nummer_intern
            || ' is gepasseerd',
            c.cnt_contract_key,
            c.cnt_contract_nummer_intern,
            NULL,
            NULL
     FROM   cnt_v_aanwezigcontract c
    WHERE   c.ins_discipline_key != 360                        -- Abonnementen
            AND TRUNC (cnt.cnt_getRappeldatum (c.cnt_contract_key)) =
                  TRUNC (SYSDATE)
   UNION ALL
   SELECT   'CUST05',
            '',
            c.prs_perslid_key_beh,
            '4 weken voor opzegdatum contract '
            || c.cnt_contract_nummer_intern,
            c.cnt_contract_key,
            c.cnt_contract_nummer_intern,
            NULL,
            NULL
     FROM   cnt_v_aanwezigcontract c
    WHERE   c.ins_discipline_key != 360                        -- Abonnementen
            AND TRUNC (cnt.cnt_getOpzegdatum (c.cnt_contract_key)) =
                  TRUNC (SYSDATE + 28)
   UNION ALL
   SELECT   'CUST06',
            '',
            c.prs_perslid_key_beh,
            '4 weken voor einddatum contract '
            || c.cnt_contract_nummer_intern,
            c.cnt_contract_key,
            c.cnt_contract_nummer_intern,
            NULL,
            NULL
     FROM   cnt_v_aanwezigcontract c
    WHERE   c.ins_discipline_key != 360                        -- Abonnementen
            AND TRUNC (c.cnt_contract_looptijd_tot) = TRUNC (SYSDATE + 28)
/


/* Formatted on 6-4-2011 15:54:55 (QP5 v5.115.810.9015) */
CREATE OR REPLACE VIEW uwva_v_hv_satgeg
(
   district,
   gebouw,
   gebouw_key,
   gebouw_kpn,
   ruimtegebruik,
   verhuurbaar,
   nen2580_opp,
   div_kpn,
   afd_kpn,
   ruimten,
   werkplekken,
   personen
)
AS                                                -- db_methode PAND of RUIMTE
   (SELECT   x1.alg_district_omschrijving,
             x1.alg_gebouw_code,
             x1.alg_gebouw_key,
             x1.gebouw_kpn,
             y.ruimtegebruik,
             y.verhuurbaar,
             DECODE (
                y.div_oms,
                'KLANTZONE',      -- over KLANTZONE opp. gaat klantzone_factor
                (SELECT   fac.safe_to_number (
                             COALESCE (ud.fac_usrdata_omschr, '0')
                          )
                          * y.geb_opp
                   FROM   fac_usrdata ud
                  WHERE   ud.fac_usrdata_key = 1282),      -- klantzone_factor
                y.geb_opp
             )
                geb_opp,
             DECODE (y.div_oms, 'KLANTZONE',    -- KLANTZONE doorb. op 600000,
                                            '600000', -- Soc. Med. Zaken (BKF)
                                                     y.div_kpn) div_kpn,
             y.afd_kpn afd_kpn,
             y.geb_ruimten,
             y.geb_werkplekken,
             y.geb_personen
      FROM      (SELECT   g.alg_gebouw_key,
                          d.alg_district_omschrijving,
                          g.alg_gebouw_code,
                          kp.prs_kostenplaats_upper gebouw_kpn
                   FROM   alg_gebouw g,
                          alg_locatie l,
                          alg_district d,
                          prs_kostenplaats kp
                  WHERE       g.alg_gebouw_verwijder IS NULL
                          AND g.alg_srtgebouw_key = 61            -- Satelliet
                          AND g.alg_locatie_key = l.alg_locatie_key
                          AND l.alg_district_key = d.alg_district_key
                          AND d.alg_regio_key NOT IN (21, 41) -- Oude geb./CWI
                          AND g.prs_kostenplaats_key =
                                kp.prs_kostenplaats_key(+)) x1
             LEFT JOIN
                (  SELECT   a.alg_gebouw_key,
                            f.ruimtegebruik,
                            a.verhuurbaar,
                            b.div_kpn,
                            b.div_oms,
                            b.afd_kpn,
                            SUM (a.ruimte) geb_ruimten,
                            SUM(fac.safe_to_number (
                                   COALESCE (d.werkplekken, '0')
                                ))
                               geb_werkplekken,
                            SUM (
                               fac.safe_to_number (COALESCE (e.personen, '0'))
                            )
                               geb_personen,
                            SUM( (COALESCE (a.opp, 0) * COALESCE (b.div_bez, 0))
                                / COALESCE (c.tot_bez, 1))
                               geb_opp
                     FROM                  (SELECT   r.alg_ruimte_key,
                                                     v.alg_gebouw_key,
                                                     sr.prs_verhuurbaar
                                                        verhuurbaar,
                                                     1 ruimte,
                                                     r.alg_ruimte_bruto_vloeropp
                                                        opp
                                              FROM   alg_v_aanwezigruimte r,
                                                     alg_verdieping v,
                                                     alg_srtruimte sr
                                             WHERE   r.alg_verdieping_key =
                                                        v.alg_verdieping_key
                                                     AND r.alg_srtruimte_key =
                                                           sr.alg_srtruimte_key(+))
                                           a
                                        LEFT JOIN      -- divisie(s) op ruimte
                                           (SELECT   ra.alg_ruimte_key,
                                                     afd.prs_afdeling_naam
                                                        div_kpn,
                                                     afd.prs_afdeling_omschrijving
                                                        div_oms,
                                                     (SELECT   a1.prs_afdeling_naam
                                                        FROM   prs_afdeling a1
                                                       WHERE   a1.prs_afdeling_key =
                                                                  ra.prs_afdeling_key)
                                                        afd_kpn,
                                                     ra.prs_ruimteafdeling_bezetting
                                                        div_bez
                                              FROM   prs_v_aanwezigruimteafdeling ra,
                                                     prs_v_afdeling_boom ab,
                                                     prs_afdeling afd
                                             WHERE   ra.prs_afdeling_key =
                                                        ab.prs_afdeling_key
                                                     AND ab.prs_afdeling_key1 =
                                                           afd.prs_afdeling_key)
                                           b
                                        ON a.alg_ruimte_key = b.alg_ruimte_key
                                     LEFT JOIN -- bezettingstotaal (NULL of >0!)
                                        (  SELECT   ra.alg_ruimte_key,
                                                    SUM(ra.prs_ruimteafdeling_bezetting)
                                                       tot_bez
                                             FROM   prs_v_aanwezigruimteafdeling ra
                                            WHERE   ra.prs_ruimteafdeling_bezetting > 0
                                         GROUP BY   ra.alg_ruimte_key) c
                                     ON a.alg_ruimte_key = c.alg_ruimte_key
                                  LEFT JOIN              -- werkplekken (1143)
                                     (SELECT   ok.alg_onrgoed_key,
                                               ok.alg_onrgoedkenmerk_waarde
                                                  werkplekken
                                        FROM   alg_v_aanwezigonrgoedkenmerk ok
                                       WHERE   ok.alg_kenmerk_key = 1143
                                               AND ok.alg_onrgoed_niveau = 'R')
                                     d
                                  ON a.alg_ruimte_key = d.alg_onrgoed_key
                               LEFT JOIN                    -- personen (1144)
                                  (SELECT   ok.alg_onrgoed_key,
                                            ok.alg_onrgoedkenmerk_waarde
                                               personen
                                     FROM   alg_v_aanwezigonrgoedkenmerk ok
                                    WHERE   ok.alg_kenmerk_key = 1144
                                            AND ok.alg_onrgoed_niveau = 'R') e
                               ON a.alg_ruimte_key = e.alg_onrgoed_key
                            LEFT JOIN                  -- ruimtegebruik (1240)
                               (SELECT   ok.alg_onrgoed_key,
                                         ud.fac_usrdata_omschr ruimtegebruik
                                  FROM   alg_v_aanwezigonrgoedkenmerk ok,
                                         fac_usrdata ud
                                 WHERE   ok.alg_kenmerk_key = 1240
                                         AND ok.alg_onrgoed_niveau = 'R'
                                         AND ud.fac_usrdata_key =
                                               fac.safe_to_number (
                                                  ok.alg_onrgoedkenmerk_waarde
                                               )) f
                            ON a.alg_ruimte_key = f.alg_onrgoed_key
                 GROUP BY   a.alg_gebouw_key,
                            f.ruimtegebruik,
                            a.verhuurbaar,
                            b.div_kpn,
                            b.div_oms,
                            b.afd_kpn) y
             ON x1.alg_gebouw_key = y.alg_gebouw_key
     WHERE   y.geb_opp > 0);

/* Formatted on 15-12-2014 10:20:10 (QP5 v5.136.908.31019) */
CREATE OR REPLACE VIEW uwva_v_rap_hv_pandcodelijst
(
   fclt_f_pandcode,
   fclt_f_pandsoort,
   pand_kpn,
   adres,
   postcode,
   fclt_f_plaats,
   fclt_f_kavel
)
AS
   SELECT a.alg_gebouw_code,
          COALESCE (e.uwv_cwi, 'Satelliet'),
          a.gebouw_kpn,
          COALESCE (b.mld_adres_bezoek_adres, c.adres) adres,
          COALESCE (b.mld_adres_bezoek_postcode, c.postcode) postcode,
          COALESCE (b.mld_adres_bezoek_plaats, c.plaats) plaats,
          d.kavel
     FROM (SELECT g.alg_gebouw_key,
                  g.alg_gebouw_code,
                  kp.prs_kostenplaats_upper gebouw_kpn,
                  g.alg_srtgebouw_key
             FROM alg_v_aanweziggebouw g, prs_kostenplaats kp
            WHERE g.prs_kostenplaats_key = kp.prs_kostenplaats_key(+)) a
          LEFT JOIN                                   -- adres info bij gebouw
                    (SELECT g.alg_gebouw_key,
                            a.mld_adres_bezoek_adres,
                            a.mld_adres_bezoek_postcode,
                            a.mld_adres_bezoek_plaats
                       FROM alg_gebouw g, mld_adres a
                      WHERE g.mld_adres_key = a.mld_adres_key
                            AND a.mld_adres_verwijder IS NULL) b
             ON a.alg_gebouw_key = b.alg_gebouw_key
          LEFT JOIN (SELECT g.alg_gebouw_key,
                            l.alg_locatie_adres adres,
                            l.alg_locatie_plaats plaats,
                            l.alg_locatie_postcode postcode,
                            d.alg_regio_key
                       FROM alg_gebouw g, alg_locatie l, alg_district d
                      WHERE g.alg_locatie_key = l.alg_locatie_key
                            AND l.alg_district_key = d.alg_district_key) c
             ON a.alg_gebouw_key = c.alg_gebouw_key
          LEFT JOIN (SELECT ok.alg_onrgoed_key, ud.fac_usrdata_omschr kavel
                       FROM alg_v_aanwezigonrgoedkenmerk ok,
                            fac_v_aanwezigusrdata ud
                      WHERE ok.alg_kenmerk_key = 1420                 -- kavel
                            AND ok.alg_onrgoed_niveau = 'G'
                            --AND ud.fac_usrtab_key = 922
                            AND fac.safe_to_number (
                                  ok.alg_onrgoedkenmerk_waarde) =
                                  ud.fac_usrdata_key) d
             ON a.alg_gebouw_key = d.alg_onrgoed_key
          LEFT JOIN       -- huurcontract info bij gebouw; soms >1 per gebouw?
                    (SELECT DISTINCT
                            cp.cnt_alg_plaats_key,
                            CASE
                               WHEN fac.safe_to_number(SUBSTR (
                                                          c.cnt_contract_nummer_intern,
                                                          7,
                                                          1)) < 5
                               THEN
                                  'Algemeen'
                               ELSE
                                  'Werkbedrijf'
                            END
                               uwv_cwi
                       FROM cnt_v_aanwezigcontract c,
                            cnt_contract_plaats cp,
                            cnt_kenmerkcontract kc
                      WHERE     c.ins_discipline_key = 198       -- huurcontr.
                            AND c.cnt_contract_key = cp.cnt_contract_key
                            AND cp.cnt_contract_plaats_verwijder IS NULL
                            AND cp.cnt_alg_plaats_code = 'G'
                            AND c.cnt_contract_key = kc.cnt_contract_key
                            AND kc.cnt_kenmerkcontract_verwijder IS NULL
                            AND kc.cnt_kenmerk_key = 184             -- actief
                            AND kc.cnt_kenmerkcontract_waarde = '1221') e
             ON a.alg_gebouw_key = e.cnt_alg_plaats_key
    WHERE (a.alg_srtgebouw_key = 61 AND c.alg_regio_key NOT IN (21, 41)) -- satelliet
          OR e.cnt_alg_plaats_key IS NOT NULL;

CREATE OR REPLACE VIEW uwva_v_rap_hv_pandcode_lfm
(
   fclt_f_pandcode,
   fclt_f_pandsoort,
   pand_kpn,
   adres,
   postcode,
   fclt_f_plaats,
   fclt_f_kavel,
   lfm_naam,
   lfm_nr,
   fsm_email,
   fsm1_naam,
   fsm1_nr,
   fsm2_naam,
   fsm2_nr,
   fsm3_naam,
   fsm3_nr,
   fsm4_naam,
   fsm4_nr,
   fsm5_naam,
   fsm5_nr,
   beveiliging,
   piket,
   postkamer_nr,
   postkamer_contact,
   fclt_f_regio_fb,
   klantzone,
   postkamer,
   meldkamer,
   restaurant_aanwezig,
   naam_cat_manager,
   tel_cat_manager,
   catalogi,
   naam_reg_ict_coordinator,
   tel_reg_ict_coordinator,
   met_gemeente,
   narrowcasting,
   hoofdhuurder,
   toegangscontrolesysteem
)
AS
   SELECT a.alg_gebouw_code,
          COALESCE (e.uwv_cwi, 'Satelliet'),
          a.gebouw_kpn,
          COALESCE (b.mld_adres_bezoek_adres, c.adres) adres,
          COALESCE (b.mld_adres_bezoek_postcode, c.postcode) postcode,
          COALESCE (b.mld_adres_bezoek_plaats, c.plaats) plaats,
          d.kavel,
          lfm.naam,
          lfm.nr,
          efsm.waarde,
          fsm1.naam,
          fsm1.nr,
          fsm2.naam,
          fsm2.nr,
          fsm3.naam,
          fsm3.nr,
          fsm4.naam,
          fsm4.nr,
          fsm5.naam,
          fsm5.nr,
          bn.waarde,
          pn.waarde,
          pt.waarde,
          pc.waarde,
          c.alg_district_omschrijving,
          DECODE (kz.waarde, 1, 'Ja', 0, 'Nee', NULL),
          DECODE (pk.waarde, 1, 'Ja', 0, 'Nee', NULL),
          DECODE (mk.waarde, 1, 'Ja', 0, 'Nee', NULL),
          DECODE (ra.waarde, 1, 'JA', 0, 'Nee', NULL),
          nc.waarde,
          tc.waarde,
          dsc.disc,
          ric.naam,
          ric.nr,
          DECODE (mgem.waarde, 1, 'Ja', 0, 'Nee', NULL) waarde,
          DECODE (ncas.waarde, 1, 'Ja', 0, 'Nee', NULL) waarde,
          DECODE (hh.waarde, 1, 'Ja', 0, 'Nee', NULL) waarde,
          tcs.waarde
     FROM (SELECT g.alg_locatie_key,
                  g.alg_gebouw_key,
                  g.alg_gebouw_code,
                  kp.prs_kostenplaats_upper gebouw_kpn,
                  g.alg_srtgebouw_key
             FROM alg_v_aanweziggebouw g, prs_kostenplaats kp
            WHERE g.prs_kostenplaats_key = kp.prs_kostenplaats_key(+)) a
          LEFT JOIN                                   -- adres info bij gebouw
                    (SELECT g.alg_gebouw_key,
                            a.mld_adres_bezoek_adres,
                            a.mld_adres_bezoek_postcode,
                            a.mld_adres_bezoek_plaats
                       FROM alg_gebouw g, mld_adres a
                      WHERE g.mld_adres_key = a.mld_adres_key
                            AND a.mld_adres_verwijder IS NULL) b
             ON a.alg_gebouw_key = b.alg_gebouw_key
          LEFT JOIN (SELECT g.alg_gebouw_key,
                            l.alg_locatie_adres adres,
                            l.alg_locatie_plaats plaats,
                            l.alg_locatie_postcode postcode,
                            d.alg_district_omschrijving,
                            d.alg_regio_key
                       FROM alg_gebouw g, alg_locatie l, alg_district d
                      WHERE g.alg_locatie_key = l.alg_locatie_key
                            AND l.alg_district_key = d.alg_district_key) c
             ON a.alg_gebouw_key = c.alg_gebouw_key
          LEFT JOIN                                              -- 1420=kavel
                    (SELECT ok.alg_onrgoed_key, ud.fac_usrdata_omschr kavel
                       FROM alg_v_aanwezigonrgoedkenmerk ok,
                            fac_v_aanwezigusrdata ud
                      WHERE ok.alg_kenmerk_key = 1420
                            AND ok.alg_onrgoed_niveau = 'G'
                            --AND ud.fac_usrtab_key = 922
                            AND fac.safe_to_number (
                                  ok.alg_onrgoedkenmerk_waarde) =
                                  ud.fac_usrdata_key) d
             ON a.alg_gebouw_key = d.alg_onrgoed_key
          LEFT JOIN                                                -- 1020=LFM
                    (SELECT ok.alg_onrgoed_key,
                            pf.prs_perslid_naam_full naam,
                            kl.prs_kenmerklink_waarde nr
                       FROM alg_v_aanwezigonrgoedkenmerk ok,
                            prs_v_perslid_fullnames_all pf,
                            prs_v_aanwezigkenmerklink kl
                      WHERE ok.alg_kenmerk_key = 1020
                            AND ok.alg_onrgoed_niveau = 'L'
                            AND fac.safe_to_number (
                                  ok.alg_onrgoedkenmerk_waarde) =
                                  pf.prs_perslid_key
                            AND pf.prs_perslid_key = kl.prs_link_key(+)
                            AND kl.prs_kenmerk_key(+) = 1353          -- FBnr.
                            AND kl.prs_kenmerklink_niveau(+) = 'P') lfm
             ON a.alg_locatie_key = lfm.alg_onrgoed_key
          LEFT JOIN                                               -- 1460=FSM1
                    (SELECT ok.alg_onrgoed_key,
                            pf.prs_perslid_naam_full naam,
                            kl.prs_kenmerklink_waarde nr
                       FROM alg_v_aanwezigonrgoedkenmerk ok,
                            prs_v_perslid_fullnames_all pf,
                            prs_v_aanwezigkenmerklink kl
                      WHERE ok.alg_kenmerk_key = 1460
                            AND ok.alg_onrgoed_niveau = 'L'
                            AND fac.safe_to_number (
                                  ok.alg_onrgoedkenmerk_waarde) =
                                  pf.prs_perslid_key
                            AND pf.prs_perslid_key = kl.prs_link_key(+)
                            AND kl.prs_kenmerk_key(+) = 1353          -- FBnr.
                            AND kl.prs_kenmerklink_niveau(+) = 'P') fsm1
             ON a.alg_locatie_key = fsm1.alg_onrgoed_key
          LEFT JOIN                                               -- 1461=FSM2
                    (SELECT ok.alg_onrgoed_key,
                            pf.prs_perslid_naam_full naam,
                            kl.prs_kenmerklink_waarde nr
                       FROM alg_v_aanwezigonrgoedkenmerk ok,
                            prs_v_perslid_fullnames_all pf,
                            prs_v_aanwezigkenmerklink kl
                      WHERE ok.alg_kenmerk_key = 1461
                            AND ok.alg_onrgoed_niveau = 'L'
                            AND fac.safe_to_number (
                                  ok.alg_onrgoedkenmerk_waarde) =
                                  pf.prs_perslid_key
                            AND pf.prs_perslid_key = kl.prs_link_key(+)
                            AND kl.prs_kenmerk_key(+) = 1353          -- FBnr.
                            AND kl.prs_kenmerklink_niveau(+) = 'P') fsm2
             ON a.alg_locatie_key = fsm2.alg_onrgoed_key
          LEFT JOIN                                               -- 1462=FSM3
                    (SELECT ok.alg_onrgoed_key,
                            pf.prs_perslid_naam_full naam,
                            kl.prs_kenmerklink_waarde nr
                       FROM alg_v_aanwezigonrgoedkenmerk ok,
                            prs_v_perslid_fullnames_all pf,
                            prs_v_aanwezigkenmerklink kl
                      WHERE ok.alg_kenmerk_key = 1462
                            AND ok.alg_onrgoed_niveau = 'L'
                            AND fac.safe_to_number (
                                  ok.alg_onrgoedkenmerk_waarde) =
                                  pf.prs_perslid_key
                            AND pf.prs_perslid_key = kl.prs_link_key(+)
                            AND kl.prs_kenmerk_key(+) = 1353          -- FBnr.
                            AND kl.prs_kenmerklink_niveau(+) = 'P') fsm3
             ON a.alg_locatie_key = fsm3.alg_onrgoed_key
          LEFT JOIN                                               -- 1463=FSM4
                    (SELECT ok.alg_onrgoed_key,
                            pf.prs_perslid_naam_full naam,
                            kl.prs_kenmerklink_waarde nr
                       FROM alg_v_aanwezigonrgoedkenmerk ok,
                            prs_v_perslid_fullnames_all pf,
                            prs_v_aanwezigkenmerklink kl
                      WHERE ok.alg_kenmerk_key = 1463
                            AND ok.alg_onrgoed_niveau = 'L'
                            AND fac.safe_to_number (
                                  ok.alg_onrgoedkenmerk_waarde) =
                                  pf.prs_perslid_key
                            AND pf.prs_perslid_key = kl.prs_link_key(+)
                            AND kl.prs_kenmerk_key(+) = 1353          -- FBnr.
                            AND kl.prs_kenmerklink_niveau(+) = 'P') fsm4
             ON a.alg_locatie_key = fsm4.alg_onrgoed_key
          LEFT JOIN                                               -- 1469=FSM5
                    (SELECT ok.alg_onrgoed_key,
                            pf.prs_perslid_naam_full naam,
                            kl.prs_kenmerklink_waarde nr
                       FROM alg_v_aanwezigonrgoedkenmerk ok,
                            prs_v_perslid_fullnames_all pf,
                            prs_v_aanwezigkenmerklink kl
                      WHERE ok.alg_kenmerk_key = 1469
                            AND ok.alg_onrgoed_niveau = 'L'
                            AND fac.safe_to_number (
                                  ok.alg_onrgoedkenmerk_waarde) =
                                  pf.prs_perslid_key
                            AND pf.prs_perslid_key = kl.prs_link_key(+)
                            AND kl.prs_kenmerk_key(+) = 1353          -- FBnr.
                            AND kl.prs_kenmerklink_niveau(+) = 'P') fsm5
             ON a.alg_locatie_key = fsm5.alg_onrgoed_key
          LEFT JOIN                                     -- 1471=beveiligingnr.
                    (SELECT ok.alg_onrgoed_key,
                            ok.alg_onrgoedkenmerk_waarde waarde
                       FROM alg_v_aanwezigonrgoedkenmerk ok
                      WHERE ok.alg_kenmerk_key = 1471
                            AND ok.alg_onrgoed_niveau = 'L') bn
             ON a.alg_locatie_key = bn.alg_onrgoed_key
          LEFT JOIN                                           -- 1472=piketnr.
                    (SELECT ok.alg_onrgoed_key,
                            ok.alg_onrgoedkenmerk_waarde waarde
                       FROM alg_v_aanwezigonrgoedkenmerk ok
                      WHERE ok.alg_kenmerk_key = 1472
                            AND ok.alg_onrgoed_niveau = 'L') pn
             ON a.alg_locatie_key = pn.alg_onrgoed_key
          LEFT JOIN                                          -- 1473=klantzone
                    (SELECT ok.alg_onrgoed_key,
                            ok.alg_onrgoedkenmerk_waarde waarde
                       FROM alg_v_aanwezigonrgoedkenmerk ok
                      WHERE ok.alg_kenmerk_key = 1473
                            AND ok.alg_onrgoed_niveau = 'L') kz
             ON a.alg_locatie_key = kz.alg_onrgoed_key
          LEFT JOIN                                          -- 1474=postkamer
                    (SELECT ok.alg_onrgoed_key,
                            ok.alg_onrgoedkenmerk_waarde waarde
                       FROM alg_v_aanwezigonrgoedkenmerk ok
                      WHERE ok.alg_kenmerk_key = 1474
                            AND ok.alg_onrgoed_niveau = 'L') pk
             ON a.alg_locatie_key = pk.alg_onrgoed_key
          LEFT JOIN                                          -- 1475=meldkamer
                    (SELECT ok.alg_onrgoed_key,
                            ok.alg_onrgoedkenmerk_waarde waarde
                       FROM alg_v_aanwezigonrgoedkenmerk ok
                      WHERE ok.alg_kenmerk_key = 1475
                            AND ok.alg_onrgoed_niveau = 'L') mk
             ON a.alg_locatie_key = mk.alg_onrgoed_key
          LEFT JOIN                               -- 1520=resteaurant aanwezig
                    (SELECT ok.alg_onrgoed_key,
                            ok.alg_onrgoedkenmerk_waarde waarde
                       FROM alg_v_aanwezigonrgoedkenmerk ok
                      WHERE ok.alg_kenmerk_key = 1520
                            AND ok.alg_onrgoed_niveau = 'L') ra
             ON a.alg_locatie_key = ra.alg_onrgoed_key
          LEFT JOIN                               -- 1521=Naam Cateringmanager
                    (SELECT ok.alg_onrgoed_key,
                            ok.alg_onrgoedkenmerk_waarde waarde
                       FROM alg_v_aanwezigonrgoedkenmerk ok
                      WHERE ok.alg_kenmerk_key = 1521
                            AND ok.alg_onrgoed_niveau = 'L') nc
             ON a.alg_locatie_key = nc.alg_onrgoed_key
          LEFT JOIN                           -- 1522=Telefoon cateringmanager
                    (SELECT ok.alg_onrgoed_key,
                            ok.alg_onrgoedkenmerk_waarde waarde
                       FROM alg_v_aanwezigonrgoedkenmerk ok
                      WHERE ok.alg_kenmerk_key = 1522
                            AND ok.alg_onrgoed_niveau = 'L') tc
             ON a.alg_locatie_key = tc.alg_onrgoed_key
          LEFT JOIN                           -- 1540=Postkamer contactpersoon
                    (SELECT ok.alg_onrgoed_key,
                            ok.alg_onrgoedkenmerk_waarde waarde
                       FROM alg_v_aanwezigonrgoedkenmerk ok
                      WHERE ok.alg_kenmerk_key = 1540
                            AND ok.alg_onrgoed_niveau = 'L') pc
             ON a.alg_locatie_key = pc.alg_onrgoed_key
          LEFT JOIN                           -- 1541=Postkamer telefoonnummer
                    (SELECT ok.alg_onrgoed_key,
                            ok.alg_onrgoedkenmerk_waarde waarde
                       FROM alg_v_aanwezigonrgoedkenmerk ok
                      WHERE ok.alg_kenmerk_key = 1541
                            AND ok.alg_onrgoed_niveau = 'L') pt
             ON a.alg_locatie_key = pt.alg_onrgoed_key
          LEFT JOIN                                   -- 1543=E-mail adres FSM
                    (SELECT ok.alg_onrgoed_key,
                            ok.alg_onrgoedkenmerk_waarde waarde
                       FROM alg_v_aanwezigonrgoedkenmerk ok
                      WHERE ok.alg_kenmerk_key = 1543
                            AND ok.alg_onrgoed_niveau = 'L') efsm
             ON a.alg_locatie_key = efsm.alg_onrgoed_key
          LEFT JOIN       -- huurcontract info bij gebouw; soms >1 per gebouw?
                    (SELECT DISTINCT
                            cp.cnt_alg_plaats_key,
                            CASE
                               WHEN fac.safe_to_number(SUBSTR (
                                                          c.cnt_contract_nummer_intern,
                                                          7,
                                                          1)) < 5
                               THEN
                                  'Algemeen'
                               ELSE
                                  'Werkbedrijf'
                            END
                               uwv_cwi
                       FROM cnt_v_aanwezigcontract c,
                            cnt_contract_plaats cp,
                            cnt_kenmerkcontract kc
                      WHERE     c.ins_discipline_key = 198       -- huurcontr.
                            AND c.cnt_contract_key = cp.cnt_contract_key
                            AND cp.cnt_contract_plaats_verwijder IS NULL
                            AND cp.cnt_alg_plaats_code = 'G'
                            AND c.cnt_contract_key = kc.cnt_contract_key
                            AND kc.cnt_kenmerkcontract_verwijder IS NULL
                            AND kc.cnt_kenmerk_key = 184             -- actief
                            AND kc.cnt_kenmerkcontract_waarde = '1221') e
             ON a.alg_gebouw_key = e.cnt_alg_plaats_key
          LEFT JOIN (  SELECT alg_onrgoed_key,
                              listagg (disc, ', ') WITHIN GROUP (ORDER BY disc)
                                 AS disc
                         FROM (SELECT DISTINCT disc, alg_onrgoed_key
                                 FROM (SELECT rd.ins_discipline_omschrijving
                                                 disc,
                                              alg_onrgoed_key
                                         FROM res_srtartikel_onrgoed rso,
                                              res_discipline rd
                                        WHERE alg_onrgoed_niveau = 'L'
                                              AND res_srtartikel_og_verwijder IS NULL
                                              AND rso.res_discipline_key =
                                                    rd.ins_discipline_key
                                              AND rd.ins_discipline_verwijder IS NULL
                                       UNION ALL
                                       SELECT rd.ins_discipline_omschrijving,
                                              g.alg_locatie_key
                                         FROM res_srtartikel_onrgoed rso,
                                              res_discipline rd,
                                              alg_gebouw g
                                        WHERE alg_onrgoed_niveau = 'G'
                                              AND res_srtartikel_og_verwijder IS NULL
                                              AND rso.res_discipline_key =
                                                    rd.ins_discipline_key
                                              AND g.alg_gebouw_key =
                                                    rso.alg_onrgoed_key
                                              AND rd.ins_discipline_verwijder IS NULL
                                       UNION ALL
                                       SELECT rd.ins_discipline_omschrijving,
                                              aag.alg_locatie_key
                                         FROM res_srtartikel_onrgoed rso,
                                              res_discipline rd,
                                              alg_v_allonrgoed_gegevens aag
                                        WHERE alg_onrgoed_niveau = 'R'
                                              AND res_srtartikel_og_verwijder IS NULL
                                              AND rso.res_discipline_key =
                                                    rd.ins_discipline_key
                                              AND aag.alg_onroerendgoed_keys =
                                                    rso.alg_onrgoed_key
                                              AND rd.ins_discipline_verwijder IS NULL))
                     GROUP BY alg_onrgoed_key) dsc
             ON a.alg_locatie_key = dsc.alg_onrgoed_key
          LEFT JOIN                          -- 1584=regionaal ICT coordinator
                    (SELECT ok.alg_onrgoed_key,
                            pf.prs_perslid_naam_full naam,
                            kl.prs_kenmerklink_waarde nr
                       FROM alg_v_aanwezigonrgoedkenmerk ok,
                            prs_v_perslid_fullnames_all pf,
                            prs_v_aanwezigkenmerklink kl
                      WHERE ok.alg_kenmerk_key = 1584
                            AND ok.alg_onrgoed_niveau = 'L'
                            AND fac.safe_to_number (
                                  ok.alg_onrgoedkenmerk_waarde) =
                                  pf.prs_perslid_key
                            AND pf.prs_perslid_key = kl.prs_link_key(+)
                            AND kl.prs_kenmerk_key(+) = 1353          -- FBnr.
                            AND kl.prs_kenmerklink_niveau(+) = 'P') ric
             ON a.alg_locatie_key = ric.alg_onrgoed_key
          LEFT JOIN                                       -- 1583=Met gemeente
                    (SELECT ok.alg_onrgoed_key,
                            ok.alg_onrgoedkenmerk_waarde waarde
                       FROM alg_v_aanwezigonrgoedkenmerk ok
                      WHERE ok.alg_kenmerk_key = 1583
                            AND ok.alg_onrgoed_niveau = 'L') mgem
             ON a.alg_locatie_key = mgem.alg_onrgoed_key
          LEFT JOIN                                      -- 1582=Narrowcasting
                    (SELECT ok.alg_onrgoed_key,
                            ok.alg_onrgoedkenmerk_waarde waarde
                       FROM alg_v_aanwezigonrgoedkenmerk ok
                      WHERE ok.alg_kenmerk_key = 1582
                            AND ok.alg_onrgoed_niveau = 'L') ncas
             ON a.alg_locatie_key = ncas.alg_onrgoed_key
          LEFT JOIN                                       -- 1581=Hoofdhuurder
                    (SELECT ok.alg_onrgoed_key,
                            ok.alg_onrgoedkenmerk_waarde waarde
                       FROM alg_v_aanwezigonrgoedkenmerk ok
                      WHERE ok.alg_kenmerk_key = 1581
                            AND ok.alg_onrgoed_niveau = 'L') hh
             ON a.alg_locatie_key = hh.alg_onrgoed_key
          LEFT JOIN                            -- 1580=Toegangscontrolesysteem
                    (SELECT ok.alg_onrgoed_key, fu.fac_usrdata_omschr waarde
                       FROM alg_v_aanwezigonrgoedkenmerk ok, fac_usrdata fu
                      WHERE     ok.alg_kenmerk_key = 1580
                            AND ok.alg_onrgoed_niveau = 'L'
                            AND fu.fac_usrtab_key = 1382
                            AND TO_CHAR (fu.fac_usrdata_key) =
                                  ok.alg_onrgoedkenmerk_waarde) tcs
             ON a.alg_locatie_key = tcs.alg_onrgoed_key
    WHERE (a.alg_srtgebouw_key = 61 AND c.alg_regio_key NOT IN (21, 41)) -- satelliet
          OR e.cnt_alg_plaats_key IS NOT NULL;

/* Formatted on 18-2-2015 16:18:12 (QP5 v5.136.908.31019) */
CREATE OR REPLACE VIEW uwva_v_rap_hv_contractdetails
(
   nummer,
   fclt_f_mantel,
   fclt_f_gebouw,
   fclt_f_cnt_type,
   adres,
   plaats,
   beschrijving,
   omschrijving,
   ingangsdatum,
   rappeldatum,
   opzegdatum,
   einddatum,
   uwv_eigenaar,
   uwv_beheerder,
   uitvoerder_bedrijf,
   uitvoerder_contact,
   uitvoerder_telefoon,
   oms_breakmoment,
   breakmoment1,
   opzegtermijn1,
   opzegdatum1,
   sanctie1,
   breakmoment2,
   opzegtermijn2,
   opzegdatum2,
   sanctie2,
   kostenplaats,
   fclt_f_contractrubriek,
   geconditioneerd,
   fclt_f_contractstatus,
   actief,
   btw_verlegd,
   opzegtermijn,
   signaaltermijn,
   factuurperiode,
   stilzw_verl,
   optie_systematiek,
   optieperiode1,
   optieperiode2,
   optieperiode3,
   laatste_indexering,
   bijdr_verhuurder,
   invest_btw,
   oms_terugverpl,
   indeplaatsstel,
   onderh_toegest,
   contractregelrubriek,
   aantal,
   eenheid,
   kosten_excl_btw,
   btw,
   kosten_incl_btw,
   indexdatum,
   indexcijfer,
   aftopindex_oms,
   berek_over_huur,
   btwaftr_verpl,
   laatste_afrekper,
   perc_afhfiscus,
   perc_herzdatum,
   datum_afrek,
   datum_bijst,
   btwcmp_oms,
   btwcmp_herzdatum
)
AS
   SELECT basis.nummer,
          basis.mantel,
          pand.code,
          CASE
             WHEN fac.safe_to_number (SUBSTR (basis.nummer, 7, 1)) < 5
             THEN
                'Algemeen'
             ELSE
                'Werkbedrijf'
          END
             uwv_cwi,
          pand.adres,
          pand.plaats,
          basis.beschrijving,
          basis.omschrijving,
          basis.ingangsdatum,
          basis.rappeldatum,
          basis.opzegdatum,
          basis.einddatum,
          basis.contract_eigenaar,
          basis.contract_beheerder,
          basis.prs_bedrijf_naam,
          contact.uitv_contact,
          contact.uitv_tel,
          oms_breakmoment,
          basis.breakmoment1,
          basis.opzegtermijn1,
          basis.opzegdatum1,
          basis.sanctie1,
          basis.breakmoment2,
          basis.opzegtermijn2,
          basis.opzegdatum2,
          basis.sanctie2,
          pand.kostenplaats,
          basis.contractrubriek,
          basis.geconditioneerd,
          basis.contractstatus,
          basis.actief,
          basis.btw_verlegd,
          basis.opzegtermijn,
          basis.signaaltermijn,
          basis.factuurperiode,
          basis.verlenging,
          basis.optie_systematiek,
          basis.optieperiode1,
          basis.optieperiode2,
          basis.optieperiode3,
          basis.laatste_indexering,
          basis.bijdr_verhuurder,
          basis.invest_btw,
          basis.oms_terugverpl,
          basis.indeplaatsstel,
          basis.onderh_toegest,
          regels.contractregelrubriek,
          fac.safe_to_number (regels.aantal) aantal,
          regels.eenheid,
          fac.safe_to_number (regels.kostenexcl) kosten_excl_btw,
          regels.btw,
          (CASE
              WHEN regels.btw IS NOT NULL AND UPPER (regels.btw) <> 'VRIJ' AND UPPER (regels.btw) <> 'VERLEGD'
              THEN
                 fac.safe_to_number (
                    SUBSTR (regels.btw, 1, INSTR (regels.btw, '%') - 1))
                 * fac.safe_to_number (regels.kostenexcl)
                 / 100
                 + fac.safe_to_number (regels.kostenexcl)
              ELSE
                 fac.safe_to_number (regels.kostenexcl)
           END)
             kosten_incl_btw,
          regels.indexdatum,
          regels.indexcijfer,
          regels.aftopindex_oms,
          regels.berek_over_huur,
          regels.btwaftr_verpl,
          regels.laatste_afrekper,
          regels.perc_afhfiscus,
          regels.perc_herzdatum,
          regels.datum_afrek,
          regels.datum_bijst,
          regels.btwcmp_oms,
          regels.btwcmp_herzdatum
     FROM (SELECT c.cnt_contract_key,
                  c.cnt_contract_nummer_intern nummer,
                  m.cnt_contract_nummer_intern mantel,
                  c.cnt_contract_omschrijving beschrijving,
                  c.cnt_contract_document omschrijving,
                  c.cnt_contract_looptijd_van ingangsdatum,
                  cnt.cnt_getrappeldatum (c.cnt_contract_key) rappeldatum,
                  cnt.cnt_getopzegdatum (c.cnt_contract_key) opzegdatum,
                  c.cnt_contract_looptijd_tot einddatum,
                  a.prs_afdeling_upper || '-' || a.prs_afdeling_omschrijving
                     contract_eigenaar,
                  p.prs_perslid_naam_full contract_beheerder,
                  b.prs_bedrijf_naam,
                  (SELECT kc.cnt_kenmerkcontract_waarde
                     FROM cnt_kenmerkcontract kc
                    WHERE     kc.cnt_kenmerkcontract_verwijder IS NULL
                          AND kc.cnt_contract_key = c.cnt_contract_key
                          AND kc.cnt_kenmerk_key = 985)
                     oms_breakmoment,
                  (SELECT kc.cnt_kenmerkcontract_waarde
                     FROM cnt_kenmerkcontract kc
                    WHERE     kc.cnt_kenmerkcontract_verwijder IS NULL
                          AND kc.cnt_contract_key = c.cnt_contract_key
                          AND kc.cnt_kenmerk_key = 986)
                     breakmoment1,                      -- was 782 (vervangen)
                  (SELECT kc.cnt_kenmerkcontract_waarde
                     FROM cnt_kenmerkcontract kc
                    WHERE     kc.cnt_kenmerkcontract_verwijder IS NULL
                          AND kc.cnt_contract_key = c.cnt_contract_key
                          AND kc.cnt_kenmerk_key = 987)
                     opzegtermijn1,
                  (SELECT kc.cnt_kenmerkcontract_waarde
                     FROM cnt_kenmerkcontract kc
                    WHERE     kc.cnt_kenmerkcontract_verwijder IS NULL
                          AND kc.cnt_contract_key = c.cnt_contract_key
                          AND kc.cnt_kenmerk_key = 988)
                     opzegdatum1,
                  (SELECT kc.cnt_kenmerkcontract_waarde
                     FROM cnt_kenmerkcontract kc
                    WHERE     kc.cnt_kenmerkcontract_verwijder IS NULL
                          AND kc.cnt_contract_key = c.cnt_contract_key
                          AND kc.cnt_kenmerk_key = 989)
                     sanctie1,
                  (SELECT kc.cnt_kenmerkcontract_waarde
                     FROM cnt_kenmerkcontract kc
                    WHERE     kc.cnt_kenmerkcontract_verwijder IS NULL
                          AND kc.cnt_contract_key = c.cnt_contract_key
                          AND kc.cnt_kenmerk_key = 990)
                     breakmoment2,
                  (SELECT kc.cnt_kenmerkcontract_waarde
                     FROM cnt_kenmerkcontract kc
                    WHERE     kc.cnt_kenmerkcontract_verwijder IS NULL
                          AND kc.cnt_contract_key = c.cnt_contract_key
                          AND kc.cnt_kenmerk_key = 991)
                     opzegtermijn2,
                  (SELECT kc.cnt_kenmerkcontract_waarde
                     FROM cnt_kenmerkcontract kc
                    WHERE     kc.cnt_kenmerkcontract_verwijder IS NULL
                          AND kc.cnt_contract_key = c.cnt_contract_key
                          AND kc.cnt_kenmerk_key = 992)
                     opzegdatum2,
                  (SELECT kc.cnt_kenmerkcontract_waarde
                     FROM cnt_kenmerkcontract kc
                    WHERE     kc.cnt_kenmerkcontract_verwijder IS NULL
                          AND kc.cnt_contract_key = c.cnt_contract_key
                          AND kc.cnt_kenmerk_key = 993)
                     sanctie2,
                  (SELECT ud.fac_usrdata_omschr
                     FROM cnt_kenmerkcontract kc, fac_usrdata ud
                    WHERE     kc.cnt_kenmerkcontract_verwijder IS NULL
                          AND kc.cnt_contract_key = c.cnt_contract_key
                          AND kc.cnt_kenmerk_key = 181
                          AND fac.safe_to_number (kc.cnt_kenmerkcontract_waarde) =
                                ud.fac_usrdata_key)
                     contractrubriek,
                  (SELECT ud.fac_usrdata_omschr
                     FROM cnt_kenmerkcontract kc, fac_usrdata ud
                    WHERE     kc.cnt_kenmerkcontract_verwijder IS NULL
                          AND kc.cnt_contract_key = c.cnt_contract_key
                          AND kc.cnt_kenmerk_key = 981
                          AND fac.safe_to_number (kc.cnt_kenmerkcontract_waarde) =
                                ud.fac_usrdata_key)
                     geconditioneerd,
                  (SELECT ud.fac_usrdata_omschr
                     FROM cnt_kenmerkcontract kc, fac_usrdata ud
                    WHERE     kc.cnt_kenmerkcontract_verwijder IS NULL
                          AND kc.cnt_contract_key = c.cnt_contract_key
                          AND kc.cnt_kenmerk_key = 183
                          AND fac.safe_to_number (kc.cnt_kenmerkcontract_waarde) =
                                ud.fac_usrdata_key)
                     contractstatus,
                  (SELECT ud.fac_usrdata_omschr
                     FROM cnt_kenmerkcontract kc, fac_usrdata ud
                    WHERE     kc.cnt_kenmerkcontract_verwijder IS NULL
                          AND kc.cnt_contract_key = c.cnt_contract_key
                          AND kc.cnt_kenmerk_key = 184
                          AND fac.safe_to_number (kc.cnt_kenmerkcontract_waarde) =
                                ud.fac_usrdata_key)
                     actief,
                  (SELECT ud.fac_usrdata_omschr
                     FROM cnt_kenmerkcontract kc, fac_usrdata ud
                    WHERE     kc.cnt_kenmerkcontract_verwijder IS NULL
                          AND kc.cnt_contract_key = c.cnt_contract_key
                          AND kc.cnt_kenmerk_key = 186
                          AND fac.safe_to_number (kc.cnt_kenmerkcontract_waarde) =
                                ud.fac_usrdata_key)
                     btw_verlegd,
                  (SELECT t.cnt_termijn_omschrijving
                     FROM cnt_termijn t
                    WHERE t.cnt_termijn_key = c.cnt_contract_opzegtermijn)
                     opzegtermijn,
                  (SELECT t.cnt_termijn_omschrijving
                     FROM cnt_termijn t
                    WHERE t.cnt_termijn_key = c.cnt_contract_rappeltermijn)
                     signaaltermijn,
                  (SELECT ud.fac_usrdata_omschr
                     FROM cnt_kenmerkcontract kc, fac_usrdata ud
                    WHERE     kc.cnt_kenmerkcontract_verwijder IS NULL
                          AND kc.cnt_contract_key = c.cnt_contract_key
                          AND kc.cnt_kenmerk_key = 189
                          AND fac.safe_to_number (kc.cnt_kenmerkcontract_waarde) =
                                ud.fac_usrdata_key)
                     factuurperiode,
                  (SELECT ud.fac_usrdata_omschr
                     FROM cnt_kenmerkcontract kc, fac_usrdata ud
                    WHERE     kc.cnt_kenmerkcontract_verwijder IS NULL
                          AND kc.cnt_contract_key = c.cnt_contract_key
                          AND kc.cnt_kenmerk_key = 943
                          AND fac.safe_to_number (kc.cnt_kenmerkcontract_waarde) =
                                ud.fac_usrdata_key)
                     verlenging,                        -- was 190 (vervangen)
                  (SELECT kc.cnt_kenmerkcontract_waarde
                     FROM cnt_kenmerkcontract kc
                    WHERE     kc.cnt_kenmerkcontract_verwijder IS NULL
                          AND kc.cnt_contract_key = c.cnt_contract_key
                          AND kc.cnt_kenmerk_key = 191)
                     optie_systematiek,
                  (SELECT kc.cnt_kenmerkcontract_waarde
                     FROM cnt_kenmerkcontract kc
                    WHERE     kc.cnt_kenmerkcontract_verwijder IS NULL
                          AND kc.cnt_contract_key = c.cnt_contract_key
                          AND kc.cnt_kenmerk_key = 461)
                     optieperiode1,
                  (SELECT kc.cnt_kenmerkcontract_waarde
                     FROM cnt_kenmerkcontract kc
                    WHERE     kc.cnt_kenmerkcontract_verwijder IS NULL
                          AND kc.cnt_contract_key = c.cnt_contract_key
                          AND kc.cnt_kenmerk_key = 462)
                     optieperiode2,
                  (SELECT kc.cnt_kenmerkcontract_waarde
                     FROM cnt_kenmerkcontract kc
                    WHERE     kc.cnt_kenmerkcontract_verwijder IS NULL
                          AND kc.cnt_contract_key = c.cnt_contract_key
                          AND kc.cnt_kenmerk_key = 463)
                     optieperiode3,
                  (SELECT kc.cnt_kenmerkcontract_waarde
                     FROM cnt_kenmerkcontract kc
                    WHERE     kc.cnt_kenmerkcontract_verwijder IS NULL
                          AND kc.cnt_contract_key = c.cnt_contract_key
                          AND kc.cnt_kenmerk_key = 196)
                     laatste_indexering,
                  (SELECT kc.cnt_kenmerkcontract_waarde
                     FROM cnt_kenmerkcontract kc
                    WHERE     kc.cnt_kenmerkcontract_verwijder IS NULL
                          AND kc.cnt_contract_key = c.cnt_contract_key
                          AND kc.cnt_kenmerk_key = 983)
                     bijdr_verhuurder,
                  (SELECT ud.fac_usrdata_omschr
                     FROM cnt_kenmerkcontract kc, fac_usrdata ud
                    WHERE     kc.cnt_kenmerkcontract_verwijder IS NULL
                          AND kc.cnt_contract_key = c.cnt_contract_key
                          AND kc.cnt_kenmerk_key = 984
                          AND fac.safe_to_number (kc.cnt_kenmerkcontract_waarde) =
                                ud.fac_usrdata_key)
                     invest_btw,
                  (SELECT kc.cnt_kenmerkcontract_waarde
                     FROM cnt_kenmerkcontract kc
                    WHERE     kc.cnt_kenmerkcontract_verwijder IS NULL
                          AND kc.cnt_contract_key = c.cnt_contract_key
                          AND kc.cnt_kenmerk_key = 994)
                     oms_terugverpl,
                  (SELECT ud.fac_usrdata_omschr
                     FROM cnt_kenmerkcontract kc, fac_usrdata ud
                    WHERE     kc.cnt_kenmerkcontract_verwijder IS NULL
                          AND kc.cnt_contract_key = c.cnt_contract_key
                          AND kc.cnt_kenmerk_key = 995
                          AND fac.safe_to_number (kc.cnt_kenmerkcontract_waarde) =
                                ud.fac_usrdata_key)
                     indeplaatsstel,
                  (SELECT kc.cnt_kenmerkcontract_waarde
                     FROM cnt_kenmerkcontract kc
                    WHERE     kc.cnt_kenmerkcontract_verwijder IS NULL
                          AND kc.cnt_contract_key = c.cnt_contract_key
                          AND kc.cnt_kenmerk_key = 996)
                     onderh_toegest
             FROM cnt_v_aanwezigcontract c,
                  cnt_v_aanwezigcontract m,
                  prs_afdeling a,
                  prs_v_perslid_fullnames p,
                  prs_bedrijf b
            WHERE     c.ins_discipline_key = 198
                  AND c.cnt_contract_mantel_key = m.cnt_contract_key(+)
                  AND c.prs_afdeling_key_eig = a.prs_afdeling_key
                  AND c.prs_perslid_key_beh = p.prs_perslid_key
                  AND c.cnt_prs_bedrijf_key = b.prs_bedrijf_key) basis
          LEFT JOIN (SELECT x.cnt_contract_key,
                            y.code,
                            y.kostenplaats,
                            COALESCE (z.mld_adres_bezoek_plaats,
                                      y.alg_locatie_plaats)
                               plaats,
                            COALESCE (z.mld_adres_bezoek_adres,
                                      y.alg_locatie_adres)
                               adres
                       FROM (SELECT ccp.cnt_alg_plaats_key,
                                    cc.cnt_contract_key
                               FROM cnt_contract cc, cnt_contract_plaats ccp
                              WHERE cc.ins_discipline_key = 198 -- huurcontract
                                    AND cc.cnt_contract_key =
                                          ccp.cnt_contract_key
                                    AND ccp.cnt_alg_plaats_code = 'G'
                                    AND ccp.cnt_contract_plaats_verwijder IS NULL)
                            x
                            LEFT JOIN (SELECT g.alg_gebouw_key,
                                              g.alg_gebouw_code code,
                                              l.alg_locatie_adres,
                                              l.alg_locatie_plaats,
                                              kp.prs_kostenplaats_nr
                                                 kostenplaats
                                         FROM alg_gebouw g,
                                              alg_locatie l,
                                              prs_kostenplaats kp
                                        WHERE g.alg_locatie_key =
                                                 l.alg_locatie_key
                                              AND g.prs_kostenplaats_key =
                                                    kp.prs_kostenplaats_key(+))
                                      y
                               ON x.cnt_alg_plaats_key = y.alg_gebouw_key
                            LEFT JOIN                 -- adres info bij gebouw
                                      (SELECT g.alg_gebouw_key,
                                              a.mld_adres_bezoek_plaats,
                                              a.mld_adres_bezoek_adres
                                         FROM alg_gebouw g, mld_adres a
                                        WHERE g.mld_adres_key =
                                                 a.mld_adres_key
                                              AND a.mld_adres_verwijder IS NULL)
                                      z
                               ON x.cnt_alg_plaats_key = z.alg_gebouw_key)
                    pand
             ON basis.cnt_contract_key = pand.cnt_contract_key
          LEFT JOIN (SELECT c.cnt_contract_key,
                            cp.prs_contactpersoon_naam
                            || DECODE (
                                  cp.prs_contactpersoon_voorletters,
                                  NULL,
                                  '',
                                  ', ' || cp.prs_contactpersoon_voorletters)
                            || DECODE (cp.prs_contactpersoon_tussenv,
                                       NULL, '',
                                       ' ' || cp.prs_contactpersoon_tussenv)
                            || DECODE (
                                  cp.prs_contactpersoon_voornaam,
                                  NULL,
                                  '',
                                     ' ('
                                  || cp.prs_contactpersoon_voornaam
                                  || ')')
                               uitv_contact,
                            COALESCE (cp.prs_contactpersoon_telefoon_1,
                                      cp.prs_contactpersoon_telefoon_2)
                               uitv_tel
                       FROM cnt_contract c, prs_contactpersoon cp
                      WHERE c.prs_contactpersoon_key =
                               cp.prs_contactpersoon_key) contact
             ON basis.cnt_contract_key = contact.cnt_contract_key
          LEFT JOIN (SELECT cr1.cnt_contract_key cntkey,
                            (SELECT ud.fac_usrdata_omschr
                               FROM cnt_kenmerkcontract kc, fac_usrdata ud
                              WHERE kc.cnt_kenmerkcontract_verwijder IS NULL
                                    AND kc.cnt_contract_key =
                                          cr1.cnt_contract_key
                                    AND kc.cnt_kenmerk_key = 201
                                    AND fac.safe_to_number (kc.cnt_kenmerkcontract_waarde) =
                                          ud.fac_usrdata_key)
                               contractregelrubriek,
                            (SELECT kc.cnt_kenmerkcontract_waarde
                               FROM cnt_kenmerkcontract kc
                              WHERE kc.cnt_kenmerkcontract_verwijder IS NULL
                                    AND kc.cnt_contract_key =
                                          cr1.cnt_contract_key
                                    AND kc.cnt_kenmerk_key = 202)
                               aantal,
                            (SELECT ud.fac_usrdata_omschr
                               FROM cnt_kenmerkcontract kc, fac_usrdata ud
                              WHERE kc.cnt_kenmerkcontract_verwijder IS NULL
                                    AND kc.cnt_contract_key =
                                          cr1.cnt_contract_key
                                    AND kc.cnt_kenmerk_key = 203
                                    AND fac.safe_to_number (kc.cnt_kenmerkcontract_waarde) =
                                          ud.fac_usrdata_key)
                               eenheid,
                            (SELECT kc.cnt_kenmerkcontract_waarde
                               FROM cnt_kenmerkcontract kc
                              WHERE kc.cnt_kenmerkcontract_verwijder IS NULL
                                    AND kc.cnt_contract_key =
                                          cr1.cnt_contract_key
                                    AND kc.cnt_kenmerk_key = 221)
                               kostenexcl,
                            (SELECT ud.fac_usrdata_omschr
                               FROM cnt_kenmerkcontract kc, fac_usrdata ud
                              WHERE kc.cnt_kenmerkcontract_verwijder IS NULL
                                    AND kc.cnt_contract_key =
                                          cr1.cnt_contract_key
                                    AND kc.cnt_kenmerk_key = 242
                                    AND fac.safe_to_number (kc.cnt_kenmerkcontract_waarde) =
                                          ud.fac_usrdata_key)
                               btw,
                            (SELECT kc.cnt_kenmerkcontract_waarde
                               FROM cnt_kenmerkcontract kc
                              WHERE kc.cnt_kenmerkcontract_verwijder IS NULL
                                    AND kc.cnt_contract_key =
                                          cr1.cnt_contract_key
                                    AND kc.cnt_kenmerk_key = 997)
                               indexdatum,
                            (SELECT kc.cnt_kenmerkcontract_waarde
                               FROM cnt_kenmerkcontract kc
                              WHERE kc.cnt_kenmerkcontract_verwijder IS NULL
                                    AND kc.cnt_contract_key =
                                          cr1.cnt_contract_key
                                    AND kc.cnt_kenmerk_key = 998)
                               indexcijfer,
                            (SELECT kc.cnt_kenmerkcontract_waarde
                               FROM cnt_kenmerkcontract kc
                              WHERE kc.cnt_kenmerkcontract_verwijder IS NULL
                                    AND kc.cnt_contract_key =
                                          cr1.cnt_contract_key
                                    AND kc.cnt_kenmerk_key = 999)
                               aftopindex_oms,
                            NULL berek_over_huur,
                            NULL btwaftr_verpl,
                            NULL laatste_afrekper,
                            NULL perc_afhfiscus,
                            NULL perc_herzdatum,
                            NULL datum_afrek,
                            NULL datum_bijst,
                            NULL btwcmp_oms,
                            NULL btwcmp_herzdatum
                       FROM cnt_contract cr1
                      WHERE cr1.ins_discipline_key = 198            -- regel 1
                     UNION
                     SELECT cr2.cnt_contract_key cntkey,
                            (SELECT ud.fac_usrdata_omschr
                               FROM cnt_kenmerkcontract kc, fac_usrdata ud
                              WHERE kc.cnt_kenmerkcontract_verwijder IS NULL
                                    AND kc.cnt_contract_key =
                                          cr2.cnt_contract_key
                                    AND kc.cnt_kenmerk_key = 241
                                    AND fac.safe_to_number (kc.cnt_kenmerkcontract_waarde) =
                                          ud.fac_usrdata_key)
                               contractregelrubriek,
                            (SELECT kc.cnt_kenmerkcontract_waarde
                               FROM cnt_kenmerkcontract kc
                              WHERE kc.cnt_kenmerkcontract_verwijder IS NULL
                                    AND kc.cnt_contract_key =
                                          cr2.cnt_contract_key
                                    AND kc.cnt_kenmerk_key = 261)
                               aantal,
                            (SELECT ud.fac_usrdata_omschr
                               FROM cnt_kenmerkcontract kc, fac_usrdata ud
                              WHERE kc.cnt_kenmerkcontract_verwijder IS NULL
                                    AND kc.cnt_contract_key =
                                          cr2.cnt_contract_key
                                    AND kc.cnt_kenmerk_key = 262
                                    AND fac.safe_to_number (kc.cnt_kenmerkcontract_waarde) =
                                          ud.fac_usrdata_key)
                               eenheid,
                            (SELECT kc.cnt_kenmerkcontract_waarde
                               FROM cnt_kenmerkcontract kc
                              WHERE kc.cnt_kenmerkcontract_verwijder IS NULL
                                    AND kc.cnt_contract_key =
                                          cr2.cnt_contract_key
                                    AND kc.cnt_kenmerk_key = 263)
                               kostenexcl,
                            (SELECT ud.fac_usrdata_omschr
                               FROM cnt_kenmerkcontract kc, fac_usrdata ud
                              WHERE kc.cnt_kenmerkcontract_verwijder IS NULL
                                    AND kc.cnt_contract_key =
                                          cr2.cnt_contract_key
                                    AND kc.cnt_kenmerk_key = 281
                                    AND fac.safe_to_number (kc.cnt_kenmerkcontract_waarde) =
                                          ud.fac_usrdata_key)
                               btw,
                            NULL indexdatum,
                            NULL indexcijfer,
                            NULL aftopindex_oms,
                            NULL berek_over_huur,
                            NULL btwaftr_verpl,
                            NULL laatste_afrekper,
                            NULL perc_afhfiscus,
                            NULL perc_herzdatum,
                            NULL datum_afrek,
                            NULL datum_bijst,
                            NULL btwcmp_oms,
                            NULL btwcmp_herzdatum
                       FROM cnt_contract cr2
                      WHERE cr2.ins_discipline_key = 198            -- regel 2
                     UNION
                     SELECT cr3.cnt_contract_key cntkey,
                            (SELECT ud.fac_usrdata_omschr
                               FROM cnt_kenmerkcontract kc, fac_usrdata ud
                              WHERE kc.cnt_kenmerkcontract_verwijder IS NULL
                                    AND kc.cnt_contract_key =
                                          cr3.cnt_contract_key
                                    AND kc.cnt_kenmerk_key = 302
                                    AND fac.safe_to_number (kc.cnt_kenmerkcontract_waarde) =
                                          ud.fac_usrdata_key)
                               contractregelrubriek,
                            (SELECT kc.cnt_kenmerkcontract_waarde
                               FROM cnt_kenmerkcontract kc
                              WHERE kc.cnt_kenmerkcontract_verwijder IS NULL
                                    AND kc.cnt_contract_key =
                                          cr3.cnt_contract_key
                                    AND kc.cnt_kenmerk_key = 321)
                               aantal,
                            (SELECT ud.fac_usrdata_omschr
                               FROM cnt_kenmerkcontract kc, fac_usrdata ud
                              WHERE kc.cnt_kenmerkcontract_verwijder IS NULL
                                    AND kc.cnt_contract_key =
                                          cr3.cnt_contract_key
                                    AND kc.cnt_kenmerk_key = 322
                                    AND fac.safe_to_number (kc.cnt_kenmerkcontract_waarde) =
                                          ud.fac_usrdata_key)
                               eenheid,
                            (SELECT kc.cnt_kenmerkcontract_waarde
                               FROM cnt_kenmerkcontract kc
                              WHERE kc.cnt_kenmerkcontract_verwijder IS NULL
                                    AND kc.cnt_contract_key =
                                          cr3.cnt_contract_key
                                    AND kc.cnt_kenmerk_key = 392)
                               kostenexcl,
                            (SELECT ud.fac_usrdata_omschr
                               FROM cnt_kenmerkcontract kc, fac_usrdata ud
                              WHERE kc.cnt_kenmerkcontract_verwijder IS NULL
                                    AND kc.cnt_contract_key =
                                          cr3.cnt_contract_key
                                    AND kc.cnt_kenmerk_key = 393
                                    AND fac.safe_to_number (kc.cnt_kenmerkcontract_waarde) =
                                          ud.fac_usrdata_key)
                               btw,
                            NULL indexdatum,
                            NULL indexcijfer,
                            NULL aftopindex_oms,
                            NULL berek_over_huur,
                            NULL btwaftr_verpl,
                            NULL laatste_afrekper,
                            NULL perc_afhfiscus,
                            NULL perc_herzdatum,
                            NULL datum_afrek,
                            NULL datum_bijst,
                            NULL btwcmp_oms,
                            NULL btwcmp_herzdatum
                       FROM cnt_contract cr3
                      WHERE cr3.ins_discipline_key = 198            -- regel 3
                     UNION
                     SELECT cr4.cnt_contract_key cntkey,
                            (SELECT ud.fac_usrdata_omschr
                               FROM cnt_kenmerkcontract kc, fac_usrdata ud
                              WHERE kc.cnt_kenmerkcontract_verwijder IS NULL
                                    AND kc.cnt_contract_key =
                                          cr4.cnt_contract_key
                                    AND kc.cnt_kenmerk_key = 851
                                    AND fac.safe_to_number (kc.cnt_kenmerkcontract_waarde) =
                                          ud.fac_usrdata_key)
                               contractregelrubriek,
                            (SELECT kc.cnt_kenmerkcontract_waarde
                               FROM cnt_kenmerkcontract kc
                              WHERE kc.cnt_kenmerkcontract_verwijder IS NULL
                                    AND kc.cnt_contract_key =
                                          cr4.cnt_contract_key
                                    AND kc.cnt_kenmerk_key = 852)
                               aantal,
                            (SELECT ud.fac_usrdata_omschr
                               FROM cnt_kenmerkcontract kc, fac_usrdata ud
                              WHERE kc.cnt_kenmerkcontract_verwijder IS NULL
                                    AND kc.cnt_contract_key =
                                          cr4.cnt_contract_key
                                    AND kc.cnt_kenmerk_key = 853
                                    AND fac.safe_to_number (kc.cnt_kenmerkcontract_waarde) =
                                          ud.fac_usrdata_key)
                               eenheid,
                            (SELECT kc.cnt_kenmerkcontract_waarde
                               FROM cnt_kenmerkcontract kc
                              WHERE kc.cnt_kenmerkcontract_verwijder IS NULL
                                    AND kc.cnt_contract_key =
                                          cr4.cnt_contract_key
                                    AND kc.cnt_kenmerk_key = 854)
                               kostenexcl,
                            (SELECT ud.fac_usrdata_omschr
                               FROM cnt_kenmerkcontract kc, fac_usrdata ud
                              WHERE kc.cnt_kenmerkcontract_verwijder IS NULL
                                    AND kc.cnt_contract_key =
                                          cr4.cnt_contract_key
                                    AND kc.cnt_kenmerk_key = 855
                                    AND fac.safe_to_number (kc.cnt_kenmerkcontract_waarde) =
                                          ud.fac_usrdata_key)
                               btw,
                            NULL indexdatum,
                            NULL indexcijfer,
                            NULL aftopindex_oms,
                            NULL berek_over_huur,
                            NULL btwaftr_verpl,
                            NULL laatste_afrekper,
                            NULL perc_afhfiscus,
                            NULL perc_herzdatum,
                            NULL datum_afrek,
                            NULL datum_bijst,
                            NULL btwcmp_oms,
                            NULL btwcmp_herzdatum
                       FROM cnt_contract cr4
                      WHERE cr4.ins_discipline_key = 198           -- regel IV
                     UNION
                     SELECT cr4.cnt_contract_key cntkey,
                            (SELECT ud.fac_usrdata_omschr
                               FROM cnt_kenmerkcontract kc, fac_usrdata ud
                              WHERE kc.cnt_kenmerkcontract_verwijder IS NULL
                                    AND kc.cnt_contract_key =
                                          cr4.cnt_contract_key
                                    AND kc.cnt_kenmerk_key = 394
                                    AND fac.safe_to_number (kc.cnt_kenmerkcontract_waarde) =
                                          ud.fac_usrdata_key)
                               contractregelrubriek,
                            (SELECT kc.cnt_kenmerkcontract_waarde
                               FROM cnt_kenmerkcontract kc
                              WHERE kc.cnt_kenmerkcontract_verwijder IS NULL
                                    AND kc.cnt_contract_key =
                                          cr4.cnt_contract_key
                                    AND kc.cnt_kenmerk_key = 395)
                               aantal,
                            (SELECT ud.fac_usrdata_omschr
                               FROM cnt_kenmerkcontract kc, fac_usrdata ud
                              WHERE kc.cnt_kenmerkcontract_verwijder IS NULL
                                    AND kc.cnt_contract_key =
                                          cr4.cnt_contract_key
                                    AND kc.cnt_kenmerk_key = 396
                                    AND fac.safe_to_number (kc.cnt_kenmerkcontract_waarde) =
                                          ud.fac_usrdata_key)
                               eenheid,
                            (SELECT kc.cnt_kenmerkcontract_waarde
                               FROM cnt_kenmerkcontract kc
                              WHERE kc.cnt_kenmerkcontract_verwijder IS NULL
                                    AND kc.cnt_contract_key =
                                          cr4.cnt_contract_key
                                    AND kc.cnt_kenmerk_key = 421)
                               kostenexcl,
                            NULL btw,                               -- was 397
                            NULL indexdatum,
                            NULL indexcijfer,
                            NULL aftopindex_oms,
                            (SELECT kc.cnt_kenmerkcontract_waarde
                               FROM cnt_kenmerkcontract kc
                              WHERE kc.cnt_kenmerkcontract_verwijder IS NULL
                                    AND kc.cnt_contract_key =
                                          cr4.cnt_contract_key
                                    AND kc.cnt_kenmerk_key = 1001)
                               berek_over_huur,
                            (SELECT ud.fac_usrdata_omschr
                               FROM cnt_kenmerkcontract kc, fac_usrdata ud
                              WHERE kc.cnt_kenmerkcontract_verwijder IS NULL
                                    AND kc.cnt_contract_key =
                                          cr4.cnt_contract_key
                                    AND kc.cnt_kenmerk_key = 1002
                                    AND fac.safe_to_number (kc.cnt_kenmerkcontract_waarde) =
                                          ud.fac_usrdata_key)
                               btwaftr_verpl,
                            (SELECT kc.cnt_kenmerkcontract_waarde
                               FROM cnt_kenmerkcontract kc
                              WHERE kc.cnt_kenmerkcontract_verwijder IS NULL
                                    AND kc.cnt_contract_key =
                                          cr4.cnt_contract_key
                                    AND kc.cnt_kenmerk_key = 1003)
                               laatste_afrekper,
                            (SELECT ud.fac_usrdata_omschr
                               FROM cnt_kenmerkcontract kc, fac_usrdata ud
                              WHERE kc.cnt_kenmerkcontract_verwijder IS NULL
                                    AND kc.cnt_contract_key =
                                          cr4.cnt_contract_key
                                    AND kc.cnt_kenmerk_key = 1004
                                    AND fac.safe_to_number (kc.cnt_kenmerkcontract_waarde) =
                                          ud.fac_usrdata_key)
                               perc_afhfiscus,
                            (SELECT kc.cnt_kenmerkcontract_waarde
                               FROM cnt_kenmerkcontract kc
                              WHERE kc.cnt_kenmerkcontract_verwijder IS NULL
                                    AND kc.cnt_contract_key =
                                          cr4.cnt_contract_key
                                    AND kc.cnt_kenmerk_key = 1005)
                               perc_herzdatum,
                            NULL datum_afrek,
                            NULL datum_bijst,
                            NULL btwcmp_oms,
                            NULL btwcmp_herzdatum
                       FROM cnt_contract cr4
                      WHERE cr4.ins_discipline_key = 198            -- regel 4
                     UNION
                     SELECT cr5.cnt_contract_key cntkey,
                            (SELECT ud.fac_usrdata_omschr
                               FROM cnt_kenmerkcontract kc, fac_usrdata ud
                              WHERE kc.cnt_kenmerkcontract_verwijder IS NULL
                                    AND kc.cnt_contract_key =
                                          cr5.cnt_contract_key
                                    AND kc.cnt_kenmerk_key = 398
                                    AND fac.safe_to_number (kc.cnt_kenmerkcontract_waarde) =
                                          ud.fac_usrdata_key)
                               contractregelrubriek,
                            NULL aantal,                           -- was 399!
                            NULL eenheid,                          -- was 422!
                            (SELECT kc.cnt_kenmerkcontract_waarde
                               FROM cnt_kenmerkcontract kc
                              WHERE kc.cnt_kenmerkcontract_verwijder IS NULL
                                    AND kc.cnt_contract_key =
                                          cr5.cnt_contract_key
                                    AND kc.cnt_kenmerk_key = 400)
                               kostenexcl,
                            (SELECT ud.fac_usrdata_omschr
                               FROM cnt_kenmerkcontract kc, fac_usrdata ud
                              WHERE kc.cnt_kenmerkcontract_verwijder IS NULL
                                    AND kc.cnt_contract_key =
                                          cr5.cnt_contract_key
                                    AND kc.cnt_kenmerk_key = 401
                                    AND fac.safe_to_number (kc.cnt_kenmerkcontract_waarde) =
                                          ud.fac_usrdata_key)
                               btw,
                            NULL indexdatum,
                            NULL indexcijfer,
                            NULL aftopindex_oms,
                            NULL berek_over_huur,
                            NULL btwaftr_verpl,
                            NULL laatste_afrekper,
                            NULL perc_afhfiscus,
                            NULL perc_herzdatum,
                            (SELECT kc.cnt_kenmerkcontract_waarde
                               FROM cnt_kenmerkcontract kc
                              WHERE kc.cnt_kenmerkcontract_verwijder IS NULL
                                    AND kc.cnt_contract_key =
                                          cr5.cnt_contract_key
                                    AND kc.cnt_kenmerk_key = 1006)
                               datum_afrek,
                            (SELECT kc.cnt_kenmerkcontract_waarde
                               FROM cnt_kenmerkcontract kc
                              WHERE kc.cnt_kenmerkcontract_verwijder IS NULL
                                    AND kc.cnt_contract_key =
                                          cr5.cnt_contract_key
                                    AND kc.cnt_kenmerk_key = 1007)
                               datum_bijst,
                            NULL btwcmp_oms,
                            NULL btwcmp_herzdatum
                       FROM cnt_contract cr5
                      WHERE cr5.ins_discipline_key = 198            -- regel 5
                     UNION
                     SELECT cr6.cnt_contract_key cntkey,
                            (SELECT ud.fac_usrdata_omschr
                               FROM cnt_kenmerkcontract kc, fac_usrdata ud
                              WHERE kc.cnt_kenmerkcontract_verwijder IS NULL
                                    AND kc.cnt_contract_key =
                                          cr6.cnt_contract_key
                                    AND kc.cnt_kenmerk_key = 1009
                                    AND fac.safe_to_number(kc.cnt_kenmerkcontract_waarde) =
                                          ud.fac_usrdata_key)
                               contractregelrubriek,
                            (SELECT kc.cnt_kenmerkcontract_waarde
                               FROM cnt_kenmerkcontract kc
                              WHERE kc.cnt_kenmerkcontract_verwijder IS NULL
                                    AND kc.cnt_contract_key =
                                          cr6.cnt_contract_key
                                    AND kc.cnt_kenmerk_key = 1011)
                               aantal,
                            (SELECT ud.fac_usrdata_omschr
                               FROM cnt_kenmerkcontract kc, fac_usrdata ud
                              WHERE kc.cnt_kenmerkcontract_verwijder IS NULL
                                    AND kc.cnt_contract_key =
                                          cr6.cnt_contract_key
                                    AND kc.cnt_kenmerk_key = 1012
                                    AND fac.safe_to_number (kc.cnt_kenmerkcontract_waarde) =
                                          ud.fac_usrdata_key)
                               eenheid,
                            (SELECT kc.cnt_kenmerkcontract_waarde
                               FROM cnt_kenmerkcontract kc
                              WHERE kc.cnt_kenmerkcontract_verwijder IS NULL
                                    AND kc.cnt_contract_key =
                                          cr6.cnt_contract_key
                                    AND kc.cnt_kenmerk_key = 1013)
                               kostenexcl,
                            NULL btw,
                            NULL indexdatum,
                            NULL indexcijfer,
                            NULL aftopindex_oms,
                            NULL berek_over_huur,
                            NULL btwaftr_verpl,
                            NULL laatste_afrekper,
                            NULL perc_afhfiscus,
                            NULL perc_herzdatum,
                            NULL datum_afrek,
                            NULL datum_bijst,
                            (SELECT kc.cnt_kenmerkcontract_waarde
                               FROM cnt_kenmerkcontract kc
                              WHERE kc.cnt_kenmerkcontract_verwijder IS NULL
                                    AND kc.cnt_contract_key =
                                          cr6.cnt_contract_key
                                    AND kc.cnt_kenmerk_key = 1015)
                               btwcmp_oms,
                            (SELECT kc.cnt_kenmerkcontract_waarde
                               FROM cnt_kenmerkcontract kc
                              WHERE kc.cnt_kenmerkcontract_verwijder IS NULL
                                    AND kc.cnt_contract_key =
                                          cr6.cnt_contract_key
                                    AND kc.cnt_kenmerk_key = 1016)
                               btwcmp_herzdatum
                       FROM cnt_contract cr6
                      WHERE cr6.ins_discipline_key = 198) regels    -- regel 6
             ON basis.cnt_contract_key = regels.cntkey
    WHERE regels.contractregelrubriek IS NOT NULL;

/* Formatted on 16-1-2009 14:55:55 (QP5 v5.115.810.9015) */
CREATE OR REPLACE VIEW uwva_v_rap_hv_cnt_controle
(
	fclt_f_contract,
	fclt_f_cnt_type,
	fclt_f_huur_verhuur,
	fclt_f_fout
)
AS
	(SELECT	 x.cnt_contract_nummer_intern,
				 CASE
					 WHEN fac.safe_to_number (
								SUBSTR (x.cnt_contract_nummer_intern, 7, 1)
							) < 5
					 THEN
						 'Algemeen'
					 ELSE
						 'Werkbedrijf'
				 END
					 uwv_cwi,
				 CASE
					 WHEN UPPER (y2.contractrubriek) LIKE 'HUUR%' THEN 'HUUR'
					 ELSE 'VERHUUR'
				 END
					 huur_verhuur,
				 'Huurcontract niet gekoppeld aan een gebouw.' fout
		FROM	 ( 	  (SELECT	cc.cnt_contract_key,
										cc.cnt_contract_nummer_intern
							  FROM	cnt_v_aanwezigcontract cc,
										cnt_contract_plaats ccp
							 WHERE	cc.ins_discipline_key = 198		-- huurcontract
										AND cc.cnt_contract_key =
												ccp.cnt_contract_key(+)
										AND (ccp.cnt_alg_plaats_code = 'L'
											  OR ccp.cnt_contract_key IS NULL)) x
					  LEFT JOIN
						  (SELECT	cc.cnt_contract_key,
										kc.cnt_kenmerkcontract_waarde actief
							  FROM	cnt_v_aanwezigcontract cc,
										cnt_kenmerkcontract kc
							 WHERE		 cc.ins_discipline_key = 198	-- huurcontract
										AND cc.cnt_contract_key = kc.cnt_contract_key
										AND kc.cnt_kenmerk_key = 184) y1 		-- actief
					  ON x.cnt_contract_key = y1.cnt_contract_key
				  LEFT JOIN
					  (SELECT	cc.cnt_contract_key,
									ud.fac_usrdata_omschr contractrubriek
						  FROM	cnt_v_aanwezigcontract cc,
									cnt_kenmerkcontract kc,
									fac_usrdata ud
						 WHERE		 cc.ins_discipline_key = 198		-- huurcontract
									AND cc.cnt_contract_key = kc.cnt_contract_key
									AND kc.cnt_kenmerk_key = 181		-- contractrubriek
									AND fac.safe_to_number (kc.cnt_kenmerkcontract_waarde) =
											ud.fac_usrdata_key) y2
				  ON x.cnt_contract_key = y2.cnt_contract_key)
	  WHERE	 y1.actief = '1221')                                         -- ja
	UNION ALL
	(SELECT	 x.cnt_contract_nummer_intern,
				 CASE
					 WHEN fac.safe_to_number (
								SUBSTR (x.cnt_contract_nummer_intern, 7, 1)
							) < 5
					 THEN
						 'Algemeen'
					 ELSE
						 'Werkbedrijf'
				 END
					 uwv_cwi,
				 CASE
					 WHEN UPPER (y2.contractrubriek) LIKE 'HUUR%' THEN 'HUUR'
					 ELSE 'VERHUUR'
				 END
					 huur_verhuur,
				 'Datum laatste indexering ligt in de toekomst.' fout
		FROM	 ( 		  (SELECT	cc.cnt_contract_key,
											cc.cnt_contract_nummer_intern
								  FROM	cnt_v_aanwezigcontract cc,
											cnt_kenmerkcontract kc
								 WHERE	cc.ins_discipline_key = 198	-- huurcontract
											AND cc.cnt_contract_key =
													kc.cnt_contract_key
											AND kc.cnt_kenmerk_key = 196 -- laatste indexering
											AND fac.safe_to_date (
													kc.cnt_kenmerkcontract_waarde,
													'dd-mm-yyyy'
												) > SYSDATE) x
						  LEFT JOIN
							  (SELECT	cc.cnt_contract_key,
											kc.cnt_kenmerkcontract_waarde actief
								  FROM	cnt_v_aanwezigcontract cc,
											cnt_kenmerkcontract kc
								 WHERE	cc.ins_discipline_key = 198	-- huurcontract
											AND cc.cnt_contract_key =
													kc.cnt_contract_key
											AND kc.cnt_kenmerk_key = 184) y1 	-- actief
						  ON x.cnt_contract_key = y1.cnt_contract_key
					  LEFT JOIN
						  (SELECT	cc.cnt_contract_key,
										ud.fac_usrdata_omschr contractrubriek
							  FROM	cnt_v_aanwezigcontract cc,
										cnt_kenmerkcontract kc,
										fac_usrdata ud
							 WHERE		 cc.ins_discipline_key = 198	-- huurcontract
										AND cc.cnt_contract_key = kc.cnt_contract_key
										AND kc.cnt_kenmerk_key = 181	-- contractrubriek
										AND fac.safe_to_number (kc.cnt_kenmerkcontract_waarde) =
												ud.fac_usrdata_key) y2
					  ON x.cnt_contract_key = y2.cnt_contract_key
				  LEFT JOIN
					  (SELECT	cc.cnt_contract_key, al.alg_district_key
						  FROM	cnt_v_aanwezigcontract cc,
									cnt_contract_plaats ccp,
									alg_v_aanweziggebouw ag,
									alg_v_aanweziglocatie al
						 WHERE		 cc.ins_discipline_key = 198		-- huurcontract
									AND cc.cnt_contract_key = ccp.cnt_contract_key
									AND ccp.cnt_alg_plaats_code = 'G'
									AND ccp.cnt_alg_plaats_key = ag.alg_gebouw_key
									AND ag.alg_locatie_key = al.alg_locatie_key) z
				  ON x.cnt_contract_key = z.cnt_contract_key)
	  WHERE	 y1.actief = '1221')                                         -- ja
/

/* Formatted on 15-12-2014 10:05:00 (QP5 v5.136.908.31019) */
CREATE OR REPLACE VIEW uwva_v_rap_hv_cntregels
(
   fclt_f_contract,
   fclt_f_mantel,
   fclt_f_cnt_type,
   beschrijving,
   contractregelrubriek,
   aantal,
   eenheid,
   btw,
   kwartlkstn_incl,
   jaarkstn_incl
)
AS
   SELECT basis.nummer,
          basis.mantel,
          CASE
             WHEN fac.safe_to_number (SUBSTR (basis.nummer, 7, 1)) < 5
             THEN
                'Algemeen'
             ELSE
                'Werkbedrijf'
          END
             uwv_cwi,
          basis.oms,
          regels.contractregelrubriek,
          regels.aantal,
          regels.eenheid,
          regels.btw,
          ROUND (
             (CASE
                 WHEN regels.btw IS NOT NULL AND UPPER (regels.btw) <> 'VRIJ'
                 THEN
                    ( (fac.safe_to_number(SUBSTR (
                                             regels.btw,
                                             1,
                                             INSTR (regels.btw, '%') - 1))
                       * fac.safe_to_number (regels.kostenexcl)
                       / 100)
                     + fac.safe_to_number (regels.kostenexcl))
                    * (3 / basis.factuurmaanden)
                 ELSE
                    fac.safe_to_number (regels.kostenexcl)
                    * (3 / basis.factuurmaanden)
              END),
             2)
             kwartkosten_incl_btw,
          ROUND (
             (CASE
                 WHEN regels.btw IS NOT NULL AND UPPER (regels.btw) <> 'VRIJ'
                 THEN
                    ( (fac.safe_to_number(SUBSTR (
                                             regels.btw,
                                             1,
                                             INSTR (regels.btw, '%') - 1))
                       * fac.safe_to_number (regels.kostenexcl)
                       / 100)
                     + fac.safe_to_number (regels.kostenexcl))
                    * (12 / basis.factuurmaanden)
                 ELSE
                    fac.safe_to_number (regels.kostenexcl)
                    * (12 / basis.factuurmaanden)
              END),
             2)
             jaarkosten_incl_btw
     FROM (SELECT c.cnt_contract_key,
                  c.cnt_contract_nummer_intern nummer,
                  m.cnt_contract_nummer_intern mantel,
                  c.cnt_contract_omschrijving oms,
                  (SELECT ud.fac_usrdata_omschr
                     FROM cnt_kenmerkcontract kc, fac_usrdata ud
                    WHERE kc.cnt_contract_key = c.cnt_contract_key
                          AND kc.cnt_kenmerk_key = 184
                          AND fac.safe_to_number (kc.cnt_kenmerkcontract_waarde) =
                                ud.fac_usrdata_key)
                     actief,
                  (SELECT fac.safe_to_number (ud.fac_usrdata_code)
                     FROM cnt_kenmerkcontract kc, fac_usrdata ud
                    WHERE kc.cnt_contract_key = c.cnt_contract_key
                          AND kc.cnt_kenmerk_key = 189
                          AND fac.safe_to_number (kc.cnt_kenmerkcontract_waarde) =
                                ud.fac_usrdata_key)
                     factuurmaanden
             FROM cnt_v_aanwezigcontract c, cnt_v_aanwezigcontract m
            WHERE c.ins_discipline_key = 198
                  AND c.cnt_contract_mantel_key = m.cnt_contract_key) basis
          LEFT JOIN (SELECT x.cnt_contract_key,
                            y.code,
                            z.mld_adres_bezoek_plaats plaats,
                            z.mld_adres_bezoek_adres adres
                       FROM (SELECT ccp.cnt_alg_plaats_key,
                                    cc.cnt_contract_key
                               FROM cnt_contract cc, cnt_contract_plaats ccp
                              WHERE cc.ins_discipline_key = 198 -- huurcontract
                                    AND cc.cnt_contract_key =
                                          ccp.cnt_contract_key
                                    AND ccp.cnt_alg_plaats_code = 'G'
                                    AND ccp.cnt_contract_plaats_verwijder IS NULL)
                            x
                            LEFT JOIN                     -- uwv/cwi-indicatie
                                      (SELECT g.alg_gebouw_key,
                                              g.alg_gebouw_code code
                                         FROM alg_gebouw g) y
                               ON x.cnt_alg_plaats_key = y.alg_gebouw_key
                            LEFT JOIN                 -- adres info bij gebouw
                                      (SELECT g.alg_gebouw_key,
                                              a.mld_adres_bezoek_plaats,
                                              a.mld_adres_bezoek_adres
                                         FROM alg_gebouw g, mld_adres a
                                        WHERE g.mld_adres_key =
                                                 a.mld_adres_key) z
                               ON x.cnt_alg_plaats_key = z.alg_gebouw_key)
                    pand
             ON basis.cnt_contract_key = pand.cnt_contract_key
          LEFT JOIN (SELECT cr1.cnt_contract_key cntkey,
                            (SELECT ud.fac_usrdata_omschr
                               FROM cnt_kenmerkcontract kc, fac_usrdata ud
                              WHERE kc.cnt_kenmerkcontract_verwijder IS NULL
                                    AND kc.cnt_contract_key =
                                          cr1.cnt_contract_key
                                    AND kc.cnt_kenmerk_key = 201
                                    AND fac.safe_to_number (kc.cnt_kenmerkcontract_waarde) =
                                          ud.fac_usrdata_key)
                               contractregelrubriek,
                            (SELECT kc.cnt_kenmerkcontract_waarde
                               FROM cnt_kenmerkcontract kc
                              WHERE kc.cnt_kenmerkcontract_verwijder IS NULL
                                    AND kc.cnt_contract_key =
                                          cr1.cnt_contract_key
                                    AND kc.cnt_kenmerk_key = 202)
                               aantal,
                            (SELECT ud.fac_usrdata_omschr
                               FROM cnt_kenmerkcontract kc, fac_usrdata ud
                              WHERE kc.cnt_kenmerkcontract_verwijder IS NULL
                                    AND kc.cnt_contract_key =
                                          cr1.cnt_contract_key
                                    AND kc.cnt_kenmerk_key = 203
                                    AND fac.safe_to_number (kc.cnt_kenmerkcontract_waarde) =
                                          ud.fac_usrdata_key)
                               eenheid,
                            (SELECT kc.cnt_kenmerkcontract_waarde
                               FROM cnt_kenmerkcontract kc
                              WHERE kc.cnt_kenmerkcontract_verwijder IS NULL
                                    AND kc.cnt_contract_key =
                                          cr1.cnt_contract_key
                                    AND kc.cnt_kenmerk_key = 221)
                               kostenexcl,
                            (SELECT ud.fac_usrdata_omschr
                               FROM cnt_kenmerkcontract kc, fac_usrdata ud
                              WHERE kc.cnt_kenmerkcontract_verwijder IS NULL
                                    AND kc.cnt_contract_key =
                                          cr1.cnt_contract_key
                                    AND kc.cnt_kenmerk_key = 242
                                    AND fac.safe_to_number (kc.cnt_kenmerkcontract_waarde) =
                                          ud.fac_usrdata_key)
                               btw
                       FROM cnt_contract cr1
                      WHERE cr1.ins_discipline_key = 198            -- regel 1
                     UNION
                     SELECT cr2.cnt_contract_key cntkey,
                            (SELECT ud.fac_usrdata_omschr
                               FROM cnt_kenmerkcontract kc, fac_usrdata ud
                              WHERE kc.cnt_kenmerkcontract_verwijder IS NULL
                                    AND kc.cnt_contract_key =
                                          cr2.cnt_contract_key
                                    AND kc.cnt_kenmerk_key = 241
                                    AND fac.safe_to_number (kc.cnt_kenmerkcontract_waarde) =
                                          ud.fac_usrdata_key)
                               contractregelrubriek,
                            (SELECT kc.cnt_kenmerkcontract_waarde
                               FROM cnt_kenmerkcontract kc
                              WHERE kc.cnt_kenmerkcontract_verwijder IS NULL
                                    AND kc.cnt_contract_key =
                                          cr2.cnt_contract_key
                                    AND kc.cnt_kenmerk_key = 261)
                               aantal,
                            (SELECT ud.fac_usrdata_omschr
                               FROM cnt_kenmerkcontract kc, fac_usrdata ud
                              WHERE kc.cnt_kenmerkcontract_verwijder IS NULL
                                    AND kc.cnt_contract_key =
                                          cr2.cnt_contract_key
                                    AND kc.cnt_kenmerk_key = 262
                                    AND fac.safe_to_number (kc.cnt_kenmerkcontract_waarde) =
                                          ud.fac_usrdata_key)
                               eenheid,
                            (SELECT kc.cnt_kenmerkcontract_waarde
                               FROM cnt_kenmerkcontract kc
                              WHERE kc.cnt_kenmerkcontract_verwijder IS NULL
                                    AND kc.cnt_contract_key =
                                          cr2.cnt_contract_key
                                    AND kc.cnt_kenmerk_key = 263)
                               kostenexcl,
                            (SELECT ud.fac_usrdata_omschr
                               FROM cnt_kenmerkcontract kc, fac_usrdata ud
                              WHERE kc.cnt_kenmerkcontract_verwijder IS NULL
                                    AND kc.cnt_contract_key =
                                          cr2.cnt_contract_key
                                    AND kc.cnt_kenmerk_key = 281
                                    AND fac.safe_to_number (kc.cnt_kenmerkcontract_waarde) =
                                          ud.fac_usrdata_key)
                               btw
                       FROM cnt_contract cr2
                      WHERE cr2.ins_discipline_key = 198            -- regel 2
                     UNION
                     SELECT cr3.cnt_contract_key cntkey,
                            (SELECT ud.fac_usrdata_omschr
                               FROM cnt_kenmerkcontract kc, fac_usrdata ud
                              WHERE kc.cnt_kenmerkcontract_verwijder IS NULL
                                    AND kc.cnt_contract_key =
                                          cr3.cnt_contract_key
                                    AND kc.cnt_kenmerk_key = 302
                                    AND fac.safe_to_number (kc.cnt_kenmerkcontract_waarde) =
                                          ud.fac_usrdata_key)
                               contractregelrubriek,
                            (SELECT kc.cnt_kenmerkcontract_waarde
                               FROM cnt_kenmerkcontract kc
                              WHERE kc.cnt_kenmerkcontract_verwijder IS NULL
                                    AND kc.cnt_contract_key =
                                          cr3.cnt_contract_key
                                    AND kc.cnt_kenmerk_key = 321)
                               aantal,
                            (SELECT ud.fac_usrdata_omschr
                               FROM cnt_kenmerkcontract kc, fac_usrdata ud
                              WHERE kc.cnt_kenmerkcontract_verwijder IS NULL
                                    AND kc.cnt_contract_key =
                                          cr3.cnt_contract_key
                                    AND kc.cnt_kenmerk_key = 322
                                    AND fac.safe_to_number (kc.cnt_kenmerkcontract_waarde) =
                                          ud.fac_usrdata_key)
                               eenheid,
                            (SELECT kc.cnt_kenmerkcontract_waarde
                               FROM cnt_kenmerkcontract kc
                              WHERE kc.cnt_kenmerkcontract_verwijder IS NULL
                                    AND kc.cnt_contract_key =
                                          cr3.cnt_contract_key
                                    AND kc.cnt_kenmerk_key = 392)
                               kostenexcl,
                            (SELECT ud.fac_usrdata_omschr
                               FROM cnt_kenmerkcontract kc, fac_usrdata ud
                              WHERE kc.cnt_kenmerkcontract_verwijder IS NULL
                                    AND kc.cnt_contract_key =
                                          cr3.cnt_contract_key
                                    AND kc.cnt_kenmerk_key = 393
                                    AND fac.safe_to_number (kc.cnt_kenmerkcontract_waarde) =
                                          ud.fac_usrdata_key)
                               btw
                       FROM cnt_contract cr3
                      WHERE cr3.ins_discipline_key = 198            -- regel 3
                     UNION
                     SELECT cr4.cnt_contract_key cntkey,
                            (SELECT ud.fac_usrdata_omschr
                               FROM cnt_kenmerkcontract kc, fac_usrdata ud
                              WHERE kc.cnt_kenmerkcontract_verwijder IS NULL
                                    AND kc.cnt_contract_key =
                                          cr4.cnt_contract_key
                                    AND kc.cnt_kenmerk_key = 851
                                    AND fac.safe_to_number (kc.cnt_kenmerkcontract_waarde) =
                                          ud.fac_usrdata_key)
                               contractregelrubriek,
                            (SELECT kc.cnt_kenmerkcontract_waarde
                               FROM cnt_kenmerkcontract kc
                              WHERE kc.cnt_kenmerkcontract_verwijder IS NULL
                                    AND kc.cnt_contract_key =
                                          cr4.cnt_contract_key
                                    AND kc.cnt_kenmerk_key = 852)
                               aantal,
                            (SELECT ud.fac_usrdata_omschr
                               FROM cnt_kenmerkcontract kc, fac_usrdata ud
                              WHERE kc.cnt_kenmerkcontract_verwijder IS NULL
                                    AND kc.cnt_contract_key =
                                          cr4.cnt_contract_key
                                    AND kc.cnt_kenmerk_key = 853
                                    AND fac.safe_to_number (kc.cnt_kenmerkcontract_waarde) =
                                          ud.fac_usrdata_key)
                               eenheid,
                            (SELECT kc.cnt_kenmerkcontract_waarde
                               FROM cnt_kenmerkcontract kc
                              WHERE kc.cnt_kenmerkcontract_verwijder IS NULL
                                    AND kc.cnt_contract_key =
                                          cr4.cnt_contract_key
                                    AND kc.cnt_kenmerk_key = 854)
                               kostenexcl,
                            (SELECT ud.fac_usrdata_omschr
                               FROM cnt_kenmerkcontract kc, fac_usrdata ud
                              WHERE kc.cnt_kenmerkcontract_verwijder IS NULL
                                    AND kc.cnt_contract_key =
                                          cr4.cnt_contract_key
                                    AND kc.cnt_kenmerk_key = 855
                                    AND fac.safe_to_number (kc.cnt_kenmerkcontract_waarde) =
                                          ud.fac_usrdata_key)
                               btw
                       FROM cnt_contract cr4
                      WHERE cr4.ins_discipline_key = 198           -- regel IV
                     UNION
                     SELECT cr4.cnt_contract_key cntkey,
                            (SELECT ud.fac_usrdata_omschr
                               FROM cnt_kenmerkcontract kc, fac_usrdata ud
                              WHERE kc.cnt_kenmerkcontract_verwijder IS NULL
                                    AND kc.cnt_contract_key =
                                          cr4.cnt_contract_key
                                    AND kc.cnt_kenmerk_key = 394
                                    AND fac.safe_to_number (kc.cnt_kenmerkcontract_waarde) =
                                          ud.fac_usrdata_key)
                               contractregelrubriek,
                            (SELECT kc.cnt_kenmerkcontract_waarde
                               FROM cnt_kenmerkcontract kc
                              WHERE kc.cnt_kenmerkcontract_verwijder IS NULL
                                    AND kc.cnt_contract_key =
                                          cr4.cnt_contract_key
                                    AND kc.cnt_kenmerk_key = 395)
                               aantal,
                            (SELECT ud.fac_usrdata_omschr
                               FROM cnt_kenmerkcontract kc, fac_usrdata ud
                              WHERE kc.cnt_kenmerkcontract_verwijder IS NULL
                                    AND kc.cnt_contract_key =
                                          cr4.cnt_contract_key
                                    AND kc.cnt_kenmerk_key = 396
                                    AND fac.safe_to_number (kc.cnt_kenmerkcontract_waarde) =
                                          ud.fac_usrdata_key)
                               eenheid,
                            (SELECT kc.cnt_kenmerkcontract_waarde
                               FROM cnt_kenmerkcontract kc
                              WHERE kc.cnt_kenmerkcontract_verwijder IS NULL
                                    AND kc.cnt_contract_key =
                                          cr4.cnt_contract_key
                                    AND kc.cnt_kenmerk_key = 421)
                               kostenexcl,
                            NULL btw                                -- was 397
                       FROM cnt_contract cr4
                      WHERE cr4.ins_discipline_key = 198            -- regel 4
                     UNION
                     SELECT cr5.cnt_contract_key cntkey,
                            (SELECT ud.fac_usrdata_omschr
                               FROM cnt_kenmerkcontract kc, fac_usrdata ud
                              WHERE kc.cnt_kenmerkcontract_verwijder IS NULL
                                    AND kc.cnt_contract_key =
                                          cr5.cnt_contract_key
                                    AND kc.cnt_kenmerk_key = 398
                                    AND fac.safe_to_number (kc.cnt_kenmerkcontract_waarde) =
                                          ud.fac_usrdata_key)
                               contractregelrubriek,
                            NULL aantal,                           -- was 399!
                            NULL eenheid,                          -- was 422!
                            (SELECT kc.cnt_kenmerkcontract_waarde
                               FROM cnt_kenmerkcontract kc
                              WHERE kc.cnt_kenmerkcontract_verwijder IS NULL
                                    AND kc.cnt_contract_key =
                                          cr5.cnt_contract_key
                                    AND kc.cnt_kenmerk_key = 400)
                               kostenexcl,
                            (SELECT ud.fac_usrdata_omschr
                               FROM cnt_kenmerkcontract kc, fac_usrdata ud
                              WHERE kc.cnt_kenmerkcontract_verwijder IS NULL
                                    AND kc.cnt_contract_key =
                                          cr5.cnt_contract_key
                                    AND kc.cnt_kenmerk_key = 401
                                    AND fac.safe_to_number (kc.cnt_kenmerkcontract_waarde) =
                                          ud.fac_usrdata_key)
                               btw
                       FROM cnt_contract cr5
                      WHERE cr5.ins_discipline_key = 198            -- regel 5
                     UNION
                     SELECT cr6.cnt_contract_key cntkey,
                            (SELECT ud.fac_usrdata_omschr
                               FROM cnt_kenmerkcontract kc, fac_usrdata ud
                              WHERE kc.cnt_kenmerkcontract_verwijder IS NULL
                                    AND kc.cnt_contract_key =
                                          cr6.cnt_contract_key
                                    AND kc.cnt_kenmerk_key = 1009
                                    AND fac.safe_to_number (kc.cnt_kenmerkcontract_waarde) =
                                          ud.fac_usrdata_key)
                               contractregelrubriek,
                            (SELECT kc.cnt_kenmerkcontract_waarde
                               FROM cnt_kenmerkcontract kc
                              WHERE kc.cnt_kenmerkcontract_verwijder IS NULL
                                    AND kc.cnt_contract_key =
                                          cr6.cnt_contract_key
                                    AND kc.cnt_kenmerk_key = 1011)
                               aantal,
                            (SELECT ud.fac_usrdata_omschr
                               FROM cnt_kenmerkcontract kc, fac_usrdata ud
                              WHERE kc.cnt_kenmerkcontract_verwijder IS NULL
                                    AND kc.cnt_contract_key =
                                          cr6.cnt_contract_key
                                    AND kc.cnt_kenmerk_key = 1012
                                    AND fac.safe_to_number (kc.cnt_kenmerkcontract_waarde) =
                                          ud.fac_usrdata_key)
                               eenheid,
                            (SELECT kc.cnt_kenmerkcontract_waarde
                               FROM cnt_kenmerkcontract kc
                              WHERE kc.cnt_kenmerkcontract_verwijder IS NULL
                                    AND kc.cnt_contract_key =
                                          cr6.cnt_contract_key
                                    AND kc.cnt_kenmerk_key = 1013)
                               kostenexcl,
                            NULL btw
                       FROM cnt_contract cr6
                      WHERE cr6.ins_discipline_key = 198) regels    -- regel 6
             ON basis.cnt_contract_key = regels.cntkey
    WHERE UPPER (basis.actief) = 'JA'
          AND regels.contractregelrubriek IS NOT NULL;

/* Formatted on 15-12-2014 10:10:10 (QP5 v5.136.908.31019) */
CREATE OR REPLACE VIEW uwva_v_rap_hv_cntregelsplus
(
   contract,
   fclt_f_mantel,
   beschrijving,
   contractregelrubriek,
   aantal,
   fclt_f_eenheid,
   btw,
   kwartlkstn_incl,
   jaarkstn_incl,
   fclt_x_regio,
   fclt_f_plaats,
   adres,
   fclt_f_contractstatus,
   fclt_f_cnt_type,
   begindatum,
   einddatum
)
AS
   SELECT basis.nummer,
          basis.mantel,
          basis.oms,
          regels.contractregelrubriek,
          regels.aantal,
          regels.eenheid,
          regels.btw,
          ROUND (
             (CASE
                 WHEN regels.btw IS NOT NULL AND UPPER (regels.btw) <> 'VRIJ'
                 THEN
                    ( (fac.safe_to_number(SUBSTR (
                                             regels.btw,
                                             1,
                                             INSTR (regels.btw, '%') - 1))
                       * fac.safe_to_number (regels.kostenexcl)
                       / 100)
                     + fac.safe_to_number (regels.kostenexcl))
                    * (3 / basis.factuurmaanden)
                 ELSE
                    fac.safe_to_number (regels.kostenexcl)
                    * (3 / basis.factuurmaanden)
              END),
             2)
             kwartkosten_incl_btw,
          ROUND (
             (CASE
                 WHEN regels.btw IS NOT NULL AND UPPER (regels.btw) <> 'VRIJ'
                 THEN
                    ( (fac.safe_to_number(SUBSTR (
                                             regels.btw,
                                             1,
                                             INSTR (regels.btw, '%') - 1))
                       * fac.safe_to_number (regels.kostenexcl)
                       / 100)
                     + fac.safe_to_number (regels.kostenexcl))
                    * (12 / basis.factuurmaanden)
                 ELSE
                    fac.safe_to_number (regels.kostenexcl)
                    * (12 / basis.factuurmaanden)
              END),
             2)
             jaarkosten_incl_btw,
          pand.regio,
          pand.plaats,
          pand.adres,
          basis.contractstatus,
          CASE
             WHEN fac.safe_to_number (SUBSTR (basis.nummer, 7, 1)) < 5
             THEN
                'Algemeen'
             ELSE
                'Werkbedrijf'
          END
             uwv_cwi,
          basis.begindatum,
          basis.einddatum
     FROM (SELECT c.cnt_contract_key,
                  c.cnt_contract_nummer_intern nummer,
                  m.cnt_contract_nummer_intern mantel,
                  c.cnt_contract_omschrijving oms,
                  c.cnt_contract_looptijd_van begindatum,
                  c.cnt_contract_looptijd_tot einddatum,
                  (SELECT ud.fac_usrdata_omschr
                     FROM cnt_kenmerkcontract kc, fac_usrdata ud
                    WHERE kc.cnt_contract_key = c.cnt_contract_key
                          AND kc.cnt_kenmerk_key = 183
                          AND fac.safe_to_number (kc.cnt_kenmerkcontract_waarde) =
                                ud.fac_usrdata_key)
                     contractstatus,
                  (SELECT ud.fac_usrdata_omschr
                     FROM cnt_kenmerkcontract kc, fac_usrdata ud
                    WHERE kc.cnt_contract_key = c.cnt_contract_key
                          AND kc.cnt_kenmerk_key = 184
                          AND fac.safe_to_number (kc.cnt_kenmerkcontract_waarde) =
                                ud.fac_usrdata_key)
                     actief,
                  (SELECT fac.safe_to_number (ud.fac_usrdata_code)
                     FROM cnt_kenmerkcontract kc, fac_usrdata ud
                    WHERE kc.cnt_contract_key = c.cnt_contract_key
                          AND kc.cnt_kenmerk_key = 189
                          AND fac.safe_to_number (kc.cnt_kenmerkcontract_waarde) =
                                ud.fac_usrdata_key)
                     factuurmaanden
             FROM cnt_v_aanwezigcontract c, cnt_v_aanwezigcontract m
            WHERE c.ins_discipline_key = 198
                  AND c.cnt_contract_mantel_key = m.cnt_contract_key) basis
          LEFT JOIN (SELECT x.cnt_contract_key,
                            y.code,
                            y.regio,
                            COALESCE (z.mld_adres_bezoek_plaats,
                                      y.alg_locatie_plaats)
                               plaats,
                            COALESCE (z.mld_adres_bezoek_adres,
                                      y.alg_locatie_adres)
                               adres
                       FROM (SELECT ccp.cnt_alg_plaats_key,
                                    cc.cnt_contract_key
                               FROM cnt_contract cc, cnt_contract_plaats ccp
                              WHERE cc.ins_discipline_key = 198 -- huurcontract
                                    AND cc.cnt_contract_key =
                                          ccp.cnt_contract_key
                                    AND ccp.cnt_alg_plaats_code = 'G'
                                    AND ccp.cnt_contract_plaats_verwijder IS NULL)
                            x
                            LEFT JOIN                     -- uwv/cwi-indicatie
                                      (SELECT g.alg_gebouw_key,
                                              g.alg_gebouw_code code,
                                              l.alg_locatie_adres,
                                              l.alg_locatie_plaats,
                                              d.alg_district_omschrijving
                                                 regio
                                         FROM alg_gebouw g,
                                              alg_locatie l,
                                              alg_district d
                                        WHERE g.alg_locatie_key =
                                                 l.alg_locatie_key
                                              AND l.alg_district_key =
                                                    d.alg_district_key) y
                               ON x.cnt_alg_plaats_key = y.alg_gebouw_key
                            LEFT JOIN                 -- adres info bij gebouw
                                      (SELECT g.alg_gebouw_key,
                                              a.mld_adres_bezoek_plaats,
                                              a.mld_adres_bezoek_adres
                                         FROM alg_gebouw g, mld_adres a
                                        WHERE g.mld_adres_key =
                                                 a.mld_adres_key
                                              AND a.mld_adres_verwijder IS NULL)
                                      z
                               ON x.cnt_alg_plaats_key = z.alg_gebouw_key)
                    pand
             ON basis.cnt_contract_key = pand.cnt_contract_key
          LEFT JOIN (SELECT cr1.cnt_contract_key cntkey,
                            (SELECT ud.fac_usrdata_omschr
                               FROM cnt_kenmerkcontract kc, fac_usrdata ud
                              WHERE kc.cnt_kenmerkcontract_verwijder IS NULL
                                    AND kc.cnt_contract_key =
                                          cr1.cnt_contract_key
                                    AND kc.cnt_kenmerk_key = 201
                                    AND fac.safe_to_number (kc.cnt_kenmerkcontract_waarde) =
                                          ud.fac_usrdata_key)
                               contractregelrubriek,
                            (SELECT kc.cnt_kenmerkcontract_waarde
                               FROM cnt_kenmerkcontract kc
                              WHERE kc.cnt_kenmerkcontract_verwijder IS NULL
                                    AND kc.cnt_contract_key =
                                          cr1.cnt_contract_key
                                    AND kc.cnt_kenmerk_key = 202)
                               aantal,
                            (SELECT ud.fac_usrdata_omschr
                               FROM cnt_kenmerkcontract kc, fac_usrdata ud
                              WHERE kc.cnt_kenmerkcontract_verwijder IS NULL
                                    AND kc.cnt_contract_key =
                                          cr1.cnt_contract_key
                                    AND kc.cnt_kenmerk_key = 203
                                    AND fac.safe_to_number (kc.cnt_kenmerkcontract_waarde) =
                                          ud.fac_usrdata_key)
                               eenheid,
                            (SELECT kc.cnt_kenmerkcontract_waarde
                               FROM cnt_kenmerkcontract kc
                              WHERE kc.cnt_kenmerkcontract_verwijder IS NULL
                                    AND kc.cnt_contract_key =
                                          cr1.cnt_contract_key
                                    AND kc.cnt_kenmerk_key = 221)
                               kostenexcl,
                            (SELECT ud.fac_usrdata_omschr
                               FROM cnt_kenmerkcontract kc, fac_usrdata ud
                              WHERE kc.cnt_kenmerkcontract_verwijder IS NULL
                                    AND kc.cnt_contract_key =
                                          cr1.cnt_contract_key
                                    AND kc.cnt_kenmerk_key = 242
                                    AND fac.safe_to_number (kc.cnt_kenmerkcontract_waarde) =
                                          ud.fac_usrdata_key)
                               btw
                       FROM cnt_contract cr1
                      WHERE cr1.ins_discipline_key = 198            -- regel 1
                     UNION
                     SELECT cr2.cnt_contract_key cntkey,
                            (SELECT ud.fac_usrdata_omschr
                               FROM cnt_kenmerkcontract kc, fac_usrdata ud
                              WHERE kc.cnt_kenmerkcontract_verwijder IS NULL
                                    AND kc.cnt_contract_key =
                                          cr2.cnt_contract_key
                                    AND kc.cnt_kenmerk_key = 241
                                    AND fac.safe_to_number (kc.cnt_kenmerkcontract_waarde) =
                                          ud.fac_usrdata_key)
                               contractregelrubriek,
                            (SELECT kc.cnt_kenmerkcontract_waarde
                               FROM cnt_kenmerkcontract kc
                              WHERE kc.cnt_kenmerkcontract_verwijder IS NULL
                                    AND kc.cnt_contract_key =
                                          cr2.cnt_contract_key
                                    AND kc.cnt_kenmerk_key = 261)
                               aantal,
                            (SELECT ud.fac_usrdata_omschr
                               FROM cnt_kenmerkcontract kc, fac_usrdata ud
                              WHERE kc.cnt_kenmerkcontract_verwijder IS NULL
                                    AND kc.cnt_contract_key =
                                          cr2.cnt_contract_key
                                    AND kc.cnt_kenmerk_key = 262
                                    AND fac.safe_to_number (kc.cnt_kenmerkcontract_waarde) =
                                          ud.fac_usrdata_key)
                               eenheid,
                            (SELECT kc.cnt_kenmerkcontract_waarde
                               FROM cnt_kenmerkcontract kc
                              WHERE kc.cnt_kenmerkcontract_verwijder IS NULL
                                    AND kc.cnt_contract_key =
                                          cr2.cnt_contract_key
                                    AND kc.cnt_kenmerk_key = 263)
                               kostenexcl,
                            (SELECT ud.fac_usrdata_omschr
                               FROM cnt_kenmerkcontract kc, fac_usrdata ud
                              WHERE kc.cnt_kenmerkcontract_verwijder IS NULL
                                    AND kc.cnt_contract_key =
                                          cr2.cnt_contract_key
                                    AND kc.cnt_kenmerk_key = 281
                                    AND fac.safe_to_number (kc.cnt_kenmerkcontract_waarde) =
                                          ud.fac_usrdata_key)
                               btw
                       FROM cnt_contract cr2
                      WHERE cr2.ins_discipline_key = 198            -- regel 2
                     UNION
                     SELECT cr3.cnt_contract_key cntkey,
                            (SELECT ud.fac_usrdata_omschr
                               FROM cnt_kenmerkcontract kc, fac_usrdata ud
                              WHERE kc.cnt_kenmerkcontract_verwijder IS NULL
                                    AND kc.cnt_contract_key =
                                          cr3.cnt_contract_key
                                    AND kc.cnt_kenmerk_key = 302
                                    AND fac.safe_to_number (kc.cnt_kenmerkcontract_waarde) =
                                          ud.fac_usrdata_key)
                               contractregelrubriek,
                            (SELECT kc.cnt_kenmerkcontract_waarde
                               FROM cnt_kenmerkcontract kc
                              WHERE kc.cnt_kenmerkcontract_verwijder IS NULL
                                    AND kc.cnt_contract_key =
                                          cr3.cnt_contract_key
                                    AND kc.cnt_kenmerk_key = 321)
                               aantal,
                            (SELECT ud.fac_usrdata_omschr
                               FROM cnt_kenmerkcontract kc, fac_usrdata ud
                              WHERE kc.cnt_kenmerkcontract_verwijder IS NULL
                                    AND kc.cnt_contract_key =
                                          cr3.cnt_contract_key
                                    AND kc.cnt_kenmerk_key = 322
                                    AND fac.safe_to_number (kc.cnt_kenmerkcontract_waarde) =
                                          ud.fac_usrdata_key)
                               eenheid,
                            (SELECT kc.cnt_kenmerkcontract_waarde
                               FROM cnt_kenmerkcontract kc
                              WHERE kc.cnt_kenmerkcontract_verwijder IS NULL
                                    AND kc.cnt_contract_key =
                                          cr3.cnt_contract_key
                                    AND kc.cnt_kenmerk_key = 392)
                               kostenexcl,
                            (SELECT ud.fac_usrdata_omschr
                               FROM cnt_kenmerkcontract kc, fac_usrdata ud
                              WHERE kc.cnt_kenmerkcontract_verwijder IS NULL
                                    AND kc.cnt_contract_key =
                                          cr3.cnt_contract_key
                                    AND kc.cnt_kenmerk_key = 393
                                    AND fac.safe_to_number (kc.cnt_kenmerkcontract_waarde) =
                                          ud.fac_usrdata_key)
                               btw
                       FROM cnt_contract cr3
                      WHERE cr3.ins_discipline_key = 198            -- regel 3
                     UNION
                     SELECT cr4.cnt_contract_key cntkey,
                            (SELECT ud.fac_usrdata_omschr
                               FROM cnt_kenmerkcontract kc, fac_usrdata ud
                              WHERE kc.cnt_kenmerkcontract_verwijder IS NULL
                                    AND kc.cnt_contract_key =
                                          cr4.cnt_contract_key
                                    AND kc.cnt_kenmerk_key = 851
                                    AND fac.safe_to_number (kc.cnt_kenmerkcontract_waarde) =
                                          ud.fac_usrdata_key)
                               contractregelrubriek,
                            (SELECT kc.cnt_kenmerkcontract_waarde
                               FROM cnt_kenmerkcontract kc
                              WHERE kc.cnt_kenmerkcontract_verwijder IS NULL
                                    AND kc.cnt_contract_key =
                                          cr4.cnt_contract_key
                                    AND kc.cnt_kenmerk_key = 852)
                               aantal,
                            (SELECT ud.fac_usrdata_omschr
                               FROM cnt_kenmerkcontract kc, fac_usrdata ud
                              WHERE kc.cnt_kenmerkcontract_verwijder IS NULL
                                    AND kc.cnt_contract_key =
                                          cr4.cnt_contract_key
                                    AND kc.cnt_kenmerk_key = 853
                                    AND fac.safe_to_number (kc.cnt_kenmerkcontract_waarde) =
                                          ud.fac_usrdata_key)
                               eenheid,
                            (SELECT kc.cnt_kenmerkcontract_waarde
                               FROM cnt_kenmerkcontract kc
                              WHERE kc.cnt_kenmerkcontract_verwijder IS NULL
                                    AND kc.cnt_contract_key =
                                          cr4.cnt_contract_key
                                    AND kc.cnt_kenmerk_key = 854)
                               kostenexcl,
                            (SELECT ud.fac_usrdata_omschr
                               FROM cnt_kenmerkcontract kc, fac_usrdata ud
                              WHERE kc.cnt_kenmerkcontract_verwijder IS NULL
                                    AND kc.cnt_contract_key =
                                          cr4.cnt_contract_key
                                    AND kc.cnt_kenmerk_key = 855
                                    AND fac.safe_to_number (kc.cnt_kenmerkcontract_waarde) =
                                          ud.fac_usrdata_key)
                               btw
                       FROM cnt_contract cr4
                      WHERE cr4.ins_discipline_key = 198           -- regel IV
                     UNION
                     SELECT cr4.cnt_contract_key cntkey,
                            (SELECT ud.fac_usrdata_omschr
                               FROM cnt_kenmerkcontract kc, fac_usrdata ud
                              WHERE kc.cnt_kenmerkcontract_verwijder IS NULL
                                    AND kc.cnt_contract_key =
                                          cr4.cnt_contract_key
                                    AND kc.cnt_kenmerk_key = 394
                                    AND fac.safe_to_number (kc.cnt_kenmerkcontract_waarde) =
                                          ud.fac_usrdata_key)
                               contractregelrubriek,
                            (SELECT kc.cnt_kenmerkcontract_waarde
                               FROM cnt_kenmerkcontract kc
                              WHERE kc.cnt_kenmerkcontract_verwijder IS NULL
                                    AND kc.cnt_contract_key =
                                          cr4.cnt_contract_key
                                    AND kc.cnt_kenmerk_key = 395)
                               aantal,
                            (SELECT ud.fac_usrdata_omschr
                               FROM cnt_kenmerkcontract kc, fac_usrdata ud
                              WHERE kc.cnt_kenmerkcontract_verwijder IS NULL
                                    AND kc.cnt_contract_key =
                                          cr4.cnt_contract_key
                                    AND kc.cnt_kenmerk_key = 396
                                    AND fac.safe_to_number (kc.cnt_kenmerkcontract_waarde) =
                                          ud.fac_usrdata_key)
                               eenheid,
                            (SELECT kc.cnt_kenmerkcontract_waarde
                               FROM cnt_kenmerkcontract kc
                              WHERE kc.cnt_kenmerkcontract_verwijder IS NULL
                                    AND kc.cnt_contract_key =
                                          cr4.cnt_contract_key
                                    AND kc.cnt_kenmerk_key = 421)
                               kostenexcl,
                            NULL btw                                -- was 397
                       FROM cnt_contract cr4
                      WHERE cr4.ins_discipline_key = 198            -- regel 4
                     UNION
                     SELECT cr5.cnt_contract_key cntkey,
                            (SELECT ud.fac_usrdata_omschr
                               FROM cnt_kenmerkcontract kc, fac_usrdata ud
                              WHERE kc.cnt_kenmerkcontract_verwijder IS NULL
                                    AND kc.cnt_contract_key =
                                          cr5.cnt_contract_key
                                    AND kc.cnt_kenmerk_key = 398
                                    AND fac.safe_to_number (kc.cnt_kenmerkcontract_waarde) =
                                          ud.fac_usrdata_key)
                               contractregelrubriek,
                            NULL aantal,                           -- was 399!
                            NULL eenheid,                          -- was 422!
                            (SELECT kc.cnt_kenmerkcontract_waarde
                               FROM cnt_kenmerkcontract kc
                              WHERE kc.cnt_kenmerkcontract_verwijder IS NULL
                                    AND kc.cnt_contract_key =
                                          cr5.cnt_contract_key
                                    AND kc.cnt_kenmerk_key = 400)
                               kostenexcl,
                            (SELECT ud.fac_usrdata_omschr
                               FROM cnt_kenmerkcontract kc, fac_usrdata ud
                              WHERE kc.cnt_kenmerkcontract_verwijder IS NULL
                                    AND kc.cnt_contract_key =
                                          cr5.cnt_contract_key
                                    AND kc.cnt_kenmerk_key = 401
                                    AND fac.safe_to_number (kc.cnt_kenmerkcontract_waarde) =
                                          ud.fac_usrdata_key)
                               btw
                       FROM cnt_contract cr5
                      WHERE cr5.ins_discipline_key = 198            -- regel 5
                     UNION
                     SELECT cr6.cnt_contract_key cntkey,
                            (SELECT ud.fac_usrdata_omschr
                               FROM cnt_kenmerkcontract kc, fac_usrdata ud
                              WHERE kc.cnt_kenmerkcontract_verwijder IS NULL
                                    AND kc.cnt_contract_key =
                                          cr6.cnt_contract_key
                                    AND kc.cnt_kenmerk_key = 1009
                                    AND fac.safe_to_number (kc.cnt_kenmerkcontract_waarde) =
                                          ud.fac_usrdata_key)
                               contractregelrubriek,
                            (SELECT kc.cnt_kenmerkcontract_waarde
                               FROM cnt_kenmerkcontract kc
                              WHERE kc.cnt_kenmerkcontract_verwijder IS NULL
                                    AND kc.cnt_contract_key =
                                          cr6.cnt_contract_key
                                    AND kc.cnt_kenmerk_key = 1011)
                               aantal,
                            (SELECT ud.fac_usrdata_omschr
                               FROM cnt_kenmerkcontract kc, fac_usrdata ud
                              WHERE kc.cnt_kenmerkcontract_verwijder IS NULL
                                    AND kc.cnt_contract_key =
                                          cr6.cnt_contract_key
                                    AND kc.cnt_kenmerk_key = 1012
                                    AND fac.safe_to_number (kc.cnt_kenmerkcontract_waarde) =
                                          ud.fac_usrdata_key)
                               eenheid,
                            (SELECT kc.cnt_kenmerkcontract_waarde
                               FROM cnt_kenmerkcontract kc
                              WHERE kc.cnt_kenmerkcontract_verwijder IS NULL
                                    AND kc.cnt_contract_key =
                                          cr6.cnt_contract_key
                                    AND kc.cnt_kenmerk_key = 1013)
                               kostenexcl,
                            NULL btw
                       FROM cnt_contract cr6
                      WHERE cr6.ins_discipline_key = 198) regels    -- regel 6
             ON basis.cnt_contract_key = regels.cntkey
    WHERE UPPER (basis.actief) = 'JA'
          AND regels.contractregelrubriek IS NOT NULL;

/* Formatted on 16-12-2014 12:00:30 (QP5 v5.136.908.31019) */
CREATE OR REPLACE VIEW uwva_v_rap_hv_cntopeind
(
   hide_f_sortdatum,
   contract,
   fclt_f_mantel,
   fclt_f_cnt_type,
   beschrijving,
   fclt_x_regio,
   adres,
   plaats,
   contractrubriek,
   begindatum,
   einddatum,
   opzegtermijn,
   opzegdatum,
   fclt_f_contractstatus,
   optie_systematiek,
   cnt_opp,
   eenheid,
   meest_nabij,
   fclt_3d_gebouw_key
)
AS
   SELECT TO_CHAR (basis.einddatum, 'yyyy-mm-dd'),
          basis.nummer,
          basis.mantel,
          CASE
             WHEN fac.safe_to_number (SUBSTR (basis.nummer, 7, 1)) < 5
             THEN
                'Algemeen'
             ELSE
                'Werkbedrijf'
          END
             uwv_cwi,
          basis.oms,
          pand.regio,
          pand.adres,
          pand.plaats,
          basis.contractrubriek,
          basis.begindatum,
          basis.einddatum,
          basis.opzegtermijn,
          basis.opzegdatum,
          basis.contractstatus,
          basis.optie_systematiek,
          opp.aantal,
          opp.eenheid,
          meest_nabij.vlag,
          pand.gebouw_key
     FROM (SELECT c.cnt_contract_key,
                  c.cnt_contract_nummer_intern nummer,
                  m.cnt_contract_nummer_intern mantel,
                  c.cnt_contract_omschrijving oms,
                  c.cnt_contract_looptijd_van begindatum,
                  cnt.cnt_getopzegdatum (c.cnt_contract_key) opzegdatum,
                  c.cnt_contract_looptijd_tot einddatum,
                  (SELECT ud.fac_usrdata_omschr
                     FROM cnt_kenmerkcontract kc, fac_usrdata ud
                    WHERE     kc.cnt_kenmerkcontract_verwijder IS NULL
                          AND kc.cnt_contract_key = c.cnt_contract_key
                          AND kc.cnt_kenmerk_key = 181
                          AND fac.safe_to_number (kc.cnt_kenmerkcontract_waarde) =
                                ud.fac_usrdata_key)
                     contractrubriek,
                  (SELECT ud.fac_usrdata_omschr
                     FROM cnt_kenmerkcontract kc, fac_usrdata ud
                    WHERE     kc.cnt_kenmerkcontract_verwijder IS NULL
                          AND kc.cnt_contract_key = c.cnt_contract_key
                          AND kc.cnt_kenmerk_key = 183
                          AND fac.safe_to_number (kc.cnt_kenmerkcontract_waarde) =
                                ud.fac_usrdata_key)
                     contractstatus,
                  (SELECT ud.fac_usrdata_omschr
                     FROM cnt_kenmerkcontract kc, fac_usrdata ud
                    WHERE     kc.cnt_kenmerkcontract_verwijder IS NULL
                          AND kc.cnt_contract_key = c.cnt_contract_key
                          AND kc.cnt_kenmerk_key = 184
                          AND fac.safe_to_number (kc.cnt_kenmerkcontract_waarde) =
                                ud.fac_usrdata_key)
                     actief,
                  (SELECT t.cnt_termijn_omschrijving
                     FROM cnt_termijn t
                    WHERE t.cnt_termijn_key = c.cnt_contract_opzegtermijn)
                     opzegtermijn,
                  (SELECT kc.cnt_kenmerkcontract_waarde
                     FROM cnt_kenmerkcontract kc
                    WHERE     kc.cnt_kenmerkcontract_verwijder IS NULL
                          AND kc.cnt_contract_key = c.cnt_contract_key
                          AND kc.cnt_kenmerk_key = 191)
                     optie_systematiek
             FROM cnt_v_aanwezigcontract c, cnt_v_aanwezigcontract m
            WHERE c.ins_discipline_key = 198
                  AND c.cnt_contract_mantel_key = m.cnt_contract_key(+))
          basis
          LEFT JOIN (SELECT c1.cnt_contract_key, 1 vlag
                       FROM cnt_v_aanwezigcontract c1, cnt_kenmerkcontract kc1
                      WHERE     c1.ins_discipline_key = 198
                            AND c1.cnt_contract_key = kc1.cnt_contract_key
                            AND kc1.cnt_kenmerk_key = 183
                            AND kc1.cnt_kenmerkcontract_waarde != '2421' -- Beeindigd
                            AND NOT EXISTS
                                  (SELECT 1
                                     FROM cnt_v_aanwezigcontract c2, cnt_kenmerkcontract kc2
                                    WHERE c2.ins_discipline_key = 198
                                          AND c2.cnt_contract_key = kc2.cnt_contract_key
                                          AND kc2.cnt_kenmerk_key = 183
                                          AND kc2.cnt_kenmerkcontract_waarde != '2421' -- Beeindigd
                                          --AND COALESCE (c2.cnt_contract_mantel_key, c2.cnt_contract_key) =
                                          --      COALESCE (c1.cnt_contract_mantel_key, c1.cnt_contract_key)
                                          AND (c2.cnt_contract_mantel_key = c1.cnt_contract_mantel_key
                                               OR (c1.cnt_contract_mantel_key IS NULL
                                                   AND c2.cnt_contract_key = c1.cnt_contract_key))
                                          AND (c2.cnt_contract_looptijd_tot < c1.cnt_contract_looptijd_tot
                                               OR (c2.cnt_contract_looptijd_tot = c1.cnt_contract_looptijd_tot
                                                   AND c2.cnt_contract_nummer_intern < c1.cnt_contract_nummer_intern))))
                    meest_nabij
             ON basis.cnt_contract_key = meest_nabij.cnt_contract_key
          LEFT JOIN (SELECT x.cnt_contract_key,
                            x.gebouw_key,
                            y.code,
                            y.regio,
                            COALESCE (z.mld_adres_bezoek_plaats,
                                      y.alg_locatie_plaats)
                               plaats,
                            COALESCE (z.mld_adres_bezoek_adres,
                                      y.alg_locatie_adres)
                               adres
                       FROM (SELECT ccp.cnt_alg_plaats_key gebouw_key,
                                    cc.cnt_contract_key
                               FROM cnt_contract cc, cnt_contract_plaats ccp
                              WHERE cc.ins_discipline_key = 198 -- huurcontract
                                    AND cc.cnt_contract_key =
                                          ccp.cnt_contract_key
                                    AND ccp.cnt_alg_plaats_code = 'G'
                                    AND ccp.cnt_contract_plaats_verwijder IS NULL)
                            x
                            LEFT JOIN (SELECT g.alg_gebouw_key,
                                              g.alg_gebouw_code code,
                                              l.alg_locatie_adres,
                                              l.alg_locatie_plaats,
                                              d.alg_district_omschrijving
                                                 regio
                                         FROM alg_gebouw G,
                                              alg_locatie l,
                                              alg_district d
                                        WHERE g.alg_locatie_key =
                                                 l.alg_locatie_key
                                              AND l.alg_district_key =
                                                    d.alg_district_key) y
                               ON x.gebouw_key = y.alg_gebouw_key
                            LEFT JOIN                 -- adres info bij gebouw
                                      (SELECT g.alg_gebouw_key,
                                              a.mld_adres_bezoek_plaats,
                                              a.mld_adres_bezoek_adres
                                         FROM alg_gebouw G, mld_adres A
                                        WHERE g.mld_adres_key =
                                                 a.mld_adres_key
                                              AND a.mld_adres_verwijder IS NULL)
                                      z
                               ON x.gebouw_key = z.alg_gebouw_key) pand
             ON basis.cnt_contract_key = pand.cnt_contract_key
          LEFT JOIN (  SELECT regels.cntkey,
                              regels.eenheid eenheid,
                              SUM (regels.aantal) aantal
                         FROM (SELECT cr1.cnt_contract_key cntkey,
                                      (SELECT fac.safe_to_number (kc.cnt_kenmerkcontract_waarde)
                                         FROM cnt_kenmerkcontract kc
                                        WHERE kc.cnt_kenmerkcontract_verwijder IS NULL
                                              AND kc.cnt_contract_key =
                                                    cr1.cnt_contract_key
                                              AND kc.cnt_kenmerk_key = 202)
                                         aantal,
                                      (SELECT ud.fac_usrdata_omschr
                                         FROM cnt_kenmerkcontract kc,
                                              fac_usrdata ud
                                        WHERE kc.cnt_kenmerkcontract_verwijder IS NULL
                                              AND kc.cnt_contract_key =
                                                    cr1.cnt_contract_key
                                              AND kc.cnt_kenmerk_key = 203
                                              AND fac.safe_to_number (kc.cnt_kenmerkcontract_waarde) =
                                                    ud.fac_usrdata_key)
                                         eenheid
                                 FROM cnt_contract cr1
                                WHERE cr1.ins_discipline_key = 198  -- regel 1
                               UNION
                               SELECT cr2.cnt_contract_key cntkey,
                                      (SELECT fac.safe_to_number (kc.cnt_kenmerkcontract_waarde)
                                         FROM cnt_kenmerkcontract kc
                                        WHERE kc.cnt_kenmerkcontract_verwijder IS NULL
                                              AND kc.cnt_contract_key =
                                                    cr2.cnt_contract_key
                                              AND kc.cnt_kenmerk_key = 261)
                                         aantal,
                                      (SELECT ud.fac_usrdata_omschr
                                         FROM cnt_kenmerkcontract kc,
                                              fac_usrdata ud
                                        WHERE kc.cnt_kenmerkcontract_verwijder IS NULL
                                              AND kc.cnt_contract_key =
                                                    cr2.cnt_contract_key
                                              AND kc.cnt_kenmerk_key = 262
                                              AND fac.safe_to_number (kc.cnt_kenmerkcontract_waarde) =
                                                    ud.fac_usrdata_key)
                                         eenheid
                                 FROM cnt_contract cr2
                                WHERE cr2.ins_discipline_key = 198  -- regel 2
                               UNION
                               SELECT cr3.cnt_contract_key cntkey,
                                      (SELECT fac.safe_to_number (kc.cnt_kenmerkcontract_waarde)
                                         FROM cnt_kenmerkcontract kc
                                        WHERE kc.cnt_kenmerkcontract_verwijder IS NULL
                                              AND kc.cnt_contract_key =
                                                    cr3.cnt_contract_key
                                              AND kc.cnt_kenmerk_key = 321)
                                         aantal,
                                      (SELECT ud.fac_usrdata_omschr
                                         FROM cnt_kenmerkcontract kc,
                                              fac_usrdata ud
                                        WHERE kc.cnt_kenmerkcontract_verwijder IS NULL
                                              AND kc.cnt_contract_key =
                                                    cr3.cnt_contract_key
                                              AND kc.cnt_kenmerk_key = 322
                                              AND fac.safe_to_number (kc.cnt_kenmerkcontract_waarde) =
                                                    ud.fac_usrdata_key)
                                         eenheid
                                 FROM cnt_contract cr3
                                WHERE cr3.ins_discipline_key = 198  -- regel 3
                               UNION
                               SELECT cr4.cnt_contract_key cntkey,
                                      (SELECT fac.safe_to_number (kc.cnt_kenmerkcontract_waarde)
                                         FROM cnt_kenmerkcontract kc
                                        WHERE kc.cnt_kenmerkcontract_verwijder IS NULL
                                              AND kc.cnt_contract_key =
                                                    cr4.cnt_contract_key
                                              AND kc.cnt_kenmerk_key = 852)
                                         aantal,
                                      (SELECT ud.fac_usrdata_omschr
                                         FROM cnt_kenmerkcontract kc,
                                              fac_usrdata ud
                                        WHERE kc.cnt_kenmerkcontract_verwijder IS NULL
                                              AND kc.cnt_contract_key =
                                                    cr4.cnt_contract_key
                                              AND kc.cnt_kenmerk_key = 853
                                              AND fac.safe_to_number (kc.cnt_kenmerkcontract_waarde) =
                                                    ud.fac_usrdata_key)
                                         eenheid
                                 FROM cnt_contract cr4
                                WHERE cr4.ins_discipline_key = 198 -- regel IV
                               UNION
                               SELECT cr4.cnt_contract_key cntkey,
                                      (SELECT fac.safe_to_number (kc.cnt_kenmerkcontract_waarde)
                                         FROM cnt_kenmerkcontract kc
                                        WHERE kc.cnt_kenmerkcontract_verwijder IS NULL
                                              AND kc.cnt_contract_key =
                                                    cr4.cnt_contract_key
                                              AND kc.cnt_kenmerk_key = 395)
                                         aantal,
                                      (SELECT ud.fac_usrdata_omschr
                                         FROM cnt_kenmerkcontract kc,
                                              fac_usrdata ud
                                        WHERE kc.cnt_kenmerkcontract_verwijder IS NULL
                                              AND kc.cnt_contract_key =
                                                    cr4.cnt_contract_key
                                              AND kc.cnt_kenmerk_key = 396
                                              AND fac.safe_to_number (kc.cnt_kenmerkcontract_waarde) =
                                                    ud.fac_usrdata_key)
                                         eenheid
                                 FROM cnt_contract cr4
                                WHERE cr4.ins_discipline_key = 198  -- regel 4
                               UNION
                               SELECT cr6.cnt_contract_key cntkey,
                                      (SELECT fac.safe_to_number (kc.cnt_kenmerkcontract_waarde)
                                         FROM cnt_kenmerkcontract kc
                                        WHERE kc.cnt_kenmerkcontract_verwijder IS NULL
                                              AND kc.cnt_contract_key =
                                                    cr6.cnt_contract_key
                                              AND kc.cnt_kenmerk_key = 1011)
                                         aantal,
                                      (SELECT ud.fac_usrdata_omschr
                                         FROM cnt_kenmerkcontract kc,
                                              fac_usrdata ud
                                        WHERE kc.cnt_kenmerkcontract_verwijder IS NULL
                                              AND kc.cnt_contract_key =
                                                    cr6.cnt_contract_key
                                              AND kc.cnt_kenmerk_key = 1012
                                              AND fac.safe_to_number (kc.cnt_kenmerkcontract_waarde) =
                                                    ud.fac_usrdata_key)
                                         eenheid
                                 FROM cnt_contract cr6
                                WHERE cr6.ins_discipline_key = 198) regels -- regel 6
                        WHERE regels.eenheid LIKE 'M2%'
                     GROUP BY regels.cntkey, regels.eenheid) opp
             ON basis.cnt_contract_key = opp.cntkey
    WHERE UPPER (basis.contractstatus) <> 'BEEINDIGD';

/* Formatted on 16-12-2014 12:04:26 (QP5 v5.136.908.31019) */
CREATE OR REPLACE VIEW uwva_v_rap_hv_cntopopzeg
(
   hide_f_sortdatum,
   contract,
   fclt_f_mantel,
   fclt_f_cnt_type,
   beschrijving,
   fclt_x_regio,
   adres,
   plaats,
   contractrubriek,
   begindatum,
   einddatum,
   opzegtermijn,
   opzegdatum,
   fclt_f_contractstatus,
   optie_systematiek,
   cnt_opp,
   eenheid,
   meest_nabij,
   fclt_3d_gebouw_key
)
AS
   SELECT TO_CHAR (basis.opzegdatum, 'yyyy-mm-dd'),
          basis.nummer,
          basis.mantel,
          CASE
             WHEN fac.safe_to_number (SUBSTR (basis.nummer, 7, 1)) < 5
             THEN
                'Algemeen'
             ELSE
                'Werkbedrijf'
          END
             uwv_cwi,
          basis.oms,
          pand.regio,
          pand.adres,
          pand.plaats,
          basis.contractrubriek,
          basis.begindatum,
          basis.einddatum,
          basis.opzegtermijn,
          basis.opzegdatum,
          basis.contractstatus,
          basis.optie_systematiek,
          opp.aantal,
          opp.eenheid,
          meest_nabij.vlag,
          pand.gebouw_key
     FROM (SELECT c.cnt_contract_key,
                  c.cnt_contract_nummer_intern nummer,
                  m.cnt_contract_nummer_intern mantel,
                  c.cnt_contract_omschrijving oms,
                  c.cnt_contract_looptijd_van begindatum,
                  cnt.cnt_getopzegdatum (c.cnt_contract_key) opzegdatum,
                  c.cnt_contract_looptijd_tot einddatum,
                  (SELECT ud.fac_usrdata_omschr
                     FROM cnt_kenmerkcontract kc, fac_usrdata ud
                    WHERE kc.cnt_contract_key = c.cnt_contract_key
                          AND kc.cnt_kenmerk_key = 181
                          AND fac.safe_to_number (kc.cnt_kenmerkcontract_waarde) =
                                ud.fac_usrdata_key)
                     contractrubriek,
                  (SELECT ud.fac_usrdata_omschr
                     FROM cnt_kenmerkcontract kc, fac_usrdata ud
                    WHERE kc.cnt_contract_key = c.cnt_contract_key
                          AND kc.cnt_kenmerk_key = 183
                          AND fac.safe_to_number (kc.cnt_kenmerkcontract_waarde) =
                                ud.fac_usrdata_key)
                     contractstatus,
                  (SELECT ud.fac_usrdata_omschr
                     FROM cnt_kenmerkcontract kc, fac_usrdata ud
                    WHERE kc.cnt_contract_key = c.cnt_contract_key
                          AND kc.cnt_kenmerk_key = 184
                          AND fac.safe_to_number (kc.cnt_kenmerkcontract_waarde) =
                                ud.fac_usrdata_key)
                     actief,
                  (SELECT t.cnt_termijn_omschrijving
                     FROM cnt_termijn t
                    WHERE t.cnt_termijn_key = c.cnt_contract_opzegtermijn)
                     opzegtermijn,
                  (SELECT kc.cnt_kenmerkcontract_waarde
                     FROM cnt_kenmerkcontract kc
                    WHERE kc.cnt_contract_key = c.cnt_contract_key
                          AND kc.cnt_kenmerk_key = 191)
                     optie_systematiek
             FROM cnt_v_aanwezigcontract c, cnt_v_aanwezigcontract m
            WHERE c.ins_discipline_key = 198
                  AND c.cnt_contract_mantel_key = m.cnt_contract_key(+))
          basis
          LEFT JOIN (SELECT c1.cnt_contract_key, 1 vlag
                       FROM cnt_v_aanwezigcontract c1, cnt_kenmerkcontract kc1
                      WHERE     c1.ins_discipline_key = 198
                            AND c1.cnt_contract_key = kc1.cnt_contract_key
                            AND kc1.cnt_kenmerk_key = 183
                            AND kc1.cnt_kenmerkcontract_waarde != '2421' -- Beeindigd
                            AND NOT EXISTS
                                  (SELECT 1
                                     FROM cnt_v_aanwezigcontract c2, cnt_kenmerkcontract kc2
                                    WHERE c2.ins_discipline_key = 198
                                          AND c2.cnt_contract_key =
                                                kc2.cnt_contract_key
                                          AND kc2.cnt_kenmerk_key = 183
                                          AND kc2.cnt_kenmerkcontract_waarde != '2421' -- Beeindigd
                                          --AND COALESCE (c2.cnt_contract_mantel_key, c2.cnt_contract_key) =
                                          --      COALESCE (c1.cnt_contract_mantel_key, c1.cnt_contract_key)
                                          AND (c2.cnt_contract_mantel_key = c1.cnt_contract_mantel_key
                                               OR (c1.cnt_contract_mantel_key IS NULL
                                                   AND c2.cnt_contract_key = c1.cnt_contract_key))
                                          AND (cnt.cnt_getopzegdatum (c2.cnt_contract_key) <
                                                  cnt.cnt_getopzegdatum (c1.cnt_contract_key)
                                               OR (cnt.cnt_getopzegdatum (c2.cnt_contract_key) =
                                                      cnt.cnt_getopzegdatum (c1.cnt_contract_key)
                                                   AND c2.cnt_contract_nummer_intern <
                                                         c1.cnt_contract_nummer_intern))))
                    meest_nabij
             ON basis.cnt_contract_key = meest_nabij.cnt_contract_key
          LEFT JOIN (SELECT x.cnt_contract_key,
                            x.gebouw_key,
                            y.code,
                            y.regio,
                            COALESCE (z.mld_adres_bezoek_plaats,
                                      y.alg_locatie_plaats)
                               plaats,
                            COALESCE (z.mld_adres_bezoek_adres,
                                      y.alg_locatie_adres)
                               adres
                       FROM (SELECT ccp.cnt_alg_plaats_key gebouw_key,
                                    cc.cnt_contract_key
                               FROM cnt_contract cc, cnt_contract_plaats ccp
                              WHERE cc.ins_discipline_key = 198 -- huurcontract
                                    AND cc.cnt_contract_key =
                                          ccp.cnt_contract_key
                                    AND ccp.cnt_alg_plaats_code = 'G'
                                    AND ccp.cnt_contract_plaats_verwijder IS NULL)
                            x
                            LEFT JOIN (SELECT g.alg_gebouw_key,
                                              g.alg_gebouw_code code,
                                              l.alg_locatie_adres,
                                              l.alg_locatie_plaats,
                                              d.alg_district_omschrijving
                                                 regio
                                         FROM alg_gebouw g,
                                              alg_locatie l,
                                              alg_district d
                                        WHERE g.alg_locatie_key =
                                                 l.alg_locatie_key
                                              AND l.alg_district_key =
                                                    d.alg_district_key) y
                               ON x.gebouw_key = y.alg_gebouw_key
                            LEFT JOIN                 -- adres info bij gebouw
                                      (SELECT g.alg_gebouw_key,
                                              a.mld_adres_bezoek_plaats,
                                              a.mld_adres_bezoek_adres
                                         FROM alg_gebouw g, mld_adres a
                                        WHERE g.mld_adres_key =
                                                 a.mld_adres_key
                                              AND a.mld_adres_verwijder IS NULL)
                                      z
                               ON x.gebouw_key = z.alg_gebouw_key) pand
             ON basis.cnt_contract_key = pand.cnt_contract_key
          LEFT JOIN (  SELECT regels.cntkey,
                              regels.eenheid eenheid,
                              SUM (regels.aantal) aantal
                         FROM (SELECT cr1.cnt_contract_key cntkey,
                                      (SELECT fac.safe_to_number (kc.cnt_kenmerkcontract_waarde)
                                         FROM cnt_kenmerkcontract kc
                                        WHERE kc.cnt_kenmerkcontract_verwijder IS NULL
                                              AND kc.cnt_contract_key =
                                                    cr1.cnt_contract_key
                                              AND kc.cnt_kenmerk_key = 202)
                                         aantal,
                                      (SELECT ud.fac_usrdata_omschr
                                         FROM cnt_kenmerkcontract kc,
                                              fac_usrdata ud
                                        WHERE kc.cnt_kenmerkcontract_verwijder IS NULL
                                              AND kc.cnt_contract_key =
                                                    cr1.cnt_contract_key
                                              AND kc.cnt_kenmerk_key = 203
                                              AND fac.safe_to_number (kc.cnt_kenmerkcontract_waarde) =
                                                    ud.fac_usrdata_key)
                                         eenheid
                                 FROM cnt_contract cr1
                                WHERE cr1.ins_discipline_key = 198  -- regel 1
                               UNION
                               SELECT cr2.cnt_contract_key cntkey,
                                      (SELECT fac.safe_to_number (kc.cnt_kenmerkcontract_waarde)
                                         FROM cnt_kenmerkcontract kc
                                        WHERE kc.cnt_kenmerkcontract_verwijder IS NULL
                                              AND kc.cnt_contract_key =
                                                    cr2.cnt_contract_key
                                              AND kc.cnt_kenmerk_key = 261)
                                         aantal,
                                      (SELECT ud.fac_usrdata_omschr
                                         FROM cnt_kenmerkcontract kc,
                                              fac_usrdata ud
                                        WHERE kc.cnt_kenmerkcontract_verwijder IS NULL
                                              AND kc.cnt_contract_key =
                                                    cr2.cnt_contract_key
                                              AND kc.cnt_kenmerk_key = 262
                                              AND fac.safe_to_number (kc.cnt_kenmerkcontract_waarde) =
                                                    ud.fac_usrdata_key)
                                         eenheid
                                 FROM cnt_contract cr2
                                WHERE cr2.ins_discipline_key = 198  -- regel 2
                               UNION
                               SELECT cr3.cnt_contract_key cntkey,
                                      (SELECT fac.safe_to_number (kc.cnt_kenmerkcontract_waarde)
                                         FROM cnt_kenmerkcontract kc
                                        WHERE kc.cnt_kenmerkcontract_verwijder IS NULL
                                              AND kc.cnt_contract_key =
                                                    cr3.cnt_contract_key
                                              AND kc.cnt_kenmerk_key = 321)
                                         aantal,
                                      (SELECT ud.fac_usrdata_omschr
                                         FROM cnt_kenmerkcontract kc,
                                              fac_usrdata ud
                                        WHERE kc.cnt_kenmerkcontract_verwijder IS NULL
                                              AND kc.cnt_contract_key =
                                                    cr3.cnt_contract_key
                                              AND kc.cnt_kenmerk_key = 322
                                              AND fac.safe_to_number (kc.cnt_kenmerkcontract_waarde) =
                                                    ud.fac_usrdata_key)
                                         eenheid
                                 FROM cnt_contract cr3
                                WHERE cr3.ins_discipline_key = 198  -- regel 3
                               UNION
                               SELECT cr4.cnt_contract_key cntkey,
                                      (SELECT fac.safe_to_number (kc.cnt_kenmerkcontract_waarde)
                                         FROM cnt_kenmerkcontract kc
                                        WHERE kc.cnt_kenmerkcontract_verwijder IS NULL
                                              AND kc.cnt_contract_key =
                                                    cr4.cnt_contract_key
                                              AND kc.cnt_kenmerk_key = 852)
                                         aantal,
                                      (SELECT ud.fac_usrdata_omschr
                                         FROM cnt_kenmerkcontract kc,
                                              fac_usrdata ud
                                        WHERE kc.cnt_kenmerkcontract_verwijder IS NULL
                                              AND kc.cnt_contract_key =
                                                    cr4.cnt_contract_key
                                              AND kc.cnt_kenmerk_key = 853
                                              AND fac.safe_to_number (kc.cnt_kenmerkcontract_waarde) =
                                                    ud.fac_usrdata_key)
                                         eenheid
                                 FROM cnt_contract cr4
                                WHERE cr4.ins_discipline_key = 198 -- regel IV
                               UNION
                               SELECT cr4.cnt_contract_key cntkey,
                                      (SELECT fac.safe_to_number (kc.cnt_kenmerkcontract_waarde)
                                         FROM cnt_kenmerkcontract kc
                                        WHERE kc.cnt_kenmerkcontract_verwijder IS NULL
                                              AND kc.cnt_contract_key =
                                                    cr4.cnt_contract_key
                                              AND kc.cnt_kenmerk_key = 395)
                                         aantal,
                                      (SELECT ud.fac_usrdata_omschr
                                         FROM cnt_kenmerkcontract kc,
                                              fac_usrdata ud
                                        WHERE kc.cnt_kenmerkcontract_verwijder IS NULL
                                              AND kc.cnt_contract_key =
                                                    cr4.cnt_contract_key
                                              AND kc.cnt_kenmerk_key = 396
                                              AND fac.safe_to_number (kc.cnt_kenmerkcontract_waarde) =
                                                    ud.fac_usrdata_key)
                                         eenheid
                                 FROM cnt_contract cr4
                                WHERE cr4.ins_discipline_key = 198  -- regel 4
                               UNION
                               SELECT cr6.cnt_contract_key cntkey,
                                      (SELECT fac.safe_to_number (kc.cnt_kenmerkcontract_waarde)
                                         FROM cnt_kenmerkcontract kc
                                        WHERE kc.cnt_kenmerkcontract_verwijder IS NULL
                                              AND kc.cnt_contract_key =
                                                    cr6.cnt_contract_key
                                              AND kc.cnt_kenmerk_key = 1011)
                                         aantal,
                                      (SELECT ud.fac_usrdata_omschr
                                         FROM cnt_kenmerkcontract kc,
                                              fac_usrdata ud
                                        WHERE kc.cnt_kenmerkcontract_verwijder IS NULL
                                              AND kc.cnt_contract_key =
                                                    cr6.cnt_contract_key
                                              AND kc.cnt_kenmerk_key = 1012
                                              AND fac.safe_to_number (kc.cnt_kenmerkcontract_waarde) =
                                                    ud.fac_usrdata_key)
                                         eenheid
                                 FROM cnt_contract cr6
                                WHERE cr6.ins_discipline_key = 198) regels -- regel 6
                        WHERE regels.eenheid LIKE 'M2%'
                     GROUP BY regels.cntkey, regels.eenheid) opp
             ON basis.cnt_contract_key = opp.cntkey
    WHERE UPPER (basis.contractstatus) <> 'BEEINDIGD';

/* Formatted on 20-6-2017 10:08:11 (QP5 v5.136.908.31019) */
CREATE OR REPLACE VIEW uwva_v_rap_hv_toek_verpl
(
   hide_f_groepering,
   fclt_d_datum,
   fclt_f_mantel,
   mantel_extern,
   contract,
   fclt_f_cnt_type,
   beschrijving,
   fclt_x_regio,
   adres,
   plaats,
   contractrubriek,
   leverancier,
   bankrekening,
   leverancier_nummer,
   begindatum,
   einddatum,
   opzegtermijn,
   opzegdatum,
   fclt_f_contractstatus,
   optie_systematiek,
   regrubriek,
   factuurmaanden,
   btw,
   mndkosten_excl_btw
)
AS
   WITH c
           AS (  SELECT basis.mantel,
                        basis.nummer,
                        basis.mantel_extern,
                        basis.oms,
                        pand.regio,
                        pand.adres,
                        pand.plaats,
                        basis.contractrubriek,
                        basis.leverancier,
                        basis.bankrekening,
                        basis.leverancier_nummer,
                        basis.begindatum,
                        basis.einddatum,
                        basis.opzegtermijn,
                        basis.opzegdatum,
                        basis.contractstatus,
                        basis.optie_systematiek,
                        regels.contractregelrubriek,
                        basis.factuurmaanden,
                       regels.btw,
                        SUM(DECODE (
                               basis.factuurmaanden,
                               NULL,
                               0,
                               0,
                               NULL,
                               ROUND (
                                  fac.safe_to_number (regels.kostenexcl)
                                  / basis.factuurmaanden,
                                  2)))
                           mndkosten_excl_btw
                   FROM (SELECT c.cnt_contract_key,
                                m.cnt_contract_nummer_intern mantel,
                                m.cnt_contract_nummer mantel_extern,
                                c.cnt_contract_nummer_intern nummer,
                                c.cnt_contract_omschrijving oms,
                                c.cnt_contract_looptijd_van begindatum,
                                cnt.cnt_getopzegdatum (c.cnt_contract_key)
                                   opzegdatum,
                                c.cnt_contract_looptijd_tot einddatum,
                                (SELECT ud.fac_usrdata_omschr
                                   FROM cnt_kenmerkcontract kc, fac_usrdata ud
                                  WHERE kc.cnt_kenmerkcontract_verwijder IS NULL
                                        AND kc.cnt_contract_key =
                                              c.cnt_contract_key
                                        AND kc.cnt_kenmerk_key = 181
                                        AND fac.safe_to_number (
                                              kc.cnt_kenmerkcontract_waarde) =
                                              ud.fac_usrdata_key)
                                   contractrubriek,
                                (SELECT ud.fac_usrdata_omschr
                                   FROM cnt_kenmerkcontract kc, fac_usrdata ud
                                  WHERE kc.cnt_kenmerkcontract_verwijder IS NULL
                                        AND kc.cnt_contract_key =
                                              c.cnt_contract_key
                                        AND kc.cnt_kenmerk_key = 183
                                        AND fac.safe_to_number (
                                              kc.cnt_kenmerkcontract_waarde) =
                                              ud.fac_usrdata_key)
                                   contractstatus,
                                (SELECT ud.fac_usrdata_omschr
                                   FROM cnt_kenmerkcontract kc, fac_usrdata ud
                                  WHERE kc.cnt_kenmerkcontract_verwijder IS NULL
                                        AND kc.cnt_contract_key =
                                              c.cnt_contract_key
                                        AND kc.cnt_kenmerk_key = 184
                                        AND fac.safe_to_number (
                                              kc.cnt_kenmerkcontract_waarde) =
                                              ud.fac_usrdata_key)
                                   actief,
                                (SELECT fac.safe_to_number (
                                           ud.fac_usrdata_code)
                                   FROM cnt_kenmerkcontract kc, fac_usrdata ud
                                  WHERE kc.cnt_contract_key =
                                           c.cnt_contract_key
                                        AND kc.cnt_kenmerk_key = 189
                                        AND fac.safe_to_number (
                                              kc.cnt_kenmerkcontract_waarde) =
                                              ud.fac_usrdata_key)
                                   factuurmaanden,
                                (SELECT t.cnt_termijn_omschrijving
                                   FROM cnt_termijn t
                                  WHERE t.cnt_termijn_key =
                                           c.cnt_contract_opzegtermijn)
                                   opzegtermijn,
                                (SELECT kc.cnt_kenmerkcontract_waarde
                                   FROM cnt_kenmerkcontract kc
                                  WHERE kc.cnt_kenmerkcontract_verwijder IS NULL
                                        AND kc.cnt_contract_key =
                                              c.cnt_contract_key
                                        AND kc.cnt_kenmerk_key = 191)
                                   optie_systematiek,
                                b.prs_bedrijf_naam leverancier,
                                (SELECT prs_kenmerklink_waarde
                                   FROM prs_kenmerklink
                                  WHERE     prs_kenmerklink_niveau = 'B'
                                        AND prs_kenmerk_key = 1140
                                        AND prs_link_key = b.prs_bedrijf_key)
                                   bankrekening,
                                prs_leverancier_nr leverancier_nummer
                           FROM cnt_v_aanwezigcontract c,
                                cnt_v_aanwezigcontract m,
                                prs_bedrijf b
                          WHERE c.ins_discipline_key = 198
                                AND b.prs_bedrijf_key(+) =
                                      m.cnt_prs_bedrijf_key
                                AND c.cnt_contract_mantel_key =
                                      m.cnt_contract_key(+)) basis
                        LEFT JOIN (SELECT x.cnt_contract_key,
                                          x.gebouw_key,
                                          y.code,
                                          y.regio,
                                          COALESCE (z.mld_adres_bezoek_plaats,
                                                    y.alg_locatie_plaats)
                                             plaats,
                                          COALESCE (z.mld_adres_bezoek_adres,
                                                    y.alg_locatie_adres)
                                             adres
                                     FROM (SELECT ccp.cnt_alg_plaats_key
                                                     gebouw_key,
                                                  cc.cnt_contract_key
                                             FROM cnt_contract cc,
                                                  cnt_contract_plaats ccp
                                            WHERE cc.ins_discipline_key = 198 -- huurcontract
                                                  AND cc.cnt_contract_key =
                                                        ccp.cnt_contract_key
                                                  AND ccp.cnt_alg_plaats_code =
                                                        'G'
                                                  AND ccp.cnt_contract_plaats_verwijder IS NULL)
                                          x
                                          LEFT JOIN (SELECT g.alg_gebouw_key,
                                                            g.alg_gebouw_code
                                                               code,
                                                            l.alg_locatie_adres,
                                                            l.alg_locatie_plaats,
                                                            d.alg_district_omschrijving
                                                               regio
                                                       FROM alg_gebouw g,
                                                            alg_locatie l,
                                                            alg_district d
                                                      WHERE g.alg_locatie_key =
                                                               l.alg_locatie_key
                                                            AND l.alg_district_key =
                                                                  d.alg_district_key)
                                                    y
                                             ON x.gebouw_key = y.alg_gebouw_key
                                          LEFT JOIN   -- adres info bij gebouw
                                                    (SELECT g.alg_gebouw_key,
                                                            a.mld_adres_bezoek_plaats,
                                                            a.mld_adres_bezoek_adres
                                                       FROM alg_gebouw g,
                                                            mld_adres a
                                                      WHERE g.mld_adres_key =
                                                               a.mld_adres_key
                                                            AND a.mld_adres_verwijder IS NULL)
                                                    z
                                             ON x.gebouw_key = z.alg_gebouw_key)
                                  pand
                           ON basis.cnt_contract_key = pand.cnt_contract_key
                        LEFT JOIN (SELECT cr1.cnt_contract_key cntkey,
                                          (SELECT ud.fac_usrdata_omschr
                                             FROM cnt_kenmerkcontract kc,
                                                  fac_usrdata ud
                                            WHERE kc.cnt_kenmerkcontract_verwijder IS NULL
                                                  AND kc.cnt_contract_key =
                                                        cr1.cnt_contract_key
                                                  AND kc.cnt_kenmerk_key = 201
                                                  AND fac.safe_to_number(kc.cnt_kenmerkcontract_waarde) =
                                                        ud.fac_usrdata_key)
                                             contractregelrubriek,
                                          (SELECT kc.cnt_kenmerkcontract_waarde
                                             FROM cnt_kenmerkcontract kc
                                            WHERE kc.cnt_kenmerkcontract_verwijder IS NULL
                                                  AND kc.cnt_contract_key =
                                                        cr1.cnt_contract_key
                                                  AND kc.cnt_kenmerk_key = 202)
                                             aantal,
                                          (SELECT ud.fac_usrdata_omschr
                                             FROM cnt_kenmerkcontract kc,
                                                  fac_usrdata ud
                                            WHERE kc.cnt_kenmerkcontract_verwijder IS NULL
                                                  AND kc.cnt_contract_key =
                                                        cr1.cnt_contract_key
                                                  AND kc.cnt_kenmerk_key = 203
                                                  AND fac.safe_to_number(kc.cnt_kenmerkcontract_waarde) =
                                                        ud.fac_usrdata_key)
                                             eenheid,
                                          (SELECT kc.cnt_kenmerkcontract_waarde
                                             FROM cnt_kenmerkcontract kc
                                            WHERE kc.cnt_kenmerkcontract_verwijder IS NULL
                                                  AND kc.cnt_contract_key =
                                                        cr1.cnt_contract_key
                                                  AND kc.cnt_kenmerk_key = 221)
                                             kostenexcl,
                                          (SELECT ud.fac_usrdata_omschr
                                             FROM cnt_kenmerkcontract kc,
                                                  fac_usrdata ud
                                            WHERE kc.cnt_kenmerkcontract_verwijder IS NULL
                                                  AND kc.cnt_contract_key =
                                                        cr1.cnt_contract_key
                                                  AND kc.cnt_kenmerk_key = 242
                                                  AND fac.safe_to_number(kc.cnt_kenmerkcontract_waarde) =
                                                        ud.fac_usrdata_key)
                                             btw
                                     FROM cnt_contract cr1
                                    WHERE cr1.ins_discipline_key = 198 -- regel 1
                                   UNION
                                   SELECT cr2.cnt_contract_key cntkey,
                                          (SELECT ud.fac_usrdata_omschr
                                             FROM cnt_kenmerkcontract kc,
                                                  fac_usrdata ud
                                            WHERE kc.cnt_kenmerkcontract_verwijder IS NULL
                                                  AND kc.cnt_contract_key =
                                                        cr2.cnt_contract_key
                                                  AND kc.cnt_kenmerk_key = 241
                                                  AND fac.safe_to_number(kc.cnt_kenmerkcontract_waarde) =
                                                        ud.fac_usrdata_key)
                                             contractregelrubriek,
                                          (SELECT kc.cnt_kenmerkcontract_waarde
                                             FROM cnt_kenmerkcontract kc
                                            WHERE kc.cnt_kenmerkcontract_verwijder IS NULL
                                                  AND kc.cnt_contract_key =
                                                        cr2.cnt_contract_key
                                                  AND kc.cnt_kenmerk_key = 261)
                                             aantal,
                                          (SELECT ud.fac_usrdata_omschr
                                             FROM cnt_kenmerkcontract kc,
                                                  fac_usrdata ud
                                            WHERE kc.cnt_kenmerkcontract_verwijder IS NULL
                                                  AND kc.cnt_contract_key =
                                                        cr2.cnt_contract_key
                                                  AND kc.cnt_kenmerk_key = 262
                                                  AND fac.safe_to_number(kc.cnt_kenmerkcontract_waarde) =
                                                        ud.fac_usrdata_key)
                                             eenheid,
                                          (SELECT kc.cnt_kenmerkcontract_waarde
                                             FROM cnt_kenmerkcontract kc
                                            WHERE kc.cnt_kenmerkcontract_verwijder IS NULL
                                                  AND kc.cnt_contract_key =
                                                        cr2.cnt_contract_key
                                                  AND kc.cnt_kenmerk_key = 263)
                                             kostenexcl,
                                          (SELECT ud.fac_usrdata_omschr
                                             FROM cnt_kenmerkcontract kc,
                                                  fac_usrdata ud
                                            WHERE kc.cnt_kenmerkcontract_verwijder IS NULL
                                                  AND kc.cnt_contract_key =
                                                        cr2.cnt_contract_key
                                                  AND kc.cnt_kenmerk_key = 281
                                                  AND fac.safe_to_number(kc.cnt_kenmerkcontract_waarde) =
                                                        ud.fac_usrdata_key)
                                             btw
                                     FROM cnt_contract cr2
                                    WHERE cr2.ins_discipline_key = 198 -- regel 2
                                   UNION
                                   SELECT cr3.cnt_contract_key cntkey,
                                          (SELECT ud.fac_usrdata_omschr
                                             FROM cnt_kenmerkcontract kc,
                                                  fac_usrdata ud
                                            WHERE kc.cnt_kenmerkcontract_verwijder IS NULL
                                                  AND kc.cnt_contract_key =
                                                        cr3.cnt_contract_key
                                                  AND kc.cnt_kenmerk_key = 302
                                                  AND fac.safe_to_number(kc.cnt_kenmerkcontract_waarde) =
                                                        ud.fac_usrdata_key)
                                             contractregelrubriek,
                                          (SELECT kc.cnt_kenmerkcontract_waarde
                                             FROM cnt_kenmerkcontract kc
                                            WHERE kc.cnt_kenmerkcontract_verwijder IS NULL
                                                  AND kc.cnt_contract_key =
                                                        cr3.cnt_contract_key
                                                  AND kc.cnt_kenmerk_key = 321)
                                             aantal,
                                          (SELECT ud.fac_usrdata_omschr
                                             FROM cnt_kenmerkcontract kc,
                                                  fac_usrdata ud
                                            WHERE kc.cnt_kenmerkcontract_verwijder IS NULL
                                                  AND kc.cnt_contract_key =
                                                        cr3.cnt_contract_key
                                                  AND kc.cnt_kenmerk_key = 322
                                                  AND fac.safe_to_number(kc.cnt_kenmerkcontract_waarde) =
                                                        ud.fac_usrdata_key)
                                             eenheid,
                                          (SELECT kc.cnt_kenmerkcontract_waarde
                                             FROM cnt_kenmerkcontract kc
                                            WHERE kc.cnt_kenmerkcontract_verwijder IS NULL
                                                  AND kc.cnt_contract_key =
                                                        cr3.cnt_contract_key
                                                  AND kc.cnt_kenmerk_key = 392)
                                             kostenexcl,
                                          (SELECT ud.fac_usrdata_omschr
                                             FROM cnt_kenmerkcontract kc,
                                                  fac_usrdata ud
                                            WHERE kc.cnt_kenmerkcontract_verwijder IS NULL
                                                  AND kc.cnt_contract_key =
                                                        cr3.cnt_contract_key
                                                  AND kc.cnt_kenmerk_key = 393
                                                  AND fac.safe_to_number(kc.cnt_kenmerkcontract_waarde) =
                                                        ud.fac_usrdata_key)
                                             btw
                                     FROM cnt_contract cr3
                                    WHERE cr3.ins_discipline_key = 198 -- regel 3
                                   UNION
                                   SELECT cr4.cnt_contract_key cntkey,
                                          (SELECT ud.fac_usrdata_omschr
                                             FROM cnt_kenmerkcontract kc,
                                                  fac_usrdata ud
                                            WHERE kc.cnt_kenmerkcontract_verwijder IS NULL
                                                  AND kc.cnt_contract_key =
                                                        cr4.cnt_contract_key
                                                  AND kc.cnt_kenmerk_key = 851
                                                  AND fac.safe_to_number(kc.cnt_kenmerkcontract_waarde) =
                                                        ud.fac_usrdata_key)
                                             contractregelrubriek,
                                          (SELECT kc.cnt_kenmerkcontract_waarde
                                             FROM cnt_kenmerkcontract kc
                                            WHERE kc.cnt_kenmerkcontract_verwijder IS NULL
                                                  AND kc.cnt_contract_key =
                                                        cr4.cnt_contract_key
                                                  AND kc.cnt_kenmerk_key = 852)
                                             aantal,
                                          (SELECT ud.fac_usrdata_omschr
                                             FROM cnt_kenmerkcontract kc,
                                                  fac_usrdata ud
                                            WHERE kc.cnt_kenmerkcontract_verwijder IS NULL
                                                  AND kc.cnt_contract_key =
                                                        cr4.cnt_contract_key
                                                  AND kc.cnt_kenmerk_key = 853
                                                  AND fac.safe_to_number(kc.cnt_kenmerkcontract_waarde) =
                                                        ud.fac_usrdata_key)
                                             eenheid,
                                          (SELECT kc.cnt_kenmerkcontract_waarde
                                             FROM cnt_kenmerkcontract kc
                                            WHERE kc.cnt_kenmerkcontract_verwijder IS NULL
                                                  AND kc.cnt_contract_key =
                                                        cr4.cnt_contract_key
                                                  AND kc.cnt_kenmerk_key = 854)
                                             kostenexcl,
                                          (SELECT ud.fac_usrdata_omschr
                                             FROM cnt_kenmerkcontract kc,
                                                  fac_usrdata ud
                                            WHERE kc.cnt_kenmerkcontract_verwijder IS NULL
                                                  AND kc.cnt_contract_key =
                                                        cr4.cnt_contract_key
                                                  AND kc.cnt_kenmerk_key = 855
                                                  AND fac.safe_to_number(kc.cnt_kenmerkcontract_waarde) =
                                                        ud.fac_usrdata_key)
                                             btw
                                     FROM cnt_contract cr4
                                    WHERE cr4.ins_discipline_key = 198 -- regel IV
                                   UNION
                                   SELECT cr4.cnt_contract_key cntkey,
                                          (SELECT ud.fac_usrdata_omschr
                                             FROM cnt_kenmerkcontract kc,
                                                  fac_usrdata ud
                                            WHERE kc.cnt_kenmerkcontract_verwijder IS NULL
                                                  AND kc.cnt_contract_key =
                                                        cr4.cnt_contract_key
                                                  AND kc.cnt_kenmerk_key = 394
                                                  AND fac.safe_to_number(kc.cnt_kenmerkcontract_waarde) =
                                                        ud.fac_usrdata_key)
                                             contractregelrubriek,
                                          (SELECT kc.cnt_kenmerkcontract_waarde
                                             FROM cnt_kenmerkcontract kc
                                            WHERE kc.cnt_kenmerkcontract_verwijder IS NULL
                                                  AND kc.cnt_contract_key =
                                                        cr4.cnt_contract_key
                                                  AND kc.cnt_kenmerk_key = 395)
                                             aantal,
                                          (SELECT ud.fac_usrdata_omschr
                                             FROM cnt_kenmerkcontract kc,
                                                  fac_usrdata ud
                                            WHERE kc.cnt_kenmerkcontract_verwijder IS NULL
                                                  AND kc.cnt_contract_key =
                                                        cr4.cnt_contract_key
                                                  AND kc.cnt_kenmerk_key = 396
                                                  AND fac.safe_to_number(kc.cnt_kenmerkcontract_waarde) =
                                                        ud.fac_usrdata_key)
                                             eenheid,
                                          (SELECT kc.cnt_kenmerkcontract_waarde
                                             FROM cnt_kenmerkcontract kc
                                            WHERE kc.cnt_kenmerkcontract_verwijder IS NULL
                                                  AND kc.cnt_contract_key =
                                                        cr4.cnt_contract_key
                                                  AND kc.cnt_kenmerk_key = 421)
                                             kostenexcl,
                                          NULL btw                  -- was 397
                                     FROM cnt_contract cr4
                                    WHERE cr4.ins_discipline_key = 198 -- regel 4
                                   UNION
                                   SELECT cr5.cnt_contract_key cntkey,
                                          (SELECT ud.fac_usrdata_omschr
                                             FROM cnt_kenmerkcontract kc,
                                                  fac_usrdata ud
                                            WHERE kc.cnt_kenmerkcontract_verwijder IS NULL
                                                  AND kc.cnt_contract_key =
                                                        cr5.cnt_contract_key
                                                  AND kc.cnt_kenmerk_key = 398
                                                  AND fac.safe_to_number(kc.cnt_kenmerkcontract_waarde) =
                                                        ud.fac_usrdata_key)
                                             contractregelrubriek,
                                          NULL aantal,             -- was 399!
                                          NULL eenheid,            -- was 422!
                                          (SELECT kc.cnt_kenmerkcontract_waarde
                                             FROM cnt_kenmerkcontract kc
                                            WHERE kc.cnt_kenmerkcontract_verwijder IS NULL
                                                  AND kc.cnt_contract_key =
                                                        cr5.cnt_contract_key
                                                  AND kc.cnt_kenmerk_key = 400)
                                             kostenexcl,
                                          (SELECT ud.fac_usrdata_omschr
                                             FROM cnt_kenmerkcontract kc,
                                                  fac_usrdata ud
                                            WHERE kc.cnt_kenmerkcontract_verwijder IS NULL
                                                  AND kc.cnt_contract_key =
                                                        cr5.cnt_contract_key
                                                  AND kc.cnt_kenmerk_key = 401
                                                  AND fac.safe_to_number(kc.cnt_kenmerkcontract_waarde) =
                                                        ud.fac_usrdata_key)
                                             btw
                                     FROM cnt_contract cr5
                                    WHERE cr5.ins_discipline_key = 198 -- regel 5
                                   UNION
                                   SELECT cr6.cnt_contract_key cntkey,
                                          (SELECT ud.fac_usrdata_omschr
                                             FROM cnt_kenmerkcontract kc,
                                                  fac_usrdata ud
                                            WHERE kc.cnt_kenmerkcontract_verwijder IS NULL
                                                  AND kc.cnt_contract_key =
                                                        cr6.cnt_contract_key
                                                  AND kc.cnt_kenmerk_key = 1009
                                                  AND fac.safe_to_number(kc.cnt_kenmerkcontract_waarde) =
                                                        ud.fac_usrdata_key)
                                             contractregelrubriek,
                                          (SELECT kc.cnt_kenmerkcontract_waarde
                                             FROM cnt_kenmerkcontract kc
                                            WHERE kc.cnt_kenmerkcontract_verwijder IS NULL
                                                  AND kc.cnt_contract_key =
                                                        cr6.cnt_contract_key
                                                  AND kc.cnt_kenmerk_key = 1011)
                                             aantal,
                                          (SELECT ud.fac_usrdata_omschr
                                             FROM cnt_kenmerkcontract kc,
                                                  fac_usrdata ud
                                            WHERE kc.cnt_kenmerkcontract_verwijder IS NULL
                                                  AND kc.cnt_contract_key =
                                                        cr6.cnt_contract_key
                                                  AND kc.cnt_kenmerk_key = 1012
                                                  AND fac.safe_to_number(kc.cnt_kenmerkcontract_waarde) =
                                                        ud.fac_usrdata_key)
                                             eenheid,
                                          (SELECT kc.cnt_kenmerkcontract_waarde
                                             FROM cnt_kenmerkcontract kc
                                            WHERE kc.cnt_kenmerkcontract_verwijder IS NULL
                                                  AND kc.cnt_contract_key =
                                                        cr6.cnt_contract_key
                                                  AND kc.cnt_kenmerk_key = 1013)
                                             kostenexcl,
                                          NULL btw
                                     FROM cnt_contract cr6
                                    WHERE cr6.ins_discipline_key = 198) regels -- regel 6
                           ON basis.cnt_contract_key = regels.cntkey
                  WHERE UPPER (basis.contractstatus) <> 'BEEINDIGD'
                        AND (regels.contractregelrubriek IS NOT NULL
                             OR regels.kostenexcl IS NOT NULL)
               GROUP BY basis.nummer,
                        basis.mantel,
                        basis.mantel_extern,
                        basis.oms,
                        pand.regio,
                        pand.adres,
                        pand.plaats,
                        basis.leverancier,
                        basis.bankrekening,
                        basis.leverancier_nummer,
                        basis.contractrubriek,
                        basis.begindatum,
                        basis.einddatum,
                        basis.opzegtermijn,
                        basis.opzegdatum,
                        basis.contractstatus,
                        basis.optie_systematiek,
                        regels.contractregelrubriek,
                        basis.factuurmaanden,
                        regels.btw)
   SELECT COALESCE (c.mantel, c.nummer) groepering,
          TO_CHAR (x.maand, 'dd-mm-yyyy') vantot,
          c.mantel,
          c.mantel_extern,
          c.nummer,
          CASE
             WHEN fac.safe_to_number (SUBSTR (c.nummer, 7, 1)) < 5
             THEN
                'Algemeen'
             ELSE
                'Werkbedrijf'
          END
             uwv_cwi,
          c.oms,
          c.regio,
          c.adres,
          c.plaats,
          c.contractrubriek,
          c.leverancier,
          c.bankrekening,
          c.leverancier_nummer,
          c.begindatum,
          c.einddatum,
          c.opzegtermijn,
          c.opzegdatum,
          c.contractstatus,
          c.optie_systematiek,
          c.contractregelrubriek,
          c.factuurmaanden,
          c.btw,
          c.mndkosten_excl_btw
     FROM (    SELECT ADD_MONTHS (TRUNC (SYSDATE, 'YYYY'), -1 + ROWNUM) maand
                 FROM DUAL
           CONNECT BY LEVEL <= 120) x, c
    WHERE x.maand BETWEEN c.begindatum AND c.einddatum;

/* Formatted on 17-11-2016 12:28:32 (QP5 v5.136.908.31019) */
CREATE OR REPLACE VIEW uwva_v_rap_hv_ruimtedetails
(
   fclt_f_regio,                                          -- Was fclt_f_kavel!
   fclt_f_district,
   fclt_f_gebouw,
   gemeente,
   adres,
   fclt_f_verdieping,
   ruimte,
   fclt_f_divisie,
   fclt_f_afdeling,
   fclt_f_ruimtesoort,
   fclt_f_ruimtegebruik,
   nen2580,
   vloer,
   bezetting,
   wp,
   pers,
   fclt_3d_gebouw_key
)
AS
   SELECT a.regio,
          a.district,
          a.gebouw,
          COALESCE (y.gemeente, a.plaats),
          COALESCE (y.adres, a.adres),
          a.verdieping,
          a.ruimtenr,
          b.divisie,
          b.afdeling,
          a.ruimtesoort,
          f.ruimtegebruik,
          DECODE (
             a.nen2580_opp,
             NULL, NULL,
             REPLACE (TO_CHAR(ROUND ((a.nen2580_opp * COALESCE (b.afd_bez, 1)) / COALESCE (g.tot_bez, 1), 2)), '.', ',')),
          DECODE (
             a.vloer_opp,
             NULL, NULL,
             REPLACE (TO_CHAR(ROUND ((a.vloer_opp * COALESCE (b.afd_bez, 1)) / COALESCE (g.tot_bez, 1), 2)), '.', ',')),
          TO_CHAR(100 * ROUND (COALESCE (b.afd_bez, 0) / COALESCE (g.tot_bez, 1), 2)) || '%',
          d.werkplekken,
          e.personen,
          a.gebouw_key
     FROM (SELECT r.alg_ruimte_key,
                  r.alg_ruimte_nr ruimtenr,
                  v.alg_verdieping_code verdieping,
                  g.alg_gebouw_key gebouw_key,
                  g.alg_gebouw_code gebouw,
                  l.alg_locatie_adres adres,
                  l.alg_locatie_plaats plaats,
                  d.alg_district_omschrijving district,
                  reg.alg_regio_omschrijving regio,
                  sr.alg_srtruimte_omschrijving ruimtesoort,
                  r.alg_ruimte_bruto_vloeropp nen2580_opp,
                  r.alg_ruimte_opp_alt1 vloer_opp
             FROM alg_v_aanwezigruimte r,
                  alg_verdieping v,
                  alg_gebouw g,
                  alg_locatie l,
                  alg_district d,
                  alg_regio reg,
                  alg_srtruimte sr
            WHERE r.alg_verdieping_key = v.alg_verdieping_key
                  AND v.alg_gebouw_key = g.alg_gebouw_key
                  AND COALESCE (g.alg_gebouw_vervaldatum, SYSDATE) > TRUNC (SYSDATE)
                  AND g.alg_locatie_key = l.alg_locatie_key
                  AND l.alg_district_key = d.alg_district_key
                  AND d.alg_regio_key = reg.alg_regio_key
                  AND r.alg_srtruimte_key = sr.alg_srtruimte_key(+)) a
          LEFT JOIN                                    -- divisie(s) op ruimte
                    (SELECT ra.alg_ruimte_key,
                            a1.prs_afdeling_omschrijving || ' [' || a1.prs_afdeling_naam || ']'
                               divisie,
                            ax.prs_afdeling_omschrijving || ' [' || ax.prs_afdeling_naam || ']'
                               afdeling,
                            ra.prs_ruimteafdeling_bezetting afd_bez
                       FROM prs_v_aanwezigruimteafdeling ra,
                            prs_v_afdeling_boom ab,
                            prs_afdeling a1,
                            prs_afdeling ax
                      WHERE ra.prs_afdeling_key = ab.prs_afdeling_key
                            AND ab.prs_afdeling_key1 = a1.prs_afdeling_key
                            AND ab.prs_afdeling_key = ax.prs_afdeling_key) b
             ON a.alg_ruimte_key = b.alg_ruimte_key
          LEFT JOIN                                      -- werkplekken (1143)
                    (SELECT ok.alg_onrgoed_key, ok.alg_onrgoedkenmerk_waarde werkplekken
                       FROM alg_v_aanwezigonrgoedkenmerk ok
                      WHERE ok.alg_kenmerk_key = 1143 AND ok.alg_onrgoed_niveau = 'R') d
             ON a.alg_ruimte_key = d.alg_onrgoed_key
          LEFT JOIN                                         -- personen (1144)
                    (SELECT ok.alg_onrgoed_key, ok.alg_onrgoedkenmerk_waarde personen
                       FROM alg_v_aanwezigonrgoedkenmerk ok
                      WHERE ok.alg_kenmerk_key = 1144 AND ok.alg_onrgoed_niveau = 'R') e
             ON a.alg_ruimte_key = e.alg_onrgoed_key
          LEFT JOIN                                    -- ruimtegebruik (1240)
                    (SELECT ok.alg_onrgoed_key, ud.fac_usrdata_omschr ruimtegebruik
                       FROM alg_v_aanwezigonrgoedkenmerk ok, fac_v_aanwezigusrdata ud
                      WHERE ok.alg_kenmerk_key = 1240 AND ok.alg_onrgoed_niveau = 'R'
                            AND ok.alg_onrgoedkenmerk_waarde = TO_CHAR (ud.fac_usrdata_key)) f
             ON a.alg_ruimte_key = f.alg_onrgoed_key
          LEFT JOIN                          -- bezettingstotaal (NULL of >0!)
                    (  SELECT ra.alg_ruimte_key, SUM (ra.prs_ruimteafdeling_bezetting) tot_bez
                         FROM prs_v_aanwezigruimteafdeling ra
                        WHERE ra.prs_ruimteafdeling_bezetting > 0
                     GROUP BY ra.alg_ruimte_key) g
             ON a.alg_ruimte_key = g.alg_ruimte_key
          LEFT JOIN                                   -- adres info bij gebouw
                    (SELECT g.alg_gebouw_key, a.mld_adres_bezoek_plaats gemeente, a.mld_adres_bezoek_adres adres
                       FROM alg_gebouw g, mld_adres a
                      WHERE g.mld_adres_key = a.mld_adres_key AND a.mld_adres_verwijder IS NULL) y
             ON a.gebouw_key = y.alg_gebouw_key;

-- UWVA#22204: Per UWVA66 HV-export/doorbelasting ontmanteld; alleen HV_DUMP-
-- export (voorheen bijeffect) blijft nu nog gewenst!
/* Formatted on 31-8-2015 9:48:12 (QP5 v5.136.908.31019) */
CREATE OR REPLACE VIEW uwva_v_export_hv_dump
(
   RESULT,
   result_order
)
AS
   SELECT    '"District";'
          || '"Gebouw";'
          || '"Gemeente";'
          || '"Adres";'
          || '"Verdieping";'
          || '"Ruimtenr";'
          || '"Divisie";'
          || '"Afdeling";'
          || '"Ruimtesoort";'
          || '"Ruimtegebruik";'
          || '"NEN2580_opp";'
          || '"Vloer_opp";'
          || '"Bezetting";'
          || '"Werkplekken";'
          || '"Personen"',
          TO_CHAR (0, 'FM00000009')
     FROM DUAL
   UNION ALL
   SELECT    '"'
          || x.district
          || '";"'
          || x.gebouw
          || '";"'
          || COALESCE (y.gemeente, x.plaats)
          || '";"'
          || COALESCE (y.adres, x.adres)
          || '";"'
          || x.verdieping
          || '";"'
          || x.ruimtenr
          || '";"'
          || x.divisie
          || '";"'
          || x.afdeling
          || '";"'
          || x.ruimtesoort
          || '";"'
          || x.ruimtegebruik
          || '";"'
          || REPLACE (TO_CHAR (ROUND (x.nen2580_opp, 2)), '.', ',')
          || '";"'
          || REPLACE (TO_CHAR (ROUND (x.vloer_opp, 2)), '.', ',')
          || '";"'
          || TO_CHAR (100 * ROUND (x.bezetting, 2))
          || '%'
          || '";"'
          || x.werkplekken
          || '";"'
          || x.personen
          || '"',
          TO_CHAR (x.alg_ruimte_key, 'FM00000009')
     FROM ( (SELECT a.alg_gebouw_key,
                    a.gebouw,
                    a.district,
                    a.verdieping,
                    a.alg_ruimte_key,
                    a.ruimtenr,
                    a.alg_locatie_adres adres,
                    a.alg_locatie_plaats plaats,
                    b.divisie,
                    b.afdeling,
                    a.ruimtesoort,
                    f.ruimtegebruik,
                    DECODE (
                       a.nen2580_opp,
                       NULL, NULL,
                       (a.nen2580_opp * COALESCE (b.afd_bez, 1))
                       / COALESCE (g.tot_bez, 1))
                       nen2580_opp,
                    DECODE (
                       a.vloer_opp,
                       NULL, NULL,
                       (a.vloer_opp * COALESCE (b.afd_bez, 1))
                       / COALESCE (g.tot_bez, 1))
                       vloer_opp,
                    COALESCE (b.afd_bez, 0) / COALESCE (g.tot_bez, 1)
                       bezetting,
                    d.werkplekken,
                    e.personen
               FROM (SELECT r.alg_ruimte_key,
                            r.alg_ruimte_nr ruimtenr,
                            v.alg_verdieping_code verdieping,
                            g.alg_gebouw_key,
                            g.alg_gebouw_code gebouw,
                            l.alg_locatie_adres,
                            l.alg_locatie_plaats,
                            d.alg_district_omschrijving district,
                            sr.alg_srtruimte_omschrijving ruimtesoort,
                            r.alg_ruimte_bruto_vloeropp nen2580_opp,
                            r.alg_ruimte_opp_alt1 vloer_opp
                       FROM alg_v_aanwezigruimte r,
                            alg_verdieping v,
                            alg_gebouw g,
                            alg_locatie l,
                            alg_district d,
                            alg_srtruimte sr
                      WHERE     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
                            AND l.alg_district_key = d.alg_district_key
                            AND r.alg_srtruimte_key = sr.alg_srtruimte_key(+)) a
                    LEFT JOIN                          -- divisie(s) op ruimte
                              (SELECT ra.alg_ruimte_key,
                                         afd.prs_afdeling_omschrijving
                                      || ' ['
                                      || afd.prs_afdeling_naam
                                      || ']'
                                         divisie,
                                      (SELECT    a1.prs_afdeling_omschrijving
                                              || ' ['
                                              || a1.prs_afdeling_naam
                                              || ']'
                                         FROM prs_afdeling a1
                                        WHERE a1.prs_afdeling_key = ra.prs_afdeling_key)
                                         afdeling,
                                      ra.prs_ruimteafdeling_bezetting afd_bez
                                 FROM prs_v_aanwezigruimteafdeling ra, prs_v_afdeling_boom ab, prs_afdeling afd
                                WHERE ra.prs_afdeling_key = ab.prs_afdeling_key
                                      AND ab.prs_afdeling_key1 = afd.prs_afdeling_key) b
                       ON a.alg_ruimte_key = b.alg_ruimte_key
                    LEFT JOIN                            -- werkplekken (1143)
                              (SELECT ok.alg_onrgoed_key, ok.alg_onrgoedkenmerk_waarde werkplekken
                                 FROM alg_v_aanwezigonrgoedkenmerk ok
                                WHERE ok.alg_kenmerk_key = 1143
                                      AND ok.alg_onrgoed_niveau = 'R') d
                       ON a.alg_ruimte_key = d.alg_onrgoed_key
                    LEFT JOIN                               -- personen (1144)
                              (SELECT ok.alg_onrgoed_key, ok.alg_onrgoedkenmerk_waarde personen
                                 FROM alg_v_aanwezigonrgoedkenmerk ok
                                WHERE ok.alg_kenmerk_key = 1144
                                      AND ok.alg_onrgoed_niveau = 'R') e
                       ON a.alg_ruimte_key = e.alg_onrgoed_key
                    LEFT JOIN                          -- ruimtegebruik (1240)
                              (SELECT ok.alg_onrgoed_key, ud.fac_usrdata_omschr ruimtegebruik
                                 FROM alg_v_aanwezigonrgoedkenmerk ok, fac_v_aanwezigusrdata ud
                                WHERE ok.alg_kenmerk_key = 1240
                                      AND ok.alg_onrgoed_niveau = 'R'
                                      AND fac.safe_to_number (ok.alg_onrgoedkenmerk_waarde) = ud.fac_usrdata_key) f
                       ON a.alg_ruimte_key = f.alg_onrgoed_key
                    LEFT JOIN                -- bezettingstotaal (NULL of >0!)
                              (  SELECT ra.alg_ruimte_key, SUM (ra.prs_ruimteafdeling_bezetting) tot_bez
                                   FROM prs_v_aanwezigruimteafdeling ra
                                  WHERE ra.prs_ruimteafdeling_bezetting > 0
                               GROUP BY ra.alg_ruimte_key) g
                       ON a.alg_ruimte_key = g.alg_ruimte_key) x
           LEFT JOIN                                  -- adres info bij gebouw
                     (SELECT g.alg_gebouw_key, a.mld_adres_bezoek_plaats gemeente, a.mld_adres_bezoek_adres adres
                        FROM alg_gebouw g, mld_adres a
                       WHERE g.mld_adres_key = a.mld_adres_key) y
              ON x.alg_gebouw_key = y.alg_gebouw_key
           LEFT JOIN      -- huurcontract info bij gebouw; soms >1 per gebouw!
                     (SELECT DISTINCT g.alg_locatie_key, g.alg_gebouw_key, kc.cnt_kenmerkcontract_waarde actief
                        FROM cnt_contract cc, cnt_contract_plaats ccp, alg_gebouw g, cnt_kenmerkcontract kc
                       WHERE     cc.ins_discipline_key = 198   -- huurcontract
                             AND cc.cnt_contract_key = ccp.cnt_contract_key
                             AND ccp.cnt_contract_plaats_verwijder IS NULL
                             AND ccp.cnt_alg_plaats_code = 'G'
                             AND ccp.cnt_alg_plaats_key = g.alg_gebouw_key
                             AND cc.cnt_contract_key = kc.cnt_contract_key
                             AND kc.cnt_kenmerkcontract_verwijder IS NULL
                             AND kc.cnt_kenmerk_key = 184            -- actief
                             AND kc.cnt_kenmerkcontract_waarde = '1221') z -- ja
              ON x.alg_gebouw_key = z.alg_gebouw_key
           LEFT JOIN    -- UWVA#32037: uitzondering voor gebouwen onder AMSD2!
                    alg_gebouw uitz
              ON x.alg_gebouw_key = uitz.alg_gebouw_key
                 AND uitz.alg_locatie_key = 79                        -- AMSD2
                 AND EXISTS
                       (SELECT 1
                          FROM cnt_contract cc, cnt_contract_plaats ccp, alg_gebouw g, cnt_kenmerkcontract kc
                         WHERE     cc.ins_discipline_key = 198 -- huurcontract
                               AND cc.cnt_contract_key = ccp.cnt_contract_key
                               AND ccp.cnt_contract_plaats_verwijder IS NULL
                               AND ccp.cnt_alg_plaats_code = 'G'
                               AND ccp.cnt_alg_plaats_key = g.alg_gebouw_key
                               AND cc.cnt_contract_key = kc.cnt_contract_key
                               AND kc.cnt_kenmerkcontract_verwijder IS NULL
                               AND kc.cnt_kenmerk_key = 184          -- actief
                               AND kc.cnt_kenmerkcontract_waarde = '1221'
                               AND g.alg_locatie_key = uitz.alg_locatie_key))
    WHERE (z.actief = '1221' OR uitz.alg_locatie_key = 79)  -- actief of AMSD2
          AND x.ruimtenr <> '000';


---------------------------------------------------------------------------
-- CAD SYNCHRONISATIE views
-- Er worden per gebouw verschillende ruimtenummeringsconventies gebruikt
-- Per conventie is er een sync-view, die afhankelijk van een gebouwkenmerk
-- (key=1040) wordt toegepast.
--
-- Als in de database het ruimtenummer Rn is en het verdiepingsvolgnr Vn,
-- dan herkennen we deze labels in de tekening
1	   [0]Vn.Rn           als 0<Vn<10 (dus niet Vn=-1), dan prefix met 0
2	   Vc.Rn
3	   Rn
--
CREATE OR REPLACE VIEW uwva_v_sync_alg_ruimte_cols (alg_ruimte_key,
                                                    alg_verdieping_key,
                                                    cadlabel1,
                                                    cadlabel2,
                                                    cadlabel3
                                                   )
AS
   SELECT r.alg_ruimte_key, r.alg_verdieping_key,
             SUBSTR ('0' || v.alg_verdieping_volgnr, -2)
          || '.'
          || r.alg_ruimte_nr n1,                       -- in tekening vv.<rnr>
          v.alg_verdieping_code || '.' || r.alg_ruimte_nr n2,    -- <vc>.<rnr>
          r.alg_ruimte_nr n3                                          -- <rnr>
     FROM alg_v_aanwezigruimte r, alg_verdieping v
    WHERE r.alg_verdieping_key = v.alg_verdieping_key
/

CREATE OR REPLACE VIEW uwva_v_sync_alg_ruimte (alg_ruimte_key,
                                               alg_verdieping_key,
                                               cadlabel
                                              )
AS
   SELECT s.alg_ruimte_key, s.alg_verdieping_key,
          DECODE (k.alg_onrgoedkenmerk_waarde,
                  1, s.cadlabel1,
                  2, s.cadlabel2,
                  3, s.cadlabel3,
                  s.cadlabel1
                 ) cadlabel
     FROM uwva_v_sync_alg_ruimte_cols s,
          alg_verdieping v,
          alg_onrgoedkenmerk k
    WHERE s.alg_verdieping_key = v.alg_verdieping_key
      AND v.alg_gebouw_key = k.alg_onrgoed_key
      AND k.alg_kenmerk_key = 1040
/


CREATE OR REPLACE view uwva_v_locaties AS
SELECT    cnt_contract_key, l.alg_locatie_code locatie
            FROM CNT_CONTRACT_PLAATS, ALG_LOCATIE l
           WHERE cnt_alg_plaats_key = l.alg_locatie_key
             AND cnt_alg_plaats_code = 'L'
             AND cnt_contract_plaats_verwijder IS NULL
        UNION ALL
        SELECT  cnt_contract_key, g.alg_gebouw_code
            FROM CNT_CONTRACT_PLAATS, ALG_LOCATIE l, ALG_GEBOUW g
           WHERE cnt_alg_plaats_code = 'G'
             AND cnt_alg_plaats_key = g.alg_gebouw_key
             AND g.alg_locatie_key = l.alg_locatie_key
             AND cnt_contract_plaats_verwijder IS NULL;
/


create or replace view uwva_v_rap_contract as
SELECT fac.safe_to_number(cnt_contract_nummer) HIDE_F_externnr, cc.ins_discipline_key FCLT_3D_DISCIPLINE_KEY,
       cnt_contract_nummer nr,
       cc.cnt_contract_key HIDE_F_contract_key,
       cnt_contract_omschrijving beschrijving,
       cs.ins_discipline_omschrijving FCLT_F_contractsoort,
       'verlopen' FCLT_F_status,
       TO_CHAR (COALESCE (cnt_contract_looptijd_van, SYSDATE),
                'DD-MM-YYYY'
               ) ingangsdatum,
       TO_CHAR (COALESCE (cnt.cnt_getRappeldatum(cc.cnt_contract_key),
                          COALESCE (cnt_contract_looptijd_tot, SYSDATE)
                         ),
                'DD-MM-YYYY'
               ) rappeldatum,
       TO_CHAR (COALESCE (cnt.cnt_getOpzegdatum(cc.cnt_contract_key),
                          COALESCE (cnt_contract_looptijd_tot, SYSDATE)
                         ),
                'DD-MM-YYYY'
               ) opzegdatum,
       TO_CHAR (COALESCE (cnt_contract_looptijd_tot, SYSDATE),
                'DD-MM-YYYY'
               ) einddatum,
       (SELECT d.prs_afdeling_naam6
        FROM prs_v_aanwezigafdeling d
        WHERE d.prs_afdeling_key = cc.PRS_AFDELING_KEY_EIG) eigenaar,
       (SELECT    p.prs_perslid_naam
               || DECODE (NVL (p.prs_perslid_voorletters, ''),
                          '', '',
                          ', ' || p.prs_perslid_voorletters
                         )
               || DECODE (NVL (p.prs_perslid_tussenvoegsel, ''),
                          '', '',
                          ' ' || p.prs_perslid_tussenvoegsel
                         )
               || DECODE (NVL (p.prs_perslid_voornaam, ''),
                          '', '',
                          ' (' || p.prs_perslid_voornaam || ')'
                         )
          FROM PRS_PERSLID p
         WHERE p.prs_perslid_key = cc.prs_perslid_key_beh) beheerder,
        (SELECT prs_bedrijf_naam FROM PRS_BEDRIJF WHERE prs_bedrijf_key = cnt_prs_bedrijf_key) FCLT_F_uitvoerder,
        (SELECT     c.prs_contactpersoon_naam
                 || DECODE (NVL (c.prs_contactpersoon_voorletters, ''),
                            '', '',
                            ', ' || c.prs_contactpersoon_voorletters
                           )
                 || DECODE (NVL (c.prs_contactpersoon_tussenv, ''),
                            '', '',
                            ' ' || c.prs_contactpersoon_tussenv
                           )
                 || DECODE (NVL (c.prs_contactpersoon_voornaam, ''),
                            '', '',
                            ' (' || c.prs_contactpersoon_voornaam || ')'
                           )
                 prs_contactpersoon_naam
            FROM PRS_CONTACTPERSOON c
           WHERE c.PRS_CONTACTPERSOON_KEY = cc.PRS_CONTACTPERSOON_KEY) Contactpersoon,
       (SELECT  k.prs_kostenplaats_nr||' '||k.prs_kostenplaats_omschrijving
        FROM    PRS_KOSTENPLAATS k
        WHERE   k.prs_kostenplaats_key = cc.prs_kostenplaats_key) Kostenplaats,
        cc.CNT_CONTRACT_TERMIJNKOSTEN Termijnbedrag,
        cc.CNT_CONTRACT_KOSTEN Contractbedrag,
       cl.locatie,
       (select  cnt_kenmerkcontract_waarde
        from    uwva_v_kenmerkwaarden k
        where   k.cnt_contract_key = cc.cnt_contract_key
        and     k.ins_discipline_key = cc.ins_discipline_key -- voor de zekerheid
        and     k.cnt_srtkenmerk_upper = 'CONTRACTDOCUMENT') Contractdocument,
       (select  cnt_kenmerkcontract_waarde
        from    uwva_v_kenmerkwaarden k
        where   k.cnt_contract_key = cc.cnt_contract_key
        and     k.ins_discipline_key = cc.ins_discipline_key -- voor de zekerheid
        and     k.cnt_srtkenmerk_upper = 'QRC') QRC,
       (select  cnt_kenmerkcontract_waarde
        from    uwva_v_kenmerkwaarden k
        where   k.cnt_contract_key = cc.cnt_contract_key
        and     k.ins_discipline_key = cc.ins_discipline_key -- voor de zekerheid
        and     k.cnt_srtkenmerk_upper = 'OPMERKING') Opmerking,
       NVL ((SELECT ' '
               FROM prs_kostenplaats k
              WHERE k.prs_kostenplaats_key = cc.prs_kostenplaats_key
                AND k.prs_kostenplaats_nr LIKE '%' || locatie),
            'kostenplaats != locatie'
           )
         || ' ' ||
       NVL ((SELECT ' '
               FROM prs_afdeling a,
                    fac_usrdata fud,
                    fac_usrtab fut,
                    alg_locatie l,
                    alg_district d
              WHERE a.prs_afdeling_key = cc.prs_afdeling_key_eig
                AND fud.fac_usrtab_key = fut.fac_usrtab_key
                AND fut.fac_usrtab_naam = 'servicepunt_kpn'
                AND a.prs_afdeling_naam = fud.fac_usrdata_code
                AND locatie LIKE l.alg_locatie_code || '%'
                AND l.alg_district_key = d.alg_district_key
                AND d.alg_district_omschrijving = fud.fac_usrdata_omschr),
            'eigenaar != locatie'
           ) controle
  FROM CNT_CONTRACT cc, cnt_discipline cs,
       (SELECT cnt_contract_key, MAX(locatie) locatie FROM uwva_v_locaties GROUP BY cnt_contract_key) cl
 WHERE cc.ins_discipline_key = cs.ins_discipline_key
       AND cnt_contract_verwijder IS NULL
       -- AND cc.cnt_contract_key = 441 -- for debug only
       AND cc.cnt_contract_key = cl.cnt_contract_key(+)
       AND cc.cnt_contract_looptijd_tot < SYSDATE
UNION ALL
SELECT fac.safe_to_number(cnt_contract_nummer) HIDE_F_externnr, cc.ins_discipline_key FCLT_3D_DISCIPLINE_KEY,
       cnt_contract_nummer nr,
       cc.cnt_contract_key HIDE_F_contract_key,
       cnt_contract_omschrijving beschrijving,
       cs.ins_discipline_omschrijving FCLT_F_contractsoort,
       'open' FCLT_F_status,
       TO_CHAR (COALESCE (cnt_contract_looptijd_van, SYSDATE),
                'DD-MM-YYYY'
               ) ingangsdatum,
       TO_CHAR (COALESCE (cnt.cnt_getRappeldatum(cc.cnt_contract_key),
                          COALESCE (cnt_contract_looptijd_tot, SYSDATE)
                         ),
                'DD-MM-YYYY'
               ) rappeldatum,
       TO_CHAR (COALESCE (cnt.cnt_getOpzegdatum(cc.cnt_contract_key),
                          COALESCE (cnt_contract_looptijd_tot, SYSDATE)
                         ),
                'DD-MM-YYYY'
               ) opzegdatum,
       TO_CHAR (COALESCE (cnt_contract_looptijd_tot, SYSDATE),
                'DD-MM-YYYY'
               ) einddatum,
       (SELECT d.prs_afdeling_naam6
        FROM prs_v_aanwezigafdeling d
        WHERE d.prs_afdeling_key = cc.PRS_AFDELING_KEY_EIG) eigenaar,
       (SELECT    p.prs_perslid_naam
               || DECODE (NVL (p.prs_perslid_voorletters, ''),
                          '', '',
                          ', ' || p.prs_perslid_voorletters
                         )
               || DECODE (NVL (p.prs_perslid_tussenvoegsel, ''),
                          '', '',
                          ' ' || p.prs_perslid_tussenvoegsel
                         )
               || DECODE (NVL (p.prs_perslid_voornaam, ''),
                          '', '',
                          ' (' || p.prs_perslid_voornaam || ')'
                         )
          FROM PRS_PERSLID p
         WHERE p.prs_perslid_key = cc.prs_perslid_key_beh) beheerder,
        (SELECT prs_bedrijf_naam FROM PRS_BEDRIJF WHERE prs_bedrijf_key = cnt_prs_bedrijf_key) FCLT_F_uitvoerder,
        (SELECT     c.prs_contactpersoon_naam
                 || DECODE (NVL (c.prs_contactpersoon_voorletters, ''),
                            '', '',
                            ', ' || c.prs_contactpersoon_voorletters
                           )
                 || DECODE (NVL (c.prs_contactpersoon_tussenv, ''),
                            '', '',
                            ' ' || c.prs_contactpersoon_tussenv
                           )
                 || DECODE (NVL (c.prs_contactpersoon_voornaam, ''),
                            '', '',
                            ' (' || c.prs_contactpersoon_voornaam || ')'
                           )
                 prs_contactpersoon_naam
            FROM PRS_CONTACTPERSOON c
           WHERE c.PRS_CONTACTPERSOON_KEY = cc.PRS_CONTACTPERSOON_KEY) Contactpersoon,
       (SELECT  k.prs_kostenplaats_nr||' '||k.prs_kostenplaats_omschrijving
        FROM    PRS_KOSTENPLAATS k
        WHERE   k.prs_kostenplaats_key = cc.prs_kostenplaats_key) Kostenplaats,
        cc.CNT_CONTRACT_TERMIJNKOSTEN Termijnbedrag,
        cc.CNT_CONTRACT_KOSTEN Contractbedrag,
       cl.locatie,
       (select  cnt_kenmerkcontract_waarde
        from    uwva_v_kenmerkwaarden k
        where   k.cnt_contract_key = cc.cnt_contract_key
        and     k.ins_discipline_key = cc.ins_discipline_key -- voor de zekerheid
        and     k.cnt_srtkenmerk_upper = 'CONTRACTDOCUMENT') Contractdocument,
       (select  cnt_kenmerkcontract_waarde
        from    uwva_v_kenmerkwaarden k
        where   k.cnt_contract_key = cc.cnt_contract_key
        and     k.ins_discipline_key = cc.ins_discipline_key -- voor de zekerheid
        and     k.cnt_srtkenmerk_upper = 'QRC') QRC,
       (select  cnt_kenmerkcontract_waarde
        from    uwva_v_kenmerkwaarden k
        where   k.cnt_contract_key = cc.cnt_contract_key
        and     k.ins_discipline_key = cc.ins_discipline_key -- voor de zekerheid
        and     k.cnt_srtkenmerk_upper = 'OPMERKING') Opmerking,
       NVL ((SELECT ' '
               FROM prs_kostenplaats k
              WHERE k.prs_kostenplaats_key = cc.prs_kostenplaats_key
                AND k.prs_kostenplaats_nr LIKE '%' || locatie),
            'kostenplaats != locatie'
           )
         || ' ' ||
       NVL ((SELECT ' '
               FROM prs_afdeling a,
                    fac_usrdata fud,
                    fac_usrtab fut,
                    alg_locatie l,
                    alg_district d
              WHERE a.prs_afdeling_key = cc.prs_afdeling_key_eig
                AND fud.fac_usrtab_key = fut.fac_usrtab_key
                AND fut.fac_usrtab_naam = 'servicepunt_kpn'
                AND a.prs_afdeling_naam = fud.fac_usrdata_code
                AND locatie LIKE l.alg_locatie_code || '%'
                AND l.alg_district_key = d.alg_district_key
                AND d.alg_district_omschrijving = fud.fac_usrdata_omschr),
            'eigenaar != locatie'
           ) controle
  FROM CNT_CONTRACT cc, cnt_discipline cs,
       (SELECT cnt_contract_key, MAX(locatie) locatie FROM uwva_v_locaties GROUP BY cnt_contract_key) cl
 WHERE cc.ins_discipline_key = cs.ins_discipline_key
       AND cnt_contract_verwijder IS NULL
       -- AND cc.cnt_contract_key = 441 -- for debug only
       AND cc.cnt_contract_key = cl.cnt_contract_key(+)
       AND cc.cnt_contract_looptijd_tot >= SYSDATE;
/


CREATE OR REPLACE VIEW uwva_v_rap_contractdoc (hide_f_contractkey,
                                               nr,
                                               fclt_f_contractsoort,
                                               externnr,
                                               beschrijving,
                                               eigenaar,
                                               uitvoerder,
                                               contractdocument,
                                               fclt_3d_discipline_key
                                              )
AS
   SELECT   c.cnt_contract_key hide_f_contractkey,
            c.cnt_contract_nummer_intern nr,
            (SELECT ins_discipline_omschrijving
               FROM cnt_discipline cd
              WHERE c.ins_discipline_key =
                                   cd.ins_discipline_key)
                                                         fclt_f_contractsoort,
            c.cnt_contract_nummer externnr,
            c.cnt_contract_omschrijving beschrijving,
            afd.prs_afdeling_naam eigenaar,
            COALESCE (b.prs_bedrijf_naam, afd2.prs_afdeling_naam) uitvoerder,
            (SELECT ckc.cnt_kenmerkcontract_waarde
               FROM cnt_contract c1,
                    cnt_kenmerkcontract ckc,
                    cnt_kenmerk ck
              WHERE c1.cnt_contract_key = ckc.cnt_contract_key
                AND ckc.cnt_kenmerk_key = ck.cnt_kenmerk_key
                AND ck.cnt_srtkenmerk_key = 2
                AND c1.cnt_contract_key = c.cnt_contract_key)
                                                             contractdocument,
            c.ins_discipline_key
       FROM cnt_v_aanwezigcontract c,
            prs_v_aanwezigbedrijf b,
            prs_v_aanwezigafdeling afd,
            prs_v_aanwezigafdeling afd2
      WHERE b.prs_bedrijf_key(+) = c.cnt_prs_bedrijf_key
        AND c.cnt_prs_afdeling_key = afd2.prs_afdeling_key(+)
        AND afd.prs_afdeling_key = c.prs_afdeling_key_eig;


-- UWVA#14362
/* Formatted on 2008/08/11 14:56 (Formatter Plus v4.8.7) */
CREATE OR REPLACE VIEW uwva_v_rap_contractanten (fclt_f_bedrijf,
                                                 post_adres,
                                                 telefoon,
                                                 email,
                                                 alg_contactpers,
                                                 loc,
                                                 loc_contactpers,
                                                 lev_nr,
                                                 overeenkmst,
                                                 fclt_f_div,
                                                 fclt_f_fac,
                                                 fclt_f_hv
                                                )
AS
   (SELECT x.prs_bedrijf_naam,
           DECODE (x.prs_bedrijf_post_adres,
                   NULL, x.prs_bedrijf_post_adres,
                      x.prs_bedrijf_post_adres
                   || ', '
                   || x.prs_bedrijf_post_postcode
                   || ', '
                   || x.prs_bedrijf_post_plaats
                  ),
           x.prs_bedrijf_telefoon, x.prs_bedrijf_email,
           x.prs_bedrijf_contact_persoon bedrijf_cp,
           DECODE (z.alg_locatie_key,
                   NULL, '-',
                   (SELECT l.alg_locatie_code
                      FROM alg_locatie l
                     WHERE l.alg_locatie_key = z.alg_locatie_key)
                  ) locatie,
           COALESCE (z.aantal, '-') aantal_locatie_cp, x.prs_leverancier_nr,
           TO_CHAR (x.prs_overeenkomst_datum, 'dd-mm-yyyy'),
           COALESCE (y1.div, 'N') div, COALESCE (y2.f, 'N') f,
           COALESCE (y3.hv, 'N') hv
      FROM (SELECT b.prs_bedrijf_key, b.prs_bedrijf_naam,
                   b.prs_bedrijf_post_adres, b.prs_bedrijf_post_postcode,
                   b.prs_bedrijf_post_plaats, b.prs_bedrijf_telefoon,
                   b.prs_bedrijf_email, b.prs_bedrijf_contact_persoon,
                   b.prs_leverancier_nr, b.prs_overeenkomst_datum
              FROM prs_bedrijf b
             WHERE b.prs_bedrijf_contract = 1       -- Alleen contractanten!!!
               AND b.prs_bedrijf_verwijder IS NULL) x
           LEFT JOIN
           (SELECT DISTINCT c.cnt_prs_bedrijf_key, 'J' div
                       FROM cnt_contract c
                      WHERE c.cnt_contract_looptijd_tot > SYSDATE
                        AND c.ins_discipline_key = 184
                        AND c.cnt_contract_verwijder IS NULL) y1
           ON x.prs_bedrijf_key = y1.cnt_prs_bedrijf_key
           LEFT JOIN
           (SELECT DISTINCT c.cnt_prs_bedrijf_key, 'J' f
                       FROM cnt_contract c
                      WHERE c.cnt_contract_looptijd_tot > SYSDATE
                        AND c.ins_discipline_key <> 184
                        AND c.ins_discipline_key <> 198
                        AND c.cnt_contract_verwijder IS NULL) y2
           ON x.prs_bedrijf_key = y2.cnt_prs_bedrijf_key
           LEFT JOIN
           (SELECT DISTINCT c.cnt_prs_bedrijf_key, 'J' hv
                       FROM cnt_contract c
                      WHERE c.cnt_contract_looptijd_tot > SYSDATE
                        AND c.ins_discipline_key = 198
                        AND c.cnt_contract_verwijder IS NULL) y3
           ON x.prs_bedrijf_key = y3.cnt_prs_bedrijf_key
           LEFT JOIN
           (SELECT cp.prs_bedrijf_key, cpl.alg_locatie_key,
                   cp.prs_contactpersoon_naam aantal
              FROM prs_contactpersoon cp, prs_contactpersoon_locatie cpl
             WHERE cp.prs_contactpersoon_key = cpl.prs_contactpersoon_key(+)) z
           ON x.prs_bedrijf_key = z.prs_bedrijf_key
           )
/


// PRJ SYNC views
CREATE OR REPLACE FORCE VIEW uwva_v_sync_prj_ruimte_cols (prj_ruimte_key,
                                                               alg_verdieping_key,
                                                               prj_scenario_key,
                                                               cadlabel1,
                                                               cadlabel2,
                                                               cadlabel3
                                                              )
AS
   SELECT r.prj_ruimte_key, r.alg_verdieping_key, prj_scenario_key,
             SUBSTR ('0' || v.alg_verdieping_volgnr, -2)
          || '.'
          || r.prj_ruimte_nr n1,                       -- in tekening vv.<rnr>
          v.alg_verdieping_code || '.' || r.prj_ruimte_nr n2,    -- <vc>.<rnr>
          r.prj_ruimte_nr n3                                          -- <rnr>
     FROM PRJ_RUIMTE r, ALG_VERDIEPING v
    WHERE r.alg_verdieping_key = v.alg_verdieping_key
      AND prj_ruimte_verwijder IS NULL
/

CREATE OR REPLACE FORCE VIEW uwva_v_sync_prj_ruimte (prj_ruimte_key,
                                                     alg_verdieping_key,
                                                     prj_scenario_key,
                                                     cadlabel
                                                    )
AS
   SELECT s.prj_ruimte_key, s.alg_verdieping_key, prj_scenario_key,
          DECODE (k.alg_onrgoedkenmerk_waarde,
                  1, s.cadlabel1,
                  2, s.cadlabel2,
                  3, s.cadlabel3,
                  s.cadlabel1
                 ) cadlabel
     FROM uwva_v_sync_prj_ruimte_cols s,
          ALG_VERDIEPING v,
          ALG_ONRGOEDKENMERK k
    WHERE s.alg_verdieping_key = v.alg_verdieping_key
      AND v.alg_gebouw_key = k.alg_onrgoed_key
      AND k.alg_kenmerk_key = 1040
/


--------------							   HV - Huisvesting                         					-------------------------

--------------							Stap 5: Definitie van thema HV-divisie								-------------------------

-- Stap 5a: Thema HV divisie voor de LFM-ers
/* Formatted on 23-11-2010 17:46:56 (QP5 v5.115.810.9015) */
CREATE OR REPLACE FORCE VIEW uwva_v_thema_ruimte_div
(
   alg_ruimte_key,
   waarde,
   waarde_key
)
AS
   SELECT   x.alg_ruimte_key,
            DECODE (
               y.aantal,
               NULL,
               DECODE (x.verhuur, 0, '[Niet toegewezen]', '[TOE TE WIJZEN!]'),
               1,
               SUBSTR (y.sp, 1, 60),
               '[Meerdere divisies!]'
            ),
            DECODE (y.aantal, NULL, -1, 1, y.sp_key, NULL)
     FROM      (SELECT   r.alg_ruimte_key,
                         COALESCE (sr.prs_verhuurbaar, 0) verhuur,
                         COALESCE (sr.prs_bevat_werkplek, 0) werkplek
                  FROM   alg_v_aanwezigruimte r, alg_srtruimte sr
                 WHERE   r.alg_srtruimte_key = sr.alg_srtruimte_key(+)) x
            LEFT JOIN
               (  SELECT   ra.alg_ruimte_key,
                           MIN (a.prs_afdeling_naam6) sp,
                           MIN (a.prs_afdeling_key) sp_key,
                           COUNT (ra.prs_afdeling_key) aantal
                    FROM   prs_v_aanwezigruimteafdeling ra,
                           prs_v_afdeling_boom b,
                           prs_v_aanwezigafdeling a
                   WHERE   ra.prs_afdeling_key = b.prs_afdeling_key
                           AND b.prs_afdeling_key1 = a.prs_afdeling_key
                GROUP BY   ra.alg_ruimte_key) y
            ON x.alg_ruimte_key = y.alg_ruimte_key
   UNION ALL
   SELECT   NULL, a.prs_afdeling_naam6, a.prs_afdeling_key
     FROM   prs_v_aanwezigafdeling a
    WHERE   a.prs_afdeling_parentkey IS NULL
            AND NOT EXISTS
                  (SELECT   1
                     FROM   prs_v_aanwezigruimteafdeling ra,
                            prs_v_afdeling_boom b
                    WHERE   ra.prs_afdeling_key = b.prs_afdeling_key
                            AND b.prs_afdeling_key1 = a.prs_afdeling_key)
   UNION ALL
   SELECT   DISTINCT
            NULL, a.prs_afdeling_naam6 waarde, a.prs_afdeling_key waarde_key
     FROM   (SELECT   DISTINCT ra.prs_afdeling_key
               FROM   prs_v_aanwezigruimteafdeling ra
             MINUS
             SELECT   DISTINCT ra.prs_afdeling_key
               FROM   prs_v_aanwezigruimteafdeling ra, alg_v_aanwezigruimte r
              WHERE   ra.alg_ruimte_key IN
                            (SELECT   alg_ruimte_key
                               FROM   (  SELECT   alg_ruimte_key,
                                                  COUNT ( * ) aantal
                                           FROM   prs_v_aanwezigruimteafdeling
                                       GROUP BY   alg_ruimte_key)
                              WHERE   aantal = 1)
                      AND ra.alg_ruimte_key = r.alg_ruimte_key) x,
            prs_v_afdeling_boom b,
            prs_v_aanwezigafdeling a
    WHERE   x.prs_afdeling_key = b.prs_afdeling_key
            AND b.prs_afdeling_key1 = a.prs_afdeling_key;

-- Stap 5a: Bijbehorend Labelthema HV-divisie voor de LFM-ers
CREATE OR REPLACE FORCE VIEW uwva_v_label_ruimte_div(alg_ruimte_key,waarde)
AS SELECT	alg_ruimte_key,  waarde FROM uwva_v_thema_ruimte_div;
/

-- Stap 5b: Actie/trigger bij sleur+pleur van thema HV-divisie
CREATE OR REPLACE TRIGGER uwva_t_thema_ruimte_div_i_iu
   INSTEAD OF INSERT OR UPDATE
   ON uwva_v_thema_ruimte_div
DECLARE
   v_prs_afdeling_key	PRS_AFDELING.prs_afdeling_key%TYPE;
   v_verhuurbaar ALG_SRTRUIMTE.prs_verhuurbaar%TYPE;
BEGIN
 	 v_prs_afdeling_key := -1;
   IF UPDATING                                                     -- oude hard weggooien; dus DELETE (lekker opruimen)!
   THEN
   		BEGIN
			 		-- Is de ruimte al gekoppeld aan een afdeling EN die afdeling valt onder de nieuwe divisie, dan niets doen!
			 		-- Is die gekoppeld aan een andere divisie of aan een afdeling van een andere divisie of oude=nieuwe divisie,
			 		-- dan deleten!
			 		SELECT 	b.prs_afdeling_key1
			 		INTO  	v_prs_afdeling_key
			 		FROM  	prs_v_aanwezigruimteafdeling ra, prs_v_afdeling_boom b
          WHERE 	ra.alg_ruimte_key = :new.alg_ruimte_key
          AND 		ra.prs_afdeling_key = b.prs_afdeling_key
          AND     b.prs_afdeling_key1 = :new.waarde_key
          AND     b.prs_afdeling_key <> b.prs_afdeling_key1;
			EXCEPTION
						-- Hier is de nieuwe divisie: of gelijk aan de oude divisie,
						--                            of ongelijk aan de oude divisie,
						--                            of gelijk aan de divisie waar nu een afdeling onder hangt
            WHEN OTHERS
            THEN DELETE FROM   prs_ruimteafdeling
          			 WHERE   alg_ruimte_key = :new.alg_ruimte_key AND prs_afdeling_key <> :new.waarde_key;

      END;
   END IF;

   BEGIN
   		-- Indien nieuwe waarde <> -1 (dit is een dummy divisie zoals [Niet toegewezen] en [TOE TE WIJZEN] en [Meedere divisies]
   		-- Of indien nieuwe waarde (nieuwe divisie) is ongelijk aan de divisie van de oude afdeling
      IF  :new.waarde_key <> v_prs_afdeling_key
      THEN
      	 SELECT COALESCE(sr.prs_verhuurbaar, 0)
      	 INTO   v_verhuurbaar
         FROM   alg_v_aanwezigruimte r, alg_srtruimte sr
         WHERE  r.alg_ruimte_key = :new.alg_ruimte_key
         AND    r.alg_srtruimte_key = sr.alg_srtruimte_key (+);

				 -- Alleen indien ruimte verhuurbaar is, dan mag (pseudo)divisie eraan worden toegekend.
      	 IF v_verhuurbaar = 1
      	 THEN
         		INSERT INTO prs_ruimteafdeling (alg_ruimte_key, prs_afdeling_key)
         		VALUES   (:new.alg_ruimte_key, :new.waarde_key);
         END IF;
      END IF;
   EXCEPTION
      WHEN NO_DATA_FOUND
      THEN NULL;

      WHEN DUP_VAL_ON_INDEX                                                                           -- was al aanwezig
      THEN NULL;
   END;

    -- ALGCAD tracking gebeurt in legenda_create.asp
END;
/

--------------							Stap 6: Definitie van thema HV-afdeling								-------------------------

-- Stap 6a: Thema HV afdeling (voor de controllers)
/* Formatted on 23-11-2010 17:58:38 (QP5 v5.115.810.9015) */
CREATE OR REPLACE FORCE VIEW uwva_v_thema_ruimte_afd
(
   alg_ruimte_key,
   waarde,
   waarde_key
)
AS
   SELECT   x.alg_ruimte_key,
            DECODE (
               y.aantal,
               NULL,
               DECODE (x.verhuur, 0, '[Niet verhuurbaar]', '[GEEN DIVISIE!]'),
               1,
               DECODE (y.afd,
                       0, '[Geen afdeling toegewezen]',
                       SUBSTR (y.sp, 1, 60)),
               '[Meerdere afdelingen!]'
            ),
            DECODE (y.aantal,
                    NULL, DECODE (x.verhuur, 0, -1, NULL),
                    1, DECODE (y.afd, 0, -1, y.sp_key),
                    NULL)
     FROM      (SELECT   r.alg_ruimte_key,
                         COALESCE (sr.prs_verhuurbaar, 0) verhuur,
                         COALESCE (sr.prs_bevat_werkplek, 0) werkplek
                  FROM   alg_v_aanwezigruimte r, alg_srtruimte sr
                 WHERE   r.alg_srtruimte_key = sr.alg_srtruimte_key(+)) x
            LEFT JOIN
               (  SELECT   ra.alg_ruimte_key,
                           MIN (a.prs_afdeling_naam6) sp,
                           MIN (a.prs_afdeling_key) sp_key,
                           COUNT (ra.prs_afdeling_key) aantal,
                           MAX (NVL (a.prs_afdeling_parentkey, 0)) afd
                    FROM   prs_v_aanwezigruimteafdeling ra,
                           prs_v_aanwezigafdeling a
                   WHERE   ra.prs_afdeling_key = a.prs_afdeling_key
                GROUP BY   ra.alg_ruimte_key) y
            ON x.alg_ruimte_key = y.alg_ruimte_key
   UNION ALL
   SELECT   NULL, a.prs_afdeling_naam6, a.prs_afdeling_key
     FROM   prs_v_aanwezigafdeling a
    WHERE   a.prs_afdeling_parentkey IS NOT NULL
            AND NOT EXISTS
                  (SELECT   ra.prs_afdeling_key
                     FROM   prs_v_aanwezigruimteafdeling ra
                    WHERE   ra.prs_afdeling_key = a.prs_afdeling_key)
   UNION ALL
   SELECT   DISTINCT
            NULL, a.prs_afdeling_naam6 waarde, a.prs_afdeling_key waarde_key
     FROM   (SELECT   DISTINCT ra.prs_afdeling_key
               FROM   prs_v_aanwezigruimteafdeling ra
             MINUS
             SELECT   DISTINCT ra.prs_afdeling_key
               FROM   prs_v_aanwezigruimteafdeling ra, alg_v_aanwezigruimte r
              WHERE   ra.alg_ruimte_key IN
                            (SELECT   alg_ruimte_key
                               FROM   (  SELECT   alg_ruimte_key,
                                                  COUNT ( * ) aantal
                                           FROM   prs_v_aanwezigruimteafdeling
                                       GROUP BY   alg_ruimte_key)
                              WHERE   aantal = 1)
                      AND ra.alg_ruimte_key = r.alg_ruimte_key) x,
            prs_v_aanwezigafdeling a
    WHERE   x.prs_afdeling_key = a.prs_afdeling_key;

-- Stap 6a: Bijbehorend LabelThema HV afdeling (voor de controllers)
CREATE OR REPLACE FORCE VIEW uwva_v_label_ruimte_afd (alg_ruimte_key,waarde)
AS SELECT	alg_ruimte_key, waarde FROM uwva_v_thema_ruimte_afd;
/

-- Stap 6b: Actie/trigger bij sleur+pleur van thema HV-afdeling
CREATE OR REPLACE TRIGGER uwva_t_thema_ruimte_afd_i_iu
   INSTEAD OF INSERT OR UPDATE
   ON uwva_v_thema_ruimte_afd
DECLARE
   v_prs_afdeling_key	PRS_AFDELING.prs_afdeling_key%TYPE;
   v_bezetting        PRS_RUIMTEAFDELING.prs_ruimteafdeling_bezetting%TYPE;
BEGIN
 	 v_prs_afdeling_key := -1;


   IF UPDATING                                                     -- oude hard weggooien; dus DELETE (lekker opruimen)!
   THEN

   	BEGIN
			 		-- Is de ruimte nog niet gekoppeld, dan mag de afdeling niet worden gekoppeld (eerst moet LFM de divisie bepalen)
			 		-- Is de ruimte wel gekoppeld, aan een divisie, dan alleen afdeling geoorloofd die onder die divisie valt
			 		-- Is de ruimte wel gekoppeld, aan een afdeling, dan alleen een afdeling geoorloofd die onder dezelfde divisie valt
			 		-- Is de ruimte wel gekoppeld, en de afdeling wordt geleegd ([Niet toegewezen] of zo), dan valt de ruimte terug op divisie

			 		-- Is de ruimte al gekoppeld aan een afdeling EN die afdeling valt onder de nieuwe divisie, dan niets doen!
			 		-- Is die gekoppeld aan een andere divisie of aan een afdeling van een andere divisie of oude=nieuwe divisie,
			 		-- dan deleten!

	 				-- Selecteer de oude divisie/afdeling key en bijbehorende bezettingspercentage van de nieuwe afdeling
			 		SELECT 	ra.prs_afdeling_key, ra.prs_ruimteafdeling_bezetting
			 		INTO  	v_prs_afdeling_key, v_bezetting
			 		FROM  	prs_v_aanwezigruimteafdeling ra, prs_v_afdeling_boom b
		      WHERE 	ra.alg_ruimte_key = :new.alg_ruimte_key
		      AND 		b.prs_afdeling_key = :new.waarde_key
		      AND     b.prs_afdeling_key1 = (select b2.prs_afdeling_key1 from prs_v_afdeling_boom b2 where b2.prs_afdeling_key = ra.prs_afdeling_key)
		      AND     b.prs_afdeling_key <> ra.prs_afdeling_key;

    			-- Verwijder de koppeling naar het "broertje-afdeling" of de koppeling naar de divisie van de nieuwe afdeling.
      		UPDATE prs_ruimteafdeling
          SET prs_afdeling_key = :new.waarde_key
          WHERE   alg_ruimte_key = :new.alg_ruimte_key
          AND prs_afdeling_key = v_prs_afdeling_key;


    EXCEPTION
						-- Hier is de nieuwe afdeling niet geoorloofd: of geen divisie, of geen afdeling, of dezelfde afdeling
					WHEN OTHERS
          THEN NULL;
    END;

   END IF;

   BEGIN
      IF :new.waarde_key = -1
      THEN
      		UPDATE prs_ruimteafdeling ra
          SET ra.prs_afdeling_key = (	SELECT b.prs_afdeling_key1
          														FROM   prs_v_afdeling_boom b
          														WHERE  b.prs_afdeling_key = ra.prs_afdeling_key
          													)
          WHERE   ra.alg_ruimte_key = :new.alg_ruimte_key;



         -- INSERT INTO prs_ruimteafdeling (alg_ruimte_key, prs_afdeling_key)
         -- VALUES   (:new.alg_ruimte_key, :new.waarde_key);
      END IF;
   EXCEPTION
      WHEN OTHERS                                                                      -- was al aanwezig
      THEN
         NULL;
   END;

    -- ALGCAD tracking gebeurt in legenda_create.asp
END;
/

--------------							Stap 9: HERdefinitie van bestaande UWV-views en gegevens				-------------------------

-- UWVA.SQL: Stap 9a: Thema's ruimtegebruik en ruimtsoort ook wisselene

CREATE OR REPLACE VIEW uwva_v_thema_hvruimtesoort (alg_ruimte_key, waarde, waarde_key)
AS
SELECT r.alg_ruimte_key,
       COALESCE (sr.alg_srtruimte_omschrijving, 'ONGEDEFINIEERD'),
       r.alg_srtruimte_key
  FROM alg_v_aanwezigruimte r, alg_srtruimte sr
 WHERE r.alg_srtruimte_key = sr.alg_srtruimte_key(+);
/

-- mbmb
-- Stap 9a: Actie/trigger bij sleur+pleur van thema HV-ruimtesoort
CREATE OR REPLACE TRIGGER uwva_t_thema_hvruimtesoort_iu
   INSTEAD OF INSERT OR UPDATE
   ON uwva_v_thema_hvruimtesoort
DECLARE
BEGIN
   UPDATE alg_ruimte r
   SET r.alg_srtruimte_key = :new.waarde_key
   WHERE r.alg_ruimte_key = :new.alg_ruimte_key;

   EXCEPTION
      WHEN OTHERS
      THEN NULL;
END;
/

-- UWVA.SQL: Stap 9d: Thema ruimtegebruik is nu flexprop (was voorheen ruimtesoort)
/* Formatted on 17-11-2009 16:22:42 (QP5 v5.115.810.9015) */
CREATE OR REPLACE VIEW uwva_v_thema_hvruimtegebruik
(
   alg_ruimte_key,
   waarde,
   waarde_key
)
AS
   SELECT   x.alg_ruimte_key,
            COALESCE (y.fac_usrdata_omschr, 'ONGEDEFINIEERD'),
            y.fac_usrdata_key
     FROM      (SELECT   r.alg_ruimte_key
                  FROM   alg_v_aanwezigruimte r) x
            LEFT JOIN
               (SELECT   ok.alg_onrgoed_key,
                         ud.fac_usrdata_omschr,
                         ud.fac_usrdata_key
                  FROM   alg_kenmerk k, alg_onrgoedkenmerk ok, fac_usrdata ud
                 WHERE       k.alg_kenmerk_omschrijving = 'Ruimtegebruik'
                         AND k.alg_kenmerk_key = ok.alg_kenmerk_key
                         AND ud.fac_usrdata_verwijder IS NULL
                         AND fac.safe_to_number (
                               ok.alg_onrgoedkenmerk_waarde
                            ) = ud.fac_usrdata_key) y
            ON x.alg_ruimte_key = y.alg_onrgoed_key;

/

-- UWVA#18099 aangepast
-- Stap 9d: Actie/trigger bij sleur+pleur van thema HV-ruimtegebruik
/* Formatted on 17-11-2009 16:24:10 (QP5 v5.115.810.9015) */
CREATE OR REPLACE TRIGGER uwva_t_thema_hvruimtegebr_iu
   INSTEAD OF INSERT OR UPDATE
   ON uwva_v_thema_hvruimtegebruik
DECLARE
   v_ruimte_omschr alg_ruimte.alg_ruimte_omschrijving%TYPE;
BEGIN
   DELETE FROM   alg_onrgoedkenmerk ok
         WHERE   ok.alg_kenmerk_key = (SELECT   alg_kenmerk_key
                                         FROM   alg_kenmerk
                                        WHERE   alg_kenmerk_omschrijving = 'Ruimtegebruik')
                 AND ok.alg_onrgoed_key = :new.alg_ruimte_key;

   IF :new.waarde_key IS NOT NULL
   THEN
      INSERT INTO alg_onrgoedkenmerk ok (ok.alg_kenmerk_key, ok.alg_onrgoed_niveau, ok.alg_onrgoed_key, ok.alg_onrgoedkenmerk_waarde
                                        )
         SELECT   alg_kenmerk_key, 'R', :new.alg_ruimte_key, :new.waarde_key
           FROM   alg_kenmerk
          WHERE   alg_kenmerk_omschrijving = 'Ruimtegebruik';

      SELECT   SUBSTR (ud.fac_usrdata_omschr, 1, 30)
        INTO   v_ruimte_omschr
        FROM   alg_kenmerk k, alg_onrgoedkenmerk ok, fac_usrdata ud
       WHERE       ok.alg_onrgoed_key = :new.alg_ruimte_key
               AND ok.alg_onrgoed_niveau = 'R'
               AND k.alg_kenmerk_omschrijving = 'Ruimtegebruik'
               AND k.alg_kenmerk_key = ok.alg_kenmerk_key
               AND fac.safe_to_number (ok.alg_onrgoedkenmerk_waarde) = ud.fac_usrdata_key;

      UPDATE   alg_ruimte
         SET   alg_ruimte_omschrijving = v_ruimte_omschr
       WHERE   alg_ruimte_key = :new.alg_ruimte_key;

      -- Ruimtefunctie auto aanpassen a.d.h.v gekozen ruimtegebruik (:new.waarde_key)
      UPDATE   alg_ruimte
         SET   alg_srtruimte_key =
                  COALESCE (
                     (SELECT   fac.safe_to_number (fac_usrdata_omschr)
                        FROM   fac_usrdata ud
                       WHERE       fac_usrtab_key = 551                                              -- HVRUIMTEGEBRUIK
                               AND fac_usrdata_code = fac.safe_to_number (:new.waarde_key)
                               AND fac_usrdata_verwijder IS NULL),
                     alg_srtruimte_key
                  )
       WHERE   alg_ruimte_key = :new.alg_ruimte_key;
   END IF;
EXCEPTION
   WHEN OTHERS
   THEN
      raise_application_error (-20000, 'uwva_m18099 Deze ruimtegebruik/-soort aanpassing is niet geldig.');
END;
/

--------------							Stap 10: Definities van nieuwe rapportages		    		-------------------------

/* Formatted on 1-10-2010 13:40:44 (QP5 v5.136.908.31019) */
-- Presenteert de mismatch tussen ruimtegeruik en ruimtesoort,die via usertabel 551
-- aan elkaar gerelateerd zijn (UWVA#18099)
/* Formatted on 1-10-2010 13:58:31 (QP5 v5.136.908.31019) */
CREATE OR REPLACE FORCE VIEW uwva_v_rap_hv_rsoortmismatch
(
   ruimte,
   ruimteomschrijving,
   ruimtegebruik,
   fclt_f_is,
   fclt_f_moet_zijn,
   vvo,
   fclt_f_impact,
   fclt_3d_locatie_key
)
AS
   SELECT   p.alg_plaatsaanduiding ruimte,
            alg_ruimte_omschrijving ruimteomschrijving,
            ud.fac_usrdata_omschr ruimtegebruik,
            sr.alg_srtruimte_omschrijving isruimtesoort,
            sr2.alg_srtruimte_omschrijving moetzijnruimtesoort,
            r.alg_ruimte_opp_alt1,
            DECODE (COALESCE (sr.prs_bevat_werkplek, 0) + COALESCE (sr2.prs_bevat_werkplek, 0), 1, 'x', '')
               fclt_f_impact,
            g.alg_locatie_key fclt_3d_locatie_key
     FROM   alg_v_aanwezigruimte r,
            alg_onrgoedkenmerk k,
            fac_usrdata ud,
            alg_srtruimte sr,
            alg_srtruimte sr2,
            alg_v_plaatsaanduiding p,
            alg_verdieping v,
            alg_gebouw g
    WHERE       k.alg_kenmerk_key = 1240                                                                -- ruimtegebruik
            AND k.alg_onrgoed_niveau = 'R'
            AND k.alg_onrgoed_key = r.alg_ruimte_key
            AND fac.safe_to_number (k.alg_onrgoedkenmerk_waarde) = ud.fac_usrdata_key
            AND p.alg_onroerendgoed_keys = r.alg_ruimte_key
            AND p.alg_onroerendgoed_type = 'R'
            AND sr.alg_srtruimte_key = r.alg_srtruimte_key
            AND r.alg_verdieping_key = v.alg_verdieping_key
            AND v.alg_gebouw_key = g.alg_gebouw_key
            AND r.alg_srtruimte_key NOT IN
                     (SELECT   fac.safe_to_number (udd.fac_usrdata_omschr)
                        FROM   fac_usrdata udd
                       WHERE       udd.fac_usrtab_key = 551                                          -- Rmgebruikfunctie
                               AND udd.fac_usrdata_code = fac.safe_to_number (k.alg_onrgoedkenmerk_waarde)
                               AND udd.fac_usrdata_verwijder IS NULL)
            AND sr2.alg_srtruimte_key =
                  (SELECT   fac.safe_to_number (udd.fac_usrdata_omschr)
                     FROM   fac_usrdata udd
                    WHERE       udd.fac_usrtab_key = 551                                             -- Rmgebruikfunctie
                            AND udd.fac_usrdata_code = fac.safe_to_number (k.alg_onrgoedkenmerk_waarde)
                            AND udd.fac_usrdata_verwijder IS NULL);

-- Stap 10a: Definieer de rapportage voor track & tracing van HV mutaties.
CREATE OR REPLACE FORCE VIEW UWVA_V_RAP_HV_FGMUTATIES_AFD
(
   FCLT_F_MAAND,
   FCLT_3D_LOCATIE_KEY,
   FCLT_F_LOCATIE,
   FCLT_F_GEBOUW,
   FCLT_F_VERDIEPING,
   RUIMTE,
   OMSCHRIJVING,
   WANNEER,
   MUTATIE,
   FCLT_F_WIE
)
AS
   SELECT DISTINCT TO_CHAR (fac_tracking_datum, 'YYMM'),
                   r.alg_locatie_key,
                   r.alg_locatie_code,
                   r.alg_gebouw_upper,
                   r.alg_verdieping_code,
                   r.alg_ruimte_nr,
                   r.alg_ruimte_omschrijving,
                   TO_CHAR (ft.fac_tracking_datum, 'dd-mm-yyyy hh24:mi:ss'),
                   fac_tracking_oms,
                   PP.PRS_PERSLID_NAAM_FULL
     FROM fac_tracking ft,
          fac_srtnotificatie fs,
          alg_v_ruimte_gegevens r,
          prs_v_perslid_fullnames_all pp
    WHERE     ft.fac_srtnotificatie_key = fs.fac_srtnotificatie_key
          AND fac_tracking_refkey = r.alg_ruimte_key
          AND fac_srtnotificatie_code = 'ALGCAD'
          AND ft.prs_perslid_key = pp.prs_perslid_key(+);

-- Stap 10b: Definieer de rapportage voor niet toegewezen ruimtem (terwijl de ruimtesoort aangeeft dat dat moet)
CREATE OR REPLACE FORCE VIEW uwva_v_rap_ruimte_controle_h
AS
SELECT	l.alg_locatie_key as fclt_3d_locatie_key,
				g.alg_gebouw_code as fclt_f_gebouw,
				v.alg_verdieping_code as fclt_f_verdieping,
				r.alg_ruimte_nr as ruimtenr,
				x.alg_srtruimte_omschrijving as fclt_f_ruimtesoort,
				ud.fac_usrdata_omschr as ruimtegebruik,
        DECODE (y.aantal, NULL, DECODE(x.verhuur,	1,'[GEEN DIVISIE!]'),
        									1,		DECODE(y.afd,	 0, 	'[AFDELING ONTBREEKT!]'),
        												DECODE(y.afd2, 0, 	'[AFDELING ONTBREEKT!]')
        			 ) AS fclt_f_probleem
        FROM  alg_ruimte r,  alg_verdieping v, alg_gebouw g, alg_locatie l,
              alg_onrgoedkenmerk ok, fac_usrdata ud,
        		(SELECT   r.alg_ruimte_key, sr.alg_srtruimte_omschrijving, COALESCE(sr.prs_verhuurbaar, 0) verhuur, COALESCE(sr.prs_bevat_werkplek, 0) werkplek
               FROM   alg_v_aanwezigruimte r, alg_srtruimte sr
               WHERE  r.alg_srtruimte_key = sr.alg_srtruimte_key (+)
               AND    sr.prs_verhuurbaar = 1 ) x
            LEFT JOIN (  SELECT   ra.alg_ruimte_key,
                                  MIN (a.prs_afdeling_omschrijving) sp,
                                  MIN (a.prs_afdeling_key) sp_key,
                                  COUNT (ra.prs_afdeling_key) aantal,
                                  MAX(NVL(a.prs_afdeling_parentkey, 0)) afd,
                                  MIN(NVL(a.prs_afdeling_parentkey, 0)) afd2
                           FROM   prs_v_aanwezigruimteafdeling ra, prs_v_aanwezigafdeling a
                          WHERE   ra.prs_afdeling_key = a.prs_afdeling_key
                       GROUP BY   ra.alg_ruimte_key) y
               ON x.alg_ruimte_key = y.alg_ruimte_key
        WHERE r.alg_ruimte_key = x.alg_ruimte_key
        AND   r.ALG_VERDIEPING_KEY = v.ALG_VERDIEPING_KEY
				AND   v.alg_gebouw_key = g.alg_gebouw_key
				AND   COALESCE (g.alg_gebouw_vervaldatum, SYSDATE) > TRUNC (SYSDATE)
				AND   g.alg_locatie_key = l.alg_locatie_key
				AND   r.alg_ruimte_key = ok.alg_onrgoed_key
				AND   ok.alg_kenmerk_key = (select alg_kenmerk_key from alg_kenmerk where alg_kenmerk_omschrijving = 'Ruimtegebruik')
 				AND   ud.fac_usrdata_key = ok.alg_onrgoedkenmerk_waarde;
/

CREATE OR REPLACE FORCE VIEW uwva_v_rap_ruimte_controle
AS SELECT * from uwva_v_rap_ruimte_controle_h
WHERE fclt_f_probleem is not null;


-- UWVA#17591
-- zet de huidige opp af tegen de laatstgescande waarden
-- beschouwt bewust de primaire oppervlakte als maatgevend
CREATE OR REPLACE FORCE VIEW UWVA_V_THEMA_OPPMUTATIE
(
   ALG_RUIMTE_KEY,
   WAARDE,
   HOEVEELDAN,
   DIFFTXT
)
AS
   WITH match_ruimte
           AS (SELECT r.alg_ruimte_key,
                      COALESCE (c.cad_imp_contour_opp, 0)
                      - COALESCE (r.alg_ruimte_bruto_vloeropp, 0)
                         diff,
                         TO_CHAR (COALESCE (r.alg_ruimte_bruto_vloeropp, 0))
                      || '->'
                      || TO_CHAR (COALESCE (c.cad_imp_contour_opp, 0))
                         difftxt
                 FROM alg_v_aanwezigruimte r,
                      cad_imp_contour c,
                      cad_tekening ct,
                      uwva_v_sync_alg_ruimte s
                WHERE     s.alg_ruimte_key = r.alg_ruimte_key
                      AND s.cadlabel = c.cad_imp_contour_nr
                      AND ct.cad_tekening_key = c.cad_tekening_key
                      AND ct.alg_verdieping_key = r.alg_verdieping_key)
   SELECT alg_ruimte_key,
          case when diff > 0.1 then 'Meer' when diff < -0.1 then 'Minder' else 'Gelijk' end,
          case when ABS (diff) > 0.1 then diff else 0 end,
          case when ABS (diff) > 0.1 then difftxt else '' end
     FROM match_ruimte;

CREATE OR REPLACE FORCE VIEW UWVA_V_LABEL_OPPMUTATIE
(
    ALG_RUIMTE_KEY,
    WAARDE
)
AS
    SELECT ALG_RUIMTE_KEY, DIFFTXT FROM UWVA_V_THEMA_OPPMUTATIE;

-- UWVA#18101
/* Formatted on 1-10-2010 15:06:18 (QP5 v5.136.908.31019) */
CREATE OR REPLACE FORCE VIEW uwva_v_label_hvwpbezetting
(
   alg_ruimte_key,
   waarde
)
AS
   WITH ap AS (SELECT   alg_onrgoed_key alg_ruimte_key, alg_onrgoedkenmerk_waarde aantal_pers
                 FROM   alg_onrgoedkenmerk
                WHERE   alg_onrgoed_niveau = 'R' AND alg_kenmerk_key = 1144                           -- Aaantal personen
                                                                           ),
        aw AS (SELECT   alg_onrgoed_key alg_ruimte_key, alg_onrgoedkenmerk_waarde aantal_wp
                 FROM   alg_onrgoedkenmerk
                WHERE   alg_onrgoed_niveau = 'R' AND alg_kenmerk_key = 1143                        -- Aantal werkplekken
                                                                           )
   SELECT   ar.alg_ruimte_key,
            CASE
               WHEN aantal_pers > 0
               THEN
                  'Werkplek: ' || TO_CHAR (TRUNC (alg_ruimte_opp_alt1 * 10 / aw.aantal_wp + 0.5) / 10) || 'm2'
               ELSE
                  ''
            END
            || '~Werkplekken: '
            || TO_CHAR (aw.aantal_wp)
            || ' ['
            || TO_CHAR (TRUNC (alg_ruimte_opp_alt1 / 10))
            || ']'
            || '~Personen: '
            || TO_CHAR (ap.aantal_pers)
               waarde
     FROM   aw, ap, alg_ruimte ar
    WHERE       ar.alg_ruimte_key = ap.alg_ruimte_key(+)
            AND ar.alg_ruimte_key = aw.alg_ruimte_key(+)
            AND (ap.aantal_pers > 0 OR aw.aantal_wp > 0);

-- Thema met de gemiddelde oppervlakte per werkplek, legenda bevat typisch intervallen
-- Kan niet slepen
/* Formatted on 1-10-2010 15:15:11 (QP5 v5.136.908.31019) */
CREATE OR REPLACE FORCE VIEW uwva_v_thema_hvwpbezetting (alg_ruimte_key, waarde, waarde_key)
AS
   WITH aw AS (SELECT   alg_onrgoed_key alg_ruimte_key, alg_onrgoedkenmerk_waarde aantal_wp
                 FROM   alg_onrgoedkenmerk
                WHERE   alg_onrgoed_niveau = 'R' AND alg_kenmerk_key = 1143                        -- Aantal werkplekken
                                                                           )
   SELECT   ar.alg_ruimte_key, (TRUNC (alg_ruimte_opp_alt1 * 10 / aw.aantal_wp + 0.5) / 10) waarde, aw.aantal_wp waarde_key
     FROM   aw, alg_ruimte ar
    WHERE   ar.alg_ruimte_key = aw.alg_ruimte_key(+) AND aw.aantal_wp > 0;

-- Het platte aantal werkplekken, kunnen we lekker slepen
/* Formatted on 22-9-2011 12:28:48 (QP5 v5.115.810.9015) */
CREATE OR REPLACE FORCE VIEW uwva_v_thema_hvwpaantal
(
   alg_ruimte_key,
   waarde,
   waarde_key
)
AS
   SELECT   x.alg_ruimte_key,
            COALESCE (y.alg_onrgoedkenmerk_waarde, 'ONGEDEFINIEERD'),
            y.alg_onrgoedkenmerk_waarde             -- NULL als ONGEDEFINIEERD
     FROM      (SELECT   r.alg_ruimte_key
                  FROM   alg_v_aanwezigruimte r) x
            LEFT JOIN
               (SELECT   ok.alg_onrgoed_key, ok.alg_onrgoedkenmerk_waarde
                  FROM   alg_onrgoedkenmerk ok
                 WHERE   ok.alg_kenmerk_key = 1143) y    -- Aantal werkplekken
            ON x.alg_ruimte_key = y.alg_onrgoed_key;

-- De update past het aantal werkplekken aan
CREATE OR REPLACE TRIGGER uwva_t_thema_hvwpaantal
   INSTEAD OF INSERT OR UPDATE
   ON uwva_v_thema_hvwpaantal
DECLARE
BEGIN
   DELETE FROM   alg_onrgoedkenmerk ok
         WHERE   ok.alg_kenmerk_key = 1143                                                         -- Aantal werkplekken
                                          AND ok.alg_onrgoed_key = :new.alg_ruimte_key;

   IF :new.waarde_key IS NOT NULL
   THEN
      BEGIN
         INSERT INTO alg_onrgoedkenmerk ok (
                                               ok.alg_kenmerk_key,
                                               ok.alg_onrgoed_niveau,
                                               ok.alg_onrgoed_key,
                                               ok.alg_onrgoedkenmerk_waarde
                    )
           VALUES   (1143, 'R', :new.alg_ruimte_key, :new.waarde_key
                    );
      EXCEPTION
         WHEN OTHERS
         THEN
            raise_application_error (-20000, 'uwva_m18101 Aantal werkplekken kan kennelijk niet aangepast worden.');
      END;
   END IF;
END;
/

-- Het platte aantal personen, kunnen we lekker slepen
/* Formatted on 22-9-2011 12:34:56 (QP5 v5.115.810.9015) */
CREATE OR REPLACE FORCE VIEW uwva_v_thema_hvpersaantal
(
   alg_ruimte_key,
   waarde,
   waarde_key
)
AS
   SELECT   x.alg_ruimte_key,
            COALESCE (y.alg_onrgoedkenmerk_waarde, 'ONGEDEFINIEERD'),
            y.alg_onrgoedkenmerk_waarde             -- NULL als ONGEDEFINIEERD
     FROM      (SELECT   r.alg_ruimte_key
                  FROM   alg_v_aanwezigruimte r) x
            LEFT JOIN
               (SELECT   ok.alg_onrgoed_key, ok.alg_onrgoedkenmerk_waarde
                  FROM   alg_onrgoedkenmerk ok
                 WHERE   ok.alg_kenmerk_key = 1144) y       -- Aantal personen
            ON x.alg_ruimte_key = y.alg_onrgoed_key;

-- De update past het aantal werkplekken aan
CREATE OR REPLACE TRIGGER uwva_t_thema_hvpersaantal
   INSTEAD OF INSERT OR UPDATE
   ON uwva_v_thema_hvpersaantal
DECLARE
BEGIN
   DELETE FROM   alg_onrgoedkenmerk ok
         WHERE   ok.alg_kenmerk_key = 1144                                                         -- Aantal personen
                                          AND ok.alg_onrgoed_key = :new.alg_ruimte_key;

   IF :new.waarde_key IS NOT NULL
   THEN
      BEGIN
         INSERT INTO alg_onrgoedkenmerk ok (
                                               ok.alg_kenmerk_key,
                                               ok.alg_onrgoed_niveau,
                                               ok.alg_onrgoed_key,
                                               ok.alg_onrgoedkenmerk_waarde
                    )
           VALUES   (1144, 'R', :new.alg_ruimte_key, :new.waarde_key
                    );
      EXCEPTION
         WHEN OTHERS
         THEN
            raise_application_error (-20000, 'uwva_m18101 Aantal personen kan kennelijk niet aangepast worden.');
      END;
   END IF;
END;
/

-- mbmbmb

CREATE OR REPLACE PROCEDURE uwva_import_ruimtegebruik (
   p_import_key IN NUMBER
)
IS
   c_fielddelimitor                VARCHAR2 (1)    := ';';

   v_newline                       VARCHAR2 (1000);             -- Input line
   v_aanduiding                    VARCHAR2 (200);
   v_errorhint                     VARCHAR2 (1000);
   v_errormsg                      VARCHAR2 (1000);
   oracle_err_num                  NUMBER;
   oracle_err_mes                  VARCHAR2 (200);
   header_is_valid                 NUMBER := 0;
   v_ongeldig                      NUMBER (1);
   v_count_tot                     NUMBER (10);
   v_count_import                  NUMBER (10);
   v_count                         NUMBER;

   -- De importvelden:
   v_alg_gebouw_code               VARCHAR2 (256);
   v_alg_verdieping_nr             VARCHAR2 (256);
   v_alg_ruimte_nr             		 VARCHAR2 (256);
   v_prs_afdeling_naam             VARCHAR2 (256);
   v_prs_ruimteafdeling_bezetting  VARCHAR2 (256);

   CURSOR c1
   IS
      SELECT   *
          FROM fac_imp_file
         WHERE fac_import_key = p_import_key
      ORDER BY fac_imp_file_index;
BEGIN
   -- Eerst opruiming

   DELETE FROM uwva_imp_ruimtegebruik;
   COMMIT;

   v_count_tot := 0;
   v_count_import := 0;

   FOR rec1 IN c1
   LOOP
      BEGIN
         v_newline := rec1.fac_imp_file_line;
         v_aanduiding := '';
         v_errorhint := 'Fout bij opvragen te importeren rij';
         v_ongeldig := 0;
         -- Lees alle veldwaarden

         -- 01
         fac.imp_getfield (v_newline, c_fielddelimitor, v_alg_gebouw_code);
         -- 02
         fac.imp_getfield (v_newline, c_fielddelimitor, v_alg_verdieping_nr);
         -- 03
         fac.imp_getfield (v_newline, c_fielddelimitor, v_alg_ruimte_nr);
         -- 04
         fac.imp_getfield (v_newline, c_fielddelimitor, v_prs_afdeling_naam);
         -- 05
         fac.imp_getfield (v_newline, c_fielddelimitor, v_prs_ruimteafdeling_bezetting);


         --
         v_aanduiding :=
               '['
            || v_alg_gebouw_code
            || '|'
            || v_alg_verdieping_nr
            || '|'
            || v_alg_ruimte_nr
            || '|'
            || v_prs_afdeling_naam
            || '] ';

         -- Ik controleer of ik een geldige header heb, dat is: in de juiste kolommen
         -- de juiste kolomkop. Ik controleer daarbij ALLE kolommen!
         -- Ik negeer alles totdat ik een geldige header ben gepasseerd.
         IF (header_is_valid = 0)
         THEN
            IF     UPPER (v_alg_gebouw_code) = 'GEBOUW'
               AND UPPER (v_alg_verdieping_nr) = 'VERDIEPING'
               AND UPPER (v_alg_ruimte_nr) = 'RUIMTENR'
               AND UPPER (v_prs_afdeling_naam) = 'AFDELING'
               AND UPPER (v_prs_ruimteafdeling_bezetting) = 'BEZETTING'
            THEN
               header_is_valid := 1;
            END IF;
         ELSE
            v_count_tot := v_count_tot + 1;
            -- Controleer alle veldwaarden
            v_errorhint := 'Ongeldige gebouwcode';
            v_alg_gebouw_code := TRIM (v_alg_gebouw_code);

						IF (LENGTH (v_alg_gebouw_code) > 10 OR v_alg_gebouw_code IS NULL)
            THEN
               v_ongeldig := 1;
               fac.imp_writelog
                     (p_import_key,
                      'E',
                      v_aanduiding || 'Gebouwcode onbekend',
                      'Gebouwcode is te lang of niet ingevuld; regel wordt overgeslagen!'
                     );
            END IF;
            IF (LENGTH (v_alg_verdieping_nr) > 3 OR v_alg_verdieping_nr IS NULL)
            THEN
               v_ongeldig := 1;
               fac.imp_writelog
                     (p_import_key,
                      'E',
                      v_aanduiding || 'Verdieping onbekend',
                      'Verdieping is te lang of niet ingevuld; regel wordt overgeslagen!'
                     );
            END IF;
            IF (LENGTH (v_alg_ruimte_nr) > 10 OR v_alg_ruimte_nr IS NULL)
            THEN
               v_ongeldig := 1;
               fac.imp_writelog
                     (p_import_key,
                      'E',
                      v_aanduiding || 'Ruimte onbekend',
                      'Ruimtenummer is te lang of niet ingevuld; regel wordt overgeslagen!'
                     );
            END IF;
						IF (LENGTH (v_prs_afdeling_naam) > 10 OR v_prs_afdeling_naam IS NULL)
            THEN
               v_ongeldig := 1;
               fac.imp_writelog
                     (p_import_key,
                      'E',
                      v_aanduiding || 'Afdeling onbekend',
                      'Afdeling is te lang of niet ingevuld; regel wordt overgeslagen!'
                     );
            END IF;
						IF (LENGTH (v_prs_ruimteafdeling_bezetting) > 3)
            THEN
               v_ongeldig := 1;
               fac.imp_writelog
                     (p_import_key,
                      'E',
                      v_aanduiding || 'Bezetting fout',
                      'De bezetting is te lang, maximaal 3 cijfers/posities zijn toegestaan; regel wordt overgeslagen!'
                     );
            END IF;

            -- Insert geformatteerde import record
            IF v_ongeldig = 0
            THEN
               BEGIN
                  v_errorhint := 'Fout bij toevoegen regel aan importtabel uwva_imp_ruimtegebruik';
                  INSERT INTO uwva_imp_ruimtegebruik
                  (alg_gebouw_code, alg_verdieping_nr,alg_ruimte_nr, prs_afdeling_naam, prs_ruimteafdeling_bezetting)
                  VALUES (v_alg_gebouw_code, v_alg_verdieping_nr, v_alg_ruimte_nr, v_prs_afdeling_naam, v_prs_ruimteafdeling_bezetting);

                  COMMIT;
                  v_count_import := v_count_import + 1;
               EXCEPTION
                  WHEN OTHERS
                  THEN
                     oracle_err_num := SQLCODE;
                     oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
                     v_errormsg :=
                           v_errorhint
                        || ' ORACLE (error '
                        || oracle_err_num
                        || '/'
                        || oracle_err_mes
                        || ')';
                     fac.imp_writelog
                             (p_import_key,
                              'E',
                              v_aanduiding || v_errormsg,
                              'Ingelezen regel kan niet worden weggeschreven!'
                             );
                     COMMIT;
               END;
            END IF;
         END IF;
      END;
   END LOOP;

   IF (header_is_valid = 0)
   THEN
      fac.imp_writelog (p_import_key,
                        'E',
                        'Ongeldig importbestand',
                        'Geen header of header niet volgens specificatie!'
                       );
   ELSE
      fac.imp_writelog (p_import_key,
                        'S',
                           'Ruimtegebruik: aantal verwerkte regels: '
                        || TO_CHAR (v_count_tot),
                        ''
                       );
      fac.imp_writelog (p_import_key,
                        'S',
                           'Ruimtegebruik: aantal ongeldige importregels: '
                        || TO_CHAR (v_count_tot - v_count_import),
                        ''
                       );
   END IF;
   COMMIT;
EXCEPTION
   WHEN OTHERS
   THEN
      oracle_err_num := SQLCODE;
      oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
      v_errormsg :=
           'OTHERS (error ' || oracle_err_num || '/' || oracle_err_mes || ')';
      fac.imp_writelog (p_import_key,
                        'E',
                        v_aanduiding || v_errormsg,
                        v_errorhint
                       );
      COMMIT;
END uwva_import_ruimtegebruik;
/

CREATE OR REPLACE PROCEDURE uwva_update_ruimtegebruik (
   p_import_key IN NUMBER
)
IS

   v_aanduiding             VARCHAR2 (200);
   v_errorhint              VARCHAR2 (1000);
   v_errormsg               VARCHAR2 (1000);
   oracle_err_num           NUMBER;
   oracle_err_mes           VARCHAR2 (200);

   v_count_tot              NUMBER (10);
   v_count_error            NUMBER (10);
   v_count                  NUMBER (10);
   --

   v_locatie_key            NUMBER (10);
   v_alg_gebouw_key         NUMBER (10);
   v_alg_verdieping_key     NUMBER (10);
   v_alg_ruimte_key         NUMBER (10);
   v_prs_afdeling_key       NUMBER (10);
   v_prs_ruimteafdeling_bezetting NUMBER (3);

   -- Alle verschillende ruimten (group by)
   CURSOR cruimte
   IS
      SELECT alg_gebouw_code, alg_verdieping_nr, alg_ruimte_nr
        FROM uwva_imp_ruimtegebruik
        GROUP BY alg_gebouw_code, alg_verdieping_nr, alg_ruimte_nr;
	 -- Alle ruimten (ook dubbelen) met hun afdelingen en bezettingspercentage
   CURSOR cruimtegebruik
   IS
      SELECT *
        FROM uwva_imp_ruimtegebruik;


BEGIN
			-- Prefix van de functie:
			-- Eerst van alle ruimten de afdelingen ontkoppelen...
      FOR recruimte IN cruimte
      LOOP
         BEGIN

            SELECT alg_gebouw_key
            INTO v_alg_gebouw_key
            FROM alg_gebouw
            WHERE alg_gebouw_verwijder IS NULL
            AND alg_gebouw_upper =  UPPER (recruimte.alg_gebouw_code);


            SELECT alg_verdieping_key
            INTO v_alg_verdieping_key
            FROM alg_verdieping
            WHERE alg_verdieping_verwijder IS NULL
            AND alg_gebouw_key = v_alg_gebouw_key
            AND alg_verdieping_volgnr = to_number(recruimte.alg_verdieping_nr);

            SELECT alg_ruimte_key
            INTO v_alg_ruimte_key
            FROM alg_ruimte
            WHERE alg_ruimte_verwijder IS NULL
            AND alg_verdieping_key = v_alg_verdieping_key
            AND alg_ruimte_upper_nr = UPPER (recruimte.alg_ruimte_nr);

						DELETE FROM prs_ruimteafdeling WHERE alg_ruimte_key =  v_alg_ruimte_key;

				 EXCEPTION
            WHEN OTHERS
            THEN
            	NULL;
         END;
      END LOOP;

			v_count_tot := 0;
      v_count_error := 0;

			-- Alle ruimten (ook dubbelen) de afdelingen met bezettingspercentage koppelen.
			FOR recruimtegebruik IN cruimtegebruik
      LOOP
         BEGIN
            v_count_tot := v_count_tot + 1;

            v_aanduiding :=
                  recruimtegebruik.alg_gebouw_code
               || '|'
               || recruimtegebruik.alg_verdieping_nr
               || '|'
               || recruimtegebruik.alg_ruimte_nr
               || ' - ';

            v_errorhint :=
                  'Fout bij bepalen gebouw ['
               || recruimtegebruik.alg_gebouw_code
               || ']';

            SELECT alg_gebouw_key
            INTO v_alg_gebouw_key
            FROM alg_gebouw
            WHERE alg_gebouw_verwijder IS NULL
            AND alg_gebouw_upper =  UPPER (recruimtegebruik.alg_gebouw_code);

						v_errorhint :=
                  'Fout bij bepalen verdieping ['
               || recruimtegebruik.alg_verdieping_nr
               || ']';

            SELECT alg_verdieping_key
            INTO v_alg_verdieping_key
            FROM alg_verdieping
            WHERE alg_verdieping_verwijder IS NULL
            AND alg_gebouw_key = v_alg_gebouw_key
            AND alg_verdieping_volgnr = to_number(recruimtegebruik.alg_verdieping_nr);


            v_errorhint :=
                  'Fout bij bepalen ruimte ['
               || recruimtegebruik.alg_ruimte_nr
               || ']';

            SELECT alg_ruimte_key
            INTO v_alg_ruimte_key
            FROM alg_ruimte
            WHERE alg_ruimte_verwijder IS NULL
            AND alg_verdieping_key = v_alg_verdieping_key
            AND alg_ruimte_upper_nr = UPPER (recruimtegebruik.alg_ruimte_nr);

						v_errorhint :=
                  'Fout bij bepalen afdeling ['
               || recruimtegebruik.prs_afdeling_naam
               || ']';

            SELECT prs_afdeling_key
            INTO v_prs_afdeling_key
            FROM prs_afdeling
            WHERE prs_afdeling_verwijder IS NULL
            AND prs_afdeling_upper =  UPPER (recruimtegebruik.prs_afdeling_naam);

						v_errorhint :=
                  'Fout in de ruimtebezetting: getal moet groter dan 0 en kleiner dan 999 zijn ['
               || recruimtegebruik.prs_ruimteafdeling_bezetting
               || ']';

            SELECT COALESCE(to_number(recruimtegebruik.prs_ruimteafdeling_bezetting), 100)
            INTO v_prs_ruimteafdeling_bezetting
            FROM dual
            WHERE COALESCE(to_number (recruimtegebruik.prs_ruimteafdeling_bezetting),100) >= 0
            AND 	COALESCE(to_number (recruimtegebruik.prs_ruimteafdeling_bezetting),100) <= 999;

            INSERT INTO prs_ruimteafdeling (alg_ruimte_key, prs_afdeling_key, prs_ruimteafdeling_bezetting)
            VALUES (v_alg_ruimte_key,v_prs_afdeling_key,v_prs_ruimteafdeling_bezetting);

				 EXCEPTION
            WHEN OTHERS
            THEN
               v_count_error := v_count_error + 1;
               oracle_err_num := SQLCODE;
               oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
               v_errormsg :=
                     'OTHERS (error '
                  || oracle_err_num
                  || '/'
                  || oracle_err_mes
                  || ')';
               fac.imp_writelog (p_import_key,
                                 'E',
                                 v_aanduiding || v_errormsg,
                                 v_errorhint
                                );
               COMMIT;
         END;
      END LOOP;
			fac.imp_writelog (p_import_key,
                     'S',
                        'Ruimtebezetting: verwerkte regels zonder foutmelding: '
                     || TO_CHAR (v_count_tot - v_count_error),
                     ''
                    );
  		fac.imp_writelog (p_import_key,
                     'S',
                        'Ruimtebezetting: verwerkte regels met foutmelding: '
                     || TO_CHAR (v_count_error),
                     ''
                    );
	COMMIT;
EXCEPTION
   WHEN OTHERS
   THEN
      oracle_err_num := SQLCODE;
      oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
      v_errormsg :=
           'OTHERS (error ' || oracle_err_num || '/' || oracle_err_mes || ')';
      fac.imp_writelog (p_import_key,
                        'E',
                        v_aanduiding || v_errormsg,
                        v_errorhint
                       );
      COMMIT;

END uwva_update_ruimtegebruik;
/


-- CAD welke ruimtes zijn wel getekend maar niet de database aanwezig (UWVA#16750)
-- Kolom hide_f_alg_regio_key en hide_f_alg_district_key is toegevoegd nav UWVA#29320
CREATE OR REPLACE FORCE VIEW uwva_v_rap_cad_notindb
(
   fclt_f_locatie,
   hide_f_alg_regio_key,
   hide_f_alg_district_key,
   fclt_f_gebouw,
   fclt_f_verdieping,
   cadlabel,
   hide_f_nen2580_getekend
)
AS
  SELECT   l.alg_locatie_code,
           d.alg_regio_key,
           d.alg_district_key,
           g.alg_gebouw_code,
           v.alg_verdieping_omschrijving,
           r.alg_ruimte_nr cad_ruimte_nr,
           r.cad_imp_contour_opp
    FROM   alg_locatie l,
           alg_district d,
           alg_gebouw g,
           alg_verdieping v,
           (SELECT   TO_NUMBER (NULL) alg_ruimte_key,
                     ir.alg_verdieping_key,
                     ir.cad_imp_contour_nr alg_ruimte_nr,
                     ir.cad_imp_contour_opp,
                     ir.cad_imp_contour_opp_alt1,
                     ir.cad_imp_contour_opp_alt2,
                     ir.aantal
              FROM   uwva_v_sync_alg_ruimte sync,
                     (  SELECT   c.CAD_IMP_CONTOUR_NR,
                                 SUM (c.CAD_IMP_CONTOUR_OPP) CAD_IMP_CONTOUR_OPP,
                                 SUM (c.CAD_IMP_CONTOUR_OPP_ALT1)
                                    CAD_IMP_CONTOUR_OPP_ALT1,
                                 SUM (c.CAD_IMP_CONTOUR_OPP_ALT2)
                                    CAD_IMP_CONTOUR_OPP_ALT2,
                                 t.alg_locatie_key,
                                 t.alg_verdieping_key,
                                 COUNT ( * ) aantal
                          FROM   cad_imp_contour c, cad_tekening t
                         WHERE   c.cad_tekening_key = t.cad_tekening_key
                      GROUP BY   c.CAD_IMP_CONTOUR_NR,
                                 t.alg_locatie_key,
                                 t.alg_verdieping_key) ir
             WHERE       ir.ALG_VERDIEPING_KEY = sync.ALG_VERDIEPING_KEY(+)
                     AND ir.cad_imp_contour_nr = sync.cadlabel(+)
                     AND sync.ALG_VERDIEPING_KEY IS NULL
            UNION ALL
            SELECT   sync.alg_ruimte_key,
                     sync.alg_verdieping_key,
                     sync.cadlabel,
                     ir.cad_imp_contour_opp,
                     ir.cad_imp_contour_opp_alt1,
                     ir.cad_imp_contour_opp_alt2,
                     ir.aantal
              FROM   uwva_v_sync_alg_ruimte sync,
                     (  SELECT   c.CAD_IMP_CONTOUR_NR,
                                 SUM (c.CAD_IMP_CONTOUR_OPP) CAD_IMP_CONTOUR_OPP,
                                 SUM (c.CAD_IMP_CONTOUR_OPP_ALT1)
                                    CAD_IMP_CONTOUR_OPP_ALT1,
                                 SUM (c.CAD_IMP_CONTOUR_OPP_ALT2)
                                    CAD_IMP_CONTOUR_OPP_ALT2,
                                 t.alg_locatie_key,
                                 t.alg_verdieping_key,
                                 COUNT ( * ) aantal
                          FROM   cad_imp_contour c, cad_tekening t
                         WHERE   c.cad_tekening_key = t.cad_tekening_key
                      GROUP BY   c.CAD_IMP_CONTOUR_NR,
                                 t.alg_locatie_key,
                                 t.alg_verdieping_key) ir
             WHERE   ir.ALG_VERDIEPING_KEY(+) = sync.ALG_VERDIEPING_KEY
                     AND ir.cad_imp_contour_nr(+) = sync.cadlabel) r,
           alg_v_aanwezigruimte a,
           alg_srtruimte s
   WHERE       v.alg_verdieping_key = r.alg_verdieping_key
           AND g.alg_gebouw_key = v.alg_gebouw_key
           AND COALESCE (g.alg_gebouw_vervaldatum, SYSDATE) > TRUNC (SYSDATE)
           AND l.alg_locatie_key = g.alg_locatie_key
           AND d.alg_district_key = l.alg_district_key
           AND a.alg_ruimte_key(+) = r.alg_ruimte_key
           AND s.alg_srtruimte_key(+) = a.alg_srtruimte_key
           AND r.alg_ruimte_key is null
ORDER BY   1,2,3,4;

-- CAD welke ruimtes zijn wel in de database aanwezig maar niet getekend (UWVA#16750)
-- Kolom hide_f_alg_regio_key en hide_f_alg_district_key is toegevoegd nav UWVA#29320

CREATE OR REPLACE FORCE VIEW uwva_v_rap_cad_notintek
(
   fclt_f_locatie,
   hide_f_alg_regio_key,
   hide_f_alg_district_key,
   fclt_f_gebouw,
   fclt_f_verdieping,
   ruimtenummer,
   hide_f_ruimteomschrijving,
   hide_f_nen2580_m2
)
AS
  SELECT   l.alg_locatie_code,
           d.alg_regio_key,
           d.alg_district_key,
           g.alg_gebouw_code,
           v.alg_verdieping_omschrijving,
           a.ALG_RUIMTE_NR,
           a.alg_ruimte_omschrijving,
           a.alg_ruimte_bruto_vloeropp
    FROM   alg_locatie l,
           alg_district d,
           alg_gebouw g,
           alg_verdieping v,
           (SELECT   TO_NUMBER (NULL) alg_ruimte_key,
                     ir.alg_verdieping_key,
                     ir.cad_imp_contour_nr alg_ruimte_nr,
                     ir.cad_imp_contour_opp,
                     ir.cad_imp_contour_opp_alt1,
                     ir.cad_imp_contour_opp_alt2,
                     ir.aantal
              FROM   uwva_v_sync_alg_ruimte sync,
                     (  SELECT   c.CAD_IMP_CONTOUR_NR,
                                 SUM (c.CAD_IMP_CONTOUR_OPP) CAD_IMP_CONTOUR_OPP,
                                 SUM (c.CAD_IMP_CONTOUR_OPP_ALT1)
                                    CAD_IMP_CONTOUR_OPP_ALT1,
                                 SUM (c.CAD_IMP_CONTOUR_OPP_ALT2)
                                    CAD_IMP_CONTOUR_OPP_ALT2,
                                 t.alg_locatie_key,
                                 t.alg_verdieping_key,
                                 COUNT ( * ) aantal
                          FROM   cad_imp_contour c, cad_tekening t
                         WHERE   c.cad_tekening_key = t.cad_tekening_key
                      GROUP BY   c.CAD_IMP_CONTOUR_NR,
                                 t.alg_locatie_key,
                                 t.alg_verdieping_key) ir
             WHERE       ir.ALG_VERDIEPING_KEY = sync.ALG_VERDIEPING_KEY(+)
                     AND ir.cad_imp_contour_nr = sync.cadlabel(+)
                     AND sync.ALG_VERDIEPING_KEY IS NULL
            UNION ALL
            SELECT   sync.alg_ruimte_key,
                     sync.alg_verdieping_key,
                     sync.cadlabel,
                     ir.cad_imp_contour_opp,
                     ir.cad_imp_contour_opp_alt1,
                     ir.cad_imp_contour_opp_alt2,
                     ir.aantal
              FROM   uwva_v_sync_alg_ruimte sync,
                     (  SELECT   c.CAD_IMP_CONTOUR_NR,
                                 SUM (c.CAD_IMP_CONTOUR_OPP) CAD_IMP_CONTOUR_OPP,
                                 SUM (c.CAD_IMP_CONTOUR_OPP_ALT1)
                                    CAD_IMP_CONTOUR_OPP_ALT1,
                                 SUM (c.CAD_IMP_CONTOUR_OPP_ALT2)
                                    CAD_IMP_CONTOUR_OPP_ALT2,
                                 t.alg_locatie_key,
                                 t.alg_verdieping_key,
                                 COUNT ( * ) aantal
                          FROM   cad_imp_contour c, cad_tekening t
                         WHERE   c.cad_tekening_key = t.cad_tekening_key
                      GROUP BY   c.CAD_IMP_CONTOUR_NR,
                                 t.alg_locatie_key,
                                 t.alg_verdieping_key) ir
             WHERE   ir.ALG_VERDIEPING_KEY(+) = sync.ALG_VERDIEPING_KEY
                     AND ir.cad_imp_contour_nr(+) = sync.cadlabel) r,
           alg_v_aanwezigruimte a,
           alg_srtruimte s
   WHERE       v.alg_verdieping_key = r.alg_verdieping_key
           AND g.alg_gebouw_key = v.alg_gebouw_key
           AND COALESCE (g.alg_gebouw_vervaldatum, SYSDATE) > TRUNC (SYSDATE)
           AND l.alg_locatie_key = g.alg_locatie_key
           AND d.alg_district_key = l.alg_district_key
           AND a.alg_ruimte_key(+) = r.alg_ruimte_key
           AND s.alg_srtruimte_key(+) = a.alg_srtruimte_key
           AND CAD_IMP_CONTOUR_OPP is null
           AND a.alg_ruimte_nr not like '000%'
ORDER BY   1,2,3,4;


-- UWVA#29320:
CREATE OR REPLACE VIEW uwva_v_rap_cad_ruimte_conflict
(
   fclt_f_district,
   fclt_f_locatie,
   fclt_f_gebouw,
   fclt_f_verdieping,
   ruimtenummer,
   ruimteomschrijving,
   nen2580_m2,
   ruimtelabel,
   nen2580_getekend,
   fclt_f_status
)
AS
SELECT
    d.alg_district_omschrijving,
    fclt_f_locatie,
    fclt_f_gebouw,
    fclt_f_verdieping,
    NULL,
    NULL,
    NULL,
    cadlabel,
    hide_f_nen2580_getekend,
    'G'
FROM uwva_v_rap_cad_notindb, alg_district d
WHERE hide_f_alg_regio_key = 1
AND hide_f_alg_district_key = d.alg_district_key
UNION ALL
SELECT
    d.alg_district_omschrijving,
    fclt_f_locatie,
    fclt_f_gebouw,
    fclt_f_verdieping,
    ruimtenummer,
    hide_f_ruimteomschrijving,
    hide_f_nen2580_m2,
    NULL,
    NULL,
    'F'
FROM uwva_v_rap_cad_notintek, alg_district d
WHERE hide_f_alg_regio_key = 1
AND hide_f_alg_district_key = d.alg_district_key;


-- UWVA#18176 + UWVA#18491 + UWVA#22196
CREATE OR REPLACE FORCE VIEW uwva_v_noti_lfmtekening
(
   CODE,
   SENDER,
   RECEIVER,
   TEXT,
   KEY,
   XKEY
)
AS
   SELECT   NULL,
            NULL,
            k.alg_onrgoedkenmerk_waarde,
               'Facilitor: De tekening van gebouw '
            || g.alg_gebouw_omschrijving
            || ' op verdieping '
            || v.alg_verdieping_omschrijving
            || ' is aangepast. Graag het juiste Ruimtegebruik en Divisie toekennen aan alle gewijzigde ruimtes.',
            NULL,
            NULL
     FROM   alg_gebouw g,
            alg_verdieping v,
            alg_onrgoedkenmerk k,
            cad_tekening c
    WHERE       v.alg_gebouw_key = g.alg_gebouw_key
            AND c.alg_verdieping_key = v.alg_verdieping_key
            AND cad_tekening_geimporteerd > SYSDATE - 1
            AND k.alg_onrgoed_niveau = 'L'
            AND k.alg_onrgoed_key = g.alg_locatie_key
            AND k.alg_kenmerk_key = 1020
            AND k.alg_onrgoedkenmerk_verwijder IS NULL;


-- UWVA#18804: Uitrol PC's - Graphics labels & thema's
-- Extra info specials
CREATE OR REPLACE VIEW uwva_v_label_pcs_specials
AS
   SELECT id.ins_deel_key, ikd.ins_kenmerkdeel_waarde waarde
     FROM  ins_deel id
          ,ins_kenmerkdeel ikd
    WHERE     id.ins_deel_key = ikd.ins_deel_key
          AND ins_kenmerk_key = 28;

-- Afdeling (eigenaar/gebruiker) van PC
CREATE OR REPLACE VIEW uwva_v_label_pcs_afdeling
AS
   SELECT id.ins_deel_key,
          afd.prs_afdeling_omschrijving || ' (' || afd.prs_afdeling_naam || ')' waarde
     FROM ins_deel id,
          ins_kenmerkdeel ikd,
          ins_srtdeel isd,
          prs_afdeling afd,
          prs_ruimteafdeling ra
    WHERE     id.ins_deel_verwijder IS NULL
          AND id.ins_deel_parent_key IS NULL
          AND id.ins_srtdeel_key = isd.ins_srtdeel_key
          AND isd.ins_srtgroep_key = 1154
          AND id.ins_deel_key = ikd.ins_deel_key(+)
          AND ikd.ins_kenmerk_key(+) = 26
          AND ra.alg_ruimte_key = id.ins_alg_ruimte_key
          AND afd.prs_afdeling_key =
                COALESCE (fac.safe_to_number (ikd.ins_kenmerkdeel_waarde),
                          ra.prs_afdeling_key);

-- PC al geïnstalleerd?
CREATE OR REPLACE VIEW uwva_v_thema_pcs_installed
AS
   (SELECT id.ins_deel_key, 1 waarde
      FROM ins_deel id, ins_kenmerkdeel ikd
     WHERE     id.ins_deel_key = ikd.ins_deel_key
           AND ins_kenmerk_key = 27)
   UNION
   (SELECT id.ins_deel_key, 2 waarde
      FROM ins_deel id, ins_srtdeel isd
     WHERE     id.ins_srtdeel_key = isd.ins_srtdeel_key
           AND isd.ins_srtgroep_key = 1154
           AND id.ins_deel_key NOT IN (SELECT ins_deel_key
                                         FROM ins_kenmerkdeel ikd
                                        WHERE ikd.ins_kenmerk_key = 27));

-- Ruimtethema: PC's met andere afdeling dan ruimte waar ze in staan
CREATE OR REPLACE VIEW uwva_v_thema_pcs_err_afd_alg
AS
   SELECT DISTINCT r.alg_ruimte_key, 1 waarde
     FROM  ins_deel id
          ,ins_kenmerkdeel ikd
          ,alg_ruimte r
          ,prs_ruimteafdeling ra
    WHERE     id.ins_deel_key = ikd.ins_deel_key
          AND ikd.ins_kenmerk_key = 26
          AND r.alg_ruimte_key = id.ins_alg_ruimte_key
          AND ra.alg_ruimte_key = r.alg_ruimte_key
          AND ikd.ins_kenmerkdeel_waarde != ra.prs_afdeling_key;

-- Objectthema: PC's met andere afdeling dan ruimte waar ze in staan
CREATE OR REPLACE VIEW uwva_v_thema_pcs_err_afd_ins
AS
   (SELECT id.ins_deel_key, 1 waarde
      FROM  ins_deel id
          ,ins_kenmerkdeel ikd
          ,alg_ruimte r
          ,prs_ruimteafdeling ra
    WHERE     id.ins_deel_key = ikd.ins_deel_key
          AND ikd.ins_kenmerk_key = 26
          AND r.alg_ruimte_key = id.ins_alg_ruimte_key
          AND ra.alg_ruimte_key = r.alg_ruimte_key
          AND fac.safe_to_number(ikd.ins_kenmerkdeel_waarde) != ra.prs_afdeling_key)
   UNION
   (SELECT id.ins_deel_key, 2 waarde
      FROM ins_deel id, ins_srtdeel isd
     WHERE     id.ins_srtdeel_key = isd.ins_srtdeel_key
           AND isd.ins_srtgroep_key = 1154
           AND id.ins_deel_key NOT IN (SELECT ins_deel_key
                                         FROM ins_kenmerkdeel ikd
                                        WHERE ikd.ins_kenmerk_key = 26));

-- Overzicht van PC's, met type, plaats, afdeling etc
-- (UWVA#20021: deze view maakte expliciet gebruik van de 2-laags 'platgeslagen' organisatie-
--              structuur. Voor het smoelenboek wordt de organisatiestructuur weer 'uit elkaar
--              getrokken'.)
CREATE OR REPLACE VIEW uwva_v_rap_pcs
AS
SELECT   alg_locatie_code fclt_f_locatie,
         dg.alg_plaatsaanduiding ruimte,
         dg.ins_deel_omschrijving computer,
         dg.ins_srtdeel_omschrijving fclt_f_pctype,
         COALESCE (pcafdeling, ruimteafdeling) afdeling,
         COALESCE (pcdivisie, ruimtedivisie) fclt_f_divisie,
         installatiedatum,
         ins_alg_locatie_key fclt_3d_locatie_key
  FROM   (SELECT   ins_d.ins_discipline_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_ruimte_key,
                   ins_ao.alg_plaatsaanduiding,
                   ins_ao.alg_locatie_code,
                   ins_de.ins_deel_key,
                   ins_de.ins_deel_omschrijving,
                   DECODE (afd1.prs_afdeling_key,
                           NULL, NULL,
                           afd1.prs_afdeling_omschrijving || ' (' || afd1.prs_afdeling_naam || ')'
                          )
                      pcafdeling,
                   DECODE (div1.prs_afdeling_key,
                           NULL, NULL,
                           div1.prs_afdeling_omschrijving || ' (' || div1.prs_afdeling_naam || ')'
                          )
                      pcdivisie,
                   DECODE (afd2.prs_afdeling_key,
                           NULL, NULL,
                           afd2.prs_afdeling_omschrijving || ' (' || afd2.prs_afdeling_naam || ')'
                          )
                      ruimteafdeling,
                   DECODE (div2.prs_afdeling_key,
                           NULL, NULL,
                           div2.prs_afdeling_omschrijving || ' (' || div2.prs_afdeling_naam || ')'
                          )
                      ruimtedivisie,
                   ikd.ins_kenmerkdeel_waarde installatiedatum,
                   ins_de.ins_deel_opmerking,
                   ins_de.ins_deel_getekend
            FROM   ins_deel ins_de,
                   ins_tab_discipline ins_d,
                   prs_afdeling afd1,
                   prs_afdeling afd2,
                   prs_afdeling div1,
                   prs_afdeling div2,
                   prs_v_afdeling_boom bm1,
                   prs_v_afdeling_boom bm2,
                   (  SELECT   alg_r.alg_ruimte_key,
                               alg_g.alg_gebouw_code || '-' || alg_v.alg_verdieping_code || '-' || alg_r.alg_ruimte_nr
                                  alg_plaatsaanduiding,
                               alg_l.alg_locatie_code,
                               MAX (ra.prs_afdeling_key) huurderkey
                        FROM   alg_ruimte alg_r,
                               alg_verdieping alg_v,
                               alg_gebouw alg_g,
                               alg_locatie alg_l,
                               prs_ruimteafdeling ra
                       WHERE       alg_r.alg_verdieping_key = alg_v.alg_verdieping_key
                               AND alg_v.alg_gebouw_key = alg_g.alg_gebouw_key
                               AND ra.alg_ruimte_key(+) = alg_r.alg_ruimte_key
                               AND alg_g.alg_locatie_key = alg_l.alg_locatie_key
                    GROUP BY   alg_r.alg_ruimte_key,
                               alg_g.alg_gebouw_code,
                               alg_v.alg_verdieping_code,
                               alg_r.alg_ruimte_nr,
                               alg_l.alg_locatie_code) ins_ao,
                   ins_srtdeel ins_sd,
                   ins_srtgroep ins_sg,
                   ins_kenmerkdeel ikd,
                   ins_kenmerkdeel ikd2
           WHERE       ins_de.ins_deel_verwijder IS NULL
                   AND ikd.ins_deel_key(+) = ins_de.ins_deel_key
                   AND ikd.ins_kenmerk_key(+) = 27                  -- Installatiedatum
                   AND ikd2.ins_deel_key(+) = ins_de.ins_deel_key
                   AND ikd2.ins_kenmerk_key(+) = 26                 -- Afdeling
                   AND ins_de.ins_deel_parent_key IS NULL
                   AND afd1.prs_afdeling_key(+) = fac.safe_to_number (ikd2.ins_kenmerkdeel_waarde)
                   AND afd2.prs_afdeling_key(+) = ins_ao.huurderkey
                   AND bm1.prs_afdeling_key(+) = afd1.prs_afdeling_key
                   AND bm2.prs_afdeling_key(+) = afd2.prs_afdeling_key
                   AND div1.prs_afdeling_key(+) = bm1.prs_afdeling_key1
                   AND div2.prs_afdeling_key(+) = bm2.prs_afdeling_key1
                   AND ins_ao.alg_ruimte_key = ins_de.ins_alg_ruimte_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_d.ins_discipline_key = ins_de.ins_discipline_key
                   AND ins_de.ins_discipline_key = 278) dg;         -- ICT Hardware

-- Aantal PC's per divisie
CREATE OR REPLACE VIEW uwva_v_rap_pcs_divisie
AS
   SELECT   fclt_f_divisie, COUNT(*) aantal_pcs
     FROM   uwva_v_rap_pcs
     GROUP BY fclt_f_divisie;

-- aantal PC's per kostenplaats, per ruimte UWVA#19172
/* Formatted on 2-12-2010 13:48:06 (QP5 v5.136.908.31019) */
CREATE OR REPLACE FORCE VIEW uwva_v_rap_pcs_kostenplaats
(
   fclt_f_kostenplaats,
   omschrijving,
   fclt_f_locatie,
   fclt_f_verdieping,
   ruimte,
   aantal_pcs,
   fclt_f_budgethouder
)
AS
     SELECT   COALESCE (pckostenplaats, ruimtekostenplaats) fclt_f_kostenplaats,
              COALESCE (pcomschrijving, ruimteomschrijving, '*' || COALESCE (pcafdeling, '*' || ruimteafdeling))
                 omschrijving,
              alg_locatie_code fclt_f_locatie,
              alg_verdieping_code fclt_f_verdieping,
              dg.alg_plaatsaanduiding ruimte,
              COUNT ( * ) aantal_pcs,
              COALESCE (prsnaam1, prsnaam2) fclt_f_budgethouder
       FROM   (SELECT   kpl1.prs_kostenplaats_nr pckostenplaats,
                        DECODE (kpl1.prs_kostenplaats_key, NULL, NULL, kpl1.prs_kostenplaats_omschrijving) pcomschrijving,
                        kpl2.prs_kostenplaats_nr ruimtekostenplaats,
                        DECODE (kpl2.prs_kostenplaats_key, NULL, NULL, kpl2.prs_kostenplaats_omschrijving)
                           ruimteomschrijving,
                        afd1.prs_afdeling_naam pcafdeling,
                        afd2.prs_afdeling_naam ruimteafdeling,
                        prs1.prs_perslid_naam_full prsnaam1,
                        prs2.prs_perslid_naam_full prsnaam2,
                        ins_ao.alg_plaatsaanduiding,
                        alg_locatie_code,
                        alg_verdieping_code
                 FROM   ins_deel ins_de,
                        prs_afdeling afd1,
                        prs_afdeling afd2,
                        prs_kostenplaats kpl1,
                        prs_kostenplaats kpl2,
                        prs_v_perslid_fullnames prs1,
                        prs_v_perslid_fullnames prs2,
                        (  SELECT   alg_r.alg_ruimte_key,
                                       alg_g.alg_gebouw_code
                                    || '-'
                                    || alg_v.alg_verdieping_code
                                    || '-'
                                    || alg_r.alg_ruimte_nr
                                    || ' ('
                                    || COALESCE (alg_r.alg_ruimte_omschrijving, '??')
                                    || ')'
                                       alg_plaatsaanduiding,
                                    alg_v.alg_verdieping_code,
                                    alg_l.alg_locatie_code,
                                    MAX (ra.prs_afdeling_key) huurderkey
                             FROM   alg_ruimte alg_r,
                                    alg_verdieping alg_v,
                                    alg_gebouw alg_g,
                                    alg_locatie alg_l,
                                    prs_ruimteafdeling ra
                            WHERE       alg_r.alg_verdieping_key = alg_v.alg_verdieping_key
                                    AND alg_v.alg_gebouw_key = alg_g.alg_gebouw_key
                                    AND ra.alg_ruimte_key(+) = alg_r.alg_ruimte_key
                                    AND alg_g.alg_locatie_key = alg_l.alg_locatie_key
                         GROUP BY   alg_r.alg_ruimte_key,
                                    alg_g.alg_gebouw_code,
                                    alg_v.alg_verdieping_code,
                                    alg_r.alg_ruimte_nr,
                                    alg_r.alg_ruimte_omschrijving,
                                    alg_l.alg_locatie_code) ins_ao,
                        ins_srtdeel ins_sd,
                        ins_kenmerkdeel ikd,
                        ins_kenmerkdeel ikd2
                WHERE       ins_de.ins_deel_verwijder IS NULL
                        AND ikd.ins_deel_key(+) = ins_de.ins_deel_key
                        AND ikd.ins_kenmerk_key(+) = 27
                        AND ikd2.ins_deel_key(+) = ins_de.ins_deel_key
                        AND ikd2.ins_kenmerk_key(+) = 26
                        AND ins_de.ins_deel_parent_key IS NULL
                        AND afd1.prs_afdeling_key(+) = fac.safe_to_number (ikd2.ins_kenmerkdeel_waarde)
                        AND afd2.prs_afdeling_key(+) = ins_ao.huurderkey
                        AND ins_ao.alg_ruimte_key = ins_de.ins_alg_ruimte_key
                        AND ins_sd.ins_srtdeel_key = ins_de.ins_srtdeel_key
                        AND ins_de.ins_discipline_key = 278
                        AND afd1.prs_kostenplaats_key = kpl1.prs_kostenplaats_key(+)
                        AND afd2.prs_kostenplaats_key = kpl2.prs_kostenplaats_key(+)
                        AND prs1.prs_perslid_key(+) = kpl1.prs_perslid_key
                        AND prs2.prs_perslid_key(+) = kpl2.prs_perslid_key) dg
   GROUP BY   pckostenplaats,
              ruimtekostenplaats,
              pcomschrijving,
              ruimteomschrijving,
              pcafdeling,
              ruimteafdeling,
              prsnaam1,
              prsnaam2,
              alg_locatie_code,
              alg_verdieping_code,
              dg.alg_plaatsaanduiding;


-- Bevat CUST10-reminder naar LFM-er verantwoordelijk voor betreffende locatie
-- bij aanmaken/uitgeven specifieke opdracht op Intern:LFM.
-- Periodiciteit: elk uur (mbt. in het voorgaande uur aangemaakte opdrachten)!
/* Formatted on 8-4-2011 12:58:24 (QP5 v5.115.810.9015) */
CREATE OR REPLACE VIEW uwva_v_noti_lfm_reminder
(
   code,
   sender,
   receiver,
   text,
   KEY,
   par1,
   par2,
   xkey
)
AS
   SELECT   sn.fac_srtnotificatie_code,
            NULL,
            fac.safe_to_number (ok.alg_onrgoedkenmerk_waarde),
            REPLACE (sn.fac_srtnotificatie_oms,
                     '##STDM##',
                     sm.mld_stdmelding_omschrijving),
            o.mld_opdr_key,
            sm.mld_stdmelding_omschrijving,
            NULL,
            NULL
     FROM   mld_opdr o,
            mld_melding m,
            alg_v_aanwezigonrgoedkenmerk ok,
            mld_stdmelding sm,
            fac_srtnotificatie sn
    WHERE   o.mld_statusopdr_key IN (5, 8)         -- Uitgegeven/Geaccepteerd!
            AND o.mld_uitvoerende_keys = 33020                   -- Intern:LFM
            AND TO_NUMBER(TO_CHAR (
                             fac.gettrackingdate ('ORDNEW', o.mld_opdr_key),
                             'YYYYMMDDHH24'
                          ))
               + 1 >= TO_NUMBER (TO_CHAR (SYSDATE+1/1440, 'YYYYMMDDHH24'))
            AND o.mld_melding_key = m.mld_melding_key
            AND m.mld_stdmelding_key = sm.mld_stdmelding_key
            AND m.mld_alg_locatie_key = ok.alg_onrgoed_key
            AND ok.alg_onrgoed_niveau = 'L'
            AND ok.alg_kenmerk_key = 1020                               -- LFM
            AND sn.fac_srtnotificatie_code = 'CUST10';


------ payload end   ------

SET DEFINE OFF
BEGIN adm.systrackscriptId ('$Id$', 0); END;
/

COMMIT;
SET ECHO OFF
SPOOL OFF
SET DEFINE ON
PROMPT Logfile of this upgrade is: &fcltlogfile