Files
Customer/PZEE/PZEE.sql
Suzan Wiegerinck 8982c00f47 PZEE#80593 Wijziging procedure verwerken kostenplaatsen/import
svn path=/Customer/trunk/; revision=63032
2023-12-21 09:33:31 +00:00

1954 lines
76 KiB
MySQL
Raw Blame History

--
-- $Id$
--
-- Script containing customer specific sql statements for the FACILITOR database
--
DEFINE thisfile = 'PZEE.SQL'
DEFINE dbuser = 'PZEE'
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 PACKAGE PZEE
AS
PROCEDURE prs_mandaten;
END;
/
CREATE OR REPLACE PACKAGE BODY PZEE
AS
PROCEDURE prs_mandaten
AS
oracle_err_num NUMBER;
oracle_err_mes VARCHAR2 (200);
v_errormsg VARCHAR2 (200);
CURSOR c IS
SELECT p.prs_perslid_key
FROM prs_perslid p
WHERE p.prs_perslid_verwijder IS NULL
AND NOT EXISTS
(SELECT *
FROM prs_perslidkostenplaats m
WHERE m.prs_perslid_key = p.prs_perslid_key);
BEGIN
FOR rec IN C
LOOP
INSERT INTO prs_perslidkostenplaats (
prs_perslid_key,
prs_perslidkostenplaats_boeken,
prs_perslidkostenplaats_aanmk)
VALUES (rec.prs_perslid_key,
1,
SYSDATE);
COMMIT;
END LOOP;
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.writelog ('Mandatering medewerker',
'E',
v_errormsg,
'');
END;
END;
/
CREATE OR REPLACE PROCEDURE pzee_import_perslid (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;10;2;3;5;'
|| '4;0;0;0;0;6;7;9;0;1;'
|| '10;8;0;0;0;0;0;0;0;0;'
|| '0;0;0;0;0;0;0;0;0;0;'
|| '0;0;0;0;0;0',
---"Personeelsnummer";"Achternaam";"Voorvoegsel";"Roepnaam";"TelefoonnummerVast";"TelefoonnummerMobiel";"Netwerknaam";"Email";"OrganisatieEenheidCode"
'"Personeelsnummer";"Achternaam";"Voorvoegsel";"Voorletters";"Roepnaam";"TelefoonnummerVast";"TelefoonnummerMobiel";"Netwerknaam";"Email";"OrganisatieEenheidCode"%');
COMMIT;
-- Personeelsleden die op afdelingsniveau <20>ZLD <20> Zeeland<6E> zitten zijn externen
UPDATE fac_imp_perslid p
SET p.prs_afdeling_naam = 'EXT'
WHERE UPPER (p.prs_afdeling_naam) = 'ZLD';
-- functie wordt niet gebruikt, dus deze wordt altijd 'onbekend'
UPDATE fac_imp_perslid
SET prs_srtperslid_omschrijving = 'Onbekend';
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 pzee_import_perslid;
/
CREATE OR REPLACE PROCEDURE pzee_update_perslid (p_import_key IN NUMBER)
IS
v_count NUMBER;
CURSOR c_perslid IS
SELECT *
FROM fac_imp_perslid
WHERE prs_perslid_key IS NOT NULL;
-- Alle medewerkers van de provincie verwijderen die niet meer in import bestand voorkomen.
CURSOR c_del IS
SELECT p.prs_perslid_key,
p.prs_perslid_email,
pf.prs_perslid_naam_full
FROM prs_perslid p, prs_v_perslid_fullnames_all pf
WHERE pf.prs_perslid_key = p.prs_perslid_key
AND p.prs_perslid_email IS NOT NULL
AND p.prs_perslid_verwijder IS NULL
AND p.prs_perslid_oslogin NOT LIKE '%\_%' ESCAPE '\'
AND NOT EXISTS
(SELECT *
FROM fac_imp_perslid i
WHERE UPPER (i.prs_perslid_email) =
UPPER (p.prs_perslid_email));
BEGIN
-- generic update
SELECT COUNT (*) INTO v_count FROM fac_imp_perslid;
IF v_count < 750
THEN
fac.imp_writelog (
p_import_key,
'E',
'Het aantal te importeren personen is te klein ('
|| TO_CHAR (v_count)
|| ')',
'Zie Specificatie');
RETURN;
END IF;
-- Match op 'e-mail'
prs.update_perslid (p_import_key, 'EMAIL', NULL);
COMMIT;
-- Verwijder personen die niet meer in de import voorkomen.
FOR rec IN c_del
LOOP
BEGIN
prs.delete_perslid (p_import_key, rec.prs_perslid_key);
END;
END LOOP;
--- En dan zorgen we ook even dat alle mandaten goed staan voor eventuele nieuwe personen
pzee.prs_mandaten;
COMMIT;
END pzee_update_perslid;
/
CREATE OR REPLACE PROCEDURE pzee_import_kpl (p_import_key IN NUMBER)
IS
c_fielddelimitor VARCHAR2 (1) := ';';
c_headerline VARCHAR (1000)
-- := 'Achternaam;E-mail adres;Extern emailadres;My Nyenrode Login;Studentnummer;Geboortedatum;Geslacht;Voorletters;Roepnaam;Voorvoegsels;Mobiel telefoonnummer;Telefoonnummer;Opleiding;Cohort';
:= 'Kostenplaatstype ID;Kostenplaats type;Kostenplaats ID;Kostenplaatsnaam;Kostenplaats ERP ID;Kostenplaats online;Toegangsrecht rol ID;Rol;Gebruiker login;Gebruikernaam;Status gebruiker;Gebruiker verwijderd?';
v_newline VARCHAR2 (1000); -- Input line
v_header VARCHAR2 (1000);
v_aanduiding VARCHAR2 (200);
v_errorhint VARCHAR2 (1000);
v_errormsg VARCHAR2 (1000);
oracle_err_num NUMBER;
oracle_err_mes VARCHAR2 (200);
header_is_valid NUMBER := 0;
v_ongeldig NUMBER (1);
v_count_tot NUMBER (10);
v_count_import NUMBER (10);
v_count NUMBER;
-- De importvelden:
v_kostenplaatstype_id VARCHAR2 (256);
v_kostenplaats_type VARCHAR2 (256);
v_kostenplaats_id VARCHAR2 (256);
v_kostenplaatsnaam VARCHAR2 (256);
v_kostenplaats_erp_id VARCHAR2 (256);
v_kostenplaats_online VARCHAR2 (256);
v_toegangsrecht_rol_id VARCHAR2 (256);
v_rol VARCHAR2 (256);
v_gebruiker_login VARCHAR2 (256);
v_gebruikernaam VARCHAR2 (256);
v_status_gebruiker VARCHAR2 (256);
v_gebruiker_verwijderd VARCHAR2 (256);
CURSOR c1 IS
SELECT *
FROM fac_imp_file
WHERE fac_import_key = p_import_key
ORDER BY fac_imp_file_index;
BEGIN
DELETE FROM fac_imp_kpn;
COMMIT;
v_count_tot := 0;
v_count_import := 0;
FOR rec1 IN c1
LOOP
BEGIN
v_newline := rec1.fac_imp_file_line;
v_header := v_newline;
v_aanduiding := '';
v_errorhint := 'Fout bij opvragen te importeren rij';
v_ongeldig := 0;
-- Lees alle veldwaarden
fac.imp_getfield (v_newline,
c_fielddelimitor,
v_kostenplaatstype_id);
fac.imp_getfield (v_newline,
c_fielddelimitor,
v_kostenplaats_type);
fac.imp_getfield (v_newline, c_fielddelimitor, v_kostenplaats_id);
fac.imp_getfield (v_newline,
c_fielddelimitor,
v_kostenplaatsnaam);
fac.imp_getfield (v_newline,
c_fielddelimitor,
v_kostenplaats_erp_id);
fac.imp_getfield (v_newline,
c_fielddelimitor,
v_kostenplaats_online);
fac.imp_getfield (v_newline,
c_fielddelimitor,
v_toegangsrecht_rol_id);
fac.imp_getfield (v_newline, c_fielddelimitor, v_rol);
fac.imp_getfield (v_newline, c_fielddelimitor, v_gebruiker_login);
fac.imp_getfield (v_newline, c_fielddelimitor, v_gebruikernaam);
fac.imp_getfield (v_newline,
c_fielddelimitor,
v_status_gebruiker);
fac.imp_getfield (v_newline,
c_fielddelimitor,
v_gebruiker_verwijderd);
v_aanduiding :=
'[' || v_kostenplaats_id || '|' || v_kostenplaatsnaam || '] ';
-- Ik controleer of ik een geldige header heb, dat is: in de juiste kolommen
-- de juiste kolomkop. Ik controleer daarbij ALLE kolommen!
-- Ik negeer alles totdat ik een geldige header ben gepasseerd.
IF (header_is_valid = 0)
THEN
IF UPPER (v_header) LIKE UPPER (c_headerline || '%')
THEN
header_is_valid := 1;
END IF;
ELSE
v_count_tot := v_count_tot + 1;
-- Insert geformatteerde import record
IF header_is_valid = 1
THEN
BEGIN
v_errorhint :=
'Fout bij toevoegen regel aan importtabel fac_imp_kpn';
INSERT INTO fac_imp_kpn (
prs_kostenplaats_nr,
prs_kostenplaats_omschrijving,
prs_kostenplaats_module,
prs_kostenplaats_externnr ---- deze misbruiken we voor de budgehouder
)
VALUES (
v_kostenplaats_id,
v_kostenplaatsnaam,
DECODE (v_kostenplaats_type, ----ALG = Gebouwkostenplaats, PRS = Afdelingskostenplaats, PRJ = Projectkostenplaats
'IBCF', 'PRJ',
'IBTW', 'PRJ',
'IKST', 'PRJ',
'VB0', 'PRJ'),
v_gebruiker_login);
COMMIT;
v_count_import := v_count_import + 1;
EXCEPTION
WHEN OTHERS
THEN
oracle_err_num := SQLCODE;
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
v_errormsg :=
v_errorhint
|| ' ORACLE (error '
|| oracle_err_num
|| '/'
|| oracle_err_mes
|| ')';
fac.imp_writelog (
p_import_key,
'W',
v_aanduiding || v_errormsg,
'Ingelezen regel kan niet worden weggeschreven!');
COMMIT;
END;
END IF;
END IF; -- header_valid
END;
END LOOP;
--- nu even de juiste budgethouder op basis van het emailadres bepalen
UPDATE fac_imp_kpn k
SET k.prs_perslid_key =
(SELECT p.prs_perslid_key
FROM prs_perslid p
WHERE UPPER (k.prs_kostenplaats_externnr) =
UPPER (p.prs_perslid_email));
--- en de tijdelijke veldwaarde opruimen
UPDATE fac_imp_kpn
SET prs_kostenplaats_externnr = NULL
WHERE prs_kostenplaats_externnr IS NOT NULL;
IF (header_is_valid = 1)
THEN
fac.imp_writelog (
p_import_key,
'S',
'Kostenplaatsen: aantal ingelezen regels: '
|| TO_CHAR (v_count_tot),
'');
fac.imp_writelog (
p_import_key,
'S',
'Persoon: aantal ongeldige importregels: '
|| TO_CHAR (v_count_tot - v_count_import),
'');
ELSE
fac.imp_writelog (
p_import_key,
'E',
'Ongeldige headerregel!',
SUBSTR ('Moet zijn: "' || c_headerline || '"', 1, 1000));
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_aanduiding || v_errormsg,
v_errorhint);
COMMIT;
END pzee_import_kpl;
/
CREATE OR REPLACE PROCEDURE pzee_update_kpl (p_import_key IN NUMBER)
AS
CURSOR c_del IS
SELECT kp.prs_kostenplaats_key
FROM prs_kostenplaats kp
WHERE kp.prs_kostenplaats_verwijder IS NULL
AND NOT EXISTS
(SELECT *
FROM fac_imp_kpn ki
WHERE ki.prs_kostenplaats_nr =
kp.prs_kostenplaats_nr);
BEGIN
fac_update_kpn (p_import_key);
-- PZEE#80593 Wijziging procedure verwerken kostenplaatsen/import
FOR rec IN c_del
LOOP
BEGIN
UPDATE prs_kostenplaats kp
SET kp.prs_kostenplaats_eind = SYSDATE
WHERE kp.prs_kostenplaats_key = rec.prs_kostenplaats_key;
END;
END LOOP;
-- dan zorgen we vervolgens ook even dat alle mandaten goed staan
pzee.prs_mandaten;
END pzee_update_kpl;
/
CREATE OR REPLACE VIEW PZEE_V_THEMA_EQUIPM
(
INS_DEEL_KEY,
ALG_RUIMTE_KEY,
WAARDE
)
AS
SELECT ins_deel_key,
alg_ruimte_key,
DECODE ((SELECT COUNT (*)
FROM mld_melding m, mld_melding_object mo
WHERE m.mld_melding_key = mo.mld_melding_key
AND mo.ins_deel_key = d.ins_deel_key
AND mld_melding_status IN (0, -- Bij frontoffice
2, -- Nieuw
3, -- Te accepteren
4, -- In behandeling
7, -- Uitgegeven
99)), -- Niet opgelost
0, 'Normaal',
'Defect') ins_status
FROM ins_v_deel_gegevens d;
CREATE OR REPLACE VIEW PZEE_V_RAP_INFOBORD
(
RESERVERING,
AKTIEF,
DATUM,
DATUM_TOT,
DAG_VAN,
TIJD_VAN,
DAG_TOT,
TIJD_TOT,
RUIMTE,
RUIMTENR,
GASTHEER,
GASTHEER_NAAM,
AANVRAGER,
AANVRAGER_NAAM,
OMSCHRIJVING,
LOCATIE_OMSCHRIJVING,
GEBOUW_CODE,
GEBOUW,
VERDIEPING_OMSCHRIJVING,
VERDIEPING_VOLGNR,
TITEL
)
AS
SELECT res_reservering_key || '/' || rrr.res_rsv_ruimte_volgnr
reservering,
(CASE
WHEN res_rsv_ruimte_van > SYSDATE THEN 'expected'
WHEN res_rsv_ruimte_tot < SYSDATE THEN 'passed'
ELSE 'active'
END)
aktief,
res_rsv_ruimte_van
datum,
res_rsv_ruimte_tot
datum_tot,
TO_CHAR (res_rsv_ruimte_van, 'dd-mm-yyyy')
dag_van,
TO_CHAR (res_rsv_ruimte_van, 'hh24:mi')
tijd_van,
TO_CHAR (res_rsv_ruimte_van, 'dd-mm-yyyy')
dag_van,
TO_CHAR (res_rsv_ruimte_tot, 'hh24:mi')
tijd_tot,
res_ruimte_nr
ruimte,
SUBSTR (res_ruimte_nr, 1, 4)
ruimtenr,
gastheer.prs_perslid_naam_full
gastheer,
gastheer.prs_perslid_naam_friendly
gastheer_naam,
aanvrager.prs_perslid_naam_full,
aanvrager.prs_perslid_naam_friendly
aanvrager_naam,
res_rsv_ruimte_omschrijving
omschrijving,
l.alg_locatie_omschrijving
locatie_omschrijving,
g.alg_gebouw_code
gebouw_code,
g.alg_gebouw_naam
gebouw,
v.alg_verdieping_omschrijving
verdieping_omschrijving,
v.alg_verdieping_volgnr
verdieping_volgnr,
titel.titel
FROM res_v_aanwezigrsv_ruimte rrr,
res_ruimte_opstelling rro,
prs_v_perslid_fullnames aanvrager,
prs_v_perslid_fullnames gastheer,
res_v_res_ruimte_gegevens rrg,
alg_locatie l,
alg_gebouw g,
alg_verdieping v,
res_status_fo sf,
res_discipline rd,
(SELECT res_rsv_ruimte_key,
ud.fac_usrdata_omschr weergeven,
ud.fac_usrdata_key
FROM res_kenmerkwaarde kw,
res_kenmerk k,
res_srtkenmerk sk,
fac_usrdata ud,
fac_usrtab ut
WHERE kw.res_kenmerk_key = k.res_kenmerk_key
AND k.res_srtkenmerk_key = sk.res_srtkenmerk_key
AND fac.safe_to_number (kw.res_kenmerkreservering_waarde) =
ud.fac_usrdata_key
AND ud.fac_usrtab_key = ut.fac_usrtab_key
AND sk.res_srtkenmerk_key = 41
AND ut.fac_usrtab_key = 202) weergeven,
(SELECT kw.res_rsv_ruimte_key,
kw.res_kenmerkreservering_waarde titel
FROM res_kenmerkwaarde kw, res_kenmerk k
WHERE kw.res_kenmerk_key = k.res_kenmerk_key
AND k.res_kenmerk_key = 63) titel
WHERE 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 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 rrg.res_discipline_key = rd.ins_discipline_key
AND weergeven.res_rsv_ruimte_key(+) = rrr.res_rsv_ruimte_key
AND titel.res_rsv_ruimte_key(+) = rrr.res_rsv_ruimte_key
AND weergeven.fac_usrdata_key = 181;
CREATE OR REPLACE VIEW pzee_v_rap_bruikleenovk
(
datum,
perslid_key,
perslid_voorletters,
perslid_voornaam,
perslid_voorletter,
perslid_naam,
perslid_tussenvoegsel,
perslid_achternaam,
personeelsnr,
objectsoort,
object_id,
object_omschrijving,
serienummer,
selectie
)
AS
SELECT TO_CHAR (SYSDATE, 'dd-mm-yyyy'),
p.prs_perslid_key,
p.prs_perslid_voorletters,
p.prs_perslid_voornaam,
SUBSTR (p.prs_perslid_voornaam, 1, 1) || '.' voorletter,
REPLACE (p.prs_perslid_naam, 'INACTIEF:'),
p.prs_perslid_tussenvoegsel,
CASE
WHEN p.prs_perslid_tussenvoegsel IS NOT NULL
THEN
REPLACE (p.prs_perslid_naam, 'INACTIEF:') || ', ' || p.prs_perslid_tussenvoegsel
ELSE
REPLACE (p.prs_perslid_naam, 'INACTIEF:')
END AS achternaam,
p.prs_perslid_nr,
sd.ins_srtdeel_omschrijving,
d.ins_deel_omschrijving,
d.ins_deel_opmerking,
sn.serienummer,
s.selectie
FROM ins_deel d,
prs_perslid p,
ins_srtdeel sd,
(SELECT kd.ins_deel_key, kd.ins_kenmerkdeel_waarde serienummer
FROM ins_srtkenmerk sk, ins_kenmerk k, ins_kenmerkdeel kd
WHERE sk.ins_srtkenmerk_key = 23
AND k.ins_srtkenmerk_key = sk.ins_srtkenmerk_key
AND kd.ins_kenmerk_key = k.ins_kenmerk_key
AND kd.ins_kenmerkdeel_verwijder IS NULL) sn,
(SELECT DECODE (unpivot_row,
1, 'Bruikleenovereenkomst',
2, 'Bruikleenovereenkomst ambtsdrager') AS selectie
FROM DUAL,
( SELECT LEVEL AS unpivot_row
FROM DUAL
CONNECT BY LEVEL <= 2)) s
WHERE d.ins_alg_ruimte_type = 'P'
AND d.ins_alg_ruimte_key = p.prs_perslid_key
AND d.ins_srtdeel_key = sd.ins_srtdeel_key
AND sn.ins_deel_key(+) = d.ins_deel_key
AND d.ins_deel_verwijder IS NULL
AND (d.ins_deel_vervaldatum IS NULL OR d.ins_deel_vervaldatum > TRUNC(SYSDATE))
AND d.ins_deel_actief = 1
UNION ALL
SELECT TO_CHAR (SYSDATE, 'dd-mm-yyyy'),
p.prs_perslid_key,
p.prs_perslid_voorletters,
SUBSTR (p.prs_perslid_voornaam, 1, 1) || '.' voorletter,
p.prs_perslid_voornaam,
REPLACE (p.prs_perslid_naam, 'INACTIEF:'),
p.prs_perslid_tussenvoegsel,
CASE
WHEN p.prs_perslid_tussenvoegsel IS NOT NULL
THEN
REPLACE (p.prs_perslid_naam, 'INACTIEF:') || ', ' || p.prs_perslid_tussenvoegsel
ELSE
REPLACE (p.prs_perslid_naam, 'INACTIEF:')
END AS achternaam,
p.prs_perslid_nr,
sd.ins_srtdeel_omschrijving,
d.ins_deel_omschrijving,
d.ins_deel_opmerking,
sn.serienummer,
s.selectie
FROM ins_deel d,
prs_perslid p,
ins_srtdeel sd,
(SELECT kd.ins_deel_key, kd.ins_kenmerkdeel_waarde serienummer
FROM ins_srtkenmerk sk, ins_kenmerk k, ins_kenmerkdeel kd
WHERE sk.ins_srtkenmerk_key = 23
AND k.ins_srtkenmerk_key = sk.ins_srtkenmerk_key
AND kd.ins_kenmerk_key = k.ins_kenmerk_key
AND kd.ins_kenmerkdeel_verwijder IS NULL) sn,
(SELECT DECODE (unpivot_row,
1, 'Bruikleenovereenkomst',
2, 'Bruikleenovereenkomst ambtsdrager') AS selectie
FROM DUAL,
( SELECT LEVEL AS unpivot_row
FROM DUAL
CONNECT BY LEVEL <= 2)) s
WHERE d.ins_alg_ruimte_type_org = 'P'
AND d.ins_alg_ruimte_key_org = p.prs_perslid_key
AND d.ins_srtdeel_key = sd.ins_srtdeel_key
AND sn.ins_deel_key(+) = d.ins_deel_key
AND d.ins_deel_verwijder IS NULL
AND (d.ins_deel_vervaldatum IS NULL OR d.ins_deel_vervaldatum > TRUNC(SYSDATE))
AND d.ins_deel_actief = 1;
CREATE OR REPLACE VIEW pzee_v_rap_vrijwaring
(
datum,
perslid_key,
perslid_voorletters,
perslid_voornaam,
perslid_voorletter,
perslid_naam,
perslid_achternaam,
personeelsnr,
objectsoort,
object_id,
object_omschrijving,
serienummer,
selectie
)
AS
SELECT TO_CHAR (SYSDATE, 'dd-mm-yyyy'),
p.prs_perslid_key,
p.prs_perslid_voorletters,
p.prs_perslid_voornaam,
SUBSTR (p.prs_perslid_voornaam, 1, 1) || '.' voorletter,
p.prs_perslid_voorletters
|| ' '
|| CASE
WHEN p.prs_perslid_tussenvoegsel IS NOT NULL
THEN
p.prs_perslid_tussenvoegsel
|| ' '
|| REPLACE (p.prs_perslid_naam, 'INACTIEF:')
ELSE
REPLACE (p.prs_perslid_naam, 'INACTIEF:')
END naam_full,
CASE
WHEN p.prs_perslid_tussenvoegsel IS NOT NULL
THEN
REPLACE (p.prs_perslid_naam, 'INACTIEF:')
|| ', '
|| p.prs_perslid_tussenvoegsel
ELSE
REPLACE (p.prs_perslid_naam, 'INACTIEF:')
END AS achternaam,
p.prs_perslid_nr,
sd.ins_srtdeel_omschrijving,
d.ins_deel_omschrijving,
d.ins_deel_opmerking,
sn.serienummer,
s.selectie
FROM ins_deel d,
prs_perslid p,
ins_srtdeel sd,
(SELECT kd.ins_deel_key, kd.ins_kenmerkdeel_waarde serienummer
FROM ins_srtkenmerk sk, ins_kenmerk k, ins_kenmerkdeel kd
WHERE sk.ins_srtkenmerk_key = 23
AND k.ins_srtkenmerk_key = sk.ins_srtkenmerk_key
AND kd.ins_kenmerk_key = k.ins_kenmerk_key
AND kd.ins_kenmerkdeel_verwijder IS NULL) sn,
(SELECT DECODE (unpivot_row,
1, 'Vrijwaring',
2, 'Vrijwaring ambtsdrager') AS selectie
FROM DUAL,
( SELECT LEVEL AS unpivot_row
FROM DUAL
CONNECT BY LEVEL <= 2)) s
WHERE d.ins_alg_ruimte_type = 'P'
AND d.ins_alg_ruimte_key = p.prs_perslid_key
AND d.ins_srtdeel_key = sd.ins_srtdeel_key
AND sn.ins_deel_key(+) = d.ins_deel_key
AND d.ins_deel_verwijder IS NULL
AND ( d.ins_deel_vervaldatum IS NULL
OR d.ins_deel_vervaldatum > TRUNC (SYSDATE))
AND d.ins_deel_actief = 1
UNION ALL
SELECT TO_CHAR (SYSDATE, 'dd-mm-yyyy'),
p.prs_perslid_key,
p.prs_perslid_voorletters,
p.prs_perslid_voornaam,
SUBSTR (p.prs_perslid_voornaam, 1, 1) || '.' voorletter,
p.prs_perslid_voorletters
|| ' '
|| CASE
WHEN p.prs_perslid_tussenvoegsel IS NOT NULL
THEN
p.prs_perslid_tussenvoegsel
|| ' '
|| REPLACE (p.prs_perslid_naam, 'INACTIEF:')
ELSE
REPLACE (p.prs_perslid_naam, 'INACTIEF:')
END naam_full,
CASE
WHEN p.prs_perslid_tussenvoegsel IS NOT NULL
THEN
REPLACE (p.prs_perslid_naam, 'INACTIEF:')
|| ', '
|| p.prs_perslid_tussenvoegsel
ELSE
REPLACE (p.prs_perslid_naam, 'INACTIEF:')
END AS achternaam,
p.prs_perslid_nr,
sd.ins_srtdeel_omschrijving,
d.ins_deel_omschrijving,
d.ins_deel_opmerking,
sn.serienummer,
s.selectie
FROM ins_deel d,
prs_perslid p,
ins_srtdeel sd,
(SELECT kd.ins_deel_key, kd.ins_kenmerkdeel_waarde serienummer
FROM ins_srtkenmerk sk, ins_kenmerk k, ins_kenmerkdeel kd
WHERE sk.ins_srtkenmerk_key = 23
AND k.ins_srtkenmerk_key = sk.ins_srtkenmerk_key
AND kd.ins_kenmerk_key = k.ins_kenmerk_key
AND kd.ins_kenmerkdeel_verwijder IS NULL) sn,
(SELECT DECODE (unpivot_row,
1, 'vrijwaring',
2, 'vrijwaring ambtsdrager') AS selectie
FROM DUAL,
( SELECT LEVEL AS unpivot_row
FROM DUAL
CONNECT BY LEVEL <= 2)) s
WHERE d.ins_alg_ruimte_type_org = 'P'
AND d.ins_alg_ruimte_key_org = p.prs_perslid_key
AND d.ins_srtdeel_key = sd.ins_srtdeel_key
AND sn.ins_deel_key(+) = d.ins_deel_key
AND d.ins_deel_verwijder IS NULL
AND ( d.ins_deel_vervaldatum IS NULL
OR d.ins_deel_vervaldatum > TRUNC (SYSDATE))
AND d.ins_deel_actief = 1;
CREATE OR REPLACE VIEW PZEE_RAP_KALENDER_OMBOUW
(
USER_KEY,
TITLE,
VAN,
TOT,
ITEM_KEY,
COLOR,
TEXTCOLOR,
URL
)
AS
SELECT DISTINCT
NULL user_key,
r.alg_ruimte_omschrijving title,
fac.safe_to_date (
TO_CHAR (mld_melding_einddatum, 'DD-MM-YYYY') || ' ' || tijd,
' dd-mm-yyyy HH24:mi:ss') van,
mld_melding_einddatum tot,
m.mld_melding_key item_key,
CASE
WHEN s.mld_statuses_key <> 5 THEN '#fc0303'
ELSE '#008000'
END color,
'#FFFFFF' textcolor,
'?u=melding' || CHR (38) || 'k=' || m.mld_melding_key url
FROM mld_stdmelding sm,
mld_melding m,
mld_statuses s,
alg_ruimte r,
res_alg_ruimte ra,
res_ruimte rr,
(SELECT km.mld_kenmerkmelding_waarde tijd, km.mld_melding_key
FROM mld_srtkenmerk sk, mld_kenmerk k, mld_kenmerkmelding km
WHERE sk.mld_srtkenmerk_key = 461
AND k.mld_srtkenmerk_key = sk.mld_srtkenmerk_key
AND km.mld_kenmerk_key = k.mld_kenmerk_key) tijd_van
WHERE sm.mld_stdmelding_key = m.mld_stdmelding_key
AND s.mld_statuses_key = m.mld_melding_status
AND m.mld_alg_onroerendgoed_keys = r.alg_ruimte_key
AND r.alg_ruimte_key = ra.alg_ruimte_key
AND ra.res_ruimte_key = rr.res_ruimte_key
AND tijd_van.mld_melding_key = m.mld_melding_key
AND sm.mld_stdmelding_key = 401;
CREATE OR REPLACE FORCE VIEW PZEE_V_INS_QRC_ALG
(
HIDE_F_SORT,
LOCATIE_CODE,
FCLT_F_LOCATIE,
FCLT_F_GEBOUW,
FCLT_F_PLAATS,
RUIMTENR,
NAAM,
FCLT_F_DISCIPLINE,
FCLT_F_OBJECTGROEP,
FCLT_F_OBJECTSOORT,
FCLT_F_IDENTIFICATIE,
FCLT_F_BOOKMARK,
INS_DEEL_KEY,
INS_SRTDEEL_KEY,
FCLT_3D_DISCIPLINE_KEY,
FCLT_3D_LOCATIE_KEY,
INS_ALG_RUIMTE_TYPE,
INS_ALG_RUIMTE_KEY,
BOOKMARK_ID,
GEKOPPELD_AAN
)
AS
SELECT i.ins_deel_omschrijving
hide_f_sort,
l.alg_locatie_code,
l.alg_locatie_code || ' ' || l.alg_locatie_omschrijving
fclt_f_locatie,
o.alg_gebouw_omschrijving
fclt_f_gebouw,
SUBSTR (o.alg_plaatsaanduiding, 13)
fclt_f_plaats,
o.alg_ruimte_nr,
NULL
prs_perslid_naam,
d.ins_discipline_omschrijving
fclt_f_discipline,
g.ins_srtgroep_omschrijving
fclt_f_objectgroep,
s.ins_srtdeel_omschrijving
fclt_f_objectsoort,
i.ins_deel_omschrijving
fclt_f_identificatie,
b.fac_bookmark_naam
fclt_f_bookmark,
i.ins_deel_key,
s.ins_srtdeel_key,
i.ins_discipline_key
fclt_3d_discipline_key,
l.alg_locatie_key
fclt_3d_locatie_key,
i.ins_alg_ruimte_type,
i.ins_alg_ruimte_key,
b.fac_bookmark_id
hide_f_bookmark_id,
'Ruimte'
Gekoppeld_aan
FROM ins_deel i,
ins_v_alg_overzicht o,
ins_srtdeel s,
ins_srtgroep g,
ins_discipline d,
alg_locatie l,
fac_bookmark b
WHERE UPPER (b.fac_bookmark_naam) = 'QRC NAAR OBJECT'
AND COALESCE (b.fac_bookmark_expire, SYSDATE + 1) > SYSDATE
AND ins_deel_verwijder IS NULL
AND COALESCE (i.ins_deel_vervaldatum, SYSDATE + 1) > SYSDATE
AND i.ins_deel_module = 'INS'
AND i.ins_deel_parent_key IS NULL
AND s.ins_srtdeel_key = i.ins_srtdeel_key
AND g.ins_srtgroep_key = s.ins_srtgroep_key
AND d.ins_discipline_key = g.ins_discipline_key
AND o.alg_onroerendgoed_keys =
COALESCE (i.ins_alg_ruimte_key_org, i.ins_alg_ruimte_key)
AND o.alg_onroerendgoed_type =
COALESCE (i.ins_alg_ruimte_type_org, i.ins_alg_ruimte_type)
AND COALESCE (i.ins_alg_ruimte_type_org, i.ins_alg_ruimte_type) IN
('T', 'R', 'W')
AND o.alg_locatie_key = i.ins_alg_locatie_key
AND l.alg_locatie_key = i.ins_alg_locatie_key
UNION ALL
SELECT i.ins_deel_omschrijving hide_f_sort,
NULL,
NULL fclt_f_locatie,
NULL fclt_f_gebouw,
NULL fclt_f_plaats,
NULL,
p.prs_perslid_naam,
d.ins_discipline_omschrijving fclt_f_discipline,
g.ins_srtgroep_omschrijving fclt_f_objectgroep,
s.ins_srtdeel_omschrijving fclt_f_objectsoort,
i.ins_deel_omschrijving fclt_f_identificatie,
b.fac_bookmark_naam fclt_f_bookmark,
i.ins_deel_key,
s.ins_srtdeel_key,
i.ins_discipline_key fclt_3d_discipline_key,
NULL fclt_3d_locatie_key,
i.ins_alg_ruimte_type,
i.ins_alg_ruimte_key,
b.fac_bookmark_id hide_f_bookmark_id,
'Persoon'
FROM ins_deel i,
ins_srtdeel s,
ins_srtgroep g,
prs_perslid p,
ins_discipline d,
fac_bookmark b
WHERE UPPER (b.fac_bookmark_naam) = 'QRC NAAR OBJECT'
AND COALESCE (b.fac_bookmark_expire, SYSDATE + 1) > SYSDATE
AND ins_deel_verwijder IS NULL
AND COALESCE (i.ins_deel_vervaldatum, SYSDATE + 1) > SYSDATE
AND i.ins_deel_module = 'INS'
AND i.ins_deel_parent_key IS NULL
AND s.ins_srtdeel_key = i.ins_srtdeel_key
AND g.ins_srtgroep_key = s.ins_srtgroep_key
AND d.ins_discipline_key = g.ins_discipline_key
AND p.prs_perslid_key =
COALESCE (i.ins_alg_ruimte_key_org, i.ins_alg_ruimte_key)
AND COALESCE (i.ins_alg_ruimte_type_org, i.ins_alg_ruimte_type) =
'P';
CREATE OR REPLACE VIEW PZEE_V_RUIMTE_QRC_ALG
(
OMGEVING,
ALG_LOCATIE_OMSCHRIJVING,
ALG_GEBOUW_OMSCHRIJVING,
ALG_RUIMTE_NR,
ALG_RUIMTE_OMSCHRIJVING,
SRT_RUIMTE,
FAC_BOOKMARK_ID,
FAC_BOOKMARK_PATH,
FAC_BOOKMARK_QUERY,
ALG_RUIMTE_KEY
)
AS
SELECT USER omgeving,
r.alg_locatie_omschrijving,
r.alg_gebouw_omschrijving,
r.alg_ruimte_nr,
r.alg_ruimte_omschrijving,
r.alg_srtruimte_omschrijving,
b.fac_bookmark_id,
b.fac_bookmark_path,
b.fac_bookmark_query,
r.alg_ruimte_key
FROM fac_bookmark b, alg_v_ruimte_gegevens r
WHERE b.fac_bookmark_id = 'Dk6aMzV8hdfSIvpw';
CREATE OR REPLACE VIEW PZEE_V_RUIMTE_QRC_RES
(
HIDE_F_SORT,
LOCATIE_CODE,
FCLT_F_LOCATIE,
FCLT_F_GEBOUW_NAAM,
FCLT_F_GEBOUW_OMSCHR,
FCLT_F_VERDIEPING,
ALG_RUIMTE_KEY,
FCLT_F_ALG_RUIMTE_NR,
RES_RUIMTE_KEY,
FCLT_F_RES_RUIMTE_NR,
FCLT_F_IDENTIFICATIE,
FCLT_F_BOOKMARK
)
AS
SELECT r.res_ruimte_nr,
l.alg_locatie_code,
l.alg_locatie_omschrijving,
g.alg_gebouw_naam,
g.alg_gebouw_omschrijving,
v.alg_verdieping_code,
r.alg_ruimte_key,
r.alg_ruimte_nr,
r.res_ruimte_key,
r.res_ruimte_nr,
r.res_ruimte_key,
b.fac_bookmark_id hide_f_bookmark_id
FROM res_ruimte r,
res_alg_ruimte ar,
alg_ruimte r,
alg_verdieping v,
alg_gebouw g,
alg_locatie l,
fac_bookmark b
WHERE ar.res_ruimte_key = r.res_ruimte_key
AND r.alg_ruimte_key = ar.alg_ruimte_key
AND v.alg_verdieping_key = r.alg_verdieping_key
AND g.alg_gebouw_key = v.alg_gebouw_key
AND l.alg_locatie_key = g.alg_locatie_key
AND b.fac_bookmark_id = '3mZqlYCRJbw4MdPS'
AND COALESCE (b.fac_bookmark_expire, SYSDATE + 1) > SYSDATE
AND l.alg_locatie_verwijder IS NULL
AND ( l.alg_locatie_vervaldatum > SYSDATE
OR l.alg_locatie_vervaldatum IS NULL)
AND g.alg_gebouw_verwijder IS NULL
AND ar.res_alg_ruimte_verwijder IS NULL
AND r.res_ruimte_verwijder IS NULL
AND ( r.res_ruimte_vervaldatum > SYSDATE
OR r.res_ruimte_vervaldatum IS NULL);
-- Voor de koppeling met BIS is een specifieke opbouw van de rapportage nodig
CREATE OR REPLACE VIEW meeting
(
res_date,
starttime,
endtime,
name,
location
)
AS
SELECT datum, tijd_van, tijd_tot, titel, ruimte FROM pzee_v_rap_infobord;
-- Voor de tijdelijke koppeling inforborden
CREATE OR REPLACE VIEW VERGADERING_2
(
RES_DATE,
RES_DATE_TOT,
STARTDATUM,
EINDDATUM,
BEGINTIJD,
EINDTIJD,
ONDERWERP,
AANVRAGER,
LOCATIECODE,
LOCATIECODELINK,
LOCATIE
)
AS
SELECT datum,
datum_tot,
dag_van,
dag_tot,
tijd_van,
tijd_tot,
omschrijving,
aanvrager_naam,
ruimtenr,
ruimtenr locatielink,
ruimte
FROM pzee_v_rap_infobord
WHERE TRUNC (datum) = TRUNC (SYSDATE) AND datum_tot > SYSDATE;
-- Voor de koppeling met Intranet is een specifieke opbouw van de rapportage nodig
CREATE OR REPLACE VIEW VERGADERING
(
RES_DATE,
RES_DATE_TOT,
STARTDATUM,
EINDDATUM,
BEGINTIJD,
EINDTIJD,
ONDERWERP,
AANVRAGER,
LOCATIECODE,
LOCATIECODELINK,
LOCATIE
)
AS
SELECT DATUM,
DATUM_TOT,
DAG_VAN,
DAG_TOT,
TIJD_VAN,
TIJD_TOT,
OMSCHRIJVING,
AANVRAGER_NAAM,
RUIMTENR,
RUIMTENR LOCATIELINK,
RUIMTE
FROM PZEE_V_RAP_INFOBORD;
--- reserveringen met catering
CREATE OR REPLACE VIEW PZEE_V_RAP_CATERING
AS
SELECT DISTINCT
rrr.res_rsv_ruimte_key,
rrr.res_reservering_key,
rrr.res_reservering_key || '/' || rrr.res_rsv_ruimte_volgnr
reservering,
(SELECT MAX (fac_tracking_datum)
FROM fac_tracking
WHERE fac_tracking_refkey = rrr.res_rsv_ruimte_key
AND fac_srtnotificatie_key = 117 --- resupd
AND UPPER (COALESCE (fac_tracking_oms, ' ')) NOT LIKE
'%ERROR%')
laatste_upd,
rrr.res_rsv_ruimte_externsyncdate
datum_export,
rrr.res_rsv_ruimte_verwijder
datum_verwijderd,
cat.ins_discipline_key
ruimte_catalogus_key,
cat.ins_discipline_omschrijving
ruimte_catalogus,
rer.res_ruimte_key,
rer.res_ruimte_nr
ruimte,
(SELECT gb.alg_gebouw_code
FROM alg_gebouw gb
WHERE gb.alg_gebouw_key = alg.alg_gebouw_key)
gebouw,
rrr.res_rsv_ruimte_van
datum_van,
rrr.res_rsv_ruimte_tot
datum_tot,
rrr.res_rsv_ruimte_omschrijving
oms,
(SELECT prs_perslid_naam_friendly
FROM prs_v_perslid_fullnames
WHERE prs_perslid_key = rrr.res_rsv_ruimte_host_key)
gastheer,
(SELECT prs_perslid_naam_friendly
FROM prs_v_perslid_fullnames
WHERE prs_perslid_key = rrr.res_rsv_ruimte_contact_key)
contact,
kstp.prs_kostenplaats_nr
act_nr,
(SELECT res_kenmerkreservering_waarde
FROM res_kenmerkwaarde kw, res_kenmerk k, res_srtkenmerk sk
WHERE kw.res_rsv_ruimte_key = rrr.res_rsv_ruimte_key
AND k.res_kenmerk_key = kw.res_kenmerk_key
AND sk.res_srtkenmerk_key = k.res_srtkenmerk_key
AND sk.res_srtkenmerk_key = 1) --- allergie/dieet
wensen,
(SELECT CASE
WHEN res_kenmerkreservering_waarde = 181 THEN 'Ja'
ELSE 'Nee'
END externen
FROM res_kenmerkwaarde kw, res_kenmerk k, res_srtkenmerk sk
WHERE kw.res_rsv_ruimte_key = rrr.res_rsv_ruimte_key
AND k.res_kenmerk_key = kw.res_kenmerk_key
AND sk.res_srtkenmerk_key = k.res_srtkenmerk_key
AND sk.res_srtkenmerk_key = 81) --- externen
externen,
(SELECT res_kenmerkreservering_waarde
FROM res_kenmerkwaarde kw, res_kenmerk k, res_srtkenmerk sk
WHERE kw.res_rsv_ruimte_key = rrr.res_rsv_ruimte_key
AND k.res_kenmerk_key = kw.res_kenmerk_key
AND sk.res_srtkenmerk_key = k.res_srtkenmerk_key
AND sk.res_srtkenmerk_key = 161) --- aantal
aantal
FROM res_rsv_ruimte rrr,
res_rsv_artikel rar,
res_ruimte_opstelling rop,
res_ruimte rer,
ins_tab_discipline cat,
res_alg_ruimte rarm,
alg_v_ruimte_gegevens_all alg,
prs_kostenplaats kstp
WHERE rrr.res_rsv_ruimte_verwijder IS NULL
AND cat.ins_discipline_key = rer.res_discipline_key
AND rar.res_rsv_ruimte_key = rrr.res_rsv_ruimte_key
AND rrr.res_ruimte_opstel_key = rop.res_ruimte_opstel_key
AND rer.res_ruimte_key = rop.res_ruimte_key
AND rarm.res_ruimte_key = rer.res_ruimte_key
AND alg.alg_ruimte_key = rarm.alg_ruimte_key
AND kstp.prs_kostenplaats_key = rrr.prs_kostenplaats_key
UNION ALL
SELECT DISTINCT
rrr.res_rsv_ruimte_key,
rrr.res_reservering_key,
rrr.res_reservering_key || '/' || rrr.res_rsv_ruimte_volgnr
reservering,
(SELECT MAX (fac_tracking_datum)
FROM fac_tracking
WHERE fac_tracking_refkey = rrr.res_rsv_ruimte_key
AND fac_srtnotificatie_key = 117 --- resupd
AND UPPER (COALESCE (fac_tracking_oms, ' ')) NOT LIKE
'%ERROR%')
laatste_upd,
rrr.res_rsv_ruimte_externsyncdate
last_export,
rrr.res_rsv_ruimte_verwijder
datum_verwijderd,
0
ruimte_catalogus_key,
'Losse catering'
ruimte_catalogus,
alg.alg_ruimte_key,
alg.alg_ruimte_nr || ' ' || alg.alg_ruimte_omschrijving
ruimte,
(SELECT gb.alg_gebouw_code
FROM alg_gebouw gb
WHERE gb.alg_gebouw_key = alg.alg_gebouw_key)
gebouw,
rrr.res_rsv_ruimte_van
datum_van,
rrr.res_rsv_ruimte_tot
datum_tot,
COALESCE (rrr.res_rsv_ruimte_omschrijving, 'Catering ')
oms,
(SELECT prs_perslid_naam_friendly
FROM prs_v_perslid_fullnames
WHERE prs_perslid_key = rrr.res_rsv_ruimte_host_key)
gastheer,
(SELECT prs_perslid_naam_friendly
FROM prs_v_perslid_fullnames
WHERE prs_perslid_key = rrr.res_rsv_ruimte_contact_key)
contact,
kstp.prs_kostenplaats_nr
act_nr,
(SELECT res_kenmerkreservering_waarde
FROM res_kenmerkwaarde kw, res_kenmerk k, res_srtkenmerk sk
WHERE kw.res_rsv_ruimte_key = rrr.res_rsv_ruimte_key
AND k.res_kenmerk_key = kw.res_kenmerk_key
AND sk.res_srtkenmerk_key = k.res_srtkenmerk_key
AND sk.res_srtkenmerk_key = 1) --- allergie/dieet
wensen,
(SELECT CASE
WHEN res_kenmerkreservering_waarde = 181 THEN 'Ja'
ELSE 'Nee'
END externen
FROM res_kenmerkwaarde kw, res_kenmerk k, res_srtkenmerk sk
WHERE kw.res_rsv_ruimte_key = rrr.res_rsv_ruimte_key
AND k.res_kenmerk_key = kw.res_kenmerk_key
AND sk.res_srtkenmerk_key = k.res_srtkenmerk_key
AND sk.res_srtkenmerk_key = 81) --- externen
externen,
(SELECT res_kenmerkreservering_waarde
FROM res_kenmerkwaarde kw, res_kenmerk k, res_srtkenmerk sk
WHERE kw.res_rsv_ruimte_key = rrr.res_rsv_ruimte_key
AND k.res_kenmerk_key = kw.res_kenmerk_key
AND sk.res_srtkenmerk_key = k.res_srtkenmerk_key
AND sk.res_srtkenmerk_key = 161) --- aantal
aantal
FROM res_rsv_ruimte rrr,
res_rsv_artikel rar,
alg_v_ruimte_gegevens_all alg,
prs_kostenplaats kstp
WHERE rrr.res_rsv_ruimte_verwijder IS NULL
AND rar.res_rsv_ruimte_key = rrr.res_rsv_ruimte_key
AND alg.alg_ruimte_key = rrr.alg_ruimte_key
AND kstp.prs_kostenplaats_key = rrr.prs_kostenplaats_key
ORDER BY res_rsv_ruimte_key;
--- catering artikelen die besteld mogen worden conform de gestelde catalogus instellingen
CREATE OR REPLACE VIEW PZEE_V_RAP_CATERING_RGL
AS
SELECT b.prs_bedrijf_key || rar.res_rsv_ruimte_key extra_key,
rar.res_rsv_ruimte_key,
b.prs_bedrijf_key bedrijfs_key,
b.prs_bedrijf_naam leverancier,
SUBSTR (ba.prs_bedrijfadres_url,
INSTR (ba.prs_bedrijfadres_url, ':') + 1) mailadres,
rar.res_artikel_key,
rar.res_rsv_artikel_key,
art.res_artikel_omschrijving,
rar.res_rsv_artikel_aantal,
rar.res_rsv_artikel_levering,
art.res_discipline_key,
rar.res_rsv_artikel_externsyncdate,
cat.ins_discipline_omschrijving,
cat_s.res_disc_params_expire_dagen,
cat_s.res_disc_params_expire_tijd,
t1.t1,
TRUNC (fac.datumtijdplusuitvoertijd (
SYSDATE,
res_disc_params_expire_dagen - 1,
'DAGEN',
t1,
res_disc_params_expire_tijd,
1)) bestelling_voor --- we bestellen na de wijzigingshorizon! Dus trekken we er weer een dag vanaf
FROM res_rsv_artikel rar,
res_artikel art,
ins_tab_discipline cat,
res_disc_params cat_s,
prs_bedrijf b,
prs_bedrijfadres ba,
(SELECT COALESCE (cat_t1, res_t1) t1
FROM (SELECT (SELECT fac_setting_pvalue
FROM fac_setting
WHERE fac_setting_name = 'res_cat_t1')
cat_t1,
(SELECT fac_setting_pvalue
FROM fac_setting
WHERE fac_setting_name = 'res_t1')
res_t1
FROM DUAL)) t1
WHERE art.res_artikel_key = rar.res_artikel_key
AND cat.ins_discipline_key = art.res_discipline_key
AND rar.res_rsv_artikel_verwijder IS NULL
AND rar.res_rsv_artikel_dirtlevel = 0
AND cat_s.res_ins_discipline_key = cat.ins_discipline_key
AND cat_s.prs_bedrijf_key = b.prs_bedrijf_key
AND ba.prs_bedrijf_key = b.prs_bedrijf_key;
-- combinatie van reservering en bestelregels
CREATE OR REPLACE VIEW PZEE_V_RAP_CATERING_ALL
AS
SELECT CASE
WHEN TO_CHAR (cr.res_rsv_artikel_levering, 'd') = 2
AND cr.bedrijfs_key = 1842
THEN
(SELECT b.PRS_BEDRIJF_KEY
FROM prs_bedrijf b, prs_bedrijfadres ba
WHERE b.prs_bedrijf_key = 1843
AND ba.prs_bedrijf_key = b.prs_bedrijf_key) -- bakker Bliek levert niet op maandag
ELSE
cr.bedrijfs_key
END bedrijfs_key,
CASE
WHEN TO_CHAR (cr.res_rsv_artikel_levering, 'd') = 2
AND cr.bedrijfs_key = 1842
THEN
(SELECT b.prs_bedrijf_naam
FROM prs_bedrijf b, prs_bedrijfadres ba
WHERE b.prs_bedrijf_key = 1843
AND ba.prs_bedrijf_key = b.prs_bedrijf_key) -- bakker Bliek levert niet op maandag
ELSE
cr.leverancier
END leverancier,
CASE
WHEN TO_CHAR (cr.res_rsv_artikel_levering, 'd') = 2
AND cr.bedrijfs_key = 1842
THEN
(SELECT SUBSTR (ba.prs_bedrijfadres_url,
INSTR (ba.prs_bedrijfadres_url, ':') + 1) mailadres
FROM prs_bedrijf b, prs_bedrijfadres ba
WHERE b.prs_bedrijf_key = 1843
AND ba.prs_bedrijf_key = b.prs_bedrijf_key) -- bakker Bliek levert niet op maandag
ELSE
cr.mailadres
END mailadres,
c.res_rsv_ruimte_key,
c.reservering,
c.oms omschrijving,
ruimte_catalogus,
cr.res_disc_params_expire_dagen,
cr.res_disc_params_expire_tijd,
CASE
WHEN ( c.ruimte_catalogus_key IN (441)
AND NOT c.res_ruimte_key = 17
AND cr.bedrijfs_key = 1841)
THEN
'hoofdgebouw keuken beneden' --- bestellingen in ruimtes A0 en B1 voor SEC
ELSE
'hoofdgebouw keuken boven'
END afleverlocatie,
c.gebouw,
c.ruimte,
c.act_nr activiteitennr,
c.externen externen_aanwezig,
c.aantal aant_externen,
c.wensen dieet_allergie,
cr.ins_discipline_omschrijving catalogus,
cr.res_artikel_omschrijving artikel,
cr.res_rsv_artikel_aantal aantal,
CASE
WHEN TO_CHAR (cr.res_rsv_artikel_levering, 'd') = 1
THEN
'Zondag'
WHEN TO_CHAR (cr.res_rsv_artikel_levering, 'd') = 2
THEN
'Maandag'
WHEN TO_CHAR (cr.res_rsv_artikel_levering, 'd') = 3
THEN
'Dinsdag'
WHEN TO_CHAR (cr.res_rsv_artikel_levering, 'd') = 4
THEN
'Woensdag'
WHEN TO_CHAR (cr.res_rsv_artikel_levering, 'd') = 5
THEN
'Donderdag'
WHEN TO_CHAR (cr.res_rsv_artikel_levering, 'd') = 6
THEN
'Vrijdag'
WHEN TO_CHAR (cr.res_rsv_artikel_levering, 'd') = 7
THEN
'Zaterdag'
END leverdag, --- zondag is dag 1 van de week
cr.res_rsv_artikel_levering artikel_levering,
TO_CHAR (cr.res_rsv_artikel_levering, 'dd-mm-yyyy') leverdatum,
TO_CHAR (cr.res_rsv_artikel_levering, 'hh24:mi') levertijd
FROM pzee_v_rap_catering c, pzee_v_rap_catering_rgl cr
WHERE c.res_rsv_ruimte_key = cr.res_rsv_ruimte_key;
-- rapport met bestellingen dat naar de leverancier gestuurd mag worden
CREATE OR REPLACE VIEW PZEE_V_RAP_NOTI_LEVERANCIER
AS
SELECT c.res_rsv_ruimte_key,
c.res_reservering_key,
c.reservering,
c.oms omschrijving,
c.ruimte_catalogus_key,
ruimte_catalogus,
CASE
WHEN ( c.ruimte_catalogus_key IN (441)
AND NOT c.res_ruimte_key = 17
AND cr.bedrijfs_key = 1841)
THEN
'hoofdgebouw keuken beneden' --- bestellingen in ruimtes A0 en B1 voor SEC
ELSE
'hoofdgebouw keuken boven'
END afleverlocatie,
c.gebouw,
c.ruimte,
c.act_nr activiteitennr,
c.contact,
c.externen externen_aanwezig,
c.aantal aant_externen,
c.wensen dieet_allergie,
cr.ins_discipline_omschrijving catalogus,
cr.res_discipline_key catalogus_key,
fac.safe_to_number (cr.extra_key) extra_key,
CASE
WHEN TO_CHAR (cr.res_rsv_artikel_levering, 'd') = 2
AND cr.bedrijfs_key = 1842
THEN
(SELECT b.PRS_BEDRIJF_KEY
FROM prs_bedrijf b, prs_bedrijfadres ba
WHERE b.prs_bedrijf_key = 1843
AND ba.prs_bedrijf_key = b.prs_bedrijf_key) -- bakker Bliek levert niet op maandag
ELSE
cr.bedrijfs_key
END bedrijfs_key,
CASE
WHEN TO_CHAR (cr.res_rsv_artikel_levering, 'd') = 2
AND cr.bedrijfs_key = 1842
THEN
(SELECT b.prs_bedrijf_naam
FROM prs_bedrijf b, prs_bedrijfadres ba
WHERE b.prs_bedrijf_key = 1843
AND ba.prs_bedrijf_key = b.prs_bedrijf_key) -- bakker Bliek levert niet op maandag
ELSE
cr.leverancier
END leverancier,
CASE
WHEN TO_CHAR (cr.res_rsv_artikel_levering, 'd') = 2
AND cr.bedrijfs_key = 1842
THEN
(SELECT SUBSTR (ba.prs_bedrijfadres_url,
INSTR (ba.prs_bedrijfadres_url, ':') + 1) mailadres
FROM prs_bedrijf b, prs_bedrijfadres ba
WHERE b.prs_bedrijf_key = 1843
AND ba.prs_bedrijf_key = b.prs_bedrijf_key) -- bakker Bliek levert niet op maandag
ELSE
cr.mailadres
END mailadres,
cr.res_artikel_omschrijving artikel,
cr.res_rsv_artikel_aantal aantal,
cr.res_rsv_artikel_levering artikel_levering,
cr.res_rsv_artikel_externsyncdate,
TO_CHAR (cr.res_rsv_artikel_levering, 'hh24:mi') levertijd,
TO_CHAR (cr.res_rsv_artikel_levering, 'dd-mm-yyyy') leverdatum,
TO_CHAR (cr.res_rsv_artikel_levering, 'd') leverdag --- zondag is dag 1 van de week
FROM pzee_v_rap_catering c, pzee_v_rap_catering_rgl cr
WHERE TRUNC (cr.bestelling_voor) =
TRUNC (cr.res_rsv_artikel_levering)
AND c.res_rsv_ruimte_key = cr.res_rsv_ruimte_key;
--- SELECT sender, receiver, text, code, key, xkey, xsender, xemail, xmobile
CREATE OR REPLACE VIEW PZEE_V_NOTI_BAKKERBEST
(
SENDER,
RECEIVER,
TEXT,
CODE,
KEY,
XKEY,
XSENDER,
XEMAIL,
XMOBILE
)
AS
SELECT DISTINCT
3
sender, -- Facilitor
NULL
receiver,
'Bestelling ' || b.reservering || ' voor ' || leverdatum
text,
sn.fac_srtnotificatie_code
code,
(SELECT fac_usrrap_key
FROM fac_usrrap
WHERE UPPER (fac_usrrap_omschrijving) =
'RES: TE BESTELLEN CATERING'
AND UPPER (fac_usrrap_view_name) =
'PZEE_V_RAP_NOTI_LEVERANCIER') ---- refkey: is het rapport
key,
b.extra_key
xkey,
NULL
xsender,
b.mailadres
xemail,
NULL
xmobile
FROM fac_srtnotificatie sn,
fac_tracking t,
pzee_v_rap_noti_leverancier b
WHERE sn.fac_srtnotificatie_code = 'CUST01' AND b.bedrijfs_key = 1842;
CREATE OR REPLACE VIEW PZEE_V_NOTI_SEC_BEST
(
SENDER,
RECEIVER,
TEXT,
CODE,
KEY,
XKEY,
XSENDER,
XEMAIL,
XMOBILE
)
AS
SELECT DISTINCT
3
sender, -- Facilitor
NULL
receiver,
'Bestelling ' || b.reservering || ' voor ' || leverdatum
text,
sn.fac_srtnotificatie_code
code,
(SELECT fac_usrrap_key
FROM fac_usrrap
WHERE UPPER (fac_usrrap_omschrijving) =
'RES: TE BESTELLEN CATERING'
AND UPPER (fac_usrrap_view_name) =
'PZEE_V_RAP_NOTI_LEVERANCIER') ---- refkey: is het rapport
key,
b.extra_key
xkey,
NULL
xsender,
b.mailadres
xemail,
NULL
xmobile
FROM fac_srtnotificatie sn,
fac_tracking t,
pzee_v_rap_noti_leverancier b
WHERE sn.fac_srtnotificatie_code = 'CUST01' AND b.bedrijfs_key = 1841;
CREATE OR REPLACE VIEW PZEE_V_MENTIMETER_ACC
(
INS_DEEL_KEY,
ACCOUNT_NAAM,
INS_DEEL_VERWIJDER
)
AS
SELECT d.ins_deel_key,
d.ins_deel_omschrijving
|| ' ('
|| srt_a.fac_usrdata_omschr
|| ') '
|| a.ins_kenmerkdeel_waarde accountnaam,
d.ins_deel_verwijder
FROM ins_deel d,
ins_srtdeel sd,
(SELECT kd.ins_deel_key, kd.ins_kenmerkdeel_waarde
FROM ins_kenmerkdeel kd, ins_kenmerk k
WHERE k.ins_kenmerk_key = kd.ins_kenmerk_key
AND k.ins_kenmerk_key = 151) a,
(SELECT kd.ins_deel_key, ud.fac_usrdata_omschr
FROM ins_kenmerkdeel kd,
ins_kenmerk k,
ins_srtkenmerk sk,
fac_usrdata ud
WHERE kd.ins_kenmerk_key = k.ins_kenmerk_key
AND k.ins_srtkenmerk_key = sk.ins_srtkenmerk_key
AND sk.ins_srtkenmerk_key = 87
AND ud.fac_usrdata_key =
fac.safe_to_number (kd.ins_kenmerkdeel_waarde)
AND ud.fac_usrtab_key = 441) srt_a
WHERE d.ins_srtdeel_key = sd.ins_srtdeel_key
AND sd.ins_srtdeel_key = 183
AND a.ins_deel_key = d.ins_deel_key
AND srt_a.ins_deel_key = d.ins_deel_key;
--- notificatie naar representatie wanneer er een wijziging of annulering is van een reserving in een representatieve ruimte
--- die in behandeling is door representatie
CREATE OR REPLACE VIEW PZEE_V_NOTI_RESUPD
(
SENDER,
RECEIVER,
TEXT,
CODE,
KEY,
XKEY,
XSENDER,
XEMAIL,
XMOBILE
)
AS
SELECT 3 sender,
NULL receiver,
'Er is een wijziging op reservering '
|| r.res_reservering_key
|| '/'
|| r.res_rsv_ruimte_volgnr tekst,
sn.fac_srtnotificatie_code code,
r.res_reservering_key key,
NULL xkey,
NULL xsender,
'representatie@zeeland.nl;ab.kramer@zeeland.nl' xemail,
NULL xmobile
FROM fac_tracking t,
prs_perslid p,
res_rsv_ruimte r,
fac_srtnotificatie sn,
(SELECT d.ins_discipline_key,
d.ins_discipline_omschrijving,
ro.res_ruimte_opstel_key
FROM ins_tab_discipline d,
res_ruimte_opstelling ro,
res_ruimte rr
WHERE ro.res_ruimte_key = rr.res_ruimte_key
AND rr.res_discipline_key = d.ins_discipline_key) cat
WHERE t.fac_srtnotificatie_key = 117 --- RESUPD
AND p.prs_perslid_key = t.prs_perslid_key
AND sn.fac_srtnotificatie_code = 'CUST02'
AND r.res_rsv_ruimte_key = t.fac_tracking_refkey
AND r.res_ruimte_opstel_key = cat.res_ruimte_opstel_key
AND r.res_rsv_ruimte_flag IN (1, 2) -- status representatie is in behandeling of voorlopig afgerond
AND cat.ins_discipline_key IN (803, 442, 801)
AND t.fac_tracking_datum >
(SELECT fac_notificatie_job_lastrun
FROM fac_notificatie_job
WHERE UPPER (fac_notificatie_job_view) =
'PZEE_V_NOTI_RESUPD')
AND t.fac_tracking_datum <
(SELECT fac_notificatie_job_nextrun
FROM fac_notificatie_job
WHERE UPPER (fac_notificatie_job_view) =
'PZEE_V_NOTI_RESUPD')
AND NOT EXISTS
(SELECT ton.prs_perslid_key
FROM prs_perslid ton
WHERE ton.prs_perslid_key = 1225
AND ton.prs_perslid_key = p.prs_perslid_key)
UNION ALL
SELECT 3 sender,
NULL receiver,
'Let op: Reservering '
|| r.res_reservering_key
|| '/'
|| r.res_rsv_ruimte_volgnr
|| ' is geannuleerd' tekst,
sn.fac_srtnotificatie_code code,
r.res_reservering_key key,
NULL xkey,
NULL xsender,
'representatie@zeeland.nl;abkramer@zeeland.nl' xemail,
NULL xmobile
FROM fac_tracking t,
prs_perslid p,
res_rsv_ruimte r,
fac_srtnotificatie sn,
(SELECT d.ins_discipline_key,
d.ins_discipline_omschrijving,
ro.res_ruimte_opstel_key
FROM ins_tab_discipline d,
res_ruimte_opstelling ro,
res_ruimte rr
WHERE ro.res_ruimte_key = rr.res_ruimte_key
AND rr.res_discipline_key = d.ins_discipline_key) cat
WHERE t.fac_srtnotificatie_key = 121 --- RESDEL
AND p.prs_perslid_key = t.prs_perslid_key
AND sn.fac_srtnotificatie_code = 'CUST02'
AND r.res_rsv_ruimte_key = t.fac_tracking_refkey
AND r.res_ruimte_opstel_key = cat.res_ruimte_opstel_key
AND r.res_rsv_ruimte_flag IN (1, 2, 3) -- status representatie is in behandeling, voorlopig afgerond of gereserveerd respresentatie
AND t.fac_tracking_datum >
(SELECT fac_notificatie_job_lastrun
FROM fac_notificatie_job
WHERE UPPER (fac_notificatie_job_view) =
'PZEE_V_NOTI_RESUPD')
AND t.fac_tracking_datum <
(SELECT fac_notificatie_job_nextrun
FROM fac_notificatie_job
WHERE UPPER (fac_notificatie_job_view) =
'PZEE_V_NOTI_RESUPD')
AND NOT EXISTS
(SELECT ton.prs_perslid_key
FROM prs_perslid ton
WHERE ton.prs_perslid_key = 1225
AND ton.prs_perslid_key = p.prs_perslid_key);
CREATE OR REPLACE PROCEDURE pzee_select_catering_bes (
p_applname IN VARCHAR2,
p_applrun IN VARCHAR2)
AS
oracle_err_num NUMBER;
oracle_err_mes VARCHAR2 (200);
v_errorhint VARCHAR2 (100);
v_aanduiding VARCHAR2 (100);
CURSOR BAKKER IS
SELECT DISTINCT b.reservering,
b.res_rsv_ruimte_key,
3 sender, -- Facilitor
'Bestelling '
|| b.reservering
|| ' voor '
|| leverdatum text,
sn.fac_srtnotificatie_code,
sn.fac_srtnotificatie_key,
(SELECT fac_usrrap_key
FROM fac_usrrap
WHERE UPPER (fac_usrrap_omschrijving) =
'RES: TE BESTELLEN CATERING'
AND UPPER (fac_usrrap_view_name) =
'PZEE_V_RAP_NOTI_LEVERANCIER') ---- refkey: is het rapport
key,
b.extra_key xkey,
b.mailadres xemail
FROM fac_srtnotificatie sn,
fac_tracking t,
pzee_v_rap_noti_leverancier b
WHERE sn.fac_srtnotificatie_code = 'CUST01'
AND b.res_rsv_artikel_externsyncdate IS NULL
AND b.bedrijfs_key IN (1842, 1843);
CURSOR SEC IS
SELECT DISTINCT b.reservering,
b.res_rsv_ruimte_key,
3 sender, -- Facilitor
'Bestelling '
|| b.reservering
|| ' voor '
|| leverdatum text,
sn.fac_srtnotificatie_code,
sn.fac_srtnotificatie_key,
(SELECT fac_usrrap_key
FROM fac_usrrap
WHERE UPPER (fac_usrrap_omschrijving) =
'RES: TE BESTELLEN CATERING'
AND UPPER (fac_usrrap_view_name) =
'PZEE_V_RAP_NOTI_LEVERANCIER') ---- refkey: is het rapport
key,
b.extra_key xkey,
b.mailadres xemail
FROM fac_srtnotificatie sn,
fac_tracking t,
pzee_v_rap_noti_leverancier b
WHERE sn.fac_srtnotificatie_code = 'CUST01'
AND b.res_rsv_artikel_externsyncdate IS NULL
AND b.bedrijfs_key = 1841;
CURSOR BES_RGL IS
SELECT res_rsv_artikel_key,
cr.bedrijfs_key,
cr.leverancier,
cr.mailadres,
cr.res_artikel_omschrijving
artikel,
cr.res_rsv_artikel_aantal
aantal,
cr.res_rsv_artikel_levering
artikel_levering,
TO_CHAR (cr.res_rsv_artikel_levering, 'hh24:mi')
levertijd,
TO_CHAR (cr.res_rsv_artikel_levering, 'dd-mm-yyyy')
leverdatum,
TO_CHAR (cr.res_rsv_artikel_levering, 'd')
leverdag --- zondag is dag 1 van de week
FROM pzee_v_rap_catering_rgl cr
WHERE TRUNC (cr.bestelling_voor) =
TRUNC (cr.res_rsv_artikel_levering)
AND cr.res_rsv_artikel_externsyncdate IS NULL;
BEGIN
v_errorhint := 'init';
DELETE imp_log
WHERE imp_log_applicatie = p_applname;
FOR rec IN BAKKER
LOOP
BEGIN
INSERT INTO fac_notificatie (fac_srtnotificatie_key,
fac_notificatie_status,
fac_notificatie_receiver_email,
fac_notificatie_oms,
fac_notificatie_refkey,
fac_notificatie_extrakey,
prs_perslid_key_sender,
fac_notificatie_prioriteit,
fac_notificatie_lang)
VALUES (rec.fac_srtnotificatie_key,
2,
rec.xemail,
rec.text,
rec.key, -- rapport key
rec.xkey, -- bedrijfskey
3,
2,
'NL');
fac.trackaction (
'RESTRK',
rec.res_rsv_ruimte_key,
NULL,
NULL,
'Bakkersbestelling verstuurd naar: ' || rec.xemail);
EXCEPTION
WHEN OTHERS
THEN
oracle_err_num := SQLCODE;
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
fac.writelog (
p_applname,
'E',
'Error '
|| v_aanduiding
|| oracle_err_num
|| '/'
|| oracle_err_mes,
v_errorhint);
END;
END LOOP;
FOR rec IN SEC
LOOP
BEGIN
INSERT INTO fac_notificatie (fac_srtnotificatie_key,
fac_notificatie_status,
fac_notificatie_receiver_email,
fac_notificatie_oms,
fac_notificatie_refkey,
fac_notificatie_extrakey,
prs_perslid_key_sender,
fac_notificatie_prioriteit,
fac_notificatie_lang)
VALUES (rec.fac_srtnotificatie_key,
2,
rec.xemail,
rec.text,
rec.key, -- rapport key
rec.xkey, -- bedrijfskey
3,
2,
'NL');
fac.trackaction ('RESTRK',
rec.res_rsv_ruimte_key,
NULL,
NULL,
'SEC bestelling verstuurd naar: ' || rec.xemail);
EXCEPTION
WHEN OTHERS
THEN
oracle_err_num := SQLCODE;
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
fac.writelog (
p_applname,
'E',
'Error '
|| v_aanduiding
|| oracle_err_num
|| '/'
|| oracle_err_mes,
v_errorhint);
END;
END LOOP;
FOR rec IN BES_RGL
LOOP
BEGIN
UPDATE res_rsv_artikel ra
SET ra.res_rsv_artikel_externsyncdate = SYSDATE
WHERE ra.res_rsv_artikel_key = rec.res_rsv_artikel_key;
EXCEPTION
WHEN OTHERS
THEN
oracle_err_num := SQLCODE;
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
fac.writelog (
p_applname,
'E',
'Error ' || oracle_err_num || '/' || oracle_err_mes,
v_errorhint);
END;
END LOOP;
EXCEPTION
WHEN OTHERS
THEN
oracle_err_num := SQLCODE;
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
fac.writelog (p_applname,
'E',
'Error ' || oracle_err_num || '/' || oracle_err_mes,
v_errorhint);
END;
/
------ 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