Merge DB19 patches

svn path=/Customer/trunk/; revision=20935
This commit is contained in:
Jos Groot Lipman
2014-03-11 09:49:18 +00:00
parent cceb58aa7b
commit 3caa1f41af
7 changed files with 1145 additions and 1409 deletions

30
Denb/Once/denb9.sql Normal file
View File

@@ -0,0 +1,30 @@
-- Customer specific once-script DENB9.
--
-- (c) 2013 SG|facilitor bv
-- $Revision$
-- $Id$
--
-- Support: +31 53 4800700
SET ECHO ON
SPOOL xDENB9.lst
SET DEFINE OFF
-- Verwijderen 41=BEDRIJF-import (klantspecifiek/inmiddels standaard)!
DELETE FROM fac_import WHERE fac_import_app_key = 41;
DELETE FROM fac_import_app WHERE fac_import_app_key = 41;
DROP PROCEDURE DENB_IMPORT_BEDRIJF;
DROP PROCEDURE DENB_UPDATE_BEDRIJF;
DROP TABLE DENB_IMP_BEDRIJF;
COMMIT;
-- Verwijderen B2F-import (klantspecifiek/niet meer gebruikt)!
DROP PROCEDURE DENB_IMPORT_B2F;
DROP PROCEDURE DENB_UPDATE_B2F;
COMMIT;
BEGIN adm.systrackscript('$Workfile: denb9.sql $', '$Revision$', 1); END;
/
SPOOL OFF
@denb.sql

View File

@@ -4,11 +4,21 @@
-- $Id$
--
-- Support: +31 53 4800700
set echo on
SET DEFINE OFF
SET ECHO ON
spool xdenb.lst
/* Formatted on 26-3-2010 12:45:12 (QP5 v5.115.810.9015) */
CREATE OR REPLACE VIEW denb_v_import_log
AS
SELECT imp_log_status fclt_f_status,
imp_log_omschrijving omschrijving,
imp_log_hint opmerking
FROM imp_log l
WHERE l.fac_import_key = (SELECT MAX (fac_import_key)
FROM fac_import
WHERE fac_import_app_key = 21);
/* Formatted on 27-1-2010 16:35:45 (QP5 v5.115.810.9015) */
CREATE OR REPLACE PROCEDURE denb_import_prs (
p_import_key IN NUMBER
@@ -1472,961 +1482,6 @@ BEGIN
END denb_update_prs;
/
/* Formatted on 26-3-2010 12:45:12 (QP5 v5.115.810.9015) */
CREATE OR REPLACE VIEW denb_v_import_log
AS
SELECT imp_log_status fclt_f_status,
imp_log_omschrijving omschrijving,
imp_log_hint opmerking
FROM imp_log l
WHERE l.fac_import_key = (SELECT MAX (fac_import_key)
FROM fac_import
WHERE fac_import_app_key = 21);
/* Formatted on 26-3-2010 13:35:35 (QP5 v5.115.810.9015) */
CREATE OR REPLACE PROCEDURE denb_import_b2f (p_import_key IN NUMBER)
IS
v_dummy VARCHAR2 (128);
BEGIN
v_dummy :=
'Geen import van csv-bestand; tijdens update wordt direct externe view benaderd!';
END denb_import_b2f;
/
/* Formatted on 26-3-2010 13:54:45 (QP5 v5.115.810.9015) */
CREATE OR REPLACE PROCEDURE denb_update_b2f (p_import_key IN NUMBER)
IS
-- LET OP: moet idem zijn als declaratie bij denb_import_b2f
c_persoon_inactief VARCHAR2 (30) := 'INACTIEF: ';
-- Maximaal percentage aan nieuwe medewerkers tov. actieve medewerkers met een nummer
c_max_delta_percentage NUMBER (10) := 20;
-- Ruimte waar personen in geplaatst worden (indien nog geen ruimte in opgegeven gebouw)
c_ruimte_nr VARCHAR2 (10) := '000';
-- Groep waar personen in geplaatst worden (indien nog geen groep)
c_groep_upper VARCHAR2 (30) := '_DEFAULT';
c_profiel_omschrijving VARCHAR (30) := 'DEFAULT';
v_aanduiding VARCHAR2 (200);
v_errorhint VARCHAR2 (1000);
v_errormsg VARCHAR2 (1000);
oracle_err_num NUMBER;
oracle_err_mes VARCHAR2 (200);
v_count_prs_import NUMBER (10); -- #actieve personen na import!
v_count_prs_actual NUMBER (10); -- #actieve personen voor import!
v_count_tot NUMBER (10);
v_count_error NUMBER (10);
v_count NUMBER (10);
--
v_perslid_key NUMBER (10);
v_afdeling_key NUMBER (10);
v_srtperslid_key NUMBER (10);
v_kenmerklink_key NUMBER (10);
v_locatie_key NUMBER (10);
v_gebouw_key NUMBER (10);
v_verdieping_key NUMBER (10);
v_ruimte_key NUMBER (10);
v_ruimte_nr VARCHAR2 (10);
v_wp_volgnr NUMBER (3);
v_wp_oms VARCHAR2 (30);
v_wp_key NUMBER (10);
v_groep_key NUMBER (10);
v_profiel_key NUMBER (10);
-- Let op! Personen die niet meer in dienst zijn -> niet in vw_fc_medewerkers!
-- Dubbele nummers? Dan wordt iemand mogelijk niet verwijderd/INACTIEF!
CURSOR cdelprs
IS
SELECT p.prs_perslid_key,
p.prs_perslid_nr,
p.prs_perslid_naam,
p.prs_perslid_voornaam
FROM prs_v_aanwezigperslid p
WHERE p.prs_perslid_nr IS NOT NULL
AND NOT EXISTS
(SELECT 1
FROM vw_fc_medewerkers ip
WHERE UPPER (ip.personeelsnummer) =
UPPER (p.prs_perslid_nr));
-- Let op! Personen die niet meer in dienst zijn -> niet in vw_fc_medewerkers!
CURSOR csrtperslid
IS
SELECT MIN (personeelsnummer) prs_perslid_nr,
MIN (naam) prs_perslid_naam,
MIN (voornaam) prs_perslid_voornaam,
MIN (functie) prs_srtperslid_omschrijving
FROM vw_fc_medewerkers
GROUP BY UPPER (functie);
-- Let op! Personen die niet meer in dienst zijn -> niet in vw_fc_medewerkers!
-- Dubbele nummers? Dan wordt slechts 1 set persoongegevens toegevoegd!
CURSOR cperslid
IS
SELECT ip.personeelsnummer prs_perslid_nr,
ip.naam prs_perslid_naam,
ip.tussenvoegsels prs_perslid_tussenvoegsel,
ip.voorletters prs_perslid_voorletters,
ip.voornaam prs_perslid_voornaam,
ip.afdelingscode prs_afdeling_naam,
ip.functie prs_srtperslid_omschrijving,
TO_DATE (ip.indienstdatum, 'dd-mm-yyyy')
prs_perslid_ingangsdatum,
TO_DATE (ip.uitdienstdatum, 'dd-mm-yyyy')
prs_perslid_einddatum,
ip.dienstverbandcode dienstverbandcode,
ip.telefoon prs_perslid_telefoonnr,
ip.email prs_perslid_email,
ip.loginnaam prs_perslid_oslogin
FROM vw_fc_medewerkers ip;
-- Let op! Personen die niet meer in dienst zijn -> niet in vw_fc_medewerkers!
-- Dubbele nummers? Dan krijgt iemand mogelijk de verkeerde plaats!
CURSOR cwp
IS
SELECT p.*,
ip.dienstverbandgebouw alg_gebouw_code,
SUBSTR (ip.afdelingsdomein, 2, 1)
|| SUBSTR (ip.afdelingsdomein, 1, 1)
afdelingsdomein
FROM vw_fc_medewerkers ip, prs_v_aanwezigperslid p
WHERE ip.dienstverbandgebouw IS NOT NULL
AND UPPER (ip.personeelsnummer) = UPPER (p.prs_perslid_nr);
-- Alle actieve personen met personeelsnummer (ie. de import-doelgroep) zonder een werkplek
CURSOR cnowp
IS
SELECT p.prs_perslid_key,
p.prs_perslid_nr,
p.prs_perslid_naam,
p.prs_perslid_voornaam
FROM prs_v_aanwezigperslid p
WHERE p.prs_perslid_nr IS NOT NULL
AND p.prs_perslid_naam NOT LIKE c_persoon_inactief || '%'
AND NOT EXISTS
(SELECT 1
FROM prs_perslidwerkplek pw
WHERE pw.prs_perslid_key = p.prs_perslid_key);
-- Alle aanwezige personen met personeelsnummer (ie. de import-doelgroep) niet in een groep
CURSOR cnogroup
IS
SELECT p.prs_perslid_key,
p.prs_perslid_nr,
p.prs_perslid_naam,
p.prs_perslid_voornaam
FROM prs_v_aanwezigperslid p
WHERE p.prs_perslid_nr IS NOT NULL
AND NOT EXISTS
(SELECT 1
FROM fac_gebruikersgroep g
WHERE g.prs_perslid_key = p.prs_perslid_key);
BEGIN
SELECT DECODE (COUNT ( * ), 0, 1, COUNT ( * ))
INTO v_count_prs_import
FROM prs_v_aanwezigperslid p, vw_fc_medewerkers ip
WHERE p.prs_perslid_nr IS NOT NULL
AND UPPER (p.prs_perslid_nr) = UPPER (ip.personeelsnummer);
SELECT DECODE (COUNT ( * ), 0, 1, COUNT ( * ))
INTO v_count_prs_actual
FROM prs_v_aanwezigperslid
WHERE prs_perslid_nr IS NOT NULL;
IF ( (TRUNC ( (v_count_prs_import / v_count_prs_actual) * 100) >=
(100 - c_max_delta_percentage)))
THEN
-- Geldig importbestand wat betreft aantal personen
v_errorhint := 'Fout bij bepalen profiel';
SELECT MAX (fac_profiel_key), COUNT ( * )
INTO v_profiel_key, v_count
FROM fac_profiel
WHERE UPPER (TRIM (fac_profiel_omschrijving)) =
c_profiel_omschrijving;
IF (v_count = 0)
THEN
fac.imp_writelog (
p_import_key,
'I',
'Standaard profiel ['
|| c_profiel_omschrijving
|| '] niet gevonden.',
'Personen zonder profiel kunnen niet worden gekoppeld aan een profiel.'
);
COMMIT;
END IF;
FOR recdelprs IN cdelprs
LOOP
BEGIN
v_aanduiding :=
recdelprs.prs_perslid_nr
|| '|'
|| recdelprs.prs_perslid_naam
|| '|'
|| recdelprs.prs_perslid_voornaam
|| ' - ';
v_errorhint := 'Fout bij bepalen verplichtingen';
-- Heeft persoon actuele/toekomstige verplichtingen?
SELECT COUNT ( * )
INTO v_count
FROM prs_perslid p, prs_v_verplichting_keys r
WHERE p.prs_perslid_key = r.prs_perslid_key
AND p.prs_perslid_key = recdelprs.prs_perslid_key;
IF v_count = 0
THEN
v_errorhint := 'Fout bij verwijderen persoon';
UPDATE prs_perslid
SET prs_perslid_verwijder = SYSDATE
WHERE prs_perslid_key = recdelprs.prs_perslid_key;
fac.imp_writelog (
p_import_key,
'I',
'Persoon met nummer ['
|| recdelprs.prs_perslid_nr
|| '] en naam ['
|| recdelprs.prs_perslid_naam
|| ', '
|| recdelprs.prs_perslid_voornaam
|| '] is verwijderd',
'Persoon is verwijderd'
);
COMMIT;
ELSE
-- Staat persoon INACTIEF?
SELECT COUNT ( * )
INTO v_count
FROM prs_perslid p
WHERE p.prs_perslid_naam LIKE c_persoon_inactief || '%'
AND p.prs_perslid_key = recdelprs.prs_perslid_key;
IF v_count = 0
THEN
v_errorhint := 'Fout bij INACTIEF maken persoon';
-- Persoon INACTIEF maken (update naam + reset oslogin)
UPDATE prs_perslid
SET prs_perslid_naam =
SUBSTR (c_persoon_inactief || prs_perslid_naam,
1,
30),
prs_perslid_oslogin = NULL
WHERE prs_perslid_key = recdelprs.prs_perslid_key;
fac.imp_writelog (
p_import_key,
'I',
'Persoon met nummer ['
|| recdelprs.prs_perslid_nr
|| '] en naam ['
|| recdelprs.prs_perslid_naam
|| ', '
|| recdelprs.prs_perslid_voornaam
|| '] is INACTIEF gemaakt',
'Persoon is INACTIEF gemaakt'
);
ELSE
v_errorhint := 'Fout bij INACTIEF houden persoon';
-- Persoon INACTIEF houden (reset oslogin; indien handmatig INACTIEF gemaakt)
UPDATE prs_perslid
SET prs_perslid_oslogin = NULL
WHERE prs_perslid_naam LIKE c_persoon_inactief || '%'
AND prs_perslid_oslogin IS NOT NULL;
fac.imp_writelog (
p_import_key,
'I',
'Persoon met nummer ['
|| recdelprs.prs_perslid_nr
|| '] en naam ['
|| recdelprs.prs_perslid_naam
|| ', '
|| recdelprs.prs_perslid_voornaam
|| '] is INACTIEF',
'Persoon is INACTIEF'
);
END IF;
COMMIT;
END IF;
EXCEPTION
WHEN OTHERS
THEN
oracle_err_num := SQLCODE;
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
v_errormsg :=
'OTHERS (error '
|| oracle_err_num
|| '/'
|| oracle_err_mes
|| ')';
fac.imp_writelog (p_import_key,
'E',
v_aanduiding || v_errormsg,
v_errorhint);
COMMIT;
END;
END LOOP;
v_count_tot := 0;
v_count_error := 0;
FOR recsrtperslid IN csrtperslid
LOOP
BEGIN
v_count_tot := v_count_tot + 1;
v_aanduiding :=
recsrtperslid.prs_perslid_nr
|| '|'
|| recsrtperslid.prs_perslid_naam
|| '|'
|| recsrtperslid.prs_perslid_voornaam
|| '|'
|| recsrtperslid.prs_srtperslid_omschrijving
|| ' - ';
v_errorhint := 'Fout bij bepalen functie';
SELECT COUNT ( * )
INTO v_count
FROM prs_v_aanwezigsrtperslid
WHERE UPPER (prs_srtperslid_omschrijving) =
UPPER (recsrtperslid.prs_srtperslid_omschrijving);
IF v_count = 0
THEN
v_errorhint := 'Fout bij toevoegen functie';
INSERT INTO prs_srtperslid (prs_srtperslid_omschrijving)
VALUES (recsrtperslid.prs_srtperslid_omschrijving);
COMMIT;
END IF;
EXCEPTION
WHEN OTHERS
THEN
v_count_error := v_count_error + 1;
oracle_err_num := SQLCODE;
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
v_errormsg :=
'OTHERS (error '
|| oracle_err_num
|| '/'
|| oracle_err_mes
|| ')';
fac.imp_writelog (p_import_key,
'E',
v_aanduiding || v_errormsg,
v_errorhint);
COMMIT;
END;
END LOOP;
fac.imp_writelog (
p_import_key,
'S',
'Functie: verwerkte regels zonder foutmelding: '
|| TO_CHAR (v_count_tot - v_count_error),
''
);
fac.imp_writelog (
p_import_key,
'S',
'Functie: verwerkte regels met foutmelding: '
|| TO_CHAR (v_count_error),
''
);
COMMIT;
v_count_tot := 0;
v_count_error := 0;
FOR recperslid IN cperslid
LOOP
BEGIN
v_count_tot := v_count_tot + 1;
v_aanduiding :=
recperslid.prs_perslid_nr
|| '|'
|| recperslid.prs_perslid_naam
|| '|'
|| recperslid.prs_perslid_voornaam
|| ' - ';
v_errorhint :=
'Fout bij bepalen functie ['
|| recperslid.prs_srtperslid_omschrijving
|| ']';
SELECT prs_srtperslid_key
INTO v_srtperslid_key
FROM prs_v_aanwezigsrtperslid
WHERE UPPER (prs_srtperslid_omschrijving) =
UPPER (recperslid.prs_srtperslid_omschrijving);
v_errorhint :=
'Fout bij bepalen afdeling ['
|| recperslid.prs_afdeling_naam
|| ']';
SELECT prs_afdeling_key
INTO v_afdeling_key
FROM prs_v_aanwezigafdeling
WHERE prs_afdeling_upper =
UPPER (recperslid.prs_afdeling_naam);
v_errorhint := 'Fout bij bepalen persoon';
SELECT COUNT ( * ), MAX (prs_perslid_key)
INTO v_count, v_perslid_key
FROM prs_v_aanwezigperslid
WHERE UPPER (prs_perslid_nr) =
UPPER (recperslid.prs_perslid_nr);
IF v_count > 1
THEN
fac.imp_writelog (
p_import_key,
'E',
v_aanduiding || ' kan persoon niet 1-duidig bepalen',
v_errorhint
);
COMMIT;
ELSE
IF v_count = 0
THEN
v_errorhint := 'Fout bij toevoegen persoon';
INSERT INTO prs_perslid (prs_perslid_module,
prs_srtperslid_key,
prs_afdeling_key,
prs_perslid_nr,
prs_perslid_naam,
prs_perslid_voorletters,
prs_perslid_tussenvoegsel,
prs_perslid_voornaam,
prs_perslid_telefoonnr,
prs_perslid_email,
prs_perslid_oslogin,
prs_perslid_ingangsdatum,
prs_perslid_einddatum,
fac_profiel_key)
VALUES ('PRS',
v_srtperslid_key,
v_afdeling_key,
recperslid.prs_perslid_nr,
recperslid.prs_perslid_naam,
recperslid.prs_perslid_voorletters,
recperslid.prs_perslid_tussenvoegsel,
recperslid.prs_perslid_voornaam,
recperslid.prs_perslid_telefoonnr,
recperslid.prs_perslid_email,
recperslid.prs_perslid_oslogin,
recperslid.prs_perslid_ingangsdatum,
recperslid.prs_perslid_einddatum,
v_profiel_key)
RETURNING prs_perslid_key INTO v_perslid_key;
ELSE
v_errorhint := 'Fout bij wijzigen persoon';
UPDATE prs_perslid
SET prs_srtperslid_key = v_srtperslid_key,
prs_afdeling_key = v_afdeling_key,
prs_perslid_nr = recperslid.prs_perslid_nr,
prs_perslid_naam = recperslid.prs_perslid_naam,
prs_perslid_voorletters =
recperslid.prs_perslid_voorletters,
prs_perslid_tussenvoegsel =
recperslid.prs_perslid_tussenvoegsel,
prs_perslid_voornaam =
recperslid.prs_perslid_voornaam,
prs_perslid_telefoonnr =
COALESCE (recperslid.prs_perslid_telefoonnr,
prs_perslid_telefoonnr),
prs_perslid_email =
COALESCE (recperslid.prs_perslid_email,
prs_perslid_email),
prs_perslid_oslogin =
recperslid.prs_perslid_oslogin,
prs_perslid_ingangsdatum =
recperslid.prs_perslid_ingangsdatum,
prs_perslid_einddatum =
recperslid.prs_perslid_einddatum,
fac_profiel_key =
COALESCE (fac_profiel_key, v_profiel_key)
WHERE prs_perslid_key = v_perslid_key;
END IF;
COMMIT;
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
WHERE prs_link_key = v_perslid_key
AND prs_kenmerklink_niveau = 'P'
AND prs_kenmerk_key = 1001; -- Dienstverbandcode
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)
VALUES (v_perslid_key,
'P',
1001,
recperslid.dienstverbandcode);
ELSE -- v_count = 1
v_errorhint := 'Fout bij wijzigen dienstverbandcode';
UPDATE prs_kenmerklink
SET prs_kenmerklink_waarde =
recperslid.dienstverbandcode
WHERE prs_kenmerklink_key = v_kenmerklink_key;
END IF;
COMMIT;
END IF;
END IF;
EXCEPTION
WHEN OTHERS
THEN
v_count_error := v_count_error + 1;
oracle_err_num := SQLCODE;
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
v_errormsg :=
'OTHERS (error '
|| oracle_err_num
|| '/'
|| oracle_err_mes
|| ')';
fac.imp_writelog (p_import_key,
'E',
v_aanduiding || v_errormsg,
v_errorhint);
COMMIT;
END;
END LOOP;
fac.imp_writelog (
p_import_key,
'S',
'Persoon: verwerkte regels zonder foutmelding: '
|| TO_CHAR (v_count_tot - v_count_error),
''
);
fac.imp_writelog (
p_import_key,
'S',
'Persoon: verwerkte regels met foutmelding: '
|| TO_CHAR (v_count_error),
''
);
COMMIT;
v_count_tot := 0;
v_count_error := 0;
FOR recwp IN cwp
LOOP
BEGIN
v_count_tot := v_count_tot + 1;
v_aanduiding :=
recwp.prs_perslid_nr
|| '|'
|| recwp.prs_perslid_naam
|| '|'
|| recwp.prs_perslid_voornaam
|| '|'
|| recwp.alg_gebouw_code
|| '|'
|| recwp.afdelingsdomein
|| ' - ';
v_errorhint := 'Fout bij bepalen persoon';
SELECT prs_perslid_key
INTO v_perslid_key
FROM prs_v_aanwezigperslid
WHERE UPPER (prs_perslid_nr) = UPPER (recwp.prs_perslid_nr);
v_errorhint := 'Fout bij bepalen locatie/gebouw';
SELECT alg_locatie_key, alg_gebouw_key
INTO v_locatie_key, v_gebouw_key
FROM alg_v_aanweziggebouw
WHERE UPPER (alg_gebouw_code) = UPPER (recwp.alg_gebouw_code);
v_verdieping_key := NULL;
v_ruimte_key := NULL;
v_errorhint := 'Fout bij bepalen verdieping';
IF recwp.afdelingsdomein IS NOT NULL
THEN
v_ruimte_nr := recwp.afdelingsdomein;
SELECT COUNT ( * ), MAX (alg_verdieping_key)
INTO v_count, v_verdieping_key
FROM alg_v_aanwezigverdieping
WHERE alg_gebouw_key = v_gebouw_key
AND alg_verdieping_volgnr =
fac.safe_to_number (SUBSTR (v_ruimte_nr, 1, 1));
IF v_count > 0
THEN
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 = v_ruimte_nr;
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
v_ruimte_nr)
RETURNING alg_ruimte_key INTO v_ruimte_key;
COMMIT;
END IF;
-- Verwijder oude werkplek in hetzelfde gebouw; ALLEEN igv. een afdelingsdomein!
v_errorhint := 'Fout bij bepalen of werkplek is gewijzigd';
SELECT COUNT ( * )
INTO v_count
FROM prs_perslidwerkplek 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';
DELETE FROM prs_perslidwerkplek
WHERE prs_perslidwerkplek_key IN
(SELECT pw.prs_perslidwerkplek_key
FROM prs_perslidwerkplek 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);
COMMIT;
END IF;
END IF;
ELSE
v_ruimte_nr := c_ruimte_nr;
SELECT COUNT ( * ), MAX (alg_verdieping_key)
INTO v_count, v_verdieping_key
FROM alg_v_aanwezigverdieping
WHERE alg_gebouw_key = v_gebouw_key
AND alg_verdieping_volgnr =
(SELECT MIN (v.alg_verdieping_volgnr)
FROM alg_v_aanwezigverdieping v
WHERE v.alg_gebouw_key = v_gebouw_key
AND v.alg_verdieping_volgnr >= 0);
IF v_count = 0 -- ELSE v_count = 1
THEN
v_errorhint := 'Fout bij toevoegen verdieping';
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;
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 = v_ruimte_nr;
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
v_ruimte_nr)
RETURNING alg_ruimte_key INTO v_ruimte_key;
COMMIT;
END IF;
END IF;
v_errorhint :=
'Fout bij bepalen of persoon in gebouw een werkplek heeft';
SELECT COUNT ( * )
INTO v_count
FROM prs_perslidwerkplek 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;
-- v_count=0 -> persoon verhuist naar/krijgt wp in gebouw.
IF v_count = 0 AND v_ruimte_key IS NOT NULL
THEN
v_errorhint := 'Fout bij bepalen vrije werkplek';
SELECT COUNT ( * )
INTO v_count
FROM prs_werkplek w
WHERE w.prs_alg_ruimte_key = v_ruimte_key
AND NOT EXISTS
(SELECT 1
FROM prs_perslidwerkplek pw
WHERE pw.prs_werkplek_key =
w.prs_werkplek_key);
IF v_count > 0
THEN
SELECT MIN (w.prs_werkplek_key)
INTO v_wp_key
FROM prs_werkplek w
WHERE w.prs_alg_ruimte_key = v_ruimte_key
AND NOT EXISTS
(SELECT 1
FROM prs_perslidwerkplek pw
WHERE pw.prs_werkplek_key =
w.prs_werkplek_key);
v_errorhint :=
'Fout bij koppelen persoon aan vrije werkplek';
INSERT INTO prs_perslidwerkplek (
prs_perslid_key,
prs_werkplek_key,
prs_perslidwerkplek_bezetting
)
VALUES (v_perslid_key, v_wp_key, 100);
COMMIT;
ELSE
v_errorhint := 'Fout bij bepalen nieuwe werkplek';
SELECT COALESCE (MAX (w.prs_werkplek_volgnr), 0) + 1
INTO v_wp_volgnr
FROM prs_werkplek w
WHERE w.prs_alg_ruimte_key = v_ruimte_key;
v_wp_oms := v_ruimte_nr || '/' || TO_CHAR (v_wp_volgnr);
v_errorhint := 'Fout bij toevoegen nieuwe werkplek';
INSERT INTO prs_werkplek (prs_werkplek_module,
prs_werkplek_volgnr,
prs_werkplek_omschrijving,
prs_alg_ruimte_key)
VALUES ('PRR',
v_wp_volgnr,
v_wp_oms,
v_ruimte_key)
RETURNING prs_werkplek_key INTO v_wp_key;
v_errorhint :=
'Fout bij koppelen persoon aan nieuwe werkplek';
INSERT INTO prs_perslidwerkplek (
prs_perslid_key,
prs_werkplek_key,
prs_perslidwerkplek_bezetting
)
VALUES (v_perslid_key, v_wp_key, 100);
COMMIT;
END IF;
END IF;
EXCEPTION
WHEN OTHERS
THEN
v_count_error := v_count_error + 1;
oracle_err_num := SQLCODE;
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
v_errormsg :=
'OTHERS (error '
|| oracle_err_num
|| '/'
|| oracle_err_mes
|| ')';
fac.imp_writelog (p_import_key,
'E',
v_aanduiding || v_errormsg,
v_errorhint);
COMMIT;
END;
END LOOP;
fac.imp_writelog (
p_import_key,
'S',
'Werkplek: verwerkte regels zonder foutmelding: '
|| TO_CHAR (v_count_tot - v_count_error),
''
);
fac.imp_writelog (
p_import_key,
'S',
'Werkplek: verwerkte regels met foutmelding: '
|| TO_CHAR (v_count_error),
''
);
COMMIT;
FOR recnowp IN cnowp
LOOP
BEGIN
fac.imp_writelog (
p_import_key,
'I',
'Persoon met nummer ['
|| recnowp.prs_perslid_nr
|| '] en naam ['
|| recnowp.prs_perslid_naam
|| ', '
|| recnowp.prs_perslid_voornaam
|| '] heeft geen werkplek',
'Geen werkplek'
);
COMMIT;
EXCEPTION
WHEN OTHERS
THEN
oracle_err_num := SQLCODE;
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
v_errormsg :=
'OTHERS (error '
|| oracle_err_num
|| '/'
|| oracle_err_mes
|| ')';
fac.imp_writelog (p_import_key,
'E',
v_errormsg,
v_errorhint);
COMMIT;
END;
END LOOP;
FOR recnogroup IN cnogroup
LOOP
BEGIN
v_aanduiding :=
recnogroup.prs_perslid_nr
|| '|'
|| recnogroup.prs_perslid_naam
|| '|'
|| recnogroup.prs_perslid_voornaam
|| ' - ';
v_errorhint := 'Fout bij bepalen groep [' || c_groep_upper || ']';
SELECT fac_groep_key
INTO v_groep_key
FROM fac_groep
WHERE fac_groep_upper = c_groep_upper;
v_errorhint :=
'Fout bij koppelen persoon aan groep ['
|| c_groep_upper
|| ']';
INSERT INTO fac_gebruikersgroep (fac_groep_key, prs_perslid_key)
VALUES (v_groep_key, recnogroup.prs_perslid_key);
COMMIT;
EXCEPTION
WHEN OTHERS
THEN
oracle_err_num := SQLCODE;
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
v_errormsg :=
'OTHERS (error '
|| oracle_err_num
|| '/'
|| oracle_err_mes
|| ')';
fac.imp_writelog (p_import_key,
'E',
v_errormsg,
v_errorhint);
COMMIT;
END;
END LOOP;
-- Verwijder ongebruikte functies; deze import bepaalt 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_import_key,
'E',
'Verschil tussen het actuele aantal en het te importeren aantal personen te groot; zie specificatie!',
'- max. verschilpercentage = ['
|| TO_CHAR (c_max_delta_percentage)
|| '%] <br> '
|| '- #personen importbestand = ['
|| TO_CHAR (v_count_prs_import)
|| '] <br> '
|| '- #personen Facilitor = ['
|| TO_CHAR (v_count_prs_actual)
|| ']'
);
COMMIT;
END IF; -- Geldig importbestand wat betreft aantal inserts
COMMIT;
END denb_update_b2f;
/
/* Formatted on 7-6-2010 18:58:58 (QP5 v5.115.810.9015) */
CREATE OR REPLACE VIEW DENB_V_RAP_RES_MAANDTOTALEN
(
@@ -2929,7 +1984,7 @@ AS
AND gg.fac_groep_key = 121 -- COMM/Bestuursgeschenken
AND sn.fac_srtnotificatie_code = 'CUST02';
BEGIN fac.registercustversion('DENB', 8); END;
BEGIN fac.registercustversion('DENB', 9); END;
/
BEGIN adm.systrackscriptId('$Id$', 0); END;
/

231
PNBR/Once/PNBR#28069.sql Normal file
View File

@@ -0,0 +1,231 @@
SET ECHO ON
SPOOL xPNBR#28069
SET DEFINE OFF
-- voeg labelkenmerk aan vakgroepen toe
INSERT INTO mld_kenmerk (mld_srtkenmerk_key,
mld_stdmelding_key,
mld_kenmerkniveau,
mld_kenmerk_verplicht,
mld_kenmerk_volgnummer,
mld_kenmerk_default)
SELECT 3521,
ins_discipline_key,
'D',
NULL,
905,
'Wijzigingsgegevens'
FROM mld_discipline d, mld_srtkenmerk sk
WHERE ins_discipline_key IN
(665,
1061,
961,
434,
432,
841,
561,
741,
743,
746,
1584,
421,
1583,
1582,
1021,
442,
621,
441,
428,
429,
801,
1585,
425,
527,
1581,
701,
525,
902,
1586,
436,
921,
435,
444,
663,
426,
1521,
1641,
541);
-- voeg wijziging (ja/nee) kenmerk aan vakgroepen toe
INSERT INTO mld_kenmerk (mld_srtkenmerk_key,
mld_stdmelding_key,
mld_kenmerkniveau,
mld_kenmerk_verplicht,
mld_kenmerk_volgnummer,
mld_kenmerk_default)
SELECT 3601,
ins_discipline_key,
'D',
2,
920,
NULL
FROM mld_discipline d, mld_srtkenmerk sk
WHERE ins_discipline_key IN
(665,
1061,
961,
434,
432,
841,
561,
741,
743,
746,
1584,
421,
1583,
1582,
1021,
442,
621,
441,
428,
429,
801,
1585,
425,
527,
1581,
701,
525,
902,
1586,
436,
921,
435,
444,
663,
426,
1521,
1641,
541);
-- voeg wijzigingsklasse kenmerk aan vakgroepen toe
INSERT INTO mld_kenmerk (mld_srtkenmerk_key,
mld_stdmelding_key,
mld_kenmerkniveau,
mld_kenmerk_verplicht,
mld_kenmerk_volgnummer,
mld_kenmerk_default)
SELECT 3565,
ins_discipline_key,
'D',
2,
930,
NULL
FROM mld_discipline d, mld_srtkenmerk sk
WHERE ins_discipline_key IN
(665,
1061,
961,
434,
432,
841,
561,
741,
743,
746,
1584,
421,
1583,
1582,
1021,
442,
621,
441,
428,
429,
801,
1585,
425,
527,
1581,
701,
525,
902,
1586,
436,
921,
435,
444,
663,
426,
1521,
1641,
541);
-- voeg wijziging al verwerkt in CMDB kenmerk aan vakgroepen toe
INSERT INTO mld_kenmerk (mld_srtkenmerk_key,
mld_stdmelding_key,
mld_kenmerkniveau,
mld_kenmerk_verplicht,
mld_kenmerk_volgnummer,
mld_kenmerk_default)
SELECT 3602,
ins_discipline_key,
'D',
NULL,
940,
NULL
FROM mld_discipline d, mld_srtkenmerk sk
WHERE ins_discipline_key IN
(665,
1061,
961,
434,
432,
841,
561,
741,
743,
746,
1584,
421,
1583,
1582,
1021,
442,
621,
441,
428,
429,
801,
1585,
425,
527,
1581,
701,
525,
902,
1586,
436,
921,
435,
444,
663,
426,
1521,
1641,
541);
COMMIT;
BEGIN adm.systrackscriptid('$Id$'); END;
/
COMMIT;
SPOOL OFF

146
PNBR/Once/PNBR#28362.sql Normal file
View File

@@ -0,0 +1,146 @@
create table tmp_imp_kostenplaats (van VARCHAR2(10), naar VARCHAR2(10));
SET DEFINE OFF;
Insert into TMP_IMP_KOSTENPLAATS
(VAN, NAAR)
Values
('4112', '5010');
Insert into TMP_IMP_KOSTENPLAATS
(VAN, NAAR)
Values
('4122', '5004');
Insert into TMP_IMP_KOSTENPLAATS
(VAN, NAAR)
Values
('4201', '5020');
Insert into TMP_IMP_KOSTENPLAATS
(VAN, NAAR)
Values
('4202', '5027');
Insert into TMP_IMP_KOSTENPLAATS
(VAN, NAAR)
Values
('4203', '5033');
Insert into TMP_IMP_KOSTENPLAATS
(VAN, NAAR)
Values
('4214', '5021');
Insert into TMP_IMP_KOSTENPLAATS
(VAN, NAAR)
Values
('4215', '5022');
Insert into TMP_IMP_KOSTENPLAATS
(VAN, NAAR)
Values
('4222', '5024');
Insert into TMP_IMP_KOSTENPLAATS
(VAN, NAAR)
Values
('4223', '5006');
Insert into TMP_IMP_KOSTENPLAATS
(VAN, NAAR)
Values
('4232', '5025');
Insert into TMP_IMP_KOSTENPLAATS
(VAN, NAAR)
Values
('4257', '5021');
Insert into TMP_IMP_KOSTENPLAATS
(VAN, NAAR)
Values
('4258', '5023');
Insert into TMP_IMP_KOSTENPLAATS
(VAN, NAAR)
Values
('4260', '5026');
Insert into TMP_IMP_KOSTENPLAATS
(VAN, NAAR)
Values
('4271', '5034');
Insert into TMP_IMP_KOSTENPLAATS
(VAN, NAAR)
Values
('4272', '5036');
Insert into TMP_IMP_KOSTENPLAATS
(VAN, NAAR)
Values
('4273', '5037');
Insert into TMP_IMP_KOSTENPLAATS
(VAN, NAAR)
Values
('4275', '5035');
Insert into TMP_IMP_KOSTENPLAATS
(VAN, NAAR)
Values
('4276', '5028');
Insert into TMP_IMP_KOSTENPLAATS
(VAN, NAAR)
Values
('4277', '5031');
Insert into TMP_IMP_KOSTENPLAATS
(VAN, NAAR)
Values
('4278', '5029');
Insert into TMP_IMP_KOSTENPLAATS
(VAN, NAAR)
Values
('4279', '5030');
Insert into TMP_IMP_KOSTENPLAATS
(VAN, NAAR)
Values
('4280', '5032');
Insert into TMP_IMP_KOSTENPLAATS
(VAN, NAAR)
Values
('4454', '5013');
Insert into TMP_IMP_KOSTENPLAATS
(VAN, NAAR)
Values
('4457', '5014');
Insert into TMP_IMP_KOSTENPLAATS
(VAN, NAAR)
Values
('4458', '5015');
Insert into TMP_IMP_KOSTENPLAATS
(VAN, NAAR)
Values
('4531', '5008');
Insert into TMP_IMP_KOSTENPLAATS
(VAN, NAAR)
Values
('4568', '5012');
Insert into TMP_IMP_KOSTENPLAATS
(VAN, NAAR)
Values
('5231', '5025');
Insert into TMP_IMP_KOSTENPLAATS
(VAN, NAAR)
Values
('5403', '5011');
COMMIT;
UPDATE res_rsv_ruimte rrr
SET prs_kostenplaats_key =
(SELECT kn.prs_kostenplaats_key
FROM prs_kostenplaats kn,
prs_kostenplaats kv,
tmp_imp_kostenplaats i
WHERE kn.prs_kostenplaats_nr = i.naar
AND i.van = kv.prs_kostenplaats_nr
AND kv.prs_kostenplaats_key = rrr.prs_kostenplaats_key)
WHERE res_rsv_ruimte_van > TO_DATE ('20140101', 'yyyymmdd')
AND prs_kostenplaats_key IN
(SELECT prs_kostenplaats_key
FROM prs_kostenplaats k, tmp_imp_kostenplaats i
WHERE k.prs_kostenplaats_nr = i.van);
drop table tmp_imp_kostenplaats;
UPDATE prs_kostenplaats
SET prs_kostenplaats_eind = TO_DATE ('20140101', 'yyyymmdd')
WHERE prs_kostenplaats_key IN
(SELECT prs_kostenplaats_key
FROM prs_kostenplaats k, tmp_imp_kostenplaats i
WHERE k.prs_kostenplaats_nr = TRIM (i.van));
commit;

View File

@@ -399,6 +399,17 @@ AS
FROM fac_imp_organisatie i, prs_afdeling a
WHERE i.prs_afdeling_naam = a.prs_afdeling_naam(+);
CURSOR c6
IS
SELECT a.prs_afdeling_key,
ab.prs_afdeling_key4,
a.prs_afdeling_naam || '-' || a.prs_afdeling_omschrijving afd,
a4.prs_afdeling_naam || '-' || a4.prs_afdeling_omschrijving afd4
FROM prs_v_afdeling_boom ab, prs_afdeling a, prs_afdeling a4
WHERE a.prs_afdeling_parentkey = ab.prs_afdeling_key
AND ab.niveau = 5
AND ab.prs_afdeling_key4 = a4.prs_afdeling_key;
v_errormsg VARCHAR (200);
v_errorhint VARCHAR (200);
oracle_err_mes VARCHAR2 (150);
@@ -466,7 +477,7 @@ BEGIN
AND prs_bedrijf_verwijder IS NULL;
v_errorhint := 'Kijk of kostenplaats al bestaat';
v_prs_kostenplaats_key := NULL;
BEGIN
SELECT prs_kostenplaats_key
INTO v_prs_kostenplaats_key
@@ -567,6 +578,25 @@ BEGIN
END;
END LOOP;
-- verplaats afdeling die op niveau 6 aangemaakt zijn naar niveau 5
FOR rec IN c6
LOOP
BEGIN
v_aanduiding := rec.afd;
v_errorhint := 'Afdeling omhangen van niveau 6 naar 5';
UPDATE prs_afdeling
SET prs_afdeling_parentkey = rec.prs_afdeling_key4
WHERE prs_afdeling_key = rec.prs_afdeling_key;
fac.imp_writelog (p_import_key,
'W',
'Afdeling [' || rec.afd || ' is omgehangen onder [' || rec.afd4 || ']',
''
);
END;
END LOOP;
SELECT COUNT ( * )
INTO v_newcount
FROM prs_afdeling
@@ -647,7 +677,8 @@ AS
WHERE p.prs_perslid_key = pf.prs_perslid_key
AND p.prs_perslid_nr = d.fac_usrdata_code
AND t.fac_usrtab_key = d.fac_usrtab_key
AND t.fac_usrtab_naam = 'AccMngrEvenement';
AND t.fac_usrtab_naam = 'AccMngrEvenement'
AND d.fac_usrdata_verwijder IS NULL;
CREATE OR REPLACE VIEW pnbr_v_opermngrevenement
(
@@ -663,7 +694,8 @@ AS
WHERE p.prs_perslid_key = pf.prs_perslid_key
AND p.prs_perslid_nr = d.fac_usrdata_code
AND t.fac_usrtab_key = d.fac_usrtab_key
AND t.fac_usrtab_naam = 'OperMngrEvenemen';
AND t.fac_usrtab_naam = 'OperMngrEvenemen'
AND d.fac_usrdata_verwijder IS NULL;
CREATE OR REPLACE VIEW pnbr_v_projmngrevenement
(
@@ -679,7 +711,8 @@ AS
WHERE p.prs_perslid_key = pf.prs_perslid_key
AND p.prs_perslid_nr = d.fac_usrdata_code
AND t.fac_usrtab_key = d.fac_usrtab_key
AND t.fac_usrtab_naam = 'ProjMngrEvenemen';
AND t.fac_usrtab_naam = 'ProjMngrEvenemen'
AND d.fac_usrdata_verwijder IS NULL;
CREATE OR REPLACE VIEW pnbr_v_evenement
(
@@ -948,6 +981,77 @@ AS
TO_CHAR (fac_tracking_datum, 'yyyy-mm');
-- rapportages tbv het IT dashbord.
CREATE OR REPLACE VIEW pnbr_v_rap_beschikb_dienst
(
nummer,
voornaam,
ins_key
)
AS
SELECT SUBSTR (ins_deel_omschrijving, 4, 20),
prs_perslid_voornaam,
d.ins_deel_key
FROM ins_deel d,
(SELECT ins_deel_key, p.prs_perslid_voornaam
FROM ins_kenmerkdeel kd, prs_perslid p
WHERE fac.safe_to_number (ins_kenmerkdeel_waarde) =
p.prs_perslid_key
AND ins_kenmerk_key = 642) kd
WHERE d.ins_deel_key = kd.ins_deel_key(+) AND d.ins_srtdeel_key = 562;
CREATE OR REPLACE VIEW pnbr_v_rap_appl_beschikb
(
applicatie,
status,
ins_key
)
AS
SELECT SUBSTR (ins_deel_omschrijving, 6, 20),
DECODE (ins_kenmerkdeel_waarde, 1, 'UP', 'DOWN'),
d.ins_deel_key
FROM ins_deel d, (SELECT ins_deel_key, ins_kenmerkdeel_waarde
FROM ins_kenmerkdeel kd
WHERE ins_kenmerk_key = 641) kd
WHERE d.ins_deel_key = kd.ins_deel_key(+) AND d.ins_srtdeel_key = 561;
CREATE OR REPLACE VIEW pnbr_v_rap_dpl_meldingen
(
mld_key,
datum,
omschrijving,
eind,
intervalwijz,
workaround,
status,
afgemeld
)
AS
SELECT mld_melding_key,
to_char(mld_melding_datum, 'yyyy-mm-dd / hh24:mi'),
mld_melding_omschrijving,
fac.gettrackingdate ('MLDAFM', m.mld_melding_key) einddatum,
SYSDATE
- (SELECT MAX (t.fac_tracking_datum)
FROM fac_tracking t, fac_srtnotificatie sn
WHERE t.fac_srtnotificatie_key = sn.fac_srtnotificatie_key
AND t.fac_tracking_refkey = m.mld_melding_key
AND sn.fac_srtnotificatie_xmlnode = 'melding')
intervalwijz,
(SELECT mld_kenmerkmelding_waarde
FROM mld_kenmerkmelding km
WHERE km.mld_kenmerk_key = 6821
AND km.mld_melding_key = m.mld_melding_key)
workaround,
s.mld_statuses_omschrijving,
DECODE (m.mld_melding_status, 1, 1, 5, 1, 6, 1, 0)
FROM mld_melding m, mld_statuses s
WHERE mld_stdmelding_key = 5481
AND m.mld_melding_status = s.mld_statuses_key
AND COALESCE (fac.gettrackingdate ('MLDAFM', m.mld_melding_key),
SYSDATE) < SYSDATE + 14;
CREATE OR REPLACE VIEW pnbr_v_melding_bestuur
(
mld_melding_key,
@@ -2029,7 +2133,8 @@ AS
order by 3, 1;
-- rapport voor wijzigingsbeheerder met de status van wijzigingsverzoeken.
CREATE OR REPLACE VIEW pnbr_v_rap_cmdb_status
/* Formatted on 4-2-2014 10:51:55 (QP5 v5.136.908.31019) */
CREATE OR REPLACE VIEW pnbr_v_rap_open_cmdb_status
(
html_melding,
klasse,
@@ -2037,8 +2142,10 @@ CREATE OR REPLACE VIEW pnbr_v_rap_cmdb_status
datum_aanvraag,
omschrijving_aanvraag,
html_wijziging,
datum_wijzigingsverzoek,
omschrijving_wijziging
status_wijziging,
laatstestatuswijziging,
omschrijving_wijziging,
gewenste_opleverdatum
)
AS
SELECT '<a class="details" onclick=''FcltMgr.openDetail("appl/mld/mld_melding.asp?urole=bo&'
@@ -2047,33 +2154,17 @@ AS
|| '")''>'
|| m.mld_melding_key
|| '</a>',
klasse,
CASE km_c.cmdb -- aanvraag is ook al verwerkt in de CMDB
WHEN '1'
THEN
'Administratief verwerkt'
ELSE
DECODE (
verv.mld_vervolg_key,
TO_CHAR (NULL), -- nog geen vervolgmelding aangemaakt
CASE klasse
WHEN '1' THEN 'Technisch verwerkt'
ELSE 'Wacht op wijzigingsverzoek'
END,
(SELECT DECODE (
mld_melding_status,
1,
'Afgewezen',
5,
'Administratief verwerkt',
6,
'Administratief verwerkt',
DECODE (klasse,
'1', 'CMDB afhandeling',
'In behandeling bij WAC/IKT'))
FROM mld_melding m2
WHERE m2.mld_melding_key = verv.mld_vervolg_key))
END
(SELECT fac_usrdata_code
FROM mld_kenmerkmelding km2, mld_kenmerk k, fac_usrdata ud
WHERE km2.mld_kenmerk_key = k.mld_kenmerk_key
AND k.mld_srtkenmerk_key = 3565 -- Wijzigingsklasse
AND km2.mld_melding_key = m.mld_melding_key
AND fac.safe_to_number (km2.mld_kenmerkmelding_waarde) =
ud.fac_usrdata_key)
klasse,
(SELECT mld_statuses_omschrijving
FROM mld_statuses s
WHERE s.mld_statuses_key = m.mld_melding_status)
status,
m.mld_melding_datum,
m.mld_melding_omschrijving,
@@ -2083,115 +2174,294 @@ AS
|| '")''>'
|| mld_vervolg_key
|| '</a>',
m2.mld_melding_datum,
m2.mld_melding_omschrijving
(SELECT fac_usrdata_omschr
FROM mld_kenmerkmelding km, mld_kenmerk k, fac_usrdata ud
WHERE km.mld_kenmerk_key = k.mld_kenmerk_key
AND k.mld_srtkenmerk_key = 3621 -- gewenste opleverdatum
AND ud.fac_usrdata_key =
fac.safe_to_number (mld_kenmerkmelding_waarde)
AND km.mld_melding_key = m2.mld_melding_key)
status,
(SELECT MAX (fac_tracking_datum)
FROM fac_tracking t
WHERE fac_tracking_refkey = m2.mld_melding_key
AND t.fac_tracking_oms LIKE
'%' || 'Status wijzigingsbeheer:' || '%')
laatstestatwijz,
(SELECT ins_discipline_omschrijving
FROM ins_tab_discipline d, mld_stdmelding std
WHERE d.ins_discipline_key = std.mld_ins_discipline_key
AND std.mld_stdmelding_key = m2.mld_stdmelding_key)
|| ' - '
|| m2.mld_melding_omschrijving,
(SELECT fac.safe_to_date (mld_kenmerkmelding_waarde, 'dd-mm-yyyy')
FROM mld_kenmerkmelding km, mld_kenmerk k
WHERE km.mld_kenmerk_key = k.mld_kenmerk_key
AND k.mld_srtkenmerk_key = 3568 -- gewenste opleverdatum
AND km.mld_melding_key = m2.mld_melding_key)
gewenste_opleverdatum
FROM (SELECT mld_melding_start_key mld_melding_key,
mld_melding_key mld_vervolg_key
FROM mld_melding m2) verv,
(SELECT mld_melding_key,
fac_usrdata_code klasse,
fac_usrdata_omschr klasse_oms
FROM mld_kenmerkmelding km2, fac_usrdata ud
WHERE km2.mld_kenmerk_key = 6682
AND fac.safe_to_number (km2.mld_kenmerkmelding_waarde) =
ud.fac_usrdata_key) km_k,
(SELECT mld_melding_key, mld_kenmerkmelding_waarde cmdb
FROM mld_kenmerkmelding km2
WHERE km2.mld_kenmerk_key = 6683) km_c,
FROM mld_kenmerkmelding km2, mld_kenmerk k
WHERE km2.mld_kenmerk_key = k.mld_kenmerk_key
AND k.mld_srtkenmerk_key = 3602) km_c, -- Wijziging al verwerkt in CMDB
mld_kenmerkmelding km,
mld_kenmerk k2,
mld_melding m,
mld_melding m2
WHERE km.mld_melding_key = m.mld_melding_key
AND km.mld_kenmerk_key = 6681
AND km.mld_kenmerk_key = k2.mld_kenmerk_key
AND k2.mld_srtkenmerk_key = 3601 -- wijziging
AND m.mld_melding_key = km_c.mld_melding_key(+)
AND m.mld_melding_key = km_k.mld_melding_key(+)
AND m.mld_melding_key = verv.mld_melding_key(+)
AND verv.mld_vervolg_key = m2.mld_melding_key(+);
AND verv.mld_vervolg_key = m2.mld_melding_key(+)
AND m2.mld_melding_status NOT IN (1, 5, 6) -- alleen openstaande verzoeken
UNION ALL
SELECT NULL,
NULL status,
NULL,
NULL,
NULL,
'<a class="details" onclick=''FcltMgr.openDetail("appl/mld/mld_melding.asp?urole=bo&'
|| 'mld_key='
|| m2.mld_melding_key
|| '")''>'
|| m2.mld_melding_key
|| '</a>',
(SELECT fac_usrdata_omschr
FROM mld_kenmerkmelding km, mld_kenmerk k, fac_usrdata ud
WHERE km.mld_kenmerk_key = k.mld_kenmerk_key
AND k.mld_srtkenmerk_key = 3621 -- gewenste opleverdatum
AND ud.fac_usrdata_key =
fac.safe_to_number (mld_kenmerkmelding_waarde)
AND km.mld_melding_key = m2.mld_melding_key)
status,
(SELECT MAX (fac_tracking_datum)
FROM fac_tracking t
WHERE fac_tracking_refkey = m2.mld_melding_key
AND t.fac_tracking_oms LIKE
'%' || 'Status wijzigingsbeheer:' || '%')
laatstestatwijz,
(SELECT ins_discipline_omschrijving
FROM ins_tab_discipline d, mld_stdmelding std
WHERE d.ins_discipline_key = std.mld_ins_discipline_key
AND std.mld_stdmelding_key = m2.mld_stdmelding_key)
|| ' - '
|| m2.mld_melding_omschrijving,
(SELECT fac.safe_to_date (mld_kenmerkmelding_waarde, 'dd-mm-yyyy')
FROM mld_kenmerkmelding km, mld_kenmerk k
WHERE km.mld_kenmerk_key = k.mld_kenmerk_key
AND k.mld_srtkenmerk_key = 3568 -- gewenste opleverdatum
AND km.mld_melding_key = m2.mld_melding_key)
gewenste_opleverdatum
FROM mld_melding m2, mld_stdmelding std, ins_tab_discipline d
WHERE m2.mld_stdmelding_key = std.mld_stdmelding_key
AND std.mld_ins_discipline_key = d.ins_discipline_key
AND ins_srtdiscipline_key = 21
AND mld_melding_start_key IS NULL
AND m2.mld_melding_status NOT IN (1, 5, 6);
CREATE OR REPLACE VIEW pnbr_v_rap_cmdb_status
(
html_melding,
klasse,
status,
datum_aanvraag,
omschrijving_aanvraag,
html_wijziging,
status_wijziging,
laatstestatuswijziging,
omschrijving_wijziging,
gewenste_opleverdatum
)
AS
SELECT '<a class="details" onclick=''FcltMgr.openDetail("appl/mld/mld_melding.asp?urole=bo&'
|| 'mld_key='
|| m.mld_melding_key
|| '")''>'
|| m.mld_melding_key
|| '</a>',
(SELECT fac_usrdata_code
FROM mld_kenmerkmelding km2, mld_kenmerk k, fac_usrdata ud
WHERE km2.mld_kenmerk_key = k.mld_kenmerk_key
AND k.mld_srtkenmerk_key = 3565 -- Wijzigingsklasse
AND km2.mld_melding_key = m.mld_melding_key
AND fac.safe_to_number (km2.mld_kenmerkmelding_waarde) =
ud.fac_usrdata_key)
klasse,
(SELECT mld_statuses_omschrijving
FROM mld_statuses s
WHERE s.mld_statuses_key = m.mld_melding_status)
status,
m.mld_melding_datum,
m.mld_melding_omschrijving,
'<a class="details" onclick=''FcltMgr.openDetail("appl/mld/mld_melding.asp?urole=bo&'
|| 'mld_key='
|| mld_vervolg_key
|| '")''>'
|| mld_vervolg_key
|| '</a>',
(SELECT fac_usrdata_omschr
FROM mld_kenmerkmelding km, mld_kenmerk k, fac_usrdata ud
WHERE km.mld_kenmerk_key = k.mld_kenmerk_key
AND k.mld_srtkenmerk_key = 3621 -- gewenste opleverdatum
AND ud.fac_usrdata_key =
fac.safe_to_number (mld_kenmerkmelding_waarde)
AND km.mld_melding_key = m2.mld_melding_key)
status,
(SELECT MAX (fac_tracking_datum)
FROM fac_tracking t
WHERE fac_tracking_refkey = m2.mld_melding_key
AND t.fac_tracking_oms LIKE
'%' || 'Status wijzigingsbeheer:' || '%')
laatstestatwijz,
(SELECT ins_discipline_omschrijving
FROM ins_tab_discipline d, mld_stdmelding std
WHERE d.ins_discipline_key = std.mld_ins_discipline_key
AND std.mld_stdmelding_key = m2.mld_stdmelding_key)
|| ' - '
|| m2.mld_melding_omschrijving,
(SELECT fac.safe_to_date (mld_kenmerkmelding_waarde, 'dd-mm-yyyy')
FROM mld_kenmerkmelding km, mld_kenmerk k
WHERE km.mld_kenmerk_key = k.mld_kenmerk_key
AND k.mld_srtkenmerk_key = 3568 -- gewenste opleverdatum
AND km.mld_melding_key = m2.mld_melding_key)
gewenste_opleverdatum
FROM (SELECT mld_melding_start_key mld_melding_key,
mld_melding_key mld_vervolg_key
FROM mld_melding m2) verv,
(SELECT mld_melding_key, mld_kenmerkmelding_waarde cmdb
FROM mld_kenmerkmelding km2, mld_kenmerk k
WHERE km2.mld_kenmerk_key = k.mld_kenmerk_key
AND k.mld_srtkenmerk_key = 3602) km_c, -- Wijziging al verwerkt in CMDB
mld_kenmerkmelding km,
mld_kenmerk k2,
mld_melding m,
mld_melding m2
WHERE km.mld_melding_key = m.mld_melding_key
AND km.mld_kenmerk_key = k2.mld_kenmerk_key
AND k2.mld_srtkenmerk_key = 3601 -- wijziging
AND m.mld_melding_key = km_c.mld_melding_key(+)
AND m.mld_melding_key = verv.mld_melding_key(+)
AND verv.mld_vervolg_key = m2.mld_melding_key(+)
AND m2.mld_melding_status IN (5, 6) -- alleen afgesloten wijzigingen
UNION ALL
SELECT NULL,
NULL status,
NULL,
NULL,
NULL,
'<a class="details" onclick=''FcltMgr.openDetail("appl/mld/mld_melding.asp?urole=bo&'
|| 'mld_key='
|| m2.mld_melding_key
|| '")''>'
|| m2.mld_melding_key
|| '</a>',
(SELECT fac_usrdata_omschr
FROM mld_kenmerkmelding km, mld_kenmerk k, fac_usrdata ud
WHERE km.mld_kenmerk_key = k.mld_kenmerk_key
AND k.mld_srtkenmerk_key = 3621 -- gewenste opleverdatum
AND ud.fac_usrdata_key =
fac.safe_to_number (mld_kenmerkmelding_waarde)
AND km.mld_melding_key = m2.mld_melding_key)
status,
(SELECT MAX (fac_tracking_datum)
FROM fac_tracking t
WHERE fac_tracking_refkey = m2.mld_melding_key
AND t.fac_tracking_oms LIKE
'%' || 'Status wijzigingsbeheer:' || '%')
laatstestatwijz,
(SELECT ins_discipline_omschrijving
FROM ins_tab_discipline d, mld_stdmelding std
WHERE d.ins_discipline_key = std.mld_ins_discipline_key
AND std.mld_stdmelding_key = m2.mld_stdmelding_key)
|| ' - '
|| m2.mld_melding_omschrijving,
(SELECT fac.safe_to_date (mld_kenmerkmelding_waarde, 'dd-mm-yyyy')
FROM mld_kenmerkmelding km, mld_kenmerk k
WHERE km.mld_kenmerk_key = k.mld_kenmerk_key
AND k.mld_srtkenmerk_key = 3568 -- gewenste opleverdatum
AND km.mld_melding_key = m2.mld_melding_key)
gewenste_opleverdatum
FROM mld_melding m2, mld_stdmelding std, ins_tab_discipline d
WHERE m2.mld_stdmelding_key = std.mld_stdmelding_key
AND std.mld_ins_discipline_key = d.ins_discipline_key
AND ins_srtdiscipline_key = 21
AND mld_melding_start_key IS NULL
AND m2.mld_melding_status IN (5, 6);
-- PNBR#28111 Rapportage met kunstobjecten (srtdeel_key=41) inclusief foto
-- PNBR#28111 Rapportage met kunstobjecten (srtdeel_key=41)
-- Overige keys zijn kenmerken voor deze objecten die dezelfde naam hebben als het veld.
CREATE OR REPLACE VIEW PNBR_V_RAP_KUNST
(
FCLT_F_Object,
FCLT_F_Kunstenaar,
FCLT_F_Titel,
Materiaal,
Gesigneerd,
Hoogte,
Breedte,
HTML_Foto,
Verkrijgingsinformatie,
Taxatiewaarde
FCLT_F_OBJECT,
FCLT_F_KUNSTENAAR,
FCLT_F_TITEL,
MATERIAAL,
GESIGNEERD,
HOOGTE,
BREEDTE,
VERKRIJGINGSINFORMATIE,
TAXATIEWAARDE
)
AS
SELECT ins_deel_omschrijving id,
(SELECT ins_kenmerkdeel_waarde
FROM ins_kenmerkdeel ikd
WHERE ins_kenmerk_key = 102
AND d.ins_deel_key = ikd.ins_deel_key)
Naam_kunstenaar,
(SELECT ins_kenmerkdeel_waarde
FROM ins_kenmerkdeel ikd
WHERE ins_kenmerk_key = 104
AND d.ins_deel_key = ikd.ins_deel_key)
Titel,
(SELECT ins_kenmerkdeel_waarde
FROM ins_kenmerkdeel ikd
WHERE ins_kenmerk_key = 110
AND d.ins_deel_key = ikd.ins_deel_key)
Materiaal,
(SELECT fac_usrdata_omschr
FROM ins_kenmerkdeel ikd,
ins_kenmerk ik,
ins_srtkenmerk isk,
fac_kenmerkdomein kd,
fac_usrdata ud
WHERE ikd.ins_kenmerk_key = 112
AND ik.ins_kenmerk_key = ikd.ins_kenmerk_key
AND ik.ins_srtkenmerk_key = isk.ins_srtkenmerk_key
AND kd.fac_kenmerkdomein_key = isk.fac_kenmerkdomein_key
AND ud.fac_usrtab_key = kd.fac_usrtab_key
AND ikd.ins_kenmerkdeel_waarde = ud.fac_usrdata_key
AND d.ins_deel_key = ikd.ins_deel_key)
Gesigneerd,
(SELECT ins_kenmerkdeel_waarde
FROM ins_kenmerkdeel ikd
WHERE ins_kenmerk_key = 119
AND d.ins_deel_key = ikd.ins_deel_key)
Hoogte,
(SELECT ins_kenmerkdeel_waarde
FROM ins_kenmerkdeel ikd
WHERE ins_kenmerk_key = 120
AND d.ins_deel_key = ikd.ins_deel_key)
Breedte,
decode((SELECT ins_kenmerkdeel_waarde
FROM ins_kenmerkdeel ikd
WHERE ins_kenmerk_key = 109
AND d.ins_deel_key = ikd.ins_deel_key), null, 'Geen foto',
'<img src="https://pnbr.facilitor.nl/CUST/PNBR/flexfiles/INS/I'
||to_char(TRUNC(d.ins_deel_key / 1000),'FM0000')
|| '___/I'
|| d.ins_deel_key
|| '/109/'
|| (SELECT ins_kenmerkdeel_waarde
FROM ins_kenmerkdeel ikd
WHERE ins_kenmerk_key = 109
AND d.ins_deel_key = ikd.ins_deel_key)
|| '" height="128">')
Foto,
(SELECT ins_kenmerkdeel_waarde
FROM ins_kenmerkdeel ikd
WHERE ins_kenmerk_key = 125
AND d.ins_deel_key = ikd.ins_deel_key)
Verkrijgingsinformatie,
(SELECT ins_kenmerkdeel_waarde
FROM ins_kenmerkdeel ikd
WHERE ins_kenmerk_key = 132
AND d.ins_deel_key = ikd.ins_deel_key)
Taxatiewaarde
FROM ins_deel d
WHERE ins_srtdeel_key = 41 AND ins_deel_verwijder IS NULL
order by 3, 1;
SELECT ins_deel_omschrijving id,
(SELECT ins_kenmerkdeel_waarde
FROM ins_kenmerkdeel ikd
WHERE ins_kenmerk_key = 102
AND d.ins_deel_key = ikd.ins_deel_key)
Naam_kunstenaar,
(SELECT ins_kenmerkdeel_waarde
FROM ins_kenmerkdeel ikd
WHERE ins_kenmerk_key = 104
AND d.ins_deel_key = ikd.ins_deel_key)
Titel,
(SELECT ins_kenmerkdeel_waarde
FROM ins_kenmerkdeel ikd
WHERE ins_kenmerk_key = 110
AND d.ins_deel_key = ikd.ins_deel_key)
Materiaal,
(SELECT fac_usrdata_omschr
FROM ins_kenmerkdeel ikd,
ins_kenmerk ik,
ins_srtkenmerk isk,
fac_kenmerkdomein kd,
fac_usrdata ud
WHERE ikd.ins_kenmerk_key = 112
AND ik.ins_kenmerk_key = ikd.ins_kenmerk_key
AND ik.ins_srtkenmerk_key = isk.ins_srtkenmerk_key
AND kd.fac_kenmerkdomein_key =
isk.fac_kenmerkdomein_key
AND ud.fac_usrtab_key = kd.fac_usrtab_key
AND ikd.ins_kenmerkdeel_waarde = ud.fac_usrdata_key
AND d.ins_deel_key = ikd.ins_deel_key)
Gesigneerd,
(SELECT ins_kenmerkdeel_waarde
FROM ins_kenmerkdeel ikd
WHERE ins_kenmerk_key = 119
AND d.ins_deel_key = ikd.ins_deel_key)
Hoogte,
(SELECT ins_kenmerkdeel_waarde
FROM ins_kenmerkdeel ikd
WHERE ins_kenmerk_key = 120
AND d.ins_deel_key = ikd.ins_deel_key)
Breedte,
(SELECT ins_kenmerkdeel_waarde
FROM ins_kenmerkdeel ikd
WHERE ins_kenmerk_key = 125
AND d.ins_deel_key = ikd.ins_deel_key)
Verkrijgingsinformatie,
(SELECT ins_kenmerkdeel_waarde
FROM ins_kenmerkdeel ikd
WHERE ins_kenmerk_key = 132
AND d.ins_deel_key = ikd.ins_deel_key)
Taxatiewaarde
FROM ins_deel d
WHERE ins_srtdeel_key = 41 AND ins_deel_verwijder IS NULL;
CREATE OR REPLACE VIEW pnbr_v_rap_melding_top25
@@ -2326,10 +2596,74 @@ AS
'yyyymmdd')
GROUP BY a.prs_afdeling_naam;
CREATE OR REPLACE VIEW pnbr_v_rap_mnd_res_dag
(
hide_f_volgorde,
fclt_f_maaand,
fclt_f_dag,
fclt_f_activiteit,
fclt_f_frontend_frontoffice,
aantal,
prijs
)
AS
SELECT TO_CHAR (res_rsv_ruimte_van, 'yyyy-mm')
|| TO_CHAR (res_rsv_ruimte_van, 'd'),
TO_CHAR (res_rsv_ruimte_van, 'yyyy-mm'),
DECODE (TO_CHAR (res_rsv_ruimte_van, 'd'),
'1', 'Zondag',
'2', 'Maandag',
'3', 'Dinsdag',
'4', 'Woensdag',
'5', 'Donderdag',
'6', 'Vrijdag',
'7', 'Zaterdag')
dag,
res_activiteit_omschrijving,
fe_fo,
COUNT (rrr.res_rsv_ruimte_key) aantal,
SUM (res.getdeelresprijs (rrr.res_rsv_ruimte_key)) prijs
FROM res_rsv_ruimte rrr,
res_activiteit a,
(SELECT fac_tracking_refkey res_rsv_ruimte_key,
DECODE (res_rsv_ruimte_contact_key,
tr.prs_perslid_key, 'Frontend',
'Frontoffice')
fe_fo
FROM fac_tracking tr,
fac_srtnotificatie str,
res_rsv_ruimte rrr2
WHERE str.fac_srtnotificatie_code = 'RESNEW'
AND tr.fac_srtnotificatie_key = str.fac_srtnotificatie_key
AND tr.fac_tracking_refkey = rrr2.res_rsv_ruimte_key) f
WHERE rrr.res_activiteit_key = a.res_activiteit_key
AND rrr.res_rsv_ruimte_key = f.res_rsv_ruimte_key(+)
AND rrr.res_rsv_ruimte_verwijder IS NULL
AND (rrr.res_ruimte_opstel_key IS NOT NULL
OR EXISTS (SELECT res_rsv_artikel_key
FROM res_rsv_artikel rra
WHERE rra.res_rsv_ruimte_key = rrr.res_rsv_ruimte_key
UNION ALL
SELECT res_rsv_deel_key
FROM res_rsv_deel rrd
WHERE rrd.res_rsv_ruimte_key = rrr.res_rsv_ruimte_key))
AND res_rsv_ruimte_van >
ADD_MONTHS (
TO_DATE (TO_CHAR (SYSDATE, 'yyyymm') || '01', 'yyyymmdd'),
-4)
AND TO_CHAR (res_rsv_ruimte_van, 'yyyymm') <
TO_CHAR (SYSDATE, 'yyyymm')
GROUP BY TO_CHAR (res_rsv_ruimte_van, 'd'),
TO_CHAR (res_rsv_ruimte_van, 'yyyy-mm'),
res_activiteit_omschrijving,
f.fe_fo;
BEGIN adm.systrackscriptId('$Id$', 0); END;
/
BEGIN fac.registercustversion('PNBR', 17); END;
BEGIN fac.registercustversion('PNBR', 19); END;
/

21
RWSN/Once/rwsn#28872.sql Normal file
View File

@@ -0,0 +1,21 @@
-- Customer specific once-script RWSN#28872.
--
-- (c) 2014 SG|facilitor bv
--
-- Support: +31 53 4800700
SET ECHO ON
SPOOL xrwsn28872.lst
SET DEFINE OFF
-- Status op 2=Nieuw (In behandeling) voor meldingen zonder status uit 2014!
/* Formatted on 3-3-2014 16:48:28 (QP5 v5.136.908.31019) */
UPDATE mld_melding
SET mld_melding_status = 2
WHERE mld_melding_status IS NULL
AND TO_CHAR (mld_melding_datum, 'yyyy') = '2014';
COMMIT;
BEGIN adm.systrackscriptId('$Id$'); END;
/
SPOOL OFF

View File

@@ -723,7 +723,21 @@ BEGIN
AND ab.prs_afdeling_key1 = afd1.prs_afdeling_key
AND afd1.prs_afdeling_naam =
kpg.prs_kostenplaatsgrp_oms)
WHERE kp.prs_kostenplaatsgrp_key IS NULL;
WHERE NOT EXISTS
(SELECT 1
FROM prs_afdeling afdx,
prs_v_afdeling_boom ab,
prs_afdeling afd1,
prs_kostenplaatsgrp kpg
WHERE afdx.prs_kostenplaats_key = kp.prs_kostenplaats_key
AND afdx.prs_afdeling_key = ab.prs_afdeling_key
AND ab.prs_afdeling_key1 = afd1.prs_afdeling_key
AND afd1.prs_afdeling_naam =
kpg.prs_kostenplaatsgrp_oms
AND kpg.prs_kostenplaatsgrp_key =
kp.prs_kostenplaatsgrp_key);
COMMIT;
-- Handmatig aangemaakte kostenplaatsen/afdelingen niet meer laten vervallen!
-- Tot RWSN39: Prefix wat niet meer voorkomt in importbestand met VERVALLEN.
@@ -1181,7 +1195,8 @@ EXCEPTION
END;
/
/* Formatted on 25/09/2008 01:30 (Formatter Plus v4.8.7) */
-- RWSN#27455: Aanpassing IDM-koppeling (van BSN naar RIN)!!!
/* Formatted on 19-12-2013 10:28:32 (QP5 v5.115.810.9015) */
CREATE OR REPLACE PROCEDURE rwsn_update_idm_pers (p_import_key IN NUMBER)
AS
/* Globale werking:
@@ -1210,32 +1225,42 @@ AS
--- in de import voorkomen en een einddatum hebben die voorbij is
--- of niet in de import voorkomen
-- en die nog niet vervallen waren
-- personeelsnummer=BSN uit de importtabel mapt op prs_perslid_authenticatie
-- personeelsnummer=BSN uit de importtabel mapt op prs_perslid_authenticatie => per RWSN52 vervallen!
-- RIN uit de importtabel mapt op kenmerk met key=1160
-- dienstverbandid uit de importtabel (SAPHRnummer) mapt op prs_perslid_nr
CURSOR c_prs_del
IS
SELECT p.prs_perslid_key, p.prs_perslid_authenticatie, pf.prs_perslid_naam_full
FROM prs_perslid p, rwsn_imp_idm_pers idm, prs_v_perslid_fullnames_all pf
WHERE p.prs_perslid_authenticatie = idm.personeelsnummer(+)
AND pf.prs_perslid_key = p.prs_perslid_key
AND p.prs_perslid_authenticatie IS NOT NULL -- is ooit geimporteerd
AND idm.personeelsnummer IS NULL -- komt niet voor in import
AND p.prs_perslid_verwijder IS NULL -- is niet al verwijderd
SELECT p.prs_perslid_key,
pf.prs_perslid_naam_full,
kl.prs_kenmerklink_waarde rin
FROM prs_perslid p,
prs_v_perslid_fullnames_all pf,
prs_v_aanwezigkenmerklink kl
WHERE p.prs_perslid_verwijder IS NULL -- is niet al verwijderd
AND p.prs_perslid_key = pf.prs_perslid_key
AND p.prs_perslid_key = kl.prs_link_key
AND kl.prs_kenmerk_key = c_rin_kkey -- is ooit geimporteerd
AND NOT EXISTS -- komt niet voor in import
(SELECT 1
FROM rwsn_imp_idm_pers
WHERE UPPER (rin) = UPPER (kl.prs_kenmerklink_waarde))
UNION ALL
SELECT p.prs_perslid_key, p.prs_perslid_authenticatie, pf.prs_perslid_naam_full
FROM prs_perslid p, rwsn_imp_idm_pers idm, prs_v_perslid_fullnames_all pf
WHERE p.prs_perslid_authenticatie = idm.personeelsnummer
AND pf.prs_perslid_key = p.prs_perslid_key
AND p.prs_perslid_authenticatie IS NOT NULL -- is ooit geimporteerd
AND idm.einddatum <= SYSDATE -- is beeindigd volgdens de import
AND p.prs_perslid_verwijder IS NULL -- is niet al verwijderd
AND NOT EXISTS (
SELECT personeelsnummer
FROM rwsn_imp_idm_pers
WHERE einddatum > SYSDATE
AND personeelsnummer = prs_perslid_authenticatie)
ORDER BY 2, 1;
SELECT p.prs_perslid_key,
pf.prs_perslid_naam_full,
kl.prs_kenmerklink_waarde rin
FROM prs_perslid p,
prs_v_perslid_fullnames_all pf,
prs_v_aanwezigkenmerklink kl
WHERE p.prs_perslid_verwijder IS NULL -- is niet al verwijderd
AND p.prs_perslid_key = pf.prs_perslid_key
AND p.prs_perslid_key = kl.prs_link_key
AND kl.prs_kenmerk_key = c_rin_kkey -- is ooit geimporteerd
AND NOT EXISTS -- is beeindigd volgens import (geen persoon-regels met einddatum in toekomst)
(SELECT 1
FROM rwsn_imp_idm_pers
WHERE UPPER (rin) = UPPER (kl.prs_kenmerklink_waarde)
AND COALESCE (einddatum,SYSDATE + 1) > SYSDATE)
ORDER BY 3, 1;
-- Personen die nieuw of gewijzigd zijn
--- Reeds eerder verwijderde personen kunnen worden gereactiveerd (.. check)
@@ -1244,17 +1269,26 @@ AS
-- permanente contract tot jaar 9999.
CURSOR c_prs_upd
IS
SELECT p.prs_perslid_key, idm.locatiecode alg_locatie_code, idm.afdelingscode prs_afdeling_naam,
idm.persoonachternaam prs_perslid_naam, idm.tussenvoegsel prs_perslid_tussenvoegsel,
idm.voorletters prs_perslid_voorletters, idm.voornaam prs_perslid_voornaam,
idm.telefoonnummer prs_perslid_telefoonnr, idm.functie prs_srtperslid_omschrijving, idm.rin,
idm.personeelsnummer personeelsnummer, idm.titel prs_perslid_titel, p.prs_perslid_verwijder,
idm.begindatum, idm.einddatum, idm.mobielnummer, idm.email, idm.loginnaam, idm.dienstverbandguid,
idm.dienstverbandid, idm.bezoekadresnaam, idm.bezoekadresnummer, idm.bezoekadrespostcode,
idm.bezoekadresplaats, idm.aanduidingnaamgebruik, idm.partnertussenvoegsel, idm.partnernaam
FROM rwsn_imp_idm_pers idm, prs_perslid p
WHERE idm.personeelsnummer = p.prs_perslid_authenticatie(+) AND idm.einddatum > SYSDATE
ORDER BY idm.personeelsnummer, idm.einddatum, prs_perslid_key DESC;
SELECT p.prs_perslid_key, idm.locatiecode alg_locatie_code, idm.afdelingscode prs_afdeling_naam,
idm.persoonachternaam prs_perslid_naam, idm.tussenvoegsel prs_perslid_tussenvoegsel,
idm.voorletters prs_perslid_voorletters, idm.voornaam prs_perslid_voornaam,
idm.telefoonnummer prs_perslid_telefoonnr, idm.functie prs_srtperslid_omschrijving, idm.rin,
idm.personeelsnummer personeelsnummer, idm.titel prs_perslid_titel, p.prs_perslid_verwijder,
idm.begindatum, idm.einddatum, idm.mobielnummer, idm.email, idm.loginnaam, idm.dienstverbandguid,
idm.dienstverbandid, idm.bezoekadresnaam, idm.bezoekadresnummer, idm.bezoekadrespostcode,
idm.bezoekadresplaats, idm.aanduidingnaamgebruik, idm.partnertussenvoegsel, idm.partnernaam
FROM (SELECT *
FROM rwsn_imp_idm_pers
WHERE einddatum > SYSDATE) idm
LEFT JOIN
(SELECT kl.prs_kenmerklink_waarde rin,
p.prs_perslid_key,
p.prs_perslid_verwijder
FROM prs_perslid p, prs_v_aanwezigkenmerklink kl
WHERE p.prs_perslid_key = kl.prs_link_key
AND kl.prs_kenmerk_key = c_rin_kkey) p
ON idm.rin = p.rin
ORDER BY idm.rin, idm.einddatum, prs_perslid_key DESC;
v_perslid_key NUMBER (10);
v_prs_key_cnt NUMBER (10);
@@ -1402,28 +1436,21 @@ AS
-- NIKS: als plaats ongeldig is of de huidige situatie al goed is
-- ZETTEN OP EEN BESTAANDE WERKPLEK
-- VERDIEPING/RUIMTE/WERKPLEK AANMAKEN EN TOEKENNEN
PROCEDURE handle_location (pkey IN NUMBER, pgebouwkey IN VARCHAR2)
PROCEDURE handle_location (pkey IN NUMBER, pgebouwkey IN VARCHAR2, prin IN VARCHAR2)
IS
lv_errormsg VARCHAR2 (1000);
lv_errorhint VARCHAR2 (1000);
lv_nr_werkplek NUMBER;
lv_current_gebouw_key NUMBER;
lpersid prs_perslid.prs_perslid_authenticatie%TYPE;
lv_verdieping_key NUMBER (10);
lv_ruimte_key NUMBER (10);
lv_werkplek_key NUMBER (10);
BEGIN
lv_errormsg := 'Toekennen van een plaats';
-- voor logging only:
SELECT NVL (prs_perslid_authenticatie, -1)
INTO lpersid
FROM prs_perslid
WHERE prs_perslid_key = pkey;
IF pgebouwkey = -1
THEN
lv_errorhint := 'Onbekend gebouw voor persoon: ' || lpersid;
lv_errorhint := 'Onbekend gebouw voor persoon/RIN: ' || prin;
fac.imp_writelog (p_import_key, 'W', lv_errormsg, lv_errorhint);
RETURN;
END IF;
@@ -1442,7 +1469,7 @@ AS
IF lv_nr_werkplek > 0
THEN
-- nieuwe werkplek bestaat al als een van de werkplekken.
lv_errorhint := 'Ongewijzigd gebouw voor persoon: ' || lpersid;
lv_errorhint := 'Ongewijzigd gebouw voor persoon/RIN: ' || prin;
fac.imp_writelog (p_import_key, 'I', lv_errormsg, lv_errorhint);
RETURN;
END IF;
@@ -1470,7 +1497,7 @@ AS
EXCEPTION
WHEN NO_DATA_FOUND
THEN
v_errorhint := 'Begane grond toevoegen tbv persoon ' || lpersid;
v_errorhint := 'Begane grond toevoegen voor persoon/RIN: ' || prin;
INSERT INTO alg_verdieping
(alg_gebouw_key, alg_verdieping_omschrijving, alg_verdieping_volgnr, alg_verdieping_code)
@@ -1493,7 +1520,7 @@ AS
EXCEPTION
WHEN NO_DATA_FOUND
THEN
v_errorhint := 'Ruimte toevoegen tbv persoon ' || lpersid;
v_errorhint := 'Ruimte toevoegen voor persoon/RIN: ' || prin;
-- Noot: de srtruimte 1 moet bestaan
INSERT INTO alg_ruimte
@@ -1514,7 +1541,7 @@ AS
EXCEPTION
WHEN NO_DATA_FOUND
THEN
v_errorhint := 'Werkplek toevoegen tbv persoon ' || lpersid;
v_errorhint := 'Werkplek toevoegen voor persoon/RIN: ' || prin;
-- WEL/NIET VIRTUEEL?
INSERT INTO prs_werkplek
@@ -1684,11 +1711,11 @@ BEGIN
-- Informatieve logging, zien we gelijk hoe laat het was
fac.imp_writelog (p_import_key, 'S', 'Aantal ingelezen personen: ' || TO_CHAR (v_perslid_count_imp), '');
-- #Actieve personen mèt personeelsnummer
-- #Actieve personen mèt RIN
SELECT COUNT (*)
INTO v_perslid_count_fclt
FROM prs_perslid
WHERE prs_perslid_authenticatie IS NOT NULL AND prs_perslid_verwijder IS NULL;
FROM prs_v_aanwezigperslid p, prs_v_aanwezigkenmerklink kl
WHERE p.prs_perslid_key = kl.prs_link_key AND kl.prs_kenmerk_key = c_rin_kkey;
-- Check het aantal regels, stop als onvoldoende (=bestaand maar ongeldig bestand)
IF v_perslid_count_imp = 0
@@ -1704,8 +1731,8 @@ BEGIN
LOOP
BEGIN
v_perslid_key := rec_prs_del.prs_perslid_key;
v_errormsg := 'Verwijderen van de persoon is NIET gelukt';
v_errorhint := 'Heeft de persoon met prs_perslid_key ' || TO_CHAR (v_perslid_key) || ' historie?';
v_errormsg := 'Verwijderen van persoon NIET gelukt';
v_errorhint := 'Heeft persoon met key ' || TO_CHAR (v_perslid_key) || ' historie?';
SELECT SUM (x.aant)
INTO v_count
@@ -1725,14 +1752,14 @@ BEGIN
DELETE FROM prs_perslid
WHERE prs_perslid_key = v_perslid_key;
DELETE FROM prs_kenmerklink
WHERE prs_link_key = v_perslid_key AND prs_kenmerklink_niveau = 'P';
--Via trigger!
--DELETE FROM prs_kenmerklink
-- WHERE prs_link_key = v_perslid_key AND prs_kenmerklink_niveau = 'P';
fac.imp_writelog (p_import_key,
'I',
'Persoon verwijderd, personeelsnummer: ' || rec_prs_del.prs_perslid_authenticatie,
''
);
'Persoon verwijderd; RIN: ' || rec_prs_del.rin,
'');
ELSE
-- Controleer of er ACTUELE verplichtingen zijn
SELECT COUNT (*)
@@ -1749,9 +1776,8 @@ BEGIN
fac.imp_writelog (p_import_key,
'I',
'Persoon als INACTIEF gemarkeerd, personeelsnummer: ' || rec_prs_del.prs_perslid_authenticatie,
''
);
'Persoon INACTIEF; RIN: ' || rec_prs_del.rin,
'');
ELSE
-- Er zijn geen actieve verplichtingen, wel historische
BEGIN
@@ -1761,19 +1787,18 @@ BEGIN
fac.imp_writelog (p_import_key,
'I',
'Persoon geinactiveerd, personeelsnummer: ' || rec_prs_del.prs_perslid_authenticatie,
''
);
'Persoon verwijderd; RIN: ' || rec_prs_del.rin,
'');
EXCEPTION
WHEN OTHERS
THEN
-- Kennelijk heeft de persoon toch ernstige verplichtingen
-- Kennelijk heeft persoon toch ernstige verplichtingen
v_errorhint :=
'Persoon heeft nog (max. '
|| TO_CHAR (v_count)
|| ') verplichtingen; personeelsnummer: '
|| rec_prs_del.prs_perslid_authenticatie;
fac.imp_writelog (p_import_key, 'I', 'Inactiveren persoon is niet gelukt', v_errorhint);
|| ') verplichtingen; RIN: '
|| rec_prs_del.rin;
fac.imp_writelog (p_import_key, 'I', v_errormsg, v_errorhint);
END;
END IF;
END IF;
@@ -1801,10 +1826,10 @@ BEGIN
v_errormsg := 'Fout bij bepalen randvoorwaarden';
-- *** Controle verplichte gegevens + ophalen extra informatie ***
-- Controle: PRS_PERSLID_authenticatie
IF rec_prs_upd.personeelsnummer IS NULL
-- Controle: RIN
IF rec_prs_upd.rin IS NULL
THEN
v_errorhint := 'Persoon heeft geen BSN; achternaam: ' || rec_prs_upd.prs_perslid_naam;
v_errorhint := 'Persoon heeft geen RIN; achternaam: ' || rec_prs_upd.prs_perslid_naam;
fac.imp_writelog (p_import_key, 'W', v_errormsg, v_errorhint);
v_update := FALSE;
END IF;
@@ -1812,47 +1837,41 @@ BEGIN
-- Controle: PRS_PERSLID_NAAM
IF v_update AND rec_prs_upd.prs_perslid_naam IS NULL
THEN
v_errorhint := 'Persoon heeft geen achternaam; personeelsnummer: ' || rec_prs_upd.personeelsnummer;
v_errorhint := 'Persoon heeft geen achternaam; RIN: ' || rec_prs_upd.rin;
fac.imp_writelog (p_import_key, 'W', v_errormsg, v_errorhint);
v_update := FALSE;
END IF;
-- Controle: Kan persoon gereactiveerd worden of is er al een persoon met dezelfde prs_perslid_authenticatie actief
-- Controle: Persoon reactiveren of is er al een actieve persoon met dezelfde RIN?
IF v_update AND rec_prs_upd.prs_perslid_verwijder IS NOT NULL
THEN
BEGIN
-- Is er al een actieve persoon met dezelfde perslid_nr
SELECT COUNT (p.prs_perslid_key)
INTO v_prs_key_cnt
FROM prs_perslid p
WHERE p.prs_perslid_verwijder IS NULL
AND p.prs_perslid_authenticatie LIKE rec_prs_upd.personeelsnummer
AND p.prs_perslid_key != rec_prs_upd.prs_perslid_key;
v_errorhint :=
'Bepalen reactivatie persoon/RIN: ' || rec_prs_upd.rin;
IF v_prs_key_cnt > 0
THEN
-- Waarde(n) gevonden: Er is al een actieve persoon met dezelfde prs_perslid_authenticatie gevonden: Niet updaten!!!
--v_errormsg := 'Persoon hoeft niet gereactiveerd te worden; prs_perslid_authenticatie: ' || rec_prs_upd.personeelsnummer;
--v_errorhint := 'Er bestaat al een persoon met dezelfde BSN die actief is, GEEN ACTIE NODIG; BSN: ' || rec_prs_upd.personeelsnummer;
--fac.imp_writelog (p_import_key, 'I', v_errormsg, v_errorhint);
v_update := FALSE;
ELSE
-- Kennelijk is er geen persoon gevonden met dezelfde prs_perslid_authenticatie
-- persoon kan gereactieveerd worden (prs_perslid_verwijder op NULL zetten)
-- v_update := TRUE;
v_errormsg := 'Persoon reactiveren; prs_perslid_authenticatie: ' || rec_prs_upd.personeelsnummer;
v_errorhint := 'ACTIE wordt ondernomen; BSN: ' || rec_prs_upd.personeelsnummer;
fac.imp_writelog (p_import_key, 'I', v_errormsg, v_errorhint);
END IF;
EXCEPTION
WHEN OTHERS
THEN
v_update := FALSE;
v_errorhint :=
'Fout in het vinden aantal actieve personen; personeelsnummer: '
|| rec_prs_upd.personeelsnummer
|| '?!';
END;
-- Is er al een actieve persoon met dezelfde RIN?
SELECT COUNT (p.prs_perslid_key)
INTO v_prs_key_cnt
FROM prs_v_aanwezigperslid p, prs_v_aanwezigkenmerklink kl
WHERE p.prs_perslid_key = kl.prs_link_key
AND kl.prs_kenmerk_key = c_rin_kkey
AND kl.prs_kenmerklink_waarde LIKE rec_prs_upd.rin
AND p.prs_perslid_key != rec_prs_upd.prs_perslid_key;
IF v_prs_key_cnt > 0
THEN
-- Waarde(n) gevonden, dus is er al een actieve persoon met dezelfde RIN!
-- => Geen update
v_update := FALSE;
ELSE
-- Kennelijk is er geen actieve persoon met dezelfde RIN!
-- => Wel update (prs_perslid_verwijder op NULL zetten)
fac.imp_writelog (
p_import_key,
'I',
'Persoon reactiveren; RIN: ' || rec_prs_upd.rin,
''
);
END IF;
END IF;
-- Controle: PRS_AFDELING_NAAM
@@ -1873,8 +1892,8 @@ BEGIN
v_errorhint :=
'Afdeling '
|| rec_prs_upd.prs_afdeling_naam
|| ' bestaat niet, persoon: '
|| rec_prs_upd.personeelsnummer;
|| ' bestaat niet; persoon/RIN: '
|| rec_prs_upd.rin;
-- Kennelijk is de afdeling niet gevonden
fac.imp_writelog (p_import_key, 'W', v_errormsg, v_errorhint);
WHEN OTHERS
@@ -1922,8 +1941,8 @@ BEGIN
v_errorhint :=
'Functie '
|| v_srtperslid_omschr
|| ' kan niet bepaald worden; persoon: '
|| rec_prs_upd.personeelsnummer;
|| ' kan niet bepaald worden; persoon/RIN: '
|| rec_prs_upd.rin;
v_update := FALSE;
END;
END IF;
@@ -2047,24 +2066,24 @@ BEGIN
RETURNING prs_perslid_key
INTO v_perslid_key;
--v_errormsg := 'Fout bij toevoegen RIN';
v_errormsg := 'Fout bij toevoegen RIN';
--INSERT INTO prs_kenmerklink (prs_link_key,
-- prs_kenmerklink_niveau,
-- prs_kenmerk_key,
-- prs_kenmerklink_waarde)
-- VALUES (v_perslid_key,
-- 'P',
-- c_rin_kkey,
-- rec_prs_upd.rin);
INSERT INTO prs_kenmerklink (prs_link_key,
prs_kenmerklink_niveau,
prs_kenmerk_key,
prs_kenmerklink_waarde)
VALUES (v_perslid_key,
'P',
c_rin_kkey,
rec_prs_upd.rin);
fac.imp_writelog (p_import_key,
'I',
'Nieuw persoon toegevoegd',
'Naam/BSN: '
'Naam/RIN: '
|| ltussenvoegselpres || ' ' || lnaampresentatie
|| '/'
|| rec_prs_upd.personeelsnummer
|| rec_prs_upd.rin
);
ELSE
v_errormsg := 'Persoon kan niet worden gewijzigd';
@@ -2086,8 +2105,7 @@ BEGIN
prs_perslid_ingangsdatum = rec_prs_upd.begindatum,
prs_perslid_einddatum = rec_prs_upd.einddatum,
prs_perslid_nr = rec_prs_upd.dienstverbandid
WHERE prs_perslid_authenticatie = rec_prs_upd.personeelsnummer
AND prs_perslid_key = rec_prs_upd.prs_perslid_key
WHERE prs_perslid_key = rec_prs_upd.prs_perslid_key
AND ( prs_perslid_naam <> lnaampresentatie
OR NVL (prs_perslid_tussenvoegsel, '-') <> NVL (ltussenvoegselpres, '-')
OR NVL (prs_perslid_voorletters, '-') <> NVL (rec_prs_upd.prs_perslid_voorletters, '-')
@@ -2109,47 +2127,13 @@ BEGIN
v_perslid_key := rec_prs_upd.prs_perslid_key;
END IF;
IF LENGTH (rec_prs_upd.rin) > 0
THEN
v_errormsg := 'Fout bij bepalen RIN';
SELECT COUNT ( * )
INTO v_count
FROM prs_v_aanwezigkenmerklink
WHERE prs_link_key = v_perslid_key
AND prs_kenmerklink_niveau = 'P'
AND prs_kenmerk_key = c_rin_kkey;
IF v_count = 0
THEN
v_errormsg := 'Fout bij toevoegen RIN';
INSERT INTO prs_kenmerklink (prs_link_key,
prs_kenmerklink_niveau,
prs_kenmerk_key,
prs_kenmerklink_waarde)
VALUES (v_perslid_key,
'P',
c_rin_kkey,
rec_prs_upd.rin);
--ELSE -- v_count = 1
-- v_errormsg := 'Fout bij wijzigen WIN-ID';
-- UPDATE prs_kenmerklink
-- SET prs_kenmerklink_waarde = rec_prs_upd.rin
-- WHERE prs_kenmerklink_key = v_kenmerklink_key;
END IF;
COMMIT;
END IF;
EXCEPTION
WHEN OTHERS
THEN
oracle_err_num := SQLCODE;
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
v_errormsg := v_errormsg || ' - ' || oracle_err_mes;
v_errorhint := 'Persoon: ' || rec_prs_upd.personeelsnummer;
v_errorhint := 'Persoon/RIN: ' || rec_prs_upd.rin;
v_update := FALSE;
fac.imp_writelog (p_import_key, 'W', v_errormsg, v_errorhint);
END;
@@ -2166,15 +2150,15 @@ BEGIN
-- ----------------------------------------------------------
-- RWSN#24870-einde!
v_errorhint := 'Update dienstverbandguid persoon: ' || rec_prs_upd.personeelsnummer;
v_errorhint := 'Update dienstverbandguid persoon/RIN: ' || rec_prs_upd.rin;
update_dienstverbandguid(v_perslid_key, rec_prs_upd.dienstverbandguid);
v_errorhint := 'Locatiebepaling persoon: ' || rec_prs_upd.personeelsnummer;
v_errorhint := 'Locatiebepaling persoon/RIN: ' || rec_prs_upd.rin;
IF rec_prs_upd.bezoekadrespostcode IS NOT NULL
THEN
v_newgebouwkey := getgebouwkey (rec_prs_upd.bezoekadrespostcode, rec_prs_upd.bezoekadresnummer);
handle_location (v_perslid_key, v_newgebouwkey);
handle_location (v_perslid_key, v_newgebouwkey, rec_prs_upd.rin);
END IF;
v_buffercount := v_buffercount + 1;
@@ -2194,30 +2178,36 @@ BEGIN
END;
END LOOP;
SELECT COUNT (*)
INTO v_perslid_newcount_fclt
FROM prs_perslid
WHERE prs_perslid_authenticatie IS NOT NULL AND prs_perslid_verwijder IS NULL;
SELECT COUNT ( * )
INTO v_perslid_newcount_fclt
FROM prs_v_aanwezigperslid p, prs_v_aanwezigkenmerklink kl
WHERE p.prs_perslid_key = kl.prs_link_key
AND kl.prs_kenmerk_key = c_rin_kkey;
fac.imp_writelog (p_import_key,
'S',
'Aantal actieve personen (met personeelsnr) vooraf: '
|| TO_CHAR (v_perslid_count_fclt)
|| ' nu: '
|| TO_CHAR (v_perslid_newcount_fclt),
''
);
fac.imp_writelog (
p_import_key,
'S',
'Aantal actieve personen met RIN vooraf: '
|| TO_CHAR (v_perslid_count_fclt)
|| ' nu: '
|| TO_CHAR (v_perslid_newcount_fclt),
'');
SELECT COUNT (*)
INTO v_perslid_newcount_fclt -- misbruik
FROM prs_perslid
WHERE prs_perslid_authenticatie IS NULL AND prs_perslid_verwijder IS NULL;
SELECT COUNT ( * )
INTO v_perslid_newcount_fclt -- misbruik
FROM prs_v_aanwezigperslid p
WHERE NOT EXISTS
(SELECT 1
FROM prs_v_aanwezigkenmerklink
WHERE prs_link_key = p.prs_perslid_key
AND prs_kenmerk_key = c_rin_kkey);
fac.imp_writelog (p_import_key,
'S',
'Aantal actieve personen zonder personeelsnr: ' || TO_CHAR (v_perslid_newcount_fclt),
''
);
fac.imp_writelog (
p_import_key,
'S',
'Aantal actieve personen zonder RIN (nu): '
|| TO_CHAR (v_perslid_newcount_fclt),
'');
EXCEPTION
WHEN OTHERS
THEN
@@ -2780,107 +2770,6 @@ AS
'dd-mm-yyyy hh24')
AND t.fac_srtnotificatie_key = sn.fac_srtnotificatie_key;
-- RWSN#14925/TODO: NOTI_EXTERN-view/procedures droppen!
CREATE OR REPLACE VIEW rwsn_v_export_noti_extern (result, result_order)
AS
SELECT 'Niets te exporteren', 1 FROM DUAL;
/
CREATE OR REPLACE PROCEDURE rwsn_select_noti_extern (
p_applname IN VARCHAR2,
p_applrun IN VARCHAR2
)
AS
v_errormsg VARCHAR (200);
BEGIN
v_errormsg := 'Lekker niets doen. Procedure rwsn_export_noti_extern doet het werk';
END;
/
-- Procedure om notificaties naar externen te sturen.
/* Formatted on 23-7-2010 14:42:13 (QP5 v5.136.908.31019) */
CREATE OR REPLACE PROCEDURE rwsn_export_noti_extern (p_applname IN VARCHAR2,
p_applrun IN VARCHAR2,
p_filedir IN VARCHAR2,
p_filename IN VARCHAR2
)
AS
v_errormsg VARCHAR (200);
oracle_err_num NUMBER;
oracle_err_mes VARCHAR2 (200);
v_omschrijving VARCHAR2 (200);
CURSOR c_cursor
IS
SELECT 4 sender_key,
m.mld_melding_key,
ins_discipline_omschrijving,
mld_stdmelding_omschrijving,
fac.gettrackingdate ('MLDAFM', m.mld_melding_key) mld_melding_afgemeld,
mld_melding_datum,
km.mld_kenmerkmelding_waarde,
'kcc@rws.nl' sendermail
FROM ins_tab_discipline d, mld_melding m, mld_kenmerkmelding km, mld_kenmerk k, mld_stdmelding std
WHERE d.ins_discipline_key = std.mld_ins_discipline_key
AND m.mld_stdmelding_key = std.mld_stdmelding_key
AND m.mld_melding_key = km.mld_melding_key
AND km.mld_kenmerk_key = k.mld_kenmerk_key
AND mld_srtkenmerk_key = 20
AND (fac.gettrackingdate ('MLDNEW', m.mld_melding_key) > SYSDATE - 1
OR fac.gettrackingdate ('MLDAFM', m.mld_melding_key) > SYSDATE - 1);
BEGIN
FOR rec1 IN c_cursor
LOOP
BEGIN
DBMS_OUTPUT.put_line ('melding key:' || rec1.mld_melding_key);
IF rec1.mld_melding_afgemeld IS NULL
THEN
v_omschrijving :=
'Uw melding '
|| rec1.mld_melding_key
|| '('
|| rec1.ins_discipline_omschrijving
|| '/'
|| rec1.mld_stdmelding_omschrijving
|| ') is geregistreerd';
ELSE
v_omschrijving :=
'Uw melding '
|| rec1.mld_melding_key
|| '('
|| rec1.ins_discipline_omschrijving
|| '/'
|| rec1.mld_stdmelding_omschrijving
|| ') is afgehandeld';
END IF;
fac.putnotificationsrtprio (rec1.sender_key,
NULL,
'MLDINF',
rec1.mld_melding_key,
v_omschrijving,
NULL,
rec1.mld_kenmerkmelding_waarde,
NULL,
NULL,
NULL,
rec1.sendermail
);
EXCEPTION
WHEN OTHERS
THEN
oracle_err_num := SQLCODE;
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
v_errormsg := 'Exception ' || oracle_err_mes;
fac.writelog (p_applname, 'E', v_errormsg, 'Toevoegen notificatie');
COMMIT;
END;
END LOOP;
COMMIT;
END;
/
--=====================================================================================
-- export catering gegevens naar AAFM
@@ -11105,7 +10994,7 @@ AS
AND kp4.prs_perslid_key IS NULL;
-- RWSN#27015: Omgebutst!
/* Formatted on 29-11-2013 13:24:42 (QP5 v5.115.810.9015) */
/* Formatted on 18-12-2013 14:10:50 (QP5 v5.115.810.9015) */
CREATE OR REPLACE VIEW rwsn_v_noti_aut_ictaanvragen
(
code,
@@ -11157,9 +11046,15 @@ AS -- ORD2GO naar FBs via srtkenmerk_key=103/104/105!
FROM fac_tracking
WHERE fac_srtnotificatie_key = 276 -- ORDGOE
AND fac_tracking_refkey = o.mld_opdr_key
AND TRUNC (fac_tracking_datum) = TRUNC (SYSDATE + 5 / 1440)
AND TO_NUMBER (TO_CHAR (fac_tracking_datum, 'HH24')) + 1 =
TO_NUMBER (TO_CHAR (SYSDATE + 5 / 1440, 'HH24')))
AND TRUNC (fac_tracking_datum) =
TRUNC (SYSDATE + 5 / 1440)
AND TO_NUMBER (
TO_CHAR (fac_tracking_datum, 'HH24')
)
+ 1 =
TO_NUMBER (
TO_CHAR (SYSDATE + 5 / 1440, 'HH24')
))
AND o.mld_melding_key = m.mld_melding_key
AND m.mld_stdmelding_key = sm.mld_stdmelding_key
AND sm.mld_ins_discipline_key = td.ins_discipline_key
@@ -11230,9 +11125,15 @@ AS -- ORD2GO naar FBs via srtkenmerk_key=103/104/105!
FROM fac_tracking
WHERE fac_srtnotificatie_key = 276 -- ORDGOE
AND fac_tracking_refkey = o.mld_opdr_key
AND TRUNC (fac_tracking_datum) = TRUNC (SYSDATE + 5 / 1440)
AND TO_NUMBER (TO_CHAR (fac_tracking_datum, 'HH24')) + 1 =
TO_NUMBER (TO_CHAR (SYSDATE + 5 / 1440, 'HH24')))
AND TRUNC (fac_tracking_datum) =
TRUNC (SYSDATE + 5 / 1440)
AND TO_NUMBER (
TO_CHAR (fac_tracking_datum, 'HH24')
)
+ 1 =
TO_NUMBER (
TO_CHAR (SYSDATE + 5 / 1440, 'HH24')
))
AND o.mld_melding_key = m.mld_melding_key
AND m.mld_stdmelding_key = sm.mld_stdmelding_key
AND sm.mld_ins_discipline_key = td.ins_discipline_key
@@ -11277,34 +11178,53 @@ AS -- ORD2GO naar FBs via srtkenmerk_key=103/104/105!
sm.mld_stdmelding_omschrijving,
NULL,
NULL
FROM mld_melding m,
FROM mld_opdr o,
mld_melding m,
mld_stdmelding sm,
ins_tab_discipline td,
mld_opdr o,
fac_tracking t,
( SELECT fac_tracking_refkey,
MAX (fac_tracking_key) fac_tracking_key
FROM fac_tracking
WHERE fac_srtnotificatie_key = 166 -- ORDFIA
AND TRUNC (fac_tracking_datum) =
TRUNC (SYSDATE + 5 / 1440)
AND TO_NUMBER (TO_CHAR (fac_tracking_datum, 'HH24'))
+ 1 =
TO_NUMBER (TO_CHAR (SYSDATE + 5 / 1440, 'HH24'))
GROUP BY fac_tracking_refkey) t,
prs_kostenplaats kp,
prs_kostenplaatsgrp kpg,
prs_collega c, -- Vervangers!
prs_perslid pv, -- Vervangers!
fac_gebruikersgroep gg,
fac_srtnotificatie sn
WHERE m.mld_melding_status IN (4, 7) -- Geaccepteerd/Uitgegeven
WHERE o.mld_statusopdr_key = 3 -- Ter fiattering!
AND o.mld_melding_key = m.mld_melding_key
AND m.mld_stdmelding_key = sm.mld_stdmelding_key
AND sm.mld_ins_discipline_key = td.ins_discipline_key
AND td.ins_srtdiscipline_key = 21 -- ICT aanvragen
AND td.ins_discipline_key <> 532 -- Niet standaard aanvraag
AND m.mld_melding_key = o.mld_melding_key
AND o.mld_statusopdr_key = 3 -- Ter fiattering!
AND o.mld_opdr_key = t.fac_tracking_refkey
AND t.fac_srtnotificatie_key = 166 -- ORDFIA
AND t.fac_tracking_key IN
(SELECT MAX (fac_tracking_key)
FROM fac_tracking
WHERE fac_srtnotificatie_key = 166 -- ORDFIA
AND fac_tracking_refkey =
t.fac_tracking_refkey)
AND TRUNC (t.fac_tracking_datum) = TRUNC (SYSDATE + 5 / 1440)
AND TO_NUMBER (TO_CHAR (t.fac_tracking_datum, 'HH24')) + 1 =
TO_NUMBER (TO_CHAR (SYSDATE + 5 / 1440, 'HH24'))
AND t.prs_perslid_key = c.prs_perslid_key
AND o.prs_kostenplaats_key = kp.prs_kostenplaats_key
AND kp.prs_kostenplaatsgrp_key = kpg.prs_kostenplaatsgrp_key(+)
AND c.prs_perslid_key =
CASE
WHEN NOT EXISTS
(SELECT 1
FROM fac_tracking
WHERE fac_srtnotificatie_key = 167 -- ORDFOK
AND fac_tracking_refkey =
o.mld_opdr_key)
THEN
prs.getkpverantwoordelijke (kp.prs_kostenplaats_key,
2,
-1)
ELSE
kpg.prs_perslid_key
END
AND c.prs_perslid_key_alt = pv.prs_perslid_key
AND pv.prs_perslid_key = gg.prs_perslid_key
AND gg.fac_groep_key = 1219 -- ICT: Fiattering namens
AND sn.fac_srtnotificatie_code = 'CUST02'
UNION ALL -- Afwijzing naar klant!
SELECT sn.fac_srtnotificatie_code,
@@ -11315,30 +11235,29 @@ AS -- ORD2GO naar FBs via srtkenmerk_key=103/104/105!
sm.mld_stdmelding_omschrijving,
NULL,
NULL
FROM mld_melding m,
FROM mld_opdr o,
mld_melding m,
mld_stdmelding sm,
ins_tab_discipline td,
mld_opdr o,
fac_tracking t,
( SELECT fac_tracking_refkey,
MAX (fac_tracking_key) fac_tracking_key
FROM fac_tracking
WHERE fac_srtnotificatie_key IN (168, 277) -- ORDFNO/GNO
AND TRUNC (fac_tracking_datum) =
TRUNC (SYSDATE + 5 / 1440)
AND TO_NUMBER (TO_CHAR (fac_tracking_datum, 'HH24'))
+ 1 =
TO_NUMBER (TO_CHAR (SYSDATE + 5 / 1440, 'HH24'))
GROUP BY fac_tracking_refkey) t,
fac_srtnotificatie sn
WHERE m.mld_melding_status IN (4, 7) -- Geaccepteerd/Uitgegeven
WHERE o.mld_statusopdr_key = 2 -- Niet akkoord!
AND o.mld_melding_key = m.mld_melding_key
AND m.mld_melding_status IN (4, 7) -- Geaccepteerd/Uitgegeven
AND m.mld_stdmelding_key = sm.mld_stdmelding_key
AND sm.mld_ins_discipline_key = td.ins_discipline_key
AND td.ins_srtdiscipline_key = 21 -- ICT aanvragen
AND td.ins_discipline_key <> 532 -- Niet standaard aanvraag
AND m.mld_melding_key = o.mld_melding_key
AND o.mld_statusopdr_key = 2 -- Niet akkoord!
AND o.mld_opdr_key = t.fac_tracking_refkey
AND t.fac_srtnotificatie_key IN (168, 277) -- ORDFNO/GNO
AND t.fac_tracking_key IN
(SELECT MAX (fac_tracking_key)
FROM fac_tracking
WHERE fac_srtnotificatie_key IN (168, 277)
AND fac_tracking_refkey =
t.fac_tracking_refkey)
AND TRUNC (t.fac_tracking_datum) = TRUNC (SYSDATE + 5 / 1440)
AND TO_NUMBER (TO_CHAR (t.fac_tracking_datum, 'HH24')) + 1 =
TO_NUMBER (TO_CHAR (SYSDATE + 5 / 1440, 'HH24'))
AND sn.fac_srtnotificatie_code = 'CUST06';
-- TODO: Reminder naar FBs/KEYs!
@@ -21857,7 +21776,7 @@ AS
BEGIN adm.systrackscriptId('$Id$', 0); END;
/
BEGIN fac.registercustversion('RWSN', 51); END;
BEGIN fac.registercustversion('RWSN', 52); END;
/
COMMIT;
spool off