8441 lines
341 KiB
SQL
8441 lines
341 KiB
SQL
--
|
|
-- $Id$
|
|
--
|
|
-- Script containing customer specific sql statements for the FACILITOR database
|
|
|
|
DEFINE thisfile = 'PNBR.SQL'
|
|
DEFINE dbuser = '^PNBR'
|
|
DEFINE custid = 'PNBR'
|
|
|
|
SET ECHO ON
|
|
SET DEFINE ON
|
|
COLUMN fcltlogfile NEW_VALUE fcltlogfile NOPRINT;
|
|
WHENEVER SQLERROR EXIT;
|
|
|
|
SELECT adm.scriptspoolfile ('&dbuser', '&thisfile') AS fcltlogfile FROM DUAL;
|
|
|
|
WHENEVER SQLERROR CONTINUE;
|
|
SPOOL &fcltlogfile
|
|
SET DEFINE OFF
|
|
|
|
------ payload begin ------
|
|
1
|
|
|
|
CREATE OR REPLACE PROCEDURE pnbr_imp_writelog (p_import_key IN NUMBER,
|
|
p_severity IN VARCHAR2,
|
|
p_errormsg IN VARCHAR2,
|
|
p_errorhint IN VARCHAR2)
|
|
AS
|
|
PRAGMA AUTONOMOUS_TRANSACTION;
|
|
BEGIN
|
|
fac.imp_writelog (p_import_key,
|
|
p_severity,
|
|
p_errormsg,
|
|
p_errorhint);
|
|
COMMIT;
|
|
END;
|
|
/
|
|
|
|
------------ Tijdelijke view voor logging
|
|
|
|
CREATE OR REPLACE VIEW pnbr_v_cursor_noti_bezoek
|
|
(
|
|
bez_bezoekers_key,
|
|
bez_afspraak_key,
|
|
bez_afspraak_datum,
|
|
bez_afspraak_tijd,
|
|
gastheer_email,
|
|
res_reservering_key,
|
|
res_rsv_ruimte_omschrijving,
|
|
fac_srtnotificatie_code
|
|
)
|
|
AS
|
|
SELECT b.bez_bezoekers_key,
|
|
a.bez_afspraak_key,
|
|
TO_CHAR (bez_afspraak_datum, 'dd-mm-yyyy') datum,
|
|
TO_CHAR (bez_afspraak_datum, 'hh24:mi') tijd,
|
|
bk.bez_kenmerkwaarde_waarde email,
|
|
res_reservering_key,
|
|
res_rsv_ruimte_omschrijving,
|
|
DECODE (
|
|
(SELECT bk2.bez_kenmerkwaarde_waarde
|
|
FROM bez_kenmerkwaarde bk2
|
|
WHERE bk2.bez_bezoekers_key = b.bez_bezoekers_key
|
|
AND bk2.bez_kenmerk_key = 1020),
|
|
1, DECODE (rrr.res_rsv_ruimte_key, NULL, 'CUST03', 'CUST01'),
|
|
-- uitnodiging voor gastheer alleen als aangevinkt bij bezoek en gekoppeld aan reservering.
|
|
'CUST03') fac_srtnotificatie_code
|
|
FROM bez_bezoekers b,
|
|
bez_afspraak a,
|
|
res_rsv_ruimte rrr,
|
|
bez_kenmerkwaarde bk
|
|
WHERE b.bez_afspraak_key = a.bez_afspraak_key
|
|
AND a.res_rsv_ruimte_key = rrr.res_rsv_ruimte_key(+)
|
|
AND bk.bez_bezoekers_key = b.bez_bezoekers_key
|
|
AND bk.bez_kenmerk_key = 1001
|
|
AND ( --Herinnering 3 dagen van te voren is uitgeschakeld. PNBR#31869
|
|
--TRUNC (fac.datumtijdplusuitvoertijd (SYSDATE, 4, 'DAGEN')) =
|
|
-- TRUNC(fac.datumtijdplusuitvoertijd (a.bez_afspraak_datum,
|
|
-- 0,
|
|
-- 'UREN'))
|
|
-- OR
|
|
EXISTS -- email adres is als kenmerk toegevoegd
|
|
(SELECT kw.bez_kenmerkwaarde_key
|
|
FROM bez_kenmerkwaarde kw
|
|
WHERE kw.bez_kenmerk_key = 1001 -- emailadres externe bezoeker
|
|
AND kw.bez_bezoekers_key = b.bez_bezoekers_key
|
|
AND TRUNC (kw.bez_kenmerkwaarde_aanmaak) =
|
|
TRUNC (SYSDATE))
|
|
OR EXISTS -- aankomstdatum of tijdstip is aangepast
|
|
(SELECT fac_tracking_refkey
|
|
FROM fac_tracking t, fac_srtnotificatie sn
|
|
WHERE sn.fac_srtnotificatie_code = 'BEZUPD'
|
|
AND t.fac_srtnotificatie_key =
|
|
sn.fac_srtnotificatie_key
|
|
AND t.fac_tracking_refkey = a.bez_afspraak_key
|
|
AND fac_tracking_oms LIKE '%Aankomst:%'
|
|
AND TRUNC (t.fac_tracking_datum) =
|
|
TRUNC (SYSDATE))
|
|
OR EXISTS -- afspraak is aangemaakt
|
|
(SELECT fac_tracking_refkey
|
|
FROM fac_tracking t, fac_srtnotificatie sn
|
|
WHERE sn.fac_srtnotificatie_code = 'BEZMUT'
|
|
AND t.fac_srtnotificatie_key =
|
|
sn.fac_srtnotificatie_key
|
|
AND t.fac_tracking_refkey = a.bez_afspraak_key
|
|
AND TRUNC (t.fac_tracking_datum) =
|
|
TRUNC (SYSDATE)))
|
|
UNION ALL -- bedank/feedbackbrief
|
|
SELECT b.bez_bezoekers_key,
|
|
a.bez_afspraak_key,
|
|
TO_CHAR (bez_afspraak_datum, 'dd-mm-yyyy') datum,
|
|
TO_CHAR (bez_afspraak_datum, 'hh24:mi') tijd,
|
|
bk.bez_kenmerkwaarde_waarde email,
|
|
res_reservering_key,
|
|
res_rsv_ruimte_omschrijving,
|
|
'CUST02' fac_srtnotificatie_code
|
|
FROM bez_bezoekers b,
|
|
bez_afspraak a,
|
|
res_rsv_ruimte rrr,
|
|
bez_kenmerkwaarde bk,
|
|
bez_kenmerkwaarde bk2
|
|
WHERE b.bez_afspraak_key = a.bez_afspraak_key
|
|
AND a.res_rsv_ruimte_key = rrr.res_rsv_ruimte_key
|
|
AND bk.bez_bezoekers_key = b.bez_bezoekers_key
|
|
AND bk.bez_kenmerk_key = 1001
|
|
AND bk2.bez_bezoekers_key = b.bez_bezoekers_key
|
|
AND bk2.bez_kenmerk_key = 1020
|
|
AND TRUNC (
|
|
fac.datumtijdplusuitvoertijd (a.bez_afspraak_datum,
|
|
1,
|
|
'DAGEN')) =
|
|
TRUNC (SYSDATE);
|
|
|
|
CREATE OR REPLACE PACKAGE pnbr
|
|
AS
|
|
PROCEDURE update_vertr_bezoeker (p_bezoekers_key NUMBER);
|
|
|
|
PROCEDURE noti_bezoek;
|
|
|
|
PROCEDURE noti_bezoek_gastheer;
|
|
|
|
FUNCTION get_kenmerk (p_module IN VARCHAR2,
|
|
p_kenmerk_key IN NUMBER,
|
|
p_link_key IN NUMBER)
|
|
RETURN VARCHAR2;
|
|
|
|
FUNCTION get_kenmerkwaarde (p_kenmerk_type VARCHAR2,
|
|
p_kenmerkdomein_key NUMBER,
|
|
p_kenmerk_waarde VARCHAR2)
|
|
RETURN VARCHAR2;
|
|
|
|
PROCEDURE set_kenmerk(p_module IN VARCHAR2,
|
|
p_kenmerk_key IN NUMBER,
|
|
p_link_key IN NUMBER,
|
|
p_kenmerk_waarde IN VARCHAR2,
|
|
p_history IN NUMBER);
|
|
END;
|
|
/
|
|
|
|
CREATE OR REPLACE PACKAGE BODY pnbr
|
|
AS
|
|
PROCEDURE update_vertr_bezoeker (p_bezoekers_key IN NUMBER)
|
|
AS
|
|
oracle_err_num NUMBER;
|
|
oracle_err_mes VARCHAR2 (200);
|
|
v_errormsg VARCHAR2 (200);
|
|
|
|
BEGIN
|
|
-- Overschrijf de naam en het emailadres
|
|
UPDATE bez_bezoekers b
|
|
SET bez_afspraak_naam = 'Vertrouwelijk', bez_bezoekers_email = NULL
|
|
WHERE b.bez_bezoekers_key = p_bezoekers_key;
|
|
COMMIT;
|
|
|
|
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 ('VERTR_BEZOEKER',
|
|
'E',
|
|
v_errormsg,
|
|
'');
|
|
END;
|
|
|
|
/* PROCEDURE noti_bezoek
|
|
AS
|
|
-- cust01 brief naar cursusleider bij reserververingen
|
|
-- cust02 dank/feedbackbrief naar cursusleider van reservering
|
|
-- cust03 brief naar deelnemer aan reservering en los bezoek
|
|
|
|
CURSOR c IS
|
|
SELECT b.bez_bezoekers_key,
|
|
a.bez_afspraak_key,
|
|
TO_CHAR (bez_afspraak_datum, 'dd-mm-yyyy') datum,
|
|
TO_CHAR (bez_afspraak_datum, 'hh24:mi') tijd,
|
|
bk.bez_kenmerkwaarde_waarde email,
|
|
res_reservering_key,
|
|
res_rsv_ruimte_omschrijving,
|
|
DECODE (
|
|
(SELECT bk2.bez_kenmerkwaarde_waarde
|
|
FROM bez_kenmerkwaarde bk2
|
|
WHERE bk2.bez_bezoekers_key =
|
|
b.bez_bezoekers_key
|
|
AND bk2.bez_kenmerk_key = 1020),
|
|
1, DECODE (rrr.res_rsv_ruimte_key,
|
|
NULL, 'CUST03',
|
|
'CUST01'),
|
|
-- uitnodiging voor gastheer alleen als aangevinkt bij bezoek en gekoppeld aan reservering.
|
|
'CUST03') fac_srtnotificatie_code
|
|
FROM bez_bezoekers b,
|
|
bez_afspraak a,
|
|
res_rsv_ruimte rrr,
|
|
bez_kenmerkwaarde bk
|
|
WHERE b.bez_afspraak_key = a.bez_afspraak_key
|
|
AND a.res_rsv_ruimte_key = rrr.res_rsv_ruimte_key(+)
|
|
AND bk.bez_bezoekers_key = b.bez_bezoekers_key
|
|
AND bk.bez_kenmerk_key = 1001
|
|
AND ( --Herinnering 3 dagen van te voren is uitgeschakeld. PNBR#31869
|
|
--TRUNC (fac.datumtijdplusuitvoertijd (SYSDATE, 4, 'DAGEN')) =
|
|
-- TRUNC(fac.datumtijdplusuitvoertijd (a.bez_afspraak_datum,
|
|
-- 0,
|
|
-- 'UREN'))
|
|
-- OR
|
|
EXISTS -- email adres is als kenmerk toegevoegd
|
|
(SELECT kw.bez_kenmerkwaarde_key
|
|
FROM bez_kenmerkwaarde kw
|
|
WHERE kw.bez_kenmerk_key = 1001 -- emailadres externe bezoeker
|
|
AND kw.bez_bezoekers_key =
|
|
b.bez_bezoekers_key
|
|
AND TRUNC (
|
|
kw.bez_kenmerkwaarde_aanmaak) =
|
|
TRUNC (SYSDATE))
|
|
OR EXISTS -- aankomstdatum of tijdstip is aangepast
|
|
(SELECT fac_tracking_refkey
|
|
FROM fac_tracking t, fac_srtnotificatie sn
|
|
WHERE sn.fac_srtnotificatie_code =
|
|
'BEZUPD'
|
|
AND t.fac_srtnotificatie_key =
|
|
sn.fac_srtnotificatie_key
|
|
AND t.fac_tracking_refkey =
|
|
a.bez_afspraak_key
|
|
AND fac_tracking_oms LIKE '%Aankomst:%'
|
|
AND TRUNC (t.fac_tracking_datum) =
|
|
TRUNC (SYSDATE))
|
|
OR EXISTS -- afspraak is aangemaakt
|
|
(SELECT fac_tracking_refkey
|
|
FROM fac_tracking t, fac_srtnotificatie sn
|
|
WHERE sn.fac_srtnotificatie_code =
|
|
'BEZMUT'
|
|
AND t.fac_srtnotificatie_key =
|
|
sn.fac_srtnotificatie_key
|
|
AND t.fac_tracking_refkey =
|
|
a.bez_afspraak_key
|
|
AND TRUNC (t.fac_tracking_datum) =
|
|
TRUNC (SYSDATE)))
|
|
UNION ALL -- bedank/feedbackbrief
|
|
SELECT b.bez_bezoekers_key,
|
|
a.bez_afspraak_key,
|
|
TO_CHAR (bez_afspraak_datum, 'dd-mm-yyyy') datum,
|
|
TO_CHAR (bez_afspraak_datum, 'hh24:mi') tijd,
|
|
bk.bez_kenmerkwaarde_waarde email,
|
|
res_reservering_key,
|
|
res_rsv_ruimte_omschrijving,
|
|
'CUST02' fac_srtnotificatie_code
|
|
FROM bez_bezoekers b,
|
|
bez_afspraak a,
|
|
res_rsv_ruimte rrr,
|
|
bez_kenmerkwaarde bk,
|
|
bez_kenmerkwaarde bk2
|
|
WHERE b.bez_afspraak_key = a.bez_afspraak_key
|
|
AND a.res_rsv_ruimte_key = rrr.res_rsv_ruimte_key
|
|
AND bk.bez_bezoekers_key = b.bez_bezoekers_key
|
|
AND bk.bez_kenmerk_key = 1001
|
|
AND bk2.bez_bezoekers_key = b.bez_bezoekers_key
|
|
AND bk2.bez_kenmerk_key = 1020
|
|
AND TRUNC (
|
|
fac.datumtijdplusuitvoertijd (
|
|
a.bez_afspraak_datum,
|
|
1,
|
|
'DAGEN')) =
|
|
TRUNC (SYSDATE);
|
|
|
|
oracle_err_num NUMBER;
|
|
oracle_err_mes VARCHAR2 (200);
|
|
v_errormsg VARCHAR2 (200);
|
|
v_srtnotificatie_key NUMBER (10);
|
|
v_onderwerp VARCHAR2 (100);
|
|
BEGIN
|
|
-- cleanup kenmerklink
|
|
DELETE bez_kenmerkwaarde
|
|
WHERE bez_kenmerk_key = 1000; -- link naar reservering
|
|
|
|
FOR rec IN c
|
|
LOOP
|
|
IF rec.res_reservering_key IS NOT NULL
|
|
THEN
|
|
INSERT INTO bez_kenmerkwaarde (bez_bezoekers_key,
|
|
bez_kenmerk_key,
|
|
bez_kenmerkwaarde_waarde)
|
|
VALUES (rec.bez_bezoekers_key,
|
|
1000,
|
|
rec.res_reservering_key);
|
|
|
|
IF rec.fac_srtnotificatie_code = 'CUST02' -- feedbackbrief
|
|
THEN
|
|
v_onderwerp :=
|
|
'Feedback: ' || rec.res_rsv_ruimte_omschrijving;
|
|
ELSE
|
|
v_onderwerp :=
|
|
'Uitnodiging: ' || rec.res_rsv_ruimte_omschrijving;
|
|
END IF;
|
|
ELSE
|
|
v_onderwerp :=
|
|
'Afspraak ' || rec.datum || ' om ' || rec.tijd || ' uur';
|
|
END IF;
|
|
|
|
SELECT fac_srtnotificatie_key
|
|
INTO v_srtnotificatie_key
|
|
FROM fac_srtnotificatie
|
|
WHERE fac_srtnotificatie_code = rec.fac_srtnotificatie_code;
|
|
|
|
INSERT INTO fac_notificatie (fac_srtnotificatie_key,
|
|
fac_notificatie_status,
|
|
fac_notificatie_receiver_email,
|
|
fac_notificatie_oms,
|
|
fac_notificatie_refkey,
|
|
fac_notificatie_extrakey,
|
|
fac_notificatie_prioriteit)
|
|
VALUES (v_srtnotificatie_key,
|
|
2,
|
|
rec.email,
|
|
v_onderwerp,
|
|
rec.bez_afspraak_key,
|
|
rec.bez_bezoekers_key,
|
|
2);
|
|
|
|
IF rec.fac_srtnotificatie_code = 'CUST02' -- feedbackbrief
|
|
THEN
|
|
INSERT INTO fac_notificatie (fac_srtnotificatie_key,
|
|
fac_notificatie_status,
|
|
prs_perslid_key_receiver,
|
|
fac_notificatie_oms,
|
|
fac_notificatie_refkey,
|
|
fac_notificatie_extrakey,
|
|
fac_notificatie_prioriteit)
|
|
VALUES (v_srtnotificatie_key,
|
|
2,
|
|
3593, -- kopie naar Rob van der Plas
|
|
v_onderwerp,
|
|
rec.bez_afspraak_key,
|
|
rec.bez_bezoekers_key,
|
|
2);
|
|
END IF;
|
|
END LOOP;
|
|
|
|
COMMIT;
|
|
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 ('NOTI_BEZOEKERS',
|
|
'E',
|
|
v_errormsg,
|
|
'');
|
|
END;
|
|
*/
|
|
|
|
-- Met 62081 (Inrichten bezoekersmodule + aanzetten) zijn de wensen wat aangepast
|
|
-- Ivm de wat grillige organisatie binnen PNB voorlopig de oorspronkelijke notificaties ook maar even laten staan
|
|
PROCEDURE noti_bezoek
|
|
AS
|
|
-- cust03 brief naar deelnemer aan reservering en los bezoek
|
|
|
|
CURSOR c IS
|
|
SELECT b.bez_bezoekers_key,
|
|
a.bez_afspraak_key,
|
|
TO_CHAR (a.bez_afspraak_datum, 'dd-mm-yyyy') datum,
|
|
TO_CHAR (a.bez_afspraak_datum, 'hh24:mi') tijd,
|
|
b.bez_bezoekers_email email,
|
|
res_reservering_key,
|
|
res_rsv_ruimte_omschrijving,
|
|
'CUST03' fac_srtnotificatie_code
|
|
FROM bez_bezoekers b, bez_afspraak a, res_rsv_ruimte rrr
|
|
WHERE b.bez_afspraak_key = a.bez_afspraak_key
|
|
AND a.res_rsv_ruimte_key = rrr.res_rsv_ruimte_key(+)
|
|
AND b.bez_bezoekers_email IS NOT NULL
|
|
AND TRUNC (a.bez_afspraak_datum) < TRUNC (SYSDATE) + 4
|
|
AND TRUNC (a.bez_afspraak_datum) > TRUNC (SYSDATE) - 1
|
|
AND NOT EXISTS --
|
|
(SELECT kw.bez_kenmerkwaarde_key
|
|
FROM bez_kenmerkwaarde kw
|
|
WHERE kw.bez_kenmerk_key = 1001 -- time stamp waarop notificatie verstuurd is
|
|
AND kw.bez_bezoekers_key = b.bez_bezoekers_key);
|
|
|
|
|
|
oracle_err_num NUMBER;
|
|
oracle_err_mes VARCHAR2 (200);
|
|
v_errormsg VARCHAR2 (200);
|
|
v_srtnotificatie_key NUMBER (10);
|
|
v_onderwerp VARCHAR2 (100);
|
|
BEGIN
|
|
FOR rec IN c
|
|
LOOP
|
|
v_onderwerp :=
|
|
'Uw bezoek op '
|
|
|| rec.datum
|
|
|| ' aan het Provinciehuis Noord-Brabant';
|
|
|
|
|
|
SELECT fac_srtnotificatie_key
|
|
INTO v_srtnotificatie_key
|
|
FROM fac_srtnotificatie
|
|
WHERE fac_srtnotificatie_code = rec.fac_srtnotificatie_code;
|
|
|
|
INSERT INTO fac_notificatie (fac_srtnotificatie_key,
|
|
fac_notificatie_status,
|
|
fac_notificatie_receiver_email,
|
|
fac_notificatie_oms,
|
|
fac_notificatie_refkey,
|
|
fac_notificatie_extrakey,
|
|
fac_notificatie_prioriteit)
|
|
VALUES (v_srtnotificatie_key,
|
|
2,
|
|
rec.email,
|
|
v_onderwerp,
|
|
rec.bez_afspraak_key,
|
|
rec.bez_bezoekers_key,
|
|
2);
|
|
|
|
-- een timestamp zetten dat de mail verstuurd is
|
|
pnbr.set_kenmerk ('BEZ',
|
|
1001,
|
|
rec.bez_bezoekers_key,
|
|
TO_CHAR (SYSDATE, 'yyyy-mm-dd hh24:mi:ss'),
|
|
0);
|
|
END LOOP;
|
|
|
|
COMMIT;
|
|
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 ('NOTI_BEZOEKERS',
|
|
'E',
|
|
v_errormsg,
|
|
'');
|
|
END;
|
|
|
|
PROCEDURE noti_bezoek_gastheer
|
|
AS
|
|
-- Notificatie die naar de gastheer verzonden wordt 15 minuten voordat het bezoek verwacht wordt.
|
|
|
|
oracle_err_num NUMBER;
|
|
oracle_err_mes VARCHAR2 (200);
|
|
v_errormsg VARCHAR2 (200);
|
|
v_srtnotificatie_key NUMBER (10);
|
|
v_van DATE;
|
|
v_tot DATE;
|
|
v_onderwerp VARCHAR2 (100);
|
|
BEGIN
|
|
-- cleanup kenmerklink
|
|
SELECT GREATEST (
|
|
COALESCE (
|
|
fac.safe_to_date (MAX (fac_usrdata_omschr),
|
|
'yyyymmdd hh24miss'),
|
|
SYSDATE - 10),
|
|
SYSDATE + 1 / (24 * 12)) -- 5 min voor aanvang
|
|
INTO v_van
|
|
FROM fac_usrdata
|
|
WHERE fac_usrdata_code = 'BEZ_NOT_LASTTIME';
|
|
|
|
v_tot := SYSDATE + 3 / (24 * 12); -- 15 min voor aanvang
|
|
|
|
SELECT fac_srtnotificatie_key
|
|
INTO v_srtnotificatie_key
|
|
FROM fac_srtnotificatie
|
|
WHERE fac_srtnotificatie_code = 'BEZMAI';
|
|
|
|
INSERT INTO fac_notificatie (fac_srtnotificatie_key,
|
|
fac_notificatie_status,
|
|
fac_notificatie_receiver_email,
|
|
fac_notificatie_oms,
|
|
fac_notificatie_refkey,
|
|
fac_notificatie_extrakey,
|
|
fac_notificatie_prioriteit,
|
|
prs_perslid_key_receiver)
|
|
SELECT v_srtnotificatie_key,
|
|
2,
|
|
h.prs_perslid_email,
|
|
'Herinnering: '
|
|
|| DECODE (
|
|
rrr.res_rsv_ruimte_key,
|
|
NULL, 'Reservering '
|
|
|| rrr.res_reservering_key
|
|
|| ': over 15 minuten arriveren deelnemers voor bijeenkomst: '
|
|
|| rrr.res_rsv_ruimte_omschrijving,
|
|
'Over 15 minuten arriveert bezoek voor uw afspraak'),
|
|
a.bez_afspraak_key,
|
|
NULL,
|
|
2,
|
|
h.prs_perslid_key
|
|
FROM bez_afspraak a, prs_perslid h, res_rsv_ruimte rrr
|
|
WHERE a.res_rsv_ruimte_key = rrr.res_rsv_ruimte_key
|
|
AND bez_afspraak_datum > v_van
|
|
AND bez_afspraak_datum <= v_tot
|
|
AND a.bez_afspraak_host_key = h.prs_perslid_key
|
|
AND h.prs_perslid_email IS NOT NULL;
|
|
|
|
UPDATE fac_usrdata
|
|
SET fac_usrdata_omschr = TO_CHAR (v_tot, 'yyyymmdd hh24miss')
|
|
WHERE fac_usrdata_code = 'BEZ_NOT_LASTTIME';
|
|
|
|
COMMIT;
|
|
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 ('NOTI_BEZOEKERS_GASTHEER',
|
|
'E',
|
|
v_errormsg,
|
|
'');
|
|
END;
|
|
|
|
FUNCTION get_kenmerk (p_module IN VARCHAR2,
|
|
p_kenmerk_key IN NUMBER,
|
|
p_link_key IN NUMBER)
|
|
RETURN VARCHAR2
|
|
AS
|
|
v_kenmerk_type mld_srtkenmerk.mld_srtkenmerk_kenmerktype%TYPE;
|
|
v_kenmerk_waarde mld_kenmerkmelding.mld_kenmerkmelding_waarde%TYPE;
|
|
v_kenmerkdomein_key fac_kenmerkdomein.fac_kenmerkdomein_key%TYPE;
|
|
BEGIN
|
|
CASE p_module
|
|
WHEN 'MLD'
|
|
THEN
|
|
SELECT mld_srtkenmerk_kenmerktype,
|
|
sk.fac_kenmerkdomein_key,
|
|
km.mld_kenmerkmelding_waarde
|
|
INTO v_kenmerk_type, v_kenmerkdomein_key, v_kenmerk_waarde
|
|
FROM mld_v_aanwezigkenmerkmelding km,
|
|
mld_kenmerk k,
|
|
mld_srtkenmerk sk
|
|
WHERE km.mld_melding_key = p_link_key
|
|
AND km.mld_kenmerk_key = p_kenmerk_key
|
|
AND km.mld_kenmerk_key = k.mld_kenmerk_key
|
|
AND k.mld_srtkenmerk_key = sk.mld_srtkenmerk_key;
|
|
WHEN 'CNT'
|
|
THEN
|
|
SELECT cnt_srtkenmerk_kenmerktype,
|
|
sk.fac_kenmerkdomein_key,
|
|
kc.cnt_kenmerkcontract_waarde
|
|
INTO v_kenmerk_type, v_kenmerkdomein_key, v_kenmerk_waarde
|
|
FROM cnt_kenmerkcontract kc,
|
|
cnt_kenmerk k,
|
|
cnt_srtkenmerk sk
|
|
WHERE kc.cnt_contract_key = p_link_key
|
|
AND kc.cnt_kenmerk_key = p_kenmerk_key
|
|
AND kc.cnt_kenmerk_key = k.cnt_kenmerk_key
|
|
AND k.cnt_srtkenmerk_key = sk.cnt_srtkenmerk_key;
|
|
WHEN 'ALG'
|
|
THEN
|
|
SELECT alg_kenmerk_kenmerktype,
|
|
k.fac_kenmerkdomein_key,
|
|
aogk.alg_onrgoedkenmerk_waarde
|
|
INTO v_kenmerk_type, v_kenmerkdomein_key, v_kenmerk_waarde
|
|
FROM alg_onrgoedkenmerk aogk, alg_kenmerk k
|
|
WHERE aogk.alg_onrgoed_key = p_link_key
|
|
AND aogk.alg_kenmerk_key = p_kenmerk_key
|
|
AND aogk.alg_kenmerk_key = k.alg_kenmerk_key;
|
|
WHEN 'INS'
|
|
THEN
|
|
SELECT sk.ins_srtkenmerk_kenmerktype,
|
|
sk.fac_kenmerkdomein_key,
|
|
ikd.ins_kenmerkdeel_waarde
|
|
INTO v_kenmerk_type, v_kenmerkdomein_key, v_kenmerk_waarde
|
|
FROM ins_kenmerkdeel ikd, ins_kenmerk k, ins_srtkenmerk sk
|
|
WHERE ikd.ins_deel_key = p_link_key
|
|
AND ikd.ins_kenmerkdeel_verwijder IS NULL
|
|
AND ikd.ins_kenmerk_key = p_kenmerk_key
|
|
AND ikd.ins_kenmerk_key = k.ins_kenmerk_key
|
|
AND k.ins_srtkenmerk_key = sk.ins_srtkenmerk_key;
|
|
END CASE;
|
|
|
|
RETURN get_kenmerkwaarde (v_kenmerk_type,
|
|
v_kenmerkdomein_key,
|
|
v_kenmerk_waarde);
|
|
END;
|
|
|
|
PROCEDURE set_kenmerk(p_module IN VARCHAR2,
|
|
p_kenmerk_key IN NUMBER,
|
|
p_link_key IN NUMBER,
|
|
p_kenmerk_waarde IN VARCHAR2,
|
|
p_history IN NUMBER)
|
|
AS
|
|
v_count NUMBER;
|
|
v_niveau VARCHAR2 (1);
|
|
BEGIN
|
|
CASE p_module
|
|
WHEN 'PRS'
|
|
THEN
|
|
-- niveau van prs_kenmerk ophalen, omdat deze ook in prs_kenmerklink wordt
|
|
-- opgeslagen (da's dus redundant..?)
|
|
SELECT prs_kenmerk_niveau
|
|
INTO v_niveau
|
|
FROM prs_kenmerk
|
|
WHERE prs_kenmerk_key = p_kenmerk_key;
|
|
|
|
SELECT COUNT ( * )
|
|
INTO v_count
|
|
FROM prs_kenmerklink
|
|
WHERE prs_link_key = p_link_key
|
|
AND prs_kenmerk_key = p_kenmerk_key
|
|
AND prs_kenmerklink_verwijder IS NULL;
|
|
|
|
IF v_count = 1
|
|
THEN
|
|
IF p_kenmerk_waarde IS NULL
|
|
THEN
|
|
DELETE prs_kenmerklink
|
|
WHERE prs_link_key = p_link_key
|
|
AND prs_kenmerk_key = p_kenmerk_key
|
|
AND prs_kenmerklink_verwijder IS NULL;
|
|
ELSE
|
|
UPDATE prs_kenmerklink
|
|
SET prs_kenmerklink_waarde = p_kenmerk_waarde
|
|
WHERE prs_link_key = p_link_key
|
|
AND prs_kenmerk_key = p_kenmerk_key
|
|
AND prs_kenmerklink_verwijder IS NULL;
|
|
END IF;
|
|
ELSE
|
|
IF p_kenmerk_key IS NOT NULL AND p_kenmerk_waarde IS NOT NULL
|
|
THEN
|
|
INSERT INTO prs_kenmerklink (prs_kenmerk_key,
|
|
prs_link_key,
|
|
prs_kenmerklink_niveau,
|
|
prs_kenmerklink_waarde)
|
|
VALUES (p_kenmerk_key,
|
|
p_link_key,
|
|
v_niveau,
|
|
p_kenmerk_waarde);
|
|
END IF;
|
|
END IF;
|
|
|
|
WHEN 'ALG'
|
|
THEN
|
|
-- niveau van prs_kenmerk ophalen, omdat deze ook in prs_kenmerklink wordt
|
|
-- opgeslagen (da's dus redundant..?)
|
|
SELECT alg_kenmerk_niveau
|
|
INTO v_niveau
|
|
FROM alg_kenmerk
|
|
WHERE alg_kenmerk_key = p_kenmerk_key;
|
|
|
|
SELECT COUNT ( * )
|
|
INTO v_count
|
|
FROM alg_onrgoedkenmerk
|
|
WHERE alg_onrgoed_key = p_link_key
|
|
AND alg_kenmerk_key = p_kenmerk_key
|
|
AND alg_onrgoedkenmerk_verwijder IS NULL;
|
|
|
|
IF v_count = 1
|
|
THEN
|
|
IF p_kenmerk_waarde IS NULL
|
|
THEN
|
|
DELETE alg_onrgoedkenmerk
|
|
WHERE alg_onrgoed_key = p_link_key
|
|
AND alg_kenmerk_key = p_kenmerk_key
|
|
AND alg_onrgoedkenmerk_verwijder IS NULL;
|
|
ELSE
|
|
UPDATE alg_onrgoedkenmerk
|
|
SET alg_onrgoedkenmerk_waarde = p_kenmerk_waarde
|
|
WHERE alg_onrgoed_key = p_link_key
|
|
AND alg_kenmerk_key = p_kenmerk_key
|
|
AND alg_onrgoedkenmerk_verwijder IS NULL;
|
|
END IF;
|
|
ELSE
|
|
IF p_kenmerk_key IS NOT NULL AND p_kenmerk_waarde IS NOT NULL
|
|
THEN
|
|
INSERT INTO alg_onrgoedkenmerk (alg_kenmerk_key,
|
|
alg_onrgoed_key,
|
|
alg_onrgoed_niveau,
|
|
alg_onrgoedkenmerk_waarde)
|
|
VALUES (p_kenmerk_key,
|
|
p_link_key,
|
|
v_niveau,
|
|
p_kenmerk_waarde);
|
|
END IF;
|
|
END IF;
|
|
|
|
WHEN 'BEZ'
|
|
THEN
|
|
|
|
SELECT COUNT ( * )
|
|
INTO v_count
|
|
FROM bez_kenmerkwaarde
|
|
WHERE bez_bezoekers_key = p_link_key
|
|
AND bez_kenmerk_key = p_kenmerk_key
|
|
AND bez_kenmerkwaarde_verwijder IS NULL;
|
|
|
|
IF v_count = 1
|
|
THEN
|
|
IF p_kenmerk_waarde IS NULL
|
|
THEN
|
|
DELETE bez_kenmerkwaarde
|
|
WHERE bez_bezoekers_key = p_link_key
|
|
AND bez_kenmerk_key = p_kenmerk_key
|
|
AND bez_kenmerkwaarde_verwijder IS NULL;
|
|
ELSE
|
|
UPDATE bez_kenmerkwaarde
|
|
SET bez_kenmerkwaarde_waarde = p_kenmerk_waarde
|
|
WHERE bez_bezoekers_key = p_link_key
|
|
AND bez_kenmerk_key = p_kenmerk_key
|
|
AND bez_kenmerkwaarde_verwijder IS NULL;
|
|
END IF;
|
|
ELSE
|
|
IF p_kenmerk_key IS NOT NULL AND p_kenmerk_waarde IS NOT NULL
|
|
THEN
|
|
INSERT INTO bez_kenmerkwaarde (bez_kenmerk_key,
|
|
bez_bezoekers_key,
|
|
bez_kenmerkwaarde_waarde)
|
|
VALUES (p_kenmerk_key,
|
|
p_link_key,
|
|
p_kenmerk_waarde);
|
|
END IF;
|
|
END IF;
|
|
|
|
WHEN 'MLD'
|
|
THEN
|
|
-- melding- of opdrachtkenmerk?
|
|
SELECT mld_kenmerk_niveau
|
|
INTO v_niveau
|
|
FROM mld_kenmerk
|
|
WHERE mld_kenmerk_key = p_kenmerk_key;
|
|
|
|
CASE v_niveau
|
|
WHEN 'O'
|
|
THEN
|
|
SELECT COUNT ( * )
|
|
INTO v_count
|
|
FROM mld_kenmerkopdr
|
|
WHERE mld_opdr_key = p_link_key
|
|
AND mld_kenmerk_key = p_kenmerk_key
|
|
AND mld_kenmerkopdr_verwijder IS NULL;
|
|
|
|
IF v_count = 1
|
|
THEN
|
|
IF p_kenmerk_waarde IS NULL
|
|
THEN
|
|
DELETE mld_kenmerkopdr
|
|
WHERE mld_opdr_key = p_link_key
|
|
AND mld_kenmerk_key = p_kenmerk_key
|
|
AND mld_kenmerkopdr_verwijder IS NULL;
|
|
ELSE
|
|
UPDATE mld_kenmerkopdr
|
|
SET mld_kenmerkopdr_waarde = p_kenmerk_waarde
|
|
WHERE mld_opdr_key = p_link_key
|
|
AND mld_kenmerk_key = p_kenmerk_key
|
|
AND mld_kenmerkopdr_verwijder IS NULL;
|
|
END IF;
|
|
ELSE
|
|
IF p_kenmerk_key IS NOT NULL AND p_kenmerk_waarde IS NOT NULL
|
|
THEN
|
|
INSERT INTO mld_kenmerkopdr (mld_kenmerk_key,
|
|
mld_opdr_key,
|
|
mld_kenmerkopdr_waarde)
|
|
VALUES (p_kenmerk_key,
|
|
p_link_key,
|
|
p_kenmerk_waarde);
|
|
END IF;
|
|
END IF;
|
|
WHEN 'S'
|
|
THEN
|
|
SELECT COUNT ( * )
|
|
INTO v_count
|
|
FROM mld_kenmerkmelding
|
|
WHERE mld_melding_key = p_link_key
|
|
AND mld_kenmerk_key = p_kenmerk_key
|
|
AND mld_kenmerkmelding_verwijder IS NULL;
|
|
|
|
IF v_count = 1
|
|
THEN
|
|
IF p_kenmerk_waarde IS NULL
|
|
THEN
|
|
DELETE mld_kenmerkmelding
|
|
WHERE mld_melding_key = p_link_key
|
|
AND mld_kenmerk_key = p_kenmerk_key
|
|
AND mld_kenmerkmelding_verwijder IS NULL;
|
|
ELSE
|
|
UPDATE mld_kenmerkmelding
|
|
SET mld_kenmerkmelding_waarde = p_kenmerk_waarde
|
|
WHERE mld_melding_key = p_link_key
|
|
AND mld_kenmerk_key = p_kenmerk_key
|
|
AND mld_kenmerkmelding_verwijder IS NULL;
|
|
END IF;
|
|
ELSE
|
|
IF p_kenmerk_key IS NOT NULL AND p_kenmerk_waarde IS NOT NULL
|
|
THEN
|
|
INSERT INTO mld_kenmerkmelding (mld_kenmerk_key,
|
|
mld_melding_key,
|
|
mld_kenmerkmelding_waarde)
|
|
VALUES (p_kenmerk_key,
|
|
p_link_key,
|
|
p_kenmerk_waarde);
|
|
END IF;
|
|
END IF;
|
|
END CASE;
|
|
|
|
WHEN 'FIN'
|
|
THEN
|
|
-- niveau van prs_kenmerk ophalen, omdat deze ook in prs_kenmerklink wordt
|
|
-- opgeslagen (da's dus redundant..?)
|
|
SELECT fin_kenmerk_type
|
|
INTO v_niveau
|
|
FROM fin_kenmerk
|
|
WHERE fin_kenmerk_key = p_kenmerk_key;
|
|
|
|
|
|
IF v_niveau = 'F'
|
|
THEN
|
|
SELECT COUNT ( * )
|
|
INTO v_count
|
|
FROM fin_kenmerkfactuur
|
|
WHERE fin_factuur_key = p_link_key
|
|
AND fin_kenmerk_key = p_kenmerk_key
|
|
AND fin_kenmerkfactuur_verwijder IS NULL;
|
|
|
|
IF v_count = 1
|
|
THEN
|
|
IF p_kenmerk_waarde IS NULL
|
|
THEN
|
|
DELETE fin_kenmerkfactuur
|
|
WHERE fin_factuur_key = p_link_key
|
|
AND fin_kenmerk_key = p_kenmerk_key
|
|
AND fin_kenmerkfactuur_verwijder IS NULL;
|
|
ELSE
|
|
UPDATE fin_kenmerkfactuur
|
|
SET fin_kenmerkfactuur_waarde = p_kenmerk_waarde
|
|
WHERE fin_factuur_key = p_link_key
|
|
AND fin_kenmerk_key = p_kenmerk_key
|
|
AND fin_kenmerkfactuur_verwijder IS NULL;
|
|
END IF;
|
|
ELSE
|
|
IF p_kenmerk_key IS NOT NULL AND p_kenmerk_waarde IS NOT NULL
|
|
THEN
|
|
INSERT INTO fin_kenmerkfactuur (fin_kenmerk_key,
|
|
fin_factuur_key,
|
|
fin_kenmerkfactuur_waarde)
|
|
VALUES (p_kenmerk_key,
|
|
p_link_key,
|
|
p_kenmerk_waarde);
|
|
END IF;
|
|
END IF;
|
|
ELSE
|
|
-- Kenmerk bij factuurregel
|
|
SELECT COUNT ( * )
|
|
INTO v_count
|
|
FROM fin_kenmerkfactregel
|
|
WHERE fin_factuurregel_key = p_link_key
|
|
AND fin_kenmerk_key = p_kenmerk_key
|
|
AND fin_kenmerkfactregel_verwijder IS NULL;
|
|
|
|
IF v_count = 1
|
|
THEN
|
|
IF p_kenmerk_waarde IS NULL
|
|
THEN
|
|
DELETE fin_kenmerkfactregel
|
|
WHERE fin_factuurregel_key = p_link_key
|
|
AND fin_kenmerk_key = p_kenmerk_key
|
|
AND fin_kenmerkfactregel_verwijder IS NULL;
|
|
ELSE
|
|
UPDATE fin_kenmerkfactregel
|
|
SET fin_kenmerkfactregel_waarde = p_kenmerk_waarde
|
|
WHERE fin_factuurregel_key = p_link_key
|
|
AND fin_kenmerk_key = p_kenmerk_key
|
|
AND fin_kenmerkfactregel_verwijder IS NULL;
|
|
END IF;
|
|
ELSE
|
|
IF p_kenmerk_key IS NOT NULL AND p_kenmerk_waarde IS NOT NULL
|
|
THEN
|
|
INSERT INTO fin_kenmerkfactregel (fin_kenmerk_key,
|
|
fin_factuurregel_key,
|
|
fin_kenmerkfactregel_waarde)
|
|
VALUES (p_kenmerk_key,
|
|
p_link_key,
|
|
p_kenmerk_waarde);
|
|
END IF;
|
|
END IF;
|
|
|
|
END IF;
|
|
|
|
WHEN 'RES'
|
|
THEN
|
|
-- res_rsv_ruimte kenmerk
|
|
SELECT COUNT ( * )
|
|
INTO v_count
|
|
FROM res_kenmerkwaarde
|
|
WHERE res_rsv_ruimte_key = p_link_key
|
|
AND res_kenmerk_key = p_kenmerk_key
|
|
AND res_kenmerkwaarde_verwijder IS NULL;
|
|
|
|
IF v_count = 1
|
|
THEN
|
|
IF p_kenmerk_waarde IS NULL
|
|
THEN
|
|
DELETE res_kenmerkwaarde
|
|
WHERE res_rsv_ruimte_key = p_link_key
|
|
AND res_kenmerk_key = p_kenmerk_key
|
|
AND res_kenmerkwaarde_verwijder IS NULL;
|
|
ELSE
|
|
UPDATE res_kenmerkwaarde
|
|
SET res_kenmerkreservering_waarde = p_kenmerk_waarde
|
|
WHERE res_rsv_ruimte_key = p_link_key
|
|
AND res_kenmerk_key = p_kenmerk_key
|
|
AND res_kenmerkwaarde_verwijder IS NULL;
|
|
END IF;
|
|
ELSE
|
|
IF p_kenmerk_key IS NOT NULL AND p_kenmerk_waarde IS NOT NULL
|
|
THEN
|
|
INSERT INTO res_kenmerkwaarde (res_kenmerk_key,
|
|
res_rsv_ruimte_key,
|
|
res_kenmerkreservering_waarde)
|
|
VALUES (p_kenmerk_key,
|
|
p_link_key,
|
|
p_kenmerk_waarde);
|
|
END IF;
|
|
END IF;
|
|
END CASE;
|
|
END;
|
|
|
|
|
|
FUNCTION get_kenmerkwaarde (p_kenmerk_type VARCHAR2,
|
|
p_kenmerkdomein_key NUMBER,
|
|
p_kenmerk_waarde VARCHAR2)
|
|
RETURN VARCHAR2
|
|
AS
|
|
v_result VARCHAR2 (2000);
|
|
BEGIN
|
|
IF p_kenmerk_type = 'R' OR p_kenmerk_type = 'S'
|
|
THEN
|
|
v_result :=
|
|
fac.getdomeinwaarde (p_kenmerkdomein_key, p_kenmerk_waarde);
|
|
ELSIF p_kenmerk_type = 'D'
|
|
THEN
|
|
v_result :=
|
|
TO_CHAR (fac.safe_to_date (p_kenmerk_waarde, 'dd-mm-yyyy'),
|
|
'yyyy-mm-dd');
|
|
ELSE
|
|
v_result := p_kenmerk_waarde;
|
|
END IF;
|
|
|
|
RETURN v_result;
|
|
END;
|
|
END;
|
|
/
|
|
|
|
-- script om dagelijks terugkerende scripts aan te roepen.
|
|
|
|
CREATE OR REPLACE PROCEDURE pnbr_select_daily_task (p_applname IN VARCHAR2,
|
|
p_applrun IN VARCHAR2)
|
|
AS
|
|
BEGIN
|
|
-- notificatiejob om voor bezoekers.
|
|
pnbr.noti_bezoek ();
|
|
END;
|
|
/
|
|
|
|
-- script om 5-min terugkerende scripts aan te roepen.
|
|
|
|
CREATE OR REPLACE PROCEDURE pnbr_select_five_min_task (
|
|
p_applname IN VARCHAR2,
|
|
p_applrun IN VARCHAR2)
|
|
AS
|
|
BEGIN
|
|
-- notificatiejob om bezoekers te notificeren naar de gastheer.
|
|
pnbr.noti_bezoek_gastheer ();
|
|
END;
|
|
/
|
|
|
|
--=============================================================================
|
|
-- IMPORTFUNCTIES
|
|
-------------------------------------------------------------------------------
|
|
|
|
CREATE OR REPLACE PROCEDURE pnbr_import_perslid_mut (p_import_key IN NUMBER)
|
|
AS
|
|
v_seq_of_columns VARCHAR (255);
|
|
BEGIN
|
|
v_seq_of_columns :=
|
|
'0;0;0;0;0;0;7;8;9;11;10;0;0;0;0;13;14;15;0;17;16;18;19;12;0;0;0;0;0;30;31;32;33;34;35;36;37;38;39;40;41;42;43;44;45;46';
|
|
-- '0;0;0;4;5;6;7;8;9;11;10;0;0;0;0;13;14;15;0;17;16;18;19;12;0;0;3;1;2;30;31;32;33;34;35;36;37;38;39;40;41;42;43;44;45;46';
|
|
prs.import_perslid (
|
|
p_import_key,
|
|
v_seq_of_columns,
|
|
'LOCATIECODE;GEBOUWCODE;BOUWLAAGVOLGNUMMER;RUIMTENUMMER;WERKPLEKVOLGNUMMER;OMSCHRIJVING;AFDELINGSCODE;PERSOONACHTERNAAM;TUSSENVOEGSEL;VOORLETTERS;VOORNAAM;TITEL_AANHEF;TELEFOONNUMMER;MOBIEL;EMAIL;FUNCTIE;PERSONEELSNUMMER;LOGINNAAM;PASSWORD%');
|
|
|
|
-- we gebruikten kenmerk1 om tijdelijk de verdieping op te slaan. Bij PNBR kunnen namelijk letters in de verdieping staan. Deze
|
|
-- proberen we eruit te werken zodat we op het laatst de verdieping weer om kunnen zetten.
|
|
|
|
-- Zie Logcentre #63326: aanpassing personen import. De ruimte gegevens geven veel foutmeldingen.
|
|
-- We nemen de locatie gegevens voorlopig niet meer over
|
|
/*
|
|
UPDATE fac_imp_perslid
|
|
SET alg_locatie_code = 'PH',
|
|
alg_gebouw_code = '01',
|
|
alg_verdieping_volgnr =
|
|
DECODE (prs_kenmerk1,
|
|
'B (Begane grond)', 0,
|
|
'P (Parkeerkuilniveau)', -1,
|
|
fac.safe_to_number (SUBSTR (prs_kenmerk1, 12, 2))),
|
|
alg_ruimte_nr =
|
|
DECODE (UPPER (alg_ruimte_nr), 'FLEX', '_FLEX', alg_ruimte_nr)
|
|
WHERE prs_kenmerk2 = 'Provinciehuis - toren'
|
|
AND prs_kenmerk1 NOT LIKE 'Domein%';
|
|
|
|
-- Pas de ruimten van de nieuwbouw aan.
|
|
UPDATE fac_imp_perslid
|
|
SET alg_locatie_code = 'PH',
|
|
alg_gebouw_code = '02',
|
|
alg_verdieping_volgnr =
|
|
fac.safe_to_number (SUBSTR (prs_kenmerk1, 12, 1)),
|
|
alg_ruimte_nr = COALESCE (alg_ruimte_nr, '_FLEX')
|
|
WHERE prs_kenmerk2 = 'Provinciehuis - nieuwbouw';
|
|
|
|
UPDATE fac_imp_perslid
|
|
SET alg_locatie_code = 'PH',
|
|
alg_gebouw_code = '01',
|
|
alg_verdieping_volgnr =
|
|
fac.safe_to_number (SUBSTR (prs_kenmerk1, 11, 2)) + 1,
|
|
alg_ruimte_nr = '_FLEX'
|
|
WHERE prs_kenmerk2 = 'Provinciehuis - toren'
|
|
AND prs_kenmerk1 LIKE 'Domein%';
|
|
|
|
UPDATE fac_imp_perslid
|
|
SET alg_locatie_code = 'OMWB',
|
|
alg_gebouw_code = 'OMWB',
|
|
alg_verdieping_volgnr = 1,
|
|
alg_ruimte_nr = '1'
|
|
WHERE prs_kenmerk2 = 'Omg.dienst West Brabant';
|
|
|
|
UPDATE fac_imp_perslid
|
|
SET alg_locatie_code = '27',
|
|
alg_gebouw_code = '27',
|
|
alg_verdieping_volgnr = 1,
|
|
alg_ruimte_nr = '01'
|
|
WHERE prs_kenmerk2 = 'Rekenkamer Brabant/Limburg';
|
|
|
|
UPDATE fac_imp_perslid
|
|
SET alg_locatie_code = 'ODZOB',
|
|
alg_gebouw_code = 'ODZOB',
|
|
alg_verdieping_volgnr = '1',
|
|
alg_ruimte_nr = '1'
|
|
WHERE prs_kenmerk2 = 'Omg.dienst Zuid-Oost Brabant';
|
|
|
|
UPDATE fac_imp_perslid
|
|
SET alg_locatie_code = '26',
|
|
alg_gebouw_code = '26',
|
|
alg_verdieping_volgnr = '1',
|
|
alg_ruimte_nr = '01'
|
|
WHERE prs_kenmerk2 = 'Eindhoven';
|
|
|
|
UPDATE fac_imp_perslid
|
|
SET alg_locatie_code = 'BRU',
|
|
alg_gebouw_code = 'BRU',
|
|
alg_verdieping_volgnr = '1',
|
|
alg_ruimte_nr = '01'
|
|
WHERE prs_kenmerk2 = 'Brussel';
|
|
|
|
UPDATE fac_imp_perslid
|
|
SET alg_locatie_code = '23',
|
|
alg_gebouw_code = '23',
|
|
alg_verdieping_volgnr = '1',
|
|
alg_ruimte_nr = '01'
|
|
WHERE prs_kenmerk2 = 'Het Noordbrabants museum';
|
|
|
|
UPDATE fac_imp_perslid
|
|
SET alg_locatie_code = '51',
|
|
alg_gebouw_code = '51',
|
|
alg_verdieping_volgnr = '1',
|
|
alg_ruimte_nr = '01'
|
|
WHERE prs_kenmerk2 = 'Kantoor Den Haag';
|
|
|
|
UPDATE fac_imp_perslid
|
|
SET alg_locatie_code = 'ODBN',
|
|
alg_gebouw_code = 'ODBN',
|
|
alg_verdieping_volgnr = 1,
|
|
alg_ruimte_nr = '1'
|
|
WHERE prs_kenmerk2 = 'Omg.dienst Brabant Noord';
|
|
|
|
UPDATE fac_imp_perslid
|
|
SET alg_locatie_code = '5',
|
|
alg_gebouw_code = '5',
|
|
alg_verdieping_volgnr = 1,
|
|
alg_ruimte_nr = '01'
|
|
WHERE prs_kenmerk2 = 'Steunpunt Eethen';
|
|
|
|
UPDATE fac_imp_perslid
|
|
SET alg_locatie_code = '11',
|
|
alg_gebouw_code = '11',
|
|
alg_verdieping_volgnr = 1,
|
|
alg_ruimte_nr = '01'
|
|
WHERE prs_kenmerk2 = 'Steunpunt Helmond';
|
|
|
|
UPDATE fac_imp_perslid
|
|
SET alg_locatie_code = '2',
|
|
alg_gebouw_code = '2',
|
|
alg_verdieping_volgnr = 1,
|
|
alg_ruimte_nr = '01'
|
|
WHERE prs_kenmerk2 = 'Steunpunt Oud Gastel';
|
|
|
|
UPDATE fac_imp_perslid
|
|
SET alg_locatie_code = '07',
|
|
alg_gebouw_code = '07',
|
|
alg_verdieping_volgnr = 1,
|
|
alg_ruimte_nr = '01'
|
|
WHERE prs_kenmerk2 = 'Steunpunt Uden';
|
|
|
|
UPDATE fac_imp_perslid
|
|
SET alg_locatie_code = '09',
|
|
alg_gebouw_code = '09',
|
|
alg_verdieping_volgnr = 1,
|
|
alg_ruimte_nr = '01'
|
|
WHERE prs_kenmerk2 = 'Steunpunt Westerhoven';
|
|
|
|
UPDATE fac_imp_perslid
|
|
SET alg_locatie_code = '--',
|
|
alg_gebouw_code = '--',
|
|
alg_verdieping_volgnr = 1,
|
|
alg_ruimte_nr = '01'
|
|
WHERE prs_kenmerk2 = 'Streekhuis Boven Dommel';
|
|
|
|
UPDATE fac_imp_perslid
|
|
SET alg_locatie_code = '---',
|
|
alg_gebouw_code = '---',
|
|
alg_verdieping_volgnr = 1,
|
|
alg_ruimte_nr = '01'
|
|
WHERE prs_kenmerk2 = 'Streekhuis Kempenland';
|
|
|
|
UPDATE fac_imp_perslid
|
|
SET alg_locatie_code = '41',
|
|
alg_gebouw_code = '41',
|
|
alg_verdieping_volgnr = 1,
|
|
alg_ruimte_nr = '01'
|
|
WHERE prs_kenmerk2 = 'Streekhuis Liempde';
|
|
|
|
UPDATE fac_imp_perslid
|
|
SET alg_ruimte_nr = 'HJZ'
|
|
WHERE alg_ruimte_nr LIKE 'HJZ%';
|
|
|
|
*/
|
|
|
|
COMMIT;
|
|
END pnbr_import_perslid_mut;
|
|
/
|
|
|
|
CREATE OR REPLACE PROCEDURE pnbr_update_perslid_mut (p_import_key IN NUMBER)
|
|
IS
|
|
c_fielddelimitor VARCHAR2 (1) := ';';
|
|
|
|
v_errormsg VARCHAR2 (1000);
|
|
v_errorhint VARCHAR2 (1000);
|
|
oracle_err_num NUMBER;
|
|
oracle_err_mes VARCHAR2 (200);
|
|
v_aanduiding VARCHAR2 (200);
|
|
v_sleutelkolom VARCHAR2 (200);
|
|
|
|
v_count NUMBER (10);
|
|
v_ongeldig NUMBER (1);
|
|
v_count_update NUMBER (10);
|
|
v_count_error NUMBER (10);
|
|
v_count_tot NUMBER (10);
|
|
v_wpcount_error NUMBER (10);
|
|
|
|
--
|
|
v_perslid_key NUMBER (10);
|
|
v_perslid_nr VARCHAR2 (100);
|
|
v_afdeling_key NUMBER (10);
|
|
v_srtperslid_key NUMBER (10);
|
|
v_prs_perslid_naam VARCHAR2 (200);
|
|
v_prs_perslid_tussenvoegsel VARCHAR2 (200);
|
|
v_kostenplaats_nr VARCHAR2 (100);
|
|
|
|
v_locatie_key NUMBER (10);
|
|
v_gebouw_key NUMBER (10);
|
|
v_verdieping_key NUMBER (10);
|
|
v_ruimte_key NUMBER (10);
|
|
v_space VARCHAR2 (1);
|
|
|
|
-- OS LOGIN komt meerdere keren voor met verschillende personeelsnrs
|
|
-- Van de personen die dubbel voorkomen in de import (nieuw account is aangemaakt maar oude is nog niet vervallen) zal slechts 1 regel gebruikt worden om de persoonsgegevens bij te werken.
|
|
-- Dat zal op basis van het reeds bestaande personeelsnummer moeten zijn.
|
|
CURSOR c_del_dubbele IS
|
|
SELECT ip.prs_perslid_nr
|
|
FROM fac_imp_perslid ip
|
|
WHERE EXISTS
|
|
( SELECT i.prs_perslid_oslogin
|
|
FROM fac_imp_perslid i
|
|
WHERE i.prs_perslid_oslogin IS NOT NULL
|
|
AND i.prs_perslid_oslogin =
|
|
ip.prs_perslid_oslogin
|
|
GROUP BY i.prs_perslid_oslogin
|
|
HAVING COUNT (i.prs_perslid_nr) > 1)
|
|
AND NOT EXISTS
|
|
(SELECT p.prs_perslid_nr
|
|
FROM prs_perslid p
|
|
WHERE p.prs_perslid_nr = ip.prs_perslid_nr);
|
|
|
|
-- In de import is een oslogin bekend
|
|
-- Dan moet de persoon eigenlijk op login gematch worden
|
|
-- Maar de mdw is alleen nog maar met persnr bekend in Facilitor
|
|
CURSOR c_oslogin IS
|
|
SELECT ip.prs_perslid_oslogin, ip.prs_perslid_nr
|
|
FROM fac_imp_perslid ip, prs_perslid p
|
|
WHERE p.prs_perslid_nr = ip.prs_perslid_nr
|
|
AND ip.prs_perslid_oslogin IS NOT NULL
|
|
AND ip.prs_perslid_nr IS NOT NULL
|
|
AND p.prs_perslid_oslogin IS NULL
|
|
AND NOT EXISTS
|
|
(SELECT pl.prs_perslid_nr
|
|
FROM prs_perslid pl
|
|
WHERE pl.prs_perslid_oslogin IS NOT NULL
|
|
AND ip.prs_perslid_nr = pl.prs_perslid_nr);
|
|
|
|
--- bijwerken stamtabel met functies als er nieuwe functies in de import zitten
|
|
CURSOR c_imp_functie IS
|
|
SELECT MIN (prs_srtperslid_omschrijving) prs_srtperslid_omschrijving
|
|
FROM fac_imp_perslid i
|
|
WHERE NOT EXISTS
|
|
(SELECT prs_srtperslid_key
|
|
FROM prs_srtperslid sp
|
|
WHERE UPPER (sp.prs_srtperslid_omschrijving) =
|
|
UPPER (i.prs_srtperslid_omschrijving)
|
|
AND prs_srtperslid_verwijder IS NULL)
|
|
GROUP BY UPPER (prs_srtperslid_omschrijving);
|
|
|
|
--- import van perslid
|
|
CURSOR c_imp_perslid IS
|
|
SELECT *
|
|
FROM fac_imp_perslid ip;
|
|
|
|
-- Set kenmerk 'Datum uitdienst' als pers met persnr niet meer in de import file zit
|
|
-- Let op: oslogin kan er wel in zitten, persoon heeft dan nieuw persnummer!
|
|
-- Account wordt dan na 2 maanden definitief beeindigd
|
|
CURSOR c_mark IS
|
|
SELECT p.prs_perslid_key, p.prs_perslid_nr, pf.prs_perslid_naam_full
|
|
FROM fac_imp_perslid i,
|
|
prs_perslid p,
|
|
prs_v_perslid_fullnames_all pf
|
|
WHERE p.prs_perslid_nr = i.prs_perslid_nr(+)
|
|
AND pf.prs_perslid_key = p.prs_perslid_key
|
|
AND p.prs_perslid_nr IS NOT NULL
|
|
AND i.prs_perslid_nr IS NULL
|
|
AND p.prs_perslid_verwijder IS NULL
|
|
AND NOT EXISTS
|
|
(SELECT prs_kenmerklink_waarde
|
|
FROM prs_kenmerklink kl
|
|
WHERE kl.prs_kenmerklink_verwijder IS NULL
|
|
AND prs_link_key = p.prs_perslid_key
|
|
AND prs_kenmerk_key = 1020) -- datum uitdienst
|
|
ORDER BY 2;
|
|
|
|
--- Daadwerkelijk beeindigen van account als deze 2 maanden geleden is gemarkeerd
|
|
CURSOR c_del IS
|
|
SELECT p.prs_perslid_key, p.prs_perslid_nr, pf.prs_perslid_naam_full
|
|
FROM fac_imp_perslid i,
|
|
prs_perslid p,
|
|
prs_v_perslid_fullnames_all pf
|
|
WHERE p.prs_perslid_nr = i.prs_perslid_nr(+)
|
|
AND pf.prs_perslid_key = p.prs_perslid_key
|
|
AND p.prs_perslid_nr IS NOT NULL
|
|
AND i.prs_perslid_nr IS NULL
|
|
AND p.prs_perslid_verwijder IS NULL
|
|
AND ADD_MONTHS (
|
|
COALESCE (
|
|
(SELECT fac.safe_to_date (prs_kenmerklink_waarde,
|
|
'dd-mm-yyyy')
|
|
FROM prs_kenmerklink kl
|
|
WHERE kl.prs_kenmerklink_verwijder IS NULL
|
|
AND prs_link_key = p.prs_perslid_key
|
|
AND prs_kenmerk_key = 1020),
|
|
SYSDATE),
|
|
2) <
|
|
SYSDATE
|
|
ORDER BY 2;
|
|
|
|
-- Kenmerk veld 'Datum uitdienst' leegmaken bij perslid als deze toch weer in de import tabel zit
|
|
-- Mdw is waarschijnlijk weer in dienst
|
|
CURSOR c_renew IS
|
|
SELECT p.prs_perslid_key,
|
|
p.prs_perslid_nr,
|
|
pf.prs_perslid_naam_full,
|
|
p.prs_perslid_oslogin
|
|
FROM fac_imp_perslid i,
|
|
prs_perslid p,
|
|
prs_v_perslid_fullnames_all pf
|
|
WHERE ( p.prs_perslid_oslogin = i.prs_perslid_oslogin
|
|
OR p.prs_perslid_nr = i.prs_perslid_nr)
|
|
AND pf.prs_perslid_key = p.prs_perslid_key
|
|
AND p.prs_perslid_verwijder IS NULL
|
|
AND EXISTS
|
|
(SELECT prs_kenmerklink_waarde
|
|
FROM prs_kenmerklink kl
|
|
WHERE kl.prs_kenmerklink_verwijder IS NULL
|
|
AND prs_link_key = p.prs_perslid_key
|
|
AND prs_kenmerk_key = 1020) -- datum uitdienst
|
|
ORDER BY 2;
|
|
BEGIN
|
|
v_count_update := 0;
|
|
v_count_tot := 0;
|
|
v_count_error := 0;
|
|
v_wpcount_error := 0;
|
|
|
|
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)
|
|
|| ')',
|
|
'Zie Specificatie');
|
|
RETURN;
|
|
END IF;
|
|
|
|
-- Personen die 2x voorkomen in de importtabel op basis van oslogin
|
|
-- Daarvan moet 1 record uit de importtabel verwijderd worden
|
|
FOR rec IN c_del_dubbele
|
|
LOOP
|
|
BEGIN
|
|
DELETE fac_imp_perslid i
|
|
WHERE i.prs_perslid_nr = rec.prs_perslid_nr;
|
|
END;
|
|
END LOOP;
|
|
|
|
-- Personen die nu een login in de import hebben maar voorheen alleen een persnr
|
|
-- Dan zetten we eerst de login even goed zodat daarna via login bijgewerkt kan worden
|
|
FOR rec IN c_oslogin
|
|
LOOP
|
|
BEGIN
|
|
UPDATE prs_perslid p
|
|
SET p.prs_perslid_oslogin = rec.prs_perslid_oslogin
|
|
WHERE p.prs_perslid_nr = rec.prs_perslid_nr;
|
|
END;
|
|
END LOOP;
|
|
|
|
-- eerst alle functies up to date
|
|
FOR rec IN c_imp_functie
|
|
LOOP
|
|
BEGIN
|
|
v_aanduiding := '';
|
|
v_errormsg := '';
|
|
v_errorhint := '';
|
|
v_count_tot := v_count_tot + 1;
|
|
|
|
v_aanduiding := rec.prs_srtperslid_omschrijving;
|
|
|
|
v_errorhint := 'Zoek in verwijderde functies';
|
|
|
|
SELECT MAX (prs_srtperslid_key)
|
|
INTO v_srtperslid_key
|
|
FROM prs_srtperslid sp
|
|
WHERE UPPER (sp.prs_srtperslid_omschrijving) =
|
|
UPPER (rec.prs_srtperslid_omschrijving);
|
|
|
|
IF v_srtperslid_key IS NULL
|
|
THEN
|
|
v_errorhint := 'Fout bij toevoegen functie';
|
|
|
|
INSERT INTO prs_srtperslid (prs_srtperslid_omschrijving)
|
|
VALUES (rec.prs_srtperslid_omschrijving);
|
|
ELSE
|
|
v_errorhint := 'Reanimeer functie';
|
|
|
|
UPDATE prs_srtperslid
|
|
SET prs_srtperslid_verwijder = NULL
|
|
WHERE prs_srtperslid_key = v_srtperslid_key;
|
|
END IF;
|
|
|
|
COMMIT;
|
|
EXCEPTION
|
|
WHEN OTHERS
|
|
THEN
|
|
v_count_error := v_count_error + 1;
|
|
oracle_err_num := SQLCODE;
|
|
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
|
|
v_errormsg :=
|
|
' (ORACLE error number = <'
|
|
|| ORACLE_err_num
|
|
|| '> ORACLE error message = <'
|
|
|| ORACLE_err_mes
|
|
|| '>)';
|
|
|
|
fac.imp_writelog (p_import_key,
|
|
'E',
|
|
v_aanduiding || v_errormsg,
|
|
v_errorhint);
|
|
|
|
COMMIT; -- tbv logging
|
|
END;
|
|
END LOOP;
|
|
|
|
fac.imp_writelog (
|
|
p_import_key,
|
|
'S',
|
|
'Personeelsfunctie: toegevoegde regels zonder foutmelding: '
|
|
|| TO_CHAR (v_count_tot - v_count_error),
|
|
'');
|
|
|
|
fac.imp_writelog (
|
|
p_import_key,
|
|
'S',
|
|
'Personeelsfunctie: toegevoegde regels met foutmelding: '
|
|
|| TO_CHAR (v_count_error),
|
|
'');
|
|
COMMIT; -- logging
|
|
|
|
v_count_update := 0;
|
|
v_count_tot := 0;
|
|
v_count_error := 0;
|
|
|
|
----------------------------------------------------
|
|
--- BEGIN STANDAARD IMPORT -------------------------
|
|
----------------------------------------------------
|
|
FOR rec IN c_imp_perslid
|
|
LOOP
|
|
BEGIN
|
|
v_aanduiding := '';
|
|
v_errormsg := '';
|
|
v_errorhint := '';
|
|
v_count_tot := v_count_tot + 1;
|
|
|
|
v_aanduiding :=
|
|
rec.prs_perslid_naam
|
|
|| '|'
|
|
|| rec.prs_perslid_voornaam
|
|
|| '| ';
|
|
v_errormsg := '';
|
|
|
|
v_errorhint := 'Fout bij bepalen functie';
|
|
|
|
SELECT prs_srtperslid_key
|
|
INTO v_srtperslid_key
|
|
FROM prs_srtperslid
|
|
WHERE prs_srtperslid_verwijder IS NULL
|
|
AND UPPER (prs_srtperslid_omschrijving) =
|
|
UPPER (rec.prs_srtperslid_omschrijving);
|
|
|
|
IF rec.prs_perslid_oslogin IS NOT NULL
|
|
THEN
|
|
v_sleutelkolom := 'LOGIN';
|
|
ELSE
|
|
v_sleutelkolom := 'NR';
|
|
END IF;
|
|
|
|
v_errorhint :=
|
|
'Afdeling niet gevonden [' || rec.prs_afdeling_naam || ']';
|
|
|
|
SELECT a.prs_afdeling_key
|
|
INTO v_afdeling_key
|
|
FROM prs_v_aanwezigafdeling_boom b, prs_afdeling a
|
|
WHERE UPPER (a.prs_afdeling_naam) =
|
|
UPPER (rec.prs_afdeling_naam)
|
|
AND a.prs_afdeling_verwijder IS NULL
|
|
AND a.prs_afdeling_key = b.prs_afdeling_key;
|
|
|
|
v_space := '';
|
|
|
|
-- kijk hoe we met partnernamen moeten omgaan:
|
|
IF rec.prs_perslid_naamgebruik_code = 0
|
|
THEN
|
|
-- normaal gebruik van naam. Eigen naam wordt gebruikt
|
|
v_prs_perslid_naam := rec.prs_perslid_naam;
|
|
v_prs_perslid_tussenvoegsel := rec.prs_perslid_tussenvoegsel;
|
|
ELSIF rec.prs_perslid_naamgebruik_code = 1
|
|
THEN
|
|
-- personen die de geboortenaam van de partner icm de eigen naam willen gebruiken
|
|
IF rec.prs_perslid_tussenvoegsel IS NOT NULL
|
|
THEN
|
|
v_space := ' ';
|
|
END IF;
|
|
|
|
v_prs_perslid_naam :=
|
|
rec.prs_perslid_partner_naam
|
|
|| ' - '
|
|
|| rec.prs_perslid_tussenvoegsel
|
|
|| v_space
|
|
|| rec.prs_perslid_naam;
|
|
v_prs_perslid_tussenvoegsel :=
|
|
rec.prs_perslid_partner_tussenv;
|
|
ELSIF rec.prs_perslid_naamgebruik_code = 2
|
|
THEN
|
|
-- personen die de geboortenaam van de partner willen gebruiken
|
|
v_prs_perslid_naam := rec.prs_perslid_partner_naam;
|
|
v_prs_perslid_tussenvoegsel :=
|
|
rec.prs_perslid_partner_tussenv;
|
|
ELSIF rec.prs_perslid_naamgebruik_code = 3
|
|
THEN
|
|
-- personen die de eigen naam icm de geboortenaam van de partner willen gebruiken
|
|
IF rec.prs_perslid_partner_tussenv IS NOT NULL
|
|
THEN
|
|
v_space := ' ';
|
|
END IF;
|
|
|
|
v_prs_perslid_naam :=
|
|
rec.prs_perslid_naam
|
|
|| ' - '
|
|
|| rec.prs_perslid_partner_tussenv
|
|
|| v_space
|
|
|| rec.prs_perslid_partner_naam;
|
|
v_prs_perslid_tussenvoegsel := rec.prs_perslid_tussenvoegsel;
|
|
END IF;
|
|
|
|
IF LENGTH (v_prs_perslid_naam) > 60
|
|
THEN
|
|
v_prs_perslid_naam := SUBSTR (v_prs_perslid_naam, 1, 60);
|
|
fac.imp_writelog (
|
|
p_import_key,
|
|
'W',
|
|
rec.prs_perslid_naam
|
|
|| '|'
|
|
|| rec.prs_perslid_voornaam
|
|
|| '| '
|
|
|| 'Samengestelde achternaam is te lang',
|
|
'Aanduiding wordt afgebroken tot ['
|
|
|| v_prs_perslid_naam
|
|
|| ']');
|
|
END IF;
|
|
|
|
-- v_sleutelkolom
|
|
-- NR = prs_perslid_nr
|
|
-- LOGIN = prs_perslid_oslogin
|
|
v_errorhint := 'Kijken of de persoon al bestaat';
|
|
|
|
SELECT MAX (prs_perslid_key), COUNT (*)
|
|
INTO v_perslid_key, v_count
|
|
FROM prs_perslid
|
|
WHERE prs_perslid_verwijder IS NULL
|
|
AND ( ( UPPER (v_sleutelkolom) = 'NR'
|
|
AND UPPER (prs_perslid_nr) =
|
|
UPPER (rec.prs_perslid_nr))
|
|
OR ( UPPER (v_sleutelkolom) = 'LOGIN'
|
|
AND UPPER (prs_perslid_oslogin) =
|
|
UPPER (rec.prs_perslid_oslogin)));
|
|
|
|
IF (v_count = 0)
|
|
THEN
|
|
v_errorhint := 'Fout bij toevoegen persoon';
|
|
|
|
INSERT INTO prs_perslid (prs_perslid_module,
|
|
prs_srtperslid_key,
|
|
prs_afdeling_key,
|
|
prs_perslid_naam,
|
|
prs_perslid_voorletters,
|
|
prs_perslid_tussenvoegsel,
|
|
prs_perslid_voornaam,
|
|
prs_perslid_telefoonnr,
|
|
prs_perslid_mobiel,
|
|
prs_perslid_email,
|
|
prs_perslid_nr,
|
|
prs_perslid_geslacht,
|
|
prs_perslid_titel,
|
|
prs_perslid_dienstverband,
|
|
prs_perslid_oslogin,
|
|
prs_perslid_apikey)
|
|
VALUES ('PRS',
|
|
v_srtperslid_key,
|
|
v_afdeling_key,
|
|
v_prs_perslid_naam,
|
|
rec.prs_perslid_voorletters,
|
|
v_prs_perslid_tussenvoegsel,
|
|
rec.prs_perslid_voornaam,
|
|
rec.prs_perslid_telefoonnr,
|
|
rec.prs_perslid_mobiel,
|
|
rec.prs_perslid_email,
|
|
rec.prs_perslid_nr,
|
|
rec.prs_perslid_geslacht,
|
|
rec.prs_perslid_titel,
|
|
rec.prs_perslid_dienstverband,
|
|
rec.prs_perslid_oslogin,
|
|
rec.prs_perslid_apikey)
|
|
RETURNING prs_perslid_key
|
|
INTO v_perslid_key;
|
|
|
|
prs.setpassword (v_perslid_key, rec.prs_perslid_wachtwoord);
|
|
|
|
COMMIT;
|
|
v_count_update := v_count_update + 1;
|
|
ELSIF v_count = 1
|
|
THEN
|
|
UPDATE prs_perslid
|
|
SET prs_srtperslid_key = v_srtperslid_key,
|
|
prs_afdeling_key = v_afdeling_key,
|
|
prs_perslid_naam = v_prs_perslid_naam,
|
|
prs_perslid_voorletters = rec.prs_perslid_voorletters,
|
|
prs_perslid_tussenvoegsel =
|
|
v_prs_perslid_tussenvoegsel,
|
|
prs_perslid_voornaam = rec.prs_perslid_voornaam,
|
|
prs_perslid_nr = rec.prs_perslid_nr,
|
|
prs_perslid_dienstverband =
|
|
rec.prs_perslid_dienstverband,
|
|
prs_perslid_geslacht = rec.prs_perslid_geslacht,
|
|
prs_perslid_titel = rec.prs_perslid_titel,
|
|
prs_perslid_telefoonnr = rec.prs_perslid_telefoonnr,
|
|
prs_perslid_mobiel = rec.prs_perslid_mobiel,
|
|
prs_perslid_email = rec.prs_perslid_email,
|
|
prs_perslid_oslogin = rec.prs_perslid_oslogin,
|
|
prs_perslid_apikey = rec.prs_perslid_apikey
|
|
WHERE prs_perslid_key = v_perslid_key;
|
|
|
|
IF rec.prs_perslid_wachtwoord IS NOT NULL
|
|
THEN
|
|
prs.setpassword (v_perslid_key,
|
|
rec.prs_perslid_wachtwoord);
|
|
END IF;
|
|
END IF;
|
|
|
|
-- Voor CUST-postprocessing (van de kenmerken) is het handig te onthouden:
|
|
UPDATE fac_imp_perslid
|
|
SET prs_perslid_key = v_perslid_key
|
|
WHERE fac_import_key = rec.fac_import_key
|
|
AND fac_imp_file_index = rec.fac_imp_file_index;
|
|
|
|
COMMIT; -- persoon in ieder geval toegevoegd.
|
|
|
|
v_aanduiding :=
|
|
rec.prs_perslid_nr
|
|
|| '|'
|
|
|| rec.prs_perslid_naam
|
|
|| '|'
|
|
|| rec.prs_perslid_voornaam
|
|
|| '|'
|
|
|| rec.alg_locatie_code
|
|
|| '|'
|
|
|| rec.alg_gebouw_code
|
|
|| '|'
|
|
|| rec.alg_verdieping_volgnr
|
|
|| '|'
|
|
|| rec.alg_ruimte_nr
|
|
|| ' - ';
|
|
|
|
v_locatie_key := NULL;
|
|
v_gebouw_key := NULL;
|
|
v_verdieping_key := NULL;
|
|
v_ruimte_key := NULL;
|
|
|
|
v_errorhint := 'Fout bij bepalen locatie';
|
|
|
|
SELECT MAX (alg_locatie_key)
|
|
INTO v_locatie_key
|
|
FROM alg_v_aanweziglocatie
|
|
WHERE UPPER (alg_locatie_code) = UPPER (rec.alg_locatie_code);
|
|
|
|
v_errorhint := 'Fout bij bepalen gebouw';
|
|
|
|
SELECT MAX (alg_gebouw_key)
|
|
INTO v_gebouw_key
|
|
FROM alg_v_aanweziggebouw
|
|
WHERE UPPER (alg_gebouw_code) = UPPER (rec.alg_gebouw_code)
|
|
AND alg_locatie_key = v_locatie_key;
|
|
|
|
v_errorhint := 'Fout bij bepalen verdieping';
|
|
|
|
SELECT MAX (alg_verdieping_key)
|
|
INTO v_verdieping_key
|
|
FROM alg_v_aanwezigverdieping
|
|
WHERE UPPER (alg_verdieping_volgnr) =
|
|
UPPER (rec.alg_verdieping_volgnr)
|
|
AND alg_gebouw_key = v_gebouw_key;
|
|
|
|
v_errorhint := 'Fout bij bepalen beoogde ruimte';
|
|
|
|
SELECT MAX (alg_ruimte_key)
|
|
INTO v_ruimte_key
|
|
FROM alg_v_aanwezigruimte r
|
|
WHERE r.alg_ruimte_upper_nr = UPPER (rec.alg_ruimte_nr)
|
|
AND r.alg_verdieping_key = v_verdieping_key;
|
|
|
|
-- standaard ruimte moet door cust gedeelte van deFout bij bepalen beoogde ruimte import ingevuld worden.
|
|
|
|
-- als er een locatie ingevuld is willen we ook een ruimte vinden.
|
|
IF v_ruimte_key IS NULL AND rec.alg_locatie_code IS NOT NULL
|
|
THEN
|
|
fac.imp_writelog (
|
|
p_import_key,
|
|
'W',
|
|
v_aanduiding || ' Ruimte kan niet gevonden worden',
|
|
'Controleer locatie,gebouw en verdieping');
|
|
END IF;
|
|
|
|
-- fouten bij het bepalen van de werkplek worden als waarschuwing weergegeven.
|
|
BEGIN
|
|
v_errorhint := 'Fout bij het aanpassen van de werkplek';
|
|
PRS.movetoruimte (v_perslid_key, v_ruimte_key, 'A');
|
|
EXCEPTION
|
|
WHEN OTHERS
|
|
THEN
|
|
v_wpcount_error := v_wpcount_error + 1;
|
|
oracle_err_num := SQLCODE;
|
|
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
|
|
v_errormsg :=
|
|
' (ORACLE error number = <'
|
|
|| ORACLE_err_num
|
|
|| '> ORACLE error message = <'
|
|
|| ORACLE_err_mes
|
|
|| '>)';
|
|
fac.imp_writelog (p_import_key,
|
|
'W',
|
|
v_aanduiding || v_errormsg,
|
|
v_errorhint);
|
|
END;
|
|
EXCEPTION
|
|
WHEN OTHERS
|
|
THEN
|
|
v_count_error := v_count_error + 1;
|
|
oracle_err_num := SQLCODE;
|
|
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
|
|
v_errormsg :=
|
|
' (ORACLE error number = <'
|
|
|| ORACLE_err_num
|
|
|| '> ORACLE error message = <'
|
|
|| ORACLE_err_mes
|
|
|| '>)';
|
|
fac.imp_writelog (p_import_key,
|
|
'E',
|
|
v_aanduiding || v_errormsg,
|
|
v_errorhint);
|
|
COMMIT; -- tbv logging
|
|
END;
|
|
END LOOP;
|
|
|
|
fac.imp_writelog (
|
|
p_import_key,
|
|
'S',
|
|
'Persoon: verwerkte regels zonder foutmelding: '
|
|
|| TO_CHAR (v_count_tot - v_count_error),
|
|
'');
|
|
|
|
fac.imp_writelog (
|
|
p_import_key,
|
|
'S',
|
|
'Persoon: verwerkte regels met foutmelding: '
|
|
|| TO_CHAR (v_count_error),
|
|
'');
|
|
|
|
fac.imp_writelog (
|
|
p_import_key,
|
|
'S',
|
|
'Werkplek: verwerkte regels met foutmelding: '
|
|
|| TO_CHAR (v_wpcount_error),
|
|
'');
|
|
|
|
-- ken iedereen een profiel toe
|
|
UPDATE prs_perslid
|
|
SET fac_profiel_key = 1
|
|
WHERE fac_profiel_key IS NULL;
|
|
|
|
FOR rec IN c_renew
|
|
LOOP
|
|
BEGIN
|
|
prs.upsertkenmerk (1020, rec.prs_perslid_key, NULL);
|
|
fac.imp_writelog (
|
|
p_import_key,
|
|
'I',
|
|
'Uitdienstdatum is verwijderd ['
|
|
|| rec.prs_perslid_naam_full
|
|
|| ']',
|
|
'');
|
|
END;
|
|
END LOOP;
|
|
|
|
FOR rec IN c_mark
|
|
LOOP
|
|
BEGIN
|
|
PRS.upsertkenmerk (1020,
|
|
rec.prs_perslid_key,
|
|
TO_CHAR (SYSDATE, 'dd-mm-yyyy'));
|
|
fac.imp_writelog (
|
|
p_import_key,
|
|
'I',
|
|
'Uitdienstdatum wordt gezet ['
|
|
|| rec.prs_perslid_naam_full
|
|
|| ']',
|
|
'');
|
|
|
|
UPDATE prs_perslid
|
|
SET prs_perslid_email = NULL
|
|
WHERE rec.prs_perslid_key = prs_perslid_key;
|
|
END;
|
|
END LOOP;
|
|
|
|
FOR rec IN c_del
|
|
LOOP
|
|
BEGIN
|
|
prs.delete_perslid (p_import_key, rec.prs_perslid_key);
|
|
END;
|
|
END LOOP;
|
|
|
|
INSERT INTO prs_perslidkostenplaats (prs_perslid_key,
|
|
prs_perslidkostenplaats_boeken)
|
|
SELECT prs_perslid_key, 1
|
|
FROM prs_v_aanwezigperslid p
|
|
WHERE NOT EXISTS
|
|
(SELECT pk.prs_perslid_key
|
|
FROM prs_perslidkostenplaats pk
|
|
WHERE p.prs_perslid_key = pk.prs_perslid_key);
|
|
|
|
-- we gaan conflicten in de login notificeren naar Menno Udo (key = 3371)
|
|
SELECT COUNT (*)
|
|
INTO v_count
|
|
FROM imp_log
|
|
WHERE fac_import_key = p_import_key
|
|
AND imp_log_omschrijving LIKE '%PRS_C_PRS_PERSLID_OSLOGIN%';
|
|
|
|
-- we notificeren alleen op maandag
|
|
IF v_count > 0 AND TO_CHAR (SYSDATE, 'D') = 2
|
|
THEN
|
|
INSERT INTO fac_notificatie (fac_notificatie_status,
|
|
fac_notificatie_oms,
|
|
prs_perslid_key_sender,
|
|
prs_perslid_key_receiver)
|
|
VALUES (
|
|
2,
|
|
'Aantal geimporteerde gebruikers met conflict in de login: '
|
|
|| v_count,
|
|
4,
|
|
3371);
|
|
END IF;
|
|
END pnbr_update_perslid_mut;
|
|
/
|
|
CREATE OR REPLACE PROCEDURE pnbr_import_organisatie_mut (
|
|
p_import_key IN NUMBER)
|
|
AS
|
|
c_fielddelimitor VARCHAR2 (1) := ';';
|
|
v_newline VARCHAR2 (1000); -- Input line
|
|
v_errormsg VARCHAR2 (1000);
|
|
oracle_err_num NUMBER;
|
|
oracle_err_mes VARCHAR2 (200);
|
|
header_is_valid NUMBER;
|
|
v_count NUMBER;
|
|
v_ongeldig NUMBER (1);
|
|
v_mode NUMBER (1);
|
|
v_aanduiding VARCHAR2 (200);
|
|
v_all_null BOOLEAN;
|
|
v_count_error NUMBER (10);
|
|
v_count_tot NUMBER (10);
|
|
v_count_import NUMBER (10);
|
|
-- De importvelden:
|
|
v_bedrijf_naam VARCHAR2 (256);
|
|
v_afdeling_naam VARCHAR2 (256);
|
|
v_afdeling_naam_parent VARCHAR2 (256);
|
|
v_afdeling_omschrijving VARCHAR2 (256);
|
|
v_kostenplaats VARCHAR2 (256);
|
|
|
|
|
|
-- PRS_BEDRIJF
|
|
CURSOR c1 IS
|
|
SELECT *
|
|
FROM fac_imp_file
|
|
WHERE fac_import_key = p_import_key
|
|
ORDER BY fac_imp_file_index;
|
|
BEGIN
|
|
-- Eerst opruiming
|
|
DELETE FROM imp_log
|
|
WHERE fac_import_key = p_import_key;
|
|
|
|
DELETE FROM fac_imp_organisatie;
|
|
|
|
COMMIT;
|
|
v_count_error := 0;
|
|
header_is_valid := 0;
|
|
v_count_tot := 0;
|
|
v_count_import := 0;
|
|
|
|
FOR rec1 IN c1
|
|
LOOP
|
|
BEGIN
|
|
v_errormsg := 'Fout FETCH te importeren rij';
|
|
|
|
v_newline := rec1.fac_imp_file_line;
|
|
v_errormsg := 'Fout opvragen te importeren rij';
|
|
v_aanduiding := '';
|
|
v_ongeldig := 0;
|
|
|
|
-- Lees alle veldwaarden
|
|
fac.imp_getfield (v_newline, c_fielddelimitor, v_bedrijf_naam);
|
|
fac.imp_getfield (v_newline,
|
|
c_fielddelimitor,
|
|
v_afdeling_naam_parent);
|
|
fac.imp_getfield (v_newline, c_fielddelimitor, v_afdeling_naam);
|
|
fac.imp_getfield (v_newline,
|
|
c_fielddelimitor,
|
|
v_afdeling_omschrijving);
|
|
fac.imp_getfield (v_newline, c_fielddelimitor, v_kostenplaats);
|
|
v_aanduiding :=
|
|
v_bedrijf_naam
|
|
|| '|'
|
|
|| v_afdeling_naam
|
|
|| '|'
|
|
|| v_afdeling_omschrijving
|
|
|| '| ';
|
|
|
|
IF (header_is_valid = 0)
|
|
THEN
|
|
IF UPPER (v_bedrijf_naam) = 'BEDRIJFSNAAM'
|
|
AND UPPER (v_afdeling_naam_parent) = 'AFDELINGSCODEPARENT'
|
|
THEN
|
|
header_is_valid := 1;
|
|
END IF;
|
|
ELSE
|
|
v_count_tot := v_count_tot + 1;
|
|
v_bedrijf_naam := TRIM (v_bedrijf_naam);
|
|
|
|
IF LENGTH (v_bedrijf_naam) > 60
|
|
THEN
|
|
v_bedrijf_naam := SUBSTR (v_bedrijf_naam, 1, 60);
|
|
fac.imp_writelog (
|
|
p_import_key,
|
|
'W',
|
|
v_aanduiding || 'Bedrijf-aanduiding is te lang',
|
|
'Aanduiding wordt afgebroken tot ['
|
|
|| v_bedrijf_naam
|
|
|| ']');
|
|
END IF;
|
|
|
|
--
|
|
v_afdeling_naam := TRIM (v_afdeling_naam);
|
|
|
|
IF LENGTH (v_afdeling_naam) > 10
|
|
THEN
|
|
v_afdeling_naam := SUBSTR (v_afdeling_naam, 1, 10);
|
|
fac.imp_writelog (
|
|
p_import_key,
|
|
'W',
|
|
v_aanduiding || 'Afdeling-aanduiding is te lang',
|
|
'Aanduiding wordt afgebroken tot ['
|
|
|| v_afdeling_naam
|
|
|| ']');
|
|
END IF;
|
|
|
|
--
|
|
v_afdeling_naam_parent := TRIM (v_afdeling_naam_parent);
|
|
|
|
IF LENGTH (v_afdeling_naam_parent) > 10
|
|
THEN
|
|
v_afdeling_naam_parent :=
|
|
SUBSTR (v_afdeling_naam_parent, 1, 10);
|
|
fac.imp_writelog (
|
|
p_import_key,
|
|
'W',
|
|
v_aanduiding || 'Afdeling-aanduiding is te lang',
|
|
'Aanduiding wordt afgebroken tot ['
|
|
|| v_afdeling_naam_parent
|
|
|| ']');
|
|
END IF;
|
|
|
|
--
|
|
v_afdeling_omschrijving := TRIM (v_afdeling_omschrijving);
|
|
|
|
IF LENGTH (v_afdeling_omschrijving) > 60
|
|
THEN
|
|
v_afdeling_omschrijving :=
|
|
SUBSTR (v_afdeling_omschrijving, 1, 60);
|
|
fac.imp_writelog (
|
|
p_import_key,
|
|
'W',
|
|
v_aanduiding || 'Afdelingsomschrijving is te lang',
|
|
'Aanduiding wordt afgebroken tot ['
|
|
|| v_afdeling_omschrijving
|
|
|| ']');
|
|
END IF;
|
|
|
|
v_kostenplaats := LTRIM (v_kostenplaats, '0');
|
|
v_all_null :=
|
|
(v_bedrijf_naam IS NULL)
|
|
AND (v_afdeling_naam IS NULL)
|
|
AND (v_afdeling_naam_parent IS NULL)
|
|
AND (v_afdeling_omschrijving IS NULL);
|
|
|
|
-- Insert geformatteerde import record
|
|
IF v_ongeldig = 0
|
|
THEN
|
|
v_errormsg :=
|
|
'Fout bij toevoegen te impoteren bedrijf/afdeling ['
|
|
|| v_afdeling_naam
|
|
|| ']';
|
|
|
|
INSERT INTO fac_imp_organisatie (
|
|
prs_bedrijf_naam,
|
|
prs_afdeling_naam,
|
|
prs_afdeling_naam_parent,
|
|
prs_afdeling_omschrijving,
|
|
prs_kostenplaats_nr)
|
|
VALUES (v_bedrijf_naam,
|
|
v_afdeling_naam,
|
|
v_afdeling_naam_parent,
|
|
v_afdeling_omschrijving,
|
|
v_kostenplaats);
|
|
|
|
v_count_import := v_count_import + 1;
|
|
END IF;
|
|
END IF;
|
|
END;
|
|
END LOOP;
|
|
|
|
IF (header_is_valid = 0)
|
|
THEN
|
|
fac.imp_writelog (p_import_key,
|
|
'E',
|
|
v_aanduiding || 'Ongeldig importbestand',
|
|
'Geen geldige headerregel aanwezig');
|
|
ELSE
|
|
fac.imp_writelog (
|
|
p_import_key,
|
|
'S',
|
|
'Bedrijf: aantal ingelezen regels: ' || TO_CHAR (v_count_tot),
|
|
'');
|
|
fac.imp_writelog (
|
|
p_import_key,
|
|
'S',
|
|
'Bedrijf: aantal ongeldige importregels: '
|
|
|| TO_CHAR (v_count_tot - v_count_import),
|
|
'');
|
|
END IF;
|
|
|
|
-- De top elementen in de import hebben een parent die wijst naar
|
|
-- een niet bestaande afdeling. Daarom maken we die maar leeg.
|
|
UPDATE fac_imp_organisatie i
|
|
SET prs_afdeling_naam_parent = NULL
|
|
WHERE NOT EXISTS
|
|
(SELECT prs_afdeling_naam
|
|
FROM fac_imp_organisatie i2
|
|
WHERE i.prs_afdeling_naam_parent = i2.prs_afdeling_naam);
|
|
|
|
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,
|
|
'');
|
|
END pnbr_import_organisatie_mut;
|
|
/
|
|
|
|
|
|
CREATE OR REPLACE PROCEDURE pnbr_update_organisatie_mut (
|
|
p_import_key IN NUMBER)
|
|
AS
|
|
CURSOR c IS
|
|
SELECT i.*, a.prs_afdeling_key
|
|
FROM fac_imp_organisatie i, prs_afdeling a
|
|
WHERE i.prs_afdeling_naam = a.prs_afdeling_naam(+);
|
|
|
|
v_errormsg VARCHAR (200);
|
|
v_errorhint VARCHAR (200);
|
|
oracle_err_mes VARCHAR2 (150);
|
|
currentversion fac_module.fac_module_version%TYPE;
|
|
v_aanduiding VARCHAR (100);
|
|
v_prs_kostenplaats_oms PRS_KOSTENPLAATS.PRS_KOSTENPLAATS_OMSCHRIJVING%TYPE;
|
|
v_prs_bedrijf_key NUMBER;
|
|
v_prs_afd_parent_key NUMBER;
|
|
v_prs_kostenplaats_key NUMBER;
|
|
v_prs_afdeling_key NUMBER;
|
|
v_prs_afd_niveau_parent NUMBER;
|
|
v_count NUMBER;
|
|
v_newcount NUMBER;
|
|
v_oldcount NUMBER;
|
|
v_impcount NUMBER;
|
|
BEGIN
|
|
SELECT MAX (fac_module_version) INTO currentversion FROM fac_module;
|
|
|
|
fac.imp_writelog (p_import_key,
|
|
'I',
|
|
'Facilitor afdeling import version ' || currentversion,
|
|
'$Revision$');
|
|
|
|
-- How many active records are now present?
|
|
SELECT COUNT (*)
|
|
INTO v_oldcount
|
|
FROM prs_afdeling
|
|
WHERE (prs_afdeling_parentkey IS NULL OR prs_afdeling_parentkey <> 1)
|
|
AND prs_afdeling_verwijder IS NULL;
|
|
|
|
-- How many active records are imported?
|
|
SELECT COUNT (*) INTO v_impcount FROM fac_imp_organisatie;
|
|
|
|
IF v_impcount < 50
|
|
THEN
|
|
fac.imp_writelog (
|
|
p_import_key,
|
|
'E',
|
|
'Het verschil tussen de actieve afdelingen ('
|
|
|| TO_CHAR (v_oldcount)
|
|
|| ') en geimporteerde aantallen ('
|
|
|| TO_CHAR (v_impcount)
|
|
|| ') is te groot',
|
|
'Zie Specificatie');
|
|
RETURN;
|
|
END IF;
|
|
|
|
FOR rec IN c
|
|
LOOP
|
|
v_aanduiding := rec.prs_afdeling_naam;
|
|
v_errorhint := 'Kijk of bedrijf al bestaat';
|
|
|
|
-- Bestaat het bedrijf al?
|
|
BEGIN
|
|
SELECT prs_bedrijf_key
|
|
INTO v_prs_bedrijf_key
|
|
FROM prs_bedrijf
|
|
WHERE UPPER (prs_bedrijf_naam) =
|
|
UPPER (rec.prs_bedrijf_naam)
|
|
AND prs_bedrijf_verwijder IS NULL;
|
|
|
|
v_errorhint := 'Kijk of kostenplaats al bestaat';
|
|
v_prs_kostenplaats_key := NULL;
|
|
|
|
BEGIN
|
|
SELECT prs_kostenplaats_key
|
|
INTO v_prs_kostenplaats_key
|
|
FROM prs_kostenplaats
|
|
WHERE prs_kostenplaats_verwijder IS NULL
|
|
AND prs_kostenplaats_nr = rec.prs_kostenplaats_nr;
|
|
|
|
-- Komt deze kostenplaats ook misschien vaker voor?
|
|
SELECT COUNT (prs_kostenplaats_nr)
|
|
INTO v_count
|
|
FROM fac_imp_organisatie
|
|
WHERE prs_kostenplaats_nr = rec.prs_kostenplaats_nr;
|
|
|
|
IF v_count > 1
|
|
THEN
|
|
-- zo ja, dan pakken we de eerste omschrijving die we in het importbestand tegenkomen.
|
|
FOR rec_k
|
|
IN (SELECT prs_afdeling_omschrijving
|
|
FROM fac_imp_organisatie
|
|
WHERE prs_kostenplaats_nr =
|
|
rec.prs_kostenplaats_nr)
|
|
LOOP
|
|
v_prs_kostenplaats_oms :=
|
|
rec_k.prs_afdeling_omschrijving;
|
|
EXIT;
|
|
END LOOP;
|
|
ELSE
|
|
v_prs_kostenplaats_oms := rec.prs_afdeling_omschrijving;
|
|
END IF;
|
|
|
|
UPDATE prs_kostenplaats
|
|
SET prs_kostenplaats_omschrijving = v_prs_kostenplaats_oms
|
|
WHERE prs_kostenplaats_key = v_prs_kostenplaats_key;
|
|
EXCEPTION
|
|
WHEN NO_DATA_FOUND
|
|
THEN
|
|
v_errorhint := 'Nieuwe kostenplaats toevoegen';
|
|
|
|
IF rec.prs_kostenplaats_nr IS NOT NULL
|
|
THEN
|
|
INSERT INTO prs_kostenplaats (
|
|
prs_kostenplaats_nr,
|
|
prs_kostenplaats_omschrijving,
|
|
prs_kostenplaats_module)
|
|
VALUES (rec.prs_kostenplaats_nr,
|
|
rec.prs_afdeling_omschrijving,
|
|
'PRS')
|
|
RETURNING prs_kostenplaats_key
|
|
INTO v_prs_kostenplaats_key;
|
|
END IF;
|
|
END;
|
|
|
|
v_errorhint := 'Kijk of parent bestaat';
|
|
|
|
IF rec.prs_afdeling_naam_parent IS NOT NULL
|
|
THEN
|
|
SELECT prs_afdeling_key
|
|
INTO v_prs_afd_parent_key
|
|
FROM prs_afdeling
|
|
WHERE prs_afdeling_verwijder IS NULL
|
|
AND prs_afdeling_naam = rec.prs_afdeling_naam_parent;
|
|
ELSE
|
|
v_prs_afd_parent_key := NULL;
|
|
END IF;
|
|
|
|
v_errorhint := 'Zoek het niveau van de parent';
|
|
|
|
IF v_prs_afd_parent_key IS NOT NULL
|
|
THEN
|
|
SELECT prs_kenmerklink_waarde
|
|
INTO v_prs_afd_niveau_parent
|
|
FROM prs_kenmerklink
|
|
WHERE prs_kenmerk_key = 1081 -- afdelingsniveau
|
|
AND prs_link_key = v_prs_afd_parent_key;
|
|
ELSE
|
|
v_prs_afd_niveau_parent := 0;
|
|
END IF;
|
|
|
|
v_prs_afd_niveau_parent := v_prs_afd_niveau_parent + 1;
|
|
|
|
IF rec.prs_afdeling_key IS NULL
|
|
THEN
|
|
-- toevoegen afdeling
|
|
v_errorhint := 'Toevoegen afdeling';
|
|
|
|
INSERT INTO prs_afdeling (prs_bedrijf_key,
|
|
prs_afdeling_parentkey,
|
|
prs_afdeling_naam,
|
|
prs_afdeling_omschrijving,
|
|
prs_kostenplaats_key)
|
|
VALUES (v_prs_bedrijf_key,
|
|
NULL,
|
|
rec.prs_afdeling_naam,
|
|
rec.prs_afdeling_omschrijving,
|
|
v_prs_kostenplaats_key)
|
|
RETURNING prs_afdeling_key
|
|
INTO v_prs_afdeling_key;
|
|
ELSE
|
|
-- aanpassen afdeling
|
|
v_errorhint := 'Aanpassen afdeling';
|
|
|
|
UPDATE prs_afdeling
|
|
SET prs_bedrijf_key = v_prs_bedrijf_key,
|
|
prs_afdeling_parentkey = NULL,
|
|
prs_afdeling_naam = rec.prs_afdeling_naam,
|
|
prs_afdeling_omschrijving =
|
|
rec.prs_afdeling_omschrijving,
|
|
prs_kostenplaats_key = v_prs_kostenplaats_key
|
|
WHERE prs_afdeling_key = rec.prs_afdeling_key;
|
|
|
|
v_prs_afdeling_key := rec.prs_afdeling_key;
|
|
END IF;
|
|
|
|
PRS.upsertkenmerk (1080,
|
|
v_prs_afdeling_key,
|
|
v_prs_afd_parent_key);
|
|
PRS.upsertkenmerk (1081,
|
|
v_prs_afdeling_key,
|
|
v_prs_afd_niveau_parent);
|
|
EXCEPTION
|
|
WHEN OTHERS
|
|
THEN
|
|
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
|
|
v_errormsg := 'error ' || SQLCODE || '/' || oracle_err_mes;
|
|
fac.imp_writelog (p_import_key,
|
|
'E',
|
|
v_errormsg,
|
|
v_errorhint || '-' || v_aanduiding);
|
|
END;
|
|
END LOOP;
|
|
|
|
SELECT COUNT (*)
|
|
INTO v_newcount
|
|
FROM prs_afdeling
|
|
WHERE (prs_afdeling_parentkey IS NULL OR prs_afdeling_parentkey <> 1)
|
|
AND prs_afdeling_verwijder IS NULL;
|
|
|
|
|
|
fac.imp_writelog (
|
|
p_import_key,
|
|
'S',
|
|
'Aantal ingelezen afdelingen: ' || TO_CHAR (v_impcount),
|
|
'');
|
|
fac.imp_writelog (
|
|
p_import_key,
|
|
'S',
|
|
'Aantal afdelingen vooraf: '
|
|
|| TO_CHAR (v_oldcount)
|
|
|| ' nu: '
|
|
|| TO_CHAR (v_newcount),
|
|
'');
|
|
|
|
UPDATE prs_kostenplaats k
|
|
SET prs_kostenplaats_verwijder = SYSDATE
|
|
WHERE NOT EXISTS
|
|
(SELECT i.prs_kostenplaats_nr
|
|
FROM fac_imp_organisatie i
|
|
WHERE i.prs_kostenplaats_nr = k.prs_kostenplaats_nr)
|
|
AND prs_kostenplaats_verwijder IS NULL
|
|
AND prs_kostenplaats_module = 'PRS';
|
|
|
|
UPDATE prs_kostenplaats k
|
|
SET prs_kostenplaats_omschrijving = 'Externe dienstverlening'
|
|
WHERE prs_kostenplaats_verwijder IS NULL
|
|
AND prs_kostenplaats_module = 'PRS'
|
|
AND prs_kostenplaats_nr = 5034;
|
|
|
|
UPDATE prs_afdeling a
|
|
SET prs_afdeling_omschrijving =
|
|
SUBSTR ('Inactief - ' || prs_afdeling_omschrijving, 1, 60)
|
|
WHERE prs_afdeling_key <> 1
|
|
AND prs_afdeling_verwijder IS NULL
|
|
AND prs_afdeling_omschrijving NOT LIKE 'Inactief - %'
|
|
AND NOT EXISTS
|
|
(SELECT prs_afdeling_naam
|
|
FROM fac_imp_organisatie i
|
|
WHERE i.prs_afdeling_naam = a.prs_afdeling_naam);
|
|
END pnbr_update_organisatie_mut;
|
|
/
|
|
|
|
|
|
CREATE OR REPLACE VIEW pnbr_v_afdeling
|
|
(
|
|
prs_bedrijf_key,
|
|
prs_afdeling_key,
|
|
prs_afdeling_parentkey
|
|
)
|
|
AS
|
|
SELECT a.prs_bedrijf_key, a.prs_afdeling_key, kl.prs_afdeling_parentkey
|
|
FROM prs_afdeling a,
|
|
(SELECT prs_link_key prs_afdeling_key,
|
|
prs_kenmerklink_waarde prs_afdeling_parentkey
|
|
FROM prs_kenmerklink
|
|
WHERE prs_kenmerk_key = 1080) kl
|
|
WHERE a.prs_afdeling_key = kl.prs_afdeling_key(+);
|
|
|
|
|
|
CREATE OR REPLACE VIEW pnbr_v_afdeling_boom
|
|
(
|
|
niveau,
|
|
prs_bedrijf_key,
|
|
prs_afdeling_key,
|
|
prs_afdeling_key1,
|
|
prs_afdeling_key2,
|
|
prs_afdeling_key3,
|
|
prs_afdeling_key4,
|
|
prs_afdeling_key5,
|
|
prs_afdeling_key6,
|
|
prs_afdeling_key7,
|
|
prs_afdeling_key8,
|
|
prs_afdeling_key9,
|
|
prs_afdeling_key10
|
|
)
|
|
AS
|
|
SELECT '1' niveau,
|
|
a1.prs_bedrijf_key,
|
|
a1.prs_afdeling_key,
|
|
a1.prs_afdeling_key,
|
|
TO_NUMBER (NULL),
|
|
TO_NUMBER (NULL),
|
|
TO_NUMBER (NULL),
|
|
TO_NUMBER (NULL),
|
|
TO_NUMBER (NULL),
|
|
TO_NUMBER (NULL),
|
|
TO_NUMBER (NULL),
|
|
TO_NUMBER (NULL),
|
|
TO_NUMBER (NULL)
|
|
FROM pnbr_v_afdeling a1
|
|
WHERE a1.prs_afdeling_parentkey IS NULL
|
|
UNION
|
|
SELECT '2' niveau,
|
|
a1.prs_bedrijf_key,
|
|
a2.prs_afdeling_key,
|
|
a1.prs_afdeling_key,
|
|
a2.prs_afdeling_key,
|
|
TO_NUMBER (NULL),
|
|
TO_NUMBER (NULL),
|
|
TO_NUMBER (NULL),
|
|
TO_NUMBER (NULL),
|
|
TO_NUMBER (NULL),
|
|
TO_NUMBER (NULL),
|
|
TO_NUMBER (NULL),
|
|
TO_NUMBER (NULL)
|
|
FROM pnbr_v_afdeling a1, pnbr_v_afdeling a2
|
|
WHERE a2.prs_afdeling_parentkey = a1.prs_afdeling_key
|
|
AND a1.prs_afdeling_parentkey IS NULL
|
|
UNION
|
|
SELECT '3' niveau,
|
|
a1.prs_bedrijf_key,
|
|
a3.prs_afdeling_key,
|
|
a1.prs_afdeling_key,
|
|
a2.prs_afdeling_key,
|
|
a3.prs_afdeling_key,
|
|
TO_NUMBER (NULL),
|
|
TO_NUMBER (NULL),
|
|
TO_NUMBER (NULL),
|
|
TO_NUMBER (NULL),
|
|
TO_NUMBER (NULL),
|
|
TO_NUMBER (NULL),
|
|
TO_NUMBER (NULL)
|
|
FROM pnbr_v_afdeling a1, pnbr_v_afdeling a2, pnbr_v_afdeling a3
|
|
WHERE a2.prs_afdeling_parentkey = a1.prs_afdeling_key
|
|
AND a3.prs_afdeling_parentkey = a2.prs_afdeling_key
|
|
AND a1.prs_afdeling_parentkey IS NULL
|
|
UNION
|
|
SELECT '4' niveau,
|
|
a1.prs_bedrijf_key,
|
|
a4.prs_afdeling_key,
|
|
a1.prs_afdeling_key,
|
|
a2.prs_afdeling_key,
|
|
a3.prs_afdeling_key,
|
|
a4.prs_afdeling_key,
|
|
TO_NUMBER (NULL),
|
|
TO_NUMBER (NULL),
|
|
TO_NUMBER (NULL),
|
|
TO_NUMBER (NULL),
|
|
TO_NUMBER (NULL),
|
|
TO_NUMBER (NULL)
|
|
FROM pnbr_v_afdeling a1,
|
|
pnbr_v_afdeling a2,
|
|
pnbr_v_afdeling a3,
|
|
pnbr_v_afdeling a4
|
|
WHERE a2.prs_afdeling_parentkey = a1.prs_afdeling_key
|
|
AND a3.prs_afdeling_parentkey = a2.prs_afdeling_key
|
|
AND a4.prs_afdeling_parentkey = a3.prs_afdeling_key
|
|
AND a1.prs_afdeling_parentkey IS NULL
|
|
UNION
|
|
SELECT '5' niveau,
|
|
a1.prs_bedrijf_key,
|
|
a5.prs_afdeling_key,
|
|
a1.prs_afdeling_key,
|
|
a2.prs_afdeling_key,
|
|
a3.prs_afdeling_key,
|
|
a4.prs_afdeling_key,
|
|
a5.prs_afdeling_key,
|
|
TO_NUMBER (NULL),
|
|
TO_NUMBER (NULL),
|
|
TO_NUMBER (NULL),
|
|
TO_NUMBER (NULL),
|
|
TO_NUMBER (NULL)
|
|
FROM pnbr_v_afdeling a1,
|
|
pnbr_v_afdeling a2,
|
|
pnbr_v_afdeling a3,
|
|
pnbr_v_afdeling a4,
|
|
pnbr_v_afdeling a5
|
|
WHERE a2.prs_afdeling_parentkey = a1.prs_afdeling_key
|
|
AND a3.prs_afdeling_parentkey = a2.prs_afdeling_key
|
|
AND a4.prs_afdeling_parentkey = a3.prs_afdeling_key
|
|
AND a5.prs_afdeling_parentkey = a4.prs_afdeling_key
|
|
AND a1.prs_afdeling_parentkey IS NULL
|
|
UNION
|
|
SELECT '6' niveau,
|
|
a1.prs_bedrijf_key,
|
|
a6.prs_afdeling_key,
|
|
a1.prs_afdeling_key,
|
|
a2.prs_afdeling_key,
|
|
a3.prs_afdeling_key,
|
|
a4.prs_afdeling_key,
|
|
a5.prs_afdeling_key,
|
|
a6.prs_afdeling_key,
|
|
TO_NUMBER (NULL),
|
|
TO_NUMBER (NULL),
|
|
TO_NUMBER (NULL),
|
|
TO_NUMBER (NULL)
|
|
FROM pnbr_v_afdeling a1,
|
|
pnbr_v_afdeling a2,
|
|
pnbr_v_afdeling a3,
|
|
pnbr_v_afdeling a4,
|
|
pnbr_v_afdeling a5,
|
|
pnbr_v_afdeling a6
|
|
WHERE a2.prs_afdeling_parentkey = a1.prs_afdeling_key
|
|
AND a3.prs_afdeling_parentkey = a2.prs_afdeling_key
|
|
AND a4.prs_afdeling_parentkey = a3.prs_afdeling_key
|
|
AND a5.prs_afdeling_parentkey = a4.prs_afdeling_key
|
|
AND a6.prs_afdeling_parentkey = a5.prs_afdeling_key
|
|
AND a1.prs_afdeling_parentkey IS NULL
|
|
UNION
|
|
SELECT '7' niveau,
|
|
a1.prs_bedrijf_key,
|
|
a7.prs_afdeling_key,
|
|
a1.prs_afdeling_key,
|
|
a2.prs_afdeling_key,
|
|
a3.prs_afdeling_key,
|
|
a4.prs_afdeling_key,
|
|
a5.prs_afdeling_key,
|
|
a6.prs_afdeling_key,
|
|
a7.prs_afdeling_key,
|
|
TO_NUMBER (NULL),
|
|
TO_NUMBER (NULL),
|
|
TO_NUMBER (NULL)
|
|
FROM pnbr_v_afdeling a1,
|
|
pnbr_v_afdeling a2,
|
|
pnbr_v_afdeling a3,
|
|
pnbr_v_afdeling a4,
|
|
pnbr_v_afdeling a5,
|
|
pnbr_v_afdeling a6,
|
|
pnbr_v_afdeling a7
|
|
WHERE a2.prs_afdeling_parentkey = a1.prs_afdeling_key
|
|
AND a3.prs_afdeling_parentkey = a2.prs_afdeling_key
|
|
AND a4.prs_afdeling_parentkey = a3.prs_afdeling_key
|
|
AND a5.prs_afdeling_parentkey = a4.prs_afdeling_key
|
|
AND a6.prs_afdeling_parentkey = a5.prs_afdeling_key
|
|
AND a7.prs_afdeling_parentkey = a6.prs_afdeling_key
|
|
AND a1.prs_afdeling_parentkey IS NULL
|
|
UNION
|
|
SELECT '8' niveau,
|
|
a1.prs_bedrijf_key,
|
|
a8.prs_afdeling_key,
|
|
a1.prs_afdeling_key,
|
|
a2.prs_afdeling_key,
|
|
a3.prs_afdeling_key,
|
|
a4.prs_afdeling_key,
|
|
a5.prs_afdeling_key,
|
|
a6.prs_afdeling_key,
|
|
a7.prs_afdeling_key,
|
|
a8.prs_afdeling_key,
|
|
TO_NUMBER (NULL),
|
|
TO_NUMBER (NULL)
|
|
FROM pnbr_v_afdeling a1,
|
|
pnbr_v_afdeling a2,
|
|
pnbr_v_afdeling a3,
|
|
pnbr_v_afdeling a4,
|
|
pnbr_v_afdeling a5,
|
|
pnbr_v_afdeling a6,
|
|
pnbr_v_afdeling a7,
|
|
pnbr_v_afdeling a8
|
|
WHERE a2.prs_afdeling_parentkey = a1.prs_afdeling_key
|
|
AND a3.prs_afdeling_parentkey = a2.prs_afdeling_key
|
|
AND a4.prs_afdeling_parentkey = a3.prs_afdeling_key
|
|
AND a5.prs_afdeling_parentkey = a4.prs_afdeling_key
|
|
AND a6.prs_afdeling_parentkey = a5.prs_afdeling_key
|
|
AND a7.prs_afdeling_parentkey = a6.prs_afdeling_key
|
|
AND a8.prs_afdeling_parentkey = a7.prs_afdeling_key
|
|
AND a1.prs_afdeling_parentkey IS NULL
|
|
UNION
|
|
SELECT '9' niveau,
|
|
a1.prs_bedrijf_key,
|
|
a9.prs_afdeling_key,
|
|
a1.prs_afdeling_key,
|
|
a2.prs_afdeling_key,
|
|
a3.prs_afdeling_key,
|
|
a4.prs_afdeling_key,
|
|
a5.prs_afdeling_key,
|
|
a6.prs_afdeling_key,
|
|
a7.prs_afdeling_key,
|
|
a8.prs_afdeling_key,
|
|
a9.prs_afdeling_key,
|
|
TO_NUMBER (NULL)
|
|
FROM pnbr_v_afdeling a1,
|
|
pnbr_v_afdeling a2,
|
|
pnbr_v_afdeling a3,
|
|
pnbr_v_afdeling a4,
|
|
pnbr_v_afdeling a5,
|
|
pnbr_v_afdeling a6,
|
|
pnbr_v_afdeling a7,
|
|
pnbr_v_afdeling a8,
|
|
pnbr_v_afdeling a9
|
|
WHERE a2.prs_afdeling_parentkey = a1.prs_afdeling_key
|
|
AND a3.prs_afdeling_parentkey = a2.prs_afdeling_key
|
|
AND a4.prs_afdeling_parentkey = a3.prs_afdeling_key
|
|
AND a5.prs_afdeling_parentkey = a4.prs_afdeling_key
|
|
AND a6.prs_afdeling_parentkey = a5.prs_afdeling_key
|
|
AND a7.prs_afdeling_parentkey = a6.prs_afdeling_key
|
|
AND a8.prs_afdeling_parentkey = a7.prs_afdeling_key
|
|
AND a9.prs_afdeling_parentkey = a8.prs_afdeling_key
|
|
AND a1.prs_afdeling_parentkey IS NULL
|
|
UNION
|
|
SELECT '10' niveau,
|
|
a1.prs_bedrijf_key,
|
|
a10.prs_afdeling_key,
|
|
a1.prs_afdeling_key,
|
|
a2.prs_afdeling_key,
|
|
a3.prs_afdeling_key,
|
|
a4.prs_afdeling_key,
|
|
a5.prs_afdeling_key,
|
|
a6.prs_afdeling_key,
|
|
a7.prs_afdeling_key,
|
|
a8.prs_afdeling_key,
|
|
a9.prs_afdeling_key,
|
|
a10.prs_afdeling_key
|
|
FROM pnbr_v_afdeling a1,
|
|
pnbr_v_afdeling a2,
|
|
pnbr_v_afdeling a3,
|
|
pnbr_v_afdeling a4,
|
|
pnbr_v_afdeling a5,
|
|
pnbr_v_afdeling a6,
|
|
pnbr_v_afdeling a7,
|
|
pnbr_v_afdeling a8,
|
|
pnbr_v_afdeling a9,
|
|
pnbr_v_afdeling a10
|
|
WHERE a2.prs_afdeling_parentkey = a1.prs_afdeling_key
|
|
AND a3.prs_afdeling_parentkey = a2.prs_afdeling_key
|
|
AND a4.prs_afdeling_parentkey = a3.prs_afdeling_key
|
|
AND a5.prs_afdeling_parentkey = a4.prs_afdeling_key
|
|
AND a6.prs_afdeling_parentkey = a5.prs_afdeling_key
|
|
AND a7.prs_afdeling_parentkey = a6.prs_afdeling_key
|
|
AND a8.prs_afdeling_parentkey = a7.prs_afdeling_key
|
|
AND a9.prs_afdeling_parentkey = a8.prs_afdeling_key
|
|
AND a10.prs_afdeling_parentkey = a9.prs_afdeling_key
|
|
AND a1.prs_afdeling_parentkey IS NULL;
|
|
|
|
|
|
-- import om objectinformatie via de api in te lezen
|
|
|
|
CREATE OR REPLACE PROCEDURE pnbr_import_ins_mut (p_import_key IN NUMBER)
|
|
AS
|
|
BEGIN
|
|
fac_import_ins (p_import_key);
|
|
END;
|
|
/
|
|
|
|
CREATE OR REPLACE PROCEDURE pnbr_update_ins_mut (p_import_key IN NUMBER)
|
|
AS
|
|
CURSOR c IS
|
|
SELECT (SELECT MAX (ins_deel_key)
|
|
FROM ins_v_aanwezigdeel ad
|
|
WHERE UPPER (ad.ins_deel_omschrijving) =
|
|
UPPER (i.ins_deel_omschrijving)) ins_deel_key,
|
|
i.*
|
|
FROM fac_imp_ins i;
|
|
|
|
CURSOR c_del IS
|
|
SELECT d.ins_deel_key
|
|
FROM ins_v_deel_gegevens ad, ins_deel d
|
|
WHERE ad.ins_deel_key = d.ins_deel_key
|
|
AND COALESCE (d.ins_deel_vervaldatum, SYSDATE + 1) > SYSDATE
|
|
-- Het betreffende object komt niet meer voor in het importbestand
|
|
AND NOT EXISTS
|
|
(SELECT ins_deel_omschrijving
|
|
FROM fac_imp_ins i
|
|
WHERE UPPER (i.ins_deel_omschrijving) =
|
|
UPPER (ad.ins_deel_omschrijving))
|
|
-- En het importbestand bevat objecten van dit objectsoort.
|
|
AND (SELECT COUNT (*)
|
|
FROM fac_imp_ins
|
|
WHERE UPPER (ins_srtdeel_omschrijving) =
|
|
ad.ins_srtdeel_upper) >
|
|
0;
|
|
|
|
PROCEDURE log_inskenmerk (p_import_key IN NUMBER,
|
|
p_str IN VARCHAR2,
|
|
p_deel_key IN NUMBER)
|
|
AS
|
|
v_srtkenmerk_key ins_srtkenmerk.ins_srtkenmerk_key%TYPE;
|
|
v_kenmerk_key ins_kenmerk.ins_kenmerk_key%TYPE;
|
|
v_waarde_new ins_kenmerkdeel.ins_kenmerkdeel_waarde%TYPE;
|
|
v_kenmerk_type ins_srtkenmerk.ins_srtkenmerk_kenmerktype%TYPE;
|
|
v_srtkenmerk_omschrijving ins_srtkenmerk.ins_srtkenmerk_omschrijving%TYPE;
|
|
v_waarde_old ins_kenmerkdeel.ins_kenmerkdeel_waarde%TYPE;
|
|
v_kenmerkdomein_key fac_kenmerkdomein.fac_kenmerkdomein_key%TYPE;
|
|
v_kenmerk_niveau ins_kenmerk.ins_kenmerk_niveau%TYPE;
|
|
v_kenmerkdeel_key ins_kenmerkdeel.ins_kenmerkdeel_key%TYPE;
|
|
v_srtnotificatie_key fac_srtnotificatie.fac_srtnotificatie_key%TYPE;
|
|
v_log imp_log.imp_log_omschrijving%TYPE;
|
|
v_errormsg VARCHAR2 (200);
|
|
oracle_err_num NUMBER;
|
|
oracle_err_mes VARCHAR2 (200);
|
|
BEGIN
|
|
IF p_str IS NOT NULL AND INSTR (p_str, '=') > 1
|
|
THEN
|
|
v_srtkenmerk_key := SUBSTR (p_str, 1, INSTR (p_str, '|') - 1);
|
|
v_waarde_new := SUBSTR (p_str, INSTR (p_str, '=') + 1, 100);
|
|
|
|
-- vind de bijbehorende kenmerk key
|
|
SELECT k.ins_kenmerk_key, k.ins_kenmerk_niveau
|
|
INTO v_kenmerk_key, v_kenmerk_niveau
|
|
FROM ins_kenmerk k, ins_v_deel_gegevens dg
|
|
WHERE ins_srtkenmerk_key = v_srtkenmerk_key
|
|
AND dg.ins_deel_key = p_deel_key
|
|
AND ( ( k.ins_kenmerk_niveau = 'S'
|
|
AND k.ins_srtinstallatie_key = dg.ins_srtdeel_key)
|
|
OR ( k.ins_kenmerk_niveau = 'G'
|
|
AND k.ins_srtinstallatie_key =
|
|
dg.ins_srtgroep_key)
|
|
OR ( k.ins_kenmerk_niveau = 'D'
|
|
AND k.ins_srtinstallatie_key =
|
|
dg.ins_discipline_key));
|
|
|
|
-- vind de srtkenmerkgegevens die nodig zijn om de waarde te bepalen en de naam van het kenmerk in de log op te nemen.
|
|
SELECT sk.ins_srtkenmerk_kenmerktype,
|
|
sk.fac_kenmerkdomein_key,
|
|
sk.ins_srtkenmerk_omschrijving
|
|
INTO v_kenmerk_type,
|
|
v_kenmerkdomein_key,
|
|
v_srtkenmerk_omschrijving
|
|
FROM ins_srtkenmerk sk
|
|
WHERE sk.ins_srtkenmerk_key = v_srtkenmerk_key;
|
|
|
|
BEGIN
|
|
SELECT ikd.ins_kenmerkdeel_waarde, ikd.ins_kenmerkdeel_key
|
|
INTO v_waarde_old, v_kenmerkdeel_key
|
|
FROM ins_kenmerkdeel ikd
|
|
WHERE ikd.ins_deel_key = p_deel_key
|
|
AND ikd.ins_kenmerkdeel_verwijder IS NULL
|
|
AND ikd.ins_kenmerk_key = v_kenmerk_key;
|
|
|
|
IF v_kenmerk_type = 'R' OR v_kenmerk_type = 'S'
|
|
THEN
|
|
v_waarde_old :=
|
|
fac.getdomeinwaarde (v_kenmerkdomein_key,
|
|
v_waarde_old);
|
|
ELSIF v_kenmerk_type = 'D'
|
|
THEN
|
|
v_waarde_old :=
|
|
TO_CHAR (
|
|
fac.safe_to_date (v_waarde_old, 'dd-mm-yyyy'),
|
|
'yyyy-mm-dd');
|
|
ELSIF v_kenmerk_type = 'N'
|
|
THEN
|
|
v_waarde_old :=
|
|
TO_CHAR (fac.safe_to_number (v_waarde_old));
|
|
END IF;
|
|
EXCEPTION
|
|
WHEN NO_DATA_FOUND
|
|
THEN
|
|
v_waarde_old := NULL;
|
|
v_kenmerkdeel_key := NULL;
|
|
END;
|
|
|
|
v_waarde_old := COALESCE (v_waarde_old, '(leeg)');
|
|
v_waarde_new := COALESCE (v_waarde_new, '(leeg)');
|
|
|
|
IF v_waarde_old <> v_waarde_new
|
|
THEN
|
|
v_log :=
|
|
v_srtkenmerk_omschrijving
|
|
|| ': '
|
|
|| v_waarde_old
|
|
|| ' --> '
|
|
|| v_waarde_new;
|
|
|
|
SELECT fac_srtnotificatie_key
|
|
INTO v_srtnotificatie_key
|
|
FROM fac_srtnotificatie
|
|
WHERE fac_srtnotificatie_code = 'INSUPD';
|
|
|
|
INSERT INTO fac_tracking (fac_srtnotificatie_key,
|
|
fac_tracking_refkey,
|
|
fac_tracking_oms)
|
|
VALUES (v_srtnotificatie_key, p_deel_key, v_log);
|
|
|
|
IF v_waarde_new = '(leeg)'
|
|
THEN
|
|
-- kenmerken worden (nog) niet verwijderd in de fac_update_ins routine
|
|
DELETE ins_kenmerkdeel
|
|
WHERE ins_kenmerkdeel_key = v_kenmerkdeel_key;
|
|
END IF;
|
|
END IF;
|
|
END IF;
|
|
EXCEPTION
|
|
WHEN OTHERS
|
|
THEN
|
|
oracle_err_num := SQLCODE;
|
|
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
|
|
v_errormsg :=
|
|
' ORACLE (error '
|
|
|| oracle_err_num
|
|
|| '/'
|
|
|| oracle_err_mes
|
|
|| ')';
|
|
fac.imp_writelog (
|
|
p_import_key,
|
|
'W',
|
|
'Kenmerkwijziging kon niet gelogd worden. ' || v_errormsg,
|
|
'Deel_key:' || p_deel_key || ' String:' || p_str);
|
|
END;
|
|
BEGIN
|
|
FOR rec IN c
|
|
LOOP
|
|
log_inskenmerk (p_import_key,
|
|
rec.ins_kenmerkwaarde1,
|
|
rec.ins_deel_key);
|
|
log_inskenmerk (p_import_key,
|
|
rec.ins_kenmerkwaarde2,
|
|
rec.ins_deel_key);
|
|
log_inskenmerk (p_import_key,
|
|
rec.ins_kenmerkwaarde3,
|
|
rec.ins_deel_key);
|
|
log_inskenmerk (p_import_key,
|
|
rec.ins_kenmerkwaarde4,
|
|
rec.ins_deel_key);
|
|
log_inskenmerk (p_import_key,
|
|
rec.ins_kenmerkwaarde5,
|
|
rec.ins_deel_key);
|
|
log_inskenmerk (p_import_key,
|
|
rec.ins_kenmerkwaarde6,
|
|
rec.ins_deel_key);
|
|
log_inskenmerk (p_import_key,
|
|
rec.ins_kenmerkwaarde7,
|
|
rec.ins_deel_key);
|
|
log_inskenmerk (p_import_key,
|
|
rec.ins_kenmerkwaarde8,
|
|
rec.ins_deel_key);
|
|
log_inskenmerk (p_import_key,
|
|
rec.ins_kenmerkwaarde9,
|
|
rec.ins_deel_key);
|
|
log_inskenmerk (p_import_key,
|
|
rec.ins_kenmerkwaarde10,
|
|
rec.ins_deel_key);
|
|
log_inskenmerk (p_import_key,
|
|
rec.ins_kenmerkwaarde11,
|
|
rec.ins_deel_key);
|
|
log_inskenmerk (p_import_key,
|
|
rec.ins_kenmerkwaarde12,
|
|
rec.ins_deel_key);
|
|
log_inskenmerk (p_import_key,
|
|
rec.ins_kenmerkwaarde13,
|
|
rec.ins_deel_key);
|
|
log_inskenmerk (p_import_key,
|
|
rec.ins_kenmerkwaarde14,
|
|
rec.ins_deel_key);
|
|
log_inskenmerk (p_import_key,
|
|
rec.ins_kenmerkwaarde15,
|
|
rec.ins_deel_key);
|
|
log_inskenmerk (p_import_key,
|
|
rec.ins_kenmerkwaarde16,
|
|
rec.ins_deel_key);
|
|
log_inskenmerk (p_import_key,
|
|
rec.ins_kenmerkwaarde17,
|
|
rec.ins_deel_key);
|
|
log_inskenmerk (p_import_key,
|
|
rec.ins_kenmerkwaarde18,
|
|
rec.ins_deel_key);
|
|
log_inskenmerk (p_import_key,
|
|
rec.ins_kenmerkwaarde19,
|
|
rec.ins_deel_key);
|
|
log_inskenmerk (p_import_key,
|
|
rec.ins_kenmerkwaarde20,
|
|
rec.ins_deel_key);
|
|
END LOOP;
|
|
|
|
fac_update_ins (p_import_key);
|
|
|
|
-- fac_update_ins maakt tracking aan voor alle elementen die al in de lijst voorkomen.
|
|
-- deze tracking is verwarrend en gaan we verwijderen. De tracking is te herkennen aan het feit
|
|
-- dat er geen omschrijving bij staat.
|
|
DELETE fac_tracking t
|
|
WHERE fac_srtnotificatie_key IN
|
|
(SELECT fac_srtnotificatie_key
|
|
FROM fac_srtnotificatie
|
|
WHERE fac_srtnotificatie_code = 'INSUPD')
|
|
AND fac_tracking_oms IS NULL
|
|
AND TRUNC (fac_tracking_datum) = TRUNC (SYSDATE);
|
|
|
|
-- Verwijder elementen die niet meer voorkomen in de import
|
|
FOR rec IN c_del
|
|
LOOP
|
|
UPDATE ins_deel
|
|
SET ins_deel_vervaldatum = SYSDATE
|
|
WHERE ins_deel_key = rec.ins_deel_key;
|
|
END LOOP;
|
|
END;
|
|
/
|
|
|
|
|
|
/*
|
|
CREATE OR REPLACE PROCEDURE pnbr_import_mjob (p_import_key IN NUMBER)
|
|
AS
|
|
c_fielddelimitor VARCHAR2 (1) := ';';
|
|
v_newline VARCHAR2 (1000); -- Input line
|
|
v_errormsg VARCHAR2 (1000);
|
|
oracle_err_num NUMBER;
|
|
oracle_err_mes VARCHAR2 (200);
|
|
header_is_valid NUMBER;
|
|
v_count NUMBER;
|
|
v_ongeldig NUMBER (1);
|
|
v_mode NUMBER (1);
|
|
v_aanduiding VARCHAR2 (200);
|
|
v_all_null BOOLEAN;
|
|
v_count_error NUMBER (10);
|
|
v_count_tot NUMBER (10);
|
|
v_count_import NUMBER (10);
|
|
-- De importvelden:
|
|
v_alg_object_code VARCHAR2(200);
|
|
v_ins_plaats VARCHAR2(200)
|
|
v_ins_id VARCHAR2(200);
|
|
v_ins_nlsfb VARCHAR2(200);
|
|
v_ins_aanduiding VARCHAR2(200);
|
|
v_ins_bouwjaar VARCHAR2(200);
|
|
v_crt_startjaar VARCHAR2(200);
|
|
v_crt_stopjaar VARCHAR2(200);
|
|
v_ins_dimensie VARCHAR2(200);
|
|
v_ins_aantal VARCHAR2(200);
|
|
v_crt_dimensie VARCHAR2(200);
|
|
v_crt_aantal VARCHAR2(200);
|
|
v_crt_prijs VARCHAR2(200);
|
|
v_crt_opmerking VARCHAR2(200);
|
|
v_crt_kostensoort VARCHAR2(200);
|
|
v_crt_btw VARCHAR2(200);
|
|
v_crt_prioriteit VARCHAR2(200);
|
|
v_ins_levensduur VARCHAR2(200);
|
|
v_ins_cno VARCHAR2(200);
|
|
v_ins_cvo VARCHAR2(200);
|
|
v_crt_omschrijving VARCHAR2(200);
|
|
v_crt_key VARCHAR2(200);
|
|
v_crt_periode VARCHAR2(200);
|
|
v_crt_totaalprijs VARCHAR2(200);
|
|
v_crt_urgentie VARCHAR2(200);
|
|
v_crt_fonds VARCHAR2(200);
|
|
|
|
CURSOR c1
|
|
IS
|
|
SELECT *
|
|
FROM fac_imp_file
|
|
WHERE fac_import_key = p_import_key
|
|
ORDER BY fac_imp_file_index;
|
|
BEGIN
|
|
-- Eerst opruiming
|
|
DELETE FROM imp_log
|
|
WHERE fac_import_key = p_import_key;
|
|
|
|
DELETE FROM pnbr_imp_mjob;
|
|
|
|
COMMIT;
|
|
v_count_error := 0;
|
|
header_is_valid := 0;
|
|
v_count_tot := 0;
|
|
v_count_import := 0;
|
|
|
|
FOR rec1 IN c1
|
|
LOOP
|
|
BEGIN
|
|
v_errormsg := 'Fout FETCH te importeren rij';
|
|
|
|
v_newline := rec1.fac_imp_file_line;
|
|
v_errormsg := 'Fout opvragen te importeren rij';
|
|
v_aanduiding := '';
|
|
v_ongeldig := 0;
|
|
|
|
-- Lees alle veldwaarden
|
|
fac.imp_getfield (v_newline, c_fielddelimitor, v_alg_object_code);
|
|
fac.imp_getfield (v_newline, c_fielddelimitor, v_ins_id);
|
|
fac.imp_getfield (v_newline, c_fielddelimitor, v_ins_aanduiding);
|
|
fac.imp_getfield (v_newline, c_fielddelimitor, v_ins_aantal);
|
|
fac.imp_getfield (v_newline, c_fielddelimitor, v_ins_dimensie);
|
|
fac.imp_getfield (v_newline, c_fielddelimitor, v_ins_plaats)
|
|
fac.imp_getfield (v_newline, c_fielddelimitor, v_ins_nlsfb);
|
|
fac.imp_getfield (v_newline, c_fielddelimitor, v_ins_bouwjaar);
|
|
fac.imp_getfield (v_newline, c_fielddelimitor, v_ins_cno);
|
|
fac.imp_getfield (v_newline, c_fielddelimitor, v_ins_cvo);
|
|
fac.imp_getfield (v_newline, c_fielddelimitor, v_crt_key);
|
|
fac.imp_getfield (v_newline, c_fielddelimitor, v_crt_omschrijving);
|
|
fac.imp_getfield (v_newline, c_fielddelimitor, v_crt_dimensie);
|
|
fac.imp_getfield (v_newline, c_fielddelimitor, v_crt_aantal);
|
|
fac.imp_getfield (v_newline, c_fielddelimitor, v_crt_prijs);
|
|
fac.imp_getfield (v_newline, c_fielddelimitor, v_crt_startjaar);
|
|
fac.imp_getfield (v_newline, c_fielddelimitor, v_crt_prioriteit);
|
|
fac.imp_getfield (v_newline, c_fielddelimitor, v_crt_periode);
|
|
fac.imp_getfield (v_newline, c_fielddelimitor, v_crt_totaalprijs);
|
|
fac.imp_getfield (v_newline, c_fielddelimitor, v_crt_urgentie);
|
|
fac.imp_getfield (v_newline, c_fielddelimitor, v_crt_fonds);
|
|
fac.imp_getfield (v_newline, c_fielddelimitor, v_crt_stopjaar);
|
|
fac.imp_getfield (v_newline, c_fielddelimitor, v_crt_opmerking);
|
|
fac.imp_getfield (v_newline, c_fielddelimitor, v_crt_kostensoort);
|
|
fac.imp_getfield (v_newline, c_fielddelimitor, v_crt_btw);
|
|
|
|
--fac.imp_getfield (v_newline, c_fielddelimitor, v_ins_levensduur);
|
|
|
|
|
|
v_aanduiding := v_ins_id || '|' || v_afdeling_naam || '|' || v_afdeling_omschrijving || '| ';
|
|
|
|
IF (header_is_valid = 0)
|
|
THEN
|
|
IF UPPER (v_bedrijf_naam) = 'BEDRIJFSNAAM'
|
|
AND UPPER (v_afdeling_naam_parent) = 'AFDELINGSCODEPARENT'
|
|
THEN
|
|
header_is_valid := 1;
|
|
END IF;
|
|
ELSE
|
|
v_count_tot := v_count_tot + 1;
|
|
v_bedrijf_naam := TRIM (v_bedrijf_naam);
|
|
|
|
IF LENGTH (v_bedrijf_naam) > 60
|
|
THEN
|
|
v_bedrijf_naam := SUBSTR (v_bedrijf_naam, 1, 60);
|
|
fac.imp_writelog (p_import_key,
|
|
'W',
|
|
v_aanduiding || 'Bedrijf-aanduiding is te lang',
|
|
'Aanduiding wordt afgebroken tot [' || v_bedrijf_naam || ']'
|
|
);
|
|
END IF;
|
|
|
|
--
|
|
v_afdeling_naam := TRIM (v_afdeling_naam);
|
|
|
|
IF LENGTH (v_afdeling_naam) > 10
|
|
THEN
|
|
v_afdeling_naam := SUBSTR (v_afdeling_naam, 1, 10);
|
|
fac.imp_writelog (p_import_key,
|
|
'W',
|
|
v_aanduiding || 'Afdeling-aanduiding is te lang',
|
|
'Aanduiding wordt afgebroken tot [' || v_afdeling_naam || ']'
|
|
);
|
|
END IF;
|
|
|
|
--
|
|
v_afdeling_naam_parent := TRIM (v_afdeling_naam_parent);
|
|
|
|
IF LENGTH (v_afdeling_naam_parent) > 10
|
|
THEN
|
|
v_afdeling_naam_parent := SUBSTR (v_afdeling_naam_parent, 1, 10);
|
|
fac.imp_writelog (p_import_key,
|
|
'W',
|
|
v_aanduiding || 'Afdeling-aanduiding is te lang',
|
|
'Aanduiding wordt afgebroken tot [' || v_afdeling_naam_parent || ']'
|
|
);
|
|
END IF;
|
|
|
|
--
|
|
v_afdeling_omschrijving := TRIM (v_afdeling_omschrijving);
|
|
|
|
IF LENGTH (v_afdeling_omschrijving) > 60
|
|
THEN
|
|
v_afdeling_omschrijving := SUBSTR (v_afdeling_omschrijving, 1, 60);
|
|
fac.imp_writelog (p_import_key,
|
|
'W',
|
|
v_aanduiding || 'Afdelingsomschrijving is te lang',
|
|
'Aanduiding wordt afgebroken tot [' || v_afdeling_omschrijving || ']'
|
|
);
|
|
END IF;
|
|
|
|
v_kostenplaats := LTRIM(v_kostenplaats, '0');
|
|
v_all_null :=
|
|
(v_bedrijf_naam IS NULL)
|
|
AND (v_afdeling_naam IS NULL)
|
|
AND (v_afdeling_naam_parent IS NULL)
|
|
AND (v_afdeling_omschrijving IS NULL);
|
|
|
|
-- Insert geformatteerde import record
|
|
IF v_ongeldig = 0
|
|
THEN
|
|
v_errormsg := 'Fout bij toevoegen te impoteren bedrijf/afdeling [' || v_afdeling_naam || ']';
|
|
|
|
INSERT INTO fac_imp_organisatie (
|
|
prs_bedrijf_naam,
|
|
prs_afdeling_naam,
|
|
prs_afdeling_naam_parent,
|
|
prs_afdeling_omschrijving,
|
|
prs_kostenplaats_nr
|
|
)
|
|
VALUES (
|
|
v_bedrijf_naam,
|
|
v_afdeling_naam,
|
|
v_afdeling_naam_parent,
|
|
v_afdeling_omschrijving,
|
|
v_kostenplaats
|
|
);
|
|
|
|
v_count_import := v_count_import + 1;
|
|
END IF;
|
|
END IF;
|
|
END;
|
|
END LOOP;
|
|
|
|
IF (header_is_valid = 0)
|
|
THEN
|
|
fac.imp_writelog (p_import_key,
|
|
'E',
|
|
v_aanduiding || 'Ongeldig importbestand',
|
|
'Geen geldige headerregel aanwezig'
|
|
);
|
|
ELSE
|
|
fac.imp_writelog (p_import_key, 'S', 'Bedrijf: aantal ingelezen regels: ' || TO_CHAR (v_count_tot), '');
|
|
fac.imp_writelog (p_import_key,
|
|
'S',
|
|
'Bedrijf: aantal ongeldige importregels: ' || TO_CHAR (v_count_tot - v_count_import),
|
|
''
|
|
);
|
|
END IF;
|
|
|
|
-- De top elementen in de import hebben een parent die wijst naar
|
|
-- een niet bestaande afdeling. Daarom maken we die maar leeg.
|
|
UPDATE fac_imp_organisatie i
|
|
SET prs_afdeling_naam_parent = NULL
|
|
WHERE NOT EXISTS (SELECT prs_afdeling_naam
|
|
FROM fac_imp_organisatie i2
|
|
WHERE i.prs_afdeling_naam_parent = i2.prs_afdeling_naam);
|
|
|
|
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, '');
|
|
END pnbr_import_organisatie_mut;
|
|
/
|
|
|
|
*/
|
|
|
|
CREATE OR REPLACE VIEW pnbr_v_perslid_fullnames
|
|
(
|
|
prs_perslid_key,
|
|
prs_perslid_naam_full
|
|
)
|
|
AS
|
|
SELECT prs_perslid_key,
|
|
prs_perslid_naam
|
|
|| DECODE (p.prs_perslid_voorletters,
|
|
NULL, '',
|
|
', ' || p.prs_perslid_voorletters)
|
|
|| DECODE (p.prs_perslid_tussenvoegsel,
|
|
NULL, '',
|
|
' ' || p.prs_perslid_tussenvoegsel)
|
|
|| DECODE (p.prs_perslid_voornaam,
|
|
NULL, '',
|
|
' (' || p.prs_perslid_voornaam || ')')
|
|
|| ' ['
|
|
|| prs_perslid_oslogin
|
|
|| ']' prs_perslid_naam_full
|
|
FROM prs_v_aanwezigperslid p;
|
|
|
|
--
|
|
-- evenementen
|
|
--
|
|
|
|
CREATE OR REPLACE VIEW pnbr_v_accmngrevenement
|
|
(
|
|
prs_perslid_key,
|
|
prs_perslid_naam_full
|
|
)
|
|
AS
|
|
SELECT p.prs_perslid_key, prs_perslid_naam_full
|
|
FROM prs_perslid p,
|
|
prs_v_perslid_fullnames_all pf,
|
|
fac_usrtab t,
|
|
fac_usrdata d
|
|
WHERE p.prs_perslid_key = pf.prs_perslid_key
|
|
AND p.prs_perslid_nr = d.fac_usrdata_code
|
|
AND t.fac_usrtab_key = d.fac_usrtab_key
|
|
AND t.fac_usrtab_naam = 'AccMngrEvenement'
|
|
AND d.fac_usrdata_verwijder IS NULL;
|
|
|
|
CREATE OR REPLACE VIEW pnbr_v_opermngrevenement
|
|
(
|
|
prs_perslid_key,
|
|
prs_perslid_naam_full
|
|
)
|
|
AS
|
|
SELECT p.prs_perslid_key, prs_perslid_naam_full
|
|
FROM prs_perslid p,
|
|
prs_v_perslid_fullnames_all pf,
|
|
fac_usrtab t,
|
|
fac_usrdata d
|
|
WHERE p.prs_perslid_key = pf.prs_perslid_key
|
|
AND p.prs_perslid_nr = d.fac_usrdata_code
|
|
AND t.fac_usrtab_key = d.fac_usrtab_key
|
|
AND t.fac_usrtab_naam = 'OperMngrEvenemen'
|
|
AND d.fac_usrdata_verwijder IS NULL;
|
|
|
|
CREATE OR REPLACE VIEW pnbr_v_projmngrevenement
|
|
(
|
|
prs_perslid_key,
|
|
prs_perslid_naam_full
|
|
)
|
|
AS
|
|
SELECT p.prs_perslid_key, prs_perslid_naam_full
|
|
FROM prs_perslid p,
|
|
prs_v_perslid_fullnames_all pf,
|
|
fac_usrtab t,
|
|
fac_usrdata d
|
|
WHERE p.prs_perslid_key = pf.prs_perslid_key
|
|
AND p.prs_perslid_nr = d.fac_usrdata_code
|
|
AND t.fac_usrtab_key = d.fac_usrtab_key
|
|
AND t.fac_usrtab_naam = 'ProjMngrEvenemen'
|
|
AND d.fac_usrdata_verwijder IS NULL;
|
|
|
|
CREATE OR REPLACE VIEW pnbr_v_evenement
|
|
(
|
|
res_reservering_key,
|
|
res_reservering_omschrijving
|
|
)
|
|
AS
|
|
SELECT r.res_reservering_key,
|
|
TO_CHAR (r.res_reservering_key)
|
|
|| ' - '
|
|
|| MAX (res_rsv_ruimte_omschrijving) res_reservering_omschrijving
|
|
FROM res_reservering r, res_rsv_ruimte rrr
|
|
WHERE r.res_reservering_key = rrr.res_reservering_key
|
|
AND rrr.res_activiteit_key = 30 -- evenementen
|
|
GROUP BY r.res_reservering_key;
|
|
|
|
CREATE OR REPLACE VIEW pnbr_v_rap_evenementen
|
|
(
|
|
hide_f_ts,
|
|
dag,
|
|
fclt_d_datum,
|
|
omschrijving,
|
|
ruimte,
|
|
van,
|
|
tot,
|
|
aant,
|
|
om,
|
|
pm,
|
|
am
|
|
)
|
|
AS
|
|
SELECT TO_CHAR (r.res_rsv_ruimte_van, 'yyyymmddhh24mi') ts,
|
|
DECODE (TO_CHAR (r.res_rsv_ruimte_van, 'D'),
|
|
1, 'Zondag',
|
|
2, 'Maandag',
|
|
3, 'Dinsdag',
|
|
4, 'Woensdag',
|
|
5, 'Donderdag',
|
|
6, 'Vrijdag',
|
|
7, 'Zaterdag') dag,
|
|
TO_CHAR (r.res_rsv_ruimte_van, 'dd-mm-yyyy') datum,
|
|
oms.mld_kenmerkmelding_waarde oms,
|
|
TRIM (res_ruimte_nr) ruimte,
|
|
TO_CHAR (r.res_rsv_ruimte_van, 'hh24:mi') van,
|
|
TO_CHAR (r.res_rsv_ruimte_tot, 'hh24:mi') tot,
|
|
r.res_rsv_ruimte_bezoekers,
|
|
om.naam,
|
|
pm.naam,
|
|
am.naam
|
|
FROM mld_melding m,
|
|
res_ruimte_opstelling ro,
|
|
res_ruimte rr,
|
|
(SELECT km.mld_melding_key, rg.*
|
|
FROM res_rsv_ruimte rg, mld_kenmerkmelding km
|
|
WHERE rg.res_reservering_key =
|
|
fac.safe_to_number (km.mld_kenmerkmelding_waarde)
|
|
AND km.mld_kenmerk_key = 6032
|
|
AND rg.res_rsv_ruimte_volgnr =
|
|
(SELECT MIN (res_rsv_ruimte_volgnr)
|
|
FROM res_v_aanwezigrsv_ruimte r
|
|
WHERE r.res_reservering_key = rg.res_reservering_key))
|
|
r,
|
|
(SELECT km.mld_melding_key, km.mld_kenmerkmelding_waarde
|
|
FROM mld_kenmerkmelding km
|
|
WHERE km.mld_kenmerk_key = 6028) oms,
|
|
(SELECT km.mld_melding_key,
|
|
SUBSTR (prs_perslid_voornaam, 1, 1)
|
|
|| SUBSTR (prs_perslid_naam, 1, 1) naam
|
|
FROM mld_kenmerkmelding km, prs_perslid p
|
|
WHERE km.mld_kenmerk_key = 6030
|
|
AND p.prs_perslid_key =
|
|
fac.safe_to_number (km.mld_kenmerkmelding_waarde)) pm,
|
|
(SELECT km.mld_melding_key,
|
|
SUBSTR (prs_perslid_voornaam, 1, 1)
|
|
|| SUBSTR (prs_perslid_naam, 1, 1) naam
|
|
FROM mld_kenmerkmelding km, prs_perslid p
|
|
WHERE km.mld_kenmerk_key = 6029
|
|
AND p.prs_perslid_key =
|
|
fac.safe_to_number (km.mld_kenmerkmelding_waarde)) am,
|
|
(SELECT km.mld_melding_key,
|
|
SUBSTR (prs_perslid_voornaam, 1, 1)
|
|
|| SUBSTR (prs_perslid_naam, 1, 1) naam
|
|
FROM mld_kenmerkmelding km, prs_perslid p
|
|
WHERE km.mld_kenmerk_key = 6031
|
|
AND p.prs_perslid_key =
|
|
fac.safe_to_number (km.mld_kenmerkmelding_waarde)) om
|
|
WHERE m.mld_melding_key = r.mld_melding_key(+)
|
|
AND m.mld_melding_key = oms.mld_melding_key(+)
|
|
AND m.mld_melding_key = am.mld_melding_key(+)
|
|
AND m.mld_melding_key = om.mld_melding_key(+)
|
|
AND m.mld_melding_key = pm.mld_melding_key(+)
|
|
AND r.res_ruimte_opstel_key = ro.res_ruimte_opstel_key(+)
|
|
AND ro.res_ruimte_key = rr.res_ruimte_key(+)
|
|
AND mld_stdmelding_key = 2441;
|
|
|
|
----------------------------
|
|
-- Rapportages
|
|
|
|
|
|
CREATE OR REPLACE VIEW pnbr_v_rap_errorlog
|
|
(
|
|
HIDE_F_IMP_LOG_DATUM,
|
|
FCLT_F_APPLICATIE,
|
|
FCLT_F_DATUM,
|
|
TIJDSTIP,
|
|
FCLT_F_NIVEAU,
|
|
FCLT_F_OMSCHRIJVING,
|
|
HINT
|
|
)
|
|
AS
|
|
SELECT imp_log_datum hide_f_imp_log_datum,
|
|
fac_import_app_code,
|
|
TO_CHAR (imp_log_datum, 'YYYYMMDD') fclt_f_datum,
|
|
TO_CHAR (imp_log_datum, 'HH24:MI:SS') tijdstip,
|
|
DECODE (imp_log_status,
|
|
'F', 'Fataal',
|
|
'E', 'Error',
|
|
'W', 'Waarschuwing',
|
|
'S', 'Samenvatting',
|
|
'I', 'Informatief',
|
|
'-') fclt_f_niveau,
|
|
imp_log_omschrijving fclt_f_omschrijving,
|
|
imp_log_hint
|
|
FROM imp_log l, fac_import i, fac_import_app a
|
|
WHERE l.fac_import_key = i.fac_import_key
|
|
AND i.fac_import_app_key = a.fac_import_app_key
|
|
AND l.fac_import_key IN ( SELECT MAX (fac_import_key)
|
|
FROM fac_import
|
|
GROUP BY fac_import_app_key);
|
|
|
|
CREATE OR REPLACE VIEW pnbr_v_rap_import_status
|
|
(
|
|
fclt_f_import,
|
|
datum,
|
|
fclt_f_status,
|
|
omschrijving,
|
|
hint
|
|
)
|
|
AS
|
|
SELECT fac_import_app_code,
|
|
i.imp_log_datum,
|
|
i.imp_log_status,
|
|
i.imp_log_omschrijving,
|
|
i.imp_log_hint
|
|
FROM imp_log i, fac_import fi, fac_import_app ia
|
|
WHERE i.fac_import_key = fi.fac_import_key
|
|
AND fi.fac_import_app_key = ia.fac_import_app_key
|
|
AND ( fac_import_app_code = 'PERSLID_MUT'
|
|
OR fac_import_app_code = 'ORGANISATIE_MUT')
|
|
AND i.imp_log_datum > SYSDATE - 1;
|
|
|
|
CREATE OR REPLACE VIEW pnbr_v_rap_servicdesk_status
|
|
(
|
|
behandelgroep,
|
|
bij_frontoffice,
|
|
afgewezen,
|
|
nieuw,
|
|
te_behandelen,
|
|
in_behandeling,
|
|
afgemeld,
|
|
historie,
|
|
uitgegeven,
|
|
actie_vereist
|
|
)
|
|
AS
|
|
SELECT ins_discipline_omschrijving,
|
|
SUM (bij_frontoffice) bij_frontoffice,
|
|
SUM (afgewezen) afgewezen,
|
|
SUM (nieuw) nieuw,
|
|
SUM (te_behandelen) te_behandelen,
|
|
SUM (in_behandeling) in_behandeling,
|
|
SUM (afgemeld) afgemeld,
|
|
SUM (historie) historie,
|
|
SUM (uitgegeven) uitgegeven,
|
|
SUM (actie_vereist) actie_vereist
|
|
FROM (SELECT ins_discipline_omschrijving,
|
|
DECODE (mld_melding_status, 0, 1, 0) bij_frontoffice,
|
|
DECODE (mld_melding_status, 1, 1, 0) afgewezen,
|
|
DECODE (mld_melding_status, 2, 1, 0) nieuw,
|
|
DECODE (mld_melding_status, 3, 1, 0) te_behandelen,
|
|
DECODE (mld_melding_status, 4, 1, 0) in_behandeling,
|
|
DECODE (mld_melding_status, 5, 1, 0) afgemeld,
|
|
DECODE (mld_melding_status, 6, 1, 0) historie,
|
|
DECODE (mld_melding_status, 7, 1, 0) uitgegeven,
|
|
DECODE (mld_melding_status, 99, 1, 0) actie_vereist
|
|
FROM mld_melding m, mld_stdmelding std, mld_discipline d
|
|
WHERE m.mld_stdmelding_key = std.mld_stdmelding_key
|
|
AND ins_discipline_key > 400
|
|
AND std.mld_ins_discipline_key = d.ins_discipline_key)
|
|
GROUP BY ins_discipline_omschrijving;
|
|
|
|
CREATE OR REPLACE VIEW pnbr_v_rap_perf_servicedesk
|
|
(
|
|
naam,
|
|
ingevoerd,
|
|
afgemeld,
|
|
afgewezen
|
|
)
|
|
AS
|
|
SELECT prs_perslid_naam_full,
|
|
SUM (
|
|
COALESCE (
|
|
(SELECT 1
|
|
FROM fac_srtnotificatie sn
|
|
WHERE t.fac_srtnotificatie_key =
|
|
sn.fac_srtnotificatie_key
|
|
AND sn.fac_srtnotificatie_code = 'MLDNEW'),
|
|
0)) ingevoerd,
|
|
SUM (
|
|
COALESCE (
|
|
(SELECT 1
|
|
FROM fac_srtnotificatie sn
|
|
WHERE t.fac_srtnotificatie_key =
|
|
sn.fac_srtnotificatie_key
|
|
AND sn.fac_srtnotificatie_code = 'MLDAFM'),
|
|
0)) afgemeld,
|
|
SUM (
|
|
COALESCE (
|
|
(SELECT 1
|
|
FROM fac_srtnotificatie sn
|
|
WHERE t.fac_srtnotificatie_key =
|
|
sn.fac_srtnotificatie_key
|
|
AND sn.fac_srtnotificatie_code = 'MLDREJ'),
|
|
0)) afgewezen
|
|
FROM fac_gebruikersgroep gg, prs_v_perslid_fullnames pf, fac_tracking t
|
|
WHERE gg.prs_perslid_key = pf.prs_perslid_key
|
|
AND gg.fac_groep_key = 253
|
|
AND t.prs_perslid_key = pf.prs_perslid_key
|
|
AND TRUNC (t.fac_tracking_datum) = TRUNC (SYSDATE)
|
|
GROUP BY prs_perslid_naam_full;
|
|
|
|
CREATE OR REPLACE VIEW pnbr_v_rap_afm_servicedesk
|
|
(
|
|
fclt_f_behandelgroep,
|
|
servicedesk,
|
|
totaal,
|
|
fclt_f_periode
|
|
)
|
|
AS
|
|
SELECT ins_discipline_omschrijving behandelgroep,
|
|
SUM (servicedesk) servicedesk,
|
|
COUNT (mld_melding_key) totaal,
|
|
TO_CHAR (fac_tracking_datum, 'yyyy-mm') periode
|
|
FROM (SELECT DISTINCT 1 servicedesk, prs_perslid_key
|
|
FROM fac_gebruikersgroep gg
|
|
WHERE gg.fac_groep_key = 253 OR gg.fac_groep_key = 91) gg,
|
|
prs_v_perslid_fullnames pf,
|
|
fac_tracking t,
|
|
fac_srtnotificatie sn,
|
|
mld_melding m,
|
|
mld_stdmelding std,
|
|
ins_tab_discipline d
|
|
WHERE t.fac_srtnotificatie_key = sn.fac_srtnotificatie_key
|
|
AND ( sn.fac_srtnotificatie_code = 'MLDAFM'
|
|
OR sn.fac_srtnotificatie_code = 'MLDREJ')
|
|
AND t.fac_tracking_refkey = mld_melding_key
|
|
AND m.mld_stdmelding_key = std.mld_stdmelding_key
|
|
AND std.mld_ins_discipline_key = d.ins_discipline_key
|
|
AND gg.prs_perslid_key(+) = pf.prs_perslid_key
|
|
AND t.prs_perslid_key = pf.prs_perslid_key
|
|
GROUP BY d.ins_discipline_omschrijving,
|
|
TO_CHAR (fac_tracking_datum, 'yyyy-mm');
|
|
|
|
-- rapportages tbv het IT dashbord.
|
|
|
|
CREATE OR REPLACE VIEW pnbr_v_rap_beschikb_dienst
|
|
(
|
|
naam,
|
|
mobiel,
|
|
dect,
|
|
ins_key
|
|
)
|
|
AS
|
|
SELECT SUBSTR (ins_deel_omschrijving, 4, 20),
|
|
kdm.ins_kenmerkdeel_waarde,
|
|
kdd.ins_kenmerkdeel_waarde,
|
|
d.ins_deel_key
|
|
FROM ins_deel d,
|
|
(SELECT ins_deel_key, ins_kenmerkdeel_waarde
|
|
FROM ins_kenmerkdeel kd
|
|
WHERE ins_kenmerkdeel_verwijder IS NULL
|
|
AND ins_kenmerk_key = 801) kdm, -- mobiel nummer
|
|
(SELECT ins_deel_key, ins_kenmerkdeel_waarde
|
|
FROM ins_kenmerkdeel kd
|
|
WHERE ins_kenmerkdeel_verwijder IS NULL
|
|
AND ins_kenmerk_key = 821) kdd -- DECT nummer
|
|
WHERE d.ins_deel_verwijder IS NULL
|
|
AND d.ins_deel_key = kdm.ins_deel_key(+)
|
|
AND d.ins_deel_key = kdd.ins_deel_key(+)
|
|
AND d.ins_srtdeel_key = 562;
|
|
|
|
CREATE OR REPLACE VIEW pnbr_v_rap_appl_beschikb
|
|
(
|
|
applicatie,
|
|
status,
|
|
ins_key
|
|
)
|
|
AS
|
|
SELECT SUBSTR (ins_deel_omschrijving, 6, 20),
|
|
DECODE (ins_kenmerkdeel_waarde, 1, 'UP', 'DOWN'),
|
|
d.ins_deel_key
|
|
FROM ins_deel d,
|
|
(SELECT ins_deel_key, ins_kenmerkdeel_waarde
|
|
FROM ins_kenmerkdeel kd
|
|
WHERE ins_kenmerk_key = 641) kd
|
|
WHERE d.ins_deel_key = kd.ins_deel_key(+) AND d.ins_srtdeel_key = 561;
|
|
|
|
CREATE OR REPLACE VIEW pnbr_v_rap_dpl_meldingen
|
|
(
|
|
mld_key,
|
|
datum,
|
|
omschrijving,
|
|
eind,
|
|
intervalwijz,
|
|
workaround,
|
|
status,
|
|
afgemeld
|
|
)
|
|
AS
|
|
SELECT mld_melding_key,
|
|
TO_CHAR (mld_melding_datum, 'yyyy-mm-dd / hh24:mi'),
|
|
mld_melding_omschrijving,
|
|
fac.gettrackingdate ('MLDAFM', m.mld_melding_key)
|
|
einddatum,
|
|
SYSDATE
|
|
- (SELECT MAX (t.fac_tracking_datum)
|
|
FROM fac_tracking t, fac_srtnotificatie sn
|
|
WHERE t.fac_srtnotificatie_key = sn.fac_srtnotificatie_key
|
|
AND t.fac_tracking_refkey = m.mld_melding_key
|
|
AND sn.fac_srtnotificatie_xmlnode = 'melding')
|
|
intervalwijz,
|
|
(SELECT mld_kenmerkmelding_waarde
|
|
FROM mld_kenmerkmelding km
|
|
WHERE km.mld_kenmerk_key = 6821
|
|
AND km.mld_melding_key = m.mld_melding_key)
|
|
workaround,
|
|
s.mld_statuses_omschrijving,
|
|
DECODE (m.mld_melding_status, 1, 1, 5, 1, 6, 1, 0)
|
|
FROM mld_melding m, mld_statuses s
|
|
WHERE mld_stdmelding_key = 5481
|
|
AND m.mld_melding_status = s.mld_statuses_key
|
|
AND COALESCE (fac.gettrackingdate ('MLDAFM', m.mld_melding_key),
|
|
SYSDATE) <
|
|
SYSDATE + 14;
|
|
|
|
CREATE OR REPLACE VIEW pnbr_v_melding_bestuur
|
|
(
|
|
mld_melding_key,
|
|
meldingnummer,
|
|
prs_perslid_naam_full,
|
|
mld_stdmelding_omschrijving,
|
|
mld_melding_omschrijving,
|
|
mld_melding_status,
|
|
opengesloten,
|
|
mld_melding_datum,
|
|
mld_melding_afgemeld
|
|
)
|
|
AS
|
|
SELECT m.mld_melding_key,
|
|
mg.meldingnummer,
|
|
prs_perslid_naam_full,
|
|
subproductgroep,
|
|
mld_melding_omschrijving,
|
|
status,
|
|
DECODE (mld_melding_status,
|
|
1, 'Gesloten',
|
|
5, 'Gesloten',
|
|
6, 'Gesloten',
|
|
'Open') opengesloten,
|
|
mld_melding_datum,
|
|
mld.getmeldingstatusdate (m.mld_melding_key, 5) afgemeld
|
|
FROM (SELECT p.prs_perslid_key, prs_perslid_naam_full
|
|
FROM prs_perslid p,
|
|
prs_v_perslid_fullnames_all pf,
|
|
fac_usrtab t,
|
|
fac_usrdata d
|
|
WHERE p.prs_perslid_key = pf.prs_perslid_key
|
|
AND p.prs_perslid_nr = d.fac_usrdata_code
|
|
AND t.fac_usrtab_key = d.fac_usrtab_key
|
|
AND t.fac_usrtab_naam = 'BestuurOnderst'
|
|
UNION ALL
|
|
SELECT p.prs_perslid_key, prs_perslid_naam_full
|
|
FROM prs_perslid p, prs_v_perslid_fullnames_all pf
|
|
WHERE p.prs_perslid_key = pf.prs_perslid_key
|
|
AND prs_afdeling_key IN (127, 128)) p, -- GS en PS
|
|
mld_v_qvw_algemeen mg,
|
|
mld_melding m
|
|
WHERE m.prs_perslid_key_voor = p.prs_perslid_key
|
|
AND m.mld_melding_key = mg.mld_melding_key;
|
|
|
|
CREATE OR REPLACE VIEW pnbr_v_rap_melding_bestuur
|
|
(
|
|
fclt_d_datum,
|
|
melding,
|
|
voor,
|
|
soortmelding,
|
|
omschrijving,
|
|
fclt_f_status,
|
|
fclt_f_opengesloten,
|
|
ingediend,
|
|
afgemeld
|
|
)
|
|
AS
|
|
SELECT TO_CHAR (mld_melding_datum, 'dd-mm-yyyy'),
|
|
meldingnummer,
|
|
prs_perslid_naam_full,
|
|
mld_stdmelding_omschrijving,
|
|
mld_melding_omschrijving,
|
|
mld_melding_status,
|
|
opengesloten,
|
|
mld_melding_datum,
|
|
mld_melding_afgemeld
|
|
FROM pnbr_v_melding_bestuur;
|
|
|
|
CREATE OR REPLACE VIEW pnbr_v_noti_melding_bestuur
|
|
(
|
|
sender,
|
|
receiver,
|
|
text,
|
|
code,
|
|
key,
|
|
xkey
|
|
)
|
|
AS
|
|
SELECT NULL sender,
|
|
4426 receiver, -- Dominique Verwiel (dverwiel@brabant.nl)
|
|
'Nieuwe melding '
|
|
|| meldingnummer
|
|
|| ' ingevoerd voor/door: '
|
|
|| prs_perslid_naam_full text,
|
|
'MLDNEW' code,
|
|
mld_melding_key key,
|
|
NULL xkey
|
|
FROM pnbr_v_melding_bestuur
|
|
WHERE mld_melding_datum >
|
|
(SELECT fac_notificatie_job_nextrun
|
|
- fac_notificatie_job_interval / 24
|
|
FROM fac_notificatie_job
|
|
WHERE fac_notificatie_job_view =
|
|
'PNBR_V_NOTI_MELDING_BESTUUR')
|
|
AND mld_melding_datum <
|
|
(SELECT fac_notificatie_job_nextrun
|
|
FROM fac_notificatie_job
|
|
WHERE fac_notificatie_job_view =
|
|
'PNBR_V_NOTI_MELDING_BESTUUR');
|
|
|
|
CREATE OR REPLACE VIEW pnbr_v_rap_notificatie
|
|
(
|
|
fclt_f_module,
|
|
code,
|
|
omschrijving,
|
|
fclt_f_status,
|
|
fclt_f_mail,
|
|
fclt_f_sms,
|
|
fclt_f_alert
|
|
)
|
|
AS
|
|
SELECT SUBSTR (fac_srtnotificatie_code, 1, 3)
|
|
module,
|
|
fac_srtnotificatie_code,
|
|
lcl.x ('fac_srtnotificatie_oms',
|
|
fac_srtnotificatie_key,
|
|
fac_srtnotificatie_oms),
|
|
DECODE (BITAND (fac_srtnotificatie_mode, 1), 0, '', 'status')
|
|
status,
|
|
DECODE (BITAND (fac_srtnotificatie_mode, 2), 0, '', 'mail')
|
|
mail,
|
|
DECODE (BITAND (fac_srtnotificatie_mode, 4), 0, '', 'sms')
|
|
sms,
|
|
DECODE (BITAND (fac_srtnotificatie_mode, 8), 0, '', 'alert')
|
|
alert
|
|
FROM fac_srtnotificatie;
|
|
|
|
CREATE OR REPLACE VIEW PNBR_V_RAP_VOORRAAD
|
|
(
|
|
HIDE_F_EXTERN_DISKEY,
|
|
HIDE_F_SRTGROEP_OMSCHRIJVING,
|
|
FCLT_F_CATALOGUS,
|
|
ARTIKEL_NR,
|
|
ARTIKEL_OMSCHRIJVING,
|
|
ARTIKEL_PRIJS,
|
|
MAGAZIJN,
|
|
MIN_VOORRAAD,
|
|
MAX_VOORRAAD,
|
|
INKOOP_GELEVERD,
|
|
INTERN_BESTELD,
|
|
VOORRAAD,
|
|
INKOOP_BESTELD,
|
|
INKOOP_LEVERDATUM,
|
|
INKOOP_GEWENST
|
|
)
|
|
AS
|
|
SELECT extern.dkey,
|
|
COALESCE (intern.bes_srtgroep_omschrijving,
|
|
extern.bes_srtgroep_omschrijving),
|
|
COALESCE (intern.ins_discipline_omschrijving,
|
|
extern.ins_discipline_omschrijving),
|
|
extern.bes_srtdeel_nr,
|
|
COALESCE (intern.bes_srtdeel_omschrijving,
|
|
extern.bes_srtdeel_omschrijving),
|
|
COALESCE (intern.srtdeel_prijs, extern.srtdeel_prijs),
|
|
intern.magazijn,
|
|
extern.vmin,
|
|
extern.vmax,
|
|
extern.geleverd,
|
|
intern.besteld,
|
|
extern.geleverd - COALESCE (intern.besteld, 0)
|
|
voorraad,
|
|
extern.besteld,
|
|
TO_CHAR (extern.leverdatum, 'dd-mm-yyyy'),
|
|
CASE
|
|
WHEN ( ( COALESCE (extern.besteld, 0)
|
|
+ COALESCE (extern.geleverd, 0))
|
|
- COALESCE (intern.besteld, 0)) <
|
|
extern.vmin
|
|
THEN
|
|
extern.vmax
|
|
- ( ( COALESCE (extern.besteld, 0)
|
|
+ COALESCE (extern.geleverd, 0))
|
|
- COALESCE (intern.besteld, 0))
|
|
ELSE
|
|
NULL
|
|
END
|
|
extern_gewenst
|
|
FROM (SELECT bd.ins_discipline_key
|
|
dkey, -- INKOOP-key
|
|
g.bes_srtgroep_omschrijving,
|
|
sd.bes_srtdeel_nr, -- ext. artikelnr
|
|
sd.bes_srtdeel_omschrijving,
|
|
bes.getsrtdeelprijs (sd.bes_srtdeel_key, NULL)
|
|
srtdeel_prijs,
|
|
bd.ins_discipline_omschrijving, -- ext. catalogusnaam
|
|
sd.bes_srtdeel_voorraadmin
|
|
vmin, -- ext. voorraadmin
|
|
sd.bes_srtdeel_voorraadmax
|
|
vmax, -- ext. voorraadmax
|
|
(SELECT SUM (
|
|
COALESCE (boi.bes_bestelopdr_item_aantal,
|
|
bi.bes_bestelling_item_aantal)
|
|
- COALESCE (
|
|
boi.bes_bestelopdr_item_aantalontv,
|
|
0))
|
|
FROM bes_bestelling b,
|
|
bes_bestelling_item bi,
|
|
bes_bestelopdr_item boi
|
|
WHERE boi.bes_bestelopdr_item_key(+) =
|
|
bi.bes_bestelopdr_item_key
|
|
AND bi.bes_bestelling_item_status IN (2,
|
|
3,
|
|
4,
|
|
5)
|
|
AND b.bes_bestelling_key = bi.bes_bestelling_key
|
|
AND bi.bes_srtdeel_key = sd.bes_srtdeel_key)
|
|
besteld,
|
|
(SELECT MIN (b.bes_bestelling_leverdatum)
|
|
FROM bes_bestelling b,
|
|
bes_bestelling_item bi,
|
|
bes_bestelopdr_item boi
|
|
WHERE boi.bes_bestelopdr_item_key(+) =
|
|
bi.bes_bestelopdr_item_key
|
|
AND bi.bes_bestelling_item_status IN (2,
|
|
3,
|
|
4,
|
|
5)
|
|
AND COALESCE (bes_bestelopdr_item_aantal,
|
|
bi.bes_bestelling_item_aantal) <>
|
|
COALESCE (bes_bestelopdr_item_aantalontv, 0)
|
|
AND b.bes_bestelling_key = bi.bes_bestelling_key
|
|
AND bi.bes_srtdeel_key = sd.bes_srtdeel_key)
|
|
leverdatum,
|
|
(SELECT SUM (boi.bes_bestelopdr_item_aantalontv)
|
|
FROM bes_bestelling b,
|
|
bes_bestelling_item bi,
|
|
bes_bestelopdr_item boi
|
|
WHERE -- boi.bes_bestelopdr_item_status in (6,7) AND
|
|
b.bes_bestelling_key = bi.bes_bestelling_key
|
|
AND boi.bes_bestelopdr_item_key =
|
|
bi.bes_bestelopdr_item_key
|
|
AND bi.bes_srtdeel_key = sd.bes_srtdeel_key)
|
|
geleverd
|
|
FROM bes_srtdeel sd,
|
|
bes_srtgroep g,
|
|
bes_discipline bd,
|
|
bes_disc_params dp
|
|
WHERE sd.bes_srtdeel_verwijder IS NULL
|
|
AND sd.bes_srtgroep_key = g.bes_srtgroep_key
|
|
AND g.ins_discipline_key = bd.ins_discipline_key
|
|
AND bd.ins_discipline_key = dp.bes_ins_discipline_key
|
|
AND dp.bes_ins_discipline_key_inkoop IS NULL
|
|
AND bd.ins_discipline_key IN
|
|
(SELECT bes_ins_discipline_key_inkoop
|
|
FROM bes_disc_params
|
|
WHERE bes_ins_discipline_key_inkoop IS NOT NULL))
|
|
extern -- Inkoop artikelen uit externe catalogus!
|
|
FULL JOIN
|
|
(SELECT dp.bes_ins_discipline_key_inkoop
|
|
dkey, -- INKOOP-key
|
|
g.bes_srtgroep_omschrijving,
|
|
sd.bes_srtdeel_nr, -- int. artikelnr
|
|
sd.bes_srtdeel_omschrijving,
|
|
sd.bes_srtdeel_notitie
|
|
magazijn,
|
|
bes.getsrtdeelprijs (sd.bes_srtdeel_key, NULL)
|
|
srtdeel_prijs,
|
|
bd.ins_discipline_omschrijving, -- int. catalogusnaam
|
|
(SELECT SUM (
|
|
COALESCE (boi.bes_bestelopdr_item_aantal,
|
|
bi.bes_bestelling_item_aantal))
|
|
FROM bes_bestelling b,
|
|
bes_bestelling_item bi,
|
|
bes_bestelopdr_item boi
|
|
WHERE boi.bes_bestelopdr_item_key(+) =
|
|
bi.bes_bestelopdr_item_key
|
|
AND b.bes_bestelling_key = bi.bes_bestelling_key
|
|
AND bi.bes_srtdeel_key = sd.bes_srtdeel_key)
|
|
besteld
|
|
FROM bes_srtdeel sd,
|
|
bes_srtgroep g,
|
|
bes_discipline bd,
|
|
bes_disc_params dp
|
|
WHERE sd.bes_srtdeel_verwijder IS NULL
|
|
AND sd.bes_srtgroep_key = g.bes_srtgroep_key
|
|
AND g.ins_discipline_key = bd.ins_discipline_key
|
|
AND bd.ins_discipline_key = dp.bes_ins_discipline_key
|
|
AND dp.bes_ins_discipline_key_inkoop IS NOT NULL) intern -- Verkoop artikelen uit interne catalogus!
|
|
ON extern.dkey = intern.dkey
|
|
AND extern.bes_srtdeel_nr = intern.bes_srtdeel_nr;
|
|
|
|
CREATE OR REPLACE VIEW pnbr_v_rap_bestellingen
|
|
(
|
|
bestelnummer,
|
|
fclt_d_bes_bestelling_datum,
|
|
fclt_f_aanvrager,
|
|
fclt_f_afdeling,
|
|
fclt_f_kostenplaats,
|
|
fclt_f_catalogus,
|
|
fclt_f_groep,
|
|
aantal,
|
|
fclt_f_omschrijving,
|
|
stuksprijs,
|
|
totaalprijs
|
|
)
|
|
AS
|
|
SELECT b.bes_bestelling_key,
|
|
TO_CHAR (b.bes_bestelling_datum, 'dd-mm-yyyy'),
|
|
pf.prs_perslid_naam_full,
|
|
a.prs_afdeling_naam || '-' || a.prs_afdeling_omschrijving,
|
|
k.prs_kostenplaats_nr || '-' || k.prs_kostenplaats_omschrijving,
|
|
d.ins_discipline_omschrijving,
|
|
sg.bes_srtgroep_omschrijving,
|
|
bes_bestelling_item_aantal,
|
|
sd.bes_srtdeel_omschrijving,
|
|
COALESCE (bi.bes_bestelling_item_prijs,
|
|
bes.getsrtdeelprijs (sd.bes_srtdeel_key, SYSDATE)),
|
|
ROUND (
|
|
COALESCE (bi.bes_bestelling_item_prijs,
|
|
bes.getsrtdeelprijs (sd.bes_srtdeel_key, SYSDATE))
|
|
* bes_bestelling_item_aantal,
|
|
2)
|
|
FROM bes_bestelling b,
|
|
bes_bestelling_item bi,
|
|
bes_srtdeel sd,
|
|
bes_srtgroep sg,
|
|
bes_discipline d,
|
|
prs_v_perslid_fullnames_all pf,
|
|
prs_perslid p,
|
|
prs_afdeling a,
|
|
prs_kostenplaats k
|
|
WHERE b.bes_bestelling_key = bi.bes_bestelling_key
|
|
AND bi.bes_srtdeel_key = sd.bes_srtdeel_key
|
|
AND sd.bes_srtgroep_key = sg.bes_srtgroep_key
|
|
AND sg.ins_discipline_key = d.ins_discipline_key
|
|
AND b.prs_perslid_key = pf.prs_perslid_key
|
|
AND b.prs_perslid_key = p.prs_perslid_key
|
|
AND p.prs_afdeling_key = a.prs_afdeling_key
|
|
AND a.prs_kostenplaats_key = k.prs_kostenplaats_key(+);
|
|
|
|
--
|
|
-- Sync view
|
|
--
|
|
|
|
CREATE OR REPLACE VIEW pnbr_v_sync_alg_ruimte
|
|
(
|
|
alg_ruimte_key,
|
|
alg_verdieping_key,
|
|
cadlabel
|
|
)
|
|
AS
|
|
SELECT r.alg_ruimte_key,
|
|
r.alg_verdieping_key,
|
|
DECODE (LENGTH (alg_verdieping_code),
|
|
1, '0' || alg_verdieping_code,
|
|
alg_verdieping_code)
|
|
|| '.'
|
|
|| DECODE (LENGTH (alg_ruimte_nr),
|
|
1, '00' || alg_ruimte_nr,
|
|
2, '0' || alg_ruimte_nr,
|
|
alg_ruimte_nr)
|
|
FROM alg_v_aanwezigruimte r, alg_verdieping v
|
|
WHERE r.alg_verdieping_key = v.alg_verdieping_key;
|
|
|
|
-- tijdelijk vervangen door:
|
|
|
|
CREATE OR REPLACE VIEW pnbr_v_sync_alg_ruimte
|
|
(
|
|
alg_ruimte_key,
|
|
alg_verdieping_key,
|
|
cadlabel
|
|
)
|
|
AS
|
|
SELECT r.alg_ruimte_key,
|
|
r.alg_verdieping_key,
|
|
DECODE (fac.safe_to_number (alg_ruimte_nr),
|
|
NULL, alg_ruimte_nr,
|
|
TO_CHAR (TO_NUMBER (alg_ruimte_nr)))
|
|
FROM alg_v_aanwezigruimte r, alg_verdieping v
|
|
WHERE r.alg_verdieping_key = v.alg_verdieping_key;
|
|
|
|
CREATE OR REPLACE VIEW pnbr_v_rap_dagstaat
|
|
(
|
|
res_rsv_ruimte_key,
|
|
res_rsv_ruimte_omschrijving,
|
|
res_rsv_ruimte_van,
|
|
res_rsv_ruimte_tot,
|
|
res_rsv_ruimte_bezoekers,
|
|
res_ruimte_key,
|
|
res_ruimte_nr
|
|
)
|
|
AS
|
|
SELECT r.res_rsv_ruimte_key,
|
|
res_rsv_ruimte_omschrijving,
|
|
TO_CHAR (r.res_rsv_ruimte_van, 'yyyy-mm-dd')
|
|
|| 'T'
|
|
|| TO_CHAR (r.res_rsv_ruimte_van, 'hh24:mi:ss'),
|
|
TO_CHAR (r.res_rsv_ruimte_tot, 'yyyy-mm-dd')
|
|
|| 'T'
|
|
|| TO_CHAR (r.res_rsv_ruimte_tot, 'hh24:mi:ss'),
|
|
COALESCE (res_rsv_ruimte_bezoekers, 0),
|
|
rr.res_ruimte_key,
|
|
DECODE (
|
|
INSTR (res_ruimte_nr, '('),
|
|
0, res_ruimte_nr,
|
|
SUBSTR (
|
|
res_ruimte_nr,
|
|
INSTR (res_ruimte_nr, '(') + 1,
|
|
INSTR (res_ruimte_nr, ')')
|
|
- INSTR (res_ruimte_nr, '(')
|
|
- 1))
|
|
FROM res_rsv_ruimte r,
|
|
res_ruimte_opstelling rro,
|
|
res_ruimte rr,
|
|
(SELECT rrr.res_rsv_ruimte_key,
|
|
(SELECT w.res_kenmerkreservering_waarde
|
|
FROM res_kenmerkwaarde w, res_kenmerk k
|
|
WHERE w.res_kenmerk_key = k.res_kenmerk_key
|
|
AND w.res_kenmerk_key = k.res_kenmerk_key
|
|
AND rrr.res_rsv_ruimte_key = w.res_rsv_ruimte_key
|
|
AND k.res_srtkenmerk_key = 1 -- zichtbaar op planbord
|
|
AND k.res_activiteit_key = rrr.res_activiteit_key) res_kenmerkreservering_waarde
|
|
FROM res_rsv_ruimte rrr) ds
|
|
WHERE r.res_rsv_ruimte_verwijder IS NULL
|
|
AND r.res_status_fo_key = 2
|
|
AND r.res_rsv_ruimte_key = ds.res_rsv_ruimte_key
|
|
AND r.res_ruimte_opstel_key = rro.res_ruimte_opstel_key
|
|
AND rro.res_ruimte_key = rr.res_ruimte_key
|
|
AND ( fac.safe_to_number (ds.res_kenmerkreservering_waarde) = 2
|
|
OR r.res_rsv_ruimte_contact_key = 30064) -- SmartSigns user
|
|
AND TRUNC (res_rsv_ruimte_van) = TRUNC (SYSDATE);
|
|
|
|
CREATE OR REPLACE VIEW PNBR_V_RAP_DAGSTAAT_BRON
|
|
(
|
|
FCLT_D_DATUM,
|
|
DAGVWEEK,
|
|
MAAND,
|
|
DAG,
|
|
JAAR,
|
|
NUMMER,
|
|
TIJDSORT,
|
|
RUIMTE_VAN,
|
|
RUIMTE_TOT,
|
|
BEZOEKERS,
|
|
ACTIVITEIT,
|
|
OMSCHRIJVING,
|
|
OPMERKING,
|
|
RUIMTE,
|
|
VERDIEPING,
|
|
LOCATIE,
|
|
MELDER,
|
|
TELEFOON,
|
|
KOSTENPLAATS,
|
|
BEGRPOST,
|
|
BESTELNR,
|
|
OPSTELLING,
|
|
AANTALCATERING,
|
|
V_VAN,
|
|
V_TOT,
|
|
V_OMSCHRIJVING,
|
|
V_AANTAL,
|
|
V_PRIJS,
|
|
V_TOTAAL,
|
|
GS,
|
|
CDK,
|
|
RES_RSV_RUIMTE_KEY,
|
|
RES_DISCIPLINE_KEY,
|
|
RES_BESNR_CATERAAR,
|
|
PROJECTMGR_EVENEMENT,
|
|
LM_MUT,
|
|
LM_DEL
|
|
)
|
|
AS
|
|
SELECT TO_CHAR (res_rsv_ruimte_van, 'dd-mm-yyyy')
|
|
datum,
|
|
DECODE (TO_CHAR (res_rsv_ruimte_van, 'd'),
|
|
1, 'zondag',
|
|
2, 'maandag',
|
|
3, 'dinsdag',
|
|
4, 'woensdag',
|
|
5, 'donderdag',
|
|
6, 'vrijdag',
|
|
7, 'zaterdag')
|
|
dagvweek,
|
|
DECODE (TO_CHAR (res_rsv_ruimte_van, 'mm'),
|
|
1, 'januari',
|
|
2, 'februari',
|
|
3, 'maart',
|
|
4, 'april',
|
|
5, 'mei',
|
|
6, 'juni',
|
|
7, 'juli',
|
|
8, 'augustus',
|
|
9, 'september',
|
|
10, 'oktober',
|
|
11, 'november',
|
|
12, 'december')
|
|
maand,
|
|
TO_CHAR (res_rsv_ruimte_van, 'dd')
|
|
dag,
|
|
TO_CHAR (res_rsv_ruimte_van, 'yyyy')
|
|
jaar,
|
|
res_reservering_key || '/' || res_rsv_ruimte_volgnr
|
|
nummer,
|
|
TO_CHAR (res_rsv_ruimte_van, 'yyyymmddhh24mi')
|
|
tijdsort,
|
|
TO_CHAR (res_rsv_ruimte_van, 'hh24:mi')
|
|
ruimte_van,
|
|
TO_CHAR (res_rsv_ruimte_tot, 'hh24:mi')
|
|
ruimte_tot,
|
|
res_rsv_ruimte_bezoekers
|
|
bezoekers,
|
|
res_activiteit_omschrijving,
|
|
DECODE (
|
|
rrr.res_activiteit_key,
|
|
150, 'GEBAK '
|
|
|| (SELECT ud.fac_usrdata_omschr
|
|
FROM res_kenmerkwaarde rk, fac_usrdata ud
|
|
WHERE rk.res_kenmerk_key = 262
|
|
AND ud.fac_usrtab_key = 1943 -- kenmerk + usertab zakelijk/prive
|
|
AND ud.fac_usrdata_key =
|
|
fac.safe_to_number (
|
|
rk.res_kenmerkreservering_waarde)
|
|
AND rk.res_rsv_ruimte_key =
|
|
rrr.res_rsv_ruimte_key),
|
|
UPPER (res_rsv_ruimte_omschrijving)),
|
|
res_rsv_ruimte_opmerking
|
|
opmerking,
|
|
COALESCE (
|
|
(SELECT res_ruimte_nr
|
|
FROM res_v_ruimte_opstel_gegevens rog
|
|
WHERE rog.res_ruimte_opstel_key = rrr.res_ruimte_opstel_key),
|
|
(SELECT MAX (alg_ruimte_aanduiding)
|
|
FROM alg_v_ruimte_gegevens rg
|
|
WHERE rrr.alg_ruimte_key = rg.alg_ruimte_key))
|
|
ruimte,
|
|
vg.alg_verdieping_omschrijving
|
|
verdieping,
|
|
vg.alg_locatie_omschrijving
|
|
locatie,
|
|
prs_perslid_naam_full
|
|
melder,
|
|
COALESCE (prs_perslid_telefoonnr, prs_perslid_mobiel)
|
|
telefoon,
|
|
k.prs_kostenplaats_nr
|
|
kostenplaats,
|
|
COALESCE (bp_extra.waarde, bp.waarde)
|
|
begrpost,
|
|
bnk.waarde
|
|
bestelnr,
|
|
(SELECT rog.res_opstelling_omschrijving
|
|
FROM res_v_ruimte_opstel_gegevens rog
|
|
WHERE rog.res_ruimte_opstel_key = rrr.res_ruimte_opstel_key)
|
|
opstelling,
|
|
(SELECT COUNT (*)
|
|
FROM res_rsv_artikel rra
|
|
WHERE rra.res_rsv_ruimte_key = rrr.res_rsv_ruimte_key)
|
|
aantalcatering,
|
|
TO_CHAR (v.van, 'hh24:mi')
|
|
v_van,
|
|
v.tot
|
|
v_tot,
|
|
v.omschrijving
|
|
v_omschrijving,
|
|
v.aantal
|
|
v_aantal,
|
|
v.prijs
|
|
v_prijs,
|
|
COALESCE (v.aantal, 0) * v.prijs
|
|
v_totaal,
|
|
COALESCE (gs.waarde, '0')
|
|
gs,
|
|
COALESCE (cdk.waarde, '0')
|
|
cdk,
|
|
rrr.res_rsv_ruimte_key,
|
|
v.res_discipline_key,
|
|
kn_bes_cateraar.waarde,
|
|
projmngr_evenement.prs_perslid_naam_friendly,
|
|
v.lm_mut,
|
|
v.lm_del
|
|
FROM res_rsv_ruimte rrr,
|
|
(SELECT res_rsv_ruimte_key,
|
|
res_rsv_artikel_aantal aantal,
|
|
res_artikel_prijs prijs,
|
|
res_rsv_artikel_levering van,
|
|
NULL tot,
|
|
ra.res_artikel_omschrijving omschrijving,
|
|
ra.res_discipline_key,
|
|
CASE
|
|
WHEN ( rra.res_rsv_artikel_aanmaak >=
|
|
referentie.ref_datum
|
|
OR rra.res_rsv_artikel_mutatie >=
|
|
referentie.ref_datum)
|
|
THEN
|
|
'Ja'
|
|
ELSE
|
|
'Nee'
|
|
END LM_MUT,
|
|
CASE
|
|
WHEN rra.res_rsv_artikel_verwijder >=
|
|
referentie.ref_datum
|
|
THEN
|
|
'Ja'
|
|
ELSE
|
|
'Nee'
|
|
END LM_DEL
|
|
FROM res_rsv_artikel rra,
|
|
res_artikel ra,
|
|
(SELECT fac.safe_to_date (
|
|
( TO_CHAR (SYSDATE - 1, 'dd-mm-yyyy')
|
|
|| ' 16:00'), -- om te bekijken welke wijzigingen in de catering zijn doorgevoerd na 16 uur
|
|
'dd-mm-yyyy HH24:mi') AS ref_datum
|
|
FROM DUAL) referentie
|
|
WHERE rra.res_rsv_artikel_verwijder IS NULL
|
|
AND rra.res_artikel_key = ra.res_artikel_key
|
|
UNION ALL
|
|
SELECT res_rsv_ruimte_key,
|
|
1 aantal,
|
|
NULL,
|
|
res_rsv_deel_van van,
|
|
res_rsv_deel_tot tot,
|
|
ins_deel_omschrijving omschrijving,
|
|
rd.res_discipline_key,
|
|
'' lm_mut, -- dit beoordelen we alleen voor verbuiksartikelen
|
|
'' lm_del
|
|
FROM res_rsv_deel rrd,
|
|
res_deel rd,
|
|
ins_deel d,
|
|
ins_srtdeel sd
|
|
WHERE rrd.res_rsv_deel_verwijder IS NULL
|
|
AND rrd.res_deel_key = rd.res_deel_key
|
|
AND rd.res_ins_deel_key = d.ins_deel_key
|
|
AND d.ins_srtdeel_key = sd.ins_srtdeel_key) v,
|
|
(SELECT res_rsv_ruimte_key, fac_usrdata_code waarde
|
|
FROM res_kenmerkwaarde kw, fac_usrdata ud, res_kenmerk rk
|
|
WHERE rk.res_srtkenmerk_key = 21
|
|
AND kw.res_kenmerk_key = rk.res_kenmerk_key
|
|
AND fac.safe_to_number (res_kenmerkreservering_waarde) =
|
|
fac_usrdata_key) bp,
|
|
(SELECT res_rsv_ruimte_key, res_kenmerkreservering_waarde waarde
|
|
FROM res_kenmerkwaarde kw, res_kenmerk rk
|
|
WHERE rk.res_srtkenmerk_key = 61
|
|
AND kw.res_kenmerk_key = rk.res_kenmerk_key) bp_extra,
|
|
(SELECT res_rsv_ruimte_key, fac_usrdata_code waarde
|
|
FROM res_kenmerkwaarde kw, fac_usrdata ud, res_kenmerk rk
|
|
WHERE rk.res_srtkenmerk_key = 2
|
|
AND kw.res_kenmerk_key = rk.res_kenmerk_key
|
|
AND fac.safe_to_number (res_kenmerkreservering_waarde) =
|
|
fac_usrdata_key) gs,
|
|
(SELECT res_rsv_ruimte_key, fac_usrdata_code waarde
|
|
FROM res_kenmerkwaarde kw, fac_usrdata ud, res_kenmerk rk
|
|
WHERE rk.res_srtkenmerk_key = 22
|
|
AND kw.res_kenmerk_key = rk.res_kenmerk_key
|
|
AND fac.safe_to_number (res_kenmerkreservering_waarde) =
|
|
fac_usrdata_key) cdk,
|
|
(SELECT res_rsv_ruimte_key, res_kenmerkreservering_waarde waarde
|
|
FROM res_kenmerkwaarde kw, res_kenmerk rk
|
|
WHERE rk.res_srtkenmerk_key = 281
|
|
AND kw.res_kenmerk_key = rk.res_kenmerk_key) bnk,
|
|
(SELECT fac_usrdata_omschr waarde, kw.res_rsv_ruimte_key
|
|
FROM res_kenmerkwaarde kw, fac_usrdata ud, res_kenmerk rk
|
|
WHERE rk.res_srtkenmerk_key = 441
|
|
AND kw.res_kenmerk_key = rk.res_kenmerk_key
|
|
AND fac.safe_to_number (res_kenmerkreservering_waarde) =
|
|
fac_usrdata_key) kn_bes_cateraar,
|
|
(SELECT rrr2.res_rsv_ruimte_key,
|
|
rg.alg_verdieping_omschrijving,
|
|
rg.alg_locatie_omschrijving
|
|
FROM alg_v_ruimte_gegevens rg, res_rsv_ruimte rrr2
|
|
WHERE rg.alg_ruimte_key =
|
|
COALESCE (
|
|
rrr2.alg_ruimte_key,
|
|
(SELECT MIN (rar.alg_ruimte_key)
|
|
FROM res_v_rsv_ruimte_2_alg_ruimte rar
|
|
WHERE rar.res_rsv_ruimte_key =
|
|
rrr2.res_rsv_ruimte_key))) vg,
|
|
(SELECT res_rsv_ruimte_key, p.prs_perslid_naam_friendly
|
|
FROM res_kenmerk k,
|
|
res_srtkenmerk sk,
|
|
res_kenmerkwaarde kw,
|
|
prs_v_perslid_fullnames_all p
|
|
WHERE k.res_srtkenmerk_key = sk.res_srtkenmerk_key
|
|
AND kw.res_kenmerk_key = k.res_kenmerk_key
|
|
AND fac.safe_to_number (kw.res_kenmerkreservering_waarde) =
|
|
p.prs_perslid_key
|
|
AND sk.res_srtkenmerk_key = 521) projmngr_evenement,
|
|
prs_perslid p,
|
|
prs_v_perslid_fullnames pf,
|
|
prs_kostenplaats k,
|
|
res_activiteit a
|
|
WHERE rrr.res_rsv_ruimte_key = v.res_rsv_ruimte_key(+)
|
|
AND rrr.res_rsv_ruimte_verwijder IS NULL
|
|
AND rrr.res_activiteit_key = a.res_activiteit_key
|
|
AND rrr.res_rsv_ruimte_contact_key = p.prs_perslid_key
|
|
AND p.prs_perslid_key = pf.prs_perslid_key
|
|
AND rrr.prs_kostenplaats_key = k.prs_kostenplaats_key(+)
|
|
AND rrr.res_rsv_ruimte_key = vg.res_rsv_ruimte_key
|
|
AND rrr.res_rsv_ruimte_key = bp.res_rsv_ruimte_key(+)
|
|
AND rrr.res_rsv_ruimte_key = bp_extra.res_rsv_ruimte_key(+)
|
|
AND rrr.res_rsv_ruimte_key = gs.res_rsv_ruimte_key(+)
|
|
AND rrr.res_rsv_ruimte_key = cdk.res_rsv_ruimte_key(+)
|
|
AND rrr.res_rsv_ruimte_key = bnk.res_rsv_ruimte_key(+)
|
|
AND rrr.res_rsv_ruimte_key =
|
|
projmngr_evenement.res_rsv_ruimte_key(+)
|
|
AND rrr.res_rsv_ruimte_key = kn_bes_cateraar.res_rsv_ruimte_key(+);
|
|
|
|
CREATE OR REPLACE VIEW pnbr_v_rap_dagstaat_cat
|
|
(
|
|
fclt_f_datum,
|
|
dag,
|
|
dagvweek,
|
|
maand,
|
|
jaar,
|
|
nummer,
|
|
tijdsort,
|
|
ruimte_van,
|
|
ruimte_tot,
|
|
bezoekers,
|
|
activiteit,
|
|
omschrijving,
|
|
opmerking,
|
|
ruimte,
|
|
verdieping,
|
|
fclt_f_locatie,
|
|
melder,
|
|
telefoon,
|
|
kostenplaats,
|
|
begrpost,
|
|
bestelnr,
|
|
opstelling,
|
|
aantalcatering,
|
|
v_van,
|
|
v_tot,
|
|
v_omschrijving,
|
|
v_aantal,
|
|
v_prijs,
|
|
v_totaal,
|
|
gs,
|
|
cdk,
|
|
res_besnr_cateraar,
|
|
lm_mut,
|
|
lm_del
|
|
)
|
|
AS
|
|
SELECT TO_CHAR (TO_DATE (fclt_d_datum, 'dd-mm-yyyy'), 'yyyy-mm-dd')
|
|
|| ' ('
|
|
|| dagvweek
|
|
|| ')',
|
|
dag,
|
|
dagvweek,
|
|
maand,
|
|
jaar,
|
|
nummer,
|
|
tijdsort,
|
|
ruimte_van,
|
|
ruimte_tot,
|
|
bezoekers,
|
|
activiteit,
|
|
omschrijving,
|
|
opmerking,
|
|
ruimte,
|
|
verdieping,
|
|
locatie,
|
|
melder,
|
|
telefoon,
|
|
kostenplaats,
|
|
begrpost,
|
|
bestelnr,
|
|
opstelling,
|
|
aantalcatering,
|
|
v_van,
|
|
v_tot,
|
|
v_omschrijving,
|
|
v_aantal,
|
|
v_prijs,
|
|
v_totaal,
|
|
gs,
|
|
cdk,
|
|
res_besnr_cateraar,
|
|
LM_MUT,
|
|
LM_DEL
|
|
FROM pnbr_v_rap_dagstaat_bron
|
|
WHERE TO_DATE (fclt_d_datum, 'dd-mm-yyyy') BETWEEN TRUNC (SYSDATE - 5)
|
|
AND TRUNC (SYSDATE + 10);
|
|
|
|
CREATE OR REPLACE VIEW pnbr_v_rap_dagstaat_even
|
|
(
|
|
fclt_d_datum,
|
|
dag,
|
|
dagvweek,
|
|
maand,
|
|
jaar,
|
|
nummer,
|
|
tijdsort,
|
|
ruimte_van,
|
|
ruimte_tot,
|
|
bezoekers,
|
|
activiteit,
|
|
omschrijving,
|
|
opmerking,
|
|
ruimte,
|
|
verdieping,
|
|
melder,
|
|
telefoon,
|
|
kostenplaats,
|
|
begrpost,
|
|
bestelnr,
|
|
opstelling,
|
|
v_van,
|
|
v_tot,
|
|
v_omschrijving,
|
|
v_aantal,
|
|
v_prijs,
|
|
v_totaal,
|
|
gs,
|
|
cdk,
|
|
res_besnr_cateraar,
|
|
projectmgr_evenement
|
|
)
|
|
AS
|
|
SELECT fclt_d_datum,
|
|
dag,
|
|
dagvweek,
|
|
maand,
|
|
jaar,
|
|
nummer,
|
|
tijdsort,
|
|
ruimte_van,
|
|
ruimte_tot,
|
|
bezoekers,
|
|
activiteit,
|
|
omschrijving,
|
|
opmerking,
|
|
ruimte,
|
|
verdieping,
|
|
melder,
|
|
telefoon,
|
|
kostenplaats,
|
|
begrpost,
|
|
bestelnr,
|
|
opstelling,
|
|
v_van,
|
|
v_tot,
|
|
v_omschrijving,
|
|
v_aantal,
|
|
v_prijs,
|
|
v_totaal,
|
|
gs,
|
|
cdk,
|
|
res_besnr_cateraar,
|
|
projectmgr_evenement
|
|
FROM pnbr_v_rap_dagstaat_bron b
|
|
WHERE activiteit = 'Evenement'
|
|
OR EXISTS -- of reserveringen met catering die de klant niet zelf mag bestellen
|
|
(SELECT res_rsv_ruimte_key
|
|
FROM pnbr_v_rap_dagstaat_bron b2, ins_tab_discipline d
|
|
WHERE b2.res_discipline_key IS NOT NULL
|
|
AND d.ins_discipline_min_level = 2
|
|
AND b2.res_discipline_key = d.ins_discipline_key
|
|
AND b.res_rsv_ruimte_key = b2.res_rsv_ruimte_key);
|
|
|
|
-- Rapport om status van reserveringen op te laten halen door SmartSigns.
|
|
|
|
CREATE OR REPLACE VIEW pnbr_v_api_reserveringen
|
|
(
|
|
van,
|
|
tot,
|
|
key,
|
|
resid,
|
|
locatiecode,
|
|
gebouwcode,
|
|
fclt_3d_gebouw_key,
|
|
verdiepingcode,
|
|
ruimtecode,
|
|
ruimtenaam,
|
|
rvck_vnr,
|
|
voorziening,
|
|
aantal,
|
|
prijs,
|
|
btw,
|
|
act_oms,
|
|
srtact_oms,
|
|
bezoekers,
|
|
fo_status_key,
|
|
fo_status,
|
|
bo_status_key,
|
|
bo_status,
|
|
contact,
|
|
HOST,
|
|
kostenplaats,
|
|
resruimtekey,
|
|
algruimtekey,
|
|
algruimtenr,
|
|
omschrijving,
|
|
opmerking,
|
|
dagstaat
|
|
)
|
|
AS
|
|
SELECT x.van
|
|
van_datumtijd,
|
|
x.tot
|
|
tot_datumtijd,
|
|
x.res_rsv_ruimte_key
|
|
res_key,
|
|
TO_CHAR (x.res_reservering_key)
|
|
|| '/'
|
|
|| TO_CHAR (x.res_rsv_ruimte_volgnr)
|
|
res_id,
|
|
rvck.loc_code,
|
|
rvck.geb_code,
|
|
rvck.geb_key,
|
|
rvck.ver_code,
|
|
rvck.ruimtenr,
|
|
rvck.ruimtenaam,
|
|
rvck.vnr,
|
|
rvck.voorziening,
|
|
rvck.aantal,
|
|
ROUND (COALESCE (rvck.res_rsv_prijs, rvck.aantal * rvck.ps), 2)
|
|
prijs,
|
|
rvck.btw,
|
|
x.res_activiteit_omschrijving,
|
|
x.res_srtactiviteit_omschrijving,
|
|
x.res_rsv_ruimte_bezoekers
|
|
bezoekers,
|
|
x.fo_status_key,
|
|
DECODE (x.fo_status_key,
|
|
1, 'RESOPT',
|
|
2, 'RESDEF',
|
|
3, 'RESBLK',
|
|
'RESDEL')
|
|
fo_status,
|
|
x.bo_status_key,
|
|
x.bo_status_oms,
|
|
x.contact_naam,
|
|
x.host_naam,
|
|
x.kp_nr,
|
|
rvck.res_ruimte_key,
|
|
rvck.alg_ruimte_key,
|
|
rvck.alg_ruimte_nr,
|
|
x.res_rsv_ruimte_omschrijving
|
|
oms,
|
|
x.res_rsv_ruimte_opmerking
|
|
opm,
|
|
DECODE (
|
|
x.contact_key,
|
|
30064, 'Ja',
|
|
DECODE (
|
|
COALESCE (
|
|
(SELECT res_kenmerkreservering_waarde
|
|
FROM res_kenmerkwaarde kw, res_kenmerk k
|
|
WHERE kw.res_kenmerk_key = k.res_kenmerk_key
|
|
AND k.res_srtkenmerk_key = 1
|
|
AND kw.res_rsv_ruimte_key =
|
|
x.res_rsv_ruimte_key),
|
|
'1'),
|
|
'1', 'Nee',
|
|
'Ja'))
|
|
dagstaat
|
|
FROM (SELECT rr.res_rsv_ruimte_key,
|
|
rr.res_reservering_key,
|
|
rr.res_rsv_ruimte_volgnr,
|
|
a.res_activiteit_key,
|
|
a.res_activiteit_omschrijving,
|
|
sa.res_srtactiviteit_key,
|
|
sa.res_srtactiviteit_omschrijving,
|
|
rr.res_rsv_ruimte_van van,
|
|
rr.res_rsv_ruimte_tot tot,
|
|
rr.res_rsv_ruimte_bezoekers,
|
|
fs.res_status_fo_key fo_status_key,
|
|
fs.res_status_fo_omschrijving fo_status_oms,
|
|
bs.res_status_bo_key bo_status_key,
|
|
bs.res_status_bo_omschrijving bo_status_oms,
|
|
pfc.prs_perslid_key contact_key,
|
|
pfc.prs_perslid_naam_full contact_naam,
|
|
pfh.prs_perslid_key host_key,
|
|
pfh.prs_perslid_naam_full host_naam,
|
|
k.prs_kostenplaats_nr kp_nr,
|
|
k.prs_kostenplaats_omschrijving kp_oms,
|
|
rr.res_rsv_ruimte_omschrijving,
|
|
rr.res_rsv_ruimte_opmerking
|
|
FROM res_v_aanwezigrsv_ruimte rr, -- Alleen actieve!
|
|
res_activiteit a,
|
|
res_srtactiviteit sa,
|
|
res_status_fo fs,
|
|
res_status_bo bs,
|
|
prs_v_perslid_fullnames_all pfc,
|
|
prs_v_perslid_fullnames_all pfh,
|
|
prs_kostenplaats k
|
|
WHERE rr.res_rsv_ruimte_tot > TRUNC (SYSDATE, 'IW') - 7
|
|
AND rr.res_ruimte_opstel_key IS NOT NULL -- Alleen ruimtereserveringen!
|
|
AND rr.res_activiteit_key = a.res_activiteit_key
|
|
AND a.res_activiteit_verwijder IS NULL
|
|
AND a.res_srtactiviteit_key = sa.res_srtactiviteit_key
|
|
AND sa.res_srtactiviteit_verwijder IS NULL
|
|
AND rr.res_status_fo_key = fs.res_status_fo_key
|
|
AND rr.res_status_bo_key = bs.res_status_bo_key
|
|
AND rr.res_rsv_ruimte_dirtlevel = 0
|
|
AND rr.res_rsv_ruimte_contact_key = pfc.prs_perslid_key
|
|
AND rr.res_rsv_ruimte_host_key = pfh.prs_perslid_key
|
|
AND rr.prs_kostenplaats_key = k.prs_kostenplaats_key(+)) x
|
|
LEFT JOIN
|
|
(SELECT rrr.res_rsv_ruimte_key,
|
|
l.alg_locatie_code loc_code,
|
|
g.alg_gebouw_code geb_code,
|
|
g.alg_gebouw_key geb_key,
|
|
v.alg_verdieping_code ver_code,
|
|
r.alg_ruimte_nr ruimtenr,
|
|
r.alg_ruimte_key alg_ruimte_key,
|
|
rr.res_ruimte_key res_ruimte_key,
|
|
r.alg_ruimte_nr,
|
|
rr.res_ruimte_nr ruimtenaam,
|
|
TO_NUMBER (NULL) vnr,
|
|
ro.res_opstelling_omschrijving voorziening,
|
|
ROUND (
|
|
(rrr.res_rsv_ruimte_tot - rrr.res_rsv_ruimte_van) * 24,
|
|
2) aantal, -- Duur in uren
|
|
rrr.res_rsv_ruimte_prijs res_rsv_prijs,
|
|
rr.res_ruimte_prijs ps, -- Uur-tarief
|
|
rr.res_ruimte_prijs_ochtend po,
|
|
rr.res_ruimte_prijs_middag pm,
|
|
rr.res_ruimte_prijs_avond pa,
|
|
NULL btw,
|
|
TO_NUMBER (NULL) k_key,
|
|
NULL k_naam,
|
|
NULL k_type,
|
|
NULL k_waarde
|
|
FROM res_v_aanwezigrsv_ruimte rrr,
|
|
res_ruimte_opstelling rro,
|
|
res_ruimte rr,
|
|
res_opstelling ro,
|
|
( SELECT res_ruimte_key,
|
|
MAX (alg_ruimte_key) alg_ruimte_key,
|
|
COUNT (*) aantal
|
|
FROM res_alg_ruimte
|
|
WHERE res_alg_ruimte_verwijder IS NULL
|
|
GROUP BY res_ruimte_key) rar,
|
|
alg_ruimte r,
|
|
alg_verdieping v,
|
|
alg_gebouw g,
|
|
alg_locatie l
|
|
WHERE rrr.res_ruimte_opstel_key = rro.res_ruimte_opstel_key
|
|
AND rro.res_ruimte_key = rr.res_ruimte_key
|
|
AND rro.res_opstelling_key = ro.res_opstelling_key
|
|
AND rr.res_ruimte_key = rar.res_ruimte_key(+)
|
|
AND rar.alg_ruimte_key = r.alg_ruimte_key(+)
|
|
AND r.alg_verdieping_key = v.alg_verdieping_key(+)
|
|
AND v.alg_gebouw_key = g.alg_gebouw_key(+)
|
|
AND g.alg_locatie_key = l.alg_locatie_key(+)) rvck
|
|
ON x.res_rsv_ruimte_key = rvck.res_rsv_ruimte_key;
|
|
|
|
CREATE OR REPLACE VIEW pnbr_v_rap_ideeenbus
|
|
(
|
|
melding,
|
|
datum,
|
|
fclt_f_korte_omschrijving,
|
|
fclt_f_status,
|
|
idee,
|
|
financieel,
|
|
immaterieel,
|
|
afhandeling
|
|
)
|
|
AS
|
|
SELECT m.mld_melding_key,
|
|
TO_CHAR (mld_melding_datum, 'dd-mm-yyyy'),
|
|
mld_kenmerkmelding_waarde
|
|
korteomschrijving,
|
|
DECODE (
|
|
(SELECT mld_kenmerkmelding_waarde
|
|
FROM mld_kenmerkmelding km
|
|
WHERE km.mld_kenmerk_key = 3261
|
|
AND km.mld_melding_key = m.mld_melding_key),
|
|
1542, 'Afgewezen',
|
|
1541, 'Gehonoreerd',
|
|
'In behandeling'),
|
|
(SELECT mld_kenmerkmelding_waarde
|
|
FROM mld_kenmerkmelding km
|
|
WHERE km.mld_kenmerk_key = 262
|
|
AND km.mld_melding_key = m.mld_melding_key)
|
|
idee,
|
|
(SELECT mld_kenmerkmelding_waarde
|
|
FROM mld_kenmerkmelding km
|
|
WHERE km.mld_kenmerk_key = 263
|
|
AND km.mld_melding_key = m.mld_melding_key)
|
|
financieel,
|
|
(SELECT mld_kenmerkmelding_waarde
|
|
FROM mld_kenmerkmelding km
|
|
WHERE km.mld_kenmerk_key = 264
|
|
AND km.mld_melding_key = m.mld_melding_key)
|
|
immaterieel,
|
|
mld_melding_opmerking
|
|
FROM mld_melding m, mld_kenmerkmelding km
|
|
WHERE km.mld_kenmerk_key = 261
|
|
AND km.mld_melding_key = m.mld_melding_key
|
|
AND mld_stdmelding_key = 262
|
|
AND mld_melding_status <> 1;
|
|
|
|
-- rapport om inzage te krijgen in de bezittingen en of ze functioneel beheerders zijn,
|
|
-- van medewerkers die uitdienst gaan.
|
|
|
|
CREATE OR REPLACE VIEW pnbr_v_rap_uitdienst_objecten
|
|
(
|
|
uitdienst,
|
|
naam,
|
|
aantal,
|
|
objecten,
|
|
beheer,
|
|
applicaties
|
|
)
|
|
AS
|
|
SELECT TO_DATE (prs_kenmerklink_waarde, 'dd-mm-yyyy'),
|
|
pf.prs_perslid_naam_full,
|
|
d.aantal,
|
|
d.ins_deel_omschrijving,
|
|
f.aantal,
|
|
f.ins_deel_omschrijving
|
|
FROM prs_kenmerklink kl,
|
|
prs_perslid p,
|
|
prs_v_perslid_fullnames pf,
|
|
( SELECT COUNT (ins_deel_key)
|
|
aantal,
|
|
LISTAGG (
|
|
CASE
|
|
WHEN aantal < 40 THEN ins_deel_omschrijving
|
|
ELSE '.'
|
|
END,
|
|
',')
|
|
WITHIN GROUP (ORDER BY ins_deel_omschrijving)
|
|
AS ins_deel_omschrijving,
|
|
d.ins_alg_ruimte_key
|
|
prs_perslid_key
|
|
FROM ins_deel d,
|
|
( SELECT ins_alg_ruimte_key, COUNT (*) aantal
|
|
FROM ins_deel
|
|
WHERE ins_alg_ruimte_type = 'P'
|
|
AND ins_deel_verwijder IS NULL
|
|
GROUP BY ins_alg_ruimte_key) da
|
|
WHERE ins_alg_ruimte_type = 'P'
|
|
AND ins_deel_verwijder IS NULL
|
|
AND d.ins_alg_ruimte_key = da.ins_alg_ruimte_key
|
|
AND COALESCE (ins_deel_vervaldatum, SYSDATE + 1) > SYSDATE
|
|
GROUP BY d.ins_alg_ruimte_key, da.aantal) d,
|
|
( SELECT COUNT (d.ins_deel_key)
|
|
aantal,
|
|
LISTAGG (ins_deel_opmerking, ',')
|
|
WITHIN GROUP (ORDER BY ins_deel_opmerking)
|
|
AS ins_deel_omschrijving,
|
|
fac.safe_to_number (ins_kenmerkdeel_waarde)
|
|
prs_perslid_key
|
|
FROM ins_kenmerkdeel kd, ins_kenmerk k, ins_deel d
|
|
WHERE kd.ins_kenmerk_key = k.ins_kenmerk_key
|
|
AND k.ins_srtkenmerk_key IN (549, 550, 551) -- functioneel beheerder altx
|
|
AND kd.ins_kenmerkdeel_verwijder IS NULL
|
|
AND d.ins_deel_key = kd.ins_deel_key
|
|
AND d.ins_deel_verwijder IS NULL
|
|
GROUP BY fac.safe_to_number (ins_kenmerkdeel_waarde)) f
|
|
WHERE kl.prs_kenmerklink_verwijder IS NULL
|
|
AND kl.prs_link_key = p.prs_perslid_key
|
|
AND kl.prs_kenmerk_key = 1020
|
|
AND p.prs_perslid_verwijder IS NULL
|
|
AND p.prs_perslid_key = d.prs_perslid_key(+)
|
|
AND p.prs_perslid_key = pf.prs_perslid_key
|
|
AND p.prs_perslid_key = f.prs_perslid_key(+);
|
|
|
|
CREATE OR REPLACE VIEW pnbr_v_noti_resreminder
|
|
(
|
|
code,
|
|
sender,
|
|
receiver,
|
|
text,
|
|
key,
|
|
xkey
|
|
)
|
|
AS
|
|
SELECT code,
|
|
sender,
|
|
receiver,
|
|
'Herinnering - ' || REPLACE (text, ' ', ' '),
|
|
key,
|
|
xkey
|
|
FROM fac_v_noti_resreminder n, prs_perslid p
|
|
WHERE n.receiver = p.prs_perslid_key
|
|
AND prs_perslid_naam NOT LIKE 'INACTIEF:%';
|
|
|
|
-- notificatie naar klant die niet binnen 7 dagen op een vraag heeft geantwoord.
|
|
|
|
CREATE OR REPLACE VIEW pnbr_v_noti_mld_fenote_rem
|
|
(
|
|
code,
|
|
sender,
|
|
receiver,
|
|
text,
|
|
key,
|
|
xkey
|
|
)
|
|
AS
|
|
SELECT 'MLDNOT',
|
|
NULL,
|
|
prs_perslid_key,
|
|
'Herinnering: vraag over melding M' || mld_melding_key,
|
|
mld_melding_key,
|
|
NULL
|
|
FROM ( SELECT m.mld_melding_key,
|
|
MAX (n.mld_melding_note_aanmaak)
|
|
mld_melding_note_aanmaak,
|
|
m.prs_perslid_key
|
|
FROM mld_melding m, mld_melding_note n
|
|
WHERE mld_melding_actiecode = 2
|
|
AND mld_melding_note_flag = 1
|
|
AND n.mld_melding_key = m.mld_melding_key
|
|
AND mld_melding_status IN (0,
|
|
2,
|
|
3,
|
|
4,
|
|
7,
|
|
99)
|
|
GROUP BY m.mld_melding_key, m.prs_perslid_key)
|
|
WHERE TRUNC (mld_melding_note_aanmaak) = TRUNC (SYSDATE) - 7;
|
|
|
|
CREATE OR REPLACE VIEW pnbr_v_rap_mld_fenote
|
|
(
|
|
melding,
|
|
melder,
|
|
standaardmelding,
|
|
behandelgroep,
|
|
omschrijving
|
|
)
|
|
AS
|
|
SELECT 'M' || mld_melding_key,
|
|
pf.prs_perslid_naam_full,
|
|
std.mld_stdmelding_omschrijving,
|
|
d.ins_discipline_omschrijving,
|
|
mld_melding_omschrijving
|
|
FROM prs_v_perslid_fullnames pf,
|
|
mld_stdmelding std,
|
|
ins_tab_discipline d,
|
|
( SELECT m.mld_melding_key,
|
|
m.mld_stdmelding_key,
|
|
m.mld_melding_omschrijving,
|
|
MAX (n.mld_melding_note_aanmaak)
|
|
mld_melding_note_aanmaak,
|
|
m.prs_perslid_key
|
|
FROM mld_melding m, mld_melding_note n
|
|
WHERE mld_melding_actiecode = 2
|
|
AND mld_melding_note_flag = 1
|
|
AND n.mld_melding_key = m.mld_melding_key
|
|
AND mld_melding_status IN (0,
|
|
2,
|
|
3,
|
|
4,
|
|
7,
|
|
99)
|
|
GROUP BY m.mld_melding_key,
|
|
m.prs_perslid_key,
|
|
mld_stdmelding_key,
|
|
mld_melding_omschrijving) m
|
|
WHERE mld_melding_note_aanmaak < SYSDATE - 14
|
|
AND m.prs_perslid_key = pf.prs_perslid_key
|
|
AND m.mld_stdmelding_key = std.mld_stdmelding_key
|
|
AND std.mld_ins_discipline_key = d.ins_discipline_key;
|
|
|
|
-- PNBR#28111 Rapportage met kunstobjecten inclusief foto
|
|
-- Overige keys zijn kenmerken voor deze objecten die dezelfde naam hebben als het veld.
|
|
|
|
CREATE OR REPLACE VIEW PNBR_V_RAP_KUNST
|
|
(
|
|
FCLT_F_OBJECT,
|
|
HTML_INS_DEEL_KEY,
|
|
FCLT_F_KUNSTENAAR,
|
|
FCLT_F_TITEL,
|
|
THEMA,
|
|
TECHNIEK_KUNST,
|
|
MATERIAAL,
|
|
DATERING,
|
|
HOOGTE,
|
|
BREEDTE,
|
|
DIEPTE,
|
|
HXBXD_INCL_LIJST,
|
|
EIGENAAR,
|
|
ACHTERGRONDINFO,
|
|
LAATSTE_TAXATIEDATUM,
|
|
GETAXEERD_DOOR,
|
|
TAXATIEWAARDE,
|
|
VERZEKERDE_WAARDE,
|
|
RESTAURATIE_ONDERHOUD,
|
|
HTML_FOTO
|
|
)
|
|
AS
|
|
SELECT ins_deel_omschrijving
|
|
id,
|
|
'<a class="details" onclick=''FcltMgr.openDetail("'
|
|
|| 'appl/ins/ins_deel.asp?urole=bo&'
|
|
|| 'ins_key= '
|
|
|| ins_deel_key
|
|
|| '")''>'
|
|
|| HTF.escape_sc (ins_deel_omschrijving)
|
|
|| '</a>',
|
|
(SELECT fac_usrdata_omschr
|
|
FROM ins_kenmerkdeel ikd,
|
|
ins_kenmerk ik,
|
|
ins_srtkenmerk isk,
|
|
fac_kenmerkdomein kd,
|
|
fac_usrdata ud
|
|
WHERE ikd.ins_kenmerk_key = 3201
|
|
AND ik.ins_kenmerk_key = ikd.ins_kenmerk_key
|
|
AND ik.ins_srtkenmerk_key = isk.ins_srtkenmerk_key
|
|
AND kd.fac_kenmerkdomein_key = isk.fac_kenmerkdomein_key
|
|
AND ud.fac_usrtab_key = kd.fac_usrtab_key
|
|
AND ikd.ins_kenmerkdeel_waarde = ud.fac_usrdata_key
|
|
AND d.ins_deel_key = ikd.ins_deel_key)
|
|
Naam_kunstenaar,
|
|
(SELECT ins_kenmerkdeel_waarde
|
|
FROM ins_kenmerkdeel ikd
|
|
WHERE ins_kenmerk_key = 3221
|
|
AND d.ins_deel_key = ikd.ins_deel_key)
|
|
Titel,
|
|
DECODE (
|
|
(SELECT ins_kenmerkdeel_waarde
|
|
FROM ins_kenmerkdeel ikd
|
|
WHERE ins_kenmerk_key = 3242
|
|
AND d.ins_deel_key = ikd.ins_deel_key),
|
|
NULL, (SELECT fac_usrdata_omschr
|
|
FROM ins_kenmerkdeel ikd,
|
|
ins_kenmerk ik,
|
|
ins_srtkenmerk isk,
|
|
fac_kenmerkdomein kd,
|
|
fac_usrdata ud
|
|
WHERE ikd.ins_kenmerk_key = 3241
|
|
AND ik.ins_kenmerk_key = ikd.ins_kenmerk_key
|
|
AND ik.ins_srtkenmerk_key =
|
|
isk.ins_srtkenmerk_key
|
|
AND kd.fac_kenmerkdomein_key =
|
|
isk.fac_kenmerkdomein_key
|
|
AND ud.fac_usrtab_key = kd.fac_usrtab_key
|
|
AND ikd.ins_kenmerkdeel_waarde =
|
|
ud.fac_usrdata_key
|
|
AND d.ins_deel_key = ikd.ins_deel_key),
|
|
(SELECT fac_usrdata_omschr
|
|
FROM ins_kenmerkdeel ikd,
|
|
ins_kenmerk ik,
|
|
ins_srtkenmerk isk,
|
|
fac_kenmerkdomein kd,
|
|
fac_usrdata ud
|
|
WHERE ikd.ins_kenmerk_key = 3241
|
|
AND ik.ins_kenmerk_key = ikd.ins_kenmerk_key
|
|
AND ik.ins_srtkenmerk_key = isk.ins_srtkenmerk_key
|
|
AND kd.fac_kenmerkdomein_key =
|
|
isk.fac_kenmerkdomein_key
|
|
AND ud.fac_usrtab_key = kd.fac_usrtab_key
|
|
AND ikd.ins_kenmerkdeel_waarde = ud.fac_usrdata_key
|
|
AND d.ins_deel_key = ikd.ins_deel_key)
|
|
|| ' / '
|
|
|| (SELECT ins_kenmerkdeel_waarde
|
|
FROM ins_kenmerkdeel ikd
|
|
WHERE ins_kenmerk_key = 3242
|
|
AND d.ins_deel_key = ikd.ins_deel_key))
|
|
thema,
|
|
(SELECT ins_kenmerkdeel_waarde
|
|
FROM ins_kenmerkdeel ikd
|
|
WHERE ins_kenmerk_key = 3261
|
|
AND d.ins_deel_key = ikd.ins_deel_key)
|
|
techniek_kunst,
|
|
(SELECT ins_kenmerkdeel_waarde
|
|
FROM ins_kenmerkdeel ikd
|
|
WHERE ins_kenmerk_key = 3281
|
|
AND d.ins_deel_key = ikd.ins_deel_key)
|
|
Materiaal,
|
|
(SELECT ins_kenmerkdeel_waarde
|
|
FROM ins_kenmerkdeel ikd
|
|
WHERE ins_kenmerk_key = 3282
|
|
AND d.ins_deel_key = ikd.ins_deel_key)
|
|
datering,
|
|
(SELECT ins_kenmerkdeel_waarde
|
|
FROM ins_kenmerkdeel ikd
|
|
WHERE ins_kenmerk_key = 3301
|
|
AND d.ins_deel_key = ikd.ins_deel_key)
|
|
Hoogte,
|
|
(SELECT ins_kenmerkdeel_waarde
|
|
FROM ins_kenmerkdeel ikd
|
|
WHERE ins_kenmerk_key = 3302
|
|
AND d.ins_deel_key = ikd.ins_deel_key)
|
|
Breedte,
|
|
(SELECT ins_kenmerkdeel_waarde
|
|
FROM ins_kenmerkdeel ikd
|
|
WHERE ins_kenmerk_key = 3303
|
|
AND d.ins_deel_key = ikd.ins_deel_key)
|
|
Diepte,
|
|
(SELECT ins_kenmerkdeel_waarde
|
|
FROM ins_kenmerkdeel ikd
|
|
WHERE ins_kenmerk_key = 3321
|
|
AND d.ins_deel_key = ikd.ins_deel_key)
|
|
hxbxd_incl_lijst,
|
|
(SELECT ins_kenmerkdeel_waarde
|
|
FROM ins_kenmerkdeel ikd
|
|
WHERE ins_kenmerk_key = 3322
|
|
AND d.ins_deel_key = ikd.ins_deel_key)
|
|
Eigenaar,
|
|
(SELECT ins_kenmerkdeel_waarde
|
|
FROM ins_kenmerkdeel ikd
|
|
WHERE ins_kenmerk_key = 3341
|
|
AND d.ins_deel_key = ikd.ins_deel_key)
|
|
achtergrondinfo,
|
|
(SELECT ins_kenmerkdeel_waarde
|
|
FROM ins_kenmerkdeel ikd
|
|
WHERE ins_kenmerk_key = 3361
|
|
AND d.ins_deel_key = ikd.ins_deel_key)
|
|
laatste_taxatiedatum,
|
|
(SELECT ins_kenmerkdeel_waarde
|
|
FROM ins_kenmerkdeel ikd
|
|
WHERE ins_kenmerk_key = 3362
|
|
AND d.ins_deel_key = ikd.ins_deel_key)
|
|
getaxeerd_door,
|
|
(SELECT ins_kenmerkdeel_waarde
|
|
FROM ins_kenmerkdeel ikd
|
|
WHERE ins_kenmerk_key = 3363
|
|
AND d.ins_deel_key = ikd.ins_deel_key)
|
|
Taxatiewaarde,
|
|
(SELECT ins_kenmerkdeel_waarde
|
|
FROM ins_kenmerkdeel ikd
|
|
WHERE ins_kenmerk_key = 3381
|
|
AND d.ins_deel_key = ikd.ins_deel_key)
|
|
verzekerde_waarde,
|
|
(SELECT ins_kenmerkdeel_waarde
|
|
FROM ins_kenmerkdeel ikd
|
|
WHERE ins_kenmerk_key = 3401
|
|
AND d.ins_deel_key = ikd.ins_deel_key)
|
|
restauratie_onderhoud,
|
|
DECODE (
|
|
(SELECT ins_kenmerkdeel_waarde
|
|
FROM ins_kenmerkdeel ikd
|
|
WHERE ins_kenmerk_key = 4321
|
|
AND d.ins_deel_key = ikd.ins_deel_key),
|
|
NULL, 'Geen foto',
|
|
'<img src="https://pnbr.facilitor.nl/api2/objects/'
|
|
|| ins_deel_key
|
|
|| '/attachments/109/'
|
|
|| (SELECT ins_kenmerkdeel_waarde
|
|
FROM ins_kenmerkdeel ikd
|
|
WHERE ins_kenmerk_key = 4321
|
|
AND d.ins_deel_key = ikd.ins_deel_key)
|
|
|| '" height="128">')
|
|
Foto
|
|
FROM ins_deel d
|
|
WHERE ins_srtdeel_key = 1082 AND ins_deel_verwijder IS NULL
|
|
ORDER BY 3, 1;
|
|
|
|
-- PNBR#31907: Objectwijzigingen (alle) en ook direct bovenstaande rapportage
|
|
-- daarmee in lijn gebracht!
|
|
|
|
CREATE OR REPLACE VIEW pnbr_v_rap_objectwijzigingen
|
|
(
|
|
hide_f_id,
|
|
html_identificatie,
|
|
beschrijving,
|
|
fclt_f_discipline,
|
|
fclt_f_groep,
|
|
mutatie,
|
|
fclt_d_mutatiedatum
|
|
)
|
|
AS
|
|
SELECT d.ins_deel_omschrijving,
|
|
'<a class="details" onclick=''FcltMgr.openDetail("appl/ins/ins_deel.asp?urole=bo&'
|
|
|| 'ins_key='
|
|
|| d.ins_deel_key
|
|
|| '")''>'
|
|
|| d.ins_deel_omschrijving
|
|
|| '</a>'
|
|
identificatie,
|
|
d.ins_deel_opmerking
|
|
beschrijving,
|
|
td.ins_discipline_omschrijving
|
|
discipline,
|
|
sd.ins_srtdeel_omschrijving
|
|
groep,
|
|
DECODE (
|
|
d.ins_deel_verwijder,
|
|
NULL, lcl.x ('fac_srtnotificatie_oms',
|
|
sn.fac_srtnotificatie_key,
|
|
sn.fac_srtnotificatie_oms),
|
|
'Object verwijderd')
|
|
|| DECODE (
|
|
sn.fac_srtnotificatie_code,
|
|
'INSUPD', ' (' || COUNT (sn.fac_srtnotificatie_oms) || ')')
|
|
mutatie,
|
|
TO_CHAR (t.fac_tracking_datum, 'dd-mm-yyyy')
|
|
mutatiedatum
|
|
FROM fac_tracking t,
|
|
fac_srtnotificatie sn,
|
|
ins_deel d,
|
|
ins_srtdeel sd,
|
|
ins_srtgroep sg,
|
|
ins_discipline td
|
|
WHERE t.fac_srtnotificatie_key = sn.fac_srtnotificatie_key
|
|
AND sn.fac_srtnotificatie_xmlnode = 'deel'
|
|
AND t.fac_tracking_refkey = d.ins_deel_key
|
|
AND d.ins_srtdeel_key = sd.ins_srtdeel_key
|
|
AND sd.ins_srtgroep_key = sg.ins_srtgroep_key
|
|
AND sg.ins_discipline_key = td.ins_discipline_key
|
|
GROUP BY d.ins_deel_omschrijving,
|
|
d.ins_deel_key,
|
|
d.ins_deel_opmerking,
|
|
td.ins_discipline_omschrijving,
|
|
sd.ins_srtdeel_omschrijving,
|
|
d.ins_deel_verwijder,
|
|
sn.fac_srtnotificatie_oms,
|
|
sn.fac_srtnotificatie_code,
|
|
sn.fac_srtnotificatie_key,
|
|
t.fac_tracking_datum;
|
|
|
|
CREATE OR REPLACE VIEW pnbr_v_rap_open_cmdb_status
|
|
(
|
|
hide_f_volgorde,
|
|
html_melding,
|
|
html_wijziging,
|
|
datum,
|
|
melding_status,
|
|
klasse,
|
|
status,
|
|
domein,
|
|
laatste_update,
|
|
omschrijving_wijziging,
|
|
gewenste_opleverdat,
|
|
verwachte_oplostijd
|
|
)
|
|
AS
|
|
SELECT TO_CHAR (mld_melding_datum, 'yyyymmddhh24mi'),
|
|
'<a class="details" onclick=''FcltMgr.openDetail("appl/mld/mld_melding.asp?urole=bo&'
|
|
|| 'mld_key='
|
|
|| w.start_key
|
|
|| '")''>'
|
|
|| w.start_key
|
|
|| '</a>',
|
|
'<a class="details" onclick=''FcltMgr.openDetail("appl/mld/mld_melding.asp?urole=bo&'
|
|
|| 'mld_key='
|
|
|| m.mld_melding_key
|
|
|| '")''>'
|
|
|| m.mld_melding_key
|
|
|| '</a>',
|
|
m.mld_melding_datum,
|
|
(SELECT mld_statuses_omschrijving
|
|
FROM mld_statuses
|
|
WHERE mld_statuses_key = m.mld_melding_status)
|
|
melding_status,
|
|
(SELECT fac_usrdata_code
|
|
FROM mld_kenmerkmelding km2, mld_kenmerk k, fac_usrdata ud
|
|
WHERE km2.mld_kenmerk_key = k.mld_kenmerk_key
|
|
AND k.mld_srtkenmerk_key = 3565 -- Wijzigingsklasse
|
|
AND km2.mld_melding_key = m.mld_melding_key
|
|
AND fac.safe_to_number (km2.mld_kenmerkmelding_waarde) =
|
|
ud.fac_usrdata_key)
|
|
klasse,
|
|
(SELECT fac_usrdata_omschr
|
|
FROM mld_kenmerkmelding km, mld_kenmerk k, fac_usrdata ud
|
|
WHERE km.mld_kenmerk_key = k.mld_kenmerk_key
|
|
AND k.mld_srtkenmerk_key = 3621 -- status
|
|
AND ud.fac_usrdata_key =
|
|
fac.safe_to_number (mld_kenmerkmelding_waarde)
|
|
AND km.mld_melding_key = m.mld_melding_key)
|
|
status,
|
|
(SELECT ins_discipline_omschrijving
|
|
FROM ins_tab_discipline d, mld_stdmelding std
|
|
WHERE d.ins_discipline_key = std.mld_ins_discipline_key
|
|
AND std.mld_stdmelding_key = m.mld_stdmelding_key)
|
|
domein,
|
|
(SELECT MAX (fac_tracking_datum)
|
|
FROM (SELECT fac_tracking_datum, fac_tracking_refkey
|
|
FROM fac_tracking t
|
|
WHERE ( t.fac_tracking_oms LIKE
|
|
'%' || 'Status wijzigingsbeheer:' || '%'
|
|
OR t.fac_srtnotificatie_key = 161)
|
|
UNION ALL
|
|
SELECT mld_melding_note_aanmaak, mld_melding_key
|
|
FROM mld_melding_note mn) grp
|
|
WHERE grp.fac_tracking_refkey = m.mld_melding_key)
|
|
laatstestatwijz,
|
|
m.mld_melding_omschrijving,
|
|
(SELECT fac.safe_to_date (mld_kenmerkmelding_waarde, 'dd-mm-yyyy')
|
|
FROM mld_kenmerkmelding km, mld_kenmerk k
|
|
WHERE km.mld_kenmerk_key = k.mld_kenmerk_key
|
|
AND k.mld_srtkenmerk_key = 3568 -- gewenste opleverdatum
|
|
AND km.mld_melding_key = m.mld_melding_key)
|
|
gewenste_opleverdat,
|
|
m.mld_melding_einddatum
|
|
verwachte_oplostijd
|
|
FROM (SELECT m.mld_melding_key start_key,
|
|
m2.mld_melding_key vervolg_key
|
|
FROM (SELECT mld_kenmerkmelding_waarde, km.mld_melding_key
|
|
FROM mld_kenmerkmelding km, mld_kenmerk k2
|
|
WHERE km.mld_kenmerk_key = k2.mld_kenmerk_key
|
|
AND k2.mld_srtkenmerk_key = 3601) km2, -- wijziging
|
|
mld_melding m,
|
|
mld_melding m2,
|
|
mld_stdmelding std,
|
|
ins_tab_discipline d
|
|
WHERE m.mld_melding_key = km2.mld_melding_key(+)
|
|
AND m2.mld_stdmelding_key = std.mld_stdmelding_key
|
|
AND std.mld_ins_discipline_key = d.ins_discipline_key
|
|
AND ins_srtdiscipline_key = 21 -- wijzigingsverzoeken
|
|
AND m2.mld_melding_start_key = m.mld_melding_key
|
|
AND m2.mld_melding_status NOT IN (1, 5, 6)
|
|
UNION
|
|
SELECT NULL start_key, m2.mld_melding_key vervolg_key
|
|
FROM mld_melding m2, mld_stdmelding std, ins_tab_discipline d
|
|
WHERE m2.mld_stdmelding_key = std.mld_stdmelding_key
|
|
AND std.mld_ins_discipline_key = d.ins_discipline_key
|
|
AND ins_srtdiscipline_key = 21 -- wijzigingsverzoeken
|
|
AND mld_melding_start_key IS NULL
|
|
AND m2.mld_melding_status NOT IN (1, 5, 6)) w,
|
|
mld_melding m
|
|
WHERE w.vervolg_key = m.mld_melding_key;
|
|
|
|
CREATE OR REPLACE VIEW pnbr_v_rap_cmdb_status
|
|
(
|
|
hide_f_volgorde,
|
|
html_melding,
|
|
html_wijziging,
|
|
datum,
|
|
klasse,
|
|
status,
|
|
domein,
|
|
laatste_update,
|
|
omschrijving_wijziging,
|
|
gewenste_opleverdatum
|
|
)
|
|
AS
|
|
SELECT TO_CHAR (mld_melding_datum, 'yyyymmddhh24mi'),
|
|
'<a class="details" onclick=''FcltMgr.openDetail("appl/mld/mld_melding.asp?urole=bo&'
|
|
|| 'mld_key='
|
|
|| w.start_key
|
|
|| '")''>'
|
|
|| w.start_key
|
|
|| '</a>',
|
|
'<a class="details" onclick=''FcltMgr.openDetail("appl/mld/mld_melding.asp?urole=bo&'
|
|
|| 'mld_key='
|
|
|| m.mld_melding_key
|
|
|| '")''>'
|
|
|| m.mld_melding_key
|
|
|| '</a>',
|
|
m.mld_melding_datum,
|
|
(SELECT fac_usrdata_code
|
|
FROM mld_kenmerkmelding km2, mld_kenmerk k, fac_usrdata ud
|
|
WHERE km2.mld_kenmerk_key = k.mld_kenmerk_key
|
|
AND k.mld_srtkenmerk_key = 3565 -- Wijzigingsklasse
|
|
AND km2.mld_melding_key = m.mld_melding_key
|
|
AND fac.safe_to_number (km2.mld_kenmerkmelding_waarde) =
|
|
ud.fac_usrdata_key)
|
|
klasse,
|
|
(SELECT fac_usrdata_omschr
|
|
FROM mld_kenmerkmelding km, mld_kenmerk k, fac_usrdata ud
|
|
WHERE km.mld_kenmerk_key = k.mld_kenmerk_key
|
|
AND k.mld_srtkenmerk_key = 3621 -- status
|
|
AND ud.fac_usrdata_key =
|
|
fac.safe_to_number (mld_kenmerkmelding_waarde)
|
|
AND km.mld_melding_key = m.mld_melding_key)
|
|
status,
|
|
(SELECT ins_discipline_omschrijving
|
|
FROM ins_tab_discipline d, mld_stdmelding std
|
|
WHERE d.ins_discipline_key = std.mld_ins_discipline_key
|
|
AND std.mld_stdmelding_key = m.mld_stdmelding_key)
|
|
domein,
|
|
(SELECT MAX (fac_tracking_datum)
|
|
FROM fac_tracking t
|
|
WHERE fac_tracking_refkey = m.mld_melding_key
|
|
AND t.fac_tracking_oms LIKE
|
|
'%' || 'Status wijzigingsbeheer:' || '%')
|
|
laatstestatwijz,
|
|
m.mld_melding_omschrijving,
|
|
(SELECT fac.safe_to_date (mld_kenmerkmelding_waarde, 'dd-mm-yyyy')
|
|
FROM mld_kenmerkmelding km, mld_kenmerk k
|
|
WHERE km.mld_kenmerk_key = k.mld_kenmerk_key
|
|
AND k.mld_srtkenmerk_key = 3568 -- gewenste opleverdatum
|
|
AND km.mld_melding_key = m.mld_melding_key)
|
|
gewenste_opleverdatum
|
|
FROM (SELECT m.mld_melding_key start_key,
|
|
m2.mld_melding_key vervolg_key
|
|
FROM (SELECT mld_kenmerkmelding_waarde, km.mld_melding_key
|
|
FROM mld_kenmerkmelding km, mld_kenmerk k2
|
|
WHERE km.mld_kenmerk_key = k2.mld_kenmerk_key
|
|
AND k2.mld_srtkenmerk_key = 3601) km2, -- wijziging
|
|
mld_melding m,
|
|
mld_melding m2,
|
|
mld_stdmelding std,
|
|
ins_tab_discipline d
|
|
WHERE m.mld_melding_key = km2.mld_melding_key(+)
|
|
AND m2.mld_stdmelding_key = std.mld_stdmelding_key
|
|
AND std.mld_ins_discipline_key = d.ins_discipline_key
|
|
AND ins_srtdiscipline_key = 21 -- wijzigingsverzoeken
|
|
AND m2.mld_melding_start_key = m.mld_melding_key
|
|
AND m2.mld_melding_status IN (5, 6)
|
|
UNION ALL
|
|
SELECT NULL start_key, m2.mld_melding_key vervolg_key
|
|
FROM mld_melding m2, mld_stdmelding std, ins_tab_discipline d
|
|
WHERE m2.mld_stdmelding_key = std.mld_stdmelding_key
|
|
AND std.mld_ins_discipline_key = d.ins_discipline_key
|
|
AND ins_srtdiscipline_key = 21 -- wijzigingsverzoeken
|
|
AND mld_melding_start_key IS NULL
|
|
AND m2.mld_melding_status IN (5, 6)) w,
|
|
mld_melding m
|
|
WHERE w.vervolg_key = m.mld_melding_key;
|
|
|
|
-- View achter de API om de software componenten beschikbaar te stellen op brain
|
|
|
|
CREATE OR REPLACE VIEW pnbr_v_rap_sw_catalog
|
|
(
|
|
ins_deel_key,
|
|
omschrijving,
|
|
groep,
|
|
code_applicatie,
|
|
lange_applicatienaam,
|
|
functionele_beschrijving,
|
|
versie_applicatie,
|
|
locatie_van_installatie,
|
|
categorie,
|
|
fabrikant,
|
|
koppelingen_met,
|
|
beschrijving_relatie_met,
|
|
applicatiebeheerder,
|
|
technisch_beheerder,
|
|
functioneel_beheerder_alt_1,
|
|
functioneel_beheerder_alt_2,
|
|
functioneel_beheerder_alt_3,
|
|
eigenaar_organisatieonderdeel,
|
|
bedrijfskritisch,
|
|
dienstverleningsniveau,
|
|
status_software,
|
|
contract_beschikbaar,
|
|
licentie_beschikbaar,
|
|
indicatie_aantal_gebruikers,
|
|
relatie_met_snow,
|
|
beschikbare_documentatie,
|
|
locatie_documentatie,
|
|
notitie,
|
|
bevat_data_met_bewaartermijn,
|
|
startdatum_gebruik_applicatie,
|
|
einddatum_gebruik_applicatie
|
|
)
|
|
AS
|
|
SELECT d.ins_deel_key,
|
|
ins_deel_omschrijving,
|
|
ins_srtdeel_omschrijving groep,
|
|
pnbr.get_kenmerk ('INS', 661, d.ins_deel_key), -- Code_applicatie
|
|
pnbr.get_kenmerk ('INS', 662, d.ins_deel_key), -- Lange applicatienaam
|
|
pnbr.get_kenmerk ('INS', 663, d.ins_deel_key), -- Functionele beschrijving
|
|
pnbr.get_kenmerk ('INS', 664, d.ins_deel_key), -- Versie applicatie
|
|
pnbr.get_kenmerk ('INS', 665, d.ins_deel_key), -- Locatie van installatie
|
|
pnbr.get_kenmerk ('INS', 667, d.ins_deel_key), -- Categorie
|
|
pnbr.get_kenmerk ('INS', 668, d.ins_deel_key), -- Fabrikant
|
|
pnbr.get_kenmerk ('INS', 669, d.ins_deel_key), -- Koppelingen met andere applicatie(s)
|
|
pnbr.get_kenmerk ('INS', 670, d.ins_deel_key), -- Beschrijving relatie met andere configuratie items
|
|
pnbr.get_kenmerk ('INS', 671, d.ins_deel_key), -- Applicatiebeheerder
|
|
pnbr.get_kenmerk ('INS', 672, d.ins_deel_key), -- Technisch beheerder
|
|
pnbr.get_kenmerk ('INS', 673, d.ins_deel_key), -- Functioneel beheerder alt 1
|
|
pnbr.get_kenmerk ('INS', 674, d.ins_deel_key), -- Functioneel beheerder alt 2
|
|
pnbr.get_kenmerk ('INS', 675, d.ins_deel_key), -- Functioneel beheerder alt 3
|
|
pnbr.get_kenmerk ('INS', 676, d.ins_deel_key), -- Eigenaar /Organisatieonderdeel
|
|
pnbr.get_kenmerk ('INS', 677, d.ins_deel_key), -- Bedrijfskritisch
|
|
pnbr.get_kenmerk ('INS', 678, d.ins_deel_key), -- Dienstverleningsniveau
|
|
pnbr.get_kenmerk ('INS', 679, d.ins_deel_key), -- Status Software
|
|
pnbr.get_kenmerk ('INS', 680, d.ins_deel_key), -- Contract beschikbaar
|
|
pnbr.get_kenmerk ('INS', 681, d.ins_deel_key), -- Licentie beschikbaar
|
|
pnbr.get_kenmerk ('INS', 682, d.ins_deel_key), -- Indicatie aantal gebruikers
|
|
pnbr.get_kenmerk ('INS', 683, d.ins_deel_key), -- Relatie met SNOW
|
|
pnbr.get_kenmerk ('INS', 684, d.ins_deel_key), -- Beschikbare documentatie
|
|
pnbr.get_kenmerk ('INS', 685, d.ins_deel_key), -- Locatie documentatie
|
|
pnbr.get_kenmerk ('INS', 686, d.ins_deel_key), -- Notitie
|
|
pnbr.get_kenmerk ('INS', 741, d.ins_deel_key), -- Bevat data met bewaartermijn
|
|
pnbr.get_kenmerk ('INS', 687, d.ins_deel_key), -- Startdatum gebruik applicatie
|
|
pnbr.get_kenmerk ('INS', 688, d.ins_deel_key) -- Einddatum gebruik applicatie
|
|
FROM ins_deel d,
|
|
ins_srtdeel sd,
|
|
ins_srtgroep sg,
|
|
ins_kenmerkdeel kd,
|
|
ins_kenmerk k
|
|
WHERE d.ins_srtdeel_key = sd.ins_srtdeel_key
|
|
AND sd.ins_srtgroep_key = sg.ins_srtgroep_key
|
|
AND sg.ins_discipline_key = 1621 -- software
|
|
AND d.ins_deel_key = kd.ins_deel_key
|
|
AND kd.ins_kenmerk_key = k.ins_kenmerk_key
|
|
AND k.ins_srtkenmerk_key = 567 -- dienstverleningsniveau
|
|
AND ( kd.ins_kenmerkdeel_waarde = 2990 -- kern
|
|
OR kd.ins_kenmerkdeel_waarde = 2991 -- functionele ruimte
|
|
);
|
|
|
|
CREATE OR REPLACE VIEW pnbr_v_rap_melding_top25
|
|
(
|
|
ins_discipline_omschrijving,
|
|
mld_stdmelding_omschrijving,
|
|
aantal
|
|
)
|
|
AS
|
|
SELECT ins_discipline_omschrijving,
|
|
mld_stdmelding_omschrijving,
|
|
COUNT (mld_melding_key)
|
|
FROM mld_melding m, mld_stdmelding std, ins_tab_discipline d
|
|
WHERE m.mld_stdmelding_key = std.mld_stdmelding_key
|
|
AND std.mld_ins_discipline_key = d.ins_discipline_key
|
|
AND m.mld_melding_datum BETWEEN TO_DATE (
|
|
TO_CHAR (
|
|
ADD_MONTHS (SYSDATE,
|
|
-1),
|
|
'yyyymm')
|
|
|| '01',
|
|
'yyyymmdd')
|
|
AND TO_DATE (
|
|
TO_CHAR (SYSDATE, 'yyyymm')
|
|
|| '01',
|
|
'yyyymmdd')
|
|
GROUP BY mld_stdmelding_omschrijving, d.ins_discipline_omschrijving;
|
|
|
|
CREATE OR REPLACE VIEW pnbr_v_rap_melding_oro
|
|
(
|
|
mld_melding_key,
|
|
mld_discipline_stdmelding,
|
|
mld_melding_datum,
|
|
prs_perslid_naam,
|
|
mld_melding_omschrijving
|
|
)
|
|
AS
|
|
SELECT mld_melding_key,
|
|
d.ins_discipline_omschrijving
|
|
|| '-'
|
|
|| std.mld_stdmelding_omschrijving,
|
|
mld_melding_datum,
|
|
pf.prs_perslid_naam_full,
|
|
mld_melding_omschrijving
|
|
FROM mld_melding m,
|
|
prs_perslid p,
|
|
prs_v_perslid_fullnames pf,
|
|
mld_stdmelding std,
|
|
ins_tab_discipline d
|
|
WHERE m.mld_stdmelding_key = std.mld_stdmelding_key
|
|
AND std.mld_ins_discipline_key = d.ins_discipline_key
|
|
AND m.prs_perslid_key = p.prs_perslid_key
|
|
AND p.prs_perslid_key = pf.prs_perslid_key
|
|
AND p.prs_afdeling_key = 381
|
|
AND m.mld_melding_datum BETWEEN TO_DATE (
|
|
TO_CHAR (
|
|
ADD_MONTHS (SYSDATE,
|
|
-1),
|
|
'yyyymm')
|
|
|| '01',
|
|
'yyyymmdd')
|
|
AND TO_DATE (
|
|
TO_CHAR (SYSDATE, 'yyyymm')
|
|
|| '01',
|
|
'yyyymmdd');
|
|
|
|
CREATE OR REPLACE VIEW pnbr_v_rap_mnd_bestelling
|
|
(
|
|
catalogus,
|
|
groep,
|
|
aantal,
|
|
prijs
|
|
)
|
|
AS
|
|
SELECT d.ins_discipline_omschrijving,
|
|
sg.bes_srtgroep_omschrijving,
|
|
COUNT (DISTINCT b.bes_bestelling_key),
|
|
SUM (bes_bestelopdr_item_aantal * bes_bestelopdr_item_brutoprijs) prijs
|
|
FROM bes_bestelling b,
|
|
bes_bestelling_item bi,
|
|
bes_bestelopdr_item boi,
|
|
bes_srtdeel bd,
|
|
bes_srtgroep sg,
|
|
bes_discipline d
|
|
WHERE b.bes_bestelling_key = bi.bes_bestelling_key
|
|
AND bi.bes_bestelopdr_item_key = boi.bes_bestelopdr_item_key
|
|
AND bi.bes_srtdeel_key = bd.bes_srtdeel_key
|
|
AND bd.bes_srtgroep_key = sg.bes_srtgroep_key
|
|
AND sg.ins_discipline_key = d.ins_discipline_key
|
|
AND d.ins_discipline_omschrijving NOT LIKE '%-ink'
|
|
AND b.bes_bestelling_datum BETWEEN TO_DATE (
|
|
TO_CHAR (
|
|
ADD_MONTHS (SYSDATE,
|
|
-1),
|
|
'yyyymm')
|
|
|| '01',
|
|
'yyyymmdd')
|
|
AND TO_DATE (
|
|
TO_CHAR (SYSDATE,
|
|
'yyyymm')
|
|
|| '01',
|
|
'yyyymmdd')
|
|
GROUP BY d.ins_discipline_omschrijving, sg.bes_srtgroep_omschrijving;
|
|
|
|
CREATE OR REPLACE VIEW pnbr_v_rap_mnd_kosten_afd
|
|
(
|
|
afdeling,
|
|
prijs
|
|
)
|
|
AS
|
|
SELECT prs_afdeling_naam,
|
|
SUM (bes_bestelopdr_item_aantal * bes_bestelopdr_item_brutoprijs) prijs
|
|
FROM bes_bestelling b,
|
|
bes_bestelling_item bi,
|
|
bes_bestelopdr_item boi,
|
|
bes_srtdeel bd,
|
|
bes_srtgroep sg,
|
|
bes_discipline d,
|
|
prs_afdeling a,
|
|
prs_perslid p
|
|
WHERE b.bes_bestelling_key = bi.bes_bestelling_key
|
|
AND bi.bes_bestelopdr_item_key = boi.bes_bestelopdr_item_key
|
|
AND bi.bes_srtdeel_key = bd.bes_srtdeel_key
|
|
AND bd.bes_srtgroep_key = sg.bes_srtgroep_key
|
|
AND sg.ins_discipline_key = d.ins_discipline_key
|
|
AND d.ins_discipline_omschrijving NOT LIKE '%-ink'
|
|
AND b.prs_perslid_key = p.prs_perslid_key
|
|
AND p.prs_afdeling_key = a.prs_afdeling_key
|
|
AND b.bes_bestelling_datum BETWEEN TO_DATE (
|
|
TO_CHAR (
|
|
ADD_MONTHS (SYSDATE,
|
|
-1),
|
|
'yyyymm')
|
|
|| '01',
|
|
'yyyymmdd')
|
|
AND TO_DATE (
|
|
TO_CHAR (SYSDATE,
|
|
'yyyymm')
|
|
|| '01',
|
|
'yyyymmdd')
|
|
GROUP BY a.prs_afdeling_naam;
|
|
|
|
|
|
CREATE OR REPLACE VIEW pnbr_v_rap_mnd_res_dag
|
|
(
|
|
hide_f_volgorde,
|
|
fclt_f_maaand,
|
|
fclt_f_dag,
|
|
fclt_f_activiteit,
|
|
fclt_f_frontend_frontoffice,
|
|
aantal,
|
|
prijs
|
|
)
|
|
AS
|
|
SELECT TO_CHAR (res_rsv_ruimte_van, 'yyyy-mm')
|
|
|| TO_CHAR (res_rsv_ruimte_van, 'd'),
|
|
TO_CHAR (res_rsv_ruimte_van, 'yyyy-mm'),
|
|
DECODE (TO_CHAR (res_rsv_ruimte_van, 'd'),
|
|
'1', 'Zondag',
|
|
'2', 'Maandag',
|
|
'3', 'Dinsdag',
|
|
'4', 'Woensdag',
|
|
'5', 'Donderdag',
|
|
'6', 'Vrijdag',
|
|
'7', 'Zaterdag')
|
|
dag,
|
|
res_activiteit_omschrijving,
|
|
fe_fo,
|
|
COUNT (rrr.res_rsv_ruimte_key)
|
|
aantal,
|
|
SUM (res.getdeelresprijs (rrr.res_rsv_ruimte_key))
|
|
prijs
|
|
FROM res_rsv_ruimte rrr,
|
|
res_activiteit a,
|
|
(SELECT fac_tracking_refkey res_rsv_ruimte_key,
|
|
DECODE (res_rsv_ruimte_contact_key,
|
|
tr.prs_perslid_key, 'Frontend',
|
|
'Frontoffice') fe_fo
|
|
FROM fac_tracking tr,
|
|
fac_srtnotificatie str,
|
|
res_rsv_ruimte rrr2
|
|
WHERE str.fac_srtnotificatie_code = 'RESNEW'
|
|
AND tr.fac_srtnotificatie_key = str.fac_srtnotificatie_key
|
|
AND tr.fac_tracking_refkey = rrr2.res_rsv_ruimte_key) f
|
|
WHERE rrr.res_activiteit_key = a.res_activiteit_key
|
|
AND rrr.res_rsv_ruimte_key = f.res_rsv_ruimte_key(+)
|
|
AND rrr.res_rsv_ruimte_verwijder IS NULL
|
|
AND ( rrr.res_ruimte_opstel_key IS NOT NULL
|
|
OR EXISTS
|
|
(SELECT res_rsv_artikel_key
|
|
FROM res_rsv_artikel rra
|
|
WHERE rra.res_rsv_ruimte_key =
|
|
rrr.res_rsv_ruimte_key
|
|
UNION ALL
|
|
SELECT res_rsv_deel_key
|
|
FROM res_rsv_deel rrd
|
|
WHERE rrd.res_rsv_ruimte_key =
|
|
rrr.res_rsv_ruimte_key))
|
|
AND res_rsv_ruimte_van >
|
|
ADD_MONTHS (
|
|
TO_DATE (TO_CHAR (SYSDATE, 'yyyymm') || '01', 'yyyymmdd'),
|
|
-4)
|
|
AND TO_CHAR (res_rsv_ruimte_van, 'yyyymm') <
|
|
TO_CHAR (SYSDATE, 'yyyymm')
|
|
GROUP BY TO_CHAR (res_rsv_ruimte_van, 'd'),
|
|
TO_CHAR (res_rsv_ruimte_van, 'yyyy-mm'),
|
|
res_activiteit_omschrijving,
|
|
f.fe_fo;
|
|
|
|
------------------------------------------------------------------------------------
|
|
--
|
|
-- Tijdelijke notificatie voor bezoek dat aangemeld is in Toren C van het
|
|
-- SNS Reaal gebouw
|
|
--
|
|
------------------------------------------------------------------------------------
|
|
|
|
CREATE OR REPLACE VIEW pnbr_v_rap_bezoekers_c_toren
|
|
(
|
|
hide_f_ts,
|
|
locatie,
|
|
datum,
|
|
van,
|
|
tot,
|
|
bezoeker,
|
|
bedrijf,
|
|
opdrachtgever,
|
|
telefoon,
|
|
opmerking
|
|
)
|
|
AS
|
|
SELECT TO_CHAR (bez_afspraak_datum, 'yyyymmddhh24mi') ts,
|
|
l.alg_locatie_code,
|
|
TO_CHAR (bez_afspraak_datum, 'dd-mm-yyyy') datum,
|
|
TO_CHAR (bez_afspraak_datum, 'hh24:mi') van,
|
|
TO_CHAR (bez_afspraak_eind, 'hh24:mi') tot,
|
|
bez_afspraak_naam bezoeker,
|
|
bez_afspraak_bedrijf bedrijf,
|
|
bez_afspraak_gastheer opdrachtgever,
|
|
h.prs_perslid_telefoonnr telefoon,
|
|
a.bez_afspraak_opmerking opmerking
|
|
FROM bez_afspraak a,
|
|
bez_bezoekers b,
|
|
prs_perslid h,
|
|
alg_locatie l
|
|
WHERE a.bez_afspraak_key = b.bez_afspraak_key
|
|
AND a.alg_locatie_key = 221
|
|
AND a.alg_locatie_key = l.alg_locatie_key
|
|
AND bez_afspraak_host_key = h.prs_perslid_key
|
|
AND bez_afspraak_datum BETWEEN TRUNC (SYSDATE)
|
|
AND fac.datumtijdplusuitvoertijd (
|
|
TRUNC (SYSDATE),
|
|
2,
|
|
'DAGEN');
|
|
|
|
-- notificatie naar medewerkers van SNS Reaal over bezoekers voor vandaag en volgende werkdag.
|
|
|
|
CREATE OR REPLACE VIEW pnbr_v_noti_bezoekers_c_toren
|
|
(
|
|
code,
|
|
sender,
|
|
receiver,
|
|
text,
|
|
key,
|
|
xkey
|
|
)
|
|
AS
|
|
SELECT 'FACUSR',
|
|
NULL,
|
|
23044,
|
|
'PNB Bezoekers voor vandaag en eerstvolgende werkdag',
|
|
681,
|
|
NULL
|
|
FROM DUAL;
|
|
|
|
CREATE OR REPLACE VIEW PNBR_V_RAP_FAQMLD_VERVALLEN
|
|
(
|
|
Kennisbankitem,
|
|
Publicatiedatum,
|
|
FCLT_F_Vakgroep,
|
|
FCLT_F_Melding,
|
|
Vervaldatum,
|
|
Verwijderdatum
|
|
)
|
|
AS
|
|
SELECT fac_faq_question
|
|
kennisbankitem,
|
|
fac_faq_datum
|
|
publicatiedatum,
|
|
ins_srtdiscipline_prefix || '-' || ins_discipline_omschrijving
|
|
vakgroep,
|
|
mld_stdmelding_omschrijving
|
|
melding,
|
|
mld_stdmelding_vervaldatum
|
|
vervaldatum,
|
|
mld_stdmelding_verwijder
|
|
verwijderdatum
|
|
FROM fac_faq f,
|
|
mld_stdmeldingfaq fm,
|
|
mld_stdmelding std,
|
|
mld_discipline d,
|
|
ins_srtdiscipline srt
|
|
WHERE f.fac_faq_key = fm.fac_faq_key
|
|
AND fm.mld_stdmelding_key = std.mld_stdmelding_key
|
|
AND std.mld_ins_discipline_key = d.ins_discipline_key
|
|
AND srt.ins_srtdiscipline_key = d.ins_srtdiscipline_key
|
|
AND ( std.mld_stdmelding_verwijder IS NOT NULL
|
|
OR std.mld_stdmelding_vervaldatum < SYSDATE)
|
|
UNION ALL
|
|
SELECT fac_faq_question
|
|
vraag,
|
|
fac_faq_datum
|
|
publicatiedatum,
|
|
ins_srtdiscipline_prefix || '-' || ins_discipline_omschrijving
|
|
vakgroep,
|
|
NULL
|
|
melding,
|
|
NULL
|
|
vervaldatum,
|
|
d.ins_discipline_verwijder
|
|
verwijderdatum
|
|
FROM fac_faq f,
|
|
mld_stdmeldingfaq fm,
|
|
mld_discipline d,
|
|
ins_srtdiscipline srt
|
|
WHERE f.fac_faq_key = fm.fac_faq_key
|
|
AND srt.ins_srtdiscipline_key = d.ins_srtdiscipline_key
|
|
AND d.ins_discipline_key = fm.ins_discipline_key
|
|
AND fm.mld_stdmelding_key IS NULL
|
|
AND d.ins_discipline_verwijder IS NOT NULL;
|
|
|
|
-- PNBR#31166. De MLDNEW notificatie staat uit.
|
|
-- Toch moet de melding controle email adres (3941) wel worden genotificeerd
|
|
|
|
CREATE OR REPLACE VIEW PNBR_V_NOTI_MLD_CONTROLEMAIL
|
|
(
|
|
SENDER,
|
|
RECEIVER,
|
|
TEXT,
|
|
CODE,
|
|
KEY,
|
|
XKEY
|
|
)
|
|
AS
|
|
SELECT NULL sender,
|
|
prs_perslid_key_voor,
|
|
'Nieuwe melding '
|
|
|| ins_srtdiscipline_prefix
|
|
|| '-'
|
|
|| mld_melding_key
|
|
|| ' ('
|
|
|| d.ins_discipline_omschrijving
|
|
|| '/'
|
|
|| std.mld_stdmelding_omschrijving
|
|
|| ') geregistreerd' text,
|
|
'MLDNEW' code,
|
|
mld_melding_key key,
|
|
NULL xkey
|
|
FROM mld_melding m,
|
|
mld_stdmelding std,
|
|
mld_discipline d,
|
|
ins_srtdiscipline srt
|
|
WHERE m.mld_stdmelding_key = 3941
|
|
AND mld_melding_status != 1
|
|
AND m.mld_stdmelding_key = std.mld_stdmelding_key
|
|
AND d.ins_discipline_key = std.mld_ins_discipline_key
|
|
AND d.ins_srtdiscipline_key = srt.ins_srtdiscipline_key
|
|
AND mld_melding_datum >
|
|
(SELECT fac_notificatie_job_nextrun
|
|
- fac_notificatie_job_interval / 24
|
|
FROM fac_notificatie_job
|
|
WHERE fac_notificatie_job_view =
|
|
'PNBR_V_NOTI_MLD_CONTROLEMAIL')
|
|
AND mld_melding_datum <
|
|
(SELECT fac_notificatie_job_nextrun
|
|
FROM fac_notificatie_job
|
|
WHERE fac_notificatie_job_view =
|
|
'PNBR_V_NOTI_MLD_CONTROLEMAIL');
|
|
|
|
-- PNBR#31533 - notijob tbv voorraadbehher
|
|
-- Als de minimale voorrraad van een artikel is behaald dan wordt een CUST05 notificatie verstuurd naar de groep LOGISTIEK VOORRAAD.
|
|
|
|
CREATE OR REPLACE VIEW PNBR_V_NOTI_BES_VOORRAAD
|
|
(
|
|
SENDER,
|
|
RECEIVER,
|
|
TEXT,
|
|
CODE,
|
|
KEY,
|
|
XKEY
|
|
)
|
|
AS
|
|
SELECT NULL,
|
|
prs.prs_perslid_key,
|
|
'Herinnering: Minimale voorraad ('
|
|
|| vmin
|
|
|| ') van artikel '
|
|
|| artikel
|
|
|| ' (nr. '
|
|
|| nr
|
|
|| ') is bereikt',
|
|
'CUST05',
|
|
bst.bes_key,
|
|
NULL
|
|
FROM (SELECT extern.dkey,
|
|
extern.bes_srtdeel_nr nr,
|
|
intern.bes_srtdeel_key,
|
|
COALESCE (intern.bes_srtdeel_omschrijving,
|
|
extern.bes_srtdeel_omschrijving) artikel,
|
|
extern.vmin,
|
|
extern.geleverd - COALESCE (intern.besteld, 0) voorraad
|
|
FROM (SELECT bd.ins_discipline_key dkey, -- INKOOP-key
|
|
sd.bes_srtdeel_nr, -- ext. artikelnr
|
|
sd.bes_srtdeel_omschrijving,
|
|
sd.bes_srtdeel_voorraadmin vmin, -- ext. voorraadmin
|
|
(SELECT SUM (boi.bes_bestelopdr_item_aantalontv)
|
|
FROM bes_bestelling b,
|
|
bes_bestelling_item bi,
|
|
bes_bestelopdr_item boi
|
|
WHERE -- boi.bes_bestelopdr_item_status in (6,7) AND
|
|
b.bes_bestelling_key =
|
|
bi.bes_bestelling_key
|
|
AND boi.bes_bestelopdr_item_key =
|
|
bi.bes_bestelopdr_item_key
|
|
AND bi.bes_srtdeel_key =
|
|
sd.bes_srtdeel_key) geleverd
|
|
FROM bes_srtdeel sd,
|
|
bes_srtgroep g,
|
|
bes_discipline bd,
|
|
bes_disc_params dp
|
|
WHERE sd.bes_srtdeel_verwijder IS NULL
|
|
AND sd.bes_srtgroep_key = g.bes_srtgroep_key
|
|
AND g.ins_discipline_key = bd.ins_discipline_key
|
|
AND bd.ins_discipline_key =
|
|
dp.bes_ins_discipline_key
|
|
AND dp.bes_ins_discipline_key_inkoop IS NULL
|
|
AND bd.ins_discipline_key IN
|
|
(SELECT bes_ins_discipline_key_inkoop
|
|
FROM bes_disc_params
|
|
WHERE bes_ins_discipline_key_inkoop
|
|
IS NOT NULL)) extern -- Inkoop artikelen uit externe catalogus!
|
|
FULL JOIN
|
|
(SELECT dp.bes_ins_discipline_key_inkoop dkey, -- INKOOP-key
|
|
sd.bes_srtdeel_key,
|
|
sd.bes_srtdeel_nr, -- int. artikelnr
|
|
sd.bes_srtdeel_omschrijving,
|
|
bd.ins_discipline_omschrijving, -- int. catalogusnaam
|
|
(SELECT SUM (
|
|
COALESCE (
|
|
boi.bes_bestelopdr_item_aantal,
|
|
bi.bes_bestelling_item_aantal))
|
|
FROM bes_bestelling b,
|
|
bes_bestelling_item bi,
|
|
bes_bestelopdr_item boi
|
|
WHERE boi.bes_bestelopdr_item_key(+) =
|
|
bi.bes_bestelopdr_item_key
|
|
AND b.bes_bestelling_key =
|
|
bi.bes_bestelling_key
|
|
AND bi.bes_srtdeel_key =
|
|
sd.bes_srtdeel_key) besteld
|
|
FROM bes_srtdeel sd,
|
|
bes_srtgroep g,
|
|
bes_discipline bd,
|
|
bes_disc_params dp
|
|
WHERE sd.bes_srtdeel_verwijder IS NULL
|
|
AND sd.bes_srtgroep_key = g.bes_srtgroep_key
|
|
AND g.ins_discipline_key = bd.ins_discipline_key
|
|
AND bd.ins_discipline_key =
|
|
dp.bes_ins_discipline_key
|
|
AND dp.bes_ins_discipline_key_inkoop IS NOT NULL)
|
|
intern -- Verkoop artikelen uit interne catalogus!
|
|
ON extern.dkey = intern.dkey
|
|
AND extern.bes_srtdeel_nr = intern.bes_srtdeel_nr)
|
|
vrd,
|
|
( SELECT MAX (bes_bestelling_datum) bes_dat,
|
|
MAX (b.bes_bestelling_key) bes_key,
|
|
bes_srtdeel_key
|
|
FROM bes_bestelling b, bes_bestelling_item bi
|
|
WHERE b.bes_bestelling_key = bi.bes_bestelling_key
|
|
AND b.bes_bestelling_datum > SYSDATE - 90
|
|
GROUP BY bes_srtdeel_key) bst,
|
|
(SELECT p.prs_perslid_key
|
|
FROM fac_groep fg, fac_gebruikersgroep fgg, prs_perslid p
|
|
WHERE fac_groep_upper = 'LOGISTIEK VOORRAAD'
|
|
AND fg.fac_groep_key = fgg.fac_groep_key
|
|
AND p.prs_perslid_key = fgg.prs_perslid_key
|
|
AND p.prs_perslid_verwijder IS NULL) prs
|
|
WHERE vrd.bes_srtdeel_key = bst.bes_srtdeel_key
|
|
AND vrd.vmin >= vrd.voorraad
|
|
AND bst.bes_dat >
|
|
(SELECT fac_notificatie_job_nextrun
|
|
- fac_notificatie_job_interval / 24
|
|
FROM fac_notificatie_job
|
|
WHERE fac_notificatie_job_view = 'PNBR_V_NOTI_BES_VOORRAAD')
|
|
AND bst.bes_dat <
|
|
(SELECT fac_notificatie_job_nextrun
|
|
FROM fac_notificatie_job
|
|
WHERE fac_notificatie_job_view = 'PNBR_V_NOTI_BES_VOORRAAD');
|
|
|
|
-- PNBR#35208 backoffice gebak reminder (autorisatiegroep hutten = key 101)
|
|
-- als er nieuwe (status gefiatteerd = key 3) gebak aanvragen (=2161) zijn
|
|
-- PNBR# 35590 backoffice gebak bestellen omgezet van bestelling naar reservering
|
|
-- cateraar krijgt een dag van te voren bericht als er gebakbestelling voor 'morgen' zijn
|
|
-- gefilterd op ccatalogi van bakkers Hutten (2342), Vermeulen (2341) en De Rouw (2343)
|
|
|
|
CREATE OR REPLACE FORCE VIEW PNBR_V_NOTI_BES_BOGEBREMINDER
|
|
(
|
|
CODE,
|
|
SENDER,
|
|
RECEIVER,
|
|
TEXT,
|
|
KEY,
|
|
PAR1,
|
|
PAR2,
|
|
XKEY
|
|
)
|
|
AS
|
|
SELECT 'CUST06',
|
|
NULL,
|
|
prs_perslid_key,
|
|
'Let op: er zijn ' || aantal || ' gebakbestelregels voor morgen',
|
|
res_artikel_key,
|
|
NULL,
|
|
NULL,
|
|
NULL
|
|
FROM (SELECT COUNT (*) aantal, MAX (res_artikel_key) res_artikel_key
|
|
FROM ( SELECT rsv.res_artikel_key
|
|
FROM RES_V_AANWEZIGRSV_ARTIKEL rsv, RES_ARTIKEL a
|
|
WHERE A.RES_ARTIKEL_KEY = RSV.RES_ARTIKEL_KEY
|
|
AND A.RES_DISCIPLINE_KEY IN (2342, 2341, 2343)
|
|
AND TRUNC (rsv.res_rsv_artikel_levering) =
|
|
TRUNC (SYSDATE) + 1
|
|
GROUP BY rsv.res_artikel_key)
|
|
HAVING COUNT (*) > 0) x,
|
|
(SELECT p.prs_perslid_key
|
|
FROM fac_gebruikersgroep fg, prs_perslid p
|
|
WHERE fac_groep_key = 101
|
|
AND p.prs_perslid_key = fg.prs_perslid_key
|
|
AND p.prs_perslid_verwijder IS NULL
|
|
AND p.prs_perslid_email IS NOT NULL
|
|
AND p.prs_perslid_oslogin IS NOT NULL) y;
|
|
|
|
CREATE OR REPLACE FORCE VIEW PNBR_V_RAP_GEBAKBESTELLING
|
|
(
|
|
LEVERANCIER,
|
|
ARTIKEL,
|
|
EENHEID,
|
|
PRIJS,
|
|
AANTAL,
|
|
TOTAAL,
|
|
LEVERDATUM,
|
|
KOSTENPLAATS,
|
|
OMSCHR_KOSTENPLAATS,
|
|
MEDEWERKER,
|
|
HTML_BESTELNUMMER,
|
|
NOTITIE,
|
|
ZAKELIJK_PRIVE,
|
|
RESERVERINGNR
|
|
)
|
|
AS
|
|
SELECT D.INS_DISCIPLINE_OMSCHRIJVING
|
|
AS Leverancier,
|
|
A.RES_ARTIKEL_OMSCHRIJVING
|
|
AS Artikel,
|
|
A.RES_ARTIKEL_EENHEID
|
|
AS Eenheid,
|
|
A.RES_ARTIKEL_PRIJS
|
|
AS Prijs,
|
|
RA.RES_RSV_ARTIKEL_AANTAL
|
|
AS Aantal,
|
|
RA.RES_RSV_ARTIKEL_LEVERING
|
|
AS Leverdatum,
|
|
COALESCE (A.RES_ARTIKEL_PRIJS, 0) * RA.RES_RSV_ARTIKEL_AANTAL,
|
|
KP.PRS_KOSTENPLAATS_NR
|
|
AS Kostenplaats,
|
|
KP.PRS_KOSTENPLAATS_OMSCHRIJVING
|
|
AS Omschr_kostenplaats,
|
|
P.PRS_PERSLID_NAAM_FRIENDLY
|
|
AS Medewerker,
|
|
'<a class="details" onclick=''FcltMgr.openDetail("appl/res/res_reservering.asp?urole=fo&'
|
|
|| 'rsv_ruimte_key='
|
|
|| rr.res_rsv_ruimte_key
|
|
|| '")''>'
|
|
|| rr.res_reservering_key
|
|
|| '/'
|
|
|| res_rsv_ruimte_volgnr
|
|
|| '</a>'
|
|
AS html_Bestelnummer,
|
|
RR.RES_RSV_RUIMTE_OPMERKING,
|
|
(SELECT ud.fac_usrdata_omschr
|
|
FROM res_kenmerkwaarde rk, fac_usrdata ud
|
|
WHERE rk.res_kenmerk_key = 262
|
|
AND ud.fac_usrtab_key = 1943 -- kenmerk + usertab zakelijk of prive
|
|
AND ud.fac_usrdata_key =
|
|
fac.safe_to_number (rk.res_kenmerkreservering_waarde)
|
|
AND rk.res_rsv_ruimte_key = rr.res_rsv_ruimte_key)
|
|
zakpriv,
|
|
RR.RES_RESERVERING_KEY || '/' || res_rsv_ruimte_volgnr
|
|
FROM res_rsv_artikel ra,
|
|
res_artikel a,
|
|
res_rsv_ruimte rr,
|
|
prs_kostenplaats kp,
|
|
PRS_V_PERSLID_FULLNAMES_ALL P,
|
|
res_activiteitdiscipline AD,
|
|
ins_tab_discipline d
|
|
WHERE A.RES_ARTIKEL_KEY = RA.RES_ARTIKEL_KEY
|
|
AND A.RES_DISCIPLINE_KEY IN (2342, 2341, 2343)
|
|
AND RA.RES_RSV_RUIMTE_KEY = RR.RES_RSV_RUIMTE_KEY
|
|
AND RR.PRS_KOSTENPLAATS_KEY = kp.prs_kostenplaats_key
|
|
AND RR.RES_RSV_RUIMTE_HOST_KEY = P.PRS_PERSLID_KEY
|
|
AND AD.RES_DISCIPLINE_KEY = A.RES_DISCIPLINE_KEY
|
|
AND AD.RES_DISCIPLINE_KEY = D.INS_DISCIPLINE_KEY
|
|
AND RR.RES_RSV_RUIMTE_VERWIJDER IS NULL
|
|
AND RA.RES_RSV_ARTIKEL_AFGEMELD IS NULL
|
|
AND RA.RES_RSV_ARTIKEL_VERWIJDER IS NULL;
|
|
|
|
-- Rapportage inzicht in welke meldingen autgroep Servicedesk (key 253) registreerd (key 39)
|
|
-- en welke meldingen autgroep Servicedesk (key 253) afmeld (key 35)
|
|
|
|
CREATE OR REPLACE VIEW mld_v_udr_mld_actiegroep
|
|
(
|
|
melding_key,
|
|
registratie_datum,
|
|
geregistreerd_door,
|
|
registratie_autorisatiegroep,
|
|
afmeld_datum,
|
|
afgemeld_door,
|
|
afmeld_autorisatiegroep,
|
|
zelfservice,
|
|
meldingnummer,
|
|
locatiecode,
|
|
locatie_omschrijving,
|
|
gebouwcode,
|
|
gebouw_omschrijving,
|
|
verdieping,
|
|
ruimtenr,
|
|
ruimte_omschrijving,
|
|
melder,
|
|
afdeling,
|
|
afdeling_omschrijving,
|
|
vakgroeptype,
|
|
vakgroep,
|
|
standaard_melding,
|
|
melding_datum,
|
|
melding_einddatum,
|
|
omschrijving,
|
|
status
|
|
)
|
|
AS
|
|
SELECT mld_melding_key,
|
|
tr2.fac_tracking_datum
|
|
registratie_datum,
|
|
(SELECT prs_perslid_naam_full
|
|
FROM prs_v_perslid_fullnames_all pf
|
|
WHERE pf.prs_perslid_key = tr2.prs_perslid_key)
|
|
geregistreerd_door,
|
|
tr2.groep
|
|
registratie_autorisatiegroep,
|
|
tr.fac_tracking_datum
|
|
afmeld_datum,
|
|
(SELECT prs_perslid_naam_full
|
|
FROM prs_v_perslid_fullnames_all pf
|
|
WHERE pf.prs_perslid_key = tr.prs_perslid_key)
|
|
afgemeld_door,
|
|
tr.groep
|
|
afmeld_autorisatiegroep,
|
|
DECODE (tr2.prs_perslid_key, m.prs_perslid_key, 'Ja', 'Nee')
|
|
zelfservice,
|
|
sd.ins_srtdiscipline_prefix || m.mld_melding_key
|
|
meldingnummer,
|
|
alg_locatie_code
|
|
locatie,
|
|
alg_locatie_omschrijving
|
|
locatie_omschrijving,
|
|
og.alg_gebouw_code
|
|
gebouw,
|
|
og.alg_gebouw_naam
|
|
gebouw_naam,
|
|
og.alg_verdieping_code
|
|
verdieping,
|
|
og.alg_ruimte_nr
|
|
ruimte,
|
|
og.alg_ruimte_omschrijving
|
|
ruimte_omschrijving,
|
|
(SELECT prs_perslid_naam_full
|
|
FROM prs_v_perslid_fullnames_all pf
|
|
WHERE pf.prs_perslid_key = m.prs_perslid_key_voor)
|
|
melder,
|
|
(SELECT prs_afdeling_naam
|
|
FROM prs_afdeling afd, prs_perslid pp
|
|
WHERE afd.prs_afdeling_key = pp.prs_afdeling_key
|
|
AND pp.prs_perslid_key = m.prs_perslid_key)
|
|
afdeling,
|
|
(SELECT prs_afdeling_omschrijving
|
|
FROM prs_afdeling afd, prs_perslid pp
|
|
WHERE afd.prs_afdeling_key = pp.prs_afdeling_key
|
|
AND pp.prs_perslid_key = m.prs_perslid_key)
|
|
afdeling_omschrijving,
|
|
sd.ins_srtdiscipline_omschrijving
|
|
vakgroeptype,
|
|
md.ins_discipline_omschrijving
|
|
vakgroep,
|
|
s.mld_stdmelding_omschrijving
|
|
standaard_melding,
|
|
mld_melding_datum,
|
|
m.mld_melding_einddatum
|
|
einddatum,
|
|
mld_melding_omschrijving,
|
|
(SELECT mld_statuses_omschrijving
|
|
FROM mld_statuses sta
|
|
WHERE sta.mld_statuses_key = m.mld_melding_status)
|
|
status
|
|
FROM mld_melding m,
|
|
alg_v_allonrgoed_gegevens og,
|
|
alg_locatie l,
|
|
mld_discipline md,
|
|
mld_stdmelding s,
|
|
ins_srtdiscipline sd,
|
|
(SELECT 'Afgemeld' afgemeld,
|
|
fac_tracking_refkey,
|
|
fac_tracking_datum,
|
|
track.prs_perslid_key,
|
|
COALESCE (fac_groep_omschrijving, 'Anders') groep
|
|
FROM fac_tracking track,
|
|
(SELECT prs_perslid_key, fac_groep_omschrijving
|
|
FROM fac_groep g, fac_gebruikersgroep gg
|
|
WHERE g.fac_groep_key = 253
|
|
AND g.fac_groep_key = gg.fac_groep_key) auth
|
|
WHERE fac_srtnotificatie_key = 35
|
|
AND auth.prs_perslid_key(+) = track.prs_perslid_key) tr,
|
|
(SELECT 'Geregistreerd' geregistreerd,
|
|
fac_tracking_refkey,
|
|
fac_tracking_datum,
|
|
track.prs_perslid_key,
|
|
COALESCE (fac_groep_omschrijving, 'Anders') groep
|
|
FROM fac_tracking track,
|
|
(SELECT prs_perslid_key, fac_groep_omschrijving
|
|
FROM fac_groep g, fac_gebruikersgroep gg
|
|
WHERE g.fac_groep_key = 253
|
|
AND g.fac_groep_key = gg.fac_groep_key) auth
|
|
WHERE fac_srtnotificatie_key = 39
|
|
AND auth.prs_perslid_key(+) = track.prs_perslid_key) tr2
|
|
WHERE m.mld_alg_locatie_key = l.alg_locatie_key(+)
|
|
AND m.mld_alg_onroerendgoed_keys = og.alg_onroerendgoed_keys(+)
|
|
AND s.mld_stdmelding_key = m.mld_stdmelding_key
|
|
AND md.ins_discipline_key = s.mld_ins_discipline_key
|
|
AND sd.ins_srtdiscipline_key = md.ins_srtdiscipline_key
|
|
AND fac_activiteit_key IS NULL
|
|
AND tr.fac_tracking_refkey(+) = m.mld_melding_key
|
|
AND tr2.fac_tracking_refkey(+) = m.mld_melding_key;
|
|
|
|
--- PNBR#36004 Functie voor het 'uitlezen' van de mail body vanuit SAP voor een 'Choose Your Own Device' aanvraag
|
|
|
|
CREATE OR REPLACE FUNCTION pnbr_get_html_value (p_text IN VARCHAR2,
|
|
p_start IN VARCHAR2)
|
|
RETURN VARCHAR2
|
|
AS
|
|
v_pos NUMBER;
|
|
v_pos_begin NUMBER;
|
|
v_pos_eind NUMBER;
|
|
v_result VARCHAR2 (4000);
|
|
v_lb VARCHAR2 (2);
|
|
BEGIN
|
|
-- Wat gebruiken we als linebreak
|
|
IF INSTR (p_text, CHR (13) || CHR (10)) <> 0
|
|
THEN
|
|
v_lb := CHR (13) || CHR (10);
|
|
DBMS_OUTPUT.put_line ('1310');
|
|
ELSIF INSTR (p_text, CHR (10) || CHR (13)) <> 0
|
|
THEN
|
|
v_lb := CHR (10) || CHR (13);
|
|
DBMS_OUTPUT.put_line ('1013');
|
|
ELSIF INSTR (p_text, CHR (10) || CHR (10)) <> 0
|
|
THEN
|
|
v_lb := CHR (10) || CHR (10);
|
|
DBMS_OUTPUT.put_line ('1010');
|
|
END IF;
|
|
|
|
-- Controleer of de begintag aanwezig is. Zo nee, dan hebben we niets te tonen.
|
|
-- Bepaal de positie waar de opgegeven start tekst begint
|
|
v_pos := INSTR (p_text, p_start);
|
|
|
|
-- Als de opgegeven start tekst niet gevonden wordt dan is v_pos 0
|
|
IF v_pos = 0
|
|
THEN
|
|
RETURN NULL;
|
|
END IF;
|
|
|
|
-- Bij pnbr staat de beginpositie op dezelfde regel.
|
|
-- De beginpositie wordt bepaald door startpositie van de opgegeven start tekst Personeelsnummer de lengte van de starttekst + carriage return (CHR13) + linefeed (CHR10)
|
|
v_pos_begin := INSTR (p_text, v_lb || p_start) + LENGTH (p_start) + 2;
|
|
|
|
--- Eind positie is altijd einde van de regel
|
|
v_pos_eind :=
|
|
INSTR (p_text,
|
|
v_lb,
|
|
v_pos_begin,
|
|
1);
|
|
|
|
-- v_result is alles vanaf de startpositie tot aan het einde
|
|
v_result := SUBSTR (p_text, v_pos_begin, v_pos_eind - v_pos_begin);
|
|
|
|
-- Soms wordt een tag niet gevonden. Dan wordt de hele body inclusief CSS meegestuurd.
|
|
-- Dat willen we natuurlijk niet. Daarom maken we daar maar een lege tag van.
|
|
IF LENGTH (v_result) > 1000
|
|
THEN
|
|
v_result := p_start;
|
|
END IF;
|
|
|
|
RETURN v_result;
|
|
END;
|
|
/
|
|
|
|
|
|
-- PNBR#36004 Procedure voor het verwerken van 'Choose Your Own Device' aanvraag vanuit SAP
|
|
|
|
CREATE OR REPLACE PROCEDURE pnbr_processemail (pfrom IN VARCHAR2,
|
|
pto IN VARCHAR2,
|
|
psubject IN VARCHAR2,
|
|
pbody IN VARCHAR2,
|
|
psessionid IN VARCHAR2,
|
|
pemailkey IN NUMBER)
|
|
AS
|
|
sender prs_perslid.prs_perslid_key%TYPE;
|
|
persnr prs_perslid.prs_perslid_nr%TYPE;
|
|
kostenplaats prs_afdeling.prs_kostenplaats_key%TYPE;
|
|
v_mldkey mld_melding.mld_melding_key%TYPE;
|
|
defaultstdmelding fac_setting.fac_setting_default%TYPE;
|
|
errormsg fac_result.fac_result_waarde%TYPE;
|
|
v_soort_aanvraag VARCHAR2 (50);
|
|
v_model_omschrijving VARCHAR2 (2000); -- 40
|
|
v_plus_standaard VARCHAR2 (2000); -- 30
|
|
v_eigen_bijdrage VARCHAR2 (2000); -- 8
|
|
v_from VARCHAR2 (1000);
|
|
v_mld_meldbron_key NUMBER (10);
|
|
v_hint VARCHAR2 (1000);
|
|
BEGIN
|
|
-- Choose Your Own Device aanvragen vanuit SAP naar mld_stdmelding_key 7441 (Tablet) of mld_stdmelding_key 7442 (Telefoon)
|
|
v_soort_aanvraag :=
|
|
pnbr_get_html_value (pbody, 'Soort Choose Your Own : ');
|
|
v_hint := 'sa:' || v_soort_aanvraag;
|
|
|
|
IF v_soort_aanvraag = 'Tablet'
|
|
THEN
|
|
defaultstdmelding := '7721';
|
|
END IF;
|
|
|
|
IF v_soort_aanvraag = 'Telefoon'
|
|
THEN
|
|
defaultstdmelding := '7701';
|
|
END IF;
|
|
|
|
v_hint := v_hint || '-std:' || defaultstdmelding;
|
|
-- Meldbron = SAP, dus systeem = 6
|
|
v_mld_meldbron_key := 6;
|
|
|
|
-- Bij PNBR is de melder terug te halen uit de body van de email obv personeelsnummer aanvrager
|
|
-- Op basis van dit personeelsnummer kan de melder en de kostenplaats bepaald worden
|
|
persnr := pnbr_get_html_value (pbody, 'Personeelsnummer aanvrager : ');
|
|
v_hint := v_hint || '-pnr:' || persnr;
|
|
|
|
SELECT prs_perslid_key, d.prs_kostenplaats_key
|
|
INTO sender, kostenplaats
|
|
FROM prs_perslid p, prs_afdeling d
|
|
WHERE p.prs_afdeling_key = d.prs_afdeling_key
|
|
AND prs_perslid_nr = persnr
|
|
AND prs_perslid_verwijder IS NULL;
|
|
|
|
v_hint := v_hint || '-pk:' || sender;
|
|
v_hint := v_hint || '-kp:' || kostenplaats;
|
|
-- Bepaal de kenmerkwaarden die bij de melding moeten worden weggeschreven
|
|
v_model_omschrijving :=
|
|
pnbr_get_html_value (pbody, 'Model omschrijving : ');
|
|
v_plus_standaard :=
|
|
pnbr_get_html_value (pbody, 'Plus/standaard model : ');
|
|
v_eigen_bijdrage := pnbr_get_html_value (pbody, 'Eigen bijdrage : ');
|
|
|
|
-- Registreer de melding in Facilitor
|
|
BEGIN
|
|
INSERT INTO mld_melding (mld_melding_module,
|
|
mld_meldbron_key,
|
|
mld_melding_datum,
|
|
mld_alg_locatie_key,
|
|
mld_melding_omschrijving,
|
|
mld_melding_status,
|
|
mld_stdmelding_key,
|
|
prs_perslid_key,
|
|
prs_perslid_key_voor,
|
|
prs_kostenplaats_key,
|
|
mld_melding_spoed)
|
|
VALUES (
|
|
'MLD',
|
|
v_mld_meldbron_key,
|
|
SYSDATE,
|
|
2, -- Provinciehuis Provincie Noord Brabant, alg_locatie_key=2
|
|
SUBSTR (
|
|
psubject
|
|
|| CHR (13)
|
|
|| REPLACE (
|
|
SUBSTR (pbody, 1, 4000 - (LENGTH (psubject) + 2)),
|
|
CHR (13) || CHR (10) || CHR (13) || CHR (10),
|
|
CHR (13) || CHR (10)),
|
|
1,
|
|
4000), -- verwijder onnodige witregels
|
|
NULL,
|
|
defaultstdmelding,
|
|
sender,
|
|
sender,
|
|
kostenplaats,
|
|
3)
|
|
RETURNING mld_melding_key
|
|
INTO v_mldkey;
|
|
|
|
BEGIN
|
|
-- Vullen van kenmerk Model omschrijving (key = 9564) voor CYO aanvraag tablet (mld_key 7441)
|
|
IF v_model_omschrijving IS NOT NULL
|
|
AND defaultstdmelding = '7721'
|
|
THEN
|
|
INSERT INTO mld_kenmerkmelding (mld_melding_key,
|
|
mld_kenmerk_key,
|
|
mld_kenmerkmelding_waarde)
|
|
VALUES (v_mldkey,
|
|
9564,
|
|
SUBSTR (v_model_omschrijving, 1, 40));
|
|
END IF;
|
|
EXCEPTION
|
|
WHEN OTHERS
|
|
THEN
|
|
fac.writelog (
|
|
'PROCESSEMAIL',
|
|
'W',
|
|
'Veld Model omschrijving (key = 9564) kon niet opgeslagen worden.',
|
|
SUBSTR (v_model_omschrijving, 1, 100));
|
|
END;
|
|
|
|
BEGIN
|
|
-- Vullen van kenmerk Plus/standaard (key = 9565) voor CYO aanvraag tablet (mld_key 7441)
|
|
IF v_plus_standaard IS NOT NULL AND defaultstdmelding = '7721'
|
|
THEN
|
|
INSERT INTO mld_kenmerkmelding (mld_melding_key,
|
|
mld_kenmerk_key,
|
|
mld_kenmerkmelding_waarde)
|
|
VALUES (v_mldkey,
|
|
9565,
|
|
SUBSTR (v_plus_standaard, 1, 30));
|
|
END IF;
|
|
EXCEPTION
|
|
WHEN OTHERS
|
|
THEN
|
|
fac.writelog (
|
|
'PROCESSEMAIL',
|
|
'W',
|
|
'Veld Plus/standaard (key = 9565) kon niet opgeslagen worden.',
|
|
SUBSTR (v_plus_standaard, 1, 100));
|
|
END;
|
|
|
|
BEGIN
|
|
-- Vullen van kenmerk Eigen bijdrag (key = 9566) voor CYO aanvraag tablet (mld_key 7441)
|
|
IF v_eigen_bijdrage IS NOT NULL AND defaultstdmelding = '7721'
|
|
THEN
|
|
INSERT INTO mld_kenmerkmelding (mld_melding_key,
|
|
mld_kenmerk_key,
|
|
mld_kenmerkmelding_waarde)
|
|
VALUES (v_mldkey, 9566, SUBSTR (v_eigen_bijdrage, 1, 8));
|
|
END IF;
|
|
EXCEPTION
|
|
WHEN OTHERS
|
|
THEN
|
|
fac.writelog (
|
|
'PROCESSEMAIL',
|
|
'W',
|
|
'Veld Eigen bijdrag (key = 9566) kon niet opgeslagen worden.',
|
|
SUBSTR (v_eigen_bijdrage, 1, 100));
|
|
END;
|
|
|
|
BEGIN
|
|
-- Vullen van kenmerk Model omschrijving (key = 9561) voor CYO aanvraag telefoon (mld_key 7442)
|
|
IF v_model_omschrijving IS NOT NULL
|
|
AND defaultstdmelding = '7701'
|
|
THEN
|
|
INSERT INTO mld_kenmerkmelding (mld_melding_key,
|
|
mld_kenmerk_key,
|
|
mld_kenmerkmelding_waarde)
|
|
VALUES (v_mldkey,
|
|
9561,
|
|
SUBSTR (v_model_omschrijving, 1, 40));
|
|
END IF;
|
|
EXCEPTION
|
|
WHEN OTHERS
|
|
THEN
|
|
fac.writelog (
|
|
'PROCESSEMAIL',
|
|
'W',
|
|
'Veld Model omschrijving (key = 9561) kon niet opgeslagen worden.',
|
|
SUBSTR (v_model_omschrijving, 1, 100));
|
|
END;
|
|
|
|
BEGIN
|
|
-- Vullen van kenmerk Plus/standaard (key = 9562) voor CYO aanvraag telefoon (mld_key 7442)
|
|
IF v_plus_standaard IS NOT NULL AND defaultstdmelding = '7701'
|
|
THEN
|
|
INSERT INTO mld_kenmerkmelding (mld_melding_key,
|
|
mld_kenmerk_key,
|
|
mld_kenmerkmelding_waarde)
|
|
VALUES (v_mldkey,
|
|
9562,
|
|
SUBSTR (v_plus_standaard, 1, 30));
|
|
END IF;
|
|
EXCEPTION
|
|
WHEN OTHERS
|
|
THEN
|
|
fac.writelog (
|
|
'PROCESSEMAIL',
|
|
'W',
|
|
'Veld Plus/standaard (key = 9562) kon niet opgeslagen worden.',
|
|
SUBSTR (v_plus_standaard, 1, 100));
|
|
END;
|
|
|
|
BEGIN
|
|
-- Vullen van kenmerk Eigen bijdrag (key = 9563) voor CYO aanvraag telefoon (mld_key 7442)
|
|
IF v_eigen_bijdrage IS NOT NULL AND defaultstdmelding = '7701'
|
|
THEN
|
|
INSERT INTO mld_kenmerkmelding (mld_melding_key,
|
|
mld_kenmerk_key,
|
|
mld_kenmerkmelding_waarde)
|
|
VALUES (v_mldkey, 9563, SUBSTR (v_eigen_bijdrage, 1, 8));
|
|
END IF;
|
|
EXCEPTION
|
|
WHEN OTHERS
|
|
THEN
|
|
fac.writelog (
|
|
'PROCESSEMAIL',
|
|
'W',
|
|
'Veld Eigen bijdrag (key = 9563) kon niet opgeslagen worden.',
|
|
SUBSTR (v_eigen_bijdrage, 1, 100));
|
|
END;
|
|
|
|
mld.setmeldingstatus (v_mldkey, 2, sender);
|
|
|
|
INSERT INTO fac_result (fac_result_sessionid,
|
|
fac_result_naam,
|
|
fac_result_waarde)
|
|
VALUES (psessionid,
|
|
'maillog',
|
|
'Geregistreerd onder melding ' || v_mldkey);
|
|
END;
|
|
|
|
|
|
IF errormsg IS NOT NULL
|
|
THEN
|
|
INSERT INTO fac_result (fac_result_sessionid,
|
|
fac_result_naam,
|
|
fac_result_waarde)
|
|
VALUES (psessionid, 'errormsg', errormsg);
|
|
END IF;
|
|
EXCEPTION
|
|
WHEN OTHERS
|
|
THEN
|
|
fac.writelog (
|
|
'PROCESSEMAIL',
|
|
'W',
|
|
'Mail kon niet verwerkt worden afzender: '
|
|
|| pfrom
|
|
|| '['
|
|
|| errormsg
|
|
|| '-'
|
|
|| v_hint
|
|
|| ']',
|
|
'OTHERS (error '
|
|
|| SQLCODE
|
|
|| '/'
|
|
|| SUBSTR (SQLERRM, 1, 100)
|
|
|| ')');
|
|
|
|
-- bewaar ook even de mail die ontvangen is.
|
|
fac.writelog ('PROCESSEMAIL',
|
|
'I',
|
|
SUBSTR (pbody, 1, 900),
|
|
'');
|
|
|
|
INSERT INTO fac_result (fac_result_sessionid,
|
|
fac_result_naam,
|
|
fac_result_waarde)
|
|
VALUES (
|
|
psessionid,
|
|
'errormsg',
|
|
'Database fout - Neem contact op met uw systeembeheerder');
|
|
END;
|
|
/
|
|
|
|
-- view voor zoekfunctie op brain
|
|
|
|
CREATE OR REPLACE VIEW pnbr_v_rap_brain_search
|
|
AS
|
|
SELECT sd.ins_srtdiscipline_prefix,
|
|
sd.ins_srtdiscipline_omschrijving,
|
|
d.ins_discipline_omschrijving,
|
|
mld_stdmelding_omschrijving,
|
|
mld_stdmelding_hint,
|
|
'https://pnbr.facilitor.nl/?u=61EsxN5AJI2Yf4Dq&mld_defaultstdmelding='
|
|
|| mld_stdmelding_key facilitor_link
|
|
FROM mld_stdmelding std,
|
|
mld_discipline d,
|
|
ins_srtdiscipline sd,
|
|
fac_groeprechten gr
|
|
WHERE std.mld_ins_discipline_key = d.ins_discipline_key
|
|
AND d.ins_srtdiscipline_key = sd.ins_srtdiscipline_key
|
|
AND gr.ins_discipline_key = d.ins_discipline_key
|
|
AND gr.fac_functie_key = 2 -- MLDUSE
|
|
AND gr.fac_groep_key = 1 -- _default
|
|
AND std.mld_stdmelding_verwijder IS NULL
|
|
AND COALESCE (std.mld_stdmelding_notfrontend, 0) = 0;
|
|
|
|
|
|
--- Tbv eigen tabel met nog actieve kosten plaatsen
|
|
|
|
CREATE OR REPLACE VIEW PNBR_V_KOSTENPLAATSEN
|
|
(
|
|
PRS_KOSTENPLAATS_KEY,
|
|
PRS_KOSTENPLAATS,
|
|
PRS_KOSTENPLAATS_VERWIJDER
|
|
)
|
|
AS
|
|
SELECT prs_kostenplaats_key,
|
|
prs_kostenplaats_nr || ' - ' || prs_kostenplaats_omschrijving,
|
|
COALESCE (prs_kostenplaats_verwijder, prs_kostenplaats_eind)
|
|
FROM prs_kostenplaats k;
|
|
|
|
--- Overzicht met kunstuitleen tbv kenmerkdomein
|
|
|
|
CREATE OR REPLACE VIEW PNBR_V_KUNST_AANVRAGEN
|
|
(
|
|
MLD_MELDING_KEY,
|
|
MLD_MELDING_NUMMER
|
|
)
|
|
AS
|
|
SELECT m.mld_melding_key,
|
|
sd.ins_srtdiscipline_prefix || m.mld_melding_key
|
|
FROM mld_melding m,
|
|
mld_stdmelding sm,
|
|
ins_tab_discipline d,
|
|
ins_srtdiscipline sd
|
|
WHERE m.mld_stdmelding_key = 4201
|
|
AND m.mld_melding_status NOT IN (1, 5, 7)
|
|
AND m.mld_stdmelding_key = sm.mld_stdmelding_key
|
|
AND sm.mld_ins_discipline_key = d.ins_discipline_key
|
|
AND d.ins_srtdiscipline_key = sd.ins_srtdiscipline_key;
|
|
|
|
--- Portal menu item 'Kunst uitleen'
|
|
-- Overzicht 'KUNST: Kunstuitleen'
|
|
|
|
CREATE OR REPLACE VIEW PNBR_V_RAP_KUNST_UITLEEN
|
|
(
|
|
FCLT_F_OBJECT,
|
|
TECHNIEK,
|
|
ONDERWERP,
|
|
FCLT_F_KUNSTENAAR,
|
|
FCLT_F_TITEL,
|
|
MATERIAAL,
|
|
GESIGNEERD,
|
|
HOOGTE,
|
|
BREEDTE,
|
|
HTML_FOTO,
|
|
VERKRIJGINGSINFORMATIE,
|
|
TAXATIEWAARDE,
|
|
RUIMTE,
|
|
STATUS,
|
|
RESERVERING,
|
|
AANVRAAGNR,
|
|
STATUS_SELECTIE,
|
|
OBJECT_KEY
|
|
)
|
|
AS
|
|
SELECT o.ins_deel_omschrijving,
|
|
(SELECT fac_usrdata_omschr
|
|
FROM ins_kenmerkdeel ikd,
|
|
ins_kenmerk ik,
|
|
ins_srtkenmerk isk,
|
|
fac_kenmerkdomein kd,
|
|
fac_usrdata ud
|
|
WHERE ikd.ins_kenmerk_key = 107
|
|
AND ik.ins_kenmerk_key = ikd.ins_kenmerk_key
|
|
AND ik.ins_srtkenmerk_key = isk.ins_srtkenmerk_key
|
|
AND kd.fac_kenmerkdomein_key = isk.fac_kenmerkdomein_key
|
|
AND ud.fac_usrtab_key = kd.fac_usrtab_key
|
|
AND ikd.ins_kenmerkdeel_waarde = ud.fac_usrdata_key
|
|
AND o.ins_deel_key = ikd.ins_deel_key)
|
|
techniek,
|
|
(SELECT fac_usrdata_omschr
|
|
FROM ins_kenmerkdeel ikd,
|
|
ins_kenmerk ik,
|
|
ins_srtkenmerk isk,
|
|
fac_kenmerkdomein kd,
|
|
fac_usrdata ud
|
|
WHERE ikd.ins_kenmerk_key = 1382
|
|
AND ik.ins_kenmerk_key = ikd.ins_kenmerk_key
|
|
AND ik.ins_srtkenmerk_key = isk.ins_srtkenmerk_key
|
|
AND kd.fac_kenmerkdomein_key = isk.fac_kenmerkdomein_key
|
|
AND ud.fac_usrtab_key = kd.fac_usrtab_key
|
|
AND ikd.ins_kenmerkdeel_waarde = ud.fac_usrdata_key
|
|
AND o.ins_deel_key = ikd.ins_deel_key)
|
|
onderwerp,
|
|
(SELECT ins_kenmerkdeel_waarde
|
|
FROM ins_kenmerkdeel ikd
|
|
WHERE ins_kenmerk_key = 102
|
|
AND o.ins_deel_key = ikd.ins_deel_key)
|
|
naam_kunstenaar,
|
|
(SELECT ins_kenmerkdeel_waarde
|
|
FROM ins_kenmerkdeel ikd
|
|
WHERE ins_kenmerk_key = 104
|
|
AND o.ins_deel_key = ikd.ins_deel_key)
|
|
titel,
|
|
(SELECT ins_kenmerkdeel_waarde
|
|
FROM ins_kenmerkdeel ikd
|
|
WHERE ins_kenmerk_key = 110
|
|
AND o.ins_deel_key = ikd.ins_deel_key)
|
|
materiaal,
|
|
(SELECT fac_usrdata_omschr
|
|
FROM ins_kenmerkdeel ikd,
|
|
ins_kenmerk ik,
|
|
ins_srtkenmerk isk,
|
|
fac_kenmerkdomein kd,
|
|
fac_usrdata ud
|
|
WHERE ikd.ins_kenmerk_key = 112
|
|
AND ik.ins_kenmerk_key = ikd.ins_kenmerk_key
|
|
AND ik.ins_srtkenmerk_key = isk.ins_srtkenmerk_key
|
|
AND kd.fac_kenmerkdomein_key = isk.fac_kenmerkdomein_key
|
|
AND ud.fac_usrtab_key = kd.fac_usrtab_key
|
|
AND ikd.ins_kenmerkdeel_waarde = ud.fac_usrdata_key
|
|
AND o.ins_deel_key = ikd.ins_deel_key)
|
|
gesigneerd,
|
|
(SELECT ins_kenmerkdeel_waarde
|
|
FROM ins_kenmerkdeel ikd
|
|
WHERE ins_kenmerk_key = 119
|
|
AND o.ins_deel_key = ikd.ins_deel_key)
|
|
hoogte,
|
|
(SELECT ins_kenmerkdeel_waarde
|
|
FROM ins_kenmerkdeel ikd
|
|
WHERE ins_kenmerk_key = 120
|
|
AND o.ins_deel_key = ikd.ins_deel_key)
|
|
breedte,
|
|
DECODE (
|
|
(SELECT ins_kenmerkdeel_waarde
|
|
FROM ins_kenmerkdeel ikd
|
|
WHERE ins_kenmerk_key = 109
|
|
AND o.ins_deel_key = ikd.ins_deel_key),
|
|
NULL, 'Geen foto',
|
|
'<img src="https://pnbr.facilitor.nl/api2/objects/'
|
|
|| ins_deel_key
|
|
|| '/attachments/109/'
|
|
|| (SELECT ins_kenmerkdeel_waarde
|
|
FROM ins_kenmerkdeel ikd
|
|
WHERE ins_kenmerk_key = 109
|
|
AND o.ins_deel_key = ikd.ins_deel_key)
|
|
|| '" height="128">')
|
|
foto,
|
|
(SELECT ins_kenmerkdeel_waarde
|
|
FROM ins_kenmerkdeel ikd
|
|
WHERE ins_kenmerk_key = 125
|
|
AND o.ins_deel_key = ikd.ins_deel_key)
|
|
verkrijgingsinformatie,
|
|
(SELECT ins_kenmerkdeel_waarde
|
|
FROM ins_kenmerkdeel ikd
|
|
WHERE ins_kenmerk_key = 132
|
|
AND o.ins_deel_key = ikd.ins_deel_key)
|
|
taxatiewaarde,
|
|
r.alg_ruimte_aanduiding
|
|
|| ' ('
|
|
|| r.alg_ruimte_omschrijving
|
|
|| ')',
|
|
DECODE (
|
|
r.alg_ruimte_key,
|
|
1614, 'Beschikbaar',
|
|
'Uitgeleend'
|
|
|| ' sinds: '
|
|
|| (SELECT ins_kenmerkdeel_waarde
|
|
FROM ins_kenmerkdeel ikd
|
|
WHERE ins_kenmerk_key = 1363
|
|
AND o.ins_deel_key = ikd.ins_deel_key))
|
|
status,
|
|
(SELECT DECODE (ins_kenmerkdeel_waarde, 1, 'Gereserveerd', NULL)
|
|
FROM ins_kenmerkdeel ikd
|
|
WHERE ins_kenmerk_key = 1342
|
|
AND o.ins_deel_key = ikd.ins_deel_key)
|
|
reservering,
|
|
(SELECT ins_kenmerkdeel_waarde
|
|
FROM ins_kenmerkdeel ikd
|
|
WHERE ins_kenmerk_key = 1343
|
|
AND o.ins_deel_key = ikd.ins_deel_key)
|
|
aanvraagnr,
|
|
DECODE (r.alg_ruimte_key, 1614, 'Beschikbaar', 'Uitgeleend')
|
|
status_selectie,
|
|
o.ins_deel_key
|
|
FROM ins_deel o, alg_v_ruimte_gegevens r, ins_srtdeel s
|
|
WHERE s.ins_srtdeel_key = 41
|
|
AND o.ins_deel_verwijder IS NULL
|
|
AND o.ins_alg_ruimte_key = r.alg_ruimte_key
|
|
AND o.ins_srtdeel_key = s.ins_srtdeel_key
|
|
AND (SELECT fac_usrdata_omschr
|
|
FROM ins_kenmerkdeel ikd,
|
|
ins_kenmerk ik,
|
|
ins_srtkenmerk isk,
|
|
fac_kenmerkdomein kd,
|
|
fac_usrdata ud
|
|
WHERE ikd.ins_kenmerk_key = 115
|
|
AND ik.ins_kenmerk_key = ikd.ins_kenmerk_key
|
|
AND ik.ins_srtkenmerk_key = isk.ins_srtkenmerk_key
|
|
AND kd.fac_kenmerkdomein_key =
|
|
isk.fac_kenmerkdomein_key
|
|
AND ud.fac_usrtab_key = kd.fac_usrtab_key
|
|
AND ikd.ins_kenmerkdeel_waarde = ud.fac_usrdata_key
|
|
AND o.ins_deel_key = ikd.ins_deel_key) =
|
|
'Ja'
|
|
AND o.INS_DEEL_KEY NOT IN
|
|
(SELECT o.ins_deel_key
|
|
FROM ins_deel o, alg_v_ruimte_gegevens r, ins_srtdeel s
|
|
WHERE s.ins_srtdeel_key = 41
|
|
AND o.ins_deel_verwijder IS NULL
|
|
AND o.ins_alg_ruimte_key = r.alg_ruimte_key
|
|
AND o.ins_srtdeel_key = s.ins_srtdeel_key
|
|
AND (SELECT fac_usrdata_omschr
|
|
FROM ins_kenmerkdeel ikd,
|
|
ins_kenmerk ik,
|
|
ins_srtkenmerk isk,
|
|
fac_kenmerkdomein kd,
|
|
fac_usrdata ud
|
|
WHERE ikd.ins_kenmerk_key = 115
|
|
AND ik.ins_kenmerk_key =
|
|
ikd.ins_kenmerk_key
|
|
AND ik.ins_srtkenmerk_key =
|
|
isk.ins_srtkenmerk_key
|
|
AND kd.fac_kenmerkdomein_key =
|
|
isk.fac_kenmerkdomein_key
|
|
AND ud.fac_usrtab_key =
|
|
kd.fac_usrtab_key
|
|
AND ikd.ins_kenmerkdeel_waarde =
|
|
ud.fac_usrdata_key
|
|
AND o.ins_deel_key = ikd.ins_deel_key) =
|
|
'Ja'
|
|
-- objecten die niet in het depot staan
|
|
AND r.alg_ruimte_key <> 1614
|
|
--- objecten die al gereserveerd zijn
|
|
AND (SELECT DECODE (ins_kenmerkdeel_waarde,
|
|
1, 'Gereserveerd',
|
|
NULL)
|
|
FROM ins_kenmerkdeel ikd
|
|
WHERE ins_kenmerk_key = 1342
|
|
AND o.ins_deel_key = ikd.ins_deel_key)
|
|
IS NOT NULL);
|
|
|
|
--- Portal menu item 'Verzoek inname kunst'
|
|
-- Overzicht 'KUNST: Kunstinname'
|
|
|
|
CREATE OR REPLACE VIEW PNBR_V_RAP_KUNST_INNAME
|
|
(
|
|
FCLT_F_OBJECT,
|
|
FCLT_F_KUNSTENAAR,
|
|
FCLT_F_TITEL,
|
|
MATERIAAL,
|
|
GESIGNEERD,
|
|
HOOGTE,
|
|
BREEDTE,
|
|
HTML_FOTO,
|
|
VERKRIJGINGSINFORMATIE,
|
|
TAXATIEWAARDE,
|
|
RUIMTE,
|
|
STATUS,
|
|
RESERVERING,
|
|
AANVRAAGNR,
|
|
OBJECT_KEY
|
|
)
|
|
AS
|
|
SELECT o.ins_deel_omschrijving,
|
|
(SELECT ins_kenmerkdeel_waarde
|
|
FROM ins_kenmerkdeel ikd
|
|
WHERE ins_kenmerk_key = 102
|
|
AND o.ins_deel_key = ikd.ins_deel_key)
|
|
naam_kunstenaar,
|
|
(SELECT ins_kenmerkdeel_waarde
|
|
FROM ins_kenmerkdeel ikd
|
|
WHERE ins_kenmerk_key = 104
|
|
AND o.ins_deel_key = ikd.ins_deel_key)
|
|
titel,
|
|
(SELECT ins_kenmerkdeel_waarde
|
|
FROM ins_kenmerkdeel ikd
|
|
WHERE ins_kenmerk_key = 110
|
|
AND o.ins_deel_key = ikd.ins_deel_key)
|
|
materiaal,
|
|
(SELECT fac_usrdata_omschr
|
|
FROM ins_kenmerkdeel ikd,
|
|
ins_kenmerk ik,
|
|
ins_srtkenmerk isk,
|
|
fac_kenmerkdomein kd,
|
|
fac_usrdata ud
|
|
WHERE ikd.ins_kenmerk_key = 112
|
|
AND ik.ins_kenmerk_key = ikd.ins_kenmerk_key
|
|
AND ik.ins_srtkenmerk_key = isk.ins_srtkenmerk_key
|
|
AND kd.fac_kenmerkdomein_key = isk.fac_kenmerkdomein_key
|
|
AND ud.fac_usrtab_key = kd.fac_usrtab_key
|
|
AND ikd.ins_kenmerkdeel_waarde = ud.fac_usrdata_key
|
|
AND o.ins_deel_key = ikd.ins_deel_key)
|
|
gesigneerd,
|
|
(SELECT ins_kenmerkdeel_waarde
|
|
FROM ins_kenmerkdeel ikd
|
|
WHERE ins_kenmerk_key = 119
|
|
AND o.ins_deel_key = ikd.ins_deel_key)
|
|
hoogte,
|
|
(SELECT ins_kenmerkdeel_waarde
|
|
FROM ins_kenmerkdeel ikd
|
|
WHERE ins_kenmerk_key = 120
|
|
AND o.ins_deel_key = ikd.ins_deel_key)
|
|
breedte,
|
|
DECODE (
|
|
(SELECT ins_kenmerkdeel_waarde
|
|
FROM ins_kenmerkdeel ikd
|
|
WHERE ins_kenmerk_key = 109
|
|
AND o.ins_deel_key = ikd.ins_deel_key),
|
|
NULL, 'Geen foto',
|
|
'<img src="https://pnbr.facilitor.nl/api2/objects/'
|
|
|| ins_deel_key
|
|
|| '/attachments/109/'
|
|
|| (SELECT ins_kenmerkdeel_waarde
|
|
FROM ins_kenmerkdeel ikd
|
|
WHERE ins_kenmerk_key = 109
|
|
AND o.ins_deel_key = ikd.ins_deel_key)
|
|
|| '" height="128">')
|
|
foto,
|
|
(SELECT ins_kenmerkdeel_waarde
|
|
FROM ins_kenmerkdeel ikd
|
|
WHERE ins_kenmerk_key = 125
|
|
AND o.ins_deel_key = ikd.ins_deel_key)
|
|
verkrijgingsinformatie,
|
|
(SELECT ins_kenmerkdeel_waarde
|
|
FROM ins_kenmerkdeel ikd
|
|
WHERE ins_kenmerk_key = 132
|
|
AND o.ins_deel_key = ikd.ins_deel_key)
|
|
taxatiewaarde,
|
|
r.alg_ruimte_aanduiding
|
|
|| ' ('
|
|
|| r.alg_ruimte_omschrijving
|
|
|| ')',
|
|
DECODE (
|
|
r.alg_ruimte_key,
|
|
1614, 'Beschikbaar',
|
|
'Uitgeleend'
|
|
|| ' sinds: '
|
|
|| (SELECT ins_kenmerkdeel_waarde
|
|
FROM ins_kenmerkdeel ikd
|
|
WHERE ins_kenmerk_key = 1363
|
|
AND o.ins_deel_key = ikd.ins_deel_key))
|
|
status,
|
|
(SELECT DECODE (ins_kenmerkdeel_waarde, 1, 'Gereserveerd', NULL)
|
|
FROM ins_kenmerkdeel ikd
|
|
WHERE ins_kenmerk_key = 1282
|
|
AND o.ins_deel_key = ikd.ins_deel_key)
|
|
reservering,
|
|
(SELECT ins_kenmerkdeel_waarde
|
|
FROM ins_kenmerkdeel ikd
|
|
WHERE ins_kenmerk_key = 1342
|
|
AND o.ins_deel_key = ikd.ins_deel_key)
|
|
aanvraagnr,
|
|
o.ins_deel_key
|
|
FROM ins_deel o, alg_v_ruimte_gegevens r, ins_srtdeel s
|
|
WHERE s.ins_srtdeel_key = 41
|
|
AND o.ins_deel_verwijder IS NULL
|
|
AND o.ins_alg_ruimte_key = r.alg_ruimte_key
|
|
AND o.ins_srtdeel_key = s.ins_srtdeel_key
|
|
AND (SELECT fac_usrdata_omschr
|
|
FROM ins_kenmerkdeel ikd,
|
|
ins_kenmerk ik,
|
|
ins_srtkenmerk isk,
|
|
fac_kenmerkdomein kd,
|
|
fac_usrdata ud
|
|
WHERE ikd.ins_kenmerk_key = 115
|
|
AND ik.ins_kenmerk_key = ikd.ins_kenmerk_key
|
|
AND ik.ins_srtkenmerk_key = isk.ins_srtkenmerk_key
|
|
AND kd.fac_kenmerkdomein_key =
|
|
isk.fac_kenmerkdomein_key
|
|
AND ud.fac_usrtab_key = kd.fac_usrtab_key
|
|
AND ikd.ins_kenmerkdeel_waarde = ud.fac_usrdata_key
|
|
AND o.ins_deel_key = ikd.ins_deel_key) =
|
|
'Ja'
|
|
AND r.alg_ruimte_key <> 1614;
|
|
|
|
CREATE OR REPLACE VIEW PNBR_V_RUIMTE_GEGEVENS
|
|
(
|
|
RUIMTE_KEY,
|
|
OMSCHRIJVING
|
|
)
|
|
AS
|
|
SELECT r.alg_ruimte_key,
|
|
r.alg_ruimte_aanduiding
|
|
|| ' ('
|
|
|| r.alg_ruimte_omschrijving
|
|
|| ')'
|
|
FROM alg_v_ruimte_gegevens r;
|
|
|
|
-- PNBR#52789 - Rapportage bedrijfscatering
|
|
|
|
CREATE OR REPLACE VIEW PNBR_V_RAP_CATERING
|
|
(
|
|
RESERVERINGSNUMMER,
|
|
AFLEVERADRES,
|
|
ADRES,
|
|
LOCATIE,
|
|
RUIMTE,
|
|
RUIMTENR,
|
|
KOSTENPLAATS,
|
|
KOSTENPLAATS_OMSCHRIJVING,
|
|
PERSOONSNAAM,
|
|
AFDELING,
|
|
COSTCENTER,
|
|
DATUM,
|
|
TIJD_RESERVERING_VAN,
|
|
TIJD_RESERVERING_TOT,
|
|
AANTAL_PERSONEN,
|
|
OMSCHRIJVING,
|
|
OPMERKING,
|
|
TIJD_LEVERING,
|
|
BESTELNR,
|
|
ARTIKELNR,
|
|
ARTIKEL_OMSCHRIJVING,
|
|
ARTIKEL_AANTAL,
|
|
ARTIKEL_PRIJS,
|
|
TOTAAL_PRIJS,
|
|
BTW,
|
|
ARTIKEL_PRIJS_BTW,
|
|
TOTAAL_PARIJS_BTW,
|
|
kn_besnr_cateraar
|
|
)
|
|
AS
|
|
SELECT (x.res_reservering_key || '/' || x.res_rsv_ruimte_volgnr)
|
|
reserveringsnummer,
|
|
DECODE (
|
|
x.alg_ruimte_key,
|
|
NULL, 'Onbekend',
|
|
rg.alg_locatie_code
|
|
|| '-'
|
|
|| rg.alg_gebouw_upper
|
|
|| '-'
|
|
|| rg.alg_verdieping_code
|
|
|| '-'
|
|
|| rg.alg_ruimte_nr
|
|
|| ' ('
|
|
|| rg.alg_ruimte_omschrijving
|
|
|| ')')
|
|
afleveradres,
|
|
rg.alg_locatie_adres
|
|
adres,
|
|
rg.alg_locatie_omschrijving
|
|
locatie,
|
|
rg.alg_ruimte_omschrijving
|
|
ruimte,
|
|
rg.alg_ruimte_nr
|
|
ruimtenr,
|
|
x.prs_kostenplaats_nr
|
|
kostenplaats,
|
|
x.prs_kostenplaats_omschrijving
|
|
kostenplaats_omschrijving,
|
|
x.prs_perslid_naam_full,
|
|
(x.prs_afdeling_upper || '-' || x.prs_afdeling_omschrijving)
|
|
afdeling,
|
|
(SELECT MAX (kw.res_kenmerkreservering_waarde)
|
|
FROM res_kenmerkwaarde kw, res_kenmerk rk
|
|
WHERE kw.res_rsv_ruimte_key = x.res_rsv_ruimte_key
|
|
AND kw.res_kenmerkwaarde_verwijder IS NULL
|
|
AND kw.res_kenmerk_key = rk.res_kenmerk_key
|
|
AND rk.res_srtkenmerk_key = 1)
|
|
costcenter,
|
|
x.res_rsv_artikel_levering
|
|
datum,
|
|
TO_CHAR (x.res_rsv_ruimte_van, 'hh24:mi')
|
|
tijd_ruimtereservering,
|
|
TO_CHAR (x.res_rsv_ruimte_tot, 'hh24:mi')
|
|
tijd_einde_ruimtereservering,
|
|
x.res_rsv_ruimte_bezoekers,
|
|
x.res_rsv_ruimte_omschrijving,
|
|
x.res_rsv_ruimte_opmerking,
|
|
TO_CHAR (x.res_rsv_artikel_levering, 'hh24:mi')
|
|
tijd_levering,
|
|
x.bestelnr,
|
|
x.res_artikel_nr,
|
|
x.res_artikel_omschrijving,
|
|
x.res_rsv_artikel_aantal,
|
|
x.res_artikel_prijs,
|
|
ROUND ((x.res_rsv_artikel_aantal) * (x.res_artikel_prijs), 5)
|
|
prijs_totaal_btw,
|
|
TO_NUMBER (
|
|
DECODE (x.res_artikel_btw, NULL, '6', x.res_artikel_btw))
|
|
btw,
|
|
ROUND (
|
|
x.res_artikel_prijs
|
|
* ( 1
|
|
+ ( TO_NUMBER (
|
|
DECODE (x.res_artikel_btw,
|
|
NULL, '6',
|
|
x.res_artikel_btw))
|
|
/ 100)),
|
|
2)
|
|
res_artikel_prijs_btw,
|
|
ROUND (
|
|
x.res_artikel_prijs
|
|
* ( 1
|
|
+ ( TO_NUMBER (
|
|
DECODE (x.res_artikel_btw,
|
|
NULL, '6',
|
|
x.res_artikel_btw))
|
|
/ 100))
|
|
* x.res_rsv_artikel_aantal,
|
|
2)
|
|
prijs_totaal_btw,
|
|
(SELECT fac_usrdata_omschr waarde
|
|
FROM res_kenmerkwaarde kw, fac_usrdata ud, res_kenmerk rk
|
|
WHERE rk.res_srtkenmerk_key = 441
|
|
AND kw.res_kenmerk_key = rk.res_kenmerk_key
|
|
AND fac.safe_to_number (res_kenmerkreservering_waarde) =
|
|
fac_usrdata_key
|
|
AND x.res_rsv_ruimte_key = kw.res_rsv_ruimte_key)
|
|
kn_bes_cateraar
|
|
FROM (SELECT rra.res_rsv_artikel_verwerkt,
|
|
COALESCE (rar1.alg_ruimte_key,
|
|
rar2.alg_ruimte_key,
|
|
rrr.alg_ruimte_key) alg_ruimte_key,
|
|
rra.res_rsv_artikel_levering,
|
|
rrr.res_rsv_ruimte_key,
|
|
rrr.res_reservering_key,
|
|
rrr.res_rsv_ruimte_volgnr,
|
|
rrr.res_rsv_ruimte_van,
|
|
rrr.res_rsv_ruimte_tot,
|
|
rrr.res_rsv_ruimte_bezoekers,
|
|
rrr.res_rsv_ruimte_omschrijving,
|
|
rrr.res_rsv_ruimte_opmerking,
|
|
rrr.res_rsv_ruimte_totaal,
|
|
td.ins_discipline_volgnr, -- Ter bepaling leverancier/DEPRECATED!
|
|
b.prs_bedrijf_naam,
|
|
a.prs_afdeling_key,
|
|
a.prs_afdeling_naam,
|
|
rra.res_artikel_nr,
|
|
( rra.res_artikel_omschrijving
|
|
|| ' ('
|
|
|| rra.res_artikel_eenheid
|
|
|| ')') res_artikel_omschrijving,
|
|
rra.res_rsv_artikel_prijs,
|
|
rra.res_artikel_prijs,
|
|
rra.res_rsv_artikel_aantal,
|
|
rra.btw,
|
|
rra.res_artikel_btw,
|
|
pf.prs_perslid_naam_full,
|
|
paf.prs_afdeling_omschrijving,
|
|
paf.prs_afdeling_upper,
|
|
k.prs_kostenplaats_nr,
|
|
k.prs_kostenplaats_omschrijving,
|
|
(SELECT rrk.res_kenmerkreservering_waarde
|
|
FROM res_kenmerkwaarde rrk
|
|
WHERE rrk.res_rsv_ruimte_key =
|
|
rrr.res_rsv_ruimte_key
|
|
AND rrk.res_kenmerk_key = 281) bestelnr
|
|
FROM res_rsv_ruimte rrr,
|
|
(SELECT rra.res_rsv_ruimte_key,
|
|
rra.res_rsv_artikel_verwerkt,
|
|
rra.res_rsv_artikel_levering,
|
|
ra.res_artikel_nr,
|
|
ra.res_artikel_omschrijving,
|
|
ra.res_artikel_eenheid,
|
|
ra.res_artikel_prijs,
|
|
rra.res_rsv_artikel_prijs,
|
|
rra.res_rsv_artikel_aantal,
|
|
rra.res_rsv_artikel_btw btw,
|
|
ra.res_discipline_key,
|
|
ra.res_artikel_btw
|
|
FROM res_rsv_artikel rra, res_artikel ra
|
|
WHERE rra.res_artikel_key = ra.res_artikel_key) rra,
|
|
res_discipline td,
|
|
res_disc_params dp,
|
|
prs_bedrijf b,
|
|
prs_afdeling a,
|
|
prs_v_afdeling_perslid paf,
|
|
res_ruimte_opstelling rro,
|
|
( 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) rar1,
|
|
( SELECT res_ruimte_key,
|
|
MAX (alg_ruimte_key) alg_ruimte_key
|
|
FROM res_alg_ruimte
|
|
WHERE res_alg_ruimte_verwijder IS NOT NULL
|
|
GROUP BY res_ruimte_key) rar2,
|
|
alg_v_allonroerendgoed aog,
|
|
prs_v_perslid_fullnames_all pf,
|
|
prs_kostenplaats k
|
|
WHERE rrr.res_rsv_ruimte_key = rra.res_rsv_ruimte_key
|
|
AND rra.res_discipline_key = td.ins_discipline_key
|
|
AND rrr.res_rsv_ruimte_verwijder IS NULL
|
|
AND rrr.res_activiteit_key != 50 --activiteit Afhalen catering
|
|
AND td.ins_discipline_key = dp.res_ins_discipline_key
|
|
AND dp.prs_bedrijf_key = b.prs_bedrijf_key(+)
|
|
AND paf.prs_perslid_key = pf.prs_perslid_key
|
|
AND a.prs_afdeling_parentkey IS NULL
|
|
AND b.prs_leverancier_nr = a.prs_afdeling_naam(+)
|
|
AND rrr.res_ruimte_opstel_key =
|
|
rro.res_ruimte_opstel_key(+)
|
|
AND rro.res_ruimte_key = rar1.res_ruimte_key(+)
|
|
AND rro.res_ruimte_key = rar2.res_ruimte_key(+)
|
|
AND COALESCE (rar1.alg_ruimte_key,
|
|
rar2.alg_ruimte_key,
|
|
rrr.alg_ruimte_key) =
|
|
aog.alg_ruimte_key
|
|
AND rrr.res_rsv_ruimte_host_key = pf.prs_perslid_key
|
|
AND rrr.prs_kostenplaats_key = k.prs_kostenplaats_key(+))
|
|
x
|
|
LEFT JOIN alg_v_ruimte_gegevens_all rg
|
|
ON x.alg_ruimte_key = rg.alg_ruimte_key;
|
|
|
|
|
|
|
|
CREATE OR REPLACE VIEW PNBR_V_BEDRIJF
|
|
(
|
|
bedrijf_key,
|
|
naam,
|
|
eind_datum
|
|
)
|
|
AS
|
|
SELECT prs_bedrijf_key, prs_bedrijf_naam, prs_bedrijf_verwijder
|
|
FROM PRS_BEDRIJF;
|
|
|
|
|
|
|
|
-- View voor QR Codes
|
|
|
|
CREATE OR REPLACE VIEW PNBR_V_INS_QRC_OBJECT
|
|
(
|
|
HIDE_F_SORT,
|
|
LOCATIE_CODE,
|
|
FCLT_F_LOCATIE,
|
|
FCLT_F_GEBOUW,
|
|
FCLT_F_PLAATS,
|
|
RUIMTENR,
|
|
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,
|
|
HIDE_F_BOOKMARK_ID
|
|
)
|
|
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,
|
|
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
|
|
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 b.fac_bookmark_path = 'appl/pda/ins_deel.asp'
|
|
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 = i.ins_alg_ruimte_key
|
|
AND o.alg_onroerendgoed_type = i.ins_alg_ruimte_type
|
|
AND 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;
|
|
|
|
|
|
CREATE OR REPLACE VIEW pnbr_v_programmamanagers
|
|
(
|
|
prs_perslid_key,
|
|
prs_perslid_verwijder,
|
|
prs_perslid_naam
|
|
)
|
|
AS
|
|
SELECT p.prs_perslid_key,
|
|
p.prs_perslid_verwijder,
|
|
n.prs_perslid_naam_full || ' - ' || f.prs_srtperslid_omschrijving
|
|
FROM prs_perslid p, prs_srtperslid f, prs_v_perslid_fullnames n
|
|
WHERE p.prs_srtperslid_key = f.prs_srtperslid_key
|
|
AND ( f.prs_srtperslid_upper LIKE '%PROGRAMMAMANAGER%'
|
|
OR f.prs_srtperslid_upper LIKE '%PROGR.MAN%'
|
|
OR f.prs_srtperslid_upper LIKE '%KABINETSCHEF COMMISSARIS VAN DE KONING%'
|
|
OR f.prs_srtperslid_upper LIKE '%GRIFFIER%')
|
|
AND n.prs_perslid_key = p.prs_perslid_key
|
|
ORDER BY prs_perslid_naam_full;
|
|
|
|
CREATE OR REPLACE VIEW pnbr_v_h_managers
|
|
(
|
|
PRS_PERSLID_KEY,
|
|
PRS_PERSLID_VERWIJDER,
|
|
PRS_PERSLID_NAAM
|
|
)
|
|
AS
|
|
SELECT p.prs_perslid_key,
|
|
p.prs_perslid_verwijder,
|
|
n.prs_perslid_naam_full || ' - ' || f.prs_srtperslid_omschrijving
|
|
FROM prs_perslid p, prs_srtperslid f, prs_v_perslid_fullnames n
|
|
WHERE p.prs_srtperslid_key = f.prs_srtperslid_key
|
|
AND ( f.prs_srtperslid_upper LIKE '%H-MANGR%'
|
|
OR f.prs_srtperslid_upper LIKE '%KABINETSCHEF COMMISSARIS VAN DE KONING%'
|
|
OR f.prs_srtperslid_upper LIKE '%GRIFFIER%')
|
|
AND n.prs_perslid_key = p.prs_perslid_key
|
|
ORDER BY prs_perslid_naam_full;
|
|
|
|
CREATE OR REPLACE VIEW pnbr_v_programma_h_managers
|
|
(
|
|
PRS_PERSLID_KEY,
|
|
PRS_PERSLID_VERWIJDER,
|
|
PRS_PERSLID_NAAM
|
|
)
|
|
AS
|
|
SELECT p.prs_perslid_key,
|
|
p.prs_perslid_verwijder,
|
|
n.prs_perslid_naam_full || ' - ' || f.prs_srtperslid_omschrijving
|
|
FROM prs_perslid p, prs_srtperslid f, prs_v_perslid_fullnames n
|
|
WHERE p.prs_srtperslid_key = f.prs_srtperslid_key
|
|
AND ( f.prs_srtperslid_upper LIKE '%PROGRAMMAMANAGER%'
|
|
OR f.prs_srtperslid_upper LIKE '%H-MANGR%'
|
|
OR f.prs_srtperslid_upper LIKE '%PROGR.MAN%'
|
|
OR f.prs_srtperslid_upper LIKE '%KABINETSCHEF COMMISSARIS VAN DE KONING%'
|
|
OR f.prs_srtperslid_upper LIKE '%GRIFFIER%')
|
|
AND n.prs_perslid_key = p.prs_perslid_key
|
|
ORDER BY prs_perslid_naam_full;
|
|
|
|
-- Import SAP bestelnummers
|
|
|
|
CREATE OR REPLACE PROCEDURE pnbr_import_bestelnr (p_import_key IN NUMBER)
|
|
AS
|
|
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);
|
|
v_field VARCHAR2 (100);
|
|
v_fielddelimitor VARCHAR2 (1);
|
|
v_errormsg VARCHAR (200);
|
|
oracle_err_num NUMBER;
|
|
oracle_err_mes VARCHAR2 (200);
|
|
header_is_valid NUMBER;
|
|
v_empty VARCHAR2 (100);
|
|
v_aanduiding VARCHAR2 (200);
|
|
|
|
-- de velden uit het importbestand
|
|
v_leverancier VARCHAR2 (100);
|
|
v_naam VARCHAR2 (100);
|
|
v_jaar VARCHAR2 (100);
|
|
v_maand VARCHAR2 (100);
|
|
v_bestelnummer VARCHAR2 (100);
|
|
v_bestelregel VARCHAR2 (100);
|
|
v_begrotingspost VARCHAR2 (100);
|
|
v_budgethouder VARCHAR2 (100);
|
|
v_budgethouder_naam VARCHAR2 (100);
|
|
v_budgethouder_key NUMBER (10);
|
|
v_bestelnummer_omschr VARCHAR2 (100);
|
|
BEGIN
|
|
v_fielddelimitor := ';';
|
|
|
|
header_is_valid := 0;
|
|
|
|
DELETE FROM fac_imp_kpn;
|
|
|
|
FOR NEXT_RECORD IN c_cursor
|
|
LOOP
|
|
BEGIN
|
|
v_aanduiding := '';
|
|
|
|
v_newline := NEXT_RECORD.FAC_IMP_FILE_LINE;
|
|
fac.imp_getfield (v_newline, v_fielddelimitor, v_leverancier);
|
|
fac.imp_getfield (v_newline, v_fielddelimitor, v_naam);
|
|
fac.imp_getfield (v_newline, v_fielddelimitor, v_jaar);
|
|
fac.imp_getfield (v_newline, v_fielddelimitor, v_maand);
|
|
fac.imp_getfield (v_newline, v_fielddelimitor, v_bestelnummer);
|
|
fac.imp_getfield (v_newline, v_fielddelimitor, v_bestelregel);
|
|
fac.imp_getfield (v_newline, v_fielddelimitor, v_begrotingspost);
|
|
fac.imp_getfield (v_newline, v_fielddelimitor, v_budgethouder);
|
|
fac.imp_getfield (v_newline,
|
|
v_fielddelimitor,
|
|
v_budgethouder_naam);
|
|
|
|
IF ( header_is_valid = 0
|
|
AND UPPER (v_leverancier) = 'LEVERANC.'
|
|
AND UPPER (v_naam) = 'NAAM 1'
|
|
AND UPPER (v_jaar) = 'JAAR'
|
|
AND UPPER (v_maand) = 'MAAND'
|
|
AND UPPER (v_bestelnummer) = 'BESTELNUMMER'
|
|
AND UPPER (v_bestelregel) = 'BESTELNUMMER REGEL'
|
|
AND UPPER (v_begrotingspost) = 'BEGROTINGSPOST'
|
|
AND UPPER (v_budgethouder) = 'BUDG.HOUD'
|
|
AND UPPER (v_budgethouder_naam) = 'NAAM BUDGETHOUDER')
|
|
THEN
|
|
header_is_valid := 1;
|
|
ELSE
|
|
v_aanduiding := v_bestelnummer;
|
|
|
|
IF v_budgethouder IS NOT NULL
|
|
THEN
|
|
BEGIN
|
|
SELECT prs_perslid_key
|
|
INTO v_budgethouder_key
|
|
FROM prs_perslid p
|
|
WHERE v_budgethouder = p.prs_perslid_oslogin;
|
|
EXCEPTION
|
|
WHEN NO_DATA_FOUND
|
|
THEN
|
|
v_budgethouder_key := NULL;
|
|
|
|
fac.imp_writelog (
|
|
p_import_key,
|
|
'E',
|
|
v_aanduiding
|
|
|| 'Budgethouder kan niet gevonden worden',
|
|
'Budgethouder wordt leeg gemaakt ['
|
|
|| v_budgethouder
|
|
|| ']');
|
|
END;
|
|
ELSE
|
|
v_budgethouder_key := NULL;
|
|
END IF;
|
|
|
|
IF LENGTH (v_bestelnummer) > 30
|
|
THEN
|
|
v_bestelnummer := SUBSTR (v_bestelnummer, 1, 30);
|
|
fac.imp_writelog (
|
|
p_import_key,
|
|
'W',
|
|
v_aanduiding || 'Bestelnummer is te lang',
|
|
'Bestelnummer wordt afgebroken tot ['
|
|
|| v_bestelnummer
|
|
|| ']');
|
|
END IF;
|
|
|
|
v_bestelnummer_omschr :=
|
|
v_budgethouder_naam || '/' || v_bestelnummer;
|
|
|
|
IF LENGTH (v_bestelnummer_omschr) > 60
|
|
THEN
|
|
v_bestelnummer_omschr :=
|
|
SUBSTR (v_bestelnummer_omschr, 1, 60);
|
|
fac.imp_writelog (
|
|
p_import_key,
|
|
'W',
|
|
v_aanduiding
|
|
|| 'Bestelnummer omschrijving is te lang',
|
|
'Bestelnummer omschrijving wordt afgebroken tot ['
|
|
|| v_bestelnummer_omschr
|
|
|| ']');
|
|
END IF;
|
|
|
|
INSERT INTO fac_imp_kpn (prs_kostenplaats_nr,
|
|
prs_kostenplaats_omschrijving,
|
|
prs_kostenplaats_module,
|
|
prs_kostenplaatsgrp_key,
|
|
prs_perslid_key)
|
|
VALUES (v_bestelnummer,
|
|
v_bestelnummer_omschr,
|
|
'PRJ',
|
|
2, -- kostenplaatsgroep voor catering PO's voor combinatie validatie
|
|
v_budgethouder_key);
|
|
END IF;
|
|
END;
|
|
END LOOP;
|
|
|
|
IF (header_is_valid = 0)
|
|
THEN
|
|
fac.imp_writelog (
|
|
p_import_key,
|
|
'E',
|
|
'Invalid import file',
|
|
'Er is geen geldige Header aangetroffen en in het importbestand');
|
|
END IF;
|
|
|
|
DELETE FROM fac_imp_file
|
|
WHERE fac_import_key = p_import_key;
|
|
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 pnbr_import_bestelnr;
|
|
/
|
|
|
|
CREATE OR REPLACE PROCEDURE pnbr_update_bestelnr (p_import_key IN NUMBER)
|
|
AS
|
|
v_errormsg VARCHAR (200);
|
|
v_errorhint VARCHAR (200);
|
|
v_aanduiding VARCHAR (200);
|
|
oracle_err_mes VARCHAR (200);
|
|
oracle_err_num NUMBER;
|
|
|
|
CURSOR kpn_del IS
|
|
SELECT *
|
|
FROM prs_kostenplaats kp
|
|
WHERE kp.prs_kostenplaats_module = 'PRJ'
|
|
AND UPPER (kp.prs_kostenplaats_omschrijving) LIKE '%SAP%'
|
|
AND kp.prs_kostenplaats_upper NOT IN
|
|
(SELECT UPPER (imp_kp.prs_kostenplaats_nr)
|
|
FROM fac_imp_kpn imp_kp);
|
|
BEGIN
|
|
fac_update_kpn (p_import_key);
|
|
|
|
FOR rec IN kpn_del
|
|
LOOP
|
|
BEGIN
|
|
v_aanduiding := rec.prs_kostenplaats_nr;
|
|
v_errorhint := 'Bepalen vervallen kostenplaats';
|
|
|
|
UPDATE prs_kostenplaats kp
|
|
SET kp.prs_kostenplaats_verwijder = SYSDATE
|
|
WHERE kp.prs_kostenplaats_key = rec.prs_kostenplaats_key;
|
|
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 || ' | ' || v_aanduiding);
|
|
END;
|
|
END LOOP;
|
|
END pnbr_update_bestelnr;
|
|
/
|
|
|
|
--- Genereren factuurregels voor catering
|
|
|
|
CREATE OR REPLACE PROCEDURE pnbr_select_res_cat (p_applname IN VARCHAR2,
|
|
p_applrun IN VARCHAR2)
|
|
AS
|
|
v_aanduiding VARCHAR2 (200);
|
|
v_errorhint VARCHAR2 (1000);
|
|
v_errormsg VARCHAR2 (1000);
|
|
oracle_err_num NUMBER;
|
|
oracle_err_mes VARCHAR2 (200);
|
|
|
|
-- Stap 1: de gegevens voor de factuur verzamelen
|
|
CURSOR c (c_tot DATE)
|
|
IS
|
|
SELECT rr.res_rsv_ruimte_key,
|
|
rr.res_rsv_ruimte_van,
|
|
rr.res_rsv_ruimte_key
|
|
res_ruimte_key,
|
|
rr.res_reservering_key
|
|
res_key,
|
|
rr.res_rsv_ruimte_volgnr
|
|
res_volgnr,
|
|
rr.res_reservering_key || '/' || rr.res_rsv_ruimte_volgnr
|
|
reservering,
|
|
TO_CHAR (rr.res_rsv_ruimte_van, 'YYYYMM')
|
|
periode,
|
|
k.prs_kostenplaats_nr
|
|
SAP_bestelnr,
|
|
k.prs_kostenplaats_omschrijving
|
|
SAP_omschr,
|
|
ks.prs_kostensoort_oms,
|
|
DECODE (ks.prs_kostensoort_btw, 1, 'Incl', 'Excl')
|
|
btw,
|
|
NVL (
|
|
(SELECT r.res_ruimte_nr
|
|
FROM res_ruimte_opstelling ro, res_ruimte r
|
|
WHERE ro.res_ruimte_opstel_key =
|
|
rr.res_ruimte_opstel_key
|
|
AND r.res_ruimte_key = ro.res_ruimte_key), ---- NVL ipv coalesce aangepast nav Oracle bug #55835
|
|
(SELECT 'Kamer '
|
|
|| alg_ruimte_nr
|
|
|| ' ('
|
|
|| alg_ruimte_omschrijving
|
|
|| ')'
|
|
FROM alg_v_ruimte_gegevens rg
|
|
WHERE rg.alg_ruimte_key = rr.alg_ruimte_key))
|
|
ruimte,
|
|
rr.res_rsv_ruimte_omschrijving
|
|
naam_bijeenkomst,
|
|
ra.res_artikel_omschrijving,
|
|
ra.res_artikel_eenheid,
|
|
ra.res_artikel_prijs,
|
|
ra.res_artikel_prijs_vast,
|
|
rra.res_rsv_artikel_prijs,
|
|
ra.res_artikel_btw,
|
|
rra.res_rsv_artikel_aantal,
|
|
COALESCE (rra.res_rsv_artikel_prijs,
|
|
ra.res_artikel_prijs * rra.res_rsv_artikel_aantal)
|
|
totaal_prijs,
|
|
bo_stat.res_status_bo_omschrijving,
|
|
fo_stat.res_status_fo_omschrijving
|
|
FROM res_rsv_ruimte rr,
|
|
prs_kostenplaats k,
|
|
prs_kostenplaatsgrp kg,
|
|
res_rsv_artikel rra,
|
|
res_artikel ra,
|
|
res_status_bo bo_stat,
|
|
res_status_fo fo_stat,
|
|
res_discipline di,
|
|
prs_kostensoort ks
|
|
WHERE kg.prs_kostenplaatsgrp_key(+) = k.prs_kostenplaatsgrp_key
|
|
AND rr.prs_kostenplaats_key = k.prs_kostenplaats_key
|
|
AND rr.res_rsv_ruimte_dirtlevel = 0
|
|
AND rr.res_rsv_ruimte_verwijder IS NULL
|
|
AND rra.res_rsv_ruimte_key = rr.res_rsv_ruimte_key
|
|
AND rra.res_artikel_key = ra.res_artikel_key
|
|
AND rr.res_status_bo_key = bo_stat.res_status_bo_key
|
|
AND rr.res_status_fo_key = fo_stat.res_status_fo_key
|
|
AND ra.res_discipline_key = di.ins_discipline_key
|
|
AND ks.prs_kostensoort_key = di.prs_kostensoort_key
|
|
AND COALESCE (rra.res_rsv_artikel_prijs, ra.res_artikel_prijs) <>
|
|
0
|
|
AND bo_stat.res_status_bo_key = 5 -- alleen reserveringen met de status afgemeld
|
|
AND rra.res_rsv_artikel_levering < c_tot
|
|
-- AND rra.res_rsv_artikel_levering > to_date ('31-12-2018','dd-mm-yyyy') AND rra.res_rsv_artikel_levering < to_date ('1-2-2019','dd-mm-yyyy')
|
|
AND NOT EXISTS -- entry komt nog niet voor in de verkoopfactuurtabel
|
|
(SELECT fin_verkoopfactuur_key
|
|
FROM fin_verkoopfactuur vf
|
|
WHERE vf.fin_verkoopfactuur_xmlnode =
|
|
'reservering'
|
|
AND vf.fin_verkoopfactuur_refkey =
|
|
rr.res_rsv_ruimte_key
|
|
AND COALESCE (vf.fin_verkoopfactuur_c4, 'NOP') =
|
|
'catering');
|
|
|
|
|
|
v_teller NUMBER;
|
|
v_rap_count NUMBER;
|
|
v_kenmerk_key_laatste NUMBER;
|
|
v_ruimte_key_prev NUMBER;
|
|
v_verkoopfactuurkop_key NUMBER;
|
|
v_tot DATE;
|
|
v_van DATE;
|
|
BEGIN
|
|
v_teller := 0;
|
|
v_rap_count := 0;
|
|
|
|
v_aanduiding := 'Init';
|
|
v_errormsg := 'Periode bepalen';
|
|
|
|
-- Bepalen wanneer de laatste export was, datum laatste export staat in kolom d2
|
|
SELECT TRUNC (MAX (fin_verkoopfactuur_d2))
|
|
INTO v_van
|
|
FROM fin_verkoopfactuur
|
|
WHERE fin_verkoopfactuur_datum IS NOT NULL
|
|
AND fin_verkoopfactuur_c4 = 'catering';
|
|
|
|
-- v_van := to_date ('1-1-2019', 'dd-mm-yyyy');
|
|
|
|
-- Er wordt nu gerekend met een periode van 4 weken. Dit in overleg met Vermaat.
|
|
v_tot := v_van + 28;
|
|
|
|
DELETE imp_log
|
|
WHERE imp_log_applicatie = p_applname;
|
|
|
|
-- verwijder de factuurkop en de regels die nog niet definitief verwerkt zijn
|
|
DELETE fin_verkoopfactuurkop
|
|
WHERE fin_verkoopfactuurkop_key IN
|
|
(SELECT fin_verkoopfactuurkop_key
|
|
FROM fin_verkoopfactuur
|
|
WHERE fin_verkoopfactuur_datum IS NULL
|
|
AND fin_verkoopfactuur_c4 = 'catering');
|
|
|
|
DELETE fin_verkoopfactuur
|
|
WHERE fin_verkoopfactuur_datum IS NULL
|
|
AND fin_verkoopfactuur_c4 = 'catering';
|
|
|
|
v_ruimte_key_prev := -1;
|
|
|
|
FOR rec IN c (v_tot)
|
|
LOOP
|
|
IF rec.res_rsv_ruimte_key <> v_ruimte_key_prev
|
|
THEN
|
|
v_ruimte_key_prev := rec.res_rsv_ruimte_key;
|
|
|
|
INSERT INTO fin_verkoopfactuurkop (fin_verkoopfactuurkop_id)
|
|
VALUES (rec.res_key || '/' || rec.res_volgnr || '-c')
|
|
RETURNING fin_verkoopfactuurkop_key
|
|
INTO v_verkoopfactuurkop_key;
|
|
END IF;
|
|
|
|
INSERT INTO fin_verkoopfactuur (fin_verkoopfactuurkop_key,
|
|
fin_verkoopfactuur_id,
|
|
fin_verkoopfactuur_datum,
|
|
fin_verkoopfactuur_omschr,
|
|
fin_verkoopfactuur_xmlnode,
|
|
fin_verkoopfactuur_refkey, -- key naar juiste factuur
|
|
prs_kostenplaats_nr,
|
|
prs_kostenplaats_omschrijving,
|
|
prs_debiteur_naam,
|
|
fin_verkoopfactuur_bedrag,
|
|
--fin_verkoopfactuur_btw,
|
|
--fin_btwtabelwaarde_code,
|
|
fin_btwtabelwaarde_perc,
|
|
fin_verkoopfactuur_maand,
|
|
fin_verkoopfactuur_c1,
|
|
fin_verkoopfactuur_c4,
|
|
fin_verkoopfactuur_d1,
|
|
fin_verkoopfactuur_d2)
|
|
VALUES (v_verkoopfactuurkop_key,
|
|
TO_CHAR (SYSDATE, 'YYYY-MM-DD'),
|
|
NULL,
|
|
rec.naam_bijeenkomst,
|
|
'reservering',
|
|
rec.res_ruimte_key,
|
|
rec.sap_bestelnr,
|
|
rec.sap_omschr,
|
|
rec.sap_bestelnr,
|
|
rec.totaal_prijs,
|
|
-- btw bedrag,
|
|
-- btw code ,
|
|
rec.res_artikel_btw,
|
|
rec.periode,
|
|
rec.res_key || '/' || rec.res_volgnr,
|
|
'catering',
|
|
rec.res_rsv_ruimte_van,
|
|
v_tot);
|
|
END LOOP;
|
|
|
|
|
|
fac.writelog (p_applname,
|
|
'S',
|
|
'Factuurregels gegenereerd',
|
|
'');
|
|
|
|
COMMIT;
|
|
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.writelog (p_applname,
|
|
'E',
|
|
v_aanduiding || v_errormsg,
|
|
'Onbekende fout!');
|
|
COMMIT;
|
|
END pnbr_select_res_cat;
|
|
/
|
|
|
|
CREATE OR REPLACE PROCEDURE pnbr_export_res_cat_verwerk (
|
|
p_applname IN VARCHAR2,
|
|
p_applrun IN VARCHAR2,
|
|
p_filedir IN VARCHAR2,
|
|
p_filename IN VARCHAR2)
|
|
AS
|
|
v_aanduiding VARCHAR2 (200);
|
|
v_errorhint VARCHAR2 (1000);
|
|
v_errormsg VARCHAR2 (1000);
|
|
oracle_err_num NUMBER;
|
|
oracle_err_mes VARCHAR2 (200);
|
|
|
|
v_periode VARCHAR (6);
|
|
v_periodeNaam VARCHAR2 (20);
|
|
v_kenmerk_key_cred NUMBER;
|
|
v_kenmerk_key_datum NUMBER;
|
|
v_kenmerk_key_geexp NUMBER;
|
|
v_trackmessage VARCHAR2 (100);
|
|
BEGIN
|
|
v_aanduiding := 'Init';
|
|
v_errormsg := 'Aanpassen facturdatum';
|
|
|
|
UPDATE fin_verkoopfactuur
|
|
SET fin_verkoopfactuur_datum = SYSDATE
|
|
WHERE fin_verkoopfactuur_datum IS NULL
|
|
AND fin_verkoopfactuur_c4 = 'catering';
|
|
|
|
COMMIT;
|
|
EXCEPTION
|
|
WHEN OTHERS
|
|
THEN
|
|
ROLLBACK;
|
|
oracle_err_num := SQLCODE;
|
|
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
|
|
v_errormsg :=
|
|
v_errorhint
|
|
|| ' ORACLE (error '
|
|
|| oracle_err_num
|
|
|| '/'
|
|
|| oracle_err_mes
|
|
|| ')';
|
|
fac.writelog (p_applname,
|
|
'E',
|
|
v_aanduiding || v_errormsg,
|
|
'Onbekende fout! Niets verwerkt.');
|
|
COMMIT;
|
|
END pnbr_export_res_cat_verwerk;
|
|
/
|
|
|
|
CREATE OR REPLACE VIEW PNBR_V_RES_CAT_VERMAAT
|
|
(
|
|
RESERVERING,
|
|
SAP_BESTELNR,
|
|
KOSTENPLAATS_GRP,
|
|
KOSTENSOORT,
|
|
BEDRAG,
|
|
BTW,
|
|
BTWCODE,
|
|
OPMERKING
|
|
)
|
|
AS
|
|
SELECT res_reservering_key || '/' || res_rsv_ruimte_volgnr
|
|
reservering,
|
|
prs_kostenplaats_nr,
|
|
prs_kostenplaatsgrp_oms,
|
|
prs_kostensoort_oms,
|
|
COALESCE (fin_verkoopfactuur_bedrag, 0),
|
|
COALESCE (fin_verkoopfactuur_btw, 0),
|
|
fin_btwtabelwaarde_code,
|
|
DECODE (
|
|
TRUNC (fin_verkoopfactuur_datum),
|
|
NULL, 'Vermaat',
|
|
'Vermaat '
|
|
|| TO_CHAR (fin_verkoopfactuur_d2 - 28, 'dd/mm/yyyy')
|
|
|| ' - '
|
|
|| TO_CHAR (fin_verkoopfactuur_d2 - 1, 'dd/mm/yyyy'))
|
|
FROM fin_verkoopfactuur v,
|
|
res_rsv_ruimte r,
|
|
(SELECT l.alg_locatie_key,
|
|
alg_locatie_code,
|
|
alg_locatie_omschrijving,
|
|
r.alg_ruimte_key
|
|
FROM alg_locatie l,
|
|
alg_gebouw g,
|
|
alg_verdieping v,
|
|
alg_ruimte r
|
|
WHERE l.alg_locatie_key = g.alg_locatie_key
|
|
AND g.alg_gebouw_key = v.alg_gebouw_key
|
|
AND v.alg_verdieping_key = r.alg_verdieping_key) locatie,
|
|
( SELECT res_rsv_ruimte_key,
|
|
MAX (o.res_opstelling_omschrijving) opstelling,
|
|
MAX (ro.res_ruimte_opstel_bezoekers) capaciteit,
|
|
MAX (ra.alg_ruimte_key) alg_ruimte_key,
|
|
MAX (rr.res_ruimte_nr) ruimte_nr
|
|
FROM res_rsv_ruimte r,
|
|
res_ruimte_opstelling ro,
|
|
res_opstelling o,
|
|
res_ruimte rr,
|
|
res_alg_ruimte ra
|
|
WHERE r.res_rsv_ruimte_verwijder IS NULL
|
|
AND r.res_ruimte_opstel_key = ro.res_ruimte_opstel_key
|
|
AND ro.res_ruimte_key = rr.res_ruimte_key
|
|
AND ro.res_opstelling_key = o.res_opstelling_key
|
|
AND rr.res_ruimte_key = ra.res_ruimte_key
|
|
GROUP BY res_rsv_ruimte_key
|
|
UNION ALL
|
|
SELECT res_rsv_ruimte_key,
|
|
'' opstelling,
|
|
NULL capaciteit,
|
|
rrr.alg_ruimte_key,
|
|
r.alg_ruimte_nr
|
|
FROM res_rsv_ruimte rrr, alg_ruimte r
|
|
WHERE rrr.alg_ruimte_key IS NOT NULL
|
|
AND r.alg_ruimte_key = rrr.alg_ruimte_key) r2a
|
|
WHERE fin_verkoopfactuur_c4 = 'catering'
|
|
AND fin_verkoopfactuur_c1 <> 'dummy'
|
|
AND r.res_rsv_ruimte_key = v.fin_verkoopfactuur_refkey
|
|
AND locatie.alg_ruimte_key = r2a.alg_ruimte_key
|
|
AND r.res_rsv_ruimte_key = r2a.res_rsv_ruimte_key(+);
|
|
|
|
CREATE OR REPLACE PROCEDURE pnbr_export_topdesk (p_applname IN VARCHAR2,
|
|
p_applrun IN VARCHAR2,
|
|
p_filedir IN VARCHAR2,
|
|
p_filename IN VARCHAR2)
|
|
AS
|
|
oracle_err_num NUMBER;
|
|
oracle_err_mes VARCHAR2 (200);
|
|
v_errorhint VARCHAR2 (100);
|
|
v_aanduiding VARCHAR2 (100);
|
|
v_locatie_key NUMBER;
|
|
v_lengte NUMBER;
|
|
v_status_ogd VARCHAR2 (200);
|
|
v_status_ogd_new VARCHAR2 (200);
|
|
v_status_ogd_key NUMBER;
|
|
v_new_note VARCHAR2 (4000);
|
|
|
|
-- Dit haalt het externnummer op uit de opdrachtomschrijving indien externnr bij de melding nog leeg is
|
|
-- De syncstate moet gezet worden om te bepalen wat wanneer gesynchroniseerd is
|
|
-- Na het aanmaken van de opdrachte zetten we de sync state gelijk aan de order date
|
|
CURSOR externnr IS
|
|
SELECT DISTINCT
|
|
m.mld_melding_key,
|
|
o.mld_opdr_key,
|
|
o.mld_opdr_externnr AS externnr,
|
|
km.mld_kenmerk_key,
|
|
fac.safe_to_number (
|
|
TO_CHAR (o.mld_opdr_datumbegin, 'yyyymmddhh24miss')) AS sync_date_new
|
|
FROM mld_melding m,
|
|
mld_opdr o,
|
|
mld_stdmelding sm,
|
|
mld_kenmerk km,
|
|
mld_srtkenmerk sk
|
|
WHERE m.mld_melding_key = o.mld_melding_key
|
|
AND sm.mld_stdmelding_key = m.mld_stdmelding_key
|
|
AND o.mld_opdr_externnr IS NOT NULL
|
|
AND km.mld_stdmelding_key = sm.mld_ins_discipline_key
|
|
AND sk.mld_srtkenmerk_key = km.mld_srtkenmerk_key
|
|
AND UPPER (sk.mld_srtkenmerk_omschrijving) = 'SYNC_OGD'
|
|
AND sm.mld_ins_discipline_key IN (4141, 4162) -- Enkel voor de vakgroepen die met Topdesk gekoppeld worden.
|
|
AND m.mld_melding_externnr IS NULL;
|
|
|
|
-- Onderstaande cursor verzamelt de meldingen die status 'Actie aanvrager' (actie code = 2) moeten krijgen
|
|
-- Dit is wanneer OGD 60449 een notitie heeft aangemaakt
|
|
-- Wacht op klant (voorheen: Pending customer) is gezet na de laatste sync state of de sync state was nog leeg
|
|
CURSOR actie_cust IS
|
|
SELECT m.mld_melding_key,
|
|
o.mld_opdr_key,
|
|
o.mld_statusopdr_key
|
|
opdr_status,
|
|
sm.mld_ins_discipline_key,
|
|
m.prs_perslid_key_voor,
|
|
pm.prs_perslid_email
|
|
email_melder,
|
|
pr.prs_perslid_email
|
|
email_registreerder,
|
|
DECODE (sm.mld_ins_discipline_key,
|
|
4162, 'dienstenplein@pnbr.nl',
|
|
1582, pr.prs_perslid_email)
|
|
email_opdrrej,
|
|
n.mld_melding_note_aanmaak,
|
|
fac.safe_to_number (TO_CHAR (SYSDATE, 'yyyymmddhh24miss'))
|
|
AS sync_date_new,
|
|
n.prs_perslid_key,
|
|
syncdate.syncdate,
|
|
syncdate.mld_kenmerkmelding_key,
|
|
km.mld_kenmerk_key
|
|
FROM mld_melding m,
|
|
mld_opdr o,
|
|
prs_perslid pm, -- melder
|
|
prs_perslid pr, -- registreerder
|
|
mld_stdmelding sm,
|
|
mld_melding_note n,
|
|
mld_kenmerk km,
|
|
(SELECT fac.safe_to_number (mld_kenmerkmelding_waarde)
|
|
syncdate,
|
|
mld.mld_melding_key,
|
|
sync.mld_kenmerkmelding_key
|
|
FROM mld_kenmerkmelding sync,
|
|
mld_kenmerk km,
|
|
mld_srtkenmerk skm,
|
|
mld_melding mld
|
|
WHERE mld.mld_melding_key = sync.mld_melding_key
|
|
AND km.mld_kenmerk_key = sync.mld_kenmerk_key
|
|
AND skm.mld_srtkenmerk_key = km.mld_srtkenmerk_key
|
|
AND skm.mld_srtkenmerk_key = 9083) syncdate
|
|
WHERE sm.mld_stdmelding_key = m.mld_stdmelding_key
|
|
AND sm.mld_ins_discipline_key IN (4162, 1582) --- alleen vakgroepen OGD en ICT wijziging
|
|
AND n.mld_melding_key = m.mld_melding_key
|
|
AND o.mld_melding_key = m.mld_melding_key
|
|
AND n.prs_perslid_key = 60449
|
|
AND m.prs_perslid_key_voor = pm.prs_perslid_key
|
|
AND m.prs_perslid_key = pr.prs_perslid_key
|
|
AND syncdate.mld_melding_key(+) = m.mld_melding_key
|
|
AND km.mld_stdmelding_key = sm.mld_ins_discipline_key --- let op: kenmerk zit gekoppeld op discipline niveau
|
|
AND km.mld_srtkenmerk_key = 9083
|
|
AND ( fac.safe_to_number (
|
|
TO_CHAR (mld_melding_note_aanmaak,
|
|
'yyyymmddhh24miss')) >
|
|
syncdate.syncdate
|
|
OR syncdate.syncdate IS NULL);
|
|
|
|
-- Onderstaande cursor verzamelt de gegevens om te bepalen welke meldingen nieuwe opmerkingen heeft en die verzonden kunnen worden naar Topdesk
|
|
-- Alle notities bij een melding die niet al eerder zijn verstuurd en niet door OGD zijn gemaakt mogen verstuurd worden
|
|
CURSOR sync IS
|
|
SELECT mld_melding_key,
|
|
mld_opdr_key,
|
|
mld_ins_discipline_key,
|
|
notitie,
|
|
mld_melding_note_aanmaak,
|
|
fac.safe_to_number (
|
|
TO_CHAR (mld_melding_note_aanmaak, 'yyyymmddhh24miss'))
|
|
AS note,
|
|
sync,
|
|
sync_key
|
|
FROM ( SELECT mld.mld_melding_key,
|
|
o.mld_opdr_key,
|
|
sm.mld_ins_discipline_key,
|
|
LISTAGG (
|
|
prs.prs_perslid_naam_friendly
|
|
|| '/'
|
|
|| mn.mld_melding_note_aanmaak
|
|
|| ' '
|
|
|| mn.mld_melding_note_omschrijving,
|
|
'; ')
|
|
WITHIN GROUP (ORDER BY mld.mld_melding_key)
|
|
notitie,
|
|
MAX (mn.mld_melding_note_aanmaak)
|
|
mld_melding_note_aanmaak,
|
|
(SELECT fac.safe_to_number (
|
|
sync.mld_kenmerkmelding_waarde)
|
|
FROM mld_kenmerkmelding sync,
|
|
mld_kenmerk km,
|
|
mld_srtkenmerk skm,
|
|
mld_melding m
|
|
WHERE m.mld_melding_key = sync.mld_melding_key
|
|
AND m.mld_melding_key = mld.mld_melding_key
|
|
AND km.mld_kenmerk_key = sync.mld_kenmerk_key
|
|
AND skm.mld_srtkenmerk_key =
|
|
km.mld_srtkenmerk_key
|
|
AND skm.mld_srtkenmerk_key = 9083)
|
|
AS sync,
|
|
(SELECT sync.mld_kenmerkmelding_key
|
|
FROM mld_kenmerkmelding sync,
|
|
mld_kenmerk km,
|
|
mld_srtkenmerk skm,
|
|
mld_melding m
|
|
WHERE m.mld_melding_key = sync.mld_melding_key
|
|
AND m.mld_melding_key = mld.mld_melding_key
|
|
AND km.mld_kenmerk_key = sync.mld_kenmerk_key
|
|
AND skm.mld_srtkenmerk_key =
|
|
km.mld_srtkenmerk_key
|
|
AND skm.mld_srtkenmerk_key = 9083)
|
|
AS sync_key
|
|
FROM mld_melding mld,
|
|
mld_melding_note mn,
|
|
mld_stdmelding sm,
|
|
mld_opdr o,
|
|
prs_v_perslid_fullnames_all prs
|
|
WHERE mn.mld_melding_key = mld.mld_melding_key
|
|
AND sm.mld_stdmelding_key = mld.mld_stdmelding_key
|
|
AND mn.prs_perslid_key = prs.prs_perslid_key
|
|
AND mn.prs_perslid_key <> 60449 --- we gaan de notities van API user OGD niet naar hen terug sturen
|
|
AND mld.mld_melding_key = o.mld_melding_key -- Enkel Sync_OGD bijwerken indien er ook een opdracht is.
|
|
AND o.mld_uitvoerende_keys = 59728 -- We doen dit alleen voor opdrachten die bij OGD liggen
|
|
AND o.mld_statusopdr_key IN (5, 8)
|
|
AND fac.safe_to_number (
|
|
TO_CHAR (mld_melding_note_aanmaak,
|
|
'yyyymmddhh24miss')) >
|
|
fac.safe_to_number (
|
|
TO_CHAR (o.mld_opdr_datumbegin,
|
|
'yyyymmddhh24miss'))
|
|
AND ( (SELECT fac.safe_to_number (
|
|
sync.mld_kenmerkmelding_waarde)
|
|
FROM mld_kenmerkmelding sync,
|
|
mld_kenmerk km,
|
|
mld_srtkenmerk skm,
|
|
mld_melding m
|
|
WHERE m.mld_melding_key =
|
|
sync.mld_melding_key
|
|
AND m.mld_melding_key =
|
|
mld.mld_melding_key
|
|
AND km.mld_kenmerk_key =
|
|
sync.mld_kenmerk_key
|
|
AND skm.mld_srtkenmerk_key =
|
|
km.mld_srtkenmerk_key
|
|
AND skm.mld_srtkenmerk_key = 9083) <
|
|
fac.safe_to_number (
|
|
TO_CHAR (mld_melding_note_aanmaak,
|
|
'yyyymmddhh24miss'))
|
|
OR ((SELECT fac.safe_to_number (
|
|
sync.mld_kenmerkmelding_waarde)
|
|
FROM mld_kenmerkmelding sync,
|
|
mld_kenmerk km,
|
|
mld_srtkenmerk skm,
|
|
mld_melding m
|
|
WHERE m.mld_melding_key =
|
|
sync.mld_melding_key
|
|
AND m.mld_melding_key =
|
|
mld.mld_melding_key
|
|
AND km.mld_kenmerk_key =
|
|
sync.mld_kenmerk_key
|
|
AND skm.mld_srtkenmerk_key =
|
|
km.mld_srtkenmerk_key
|
|
AND skm.mld_srtkenmerk_key = 9083)
|
|
IS NULL))
|
|
GROUP BY mld.mld_melding_key,
|
|
o.mld_opdr_key,
|
|
sm.mld_ins_discipline_key
|
|
ORDER BY mld_melding_key, mld_melding_note_aanmaak DESC);
|
|
BEGIN
|
|
v_errorhint := 'init';
|
|
v_lengte := 0;
|
|
|
|
-- Hier vullen we het externnr bij de melding, zodra deze (als kenmerk) bij de opdracht binnenkomt vanuit Topdesk
|
|
FOR rec IN externnr
|
|
LOOP
|
|
BEGIN
|
|
v_aanduiding := 'Melding: ' || rec.mld_melding_key;
|
|
v_errorhint :=
|
|
'Melding vullen met externnr voor melding '
|
|
|| rec.mld_melding_key;
|
|
|
|
UPDATE mld_melding
|
|
SET mld_melding_externnr = rec.externnr
|
|
WHERE mld_melding_key = rec.mld_melding_key;
|
|
|
|
-- Vervolgens zetten we de sync state zodat we weten vanaf wanneer de sync van notities en bijlagen mag gaan lopen
|
|
mld.upsertmeldingkenmerk (rec.mld_kenmerk_key,
|
|
rec.mld_melding_key,
|
|
rec.sync_date_new);
|
|
COMMIT;
|
|
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;
|
|
|
|
-- We zetten de status van de melding nog op respectievelijk 'Actie aanvrager', 'Attentie' indien Topdesk na laatste bericht vanuit Facilitor hierom vraagt.
|
|
FOR rec IN actie_cust
|
|
LOOP
|
|
BEGIN
|
|
SELECT ko.mld_kenmerkopdr_waarde
|
|
INTO v_status_ogd
|
|
FROM mld_kenmerkopdr ko,
|
|
mld_kenmerk k,
|
|
mld_srtkenmerk sk,
|
|
mld_opdr o
|
|
WHERE ko.mld_kenmerk_key = k.mld_kenmerk_key
|
|
AND k.mld_srtkenmerk_key = sk.mld_srtkenmerk_key
|
|
AND o.mld_opdr_key = ko.mld_opdr_key
|
|
AND sk.mld_srtkenmerk_key = 9081
|
|
AND ko.mld_kenmerkopdr_verwijder IS NULL
|
|
AND o.mld_melding_key = rec.mld_melding_key;
|
|
|
|
IF rec.opdr_status = 1
|
|
THEN
|
|
|
|
-- de opdracht is door OGD afgewezen, de melding krijgt een attentie belletje
|
|
UPDATE mld_melding
|
|
SET mld_melding_actiecode = 129
|
|
WHERE mld_melding_key = rec.mld_melding_key;
|
|
|
|
-- we sturen ook een notificatie naar DPL of de melder
|
|
INSERT INTO fac_notificatie (fac_srtnotificatie_key,
|
|
fac_notificatie_status,
|
|
fac_notificatie_receiver_email,
|
|
fac_notificatie_oms,
|
|
fac_notificatie_refkey,
|
|
fac_notificatie_prioriteit)
|
|
VALUES (
|
|
57, --- ordrej
|
|
2,
|
|
rec.email_opdrrej,
|
|
'Opdracht bij melding '
|
|
|| rec.mld_melding_key
|
|
|| ' is afgewezen door OGD',
|
|
rec.mld_opdr_key,
|
|
2);
|
|
|
|
-- Als vanuit Topdesk een status wordt meegestuurd dan moet er genotificeerd worden
|
|
ELSE
|
|
IF UPPER (v_status_ogd) = 'WACHT OP KLANT' --- voorheen: PENDING CUSTOMER
|
|
THEN
|
|
v_aanduiding := 'Melding: ' || rec.mld_melding_key;
|
|
v_errorhint :=
|
|
'Status melding naar Actie aanvrager voor melding '
|
|
|| rec.mld_melding_key;
|
|
|
|
UPDATE mld_melding
|
|
SET mld_melding_actiecode = 2
|
|
WHERE mld_melding_key = rec.mld_melding_key;
|
|
|
|
INSERT INTO fac_notificatie (fac_srtnotificatie_key,
|
|
fac_notificatie_status,
|
|
prs_perslid_key_receiver,
|
|
fac_notificatie_oms,
|
|
fac_notificatie_refkey,
|
|
fac_notificatie_prioriteit)
|
|
VALUES (
|
|
161, --- mldnot
|
|
2,
|
|
rec.prs_perslid_key_voor,
|
|
'Notitie toegevoegd door OGD bij melding '
|
|
|| rec.mld_melding_key,
|
|
rec.mld_melding_key,
|
|
2);
|
|
ELSE
|
|
IF UPPER (v_status_ogd) =
|
|
'MELDING KWALITATIEF ONVOLDOENDE'
|
|
THEN
|
|
v_aanduiding := 'Melding: ' || rec.mld_melding_key;
|
|
v_errorhint :=
|
|
'Status melding naar Attentie voor melding '
|
|
|| rec.mld_melding_key;
|
|
|
|
UPDATE mld_melding
|
|
SET mld_melding_actiecode = 129
|
|
WHERE mld_melding_key = rec.mld_melding_key;
|
|
|
|
UPDATE mld_melding
|
|
SET mld_melding_flag = 5
|
|
WHERE mld_melding_key = rec.mld_melding_key;
|
|
|
|
INSERT INTO fac_notificatie (
|
|
fac_srtnotificatie_key,
|
|
fac_notificatie_status,
|
|
fac_notificatie_receiver_email,
|
|
fac_notificatie_oms,
|
|
fac_notificatie_refkey,
|
|
fac_notificatie_prioriteit)
|
|
VALUES (
|
|
282, --- mldnob gaat altijd naar DPL
|
|
2,
|
|
'dienstenplein@pnbr.nl',
|
|
'Melding '
|
|
|| rec.mld_melding_key
|
|
|| ' is incompleet bevonden door OGD',
|
|
rec.mld_melding_key,
|
|
2);
|
|
END IF;
|
|
END IF;
|
|
END IF;
|
|
|
|
-- Vervolgens zetten we de sync date zodat we weten dat we weten tot hoever de notities al verwerkt zijn
|
|
mld.upsertmeldingkenmerk (rec.mld_kenmerk_key,
|
|
rec.mld_melding_key,
|
|
rec.sync_date_new);
|
|
COMMIT;
|
|
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 sync
|
|
LOOP
|
|
BEGIN
|
|
-- Eerst verzamelen we alle nieuwe notities en zetten deze klaar in een kenmerk voor verzending
|
|
v_aanduiding := 'Melding: ' || rec.mld_melding_key;
|
|
v_errorhint :=
|
|
'Notities verzamelen voor verzending ' || rec.mld_melding_key;
|
|
|
|
-- Daarvoor moeten we de juiste kenmerkkey bepalen
|
|
SELECT k.mld_kenmerk_key
|
|
INTO v_new_note
|
|
FROM mld_opdr o, mld_kenmerk k, mld_srtkenmerk sk
|
|
WHERE o.mld_typeopdr_key = k.mld_typeopdr_key
|
|
AND sk.mld_srtkenmerk_key = k.mld_srtkenmerk_key
|
|
AND UPPER (sk.mld_srtkenmerk_omschrijving) =
|
|
'UPDATE_NOTITIES'
|
|
AND o.mld_opdr_key = rec.mld_opdr_key;
|
|
|
|
-- De oude notitie gooien we weg
|
|
DELETE MLD_KENMERKOPDR ko
|
|
WHERE ko.mld_opdr_key = rec.mld_opdr_key
|
|
AND ko.mld_kenmerk_key = v_new_note;
|
|
|
|
-- Dan vullen we de nieuwe notitie
|
|
mld.upsertopdrachtkenmerk (v_new_note,
|
|
rec.mld_opdr_key,
|
|
rec.notitie);
|
|
|
|
v_errorhint :=
|
|
'Opdracht opnieuw te verzenden voor melding '
|
|
|| rec.mld_melding_key;
|
|
|
|
-- Eerst zetten we de opdracht opnieuw klaar om te verzenden
|
|
UPDATE mld_opdr o
|
|
SET mld_opdr_teverzenden = 2, mld_opdr_verzonden = NULL
|
|
WHERE o.mld_opdr_key = rec.mld_opdr_key;
|
|
|
|
v_errorhint :=
|
|
'Syncdatum bijwerken voor melding ' || rec.mld_melding_key;
|
|
|
|
-- Als er nog niet eerder gesynchroniseerd is maken we een kenmerk aan met de syncdatum
|
|
-- Als al eerder gesynchroniseerd is werken we de syncdatum bij
|
|
-- Hiermee komt deze notitie de volgende keer niet meer voor in de cursor
|
|
CASE
|
|
WHEN rec.sync IS NULL
|
|
THEN
|
|
INSERT INTO mld_kenmerkmelding (
|
|
mld_melding_key,
|
|
mld_kenmerk_key,
|
|
mld_kenmerkmelding_waarde)
|
|
VALUES (
|
|
rec.mld_melding_key,
|
|
(SELECT DISTINCT mld_kenmerk_key
|
|
FROM mld_kenmerk
|
|
WHERE mld_srtkenmerk_key = 9083 -- Kenmerksoort tbv synchronisatie van opmerkingen naar Topdesk
|
|
AND mld_stdmelding_key =
|
|
rec.mld_ins_discipline_key),
|
|
rec.note);
|
|
|
|
--- deze notitie moet resulteren in een patch naar Topdesk
|
|
--- dat wordt getriggerd door een ordupd
|
|
fac.trackaction ('ORDUPD',
|
|
rec.mld_opdr_key,
|
|
NULL,
|
|
NULL,
|
|
'Sync_OGD: (leeg) --> ' || rec.note);
|
|
ELSE
|
|
UPDATE mld_kenmerkmelding
|
|
SET mld_kenmerkmelding_waarde = rec.note
|
|
WHERE rec.sync_key = mld_kenmerkmelding_key;
|
|
|
|
--- deze notitie moet resulteren in een patch naar Topdesk
|
|
--- dat wordt getriggerd door een ordupd
|
|
fac.trackaction (
|
|
'ORDUPD',
|
|
rec.mld_opdr_key,
|
|
NULL,
|
|
NULL,
|
|
'Sync_OGD: ' || rec.sync || ' --> ' || rec.note);
|
|
END CASE;
|
|
|
|
-- De status OGD werken we dan ook nog even netjes bij
|
|
SELECT k.mld_kenmerk_key,
|
|
CASE
|
|
WHEN (UPPER (status_ogd.mld_kenmerkopdr_waarde) =
|
|
'WACHT OP KLANT') --> PENDING CUSTOMER is geworden Wacht op klant
|
|
THEN
|
|
'Reactie ontvangen'
|
|
WHEN UPPER (status_ogd.mld_kenmerkopdr_waarde) =
|
|
'MELDING KWALITATIEF ONVOLDOENDE' --> PENDING DPL is geworden Melding kwalitatief onvoldoende
|
|
AND m.mld_melding_flag = 3
|
|
THEN
|
|
'Melding kwalitatief onvoldoende'
|
|
WHEN UPPER (status_ogd.mld_kenmerkopdr_waarde) =
|
|
'MELDING KWALITATIEF ONVOLDOENDE'
|
|
AND ( m.mld_melding_flag <> 3
|
|
OR m.mld_melding_flag IS NULL)
|
|
THEN
|
|
'Reactie ontvangen'
|
|
ELSE
|
|
'Reactie ontvangen'
|
|
END CASE
|
|
INTO v_status_ogd_key, v_status_ogd_new
|
|
FROM mld_kenmerk k,
|
|
mld_opdr o,
|
|
mld_srtkenmerk sk,
|
|
mld_melding m,
|
|
(SELECT ko.mld_opdr_key,
|
|
ko.mld_kenmerkopdr_waarde,
|
|
k.mld_kenmerk_key
|
|
FROM mld_kenmerkopdr ko,
|
|
mld_kenmerk k,
|
|
mld_srtkenmerk sk
|
|
WHERE ko.mld_kenmerk_key = k.mld_kenmerk_key
|
|
AND k.mld_srtkenmerk_key = sk.mld_srtkenmerk_key
|
|
AND sk.mld_srtkenmerk_key = 9081
|
|
AND ko.mld_kenmerkopdr_verwijder IS NULL)
|
|
status_ogd
|
|
WHERE o.mld_typeopdr_key = k.mld_typeopdr_key
|
|
AND sk.mld_srtkenmerk_key = 9081
|
|
AND k.mld_srtkenmerk_key = sk.mld_srtkenmerk_key
|
|
AND o.mld_melding_key = m.mld_melding_key
|
|
AND status_ogd.mld_opdr_key(+) = o.mld_opdr_key
|
|
AND o.mld_opdr_key = rec.mld_opdr_key;
|
|
|
|
mld.upsertopdrachtkenmerk (v_status_ogd_key,
|
|
rec.mld_opdr_key,
|
|
v_status_ogd_new);
|
|
|
|
COMMIT;
|
|
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;
|
|
|
|
COMMIT;
|
|
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 pnbr_export_topdesk;
|
|
/
|
|
|
|
CREATE OR REPLACE PROCEDURE pnbr_export_sms_bezoeker (
|
|
p_applname IN VARCHAR2,
|
|
p_applrun IN VARCHAR2,
|
|
p_filedir IN VARCHAR2,
|
|
p_filename IN VARCHAR2)
|
|
AS
|
|
CURSOR bez IS
|
|
SELECT sn.fac_srtnotificatie_key,
|
|
4 status,
|
|
'31652794464' mobiel, ---- nummer van de gastvrouwen/heren PNBR
|
|
t.fac_tracking_oms text,
|
|
b.bez_afspraak_key,
|
|
b.bez_bezoekers_key,
|
|
t.fac_tracking_datum
|
|
FROM fac_tracking t, bez_bezoekers b, fac_srtnotificatie sn
|
|
WHERE t.fac_srtnotificatie_key = 26 --- bezdon, aankomst bezoek
|
|
AND t.fac_tracking_refkey = b.bez_bezoekers_key
|
|
AND sn.fac_srtnotificatie_code = 'CUST07'
|
|
AND TRUNC (t.fac_tracking_datum) = TRUNC (SYSDATE)
|
|
AND b.bez_bezoekers_key NOT IN
|
|
(SELECT kw.bez_bezoekers_key
|
|
FROM bez_kenmerkwaarde kw, bez_kenmerk k
|
|
WHERE k.bez_kenmerk_key = kw.bez_kenmerk_key
|
|
AND k.bez_kenmerk_upper = 'VERTROUWELIJK') -- wanneer bezoek vertrouwelijk is geen sms
|
|
AND NOT EXISTS
|
|
(SELECT bez_kenmerkwaarde_waarde
|
|
FROM bez_kenmerkwaarde kw, bez_kenmerk k
|
|
WHERE k.bez_kenmerk_key = kw.bez_kenmerk_key
|
|
AND k.bez_kenmerk_upper = 'SMS' -- sms verzonden
|
|
AND kw.bez_bezoekers_key = b.bez_bezoekers_key);
|
|
BEGIN
|
|
FOR rec IN bez
|
|
LOOP
|
|
-- de SMS berichten versturen
|
|
INSERT INTO fac_notificatie (fac_srtnotificatie_key,
|
|
fac_notificatie_status,
|
|
fac_notificatie_receiver_phone,
|
|
fac_notificatie_oms,
|
|
fac_notificatie_refkey,
|
|
fac_notificatie_extrakey,
|
|
fac_notificatie_prioriteit)
|
|
VALUES (rec.fac_srtnotificatie_key,
|
|
rec.status,
|
|
rec.mobiel,
|
|
rec.text,
|
|
rec.bez_afspraak_key,
|
|
rec.bez_bezoekers_key,
|
|
2);
|
|
|
|
-- een timestamp zetten dat de sms verstuurd is
|
|
pnbr.set_kenmerk ('BEZ', 1060, rec.bez_bezoekers_key, TO_CHAR (SYSDATE, 'yyyy-mm-dd hh24:mi:ss'), 0);
|
|
|
|
COMMIT;
|
|
|
|
END LOOP;
|
|
END;
|
|
/
|
|
|
|
CREATE OR REPLACE VIEW PNBR_V_RAP_REL_GESCHENKEN
|
|
AS
|
|
SELECT bes_bestelling_key,
|
|
bestelaanvraagnr,
|
|
besteldatum,
|
|
besteller,
|
|
afdeling_code,
|
|
afdeling_omschrijving,
|
|
catalogus,
|
|
catalogus_key,
|
|
productomschrijving,
|
|
prijs,
|
|
itemprijs,
|
|
keuze,
|
|
begrotingspost,
|
|
bet_pin
|
|
FROM (SELECT b.bes_bestelling_key
|
|
bes_bestelling_key,
|
|
'A-' || b.bes_bestelling_key
|
|
bestelaanvraagnr,
|
|
b.bes_bestelling_datum
|
|
besteldatum,
|
|
(SELECT prs_perslid_naam_full
|
|
FROM prs_v_perslid_fullnames_all pf
|
|
WHERE pf.prs_perslid_key = p.prs_perslid_key)
|
|
besteller,
|
|
a.prs_afdeling_naam
|
|
afdeling_code,
|
|
a.prs_afdeling_omschrijving
|
|
afdeling_omschrijving,
|
|
d.ins_discipline_omschrijving
|
|
catalogus,
|
|
d.ins_discipline_key
|
|
catalogus_key,
|
|
bi.bes_bestelling_item_prijs * bi.bes_bestelling_item_aantal
|
|
prijs,
|
|
bi.bes_bestelling_item_prijs
|
|
itemprijs,
|
|
sd.bes_srtdeel_omschrijving
|
|
productomschrijving,
|
|
(SELECT ud.fac_usrdata_code
|
|
FROM bes_srtkenmerk sk,
|
|
bes_kenmerk k,
|
|
bes_kenmerkbestell kb,
|
|
fac_usrdata ud
|
|
WHERE UPPER (sk.bes_srtkenmerk_omschrijving) =
|
|
'MAAK EEN KEUZE'
|
|
AND k.bes_srtkenmerk_key = sk.bes_srtkenmerk_key
|
|
AND kb.bes_kenmerk_key = k.bes_kenmerk_key
|
|
AND kb.bes_kenmerkbestell_waarde = ud.fac_usrdata_key
|
|
AND kb.bes_kenmerkbestell_verwijder IS NULL
|
|
AND kb.bes_bestelling_key = b.bes_bestelling_key)
|
|
keuze,
|
|
(SELECT kb.bes_kenmerkbestell_waarde
|
|
FROM bes_srtkenmerk sk,
|
|
bes_kenmerk k,
|
|
bes_kenmerkbestell kb
|
|
WHERE UPPER (sk.bes_srtkenmerk_omschrijving) =
|
|
'BEGROTINGSPOST'
|
|
AND k.bes_srtkenmerk_key = sk.bes_srtkenmerk_key
|
|
AND kb.bes_kenmerk_key = k.bes_kenmerk_key
|
|
AND kb.bes_kenmerkbestell_verwijder IS NULL
|
|
AND kb.bes_bestelling_key = b.bes_bestelling_key)
|
|
begrotingspost,
|
|
(SELECT kb.bes_kenmerkbestell_waarde
|
|
FROM bes_srtkenmerk sk,
|
|
bes_kenmerk k,
|
|
bes_kenmerkbestell kb
|
|
WHERE UPPER (sk.bes_srtkenmerk_omschrijving) =
|
|
'BETALING PER PIN'
|
|
AND k.bes_srtkenmerk_key = sk.bes_srtkenmerk_key
|
|
AND kb.bes_kenmerk_key = k.bes_kenmerk_key
|
|
AND kb.bes_kenmerkbestell_verwijder IS NULL
|
|
AND kb.bes_bestelling_key = b.bes_bestelling_key)
|
|
bet_pin
|
|
FROM bes_bestelling b,
|
|
prs_perslid p,
|
|
prs_afdeling a,
|
|
bes_bestelling_item bi,
|
|
bes_srtdeel sd,
|
|
bes_srtgroep sg,
|
|
ins_tab_discipline d
|
|
WHERE b.prs_perslid_key = p.prs_perslid_key
|
|
AND p.prs_afdeling_key = a.prs_afdeling_key
|
|
AND b.bes_bestelling_key = bi.bes_bestelling_key
|
|
AND bi.bes_srtdeel_key = sd.bes_srtdeel_key
|
|
AND sd.bes_srtgroep_key = sg.bes_srtgroep_key
|
|
AND sg.ins_discipline_key = d.ins_discipline_key)
|
|
WHERE besteldatum > = ADD_MONTHS (TRUNC (SYSDATE, 'Q'), -3)
|
|
AND besteldatum < = TRUNC (SYSDATE, 'Q') - 1
|
|
AND catalogus_key IN (2441, --- Bloemenboetiek D. Bragt
|
|
2442, --- Bloemsierkunst Oxalis
|
|
2443, --- Bloemsierkunst Peter Kuys
|
|
3041, --- Cadeaubon
|
|
123, --- Geschenk
|
|
1041, --- Geschenk GS (cat. D)
|
|
3481 --- VVV Cadeaukaart
|
|
);
|
|
|
|
CREATE OR REPLACE VIEW PNBR_V_NOTI_MAILING
|
|
(
|
|
CODE,
|
|
SENDER,
|
|
RECEIVER,
|
|
TEXT,
|
|
KEY,
|
|
XKEY,
|
|
XEMAIL,
|
|
XMOBILE
|
|
)
|
|
AS
|
|
SELECT fac_srtnotificatie_code code,
|
|
4 sender, --- 4 = Facilitor
|
|
NULL receiver,
|
|
'Besteloverzicht relatiegeschenken afgelopen kwartaal' text,
|
|
2761 key, ---- refkey: is het rapport PNBR_V_RAP_REL_GESCHENKEN
|
|
NULL xkey,
|
|
'fstolzenbach@brabant.nl' xemail,
|
|
NULL xmobile
|
|
FROM fac_srtnotificatie sn
|
|
WHERE sn.fac_srtnotificatie_code = 'CUST08'
|
|
AND TO_CHAR (SYSDATE, 'dd') = '01' -- Elke 1e dag het nieuwe kwartaal
|
|
AND TO_CHAR (SYSDATE, 'mm') IN ('01', -- Over kwartaal 4 vorig jaar
|
|
'04', -- Over kwartaal 1
|
|
'07', -- Over kwartaal 2
|
|
'10' -- Over kwartaal 3
|
|
);
|
|
|
|
------ 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 |