/* FAC_VIEEXP.SRC
 * $Revision$
 * $Id$
 *
 * Views die niet in de andere *_VIE.SRC kunnen omdat deze views gebruiken die dan nog niet gedefinieerd zijn.
 */

-- import:      FIP: Aanvullen technische bedrijfsadressen
-- importsheet: Inventarisatie Externe bedrijven, tabblad Technische adressen
-- importtabel: fac_imp_bedrijfadres
CREATE OR REPLACE VIEW fac_v_exp_bedrijfadres
AS
SELECT b.prs_bedrijf_naam               Bedrijfsnaam
     , b.prs_leverancier_nr             Leveranciernummer
     , a.prs_bedrijfadres_type          Kanaal
     , (SELECT m.mld_typeopdr_omschrijving
          FROM mld_typeopdr m
         WHERE m.mld_typeopdr_key = a.mld_typeopdr_key) Opdrachttype
     , a.prs_bedrijfadres_url           Adres
     , a.prs_bedrijfadres_ordermode     Ordermode
     , a.prs_bedrijfadres_certificate   Certificaat
     , a.prs_bedrijfadres_xsl           Xsl_template
     , a.prs_bedrijfadres_ext           Extensie
     , a.prs_bedrijfadres_attachfile    Vaste_bijlage
     , a.prs_bedrijfadres_username      Login
     , a.prs_bedrijfadres_password      Wachtwoord
     , a.prs_bedrijfadres_sender        Afzender
     , a.prs_bedrijfadres_replyaddress  Reply_adres
     , (SELECT p.prs_perslid_oslogin
          FROM prs_perslid p
         WHERE p.prs_perslid_key = a.prs_bedrijfadres_lockuser_key) Vaste_gebruiker
     , a.prs_bedrijfadres_lockexpire    Expire_days
  FROM prs_bedrijfadres a
     , prs_v_aanwezigbedrijf b
 WHERE a.prs_bedrijf_key = b.prs_bedrijf_key
;

-- import:      FIP: Aanvullen contactpersonen
-- importsheet: Inventarisatie Externe bedrijven, tabblad Contactpersonen
-- importtabel: fac_v_exp_contactpersoon
CREATE OR REPLACE VIEW fac_v_exp_contactpersoon
AS
SELECT b.prs_bedrijf_naam                Bedrijfsnaam
     , b.prs_leverancier_nr              Leveranciernummer
     , DECODE (u.prs_perslid_email, NULL
              , DECODE (u.prs_perslid_oslogin, NULL, NULL, 2), 1)  Persoonmatchcode
     , DECODE (u.prs_perslid_email, NULL
              , DECODE (u.prs_perslid_oslogin, NULL, NULL, u.prs_perslid_oslogin), u.prs_perslid_email) Persoonmatchwaarde
     , c.prs_contactpersoon_naam         ContactPersoonAchternaam
     , c.prs_contactpersoon_tussenv      Tussenvoegsel
     , c.prs_contactpersoon_voorletters  Voorletters
     , c.prs_contactpersoon_voornaam     Voornaam
     , c.prs_contactpersoon_aanhef       Titel
     , c.prs_contactpersoon_titel        Aanhef
     , c.prs_contactpersoon_telefoon_1   Telefoonnummer
     , c.prs_contactpersoon_telefoon_2   Mobiel
     , c.prs_contactpersoon_email        Email
     , c.prs_contactpersoon_functie      Functie
     , REPLACE (c.prs_contactpersoon_opmerking, CHR(13))  Opmerking
     , l.alg_locatie_code                Locatiecode
  FROM prs_contactpersoon c
     , prs_contactpersoon_locatie p
     , prs_v_aanwezigperslid u
     , prs_v_aanwezigbedrijf b
     , alg_v_aanweziglocatie l
 WHERE c.prs_bedrijf_key = b.prs_bedrijf_key
   AND c.prs_perslid_key = u.prs_perslid_key(+)
   AND c.prs_contactpersoon_key = p.prs_contactpersoon_key(+)
   AND p.alg_locatie_key = l.alg_locatie_key(+)
   AND c.prs_contactpersoon_verwijder IS NULL
;

-- import:      FIP: Aanvullen externe bedrijven
-- importsheet: Inventarisatie Externe bedrijven, tabblad Externe Bedrijven
-- importtabel: fac_imp_ext_bedrijf
-- NB: Overeenkomstdatum als varchar2 ophalen omdat alleen de datum (dd-mm-yyyy) ingelezen wordt.
--     Met trunc() blijft het een timestamp!
CREATE OR REPLACE VIEW fac_v_exp_ext_bedrijf
AS
SELECT b.prs_bedrijf_naam              Bedrijfsnaam
     , b.prs_leverancier_nr            Leveranciernummer
     , b.prs_bedrijf_bezoek_adres      Bezoek_adres
     , b.prs_bedrijf_bezoek_postcode   Bezoek_postcode
     , b.prs_bedrijf_bezoek_plaats     Bezoek_plaats
     , b.prs_bedrijf_bezoek_land       Bezoek_land
     , b.prs_bedrijf_post_adres        Post_adres
     , b.prs_bedrijf_post_postcode     Post_postcode
     , b.prs_bedrijf_post_plaats       Post_plaats
     , b.prs_bedrijf_post_land         Post_land
     , b.prs_bedrijf_telefoon          Bedrijf_telefoon
     , b.prs_bedrijf_fax               Bedrijf_fax
     , b.prs_bedrijf_email             Bedrijf_email
     , b.prs_bedrijf_contact_persoon   Contact_persoon
     , b.prs_bedrijf_contact_telefoon  Contact_telefoon
     , b.prs_bedrijf_contact_fax       Contact_fax
     , NULL                            Bedrijf_xsl
     , NULL                            Bedrijf_orderadres
     , CASE WHEN b.prs_bedrijf_leverancier = 1 THEN 'J' ELSE '' END Leverancier
     , CASE WHEN b.prs_bedrijf_uitvoerende = 1 THEN 'J' ELSE '' END Uitvoerende
     , CASE WHEN b.prs_bedrijf_contract    = 1 THEN 'J' ELSE '' END Contractant
     , CASE WHEN b.prs_bedrijf_huurder     = 1 THEN 'J' ELSE '' END Huurder
     , CASE WHEN b.prs_bedrijf_ingids      = 1 THEN 'J' ELSE '' END Tooningids
     , b.prs_bedrijf_uurloon           Uurloon
     , b.prs_overeenkomst_nr           Overeenkomstnummer
     , TO_CHAR(b.prs_overeenkomst_datum,'dd-mm-yyyy') Overeenkomstdatum
     , REPLACE (b.prs_bedrijf_opmerking, CHR(13))  Opmerking
     , d.prs_dienst_omschrijving       Dienst
     , CASE WHEN l.alg_locatie_key IS NULL
            THEN (SELECT MAX(v.alg_locatie_code) FROM alg_v_gebouw_gegevens v WHERE v.alg_gebouw_key  = l.alg_gebouw_key)
            ELSE (SELECT MAX(v.alg_locatie_code) FROM alg_v_gebouw_gegevens v WHERE v.alg_locatie_key = l.alg_locatie_key)
       END                             Locatiecode
     , (SELECT alg_gebouw_code
          FROM alg_v_gebouw_gegevens
         WHERE alg_gebouw_key = l.alg_gebouw_key
       )                               Gebouwcode
     , r.prs_relatietype_omschrijving  Relatietype
     , NULL                            Overig1  -- kenmerk1
     , NULL                            Overig2  -- kenmerk2
     , NULL                            Overig3  -- kenmerk3
  FROM prs_bedrijf b
     , prs_relatietype r
     , prs_bedrijfdienstlocatie l
     , prs_dienst d
 WHERE b.prs_relatietype_key = r.prs_relatietype_key(+)
   AND b.prs_bedrijf_key = l.prs_bedrijf_key(+)
   AND l.prs_dienst_key = d.prs_dienst_key(+)
   AND b.prs_bedrijf_verwijder IS NULL
   AND r.prs_relatietype_verwijder IS NULL
   AND b.prs_bedrijf_intern IS NULL
;

-- import:      FIP: 9-Aanvullen van inspectiedefinities
-- importsheet: Inventarisatie Inspecties
-- importtabel: fac_imp_inspectie
CREATE OR REPLACE VIEW fac_v_exp_inspectie
AS
SELECT a.discipline_oms   Disciplineomschrijving
     , a.srtgroep_oms     Groepsoortomschrijving
     , s.ins_srtdeel_code              Objectsoortcode
     , c.ins_srtcontrole_omschrijving  Controle_omschrijving
     , c.ins_srtcontrole_info          Controle_informatie
     , c.ins_srtcontrole_periode       Controle_periode
     , c.ins_srtcontrole_eenheid       Eenheid
     , c.ins_srtcontrole_mode          Controle_mode
     , c.ins_srtcontrole_bits          Bits
     , (SELECT t.ins_discipline_omschrijving
          FROM ctr_discipline t
         WHERE t.ins_discipline_key = c.ctr_discipline_key
       )                               Taakcategorie
   FROM ins_srtcontrole c
     , ins_srtdeel s
     , ins_v_allsrtinstallatie a
 WHERE c.ins_srtcontrole_niveau = a.niveau
   AND c.ins_srtinstallatie_key = a.ins_srtinstallatie_key
   AND a.ins_srtdeel_key = s.ins_srtdeel_key(+)
;

-- import:      FIP: 6-Aanvullen objecten
-- importsheet: Inventarisatie Objecten-56894
-- importtabel: fac_imp_ins
-- NB: Ingangsdatum en vervaldatum als varchar2 ophalen omdat alleen de datum (dd-mm-yyyy) ingelezen wordt.
--     Met trunc() blijft het een timestamp!
CREATE OR REPLACE VIEW fac_v_exp_ins
AS
   SELECT DISTINCT d.ins_discipline_omschrijving  Disciplineomschrijving
        , k.prs_kostensoort_oms                   Disciplinekostensoort
        , d.ins_srtgroep_omschrijving             Groepsoortomschrijving
        , sd.ins_srtdeel_code                     Objectsoortcode
        , sd.ins_srtdeel_omschrijving             Objectsoortomschrijving
        , id.ins_deel_omschrijving                Objectidentificatie
        , REPLACE (id.ins_deel_opmerking, CHR(13))  Objectopmerking
        , sd.ins_srtdeel_uitleenbaar              Reserveerbaar
        , sd.ins_srtdeel_eenheid                  Eenheid
        , sd.ins_srtdeel_prijs                    Prijs
        , l.alg_locatie_code                      Locatiecode
        , d.alg_gebouw_code                       Gebouwcode
        , d.alg_verdieping_code                   Bouwlaagvolgnummer
        , d.alg_ruimte_nr                         Ruimtenummer
        , DECODE(rd.res_deel_alg_level, -1,'', 0,'E', 1,'D', 2,'L', 3,'G', 4,'V', 5,'R')  Reserveringscope
        , DECODE(r.ins_discipline_min_level, 1,'O', 2,'V', 3,'R', 4,'P', 5,'W', '')       Catalogustype
        , r.ins_discipline_omschrijving           Catalogusnaam
        , c.prs_kostensoort_oms                   Cataloguskostensoort
        , NULL                                    Persoonmatchcode
        , NULL                                    Persoonmatchwaarde
        , TO_CHAR(id.ins_deel_aanmaak,'dd-mm-yyyy')      Ingangsdatum
        , TO_CHAR(id.ins_deel_vervaldatum,'dd-mm-yyyy')  Vervaldatum
        , id.ins_deel_aantal                      Aantal
        , id.ins_deel_externnr                    Externnr
        , NULL                                    Parentobjectsoortomschr
        , NULL                                    Parentobjectidentificatie
        , NULL                                    Kenmerk1
        , NULL                                    Kenmerk2
        , NULL                                    Kenmerk3
        , NULL                                    Kenmerk4
        , NULL                                    Kenmerk5
        , NULL                                    Kenmerk6
        , NULL                                    Kenmerk7
        , NULL                                    Kenmerk8
        , NULL                                    Kenmerk9
        , NULL                                    Kenmerk10
        , NULL                                    Kenmerk11
        , NULL                                    Kenmerk12
        , NULL                                    Kenmerk13
        , NULL                                    Kenmerk14
        , NULL                                    Kenmerk15
        , NULL                                    Kenmerk16
        , NULL                                    Kenmerk17
        , NULL                                    Kenmerk18
        , NULL                                    Kenmerk19
        , NULL                                    Kenmerk20
     FROM ins_v_deel_gegevens d
        , ins_discipline i
        , ins_srtdeel sd
        , alg_locatie l
        , alg_gebouw g
        , ins_deel id
        , prs_kostensoort k
        , prs_kostensoort c
        , res_deel rd
        , res_discipline r
    WHERE d.ins_srtdeel_key = sd.ins_srtdeel_key
      AND d.alg_locatie_key = l.alg_locatie_key(+)
      AND d.alg_gebouw_key = g.alg_gebouw_key(+)
      AND d.ins_deel_key = id.ins_deel_key
      AND d.ins_discipline_key = i.ins_discipline_key
      AND id.ins_deel_key = rd.res_ins_deel_key(+)
      AND rd.res_discipline_key = r.ins_discipline_key(+)
      AND i.prs_kostensoort_key = k.prs_kostensoort_key(+)
      AND r.prs_kostensoort_key = c.prs_kostensoort_key(+)
      AND id.ins_deel_verwijder IS NULL
;

-- import:      FIP: 5-Aanvullen servicedesk
-- importsheet: Inventarisatie Meldingen
-- importtabel: fac_imp_mld
CREATE OR REPLACE FORCE VIEW fac_v_exp_mld
AS
SELECT sd.ins_srtdiscipline_omschrijving        vakgroeptype
     , sd.ins_srtdiscipline_prefix              prefix
     , COALESCE(sd.ins_srtdiscipline_alg, 0)    plaatsgegevens
     , COALESCE(sd.ins_srtdiscipline_ins, 0)    objectgegevens
     , COALESCE(sd.ins_srtdiscipline_bes, 0)    bestelgegevens
     , md.ins_discipline_omschrijving           vakgroep
     , sm.mld_stdmelding_omschrijving           standaardmelding
     , mg.mld_stdmeldinggroep_naam              groep
     , ks.prs_kostensoort_oms                   kostensoort
     , REPLACE(mld.uitvoertijd_to_unit(sm.mld_stdmelding_t_accepttijd,   'U'), ',', '.') acceptatietijd
     , REPLACE(mld.uitvoertijd_to_unit(sm.mld_stdmelding_t_accept_pr1,   'U'), ',', '.') acceptatietijd_kritiek
     , REPLACE(mld.uitvoertijd_to_unit(sm.mld_stdmelding_t_accept_pr2,   'U'), ',', '.') acceptatietijd_hoog
     , REPLACE(mld.uitvoertijd_to_unit(sm.mld_stdmelding_t_accept_pr4,   'U'), ',', '.') acceptatietijd_laag
     , REPLACE(mld.uitvoertijd_to_unit(sm.mld_stdmelding_t_uitvoertijd,  'D'), ',', '.') uitvoertijd
     , REPLACE(mld.uitvoertijd_to_unit(sm.mld_stdmelding_t_uitvtijd_pr1, 'D'), ',', '.') uitvoertijd_kritiek
     , REPLACE(mld.uitvoertijd_to_unit(sm.mld_stdmelding_t_uitvtijd_pr2, 'D'), ',', '.') uitvoertijd_hoog
     , REPLACE(mld.uitvoertijd_to_unit(sm.mld_stdmelding_t_uitvtijd_pr4, 'D'), ',', '.') uitvoertijd_laag
     , mp.mld_disc_params_directklaar           directklaar
     , pd.prs_dienst_omschrijving               dienst
     , sm.mld_stdmelding_notfrontend            notfrontend
     , sm.alg_onrgoed_niveau                    alg_niveau
     , mt.mld_typeopdr_omschrijving             opdrachttype
     , sm.mld_stdmelding_hint                   hint
     , sm.mld_stdmelding_kopieerbaar            kopieerbaar
     , sm.mld_stdmelding_afmeldtext             tekst_bij_afmelden
     , DECODE(sm.mld_stdmelding_doublecheck, 1, 'i', 2, 'a', 3, 'b', 'n') dubbele_meldingen
     , mld_stdmelding_slabewaken                sla_bewaken
     , mld_stdmelding_objects_allowed           max_objecten
     , md.ins_discipline_image                  disc_image
     , sm.mld_stdmelding_image                  stdm_image
     , sm.mld_stdmelding_externnr               externnr
  FROM mld_stdmelding       sm
     , mld_discipline       md
     , ins_srtdiscipline    sd
     , mld_disc_params      mp
     , prs_dienst           pd
     , mld_stdmeldinggroep  mg
     , prs_kostensoort      ks
     , mld_typeopdr         mt
 WHERE sm.mld_ins_discipline_key = md.ins_discipline_key
   AND sm.mld_ins_discipline_key = mp.mld_disc_params_key(+)
   AND md.ins_srtdiscipline_key = sd.ins_srtdiscipline_key(+)
   AND sm.mld_stdmeldinggroep_key = mg.mld_stdmeldinggroep_key(+)
   AND sm.prs_kostensoort_key = ks.prs_kostensoort_key(+)
   AND sm.mld_typeopdr_key = mt.mld_typeopdr_key(+)
   AND sm.prs_dienst_key = pd.prs_dienst_key(+)
   AND sm.mld_stdmelding_verwijder IS NULL
   AND (    sm.mld_stdmelding_vervaldatum IS NULL
         OR sm.mld_stdmelding_vervaldatum > SYSDATE)
   AND md.ins_discipline_verwijder IS NULL
   AND sd.ins_srtdiscipline_verwijder IS NULL
;

-- import:      FIP: 1-Aanvullen districten t/m gebouwen
-- importsheet: Inventarisatie Vastgoed, tabblad Locaties
-- importtabel: fac_imp_onrgoed1
CREATE OR REPLACE FORCE VIEW fac_v_exp_onrgoed1
AS
SELECT r.alg_regio_omschrijving      Regio,
       d.alg_district_omschrijving   District,
       l.alg_locatie_code            Locatiecode,
       l.alg_locatie_omschrijving    Locatieomschrijving,
       l.alg_locatie_verantw         Contactpersoon,
       l.alg_locatie_verantw_tel     Telefoonnummer,
       l.alg_locatie_adres           Bezoekadres,
       l.alg_locatie_postcode        Postcode,
       l.alg_locatie_plaats          Plaats,
       l.alg_locatie_land            Land,
       l.alg_locatie_post_adres      Postadres,
       l.alg_locatie_post_postcode   Postpostcode,
       l.alg_locatie_post_plaats     Postplaats,
       l.alg_locatie_post_land       Postland,
       sg.alg_srtgebouw_omschrijving Gebouwfunctie,
       g.alg_gebouw_code             Gebouwcode,
       g.alg_gebouw_naam             Gebouwnaam,
       g.alg_gebouw_adres            Gebouwadres,
       g.alg_gebouw_postcode         Gebouwpostcode,
       NULL                          kenmerk1,
       NULL                          kenmerk2,
       NULL                          kenmerk3,
       NULL                          kenmerk4,
       NULL                          kenmerk5,
       NULL                          kenmerk6,
       NULL                          kenmerk7,
       NULL                          kenmerk8,
       NULL                          kenmerk9,
       NULL                          kenmerk10
  FROM alg_gebouw     g,
       alg_srtgebouw  sg,
       alg_locatie    l,
       alg_district   d,
       alg_regio      r
 WHERE     g.alg_locatie_key = l.alg_locatie_key
       AND l.alg_district_key = d.alg_district_key
       AND d.alg_regio_key = r.alg_regio_key
       AND g.alg_srtgebouw_key = sg.alg_srtgebouw_key
       AND g.alg_gebouw_verwijder IS NULL
       AND l.alg_locatie_verwijder IS NULL
       AND (   l.alg_locatie_vervaldatum IS NULL
            OR l.alg_locatie_vervaldatum > TRUNC (SYSDATE))
       AND (   g.alg_gebouw_vervaldatum IS NULL
            OR TRUNC (g.alg_gebouw_vervaldatum) > TRUNC (SYSDATE))
;

-- import:      FIP: 2-Aanvullen bouwlagen en ruimten
-- importsheet: Inventarisatie Vastgoed, tabblad Ruimten
-- importtabel: fac_imp_onrgoed2
CREATE OR REPLACE VIEW fac_v_exp_onrgoed2
AS
SELECT l.alg_locatie_code               Locatiecode
     , g.alg_gebouw_code                Gebouwcode
     , v.alg_verdieping_volgnr          Bouwlaagvolgnummer
     , s.alg_srtruimte_omschrijving     Ruimtefunctie
     , r.alg_ruimte_nr                  Ruimtenummer
     , r.alg_ruimte_omschrijving        Ruimteomschrijving
     , r.alg_ruimte_bruto_vloeropp      Vloeroppervlak
     , pa.prs_afdeling_naam             Afdelingscode
     , ra.prs_ruimteafdeling_bezetting  Bezetting
     , CASE WHEN rb.aantal IS NULL
            THEN 0
            ELSE 1
        END                             ReserveerbareRuimte
     , rd.ins_discipline_omschrijving   Categorie
     , rp.res_disc_params_expire_dagen  Expiredagen
     , rr.res_ruimte_prijs              Prijs
     , ro.res_opstelling_omschrijving   Opstelling
     , rro.res_ruimte_opstel_bezoekers  AantalBezoekers
     , rr.res_ruimte_nr                 Naam
     , rr.res_ruimte_omschrijving       Omschrijving
     , NULL                             Kenmerk1
     , NULL                             Kenmerk2
     , NULL                             Kenmerk3
     , NULL                             Kenmerk4
     , NULL                             Kenmerk5
  FROM alg_v_aanweziglocatie l
     , alg_v_aanweziggebouw g
     , alg_v_aanwezigverdieping v
     , alg_v_aanwezigruimte r
     , alg_v_aanwezigsrtruimte s
     , prs_v_aanwezigruimteafdeling ra
     , prs_v_aanwezigafdeling pa
     , res_v_aanwezigalg_ruimte rar
     , res_v_aanwezigruimte rr
     , res_v_aanwezigdiscipline rd
     , res_disc_params rp
     , res_ruimte_opstelling rro
     , res_v_aanwezigopstelling ro
     , (SELECT rar.alg_ruimte_key
             , COUNT(*) aantal
          FROM res_v_aanwezigalg_ruimte rar
             , res_ruimte rr
         WHERE rar.res_ruimte_key = rr.res_ruimte_key
           AND rr.res_ruimte_verwijder IS NULL
           AND (  rr.res_ruimte_vervaldatum IS NULL
               OR rr.res_ruimte_vervaldatum > SYSDATE
               )
           AND rr.res_ruimte_cv = 0
         GROUP BY rar.alg_ruimte_key
       ) rb
 WHERE l.alg_locatie_key = g.alg_locatie_key
   AND g.alg_gebouw_key = v.alg_gebouw_key
   AND v.alg_verdieping_key = r.alg_verdieping_key
   AND r.alg_srtruimte_key = s.alg_srtruimte_key(+)
   AND r.alg_ruimte_key = ra.alg_ruimte_key(+)
   AND ra.prs_afdeling_key = pa.prs_afdeling_key(+)
   AND r.alg_ruimte_key = rar.alg_ruimte_key(+)
   AND rar.res_ruimte_key = rr.res_ruimte_key(+)
   AND rr.res_discipline_key = rd.ins_discipline_key(+)
   AND rd.ins_discipline_key = rp.res_ins_discipline_key(+)
   AND rr.res_ruimte_key = rro.res_ruimte_key(+)
   AND rro.res_opstelling_key = ro.res_opstelling_key(+)
   AND r.alg_ruimte_key = rb.alg_ruimte_key(+)
   AND rro.res_ruimte_opstel_verwijder IS NULL
   AND (g.alg_gebouw_vervaldatum IS NULL OR g.alg_gebouw_vervaldatum > TRUNC(SYSDATE))
   AND (rr.res_ruimte_vervaldatum IS NULL OR rr.res_ruimte_vervaldatum > TRUNC(SYSDATE));
;

-- import:      FIP: 3-Aanvullen organisatiestructuur
-- importsheet: Inventarisatie Organisatiestructuur
-- importtabel: fac_imp_organisatie
CREATE OR REPLACE VIEW fac_v_exp_organisatie
AS     -- import: FIP: 3-Aanvullen organisatiestructuur
       -- importsheet: ?
SELECT b.prs_bedrijf_naam           Bedrijfsnaam
     , ap.prs_afdeling_naam         Afdelingscodeparent
     , a.prs_afdeling_naam          Afdelingscode
     , a.prs_afdeling_omschrijving  Afdelingsomschrijving
     , k.prs_kostenplaats_nr        Kostenplaats
     , a.prs_afdeling_externid      Externid
  FROM prs_afdeling a
     , prs_afdeling ap
     , prs_kostenplaats k
     , prs_v_aanwezigbedrijf b
 WHERE a.prs_kostenplaats_key = k.prs_kostenplaats_key(+)
   AND a.prs_bedrijf_key = b.prs_bedrijf_key(+)
   AND a.prs_afdeling_parentkey = ap.prs_afdeling_key(+)
   AND a.prs_afdeling_verwijder IS NULL
   AND ap.prs_afdeling_verwijder IS NULL
   AND k.prs_kostenplaats_verwijder IS NULL
;

-- import:      FIP: 4-Aanvullen personen
-- importsheet: Inventarisatie Personen, tabblad Personen
-- importtabel: fac_imp_perslid
CREATE OR REPLACE VIEW fac_v_exp_perslid
AS
SELECT l.alg_locatie_code             Locatiecode
     , o.alg_gebouw_code              Gebouwcode
     , v.alg_verdieping_volgnr        Bouwlaagvolgnummer
     , o.alg_ruimte_nr                Ruimtenummer
     , b.prs_perslidwerkplek_volgnr   Werkplekvolgnummer
     , w.prs_werkplek_omschrijving    Omschrijving
     , a.prs_afdeling_naam            Afdelingscode
     , p.prs_perslid_naam             PersoonAchternaam
     , p.prs_perslid_tussenvoegsel    Tussenvoegsel
     , p.prs_perslid_voorletters      Voorletters
     , p.prs_perslid_voornaam         Voornaam
     , p.prs_perslid_titel            TitelAanhef
     , p.prs_perslid_telefoonnr       Telefoonnummer
     , p.prs_perslid_mobiel           Mobiel
     , p.prs_perslid_email            Email
     , s.prs_srtperslid_omschrijving  Functie
     , p.prs_perslid_nr               Personeelsnummer
     , p.prs_perslid_oslogin          Loginnaam
     , null                           Password
     , k.prs_kostenplaats_nr          Kostenplaatsnr
     , null  NVT2
     , null  NVT3
     , null  NVT4
     , null  NVT5
     , null  NVT6
     , null  NVT7
     , null  Kenmerk1
     , null  Kenmerk2
     , null  Kenmerk3
     , null  Kenmerk4
     , null  Kenmerk5
     , null  Kenmerk6
     , null  Kenmerk7
     , null  Kenmerk8
     , null  Kenmerk9
     , null  Kenmerk10
     , null  Kenmerk11
     , null  Kenmerk12
     , null  Kenmerk13
     , null  Kenmerk14
     , null  Kenmerk15
     , null  Kenmerk16
     , null  Kenmerk17
     , null  Kenmerk18
     , null  Kenmerk19
     , null  Kenmerk20
  FROM prs_perslid p
     , prs_srtperslid s
     , prs_afdeling a
     , alg_v_onroerendgoed_gegevens o
     , alg_locatie l
     , alg_verdieping v
     , prs_perslidwerkplek b
     , prs_werkplek w
     , prs_kostenplaats k
 WHERE p.prs_srtperslid_key = s.prs_srtperslid_key(+)
   AND p.prs_afdeling_key = a.prs_afdeling_key(+)
   AND w.prs_alg_ruimte_key = o.alg_onroerendgoed_keys(+)
   AND o.alg_locatie_key = l.alg_locatie_key(+)
   AND o.alg_verdieping_key = v.alg_verdieping_key(+)
   AND p.prs_perslid_key = b.prs_perslid_key(+)
   AND b.prs_werkplek_key = w.prs_werkplek_key(+)
   AND p.prs_kostenplaats_key = k.prs_kostenplaats_key(+)
   AND p.prs_perslid_verwijder IS NULL
   AND p.prs_perslid_inactief IS NULL
   AND p.prs_perslid_flags = 0
   AND p.prs_perslid_apikey IS NULL
;

CREATE OR REPLACE FORCE VIEW fac_v_exp_contract
AS
SELECT c.cnt_contract_nummer_intern                                   ContractNr             --A_nummer_intern
     , c.cnt_contract_versie                                          Versie                 --B_versie
     , c.cnt_contract_nummer                                          ExternNr               --C_nummer_extern
     , (SELECT ins_discipline_omschrijving
          FROM cnt_discipline
         WHERE ins_discipline_key = c.ins_discipline_key)             ContractSoort          --D_contractsoort
     , c.cnt_contract_omschrijving                                    Beschrijving           --E_beschrijving
     , m.cnt_contract_nummer_intern                                   MantelNr               --F_mantel_nummer
     , m.cnt_contract_versie                                          MantelNr_versie        --G_mantel_versie
     , TRANSLATE(c.cnt_contract_document, chr(10)||chr(13), '\n')     Omschrijving           --H_omschrijving
     , (SELECT prs_dienst_omschrijving
          FROM prs_dienst
         WHERE prs_dienst_key = c.prs_dienst_key)                     Dienst                 --I_dienst
     , a.prs_afdeling_naam                                            Eigenaar_afd           --J_afdeling
     , e.prs_perslid_email                                            Eigenaar_email         --K_eigenaar
     , b.prs_perslid_email                                            Beheerder_email        --L_beheerder
     , TRANSLATE(c.cnt_contract_opmerking, chr(10)||chr(13), '\n')    Opmerking              --M_opmerking
     , TO_CHAR(c.cnt_contract_looptijd_van, 'dd-mm-yyyy')             Ingangsdatum           --N_ingangsdatum
     , TO_CHAR(cnt.cnt_getTermijndatum( cnt.cnt_getTermijndatum( c.cnt_contract_looptijd_tot
                                                               , c.cnt_contract_opzegtermijn
                                                               , -1)
                                      , c.cnt_contract_rappeltermijn
                                      , -1), 'dd-mm-yyyy')            Rappeldatum            --O_rappeldatum
     , TO_CHAR(cnt.cnt_getTermijndatum( c.cnt_contract_looptijd_tot
                                      , c.cnt_contract_opzegtermijn
                                      , -1), 'dd-mm-yyyy')            Opzegdatum             --P_opzegdatum
     , TO_CHAR(c.cnt_contract_looptijd_tot, 'dd-mm-yyyy')             Einddatum              --Q_einddatum
     , CASE WHEN c.cnt_prs_perslid_key IS NOT NULL
            THEN 'P'
            ELSE 'B'
       END                                                            Soort_contactpartij    --R_soortcontact
     , CASE WHEN c.cnt_prs_perslid_key IS NOT NULL
            THEN (SELECT prs_perslid_email
                    FROM prs_perslid
                   WHERE prs_perslid_key = c.cnt_prs_perslid_key)
            ELSE (SELECT prs_bedrijf_naam
                    FROM prs_bedrijf
                   WHERE prs_bedrijf_key = c.cnt_prs_bedrijf_key)
       END                                                            Bedrijfsnaam           --S_bedrijfnaam
     , (SELECT prs_contactpersoon_email
          FROM prs_contactpersoon
         WHERE prs_contactpersoon_key = c.prs_contactpersoon_key)     ContactNaam            --T_contactpersoon
     , (SELECT prs_kostenplaats_nr
          FROM prs_kostenplaats
         WHERE prs_kostenplaats_key = c.prs_kostenplaats_key)         KostenplaatsCode       --U_kostenplaatscode
     , (SELECT prs_kostensoort_oms
          FROM prs_kostensoort
         WHERE prs_kostensoort_key = c.prs_kostensoort_key)           KostensoortCode        --V_kostensoortcode
     , TO_CHAR(c.cnt_contract_kosten)                                 Contractbedrag         --W_contractbedrag
     , TO_CHAR(c.cnt_contract_termijnkosten)                          Termijnbedrag	         --X_termijnbedrag
     , TO_CHAR(c.cnt_contract_uurloon)                                Uurtarief              --Y_uurtarief
     , TO_CHAR(c.cnt_contract_korting)                                Korting                --Z_korting
     , CASE WHEN p.cnt_alg_plaats_code IN ('L','T','G','V','R')
            THEN g.alg_locatie_code
            ELSE NULL
            END locatiecode                                                                  --AA_locatiecode
     , CASE WHEN p.cnt_alg_plaats_code IN ('T')
            THEN g.alg_terreinsector_code
            ELSE NULL
            END terreincode                                                                  --AB_terreincode
     , CASE WHEN p.cnt_alg_plaats_code IN ('G','V','R')
            THEN g.alg_gebouw_code
            ELSE NULL
            END gebouwcode                                                                   --AC_gebouwcode
     , CASE WHEN p.cnt_alg_plaats_code IN ('V','R')
            THEN g.alg_verdieping_code
            ELSE NULL
            END verdiepingcode                                                               --AD_verdiepingcode
     , CASE WHEN p.cnt_alg_plaats_code IN ('R')
            THEN g.alg_ruimte_nr
            ELSE NULL
            END ruimtecode                                                                   --AE_ruimtecode
     , c.cnt_contract_verlenging                                      Verlengen              --AF_verlengen
  FROM cnt_contract c
     , (SELECT mm.cnt_contract_key
             , mm.cnt_contract_nummer_intern
             , mm.cnt_contract_versie
          FROM cnt_contract mm
             , cnt_disc_params md
         WHERE mm.ins_discipline_key = md.cnt_ins_discipline_key
           AND md.cnt_srtcontract_type = 6
           AND mm.cnt_contract_status != 1
       ) m
     , (SELECT o.*, l.alg_locatie_code
          FROM alg_v_onroerendgoed_gegevens o
             , alg_locatie l
         WHERE o.alg_locatie_key = l.alg_locatie_key
        UNION
        SELECT l.alg_locatie_key, NULL, NULL
             , l.alg_locatie_code, NULL
             , NULL, NULL, NULL
             , NULL, NULL, NULL
             , NULL, NULL, NULL
             , NULL, NULL, NULL
             , l.alg_locatie_key, 'L', l.alg_locatie_code
          FROM alg_locatie l
       ) g
     , cnt_contract_plaats p
     , prs_afdeling a
     , prs_v_aanwezigperslid b
     , prs_v_aanwezigperslid e
     , prs_kostenplaats k
 WHERE c.cnt_contract_mantel_key = m.cnt_contract_key(+)
   AND c.cnt_contract_key = p.cnt_contract_key(+)
   AND c.prs_afdeling_key_eig = a.prs_afdeling_key
   AND c.prs_perslid_key_beh = b.prs_perslid_key
   AND c.prs_perslid_key_eig = e.prs_perslid_key(+)
   AND c.prs_kostenplaats_key = k.prs_kostenplaats_key
   AND c.cnt_contract_verwijder IS NULL
   AND a.prs_afdeling_verwijder IS NULL
   AND b.prs_perslid_email IS NOT NULL
   AND k.prs_kostenplaats_verwijder IS NULL
 ORDER BY c.cnt_contract_nummer_intern
        , c.cnt_contract_versie
;

CREATE OR REPLACE FORCE VIEW fac_v_exp_res_artikel_sync
AS
SELECT ra.res_artikel_key              ArtikelKey
     , rd.ins_discipline_omschrijving  CatalogusNaam
     , pk.prs_kostensoort_oms          CatalogusKostensoort
     , ra.res_artikel_nr               ArtikelNummer
     , ra.res_artikel_omschrijving     ArtikelOmschrijving
     , ra.res_artikel_eenheid          ArtikelEenheid
     , ra.res_artikel_prijs            ArtikelPrijs
     , ra.res_artikel_prijs_vast       ArtikelPrijsVast
     , ra.res_artikel_inkoopprijs      ArtikelInkoopprijs
     , ra.res_artikel_kostenpersoneel  ArtikelPersoneelkosten
     , ra.res_artikel_kostenalgemeen   ArtikelAlgemenekosten
     , ra.res_artikel_BTW              ArtikelBTW
     , ra.res_artikel_opmerking        ArtikelOpmerking
     , ra.res_artikel_groep            ArtikelGroep
     , ra.res_artikel_volgnummer       ArtikelVolgnummer
     , TO_CHAR(ra.res_artikel_ingangsdatum, 'yyyymmdd') ArtikelIngangsdatum
     , TO_CHAR(ra.res_artikel_vervaldatum, 'yyyymmdd')  ArtikelVervaldatum
     , ra.res_artikel_minimum          ArtikelMinimum
     , ra.res_artikel_externnr         Externnr
  FROM res_artikel     ra
     , res_discipline  rd
     , prs_kostensoort pk
 WHERE ra.res_discipline_key = rd.ins_discipline_key
   AND rd.prs_kostensoort_key = pk.prs_kostensoort_key(+)
   AND ra.res_artikel_verwijder IS NULL
   AND TRUNC(ra.res_artikel_vervaldatum) > TRUNC(SYSDATE)
;

REGISTERRUN('$Id$')
