194 lines
8.7 KiB
SQL
194 lines
8.7 KiB
SQL
SET ECHO ON
|
|
SPOOL PNBR#35189.lst
|
|
SET DEFINE OFF
|
|
|
|
CREATE OR REPLACE PROCEDURE pnbr_import_perslid_mut (p_import_key IN NUMBER)
|
|
AS
|
|
v_seq_of_columns VARCHAR(255);
|
|
BEGIN
|
|
|
|
v_seq_of_columns := '1;2;0;4;5;6;7;8;9;11;10;0;0;0;0;13;14;15;0;17;16;18;19;12;0;0;3;28;29;30;31;32;33;34;35;36;37;38;39;40;41;42;43;44;45;46';
|
|
prs.import_perslid(p_import_key, v_seq_of_columns, 'LOCATIECODE;GEBOUWCODE;BOUWLAAGVOLGNUMMER;RUIMTENUMMER;WERKPLEKVOLGNUMMER;OMSCHRIJVING;AFDELINGSCODE;PERSOONACHTERNAAM;TUSSENVOEGSEL;VOORLETTERS;VOORNAAM;TITEL_AANHEF;TELEFOONNUMMER;MOBIEL;EMAIL;FUNCTIE;PERSONEELSNUMMER;LOGINNAAM;PASSWORD%');
|
|
|
|
-- we gebruikten kenmerk1 om tijdelijk de verdieping op te slaan. Bij PNBR kunnen namelijk letters in de verdieping staan. Deze
|
|
-- proberen we eruit te werken zodat we op het laatst de verdieping weer om kunnen zetten.
|
|
UPDATE fac_imp_perslid SET alg_locatie_code = 'PP', alg_gebouw_code = '04' WHERE alg_gebouw_code = 'Pettelaarpar';
|
|
UPDATE fac_imp_perslid SET alg_locatie_code = 'BEST', alg_gebouw_code = '05', prs_kenmerk1 = '0', alg_ruimte_nr = 'FLEX' WHERE alg_gebouw_code = 'Best';
|
|
UPDATE fac_imp_perslid SET alg_locatie_code = 'PH', alg_gebouw_code = '02', prs_kenmerk1 = SUBSTR(prs_kenmerk1, 2, 3) WHERE alg_gebouw_code = 'Provinciehui' and prs_kenmerk1 LIKE 'N%';
|
|
UPDATE fac_imp_perslid SET alg_locatie_code = 'PH', alg_gebouw_code = '01', prs_kenmerk1 = '0' WHERE alg_gebouw_code = 'Provinciehui' and prs_kenmerk1 LIKE 'B%';
|
|
UPDATE fac_imp_perslid SET alg_locatie_code = 'PH', alg_gebouw_code = '01', prs_kenmerk1 = '-1' WHERE alg_gebouw_code = 'Provinciehui' and prs_kenmerk1 LIKE 'P%';
|
|
UPDATE fac_imp_perslid SET alg_locatie_code = 'PH', alg_gebouw_code = '01' WHERE alg_gebouw_code = 'Provinciehui';
|
|
UPDATE fac_imp_perslid SET alg_locatie_code = '26', alg_gebouw_code = '26', prs_kenmerk1 = '1', alg_ruimte_nr = '01' WHERE alg_gebouw_code = 'Eindhoven';
|
|
UPDATE fac_imp_perslid SET alg_locatie_code = '51', alg_gebouw_code = '51', prs_kenmerk1 = '1', alg_ruimte_nr = '01' WHERE alg_gebouw_code = 'Den Haag';
|
|
UPDATE fac_imp_perslid SET alg_locatie_code = 'ODBN (DB)', alg_gebouw_code = 'ODBN (DB)', prs_kenmerk1 = '1', alg_ruimte_nr = '1' WHERE alg_gebouw_code = '''s-Hertogenb';
|
|
UPDATE fac_imp_perslid SET alg_locatie_code = 'ODBN (C)', alg_gebouw_code = 'ODBN', prs_kenmerk1 = '1', alg_ruimte_nr = '1' WHERE alg_gebouw_code = 'Cuijk (ODBN)';
|
|
UPDATE fac_imp_perslid SET alg_locatie_code = 'ODZOB', alg_gebouw_code = 'ODZOB', prs_kenmerk1 = '1', alg_ruimte_nr = '1' WHERE alg_gebouw_code = 'Eindhoven (O';
|
|
UPDATE fac_imp_perslid SET alg_locatie_code = 'OMWB', alg_gebouw_code = 'OMWB', prs_kenmerk1 = '1', alg_ruimte_nr = '1' WHERE alg_gebouw_code = 'Tilburg (OMW';
|
|
UPDATE fac_imp_perslid SET alg_locatie_code = 'C-TOREN', alg_gebouw_code = 'C-Toren' WHERE alg_gebouw_code = 'C-Toren, Pet';
|
|
UPDATE fac_imp_perslid SET alg_verdieping_volgnr = FAC.SAFE_TO_NUMBER(prs_kenmerk1);
|
|
UPDATE fac_imp_perslid SET alg_ruimte_nr = '_FLEX' WHERE alg_locatie_code = 'PH' AND alg_gebouw_code = '01' AND alg_ruimte_nr = 'FLEX';
|
|
|
|
-- pas de ruimtegegevens aan voor ruimten in de C-Toren die niet gevonden kunnen worden.
|
|
-- en zet deze standaard op 2-FLEX.
|
|
UPDATE fac_imp_perslid i
|
|
SET alg_verdieping_volgnr = 2, alg_ruimte_nr = 'FLEX'
|
|
WHERE alg_locatie_code = 'C-TOREN'
|
|
AND NOT EXISTS
|
|
(SELECT alg_ruimte_key
|
|
FROM alg_v_ruimte_gegevens rg
|
|
WHERE rg.alg_locatie_code = i.alg_locatie_code
|
|
AND rg.alg_gebouw_upper = UPPER (i.alg_gebouw_code)
|
|
AND rg.alg_verdieping_volgnr = i.alg_verdieping_volgnr
|
|
AND rg.alg_ruimte_nr = i.alg_ruimte_nr);
|
|
END pnbr_import_perslid_mut;
|
|
/
|
|
|
|
INSERT INTO alg_ruimte (alg_verdieping_key,
|
|
alg_srtruimte_key,
|
|
alg_ruimte_nr,
|
|
alg_ruimte_omschrijving)
|
|
SELECT alg_verdieping_key,
|
|
NULL,
|
|
'_FLEX',
|
|
'Flex voor personen import'
|
|
FROM alg_v_verdieping_gegevens
|
|
WHERE alg_locatie_code = 'PH' AND alg_gebouw_upper = '01';
|
|
|
|
-- nu eerst de import draaien om de mensen om te hangen naar de nieuwe _FLEX ruimte
|
|
DECLARE
|
|
v_import_key NUMBER;
|
|
BEGIN
|
|
SELECT MAX(fac_import_key)
|
|
INTO v_import_key
|
|
FROM fac_import
|
|
WHERE fac_import_app_key = 41;
|
|
|
|
pnbr_import_perslid_mut (v_import_key);
|
|
|
|
UPDATE fac_import
|
|
SET fac_import_datum_gelezen = SYSDATE
|
|
WHERE fac_import_key = v_import_key;
|
|
|
|
pnbr_update_perslid_mut (v_import_key);
|
|
|
|
UPDATE fac_import
|
|
SET fac_import_datum_verwerkt = SYSDATE
|
|
WHERE fac_import_key = v_import_key;
|
|
|
|
COMMIT;
|
|
END;
|
|
/
|
|
|
|
|
|
-- nu is de import gedraaid en gaan we mensen die nog aan de FLEX plekken hangen verwijderen.
|
|
DELETE prs_perslidwerkplek
|
|
WHERE prs_perslidwerkplek_key IN
|
|
(SELECT DISTINCT prs_perslidwerkplek_key
|
|
FROM prs_v_perslidwerkplek_gegevens
|
|
WHERE alg_ruimte_nr = 'FLEX'
|
|
AND prs_perslidwerkplek_key IS NOT NULL);
|
|
|
|
-- De object gaan we aan de werkplek koppelen. Deze moeten dan wel een werkplek binding hebben
|
|
-- PC, Monitor, Thin Client
|
|
UPDATE ins_srtdeel
|
|
SET ins_srtdeel_binding = 51
|
|
WHERE ins_srtdeel_key in (73, 68, 821);
|
|
|
|
-- Nu gaan we voor de flex ruimten in de toren vanaf de 2e verdieping 68 werkplekken aanmaken (als ze al niet bestaan)
|
|
DECLARE
|
|
CURSOR c
|
|
IS
|
|
SELECT alg_ruimte_key
|
|
FROM alg_v_ruimte_gegevens
|
|
WHERE alg_locatie_code = 'PH'
|
|
AND alg_gebouw_upper = '01'
|
|
AND alg_ruimte_nr = 'FLEX'
|
|
AND alg_verdieping_volgnr > 2;
|
|
|
|
v_wp_index NUMBER;
|
|
v_werkplek_key NUMBER;
|
|
BEGIN
|
|
FOR rec IN c
|
|
LOOP
|
|
FOR v_wp_index IN 1 .. 68
|
|
LOOP
|
|
BEGIN
|
|
SELECT prs_werkplek_key
|
|
INTO v_werkplek_key
|
|
FROM prs_v_werkplek_gegevens
|
|
WHERE alg_ruimte_key = rec.alg_ruimte_key
|
|
AND prs_werkplek_volgnr = v_wp_index;
|
|
|
|
DBMS_OUTPUT.put_line( 'Gevonden ruimte_key: '
|
|
|| rec.alg_ruimte_key
|
|
|| ' wp_index:'
|
|
|| v_wp_index);
|
|
|
|
UPDATE prs_werkplek
|
|
SET prs_werkplek_omschrijving = 'Bureau-' || v_wp_index
|
|
WHERE prs_werkplek_key = v_werkplek_key;
|
|
EXCEPTION
|
|
WHEN NO_DATA_FOUND
|
|
THEN
|
|
DBMS_OUTPUT.put_line( 'NIET Gevonden ruimte_key: '
|
|
|| rec.alg_ruimte_key
|
|
|| ' wp_index:'
|
|
|| v_wp_index);
|
|
|
|
INSERT INTO prs_werkplek (prs_werkplek_module,
|
|
prs_werkplek_volgnr,
|
|
prs_werkplek_omschrijving,
|
|
prs_werkplek_virtueel,
|
|
prs_alg_ruimte_key,
|
|
prs_werkplek_type)
|
|
VALUES ('PRR',
|
|
v_wp_index,
|
|
'Bureau-' || v_wp_index,
|
|
0,
|
|
rec.alg_ruimte_key,
|
|
0);
|
|
END;
|
|
END LOOP;
|
|
END LOOP;
|
|
|
|
COMMIT;
|
|
END;
|
|
/
|
|
|
|
-- Nu gaan we de objecten die een kenmerk werkpleknummer hebben omhangen
|
|
DECLARE
|
|
CURSOR c
|
|
IS
|
|
SELECT d.ins_deel_key, wp.prs_werkplek_key
|
|
FROM ins_kenmerkdeel kd,
|
|
ins_kenmerk k,
|
|
fac_usrdata ud,
|
|
ins_deel d,
|
|
prs_werkplek wp
|
|
WHERE kd.ins_kenmerk_key = k.ins_kenmerk_key
|
|
AND k.ins_srtkenmerk_key = 861
|
|
AND fac.safe_to_number (ins_kenmerkdeel_waarde) = ud.fac_usrdata_key
|
|
AND kd.ins_deel_key = d.ins_deel_key
|
|
AND d.ins_alg_ruimte_type = 'R'
|
|
AND d.ins_alg_ruimte_key = wp.prs_alg_ruimte_key
|
|
AND wp.prs_werkplek_volgnr = fac.safe_to_number (fac_usrdata_omschr)
|
|
AND wp.prs_werkplek_omschrijving LIKE 'Bureau%';
|
|
BEGIN
|
|
FOR rec IN c
|
|
LOOP
|
|
UPDATE ins_deel
|
|
SET ins_alg_ruimte_type = 'W',
|
|
ins_alg_ruimte_key = rec.prs_werkplek_key
|
|
WHERE ins_deel_key = rec.ins_deel_key;
|
|
END LOOP;
|
|
|
|
COMMIT;
|
|
END;
|
|
/
|
|
|
|
BEGIN adm.systrackscriptId('$Id$', 0); END;
|
|
/
|
|
|
|
COMMIT;
|
|
SPOOL OFF;
|