svn path=/Customer/trunk/; revision=13968

This commit is contained in:
Maarten van der Heide
2009-10-06 09:05:28 +00:00
parent da6fd5eeff
commit 6c5cca4edf

View File

@@ -1,7 +1,7 @@
-- Script containing customer specific configuration sql statements for Denb
-- (c) 2008 SG|facilitor bv
-- $Revision: 1 $
-- $Modtime: 9-04-09 13:12 $
-- $Revision: 2 $
-- $Modtime: 22-04-09 15:54 $
--
-- Support: +31 53 4800700
@@ -86,6 +86,7 @@ BEGIN
ELSE
DELETE FROM imp_log
WHERE imp_log_applicatie = p_applname;
COMMIT;
END IF;
@@ -515,11 +516,15 @@ BEGIN
v_afdelingsdomein := UPPER (TRIM (v_afdelingsdomein));
BEGIN
IF LENGTH (v_afdelingsdomein) <> 2
OR SUBSTR (v_afdelingsdomein || '--', 1, 1) NOT BETWEEN 'A'
AND 'Z'
OR SUBSTR (v_afdelingsdomein || '--', 2, 1) NOT BETWEEN '0'
AND '9'
IF v_afdelingsdomein IS NOT NULL
AND ( LENGTH (v_afdelingsdomein) <> 2
OR SUBSTR (v_afdelingsdomein || '--', 1, 1) NOT
BETWEEN 'A'
AND 'Z'
OR SUBSTR (v_afdelingsdomein || '--', 2, 1) NOT
BETWEEN '0'
AND '9'
)
THEN
v_afdelingsdomein := NULL;
fac.imp_writelog (p_applname,
@@ -549,7 +554,7 @@ BEGIN
v_aanduiding || v_errormsg,
'Regel wordt overgeslagen!'
);
COMMIT;
COMMIT;
END;
--
@@ -774,7 +779,7 @@ IS
GROUP BY UPPER (prs_srtperslid_omschrijving);
-- Let op! Personen die niet meer in dienst zijn -> niet in denb_imp_prs!
-- Dubbele nummers? Dan worden gewoon 2 (of meer) personen toegevoegd!
-- Dubbele nummers? Dan wordt slechts 1 set persoongegevens toegevoegd!
CURSOR cperslid
IS
SELECT *
@@ -1065,8 +1070,7 @@ BEGIN
SELECT prs_afdeling_key
INTO v_afdeling_key
FROM prs_v_aanwezigafdeling
WHERE UPPER (prs_afdeling_naam) =
UPPER (recperslid.prs_afdeling_naam);
WHERE prs_afdeling_upper = UPPER (recperslid.prs_afdeling_naam);
v_errorhint := 'Fout bij bepalen persoon';
@@ -1151,6 +1155,8 @@ BEGIN
IF recperslid.dienstverbandcode IS NOT NULL
THEN
v_errorhint := 'Fout bij bepalen dienstverbandcode';
SELECT COUNT (*), MAX (prs_kenmerklink_key)
INTO v_count, v_kenmerklink_key
FROM prs_v_aanwezigkenmerklink
@@ -1160,6 +1166,8 @@ BEGIN
IF v_count = 0
THEN
v_errorhint := 'Fout bij toevoegen dienstverbandcode';
INSERT INTO prs_kenmerklink
(prs_link_key, prs_kenmerklink_niveau,
prs_kenmerk_key, prs_kenmerklink_waarde
@@ -1168,6 +1176,8 @@ BEGIN
1001, recperslid.dienstverbandcode
);
ELSE -- v_count = 1
v_errorhint := 'Fout bij wijzigen dienstverbandcode';
UPDATE prs_kenmerklink
SET prs_kenmerklink_waarde =
recperslid.dienstverbandcode
@@ -1267,59 +1277,59 @@ BEGIN
THEN
v_errorhint := 'Fout bij bepalen ruimte';
SELECT COUNT (*)
INTO v_count
SELECT COUNT (*), MAX (alg_ruimte_key)
INTO v_count, v_ruimte_key
FROM alg_v_aanwezigruimte
WHERE alg_verdieping_key = v_verdieping_key
AND alg_ruimte_nr LIKE recwp.afdelingsdomein || '%';
AND alg_ruimte_nr = recwp.afdelingsdomein;
IF v_count > 0
IF v_count = 0
THEN
SELECT alg_ruimte_key
INTO v_ruimte_key
FROM alg_v_aanwezigruimte
WHERE alg_verdieping_key = v_verdieping_key
AND alg_ruimte_nr =
(SELECT MIN (alg_ruimte_nr)
FROM alg_v_aanwezigruimte
WHERE alg_verdieping_key = v_verdieping_key
AND alg_ruimte_nr LIKE
recwp.afdelingsdomein || '%');
v_errorhint := 'Fout bij toevoegen ruimte';
-- Verwijder oude werkplek in hetzelfde gebouw; ALLEEN igv. een afdelingsdomein!
v_errorhint :=
'Fout bij bepalen of werkplek is gewijzigd';
INSERT INTO alg_ruimte
(alg_verdieping_key, alg_srtruimte_key,
alg_ruimte_nr
)
VALUES (v_verdieping_key, 101, -- Domein/Fictief
recwp.afdelingsdomein
)
RETURNING alg_ruimte_key
INTO v_ruimte_key;
SELECT COUNT (*)
INTO v_count
FROM prs_v_aanwezigperslidwerkplek pw, prs_werkplek w
WHERE pw.prs_perslid_key = v_perslid_key
AND pw.prs_werkplek_key = w.prs_werkplek_key
AND w.prs_alg_ruimte_key = v_ruimte_key;
COMMIT;
END IF;
IF v_count = 0
THEN
v_errorhint := 'Fout bij verwijderen oude werkplek';
-- Verwijder oude werkplek in hetzelfde gebouw; ALLEEN igv. een afdelingsdomein!
v_errorhint := 'Fout bij bepalen of werkplek is gewijzigd';
UPDATE prs_perslidwerkplek
SET prs_perslidwerkplek_verwijder = SYSDATE
WHERE prs_perslidwerkplek_key IN (
SELECT pw.prs_perslidwerkplek_key
FROM prs_v_aanwezigperslidwerkplek pw,
prs_werkplek w,
alg_ruimte r,
alg_verdieping v
WHERE pw.prs_perslid_key = v_perslid_key
AND pw.prs_werkplek_key =
w.prs_werkplek_key
AND w.prs_alg_ruimte_key =
r.alg_ruimte_key
AND r.alg_verdieping_key =
SELECT COUNT (*)
INTO v_count
FROM prs_v_aanwezigperslidwerkplek pw, prs_werkplek w
WHERE pw.prs_perslid_key = v_perslid_key
AND pw.prs_werkplek_key = w.prs_werkplek_key
AND w.prs_alg_ruimte_key = v_ruimte_key;
IF v_count = 0
THEN
v_errorhint := 'Fout bij verwijderen oude werkplek';
UPDATE prs_perslidwerkplek
SET prs_perslidwerkplek_verwijder = SYSDATE
WHERE prs_perslidwerkplek_key IN (
SELECT pw.prs_perslidwerkplek_key
FROM prs_v_aanwezigperslidwerkplek pw,
prs_werkplek w,
alg_ruimte r,
alg_verdieping v
WHERE pw.prs_perslid_key = v_perslid_key
AND pw.prs_werkplek_key = w.prs_werkplek_key
AND w.prs_alg_ruimte_key = r.alg_ruimte_key
AND r.alg_verdieping_key =
v.alg_verdieping_key
AND v.alg_gebouw_key = v_gebouw_key);
AND v.alg_gebouw_key = v_gebouw_key);
COMMIT;
END IF;
COMMIT;
END IF;
END IF;
ELSE
@@ -1333,30 +1343,48 @@ BEGIN
WHERE v.alg_gebouw_key = v_gebouw_key
AND v.alg_verdieping_volgnr >= 0);
IF v_count > 0
IF v_count = 0 -- ELSE v_count = 1
THEN
v_errorhint := 'Fout bij bepalen ruimte';
v_errorhint := 'Fout bij toevoegen verdieping';
SELECT COUNT (*), MAX (alg_ruimte_key)
INTO v_count, v_ruimte_key
FROM alg_v_aanwezigruimte
WHERE alg_verdieping_key = v_verdieping_key
AND alg_ruimte_nr = '000';
INSERT INTO alg_verdieping
(alg_gebouw_key, alg_verdieping_volgnr,
alg_verdieping_code,
alg_verdieping_omschrijving
)
VALUES (v_gebouw_key, 0,
'0',
'Verdieping 0'
)
RETURNING alg_verdieping_key
INTO v_verdieping_key;
IF v_count = 0
THEN
INSERT INTO alg_ruimte
(alg_verdieping_key, alg_srtruimte_key,
alg_ruimte_nr
)
VALUES (v_verdieping_key, 41, -- Kantoorruimte
'000'
)
RETURNING alg_ruimte_key
INTO v_ruimte_key;
COMMIT;
END IF;
COMMIT;
END IF;
v_errorhint := 'Fout bij bepalen ruimte';
SELECT COUNT (*), MAX (alg_ruimte_key)
INTO v_count, v_ruimte_key
FROM alg_v_aanwezigruimte
WHERE alg_verdieping_key = v_verdieping_key
AND alg_ruimte_nr = '000';
IF v_count = 0
THEN
v_errorhint := 'Fout bij toevoegen ruimte';
INSERT INTO alg_ruimte
(alg_verdieping_key, alg_srtruimte_key,
alg_ruimte_nr
)
VALUES (v_verdieping_key, 101, -- Domein/Fictief
'000'
)
RETURNING alg_ruimte_key
INTO v_ruimte_key;
COMMIT;
END IF;
END IF;
@@ -1430,7 +1458,7 @@ BEGIN
WHERE w.prs_alg_ruimte_key = v_ruimte_key;
v_wp_oms := c_ruimte_nr || '/' || TO_CHAR (v_wp_volgnr);
v_errorhint := 'Fout bij aanmaken nieuwe werkplek';
v_errorhint := 'Fout bij toevoegen nieuwe werkplek';
INSERT INTO prs_werkplek
(prs_werkplek_module, prs_werkplek_volgnr,
@@ -1578,6 +1606,16 @@ BEGIN
COMMIT;
END;
END LOOP;
-- Verwijder ongebruikte functies; deze import bepaald de functies!
DELETE FROM prs_srtperslid sp
WHERE NOT EXISTS (
SELECT 1
FROM prs_perslid p
WHERE p.prs_srtperslid_key =
sp.prs_srtperslid_key);
COMMIT;
ELSE
fac.imp_writelog
(p_applname,