2865 lines
116 KiB
SQL
2865 lines
116 KiB
SQL
--
|
||
-- $Id$
|
||
--
|
||
-- Script containing customer specific sql statements for the LOGI database
|
||
|
||
DEFINE thisfile = 'LOGI.SQL'
|
||
DEFINE dbuser = '^LOGI'
|
||
DEFINE custid = 'LOGI'
|
||
|
||
SET ECHO ON
|
||
SET DEFINE ON
|
||
COLUMN fcltlogfile NEW_VALUE fcltlogfile NOPRINT;
|
||
WHENEVER SQLERROR EXIT;
|
||
SELECT adm.scriptspoolfile('&dbuser', '&thisfile') AS fcltlogfile FROM DUAL;
|
||
WHENEVER SQLERROR CONTINUE;
|
||
SPOOL &fcltlogfile
|
||
SET DEFINE OFF
|
||
|
||
------ payload begin ------
|
||
|
||
/* De 'oude' personen import en update vervangen door de standaard
|
||
CREATE OR REPLACE PROCEDURE logi_import_persoon (p_import_key IN NUMBER)
|
||
AS
|
||
c_max_import_str_len NUMBER (10) := 1000;
|
||
|
||
CURSOR c_cursor
|
||
IS
|
||
SELECT *
|
||
FROM fac_imp_file
|
||
WHERE fac_import_key = p_import_key
|
||
ORDER BY fac_imp_file_index;
|
||
|
||
NEXT_RECORD c_cursor%ROWTYPE;
|
||
|
||
v_newline VARCHAR2 (1000); -- Import line
|
||
v_fielddelimitor VARCHAR2 (1); -- Field seperator
|
||
v_errormsg VARCHAR2 (1000) := '-';
|
||
v_errorhint VARCHAR2 (1000) := '-';
|
||
oracle_err_num NUMBER;
|
||
oracle_err_mes VARCHAR2 (200);
|
||
|
||
-- De importvelden
|
||
v_perslid_nr VARCHAR2 (1000);
|
||
v_perslid_naam VARCHAR2 (1000);
|
||
v_perslid_voornaam VARCHAR2 (1000);
|
||
v_perslid_tussenvoegsel VARCHAR2 (1000);
|
||
v_perslid_oslogin VARCHAR2 (1000);
|
||
v_perslid_email VARCHAR2 (1000);
|
||
v_dummy VARCHAR2 (1000);
|
||
v_afdeling_naam VARCHAR2 (1000);
|
||
v_locatie_omschrijving VARCHAR2 (1000);
|
||
header_found BOOLEAN;
|
||
v_controle_res VARCHAR2 (30);
|
||
|
||
-- SUBFUNCTION
|
||
FUNCTION get_imp_value (p_value IN VARCHAR2, p_length IN NUMBER)
|
||
RETURN VARCHAR2
|
||
IS
|
||
c_del_in_str VARCHAR2 (16) := 'NULL';
|
||
c_del_in_str2 VARCHAR2 (16) := '"';
|
||
|
||
v_value VARCHAR2 (1000);
|
||
BEGIN
|
||
SELECT SUBSTR (
|
||
TRIM(COALESCE (
|
||
REPLACE (REPLACE (p_value, c_del_in_str),
|
||
c_del_in_str2,
|
||
''),
|
||
'')),
|
||
1,
|
||
p_length)
|
||
INTO v_value
|
||
FROM DUAL;
|
||
|
||
RETURN v_value;
|
||
EXCEPTION
|
||
WHEN OTHERS
|
||
THEN
|
||
RETURN p_value;
|
||
END;
|
||
BEGIN
|
||
-- Init
|
||
v_fielddelimitor := ';';
|
||
v_errormsg := '';
|
||
|
||
header_found := FALSE;
|
||
v_controle_res := 'OK'; -- Hier kan een controle ingebouwd worden ...
|
||
|
||
IF (v_controle_res IS NULL)
|
||
THEN
|
||
v_errormsg := 'Ongeldig importbestand';
|
||
fac.imp_writelog (p_import_key,
|
||
'E',
|
||
v_errormsg,
|
||
'');
|
||
ELSE
|
||
-- Clear my previous imported rows
|
||
DELETE FROM logi_imp_persoon;
|
||
|
||
COMMIT;
|
||
|
||
FOR NEXT_RECORD IN c_cursor
|
||
LOOP
|
||
BEGIN
|
||
v_newline :=
|
||
SUBSTR (NEXT_RECORD.FAC_IMP_FILE_LINE,
|
||
1,
|
||
c_max_import_str_len);
|
||
|
||
fac.imp_getfield (v_newline, v_fielddelimitor, v_perslid_nr);
|
||
fac.imp_getfield (v_newline, v_fielddelimitor, v_perslid_naam);
|
||
fac.imp_getfield (v_newline,
|
||
v_fielddelimitor,
|
||
v_perslid_voornaam);
|
||
fac.imp_getfield (v_newline,
|
||
v_fielddelimitor,
|
||
v_perslid_tussenvoegsel);
|
||
|
||
fac.imp_getfield (v_newline, v_fielddelimitor, v_perslid_oslogin);
|
||
fac.imp_getfield (v_newline, v_fielddelimitor, v_perslid_email);
|
||
|
||
fac.imp_getfield (v_newline, v_fielddelimitor, v_dummy);
|
||
|
||
fac.imp_getfield (v_newline, v_fielddelimitor, v_afdeling_naam);
|
||
|
||
fac.imp_getfield (v_newline,
|
||
v_fielddelimitor,
|
||
v_locatie_omschrijving);
|
||
|
||
-- Skip until the header is found
|
||
header_found := TRUE; -- Geen Header check
|
||
|
||
IF (header_found)
|
||
THEN
|
||
BEGIN
|
||
v_errormsg := 'Kan persoonsgegevens niet inlezen ';
|
||
|
||
v_perslid_nr := get_imp_value (v_perslid_nr, 16);
|
||
v_perslid_naam := get_imp_value (v_perslid_naam, 30);
|
||
v_perslid_voornaam := get_imp_value (v_perslid_voornaam, 30);
|
||
v_perslid_tussenvoegsel := get_imp_value (v_perslid_tussenvoegsel, 15);
|
||
v_perslid_oslogin := get_imp_value (v_perslid_oslogin, 30);
|
||
v_perslid_email := get_imp_value (v_perslid_email, 200);
|
||
v_afdeling_naam := get_imp_value (v_afdeling_naam, 10);
|
||
v_locatie_omschrijving := get_imp_value (v_locatie_omschrijving, 30);
|
||
|
||
-- Velden met een waarde '' zijn leeg ivm privacy overwegingen
|
||
INSERT INTO logi_imp_persoon (prs_perslid_nr,
|
||
prs_perslid_naam,
|
||
prs_perslid_voornaam,
|
||
prs_perslid_tussenvoegsel,
|
||
prs_perslid_voorletters,
|
||
prs_perslid_telefoonnr,
|
||
prs_perslid_mobiel,
|
||
prs_perslid_oslogin,
|
||
prs_perslid_email,
|
||
prs_srtperslid_omschrijving,
|
||
prs_afdeling_naam,
|
||
prs_perslid_ingangsdatum,
|
||
prs_perslid_einddatum,
|
||
prs_locatie_omschrijving,
|
||
alg_ruimte_nr,
|
||
logi_imp_persoon_aanmaak)
|
||
VALUES (v_perslid_nr,
|
||
v_perslid_naam,
|
||
v_perslid_voornaam,
|
||
v_perslid_tussenvoegsel,
|
||
'',
|
||
'',
|
||
'',
|
||
v_perslid_oslogin,
|
||
v_perslid_email,
|
||
'',
|
||
'', -- LOGI#31662, was: v_afdeling_naam,
|
||
'',
|
||
'',
|
||
v_locatie_omschrijving,
|
||
'',
|
||
SYSDATE);
|
||
|
||
COMMIT;
|
||
EXCEPTION
|
||
WHEN OTHERS
|
||
THEN
|
||
oracle_err_num := SQLCODE;
|
||
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
|
||
v_errormsg :=
|
||
v_errormsg
|
||
|| 'OTHERS (error '
|
||
|| oracle_err_num
|
||
|| '/'
|
||
|| oracle_err_mes
|
||
|| ')';
|
||
fac.imp_writelog (p_import_key,
|
||
'E',
|
||
v_errormsg,
|
||
'personeelsnummer:' || v_perslid_nr);
|
||
COMMIT;
|
||
END;
|
||
END IF;
|
||
|
||
COMMIT;
|
||
END;
|
||
END LOOP;
|
||
END IF;
|
||
EXCEPTION
|
||
WHEN OTHERS
|
||
THEN
|
||
oracle_err_num := SQLCODE;
|
||
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
|
||
v_errormsg :=
|
||
'OTHERS (error ' || oracle_err_num || '/' || oracle_err_mes || ')';
|
||
fac.imp_writelog (p_import_key,
|
||
'E',
|
||
v_errormsg,
|
||
'');
|
||
END;
|
||
/
|
||
|
||
|
||
CREATE OR REPLACE PROCEDURE logi_update_persoon (p_import_key IN NUMBER)
|
||
AS
|
||
-- Constanten (LET OP: deze waarden moeten letterlijk in de DB aabwezig zijn!)
|
||
c_usrtab_key INTEGER := 1; -- Tbv LOCATIE
|
||
c_srtgebouw_default INTEGER := 1;
|
||
c_srtruimte_default INTEGER := 1;
|
||
c_afdeling_key NUMBER := 6761; -- LOGI#31662
|
||
|
||
-- Constanten (overig)
|
||
c_prs_werkplek_omschrijving VARCHAR2 (16) := 'Onbekend';
|
||
c_srtperslid_omschr_default VARCHAR2 (16) := 'Onbekend';
|
||
c_werkplek_volgnr_default INTEGER := 1;
|
||
c_verdieping_omschr_default VARCHAR2 (16) := 'BG';
|
||
c_ruimte_omschr_default VARCHAR2 (16) := 'Onbekend';
|
||
c_ruimte_code VARCHAR2 (3) := '000';
|
||
c_commitbuffer NUMBER := 1000;
|
||
c_perslid_aanmaak DATE; -- := TO_DATE('01011980','ddmmyy'); -- ivm privacy overwegingen
|
||
c_perslid_verwijder DATE; -- := TO_DATE('01011980','ddmmyy'); -- ivm privacy overwegingen
|
||
c_perslid_ingangsdatum DATE; -- := TO_DATE('01011980','ddmmyy'); -- ivm privacy overwegingen
|
||
c_no_key_found NUMBER := 0;
|
||
--c_afdeling_niveau_persoon NUMBER(1) := 3; -- Afdelingsniveau waaraan personen gekoppeld worden
|
||
|
||
-- Prefix voor persoonnaam om aan te geven dat de persoon op de nominatie staat om verwijderd te
|
||
-- worden maar dat verwijderen nog niet mogelijk is omdat de persoon verplichtingen heeft.
|
||
c_inactief VARCHAR2(16) := 'INACTIEF:';
|
||
|
||
-- om de zoveel committen
|
||
v_buffercount NUMBER := 0;
|
||
|
||
CURSOR c_prs_del
|
||
IS
|
||
SELECT p.prs_perslid_key, p.prs_perslid_nr
|
||
FROM PRS_PERSLID p, (select prs_perslid_nr
|
||
from logi_imp_persoon
|
||
where prs_perslid_nr is not null) lp
|
||
WHERE 1=1
|
||
AND p.prs_perslid_nr IS NOT NULL
|
||
AND p.prs_perslid_verwijder IS NULL
|
||
AND p.prs_perslid_nr = lp.prs_perslid_nr(+)
|
||
AND lp.prs_perslid_nr is null
|
||
ORDER BY 2, 1;
|
||
|
||
CURSOR c_prs_upd
|
||
IS
|
||
SELECT p.prs_perslid_key
|
||
, lp.prs_locatie_omschrijving
|
||
--, lp.prs_afdeling_naam
|
||
, lp.prs_perslid_naam
|
||
, lp.prs_perslid_tussenvoegsel
|
||
, lp.prs_perslid_voorletters
|
||
, lp.prs_perslid_voornaam
|
||
, lp.prs_perslid_telefoonnr
|
||
, lp.prs_perslid_mobiel
|
||
, lp.prs_perslid_oslogin
|
||
, lp.prs_perslid_email
|
||
, coalesce(lp.prs_srtperslid_omschrijving, c_srtperslid_omschr_default) prs_srtperslid_omschrijving
|
||
, lp.prs_perslid_nr
|
||
, '' prs_perslid_titel
|
||
, p.prs_perslid_verwijder
|
||
FROM logi_imp_persoon lp, prs_perslid p
|
||
WHERE 1=1
|
||
AND lp.prs_perslid_nr = p.prs_perslid_nr(+)
|
||
-- Dit moet analoog aan UWVA#13061: verwijderde personen moeten kunnen worden gereactiveerd.
|
||
-- AND p.prs_perslid_verwijder IS NULL
|
||
ORDER BY lp.prs_perslid_nr, p.prs_perslid_key DESC;
|
||
|
||
v_perslid_key NUMBER (10);
|
||
v_prs_key_cnt NUMBER (10);
|
||
v_srtperslid_key NUMBER (10);
|
||
--v_afdeling_key NUMBER (10);
|
||
v_locatie_key NUMBER (10);
|
||
v_gebouw_key NUMBER (10);
|
||
v_verdieping_key NUMBER (10);
|
||
v_ruimte_key NUMBER (10);
|
||
v_werkplek_key NUMBER (10);
|
||
v_gebouw_code VARCHAR2 (10);
|
||
v_srtperslid_omschr VARCHAR (30);
|
||
rec_prs_del c_prs_del%ROWTYPE;
|
||
rec_prs_upd c_prs_upd%ROWTYPE;
|
||
oracle_err_num NUMBER;
|
||
oracle_err_mes VARCHAR2 (200);
|
||
v_errormsg VARCHAR2 (1024);
|
||
v_errorhint VARCHAR2 (1024);
|
||
v_debug VARCHAR2 (1024);
|
||
v_count NUMBER (10);
|
||
v_update BOOLEAN;
|
||
v_aktie VARCHAR (10);
|
||
v_perslid_count_imp NUMBER;
|
||
v_perslid_count_fclt NUMBER;
|
||
v_perslid_newcount_fclt NUMBER;
|
||
currentversion fac_module.fac_module_version%TYPE;
|
||
l_validatie NUMBER;
|
||
v_srtimport VARCHAR2 (10);
|
||
l_nrkps NUMBER;
|
||
v_nr_werkplek NUMBER;
|
||
v_current_locatie_key NUMBER;
|
||
v_new_locatie_key NUMBER;
|
||
|
||
BEGIN
|
||
|
||
-- Constanten:
|
||
select TO_DATE('01011980','ddmmyy'),TO_DATE('01011980','ddmmyy'),TO_DATE('01011980','ddmmyy')
|
||
into c_perslid_aanmaak, c_perslid_verwijder, c_perslid_ingangsdatum
|
||
from dual;
|
||
|
||
-- verwijder werkplekrelaties met een verwijderdatum. Anders krijgen we straks last van een contraint op perslidwerkplek.
|
||
--delete prs_perslidwerkplek where prs_perslidwerkplek_verwijder is not null;
|
||
|
||
-- Delete
|
||
v_errorhint := 'Eventueel te verwijderen personen worden verwijderd ';
|
||
|
||
FOR rec_prs_del IN c_prs_del
|
||
LOOP
|
||
BEGIN
|
||
prs.delete_perslid (p_import_key, rec_prs_del.prs_perslid_key);
|
||
END;
|
||
END LOOP;
|
||
|
||
|
||
COMMIT;
|
||
-- Update
|
||
v_errormsg := 'Persoonsgegevens worden nu angepast (toevoegen/wijzigen) ';
|
||
|
||
FOR rec_prs_upd IN c_prs_upd
|
||
LOOP
|
||
BEGIN
|
||
|
||
-- Init
|
||
v_update := TRUE; -- Nog geen fouten gevonden
|
||
--v_afdeling_key := c_no_key_found;
|
||
v_srtperslid_key := c_no_key_found;
|
||
v_perslid_key := c_no_key_found;
|
||
v_errormsg := '';
|
||
|
||
IF rec_prs_upd.prs_perslid_key IS NULL
|
||
THEN
|
||
v_aktie := 'INSERT';
|
||
v_errorhint := 'Persoonsgegevens kunnen niet toegevoegd worden';
|
||
ELSE
|
||
v_aktie := 'UPDATE';
|
||
v_errorhint := 'Persoonsgegevens kunnen niet gewijzigd worden';
|
||
END IF;
|
||
|
||
-- *** Controle verplichte gegevens + ophalen extra informatie ***
|
||
-- Controle: PRS_PERSLID_NR
|
||
IF rec_prs_upd.prs_perslid_nr IS NULL
|
||
THEN
|
||
v_errormsg := 'Persoon met achternaam ['||rec_prs_upd.prs_perslid_naam||' heeft geen personeelsnummer ';
|
||
fac.imp_writelog (p_import_key, 'E', v_errormsg, v_errorhint);
|
||
commit; -- logging
|
||
v_update := FALSE;
|
||
END IF;
|
||
|
||
-- Controle: PRS_PERSLID_NAAM
|
||
IF v_update AND rec_prs_upd.prs_perslid_naam IS NULL
|
||
THEN
|
||
v_errormsg := 'Persoon met personeelsnummer [' || rec_prs_upd.prs_perslid_nr||'] heeft geen achternaam';
|
||
fac.imp_writelog (p_import_key, 'E', v_errormsg, v_errorhint);
|
||
v_update := FALSE;
|
||
END IF;
|
||
|
||
-- Controle: Kan persoon gereactieveerd worden of is er al een persoon met dezelfde prs_perslid_nr actief
|
||
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_nr LIKE rec_prs_upd.prs_perslid_nr
|
||
AND p.prs_perslid_key != rec_prs_upd.prs_perslid_key;
|
||
|
||
IF v_prs_key_cnt > 0
|
||
THEN
|
||
-- (UWVA#13270)
|
||
-- Waarde(n) gevonden: Er is al een actieve persoon met dezelfde prs_perslid_nr gevonden: Niet updaten!!!
|
||
--v_errormsg := 'Persoon hoeft niet gereactiveerd te worden; prs_perslid_nr: ' || rec_prs_upd.prs_perslid_nr;
|
||
--v_errorhint := 'Er bestaat al een persoon met dezelfde persooneelsnummer die actief is, GEEN ACTIE NODIG; personeelsnummer: ' || rec_prs_upd.prs_perslid_nr;
|
||
--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_nr
|
||
-- persoon kan gereactieveerd worden (prs_perslid_verwijder op NULL zetten)
|
||
-- v_update := TRUE;
|
||
v_errormsg := 'Persoon reactiveren; prs_perslid_nr: ' || rec_prs_upd.prs_perslid_nr;
|
||
v_errorhint := 'ACTIE wordt ondernomen; personeelsnummer: ' || rec_prs_upd.prs_perslid_nr;
|
||
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.prs_perslid_nr || '?!';
|
||
END;
|
||
END IF;
|
||
|
||
-- Controle: PRS_SRTPERSLID_OMSCHRIJVING
|
||
IF v_update
|
||
THEN
|
||
v_srtperslid_omschr := RTRIM (INITCAP (rec_prs_upd.prs_srtperslid_omschrijving));
|
||
|
||
BEGIN
|
||
-- Bepaal de key van de functie
|
||
SELECT prs_srtperslid_key
|
||
INTO v_srtperslid_key
|
||
FROM prs_srtperslid
|
||
WHERE prs_srtperslid_upper = UPPER (v_srtperslid_omschr) AND prs_srtperslid_verwijder IS NULL;
|
||
EXCEPTION
|
||
WHEN NO_DATA_FOUND
|
||
THEN
|
||
v_errormsg := 'prs_srtperslid ' || v_srtperslid_omschr || ' bestaat niet';
|
||
|
||
-- Functie bestaat kennelijk niet, maak 'm maar aan
|
||
INSERT INTO prs_srtperslid
|
||
(prs_srtperslid_omschrijving
|
||
)
|
||
VALUES (v_srtperslid_omschr
|
||
);
|
||
|
||
-- Wat is de key van deze nieuwe geworden?
|
||
SELECT prs_srtperslid_key
|
||
INTO v_srtperslid_key
|
||
FROM prs_srtperslid
|
||
WHERE prs_srtperslid_omschrijving = v_srtperslid_omschr AND prs_srtperslid_verwijder IS NULL;
|
||
WHEN OTHERS
|
||
THEN
|
||
v_errorhint :=
|
||
'Functie '
|
||
|| v_srtperslid_omschr
|
||
|| ' kan niet bepaald worden; persoonnr: '
|
||
|| rec_prs_upd.prs_perslid_nr;
|
||
v_update := FALSE;
|
||
END;
|
||
END IF;
|
||
|
||
-- *** Daadwerkelijk insert/update prs_perslid ***
|
||
IF v_update
|
||
THEN
|
||
BEGIN
|
||
IF v_aktie = 'INSERT'
|
||
THEN
|
||
v_errormsg := 'Persoon kan niet worden toegevoegd';
|
||
|
||
INSERT INTO prs_perslid
|
||
(prs_perslid_naam, prs_perslid_tussenvoegsel, prs_perslid_module,
|
||
prs_perslid_voorletters, prs_perslid_voornaam,
|
||
prs_perslid_telefoonnr, prs_perslid_mobiel, prs_perslid_oslogin, prs_perslid_email, prs_perslid_nr,
|
||
prs_perslid_titel, prs_srtperslid_key, prs_afdeling_key, prs_perslid_aanmaak
|
||
)
|
||
VALUES (rec_prs_upd.prs_perslid_naam, rec_prs_upd.prs_perslid_tussenvoegsel, 'PRS',
|
||
rec_prs_upd.prs_perslid_voorletters, rec_prs_upd.prs_perslid_voornaam,
|
||
rec_prs_upd.prs_perslid_telefoonnr, rec_prs_upd.prs_perslid_mobiel, rec_prs_upd.prs_perslid_oslogin, rec_prs_upd.prs_perslid_email, rec_prs_upd.prs_perslid_nr,
|
||
rec_prs_upd.prs_perslid_titel, v_srtperslid_key, c_afdeling_key, c_perslid_aanmaak
|
||
);
|
||
|
||
fac.imp_writelog (p_import_key,
|
||
'C',
|
||
'Nieuw persoon toegevoegd',
|
||
'Naam/persoonsnr: '
|
||
|| rec_prs_upd.prs_perslid_naam
|
||
|| '/'
|
||
|| rec_prs_upd.prs_perslid_nr
|
||
);
|
||
commit;
|
||
|
||
ELSE
|
||
|
||
v_errormsg := 'Persoon kan niet worden gewijzigd';
|
||
|
||
UPDATE prs_perslid
|
||
SET prs_perslid_naam = rec_prs_upd.prs_perslid_naam,
|
||
prs_perslid_tussenvoegsel = rec_prs_upd.prs_perslid_tussenvoegsel,
|
||
prs_perslid_voorletters = rec_prs_upd.prs_perslid_voorletters,
|
||
prs_perslid_voornaam = NVL (rec_prs_upd.prs_perslid_voornaam, prs_perslid_voornaam),
|
||
prs_perslid_telefoonnr = NVL (rec_prs_upd.prs_perslid_telefoonnr, prs_perslid_telefoonnr),
|
||
prs_perslid_titel = rec_prs_upd.prs_perslid_titel,
|
||
prs_srtperslid_key = v_srtperslid_key,
|
||
prs_afdeling_key = c_afdeling_key,
|
||
prs_perslid_verwijder = NULL,
|
||
prs_perslid_oslogin = rec_prs_upd.prs_perslid_oslogin,
|
||
prs_perslid_email = rec_prs_upd.prs_perslid_email
|
||
WHERE prs_perslid_nr = rec_prs_upd.prs_perslid_nr
|
||
AND prs_perslid_key = rec_prs_upd.prs_perslid_key
|
||
AND ( prs_perslid_naam <> rec_prs_upd.prs_perslid_naam
|
||
OR NVL (prs_perslid_tussenvoegsel, '-') <> NVL (rec_prs_upd.prs_perslid_tussenvoegsel, '-')
|
||
OR prs_perslid_voorletters <> rec_prs_upd.prs_perslid_voorletters
|
||
OR NVL (prs_perslid_voornaam, '-') <> NVL (rec_prs_upd.prs_perslid_voornaam, '-')
|
||
OR NVL (prs_perslid_telefoonnr, '-') <> NVL (rec_prs_upd.prs_perslid_telefoonnr, '-')
|
||
OR prs_perslid_titel <> rec_prs_upd.prs_perslid_titel
|
||
OR prs_srtperslid_key <> v_srtperslid_key
|
||
OR prs_afdeling_key <> c_afdeling_key
|
||
OR prs_perslid_oslogin <> rec_prs_upd.prs_perslid_oslogin
|
||
OR prs_perslid_email <> rec_prs_upd.prs_perslid_email
|
||
OR rec_prs_upd.prs_perslid_verwijder IS NOT NULL
|
||
);
|
||
commit;
|
||
|
||
END IF;
|
||
EXCEPTION
|
||
WHEN OTHERS
|
||
THEN
|
||
oracle_err_num := SQLCODE;
|
||
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
|
||
--v_errorhint := 'perslid_nr:' || rec_prs_upd.prs_perslid_nr || ' afdeling:' || rec_prs_upd.prs_afdeling_naam || ' {' || v_errormsg || '}';
|
||
v_errorhint := 'perslid_nr:' || rec_prs_upd.prs_perslid_nr || ' {' || v_errormsg || '}';
|
||
v_errormsg := '(ORACLE error ' || oracle_err_num || '/' || oracle_err_mes || ')';
|
||
v_update := FALSE;
|
||
fac.imp_writelog (p_import_key, 'E', v_errormsg, v_errorhint);
|
||
END;
|
||
END IF;
|
||
|
||
-- *** Werkplek ***
|
||
v_errorhint := 'Kan geen werkplek toevoegen';
|
||
|
||
IF v_update AND (v_aktie = 'UPDATE')
|
||
THEN
|
||
-- bepaal aantal werkplekken
|
||
BEGIN
|
||
SELECT COUNT(*)
|
||
INTO v_nr_werkplek
|
||
FROM prs_perslidwerkplek
|
||
WHERE prs_perslid_key = rec_prs_upd.prs_perslid_key;
|
||
EXCEPTION
|
||
WHEN OTHERS
|
||
THEN
|
||
fac.imp_writelog (p_import_key,
|
||
'I',
|
||
v_errormsg,
|
||
'Het aantal werkplekken kan niet bepaald worden?! personeelsnummer: '
|
||
|| rec_prs_upd.prs_perslid_nr
|
||
);
|
||
v_update := FALSE;
|
||
END;
|
||
IF v_update AND v_nr_werkplek = 1
|
||
THEN
|
||
BEGIN
|
||
|
||
-- bepaal huidige alg_locatie_key
|
||
SELECT alg_locatie_key
|
||
INTO v_current_locatie_key
|
||
FROM prs_v_werkplekperslid_gegevens
|
||
WHERE prs_perslid_key = rec_prs_upd.prs_perslid_key;
|
||
|
||
-- bepaal nieuwe alg_locatie_key
|
||
SELECT lo.alg_locatie_key
|
||
INTO v_new_locatie_key
|
||
FROM fac_usrdata ud,
|
||
alg_locatie lo
|
||
WHERE ud.fac_usrtab_key = c_usrtab_key
|
||
AND ud.fac_usrdata_code = lo.alg_locatie_code
|
||
AND ud.fac_usrdata_omschr = rec_prs_upd.prs_locatie_omschrijving
|
||
AND lo.alg_locatie_verwijder IS NULL;
|
||
-- indien gelijk dan werkplek niet updaten.
|
||
v_update := (v_current_locatie_key <> v_new_locatie_key);
|
||
|
||
EXCEPTION
|
||
WHEN OTHERS
|
||
THEN
|
||
fac.imp_writelog (p_import_key,
|
||
'I',
|
||
v_errormsg,
|
||
'huidige of nieuwe alg_locatie_key kan niet bepaald worden?! personeelsnummer: '
|
||
|| rec_prs_upd.prs_perslid_nr
|
||
);
|
||
v_update := FALSE;
|
||
END;
|
||
END IF;
|
||
END IF;
|
||
|
||
IF v_update AND (rec_prs_upd.prs_locatie_omschrijving IS NOT NULL)
|
||
AND ((v_aktie = 'INSERT') OR (v_aktie = 'UPDATE') AND (v_nr_werkplek<=1))
|
||
THEN
|
||
|
||
IF v_aktie = 'INSERT'
|
||
THEN
|
||
v_errormsg := 'Fout bij toewijzen werkplek bij zojuist toegevoegde persoon ';
|
||
ELSE -- v_aktie = 'UPDATE'
|
||
v_errormsg := 'Fout bij het wijzigen van de werkplek';
|
||
END IF;
|
||
|
||
BEGIN
|
||
SELECT prs_perslid_key
|
||
INTO v_perslid_key
|
||
FROM prs_perslid
|
||
WHERE prs_perslid_nr = rec_prs_upd.prs_perslid_nr AND prs_perslid_verwijder IS NULL;
|
||
EXCEPTION
|
||
WHEN TOO_MANY_ROWS
|
||
THEN
|
||
fac.imp_writelog (p_import_key,
|
||
'I',
|
||
v_errormsg,
|
||
'Het personeelsnummer is niet uniek: ' || rec_prs_upd.prs_perslid_nr
|
||
);
|
||
|
||
v_update := FALSE;
|
||
WHEN OTHERS
|
||
THEN
|
||
fac.imp_writelog (p_import_key,
|
||
'I',
|
||
v_errormsg,
|
||
'De persoon kan niet bepaald worden?! personeelsnummer: '
|
||
|| rec_prs_upd.prs_perslid_nr
|
||
);
|
||
|
||
v_update := FALSE;
|
||
END;
|
||
|
||
BEGIN
|
||
|
||
SELECT lo.alg_locatie_key
|
||
INTO v_locatie_key
|
||
FROM FAC_USRDATA ud, ALG_LOCATIE lo
|
||
WHERE ud.fac_usrtab_key = c_usrtab_key
|
||
AND ud.fac_usrdata_code = lo.alg_locatie_code
|
||
AND ud.fac_usrdata_omschr = rec_prs_upd.prs_locatie_omschrijving
|
||
AND lo.alg_locatie_verwijder IS NULL;
|
||
|
||
EXCEPTION
|
||
WHEN OTHERS
|
||
THEN
|
||
v_update := FALSE;
|
||
|
||
END;
|
||
|
||
IF NOT v_update
|
||
THEN
|
||
v_errorhint :=
|
||
'Onbekende Locatie-omschrijving '
|
||
|| rec_prs_upd.prs_locatie_omschrijving
|
||
|| '; personeelsnummer: '
|
||
|| rec_prs_upd.prs_perslid_nr;
|
||
fac.imp_writelog (p_import_key, 'I', v_errormsg, v_errorhint);
|
||
ELSE
|
||
BEGIN
|
||
SELECT MIN (alg_gebouw_code)
|
||
INTO v_gebouw_code
|
||
FROM alg_gebouw
|
||
WHERE alg_locatie_key = v_locatie_key AND alg_gebouw_verwijder IS NULL;
|
||
|
||
SELECT alg_gebouw_key
|
||
INTO v_gebouw_key
|
||
FROM alg_gebouw
|
||
WHERE alg_locatie_key = v_locatie_key
|
||
AND alg_gebouw_code = v_gebouw_code
|
||
AND alg_gebouw_verwijder IS NULL;
|
||
EXCEPTION
|
||
WHEN NO_DATA_FOUND
|
||
THEN
|
||
INSERT INTO alg_gebouw
|
||
(alg_locatie_key, alg_srtgebouw_key, alg_gebouw_code, alg_gebouw_naam
|
||
)
|
||
VALUES (v_locatie_key, c_srtgebouw_default, '0', 'Onbekend'
|
||
);
|
||
|
||
v_errormsg := 'Bepalen alg_gebouw_key adhv v_locatie_key=['||to_char(v_locatie_key)||'] en v_gebouw_code=['||v_gebouw_code||']';
|
||
|
||
SELECT alg_gebouw_key
|
||
INTO v_gebouw_key
|
||
FROM alg_gebouw
|
||
WHERE alg_locatie_key = v_locatie_key
|
||
AND alg_gebouw_code = v_gebouw_code
|
||
AND alg_gebouw_verwijder IS NULL;
|
||
END;
|
||
|
||
BEGIN
|
||
v_errormsg := 'Bepalen alg_verdieping_key';
|
||
|
||
SELECT alg_verdieping_key
|
||
INTO v_verdieping_key
|
||
FROM alg_verdieping
|
||
WHERE alg_gebouw_key = v_gebouw_key AND alg_verdieping_verwijder IS NULL
|
||
AND alg_verdieping_volgnr = 0; -- Begane grond!
|
||
EXCEPTION
|
||
WHEN NO_DATA_FOUND
|
||
THEN
|
||
v_errorhint :=
|
||
'Persoon met persoonnummer ' || rec_prs_upd.prs_perslid_nr || ': toevoegen verdieping Onbekend';
|
||
|
||
INSERT INTO alg_verdieping
|
||
(alg_gebouw_key, alg_verdieping_omschrijving, alg_verdieping_volgnr,
|
||
alg_verdieping_code
|
||
)
|
||
VALUES (v_gebouw_key, c_verdieping_omschr_default, 0,
|
||
'0'
|
||
);
|
||
|
||
-- Alsnog bepalen v_verdieping_key
|
||
SELECT alg_verdieping_key
|
||
INTO v_verdieping_key
|
||
FROM alg_verdieping
|
||
WHERE alg_gebouw_key = v_gebouw_key
|
||
AND alg_verdieping_verwijder IS NULL
|
||
AND alg_verdieping_volgnr = 0; -- Begane grond!
|
||
END;
|
||
|
||
BEGIN
|
||
v_errorhint :=
|
||
'Persoon met persoonnummer '
|
||
|| rec_prs_upd.prs_perslid_nr
|
||
|| ': bepalen ruimte (ruimte zou bekend moeten zijn)';
|
||
|
||
SELECT alg_ruimte_key
|
||
INTO v_ruimte_key
|
||
FROM alg_ruimte
|
||
WHERE alg_verdieping_key = v_verdieping_key
|
||
AND alg_ruimte_verwijder IS NULL
|
||
AND alg_ruimte_nr = c_ruimte_code;
|
||
-- Altijd ruimte met deze notatie!
|
||
EXCEPTION
|
||
WHEN NO_DATA_FOUND
|
||
THEN
|
||
INSERT INTO alg_ruimte
|
||
(alg_verdieping_key, alg_srtruimte_key, alg_ruimte_nr, alg_ruimte_omschrijving
|
||
)
|
||
VALUES (v_verdieping_key, c_srtruimte_default, c_ruimte_code, c_ruimte_omschr_default
|
||
);
|
||
|
||
-- Alsnog bepalen v_ruimte_key
|
||
SELECT alg_ruimte_key
|
||
INTO v_ruimte_key
|
||
FROM alg_ruimte
|
||
WHERE alg_verdieping_key = v_verdieping_key
|
||
AND alg_ruimte_verwijder IS NULL
|
||
AND alg_ruimte_nr = c_ruimte_code;
|
||
-- Altijd ruimte met deze notatie!
|
||
END;
|
||
|
||
BEGIN
|
||
v_errorhint :=
|
||
'Persoon met persoonnummer '
|
||
|| rec_prs_upd.prs_perslid_nr
|
||
|| ': bepalen werkplek (werkplek zou bekend moeten zijn)';
|
||
|
||
SELECT prs_werkplek_key
|
||
INTO v_werkplek_key
|
||
FROM prs_werkplek
|
||
WHERE prs_alg_ruimte_key = v_ruimte_key
|
||
AND prs_werkplek_volgnr = c_werkplek_volgnr_default;
|
||
-- Altijd werkplek met deze notatie!
|
||
EXCEPTION
|
||
WHEN NO_DATA_FOUND
|
||
THEN
|
||
INSERT INTO prs_werkplek
|
||
(prs_werkplek_volgnr, prs_werkplek_omschrijving, prs_alg_ruimte_key,
|
||
prs_werkplek_virtueel
|
||
)
|
||
VALUES (c_werkplek_volgnr_default, c_prs_werkplek_omschrijving, v_ruimte_key,
|
||
1
|
||
);
|
||
|
||
-- Alsnog bepalen v_werkplek_key
|
||
SELECT prs_werkplek_key
|
||
INTO v_werkplek_key
|
||
FROM prs_werkplek
|
||
WHERE prs_alg_ruimte_key = v_ruimte_key
|
||
AND prs_werkplek_volgnr = c_werkplek_volgnr_default;
|
||
-- Altijd werkplek met deze notatie!
|
||
END;
|
||
|
||
IF v_aktie = 'INSERT' OR (v_nr_werkplek = 0 AND v_aktie = 'UPDATE')
|
||
THEN
|
||
INSERT INTO prs_perslidwerkplek
|
||
(prs_perslid_key, prs_werkplek_key, prs_perslidwerkplek_bezetting
|
||
)
|
||
VALUES (v_perslid_key, v_werkplek_key, 0
|
||
);
|
||
ELSE -- v_aktie = 'UPDATE' AND v_nr_werkplek = 1
|
||
UPDATE prs_perslidwerkplek
|
||
SET prs_werkplek_key = v_werkplek_key
|
||
WHERE prs_perslid_key = v_perslid_key;
|
||
END IF;
|
||
END IF;
|
||
END IF;
|
||
|
||
v_buffercount := v_buffercount + 1;
|
||
|
||
IF v_buffercount >= c_commitbuffer
|
||
THEN
|
||
COMMIT;
|
||
v_buffercount := 0;
|
||
END IF;
|
||
EXCEPTION
|
||
WHEN OTHERS
|
||
THEN
|
||
oracle_err_num := SQLCODE;
|
||
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
|
||
v_errorhint := 'perslid_nr:' || rec_prs_upd.prs_perslid_nr || ' locatie:' || rec_prs_upd.prs_locatie_omschrijving || ' ' || v_errorhint || ' {' || v_errormsg || '}';
|
||
v_errormsg := '(ORACLE error ' || oracle_err_num || '/' || oracle_err_mes || ')';
|
||
fac.imp_writelog (p_import_key, 'E', v_errormsg, v_errorhint);
|
||
END;
|
||
END LOOP;
|
||
|
||
SELECT COUNT (*)
|
||
INTO v_perslid_newcount_fclt
|
||
FROM prs_perslid
|
||
WHERE prs_perslid_nr IS NOT NULL AND prs_perslid_verwijder IS NULL;
|
||
|
||
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),
|
||
''
|
||
);
|
||
|
||
SELECT COUNT (*)
|
||
INTO v_perslid_newcount_fclt -- misbruik
|
||
FROM prs_perslid
|
||
WHERE prs_perslid_nr IS NULL AND prs_perslid_verwijder IS NULL;
|
||
|
||
fac.imp_writelog (p_import_key,
|
||
'S',
|
||
'Aantal actieve personen zonder personeelsnr: ' || TO_CHAR (v_perslid_newcount_fclt),
|
||
''
|
||
);
|
||
|
||
-- plaats medewerkers die nog niet in de default groep zitten in de default groep.
|
||
INSERT INTO fac_gebruikersgroep
|
||
(fac_groep_key, prs_perslid_key)
|
||
(SELECT 1, prs_perslid_key
|
||
FROM prs_perslid p
|
||
WHERE prs_perslid_oslogin IS NOT NULL
|
||
AND prs_perslid_verwijder IS NULL
|
||
AND NOT EXISTS (
|
||
SELECT prs_perslid_key
|
||
FROM fac_gebruikersgroep gg
|
||
WHERE fac_groep_key = 1
|
||
AND p.prs_perslid_key = gg.prs_perslid_key));
|
||
|
||
EXCEPTION
|
||
WHEN OTHERS
|
||
THEN
|
||
oracle_err_num := SQLCODE;
|
||
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
|
||
v_errorhint := v_errorhint || ' {' || v_errormsg || '}';
|
||
v_errormsg := '(ORACLE error ' || oracle_err_num || '/' || oracle_err_mes || ')';
|
||
fac.imp_writelog (p_import_key, 'E', v_errormsg, v_errorhint);
|
||
END;
|
||
/
|
||
|
||
*/
|
||
|
||
CREATE OR REPLACE PROCEDURE logi_import_persoon (p_import_key IN NUMBER)
|
||
AS
|
||
oracle_err_num NUMBER;
|
||
oracle_err_mes VARCHAR2 (200);
|
||
v_errormsg VARCHAR2 (400);
|
||
v_errorhint VARCHAR2 (400);
|
||
v_aantal_in_FCLT NUMBER;
|
||
BEGIN
|
||
v_errorhint := 'Generieke update';
|
||
-- de sequence array staat beschreven in PRS_PAC.SRC bij de prs.import_perslid proc
|
||
prs.import_perslid (
|
||
p_import_key,
|
||
'0;0;0;0;0;0;8;2;4;3;'
|
||
|| '0;0;0;0;0;0;0;6;0;1;'
|
||
|| '1;5;0;0;0;0;9;0;0;0;'
|
||
|| '0;0;0;0;0;0;0;0;0;0;'
|
||
|| '0;0;0;0;0;0',
|
||
'employeeID;sn;givenName;infix;uid;mail;orglevel7;orgleve7id;a1physicalDeliveryOfficeName%');
|
||
|
||
UPDATE fac_imp_perslid
|
||
SET prs_srtperslid_omschrijving = 'Onbekend';
|
||
|
||
UPDATE fac_imp_perslid
|
||
SET prs_afdeling_naam = 'CGI';
|
||
|
||
|
||
COMMIT;
|
||
EXCEPTION
|
||
WHEN OTHERS
|
||
THEN
|
||
oracle_err_num := SQLCODE;
|
||
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
|
||
v_errormsg := 'Error ' || oracle_err_num || '/' || oracle_err_mes;
|
||
fac.imp_writelog (p_import_key,
|
||
'E',
|
||
v_errormsg,
|
||
v_errorhint);
|
||
END logi_import_persoon;
|
||
/
|
||
|
||
CREATE OR REPLACE PROCEDURE logi_werkplek_persoon (p_import_key IN NUMBER)
|
||
AS
|
||
-- Constanten (LET OP: deze waarden moeten letterlijk in de DB aabwezig zijn!)
|
||
c_srtgebouw_default INTEGER := 1;
|
||
c_srtruimte_default INTEGER := 1;
|
||
c_afdeling_key NUMBER := 6761; -- LOGI#31662
|
||
|
||
-- Constanten (overig)
|
||
c_prs_werkplek_omschrijving VARCHAR2 (16) := 'Onbekend';
|
||
c_srtperslid_omschr_default VARCHAR2 (16) := 'Onbekend';
|
||
c_werkplek_volgnr_default INTEGER := 1;
|
||
c_verdieping_omschr_default VARCHAR2 (16) := 'BG';
|
||
c_ruimte_omschr_default VARCHAR2 (16) := 'Onbekend';
|
||
c_ruimte_code VARCHAR2 (3) := '000';
|
||
c_usrtab_key INTEGER := 1; -- Tbv LOCATIE
|
||
|
||
--- dan de werkplekken aanvullen
|
||
CURSOR c_prs_upd IS
|
||
SELECT p.prs_perslid_key,
|
||
lp.prs_kenmerk1 prs_locatie_omschrijving,
|
||
lp.prs_perslid_naam,
|
||
lp.prs_perslid_tussenvoegsel,
|
||
lp.prs_perslid_voorletters,
|
||
lp.prs_perslid_voornaam,
|
||
lp.prs_perslid_telefoonnr,
|
||
lp.prs_perslid_mobiel,
|
||
lp.prs_perslid_oslogin,
|
||
lp.prs_perslid_email,
|
||
COALESCE (lp.prs_srtperslid_omschrijving,
|
||
c_srtperslid_omschr_default)
|
||
prs_srtperslid_omschrijving,
|
||
lp.prs_perslid_nr,
|
||
''
|
||
prs_perslid_titel,
|
||
p.prs_perslid_verwijder
|
||
FROM fac_imp_perslid lp, prs_perslid p
|
||
WHERE 1 = 1 AND lp.prs_perslid_email = p.prs_perslid_email
|
||
ORDER BY lp.prs_perslid_nr, p.prs_perslid_key DESC;
|
||
|
||
v_perslid_key NUMBER (10);
|
||
v_srtperslid_key NUMBER (10);
|
||
--v_afdeling_key NUMBER (10);
|
||
v_locatie_key NUMBER (10);
|
||
v_gebouw_key NUMBER (10);
|
||
v_verdieping_key NUMBER (10);
|
||
v_ruimte_key NUMBER (10);
|
||
v_werkplek_key NUMBER (10);
|
||
v_gebouw_code VARCHAR2 (10);
|
||
v_srtperslid_omschr VARCHAR (30);
|
||
rec_prs_upd c_prs_upd%ROWTYPE;
|
||
oracle_err_num NUMBER;
|
||
oracle_err_mes VARCHAR2 (200);
|
||
v_errormsg VARCHAR2 (1024);
|
||
v_errorhint VARCHAR2 (1024);
|
||
v_debug VARCHAR2 (1024);
|
||
v_count NUMBER (10);
|
||
v_update BOOLEAN;
|
||
v_aktie VARCHAR (10);
|
||
v_perslid_count_imp NUMBER;
|
||
v_perslid_count_fclt NUMBER;
|
||
v_perslid_newcount_fclt NUMBER;
|
||
currentversion fac_module.fac_module_version%TYPE;
|
||
l_validatie NUMBER;
|
||
v_srtimport VARCHAR2 (10);
|
||
l_nrkps NUMBER;
|
||
v_nr_werkplek NUMBER;
|
||
v_current_locatie_key NUMBER;
|
||
v_new_locatie_key NUMBER;
|
||
BEGIN
|
||
FOR rec_prs_upd IN c_prs_upd
|
||
LOOP
|
||
-- bepaal aantal werkplekken
|
||
BEGIN
|
||
|
||
v_update := TRUE;
|
||
|
||
SELECT COUNT (*)
|
||
INTO v_nr_werkplek
|
||
FROM prs_perslidwerkplek
|
||
WHERE prs_perslid_key = rec_prs_upd.prs_perslid_key;
|
||
EXCEPTION
|
||
WHEN OTHERS
|
||
THEN
|
||
fac.imp_writelog (
|
||
p_import_key,
|
||
'I',
|
||
v_errormsg,
|
||
'Het aantal werkplekken kan niet bepaald worden?! personeelsnummer: '
|
||
|| rec_prs_upd.prs_perslid_nr);
|
||
v_update := FALSE;
|
||
END;
|
||
|
||
IF v_nr_werkplek = 1
|
||
THEN
|
||
BEGIN
|
||
-- bepaal huidige alg_locatie_key
|
||
SELECT alg_locatie_key
|
||
INTO v_current_locatie_key
|
||
FROM prs_v_werkplekperslid_gegevens
|
||
WHERE prs_perslid_key = rec_prs_upd.prs_perslid_key;
|
||
|
||
-- bepaal nieuwe alg_locatie_key
|
||
SELECT lo.alg_locatie_key
|
||
INTO v_new_locatie_key
|
||
FROM fac_usrdata ud, alg_locatie lo
|
||
WHERE ud.fac_usrtab_key = c_usrtab_key
|
||
AND ud.fac_usrdata_code = lo.alg_locatie_code
|
||
AND ud.fac_usrdata_omschr =
|
||
rec_prs_upd.prs_locatie_omschrijving
|
||
AND lo.alg_locatie_verwijder IS NULL;
|
||
|
||
-- indien gelijk dan werkplek niet updaten.
|
||
v_update := (v_current_locatie_key <> v_new_locatie_key);
|
||
EXCEPTION
|
||
WHEN OTHERS
|
||
THEN
|
||
fac.imp_writelog (
|
||
p_import_key,
|
||
'I',
|
||
v_errormsg,
|
||
'huidige of nieuwe alg_locatie_key kan niet bepaald worden?! personeelsnummer: '
|
||
|| rec_prs_upd.prs_perslid_nr);
|
||
v_update := FALSE;
|
||
END;
|
||
END IF;
|
||
|
||
-- Er is geen werkplek bekend in Facilitor of de werkplek uit de import wijkt af van de werkplek in Facilitor dan gaan we bijwerken
|
||
-- Als er meer dan 1 werkplek is, dan laten we het zoals het is
|
||
IF v_update AND v_nr_werkplek <= 1
|
||
THEN
|
||
v_errormsg :=
|
||
'Fout bij toewijzen werkplek bij zojuist toegevoegde persoon ';
|
||
|
||
|
||
BEGIN
|
||
SELECT lo.alg_locatie_key
|
||
INTO v_locatie_key
|
||
FROM FAC_USRDATA ud, ALG_LOCATIE lo
|
||
WHERE ud.fac_usrtab_key = c_usrtab_key
|
||
AND ud.fac_usrdata_code = lo.alg_locatie_code
|
||
AND ud.fac_usrdata_omschr =
|
||
rec_prs_upd.prs_locatie_omschrijving
|
||
AND lo.alg_locatie_verwijder IS NULL;
|
||
EXCEPTION
|
||
WHEN OTHERS
|
||
THEN
|
||
v_update := FALSE;
|
||
END;
|
||
|
||
IF NOT v_update
|
||
THEN
|
||
v_errorhint :=
|
||
'Onbekende Locatie-omschrijving '
|
||
|| rec_prs_upd.prs_locatie_omschrijving
|
||
|| '; personeelsnummer: '
|
||
|| rec_prs_upd.prs_perslid_nr;
|
||
fac.imp_writelog (p_import_key,
|
||
'I',
|
||
v_errormsg,
|
||
v_errorhint);
|
||
ELSE
|
||
BEGIN
|
||
SELECT MIN (alg_gebouw_code)
|
||
INTO v_gebouw_code
|
||
FROM alg_gebouw
|
||
WHERE alg_locatie_key = v_locatie_key
|
||
AND alg_gebouw_verwijder IS NULL;
|
||
|
||
SELECT alg_gebouw_key
|
||
INTO v_gebouw_key
|
||
FROM alg_gebouw
|
||
WHERE alg_locatie_key = v_locatie_key
|
||
AND alg_gebouw_code = v_gebouw_code
|
||
AND alg_gebouw_verwijder IS NULL;
|
||
EXCEPTION
|
||
WHEN NO_DATA_FOUND
|
||
THEN
|
||
INSERT INTO alg_gebouw (alg_locatie_key,
|
||
alg_srtgebouw_key,
|
||
alg_gebouw_code,
|
||
alg_gebouw_naam)
|
||
VALUES (v_locatie_key,
|
||
c_srtgebouw_default,
|
||
'0',
|
||
'Onbekend');
|
||
|
||
v_errormsg :=
|
||
'Bepalen alg_gebouw_key adhv v_locatie_key=['
|
||
|| TO_CHAR (v_locatie_key)
|
||
|| '] en v_gebouw_code=['
|
||
|| v_gebouw_code
|
||
|| ']';
|
||
|
||
SELECT alg_gebouw_key
|
||
INTO v_gebouw_key
|
||
FROM alg_gebouw
|
||
WHERE alg_locatie_key = v_locatie_key
|
||
AND alg_gebouw_code = v_gebouw_code
|
||
AND alg_gebouw_verwijder IS NULL;
|
||
END;
|
||
|
||
BEGIN
|
||
v_errormsg := 'Bepalen alg_verdieping_key';
|
||
|
||
SELECT alg_verdieping_key
|
||
INTO v_verdieping_key
|
||
FROM alg_verdieping
|
||
WHERE alg_gebouw_key = v_gebouw_key
|
||
AND alg_verdieping_verwijder IS NULL
|
||
AND alg_verdieping_code = '0'; -- Begane grond! Niet via volgnummer!
|
||
|
||
EXCEPTION
|
||
WHEN NO_DATA_FOUND
|
||
THEN
|
||
v_errorhint :=
|
||
'Persoon met persoonnummer '
|
||
|| rec_prs_upd.prs_perslid_nr
|
||
|| ': toevoegen verdieping Onbekend';
|
||
|
||
INSERT INTO alg_verdieping (
|
||
alg_gebouw_key,
|
||
alg_verdieping_omschrijving,
|
||
alg_verdieping_volgnr,
|
||
alg_verdieping_code)
|
||
VALUES (v_gebouw_key,
|
||
c_verdieping_omschr_default,
|
||
0,
|
||
'0');
|
||
|
||
-- Alsnog bepalen v_verdieping_key
|
||
SELECT alg_verdieping_key
|
||
INTO v_verdieping_key
|
||
FROM alg_verdieping
|
||
WHERE alg_gebouw_key = v_gebouw_key
|
||
AND alg_verdieping_verwijder IS NULL
|
||
AND alg_verdieping_code = '0'; -- Begane grond!
|
||
END;
|
||
|
||
BEGIN
|
||
v_errorhint :=
|
||
'Persoon met persoonnummer '
|
||
|| rec_prs_upd.prs_perslid_nr
|
||
|| ': bepalen ruimte (ruimte zou bekend moeten zijn)';
|
||
|
||
SELECT alg_ruimte_key
|
||
INTO v_ruimte_key
|
||
FROM alg_ruimte
|
||
WHERE alg_verdieping_key = v_verdieping_key
|
||
AND alg_ruimte_verwijder IS NULL
|
||
AND alg_ruimte_nr = c_ruimte_code;
|
||
-- Altijd ruimte met deze notatie!
|
||
EXCEPTION
|
||
WHEN NO_DATA_FOUND
|
||
THEN
|
||
INSERT INTO alg_ruimte (alg_verdieping_key,
|
||
alg_srtruimte_key,
|
||
alg_ruimte_nr,
|
||
alg_ruimte_omschrijving)
|
||
VALUES (v_verdieping_key,
|
||
c_srtruimte_default,
|
||
c_ruimte_code,
|
||
c_ruimte_omschr_default);
|
||
|
||
-- Alsnog bepalen v_ruimte_key
|
||
SELECT alg_ruimte_key
|
||
INTO v_ruimte_key
|
||
FROM alg_ruimte
|
||
WHERE alg_verdieping_key = v_verdieping_key
|
||
AND alg_ruimte_verwijder IS NULL
|
||
AND alg_ruimte_nr = c_ruimte_code;
|
||
-- Altijd ruimte met deze notatie!
|
||
END;
|
||
|
||
BEGIN
|
||
v_errorhint :=
|
||
'Persoon met persoonnummer '
|
||
|| rec_prs_upd.prs_perslid_nr
|
||
|| ': bepalen werkplek (werkplek zou bekend moeten zijn)';
|
||
|
||
SELECT prs_werkplek_key
|
||
INTO v_werkplek_key
|
||
FROM prs_werkplek
|
||
WHERE prs_alg_ruimte_key = v_ruimte_key
|
||
AND prs_werkplek_volgnr =
|
||
c_werkplek_volgnr_default;
|
||
-- Altijd werkplek met deze notatie!
|
||
EXCEPTION
|
||
WHEN NO_DATA_FOUND
|
||
THEN
|
||
INSERT INTO prs_werkplek (prs_werkplek_volgnr,
|
||
prs_werkplek_omschrijving,
|
||
prs_alg_ruimte_key,
|
||
prs_werkplek_virtueel)
|
||
VALUES (c_werkplek_volgnr_default,
|
||
c_prs_werkplek_omschrijving,
|
||
v_ruimte_key,
|
||
1);
|
||
|
||
-- Alsnog bepalen v_werkplek_key
|
||
SELECT prs_werkplek_key
|
||
INTO v_werkplek_key
|
||
FROM prs_werkplek
|
||
WHERE prs_alg_ruimte_key = v_ruimte_key
|
||
AND prs_werkplek_volgnr =
|
||
c_werkplek_volgnr_default;
|
||
-- Altijd werkplek met deze notatie!
|
||
END;
|
||
|
||
IF v_nr_werkplek = 0
|
||
THEN
|
||
INSERT INTO prs_perslidwerkplek (
|
||
prs_perslid_key,
|
||
prs_werkplek_key,
|
||
prs_perslidwerkplek_bezetting)
|
||
VALUES (rec_prs_upd.prs_perslid_key, v_werkplek_key, 0);
|
||
ELSE -- v_aktie = 'UPDATE' AND v_nr_werkplek = 1
|
||
UPDATE prs_perslidwerkplek
|
||
SET prs_werkplek_key = v_werkplek_key
|
||
WHERE prs_perslid_key = rec_prs_upd.prs_perslid_key;
|
||
END IF;
|
||
END IF;
|
||
END IF;
|
||
END LOOP;
|
||
END;
|
||
/
|
||
|
||
CREATE OR REPLACE PROCEDURE logi_update_persoon (p_import_key IN NUMBER)
|
||
AS
|
||
-- Verwijderen op basis van oslogin #56094
|
||
CURSOR c_prs_del IS
|
||
SELECT p.prs_perslid_key, p.prs_perslid_nr, p.prs_perslid_oslogin
|
||
FROM PRS_PERSLID p,
|
||
(SELECT prs_perslid_oslogin
|
||
FROM fac_imp_perslid
|
||
WHERE prs_perslid_oslogin IS NOT NULL) lp
|
||
WHERE 1 = 1
|
||
AND p.prs_perslid_nr IS NOT NULL
|
||
AND p.prs_perslid_oslogin IS NOT NULL
|
||
AND p.prs_perslid_verwijder IS NULL
|
||
AND p.prs_perslid_oslogin NOT LIKE '%\_%' ESCAPE '\'
|
||
AND UPPER (p.prs_perslid_oslogin) =
|
||
UPPER (lp.prs_perslid_oslogin(+))
|
||
AND lp.prs_perslid_oslogin IS NULL
|
||
ORDER BY 2, 1;
|
||
|
||
BEGIN
|
||
|
||
FOR rec IN c_prs_del
|
||
LOOP
|
||
BEGIN
|
||
prs.delete_perslid (p_import_key, rec.prs_perslid_key);
|
||
END;
|
||
END LOOP;
|
||
|
||
|
||
-- 'Email' betekent dat op basis van Email wordt gematched.
|
||
prs.update_perslid (p_import_key, 'EMAIL', NULL);
|
||
|
||
-- Dan worden de werkplekken beoordeeld, evt aangemaakt en bijgewerkt
|
||
logi_werkplek_persoon (p_import_key);
|
||
|
||
COMMIT;
|
||
END;
|
||
/
|
||
|
||
|
||
CREATE OR REPLACE PROCEDURE logi_import_organisatie (p_import_key IN NUMBER)
|
||
AS
|
||
|
||
c_max_import_str_len NUMBER(10) := 1000;
|
||
|
||
CURSOR c_cursor IS
|
||
SELECT *
|
||
FROM fac_imp_file
|
||
WHERE fac_import_key = p_import_key
|
||
ORDER BY fac_imp_file_index;
|
||
next_record c_cursor%ROWTYPE;
|
||
|
||
v_newline VARCHAR2 (1000); -- Import line
|
||
v_field VARCHAR2 (100); -- Import field
|
||
v_fielddelimitor VARCHAR2 (1); -- Field seperator
|
||
v_errormsg VARCHAR (1000);
|
||
v_errorhint VARCHAR (200);
|
||
oracle_err_num NUMBER;
|
||
oracle_err_mes VARCHAR2 (200);
|
||
|
||
-- De importvelden
|
||
v_afdeling_naam VARCHAR2 (1000);
|
||
v_afdeling_omschrijving VARCHAR2 (1000);
|
||
v_afdeling_naam2 VARCHAR2 (1000);
|
||
v_afdeling_omschrijving2 VARCHAR2 (1000);
|
||
v_afdeling_naam3 VARCHAR2 (1000);
|
||
v_afdeling_omschrijving3 VARCHAR2 (1000);
|
||
|
||
header_found BOOLEAN;
|
||
v_controle VARCHAR2(30);
|
||
|
||
BEGIN
|
||
-- Init
|
||
header_found := FALSE;
|
||
v_fielddelimitor := ';';
|
||
v_errormsg := '';
|
||
|
||
v_controle := 'OK'; -- Hier kan een controle ingebouwd worden ...
|
||
|
||
IF (v_controle IS NULL) THEN
|
||
|
||
v_errormsg := 'Ongeldig importbestand';
|
||
fac.imp_writelog (p_import_key, 'E', v_errormsg, '');
|
||
|
||
ELSE
|
||
|
||
-- Clear my previous imported rows
|
||
DELETE FROM logi_imp_organisatie;
|
||
commit;
|
||
|
||
FOR next_record IN c_cursor LOOP
|
||
BEGIN
|
||
|
||
v_newline := SUBSTR(next_record.FAC_IMP_FILE_LINE,1,c_max_import_str_len);
|
||
|
||
fac.imp_getfield (v_newline, v_fielddelimitor, v_afdeling_naam);
|
||
fac.imp_getfield (v_newline, v_fielddelimitor, v_afdeling_omschrijving);
|
||
fac.imp_getfield (v_newline, v_fielddelimitor, v_afdeling_naam2);
|
||
fac.imp_getfield (v_newline, v_fielddelimitor, v_afdeling_omschrijving2);
|
||
fac.imp_getfield (v_newline, v_fielddelimitor, v_afdeling_naam3);
|
||
fac.imp_getfield (v_newline, v_fielddelimitor, v_afdeling_omschrijving3);
|
||
|
||
-- Skip until the header is found
|
||
header_found := TRUE; -- Geen Header check
|
||
IF ( 1=2
|
||
)
|
||
THEN
|
||
|
||
header_found := TRUE;
|
||
ELSIF (header_found)
|
||
THEN
|
||
|
||
BEGIN
|
||
|
||
v_errormsg := 'Kan organisatiegegevens niet inlezen ';
|
||
|
||
v_afdeling_naam := SUBSTR(TRIM(coalesce(v_afdeling_naam,'')),1,10);
|
||
v_afdeling_omschrijving := SUBSTR(TRIM(coalesce(v_afdeling_omschrijving,'')),1,60);
|
||
v_afdeling_naam2 := SUBSTR(TRIM(coalesce(v_afdeling_naam2,'')),1,10);
|
||
v_afdeling_omschrijving2 := SUBSTR(TRIM(coalesce(v_afdeling_omschrijving2,'')),1,60);
|
||
v_afdeling_naam3 := SUBSTR(TRIM(coalesce(v_afdeling_naam3,'')),1,10);
|
||
v_afdeling_omschrijving3 := SUBSTR(TRIM(coalesce(v_afdeling_omschrijving3,'')),1,60);
|
||
|
||
INSERT INTO logi_imp_organisatie
|
||
(prs_afdeling_naam
|
||
,prs_afdeling_omschrijving
|
||
,prs_afdeling_naam2
|
||
,prs_afdeling_omschrijving2
|
||
,prs_afdeling_naam3
|
||
,prs_afdeling_omschrijving3
|
||
,logi_imp_organisatie_aanmaak
|
||
)
|
||
VALUES(v_afdeling_naam
|
||
,v_afdeling_omschrijving
|
||
,v_afdeling_naam2
|
||
,v_afdeling_omschrijving2
|
||
,v_afdeling_naam3
|
||
,v_afdeling_omschrijving3
|
||
,SYSDATE
|
||
);
|
||
|
||
commit;
|
||
|
||
EXCEPTION
|
||
WHEN OTHERS
|
||
THEN
|
||
|
||
oracle_err_num := SQLCODE;
|
||
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
|
||
v_errormsg := v_errormsg || 'OTHERS (error ' || oracle_err_num || '/' || oracle_err_mes || ')';
|
||
fac.imp_writelog (p_import_key, 'E', v_errormsg, '');
|
||
commit; -- logging
|
||
|
||
END;
|
||
|
||
END IF;
|
||
|
||
COMMIT;
|
||
END;
|
||
END LOOP;
|
||
|
||
END IF;
|
||
EXCEPTION
|
||
WHEN OTHERS
|
||
THEN
|
||
oracle_err_num := SQLCODE;
|
||
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
|
||
v_errormsg :=
|
||
'OTHERS (error ' || oracle_err_num || '/' || oracle_err_mes || ')';
|
||
fac.imp_writelog (p_import_key, 'E', v_errormsg, '');
|
||
|
||
END;
|
||
/
|
||
|
||
|
||
CREATE OR REPLACE PROCEDURE logi_update_organisatie (p_import_key IN NUMBER)
|
||
AS
|
||
|
||
c_bedrijf_key NUMBER(10) := 2;
|
||
c_fielddelimitor VARCHAR2(1) := ';';
|
||
|
||
CURSOR c_afd1 IS
|
||
SELECT prs_afdeling_naam, prs_afdeling_omschrijving, '['||prs_afdeling_naam||'|'||prs_afdeling_omschrijving||']' imp_row
|
||
FROM logi_imp_organisatie
|
||
WHERE 1=1
|
||
GROUP BY prs_afdeling_naam, prs_afdeling_omschrijving;
|
||
|
||
next_afd1 c_afd1%ROWTYPE;
|
||
|
||
CURSOR c_afd1_del IS
|
||
SELECT a.prs_afdeling_key, a.prs_afdeling_naam, a.niveau
|
||
FROM prs_v_afdeling_fullnames a
|
||
WHERE a.niveau = 1
|
||
AND NOT EXISTS (
|
||
SELECT 'dummy'
|
||
FROM LOGI_IMP_ORGANISATIE o
|
||
WHERE o.prs_afdeling_naam = a.prs_afdeling_naam);
|
||
|
||
next_afd1_del c_afd1_del%ROWTYPE;
|
||
|
||
CURSOR c_afd2 IS
|
||
SELECT prs_afdeling_naam, prs_afdeling_naam2, prs_afdeling_omschrijving2,
|
||
'['||prs_afdeling_naam||'|'||prs_afdeling_naam2||'|'||prs_afdeling_omschrijving2||']' imp_row
|
||
FROM logi_imp_organisatie
|
||
WHERE 1=1
|
||
GROUP BY prs_afdeling_naam, prs_afdeling_naam2, prs_afdeling_omschrijving2;
|
||
|
||
CURSOR c_afd2_del IS
|
||
SELECT a.prs_afdeling_key, a.prs_afdeling_naam, a.niveau
|
||
FROM prs_v_afdeling_fullnames a
|
||
WHERE a.niveau = 2
|
||
AND NOT EXISTS (
|
||
SELECT 'dummy'
|
||
FROM LOGI_IMP_ORGANISATIE o
|
||
WHERE o.prs_afdeling_naam2 = a.prs_afdeling_naam3);
|
||
|
||
next_afd2_del c_afd2_del%ROWTYPE;
|
||
|
||
CURSOR c_afd3 IS
|
||
SELECT prs_afdeling_naam, prs_afdeling_naam2, prs_afdeling_naam3, prs_afdeling_omschrijving3,
|
||
'['||prs_afdeling_naam||'|'||prs_afdeling_naam2||'|'||prs_afdeling_naam3||'|'||prs_afdeling_omschrijving3||']' imp_row
|
||
FROM logi_imp_organisatie
|
||
WHERE 1=1
|
||
GROUP BY prs_afdeling_naam, prs_afdeling_naam2, prs_afdeling_naam3, prs_afdeling_omschrijving3;
|
||
|
||
CURSOR c_afd3_del IS
|
||
SELECT a.prs_afdeling_key, a.prs_afdeling_naam, a.niveau
|
||
FROM prs_v_afdeling_fullnames a
|
||
WHERE a.niveau = 3
|
||
AND NOT EXISTS (
|
||
SELECT 'dummy'
|
||
FROM LOGI_IMP_ORGANISATIE o
|
||
WHERE o.prs_afdeling_naam3 = a.prs_afdeling_naam3);
|
||
|
||
next_afd3_del c_afd3_del%ROWTYPE;
|
||
next_afd2_del c_afd2_del%ROWTYPE;
|
||
next_afd1_del c_afd1_del%ROWTYPE;
|
||
|
||
next_afd1 c_afd1%ROWTYPE;
|
||
next_afd2 c_afd2%ROWTYPE;
|
||
next_afd3 c_afd3%ROWTYPE;
|
||
|
||
v_errormsg VARCHAR (1000);
|
||
v_errorhint VARCHAR (200);
|
||
v_imp VARCHAR(1000);
|
||
oracle_err_num NUMBER;
|
||
oracle_err_mes VARCHAR2 (200);
|
||
|
||
-- Overige variabelen
|
||
v_afdeling_key NUMBER(10);
|
||
v_afdeling_parentkey NUMBER(10);
|
||
v_afdeling_parentkey2 NUMBER(10);
|
||
v_imp_row VARCHAR2(1000);
|
||
|
||
FUNCTION afdeling_delete (p_afdeling_key IN NUMBER, p_afdeling_naam IN VARCHAR2, p_niveau IN NUMBER) RETURN BOOLEAN IS
|
||
c_inactief VARCHAR2(16) := 'INACTIEF:';
|
||
BEGIN
|
||
|
||
|
||
UPDATE prs_afdeling
|
||
SET prs_afdeling_verwijder = SYSDATE
|
||
WHERE prs_afdeling_key = p_afdeling_key
|
||
AND prs_afdeling_verwijder IS NULL;
|
||
|
||
|
||
RETURN TRUE;
|
||
EXCEPTION
|
||
WHEN OTHERS
|
||
THEN
|
||
|
||
fac.imp_writelog (p_import_key,
|
||
'E',
|
||
'Afdeling kan niet inactief worden gemaakt (heeft nog personen)',
|
||
'Niveau=['||to_char(p_niveau)||'] Afdelingnaam=['||p_afdeling_naam||']'||' Afdelingskey=[' || p_afdeling_key || ']'
|
||
);
|
||
|
||
UPDATE prs_afdeling
|
||
SET prs_afdeling_omschrijving = SUBSTR (c_inactief || prs_afdeling_omschrijving, 1, 60)
|
||
WHERE prs_afdeling_key = p_afdeling_key
|
||
AND prs_afdeling_omschrijving NOT LIKE c_inactief ||'%'
|
||
AND prs_afdeling_verwijder IS NULL;
|
||
|
||
RETURN FALSE;
|
||
END;
|
||
|
||
BEGIN
|
||
|
||
-- Uiteraard verwijderen vaan hoog naar laag afdelingsniveau ivm referenties
|
||
FOR next_afd3_del IN c_afd3_del LOOP
|
||
BEGIN
|
||
IF afdeling_delete(next_afd3_del.prs_afdeling_key, next_afd3_del.prs_afdeling_naam, next_afd3_del.niveau) THEN
|
||
commit; -- update
|
||
ELSE
|
||
commit; -- logging
|
||
END IF;
|
||
END;
|
||
END LOOP;
|
||
--
|
||
FOR next_afd2_del IN c_afd2_del LOOP
|
||
BEGIN
|
||
IF afdeling_delete(next_afd2_del.prs_afdeling_key, next_afd2_del.prs_afdeling_naam, next_afd2_del.niveau) THEN
|
||
commit; -- update
|
||
ELSE
|
||
commit; -- logging
|
||
END IF;
|
||
END;
|
||
END LOOP;
|
||
--
|
||
FOR next_afd1_del IN c_afd1_del LOOP
|
||
BEGIN
|
||
IF afdeling_delete(next_afd1_del.prs_afdeling_key, next_afd1_del.prs_afdeling_naam, next_afd1_del.niveau) THEN
|
||
commit; -- update
|
||
ELSE
|
||
commit; -- logging
|
||
END IF;
|
||
END;
|
||
END LOOP;
|
||
|
||
COMMIT;
|
||
|
||
-- Hoogste afdelingsniveau (direct onder bedrijf)
|
||
FOR next_afd1 IN c_afd1 LOOP
|
||
BEGIN
|
||
v_errorhint := 'Volgende afdeling op niveau1';
|
||
|
||
v_imp_row := next_afd1.imp_row;
|
||
|
||
SELECT COALESCE(MAX(prs_afdeling_key),-1)
|
||
INTO v_afdeling_key
|
||
FROM prs_afdeling
|
||
WHERE UPPER(prs_afdeling_upper) = UPPER(next_afd1.prs_afdeling_naam)
|
||
AND prs_afdeling_verwijder is null
|
||
AND prs_bedrijf_key = c_bedrijf_key;
|
||
|
||
IF (v_afdeling_key = -1) THEN
|
||
|
||
v_errorhint := 'Fout bij toevoegen afdeling op niveau 1';
|
||
insert into PRS_AFDELING
|
||
(prs_afdeling_naam
|
||
,prs_afdeling_omschrijving
|
||
,prs_bedrijf_key
|
||
,prs_afdeling_parentkey
|
||
,prs_kostenplaats_key
|
||
)
|
||
values
|
||
(next_afd1.prs_afdeling_naam
|
||
,next_afd1.prs_afdeling_omschrijving
|
||
,c_bedrijf_key
|
||
,TO_NUMBER(NULL)
|
||
,TO_NUMBER(NULL)
|
||
);
|
||
|
||
ELSE
|
||
|
||
v_errorhint := 'Fout bij wijzigen afdeling op niveau 1';
|
||
update PRS_AFDELING
|
||
set prs_afdeling_omschrijving = next_afd1.prs_afdeling_omschrijving
|
||
where prs_afdeling_key = v_afdeling_key;
|
||
|
||
END IF;
|
||
|
||
commit;
|
||
|
||
EXCEPTION
|
||
WHEN OTHERS
|
||
THEN
|
||
|
||
oracle_err_num := SQLCODE;
|
||
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
|
||
v_errormsg := v_errormsg || 'OTHERS (error ' || oracle_err_num || '/' || oracle_err_mes || ')';
|
||
fac.imp_writelog (p_import_key, 'E', v_errormsg, v_errorhint||v_imp_row);
|
||
commit; -- logging
|
||
|
||
|
||
END;
|
||
END LOOP;
|
||
|
||
|
||
-- Tweede afdelingsniveau
|
||
FOR next_afd2 IN c_afd2 LOOP
|
||
BEGIN
|
||
v_errorhint := 'Volgende afdeling op niveau2';
|
||
|
||
v_imp_row := next_afd2.imp_row;
|
||
|
||
SELECT prs_afdeling_key
|
||
INTO v_afdeling_parentkey
|
||
FROM prs_afdeling
|
||
WHERE UPPER(prs_afdeling_upper) = UPPER(next_afd2.prs_afdeling_naam)
|
||
AND prs_afdeling_verwijder is null
|
||
AND prs_bedrijf_key = c_bedrijf_key;
|
||
|
||
SELECT COALESCE(MAX(prs_afdeling_key),-1)
|
||
INTO v_afdeling_key
|
||
FROM prs_afdeling
|
||
WHERE UPPER(prs_afdeling_upper) = UPPER(next_afd2.prs_afdeling_naam2)
|
||
AND prs_afdeling_verwijder is null
|
||
AND prs_afdeling_parentkey = v_afdeling_parentkey;
|
||
|
||
IF (v_afdeling_key = -1) THEN
|
||
|
||
v_errorhint := 'Fout bij toevoegen afdeling op niveau 2';
|
||
insert into PRS_AFDELING
|
||
(prs_afdeling_naam
|
||
,prs_afdeling_omschrijving
|
||
,prs_bedrijf_key
|
||
,prs_afdeling_parentkey
|
||
,prs_kostenplaats_key
|
||
)
|
||
values
|
||
(next_afd2.prs_afdeling_naam2
|
||
,next_afd2.prs_afdeling_omschrijving2
|
||
,TO_NUMBER(NULL)
|
||
,v_afdeling_parentkey
|
||
,TO_NUMBER(NULL)
|
||
);
|
||
|
||
ELSE
|
||
|
||
v_errorhint := 'Fout bij wijzigen afdeling op niveau 2';
|
||
update PRS_AFDELING
|
||
set prs_afdeling_omschrijving = next_afd2.prs_afdeling_omschrijving2
|
||
where prs_afdeling_key = v_afdeling_key;
|
||
|
||
END IF;
|
||
|
||
commit;
|
||
|
||
EXCEPTION
|
||
WHEN OTHERS
|
||
THEN
|
||
|
||
oracle_err_num := SQLCODE;
|
||
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
|
||
v_errormsg := v_errormsg || 'OTHERS (error ' || oracle_err_num || '/' || oracle_err_mes || ')';
|
||
fac.imp_writelog (p_import_key, 'E', v_errormsg, v_errorhint||v_imp_row);
|
||
commit; -- logging
|
||
|
||
|
||
END;
|
||
END LOOP;
|
||
|
||
-- Derde afdelingsniveau
|
||
FOR next_afd3 IN c_afd3 LOOP
|
||
BEGIN
|
||
v_errorhint := 'Volgende afdeling op niveau3';
|
||
|
||
v_imp_row := next_afd3.imp_row;
|
||
|
||
v_errorhint := 'Fout bij bepalen afdeling op niveau1';
|
||
SELECT prs_afdeling_key
|
||
INTO v_afdeling_parentkey
|
||
FROM prs_afdeling
|
||
WHERE UPPER(prs_afdeling_upper) = UPPER(next_afd3.prs_afdeling_naam)
|
||
AND prs_afdeling_verwijder is null
|
||
AND prs_bedrijf_key = c_bedrijf_key;
|
||
|
||
v_errorhint := 'Fout bij bepalen afdeling op niveau2';
|
||
SELECT prs_afdeling_key
|
||
INTO v_afdeling_parentkey2
|
||
FROM prs_afdeling
|
||
WHERE UPPER(prs_afdeling_upper) = UPPER(next_afd3.prs_afdeling_naam2)
|
||
AND prs_afdeling_verwijder is null
|
||
AND prs_afdeling_parentkey = v_afdeling_parentkey;
|
||
|
||
v_errorhint := 'Fout bij bepalen afdeling op niveau3';
|
||
SELECT COALESCE(MAX(prs_afdeling_key),-1)
|
||
INTO v_afdeling_key
|
||
FROM prs_afdeling
|
||
WHERE UPPER(prs_afdeling_upper) = UPPER(next_afd3.prs_afdeling_naam3)
|
||
AND prs_afdeling_verwijder is null
|
||
AND prs_afdeling_parentkey = v_afdeling_parentkey2;
|
||
|
||
IF (v_afdeling_key = -1) THEN
|
||
|
||
v_errorhint := 'Fout bij toevoegen afdeling op niveau 3';
|
||
insert into PRS_AFDELING
|
||
(prs_afdeling_naam
|
||
,prs_afdeling_omschrijving
|
||
,prs_bedrijf_key
|
||
,prs_afdeling_parentkey
|
||
,prs_kostenplaats_key
|
||
)
|
||
values
|
||
(next_afd3.prs_afdeling_naam3
|
||
,next_afd3.prs_afdeling_omschrijving3
|
||
,TO_NUMBER(NULL)
|
||
,v_afdeling_parentkey2
|
||
,1
|
||
);
|
||
|
||
ELSE
|
||
|
||
v_errorhint := 'Fout bij wijzigen afdeling op niveau 2';
|
||
update PRS_AFDELING
|
||
set prs_afdeling_omschrijving = next_afd3.prs_afdeling_omschrijving3
|
||
where prs_afdeling_key = v_afdeling_key;
|
||
|
||
END IF;
|
||
|
||
commit;
|
||
|
||
EXCEPTION
|
||
WHEN OTHERS
|
||
THEN
|
||
|
||
oracle_err_num := SQLCODE;
|
||
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
|
||
v_errormsg := v_errormsg || 'OTHERS (error ' || oracle_err_num || '/' || oracle_err_mes || ')';
|
||
fac.imp_writelog (p_import_key, 'E', v_errormsg, v_errorhint||v_imp_row);
|
||
commit; -- logging
|
||
|
||
|
||
END;
|
||
END LOOP;
|
||
|
||
END;
|
||
/
|
||
|
||
-- Dummy export AUTO_STUFF!
|
||
CREATE OR REPLACE VIEW logi_v_export_auto_stuff (RESULT, result_order)
|
||
AS
|
||
SELECT '', 0
|
||
FROM DUAL
|
||
WHERE 1 = 0
|
||
/
|
||
|
||
/* Formatted on 28-3-2012 17:14:45 (QP5 v5.115.810.9015) */
|
||
CREATE OR REPLACE PROCEDURE logi_select_auto_stuff (p_applname IN VARCHAR2,
|
||
p_applrun IN VARCHAR2)
|
||
AS
|
||
CURSOR cresbots -- Botsing tussen WP-RES door dezelfde aanvrager -> delete!
|
||
IS
|
||
SELECT '[' || rrr.res_reservering_key || '/' || rrr.res_rsv_ruimte_volgnr || '] '
|
||
aanduiding,
|
||
rrr.res_rsv_ruimte_key
|
||
FROM res_v_aanwezigrsv_ruimte rrr, res_ruimte_opstelling rro, res_ruimte rr
|
||
WHERE rrr.res_ruimte_opstel_key = rro.res_ruimte_opstel_key
|
||
AND rro.res_ruimte_key = rr.res_ruimte_key
|
||
AND rr.res_discipline_key IN (621, 622, 623, 624, 625, 641)
|
||
AND EXISTS
|
||
(SELECT 1
|
||
FROM res_v_aanwezigrsv_ruimte rrr2, res_ruimte_opstelling rro2, res_ruimte rr2
|
||
WHERE rrr2.res_ruimte_opstel_key = rro2.res_ruimte_opstel_key
|
||
AND rro2.res_ruimte_key = rr2.res_ruimte_key
|
||
AND rr2.res_discipline_key IN (621, 622, 623, 624, 625, 641)
|
||
AND rrr2.res_rsv_ruimte_key > rrr.res_rsv_ruimte_key
|
||
AND rrr2.res_rsv_ruimte_contact_key = rrr.res_rsv_ruimte_contact_key
|
||
AND rrr2.res_rsv_ruimte_van < rrr.res_rsv_ruimte_tot
|
||
AND rrr2.res_rsv_ruimte_tot > rrr.res_rsv_ruimte_van);
|
||
|
||
CURSOR creshori -- WP-RES te ver in de toekomst -> delete!
|
||
IS
|
||
SELECT '[' || rrr.res_reservering_key || '/' || rrr.res_rsv_ruimte_volgnr || '] '
|
||
aanduiding,
|
||
rrr.res_rsv_ruimte_key
|
||
FROM res_v_aanwezigrsv_ruimte rrr, res_ruimte_opstelling rro, res_ruimte rr
|
||
WHERE rrr.res_ruimte_opstel_key = rro.res_ruimte_opstel_key
|
||
AND rro.res_ruimte_key = rr.res_ruimte_key
|
||
AND rr.res_discipline_key IN (621, 622, 623, 624, 625, 641)
|
||
AND TRUNC (rrr.res_rsv_ruimte_van) > TRUNC (SYSDATE) + 15;
|
||
|
||
CURSOR cresduur -- WP-RES langer dan toegestane duur (1 uur) -> update!
|
||
IS
|
||
SELECT '[' || rrr.res_reservering_key || '/' || rrr.res_rsv_ruimte_volgnr || '] '
|
||
aanduiding,
|
||
rrr.res_rsv_ruimte_key
|
||
FROM res_v_aanwezigrsv_ruimte rrr, res_ruimte_opstelling rro, res_ruimte rr
|
||
WHERE rrr.res_ruimte_opstel_key = rro.res_ruimte_opstel_key
|
||
AND rro.res_ruimte_key = rr.res_ruimte_key
|
||
AND rr.res_discipline_key IN (621, 623)
|
||
AND (rrr.res_rsv_ruimte_tot - rrr.res_rsv_ruimte_van) * 24 > 1;
|
||
|
||
CURSOR cart
|
||
IS
|
||
SELECT '[' || TO_CHAR (ra.res_rsv_ruimte_key) || '/' || TO_CHAR (ra.res_rsv_artikel_key) || '] '
|
||
aanduiding,
|
||
ra.res_rsv_ruimte_key,
|
||
ra.res_rsv_artikel_key,
|
||
ra.res_artikel_key
|
||
FROM res_rsv_artikel ra
|
||
WHERE ra.res_status_bo_key = 2
|
||
AND ra.res_rsv_artikel_dirtlevel = 0
|
||
AND ra.res_rsv_artikel_verwijder IS NULL
|
||
AND TRUNC (ra.res_rsv_artikel_levering + 1) < SYSDATE;
|
||
|
||
CURSOR cobj
|
||
IS
|
||
SELECT '[' || TO_CHAR (rd.res_rsv_ruimte_key) || '/' || TO_CHAR (rd.res_rsv_deel_key) || '] '
|
||
aanduiding,
|
||
rd.res_rsv_ruimte_key,
|
||
rd.res_rsv_deel_key
|
||
FROM res_rsv_deel rd
|
||
WHERE rd.res_status_bo_key = 2
|
||
AND rd.res_rsv_ruimte_key IS NOT NULL -- Geen parkeerplaatsen
|
||
AND rd.res_rsv_deel_dirtlevel = 0
|
||
AND rd.res_rsv_deel_verwijder IS NULL
|
||
AND TRUNC (rd.res_rsv_deel_tot + 1) < SYSDATE;
|
||
|
||
CURSOR cres
|
||
IS
|
||
SELECT '[' || TO_CHAR (rrr.res_rsv_ruimte_key) || '] '
|
||
aanduiding,
|
||
rrr.res_rsv_ruimte_key
|
||
FROM res_rsv_ruimte rrr
|
||
WHERE rrr.res_status_bo_key = 2
|
||
AND rrr.res_ruimte_opstel_key IS NOT NULL -- Geen "roomservice"
|
||
AND rrr.res_rsv_ruimte_dirtlevel = 0
|
||
AND rrr.res_rsv_ruimte_verwijder IS NULL
|
||
AND TRUNC (rrr.res_rsv_ruimte_tot + 1) < SYSDATE;
|
||
|
||
-- LOGI#42327: Verwijderen bezoekers bij afspraken >6 maanden oud!
|
||
CURSOR cafspraak
|
||
IS
|
||
SELECT a.bez_afspraak_key
|
||
FROM bez_afspraak a
|
||
WHERE ADD_MONTHS (a.bez_afspraak_datum, 6) < SYSDATE
|
||
AND EXISTS (SELECT 1 FROM bez_bezoekers WHERE bez_afspraak_key = a.bez_afspraak_key);
|
||
|
||
c_nu DATE := SYSDATE;
|
||
c_txt_anoniem VARCHAR2 (200) := 'Geanonimiseerd';
|
||
v_errorhint VARCHAR2 (1000);
|
||
v_errormsg VARCHAR2 (1000);
|
||
oracle_err_num NUMBER;
|
||
oracle_err_mes VARCHAR2 (200);
|
||
v_count NUMBER;
|
||
v_prijs NUMBER (9, 2);
|
||
BEGIN
|
||
v_count := 0;
|
||
|
||
FOR r IN cresbots
|
||
LOOP
|
||
BEGIN
|
||
v_errormsg := 'Fout bij verwijderen reservering';
|
||
|
||
UPDATE res_rsv_ruimte
|
||
SET res_rsv_ruimte_verwijder = SYSDATE
|
||
WHERE res_rsv_ruimte_key = r.res_rsv_ruimte_key;
|
||
|
||
fac.trackaction ('RESDEL',
|
||
r.res_rsv_ruimte_key,
|
||
NULL,
|
||
NULL,
|
||
NULL);
|
||
COMMIT;
|
||
v_count := v_count + 1;
|
||
EXCEPTION
|
||
WHEN OTHERS
|
||
THEN
|
||
oracle_err_num := SQLCODE;
|
||
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
|
||
v_errormsg := v_errormsg || ' ORACLE (error ' || oracle_err_num || '/' || oracle_err_mes || ')';
|
||
fac.writelog (p_applname, 'E', r.aanduiding || v_errormsg, 'RES_WP-botsing');
|
||
COMMIT;
|
||
END;
|
||
END LOOP;
|
||
|
||
fac.writelog (p_applname, 'S', '#RES_WP-botsing deletes: ' || TO_CHAR (v_count), '');
|
||
|
||
COMMIT;
|
||
|
||
v_count := 0;
|
||
|
||
FOR r IN creshori
|
||
LOOP
|
||
BEGIN
|
||
v_errormsg := 'Fout bij verwijderen reservering';
|
||
|
||
UPDATE res_rsv_ruimte
|
||
SET res_rsv_ruimte_verwijder = SYSDATE
|
||
WHERE res_rsv_ruimte_key = r.res_rsv_ruimte_key;
|
||
|
||
fac.trackaction ('RESDEL',
|
||
r.res_rsv_ruimte_key,
|
||
NULL,
|
||
NULL,
|
||
NULL);
|
||
COMMIT;
|
||
v_count := v_count + 1;
|
||
EXCEPTION
|
||
WHEN OTHERS
|
||
THEN
|
||
oracle_err_num := SQLCODE;
|
||
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
|
||
v_errormsg := v_errormsg || ' ORACLE (error ' || oracle_err_num || '/' || oracle_err_mes || ')';
|
||
fac.writelog (p_applname, 'E', r.aanduiding || v_errormsg, 'RES_WP-horizon');
|
||
COMMIT;
|
||
END;
|
||
END LOOP;
|
||
|
||
fac.writelog (p_applname, 'S', '#RES_WP-horizon deletes: ' || TO_CHAR (v_count), '');
|
||
|
||
COMMIT;
|
||
|
||
v_count := 0;
|
||
|
||
FOR r IN cresduur
|
||
LOOP
|
||
BEGIN
|
||
v_errormsg := 'Fout bij bijwerken reservering';
|
||
|
||
UPDATE res_rsv_ruimte
|
||
SET res_rsv_ruimte_tot = res_rsv_ruimte_van + (1 / 24)
|
||
WHERE res_rsv_ruimte_key = r.res_rsv_ruimte_key;
|
||
|
||
fac.trackaction ('RESUPD',
|
||
r.res_rsv_ruimte_key,
|
||
NULL,
|
||
NULL,
|
||
NULL);
|
||
COMMIT;
|
||
v_count := v_count + 1;
|
||
EXCEPTION
|
||
WHEN OTHERS
|
||
THEN
|
||
oracle_err_num := SQLCODE;
|
||
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
|
||
v_errormsg := v_errormsg || ' ORACLE (error ' || oracle_err_num || '/' || oracle_err_mes || ')';
|
||
fac.writelog (p_applname, 'E', r.aanduiding || v_errormsg, 'RES_WP-tottijd');
|
||
COMMIT;
|
||
END;
|
||
END LOOP;
|
||
|
||
fac.writelog (p_applname, 'S', '#RES_WP-tottijd updates: ' || TO_CHAR (v_count), '');
|
||
|
||
COMMIT;
|
||
|
||
-- LOGI#23445: Automatisch afmelden reserveringen.
|
||
FOR rc IN cart
|
||
LOOP
|
||
BEGIN
|
||
v_errorhint := 'Fout bij bepalen res_rsv_artikel_prijs.';
|
||
|
||
SELECT res.getartikelprijs (rc.res_rsv_artikel_key)
|
||
INTO v_prijs
|
||
FROM DUAL;
|
||
|
||
v_errorhint := 'Fout bij bijwerken res_rsv_artikel_prijs.';
|
||
|
||
UPDATE res_rsv_artikel
|
||
SET res_status_bo_key = 5,
|
||
res_rsv_artikel_prijs = v_prijs,
|
||
res_rsv_artikel_inkoopprijs =
|
||
(SELECT res_artikel_inkoopprijs
|
||
FROM res_artikel
|
||
WHERE res_artikel_key = rc.res_artikel_key),
|
||
res_rsv_artikel_btw =
|
||
(SELECT res_artikel_btw
|
||
FROM res_artikel
|
||
WHERE res_artikel_key = rc.res_artikel_key)
|
||
WHERE res_rsv_artikel_key = rc.res_rsv_artikel_key;
|
||
|
||
fac.trackaction ('RESAFM',
|
||
rc.res_rsv_ruimte_key,
|
||
NULL,
|
||
NULL,
|
||
'Catering afgemeld');
|
||
EXCEPTION
|
||
WHEN OTHERS
|
||
THEN
|
||
oracle_err_num := SQLCODE;
|
||
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
|
||
v_errormsg := 'ORACLE (error ' || oracle_err_num || '/' || oracle_err_mes || ')';
|
||
fac.writelog (p_applname, 'W', rc.aanduiding || v_errormsg, v_errorhint);
|
||
COMMIT;
|
||
END;
|
||
END LOOP;
|
||
|
||
COMMIT;
|
||
|
||
FOR rc IN cobj
|
||
LOOP
|
||
BEGIN
|
||
v_errorhint := 'Fout bij bepalen res_rsv_deel_prijs.';
|
||
|
||
SELECT res.getdeelprijs (rc.res_rsv_deel_key) INTO v_prijs FROM DUAL;
|
||
|
||
v_errorhint := 'Fout bij bijwerken res_rsv_deel_prijs.';
|
||
|
||
UPDATE res_rsv_deel
|
||
SET res_status_bo_key = 5, res_rsv_deel_prijs = v_prijs
|
||
WHERE res_rsv_deel_key = rc.res_rsv_deel_key;
|
||
|
||
fac.trackaction ('RESAFM',
|
||
rc.res_rsv_ruimte_key,
|
||
NULL,
|
||
NULL,
|
||
'Voorziening(en) afgemeld');
|
||
EXCEPTION
|
||
WHEN OTHERS
|
||
THEN
|
||
oracle_err_num := SQLCODE;
|
||
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
|
||
v_errormsg := 'ORACLE (error ' || oracle_err_num || '/' || oracle_err_mes || ')';
|
||
fac.writelog (p_applname, 'W', rc.aanduiding || v_errormsg, v_errorhint);
|
||
COMMIT;
|
||
END;
|
||
END LOOP;
|
||
|
||
COMMIT;
|
||
|
||
FOR rc IN cres
|
||
LOOP
|
||
BEGIN
|
||
v_errorhint := 'Fout bij bepalen res_rsv_ruimte_prijs.';
|
||
|
||
SELECT res.getruimteprijs (rc.res_rsv_ruimte_key)
|
||
INTO v_prijs
|
||
FROM DUAL;
|
||
|
||
v_errorhint := 'Fout bij bijwerken res_rsv_ruimte_prijs.';
|
||
|
||
UPDATE res_rsv_ruimte
|
||
SET res_status_bo_key = 5, res_rsv_ruimte_prijs = v_prijs
|
||
WHERE res_rsv_ruimte_key = rc.res_rsv_ruimte_key;
|
||
|
||
fac.trackaction ('RESAFM',
|
||
rc.res_rsv_ruimte_key,
|
||
NULL,
|
||
NULL,
|
||
NULL);
|
||
EXCEPTION
|
||
WHEN OTHERS
|
||
THEN
|
||
oracle_err_num := SQLCODE;
|
||
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
|
||
v_errormsg := 'ORACLE (error ' || oracle_err_num || '/' || oracle_err_mes || ')';
|
||
fac.writelog (p_applname, 'W', rc.aanduiding || v_errormsg, v_errorhint);
|
||
COMMIT;
|
||
END;
|
||
END LOOP;
|
||
|
||
COMMIT;
|
||
|
||
FOR rc IN cafspraak
|
||
LOOP
|
||
DELETE FROM fac_tracking
|
||
WHERE fac_srtnotificatie_key IN (44, 361) -- BEZMAI/BEZUPD
|
||
AND fac_tracking_refkey = rc.bez_afspraak_key;
|
||
|
||
DELETE FROM fac_tracking t
|
||
WHERE t.fac_srtnotificatie_key IN (15, 16, 17, 18, 181, 581) -- BEZDON/BEZDO2/BEZOUT/BEZOU2/BEZBAD/BEZUNI
|
||
AND EXISTS
|
||
(SELECT 1
|
||
FROM bez_bezoekers
|
||
WHERE bez_afspraak_key = rc.bez_afspraak_key
|
||
AND bez_bezoekers_key = t.fac_tracking_refkey);
|
||
|
||
DELETE FROM bez_bezoekers
|
||
WHERE bez_afspraak_key = rc.bez_afspraak_key;
|
||
|
||
fac.trackaction ('#BEZUPD',
|
||
rc.bez_afspraak_key,
|
||
NULL,
|
||
c_nu,
|
||
c_txt_anoniem);
|
||
END LOOP;
|
||
|
||
COMMIT;
|
||
EXCEPTION
|
||
WHEN OTHERS
|
||
THEN
|
||
oracle_err_num := SQLCODE;
|
||
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
|
||
v_errormsg := 'ORACLE (error ' || oracle_err_num || '/' || oracle_err_mes || ')';
|
||
fac.writelog (p_applname, 'E', 'Proces AUTO_STUFF afgebroken!', v_errormsg);
|
||
COMMIT;
|
||
END;
|
||
/
|
||
|
||
-- LOGI#23445: Alleen spreekkamers (dus geen WP) en alleen met FO-status
|
||
-- Optie/Definitief (dus niet Blokkade en Vervallen)!
|
||
/* Formatted on 28-6-2012 14:24:48 (QP5 v5.115.810.9015) */
|
||
CREATE OR REPLACE VIEW LOGI_V_RAP_RES_INFOBORD
|
||
(
|
||
AKTIEF,
|
||
OFFSET,
|
||
DAG,
|
||
TIJD_VAN,
|
||
TIJD_TOT,
|
||
RUIMTE,
|
||
CATALOGUS,
|
||
AANVRAGER,
|
||
GASTHEER,
|
||
OMSCHRIJVING,
|
||
STATUS,
|
||
LOCATIE_CODE,
|
||
GEBOUW_CODE,
|
||
VERDIEPING_CODE,
|
||
LOCATIE_OMSCHRIJVING,
|
||
GEBOUW_OMSCHRIJVING,
|
||
VERDIEPING_OMSCHRIJVING,
|
||
ALG_LOCATIE_KEY,
|
||
ALG_GEBOUW_KEY,
|
||
ALG_VERDIEPING_KEY
|
||
)
|
||
AS
|
||
SELECT (CASE
|
||
WHEN rrr.res_rsv_ruimte_van > SYSDATE THEN 'expected'
|
||
WHEN rrr.res_rsv_ruimte_tot < SYSDATE THEN 'passed'
|
||
ELSE 'active'
|
||
END)
|
||
aktief,
|
||
TRUNC ( (SYSDATE - rrr.res_rsv_ruimte_van) * 24 * 60) offset,
|
||
TO_CHAR (rrr.res_rsv_ruimte_van, 'dd-mm-yyyy') dag,
|
||
TO_CHAR (rrr.res_rsv_ruimte_van, 'hh24:mi') tijd_van,
|
||
TO_CHAR (rrr.res_rsv_ruimte_tot, 'hh24:mi') tijd_tot,
|
||
rrg.res_ruimte_nr ruimte,
|
||
rd.ins_discipline_omschrijving catalogus,
|
||
aanvrager.prs_perslid_naam_full aanvrager,
|
||
gastheer.prs_perslid_naam_full gastheer,
|
||
rrr.res_rsv_ruimte_omschrijving omschrijving,
|
||
sf.res_status_fo_omschrijving status,
|
||
l.alg_locatie_code locatie_code,
|
||
g.alg_gebouw_code gebouw_code,
|
||
v.alg_verdieping_code verdieping_code,
|
||
l.alg_locatie_omschrijving locatie_omschrijving,
|
||
g.alg_gebouw_omschrijving gebouw_omschrijving,
|
||
v.alg_verdieping_omschrijving verdieping_omschrijving,
|
||
l.alg_locatie_key,
|
||
g.alg_gebouw_key,
|
||
v.alg_verdieping_key
|
||
FROM res_v_aanwezigrsv_ruimte rrr,
|
||
res_ruimte_opstelling rro,
|
||
res_v_res_ruimte_gegevens rrg,
|
||
prs_v_perslid_fullnames aanvrager,
|
||
prs_v_perslid_fullnames gastheer,
|
||
alg_locatie l,
|
||
alg_gebouw g,
|
||
alg_verdieping v,
|
||
res_status_fo sf,
|
||
res_activiteit a,
|
||
res_discipline rd
|
||
WHERE rrr.res_status_fo_key IN (1, 2) -- Alleen Optie + Definitief!
|
||
AND rrr.res_ruimte_opstel_key = rro.res_ruimte_opstel_key
|
||
AND rro.res_ruimte_key = rrg.res_ruimte_key
|
||
AND rrr.res_rsv_ruimte_host_key = gastheer.prs_perslid_key
|
||
AND rrr.res_rsv_ruimte_contact_key = aanvrager.prs_perslid_key
|
||
AND TRUNC (rrr.res_rsv_ruimte_van) = TRUNC (SYSDATE)
|
||
AND rrg.alg_locatie_key = l.alg_locatie_key
|
||
AND rrg.alg_gebouw_key = g.alg_gebouw_key
|
||
AND rrg.alg_verdieping_key = v.alg_verdieping_key
|
||
AND rrr.res_status_fo_key = sf.res_status_fo_key
|
||
AND rrr.res_activiteit_key = a.res_activiteit_key
|
||
AND a.res_srtactiviteit_key = 1 -- Ruimte (g<><67>n Voorz. + WP)!
|
||
AND rrg.res_discipline_key = rd.ins_discipline_key;
|
||
|
||
-- LOGI#34117 notijob tbv optionele reserveringen
|
||
CREATE OR REPLACE VIEW LOGI_V_NOTI_RES_OPTIE
|
||
(
|
||
CODE,
|
||
SENDER,
|
||
RECEIVER,
|
||
TEXT,
|
||
KEY,
|
||
XKEY
|
||
)
|
||
AS
|
||
SELECT DISTINCT
|
||
'RESNEW',
|
||
NULL,
|
||
res_rsv_ruimte_contact_key,
|
||
'Let op: reservering '
|
||
|| rrr.res_reservering_key
|
||
|| '/'
|
||
|| rrr.res_rsv_ruimte_volgnr
|
||
|| ' ('
|
||
|| res_rsv_ruimte_van
|
||
|| ' - '
|
||
|| res_ruimte_nr
|
||
|| ') is optioneel'
|
||
text,
|
||
res_reservering_key,
|
||
res_rsv_ruimte_key
|
||
FROM res_rsv_ruimte rrr,
|
||
fac_tracking tr,
|
||
fac_srtnotificatie srt,
|
||
res_ruimte_opstelling rro,
|
||
res_ruimte rr
|
||
WHERE res_rsv_ruimte_verwijder IS NULL
|
||
AND rrr.res_ruimte_opstel_key = rro.res_ruimte_opstel_key
|
||
AND rro.res_ruimte_key = rr.res_ruimte_key
|
||
AND rrr.res_status_fo_key = 1
|
||
AND tr.fac_srtnotificatie_key = srt.fac_srtnotificatie_key
|
||
AND ( (tr.fac_tracking_refkey = rrr.res_rsv_ruimte_key
|
||
AND srt.fac_srtnotificatie_xmlnode IN
|
||
('reservering', 'xreservering')))
|
||
AND srt.fac_srtnotificatie_code = 'RESNEW'
|
||
AND tr.fac_tracking_datum >
|
||
(SELECT fac_notificatie_job_nextrun
|
||
- fac_notificatie_job_interval / 24
|
||
FROM fac_notificatie_job
|
||
WHERE fac_notificatie_job_view =
|
||
'LOGI_V_NOTI_RES_OPTIE');
|
||
|
||
-- Bevat CUST01- en CUST02-reminders naar verantwoordelijken voor inspectie
|
||
-- van betreffende objecten.
|
||
-- LET OP: Notificatiejob via xemail!!!
|
||
-- CUST01: wekelijks mbt. over 1 tot 2 weken te keuren objecten!
|
||
-- CUST02: wekelijks mbt. objecten waarvan keuringsdatum is verstreken!
|
||
/* Formatted on 7-1-2016 17:28:32 (QP5 v5.136.908.31019) */
|
||
CREATE OR REPLACE VIEW LOGI_V_NOTI_INSPECTIEREMINDER
|
||
(
|
||
code,
|
||
sender,
|
||
receiver,
|
||
text,
|
||
KEY,
|
||
par1,
|
||
par2,
|
||
xkey,
|
||
xemail,
|
||
xmobile
|
||
)
|
||
AS
|
||
SELECT sn.fac_srtnotificatie_code code,
|
||
NULL sender,
|
||
NULL receiver,
|
||
REPLACE (
|
||
REPLACE (
|
||
sn.fac_srtnotificatie_oms,
|
||
'##SRTGROEP##',
|
||
DECODE (
|
||
x.min_srtgroep_oms,
|
||
x.max_srtgroep_oms,
|
||
x.min_srtgroep_oms
|
||
|| DECODE (x.aantal, 1, '/' || min_controle_oms, ''),
|
||
x.min_srtgroep_oms || ', ...')),
|
||
'##AANTAL##',
|
||
x.aantal)
|
||
subject,
|
||
x.dummy_deel_key, -- Dummy key!!!
|
||
NULL,
|
||
NULL,
|
||
NULL,
|
||
x.alg_locatie_email,
|
||
NULL
|
||
FROM ( SELECT l.alg_locatie_email,
|
||
MIN (din.ins_srtcontrole_omschrijving) min_controle_oms,
|
||
MIN (sg.ins_srtgroep_omschrijving) min_srtgroep_oms,
|
||
MAX (sg.ins_srtgroep_omschrijving) max_srtgroep_oms,
|
||
MIN (d.ins_deel_key) dummy_deel_key,
|
||
COUNT (DISTINCT d.ins_deel_key) aantal
|
||
FROM ins_deel d,
|
||
ins_srtdeel sd,
|
||
ins_srtgroep sg,
|
||
alg_locatie l,
|
||
(SELECT ins_deel_key, inspectie_next, ins_srtcontrole_omschrijving
|
||
FROM (WITH defined_inspect
|
||
AS (SELECT *
|
||
FROM ins_deel d, ins_srtdeel sd, ins_srtcontrole sc
|
||
WHERE d.ins_srtdeel_key = sd.ins_srtdeel_key
|
||
AND (sc.ins_srtcontrole_niveau ='S'
|
||
AND sc.ins_srtinstallatie_key = d.ins_srtdeel_key
|
||
OR sc.ins_srtcontrole_niveau = 'G'
|
||
AND sc.ins_srtinstallatie_key = sd.ins_srtgroep_key
|
||
OR sc.ins_srtcontrole_niveau = 'D'
|
||
AND sc.ins_srtinstallatie_key = d.ins_discipline_key))
|
||
SELECT 1 rn, -- NOG GEEN INSPECTIES GEWEEST!
|
||
di.ins_deel_key,
|
||
fac.nextcyclusdate (
|
||
di.ins_deel_aanmaak,
|
||
di.ins_srtcontrole_mode,
|
||
COALESCE (xcp.ins_srtcontroledl_xcp_eenheid, di.ins_srtcontrole_eenheid),
|
||
COALESCE (xcp.ins_srtcontroledl_xcp_periode, di.ins_srtcontrole_periode),
|
||
COALESCE (xcp.ins_srtcontroledl_xcp_bits, di.ins_srtcontrole_bits),
|
||
1)
|
||
inspectie_next,
|
||
di.ins_srtcontrole_omschrijving
|
||
FROM defined_inspect di, ins_srtcontroledl_xcp xcp
|
||
WHERE (di.ins_deel_key, di.ins_srtcontrole_key) NOT IN
|
||
(SELECT ins_deel_key, ins_srtcontrole_key
|
||
FROM ins_deelsrtcontrole
|
||
WHERE ins_deelsrtcontrole_status IN (5, 6))
|
||
AND di.ins_srtcontrole_key = xcp.ins_srtcontrole_key(+)
|
||
AND di.ins_deel_key = xcp.ins_deel_key(+)
|
||
AND (xcp.ins_srtcontroledl_xcp_eind(+) IS NULL
|
||
OR xcp.ins_srtcontroledl_xcp_eind(+) > TRUNC (SYSDATE, 'DD'))
|
||
UNION ALL
|
||
SELECT RANK ()
|
||
OVER (
|
||
PARTITION BY di.ins_deel_key, dsc.ins_srtcontrole_key
|
||
ORDER BY ins_deelsrtcontrole_datum DESC)
|
||
rn,
|
||
di.ins_deel_key,
|
||
fac.nextcyclusdate (
|
||
CASE
|
||
WHEN di.ins_srtcontrole_mode = 0
|
||
THEN dsc.ins_deelsrtcontrole_datum_org
|
||
ELSE dsc.ins_deelsrtcontrole_datum
|
||
END,
|
||
di.ins_srtcontrole_mode,
|
||
COALESCE (xcp.ins_srtcontroledl_xcp_eenheid, di.ins_srtcontrole_eenheid),
|
||
COALESCE (xcp.ins_srtcontroledl_xcp_periode, di.ins_srtcontrole_periode),
|
||
COALESCE (xcp.ins_srtcontroledl_xcp_bits, di.ins_srtcontrole_bits),
|
||
1)
|
||
inspectie_next,
|
||
di.ins_srtcontrole_omschrijving
|
||
FROM ins_deelsrtcontrole dsc, defined_inspect di, ins_srtcontroledl_xcp xcp
|
||
WHERE dsc.ins_deelsrtcontrole_status IN (5, 6)
|
||
AND di.ins_deel_key = dsc.ins_deel_key
|
||
AND di.ins_srtcontrole_key = dsc.ins_srtcontrole_key
|
||
AND di.ins_srtcontrole_key = xcp.ins_srtcontrole_key(+)
|
||
AND di.ins_deel_key = xcp.ins_deel_key(+)
|
||
AND (xcp.ins_srtcontroledl_xcp_eind(+) IS NULL
|
||
OR xcp.ins_srtcontroledl_xcp_eind(+) > TRUNC (SYSDATE, 'DD'))
|
||
ORDER BY inspectie_next)
|
||
WHERE rn = 1) din
|
||
WHERE d.ins_deel_module = 'INS'
|
||
AND d.ins_deel_verwijder IS NULL
|
||
AND d.ins_deel_parent_key IS NULL
|
||
AND (d.ins_deel_vervaldatum IS NULL OR d.ins_deel_vervaldatum > TRUNC (SYSDATE))
|
||
AND d.ins_srtdeel_key = sd.ins_srtdeel_key
|
||
AND sd.ins_srtgroep_key = sg.ins_srtgroep_key
|
||
AND d.ins_alg_locatie_key = l.alg_locatie_key
|
||
AND d.ins_deel_key = din.ins_deel_key
|
||
AND din.inspectie_next BETWEEN TRUNC (SYSDATE + 7) AND TRUNC (SYSDATE + 14)
|
||
GROUP BY l.alg_locatie_email) x,
|
||
fac_srtnotificatie sn
|
||
WHERE sn.fac_srtnotificatie_code = 'CUST01'
|
||
UNION ALL
|
||
SELECT sn.fac_srtnotificatie_code code,
|
||
NULL sender,
|
||
NULL receiver,
|
||
REPLACE (
|
||
REPLACE (
|
||
sn.fac_srtnotificatie_oms,
|
||
'##SRTGROEP##',
|
||
DECODE (
|
||
x.min_srtgroep_oms,
|
||
x.max_srtgroep_oms,
|
||
x.min_srtgroep_oms
|
||
|| DECODE (x.aantal, 1, '/' || min_controle_oms, ''),
|
||
x.min_srtgroep_oms || ', ...')),
|
||
'##AANTAL##',
|
||
x.aantal)
|
||
subject,
|
||
x.dummy_deel_key, -- Dummy key!!!
|
||
NULL,
|
||
NULL,
|
||
NULL,
|
||
x.alg_locatie_email,
|
||
NULL
|
||
FROM ( SELECT l.alg_locatie_email,
|
||
MIN (din.ins_srtcontrole_omschrijving) min_controle_oms,
|
||
MIN (sg.ins_srtgroep_omschrijving) min_srtgroep_oms,
|
||
MAX (sg.ins_srtgroep_omschrijving) max_srtgroep_oms,
|
||
MIN (d.ins_deel_key) dummy_deel_key,
|
||
COUNT (DISTINCT d.ins_deel_key) aantal
|
||
FROM ins_deel d,
|
||
ins_srtdeel sd,
|
||
ins_srtgroep sg,
|
||
alg_locatie l,
|
||
(SELECT ins_deel_key, inspectie_next, ins_srtcontrole_omschrijving
|
||
FROM (WITH defined_inspect
|
||
AS (SELECT *
|
||
FROM ins_deel d, ins_srtdeel sd, ins_srtcontrole sc
|
||
WHERE d.ins_srtdeel_key = sd.ins_srtdeel_key
|
||
AND (sc.ins_srtcontrole_niveau = 'S'
|
||
AND sc.ins_srtinstallatie_key = d.ins_srtdeel_key
|
||
OR sc.ins_srtcontrole_niveau = 'G'
|
||
AND sc.ins_srtinstallatie_key = sd.ins_srtgroep_key
|
||
OR sc.ins_srtcontrole_niveau = 'D'
|
||
AND sc.ins_srtinstallatie_key = d.ins_discipline_key))
|
||
SELECT 1 rn, -- NOG GEEN INSPECTIES GEWEEST!
|
||
di.ins_deel_key,
|
||
--COALESCE (
|
||
-- xcp.ins_srtcontroledl_xcp_respijt,
|
||
-- fac.nextcyclusdate (
|
||
-- di.ins_deel_aanmaak,
|
||
-- di.ins_srtcontrole_mode,
|
||
-- COALESCE (
|
||
-- xcp.ins_srtcontroledl_xcp_eenheid,
|
||
-- di.ins_srtcontrole_eenheid),
|
||
-- COALESCE (
|
||
-- xcp.ins_srtcontroledl_xcp_periode,
|
||
-- di.ins_srtcontrole_periode),
|
||
-- COALESCE (
|
||
-- xcp.ins_srtcontroledl_xcp_bits,
|
||
-- di.ins_srtcontrole_bits),
|
||
-- 1))
|
||
fac.nextcyclusdate (
|
||
di.ins_deel_aanmaak,
|
||
di.ins_srtcontrole_mode,
|
||
COALESCE (xcp.ins_srtcontroledl_xcp_eenheid, di.ins_srtcontrole_eenheid),
|
||
COALESCE (xcp.ins_srtcontroledl_xcp_periode, di.ins_srtcontrole_periode),
|
||
COALESCE (xcp.ins_srtcontroledl_xcp_bits, di.ins_srtcontrole_bits),
|
||
1)
|
||
inspectie_next,
|
||
di.ins_srtcontrole_omschrijving
|
||
FROM defined_inspect di, ins_srtcontroledl_xcp xcp
|
||
WHERE (di.ins_deel_key, di.ins_srtcontrole_key) NOT IN
|
||
(SELECT ins_deel_key, ins_srtcontrole_key
|
||
FROM ins_deelsrtcontrole
|
||
WHERE ins_deelsrtcontrole_status IN (5, 6))
|
||
AND di.ins_srtcontrole_key = xcp.ins_srtcontrole_key(+)
|
||
AND di.ins_deel_key = xcp.ins_deel_key(+)
|
||
AND (xcp.ins_srtcontroledl_xcp_eind(+) IS NULL
|
||
OR xcp.ins_srtcontroledl_xcp_eind(+) > TRUNC (SYSDATE, 'DD'))
|
||
UNION ALL
|
||
SELECT RANK ()
|
||
OVER (
|
||
PARTITION BY di.ins_deel_key, dsc.ins_srtcontrole_key
|
||
ORDER BY ins_deelsrtcontrole_datum DESC)
|
||
rn,
|
||
di.ins_deel_key,
|
||
fac.nextcyclusdate (
|
||
CASE
|
||
WHEN di.ins_srtcontrole_mode = 0
|
||
THEN dsc.ins_deelsrtcontrole_datum_org
|
||
ELSE dsc.ins_deelsrtcontrole_datum
|
||
END,
|
||
di.ins_srtcontrole_mode,
|
||
COALESCE (xcp.ins_srtcontroledl_xcp_eenheid, di.ins_srtcontrole_eenheid),
|
||
COALESCE (xcp.ins_srtcontroledl_xcp_periode, di.ins_srtcontrole_periode),
|
||
COALESCE (xcp.ins_srtcontroledl_xcp_bits, di.ins_srtcontrole_bits),
|
||
1)
|
||
inspectie_next,
|
||
di.ins_srtcontrole_omschrijving
|
||
FROM ins_deelsrtcontrole dsc, defined_inspect di, ins_srtcontroledl_xcp xcp
|
||
WHERE dsc.ins_deelsrtcontrole_status IN (5, 6)
|
||
AND di.ins_deel_key = dsc.ins_deel_key
|
||
AND di.ins_srtcontrole_key = dsc.ins_srtcontrole_key
|
||
AND di.ins_srtcontrole_key = xcp.ins_srtcontrole_key(+)
|
||
AND di.ins_deel_key = xcp.ins_deel_key(+)
|
||
AND (xcp.ins_srtcontroledl_xcp_eind(+) IS NULL
|
||
OR xcp.ins_srtcontroledl_xcp_eind(+) > TRUNC (SYSDATE, 'DD'))
|
||
ORDER BY inspectie_next)
|
||
WHERE rn = 1) din
|
||
WHERE d.ins_deel_module = 'INS'
|
||
AND d.ins_deel_verwijder IS NULL
|
||
AND d.ins_deel_parent_key IS NULL
|
||
AND (d.ins_deel_vervaldatum IS NULL OR d.ins_deel_vervaldatum > TRUNC (SYSDATE))
|
||
AND d.ins_srtdeel_key = sd.ins_srtdeel_key
|
||
AND sd.ins_srtgroep_key = sg.ins_srtgroep_key
|
||
AND d.ins_alg_locatie_key = l.alg_locatie_key
|
||
AND d.ins_deel_key = din.ins_deel_key
|
||
AND din.inspectie_next < TRUNC (SYSDATE)
|
||
GROUP BY l.alg_locatie_email) x,
|
||
fac_srtnotificatie sn
|
||
WHERE sn.fac_srtnotificatie_code = 'CUST02';
|
||
|
||
CREATE OR REPLACE VIEW LOGI_V_RAP_MLDINSRES_QRC
|
||
(
|
||
FCLT_F_DISCIPLINE,
|
||
FCLT_F_SOORTMELDING,
|
||
FCLT_F_LOCATIE,
|
||
FCLT_F_GEBOUW,
|
||
FCLT_F_VERDIEPING,
|
||
PLAATS,
|
||
RUIMTE_KEY,
|
||
RUIMTEFUNCTIE,
|
||
FCLT_F_OBJECTDISCIPLINE,
|
||
FCLT_F_OBJECTGROEP,
|
||
OBJECTSOORT_KEY,
|
||
FCLT_F_OBJECTSOORT,
|
||
OBJECTSOORT_CODE,
|
||
DEEL_KEY,
|
||
DEEL_OMSCHRIJVING,
|
||
DEEL_UPPER,
|
||
HIDE_F_BOOKMARK_ID,
|
||
VARIABELE
|
||
)
|
||
AS
|
||
SELECT md.ins_discipline_omschrijving,
|
||
msd.mld_stdmelding_omschrijving,
|
||
l.alg_locatie_omschrijving,
|
||
o.alg_gebouw_omschrijving,
|
||
o.alg_verdieping_omschrijving,
|
||
o.alg_plaatsaanduiding plaats,
|
||
d.ins_alg_ruimte_key ruimte_key,
|
||
sr.alg_srtruimte_omschrijving,
|
||
disc.ins_discipline_omschrijving,
|
||
sg.ins_srtgroep_omschrijving,
|
||
sd.ins_srtdeel_key,
|
||
sd.ins_srtdeel_omschrijving,
|
||
sd.ins_srtdeel_code,
|
||
d.ins_deel_key,
|
||
d.ins_deel_omschrijving,
|
||
d.ins_deel_upper,
|
||
b.fac_bookmark_id,
|
||
'INS_KEY'
|
||
FROM (SELECT DECODE (
|
||
INSTR (
|
||
SUBSTR (
|
||
UPPER (fac_bookmark_query),
|
||
INSTR (UPPER (fac_bookmark_query), 'STDM_KEY=')),
|
||
'&'),
|
||
0,
|
||
SUBSTR (
|
||
SUBSTR (
|
||
UPPER (fac_bookmark_query),
|
||
INSTR (UPPER (fac_bookmark_query), 'STDM_KEY=')),
|
||
10),
|
||
SUBSTR (
|
||
SUBSTR (
|
||
UPPER (fac_bookmark_query),
|
||
INSTR (UPPER (fac_bookmark_query), 'STDM_KEY=')),
|
||
10,
|
||
INSTR (
|
||
SUBSTR (
|
||
UPPER (fac_bookmark_query),
|
||
INSTR (UPPER (fac_bookmark_query), 'STDM_KEY=')),
|
||
'&')
|
||
- 10))
|
||
stdm_key,
|
||
fac_bookmark_id
|
||
FROM fac_bookmark
|
||
WHERE TRUNC (fac_bookmark_aanmaak) >=
|
||
TO_DATE ('10062013', 'ddmmyyyy')
|
||
AND UPPER (fac_bookmark_path) = 'APPL/PDA/MELDING.ASP'
|
||
AND INSTR (UPPER (fac_bookmark_query), 'STDM_KEY') > 0) b, -- stdm_key-bookmarks
|
||
(SELECT sm.mld_ins_discipline_key,
|
||
sm.mld_stdmelding_key,
|
||
sm.mld_stdmelding_omschrijving,
|
||
si.ins_srtinstallatie_key ins_srtdeel_key
|
||
FROM mld_stdmelding sm,
|
||
mld_stdmelding_srtinst si
|
||
WHERE sm.mld_stdmelding_key = si.mld_stdmelding_key
|
||
AND sm.mld_stdmelding_verwijder IS NULL
|
||
AND si.ins_srtinstallatie_niveau = 'S'
|
||
UNION ALL
|
||
SELECT sm.mld_ins_discipline_key,
|
||
sm.mld_stdmelding_key,
|
||
sm.mld_stdmelding_omschrijving,
|
||
sd.ins_srtdeel_key
|
||
FROM mld_stdmelding sm,
|
||
mld_stdmelding_srtinst si,
|
||
ins_srtdeel sd
|
||
WHERE sm.mld_stdmelding_key = si.mld_stdmelding_key
|
||
AND sm.mld_stdmelding_verwijder IS NULL
|
||
AND si.ins_srtinstallatie_niveau = 'G'
|
||
AND si.ins_srtinstallatie_key = sd.ins_srtgroep_key
|
||
UNION ALL
|
||
SELECT sm.mld_ins_discipline_key,
|
||
sm.mld_stdmelding_key,
|
||
sm.mld_stdmelding_omschrijving,
|
||
sd.ins_srtdeel_key
|
||
FROM mld_stdmelding sm,
|
||
mld_stdmelding_srtinst si,
|
||
ins_srtgroep sg,
|
||
ins_srtdeel sd
|
||
WHERE sm.mld_stdmelding_key = si.mld_stdmelding_key
|
||
AND sm.mld_stdmelding_verwijder IS NULL
|
||
AND si.ins_srtinstallatie_niveau = 'D'
|
||
AND si.ins_srtinstallatie_key = sg.ins_discipline_key
|
||
AND sg.ins_srtgroep_key = sd.ins_srtgroep_key) msd, -- object-meldingen
|
||
mld_discipline md,
|
||
ins_v_aanwezigdeel d,
|
||
ins_srtdeel sd,
|
||
ins_srtgroep sg,
|
||
ins_discipline disc,
|
||
ins_v_alg_overzicht o,
|
||
alg_locatie l,
|
||
alg_ruimte r,
|
||
alg_srtruimte sr
|
||
WHERE fac.safe_to_number (b.stdm_key) = msd.mld_stdmelding_key
|
||
AND msd.mld_ins_discipline_key = md.ins_discipline_key
|
||
AND msd.ins_srtdeel_key = d.ins_srtdeel_key
|
||
AND d.ins_alg_ruimte_type IN ('T', 'R', 'W')
|
||
AND d.ins_deel_parent_key IS NULL
|
||
AND d.ins_srtdeel_key = sd.ins_srtdeel_key
|
||
AND sd.ins_srtgroep_key = sg.ins_srtgroep_key
|
||
AND sg.ins_discipline_key = disc.ins_discipline_key
|
||
AND d.ins_alg_ruimte_key = o.alg_onroerendgoed_keys
|
||
AND d.ins_alg_ruimte_type = o.alg_onroerendgoed_type
|
||
AND d.ins_alg_locatie_key = o.alg_locatie_key -- redundant?
|
||
AND o.alg_locatie_key = l.alg_locatie_key
|
||
AND d.ins_alg_ruimte_key = r.alg_ruimte_key
|
||
AND r.alg_srtruimte_key = sr.alg_srtruimte_key(+);
|
||
|
||
CREATE OR REPLACE VIEW LOGI_V_RAP_RUIMINSRES_QRC
|
||
(
|
||
FCLT_F_LOCATIE,
|
||
FCLT_F_GEBOUW,
|
||
FCLT_F_VERDIEPING,
|
||
FCLT_F_RUIMTEFUNCTIE,
|
||
PLAATS,
|
||
RUIMTE_KEY,
|
||
HIDE_F_BOOKMARK_ID,
|
||
VARIABELE
|
||
)
|
||
AS
|
||
SELECT
|
||
l.alg_locatie_omschrijving,
|
||
o.alg_gebouw_omschrijving,
|
||
o.alg_verdieping_omschrijving,
|
||
sr.alg_srtruimte_omschrijving,
|
||
o.alg_plaatsaanduiding plaats,
|
||
r.alg_ruimte_key ruimte_key,
|
||
b.fac_bookmark_id,
|
||
'RUIMTE_KEY'
|
||
FROM fac_bookmark b,
|
||
alg_v_aanwezigruimte r,
|
||
alg_srtruimte sr,
|
||
ins_v_alg_overzicht o,
|
||
alg_locatie l
|
||
WHERE
|
||
UPPER (b.fac_bookmark_naam) LIKE '%SANI%'
|
||
AND UPPER (b.fac_bookmark_path) = 'APPL/PDA/MELDING.ASP'
|
||
AND r.alg_srtruimte_key = sr.alg_srtruimte_key(+)
|
||
AND r.alg_ruimte_key = o.alg_onroerendgoed_keys
|
||
AND o.alg_onroerendgoed_type = 'R'
|
||
AND o.alg_locatie_key = l.alg_locatie_key
|
||
AND sr.alg_srtruimte_key IN ('47', '48', '49', '84', '85', '101', '105');
|
||
|
||
CREATE OR REPLACE VIEW LOGI_V_RAP_MEETING_QRC
|
||
(
|
||
FCLT_F_LOCATIE,
|
||
FCLT_F_GEBOUW,
|
||
FCLT_F_VERDIEPING,
|
||
FCLT_F_RUIMTEFUNCTIE,
|
||
PLAATS,
|
||
RUIMTE_KEY,
|
||
HIDE_F_BOOKMARK_ID,
|
||
VARIABELE
|
||
)
|
||
AS
|
||
SELECT
|
||
l.alg_locatie_omschrijving,
|
||
o.alg_gebouw_omschrijving,
|
||
o.alg_verdieping_omschrijving,
|
||
sr.alg_srtruimte_omschrijving,
|
||
o.alg_plaatsaanduiding plaats,
|
||
r.alg_ruimte_key ruimte_key,
|
||
b.fac_bookmark_id,
|
||
'RUIMTE_KEY'
|
||
FROM fac_bookmark b,
|
||
alg_v_aanwezigruimte r,
|
||
alg_srtruimte sr,
|
||
ins_v_alg_overzicht o,
|
||
alg_locatie l
|
||
WHERE
|
||
UPPER (b.fac_bookmark_naam) LIKE '%MEETING%'
|
||
AND UPPER (b.fac_bookmark_path) = 'APPL/RES/MELDING.ASP'
|
||
AND r.alg_srtruimte_key = sr.alg_srtruimte_key(+)
|
||
AND r.alg_ruimte_key = o.alg_onroerendgoed_keys
|
||
AND o.alg_onroerendgoed_type = 'R'
|
||
AND o.alg_locatie_key = l.alg_locatie_key
|
||
AND sr.alg_srtruimte_key = '44';
|
||
|
||
CREATE OR REPLACE VIEW LOGI_V_RAP_MEETING_RES_QRC
|
||
(
|
||
fclt_f_locatie,
|
||
fclt_f_gebouw,
|
||
fclt_f_verdieping,
|
||
plaats,
|
||
ruimte_key,
|
||
ruimtefunctie,
|
||
hide_f_bookmark_id,
|
||
variabele
|
||
)
|
||
AS
|
||
SELECT l.alg_locatie_omschrijving,
|
||
o.alg_gebouw_omschrijving,
|
||
o.alg_verdieping_omschrijving,
|
||
rr.res_ruimte_nr plaats,
|
||
rar.res_ruimte_key ruimte_key,
|
||
sr.alg_srtruimte_omschrijving,
|
||
b.fac_bookmark_id,
|
||
'RES_RUIMTE_KEY'
|
||
FROM fac_bookmark b,
|
||
res_ruimte rr,
|
||
( SELECT res_ruimte_key, MAX (alg_ruimte_key) alg_ruimte_key
|
||
FROM res_alg_ruimte
|
||
WHERE res_alg_ruimte_verwijder IS NULL
|
||
GROUP BY res_ruimte_key) rar,
|
||
alg_ruimte r,
|
||
alg_srtruimte sr,
|
||
ins_v_alg_overzicht o,
|
||
alg_locatie l
|
||
WHERE UPPER (b.fac_bookmark_naam) LIKE '%MEETING%'
|
||
AND UPPER (b.fac_bookmark_path) = 'APPL/PDA/RESERVERINGEN.ASP'
|
||
AND rr.res_ruimte_key = rar.res_ruimte_key
|
||
AND rar.alg_ruimte_key = r.alg_ruimte_key
|
||
AND r.alg_srtruimte_key = sr.alg_srtruimte_key(+)
|
||
AND r.alg_ruimte_key = o.alg_onroerendgoed_keys
|
||
AND o.alg_onroerendgoed_type = 'R'
|
||
AND o.alg_locatie_key = l.alg_locatie_key
|
||
AND sr.alg_srtruimte_key = '44';
|
||
|
||
/*
|
||
UNION ALL
|
||
SELECT 'Melding op object',
|
||
l.alg_locatie_omschrijving,
|
||
o.alg_gebouw_omschrijving,
|
||
o.alg_verdieping_omschrijving,
|
||
o.alg_plaatsaanduiding plaats,
|
||
NULL ruimte_key,
|
||
sr.alg_srtruimte_omschrijving,
|
||
disc.ins_discipline_omschrijving,
|
||
sg.ins_srtgroep_omschrijving,
|
||
sd.ins_srtdeel_key,
|
||
sd.ins_srtdeel_omschrijving,
|
||
sd.ins_srtdeel_code,
|
||
d.ins_deel_key,
|
||
d.ins_deel_omschrijving,
|
||
d.ins_deel_upper,
|
||
b.fac_bookmark_id,
|
||
'INS_KEY'
|
||
FROM fac_bookmark b,
|
||
ins_v_aanwezigdeel d,
|
||
ins_srtdeel sd,
|
||
ins_srtgroep sg,
|
||
ins_discipline disc,
|
||
ins_v_alg_overzicht o,
|
||
alg_locatie l,
|
||
alg_ruimte r,
|
||
alg_srtruimte sr
|
||
WHERE TRUNC (b.fac_bookmark_aanmaak) = TO_DATE ('10062013', 'ddmmyyyy')
|
||
AND UPPER (b.fac_bookmark_naam) LIKE '%GENERIEK%'
|
||
AND UPPER (b.fac_bookmark_path) = 'APPL/PDA/INS_DEEL.ASP'
|
||
AND d.ins_alg_ruimte_type IN ('T', 'R', 'W')
|
||
AND d.ins_deel_parent_key IS NULL
|
||
AND d.ins_srtdeel_key = sd.ins_srtdeel_key
|
||
AND sd.ins_srtgroep_key = sg.ins_srtgroep_key
|
||
AND sg.ins_discipline_key = disc.ins_discipline_key
|
||
AND d.ins_alg_ruimte_key = o.alg_onroerendgoed_keys
|
||
AND d.ins_alg_ruimte_type = o.alg_onroerendgoed_type
|
||
AND d.ins_alg_locatie_key = o.alg_locatie_key -- redundant?
|
||
AND o.alg_locatie_key = l.alg_locatie_key
|
||
AND d.ins_alg_ruimte_key = r.alg_ruimte_key
|
||
AND r.alg_srtruimte_key = sr.alg_srtruimte_key(+);
|
||
UNION ALL
|
||
SELECT 'Melding op ruimte',
|
||
l.alg_locatie_omschrijving,
|
||
o.alg_gebouw_omschrijving,
|
||
o.alg_verdieping_omschrijving,
|
||
o.alg_plaatsaanduiding plaats,
|
||
r.alg_ruimte_key ruimte_key,
|
||
sr.alg_srtruimte_omschrijving,
|
||
NULL ins_discipline_omschrijving,
|
||
NULL ins_srtgroep_omschrijving,
|
||
NULL ins_srtdeel_key,
|
||
NULL ins_srtdeel_omschrijving,
|
||
NULL ins_srtdeel_code,
|
||
NULL ins_deel_key,
|
||
NULL ins_deel_omschrijving,
|
||
NULL ins_deel_upper,
|
||
b.fac_bookmark_id,
|
||
'RUIMTE_KEY'
|
||
FROM fac_bookmark b,
|
||
alg_v_aanwezigruimte r,
|
||
alg_srtruimte sr,
|
||
ins_v_alg_overzicht o,
|
||
alg_locatie l
|
||
WHERE TRUNC (b.fac_bookmark_aanmaak) = TO_DATE ('10062013', 'ddmmyyyy')
|
||
AND UPPER (b.fac_bookmark_naam) LIKE '%GENERIEK%'
|
||
AND UPPER (b.fac_bookmark_path) = 'APPL/PDA/MELDING.ASP'
|
||
AND INSTR (UPPER (fac_bookmark_query), 'STDM_KEY') = 0
|
||
AND r.alg_srtruimte_key = sr.alg_srtruimte_key(+)
|
||
AND r.alg_ruimte_key = o.alg_onroerendgoed_keys
|
||
AND o.alg_onroerendgoed_type = 'R'
|
||
AND o.alg_locatie_key = l.alg_locatie_key
|
||
UNION ALL
|
||
SELECT 'Melding op gebouw',
|
||
l.alg_locatie_omschrijving,
|
||
g.alg_gebouw_omschrijving,
|
||
NULL alg_verdieping_omschrijving,
|
||
l.alg_locatie_code || '-' || g.alg_gebouw_code plaats,
|
||
g.alg_gebouw_key ruimte_key,
|
||
sg.alg_srtgebouw_omschrijving,
|
||
NULL ins_discipline_omschrijving,
|
||
NULL ins_srtgroep_omschrijving,
|
||
NULL ins_srtdeel_key,
|
||
NULL ins_srtdeel_omschrijving,
|
||
NULL ins_srtdeel_code,
|
||
NULL ins_deel_key,
|
||
NULL ins_deel_omschrijving,
|
||
NULL ins_deel_upper,
|
||
b.fac_bookmark_id,
|
||
'GEBOUW_KEY'
|
||
FROM fac_bookmark b,
|
||
alg_v_aanweziggebouw g,
|
||
alg_v_aanwezigsrtgebouw sg,
|
||
alg_locatie l
|
||
WHERE TRUNC (b.fac_bookmark_aanmaak) = TO_DATE ('30012014', 'ddmmyyyy')
|
||
AND UPPER (b.fac_bookmark_naam) LIKE '%GENERIEK%'
|
||
AND UPPER (b.fac_bookmark_path) = 'APPL/PDA/MELDING.ASP'
|
||
AND INSTR (UPPER (fac_bookmark_query), 'STDM_KEY') = 0
|
||
AND g.alg_srtgebouw_key = sg.alg_srtgebouw_key(+)
|
||
AND g.alg_locatie_key = l.alg_locatie_key
|
||
UNION ALL -- Reserveerbare ruimtes 50=Gemeentehuis
|
||
SELECT 'Reserveer ruimte',
|
||
l.alg_locatie_omschrijving,
|
||
o.alg_gebouw_omschrijving,
|
||
o.alg_verdieping_omschrijving,
|
||
rr.res_ruimte_nr plaats,
|
||
rar.res_ruimte_key ruimte_key,
|
||
sr.alg_srtruimte_omschrijving,
|
||
NULL ins_discipline_omschrijving,
|
||
NULL ins_srtgroep_omschrijving,
|
||
NULL ins_srtdeel_key,
|
||
NULL ins_srtdeel_omschrijving,
|
||
NULL ins_srtdeel_code,
|
||
NULL ins_deel_key,
|
||
NULL ins_deel_omschrijving,
|
||
NULL ins_deel_upper,
|
||
b.fac_bookmark_id,
|
||
'RES_RUIMTE_KEY'
|
||
FROM fac_bookmark b,
|
||
res_ruimte rr,
|
||
( SELECT res_ruimte_key, MAX (alg_ruimte_key) alg_ruimte_key
|
||
FROM res_alg_ruimte
|
||
WHERE res_alg_ruimte_verwijder IS NULL
|
||
GROUP BY res_ruimte_key) rar,
|
||
alg_ruimte r,
|
||
alg_srtruimte sr,
|
||
ins_v_alg_overzicht o,
|
||
alg_locatie l
|
||
WHERE TRUNC (b.fac_bookmark_aanmaak) = TO_DATE ('10062013', 'ddmmyyyy')
|
||
AND UPPER (b.fac_bookmark_naam) LIKE '%GENERIEK%'
|
||
AND UPPER (b.fac_bookmark_path) = 'APPL/PDA/RESERVERINGEN.ASP'
|
||
AND rr.res_discipline_key != 62 -- OV kaart
|
||
AND rr.res_ruimte_key = rar.res_ruimte_key
|
||
AND rar.alg_ruimte_key = r.alg_ruimte_key
|
||
AND r.alg_srtruimte_key = sr.alg_srtruimte_key(+)
|
||
AND r.alg_ruimte_key = o.alg_onroerendgoed_keys
|
||
AND o.alg_onroerendgoed_type = 'R'
|
||
AND o.alg_locatie_key = l.alg_locatie_key
|
||
AND l.alg_locatie_key = 50;
|
||
*/
|
||
|
||
------ payload end ------
|
||
|
||
SET DEFINE OFF
|
||
BEGIN adm.systrackscriptId ('$Id$', 0); END;
|
||
/
|
||
|
||
COMMIT;
|
||
SET ECHO OFF
|
||
SPOOL OFF
|
||
SET DEFINE ON
|
||
PROMPT Logfile of this upgrade is: &fcltlogfile
|