--
-- $Id$
--
-- Script containing customer specific db-configuration for WTCA.
DEFINE thisfile = 'WTCA.SQL'
DEFINE dbuser   = '^WTCA'

SET ECHO ON
SET DEFINE ON
COLUMN fcltlogfile NEW_VALUE fcltlogfile NOPRINT;
COLUMN fcltcusttxt NEW_VALUE fcltcusttxt NOPRINT;
WHENEVER SQLERROR CONTINUE;
SELECT adm.getscriptspoolfile('&thisfile') AS fcltlogfile FROM DUAL;
SPOOL &fcltlogfile
WHENEVER SQLERROR EXIT;
SELECT adm.checkscriptcust('&dbuser') AS fcltcusttxt FROM DUAL;
WHENEVER SQLERROR CONTINUE;
---------------------------------------
PROMPT &fcltcusttxt
---------------------------------------
SET DEFINE OFF

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

/* Formatted on 6-9-2010 15:44:44 (QP5 v5.115.810.9015) */
CREATE OR REPLACE PACKAGE WTCA
AS
   -- PACKAGES voor de WTCA specifieke ondersteuning
   PROCEDURE freezeopdrachten (p_uv_key IN NUMBER);
   FUNCTION bepaal_wtc_kantooruren (van_date IN DATE, tot_date IN DATE)
      RETURN NUMBER;
END;
/

/* Formatted on 16-9-2010 14:15:16 (QP5 v5.115.810.9015) */
CREATE OR REPLACE PACKAGE BODY WTCA
AS
   PROCEDURE freezeopdrachten (p_uv_key IN NUMBER)
   AS
      -- Cursor loopt over alle opdrachten naar Uitvoerende 'p_uv_key' die voor
      -- de 1e van deze maand (technisch) zijn afgerond; deze worden "bevroren"
      -- ofwel administratief afgemeld!
      CURSOR c1
      IS
         SELECT   mld_opdr_key
           FROM   mld_opdr o, prs_kostenplaats kp
          WHERE       o.mld_statusopdr_key = 9                           -- KV
                  AND o.mld_uitvoerende_keys = p_uv_key
                  AND o.prs_kostenplaats_key = kp.prs_kostenplaats_key
                  AND kp.prs_kostenplaats_upper = 'WTC'
                  AND fac.gettrackingdate ('ORDAFR', o.mld_opdr_key) <
                        TO_DATE (TO_CHAR (SYSDATE, 'yyyymm') || '01',
                                 'yyyymmdd');

      c_applname       VARCHAR2 (50) := 'FREEZE_OPDR';
      v_errormsg       VARCHAR2 (1000);
      oracle_err_num   NUMBER;
      oracle_err_mes   VARCHAR2 (200);
      v_count          NUMBER (10);
      v_count_upd      NUMBER (10);
      v_bedrijf_naam   VARCHAR2 (30);
   BEGIN
      v_count_upd := 0;

      -- Controleer bestaan uitvoerende.
      v_errormsg := 'Fout bij bepalen uitvoerende.';

      SELECT   b.prs_bedrijf_naam
        INTO   v_bedrijf_naam
        FROM   prs_v_aanwezigbedrijf b
       WHERE   b.prs_bedrijf_key = p_uv_key AND b.prs_bedrijf_uitvoerende = 1;

      -- AV-verklaren opdrachten naar Uitvoerende 'p_uv_key' die voor de 1e van
      -- deze maand (technisch) zijn afgemeld!
      FOR rec IN c1
      LOOP
         MLD.setopdrachtstatus (rec.mld_opdr_key, 7, 4);

         v_count_upd := v_count_upd + 1;

         COMMIT;
      END LOOP;

      fac.writelog (
         c_applname,
         'S',
         'Proces: ' || TO_CHAR (v_count_upd) || ' opdrachten bevroren',
         ''
      );
      COMMIT;
   EXCEPTION
      WHEN OTHERS
      THEN
         oracle_err_num := SQLCODE;
         oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
         v_errormsg :=
               v_errormsg
            || ' ORACLE (error '
            || oracle_err_num
            || '/'
            || oracle_err_mes
            || ')';
         fac.writelog (c_applname,
                       'E',
                       v_errormsg,
                       '');
         COMMIT;
   END freezeopdrachten;

   FUNCTION bepaal_wtc_kantooruren (van_date IN DATE, tot_date IN DATE)
      RETURN NUMBER
   IS
      c_kt_van      NUMBER := 8.5;
      c_kt_tot      NUMBER := 17.5;
      v_dl          NUMBER;
      lbackwards    BOOLEAN;
      v_van_date    DATE;
      v_van_uur     NUMBER;
      v_tot_date    DATE;
      v_tot_uur     NUMBER;
      v_loop_date   DATE;
      v_count       NUMBER;
   BEGIN
      v_dl := 0;

      IF (van_date > tot_date)
      THEN
         v_van_date :=
            TO_DATE (TO_CHAR (tot_date, 'yyyymmddhh24mi'), 'yyyymmddhh24mi');
         v_tot_date :=
            TO_DATE (TO_CHAR (van_date, 'yyyymmddhh24mi'), 'yyyymmddhh24mi');
         lbackwards := TRUE;
      ELSE
         v_van_date :=
            TO_DATE (TO_CHAR (van_date, 'yyyymmddhh24mi'), 'yyyymmddhh24mi');
         v_tot_date :=
            TO_DATE (TO_CHAR (tot_date, 'yyyymmddhh24mi'), 'yyyymmddhh24mi');
         lbackwards := FALSE;
      END IF;

      v_loop_date := TRUNC (van_date);

      IF ( ( ( (v_van_date - TRUNC (v_van_date)) * 24) - c_kt_van) < 0)
      THEN
         v_van_uur := c_kt_van;
      ELSE
         IF ( ( ( (v_van_date - TRUNC (v_van_date)) * 24) - c_kt_tot) < 0)
         THEN
            v_van_uur := (v_van_date - TRUNC (v_van_date)) * 24;
         ELSE
            v_van_uur := c_kt_tot;
         END IF;
      END IF;

      IF ( ( ( (v_tot_date - TRUNC (v_tot_date)) * 24) - c_kt_van) < 0)
      THEN
         v_tot_uur := c_kt_van;
      ELSE
         IF ( ( ( (v_tot_date - TRUNC (v_tot_date)) * 24) - c_kt_tot) < 0)
         THEN
            v_tot_uur := (v_tot_date - TRUNC (v_tot_date)) * 24;
         ELSE
            v_tot_uur := c_kt_tot;
         END IF;
      END IF;

      WHILE (v_loop_date <= v_tot_date)
      LOOP
         SELECT   COUNT ( * )
           INTO   v_count
           FROM   mld_vrije_dagen
          WHERE   mld_vrije_dagen_datum = v_loop_date;

         IF (v_count = 0 AND TO_CHAR (v_loop_date, 'd') NOT IN ('1', '7'))
         THEN
            CASE
               WHEN TRUNC (v_van_date) = TRUNC (v_tot_date)
               THEN
                  v_dl := v_dl + (v_tot_uur - v_van_uur);
               WHEN v_loop_date = TRUNC (v_van_date)
               THEN
                  v_dl := v_dl + (c_kt_tot - v_van_uur);
               WHEN v_loop_date = TRUNC (v_tot_date)
               THEN
                  v_dl := v_dl + (v_tot_uur - c_kt_van);
               ELSE
                  v_dl := v_dl + (c_kt_tot - c_kt_van);
            END CASE;
         END IF;

         v_loop_date := v_loop_date + 1;
      END LOOP;

      IF lbackwards
      THEN
         RETURN 0 - v_dl;
      ELSE
         RETURN v_dl;
      END IF;
   END;
END;
/

-- WTCA#52410: Controle-rapportage H- en UV-inrichting.
CREATE OR REPLACE VIEW wtca_v_rap_relatie_controle
(
   fclt_f_controle,
   controle_ref
)
AS
   SELECT 'H-afdeling leeg', a.prs_afdeling_naam || '-' || a.prs_afdeling_omschrijving
     FROM prs_afdeling a
    WHERE a.prs_afdeling_verwijder IS NULL
          AND a.prs_bedrijf_key = 61                               -- Huurders
          AND a.prs_afdeling_parentkey IS NULL
          AND NOT EXISTS
                (SELECT 1
                   FROM prs_v_aanwezigperslid p
                  WHERE p.prs_afdeling_key = a.prs_afdeling_key)
   UNION ALL
   SELECT 'H-afdeling zonder logins', a.prs_afdeling_naam || '-' || a.prs_afdeling_omschrijving
     FROM prs_afdeling a
    WHERE a.prs_afdeling_verwijder IS NULL
          AND a.prs_bedrijf_key = 61                               -- Huurders
          AND a.prs_afdeling_parentkey IS NULL
          AND EXISTS
                (SELECT 1
                   FROM prs_v_aanwezigperslid p
                  WHERE p.prs_afdeling_key = a.prs_afdeling_key)
          AND NOT EXISTS
                (SELECT 1
                   FROM prs_v_aanwezigperslid p
                  WHERE COALESCE (p.prs_perslid_oslogin, p.prs_perslid_oslogin2) IS NOT NULL
                        AND p.prs_afdeling_key = a.prs_afdeling_key)
   --UNION ALL
   --SELECT DISTINCT 'H-afdeling met logins niet gelinkt aan H-relatie', a.prs_afdeling_naam || '-' || a.prs_afdeling_omschrijving
   --  FROM prs_afdeling a, prs_v_aanwezigperslid ap
   -- WHERE a.prs_afdeling_verwijder IS NULL
   --       AND a.prs_bedrijf_key = 61                               -- Huurders
   --       AND a.prs_afdeling_parentkey IS NULL
   --       AND a.prs_afdeling_key = ap.prs_afdeling_key
   --       AND COALESCE (ap.prs_perslid_oslogin, ap.prs_perslid_oslogin2) IS NOT NULL
   --       AND NOT EXISTS
   --             (SELECT 1
   --                FROM prs_contactpersoon cp, prs_bedrijf b, prs_perslid p
   --               WHERE cp.prs_contactpersoon_verwijder IS NULL
   --                     AND cp.prs_bedrijf_key = b.prs_bedrijf_key
   --                     AND b.prs_bedrijf_verwijder IS NULL
   --                     AND cp.prs_perslid_key = p.prs_perslid_key
   --                     AND p.prs_afdeling_key = ap.prs_afdeling_key)
   UNION ALL
   SELECT DISTINCT 'H-afdeling gelinkt aan H-relatie via persoon zonder login', a.prs_afdeling_naam || '-' || a.prs_afdeling_omschrijving || '/' || p.prs_perslid_naam
     FROM prs_afdeling a, prs_v_aanwezigperslid p
    WHERE a.prs_afdeling_verwijder IS NULL
          AND a.prs_bedrijf_key = 61                               -- Huurders
          AND a.prs_afdeling_parentkey IS NULL
          AND a.prs_afdeling_key = p.prs_afdeling_key
          AND COALESCE (p.prs_perslid_oslogin, p.prs_perslid_oslogin2) IS NULL
          AND EXISTS
                (SELECT 1
                   FROM prs_contactpersoon cp, prs_bedrijf b
                  WHERE cp.prs_contactpersoon_verwijder IS NULL
                        AND cp.prs_bedrijf_key = b.prs_bedrijf_key
                        AND b.prs_bedrijf_verwijder IS NULL
                        AND cp.prs_perslid_key = p.prs_perslid_key)
   UNION ALL
   SELECT DISTINCT 'H-relatie gelinkt aan H-afdeling via verwijderde persoon', a.prs_afdeling_naam || '-' || a.prs_afdeling_omschrijving || '/' || cp.prs_contactpersoon_naam
     FROM prs_afdeling a, prs_perslid p, prs_contactpersoon cp, prs_bedrijf b
    WHERE a.prs_afdeling_verwijder IS NULL
          AND a.prs_bedrijf_key = 61                               -- Huurders
          AND a.prs_afdeling_parentkey IS NULL
          AND a.prs_afdeling_key = p.prs_afdeling_key
          AND p.prs_perslid_verwijder IS NOT NULL
          AND p.prs_perslid_key = cp.prs_perslid_key
          AND cp.prs_contactpersoon_verwijder IS NULL
          AND cp.prs_bedrijf_key = b.prs_bedrijf_key
          AND b.prs_bedrijf_verwijder IS NULL
   UNION ALL
   SELECT DISTINCT 'H-afdeling niet dezelfde naam als gelinkte H-relatie', a.prs_afdeling_omschrijving || ' <> ' || b.prs_bedrijf_naam
     FROM prs_afdeling a, prs_perslid p, prs_contactpersoon cp, prs_bedrijf b
    WHERE a.prs_afdeling_verwijder IS NULL
          AND a.prs_bedrijf_key = 61                               -- Huurders
          AND a.prs_afdeling_parentkey IS NULL
          AND a.prs_afdeling_key = p.prs_afdeling_key
          AND p.prs_perslid_key = cp.prs_perslid_key
          AND cp.prs_contactpersoon_verwijder IS NULL
          AND cp.prs_bedrijf_key = b.prs_bedrijf_key
          AND b.prs_bedrijf_verwijder IS NULL
          AND UPPER (a.prs_afdeling_omschrijving) != TRIM (b.prs_bedrijf_naam_upper)
   UNION ALL
   SELECT '***H-account niet gelinkt aan H-relatie met RELUSE-rechten', a.prs_afdeling_naam || '-' || a.prs_afdeling_omschrijving || '/' || p.prs_perslid_naam
     FROM prs_afdeling a, prs_v_aanwezigperslid p
    WHERE a.prs_afdeling_verwijder IS NULL
          AND a.prs_bedrijf_key = 61                               -- Huurders
          AND a.prs_afdeling_parentkey IS NULL
          AND a.prs_afdeling_key = p.prs_afdeling_key
          AND COALESCE (p.prs_perslid_oslogin, p.prs_perslid_oslogin2) IS NOT NULL
          AND NOT EXISTS
                (SELECT 1
                   FROM prs_contactpersoon cp, prs_bedrijf b
                  WHERE cp.prs_contactpersoon_verwijder IS NULL
                        AND cp.prs_bedrijf_key = b.prs_bedrijf_key
                        AND b.prs_bedrijf_verwijder IS NULL
                        AND cp.prs_perslid_key = p.prs_perslid_key)
          AND EXISTS
                (SELECT 1
                   FROM fac_gebruikersgroep gg, fac_groeprechten gr
                  WHERE gg.fac_groep_key = gr.fac_groep_key
                        AND gr.fac_functie_key IN (43, 462)   -- RELMAN/RELUSE
                        AND gg.prs_perslid_key = p.prs_perslid_key)
   UNION ALL
   SELECT 'UV-afdeling leeg', a.prs_afdeling_naam || '-' || a.prs_afdeling_omschrijving
     FROM prs_afdeling a
    WHERE a.prs_afdeling_verwijder IS NULL
          AND a.prs_afdeling_parentkey = 341                             -- UV
          AND NOT EXISTS
                (SELECT 1
                   FROM prs_v_aanwezigperslid p
                  WHERE p.prs_afdeling_key = a.prs_afdeling_key)
   UNION ALL
   SELECT 'UV-afdeling zonder logins', a.prs_afdeling_naam || '-' || a.prs_afdeling_omschrijving
     FROM prs_afdeling a
    WHERE a.prs_afdeling_verwijder IS NULL
          AND a.prs_afdeling_parentkey = 341                             -- UV
          AND EXISTS
                (SELECT 1
                   FROM prs_v_aanwezigperslid p
                  WHERE p.prs_afdeling_key = a.prs_afdeling_key)
          AND NOT EXISTS
                (SELECT 1
                   FROM prs_v_aanwezigperslid p
                  WHERE COALESCE (p.prs_perslid_oslogin, p.prs_perslid_oslogin2) IS NOT NULL
                        AND p.prs_afdeling_key = a.prs_afdeling_key)
   UNION ALL
   SELECT DISTINCT 'UV-afdeling met logins niet gelinkt aan UV-relatie', a.prs_afdeling_naam || '-' || a.prs_afdeling_omschrijving
     FROM prs_afdeling a, prs_v_aanwezigperslid ap
    WHERE a.prs_afdeling_verwijder IS NULL
          AND a.prs_afdeling_parentkey = 341                             -- UV
          AND a.prs_afdeling_key = ap.prs_afdeling_key
          AND COALESCE (ap.prs_perslid_oslogin, ap.prs_perslid_oslogin2) IS NOT NULL
          AND NOT EXISTS
                (SELECT 1
                   FROM prs_contactpersoon cp, prs_bedrijf b, prs_perslid p
                  WHERE cp.prs_contactpersoon_verwijder IS NULL
                        AND cp.prs_bedrijf_key = b.prs_bedrijf_key
                        AND b.prs_bedrijf_verwijder IS NULL
                        AND cp.prs_perslid_key = p.prs_perslid_key
                        AND p.prs_afdeling_key = ap.prs_afdeling_key)
   UNION ALL
   SELECT DISTINCT 'UV-afdeling gelinkt aan UV-relatie via persoon zonder login', a.prs_afdeling_naam || '-' || a.prs_afdeling_omschrijving || '/' || p.prs_perslid_naam
     FROM prs_afdeling a, prs_v_aanwezigperslid p
    WHERE a.prs_afdeling_verwijder IS NULL
          AND a.prs_afdeling_parentkey = 341                             -- UV
          AND a.prs_afdeling_key = p.prs_afdeling_key
          AND COALESCE (p.prs_perslid_oslogin, p.prs_perslid_oslogin2) IS NULL
          AND EXISTS
                (SELECT 1
                   FROM prs_contactpersoon cp, prs_bedrijf b
                  WHERE cp.prs_contactpersoon_verwijder IS NULL
                        AND cp.prs_bedrijf_key = b.prs_bedrijf_key
                        AND b.prs_bedrijf_verwijder IS NULL
                        AND cp.prs_perslid_key = p.prs_perslid_key)
   UNION ALL
   SELECT DISTINCT 'UV-relatie gelinkt aan UV-afdeling via verwijderde persoon', a.prs_afdeling_naam || '-' || a.prs_afdeling_omschrijving || '/' || cp.prs_contactpersoon_naam
     FROM prs_afdeling a, prs_perslid p, prs_contactpersoon cp, prs_bedrijf b
    WHERE a.prs_afdeling_verwijder IS NULL
          AND a.prs_afdeling_parentkey = 341                             -- UV
          AND a.prs_afdeling_key = p.prs_afdeling_key
          AND p.prs_perslid_verwijder IS NOT NULL
          AND p.prs_perslid_key = cp.prs_perslid_key
          AND cp.prs_contactpersoon_verwijder IS NULL
          AND cp.prs_bedrijf_key = b.prs_bedrijf_key
          AND b.prs_bedrijf_verwijder IS NULL
   UNION ALL
   SELECT DISTINCT 'UV-afdeling niet dezelfde naam als gelinkte UV-relatie', a.prs_afdeling_omschrijving || ' <> ' || b.prs_bedrijf_naam
     FROM prs_afdeling a, prs_perslid p, prs_contactpersoon cp, prs_bedrijf b
    WHERE a.prs_afdeling_verwijder IS NULL
          AND a.prs_afdeling_parentkey = 341                             -- UV
          AND a.prs_afdeling_key = p.prs_afdeling_key
          AND p.prs_perslid_key = cp.prs_perslid_key
          AND cp.prs_contactpersoon_verwijder IS NULL
          AND cp.prs_bedrijf_key = b.prs_bedrijf_key
          AND b.prs_bedrijf_verwijder IS NULL
          AND UPPER (a.prs_afdeling_omschrijving) != TRIM (b.prs_bedrijf_naam_upper)
   UNION ALL
   SELECT '***UV-account niet gelinkt aan UV-relatie met RELUSE-rechten', a.prs_afdeling_naam || '-' || a.prs_afdeling_omschrijving || '/' || p.prs_perslid_naam
     FROM prs_afdeling a, prs_v_aanwezigperslid p
    WHERE a.prs_afdeling_verwijder IS NULL
          AND a.prs_afdeling_parentkey = 341                             -- UV
          AND a.prs_afdeling_key = p.prs_afdeling_key
          AND COALESCE (p.prs_perslid_oslogin, p.prs_perslid_oslogin2) IS NOT NULL
          AND NOT EXISTS
                (SELECT 1
                   FROM prs_contactpersoon cp, prs_bedrijf b
                  WHERE cp.prs_contactpersoon_verwijder IS NULL
                        AND cp.prs_bedrijf_key = b.prs_bedrijf_key
                        AND b.prs_bedrijf_verwijder IS NULL
                        AND cp.prs_perslid_key = p.prs_perslid_key)
          AND EXISTS
                (SELECT 1
                   FROM fac_gebruikersgroep gg, fac_groeprechten gr
                  WHERE gg.fac_groep_key = gr.fac_groep_key
                        AND gr.fac_functie_key IN (43, 462)   -- RELMAN/RELUSE
                        AND gg.prs_perslid_key = p.prs_perslid_key)
   UNION ALL
   SELECT '***UV-account niet gelinkt aan UV-relatie met ORDxxx-rechten', a.prs_afdeling_naam || '-' || a.prs_afdeling_omschrijving || '/' || p.prs_perslid_naam
     FROM prs_afdeling a, prs_v_aanwezigperslid p
    WHERE a.prs_afdeling_verwijder IS NULL
          AND a.prs_afdeling_parentkey = 341                             -- UV
          AND a.prs_afdeling_key = p.prs_afdeling_key
          AND COALESCE (p.prs_perslid_oslogin, p.prs_perslid_oslogin2) IS NOT NULL
          AND NOT EXISTS
                (SELECT 1
                   FROM prs_contactpersoon cp, prs_bedrijf b
                  WHERE cp.prs_contactpersoon_verwijder IS NULL
                        AND cp.prs_bedrijf_key = b.prs_bedrijf_key
                        AND b.prs_bedrijf_verwijder IS NULL
                        AND cp.prs_perslid_key = p.prs_perslid_key)
          AND EXISTS
                (SELECT 1
                   FROM fac_gebruikersgroep gg, fac_groeprechten gr
                  WHERE gg.fac_groep_key = gr.fac_groep_key
                        AND gr.fac_functie_key IN (31, 32, 34, 35, 242) -- ORDBOF/ORDBO2/ORDSUP/ORDFIN/ORDAFR
                        AND gg.prs_perslid_key = p.prs_perslid_key);

-- Dummy export NACHTWERK!
-- WTCA#52410: Automatisch toevoegen/verwijderen H-relaties (incl. contactpersoon).
CREATE OR REPLACE PROCEDURE wtca_select_nachtwerk (p_applname   IN VARCHAR2,
                                                   p_applrun    IN VARCHAR2)
AS
   -- Auto-afmelden Verhuis en transport aanvragen 3 werkdagen na de ingevulde
   -- transportdatum-tot en alleen als status=Geaccepteerd!
   CURSOR c_mldafm
   IS
        SELECT '[' || TO_CHAR (m.mld_melding_key) || '] ' aanduiding,
               m.mld_melding_key
          FROM mld_melding m, mld_kenmerkmelding km, mld_kenmerk k
         WHERE m.mld_stdmelding_key IN (3923, 3924) -- Verhuis en transport aanvragen
               AND m.mld_melding_status = 4                    -- Geaccepteerd
               AND m.mld_melding_key = km.mld_melding_key
               AND km.mld_kenmerk_key = k.mld_kenmerk_key
               AND k.mld_srtkenmerk_key = 406            -- Transportdatum-tot
               AND fac.count_work_days (fac.safe_to_date (km.mld_kenmerkmelding_waarde, 'dd-mm-yyyy'), SYSDATE) >= 4
      ORDER BY m.mld_melding_key;

   CURSOR c_huurderrel_new
   IS
        SELECT '[' || a.prs_afdeling_omschrijving || '] ' aanduiding,
               a.prs_afdeling_key, a.prs_afdeling_naam, a.prs_afdeling_omschrijving,
               MIN (ap.prs_perslid_key) prs_perslid_key,
               COUNT ( * ) aantal
          FROM prs_afdeling a, prs_v_aanwezigperslid ap
         WHERE a.prs_afdeling_verwijder IS NULL
               AND a.prs_bedrijf_key = 61                          -- Huurders
               AND a.prs_afdeling_parentkey IS NULL
               AND a.prs_afdeling_key = ap.prs_afdeling_key
               AND COALESCE (ap.prs_perslid_oslogin, ap.prs_perslid_oslogin2) IS NOT NULL
               AND NOT EXISTS
                     (SELECT 1
                        FROM prs_contactpersoon cp, prs_bedrijf b, prs_perslid p
                       WHERE cp.prs_contactpersoon_verwijder IS NULL
                             AND cp.prs_bedrijf_key = b.prs_bedrijf_key
                             AND b.prs_bedrijf_verwijder IS NULL
                             AND cp.prs_perslid_key = p.prs_perslid_key
                             AND p.prs_afdeling_key = a.prs_afdeling_key)
      GROUP BY '[' || a.prs_afdeling_omschrijving || '] ',
               a.prs_afdeling_key, a.prs_afdeling_naam, a.prs_afdeling_omschrijving;

   CURSOR c_huurderrel_del
   IS
      SELECT DISTINCT '[' || b.prs_bedrijf_naam || '] ' aanduiding,
             b.prs_bedrijf_key, b.prs_bedrijf_naam, p.prs_perslid_key
        FROM prs_afdeling a, prs_perslid p, prs_contactpersoon cp, prs_bedrijf b
       WHERE a.prs_afdeling_verwijder IS NULL
             AND a.prs_bedrijf_key = 61                            -- Huurders
             AND a.prs_afdeling_parentkey IS NULL
             AND a.prs_afdeling_key = p.prs_afdeling_key
             AND p.prs_perslid_key = cp.prs_perslid_key
             AND cp.prs_contactpersoon_verwijder IS NULL
             AND cp.prs_bedrijf_key = b.prs_bedrijf_key
             AND b.prs_bedrijf_verwijder IS NULL
             AND NOT EXISTS
                   (SELECT 1
                      FROM prs_v_aanwezigperslid p
                     WHERE p.prs_afdeling_key = a.prs_afdeling_key);

   c_groep_cp       NUMBER (10) := 381;         -- Contactpersonenbeheer-groep
   v_errormsg       VARCHAR2 (1000);
   oracle_err_num   NUMBER;
   oracle_err_mes   VARCHAR2 (200);
   v_bedrijf_key    NUMBER;
   v_count          NUMBER;
BEGIN
   v_count := 0;

   -- Auto-afmelden Verhuis en transport aanvragen 3 werkdagen na de ingevulde
   -- transportdatum-tot.
   FOR rec IN c_mldafm
   LOOP
      BEGIN
         v_errormsg := 'Fout auto-afmelden';

         MLD.setmeldingstatus (rec.mld_melding_key, 5, NULL);
         v_count := v_count + 1;
      EXCEPTION
         WHEN OTHERS
         THEN
            oracle_err_num := SQLCODE;
            oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
            v_errormsg := v_errormsg || ' ORACLE (error ' || oracle_err_num || '/' || oracle_err_mes || ')';
            fac.writelog (p_applname, 'W', rec.aanduiding || v_errormsg, '');
            COMMIT;
      END;
   END LOOP;

   fac.writelog (p_applname, 'S', 'Verhuis en transport aanvragen/#afgemeld: ' || TO_CHAR (v_count), '');

   v_count := 0;

   FOR rec IN c_huurderrel_new
   LOOP
      BEGIN
         v_errormsg := 'Fout toevoegen H-relatie';

         INSERT INTO prs_bedrijf (prs_bedrijf_naam,
                                  prs_bedrijf_opmerking,
                                  prs_bedrijf_uitvoerende,
                                  prs_bedrijf_huurder)
             VALUES (rec.prs_afdeling_omschrijving,
                     'Automatisch aangemaakt',
                     NULL,
                     1)
          RETURNING prs_bedrijf_key
               INTO v_bedrijf_key;

         v_errormsg := 'Fout toevoegen H-contactpersoon';

         INSERT INTO prs_contactpersoon (prs_contactpersoon_naam,
                                         prs_contactpersoon_tussenv,
                                         prs_contactpersoon_voorletters,
                                         prs_contactpersoon_voornaam,
                                         prs_contactpersoon_telefoon_1,
                                         prs_contactpersoon_telefoon_2,
                                         prs_contactpersoon_email,
                                         prs_contactpersoon_functie,
                                         prs_contactpersoon_opmerking,
                                         prs_bedrijf_key,
                                         prs_perslid_key)
            SELECT SUBSTR (p.prs_perslid_naam, 1, 30),          -- 30 voor cp!
                   p.prs_perslid_tussenvoegsel,
                   SUBSTR (p.prs_perslid_voorletters, 1, 10),   -- 10 voor cp!
                   p.prs_perslid_voornaam,
                   p.prs_perslid_telefoonnr,
                   p.prs_perslid_mobiel,
                   SUBSTR (p.prs_perslid_email, 1, 50),         -- 50 voor cp!
                   --sp.prs_srtperslid_omschrijving,
                   'NIET VERWIJDEREN: Huurder-account!',
                   NULL,
                   v_bedrijf_key,
                   p.prs_perslid_key
              FROM prs_perslid p, prs_srtperslid sp
             WHERE p.prs_srtperslid_key = sp.prs_srtperslid_key
                   AND p.prs_perslid_key = rec.prs_perslid_key;

         v_errormsg := 'Fout toekennen Contactpersonenbeheer-groep';

         INSERT INTO fac_gebruikersgroep (fac_groep_key, prs_perslid_key)
            SELECT c_groep_cp, rec.prs_perslid_key
              FROM DUAL
             WHERE NOT EXISTS
                      (SELECT 1
                         FROM fac_gebruikersgroep
                        WHERE fac_groep_key = c_groep_cp
                              AND prs_perslid_key = rec.prs_perslid_key);

         COMMIT;

         v_count := v_count + 1;
      EXCEPTION
         WHEN OTHERS
         THEN
            oracle_err_num := SQLCODE;
            oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
            v_errormsg := v_errormsg || ' ORACLE (error ' || oracle_err_num || '/' || oracle_err_mes || ')';
            fac.writelog (p_applname, 'W', rec.aanduiding || v_errormsg, '');
            COMMIT;
      END;
   END LOOP;

   fac.writelog (p_applname, 'S', 'H-relaties/#toegevoegd: ' || TO_CHAR (v_count), '');

   v_count := 0;

   FOR rec IN c_huurderrel_del
   LOOP
      BEGIN
         v_errormsg := 'Fout vervallen H-relatie';

         UPDATE prs_bedrijf
            SET prs_bedrijf_naam = SUBSTR ('VERVALLEN:' || prs_bedrijf_naam, 1, 60)
          WHERE INSTR (prs_bedrijf_naam_upper, 'VERVALLEN') = 0
                AND prs_bedrijf_key = rec.prs_bedrijf_key;

         v_errormsg := 'Fout verwijderen H-contactpersoon';

         UPDATE prs_contactpersoon
            SET prs_contactpersoon_verwijder = SYSDATE
          WHERE prs_contactpersoon_verwijder IS NULL
                AND prs_bedrijf_key = rec.prs_bedrijf_key;

         v_errormsg := 'Fout afnemen Contactpersonenbeheer-groep';

         DELETE FROM fac_gebruikersgroep
               WHERE fac_groep_key = c_groep_cp
                     AND prs_perslid_key = rec.prs_perslid_key;

         COMMIT;

         v_count := v_count + 1;
      EXCEPTION
         WHEN OTHERS
         THEN
            oracle_err_num := SQLCODE;
            oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
            v_errormsg := v_errormsg || ' ORACLE (error ' || oracle_err_num || '/' || oracle_err_mes || ')';
            fac.writelog (p_applname, 'W', rec.aanduiding || v_errormsg, '');
            COMMIT;
      END;
   END LOOP;

   fac.writelog (p_applname, 'S', 'H-relaties/#vervallen: ' || TO_CHAR (v_count), '');
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.writelog (p_applname, 'E', 'Proces NACHTWERK afgebroken!', v_errormsg);
END wtca_select_nachtwerk;
/

-- WTCA#52410: Toegang huurders en uitvoerenden.
CREATE OR REPLACE VIEW wtca_v_rap_toegang_huurders
(
   huurder,
   achternaam,
   tussenvoegsels,
   voornaam,
   voorletters,
   contract,
   access_main_entrance,
   key_pickup
)
AS                                                               -- H-relaties
   SELECT x.prs_bedrijf_naam,
          cp.prs_contactpersoon_naam,
          cp.prs_contactpersoon_tussenv,
          cp.prs_contactpersoon_voornaam,
          cp.prs_contactpersoon_voorletters,
          DECODE (kl1.prs_kenmerklink_waarde, '81', 'Ja', '82', 'Nee', NULL) contract,
          DECODE (kl2.prs_kenmerklink_waarde, '1', 'Ja', 'Nee') access_main_entrance,
          DECODE (kl1.prs_kenmerklink_waarde, '81', DECODE (kl3.prs_kenmerklink_waarde, '1', 'Ja', 'Nee'), 'Nvt') key_pickup
     FROM (  SELECT b.prs_bedrijf_key, b.prs_bedrijf_naam,
                    MIN (cp.prs_perslid_key) prs_perslid_key
               FROM prs_afdeling a, prs_v_aanwezigperslid p, prs_contactpersoon cp, prs_bedrijf b
              WHERE a.prs_afdeling_verwijder IS NULL
                    AND a.prs_bedrijf_key = 61                     -- Huurders
                    AND a.prs_afdeling_parentkey IS NULL
                    AND a.prs_afdeling_key = p.prs_afdeling_key
                    AND p.prs_perslid_verwijder IS NULL
                    AND COALESCE (p.prs_perslid_oslogin, p.prs_perslid_oslogin2) IS NOT NULL
                    AND p.prs_perslid_key = cp.prs_perslid_key
                    AND cp.prs_contactpersoon_verwijder IS NULL
                    AND cp.prs_bedrijf_key = b.prs_bedrijf_key
                    AND b.prs_bedrijf_verwijder IS NULL
           GROUP BY b.prs_bedrijf_key, b.prs_bedrijf_naam) x
          LEFT JOIN
             prs_contactpersoon cp
          ON x.prs_bedrijf_key = cp.prs_bedrijf_key
             AND cp.prs_contactpersoon_verwijder IS NULL
          LEFT JOIN
             prs_v_aanwezigkenmerklink kl1
          ON x.prs_perslid_key = kl1.prs_link_key
             AND kl1.prs_kenmerklink_niveau = 'P'
             AND kl1.prs_kenmerk_key = 1048                        -- Contract
          LEFT JOIN
             prs_v_aanwezigkenmerklink kl2
          ON cp.prs_contactpersoon_key = kl2.prs_link_key
             AND kl2.prs_kenmerklink_niveau = 'C'
             AND kl2.prs_kenmerk_key = 1440             -- Access main entrance
          LEFT JOIN
             prs_v_aanwezigkenmerklink kl3
          ON cp.prs_contactpersoon_key = kl3.prs_link_key
             AND kl3.prs_kenmerklink_niveau = 'C'
             AND kl3.prs_kenmerk_key = 1441                      -- Key pickup
    WHERE cp.prs_perslid_key IS NULL -- Alleen contactpersonen zonder account!
   UNION ALL                                                    -- UV-relaties
   SELECT x.prs_bedrijf_naam,
          cp.prs_contactpersoon_naam,
          cp.prs_contactpersoon_tussenv,
          cp.prs_contactpersoon_voornaam,
          cp.prs_contactpersoon_voorletters,
          DECODE (kl1.prs_kenmerklink_waarde, '81', 'Ja', '82', 'Nee', NULL) contract,
          DECODE (kl2.prs_kenmerklink_waarde, '1', 'Ja', 'Nee') access_main_entrance,
          DECODE (kl1.prs_kenmerklink_waarde, '81', DECODE (kl3.prs_kenmerklink_waarde, '1', 'Ja', 'Nee'), 'Nvt') key_pickup
     FROM (  SELECT b.prs_bedrijf_key, b.prs_bedrijf_naam,
                    MIN (cp.prs_perslid_key) prs_perslid_key
               FROM prs_afdeling a, prs_v_aanwezigperslid p, prs_contactpersoon cp, prs_bedrijf b
              WHERE a.prs_afdeling_verwijder IS NULL
                    AND a.prs_afdeling_parentkey = 341                   -- UV
                    AND a.prs_afdeling_key = p.prs_afdeling_key
                    AND p.prs_perslid_verwijder IS NULL
                    AND COALESCE (p.prs_perslid_oslogin, p.prs_perslid_oslogin2) IS NOT NULL
                    AND p.prs_perslid_key = cp.prs_perslid_key
                    AND cp.prs_contactpersoon_verwijder IS NULL
                    AND cp.prs_bedrijf_key = b.prs_bedrijf_key
                    AND b.prs_bedrijf_verwijder IS NULL
           GROUP BY b.prs_bedrijf_key, b.prs_bedrijf_naam) x
          LEFT JOIN
             prs_contactpersoon cp
          ON x.prs_bedrijf_key = cp.prs_bedrijf_key
             AND cp.prs_contactpersoon_verwijder IS NULL
          LEFT JOIN
             prs_v_aanwezigkenmerklink kl1
          ON x.prs_perslid_key = kl1.prs_link_key
             AND kl1.prs_kenmerklink_niveau = 'P'
             AND kl1.prs_kenmerk_key = 1048                        -- Contract
          LEFT JOIN
             prs_v_aanwezigkenmerklink kl2
          ON cp.prs_contactpersoon_key = kl2.prs_link_key
             AND kl2.prs_kenmerklink_niveau = 'C'
             AND kl2.prs_kenmerk_key = 1440             -- Access main entrance
          LEFT JOIN
             prs_v_aanwezigkenmerklink kl3
          ON cp.prs_contactpersoon_key = kl3.prs_link_key
             AND kl3.prs_kenmerklink_niveau = 'C'
             AND kl3.prs_kenmerk_key = 1441                      -- Key pickup
;

/* Formatted on 5-1-2011 16:38:28 (QP5 v5.115.810.9015) */
CREATE OR REPLACE VIEW wtca_v_stdmld_lijst
(
   stdmld_key,
   stdmld_oms
)
AS
   SELECT   sm.mld_stdmelding_key stdmld_key,
               sd.ins_srtdiscipline_prefix
            || '-'
            || td.ins_discipline_omschrijving
            || '-'
            || sm.mld_stdmelding_omschrijving
               stdmld_oms
     FROM   mld_stdmelding sm, ins_tab_discipline td, ins_srtdiscipline sd
    WHERE       sm.mld_stdmelding_verwijder IS NULL
            AND sm.mld_ins_discipline_key = td.ins_discipline_key
            AND td.ins_discipline_verwijder IS NULL
            AND td.ins_srtdiscipline_key = sd.ins_srtdiscipline_key
            AND sd.ins_srtdiscipline_verwijder IS NULL;

/* Formatted on 10-2-2016 10:25:05 (QP5 v5.136.908.31019) */
CREATE OR REPLACE VIEW wtca_v_medewerkers
(
   prs_perslid_key,
   prs_perslid_naam_full,
   prs_perslid_naam_friendly,
   prs_perslid_vvd
)
AS
   SELECT pf.prs_perslid_key,
          pf.prs_perslid_naam_full,
          pf.prs_perslid_naam_friendly,
          p.prs_perslid_verwijder
     FROM prs_perslid p, prs_v_perslid_fullnames_all pf
    WHERE     p.prs_afdeling_key = 2                    -- FC (of nieuwe naam)
          AND p.prs_srtperslid_key = 62                          -- Medewerker
          AND p.prs_perslid_key = pf.prs_perslid_key;

/* Formatted on 10-12-2013 15:05:00 (QP5 v5.115.810.9015) */
CREATE OR REPLACE VIEW wtca_v_rap_opdr_op_afmmaand
(
   fclt_f_maand,
   sla,
   fclt_f_prefix,
   opdr,
   fclt_f_kdrager,
   fclt_f_kdrager_oms,
   corr_kdrager,
   fclt_f_maatschap,
   fclt_f_ksoort,
   fclt_f_ksoort_oms,
   org_ksoort,
   fclt_f_gebouw_terrein,
   verdieping,
   ruimte,
   fclt_f_vakgroep,
   fclt_f_melding,
   omschrijving,
   opmerking,
   aanmaak,
   gepland,
   gereed,
   status,
   fclt_f_uitvoerende,
   contactpersoon,
   kosten,
   fclt_3d_afdeling_key
)
AS
   SELECT   a.maand,
            COALESCE (c2.sla, a.sla),
            COALESCE (c2.prefix, a.prefix),
            a.opdracht,
            a.kdrager,
            a.kdrager_oms,
            c1.corr_kdrager,
            COALESCE (d.geb_maatschap, e.ter_maatschap),
            COALESCE (c2.corr_ksoort, a.ksoort),
            COALESCE (c2.corr_ksoort_oms, a.ksoort_oms),
            DECODE (c2.corr_ksoort,
                    NULL, NULL,
                    a.ksoort || '-' || a.ksoort_oms),
            a.gebouw_terrein,
            a.verdieping,
            a.ruimte,
            COALESCE (c2.vakgroep, a.vakgroep),
            COALESCE (c2.melding, a.melding),
            a.oms,
            a.opm,
            a.datum_aanmaak,
            a.datum_gepland,
            a.datum_gereed,
            a.status,
            a.bedrijf,
            a.cp,
            a.kosten,
            b.afdeling
     FROM                  (SELECT   o.mld_opdr_key,
                                     COALESCE (og.alg_gebouw_key,
                                               og.alg_terreinsector_key)
                                        gebter_key,
                                     DECODE (
                                        o.mld_statusopdr_key,
                                        1,
                                        TO_CHAR (
                                           fac.gettrackingdate (
                                              'ORDCAN',
                                              o.mld_opdr_key
                                           ),
                                           'yyyy-mm'
                                        ),
                                        7,
                                        TO_CHAR (
                                           COALESCE (
                                              fac.gettrackingdate (
                                                 'ORDAFR',
                                                 o.mld_opdr_key
                                              ),
                                              fac.gettrackingdate (
                                                 'ORDAFM',
                                                 o.mld_opdr_key
                                              )
                                           ),
                                           'yyyy-mm'
                                        ),
                                        9,
                                        TO_CHAR (
                                           fac.gettrackingdate (
                                              'ORDAFR',
                                              o.mld_opdr_key
                                           ),
                                           'yyyy-mm'
                                        ),
                                        'Lopend'
                                     )
                                        maand,
                                        TO_CHAR (sm.mld_stdmelding_t_uitvoertijd.tijdsduur)
                                     || sm.mld_stdmelding_t_uitvoertijd.eenheid sla,
                                     sd.ins_srtdiscipline_prefix prefix,
                                        o.mld_melding_key
                                     || '/'
                                     || o.mld_opdr_bedrijfopdr_volgnr
                                        opdracht,
                                     kp.prs_kostenplaats_nr kdrager,
                                     kp.prs_kostenplaats_omschrijving
                                        kdrager_oms,
                                     COALESCE (ksm.prs_kostensoort_oms,
                                               ksv.prs_kostensoort_oms)
                                        ksoort,
                                     DECODE (ksm.prs_kostensoort_oms,
                                             NULL,
                                             ksv.prs_kostensoort_opmerking,
                                             ksm.prs_kostensoort_opmerking)
                                        ksoort_oms,
                                     COALESCE (og.alg_terreinsector_code,
                                               og.alg_gebouw_code)
                                        gebouw_terrein,
                                     og.alg_verdieping_code verdieping,
                                     og.alg_ruimte_nr ruimte,
                                     td.ins_discipline_omschrijving vakgroep,
                                     sm.mld_stdmelding_omschrijving melding,
                                     o.mld_opdr_omschrijving oms,
                                     o.mld_opdr_opmerking opm,
                                     TO_CHAR (o.mld_opdr_datumbegin,
                                              'dd-mm-yyyy')
                                        datum_aanmaak,        -- Of verzonden?
                                     TO_CHAR (
                                        fac.datumtijdplusuitvoertijd (
                                           o.mld_opdr_datumbegin,
                                           m.mld_melding_t_uitvoertijd.tijdsduur,
                                           m.mld_melding_t_uitvoertijd.eenheid
                                        ),
                                        'dd-mm-yyyy'
                                     )
                                        datum_gepland,
                                     TO_CHAR (
                                        fac.gettrackingdate ('ORDAFM',
                                                             o.mld_opdr_key),
                                        'dd-mm-yyyy'
                                     )
                                        datum_gereed,
                                     so.mld_statusopdr_omschrijving status,
                                     b.prs_bedrijf_naam bedrijf,
                                     o.mld_opdr_contactpersoon cp,
                                     o.mld_opdr_kosten kosten
                              FROM   mld_opdr o,
                                     prs_bedrijf b,
                                     mld_melding m,
                                     alg_v_allonrgoed_gegevens og,
                                     mld_stdmelding sm,
                                     ins_tab_discipline td,
                                     ins_srtdiscipline sd,
                                     prs_kostensoort ksm,
                                     prs_kostensoort ksv,
                                     prs_kostenplaats kp,
                                     mld_statusopdr so
                             WHERE   o.mld_melding_key = m.mld_melding_key
                                     AND o.mld_uitvoerende_keys =
                                           b.prs_bedrijf_key
                                     AND m.mld_alg_onroerendgoed_keys =
                                           og.alg_onroerendgoed_keys
                                     AND m.mld_stdmelding_key =
                                           sm.mld_stdmelding_key
                                     AND sm.prs_kostensoort_key =
                                           ksm.prs_kostensoort_key(+)
                                     AND sm.mld_ins_discipline_key =
                                           td.ins_discipline_key
                                     AND td.prs_kostensoort_key =
                                           ksv.prs_kostensoort_key(+)
                                     AND td.ins_srtdiscipline_key =
                                           sd.ins_srtdiscipline_key
                                     AND o.prs_kostenplaats_key =
                                           kp.prs_kostenplaats_key
                                     AND o.mld_statusopdr_key =
                                           so.mld_statusopdr_key) a
                        LEFT JOIN
                           (SELECT   DISTINCT
                                     o.mld_opdr_key,
                                     p.prs_afdeling_key afdeling
                              FROM   mld_opdr o,
                                     prs_bedrijf b,
                                     prs_contactpersoon cp,
                                     prs_perslid p
                             WHERE   o.mld_uitvoerende_keys =
                                        b.prs_bedrijf_key
                                     AND b.prs_bedrijf_key =
                                           cp.prs_bedrijf_key
                                     AND cp.prs_perslid_key =
                                           p.prs_perslid_key) b
                        ON a.mld_opdr_key = b.mld_opdr_key
                     LEFT JOIN
                        (SELECT   ko.mld_opdr_key,
                                  ud.fac_usrdata_omschr corr_kdrager
                           FROM   mld_v_aanwezigkenmerkopdr ko,
                                  fac_v_aanwezigusrdata ud
                          WHERE   ko.mld_kenmerk_key = 1      -- Corr. kdrager
                                  AND ud.fac_usrdata_key =
                                        fac.safe_to_number (
                                           ko.mld_kenmerkopdr_waarde
                                        )) c1
                     ON a.mld_opdr_key = c1.mld_opdr_key
                  LEFT JOIN
                     (SELECT   ko.mld_opdr_key,
                                  TO_CHAR (sm.mld_stdmelding_t_uitvoertijd.tijdsduur)
                               || sm.mld_stdmelding_t_uitvoertijd.eenheid sla,
                               COALESCE (ksm.prs_kostensoort_oms,
                                         ksv.prs_kostensoort_oms)
                                  corr_ksoort,
                               DECODE (ksm.prs_kostensoort_oms,
                                       NULL, ksv.prs_kostensoort_opmerking,
                                       ksm.prs_kostensoort_opmerking)
                                  corr_ksoort_oms,
                               sd.ins_srtdiscipline_prefix prefix,
                               td.ins_discipline_omschrijving vakgroep,
                               sm.mld_stdmelding_omschrijving melding
                        FROM   mld_v_aanwezigkenmerkopdr ko,
                               mld_stdmelding sm,
                               ins_tab_discipline td,
                               ins_srtdiscipline sd,
                               prs_kostensoort ksm,
                               prs_kostensoort ksv
                       WHERE   ko.mld_kenmerk_key = 41        -- Corr. melding
                               AND sm.mld_stdmelding_key =
                                     fac.safe_to_number (
                                        ko.mld_kenmerkopdr_waarde
                                     )
                               AND sm.prs_kostensoort_key =
                                     ksm.prs_kostensoort_key(+)
                               AND sm.mld_ins_discipline_key =
                                     td.ins_discipline_key
                               AND td.prs_kostensoort_key =
                                     ksv.prs_kostensoort_key(+)
                               AND td.ins_srtdiscipline_key =
                                     sd.ins_srtdiscipline_key) c2
                  ON a.mld_opdr_key = c2.mld_opdr_key
               LEFT JOIN
                  (SELECT   ok.alg_onrgoed_key,
                            ud.fac_usrdata_omschr geb_maatschap
                     FROM   alg_v_aanwezigonrgoedkenmerk ok,
                            fac_v_aanwezigusrdata ud
                    WHERE   ok.alg_kenmerk_key = 1020             -- Maatschap
                            AND ud.fac_usrdata_key =
                                  fac.safe_to_number (
                                     ok.alg_onrgoedkenmerk_waarde
                                  )) d
               ON a.gebter_key = d.alg_onrgoed_key
            LEFT JOIN
               (SELECT   ok.alg_onrgoed_key,
                         ud.fac_usrdata_omschr ter_maatschap
                  FROM   alg_v_aanwezigonrgoedkenmerk ok,
                         fac_v_aanwezigusrdata ud
                 WHERE   ok.alg_kenmerk_key = 1040                -- Maatschap
                         AND ud.fac_usrdata_key =
                               fac.safe_to_number (
                                  ok.alg_onrgoedkenmerk_waarde
                               )) e
            ON a.gebter_key = e.alg_onrgoed_key;

/* Formatted on 10-12-2013 15:05:00 (QP5 v5.115.810.9015) */
CREATE OR REPLACE VIEW wtca_v_rap_opdr_op_newmaand
(
   fclt_f_maand,
   sla,
   fclt_f_prefix,
   opdr,
   fclt_f_kdrager,
   fclt_f_kdrager_oms,
   corr_kdrager,
   fclt_f_maatschap,
   fclt_f_ksoort,
   fclt_f_ksoort_oms,
   org_ksoort,
   fclt_f_gebouw_terrein,
   verdieping,
   ruimte,
   fclt_f_vakgroep,
   fclt_f_melding,
   omschrijving,
   opmerking,
   aanmaak,
   gepland,
   gereed,
   status,
   fclt_f_uitvoerende,
   contactpersoon,
   kosten,
   fclt_3d_afdeling_key
)
AS
   SELECT   a.maand,
            COALESCE (c2.sla, a.sla),
            COALESCE (c2.prefix, a.prefix),
            a.opdracht,
            a.kdrager,
            a.kdrager_oms,
            c1.corr_kdrager,
            COALESCE (d.geb_maatschap, e.ter_maatschap),
            COALESCE (c2.corr_ksoort, a.ksoort),
            COALESCE (c2.corr_ksoort_oms, a.ksoort_oms),
            DECODE (c2.corr_ksoort,
                    NULL, NULL,
                    a.ksoort || '-' || a.ksoort_oms),
            a.gebouw_terrein,
            a.verdieping,
            a.ruimte,
            COALESCE (c2.vakgroep, a.vakgroep),
            COALESCE (c2.melding, a.melding),
            a.oms,
            a.opm,
            a.datum_aanmaak,
            a.datum_gepland,
            a.datum_gereed,
            a.status,
            a.bedrijf,
            a.cp,
            a.kosten,
            b.afdeling
     FROM                  (SELECT   o.mld_opdr_key,
                                     COALESCE (og.alg_gebouw_key,
                                               og.alg_terreinsector_key)
                                        gebter_key,
                                     TO_CHAR (
                                        fac.gettrackingdate ('ORDNEW',
                                                             o.mld_opdr_key),
                                        'yyyy-mm'
                                     )
                                        maand,
                                        TO_CHAR (sm.mld_stdmelding_t_uitvoertijd.tijdsduur)
                                     || sm.mld_stdmelding_t_uitvoertijd.eenheid sla,
                                     sd.ins_srtdiscipline_prefix prefix,
                                        o.mld_melding_key
                                     || '/'
                                     || o.mld_opdr_bedrijfopdr_volgnr
                                        opdracht,
                                     kp.prs_kostenplaats_nr kdrager,
                                     kp.prs_kostenplaats_omschrijving
                                        kdrager_oms,
                                     COALESCE (ksm.prs_kostensoort_oms,
                                               ksv.prs_kostensoort_oms)
                                        ksoort,
                                     DECODE (ksm.prs_kostensoort_oms,
                                             NULL,
                                             ksv.prs_kostensoort_opmerking,
                                             ksm.prs_kostensoort_opmerking)
                                        ksoort_oms,
                                     COALESCE (og.alg_terreinsector_code,
                                               og.alg_gebouw_code)
                                        gebouw_terrein,
                                     og.alg_verdieping_code verdieping,
                                     og.alg_ruimte_nr ruimte,
                                     td.ins_discipline_omschrijving vakgroep,
                                     sm.mld_stdmelding_omschrijving melding,
                                     o.mld_opdr_omschrijving oms,
                                     o.mld_opdr_opmerking opm,
                                     TO_CHAR (o.mld_opdr_datumbegin,
                                              'dd-mm-yyyy')
                                        datum_aanmaak,        -- Of verzonden?
                                     TO_CHAR (
                                        fac.datumtijdplusuitvoertijd (
                                           o.mld_opdr_datumbegin,
                                           m.mld_melding_t_uitvoertijd.tijdsduur,
                                           m.mld_melding_t_uitvoertijd.eenheid
                                        ),
                                        'dd-mm-yyyy'
                                     )
                                        datum_gepland,
                                     TO_CHAR (
                                        fac.gettrackingdate ('ORDAFM',
                                                             o.mld_opdr_key),
                                        'dd-mm-yyyy'
                                     )
                                        datum_gereed,
                                     so.mld_statusopdr_omschrijving status,
                                     b.prs_bedrijf_naam bedrijf,
                                     o.mld_opdr_contactpersoon cp,
                                     o.mld_opdr_kosten kosten
                              FROM   mld_opdr o,
                                     prs_bedrijf b,
                                     mld_melding m,
                                     alg_v_allonrgoed_gegevens og,
                                     mld_stdmelding sm,
                                     ins_tab_discipline td,
                                     ins_srtdiscipline sd,
                                     prs_kostensoort ksm,
                                     prs_kostensoort ksv,
                                     prs_kostenplaats kp,
                                     mld_statusopdr so
                             WHERE   o.mld_melding_key = m.mld_melding_key
                                     AND o.mld_uitvoerende_keys =
                                           b.prs_bedrijf_key
                                     AND m.mld_alg_onroerendgoed_keys =
                                           og.alg_onroerendgoed_keys
                                     AND m.mld_stdmelding_key =
                                           sm.mld_stdmelding_key
                                     AND sm.prs_kostensoort_key =
                                           ksm.prs_kostensoort_key(+)
                                     AND sm.mld_ins_discipline_key =
                                           td.ins_discipline_key
                                     AND td.prs_kostensoort_key =
                                           ksv.prs_kostensoort_key(+)
                                     AND td.ins_srtdiscipline_key =
                                           sd.ins_srtdiscipline_key
                                     AND o.prs_kostenplaats_key =
                                           kp.prs_kostenplaats_key
                                     AND o.mld_statusopdr_key =
                                           so.mld_statusopdr_key) a
                        LEFT JOIN
                           (SELECT   DISTINCT
                                     o.mld_opdr_key,
                                     p.prs_afdeling_key afdeling
                              FROM   mld_opdr o,
                                     prs_bedrijf b,
                                     prs_contactpersoon cp,
                                     prs_perslid p
                             WHERE   o.mld_uitvoerende_keys =
                                        b.prs_bedrijf_key
                                     AND b.prs_bedrijf_key =
                                           cp.prs_bedrijf_key
                                     AND cp.prs_perslid_key =
                                           p.prs_perslid_key) b
                        ON a.mld_opdr_key = b.mld_opdr_key
                     LEFT JOIN
                        (SELECT   ko.mld_opdr_key,
                                  ud.fac_usrdata_omschr corr_kdrager
                           FROM   mld_v_aanwezigkenmerkopdr ko,
                                  fac_v_aanwezigusrdata ud
                          WHERE   ko.mld_kenmerk_key = 1      -- Corr. kdrager
                                  AND ud.fac_usrdata_key =
                                        fac.safe_to_number (
                                           ko.mld_kenmerkopdr_waarde
                                        )) c1
                     ON a.mld_opdr_key = c1.mld_opdr_key
                  LEFT JOIN
                     (SELECT   ko.mld_opdr_key,
                                  TO_CHAR (sm.mld_stdmelding_t_uitvoertijd.tijdsduur)
                               || sm.mld_stdmelding_t_uitvoertijd.eenheid sla,
                               COALESCE (ksm.prs_kostensoort_oms,
                                         ksv.prs_kostensoort_oms)
                                  corr_ksoort,
                               DECODE (ksm.prs_kostensoort_oms,
                                       NULL, ksv.prs_kostensoort_opmerking,
                                       ksm.prs_kostensoort_opmerking)
                                  corr_ksoort_oms,
                               sd.ins_srtdiscipline_prefix prefix,
                               td.ins_discipline_omschrijving vakgroep,
                               sm.mld_stdmelding_omschrijving melding
                        FROM   mld_v_aanwezigkenmerkopdr ko,
                               mld_stdmelding sm,
                               ins_tab_discipline td,
                               ins_srtdiscipline sd,
                               prs_kostensoort ksm,
                               prs_kostensoort ksv
                       WHERE   ko.mld_kenmerk_key = 41        -- Corr. melding
                               AND sm.mld_stdmelding_key =
                                     fac.safe_to_number (
                                        ko.mld_kenmerkopdr_waarde
                                     )
                               AND sm.prs_kostensoort_key =
                                     ksm.prs_kostensoort_key(+)
                               AND sm.mld_ins_discipline_key =
                                     td.ins_discipline_key
                               AND td.prs_kostensoort_key =
                                     ksv.prs_kostensoort_key(+)
                               AND td.ins_srtdiscipline_key =
                                     sd.ins_srtdiscipline_key) c2
                  ON a.mld_opdr_key = c2.mld_opdr_key
               LEFT JOIN
                  (SELECT   ok.alg_onrgoed_key,
                            ud.fac_usrdata_omschr geb_maatschap
                     FROM   alg_v_aanwezigonrgoedkenmerk ok,
                            fac_v_aanwezigusrdata ud
                    WHERE   ok.alg_kenmerk_key = 1020             -- Maatschap
                            AND ud.fac_usrdata_key =
                                  fac.safe_to_number (
                                     ok.alg_onrgoedkenmerk_waarde
                                  )) d
               ON a.gebter_key = d.alg_onrgoed_key
            LEFT JOIN
               (SELECT   ok.alg_onrgoed_key,
                         ud.fac_usrdata_omschr ter_maatschap
                  FROM   alg_v_aanwezigonrgoedkenmerk ok,
                         fac_v_aanwezigusrdata ud
                 WHERE   ok.alg_kenmerk_key = 1040                -- Maatschap
                         AND ud.fac_usrdata_key =
                               fac.safe_to_number (
                                  ok.alg_onrgoedkenmerk_waarde
                               )) e
            ON a.gebter_key = e.alg_onrgoed_key;

-- WTCA#33458
/* Formatted on 17-8-2015 15:50:10 (QP5 v5.136.908.31019) */
CREATE OR REPLACE VIEW wtca_v_rap_opdr_mi_oms_afm
(
   fclt_d_datum,
   fclt_f_bedrijf,
   opdr,
   fclt_f_kdrager,
   fclt_f_kdrager_oms,
   fclt_f_prefix,
   fclt_f_vakgroep,
   fclt_f_melding,
   fclt_f_huurder,
   fclt_f_gebouw_terrein,
   omschrijving,
   opmerking,
   aanmaak_melding,
   sla,
   gepland_melding,
   sp_afhandeltijd,
   sp_afh_ok,
   uv_responsetijd,
   uv_rsp_ok,
   uv_afhandeltijd,
   uv_afh_ok,
   fclt_3d_afdeling_key
)
AS
   SELECT DECODE (
             opdr.status_key,
             NULL,
             DECODE (meld.status_key,
                     1, TO_CHAR (meld.mldrej, 'dd-mm-yyyy'),
                     5, TO_CHAR (meld.mldafm, 'dd-mm-yyyy'),
                     TO_CHAR (SYSDATE, 'dd-mm-yyyy')),
             1,
             TO_CHAR (opdr.ordcan, 'dd-mm-yyyy'),
             6,
             TO_CHAR (opdr.ordafm, 'dd-mm-yyyy'),
             7,
             TO_CHAR (opdr.ordafm, 'dd-mm-yyyy'),
             9,
             TO_CHAR (opdr.ordafm, 'dd-mm-yyyy'),
             TO_CHAR (SYSDATE, 'dd-mm-yyyy'))
             afmelddat,
          DECODE (opdr.status_key,
                  1, opdr.bedrijf || '/GEANNULEERD',
                  opdr.bedrijf),
          TO_CHAR (meld.mld_key) || DECODE (opdr.volgnr, NULL, '', '/' || TO_CHAR (opdr.volgnr)),
          opdr.kostenplaats,
          opdr.kostenplaats_oms,
          COALESCE (CORR.prefix, meld.prefix),
          COALESCE (CORR.vakgroep, meld.vakgroep),
          COALESCE (CORR.melding, meld.melding),
          meld.huurder,
          meld.gebouw_terrein,
          DECODE (opdr.status_key, NULL, meld.oms, opdr.oms),
          DECODE (opdr.status_key, NULL, meld.status, opdr.opm),
          TO_CHAR (meld.mldnew, 'dd-mm-yyyy hh24:mi') aanmaak,
          TO_CHAR (COALESCE (CORR.sla.tijdsduur, meld.sla.tijdsduur))
          || COALESCE (CORR.sla.eenheid, meld.sla.eenheid)
             sla,
          TO_CHAR (
             fac.datumtijdplusuitvoertijd (
                meld.mldnew,
                COALESCE (CORR.sla.tijdsduur, meld.sla.tijdsduur),
                COALESCE (CORR.sla.eenheid, meld.sla.eenheid)),
             'dd-mm-yyyy hh24:mi')
             gepland,
          DECODE (
             opdr.ordnew,
             NULL,
             NULL,
             TO_CHAR(FLOOR(wtca.bepaal_wtc_kantooruren (meld.mldnew,
                                                        opdr.ordnew)
                           / 9))
             || 'd-'
             || TO_CHAR(MOD (
                           FLOOR(wtca.bepaal_wtc_kantooruren (meld.mldnew,
                                                              opdr.ordnew)),
                           9))
             || 'u-'
             || TO_CHAR(MOD (
                           ROUND (
                              wtca.bepaal_wtc_kantooruren (meld.mldnew,
                                                           opdr.ordnew)
                              * 60,
                              0),
                           60))
             || 'm')
             sp_afhandeltijd,
          DECODE (
             opdr.ordnew,
             NULL,
             DECODE (meld.status_key, 1, '-', 6, '-', NULL),
             DECODE (
                meld.prio,
                1,
                '-',
                2,
                '-',
                3,
                DECODE (
                   SIGN(ROUND (
                           wtca.bepaal_wtc_kantooruren (
                              meld.mldnew,
                              COALESCE (opdr.ordnew, SYSDATE))
                           * 60,
                           0)
                        - 30),                           -- Harde afspraak 30m
                   1,
                   'Nee',
                   'Ja'),
                DECODE (
                   SIGN(ROUND (
                           wtca.bepaal_wtc_kantooruren (
                              meld.mldnew,
                              COALESCE (opdr.ordnew, SYSDATE))
                           * 60,
                           0)
                        - 60),                           -- Harde afspraak 60m
                   1,
                   'Nee',
                   'Ja')))
             sp_afh_ok,
          DECODE (
             opdr.ordacp,
             NULL,
             NULL,
                TO_CHAR (FLOOR (opdr.ordacp - opdr.ordnew))
             || 'd-'
             || TO_CHAR (MOD (FLOOR ( (opdr.ordacp - opdr.ordnew) * 24), 24))
             || 'u-'
             || TO_CHAR(MOD (
                           ROUND ( (opdr.ordacp - opdr.ordnew) * 24 * 60, 0),
                           60))
             || 'm')
             uv_responsetijd,
          DECODE (
             opdr.ordnew,
             NULL,
             DECODE (meld.status_key, 1, '-', 6, '-', NULL),
             DECODE (
                meld.prio,
                1,
                '-',
                2,
                '-',
                3,
                DECODE (
                   SIGN(FLOOR( (COALESCE (opdr.ordacp, SYSDATE) - opdr.ordnew)
                              * 24)
                        - 4),                          -- Harde afspraak 4 uur
                   1,
                   'Nee',
                   'Ja'),
                DECODE (
                   SIGN(FAC.count_work_days_incltime (
                           opdr.ordnew,
                           COALESCE (opdr.ordacp, SYSDATE))
                        - 1),                         -- Harde afspraak 24 uur
                   1,
                   'Nee',
                   'Ja')))
             uv_rsp_ok,
          DECODE (
             opdr.ordafm,
             NULL,
             DECODE (
                opdr.ordcan,
                NULL,
                NULL,
                TO_CHAR (FLOOR (opdr.ordcan - opdr.ordnew)) || 'd-'
                || TO_CHAR (
                      MOD (ROUND ( (opdr.ordcan - opdr.ordnew) * 24, 0), 24))
                || 'u'),
             TO_CHAR (FLOOR (opdr.ordafm - opdr.ordnew)) || 'd-'
             || TO_CHAR (
                   MOD (ROUND ( (opdr.ordafm - opdr.ordnew) * 24, 0), 24))
             || 'u')
             afhandeltijd,
          DECODE (
             opdr.ordnew,
             NULL,
             DECODE (meld.status_key, 1, '-', 6, '-', NULL),
             DECODE (
                meld.prio,
                1,
                '-',
                2,
                '-',
                DECODE (
                   SIGN(FAC.datumtijdplusuitvoertijd (
                           opdr.ordnew,
                           COALESCE (CORR.sla.tijdsduur, meld.sla.tijdsduur),
                           COALESCE (CORR.sla.eenheid, meld.sla.eenheid))
                        - COALESCE (opdr.ordafm, SYSDATE)),
                   -1,
                   'Nee',
                   'Ja')))
             uv_afh_ok,
          scope.afd_key
     FROM (SELECT m.mld_melding_key mld_key,
                  sd.ins_srtdiscipline_prefix prefix,
                  td.ins_discipline_omschrijving vakgroep,
                  sm.mld_stdmelding_omschrijving melding,
                  m.mld_melding_spoed prio,
                  m.mld_melding_t_uitvoertijd sla,
                  m.mld_melding_status status_key,
                  s.mld_statuses_omschrijving status,
                  m.mld_melding_omschrijving oms,
                  fac.gettrackingdate ('MLDNEW', m.mld_melding_key) mldnew,
                  fac.gettrackingdate ('MLDREJ', m.mld_melding_key) mldrej,
                  fac.gettrackingdate ('MLDAFM', m.mld_melding_key) mldafm,
                  a.prs_afdeling_omschrijving huurder,
                  COALESCE (og.alg_terreinsector_code, og.alg_gebouw_code)
                     gebouw_terrein
             FROM mld_melding m,
                  mld_stdmelding sm,
                  ins_tab_discipline td,
                  ins_srtdiscipline sd,
                  mld_statuses s,
                  prs_perslid p,
                  prs_afdeling a,
                  alg_v_allonrgoed_gegevens og
            WHERE m.mld_melding_datum >
                     TRUNC (ADD_MONTHS (SYSDATE, -12), 'yyyy')
                  AND m.mld_stdmelding_key = sm.mld_stdmelding_key
                  AND sm.mld_ins_discipline_key = td.ins_discipline_key
                  AND td.ins_srtdiscipline_key = sd.ins_srtdiscipline_key
                  AND m.mld_melding_status = s.mld_statuses_key
                  AND m.prs_perslid_key_voor = p.prs_perslid_key
                  AND p.prs_afdeling_key = a.prs_afdeling_key
                  AND m.mld_alg_onroerendgoed_keys =
                        og.alg_onroerendgoed_keys) meld
          LEFT JOIN (SELECT o.mld_melding_key,
                            sm.mld_stdmelding_t_uitvoertijd sla,
                            sd.ins_srtdiscipline_prefix prefix,
                            td.ins_discipline_omschrijving vakgroep,
                            sm.mld_stdmelding_omschrijving melding
                       FROM mld_opdr o,
                            mld_v_aanwezigkenmerkopdr ko,
                            mld_stdmelding sm,
                            ins_tab_discipline td,
                            ins_srtdiscipline sd
                      WHERE     o.mld_opdr_key = ko.mld_opdr_key
                            AND ko.mld_kenmerk_key = 41       -- Corr. melding
                            AND ko.mld_opdr_key = o.mld_opdr_key
                            AND sm.mld_stdmelding_key =
                                  fac.safe_to_number (
                                     ko.mld_kenmerkopdr_waarde)
                            AND sm.mld_ins_discipline_key =
                                  td.ins_discipline_key
                            AND td.ins_srtdiscipline_key =
                                  sd.ins_srtdiscipline_key) CORR
             ON meld.mld_key = CORR.mld_melding_key
          LEFT JOIN (SELECT o.mld_melding_key mld_key,
                            o.mld_opdr_bedrijfopdr_volgnr volgnr,
                            o.mld_opdr_key opdr_key,
                            o.mld_statusopdr_key status_key,
                            o.mld_opdr_omschrijving oms,
                            o.mld_opdr_opmerking opm,
                            b.prs_bedrijf_naam bedrijf,
                            kp.prs_kostenplaats_nr kostenplaats,
                            kp.prs_kostenplaats_omschrijving kostenplaats_oms,
                            fac.gettrackingdate ('ORDNEW', o.mld_opdr_key)
                               ordnew,
                            o.mld_opdr_verzonden verzonden,
                            fac.gettrackingdate ('ORDACP', o.mld_opdr_key)
                               ordacp,
                            fac.gettrackingdate ('ORDCAN', o.mld_opdr_key)
                               ordcan,
                            fac.gettrackingdate ('ORDAFM', o.mld_opdr_key)
                               ordafm
                       FROM mld_opdr o, prs_bedrijf b, prs_kostenplaats kp
                      WHERE o.mld_uitvoerende_keys = b.prs_bedrijf_key
                            AND o.prs_kostenplaats_key =
                                  kp.prs_kostenplaats_key) opdr
             ON meld.mld_key = opdr.mld_key
          LEFT JOIN (SELECT DISTINCT
                            o.mld_opdr_key opdr_key,
                            p.prs_afdeling_key afd_key
                       FROM mld_opdr o,
                            prs_bedrijf b,
                            prs_contactpersoon cp,
                            prs_perslid p
                      WHERE     o.mld_uitvoerende_keys = b.prs_bedrijf_key
                            AND b.prs_bedrijf_key = cp.prs_bedrijf_key
                            AND cp.prs_perslid_key = p.prs_perslid_key) scope
             ON opdr.opdr_key = scope.opdr_key
    WHERE DECODE (opdr.status_key,
                  NULL, COALESCE (meld.mldrej, meld.mldafm),
                  COALESCE (opdr.ordcan, opdr.ordafm)) IS NOT NULL;

CREATE OR REPLACE VIEW wtca_v_rap_opdr_mi_oms_new
(
   fclt_d_datum,
   fclt_f_bedrijf,
   opdr,
   fclt_f_kdrager,
   fclt_f_kdrager_oms,
   fclt_f_prefix,
   fclt_f_vakgroep,
   fclt_f_melding,
   fclt_f_huurder,
   fclt_f_gebouw_terrein,
   omschrijving,
   opmerking,
   aanmaak_melding,
   sla,
   gepland_melding,
   sp_afhandeltijd,
   sp_afh_ok,
   uv_responsetijd,
   uv_rsp_ok,
   uv_afhandeltijd,
   uv_afh_ok,
   fclt_3d_afdeling_key
)
AS
   SELECT DECODE (opdr.ordnew,
                  NULL, TO_CHAR (meld.mldnew, 'dd-mm-yyyy'),
                  TO_CHAR (opdr.ordnew, 'dd-mm-yyyy'))
             aanmaakdat,
          DECODE (opdr.status_key,
                  1, opdr.bedrijf || '/GEANNULEERD',
                  opdr.bedrijf),
          TO_CHAR (meld.mld_key) || DECODE (opdr.volgnr, NULL, '', '/' || TO_CHAR (opdr.volgnr)),
          opdr.kostenplaats,
          opdr.kostenplaats_oms,
          COALESCE (CORR.prefix, meld.prefix),
          COALESCE (CORR.vakgroep, meld.vakgroep),
          COALESCE (CORR.melding, meld.melding),
          meld.huurder,
          meld.gebouw_terrein,
          DECODE (opdr.status_key, NULL, meld.oms, opdr.oms),
          DECODE (opdr.status_key, NULL, meld.status, opdr.opm),
          TO_CHAR (meld.mldnew, 'dd-mm-yyyy hh24:mi') aanmaak,
          TO_CHAR (COALESCE (CORR.sla.tijdsduur, meld.sla.tijdsduur))
          || COALESCE (CORR.sla.eenheid, meld.sla.eenheid)
             sla,
          TO_CHAR (
             fac.datumtijdplusuitvoertijd (
                meld.mldnew,
                COALESCE (CORR.sla.tijdsduur, meld.sla.tijdsduur),
                COALESCE (CORR.sla.eenheid, meld.sla.eenheid)),
             'dd-mm-yyyy hh24:mi')
             gepland,
          DECODE (
             opdr.ordnew,
             NULL,
             NULL,
             TO_CHAR(FLOOR(wtca.bepaal_wtc_kantooruren (meld.mldnew,
                                                        opdr.ordnew)
                           / 9))
             || 'd-'
             || TO_CHAR(MOD (
                           FLOOR(wtca.bepaal_wtc_kantooruren (meld.mldnew,
                                                              opdr.ordnew)),
                           9))
             || 'u-'
             || TO_CHAR(MOD (
                           ROUND (
                              wtca.bepaal_wtc_kantooruren (meld.mldnew,
                                                           opdr.ordnew)
                              * 60,
                              0),
                           60))
             || 'm')
             sp_afhandeltijd,
          DECODE (
             opdr.ordnew,
             NULL,
             DECODE (meld.status_key, 1, '-', 6, '-', NULL),
             DECODE (
                meld.prio,
                1,
                '-',
                2,
                '-',
                3,
                DECODE (
                   SIGN(ROUND (
                           wtca.bepaal_wtc_kantooruren (
                              meld.mldnew,
                              COALESCE (opdr.ordnew, SYSDATE))
                           * 60,
                           0)
                        - 30),                           -- Harde afspraak 30m
                   1,
                   'Nee',
                   'Ja'),
                DECODE (
                   SIGN(ROUND (
                           wtca.bepaal_wtc_kantooruren (
                              meld.mldnew,
                              COALESCE (opdr.ordnew, SYSDATE))
                           * 60,
                           0)
                        - 60),                           -- Harde afspraak 60m
                   1,
                   'Nee',
                   'Ja')))
             sp_afh_ok,
          DECODE (
             opdr.ordacp,
             NULL,
             NULL,
                TO_CHAR (FLOOR (opdr.ordacp - opdr.ordnew))
             || 'd-'
             || TO_CHAR (MOD (FLOOR ( (opdr.ordacp - opdr.ordnew) * 24), 24))
             || 'u-'
             || TO_CHAR(MOD (
                           ROUND ( (opdr.ordacp - opdr.ordnew) * 24 * 60, 0),
                           60))
             || 'm')
             uv_responsetijd,
          DECODE (
             opdr.ordnew,
             NULL,
             DECODE (meld.status_key, 1, '-', 6, '-', NULL),
             DECODE (
                meld.prio,
                1,
                '-',
                2,
                '-',
                3,
                DECODE (
                   SIGN(FLOOR( (COALESCE (opdr.ordacp, SYSDATE) - opdr.ordnew)
                              * 24)
                        - 4),                          -- Harde afspraak 4 uur
                   1,
                   'Nee',
                   'Ja'),
                DECODE (
                   SIGN(FAC.count_work_days_incltime (
                           opdr.ordnew,
                           COALESCE (opdr.ordacp, SYSDATE))
                        - 1),                         -- Harde afspraak 24 uur
                   1,
                   'Nee',
                   'Ja')))
             uv_rsp_ok,
          DECODE (
             opdr.ordafm,
             NULL,
             DECODE (
                opdr.ordcan,
                NULL,
                NULL,
                TO_CHAR (FLOOR (opdr.ordcan - opdr.ordnew)) || 'd-'
                || TO_CHAR (
                      MOD (ROUND ( (opdr.ordcan - opdr.ordnew) * 24, 0), 24))
                || 'u'),
             TO_CHAR (FLOOR (opdr.ordafm - opdr.ordnew)) || 'd-'
             || TO_CHAR (
                   MOD (ROUND ( (opdr.ordafm - opdr.ordnew) * 24, 0), 24))
             || 'u')
             afhandeltijd,
          DECODE (
             opdr.ordnew,
             NULL,
             DECODE (meld.status_key, 1, '-', 6, '-', NULL),
             DECODE (
                meld.prio,
                1,
                '-',
                2,
                '-',
                DECODE (
                   SIGN(FAC.datumtijdplusuitvoertijd (
                           opdr.ordnew,
                           COALESCE (CORR.sla.tijdsduur, meld.sla.tijdsduur),
                           COALESCE (CORR.sla.eenheid, meld.sla.eenheid))
                        - COALESCE (opdr.ordafm, SYSDATE)),
                   -1,
                   'Nee',
                   'Ja')))
             uv_afh_ok,
          scope.afd_key
     FROM (SELECT m.mld_melding_key mld_key,
                  sd.ins_srtdiscipline_prefix prefix,
                  td.ins_discipline_omschrijving vakgroep,
                  sm.mld_stdmelding_omschrijving melding,
                  m.mld_melding_spoed prio,
                  m.mld_melding_t_uitvoertijd sla,
                  m.mld_melding_status status_key,
                  s.mld_statuses_omschrijving status,
                  m.mld_melding_omschrijving oms,
                  fac.gettrackingdate ('MLDNEW', m.mld_melding_key) mldnew,
                  fac.gettrackingdate ('MLDREJ', m.mld_melding_key) mldrej,
                  fac.gettrackingdate ('MLDAFM', m.mld_melding_key) mldafm,
                  a.prs_afdeling_omschrijving huurder,
                  COALESCE (og.alg_terreinsector_code, og.alg_gebouw_code)
                     gebouw_terrein
             FROM mld_melding m,
                  mld_stdmelding sm,
                  ins_tab_discipline td,
                  ins_srtdiscipline sd,
                  mld_statuses s,
                  prs_perslid p,
                  prs_afdeling a,
                  alg_v_allonrgoed_gegevens og
            WHERE m.mld_melding_datum >
                     TRUNC (ADD_MONTHS (SYSDATE, -12), 'yyyy')
                  AND m.mld_stdmelding_key = sm.mld_stdmelding_key
                  AND sm.mld_ins_discipline_key = td.ins_discipline_key
                  AND td.ins_srtdiscipline_key = sd.ins_srtdiscipline_key
                  AND m.mld_melding_status = s.mld_statuses_key
                  AND m.prs_perslid_key_voor = p.prs_perslid_key
                  AND p.prs_afdeling_key = a.prs_afdeling_key
                  AND m.mld_alg_onroerendgoed_keys =
                        og.alg_onroerendgoed_keys) meld
          LEFT JOIN (SELECT o.mld_melding_key,
                            sm.mld_stdmelding_t_uitvoertijd sla,
                            sd.ins_srtdiscipline_prefix prefix,
                            td.ins_discipline_omschrijving vakgroep,
                            sm.mld_stdmelding_omschrijving melding
                       FROM mld_opdr o,
                            mld_v_aanwezigkenmerkopdr ko,
                            mld_stdmelding sm,
                            ins_tab_discipline td,
                            ins_srtdiscipline sd
                      WHERE     o.mld_opdr_key = ko.mld_opdr_key
                            AND ko.mld_kenmerk_key = 41       -- Corr. melding
                            AND ko.mld_opdr_key = o.mld_opdr_key
                            AND sm.mld_stdmelding_key =
                                  fac.safe_to_number (
                                     ko.mld_kenmerkopdr_waarde)
                            AND sm.mld_ins_discipline_key =
                                  td.ins_discipline_key
                            AND td.ins_srtdiscipline_key =
                                  sd.ins_srtdiscipline_key) CORR
             ON meld.mld_key = CORR.mld_melding_key
          LEFT JOIN (SELECT o.mld_melding_key mld_key,
                            o.mld_opdr_bedrijfopdr_volgnr volgnr,
                            o.mld_opdr_key opdr_key,
                            o.mld_statusopdr_key status_key,
                            o.mld_opdr_omschrijving oms,
                            o.mld_opdr_opmerking opm,
                            b.prs_bedrijf_naam bedrijf,
                            kp.prs_kostenplaats_nr kostenplaats,
                            kp.prs_kostenplaats_omschrijving kostenplaats_oms,
                            fac.gettrackingdate ('ORDNEW', o.mld_opdr_key)
                               ordnew,
                            o.mld_opdr_verzonden verzonden,
                            fac.gettrackingdate ('ORDACP', o.mld_opdr_key)
                               ordacp,
                            fac.gettrackingdate ('ORDCAN', o.mld_opdr_key)
                               ordcan,
                            fac.gettrackingdate ('ORDAFM', o.mld_opdr_key)
                               ordafm
                       FROM mld_opdr o, prs_bedrijf b, prs_kostenplaats kp
                      WHERE o.mld_uitvoerende_keys = b.prs_bedrijf_key
                            AND o.prs_kostenplaats_key =
                                  kp.prs_kostenplaats_key) opdr
             ON meld.mld_key = opdr.mld_key
          LEFT JOIN (SELECT DISTINCT
                            o.mld_opdr_key opdr_key,
                            p.prs_afdeling_key afd_key
                       FROM mld_opdr o,
                            prs_bedrijf b,
                            prs_contactpersoon cp,
                            prs_perslid p
                      WHERE     o.mld_uitvoerende_keys = b.prs_bedrijf_key
                            AND b.prs_bedrijf_key = cp.prs_bedrijf_key
                            AND cp.prs_perslid_key = p.prs_perslid_key) scope
             ON opdr.opdr_key = scope.opdr_key;

/* Formatted on 11-2-2011 11:15:45 (QP5 v5.115.810.9015) */
CREATE OR REPLACE VIEW wtca_v_rap_opdr_mi_ppi
(
   fclt_f_maand,
   fclt_f_bedrijf,
   fclt_f_prefix,
   fclt_f_vakgroep,
   fclt_f_melding,
   aant_opdr,
   acceptatie_op_tijd,
   acceptatie_perc,
   uitvoering_op_tijd,
   uitvoering_perc
)
AS
   SELECT   x.maand,
            x.bedrijf,
            x.prefix,
            x.vakgroep,
            x.melding,
            x.aant_opdrachten,
            x.acceptatie_op_tijd,
            REPLACE (
               TO_CHAR (x.acceptatie_op_tijd * 100 / x.aant_opdrachten,
                        '990D99'),
               '.',
               ','
            )
               acceptatie_perc,
            x.uitvoering_op_tijd,
            REPLACE (
               TO_CHAR (x.uitvoering_op_tijd * 100 / x.aant_opdrachten,
                        '990D99'),
               '.',
               ','
            )
               uitvoering_perc
     FROM   (  SELECT   maand,
                        bedrijf,
                        COALESCE (CORR.prefix, opdr.prefix) prefix,
                        COALESCE (CORR.vakgroep, opdr.vakgroep) vakgroep,
                        COALESCE (CORR.melding, opdr.melding) melding,
                        COUNT (opdr_key) aant_opdrachten,
                        SUM (acceptoptijd) acceptatie_op_tijd,
                        SUM(DECODE (
                               SIGN(FAC.datumtijdplusuitvoertijd (fac.gettrackingdate ('ORDNEW', opdr.opdr_key),
                                                                  COALESCE (CORR.sla.tijdsduur, opdr.sla.tijdsduur),
                                                                  COALESCE (CORR.sla.eenheid, opdr.sla.eenheid))
                                    - COALESCE (fac.gettrackingdate ('ORDAFM', opdr.opdr_key), SYSDATE)),
                               -1,
                               0,
                               1
                            ))
                           uitvoering_op_tijd
                 FROM      (SELECT   o.mld_opdr_key opdr_key,
                                     DECODE (
                                        o.mld_statusopdr_key,
                                        6,
                                        TO_CHAR (
                                           fac.gettrackingdate ('ORDAFM',
                                                                o.mld_opdr_key),
                                           'yyyy-mm'
                                        ),
                                        7,
                                        TO_CHAR (
                                           fac.gettrackingdate ('ORDAFM',
                                                                o.mld_opdr_key),
                                           'yyyy-mm'
                                        ),
                                        9,
                                        TO_CHAR (
                                           fac.gettrackingdate ('ORDAFM',
                                                                o.mld_opdr_key),
                                           'yyyy-mm'
                                        ),
                                        'Lopend'
                                     )
                                        maand,
                                     b.prs_bedrijf_naam bedrijf,
                                     sd.ins_srtdiscipline_prefix prefix,
                                     td.ins_discipline_omschrijving vakgroep,
                                     sm.mld_stdmelding_omschrijving melding,
                                     m.mld_melding_t_uitvoertijd sla,
                                     DECODE (
                                        m.mld_melding_spoed,
                                        3,
                                        DECODE (
                                           SIGN(FLOOR( (COALESCE (
                                                           fac.gettrackingdate (
                                                              'ORDACP',
                                                              o.mld_opdr_key
                                                           ),
                                                           SYSDATE
                                                        )
                                                        - fac.gettrackingdate (
                                                             'ORDNEW',
                                                             o.mld_opdr_key
                                                          ))
                                                      * 24)
                                                - 4),  -- Harde afspraak 4 uur
                                           1,
                                           0,
                                           1
                                        ),
                                        DECODE (
                                           SIGN(FAC.count_work_days_incltime (
                                                   fac.gettrackingdate (
                                                      'ORDNEW',
                                                      o.mld_opdr_key
                                                   ),
                                                   COALESCE (
                                                      fac.gettrackingdate (
                                                         'ORDACP',
                                                         o.mld_opdr_key
                                                      ),
                                                      SYSDATE
                                                   )
                                                )
                                                - 1), -- Harde afspraak 24 uur
                                           1,
                                           0,
                                           1
                                        )
                                     )
                                        acceptoptijd
                              FROM   mld_opdr o,
                                     mld_melding m,
                                     mld_stdmelding sm,
                                     ins_tab_discipline td,
                                     ins_srtdiscipline sd,
                                     prs_bedrijf b
                             WHERE   o.mld_melding_key = m.mld_melding_key
                                     AND m.mld_stdmelding_key =
                                           sm.mld_stdmelding_key
                                     AND sm.mld_ins_discipline_key =
                                           td.ins_discipline_key
                                     AND td.ins_srtdiscipline_key =
                                           sd.ins_srtdiscipline_key
                                     AND o.mld_uitvoerende_keys =
                                           b.prs_bedrijf_key
                                     AND o.mld_statusopdr_key <> 1
                                     AND m.mld_melding_spoed IN (3, 4)) opdr
                        LEFT JOIN
                           (SELECT   ko.mld_opdr_key,
                                     sd.ins_srtdiscipline_prefix prefix,
                                     td.ins_discipline_omschrijving vakgroep,
                                     sm.mld_stdmelding_omschrijving melding,
                                     sm.mld_stdmelding_t_uitvoertijd sla
                              FROM   mld_v_aanwezigkenmerkopdr ko,
                                     mld_stdmelding sm,
                                     ins_tab_discipline td,
                                     ins_srtdiscipline sd
                             WHERE   ko.mld_kenmerk_key = 41  -- Corr. melding
                                     AND sm.mld_stdmelding_key =
                                           fac.safe_to_number (
                                              ko.mld_kenmerkopdr_waarde
                                           )
                                     AND sm.mld_ins_discipline_key =
                                           td.ins_discipline_key
                                     AND td.ins_srtdiscipline_key =
                                           sd.ins_srtdiscipline_key) CORR
                        ON opdr.opdr_key = CORR.mld_opdr_key
             GROUP BY   maand,
                        bedrijf,
                        COALESCE (CORR.prefix, opdr.prefix),
                        COALESCE (CORR.vakgroep, opdr.vakgroep),
                        COALESCE (CORR.melding, opdr.melding)) x
   UNION ALL
   SELECT   x.maand,
            x.bedrijf,
            x.prefix,
            x.vakgroep,
            x.melding,
            x.aant_opdrachten,
            x.acceptatie_op_tijd,
            REPLACE (
               TO_CHAR (x.acceptatie_op_tijd * 100 / x.aant_opdrachten,
                        '990D99'),
               '.',
               ','
            )
               acceptatie_perc,
            x.uitvoering_op_tijd,
            REPLACE (
               TO_CHAR (x.uitvoering_op_tijd * 100 / x.aant_opdrachten,
                        '990D99'),
               '.',
               ','
            )
               uitvoering_perc
     FROM   (  SELECT   maand,
                        bedrijf || '/GEANNULEERD' bedrijf,
                        COALESCE (CORR.prefix, opdr.prefix) prefix,
                        COALESCE (CORR.vakgroep, opdr.vakgroep) vakgroep,
                        COALESCE (CORR.melding, opdr.melding) melding,
                        COUNT (opdr_key) aant_opdrachten,
                        SUM (acceptoptijd) acceptatie_op_tijd,
                        SUM(DECODE (
                               SIGN(FAC.datumtijdplusuitvoertijd (fac.gettrackingdate ('ORDNEW', opdr.opdr_key),
                                                                  COALESCE (CORR.sla.tijdsduur, opdr.sla.tijdsduur),
                                                                  COALESCE (CORR.sla.eenheid, opdr.sla.eenheid))
                                    - COALESCE (fac.gettrackingdate ('ORDAFM', opdr.opdr_key), SYSDATE)),
                               -1,
                               0,
                               1
                            ))
                           uitvoering_op_tijd
                 FROM      (SELECT   o.mld_opdr_key opdr_key,
                                     TO_CHAR (
                                        fac.gettrackingdate ('ORDCAN',
                                                             o.mld_opdr_key),
                                        'yyyy-mm'
                                     )
                                        maand,
                                     b.prs_bedrijf_naam bedrijf,
                                     sd.ins_srtdiscipline_prefix prefix,
                                     td.ins_discipline_omschrijving vakgroep,
                                     sm.mld_stdmelding_omschrijving melding,
                                     m.mld_melding_t_uitvoertijd sla,
                                     DECODE (
                                        m.mld_melding_spoed,
                                        3,
                                        DECODE (
                                           SIGN(FLOOR( (COALESCE (
                                                           fac.gettrackingdate (
                                                              'ORDACP',
                                                              o.mld_opdr_key
                                                           ),
                                                           SYSDATE
                                                        )
                                                        - fac.gettrackingdate (
                                                             'ORDNEW',
                                                             o.mld_opdr_key
                                                          ))
                                                      * 24)
                                                - 4),  -- Harde afspraak 4 uur
                                           1,
                                           0,
                                           1
                                        ),
                                        DECODE (
                                           SIGN(FAC.count_work_days_incltime (
                                                   fac.gettrackingdate (
                                                      'ORDNEW',
                                                      o.mld_opdr_key
                                                   ),
                                                   COALESCE (
                                                      fac.gettrackingdate (
                                                         'ORDACP',
                                                         o.mld_opdr_key
                                                      ),
                                                      SYSDATE
                                                   )
                                                )
                                                - 1), -- Harde afspraak 24 uur
                                           1,
                                           0,
                                           1
                                        )
                                     )
                                        acceptoptijd,
                                     FAC.count_work_days_incltime (
                                        fac.gettrackingdate ('ORDNEW',
                                                             o.mld_opdr_key),
                                        COALESCE (
                                           fac.gettrackingdate ('ORDCAN',
                                                                o.mld_opdr_key),
                                           SYSDATE
                                        )
                                     )
                                        afmelddagen
                              FROM   mld_opdr o,
                                     mld_melding m,
                                     mld_stdmelding sm,
                                     ins_tab_discipline td,
                                     ins_srtdiscipline sd,
                                     prs_bedrijf b
                             WHERE   o.mld_melding_key = m.mld_melding_key
                                     AND m.mld_stdmelding_key =
                                           sm.mld_stdmelding_key
                                     AND sm.mld_ins_discipline_key =
                                           td.ins_discipline_key
                                     AND td.ins_srtdiscipline_key =
                                           sd.ins_srtdiscipline_key
                                     AND o.mld_uitvoerende_keys =
                                           b.prs_bedrijf_key
                                     AND o.mld_statusopdr_key = 1
                                     AND m.mld_melding_spoed IN (3, 4)) opdr
                        LEFT JOIN
                           (SELECT   ko.mld_opdr_key,
                                     sd.ins_srtdiscipline_prefix prefix,
                                     td.ins_discipline_omschrijving vakgroep,
                                     sm.mld_stdmelding_omschrijving melding,
                                     sm.mld_stdmelding_t_uitvoertijd sla
                              FROM   mld_v_aanwezigkenmerkopdr ko,
                                     mld_stdmelding sm,
                                     ins_tab_discipline td,
                                     ins_srtdiscipline sd
                             WHERE   ko.mld_kenmerk_key = 41  -- Corr. melding
                                     AND sm.mld_stdmelding_key =
                                           fac.safe_to_number (
                                              ko.mld_kenmerkopdr_waarde
                                           )
                                     AND sm.mld_ins_discipline_key =
                                           td.ins_discipline_key
                                     AND td.ins_srtdiscipline_key =
                                           sd.ins_srtdiscipline_key) CORR
                        ON opdr.opdr_key = CORR.mld_opdr_key
             GROUP BY   maand,
                        bedrijf,
                        COALESCE (CORR.prefix, opdr.prefix),
                        COALESCE (CORR.vakgroep, opdr.vakgroep),
                        COALESCE (CORR.melding, opdr.melding)) x
   UNION ALL
   SELECT   x.maand,
            x.bedrijf,
            x.prefix,
            x.vakgroep,
            x.melding || '/KRITIEK-DRINGEND',
            x.aant_opdrachten,
            TO_NUMBER (NULL),
            '-' acceptatie_perc,
            TO_NUMBER (NULL),
            '-' uitvoering_perc
     FROM   (  SELECT   maand,
                        bedrijf,
                        COALESCE (CORR.prefix, opdr.prefix) prefix,
                        COALESCE (CORR.vakgroep, opdr.vakgroep) vakgroep,
                        COALESCE (CORR.melding, opdr.melding) melding,
                        COUNT (opdr_key) aant_opdrachten
                 FROM      (SELECT   o.mld_opdr_key opdr_key,
                                     DECODE (
                                        o.mld_statusopdr_key,
                                        6,
                                        TO_CHAR (
                                           fac.gettrackingdate ('ORDAFM',
                                                                o.mld_opdr_key),
                                           'yyyy-mm'
                                        ),
                                        7,
                                        TO_CHAR (
                                           fac.gettrackingdate ('ORDAFM',
                                                                o.mld_opdr_key),
                                           'yyyy-mm'
                                        ),
                                        9,
                                        TO_CHAR (
                                           fac.gettrackingdate ('ORDAFM',
                                                                o.mld_opdr_key),
                                           'yyyy-mm'
                                        ),
                                        'Lopend'
                                     )
                                        maand,
                                     b.prs_bedrijf_naam bedrijf,
                                     sd.ins_srtdiscipline_prefix prefix,
                                     td.ins_discipline_omschrijving vakgroep,
                                     sm.mld_stdmelding_omschrijving melding
                              FROM   mld_opdr o,
                                     mld_melding m,
                                     mld_stdmelding sm,
                                     ins_tab_discipline td,
                                     ins_srtdiscipline sd,
                                     prs_bedrijf b
                             WHERE   o.mld_melding_key = m.mld_melding_key
                                     AND m.mld_stdmelding_key =
                                           sm.mld_stdmelding_key
                                     AND sm.mld_ins_discipline_key =
                                           td.ins_discipline_key
                                     AND td.ins_srtdiscipline_key =
                                           sd.ins_srtdiscipline_key
                                     AND o.mld_uitvoerende_keys =
                                           b.prs_bedrijf_key
                                     AND o.mld_statusopdr_key <> 1
                                     AND m.mld_melding_spoed IN (1, 2)) opdr
                        LEFT JOIN
                           (SELECT   ko.mld_opdr_key,
                                     sd.ins_srtdiscipline_prefix prefix,
                                     td.ins_discipline_omschrijving vakgroep,
                                     sm.mld_stdmelding_omschrijving melding
                              FROM   mld_v_aanwezigkenmerkopdr ko,
                                     mld_stdmelding sm,
                                     ins_tab_discipline td,
                                     ins_srtdiscipline sd
                             WHERE   ko.mld_kenmerk_key = 41  -- Corr. melding
                                     AND sm.mld_stdmelding_key =
                                           fac.safe_to_number (
                                              ko.mld_kenmerkopdr_waarde
                                           )
                                     AND sm.mld_ins_discipline_key =
                                           td.ins_discipline_key
                                     AND td.ins_srtdiscipline_key =
                                           sd.ins_srtdiscipline_key) CORR
                        ON opdr.opdr_key = CORR.mld_opdr_key
             GROUP BY   maand,
                        bedrijf,
                        COALESCE (CORR.prefix, opdr.prefix),
                        COALESCE (CORR.vakgroep, opdr.vakgroep),
                        COALESCE (CORR.melding, opdr.melding)) x
   UNION ALL
   SELECT   x.maand,
            x.bedrijf,
            x.prefix,
            x.vakgroep,
            x.melding || '/KRITIEK-DRINGEND',
            x.aant_opdrachten,
            TO_NUMBER (NULL),
            '-' acceptatie_perc,
            TO_NUMBER (NULL),
            '-' uitvoering_perc
     FROM   (  SELECT   maand,
                        bedrijf || '/GEANNULEERD' bedrijf,
                        COALESCE (CORR.prefix, opdr.prefix) prefix,
                        COALESCE (CORR.vakgroep, opdr.vakgroep) vakgroep,
                        COALESCE (CORR.melding, opdr.melding) melding,
                        COUNT (opdr_key) aant_opdrachten
                 FROM      (SELECT   o.mld_opdr_key opdr_key,
                                     TO_CHAR (
                                        fac.gettrackingdate ('ORDCAN',
                                                             o.mld_opdr_key),
                                        'yyyy-mm'
                                     )
                                        maand,
                                     b.prs_bedrijf_naam bedrijf,
                                     sd.ins_srtdiscipline_prefix prefix,
                                     td.ins_discipline_omschrijving vakgroep,
                                     sm.mld_stdmelding_omschrijving melding
                              FROM   mld_opdr o,
                                     mld_melding m,
                                     mld_stdmelding sm,
                                     ins_tab_discipline td,
                                     ins_srtdiscipline sd,
                                     prs_bedrijf b
                             WHERE   o.mld_melding_key = m.mld_melding_key
                                     AND m.mld_stdmelding_key =
                                           sm.mld_stdmelding_key
                                     AND sm.mld_ins_discipline_key =
                                           td.ins_discipline_key
                                     AND td.ins_srtdiscipline_key =
                                           sd.ins_srtdiscipline_key
                                     AND o.mld_uitvoerende_keys =
                                           b.prs_bedrijf_key
                                     AND o.mld_statusopdr_key = 1
                                     AND m.mld_melding_spoed IN (1, 2)) opdr
                        LEFT JOIN
                           (SELECT   ko.mld_opdr_key,
                                     sd.ins_srtdiscipline_prefix prefix,
                                     td.ins_discipline_omschrijving vakgroep,
                                     sm.mld_stdmelding_omschrijving melding
                              FROM   mld_v_aanwezigkenmerkopdr ko,
                                     mld_stdmelding sm,
                                     ins_tab_discipline td,
                                     ins_srtdiscipline sd
                             WHERE   ko.mld_kenmerk_key = 41  -- Corr. melding
                                     AND sm.mld_stdmelding_key =
                                           fac.safe_to_number (
                                              ko.mld_kenmerkopdr_waarde
                                           )
                                     AND sm.mld_ins_discipline_key =
                                           td.ins_discipline_key
                                     AND td.ins_srtdiscipline_key =
                                           sd.ins_srtdiscipline_key) CORR
                        ON opdr.opdr_key = CORR.mld_opdr_key
             GROUP BY   maand,
                        bedrijf,
                        COALESCE (CORR.prefix, opdr.prefix),
                        COALESCE (CORR.vakgroep, opdr.vakgroep),
                        COALESCE (CORR.melding, opdr.melding)) x;

/* Formatted on 6-1-2011 10:28:58 (QP5 v5.115.810.9015) */
CREATE OR REPLACE VIEW wtca_v_rap_opdr_mi_ppi2
(
   fclt_f_maand,
   fclt_f_bedrijf,
   fclt_f_kdrager,
   fclt_f_kdrager_oms,
   aant_opdr,
   acceptatie_op_tijd,
   acceptatie_perc,
   uitvoering_op_tijd,
   uitvoering_perc
)
AS
   SELECT x.maand,
          x.bedrijf,
          x.kostenplaats,
          x.kostenplaats_oms,
          x.aant_opdrachten,
          x.acceptatie_op_tijd,
          REPLACE (
             TO_CHAR (x.acceptatie_op_tijd * 100 / x.aant_opdrachten,
                      '990D99'),
             '.',
             ',')
             acceptatie_perc,
          x.uitvoering_op_tijd,
          REPLACE (
             TO_CHAR (x.uitvoering_op_tijd * 100 / x.aant_opdrachten,
                      '990D99'),
             '.',
             ',')
             uitvoering_perc
     FROM (  SELECT maand,
                    bedrijf,
                    kostenplaats,
                    kostenplaats_oms,
                    COUNT (opdr_key) aant_opdrachten,
                    SUM (acceptoptijd) acceptatie_op_tijd,
                    SUM (afmeldoptijd) uitvoering_op_tijd
               FROM (SELECT o.mld_opdr_key opdr_key,
                            DECODE (
                               o.mld_statusopdr_key,
                               6,
                               TO_CHAR (
                                  fac.gettrackingdate ('ORDAFM',
                                                       o.mld_opdr_key),
                                  'yyyy-mm'),
                               7,
                               TO_CHAR (
                                  fac.gettrackingdate ('ORDAFM',
                                                       o.mld_opdr_key),
                                  'yyyy-mm'),
                               9,
                               TO_CHAR (
                                  fac.gettrackingdate ('ORDAFM',
                                                       o.mld_opdr_key),
                                  'yyyy-mm'),
                               'Lopend')
                               maand,
                            b.prs_bedrijf_naam bedrijf,
                            kp.prs_kostenplaats_nr kostenplaats,
                            kp.prs_kostenplaats_omschrijving kostenplaats_oms,
                            DECODE (
                               m.mld_melding_spoed,
                               3,
                               DECODE (
                                  SIGN(FLOOR( (COALESCE (
                                                  fac.gettrackingdate (
                                                     'ORDACP',
                                                     o.mld_opdr_key),
                                                  SYSDATE)
                                               - fac.gettrackingdate (
                                                    'ORDNEW',
                                                    o.mld_opdr_key))
                                             * 24)
                                       - 4),           -- Harde afspraak 4 uur
                                  1,
                                  0,
                                  1),
                               DECODE (
                                  SIGN(FAC.count_work_days_incltime (
                                          fac.gettrackingdate ('ORDNEW',
                                                               o.mld_opdr_key),
                                          COALESCE (
                                             fac.gettrackingdate (
                                                'ORDACP',
                                                o.mld_opdr_key),
                                             SYSDATE))
                                       - 1),          -- Harde afspraak 24 uur
                                  1,
                                  0,
                                  1))
                               acceptoptijd,
                            DECODE (
                               SIGN(FAC.datumtijdplusuitvoertijd (
                                       fac.gettrackingdate ('ORDNEW',
                                                            o.mld_opdr_key),
                                       m.mld_melding_t_uitvoertijd.tijdsduur,
                                       m.mld_melding_t_uitvoertijd.eenheid)
                                    - COALESCE (
                                         fac.gettrackingdate ('ORDAFM',
                                                              o.mld_opdr_key),
                                         SYSDATE)),
                               -1,
                               0,
                               1)
                               afmeldoptijd
                       FROM mld_opdr o,
                            mld_melding m,
                            prs_bedrijf b,
                            prs_kostenplaats kp
                      WHERE o.mld_melding_key = m.mld_melding_key
                            AND o.mld_uitvoerende_keys = b.prs_bedrijf_key
                            AND o.prs_kostenplaats_key =
                                  kp.prs_kostenplaats_key
                            AND o.mld_statusopdr_key <> 1
                            AND m.mld_melding_spoed IN (3, 4))
           GROUP BY maand,
                    bedrijf,
                    kostenplaats,
                    kostenplaats_oms) x
   UNION ALL
   SELECT x.maand,
          x.bedrijf,
          x.kostenplaats,
          x.kostenplaats_oms,
          x.aant_opdrachten,
          x.acceptatie_op_tijd,
          REPLACE (
             TO_CHAR (x.acceptatie_op_tijd * 100 / x.aant_opdrachten,
                      '990D99'),
             '.',
             ',')
             acceptatie_perc,
          x.uitvoering_op_tijd,
          REPLACE (
             TO_CHAR (x.uitvoering_op_tijd * 100 / x.aant_opdrachten,
                      '990D99'),
             '.',
             ',')
             uitvoering_perc
     FROM (  SELECT maand,
                    bedrijf || '/GEANNULEERD' bedrijf,
                    kostenplaats,
                    kostenplaats_oms,
                    COUNT (opdr_key) aant_opdrachten,
                    SUM (acceptoptijd) acceptatie_op_tijd,
                    SUM (afmeldoptijd) uitvoering_op_tijd
               FROM (SELECT o.mld_opdr_key opdr_key,
                            TO_CHAR (
                               fac.gettrackingdate ('ORDCAN', o.mld_opdr_key),
                               'yyyy-mm')
                               maand,
                            b.prs_bedrijf_naam bedrijf,
                            kp.prs_kostenplaats_nr kostenplaats,
                            kp.prs_kostenplaats_omschrijving kostenplaats_oms,
                            DECODE (
                               m.mld_melding_spoed,
                               3,
                               DECODE (
                                  SIGN(FLOOR( (COALESCE (
                                                  fac.gettrackingdate (
                                                     'ORDACP',
                                                     o.mld_opdr_key),
                                                  SYSDATE)
                                               - fac.gettrackingdate (
                                                    'ORDNEW',
                                                    o.mld_opdr_key))
                                             * 24)
                                       - 4),           -- Harde afspraak 4 uur
                                  1,
                                  0,
                                  1),
                               DECODE (
                                  SIGN(FAC.count_work_days_incltime (
                                          fac.gettrackingdate ('ORDNEW',
                                                               o.mld_opdr_key),
                                          COALESCE (
                                             fac.gettrackingdate (
                                                'ORDACP',
                                                o.mld_opdr_key),
                                             SYSDATE))
                                       - 1),          -- Harde afspraak 24 uur
                                  1,
                                  0,
                                  1))
                               acceptoptijd,
                            DECODE (
                               SIGN(FAC.datumtijdplusuitvoertijd (
                                       fac.gettrackingdate ('ORDNEW',
                                                            o.mld_opdr_key),
                                       m.mld_melding_t_uitvoertijd.tijdsduur,
                                       m.mld_melding_t_uitvoertijd.eenheid)
                                    - COALESCE (
                                         fac.gettrackingdate ('ORDCAN',
                                                              o.mld_opdr_key),
                                         SYSDATE)),
                               -1,
                               0,
                               1)
                               afmeldoptijd
                       FROM mld_opdr o,
                            mld_melding m,
                            prs_bedrijf b,
                            prs_kostenplaats kp
                      WHERE o.mld_melding_key = m.mld_melding_key
                            AND o.mld_uitvoerende_keys = b.prs_bedrijf_key
                            AND o.prs_kostenplaats_key =
                                  kp.prs_kostenplaats_key
                            AND o.mld_statusopdr_key = 1
                            AND m.mld_melding_spoed IN (3, 4))
           GROUP BY maand,
                    bedrijf,
                    kostenplaats,
                    kostenplaats_oms) x
   UNION ALL
   SELECT x.maand,
          x.bedrijf,
          x.kostenplaats,
          x.kostenplaats_oms,
          x.aant_opdrachten,
          TO_NUMBER (NULL),
          '-' acceptatie_perc,
          TO_NUMBER (NULL),
          '-' uitvoering_perc
     FROM (  SELECT maand,
                    bedrijf,
                    kostenplaats,
                    kostenplaats_oms,
                    COUNT (opdr_key) aant_opdrachten
               FROM (SELECT o.mld_opdr_key opdr_key,
                            DECODE (
                               o.mld_statusopdr_key,
                               6,
                               TO_CHAR (
                                  fac.gettrackingdate ('ORDAFM',
                                                       o.mld_opdr_key),
                                  'yyyy-mm'),
                               7,
                               TO_CHAR (
                                  fac.gettrackingdate ('ORDAFM',
                                                       o.mld_opdr_key),
                                  'yyyy-mm'),
                               9,
                               TO_CHAR (
                                  fac.gettrackingdate ('ORDAFM',
                                                       o.mld_opdr_key),
                                  'yyyy-mm'),
                               'Lopend')
                               maand,
                            b.prs_bedrijf_naam bedrijf,
                            kp.prs_kostenplaats_nr kostenplaats,
                            kp.prs_kostenplaats_omschrijving kostenplaats_oms,
                            DECODE (
                               SIGN(FLOOR( (COALESCE (
                                               fac.gettrackingdate (
                                                  'ORDACP',
                                                  o.mld_opdr_key),
                                               SYSDATE)
                                            - fac.gettrackingdate (
                                                 'ORDNEW',
                                                 o.mld_opdr_key))
                                          * 24)
                                    - 4),              -- Harde afspraak 4 uur
                               1,
                               0,
                               1)
                               acceptoptijd,
                            DECODE (
                               SIGN(FAC.datumtijdplusuitvoertijd (
                                       fac.gettrackingdate ('ORDNEW',
                                                            o.mld_opdr_key),
                                       m.mld_melding_t_uitvoertijd.tijdsduur,
                                       m.mld_melding_t_uitvoertijd.eenheid)
                                    - COALESCE (
                                         fac.gettrackingdate ('ORDAFM',
                                                              o.mld_opdr_key),
                                         SYSDATE)),
                               -1,
                               0,
                               1)
                               afmeldoptijd
                       FROM mld_opdr o,
                            mld_melding m,
                            prs_bedrijf b,
                            prs_kostenplaats kp
                      WHERE o.mld_melding_key = m.mld_melding_key
                            AND o.mld_uitvoerende_keys = b.prs_bedrijf_key
                            AND o.prs_kostenplaats_key =
                                  kp.prs_kostenplaats_key
                            AND o.mld_statusopdr_key <> 1
                            AND m.mld_melding_spoed IN (1, 2))
           GROUP BY maand,
                    bedrijf,
                    kostenplaats,
                    kostenplaats_oms) x
   UNION ALL
   SELECT x.maand,
          x.bedrijf,
          x.kostenplaats,
          x.kostenplaats_oms,
          x.aant_opdrachten,
          TO_NUMBER (NULL),
          '-' acceptatie_perc,
          TO_NUMBER (NULL),
          '-' uitvoering_perc
     FROM (  SELECT maand,
                    bedrijf || '/GEANNULEERD' bedrijf,
                    kostenplaats,
                    kostenplaats_oms,
                    COUNT (opdr_key) aant_opdrachten
               FROM (SELECT o.mld_opdr_key opdr_key,
                            TO_CHAR (
                               fac.gettrackingdate ('ORDCAN', o.mld_opdr_key),
                               'yyyy-mm')
                               maand,
                            b.prs_bedrijf_naam bedrijf,
                            kp.prs_kostenplaats_nr kostenplaats,
                            kp.prs_kostenplaats_omschrijving kostenplaats_oms,
                            DECODE (
                               SIGN(FLOOR( (COALESCE (
                                               fac.gettrackingdate (
                                                  'ORDACP',
                                                  o.mld_opdr_key),
                                               SYSDATE)
                                            - fac.gettrackingdate (
                                                 'ORDNEW',
                                                 o.mld_opdr_key))
                                          * 24)
                                    - 4),              -- Harde afspraak 4 uur
                               1,
                               0,
                               1)
                               acceptoptijd,
                            DECODE (
                               SIGN(FAC.datumtijdplusuitvoertijd (
                                       fac.gettrackingdate ('ORDNEW',
                                                            o.mld_opdr_key),
                                       m.mld_melding_t_uitvoertijd.tijdsduur,
                                       m.mld_melding_t_uitvoertijd.eenheid)
                                    - COALESCE (
                                         fac.gettrackingdate ('ORDCAN',
                                                              o.mld_opdr_key),
                                         SYSDATE)),
                               -1,
                               0,
                               1)
                               afmeldoptijd
                       FROM mld_opdr o,
                            mld_melding m,
                            prs_bedrijf b,
                            prs_kostenplaats kp
                      WHERE o.mld_melding_key = m.mld_melding_key
                            AND o.mld_uitvoerende_keys = b.prs_bedrijf_key
                            AND o.prs_kostenplaats_key =
                                  kp.prs_kostenplaats_key
                            AND o.mld_statusopdr_key = 1
                            AND m.mld_melding_spoed IN (1, 2))
           GROUP BY maand,
                    bedrijf,
                    kostenplaats,
                    kostenplaats_oms) x;

/* Formatted on 24-2-2012 10:28:42 (QP5 v5.115.810.9015) */
CREATE OR REPLACE VIEW wtca_v_rap_mld_structuur
(
   fclt_f_vakgroeptype,
   fclt_f_prefix,
   fclt_f_vakgroep,
   fclt_f_melding,
   fclt_f_groep,
   fclt_f_ksoort,
   ksoort_oms,
   acc_tijd,
   sla_krit,
   sla_hoog,
   sla_norm,
   sla_laag,
   m_totaal,
   m_lopend,
   fclt_f_dienst,
   aanwijzing
)
AS
   SELECT x.vakgroeptype,
          x.prefix,
          x.vakgroep,
          x.melding,
          x.groep,
          x.ksoort,
          x.ksoort_oms,
          x.acc_tijd,
          x.sla_krit,
          x.sla_hoog,
          x.sla_norm,
          x.sla_laag,
          y.m_totaal,
          z.m_lopend,
          d.prs_dienst_omschrijving,
          x.aanwijzing
     FROM (SELECT sm.mld_stdmelding_key,
                  DECODE (sd.ins_srtdiscipline_verwijder, NULL, '', 'XXX-')
                  || sd.ins_srtdiscipline_omschrijving
                     vakgroeptype,
                  sd.ins_srtdiscipline_prefix prefix,
                  DECODE (td.ins_discipline_verwijder, NULL, '', 'XXX-')
                  || td.ins_discipline_omschrijving
                     vakgroep,
                  DECODE (sm.mld_stdmelding_verwijder, NULL, '', 'XXX-')
                  || sm.mld_stdmelding_omschrijving
                     melding,
                  smg.mld_stdmeldinggroep_naam groep,
                  k.prs_kostensoort_oms ksoort,
                  k.prs_kostensoort_opmerking ksoort_oms,
                  TO_CHAR (sm.mld_stdmelding_t_accepttijd.tijdsduur)
                  || sm.mld_stdmelding_t_accepttijd.eenheid
                     acc_tijd,
                  TO_CHAR (sm.mld_stdmelding_t_uitvtijd_pr1.tijdsduur)
                  || sm.mld_stdmelding_t_uitvtijd_pr1.eenheid
                     sla_krit,
                  TO_CHAR (sm.mld_stdmelding_t_uitvtijd_pr2.tijdsduur)
                  || sm.mld_stdmelding_t_uitvtijd_pr2.eenheid
                     sla_hoog,
                  TO_CHAR (sm.mld_stdmelding_t_uitvoertijd.tijdsduur)
                  || sm.mld_stdmelding_t_uitvoertijd.eenheid
                     sla_norm,
                  TO_CHAR (sm.mld_stdmelding_t_uitvtijd_pr4.tijdsduur)
                  || sm.mld_stdmelding_t_uitvtijd_pr4.eenheid
                     sla_laag,
                  sm.prs_dienst_key,
                  sm.mld_stdmelding_hint aanwijzing
             FROM ins_srtdiscipline sd,
                  ins_tab_discipline td,
                  mld_stdmelding sm,
                  mld_stdmeldinggroep smg,
                  prs_kostensoort k
            WHERE sd.ins_srtdiscipline_module = 'MLD'
                  --AND sd.ins_srtdiscipline_verwijder IS NULL
                  AND sd.ins_srtdiscipline_key = td.ins_srtdiscipline_key
                  --AND td.ins_discipline_verwijder IS NULL
                  AND td.ins_discipline_key = sm.mld_ins_discipline_key
                  --AND sm.mld_stdmelding_verwijder IS NULL
                  AND sm.mld_stdmeldinggroep_key =
                        smg.mld_stdmeldinggroep_key(+)
                  AND sm.prs_kostensoort_key = k.prs_kostensoort_key(+)) x
          LEFT JOIN (  SELECT mld_stdmelding_key, COUNT ( * ) m_totaal
                         FROM mld_melding
                     GROUP BY mld_stdmelding_key) y
             ON x.mld_stdmelding_key = y.mld_stdmelding_key
          LEFT JOIN (  SELECT mld_stdmelding_key, COUNT ( * ) m_lopend
                         FROM mld_melding
                        WHERE mld_melding_status NOT IN (1, 5, 6)
                     GROUP BY mld_stdmelding_key) z
             ON x.mld_stdmelding_key = z.mld_stdmelding_key
          LEFT JOIN prs_dienst d
             ON x.prs_dienst_key = d.prs_dienst_key;

-- WTCA#38903: Per 2017 H/I-splitsing vervallen!
/* Formatted on 24-9-2014 9:50:10 (QP5 v5.136.908.31019) */
CREATE OR REPLACE VIEW wtca_v_rap_maand_actual
(
   maand,
   --sla,
   fclt_f_prefix,
   opdr,
   fclt_f_kdrager,
   fclt_f_kdrager_oms,
   corr_kdrager,
   hide_f_maatschap_key,
   fclt_f_maatschap,
   fclt_f_ksoort,
   fclt_f_ksoort_oms,
   org_ksoort,
   fclt_f_gebouw_terrein,
   verdieping,
   ruimte,
   fclt_f_vakgroep,
   fclt_f_melding,
   melder,
   omschrijving,
   opmerking,
   aanmaak,
   gepland,
   gereed,
   fclt_f_uitvoerende,
   contactpersoon,
   kosten,
   fclt_3d_afdeling_key
)
AS
   SELECT TO_CHAR (SYSDATE, 'yyyy-mm'),
          --COALESCE (c2.sla, a.sla),
          COALESCE (c2.prefix, a.prefix),
          a.opdracht,
          a.kdrager,
          a.kdrager_oms,
          c1.corr_kdrager,
          COALESCE (d.geb_maatschap_key, e.ter_maatschap_key),
          COALESCE (d.geb_maatschap, e.ter_maatschap),
          COALESCE (c2.corr_ksoort, a.ksoort),
          COALESCE (c2.corr_ksoort_oms, a.ksoort_oms),
          DECODE (c2.corr_ksoort, NULL, NULL, a.ksoort || '-' || a.ksoort_oms),
          --DECODE (f.kdeel,                        -- VERVALLEN per WTCA#28903!
          --        63, a.gebouw_terrein || ' (H)',            -- Toevoeging (H)
          --        37, a.gebouw_terrein || ' (I)',            -- Toevoeging (I)
          --        a.gebouw_terrein),
          a.gebouw_terrein,
          a.verdieping,
          a.ruimte,
          COALESCE (c2.vakgroep, a.vakgroep),
          COALESCE (c2.melding, a.melding),
          a.melder,
          a.oms,
          a.opm,
          a.datum_aanmaak,
          a.datum_gepland,
          a.datum_gereed,
          a.bedrijf,
          a.cp,
          --DECODE (f.kdeel,                        -- VERVALLEN per WTCA#28903!
          --        NULL, a.kosten,
          --        ROUND ( (f.kdeel * a.kosten) / 100, 2)),
          COALESCE (a.kosten, 0),
          b.afdeling
     FROM (SELECT o.mld_opdr_key,
                  COALESCE (og.alg_gebouw_key, og.alg_terreinsector_key) gebter_key,
                  --TO_CHAR (m.mld_melding_uitvoertijd) sla,
                  sd.ins_srtdiscipline_prefix prefix,
                  o.mld_melding_key || '/' || o.mld_opdr_bedrijfopdr_volgnr opdracht,
                  kp.prs_kostenplaats_nr kdrager,
                  kp.prs_kostenplaats_omschrijving kdrager_oms,
                  COALESCE (ksm.prs_kostensoort_oms, ksv.prs_kostensoort_oms) ksoort,
                  DECODE (ksm.prs_kostensoort_oms,
                          NULL, ksv.prs_kostensoort_opmerking,
                          ksm.prs_kostensoort_opmerking)
                     ksoort_oms,
                  COALESCE (og.alg_terreinsector_code, og.alg_gebouw_code) gebouw_terrein,
                  og.alg_verdieping_code verdieping,
                  og.alg_ruimte_nr ruimte,
                  td.ins_discipline_omschrijving vakgroep,
                  sm.mld_stdmelding_omschrijving melding,
                  pf.prs_perslid_naam_full melder,
                  o.mld_opdr_omschrijving oms,
                  o.mld_opdr_opmerking opm,
                  TO_CHAR (o.mld_opdr_datumbegin, 'dd-mm-yyyy') datum_aanmaak, -- Of verzonden?
                  TO_CHAR (fac.datumtijdplusuitvoertijd (o.mld_opdr_datumbegin,
                                                         m.mld_melding_t_uitvoertijd.tijdsduur,
                                                         m.mld_melding_t_uitvoertijd.eenheid),
                           'dd-mm-yyyy')
                     datum_gepland,
                  TO_CHAR (fac.gettrackingdate ('ORDAFM', o.mld_opdr_key),
                           'dd-mm-yyyy')
                     datum_gereed,
                  b.prs_bedrijf_naam bedrijf,
                  o.mld_opdr_contactpersoon cp,
                  o.mld_opdr_kosten kosten
             FROM mld_opdr o,
                  prs_bedrijf b,
                  mld_melding m,
                  prs_v_perslid_fullnames_all pf,
                  alg_v_allonrgoed_gegevens og,
                  mld_stdmelding sm,
                  ins_tab_discipline td,
                  ins_srtdiscipline sd,
                  prs_kostensoort ksm,
                  prs_kostensoort ksv,
                  prs_kostenplaats kp
            WHERE o.mld_statusopdr_key = 9
                  AND o.mld_uitvoerende_keys = b.prs_bedrijf_key
                  AND o.mld_melding_key = m.mld_melding_key
                  AND m.prs_perslid_key = pf.prs_perslid_key
                  AND m.mld_alg_onroerendgoed_keys = og.alg_onroerendgoed_keys
                  AND m.mld_stdmelding_key = sm.mld_stdmelding_key
                  AND sm.mld_ins_discipline_key = td.ins_discipline_key
                  AND td.ins_srtdiscipline_key = sd.ins_srtdiscipline_key
                  AND sm.prs_kostensoort_key = ksm.prs_kostensoort_key(+)
                  AND td.prs_kostensoort_key = ksv.prs_kostensoort_key(+)
                  AND o.prs_kostenplaats_key = kp.prs_kostenplaats_key
                  AND kp.prs_kostenplaats_upper = 'WTC'
                  AND fac.gettrackingdate ('ORDAFR', o.mld_opdr_key) <
                        TO_DATE (TO_CHAR (SYSDATE, 'yyyymm') || '01', 'yyyymmdd')) a
          LEFT JOIN (SELECT DISTINCT o.mld_opdr_key, p.prs_afdeling_key afdeling
                       FROM mld_opdr o, prs_bedrijf b, prs_contactpersoon cp, prs_perslid p
                      WHERE b.prs_bedrijf_key = cp.prs_bedrijf_key
                            AND o.mld_uitvoerende_keys = b.prs_bedrijf_key
                            AND cp.prs_perslid_key = p.prs_perslid_key) b
             ON a.mld_opdr_key = b.mld_opdr_key
          LEFT JOIN (SELECT ko.mld_opdr_key, ud.fac_usrdata_omschr corr_kdrager
                       FROM mld_kenmerkopdr ko, fac_usrdata ud
                      WHERE ko.mld_kenmerk_key = 1            -- Corr. kdrager
                            AND TO_CHAR (ud.fac_usrdata_key) = ko.mld_kenmerkopdr_waarde) c1
             ON a.mld_opdr_key = c1.mld_opdr_key
          LEFT JOIN (SELECT ko.mld_opdr_key,
                            --TO_CHAR (sm.mld_stdmelding_uitvoertijd) sla,
                            COALESCE (ksm.prs_kostensoort_oms,
                                      ksv.prs_kostensoort_oms)
                               corr_ksoort,
                            DECODE (ksm.prs_kostensoort_oms,
                                    NULL, ksv.prs_kostensoort_opmerking,
                                    ksm.prs_kostensoort_opmerking)
                               corr_ksoort_oms,
                            sd.ins_srtdiscipline_prefix prefix,
                            td.ins_discipline_omschrijving vakgroep,
                            sm.mld_stdmelding_omschrijving melding
                       FROM mld_v_aanwezigkenmerkopdr ko,
                            mld_stdmelding sm,
                            ins_tab_discipline td,
                            ins_srtdiscipline sd,
                            prs_kostensoort ksm,
                            prs_kostensoort ksv
                      WHERE ko.mld_kenmerk_key = 41           -- Corr. melding
                            AND TO_CHAR (sm.mld_stdmelding_key) = ko.mld_kenmerkopdr_waarde
                            AND sm.prs_kostensoort_key = ksm.prs_kostensoort_key(+)
                            AND sm.mld_ins_discipline_key = td.ins_discipline_key
                            AND td.prs_kostensoort_key = ksv.prs_kostensoort_key(+)
                            AND td.ins_srtdiscipline_key = sd.ins_srtdiscipline_key) c2
             ON a.mld_opdr_key = c2.mld_opdr_key
          LEFT JOIN (SELECT ok.alg_onrgoed_key, ud.fac_usrdata_key geb_maatschap_key, ud.fac_usrdata_omschr geb_maatschap
                       FROM alg_v_aanwezigonrgoedkenmerk ok, fac_v_aanwezigusrdata ud
                      WHERE ok.alg_kenmerk_key = 1020             -- Maatschap
                            AND TO_CHAR (ud.fac_usrdata_key) = ok.alg_onrgoedkenmerk_waarde) d
             ON a.gebter_key = d.alg_onrgoed_key
          LEFT JOIN (SELECT ok.alg_onrgoed_key, ud.fac_usrdata_key ter_maatschap_key, ud.fac_usrdata_omschr ter_maatschap
                       FROM alg_v_aanwezigonrgoedkenmerk ok, fac_v_aanwezigusrdata ud
                      WHERE ok.alg_kenmerk_key = 1040             -- Maatschap
                            AND TO_CHAR (ud.fac_usrdata_key) = ok.alg_onrgoedkenmerk_waarde) e
             ON a.gebter_key = e.alg_onrgoed_key;
          --LEFT JOIN (SELECT g.alg_gebouw_key, 63 kdeel -- 63% van A-HI (=1572) op TH
          --             FROM alg_gebouw g
          --            WHERE g.alg_gebouw_key = 1572
          --           UNION ALL
          --           SELECT g.alg_gebouw_key, 37 kdeel -- 37% van A-HI (=1572) op TI
          --             FROM alg_gebouw g
          --            WHERE g.alg_gebouw_key = 1572) f
          --   ON a.gebter_key = f.alg_gebouw_key;

/* Formatted on 18-2-2015 14:10:20 (QP5 v5.136.908.31019) */
CREATE OR REPLACE VIEW wtca_v_rap_maand_actual_fact
(
   maand,
   tot_datum,
   opdr,
   maatschap,
   ksoort,
   ksoort_oms,
   fclt_f_complex,
   gebouw_terrein,
   verdieping,
   ruimte,
   vakgroep,
   melding,
   melder,
   omschrijving,
   opmerking,
   aanmaak,
   gereed,
   fclt_f_uitvoerende,
   kosten,
   fclt_3d_afdeling_key
)
AS
   SELECT maand,
          TO_CHAR (TO_DATE (maand || '-01', 'yyyy-mm-dd') - 1, 'dd-mm-yyyy'),
          opdr,
          fclt_f_maatschap,
          fclt_f_ksoort,
          fclt_f_ksoort_oms,
          CASE
             WHEN COALESCE (kosten, 0) = 0
             THEN
                '0'
             WHEN hide_f_maatschap_key = 21
             THEN
                '924'
             WHEN hide_f_maatschap_key = 22
             THEN
                '925'
             WHEN UPPER (TRIM (fclt_f_ksoort_oms)) =
                     'STORINGEN PARKEERGARAGE'
             THEN
                '929'
             WHEN SUBSTR (UPPER (TRIM (fclt_f_gebouw_terrein)), -1) = 'H'
                  OR SUBSTR (UPPER (TRIM (fclt_f_gebouw_terrein)), -3) = '(H)'
             THEN
                '928'
             WHEN SUBSTR (UPPER (TRIM (fclt_f_gebouw_terrein)), -1) = 'I'
                  OR SUBSTR (UPPER (TRIM (fclt_f_gebouw_terrein)), -3) = '(I)'
             THEN
                '928'           -- WTCA#28903: Per 2017 ook '928' (was '927')!
             ELSE                                                   -- De rest
                '0'
          END
             complex,
          fclt_f_gebouw_terrein,
          verdieping,
          ruimte,
          fclt_f_vakgroep,
          fclt_f_melding,
          melder,
          omschrijving,
          opmerking,
          aanmaak,
          gereed,
          fclt_f_uitvoerende,
          kosten,
          fclt_3d_afdeling_key
     FROM wtca_v_rap_maand_actual;

/* Formatted on 24-9-2014 9:55:05 (QP5 v5.136.908.31019) */
CREATE OR REPLACE VIEW wtca_v_rap_maand_frozen
(
   fclt_f_archief,
   --sla,
   fclt_f_prefix,
   opdr,
   fclt_f_kdrager,
   fclt_f_kdrager_oms,
   corr_kdrager,
   hide_f_maatschap_key,
   fclt_f_maatschap,
   fclt_f_ksoort,
   fclt_f_ksoort_oms,
   org_ksoort,
   fclt_f_gebouw_terrein,
   verdieping,
   ruimte,
   fclt_f_vakgroep,
   fclt_f_melding,
   melder,
   omschrijving,
   opmerking,
   aanmaak,
   gepland,
   gereed,
   fclt_f_uitvoerende,
   contactpersoon,
   kosten,
   fclt_3d_afdeling_key
)
AS
   SELECT a.datum_frozen,
          --COALESCE (c2.sla, a.sla),
          COALESCE (c2.prefix, a.prefix),
          a.opdracht,
          a.kdrager,
          a.kdrager_oms,
          c1.corr_kdrager,
          COALESCE (d.geb_maatschap_key, e.ter_maatschap_key),
          COALESCE (d.geb_maatschap, e.ter_maatschap),
          COALESCE (c2.corr_ksoort, a.ksoort),
          COALESCE (c2.corr_ksoort_oms, a.ksoort_oms),
          DECODE (c2.corr_ksoort,
                  NULL, NULL,
                  a.ksoort || '-' || a.ksoort_oms),
          DECODE (f.kdeel,
                  63, a.gebouw_terrein || ' (H)',            -- Toevoeging (H)
                  37, a.gebouw_terrein || ' (I)',            -- Toevoeging (I)
                  a.gebouw_terrein),
          a.verdieping,
          a.ruimte,
          COALESCE (c2.vakgroep, a.vakgroep),
          COALESCE (c2.melding, a.melding),
          a.melder,
          a.oms,
          a.opm,
          a.datum_aanmaak,
          a.datum_gepland,
          a.datum_gereed,
          a.bedrijf,
          a.cp,
          DECODE (f.kdeel,
                  NULL, COALESCE (a.kosten, 0),
                  ROUND ( (f.kdeel * COALESCE (a.kosten, 0)) / 100, 2)),
          b.afdeling
     FROM (SELECT o.mld_opdr_key,
                  COALESCE (og.alg_gebouw_key, og.alg_terreinsector_key) gebter_key,
                  TO_CHAR (fac.gettrackingdate ('ORDVER', o.mld_opdr_key), 'yyyy-mm-dd') datum_frozen,
                  --TO_CHAR (m.mld_melding_uitvoertijd) sla,
                  sd.ins_srtdiscipline_prefix prefix,
                  o.mld_melding_key || '/' || o.mld_opdr_bedrijfopdr_volgnr opdracht,
                  kp.prs_kostenplaats_nr kdrager,
                  kp.prs_kostenplaats_omschrijving kdrager_oms,
                  COALESCE (ksm.prs_kostensoort_oms, ksv.prs_kostensoort_oms) ksoort,
                  DECODE (ksm.prs_kostensoort_oms,
                          NULL, ksv.prs_kostensoort_opmerking,
                          ksm.prs_kostensoort_opmerking)
                     ksoort_oms,
                  COALESCE (og.alg_terreinsector_code, og.alg_gebouw_code) gebouw_terrein,
                  og.alg_verdieping_code verdieping,
                  og.alg_ruimte_nr ruimte,
                  td.ins_discipline_omschrijving vakgroep,
                  sm.mld_stdmelding_omschrijving melding,
                  pf.prs_perslid_naam_full melder,
                  o.mld_opdr_omschrijving oms,
                  o.mld_opdr_opmerking opm,
                  TO_CHAR (o.mld_opdr_datumbegin, 'dd-mm-yyyy') datum_aanmaak, -- Of verzonden?
                  TO_CHAR (fac.datumtijdplusuitvoertijd (o.mld_opdr_datumbegin,
                                                         m.mld_melding_t_uitvoertijd.tijdsduur,
                                                         m.mld_melding_t_uitvoertijd.eenheid),
                           'dd-mm-yyyy')
                     datum_gepland,
                  TO_CHAR (fac.gettrackingdate ('ORDAFM', o.mld_opdr_key),
                           'dd-mm-yyyy')
                     datum_gereed,
                  b.prs_bedrijf_naam bedrijf,
                  o.mld_opdr_contactpersoon cp,
                  o.mld_opdr_kosten kosten
             FROM mld_opdr o,
                  prs_bedrijf b,
                  mld_melding m,
                  prs_v_perslid_fullnames_all pf,
                  alg_v_allonrgoed_gegevens og,
                  mld_stdmelding sm,
                  ins_tab_discipline td,
                  ins_srtdiscipline sd,
                  prs_kostensoort ksm,
                  prs_kostensoort ksv,
                  prs_kostenplaats kp
            WHERE o.mld_statusopdr_key = 7
                  AND o.mld_uitvoerende_keys = b.prs_bedrijf_key
                  AND o.mld_melding_key = m.mld_melding_key
                  AND m.prs_perslid_key = pf.prs_perslid_key
                  AND m.mld_alg_onroerendgoed_keys = og.alg_onroerendgoed_keys
                  AND m.mld_stdmelding_key = sm.mld_stdmelding_key
                  AND sm.mld_ins_discipline_key = td.ins_discipline_key
                  AND td.ins_srtdiscipline_key = sd.ins_srtdiscipline_key
                  AND sm.prs_kostensoort_key = ksm.prs_kostensoort_key(+)
                  AND td.prs_kostensoort_key = ksv.prs_kostensoort_key(+)
                  AND o.prs_kostenplaats_key = kp.prs_kostenplaats_key
                  AND kp.prs_kostenplaats_upper = 'WTC') a
          LEFT JOIN (SELECT DISTINCT o.mld_opdr_key, p.prs_afdeling_key afdeling
                       FROM mld_opdr o, prs_bedrijf b, prs_contactpersoon cp, prs_perslid p
                      WHERE b.prs_bedrijf_key = cp.prs_bedrijf_key
                            AND o.mld_uitvoerende_keys = b.prs_bedrijf_key
                            AND cp.prs_perslid_key = p.prs_perslid_key) b
             ON a.mld_opdr_key = b.mld_opdr_key
          LEFT JOIN (SELECT ko.mld_opdr_key, ud.fac_usrdata_omschr corr_kdrager
                       FROM mld_kenmerkopdr ko, fac_usrdata ud
                      WHERE ko.mld_kenmerk_key = 1            -- Corr. kdrager
                            AND TO_CHAR (ud.fac_usrdata_key) = ko.mld_kenmerkopdr_waarde) c1
             ON a.mld_opdr_key = c1.mld_opdr_key
          LEFT JOIN (SELECT ko.mld_opdr_key,
                            --TO_CHAR (sm.mld_stdmelding_uitvoertijd) sla,
                            COALESCE (ksm.prs_kostensoort_oms,
                                      ksv.prs_kostensoort_oms)
                               corr_ksoort,
                            DECODE (ksm.prs_kostensoort_oms,
                                    NULL, ksv.prs_kostensoort_opmerking,
                                    ksm.prs_kostensoort_opmerking)
                               corr_ksoort_oms,
                            sd.ins_srtdiscipline_prefix prefix,
                            td.ins_discipline_omschrijving vakgroep,
                            sm.mld_stdmelding_omschrijving melding
                       FROM mld_v_aanwezigkenmerkopdr ko,
                            mld_stdmelding sm,
                            ins_tab_discipline td,
                            ins_srtdiscipline sd,
                            prs_kostensoort ksm,
                            prs_kostensoort ksv
                      WHERE ko.mld_kenmerk_key = 41           -- Corr. melding
                            AND TO_CHAR (sm.mld_stdmelding_key) = ko.mld_kenmerkopdr_waarde
                            AND sm.prs_kostensoort_key = ksm.prs_kostensoort_key(+)
                            AND sm.mld_ins_discipline_key = td.ins_discipline_key
                            AND td.prs_kostensoort_key = ksv.prs_kostensoort_key(+)
                            AND td.ins_srtdiscipline_key = sd.ins_srtdiscipline_key) c2
             ON a.mld_opdr_key = c2.mld_opdr_key
          LEFT JOIN (SELECT ok.alg_onrgoed_key, ud.fac_usrdata_key geb_maatschap_key, ud.fac_usrdata_omschr geb_maatschap
                       FROM alg_v_aanwezigonrgoedkenmerk ok, fac_v_aanwezigusrdata ud
                      WHERE ok.alg_kenmerk_key = 1020             -- Maatschap
                            AND TO_CHAR (ud.fac_usrdata_key) = ok.alg_onrgoedkenmerk_waarde) d
             ON a.gebter_key = d.alg_onrgoed_key
          LEFT JOIN (SELECT ok.alg_onrgoed_key, ud.fac_usrdata_key ter_maatschap_key, ud.fac_usrdata_omschr ter_maatschap
                       FROM alg_v_aanwezigonrgoedkenmerk ok,
                            fac_v_aanwezigusrdata ud
                      WHERE ok.alg_kenmerk_key = 1040             -- Maatschap
                            AND TO_CHAR (ud.fac_usrdata_key) = ok.alg_onrgoedkenmerk_waarde) e
             ON a.gebter_key = e.alg_onrgoed_key
          LEFT JOIN (SELECT g.alg_gebouw_key, 63 kdeel -- 63% van A-HI (=1572) op TH
                       FROM alg_gebouw g
                      WHERE g.alg_gebouw_key = 1572
                     UNION ALL
                     SELECT g.alg_gebouw_key, 37 kdeel -- 37% van A-HI (=1572) op TI
                       FROM alg_gebouw g
                      WHERE g.alg_gebouw_key = 1572) f
             ON SUBSTR (a.datum_frozen, 1, 4) < '2017' -- WTCA#38903: Per 2017 splitsing vervallen!
                AND a.gebter_key = f.alg_gebouw_key;

/* Formatted on 18-2-2015 14:12:18 (QP5 v5.136.908.31019) */
CREATE OR REPLACE VIEW wtca_v_rap_maand_frozen_fact
(
   fclt_f_maand,
   tot_datum,
   opdr,
   maatschap,
   ksoort,
   ksoort_oms,
   fclt_f_complex,
   gebouw_terrein,
   verdieping,
   ruimte,
   vakgroep,
   melding,
   melder,
   omschrijving,
   opmerking,
   aanmaak,
   gereed,
   fclt_f_uitvoerende,
   kosten,
   fclt_3d_afdeling_key
)
AS
   SELECT SUBSTR (fclt_f_archief, 1, 7),
          TO_CHAR (
             TO_DATE (SUBSTR (fclt_f_archief, 1, 7) || '-01', 'yyyy-mm-dd')
             - 1,
             'dd-mm-yyyy'),
          opdr,
          fclt_f_maatschap,
          fclt_f_ksoort,
          fclt_f_ksoort_oms,
          CASE
             WHEN COALESCE (kosten, 0) = 0
             THEN
                '0'
             WHEN hide_f_maatschap_key = 21
             THEN
                '924'
             WHEN hide_f_maatschap_key = 22
             THEN
                '925'
             WHEN UPPER (TRIM (fclt_f_ksoort_oms)) =
                     'STORINGEN PARKEERGARAGE'
             THEN
                '929'
             WHEN SUBSTR (UPPER (TRIM (fclt_f_gebouw_terrein)), -1) = 'H'
                  OR SUBSTR (UPPER (TRIM (fclt_f_gebouw_terrein)), -3) = '(H)'
             THEN
                '928'
             WHEN SUBSTR (UPPER (TRIM (fclt_f_gebouw_terrein)), -1) = 'I'
                  OR SUBSTR (UPPER (TRIM (fclt_f_gebouw_terrein)), -3) = '(I)'
             THEN
                --'927'
                CASE -- WTCA#38903: Per 2017 splitsing vervallen (en H+I=928)!
                   WHEN SUBSTR (fclt_f_archief, 1, 4) < '2017'
                   THEN
                      '927'
                   ELSE
                      '928'
                END
             ELSE                                                   -- De rest
                '0'
          END
             complex,
          fclt_f_gebouw_terrein,
          verdieping,
          ruimte,
          fclt_f_vakgroep,
          fclt_f_melding,
          melder,
          omschrijving,
          opmerking,
          aanmaak,
          gereed,
          fclt_f_uitvoerende,
          kosten,
          fclt_3d_afdeling_key
     FROM wtca_v_rap_maand_frozen
    WHERE SUBSTR (fclt_f_archief, 1, 4) >= TO_CHAR (ADD_MONTHS (SYSDATE, -12), 'yyyy');

/* Formatted on 20-9-2010 15:25:35 (QP5 v5.115.810.9015) */
CREATE OR REPLACE VIEW wtca_v_rap_freezeopdrachten
(
   fclt_f_uitvoerende,
   hide_f_bedrijf_key,
--   kdrager,
--   kdrager_oms,
--   maatschap,
   aantal,
   kosten
)
AS
   SELECT   x.bedrijf,
            x.bedrijf_key,
--            y.kostenplaats,
--            y.kostenplaats_oms,
--            y.maatschap,
            TO_CHAR (DECODE (y.aantal, NULL, 0, y.aantal)),
            y.kosten
     FROM      (SELECT   b.prs_bedrijf_key bedrijf_key,
                         b.prs_bedrijf_naam bedrijf
                  FROM   prs_bedrijf b
                 WHERE   prs_bedrijf_uitvoerende = 1) x
            LEFT JOIN
               (  SELECT   o.mld_uitvoerende_keys bedrijf_key,
--                              kp.prs_kostenplaats_nr kostenplaats,
--                              kp.prs_kostenplaats_omschrijving kostenplaats_oms,
--                              fac.safe_to_number (ok.alg_onrgoedkenmerk_waarde)
--                                 maatschap,
                           COUNT ( * ) aantal,
                           SUM (o.mld_opdr_kosten) kosten
                    FROM   mld_opdr o, prs_kostenplaats kp
--                              mld_melding m,
--                              alg_v_allonrgoed_gegevens og,
--                              alg_onrgoedkenmerk ok
                   WHERE       o.mld_statusopdr_key = 9
                           AND o.prs_kostenplaats_key = kp.prs_kostenplaats_key
--                              AND o.mld_melding_key = m.mld_melding_key
--                              AND m.mld_alg_onroerendgoed_keys =
--                                    og.alg_onroerendgoed_keys
--                              AND og.alg_gebouw_key = ok.alg_onrgoed_key(+)
                           AND kp.prs_kostenplaats_upper = 'WTC'
                           AND fac.gettrackingdate ('ORDAFR', o.mld_opdr_key) <
                                 TO_DATE (TO_CHAR (SYSDATE, 'yyyymm') || '01',
                                          'yyyymmdd')
                GROUP BY   o.mld_uitvoerende_keys) y
--                              kp.prs_kostenplaats_nr,
--                              kp.prs_kostenplaats_omschrijving,
--                              fac.safe_to_number (
--                                 ok.alg_onrgoedkenmerk_waarde
--                              )) y
            ON x.bedrijf_key = y.bedrijf_key
    WHERE   y.aantal IS NOT NULL;

/* Formatted on 31-3-2015 15:42:24 (QP5 v5.136.908.31019) */
CREATE OR REPLACE VIEW wtca_v_rap_lev_perf
(
   fclt_d_datum,
   fclt_f_bedrijf,
   hide_f_sla,
   aantal,
   acceptatie_op_tijd,
   uitvoering_op_tijd,
   fclt_3d_afdeling_key
)
AS
     SELECT TO_CHAR (opdr.ordafm, 'dd-mm-yyyy'),
            opdr.bedrijf,
            TO_CHAR (COALESCE (CORR.sla.tijdsduur, opdr.sla.tijdsduur))
            || COALESCE (CORR.sla.eenheid, opdr.sla.eenheid)
               sla,
            COUNT ( * ) aantal,
            SUM (opdr.acceptatie_op_tijd),
            SUM(DECODE (
                   SIGN(fac.datumtijdplusuitvoertijd (
                           fac.gettrackingdate ('ORDNEW', opdr.mld_opdr_key),
                           COALESCE (CORR.sla.tijdsduur, opdr.sla.tijdsduur),
                           COALESCE (CORR.sla.eenheid, opdr.sla.eenheid))
                        - opdr.ordafm),
                   -1, 0,
                   1))
               uitvoering_op_tijd,
            scope.prs_afdeling_key
       FROM (SELECT t.fac_tracking_datum ordafm,
                    o.mld_opdr_key,
                    b.prs_bedrijf_key,
                    b.prs_bedrijf_naam bedrijf,
                    m.mld_melding_t_uitvoertijd sla,
                    DECODE (
                       m.mld_melding_spoed,
                       3,
                       DECODE (
                          SIGN(FLOOR( (COALESCE (
                                          fac.gettrackingdate ('ORDACP', o.mld_opdr_key),
                                          SYSDATE)
                                       - fac.gettrackingdate ('ORDNEW', o.mld_opdr_key))
                                     * 24)
                               - 4),                   -- Harde afspraak 4 uur
                          1, 0,
                          1),
                       DECODE (
                          SIGN(fac.count_work_days_incltime (
                                  fac.gettrackingdate ('ORDNEW', o.mld_opdr_key),
                                  COALESCE (
                                     fac.gettrackingdate ('ORDACP', o.mld_opdr_key),
                                     SYSDATE))
                               - 1),                  -- Harde afspraak 24 uur
                          1, 0,
                          1))
                       acceptatie_op_tijd
               FROM fac_tracking t,
                    mld_opdr o,
                    prs_bedrijf b,
                    mld_melding m
              WHERE t.fac_srtnotificatie_key = 40                    -- ORDAFM
                    AND t.fac_tracking_datum > TRUNC (ADD_MONTHS (SYSDATE, -12), 'yyyy')
                    AND t.fac_tracking_refkey = o.mld_opdr_key
                    AND o.mld_statusopdr_key != 1
                    AND o.mld_uitvoerende_keys = b.prs_bedrijf_key
                    AND o.mld_melding_key = m.mld_melding_key
                    AND m.mld_melding_spoed IN (3, 4)) opdr
            LEFT JOIN (SELECT ko.mld_opdr_key, sm.mld_stdmelding_t_uitvoertijd sla
                         FROM mld_v_aanwezigkenmerkopdr ko, mld_stdmelding sm
                        WHERE ko.mld_kenmerk_key = 41         -- Corr. melding
                              AND fac.safe_to_number (ko.mld_kenmerkopdr_waarde) =
                                    sm.mld_stdmelding_key) CORR
               ON opdr.mld_opdr_key = CORR.mld_opdr_key
            LEFT JOIN (SELECT DISTINCT cp.prs_bedrijf_key, p.prs_afdeling_key
                         FROM prs_contactpersoon cp, prs_perslid P
                        WHERE cp.prs_perslid_key = p.prs_perslid_key) scope
               ON opdr.prs_bedrijf_key = scope.prs_bedrijf_key
   GROUP BY TO_CHAR (opdr.ordafm, 'dd-mm-yyyy'),
            opdr.bedrijf,
            TO_CHAR (COALESCE (CORR.sla.tijdsduur, opdr.sla.tijdsduur))
            || COALESCE (CORR.sla.eenheid, opdr.sla.eenheid),
            scope.prs_afdeling_key;

CREATE OR REPLACE VIEW wtca_v_rap_lev_perf_details
(
   fclt_d_datum,
   fclt_f_bedrijf,
   fclt_f_sla,
   aantal,
   acceptatie_op_tijd,
   uitvoering_op_tijd,
   fclt_3d_afdeling_key
)
AS
   SELECT fclt_d_datum,
          fclt_f_bedrijf,
          hide_f_sla,
          aantal,
          acceptatie_op_tijd,
          uitvoering_op_tijd,
          fclt_3d_afdeling_key
     FROM wtca_v_rap_lev_perf
   UNION ALL
     SELECT TO_CHAR (opdr.ordafm, 'dd-mm-yyyy'),
            opdr.bedrijf,
            'KRITIEK',
            COUNT ( * ) aantal,
            TO_NUMBER (NULL),
            TO_NUMBER (NULL),
            scope.prs_afdeling_key
       FROM    (SELECT t.fac_tracking_datum ordafm,
                       b.prs_bedrijf_key,
                       b.prs_bedrijf_naam bedrijf
                  FROM fac_tracking t,
                       mld_opdr o,
                       prs_bedrijf b,
                       mld_melding m
                 WHERE t.fac_srtnotificatie_key = 40                 -- ORDAFM
                       AND t.fac_tracking_datum > TRUNC (ADD_MONTHS (SYSDATE, -12), 'yyyy')
                       AND t.fac_tracking_refkey = o.mld_opdr_key
                       AND o.mld_statusopdr_key != 1
                       AND o.mld_uitvoerende_keys = b.prs_bedrijf_key
                       AND o.mld_melding_key = m.mld_melding_key
                       AND m.mld_melding_spoed IN (1, 2)) opdr
            LEFT JOIN
               (SELECT DISTINCT cp.prs_bedrijf_key, p.prs_afdeling_key
                  FROM prs_contactpersoon cp, prs_perslid p
                 WHERE cp.prs_perslid_key = p.prs_perslid_key) scope
            ON opdr.prs_bedrijf_key = scope.prs_bedrijf_key
   GROUP BY TO_CHAR (opdr.ordafm, 'dd-mm-yyyy'),
            opdr.bedrijf,
            scope.prs_afdeling_key;

-- WTCA#33460
/* Formatted on 17-8-2015 10:24:42 (QP5 v5.136.908.31019) */
CREATE OR REPLACE VIEW wtca_v_rap_levperf_new
(
   fclt_d_datum,
   fclt_f_bedrijf,
   hide_f_sla,
   aantal,
   acceptatie_op_tijd,
   uitvoering_op_tijd,
   fclt_3d_afdeling_key
)
AS
     SELECT TO_CHAR (opdr.ordnew, 'dd-mm-yyyy'),
            opdr.bedrijf,
            TO_CHAR (COALESCE (CORR.sla.tijdsduur, opdr.sla.tijdsduur))
            || COALESCE (CORR.sla.eenheid, opdr.sla.eenheid)
               sla,
            COUNT ( * ) aantal,
            SUM (opdr.acceptatie_op_tijd),
            SUM(DECODE (
                   SIGN(fac.datumtijdplusuitvoertijd (
                           fac.gettrackingdate ('ORDNEW', opdr.mld_opdr_key),
                           COALESCE (CORR.sla.tijdsduur, opdr.sla.tijdsduur),
                           COALESCE (CORR.sla.eenheid, opdr.sla.eenheid))
                        - fac.gettrackingdate ('ORDAFM', opdr.mld_opdr_key)),
                   -1, 0,
                   1))
               uitvoering_op_tijd,
            scope.prs_afdeling_key
       FROM (SELECT t.fac_tracking_datum ordnew,
                    o.mld_opdr_key,
                    b.prs_bedrijf_key,
                    b.prs_bedrijf_naam bedrijf,
                    m.mld_melding_t_uitvoertijd sla,
                    DECODE (
                       m.mld_melding_spoed,
                       3,
                       DECODE (
                          SIGN(FLOOR( (COALESCE (
                                          fac.gettrackingdate ('ORDACP', o.mld_opdr_key),
                                          SYSDATE)
                                       - t.fac_tracking_datum)
                                     * 24)
                               - 4),                   -- Harde afspraak 4 uur
                          1, 0,
                          1),
                       DECODE (
                          SIGN(fac.count_work_days_incltime (
                                  t.fac_tracking_datum,
                                  COALESCE (
                                     fac.gettrackingdate ('ORDACP', o.mld_opdr_key),
                                     SYSDATE))
                               - 1),                  -- Harde afspraak 24 uur
                          1, 0,
                          1))
                       acceptatie_op_tijd
               FROM fac_tracking t,
                    mld_opdr o,
                    prs_bedrijf b,
                    mld_melding m
              WHERE t.fac_srtnotificatie_key = 41                    -- ORDNEW
                    AND t.fac_tracking_datum > TRUNC (ADD_MONTHS (SYSDATE, -12), 'yyyy')
                    AND t.fac_tracking_refkey = o.mld_opdr_key
                    AND o.mld_statusopdr_key != 1
                    AND o.mld_uitvoerende_keys = b.prs_bedrijf_key
                    AND o.mld_melding_key = m.mld_melding_key
                    AND m.mld_melding_spoed IN (3, 4)) opdr
            LEFT JOIN (SELECT ko.mld_opdr_key, sm.mld_stdmelding_t_uitvoertijd sla
                         FROM mld_v_aanwezigkenmerkopdr ko, mld_stdmelding sm
                        WHERE ko.mld_kenmerk_key = 41         -- Corr. melding
                              AND fac.safe_to_number (ko.mld_kenmerkopdr_waarde) =
                                    sm.mld_stdmelding_key) CORR
               ON opdr.mld_opdr_key = CORR.mld_opdr_key
            LEFT JOIN (SELECT DISTINCT cp.prs_bedrijf_key, p.prs_afdeling_key
                         FROM prs_contactpersoon cp, prs_perslid P
                        WHERE cp.prs_perslid_key = p.prs_perslid_key) scope
               ON opdr.prs_bedrijf_key = scope.prs_bedrijf_key
   GROUP BY TO_CHAR (opdr.ordnew, 'dd-mm-yyyy'),
            opdr.bedrijf,
            TO_CHAR (COALESCE (CORR.sla.tijdsduur, opdr.sla.tijdsduur))
            || COALESCE (CORR.sla.eenheid, opdr.sla.eenheid),
            scope.prs_afdeling_key;

CREATE OR REPLACE VIEW wtca_v_rap_levperf_details_new
(
   fclt_d_datum,
   fclt_f_bedrijf,
   fclt_f_sla,
   aantal,
   acceptatie_op_tijd,
   uitvoering_op_tijd,
   fclt_3d_afdeling_key
)
AS
   SELECT fclt_d_datum,
          fclt_f_bedrijf,
          hide_f_sla,
          aantal,
          acceptatie_op_tijd,
          uitvoering_op_tijd,
          fclt_3d_afdeling_key
     FROM wtca_v_rap_levperf_new
   UNION ALL
     SELECT TO_CHAR (opdr.ordnew, 'dd-mm-yyyy'),
            opdr.bedrijf,
            'KRITIEK',
            COUNT ( * ) aantal,
            TO_NUMBER (NULL),
            TO_NUMBER (NULL),
            scope.prs_afdeling_key
       FROM    (SELECT t.fac_tracking_datum ordnew,
                       b.prs_bedrijf_key,
                       b.prs_bedrijf_naam bedrijf
                  FROM fac_tracking t,
                       mld_opdr o,
                       prs_bedrijf b,
                       mld_melding m
                 WHERE t.fac_srtnotificatie_key = 41                 -- ORDNEW
                       AND t.fac_tracking_datum > TRUNC (ADD_MONTHS (SYSDATE, -12), 'yyyy')
                       AND t.fac_tracking_refkey = o.mld_opdr_key
                       AND o.mld_statusopdr_key != 1
                       AND o.mld_uitvoerende_keys = b.prs_bedrijf_key
                       AND o.mld_melding_key = m.mld_melding_key
                       AND m.mld_melding_spoed IN (1, 2)) opdr
            LEFT JOIN
               (SELECT DISTINCT cp.prs_bedrijf_key, p.prs_afdeling_key
                  FROM prs_contactpersoon cp, prs_perslid p
                 WHERE cp.prs_perslid_key = p.prs_perslid_key) scope
            ON opdr.prs_bedrijf_key = scope.prs_bedrijf_key
   GROUP BY TO_CHAR (opdr.ordnew, 'dd-mm-yyyy'),
            opdr.bedrijf,
            scope.prs_afdeling_key;

/* Formatted on 1-4-2015 9:24:42 (QP5 v5.136.908.31019) */
CREATE OR REPLACE VIEW wtca_v_rap_mld_vs_metrage
(
   fclt_d_datum,
   huurdercategorie,
   storing,
   klacht,
   aanvraag,
   fclt_3d_afdeling_key
)
AS
     SELECT TO_CHAR (meld.mld_melding_datum, 'dd-mm-yyyy'),
            DECODE (
               m2.prs_kenmerklink_waarde,
               NULL,
               '5' || meld.prs_perslid_naam_full,
               DECODE (
                  SIGN (fac.safe_to_number (m2.prs_kenmerklink_waarde) - 100),
                  1,
                  DECODE (
                     SIGN (fac.safe_to_number (m2.prs_kenmerklink_waarde) - 500),
                     1,
                     DECODE (
                        SIGN(fac.safe_to_number (m2.prs_kenmerklink_waarde) - 1000),
                        1,
                        '4',
                        '3'),
                     '2'),
                  '1'))
               categorie,
            SUM (meld.storing),
            SUM (meld.klacht),
            SUM (meld.aanvraag),
            opdr.prs_afdeling_key
       FROM (SELECT m.mld_melding_key,
                    m.prs_perslid_key,
                    m.mld_melding_datum,
                    pf.prs_perslid_naam_full,
                    DECODE (td.ins_srtdiscipline_key, 61, 1, 0) storing,
                    DECODE (td.ins_srtdiscipline_key, 63, 1, 0) klacht,
                    DECODE (td.ins_srtdiscipline_key, 62, 1, 0) aanvraag
               FROM mld_melding m, mld_stdmelding sm, ins_tab_discipline td,
                    prs_v_perslid_fullnames_all pf
              WHERE m.mld_stdmelding_key = sm.mld_stdmelding_key
                    AND sm.mld_ins_discipline_key = td.ins_discipline_key
                    AND td.ins_srtdiscipline_key IN (61, 62, 63)
                    AND m.prs_perslid_key = pf.prs_perslid_key
                    AND m.mld_melding_datum > TRUNC (ADD_MONTHS (SYSDATE, -12), 'yyyy')) meld
            LEFT JOIN (SELECT DISTINCT o.mld_melding_key, p.prs_afdeling_key
                         FROM mld_opdr o, prs_bedrijf b, prs_contactpersoon cp, prs_perslid p
                        WHERE o.mld_uitvoerende_keys = b.prs_bedrijf_key
                              AND b.prs_bedrijf_key = cp.prs_bedrijf_key
                              AND cp.prs_perslid_key = p.prs_perslid_key) opdr
               ON meld.mld_melding_key = opdr.mld_melding_key
            LEFT JOIN prs_kenmerklink m2
               ON meld.prs_perslid_key = m2.prs_link_key
                  AND m2.prs_kenmerk_key = 1260                          -- m2
   GROUP BY TO_CHAR (meld.mld_melding_datum, 'dd-mm-yyyy'),
            m2.prs_kenmerklink_waarde,
            meld.prs_perslid_naam_full,
            opdr.prs_afdeling_key;

-- WTCA#21826: Dashboards tbv. percentage van openstaande opdrachten dat nog op
-- tijd is.
/* Formatted on 14-10-2014 10:50:10 (QP5 v5.136.908.31019) */
CREATE OR REPLACE VIEW WTCA_V_GRAPH_PPI_HUURDER
(
   FCLT_XAS_,
   FCLT_YAS_
)
AS
   SELECT SUM(DECODE (
                 SIGN(FAC.datumtijdplusuitvoertijd (
                         fac.gettrackingdate ('MLDNEW', m.mld_melding_key),
                         m.mld_melding_t_uitvoertijd.tijdsduur,
                         m.mld_melding_t_uitvoertijd.eenheid)
                      - COALESCE (
                           fac.gettrackingdate ('MLDREJ', m.mld_melding_key),
                           fac.gettrackingdate ('MLDAFM', m.mld_melding_key),
                           SYSDATE)),
                 -1,
                 0,
                 1))
             aantal,
          COUNT (m.mld_melding_key) totaal
     FROM mld_melding m
    WHERE m.mld_melding_status IN (2, 3, 4, 7, 0);

CREATE OR REPLACE VIEW WTCA_V_GRAPH_PPI_UITV (FCLT_XAS_, FCLT_YAS_)
AS
   SELECT SUM (uitvoering_op_tijd) aantal, COUNT (opdr_key) totaal
     FROM (SELECT opdr.opdr_key,
                  DECODE (
                     SIGN(FAC.datumtijdplusuitvoertijd (
                             fac.gettrackingdate ('ORDNEW', opdr.opdr_key),
                             COALESCE (CORR.sla.tijdsduur, opdr.sla.tijdsduur),
                             COALESCE (CORR.sla.eenheid, opdr.sla.eenheid))
                          - COALESCE (
                               fac.gettrackingdate ('ORDAFM', opdr.opdr_key),
                               fac.gettrackingdate ('ORDCAN', opdr.opdr_key),
                               SYSDATE)),
                     -1,
                     0,
                     1)
                     uitvoering_op_tijd
             FROM    (SELECT o.mld_opdr_key opdr_key,
                             m.mld_melding_t_uitvoertijd sla
                        FROM mld_opdr o, mld_melding m
                       WHERE     o.mld_melding_key = m.mld_melding_key
                             AND o.mld_statusopdr_key IN (2, 3, 4, 5, 8, 10)
                             AND m.mld_melding_spoed IN (3, 4)) opdr
                  LEFT JOIN
                     (SELECT ko.mld_opdr_key,
                             sm.mld_stdmelding_t_uitvoertijd sla
                        FROM mld_v_aanwezigkenmerkopdr ko, mld_stdmelding sm
                       WHERE ko.mld_kenmerk_key = 41          -- Corr. melding
                             AND sm.mld_stdmelding_key =
                                   fac.safe_to_number (
                                      ko.mld_kenmerkopdr_waarde)) CORR
                  ON opdr.opdr_key = CORR.mld_opdr_key) x;

/* Formatted on 14-10-2014 10:56:08 (QP5 v5.136.908.31019) */
CREATE OR REPLACE VIEW WTCA_V_GRAPH_PPI_COFELY (FCLT_XAS_, FCLT_YAS_)
AS
   SELECT SUM (uitvoering_op_tijd) aantal, COUNT (opdr_key) totaal
     FROM (SELECT opdr.opdr_key,
                  DECODE (
                     SIGN(FAC.datumtijdplusuitvoertijd (
                             fac.gettrackingdate ('ORDNEW', opdr.opdr_key),
                             COALESCE (CORR.sla.tijdsduur, opdr.sla.tijdsduur),
                             COALESCE (CORR.sla.eenheid, opdr.sla.eenheid))
                          - COALESCE (
                               fac.gettrackingdate ('ORDCAN', opdr.opdr_key),
                               fac.gettrackingdate ('ORDAFM', opdr.opdr_key),
                               SYSDATE)),
                     -1,
                     0,
                     1)
                     uitvoering_op_tijd
             FROM    (SELECT o.mld_opdr_key opdr_key,
                             m.mld_melding_t_uitvoertijd sla
                        FROM mld_opdr o, mld_melding m
                       WHERE     o.mld_melding_key = m.mld_melding_key
                             AND o.mld_uitvoerende_keys = 1363       -- Cofely
                             AND o.mld_statusopdr_key IN (2, 3, 4, 5, 8, 10)
                             AND m.mld_melding_spoed IN (3, 4)) opdr
                  LEFT JOIN
                     (SELECT ko.mld_opdr_key,
                             sm.mld_stdmelding_t_uitvoertijd sla
                        FROM mld_v_aanwezigkenmerkopdr ko, mld_stdmelding sm
                       WHERE ko.mld_kenmerk_key = 41          -- Corr. melding
                             AND sm.mld_stdmelding_key =
                                   fac.safe_to_number (
                                      ko.mld_kenmerkopdr_waarde)) CORR
                  ON opdr.opdr_key = CORR.mld_opdr_key) x;

CREATE OR REPLACE VIEW WTCA_V_GRAPH_PPI_DS (FCLT_XAS_, FCLT_YAS_)
AS
   SELECT SUM (uitvoering_op_tijd) aantal, COUNT (opdr_key) totaal
     FROM (SELECT opdr.opdr_key,
                  DECODE (
                     SIGN(FAC.datumtijdplusuitvoertijd (
                             fac.gettrackingdate ('ORDNEW', opdr.opdr_key),
                             COALESCE (CORR.sla.tijdsduur, opdr.sla.tijdsduur),
                             COALESCE (CORR.sla.eenheid, opdr.sla.eenheid))
                          - COALESCE (
                               fac.gettrackingdate ('ORDCAN', opdr.opdr_key),
                               fac.gettrackingdate ('ORDAFM', opdr.opdr_key),
                               SYSDATE)),
                     -1,
                     0,
                     1)
                     uitvoering_op_tijd
             FROM    (SELECT o.mld_opdr_key opdr_key,
                             m.mld_melding_t_uitvoertijd sla
                        FROM mld_opdr o, mld_melding m
                       WHERE     o.mld_melding_key = m.mld_melding_key
                             AND o.mld_uitvoerende_keys = 382 -- Derksen Singerling
                             AND o.mld_statusopdr_key IN (2, 3, 4, 5, 8, 10)
                             AND m.mld_melding_spoed IN (3, 4)) opdr
                  LEFT JOIN
                     (SELECT ko.mld_opdr_key,
                             sm.mld_stdmelding_t_uitvoertijd sla
                        FROM mld_v_aanwezigkenmerkopdr ko, mld_stdmelding sm
                       WHERE ko.mld_kenmerk_key = 41          -- Corr. melding
                             AND sm.mld_stdmelding_key =
                                   fac.safe_to_number (
                                      ko.mld_kenmerkopdr_waarde)) CORR
                  ON opdr.opdr_key = CORR.mld_opdr_key) x;

CREATE OR REPLACE VIEW WTCA_V_GRAPH_PPI_MITSUBISHI (FCLT_XAS_, FCLT_YAS_)
AS
   SELECT SUM (uitvoering_op_tijd) aantal, COUNT (opdr_key) totaal
     FROM (SELECT opdr.opdr_key,
                  DECODE (
                     SIGN(FAC.datumtijdplusuitvoertijd (
                             fac.gettrackingdate ('ORDNEW', opdr.opdr_key),
                             COALESCE (CORR.sla.tijdsduur, opdr.sla.tijdsduur),
                             COALESCE (CORR.sla.eenheid, opdr.sla.eenheid))
                          - COALESCE (
                               fac.gettrackingdate ('ORDCAN', opdr.opdr_key),
                               fac.gettrackingdate ('ORDAFM', opdr.opdr_key),
                               SYSDATE)),
                     -1,
                     0,
                     1)
                     uitvoering_op_tijd
             FROM    (SELECT o.mld_opdr_key opdr_key,
                             m.mld_melding_t_uitvoertijd sla
                        FROM mld_opdr o, mld_melding m
                       WHERE     o.mld_melding_key = m.mld_melding_key
                             AND o.mld_uitvoerende_keys = 422    -- Mitsubishi
                             AND o.mld_statusopdr_key IN (2, 3, 4, 5, 8, 10)
                             AND m.mld_melding_spoed IN (3, 4)) opdr
                  LEFT JOIN
                     (SELECT ko.mld_opdr_key,
                             sm.mld_stdmelding_t_uitvoertijd sla
                        FROM mld_v_aanwezigkenmerkopdr ko, mld_stdmelding sm
                       WHERE ko.mld_kenmerk_key = 41          -- Corr. melding
                             AND sm.mld_stdmelding_key =
                                   fac.safe_to_number (
                                      ko.mld_kenmerkopdr_waarde)) CORR
                  ON opdr.opdr_key = CORR.mld_opdr_key) x;

CREATE OR REPLACE VIEW WTCA_V_GRAPH_PPI_MANNTECH (FCLT_XAS_, FCLT_YAS_)
AS
   SELECT SUM (uitvoering_op_tijd) aantal, COUNT (opdr_key) totaal
     FROM (SELECT opdr.opdr_key,
                  DECODE (
                     SIGN(FAC.datumtijdplusuitvoertijd (
                             fac.gettrackingdate ('ORDNEW', opdr.opdr_key),
                             COALESCE (CORR.sla.tijdsduur, opdr.sla.tijdsduur),
                             COALESCE (CORR.sla.eenheid, opdr.sla.eenheid))
                          - COALESCE (
                               fac.gettrackingdate ('ORDCAN', opdr.opdr_key),
                               fac.gettrackingdate ('ORDAFM', opdr.opdr_key),
                               SYSDATE)),
                     -1,
                     0,
                     1)
                     uitvoering_op_tijd
             FROM    (SELECT o.mld_opdr_key opdr_key,
                             m.mld_melding_t_uitvoertijd sla
                        FROM mld_opdr o, mld_melding m
                       WHERE     o.mld_melding_key = m.mld_melding_key
                             AND o.mld_uitvoerende_keys = 1403     -- Manntech
                             AND o.mld_statusopdr_key IN (2, 3, 4, 5, 8, 10)
                             AND m.mld_melding_spoed IN (3, 4)) opdr
                  LEFT JOIN
                     (SELECT ko.mld_opdr_key,
                             sm.mld_stdmelding_t_uitvoertijd sla
                        FROM mld_v_aanwezigkenmerkopdr ko, mld_stdmelding sm
                       WHERE ko.mld_kenmerk_key = 41          -- Corr. melding
                             AND sm.mld_stdmelding_key =
                                   fac.safe_to_number (
                                      ko.mld_kenmerkopdr_waarde)) CORR
                  ON opdr.opdr_key = CORR.mld_opdr_key) x;

CREATE OR REPLACE VIEW WTCA_V_GRAPH_PPI_SCHELDEBOUW (FCLT_XAS_, FCLT_YAS_)
AS
   SELECT SUM (uitvoering_op_tijd) aantal, COUNT (opdr_key) totaal
     FROM (SELECT opdr.opdr_key,
                  DECODE (
                     SIGN(FAC.datumtijdplusuitvoertijd (
                             fac.gettrackingdate ('ORDNEW', opdr.opdr_key),
                             COALESCE (CORR.sla.tijdsduur, opdr.sla.tijdsduur),
                             COALESCE (CORR.sla.eenheid, opdr.sla.eenheid))
                          - COALESCE (
                               fac.gettrackingdate ('ORDCAN', opdr.opdr_key),
                               fac.gettrackingdate ('ORDAFM', opdr.opdr_key),
                               SYSDATE)),
                     -1,
                     0,
                     1)
                     uitvoering_op_tijd
             FROM    (SELECT o.mld_opdr_key opdr_key,
                             m.mld_melding_t_uitvoertijd sla
                        FROM mld_opdr o, mld_melding m
                       WHERE     o.mld_melding_key = m.mld_melding_key
                             AND o.mld_uitvoerende_keys = 1771  -- Scheldebouw
                             AND o.mld_statusopdr_key IN (2, 3, 4, 5, 8, 10)
                             AND m.mld_melding_spoed IN (3, 4)) opdr
                  LEFT JOIN
                     (SELECT ko.mld_opdr_key,
                             sm.mld_stdmelding_t_uitvoertijd sla
                        FROM mld_v_aanwezigkenmerkopdr ko, mld_stdmelding sm
                       WHERE ko.mld_kenmerk_key = 41          -- Corr. melding
                             AND sm.mld_stdmelding_key =
                                   fac.safe_to_number (
                                      ko.mld_kenmerkopdr_waarde)) CORR
                  ON opdr.opdr_key = CORR.mld_opdr_key) x;

CREATE OR REPLACE VIEW WTCA_V_GRAPH_PPI_BEHEERMIJ (FCLT_XAS_, FCLT_YAS_)
AS
   SELECT SUM (uitvoering_op_tijd) aantal, COUNT (opdr_key) totaal
     FROM (SELECT opdr.opdr_key,
                  DECODE (
                     SIGN(FAC.datumtijdplusuitvoertijd (
                             fac.gettrackingdate ('ORDNEW', opdr.opdr_key),
                             COALESCE (CORR.sla.tijdsduur, opdr.sla.tijdsduur),
                             COALESCE (CORR.sla.eenheid, opdr.sla.eenheid))
                          - COALESCE (
                               fac.gettrackingdate ('ORDCAN', opdr.opdr_key),
                               fac.gettrackingdate ('ORDAFM', opdr.opdr_key),
                               SYSDATE)),
                     -1,
                     0,
                     1)
                     uitvoering_op_tijd
             FROM    (SELECT o.mld_opdr_key opdr_key,
                             m.mld_melding_t_uitvoertijd sla
                        FROM mld_opdr o, mld_melding m
                       WHERE     o.mld_melding_key = m.mld_melding_key
                             AND o.mld_uitvoerende_keys = 5       -- Beheermij
                             AND o.mld_statusopdr_key IN (2, 3, 4, 5, 8, 10)
                             AND m.mld_melding_spoed IN (3, 4)) opdr
                  LEFT JOIN
                     (SELECT ko.mld_opdr_key,
                             sm.mld_stdmelding_t_uitvoertijd sla
                        FROM mld_v_aanwezigkenmerkopdr ko, mld_stdmelding sm
                       WHERE ko.mld_kenmerk_key = 41          -- Corr. melding
                             AND sm.mld_stdmelding_key =
                                   fac.safe_to_number (
                                      ko.mld_kenmerkopdr_waarde)) CORR
                  ON opdr.opdr_key = CORR.mld_opdr_key) x;

-- WTCA#24447
CREATE OR REPLACE VIEW WTCA_V_GRAPH_PPI_ECOSMART (FCLT_XAS_, FCLT_YAS_)
AS
   SELECT SUM (uitvoering_op_tijd) aantal, COUNT (opdr_key) totaal
     FROM (SELECT opdr.opdr_key,
                  DECODE (
                     SIGN(FAC.datumtijdplusuitvoertijd (
                             fac.gettrackingdate ('ORDNEW', opdr.opdr_key),
                             COALESCE (CORR.sla.tijdsduur, opdr.sla.tijdsduur),
                             COALESCE (CORR.sla.eenheid, opdr.sla.eenheid))
                          - COALESCE (
                               fac.gettrackingdate ('ORDCAN', opdr.opdr_key),
                               fac.gettrackingdate ('ORDAFM', opdr.opdr_key),
                               SYSDATE)),
                     -1,
                     0,
                     1)
                     uitvoering_op_tijd
             FROM    (SELECT o.mld_opdr_key opdr_key,
                             m.mld_melding_t_uitvoertijd sla
                        FROM mld_opdr o, mld_melding m
                       WHERE     o.mld_melding_key = m.mld_melding_key
                             AND o.mld_uitvoerende_keys = 383      -- EcoSmart
                             AND o.mld_statusopdr_key IN (2, 3, 4, 5, 8, 10)
                             AND m.mld_melding_spoed IN (3, 4)) opdr
                  LEFT JOIN
                     (SELECT ko.mld_opdr_key,
                             sm.mld_stdmelding_t_uitvoertijd sla
                        FROM mld_v_aanwezigkenmerkopdr ko, mld_stdmelding sm
                       WHERE ko.mld_kenmerk_key = 41          -- Corr. melding
                             AND sm.mld_stdmelding_key =
                                   fac.safe_to_number (
                                      ko.mld_kenmerkopdr_waarde)) CORR
                  ON opdr.opdr_key = CORR.mld_opdr_key) x;

-- WTCA#24447
CREATE OR REPLACE VIEW WTCA_V_GRAPH_PPI_EW (FCLT_XAS_, FCLT_YAS_)
AS
   SELECT SUM (uitvoering_op_tijd) aantal, COUNT (opdr_key) totaal
     FROM (SELECT opdr.opdr_key,
                  DECODE (
                     SIGN(FAC.datumtijdplusuitvoertijd (
                             fac.gettrackingdate ('ORDNEW', opdr.opdr_key),
                             COALESCE (CORR.sla.tijdsduur, opdr.sla.tijdsduur),
                             COALESCE (CORR.sla.eenheid, opdr.sla.eenheid))
                          - COALESCE (
                               fac.gettrackingdate ('ORDCAN', opdr.opdr_key),
                               fac.gettrackingdate ('ORDAFM', opdr.opdr_key),
                               SYSDATE)),
                     -1,
                     0,
                     1)
                     uitvoering_op_tijd
             FROM    (SELECT o.mld_opdr_key opdr_key,
                             m.mld_melding_t_uitvoertijd sla
                        FROM mld_opdr o, mld_melding m
                       WHERE     o.mld_melding_key = m.mld_melding_key
                             AND o.mld_uitvoerende_keys = 387            -- EW
                             AND o.mld_statusopdr_key IN (2, 3, 4, 5, 8, 10)
                             AND m.mld_melding_spoed IN (3, 4)) opdr
                  LEFT JOIN
                     (SELECT ko.mld_opdr_key,
                             sm.mld_stdmelding_t_uitvoertijd sla
                        FROM mld_v_aanwezigkenmerkopdr ko, mld_stdmelding sm
                       WHERE ko.mld_kenmerk_key = 41          -- Corr. melding
                             AND sm.mld_stdmelding_key =
                                   fac.safe_to_number (
                                      ko.mld_kenmerkopdr_waarde)) CORR
                  ON opdr.opdr_key = CORR.mld_opdr_key) x;

-- WTCA#24447
CREATE OR REPLACE VIEW WTCA_V_GRAPH_PPI_FORTRON (FCLT_XAS_, FCLT_YAS_)
AS
   SELECT SUM (uitvoering_op_tijd) aantal, COUNT (opdr_key) totaal
     FROM (SELECT opdr.opdr_key,
                  DECODE (
                     SIGN(FAC.datumtijdplusuitvoertijd (
                             fac.gettrackingdate ('ORDNEW', opdr.opdr_key),
                             COALESCE (CORR.sla.tijdsduur, opdr.sla.tijdsduur),
                             COALESCE (CORR.sla.eenheid, opdr.sla.eenheid))
                          - COALESCE (
                               fac.gettrackingdate ('ORDCAN', opdr.opdr_key),
                               fac.gettrackingdate ('ORDAFM', opdr.opdr_key),
                               SYSDATE)),
                     -1,
                     0,
                     1)
                     uitvoering_op_tijd
             FROM    (SELECT o.mld_opdr_key opdr_key,
                             m.mld_melding_t_uitvoertijd sla
                        FROM mld_opdr o, mld_melding m
                       WHERE     o.mld_melding_key = m.mld_melding_key
                             AND o.mld_uitvoerende_keys = 384       -- Fortron
                             AND o.mld_statusopdr_key IN (2, 3, 4, 5, 8, 10)
                             AND m.mld_melding_spoed IN (3, 4)) opdr
                  LEFT JOIN
                     (SELECT ko.mld_opdr_key,
                             sm.mld_stdmelding_t_uitvoertijd sla
                        FROM mld_v_aanwezigkenmerkopdr ko, mld_stdmelding sm
                       WHERE ko.mld_kenmerk_key = 41          -- Corr. melding
                             AND sm.mld_stdmelding_key =
                                   fac.safe_to_number (
                                      ko.mld_kenmerkopdr_waarde)) CORR
                  ON opdr.opdr_key = CORR.mld_opdr_key) x;

-- WTCA#24447: Deprecated per WTCA18, maar waarom verwijderen? Wie weet gaat
--             WTC in de toekomst wel weer met een Facilitaire maincontractor
--             werken...
/* Formatted on 9-2-2012 9:58:30 (QP5 v5.115.810.9015) */
CREATE OR REPLACE VIEW WTCA_V_GRAPH_PPI_FMC (FCLT_XAS_, FCLT_YAS_)
AS
   SELECT SUM (uitvoering_op_tijd) aantal, COUNT (opdr_key) totaal
     FROM (SELECT opdr.opdr_key,
                  DECODE (
                     SIGN(FAC.datumtijdplusuitvoertijd (
                             fac.gettrackingdate ('ORDNEW', opdr.opdr_key),
                             COALESCE (CORR.sla.tijdsduur,
                                       opdr.sla.tijdsduur),
                             COALESCE (CORR.sla.eenheid, opdr.sla.eenheid))
                          - COALESCE (
                               fac.gettrackingdate ('ORDCAN', opdr.opdr_key),
                               fac.gettrackingdate ('ORDAFM', opdr.opdr_key),
                               SYSDATE)),
                     -1,
                     0,
                     1)
                     uitvoering_op_tijd
             FROM (SELECT o.mld_opdr_key opdr_key,
                          o.mld_uitvoerende_keys bedrijf_key,
                          m.mld_melding_t_uitvoertijd sla
                     FROM mld_opdr o, mld_melding m
                    WHERE     o.mld_melding_key = m.mld_melding_key
                          AND o.mld_statusopdr_key IN (2, 3, 4, 5, 8, 10)
                          AND m.mld_melding_spoed IN (3, 4)) opdr
                  LEFT JOIN (SELECT ko.mld_opdr_key,
                                    sm.mld_stdmelding_t_uitvoertijd sla
                               FROM mld_v_aanwezigkenmerkopdr ko,
                                    mld_stdmelding sm
                              WHERE ko.mld_kenmerk_key = 41   -- Corr. melding
                                    AND sm.mld_stdmelding_key =
                                          fac.safe_to_number (
                                             ko.mld_kenmerkopdr_waarde)) CORR
                     ON opdr.opdr_key = CORR.mld_opdr_key
                  LEFT JOIN (SELECT kl.prs_link_key,
                                    kl.prs_kenmerklink_waarde     -- Ja of Nee
                               FROM prs_kenmerklink kl
                              WHERE kl.prs_kenmerk_key = 1060 -- Facilitaire maincontractor
                                    AND kl.prs_kenmerklink_niveau = 'B') mc
                     ON opdr.bedrijf_key = mc.prs_link_key
            WHERE mc.prs_kenmerklink_waarde = '81')                      -- Ja
                                                   x;

/* Formatted on 26-3-2012 12:58:58 (QP5 v5.115.810.9015) */
CREATE OR REPLACE VIEW WTCA_V_GRAPH_PPI_MY_OPDR
(
   [REDACTED],
   FCLT_XAS_,
   FCLT_YAS_
)
AS
     SELECT uitv.prs_afdeling_key,
            SUM(DECODE (
                   SIGN(FAC.datumtijdplusuitvoertijd (
                           fac.gettrackingdate ('ORDNEW', opdr.mld_opdr_key),
                           COALESCE (CORR.sla.tijdsduur, opdr.sla.tijdsduur),
                           COALESCE (CORR.sla.eenheid, opdr.sla.eenheid))
                        - COALESCE (
                             fac.gettrackingdate ('ORDCAN', opdr.mld_opdr_key),
                             fac.gettrackingdate ('ORDAFM', opdr.mld_opdr_key),
                             SYSDATE)),
                   -1,
                   0,
                   1))
               aantal,
            COUNT (opdr.mld_opdr_key) totaal
       FROM (SELECT DISTINCT b.prs_bedrijf_key, p.prs_afdeling_key
               FROM prs_v_aanwezigbedrijf b,
                    prs_contactpersoon cp,
                    prs_v_aanwezigperslid p
              WHERE     b.prs_bedrijf_uitvoerende = 1
                    AND b.prs_bedrijf_key = cp.prs_bedrijf_key
                    AND cp.prs_perslid_key = p.prs_perslid_key) uitv
            LEFT JOIN (SELECT o.mld_uitvoerende_keys,
                              o.mld_opdr_key,
                              m.mld_melding_t_uitvoertijd sla
                         FROM mld_opdr o, mld_melding m
                        WHERE     o.mld_melding_key = m.mld_melding_key
                              AND o.mld_statusopdr_key IN (2, 3, 4, 5, 8, 10)
                              AND m.mld_melding_spoed IN (3, 4)) opdr
               ON uitv.prs_bedrijf_key = opdr.mld_uitvoerende_keys
            LEFT JOIN (SELECT ko.mld_opdr_key,
                              sm.mld_stdmelding_t_uitvoertijd sla
                         FROM mld_v_aanwezigkenmerkopdr ko, mld_stdmelding sm
                        WHERE ko.mld_kenmerk_key = 41         -- Corr. melding
                              AND sm.mld_stdmelding_key =
                                    fac.safe_to_number (
                                       ko.mld_kenmerkopdr_waarde)) CORR
               ON opdr.mld_opdr_key = CORR.mld_opdr_key
   GROUP BY uitv.prs_afdeling_key;

/* Formatted on 9-1-2014 17:40:30 (QP5 v5.115.810.9015) */
CREATE OR REPLACE VIEW wtca_v_hoofdhuurders
(
   huurder_key,
   huurder_naam
)
AS
   SELECT   p.prs_perslid_key, pf.prs_perslid_naam_full
     FROM   prs_perslid p, prs_v_perslid_fullnames pf
    WHERE   p.prs_srtperslid_key = 6
            AND p.prs_perslid_key = pf.prs_perslid_key;

/* Formatted on 13-1-2014 14:24:42 (QP5 v5.115.810.9015) */
CREATE OR REPLACE VIEW wtca_v_rap_onderhuurders
(
   naam_onderhuurder,
   straat,
   huisnummer,
   naam_hoofdhuurder,
   kosten_hoofdhuurder
)
AS
   SELECT   x.onderhuurder_naam,
            k1.straat,
            k2.huisnummer,
            k3.naam_hoofdhuurder,
            k4.kosten_hoofdhuurder
     FROM               (SELECT   p.prs_perslid_key,
                                  pf.prs_perslid_naam_full onderhuurder_naam
                           FROM   prs_perslid p, prs_v_perslid_fullnames pf
                          WHERE   p.prs_srtperslid_key = 4221
                                  AND p.prs_perslid_key = pf.prs_perslid_key)
                        x
                     LEFT JOIN
                        (SELECT   kl.prs_link_key,
                                  ud.fac_usrdata_omschr straat
                           FROM   prs_kenmerklink kl, fac_usrdata ud
                          WHERE   kl.prs_kenmerk_key = 1000
                                  AND fac.safe_to_number (
                                        kl.prs_kenmerklink_waarde
                                     ) = ud.fac_usrdata_key) k1
                     ON x.prs_perslid_key = k1.prs_link_key
                  LEFT JOIN
                     (SELECT   kl.prs_link_key,
                               ud.fac_usrdata_omschr huisnummer
                        FROM   prs_kenmerklink kl, fac_usrdata ud
                       WHERE   kl.prs_kenmerk_key = 1001
                               AND fac.safe_to_number (
                                     kl.prs_kenmerklink_waarde
                                  ) = ud.fac_usrdata_key) k2
                  ON x.prs_perslid_key = k2.prs_link_key
               LEFT JOIN
                  (SELECT   kl.prs_link_key, v.huurder_naam naam_hoofdhuurder
                     FROM   prs_kenmerklink kl, wtca_v_hoofdhuurders v
                    WHERE   kl.prs_kenmerk_key = 1361
                            AND fac.safe_to_number (
                                  kl.prs_kenmerklink_waarde
                               ) = v.huurder_key) k3
               ON x.prs_perslid_key = k3.prs_link_key
            LEFT JOIN
               (SELECT   kl.prs_link_key,
                         ud.fac_usrdata_omschr kosten_hoofdhuurder
                  FROM   prs_kenmerklink kl, fac_usrdata ud
                 WHERE   kl.prs_kenmerk_key = 1362
                         AND fac.safe_to_number (kl.prs_kenmerklink_waarde) =
                               ud.fac_usrdata_key) k4
            ON x.prs_perslid_key = k4.prs_link_key;

/* Formatted on 10-2-2014 13:05:55 (QP5 v5.136.908.31019) */
CREATE OR REPLACE VIEW wtca_v_rap_dienstrapport
(
   hide_f_datum,
   fclt_d_datum,
   html_dienstrapportnr,
   fclt_f_medewerker
)
AS
   SELECT 0 - m.mld_melding_key,
          TO_CHAR (m.mld_melding_datum, 'dd-mm-yyyy'),
          --TO_CHAR (m.mld_melding_key) nummer,
          '<a onclick=''FcltMgr.openDetail("appl/mld/mld_melding.asp?urole=fo&'
          || 'mld_key='
          || m.mld_melding_key
          || '")''>'
          || m.mld_melding_key
          || '</a>'
             html_nummer,
          pf.prs_perslid_naam_full
     FROM mld_melding m, prs_v_perslid_fullnames pf
    WHERE m.mld_stdmelding_key = 3041
          AND m.prs_perslid_key = pf.prs_perslid_key;

CREATE OR REPLACE VIEW wtca_v_rap_sec_incidenten
(
   hide_f_datum,
   fclt_d_datum,
   html_incidentnr,
   fclt_f_incident,
   datum,
   tijd,
   plaats,
   omschrijving,
   fclt_f_bijlagen,
   --html_details,
   fclt_f_melder
)
AS
   SELECT 0 - m.mld_melding_key,
          TO_CHAR (m.mld_melding_datum, 'dd-mm-yyyy'),
          --TO_CHAR (m.mld_melding_key) nummer,
          '<a onclick=''FcltMgr.openDetail("appl/mld/mld_melding.asp?urole=fo&'
          || 'mld_key='
          || m.mld_melding_key
          || '")''>'
          || m.mld_melding_key
          || '</a>'
             html_details,
          sm.mld_stdmelding_omschrijving incident,
          TO_CHAR (m.mld_melding_datum, 'dd-mm-yyyy') datum,
          TO_CHAR (m.mld_melding_datum, 'hh24:mi') tijd,
          pa.alg_plaatsaanduiding plaats,
          m.mld_melding_omschrijving omschrijving,
          DECODE (km.aantal, NULL, '-', TO_CHAR (km.aantal)) bijlagen,
          --'<a onclick=''FcltMgr.openDetail("appl/mld/mld_melding.asp?urole=fo&'
          --|| 'mld_key='
          --|| m.mld_melding_key
          --|| '")''>Details</a>'
          --   html_details,
          pf.prs_perslid_naam_full melder
     FROM mld_melding m,
          mld_stdmelding sm,
          alg_v_plaatsaanduiding_all pa,
          prs_v_perslid_fullnames pf,
          (  SELECT mld_melding_key, COUNT ( * ) aantal
               FROM mld_kenmerkmelding
              WHERE mld_kenmerk_key IN (101, 102, 103, 104)  -- Bijlage1/2/3/4
                    AND mld_kenmerkmelding_verwijder IS NULL
           GROUP BY mld_melding_key) km
    WHERE     m.mld_stdmelding_key = sm.mld_stdmelding_key
          AND sm.mld_ins_discipline_key = 721                      -- Incident
          AND m.mld_alg_onroerendgoed_keys = pa.alg_onroerendgoed_keys
          AND m.prs_perslid_key = pf.prs_perslid_key
          AND m.mld_melding_key = km.mld_melding_key(+);

--- WTCA#35369: KTO views
CREATE OR REPLACE VIEW wtca_v_udr_kto
(
   kto_melding_key,
   naam_medewerker_huurder,
   aantal_medewerkers_huurder,
   accountteam_naam1,
   accountteam_naam2,
   kto_peridode,
   score_1a, -- 2d
   toelichting_1a,
   score_1b, -- 2c
   toelichting_1b,
   score_1c, -- 2f (Gemiddelde + 2f1/2/3/4)
   toelichting_1c,
   score_1d, -- 2g (+ nieuw 2h)
   toelichting_1d,
   score_1e, -- 2e
   toelichting_1e,
   score_2a, -- (+ nieuw 2b)
   toelichting_2a,
   score_2b, -- 3a
   toelichting_2b,
   score_2c, -- 3c (+ nieuw 3d)
   toelichting_2c,
   score_3a, -- 3f
   toelichting_3a,
   score_3b, -- 3g (+ nieuw 3b)
   toelichting_3b,
   score_3c, -- 3e
   toelichting_3c,
   score_4a, -- 4a gebleven
   toelichting_4a,
   score_4b, -- 4b gebleven (+ nieuw 4c)
   toelichting_4b,
   score_5a, -- 5a gebleven
   toelichting_5a,
   score_5b, -- 5b gebleven
   toelichting_5b,
   score_5c, -- VERVALLEN per 2017
   toelichting_5c,
   score_6a, -- 6a gebleven
   toelichting_6a,
   score_6b, -- 6b gebleven
   toelichting_6b,
   score_7a, -- 7a gebleven (+ 7a1/2/3/4)
   toelichting_7a,
   score_7b, -- 7b gebleven
   toelichting_7b,
   score_7c, -- 7c gebleven
   toelichting_7c,
   score_7d, -- 7d gebleven
   toelichting_7d,
   score_7e, -- 7e gebleven (+ 7e1/2/3/4 + nieuw 7f/g/h/i)
   toelichting_7e,
   score_8a, -- VERVALLEN per 2017
   toelichting_8a,
   score_8b, -- 8a
   toelichting_8b,
   toelichting_9, -- 9 gebleven
   akkoord_10 -- VERVALLEN al eerder?
)
AS
   SELECT m.mld_melding_key melding,
          (SELECT mld_kenmerkmelding_waarde
             FROM mld_kenmerkmelding mkm
            WHERE mld_kenmerk_key = 122
              AND mkm.mld_melding_key = m.mld_melding_key)
             naam_medewerker_huurder,
          (SELECT mld_kenmerkmelding_waarde
             FROM mld_kenmerkmelding mkm
            WHERE mld_kenmerk_key = 123
              AND mkm.mld_melding_key = m.mld_melding_key)
             aantal_medewerkers_huurder,
          (SELECT prs_perslid_naam_friendly
             FROM mld_kenmerkmelding mkm, wtca_v_medewerkers p
            WHERE mld_kenmerk_key = 124
              AND mkm.mld_melding_key = m.mld_melding_key
              AND TO_CHAR (p.prs_perslid_key) = mld_kenmerkmelding_waarde)
             accountteam_naam1,
          (SELECT prs_perslid_naam_friendly
             FROM mld_kenmerkmelding mkm, wtca_v_medewerkers p
            WHERE mld_kenmerk_key = 125
              AND mkm.mld_melding_key = m.mld_melding_key
              AND TO_CHAR (p.prs_perslid_key) = mld_kenmerkmelding_waarde)
             accountteam_naam2,
          (SELECT fac_usrdata_omschr
             FROM mld_kenmerkmelding mkm, fac_usrdata ud
            WHERE mld_kenmerk_key = 281
              AND mkm.mld_melding_key = m.mld_melding_key
              AND ud.fac_usrtab_key = 141
              AND TO_CHAR (ud.fac_usrdata_key) = mld_kenmerkmelding_waarde)
             kto_periode,
          (SELECT fac.safe_to_number (fac_usrdata_omschr)
             FROM mld_kenmerkmelding mkm, fac_usrdata ud
            WHERE mld_kenmerk_key = 141
              AND mkm.mld_melding_key = m.mld_melding_key
              AND ud.fac_usrtab_key = 121
              AND TO_CHAR (ud.fac_usrdata_key) = mld_kenmerkmelding_waarde)
             score_1a,
          (SELECT mld_kenmerkmelding_waarde
             FROM mld_kenmerkmelding mkm
            WHERE mld_kenmerk_key = 142
              AND mkm.mld_melding_key = m.mld_melding_key)
             toelichting_1a,
          (SELECT fac.safe_to_number (fac_usrdata_omschr)
             FROM mld_kenmerkmelding mkm, fac_usrdata ud
            WHERE mld_kenmerk_key = 143
              AND mkm.mld_melding_key = m.mld_melding_key
              AND ud.fac_usrtab_key = 121
              AND TO_CHAR (ud.fac_usrdata_key) = mld_kenmerkmelding_waarde)
             score_1b,
          (SELECT mld_kenmerkmelding_waarde
             FROM mld_kenmerkmelding mkm
            WHERE mld_kenmerk_key = 144
              AND mkm.mld_melding_key = m.mld_melding_key)
             toelichting_1b,
          (SELECT fac.safe_to_number (fac_usrdata_omschr)
             FROM mld_kenmerkmelding mkm, fac_usrdata ud
            WHERE mld_kenmerk_key = 145
              AND mkm.mld_melding_key = m.mld_melding_key
              AND ud.fac_usrtab_key = 121
              AND TO_CHAR (ud.fac_usrdata_key) = mld_kenmerkmelding_waarde)
             score_1c,
          (SELECT mld_kenmerkmelding_waarde
             FROM mld_kenmerkmelding mkm
            WHERE mld_kenmerk_key = 146
              AND mkm.mld_melding_key = m.mld_melding_key)
             toelichting_1c,
          (SELECT fac.safe_to_number (fac_usrdata_omschr)
             FROM mld_kenmerkmelding mkm, fac_usrdata ud
            WHERE mld_kenmerk_key = 147
              AND mkm.mld_melding_key = m.mld_melding_key
              AND ud.fac_usrtab_key = 121
              AND TO_CHAR (ud.fac_usrdata_key) = mld_kenmerkmelding_waarde)
             score_1d,
          (SELECT mld_kenmerkmelding_waarde
             FROM mld_kenmerkmelding mkm
            WHERE mld_kenmerk_key = 149
              AND mkm.mld_melding_key = m.mld_melding_key)
             toelichting_1d,
          (SELECT fac.safe_to_number (fac_usrdata_omschr)
             FROM mld_kenmerkmelding mkm, fac_usrdata ud
            WHERE mld_kenmerk_key = 150
              AND mkm.mld_melding_key = m.mld_melding_key
              AND ud.fac_usrtab_key = 121
              AND TO_CHAR (ud.fac_usrdata_key) = mld_kenmerkmelding_waarde)
             score_1e,
          (SELECT mld_kenmerkmelding_waarde
             FROM mld_kenmerkmelding mkm
            WHERE mld_kenmerk_key = 151
              AND mkm.mld_melding_key = m.mld_melding_key)
             toelichting_1e,
          (SELECT fac.safe_to_number (fac_usrdata_omschr)
             FROM mld_kenmerkmelding mkm, fac_usrdata ud
            WHERE mld_kenmerk_key = 202
              AND mkm.mld_melding_key = m.mld_melding_key
              AND ud.fac_usrtab_key = 121
              AND TO_CHAR (ud.fac_usrdata_key) = mld_kenmerkmelding_waarde)
             score_2a,
          (SELECT mld_kenmerkmelding_waarde
             FROM mld_kenmerkmelding mkm
            WHERE mld_kenmerk_key = 203
              AND mkm.mld_melding_key = m.mld_melding_key)
             toelichting_2a,
          (SELECT fac.safe_to_number (fac_usrdata_omschr)
             FROM mld_kenmerkmelding mkm, fac_usrdata ud
            WHERE mld_kenmerk_key = 205
              AND mkm.mld_melding_key = m.mld_melding_key
              AND ud.fac_usrtab_key = 121
              AND TO_CHAR (ud.fac_usrdata_key) = mld_kenmerkmelding_waarde)
             score_2b,
          (SELECT mld_kenmerkmelding_waarde
             FROM mld_kenmerkmelding mkm
            WHERE mld_kenmerk_key = 206
              AND mkm.mld_melding_key = m.mld_melding_key)
             toelichting_2b,
          (SELECT fac.safe_to_number (fac_usrdata_omschr)
             FROM mld_kenmerkmelding mkm, fac_usrdata ud
            WHERE mld_kenmerk_key = 208
              AND mkm.mld_melding_key = m.mld_melding_key
              AND ud.fac_usrtab_key = 121
              AND TO_CHAR (ud.fac_usrdata_key) = mld_kenmerkmelding_waarde)
             score_2c,
          (SELECT mld_kenmerkmelding_waarde
             FROM mld_kenmerkmelding mkm
            WHERE mld_kenmerk_key = 209
              AND mkm.mld_melding_key = m.mld_melding_key)
             toelichting_2c,
          (SELECT fac.safe_to_number (fac_usrdata_omschr)
             FROM mld_kenmerkmelding mkm, fac_usrdata ud
            WHERE mld_kenmerk_key = 211
              AND mkm.mld_melding_key = m.mld_melding_key
              AND ud.fac_usrtab_key = 121
              AND TO_CHAR (ud.fac_usrdata_key) = mld_kenmerkmelding_waarde)
             score_3a,
          (SELECT mld_kenmerkmelding_waarde
             FROM mld_kenmerkmelding mkm
            WHERE mld_kenmerk_key = 212
              AND mkm.mld_melding_key = m.mld_melding_key)
             toelichting_3a,
          (SELECT fac.safe_to_number (fac_usrdata_omschr)
             FROM mld_kenmerkmelding mkm, fac_usrdata ud
            WHERE mld_kenmerk_key = 214
              AND mkm.mld_melding_key = m.mld_melding_key
              AND ud.fac_usrtab_key = 121
              AND TO_CHAR (ud.fac_usrdata_key) = mld_kenmerkmelding_waarde)
             score_3b,
          (SELECT mld_kenmerkmelding_waarde
             FROM mld_kenmerkmelding mkm
            WHERE mld_kenmerk_key = 215
              AND mkm.mld_melding_key = m.mld_melding_key)
             toelichting_3b,
          (SELECT fac.safe_to_number (fac_usrdata_omschr)
             FROM mld_kenmerkmelding mkm, fac_usrdata ud
            WHERE mld_kenmerk_key = 217
              AND mkm.mld_melding_key = m.mld_melding_key
              AND ud.fac_usrtab_key = 121
              AND TO_CHAR (ud.fac_usrdata_key) = mld_kenmerkmelding_waarde)
             score_3c,
          (SELECT mld_kenmerkmelding_waarde
             FROM mld_kenmerkmelding mkm
            WHERE mld_kenmerk_key = 218
              AND mkm.mld_melding_key = m.mld_melding_key)
             toelichting_3c,
          (SELECT fac.safe_to_number (fac_usrdata_omschr)
             FROM mld_kenmerkmelding mkm, fac_usrdata ud
            WHERE mld_kenmerk_key = 220
              AND mkm.mld_melding_key = m.mld_melding_key
              AND ud.fac_usrtab_key = 121
              AND TO_CHAR (ud.fac_usrdata_key) = mld_kenmerkmelding_waarde)
             score_4a,
          (SELECT mld_kenmerkmelding_waarde
             FROM mld_kenmerkmelding mkm
            WHERE mld_kenmerk_key = 221
              AND mkm.mld_melding_key = m.mld_melding_key)
             toelichting_4a,
          (SELECT fac.safe_to_number (fac_usrdata_omschr)
             FROM mld_kenmerkmelding mkm, fac_usrdata ud
            WHERE mld_kenmerk_key = 223
              AND mkm.mld_melding_key = m.mld_melding_key
              AND ud.fac_usrtab_key = 121
              AND TO_CHAR (ud.fac_usrdata_key) = mld_kenmerkmelding_waarde)
             score_4b,
          (SELECT mld_kenmerkmelding_waarde
             FROM mld_kenmerkmelding mkm
            WHERE mld_kenmerk_key = 224
              AND mkm.mld_melding_key = m.mld_melding_key)
             toelichting_4b,
          (SELECT fac.safe_to_number (fac_usrdata_omschr)
             FROM mld_kenmerkmelding mkm, fac_usrdata ud
            WHERE mld_kenmerk_key = 226
              AND mkm.mld_melding_key = m.mld_melding_key
              AND ud.fac_usrtab_key = 121
              AND TO_CHAR (ud.fac_usrdata_key) = mld_kenmerkmelding_waarde)
             score_5a,
          (SELECT mld_kenmerkmelding_waarde
             FROM mld_kenmerkmelding mkm
            WHERE mld_kenmerk_key = 227
              AND mkm.mld_melding_key = m.mld_melding_key)
             toelichting_5a,
          (SELECT fac.safe_to_number (fac_usrdata_omschr)
             FROM mld_kenmerkmelding mkm, fac_usrdata ud
            WHERE mld_kenmerk_key = 229
              AND mkm.mld_melding_key = m.mld_melding_key
              AND ud.fac_usrtab_key = 121
              AND TO_CHAR (ud.fac_usrdata_key) = mld_kenmerkmelding_waarde)
             score_5b,
          (SELECT mld_kenmerkmelding_waarde
             FROM mld_kenmerkmelding mkm
            WHERE mld_kenmerk_key = 230
              AND mkm.mld_melding_key = m.mld_melding_key)
             toelichting_5b,
          (SELECT fac.safe_to_number (fac_usrdata_omschr)
             FROM mld_kenmerkmelding mkm, fac_usrdata ud
            WHERE mld_kenmerk_key = 232
              AND mkm.mld_melding_key = m.mld_melding_key
              AND ud.fac_usrtab_key = 121
              AND TO_CHAR (ud.fac_usrdata_key) = mld_kenmerkmelding_waarde)
             score_5c,
          (SELECT mld_kenmerkmelding_waarde
             FROM mld_kenmerkmelding mkm
            WHERE mld_kenmerk_key = 233
              AND mkm.mld_melding_key = m.mld_melding_key)
             toelichting_5c,
          (SELECT fac.safe_to_number (fac_usrdata_omschr)
             FROM mld_kenmerkmelding mkm, fac_usrdata ud
            WHERE mld_kenmerk_key = 235
              AND mkm.mld_melding_key = m.mld_melding_key
              AND ud.fac_usrtab_key = 121
              AND TO_CHAR (ud.fac_usrdata_key) = mld_kenmerkmelding_waarde)
             score_6a,
          (SELECT mld_kenmerkmelding_waarde
             FROM mld_kenmerkmelding mkm
            WHERE mld_kenmerk_key = 236
              AND mkm.mld_melding_key = m.mld_melding_key)
             toelichting_6a,
          (SELECT fac.safe_to_number (fac_usrdata_omschr)
             FROM mld_kenmerkmelding mkm, fac_usrdata ud
            WHERE mld_kenmerk_key = 238
              AND mkm.mld_melding_key = m.mld_melding_key
              AND ud.fac_usrtab_key = 121
              AND TO_CHAR (ud.fac_usrdata_key) = mld_kenmerkmelding_waarde)
             score_6b,
          (SELECT mld_kenmerkmelding_waarde
             FROM mld_kenmerkmelding mkm
            WHERE mld_kenmerk_key = 239
              AND mkm.mld_melding_key = m.mld_melding_key)
             toelichting_6b,
          (SELECT fac.safe_to_number (fac_usrdata_omschr)
             FROM mld_kenmerkmelding mkm, fac_usrdata ud
            WHERE mld_kenmerk_key = 241
              AND mkm.mld_melding_key = m.mld_melding_key
              AND ud.fac_usrtab_key = 121
              AND TO_CHAR (ud.fac_usrdata_key) = mld_kenmerkmelding_waarde)
             score_7a,
          (SELECT mld_kenmerkmelding_waarde
             FROM mld_kenmerkmelding mkm
            WHERE mld_kenmerk_key = 242
              AND mkm.mld_melding_key = m.mld_melding_key)
             toelichting_7a,
          (SELECT fac.safe_to_number (fac_usrdata_omschr)
             FROM mld_kenmerkmelding mkm, fac_usrdata ud
            WHERE mld_kenmerk_key = 244
              AND mkm.mld_melding_key = m.mld_melding_key
              AND ud.fac_usrtab_key = 121
              AND TO_CHAR (ud.fac_usrdata_key) = mld_kenmerkmelding_waarde)
             score_7b,
          (SELECT mld_kenmerkmelding_waarde
             FROM mld_kenmerkmelding mkm
            WHERE mld_kenmerk_key = 245
              AND mkm.mld_melding_key = m.mld_melding_key)
             toelichting_7b,
          (SELECT fac.safe_to_number (fac_usrdata_omschr)
             FROM mld_kenmerkmelding mkm, fac_usrdata ud
            WHERE mld_kenmerk_key = 247
              AND mkm.mld_melding_key = m.mld_melding_key
              AND ud.fac_usrtab_key = 121
              AND TO_CHAR (ud.fac_usrdata_key) = mld_kenmerkmelding_waarde)
             score_7c,
          (SELECT mld_kenmerkmelding_waarde
             FROM mld_kenmerkmelding mkm
            WHERE mld_kenmerk_key = 248
              AND mkm.mld_melding_key = m.mld_melding_key)
             toelichting_7c,
          (SELECT fac.safe_to_number (fac_usrdata_omschr)
             FROM mld_kenmerkmelding mkm, fac_usrdata ud
            WHERE mld_kenmerk_key = 250
              AND mkm.mld_melding_key = m.mld_melding_key
              AND ud.fac_usrtab_key = 121
              AND TO_CHAR (ud.fac_usrdata_key) = mld_kenmerkmelding_waarde)
             score_7d,
          (SELECT mld_kenmerkmelding_waarde
             FROM mld_kenmerkmelding mkm
            WHERE mld_kenmerk_key = 251
              AND mkm.mld_melding_key = m.mld_melding_key)
             toelichting_7d,
          (SELECT fac.safe_to_number (fac_usrdata_omschr)
             FROM mld_kenmerkmelding mkm, fac_usrdata ud
            WHERE mld_kenmerk_key = 253
              AND mkm.mld_melding_key = m.mld_melding_key
              AND ud.fac_usrtab_key = 121
              AND TO_CHAR (ud.fac_usrdata_key) = mld_kenmerkmelding_waarde)
             score_7e,
          (SELECT mld_kenmerkmelding_waarde
             FROM mld_kenmerkmelding mkm
            WHERE mld_kenmerk_key = 254
              AND mkm.mld_melding_key = m.mld_melding_key)
             toelichting_7e,
          (SELECT fac.safe_to_number (fac_usrdata_omschr)
             FROM mld_kenmerkmelding mkm, fac_usrdata ud
            WHERE mld_kenmerk_key = 256
              AND mkm.mld_melding_key = m.mld_melding_key
              AND ud.fac_usrtab_key = 121
              AND TO_CHAR (ud.fac_usrdata_key) = mld_kenmerkmelding_waarde)
             score_8a,
          (SELECT mld_kenmerkmelding_waarde
             FROM mld_kenmerkmelding mkm
            WHERE mld_kenmerk_key = 257
              AND mkm.mld_melding_key = m.mld_melding_key)
             toelichting_8a,
          (SELECT fac.safe_to_number (fac_usrdata_omschr)
             FROM mld_kenmerkmelding mkm, fac_usrdata ud
            WHERE mld_kenmerk_key = 259
              AND mkm.mld_melding_key = m.mld_melding_key
              AND ud.fac_usrtab_key = 121
              AND TO_CHAR (ud.fac_usrdata_key) = mld_kenmerkmelding_waarde)
             score_8b,
          (SELECT mld_kenmerkmelding_waarde
             FROM mld_kenmerkmelding mkm
            WHERE mld_kenmerk_key = 260
              AND mkm.mld_melding_key = m.mld_melding_key)
             toelichting_8b,
          (SELECT mld_kenmerkmelding_waarde
             FROM mld_kenmerkmelding mkm
            WHERE mld_kenmerk_key = 261
              AND mkm.mld_melding_key = m.mld_melding_key)
             toelichting_9,
          (SELECT DECODE (mld_kenmerkmelding_waarde, 1, 'Ja', 0, 'Nee', NULL)
             FROM mld_kenmerkmelding mkm
            WHERE mld_kenmerk_key = 262
              AND mkm.mld_melding_key = m.mld_melding_key)
             akkoord_10
     FROM mld_melding m, mld_stdmelding std, mld_discipline d
    WHERE m.mld_melding_datum < fac.safe_to_date ('01012017', 'ddmmyyyy')
      AND m.mld_stdmelding_key = std.mld_stdmelding_key
      AND std.mld_ins_discipline_key = d.ins_discipline_key
      AND d.ins_srtdiscipline_key = 101
      AND mld_melding_status != 1;

CREATE OR REPLACE VIEW wtca_v_udr_ktomelding
AS
SELECT *
  FROM mld_v_udr_melding m, wtca_v_udr_kto kto
 WHERE kto.kto_melding_key = m.melding_key;

CREATE OR REPLACE VIEW wtca_v_udr_kto2017
(
   kto_melding_key,
   naam_medewerker_huurder,
   aantal_medewerkers_huurder,
   accountteam_naam1,
   accountteam_naam2,
   kto_peridode,
   score_2a, -- 2a gebleven
   toelichting_2a,
   score_2b, -- nieuw 2b
   toelichting_2b,
   score_2c, -- 2c (was 1b)
   toelichting_2c,
   score_2d, -- 2d (was 1a)
   toelichting_2d,
   score_2e, -- 2e (was 1e)
   toelichting_2e,
   score_2f1, -- nieuw 2f1
   score_2f2, -- nieuw 2f2
   score_2f3, -- nieuw 2f3
   score_2f4, -- nieuw 2f4
   score_2f, -- 2f (gemiddelde/was 1c)
   toelichting_2f,
   score_2g, -- 2g (was 1d)
   toelichting_2g,
   score_2h, -- nieuw 2h
   toelichting_2h,
   score_3a, -- 3a (was 2b)
   toelichting_3a,
   score_3b, -- nieuw 3b
   toelichting_3b,
   score_3c, -- 3c (was 2c)
   toelichting_3c,
   score_3d, -- nieuw 3d
   toelichting_3d,
   score_3e, -- 3e (was 3c)
   toelichting_3e,
   score_3f, -- 3f (was 3a)
   toelichting_3f,
   score_3g, -- 3g (was 3b)
   toelichting_3g,
   score_4a, -- 4a gebleven
   toelichting_4a,
   score_4b, -- 4b gebleven
   toelichting_4b,
   score_4c, -- nieuw 4c
   toelichting_4c,
   score_5a, -- 5a gebleven
   toelichting_5a,
   score_5b, -- 5b gebleven
   toelichting_5b,
   --score_5c, -- VERVALLEN per 2017
   --toelichting_5c,
   score_6a, -- 6a gebleven
   toelichting_6a,
   score_6b, -- 6b gebleven
   toelichting_6b,
   score_7a1, -- nieuw 7a1
   score_7a2, -- nieuw 7a2
   score_7a3, -- nieuw 7a3
   score_7a4, -- nieuw 7a4
   score_7a, -- 7a gebleven (gemiddelde)
   toelichting_7a,
   score_7b, -- 7b gebleven
   toelichting_7b,
   score_7c, -- 7c gebleven
   toelichting_7c,
   score_7d, -- 7d gebleven
   toelichting_7d,
   score_7e1, -- nieuw 7e1
   score_7e2, -- nieuw 7e2
   score_7e3, -- nieuw 7e3
   score_7e4, -- nieuw 7e4
   score_7e5, -- nieuw 7e5
   score_7e6, -- nieuw 7e6
   score_7e7, -- nieuw 7e7
   score_7e, -- 7e gebleven (gemiddelde)
   toelichting_7e,
   score_7f, -- nieuw 7f
   toelichting_7f,
   score_7g, -- nieuw 7g
   toelichting_7g,
   score_7h, -- nieuw 7h
   toelichting_7h,
   score_7i, -- nieuw 7i
   toelichting_7i,
   --score_8a, -- VERVALLEN per 2017
   --toelichting_8a,
   score_8a, -- 8a (was 8b)
   toelichting_8a,
   toelichting_9, -- 9 gebleven
   akkoord_10 -- VERVALLEN al eerder?
)
AS
   SELECT m.mld_melding_key melding,
          (SELECT mld_kenmerkmelding_waarde
             FROM mld_kenmerkmelding mkm
            WHERE mld_kenmerk_key = 122
              AND mkm.mld_melding_key = m.mld_melding_key)
             naam_medewerker_huurder,
          (SELECT mld_kenmerkmelding_waarde
             FROM mld_kenmerkmelding mkm
            WHERE mld_kenmerk_key = 123
              AND mkm.mld_melding_key = m.mld_melding_key)
             aantal_medewerkers_huurder,
          (SELECT prs_perslid_naam_friendly
             FROM mld_kenmerkmelding mkm, wtca_v_medewerkers p
            WHERE mld_kenmerk_key = 124
              AND mkm.mld_melding_key = m.mld_melding_key
              AND TO_CHAR (p.prs_perslid_key) = mld_kenmerkmelding_waarde)
             accountteam_naam1,
          (SELECT prs_perslid_naam_friendly
             FROM mld_kenmerkmelding mkm, wtca_v_medewerkers p
            WHERE mld_kenmerk_key = 125
              AND mkm.mld_melding_key = m.mld_melding_key
              AND TO_CHAR (p.prs_perslid_key) = mld_kenmerkmelding_waarde)
             accountteam_naam2,
          (SELECT fac_usrdata_omschr
             FROM mld_kenmerkmelding mkm, fac_usrdata ud
            WHERE mld_kenmerk_key = 281
              AND mkm.mld_melding_key = m.mld_melding_key
              AND ud.fac_usrtab_key = 141
              AND TO_CHAR (ud.fac_usrdata_key) = mld_kenmerkmelding_waarde)
             kto_periode,
          (SELECT fac.safe_to_number (fac_usrdata_omschr)
             FROM mld_kenmerkmelding mkm, fac_usrdata ud
            WHERE mld_kenmerk_key = 202
              AND mkm.mld_melding_key = m.mld_melding_key
              AND ud.fac_usrtab_key = 121
              AND TO_CHAR (ud.fac_usrdata_key) = mld_kenmerkmelding_waarde)
             score_2a, -- 2a gebleven
          (SELECT mld_kenmerkmelding_waarde
             FROM mld_kenmerkmelding mkm
            WHERE mld_kenmerk_key = 203
              AND mkm.mld_melding_key = m.mld_melding_key)
             toelichting_2a,
          (SELECT fac.safe_to_number (fac_usrdata_omschr)
             FROM mld_kenmerkmelding mkm, fac_usrdata ud
            WHERE mld_kenmerk_key = 402
              AND mkm.mld_melding_key = m.mld_melding_key
              AND ud.fac_usrtab_key = 121
              AND TO_CHAR (ud.fac_usrdata_key) = mld_kenmerkmelding_waarde)
             score_2bx, -- nieuw 2b
          (SELECT mld_kenmerkmelding_waarde
             FROM mld_kenmerkmelding mkm
            WHERE mld_kenmerk_key = 403
              AND mkm.mld_melding_key = m.mld_melding_key)
             toelichting_2bx,
          (SELECT fac.safe_to_number (fac_usrdata_omschr)
             FROM mld_kenmerkmelding mkm, fac_usrdata ud
            WHERE mld_kenmerk_key = 143
              AND mkm.mld_melding_key = m.mld_melding_key
              AND ud.fac_usrtab_key = 121
              AND TO_CHAR (ud.fac_usrdata_key) = mld_kenmerkmelding_waarde)
             score_1b, -- 2c
          (SELECT mld_kenmerkmelding_waarde
             FROM mld_kenmerkmelding mkm
            WHERE mld_kenmerk_key = 144
              AND mkm.mld_melding_key = m.mld_melding_key)
             toelichting_1b,
          (SELECT fac.safe_to_number (fac_usrdata_omschr)
             FROM mld_kenmerkmelding mkm, fac_usrdata ud
            WHERE mld_kenmerk_key = 141
              AND mkm.mld_melding_key = m.mld_melding_key
              AND ud.fac_usrtab_key = 121
              AND TO_CHAR (ud.fac_usrdata_key) = mld_kenmerkmelding_waarde)
             score_1a, -- 2d
          (SELECT mld_kenmerkmelding_waarde
             FROM mld_kenmerkmelding mkm
            WHERE mld_kenmerk_key = 142
              AND mkm.mld_melding_key = m.mld_melding_key)
             toelichting_1a,
          (SELECT fac.safe_to_number (fac_usrdata_omschr)
             FROM mld_kenmerkmelding mkm, fac_usrdata ud
            WHERE mld_kenmerk_key = 150
              AND mkm.mld_melding_key = m.mld_melding_key
              AND ud.fac_usrtab_key = 121
              AND TO_CHAR (ud.fac_usrdata_key) = mld_kenmerkmelding_waarde)
             score_1e, -- 2e
          (SELECT mld_kenmerkmelding_waarde
             FROM mld_kenmerkmelding mkm
            WHERE mld_kenmerk_key = 151
              AND mkm.mld_melding_key = m.mld_melding_key)
             toelichting_1e,
          (SELECT fac.safe_to_number (fac_usrdata_omschr)
             FROM mld_kenmerkmelding mkm, fac_usrdata ud
            WHERE mld_kenmerk_key = 404
              AND mkm.mld_melding_key = m.mld_melding_key
              AND ud.fac_usrtab_key = 121
              AND TO_CHAR (ud.fac_usrdata_key) = mld_kenmerkmelding_waarde)
             score_2f1, -- nieuw 2f1
          (SELECT fac.safe_to_number (fac_usrdata_omschr)
             FROM mld_kenmerkmelding mkm, fac_usrdata ud
            WHERE mld_kenmerk_key = 405
              AND mkm.mld_melding_key = m.mld_melding_key
              AND ud.fac_usrtab_key = 121
              AND TO_CHAR (ud.fac_usrdata_key) = mld_kenmerkmelding_waarde)
             score_2f2, -- nieuw 2f2
          (SELECT fac.safe_to_number (fac_usrdata_omschr)
             FROM mld_kenmerkmelding mkm, fac_usrdata ud
            WHERE mld_kenmerk_key = 406
              AND mkm.mld_melding_key = m.mld_melding_key
              AND ud.fac_usrtab_key = 121
              AND TO_CHAR (ud.fac_usrdata_key) = mld_kenmerkmelding_waarde)
             score_2f3, -- nieuw 2f3
          (SELECT fac.safe_to_number (fac_usrdata_omschr)
             FROM mld_kenmerkmelding mkm, fac_usrdata ud
            WHERE mld_kenmerk_key = 407
              AND mkm.mld_melding_key = m.mld_melding_key
              AND ud.fac_usrtab_key = 121
              AND TO_CHAR (ud.fac_usrdata_key) = mld_kenmerkmelding_waarde)
             score_2f4, -- nieuw 2f4
          (SELECT fac.safe_to_number (fac_usrdata_omschr)
             FROM mld_kenmerkmelding mkm, fac_usrdata ud
            WHERE mld_kenmerk_key = 145
              AND mkm.mld_melding_key = m.mld_melding_key
              AND ud.fac_usrtab_key = 121
              AND TO_CHAR (ud.fac_usrdata_key) = mld_kenmerkmelding_waarde)
             score_1c, -- 2f (gemiddelde)
          (SELECT mld_kenmerkmelding_waarde
             FROM mld_kenmerkmelding mkm
            WHERE mld_kenmerk_key = 146
              AND mkm.mld_melding_key = m.mld_melding_key)
             toelichting_1c,
          (SELECT fac.safe_to_number (fac_usrdata_omschr)
             FROM mld_kenmerkmelding mkm, fac_usrdata ud
            WHERE mld_kenmerk_key = 147
              AND mkm.mld_melding_key = m.mld_melding_key
              AND ud.fac_usrtab_key = 121
              AND TO_CHAR (ud.fac_usrdata_key) = mld_kenmerkmelding_waarde)
             score_1d, -- 2g
          (SELECT mld_kenmerkmelding_waarde
             FROM mld_kenmerkmelding mkm
            WHERE mld_kenmerk_key = 149
              AND mkm.mld_melding_key = m.mld_melding_key)
             toelichting_1d,
          (SELECT fac.safe_to_number (fac_usrdata_omschr)
             FROM mld_kenmerkmelding mkm, fac_usrdata ud
            WHERE mld_kenmerk_key = 409
              AND mkm.mld_melding_key = m.mld_melding_key
              AND ud.fac_usrtab_key = 121
              AND TO_CHAR (ud.fac_usrdata_key) = mld_kenmerkmelding_waarde)
             score_2hx, -- 2h
          (SELECT mld_kenmerkmelding_waarde
             FROM mld_kenmerkmelding mkm
            WHERE mld_kenmerk_key = 410
              AND mkm.mld_melding_key = m.mld_melding_key)
             toelichting_2hx,
          (SELECT fac.safe_to_number (fac_usrdata_omschr)
             FROM mld_kenmerkmelding mkm, fac_usrdata ud
            WHERE mld_kenmerk_key = 205
              AND mkm.mld_melding_key = m.mld_melding_key
              AND ud.fac_usrtab_key = 121
              AND TO_CHAR (ud.fac_usrdata_key) = mld_kenmerkmelding_waarde)
             score_2b, -- 3a
          (SELECT mld_kenmerkmelding_waarde
             FROM mld_kenmerkmelding mkm
            WHERE mld_kenmerk_key = 206
              AND mkm.mld_melding_key = m.mld_melding_key)
             toelichting_2b,
          (SELECT fac.safe_to_number (fac_usrdata_omschr)
             FROM mld_kenmerkmelding mkm, fac_usrdata ud
            WHERE mld_kenmerk_key = 412
              AND mkm.mld_melding_key = m.mld_melding_key
              AND ud.fac_usrtab_key = 121
              AND TO_CHAR (ud.fac_usrdata_key) = mld_kenmerkmelding_waarde)
             score_3bx, -- nieuw 3b
          (SELECT mld_kenmerkmelding_waarde
             FROM mld_kenmerkmelding mkm
            WHERE mld_kenmerk_key = 413
              AND mkm.mld_melding_key = m.mld_melding_key)
             toelichting_3bx,
          (SELECT fac.safe_to_number (fac_usrdata_omschr)
             FROM mld_kenmerkmelding mkm, fac_usrdata ud
            WHERE mld_kenmerk_key = 208
              AND mkm.mld_melding_key = m.mld_melding_key
              AND ud.fac_usrtab_key = 121
              AND TO_CHAR (ud.fac_usrdata_key) = mld_kenmerkmelding_waarde)
             score_2c, -- 3c
          (SELECT mld_kenmerkmelding_waarde
             FROM mld_kenmerkmelding mkm
            WHERE mld_kenmerk_key = 209
              AND mkm.mld_melding_key = m.mld_melding_key)
             toelichting_2c,
          (SELECT fac.safe_to_number (fac_usrdata_omschr)
             FROM mld_kenmerkmelding mkm, fac_usrdata ud
            WHERE mld_kenmerk_key = 415
              AND mkm.mld_melding_key = m.mld_melding_key
              AND ud.fac_usrtab_key = 121
              AND TO_CHAR (ud.fac_usrdata_key) = mld_kenmerkmelding_waarde)
             score_3dx, -- nieuw 3d
          (SELECT mld_kenmerkmelding_waarde
             FROM mld_kenmerkmelding mkm
            WHERE mld_kenmerk_key = 416
              AND mkm.mld_melding_key = m.mld_melding_key)
             toelichting_3dx,
          (SELECT fac.safe_to_number (fac_usrdata_omschr)
             FROM mld_kenmerkmelding mkm, fac_usrdata ud
            WHERE mld_kenmerk_key = 217
              AND mkm.mld_melding_key = m.mld_melding_key
              AND ud.fac_usrtab_key = 121
              AND TO_CHAR (ud.fac_usrdata_key) = mld_kenmerkmelding_waarde)
             score_3c, -- 3e
          (SELECT mld_kenmerkmelding_waarde
             FROM mld_kenmerkmelding mkm
            WHERE mld_kenmerk_key = 218
              AND mkm.mld_melding_key = m.mld_melding_key)
             toelichting_3c,
          (SELECT fac.safe_to_number (fac_usrdata_omschr)
             FROM mld_kenmerkmelding mkm, fac_usrdata ud
            WHERE mld_kenmerk_key = 211
              AND mkm.mld_melding_key = m.mld_melding_key
              AND ud.fac_usrtab_key = 121
              AND TO_CHAR (ud.fac_usrdata_key) = mld_kenmerkmelding_waarde)
             score_3a, -- 3f
          (SELECT mld_kenmerkmelding_waarde
             FROM mld_kenmerkmelding mkm
            WHERE mld_kenmerk_key = 212
              AND mkm.mld_melding_key = m.mld_melding_key)
             toelichting_3a,
          (SELECT fac.safe_to_number (fac_usrdata_omschr)
             FROM mld_kenmerkmelding mkm, fac_usrdata ud
            WHERE mld_kenmerk_key = 214
              AND mkm.mld_melding_key = m.mld_melding_key
              AND ud.fac_usrtab_key = 121
              AND TO_CHAR (ud.fac_usrdata_key) = mld_kenmerkmelding_waarde)
             score_3b, -- 3g
          (SELECT mld_kenmerkmelding_waarde
             FROM mld_kenmerkmelding mkm
            WHERE mld_kenmerk_key = 215
              AND mkm.mld_melding_key = m.mld_melding_key)
             toelichting_3b,
          (SELECT fac.safe_to_number (fac_usrdata_omschr)
             FROM mld_kenmerkmelding mkm, fac_usrdata ud
            WHERE mld_kenmerk_key = 220
              AND mkm.mld_melding_key = m.mld_melding_key
              AND ud.fac_usrtab_key = 121
              AND TO_CHAR (ud.fac_usrdata_key) = mld_kenmerkmelding_waarde)
             score_4a, -- 4a gebleven
          (SELECT mld_kenmerkmelding_waarde
             FROM mld_kenmerkmelding mkm
            WHERE mld_kenmerk_key = 221
              AND mkm.mld_melding_key = m.mld_melding_key)
             toelichting_4a,
          (SELECT fac.safe_to_number (fac_usrdata_omschr)
             FROM mld_kenmerkmelding mkm, fac_usrdata ud
            WHERE mld_kenmerk_key = 223
              AND mkm.mld_melding_key = m.mld_melding_key
              AND ud.fac_usrtab_key = 121
              AND TO_CHAR (ud.fac_usrdata_key) = mld_kenmerkmelding_waarde)
             score_4b, -- 4b gebleven
          (SELECT mld_kenmerkmelding_waarde
             FROM mld_kenmerkmelding mkm
            WHERE mld_kenmerk_key = 224
              AND mkm.mld_melding_key = m.mld_melding_key)
             toelichting_4b,
          (SELECT fac.safe_to_number (fac_usrdata_omschr)
             FROM mld_kenmerkmelding mkm, fac_usrdata ud
            WHERE mld_kenmerk_key = 418
              AND mkm.mld_melding_key = m.mld_melding_key
              AND ud.fac_usrtab_key = 121
              AND TO_CHAR (ud.fac_usrdata_key) = mld_kenmerkmelding_waarde)
             score_4cx, -- nieuw 4c
          (SELECT mld_kenmerkmelding_waarde
             FROM mld_kenmerkmelding mkm
            WHERE mld_kenmerk_key = 419
              AND mkm.mld_melding_key = m.mld_melding_key)
             toelichting_4cx,
          (SELECT fac.safe_to_number (fac_usrdata_omschr)
             FROM mld_kenmerkmelding mkm, fac_usrdata ud
            WHERE mld_kenmerk_key = 226
              AND mkm.mld_melding_key = m.mld_melding_key
              AND ud.fac_usrtab_key = 121
              AND TO_CHAR (ud.fac_usrdata_key) = mld_kenmerkmelding_waarde)
             score_5a, -- 5a gebleven
          (SELECT mld_kenmerkmelding_waarde
             FROM mld_kenmerkmelding mkm
            WHERE mld_kenmerk_key = 227
              AND mkm.mld_melding_key = m.mld_melding_key)
             toelichting_5a,
          (SELECT fac.safe_to_number (fac_usrdata_omschr)
             FROM mld_kenmerkmelding mkm, fac_usrdata ud
            WHERE mld_kenmerk_key = 229
              AND mkm.mld_melding_key = m.mld_melding_key
              AND ud.fac_usrtab_key = 121
              AND TO_CHAR (ud.fac_usrdata_key) = mld_kenmerkmelding_waarde)
             score_5b, -- 5b gebleven
          (SELECT mld_kenmerkmelding_waarde
             FROM mld_kenmerkmelding mkm
            WHERE mld_kenmerk_key = 230
              AND mkm.mld_melding_key = m.mld_melding_key)
             toelichting_5b,
          --(SELECT fac.safe_to_number (fac_usrdata_omschr)
          --   FROM mld_kenmerkmelding mkm, fac_usrdata ud
          --  WHERE mld_kenmerk_key = 232
          --    AND mkm.mld_melding_key = m.mld_melding_key
          --    AND ud.fac_usrtab_key = 121
          --    AND TO_CHAR (ud.fac_usrdata_key) = mld_kenmerkmelding_waarde)
          --   score_5c, -- VERVALLEN per 2017
          --(SELECT mld_kenmerkmelding_waarde
          --   FROM mld_kenmerkmelding mkm
          --  WHERE mld_kenmerk_key = 233
          --    AND mkm.mld_melding_key = m.mld_melding_key)
          --   toelichting_5c,
          (SELECT fac.safe_to_number (fac_usrdata_omschr)
             FROM mld_kenmerkmelding mkm, fac_usrdata ud
            WHERE mld_kenmerk_key = 235
              AND mkm.mld_melding_key = m.mld_melding_key
              AND ud.fac_usrtab_key = 121
              AND TO_CHAR (ud.fac_usrdata_key) = mld_kenmerkmelding_waarde)
             score_6a, -- 6a gebleven
          (SELECT mld_kenmerkmelding_waarde
             FROM mld_kenmerkmelding mkm
            WHERE mld_kenmerk_key = 236
              AND mkm.mld_melding_key = m.mld_melding_key)
             toelichting_6a,
          (SELECT fac.safe_to_number (fac_usrdata_omschr)
             FROM mld_kenmerkmelding mkm, fac_usrdata ud
            WHERE mld_kenmerk_key = 238
              AND mkm.mld_melding_key = m.mld_melding_key
              AND ud.fac_usrtab_key = 121
              AND TO_CHAR (ud.fac_usrdata_key) = mld_kenmerkmelding_waarde)
             score_6b, -- 6b gebleven
          (SELECT mld_kenmerkmelding_waarde
             FROM mld_kenmerkmelding mkm
            WHERE mld_kenmerk_key = 239
              AND mkm.mld_melding_key = m.mld_melding_key)
             toelichting_6b,
          (SELECT fac.safe_to_number (fac_usrdata_omschr)
             FROM mld_kenmerkmelding mkm, fac_usrdata ud
            WHERE mld_kenmerk_key = 420
              AND mkm.mld_melding_key = m.mld_melding_key
              AND ud.fac_usrtab_key = 121
              AND TO_CHAR (ud.fac_usrdata_key) = mld_kenmerkmelding_waarde)
             score_7a1, -- nieuw 7a1
          (SELECT fac.safe_to_number (fac_usrdata_omschr)
             FROM mld_kenmerkmelding mkm, fac_usrdata ud
            WHERE mld_kenmerk_key = 421
              AND mkm.mld_melding_key = m.mld_melding_key
              AND ud.fac_usrtab_key = 121
              AND TO_CHAR (ud.fac_usrdata_key) = mld_kenmerkmelding_waarde)
             score_7a2, -- nieuw 7a2
          (SELECT fac.safe_to_number (fac_usrdata_omschr)
             FROM mld_kenmerkmelding mkm, fac_usrdata ud
            WHERE mld_kenmerk_key = 422
              AND mkm.mld_melding_key = m.mld_melding_key
              AND ud.fac_usrtab_key = 121
              AND TO_CHAR (ud.fac_usrdata_key) = mld_kenmerkmelding_waarde)
             score_7a3, -- nieuw 7a3
          (SELECT fac.safe_to_number (fac_usrdata_omschr)
             FROM mld_kenmerkmelding mkm, fac_usrdata ud
            WHERE mld_kenmerk_key = 423
              AND mkm.mld_melding_key = m.mld_melding_key
              AND ud.fac_usrtab_key = 121
              AND TO_CHAR (ud.fac_usrdata_key) = mld_kenmerkmelding_waarde)
             score_7a4, -- nieuw 7a4
          (SELECT fac.safe_to_number (fac_usrdata_omschr)
             FROM mld_kenmerkmelding mkm, fac_usrdata ud
            WHERE mld_kenmerk_key = 241
              AND mkm.mld_melding_key = m.mld_melding_key
              AND ud.fac_usrtab_key = 121
              AND TO_CHAR (ud.fac_usrdata_key) = mld_kenmerkmelding_waarde)
             score_7a, -- 7a gebleven (gemiddelde)
          (SELECT mld_kenmerkmelding_waarde
             FROM mld_kenmerkmelding mkm
            WHERE mld_kenmerk_key = 242
              AND mkm.mld_melding_key = m.mld_melding_key)
             toelichting_7a,
          (SELECT fac.safe_to_number (fac_usrdata_omschr)
             FROM mld_kenmerkmelding mkm, fac_usrdata ud
            WHERE mld_kenmerk_key = 244
              AND mkm.mld_melding_key = m.mld_melding_key
              AND ud.fac_usrtab_key = 121
              AND TO_CHAR (ud.fac_usrdata_key) = mld_kenmerkmelding_waarde)
             score_7b, -- 7b gebleven
          (SELECT mld_kenmerkmelding_waarde
             FROM mld_kenmerkmelding mkm
            WHERE mld_kenmerk_key = 245
              AND mkm.mld_melding_key = m.mld_melding_key)
             toelichting_7b,
          (SELECT fac.safe_to_number (fac_usrdata_omschr)
             FROM mld_kenmerkmelding mkm, fac_usrdata ud
            WHERE mld_kenmerk_key = 247
              AND mkm.mld_melding_key = m.mld_melding_key
              AND ud.fac_usrtab_key = 121
              AND TO_CHAR (ud.fac_usrdata_key) = mld_kenmerkmelding_waarde)
             score_7c, -- 7c gebleven
          (SELECT mld_kenmerkmelding_waarde
             FROM mld_kenmerkmelding mkm
            WHERE mld_kenmerk_key = 248
              AND mkm.mld_melding_key = m.mld_melding_key)
             toelichting_7c,
          (SELECT fac.safe_to_number (fac_usrdata_omschr)
             FROM mld_kenmerkmelding mkm, fac_usrdata ud
            WHERE mld_kenmerk_key = 250
              AND mkm.mld_melding_key = m.mld_melding_key
              AND ud.fac_usrtab_key = 121
              AND TO_CHAR (ud.fac_usrdata_key) = mld_kenmerkmelding_waarde)
             score_7d, -- 7d gebleven
          (SELECT mld_kenmerkmelding_waarde
             FROM mld_kenmerkmelding mkm
            WHERE mld_kenmerk_key = 251
              AND mkm.mld_melding_key = m.mld_melding_key)
             toelichting_7d,
          (SELECT fac.safe_to_number (fac_usrdata_omschr)
             FROM mld_kenmerkmelding mkm, fac_usrdata ud
            WHERE mld_kenmerk_key = 424
              AND mkm.mld_melding_key = m.mld_melding_key
              AND ud.fac_usrtab_key = 121
              AND TO_CHAR (ud.fac_usrdata_key) = mld_kenmerkmelding_waarde)
             score_7e1, -- nieuw 7e1
          (SELECT fac.safe_to_number (fac_usrdata_omschr)
             FROM mld_kenmerkmelding mkm, fac_usrdata ud
            WHERE mld_kenmerk_key = 425
              AND mkm.mld_melding_key = m.mld_melding_key
              AND ud.fac_usrtab_key = 121
              AND TO_CHAR (ud.fac_usrdata_key) = mld_kenmerkmelding_waarde)
             score_7e2, -- nieuw 7e2
          (SELECT fac.safe_to_number (fac_usrdata_omschr)
             FROM mld_kenmerkmelding mkm, fac_usrdata ud
            WHERE mld_kenmerk_key = 441
              AND mkm.mld_melding_key = m.mld_melding_key
              AND ud.fac_usrtab_key = 121
              AND TO_CHAR (ud.fac_usrdata_key) = mld_kenmerkmelding_waarde)
             score_7e3, -- nieuw 7e3
          (SELECT fac.safe_to_number (fac_usrdata_omschr)
             FROM mld_kenmerkmelding mkm, fac_usrdata ud
            WHERE mld_kenmerk_key = 442
              AND mkm.mld_melding_key = m.mld_melding_key
              AND ud.fac_usrtab_key = 121
              AND TO_CHAR (ud.fac_usrdata_key) = mld_kenmerkmelding_waarde)
             score_7e4, -- nieuw 7e4
          (SELECT fac.safe_to_number (fac_usrdata_omschr)
             FROM mld_kenmerkmelding mkm, fac_usrdata ud
            WHERE mld_kenmerk_key = 443
              AND mkm.mld_melding_key = m.mld_melding_key
              AND ud.fac_usrtab_key = 121
              AND TO_CHAR (ud.fac_usrdata_key) = mld_kenmerkmelding_waarde)
             score_7e5, -- nieuw 7e5
          (SELECT fac.safe_to_number (fac_usrdata_omschr)
             FROM mld_kenmerkmelding mkm, fac_usrdata ud
            WHERE mld_kenmerk_key = 426
              AND mkm.mld_melding_key = m.mld_melding_key
              AND ud.fac_usrtab_key = 121
              AND TO_CHAR (ud.fac_usrdata_key) = mld_kenmerkmelding_waarde)
             score_7e6, -- nieuw 7e6
          (SELECT fac.safe_to_number (fac_usrdata_omschr)
             FROM mld_kenmerkmelding mkm, fac_usrdata ud
            WHERE mld_kenmerk_key = 427
              AND mkm.mld_melding_key = m.mld_melding_key
              AND ud.fac_usrtab_key = 121
              AND TO_CHAR (ud.fac_usrdata_key) = mld_kenmerkmelding_waarde)
             score_7e7, -- nieuw 7e7
          (SELECT fac.safe_to_number (fac_usrdata_omschr)
             FROM mld_kenmerkmelding mkm, fac_usrdata ud
            WHERE mld_kenmerk_key = 253
              AND mkm.mld_melding_key = m.mld_melding_key
              AND ud.fac_usrtab_key = 121
              AND TO_CHAR (ud.fac_usrdata_key) = mld_kenmerkmelding_waarde)
             score_7e, -- 7e gebleven (gemiddelde)
          (SELECT mld_kenmerkmelding_waarde
             FROM mld_kenmerkmelding mkm
            WHERE mld_kenmerk_key = 254
              AND mkm.mld_melding_key = m.mld_melding_key)
             toelichting_7e,
          (SELECT fac.safe_to_number (fac_usrdata_omschr)
             FROM mld_kenmerkmelding mkm, fac_usrdata ud
            WHERE mld_kenmerk_key = 429
              AND mkm.mld_melding_key = m.mld_melding_key
              AND ud.fac_usrtab_key = 121
              AND TO_CHAR (ud.fac_usrdata_key) = mld_kenmerkmelding_waarde)
             score_7fx, -- nieuw 7f
          (SELECT mld_kenmerkmelding_waarde
             FROM mld_kenmerkmelding mkm
            WHERE mld_kenmerk_key = 430
              AND mkm.mld_melding_key = m.mld_melding_key)
             toelichting_7fx,
          (SELECT fac.safe_to_number (fac_usrdata_omschr)
             FROM mld_kenmerkmelding mkm, fac_usrdata ud
            WHERE mld_kenmerk_key = 432
              AND mkm.mld_melding_key = m.mld_melding_key
              AND ud.fac_usrtab_key = 121
              AND TO_CHAR (ud.fac_usrdata_key) = mld_kenmerkmelding_waarde)
             score_7gx, -- nieuw 7g
          (SELECT mld_kenmerkmelding_waarde
             FROM mld_kenmerkmelding mkm
            WHERE mld_kenmerk_key = 433
              AND mkm.mld_melding_key = m.mld_melding_key)
             toelichting_7gx,
          (SELECT fac.safe_to_number (fac_usrdata_omschr)
             FROM mld_kenmerkmelding mkm, fac_usrdata ud
            WHERE mld_kenmerk_key = 435
              AND mkm.mld_melding_key = m.mld_melding_key
              AND ud.fac_usrtab_key = 121
              AND TO_CHAR (ud.fac_usrdata_key) = mld_kenmerkmelding_waarde)
             score_7hx, -- nieuw 7h
          (SELECT mld_kenmerkmelding_waarde
             FROM mld_kenmerkmelding mkm
            WHERE mld_kenmerk_key = 436
              AND mkm.mld_melding_key = m.mld_melding_key)
             toelichting_7hx,
          (SELECT fac.safe_to_number (fac_usrdata_omschr)
             FROM mld_kenmerkmelding mkm, fac_usrdata ud
            WHERE mld_kenmerk_key = 438
              AND mkm.mld_melding_key = m.mld_melding_key
              AND ud.fac_usrtab_key = 121
              AND TO_CHAR (ud.fac_usrdata_key) = mld_kenmerkmelding_waarde)
             score_7ix, -- nieuw 7i
          (SELECT mld_kenmerkmelding_waarde
             FROM mld_kenmerkmelding mkm
            WHERE mld_kenmerk_key = 439
              AND mkm.mld_melding_key = m.mld_melding_key)
             toelichting_7ix,
          --(SELECT fac.safe_to_number (fac_usrdata_omschr)
          --   FROM mld_kenmerkmelding mkm, fac_usrdata ud
          --  WHERE mld_kenmerk_key = 256
          --    AND mkm.mld_melding_key = m.mld_melding_key
          --    AND ud.fac_usrtab_key = 121
          --    AND TO_CHAR (ud.fac_usrdata_key) = mld_kenmerkmelding_waarde)
          --   score_8a, -- VERVALLEN per 2017
          --(SELECT mld_kenmerkmelding_waarde
          --   FROM mld_kenmerkmelding mkm
          --  WHERE mld_kenmerk_key = 257
          --    AND mkm.mld_melding_key = m.mld_melding_key)
          --   toelichting_8a,
          (SELECT fac.safe_to_number (fac_usrdata_omschr)
             FROM mld_kenmerkmelding mkm, fac_usrdata ud
            WHERE mld_kenmerk_key = 259
              AND mkm.mld_melding_key = m.mld_melding_key
              AND ud.fac_usrtab_key = 121
              AND TO_CHAR (ud.fac_usrdata_key) = mld_kenmerkmelding_waarde)
             score_8b, -- 8a
          (SELECT mld_kenmerkmelding_waarde
             FROM mld_kenmerkmelding mkm
            WHERE mld_kenmerk_key = 260
              AND mkm.mld_melding_key = m.mld_melding_key)
             toelichting_8b,
          (SELECT mld_kenmerkmelding_waarde
             FROM mld_kenmerkmelding mkm
            WHERE mld_kenmerk_key = 261
              AND mkm.mld_melding_key = m.mld_melding_key)
             toelichting_9, -- 9 gebleven
          (SELECT DECODE (mld_kenmerkmelding_waarde, 1, 'Ja', 0, 'Nee', NULL)
             FROM mld_kenmerkmelding mkm
            WHERE mld_kenmerk_key = 262
              AND mkm.mld_melding_key = m.mld_melding_key)
             akkoord_10
     FROM mld_melding m, mld_stdmelding std, mld_discipline d
    WHERE m.mld_melding_datum > fac.safe_to_date ('01012017', 'ddmmyyyy')
      AND m.mld_stdmelding_key = std.mld_stdmelding_key
      AND std.mld_ins_discipline_key = d.ins_discipline_key
      AND d.ins_srtdiscipline_key = 101
      AND mld_melding_status != 1;

CREATE OR REPLACE VIEW wtca_v_udr_ktomelding2017
AS
SELECT *
  FROM mld_v_udr_melding m, wtca_v_udr_kto2017 kto
 WHERE kto.kto_melding_key = m.melding_key;

--- WTCA#57316: KTO views per 2019
CREATE OR REPLACE VIEW wtca_v_udr_kto2019
(
   kto_melding_key,
   naam_medewerker_huurder,
   aantal_medewerkers_huurder,
   accountteam_naam1,
   accountteam_naam2,
   kto_peridode,
   score_2a, -- 2a gebleven
   toelichting_2a,
   score_2b, -- 2b gebleven
   toelichting_2b,
   score_2c, -- 2c gebleven
   toelichting_2c,
   score_2d, -- 2d gebleven
   toelichting_2d,
   score_2e, -- 2e gebleven
   toelichting_2e,
   score_2f, -- nieuw 2f
   toelichting_2f,
   score_2g1, -- 2g1 (was 2f1)
   score_2g2, -- 2g2 (was 2f2)
   score_2g3, -- 2g3 (was 2f3)
   score_2g4, -- 2g4 (was 2f4)
   score_2g, -- 2g (gemiddelde/was 2f)
   toelichting_2g,
   score_2h, -- 2h (was 2g)
   toelichting_2h,
   score_2i, -- 2i (was 2h)
   toelichting_2i,
   score_3a, -- 3a gebleven
   toelichting_3a,
   score_3b, -- 3b gebleven
   toelichting_3b,
   score_3c, -- 3c gebleven
   toelichting_3c,
   score_3d, -- 3d gebleven
   toelichting_3d,
   score_3e, -- 3e gebleven
   toelichting_3e,
   score_3f, -- 3f gebleven
   toelichting_3f,
   score_3g, -- 3g gebleven
   toelichting_3g,
   score_4a, -- 4a gebleven
   toelichting_4a,
   score_4b, -- 4b gebleven
   toelichting_4b,
   --score_4c, -- VERVALLEN per 2019
   --toelichting_4c,
   score_5a, -- 5a gebleven
   toelichting_5a,
   score_5b, -- 5b gebleven
   toelichting_5b,
   score_5c, -- nieuw 5c (zonder toelichting)
   --toelichting_5c,
   score_6a, -- 6a gebleven
   toelichting_6a,
   score_6b, -- 6b gebleven
   toelichting_6b,
   score_7a1, -- nieuw 7a1
   score_7a2, -- 7a2 (was 7a1)
   score_7a3, -- 7a3 (was 7a2)
   score_7a4, -- 7a4 (was 7a3)
   score_7a5, -- 7a5 (was 7a4)
   score_7a, -- 7a gebleven (gemiddelde)
   toelichting_7a,
   score_7b, -- 7b gebleven
   toelichting_7b,
   score_7c, -- 7c gebleven
   toelichting_7c,
   score_7d, -- 7d gebleven
   toelichting_7d,
   score_7e1, -- 7e1 gebleven
   score_7e2, -- 7e2 gebleven
   score_7e3, -- 7e3 gebleven
   score_7e4, -- 7e4 gebleven
   score_7e5, -- 7e5 gebleven
   score_7e6, -- 7e6 gebleven
   score_7e7, -- 7e7 gebleven
   score_7e, -- 7e gebleven (gemiddelde)
   toelichting_7e,
   score_7f, -- 7f gebleven
   toelichting_7f,
   score_7g, -- 7g gebleven
   toelichting_7g,
   score_7h, -- 7h gebleven
   toelichting_7h,
   score_7i, -- 7i gebleven
   toelichting_7i,
   score_7j, -- nieuw 7j
   toelichting_7j,
   score_8a, -- 8a gebleven
   toelichting_8a,
   toelichting_9, -- 9 gebleven
   akkoord_10, -- VERVALLEN al eerder?
   melder_huurder,
   afmelddatum
)
AS
   SELECT m.mld_melding_key melding,
          (SELECT mld_kenmerkmelding_waarde
             FROM mld_kenmerkmelding mkm
            WHERE mld_kenmerk_key = 122
              AND mkm.mld_melding_key = m.mld_melding_key)
             naam_medewerker_huurder,
          (SELECT mld_kenmerkmelding_waarde
             FROM mld_kenmerkmelding mkm
            WHERE mld_kenmerk_key = 123
              AND mkm.mld_melding_key = m.mld_melding_key)
             aantal_medewerkers_huurder,
          (SELECT prs_perslid_naam_friendly
             FROM mld_kenmerkmelding mkm, wtca_v_medewerkers p
            WHERE mld_kenmerk_key = 124
              AND mkm.mld_melding_key = m.mld_melding_key
              AND TO_CHAR (p.prs_perslid_key) = mld_kenmerkmelding_waarde)
             accountteam_naam1,
          (SELECT prs_perslid_naam_friendly
             FROM mld_kenmerkmelding mkm, wtca_v_medewerkers p
            WHERE mld_kenmerk_key = 125
              AND mkm.mld_melding_key = m.mld_melding_key
              AND TO_CHAR (p.prs_perslid_key) = mld_kenmerkmelding_waarde)
             accountteam_naam2,
          (SELECT fac_usrdata_omschr
             FROM mld_kenmerkmelding mkm, fac_usrdata ud
            WHERE mld_kenmerk_key = 281
              AND mkm.mld_melding_key = m.mld_melding_key
              AND ud.fac_usrtab_key = 141
              AND TO_CHAR (ud.fac_usrdata_key) = mld_kenmerkmelding_waarde)
             kto_periode,
          (SELECT fac.safe_to_number (fac_usrdata_omschr)
             FROM mld_kenmerkmelding mkm, fac_usrdata ud
            WHERE mld_kenmerk_key = 202
              AND mkm.mld_melding_key = m.mld_melding_key
              AND ud.fac_usrtab_key = 121
              AND TO_CHAR (ud.fac_usrdata_key) = mld_kenmerkmelding_waarde)
             score_2a, -- 2a gebleven
          (SELECT mld_kenmerkmelding_waarde
             FROM mld_kenmerkmelding mkm
            WHERE mld_kenmerk_key = 203
              AND mkm.mld_melding_key = m.mld_melding_key)
             toelichting_2a,
          (SELECT fac.safe_to_number (fac_usrdata_omschr)
             FROM mld_kenmerkmelding mkm, fac_usrdata ud
            WHERE mld_kenmerk_key = 402
              AND mkm.mld_melding_key = m.mld_melding_key
              AND ud.fac_usrtab_key = 121
              AND TO_CHAR (ud.fac_usrdata_key) = mld_kenmerkmelding_waarde)
             score_2b, -- 2b gebleven
          (SELECT mld_kenmerkmelding_waarde
             FROM mld_kenmerkmelding mkm
            WHERE mld_kenmerk_key = 403
              AND mkm.mld_melding_key = m.mld_melding_key)
             toelichting_2b,
          (SELECT fac.safe_to_number (fac_usrdata_omschr)
             FROM mld_kenmerkmelding mkm, fac_usrdata ud
            WHERE mld_kenmerk_key = 143
              AND mkm.mld_melding_key = m.mld_melding_key
              AND ud.fac_usrtab_key = 121
              AND TO_CHAR (ud.fac_usrdata_key) = mld_kenmerkmelding_waarde)
             score_2c, -- 2c gebleven
          (SELECT mld_kenmerkmelding_waarde
             FROM mld_kenmerkmelding mkm
            WHERE mld_kenmerk_key = 144
              AND mkm.mld_melding_key = m.mld_melding_key)
             toelichting_2c,
          (SELECT fac.safe_to_number (fac_usrdata_omschr)
             FROM mld_kenmerkmelding mkm, fac_usrdata ud
            WHERE mld_kenmerk_key = 141
              AND mkm.mld_melding_key = m.mld_melding_key
              AND ud.fac_usrtab_key = 121
              AND TO_CHAR (ud.fac_usrdata_key) = mld_kenmerkmelding_waarde)
             score_2d, -- 2d gebleven
          (SELECT mld_kenmerkmelding_waarde
             FROM mld_kenmerkmelding mkm
            WHERE mld_kenmerk_key = 142
              AND mkm.mld_melding_key = m.mld_melding_key)
             toelichting_2d,
          (SELECT fac.safe_to_number (fac_usrdata_omschr)
             FROM mld_kenmerkmelding mkm, fac_usrdata ud
            WHERE mld_kenmerk_key = 150
              AND mkm.mld_melding_key = m.mld_melding_key
              AND ud.fac_usrtab_key = 121
              AND TO_CHAR (ud.fac_usrdata_key) = mld_kenmerkmelding_waarde)
             score_2e, -- 2e gebleven
          (SELECT mld_kenmerkmelding_waarde
             FROM mld_kenmerkmelding mkm
            WHERE mld_kenmerk_key = 151
              AND mkm.mld_melding_key = m.mld_melding_key)
             toelichting_2e,
          (SELECT fac.safe_to_number (fac_usrdata_omschr)
             FROM mld_kenmerkmelding mkm, fac_usrdata ud
            WHERE mld_kenmerk_key = 1501
              AND mkm.mld_melding_key = m.mld_melding_key
              AND ud.fac_usrtab_key = 121
              AND TO_CHAR (ud.fac_usrdata_key) = mld_kenmerkmelding_waarde)
             score_2f, -- nieuw 2f
          (SELECT mld_kenmerkmelding_waarde
             FROM mld_kenmerkmelding mkm
            WHERE mld_kenmerk_key = 146
              AND mkm.mld_melding_key = m.mld_melding_key)
             toelichting_2f,
          (SELECT fac.safe_to_number (fac_usrdata_omschr)
             FROM mld_kenmerkmelding mkm, fac_usrdata ud
            WHERE mld_kenmerk_key = 404
              AND mkm.mld_melding_key = m.mld_melding_key
              AND ud.fac_usrtab_key = 121
              AND TO_CHAR (ud.fac_usrdata_key) = mld_kenmerkmelding_waarde)
             score_2g1, -- 2g1 (was 2f1)
          (SELECT fac.safe_to_number (fac_usrdata_omschr)
             FROM mld_kenmerkmelding mkm, fac_usrdata ud
            WHERE mld_kenmerk_key = 405
              AND mkm.mld_melding_key = m.mld_melding_key
              AND ud.fac_usrtab_key = 121
              AND TO_CHAR (ud.fac_usrdata_key) = mld_kenmerkmelding_waarde)
             score_2g2, -- 2g2 (was 2f2)
          (SELECT fac.safe_to_number (fac_usrdata_omschr)
             FROM mld_kenmerkmelding mkm, fac_usrdata ud
            WHERE mld_kenmerk_key = 406
              AND mkm.mld_melding_key = m.mld_melding_key
              AND ud.fac_usrtab_key = 121
              AND TO_CHAR (ud.fac_usrdata_key) = mld_kenmerkmelding_waarde)
             score_2g3, -- 2g3 (was 2f3)
          (SELECT fac.safe_to_number (fac_usrdata_omschr)
             FROM mld_kenmerkmelding mkm, fac_usrdata ud
            WHERE mld_kenmerk_key = 407
              AND mkm.mld_melding_key = m.mld_melding_key
              AND ud.fac_usrtab_key = 121
              AND TO_CHAR (ud.fac_usrdata_key) = mld_kenmerkmelding_waarde)
             score_2g4, -- 2g4 (was 2f4)
          (SELECT fac.safe_to_number (fac_usrdata_omschr)
             FROM mld_kenmerkmelding mkm, fac_usrdata ud
            WHERE mld_kenmerk_key = 145
              AND mkm.mld_melding_key = m.mld_melding_key
              AND ud.fac_usrtab_key = 121
              AND TO_CHAR (ud.fac_usrdata_key) = mld_kenmerkmelding_waarde)
             score_2g, -- 2g (gemiddelde/was 2f)
          (SELECT mld_kenmerkmelding_waarde
             FROM mld_kenmerkmelding mkm
            WHERE mld_kenmerk_key = 149
              AND mkm.mld_melding_key = m.mld_melding_key)
             toelichting_2g,
          (SELECT fac.safe_to_number (fac_usrdata_omschr)
             FROM mld_kenmerkmelding mkm, fac_usrdata ud
            WHERE mld_kenmerk_key = 409
              AND mkm.mld_melding_key = m.mld_melding_key
              AND ud.fac_usrtab_key = 121
              AND TO_CHAR (ud.fac_usrdata_key) = mld_kenmerkmelding_waarde)
             score_2h, -- 2h (was 2g)
          (SELECT mld_kenmerkmelding_waarde
             FROM mld_kenmerkmelding mkm
            WHERE mld_kenmerk_key = 410
              AND mkm.mld_melding_key = m.mld_melding_key)
             toelichting_2h,
          (SELECT fac.safe_to_number (fac_usrdata_omschr)
             FROM mld_kenmerkmelding mkm, fac_usrdata ud
            WHERE mld_kenmerk_key = 147
              AND mkm.mld_melding_key = m.mld_melding_key
              AND ud.fac_usrtab_key = 121
              AND TO_CHAR (ud.fac_usrdata_key) = mld_kenmerkmelding_waarde)
             score_2i, -- 2i (was 2h)
          (SELECT mld_kenmerkmelding_waarde
             FROM mld_kenmerkmelding mkm
            WHERE mld_kenmerk_key = 1541
              AND mkm.mld_melding_key = m.mld_melding_key)
             toelichting_2i,
          (SELECT fac.safe_to_number (fac_usrdata_omschr)
             FROM mld_kenmerkmelding mkm, fac_usrdata ud
            WHERE mld_kenmerk_key = 205
              AND mkm.mld_melding_key = m.mld_melding_key
              AND ud.fac_usrtab_key = 121
              AND TO_CHAR (ud.fac_usrdata_key) = mld_kenmerkmelding_waarde)
             score_3a, -- 3a
          (SELECT mld_kenmerkmelding_waarde
             FROM mld_kenmerkmelding mkm
            WHERE mld_kenmerk_key = 206
              AND mkm.mld_melding_key = m.mld_melding_key)
             toelichting_3a,
          (SELECT fac.safe_to_number (fac_usrdata_omschr)
             FROM mld_kenmerkmelding mkm, fac_usrdata ud
            WHERE mld_kenmerk_key = 412
              AND mkm.mld_melding_key = m.mld_melding_key
              AND ud.fac_usrtab_key = 121
              AND TO_CHAR (ud.fac_usrdata_key) = mld_kenmerkmelding_waarde)
             score_3b, -- nieuw 3b
          (SELECT mld_kenmerkmelding_waarde
             FROM mld_kenmerkmelding mkm
            WHERE mld_kenmerk_key = 413
              AND mkm.mld_melding_key = m.mld_melding_key)
             toelichting_3b,
          (SELECT fac.safe_to_number (fac_usrdata_omschr)
             FROM mld_kenmerkmelding mkm, fac_usrdata ud
            WHERE mld_kenmerk_key = 208
              AND mkm.mld_melding_key = m.mld_melding_key
              AND ud.fac_usrtab_key = 121
              AND TO_CHAR (ud.fac_usrdata_key) = mld_kenmerkmelding_waarde)
             score_3c, -- 3c
          (SELECT mld_kenmerkmelding_waarde
             FROM mld_kenmerkmelding mkm
            WHERE mld_kenmerk_key = 209
              AND mkm.mld_melding_key = m.mld_melding_key)
             toelichting_3c,
          (SELECT fac.safe_to_number (fac_usrdata_omschr)
             FROM mld_kenmerkmelding mkm, fac_usrdata ud
            WHERE mld_kenmerk_key = 415
              AND mkm.mld_melding_key = m.mld_melding_key
              AND ud.fac_usrtab_key = 121
              AND TO_CHAR (ud.fac_usrdata_key) = mld_kenmerkmelding_waarde)
             score_3d, -- nieuw 3d
          (SELECT mld_kenmerkmelding_waarde
             FROM mld_kenmerkmelding mkm
            WHERE mld_kenmerk_key = 416
              AND mkm.mld_melding_key = m.mld_melding_key)
             toelichting_3d,
          (SELECT fac.safe_to_number (fac_usrdata_omschr)
             FROM mld_kenmerkmelding mkm, fac_usrdata ud
            WHERE mld_kenmerk_key = 217
              AND mkm.mld_melding_key = m.mld_melding_key
              AND ud.fac_usrtab_key = 121
              AND TO_CHAR (ud.fac_usrdata_key) = mld_kenmerkmelding_waarde)
             score_3e, -- 3e
          (SELECT mld_kenmerkmelding_waarde
             FROM mld_kenmerkmelding mkm
            WHERE mld_kenmerk_key = 218
              AND mkm.mld_melding_key = m.mld_melding_key)
             toelichting_3e,
          (SELECT fac.safe_to_number (fac_usrdata_omschr)
             FROM mld_kenmerkmelding mkm, fac_usrdata ud
            WHERE mld_kenmerk_key = 211
              AND mkm.mld_melding_key = m.mld_melding_key
              AND ud.fac_usrtab_key = 121
              AND TO_CHAR (ud.fac_usrdata_key) = mld_kenmerkmelding_waarde)
             score_3f, -- 3f
          (SELECT mld_kenmerkmelding_waarde
             FROM mld_kenmerkmelding mkm
            WHERE mld_kenmerk_key = 212
              AND mkm.mld_melding_key = m.mld_melding_key)
             toelichting_3f,
          (SELECT fac.safe_to_number (fac_usrdata_omschr)
             FROM mld_kenmerkmelding mkm, fac_usrdata ud
            WHERE mld_kenmerk_key = 214
              AND mkm.mld_melding_key = m.mld_melding_key
              AND ud.fac_usrtab_key = 121
              AND TO_CHAR (ud.fac_usrdata_key) = mld_kenmerkmelding_waarde)
             score_3g, -- 3g
          (SELECT mld_kenmerkmelding_waarde
             FROM mld_kenmerkmelding mkm
            WHERE mld_kenmerk_key = 215
              AND mkm.mld_melding_key = m.mld_melding_key)
             toelichting_3g,
          (SELECT fac.safe_to_number (fac_usrdata_omschr)
             FROM mld_kenmerkmelding mkm, fac_usrdata ud
            WHERE mld_kenmerk_key = 220
              AND mkm.mld_melding_key = m.mld_melding_key
              AND ud.fac_usrtab_key = 121
              AND TO_CHAR (ud.fac_usrdata_key) = mld_kenmerkmelding_waarde)
             score_4a, -- 4a gebleven
          (SELECT mld_kenmerkmelding_waarde
             FROM mld_kenmerkmelding mkm
            WHERE mld_kenmerk_key = 221
              AND mkm.mld_melding_key = m.mld_melding_key)
             toelichting_4a,
          (SELECT fac.safe_to_number (fac_usrdata_omschr)
             FROM mld_kenmerkmelding mkm, fac_usrdata ud
            WHERE mld_kenmerk_key = 223
              AND mkm.mld_melding_key = m.mld_melding_key
              AND ud.fac_usrtab_key = 121
              AND TO_CHAR (ud.fac_usrdata_key) = mld_kenmerkmelding_waarde)
             score_4b, -- 4b gebleven
          (SELECT mld_kenmerkmelding_waarde
             FROM mld_kenmerkmelding mkm
            WHERE mld_kenmerk_key = 224
              AND mkm.mld_melding_key = m.mld_melding_key)
             toelichting_4b,
          --(SELECT fac.safe_to_number (fac_usrdata_omschr)
          --   FROM mld_kenmerkmelding mkm, fac_usrdata ud
          --  WHERE mld_kenmerk_key = 418
          --    AND mkm.mld_melding_key = m.mld_melding_key
          --    AND ud.fac_usrtab_key = 121
          --    AND TO_CHAR (ud.fac_usrdata_key) = mld_kenmerkmelding_waarde)
          --   score_4c,  -- VERVALLEN per 2019
          --(SELECT mld_kenmerkmelding_waarde
          --   FROM mld_kenmerkmelding mkm
          --  WHERE mld_kenmerk_key = 419
          --    AND mkm.mld_melding_key = m.mld_melding_key)
          --   toelichting_4c,
          (SELECT fac.safe_to_number (fac_usrdata_omschr)
             FROM mld_kenmerkmelding mkm, fac_usrdata ud
            WHERE mld_kenmerk_key = 226
              AND mkm.mld_melding_key = m.mld_melding_key
              AND ud.fac_usrtab_key = 121
              AND TO_CHAR (ud.fac_usrdata_key) = mld_kenmerkmelding_waarde)
             score_5a, -- 5a gebleven
          (SELECT mld_kenmerkmelding_waarde
             FROM mld_kenmerkmelding mkm
            WHERE mld_kenmerk_key = 227
              AND mkm.mld_melding_key = m.mld_melding_key)
             toelichting_5a,
          (SELECT fac.safe_to_number (fac_usrdata_omschr)
             FROM mld_kenmerkmelding mkm, fac_usrdata ud
            WHERE mld_kenmerk_key = 229
              AND mkm.mld_melding_key = m.mld_melding_key
              AND ud.fac_usrtab_key = 121
              AND TO_CHAR (ud.fac_usrdata_key) = mld_kenmerkmelding_waarde)
             score_5b, -- 5b gebleven
          (SELECT mld_kenmerkmelding_waarde
             FROM mld_kenmerkmelding mkm
            WHERE mld_kenmerk_key = 230
              AND mkm.mld_melding_key = m.mld_melding_key)
             toelichting_5b,
          (SELECT fac.safe_to_number (fac_usrdata_omschr)
             FROM mld_kenmerkmelding mkm, fac_usrdata ud
            WHERE mld_kenmerk_key = 232
              AND mkm.mld_melding_key = m.mld_melding_key
              AND ud.fac_usrtab_key = 121
              AND TO_CHAR (ud.fac_usrdata_key) = mld_kenmerkmelding_waarde)
             score_5c, -- nieuw 5c (zonder toelichting?)
          --(SELECT mld_kenmerkmelding_waarde
          --   FROM mld_kenmerkmelding mkm
          --  WHERE mld_kenmerk_key = 233
          --    AND mkm.mld_melding_key = m.mld_melding_key)
          --   toelichting_5c,
          (SELECT fac.safe_to_number (fac_usrdata_omschr)
             FROM mld_kenmerkmelding mkm, fac_usrdata ud
            WHERE mld_kenmerk_key = 235
              AND mkm.mld_melding_key = m.mld_melding_key
              AND ud.fac_usrtab_key = 121
              AND TO_CHAR (ud.fac_usrdata_key) = mld_kenmerkmelding_waarde)
             score_6a, -- 6a gebleven
          (SELECT mld_kenmerkmelding_waarde
             FROM mld_kenmerkmelding mkm
            WHERE mld_kenmerk_key = 236
              AND mkm.mld_melding_key = m.mld_melding_key)
             toelichting_6a,
          (SELECT fac.safe_to_number (fac_usrdata_omschr)
             FROM mld_kenmerkmelding mkm, fac_usrdata ud
            WHERE mld_kenmerk_key = 238
              AND mkm.mld_melding_key = m.mld_melding_key
              AND ud.fac_usrtab_key = 121
              AND TO_CHAR (ud.fac_usrdata_key) = mld_kenmerkmelding_waarde)
             score_6b, -- 6b gebleven
          (SELECT mld_kenmerkmelding_waarde
             FROM mld_kenmerkmelding mkm
            WHERE mld_kenmerk_key = 239
              AND mkm.mld_melding_key = m.mld_melding_key)
             toelichting_6b,
          (SELECT fac.safe_to_number (fac_usrdata_omschr)
             FROM mld_kenmerkmelding mkm, fac_usrdata ud
            WHERE mld_kenmerk_key = 1461
              AND mkm.mld_melding_key = m.mld_melding_key
              AND ud.fac_usrtab_key = 121
              AND TO_CHAR (ud.fac_usrdata_key) = mld_kenmerkmelding_waarde)
             score_7a1, -- nieuw 7a1
          (SELECT fac.safe_to_number (fac_usrdata_omschr)
             FROM mld_kenmerkmelding mkm, fac_usrdata ud
            WHERE mld_kenmerk_key = 420
              AND mkm.mld_melding_key = m.mld_melding_key
              AND ud.fac_usrtab_key = 121
              AND TO_CHAR (ud.fac_usrdata_key) = mld_kenmerkmelding_waarde)
             score_7a1, -- 7a2 (was 7a1)
          (SELECT fac.safe_to_number (fac_usrdata_omschr)
             FROM mld_kenmerkmelding mkm, fac_usrdata ud
            WHERE mld_kenmerk_key = 421
              AND mkm.mld_melding_key = m.mld_melding_key
              AND ud.fac_usrtab_key = 121
              AND TO_CHAR (ud.fac_usrdata_key) = mld_kenmerkmelding_waarde)
             score_7a2, -- 7a3 (was 7a2)
          (SELECT fac.safe_to_number (fac_usrdata_omschr)
             FROM mld_kenmerkmelding mkm, fac_usrdata ud
            WHERE mld_kenmerk_key = 422
              AND mkm.mld_melding_key = m.mld_melding_key
              AND ud.fac_usrtab_key = 121
              AND TO_CHAR (ud.fac_usrdata_key) = mld_kenmerkmelding_waarde)
             score_7a3, -- 7a4 (was 7a3)
          (SELECT fac.safe_to_number (fac_usrdata_omschr)
             FROM mld_kenmerkmelding mkm, fac_usrdata ud
            WHERE mld_kenmerk_key = 423
              AND mkm.mld_melding_key = m.mld_melding_key
              AND ud.fac_usrtab_key = 121
              AND TO_CHAR (ud.fac_usrdata_key) = mld_kenmerkmelding_waarde)
             score_7a4, -- 7a5 (was 7a4)
          (SELECT fac.safe_to_number (fac_usrdata_omschr)
             FROM mld_kenmerkmelding mkm, fac_usrdata ud
            WHERE mld_kenmerk_key = 241
              AND mkm.mld_melding_key = m.mld_melding_key
              AND ud.fac_usrtab_key = 121
              AND TO_CHAR (ud.fac_usrdata_key) = mld_kenmerkmelding_waarde)
             score_7a, -- 7a gebleven (gemiddelde)
          (SELECT mld_kenmerkmelding_waarde
             FROM mld_kenmerkmelding mkm
            WHERE mld_kenmerk_key = 242
              AND mkm.mld_melding_key = m.mld_melding_key)
             toelichting_7a,
          (SELECT fac.safe_to_number (fac_usrdata_omschr)
             FROM mld_kenmerkmelding mkm, fac_usrdata ud
            WHERE mld_kenmerk_key = 244
              AND mkm.mld_melding_key = m.mld_melding_key
              AND ud.fac_usrtab_key = 121
              AND TO_CHAR (ud.fac_usrdata_key) = mld_kenmerkmelding_waarde)
             score_7b, -- 7b gebleven
          (SELECT mld_kenmerkmelding_waarde
             FROM mld_kenmerkmelding mkm
            WHERE mld_kenmerk_key = 245
              AND mkm.mld_melding_key = m.mld_melding_key)
             toelichting_7b,
          (SELECT fac.safe_to_number (fac_usrdata_omschr)
             FROM mld_kenmerkmelding mkm, fac_usrdata ud
            WHERE mld_kenmerk_key = 247
              AND mkm.mld_melding_key = m.mld_melding_key
              AND ud.fac_usrtab_key = 121
              AND TO_CHAR (ud.fac_usrdata_key) = mld_kenmerkmelding_waarde)
             score_7c, -- 7c gebleven
          (SELECT mld_kenmerkmelding_waarde
             FROM mld_kenmerkmelding mkm
            WHERE mld_kenmerk_key = 248
              AND mkm.mld_melding_key = m.mld_melding_key)
             toelichting_7c,
          (SELECT fac.safe_to_number (fac_usrdata_omschr)
             FROM mld_kenmerkmelding mkm, fac_usrdata ud
            WHERE mld_kenmerk_key = 250
              AND mkm.mld_melding_key = m.mld_melding_key
              AND ud.fac_usrtab_key = 121
              AND TO_CHAR (ud.fac_usrdata_key) = mld_kenmerkmelding_waarde)
             score_7d, -- 7d gebleven
          (SELECT mld_kenmerkmelding_waarde
             FROM mld_kenmerkmelding mkm
            WHERE mld_kenmerk_key = 251
              AND mkm.mld_melding_key = m.mld_melding_key)
             toelichting_7d,
          (SELECT fac.safe_to_number (fac_usrdata_omschr)
             FROM mld_kenmerkmelding mkm, fac_usrdata ud
            WHERE mld_kenmerk_key = 424
              AND mkm.mld_melding_key = m.mld_melding_key
              AND ud.fac_usrtab_key = 121
              AND TO_CHAR (ud.fac_usrdata_key) = mld_kenmerkmelding_waarde)
             score_7e1, -- 7e1 gebleven
          (SELECT fac.safe_to_number (fac_usrdata_omschr)
             FROM mld_kenmerkmelding mkm, fac_usrdata ud
            WHERE mld_kenmerk_key = 425
              AND mkm.mld_melding_key = m.mld_melding_key
              AND ud.fac_usrtab_key = 121
              AND TO_CHAR (ud.fac_usrdata_key) = mld_kenmerkmelding_waarde)
             score_7e2, -- 7e2 gebleven
          (SELECT fac.safe_to_number (fac_usrdata_omschr)
             FROM mld_kenmerkmelding mkm, fac_usrdata ud
            WHERE mld_kenmerk_key = 441
              AND mkm.mld_melding_key = m.mld_melding_key
              AND ud.fac_usrtab_key = 121
              AND TO_CHAR (ud.fac_usrdata_key) = mld_kenmerkmelding_waarde)
             score_7e3, -- 7e3 gebleven
          (SELECT fac.safe_to_number (fac_usrdata_omschr)
             FROM mld_kenmerkmelding mkm, fac_usrdata ud
            WHERE mld_kenmerk_key = 442
              AND mkm.mld_melding_key = m.mld_melding_key
              AND ud.fac_usrtab_key = 121
              AND TO_CHAR (ud.fac_usrdata_key) = mld_kenmerkmelding_waarde)
             score_7e4, -- 7e4 gebleven
          (SELECT fac.safe_to_number (fac_usrdata_omschr)
             FROM mld_kenmerkmelding mkm, fac_usrdata ud
            WHERE mld_kenmerk_key = 443
              AND mkm.mld_melding_key = m.mld_melding_key
              AND ud.fac_usrtab_key = 121
              AND TO_CHAR (ud.fac_usrdata_key) = mld_kenmerkmelding_waarde)
             score_7e5, -- 7e5 gebleven
          (SELECT fac.safe_to_number (fac_usrdata_omschr)
             FROM mld_kenmerkmelding mkm, fac_usrdata ud
            WHERE mld_kenmerk_key = 426
              AND mkm.mld_melding_key = m.mld_melding_key
              AND ud.fac_usrtab_key = 121
              AND TO_CHAR (ud.fac_usrdata_key) = mld_kenmerkmelding_waarde)
             score_7e6, -- 7e6 gebleven
          (SELECT fac.safe_to_number (fac_usrdata_omschr)
             FROM mld_kenmerkmelding mkm, fac_usrdata ud
            WHERE mld_kenmerk_key = 427
              AND mkm.mld_melding_key = m.mld_melding_key
              AND ud.fac_usrtab_key = 121
              AND TO_CHAR (ud.fac_usrdata_key) = mld_kenmerkmelding_waarde)
             score_7e7, -- 7e7 gebleven
          (SELECT fac.safe_to_number (fac_usrdata_omschr)
             FROM mld_kenmerkmelding mkm, fac_usrdata ud
            WHERE mld_kenmerk_key = 253
              AND mkm.mld_melding_key = m.mld_melding_key
              AND ud.fac_usrtab_key = 121
              AND TO_CHAR (ud.fac_usrdata_key) = mld_kenmerkmelding_waarde)
             score_7e, -- 7e gebleven (gemiddelde)
          (SELECT mld_kenmerkmelding_waarde
             FROM mld_kenmerkmelding mkm
            WHERE mld_kenmerk_key = 254
              AND mkm.mld_melding_key = m.mld_melding_key)
             toelichting_7e,
          (SELECT fac.safe_to_number (fac_usrdata_omschr)
             FROM mld_kenmerkmelding mkm, fac_usrdata ud
            WHERE mld_kenmerk_key = 429
              AND mkm.mld_melding_key = m.mld_melding_key
              AND ud.fac_usrtab_key = 121
              AND TO_CHAR (ud.fac_usrdata_key) = mld_kenmerkmelding_waarde)
             score_7f, -- 7f gebleven
          (SELECT mld_kenmerkmelding_waarde
             FROM mld_kenmerkmelding mkm
            WHERE mld_kenmerk_key = 430
              AND mkm.mld_melding_key = m.mld_melding_key)
             toelichting_7f,
          (SELECT fac.safe_to_number (fac_usrdata_omschr)
             FROM mld_kenmerkmelding mkm, fac_usrdata ud
            WHERE mld_kenmerk_key = 432
              AND mkm.mld_melding_key = m.mld_melding_key
              AND ud.fac_usrtab_key = 121
              AND TO_CHAR (ud.fac_usrdata_key) = mld_kenmerkmelding_waarde)
             score_7g, -- 7g gebleven
          (SELECT mld_kenmerkmelding_waarde
             FROM mld_kenmerkmelding mkm
            WHERE mld_kenmerk_key = 433
              AND mkm.mld_melding_key = m.mld_melding_key)
             toelichting_7g,
          (SELECT fac.safe_to_number (fac_usrdata_omschr)
             FROM mld_kenmerkmelding mkm, fac_usrdata ud
            WHERE mld_kenmerk_key = 435
              AND mkm.mld_melding_key = m.mld_melding_key
              AND ud.fac_usrtab_key = 121
              AND TO_CHAR (ud.fac_usrdata_key) = mld_kenmerkmelding_waarde)
             score_7h, -- 7h gebleven
          (SELECT mld_kenmerkmelding_waarde
             FROM mld_kenmerkmelding mkm
            WHERE mld_kenmerk_key = 436
              AND mkm.mld_melding_key = m.mld_melding_key)
             toelichting_7h,
          (SELECT fac.safe_to_number (fac_usrdata_omschr)
             FROM mld_kenmerkmelding mkm, fac_usrdata ud
            WHERE mld_kenmerk_key = 438
              AND mkm.mld_melding_key = m.mld_melding_key
              AND ud.fac_usrtab_key = 121
              AND TO_CHAR (ud.fac_usrdata_key) = mld_kenmerkmelding_waarde)
             score_7i, -- 7i gebleven
          (SELECT mld_kenmerkmelding_waarde
             FROM mld_kenmerkmelding mkm
            WHERE mld_kenmerk_key = 439
              AND mkm.mld_melding_key = m.mld_melding_key)
             toelichting_7i,
          (SELECT fac.safe_to_number (fac_usrdata_omschr)
             FROM mld_kenmerkmelding mkm, fac_usrdata ud
            WHERE mld_kenmerk_key = 1482
              AND mkm.mld_melding_key = m.mld_melding_key
              AND ud.fac_usrtab_key = 121
              AND TO_CHAR (ud.fac_usrdata_key) = mld_kenmerkmelding_waarde)
             score_7j, -- nieuw 7j
          (SELECT mld_kenmerkmelding_waarde
             FROM mld_kenmerkmelding mkm
            WHERE mld_kenmerk_key = 1483
              AND mkm.mld_melding_key = m.mld_melding_key)
             toelichting_7j,
          (SELECT fac.safe_to_number (fac_usrdata_omschr)
             FROM mld_kenmerkmelding mkm, fac_usrdata ud
            WHERE mld_kenmerk_key = 259
              AND mkm.mld_melding_key = m.mld_melding_key
              AND ud.fac_usrtab_key = 121
              AND TO_CHAR (ud.fac_usrdata_key) = mld_kenmerkmelding_waarde)
             score_8a, -- 8a gebleven
          (SELECT mld_kenmerkmelding_waarde
             FROM mld_kenmerkmelding mkm
            WHERE mld_kenmerk_key = 260
              AND mkm.mld_melding_key = m.mld_melding_key)
             toelichting_8a,
          (SELECT mld_kenmerkmelding_waarde
             FROM mld_kenmerkmelding mkm
            WHERE mld_kenmerk_key = 261
              AND mkm.mld_melding_key = m.mld_melding_key)
             toelichting_9, -- 9 gebleven
          (SELECT DECODE (mld_kenmerkmelding_waarde, 1, 'Ja', 0, 'Nee', NULL)
             FROM mld_kenmerkmelding mkm
            WHERE mld_kenmerk_key = 262
              AND mkm.mld_melding_key = m.mld_melding_key)
             akkoord_10,
          pm.prs_perslid_naam_full melder,
          fac.gettrackingdate ('MLDAFM', m.mld_melding_key) mldafm
     FROM mld_melding m, mld_stdmelding std, mld_discipline d, prs_v_perslid_fullnames_all pm
    WHERE m.mld_melding_datum > fac.safe_to_date ('01012019', 'ddmmyyyy')
      AND m.mld_stdmelding_key = std.mld_stdmelding_key
      AND std.mld_ins_discipline_key = d.ins_discipline_key
      AND d.ins_srtdiscipline_key = 101
      AND m.mld_melding_status != 1
      AND m.prs_perslid_key_voor = pm.prs_perslid_key;

CREATE OR REPLACE VIEW wtca_v_udr_ktomelding2019
AS
SELECT m.*, kto.*
  FROM mld_v_udr_melding m, wtca_v_udr_kto2019 kto
 WHERE kto.kto_melding_key = m.melding_key;

CREATE OR REPLACE VIEW wtca_v_noti_extern
(
   code,
   sender,
   receiver,
   text,
   key,
   xkey,
   xemail,
   xmobile
)
AS
   SELECT sn.fac_srtnotificatie_code,
          NULL,
          NULL,
          -- lcl.x ('fac_srtnotificatie_oms', sn.fac_srtnotificatie_key, sn.fac_srtnotificatie_oms),
          REPLACE (
             REPLACE (
                REPLACE (
                   lcl.x ('fac_srtnotificatie_oms', sn.fac_srtnotificatie_key, sn.fac_srtnotificatie_oms),
                   '##KEY##', TO_CHAR (m.mld_melding_key)),
                '##DISC##', TO_CHAR (md.ins_discipline_omschrijving)),
             '##STDMLD##', TO_CHAR (sm.mld_stdmelding_omschrijving)),
          m.mld_melding_key,
          NULL,
          km.mld_kenmerkmelding_waarde,
          NULL
     FROM fac_tracking t,
          mld_melding m,
          mld_stdmelding sm,
          mld_discipline md,
          mld_kenmerkmelding km,
          mld_kenmerk k,
          fac_srtnotificatie sn,
          fac_notificatie_job nj
    WHERE     t.fac_tracking_refkey = m.mld_melding_key
          AND m.mld_stdmelding_key IN (3922, 3924)        -- Anonieme aanvraag
          AND m.mld_stdmelding_key = sm.mld_stdmelding_key
          AND sm.mld_ins_discipline_key = md.ins_discipline_key
          AND m.mld_melding_key = km.mld_melding_key
          AND km.mld_kenmerk_key = k.mld_kenmerk_key
          AND k.mld_srtkenmerk_key = 463                       -- E-mail adres
          AND t.fac_srtnotificatie_key = sn.fac_srtnotificatie_key
          AND sn.fac_srtnotificatie_key IN (25, 31)           -- MLDACP/MLDREJ
          AND nj.fac_notificatie_job_view = 'WTCA_V_NOTI_EXTERN'
          AND t.fac_tracking_datum BETWEEN nj.fac_notificatie_job_nextrun - (nj.fac_notificatie_job_interval / 24) AND nj.fac_notificatie_job_nextrun;

-- notijob die Nieuwe klachten notificeert naar personen in Autorisatiegroep Klachtnotificaties
-- 63 = Klachten, 30 = MLDNEW, 361 = Klachtnotificaties
CREATE OR REPLACE VIEW wtca_v_noti_klachten
(
   CODE,
   SENDER,
   RECEIVER,
   TEXT,
   KEY,
   XKEY,
   XEMAIL,
   XMOBILE
)
AS
   SELECT sn.fac_srtnotificatie_code,
          NULL,
          p.prs_perslid_key,
             'Nieuwe klacht '
          || ins_srtdiscipline_prefix
          || m.mld_melding_key
          || ' geregistreerd door '
          || pf.prs_perslid_naam_full,
          m.mld_melding_key,
          NULL,
          NULL,
          NULL
     FROM mld_melding m,
          mld_stdmelding std,
          mld_discipline d,
          ins_srtdiscipline sd,
          fac_tracking ft,
          fac_notificatie_job nj,
          fac_srtnotificatie sn,
          fac_gebruikersgroep fg,
          prs_perslid p,
          prs_v_perslid_fullnames pf
    WHERE     m.mld_stdmelding_key = std.mld_stdmelding_key
          AND std.mld_ins_discipline_key = d.ins_discipline_key
          AND d.ins_srtdiscipline_key = sd.ins_srtdiscipline_key
          AND sd.ins_srtdiscipline_key = 63
          AND ft.fac_tracking_refkey = m.mld_melding_key
          AND pf.prs_perslid_key = m.prs_perslid_key
          AND sn.fac_srtnotificatie_key = ft.fac_srtnotificatie_key
          AND sn.fac_srtnotificatie_key = 30
          AND fg.fac_groep_key = 361
          AND fg.prs_perslid_key = p.prs_perslid_key
          AND p.prs_perslid_verwijder IS NULL
          AND p.prs_perslid_oslogin IS NOT NULL
          AND p.prs_perslid_email IS NOT NULL
          AND UPPER (nj.fac_notificatie_job_view) = 'WTCA_V_NOTI_KLACHTEN'
          AND ft.fac_tracking_datum BETWEEN nj.fac_notificatie_job_nextrun
                                            - (nj.fac_notificatie_job_interval
                                               / 24)
                                        AND  nj.fac_notificatie_job_nextrun;

------ 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
