--
-- $Id$
--
-- Script containing customer specific sql statements for the FACILITOR database

DEFINE thisfile = 'TAYL.SQL'
DEFINE dbuser   = 'TAYL'

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

-------------------------------
--- DOMEIN-VIEWS --------------
-------------------------------

CREATE OR REPLACE VIEW tayl_v_leverancierslijst
(
    PRS_BEDRIJF_KEY,
    BEDRIJF_NAAM,
    BEDRIJF_PLAATS,
    PRS_BEDRIJF_VERWIJDER
)
AS
    SELECT
       b.prs_bedrijf_key,
       b.prs_bedrijf_naam,
       b.prs_bedrijf_post_plaats,
       b.prs_bedrijf_verwijder
    FROM
    prs_bedrijf    b
    WHERE
    prs_bedrijf_intern IS NULL
    AND prs_bedrijf_verwijder IS NULL
    ORDER BY prs_bedrijf_naam
    ;


-- Lijst van Locatieleiders (tbv domeinview)
CREATE OR REPLACE VIEW tayl_v_medewerkers
(
    PRS_PERSLID_KEY,
    NAAM,
    AFDELING
)
AS
    SELECT
       p.prs_perslid_key,
       CASE WHEN p.prs_perslid_tussenvoegsel IS NULL
            THEN p.prs_perslid_voornaam || ' ' || p.prs_perslid_naam -- || ' (' || sp.prs_srtperslid_omschrijving || ')' 
            ELSE p.prs_perslid_voornaam || ' ' || p.prs_perslid_tussenvoegsel || ' ' || p.prs_perslid_naam --  || ' (' || sp.prs_srtperslid_omschrijving || ')'
            END
         naam,
       a.prs_afdeling_naam2
    FROM
    prs_perslid    p,
    prs_srtperslid sp,
    prs_v_afdeling a,
    prs_bedrijf    b
    WHERE
    p.prs_afdeling_key = a.prs_afdeling_key
    AND a.prs_bedrijf_key = b.prs_bedrijf_key  
    AND b.prs_bedrijf_key = 6  --  bedrijfs_key TAYL
    AND p.prs_srtperslid_key = sp.prs_srtperslid_key
    AND p.prs_perslid_verwijder IS NULL
    ORDER BY p.prs_perslid_naam
    ;

----------------------------------------
--- AUTOCAD-THEMA'S en LABELS ----------
----------------------------------------

-- Cust-label tekst bij werkplekreserveringen
--- Op basis van cad_v_label_deel_reservering aangevuld met hulpview tayl_v_label_werkplek_info om de objecten in tekening (wel/niet reserveerbaar) aan te vullen met informatie uit object-kenmerken (vast plek van... en werkplek voor alleen laptops)

-- hulpview...
CREATE OR REPLACE VIEW tayl_v_label_werkplek_info
(
   INS_DEEL_KEY,
   INS_DEEL_UPPER,
   RESERVEERBAAR,
   WAARDE
)
AS
   SELECT isd.ins_deel_key, 
          isd.ins_deel_upper,
          DECODE(kw.reserveerbaar, NULL, 'nee', 'ja')
           reserveerbaar,
          CASE WHEN isd.ins_srtdeel_key = 81 THEN ''                                                                                        -- leeg bureau...
               WHEN isd.ins_srtdeel_key = 41 AND kw.reserveerbaar IS NULL AND kw.vaste_werkplek_van IS NOT NULL THEN kw.vaste_werkplek_van  -- vast plek van...
               WHEN isd.ins_srtdeel_key = 41 AND kw.reserveerbaar IS NOT NULL AND kw.laptop_werkplek = 62 THEN 'laptop-plek'                -- reserveerbare plek voor alleen laptop (key = 62)
               ELSE NULL 
               END
           waarde
     FROM ins_v_aanwezigdeel isd,
          (SELECT d.ins_deel_key,
                  FLX.getdomeinwaarde (61,FLX.getflex('INS', 63, d.ins_deel_key)) 
                   vaste_werkplek_van,
                  FLX.getflex('INS', 62, d.ins_deel_key)      -- key 62 is laptop-werkplek
                   laptop_werkplek,
                  FLX.getflex('INS', 64, d.ins_deel_key)
                   werkplek_info,
                  (SELECT max(rd.res_deel_key) FROM res_deel rd WHERE rd.res_ins_deel_key = d.ins_deel_key AND rd.res_deel_verwijder IS NULL AND rd.res_discipline_key = 101 )
                   reserveerbaar
             FROM ins_deel d) kw
    WHERE isd.ins_discipline_key IN (81) -- werkplekken
          AND isd.ins_deel_key = kw.ins_deel_key;

CREATE OR REPLACE VIEW tayl_v_label_deel_res_datum
(
    fclt_f_datum,
    ins_deel_key,
    res_deel_omschrijving,
    waarde1,
    waarde,
    waarde3,
    waarde_html,
    waarde_html2
)
AS
    WITH
        datums
        AS
            (    SELECT TRUNC (SYSDATE) + LEVEL - 1 datum
                   FROM DUAL
             CONNECT BY LEVEL <= 42)
      SELECT datums.datum
                 fclt_f_datum,
             isd.res_ins_deel_key
                 ins_deel_key,
             res_deel_omschrijving,
                DECODE (naam, NULL, v.waarde, '') ||
                CHR (10)
             || LISTAGG (
                    DECODE (
                        naam,
                        NULL, '',
                           '[s75]'
                        || naam
                        || ' ('
                        || TO_CHAR (res_rsv_deel_van, 'HH24:MI')
                        || '-'
                        || DECODE (TRUNC (res_rsv_deel_tot),
                                   TRUNC (res_rsv_deel_van), TO_CHAR (res_rsv_deel_tot, 'HH24:MI'),
                                   TO_CHAR (res_rsv_deel_tot, 'DD-MM-YYYY HH24:MI'))
                        || ')'),
                    CHR (10))
                    WITHIN GROUP (ORDER BY res_rsv_deel_van)
                 waarde1,
                DECODE (naam, NULL, v.waarde, '') ||
                CHR (10)
             || LISTAGG (
                    DECODE (naam,
                            NULL, '',
                            '[s75]' || TO_CHAR (res_rsv_deel_van, 'HH24:MI') || ' ' || naam),
                    CHR (10))
                    WITHIN GROUP (ORDER BY res_rsv_deel_van)
                 waarde2,
                DECODE (naam, NULL, v.waarde, '') ||
                CHR (10)
             || LISTAGG (DECODE (naam, NULL, '', '[s40]' || naam), CHR (10))
                    WITHIN GROUP (ORDER BY res_rsv_deel_van)
                 waarde3,
             LISTAGG (
                 DECODE (
                     naam,
                     NULL, v.waarde,
                        '<span class="body">'
                     || v.waarde || ' '
                     || TO_CHAR (res_rsv_deel_van, 'HH24:MI')
                     || ' '
                     || naam
                     || '</span>'),
                 '<br>')
                 WITHIN GROUP (ORDER BY res_rsv_deel_van)
                 waarde_html,
             LISTAGG (DECODE (naam, NULL, v.waarde, '<span class="body">' || naam || '</span>'), '<br>')
                 WITHIN GROUP (ORDER BY res_rsv_deel_van)
                 waarde_html2
        FROM res_v_aanwezigdeel isd,
             datums,
             (SELECT datum,
                     res_ins_deel_key,
                     DECODE (p.prs_perslid_visibility,
                             1, pf.prs_perslid_naam_friendly,
                             a.prs_afdeling_omschrijving)
                         naam,
                     res_rsv_deel_van,
                     res_rsv_deel_tot
                FROM res_v_aanwezigdeel     r,
                     res_v_aanwezigrsv_deel rrd,
                     res_rsv_ruimte         rrr,
                     prs_v_perslid_fullnames pf,
                     prs_perslid            p,
                     prs_afdeling           a,
                     datums
               WHERE     r.res_deel_key = rrd.res_deel_key
                     AND rrd.res_rsv_ruimte_key = rrr.res_rsv_ruimte_key
                     AND rrr.res_rsv_ruimte_host_key = pf.prs_perslid_key
                     AND pf.prs_perslid_key = p.prs_perslid_key
                     AND p.prs_afdeling_key = a.prs_afdeling_key
                     AND datum + 1 >= res_rsv_deel_van
                     AND datum < res_rsv_deel_tot ) res,                          -- Bezet
            tayl_v_label_werkplek_info v
       WHERE isd.res_ins_deel_key = res.res_ins_deel_key(+) AND datums.datum = res.datum(+)
             AND isd.res_ins_deel_key = v.ins_deel_key
    GROUP BY datums.datum, isd.res_ins_deel_key, res_deel_omschrijving, v.waarde, naam
    UNION -- Voor alle NIET-reserveerbare objecten in de tekening de extra info erbij halen
    SELECT datums.datum
                 fclt_f_datum,
              v.ins_deel_key,
              v.ins_deel_upper,
              v.waarde waarde1,
              v.waarde waarde,
              v.waarde waarde3,
              v.waarde waarde_html,
              v.waarde waarde_html2
         FROM tayl_v_label_werkplek_info v, datums
        WHERE v.reserveerbaar = 'nee' 
    GROUP BY datums.datum, v.ins_deel_key, v.ins_deel_upper, v.waarde       
  ;

CREATE OR REPLACE VIEW tayl_v_thema_vloersoort
(
    ALG_RUIMTE_KEY,
    WAARDE,
    WAARDE_KEY
)
AS
    SELECT r.alg_ruimte_key,
           COALESCE (va.fac_usrdata_omschr, 'Onbekend'),
           va.fac_usrdata_key
      FROM alg_ruimte  r,
           (SELECT rr.alg_ruimte_key,
                   ud.fac_usrdata_omschr,
                   ud.fac_usrdata_key
              FROM alg_onrgoedkenmerk    ok,
                   fac_usrdata           ud,
                   fac_kenmerkdomein     rk,
                   alg_kenmerk           k,
                   alg_v_aanwezigruimte  rr
             WHERE     rk.fac_usrtab_key = ud.fac_usrtab_key
                   AND k.fac_kenmerkdomein_key = rk.fac_kenmerkdomein_key
                   AND TO_CHAR (ud.fac_usrdata_key) =
                       ok.alg_onrgoedkenmerk_waarde
                   AND ok.alg_kenmerk_key = 1040
                   AND k.alg_kenmerk_niveau = 'R'
                   AND k.alg_kenmerk_verwijder IS NULL
                   AND rr.alg_ruimte_key = ok.alg_onrgoed_key) va
     WHERE r.alg_ruimte_key = va.alg_ruimte_key(+);

CREATE OR REPLACE VIEW tayl_v_thema_set_res_wp
AS
    SELECT ins_deel_key, DECODE (rd.res_deel_key, NULL, 0, 1) waarde
      FROM ins_deel  d,
           (SELECT *
              FROM res_deel
             WHERE res_deel_verwijder IS NULL) rd
     WHERE     d.ins_deel_key = rd.res_ins_deel_key(+);

-------------------------------
--- PROCEDURES  ---------------
-------------------------------


-------------------------------
--- NOTI-JOBS   ---------------
-------------------------------

-- Contract-Rappel
--- Notificatie op contractbeheerder, verantwoordelijke en/of 2e aanspreekpunt
--- Onderstaand rapport is basisview en deze fungeert als bron voor de rappel-notificatie
CREATE OR REPLACE VIEW tayl_v_cnt_rappel_basis
AS
    SELECT d.ins_discipline_omschrijving,
           c.cnt_contract_key,
           c.cnt_contract_nummer_intern
           || DECODE (c.cnt_contract_versie,
                      NULL, '',
                      '.' || c.cnt_contract_versie)
               cnt_contract_nr,
           c.cnt_contract_looptijd_van begindatum,
           c.cnt_contract_looptijd_tot einddatum,
           cnt.cnt_getopzegdatum (c.cnt_contract_key) cnt_opzegdatum,
           cnt.cnt_getrappeldatum (c.cnt_contract_key) cnt_rappeldatum,
           DECODE (cnt.cnt_contract_status (c.cnt_contract_looptijd_van,
                                            cnt.cnt_getrappeldatum (c.cnt_contract_key),
                                            cnt.cnt_getopzegdatum (c.cnt_contract_key),
                                            c.cnt_contract_looptijd_tot),
                   0, lcl.l ('lcl_cnt_future'),
                   1, lcl.l ('lcl_cnt_topical'),
                   2, lcl.l ('lcl_cnt_warn'),
                   3, lcl.l ('lcl_cnt_cancel'),
                   4, lcl.l ('lcl_cnt_past'))
           fase_actief,
          DECODE (
             c.cnt_contract_status,
             0,
             DECODE (fac.getsetting ('cnt_contract_approval'),
                     1, lcl.l ('lcl_cnt_active_approval'),
                     lcl.l ('lcl_cnt_active')),
             1,
             lcl.l ('lcl_cnt_inactive'),
             2,
             lcl.l ('lcl_cnt_new'),
             3,
             lcl.l ('lcl_cnt_forapproval'))
           cnt_contract_status,
           (SELECT kc.cnt_kenmerkcontract_waarde
              FROM cnt_kenmerkcontract kc, cnt_kenmerk k
             WHERE     k.cnt_kenmerk_key = kc.cnt_kenmerk_key
                   AND kc.cnt_contract_key = c.cnt_contract_key
                   AND k.cnt_srtkenmerk_key = 22)        -- contractbeheerder
               vink_beheerder,
           (SELECT p.prs_perslid_email
              FROM prs_perslid p
             WHERE     p.prs_perslid_key = c.prs_perslid_key_beh
                   AND p.prs_perslid_verwijder IS NULL)
               beheerder_email,
           (SELECT kc.cnt_kenmerkcontract_waarde
              FROM cnt_kenmerkcontract kc, cnt_kenmerk k
             WHERE     k.cnt_kenmerk_key = kc.cnt_kenmerk_key
                   AND kc.cnt_contract_key = c.cnt_contract_key
                   AND k.cnt_srtkenmerk_key = 23) -- contractverantwoordelijke
               vink_verantwoordelijke,
           (SELECT p.prs_perslid_email
              FROM prs_perslid p
             WHERE     p.prs_perslid_key = c.prs_perslid_key_eig
                   AND p.prs_perslid_verwijder IS NULL)
               veantwoordelijke_email,
           (SELECT kc.cnt_kenmerkcontract_waarde
              FROM cnt_kenmerkcontract kc, cnt_kenmerk k
             WHERE     k.cnt_kenmerk_key = kc.cnt_kenmerk_key
                   AND kc.cnt_contract_key = c.cnt_contract_key
                   AND k.cnt_srtkenmerk_key = 25)            -- rappel 2e aanspreekpunt
               vink_2e_aanspreekpunt,
           (SELECT p.prs_perslid_email
              FROM prs_perslid p
             WHERE     p.prs_perslid_key = (SELECT fac.safe_to_number(kc.cnt_kenmerkcontract_waarde)
                                              FROM cnt_kenmerkcontract kc, cnt_kenmerk k
                                             WHERE     k.cnt_kenmerk_key = kc.cnt_kenmerk_key
                                                   AND kc.cnt_contract_key = c.cnt_contract_key
                                                   AND k.cnt_srtkenmerk_key = 21)
                   AND p.prs_perslid_verwijder IS NULL)
               tweede_aanspreekpunt_email
      FROM cnt_v_aanwezigcontract c, ins_tab_discipline d
     WHERE     c.ins_discipline_key = d.ins_discipline_key
           AND d.ins_discipline_module = 'CNT';


-- TAYLOR: Contractbeheerder(_eig) is Beheerder/Administrateur en de Contractverantwoordelijke (_beh) is 1e  aanspreekpunt die beslist over wel/niet verlengen. Tevens optie om 2e aanspreekpunt mee te nemen in rappel
CREATE OR REPLACE VIEW tayl_v_noti_cntreminder
(
   code,
   sender,
   receiver,
   text,
   key,
   xkey,
   xemail,
   xmobile
)
AS                 -- Op rappel-datum naar de Beheerder/Administrateur sturen
   SELECT 'CNTMAI',
          NULL,
          c.prs_perslid_key_beh,
          'TER INFO: Rappel verstuurd voor contract ' || c.cnt_contract_nummer_intern
          || DECODE (c.cnt_contract_versie, NULL, '', '.' || c.cnt_contract_versie)
          || ' (' || c.cnt_contract_omschrijving || ' ' || b.prs_bedrijf_naam || ')'
          || ' - Moet uiterlijk per ' || TO_CHAR (cnt.cnt_getopzegdatum (c.cnt_contract_key), 'dd-mm-yyyy')
          || ' worden verlengd of opgezegd.',
          c.cnt_contract_key,
          NULL,
          NULL,
          NULL
     FROM tayl_v_cnt_rappel_basis v, cnt_v_aanwezigcontract c, prs_bedrijf b
    WHERE c.cnt_prs_bedrijf_key = b.prs_bedrijf_key
          AND v.cnt_contract_key = c.cnt_contract_key
          AND v.vink_beheerder = 1 
          AND c.cnt_contract_status = 0
          AND cnt.cnt_getrappeldatum (c.cnt_contract_key) = TRUNC (SYSDATE)
          AND c.prs_perslid_key_beh <> c.prs_perslid_key_eig -- als administrateur gelijk aan 1e aanspreekpunt dan dan sturen we de info-mail niet uit
          AND NOT EXISTS -- kenmerkveld 'Opgezegd' staat uit
          (SELECT km.cnt_contract_key
             FROM cnt_kenmerkcontract km, cnt_kenmerk k
            WHERE km.cnt_contract_key = c.cnt_contract_key AND km.cnt_kenmerk_key = k.cnt_kenmerk_key AND k.cnt_srtkenmerk_key = 4)
   UNION ALL     -- Op rappel-datum ACTIE-mail naar het 1e aanspreekpunt sturen (contractverantwoordelijke)
   SELECT 'CUST01',
          NULL,
          c.prs_perslid_key_eig,
          'ACTIE: Rappel verstuurd voor contract ' || c.cnt_contract_nummer_intern
          || DECODE (c.cnt_contract_versie, NULL, '', '.' || c.cnt_contract_versie)
          || ' (' || c.cnt_contract_omschrijving || ' ' || b.prs_bedrijf_naam || ')'
          || ' - Moet uiterlijk per ' || TO_CHAR (cnt.cnt_getopzegdatum (c.cnt_contract_key), 'dd-mm-yyyy')
          || ' worden verlengd of opgezegd.',
          c.cnt_contract_key,
          NULL,
          NULL,
          NULL
     FROM tayl_v_cnt_rappel_basis v, cnt_v_aanwezigcontract c, prs_bedrijf b
    WHERE c.cnt_prs_bedrijf_key = b.prs_bedrijf_key
          AND v.cnt_contract_key = c.cnt_contract_key
          AND v.vink_verantwoordelijke = 1 
          AND c.cnt_contract_status = 0
          AND cnt.cnt_getrappeldatum (c.cnt_contract_key) = TRUNC (SYSDATE)
          AND c.prs_perslid_key_eig IS NOT NULL
          AND NOT EXISTS  -- kenmerkveld 'Opgezegd' staat uit
          (SELECT km.cnt_contract_key
             FROM cnt_kenmerkcontract km, cnt_kenmerk k
            WHERE km.cnt_contract_key = c.cnt_contract_key AND km.cnt_kenmerk_key = k.cnt_kenmerk_key AND k.cnt_srtkenmerk_key = 4)
   UNION ALL     -- Op rappel-datum ACTIE-mail naar het tweede aanspreekpunt
   SELECT 'CUST02',
          NULL,
          NULL,
          'TER INFO: Rappel verstuurd voor contract ' || c.cnt_contract_nummer_intern
          || DECODE (c.cnt_contract_versie, NULL, '', '.' || c.cnt_contract_versie)
          || ' (' || c.cnt_contract_omschrijving || ' ' || b.prs_bedrijf_naam || ')'
          || ' - Moet uiterlijk per ' || TO_CHAR (cnt.cnt_getopzegdatum (c.cnt_contract_key), 'dd-mm-yyyy')
          || ' worden verlengd of opgezegd.',
          c.cnt_contract_key,
          NULL,
          v.tweede_aanspreekpunt_email,
          NULL
     FROM tayl_v_cnt_rappel_basis v, cnt_v_aanwezigcontract c, prs_bedrijf b
    WHERE c.cnt_prs_bedrijf_key = b.prs_bedrijf_key
          AND v.cnt_contract_key = c.cnt_contract_key
          AND v.vink_2e_aanspreekpunt = 1
          AND c.cnt_contract_status = 0
          AND cnt.cnt_getrappeldatum (c.cnt_contract_key) = TRUNC (SYSDATE)
          AND NOT EXISTS  -- kenmerkveld 'Opgezegd' staat uit
          (SELECT km.cnt_contract_key
             FROM cnt_kenmerkcontract km, cnt_kenmerk k
            WHERE km.cnt_contract_key = c.cnt_contract_key AND km.cnt_kenmerk_key = k.cnt_kenmerk_key AND k.cnt_srtkenmerk_key = 4) ;


-------------------------------
--- RAPPORTAGES ---------------
-------------------------------

CREATE OR REPLACE VIEW tayl_v_medewerkers_werktijden
(
    PRS_PERSLID_KEY,
    PRS_PERSLID_NAAM,
    PRS_PERSLID_AFDELING,
    MAANDAG,
    MAANDAG_LOCATIE,
    DINSDAG,
    DINSDAG_LOCATIE,
    WOENSDAG,
    WOENSDAG_LOCATIE,
    DONDERDAG,
    DONDERDAG_LOCATIE,
    VRIJDAG,
    VRIJDAG_LOCATIE,
    WERKWEEK_TOELICHTING
)
AS
SELECT
       p.prs_perslid_key,
       CASE WHEN p.prs_perslid_tussenvoegsel IS NULL
            THEN p.prs_perslid_voornaam || ' ' || p.prs_perslid_naam || ' (' || sp.prs_srtperslid_omschrijving || ')' 
            ELSE p.prs_perslid_voornaam || ' ' || p.prs_perslid_tussenvoegsel || ' ' || p.prs_perslid_naam || ' (' || sp.prs_srtperslid_omschrijving || ')'
            END
         naam,
       a.prs_afdeling_naam2,
       CASE WHEN kw.ma_ochtend IS NULL and kw.ma_middag IS NULL THEN NULL
            WHEN kw.ma_ochtend IS NOT NULL and kw.ma_middag IS NULL THEN 'ochtend'
            WHEN kw.ma_ochtend IS NULL and kw.ma_middag IS NOT NULL THEN 'middag'
            WHEN kw.ma_ochtend IS NOT NULL and kw.ma_middag IS NOT NULL THEN 'hele dag'
            ELSE NULL
            END
         maandag,
       CASE WHEN kw.ma_ochtend IS NOT NULL OR kw.ma_middag IS NOT NULL THEN kw.ma_locatie
            ELSE NULL
            END
         maandag_locatie,
       CASE WHEN kw.di_ochtend IS NULL and kw.di_middag IS NULL THEN NULL
            WHEN kw.di_ochtend IS NOT NULL and kw.di_middag IS NULL THEN 'ochtend'
            WHEN kw.di_ochtend IS NULL and kw.di_middag IS NOT NULL THEN 'middag'
            WHEN kw.di_ochtend IS NOT NULL and kw.di_middag IS NOT NULL THEN 'hele dag'
            ELSE NULL
            END
         dinsdag,
       CASE WHEN kw.di_ochtend IS NOT NULL OR kw.di_middag IS NOT NULL THEN kw.di_locatie
            ELSE NULL
            END
         dinsdag_locatie,
       CASE WHEN kw.wo_ochtend IS NULL and kw.wo_middag IS NULL THEN NULL
            WHEN kw.wo_ochtend IS NOT NULL and kw.wo_middag IS NULL THEN 'ochtend'
            WHEN kw.wo_ochtend IS NULL and kw.wo_middag IS NOT NULL THEN 'middag'
            WHEN kw.wo_ochtend IS NOT NULL and kw.wo_middag IS NOT NULL THEN 'hele dag'
            ELSE NULL
            END
         woensdag,
       CASE WHEN kw.wo_ochtend IS NOT NULL OR kw.wo_middag IS NOT NULL THEN kw.wo_locatie
            ELSE NULL
            END
         woensdag_locatie,
       CASE WHEN kw.do_ochtend IS NULL and kw.do_middag IS NULL THEN NULL
            WHEN kw.do_ochtend IS NOT NULL and kw.do_middag IS NULL THEN 'ochtend'
            WHEN kw.do_ochtend IS NULL and kw.do_middag IS NOT NULL THEN 'middag'
            WHEN kw.do_ochtend IS NOT NULL and kw.do_middag IS NOT NULL THEN 'hele dag'
            ELSE NULL
            END
         donderdag,
       CASE WHEN kw.do_ochtend IS NOT NULL OR kw.do_middag IS NOT NULL THEN kw.do_locatie
            ELSE NULL
            END
         donderdag_locatie,
       CASE WHEN kw.vr_ochtend IS NULL and kw.vr_middag IS NULL THEN NULL
            WHEN kw.vr_ochtend IS NOT NULL and kw.vr_middag IS NULL THEN 'ochtend'
            WHEN kw.vr_ochtend IS NULL and kw.vr_middag IS NOT NULL THEN 'middag'
            WHEN kw.vr_ochtend IS NOT NULL and kw.vr_middag IS NOT NULL THEN 'hele dag'
            ELSE NULL
            END
         vrijdag,
       CASE WHEN kw.vr_ochtend IS NOT NULL OR kw.vr_middag IS NOT NULL THEN kw.vr_locatie
            ELSE NULL
            END
         vrijdag_locatie,
       kw.werkweek_toelichting
FROM
    prs_perslid p,
    prs_v_afdeling a,
    prs_bedrijf    b,
    prs_srtperslid sp,
    (SELECT p.prs_perslid_key,
            FLX.getflex('PRS',1000, p.prs_perslid_key, 'P') 
              werkweek_toelichting,
            FLX.getflex('PRS',1041, p.prs_perslid_key, 'P') 
              ma_ochtend,
            FLX.getflex('PRS',1051, p.prs_perslid_key, 'P')
              ma_middag,
            FLX.getdomeinwaarde (81, FLX.getflex('PRS',1056, p.prs_perslid_key, 'P'))
              ma_locatie,  
            FLX.getflex('PRS',1042, p.prs_perslid_key, 'P') 
              di_ochtend,
            FLX.getflex('PRS',1052, p.prs_perslid_key, 'P')
              di_middag,
            FLX.getdomeinwaarde (81, FLX.getflex('PRS',1057, p.prs_perslid_key, 'P'))
              di_locatie, 
            FLX.getflex('PRS',1043, p.prs_perslid_key, 'P') 
              wo_ochtend,
            FLX.getflex('PRS',1053, p.prs_perslid_key, 'P')
              wo_middag,
            FLX.getdomeinwaarde (81, FLX.getflex('PRS',1058, p.prs_perslid_key, 'P'))
              wo_locatie, 
            FLX.getflex('PRS',1044, p.prs_perslid_key, 'P') 
              do_ochtend,
            FLX.getflex('PRS',1054, p.prs_perslid_key, 'P')
              do_middag,
            FLX.getdomeinwaarde (81, FLX.getflex('PRS',1059, p.prs_perslid_key, 'P'))
              do_locatie, 
            FLX.getflex('PRS',1045, p.prs_perslid_key, 'P') 
              vr_ochtend,
            FLX.getflex('PRS',1055, p.prs_perslid_key, 'P')
              vr_middag,
            FLX.getdomeinwaarde (81, FLX.getflex('PRS',1060, p.prs_perslid_key, 'P'))
              vr_locatie
       FROM prs_perslid p) kw
     WHERE 
       p.prs_perslid_key = kw.prs_perslid_key
       AND p.prs_perslid_verwijder IS NULL
       AND p.prs_afdeling_key = a.prs_afdeling_key
       AND a.prs_bedrijf_key = b.prs_bedrijf_key  
       AND b.prs_bedrijf_key = 6  --  bedrijfs_key TAYL
       AND p.prs_srtperslid_key = sp.prs_srtperslid_key ;

-- Bronview voor QRC-codes en melden storingen op objecten
CREATE OR REPLACE VIEW tayl_v_rap_qr_deel
AS
SELECT user
        omgeving,
       fac_bookmark_naam,
       fac_bookmark_id,
       b.fac_bookmark_path,
       b.fac_bookmark_query,
       d.ins_discipline_omschrijving,
       d.ins_srtgroep_omschrijving,
       d.ins_srtdeel_omschrijving,
       d.ins_deel_omschrijving,
       (SELECT km.ins_kenmerkdeel_waarde
          FROM ins_kenmerkdeel km, ins_kenmerk k
         WHERE     km.ins_deel_key = d.ins_deel_key
               AND km.ins_kenmerk_key = k.ins_kenmerk_key
               AND k.ins_kenmerk_code = 'QRC_SERIENUMMER'
               AND km.ins_kenmerkdeel_verwijder IS NULL)
           qrc_serienummer,
       CASE
           WHEN (SELECT MAX (k.ins_kenmerk_key)
                   FROM ins_kenmerkdeel km, ins_kenmerk k
                  WHERE     km.ins_deel_key = d.ins_deel_key
                        AND km.ins_kenmerk_key = k.ins_kenmerk_key
                        AND k.ins_kenmerk_code = 'QRC_BESTICKEREN'
                        AND km.ins_kenmerkdeel_verwijder IS NULL)
                    IS NOT NULL
           THEN
               flx.getdomeinwaarde (2,
                                    flx.getflex (
                                        'INS',
                                        (SELECT MAX (k.ins_kenmerk_key)
                                           FROM ins_kenmerkdeel  km,
                                                ins_kenmerk      k
                                          WHERE     km.ins_deel_key =
                                                    d.ins_deel_key
                                                AND km.ins_kenmerk_key =
                                                    k.ins_kenmerk_key
                                                AND k.ins_kenmerk_code =
                                                    'QRC_BESTICKEREN'
                                                AND km.ins_kenmerkdeel_verwijder
                                                        IS NULL),
                                        d.ins_deel_key))
           ELSE
               'Nvt'
       END
           nog_bestickeren,
       CASE
           WHEN d.alg_locatie_key IS NOT NULL THEN 'Locatiegebonden'
           WHEN d.prs_perslid_key IS NOT NULL THEN 'Persoonsgebonden'
           ELSE 'Overig'
       END
           TYPE,
       d.alg_locatie_key,
       d.prs_perslid_key,
       CASE
           WHEN d.alg_locatie_key IS NOT NULL THEN d.alg_gebouw_naam
           WHEN d.prs_perslid_key IS NOT NULL THEN d.prs_perslid_volnaam
           ELSE ''
       END
           plaats,
       d.alg_plaatsaanduiding,
       d.ins_deel_aanmaak,
       d.ins_deel_key
  FROM fac_bookmark b, ins_v_deel_gegevens d
 WHERE     fac_bookmark_expire IS NULL
       AND fac_bookmark_id = 'jUY0LZPaCv9u2n6n'
       AND d.ins_discipline_key NOT IN (43, 81) -- Geen SYSTEMEN en WERKPLEKKEN
       AND (   d.ins_deel_vervaldatum IS NULL
            OR d.ins_deel_vervaldatum >= TRUNC (SYSDATE));


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