--
-- $Id$
--
-- Script containing customer specific sql statements for the FACILITOR database
-- Voor dbuser invullen: - indien script voor 1 klant is: 'AADS' (de klantcode, zoals vermeld in fac_version_cust)
--                       - script is voor meerdere klanten: 'AAXX' (de groepcode, zoals vermeld in fac_version_group)
--                       - script is voor meerdere klanten met naam volgens een bepaald patroon: '^AA|^ASMS|^GULU|^NMMS|^RABO|^ZKHM'
-- Ook als het script gedraaid wordt voor de verkeerde cust wordt er een logfile gemaakt.
-- (dit in tegenstelling tot sample_xxxx.sql)

DEFINE thisfile = 'BAUS.SQL'
DEFINE dbuser   = 'BAUS'

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

CREATE OR REPLACE PROCEDURE baus_processemail (pfrom        IN VARCHAR2,
                                               pto          IN VARCHAR2,
                                               psubject     IN VARCHAR2,
                                               pbody        IN VARCHAR2,
                                               psessionid   IN VARCHAR2,
                                               pemailkey    IN NUMBER)
AS
    v_count             NUMBER;
    defaultstdmelding   fac_setting.fac_setting_default%TYPE;
    subject_regexp      fac_setting.fac_setting_default%TYPE;
    v_newkey            mld_melding.mld_melding_key%TYPE;
    v_mldnum            VARCHAR2 (4000);
    v_mldkey            mld_melding.mld_melding_key%TYPE;
    v_email             fac_notificatie.fac_notificatie_receiver_email%TYPE;
    v_check             NUMBER;
    v_pbody             VARCHAR2 (4000);
    v_folder_kkey       mld_kenmerk.mld_kenmerk_key%TYPE;
    -- kkey                mld_kenmerk.mld_kenmerk_key%TYPE;
    errormsg            fac_result.fac_result_waarde%TYPE;
BEGIN
    -- Check of de afzender een reply op een bestaande melding doet, in dat geval wordt dat in notities genoteerd.
    -- 1) Eerst uit het onderwerp het meldingnummer proberen te onderscheppen, uitgangspunt dat in het onderwerp het meldingnummer '1234' kan worden opgevist, met ervoor en erna een spatie
    -- 2) Het 1e nummer dat in het onderwerp staat wordt gezien als meldingnummer, eventuele andere nummers later in het onderwerp worden genegeerd.
    subject_regexp := '[[:digit:]]{1,}';

    v_pbody := pbody;

    v_mldnum :=
        REGEXP_SUBSTR (psubject,
                       subject_regexp,
                       1,
                       1,
                       'i');

    v_mldkey := fac.safe_to_number (v_mldnum);

    --- kijken of er inderdaad een melding bestaat met het gevonden nummer
    SELECT COUNT (m.mld_melding_key)
      INTO v_check
      FROM mld_melding m
     WHERE m.mld_melding_key = v_mldkey;

    IF v_check = 1
    THEN
        -- Bestaande melding gevonden dus we zetten de mail als notitie bij deze melding
        BEGIN
            INSERT INTO mld_melding_note (mld_melding_key,
                                          mld_melding_note_omschrijving,
                                          mld_melding_note_flag,
                                          prs_perslid_key)
                     VALUES (
                         v_mldkey,
                         SUBSTR (
                                psubject
                             || CHR (13)
                             || CHR (10)
                             || REPLACE (
                                    SUBSTR (v_pbody,
                                            1,
                                            4000 - (LENGTH (v_pbody) + 2)),
                                       CHR (13)
                                    || CHR (10)
                                    || CHR (13)
                                    || CHR (10),
                                    CHR (13) || CHR (10)),
                             1,
                             4000),            -- verwijder onnodige witregels
                         1,
                         3);

            --- belletje bij de melding zetten
            UPDATE mld_melding
               SET mld_melding_actiecode = 129
             WHERE mld_melding_key = v_mldkey;

            --- de huidige behandelaar krijgt een notificatie
            SELECT mld_melding_behandelaar_key
              INTO v_email
              FROM mld_melding
             WHERE mld_melding_key = v_mldkey;

            IF v_email IS NOT NULL
            THEN
                INSERT INTO fac_notificatie (fac_srtnotificatie_key,
                                             fac_notificatie_status,
                                             prs_perslid_key_receiver,
                                             fac_notificatie_receiver_email,
                                             fac_notificatie_oms,
                                             fac_notificatie_refkey,
                                             fac_notificatie_prioriteit)
                         VALUES (
                             70,                                    --- mldnob
                             2,
                             v_email,
                             NULL,
                                'Er is een opmerking geplaatst bij melding '
                             || TO_CHAR (v_mldkey),
                             v_mldkey,
                             2);
            END IF;

            -- Find the lowest volgnummer of the Folder-flexfield.
            SELECT MIN (k1.mld_kenmerk_key)
              INTO v_folder_kkey
              FROM mld_stdmelding      sm1,
                   ins_tab_discipline  td1,
                   mld_kenmerk         k1,
                   mld_srtkenmerk      sk1,
                   mld_melding         m
             WHERE     m.mld_stdmelding_key = sm1.mld_stdmelding_key
                   AND m.mld_melding_key = v_mldkey
                   AND sm1.mld_ins_discipline_key = td1.ins_discipline_key
                   AND k1.mld_kenmerk_verwijder IS NULL
                   AND k1.mld_srtkenmerk_key = sk1.mld_srtkenmerk_key
                   AND sk1.mld_srtkenmerk_kenmerktype = 'M'
                   AND (   (    k1.mld_stdmelding_key =
                                sm1.mld_stdmelding_key
                            AND k1.mld_kenmerk_niveau = 'S')
                        OR (    k1.mld_stdmelding_key =
                                td1.ins_discipline_key
                            AND k1.mld_kenmerk_niveau = 'D')
                        OR (    k1.mld_stdmelding_key =
                                td1.ins_srtdiscipline_key
                            AND k1.mld_kenmerk_niveau = 'T')
                        OR (k1.mld_kenmerk_niveau = 'A'));

            IF v_folder_kkey IS NOT NULL
            THEN
                INSERT INTO fac_result (fac_result_sessionid,
                                        fac_result_naam,
                                        fac_result_waarde)
                         VALUES (
                             psessionid,
                             'kenmerkpath',
                                'MLD\M'
                             || TO_CHAR (TRUNC (v_mldkey / 1000), 'FM0000')
                             || '___\M'
                             || v_mldkey
                             || '\'
                             || v_folder_kkey
                             || '\');
            END IF;

            fac.trackaction ('MLDTRK',
                             v_mldkey,
                             NULL,
                             NULL,
                             'Nieuwe notitie via Mail2melding');
        END;
    ELSE
        --- geen bestaande melding kunnen vinden dus dan een nieuwe aanmaken
        BEGIN
            INSERT INTO mld_melding (mld_melding_module,
                                     mld_meldbron_key,
                                     mld_melding_datum,
                                     mld_melding_onderwerp,
                                     mld_melding_omschrijving,
                                     mld_melding_status,
                                     mld_stdmelding_key,
                                     prs_perslid_key,
                                     prs_perslid_key_voor,
                                     mld_melding_email_ext,
                                     mld_melding_spoed)
                 VALUES (
                     'MLD',
                     4,                                               -- email
                     SYSDATE,
                     SUBSTR (psubject, 1, 60),
                     SUBSTR (
                         REPLACE (
                             SUBSTR (pbody, 1, 4000),
                             CHR (13) || CHR (10) || CHR (13) || CHR (10),
                             CHR (13) || CHR (10)),
                         1,
                         4000),                -- verwijder onnodige witregels
                     2,
                     1,
                     3,
                     3,
                     pfrom,
                     3)
              RETURNING mld_melding_key
                   INTO v_newkey;

            INSERT INTO fac_result (fac_result_sessionid,
                                    fac_result_naam,
                                    fac_result_waarde)
                     VALUES (psessionid,
                             'maillog',
                             'Geregistreerd onder melding ' || v_newkey);
        END;

        IF errormsg IS NOT NULL
        THEN
            INSERT INTO fac_result (fac_result_sessionid,
                                    fac_result_naam,
                                    fac_result_waarde)
                 VALUES (psessionid, 'errormsg', errormsg);
        END IF;
    END IF;
EXCEPTION
    WHEN OTHERS
    THEN
        fac.writelog (
            'PROCESSEMAIL',
            'W',
               'Mail kon niet verwerkt worden afzender: '
            || pfrom
            || '['
            || errormsg
            || ']',
               'OTHERS (error '
            || SQLCODE
            || '/'
            || SUBSTR (SQLERRM, 1, 100)
            || ')');

        INSERT INTO fac_result (fac_result_sessionid,
                                fac_result_naam,
                                fac_result_waarde)
                 VALUES (
                     psessionid,
                     'errormsg',
                     'Database fout - Neem contact op met uw systeembeheerder');
END baus_processemail;
/

CREATE OR REPLACE VIEW BAUS_V_RAP_TAKEN
(
    ins_deel_key,
    ins_deel_omschrijving,
    ins_deel_opmerking,
    laatste_controle,
    volgende_controle,
    status
)
AS
    SELECT ctr.ins_deel_key,
           ctr.ins_deel_omschrijving,
           ctr.ins_deel_opmerking,
           TRUNC (last_insp.ins_deelsrtcontrole_datum)     laatste_insp,
           TRUNC (ctr.ins_deelsrtcontrole_datum)           volgende_insp,
           ctr.status
      FROM (SELECT d.ins_deel_key,
                      d.ins_srtdeel_omschrijving
                   || ' '
                   || d.ins_deel_omschrijving    ins_deel_omschrijving,
                   d.ins_deel_opmerking,
                   fac.nextcyclusdatedeel (d.ins_deel_key,
                                           d.ins_srtcontrole_key,
                                           1)    ins_deelsrtcontrole_datum,
                   ''                            AS ctrmode,
                   prs_perslid_naam_full         perslid,
                   ''                            AS status
              FROM (SELECT sc.ins_srtcontrole_key,
                           d.ins_deel_key,
                           d.ins_deel_omschrijving,
                           d.ins_deel_opmerking,
                           sc.ins_srtcontrole_periode,
                           sd.ins_srtdeel_omschrijving,
                           pfa.prs_perslid_key,
                           pfa.prs_perslid_naam_full
                      FROM ins_srtcontrole              sc,
                           ins_discipline               di,
                           ins_v_aanwezigsrtgroep       sg,
                           ins_v_aanwezigsrtdeel        sd,
                           ins_v_aanwezigdeel           d,
                           prs_perslid                  p,
                           prs_v_perslid_fullnames_all  pfa
                     WHERE     sd.ins_srtdeel_key = d.ins_srtdeel_key
                           AND sg.ins_srtgroep_key = sd.ins_srtgroep_key
                           AND di.ins_discipline_key = sg.ins_discipline_key
                           AND COALESCE (d.ins_deel_vervaldatum, SYSDATE + 1) >=
                               SYSDATE
                           AND p.prs_perslid_key = 101
                           AND pfa.prs_perslid_key = 101) d
                   LEFT OUTER JOIN ins_srtcontroledl_xcp xcp
                       ON     xcp.ins_deel_key = d.ins_deel_key
                          AND xcp.ins_srtcontrole_key = d.ins_srtcontrole_key
             WHERE     COALESCE (xcp.ins_srtcontroledl_xcp_periode,
                                 d.ins_srtcontrole_periode) >
                       0
                   AND fac.nextcyclusdatedeel (d.ins_deel_key,
                                               d.ins_srtcontrole_key,
                                               1) <=
                       (SYSDATE + 42)
                   AND d.ins_deel_key NOT IN --- als een inspectie al is ingepland weegt dat zwaarder dan de oorspronkelijke datum, object komt op de lijst als plandatum komende maand is
                           (SELECT ins_deel_key
                              FROM ins_v_udr_deelinspect ins, ins_deel d
                             WHERE     ins_deelsrtcontrole_plandatum
                                           IS NOT NULL
                                   AND ins_deelsrtcontrole_datum IS NULL
                                   AND d.ins_deel_key = ins.deel_key
                                   AND d.ins_deel_verwijder IS NULL)
            UNION ALL
            SELECT d.ins_deel_key,
                      sd.ins_srtdeel_omschrijving
                   || ' '
                   || d.ins_deel_omschrijving    ins_deel_omschrijving,
                   d.ins_deel_opmerking,
                   ins_deelsrtcontrole_plandatum,
                   ''                            ctrmode,
                   perslid,
                   deelsrtcontrole_status
              FROM ins_v_udr_deelinspect ins, ins_deel d, ins_srtdeel sd
             WHERE     ins_deelsrtcontrole_plandatum IS NOT NULL
                   AND ins_deelsrtcontrole_datum IS NULL
                   AND d.ins_deel_key = ins.deel_key
                   AND d.ins_deel_verwijder IS NULL
                   AND sd.ins_srtdeel_key = d.ins_srtdeel_key
                   AND actief = 'ja'
                   AND ins_deelsrtcontrole_plandatum <= (SYSDATE + 42) --  AND ins_deelsrtcontrole_plandatum >= SYSDATE
                                                                      ) ctr,
           (  SELECT MAX (sc.ins_deelsrtcontrole_datum)
                         ins_deelsrtcontrole_datum,
                     sc.ins_deel_key,
                     MAX (sc.ins_deelsrtcontrole_key)
                         ins_deelsrtcontrole_key
                FROM ins_deelsrtcontrole sc
               WHERE sc.ins_deelsrtcontrole_status = 6
            GROUP BY sc.ins_deel_key) last_insp
     WHERE     ctr.ins_deel_key = last_insp.ins_deel_key(+)
           AND TRUNC (ctr.ins_deelsrtcontrole_datum) < TRUNC (SYSDATE + 42);

CREATE OR REPLACE PROCEDURE baus_import_taak_km (p_import_key IN NUMBER)
AS
BEGIN
    fac_import_genericcsv (p_import_key);
END baus_import_taak_km;
/

CREATE OR REPLACE PROCEDURE baus_update_taak_km (p_import_key IN NUMBER)
IS
    v_aanduiding     VARCHAR2 (200);
    v_errorhint      VARCHAR2 (1000);
    v_errormsg       VARCHAR2 (1000);
    oracle_err_num   NUMBER;
    oracle_err_mes   VARCHAR2 (200);
    v_count          NUMBER;

    CURSOR c IS
        SELECT i.fac_import_key,
               fac.safe_to_number (i.fac_imp_csv_col01)
                   ins_srtkenmerk_key,
               fac.safe_to_number (i.fac_imp_csv_col02)
                   ins_srtinstallatie_key,
               i.fac_imp_csv_col03
                   ins_kenmerk_niveau,                          -- is altijd C
               i.fac_imp_csv_col04
                   ins_kenmerk_bewerkniveau,                    -- is altijd D
               fac.safe_to_number (i.fac_imp_csv_col05)
                   ins_kenmerkvolgnummer,
               i.fac_imp_csv_col06
                   ins_kenmerk_omschrijving,
               i.fac_imp_csv_col07
                   ins_kenmerk_regexp,
               i.fac_imp_csv_col08
                   ins_kenmerk_default
          FROM fac_imp_csv i
         WHERE i.fac_import_key = p_import_key;
BEGIN
    FOR rec IN c
    LOOP
        BEGIN
            v_count := 0;

            SELECT COUNT (*)
              INTO v_count
              FROM INS_KENMERK k
             WHERE     k.ins_srtkenmerk_key = rec.ins_srtkenmerk_key
                   AND k.ins_srtinstallatie_key = rec.ins_srtinstallatie_key
                   AND (   k.ins_kenmerk_omschrijving =
                           rec.ins_kenmerk_omschrijving -- als er een alternatieve omschrijving is
                        OR (    k.ins_kenmerk_omschrijving IS NULL
                            AND rec.ins_kenmerk_omschrijving IS NULL)) -- of juist niet
                   AND k.ins_kenmerk_niveau = 'C'
                   AND k.ins_kenmerk_bewerkniveau = 'D';

            IF     v_count = 0
               AND UPPER (rec.ins_srtkenmerk_key) <> 'INS_SRTKENMERK_KEY'
            THEN
                BEGIN
                    v_errorhint :=
                           'Fout bij kenmerk voor taak '
                        || rec.ins_srtinstallatie_key;

                    INSERT INTO ins_kenmerk (ins_srtkenmerk_key,
                                             ins_srtinstallatie_key,
                                             ins_kenmerk_niveau,
                                             ins_kenmerk_bewerkniveau,
                                             ins_kenmerk_volgnummer,
                                             ins_kenmerk_omschrijving,
                                             ins_kenmerk_regexp,
                                             ins_kenmerk_default)
                         VALUES (rec.ins_srtkenmerk_key,
                                 rec.ins_srtinstallatie_key,
                                 'C',
                                 'D',
                                 rec.ins_kenmerkvolgnummer,
                                 rec.ins_kenmerk_omschrijving,
                                 rec.ins_kenmerk_regexp,
                                 rec.ins_kenmerk_default);
                EXCEPTION
                    WHEN OTHERS
                    THEN
                        oracle_err_num := SQLCODE;
                        oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
                        v_errormsg :=
                               v_errorhint
                            || ' ORACLE (error '
                            || oracle_err_num
                            || '/'
                            || oracle_err_mes
                            || ')';
                        fac.imp_writelog (
                            p_import_key,
                            'W',
                            v_aanduiding || v_errormsg,
                            'Kenmerk kan niet worden aangemaakt');
                        COMMIT;
                END;
            END IF;
        END;
    END LOOP;

    -- we ruimen de import tabel direct weer netjes op aangezien dit een generieke importtabel is
    DELETE FAC_IMP_CSV i
     WHERE i.fac_import_key = p_import_key;
END baus_update_taak_km;
/

CREATE OR REPLACE VIEW BAUS_V_RAP_GEPLANDE_TAKEN
(
    DEEL_KEY,
    DISCIPLINE,
    SOORT,
    GROEP,
    SOORTCODE,
    OMSCHRIJVING,
    PLAATSEIGENAAR,
    PLAATSEIGENAARTYPE,
    PLAATSAANDUIDING,
    EIGENAAR,
    EIGENAAR_KEY,
    OPMERKING,
    REGIO,
    DISTRICT,
    LOCATIE_CODE,
    LOCATIE_OMSCHRIJVING,
    LOCATIE_PLAATS,
    GEBOUWCODE,
    GEBOUW,
    TERREINSECTORCODE,
    TERREINSECTOR,
    VERDIEPINGCODE,
    RUIMTENR,
    WERKPLEKVOLGNR,
    WERKPLEK,
    UITLEENBAAR,
    UITGELEEND,
    RES_OPMERKING,
    BEHEERDER,
    VERVALDATUM,
    ACTIEF,
    AANTAL,
    [REDACTED],
    [REDACTED],
    FCLT_3D_LOCATIE_KEY,
    INS_DEELSRTCONTROLE_KEY,
    INS_SRTCONTROLE_KEY,
    CTR_DISCIPLINE_OMSCHRIJVING,
    SRTCONTROLE_OMSCHRIJVING,
    INS_DEELSRTCONTROLE_DATUM,
    CONTROLEMODE_OMSCHRIJVING,
    INS_DEELSRTCONTROLE_OPMERKING,
    PERSLID,
    INS_DEELSRTCONTROLE_DATUM_ORG,
    INS_DEELSRTCONTROLE_PLANDATUM,
    DEELSRTCONTROLE_STATUS,
    INS_DEELSRTCONTROLE_STATUS,
    DOCUMENT_VEREIST,
    DOCUMENT_BIJGESLOTEN,
    BEDRIJF,
    INSTRUCTIES
)
AS
    SELECT udr.deel_key,
           udr.discipline,
           udr.soort,
           udr.groep,
           udr.soortcode,
           udr.omschrijving,
           udr.plaatseigenaar,
           udr.plaatseigenaartype,
           udr.plaatsaanduiding,
           udr.eigenaar,
           udr.eigenaar_key,
           udr.opmerking,
           udr.regio,
           udr.district,
           udr.locatie_code,
           udr.locatie_omschrijving,
           udr.locatie_plaats,
           udr.gebouwcode,
           udr.gebouw,
           udr.terreinsectorcode,
           udr.terreinsector,
           udr.verdiepingcode,
           udr.ruimtenr,
           udr.werkplekvolgnr,
           udr.werkplek,
           udr.uitleenbaar,
           udr.uitgeleend,
           udr.res_opmerking,
           udr.beheerder,
           udr.vervaldatum,
           udr.actief,
           udr.aantal,
           udr.fclt_3d_discipline_key,
           udr.fclt_3d_afdeling_key,
           udr.fclt_3d_locatie_key,
           udr.ins_deelsrtcontrole_key,
           udr.ins_srtcontrole_key,
           udr.ctr_discipline_omschrijving,
           udr.srtcontrole_omschrijving,
           udr.ins_deelsrtcontrole_datum,
           udr.controlemode_omschrijving,
           udr.ins_deelsrtcontrole_opmerking,
           udr.perslid,
           udr.ins_deelsrtcontrole_datum_org,
           udr.ins_deelsrtcontrole_plandatum,
           udr.deelsrtcontrole_status,
           udr.ins_deelsrtcontrole_status,
           COALESCE (doc.document_vereist, 'Nee')
               document_vereist,
           COALESCE (doc.document_ontvangen, 'N.v.t.')
               document_bijgesloten,
           bedrijf.bedrijf,
           instructie.instructies
      FROM ins_v_udr_deelinspect  udr,
           (SELECT sc.ins_srtcontrole_key,
                   'Ja'                document_vereist,
                   COALESCE (DECODE (kw.ins_kmdeelsrtcontr_waarde, 1, 'Ja'),
                             'Nee')    AS document_ontvangen
              FROM ins_srtkenmerk      sk,
                   ins_kenmerk         k,
                   ins_srtcontrole     sc,
                   ins_kmdeelsrtcontr  kw
             WHERE     k.ins_srtkenmerk_key = sk.ins_srtkenmerk_key
                   AND k.ins_kenmerk_bewerkniveau = 'D'
                   AND k.ins_kenmerk_niveau = 'C'
                   AND sc.ins_srtcontrole_key = k.ins_srtinstallatie_key
                   AND k.ins_kenmerk_verwijder IS NULL
                   AND sk.ins_srtkenmerk_key = 161
                   AND kw.ins_kenmerk_key(+) = k.ins_kenmerk_key
                   AND UPPER (k.ins_kenmerk_omschrijving) =
                       'DOCUMENT ONTVANGEN') doc,
           (  SELECT d.ins_deel_key,
                     LISTAGG (b.prs_bedrijf_naam, CHR (10)) ---- scheidingsteken een enter
                         WITHIN GROUP (ORDER BY d.ins_deel_key)    bedrijf
                FROM ins_srtkenmerk sk,
                     ins_kenmerk    k,
                     ins_kenmerkdeel kd,
                     ins_deel       d,
                     prs_bedrijf    b
               WHERE     sk.ins_srtkenmerk_key = 41
                     AND k.ins_srtkenmerk_key = sk.ins_srtkenmerk_key
                     AND k.ins_kenmerk_bewerkniveau = 'D'
                     AND k.ins_kenmerk_verwijder IS NULL
                     AND d.ins_deel_key = kd.ins_deel_key
                     AND b.prs_bedrijf_key =
                         fac.safe_to_number (kd.ins_kenmerkdeel_waarde)
            GROUP BY d.ins_deel_key) bedrijf,
           (  SELECT sc.ins_srtcontrole_key,
                     LISTAGG (
                            k.ins_kenmerk_omschrijving
                         || ' '
                         || REPLACE (k.ins_kenmerk_default, '<br/>', CHR (10)),
                         CHR (10) || CHR (10))
                     WITHIN GROUP (ORDER BY sc.ins_srtcontrole_key)    instructies
                FROM ins_srtkenmerk sk, ins_kenmerk k, ins_srtcontrole sc
               WHERE     k.ins_srtkenmerk_key = sk.ins_srtkenmerk_key
                     AND k.ins_kenmerk_bewerkniveau = 'D'
                     AND k.ins_kenmerk_niveau = 'C'
                     AND sc.ins_srtcontrole_key = k.ins_srtinstallatie_key
                     AND k.ins_kenmerk_verwijder IS NULL
                     AND sk.ins_srtkenmerk_key = 61
            GROUP BY sc.ins_srtcontrole_key) instructie
     WHERE     bedrijf.ins_deel_key(+) = udr.deel_key
           AND instructie.ins_srtcontrole_key(+) = udr.ins_srtcontrole_key
           AND doc.ins_srtcontrole_key(+) = udr.ins_srtcontrole_key;

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