2359 lines
93 KiB
MySQL
2359 lines
93 KiB
MySQL
--
|
||
-- $Id$
|
||
--
|
||
-- Script containing customer specific db-configuration for FMHN.
|
||
DEFINE thisfile = 'LOGI.SQL'
|
||
DEFINE dbuser = '^LOGI'
|
||
|
||
SET ECHO ON
|
||
SET DEFINE ON
|
||
COLUMN fcltlogfile NEW_VALUE fcltlogfile NOPRINT;
|
||
COLUMN fcltcusttxt NEW_VALUE fcltcusttxt NOPRINT;
|
||
WHENEVER SQLERROR CONTINUE;
|
||
SELECT adm.getscriptspoolfile('&thisfile') AS fcltlogfile FROM DUAL;
|
||
SPOOL &fcltlogfile
|
||
WHENEVER SQLERROR EXIT;
|
||
SELECT adm.checkscriptcust('&dbuser') AS fcltcusttxt FROM DUAL;
|
||
WHENEVER SQLERROR CONTINUE;
|
||
---------------------------------------
|
||
PROMPT &fcltcusttxt
|
||
---------------------------------------
|
||
SET DEFINE OFF
|
||
|
||
------ payload begin ------
|
||
|
||
CREATE OR REPLACE PROCEDURE logi_import_persoon (p_import_key IN NUMBER)
|
||
AS
|
||
v_errormsg VARCHAR2 (1000) := '';
|
||
oracle_err_num NUMBER;
|
||
oracle_err_mes VARCHAR2 (200);
|
||
BEGIN
|
||
|
||
-- Standaard import gebaseerd op ';' als 'fielddelimitor', dus eerst ','
|
||
-- door ';' vervangen (voorkennis: geen komma's tussen dubbele quotes en
|
||
-- anders jammer dan).
|
||
v_errormsg := 'Delimiter van komma naar puntkomma';
|
||
|
||
UPDATE fac_imp_file
|
||
SET fac_imp_file_line = REPLACE (fac_imp_file_line, ',', ';')
|
||
WHERE fac_import_key = p_import_key;
|
||
COMMIT;
|
||
|
||
v_errormsg := 'Generieke import';
|
||
|
||
-- De sequence array staat beschreven in PRS_PAC.SRC bij de prs.import_perslid procedure.
|
||
-- OUD: 'employeeID;sn;givenName;infix;uid;mail;orglevel7;orglevel7id;a1physicalDeliveryOfficeName%';
|
||
prs.import_perslid (
|
||
p_import_key,
|
||
'0;0;0;0;0;0;7;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',
|
||
'Member ID;Last Name;First Name;Infix;Groupinfra;Email Address;Department ID;Department Name;Location Description%');
|
||
|
||
v_errormsg := 'Functie + afdeling op vaste waarde';
|
||
|
||
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, 'Inleesproces medewerkers afgebroken!');
|
||
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
|
||
AND p.prs_perslid_verwijder IS NULL
|
||
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 upper(ud.fac_usrdata_code) = upper(lo.alg_locatie_code)
|
||
AND upper(ud.fac_usrdata_omschr) = upper
|
||
(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 upper(ud.fac_usrdata_code) = upper(lo.alg_locatie_code)
|
||
AND upper(ud.fac_usrdata_omschr) =
|
||
upper(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 upper(alg_gebouw_code) = upper(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 upper(alg_gebouw_code) = upper(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
|
||
oracle_err_num NUMBER;
|
||
oracle_err_mes VARCHAR2 (200);
|
||
v_errormsg VARCHAR2 (400);
|
||
v_count NUMBER;
|
||
|
||
-- 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 '\' -- ' tbv. opmaak
|
||
AND UPPER (p.prs_perslid_oslogin) =
|
||
UPPER (lp.prs_perslid_oslogin(+))
|
||
AND lp.prs_perslid_oslogin IS NULL
|
||
ORDER BY 2, 1;
|
||
BEGIN
|
||
SELECT COUNT ( * ) INTO v_count FROM fac_imp_perslid;
|
||
|
||
IF v_count < 1000
|
||
THEN
|
||
fac.imp_writelog (p_import_key, 'E', 'Het aantal te importeren personen is te klein (' || TO_CHAR (v_count) || ')', '');
|
||
RETURN;
|
||
END IF;
|
||
|
||
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);
|
||
COMMIT;
|
||
|
||
-- Dan worden de werkplekken beoordeeld, evt aangemaakt en bijgewerkt
|
||
logi_werkplek_persoon (p_import_key);
|
||
COMMIT;
|
||
|
||
DELETE FROM fac_imp_perslid;
|
||
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, 'Importproces medewerkers afgebroken!');
|
||
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;
|
||
|
||
-- View om werkplekken te reserveren. Onderscheid wordt gemaakt tussen reguliere werkplekken
|
||
-- en werkplekken in secure zones.
|
||
CREATE OR REPLACE VIEW logi_v_thema_deel_res_datum
|
||
(
|
||
fclt_f_datum,
|
||
ins_deel_key,
|
||
min_van,
|
||
max_tot,
|
||
waarde1,
|
||
waarde,
|
||
waarde3
|
||
)
|
||
AS
|
||
WITH
|
||
datums
|
||
AS
|
||
( SELECT TRUNC (SYSDATE) + LEVEL - 1 datum
|
||
FROM DUAL
|
||
CONNECT BY LEVEL <= 31)
|
||
SELECT datum
|
||
fclt_f_datum,
|
||
ins_deel_key,
|
||
MIN (res_rsv_deel_van)
|
||
min_van,
|
||
MAX (res_rsv_deel_tot)
|
||
max_tot,
|
||
CASE WHEN MAX (res_rsv_deel_tot) IS NULL
|
||
THEN DECODE (res_discipline_key, 2986, 0, 4) -- 2986 normale wp
|
||
ELSE 3 -- hele dag
|
||
END
|
||
waarde1,
|
||
CASE
|
||
WHEN MAX (res_rsv_deel_tot) IS NULL THEN DECODE (res_discipline_key, 2986, 0, 4) -- 2986 normale wp
|
||
WHEN TO_CHAR (MAX (res_rsv_deel_tot), 'HH24') <= 13 THEN 1 -- ochtend
|
||
WHEN TO_CHAR (MIN (res_rsv_deel_van), 'HH24') >= 12 THEN 2 -- middag
|
||
ELSE 3 -- hele dag
|
||
END
|
||
waarde,
|
||
COUNT (res_rsv_deel_tot) -- aantal reservering deze dag
|
||
waarde3
|
||
FROM (SELECT datums.datum,
|
||
res_ins_deel_key ins_deel_key,
|
||
res_rsv_deel_van,
|
||
res_rsv_deel_tot,
|
||
res_discipline_key
|
||
FROM res_v_aanwezigdeel r,
|
||
ins_deel d,
|
||
datums,
|
||
(SELECT datum,
|
||
res_deel_key,
|
||
res_rsv_deel_van,
|
||
res_rsv_deel_tot
|
||
FROM datums, res_v_aanwezigrsv_deel rrd
|
||
WHERE res_rsv_deel_van > TRUNC(SYSDATE) - 1 -- negeer alle irrelevante historie sowieso
|
||
AND datum + 1 >= res_rsv_deel_van
|
||
AND datum < res_rsv_deel_tot) blokkerend -- vandaag en nog niet afgelopen
|
||
WHERE r.res_deel_key = blokkerend.res_deel_key(+)
|
||
AND datums.datum = blokkerend.datum(+)
|
||
AND (r.res_deel_vervaldatum IS NULL or r.res_deel_vervaldatum > datums.datum)
|
||
AND d.ins_deel_key = r.res_ins_deel_key)
|
||
GROUP BY datum, ins_deel_key, res_discipline_key
|
||
ORDER BY datum, ins_deel_key;
|
||
|
||
-- Aangepaste view omdat men graag het label van het object wil zien als deze niet gereserveerd is.
|
||
CREATE OR REPLACE VIEW logi_v_label_deel_res_datum
|
||
(
|
||
fclt_f_datum,
|
||
ins_deel_key,
|
||
res_deel_omschrijving,
|
||
waarde1,
|
||
waarde,
|
||
waarde3,
|
||
waarde_html,
|
||
waarde_html2
|
||
)
|
||
AS
|
||
WITH
|
||
datums
|
||
AS
|
||
( SELECT TRUNC (SYSDATE) + LEVEL - 1 datum
|
||
FROM DUAL
|
||
CONNECT BY LEVEL <= 31)
|
||
SELECT datums.datum fclt_f_datum,
|
||
isd.res_ins_deel_key ins_deel_key,
|
||
res_deel_omschrijving,
|
||
CHR (10)
|
||
|| LISTAGG (
|
||
DECODE (
|
||
prs_perslid_naam_friendly,
|
||
NULL, '',
|
||
'[s40]'
|
||
|| prs_perslid_naam_friendly
|
||
|| ' ('
|
||
|| TO_CHAR (res_rsv_deel_van, 'HH24:MI')
|
||
|| '-'
|
||
|| DECODE (
|
||
TRUNC (res_rsv_deel_tot),
|
||
TRUNC (res_rsv_deel_van), TO_CHAR (
|
||
res_rsv_deel_tot,
|
||
'HH24:MI'),
|
||
TO_CHAR (res_rsv_deel_tot, 'DD-MM-YYYY HH24:MI'))
|
||
|| ')'),
|
||
CHR (10))
|
||
WITHIN GROUP (ORDER BY res_rsv_deel_van) waarde1,
|
||
CHR (10)
|
||
|| LISTAGG (
|
||
DECODE (
|
||
prs_perslid_naam_friendly,
|
||
NULL, '[s40]' || res_deel_omschrijving,
|
||
'[s40]'
|
||
|| TO_CHAR (res_rsv_deel_van, 'HH24:MI')
|
||
|| ' '
|
||
|| prs_perslid_naam_friendly),
|
||
CHR (10))
|
||
WITHIN GROUP (ORDER BY res_rsv_deel_van) waarde2,
|
||
CHR (10)
|
||
|| LISTAGG (
|
||
DECODE (prs_perslid_naam_friendly,
|
||
NULL, '',
|
||
'[s40]' || prs_perslid_naam_friendly),
|
||
CHR (10))
|
||
WITHIN GROUP (ORDER BY res_rsv_deel_van) waarde3,
|
||
LISTAGG (
|
||
DECODE (
|
||
prs_perslid_naam_friendly,
|
||
NULL, '',
|
||
'<span class="body">'
|
||
|| TO_CHAR (res_rsv_deel_van, 'HH24:MI')
|
||
|| ' '
|
||
|| prs_perslid_naam_friendly
|
||
|| '</span>'),
|
||
'<br>')
|
||
WITHIN GROUP (ORDER BY res_rsv_deel_van) waarde_html,
|
||
LISTAGG (
|
||
DECODE (
|
||
prs_perslid_naam_friendly,
|
||
NULL, '',
|
||
'<span class="body">'
|
||
|| prs_perslid_naam_friendly
|
||
|| '</span>'),
|
||
'<br>')
|
||
WITHIN GROUP (ORDER BY res_rsv_deel_van) waarde_html2
|
||
FROM res_v_aanwezigdeel isd,
|
||
datums,
|
||
(SELECT datum,
|
||
res_ins_deel_key,
|
||
prs_perslid_naam_friendly,
|
||
res_rsv_deel_van,
|
||
res_rsv_deel_tot
|
||
FROM res_v_aanwezigdeel r,
|
||
res_v_aanwezigrsv_deel rrd,
|
||
res_rsv_ruimte rrr,
|
||
prs_v_perslid_fullnames p,
|
||
datums
|
||
WHERE r.res_deel_key = rrd.res_deel_key
|
||
AND rrd.res_rsv_ruimte_key = rrr.res_rsv_ruimte_key
|
||
AND rrr.res_rsv_ruimte_host_key = p.prs_perslid_key
|
||
AND datum + 1 >= res_rsv_deel_van
|
||
AND datum < res_rsv_deel_tot) res -- Bezet
|
||
WHERE isd.res_ins_deel_key = res.res_ins_deel_key(+)
|
||
AND datums.datum = res.datum(+)
|
||
GROUP BY datums.datum, isd.res_ins_deel_key, res_deel_omschrijving;
|
||
|
||
-- Label voor de ruimte. Om het ruimtenummer groter te tonen.
|
||
CREATE OR REPLACE VIEW logi_v_thema_ruimte_nr
|
||
AS
|
||
SELECT alg_ruimte_key, alg_ruimte_nr waarde FROM alg_ruimte;
|
||
|
||
|
||
-- 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;
|
||
*/
|
||
-- LOGI#67519: Rapportage met alle toekomstige bezoekers geregistreerd in LOGI
|
||
-- (incl. laatste mutatiedatum) tbv. uurlijkse CUST03-notijob naar
|
||
-- externe (HTC-)receptie.
|
||
CREATE OR REPLACE VIEW logi_v_rap_bez2receptie
|
||
(
|
||
hide_f_sortering,
|
||
locatiecode,
|
||
locatie,
|
||
gebouwcode,
|
||
gebouwnaam,
|
||
datum,
|
||
van,
|
||
tot,
|
||
afspraaknr,
|
||
bezoeker,
|
||
bedrijf,
|
||
parkeerplaats,
|
||
contactpers,
|
||
contactpers_telnr,
|
||
bezoek_voor,
|
||
bezoek_voor_telnr,
|
||
ruimte,
|
||
actie,
|
||
omschrijving,
|
||
opmerking,
|
||
badgenr,
|
||
bez_afspraak_key,
|
||
extra_key, -- Moet zo heten?
|
||
last_mut,
|
||
teno,
|
||
geno,
|
||
noti_oms
|
||
)
|
||
AS
|
||
SELECT l.alg_locatie_code || TO_CHAR (a.bez_afspraak_datum, 'yymmddhh24miss') || TO_CHAR (a.bez_afspraak_key) || b.bez_afspraak_naam sortering,
|
||
l.alg_locatie_code locatiecode,
|
||
l.alg_locatie_omschrijving locatie,
|
||
g.alg_gebouw_code gebouwcode,
|
||
g.alg_gebouw_naam gebouwnaam,
|
||
a.bez_afspraak_datum datum,
|
||
a.bez_afspraak_datum van,
|
||
a.bez_afspraak_eind tot,
|
||
TO_CHAR (a.bez_afspraak_key) afspraaknr,
|
||
b.bez_afspraak_naam bezoeker,
|
||
b.bez_afspraak_bedrijf bedrijf,
|
||
--rd.res_deel_omschrijving parkeerplaats,
|
||
DECODE (rd.res_deel_key, NULL, NULL, 'X') parkeerplaats,
|
||
pfc.prs_perslid_naam_full contactpers,
|
||
pc.prs_perslid_telefoonnr contactpers_telnr,
|
||
COALESCE (pfh.prs_perslid_naam_full, a.bez_afspraak_gastheer) bezoek_voor,
|
||
DECODE (pfh.prs_perslid_key, NULL, a.bez_afspraak_telefoonnr, ph.prs_perslid_telefoonnr) bezoek_voor_telnr,
|
||
COALESCE (rr.res_ruimte_nr, pa.alg_plaatsaanduiding) ruimte,
|
||
act.bez_actie_omschrijving actie,
|
||
a.bez_afspraak_opmerking oms,
|
||
b.bez_bezoekers_opmerking opm,
|
||
b.bez_bezoekers_pasnr badgenr,
|
||
a.bez_afspraak_key,
|
||
a.alg_locatie_key extra_key,
|
||
t.last_mut,
|
||
DECODE (SIGN (t.last_mut - (nj.fac_notificatie_job_nextrun - (nj.fac_notificatie_job_interval / 24))),
|
||
-1, NULL,
|
||
sn.fac_srtnotificatie_code)
|
||
teno, -- Kolom gevuld met 'CUST03', dan te notificeren regel!
|
||
DECODE (SIGN (t.last_mut - (nj.fac_notificatie_job_lastrun - (nj.fac_notificatie_job_interval / 24))),
|
||
-1, NULL,
|
||
sn.fac_srtnotificatie_code)
|
||
geno, -- Kolom gevuld met 'CUST03', dan genotificeerde regel!
|
||
sn.fac_srtnotificatie_oms noti_oms
|
||
FROM bez_afspraak a,
|
||
bez_actie act,
|
||
bez_bezoekers b,
|
||
alg_locatie l,
|
||
res_rsv_ruimte rrr,
|
||
res_ruimte_opstelling rro,
|
||
res_ruimte rr,
|
||
alg_v_allonroerendgoed aog,
|
||
alg_gebouw g,
|
||
alg_v_plaatsaanduiding_all pa,
|
||
res_rsv_deel rrd,
|
||
res_deel rd,
|
||
prs_perslid pc,
|
||
prs_v_perslid_fullnames_all pfc,
|
||
prs_perslid ph,
|
||
prs_v_perslid_fullnames_all pfh,
|
||
( SELECT fac_tracking_refkey, MAX (fac_tracking_datum) last_mut
|
||
FROM fac_tracking
|
||
WHERE fac_srtnotificatie_key IN (14, 361) -- BEZMUT/BEZUPD
|
||
GROUP BY fac_tracking_refkey) t,
|
||
fac_srtnotificatie sn,
|
||
fac_notificatie_job nj
|
||
WHERE a.bez_afspraak_datum > TRUNC (SYSDATE) -- Alle toekomstige bezoekers
|
||
AND a.bez_actie_key = act.bez_actie_key(+)
|
||
AND a.bez_afspraak_key = b.bez_afspraak_key
|
||
AND a.alg_locatie_key = l.alg_locatie_key(+)
|
||
AND a.res_rsv_ruimte_key = rrr.res_rsv_ruimte_key(+)
|
||
AND rrr.res_ruimte_opstel_key = rro.res_ruimte_opstel_key(+)
|
||
AND rro.res_ruimte_key = rr.res_ruimte_key(+)
|
||
AND a.alg_onrgoed_keys = aog.alg_onroerendgoed_keys(+)
|
||
AND aog.alg_gebouw_key = g.alg_gebouw_key(+)
|
||
AND aog.alg_ruimte_key = pa.alg_onroerendgoed_keys(+)
|
||
AND b.bez_bezoekers_key = rrd.bez_bezoekers_key(+)
|
||
AND rrd.res_deel_key = rd.res_deel_key(+)
|
||
AND a.bez_afspraak_contact_key = pc.prs_perslid_key(+)
|
||
AND pc.prs_perslid_key = pfc.prs_perslid_key(+)
|
||
AND a.bez_afspraak_host_key = ph.prs_perslid_key(+)
|
||
AND ph.prs_perslid_key = pfh.prs_perslid_key(+)
|
||
AND a.bez_afspraak_key = t.fac_tracking_refkey(+)
|
||
AND sn.fac_srtnotificatie_code = 'CUST03'
|
||
AND UPPER (nj.fac_notificatie_job_view) = 'LOGI_V_NOTI_BEZ2RECEPTIE';
|
||
|
||
-- LOGI#67519: CUST03-notijob van rapportage met bezoekers waarvan de afspraak
|
||
-- in het afgelopen uur is gewijzigd naar externe (HTC-)receptie.
|
||
CREATE OR REPLACE VIEW logi_v_noti_bez2receptie
|
||
(
|
||
code,
|
||
sender,
|
||
receiver,
|
||
text,
|
||
key,
|
||
xkey,
|
||
xemail,
|
||
xmobile
|
||
)
|
||
AS
|
||
SELECT DISTINCT v.teno,
|
||
NULL,
|
||
NULL,
|
||
REPLACE (v.noti_oms, '##LOC##', v.locatie),
|
||
r.fac_usrrap_key,
|
||
v.extra_key,
|
||
'reception.htc5@hightechcampus.com', -- Hard-coded
|
||
NULL
|
||
FROM logi_v_rap_bez2receptie v, fac_usrrap r
|
||
WHERE v.extra_key = 1381 -- HTC/High Tech Campus Eindhoven
|
||
AND v.teno = 'CUST03'
|
||
--AND v.tot < SYSDATE -- Geen notificaties voor afspraken in verleden?
|
||
AND UPPER (r.fac_usrrap_view_name) = 'LOGI_V_RAP_BEZ2RECEPTIE';
|
||
|
||
------ 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
|