#ifdef CNT
/*  $Revision$
 *  $Id$
 */

CREATE_VIEW(cnt_discipline, 0)
AS SELECT * FROM ins_tab_discipline WHERE ins_discipline_module = 'CNT';

DEFINIEER_VIEW_AANWEZIG(cnt_discipline, ins_discipline_verwijder, cnt_v_aanwezigdiscipline, 0);
DEFINIEER_VIEW_AANWEZIG(cnt_contract, cnt_contract_verwijder, cnt_v_aanwezigcontract, 0);
DEFINIEER_VIEW_AANWEZIG(cnt_contract_plaats, cnt_contract_plaats_verwijder, cnt_v_aanwezigcontract_plaats, 0);
DEFINIEER_VIEW_AANWEZIG(cnt_contract_object, cnt_contract_object_verwijder, cnt_v_aanwezigcontract_object, 0);

CREATE_VIEW(cnt_v_contract_plaats,0) AS
SELECT L.alg_locatie_key                        cnt_plaats_key
,      'L'                                      cnt_plaats_code
,      L.alg_locatie_code               ||' ( '
||     L.alg_locatie_omschrijving       ||' )'  cnt_plaats_omschrijving
FROM   alg_v_aanweziglocatie L
UNION
SELECT T.alg_terreinsector_key
,      'T'
,      L.alg_locatie_code               ||' - '
||     T.alg_terreinsector_code         ||' ( '
||     T.alg_terreinsector_naam         ||')'
FROM   alg_v_aanweziglocatie       L
,      alg_v_aanwezigterreinsector T
WHERE  T.alg_locatie_key = L.alg_locatie_key
UNION
SELECT G.alg_gebouw_key
,      'G'
,      L.alg_locatie_code               ||' - '
||     G.alg_gebouw_code                ||' ( '
||     G.alg_gebouw_naam                ||' )'
FROM   alg_v_aanweziglocatie L
,      alg_v_aanweziggebouw  G
WHERE  G.alg_locatie_key = L.alg_locatie_key
UNION
SELECT V.alg_verdieping_key
,      'V'
,      L.alg_locatie_code               ||' - '
||     G.alg_gebouw_code                ||' - '
||     to_char(V.alg_verdieping_volgnr) ||' ( '
||     V.alg_verdieping_omschrijving    ||' )'
FROM   alg_v_aanweziglocatie    L
,      alg_v_aanweziggebouw     G
,      alg_v_aanwezigverdieping V
WHERE  V.alg_gebouw_key  = G.alg_gebouw_key
AND    G.alg_locatie_key = L.alg_locatie_key
UNION
SELECT R.alg_ruimte_key
,      'R'
,      L.alg_locatie_code               ||' - '
||     G.alg_gebouw_code                ||' - '
||     to_char(V.alg_verdieping_volgnr) ||' - '
||     R.alg_ruimte_upper_nr            ||' ( '
||     R.alg_ruimte_omschrijving        ||' )'
FROM   alg_v_aanweziglocatie    L
,      alg_v_aanweziggebouw     G
,      alg_v_aanwezigverdieping V
,      alg_v_aanwezigruimte     R
WHERE  R.alg_verdieping_key = V.alg_verdieping_key
AND    V.alg_gebouw_key     = G.alg_gebouw_key
AND    G.alg_locatie_key    = L.alg_locatie_key;



CREATE_VIEW(cnt_v_qvw_algemeen, 0)
(
   contract_key,
   internnr,
   externnr,
   beschrijving,
   discipline_key,
   contractsoort,
   typecontract_key,
   typecontract,
   ingangsdatum,
   rappeldatum,
   rappeltermijn,
   opzegdatum,
   opzegtermijn,
   einddatum,
   eigenaar,
   beheerder,
   uitvoerder,
   contactpersoon,
   kostenplaats,
   termijnbedrag,
   contractbedrag,
   locatie_key,
   locatie_code,
   gebouw_key,
   gebouw_code,
   terreinsector_key,
   terreinsector_code,
   verdieping_key,
   verdieping_omschrijving,
   ruimte_key,
   ruimte_nr
)
AS
   SELECT basis.contract_key,
          basis.internnr,
          basis.externnr,
          basis.beschrijving,
          basis.discipline_key,
          basis.contractsoort,
          basis.typecontract_key,
          basis.typecontract,
          basis.ingangsdatum,
          basis.rappeldatum,
          basis.rappeltermijn,
          basis.opzegdatum,
          basis.opzegtermijn,
          basis.einddatum,
          basis.eigenaar,
          basis.beheerder,
          basis.uitvoerder,
          basis.contactpersoon,
          basis.kostenplaats,
          basis.termijnbedrag,
          basis.contractbedrag,
          plaats.locatie_key,
          plaats.locatie_code,
          plaats.gebouw_key,
          plaats.gebouw_code,
          plaats.terreinsector_key,
          plaats.terreinsector_code,
          plaats.verdieping_key,
          plaats.verdieping_omschrijving,
          plaats.ruimte_key,
          plaats.ruimte_nr
     FROM    (SELECT cc.cnt_contract_key contract_key,
                     cc.cnt_contract_nummer_intern internnr,
                     cc.cnt_contract_nummer externnr,
                     cc.cnt_contract_omschrijving beschrijving,
                     cc.ins_discipline_key discipline_key,
                     cs.ins_discipline_omschrijving contractsoort,
                     tc.cnt_typecontract_key typecontract_key,
                     tc.cnt_typecontract_omschrijving typecontract,
                     TRUNC (COALESCE (cc.cnt_contract_looptijd_van, SYSDATE)) ingangsdatum,
                     TRUNC(COALESCE (cnt.cnt_getrappeldatum (cc.cnt_contract_key),
                                     COALESCE (cc.cnt_contract_looptijd_tot, SYSDATE)))
                        rappeldatum,
                     rt.cnt_termijn_omschrijving rappeltermijn,
                     TRUNC(COALESCE (cnt.cnt_getopzegdatum (cc.cnt_contract_key),
                                     COALESCE (cc.cnt_contract_looptijd_tot, SYSDATE)))
                        opzegdatum,
                     ot.cnt_termijn_omschrijving opzegtermijn,
                     TRUNC (COALESCE (cc.cnt_contract_looptijd_tot, SYSDATE)) einddatum,
                     (SELECT d.prs_afdeling_naam6
                        FROM prs_v_aanwezigafdeling d
                       WHERE d.prs_afdeling_key = cc.prs_afdeling_key_eig)
                        eigenaar,
                     (SELECT p.prs_perslid_naam
                             || DECODE (NVL (p.prs_perslid_voorletters, ''),
                                        '', '',
                                        ', ' || p.prs_perslid_voorletters)
                             || DECODE (NVL (p.prs_perslid_tussenvoegsel, ''),
                                        '', '',
                                        ' ' || p.prs_perslid_tussenvoegsel)
                             || DECODE (NVL (p.prs_perslid_voornaam, ''),
                                        '', '',
                                        ' (' || p.prs_perslid_voornaam || ')')
                        FROM prs_perslid p
                       WHERE p.prs_perslid_key = cc.prs_perslid_key_beh)
                        beheerder,
                     (SELECT b.prs_bedrijf_naam
                        FROM prs_bedrijf b
                       WHERE b.prs_bedrijf_key = cc.cnt_prs_bedrijf_key)
                        uitvoerder,
                     (SELECT c.prs_contactpersoon_naam
                             || DECODE (NVL (c.prs_contactpersoon_voorletters, ''),
                                        '', '',
                                        ', ' || c.prs_contactpersoon_voorletters)
                             || DECODE (NVL (c.prs_contactpersoon_tussenv, ''),
                                        '', '',
                                        ' ' || c.prs_contactpersoon_tussenv)
                             || DECODE (NVL (c.prs_contactpersoon_voornaam, ''),
                                        '', '',
                                        ' (' || c.prs_contactpersoon_voornaam || ')')
                                prs_contactpersoon_naam
                        FROM prs_contactpersoon c
                       WHERE c.prs_contactpersoon_key = cc.prs_contactpersoon_key)
                        contactpersoon,
                     (SELECT k.prs_kostenplaats_nr || ' ' || k.prs_kostenplaats_omschrijving
                        FROM prs_kostenplaats k
                       WHERE k.prs_kostenplaats_key = cc.prs_kostenplaats_key)
                        kostenplaats,
                     cc.cnt_contract_termijnkosten termijnbedrag,
                     cc.cnt_contract_kosten contractbedrag
                FROM cnt_contract cc,
                     cnt_discipline cs,
                     cnt_disc_params dp,
                     cnt_typecontract tc,
                     cnt_termijn rt,
                     cnt_termijn ot
               WHERE     cc.ins_discipline_key = cs.ins_discipline_key
                     AND cc.ins_discipline_key = dp.cnt_ins_discipline_key
                     AND dp.cnt_srtcontract_type = tc.cnt_typecontract_key
                     AND cc.cnt_contract_rappeltermijn = rt.cnt_termijn_key
                     AND cc.cnt_contract_opzegtermijn = ot.cnt_termijn_key
                     AND cc.cnt_contract_verwijder IS NULL) basis
          LEFT JOIN
             (SELECT cp.cnt_contract_key contract_key,
                     DECODE (
                        cp.cnt_alg_plaats_code,
                        'L',
                        cp.cnt_alg_plaats_key,
                        'G',
                        (SELECT l.alg_locatie_key
                           FROM alg_gebouw g, alg_locatie l
                          WHERE g.alg_gebouw_key = cp.cnt_alg_plaats_key
                                AND g.alg_locatie_key = l.alg_locatie_key),
                        'T',
                        (SELECT l.alg_locatie_key
                           FROM alg_terreinsector t, alg_locatie l
                          WHERE t.alg_terreinsector_key = cp.cnt_alg_plaats_key
                                AND t.alg_locatie_key = l.alg_locatie_key),
                        'V',
                        (SELECT l.alg_locatie_key
                           FROM alg_gebouw g, alg_locatie l, alg_verdieping v
                          WHERE     v.alg_verdieping_key = cp.cnt_alg_plaats_key
                                AND g.alg_gebouw_key = v.alg_gebouw_key
                                AND g.alg_locatie_key = l.alg_locatie_key),
                        'R',
                        (SELECT l.alg_locatie_key
                           FROM alg_gebouw g,
                                alg_locatie l,
                                alg_verdieping v,
                                alg_ruimte r
                          WHERE     r.alg_ruimte_key = cp.cnt_alg_plaats_key
                                AND v.alg_verdieping_key = r.alg_verdieping_key
                                AND g.alg_gebouw_key = v.alg_gebouw_key
                                AND g.alg_locatie_key = l.alg_locatie_key))
                        locatie_key,
                     DECODE (
                        cp.cnt_alg_plaats_code,
                        'L',
                        (SELECT l.alg_locatie_code
                           FROM alg_locatie l
                          WHERE l.alg_locatie_key = cp.cnt_alg_plaats_key),
                        'G',
                        (SELECT l.alg_locatie_code
                           FROM alg_gebouw g, alg_locatie l
                          WHERE g.alg_gebouw_key = cp.cnt_alg_plaats_key
                                AND g.alg_locatie_key = l.alg_locatie_key),
                        'T',
                        (SELECT l.alg_locatie_code
                           FROM alg_terreinsector t, alg_locatie l
                          WHERE t.alg_terreinsector_key = cp.cnt_alg_plaats_key
                                AND t.alg_locatie_key = l.alg_locatie_key),
                        'V',
                        (SELECT l.alg_locatie_code
                           FROM alg_gebouw g, alg_locatie l, alg_verdieping v
                          WHERE     v.alg_verdieping_key = cp.cnt_alg_plaats_key
                                AND g.alg_gebouw_key = v.alg_gebouw_key
                                AND g.alg_locatie_key = l.alg_locatie_key),
                        'R',
                        (SELECT l.alg_locatie_code
                           FROM alg_gebouw g,
                                alg_locatie l,
                                alg_verdieping v,
                                alg_ruimte r
                          WHERE     r.alg_ruimte_key = cp.cnt_alg_plaats_key
                                AND v.alg_verdieping_key = r.alg_verdieping_key
                                AND g.alg_gebouw_key = v.alg_gebouw_key
                                AND g.alg_locatie_key = l.alg_locatie_key))
                        locatie_code,
                     DECODE (cp.cnt_alg_plaats_code, 'G', cp.cnt_alg_plaats_key, NULL) gebouw_key,
                     DECODE (
                        cp.cnt_alg_plaats_code,
                        'G',
                        (SELECT g.alg_gebouw_code
                           FROM alg_gebouw g
                          WHERE g.alg_gebouw_key = cp.cnt_alg_plaats_key),
                        'V',
                        (SELECT g.alg_gebouw_code
                           FROM alg_gebouw g, alg_verdieping v
                          WHERE v.alg_verdieping_key = cp.cnt_alg_plaats_key
                                AND g.alg_gebouw_key = v.alg_gebouw_key),
                        'R',
                        (SELECT g.alg_gebouw_code
                           FROM alg_gebouw g, alg_verdieping v, alg_ruimte r
                          WHERE     r.alg_ruimte_key = cp.cnt_alg_plaats_key
                                AND v.alg_verdieping_key = r.alg_verdieping_key
                                AND g.alg_gebouw_key = v.alg_gebouw_key),
                        NULL)
                        gebouw_code,
                     DECODE (cp.cnt_alg_plaats_code, 'T', cp.cnt_alg_plaats_key, NULL)
                        terreinsector_key,
                     DECODE (cp.cnt_alg_plaats_code,
                             'T', (SELECT t.alg_terreinsector_code
                                     FROM alg_terreinsector t
                                    WHERE t.alg_terreinsector_key = cp.cnt_alg_plaats_key),
                             NULL)
                        terreinsector_code,
                     DECODE (cp.cnt_alg_plaats_code, 'V', cp.cnt_alg_plaats_key, NULL)
                        verdieping_key,
                     DECODE (
                        cp.cnt_alg_plaats_code,
                        'V',
                        (SELECT alg_verdieping_omschrijving
                           FROM alg_verdieping v
                          WHERE v.alg_verdieping_key = cp.cnt_alg_plaats_key),
                        'R',
                        (SELECT alg_verdieping_omschrijving
                           FROM alg_verdieping v, alg_ruimte r
                          WHERE r.alg_ruimte_key = cp.cnt_alg_plaats_key
                                AND v.alg_verdieping_key = r.alg_verdieping_key),
                        NULL)
                        verdieping_omschrijving,
                     DECODE (cp.cnt_alg_plaats_code, 'R', cp.cnt_alg_plaats_key, NULL) ruimte_key,
                     DECODE (cp.cnt_alg_plaats_code,
                             'R', (SELECT alg_ruimte_nr
                                     FROM alg_ruimte r
                                    WHERE r.alg_ruimte_key = cp.cnt_alg_plaats_key),
                             NULL)
                        ruimte_nr
                FROM cnt_contract_plaats cp
               WHERE cp.cnt_contract_plaats_verwijder IS NULL) plaats
          ON basis.contract_key = plaats.contract_key;


-- Een eerste versie
CREATE_VIEW(cnt_v_api_contracten, 1)
AS
    SELECT c.cnt_contract_key contract_key,
           c.cnt_contract_nummer contract_nummer,
           c.cnt_contract_omschrijving omschrijving,
           c.cnt_contract_looptijd_van looptijd_van,
           c.cnt_contract_looptijd_tot looptijd_tot,
           c.cnt_contract_kosten kosten,
           c.cnt_contract_nummer_intern nummer_intern,
           c.cnt_contract_korting korting,
           c.cnt_contract_contact_persoon contactpersoon,
           c.cnt_contract_document beschrijving,
           c.cnt_contract_status status,
           c.cnt_contract_termijnkosten termijnkosten,
           c.cnt_contract_opmerking opmerking,
           c.cnt_contract_versie versie,
           c.cnt_contract_verlenging verlenging,
           cm.cnt_contract_nummer mantelcontract,
           b.prs_bedrijf_naam bedrijf,
           a1.prs_afdeling_naam afdeling,
           d.ins_discipline_omschrijving discipline,
           p1.prs_perslid_naam_full eigenaar,
           p2.prs_perslid_naam_full beheerder,
           kp.prs_kostenplaats_omschrijving,
           ks.prs_kostensoort_oms kostensoort,
           t1.cnt_termijn_omschrijving opzegtermijn,
           pd.prs_dienst_omschrijving dienst,
           cp.prs_contactpersoon_naam contactpersoon_extern,
           c.ins_discipline_key fclt_3d_discipline_key,
           c.cnt_prs_afdeling_key fclt_3d_afdeling_key
      FROM cnt_contract c,
           cnt_contract cm,
           prs_bedrijf b,
           prs_afdeling a1,
           ins_tab_discipline d,
           prs_v_perslid_fullnames_all p1,
           prs_v_perslid_fullnames_all p2,
           prs_kostenplaats kp,
           prs_kostensoort ks,
           cnt_termijn t1,
           prs_dienst pd,
           prs_contactpersoon cp
     WHERE     c.cnt_prs_bedrijf_key = b.prs_bedrijf_key(+)
           AND c.cnt_prs_afdeling_key = a1.prs_afdeling_key(+)
           AND c.prs_contactpersoon_key = cp.prs_contactpersoon_key(+)
           AND c.ins_discipline_key = d.ins_discipline_key(+)
           AND c.prs_perslid_key_eig = p1.prs_perslid_key(+)
           AND c.prs_perslid_key_beh = p2.prs_perslid_key(+)
           AND c.prs_kostenplaats_key = kp.prs_kostenplaats_key(+)
           AND c.prs_kostensoort_key = ks.prs_kostensoort_key(+)
           AND c.cnt_contract_mantel_key = cm.cnt_contract_key(+)
           AND c.cnt_contract_opzegtermijn = t1.cnt_termijn_key
           AND c.prs_dienst_key = pd.prs_dienst_key(+)
           AND c.cnt_contract_verwijder IS NULL;

/* Formatted on 17-9-2013 16:56:26 (QP5 v5.115.810.9015) */
CREATE_VIEW(cnt_v_rap_expimp_cnt, 0)
(
   hide_f_result_order,
   contractnr,
   externnr,
   fclt_f_contractsoort,
   beschrijving,
   fclt_f_mantelnr,
   omschrijving,
   versie,
   fclt_f_dienst,
   fclt_f_eigenaar_afd,
   eigenaar_login,
   beheerder_login,
   opmerking,
   ingangsdatum,
   rappeldatum,
   opzegdatum,
   einddatum,
   fclt_f_bedrijfnaam,
   contactnaam,
   kostenplaatscode,
   contractbedrag,
   termijnbedrag,
   uurtarief,
   korting,
   locatiegebouw,
   verlengen,
   kenmerk1,
   kenmerk2,
   kenmerk3,
   kenmerk4,
   kenmerk5,
   kenmerk6,
   kenmerk7,
   kenmerk8,
   kenmerk9,
   kenmerk10,
   kenmerk11,
   kenmerk12,
   kenmerk13,
   kenmerk14,
   kenmerk15,
   kenmerk16,
   kenmerk17,
   kenmerk18,
   kenmerk19,
   kenmerk20,
   kenmerk21,
   kenmerk22,
   kenmerk23,
   kenmerk24,
   kenmerk25
)
AS
   WITH ck
          AS (SELECT   sk.vnr,
                       sk.cnt_srtkenmerk_key,
                       sk.cnt_srtkenmerk_omschrijving,
                       kw.cnt_contract_key,
                       kw.waarde
                FROM      (SELECT   ROWNUM vnr,
                                    cnt_srtkenmerk_key,
                                    cnt_srtkenmerk_omschrijving
                             FROM   (  SELECT   sk.cnt_srtkenmerk_key,
                                                sk.cnt_srtkenmerk_omschrijving
                                         FROM   cnt_srtkenmerk sk
                                        WHERE   sk.cnt_srtkenmerk_verwijder IS NULL
                                                AND sk.cnt_srtkenmerk_kenmerktype IN
                                                         ('C',
                                                          'D',
                                                          'N',
                                                          'R',
                                                          'S',
                                                          'X',
                                                          'B')
                                                AND EXISTS
                                                      (SELECT   1
                                                         FROM   cnt_kenmerk k
                                                        WHERE   k.cnt_kenmerk_verwijder IS NULL
                                                                AND k.cnt_srtkenmerk_key =
                                                                      sk.cnt_srtkenmerk_key)
                                     ORDER BY   sk.cnt_srtkenmerk_omschrijving))
                          sk
                       LEFT JOIN
                          (SELECT   sk.cnt_srtkenmerk_key,
                                    ck.cnt_contract_key,
                                    DECODE (
                                       sk.cnt_srtkenmerk_kenmerktype,
                                       'R',
                                       flx.getdomeinwaarde (
                                          sk.fac_kenmerkdomein_key,
                                          ck.cnt_kenmerkcontract_waarde
                                       ),
                                       'S',
                                       flx.getdomeinwaarde (
                                          sk.fac_kenmerkdomein_key,
                                          ck.cnt_kenmerkcontract_waarde
                                       ),
                                       ck.cnt_kenmerkcontract_waarde
                                    )
                                       waarde
                             FROM   cnt_kenmerkcontract ck,
                                    cnt_kenmerk k,
                                    cnt_srtkenmerk sk
                            WHERE   ck.cnt_kenmerkcontract_verwijder IS NULL
                                    AND ck.cnt_kenmerk_key =
                                          k.cnt_kenmerk_key
                                    AND k.cnt_kenmerk_verwijder IS NULL
                                    AND k.cnt_srtkenmerk_key =
                                          sk.cnt_srtkenmerk_key) kw
                       ON sk.cnt_srtkenmerk_key = kw.cnt_srtkenmerk_key)
   SELECT   0,
            'Contractnr' contractnr,
            'Externnr' externnr,
            'Contractsoort' contractsoort,
            'Beschrijving' beschrijving,
            'Mantelnr' mantelnr,
            'Omschrijving' omschrijving,
            'Versie' versie,
            'Dienst' dienst,
            'Contractafdelingcode' eigenaar_afd,
            'Contactpersoonlogin' eigenaar_login,
            'Contractbeheerderlogin' beheerder_login,
            'Opmerking' opmerking,
            'Ingangsdatum' ingangsdatum,
            'Rappeldatum' rappeldatum,
            'Opzegdatum' opzegdatum,
            'Einddatum' einddatum,
            'Bedrijfnaam' bedrijfnaam,
            'Contactnaam' contactnaam,
            'Kostenplaatscode' kostenplaatscode,
            'Contractbedrag' contractbedrag,
            'Termijnbedrag' termijnbedrag,
            'Uurtarief' uurtarief,
            'Korting' korting,
            'Locatiegebouw' locatiegebouw,
            'Verlengen' verlengen,
            TO_CHAR ( (SELECT MAX (cnt_srtkenmerk_omschrijving) FROM ck WHERE vnr = 1)) kenmerk1,
            TO_CHAR ( (SELECT MAX (cnt_srtkenmerk_omschrijving) FROM ck WHERE vnr = 2)) kenmerk2,
            TO_CHAR ( (SELECT MAX (cnt_srtkenmerk_omschrijving) FROM ck WHERE vnr = 3)) kenmerk3,
            TO_CHAR ( (SELECT MAX (cnt_srtkenmerk_omschrijving) FROM ck WHERE vnr = 4)) kenmerk4,
            TO_CHAR ( (SELECT MAX (cnt_srtkenmerk_omschrijving) FROM ck WHERE vnr = 5)) kenmerk5,
            TO_CHAR ( (SELECT MAX (cnt_srtkenmerk_omschrijving) FROM ck WHERE vnr = 6)) kenmerk6,
            TO_CHAR ( (SELECT MAX (cnt_srtkenmerk_omschrijving) FROM ck WHERE vnr = 7)) kenmerk7,
            TO_CHAR ( (SELECT MAX (cnt_srtkenmerk_omschrijving) FROM ck WHERE vnr = 8)) kenmerk8,
            TO_CHAR ( (SELECT MAX (cnt_srtkenmerk_omschrijving) FROM ck WHERE vnr = 9)) kenmerk9,
            TO_CHAR ( (SELECT MAX (cnt_srtkenmerk_omschrijving) FROM ck WHERE vnr = 10)) kenmerk10,
            TO_CHAR ( (SELECT MAX (cnt_srtkenmerk_omschrijving) FROM ck WHERE vnr = 11)) kenmerk11,
            TO_CHAR ( (SELECT MAX (cnt_srtkenmerk_omschrijving) FROM ck WHERE vnr = 12)) kenmerk12,
            TO_CHAR ( (SELECT MAX (cnt_srtkenmerk_omschrijving) FROM ck WHERE vnr = 13)) kenmerk13,
            TO_CHAR ( (SELECT MAX (cnt_srtkenmerk_omschrijving) FROM ck WHERE vnr = 14)) kenmerk14,
            TO_CHAR ( (SELECT MAX (cnt_srtkenmerk_omschrijving) FROM ck WHERE vnr = 15)) kenmerk15,
            TO_CHAR ( (SELECT MAX (cnt_srtkenmerk_omschrijving) FROM ck WHERE vnr = 16)) kenmerk16,
            TO_CHAR ( (SELECT MAX (cnt_srtkenmerk_omschrijving) FROM ck WHERE vnr = 17)) kenmerk17,
            TO_CHAR ( (SELECT MAX (cnt_srtkenmerk_omschrijving) FROM ck WHERE vnr = 18)) kenmerk18,
            TO_CHAR ( (SELECT MAX (cnt_srtkenmerk_omschrijving) FROM ck WHERE vnr = 19)) kenmerk19,
            TO_CHAR ( (SELECT MAX (cnt_srtkenmerk_omschrijving) FROM ck WHERE vnr = 20)) kenmerk20,
            TO_CHAR ( (SELECT MAX (cnt_srtkenmerk_omschrijving) FROM ck WHERE vnr = 21)) kenmerk21,
            TO_CHAR ( (SELECT MAX (cnt_srtkenmerk_omschrijving) FROM ck WHERE vnr = 22)) kenmerk22,
            TO_CHAR ( (SELECT MAX (cnt_srtkenmerk_omschrijving) FROM ck WHERE vnr = 23)) kenmerk23,
            TO_CHAR ( (SELECT MAX (cnt_srtkenmerk_omschrijving) FROM ck WHERE vnr = 24)) kenmerk24,
            TO_CHAR ( (SELECT MAX (cnt_srtkenmerk_omschrijving) FROM ck WHERE vnr = 25)) kenmerk25
     FROM   DUAL
   UNION ALL
   SELECT   1,
            x.cnt_contract_nummer_intern contractnr,
            x.cnt_contract_nummer externnr,
            x.contractsoort,
            x.cnt_contract_omschrijving beschrijving,
            x.mantelnr,
            x.cnt_contract_document omschrijving,
            x.cnt_contract_versie versie,
            x.dienst,
            x.afd_eig eigenaar_afd,
            x.login_eig eigenaar_login,
            x.login_beh beheerder_login,
            x.cnt_contract_opmerking opmerking,
            TO_CHAR (x.cnt_contract_looptijd_van, 'dd-mm-yyyy') ingangsdatum,
            TO_CHAR (cnt.cnt_getRappeldatum (x.cnt_contract_key),
                     'dd-mm-yyyy')
               rappeldatum,
            TO_CHAR (cnt.cnt_getOpzegdatum (x.cnt_contract_key),
                     'dd-mm-yyyy')
               opzegdatum,
            TO_CHAR (x.cnt_contract_looptijd_tot, 'dd-mm-yyyy') einddatum,
            x.bedrijfnaam,
            x.contactnaam,
            x.kostenplaatscode,
            TO_CHAR (x.cnt_contract_kosten) contractbedrag,
            TO_CHAR (x.cnt_contract_termijnkosten) termijnbedrag,
            TO_CHAR (x.cnt_contract_uurloon) uurtarief,
            TO_CHAR (x.cnt_contract_korting) korting,
            x.plaats locatiegebouw,
            TO_CHAR (x.cnt_contract_verlenging) verlengen,
            k1.waarde kenmerk1,
            k2.waarde kenmerk2,
            k3.waarde kenmerk3,
            k4.waarde kenmerk4,
            k5.waarde kenmerk5,
            k6.waarde kenmerk6,
            k7.waarde kenmerk7,
            k8.waarde kenmerk8,
            k9.waarde kenmerk9,
            k10.waarde kenmerk10,
            k11.waarde kenmerk11,
            k12.waarde kenmerk12,
            k13.waarde kenmerk13,
            k14.waarde kenmerk14,
            k15.waarde kenmerk15,
            k16.waarde kenmerk16,
            k17.waarde kenmerk17,
            k18.waarde kenmerk18,
            k19.waarde kenmerk19,
            k20.waarde kenmerk20,
            k21.waarde kenmerk21,
            k22.waarde kenmerk22,
            k23.waarde kenmerk23,
            k24.waarde kenmerk24,
            k25.waarde kenmerk25
     FROM                                                                              (SELECT   c.*,
                                                                                                 cd.ins_discipline_omschrijving
                                                                                                    contractsoort,
                                                                                                 cm.cnt_contract_nummer_intern
                                                                                                    mantelnr,
                                                                                                 d.prs_dienst_omschrijving
                                                                                                    dienst,
                                                                                                 a.prs_afdeling_naam
                                                                                                    afd_eig,
                                                                                                 eig.prs_perslid_oslogin
                                                                                                    login_eig,
                                                                                                 beh.prs_perslid_oslogin
                                                                                                    login_beh,
                                                                                                 b.prs_bedrijf_naam
                                                                                                    bedrijfnaam,
                                                                                                 cp.prs_contactpersoon_naam
                                                                                                    contactnaam,
                                                                                                 kp.prs_kostenplaats_nr
                                                                                                    kostenplaatscode,
                                                                                                 p.plaats
                                                                                          FROM   cnt_v_aanwezigcontract c,
                                                                                                 cnt_discipline cd,
                                                                                                 cnt_v_aanwezigcontract cm,
                                                                                                 prs_dienst d,
                                                                                                 prs_afdeling a,
                                                                                                 prs_v_aanwezigperslid eig,
                                                                                                 prs_v_aanwezigperslid beh,
                                                                                                 prs_v_aanwezigbedrijf b,
                                                                                                 prs_contactpersoon cp,
                                                                                                 prs_kostenplaats kp,
                                                                                                 (SELECT   DISTINCT
                                                                                                           cp.cnt_contract_key,
                                                                                                           COALESCE (
                                                                                                              l.alg_locatie_code,
                                                                                                              g.alg_gebouw_code
                                                                                                           )
                                                                                                              plaats
                                                                                                    FROM         cnt_contract_plaats cp
                                                                                                              LEFT JOIN
                                                                                                                 alg_v_aanweziglocatie l
                                                                                                              ON cp.cnt_alg_plaats_key =
                                                                                                                    l.alg_locatie_key
                                                                                                                 AND cp.cnt_alg_plaats_code =
                                                                                                                       'L'
                                                                                                           LEFT JOIN
                                                                                                              alg_v_aanweziggebouw g
                                                                                                           ON cp.cnt_alg_plaats_key =
                                                                                                                 g.alg_gebouw_key
                                                                                                              AND cp.cnt_alg_plaats_code =
                                                                                                                    'G'
                                                                                                   WHERE   cp.cnt_contract_plaats_verwijder IS NULL)
                                                                                                 p
                                                                                         WHERE   c.ins_discipline_key =
                                                                                                    cd.ins_discipline_key
                                                                                                 AND c.cnt_contract_mantel_key =
                                                                                                       cm.cnt_contract_key(+)
                                                                                                 AND c.prs_dienst_key =
                                                                                                       d.prs_dienst_key(+)
                                                                                                 AND c.prs_afdeling_key_eig =
                                                                                                       a.prs_afdeling_key
                                                                                                 AND c.prs_perslid_key_eig =
                                                                                                       eig.prs_perslid_key(+)
                                                                                                 AND c.prs_perslid_key_beh =
                                                                                                       beh.prs_perslid_key(+)
                                                                                                 AND c.cnt_prs_bedrijf_key =
                                                                                                       b.prs_bedrijf_key
                                                                                                 AND c.prs_kostenplaats_key =
                                                                                                       kp.prs_kostenplaats_key(+)
                                                                                                 AND c.prs_contactpersoon_key =
                                                                                                       cp.prs_contactpersoon_key(+)
                                                                                                 AND c.cnt_contract_key =
                                                                                                       p.cnt_contract_key(+))
                                                                                       x
                                                                                    LEFT JOIN
                                                                                       ck k1
                                                                                    ON x.cnt_contract_key = k1.cnt_contract_key AND k1.vnr = 1
                                                                                 LEFT JOIN
                                                                                    ck k2
                                                                                 ON x.cnt_contract_key = k2.cnt_contract_key AND k2.vnr = 2
                                                                              LEFT JOIN
                                                                                 ck k3
                                                                              ON x.cnt_contract_key = k3.cnt_contract_key AND k3.vnr = 3
                                                                           LEFT JOIN
                                                                              ck k4
                                                                           ON x.cnt_contract_key = k4.cnt_contract_key AND k4.vnr = 4
                                                                        LEFT JOIN
                                                                           ck k5
                                                                        ON x.cnt_contract_key = k5.cnt_contract_key AND k5.vnr = 5
                                                                     LEFT JOIN
                                                                        ck k6
                                                                     ON x.cnt_contract_key = k6.cnt_contract_key AND k6.vnr = 6
                                                                  LEFT JOIN
                                                                     ck k7
                                                                  ON x.cnt_contract_key = k7.cnt_contract_key AND k7.vnr = 7
                                                               LEFT JOIN
                                                                  ck k8
                                                               ON x.cnt_contract_key = k8.cnt_contract_key AND k8.vnr = 8
                                                            LEFT JOIN
                                                               ck k9
                                                            ON x.cnt_contract_key = k9.cnt_contract_key AND k9.vnr = 9
                                                         LEFT JOIN
                                                            ck k10
                                                         ON x.cnt_contract_key = k10.cnt_contract_key AND k10.vnr = 10
                                                      LEFT JOIN
                                                         ck k11
                                                      ON x.cnt_contract_key = k11.cnt_contract_key AND k11.vnr = 11
                                                   LEFT JOIN
                                                      ck k12
                                                   ON x.cnt_contract_key = k12.cnt_contract_key AND k12.vnr = 12
                                                LEFT JOIN
                                                   ck k13
                                                ON x.cnt_contract_key = k13.cnt_contract_key AND k13.vnr = 13
                                             LEFT JOIN
                                                ck k14
                                             ON x.cnt_contract_key = k14.cnt_contract_key AND k14.vnr = 14
                                          LEFT JOIN
                                             ck k15
                                          ON x.cnt_contract_key = k15.cnt_contract_key AND k15.vnr = 15
                                       LEFT JOIN
                                          ck k16
                                       ON x.cnt_contract_key = k16.cnt_contract_key AND k16.vnr = 16
                                    LEFT JOIN
                                       ck k17
                                    ON x.cnt_contract_key = k17.cnt_contract_key AND k17.vnr = 17
                                 LEFT JOIN
                                    ck k18
                                 ON x.cnt_contract_key = k18.cnt_contract_key AND k18.vnr = 18
                              LEFT JOIN
                                 ck k19
                              ON x.cnt_contract_key = k19.cnt_contract_key AND k19.vnr = 19
                           LEFT JOIN
                              ck k20
                           ON x.cnt_contract_key = k20.cnt_contract_key AND k20.vnr = 20
                        LEFT JOIN
                           ck k21
                        ON x.cnt_contract_key = k21.cnt_contract_key AND k21.vnr = 21
                     LEFT JOIN
                        ck k22
                     ON x.cnt_contract_key = k22.cnt_contract_key AND k22.vnr = 22
                  LEFT JOIN
                     ck k23
                  ON x.cnt_contract_key = k23.cnt_contract_key AND k23.vnr = 23
               LEFT JOIN
                  ck k24
               ON x.cnt_contract_key = k24.cnt_contract_key AND k24.vnr = 24
            LEFT JOIN
               ck k25
            ON x.cnt_contract_key = k25.cnt_contract_key AND k25.vnr = 25;

/* ROOT VIEWS for User defined Reports (UDR) */
/* NB: een contract komt net zo vaak voor als zijn scope */
CREATE_VIEW(cnt_v_udr_contract, 1)
(
   nummer,
   nummer_extern,
   versie,
   contractsoort,
   omschrijving,
   opmerking,
   contractpartij,
   contractafdeling,
   contracteigenaar,
   contractbeheerder,
   begindatum,
   einddatum,
   opzegdatum,
   rappeldatum,
   opzegtermijn,
   rappeltermijn,
   fase_actief,
   status,
   contract_key,
   fclt_3d_discipline_key,
   fclt_3d_afdeling_key,
   srtcontract_type,
   fclt_3d_locatie_key,
   locatie_oms,
   locatie_omschrijving,
   locatie_plaats,
   regio_omschrijving,
   district_omschrijving,
   locatie_code,
   gebouw,
   gebouw_naam,
   terreinsector_code,
   terreinsector_naam,
   verdieping_code,
   ruimte_nr,
   ruimte_omschrijving,
   discipline_omschrijving,
   kostensoortgroep,
   kostensoort,
   kpn,
   kpn_omschrijving,
   kosten,
   termijnkosten,
   factuurtermijn,
   jaarkosten,
   korting,
   dienst_omschrijving
)
AS
SELECT c.cnt_contract_nummer_intern,
       c.cnt_contract_nummer,
       c.cnt_contract_versie,
       lcl.x ('ins_discipline_omschrijving', cd.ins_discipline_key, cd.ins_discipline_omschrijving),
       c.cnt_contract_omschrijving,
       c.cnt_contract_document,
       COALESCE (b.prs_bedrijf_naam, afd2.prs_afdeling_naam, pf2.prs_perslid_naam_full),
       d.prs_afdeling_omschrijving,
       (SELECT prs_perslid_naam_full
          FROM prs_v_perslid_fullnames_all
         WHERE prs_perslid_key = prs_perslid_key_eig),
       (SELECT prs_perslid_naam_full
          FROM prs_v_perslid_fullnames_all
         WHERE prs_perslid_key = prs_perslid_key_beh),
       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,
       (SELECT lcl.x ('cnt_termijn_omschrijving', cnt_termijn_key, cnt_termijn_omschrijving)
          FROM cnt_termijn
         WHERE cnt_termijn_key = c.cnt_contract_opzegtermijn)
          cnt_opzegtermijn,
       (SELECT lcl.x ('cnt_termijn_omschrijving', cnt_termijn_key, cnt_termijn_omschrijving)
          FROM cnt_termijn
         WHERE cnt_termijn_key = c.cnt_contract_rappeltermijn)
          cnt_rappeltermijn,
       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,
       c.cnt_contract_key cnt_contract_key,
       COALESCE (c.ins_discipline_key, -1) disc_key,
       c.prs_afdeling_key_eig eigenaar_key,
       (SELECT lcl.x ('cnt_typecontract_omschrijving',
                      dp.cnt_srtcontract_type,
                      cnt_typecontract_omschrijving)
          FROM cnt_typecontract
         WHERE cnt_typecontract_key = dp.cnt_srtcontract_type)
          cnt_srtcontract_type,
       alg_locatie_key,
       alg_locatie_oms,
       alg_locatie_omschrijving,
       alg_locatie_plaats,
       alg_regio_omschrijving,
       alg_district_omschrijving,
       alg_locatie_code,
       alg_gebouw_code,
       alg_gebouw_naam,
       alg_terreinsector_code,
       alg_terreinsector_naam,
       alg_verdieping_code,
       alg_ruimte_nr,
       alg_ruimte_omschrijving,
       cd.ins_discipline_omschrijving ins_discipline_omschrijving,
       (SELECT ksg.prs_kostensoortgrp_oms
          FROM prs_kostensoortgrp ksg, prs_kostensoort ks
         WHERE ksg.prs_kostensoortgrp_key = ks.prs_kostensoortgrp_key
               AND ks.prs_kostensoort_key = c.prs_kostensoort_key)
          kostensoortgroep,
       ks.prs_kostensoort_oms kostensoort,
       kp.prs_kostenplaats_nr kpn,
       kp.prs_kostenplaats_omschrijving kpn_omschrijving,
       ROUND (
          DECODE (
             fac.getsetting ('cnt_scopeverdeling'),
             1,
             cloc.cnt_contract_plaats_gewicht,
             0,
             COALESCE (cloc.cnt_contract_plaats_gewicht, 1) * c.cnt_contract_kosten
             / (SELECT DECODE (SUM (COALESCE (cnt_contract_plaats_gewicht, 0)),
                               0, 1,
                               SUM (cnt_contract_plaats_gewicht))
                  FROM cnt_contract_plaats ccp
                 WHERE ccp.cnt_contract_key = c.cnt_contract_key),
             c.cnt_contract_kosten),
          2)
          kosten,
       c.cnt_contract_termijnkosten,
       (SELECT lcl.x ('cnt_termijn_omschrijving', cnt_termijn_key, cnt_termijn_omschrijving)
          FROM cnt_termijn
         WHERE cnt_termijn_key = c.cnt_contract_termijntermijn)
          factuurtermijn,
       DECODE (cnt.termijnjaarfactor (c.cnt_contract_termijntermijn),
               -1, TO_NUMBER (NULL),
               cnt.termijnjaarfactor (c.cnt_contract_termijntermijn) * cnt_contract_termijnkosten)
          jaarkosten,
       c.cnt_contract_korting,
       di.prs_dienst_omschrijving
  FROM prs_bedrijf b,
       cnt_v_aanwezigcontract c,
       prs_dienst di,
       prs_v_afdeling d,
       prs_afdeling afd2,
       prs_v_perslid_fullnames_all pf2,
       alg_district ad,
       alg_regio ar,
       cnt_disc_params dp,
       cnt_discipline cd,
       prs_kostenplaats kp,
       prs_kostensoort ks,
       (SELECT alg_locatie_omschrijving || ' (' || alg_locatie_code || ')' alg_locatie_oms,
               alg_locatie_omschrijving,
               alg_locatie_plaats,
               alg_locatie_code,
               alg_gebouw_code,
               alg_gebouw_naam,
               alg_terreinsector_code,
               alg_terreinsector_naam,
               alg_verdieping_code,
               alg_ruimte_nr,
               alg_ruimte_omschrijving,
               alg_district_key,
               cnt_contract_key,
               ll.alg_locatie_key,
               cnt_contract_plaats_gewicht
          FROM alg_locatie ll,
               alg_gebouw gg,
               alg_verdieping vv,
               alg_ruimte rr,
               alg_terreinsector tt,
               (SELECT cp.cnt_contract_key,
                       cp.cnt_alg_plaats_key alg_locatie_key,
                       NULL alg_gebouw_key,
                       NULL alg_terreinsector_key,
                       NULL alg_verdieping_key,
                       NULL alg_ruimte_key,
                       cnt_contract_plaats_gewicht
                  FROM cnt_contract_plaats cp
                 WHERE cnt_alg_plaats_code = 'L'
                UNION ALL
                SELECT cp.cnt_contract_key,
                       g.alg_locatie_key,
                       cp.cnt_alg_plaats_key alg_gebouw_key,
                       NULL alg_terreinsector_key,
                       NULL alg_verdieping_key,
                       NULL alg_ruimte_key,
                       cnt_contract_plaats_gewicht
                  FROM cnt_contract_plaats cp, alg_gebouw g
                 WHERE cnt_alg_plaats_code = 'G' AND cp.cnt_alg_plaats_key = g.alg_gebouw_key
                UNION ALL
                SELECT cp.cnt_contract_key,
                       t.alg_locatie_key,
                       NULL alg_gebouw_key,
                       cp.cnt_alg_plaats_key alg_terreinsector_key,
                       NULL alg_verdieping_key,
                       NULL alg_ruimte_key,
                       cnt_contract_plaats_gewicht
                  FROM cnt_contract_plaats cp, alg_terreinsector t
                 WHERE cnt_alg_plaats_code = 'T'
                       AND cp.cnt_alg_plaats_key = t.alg_terreinsector_key
                UNION ALL
                SELECT cp.cnt_contract_key,
                       g.alg_locatie_key,
                       g.alg_gebouw_key alg_gebouw_key,
                       NULL alg_terreinsector_key,
                       cp.cnt_alg_plaats_key alg_verdieping_key,
                       NULL alg_ruimte_key,
                       cnt_contract_plaats_gewicht
                  FROM cnt_contract_plaats cp, alg_gebouw g, alg_verdieping v
                 WHERE     cnt_alg_plaats_code = 'V'
                       AND cp.cnt_alg_plaats_key = v.alg_verdieping_key
                       AND v.alg_gebouw_key = g.alg_gebouw_key
                UNION ALL
                SELECT cp.cnt_contract_key,
                       g.alg_locatie_key,
                       g.alg_gebouw_key alg_gebouw_key,
                       NULL alg_terreinsector_key,
                       v.alg_verdieping_key alg_verdieping_key,
                       cp.cnt_alg_plaats_key alg_ruimte_key,
                       cnt_contract_plaats_gewicht
                  FROM cnt_contract_plaats cp,
                       alg_gebouw g,
                       alg_verdieping v,
                       alg_ruimte r
                 WHERE     cnt_alg_plaats_code = 'R'
                       AND cp.cnt_alg_plaats_key = r.alg_ruimte_key
                       AND r.alg_verdieping_key = v.alg_verdieping_key
                       AND v.alg_gebouw_key = g.alg_gebouw_key
                UNION ALL
                SELECT co.cnt_contract_key,
                       d.ins_alg_locatie_key,
                       NULL alg_gebouw_key,
                       NULL alg_terreinsector_key,
                       NULL alg_verdieping_key,
                       NULL alg_ruimte_key,
                       NULL cnt_contract_plaats_gewicht
                  FROM cnt_contract_object co, ins_deel d
                 WHERE co.cnt_ins_deel_key = d.ins_deel_key) scloc
         WHERE     ll.alg_locatie_key = scloc.alg_locatie_key
               AND gg.alg_gebouw_key(+) = scloc.alg_gebouw_key
               AND tt.alg_terreinsector_key(+) = scloc.alg_terreinsector_key
               AND vv.alg_verdieping_key(+) = scloc.alg_verdieping_key
               AND rr.alg_ruimte_key(+) = scloc.alg_ruimte_key) cloc
 WHERE     c.cnt_prs_bedrijf_key = b.prs_bedrijf_key(+)
       AND c.cnt_prs_afdeling_key = afd2.prs_afdeling_key(+)
       AND c.cnt_prs_perslid_key = pf2.prs_perslid_key(+)
       AND c.prs_dienst_key = di.prs_dienst_key(+)
       AND d.prs_afdeling_key = c.prs_afdeling_key_eig
       AND c.ins_discipline_key = dp.cnt_ins_discipline_key
       AND c.ins_discipline_key = cd.ins_discipline_key
       AND cloc.cnt_contract_key(+) = c.cnt_contract_key
       AND cloc.alg_district_key = ad.alg_district_key(+)
       AND ad.alg_regio_key = ar.alg_regio_key(+)
       AND c.prs_kostenplaats_key = kp.prs_kostenplaats_key(+)
       AND c.prs_kostensoort_key = ks.prs_kostensoort_key(+)
       AND c.cnt_contract_key IN
                (SELECT cnt_contract_key
                   FROM (SELECT cc.cnt_contract_key,
                                ins_discipline_key,
                                di.alg_regio_key,
                                ll.alg_district_key,
                                clk.alg_locatie_key
                           FROM (SELECT cp.cnt_contract_key, cp.cnt_alg_plaats_key alg_locatie_key
                                   FROM cnt_contract_plaats cp
                                  WHERE cnt_alg_plaats_code = 'L'
                                 UNION ALL
                                 SELECT cp.cnt_contract_key, g.alg_locatie_key
                                   FROM cnt_contract_plaats cp, alg_gebouw g
                                  WHERE cnt_alg_plaats_code = 'G'
                                        AND cp.cnt_alg_plaats_key = g.alg_gebouw_key
                                 UNION ALL
                                 SELECT cp.cnt_contract_key, t.alg_locatie_key
                                   FROM cnt_contract_plaats cp, alg_terreinsector t
                                  WHERE cnt_alg_plaats_code = 'T'
                                        AND cp.cnt_alg_plaats_key = t.alg_terreinsector_key
                                 UNION ALL
                                 SELECT co.cnt_contract_key, d.ins_alg_locatie_key
                                   FROM cnt_contract_object co, ins_deel d
                                  WHERE co.cnt_ins_deel_key = d.ins_deel_key) clk,
                                cnt_contract cc,
                                alg_locatie ll,
                                alg_district di
                          WHERE     cc.cnt_contract_key = clk.cnt_contract_key
                                AND ll.alg_locatie_key(+) = clk.alg_locatie_key
                                AND ll.alg_district_key = di.alg_district_key(+)) sc,
                        prs_v_afdeling_boom boom
                  WHERE boom.prs_afdeling_key = c.prs_afdeling_key_eig
                 UNION ALL
                 SELECT cnt_contract_key
                   FROM cnt_contract c, prs_v_afdeling_boom boom
                  WHERE NOT EXISTS (SELECT cnt_contract_key
                                      FROM cnt_contract_plaats cp
                                     WHERE cp.cnt_contract_key = c.cnt_contract_key)
                        AND NOT EXISTS
                              (SELECT cnt_contract_key
                                 FROM cnt_contract_object co
                                WHERE co.cnt_contract_key = c.cnt_contract_key
                                      AND co.cnt_ins_deel_key IS NOT NULL)
                        AND boom.prs_afdeling_key = c.prs_afdeling_key_eig);


CREATE_VIEW(cnt_v_udr_contractkenmerk_cnd, 1)
AS
   SELECT c.*,
          lcl.x ('skm.cnt_srtkenmerk_omschrijving',
                 skm.cnt_srtkenmerk_key,
                 cnt_srtkenmerk_omschrijving)
             kenmerk,
          CASE
             WHEN    skm.cnt_srtkenmerk_kenmerktype = 'R'
                  OR skm.cnt_srtkenmerk_kenmerktype = 'S'
             THEN
                flx.getdomeinwaarde (skm.fac_kenmerkdomein_key,
                                     km.cnt_kenmerkcontract_waarde)
             WHEN    skm.cnt_srtkenmerk_kenmerktype = 'C'
                  OR skm.cnt_srtkenmerk_kenmerktype = 'F'
             THEN
                km.cnt_kenmerkcontract_waarde
             ELSE
                NULL
          END
             waarde_c,
          CASE
             WHEN skm.cnt_srtkenmerk_kenmerktype = 'N'
                  OR skm.cnt_srtkenmerk_kenmerktype = 'B'
             THEN
                TO_NUMBER (km.cnt_kenmerkcontract_waarde)
             ELSE
                TO_NUMBER (NULL)
          END
             waarde_n,
          CASE
             WHEN skm.cnt_srtkenmerk_kenmerktype = 'D'
             THEN
                TO_DATE (km.cnt_kenmerkcontract_waarde, 'DD-MM-YYYY')
             ELSE
                TO_DATE (NULL)
          END
             waarde_d
     FROM cnt_v_udr_contract c,
          cnt_kenmerkcontract km,
          cnt_kenmerk K,
          cnt_srtkenmerk skm
    WHERE     km.cnt_contract_key = c.contract_key
          AND km.cnt_kenmerkcontract_verwijder IS NULL
          AND k.cnt_kenmerk_verwijder IS NULL
          AND skm.cnt_srtkenmerk_verwijder IS NULL
          AND km.cnt_kenmerk_key = k.cnt_kenmerk_key(+)
          AND k.cnt_srtkenmerk_key = skm.cnt_srtkenmerk_key(+);


REGISTERRUN('$Id$')

#endif // CNT
