--
-- $Id$
--
/*  Script bevat initiele configuratie voor een standaard FM inrichting van Facilitor.
Voor FM-implementaties zal dit Het Startpunt zijn. Verwachting is dat dit zo ongeveer het eerste is wat je altijd zult doen bij een FM-implementatie, 
niettemin doen we ons best -en zullen we dat moeten verifieren- om het zodanig opgezet te hebben dat het ook later nog kan worden uitgevoerd. 
Niet omdat dat waarschijnlijk is, maar omdat zode meest robuuste code wordt gemaakt, die bestand is tegen een onverwachte situatie. 
Het kan [alleen] uitgaan van alles wat standaard aanwezig is (uit fac_ini).
Moet in sync worden gehouden met de DB-versies, is daarom technisch onderdeel van de Facilitor-core
Inhoudelijk zou er een Implementatie-CAB mogen zijn (vertegenwoordigers van consultancy, support en evt core-CAB) die de verantwoordelijkheid over de content heeft.
Ook goed om te weten: dit is een eenmalig (once) script dat een momentopname genereert als startpunt van een verdere implementatie. 
Er komen GEEN upgrades voor deze initialisatie met nieuwere versies of aanvullingen. 
Na deze aftrap mag je het verder helemaal zelf doen.
De basisinrichting wordt per module van onder naar boven opgebouwd, en eindigt met een zeer bescheidenaantal appetizers: 
fictieve gegevens die e.e.a. voor de eerste confrontatie minder abstract maken. 
Let op: deze code wordt letterlijk geinclude als body van procedure ini.fmis_ini, het is geen SQL*Plus!
Er wordt gebruik gemaakt van importfuncties, die COMMIT's doen. 
Deze hele procedure moet dus foutlooslopen want het is alles of niks. */

-- BASISCONFIG PER MODULE

-- 1. ALG
INSERT INTO alg_srtruimte(alg_srtruimte_omschrijving, prs_bevat_werkplek, prs_verhuurbaar) VALUES ('Kantoorruimte', 1, 1);
INSERT INTO alg_srtruimte(alg_srtruimte_omschrijving, prs_bevat_werkplek, prs_verhuurbaar) VALUES ('Technische ruimte', NULL, NULL);
INSERT INTO alg_srtruimte(alg_srtruimte_omschrijving, prs_bevat_werkplek, prs_verhuurbaar) VALUES ('Opslag/Magazijn', NULL, 1);
INSERT INTO alg_srtruimte(alg_srtruimte_omschrijving, prs_bevat_werkplek, prs_verhuurbaar) VALUES ('Horizontale verkeersruimte', NULL, NULL);
INSERT INTO alg_srtruimte(alg_srtruimte_omschrijving, prs_bevat_werkplek, prs_verhuurbaar) VALUES ('Verticale verkeersruimte', NULL, NULL);
INSERT INTO alg_srtruimte(alg_srtruimte_omschrijving, prs_bevat_werkplek, prs_verhuurbaar) VALUES ('Sanitairruimte', NULL, NULL);

fac.writelog ('INI.FMIS_INI','I', 'ALG completed', '');

-- 2. INS
-- Even helemaal weggehaald. Omdat bevonden was toch direct te verwijderen uit de omgeving. Van ieder onderdeel het format (insert into) en 1 voorbeeld laten staan.
-- Vakgroepen (Meervoud).
/* INSERT INTO ins_tab_discipline (ins_discipline_module, ins_discipline_code, ins_discipline_omschrijving, ins_discipline_min_level, ins_discipline_image)
   SELECT 'INS', 'NLSFB00', 'FMIS-Bouwkundig Algemeen', 1, '' FROM DUAL UNION ALL
   INSERT INTO ins_disc_params (ins_discipline_key) SELECT ins_discipline_key FROM ins_tab_discipline WHERE ins_discipline_module='INS' AND ins_discipline_key NOT IN (SELECT ins_discipline_key FROM ins_disc_params);
 */
-- Groepen (Meervoud).
/* INSERT INTO ins_srtgroep (ins_srtgroep_omschrijving, ins_discipline_key)
   SELECT 'Koffieautomaten', ins_discipline_key FROM ins_tab_discipline WHERE ins_discipline_code = 'F020' UNION ALL
 */
-- Objectsoorten (Enkelvoud).
/* INSERT INTO ins_srtdeel (ins_srtgroep_key, ins_srtdeel_code, ins_srtdeel_omschrijving, ins_srtdeel_image, ins_srtdeel_sensortype)
   SELECT ins_srtgroep_key, 'KOF','Koffieautomaat', 'fa-mug-hot', 0 FROM ins_srtgroep WHERE ins_srtgroep_omschrijving = 'Koffieautomaten' UNION ALL
*/

fac.writelog ('INI.FMIS_INI','I', 'INS completed', '');

-- 3. MLD
-- Importeren van een standaard meldingenstructuur (MLD), maakt alle bovenliggende niveaus zelf aan
INSERT INTO fac_imp_mld (ins_srtdiscipline_omschrijving, ins_srtdiscipline_prefix, ins_srtdiscipline_alg, ins_discipline_omschrijving, mld_stdmelding_hint, mld_stdmelding_omschrijving, mld_stdmelding_uitvoertijd, mld_stdmelding_objects_allowed)
SELECT 'FMIS-Storing','S',1,'Gebouw- & installatieonderhoud','fa-lightbulb-cfl-on','Elektrische installatie',5,2 FROM DUAL UNION ALL
SELECT 'FMIS-Storing','S',1,'Gebouw- & installatieonderhoud','fa-door-open','Hang- & sluitwerk(sloten, deurdranger, deurklink etc)',5,2 FROM DUAL UNION ALL
SELECT 'FMIS-Storing','S',1,'Gebouw- & installatieonderhoud','fa-shield-exclamation','Inbraak-/alarminstallatie',5,2 FROM DUAL UNION ALL
SELECT 'FMIS-Storing','S',1,'Gebouw- & installatieonderhoud','fa-temperature-list','Klimaatinstallatie (airco/koelunit)',5,2 FROM DUAL UNION ALL
SELECT 'FMIS-Storing','S',1,'Gebouw- & installatieonderhoud','fa-elevator','Liften',5,2 FROM DUAL UNION ALL
SELECT 'FMIS-Storing','S',1,'Schoonmaak & hygiënevoorzieningen','fa-toilet','Sanitair (toilet/urinoir, kraan, wasbak, spoelknop)',5,2 FROM DUAL UNION ALL
SELECT 'FMIS-Storing','S',1,'Gebouw- & installatieonderhoud','fa-lightbulb-exclamation-on','Verlichting',5,2 FROM DUAL UNION ALL
SELECT 'FMIS-Storing','S',1,'Schoonmaak & hygiënevoorzieningen','fa-jug-bottle','Schoonmaak',5,2 FROM DUAL UNION ALL
SELECT 'FMIS-Storing','S',1,'Terrein- & groenvoorziening','fa-road','Bestrating',5,2 FROM DUAL UNION ALL
SELECT 'FMIS-Storing','S',1,'Terrein- & groenvoorziening','fa-gas-pump-slash','Elektrische oplaadpunten',5,2 FROM DUAL UNION ALL
SELECT 'FMIS-Storing','S',1,'Terrein- & groenvoorziening','fa-temperature-frigid','Gladheidbestrijding',5,2 FROM DUAL UNION ALL
SELECT 'FMIS-Storing','S',1,'Terrein- & groenvoorziening','fa-tree','Groenonderhoud',5,2 FROM DUAL UNION ALL
SELECT 'FMIS-Storing','S',1,'Terrein- & groenvoorziening','fa-light-emergency-on','Terreinverlichting',5,2 FROM DUAL UNION ALL
SELECT 'FMIS-Storing','S',1,'Toegang & beveiliging','fa-drivers-license','Toegangspas',5,2 FROM DUAL UNION ALL
SELECT 'FMIS-Storing','S',1,'Kantoorbeheer','fa-coffee-pot','Koffiezetapparaat',1,2 FROM DUAL UNION ALL
SELECT 'FMIS-Storing','S',1,'Kantoorbeheer','fa-chair-office','Werkplek',1,2 FROM DUAL UNION ALL
SELECT 'FMIS-Storing','S',1,'ICT','fa-wifi-exclamation','Netwerkstoring',5,2 FROM DUAL UNION ALL
SELECT 'FMIS-Storing','S',1,'ICT','fa-laptop-slash','Hardware',5,2 FROM DUAL UNION ALL
SELECT 'FMIS-Storing','S',1,'Toegang & beveiliging','fa-shield-exclamation','Beveiliging',5,2 FROM DUAL UNION ALL
SELECT 'FMIS-Storing','S',1,'ICT','fa-file-word','Software en applicaties',5,2 FROM DUAL UNION ALL
SELECT 'FMIS-Storing','S',1,'Schoonmaak & hygiënevoorzieningen','fa-trash-can-clock','Container is niet geleegd',5,2 FROM DUAL UNION ALL
SELECT 'FMIS-Storing','S',1,'Calamiteiten & BHV','fa-medkit','AED werkt niet/rood lampje',5,2 FROM DUAL UNION ALL
SELECT 'FMIS-Storing','S',1,'Calamiteiten & BHV','fa-fire-extinguisher','Blusmiddelen',5,2 FROM DUAL UNION ALL
SELECT 'FMIS-Storing','S',1,'Gebouw- & installatieonderhoud','fa-house-building','Bouwkundig (dak, kozijnen, wanden, glas, ruitbreuk, lekkage)',5,2 FROM DUAL UNION ALL
SELECT 'FMIS-Aanvraag','A',1,'Toegang & beveiliging','fa-drivers-license','Toegangspas',5,2 FROM DUAL UNION ALL
SELECT 'FMIS-Aanvraag','A',1,'ICT','fa-medkit','Randapparatuur en accessoires',5,2 FROM DUAL UNION ALL
SELECT 'FMIS-Aanvraag','A',1,'ICT','fa-laptop-mobile','Hardware',5,2 FROM DUAL UNION ALL
SELECT 'FMIS-Aanvraag','A',1,'Bedrijfsmiddelen','fa-home-lg','Thuiswerk voorzieningen',5,2 FROM DUAL UNION ALL
SELECT 'FMIS-Aanvraag','A',1,'ICT','fa-globe','Netwerk',5,2 FROM DUAL UNION ALL
SELECT 'FMIS-Aanvraag','A',1,'ICT','fa-file-word','Software en applicaties',5,2 FROM DUAL UNION ALL
SELECT 'FMIS-Aanvraag','A',1,'Toegang & beveiliging','fa-shield-alt','Beveiliging',5,2 FROM DUAL UNION ALL
SELECT 'FMIS-Aanvraag','A',1,'ICT','fa-file-shield','Autorisaties',5,2 FROM DUAL UNION ALL
SELECT 'FMIS-Aanvraag','A',1,'Schoonmaak & hygiënevoorzieningen','fa-trash-plus','Extra container',5,2 FROM DUAL UNION ALL
SELECT 'FMIS-Aanvraag','A',1,'Schoonmaak & hygiënevoorzieningen','fa-trash-can-clock','Extra afval afvoer verzoek',5,2 FROM DUAL UNION ALL
SELECT 'FMIS-Aanvraag','A',1,'Kantoorbeheer','fa-coffee-beans','Ingrediënten t.b.v. koffieautomaat',5,2 FROM DUAL UNION ALL
SELECT 'FMIS-Aanvraag','A',1,'Kantoorbeheer','fa-jug-bottle','Waterflessen t.b.v. waterkoeler',5,2 FROM DUAL UNION ALL
SELECT 'FMIS-Aanvraag','A',1,'Calamiteiten & BHV','fa-medkit','BHV trainingen',5,2 FROM DUAL UNION ALL
SELECT 'FMIS-Aanvraag','A',1,'Calamiteiten & BHV','fa-prescription-bottle-alt','EHBO-middelen',5,2 FROM DUAL UNION ALL
SELECT 'FMIS-Aanvraag','A',1,'Bedrijfsmiddelen','fa-flower-tulip','Bloemen bestellen',5,2 FROM DUAL UNION ALL
SELECT 'FMIS-Aanvraag','A',1,'Bedrijfsmiddelen','fa-car-mirrors','Huurauto',5,2 FROM DUAL UNION ALL
SELECT 'FMIS-Aanvraag','A',1,'Bedrijfsmiddelen','fa-pencil-mechanical','Kantoorartikelen',5,2 FROM DUAL UNION ALL
SELECT 'FMIS-Aanvraag','A',1,'Schoonmaak & hygiënevoorzieningen','fa-jug-bottle','Extra schoonmaak (verzoek)',5,2 FROM DUAL UNION ALL
SELECT 'FMIS-Aanvraag','A',1,'Schoonmaak & hygiënevoorzieningen','fa-house-chimney-window','Extra glasbewassing (binnen/buiten)',5,2 FROM DUAL UNION ALL
SELECT 'FMIS-Aanvraag','A',1,'Schoonmaak & hygiënevoorzieningen','fa-toilet-paper-check','Sanitaire middelen',5,2 FROM DUAL UNION ALL
SELECT 'FMIS-Klacht','K',0,'Klacht','fa-octagon-exclamation','Klacht',5,2 FROM DUAL UNION ALL
SELECT 'FMIS-Klacht','K',0,'Klacht','fa-people-arrows-left-right','Ongewenst gedrag',5,2 FROM DUAL;

-- beetje lomp, wat vinden we?
UPDATE fac_imp_mld SET mld_stdmelding_slabewaken = 0, mld_stdmelding_notfrontend = 0
 WHERE ins_srtdiscipline_omschrijving <> 'FMIS-Melding';
UPDATE fac_imp_mld SET mld_stdmelding_slabewaken = 1, mld_stdmelding_notfrontend = 1
 WHERE ins_srtdiscipline_omschrijving = 'FMIS-Melding';
UPDATE fac_imp_mld SET mld_stdmelding_groep = SUBSTR(ins_discipline_omschrijving, 1, 30)
 WHERE ins_srtdiscipline_omschrijving LIKE 'FMIS-%';

BEGIN fac_update_mld(ini.getImportKey('MLD')); END;
DELETE FROM fac_imp_mld;

-- De import ondersteunde de image niet, dus die ging via de hint
UPDATE mld_stdmelding
   SET mld_stdmelding_image = mld_stdmelding_hint,
         mld_stdmelding_hint = NULL
 WHERE mld_stdmelding_hint IS NOT NULL AND mld_stdmelding_image IS NULL;

-- Voeg bijlage toe aan alle vakgroeptypen
INSERT INTO mld_srtkenmerk (mld_srtkenmerk_omschrijving, mld_srtkenmerk_kenmerktype) VALUES ('Bijlagen', 'M');
INSERT INTO mld_kenmerk (mld_srtkenmerk_key, mld_kenmerk_niveau, mld_kenmerk_volgnummer, mld_kenmerk_groep) SELECT mld_srtkenmerk_key, 'A', 100, 0
       FROM mld_srtkenmerk
      WHERE mld_srtkenmerk_omschrijving = 'Bijlagen' and mld_srtkenmerk_kenmerktype = 'M';

fac.writelog ('INI.FMIS_INI','I', 'MLD completed', '');

-- 4. RES
INSERT INTO res_srtactiviteit (res_srtactiviteit_omschrijving, res_srtactiviteit_soort, res_srtactiviteit_prefix,
            res_srtactiviteit_kpnverplicht, res_srtactiviteit_metomschr, res_srtactiviteit_metopmerk, res_srtactiviteit_metaantal)
     VALUES ('Flexwerken', 1, 'WP', 2, 0, 0, 0);

-- Activiteiten zijn er default al, catalogi dan, plus de combinaties
INSERT INTO ins_tab_discipline (ins_discipline_omschrijving, ins_discipline_module, ins_discipline_min_level) VALUES ('Vergaderruimte', 'RES', 3);
INSERT INTO res_disc_params (res_ins_discipline_key) SELECT MAX (ins_discipline_key) FROM ins_tab_discipline WHERE ins_discipline_omschrijving = 'Vergaderruimte';
INSERT INTO ins_tab_discipline (ins_discipline_omschrijving, ins_discipline_module, ins_discipline_min_level) VALUES ('Flexplekken', 'RES', 5);
INSERT INTO res_disc_params (res_ins_discipline_key, res_disc_params_expire_dagen, res_disc_params_cancel_dagen)
     SELECT MAX (ins_discipline_key), 0, 0 FROM ins_tab_discipline WHERE ins_discipline_omschrijving = 'Flexplekken';

INSERT INTO res_activiteit (res_activiteit_omschrijving, res_srtactiviteit_key, res_activiteit_intervals)
      SELECT 'Werkplekreservering', res_srtactiviteit_key,
               '[{ "name": "Hele dag", "begin": "08:00", "end": "17:00"}, { "name": "Ochtend", "begin": "08:00", "end": "12:00"}, { "name": "Middag", "begin": "13:00", "end": "17:00"}]'
         FROM res_srtactiviteit
         WHERE res_srtactiviteit_omschrijving = 'Flexwerken';

-- De catalogus om ruimten te reserveren moet nog wel aan de activiteit gekoppeld worden.
INSERT INTO res_activiteitdiscipline (res_discipline_key, res_activiteit_key)
     SELECT ins_discipline_key, res_activiteit_key
       FROM res_activiteit ra, ins_tab_discipline id
      WHERE res_activiteit_omschrijving = 'Vergadering' -- van de core
        AND id.ins_discipline_omschrijving = 'Vergaderruimte';

INSERT INTO res_activiteitdiscipline (res_discipline_key, res_activiteit_key)
     SELECT ins_discipline_key, res_activiteit_key
       FROM res_activiteit ra, ins_tab_discipline id
      WHERE ra.res_activiteit_omschrijving = 'Werkplekreservering'
        AND id.ins_discipline_omschrijving = 'Flexplekken';

-- Voeg de artikelscope voor alle catering catalogi (min_level=2) toe voor alle locaties
-- Als ik onbeperkt wil, is dit dan nodig?
INSERT INTO res_srtartikel_onrgoed (alg_onrgoed_key, alg_onrgoed_niveau, res_discipline_key)
     SELECT alg_locatie_key, 'L', ins_discipline_key
       FROM res_discipline rd, alg_locatie l
      WHERE ins_discipline_min_level = 2;

fac.writelog ('INI.FMIS_INI','I', 'RES completed', '');

-- 5. BEZ
-- Zaken uit BEZ_INI hier overgenomen
INSERT INTO bez_actie_groep (bez_actie_groep_omschrijving, bez_actie_groep_default) VALUES ('Standaard', 1);
INSERT INTO bez_actie (bez_actie_omschrijving, bez_actie_groep_key) SELECT 'Onbekend'                 , bez_actie_groep_key FROM bez_actie_groep WHERE bez_actie_groep_omschrijving = 'Standaard';
INSERT INTO bez_actie (bez_actie_omschrijving, bez_actie_groep_key) SELECT 'Ontvanger bellen'         , bez_actie_groep_key FROM bez_actie_groep WHERE bez_actie_groep_omschrijving = 'Standaard';
INSERT INTO bez_actie (bez_actie_omschrijving, bez_actie_groep_key) SELECT 'Begeleiden naar ontvanger', bez_actie_groep_key FROM bez_actie_groep WHERE bez_actie_groep_omschrijving = 'Standaard';
INSERT INTO bez_actie (bez_actie_omschrijving, bez_actie_groep_key) SELECT 'Verwijzen naar ontvanger' , bez_actie_groep_key FROM bez_actie_groep WHERE bez_actie_groep_omschrijving = 'Standaard';
INSERT INTO bez_actie (bez_actie_omschrijving, bez_actie_groep_key) SELECT 'Op laten halen (bellen)'  , bez_actie_groep_key FROM bez_actie_groep WHERE bez_actie_groep_omschrijving = 'Standaard';

fac.writelog ('INI.FMIS_INI','I', 'BEZ completed', '');

-- 6. CNT
/* DECLARE
   v_discipline_key ins_tab_discipline.ins_discipline_key%TYPE;
   v_key cnt_srtkenmerk.cnt_srtkenmerk_key%TYPE;
BEGIN
   INSERT INTO ins_tab_discipline (ins_discipline_omschrijving, ins_discipline_module) VALUES ('Onderhoudscontract', 'CNT')
      RETURNING ins_discipline_key INTO v_discipline_key;
   INSERT INTO cnt_disc_params (cnt_ins_discipline_key, cnt_srtcontract_type) VALUES (v_discipline_key, 1);
   INSERT INTO ins_tab_discipline (ins_discipline_omschrijving, ins_discipline_module) VALUES ('Servicecontract', 'CNT')
      RETURNING ins_discipline_key INTO v_discipline_key;
   INSERT INTO cnt_disc_params (cnt_ins_discipline_key, cnt_srtcontract_type) VALUES (v_discipline_key, 3);
   INSERT INTO ins_tab_discipline (ins_discipline_omschrijving, ins_discipline_module) VALUES ('Algemeen contract', 'CNT')
      RETURNING ins_discipline_key INTO v_discipline_key;
   INSERT INTO cnt_disc_params (cnt_ins_discipline_key, cnt_srtcontract_type) VALUES (v_discipline_key, 4);
   INSERT INTO ins_tab_discipline (ins_discipline_omschrijving, ins_discipline_module) VALUES ('Leverancierscontract', 'CNT')
      RETURNING ins_discipline_key INTO v_discipline_key;
   INSERT INTO cnt_disc_params (cnt_ins_discipline_key, cnt_srtcontract_type) VALUES (v_discipline_key, 5);
   INSERT INTO ins_tab_discipline (ins_discipline_omschrijving, ins_discipline_module) VALUES ('Mantelcontract', 'CNT')
      RETURNING ins_discipline_key INTO v_discipline_key;
   INSERT INTO cnt_disc_params (cnt_ins_discipline_key, cnt_srtcontract_type) VALUES (v_discipline_key, 6);

   -- Alle contracten hebben bijlagen
   INSERT INTO cnt_srtkenmerk (cnt_srtkenmerk_omschrijving, cnt_srtkenmerk_kenmerktype) VALUES ('Bijlagen', 'M')
      RETURNING cnt_srtkenmerk_key INTO v_key;
   INSERT INTO cnt_kenmerk (cnt_srtkenmerk_key,
                              cnt_srtcontract_key,
                              cnt_kenmerk_niveau,
                              cnt_kenmerk_volgnummer,
                              cnt_kenmerk_groep)
         SELECT v_key, ins_discipline_key, 'S', 100, 0 FROM cnt_discipline;
END; */

fac.writelog ('INI.FMIS_INI','I', 'CNT completed', '');

-- 7. FAQ
INSERT INTO ins_tab_discipline (ins_discipline_omschrijving, ins_discipline_module) VALUES ('Facilitaire kennisbank', 'FAQ');

fac.writelog ('INI.FMIS_INI','I', 'FAQ completed', '');

-- 8. MSG
-- Misschien ook hier nog een berichtje, anders iig de catalogi
INSERT INTO ins_tab_discipline (ins_discipline_omschrijving, ins_discipline_module) VALUES ('Algemene berichten', 'MSG');
INSERT INTO ins_tab_discipline (ins_discipline_omschrijving, ins_discipline_module) VALUES ('Huishoudelijke mededelingen', 'MSG');
fac.writelog ('INI.FMIS_INI','I', 'MSG completed', '');

-- 9. CAD
-- De standaardthema's uit CAD-INI van vroeger heb je niet met ITSM nodig, dus horen bij FMIS
-- De kunt makkelijk beargumenteren dat PRJ-thema's er dan ook bij zouden horen.
INSERT INTO cad_legenda (cad_legenda_omschrijving, cad_legenda_discreet) VALUES ('Bezetting', 1);  -- naam mag je later wel aanpassen, nu handig uniek
INSERT INTO cad_legendawaarde (cad_legenda_key, cad_legendawaarde_value, cad_legendawaarde_rgb, cad_legendawaarde_omschr) SELECT MAX(cad_legenda_key),'0','33CC33','hele dag beschikbaar' FROM cad_legenda WHERE cad_legenda_omschrijving='Bezetting';
INSERT INTO cad_legendawaarde (cad_legenda_key, cad_legendawaarde_value, cad_legendawaarde_rgb, cad_legendawaarde_omschr) SELECT MAX(cad_legenda_key),'1','FF9900','''s middags beschikbaar' FROM cad_legenda WHERE cad_legenda_omschrijving='Bezetting';
INSERT INTO cad_legendawaarde (cad_legenda_key, cad_legendawaarde_value, cad_legendawaarde_rgb, cad_legendawaarde_omschr) SELECT MAX(cad_legenda_key),'2','FFFF00','''s ochtends beschikbaar' FROM cad_legenda WHERE cad_legenda_omschrijving='Bezetting';
INSERT INTO cad_legendawaarde (cad_legenda_key, cad_legendawaarde_value, cad_legendawaarde_rgb, cad_legendawaarde_omschr) SELECT MAX(cad_legenda_key),'3','FF0000','hele dag bezet' FROM cad_legenda WHERE cad_legenda_omschrijving='Bezetting';

INSERT INTO cad_thema (cad_thema_omschrijving, cad_legenda_key, cad_thema_view, cad_thema_type, fac_functie_key)
     SELECT 'Ruimtefunctie', 1, 'cad_v_thema_srtruimte', 1, fac_functie_key
       FROM fac_functie
      WHERE fac_functie_code = 'WEB_ALGUSE';
INSERT INTO cad_thema (cad_thema_omschrijving, cad_legenda_key, cad_thema_view, cad_thema_type, fac_functie_key)
     SELECT 'Open meldingen', 2, 'cad_v_thema_openmeldingen', 1, fac_functie_key
       FROM fac_functie
      WHERE fac_functie_code = 'WEB_MLDBAC';
INSERT INTO cad_thema (cad_thema_omschrijving, cad_legenda_key, cad_thema_view, cad_thema_type, fac_functie_key)
     SELECT 'Bezetting: aantal werkplekken', 1, 'cad_v_thema_aantalwp', 1, fac_functie_key
       FROM fac_functie
      WHERE fac_functie_code = 'WEB_PRSBOF';
INSERT INTO cad_thema (cad_thema_omschrijving, cad_legenda_key, cad_thema_view, cad_thema_type, fac_functie_key)
     SELECT  'Oppervlakte: Gemiddeld/werkplek', 1, 'cad_v_thema_wpopp', 1, fac_functie_key
       FROM fac_functie
      WHERE fac_functie_code = 'WEB_PRSBOF';
INSERT INTO cad_thema (cad_thema_omschrijving, cad_legenda_key, cad_thema_view, cad_thema_type, fac_functie_key)
     SELECT 'Actuele bezetting', 1, 'cad_v_thema_srtruimtesensor', 1, fac_functie_key
       FROM fac_functie
      WHERE fac_functie_code = 'WEB_RESFOF';
INSERT INTO cad_thema (cad_thema_omschrijving, cad_legenda_key, cad_thema_view, cad_thema_type, fac_functie_key)
     SELECT 'Werkplekbezetting', cad_legenda_key, 'cad_v_thema_deel_res_datum', 17, fac_functie_key
       FROM fac_functie, cad_legenda
      WHERE fac_functie_code = 'WEB_RESUSE'
        AND cad_legenda_omschrijving = 'Bezetting';

-- CAD labels
INSERT INTO cad_label (cad_label_omschrijving, cad_label_view, cad_label_type, fac_functie_key, cad_label_size)
     SELECT 'Ruimtefunctie/opp', 'cad_v_label_srtruimteopp', '1', fac_functie_key, 360
       FROM fac_functie
      WHERE fac_functie_code = 'WEB_ALGUSE';
INSERT INTO cad_label (cad_label_omschrijving, cad_label_view, cad_label_type, fac_functie_key, cad_label_size)
     SELECT 'Bewoners', 'cad_v_label_bewoner', '1', fac_functie_key, 300
       FROM fac_functie
      WHERE fac_functie_code = 'WEB_PRSUSE';
INSERT INTO cad_label (cad_label_omschrijving, cad_label_view, cad_label_type, fac_functie_key, cad_label_size)
     SELECT  'Werkplekken', 'cad_v_label_werkplekken', '1', fac_functie_key, 800
       FROM fac_functie
      WHERE fac_functie_code = 'WEB_PRSBOF';
INSERT INTO cad_label (cad_label_omschrijving, cad_label_view, cad_label_type, fac_functie_key, cad_label_size)
     SELECT  'Bewoners/werkplekken', 'cad_v_label_bewonerwp', '1', fac_functie_key, 800
       FROM fac_functie
      WHERE fac_functie_code = 'WEB_PRSUSE';
INSERT INTO cad_label (cad_label_omschrijving, cad_label_view, cad_label_type, fac_functie_key, cad_label_size, cad_label_visible)
     SELECT 'Flexibele ruimtes', 'cad_v_label_bezetbareruimtes', '1', fac_functie_key, 500, 0
       FROM fac_functie
      WHERE fac_functie_code = 'WEB_RESFOF';
INSERT INTO cad_label (cad_label_omschrijving, cad_label_view, cad_label_type, fac_functie_key, cad_label_size, cad_label_visible)
     SELECT 'Werkplekbezetting', 'cad_v_label_deel_res_datum', '17', fac_functie_key, 700, 0
       FROM fac_functie
      WHERE fac_functie_code = 'WEB_RESUSE';

--- INFOBOARD rapportage
INSERT INTO fac_usrrap (fac_usrrap_omschrijving, fac_usrrap_view_name, fac_usrrap_info, fac_functie_key, fac_usrrap_groep)
      SELECT  'Actuele reserveringen'
            , 'res_v_rap_infobordframe'
            , 'Reserveringsoverzicht tbv informatieschermen'
            , fac_functie_key
            , 'RESERVERINGEN'
         FROM fac_functie
      WHERE fac_functie_code='WEB_RESFOF';

INSERT INTO fac_locale (fac_locale_lang, fac_locale_kolomkeyval, fac_locale_kolomnaam, fac_locale_tekst)
     SELECT 'EN', MAX(fac_usrrap_key), 'FAC_USRRAP_OMSCHRIJVING', 'INFOBOARD: Actual reservations' FROM fac_usrrap WHERE fac_usrrap_view_name = 'res_v_rap_infobordframe';
INSERT INTO fac_locale (fac_locale_lang, fac_locale_kolomkeyval, fac_locale_kolomnaam, fac_locale_tekst)
     SELECT 'EN', MAX(fac_usrrap_key), 'FAC_USRRAP_INFO', 'Reservation overview for information screens' FROM fac_usrrap WHERE fac_usrrap_view_name = 'res_v_rap_infobordframe';

UPDATE fac_setting SET fac_setting_pvalue = (SELECT MAX(cad_thema_key) FROM cad_thema WHERE cad_thema_view = 'cad_v_thema_srtruimtesensor') WHERE fac_setting_name = 'fg_infobordthema_key' AND fac_setting_pvalue IS NULL;
UPDATE fac_setting SET fac_setting_pvalue = (SELECT MAX(cad_thema_key) FROM cad_thema WHERE cad_thema_view = 'cad_v_label_bezetbareruimtes') WHERE fac_setting_name = 'fg_infobordlabel_key' AND fac_setting_pvalue IS NULL;
UPDATE fac_setting SET fac_setting_pvalue = (SELECT MAX(fac_usrrap_key) FROM fac_usrrap WHERE fac_usrrap_view_name = 'res_v_rap_infobordframe') WHERE fac_setting_name = 'fg_infobordreport_key' AND fac_setting_pvalue IS NULL;

fac.writelog ('INI.FMIS_INI','I', 'CAD completed', '');

-- 10. UDR

-- Instellingen: Alleen settings die specifiek voor FM zijn en intrinsiek afwijken van de standaardinstellingen(!)
-- Algemeen UPDATE fac_setting SET fac_setting_pvalue = 'no_reply@' || user || '.facilitor.nl' WHERE fac_setting_name = 'puo_fromaddress';
UPDATE fac_setting SET fac_setting_pvalue = '1' WHERE fac_setting_name = 'faq_enabled';
UPDATE fac_setting SET fac_setting_pvalue = '1' WHERE fac_setting_name = 'mobile_enabled';
UPDATE fac_setting SET fac_setting_pvalue = '1' WHERE fac_setting_name = 'qrc_enabled';
UPDATE fac_setting SET fac_setting_pvalue = '1' WHERE fac_setting_name = 'vis_afspraak_host_uses_keys';  
UPDATE fac_setting SET fac_setting_pvalue = '1' WHERE fac_setting_name = 'vis_afspraak_onrgoed_uses_keys'; 
UPDATE fac_setting SET fac_setting_pvalue = '2' WHERE fac_setting_name = 'portalmenu_combine_single';
UPDATE fac_setting SET fac_setting_pvalue = '1' WHERE fac_setting_name = 'fac_usrrap_mode';
UPDATE fac_setting SET fac_setting_pvalue = 'false' WHERE fac_setting_name = 'mld_accept_confirm';
UPDATE fac_setting SET fac_setting_pvalue = '1' WHERE fac_setting_name = 'mld_use_order_approval';

fac.writelog ('INI.FMIS_INI','I', 'Settings completed', '');

-- Autorisatiegroepen
-- We definieren deze groepen: Medewerker (_DEFAULT), Frontoffice, Backoffice, Beheerder (_ADMIN)
INSERT INTO fac_groep (fac_groep_omschrijving, fac_groep_opmerking) VALUES ('FMIS-Frontoffice', 'FMIS-autorisatiegroep voor frontoffice users');
INSERT INTO fac_groep (fac_groep_omschrijving, fac_groep_opmerking) VALUES ('FMIS-Backoffice',  'FMIS-autorisatiegroep voor backoffice users');
INSERT INTO fac_groep (fac_groep_omschrijving, fac_groep_opmerking) VALUES ('Applicatiebeheer',  'Autorisatiegroep voor functionele applicatiebeheerders van de klant (licentie rechten)');
INSERT INTO fac_groep (fac_groep_omschrijving, fac_groep_opmerking) VALUES ('_TESTERS',  'Autorisatiegroep voor testers van de klant tbv Facilitor trainingen');

UPDATE fac_groep
SET fac_groep_opmerking = 'Autorisatiegroep met alle applicatiebeheerrechten die mogelijk zijn (ook niet-licentierechten)'
WHERE fac_groep_omschrijving = '_Admin';

-- Default rechten
INSERT INTO fac_groeprechten (fac_groep_key, fac_functie_key, ins_discipline_key,
                              fac_gebruiker_alg_level_read, fac_gebruiker_alg_level_write,
                              fac_gebruiker_prs_level_read, fac_gebruiker_prs_level_write)
      SELECT g.fac_groep_key, f.fac_functie_key, d.ins_discipline_key, -1, -1, -1, -1
      FROM fac_functie f, ins_tab_discipline d, fac_groep g, ins_srtdiscipline sd
      WHERE f.fac_functie_code IN ('WEB_RESUSE', 'WEB_MLDUSE', 'WEB_FAQUSE')
         AND f.fac_functie_module = d.ins_discipline_module
         AND g.fac_groep_upper = '_DEFAULT'
         AND d.ins_srtdiscipline_key = sd.ins_srtdiscipline_key(+)
         AND (sd.ins_srtdiscipline_omschrijving LIKE 'FMIS-%' OR sd.ins_srtdiscipline_omschrijving IS NULL)
         AND NOT EXISTS
               (SELECT gr.fac_groeprechten_key
                  FROM fac_groeprechten gr
               WHERE     gr.fac_functie_key = f.fac_functie_key
                     AND gr.ins_discipline_key = d.ins_discipline_key
                     AND gr.fac_groep_key = g.fac_groep_key);
					 
-- Default rechten die niet te koppelen zijn aan een discipline (globale rechten)
INSERT INTO fac_groeprechten (fac_groep_key,
                              fac_functie_key,
                              ins_discipline_key,
                              fac_gebruiker_alg_level_read,
                              fac_gebruiker_alg_level_write,
                              fac_gebruiker_prs_level_read,
                              fac_gebruiker_prs_level_write)
    SELECT g.fac_groep_key,
           f.fac_functie_key,
           NULL,
           -1,
           -1,
           -1,
           -1
      FROM fac_functie f, fac_groep g --, ins_tab_discipline d, ins_srtdiscipline sd
     WHERE     f.fac_functie_code IN ('WEB_BEZUSE','WEB_PROFIL', 'WEB_PRSOBJ', 'WEB_PHSRCH')
           AND g.fac_groep_upper = '_DEFAULT'
           AND NOT EXISTS
                   (SELECT gr.fac_groeprechten_key
                      FROM fac_groeprechten gr
                     WHERE     gr.fac_functie_key = f.fac_functie_key
                           AND gr.fac_groep_key = g.fac_groep_key);

-- Frontoffice rechten
INSERT INTO fac_groeprechten (fac_groep_key, fac_functie_key, ins_discipline_key,
                              fac_gebruiker_alg_level_read, fac_gebruiker_alg_level_write,
                              fac_gebruiker_prs_level_read, fac_gebruiker_prs_level_write)
      SELECT g.fac_groep_key, f.fac_functie_key, d.ins_discipline_key, -1, -1, -1, -1
      FROM fac_functie f, ins_tab_discipline d, fac_groep g, ins_srtdiscipline sd
      WHERE f.fac_functie_code IN ('WEB_RESFOF', 'WEB_MLDFOF',  'WEB_FAQFOF')
         AND f.fac_functie_module = d.ins_discipline_module
         AND g.fac_groep_upper = 'FMIS-FRONTOFFICE'
         AND d.ins_srtdiscipline_key = sd.ins_srtdiscipline_key(+)
         AND (sd.ins_srtdiscipline_omschrijving LIKE 'FMIS-%' OR sd.ins_srtdiscipline_omschrijving IS NULL)
         AND NOT EXISTS
               (SELECT gr.fac_groeprechten_key
                  FROM fac_groeprechten gr
               WHERE     gr.fac_functie_key = f.fac_functie_key
                     AND gr.ins_discipline_key = d.ins_discipline_key
                     AND gr.fac_groep_key = g.fac_groep_key);
					 
-- Frontoffice rechten die niet te koppelen zijn aan een discipline (globale rechten)
INSERT INTO fac_groeprechten (fac_groep_key,
                              fac_functie_key,
                              ins_discipline_key,
                              fac_gebruiker_alg_level_read,
                              fac_gebruiker_alg_level_write,
                              fac_gebruiker_prs_level_read,
                              fac_gebruiker_prs_level_write)
    SELECT g.fac_groep_key,
           f.fac_functie_key,
           NULL,
           -1,
           -1,
           -1,
           -1
      FROM fac_functie f, fac_groep g --, ins_tab_discipline d, ins_srtdiscipline sd
     WHERE     f.fac_functie_code IN ('WEB_BEZFOF', 'WEB_INSFOF', 'WEB_PRSFOF')
           AND g.fac_groep_upper = 'FMIS-FRONTOFFICE'
           AND NOT EXISTS
                   (SELECT gr.fac_groeprechten_key
                      FROM fac_groeprechten gr
                     WHERE     gr.fac_functie_key = f.fac_functie_key
                           AND gr.fac_groep_key = g.fac_groep_key);

-- Backoffice rechten
INSERT INTO fac_groeprechten (fac_groep_key, fac_functie_key, ins_discipline_key,
                              fac_gebruiker_alg_level_read, fac_gebruiker_alg_level_write,
                              fac_gebruiker_prs_level_read, fac_gebruiker_prs_level_write)
      SELECT g.fac_groep_key, f.fac_functie_key, d.ins_discipline_key, -1, -1, -1, -1
      FROM fac_functie f, ins_tab_discipline d, fac_groep g, ins_srtdiscipline sd
      WHERE f.fac_functie_code IN ('WEB_RESBOF', 'WEB_MLDBOF', 'WEB_ORDBOF', 'WEB_FAQBOF')
         AND f.fac_functie_module = d.ins_discipline_module
         AND g.fac_groep_upper = 'FMIS-BACKOFFICE'
         AND d.ins_srtdiscipline_key = sd.ins_srtdiscipline_key(+)
         AND (sd.ins_srtdiscipline_omschrijving LIKE 'FMIS-%' OR sd.ins_srtdiscipline_omschrijving IS NULL)
         AND NOT EXISTS
               (SELECT gr.fac_groeprechten_key
                  FROM fac_groeprechten gr
               WHERE     gr.fac_functie_key = f.fac_functie_key
                     AND gr.ins_discipline_key = d.ins_discipline_key
                     AND gr.fac_groep_key = g.fac_groep_key);
					 
-- Backoffice rechten die niet te koppelen zijn aan een discipline (globale rechten)
INSERT INTO fac_groeprechten (fac_groep_key,
                              fac_functie_key,
                              ins_discipline_key,
                              fac_gebruiker_alg_level_read,
                              fac_gebruiker_alg_level_write,
                              fac_gebruiker_prs_level_read,
                              fac_gebruiker_prs_level_write)
    SELECT g.fac_groep_key,
           f.fac_functie_key,
           NULL,
           -1,
           -1,
           -1,
           -1
      FROM fac_functie f, fac_groep g --, ins_tab_discipline d, ins_srtdiscipline sd
     WHERE     f.fac_functie_code IN ('WEB_ALGUSE', 'WEB_RUIUSE', 'WEB_ALMAN', 'WEB_RUIMAN', 'WEB_TERMAN',
									'WEB_BEZBOF', 'WEB_CNTMAN', 'WEB_CNTUSE', 'WEB_INSUSE', 'WEB_FAQBOF',
									'WEB_INSMAN', 'WEB_INSUSE', 'WEB_MSGBOF', 'WEB_PRSMAN', 'WEB_RELMAN',
									'WEB_EXTREL', 'WEB_PRSUSE')
           AND g.fac_groep_upper = 'FMIS-BACKOFFICE'
           AND NOT EXISTS
                   (SELECT gr.fac_groeprechten_key
                      FROM fac_groeprechten gr
                     WHERE     gr.fac_functie_key = f.fac_functie_key
                           AND gr.fac_groep_key = g.fac_groep_key);

-- Applicatiebeheer rechten
INSERT INTO fac_groeprechten (fac_groep_key, fac_functie_key, ins_discipline_key,
                              fac_gebruiker_alg_level_read, fac_gebruiker_alg_level_write,
                              fac_gebruiker_prs_level_read, fac_gebruiker_prs_level_write)
      SELECT g.fac_groep_key, f.fac_functie_key, d.ins_discipline_key, -1, -1, -1, -1
      FROM fac_functie f, ins_tab_discipline d, fac_groep g, ins_srtdiscipline sd
         WHERE f.fac_functie_code IN ('WEB_RESMSU', 'WEB_MLDMSU', 'WEB_FAQMGT', 'WEB_FAQMSU',
                                    'WEB_RESMGT', 'WEB_MLDMGT', 'WEB_RESBAC', 'WEB_MLDBAC')
         AND f.fac_functie_module = d.ins_discipline_module
         AND g.fac_groep_upper = 'APPLICATIEBEHEER'
         AND d.ins_srtdiscipline_key = sd.ins_srtdiscipline_key(+)
         AND (sd.ins_srtdiscipline_omschrijving LIKE 'FMIS-%' OR sd.ins_srtdiscipline_omschrijving IS NULL)
         AND NOT EXISTS
               (SELECT gr.fac_groeprechten_key
                  FROM fac_groeprechten gr
               WHERE     gr.fac_functie_key = f.fac_functie_key
                     AND gr.ins_discipline_key = d.ins_discipline_key
                     AND gr.fac_groep_key = g.fac_groep_key);
					 
-- Applicatiebeheer rechten die niet te koppelen zijn aan een discipline (globale rechten)
INSERT INTO fac_groeprechten (fac_groep_key,
                              fac_functie_key,
                              ins_discipline_key,
                              fac_gebruiker_alg_level_read,
                              fac_gebruiker_alg_level_write,
                              fac_gebruiker_prs_level_read,
                              fac_gebruiker_prs_level_write)
    SELECT g.fac_groep_key,
           f.fac_functie_key,
           NULL,
           -1,
           -1,
           -1,
           -1
      FROM fac_functie f, fac_groep g --, ins_tab_discipline d, ins_srtdiscipline sd
     WHERE     f.fac_functie_code IN ('WEB_PRSMGT', 'WEB_PRSMSU', 'WEB_ALGMSU',
									'WEB_ALGMGT', 'WEB_BEZMSU', 'WEB_BEZMGT', 'WEB_BEZBAC', 'WEB_CNTMSU', 'WEB_CNTMGT',
									'WEB_FACMGT', 'WEB_FACMSU', 'WEB_IMPORT', 'WEB_PRSSYS', 'WEB_INSMGT', 'WEB_INSMSU')
           AND g.fac_groep_upper = 'APPLICATIEBEHEER'
           AND NOT EXISTS
                   (SELECT gr.fac_groeprechten_key
                      FROM fac_groeprechten gr
                     WHERE     gr.fac_functie_key = f.fac_functie_key
                           AND gr.fac_groep_key = g.fac_groep_key);
					 
-- _ADMIN rechten
INSERT INTO fac_groeprechten (fac_groep_key, fac_functie_key, ins_discipline_key,
                              fac_gebruiker_alg_level_read, fac_gebruiker_alg_level_write,
                              fac_gebruiker_prs_level_read, fac_gebruiker_prs_level_write)
      SELECT g.fac_groep_key, f.fac_functie_key, d.ins_discipline_key, -1, -1, -1, -1
      FROM fac_functie f, ins_tab_discipline d, fac_groep g, ins_srtdiscipline sd
         WHERE f.fac_functie_code IN ('WEB_RESMSU', 'WEB_MLDMSU', 'WEB_BESMSU', 'WEB_BEZMSU', 'WEB_FAQMSU', 'WEB_INSMSU',
                                    'WEB_RESMGT', 'WEB_MLDMGT', 'WEB_BESMGT', 'WEB_BEZMGT', 'WEB_FAQMGT', 'WEB_INSMGT',
                                    'WEB_RESBAC', 'WEB_MLDBAC', 'WEB_BESBAC', 'WEB_BEZBAC')
         AND f.fac_functie_module = d.ins_discipline_module
         AND g.fac_groep_upper = '_ADMIN'
         AND d.ins_srtdiscipline_key = sd.ins_srtdiscipline_key(+)
         AND (sd.ins_srtdiscipline_omschrijving LIKE 'FMIS-%' OR sd.ins_srtdiscipline_omschrijving IS NULL)
         AND NOT EXISTS
               (SELECT gr.fac_groeprechten_key
                  FROM fac_groeprechten gr
               WHERE     gr.fac_functie_key = f.fac_functie_key
                     AND gr.ins_discipline_key = d.ins_discipline_key
                     AND gr.fac_groep_key = g.fac_groep_key);
					 
-- _ADMIN rechten die niet te koppelen zijn aan een discipline (globale rechten) muv WEB_FACFAC en WEB_FACHML en WEB_FACTAB
INSERT INTO fac_groeprechten (fac_groep_key,
                              fac_functie_key,
                              ins_discipline_key,
                              fac_gebruiker_alg_level_read,
                              fac_gebruiker_alg_level_write,
                              fac_gebruiker_prs_level_read,
                              fac_gebruiker_prs_level_write)
    SELECT g.fac_groep_key,
           f.fac_functie_key,
           NULL,
           -1,
           -1,
           -1,
           -1
      FROM fac_functie f, fac_groep g --, ins_tab_discipline d, ins_srtdiscipline sd
     WHERE     f.fac_functie_code IN ('WEB_BEZBAC', 'WEB_BEZUSE', 'WEB_CADUSE',
									'WEB_CADALG', 'WEB_CADCNT', 'WEB_CADMLD', 'WEB_CADPRS', 'WEB_CADSCH', 'WEB_FACQRC',
									'WEB_EXTFIN', 'WEB_FINGOE', 'WEB_VERFAC', 'WEB_KPIRAP', 'WEB_UURUSE', 'WEB_MRKUSE',
									'WEB_MSGUSE', 'WEB_PHONEB', 'WEB_PHSRCH', 'WEB_PROFIL', 'WEB_PRSOBJ', 'WEB_WGTUSE')
           AND g.fac_groep_upper = '_ADMIN'
           AND NOT EXISTS
                   (SELECT gr.fac_groeprechten_key
                      FROM fac_groeprechten gr
                     WHERE     gr.fac_functie_key = f.fac_functie_key
                           AND gr.fac_groep_key = g.fac_groep_key);


-- _FACILITOR-rechten
-- We willen tbv Support dat _FACILITOR alles kan, dus ook rechten krijgt op de zaken
-- die hier zijn aangemaakt. De rest had-ie standaard al.
-- Dit zijn dus autorisaties als ORDAFR, ORDBO2, ORDGO5, UURBOF, CNTGO1 en MLDREO.
INSERT INTO fac_groeprechten (fac_groep_key, fac_functie_key, ins_discipline_key,
                              fac_gebruiker_alg_level_read, fac_gebruiker_alg_level_write,
                              fac_gebruiker_prs_level_read, fac_gebruiker_prs_level_write)
      SELECT g.fac_groep_key, f.fac_functie_key, d.ins_discipline_key, -1, -1, -1, -1
        FROM fac_functie f, ins_tab_discipline d, fac_groep g, ins_srtdiscipline sd
       WHERE f.fac_functie_module = d.ins_discipline_module
         AND g.fac_groep_upper = '_FACILITOR'
         AND f.fac_functie_discipline = 1
         AND d.ins_srtdiscipline_key = sd.ins_srtdiscipline_key(+)
         AND (sd.ins_srtdiscipline_omschrijving LIKE 'FMIS-%' OR sd.ins_srtdiscipline_omschrijving IS NULL)
         AND NOT EXISTS
               (SELECT gr.fac_groeprechten_key
                  FROM fac_groeprechten gr
               WHERE     gr.fac_functie_key = f.fac_functie_key
                     AND gr.ins_discipline_key = d.ins_discipline_key
                     AND gr.fac_groep_key = g.fac_groep_key);

fac.writelog ('INI.FMIS_INI','I', 'AUT completed', '');

-- Voorbeeldvulling
-- Importeren van locatie en gebouwen (ONRGOED1) - voor nu weglaten. Als klanten wellicht dit zelf gaan gebruiken dan kan het toegevoegd worden wel dan een lijst van 5 en niet 1 waarde.
/* INSERT INTO fac_imp_onrgoed1 (alg_regio_omschrijving, alg_district_omschrijving,
                           alg_locatie_code, alg_locatie_omschrijving, alg_gebouw_code, alg_gebouw_naam, alg_srtgebouw_omschrijving,
                           alg_locatie_adres, alg_locatie_postcode, alg_locatie_plaats)
   VALUES ('Nederland', 'Midden',
            'UTR','Hoofdkantoor','HQ','Hoofdgebouw','Kantoor',
            'Grotestraat 123','1234 AB','Utrecht');
BEGIN fac_update_onrgoed1(ini.getImportKey('ONRGOED1')); END;
DELETE FROM fac_imp_onrgoed1; */

-- Wil ik dit, en zo, en specifiek? Core!
INSERT INTO fac_menu (fac_menu_altlabel,
                      fac_menu_altgroep,
                      fac_menu_volgnr,
                      fac_menu_alturl,
                      fac_functie_key,
                      fac_menu_level,
                      ins_discipline_key)
    SELECT 'Reserveer werkplek**',
           0,
           650,
              'appl/res/res_rsv_deel_by_placetime.asp?selectmode=1&res_disc='
           || rd.ins_discipline_key
           || '&limit=15',
           f.fac_functie_key,
           0,
           rd.ins_discipline_key
      FROM fac_functie f, res_discipline rd
     WHERE rd.ins_discipline_omschrijving = 'Flexplekken' AND f.fac_functie_code = 'WEB_RESUSE';

-- Interne organisatiestructuur (ORGANISATIE), is die kostenplaats nodig?
INSERT INTO fac_imp_organisatie (prs_bedrijf_naam, prs_afdeling_naam, prs_afdeling_omschrijving, prs_kostenplaats_nr)
   SELECT 'Onze organisatie',    'SALES',    'Sales & Marketing',       'S'   FROM DUAL UNION ALL
   SELECT 'Onze organisatie',    'DIR',      'Directie',                'D'   FROM DUAL UNION ALL
   SELECT 'Onze organisatie',    'HR',       'Personeel & Organisatie', 'P'   FROM DUAL UNION ALL
   SELECT 'Onze organisatie',    'ICT',      'ICT',                     'I'   FROM DUAL UNION ALL
   SELECT 'Onze organisatie',    'FIN',      'Finance',                 'FIN' FROM DUAL UNION ALL
   SELECT 'Onze organisatie',    'MW',     	 'Overig',                  'MW'  FROM DUAL UNION ALL
   SELECT 'Onze organisatie',    'FM',       'Facility Management',     'FM'  FROM DUAL;
BEGIN fac_update_organisatie(ini.getImportKey('ORGANISATIE')); END;
DELETE FROM fac_imp_organisatie;

-- Minimale gebruikers, moet gedocumenteerd worden, wachtwoorden via wachtwoord-vergeten oid
-- nummers/mail hebben bewust ongeldig format om gegarandeerd ongeldig te zijn
INSERT INTO fac_imp_perslid (prs_afdeling_naam, prs_perslid_naam, prs_perslid_voornaam, prs_perslid_telefoonnr, prs_perslid_mobiel, prs_perslid_email, prs_srtperslid_omschrijving, prs_perslid_nr, prs_perslid_oslogin, prs_perslid_wachtwoord)
   SELECT 'MW',	'Medewerker',   'Marco',  '022-398345',  '06-2978529', 'marco.medewerker@wxyz', 'Medewerker',   '001', 'Marco',  'Medewerker21#' FROM DUAL UNION ALL
   SELECT 'FM',	'Backoffice',     'Bas',      '022-398346',    '06-2978630',   'bas.backoffice@wxyz',     'Medewerker',     '002',   'Bas',      'Backoffice21#'   FROM DUAL UNION ALL
   SELECT 'FM',	'Frontoffice',    'Furkan',   '022-398248',    '06-2935632',   'furkan.frontoffice@wxyz', 'Medewerker',     '003',   'Furkan',   'Frontoffice21#'  FROM DUAL UNION ALL
   SELECT 'ICT', 'Beheerder',      'Barbara',  '022-398247',    '06-2937631',   'barbara.beheerder@wxyz',  'Medewerker',     '004',   'Barbara',  'Beheerder21#'    FROM DUAL;
BEGIN fac_update_perslid(ini.getImportKey('PERSLID')); END;
DELETE FROM fac_imp_perslid;

-- Rechten toekennen aan de personen
-- Iedereen zit standaard in de _DEFAULT groep
INSERT INTO fac_gebruikersgroep (fac_groep_key, prs_perslid_key) SELECT g.fac_groep_key, p.prs_perslid_key FROM fac_groep g, prs_perslid p WHERE g.fac_groep_upper = 'FMIS-BACKOFFICE' AND p.prs_perslid_naam = 'Backoffice';
INSERT INTO fac_gebruikersgroep (fac_groep_key, prs_perslid_key) SELECT g.fac_groep_key, p.prs_perslid_key FROM fac_groep g, prs_perslid p WHERE g.fac_groep_upper = 'FMIS-FRONTOFFICE' AND p.prs_perslid_naam = 'Backoffice';
INSERT INTO fac_gebruikersgroep (fac_groep_key, prs_perslid_key) SELECT g.fac_groep_key, p.prs_perslid_key FROM fac_groep g, prs_perslid p WHERE g.fac_groep_upper = 'FMIS-FRONTOFFICE' AND p.prs_perslid_naam = 'Frontoffice';
INSERT INTO fac_gebruikersgroep (fac_groep_key, prs_perslid_key) SELECT g.fac_groep_key, p.prs_perslid_key FROM fac_groep g, prs_perslid p WHERE g.fac_groep_upper = 'APPLICATIEBEHEER' AND  p.prs_perslid_naam = 'Beheerder';

-- Nieuws bericht
INSERT INTO fac_nieuws (fac_nieuws_titel, fac_nieuws_omschrijving, fac_nieuws_image,
            prs_perslid_key)
    SELECT 'Facilitor voor al je facilitaire zaken', 'Gefeliciteerd met de keuze voor Facilitor! Dit is een eerste stap naar totale controle over je dienstverlenende processen.', 'fa-person-through-window',
           prs_perslid_key
      FROM prs_perslid
     WHERE prs_perslid_oslogin = '_FACILITOR';

-- 'Help me' verwijderen
DELETE FROM fac_menu WHERE fac_menu_altlabel = 'lcl_menu_mld_fe_5';

-- Widgetpagina aanmaken
/* DECLARE
	mijn_widget_paginakey  fac_widget_page.fac_widget_page_key%TYPE;
	mijn_aanvraag_paginakey fac_menu.fac_menu_key%TYPE;
	mijn_storing_paginakey fac_menu.fac_menu_key%TYPE;
	mijn_klacht_paginakey fac_menu.fac_menu_key%TYPE;
	mijn_aanvraag_widgetkey fac_widget.fac_widget_key%TYPE;
	mijn_storing_widgetkey fac_widget.fac_widget_key%TYPE;
	mijn_klacht_widgetkey fac_widget.fac_widget_key%TYPE;
BEGIN
	INSERT INTO fac_widget_page(fac_widget_page_name, prs_perslid_key, fac_groep_key) VALUES ('Startpagina', NULL, NULL)
	RETURNING fac_widget_page_key INTO mijn_widget_paginakey;
	UPDATE fac_setting SET fac_setting_pvalue = mijn_widget_paginakey WHERE fac_setting_name = 'widgetportal';
	
	-- Menuitems Aanvraag, Storing, Klacht aanmaken
	INSERT INTO fac_menu(fac_menuitems_key, fac_menu_altlabel, fac_menu_altgroep, fac_menu_image, fac_menu_info, fac_menu_message, fac_menu_volgnr, fac_menu_alturl, fac_functie_key, fac_menu_portal, fac_menu_level, ins_srtdiscipline_key, ins_discipline_key) VALUES ( NULL, 'Doe een aanvraag', 0, 'fa-comments-question-check', NULL, NULL, 60, '/appl/mld/mld_fe_menu.asp?srtdisc=1&lvl=1', NULL, NULL, 2, NULL, NULL)
	RETURNING fac_menu_key INTO mijn_aanvraag_paginakey;
	INSERT INTO fac_menu(fac_menuitems_key, fac_menu_altlabel, fac_menu_altgroep, fac_menu_image, fac_menu_info, fac_menu_message, fac_menu_volgnr, fac_menu_alturl, fac_functie_key, fac_menu_portal, fac_menu_level, ins_srtdiscipline_key, ins_discipline_key) VALUES ( NULL, 'Meld een storing', 0, 'fa-comments-alt-exclamation', NULL, NULL, 70, '/appl/mld/mld_fe_menu.asp?srtdisc=3&lvl=1', NULL, NULL, 2, NULL, NULL)
	RETURNING fac_menu_key INTO mijn_storing_paginakey;
	INSERT INTO fac_menu(fac_menuitems_key, fac_menu_altlabel, fac_menu_altgroep, fac_menu_image, fac_menu_info, fac_menu_message, fac_menu_volgnr, fac_menu_alturl, fac_functie_key, fac_menu_portal, fac_menu_level, ins_srtdiscipline_key, ins_discipline_key) VALUES ( NULL, 'Meld een klacht', 0, 'fa-bell-ring', NULL, NULL, 80, '/appl/mld/mld_fe_menu.asp?srtdisc=2&lvl=1', NULL, NULL, 2, NULL, NULL)
	RETURNING fac_menu_key INTO mijn_klacht_paginakey;

	-- losse widgets aanmaken van de menuitems
	INSERT INTO fac_widget(fac_widget_type, fac_widget_naam, fac_widget_typerefkey, fac_widget_content, fac_widget_url, fac_widget_title, fac_widget_refreshtime, fac_widget_id, fac_widget_height, fac_widget_width, fac_functie_key, fac_widget_public) VALUES ('MI', 'Doe een aanvraag', mijn_aanvraag_paginakey, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0)
	RETURNING fac_widget_key INTO mijn_aanvraag_widgetkey;
	INSERT INTO fac_widget(fac_widget_type, fac_widget_naam, fac_widget_typerefkey, fac_widget_content, fac_widget_url, fac_widget_title, fac_widget_refreshtime, fac_widget_id, fac_widget_height, fac_widget_width, fac_functie_key, fac_widget_public) VALUES ('MI', 'Meld een storing', mijn_storing_paginakey, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0)
	RETURNING fac_widget_key INTO mijn_storing_widgetkey;
	INSERT INTO fac_widget(fac_widget_type, fac_widget_naam, fac_widget_typerefkey, fac_widget_content, fac_widget_url, fac_widget_title, fac_widget_refreshtime, fac_widget_id, fac_widget_height, fac_widget_width, fac_functie_key, fac_widget_public) VALUES ('MI', 'Meld een klacht', mijn_klacht_paginakey, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0)
	RETURNING fac_widget_key INTO mijn_klacht_widgetkey;

	-- Widgets op de widgetpagina zetten
	INSERT ALL INTO fac_widget_onpage (fac_widget_page_key, fac_widget_key, fac_widget_onpage_order, fac_widget_onpage_height, fac_widget_onpage_width) VALUES (mijn_widget_paginakey, mijn_aanvraag_widgetkey, 0, null, 33) 
	INTO fac_widget_onpage (fac_widget_page_key, fac_widget_key, fac_widget_onpage_order, fac_widget_onpage_height, fac_widget_onpage_width) VALUES (mijn_widget_paginakey, mijn_storing_widgetkey, 1, null, 33) 
	INTO fac_widget_onpage (fac_widget_page_key, fac_widget_key, fac_widget_onpage_order, fac_widget_onpage_height, fac_widget_onpage_width) VALUES (mijn_widget_paginakey, mijn_klacht_widgetkey, 2, null, 33) 
	INTO fac_widget_onpage (fac_widget_page_key, fac_widget_key, fac_widget_onpage_order, fac_widget_onpage_height, fac_widget_onpage_width) VALUES (mijn_widget_paginakey, 1, 3, null, 100) 
	INTO fac_widget_onpage (fac_widget_page_key, fac_widget_key, fac_widget_onpage_order, fac_widget_onpage_height, fac_widget_onpage_width) VALUES (mijn_widget_paginakey, 2, 4, null, 100) 
	INTO fac_widget_onpage (fac_widget_page_key, fac_widget_key, fac_widget_onpage_order, fac_widget_onpage_height, fac_widget_onpage_width) VALUES (mijn_widget_paginakey, 3, 5, null, 100) 
	INTO fac_widget_onpage (fac_widget_page_key, fac_widget_key, fac_widget_onpage_order, fac_widget_onpage_height, fac_widget_onpage_width) VALUES (mijn_widget_paginakey, 4, 6, null, 100) 
	SELECT 1 FROM DUAL;
END; */


DECLARE
    -- CNT declaraties
    v_discipline_key ins_tab_discipline.ins_discipline_key%TYPE;
    v_key cnt_srtkenmerk.cnt_srtkenmerk_key%TYPE;
    -- Widgetpagina declaraties
    mijn_widget_paginakey  fac_widget_page.fac_widget_page_key%TYPE;
    mijn_aanvraag_paginakey fac_menu.fac_menu_key%TYPE;
    mijn_storing_paginakey fac_menu.fac_menu_key%TYPE;
    mijn_klacht_paginakey fac_menu.fac_menu_key%TYPE;
    mijn_aanvraag_widgetkey fac_widget.fac_widget_key%TYPE;
    mijn_storing_widgetkey fac_widget.fac_widget_key%TYPE;
    mijn_klacht_widgetkey fac_widget.fac_widget_key%TYPE;
BEGIN
    -- CNT inserts
    INSERT INTO ins_tab_discipline (ins_discipline_omschrijving, ins_discipline_module) VALUES ('Onderhoudscontract', 'CNT')
        RETURNING ins_discipline_key INTO v_discipline_key;
    INSERT INTO cnt_disc_params (cnt_ins_discipline_key, cnt_srtcontract_type) VALUES (v_discipline_key, 1);

    INSERT INTO ins_tab_discipline (ins_discipline_omschrijving, ins_discipline_module) VALUES ('Servicecontract', 'CNT')
        RETURNING ins_discipline_key INTO v_discipline_key;
    INSERT INTO cnt_disc_params (cnt_ins_discipline_key, cnt_srtcontract_type) VALUES (v_discipline_key, 3);

    INSERT INTO ins_tab_discipline (ins_discipline_omschrijving, ins_discipline_module) VALUES ('Algemeen contract', 'CNT')
        RETURNING ins_discipline_key INTO v_discipline_key;
    INSERT INTO cnt_disc_params (cnt_ins_discipline_key, cnt_srtcontract_type) VALUES (v_discipline_key, 4);

    INSERT INTO ins_tab_discipline (ins_discipline_omschrijving, ins_discipline_module) VALUES ('Leverancierscontract', 'CNT')
        RETURNING ins_discipline_key INTO v_discipline_key;
    INSERT INTO cnt_disc_params (cnt_ins_discipline_key, cnt_srtcontract_type) VALUES (v_discipline_key, 5);

    INSERT INTO ins_tab_discipline (ins_discipline_omschrijving, ins_discipline_module) VALUES ('Mantelcontract', 'CNT')
        RETURNING ins_discipline_key INTO v_discipline_key;
    INSERT INTO cnt_disc_params (cnt_ins_discipline_key, cnt_srtcontract_type) VALUES (v_discipline_key, 6);
    -- Alle contracten hebben bijlagen
    INSERT INTO cnt_srtkenmerk (cnt_srtkenmerk_omschrijving, cnt_srtkenmerk_kenmerktype) VALUES ('Bijlagen', 'M')
        RETURNING cnt_srtkenmerk_key INTO v_key;
    INSERT INTO cnt_kenmerk (cnt_srtkenmerk_key,
                              cnt_srtcontract_key,
                              cnt_kenmerk_niveau,
                              cnt_kenmerk_volgnummer,
                              cnt_kenmerk_groep)
         SELECT v_key, ins_discipline_key, 'S', 100, 0 FROM cnt_discipline;
    -- Widgetpagina inserts
    INSERT INTO fac_widget_page(fac_widget_page_name, prs_perslid_key, fac_groep_key) VALUES ('Startpagina', NULL, NULL)
        RETURNING fac_widget_page_key INTO mijn_widget_paginakey;
    UPDATE fac_setting SET fac_setting_pvalue = mijn_widget_paginakey WHERE fac_setting_name = 'widgetportal';
    -- Menuitems Aanvraag, Storing, Klacht aanmaken
    INSERT INTO fac_menu(fac_menuitems_key, fac_menu_altlabel, fac_menu_altgroep, fac_menu_image, fac_menu_info, fac_menu_message, fac_menu_volgnr, fac_menu_alturl, fac_functie_key, fac_menu_portal, fac_menu_level, ins_srtdiscipline_key, ins_discipline_key)
        VALUES (NULL, 'Doe een aanvraag', 0, 'fa-comments-question-check', NULL, NULL, 60, '/appl/mld/mld_fe_menu.asp?srtdisc=1&lvl=1', NULL, NULL, 2, NULL, NULL)
        RETURNING fac_menu_key INTO mijn_aanvraag_paginakey;

    INSERT INTO fac_menu(fac_menuitems_key, fac_menu_altlabel, fac_menu_altgroep, fac_menu_image, fac_menu_info, fac_menu_message, fac_menu_volgnr, fac_menu_alturl, fac_functie_key, fac_menu_portal, fac_menu_level, ins_srtdiscipline_key, ins_discipline_key)
        VALUES (NULL, 'Meld een storing', 0, 'fa-message-exclamation', NULL, NULL, 70, '/appl/mld/mld_fe_menu.asp?srtdisc=3&lvl=1', NULL, NULL, 2, NULL, NULL)
        RETURNING fac_menu_key INTO mijn_storing_paginakey;

    INSERT INTO fac_menu(fac_menuitems_key, fac_menu_altlabel, fac_menu_altgroep, fac_menu_image, fac_menu_info, fac_menu_message, fac_menu_volgnr, fac_menu_alturl, fac_functie_key, fac_menu_portal, fac_menu_level, ins_srtdiscipline_key, ins_discipline_key)
        VALUES (NULL, 'Meld een klacht', 0, 'fa-bell-ring', NULL, NULL, 80, '/appl/mld/mld_fe_menu.asp?srtdisc=2&lvl=1', NULL, NULL, 2, NULL, NULL)
        RETURNING fac_menu_key INTO mijn_klacht_paginakey;
    -- Widgets aanmaken
    INSERT INTO fac_widget(fac_widget_type, fac_widget_naam, fac_widget_typerefkey, fac_widget_content, fac_widget_url, fac_widget_title, fac_widget_refreshtime, fac_widget_id, fac_widget_height, fac_widget_width, fac_functie_key, fac_widget_public)
        VALUES ('MI', 'Doe een aanvraag', mijn_aanvraag_paginakey, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0)
        RETURNING fac_widget_key INTO mijn_aanvraag_widgetkey;

    INSERT INTO fac_widget(fac_widget_type, fac_widget_naam, fac_widget_typerefkey, fac_widget_content, fac_widget_url, fac_widget_title, fac_widget_refreshtime, fac_widget_id, fac_widget_height, fac_widget_width, fac_functie_key, fac_widget_public)
        VALUES ('MI', 'Meld een storing', mijn_storing_paginakey, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0)
        RETURNING fac_widget_key INTO mijn_storing_widgetkey;

    INSERT INTO fac_widget(fac_widget_type, fac_widget_naam, fac_widget_typerefkey, fac_widget_content, fac_widget_url, fac_widget_title, fac_widget_refreshtime, fac_widget_id, fac_widget_height, fac_widget_width, fac_functie_key, fac_widget_public)
        VALUES ('MI', 'Meld een klacht', mijn_klacht_paginakey, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0)
        RETURNING fac_widget_key INTO mijn_klacht_widgetkey;
    -- Widgets op de pagina zetten
    INSERT ALL 
        INTO fac_widget_onpage (fac_widget_page_key, fac_widget_key, fac_widget_onpage_order, fac_widget_onpage_height, fac_widget_onpage_width) VALUES (mijn_widget_paginakey, mijn_aanvraag_widgetkey, 0, NULL, 33)
        INTO fac_widget_onpage (fac_widget_page_key, fac_widget_key, fac_widget_onpage_order, fac_widget_onpage_height, fac_widget_onpage_width) VALUES (mijn_widget_paginakey, mijn_storing_widgetkey, 1, NULL, 33)
        INTO fac_widget_onpage (fac_widget_page_key, fac_widget_key, fac_widget_onpage_order, fac_widget_onpage_height, fac_widget_onpage_width) VALUES (mijn_widget_paginakey, mijn_klacht_widgetkey, 2, NULL, 33)
        INTO fac_widget_onpage (fac_widget_page_key, fac_widget_key, fac_widget_onpage_order, fac_widget_onpage_height, fac_widget_onpage_width) VALUES (mijn_widget_paginakey, 1, 3, NULL, 100)
        INTO fac_widget_onpage (fac_widget_page_key, fac_widget_key, fac_widget_onpage_order, fac_widget_onpage_height, fac_widget_onpage_width) VALUES (mijn_widget_paginakey, 2, 4, NULL, 100)
        INTO fac_widget_onpage (fac_widget_page_key, fac_widget_key, fac_widget_onpage_order, fac_widget_onpage_height, fac_widget_onpage_width) VALUES (mijn_widget_paginakey, 3, 5, NULL, 100)
        INTO fac_widget_onpage (fac_widget_page_key, fac_widget_key, fac_widget_onpage_order, fac_widget_onpage_height, fac_widget_onpage_width) VALUES (mijn_widget_paginakey, 4, 6, NULL, 100)
    SELECT 1 FROM DUAL;
END;

fac.writelog ('INI.FMIS_INI','I', 'All completed', '');

------ payload end   ------

BEGIN adm.systrackscriptId ('$Id$', 1); END;

