-- Script containing customer specific db-configuration for KIBE.
-- (c) 2015 SG|facilitor bv
--
-- Support: +31 53 4800700
set echo on
spool xkibe.lst

CREATE OR REPLACE VIEW kibe_v_rap_import_log
(
   fclt_f_applicatie,
   datum,
   fclt_f_status,
   omschrijving,
   hint
)
AS
   SELECT COALESCE (fac_import_app_code, imp_log_applicatie),
          TO_CHAR (imp_log_datum, 'dd-mm-yyyy hh24:mi'),
          imp_log_status,
          imp_log_omschrijving,
          imp_log_hint
     FROM imp_log il1, fac_import fi1, fac_import_app fia1
    WHERE il1.fac_import_key = fi1.fac_import_key(+)
          AND fi1.fac_import_app_key = fia1.fac_import_app_key(+)
          AND NOT EXISTS
                (SELECT 1
                   FROM imp_log il2, fac_import fi2
                  WHERE     il2.fac_import_key = fi2.fac_import_key
                        AND fi2.fac_import_app_key = fi1.fac_import_app_key
                        AND il2.fac_import_key > il1.fac_import_key);

/* Formatted on 26-2-2015 15:10:05 (QP5 v5.136.908.31019) */
CREATE OR REPLACE PROCEDURE kibe_import_prs (p_import_key IN NUMBER)
AS
   v_errormsg       VARCHAR2 (1000) := '-';
   v_errorhint      VARCHAR2 (1000) := '-';
   oracle_err_num   NUMBER;
   oracle_err_mes   VARCHAR2 (200);
BEGIN
   v_errorhint := 'Generieke import';

   -- De sequence array staat beschreven in PRS_PAC.SRC bij de import_perslid-PROCEDURE.
   --"Accountnaam";"Achternaam";"Tussenvoegsel";"Voorletters";"Voornaam";"Kostenplaatscode";"Functie";"Email";"Telefoonnr";"Mobiel";"Gebouwcode";"Ruimtenr"
   prs.import_perslid (
      p_import_key,
         '0;0;0;0;0;0;6;2;3;5;'
      || '4;0;0;0;0;9;10;8;0;0;'
      || '7;1;0;0;0;0;6;0;0;0;'
      || '0;0;0;0;0;0;0;0;0;0;'
      || '0;0;0;0;0;0',
      '%"Accountnaam";"Achternaam";"Tussenvoegsel";"Voorletters";"Voornaam";"Kostenplaatscode";"Functie";"Email";"Telefoonnr";"Mobiel";"Gebouwcode";"Ruimtenr"%');

   -- Klantspecifieke aanpassingen.
   -- Locatie/gebouw/verdieping/ruimte herleiden via Kostenplaatscode-kolom (=alg_locatie_code)
   -- Met gebouwcode/ruimtenr uit import wordt helemaal niets gedaan (itt. specificatie)!
   -- Als persoon al een WP heeft op import-locatie, dan is dat de juiste en blijft deze
   -- (handmatig gecorrigeerde WP) ongewijzigd. In alle andere gevallen verhuist persoon naar
   -- fictieve ruimte '000' op de import-locatie.
   -- Eventuele WPs onder andere districten dan volgens import-locatie blijven ook ongewijzigd!
   UPDATE fac_imp_perslid i
      SET i.alg_locatie_code = i.prs_afdeling_naam,
          i.alg_gebouw_code = i.prs_afdeling_naam,
          i.alg_verdieping_volgnr = 0,
          i.alg_ruimte_nr = '000'
    WHERE NOT EXISTS                   -- Nog geen werkplek op nieuwe locatie!
             (SELECT 1
                FROM alg_locatie newl,
                     prs_v_aanwezigperslid p,
                     prs_perslidwerkplek pw,
                     prs_werkplek w,
                     alg_v_aanwezigruimte r,
                     alg_verdieping v,
                     alg_gebouw g,
                     alg_locatie curl
               WHERE UPPER (newl.alg_locatie_code) = UPPER (i.prs_afdeling_naam)
                     AND p.prs_perslid_oslogin = i.prs_perslid_oslogin
                     AND p.prs_perslid_key = pw.prs_perslid_key
                     AND pw.prs_werkplek_key = w.prs_werkplek_key
                     AND w.prs_alg_ruimte_key = r.alg_ruimte_key
                     AND r.alg_verdieping_key = v.alg_verdieping_key
                     AND v.alg_gebouw_key = g.alg_gebouw_key
                     AND g.alg_locatie_key = curl.alg_locatie_key
                     AND newl.alg_locatie_key = curl.alg_locatie_key);

   COMMIT;

   -- Afdelingscode herleiden via Kostenplaatscode-kolom (=alg_locatie_code)
   UPDATE fac_imp_perslid i
      SET i.prs_afdeling_naam =
             (SELECT MAX (a.prs_afdeling_upper)
                FROM alg_v_aanweziglocatie l,
                     alg_district d,
                     prs_v_aanwezigafdeling a
               WHERE UPPER (l.alg_locatie_code) = UPPER (i.prs_kenmerk1) --UPPER (i.prs_afdeling_naam)
                     AND l.alg_district_key = d.alg_district_key
                     AND UPPER (d.alg_district_omschrijving) = UPPER (a.prs_afdeling_omschrijving)
                     AND a.prs_bedrijf_key = 2
                     AND a.niveau = 1)
    WHERE EXISTS
             (SELECT 1
                FROM alg_v_aanweziglocatie l,
                     alg_district d,
                     prs_v_aanwezigafdeling a
               WHERE UPPER (l.alg_locatie_code) = UPPER (i.prs_kenmerk1) --UPPER (i.prs_afdeling_naam)
                     AND l.alg_district_key = d.alg_district_key
                     AND UPPER (d.alg_district_omschrijving) = UPPER (a.prs_afdeling_omschrijving)
                     AND a.prs_bedrijf_key = 2
                     AND a.niveau = 1);

   COMMIT;

   -- Als Kostenplaatscode-kolom == 9xxx (en niet via locatie te herleiden), dan Afdelingscode = HK
   UPDATE fac_imp_perslid i
      SET i.prs_afdeling_naam =
             (SELECT prs_afdeling_upper
                FROM prs_afdeling
               WHERE prs_afdeling_key = 21)                              -- HK
    WHERE i.prs_afdeling_naam LIKE '9%'
          AND NOT EXISTS     -- Iedereen die niet via locatie was te herleiden
                (SELECT 1
                   FROM alg_v_aanweziglocatie l,
                        alg_district d,
                        prs_v_aanwezigafdeling a
                  WHERE UPPER (l.alg_locatie_code) = UPPER (i.prs_kenmerk1) --UPPER (i.prs_afdeling_naam)
                        AND l.alg_district_key = d.alg_district_key
                        AND UPPER (d.alg_district_omschrijving) = UPPER (a.prs_afdeling_omschrijving)
                        AND a.prs_bedrijf_key = 2
                        AND a.niveau = 1);

   COMMIT;

   -- Als Kostenplaatscode-kolom != 9xxx (en niet via locatie te herleiden), dan Afdelingscode = ONB
   UPDATE fac_imp_perslid i
      SET i.prs_afdeling_naam =
             (SELECT prs_afdeling_upper
                FROM prs_afdeling
               WHERE prs_afdeling_key = 1)                              -- ONB
    WHERE i.prs_afdeling_naam NOT LIKE '9%'
          AND NOT EXISTS     -- Iedereen die niet via locatie was te herleiden
                (SELECT 1
                   FROM alg_v_aanweziglocatie l,
                        alg_district d,
                        prs_v_aanwezigafdeling a
                  WHERE UPPER (l.alg_locatie_code) = UPPER (i.prs_kenmerk1) --UPPER (i.prs_afdeling_naam)
                        AND l.alg_district_key = d.alg_district_key
                        AND UPPER (d.alg_district_omschrijving) = UPPER (a.prs_afdeling_omschrijving)
                        AND a.prs_bedrijf_key = 2
                        AND a.niveau = 1);

   COMMIT;
EXCEPTION
   WHEN OTHERS
   THEN
      oracle_err_num := SQLCODE;
      oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
      v_errormsg :=
         'ORACLE (error ' || oracle_err_num || '/' || oracle_err_mes || ') ';
      fac.imp_writelog (p_import_key,
                        'E',
                        v_errormsg || v_errorhint,
                        'Inleesproces personen afgebroken!');
END kibe_import_prs;
/

/* Formatted on 20-2-2015 14:42:24 (QP5 v5.136.908.31019) */
CREATE OR REPLACE PROCEDURE kibe_update_prs (p_import_key IN NUMBER)
IS
   -- Maximaal percentage aan nieuwe medewerkers tov. actieve medewerkers met een e-mail
   c_max_delta_percentage   NUMBER (10) := 20;                         -- 20%!
   v_count_prs_import       NUMBER (10);     -- #actieve personen  na  import!
   v_count_prs_actual       NUMBER (10);     -- #actieve personen voor import!

   -- Let op! Personen die niet meer in dienst zijn -> niet in fac_imp_perslid!
   -- Dubbele oslogins? Dan wordt iemand mogelijk niet verwijderd/INACTIEF!
   CURSOR c_del
   IS
        SELECT p.prs_perslid_key, p.prs_perslid_oslogin
          FROM prs_v_aanwezigperslid p
         WHERE (p.prs_perslid_oslogin IS NULL
                OR p.prs_perslid_oslogin NOT LIKE '\_%' ESCAPE '\') -- ' tbv. opmaak
               AND p.prs_perslid_oslogin2 IS NULL
               AND NOT EXISTS
                     (SELECT 1
                        FROM fac_imp_perslid i
                       WHERE UPPER (i.prs_perslid_oslogin) = UPPER (p.prs_perslid_oslogin))
      ORDER BY 2, 1;
BEGIN
   -- Bepaal oslogin-match tussen Facilitor en RECENT importbestand ofwel het aantal
   -- actieve personen na import.
   -- RECENT betekent niet meer dan een kwartiertje oud (14,4 minuten); dit voorkomt
   -- dat - als er geen nieuw importbestand is aangeleverd - telkens dezelfde fouten
   -- worden gerapporteerd (nl. op basis van een oud bestand in FAC_IMP_PERSLID).
   SELECT COUNT ( * )
     INTO v_count_prs_import
     FROM prs_v_aanwezigperslid p, fac_imp_perslid i
    WHERE p.prs_perslid_oslogin IS NOT NULL
          AND UPPER (p.prs_perslid_oslogin) = UPPER (i.prs_perslid_oslogin);

   -- Bepaal huidig aantal actieve personen in Facilitor.
   SELECT DECODE (COUNT ( * ), 0, 1, COUNT ( * ))
     INTO v_count_prs_actual
     FROM prs_v_aanwezigperslid
    WHERE prs_perslid_oslogin IS NOT NULL;

   IF (TRUNC ( (v_count_prs_import / v_count_prs_actual) * 100) < (100 - c_max_delta_percentage))
   THEN
      fac.imp_writelog (
         p_import_key,
         'E',
         'Verschil tussen huidig aantal en te importeren aantal personen te groot; zie specificatie!',
            '- max. verschilpercentage = ['
         || TO_CHAR (c_max_delta_percentage)
         || '%]'
         || CHR (13)
         || CHR (10)
         || '- #personen/import = ['
         || TO_CHAR (v_count_prs_import)
         || ']'
         || CHR (13)
         || CHR (10)
         || '- #personen/huidig = ['
         || TO_CHAR (v_count_prs_actual)
         || ']');

      RETURN;
   END IF;

   -- Generieke update.
   prs.update_perslid (p_import_key, 'LOGIN', 'D');

   -- Verwijder personen die niet meer in de import voorkomen.
   FOR rec IN c_del
   LOOP
      prs.delete_perslid (p_import_key, rec.prs_perslid_key);
   END LOOP;
END kibe_update_prs;
/


/* Formatted on 13-3-2015 10:14:18 (QP5 v5.136.908.31019) */
CREATE OR REPLACE VIEW kibe_v_rap_cnt_basis
(
   contractsoort_key,
   contractsoort,
   contractnummer,
   mantel,
   beschrijving,
   omschrijving,
   ingangsdatum,
   rappeldatum,
   rappeltermijn,
   opzegdatum,
   opzegtermijn,
   einddatum,
   contract_eigenaar,
   contract_beheerder,
   prs_bedrijf_naam,
   factuurperiode,
   jaarkosten,
   termijnkosten,
   maandkosten,
   tot_loc,
   alg_locatie_key,
   m2
)
AS
   SELECT basis.contractsoort_key,
          basis.contractsoort,
          basis.nummer,
          basis.mantel,
          basis.beschrijving,
          basis.omschrijving,
          TO_CHAR (basis.ingangsdatum, 'dd-mm-yyyy'),
          TO_CHAR (basis.rappeldatum, 'dd-mm-yyyy'),
          basis.rappeltermijn,
          TO_CHAR (basis.opzegdatum, 'dd-mm-yyyy'),
          basis.opzegtermijn,
          TO_CHAR (basis.einddatum, 'dd-mm-yyyy'),
          basis.contract_eigenaar,
          basis.contract_beheerder,
          basis.prs_bedrijf_naam,
          basis.factuurperiode,
          DECODE (             -- Wat als looptijd < jaar of veelvoud periode?
             COALESCE (basis.jaarkosten, 0),
             0,
             DECODE (basis.factuurperiode,
                     NULL, TO_NUMBER (NULL),
                     (basis.termijnkosten / basis.factuurperiode) * 12),
             basis.jaarkosten),
          basis.termijnkosten,
          DECODE (             -- Wat als looptijd < jaar of veelvoud periode?
             COALESCE (basis.termijnkosten, 0),
             0,
             basis.jaarkosten / 12,
             DECODE (basis.factuurperiode,
                     NULL, TO_NUMBER (NULL),
                     basis.termijnkosten / basis.factuurperiode)),
          scp1.tot_loc,
          scp2.alg_locatie_key,
          opp.m2
     FROM (SELECT c.cnt_contract_key,
                  cd.ins_discipline_key contractsoort_key,
                  cd.ins_discipline_omschrijving contractsoort,
                  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,
                  (SELECT t.cnt_termijn_omschrijving
                     FROM cnt_termijn t
                    WHERE t.cnt_termijn_key = c.cnt_contract_rappeltermijn)
                     rappeltermijn,
                  cnt.cnt_getopzegdatum (c.cnt_contract_key) opzegdatum,
                  (SELECT t.cnt_termijn_omschrijving
                     FROM cnt_termijn t
                    WHERE t.cnt_termijn_key = c.cnt_contract_opzegtermijn)
                     opzegtermijn,
                  c.cnt_contract_looptijd_tot einddatum,
                  c.cnt_contract_kosten jaarkosten,
                  c.cnt_contract_termijnkosten termijnkosten,
                  a.prs_afdeling_upper || '-' || a.prs_afdeling_omschrijving
                     contract_eigenaar,
                  p.prs_perslid_naam_full contract_beheerder,
                  b.prs_bedrijf_naam,
                  (SELECT fac.safe_to_number (ud.fac_usrdata_code)
                     FROM cnt_kenmerkcontract kc, cnt_kenmerk k, fac_usrdata ud
                    WHERE     kc.cnt_kenmerkcontract_verwijder IS NULL
                          AND kc.cnt_kenmerk_key = k.cnt_kenmerk_key
                          AND k.cnt_kenmerk_verwijder IS NULL
                          AND k.cnt_srtkenmerk_key = 2    -- Facturatieperiode
                          AND kc.cnt_contract_key = c.cnt_contract_key
                          AND fac.safe_to_number (kc.cnt_kenmerkcontract_waarde) = ud.fac_usrdata_key)
                     factuurperiode
             FROM cnt_v_aanwezigcontract c,
                  cnt_discipline cd,
                  cnt_v_aanwezigcontract m,
                  prs_afdeling a,
                  prs_v_perslid_fullnames p,
                  prs_bedrijf b
            WHERE     c.ins_discipline_key = cd.ins_discipline_key
                  AND cd.ins_discipline_key IN (22, 23, 24, 121) -- Huur, Schoonmaak, Energie, Telefonie/Internet
                  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 cnt_contract_key,
                              COUNT ( * ) tot_loc,
                              SUM (cnt_contract_plaats_gewicht) tot_gew
                         FROM cnt_contract_plaats
                        WHERE cnt_contract_plaats_verwijder IS NULL
                     GROUP BY cnt_contract_key) scp1
             ON basis.cnt_contract_key = scp1.cnt_contract_key
          LEFT JOIN (SELECT cp.cnt_contract_key,
                            l.alg_locatie_key,
                            cp.cnt_contract_plaats_gewicht loc_gew
                       FROM cnt_contract_plaats cp, alg_v_aanweziglocatie l
                      WHERE     cp.cnt_contract_plaats_verwijder IS NULL
                            AND cp.cnt_alg_plaats_code = 'L'
                            AND cp.cnt_alg_plaats_key = l.alg_locatie_key
                     UNION ALL
                       SELECT cp.cnt_contract_key,
                              l.alg_locatie_key,
                              SUM (cp.cnt_contract_plaats_gewicht) loc_gew
                         FROM cnt_contract_plaats cp,
                              alg_v_aanweziggebouw g,
                              alg_v_aanweziglocatie l
                        WHERE     cp.cnt_contract_plaats_verwijder IS NULL
                              AND cp.cnt_alg_plaats_code = 'G'
                              AND cp.cnt_alg_plaats_key = g.alg_gebouw_key
                              AND g.alg_locatie_key = l.alg_locatie_key
                     GROUP BY cp.cnt_contract_key, l.alg_locatie_key) scp2
             ON basis.cnt_contract_key = scp2.cnt_contract_key
          LEFT JOIN (  SELECT g.alg_locatie_key,
                              SUM (r.alg_ruimte_bruto_vloeropp) m2
                         FROM alg_v_aanwezigruimte r,
                              alg_v_aanwezigverdieping v,
                              alg_v_aanweziggebouw g
                        WHERE r.alg_verdieping_key = v.alg_verdieping_key
                              AND v.alg_gebouw_key = g.alg_gebouw_key
                     GROUP BY g.alg_locatie_key) opp
             ON scp2.alg_locatie_key = opp.alg_locatie_key;

/* Formatted on 18-2-2015 13:36:24 (QP5 v5.136.908.31019) */
CREATE OR REPLACE VIEW kibe_v_rap_cntkst_unitgemloc
(
   fclt_f_unit,
   fclt_f_gemeente,
   fclt_f_vestiging,
   kindplaatsen,
   omzetbegroting,
   m2,
   huur_jj,
   --huur_mm,
   huur_m2,
   schoonmaak_jj,
   --schoonmaak_mm,
   schoonmaak_m2,
   energie_jj,
   --energie_mm,
   energie_m2,
   overig_jj,
   overig_m2,
   tot_jj,
   tot_m2,
   tot_kp,
   tot_perc,
   fclt_3d_locatie_key
)
AS
   SELECT COALESCE (l.unit, 'Onbekend'),
          COALESCE (l.gemeente, 'Onbekend'),
          DECODE (l.alg_locatie_key,
                  -1, 'Onbekend',
                  l.alg_locatie_code || '-' || l.alg_locatie_omschrijving)
             vestiging,
          l.kindplaatsen,
          l.omzetbegroting,
          opp.m2,
          x.huur_jj,
          --huur_mm,
          DECODE (opp.m2,
                  NULL, TO_NUMBER (NULL),
                  0, TO_NUMBER (NULL),
                  ROUND (x.huur_jj / opp.m2, 2)),
          schoonmaak_jj,
          --schoonmaak_mm,
          DECODE (opp.m2,
                  NULL, TO_NUMBER (NULL),
                  0, TO_NUMBER (NULL),
                  ROUND (x.schoonmaak_jj / opp.m2, 2)),
          energie_jj,
          --energie_mm,
          DECODE (opp.m2,
                  NULL, TO_NUMBER (NULL),
                  0, TO_NUMBER (NULL),
                  ROUND (x.energie_jj / opp.m2, 2)),
          overig_jj,
          DECODE (opp.m2,
                  NULL, TO_NUMBER (NULL),
                  0, TO_NUMBER (NULL),
                  ROUND (x.overig_jj / opp.m2, 2)),
          x.huur_jj + x.schoonmaak_jj + x.energie_jj + x.overig_jj tot_jj,
          DECODE (
             opp.m2,
             NULL,
             TO_NUMBER (NULL),
             0,
             TO_NUMBER (NULL),
             ROUND (
                (x.huur_jj + x.schoonmaak_jj + x.energie_jj + x.overig_jj)
                / opp.m2,
                2))
             tot_m2,
          DECODE (
             kindplaatsen,
             NULL,
             TO_NUMBER (NULL),
             0,
             TO_NUMBER (NULL),
             ROUND (
                (x.huur_jj + x.schoonmaak_jj + x.energie_jj + x.overig_jj)
                / l.kindplaatsen,
                2))
             tot_kp,
          DECODE (
             omzetbegroting,
             NULL,
             TO_NUMBER (NULL),
             0,
             TO_NUMBER (NULL),
             ROUND (
                ( (x.huur_jj + x.schoonmaak_jj + x.energie_jj + x.overig_jj)
                 / l.omzetbegroting)
                * 100,
                2))
             tot_perc,
          x.alg_locatie_key
     FROM (  SELECT alg_locatie_key,
                    SUM (huur_jj) huur_jj,
                    --SUM (huur_mm) huur_mm,
                    SUM (schoonmaak_jj) schoonmaak_jj,
                    --SUM (schoonmaak_mm) schoonmaak_mm,
                    SUM (energie_jj) energie_jj,
                    --SUM (energie_mm) energie_mm,
                    SUM (overig_jj) overig_jj
               FROM (SELECT DECODE (tot_loc, 1, alg_locatie_key, -1)
                               alg_locatie_key,
                            jaarkosten huur_jj,
                            --maandkosten huur_mm,
                            0 schoonmaak_jj,
                            --0 schoonmaak_mm,
                            0 energie_jj,
                            --0 energie_mm,
                            0 overig_jj
                       FROM kibe_v_rap_cnt_basis
                      WHERE contractsoort_key = 22                     -- Huur
                     UNION ALL
                     SELECT DECODE (tot_loc, 1, alg_locatie_key, -1)
                               alg_locatie_key,
                            0 huur_jj,
                            --0 huur_mm,
                            jaarkosten schoonmaak_jj,
                            --maandkosten schoonmaak_mm,
                            0 energie_jj,
                            --0 energie_mm,
                            0 overig_jj
                       FROM kibe_v_rap_cnt_basis
                      WHERE contractsoort_key = 23               -- Schoonmaak
                     UNION ALL
                     SELECT DECODE (tot_loc, 1, alg_locatie_key, -1)
                               alg_locatie_key,
                            0 huur_jj,
                            --0 huur_mm,
                            0 schoonmaak_jj,
                            --0 schoonmaak_mm,
                            jaarkosten energie_jj,
                            --maandkosten energie_mm,
                            0 overig_jj
                       FROM kibe_v_rap_cnt_basis
                      WHERE contractsoort_key = 24                  -- Energie
                     UNION ALL
                     SELECT DECODE (tot_loc, 1, alg_locatie_key, -1)
                               alg_locatie_key,
                            0 huur_jj,
                            --0 huur_mm,
                            0 schoonmaak_jj,
                            --0 schoonmaak_mm,
                            0 energie_jj,
                            --0 energie_mm,
                            jaarkosten overig_jj
                       FROM kibe_v_rap_cnt_basis
                      WHERE contractsoort_key NOT IN (22, 23, 24))
           GROUP BY alg_locatie_key) x
          LEFT JOIN (SELECT l.alg_locatie_key,
                            d.alg_district_omschrijving unit,
                            (SELECT ud.fac_usrdata_omschr
                               FROM alg_onrgoedkenmerk ok, fac_usrdata ud
                              WHERE ok.alg_onrgoedkenmerk_verwijder IS NULL
                                    AND ok.alg_kenmerk_key = 1000  -- Gemeente
                                    AND ok.alg_onrgoed_key =
                                          l.alg_locatie_key
                                    AND fac.safe_to_number (
                                          ok.alg_onrgoedkenmerk_waarde) =
                                          ud.fac_usrdata_key)
                               gemeente,
                            l.alg_locatie_code,
                            l.alg_locatie_omschrijving,
                            (SELECT ok.alg_onrgoedkenmerk_waarde
                               FROM alg_onrgoedkenmerk ok
                              WHERE ok.alg_onrgoedkenmerk_verwijder IS NULL
                                    AND ok.alg_kenmerk_key = 1066
                                    AND ok.alg_onrgoed_key =
                                          l.alg_locatie_key)   -- Kindplaatsen
                               kindplaatsen,
                            (SELECT ok.alg_onrgoedkenmerk_waarde
                               FROM alg_onrgoedkenmerk ok
                              WHERE ok.alg_onrgoedkenmerk_verwijder IS NULL
                                    AND ok.alg_kenmerk_key = 1067
                                    AND ok.alg_onrgoed_key =
                                          l.alg_locatie_key) -- Omzetbegroting
                               omzetbegroting
                       FROM alg_v_aanweziglocatie l, alg_v_aanwezigdistrict d
                      WHERE l.alg_district_key = d.alg_district_key) l
             ON x.alg_locatie_key = l.alg_locatie_key
          LEFT JOIN (  SELECT g.alg_locatie_key,
                              SUM (r.alg_ruimte_bruto_vloeropp) m2
                         FROM alg_v_aanwezigruimte r,
                              alg_v_aanwezigverdieping v,
                              alg_v_aanweziggebouw g
                        WHERE r.alg_verdieping_key = v.alg_verdieping_key
                              AND v.alg_gebouw_key = g.alg_gebouw_key
                     GROUP BY g.alg_locatie_key) opp
             ON x.alg_locatie_key = opp.alg_locatie_key;

CREATE OR REPLACE VIEW kibe_v_rap_cntkst_bedrsrtloc
(
   fclt_f_bedrijf,
   fclt_f_contractsoort,
   einddatum,
   fclt_f_vestiging,
   m2,
   kosten_jj,
   kosten_m2,
   fclt_3d_locatie_key
)
AS
   SELECT x.prs_bedrijf_naam,
          x.contractsoort,
          x.einddatum,
          DECODE (COALESCE (x.tot_loc, 0),
                  0, 'Onbekend',
                  1, l.alg_locatie_code || '-' || l.alg_locatie_omschrijving,
                  'Meerdere locaties')
             vestiging,
          x.m2,
          x.jaarkosten,
          DECODE (x.m2,
                  NULL, TO_NUMBER (NULL),
                  0, TO_NUMBER (NULL),
                  ROUND (x.jaarkosten / x.m2, 2)),
          x.alg_locatie_key
     FROM kibe_v_rap_cnt_basis x, alg_locatie l
    WHERE x.alg_locatie_key = l.alg_locatie_key(+);

/*
   WITH c AS (
   )
   SELECT c.mantel || c.nummer || TO_CHAR (x.maand, 'yyyy-mm') sortering,
          TO_CHAR (x.maand, 'dd-mm-yyyy') vantot,
          --TO_CHAR (x.maand, 'yyyy-mm') maand,
          c.nummer,
          c.mantel,
          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,
          TO_CHAR (c.begindatum, 'dd-mm-yyyy'),
          TO_CHAR (c.einddatum, 'dd-mm-yyyy'),
          c.opzegtermijn,
          TO_CHAR (c.opzegdatum, 'dd-mm-yyyy'),
          c.contractstatus,
          c.optie_systematiek,
          c.mndkosten_incl_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 26-1-2015 10:42:24 (QP5 v5.136.908.31019) */
CREATE OR REPLACE VIEW kibe_v_rap_alg_onrgoed1_expimp
(
   regioomschrijving,
   districtomschrijving,
   locatiecode,
   locatieomschrijving,
   gebouwcode,
   gebouwomschrijving,
   gebouwfunctie,
   contactpersoon,
   telefoonnummer,
   bezoekadres,
   bezoek_postcode,
   bezoek_plaats,
   bezoek_land,
   postadres,
   post_postcode,
   post_plaats,
   post_land
)
AS
   SELECT r.alg_regio_omschrijving regioomschrijving,
          d.alg_district_omschrijving districtomschrijving,
          l.alg_locatie_code locatiecode,
          l.alg_locatie_omschrijving locatieomschrijving,
          g.alg_gebouw_code gebouwcode,
          g.alg_gebouw_omschrijving gebouwomschrijving,
          sg.alg_srtgebouw_omschrijving gebouwfunctie,
          l.alg_locatie_verantw contactpersoon,
          l.alg_locatie_verantw_tel telefoonnummer,
          l.alg_locatie_adres bezoekadres,
          l.alg_locatie_postcode bezoek_postcode,
          l.alg_locatie_plaats bezoek_plaats,
          l.alg_locatie_land bezoek_land,
          l.alg_locatie_post_adres postadres,
          l.alg_locatie_post_postcode post_postcode,
          l.alg_locatie_post_plaats post_plaats,
          l.alg_locatie_post_land post_land
     FROM alg_v_aanwezigregio r,
          alg_v_aanwezigdistrict d,
          alg_v_aanweziglocatie l,
          alg_v_aanweziggebouw g,
          alg_srtgebouw sg
    WHERE     r.alg_regio_key = d.alg_regio_key
          AND d.alg_district_key = l.alg_district_key
          AND l.alg_locatie_key = g.alg_locatie_key
          AND g.alg_srtgebouw_key = sg.alg_srtgebouw_key(+);

/* Formatted on 3-2-2015 12:58:02 (QP5 v5.136.908.31019) */
CREATE OR REPLACE VIEW kibe_v_rap_wf_bewaking
(
   fclt_f_wf,
   stap,
   mld_key,
   behandelaar,
   sla_wtg,
   cur_wtg,
   afm_wtg
)
AS
   SELECT ws.mld_stdmelding_omschrijving,
             wd.mld_workflowstep_omschrijving
          || ' '
          || wd.mld_stdmelding_omschrijving
             stap,
          wi.mld_melding_key,
          wi.prs_perslid_naam_friendly,
          TO_CHAR (wd.mld_stdmelding_malus) sla_wtg,
          TO_CHAR (
             FLOOR ( (od.geplande_openingsdatum - TRUNC (SYSDATE)) / 7))
             cur_wtg,
          TO_CHAR (
             FLOOR ( (mldafm.fac_tracking_datum - TRUNC (SYSDATE)) / 7))
             afm_wtg
     FROM (SELECT m.mld_melding_start_key,
                  ws.mld_workflowstep_key,
                  sm.mld_stdmelding_omschrijving
             FROM mld_melding m, mld_workflowstep ws, mld_stdmelding sm
            WHERE     m.mld_melding_key = m.mld_melding_start_key  -- WF-start
                  AND m.mld_melding_status NOT IN (1, 5, 6) -- Lopende melding
                  AND m.mld_stdmelding_key = ws.mld_stdmelding_key
                  AND ws.mld_stdmelding_key = sm.mld_stdmelding_key) ws
          LEFT JOIN (SELECT ws.mld_workflowstep_start_key,
                            ws.mld_stdmelding_key,
                            ws.mld_workflowstep_omschrijving,
                            sm.mld_stdmelding_omschrijving,
                            sm.mld_stdmelding_malus
                       FROM mld_workflowstep ws, mld_stdmelding sm
                      WHERE ws.mld_workflowstep_start_key IS NOT NULL
                            AND ws.mld_stdmelding_key = sm.mld_stdmelding_key)
                    wd                                         -- WF-definitie
             ON ws.mld_workflowstep_key = wd.mld_workflowstep_start_key
          LEFT JOIN (SELECT m.mld_melding_start_key,
                            m.mld_stdmelding_key,
                            m.mld_melding_key,
                            pf.prs_perslid_naam_friendly
                       FROM mld_melding m, prs_v_perslid_fullnames_all pf
                      WHERE m.mld_melding_start_key IS NOT NULL
                            AND m.mld_melding_behandelaar_key =
                                  pf.prs_perslid_key(+)) wi    -- WF-instantie
             ON ws.mld_melding_start_key = wi.mld_melding_start_key
                AND wd.mld_stdmelding_key = wi.mld_stdmelding_key
          LEFT JOIN               -- Geplande openingsdatum (van startmelding)
                    (SELECT mld_melding_key,
                            fac.safe_to_date (mld_kenmerkmelding_waarde,
                                              'dd-mm-yyyy')
                               geplande_openingsdatum
                       FROM mld_v_aanwezigkenmerkmelding
                      WHERE mld_kenmerk_key = 161) od
             ON ws.mld_melding_start_key = od.mld_melding_key
          LEFT JOIN                                                  -- MLDAFM
                   fac_tracking mldafm
             ON wi.mld_melding_key = mldafm.fac_tracking_refkey
                AND mldafm.fac_srtnotificatie_key = 38;

/* Formatted on 26-2-2015 16:30:30 (QP5 v5.136.908.31019) */
CREATE OR REPLACE VIEW kibe_v_noti_wf_bewaking
(
   code,
   sender,
   receiver,
   text,
   key,
   par1,
   par2,
   xkey
)
AS
   SELECT DISTINCT
          sn.fac_srtnotificatie_code,
          NULL,
          gg.prs_perslid_key,                                -- BO-medewerkers
          REPLACE (
             REPLACE (sn.fac_srtnotificatie_oms,
                      '##KEY##',
                      m.mld_melding_key),
             '##WTG##',                                           -- WeeksToGo
             FLOOR( (fac.safe_to_date (od.mld_kenmerkmelding_waarde,
                                       'dd-mm-yyyy')
                     - TRUNC (SYSDATE))
                   / 7)),
          m.mld_melding_key,
          NULL,
          NULL,
          NULL
     FROM mld_workflowstep ws,
          mld_melding m,
          mld_stdmelding sm,
          ins_tab_discipline td,
          fac_groeprechten gr,
          fac_gebruikersgroep gg,
          mld_v_aanwezigkenmerkmelding od,                    -- Openingsdatum
          fac_srtnotificatie sn
    WHERE     ws.mld_workflowstep_start_key IS NOT NULL
          AND ws.mld_stdmelding_key = m.mld_stdmelding_key
          AND m.mld_melding_status NOT IN (1, 5, 6)         -- Lopende melding
          AND m.mld_stdmelding_key = sm.mld_stdmelding_key
          AND sm.mld_stdmelding_malus IS NOT NULL        -- Te bewaken WF-step
          AND sm.mld_ins_discipline_key = td.ins_discipline_key
          AND td.ins_discipline_key = gr.ins_discipline_key
          AND gr.fac_groep_key BETWEEN 21 AND 49    -- Te notificeren BO-groep
          AND gr.fac_groep_key = gg.fac_groep_key
          AND m.mld_melding_start_key = od.mld_melding_key
          AND od.mld_kenmerk_key = 161               -- Geplande openingsdatum
          AND sm.mld_stdmelding_malus >
                FLOOR( (fac.safe_to_date (od.mld_kenmerkmelding_waarde,
                                          'dd-mm-yyyy')
                        - TRUNC (SYSDATE))
                      / 7)
          AND sn.fac_srtnotificatie_code = 'CUST01'
   UNION                   -- Te bewaken NV-WF-steps op basis van vink-velden!
   SELECT DISTINCT
          sn.fac_srtnotificatie_code,
          NULL,
          gg.prs_perslid_key,                                 -- BO-medewerker
          REPLACE (
             REPLACE (sn.fac_srtnotificatie_oms,
                      '##KEY##',
                      m.mld_melding_key),
             '##WTG##',                                           -- WeeksToGo
             FLOOR( (fac.safe_to_date (od.mld_kenmerkmelding_waarde,
                                       'dd-mm-yyyy')
                     - TRUNC (SYSDATE))
                   / 7)),
          m.mld_melding_key,
          NULL,
          NULL,
          NULL
     FROM mld_melding m,
          mld_stdmelding sm,
          ins_tab_discipline td,
          fac_groeprechten gr,
          fac_gebruikersgroep gg,
          mld_v_aanwezigkenmerkmelding od,                    -- Openingsdatum
          fac_srtnotificatie sn
    WHERE     m.mld_stdmelding_key BETWEEN 131 AND 139  -- WF-step met vinkjes
          AND m.mld_melding_status NOT IN (1, 5, 6)         -- Lopende melding
          AND m.mld_stdmelding_key = sm.mld_stdmelding_key
          AND sm.mld_ins_discipline_key = td.ins_discipline_key
          AND td.ins_discipline_key = gr.ins_discipline_key
          AND gr.fac_groep_key BETWEEN 21 AND 49    -- Te notificeren BO-groep
          AND gr.fac_groep_key = gg.fac_groep_key
          AND m.mld_melding_start_key = od.mld_melding_key
          AND od.mld_kenmerk_key = 161              -- Geplande openingsdatum!
          AND NOT EXISTS
                (SELECT 1
                   FROM mld_v_aanwezigkenmerkmelding vv,
                        mld_kenmerk k,
                        mld_srtkenmerk sk
                  WHERE     vv.mld_melding_key = m.mld_melding_key
                        AND vv.mld_kenmerk_key = k.mld_kenmerk_key
                        AND k.mld_srtkenmerk_key = sk.mld_srtkenmerk_key
                        AND sk.mld_srtkenmerk_kenmerktype = 'V'
                        AND vv.mld_kenmerkmelding_waarde != '1'
                        AND COALESCE (
                              fac.safe_to_number (sk.mld_srtkenmerk_dimensie),
                              0) >
                              FLOOR( (fac.safe_to_date (
                                         od.mld_kenmerkmelding_waarde,
                                         'dd-mm-yyyy')
                                      - TRUNC (SYSDATE))
                                    / 7))                        -- Aangevinkt
          AND sn.fac_srtnotificatie_code = 'CUST01'
   UNION                   -- Te bewaken SV-WF-steps op basis van vink-velden!
   SELECT DISTINCT
          sn.fac_srtnotificatie_code,
          NULL,
          gg.prs_perslid_key,                                 -- BO-medewerker
          REPLACE (
             REPLACE (sn.fac_srtnotificatie_oms,
                      '##KEY##',
                      m.mld_melding_key),
             '##WTG##',                                           -- WeeksToGo
             FLOOR( (fac.safe_to_date (sd.mld_kenmerkmelding_waarde,
                                       'dd-mm-yyyy')
                     - TRUNC (SYSDATE))
                   / 7)),
          m.mld_melding_key,
          NULL,
          NULL,
          NULL
     FROM mld_melding m,
          mld_stdmelding sm,
          ins_tab_discipline td,
          fac_groeprechten gr,
          fac_gebruikersgroep gg,
          mld_v_aanwezigkenmerkmelding sd,                   -- Sluitingsdatum
          fac_srtnotificatie sn
    WHERE     m.mld_stdmelding_key BETWEEN 161 AND 169  -- WF-step met vinkjes
          AND m.mld_melding_status NOT IN (1, 5, 6)         -- Lopende melding
          AND m.mld_stdmelding_key = sm.mld_stdmelding_key
          AND sm.mld_ins_discipline_key = td.ins_discipline_key
          AND td.ins_discipline_key = gr.ins_discipline_key
          AND gr.fac_groep_key BETWEEN 21 AND 49    -- Te notificeren BO-groep
          AND gr.fac_groep_key = gg.fac_groep_key
          AND m.mld_melding_start_key = sd.mld_melding_key
          AND sd.mld_kenmerk_key = 261             -- Geplande sluitingsdatum!
          AND NOT EXISTS
                (SELECT 1
                   FROM mld_v_aanwezigkenmerkmelding vv,
                        mld_kenmerk k,
                        mld_srtkenmerk sk
                  WHERE     vv.mld_melding_key = m.mld_melding_key
                        AND vv.mld_kenmerk_key = k.mld_kenmerk_key
                        AND k.mld_srtkenmerk_key = sk.mld_srtkenmerk_key
                        AND sk.mld_srtkenmerk_kenmerktype = 'V'
                        AND vv.mld_kenmerkmelding_waarde != '1'
                        AND COALESCE (
                              fac.safe_to_number (sk.mld_srtkenmerk_dimensie),
                              0) >
                              FLOOR( (fac.safe_to_date (
                                         sd.mld_kenmerkmelding_waarde,
                                         'dd-mm-yyyy')
                                      - TRUNC (SYSDATE))
                                    / 7))                        -- Aangevinkt
          AND sn.fac_srtnotificatie_code = 'CUST01';

/* Formatted on 13-2-2015 13:32:28 (QP5 v5.136.908.31019) */
CREATE OR REPLACE VIEW kibe_v_export_afas
(
   administratie,
   code_dagboek,
   kenmerk_rekening,
   rekeningnummer,
   datum_boeking,
   boekstukdatum,
   boekstuknummer,
   factuurnummer,
   omschrijving_boeking,
   bedrag,
   btw_code,
   aantal,
   valutacode,
   koers,
   valutabedrag,
   boekingsoort,
   vervaldatum,
   blokkeren_voor_betaling,
   nummer_reservering,
   nummer_verplichting,
   automatisch_betalen_incasso,                 -- automatisch betalen/incasso
   campagne,
   jaar,
   periode,
   afboeken,                                          -- afboeken (res./verpl)
   bankafschrift_id,
   nr_bankafschriftmutatie,                        -- nr. bankafschriftmutatie
   betalingskenmerk,
   beoordelaar,
   batchnummer,
   terugbetalen,
   transitorische_post,
   nr_journaalpost_bron_tp,       -- nr. journaalpost bron transitorische post
   volgnummer_bron_tp,                   -- volgnumer bron transitorische post
   actief,
   salarisverwerkingsplan,
   betalingsvoorwaarde,
   afwijkende_betaalrekening,
   dossieritem,
   nummer_bestand,
   verkoopordernummer,
   afletterreferentie,
   docid,
   kostenplaats,
   kostendrager,
   code_verbijzonderingsas_3,
   code_verbijzonderingsas_4,
   code_verbijzonderingsas_5,
   journaalpostid,                               -- journaalpostid (optioneel)
   afwijkende_betaalrekening2                     -- afwijkende_betaalrekening
)
AS
   SELECT '2' administratie,
          '6000' code_dagboek,
          'G' kenmerk_rekening,
          '420000' rekeningnummer,
          TO_CHAR (LAST_DAY (ADD_MONTHS (SYSDATE, -1)), 'dd-mm-yyyy')
             datum_boeking,
          TO_CHAR (LAST_DAY (ADD_MONTHS (SYSDATE, -1)), 'dd-mm-yyyy')
             boekstukdatum,
          NULL boekstuknummer,
          NULL factuurnummer,
             'Huur '
          || TO_CHAR (LAST_DAY (ADD_MONTHS (SYSDATE, -1)), 'yyyy-mm')
          || '  '
          || scp2.alg_locatie_omschrijving
             omschrijving_boeking,
          DECODE (             -- Wat als looptijd < jaar of veelvoud periode?
             COALESCE (basis.termijnkosten, 0),
             0,
             basis.jaarkosten / 12,
             DECODE (basis.factuurperiode,
                     NULL, TO_NUMBER (NULL),
                     basis.termijnkosten / basis.factuurperiode))
             bedrag,
          NULL btw_code,
          1 aantal,
          NULL valutacode,
          NULL koers,
          DECODE (             -- Wat als looptijd < jaar of veelvoud periode?
             COALESCE (basis.termijnkosten, 0),
             0,
             basis.jaarkosten / 12,
             DECODE (basis.factuurperiode,
                     NULL, TO_NUMBER (NULL),
                     basis.termijnkosten / basis.factuurperiode))
             valutabedrag,
          NULL boekingsoort,
          NULL vervaldatum,
          'N' blokkeren_voor_betaling,
          NULL nummer_reservering,
          NULL nummer_verplichting,
          'N' automatisch_betalen_incasso,      -- automatisch betalen/incasso
          NULL campagne,
          NULL jaar,
          NULL periode,
          'N' afboeken,                               -- afboeken (res./verpl)
          NULL bankafschrift_id,
          NULL nr_bankafschriftmutatie,            -- nr. bankafschriftmutatie
          NULL betalingskenmerk,
          NULL beoordelaar,
          NULL batchnummer,
          'N' terugbetalen,
          'N' transitorische_post,
          NULL nr_journaalpost_bron_tp, -- nr. journaalpost bron transitorische post
          NULL volgnummer_bron_tp,       -- volgnumer bron transitorische post
          NULL actief,
          NULL salarisverwerkingsplan,
          NULL betalingsvoorwaarde,
          NULL afwijkende_betaalrekening,
          NULL dossieritem,
          NULL nummer_bestand,
          NULL verkoopordernummer,
          NULL afletterreferentie,
          NULL docid,
          scp2.alg_locatie_code kostenplaats,
          NULL kostendrager,
          NULL code_verbijzonderingsas_3,
          NULL code_verbijzonderingsas_4,
          NULL code_verbijzonderingsas_5,
          NULL journaalpostid,                   -- journaalpostid (optioneel)
          NULL afwijkende_betaalrekening2         -- afwijkende_betaalrekening
     FROM (SELECT c.cnt_contract_key,
                  --c.cnt_contract_nummer_intern nummer,
                  --c.cnt_contract_document omschrijving,
                  --c.cnt_contract_looptijd_van ingangsdatum,
                  --c.cnt_contract_looptijd_tot einddatum,
                  c.cnt_contract_kosten jaarkosten,
                  c.cnt_contract_termijnkosten termijnkosten,
                  (SELECT fac.safe_to_number (ud.fac_usrdata_code)
                     FROM cnt_kenmerkcontract kc,
                          cnt_kenmerk k,
                          fac_usrdata ud
                    WHERE     kc.cnt_kenmerkcontract_verwijder IS NULL
                          AND kc.cnt_kenmerk_key = k.cnt_kenmerk_key
                          AND k.cnt_kenmerk_verwijder IS NULL
                          AND k.cnt_srtkenmerk_key = 2    -- Facturatieperiode
                          AND kc.cnt_contract_key = c.cnt_contract_key
                          AND fac.safe_to_number (
                                kc.cnt_kenmerkcontract_waarde) =
                                ud.fac_usrdata_key)
                     factuurperiode
             FROM cnt_v_aanwezigcontract c
            WHERE c.ins_discipline_key = 22                            -- Huur
                  AND c.cnt_contract_looptijd_tot >=
                        LAST_DAY (ADD_MONTHS (SYSDATE, -1))) basis
          LEFT JOIN (  SELECT cnt_contract_key,
                              COUNT ( * ) tot_loc,
                              SUM (cnt_contract_plaats_gewicht) tot_gew
                         FROM cnt_contract_plaats
                        WHERE cnt_contract_plaats_verwijder IS NULL
                     GROUP BY cnt_contract_key) scp1
             ON basis.cnt_contract_key = scp1.cnt_contract_key
          LEFT JOIN (SELECT cp.cnt_contract_key,
                            l.alg_locatie_key,
                            l.alg_locatie_code,
                            l.alg_locatie_omschrijving,
                            cp.cnt_contract_plaats_gewicht loc_gew
                       FROM cnt_contract_plaats cp, alg_v_aanweziglocatie l
                      WHERE     cp.cnt_contract_plaats_verwijder IS NULL
                            AND cp.cnt_alg_plaats_code = 'L'
                            AND cp.cnt_alg_plaats_key = l.alg_locatie_key
                     UNION ALL
                       SELECT cp.cnt_contract_key,
                              l.alg_locatie_key,
                              l.alg_locatie_code,
                              l.alg_locatie_omschrijving,
                              SUM (cp.cnt_contract_plaats_gewicht) loc_gew
                         FROM cnt_contract_plaats cp,
                              alg_v_aanweziggebouw g,
                              alg_v_aanweziglocatie l
                        WHERE     cp.cnt_contract_plaats_verwijder IS NULL
                              AND cp.cnt_alg_plaats_code = 'G'
                              AND cp.cnt_alg_plaats_key = g.alg_gebouw_key
                              AND g.alg_locatie_key = l.alg_locatie_key
                     GROUP BY cp.cnt_contract_key,
                              l.alg_locatie_key,
                              l.alg_locatie_code,
                              l.alg_locatie_omschrijving) scp2
             ON basis.cnt_contract_key = scp2.cnt_contract_key
          LEFT JOIN (  SELECT g.alg_locatie_key,
                              SUM (r.alg_ruimte_bruto_vloeropp) m2
                         FROM alg_v_aanwezigruimte r,
                              alg_v_aanwezigverdieping v,
                              alg_v_aanweziggebouw g
                        WHERE r.alg_verdieping_key = v.alg_verdieping_key
                              AND v.alg_gebouw_key = g.alg_gebouw_key
                     GROUP BY g.alg_locatie_key) opp
             ON scp2.alg_locatie_key = opp.alg_locatie_key;

BEGIN adm.systrackscriptId('$Id$', 0); END;
/
BEGIN fac.registercustversion('KIBE', 1); END;
/
commit;
spool off
