9581 lines
412 KiB
MySQL
9581 lines
412 KiB
MySQL
--
|
|
-- $Id$
|
|
--
|
|
-- Customer specific sql statements for the FACILITOR database
|
|
--
|
|
|
|
DEFINE thisfile = 'BLST.SQL'
|
|
DEFINE dbuser = 'BLST'
|
|
|
|
SET ECHO ON
|
|
SET DEFINE ON
|
|
COLUMN fcltlogfile NEW_VALUE fcltlogfile NOPRINT;
|
|
COLUMN fcltcusttxt NEW_VALUE fcltcusttxt NOPRINT;
|
|
WHENEVER SQLERROR CONTINUE;
|
|
|
|
SELECT adm.getscriptspoolfile ('&thisfile') AS fcltlogfile FROM DUAL;
|
|
|
|
SPOOL &fcltlogfile
|
|
WHENEVER SQLERROR EXIT;
|
|
|
|
SELECT adm.checkscriptcust ('&dbuser') AS fcltcusttxt FROM DUAL;
|
|
|
|
WHENEVER SQLERROR CONTINUE;
|
|
---------------------------------------
|
|
PROMPT &fcltcusttxt
|
|
---------------------------------------
|
|
SET DEFINE OFF
|
|
|
|
------ payload begin ------
|
|
|
|
CREATE OR REPLACE PACKAGE BLST
|
|
AS
|
|
TYPE t_cursor IS REF CURSOR;
|
|
|
|
PROCEDURE prs_ext_mandaten (p_perslid_key IN NUMBER);
|
|
|
|
PROCEDURE prs_bd_werkplekken (p_perslid_key IN NUMBER);
|
|
|
|
PROCEDURE prs_ext_werkplekken (p_perslid_key IN NUMBER);
|
|
|
|
PROCEDURE prs_autorisaties (p_perslid_key IN NUMBER);
|
|
|
|
PROCEDURE add_xml_row (p_bestand IN VARCHAR2, p_regel IN VARCHAR2);
|
|
|
|
PROCEDURE add_xml_element (p_bestand IN VARCHAR2,
|
|
p_tag IN VARCHAR2,
|
|
p_value IN VARCHAR2);
|
|
|
|
|
|
|
|
FUNCTION getKeyFromAanvraagNr (p_aanvraagnr IN VARCHAR2)
|
|
RETURN NUMBER;
|
|
|
|
FUNCTION getAanvraagNr (p_key IN NUMBER, p_type IN VARCHAR2)
|
|
RETURN VARCHAR2;
|
|
|
|
FUNCTION get_SAPid
|
|
RETURN VARCHAR2;
|
|
|
|
FUNCTION getguid
|
|
RETURN VARCHAR2;
|
|
|
|
PROCEDURE add2exportTable (p_res_key IN VARCHAR2,
|
|
p_sapid IN VARCHAR2,
|
|
p_regel_nr IN NUMBER,
|
|
p_artikel_key IN NUMBER,
|
|
p_artikel_nr IN VARCHAR2,
|
|
p_aantal IN NUMBER,
|
|
p_export_type IN VARCHAR2,
|
|
p_actie IN VARCHAR2);
|
|
|
|
PROCEDURE inactivate_prs;
|
|
|
|
PROCEDURE anonimiseer_bezoeker;
|
|
|
|
PROCEDURE anonimiseer_mld;
|
|
|
|
PROCEDURE anonimiseer_prs;
|
|
|
|
PROCEDURE afmelden_reserveringen;
|
|
|
|
PROCEDURE noti_bezoek;
|
|
|
|
FUNCTION aantal_weekdagen (datum_van IN DATE, datum_tot IN DATE)
|
|
RETURN NUMBER;
|
|
|
|
FUNCTION aantal_weekenddagen (datum_van IN DATE, datum_tot IN DATE)
|
|
RETURN NUMBER;
|
|
|
|
FUNCTION aantal_vrije_dagen (datum_van IN DATE, datum_tot IN DATE)
|
|
RETURN NUMBER;
|
|
|
|
PROCEDURE bes_btw_lyreco (p_bestelling_key IN NUMBER);
|
|
|
|
PROCEDURE bes_lt_lyreco (p_bestelling_key IN NUMBER);
|
|
|
|
PROCEDURE bes_bgd_lyreco (p_bestelling_key IN NUMBER);
|
|
|
|
PROCEDURE bes_geen_cpv_btw (p_bestelling_key IN NUMBER);
|
|
|
|
PROCEDURE controleer_bestelling (p_bestelling_key IN NUMBER);
|
|
|
|
PROCEDURE archiveer_uitleen;
|
|
|
|
END;
|
|
/
|
|
|
|
CREATE OR REPLACE PACKAGE BODY BLST
|
|
AS
|
|
PROCEDURE prs_ext_mandaten (p_perslid_key IN NUMBER)
|
|
AS
|
|
oracle_err_num NUMBER;
|
|
oracle_err_mes VARCHAR2 (200);
|
|
v_errormsg VARCHAR2 (200);
|
|
|
|
CURSOR c IS
|
|
SELECT p.prs_perslid_key,
|
|
kp.prs_kostenplaats_key,
|
|
kp.prs_kostenplaats_nr,
|
|
kp.prs_kostenplaats_omschrijving
|
|
FROM prs_perslid p,
|
|
prs_v_afdeling_boom ab,
|
|
prs_afdeling mandaat,
|
|
prs_kostenplaats kp
|
|
WHERE p.prs_perslid_key = p_perslid_key
|
|
AND p.prs_afdeling_key = ab.prs_afdeling_key1
|
|
AND ab.prs_bedrijf_key <> 41
|
|
AND ab.prs_afdeling_key2 = mandaat.prs_afdeling_key
|
|
AND mandaat.prs_kostenplaats_key = kp.prs_kostenplaats_key
|
|
AND mandaat.prs_afdeling_verwijder IS NULL
|
|
AND kp.prs_kostenplaats_verwijder IS NULL
|
|
AND ( kp.prs_kostenplaats_eind IS NULL
|
|
OR TRUNC (kp.prs_kostenplaats_eind) > TRUNC (SYSDATE))
|
|
AND NOT EXISTS
|
|
(SELECT *
|
|
FROM prs_perslidkostenplaats m
|
|
WHERE m.prs_kostenplaats_key =
|
|
kp.prs_kostenplaats_key
|
|
AND m.prs_perslid_key = p.prs_perslid_key);
|
|
BEGIN
|
|
FOR rec IN C
|
|
LOOP
|
|
INSERT INTO prs_perslidkostenplaats (
|
|
prs_perslid_key,
|
|
prs_kostenplaats_key,
|
|
prs_perslidkostenplaats_boeken,
|
|
prs_perslidkostenplaats_aanmk)
|
|
VALUES (rec.prs_perslid_key,
|
|
rec.prs_kostenplaats_key,
|
|
1,
|
|
SYSDATE);
|
|
|
|
COMMIT;
|
|
END LOOP;
|
|
EXCEPTION
|
|
WHEN OTHERS
|
|
THEN
|
|
oracle_err_num := SQLCODE;
|
|
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
|
|
v_errormsg :=
|
|
'OTHERS (error '
|
|
|| oracle_err_num
|
|
|| '/'
|
|
|| oracle_err_mes
|
|
|| ')';
|
|
fac.writelog ('Mandatering externe medewerker',
|
|
'E',
|
|
v_errormsg,
|
|
'');
|
|
END;
|
|
|
|
PROCEDURE prs_bd_werkplekken (p_perslid_key IN NUMBER)
|
|
AS
|
|
oracle_err_num NUMBER;
|
|
oracle_err_mes VARCHAR2 (200);
|
|
v_errormsg VARCHAR2 (200);
|
|
v_aanduiding VARCHAR2 (200);
|
|
v_errorhint VARCHAR2 (200);
|
|
v_perslid_key NUMBER;
|
|
|
|
--- werkplekken in gebouwen die voor alle BD medewerkers toegankelijk zijn
|
|
--- deze gebouwen zijn in een eigen tabel opgenomen
|
|
--- in de eigen tabel komt de waarde uit het veld 'prijs' overeen met de gebouwcode
|
|
--- en in de omschrijving staat de code BD
|
|
CURSOR WP_ALL IS
|
|
SELECT r.alg_ruimte_key
|
|
FROM fac_usrtab ut,
|
|
fac_usrdata ud,
|
|
alg_gebouw g,
|
|
alg_verdieping v,
|
|
alg_ruimte r
|
|
WHERE UPPER (ut.fac_usrtab_naam) = 'WERKPLEKKEN BD'
|
|
AND ut.fac_usrtab_key = ud.fac_usrtab_key
|
|
AND ut.fac_usrtab_verwijder IS NULL
|
|
AND (ud.fac_usrdata_vervaldatum > SYSDATE OR ud.fac_usrdata_vervaldatum IS NULL)
|
|
AND ud.fac_usrdata_verwijder IS NULL
|
|
AND fac.safe_to_number (ud.fac_usrdata_prijs) =
|
|
fac.safe_to_number (g.alg_gebouw_code)
|
|
AND v.alg_gebouw_key = g.alg_gebouw_key
|
|
AND r.alg_verdieping_key = v.alg_verdieping_key
|
|
AND r.alg_ruimte_nr = '_000'
|
|
AND r.alg_ruimte_verwijder IS NULL
|
|
AND v.alg_verdieping_verwijder IS NULL
|
|
AND UPPER (ud.fac_usrdata_omschr) = 'BD'
|
|
AND EXISTS
|
|
(SELECT a.prs_afdeling_key
|
|
FROM prs_afdeling a, prs_perslid p
|
|
WHERE ( a.prs_afdeling_parentkey = 21
|
|
OR a.prs_afdeling_key = 21)
|
|
AND p.prs_afdeling_key = a.prs_afdeling_key
|
|
AND p.prs_perslid_key = p_perslid_key)
|
|
AND NOT EXISTS
|
|
(SELECT pw.prs_perslid_key
|
|
FROM prs_perslidwerkplek pw, prs_werkplek w
|
|
WHERE pw.prs_werkplek_key = w.prs_werkplek_key
|
|
AND pw.prs_perslid_key = p_perslid_key
|
|
AND w.prs_alg_ruimte_key = r.alg_ruimte_key);
|
|
|
|
--- specifieke werkplekken in gebouwen voor bepaalde afdelingen
|
|
--- in de eigen tabel komt de waarde uit het veld 'prijs' overeen met de gebouwcode
|
|
--- en de omschrijving geeft aan welke afdeling binnen de BD toegang heeft tot en gebouw
|
|
CURSOR WP IS
|
|
SELECT p.prs_perslid_key, r.alg_ruimte_key
|
|
FROM fac_usrtab ut,
|
|
fac_usrdata ud,
|
|
prs_afdeling a,
|
|
prs_perslid p,
|
|
alg_gebouw g,
|
|
alg_verdieping v,
|
|
alg_ruimte r
|
|
WHERE UPPER (ut.fac_usrtab_naam) = 'WERKPLEKKEN BD'
|
|
AND ut.fac_usrtab_key = ud.fac_usrtab_key
|
|
AND ut.fac_usrtab_verwijder IS NULL
|
|
AND (ud.fac_usrdata_vervaldatum > SYSDATE OR ud.fac_usrdata_vervaldatum IS NULL)
|
|
AND ud.fac_usrdata_verwijder IS NULL
|
|
AND UPPER (ud.fac_usrdata_omschr) = a.prs_afdeling_upper
|
|
AND fac.safe_to_number (ud.fac_usrdata_prijs) =
|
|
fac.safe_to_number (g.alg_gebouw_code)
|
|
AND p.prs_afdeling_key = a.prs_afdeling_key
|
|
AND p.prs_perslid_verwijder IS NULL
|
|
AND v.alg_gebouw_key = g.alg_gebouw_key
|
|
AND r.alg_verdieping_key = v.alg_verdieping_key
|
|
AND r.alg_ruimte_nr = '_000'
|
|
AND r.alg_ruimte_verwijder IS NULL
|
|
AND v.alg_verdieping_verwijder IS NULL
|
|
AND EXISTS
|
|
(SELECT prs_afdeling_key
|
|
FROM prs_afdeling a
|
|
WHERE ( a.prs_afdeling_parentkey = 21
|
|
OR a.prs_afdeling_key = 21)
|
|
AND p.prs_afdeling_key = a.prs_afdeling_key)
|
|
AND NOT EXISTS
|
|
(SELECT pw.prs_perslid_key
|
|
FROM prs_perslidwerkplek pw, prs_werkplek w
|
|
WHERE pw.prs_werkplek_key = w.prs_werkplek_key
|
|
AND pw.prs_perslid_key = p.prs_perslid_key
|
|
AND w.prs_alg_ruimte_key = r.alg_ruimte_key)
|
|
AND p.prs_perslid_key = p_perslid_key;
|
|
BEGIN
|
|
FOR rec IN WP_ALL
|
|
LOOP
|
|
v_perslid_key := p_perslid_key;
|
|
v_aanduiding := 'Perslidkey: ' || p_perslid_key;
|
|
v_errorhint :=
|
|
'Algemene werkplek koppelen voor perslid: ' || p_perslid_key;
|
|
|
|
BEGIN
|
|
prs.movetoruimte (v_perslid_key, rec.alg_ruimte_key, '');
|
|
EXCEPTION
|
|
WHEN OTHERS
|
|
THEN
|
|
oracle_err_num := SQLCODE;
|
|
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
|
|
fac.writelog (
|
|
'Toewijzen BD algemene werkplek',
|
|
'E',
|
|
'Error '
|
|
|| v_aanduiding
|
|
|| oracle_err_num
|
|
|| '/'
|
|
|| oracle_err_mes,
|
|
v_errorhint);
|
|
END;
|
|
END LOOP;
|
|
|
|
FOR rec IN WP
|
|
LOOP
|
|
v_aanduiding := 'Perslidkey: ' || rec.prs_perslid_key;
|
|
v_errorhint :=
|
|
'Specifieke werkplek koppelen voor perslid: '
|
|
|| rec.prs_perslid_key;
|
|
|
|
BEGIN
|
|
prs.movetoruimte (rec.prs_perslid_key, rec.alg_ruimte_key, '');
|
|
EXCEPTION
|
|
WHEN OTHERS
|
|
THEN
|
|
oracle_err_num := SQLCODE;
|
|
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
|
|
fac.writelog (
|
|
'Toewijzen BD specifieke werkplek',
|
|
'E',
|
|
'Error '
|
|
|| v_aanduiding
|
|
|| oracle_err_num
|
|
|| '/'
|
|
|| oracle_err_mes,
|
|
v_errorhint);
|
|
END;
|
|
END LOOP;
|
|
END;
|
|
|
|
PROCEDURE prs_ext_werkplekken (p_perslid_key IN NUMBER)
|
|
AS
|
|
oracle_err_num NUMBER;
|
|
oracle_err_mes VARCHAR2 (200);
|
|
v_errormsg VARCHAR2 (200);
|
|
v_aanduiding VARCHAR2 (200);
|
|
v_errorhint VARCHAR2 (200);
|
|
|
|
CURSOR WP IS
|
|
SELECT p.prs_perslid_key, r.alg_ruimte_key
|
|
FROM fac_usrtab ut,
|
|
fac_usrdata ud,
|
|
prs_afdeling a,
|
|
prs_perslid p,
|
|
alg_gebouw g,
|
|
alg_verdieping v,
|
|
alg_ruimte r
|
|
WHERE UPPER (ut.fac_usrtab_naam) = 'WERKPLEKKEN EXT'
|
|
AND ut.fac_usrtab_key = ud.fac_usrtab_key
|
|
AND ut.fac_usrtab_verwijder IS NULL
|
|
AND (ud.fac_usrdata_vervaldatum > SYSDATE OR ud.fac_usrdata_vervaldatum IS NULL)
|
|
AND ud.fac_usrdata_verwijder IS NULL
|
|
AND UPPER (ud.fac_usrdata_omschr) = a.prs_afdeling_upper
|
|
AND fac.safe_to_number (ud.fac_usrdata_prijs) =
|
|
fac.safe_to_number (g.alg_gebouw_code)
|
|
AND p.prs_afdeling_key = a.prs_afdeling_key
|
|
AND p.prs_perslid_verwijder IS NULL
|
|
AND v.alg_gebouw_key = g.alg_gebouw_key
|
|
AND r.alg_verdieping_key = v.alg_verdieping_key
|
|
AND r.alg_ruimte_nr = '_000'
|
|
AND r.alg_ruimte_verwijder IS NULL
|
|
AND v.alg_verdieping_verwijder IS NULL
|
|
AND NOT EXISTS
|
|
(SELECT prs_afdeling_key
|
|
FROM prs_afdeling a
|
|
WHERE ( a.prs_afdeling_parentkey = 21
|
|
OR a.prs_afdeling_key = 21)
|
|
AND p.prs_afdeling_key = a.prs_afdeling_key)
|
|
AND NOT EXISTS
|
|
(SELECT pw.prs_perslid_key
|
|
FROM prs_perslidwerkplek pw, prs_werkplek w
|
|
WHERE pw.prs_werkplek_key = w.prs_werkplek_key
|
|
AND pw.prs_perslid_key = p.prs_perslid_key
|
|
AND w.prs_alg_ruimte_key = r.alg_ruimte_key)
|
|
AND p.prs_perslid_key = p_perslid_key;
|
|
|
|
BEGIN
|
|
FOR rec IN WP
|
|
LOOP
|
|
v_aanduiding := 'Perslidkey: ' || rec.prs_perslid_key;
|
|
v_errorhint :=
|
|
'Werkplek koppelen voor perslid: ' || rec.prs_perslid_key;
|
|
|
|
BEGIN
|
|
prs.movetoruimte (rec.prs_perslid_key,
|
|
rec.alg_ruimte_key,
|
|
'');
|
|
EXCEPTION
|
|
WHEN OTHERS
|
|
THEN
|
|
oracle_err_num := SQLCODE;
|
|
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
|
|
fac.writelog (
|
|
'Toewijzen BD werkplekken',
|
|
'E',
|
|
'Error '
|
|
|| v_aanduiding
|
|
|| oracle_err_num
|
|
|| '/'
|
|
|| oracle_err_mes,
|
|
v_errorhint);
|
|
END;
|
|
END LOOP;
|
|
END;
|
|
|
|
PROCEDURE prs_autorisaties (p_perslid_key IN NUMBER)
|
|
AS
|
|
oracle_err_num NUMBER;
|
|
oracle_err_mes VARCHAR2 (200);
|
|
v_errormsg VARCHAR2 (200);
|
|
|
|
CURSOR C IS
|
|
SELECT p.prs_perslid_key, g.fac_groep_key
|
|
FROM fac_usrtab ut,
|
|
fac_usrdata ud,
|
|
prs_afdeling a,
|
|
prs_perslid p,
|
|
fac_groep g
|
|
WHERE UPPER (ut.fac_usrtab_naam) = 'AUTORISATIES'
|
|
AND ut.fac_usrtab_key = ud.fac_usrtab_key
|
|
AND ut.fac_usrtab_verwijder IS NULL
|
|
AND UPPER (ud.fac_usrdata_code) = a.prs_afdeling_upper
|
|
AND p.prs_afdeling_key = a.prs_afdeling_key
|
|
AND p.prs_perslid_verwijder IS NULL
|
|
AND g.fac_groep_upper = UPPER (ud.fac_usrdata_omschr)
|
|
AND p.prs_perslid_key = p_perslid_key
|
|
AND NOT EXISTS
|
|
(SELECT *
|
|
FROM fac_gebruikersgroep gg
|
|
WHERE gg.fac_groep_key = g.fac_groep_key
|
|
AND gg.prs_perslid_key = p.prs_perslid_key);
|
|
BEGIN
|
|
FOR rec IN C
|
|
LOOP
|
|
INSERT INTO fac_gebruikersgroep (fac_groep_key, prs_perslid_key)
|
|
VALUES (rec.fac_groep_key, rec.prs_perslid_key);
|
|
|
|
COMMIT;
|
|
END LOOP;
|
|
EXCEPTION
|
|
WHEN OTHERS
|
|
THEN
|
|
oracle_err_num := SQLCODE;
|
|
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
|
|
v_errormsg :=
|
|
'OTHERS (error '
|
|
|| oracle_err_num
|
|
|| '/'
|
|
|| oracle_err_mes
|
|
|| ')';
|
|
fac.writelog ('Toewijzen autorisatiegroepen',
|
|
'E',
|
|
v_errormsg,
|
|
'');
|
|
END;
|
|
|
|
|
|
PROCEDURE add_xml_row (p_bestand IN VARCHAR2, p_regel IN VARCHAR2)
|
|
AS
|
|
v_index NUMBER;
|
|
BEGIN
|
|
SELECT COALESCE (MAX (fac_rapport_volgnr), 0) + 1
|
|
INTO v_index
|
|
FROM fac_rapport
|
|
WHERE fac_rapport_node = p_bestand;
|
|
|
|
INSERT INTO fac_rapport (fac_rapport_node,
|
|
fac_rapport_volgnr,
|
|
fac_rapport_regel)
|
|
VALUES (p_bestand, v_index, p_regel);
|
|
END;
|
|
|
|
PROCEDURE add_xml_element (p_bestand IN VARCHAR2,
|
|
p_tag IN VARCHAR2,
|
|
p_value IN VARCHAR2)
|
|
AS
|
|
BEGIN
|
|
blst.add_xml_row (
|
|
p_bestand,
|
|
'<'
|
|
|| p_tag
|
|
|| '>'
|
|
|| xml.char_to_html (p_value)
|
|
|| '</'
|
|
|| p_tag
|
|
|| '>');
|
|
END;
|
|
|
|
|
|
|
|
FUNCTION getKeyFromAanvraagNr (p_aanvraagnr IN VARCHAR2)
|
|
RETURN NUMBER
|
|
AS
|
|
v_key NUMBER (10);
|
|
v_count NUMBER;
|
|
v_soort VARCHAR2 (10);
|
|
BEGIN
|
|
v_key := -1;
|
|
|
|
BEGIN
|
|
SELECT res_rsv_ruimte_key
|
|
INTO v_key
|
|
FROM res_rsv_ruimte
|
|
WHERE res_rsv_ruimte_externnr = p_aanvraagnr;
|
|
|
|
--SELECT item_key, soort INTO v_key, v_soort FROM BLST_key_aanvraagnr WHERE aanvraagNr = p_aanvraagNr;
|
|
RETURN v_key;
|
|
EXCEPTION
|
|
WHEN NO_DATA_FOUND
|
|
THEN
|
|
RETURN -1;
|
|
END;
|
|
END;
|
|
|
|
|
|
|
|
FUNCTION getAanvraagNr (p_key IN NUMBER, p_type IN VARCHAR2)
|
|
RETURN VARCHAR2
|
|
AS
|
|
v_result VARCHAR2 (20) := '159';
|
|
v_code VARCHAR2 (40); -- juiste waarde checken
|
|
v_codelength NUMBER;
|
|
v_seq NUMBER;
|
|
v_maxlength NUMBER := 10;
|
|
v_aanvraagnr VARCHAR2 (20);
|
|
BEGIN
|
|
v_aanvraagnr := '';
|
|
|
|
IF p_type = 'RES'
|
|
THEN
|
|
SELECT res_rsv_ruimte_externnr
|
|
INTO v_aanvraagnr
|
|
FROM res_rsv_ruimte
|
|
WHERE res_rsv_ruimte_key = p_key;
|
|
ELSE
|
|
--SELECT bes_bestelling_externnr
|
|
-- INTO v_aanvraagnr
|
|
-- FROM bes_bestelling
|
|
-- WHERE bes_bestelling_key = p_key;
|
|
SELECT bes_bestelopdr_externnr
|
|
INTO v_aanvraagnr
|
|
FROM bes_bestelopdr
|
|
WHERE bes_bestelopdr_key = p_key;
|
|
|
|
END IF;
|
|
|
|
IF v_aanvraagnr IS NULL OR v_aanvraagnr=''
|
|
THEN -- Dit is dus een nieuwe niet geexporteerd res/bes
|
|
SELECT fac_s_user01.NEXTVAL INTO v_seq FROM DUAL;
|
|
|
|
-- Ophalen voorloop ID in deze omgeving
|
|
SELECT ud.fac_usrdata_code
|
|
INTO v_code
|
|
FROM fac_usrtab ut, FAC_USRDATA ud
|
|
WHERE UPPER (ut.fac_usrtab_naam) = 'BLST_SETTINGS'
|
|
AND ud.fac_usrtab_key = ut.fac_usrtab_key
|
|
AND UPPER (ud.fac_usrdata_omschr) = 'SAP_ID';
|
|
|
|
v_codelength := LENGTH (v_code);
|
|
v_aanvraagnr :=
|
|
v_code || LPAD (v_seq, v_maxlength - v_codelength, '0');
|
|
END IF;
|
|
|
|
RETURN v_aanvraagnr;
|
|
END;
|
|
|
|
FUNCTION get_SAPid
|
|
RETURN VARCHAR2
|
|
AS
|
|
v_result VARCHAR2 (30);
|
|
v_prs_perslid_key NUMBER;
|
|
BEGIN
|
|
v_result := 'ND';
|
|
v_prs_perslid_key := SYS_CONTEXT ('USERENV', 'CLIENT_IDENTIFIER');
|
|
|
|
--v_prs_perslid_key :=3;
|
|
SELECT prs.prs_perslid_oslogin2
|
|
INTO v_result
|
|
FROM prs_perslid prs
|
|
WHERE prs.prs_perslid_key = v_prs_perslid_key;
|
|
|
|
RETURN v_result;
|
|
END;
|
|
|
|
FUNCTION getguid
|
|
RETURN VARCHAR2
|
|
AS
|
|
v_result VARCHAR2 (100);
|
|
BEGIN
|
|
v_result := '';
|
|
|
|
SELECT REGEXP_REPLACE (SYS_GUID (),
|
|
'(.{8})(.{4})(.{4})(.{4})(.{12})',
|
|
'\1-\2-\3-\4-\5')
|
|
INTO v_result
|
|
FROM DUAL;
|
|
|
|
RETURN v_result;
|
|
END;
|
|
|
|
PROCEDURE add2exportTable (p_res_key IN VARCHAR2,
|
|
p_sapid IN VARCHAR2,
|
|
p_regel_nr IN NUMBER,
|
|
p_artikel_key IN NUMBER,
|
|
p_artikel_nr IN VARCHAR2,
|
|
p_aantal IN NUMBER,
|
|
p_export_type IN VARCHAR2,
|
|
p_actie IN VARCHAR2)
|
|
AS
|
|
BEGIN
|
|
IF p_actie = 'INS'
|
|
THEN
|
|
INSERT INTO blst_exp_sap (res_key,
|
|
sap_id,
|
|
regel_nr,
|
|
res_rsv_artikel_key,
|
|
artikel_nr,
|
|
aantal,
|
|
export_type)
|
|
VALUES (p_res_key,
|
|
p_sapid,
|
|
p_regel_nr,
|
|
p_artikel_key,
|
|
p_artikel_nr,
|
|
p_aantal,
|
|
p_export_type);
|
|
ELSE
|
|
UPDATE blst_exp_sap
|
|
SET aantal = p_aantal
|
|
WHERE res_key = p_res_key
|
|
AND res_rsv_artikel_key = p_artikel_key
|
|
AND regel_nr = p_regel_nr;
|
|
END IF;
|
|
|
|
COMMIT;
|
|
END;
|
|
|
|
PROCEDURE inactivate_prs
|
|
AS
|
|
v_errormsg VARCHAR2 (1000);
|
|
v_errorhint VARCHAR2 (1000);
|
|
oracle_err_num NUMBER;
|
|
oracle_err_mes VARCHAR2 (200);
|
|
v_count NUMBER (10);
|
|
v_perslid_naam VARCHAR (100);
|
|
v_perslid_nr VARCHAR (30);
|
|
|
|
--- Als een persoon 12 maanden niet meer heeft ingelogd verwijderen we deze
|
|
CURSOR prs_del IS
|
|
SELECT p.prs_perslid_key, p.prs_perslid_oslogin
|
|
FROM prs_v_aanwezigperslid p
|
|
WHERE p.prs_perslid_login <
|
|
TRUNC (ADD_MONTHS (SYSDATE, -12), 'mm')
|
|
GROUP BY p.prs_perslid_key, p.prs_perslid_oslogin;
|
|
BEGIN
|
|
FOR rec IN prs_del
|
|
LOOP
|
|
BEGIN
|
|
v_errormsg := 'Verwijderen van de persoon is NIET gelukt';
|
|
v_errorhint :=
|
|
'Heeft de persoon met prs_perslid_key '
|
|
|| TO_CHAR (rec.prs_perslid_key)
|
|
|| ' historie?';
|
|
|
|
SELECT prs_perslid_naam_full, prs_perslid_nr
|
|
INTO v_perslid_naam, v_perslid_nr
|
|
FROM prs_perslid p, prs_v_perslid_fullnames pf
|
|
WHERE p.prs_perslid_key = pf.prs_perslid_key
|
|
AND p.prs_perslid_key = rec.prs_perslid_key;
|
|
|
|
-- *** Budgethouderschap ***
|
|
-- Voor hoeveel kostenplaatsen is deze persoon budgethouder?
|
|
SELECT COUNT (*)
|
|
INTO v_count
|
|
FROM prs_kostenplaats
|
|
WHERE prs_perslid_key = rec.prs_perslid_key;
|
|
|
|
IF (v_count > 0)
|
|
THEN
|
|
UPDATE prs_kostenplaats
|
|
SET prs_perslid_key = NULL
|
|
WHERE prs_perslid_key = rec.prs_perslid_key;
|
|
|
|
fac.writelog (
|
|
'inact_prs',
|
|
'I',
|
|
'Budgethouderschap van te verwijderen persoon ('
|
|
|| v_count
|
|
|| ' stuks) vervallen.',
|
|
'Naam/persoonsnr: '
|
|
|| v_perslid_naam
|
|
|| '/'
|
|
|| v_perslid_nr);
|
|
END IF;
|
|
|
|
-- *** Vervangers ***
|
|
-- koppelingen met vervangers dienen ook verwijderd te worden
|
|
SELECT COUNT (*)
|
|
INTO v_count
|
|
FROM prs_collega
|
|
WHERE prs_perslid_key = rec.prs_perslid_key
|
|
OR prs_perslid_key_alt = rec.prs_perslid_key;
|
|
|
|
IF (v_count > 0)
|
|
THEN
|
|
DELETE FROM prs_collega
|
|
WHERE prs_perslid_key = rec.prs_perslid_key
|
|
OR prs_perslid_key_alt = rec.prs_perslid_key;
|
|
|
|
fac.writelog (
|
|
'inact_prs',
|
|
'I',
|
|
'Te verwijderen persoon heeft vervanger(s). Koppeling(en) verwijderd.',
|
|
'Naam/persoonsnr: '
|
|
|| v_perslid_naam
|
|
|| '/'
|
|
|| v_perslid_nr);
|
|
END IF;
|
|
|
|
-- *** werkplekken ***
|
|
|
|
DELETE prs_perslidwerkplek
|
|
WHERE prs_perslid_key = rec.prs_perslid_key;
|
|
|
|
-- *** Verplichtingen ***
|
|
SELECT COUNT (*)
|
|
INTO v_count
|
|
FROM prs_v_verplichting_refcheck vp
|
|
WHERE vp.prs_perslid_key = rec.prs_perslid_key;
|
|
|
|
IF v_count = 0
|
|
THEN
|
|
-- Persoon heeft geen enkele (actuele of historische) verplichting
|
|
v_errorhint :=
|
|
'Verwijderen van persoon met key '
|
|
|| TO_CHAR (rec.prs_perslid_key);
|
|
|
|
-- Referenties in tabellen naar deze pers_perslid_key moeten eerst verwijderd worden.
|
|
-- Door cascade verwijderen van deze record onstaan audits op die tabellen die audit tracking hebben.
|
|
-- Daardoor onstaan "ORxA-04091:table VLKC.FAC_AUDIT is mutating, trigger/function may not see it" foutmeldingen
|
|
-- op de delete van de prs_perslid_key uit de prs_perslid tabel.
|
|
-- De tabellen prs_kostenplaats, prs_kostenplaatsgrp, prs_perslidkostenplaats en fac_gebruikersgroep hebben een prs_perslid_key referentie en audit tracking.
|
|
DELETE FROM prs_kostenplaats
|
|
WHERE prs_perslid_key = rec.prs_perslid_key;
|
|
|
|
DELETE FROM prs_kostenplaatsgrp
|
|
WHERE prs_perslid_key = rec.prs_perslid_key;
|
|
|
|
DELETE FROM prs_perslidkostenplaats
|
|
WHERE prs_perslid_key = rec.prs_perslid_key;
|
|
|
|
DELETE FROM fac_gebruikersgroep
|
|
WHERE prs_perslid_key = rec.prs_perslid_key;
|
|
|
|
DELETE FROM prs_perslid
|
|
WHERE prs_perslid_key = rec.prs_perslid_key;
|
|
|
|
fac.writelog (
|
|
'inact_prs',
|
|
'I',
|
|
'Persoon verwijderd.',
|
|
'Achternaam/persoonsnr: '
|
|
|| v_perslid_naam
|
|
|| '/'
|
|
|| v_perslid_nr);
|
|
ELSE
|
|
-- Controleer of er ACTUELE verplichtingen zijn
|
|
SELECT COUNT (*)
|
|
INTO v_count
|
|
FROM prs_v_verplichting_keys vp
|
|
WHERE vp.prs_perslid_key = rec.prs_perslid_key;
|
|
|
|
IF v_count > 0
|
|
THEN
|
|
UPDATE prs_perslid
|
|
SET prs_perslid_naam =
|
|
SUBSTR ('INACTIEF:' || prs_perslid_naam,
|
|
1,
|
|
60),
|
|
prs_perslid_oslogin = NULL,
|
|
prs_perslid_oslogin2 = NULL
|
|
WHERE prs_perslid_key = rec.prs_perslid_key
|
|
AND prs_perslid_naam NOT LIKE 'INACTIEF:%';
|
|
|
|
fac.writelog (
|
|
'inact_prs',
|
|
'I',
|
|
'Persoon als INACTIEF gemarkeerd of was al INACTIEF gemarkeerd.',
|
|
'Achternaam/persoonsnr: '
|
|
|| v_perslid_naam
|
|
|| '/'
|
|
|| v_perslid_nr);
|
|
ELSE
|
|
BEGIN
|
|
UPDATE prs_perslid
|
|
SET prs_perslid_verwijder = SYSDATE
|
|
WHERE prs_perslid_key = rec.prs_perslid_key;
|
|
|
|
fac.writelog (
|
|
'inact_prs',
|
|
'I',
|
|
'Persoon geïnactiveerd.',
|
|
'Achternaam/persoonsnr: '
|
|
|| v_perslid_naam
|
|
|| '/'
|
|
|| v_perslid_nr);
|
|
EXCEPTION
|
|
WHEN OTHERS
|
|
THEN
|
|
-- Kennelijk heeft de persoon toch ernstige verplichtingen
|
|
v_errorhint :=
|
|
'Persoon heeft nog (max. '
|
|
|| TO_CHAR (v_count)
|
|
|| ') verplichtingen. Naam/persoonsnr: '
|
|
|| v_perslid_naam
|
|
|| '/'
|
|
|| v_perslid_nr;
|
|
fac.writelog (
|
|
'inact_prs',
|
|
'I',
|
|
'Inactiveren persoon is niet gelukt',
|
|
v_errorhint);
|
|
END;
|
|
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.writelog ('inact_prs',
|
|
'E',
|
|
v_errormsg,
|
|
v_errorhint);
|
|
END;
|
|
END LOOP;
|
|
END;
|
|
|
|
PROCEDURE anonimiseer_bezoeker
|
|
AS
|
|
anonymize_period NUMBER := 42;
|
|
bez_generic_visitor VARCHAR2 (2001)
|
|
:= lcl.l ('lcl_bez_generic_visitor');
|
|
v_count NUMBER;
|
|
|
|
CURSOR c_afspraak IS
|
|
SELECT a.bez_afspraak_key
|
|
FROM bez_afspraak a,
|
|
(SELECT datum_van
|
|
FROM (SELECT TRUNC (MIN (bez_afspraak_datum)) datum_van
|
|
FROM bez_afspraak a
|
|
WHERE bez_afspraak_datum <
|
|
(SYSDATE - anonymize_period)
|
|
AND NOT EXISTS
|
|
(SELECT ft.fac_tracking_key
|
|
FROM fac_tracking ft
|
|
WHERE ft.fac_tracking_refkey =
|
|
bez_afspraak_key
|
|
AND ft.fac_srtnotificatie_key =
|
|
(SELECT fac_srtnotificatie_key
|
|
FROM fac_srtnotificatie
|
|
WHERE fac_srtnotificatie_code =
|
|
'BEZANO'))))
|
|
van,
|
|
(SELECT TRUNC (SYSDATE - anonymize_period) --- 6 weken dus 6*7
|
|
datum_tot
|
|
FROM DUAL) tot
|
|
WHERE a.bez_afspraak_datum BETWEEN van.datum_van
|
|
AND tot.datum_tot
|
|
AND NOT EXISTS
|
|
(SELECT ft.fac_tracking_key
|
|
FROM fac_tracking ft
|
|
WHERE ft.fac_tracking_refkey =
|
|
a.bez_afspraak_key
|
|
AND ft.fac_srtnotificatie_key =
|
|
(SELECT fac_srtnotificatie_key
|
|
FROM fac_srtnotificatie
|
|
WHERE fac_srtnotificatie_code =
|
|
'BEZANO'))
|
|
ORDER BY a.bez_afspraak_key;
|
|
BEGIN
|
|
FOR rec IN c_afspraak
|
|
LOOP
|
|
-- Verwijder alle kenmerkwaarden van bezoekers van de afspraak waarvan het ampersand 8 (BITAND) bit van het bez_kenmerk.bez_kenmerk_systeem veld is gezet.
|
|
DELETE FROM bez_kenmerkwaarde bkw
|
|
WHERE bkw.bez_bezoekers_key IN
|
|
(SELECT b.bez_bezoekers_key
|
|
FROM bez_bezoekers b
|
|
WHERE b.bez_afspraak_key =
|
|
rec.bez_afspraak_key)
|
|
AND bkw.bez_kenmerk_key IN
|
|
(SELECT bk.bez_kenmerk_key
|
|
FROM bez_kenmerk bk
|
|
WHERE bk.bez_kenmerk_key =
|
|
bkw.bez_kenmerk_key
|
|
AND BITAND (bk.bez_kenmerk_systeem,
|
|
8) =
|
|
8);
|
|
|
|
-- Anonimiseer alle bezoekers.
|
|
UPDATE bez_bezoekers
|
|
SET bez_afspraak_naam = bez_generic_visitor,
|
|
bez_afspraak_bedrijf = NULL,
|
|
bez_afspraak_opmerking = NULL,
|
|
bez_bezoekers_telefoon = NULL,
|
|
bez_bezoekers_email = NULL,
|
|
bez_bezoekers_kenteken = NULL
|
|
WHERE bez_afspraak_key = rec.bez_afspraak_key;
|
|
|
|
-- Anonimiseer alle afspraken.
|
|
-- Door de trigger in de update wordt automatische de naam van de host in de gastheer geplakt.
|
|
-- Daardoor wordt de lcl "Ganonimiseerd" in vele gevallen niet blijvend in de gasheer gezet.
|
|
-- De persoon (prs record) moet daarom eerst aangepast worden.
|
|
-- Tijdens het anonimiseren van de persoon wordt daarom de bez_afspraak_gastheer ook geanonimiseerd.
|
|
-- In de gevallen dat er geen host wordt gebruikt en alleen tekst voor de persoon (gastheer) wordt ingevuld wordt het veld wel blijvend gezet.
|
|
UPDATE bez_afspraak
|
|
SET bez_afspraak_gastheer = bez_generic_visitor,
|
|
bez_afspraak_telefoonnr = NULL,
|
|
bez_afspraak_opmerking = NULL
|
|
WHERE bez_afspraak_key = rec.bez_afspraak_key;
|
|
|
|
-- Alle BEZ tracking anonimiseren m.b.t. de afspraak.
|
|
UPDATE fac_tracking
|
|
SET fac_tracking_oms = NULL
|
|
WHERE fac_srtnotificatie_key IN
|
|
(SELECT fac_srtnotificatie_key
|
|
FROM fac_srtnotificatie
|
|
WHERE fac_srtnotificatie_xmlnode =
|
|
'afspraak'
|
|
AND fac_srtnotificatie_code != 'BEZANO')
|
|
AND fac_tracking_refkey = rec.bez_afspraak_key
|
|
AND fac_tracking_oms IS NOT NULL;
|
|
|
|
-- Alle BEZ tracking anonimiseren m.b.t. de bezoekers van de afspraak.
|
|
UPDATE fac_tracking
|
|
SET fac_tracking_oms = NULL
|
|
WHERE fac_srtnotificatie_key IN
|
|
(SELECT fac_srtnotificatie_key
|
|
FROM fac_srtnotificatie
|
|
WHERE fac_srtnotificatie_xmlnode = 'bezoeker')
|
|
AND fac_tracking_refkey IN
|
|
(SELECT bb.bez_bezoekers_key
|
|
FROM bez_bezoekers bb
|
|
WHERE bb.bez_afspraak_key = rec.bez_afspraak_key)
|
|
AND fac_tracking_oms IS NOT NULL;
|
|
|
|
-- Anonimiseren van de afspraak tracken.
|
|
fac.trackaction ('BEZANO',
|
|
rec.bez_afspraak_key,
|
|
NULL,
|
|
NULL,
|
|
NULL);
|
|
|
|
IF v_count >= 1000
|
|
THEN
|
|
COMMIT;
|
|
v_count := 0;
|
|
ELSE
|
|
v_count := v_count + 1;
|
|
END IF;
|
|
END LOOP;
|
|
END;
|
|
|
|
PROCEDURE anonimiseer_mld
|
|
AS
|
|
v_van DATE;
|
|
v_tot DATE;
|
|
BEGIN
|
|
SELECT datum_van
|
|
INTO v_van
|
|
FROM (SELECT MIN (TRUNC (m.mld_melding_einddatum)) datum_van
|
|
FROM fac_setting s, mld_melding m
|
|
WHERE m.mld_melding_status IN (1, 5, 6) -- melding is afgewezen, afgemeld of historisch
|
|
AND s.fac_setting_key = 348
|
|
AND m.mld_melding_einddatum <
|
|
( TRUNC (SYSDATE)
|
|
- COALESCE (s.fac_setting_pvalue,
|
|
s.fac_setting_default)) -- de melding was gereed voor de anonimiseer periode
|
|
AND NOT EXISTS --- nog niet geanonimiseerd
|
|
(SELECT ft.fac_tracking_key
|
|
FROM fac_tracking ft
|
|
WHERE ft.fac_tracking_refkey =
|
|
m.mld_melding_key
|
|
AND ft.fac_srtnotificatie_key =
|
|
(SELECT fac_srtnotificatie_key
|
|
FROM fac_srtnotificatie
|
|
WHERE fac_srtnotificatie_code =
|
|
'MLDANO')));
|
|
|
|
SELECT TRUNC (
|
|
SYSDATE
|
|
- COALESCE (s.fac_setting_pvalue, s.fac_setting_default))
|
|
INTO v_tot
|
|
FROM fac_setting s
|
|
WHERE s.fac_setting_key = 348;
|
|
|
|
ano.anonymizemld (v_van, v_tot);
|
|
END;
|
|
|
|
PROCEDURE anonimiseer_prs
|
|
AS
|
|
v_van DATE;
|
|
v_tot DATE;
|
|
BEGIN
|
|
-- Als een persoon minimaal een jaar geleden verwijderd is anonimiseren we de gegevens
|
|
SELECT datum_van
|
|
INTO v_van
|
|
FROM (SELECT MIN (p.prs_perslid_verwijder) datum_van
|
|
FROM prs_v_aanwezigperslid p, fac_setting s
|
|
WHERE s.fac_setting_key = 348
|
|
AND p.prs_perslid_verwijder <
|
|
TRUNC (SYSDATE)
|
|
- COALESCE (s.fac_setting_pvalue,
|
|
s.fac_setting_default));
|
|
|
|
SELECT TRUNC (
|
|
SYSDATE
|
|
- COALESCE (s.fac_setting_pvalue, s.fac_setting_default))
|
|
INTO v_tot
|
|
FROM fac_setting s
|
|
WHERE s.fac_setting_key = 348;
|
|
|
|
ano.anonymizeprs (v_van, v_tot);
|
|
END;
|
|
|
|
PROCEDURE afmelden_reserveringen
|
|
AS
|
|
v_errormsg VARCHAR2 (1000);
|
|
v_errorhint VARCHAR2 (1000);
|
|
oracle_err_num NUMBER;
|
|
oracle_err_mes VARCHAR2 (200);
|
|
|
|
CURSOR res_ruimte IS
|
|
SELECT res_key
|
|
FROM (SELECT res.res_rsv_ruimte_key res_key,
|
|
TRUNC (res.res_rsv_ruimte_tot) ruimte_tot,
|
|
blst.aantal_weekdagen (
|
|
TRUNC (res.res_rsv_ruimte_tot),
|
|
TRUNC (SYSDATE)) aant_dgn
|
|
FROM res_rsv_ruimte res
|
|
WHERE res.res_status_bo_key = 2 --- geregistreerd, nog niet verwerkt
|
|
AND res.res_status_fo_key = 2 --- definitef
|
|
AND res.res_rsv_ruimte_verwijder IS NULL)
|
|
WHERE aant_dgn >= 7;
|
|
|
|
CURSOR res_artikel IS
|
|
SELECT res_key, res_artikel_key, art_omschr
|
|
FROM (SELECT res.res_rsv_ruimte_key res_key,
|
|
art.res_rsv_artikel_key res_artikel_key,
|
|
ra.res_artikel_omschrijving art_omschr,
|
|
TRUNC (res.res_rsv_ruimte_tot) ruimte_tot,
|
|
blst.aantal_weekdagen (
|
|
TRUNC (res.res_rsv_ruimte_tot),
|
|
TRUNC (SYSDATE)) aant_dgn
|
|
FROM res_rsv_ruimte res,
|
|
res_rsv_artikel art,
|
|
res_artikel ra
|
|
WHERE res.res_status_fo_key = 2 --- definitief
|
|
AND res.res_status_bo_key IS NULL
|
|
AND res.res_rsv_ruimte_verwijder IS NULL
|
|
AND art.res_status_bo_key = 2 --- geregistreerd, nog niet verwerkt
|
|
AND art.res_rsv_ruimte_key =
|
|
res.res_rsv_ruimte_key
|
|
AND ra.res_artikel_key = art.res_artikel_key)
|
|
WHERE aant_dgn >= 7;
|
|
BEGIN
|
|
FOR rec IN res_ruimte
|
|
LOOP
|
|
v_errormsg := 'Status update reservering niet gelukt';
|
|
v_errorhint := 'Res_rsv_ruimte_key: ' || TO_CHAR (rec.res_key);
|
|
|
|
UPDATE res_rsv_ruimte
|
|
SET res_status_bo_key = 5
|
|
WHERE res_rsv_ruimte_key = rec.res_key;
|
|
|
|
fac.trackaction ('RESAFM',
|
|
rec.res_key,
|
|
3,
|
|
SYSDATE,
|
|
'Status reservering naar Afgemeld');
|
|
END LOOP;
|
|
|
|
FOR rec IN res_artikel
|
|
LOOP
|
|
v_errormsg := 'Status update verbruiksartikel niet gelukt';
|
|
v_errorhint :=
|
|
'Res_rsv_artikel_key: ' || TO_CHAR (rec.res_artikel_key);
|
|
|
|
UPDATE res_rsv_artikel
|
|
SET res_status_bo_key = 5
|
|
WHERE res_rsv_artikel_key = rec.res_artikel_key;
|
|
|
|
fac.trackaction ('RESAFM',
|
|
rec.res_key,
|
|
3,
|
|
SYSDATE,
|
|
'Status ' || rec.art_omschr || ' naar Afgemeld');
|
|
END LOOP;
|
|
EXCEPTION
|
|
WHEN OTHERS
|
|
THEN
|
|
oracle_err_num := SQLCODE;
|
|
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
|
|
v_errormsg :=
|
|
'OTHERS (error '
|
|
|| oracle_err_num
|
|
|| '/'
|
|
|| oracle_err_mes
|
|
|| ')';
|
|
|
|
fac.imp_writelog ('afm_res',
|
|
'E',
|
|
v_errormsg,
|
|
v_errorhint);
|
|
END;
|
|
|
|
PROCEDURE noti_bezoek
|
|
AS
|
|
-- cust01 reminder: mail naar bezoeker
|
|
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,
|
|
'CUST01' 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) + 2
|
|
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 = 1020 -- 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 := 'Herinnering bezoekafspraak op ' || rec.datum;
|
|
|
|
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
|
|
flx.setflex ('BEZ',
|
|
1020,
|
|
rec.bez_bezoekers_key,
|
|
TO_CHAR (SYSDATE, 'yyyy-mm-dd hh24:mi:ss'));
|
|
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_BEZOEKER',
|
|
'E',
|
|
v_errormsg,
|
|
'');
|
|
END;
|
|
|
|
|
|
FUNCTION aantal_weekdagen (datum_van IN DATE, datum_tot IN DATE)
|
|
RETURN NUMBER
|
|
AS
|
|
v_aant_weekdgn NUMBER;
|
|
BEGIN
|
|
SELECT SUM (telling)
|
|
INTO v_aant_weekdgn
|
|
FROM ( SELECT datum_van,
|
|
datum_tot,
|
|
datum_van + LEVEL - 1 datum,
|
|
1 telling,
|
|
FAC.getweekdaynum (TRUNC (datum_van) + LEVEL - 1) weekday
|
|
FROM DUAL
|
|
CONNECT BY LEVEL <= (datum_tot - datum_van + 1))
|
|
WHERE weekday NOT IN (1, 7);
|
|
|
|
RETURN v_aant_weekdgn;
|
|
END;
|
|
|
|
FUNCTION aantal_weekenddagen (datum_van IN DATE, datum_tot IN DATE)
|
|
RETURN NUMBER
|
|
AS
|
|
v_aant_weekenddgn NUMBER;
|
|
BEGIN
|
|
SELECT SUM (telling)
|
|
INTO v_aant_weekenddgn
|
|
FROM ( SELECT datum_van,
|
|
datum_tot,
|
|
datum_van + LEVEL - 1 datum,
|
|
1 telling,
|
|
FAC.getweekdaynum (TRUNC (datum_van) + LEVEL - 1) weekday
|
|
FROM DUAL
|
|
CONNECT BY LEVEL <= (datum_tot - datum_van + 1))
|
|
WHERE weekday IN (1, 7);
|
|
|
|
RETURN v_aant_weekenddgn;
|
|
END;
|
|
|
|
FUNCTION aantal_vrije_dagen (datum_van IN DATE, datum_tot IN DATE)
|
|
RETURN NUMBER
|
|
AS
|
|
v_aant_vrije_dagen NUMBER;
|
|
BEGIN
|
|
SELECT COUNT (*)
|
|
INTO v_aant_vrije_dagen
|
|
FROM mld_vrije_dagen vd
|
|
WHERE vd.mld_vrije_dagen_datum BETWEEN datum_van AND datum_tot;
|
|
|
|
RETURN v_aant_vrije_dagen;
|
|
END;
|
|
|
|
PROCEDURE bes_btw_lyreco (p_bestelling_key IN NUMBER)
|
|
AS
|
|
oracle_err_num NUMBER;
|
|
oracle_err_mes VARCHAR2 (200);
|
|
v_errormsg VARCHAR2 (200);
|
|
v_kenmerk_key NUMBER (10);
|
|
|
|
CURSOR bestelitem IS
|
|
SELECT DISTINCT bi.bes_bestelling_item_key,
|
|
sd.bes_srtdeel_key,
|
|
sd.bes_srtdeel_notitie,
|
|
fac.safe_to_number (btw_key.btw_key) btw_key,
|
|
btw_key.btw_perc btw_perc,
|
|
btw_key.catalogus catalogus
|
|
FROM bes_bestelling b,
|
|
bes_srtdeel sd,
|
|
bes_srtgroep sg,
|
|
bes_discipline cat,
|
|
bes_bestelling_item bi,
|
|
prs_bedrijf l,
|
|
(SELECT ud.fac_usrdata_key btw_key,
|
|
ud.fac_usrdata_upper btw,
|
|
ud.fac_usrdata_prijs btw_perc,
|
|
k.bes_srtinstallatie_key catalogus
|
|
FROM bes_srtkenmerk sk,
|
|
fac_kenmerkdomein kd,
|
|
fac_usrtab ut,
|
|
fac_usrdata ud,
|
|
bes_kenmerk k
|
|
WHERE sk.bes_srtkenmerk_upper = 'BTW'
|
|
AND sk.fac_kenmerkdomein_key =
|
|
kd.fac_kenmerkdomein_key
|
|
AND kd.fac_usrtab_key = ut.fac_usrtab_key
|
|
AND ut.fac_usrtab_key = ud.fac_usrtab_key
|
|
AND k.bes_srtkenmerk_key = sk.bes_srtkenmerk_key)
|
|
btw_key
|
|
WHERE sd.bes_srtdeel_notitie IS NOT NULL -- notitie wordt vanuit OCI gevuld met BTW
|
|
AND b.bes_bestelling_key = bi.bes_bestelling_key
|
|
AND bi.bes_srtdeel_key = sd.bes_srtdeel_key
|
|
AND sd.prs_bedrijf_key = l.prs_bedrijf_key
|
|
AND l.prs_bedrijf_naam_upper LIKE '%LYRECO%' --- alleen voor Lyreco
|
|
AND UPPER (sd.bes_srtdeel_notitie) = btw_key.BTW
|
|
AND sg.bes_srtgroep_key = sd.bes_srtgroep_key
|
|
AND cat.ins_discipline_key = sg.ins_discipline_key
|
|
AND btw_key.catalogus = cat.ins_discipline_key
|
|
AND b.bes_bestelling_key = p_bestelling_key;
|
|
BEGIN
|
|
FOR rec IN bestelitem
|
|
LOOP
|
|
SELECT k.bes_kenmerk_key
|
|
INTO v_kenmerk_key
|
|
FROM bes_srtkenmerk sk, bes_kenmerk k
|
|
WHERE sk.bes_srtkenmerk_upper = 'BTW'
|
|
AND sk.bes_srtkenmerk_key = k.bes_srtkenmerk_key
|
|
AND k.bes_kenmerk_verwijder IS NULL
|
|
AND k.bes_srtinstallatie_key = rec.catalogus;
|
|
|
|
-- we kunnen rustig een insert doen, het is nooit een update
|
|
INSERT INTO bes_kenmerkbesteli (bes_bestelling_item_key,
|
|
bes_kenmerk_key,
|
|
bes_kenmerkbesteli_waarde)
|
|
VALUES (rec.bes_bestelling_item_key, v_kenmerk_key, rec.btw_key);
|
|
|
|
--- we werken dan ook direct maar even netjes de BTW bij het soortdeel bij met het juiste BTW perc.
|
|
UPDATE bes_srtdeel sd
|
|
SET sd.bes_srtdeel_btw = fac.safe_to_number(rec.btw_perc)
|
|
WHERE sd.bes_srtdeel_key = rec.bes_srtdeel_key;
|
|
|
|
COMMIT;
|
|
END LOOP;
|
|
|
|
END;
|
|
|
|
PROCEDURE bes_lt_lyreco (p_bestelling_key IN NUMBER)
|
|
AS
|
|
oracle_err_num NUMBER;
|
|
oracle_err_mes VARCHAR2 (200);
|
|
v_errormsg VARCHAR2 (200);
|
|
v_kenmerk_key NUMBER (10);
|
|
|
|
CURSOR bestelitem IS
|
|
SELECT
|
|
bi.bes_bestelling_item_key,
|
|
sd.bes_srtdeel_annuleerdagen leverdatum ,
|
|
k.bes_srtinstallatie_key catalogus
|
|
FROM bes_bestelling b,
|
|
bes_srtdeel sd,
|
|
bes_srtgroep sg,
|
|
bes_discipline cat,
|
|
bes_bestelling_item bi,
|
|
bes_srtkenmerk lt,
|
|
bes_kenmerk k,
|
|
prs_bedrijf l
|
|
WHERE sd.bes_srtdeel_annuleerdagen IS NOT NULL -- annuleerdagen wordt vanuit OCI gevuld met leverdagen
|
|
AND b.bes_bestelling_key = bi.bes_bestelling_key
|
|
AND bi.bes_srtdeel_key = sd.bes_srtdeel_key
|
|
AND sd.prs_bedrijf_key = l.prs_bedrijf_key
|
|
AND sg.bes_srtgroep_key = sd.bes_srtgroep_key
|
|
AND cat.ins_discipline_key = sg.ins_discipline_key
|
|
AND k.bes_srtkenmerk_key = lt.bes_srtkenmerk_key
|
|
AND k.bes_srtinstallatie_key = cat.ins_discipline_key
|
|
AND l.prs_bedrijf_naam_upper like '%LYRECO%' --- alleen voor Lyreco
|
|
AND lt.bes_srtkenmerk_upper = 'LEVERDATUM'
|
|
AND b.bes_bestelling_key = p_bestelling_key;
|
|
|
|
BEGIN
|
|
FOR rec IN bestelitem
|
|
LOOP
|
|
|
|
SELECT k.bes_kenmerk_key
|
|
INTO v_kenmerk_key
|
|
FROM bes_srtkenmerk sk, bes_kenmerk k
|
|
WHERE sk.bes_srtkenmerk_upper = 'LEVERDATUM'
|
|
AND sk.bes_srtkenmerk_key = k.bes_srtkenmerk_key
|
|
AND k.bes_kenmerk_verwijder is null
|
|
AND k.bes_srtinstallatie_key = rec.catalogus;
|
|
|
|
-- we kunnen rustig een insert doen, het is nooit een update
|
|
INSERT INTO bes_kenmerkbesteli (bes_bestelling_item_key,
|
|
bes_kenmerk_key,
|
|
bes_kenmerkbesteli_waarde)
|
|
VALUES (rec.bes_bestelling_item_key, v_kenmerk_key, TO_CHAR(SYSDATE+rec.leverdatum,'YYYY-MM-DD')||'T08:00:00');
|
|
|
|
COMMIT;
|
|
END LOOP;
|
|
|
|
END;
|
|
|
|
PROCEDURE bes_bgd_lyreco (p_bestelling_key IN NUMBER)
|
|
AS
|
|
oracle_err_num NUMBER;
|
|
oracle_err_mes VARCHAR2 (200);
|
|
v_errormsg VARCHAR2 (200);
|
|
v_kenmerk_key NUMBER (10);
|
|
|
|
CURSOR bestelitem IS
|
|
SELECT bi.bes_bestelling_item_key,
|
|
sd.bes_srtdeel_details_loc cpv,
|
|
k.bes_srtinstallatie_key catalogus
|
|
FROM bes_bestelling b,
|
|
bes_srtdeel sd,
|
|
bes_bestelling_item bi,
|
|
bes_srtkenmerk cpv,
|
|
bes_kenmerk k,
|
|
prs_bedrijf l,
|
|
bes_srtgroep sg,
|
|
bes_discipline cat
|
|
WHERE sd.bes_srtdeel_details_loc IS NOT NULL -- details loc wordt vanuit OCI gevuld met BGD codes
|
|
AND b.bes_bestelling_key = bi.bes_bestelling_key
|
|
AND bi.bes_srtdeel_key = sd.bes_srtdeel_key
|
|
AND sd.prs_bedrijf_key = l.prs_bedrijf_key
|
|
AND k.bes_srtkenmerk_key = cpv.bes_srtkenmerk_key
|
|
AND l.prs_bedrijf_naam_upper LIKE '%LYRECO%' --- alleen voor Lyreco
|
|
AND cpv.bes_srtkenmerk_upper = 'CPV_CODE'
|
|
AND sg.bes_srtgroep_key = sd.bes_srtgroep_key
|
|
AND sg.ins_discipline_key = cat.ins_discipline_key
|
|
AND k.bes_srtinstallatie_key = cat.ins_discipline_key
|
|
AND b.bes_bestelling_key = p_bestelling_key;
|
|
|
|
|
|
BEGIN
|
|
|
|
FOR rec IN bestelitem
|
|
LOOP
|
|
|
|
SELECT k.bes_kenmerk_key
|
|
INTO v_kenmerk_key
|
|
FROM bes_srtkenmerk sk, bes_kenmerk k
|
|
WHERE sk.bes_srtkenmerk_upper = 'CPV_CODE'
|
|
AND sk.bes_srtkenmerk_key = k.bes_srtkenmerk_key
|
|
AND k.bes_srtinstallatie_key = rec.catalogus ;
|
|
|
|
-- we kunnen rustig een insert doen, het is nooit een update
|
|
INSERT INTO bes_kenmerkbesteli (bes_bestelling_item_key,
|
|
bes_kenmerk_key,
|
|
bes_kenmerkbesteli_waarde)
|
|
VALUES (rec.bes_bestelling_item_key, v_kenmerk_key, rec.cpv);
|
|
|
|
COMMIT;
|
|
END LOOP;
|
|
|
|
END;
|
|
|
|
PROCEDURE bes_geen_cpv_btw (p_bestelling_key IN NUMBER)
|
|
AS
|
|
oracle_err_num NUMBER;
|
|
oracle_err_mes VARCHAR2 (200);
|
|
v_errormsg VARCHAR2 (200);
|
|
v_srtnotificatie_key NUMBER;
|
|
v_onderwerp VARCHAR2 (200);
|
|
v_opdracht NUMBER;
|
|
v_aanvraag NUMBER;
|
|
|
|
-- Artikelen zonder CPV code of zonder BTW code, de hele order moet geannuleerd worden
|
|
-- Omdat een bestelling in theorie tot meer bestelopdrachten kunnen leiden
|
|
-- of er bij fiatteren nog geen opdracht is, splitsen we: eerst bestelopdrachten dan bestelaanvragen
|
|
|
|
BEGIN
|
|
SELECT sn.fac_srtnotificatie_key
|
|
INTO v_srtnotificatie_key
|
|
FROM fac_srtnotificatie sn
|
|
WHERE sn.fac_srtnotificatie_code = 'BESCAN';
|
|
|
|
SELECT DISTINCT (bo.bes_bestelopdr_key)
|
|
INTO v_opdracht
|
|
FROM bes_bestelling b,
|
|
bes_srtdeel sd,
|
|
bes_bestelling_item bi,
|
|
bes_bestelopdr bo,
|
|
bes_bestelopdr_item boi,
|
|
prs_bedrijf l
|
|
WHERE (sd.bes_srtdeel_details_loc IS NULL -- details loc wordt vanuit OCI gevuld met BGD codes
|
|
OR sd.bes_srtdeel_notitie IS NULL) -- notitie wordt vanuit OCI gevuld met BTW
|
|
AND b.bes_bestelling_key = bi.bes_bestelling_key
|
|
AND bi.bes_srtdeel_key = sd.bes_srtdeel_key
|
|
AND sd.prs_bedrijf_key = l.prs_bedrijf_key
|
|
AND l.prs_bedrijf_naam_upper LIKE '%LYRECO%'
|
|
AND bi.bes_bestelopdr_item_key =
|
|
boi.bes_bestelopdr_item_key(+)
|
|
AND boi.bes_bestelopdr_key = bo.bes_bestelopdr_key(+)
|
|
AND b.bes_bestelling_key = p_bestelling_key;
|
|
|
|
SELECT DISTINCT (b.bes_bestelling_key)
|
|
INTO v_aanvraag
|
|
FROM bes_bestelling b,
|
|
bes_srtdeel sd,
|
|
bes_bestelling_item bi,
|
|
prs_bedrijf l
|
|
WHERE (sd.bes_srtdeel_details_loc IS NULL -- details loc wordt vanuit OCI gevuld met BGD codes
|
|
OR sd.bes_srtdeel_notitie IS NULL) -- notitie wordt vanuit OCI gevuld met BTW
|
|
AND b.bes_bestelling_key = bi.bes_bestelling_key
|
|
AND bi.bes_srtdeel_key = sd.bes_srtdeel_key
|
|
AND sd.prs_bedrijf_key = l.prs_bedrijf_key
|
|
AND l.prs_bedrijf_naam_upper LIKE '%LYRECO%'
|
|
AND b.bes_bestelling_key = p_bestelling_key;
|
|
|
|
IF v_opdracht IS NOT NULL
|
|
THEN
|
|
---setbestelopdrstatus (pbestelopdrkey IN NUMBER, pstatus IN NUMBER, puserkey IN NUMBER)
|
|
---status 8 voor bestelopdrachten: Geannuleerd
|
|
bes.setbestelopdrstatus (v_opdracht, 8, 3);
|
|
|
|
END IF;
|
|
|
|
IF v_aanvraag IS NOT NULL
|
|
THEN
|
|
-- setbestellingstatus (pbestellingkey IN NUMBER, pstatus IN NUMBER, puserkey IN NUMBER)
|
|
bes.setbestellingstatus (v_aanvraag,8, 3);
|
|
|
|
|
|
-- een notitie bij de aanvraag zodat de gebruiker direct ziet dat de aanvraag geannuleerd is
|
|
UPDATE bes_bestelling b
|
|
SET b.bes_bestelling_opmerking =
|
|
'Order automatisch geannuleerd ivm incomplete artikelen, neem contact op met het FCC.'
|
|
WHERE b.bes_bestelling_key = v_aanvraag;
|
|
|
|
-- we notificeren het FCC ook direct
|
|
SELECT 'Bestelaanvraag '
|
|
|| v_aanvraag
|
|
|| ' geannuleerd ivm ontbreken CVP of BTW'
|
|
INTO v_onderwerp
|
|
FROM DUAL;
|
|
|
|
INSERT INTO fac_notificatie (fac_srtnotificatie_key,
|
|
fac_notificatie_status,
|
|
fac_notificatie_receiver_email,
|
|
fac_notificatie_oms,
|
|
fac_notificatie_refkey,
|
|
fac_notificatie_prioriteit)
|
|
VALUES (v_srtnotificatie_key,
|
|
2,
|
|
'FCC@BELASTINGDIENST.NL',
|
|
v_onderwerp,
|
|
v_aanvraag,
|
|
2);
|
|
|
|
END IF;
|
|
END;
|
|
|
|
|
|
PROCEDURE controleer_bestelling (p_bestelling_key IN NUMBER)
|
|
AS
|
|
|
|
oracle_err_num NUMBER;
|
|
oracle_err_mes VARCHAR2 (200);
|
|
v_errormsg VARCHAR2 (200);
|
|
|
|
--- als het een bestelling van Lyreco betreft dan moet de order nabewerkt worden
|
|
CURSOR lyreco IS
|
|
SELECT DISTINCT b.bes_bestelling_key, l.prs_bedrijf_naam_upper
|
|
FROM bes_bestelling b,
|
|
bes_bestelling_item bi,
|
|
bes_srtdeel sd,
|
|
prs_bedrijf l
|
|
WHERE bi.bes_bestelling_key = b.bes_bestelling_key
|
|
AND sd.bes_srtdeel_key = bi.bes_srtdeel_key
|
|
AND l.prs_bedrijf_key = sd.prs_bedrijf_key
|
|
AND l.prs_bedrijf_naam_upper LIKE '%LYRECO%'
|
|
AND b.bes_bestelling_key = p_bestelling_key;
|
|
|
|
--- Als de gegevens niet compleet zijn wordt de order direct geannuleerd
|
|
CURSOR annuleren is
|
|
SELECT DISTINCT b.bes_bestelling_key
|
|
FROM bes_bestelling b,
|
|
bes_bestelling_item bi,
|
|
bes_srtdeel sd,
|
|
prs_bedrijf l
|
|
WHERE ( sd.bes_srtdeel_details_loc IS NULL
|
|
OR sd.bes_srtdeel_notitie IS NULL)
|
|
AND bi.bes_bestelling_key = b.bes_bestelling_key
|
|
AND sd.bes_srtdeel_key = bi.bes_srtdeel_key
|
|
AND l.prs_bedrijf_key = sd.prs_bedrijf_key
|
|
AND l.prs_bedrijf_naam_upper LIKE '%LYRECO%'
|
|
AND b.bes_bestelling_key = p_bestelling_key;
|
|
|
|
BEGIN
|
|
FOR rec IN lyreco
|
|
LOOP
|
|
-- de juiste BTW wordt per artikel aangepast
|
|
blst.bes_btw_lyreco (p_bestelling_key);
|
|
|
|
-- de leverdatum wordt op basis van de levertijd berekend
|
|
blst.bes_lt_lyreco (p_bestelling_key);
|
|
|
|
-- de cpv wordt overgezet naar een kenmerk
|
|
blst.bes_bgd_lyreco (p_bestelling_key);
|
|
|
|
END LOOP;
|
|
|
|
FOR rec IN annuleren
|
|
LOOP
|
|
|
|
---- als er geen btw en/of cpv bekend is moet de order alsnog geannuleerd worden
|
|
blst.bes_geen_cpv_btw (p_bestelling_key);
|
|
|
|
END LOOP;
|
|
|
|
END;
|
|
|
|
PROCEDURE archiveer_uitleen
|
|
AS
|
|
CURSOR c IS
|
|
SELECT TRUNC (SYSDATE) archiveerdatum,
|
|
d.alg_ruimte_key,
|
|
d.ins_deel_key
|
|
object_key,
|
|
in_uit.fac_tracking_key_uit,
|
|
in_uit.datum_uitgifte
|
|
datum_uitgeleend,
|
|
fac.safe_to_date (in_uit.datum_uitgifte, 'dd-mm-yy')
|
|
datum_uit,
|
|
TO_CHAR (in_uit.datum_uitgifte, 'hh24:mi')
|
|
tijdstip_uit,
|
|
in_uit.omschrijving_uitgifte,
|
|
SUBSTR (
|
|
in_uit.omschrijving_uitgifte,
|
|
INSTR (in_uit.omschrijving_uitgifte,
|
|
'is uitgegeven aan ')
|
|
+ 18)
|
|
uitgeleend_aan,
|
|
in_uit.uitgegeven_door,
|
|
in_uit.fac_tracking_key_in,
|
|
in_uit.datum_inname
|
|
datum_ingenomen,
|
|
fac.safe_to_date (in_uit.datum_inname, 'dd-mm-yy')
|
|
datum_in,
|
|
TO_CHAR (in_uit.datum_inname, 'hh24:mi')
|
|
tijdstip_in,
|
|
in_uit.ingenomen_door,
|
|
ROUND ((in_uit.datum_inname - in_uit.datum_uitgifte) * 24, 1)
|
|
uren_gebruik
|
|
FROM (SELECT disc.ins_discipline_omschrijving,
|
|
sg.ins_srtgroep_omschrijving,
|
|
sd.ins_srtdeel_key,
|
|
sd.ins_srtdeel_omschrijving,
|
|
d.ins_deel_key,
|
|
d.ins_deel_omschrijving,
|
|
d.ins_deel_opmerking,
|
|
d.ins_alg_ruimte_key alg_ruimte_key
|
|
FROM ins_deel d,
|
|
ins_srtdeel sd,
|
|
ins_srtgroep sg,
|
|
ins_tab_discipline disc
|
|
WHERE d.ins_deel_verwijder IS NULL
|
|
AND d.ins_alg_ruimte_type = 'R'
|
|
AND sd.ins_srtdeel_key = d.ins_srtdeel_key
|
|
AND sg.ins_srtgroep_key = sd.ins_srtgroep_key
|
|
AND disc.ins_discipline_key = sg.ins_discipline_key
|
|
UNION ALL
|
|
SELECT disc.ins_discipline_omschrijving,
|
|
sg.ins_srtgroep_omschrijving,
|
|
sd.ins_srtdeel_key,
|
|
sd.ins_srtdeel_omschrijving,
|
|
d.ins_deel_key,
|
|
d.ins_deel_omschrijving,
|
|
d.ins_deel_opmerking,
|
|
d.ins_alg_ruimte_key_org alg_ruimte_key
|
|
FROM ins_deel d,
|
|
ins_srtdeel sd,
|
|
ins_srtgroep sg,
|
|
ins_tab_discipline disc
|
|
WHERE d.ins_deel_verwijder IS NULL
|
|
AND d.ins_alg_ruimte_type_org = 'R'
|
|
AND sd.ins_srtdeel_key = d.ins_srtdeel_key
|
|
AND sg.ins_srtgroep_key = sd.ins_srtgroep_key
|
|
AND disc.ins_discipline_key = sg.ins_discipline_key) d,
|
|
( SELECT ins_uit.fac_tracking_key_uit,
|
|
ins_uit.ins_deel_key,
|
|
ins_uit.datum_uitgifte,
|
|
ins_uit.omschrijving_uitgifte,
|
|
ins_uit.uitgegeven_door,
|
|
ins_in.fac_tracking_key_in,
|
|
ins_in.datum_inname,
|
|
ins_in.ingenomen_door
|
|
FROM ( SELECT t.fac_tracking_key
|
|
fac_tracking_key_uit,
|
|
t.fac_tracking_refkey
|
|
ins_deel_key,
|
|
t.fac_tracking_datum
|
|
datum_uitgifte,
|
|
t.fac_tracking_oms
|
|
omschrijving_uitgifte,
|
|
p.prs_perslid_naam_full
|
|
uitgegeven_door,
|
|
RANK ()
|
|
OVER (PARTITION BY t.fac_tracking_refkey
|
|
ORDER BY t.fac_tracking_datum ASC)
|
|
ranking
|
|
FROM fac_tracking t, prs_v_perslid_fullnames_all p
|
|
WHERE t.prs_perslid_key = p.prs_perslid_key
|
|
AND t.fac_srtnotificatie_key = 130
|
|
GROUP BY t.fac_tracking_refkey,
|
|
t.fac_tracking_key,
|
|
t.fac_tracking_datum,
|
|
t.fac_tracking_oms,
|
|
p.prs_perslid_naam_full) ins_uit
|
|
FULL OUTER JOIN
|
|
( SELECT t.fac_tracking_key fac_tracking_key_in,
|
|
t.fac_tracking_refkey ins_deel_key,
|
|
t.fac_tracking_datum datum_inname,
|
|
t.fac_tracking_oms omschrijving_inname,
|
|
p.prs_perslid_naam_full ingenomen_door,
|
|
RANK ()
|
|
OVER (PARTITION BY t.fac_tracking_refkey
|
|
ORDER BY t.fac_tracking_datum ASC) ranking
|
|
FROM fac_tracking t, prs_v_perslid_fullnames_all p
|
|
WHERE t.prs_perslid_key = p.prs_perslid_key
|
|
AND t.fac_srtnotificatie_key = 131
|
|
GROUP BY t.fac_tracking_refkey,
|
|
t.fac_tracking_key,
|
|
t.fac_tracking_datum,
|
|
t.fac_tracking_oms,
|
|
p.prs_perslid_naam_full) ins_in
|
|
ON ( ins_uit.ranking = ins_in.ranking
|
|
AND ins_uit.ins_deel_key = ins_in.ins_deel_key)
|
|
ORDER BY ins_uit.ins_deel_key, ins_uit.ranking) In_uit
|
|
WHERE in_uit.ins_deel_key = d.ins_deel_key
|
|
AND ( in_uit.fac_tracking_key_in IS NULL
|
|
OR NOT EXISTS
|
|
(SELECT a.fac_tracking_key_in
|
|
FROM blst_uitleen_archief a
|
|
WHERE a.fac_tracking_key_in =
|
|
in_uit.fac_tracking_key_in));
|
|
|
|
oracle_err_num NUMBER;
|
|
oracle_err_mes VARCHAR2 (200);
|
|
v_errormsg VARCHAR2 (200);
|
|
v_onderwerp VARCHAR2 (100);
|
|
|
|
BEGIN
|
|
--- Alleen complete sets uit/in kunnen we in het archief laten staan
|
|
--- Als een object was uitgeleend maar nog niet ingenomen, dan gooien we die regel weg en voegen we de huidige stavaza toe
|
|
--- daarom importeren we alleen regels waarbij tracking in is nog steeds leeg of tracking in komt nog niet voor in het archief
|
|
--- Net zo lang tot de set uit/in compleet is
|
|
|
|
DELETE blst_uitleen_archief
|
|
WHERE fac_tracking_key_in IS NULL;
|
|
|
|
FOR rec IN c
|
|
LOOP
|
|
v_onderwerp :=
|
|
'Archivering uitleenregistratie ' || rec.archiveerdatum;
|
|
|
|
INSERT INTO blst_uitleen_archief (alg_ruimte_key,
|
|
object_key,
|
|
fac_tracking_key_uit,
|
|
datum_uitgeleend,
|
|
fac_tracking_key_in,
|
|
datum_ingenomen)
|
|
VALUES (rec.alg_ruimte_key,
|
|
rec.object_key,
|
|
rec.fac_tracking_key_uit,
|
|
rec.datum_uitgeleend,
|
|
rec.fac_tracking_key_in,
|
|
rec.datum_ingenomen);
|
|
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 ('Archiveer uitleen',
|
|
'E',
|
|
v_errormsg,
|
|
'');
|
|
END;
|
|
|
|
END;
|
|
/
|
|
|
|
CREATE OR REPLACE VIEW blst_v_rap_annuleringsdatum
|
|
(
|
|
res_rsv_artikel_key,
|
|
res_rsv_artikel_levering,
|
|
annuleringshorizon,
|
|
datum_ann_horizon,
|
|
aant_wknd_dgn_ann_hrz,
|
|
ann_hrz_excl_wknd_dgn,
|
|
day_of_week,
|
|
extra_dgn,
|
|
ann_hrz_excl_wknd_dgn_new,
|
|
aant_vrije_dgn,
|
|
ann_hrz_excl_vrij_dgn_new,
|
|
day_of_week_new,
|
|
extra_dgn_new,
|
|
berekende_grens_ann_hrz
|
|
)
|
|
AS
|
|
SELECT ra.res_rsv_artikel_key,
|
|
ra.res_rsv_artikel_levering,
|
|
annuleringshorizon,
|
|
(TRUNC (ra.res_rsv_artikel_levering) - annuleringshorizon)
|
|
datum_annuleringshorizon,
|
|
---- zitten er weekend dagen tussen leverdatum en annuleringshorizon
|
|
NVL (
|
|
(blst.aantal_weekenddagen (
|
|
(TRUNC (ra.res_rsv_artikel_levering) - annuleringshorizon),
|
|
(TRUNC (ra.res_rsv_artikel_levering)))),
|
|
0)
|
|
aant_wknd_dgn_annuleringshorizon,
|
|
--- nieuwe annuleringshorizon berekenen door ook de weekenddagen eraf te trekken
|
|
(TRUNC (ra.res_rsv_artikel_levering) - annuleringshorizon)
|
|
- NVL (
|
|
(blst.aantal_weekenddagen (
|
|
( TRUNC (ra.res_rsv_artikel_levering)
|
|
- annuleringshorizon),
|
|
(TRUNC (ra.res_rsv_artikel_levering)))),
|
|
0)
|
|
annuleringshorizon_excl_weekenddgn,
|
|
--- op welke dag komt de nieuwe datum uit?
|
|
FAC.getweekdaynum (
|
|
(TRUNC (ra.res_rsv_artikel_levering) - annuleringshorizon)
|
|
- NVL (
|
|
(blst.aantal_weekenddagen (
|
|
( TRUNC (ra.res_rsv_artikel_levering)
|
|
- annuleringshorizon),
|
|
(TRUNC (ra.res_rsv_artikel_levering)))),
|
|
0))
|
|
day_of_week,
|
|
--- als de nieuwe datum ook uitkomt op een zaterdag (dag 7) of zondag (dag 1) dan resp. 1 of 2 dagen extra eraf
|
|
CASE FAC.getweekdaynum (
|
|
( TRUNC (ra.res_rsv_artikel_levering)
|
|
- annuleringshorizon)
|
|
- NVL (
|
|
(blst.aantal_weekenddagen (
|
|
( TRUNC (ra.res_rsv_artikel_levering)
|
|
- annuleringshorizon),
|
|
(TRUNC (ra.res_rsv_artikel_levering)))),
|
|
0))
|
|
WHEN 1
|
|
THEN
|
|
2
|
|
WHEN 7
|
|
THEN
|
|
1
|
|
ELSE
|
|
0
|
|
END
|
|
extra_dgn,
|
|
--- Die extra dag trekken we van de annuleringshorizon_excl_weekenddgn af
|
|
(TRUNC (ra.res_rsv_artikel_levering) - annuleringshorizon)
|
|
- NVL (
|
|
(blst.aantal_weekenddagen (
|
|
( TRUNC (ra.res_rsv_artikel_levering)
|
|
- annuleringshorizon),
|
|
(TRUNC (ra.res_rsv_artikel_levering)))),
|
|
0)
|
|
- (CASE FAC.getweekdaynum (
|
|
( TRUNC (ra.res_rsv_artikel_levering)
|
|
- annuleringshorizon)
|
|
- NVL (
|
|
(blst.aantal_weekenddagen (
|
|
( TRUNC (ra.res_rsv_artikel_levering)
|
|
- annuleringshorizon),
|
|
(TRUNC (ra.res_rsv_artikel_levering)))),
|
|
0))
|
|
WHEN 1
|
|
THEN
|
|
2
|
|
WHEN 7
|
|
THEN
|
|
1
|
|
ELSE
|
|
0
|
|
END)
|
|
annuleringshorizon_excl_weekenddgn_new,
|
|
-- dan kunnen er ook nog vrije dagen zijn die vallen tussen de leverdatum en de zojuist bepaalde annuleringshorizon waar we rekening mee moeten houden
|
|
-- aantal_vrije_dagen (datum_van IN DATE, datum_tot IN DATE)
|
|
blst.aantal_vrije_dagen (
|
|
(TRUNC (ra.res_rsv_artikel_levering) - annuleringshorizon)
|
|
- NVL (
|
|
(blst.aantal_weekenddagen (
|
|
( TRUNC (ra.res_rsv_artikel_levering)
|
|
- annuleringshorizon),
|
|
(TRUNC (ra.res_rsv_artikel_levering)))),
|
|
0)
|
|
- (CASE FAC.getweekdaynum (
|
|
( TRUNC (ra.res_rsv_artikel_levering)
|
|
- annuleringshorizon)
|
|
- NVL (
|
|
(blst.aantal_weekenddagen (
|
|
( TRUNC (ra.res_rsv_artikel_levering)
|
|
- annuleringshorizon),
|
|
(TRUNC (ra.res_rsv_artikel_levering)))),
|
|
0))
|
|
WHEN 1
|
|
THEN
|
|
2
|
|
WHEN 7
|
|
THEN
|
|
1
|
|
ELSE
|
|
0
|
|
END),
|
|
ra.res_rsv_artikel_levering)
|
|
aant_vrije_dgn,
|
|
--- die vrije dagen moeten we er weer van annuleringshorizon_excl_weekenddgn_new aftrekken
|
|
( (TRUNC (ra.res_rsv_artikel_levering) - annuleringshorizon)
|
|
- NVL (
|
|
(blst.aantal_weekenddagen (
|
|
( TRUNC (ra.res_rsv_artikel_levering)
|
|
- annuleringshorizon),
|
|
(TRUNC (ra.res_rsv_artikel_levering)))),
|
|
0)
|
|
- (CASE FAC.getweekdaynum (
|
|
( TRUNC (ra.res_rsv_artikel_levering)
|
|
- annuleringshorizon)
|
|
- NVL (
|
|
(blst.aantal_weekenddagen (
|
|
( TRUNC (ra.res_rsv_artikel_levering)
|
|
- annuleringshorizon),
|
|
(TRUNC (ra.res_rsv_artikel_levering)))),
|
|
0))
|
|
WHEN 1
|
|
THEN
|
|
2
|
|
WHEN 7
|
|
THEN
|
|
1
|
|
ELSE
|
|
0
|
|
END))
|
|
- (blst.aantal_vrije_dagen (
|
|
(TRUNC (ra.res_rsv_artikel_levering) - annuleringshorizon)
|
|
- NVL (
|
|
(blst.aantal_weekenddagen (
|
|
( TRUNC (ra.res_rsv_artikel_levering)
|
|
- annuleringshorizon),
|
|
(TRUNC (ra.res_rsv_artikel_levering)))),
|
|
0)
|
|
- (CASE FAC.getweekdaynum (
|
|
( TRUNC (ra.res_rsv_artikel_levering)
|
|
- annuleringshorizon)
|
|
- NVL (
|
|
(blst.aantal_weekenddagen (
|
|
( TRUNC (
|
|
ra.res_rsv_artikel_levering)
|
|
- annuleringshorizon),
|
|
(TRUNC (ra.res_rsv_artikel_levering)))),
|
|
0))
|
|
WHEN 1
|
|
THEN
|
|
2
|
|
WHEN 7
|
|
THEN
|
|
1
|
|
ELSE
|
|
0
|
|
END),
|
|
ra.res_rsv_artikel_levering))
|
|
uiteindelijke_grens_annuleringshorizon,
|
|
FAC.getweekdaynum (
|
|
( (TRUNC (ra.res_rsv_artikel_levering) - annuleringshorizon)
|
|
- NVL (
|
|
(blst.aantal_weekenddagen (
|
|
( TRUNC (ra.res_rsv_artikel_levering)
|
|
- annuleringshorizon),
|
|
(TRUNC (ra.res_rsv_artikel_levering)))),
|
|
0)
|
|
- (CASE FAC.getweekdaynum (
|
|
( TRUNC (ra.res_rsv_artikel_levering)
|
|
- annuleringshorizon)
|
|
- NVL (
|
|
(blst.aantal_weekenddagen (
|
|
( TRUNC (
|
|
ra.res_rsv_artikel_levering)
|
|
- annuleringshorizon),
|
|
(TRUNC (ra.res_rsv_artikel_levering)))),
|
|
0))
|
|
WHEN 1
|
|
THEN
|
|
2
|
|
WHEN 7
|
|
THEN
|
|
1
|
|
ELSE
|
|
0
|
|
END))
|
|
- (blst.aantal_vrije_dagen (
|
|
( TRUNC (ra.res_rsv_artikel_levering)
|
|
- annuleringshorizon)
|
|
- NVL (
|
|
(blst.aantal_weekenddagen (
|
|
( TRUNC (ra.res_rsv_artikel_levering)
|
|
- annuleringshorizon),
|
|
(TRUNC (ra.res_rsv_artikel_levering)))),
|
|
0)
|
|
- (CASE FAC.getweekdaynum (
|
|
( TRUNC (ra.res_rsv_artikel_levering)
|
|
- annuleringshorizon)
|
|
- NVL (
|
|
(blst.aantal_weekenddagen (
|
|
( TRUNC (
|
|
ra.res_rsv_artikel_levering)
|
|
- annuleringshorizon),
|
|
(TRUNC (
|
|
ra.res_rsv_artikel_levering)))),
|
|
0))
|
|
WHEN 1
|
|
THEN
|
|
2
|
|
WHEN 7
|
|
THEN
|
|
1
|
|
ELSE
|
|
0
|
|
END),
|
|
ra.res_rsv_artikel_levering)))
|
|
day_of_week_new,
|
|
-- als deze datum in het weekend valt moeten we weer schuiven.... dus berekenen hoeveel dagen extra
|
|
CASE FAC.getweekdaynum (
|
|
( ( TRUNC (ra.res_rsv_artikel_levering)
|
|
- annuleringshorizon)
|
|
- NVL (
|
|
(blst.aantal_weekenddagen (
|
|
( TRUNC (ra.res_rsv_artikel_levering)
|
|
- annuleringshorizon),
|
|
(TRUNC (ra.res_rsv_artikel_levering)))),
|
|
0)
|
|
- (CASE FAC.getweekdaynum (
|
|
( TRUNC (ra.res_rsv_artikel_levering)
|
|
- annuleringshorizon)
|
|
- NVL (
|
|
(blst.aantal_weekenddagen (
|
|
( TRUNC (
|
|
ra.res_rsv_artikel_levering)
|
|
- annuleringshorizon),
|
|
(TRUNC (
|
|
ra.res_rsv_artikel_levering)))),
|
|
0))
|
|
WHEN 1
|
|
THEN
|
|
2
|
|
WHEN 7
|
|
THEN
|
|
1
|
|
ELSE
|
|
0
|
|
END))
|
|
- (blst.aantal_vrije_dagen (
|
|
( TRUNC (ra.res_rsv_artikel_levering)
|
|
- annuleringshorizon)
|
|
- NVL (
|
|
(blst.aantal_weekenddagen (
|
|
( TRUNC (ra.res_rsv_artikel_levering)
|
|
- annuleringshorizon),
|
|
(TRUNC (ra.res_rsv_artikel_levering)))),
|
|
0)
|
|
- (CASE FAC.getweekdaynum (
|
|
( TRUNC (
|
|
ra.res_rsv_artikel_levering)
|
|
- annuleringshorizon)
|
|
- NVL (
|
|
(blst.aantal_weekenddagen (
|
|
( TRUNC (
|
|
ra.res_rsv_artikel_levering)
|
|
- annuleringshorizon),
|
|
(TRUNC (
|
|
ra.res_rsv_artikel_levering)))),
|
|
0))
|
|
WHEN 1
|
|
THEN
|
|
2
|
|
WHEN 7
|
|
THEN
|
|
1
|
|
ELSE
|
|
0
|
|
END),
|
|
ra.res_rsv_artikel_levering)))
|
|
WHEN 1
|
|
THEN
|
|
2
|
|
WHEN 7
|
|
THEN
|
|
1
|
|
ELSE
|
|
0
|
|
END
|
|
extra_dgn_new,
|
|
--- en uiteindelijk alles die dagen weer van de laatst berekende datum aftrekken
|
|
( ( (TRUNC (ra.res_rsv_artikel_levering) - annuleringshorizon)
|
|
- NVL (
|
|
(blst.aantal_weekenddagen (
|
|
( TRUNC (ra.res_rsv_artikel_levering)
|
|
- annuleringshorizon),
|
|
(TRUNC (ra.res_rsv_artikel_levering)))),
|
|
0)
|
|
- (CASE FAC.getweekdaynum (
|
|
( TRUNC (ra.res_rsv_artikel_levering)
|
|
- annuleringshorizon)
|
|
- NVL (
|
|
(blst.aantal_weekenddagen (
|
|
( TRUNC (
|
|
ra.res_rsv_artikel_levering)
|
|
- annuleringshorizon),
|
|
(TRUNC (ra.res_rsv_artikel_levering)))),
|
|
0))
|
|
WHEN 1
|
|
THEN
|
|
2
|
|
WHEN 7
|
|
THEN
|
|
1
|
|
ELSE
|
|
0
|
|
END))
|
|
- (blst.aantal_vrije_dagen (
|
|
( TRUNC (ra.res_rsv_artikel_levering)
|
|
- annuleringshorizon)
|
|
- NVL (
|
|
(blst.aantal_weekenddagen (
|
|
( TRUNC (ra.res_rsv_artikel_levering)
|
|
- annuleringshorizon),
|
|
(TRUNC (ra.res_rsv_artikel_levering)))),
|
|
0)
|
|
- (CASE FAC.getweekdaynum (
|
|
( TRUNC (ra.res_rsv_artikel_levering)
|
|
- annuleringshorizon)
|
|
- NVL (
|
|
(blst.aantal_weekenddagen (
|
|
( TRUNC (
|
|
ra.res_rsv_artikel_levering)
|
|
- annuleringshorizon),
|
|
(TRUNC (
|
|
ra.res_rsv_artikel_levering)))),
|
|
0))
|
|
WHEN 1
|
|
THEN
|
|
2
|
|
WHEN 7
|
|
THEN
|
|
1
|
|
ELSE
|
|
0
|
|
END),
|
|
ra.res_rsv_artikel_levering)))
|
|
- (CASE FAC.getweekdaynum (
|
|
( ( TRUNC (ra.res_rsv_artikel_levering)
|
|
- annuleringshorizon)
|
|
- NVL (
|
|
(blst.aantal_weekenddagen (
|
|
( TRUNC (ra.res_rsv_artikel_levering)
|
|
- annuleringshorizon),
|
|
(TRUNC (ra.res_rsv_artikel_levering)))),
|
|
0)
|
|
- (CASE FAC.getweekdaynum (
|
|
( TRUNC (
|
|
ra.res_rsv_artikel_levering)
|
|
- annuleringshorizon)
|
|
- NVL (
|
|
(blst.aantal_weekenddagen (
|
|
( TRUNC (
|
|
ra.res_rsv_artikel_levering)
|
|
- annuleringshorizon),
|
|
(TRUNC (
|
|
ra.res_rsv_artikel_levering)))),
|
|
0))
|
|
WHEN 1
|
|
THEN
|
|
2
|
|
WHEN 7
|
|
THEN
|
|
1
|
|
ELSE
|
|
0
|
|
END))
|
|
- (blst.aantal_vrije_dagen (
|
|
( TRUNC (ra.res_rsv_artikel_levering)
|
|
- annuleringshorizon)
|
|
- NVL (
|
|
(blst.aantal_weekenddagen (
|
|
( TRUNC (
|
|
ra.res_rsv_artikel_levering)
|
|
- annuleringshorizon),
|
|
(TRUNC (ra.res_rsv_artikel_levering)))),
|
|
0)
|
|
- (CASE FAC.getweekdaynum (
|
|
( TRUNC (
|
|
ra.res_rsv_artikel_levering)
|
|
- annuleringshorizon)
|
|
- NVL (
|
|
(blst.aantal_weekenddagen (
|
|
( TRUNC (
|
|
ra.res_rsv_artikel_levering)
|
|
- annuleringshorizon),
|
|
(TRUNC (
|
|
ra.res_rsv_artikel_levering)))),
|
|
0))
|
|
WHEN 1
|
|
THEN
|
|
2
|
|
WHEN 7
|
|
THEN
|
|
1
|
|
ELSE
|
|
0
|
|
END),
|
|
ra.res_rsv_artikel_levering)))
|
|
WHEN 1
|
|
THEN
|
|
2
|
|
WHEN 7
|
|
THEN
|
|
1
|
|
ELSE
|
|
0
|
|
END)
|
|
berekende_grens_annuleringsdatum
|
|
FROM (SELECT DISTINCT
|
|
res.res_rsv_ruimte_key,
|
|
res.res_reservering_key,
|
|
res.res_rsv_ruimte_volgnr,
|
|
res.res_rsv_ruimte_van datum_van,
|
|
res.res_rsv_ruimte_tot datum_tot,
|
|
fac.safe_to_date (
|
|
TO_CHAR (res.res_rsv_ruimte_van, 'DD-MM-YYYY'),
|
|
'DD-MM-YYYY') leverdatum
|
|
FROM res_rsv_ruimte res) r,
|
|
res_rsv_artikel ra,
|
|
res_rsv_ruimte rr,
|
|
res_artikel a,
|
|
ins_tab_discipline cat,
|
|
(SELECT cat.res_disc_params_cancel_dagen
|
|
annuleringshorizon,
|
|
cat.res_disc_params_expire_dagen
|
|
wijzigingshorizon,
|
|
cat.res_disc_params_expire_tijd
|
|
grens_wijzigingshorizon,
|
|
cat.res_ins_discipline_key
|
|
FROM res_disc_params cat) cat_set
|
|
WHERE r.res_rsv_ruimte_key = ra.res_rsv_ruimte_key
|
|
AND ra.res_artikel_key = a.res_artikel_key
|
|
AND r.res_rsv_ruimte_key = rr.res_rsv_ruimte_key
|
|
AND cat.ins_discipline_key = a.res_discipline_key
|
|
AND cat.ins_discipline_key = cat_set.res_ins_discipline_key
|
|
ORDER BY ra.res_rsv_artikel_key;
|
|
|
|
CREATE OR REPLACE VIEW BLST_V_RAP_WIJZIGINGSDATUM
|
|
(
|
|
res_rsv_artikel_key,
|
|
res_rsv_artikel_levering,
|
|
wijzigingshorizon,
|
|
grens_wijzigingshorizon,
|
|
datum_wijzigingshorizon,
|
|
aant_wknd_dgn_wijz_hrz,
|
|
wijz_hrz_excl_wknd_dgn,
|
|
day_of_week,
|
|
extra_dgn,
|
|
wijz_hrz_excl_wknd_dgn_new,
|
|
aant_vrije_dgn,
|
|
wijz_hrz_excl_vrij_dgn_new,
|
|
day_of_week_new,
|
|
extra_dgn_new,
|
|
berekende_grens_wijz_hrz
|
|
)
|
|
AS
|
|
SELECT ra.res_rsv_artikel_key,
|
|
ra.res_rsv_artikel_levering,
|
|
wijzigingshorizon,
|
|
grens_wijzigingshorizon,
|
|
(TRUNC (ra.res_rsv_artikel_levering) - wijzigingshorizon)
|
|
datum_wijzigingshorizon,
|
|
---- zitten er weekend dagen tussen leverdatum en wijzigingshorizon
|
|
NVL (
|
|
(blst.aantal_weekenddagen (
|
|
(TRUNC (ra.res_rsv_artikel_levering) - wijzigingshorizon),
|
|
(TRUNC (ra.res_rsv_artikel_levering)))),
|
|
0)
|
|
aant_wknd_dgn_wijzigingshorizon,
|
|
--- nieuwe wijzigingsshorizon berekenen door ook de weekenddagen eraf te trekken
|
|
(TRUNC (ra.res_rsv_artikel_levering) - wijzigingshorizon)
|
|
- NVL (
|
|
(blst.aantal_weekenddagen (
|
|
( TRUNC (ra.res_rsv_artikel_levering)
|
|
- wijzigingshorizon),
|
|
(TRUNC (ra.res_rsv_artikel_levering)))),
|
|
0)
|
|
wijzigingshorizon_excl_weekenddgn,
|
|
--- op welke dag komt de nieuwe datum uit?
|
|
FAC.getweekdaynum (
|
|
(TRUNC (ra.res_rsv_artikel_levering) - wijzigingshorizon)
|
|
- NVL (
|
|
(blst.aantal_weekenddagen (
|
|
( TRUNC (ra.res_rsv_artikel_levering)
|
|
- wijzigingshorizon),
|
|
(TRUNC (ra.res_rsv_artikel_levering)))),
|
|
0))
|
|
day_of_week,
|
|
--- als de nieuwe datum ook uitkomt op een zaterdag (dag 7) of zondag (dag 1) dan resp. 1 of 2 dagen extra eraf
|
|
CASE FAC.getweekdaynum (
|
|
( TRUNC (ra.res_rsv_artikel_levering)
|
|
- wijzigingshorizon)
|
|
- NVL (
|
|
(blst.aantal_weekenddagen (
|
|
( TRUNC (ra.res_rsv_artikel_levering)
|
|
- wijzigingshorizon),
|
|
(TRUNC (ra.res_rsv_artikel_levering)))),
|
|
0))
|
|
WHEN 1
|
|
THEN
|
|
2
|
|
WHEN 7
|
|
THEN
|
|
1
|
|
ELSE
|
|
0
|
|
END
|
|
extra_dgn,
|
|
--- Die extra dag trekken we van de wijzigingshorizon_excl_weekenddgn af
|
|
(TRUNC (ra.res_rsv_artikel_levering) - wijzigingshorizon)
|
|
- NVL (
|
|
(blst.aantal_weekenddagen (
|
|
( TRUNC (ra.res_rsv_artikel_levering)
|
|
- wijzigingshorizon),
|
|
(TRUNC (ra.res_rsv_artikel_levering)))),
|
|
0)
|
|
- (CASE FAC.getweekdaynum (
|
|
( TRUNC (ra.res_rsv_artikel_levering)
|
|
- wijzigingshorizon)
|
|
- NVL (
|
|
(blst.aantal_weekenddagen (
|
|
( TRUNC (ra.res_rsv_artikel_levering)
|
|
- wijzigingshorizon),
|
|
(TRUNC (ra.res_rsv_artikel_levering)))),
|
|
0))
|
|
WHEN 1
|
|
THEN
|
|
2
|
|
WHEN 7
|
|
THEN
|
|
1
|
|
ELSE
|
|
0
|
|
END)
|
|
wijzigingshorizon_excl_weekenddgn_new,
|
|
-- dan kunnen er ook nog vrije dagen zijn die vallen tussen de leverdatum en de zojuist bepaalde wijzingshorizon waar we rekening mee moeten houden
|
|
-- aantal_vrije_dagen (datum_van IN DATE, datum_tot IN DATE)
|
|
blst.aantal_vrije_dagen (
|
|
(TRUNC (ra.res_rsv_artikel_levering) - wijzigingshorizon)
|
|
- NVL (
|
|
(blst.aantal_weekenddagen (
|
|
( TRUNC (ra.res_rsv_artikel_levering)
|
|
- wijzigingshorizon),
|
|
(TRUNC (ra.res_rsv_artikel_levering)))),
|
|
0)
|
|
- (CASE FAC.getweekdaynum (
|
|
( TRUNC (ra.res_rsv_artikel_levering)
|
|
- wijzigingshorizon)
|
|
- NVL (
|
|
(blst.aantal_weekenddagen (
|
|
( TRUNC (ra.res_rsv_artikel_levering)
|
|
- wijzigingshorizon),
|
|
(TRUNC (ra.res_rsv_artikel_levering)))),
|
|
0))
|
|
WHEN 1
|
|
THEN
|
|
2
|
|
WHEN 7
|
|
THEN
|
|
1
|
|
ELSE
|
|
0
|
|
END),
|
|
ra.res_rsv_artikel_levering)
|
|
aant_vrije_dgn,
|
|
--- die vrije dagen moeten we er weer van wijzigingshorizon_excl_weekenddgn_new aftrekken
|
|
( (TRUNC (ra.res_rsv_artikel_levering) - wijzigingshorizon)
|
|
- NVL (
|
|
(blst.aantal_weekenddagen (
|
|
( TRUNC (ra.res_rsv_artikel_levering)
|
|
- wijzigingshorizon),
|
|
(TRUNC (ra.res_rsv_artikel_levering)))),
|
|
0)
|
|
- (CASE FAC.getweekdaynum (
|
|
( TRUNC (ra.res_rsv_artikel_levering)
|
|
- wijzigingshorizon)
|
|
- NVL (
|
|
(blst.aantal_weekenddagen (
|
|
( TRUNC (ra.res_rsv_artikel_levering)
|
|
- wijzigingshorizon),
|
|
(TRUNC (ra.res_rsv_artikel_levering)))),
|
|
0))
|
|
WHEN 1
|
|
THEN
|
|
2
|
|
WHEN 7
|
|
THEN
|
|
1
|
|
ELSE
|
|
0
|
|
END))
|
|
- (blst.aantal_vrije_dagen (
|
|
(TRUNC (ra.res_rsv_artikel_levering) - wijzigingshorizon)
|
|
- NVL (
|
|
(blst.aantal_weekenddagen (
|
|
( TRUNC (ra.res_rsv_artikel_levering)
|
|
- wijzigingshorizon),
|
|
(TRUNC (ra.res_rsv_artikel_levering)))),
|
|
0)
|
|
- (CASE FAC.getweekdaynum (
|
|
( TRUNC (ra.res_rsv_artikel_levering)
|
|
- wijzigingshorizon)
|
|
- NVL (
|
|
(blst.aantal_weekenddagen (
|
|
( TRUNC (
|
|
ra.res_rsv_artikel_levering)
|
|
- wijzigingshorizon),
|
|
(TRUNC (ra.res_rsv_artikel_levering)))),
|
|
0))
|
|
WHEN 1
|
|
THEN
|
|
2
|
|
WHEN 7
|
|
THEN
|
|
1
|
|
ELSE
|
|
0
|
|
END),
|
|
ra.res_rsv_artikel_levering))
|
|
uiteindelijke_grens_wijzigingsdatum,
|
|
FAC.getweekdaynum (
|
|
( (TRUNC (ra.res_rsv_artikel_levering) - wijzigingshorizon)
|
|
- NVL (
|
|
(blst.aantal_weekenddagen (
|
|
( TRUNC (ra.res_rsv_artikel_levering)
|
|
- wijzigingshorizon),
|
|
(TRUNC (ra.res_rsv_artikel_levering)))),
|
|
0)
|
|
- (CASE FAC.getweekdaynum (
|
|
( TRUNC (ra.res_rsv_artikel_levering)
|
|
- wijzigingshorizon)
|
|
- NVL (
|
|
(blst.aantal_weekenddagen (
|
|
( TRUNC (
|
|
ra.res_rsv_artikel_levering)
|
|
- wijzigingshorizon),
|
|
(TRUNC (ra.res_rsv_artikel_levering)))),
|
|
0))
|
|
WHEN 1
|
|
THEN
|
|
2
|
|
WHEN 7
|
|
THEN
|
|
1
|
|
ELSE
|
|
0
|
|
END))
|
|
- (blst.aantal_vrije_dagen (
|
|
( TRUNC (ra.res_rsv_artikel_levering)
|
|
- wijzigingshorizon)
|
|
- NVL (
|
|
(blst.aantal_weekenddagen (
|
|
( TRUNC (ra.res_rsv_artikel_levering)
|
|
- wijzigingshorizon),
|
|
(TRUNC (ra.res_rsv_artikel_levering)))),
|
|
0)
|
|
- (CASE FAC.getweekdaynum (
|
|
( TRUNC (ra.res_rsv_artikel_levering)
|
|
- wijzigingshorizon)
|
|
- NVL (
|
|
(blst.aantal_weekenddagen (
|
|
( TRUNC (
|
|
ra.res_rsv_artikel_levering)
|
|
- wijzigingshorizon),
|
|
(TRUNC (
|
|
ra.res_rsv_artikel_levering)))),
|
|
0))
|
|
WHEN 1
|
|
THEN
|
|
2
|
|
WHEN 7
|
|
THEN
|
|
1
|
|
ELSE
|
|
0
|
|
END),
|
|
ra.res_rsv_artikel_levering)))
|
|
day_of_week_new,
|
|
-- als deze datum in het weekend valt moeten we weer schuiven.... dus berekenen hoeveel dagen extra
|
|
CASE FAC.getweekdaynum (
|
|
( ( TRUNC (ra.res_rsv_artikel_levering)
|
|
- wijzigingshorizon)
|
|
- NVL (
|
|
(blst.aantal_weekenddagen (
|
|
( TRUNC (ra.res_rsv_artikel_levering)
|
|
- wijzigingshorizon),
|
|
(TRUNC (ra.res_rsv_artikel_levering)))),
|
|
0)
|
|
- (CASE FAC.getweekdaynum (
|
|
( TRUNC (ra.res_rsv_artikel_levering)
|
|
- wijzigingshorizon)
|
|
- NVL (
|
|
(blst.aantal_weekenddagen (
|
|
( TRUNC (
|
|
ra.res_rsv_artikel_levering)
|
|
- wijzigingshorizon),
|
|
(TRUNC (
|
|
ra.res_rsv_artikel_levering)))),
|
|
0))
|
|
WHEN 1
|
|
THEN
|
|
2
|
|
WHEN 7
|
|
THEN
|
|
1
|
|
ELSE
|
|
0
|
|
END))
|
|
- (blst.aantal_vrije_dagen (
|
|
( TRUNC (ra.res_rsv_artikel_levering)
|
|
- wijzigingshorizon)
|
|
- NVL (
|
|
(blst.aantal_weekenddagen (
|
|
( TRUNC (ra.res_rsv_artikel_levering)
|
|
- wijzigingshorizon),
|
|
(TRUNC (ra.res_rsv_artikel_levering)))),
|
|
0)
|
|
- (CASE FAC.getweekdaynum (
|
|
( TRUNC (
|
|
ra.res_rsv_artikel_levering)
|
|
- wijzigingshorizon)
|
|
- NVL (
|
|
(blst.aantal_weekenddagen (
|
|
( TRUNC (
|
|
ra.res_rsv_artikel_levering)
|
|
- wijzigingshorizon),
|
|
(TRUNC (
|
|
ra.res_rsv_artikel_levering)))),
|
|
0))
|
|
WHEN 1
|
|
THEN
|
|
2
|
|
WHEN 7
|
|
THEN
|
|
1
|
|
ELSE
|
|
0
|
|
END),
|
|
ra.res_rsv_artikel_levering)))
|
|
WHEN 1
|
|
THEN
|
|
2
|
|
WHEN 7
|
|
THEN
|
|
1
|
|
ELSE
|
|
0
|
|
END
|
|
extra_dgn_new,
|
|
--- en uiteindelijk alles die dagen weer van de laatst berekende datum aftrekken
|
|
( ( (TRUNC (ra.res_rsv_artikel_levering) - wijzigingshorizon)
|
|
- NVL (
|
|
(blst.aantal_weekenddagen (
|
|
( TRUNC (ra.res_rsv_artikel_levering)
|
|
- wijzigingshorizon),
|
|
(TRUNC (ra.res_rsv_artikel_levering)))),
|
|
0)
|
|
- (CASE FAC.getweekdaynum (
|
|
( TRUNC (ra.res_rsv_artikel_levering)
|
|
- wijzigingshorizon)
|
|
- NVL (
|
|
(blst.aantal_weekenddagen (
|
|
( TRUNC (
|
|
ra.res_rsv_artikel_levering)
|
|
- wijzigingshorizon),
|
|
(TRUNC (ra.res_rsv_artikel_levering)))),
|
|
0))
|
|
WHEN 1
|
|
THEN
|
|
2
|
|
WHEN 7
|
|
THEN
|
|
1
|
|
ELSE
|
|
0
|
|
END))
|
|
- (blst.aantal_vrije_dagen (
|
|
( TRUNC (ra.res_rsv_artikel_levering)
|
|
- wijzigingshorizon)
|
|
- NVL (
|
|
(blst.aantal_weekenddagen (
|
|
( TRUNC (ra.res_rsv_artikel_levering)
|
|
- wijzigingshorizon),
|
|
(TRUNC (ra.res_rsv_artikel_levering)))),
|
|
0)
|
|
- (CASE FAC.getweekdaynum (
|
|
( TRUNC (ra.res_rsv_artikel_levering)
|
|
- wijzigingshorizon)
|
|
- NVL (
|
|
(blst.aantal_weekenddagen (
|
|
( TRUNC (
|
|
ra.res_rsv_artikel_levering)
|
|
- wijzigingshorizon),
|
|
(TRUNC (
|
|
ra.res_rsv_artikel_levering)))),
|
|
0))
|
|
WHEN 1
|
|
THEN
|
|
2
|
|
WHEN 7
|
|
THEN
|
|
1
|
|
ELSE
|
|
0
|
|
END),
|
|
ra.res_rsv_artikel_levering)))
|
|
- (CASE FAC.getweekdaynum (
|
|
( ( TRUNC (ra.res_rsv_artikel_levering)
|
|
- wijzigingshorizon)
|
|
- NVL (
|
|
(blst.aantal_weekenddagen (
|
|
( TRUNC (ra.res_rsv_artikel_levering)
|
|
- wijzigingshorizon),
|
|
(TRUNC (ra.res_rsv_artikel_levering)))),
|
|
0)
|
|
- (CASE FAC.getweekdaynum (
|
|
( TRUNC (
|
|
ra.res_rsv_artikel_levering)
|
|
- wijzigingshorizon)
|
|
- NVL (
|
|
(blst.aantal_weekenddagen (
|
|
( TRUNC (
|
|
ra.res_rsv_artikel_levering)
|
|
- wijzigingshorizon),
|
|
(TRUNC (
|
|
ra.res_rsv_artikel_levering)))),
|
|
0))
|
|
WHEN 1
|
|
THEN
|
|
2
|
|
WHEN 7
|
|
THEN
|
|
1
|
|
ELSE
|
|
0
|
|
END))
|
|
- (blst.aantal_vrije_dagen (
|
|
( TRUNC (ra.res_rsv_artikel_levering)
|
|
- wijzigingshorizon)
|
|
- NVL (
|
|
(blst.aantal_weekenddagen (
|
|
( TRUNC (
|
|
ra.res_rsv_artikel_levering)
|
|
- wijzigingshorizon),
|
|
(TRUNC (ra.res_rsv_artikel_levering)))),
|
|
0)
|
|
- (CASE FAC.getweekdaynum (
|
|
( TRUNC (
|
|
ra.res_rsv_artikel_levering)
|
|
- wijzigingshorizon)
|
|
- NVL (
|
|
(blst.aantal_weekenddagen (
|
|
( TRUNC (
|
|
ra.res_rsv_artikel_levering)
|
|
- wijzigingshorizon),
|
|
(TRUNC (
|
|
ra.res_rsv_artikel_levering)))),
|
|
0))
|
|
WHEN 1
|
|
THEN
|
|
2
|
|
WHEN 7
|
|
THEN
|
|
1
|
|
ELSE
|
|
0
|
|
END),
|
|
ra.res_rsv_artikel_levering)))
|
|
WHEN 1
|
|
THEN
|
|
2
|
|
WHEN 7
|
|
THEN
|
|
1
|
|
ELSE
|
|
0
|
|
END)
|
|
berekende_grens_wijzigingsdatum
|
|
FROM (SELECT DISTINCT
|
|
res.res_rsv_ruimte_key,
|
|
res.res_reservering_key,
|
|
res.res_rsv_ruimte_volgnr,
|
|
res.res_rsv_ruimte_van datum_van,
|
|
res.res_rsv_ruimte_tot datum_tot,
|
|
fac.safe_to_date (
|
|
TO_CHAR (res.res_rsv_ruimte_van, 'DD-MM-YYYY'),
|
|
'DD-MM-YYYY') leverdatum
|
|
FROM res_rsv_ruimte res) r,
|
|
res_rsv_artikel ra,
|
|
res_rsv_ruimte rr,
|
|
res_artikel a,
|
|
ins_tab_discipline cat,
|
|
(SELECT cat.res_disc_params_cancel_dagen
|
|
annuleringshorizon,
|
|
cat.res_disc_params_expire_dagen
|
|
wijzigingshorizon,
|
|
cat.res_disc_params_expire_tijd
|
|
grens_wijzigingshorizon,
|
|
cat.res_ins_discipline_key
|
|
FROM res_disc_params cat) cat_set
|
|
WHERE r.res_rsv_ruimte_key = ra.res_rsv_ruimte_key
|
|
AND ra.res_artikel_key = a.res_artikel_key
|
|
AND r.res_rsv_ruimte_key = rr.res_rsv_ruimte_key
|
|
AND cat.ins_discipline_key = a.res_discipline_key
|
|
AND cat.ins_discipline_key = cat_set.res_ins_discipline_key
|
|
ORDER BY ra.res_rsv_artikel_key;
|
|
|
|
CREATE OR REPLACE VIEW blst_v_rap_catering_bd
|
|
(
|
|
res_reservering_key,
|
|
res_rsv_ruimte_key,
|
|
reservering,
|
|
datum,
|
|
export_datum,
|
|
totaal_prijs
|
|
)
|
|
AS
|
|
SELECT res_reservering_key,
|
|
res_rsv_ruimte_key,
|
|
reservering,
|
|
rsv_artikel_levering,
|
|
externsyncdate,
|
|
totaalprijs
|
|
FROM ( SELECT rr.res_reservering_key,
|
|
rr.res_rsv_ruimte_key,
|
|
rr.res_reservering_key || '/' || rr.res_rsv_ruimte_volgnr
|
|
reservering,
|
|
TRUNC (ra.res_rsv_artikel_levering)
|
|
rsv_artikel_levering,
|
|
rr.res_rsv_ruimte_externsyncdate
|
|
externsyncdate,
|
|
SUM (res.getartikelprijs (ra.res_rsv_artikel_key))
|
|
totaalprijs
|
|
FROM res_rsv_artikel ra,
|
|
res_artikel a,
|
|
res_discipline d,
|
|
res_rsv_ruimte rr
|
|
WHERE ra.res_rsv_artikel_verwijder IS NULL
|
|
AND a.res_artikel_key = ra.res_artikel_key
|
|
AND d.ins_discipline_key = a.res_discipline_key
|
|
AND d.ins_discipline_min_level = 2
|
|
AND rr.res_rsv_ruimte_key = ra.res_rsv_ruimte_key
|
|
AND UPPER (d.ins_discipline_omschrijving) LIKE '%(BD)%'
|
|
GROUP BY rr.res_reservering_key,
|
|
rr.res_rsv_ruimte_key,
|
|
rr.res_reservering_key
|
|
|| '/'
|
|
|| rr.res_rsv_ruimte_volgnr,
|
|
rr.res_rsv_ruimte_externsyncdate,
|
|
TRUNC (ra.res_rsv_artikel_levering));
|
|
|
|
|
|
|
|
CREATE OR REPLACE PROCEDURE blst_select_nds_export_new (
|
|
p_applname IN VARCHAR2,
|
|
p_applrun IN VARCHAR2)
|
|
AS
|
|
CURSOR SEL (p_days NUMBER)
|
|
IS
|
|
|
|
SELECT res.res_rsv_ruimte_key res_ruimte_key,
|
|
res.res_reservering_key reserveringnr,
|
|
res.res_rsv_ruimte_volgnr volgnr,
|
|
gb.alg_locatie_omschrijving locatie,
|
|
geb.alg_gebouw_code code,
|
|
geb.alg_gebouw_omschrijving gebouw,
|
|
gb.alg_verdieping_omschrijving verdieping,
|
|
gb.alg_ruimte_nr ruimtenr,
|
|
rm.res_ruimte_nr ruimteomsch,
|
|
res.res_rsv_ruimte_omschrijving titel,
|
|
res.res_rsv_ruimte_van datum_start,
|
|
res.res_rsv_ruimte_tot datum_tot,
|
|
ros.res_opstelling_omschrijving opstelling,
|
|
res.res_rsv_ruimte_opmerking opmerking,
|
|
prsh.prs_perslid_naam_friendly HOST,
|
|
prsc.prs_perslid_naam_friendly aanvrager,
|
|
rac.res_activiteit_omschrijving activiteit
|
|
FROM res_rsv_ruimte res,
|
|
res_ruimte_opstelling ro,
|
|
res_opstelling ros,
|
|
res_ruimte rm,
|
|
alg_v_ruimte_gegevens gb,
|
|
alg_v_gebouw_gegevens geb,
|
|
alg_onrgoedkenmerk ken,
|
|
prs_v_perslid_fullnames prsh,
|
|
prs_v_perslid_fullnames prsc,
|
|
res_activiteit rac,
|
|
res_srtactiviteit rsa,
|
|
res_discipline rd
|
|
WHERE res.res_status_bo_key = 2
|
|
AND res.res_status_fo_key = 2
|
|
AND rac.res_activiteit_key = res.res_activiteit_key
|
|
AND rsa.res_srtactiviteit_key = rac.res_srtactiviteit_key
|
|
AND rsa.res_srtactiviteit_soort = 0
|
|
AND rd.ins_discipline_key= rm.res_discipline_key
|
|
AND (rd.ins_discipline_externnr IS NULL OR rd.ins_discipline_externnr NOT LIKE 'GEENDIS')
|
|
AND rd.ins_discipline_min_level=3
|
|
AND rd.ins_discipline_verwijder IS NULL
|
|
AND TRUNC (res.res_rsv_ruimte_van) < TRUNC (SYSDATE + 9)
|
|
AND TRUNC (res.res_rsv_ruimte_van) >= TRUNC (SYSDATE)
|
|
AND prsh.prs_perslid_key = res.res_rsv_ruimte_host_key
|
|
AND prsc.prs_perslid_key = res.res_rsv_ruimte_contact_key
|
|
AND ro.res_ruimte_opstel_key = res.res_ruimte_opstel_key
|
|
AND ros.res_opstelling_key = ro.res_opstelling_key
|
|
AND rm.res_ruimte_key = ro.res_ruimte_key
|
|
AND gb.alg_ruimte_key = (SELECT MIN(r.alg_ruimte_key)
|
|
FROM res_alg_ruimte r
|
|
WHERE r.res_ruimte_key=rm.res_ruimte_key
|
|
AND res_alg_ruimte_verwijder IS NULL)
|
|
AND ken.alg_onrgoed_key = gb.alg_gebouw_key
|
|
AND ken.alg_onrgoed_niveau='G'
|
|
AND geb.alg_gebouw_key = gb.alg_gebouw_key
|
|
AND ken.alg_kenmerk_key = 1081
|
|
AND ken.alg_onrgoedkenmerk_waarde = 1
|
|
AND res.res_rsv_ruimte_verwijder IS NULL
|
|
AND res.res_rsv_ruimte_dirtlevel = 0;
|
|
|
|
|
|
v_bestand VARCHAR2 (50);
|
|
v_base VARCHAR2 (10);
|
|
v_guid VARCHAR2 (40);
|
|
v_daysC VARCHAR2 (5);
|
|
v_days NUMBER := 7;
|
|
v_counter NUMBER;
|
|
BEGIN
|
|
v_base := 'NDS_NEW';
|
|
v_bestand := v_base || '-';
|
|
v_guid := blst.getguid ();
|
|
v_counter := 0;
|
|
|
|
DELETE FROM fac_rapport -- Opschonen oude NDS exports
|
|
WHERE fac_rapport_node LIKE 'NDS_NEW%';
|
|
|
|
COMMIT;
|
|
|
|
SELECT ud.fac_usrdata_code
|
|
INTO v_daysC
|
|
FROM fac_usrtab ut, FAC_USRDATA ud
|
|
WHERE UPPER (ut.fac_usrtab_naam) = 'BLST_SETTINGS'
|
|
AND ud.fac_usrtab_key = ut.fac_usrtab_key
|
|
AND UPPER (ud.fac_usrdata_omschr) = 'NDS_EXPORT_DAYS';
|
|
|
|
v_days := fac.safe_to_number (v_daysC);
|
|
|
|
blst.add_xml_row (v_bestand, '<?xml version="1.0" encoding="utf-8"?>');
|
|
blst.add_xml_row (
|
|
v_bestand,
|
|
'<soapenv:Envelope xmlns:ser="http://asycuda.tatisint.com/services" xmlns:bsb="urn:belastingdienst-nl:bsb" xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:wsa="http://www.w3.org/2005/08/addressing">');
|
|
blst.add_xml_row (v_bestand, '<soapenv:Header>');
|
|
blst.add_xml_row (
|
|
v_bestand,
|
|
'<wsa:To>urn:belastingdienst.nl/facilitairedienst/dis</wsa:To>');
|
|
blst.add_xml_row (v_bestand, '<wsa:From>');
|
|
blst.add_xml_row (
|
|
v_bestand,
|
|
'<wsa:Address>urn:belastingdienst-nl:bedrijfsvoering:fmis:facilitor</wsa:Address>');
|
|
blst.add_xml_row (v_bestand, '</wsa:From>');
|
|
blst.add_xml_row (
|
|
v_bestand,
|
|
'<wsa:Action>http://servicespecifications.belastingdienst.nl/facilitairedienst/dis/vergaderlocaties</wsa:Action>');
|
|
blst.add_xml_row (v_bestand,
|
|
'<wsa:MessageID>uuid:' || v_guid || '</wsa:MessageID>');
|
|
|
|
blst.add_xml_row (
|
|
v_bestand,
|
|
'<bsb:ErrorDestination>urn:belastingdienst-nl:facilitor-error</bsb:ErrorDestination>');
|
|
blst.add_xml_row (v_bestand, '</soapenv:Header>');
|
|
blst.add_xml_row (v_bestand, '<soapenv:Body>');
|
|
blst.add_xml_row (
|
|
v_bestand,
|
|
'<ns0:XI015_MT_Reservering xmlns:ns0="http://belastingdienst.nl/xi/bis">');
|
|
blst.add_xml_element (v_bestand, 'Submitter', 'Facilitor');
|
|
|
|
FOR rec IN SEL (v_days)
|
|
LOOP
|
|
blst.add_xml_row (v_bestand, '<Reservering>');
|
|
blst.add_xml_element (v_bestand,
|
|
'Reserveringnummer',
|
|
rec.reserveringNr || '/' || rec.volgNr);
|
|
blst.add_xml_element (v_bestand, 'Locatie', rec.locatie);
|
|
blst.add_xml_row (
|
|
v_bestand,
|
|
'<Gebouw code="' || rec.code || '">' || rec.gebouw || '</Gebouw>');
|
|
blst.add_xml_element (v_bestand, 'Verdieping', rec.verdieping);
|
|
blst.add_xml_element (v_bestand, 'RuimteNr', rec.ruimteNr);
|
|
blst.add_xml_element (v_bestand,
|
|
'RuimteOmschrijving',
|
|
rec.ruimteOmsch);
|
|
blst.add_xml_element (v_bestand, 'Opstelling', rec.opstelling);
|
|
blst.add_xml_element (v_bestand, 'Activiteit', rec.activiteit);
|
|
blst.add_xml_element (v_bestand,
|
|
'Datum',
|
|
TO_CHAR (rec.datum_start, 'YYYY/MM/DD'));
|
|
blst.add_xml_element (v_bestand,
|
|
'Starttijd',
|
|
TO_CHAR (rec.datum_start, 'HH24:MI'));
|
|
blst.add_xml_element (v_bestand,
|
|
'Eindtijd',
|
|
TO_CHAR (rec.datum_tot, 'HH24:MI'));
|
|
blst.add_xml_element (v_bestand, 'Titel', rec.titel);
|
|
blst.add_xml_element (v_bestand, 'Opmerking', SUBSTR(rec.opmerking,1,1950));
|
|
blst.add_xml_element (v_bestand, 'Aanvrager', rec.aanvrager);
|
|
blst.add_xml_element (v_bestand, 'Gastheer', rec.HOST);
|
|
blst.add_xml_row (v_bestand, '</Reservering>');
|
|
v_counter := v_counter + 1;
|
|
END LOOP;
|
|
|
|
blst.add_xml_row (v_bestand, '</ns0:XI015_MT_Reservering>');
|
|
blst.add_xml_row (v_bestand, '</soapenv:Body>');
|
|
blst.add_xml_row (v_bestand, '</soapenv:Envelope>');
|
|
|
|
IF v_counter = 0
|
|
THEN
|
|
-- no data to be exported
|
|
DELETE FROM fac_rapport -- Opschonen NDS exports
|
|
WHERE fac_rapport_node LIKE 'NDS_NEW%';
|
|
COMMIT;
|
|
RETURN;
|
|
END IF;
|
|
END;
|
|
/
|
|
|
|
|
|
|
|
CREATE OR REPLACE PROCEDURE blst_select_bes_vkp_new(p_bes_key IN NUMBER, p_aanvraagNr IN VARCHAR2, p_counter IN NUMBER)
|
|
AS
|
|
CURSOR sel(p_bes_key NUMBER)
|
|
IS
|
|
SELECT distinct b.bes_bestelopdr_key bes_key,
|
|
COALESCE(b.bes_bestelopdr_leverdatum,b.bes_bestelopdr_datum) leverdatum,
|
|
(SELECT prs_kostenplaats_nr FROM prs_kostenplaats WHERE prs_kostenplaats_key=bb.prs_kostenplaats_key) kostenplaats,
|
|
(SELECT prs_bedrijf.prs_leverancier_nr FROM prs_bedrijf WHERE prs_bedrijf_key=b.prs_bedrijf_key) leveranciernr,
|
|
(SELECT prs_kostenplaats_extern FROM prs_kostenplaats WHERE prs_kostenplaats_key=bb.prs_kostenplaats_key) extern,
|
|
(SELECT kg.prs_kostenplaatsgrp_nr
|
|
FROM prs_kostenplaatsgrp kg, prs_kostenplaats k
|
|
WHERE kg.prs_kostenplaatsgrp_key=k.prs_kostenplaatsgrp_key
|
|
AND k.prs_kostenplaats_key=bb.prs_kostenplaats_key) btw,
|
|
(SELECT prs_perslid_naam_friendly FROM prs_v_perslid_fullnames WHERE prs_perslid_key = b.prs_perslid_key) besteller,
|
|
'Lyreco bestelling' omschrijving,
|
|
(SELECT bkb.bes_kenmerkbestell_waarde
|
|
FROM bes_kenmerk bk, bes_srtkenmerk bs, bes_kenmerkbestell bkb
|
|
WHERE bs.bes_srtkenmerk_upper='KLANTREFERENTIE'
|
|
AND bk.bes_srtkenmerk_key = bs.bes_srtkenmerk_key
|
|
AND bk.bes_srtinstallatie_key=ins.ins_discipline_key
|
|
AND bk.bes_kenmerk_key=bkb.bes_kenmerk_key
|
|
AND bkb.bes_bestelling_key=bb.bes_bestelling_key) klantref
|
|
FROM bes_bestelopdr b, bes_bestelopdr_item boi, bes_bestelling_item bbi, bes_bestelling bb,prs_kostenplaats kstp,
|
|
(SELECT DISTINCT bsg.ins_discipline_key ins_discipline_key
|
|
FROM bes_bestelopdr bo, bes_bestelopdr_item bboi, bes_bestelling_item bbi, bes_srtdeel bsd, bes_srtgroep bsg, ins_tab_discipline id
|
|
WHERE bo.bes_bestelopdr_key= p_bes_key
|
|
AND bboi.bes_bestelopdr_key=bo.bes_bestelopdr_key
|
|
AND bbi.bes_bestelopdr_item_key = bboi.bes_bestelopdr_item_key
|
|
AND bsd.bes_srtdeel_key=bbi.bes_srtdeel_key
|
|
AND bsg.bes_srtgroep_key=bsd.bes_srtgroep_key
|
|
AND id.ins_discipline_key= bsg.ins_discipline_key) ins
|
|
WHERE b.bes_bestelopdr_key=p_bes_key
|
|
AND boi.bes_bestelopdr_key = b.bes_bestelopdr_key
|
|
AND bbi.bes_bestelopdr_item_key = boi.bes_bestelopdr_item_key
|
|
AND bb.bes_bestelling_key = bbi.bes_bestelling_key;
|
|
|
|
|
|
CURSOR sel_bes(p_bes_key NUMBER)
|
|
IS
|
|
SELECT b.bes_bestelopdr_key,
|
|
bi.bes_bestelopdr_item_posnr posnr,
|
|
bi.bes_bestelopdr_item_aantal aantal,
|
|
bi.bes_bestelopdr_item_prijs prijs,
|
|
bi.bes_bestelopdr_item_omschrijv omsch,
|
|
bsd.bes_srtdeel_nr artikelNr,
|
|
bd.ins_discipline_externnr catalogus_id,
|
|
(SELECT fu.fac_usrdata_omschr
|
|
FROM bes_kenmerkbesteli bki, bes_kenmerk bk, bes_srtkenmerk bsk, fac_usrdata fu
|
|
WHERE fu.fac_usrdata_key=bki.bes_kenmerkbesteli_waarde
|
|
AND bk.bes_srtinstallatie_key=bd.ins_discipline_key
|
|
AND bki.bes_bestelling_item_key=ba.bes_bestelling_item_key
|
|
AND bk.bes_kenmerk_key = bki.bes_kenmerk_key
|
|
AND bsk.bes_srtkenmerk_key = bk.bes_srtkenmerk_key
|
|
AND bsk.bes_srtkenmerk_upper='BTW') meta_art,
|
|
(SELECT bkb.bes_kenmerkbesteli_waarde
|
|
FROM bes_kenmerk bk, bes_srtkenmerk bs, bes_kenmerkbesteli bkb
|
|
WHERE bs.bes_srtkenmerk_upper='CPV_CODE'
|
|
AND bk.bes_srtkenmerk_key = bs.bes_srtkenmerk_key
|
|
AND bk.bes_kenmerk_key=bkb.bes_kenmerk_key
|
|
AND bkb.bes_bestelling_item_key=ba.bes_bestelling_item_key
|
|
AND bk.bes_srtinstallatie_key=bd.ins_discipline_key) CPV_code,
|
|
(SELECT bkb.bes_kenmerkbesteli_waarde
|
|
FROM bes_kenmerk bk, bes_srtkenmerk bs, bes_kenmerkbesteli bkb
|
|
WHERE bs.bes_srtkenmerk_upper='LEVERDATUM'
|
|
AND bk.bes_srtkenmerk_key = bs.bes_srtkenmerk_key
|
|
AND bk.bes_kenmerk_key=bkb.bes_kenmerk_key
|
|
AND bkb.bes_bestelling_item_key=ba.bes_bestelling_item_key
|
|
AND bk.bes_srtinstallatie_key=bd.ins_discipline_key) leverdatum
|
|
FROM bes_bestelopdr b, bes_bestelopdr_item bi , bes_bestelling_item ba, bes_srtdeel bsd, bes_srtgroep bsg, bes_discipline bd
|
|
WHERE b.bes_bestelopdr_key = p_bes_key
|
|
AND bi.bes_bestelopdr_key = b.bes_bestelopdr_key
|
|
AND ba.bes_bestelopdr_item_key = bi.bes_bestelopdr_item_key
|
|
AND ba.bes_srtdeel_key = bsd.bes_srtdeel_key
|
|
AND bsg.bes_srtgroep_key = bsd.bes_srtgroep_key
|
|
AND bd.ins_discipline_key = bsg.ins_discipline_key
|
|
ORDER BY b.bes_bestelopdr_key,bi.bes_bestelopdr_item_posnr;
|
|
|
|
v_bestand VARCHAR2 (50);
|
|
v_base VARCHAR2 (10);
|
|
v_guid VARCHAR2 (40);
|
|
v_counter NUMBER;
|
|
v_artCounter NUMBER;
|
|
|
|
v_SAPID VARCHAR2 (30);
|
|
v_datum_van DATE;
|
|
v_omschrijving res_rsv_ruimte.res_rsv_ruimte_omschrijving%TYPE;
|
|
v_besteller prs_v_perslid_fullnames.prs_perslid_naam_friendly%TYPE;
|
|
v_debiteurNr prs_kostenplaats.prs_kostenplaats_nr%TYPE;
|
|
v_klantRef VARCHAR2 (80);
|
|
v_aanvraagnr VARCHAR2 (20);
|
|
v_prijs NUMBER;
|
|
v_btw NUMBER;
|
|
BEGIN
|
|
v_prijs:=0;
|
|
v_btw := 0;
|
|
v_SAPID := '';
|
|
v_counter := p_counter;
|
|
v_base := 'VKB_NEW';
|
|
|
|
|
|
|
|
FOR rec in sel(p_bes_key)
|
|
LOOP
|
|
|
|
--v_SAPID := blst.get_SAPid ();
|
|
v_SAPID := 'BHCATERING';
|
|
v_guid := blst.getguid ();
|
|
v_aanvraagnr := p_aanvraagNr;
|
|
|
|
v_bestand := v_base || '-' || v_counter || '-';
|
|
blst.add_xml_row (v_bestand,
|
|
'<?xml version="1.0" encoding="windows-1252"?>');
|
|
blst.add_xml_row (v_bestand, '<Facilitor>');
|
|
blst.add_xml_row (v_bestand, '<SOAPEnvelope>');
|
|
blst.add_xml_element (v_bestand, 'Action', v_base);
|
|
blst.add_xml_element (v_bestand, 'GUID', v_guid);
|
|
blst.add_xml_element (v_bestand, 'User', 'FACILITOR');
|
|
blst.add_xml_row (v_bestand, '</SOAPEnvelope>');
|
|
|
|
|
|
blst.add_xml_row (v_bestand, '<VerkooporderBes_new>');
|
|
blst.add_xml_element (v_bestand, 'BesKey', rec.bes_key);
|
|
blst.add_xml_element (v_bestand, 'ReserveringNr', v_aanvraagnr);
|
|
blst.add_xml_element (v_bestand, 'Ordersoort', 'ZFMI');
|
|
blst.add_xml_element (v_bestand, 'LeverDatum', TO_CHAR (rec.leverdatum, 'YYYYMMDD'));
|
|
blst.add_xml_element (v_bestand, 'Omschrijving', rec.omschrijving);
|
|
blst.add_xml_element (v_bestand, 'DebiteurNr', rec.kostenplaats);
|
|
blst.add_xml_element (v_bestand, 'Besteller', rec.besteller);
|
|
blst.add_xml_element (v_bestand, 'UserID', v_SAPID);
|
|
blst.add_xml_element (v_bestand, 'KlantRef', rec.klantref);
|
|
|
|
v_artCounter := 1;
|
|
|
|
FOR bes_art IN sel_bes (rec.bes_key)
|
|
LOOP
|
|
blst.add_xml_row (v_bestand, '<ArtikelBes>');
|
|
blst.add_xml_element (v_bestand, 'Regelnummer', bes_art.posnr);
|
|
blst.add_xml_element (v_bestand, 'ArtikelNr', bes_art.meta_art);
|
|
blst.add_xml_element (v_bestand, 'Aantal', bes_art.aantal);
|
|
blst.add_xml_element (v_bestand, 'Conditiesoort', 'ZPRM');
|
|
blst.add_xml_element (v_bestand, 'CPV_Code', bes_art.CPV_code);
|
|
|
|
|
|
if rec.extern=1 AND rec.btw=0
|
|
THEN
|
|
v_prijs := bes_art.prijs;
|
|
ELSE
|
|
SELECT COALESCE(MAX(fd.FAC_USRDATA_PRIJS),0)
|
|
INTO v_btw
|
|
FROM fac_usrtab f, FAC_USRDATA fd
|
|
WHERE f.fac_usrtab_naam='BTW'
|
|
AND fd.fac_usrtab_key = f.fac_usrtab_key
|
|
AND fd.fac_usrdata_key=bes_art.meta_art;
|
|
v_prijs := bes_art.prijs*(1+ v_btw/100); -- Prijs incl btw maken.
|
|
END IF;
|
|
blst.add_xml_element (v_bestand, 'Prijs', v_prijs);
|
|
blst.add_xml_element (v_bestand, 'LevArt', bes_art.artikelNr);
|
|
blst.add_xml_element (v_bestand, 'Omschrijving', bes_art.omsch);
|
|
blst.add_xml_element (v_bestand, 'Leverdatum',bes_art.leverdatum);
|
|
blst.add_xml_row (v_bestand, '</ArtikelBes>');
|
|
v_artCounter := v_artCounter + 1;
|
|
END LOOP;
|
|
|
|
blst.add_xml_row (v_bestand, '</VerkooporderBes_new>');
|
|
blst.add_xml_row (v_bestand, '</Facilitor>');
|
|
v_counter:=v_counter+1;
|
|
|
|
|
|
END LOOP;
|
|
|
|
END;
|
|
/
|
|
|
|
CREATE OR REPLACE PROCEDURE blst_select_bes_ikp_new
|
|
AS
|
|
CURSOR sel
|
|
IS
|
|
SELECT distinct b.bes_bestelopdr_key bes_key,
|
|
bb.bes_bestelling_key bes_bestel_key,
|
|
COALESCE(b.bes_bestelopdr_leverdatum,b.bes_bestelopdr_datum) leverdatum,
|
|
(SELECT prs_kostenplaats_nr FROM prs_kostenplaats WHERE prs_kostenplaats_key=bb.prs_kostenplaats_key) kostenplaats,
|
|
(SELECT prs_kostenplaats_extern FROM prs_kostenplaats WHERE prs_kostenplaats_key=bb.prs_kostenplaats_key) extern,
|
|
(SELECT prs_bedrijf.prs_leverancier_nr FROM prs_bedrijf WHERE prs_bedrijf_key=b.prs_bedrijf_key) leveranciernr,
|
|
(SELECT prs_perslid_naam_friendly FROM prs_v_perslid_fullnames WHERE prs_perslid_key = b.prs_perslid_key) besteller,
|
|
--(SELECT ins_discipline_externnr FROM bes_discipline where UPPER(ins_discipline_omschrijving)='LYRECO - KANTOORARTIKELEN') catalogus_id,
|
|
'Bestelling '||b.bes_bestelopdr_id omschrijving,
|
|
b.bes_bestelopdr_opmerking opmerking,
|
|
ma.mld_adres_gebouw_ruimte gebouwCode,
|
|
(SELECT alg_onrgoedkenmerk_waarde
|
|
FROM alg_onrgoedkenmerk ken, alg_v_allonrgoed_gegevens alg
|
|
WHERE alg.alg_gebouw_code = ma.mld_adres_gebouw_ruimte
|
|
AND ken.alg_onrgoed_key = alg.alg_gebouw_key
|
|
AND ken.alg_kenmerk_key = 1071)
|
|
straat, -- alg_gebouw kenmerk tbv straat
|
|
(SELECT alg_onrgoedkenmerk_waarde
|
|
FROM alg_onrgoedkenmerk ken, alg_v_allonrgoed_gegevens alg
|
|
WHERE alg.alg_gebouw_code = ma.mld_adres_gebouw_ruimte
|
|
AND ken.alg_onrgoed_key = alg.alg_gebouw_key
|
|
AND ken.alg_kenmerk_key = 1200)
|
|
nummer, -- alg_gebouw kenmerk tbv nummer (is aangepast van 1120 naar 1200 kenmerk was numeriek terwijl er ook 10A huisnr's zijn)
|
|
(SELECT alg_onrgoedkenmerk_waarde
|
|
FROM alg_onrgoedkenmerk ken, alg_v_allonrgoed_gegevens alg
|
|
WHERE alg.alg_gebouw_code = ma.mld_adres_gebouw_ruimte
|
|
AND ken.alg_onrgoed_key = alg.alg_gebouw_key
|
|
AND ken.alg_kenmerk_key = 1072)
|
|
postcode, -- alg_gebouw kenmerk tbv postciode
|
|
(SELECT alg_onrgoedkenmerk_waarde
|
|
FROM alg_onrgoedkenmerk ken, alg_v_allonrgoed_gegevens alg
|
|
WHERE alg.alg_gebouw_code = ma.mld_adres_gebouw_ruimte
|
|
AND ken.alg_onrgoed_key = alg.alg_gebouw_key
|
|
AND ken.alg_kenmerk_key = 1073)
|
|
plaats, -- alg_gebouw kenmerk tbv plaats
|
|
(SELECT alg_onrgoedkenmerk_waarde
|
|
FROM alg_onrgoedkenmerk ken, alg_v_allonrgoed_gegevens alg
|
|
WHERE alg.alg_gebouw_code = ma.mld_adres_gebouw_ruimte
|
|
AND ken.alg_onrgoed_key = alg.alg_gebouw_key
|
|
AND ken.alg_kenmerk_key = 1074)
|
|
land
|
|
FROM bes_bestelopdr b, bes_bestelopdr_item boi, bes_bestelling_item bbi, bes_bestelling bb, mld_adres ma
|
|
WHERE b.bes_bestelopdr_status=3
|
|
AND boi.bes_bestelopdr_key = b.bes_bestelopdr_key
|
|
AND bbi.bes_bestelopdr_item_key = boi.bes_bestelopdr_item_key
|
|
AND bb.bes_bestelling_key = bbi.bes_bestelling_key
|
|
AND ma.mld_adres_key = bb.mld_adres_key_lev
|
|
AND b.bes_bestelopdr_externnr IS NULL; -- is dus nog niet geexporteerd. Bes_opdr worden eenmalig geexporteerd.
|
|
|
|
|
|
CURSOR sel_bes(p_bes_key NUMBER)
|
|
IS
|
|
SELECT b.bes_bestelopdr_key,
|
|
bi.bes_bestelopdr_item_posnr posnr,
|
|
bi.bes_bestelopdr_item_aantal aantal,
|
|
bi.bes_bestelopdr_item_prijs prijs,
|
|
bi.bes_bestelopdr_item_omschrijv omsch,
|
|
bsd.bes_srtdeel_nr artikelNr,
|
|
bd.ins_discipline_externnr catalogus_id,
|
|
(SELECT bki.bes_kenmerkbesteli_waarde
|
|
FROM bes_kenmerkbesteli bki, bes_kenmerk bk, bes_srtkenmerk bsk
|
|
WHERE bk.bes_srtinstallatie_key=bd.ins_discipline_key
|
|
AND bki.bes_bestelling_item_key=ba.bes_bestelling_item_key
|
|
AND bk.bes_kenmerk_key = bki.bes_kenmerk_key
|
|
AND bsk.bes_srtkenmerk_key = bk.bes_srtkenmerk_key
|
|
AND bsk.bes_srtkenmerk_upper='BTW') meta_art,
|
|
(SELECT bkb.bes_kenmerkbesteli_waarde
|
|
FROM bes_kenmerk bk, bes_srtkenmerk bs, bes_kenmerkbesteli bkb
|
|
WHERE bs.bes_srtkenmerk_upper='CPV_CODE'
|
|
AND bk.bes_srtkenmerk_key = bs.bes_srtkenmerk_key
|
|
AND bk.bes_kenmerk_key=bkb.bes_kenmerk_key
|
|
AND bkb.bes_bestelling_item_key=ba.bes_bestelling_item_key
|
|
AND bk.bes_srtinstallatie_key=bd.ins_discipline_key) CPV_code,
|
|
(SELECT bkb.bes_kenmerkbesteli_waarde
|
|
FROM bes_kenmerk bk, bes_srtkenmerk bs, bes_kenmerkbesteli bkb
|
|
WHERE bs.bes_srtkenmerk_upper='LEVERDATUM'
|
|
AND bk.bes_srtkenmerk_key = bs.bes_srtkenmerk_key
|
|
AND bk.bes_kenmerk_key=bkb.bes_kenmerk_key
|
|
AND bkb.bes_bestelling_item_key=ba.bes_bestelling_item_key
|
|
AND bk.bes_srtinstallatie_key=bd.ins_discipline_key) leverdatum
|
|
FROM bes_bestelopdr b, bes_bestelopdr_item bi , bes_bestelling_item ba, bes_srtdeel bsd, bes_srtgroep bsg, bes_discipline bd
|
|
WHERE b.bes_bestelopdr_key = p_bes_key
|
|
AND bi.bes_bestelopdr_key = b.bes_bestelopdr_key
|
|
AND ba.bes_bestelopdr_item_key = bi.bes_bestelopdr_item_key
|
|
AND ba.bes_srtdeel_key = bsd.bes_srtdeel_key
|
|
AND bsg.bes_srtgroep_key = bsd.bes_srtgroep_key
|
|
AND bd.ins_discipline_key = bsg.ins_discipline_key
|
|
ORDER BY b.bes_bestelopdr_key,bi.bes_bestelopdr_item_posnr;
|
|
|
|
v_bestand VARCHAR2 (50);
|
|
v_base VARCHAR2 (10);
|
|
v_guid VARCHAR2 (40);
|
|
v_counter NUMBER;
|
|
v_artCounter NUMBER;
|
|
v_btw NUMBER;
|
|
v_prijs NUMBER;
|
|
v_discipline_key NUMBER;
|
|
|
|
v_SAPID VARCHAR2 (30);
|
|
v_today DATE;
|
|
v_datum_van DATE;
|
|
-- v_omschrijving res_rsv_ruimte.res_rsv_ruimte_omschrijving%TYPE;
|
|
-- v_besteller prs_v_perslid_fullnames.prs_perslid_naam_friendly%TYPE;
|
|
-- v_debiteurNr prs_kostenplaats.prs_kostenplaats_nr%TYPE;
|
|
-- v_klantRef VARCHAR2 (80);
|
|
v_aanvraagnr VARCHAR2 (20);
|
|
v_totalprice NUMBER;
|
|
v_kenmerk_key NUMBER;
|
|
BEGIN
|
|
v_SAPID := '';
|
|
v_counter := 0;
|
|
v_base := 'IKB_NEW';
|
|
v_totalprice:=0;
|
|
v_prijs :=0;
|
|
v_btw := 0;
|
|
|
|
DELETE FROM fac_rapport -- Opschonen oude BES Inkoop exports
|
|
WHERE fac_rapport_node LIKE 'IKB_NEW%';
|
|
|
|
SELECT SYSDATE INTO v_today FROM DUAL;
|
|
|
|
FOR rec in sel
|
|
LOOP
|
|
|
|
v_SAPID := blst.get_SAPid ();
|
|
--v_SAPID := 'BHCATERING';
|
|
v_guid := blst.getguid ();
|
|
v_aanvraagnr := blst.getAanvraagNr (rec.bes_key, 'BES');
|
|
v_bestand := v_base || '-' || v_counter || '-';
|
|
v_totalPrice := 0;
|
|
blst.add_xml_row (v_bestand,'<?xml version="1.0" encoding="windows-1252"?>');
|
|
blst.add_xml_row (v_bestand, '<Facilitor>');
|
|
blst.add_xml_row (v_bestand, '<SOAPEnvelope>');
|
|
blst.add_xml_element (v_bestand, 'Action', v_base);
|
|
blst.add_xml_element (v_bestand, 'GUID', v_guid);
|
|
blst.add_xml_element (v_bestand, 'User', 'FACILITOR');
|
|
blst.add_xml_row (v_bestand, '</SOAPEnvelope>');
|
|
blst.add_xml_row (v_bestand, '<Inkooporderbes_new>');
|
|
blst.add_xml_row (v_bestand, '<Header>');
|
|
|
|
blst.add_xml_element (v_bestand,'ReserveringNr',v_aanvraagNr);
|
|
blst.add_xml_element (v_bestand, 'Aanmaakdatum', v_today);
|
|
blst.add_xml_row (v_bestand, '</Header>');
|
|
|
|
SELECT DISTINCT bsg.ins_discipline_key
|
|
INTO v_discipline_key
|
|
FROM bes_bestelopdr bo, bes_bestelopdr_item bboi, bes_bestelling_item bbi, bes_srtdeel bsd, bes_srtgroep bsg, ins_tab_discipline id
|
|
WHERE bo.bes_bestelopdr_key= rec.bes_key
|
|
AND bboi.bes_bestelopdr_key=bo.bes_bestelopdr_key
|
|
AND bbi.bes_bestelopdr_item_key = bboi.bes_bestelopdr_item_key
|
|
AND bsd.bes_srtdeel_key=bbi.bes_srtdeel_key
|
|
AND bsg.bes_srtgroep_key=bsd.bes_srtgroep_key
|
|
AND id.ins_discipline_key= bsg.ins_discipline_key;
|
|
|
|
|
|
IF rec.extern=1
|
|
THEN
|
|
SELECT bk.bes_kenmerk_key
|
|
INTO v_kenmerk_key
|
|
FROM bes_srtkenmerk bs, bes_kenmerk bk
|
|
WHERE bs.bes_srtkenmerk_upper='SAP_ID_EXTERN'
|
|
AND bk.bes_srtkenmerk_key = bs.bes_srtkenmerk_key
|
|
AND bk.bes_srtinstallatie_key=v_discipline_key
|
|
AND bk.bes_kenmerk_verwijder IS NULL;
|
|
ELSE
|
|
SELECT bk.bes_kenmerk_key
|
|
INTO v_kenmerk_key
|
|
FROM bes_srtkenmerk bs, bes_kenmerk bk
|
|
WHERE bs.bes_srtkenmerk_upper='SAP_ID'
|
|
AND bk.bes_srtkenmerk_key = bs.bes_srtkenmerk_key
|
|
AND bk.bes_srtinstallatie_key=v_discipline_key
|
|
AND bk.bes_kenmerk_verwijder IS NULL;
|
|
END IF;
|
|
|
|
|
|
IF v_kenmerk_key > 0
|
|
THEN
|
|
flx.setflex ('BES', v_kenmerk_key, rec.bes_bestel_key, v_aanvraagNr);
|
|
END IF;
|
|
|
|
--blst.add_xml_element (v_bestand,'ReserveringNr', blst.getAanvraagNr (TO_CHAR (rec.res_key)));
|
|
|
|
blst.add_xml_element (v_bestand,'Omschrijving',rec.omschrijving);
|
|
-- blst.add_xml_element (v_bestand, 'BES_KEY', rec.bes_key);
|
|
blst.add_xml_element (v_bestand, 'Opmerking', rec.opmerking);
|
|
blst.add_xml_element (v_bestand, 'LeverancierNr', rec.leveranciernr);
|
|
blst.add_xml_element (v_bestand, 'LeverancierType', 'LEV');
|
|
blst.add_xml_element (v_bestand, 'Besteller', rec.kostenplaats);
|
|
blst.add_xml_element (v_bestand, 'UserID', v_SAPID);
|
|
|
|
blst.add_xml_row (v_bestand, '<AfleverAdres>');
|
|
blst.add_xml_element (v_bestand, 'RuimteId', '.'); -- heb geen ruimte bij een bes maar . mag ook
|
|
blst.add_xml_element (v_bestand, 'LandCode', rec.land);
|
|
blst.add_xml_element (v_bestand, 'Postcode', rec.postcode);
|
|
blst.add_xml_element (v_bestand, 'Plaats', rec.plaats);
|
|
blst.add_xml_element (v_bestand, 'Straat', rec.straat); -- nu moeten we het huisnr nog van het adres halen want SAP wil alleen de straat !
|
|
blst.add_xml_element (v_bestand, 'Nr', rec.nummer);
|
|
blst.add_xml_element (v_bestand, 'Gebouw', rec.gebouwCode);
|
|
blst.add_xml_row (v_bestand, '</AfleverAdres>');
|
|
|
|
v_artCounter := 1;
|
|
|
|
FOR rec_art IN sel_bes (rec.bes_key)
|
|
LOOP
|
|
|
|
blst.add_xml_row (v_bestand, '<Item>');
|
|
blst.add_xml_element (v_bestand,'Regelnummer',v_artCounter);
|
|
blst.add_xml_element (v_bestand, 'Actie', '01');
|
|
blst.add_xml_element (v_bestand, 'ArtikelNr',rec_art.artikelNr);
|
|
blst.add_xml_element (v_bestand, 'Aantal', rec_art.aantal);
|
|
blst.add_xml_element (v_bestand, 'Conditiesoort', 'ZPRM');
|
|
blst.add_xml_element (v_bestand, 'Prijs', rec_art.aantal*rec_art.prijs);
|
|
blst.add_xml_element (v_bestand, 'InkTotPrijs', 0);
|
|
blst.add_xml_element (v_bestand, 'ArtikelPrijs', rec_art.prijs);
|
|
blst.add_xml_element (v_bestand, 'InkoopPrijs', rec_art.prijs);
|
|
blst.add_xml_element (v_bestand, 'Omschrijving', rec_art.omsch);
|
|
blst.add_xml_element (v_bestand, 'LeverDatum', rec_art.leverdatum); -- leverdatum zoals lyreco aanleverd tijd staat altijd op 08:00:00
|
|
--blst.add_xml_element (v_bestand, 'TechnischeKey', 'Technisch materiaal'); -- kan komen te vervallen
|
|
blst.add_xml_element (v_bestand, 'Leverancier', 'LYRECO');
|
|
blst.add_xml_element (v_bestand, 'Artikelsoort', '1');
|
|
blst.add_xml_element (v_bestand, 'CatalogusID',rec_art.catalogus_id); -- Catalogus extern nr
|
|
blst.add_xml_element (v_bestand, 'Groep', rec_art.cpv_code); -- CPV code per artikel, komt per artikel
|
|
blst.add_xml_element (v_bestand, 'StartDatum', rec.leverdatum); -- alternatieve startdatum
|
|
blst.add_xml_element (v_bestand, 'EindDatum', rec.leverdatum); -- alternatieve einddatum
|
|
v_totalPrice := v_totalPrice + rec_art.prijs*rec_art.aantal;
|
|
blst.add_xml_row (v_bestand, '</Item>');
|
|
v_artCounter := v_artCounter + 1;
|
|
END LOOP;
|
|
blst.add_xml_element (v_bestand, 'TotaalPrijs', v_totalPrice);
|
|
blst.add_xml_row (v_bestand, '</Inkooporderbes_new>');
|
|
blst.add_xml_row (v_bestand, '</Facilitor>');
|
|
|
|
IF rec.extern = 1
|
|
THEN
|
|
blst_select_bes_vkp_new (rec.bes_key,v_aanvraagnr, v_counter);
|
|
END IF;
|
|
|
|
|
|
|
|
v_counter := v_counter + 1;
|
|
|
|
UPDATE bes_bestelopdr
|
|
SET bes_bestelopdr_externsyncdate = SYSDATE,
|
|
bes_bestelopdr_externnr = v_aanvraagnr,
|
|
bes_bestelopdr_status=4
|
|
WHERE bes_bestelopdr_key = rec.bes_key;
|
|
|
|
fac.trackaction (
|
|
'BESTRK',
|
|
rec.bes_bestel_key,
|
|
3,
|
|
SYSDATE,
|
|
'Bestelling '||rec.bes_bestel_key||' is geexporteerd naar SAP.');
|
|
END LOOP;
|
|
|
|
|
|
END;
|
|
/
|
|
|
|
|
|
|
|
CREATE OR REPLACE PROCEDURE blst_select_res_vkp_new (
|
|
p_applname IN VARCHAR2,
|
|
p_applrun IN VARCHAR2,
|
|
p_res_key IN NUMBER,
|
|
p_counter IN NUMBER,
|
|
p_aanvraagNr IN VARCHAR2)
|
|
AS
|
|
--CURSOR sel_sap_export(in_res_key NUMBER) IS
|
|
-- SELECT exp.regel_nr regel_nr,
|
|
-- exp.artikel_nr artikel_nr,
|
|
-- art.res_artikel_omschrijving artikel_omsch,
|
|
-- art.res_artikel_prijs art_prijs,
|
|
-- exp.aantal aantal,
|
|
-- res.res_rsv_ruimte_van datum
|
|
-- FROM blst_exp_sap exp, res_artikel art, res_rsv_ruimte res
|
|
-- WHERE exp.res_key=in_res_key
|
|
-- AND art.res_artikel_nr = exp.artikel_nr
|
|
-- AND res.res_rsv_ruimte_key= in_res_key
|
|
-- ORDER BY exp.regel_nr;
|
|
|
|
CURSOR sel_sap_export (in_res_key NUMBER)
|
|
IS
|
|
SELECT COALESCE (ex.regel_nr, 0) regel_nr,
|
|
ex.res_key,
|
|
ex.artikel_key,
|
|
ex.exp_artikel_key,
|
|
art.res_artikel_nr artikel_nr,
|
|
COALESCE (ex.exp_aantal, 0) exp_aantal,
|
|
ex.art_artikel_key,
|
|
COALESCE (ex.art_aantal, 0) aantal,
|
|
art.res_artikel_omschrijving artikel_omsch,
|
|
art.res_artikel_prijs art_prijs,
|
|
ex.art_aantal * art.res_artikel_prijs tot_prijs,
|
|
art.res_discipline_key catalogusID,
|
|
art.res_artikel_groep groep,
|
|
ex.lever_datum datum
|
|
FROM (SELECT EXP.res_key,
|
|
rart.res_artikel_key artikel_key,
|
|
artikel_nr,
|
|
EXP.res_rsv_artikel_key exp_artikel_key,
|
|
EXP.aantal exp_aantal,
|
|
rart.res_rsv_artikel_key art_artikel_key,
|
|
rart.res_rsv_artikel_aantal art_aantal,
|
|
rart.res_rsv_artikel_levering lever_datum,
|
|
EXP.regel_nr regel_nr
|
|
FROM blst_exp_Sap EXP
|
|
FULL OUTER JOIN res_rsv_artikel rart
|
|
ON EXP.res_rsv_artikel_key =
|
|
rart.res_rsv_artikel_key
|
|
WHERE ( EXP.res_key = in_res_key
|
|
OR rart.res_rsv_ruimte_key = in_res_key)) ex,
|
|
res_artikel art
|
|
WHERE art.res_artikel_key(+) = ex.artikel_key
|
|
ORDER BY regel_nr;
|
|
|
|
v_bestand VARCHAR2 (50);
|
|
v_base VARCHAR2 (10);
|
|
v_guid VARCHAR2 (40);
|
|
v_counter NUMBER;
|
|
v_artCounter NUMBER;
|
|
|
|
v_SAPID VARCHAR2 (30);
|
|
v_datum_van DATE;
|
|
v_omschrijving res_rsv_ruimte.res_rsv_ruimte_omschrijving%TYPE;
|
|
v_besteller prs_v_perslid_fullnames.prs_perslid_naam_friendly%TYPE;
|
|
v_debiteurNr prs_kostenplaats.prs_kostenplaats_nr%TYPE;
|
|
v_klantRef VARCHAR2 (80);
|
|
BEGIN
|
|
v_SAPID := '';
|
|
v_counter := p_counter;
|
|
v_base := 'VKP_NEW';
|
|
|
|
|
|
v_SAPID := blst.get_SAPid ();
|
|
|
|
|
|
SELECT res.res_rsv_ruimte_van
|
|
datum_van,
|
|
res.res_rsv_ruimte_omschrijving
|
|
oms,
|
|
(SELECT prs_perslid_naam_friendly
|
|
FROM prs_v_perslid_fullnames
|
|
WHERE prs_perslid_key = res.res_rsv_ruimte_contact_key)
|
|
besteller,
|
|
(SELECT prs_kostenplaats_nr
|
|
FROM prs_kostenplaats
|
|
WHERE prs_kostenplaats_key = res.prs_kostenplaats_key)
|
|
debiteurNr,
|
|
(SELECT res_kenmerkreservering_waarde
|
|
FROM res_kenmerkwaarde ken
|
|
WHERE res_rsv_ruimte_key = p_res_key
|
|
AND res_kenmerk_key IN (1, 2, 3))
|
|
klantRef -- klantreferentie key bij verschillende activiteten
|
|
INTO v_datum_van,
|
|
v_omschrijving,
|
|
v_besteller,
|
|
v_debiteurNr,
|
|
v_klantRef
|
|
FROM res_rsv_ruimte res
|
|
WHERE res.res_rsv_ruimte_key = p_res_key;
|
|
|
|
v_guid := blst.getguid ();
|
|
|
|
v_bestand := v_base || '-' || v_counter || '-';
|
|
blst.add_xml_row (v_bestand,
|
|
'<?xml version="1.0" encoding="windows-1252"?>');
|
|
blst.add_xml_row (v_bestand, '<Facilitor>');
|
|
blst.add_xml_row (v_bestand, '<SOAPEnvelope>');
|
|
blst.add_xml_element (v_bestand, 'Action', v_base);
|
|
blst.add_xml_element (v_bestand, 'GUID', v_guid);
|
|
blst.add_xml_element (v_bestand, 'User', 'FACILITOR');
|
|
blst.add_xml_row (v_bestand, '</SOAPEnvelope>');
|
|
|
|
|
|
blst.add_xml_row (v_bestand, '<Verkooporder_new>');
|
|
--blst.add_xml_element (v_bestand,'ReserveringNr', blst.getAanvraagNr (TO_CHAR (p_res_key)));
|
|
blst.add_xml_element (v_bestand, 'ReserveringNr', p_aanvraagNr);
|
|
blst.add_xml_element (v_bestand, 'Ordersoort', 'ZFMI');
|
|
blst.add_xml_element (v_bestand,
|
|
'LeverDatum',
|
|
TO_CHAR (v_datum_van, 'YYYYMMDD'));
|
|
blst.add_xml_element (v_bestand, 'Omschrijving', v_omschrijving);
|
|
blst.add_xml_element (v_bestand, 'DebiteurNr', v_debiteurNr);
|
|
blst.add_xml_element (v_bestand, 'Besteller', v_besteller);
|
|
blst.add_xml_element (v_bestand, 'UserID', v_SAPID);
|
|
blst.add_xml_element (v_bestand, 'KlantRef', v_klantRef);
|
|
|
|
v_artCounter := 1;
|
|
|
|
FOR exp_sap IN sel_sap_export (p_res_key)
|
|
LOOP
|
|
blst.add_xml_row (v_bestand, '<Artikel>');
|
|
blst.add_xml_element (v_bestand, 'Regelnummer', exp_sap.regel_nr);
|
|
blst.add_xml_element (v_bestand, 'ArtikelNr', exp_sap.artikel_nr);
|
|
blst.add_xml_element (v_bestand, 'Aantal', exp_sap.aantal);
|
|
blst.add_xml_element (v_bestand, 'Conditiesoort', 'ZPRM');
|
|
blst.add_xml_element (v_bestand, 'Prijs', exp_sap.art_prijs);
|
|
blst.add_xml_element (v_bestand,
|
|
'Omschrijving',
|
|
exp_sap.artikel_omsch);
|
|
blst.add_xml_element (v_bestand,
|
|
'Leverdatum',
|
|
TO_CHAR (exp_sap.datum, 'YYYYMMDD'));
|
|
blst.add_xml_row (v_bestand, '</Artikel>');
|
|
v_artCounter := v_artCounter + 1;
|
|
END LOOP;
|
|
|
|
blst.add_xml_row (v_bestand, '</Verkooporder_new>');
|
|
blst.add_xml_row (v_bestand, '</Facilitor>');
|
|
END;
|
|
/
|
|
|
|
|
|
-- PROCEDURE VOOR HET VERSTUREN VN UPDAT BERICHT MBT VERKOOPORDERS
|
|
|
|
CREATE OR REPLACE PROCEDURE blst_select_res_vkp_upd (
|
|
p_applname IN VARCHAR2,
|
|
p_applrun IN VARCHAR2,
|
|
p_res_key IN NUMBER,
|
|
p_counter IN NUMBER,
|
|
p_aanvraagNr IN VARCHAR2)
|
|
AS
|
|
--CURSOR sel_sap_export(in_res_key NUMBER) IS
|
|
-- SELECT exp.regel_nr regel_nr,
|
|
-- exp.artikel_nr artikel_nr,
|
|
-- art.res_artikel_omschrijving artikel_omsch,
|
|
-- art.res_artikel_prijs art_prijs,
|
|
-- exp.aantal aantal,
|
|
-- res.res_rsv_ruimte_van datum
|
|
-- FROM blst_exp_sap exp, res_artikel art, res_rsv_ruimte res
|
|
-- WHERE exp.res_key=in_res_key
|
|
-- AND art.res_artikel_nr = exp.artikel_nr
|
|
-- AND res.res_rsv_ruimte_key= in_res_key
|
|
-- ORDER BY exp.regel_nr;
|
|
|
|
CURSOR sel_sap_export (in_res_key NUMBER)
|
|
IS
|
|
SELECT COALESCE (ex.regel_nr, 0) regel_nr,
|
|
ex.res_key,
|
|
ex.artikel_key,
|
|
ex.exp_artikel_key,
|
|
art.res_artikel_nr artikel_nr,
|
|
COALESCE (ex.exp_aantal, 0) exp_aantal,
|
|
ex.art_artikel_key,
|
|
COALESCE (ex.art_aantal, 0) aantal,
|
|
art.res_artikel_omschrijving artikel_omsch,
|
|
COALESCE (ex.art_prijs, 0) art_prijs,
|
|
ex.art_prijs tot_prijs,
|
|
art.res_discipline_key catalogusID,
|
|
art.res_artikel_groep groep,
|
|
ex.lever_datum datum,
|
|
art.res_artikel_prijs art_stam_prijs
|
|
FROM (SELECT EXP.res_key,
|
|
rart.res_artikel_key artikel_key,
|
|
artikel_nr,
|
|
EXP.res_rsv_artikel_key exp_artikel_key,
|
|
EXP.aantal exp_aantal,
|
|
rart.res_rsv_artikel_key art_artikel_key,
|
|
rart.res_rsv_artikel_aantal art_aantal,
|
|
rart.res_rsv_artikel_prijs art_prijs,
|
|
rart.res_rsv_artikel_levering lever_datum,
|
|
EXP.regel_nr regel_nr
|
|
FROM blst_exp_Sap EXP
|
|
FULL OUTER JOIN res_rsv_artikel rart
|
|
ON EXP.res_rsv_artikel_key =
|
|
rart.res_rsv_artikel_key
|
|
WHERE ( EXP.res_key = in_res_key
|
|
OR rart.res_rsv_ruimte_key = in_res_key)) ex,
|
|
res_artikel art
|
|
WHERE art.res_artikel_key(+) = ex.artikel_key
|
|
ORDER BY regel_nr;
|
|
|
|
|
|
v_bestand VARCHAR2 (50);
|
|
v_base VARCHAR2 (10);
|
|
v_guid VARCHAR2 (40);
|
|
v_counter NUMBER;
|
|
v_artCounter NUMBER;
|
|
|
|
v_SAPID VARCHAR2 (30);
|
|
v_datum_van DATE;
|
|
v_omschrijving res_rsv_ruimte.res_rsv_ruimte_omschrijving%TYPE;
|
|
v_besteller prs_v_perslid_fullnames.prs_perslid_naam_friendly%TYPE;
|
|
v_debiteurNr prs_kostenplaats.prs_kostenplaats_nr%TYPE;
|
|
BEGIN
|
|
v_SAPID := '';
|
|
v_counter := p_counter;
|
|
v_base := 'VKP_UPD';
|
|
|
|
SELECT DISTINCT (sap_id)
|
|
INTO v_SAPID
|
|
FROM blst_exp_sap
|
|
WHERE res_key = p_res_key;
|
|
|
|
--v_SAPID := blst.get_SAPid();
|
|
v_guid := blst.getguid ();
|
|
|
|
SELECT res.RES_RSV_RUIMTE_VAN
|
|
datum_van,
|
|
res.res_rsv_ruimte_omschrijving
|
|
oms,
|
|
(SELECT prs_perslid_naam_friendly
|
|
FROM prs_v_perslid_fullnames
|
|
WHERE prs_perslid_key = res.res_rsv_ruimte_contact_key)
|
|
besteller,
|
|
(SELECT prs_kostenplaats_nr
|
|
FROM prs_kostenplaats
|
|
WHERE prs_kostenplaats_key = res.prs_kostenplaats_key)
|
|
debiteurNr
|
|
INTO v_datum_van,
|
|
v_omschrijving,
|
|
v_besteller,
|
|
v_debiteurNr
|
|
FROM res_rsv_ruimte res
|
|
WHERE res.res_rsv_ruimte_key = p_res_key;
|
|
|
|
|
|
|
|
v_bestand := v_base || '-' || v_counter || '-';
|
|
blst.add_xml_row (v_bestand,
|
|
'<?xml version="1.0" encoding="windows-1252"?>');
|
|
blst.add_xml_row (v_bestand, '<Facilitor>');
|
|
blst.add_xml_row (v_bestand, '<SOAPEnvelope>');
|
|
blst.add_xml_element (v_bestand, 'Action', v_base);
|
|
blst.add_xml_element (v_bestand, 'GUID', v_guid);
|
|
blst.add_xml_element (v_bestand, 'User', 'FACILITOR');
|
|
blst.add_xml_row (v_bestand, '</SOAPEnvelope>');
|
|
blst.add_xml_row (v_bestand, '<Verkooporder_upd>');
|
|
blst.add_xml_element (v_bestand, 'ReserveringNr', p_aanvraagNr);
|
|
blst.add_xml_element (v_bestand, 'StatusCode', 'W');
|
|
blst.add_xml_element (v_bestand, 'Ordersoort', 'ZFMI');
|
|
blst.add_xml_element (v_bestand,
|
|
'LeverDatum',
|
|
TO_CHAR (v_datum_van, 'YYYYMMDD'));
|
|
blst.add_xml_element (v_bestand, 'Omschrijving', v_omschrijving);
|
|
blst.add_xml_element (v_bestand, 'DebiteurNr', v_debiteurNr);
|
|
blst.add_xml_element (v_bestand, 'Besteller', v_besteller);
|
|
blst.add_xml_element (v_bestand, 'UserID', v_SAPID);
|
|
|
|
FOR exp_sap IN sel_sap_export (p_res_key)
|
|
LOOP
|
|
blst.add_xml_row (v_bestand, '<Artikel>');
|
|
blst.add_xml_element (v_bestand, 'Regelnummer', exp_sap.regel_nr);
|
|
blst.add_xml_element (v_bestand, 'ArtikelNr', exp_sap.artikel_nr);
|
|
blst.add_xml_element (v_bestand, 'Aantal', exp_sap.aantal);
|
|
blst.add_xml_element (v_bestand, 'Conditiesoort', 'ZPRM');
|
|
|
|
IF exp_sap.art_prijs > 0 AND exp_sap.aantal > 0
|
|
THEN
|
|
blst.add_xml_element (v_bestand,
|
|
'Prijs',
|
|
exp_sap.art_prijs / exp_sap.aantal);
|
|
ELSE
|
|
blst.add_xml_element (v_bestand, 'Prijs', exp_sap.art_stam_prijs);
|
|
END IF;
|
|
|
|
blst.add_xml_element (v_bestand,
|
|
'Omschrijving',
|
|
exp_sap.artikel_omsch);
|
|
blst.add_xml_element (v_bestand,
|
|
'Leverdatum',
|
|
TO_CHAR (exp_sap.datum, 'YYYYMMDD'));
|
|
blst.add_xml_row (v_bestand, '</Artikel>');
|
|
v_artCounter := v_artCounter + 1;
|
|
END LOOP;
|
|
|
|
blst.add_xml_row (v_bestand, '</Verkooporder_upd>');
|
|
blst.add_xml_row (v_bestand, '</Facilitor>');
|
|
END;
|
|
/
|
|
|
|
|
|
CREATE OR REPLACE PROCEDURE blst_select_res_vkp_fac (
|
|
p_applname IN VARCHAR2,
|
|
p_applrun IN VARCHAR2)
|
|
AS
|
|
CURSOR sel_res_fac IS
|
|
SELECT res.res_rsv_ruimte_key rbes_key,
|
|
res.res_status_bo_key bo_status_key, -- ophalen reserveringen van ruimte voor externe klant
|
|
'RES' soort
|
|
FROM res_rsv_ruimte res, prs_kostenplaats kstp
|
|
WHERE res.res_status_bo_key = 5 -- afgemeld
|
|
AND res.res_status_fo_key = 2
|
|
AND res.res_rsv_ruimte_verwijder IS NULL
|
|
AND res.res_rsv_ruimte_externsyncdate IS NOT NULL
|
|
AND kstp.prs_kostenplaats_key = res.prs_kostenplaats_key
|
|
AND kstp.prs_kostenplaats_extern = 1
|
|
UNION ALL
|
|
SELECT DISTINCT
|
|
(res.res_rsv_ruimte_key) rbes_key,
|
|
res.res_status_bo_key bo_status_key, -- ophalen losse catering aanvragen voor externe klant
|
|
'RES' soort
|
|
FROM res_rsv_ruimte res, res_rsv_artikel art, prs_kostenplaats kstp
|
|
WHERE res.res_status_fo_key = 2
|
|
AND res.res_status_bo_key IS NULL
|
|
AND res.res_rsv_ruimte_verwijder IS NULL
|
|
AND res.res_rsv_ruimte_externsyncdate IS NOT NULL
|
|
AND art.res_rsv_ruimte_key = res.res_rsv_ruimte_key
|
|
AND art.res_status_bo_key = 5
|
|
AND kstp.prs_kostenplaats_key = res.prs_kostenplaats_key
|
|
AND kstp.prs_kostenplaats_extern = 1
|
|
UNION ALL
|
|
SELECT DISTINCT b.bes_bestelopdr_key rbes_key,
|
|
b.bes_bestelopdr_status bo_status_key,
|
|
'BES' soort
|
|
FROM bes_bestelopdr b, bes_bestelopdr_item boi, bes_bestelling_item bbi, bes_bestelling bb, prs_kostenplaats kstp
|
|
WHERE b.bes_bestelopdr_status=6
|
|
AND boi.bes_bestelopdr_key = b.bes_bestelopdr_key
|
|
AND bbi.bes_bestelopdr_item_key = boi.bes_bestelopdr_item_key
|
|
AND bb.bes_bestelling_key = bbi.bes_bestelling_key
|
|
AND kstp.prs_kostenplaats_key=bb.prs_kostenplaats_key
|
|
AND kstp.prs_kostenplaats_extern = 1;
|
|
|
|
v_bestand VARCHAR2 (50);
|
|
v_base VARCHAR2 (10);
|
|
v_guid VARCHAR2 (40);
|
|
v_counter NUMBER;
|
|
v_SAPID VARCHAR2 (30);
|
|
v_aanvraagnr VARCHAR2 (20);
|
|
BEGIN
|
|
v_SAPID := '';
|
|
v_base := 'VKP_FAC';
|
|
v_guid := blst.getguid ();
|
|
v_counter := 1;
|
|
|
|
DELETE FROM fac_rapport -- Opschonen oude Verkooporders tbv Facturatie
|
|
WHERE fac_rapport_node LIKE 'VKP_FAC%';
|
|
|
|
FOR rec IN sel_res_fac
|
|
LOOP
|
|
v_aanvraagnr := blst.getAanvraagNr (rec.rbes_key, rec.soort);
|
|
v_bestand := v_base || '-' || v_counter || '-';
|
|
blst.add_xml_row (v_bestand,
|
|
'<?xml version="1.0" encoding="windows-1252"?>');
|
|
blst.add_xml_row (v_bestand, '<Facilitor>');
|
|
blst.add_xml_row (v_bestand, '<SOAPEnvelope>');
|
|
blst.add_xml_element (v_bestand, 'Action', v_base);
|
|
blst.add_xml_element (v_bestand, 'GUID', v_guid);
|
|
blst.add_xml_element (v_bestand, 'User', 'FACILITOR');
|
|
blst.add_xml_row (v_bestand, '</SOAPEnvelope>');
|
|
blst.add_xml_row (v_bestand, '<Verkooporder_fac>');
|
|
--blst.add_xml_element (v_bestand,'ReserveringNr',blst.getAanvraagNr (TO_CHAR (rec.res_key)));
|
|
blst.add_xml_element (v_bestand, 'ReserveringNr', v_aanvraagnr);
|
|
blst.add_xml_element (v_bestand, 'StatusCode', 'B');
|
|
blst.add_xml_row (v_bestand, '</Verkooporder_fac>');
|
|
blst.add_xml_row (v_bestand, '</Facilitor>');
|
|
v_counter := v_counter + 1;
|
|
|
|
IF rec.soort='RES'
|
|
THEN
|
|
IF rec.bo_status_key IS NOT NULL -- deze check zorgt er voor dat de er geen RES_C_RES_RUIMTE_VOORZIENING contraint violation optreed bij losse catering
|
|
THEN
|
|
UPDATE res_rsv_ruimte
|
|
SET res_status_bo_key = 6
|
|
WHERE res_rsv_ruimte_key = rec.rbes_key; -- Set BO status naar Verwerkt (6)
|
|
END IF;
|
|
|
|
UPDATE res_rsv_artikel
|
|
SET res_status_bo_key = 6
|
|
WHERE res_rsv_ruimte_key = rec.rbes_key; -- set status van bestelde artikelen ook op verwerkt (6)
|
|
ELSE
|
|
UPDATE bes_bestelopdr set bes_bestelopdr_status=7
|
|
WHERE bes_bestelopdr_key=rec.rbes_key;
|
|
END IF;
|
|
|
|
COMMIT;
|
|
END LOOP;
|
|
END;
|
|
/
|
|
|
|
CREATE OR REPLACE PROCEDURE blst_select_res_vkp_del (
|
|
p_applname IN VARCHAR2,
|
|
p_applrun IN VARCHAR2,
|
|
p_res_key IN NUMBER,
|
|
p_counter IN NUMBER,
|
|
p_aanvraagNr IN VARCHAR2)
|
|
AS
|
|
--CURSOR sel_sap_export(in_res_key NUMBER) IS
|
|
-- SELECT exp.regel_nr regel_nr,
|
|
-- exp.artikel_nr artikel_nr,
|
|
-- art.res_artikel_omschrijving artikel_omsch,
|
|
-- art.res_artikel_prijs art_prijs,
|
|
-- exp.aantal aantal,
|
|
-- res.res_rsv_ruimte_van datum
|
|
-- FROM blst_exp_sap exp, res_artikel art, res_rsv_ruimte res
|
|
-- WHERE exp.res_key=in_res_key
|
|
-- AND art.res_artikel_nr = exp.artikel_nr
|
|
-- AND res.res_rsv_ruimte_key= in_res_key
|
|
-- ORDER BY exp.regel_nr;
|
|
|
|
|
|
CURSOR sel_sap_export (in_res_key NUMBER)
|
|
IS
|
|
SELECT COALESCE (ex.regel_nr, 0) regel_nr,
|
|
ex.res_key,
|
|
ex.artikel_key,
|
|
ex.exp_artikel_key,
|
|
art.res_artikel_nr artikel_nr,
|
|
COALESCE (ex.exp_aantal, 0) exp_aantal,
|
|
ex.art_artikel_key,
|
|
COALESCE (ex.art_aantal, 0) aantal,
|
|
art.res_artikel_omschrijving artikel_omsch,
|
|
art.res_artikel_prijs art_prijs,
|
|
ex.art_aantal * art.res_artikel_prijs tot_prijs,
|
|
art.res_discipline_key catalogusID,
|
|
art.res_artikel_groep groep,
|
|
ex.lever_datum datum
|
|
FROM (SELECT EXP.res_key,
|
|
rart.res_artikel_key artikel_key,
|
|
artikel_nr,
|
|
EXP.res_rsv_artikel_key exp_artikel_key,
|
|
EXP.aantal exp_aantal,
|
|
rart.res_rsv_artikel_key art_artikel_key,
|
|
rart.res_rsv_artikel_aantal art_aantal,
|
|
rart.res_rsv_artikel_levering lever_datum,
|
|
EXP.regel_nr regel_nr
|
|
FROM blst_exp_Sap EXP
|
|
FULL OUTER JOIN res_rsv_artikel rart
|
|
ON EXP.res_rsv_artikel_key =
|
|
rart.res_rsv_artikel_key
|
|
WHERE ( EXP.res_key = in_res_key
|
|
OR rart.res_rsv_ruimte_key = in_res_key)) ex,
|
|
res_artikel art
|
|
WHERE art.res_artikel_key(+) = ex.artikel_key
|
|
ORDER BY regel_nr;
|
|
|
|
v_bestand VARCHAR2 (50);
|
|
v_base VARCHAR2 (10);
|
|
v_guid VARCHAR2 (40);
|
|
v_counter NUMBER;
|
|
v_artCounter NUMBER;
|
|
|
|
v_SAPID VARCHAR2 (30);
|
|
v_datum_van DATE;
|
|
v_omschrijving res_rsv_ruimte.res_rsv_ruimte_omschrijving%TYPE;
|
|
v_besteller prs_v_perslid_fullnames.prs_perslid_naam_friendly%TYPE;
|
|
v_debiteurNr prs_kostenplaats.prs_kostenplaats_nr%TYPE;
|
|
BEGIN
|
|
v_SAPID := '';
|
|
v_counter := p_counter;
|
|
v_base := 'VKP_DEL';
|
|
|
|
SELECT DISTINCT (sap_id)
|
|
INTO v_SAPID
|
|
FROM blst_exp_sap
|
|
WHERE res_key = p_res_key;
|
|
|
|
-- v_SAPID := blst.get_SAPid();
|
|
v_guid := blst.getguid ();
|
|
|
|
SELECT res.RES_RSV_RUIMTE_VAN
|
|
datum_van,
|
|
res.res_rsv_ruimte_omschrijving
|
|
oms,
|
|
(SELECT prs_perslid_naam_friendly
|
|
FROM prs_v_perslid_fullnames
|
|
WHERE prs_perslid_key = res.res_rsv_ruimte_contact_key)
|
|
besteller,
|
|
(SELECT prs_kostenplaats_nr
|
|
FROM prs_kostenplaats
|
|
WHERE prs_kostenplaats_key = res.prs_kostenplaats_key)
|
|
debiteurNr
|
|
INTO v_datum_van,
|
|
v_omschrijving,
|
|
v_besteller,
|
|
v_debiteurNr
|
|
FROM res_rsv_ruimte res
|
|
WHERE res.res_rsv_ruimte_key = p_res_key;
|
|
|
|
v_bestand := v_base || '-' || v_counter || '-';
|
|
blst.add_xml_row (v_bestand,
|
|
'<?xml version="1.0" encoding="windows-1252"?>');
|
|
blst.add_xml_row (v_bestand, '<Facilitor>');
|
|
blst.add_xml_row (v_bestand, '<SOAPEnvelope>');
|
|
blst.add_xml_element (v_bestand, 'Action', v_base);
|
|
blst.add_xml_element (v_bestand, 'GUID', v_guid);
|
|
blst.add_xml_element (v_bestand, 'User', 'FACILITOR');
|
|
blst.add_xml_row (v_bestand, '</SOAPEnvelope>');
|
|
blst.add_xml_row (v_bestand, '<Verkooporder_upd>');
|
|
--blst.add_xml_element (v_bestand,'ReserveringNr',blst.getAanvraagNr (TO_CHAR (p_res_key)));
|
|
blst.add_xml_element (v_bestand, 'ReserveringNr', p_aanvraagNr);
|
|
blst.add_xml_element (v_bestand, 'StatusCode', 'W');
|
|
blst.add_xml_element (v_bestand, 'Ordersoort', 'ZFMI');
|
|
blst.add_xml_element (v_bestand,
|
|
'LeverDatum',
|
|
TO_CHAR (v_datum_van, 'YYYYMMDD'));
|
|
blst.add_xml_element (v_bestand, 'Omschrijving', v_omschrijving);
|
|
blst.add_xml_element (v_bestand, 'DebiteurNr', v_debiteurNr);
|
|
blst.add_xml_element (v_bestand, 'Besteller', v_besteller);
|
|
blst.add_xml_element (v_bestand, 'UserID', v_SAPID);
|
|
|
|
FOR exp_sap IN sel_sap_export (p_res_key)
|
|
LOOP
|
|
blst.add_xml_row (v_bestand, '<Artikel>');
|
|
blst.add_xml_element (v_bestand, 'Regelnummer', exp_sap.regel_nr);
|
|
blst.add_xml_element (v_bestand, 'ArtikelNr', exp_sap.artikel_nr);
|
|
blst.add_xml_element (v_bestand, 'Aantal', exp_sap.aantal);
|
|
blst.add_xml_element (v_bestand, 'Conditiesoort', 'ZPRM');
|
|
blst.add_xml_element (v_bestand, 'Prijs', exp_sap.art_prijs);
|
|
blst.add_xml_element (v_bestand,
|
|
'Omschrijving',
|
|
exp_sap.artikel_omsch);
|
|
blst.add_xml_element (v_bestand,
|
|
'Leverdatum',
|
|
TO_CHAR (exp_sap.datum, 'YYYYMMDD'));
|
|
blst.add_xml_row (v_bestand, '</Artikel>');
|
|
v_artCounter := v_artCounter + 1;
|
|
END LOOP;
|
|
|
|
blst.add_xml_row (v_bestand, '</Verkooporder_upd>');
|
|
blst.add_xml_row (v_bestand, '</Facilitor>');
|
|
END;
|
|
/
|
|
|
|
|
|
CREATE OR REPLACE VIEW blst_v_select_cat_res
|
|
AS
|
|
SELECT DISTINCT
|
|
res.res_rsv_ruimte_key
|
|
res_key,
|
|
res.res_reservering_key,
|
|
res.res_rsv_ruimte_volgnr,
|
|
(SELECT MAX (fac_tracking_datum)
|
|
FROM fac_tracking
|
|
WHERE fac_tracking_refkey = res.res_rsv_ruimte_key
|
|
AND fac_srtnotificatie_key = 108
|
|
AND UPPER (COALESCE (fac_tracking_oms, ' ')) NOT LIKE
|
|
'%ERROR%')
|
|
last_upd,
|
|
res.res_rsv_ruimte_externsyncdate
|
|
last_export,
|
|
res.res_rsv_ruimte_verwijder
|
|
delete_date,
|
|
alg.alg_ruimte_nr
|
|
ruimte,
|
|
alg.alg_verdieping_code
|
|
verdieping,
|
|
(SELECT alg_onrgoedkenmerk_waarde
|
|
FROM alg_onrgoedkenmerk ken
|
|
WHERE ken.alg_onrgoed_key = alg.alg_gebouw_key
|
|
AND ken.alg_kenmerk_key = 1071)
|
|
straat, -- alg_gebouw kenmerk tbv straat
|
|
(SELECT alg_onrgoedkenmerk_waarde
|
|
FROM alg_onrgoedkenmerk ken
|
|
WHERE ken.alg_onrgoed_key = alg.alg_gebouw_key
|
|
AND ken.alg_kenmerk_key = 1200)
|
|
nummer, -- alg_gebouw kenmerk tbv nummer (is aangepast van 1120 naar 1200 kenmerk was numeriek terwijl er ook 10A huisnr's zijn)
|
|
(SELECT alg_onrgoedkenmerk_waarde
|
|
FROM alg_onrgoedkenmerk ken
|
|
WHERE ken.alg_onrgoed_key = alg.alg_gebouw_key
|
|
AND ken.alg_kenmerk_key = 1072)
|
|
postcode, -- alg_gebouw kenmerk tbv postciode
|
|
(SELECT alg_onrgoedkenmerk_waarde
|
|
FROM alg_onrgoedkenmerk ken
|
|
WHERE ken.alg_onrgoed_key = alg.alg_gebouw_key
|
|
AND ken.alg_kenmerk_key = 1073)
|
|
plaats, -- alg_gebouw kenmerk tbv plaats
|
|
(SELECT gb.alg_gebouw_code
|
|
FROM alg_gebouw gb
|
|
WHERE gb.alg_gebouw_key = alg.alg_gebouw_key)
|
|
gebouw,
|
|
res.RES_RSV_RUIMTE_VAN
|
|
datum_van,
|
|
res.RES_RSV_RUIMTE_TOT
|
|
datum_tot,
|
|
res.res_rsv_ruimte_omschrijving
|
|
oms,
|
|
(SELECT prs_perslid_naam_friendly
|
|
FROM prs_v_perslid_fullnames
|
|
WHERE prs_perslid_key = res.res_rsv_ruimte_contact_key)
|
|
besteller,
|
|
(SELECT prs_perslid_naam_friendly
|
|
FROM prs_v_perslid_fullnames
|
|
WHERE prs_perslid_key = res.res_rsv_ruimte_contact_key)
|
|
userId,
|
|
kstp.prs_kostenplaats_nr
|
|
debiteurNr,
|
|
kstp.prs_kostenplaats_extern
|
|
extern,
|
|
(SELECT res_kenmerkreservering_waarde
|
|
FROM res_kenmerkwaarde ken
|
|
WHERE res_rsv_ruimte_key = res.res_rsv_ruimte_key
|
|
AND res_kenmerk_key IN (21,
|
|
22,
|
|
23,
|
|
24,
|
|
25,
|
|
26))
|
|
wensen,
|
|
res.res_rsv_ruimte_cat_appr
|
|
approved
|
|
FROM res_rsv_ruimte res,
|
|
res_rsv_artikel rar,
|
|
res_ruimte_opstelling rop,
|
|
res_ruimte rer,
|
|
res_alg_ruimte rarm,
|
|
alg_v_ruimte_gegevens_all alg,
|
|
prs_kostenplaats kstp
|
|
WHERE res.res_status_bo_key = 2
|
|
AND res.res_status_fo_key = 2
|
|
AND res.res_rsv_ruimte_verwijder IS NULL
|
|
AND rar.res_rsv_ruimte_key = res.res_rsv_ruimte_key
|
|
AND res.RES_RUIMTE_OPSTEL_KEY = rop.RES_RUIMTE_OPSTEL_KEY
|
|
AND rer.RES_RUIMTE_KEY = rop.RES_RUIMTE_KEY
|
|
AND rarm.RES_RUIMTE_KEY = rer.RES_RUIMTE_KEY
|
|
AND alg.ALG_RUIMTE_KEY = rarm.ALG_RUIMTE_KEY
|
|
AND kstp.prs_kostenplaats_key = res.prs_kostenplaats_key
|
|
UNION ALL
|
|
SELECT DISTINCT
|
|
res.res_rsv_ruimte_key
|
|
res_key,
|
|
res.res_reservering_key,
|
|
res.res_rsv_ruimte_volgnr,
|
|
(SELECT MAX (fac_tracking_datum)
|
|
FROM fac_tracking
|
|
WHERE fac_tracking_refkey = res.res_rsv_ruimte_key
|
|
AND fac_srtnotificatie_key = 108
|
|
AND UPPER (COALESCE (fac_tracking_oms, ' ')) NOT LIKE
|
|
'%ERROR%')
|
|
last_upd,
|
|
res.res_rsv_ruimte_externsyncdate
|
|
last_export,
|
|
res.res_rsv_ruimte_verwijder
|
|
delete_date,
|
|
alg.alg_ruimte_nr
|
|
ruimte,
|
|
alg.alg_verdieping_code
|
|
verdieping,
|
|
(SELECT alg_onrgoedkenmerk_waarde
|
|
FROM alg_onrgoedkenmerk ken
|
|
WHERE ken.alg_onrgoed_key = alg.alg_gebouw_key
|
|
AND ken.alg_kenmerk_key = 1071)
|
|
straat, -- alg_gebouw kenmerk tbv straat
|
|
(SELECT alg_onrgoedkenmerk_waarde
|
|
FROM alg_onrgoedkenmerk ken
|
|
WHERE ken.alg_onrgoed_key = alg.alg_gebouw_key
|
|
AND ken.alg_kenmerk_key = 1200)
|
|
nummer, -- alg_gebouw kenmerk tbv nummer
|
|
(SELECT alg_onrgoedkenmerk_waarde
|
|
FROM alg_onrgoedkenmerk ken
|
|
WHERE ken.alg_onrgoed_key = alg.alg_gebouw_key
|
|
AND ken.alg_kenmerk_key = 1072)
|
|
postcode, -- alg_gebouw kenmerk tbv postciode
|
|
(SELECT alg_onrgoedkenmerk_waarde
|
|
FROM alg_onrgoedkenmerk ken
|
|
WHERE ken.alg_onrgoed_key = alg.alg_gebouw_key
|
|
AND ken.alg_kenmerk_key = 1073)
|
|
plaats, -- alg_gebouw kenmerk tbv plaats
|
|
(SELECT gb.alg_gebouw_code
|
|
FROM alg_gebouw gb
|
|
WHERE gb.alg_gebouw_key = alg.alg_gebouw_key)
|
|
gebouw,
|
|
res.RES_RSV_RUIMTE_VAN
|
|
datum_van,
|
|
res.RES_RSV_RUIMTE_TOT
|
|
datum_tot,
|
|
COALESCE (res.res_rsv_ruimte_omschrijving, 'Catering ')
|
|
oms,
|
|
(SELECT prs_perslid_naam_friendly
|
|
FROM prs_v_perslid_fullnames
|
|
WHERE prs_perslid_key = res.res_rsv_ruimte_contact_key)
|
|
besteller,
|
|
(SELECT prs_perslid_naam_friendly
|
|
FROM prs_v_perslid_fullnames
|
|
WHERE prs_perslid_key = res.res_rsv_ruimte_contact_key)
|
|
userId,
|
|
kstp.prs_kostenplaats_nr
|
|
debiteurNr,
|
|
kstp.prs_kostenplaats_extern
|
|
extern,
|
|
(SELECT res_kenmerkreservering_waarde
|
|
FROM res_kenmerkwaarde ken
|
|
WHERE res_rsv_ruimte_key = res.res_rsv_ruimte_key
|
|
AND res_kenmerk_key IN (21,
|
|
22,
|
|
23,
|
|
24,
|
|
25,
|
|
26))
|
|
wensen,
|
|
res.res_rsv_ruimte_cat_appr
|
|
approved
|
|
FROM res_rsv_ruimte res,
|
|
res_rsv_artikel rar,
|
|
alg_v_ruimte_gegevens_all alg,
|
|
prs_kostenplaats kstp
|
|
WHERE res.res_status_fo_key = 2
|
|
AND res.res_rsv_ruimte_verwijder IS NULL
|
|
AND rar.res_rsv_ruimte_key = res.res_rsv_ruimte_key
|
|
AND alg.ALG_RUIMTE_KEY = res.ALG_RUIMTE_KEY
|
|
AND kstp.prs_kostenplaats_key = res.prs_kostenplaats_key
|
|
ORDER BY res_key;
|
|
|
|
|
|
-- PROCEDURE VOOR HET VERSTUREN NIEUW BERICHT MBT INKOOPORDERS
|
|
|
|
CREATE OR REPLACE PROCEDURE blst_select_res_ikp_new (
|
|
p_applname IN VARCHAR2,
|
|
p_applrun IN VARCHAR2)
|
|
AS
|
|
CURSOR sel_res_new (p_horizon NUMBER,
|
|
p_horizoncattijd NUMBER,
|
|
p_horizondagtijd NUMBER)
|
|
IS
|
|
SELECT res_key,
|
|
res_reservering_key,
|
|
res_rsv_ruimte_volgnr,
|
|
last_upd,
|
|
last_export,
|
|
ruimte,
|
|
verdieping,
|
|
straat,
|
|
COALESCE (nummer, '0') nummer,
|
|
postcode,
|
|
plaats,
|
|
gebouw,
|
|
datum_van,
|
|
datum_tot,
|
|
oms,
|
|
besteller,
|
|
userId,
|
|
debiteurNr,
|
|
extern,
|
|
wensen,
|
|
approved
|
|
FROM blst_v_select_cat_res
|
|
WHERE last_export IS NULL
|
|
AND datum_van BETWEEN TRUNC(SYSDATE) AND fac.datumtijdplusuitvoertijd(SYSDATE,p_horizon,'DAGEN',p_horizondagtijd,p_horizoncattijd,1);
|
|
|
|
|
|
|
|
CURSOR sel_art (in_res_key NUMBER)
|
|
IS
|
|
SELECT rar.res_artikel_key,
|
|
rar.res_rsv_artikel_key,
|
|
art.res_artikel_prijs * rar.res_rsv_artikel_aantal
|
|
tot_prijs,
|
|
art.res_artikel_nr,
|
|
art.res_artikel_omschrijving,
|
|
art.res_artikel_prijs
|
|
artikel_prijs,
|
|
art.res_artikel_inkoopprijs
|
|
inkoop_prijs,
|
|
art.res_artikel_inkoopprijs * rar.res_rsv_artikel_aantal
|
|
tot_inkp_prijs,
|
|
art.res_artikel_btw,
|
|
rar.res_rsv_artikel_aantal,
|
|
rar.res_rsv_artikel_levering,
|
|
art.res_discipline_key,
|
|
art.res_artikel_groep,
|
|
COALESCE (cat.ins_discipline_externnr, 'NB')
|
|
catalogusID,
|
|
rar.res_rsv_artikel_approved
|
|
FROM res_rsv_artikel rar, res_artikel art, ins_tab_discipline cat
|
|
WHERE rar.res_rsv_ruimte_key = in_res_key
|
|
AND art.res_artikel_key = rar.res_artikel_key
|
|
AND cat.ins_discipline_key = art.res_discipline_key;
|
|
|
|
v_bestand VARCHAR2 (50);
|
|
v_base VARCHAR2 (10);
|
|
v_guid VARCHAR2 (40);
|
|
v_counter NUMBER;
|
|
v_artCounter NUMBER;
|
|
v_SAPID VARCHAR2 (30);
|
|
v_LevNr VARCHAR2 (50);
|
|
v_totalPrice NUMBER;
|
|
V_today DATE;
|
|
v_exportDate DATE;
|
|
v_horizon NUMBER;
|
|
v_horizontijd NUMBER;
|
|
v_horizondagtijd NUMBER;
|
|
v_approved NUMBER := 0;
|
|
v_approvedCount NUMBER := 0;
|
|
v_dayOfWeek VARCHAR2 (10) := 0;
|
|
v_feestdagen NUMBER := 0;
|
|
v_kenmerk_key NUMBER;
|
|
v_vrijedagen NUMBER;
|
|
v_aanvraagnr VARCHAR2 (20);
|
|
BEGIN
|
|
v_SAPID := '';
|
|
v_counter := 1;
|
|
v_base := 'IKP_NEW';
|
|
v_totalPrice := 0;
|
|
v_vrijedagen := 0;
|
|
|
|
v_SAPID := blst.get_SAPid ();
|
|
|
|
SELECT SYSDATE INTO v_today FROM DUAL;
|
|
|
|
v_horizon := 7;
|
|
|
|
-- Wijziging horizon opvragen van alle catalogi met kostensoort catering en mee geven aan de cursor rec
|
|
-- SWI: er wordt niet gekeken naar kostensoort maar activiteitsoort catering, kostensoort is allleen tbv catering met fiattering
|
|
-- SWI: Door hier MIN te kiezen ipv MAX weet je zeker dat je alle catering meepakt die niet meer gewijzigd mag worden
|
|
SELECT MIN (rdp.res_disc_params_expire_dagen),
|
|
MAX (res_disc_params_expire_tijd)
|
|
INTO v_horizon, v_horizontijd
|
|
FROM res_discipline dis,
|
|
res_activiteitdiscipline rad,
|
|
res_activiteit ra,
|
|
res_disc_params rdp
|
|
WHERE dis.ins_discipline_key = rad.res_discipline_key
|
|
AND rad.res_activiteit_key = ra.res_activiteit_key
|
|
AND ra.res_srtactiviteit_key = 10 -- CATERING
|
|
AND rdp.res_ins_discipline_key = dis.ins_discipline_key;
|
|
|
|
SELECT fac_setting_pvalue
|
|
INTO v_horizondagtijd
|
|
FROM fac_setting
|
|
WHERE fac_setting_name = 'res_cat_t1';
|
|
|
|
|
|
-- bepaal dag van de week
|
|
--SELECT TO_CHAR (SYSDATE, 'D') INTO v_DayOfWeek FROM DUAL;
|
|
|
|
-- NWA: Bepalen of er feestdagen zitten de tussen nu en nu+v_horizon
|
|
--SELECT COUNT (*)
|
|
-- INTO v_feestdagen
|
|
-- FROM mld_vrije_dagen vd
|
|
-- WHERE vd.mld_vrije_dagen_datum BETWEEN SYSDATE AND SYSDATE + v_horizon;
|
|
|
|
-- NWA: Hoe om te gaan met de feestdagen
|
|
--v_horizon := v_horizon + v_feestdagen;
|
|
|
|
--v_horizon := v_horizon + NVL(blst.aantal_weekenddagen(TRUNC(SYSDATE), TRUNC(SYSDATE)+v_horizon),0);
|
|
--v_vrijedagen := NVL(blst.aantal_vrije_dagen(TRUNC(SYSDATE), TRUNC(SYSDATE)+v_horizon),0);
|
|
--IF v_vrijedagen>0 THEN
|
|
-- v_horizon := v_horizon + NVL(blst.aantal_weekenddagen(TRUNC(SYSDATE+v_vrijedagen), TRUNC(SYSDATE)+v_horizon+v_vrijedagen),0);
|
|
--END IF;
|
|
|
|
|
|
--IF v_dayOfWeek = '5' OR v_dayOfWeek = '6' -- als dag = donderdag(5) of vrijdag(6) dan er 2 bij optellen om over het weekend te kijken !
|
|
--THEN
|
|
-- v_horizon := v_horizon + 2;
|
|
--END IF;
|
|
|
|
FOR rec IN sel_res_new (v_horizon, v_horizontijd, v_horizondagtijd)
|
|
LOOP
|
|
BEGIN
|
|
v_approved := 0;
|
|
|
|
IF rec.approved = 1
|
|
THEN
|
|
-- check of all artikelen een res_rsv_artikel_approved=1 hebben;
|
|
-- SWI: Per ruimteregel geeft RES_RSV_RUIMTE_CAT_APPR aan of de gehele catering gefiatteerd dient te worden {0=Nee | 1=Ja}
|
|
SELECT COUNT (*)
|
|
INTO v_approvedCount
|
|
FROM res_rsv_artikel rra
|
|
WHERE rra.res_rsv_ruimte_key = rec.res_key
|
|
AND rra.res_rsv_artikel_approved = 0;
|
|
|
|
IF v_approvedCount > 0
|
|
THEN
|
|
v_approved := 0; -- er zijn artikelen die niet goedgekeurd/afgewezen zijn dus deze reservering niet exporteren, fiattering hiervan op 2 zetten (afgewezen)
|
|
|
|
UPDATE res_rsv_artikel rra
|
|
SET rra.res_rsv_artikel_approved = 2
|
|
WHERE rra.res_rsv_ruimte_key = rec.res_key;
|
|
-- de res_rsv_ruimte FOstatus naar 4 zetten ?
|
|
|
|
-- tracking en opmerking toevoegen
|
|
fac.trackaction (
|
|
'RESFNO',
|
|
rec.res_key,
|
|
3,
|
|
SYSDATE,
|
|
'Artikelen zijn afgewezen wegens afwezige goedkeuring.');
|
|
ELSE
|
|
-- is deze niet al vanuit facilitor afgekeurd
|
|
SELECT COUNT (*)
|
|
INTO v_approvedCount
|
|
FROM res_rsv_artikel rra
|
|
WHERE rra.res_rsv_ruimte_key = rec.res_key
|
|
AND rra.res_rsv_artikel_approved =2;
|
|
IF v_approvedCount >0
|
|
THEN
|
|
v_approved := 0;
|
|
ELSE
|
|
v_approved := 1;
|
|
END IF;
|
|
END IF;
|
|
ELSE
|
|
v_approved := 1;
|
|
END IF;
|
|
|
|
IF v_approved = 1
|
|
THEN
|
|
v_aanvraagnr := blst.getAanvraagNr (rec.res_key, 'RES');
|
|
v_guid := blst.getguid ();
|
|
V_totalPrice := 0;
|
|
|
|
v_bestand := v_base || '-' || v_counter || '-';
|
|
blst.add_xml_row (
|
|
v_bestand,
|
|
'<?xml version="1.0" encoding="windows-1252"?>');
|
|
blst.add_xml_row (v_bestand, '<Facilitor>');
|
|
blst.add_xml_row (v_bestand, '<SOAPEnvelope>');
|
|
blst.add_xml_element (v_bestand, 'Action', v_base);
|
|
blst.add_xml_element (v_bestand, 'GUID', v_guid);
|
|
blst.add_xml_element (v_bestand, 'User', 'FACILITOR');
|
|
blst.add_xml_row (v_bestand, '</SOAPEnvelope>');
|
|
blst.add_xml_row (v_bestand, '<Inkooporder_new>');
|
|
blst.add_xml_row (v_bestand, '<Header>');
|
|
-- blst.add_xml_element (v_bestand,'ReserveringNr', blst.getAanvraagNr (TO_CHAR (rec.res_key)));
|
|
blst.add_xml_element (v_bestand,
|
|
'ReserveringNr',
|
|
v_aanvraagNr);
|
|
blst.add_xml_element (v_bestand, 'Aanmaakdatum', v_today);
|
|
blst.add_xml_row (v_bestand, '</Header>');
|
|
COMMIT;
|
|
v_kenmerk_key := 0;
|
|
|
|
SELECT ken.res_kenmerk_key
|
|
INTO v_kenmerk_key
|
|
FROM res_rsv_ruimte res,
|
|
res_kenmerk ken,
|
|
res_srtkenmerk skn
|
|
WHERE res_rsv_ruimte_key = rec.res_key
|
|
AND ken.res_activiteit_key = res.res_activiteit_key
|
|
AND ken.res_srtkenmerk_key = skn.RES_SRTKENMERK_KEY
|
|
AND skn.res_srtkenmerk_upper = 'SAP ORDERNR'; -- srtkenmerk naam 'SAP ORDERNR'
|
|
|
|
IF v_kenmerk_key > 0
|
|
THEN
|
|
-- flx.setflex ('RES',v_kenmerk_key,rec.res_key,blst.getAanvraagNr (TO_CHAR (rec.res_key)));
|
|
flx.setflex ('RES',
|
|
v_kenmerk_key,
|
|
rec.res_key,
|
|
v_aanvraagNr);
|
|
END IF;
|
|
|
|
--blst.add_xml_element (v_bestand,'ReserveringNr', blst.getAanvraagNr (TO_CHAR (rec.res_key)));
|
|
|
|
blst.add_xml_element (v_bestand,
|
|
'Omschrijving',
|
|
SUBSTR (rec.oms, 0, 40));
|
|
blst.add_xml_element (v_bestand, 'Wensen', rec.wensen);
|
|
|
|
BEGIN
|
|
SELECT lev.prs_leverancier_nr
|
|
INTO v_levnr
|
|
FROM res_rsv_artikel rar,
|
|
res_artikel art,
|
|
res_disc_params dsp,
|
|
prs_bedrijf lev
|
|
WHERE rar.res_rsv_ruimte_key = rec.res_key
|
|
AND art.res_artikel_key = rar.res_artikel_key
|
|
AND dsp.res_ins_discipline_key =
|
|
art.res_discipline_key
|
|
AND lev.prs_bedrijf_key = dsp.prs_bedrijf_key
|
|
FETCH FIRST 1 ROW ONLY;
|
|
EXCEPTION
|
|
WHEN NO_DATA_FOUND
|
|
THEN
|
|
v_levNr := 'NB';
|
|
END;
|
|
|
|
blst.add_xml_element (v_bestand, 'LeverancierNr', v_LevNr);
|
|
blst.add_xml_element (v_bestand, 'LeverancierType', 'LEV');
|
|
blst.add_xml_element (v_bestand, 'Besteller', rec.debiteurNr);
|
|
blst.add_xml_element (v_bestand, 'UserID', v_SAPID);
|
|
|
|
blst.add_xml_row (v_bestand, '<AfleverAdres>');
|
|
blst.add_xml_element (v_bestand, 'RuimteId', rec.ruimte);
|
|
blst.add_xml_element (v_bestand, 'LandCode', 'NL');
|
|
blst.add_xml_element (v_bestand, 'Postcode', rec.postcode);
|
|
blst.add_xml_element (v_bestand, 'Plaats', rec.plaats);
|
|
blst.add_xml_element (v_bestand, 'Straat', rec.straat);
|
|
blst.add_xml_element (v_bestand, 'Nr', rec.nummer);
|
|
blst.add_xml_element (v_bestand, 'Verdieping', rec.verdieping);
|
|
blst.add_xml_element (v_bestand, 'Gebouw', rec.gebouw);
|
|
blst.add_xml_row (v_bestand, '</AfleverAdres>');
|
|
|
|
v_artCounter := 1;
|
|
|
|
FOR rec_art IN sel_art (rec.res_key)
|
|
LOOP
|
|
blst.add_xml_row (v_bestand, '<Item>');
|
|
blst.add_xml_element (v_bestand,
|
|
'Regelnummer',
|
|
v_artCounter);
|
|
blst.add_xml_element (v_bestand, 'Actie', '01');
|
|
blst.add_xml_element (v_bestand,
|
|
'ArtikelNr',
|
|
rec_art.res_artikel_nr);
|
|
blst.add_xml_element (v_bestand,
|
|
'Aantal',
|
|
rec_art.res_rsv_artikel_aantal);
|
|
blst.add_xml_element (v_bestand, 'Conditiesoort', 'ZPRM');
|
|
blst.add_xml_element (v_bestand,
|
|
'Prijs',
|
|
rec_art.tot_prijs);
|
|
blst.add_xml_element (v_bestand,
|
|
'InkTotPrijs',
|
|
rec_art.tot_inkp_prijs);
|
|
blst.add_xml_element (v_bestand,
|
|
'ArtikelPrijs',
|
|
rec_art.artikel_prijs);
|
|
blst.add_xml_element (v_bestand,
|
|
'InkoopPrijs',
|
|
rec_art.inkoop_prijs);
|
|
blst.add_xml_element (v_bestand,
|
|
'Omschrijving',
|
|
rec_art.res_artikel_omschrijving);
|
|
blst.add_xml_element (v_bestand,
|
|
'LeverDatum',
|
|
rec.datum_van);
|
|
blst.add_xml_element (v_bestand,
|
|
'TechnischeKey',
|
|
'Technisch materiaal'); -- kan komen te vervallen
|
|
blst.add_xml_element (v_bestand, 'Leverancier', v_LevNr);
|
|
blst.add_xml_element (v_bestand, 'Artikelsoort', '1');
|
|
blst.add_xml_element (v_bestand,
|
|
'CatalogusID',
|
|
rec_art.catalogusID);
|
|
blst.add_xml_element (v_bestand,
|
|
'Groep',
|
|
rec_art.res_artikel_groep);
|
|
blst.add_xml_element (v_bestand,
|
|
'StartDatum',
|
|
rec_art.res_rsv_artikel_levering);
|
|
blst.add_xml_element (v_bestand,
|
|
'EindDatum',
|
|
rec.datum_tot);
|
|
v_totalPrice := v_totalPrice + rec_art.tot_inkp_prijs;
|
|
blst.add_xml_row (v_bestand, '</Item>');
|
|
blst.add2exportTable (rec.res_key,
|
|
v_SAPID,
|
|
v_artCounter,
|
|
rec_art.res_rsv_artikel_key,
|
|
rec_art.res_artikel_nr,
|
|
rec_art.res_rsv_artikel_aantal,
|
|
'INKOOP',
|
|
'INS');
|
|
v_artCounter := v_artCounter + 1;
|
|
END LOOP;
|
|
|
|
IF rec.extern = 1
|
|
THEN
|
|
blst_select_res_vkp_new ('SAP_EXPORT',
|
|
'',
|
|
rec.res_key,
|
|
v_counter,
|
|
v_aanvraagnr);
|
|
END IF;
|
|
|
|
blst.add_xml_element (v_bestand, 'TotaalPrijs', v_totalPrice);
|
|
blst.add_xml_row (v_bestand, '</Inkooporder_new>');
|
|
blst.add_xml_row (v_bestand, '</Facilitor>');
|
|
|
|
v_counter := v_counter + 1;
|
|
|
|
UPDATE res_rsv_ruimte
|
|
SET res_rsv_ruimte_externsyncdate = SYSDATE,
|
|
res_rsv_ruimte_externnr = v_aanvraagnr
|
|
WHERE res_rsv_ruimte_key = rec.res_key;
|
|
END IF;
|
|
END;
|
|
END LOOP;
|
|
END;
|
|
/
|
|
|
|
-- PROCEDURE VOOR HET VERSTUREN UPDATE BERICHT MBT INKOOPORDERS
|
|
-- Als update dan zoek reservering op, wie is de besteller en welke catalogus heeft de user rechten met het bijbehorende artikelnr die dan toevoegen.
|
|
|
|
CREATE OR REPLACE PROCEDURE blst_select_res_ikp_upd (
|
|
p_applname IN VARCHAR2,
|
|
p_applrun IN VARCHAR2)
|
|
AS
|
|
CURSOR sel_res_upd --(p_horizon NUMBER)
|
|
IS
|
|
SELECT res_key,
|
|
res_reservering_key,
|
|
res_rsv_ruimte_volgnr,
|
|
last_upd,
|
|
last_export,
|
|
ruimte,
|
|
verdieping,
|
|
straat,
|
|
COALESCE (nummer, '0') nummer,
|
|
postcode,
|
|
plaats,
|
|
gebouw,
|
|
datum_van,
|
|
datum_tot,
|
|
oms,
|
|
besteller,
|
|
userId,
|
|
debiteurNr,
|
|
extern,
|
|
wensen,
|
|
approved
|
|
FROM blst_v_select_cat_res
|
|
WHERE last_export IS NOT NULL AND last_upd > last_export;
|
|
|
|
-- AND TRUNC(datum_van) BETWEEN TRUNC(SYSDATE) AND TRUNC(SYSDATE + p_horizon); --p_horizon;
|
|
|
|
CURSOR sel_art (in_res_key NUMBER)
|
|
IS
|
|
SELECT COALESCE (ex.regel_nr, 0) exp_regel_nr,
|
|
ex.res_key,
|
|
ex.artikel_key,
|
|
ex.exp_artikel_key,
|
|
art.res_artikel_nr artikel_nr,
|
|
COALESCE (ex.exp_aantal, 0) exp_aantal,
|
|
ex.art_artikel_key res_rsv_artikel_key,
|
|
COALESCE (ex.art_aantal, 0) art_aantal,
|
|
art.res_artikel_omschrijving artikel_omschrijving,
|
|
art.res_artikel_prijs artikel_prijs,
|
|
ex.art_aantal * art.res_artikel_prijs tot_prijs,
|
|
art.res_discipline_key catalogusID,
|
|
art.res_artikel_groep groep,
|
|
ex.lever_datum
|
|
FROM (SELECT EXP.res_key,
|
|
rart.res_artikel_key artikel_key,
|
|
artikel_nr,
|
|
EXP.res_rsv_artikel_key exp_artikel_key,
|
|
EXP.aantal exp_aantal,
|
|
rart.res_rsv_artikel_key art_artikel_key,
|
|
rart.res_rsv_artikel_aantal art_aantal,
|
|
rart.res_rsv_artikel_levering lever_datum,
|
|
EXP.regel_nr regel_nr
|
|
FROM blst_exp_Sap EXP
|
|
FULL OUTER JOIN res_rsv_artikel rart
|
|
ON EXP.res_rsv_artikel_key =
|
|
rart.res_rsv_artikel_key
|
|
WHERE ( EXP.res_key = in_res_key
|
|
OR rart.res_rsv_ruimte_key = in_res_key)) ex,
|
|
res_artikel art
|
|
WHERE art.res_artikel_key(+) = ex.artikel_key
|
|
ORDER BY exp_regel_nr;
|
|
|
|
v_bestand VARCHAR2 (50);
|
|
v_action VARCHAR2 (10);
|
|
v_base VARCHAR2 (10);
|
|
v_guid VARCHAR2 (40);
|
|
v_counter NUMBER;
|
|
v_artCounter NUMBER;
|
|
v_regels NUMBER;
|
|
v_SAPID VARCHAR2 (30);
|
|
v_LevNr VARCHAR2 (50);
|
|
v_totalPrice NUMBER;
|
|
V_today DATE;
|
|
v_dummy VARCHAR2 (10);
|
|
v_count NUMBER;
|
|
v_actionCode VARCHAR2 (6);
|
|
v_approved NUMBER := 0;
|
|
v_approvedCount NUMBER := 0;
|
|
v_horizon NUMBER;
|
|
v_dayOfWeek VARCHAR2 (10) := 0;
|
|
v_feestdagen NUMBER := 0;
|
|
v_aanvraagnr VARCHAR2 (20);
|
|
BEGIN
|
|
v_SAPID := '';
|
|
v_counter := 1;
|
|
v_regels := 0;
|
|
v_base := 'IKP_UPD';
|
|
|
|
-- KIJK OF ER RES ZIJN MET WIJZIGINGEN,
|
|
-- BEPAAL OF RES OOK ARTIKELWIJZIGINGE HEEFT GEHAD
|
|
-- INDIEN JA VERGELIJK MET blst_EXP_SAP WAT ER VERANDERD IS.
|
|
v_totalPrice := 0;
|
|
|
|
-- v_SAPID := blst.get_SAPid();
|
|
SELECT SYSDATE INTO v_today FROM DUAL;
|
|
|
|
--v_horizon := 7;
|
|
|
|
-- Wijziging horizon opvragen van alle catalogi met kostensoort catering en mee geven aan de cursor rec
|
|
-- SWI: er wordt niet gekeken naar kostensoort maar activiteitsoort catering, kostensoort is allleen tbv catering met fiattering
|
|
-- SWI: Door hier MIN te kiezen ipv MAX weet je zeker dat je alle catering meepakt die niet meer gewijzigd mag worden
|
|
--SELECT MIN (rdp.res_disc_params_expire_dagen)
|
|
-- INTO v_horizon
|
|
-- FROM res_discipline dis,
|
|
-- res_activiteitdiscipline rad,
|
|
-- res_activiteit ra,
|
|
-- res_disc_params rdp
|
|
-- WHERE dis.ins_discipline_key = rad.res_discipline_key
|
|
-- AND rad.res_activiteit_key = ra.res_activiteit_key
|
|
-- AND ra.res_srtactiviteit_key = 10 -- CATERING
|
|
-- AND rdp.res_ins_discipline_key = dis.ins_discipline_key;
|
|
|
|
-- bepaal dag van de week
|
|
--SELECT TO_CHAR (SYSDATE, 'D') INTO v_DayOfWeek FROM DUAL;
|
|
|
|
-- NWA: Bepalen of er feestdagen zitten de tussen nu rn nu+v_horizon
|
|
--SELECT COUNT (*)
|
|
-- INTO v_feestdagen
|
|
-- FROM mld_vrije_dagen vd
|
|
-- WHERE vd.mld_vrije_dagen_datum BETWEEN SYSDATE AND SYSDATE + v_horizon;
|
|
|
|
-- NWA: Hoe om te gaan met de feestdagen
|
|
--v_horizon := v_horizon + v_feestdagen;
|
|
|
|
--IF v_dayOfWeek = '5' OR v_dayOfWeek = '6' -- als dag = donderdag(5) of vrijdag(6) dan er 2 bij optellen om over het weekend te kijken !
|
|
--THEN
|
|
-- v_horizon := v_horizon + 2;
|
|
--END IF;
|
|
|
|
|
|
--v_horizon := v_horizon + NVL(blst.aantal_weekenddagen(TRUNC(SYSDATE), TRUNC(SYSDATE)+v_horizon),0);
|
|
--v_horizon := v_horizon + NVL(blst.aantal_vrije_dagen(TRUNC(SYSDATE), TRUNC(SYSDATE)+v_horizon),0);
|
|
--v_horizon := v_horizon + NVL(blst.aantal_weekenddagen(TRUNC(SYSDATE), TRUNC(SYSDATE)+v_horizon),0);
|
|
|
|
FOR rec IN sel_res_upd -- (v_horizon)
|
|
LOOP
|
|
BEGIN
|
|
v_approved := 1;
|
|
|
|
|
|
|
|
IF v_approved = 1
|
|
THEN
|
|
SELECT DISTINCT (sap_id)
|
|
INTO v_SAPID
|
|
FROM blst_exp_sap
|
|
WHERE res_key = rec.res_key;
|
|
|
|
v_guid := blst.getguid ();
|
|
v_aanvraagnr := blst.getAanvraagNr (rec.res_key, 'RES');
|
|
|
|
V_totalPrice := 0;
|
|
|
|
v_bestand := v_base || '-' || v_counter || '-';
|
|
blst.add_xml_row (
|
|
v_bestand,
|
|
'<?xml version="1.0" encoding="windows-1252"?>');
|
|
blst.add_xml_row (v_bestand, '<Facilitor>');
|
|
blst.add_xml_row (v_bestand, '<SOAPEnvelope>');
|
|
blst.add_xml_element (v_bestand, 'Action', v_base);
|
|
blst.add_xml_element (v_bestand, 'GUID', v_guid);
|
|
blst.add_xml_element (v_bestand, 'User', 'FACILITOR');
|
|
blst.add_xml_row (v_bestand, '</SOAPEnvelope>');
|
|
|
|
blst.add_xml_row (v_bestand, '<Inkooporder_upd>');
|
|
blst.add_xml_row (v_bestand, '<Header>');
|
|
-- blst.add_xml_element (v_bestand,'ReserveringNr',blst.getAanvraagNr (TO_CHAR (rec.res_key)));
|
|
blst.add_xml_element (v_bestand,
|
|
'ReserveringNr',
|
|
v_aanvraagnr);
|
|
blst.add_xml_element (v_bestand, 'Aanmaakdatum', v_today);
|
|
blst.add_xml_row (v_bestand, '</Header>');
|
|
|
|
blst.add_xml_element (v_bestand, 'Omschrijving', rec.oms);
|
|
|
|
SELECT lev.prs_leverancier_nr
|
|
INTO v_LevNr
|
|
FROM res_rsv_artikel rar,
|
|
res_artikel art,
|
|
res_disc_params dsp,
|
|
prs_bedrijf lev
|
|
WHERE rar.res_rsv_ruimte_key = rec.res_key
|
|
AND art.res_artikel_key = rar.res_artikel_key
|
|
AND dsp.RES_INS_DISCIPLINE_KEY =
|
|
art.RES_DISCIPLINE_KEY
|
|
AND lev.prs_bedrijf_key = dsp.prs_bedrijf_key
|
|
FETCH FIRST 1 ROW ONLY;
|
|
|
|
blst.add_xml_element (v_bestand, 'LeverancierNr', v_LevNr);
|
|
blst.add_xml_element (v_bestand, 'LeverancierType', 'LEV');
|
|
blst.add_xml_element (v_bestand, 'Besteller', rec.debiteurNr);
|
|
blst.add_xml_element (v_bestand, 'UserID', v_SAPID);
|
|
|
|
blst.add_xml_row (v_bestand, '<AfleverAdres>');
|
|
blst.add_xml_element (v_bestand, 'RuimteId', rec.ruimte);
|
|
blst.add_xml_element (v_bestand, 'LandCode', 'NL');
|
|
blst.add_xml_element (v_bestand, 'Postcode', rec.postcode);
|
|
blst.add_xml_element (v_bestand, 'Plaats', rec.plaats);
|
|
blst.add_xml_element (v_bestand, 'Straat', rec.straat);
|
|
blst.add_xml_element (v_bestand, 'Nr', rec.nummer);
|
|
blst.add_xml_element (v_bestand, 'Verdieping', rec.nummer);
|
|
blst.add_xml_element (v_bestand, 'Gebouw', rec.gebouw);
|
|
blst.add_xml_row (v_bestand, '</AfleverAdres>');
|
|
|
|
SELECT COUNT (*)
|
|
INTO v_regels
|
|
FROM blst_exp_sap
|
|
WHERE res_key = rec.res_key;
|
|
|
|
v_artCounter := 1;
|
|
|
|
FOR rec_art IN sel_art (rec.res_key)
|
|
LOOP
|
|
blst.add_xml_row (v_bestand, '<Item>');
|
|
|
|
IF rec_art.exp_regel_nr = 0 -- NIEUW ARTIKEL BIJ RESERVERING
|
|
THEN
|
|
IF v_artCounter <= v_regels
|
|
THEN
|
|
v_artcounter := v_regels;
|
|
END IF;
|
|
|
|
v_artCounter := v_artCounter + 1;
|
|
blst.add_xml_element (v_bestand,
|
|
'Regelnummer',
|
|
v_artCounter);
|
|
v_action := 'INS';
|
|
blst.add2exportTable (rec.res_key,
|
|
v_SAPID,
|
|
v_artCounter,
|
|
rec_art.res_rsv_artikel_key,
|
|
rec_art.artikel_nr,
|
|
rec_art.art_aantal,
|
|
'INKOOP',
|
|
v_action);
|
|
v_actionCode := '01';
|
|
ELSE
|
|
blst.add_xml_element (v_bestand,
|
|
'Regelnummer',
|
|
rec_art.exp_regel_nr);
|
|
v_action := 'UPD';
|
|
blst.add2exportTable (rec.res_key,
|
|
v_SAPID,
|
|
rec_art.exp_regel_nr,
|
|
rec_art.exp_artikel_key,
|
|
rec_art.artikel_nr,
|
|
rec_art.art_aantal,
|
|
'INKOOP',
|
|
v_action);
|
|
|
|
IF rec_art.art_aantal = 0
|
|
THEN
|
|
v_actionCode := '03';
|
|
ELSE
|
|
v_actionCode := '02';
|
|
END IF;
|
|
END IF;
|
|
|
|
|
|
blst.add_xml_element (v_bestand,
|
|
'Aantal',
|
|
rec_art.art_aantal);
|
|
blst.add_xml_element (v_bestand, 'Actie', v_actionCode);
|
|
blst.add_xml_element (v_bestand,
|
|
'ArtikelNr',
|
|
rec_art.artikel_nr);
|
|
blst.add_xml_element (v_bestand, 'Conditiesoort', 'ZPRM');
|
|
blst.add_xml_element (v_bestand,
|
|
'Prijs',
|
|
rec_art.tot_prijs);
|
|
blst.add_xml_element (v_bestand,
|
|
'ArtikelPrijs',
|
|
rec_art.artikel_prijs);
|
|
blst.add_xml_element (v_bestand,
|
|
'Omschrijving',
|
|
rec_art.artikel_omschrijving);
|
|
blst.add_xml_element (v_bestand,
|
|
'LeverDatum',
|
|
rec.datum_van);
|
|
blst.add_xml_element (v_bestand,
|
|
'TechnischeKey',
|
|
'Technisch materiaal'); -- kan komen te vervallen
|
|
blst.add_xml_element (v_bestand, 'Leverancier', v_LevNr);
|
|
blst.add_xml_element (v_bestand, 'Artikelsoort', '1');
|
|
blst.add_xml_element (v_bestand,
|
|
'CatalogusID',
|
|
rec_art.catalogusID);
|
|
blst.add_xml_element (v_bestand, 'Groep', rec_art.groep);
|
|
blst.add_xml_element (v_bestand,
|
|
'StartDatum',
|
|
rec_art.lever_datum);
|
|
blst.add_xml_element (v_bestand,
|
|
'EindDatum',
|
|
rec.datum_tot);
|
|
blst.add_xml_row (v_bestand, '</Item>');
|
|
|
|
v_totalPrice := v_totalPrice + rec_art.tot_prijs;
|
|
END LOOP;
|
|
|
|
IF rec.extern = 1
|
|
THEN
|
|
v_dummy := 'TEST';
|
|
blst_select_res_vkp_upd ('SAP_EXPORT',
|
|
'',
|
|
rec.res_key,
|
|
v_counter,
|
|
v_aanvraagnr);
|
|
END IF;
|
|
|
|
blst.add_xml_element (v_bestand, 'TotaalPrijs', v_totalPrice);
|
|
blst.add_xml_row (v_bestand, '</Inkooporder_upd>');
|
|
blst.add_xml_row (v_bestand, '</Facilitor>');
|
|
v_counter := v_counter + 1;
|
|
|
|
UPDATE res_rsv_ruimte
|
|
SET res_rsv_ruimte_externsyncdate = SYSDATE
|
|
WHERE res_rsv_ruimte_key = rec.res_key;
|
|
END IF;
|
|
END;
|
|
END LOOP;
|
|
END;
|
|
/
|
|
|
|
-- Kijk of er RES die verwijderd zijn
|
|
-- Indien JA zet alle blst_exp_sap aantal op 0;
|
|
|
|
CREATE OR REPLACE PROCEDURE blst_select_res_ikp_del (
|
|
p_applname IN VARCHAR2,
|
|
p_applrun IN VARCHAR2)
|
|
AS
|
|
CURSOR sel_res_upd IS
|
|
SELECT res_key,
|
|
res_reservering_key,
|
|
res_rsv_ruimte_volgnr,
|
|
last_upd,
|
|
last_export,
|
|
delete_date,
|
|
ruimte,
|
|
straat,
|
|
COALESCE (nummer, '0') nummer,
|
|
postcode,
|
|
plaats,
|
|
gebouw,
|
|
datum_van,
|
|
datum_tot,
|
|
oms,
|
|
besteller,
|
|
userId,
|
|
debiteurNr,
|
|
extern,
|
|
wensen
|
|
FROM blst_v_select_cat_res
|
|
WHERE last_export IS NOT NULL
|
|
AND delete_date IS NOT NULL
|
|
AND delete_date > last_export;
|
|
|
|
CURSOR sel_art (in_res_key NUMBER)
|
|
IS
|
|
SELECT COALESCE (ex.regel_nr, 0) exp_regel_nr,
|
|
ex.res_key,
|
|
ex.artikel_key,
|
|
ex.exp_artikel_key,
|
|
art.res_artikel_nr artikel_nr,
|
|
COALESCE (ex.exp_aantal, 0) exp_aantal,
|
|
ex.art_artikel_key,
|
|
COALESCE (ex.art_aantal, 0) art_aantal,
|
|
art.res_artikel_omschrijving artikel_omschrijving,
|
|
art.res_artikel_prijs artikel_prijs,
|
|
ex.art_aantal * art.res_artikel_prijs tot_prijs,
|
|
art.res_discipline_key catalogusID,
|
|
art.res_artikel_groep groep,
|
|
ex.lever_datum
|
|
FROM (SELECT EXP.res_key,
|
|
rart.res_artikel_key artikel_key,
|
|
artikel_nr,
|
|
EXP.res_rsv_artikel_key exp_artikel_key,
|
|
EXP.aantal exp_aantal,
|
|
rart.res_rsv_artikel_key art_artikel_key,
|
|
rart.res_rsv_artikel_aantal art_aantal,
|
|
rart.res_rsv_artikel_levering lever_datum,
|
|
EXP.regel_nr regel_nr
|
|
FROM blst_exp_Sap EXP
|
|
FULL OUTER JOIN res_rsv_artikel rart
|
|
ON EXP.res_rsv_artikel_key =
|
|
rart.res_rsv_artikel_key
|
|
WHERE ( EXP.res_key = in_res_key
|
|
OR rart.res_rsv_ruimte_key = in_res_key)) ex,
|
|
res_artikel art
|
|
WHERE art.res_artikel_key(+) = ex.artikel_key
|
|
ORDER BY exp_regel_nr;
|
|
|
|
v_bestand VARCHAR2 (50);
|
|
v_action VARCHAR2 (10);
|
|
v_base VARCHAR2 (10);
|
|
v_guid VARCHAR2 (40);
|
|
v_counter NUMBER;
|
|
v_artCounter NUMBER;
|
|
v_regels NUMBER;
|
|
v_SAPID VARCHAR2 (30);
|
|
v_LevNr VARCHAR2 (50);
|
|
v_totalPrice NUMBER;
|
|
V_today DATE;
|
|
v_dummy VARCHAR2 (10);
|
|
v_count NUMBER;
|
|
v_aanvraagnr VARCHAR2 (20);
|
|
BEGIN
|
|
v_SAPID := '';
|
|
v_counter := 1;
|
|
v_regels := 0;
|
|
v_base := 'IKP_DEL';
|
|
|
|
|
|
v_totalPrice := 0;
|
|
|
|
-- v_SAPID := blst.get_SAPid();
|
|
SELECT SYSDATE INTO v_today FROM DUAL;
|
|
|
|
FOR rec IN sel_res_upd
|
|
LOOP
|
|
BEGIN
|
|
SELECT DISTINCT (sap_id)
|
|
INTO v_SAPID
|
|
FROM blst_exp_sap
|
|
WHERE res_key = rec.res_key;
|
|
|
|
v_guid := blst.getguid ();
|
|
V_totalPrice := 0;
|
|
v_aanvraagnr := blst.getAanvraagNr (rec.res_key, 'RES');
|
|
|
|
v_bestand := v_base || '-' || v_counter || '-';
|
|
blst.add_xml_row (
|
|
v_bestand,
|
|
'<?xml version="1.0" encoding="windows-1252"?>');
|
|
blst.add_xml_row (v_bestand, '<Facilitor>');
|
|
blst.add_xml_row (v_bestand, '<SOAPEnvelope>');
|
|
blst.add_xml_element (v_bestand, 'Action', v_base);
|
|
blst.add_xml_element (v_bestand, 'GUID', v_guid);
|
|
blst.add_xml_element (v_bestand, 'User', 'FACILITOR');
|
|
blst.add_xml_row (v_bestand, '</SOAPEnvelope>');
|
|
blst.add_xml_row (v_bestand, '<Inkooporder_upd>');
|
|
blst.add_xml_row (v_bestand, '<Header>');
|
|
-- blst.add_xml_element (v_bestand,'ReserveringNr',blst.getAanvraagNr (TO_CHAR (rec.res_key)));
|
|
blst.add_xml_element (v_bestand, 'Aanmaakdatum', v_today);
|
|
blst.add_xml_row (v_bestand, '</Header>');
|
|
-- blst.add_xml_element (v_bestand,'ReserveringNr',blst.getAanvraagNr (TO_CHAR (rec.res_key)));
|
|
blst.add_xml_element (v_bestand, 'Omschrijving', rec.oms);
|
|
|
|
SELECT lev.PRS_LEVERANCIER_NR
|
|
INTO v_LevNr
|
|
FROM res_rsv_artikel rar,
|
|
res_artikel art,
|
|
res_disc_params dsp,
|
|
prs_bedrijf lev
|
|
WHERE rar.res_rsv_ruimte_key = rec.res_key
|
|
AND art.res_artikel_key = rar.res_artikel_key
|
|
AND dsp.RES_INS_DISCIPLINE_KEY = art.RES_DISCIPLINE_KEY
|
|
AND lev.prs_bedrijf_key = dsp.prs_bedrijf_key
|
|
FETCH FIRST 1 ROW ONLY;
|
|
|
|
blst.add_xml_element (v_bestand, 'LeverancierNr', v_LevNr);
|
|
blst.add_xml_element (v_bestand, 'LeverancierType', 'LEV');
|
|
blst.add_xml_element (v_bestand, 'Besteller', rec.debiteurNr);
|
|
blst.add_xml_element (v_bestand, 'UserID', v_SAPID);
|
|
blst.add_xml_row (v_bestand, '<AfleverAdres>');
|
|
blst.add_xml_element (v_bestand, 'RuimteId', rec.ruimte);
|
|
blst.add_xml_element (v_bestand, 'LandCode', 'NL');
|
|
blst.add_xml_element (v_bestand, 'Postcode', rec.postcode);
|
|
blst.add_xml_element (v_bestand, 'Plaats', rec.plaats);
|
|
blst.add_xml_element (v_bestand, 'Straat', rec.straat);
|
|
blst.add_xml_element (v_bestand, 'Nr', rec.nummer);
|
|
blst.add_xml_element (v_bestand, 'Gebouw', rec.gebouw);
|
|
blst.add_xml_row (v_bestand, '</AfleverAdres>');
|
|
|
|
SELECT COUNT (*)
|
|
INTO v_regels
|
|
FROM blst_exp_sap
|
|
WHERE res_key = rec.res_key;
|
|
|
|
v_artCounter := 1;
|
|
|
|
FOR rec_art IN sel_art (rec.res_key)
|
|
LOOP
|
|
blst.add_xml_row (v_bestand, '<Item>');
|
|
blst.add_xml_element (v_bestand, 'Aantal', 0);
|
|
blst.add_xml_element (v_bestand, 'Actie', '03');
|
|
blst.add_xml_element (v_bestand,
|
|
'ArtikelNr',
|
|
rec_art.artikel_nr);
|
|
|
|
blst.add_xml_element (v_bestand, 'Conditiesoort', 'ZPRM');
|
|
blst.add_xml_element (v_bestand, 'Prijs', rec_art.tot_prijs); -- deze mischien ook op 0 zetten
|
|
blst.add_xml_element (v_bestand,
|
|
'ArtikelPrijs',
|
|
rec_art.artikel_prijs);
|
|
blst.add_xml_element (v_bestand,
|
|
'Omschrijving',
|
|
rec_art.artikel_omschrijving);
|
|
blst.add_xml_element (v_bestand, 'LeverDatum', rec.datum_van);
|
|
blst.add_xml_element (v_bestand,
|
|
'TechnischeKey',
|
|
'Technisch materiaal');
|
|
blst.add_xml_element (v_bestand, 'Leverancier', v_LevNr);
|
|
blst.add_xml_element (v_bestand, 'Artikelsoort', '1');
|
|
blst.add_xml_element (v_bestand, 'CatalogusID', 'CATERING');
|
|
blst.add_xml_element (v_bestand, 'Groep', rec_art.groep);
|
|
|
|
blst.add_xml_element (v_bestand,
|
|
'StartDatum',
|
|
rec_art.lever_datum);
|
|
blst.add_xml_element (v_bestand, 'EindDatum', rec.datum_tot);
|
|
blst.add_xml_row (v_bestand, '</Item>');
|
|
blst.add2exportTable (rec.res_key,
|
|
v_SAPID,
|
|
rec_art.exp_regel_nr,
|
|
rec_art.exp_artikel_key,
|
|
rec_art.artikel_nr,
|
|
0,
|
|
'INKOOP',
|
|
'UPD');
|
|
v_totalPrice := v_totalPrice + 0;
|
|
END LOOP;
|
|
|
|
IF rec.extern = 1
|
|
THEN
|
|
blst_select_res_vkp_del ('SAP_EXPORT',
|
|
'',
|
|
rec.res_key,
|
|
v_counter,
|
|
v_aanvraagnr);
|
|
END IF;
|
|
|
|
COMMIT;
|
|
blst.add_xml_element (v_bestand, 'TotaalPrijs', v_totalPrice);
|
|
blst.add_xml_row (v_bestand, '</Inkooporder_upd>');
|
|
blst.add_xml_row (v_bestand, '</Facilitor>');
|
|
v_counter := v_counter + 1;
|
|
|
|
UPDATE res_rsv_ruimte
|
|
SET res_rsv_ruimte_externsyncdate = SYSDATE
|
|
WHERE res_rsv_ruimte_key = rec.res_key;
|
|
END;
|
|
END LOOP;
|
|
END;
|
|
/
|
|
|
|
|
|
|
|
CREATE OR REPLACE PROCEDURE blst_select_sap_export_new (
|
|
p_applname IN VARCHAR2,
|
|
p_applrun IN VARCHAR2)
|
|
AS
|
|
BEGIN
|
|
DELETE FROM fac_rapport -- Opschonen oude Inkooporders
|
|
WHERE fac_rapport_node LIKE 'IKP_NEW%';
|
|
|
|
DELETE FROM fac_rapport -- Opschonen oude Verkooporders
|
|
WHERE fac_rapport_node LIKE 'VKP_NEW%';
|
|
|
|
-- COMMIT;
|
|
blst_select_res_ikp_new ('SAP_EXPORT_NEW', '');
|
|
END;
|
|
/
|
|
|
|
CREATE OR REPLACE PROCEDURE blst_select_sap_export_upd (
|
|
p_applname IN VARCHAR2,
|
|
p_applrun IN VARCHAR2)
|
|
AS
|
|
BEGIN
|
|
DELETE FROM fac_rapport -- Opschonen oude gewijzigde Inkooporders
|
|
WHERE fac_rapport_node LIKE 'IKP_UPD%';
|
|
|
|
DELETE FROM fac_rapport -- Opschonen oude verwijderde Inkooporders
|
|
WHERE fac_rapport_node LIKE 'IKP_DEL%';
|
|
|
|
DELETE FROM fac_rapport -- Opschonen oude gewijzigde Verkooporders
|
|
WHERE fac_rapport_node LIKE 'VKP_UPD%';
|
|
|
|
DELETE FROM fac_rapport -- Opschonen oude verwijderde Verkooporders
|
|
WHERE fac_rapport_node LIKE 'VKP_DEL%';
|
|
|
|
-- COMMIT;
|
|
blst_select_res_ikp_upd ('SAP_EXPORT_UPD', ''); -- Kijken of er gewijzigde reserveringen zijn
|
|
blst_select_res_ikp_del ('SAP_EXPORT_UPD', ''); -- kijken of er verwijderde reserveringen zijn,
|
|
blst_select_res_vkp_fac ('SAP_EXPORT_UPD', ''); -- verkoop facturen klaarzetten
|
|
END;
|
|
/
|
|
|
|
|
|
CREATE OR REPLACE PROCEDURE blst_select_bes_export_new(
|
|
p_applname IN VARCHAR2,
|
|
p_applrun IN VARCHAR2)
|
|
AS
|
|
BEGIN
|
|
DELETE FROM fac_rapport -- Opschonen oude BES exports
|
|
WHERE fac_rapport_node LIKE 'IKB_NEW%';
|
|
DELETE FROM fac_rapport -- Opschonen oude BES exports
|
|
WHERE fac_rapport_node LIKE 'VKB_NEW%';
|
|
blst_select_bes_ikp_new();
|
|
END;
|
|
/
|
|
|
|
CREATE OR REPLACE VIEW blst_v_export_nds_export_new
|
|
(
|
|
result,
|
|
result_order
|
|
)
|
|
AS
|
|
SELECT fac_rapport_regel, fac_rapport_volgnr
|
|
FROM fac_rapport
|
|
WHERE fac_rapport_node LIKE 'NDS_NEW%';
|
|
|
|
|
|
CREATE OR REPLACE VIEW blst_v_export_bes_export_new
|
|
(
|
|
result,
|
|
result_order,
|
|
exp_sap_bes
|
|
)
|
|
AS
|
|
SELECT fac_rapport_regel, fac_rapport_volgnr,fac_rapport_node
|
|
FROM fac_rapport
|
|
WHERE fac_rapport_node LIKE 'IKB_NEW%'
|
|
UNION ALL
|
|
SELECT fac_rapport_regel, fac_rapport_volgnr,fac_rapport_node
|
|
FROM fac_rapport
|
|
WHERE fac_rapport_node LIKE 'VKB_NEW%';
|
|
|
|
|
|
CREATE OR REPLACE VIEW blst_v_export_sap_export_new
|
|
(
|
|
result,
|
|
result_order,
|
|
exp_sap_new
|
|
)
|
|
AS
|
|
SELECT fac_rapport_regel, fac_rapport_volgnr, fac_rapport_node
|
|
FROM fac_rapport
|
|
WHERE fac_rapport_node LIKE 'IKP_NEW%'
|
|
UNION ALL
|
|
SELECT fac_rapport_regel, fac_rapport_volgnr, fac_rapport_node
|
|
FROM fac_rapport
|
|
WHERE fac_rapport_node LIKE 'VKP_NEW%';
|
|
|
|
|
|
|
|
CREATE OR REPLACE VIEW blst_v_export_sap_export_upd
|
|
(
|
|
result,
|
|
result_order,
|
|
exp_sap_upd
|
|
)
|
|
AS
|
|
-- SELECT fac_rapport_regel, fac_rapport_volgnr, fac_rapport_node
|
|
-- FROM fac_rapport
|
|
-- WHERE fac_rapport_node LIKE 'IKP_UPD%'
|
|
-- UNION ALL
|
|
-- SELECT fac_rapport_regel, fac_rapport_volgnr, fac_rapport_node
|
|
-- FROM fac_rapport
|
|
-- WHERE fac_rapport_node LIKE 'IKP_DEL%'
|
|
-- UNION ALL
|
|
SELECT fac_rapport_regel, fac_rapport_volgnr, fac_rapport_node
|
|
FROM fac_rapport
|
|
WHERE fac_rapport_node LIKE 'VKP_UPD%'
|
|
UNION ALL
|
|
SELECT fac_rapport_regel, fac_rapport_volgnr, fac_rapport_node
|
|
FROM fac_rapport
|
|
WHERE fac_rapport_node LIKE 'VKP_DEL%'
|
|
UNION ALL
|
|
SELECT fac_rapport_regel, fac_rapport_volgnr, fac_rapport_node
|
|
FROM fac_rapport
|
|
WHERE fac_rapport_node LIKE 'VKP_FAC%';
|
|
|
|
|
|
CREATE OR REPLACE VIEW blst_v_export_res_vkp_new
|
|
(
|
|
result,
|
|
result_order,
|
|
vkp_new
|
|
)
|
|
AS
|
|
SELECT fac_rapport_regel, fac_rapport_volgnr, fac_rapport_node
|
|
FROM fac_rapport
|
|
WHERE fac_rapport_node LIKE 'VKP_NEW%';
|
|
|
|
|
|
CREATE OR REPLACE VIEW blst_v_export_res_vkp_upd
|
|
(
|
|
result,
|
|
result_order,
|
|
vkp_upd
|
|
)
|
|
AS
|
|
SELECT fac_rapport_regel, fac_rapport_volgnr, fac_rapport_node
|
|
FROM fac_rapport
|
|
WHERE fac_rapport_node LIKE 'VKP_UPD%';
|
|
|
|
CREATE OR REPLACE VIEW blst_v_export_res_vkp_fac
|
|
(
|
|
result,
|
|
result_order,
|
|
vkp_fac
|
|
)
|
|
AS
|
|
SELECT fac_rapport_regel, fac_rapport_volgnr, fac_rapport_node
|
|
FROM fac_rapport
|
|
WHERE fac_rapport_node LIKE 'VKP_FAC%';
|
|
|
|
CREATE OR REPLACE VIEW blst_v_export_res_ikp_new
|
|
(
|
|
result,
|
|
result_order,
|
|
ikp_new
|
|
)
|
|
AS
|
|
SELECT fac_rapport_regel, fac_rapport_volgnr, fac_rapport_node
|
|
FROM fac_rapport
|
|
WHERE fac_rapport_node LIKE 'IKP_NEW%';
|
|
|
|
|
|
CREATE OR REPLACE VIEW blst_v_export_res_ikp_upd
|
|
(
|
|
result,
|
|
result_order,
|
|
ikp_upd
|
|
)
|
|
AS
|
|
SELECT fac_rapport_regel, fac_rapport_volgnr, fac_rapport_node
|
|
FROM fac_rapport
|
|
WHERE fac_rapport_node LIKE 'IKP_UPD%';
|
|
|
|
|
|
|
|
CREATE OR REPLACE PROCEDURE BLST_IMPORT_SAP_IMPORT (p_import_key IN NUMBER)
|
|
AS
|
|
c_delim VARCHAR2 (1) := ';';
|
|
header_is_valid NUMBER;
|
|
v_errormsg VARCHAR2 (1000);
|
|
oracle_err_num NUMBER;
|
|
oracle_err_mes VARCHAR2 (200);
|
|
v_newline VARCHAR2 (4000);
|
|
v_ongeldig NUMBER (1) := 0; -- 0= Goed, 1= Error, 2=Waarschuwing
|
|
v_reskey NUMBER;
|
|
v_sapnr_str VARCHAR2 (50);
|
|
v_res_key NUMBER;
|
|
v_regelnr_str VARCHAR2 (50);
|
|
v_regelnr NUMBER;
|
|
v_actioncode_str VARCHAR2 (50);
|
|
v_artikelnr_str VARCHAR2 (50);
|
|
v_aantal_str VARCHAR2 (50);
|
|
v_aantal NUMBER;
|
|
v_incprijs_str VARCHAR2 (50);
|
|
v_incprijs NUMBER;
|
|
v_excprijs_str VARCHAR2 (50);
|
|
v_excprijs NUMBER;
|
|
v_leverdatum_str VARCHAR2 (50);
|
|
v_leverdatum DATE;
|
|
v_aanduiding VARCHAR2 (4000);
|
|
v_code_str VARCHAR2 (50);
|
|
v_code NUMBER;
|
|
v_counter NUMBER;
|
|
v_currentfile VARCHAR2 (50);
|
|
v_aanvraagnr VARCHAR2 (20);
|
|
|
|
CURSOR c1 IS
|
|
SELECT *
|
|
FROM fac_imp_file
|
|
WHERE fac_import_key = p_import_key;
|
|
-- ORDER BY fac_imp_file_index;
|
|
BEGIN
|
|
header_is_valid := 0;
|
|
v_counter := 0;
|
|
v_currentfile := '';
|
|
|
|
DELETE FROM blst_imp_sap
|
|
WHERE import_key <> p_import_key;
|
|
|
|
v_aanduiding := 'Start inlees process';
|
|
|
|
--COMMIT;
|
|
SELECT fac_import_filenaam
|
|
INTO v_currentfile
|
|
FROM fac_import
|
|
WHERE fac_import_key = p_import_key;
|
|
|
|
|
|
FOR rec IN c1
|
|
LOOP
|
|
BEGIN
|
|
v_aanduiding := 'Lees regel';
|
|
|
|
v_newline := REPLACE (rec.fac_imp_file_line, CHR (9), '');
|
|
|
|
v_aanduiding := 'Lees velden in';
|
|
fac.imp_getfield (v_newline, c_delim, v_sapnr_str);
|
|
fac.imp_getfield (v_newline, c_delim, v_regelnr_str);
|
|
fac.imp_getfield (v_newline, c_delim, v_actioncode_str);
|
|
fac.imp_getfield (v_newline, c_delim, v_artikelnr_str);
|
|
fac.imp_getfield (v_newline, c_delim, v_aantal_str);
|
|
fac.imp_getfield (v_newline, c_delim, v_incprijs_str);
|
|
fac.imp_getfield (v_newline, c_delim, v_excprijs_str);
|
|
fac.imp_getfield (v_newline, c_delim, v_leverdatum_str);
|
|
|
|
v_aanduiding := 'Valideer Headers';
|
|
|
|
IF v_sapnr_str = 'SAPNR' -- ik heb een header te pakken
|
|
THEN
|
|
v_counter := v_counter + 1;
|
|
|
|
-- IF (header_is_valid = 0)
|
|
-- THEN
|
|
IF UPPER (TRIM (v_sapnr_str)) = 'SAPNR'
|
|
AND UPPER (TRIM (v_regelnr_str)) = 'REGELNR'
|
|
AND UPPER (TRIM (v_actioncode_str)) = 'ACTIONCODE'
|
|
AND UPPER (TRIM (v_artikelnr_str)) = 'ARTIKELNR'
|
|
AND UPPER (TRIM (v_aantal_str)) = 'AANTAL'
|
|
AND UPPER (TRIM (v_incprijs_str)) = 'INCPRIJS'
|
|
AND UPPER (TRIM (v_excprijs_str)) = 'EXCPRIJS'
|
|
AND UPPER (TRIM (v_leverdatum_str)) = 'LEVERDATUM'
|
|
THEN
|
|
header_is_valid := 1;
|
|
END IF;
|
|
ELSE
|
|
v_aanduiding := 'Converteer res_key voor ' || v_sapnr_str;
|
|
v_code_str := '0';
|
|
|
|
-- SELECT ud.fac_usrdata_code
|
|
-- INTO v_code_str
|
|
-- FROM fac_usrtab ut, FAC_USRDATA ud
|
|
-- WHERE UPPER (ut.fac_usrtab_naam) = 'BLST_SETTINGS'
|
|
-- AND ud.fac_usrtab_key = ut.fac_usrtab_key
|
|
-- AND UPPER (ud.fac_usrdata_omschr) = 'SAP_ID';
|
|
|
|
-- v_code_str := RPAD (v_code_str, LENGTH (v_sapnr_str), '0');
|
|
-- v_code := fac.safe_to_number (v_code_str);
|
|
-- v_aanvraagnr := fac.safe_to_number (v_sapnr_str) - v_code;
|
|
-- v_res_key := blst.getKeyFromAanvraagNr(v_aanvraagnr);
|
|
|
|
BEGIN
|
|
SELECT res_rsv_ruimte_key
|
|
INTO v_res_key
|
|
FROM res_rsv_ruimte
|
|
WHERE res_rsv_ruimte_externnr = v_sapnr_str;
|
|
EXCEPTION
|
|
WHEN NO_DATA_FOUND
|
|
THEN
|
|
v_res_key := -1;
|
|
END;
|
|
|
|
|
|
--SUBSTR (LTRIM(v_sapnr_str), 4, LENGTH (LTRIM(v_sapnr_str))));
|
|
|
|
IF v_res_key > 0
|
|
THEN
|
|
v_ongeldig := 0;
|
|
ELSE
|
|
v_ongeldig := 1;
|
|
v_errormsg :=
|
|
'Fout bij converteren SAPNr [' || v_aanduiding || ']';
|
|
END IF;
|
|
|
|
v_aanduiding := 'Converteer regelnr voor ' || v_sapnr_str;
|
|
v_regelnr := fac.safe_to_number (v_regelnr_str);
|
|
|
|
IF v_regelnr < 0
|
|
THEN
|
|
v_ongeldig := 1;
|
|
v_errormsg :=
|
|
'Fout bij converteren regelnr ['
|
|
|| v_aanduiding
|
|
|| ']';
|
|
END IF;
|
|
|
|
IF v_regelnr <> 0
|
|
THEN
|
|
v_aanduiding := 'Artikelnr controle ' || v_artikelnr_str;
|
|
|
|
IF LENGTH (v_artikelnr_str) > 0
|
|
THEN
|
|
v_ongeldig := 0;
|
|
ELSE
|
|
v_ongeldig := 2;
|
|
v_errormsg :=
|
|
'Geen artikelnr beschikbaar ['
|
|
|| v_aanduiding
|
|
|| ']';
|
|
END IF;
|
|
|
|
v_aanduiding := 'Converteer aantal voor ' || v_sapnr_str;
|
|
v_aantal := fac.safe_to_number (v_aantal_str);
|
|
|
|
IF v_aantal < 0
|
|
THEN
|
|
v_ongeldig := 1;
|
|
v_errormsg :=
|
|
'Fout bij converteren aantal ['
|
|
|| v_aanduiding
|
|
|| ']';
|
|
END IF;
|
|
|
|
v_aanduiding := 'Converteer prijs voor ' || v_sapnr_str;
|
|
v_incprijs := fac.safe_to_number (v_incprijs_str);
|
|
|
|
IF v_incprijs < 0
|
|
THEN
|
|
v_ongeldig := 1;
|
|
v_errormsg :=
|
|
'Fout bij converteren inc. prijs ['
|
|
|| v_aanduiding
|
|
|| ']';
|
|
END IF;
|
|
|
|
v_excprijs := fac.safe_to_number (v_excprijs_str);
|
|
|
|
IF v_excprijs < 0
|
|
THEN
|
|
v_ongeldig := 1;
|
|
v_errormsg :=
|
|
'Fout bij converteren exc. prijs ['
|
|
|| v_aanduiding
|
|
|| ']';
|
|
END IF;
|
|
|
|
v_aanduiding :=
|
|
'Converteer leverdatum voor ' || v_sapnr_str;
|
|
v_leverdatum_str :=
|
|
REPLACE (
|
|
SUBSTR (v_leverdatum_str,
|
|
0,
|
|
INSTR (v_leverdatum_str, '+') - 1),
|
|
'T',
|
|
' ');
|
|
v_leverdatum :=
|
|
fac.safe_to_date (v_leverdatum_str,
|
|
'YYYY-MM-DD hh24:mi:ss');
|
|
|
|
IF v_leverdatum IS NULL
|
|
THEN
|
|
v_ongeldig := 1;
|
|
v_errormsg :=
|
|
'Fout bij converteren leverdatum ['
|
|
|| v_leverdatum_str
|
|
|| ']';
|
|
END IF;
|
|
END IF;
|
|
|
|
IF v_ongeldig = 0
|
|
THEN
|
|
BEGIN
|
|
v_aanduiding := 'Insert ' || v_sapnr_str;
|
|
v_ongeldig := 0; -- WEGGOOIEN
|
|
|
|
INSERT INTO BLST_IMP_SAP (res_key,
|
|
regel_nr,
|
|
actioncode,
|
|
artikel_nr,
|
|
aantal,
|
|
prijs,
|
|
inkoopprijs,
|
|
leverdatum,
|
|
import_key,
|
|
filename,
|
|
import_guid)
|
|
VALUES (v_res_key,
|
|
v_regelnr,
|
|
v_actioncode_str,
|
|
v_artikelnr_str,
|
|
v_aantal,
|
|
v_incprijs,
|
|
v_excprijs,
|
|
v_leverDatum,
|
|
p_import_key,
|
|
v_currentfile,
|
|
blst.getguid ());
|
|
EXCEPTION
|
|
WHEN OTHERS
|
|
THEN
|
|
oracle_err_num := SQLCODE;
|
|
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
|
|
v_errormsg :=
|
|
v_errormsg
|
|
|| ' ORACLE (error '
|
|
|| oracle_err_num
|
|
|| '/'
|
|
|| oracle_err_mes
|
|
|| ')';
|
|
fac.imp_writelog (
|
|
p_import_key,
|
|
'E',
|
|
v_aanduiding || v_errormsg,
|
|
'Fout bij toevoegen regel aan importtabel SAP_IMPORT.');
|
|
END;
|
|
ELSE
|
|
IF (v_ongeldig = 1)
|
|
THEN
|
|
fac.imp_writelog (p_import_key,
|
|
'E',
|
|
v_errormsg,
|
|
'');
|
|
ELSE
|
|
fac.imp_writelog (p_import_key,
|
|
'W',
|
|
v_errormsg,
|
|
'');
|
|
END IF;
|
|
END IF;
|
|
END IF;
|
|
END;
|
|
END LOOP;
|
|
|
|
-- deze opruimen zodat evt tweede file goed wordt verwerkt.
|
|
DELETE FROM fac_imp_file
|
|
WHERE fac_import_key = p_import_key;
|
|
|
|
COMMIT;
|
|
|
|
IF (header_is_valid = 0)
|
|
THEN
|
|
fac.imp_writelog (p_import_key,
|
|
'E',
|
|
'Ongeldig SAP importbestand',
|
|
'Geen header of header niet volgens specificatie!');
|
|
END IF;
|
|
EXCEPTION
|
|
WHEN OTHERS
|
|
THEN
|
|
oracle_err_num := SQLCODE;
|
|
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
|
|
v_errormsg :=
|
|
v_errormsg
|
|
|| 'ORACLE (error '
|
|
|| oracle_err_num
|
|
|| '/'
|
|
|| oracle_err_mes
|
|
|| ')';
|
|
fac.imp_writelog (p_import_key,
|
|
'E',
|
|
SUBSTR (v_aanduiding || v_errormsg, 1, 1000),
|
|
'Inleesproces opdrachtstatusberichten afgebroken!');
|
|
|
|
-- Bij fouten gaan we ook de huidge import file verwijderen
|
|
DELETE FROM fac_imp_file
|
|
WHERE fac_import_key = p_import_key;
|
|
|
|
COMMIT;
|
|
END;
|
|
/
|
|
|
|
-- Als update dan zoek reservering op, wie is de besteller en welke catalogus heeft de user rechten met het bijbehorende artikelnr die dan toevoegen.
|
|
|
|
CREATE OR REPLACE PROCEDURE BLST_UPDATE_SAP_IMPORT (p_import_key IN NUMBER)
|
|
AS
|
|
CURSOR sel IS
|
|
SELECT imp.res_key res_key,
|
|
imp.regel_nr regel_nr,
|
|
imp.actioncode actioncode,
|
|
imp.aantal imp_aantal,
|
|
imp.artikel_nr imp_artikel_nr,
|
|
imp.prijs incprijs,
|
|
imp.inkoopprijs excprijs,
|
|
imp.leverdatum leverdatum,
|
|
imp.filename currentfile,
|
|
imp.import_guid guid,
|
|
COALESCE (
|
|
(SELECT res_rsv_artikel_key
|
|
FROM blst_exp_sap
|
|
WHERE res_key = imp.res_key
|
|
AND artikel_nr = imp.artikel_nr
|
|
AND regel_nr = imp.regel_nr
|
|
AND aantal > 0),
|
|
0) art_key
|
|
FROM blst_imp_sap imp, res_rsv_ruimte res
|
|
WHERE res.res_rsv_ruimte_key = imp.res_key
|
|
ORDER BY imp.filename, imp.res_key, imp.regel_nr;
|
|
|
|
CURSOR del IS
|
|
SELECT DISTINCT res_key, filename
|
|
FROM blst_imp_sap;
|
|
|
|
v_errormsg VARCHAR (200);
|
|
v_errorhint VARCHAR (200);
|
|
oracle_err_num NUMBER;
|
|
oracle_err_mes VARCHAR2 (200);
|
|
v_mutatie NUMBER := 0;
|
|
v_res_key NUMBER;
|
|
v_aanduiding VARCHAR2 (1000) := '';
|
|
v_artikel_key NUMBER := 0;
|
|
v_extern NUMBER (1);
|
|
v_prijs NUMBER (9, 2);
|
|
v_prijs_char VARCHAR2 (20);
|
|
v_kostensoort VARCHAR2 (60);
|
|
v_BOstatus NUMBER;
|
|
v_currentfile VARCHAR2 (50) := '';
|
|
v_sapid VARCHAR2 (20);
|
|
v_res_key_vorige NUMBER := 0;
|
|
v_reserveringnr VARCHAR2 (15);
|
|
BEGIN
|
|
v_artikel_key := 0;
|
|
v_mutatie := 0;
|
|
|
|
FOR rec IN sel
|
|
LOOP
|
|
v_aanduiding := 'Geen acties voor SAP IMPORT';
|
|
v_errorhint := 'SAP IMPORT';
|
|
v_sapid := blst.getAanvraagNr (rec.res_key, 'RES');
|
|
v_res_key := rec.res_key;
|
|
|
|
|
|
-- als het hier een nieuwe reserverring betreft dan de vorige reservering een tracking update geven
|
|
IF v_res_key <> v_res_key_vorige
|
|
AND v_res_key_vorige <> 0
|
|
AND v_mutatie > 0
|
|
THEN
|
|
SELECT res_reservering_key || '/' || res_rsv_ruimte_volgnr
|
|
INTO v_reserveringnr
|
|
FROM res_rsv_ruimte
|
|
WHERE res_rsv_ruimte_key = v_res_key_vorige;
|
|
|
|
fac.trackaction (
|
|
'RESUPD',
|
|
v_res_key_vorige,
|
|
3,
|
|
SYSDATE,
|
|
'SAP Import : Uw reservering ('
|
|
|| v_reserveringnr
|
|
|| ') is geupdate');
|
|
END IF;
|
|
|
|
v_res_key_vorige := rec.res_key;
|
|
v_mutatie := 0;
|
|
|
|
|
|
v_currentfile := rec.currentfile;
|
|
|
|
SELECT COALESCE (rrr.res_status_bo_key, MAX (rra.res_status_bo_key))
|
|
INTO v_BOstatus
|
|
FROM res_rsv_ruimte rrr, res_rsv_artikel rra
|
|
WHERE rrr.res_rsv_ruimte_key = rec.res_key
|
|
AND rra.res_rsv_ruimte_key = rec.res_key
|
|
GROUP BY rrr.res_status_bo_key, rra.res_status_bo_key;
|
|
|
|
IF v_BOstatus = 2
|
|
THEN
|
|
-- check of de resrevereing voor een extern kosten plaats is
|
|
SELECT kstp.prs_kostenplaats_extern
|
|
INTO v_extern
|
|
FROM res_rsv_ruimte rrr, prs_kostenplaats kstp
|
|
WHERE rrr.res_rsv_ruimte_key = rec.res_key
|
|
AND kstp.prs_kostenplaats_key = rrr.prs_kostenplaats_key;
|
|
|
|
IF rec.actioncode = '02'
|
|
THEN
|
|
-- check welke kostensoort de catalogus heeft
|
|
BEGIN
|
|
v_aanduiding:='Ophalen kostenssoort gaat fout';
|
|
SELECT DISTINCT(COALESCE (art.prs_kostensoort_oms, 'NB'))
|
|
INTO v_kostensoort
|
|
FROM res_rsv_ruimte res,
|
|
prs_perslid pp,
|
|
fac_gebruikersgroep fgg,
|
|
fac_groep fg,
|
|
fac_groeprechten fgr,
|
|
ins_tab_discipline itd,
|
|
(SELECT *
|
|
FROM res_rsv_ruimte rrr,
|
|
res_rsv_artikel rra,
|
|
res_artikel ra,
|
|
ins_tab_discipline itd,
|
|
prs_kostensoort pk
|
|
WHERE rrr.res_rsv_ruimte_key = rec.res_key
|
|
AND rra.res_rsv_artikel_key = rec.art_key
|
|
-- AND rra.res_rsv_ruimte_key =
|
|
-- rrr.res_rsv_ruimte_key
|
|
-- AND rra.res_artikel_key =
|
|
-- ra.res_artikel_key
|
|
-- AND ra.res_artikel_nr = rec.imp_artikel_nr
|
|
-- AND rra.res_rsv_artikel_levering = rec.leverdatum
|
|
AND ra.res_artikel_key=rra.res_artikel_key
|
|
AND ra.res_artikel_verwijder IS NULL
|
|
AND itd.ins_discipline_key =
|
|
ra.res_discipline_key
|
|
AND itd.prs_kostensoort_key =
|
|
pk.prs_kostensoort_key(+)) art
|
|
WHERE res.res_rsv_ruimte_key = rec.res_key
|
|
AND pp.prs_perslid_key =
|
|
res.res_rsv_ruimte_contact_key
|
|
AND fgg.prs_perslid_key = pp.prs_perslid_key
|
|
AND fg.fac_groep_key = fgg.fac_groep_key
|
|
AND fgr.fac_groep_key = fg.fac_groep_key
|
|
AND itd.ins_discipline_key =
|
|
fgr.ins_discipline_key
|
|
AND itd.ins_discipline_key =
|
|
art.ins_discipline_key;
|
|
EXCEPTION
|
|
WHEN NO_DATA_FOUND
|
|
THEN
|
|
v_kostensoort := 'NB';
|
|
END;
|
|
|
|
IF v_kostensoort != 'NB'
|
|
THEN
|
|
IF v_extern = 1
|
|
AND INSTR (UPPER (v_kostensoort),
|
|
'CATERING EXCL. BTW') >
|
|
0
|
|
THEN
|
|
v_prijs := rec.excprijs; -- ex btw prijs
|
|
ELSE
|
|
v_prijs := rec.incprijs; -- incl btw prijs
|
|
END IF;
|
|
v_aanduiding:='Updaten artikel gaat fout gaat fout';
|
|
UPDATE res_rsv_artikel
|
|
SET res_rsv_artikel_aantal = rec.imp_aantal,
|
|
res_rsv_artikel_prijs = v_prijs * rec.imp_aantal, -- res_rsv_artikel is de totaal prijs
|
|
res_rsv_artikel_levering = rec.leverdatum,
|
|
res_rsv_artikel_mutatie = SYSDATE
|
|
WHERE res_rsv_ruimte_key = rec.res_key
|
|
AND res_rsv_artikel_key = rec.art_key
|
|
-- AND res_rsv_artikel_levering = rec.leverdatum -- artikel op de specifieke leverdatum
|
|
AND res_rsv_artikel_aantal > 0;
|
|
|
|
v_mutatie := 1;
|
|
|
|
IF v_prijs < 1
|
|
THEN
|
|
v_prijs_char :=
|
|
'0'
|
|
|| LTRIM (
|
|
TO_CHAR (
|
|
v_prijs,
|
|
'999G999G999D99',
|
|
'NLS_NUMERIC_CHARACTERS = '',.'''));
|
|
ELSE
|
|
v_prijs_char :=
|
|
LTRIM (
|
|
TO_CHAR (v_prijs,
|
|
'999G999G999D99',
|
|
'NLS_NUMERIC_CHARACTERS = '',.'''));
|
|
END IF;
|
|
|
|
v_aanduiding :=
|
|
'SAP import('
|
|
|| v_sapid
|
|
|| '): aanpassing artikelNr ('
|
|
|| rec.imp_artikel_nr
|
|
|| '-'
|
|
|| rec.art_key
|
|
|| ') aantal naar : '
|
|
|| rec.imp_aantal
|
|
|| ' prijs naar: eur '
|
|
|| v_prijs_char
|
|
|| ' leverdatum naar: '
|
|
|| rec.leverdatum;
|
|
fac.trackaction ('RESTRK',
|
|
rec.res_key,
|
|
3,
|
|
SYSDATE,
|
|
v_aanduiding);
|
|
ELSE
|
|
v_aanduiding :=
|
|
'SAP ERROR('
|
|
|| v_sapid
|
|
|| '): Artikel '
|
|
|| rec.imp_artikel_nr
|
|
|| ' is niet beschikbaar in Facilitor';
|
|
fac.trackaction ('RESUPD',
|
|
rec.res_key,
|
|
3,
|
|
SYSDATE,
|
|
v_aanduiding);
|
|
END IF;
|
|
ELSIF rec.actioncode = '01'
|
|
THEN
|
|
-- Uitwelke catalogus komt dit artikel
|
|
BEGIN
|
|
SELECT COALESCE (ra.res_artikel_key, 0),
|
|
COALESCE (pk.prs_kostensoort_oms, 'NB')
|
|
INTO v_artikel_key, v_kostensoort
|
|
FROM res_artikel ra,
|
|
ins_tab_discipline itd,
|
|
prs_kostensoort pk
|
|
WHERE ra.res_artikel_nr = rec.imp_artikel_nr
|
|
AND ra.res_artikel_verwijder IS NULL
|
|
AND itd.ins_discipline_key = ra.res_discipline_key
|
|
AND itd.prs_kostensoort_key =
|
|
pk.prs_kostensoort_key(+)
|
|
AND ra.res_discipline_key IN
|
|
(SELECT itd.ins_discipline_key
|
|
FROM res_rsv_ruimte res,
|
|
prs_perslid pp,
|
|
fac_gebruikersgroep fgg,
|
|
fac_groep fg,
|
|
fac_groeprechten fgr,
|
|
ins_tab_discipline itd
|
|
WHERE res.res_rsv_ruimte_key =
|
|
rec.res_key
|
|
AND pp.prs_perslid_key =
|
|
res.res_rsv_ruimte_contact_key
|
|
AND fgg.prs_perslid_key =
|
|
pp.prs_perslid_key
|
|
AND fg.fac_groep_key =
|
|
fgg.fac_groep_key
|
|
AND fgr.fac_groep_key =
|
|
fg.fac_groep_key
|
|
AND itd.ins_discipline_key =
|
|
fgr.ins_discipline_key
|
|
AND UPPER (
|
|
itd.ins_discipline_externnr) =
|
|
'CATERING');
|
|
EXCEPTION
|
|
WHEN NO_DATA_FOUND
|
|
THEN
|
|
v_artikel_key := -1;
|
|
END;
|
|
|
|
|
|
|
|
IF v_artikel_key > 0
|
|
THEN
|
|
IF v_extern = 1
|
|
AND INSTR (UPPER (v_kostensoort),
|
|
'CATERING EXCL. BTW') >
|
|
0
|
|
THEN
|
|
v_prijs := rec.excprijs; -- ex btw prijs
|
|
ELSE
|
|
v_prijs := rec.incprijs; -- incl btw prijs
|
|
END IF;
|
|
|
|
-- Artikel is gevonden
|
|
INSERT INTO res_rsv_artikel (res_artikel_key,
|
|
res_rsv_artikel_aantal,
|
|
res_status_bo_key,
|
|
res_rsv_ruimte_key,
|
|
res_rsv_artikel_prijs,
|
|
res_rsv_artikel_approved,
|
|
res_rsv_artikel_levering,
|
|
res_rsv_artikel_aanmaak)
|
|
VALUES (v_artikel_key,
|
|
rec.imp_aantal,
|
|
2,
|
|
rec.res_key,
|
|
v_prijs * rec.imp_aantal,
|
|
1,
|
|
rec.leverdatum,
|
|
SYSDATE);
|
|
|
|
IF v_prijs < 1
|
|
THEN
|
|
v_prijs_char :=
|
|
'0'
|
|
|| LTRIM (
|
|
TO_CHAR (
|
|
v_prijs,
|
|
'999G999G999D99',
|
|
'NLS_NUMERIC_CHARACTERS = '',.'''));
|
|
ELSE
|
|
v_prijs_char :=
|
|
LTRIM (
|
|
TO_CHAR (v_prijs,
|
|
'999G999G999D99',
|
|
'NLS_NUMERIC_CHARACTERS = '',.'''));
|
|
END IF;
|
|
|
|
v_mutatie := 1;
|
|
v_aanduiding :=
|
|
'SAP import('
|
|
|| v_sapid
|
|
|| '): Artikel toegevoegd '
|
|
|| rec.imp_artikel_nr
|
|
|| ' met aantal '
|
|
|| rec.imp_aantal
|
|
|| ' en prijs eur '
|
|
|| v_prijs_char;
|
|
fac.trackaction ('RESTRK',
|
|
rec.res_key,
|
|
3,
|
|
SYSDATE,
|
|
v_aanduiding);
|
|
ELSE
|
|
v_aanduiding :=
|
|
'SAP ERROR('
|
|
|| v_sapid
|
|
|| '): Artikel '
|
|
|| rec.imp_artikel_nr
|
|
|| ' is niet beschikbaar in Facilitor';
|
|
fac.trackaction ('RESTRK',
|
|
rec.res_key,
|
|
3,
|
|
SYSDATE,
|
|
v_aanduiding);
|
|
END IF;
|
|
ELSIF rec.actioncode = '03'
|
|
THEN
|
|
UPDATE res_rsv_artikel
|
|
SET res_rsv_artikel_aantal = 0
|
|
WHERE res_rsv_ruimte_key = rec.res_key
|
|
AND res_rsv_artikel_key = rec.art_key;
|
|
|
|
v_mutatie := 1;
|
|
v_aanduiding :=
|
|
'SAP import('
|
|
|| v_sapid
|
|
|| '): verwijderen artikelNr ('
|
|
|| rec.imp_artikel_nr
|
|
|| ') aantal naar : 0';
|
|
|
|
fac.trackaction ('RESTRK',
|
|
rec.res_key,
|
|
3,
|
|
SYSDATE,
|
|
v_aanduiding);
|
|
ELSIF rec.actioncode = '04'
|
|
THEN
|
|
UPDATE res_rsv_artikel
|
|
SET res_rsv_artikel_aantal = 0
|
|
WHERE res_rsv_ruimte_key = rec.res_key;
|
|
|
|
v_mutatie := 1;
|
|
v_aanduiding :=
|
|
'SAP import: CancelRequest aantal alle artikelen naar 0';
|
|
|
|
fac.trackaction ('RESTRK',
|
|
rec.res_key,
|
|
3,
|
|
SYSDATE,
|
|
v_aanduiding);
|
|
END IF;
|
|
ELSE
|
|
v_aanduiding :=
|
|
'SAP ERROR('
|
|
|| v_sapid
|
|
|| '): Wijziging onvangen op reeds afgemelde reservering, deze is niet verwerkt !';
|
|
fac.trackaction ('RESUPD',
|
|
rec.res_key,
|
|
3,
|
|
SYSDATE,
|
|
v_aanduiding);
|
|
END IF;
|
|
|
|
|
|
fac.imp_writelog (p_import_key,
|
|
'S',
|
|
v_aanduiding,
|
|
v_errorhint);
|
|
|
|
DELETE FROM blst_imp_sap
|
|
WHERE import_key = p_import_key AND import_guid = rec.guid;
|
|
END LOOP;
|
|
|
|
FOR rec_del IN DEL
|
|
LOOP
|
|
fac.imp_writelog (
|
|
p_import_key,
|
|
'E',
|
|
'SAP ERROR (' || v_sapid || ') in bestand ' || rec_del.filename,
|
|
'FOUT IN VERWERKING SAP IMPORT');
|
|
|
|
DELETE FROM blst_imp_sap
|
|
WHERE res_key = rec_del.res_key; -- Fout id gelogged dus nu opruimen
|
|
END LOOP;
|
|
|
|
IF v_mutatie > 0
|
|
THEN
|
|
SELECT res_reservering_key || '/' || res_rsv_ruimte_volgnr
|
|
INTO v_reserveringnr
|
|
FROM res_rsv_ruimte
|
|
WHERE res_rsv_ruimte_key = v_res_key;
|
|
|
|
fac.trackaction (
|
|
'RESUPD',
|
|
v_res_key,
|
|
3,
|
|
SYSDATE,
|
|
'SAP Import : Uw reservering ('
|
|
|| v_reserveringnr
|
|
|| ') is geupdate');
|
|
END IF;
|
|
|
|
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.imp_writelog (p_import_key,
|
|
'E',
|
|
v_errormsg || v_aanduiding,
|
|
v_errorhint);
|
|
|
|
-- Ook als we een fout hebben de boel opruimen van de foute xml file anders blijven we er last van houden.
|
|
DELETE FROM blst_imp_sap
|
|
WHERE import_key = p_import_key AND filename = v_currentfile;
|
|
END;
|
|
/
|
|
|
|
CREATE OR REPLACE VIEW BLST_V_RAP_EXP_CATERING
|
|
AS
|
|
SELECT DISTINCT
|
|
r.sap_ordernr,
|
|
r.res_key
|
|
res_rsv_ruimte_key,
|
|
r.res_reservering_key,
|
|
r.res_reservering_key || '/' || r.res_rsv_ruimte_volgnr
|
|
reservering,
|
|
ra.res_status_bo_key
|
|
status_key,
|
|
bs.res_status_bo_omschrijving
|
|
status_omschrijving,
|
|
fs.res_status_fo_omschrijving
|
|
adm_status,
|
|
cat.ins_discipline_omschrijving
|
|
catalogus,
|
|
cat.ins_discipline_externnr
|
|
externnr,
|
|
fac.safe_to_date (
|
|
TO_CHAR (ra.res_rsv_artikel_levering, 'DD-MM-YYYY'),
|
|
'DD-MM-YYYY')
|
|
leverdatum,
|
|
TO_CHAR (ra.res_rsv_artikel_levering, 'HH24:MI')
|
|
levertijd_artikel,
|
|
cat_set.res_disc_params_expire_dagen
|
|
wijzigingshorizon,
|
|
cat_set.res_disc_params_expire_tijd
|
|
grens_wijzigingshorizon,
|
|
wd.berekende_grens_wijz_hrz
|
|
grens_wijzigingshrz,
|
|
cat_set.res_disc_params_cancel_dagen
|
|
annuleringshorizon,
|
|
ad.berekende_grens_ann_hrz
|
|
grens_annuleringshrz,
|
|
a.res_artikel_nr,
|
|
a.res_artikel_omschrijving,
|
|
a.res_artikel_inkoopprijs
|
|
inkooprijs,
|
|
a.res_artikel_prijs
|
|
eenh_prijs,
|
|
ra.res_rsv_artikel_key,
|
|
ra.res_rsv_artikel_aantal
|
|
aantal,
|
|
res.getartikelprijs (ra.res_rsv_artikel_key)
|
|
tot_bedrag,
|
|
CASE
|
|
WHEN r.approved = 1 THEN 'Fiattering vereist'
|
|
ELSE 'Geen fiattering'
|
|
END
|
|
AS fiat_nodig,
|
|
DECODE (ra.res_rsv_artikel_approved,
|
|
0, 'Niet gefiatteerd',
|
|
1, 'Goedgekeurd',
|
|
2, 'Afgewezen',
|
|
'Onbekend')
|
|
art_gefiat,
|
|
cat_set.res_disc_params_threshold
|
|
fiatterings_drempel,
|
|
b.prs_bedrijf_naam
|
|
leverancier,
|
|
b.prs_leverancier_nr
|
|
leveranciersnr,
|
|
r.straat,
|
|
r.nummer,
|
|
r.postcode,
|
|
r.plaats,
|
|
r.gebouw,
|
|
r.besteller,
|
|
r.debiteurnr,
|
|
DECODE (r.extern, '1', 'Extern', 'Intern')
|
|
int_ext,
|
|
(SELECT res_kenmerkreservering_waarde
|
|
FROM res_kenmerkwaarde ken
|
|
WHERE r.res_key = ken.res_rsv_ruimte_key
|
|
AND ken.res_kenmerk_key IN (1, 2, 3))
|
|
klantRef,
|
|
r.wensen
|
|
speciale_wensen,
|
|
r.last_upd
|
|
last_resupd,
|
|
r.last_export
|
|
last_SAP_exp,
|
|
r.delete_date
|
|
res_verw_datum
|
|
FROM (SELECT DISTINCT
|
|
res.res_rsv_ruimte_key
|
|
res_key,
|
|
res.res_reservering_key
|
|
res_reservering_key,
|
|
res.res_rsv_ruimte_volgnr
|
|
res_rsv_ruimte_volgnr,
|
|
(SELECT MAX (fac_tracking_datum)
|
|
FROM fac_tracking
|
|
WHERE fac_tracking_refkey = res.res_rsv_ruimte_key
|
|
AND fac_srtnotificatie_key = 108)
|
|
last_upd,
|
|
res.res_rsv_ruimte_externsyncdate
|
|
last_export,
|
|
res.res_rsv_ruimte_verwijder
|
|
delete_date,
|
|
alg.alg_ruimte_nr
|
|
ruimte,
|
|
(SELECT alg_onrgoedkenmerk_waarde
|
|
FROM alg_onrgoedkenmerk ken
|
|
WHERE ken.alg_onrgoed_key = alg.alg_gebouw_key
|
|
AND ken.alg_kenmerk_key = 1071)
|
|
straat, -- alg_gebouw kenmerk tbv straat
|
|
(SELECT alg_onrgoedkenmerk_waarde
|
|
FROM alg_onrgoedkenmerk ken
|
|
WHERE ken.alg_onrgoed_key = alg.alg_gebouw_key
|
|
AND ken.alg_kenmerk_key = 1200)
|
|
nummer, -- alg_gebouw kenmerk tbv nummer
|
|
(SELECT alg_onrgoedkenmerk_waarde
|
|
FROM alg_onrgoedkenmerk ken
|
|
WHERE ken.alg_onrgoed_key = alg.alg_gebouw_key
|
|
AND ken.alg_kenmerk_key = 1072)
|
|
postcode, -- alg_gebouw kenmerk tbv postciode
|
|
(SELECT alg_onrgoedkenmerk_waarde
|
|
FROM alg_onrgoedkenmerk ken
|
|
WHERE ken.alg_onrgoed_key = alg.alg_gebouw_key
|
|
AND ken.alg_kenmerk_key = 1073)
|
|
plaats, -- alg_gebouw kenmerk tbv plaats
|
|
(SELECT gb.alg_gebouw_code
|
|
FROM alg_gebouw gb
|
|
WHERE gb.alg_gebouw_key = alg.alg_gebouw_key)
|
|
gebouw,
|
|
res.res_rsv_ruimte_van
|
|
datum_van,
|
|
res.res_rsv_ruimte_tot
|
|
datum_tot,
|
|
res.res_rsv_ruimte_omschrijving
|
|
oms,
|
|
(SELECT prs_perslid_naam_friendly
|
|
FROM prs_v_perslid_fullnames
|
|
WHERE prs_perslid_key = res.res_rsv_ruimte_contact_key)
|
|
besteller,
|
|
(SELECT prs_perslid_naam_friendly
|
|
FROM prs_v_perslid_fullnames
|
|
WHERE prs_perslid_key = res.res_rsv_ruimte_contact_key)
|
|
userid,
|
|
kstp.prs_kostenplaats_nr
|
|
debiteurnr,
|
|
kstp.prs_kostenplaats_extern
|
|
extern,
|
|
(SELECT res_kenmerkreservering_waarde
|
|
FROM res_kenmerkwaarde ken
|
|
WHERE res_rsv_ruimte_key = res.res_rsv_ruimte_key
|
|
AND res_kenmerk_key IN (21,
|
|
22,
|
|
23,
|
|
24,
|
|
25,
|
|
26))
|
|
wensen,
|
|
(SELECT res_kenmerkreservering_waarde
|
|
FROM res_kenmerkwaarde ken
|
|
WHERE res_rsv_ruimte_key = res.res_rsv_ruimte_key
|
|
AND res_kenmerk_key IN (41,
|
|
42,
|
|
43,
|
|
44,
|
|
45,
|
|
46))
|
|
sap_ordernr,
|
|
res.res_rsv_ruimte_cat_appr
|
|
approved
|
|
FROM res_rsv_ruimte res,
|
|
res_rsv_artikel rar,
|
|
res_ruimte_opstelling rop,
|
|
res_ruimte rer,
|
|
res_alg_ruimte rarm,
|
|
alg_v_ruimte_gegevens_all alg,
|
|
prs_kostenplaats kstp
|
|
WHERE res.res_rsv_ruimte_verwijder IS NULL
|
|
AND rar.res_rsv_ruimte_key = res.res_rsv_ruimte_key
|
|
AND res.res_ruimte_opstel_key = rop.res_ruimte_opstel_key
|
|
AND rer.res_ruimte_key = rop.res_ruimte_key
|
|
AND rarm.res_ruimte_key = rer.res_ruimte_key
|
|
AND alg.alg_ruimte_key = rarm.alg_ruimte_key
|
|
AND kstp.prs_kostenplaats_key = res.prs_kostenplaats_key
|
|
UNION ALL
|
|
SELECT DISTINCT
|
|
res.res_rsv_ruimte_key
|
|
res_key,
|
|
res.res_reservering_key,
|
|
res.res_rsv_ruimte_volgnr,
|
|
(SELECT MAX (fac_tracking_datum)
|
|
FROM fac_tracking
|
|
WHERE fac_tracking_refkey =
|
|
res.res_rsv_ruimte_key
|
|
AND fac_srtnotificatie_key = 108)
|
|
last_upd,
|
|
res.res_rsv_ruimte_externsyncdate
|
|
last_export,
|
|
res.res_rsv_ruimte_verwijder
|
|
delete_date,
|
|
alg.alg_ruimte_nr
|
|
ruimte,
|
|
(SELECT alg_onrgoedkenmerk_waarde
|
|
FROM alg_onrgoedkenmerk ken
|
|
WHERE ken.alg_onrgoed_key = alg.alg_gebouw_key
|
|
AND ken.alg_kenmerk_key = 1071)
|
|
straat, -- alg_gebouw kenmerk tbv straat
|
|
(SELECT alg_onrgoedkenmerk_waarde
|
|
FROM alg_onrgoedkenmerk ken
|
|
WHERE ken.alg_onrgoed_key = alg.alg_gebouw_key
|
|
AND ken.alg_kenmerk_key = 1200)
|
|
nummer, -- alg_gebouw kenmerk tbv nummer
|
|
(SELECT alg_onrgoedkenmerk_waarde
|
|
FROM alg_onrgoedkenmerk ken
|
|
WHERE ken.alg_onrgoed_key = alg.alg_gebouw_key
|
|
AND ken.alg_kenmerk_key = 1072)
|
|
postcode, -- alg_gebouw kenmerk tbv postciode
|
|
(SELECT alg_onrgoedkenmerk_waarde
|
|
FROM alg_onrgoedkenmerk ken
|
|
WHERE ken.alg_onrgoed_key = alg.alg_gebouw_key
|
|
AND ken.alg_kenmerk_key = 1073)
|
|
plaats, -- alg_gebouw kenmerk tbv plaats
|
|
(SELECT gb.alg_gebouw_code
|
|
FROM alg_gebouw gb
|
|
WHERE gb.alg_gebouw_key = alg.alg_gebouw_key)
|
|
gebouw,
|
|
res.res_rsv_ruimte_van
|
|
datum_van,
|
|
res.res_rsv_ruimte_tot
|
|
datum_tot,
|
|
res.res_rsv_ruimte_omschrijving
|
|
oms,
|
|
(SELECT prs_perslid_naam_friendly
|
|
FROM prs_v_perslid_fullnames
|
|
WHERE prs_perslid_key = res.res_rsv_ruimte_contact_key)
|
|
besteller,
|
|
(SELECT prs_perslid_naam_friendly
|
|
FROM prs_v_perslid_fullnames
|
|
WHERE prs_perslid_key = res.res_rsv_ruimte_contact_key)
|
|
userid,
|
|
kstp.prs_kostenplaats_nr
|
|
debiteurnr,
|
|
kstp.prs_kostenplaats_extern
|
|
extern,
|
|
(SELECT res_kenmerkreservering_waarde
|
|
FROM res_kenmerkwaarde ken
|
|
WHERE res_rsv_ruimte_key = res.res_rsv_ruimte_key
|
|
AND res_kenmerk_key IN (21,
|
|
22,
|
|
23,
|
|
24,
|
|
25,
|
|
26))
|
|
wensen,
|
|
(SELECT res_kenmerkreservering_waarde
|
|
FROM res_kenmerkwaarde ken
|
|
WHERE res_rsv_ruimte_key = res.res_rsv_ruimte_key
|
|
AND res_kenmerk_key IN (41,
|
|
42,
|
|
43,
|
|
44,
|
|
45,
|
|
46))
|
|
sap_ordernr,
|
|
res.res_rsv_ruimte_cat_appr
|
|
approved
|
|
FROM res_rsv_ruimte res,
|
|
res_rsv_artikel rar,
|
|
alg_v_ruimte_gegevens_all alg,
|
|
prs_kostenplaats kstp
|
|
WHERE res.res_rsv_ruimte_verwijder IS NULL
|
|
AND rar.res_rsv_ruimte_key = res.res_rsv_ruimte_key
|
|
AND alg.alg_ruimte_key = res.alg_ruimte_key
|
|
AND kstp.prs_kostenplaats_key = res.prs_kostenplaats_key)
|
|
r,
|
|
res_rsv_artikel ra,
|
|
res_rsv_ruimte rr,
|
|
res_artikel a,
|
|
ins_tab_discipline cat,
|
|
res_disc_params cat_set,
|
|
prs_bedrijf b,
|
|
res_status_bo bs,
|
|
res_status_fo fs,
|
|
blst_v_rap_wijzigingsdatum wd,
|
|
blst_v_rap_annuleringsdatum ad
|
|
WHERE r.res_key = ra.res_rsv_ruimte_key
|
|
AND ra.res_artikel_key = a.res_artikel_key
|
|
AND r.res_key = rr.res_rsv_ruimte_key
|
|
AND cat.ins_discipline_key = a.res_discipline_key
|
|
AND cat.ins_discipline_key = cat_set.res_ins_discipline_key
|
|
AND cat_set.prs_bedrijf_key = b.prs_bedrijf_key
|
|
AND ra.res_status_bo_key = bs.res_status_bo_key
|
|
AND rr.res_status_fo_key = fs.res_status_fo_key
|
|
AND wd.res_rsv_artikel_key = ra.res_rsv_artikel_key
|
|
AND ad.res_rsv_artikel_key = ra.res_rsv_artikel_key
|
|
ORDER BY r.res_key;
|
|
|
|
--de daily task draait elke ochtend om 5 uur.
|
|
|
|
CREATE OR REPLACE PROCEDURE blst_daily
|
|
AS
|
|
BEGIN
|
|
-- inactiveren personen die 12 maanden niet hebben ingelogd
|
|
blst.inactivate_prs ();
|
|
|
|
-- anonimiseer bezoekers
|
|
blst.anonimiseer_bezoeker ();
|
|
|
|
-- automatisch afmelden reserveringen met catering/losse catering aanvragen
|
|
blst.afmelden_reserveringen ();
|
|
|
|
-- notificatiejob voor bezoekers die 'morgen' een afspraak hebben of vandaag en nog niet genotificeerd (lastminute)
|
|
blst.noti_bezoek ();
|
|
|
|
-- archiveren uitleenregistratie
|
|
blst.archiveer_uitleen();
|
|
|
|
END;
|
|
/
|
|
|
|
CREATE OR REPLACE PROCEDURE blst_export_werkplekken (
|
|
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_errormsg VARCHAR2 (200);
|
|
v_aanduiding VARCHAR2 (200);
|
|
v_errorhint VARCHAR2 (200);
|
|
v_perslid_key NUMBER;
|
|
|
|
-- de werkplekken die alle mdw van de Belastingdienst moeten krijgen
|
|
CURSOR intern IS
|
|
SELECT prs.prs_perslid_key, wp.alg_ruimte_key
|
|
FROM (SELECT a.prs_afdeling_key,
|
|
p.prs_perslid_key,
|
|
p.prs_perslid_naam,
|
|
bu.prs_afdeling_upper
|
|
FROM prs_afdeling a, prs_perslid p, prs_afdeling bu
|
|
WHERE a.prs_afdeling_parentkey = 21
|
|
AND p.prs_perslid_verwijder IS NULL
|
|
AND p.prs_afdeling_key = a.prs_afdeling_key
|
|
AND bu.prs_afdeling_key = a.prs_afdeling_parentkey
|
|
UNION ALL
|
|
SELECT a.prs_afdeling_key,
|
|
p.prs_perslid_key,
|
|
p.prs_perslid_naam,
|
|
a.prs_afdeling_upper
|
|
FROM prs_afdeling a, prs_perslid p
|
|
WHERE a.prs_afdeling_key = 21
|
|
AND p.prs_perslid_verwijder IS NULL
|
|
AND p.prs_afdeling_key = a.prs_afdeling_key) prs, --- selectie van alle personen die rechtstreeks of op een lager level voor de BD werken
|
|
(SELECT r.alg_ruimte_key,
|
|
UPPER (ud.fac_usrdata_omschr) afdeling
|
|
FROM fac_usrtab ut,
|
|
fac_usrdata ud,
|
|
alg_gebouw g,
|
|
alg_verdieping v,
|
|
alg_ruimte r
|
|
WHERE UPPER (ut.fac_usrtab_naam) = 'WERKPLEKKEN BD'
|
|
AND ut.fac_usrtab_key = ud.fac_usrtab_key
|
|
AND ut.fac_usrtab_verwijder IS NULL
|
|
AND ( ud.fac_usrdata_vervaldatum > SYSDATE
|
|
OR ud.fac_usrdata_vervaldatum IS NULL)
|
|
AND ud.fac_usrdata_verwijder IS NULL
|
|
AND fac.safe_to_number (ud.fac_usrdata_prijs) =
|
|
fac.safe_to_number (g.alg_gebouw_code)
|
|
AND v.alg_gebouw_key = g.alg_gebouw_key
|
|
AND r.alg_verdieping_key = v.alg_verdieping_key
|
|
AND r.alg_ruimte_nr = '_000'
|
|
AND r.alg_ruimte_verwijder IS NULL
|
|
AND v.alg_verdieping_verwijder IS NULL
|
|
AND UPPER (ud.fac_usrdata_omschr) = 'BD') wp --- alle werkplekken (dummy ruimte per gebouw) waar deze medewerkers een werkplek zouden moeten hebben
|
|
WHERE wp.afdeling = prs.prs_afdeling_upper
|
|
AND NOT EXISTS ---- maar welke dus nog ontbreken
|
|
(SELECT pw.prs_perslid_key
|
|
FROM prs_perslidwerkplek pw, prs_werkplek w
|
|
WHERE pw.prs_werkplek_key = w.prs_werkplek_key
|
|
AND w.prs_alg_ruimte_key = wp.alg_ruimte_key
|
|
AND pw.prs_perslid_key = prs.prs_perslid_key);
|
|
|
|
-- werkplekken die alleen bepaalde afdelingen van de BD moeten krijgen
|
|
CURSOR intern_spec IS
|
|
SELECT p.prs_perslid_key, r.alg_ruimte_key
|
|
FROM fac_usrtab ut,
|
|
fac_usrdata ud,
|
|
prs_afdeling a,
|
|
prs_perslid p,
|
|
alg_gebouw g,
|
|
alg_verdieping v,
|
|
alg_ruimte r
|
|
WHERE UPPER (ut.fac_usrtab_naam) = 'WERKPLEKKEN BD'
|
|
AND ut.fac_usrtab_key = ud.fac_usrtab_key
|
|
AND ut.fac_usrtab_verwijder IS NULL
|
|
AND ( ud.fac_usrdata_vervaldatum > SYSDATE
|
|
OR ud.fac_usrdata_vervaldatum IS NULL)
|
|
AND ud.fac_usrdata_verwijder IS NULL
|
|
AND UPPER (ud.fac_usrdata_omschr) = a.prs_afdeling_upper
|
|
AND fac.safe_to_number (ud.fac_usrdata_prijs) =
|
|
fac.safe_to_number (g.alg_gebouw_code)
|
|
AND p.prs_afdeling_key = a.prs_afdeling_key
|
|
AND p.prs_perslid_verwijder IS NULL
|
|
AND v.alg_gebouw_key = g.alg_gebouw_key
|
|
AND r.alg_verdieping_key = v.alg_verdieping_key
|
|
AND r.alg_ruimte_nr = '_000'
|
|
AND r.alg_ruimte_verwijder IS NULL
|
|
AND v.alg_verdieping_verwijder IS NULL
|
|
AND EXISTS
|
|
(SELECT prs_afdeling_key
|
|
FROM prs_afdeling a
|
|
WHERE a.prs_afdeling_parentkey = 21
|
|
AND p.prs_afdeling_key = a.prs_afdeling_key)
|
|
AND NOT EXISTS
|
|
(SELECT pw.prs_perslid_key
|
|
FROM prs_perslidwerkplek pw, prs_werkplek w
|
|
WHERE pw.prs_werkplek_key = w.prs_werkplek_key
|
|
AND pw.prs_perslid_key = p.prs_perslid_key
|
|
AND w.prs_alg_ruimte_key = r.alg_ruimte_key);
|
|
|
|
--- werkplekken voor bepaalde externe organisaties
|
|
CURSOR extern IS
|
|
SELECT prs.prs_perslid_key, wp.alg_ruimte_key
|
|
FROM (SELECT a.prs_afdeling_key,
|
|
p.prs_perslid_key,
|
|
p.prs_perslid_naam,
|
|
bu.prs_afdeling_upper
|
|
FROM prs_afdeling a, prs_perslid p, prs_afdeling bu
|
|
WHERE p.prs_perslid_verwijder IS NULL
|
|
AND p.prs_afdeling_key = a.prs_afdeling_key
|
|
AND bu.prs_afdeling_key = a.prs_afdeling_parentkey
|
|
AND NOT EXISTS
|
|
(SELECT prs_afdeling_key
|
|
FROM prs_afdeling a
|
|
WHERE ( a.prs_afdeling_parentkey = 21
|
|
OR a.prs_afdeling_key = 21)
|
|
AND p.prs_afdeling_key =
|
|
a.prs_afdeling_key)
|
|
UNION ALL
|
|
SELECT a.prs_afdeling_key,
|
|
p.prs_perslid_key,
|
|
p.prs_perslid_naam,
|
|
a.prs_afdeling_upper
|
|
FROM prs_afdeling a, prs_perslid p
|
|
WHERE p.prs_perslid_verwijder IS NULL
|
|
AND p.prs_afdeling_key = a.prs_afdeling_key
|
|
AND NOT EXISTS
|
|
(SELECT prs_afdeling_key
|
|
FROM prs_afdeling a
|
|
WHERE ( a.prs_afdeling_parentkey = 21
|
|
OR a.prs_afdeling_key = 21)
|
|
AND p.prs_afdeling_key =
|
|
a.prs_afdeling_key)) prs, --- selectie van alle personen die niet voor de BD werken
|
|
(SELECT r.alg_ruimte_key,
|
|
UPPER (ud.fac_usrdata_omschr) afdeling
|
|
FROM fac_usrtab ut,
|
|
fac_usrdata ud,
|
|
alg_gebouw g,
|
|
alg_verdieping v,
|
|
alg_ruimte r
|
|
WHERE UPPER (ut.fac_usrtab_naam) = 'WERKPLEKKEN EXT'
|
|
AND ut.fac_usrtab_key = ud.fac_usrtab_key
|
|
AND ut.fac_usrtab_verwijder IS NULL
|
|
AND ( ud.fac_usrdata_vervaldatum > SYSDATE
|
|
OR ud.fac_usrdata_vervaldatum IS NULL)
|
|
AND ud.fac_usrdata_verwijder IS NULL
|
|
AND fac.safe_to_number (ud.fac_usrdata_prijs) =
|
|
fac.safe_to_number (g.alg_gebouw_code)
|
|
AND v.alg_gebouw_key = g.alg_gebouw_key
|
|
AND r.alg_verdieping_key = v.alg_verdieping_key
|
|
AND r.alg_ruimte_nr = '_000'
|
|
AND r.alg_ruimte_verwijder IS NULL
|
|
AND v.alg_verdieping_verwijder IS NULL) wp --- alle werkplekken (dummy ruimte per gebouw) waar deze medewerkers een werkplek zouden moeten hebben
|
|
WHERE wp.afdeling = prs.prs_afdeling_upper
|
|
AND NOT EXISTS ---- maar welke dus nog ontbreken
|
|
(SELECT pw.prs_perslid_key
|
|
FROM prs_perslidwerkplek pw, prs_werkplek w
|
|
WHERE pw.prs_werkplek_key = w.prs_werkplek_key
|
|
AND w.prs_alg_ruimte_key = wp.alg_ruimte_key
|
|
AND pw.prs_perslid_key = prs.prs_perslid_key);
|
|
BEGIN
|
|
-- we gooien alle werkplekken weg en beginnen daarna opnieuw
|
|
DELETE prs_perslidwerkplek;
|
|
|
|
FOR REC IN intern
|
|
LOOP
|
|
v_perslid_key := rec.prs_perslid_key;
|
|
v_aanduiding := 'Perslidkey: ' || rec.prs_perslid_key;
|
|
v_errorhint :=
|
|
'Werkplek koppelen voor BD perslid: ' || rec.prs_perslid_key;
|
|
|
|
BEGIN
|
|
prs.movetoruimte (v_perslid_key, rec.alg_ruimte_key, '');
|
|
EXCEPTION
|
|
WHEN OTHERS
|
|
THEN
|
|
oracle_err_num := SQLCODE;
|
|
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
|
|
fac.writelog (
|
|
'Toewijzen werkplek BD medewerker',
|
|
'E',
|
|
'Error '
|
|
|| v_aanduiding
|
|
|| oracle_err_num
|
|
|| '/'
|
|
|| oracle_err_mes,
|
|
v_errorhint);
|
|
END;
|
|
END LOOP;
|
|
|
|
FOR REC IN intern_spec
|
|
LOOP
|
|
v_perslid_key := rec.prs_perslid_key;
|
|
v_aanduiding := 'Perslidkey: ' || rec.prs_perslid_key;
|
|
v_errorhint :=
|
|
'Afdelingsspec. werkplek koppelen voor BD perslid: '
|
|
|| rec.prs_perslid_key;
|
|
|
|
BEGIN
|
|
prs.movetoruimte (v_perslid_key, rec.alg_ruimte_key, '');
|
|
EXCEPTION
|
|
WHEN OTHERS
|
|
THEN
|
|
oracle_err_num := SQLCODE;
|
|
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
|
|
fac.writelog (
|
|
'Toewijzen afdelingsspec. werkplek BD',
|
|
'E',
|
|
'Error '
|
|
|| v_aanduiding
|
|
|| oracle_err_num
|
|
|| '/'
|
|
|| oracle_err_mes,
|
|
v_errorhint);
|
|
END;
|
|
END LOOP;
|
|
|
|
FOR REC IN extern
|
|
LOOP
|
|
v_aanduiding := 'Perslidkey: ' || rec.prs_perslid_key;
|
|
v_errorhint :=
|
|
'Werkplek koppelen voor extern perslid: ' || rec.prs_perslid_key;
|
|
|
|
BEGIN
|
|
prs.movetoruimte (rec.prs_perslid_key, rec.alg_ruimte_key, '');
|
|
EXCEPTION
|
|
WHEN OTHERS
|
|
THEN
|
|
oracle_err_num := SQLCODE;
|
|
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
|
|
fac.writelog (
|
|
'Toewijzen externe werkplekken',
|
|
'E',
|
|
'Error '
|
|
|| v_aanduiding
|
|
|| oracle_err_num
|
|
|| '/'
|
|
|| oracle_err_mes,
|
|
v_errorhint);
|
|
END;
|
|
END LOOP;
|
|
END;
|
|
/
|
|
CREATE OR REPLACE VIEW BLST_V_RAP_RES_MOB
|
|
(
|
|
HIDE_F_SRT,
|
|
NR,
|
|
FCLT_F_GEBOUW,
|
|
DATUM,
|
|
BEGINTIJD,
|
|
EINDTIJD,
|
|
FCLT_F_RUIMTE,
|
|
OPSTELLING,
|
|
AANTAL,
|
|
OMSCHRIJVING,
|
|
RES_RSV_RUIMTE_KEY,
|
|
RES_RUIMTE_KEY
|
|
)
|
|
AS
|
|
SELECT DISTINCT
|
|
TO_CHAR (rr.res_rsv_ruimte_van, 'yyyy-mm-dd')
|
|
|| rg.alg_gebouw_upper
|
|
|| TO_CHAR (rr.res_rsv_ruimte_van, 'hh24:mi')
|
|
hide_f_srt,
|
|
rr.res_reservering_key || '/' || rr.res_rsv_ruimte_volgnr
|
|
nr,
|
|
rg.alg_gebouw_omschrijving
|
|
fclt_f_gebouw,
|
|
rr.res_rsv_ruimte_van
|
|
datum,
|
|
TO_CHAR (rr.res_rsv_ruimte_van, 'hh24:mi')
|
|
begintijd,
|
|
TO_CHAR (rr.res_rsv_ruimte_tot, 'hh24:mi')
|
|
eindtijd,
|
|
r.res_ruimte_nr
|
|
fclt_f_ruimte,
|
|
o.res_opstelling_omschrijving
|
|
opstelling,
|
|
COALESCE(rr.res_rsv_ruimte_bezoekers_shown, rr.res_rsv_ruimte_bezoekers)
|
|
aantal,
|
|
rr.res_rsv_ruimte_omschrijving
|
|
omschrijving,
|
|
rr.res_rsv_ruimte_key,
|
|
r.res_ruimte_key
|
|
FROM res_rsv_ruimte rr,
|
|
res_ruimte_opstelling ro,
|
|
res_opstelling o,
|
|
res_ruimte r,
|
|
res_alg_ruimte ar,
|
|
alg_v_ruimte_gegevens rg
|
|
WHERE rr.res_rsv_ruimte_verwijder IS NULL
|
|
AND ro.res_ruimte_opstel_key = rr.res_ruimte_opstel_key
|
|
AND o.res_opstelling_key = ro.res_opstelling_key
|
|
AND r.res_ruimte_key = ro.res_ruimte_key
|
|
AND ar.res_ruimte_key = r.res_ruimte_key
|
|
AND ar.res_alg_ruimte_verwijder IS NULL
|
|
AND rg.alg_ruimte_key = ar.alg_ruimte_key
|
|
AND rr.res_rsv_ruimte_van < SYSDATE
|
|
AND rr.res_rsv_ruimte_tot > SYSDATE;
|
|
|
|
CREATE OR REPLACE VIEW blst_v_cad_thema_automaten
|
|
(
|
|
alg_ruimte_key,
|
|
waarde
|
|
)
|
|
AS
|
|
SELECT r.alg_ruimte_key,
|
|
CASE WHEN d.ins_deel_key IS NOT NULL THEN 'Ja' ELSE 'Nee' END AS aanwezig
|
|
FROM alg_ruimte r,
|
|
(SELECT d.ins_deel_key, d.ins_alg_ruimte_key
|
|
FROM ins_deel d, ins_srtdeel sd
|
|
WHERE d.ins_srtdeel_key = sd.ins_srtdeel_key
|
|
AND sd.ins_srtgroep_key = 7
|
|
AND d.ins_deel_verwijder IS NULL
|
|
AND ( d.ins_deel_vervaldatum IS NULL
|
|
OR d.ins_deel_vervaldatum > TRUNC (SYSDATE))
|
|
AND d.ins_alg_ruimte_type = 'R') d
|
|
WHERE r.alg_ruimte_key = d.ins_alg_ruimte_key(+);
|
|
|
|
CREATE OR REPLACE VIEW BLST_V_CAD_THEMA_FRISDRANK
|
|
(
|
|
ALG_RUIMTE_KEY,
|
|
WAARDE
|
|
)
|
|
BEQUEATH DEFINER
|
|
AS
|
|
SELECT r.alg_ruimte_key,
|
|
CASE WHEN d.ins_deel_key IS NOT NULL THEN 'Ja' ELSE 'Nee' END AS aanwezig
|
|
FROM alg_ruimte r,
|
|
(SELECT d.ins_deel_key, d.ins_alg_ruimte_key
|
|
FROM ins_deel d
|
|
WHERE d.ins_deel_verwijder IS NULL
|
|
AND d.ins_srtdeel_key = 6
|
|
AND ( d.ins_deel_vervaldatum IS NULL
|
|
OR d.ins_deel_vervaldatum > TRUNC (SYSDATE))
|
|
AND d.ins_alg_ruimte_type = 'R') d
|
|
WHERE r.alg_ruimte_key = d.ins_alg_ruimte_key(+);
|
|
|
|
----------------------------------------------------
|
|
--- Vanaf hier de rapportages voor het dashboard ---
|
|
----------------------------------------------------
|
|
|
|
---- BLST_V_RAP_AANVR_GEBOUW is de 'basis' view voor KPI5 uit de DVR
|
|
CREATE OR REPLACE VIEW BLST_V_RAP_AANVR_GEBOUW
|
|
(
|
|
locatie_key,
|
|
locatie_code,
|
|
locatie_omschrijving,
|
|
plaats,
|
|
alg_gebouw_key,
|
|
gebouw_code,
|
|
gebouw,
|
|
business_unit,
|
|
afdeling,
|
|
vakgroeptype,
|
|
vakgroep,
|
|
datum_afgemeld,
|
|
melding_key,
|
|
melding_telling,
|
|
sla_optijd
|
|
)
|
|
AS
|
|
SELECT l.alg_locatie_key,
|
|
l.alg_locatie_code locatie,
|
|
l.alg_locatie_omschrijving locatie_omschrijving,
|
|
l.alg_locatie_plaats locatie_plaats,
|
|
og.alg_gebouw_key gebouw_key,
|
|
og.alg_gebouw_code gebouw,
|
|
og.alg_gebouw_naam gebouw_naam,
|
|
COALESCE (bu.prs_afdeling_omschrijving,
|
|
a.prs_afdeling_omschrijving) Business_Unit,
|
|
CASE
|
|
WHEN bu.prs_afdeling_omschrijving IS NOT NULL
|
|
THEN
|
|
a.prs_afdeling_naam
|
|
|| ' - '
|
|
|| a.prs_afdeling_omschrijving
|
|
END afdeling,
|
|
vt.ins_srtdiscipline_omschrijving vakgroeptype,
|
|
vg.ins_discipline_omschrijving vakgroep,
|
|
x.afgemeld,
|
|
m.mld_melding_key melding_key,
|
|
1 melding_telling,
|
|
CASE
|
|
WHEN DECODE (
|
|
x.t_doorlooptijd.eenheid,
|
|
'D', mld.geteinddatum (m.mld_melding_key)
|
|
- COALESCE (x.afgemeld, SYSDATE)
|
|
+ COALESCE (x.sla_respijtdgn, 0),
|
|
0)
|
|
+ DECODE (
|
|
x.t_doorlooptijd.eenheid,
|
|
'U', ( ( mld.geteinddatum (m.mld_melding_key)
|
|
- COALESCE (x.afgemeld, SYSDATE))
|
|
* 24)
|
|
+ COALESCE (x.sla_respijturen, 0),
|
|
0) >=
|
|
0
|
|
THEN
|
|
1
|
|
ELSE
|
|
0
|
|
END sla_optijd
|
|
FROM mld_melding m,
|
|
mld_stdmelding sm,
|
|
mld_stdmeldinggroep mg,
|
|
ins_tab_discipline vg,
|
|
ins_srtdiscipline vt,
|
|
alg_locatie l,
|
|
alg_v_allonrgoed_gegevens og,
|
|
prs_perslid p,
|
|
prs_afdeling a,
|
|
prs_afdeling bu,
|
|
(SELECT m.mld_melding_key,
|
|
--- TRUNC (mld.getmeldingstatusdate (m.mld_melding_key, 5))
|
|
(mld.getmeldingstatusdate (m.mld_melding_key, 5))
|
|
afgemeld,
|
|
mld.getactualuitvoer (m.mld_melding_key)
|
|
t_doorlooptijd,
|
|
DECODE (m.mld_melding_t_respijt.eenheid,
|
|
'D', m.mld_melding_t_respijt.tijdsduur,
|
|
NULL)
|
|
sla_respijtdgn,
|
|
DECODE (m.mld_melding_t_respijt.eenheid,
|
|
'U', m.mld_melding_t_respijt.tijdsduur,
|
|
NULL)
|
|
sla_respijturen
|
|
FROM mld_melding m) x
|
|
WHERE m.mld_melding_status = 5 -- afgemeld
|
|
AND m.mld_stdmelding_key = sm.mld_stdmelding_key
|
|
AND vg.ins_discipline_key = sm.mld_ins_discipline_key
|
|
AND vg.ins_srtdiscipline_key = vt.ins_srtdiscipline_key
|
|
AND sm.mld_stdmeldinggroep_key = mg.mld_stdmeldinggroep_key
|
|
AND m.mld_alg_locatie_key = l.alg_locatie_key(+)
|
|
AND m.mld_alg_onroerendgoed_keys = og.alg_onroerendgoed_keys(+)
|
|
AND m.mld_melding_key = x.mld_melding_key
|
|
AND m.prs_perslid_key_voor = p.prs_perslid_key
|
|
AND a.prs_afdeling_key = p.prs_afdeling_key
|
|
AND a.prs_afdeling_parentkey = bu.prs_afdeling_key(+)
|
|
AND UPPER (mg.mld_stdmeldinggroep_oms) LIKE 'AANVRAGEN%';
|
|
|
|
-- Aanvragen (conform KPI 5 DVR)
|
|
CREATE OR REPLACE VIEW BLST_V_RAP_KPI5_DVR
|
|
(
|
|
FCLT_3D_LOCATIE_KEY,
|
|
LOCATIE_CODE,
|
|
LOCATIE_OMSCHRIJVING,
|
|
PLAATS,
|
|
ALG_GEBOUW_KEY,
|
|
GEBOUW_CODE,
|
|
GEBOUW,
|
|
HTML_DETAILS,
|
|
BUSINESS_UNIT,
|
|
AFDELING,
|
|
MELDING,
|
|
MLD_TELLING,
|
|
DATUM_AFGEMELD,
|
|
SLA_OPTIJD
|
|
)
|
|
AS
|
|
SELECT locatie_key,
|
|
locatie_code,
|
|
locatie_omschrijving,
|
|
plaats,
|
|
alg_gebouw_key,
|
|
gebouw_code,
|
|
gebouw,
|
|
'<a class="details" onclick=''FcltMgr.openDetail("appl/fac/fac_report.asp?usrrap_key=141&'
|
|
|| 'mode=list&'
|
|
|| 'alg_gebouw_key='
|
|
|| alg_gebouw_key
|
|
|| '")''>'
|
|
|| gebouw
|
|
|| '</a>' AS html_details,
|
|
COALESCE (bu.prs_afdeling_omschrijving,
|
|
a.prs_afdeling_omschrijving) Business_Unit,
|
|
CASE
|
|
WHEN bu.prs_afdeling_omschrijving IS NOT NULL
|
|
THEN
|
|
a.prs_afdeling_naam
|
|
|| ' - '
|
|
|| a.prs_afdeling_omschrijving
|
|
END afdeling,
|
|
melding_key,
|
|
1 mld_count,
|
|
datum_afgemeld,
|
|
sla_optijd
|
|
FROM blst_v_rap_aanvr_gebouw g,
|
|
mld_melding m,
|
|
prs_perslid p,
|
|
prs_afdeling a,
|
|
prs_afdeling bu
|
|
WHERE g.melding_key = m.mld_melding_key
|
|
AND m.prs_perslid_key_voor = p.prs_perslid_key
|
|
AND a.prs_afdeling_key = p.prs_afdeling_key
|
|
AND a.prs_afdeling_parentkey = bu.prs_afdeling_key(+);
|
|
|
|
--- Volledigheid uitvoeren NEN 3140
|
|
|
|
CREATE OR REPLACE VIEW BLST_V_RAP_NEN3140
|
|
(
|
|
FCLT_3D_LOCATIE_KEY,
|
|
LOCATIE_CODE,
|
|
LOCATIE_OMSCHR,
|
|
GEBOUW_CODE,
|
|
GEBOUW_NAAM,
|
|
DEEL_KEY,
|
|
DEEL_OMSCHRIJVING,
|
|
DEEL_OPMERKING,
|
|
INSPECTIE_KEY,
|
|
INSPECTIE,
|
|
LAATSTE_INSPECTIE_DATUM,
|
|
AANT_DGN
|
|
)
|
|
AS
|
|
SELECT ctr.alg_locatie_key,
|
|
ctr.alg_locatie_code,
|
|
ctr.alg_locatie_omschrijving,
|
|
ctr.alg_gebouw_code,
|
|
ctr.alg_gebouw_naam,
|
|
ctr.ins_deel_key,
|
|
ctr.ins_deel_omschrijving,
|
|
ctr.ins_deel_opmerking,
|
|
ctr.ins_deelsrtcontrole_key,
|
|
ctr.ins_srtcontrole_omschrijving,
|
|
ctr.ltst_ins_datum,
|
|
ctr.dgn_sinds_ltst_insp
|
|
FROM ( SELECT l.alg_locatie_key,
|
|
l.alg_locatie_code,
|
|
l.alg_locatie_omschrijving,
|
|
g.alg_gebouw_code,
|
|
g.alg_gebouw_naam,
|
|
d.ins_deel_key,
|
|
d.ins_deel_omschrijving,
|
|
d.ins_deel_opmerking,
|
|
sc.ins_srtcontrole_omschrijving,
|
|
MAX (sc.ins_deelsrtcontrole_key)
|
|
ins_deelsrtcontrole_key,
|
|
MAX (sc.ins_deelsrtcontrole_datum)
|
|
ltst_ins_datum,
|
|
fac.safe_to_number (
|
|
ROUND (SYSDATE - MAX (sc.ins_deelsrtcontrole_datum),
|
|
0))
|
|
dgn_sinds_ltst_insp
|
|
FROM alg_ruimte r,
|
|
alg_verdieping v,
|
|
alg_gebouw g,
|
|
alg_locatie l,
|
|
(SELECT dc.ins_deel_key,
|
|
dc.ins_deelsrtcontrole_key,
|
|
dc.ins_deelsrtcontrole_datum,
|
|
sc.ins_srtcontrole_omschrijving
|
|
FROM ins_deelsrtcontrole dc, ins_srtcontrole sc
|
|
WHERE dc.ins_deelsrtcontrole_status = 6
|
|
AND sc.ins_srtcontrole_key =
|
|
dc.ins_srtcontrole_key
|
|
AND UPPER (ins_srtcontrole_omschrijving) LIKE
|
|
'%NEN 3140%') sc,
|
|
(SELECT *
|
|
FROM ins_deel
|
|
WHERE ins_srtdeel_key IN
|
|
(SELECT ins_srtinstallatie_key
|
|
FROM ins_srtcontrole
|
|
WHERE UPPER (ins_srtcontrole_omschrijving) LIKE
|
|
'%NEN 3140%')) d
|
|
WHERE sc.ins_deel_key(+) = d.ins_deel_key
|
|
AND d.ins_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
|
|
GROUP BY l.alg_locatie_key,
|
|
l.alg_locatie_code,
|
|
l.alg_locatie_omschrijving,
|
|
g.alg_gebouw_code,
|
|
g.alg_gebouw_naam,
|
|
d.ins_deel_key,
|
|
d.ins_deel_omschrijving,
|
|
d.ins_deel_opmerking,
|
|
sc.ins_srtcontrole_omschrijving) ctr;
|
|
|
|
--- Volledigheid uitvoeren NEN 2484
|
|
|
|
CREATE OR REPLACE VIEW BLST_V_RAP_NEN2484
|
|
(
|
|
FCLT_3D_LOCATIE_KEY,
|
|
LOCATIE_CODE,
|
|
LOCATIE_OMSCHRIJVING,
|
|
GEBOUW_CODE,
|
|
GEBOUW_NAAM,
|
|
DEEL_KEY,
|
|
DEEL_OMSCHRIJVING,
|
|
DEEL_OPMERKING,
|
|
INSPECTIE,
|
|
INSPECTIE_KEY,
|
|
LAATSTE_INSPECTIE_DATUM,
|
|
AANT_DGN
|
|
)
|
|
AS
|
|
SELECT l.alg_locatie_key,
|
|
l.alg_locatie_code,
|
|
l.alg_locatie_omschrijving,
|
|
g.alg_gebouw_code,
|
|
g.alg_gebouw_naam,
|
|
d.ins_deel_key,
|
|
d.ins_deel_omschrijving,
|
|
d.ins_deel_opmerking,
|
|
sc.ins_srtcontrole_omschrijving,
|
|
MAX (sc.ins_deelsrtcontrole_key)
|
|
ins_deelsrtcontrole_key,
|
|
MAX (sc.ins_deelsrtcontrole_datum)
|
|
ltst_ins_datum,
|
|
ROUND (SYSDATE - MAX (sc.ins_deelsrtcontrole_datum), 0)
|
|
dgn_sinds_ltst_insp
|
|
FROM alg_ruimte r,
|
|
alg_verdieping v,
|
|
alg_gebouw g,
|
|
alg_locatie l,
|
|
(SELECT dc.ins_deel_key,
|
|
dc.ins_deelsrtcontrole_key,
|
|
dc.ins_deelsrtcontrole_datum,
|
|
sc.ins_srtcontrole_omschrijving
|
|
FROM ins_deelsrtcontrole dc, ins_srtcontrole sc
|
|
WHERE dc.ins_deelsrtcontrole_status = 6
|
|
AND sc.ins_srtcontrole_key = dc.ins_srtcontrole_key
|
|
AND UPPER (ins_srtcontrole_omschrijving) LIKE '%NEN 2484%')
|
|
sc,
|
|
(SELECT *
|
|
FROM ins_deel
|
|
WHERE ins_srtdeel_key IN
|
|
(SELECT ins_srtinstallatie_key
|
|
FROM ins_srtcontrole
|
|
WHERE UPPER (ins_srtcontrole_omschrijving) LIKE
|
|
'%NEN 2484%')) d
|
|
WHERE sc.ins_deel_key(+) = d.ins_deel_key
|
|
AND d.ins_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
|
|
GROUP BY l.alg_locatie_key,
|
|
l.alg_locatie_code,
|
|
l.alg_locatie_omschrijving,
|
|
g.alg_gebouw_code,
|
|
g.alg_gebouw_naam,
|
|
d.ins_deel_key,
|
|
d.ins_deel_omschrijving,
|
|
d.ins_deel_opmerking,
|
|
sc.ins_srtcontrole_omschrijving;
|
|
|
|
--- Tevredenheid afhandeling klachten
|
|
CREATE OR REPLACE VIEW BLST_V_RAP_SATISFACTION
|
|
(
|
|
FCLT_3D_LOCATIE_KEY,
|
|
LOCATIE_CODE,
|
|
LOCATIE_OMSCHRIJVING,
|
|
GEBOUW_CODE,
|
|
GEBOUW_OMSCHRIJVING,
|
|
BUSINESS_UNIT,
|
|
AFDELING,
|
|
MELDING,
|
|
BETREFT,
|
|
PDC,
|
|
DATUM_AFG,
|
|
RATING,
|
|
RESPONS,
|
|
SCORE
|
|
)
|
|
AS
|
|
SELECT l.alg_locatie_key,
|
|
l.alg_locatie_code,
|
|
l.alg_locatie_omschrijving,
|
|
og.alg_gebouw_code
|
|
gebouw,
|
|
og.alg_gebouw_naam
|
|
gebouw_naam,
|
|
COALESCE (bu.prs_afdeling_omschrijving,
|
|
a.prs_afdeling_omschrijving)
|
|
Business_Unit,
|
|
CASE
|
|
WHEN bu.prs_afdeling_omschrijving IS NOT NULL
|
|
THEN
|
|
a.prs_afdeling_naam
|
|
|| ' - '
|
|
|| a.prs_afdeling_omschrijving
|
|
END
|
|
afdeling,
|
|
m.mld_melding_key,
|
|
betreft.betreft,
|
|
pdc.PDC,
|
|
--- TRUNC (mld.getmeldingstatusdate (m.mld_melding_key, 5))
|
|
(mld.getmeldingstatusdate (m.mld_melding_key, 5))
|
|
afgemeld,
|
|
m.mld_melding_satisfaction,
|
|
CASE WHEN m.mld_melding_satisfaction IS NOT NULL THEN 1 ELSE 0 END
|
|
respons,
|
|
CASE
|
|
WHEN m.mld_melding_satisfaction IS NULL
|
|
THEN
|
|
'Geen'
|
|
WHEN m.mld_melding_satisfaction > 0
|
|
AND m.mld_melding_satisfaction < 3
|
|
THEN
|
|
'Onvoldoende'
|
|
WHEN m.mld_melding_satisfaction > 2
|
|
THEN
|
|
'Voldoende'
|
|
END
|
|
score
|
|
FROM mld_melding m,
|
|
alg_v_allonrgoed_gegevens og,
|
|
alg_locatie l,
|
|
prs_perslid p,
|
|
prs_afdeling a,
|
|
prs_afdeling bu,
|
|
(SELECT km.mld_melding_key,
|
|
sk.mld_srtkenmerk_omschrijving,
|
|
ud.fac_usrdata_omschr betreft
|
|
FROM mld_kenmerkmelding km,
|
|
mld_kenmerk k,
|
|
mld_srtkenmerk sk,
|
|
fac_usrdata ud,
|
|
fac_usrtab ut
|
|
WHERE km.mld_kenmerk_key = k.mld_kenmerk_key
|
|
AND k.mld_srtkenmerk_key = sk.mld_srtkenmerk_key
|
|
AND sk.mld_srtkenmerk_key = 61
|
|
AND fac.safe_to_number (mld_kenmerkmelding_waarde) =
|
|
ud.fac_usrdata_key
|
|
AND ud.fac_usrtab_key = ut.fac_usrtab_key
|
|
AND ut.fac_usrtab_key = 121) betreft,
|
|
(SELECT km.mld_melding_key,
|
|
sk.mld_srtkenmerk_omschrijving,
|
|
ud.fac_usrdata_omschr pdc
|
|
FROM mld_kenmerkmelding km,
|
|
mld_kenmerk k,
|
|
mld_srtkenmerk sk,
|
|
fac_usrdata ud,
|
|
fac_usrtab ut
|
|
WHERE km.mld_kenmerk_key = k.mld_kenmerk_key
|
|
AND k.mld_srtkenmerk_key = sk.mld_srtkenmerk_key
|
|
AND sk.mld_srtkenmerk_key = 281
|
|
AND fac.safe_to_number (mld_kenmerkmelding_waarde) =
|
|
ud.fac_usrdata_key
|
|
AND ud.fac_usrtab_key = ut.fac_usrtab_key
|
|
AND ut.fac_usrtab_key = 321) pdc
|
|
WHERE m.mld_melding_status = 5 -- afgemeld
|
|
AND m.mld_stdmelding_key = 102
|
|
AND m.mld_alg_onroerendgoed_keys = og.alg_onroerendgoed_keys(+)
|
|
AND m.mld_alg_locatie_key = l.alg_locatie_key(+)
|
|
AND m.prs_perslid_key_voor = p.prs_perslid_key
|
|
AND a.prs_afdeling_key = p.prs_afdeling_key
|
|
AND a.prs_afdeling_parentkey = bu.prs_afdeling_key(+)
|
|
AND m.mld_melding_key = betreft.mld_melding_key(+)
|
|
AND m.mld_melding_key = pdc.mld_melding_key(+);
|
|
|
|
--- Tijdigheid van response op klachten
|
|
CREATE OR REPLACE VIEW BLST_V_RAP_RESPONS_KLACHTEN
|
|
(
|
|
FCLT_3D_LOCATIE_KEY,
|
|
LOCATIE_CODE,
|
|
LOCATIE_OMSCHRIJVING,
|
|
GEBOUW_CODE,
|
|
GEBOUW_OMSCHRIJVING,
|
|
BUSINESS_UNIT,
|
|
AFDELING,
|
|
MELDING,
|
|
BETREFT,
|
|
PDC,
|
|
COUNT_MLD,
|
|
MELD_DATUM,
|
|
DATUM_IN_BEH,
|
|
HRS_BETWEEN,
|
|
OP_TIJD
|
|
)
|
|
AS
|
|
SELECT l.alg_locatie_key,
|
|
l.alg_locatie_code,
|
|
l.alg_locatie_omschrijving,
|
|
og.alg_gebouw_code gebouw,
|
|
og.alg_gebouw_naam gebouw_naam,
|
|
COALESCE (bu.prs_afdeling_omschrijving,
|
|
a.prs_afdeling_omschrijving) Business_Unit,
|
|
CASE
|
|
WHEN bu.prs_afdeling_omschrijving IS NOT NULL
|
|
THEN
|
|
a.prs_afdeling_naam
|
|
|| ' - '
|
|
|| a.prs_afdeling_omschrijving
|
|
END afdeling,
|
|
m.mld_melding_key,
|
|
betreft.betreft,
|
|
PDC.PDC,
|
|
1 count_mld,
|
|
m.mld_melding_datum,
|
|
COALESCE ((mld.getmeldingstatusdate (m.mld_melding_key, 4)),
|
|
SYSDATE) in_behandeling,
|
|
ROUND (
|
|
24
|
|
* ( (COALESCE (
|
|
(mld.getmeldingstatusdate (m.mld_melding_key, 4)),
|
|
SYSDATE))
|
|
- (m.mld_melding_datum))) hrs_between,
|
|
CASE
|
|
WHEN ROUND (
|
|
24
|
|
* ( (COALESCE (
|
|
mld.getmeldingstatusdate (
|
|
m.mld_melding_key,
|
|
4),
|
|
SYSDATE))
|
|
- (m.mld_melding_datum))) <
|
|
49
|
|
THEN
|
|
1
|
|
ELSE
|
|
0
|
|
END AS op_tijd
|
|
FROM mld_melding m,
|
|
alg_v_allonrgoed_gegevens og,
|
|
alg_locatie l,
|
|
prs_perslid p,
|
|
prs_afdeling a,
|
|
prs_afdeling bu,
|
|
(SELECT km.mld_melding_key,
|
|
sk.mld_srtkenmerk_omschrijving,
|
|
ud.fac_usrdata_omschr betreft
|
|
FROM mld_kenmerkmelding km,
|
|
mld_kenmerk k,
|
|
mld_srtkenmerk sk,
|
|
fac_usrdata ud,
|
|
fac_usrtab ut
|
|
WHERE km.mld_kenmerk_key = k.mld_kenmerk_key
|
|
AND k.mld_srtkenmerk_key = sk.mld_srtkenmerk_key
|
|
AND sk.mld_srtkenmerk_key = 61
|
|
AND fac.safe_to_number (mld_kenmerkmelding_waarde) =
|
|
ud.fac_usrdata_key
|
|
AND ud.fac_usrtab_key = ut.fac_usrtab_key
|
|
AND ut.fac_usrtab_key = 121) betreft,
|
|
(SELECT km.mld_melding_key,
|
|
sk.mld_srtkenmerk_omschrijving,
|
|
ud.fac_usrdata_omschr pdc
|
|
FROM mld_kenmerkmelding km,
|
|
mld_kenmerk k,
|
|
mld_srtkenmerk sk,
|
|
fac_usrdata ud,
|
|
fac_usrtab ut
|
|
WHERE km.mld_kenmerk_key = k.mld_kenmerk_key
|
|
AND k.mld_srtkenmerk_key = sk.mld_srtkenmerk_key
|
|
AND sk.mld_srtkenmerk_key = 281
|
|
AND fac.safe_to_number (mld_kenmerkmelding_waarde) =
|
|
ud.fac_usrdata_key
|
|
AND ud.fac_usrtab_key = ut.fac_usrtab_key
|
|
AND ut.fac_usrtab_key = 321) PDC
|
|
WHERE m.mld_stdmelding_key = 102
|
|
AND m.mld_melding_status NOT IN (1) -- afgewezen meldingen tellen niet mee
|
|
AND m.mld_alg_onroerendgoed_keys = og.alg_onroerendgoed_keys(+)
|
|
AND m.mld_alg_locatie_key = l.alg_locatie_key(+)
|
|
AND m.prs_perslid_key_voor = p.prs_perslid_key
|
|
AND p.prs_afdeling_key = a.prs_afdeling_key
|
|
AND a.prs_afdeling_parentkey = bu.prs_afdeling_key(+)
|
|
AND m.mld_melding_key = betreft.mld_melding_key(+)
|
|
AND m.mld_melding_key = pdc.mld_melding_key(+);
|
|
|
|
--- Tijdigheid afhandeling openstaande klachten
|
|
CREATE OR REPLACE VIEW BLST_V_RAP_TIJDIG_AFH_KLACHTEN
|
|
(
|
|
FCLT_3D_LOCATIE_KEY,
|
|
LOCATIE_CODE,
|
|
LOCATIE_OMSCHRIJVING,
|
|
GEBOUW_CODE,
|
|
GEBOUW_OMSCHRIJVING,
|
|
BUSINESS_UNIT,
|
|
AFDELING,
|
|
MELDING,
|
|
BETREFT,
|
|
PDC,
|
|
COUNT_MLD,
|
|
MELD_DATUM,
|
|
DATUM_AFGEMELD,
|
|
HRS_BETWEEN,
|
|
OP_TIJD
|
|
)
|
|
AS
|
|
SELECT l.alg_locatie_key,
|
|
l.alg_locatie_code,
|
|
l.alg_locatie_omschrijving,
|
|
og.alg_gebouw_code
|
|
gebouw,
|
|
og.alg_gebouw_naam
|
|
gebouw_naam,
|
|
COALESCE (bu.prs_afdeling_omschrijving,
|
|
a.prs_afdeling_omschrijving)
|
|
Business_Unit,
|
|
CASE
|
|
WHEN bu.prs_afdeling_omschrijving IS NOT NULL
|
|
THEN
|
|
a.prs_afdeling_naam
|
|
|| ' - '
|
|
|| a.prs_afdeling_omschrijving
|
|
END
|
|
afdeling,
|
|
m.mld_melding_key,
|
|
betreft.betreft,
|
|
pdc.PDC,
|
|
1
|
|
count_mld,
|
|
m.mld_melding_datum,
|
|
mld.getmeldingstatusdate (m.mld_melding_key, 5)
|
|
afg,
|
|
blst.aantal_weekdagen (
|
|
TRUNC (m.mld_melding_datum),
|
|
TRUNC (mld.getmeldingstatusdate (m.mld_melding_key, 5)))
|
|
days_between,
|
|
CASE
|
|
WHEN blst.aantal_weekdagen (
|
|
TRUNC (m.mld_melding_datum),
|
|
TRUNC (
|
|
mld.getmeldingstatusdate (m.mld_melding_key, 5))) <
|
|
6
|
|
THEN
|
|
1
|
|
ELSE
|
|
0
|
|
END
|
|
AS op_tijd
|
|
FROM mld_melding m,
|
|
alg_v_allonrgoed_gegevens og,
|
|
alg_locatie l,
|
|
prs_perslid p,
|
|
prs_afdeling a,
|
|
prs_afdeling bu,
|
|
(SELECT km.mld_melding_key,
|
|
sk.mld_srtkenmerk_omschrijving,
|
|
ud.fac_usrdata_omschr betreft
|
|
FROM mld_kenmerkmelding km,
|
|
mld_kenmerk k,
|
|
mld_srtkenmerk sk,
|
|
fac_usrdata ud,
|
|
fac_usrtab ut
|
|
WHERE km.mld_kenmerk_key = k.mld_kenmerk_key
|
|
AND k.mld_srtkenmerk_key = sk.mld_srtkenmerk_key
|
|
AND sk.mld_srtkenmerk_key = 61
|
|
AND fac.safe_to_number (mld_kenmerkmelding_waarde) =
|
|
ud.fac_usrdata_key
|
|
AND ud.fac_usrtab_key = ut.fac_usrtab_key
|
|
AND ut.fac_usrtab_key = 121) betreft,
|
|
(SELECT km.mld_melding_key,
|
|
sk.mld_srtkenmerk_omschrijving,
|
|
ud.fac_usrdata_omschr PDC
|
|
FROM mld_kenmerkmelding km,
|
|
mld_kenmerk k,
|
|
mld_srtkenmerk sk,
|
|
fac_usrdata ud,
|
|
fac_usrtab ut
|
|
WHERE km.mld_kenmerk_key = k.mld_kenmerk_key
|
|
AND k.mld_srtkenmerk_key = sk.mld_srtkenmerk_key
|
|
AND sk.mld_srtkenmerk_key = 281
|
|
AND fac.safe_to_number (mld_kenmerkmelding_waarde) =
|
|
ud.fac_usrdata_key
|
|
AND ud.fac_usrtab_key = ut.fac_usrtab_key
|
|
AND ut.fac_usrtab_key = 321) pdc
|
|
WHERE m.mld_stdmelding_key = 102
|
|
AND m.mld_melding_status = 5 -- alleen afgemeld
|
|
AND m.mld_alg_onroerendgoed_keys = og.alg_onroerendgoed_keys(+)
|
|
AND m.mld_alg_locatie_key = l.alg_locatie_key(+)
|
|
AND m.prs_perslid_key_voor = p.prs_perslid_key
|
|
AND p.prs_afdeling_key = a.prs_afdeling_key
|
|
AND a.prs_afdeling_parentkey = bu.prs_afdeling_key(+)
|
|
AND m.mld_melding_key = betreft.mld_melding_key(+)
|
|
AND m.mld_melding_key = pdc.mld_melding_key(+);
|
|
|
|
--- Volledigheid no-shows
|
|
CREATE OR REPLACE VIEW BLST_V_RAP_NO_SHOWS
|
|
(
|
|
FCLT_3D_LOCATIE_KEY,
|
|
LOCATIE_CODE,
|
|
LOCATIE_OMSCHRIJVING,
|
|
GEBOUW_CODE,
|
|
GEBOUW_OMSCHRIJVING,
|
|
BUSINESS_UNIT,
|
|
AFDELING,
|
|
RES_NR,
|
|
RES_TELLING,
|
|
DATUM,
|
|
REGISTRATIE_SHOWN,
|
|
NO_SHOW
|
|
)
|
|
AS
|
|
SELECT l.alg_locatie_key,
|
|
l.alg_locatie_code,
|
|
l.alg_locatie_omschrijving,
|
|
g.alg_gebouw_code,
|
|
g.alg_gebouw_omschrijving,
|
|
COALESCE (bu.prs_afdeling_omschrijving,
|
|
a.prs_afdeling_omschrijving)
|
|
Business_Unit,
|
|
CASE
|
|
WHEN bu.prs_afdeling_omschrijving IS NOT NULL
|
|
THEN
|
|
a.prs_afdeling_naam
|
|
|| ' - '
|
|
|| a.prs_afdeling_omschrijving
|
|
END
|
|
afdeling,
|
|
rsv.res_reservering_key || '/' || rsv.res_rsv_ruimte_volgnr
|
|
reservering,
|
|
1
|
|
res_telling,
|
|
TRUNC (rsv.res_rsv_ruimte_van)
|
|
datum_res,
|
|
rsv.res_rsv_ruimte_bezoekers_shown,
|
|
CASE WHEN rsv.res_rsv_ruimte_bezoekers_shown = 0 THEN 1 ELSE 0 END
|
|
no_show
|
|
FROM res_rsv_ruimte rsv,
|
|
res_ruimte_opstelling ro,
|
|
res_opstelling o,
|
|
res_ruimte rr,
|
|
res_alg_ruimte ra,
|
|
alg_locatie l,
|
|
alg_gebouw g,
|
|
alg_verdieping v,
|
|
alg_ruimte r,
|
|
prs_perslid p,
|
|
prs_afdeling a,
|
|
prs_afdeling bu
|
|
WHERE rsv.res_rsv_ruimte_bezoekers_shown IS NOT NULL
|
|
AND rsv.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
|
|
AND 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
|
|
AND r.alg_ruimte_key = ra.alg_ruimte_key
|
|
AND rsv.res_rsv_ruimte_host_key = p.prs_perslid_key
|
|
AND a.prs_afdeling_key = p.prs_afdeling_key
|
|
AND a.prs_afdeling_parentkey = bu.prs_afdeling_key(+);
|
|
|
|
-- Urgente meldingen
|
|
CREATE OR REPLACE VIEW BLST_V_RAP_URGENTE_MELDINGEN
|
|
(
|
|
FCLT_3D_LOCATIE_KEY,
|
|
LOCATIE_CODE,
|
|
LOCATIE_OMSCHRIJVING,
|
|
ALG_GEBOUW_KEY,
|
|
GEBOUW_CODE,
|
|
GEBOUW_OMSCHRIJVING,
|
|
BUSINESS_UNIT,
|
|
AFDELING,
|
|
MELDING,
|
|
COUNT_MLD,
|
|
MELD_DATUM,
|
|
DATUM_AFGEMELD,
|
|
SLA_TIJD,
|
|
DOORLOOPTIJD_WERKUREN,
|
|
SLA_BEHAALD,
|
|
TELLING_SLA_BEHAALD,
|
|
INT_EXT,
|
|
TELLING_INTERN,
|
|
TELLING_EXTERN
|
|
)
|
|
AS
|
|
SELECT l.alg_locatie_key,
|
|
l.alg_locatie_code,
|
|
l.alg_locatie_omschrijving,
|
|
og.alg_gebouw_key,
|
|
og.alg_gebouw_code gebouw,
|
|
og.alg_gebouw_naam gebouw_naam,
|
|
COALESCE (bu.prs_afdeling_omschrijving,
|
|
a.prs_afdeling_omschrijving) Business_Unit,
|
|
CASE
|
|
WHEN bu.prs_afdeling_omschrijving IS NOT NULL
|
|
THEN
|
|
a.prs_afdeling_naam
|
|
|| ' - '
|
|
|| a.prs_afdeling_omschrijving
|
|
END afdeling,
|
|
m.mld_melding_key,
|
|
1,
|
|
m.mld_melding_datum,
|
|
afgemeld,
|
|
sla.sla_werkuren sla_tijd,
|
|
DECODE (sla.t_doorlooptijd.eenheid,
|
|
'U', sla.t_doorlooptijd.tijdsduur,
|
|
NULL) doorlooptijd_werkuren,
|
|
CASE
|
|
WHEN sla.t_doorlooptijd.tijdsduur <= sla.sla_werkuren
|
|
THEN
|
|
'Ja'
|
|
ELSE
|
|
'Nee'
|
|
END sla_behaald,
|
|
CASE
|
|
WHEN sla.t_doorlooptijd.tijdsduur <= sla.sla_werkuren THEN 1
|
|
ELSE 0
|
|
END telling_sla,
|
|
MIN (COALESCE (o.opdr_type, 'Intern')) int_ext, -- Als er een externe opdracht is behandelen we de melding altijd als extern
|
|
CASE
|
|
WHEN MIN (COALESCE (o.opdr_type, 'Intern')) = 'Intern' THEN 1
|
|
ELSE 0
|
|
END telling_intern,
|
|
CASE
|
|
WHEN MIN (COALESCE (o.opdr_type, 'Intern')) = 'Extern' THEN 1
|
|
ELSE 0
|
|
END telling_extern
|
|
FROM mld_melding m,
|
|
alg_v_allonrgoed_gegevens og,
|
|
alg_locatie l,
|
|
prs_perslid p,
|
|
prs_afdeling a,
|
|
prs_afdeling bu,
|
|
( SELECT m.mld_melding_key,
|
|
MIN (
|
|
DECODE (mld_typeopdr_upper,
|
|
'INTERNE OPDRACHT', 'Intern',
|
|
'Extern')) opdr_type
|
|
FROM mld_melding m, mld_opdr o, mld_typeopdr t
|
|
WHERE o.mld_melding_key = m.mld_melding_key
|
|
AND o.mld_typeopdr_key = t.mld_typeopdr_key
|
|
GROUP BY m.mld_melding_key) o,
|
|
(SELECT m.mld_melding_key,
|
|
m.mld_melding_datum,
|
|
mld.getmeldingstatusdate (m.mld_melding_key, 5)
|
|
afgemeld,
|
|
m.mld_melding_einddatum
|
|
einddatum,
|
|
DECODE (m.mld_melding_t_uitvoertijd.eenheid,
|
|
'D', m.mld_melding_t_uitvoertijd.tijdsduur,
|
|
NULL)
|
|
sla_werkdgn,
|
|
DECODE (m.mld_melding_t_respijt.eenheid,
|
|
'D', m.mld_melding_t_respijt.tijdsduur,
|
|
NULL)
|
|
sla_respijtdgn,
|
|
DECODE (m.mld_melding_t_uitvoertijd.eenheid,
|
|
'U', m.mld_melding_t_uitvoertijd.tijdsduur,
|
|
NULL)
|
|
sla_werkuren,
|
|
DECODE (m.mld_melding_t_respijt.eenheid,
|
|
'U', m.mld_melding_t_respijt.tijdsduur,
|
|
NULL)
|
|
sla_respijturen,
|
|
mld.getactualuitvoer (m.mld_melding_key)
|
|
t_doorlooptijd
|
|
FROM mld_melding m, mld_stdmelding sm, mld_stdmeldinggroep mg
|
|
WHERE sm.mld_stdmeldinggroep_key =
|
|
mg.mld_stdmeldinggroep_key
|
|
AND UPPER (mld_stdmeldinggroep_oms) LIKE 'MELDINGEN%'
|
|
AND m.mld_stdmelding_key = sm.mld_stdmelding_key) sla
|
|
WHERE m.mld_melding_spoed = 2 -- alleen met urgentie hoog
|
|
AND m.mld_melding_status = 5 -- alleen afgemelde meldingen
|
|
AND m.mld_alg_onroerendgoed_keys = og.alg_onroerendgoed_keys(+)
|
|
AND m.mld_alg_locatie_key = l.alg_locatie_key(+)
|
|
AND m.mld_melding_key = sla.mld_melding_key
|
|
AND o.mld_melding_key(+) = m.mld_melding_key
|
|
AND m.prs_perslid_key_voor = p.prs_perslid_key
|
|
AND a.prs_afdeling_key = p.prs_afdeling_key
|
|
AND a.prs_afdeling_parentkey = bu.prs_afdeling_key(+)
|
|
GROUP BY l.alg_locatie_key,
|
|
l.alg_locatie_code,
|
|
l.alg_locatie_omschrijving,
|
|
og.alg_gebouw_key,
|
|
og.alg_gebouw_code,
|
|
og.alg_gebouw_naam,
|
|
COALESCE (bu.prs_afdeling_omschrijving,
|
|
a.prs_afdeling_omschrijving),
|
|
CASE
|
|
WHEN bu.prs_afdeling_omschrijving IS NOT NULL
|
|
THEN
|
|
a.prs_afdeling_naam
|
|
|| ' - '
|
|
|| a.prs_afdeling_omschrijving
|
|
END,
|
|
m.mld_melding_key,
|
|
1,
|
|
m.mld_melding_datum,
|
|
afgemeld,
|
|
sla.sla_werkuren,
|
|
DECODE (sla.t_doorlooptijd.eenheid,
|
|
'U', sla.t_doorlooptijd.tijdsduur,
|
|
NULL),
|
|
CASE
|
|
WHEN sla.t_doorlooptijd.tijdsduur <= sla.sla_werkuren
|
|
THEN
|
|
'Ja'
|
|
ELSE
|
|
'Nee'
|
|
END,
|
|
CASE
|
|
WHEN sla.t_doorlooptijd.tijdsduur <= sla.sla_werkuren THEN 1
|
|
ELSE 0
|
|
END;
|
|
|
|
-- Urgente meldingen per vakgroeptype en vakgroep
|
|
|
|
CREATE OR REPLACE VIEW BLST_V_RAP_URGENTE_MLD_VG
|
|
(
|
|
FCLT_3D_LOCATIE_KEY,
|
|
ALG_GEBOUW_KEY,
|
|
GEBOUW_CODE,
|
|
GEBOUW_OMSCHRIJVING,
|
|
BUSINESS_UNIT,
|
|
AFDELING,
|
|
VAKGROEPTYPE,
|
|
VAKGROEP,
|
|
MELDING,
|
|
COUNT_MLD,
|
|
MELD_DATUM,
|
|
DATUM_AFGEMELD,
|
|
SLA_BEHAALD,
|
|
TELLING_SLA_BEHAALD
|
|
)
|
|
AS
|
|
SELECT og.alg_locatie_key,
|
|
og.alg_gebouw_key,
|
|
og.alg_gebouw_code gebouw,
|
|
og.alg_gebouw_naam gebouw_naam,
|
|
COALESCE (bu.prs_afdeling_omschrijving,
|
|
a.prs_afdeling_omschrijving) Business_Unit,
|
|
CASE
|
|
WHEN bu.prs_afdeling_omschrijving IS NOT NULL
|
|
THEN
|
|
a.prs_afdeling_naam
|
|
|| ' - '
|
|
|| a.prs_afdeling_omschrijving
|
|
END afdeling,
|
|
vgt.ins_srtdiscipline_omschrijving vakgroeptype,
|
|
vg.ins_discipline_omschrijving vakgroep,
|
|
m.mld_melding_key,
|
|
1,
|
|
m.mld_melding_datum,
|
|
afgemeld,
|
|
CASE
|
|
WHEN sla.t_doorlooptijd.tijdsduur <= sla.sla_werkuren
|
|
THEN
|
|
'Ja'
|
|
ELSE
|
|
'Nee'
|
|
END sla_behaald,
|
|
CASE
|
|
WHEN sla.t_doorlooptijd.tijdsduur <= sla.sla_werkuren THEN 1
|
|
ELSE 0
|
|
END telling_sla
|
|
FROM mld_melding m,
|
|
mld_stdmelding sm,
|
|
ins_tab_discipline vg,
|
|
ins_srtdiscipline vgt,
|
|
alg_v_allonrgoed_gegevens og,
|
|
alg_locatie l,
|
|
prs_perslid p,
|
|
prs_afdeling a,
|
|
prs_afdeling bu,
|
|
(SELECT m.mld_melding_key,
|
|
m.mld_melding_datum,
|
|
mld.getmeldingstatusdate (m.mld_melding_key, 5)
|
|
afgemeld,
|
|
m.mld_melding_einddatum
|
|
einddatum,
|
|
DECODE (m.mld_melding_t_uitvoertijd.eenheid,
|
|
'D', m.mld_melding_t_uitvoertijd.tijdsduur,
|
|
NULL)
|
|
sla_werkdgn,
|
|
DECODE (m.mld_melding_t_respijt.eenheid,
|
|
'D', m.mld_melding_t_respijt.tijdsduur,
|
|
NULL)
|
|
sla_respijtdgn,
|
|
DECODE (m.mld_melding_t_uitvoertijd.eenheid,
|
|
'U', m.mld_melding_t_uitvoertijd.tijdsduur,
|
|
NULL)
|
|
sla_werkuren,
|
|
DECODE (m.mld_melding_t_respijt.eenheid,
|
|
'U', m.mld_melding_t_respijt.tijdsduur,
|
|
NULL)
|
|
sla_respijturen,
|
|
mld.getactualuitvoer (m.mld_melding_key)
|
|
t_doorlooptijd
|
|
FROM mld_melding m, mld_stdmelding sm, mld_stdmeldinggroep mg
|
|
WHERE sm.mld_stdmeldinggroep_key =
|
|
mg.mld_stdmeldinggroep_key
|
|
AND UPPER (mld_stdmeldinggroep_oms) LIKE 'MELDINGEN%'
|
|
AND m.mld_stdmelding_key = sm.mld_stdmelding_key) sla
|
|
WHERE m.mld_melding_spoed = 2 -- alleen met urgentie hoog
|
|
AND m.mld_melding_status = 5 -- alleen afgemelde meldingen
|
|
AND m.mld_alg_onroerendgoed_keys = og.alg_onroerendgoed_keys(+)
|
|
AND m.mld_alg_locatie_key = l.alg_locatie_key(+)
|
|
AND m.mld_melding_key = sla.mld_melding_key
|
|
AND m.mld_stdmelding_key = sm.mld_stdmelding_key
|
|
AND vg.ins_discipline_key = sm.mld_ins_discipline_key
|
|
AND vgt.ins_srtdiscipline_key = vg.ins_srtdiscipline_key
|
|
AND m.prs_perslid_key_voor = p.prs_perslid_key
|
|
AND a.prs_afdeling_key = p.prs_afdeling_key
|
|
AND a.prs_afdeling_parentkey = bu.prs_afdeling_key(+);
|
|
|
|
-- Meldingen met prio laag en normaal
|
|
|
|
CREATE OR REPLACE VIEW BLST_V_RAP_MELDINGEN
|
|
(
|
|
FCLT_3D_LOCATIE_KEY,
|
|
LOCATIE_CODE,
|
|
LOCATIE_OMSCHRIJVING,
|
|
GEBOUW_KEY,
|
|
GEBOUW_CODE,
|
|
GEBOUW_OMSCHRIJVING,
|
|
BUSINESS_UNIT,
|
|
AFDELING,
|
|
MELDING,
|
|
COUNT_MLD,
|
|
MELD_DATUM,
|
|
DATUM_AFGEMELD,
|
|
SLA_WERKDAGEN,
|
|
SLA_WERKUREN,
|
|
DOORLOOPTIJD_EENHEID,
|
|
DOORLOOPTIJD_WERKUREN,
|
|
DOORLOOPTIJD_DAGEN,
|
|
SLA_BEHAALD,
|
|
TELLING_SLA_BEHAALD,
|
|
INT_EXT,
|
|
TELLING_INTERN,
|
|
TELLING_EXTERN
|
|
)
|
|
AS
|
|
SELECT l.alg_locatie_key,
|
|
l.alg_locatie_code,
|
|
l.alg_locatie_omschrijving,
|
|
og.alg_gebouw_key,
|
|
og.alg_gebouw_code gebouw,
|
|
og.alg_gebouw_naam gebouw_naam,
|
|
COALESCE (bu.prs_afdeling_omschrijving,
|
|
a.prs_afdeling_omschrijving) Business_Unit,
|
|
CASE
|
|
WHEN bu.prs_afdeling_omschrijving IS NOT NULL
|
|
THEN
|
|
a.prs_afdeling_naam
|
|
|| ' - '
|
|
|| a.prs_afdeling_omschrijving
|
|
END afdeling,
|
|
m.mld_melding_key,
|
|
1,
|
|
m.mld_melding_datum,
|
|
afgemeld,
|
|
sla.sla_werkdgn,
|
|
sla.sla_werkuren,
|
|
sla.t_doorlooptijd.eenheid,
|
|
DECODE (sla.t_doorlooptijd.eenheid,
|
|
'U', sla.t_doorlooptijd.tijdsduur,
|
|
NULL) doorlooptijd_werkuren,
|
|
DECODE (sla.t_doorlooptijd.eenheid,
|
|
'D', sla.t_doorlooptijd.tijdsduur,
|
|
NULL) doorlooptijd_dagen,
|
|
CASE
|
|
WHEN sla.t_doorlooptijd.eenheid = 'U'
|
|
THEN
|
|
CASE
|
|
WHEN -- dan berekenen of aan de SLA in uren wordt voldaan als sla.t_doorlooptijd.tijdsduur <= sla.sla_werkuren dan sla behaald
|
|
sla.t_doorlooptijd.tijdsduur <= sla.sla_werkuren
|
|
THEN
|
|
'Ja'
|
|
ELSE
|
|
'Nee'
|
|
END
|
|
WHEN sla.t_doorlooptijd.eenheid = 'D'
|
|
THEN
|
|
CASE
|
|
WHEN -- dan berekenen of aan de SLA in uren wordt voldaan als sla.t_doorlooptijd.tijdsduur <= sla.sla_werkuren dan sla behaald
|
|
sla.t_doorlooptijd.tijdsduur <= sla.sla_werkdgn
|
|
THEN
|
|
'Ja'
|
|
ELSE
|
|
'Nee'
|
|
END
|
|
ELSE
|
|
'Onbekend'
|
|
END sla_behaald,
|
|
CASE
|
|
WHEN sla.t_doorlooptijd.eenheid = 'U'
|
|
THEN
|
|
CASE
|
|
WHEN -- dan berekenen of aan de SLA in uren wordt voldaan als sla.t_doorlooptijd.tijdsduur <= sla.sla_werkuren dan sla behaald
|
|
sla.t_doorlooptijd.tijdsduur <= sla.sla_werkuren
|
|
THEN
|
|
1
|
|
ELSE
|
|
0
|
|
END
|
|
WHEN sla.t_doorlooptijd.eenheid = 'D'
|
|
THEN
|
|
CASE
|
|
WHEN -- dan berekenen of aan de SLA in uren wordt voldaan als sla.t_doorlooptijd.tijdsduur <= sla.sla_werkuren dan sla behaald
|
|
sla.t_doorlooptijd.tijdsduur <= sla.sla_werkdgn
|
|
THEN
|
|
1
|
|
ELSE
|
|
0
|
|
END
|
|
ELSE
|
|
0
|
|
END telling_sla,
|
|
MIN (COALESCE (o.opdr_type, 'Intern')) int_ext, -- Als er een externe opdracht is behandelen we de melding altijd als extern
|
|
CASE
|
|
WHEN MIN (COALESCE (o.opdr_type, 'Intern')) = 'Intern' THEN 1
|
|
ELSE 0
|
|
END telling_intern,
|
|
CASE
|
|
WHEN MIN (COALESCE (o.opdr_type, 'Intern')) = 'Extern' THEN 1
|
|
ELSE 0
|
|
END telling_extern
|
|
FROM mld_melding m,
|
|
alg_v_allonrgoed_gegevens og,
|
|
alg_locatie l,
|
|
prs_perslid p,
|
|
prs_afdeling a,
|
|
prs_afdeling bu,
|
|
( SELECT m.mld_melding_key,
|
|
MIN (
|
|
DECODE (mld_typeopdr_upper,
|
|
'INTERNE OPDRACHT', 'Intern',
|
|
'Extern')) opdr_type
|
|
FROM mld_melding m, mld_opdr o, mld_typeopdr t
|
|
WHERE o.mld_melding_key = m.mld_melding_key
|
|
AND o.mld_typeopdr_key = t.mld_typeopdr_key
|
|
GROUP BY m.mld_melding_key) o,
|
|
(SELECT m.mld_melding_key,
|
|
m.mld_melding_datum,
|
|
mld.getmeldingstatusdate (m.mld_melding_key, 5)
|
|
afgemeld,
|
|
m.mld_melding_einddatum
|
|
einddatum,
|
|
DECODE (m.mld_melding_t_uitvoertijd.eenheid,
|
|
'D', m.mld_melding_t_uitvoertijd.tijdsduur,
|
|
NULL)
|
|
sla_werkdgn,
|
|
DECODE (m.mld_melding_t_respijt.eenheid,
|
|
'D', m.mld_melding_t_respijt.tijdsduur,
|
|
NULL)
|
|
sla_respijtdgn,
|
|
DECODE (m.mld_melding_t_uitvoertijd.eenheid,
|
|
'U', m.mld_melding_t_uitvoertijd.tijdsduur,
|
|
NULL)
|
|
sla_werkuren,
|
|
DECODE (m.mld_melding_t_respijt.eenheid,
|
|
'U', m.mld_melding_t_respijt.tijdsduur,
|
|
NULL)
|
|
sla_respijturen,
|
|
mld.getactualuitvoer (m.mld_melding_key)
|
|
t_doorlooptijd
|
|
FROM mld_melding m, mld_stdmelding sm, mld_stdmeldinggroep mg
|
|
WHERE sm.mld_stdmeldinggroep_key =
|
|
mg.mld_stdmeldinggroep_key
|
|
AND UPPER (mld_stdmeldinggroep_oms) LIKE 'MELDINGEN%'
|
|
AND m.mld_stdmelding_key = sm.mld_stdmelding_key) sla
|
|
WHERE m.mld_melding_spoed IN (3, 4) -- alleen met urgentie middel en laag
|
|
AND m.mld_melding_status = 5 -- alleen afgemelde meldingen
|
|
AND m.mld_alg_onroerendgoed_keys = og.alg_onroerendgoed_keys(+)
|
|
AND m.mld_alg_locatie_key = l.alg_locatie_key(+)
|
|
AND m.mld_melding_key = sla.mld_melding_key
|
|
AND o.mld_melding_key(+) = m.mld_melding_key
|
|
AND m.prs_perslid_key_voor = p.prs_perslid_key
|
|
AND a.prs_afdeling_key = p.prs_afdeling_key
|
|
AND a.prs_afdeling_parentkey = bu.prs_afdeling_key(+)
|
|
GROUP BY l.alg_locatie_key,
|
|
l.alg_locatie_code,
|
|
l.alg_locatie_omschrijving,
|
|
COALESCE (bu.prs_afdeling_omschrijving,
|
|
a.prs_afdeling_omschrijving),
|
|
CASE
|
|
WHEN bu.prs_afdeling_omschrijving IS NOT NULL
|
|
THEN
|
|
a.prs_afdeling_naam
|
|
|| ' - '
|
|
|| a.prs_afdeling_omschrijving
|
|
END,
|
|
og.alg_gebouw_key,
|
|
og.alg_gebouw_code,
|
|
og.alg_gebouw_naam,
|
|
m.mld_melding_key,
|
|
1,
|
|
m.mld_melding_datum,
|
|
afgemeld,
|
|
sla.sla_werkdgn,
|
|
sla.sla_werkuren,
|
|
sla.t_doorlooptijd.eenheid,
|
|
DECODE (sla.t_doorlooptijd.eenheid,
|
|
'U', sla.t_doorlooptijd.tijdsduur,
|
|
NULL),
|
|
DECODE (sla.t_doorlooptijd.eenheid,
|
|
'D', sla.t_doorlooptijd.tijdsduur,
|
|
NULL),
|
|
CASE
|
|
WHEN sla.t_doorlooptijd.eenheid = 'U'
|
|
THEN
|
|
CASE
|
|
WHEN -- dan berekenen of aan de SLA in uren wordt voldaan als sla.t_doorlooptijd.tijdsduur <= sla.sla_werkuren dan sla behaald
|
|
sla.t_doorlooptijd.tijdsduur <=
|
|
sla.sla_werkuren
|
|
THEN
|
|
'Ja'
|
|
ELSE
|
|
'Nee'
|
|
END
|
|
WHEN sla.t_doorlooptijd.eenheid = 'D'
|
|
THEN
|
|
CASE
|
|
WHEN -- dan berekenen of aan de SLA in uren wordt voldaan als sla.t_doorlooptijd.tijdsduur <= sla.sla_werkuren dan sla behaald
|
|
sla.t_doorlooptijd.tijdsduur <= sla.sla_werkdgn
|
|
THEN
|
|
'Ja'
|
|
ELSE
|
|
'Nee'
|
|
END
|
|
ELSE
|
|
'Onbekend'
|
|
END,
|
|
CASE
|
|
WHEN sla.t_doorlooptijd.eenheid = 'U'
|
|
THEN
|
|
CASE
|
|
WHEN -- dan berekenen of aan de SLA in uren wordt voldaan als sla.t_doorlooptijd.tijdsduur <= sla.sla_werkuren dan sla behaald
|
|
sla.t_doorlooptijd.tijdsduur <=
|
|
sla.sla_werkuren
|
|
THEN
|
|
1
|
|
ELSE
|
|
0
|
|
END
|
|
WHEN sla.t_doorlooptijd.eenheid = 'D'
|
|
THEN
|
|
CASE
|
|
WHEN -- dan berekenen of aan de SLA in uren wordt voldaan als sla.t_doorlooptijd.tijdsduur <= sla.sla_werkuren dan sla behaald
|
|
sla.t_doorlooptijd.tijdsduur <= sla.sla_werkdgn
|
|
THEN
|
|
1
|
|
ELSE
|
|
0
|
|
END
|
|
ELSE
|
|
0
|
|
END;
|
|
|
|
CREATE OR REPLACE VIEW BLST_V_RAP_MELDINGEN_VG
|
|
(
|
|
ALG_GEBOUW_KEY,
|
|
GEBOUW_CODE,
|
|
GEBOUW_OMSCHRIJVING,
|
|
BUSINESS_UNIT,
|
|
AFDELING,
|
|
VAKGROEPTYPE,
|
|
VAKGROEP,
|
|
MELDING,
|
|
COUNT_MLD,
|
|
MELD_DATUM,
|
|
DATUM_AFGEMELD,
|
|
SLA_BEHAALD,
|
|
TELLING_SLA_BEHAALD
|
|
)
|
|
AS
|
|
SELECT og.alg_gebouw_key,
|
|
og.alg_gebouw_code gebouw,
|
|
og.alg_gebouw_naam gebouw_naam,
|
|
COALESCE (bu.prs_afdeling_omschrijving,
|
|
a.prs_afdeling_omschrijving) Business_Unit,
|
|
CASE
|
|
WHEN bu.prs_afdeling_omschrijving IS NOT NULL
|
|
THEN
|
|
a.prs_afdeling_naam
|
|
|| ' - '
|
|
|| a.prs_afdeling_omschrijving
|
|
END afdeling,
|
|
vgt.ins_srtdiscipline_omschrijving vakgroeptype,
|
|
vg.ins_discipline_omschrijving vakgroep,
|
|
m.mld_melding_key,
|
|
1,
|
|
m.mld_melding_datum,
|
|
afgemeld,
|
|
CASE
|
|
WHEN sla.t_doorlooptijd.eenheid = 'U'
|
|
THEN
|
|
CASE
|
|
WHEN -- dan berekenen of aan de SLA in uren wordt voldaan als sla.t_doorlooptijd.tijdsduur <= sla.sla_werkuren dan sla behaald
|
|
sla.t_doorlooptijd.tijdsduur <= sla.sla_werkuren
|
|
THEN
|
|
'Ja'
|
|
ELSE
|
|
'Nee'
|
|
END
|
|
WHEN sla.t_doorlooptijd.eenheid = 'D'
|
|
THEN
|
|
CASE
|
|
WHEN -- dan berekenen of aan de SLA in uren wordt voldaan als sla.t_doorlooptijd.tijdsduur <= sla.sla_werkuren dan sla behaald
|
|
sla.t_doorlooptijd.tijdsduur <= sla.sla_werkdgn
|
|
THEN
|
|
'Ja'
|
|
ELSE
|
|
'Nee'
|
|
END
|
|
ELSE
|
|
'Onbekend'
|
|
END sla_behaald,
|
|
CASE
|
|
WHEN sla.t_doorlooptijd.eenheid = 'U'
|
|
THEN
|
|
CASE
|
|
WHEN -- dan berekenen of aan de SLA in uren wordt voldaan als sla.t_doorlooptijd.tijdsduur <= sla.sla_werkuren dan sla behaald
|
|
sla.t_doorlooptijd.tijdsduur <= sla.sla_werkuren
|
|
THEN
|
|
1
|
|
ELSE
|
|
0
|
|
END
|
|
WHEN sla.t_doorlooptijd.eenheid = 'D'
|
|
THEN
|
|
CASE
|
|
WHEN -- dan berekenen of aan de SLA in uren wordt voldaan als sla.t_doorlooptijd.tijdsduur <= sla.sla_werkuren dan sla behaald
|
|
sla.t_doorlooptijd.tijdsduur <= sla.sla_werkdgn
|
|
THEN
|
|
1
|
|
ELSE
|
|
0
|
|
END
|
|
ELSE
|
|
0
|
|
END telling_sla
|
|
FROM mld_melding m,
|
|
mld_stdmelding sm,
|
|
ins_tab_discipline vg,
|
|
ins_srtdiscipline vgt,
|
|
alg_v_allonrgoed_gegevens og,
|
|
alg_locatie l,
|
|
prs_perslid p,
|
|
prs_afdeling a,
|
|
prs_afdeling bu,
|
|
(SELECT m.mld_melding_key,
|
|
m.mld_melding_datum,
|
|
mld.getmeldingstatusdate (m.mld_melding_key, 5)
|
|
afgemeld,
|
|
m.mld_melding_einddatum
|
|
einddatum,
|
|
DECODE (m.mld_melding_t_uitvoertijd.eenheid,
|
|
'D', m.mld_melding_t_uitvoertijd.tijdsduur,
|
|
NULL)
|
|
sla_werkdgn,
|
|
DECODE (m.mld_melding_t_respijt.eenheid,
|
|
'D', m.mld_melding_t_respijt.tijdsduur,
|
|
NULL)
|
|
sla_respijtdgn,
|
|
DECODE (m.mld_melding_t_uitvoertijd.eenheid,
|
|
'U', m.mld_melding_t_uitvoertijd.tijdsduur,
|
|
NULL)
|
|
sla_werkuren,
|
|
DECODE (m.mld_melding_t_respijt.eenheid,
|
|
'U', m.mld_melding_t_respijt.tijdsduur,
|
|
NULL)
|
|
sla_respijturen,
|
|
mld.getactualuitvoer (m.mld_melding_key)
|
|
t_doorlooptijd
|
|
FROM mld_melding m, mld_stdmelding sm, mld_stdmeldinggroep mg
|
|
WHERE sm.mld_stdmeldinggroep_key =
|
|
mg.mld_stdmeldinggroep_key
|
|
AND UPPER (mld_stdmeldinggroep_oms) LIKE 'MELDINGEN%'
|
|
AND m.mld_stdmelding_key = sm.mld_stdmelding_key) sla
|
|
WHERE m.mld_melding_spoed IN (3, 4) -- alleen met urgentie middel en laag
|
|
AND m.mld_melding_status = 5 -- alleen afgemelde meldingen
|
|
AND m.mld_alg_onroerendgoed_keys = og.alg_onroerendgoed_keys(+)
|
|
AND m.mld_alg_locatie_key = l.alg_locatie_key(+)
|
|
AND m.mld_melding_key = sla.mld_melding_key
|
|
AND m.mld_stdmelding_key = sm.mld_stdmelding_key
|
|
AND vg.ins_discipline_key = sm.mld_ins_discipline_key
|
|
AND vgt.ins_srtdiscipline_key = vg.ins_srtdiscipline_key
|
|
AND m.prs_perslid_key_voor = p.prs_perslid_key
|
|
AND a.prs_afdeling_key = p.prs_afdeling_key
|
|
AND a.prs_afdeling_parentkey = bu.prs_afdeling_key(+);
|
|
|
|
CREATE OR REPLACE VIEW BLST_V_RAP_URGENTE_MELDINGEN_VG
|
|
(
|
|
ALG_GEBOUW_KEY,
|
|
GEBOUW_CODE,
|
|
GEBOUW_OMSCHRIJVING,
|
|
BUSINESS_UNIT,
|
|
AFDELING,
|
|
VAKGROEPTYPE,
|
|
VAKGROEP,
|
|
MELDING,
|
|
COUNT_MLD,
|
|
MELD_DATUM,
|
|
DATUM_AFGEMELD,
|
|
SLA_BEHAALD,
|
|
TELLING_SLA_BEHAALD
|
|
)
|
|
AS
|
|
SELECT og.alg_gebouw_key,
|
|
og.alg_gebouw_code gebouw,
|
|
og.alg_gebouw_naam gebouw_naam,
|
|
COALESCE (bu.prs_afdeling_omschrijving,
|
|
a.prs_afdeling_omschrijving) Business_Unit,
|
|
CASE
|
|
WHEN bu.prs_afdeling_omschrijving IS NOT NULL
|
|
THEN
|
|
a.prs_afdeling_naam
|
|
|| ' - '
|
|
|| a.prs_afdeling_omschrijving
|
|
END afdeling,
|
|
vgt.ins_srtdiscipline_omschrijving vakgroeptype,
|
|
vg.ins_discipline_omschrijving vakgroep,
|
|
m.mld_melding_key,
|
|
1,
|
|
m.mld_melding_datum,
|
|
afgemeld,
|
|
CASE
|
|
WHEN sla.t_doorlooptijd.tijdsduur <= sla.sla_werkuren
|
|
THEN
|
|
'Ja'
|
|
ELSE
|
|
'Nee'
|
|
END sla_behaald,
|
|
CASE
|
|
WHEN sla.t_doorlooptijd.tijdsduur <= sla.sla_werkuren THEN 1
|
|
ELSE 0
|
|
END telling_sla
|
|
FROM mld_melding m,
|
|
mld_stdmelding sm,
|
|
ins_tab_discipline vg,
|
|
ins_srtdiscipline vgt,
|
|
alg_v_allonrgoed_gegevens og,
|
|
alg_locatie l,
|
|
prs_perslid p,
|
|
prs_afdeling a,
|
|
prs_afdeling bu,
|
|
(SELECT m.mld_melding_key,
|
|
m.mld_melding_datum,
|
|
mld.getmeldingstatusdate (m.mld_melding_key, 5)
|
|
afgemeld,
|
|
m.mld_melding_einddatum
|
|
einddatum,
|
|
DECODE (m.mld_melding_t_uitvoertijd.eenheid,
|
|
'D', m.mld_melding_t_uitvoertijd.tijdsduur,
|
|
NULL)
|
|
sla_werkdgn,
|
|
DECODE (m.mld_melding_t_respijt.eenheid,
|
|
'D', m.mld_melding_t_respijt.tijdsduur,
|
|
NULL)
|
|
sla_respijtdgn,
|
|
DECODE (m.mld_melding_t_uitvoertijd.eenheid,
|
|
'U', m.mld_melding_t_uitvoertijd.tijdsduur,
|
|
NULL)
|
|
sla_werkuren,
|
|
DECODE (m.mld_melding_t_respijt.eenheid,
|
|
'U', m.mld_melding_t_respijt.tijdsduur,
|
|
NULL)
|
|
sla_respijturen,
|
|
mld.getactualuitvoer (m.mld_melding_key)
|
|
t_doorlooptijd
|
|
FROM mld_melding m, mld_stdmelding sm, mld_stdmeldinggroep mg
|
|
WHERE sm.mld_stdmeldinggroep_key =
|
|
mg.mld_stdmeldinggroep_key
|
|
AND UPPER (mld_stdmeldinggroep_oms) LIKE 'MELDINGEN%'
|
|
AND m.mld_stdmelding_key = sm.mld_stdmelding_key) sla
|
|
WHERE m.mld_melding_spoed = 2 -- alleen met urgentie hoog
|
|
AND m.mld_melding_status = 5 -- alleen afgemelde meldingen
|
|
AND m.mld_alg_onroerendgoed_keys = og.alg_onroerendgoed_keys(+)
|
|
AND m.mld_alg_locatie_key = l.alg_locatie_key(+)
|
|
AND m.mld_melding_key = sla.mld_melding_key
|
|
AND m.mld_stdmelding_key = sm.mld_stdmelding_key
|
|
AND vg.ins_discipline_key = sm.mld_ins_discipline_key
|
|
AND vgt.ins_srtdiscipline_key = vg.ins_srtdiscipline_key
|
|
AND m.prs_perslid_key_voor = p.prs_perslid_key
|
|
AND a.prs_afdeling_key = p.prs_afdeling_key
|
|
AND a.prs_afdeling_parentkey = bu.prs_afdeling_key(+);
|
|
|
|
-------------------------------------------
|
|
--- Vanaf hier de rapporten voor de RTM ---
|
|
-------------------------------------------
|
|
|
|
CREATE OR REPLACE VIEW BLST_V_SELCT_VG
|
|
AS
|
|
SELECT l.alg_locatie_key,
|
|
l.alg_locatie_code,
|
|
l.alg_locatie_omschrijving,
|
|
g.alg_gebouw_key,
|
|
g.alg_gebouw_naam,
|
|
g.alg_gebouw_code,
|
|
g.alg_gebouw_omschrijving
|
|
FROM alg_locatie l, alg_gebouw g
|
|
WHERE l.alg_locatie_key = g.alg_locatie_key;
|
|
|
|
CREATE OR REPLACE VIEW BLST_V_RAP_SLA_BASIS
|
|
AS
|
|
SELECT m.mld_melding_key,
|
|
m.mld_melding_datum,
|
|
m.mld_melding_einddatum einddatum,
|
|
m.mld_melding_acceptdatum_std,
|
|
m.mld_melding_einddatum_std,
|
|
DECODE (m.mld_melding_t_accepttijd.eenheid,
|
|
'D', m.mld_melding_t_accepttijd.tijdsduur,
|
|
NULL) sla_accptdgn,
|
|
DECODE (m.mld_melding_t_accepttijd.eenheid,
|
|
'U', m.mld_melding_t_accepttijd.tijdsduur,
|
|
NULL) sla_accpturen,
|
|
DECODE (m.mld_melding_t_uitvoertijd.eenheid,
|
|
'D', m.mld_melding_t_uitvoertijd.tijdsduur,
|
|
NULL) sla_werkdgn,
|
|
DECODE (m.mld_melding_t_respijt.eenheid,
|
|
'D', m.mld_melding_t_respijt.tijdsduur,
|
|
NULL) sla_respijtdgn,
|
|
DECODE (m.mld_melding_t_uitvoertijd.eenheid,
|
|
'U', m.mld_melding_t_uitvoertijd.tijdsduur,
|
|
NULL) sla_werkuren,
|
|
DECODE (m.mld_melding_t_respijt.eenheid,
|
|
'U', m.mld_melding_t_respijt.tijdsduur,
|
|
NULL) sla_respijturen,
|
|
mld.getactualuitvoer (m.mld_melding_key) t_doorlooptijd
|
|
FROM mld_melding m, mld_stdmelding sm
|
|
WHERE m.mld_stdmelding_key = sm.mld_stdmelding_key;
|
|
|
|
CREATE OR REPLACE VIEW BLST_V_RAP_KLANTCONT_OPEN
|
|
(
|
|
FCLT_3D_LOCATIE_KEY,
|
|
locatie_code,
|
|
locatie_omschrijving,
|
|
alg_gebouw_key,
|
|
gebouw,
|
|
gebouw_naam,
|
|
business_unit,
|
|
afdeling,
|
|
vg_key,
|
|
melding_omschr,
|
|
melding,
|
|
melding_datum,
|
|
stand_acc_datum,
|
|
acc_verstreken
|
|
)
|
|
AS
|
|
SELECT l.alg_locatie_key,
|
|
l.alg_locatie_code,
|
|
l.alg_locatie_omschrijving,
|
|
og.alg_gebouw_key,
|
|
og.alg_gebouw_code gebouw,
|
|
og.alg_gebouw_naam gebouw_naam,
|
|
COALESCE (bu.prs_afdeling_omschrijving,
|
|
a.prs_afdeling_omschrijving) Business_Unit,
|
|
CASE
|
|
WHEN bu.prs_afdeling_omschrijving IS NOT NULL
|
|
THEN
|
|
a.prs_afdeling_naam
|
|
|| ' - '
|
|
|| a.prs_afdeling_omschrijving
|
|
END afdeling,
|
|
vg.ins_discipline_key vg_key,
|
|
sm.mld_stdmelding_omschrijving,
|
|
m.mld_melding_key,
|
|
sla.mld_melding_datum,
|
|
m.mld_melding_acceptdatum_std,
|
|
CASE
|
|
WHEN m.mld_melding_acceptdatum_std > SYSDATE THEN 'Op tijd'
|
|
ELSE 'Te laat'
|
|
END AS acc_tijd_verstreken
|
|
FROM BLST_V_RAP_SLA_BASIS sla,
|
|
mld_melding m,
|
|
mld_stdmelding sm,
|
|
ins_tab_discipline vg,
|
|
alg_v_allonrgoed_gegevens og,
|
|
alg_locatie l,
|
|
alg_gebouw g,
|
|
prs_perslid p,
|
|
prs_afdeling a,
|
|
prs_afdeling bu
|
|
WHERE m.mld_melding_key = sla.mld_melding_key
|
|
AND m.mld_alg_onroerendgoed_keys = og.alg_onroerendgoed_keys(+)
|
|
AND m.mld_alg_locatie_key = l.alg_locatie_key(+)
|
|
AND og.alg_gebouw_key = g.alg_gebouw_key
|
|
AND m.mld_stdmelding_key = sm.mld_stdmelding_key
|
|
AND sm.mld_ins_discipline_key = vg.ins_discipline_key
|
|
AND m.mld_melding_status = 2 -- alleen nieuwe meldingen tellen mee
|
|
AND UPPER (vg.ins_discipline_omschrijving) = 'CONTACT FCC'
|
|
AND m.prs_perslid_key_voor = p.prs_perslid_key
|
|
AND a.prs_afdeling_key = p.prs_afdeling_key
|
|
AND a.prs_afdeling_parentkey = bu.prs_afdeling_key(+);
|
|
|
|
CREATE OR REPLACE VIEW BLST_V_RAP_KLANTCONT_IN_BEH
|
|
(
|
|
FCLT_3D_LOCATIE_KEY,
|
|
locatie_code,
|
|
locatie_omschrijving,
|
|
alg_gebouw_key,
|
|
gebouw,
|
|
gebouw_naam,
|
|
business_unit,
|
|
afdeling,
|
|
vg_key,
|
|
melding_omschr,
|
|
melding,
|
|
melding_datum,
|
|
stand_beh_datum,
|
|
beh_verstreken
|
|
)
|
|
AS
|
|
SELECT l.alg_locatie_key,
|
|
l.alg_locatie_code,
|
|
l.alg_locatie_omschrijving,
|
|
og.alg_gebouw_key,
|
|
og.alg_gebouw_code gebouw,
|
|
og.alg_gebouw_naam gebouw_naam,
|
|
COALESCE (bu.prs_afdeling_omschrijving,
|
|
a.prs_afdeling_omschrijving) Business_Unit,
|
|
CASE
|
|
WHEN bu.prs_afdeling_omschrijving IS NOT NULL
|
|
THEN
|
|
a.prs_afdeling_naam
|
|
|| ' - '
|
|
|| a.prs_afdeling_omschrijving
|
|
END afdeling,
|
|
vg.ins_discipline_key vg_key,
|
|
sm.mld_stdmelding_omschrijving,
|
|
m.mld_melding_key,
|
|
sla.mld_melding_datum,
|
|
sla.mld_melding_einddatum_std,
|
|
CASE
|
|
WHEN SYSDATE > sla.mld_melding_einddatum_std
|
|
THEN
|
|
'Te laat'
|
|
WHEN ( SYSDATE <= sla.mld_melding_einddatum_std
|
|
AND blst.aantal_weekdagen (
|
|
SYSDATE,
|
|
sla.mld_melding_einddatum_std) =
|
|
1)
|
|
THEN
|
|
'Binnenkort'
|
|
WHEN ( SYSDATE <= sla.mld_melding_einddatum_std
|
|
AND blst.aantal_weekdagen (
|
|
SYSDATE,
|
|
sla.mld_melding_einddatum_std) >
|
|
1)
|
|
THEN
|
|
'Op tijd'
|
|
END AS beh_tijd_verstreken
|
|
FROM BLST_V_RAP_SLA_BASIS sla,
|
|
mld_melding m,
|
|
mld_stdmelding sm,
|
|
ins_tab_discipline vg,
|
|
alg_v_allonrgoed_gegevens og,
|
|
alg_locatie l,
|
|
alg_gebouw g,
|
|
prs_perslid p,
|
|
prs_afdeling a,
|
|
prs_afdeling bu
|
|
WHERE m.mld_melding_key = sla.mld_melding_key
|
|
AND m.mld_alg_onroerendgoed_keys = og.alg_onroerendgoed_keys(+)
|
|
AND m.mld_alg_locatie_key = l.alg_locatie_key(+)
|
|
AND og.alg_gebouw_key = g.alg_gebouw_key
|
|
AND m.mld_stdmelding_key = sm.mld_stdmelding_key
|
|
AND sm.mld_ins_discipline_key = vg.ins_discipline_key
|
|
AND m.mld_melding_status IN (4, 7) -- alleen meldingen die in behandeling zijn tellen mee
|
|
AND UPPER (vg.ins_discipline_omschrijving) = 'CONTACT FCC'
|
|
AND m.prs_perslid_key_voor = p.prs_perslid_key
|
|
AND a.prs_afdeling_key = p.prs_afdeling_key
|
|
AND a.prs_afdeling_parentkey = bu.prs_afdeling_key(+);
|
|
|
|
CREATE OR REPLACE VIEW BLST_V_RAP_AANVRAGEN_OPEN
|
|
(
|
|
FCLT_3D_LOCATIE_KEY,
|
|
LOCATIE_CODE,
|
|
LOCATIE_OMSCHRIJVING,
|
|
ALG_GEBOUW_KEY,
|
|
GEBOUW,
|
|
GEBOUW_NAAM,
|
|
BUSINESS_UNIT,
|
|
AFDELING,
|
|
MLD_GROEP,
|
|
MLD_GROEP_OMSCHRIJVING,
|
|
MELDING_OMSCHR,
|
|
TELLING,
|
|
MELDING,
|
|
MELDING_DATUM,
|
|
STAND_ACC_DATUM,
|
|
ACC_VERSTREKEN
|
|
)
|
|
AS
|
|
SELECT l.alg_locatie_key,
|
|
l.alg_locatie_code,
|
|
l.alg_locatie_omschrijving,
|
|
og.alg_gebouw_key,
|
|
og.alg_gebouw_code gebouw,
|
|
og.alg_gebouw_naam gebouw_naam,
|
|
COALESCE (bu.prs_afdeling_omschrijving,
|
|
a.prs_afdeling_omschrijving) Business_Unit,
|
|
CASE
|
|
WHEN bu.prs_afdeling_omschrijving IS NOT NULL
|
|
THEN
|
|
a.prs_afdeling_naam
|
|
|| ' - '
|
|
|| a.prs_afdeling_omschrijving
|
|
END afdeling,
|
|
mg.mld_stdmeldinggroep_key mldgrp_key,
|
|
mg.mld_stdmeldinggroep_oms mldgrp_omschrijving,
|
|
sm.mld_stdmelding_omschrijving,
|
|
1 telling,
|
|
m.mld_melding_key,
|
|
sla.mld_melding_datum,
|
|
m.mld_melding_acceptdatum_std,
|
|
CASE
|
|
WHEN m.mld_melding_acceptdatum_std > SYSDATE THEN 'Op tijd'
|
|
ELSE 'Te laat'
|
|
END AS acc_tijd_verstreken
|
|
FROM BLST_V_RAP_SLA_BASIS sla,
|
|
mld_melding m,
|
|
mld_stdmelding sm,
|
|
mld_stdmeldinggroep mg,
|
|
ins_tab_discipline vg,
|
|
alg_v_allonrgoed_gegevens og,
|
|
alg_locatie l,
|
|
alg_gebouw g,
|
|
prs_perslid p,
|
|
prs_afdeling a,
|
|
prs_afdeling bu
|
|
WHERE m.mld_melding_key = sla.mld_melding_key
|
|
AND m.mld_alg_onroerendgoed_keys = og.alg_onroerendgoed_keys(+)
|
|
AND m.mld_alg_locatie_key = l.alg_locatie_key(+)
|
|
AND og.alg_gebouw_key = g.alg_gebouw_key
|
|
AND m.mld_stdmelding_key = sm.mld_stdmelding_key
|
|
AND sm.mld_ins_discipline_key = vg.ins_discipline_key
|
|
AND mg.mld_stdmeldinggroep_key = sm.mld_stdmeldinggroep_key
|
|
AND m.mld_melding_status = 2 -- alleen nieuwe meldingen tellen mee
|
|
AND UPPER (mg.mld_stdmeldinggroep_oms) LIKE 'AANVRAGEN%'
|
|
AND m.prs_perslid_key_voor = p.prs_perslid_key
|
|
AND a.prs_afdeling_key = p.prs_afdeling_key
|
|
AND a.prs_afdeling_parentkey = bu.prs_afdeling_key(+);
|
|
|
|
CREATE OR REPLACE VIEW BLST_V_RAP_AANVRAGEN_IN_BEH
|
|
(
|
|
FCLT_3D_LOCATIE_KEY,
|
|
locatie_code,
|
|
locatie_omschrijving,
|
|
alg_gebouw_key,
|
|
gebouw,
|
|
gebouw_naam,
|
|
business_unit,
|
|
afdeling,
|
|
mld_groep,
|
|
mld_groep_omschrijving,
|
|
melding_omschr,
|
|
melding,
|
|
melding_datum,
|
|
stand_beh_datum,
|
|
beh_verstreken
|
|
)
|
|
AS
|
|
SELECT l.alg_locatie_key,
|
|
l.alg_locatie_code,
|
|
l.alg_locatie_omschrijving,
|
|
og.alg_gebouw_key,
|
|
og.alg_gebouw_code gebouw,
|
|
og.alg_gebouw_naam gebouw_naam,
|
|
COALESCE (bu.prs_afdeling_omschrijving,
|
|
a.prs_afdeling_omschrijving) Business_Unit,
|
|
CASE
|
|
WHEN bu.prs_afdeling_omschrijving IS NOT NULL
|
|
THEN
|
|
a.prs_afdeling_naam
|
|
|| ' - '
|
|
|| a.prs_afdeling_omschrijving
|
|
END afdeling,
|
|
mg.mld_stdmeldinggroep_key mldgrp_key,
|
|
mg.mld_stdmeldinggroep_oms mldgrp_omschrijving,
|
|
sm.mld_stdmelding_omschrijving,
|
|
m.mld_melding_key,
|
|
sla.mld_melding_datum,
|
|
sla.mld_melding_einddatum_std,
|
|
CASE
|
|
WHEN SYSDATE > sla.mld_melding_einddatum_std
|
|
THEN
|
|
'Te laat'
|
|
WHEN ( SYSDATE <= sla.mld_melding_einddatum_std
|
|
AND blst.aantal_weekdagen (
|
|
SYSDATE,
|
|
sla.mld_melding_einddatum_std) =
|
|
1)
|
|
THEN
|
|
'Binnenkort'
|
|
WHEN ( SYSDATE <= sla.mld_melding_einddatum_std
|
|
AND blst.aantal_weekdagen (
|
|
SYSDATE,
|
|
sla.mld_melding_einddatum_std) >
|
|
1)
|
|
THEN
|
|
'Op tijd'
|
|
END AS beh_tijd_verstreken
|
|
FROM BLST_V_RAP_SLA_BASIS sla,
|
|
mld_melding m,
|
|
mld_stdmelding sm,
|
|
mld_stdmeldinggroep mg,
|
|
ins_tab_discipline vg,
|
|
alg_v_allonrgoed_gegevens og,
|
|
alg_locatie l,
|
|
alg_gebouw g,
|
|
prs_perslid p,
|
|
prs_afdeling a,
|
|
prs_afdeling bu
|
|
WHERE m.mld_melding_key = sla.mld_melding_key
|
|
AND m.mld_alg_onroerendgoed_keys = og.alg_onroerendgoed_keys(+)
|
|
AND m.mld_alg_locatie_key = l.alg_locatie_key(+)
|
|
AND og.alg_gebouw_key = g.alg_gebouw_key
|
|
AND m.mld_stdmelding_key = sm.mld_stdmelding_key
|
|
AND sm.mld_ins_discipline_key = vg.ins_discipline_key
|
|
AND mg.mld_stdmeldinggroep_key = sm.mld_stdmeldinggroep_key
|
|
AND m.mld_melding_status IN (4, 7) -- alleen meldingen die in behandeling zijn tellen mee
|
|
AND UPPER (mg.mld_stdmeldinggroep_oms) LIKE 'AANVRAGEN%'
|
|
AND m.prs_perslid_key_voor = p.prs_perslid_key
|
|
AND a.prs_afdeling_key = p.prs_afdeling_key
|
|
AND a.prs_afdeling_parentkey = bu.prs_afdeling_key(+);
|
|
|
|
CREATE OR REPLACE VIEW BLST_V_RAP_MELDINGEN_OPEN
|
|
(
|
|
FCLT_3D_LOCATIE_KEY,
|
|
locatie_code,
|
|
locatie_omschrijving,
|
|
alg_gebouw_key,
|
|
gebouw,
|
|
gebouw_naam,
|
|
business_unit,
|
|
afdeling,
|
|
mld_groep,
|
|
mld_groep_omschrijving,
|
|
melding_omschr,
|
|
melding,
|
|
melding_datum,
|
|
stand_acc_datum,
|
|
acc_verstreken
|
|
)
|
|
AS
|
|
SELECT l.alg_locatie_key,
|
|
l.alg_locatie_code,
|
|
l.alg_locatie_omschrijving,
|
|
og.alg_gebouw_key,
|
|
og.alg_gebouw_code gebouw,
|
|
og.alg_gebouw_naam gebouw_naam,
|
|
COALESCE (bu.prs_afdeling_omschrijving,
|
|
a.prs_afdeling_omschrijving) Business_Unit,
|
|
CASE
|
|
WHEN bu.prs_afdeling_omschrijving IS NOT NULL
|
|
THEN
|
|
a.prs_afdeling_naam
|
|
|| ' - '
|
|
|| a.prs_afdeling_omschrijving
|
|
END afdeling,
|
|
mg.mld_stdmeldinggroep_key mldgrp_key,
|
|
mg.mld_stdmeldinggroep_oms mldgrp_omschrijving,
|
|
sm.mld_stdmelding_omschrijving,
|
|
m.mld_melding_key,
|
|
sla.mld_melding_datum,
|
|
m.mld_melding_acceptdatum_std,
|
|
CASE
|
|
WHEN m.mld_melding_acceptdatum_std > SYSDATE THEN 'Op tijd'
|
|
ELSE 'Te laat'
|
|
END AS acc_tijd_verstreken
|
|
FROM BLST_V_RAP_SLA_BASIS sla,
|
|
mld_melding m,
|
|
mld_stdmelding sm,
|
|
mld_stdmeldinggroep mg,
|
|
ins_tab_discipline vg,
|
|
alg_v_allonrgoed_gegevens og,
|
|
alg_locatie l,
|
|
alg_gebouw g,
|
|
prs_perslid p,
|
|
prs_afdeling a,
|
|
prs_afdeling bu
|
|
WHERE m.mld_melding_key = sla.mld_melding_key
|
|
AND m.mld_alg_onroerendgoed_keys = og.alg_onroerendgoed_keys(+)
|
|
AND m.mld_alg_locatie_key = l.alg_locatie_key(+)
|
|
AND og.alg_gebouw_key = g.alg_gebouw_key
|
|
AND m.mld_stdmelding_key = sm.mld_stdmelding_key
|
|
AND sm.mld_ins_discipline_key = vg.ins_discipline_key
|
|
AND mg.mld_stdmeldinggroep_key = sm.mld_stdmeldinggroep_key
|
|
AND m.mld_melding_status = 2 -- alleen nieuwe meldingen tellen mee
|
|
AND UPPER (mg.mld_stdmeldinggroep_oms) LIKE 'MELDINGEN%'
|
|
AND m.prs_perslid_key_voor = p.prs_perslid_key
|
|
AND a.prs_afdeling_key = p.prs_afdeling_key
|
|
AND a.prs_afdeling_parentkey = bu.prs_afdeling_key(+);
|
|
|
|
CREATE OR REPLACE VIEW BLST_V_RAP_MELDINGEN_IN_BEH
|
|
(
|
|
FCLT_3D_LOCATIE_KEY,
|
|
locatie_code,
|
|
locatie_omschrijving,
|
|
alg_gebouw_key,
|
|
gebouw,
|
|
gebouw_naam,
|
|
business_unit,
|
|
afdeling,
|
|
mld_groep,
|
|
mld_groep_omschrijving,
|
|
melding_omschr,
|
|
melding,
|
|
melding_datum,
|
|
stand_beh_datum,
|
|
beh_verstreken
|
|
)
|
|
AS
|
|
SELECT l.alg_locatie_key,
|
|
l.alg_locatie_code,
|
|
l.alg_locatie_omschrijving,
|
|
og.alg_gebouw_key,
|
|
og.alg_gebouw_code gebouw,
|
|
og.alg_gebouw_naam gebouw_naam,
|
|
COALESCE (bu.prs_afdeling_omschrijving,
|
|
a.prs_afdeling_omschrijving) Business_Unit,
|
|
CASE
|
|
WHEN bu.prs_afdeling_omschrijving IS NOT NULL
|
|
THEN
|
|
a.prs_afdeling_naam
|
|
|| ' - '
|
|
|| a.prs_afdeling_omschrijving
|
|
END afdeling,
|
|
mg.mld_stdmeldinggroep_key mldgrp_key,
|
|
mg.mld_stdmeldinggroep_oms mldgrp_omschrijving,
|
|
sm.mld_stdmelding_omschrijving,
|
|
m.mld_melding_key,
|
|
sla.mld_melding_datum,
|
|
sla.mld_melding_einddatum_std,
|
|
CASE
|
|
WHEN SYSDATE > sla.mld_melding_einddatum_std
|
|
THEN
|
|
'Te laat'
|
|
WHEN ( SYSDATE <= sla.mld_melding_einddatum_std
|
|
AND blst.aantal_weekdagen (
|
|
SYSDATE,
|
|
sla.mld_melding_einddatum_std) =
|
|
1)
|
|
THEN
|
|
'Binnenkort'
|
|
WHEN ( SYSDATE <= sla.mld_melding_einddatum_std
|
|
AND blst.aantal_weekdagen (
|
|
SYSDATE,
|
|
sla.mld_melding_einddatum_std) >
|
|
1)
|
|
THEN
|
|
'Op tijd'
|
|
END AS beh_tijd_verstreken
|
|
FROM blst_v_rap_sla_basis sla,
|
|
mld_melding m,
|
|
mld_stdmelding sm,
|
|
mld_stdmeldinggroep mg,
|
|
ins_tab_discipline vg,
|
|
alg_v_allonrgoed_gegevens og,
|
|
alg_locatie l,
|
|
alg_gebouw g,
|
|
prs_perslid p,
|
|
prs_afdeling a,
|
|
prs_afdeling bu
|
|
WHERE m.mld_melding_key = sla.mld_melding_key
|
|
AND m.mld_alg_onroerendgoed_keys = og.alg_onroerendgoed_keys(+)
|
|
AND m.mld_alg_locatie_key = l.alg_locatie_key(+)
|
|
AND og.alg_gebouw_key = g.alg_gebouw_key
|
|
AND m.mld_stdmelding_key = sm.mld_stdmelding_key
|
|
AND sm.mld_ins_discipline_key = vg.ins_discipline_key
|
|
AND mg.mld_stdmeldinggroep_key = sm.mld_stdmeldinggroep_key
|
|
AND m.mld_melding_status IN (4, 7) -- alleen meldingen die in behandeling zijn tellen mee
|
|
AND UPPER (mg.mld_stdmeldinggroep_oms) LIKE 'MELDINGEN%'
|
|
AND m.prs_perslid_key_voor = p.prs_perslid_key
|
|
AND a.prs_afdeling_key = p.prs_afdeling_key
|
|
AND a.prs_afdeling_parentkey = bu.prs_afdeling_key(+);
|
|
|
|
CREATE OR REPLACE VIEW BLST_V_RAP_OPDRACHTEN_IN_BEH
|
|
(
|
|
FCLT_3D_LOCATIE_KEY,
|
|
LOCATIE_CODE,
|
|
LOCATIE_OMSCHRIJVING,
|
|
GEBOUW,
|
|
GEBOUW_NAAM,
|
|
BUSINESS_UNIT,
|
|
AFDELING,
|
|
TYPE_OPDR,
|
|
OPDRACHT,
|
|
MELDING_DATUM,
|
|
STAND_BEH_DATUM,
|
|
BEH_VERSTREKEN
|
|
)
|
|
AS
|
|
SELECT l.alg_locatie_key,
|
|
l.alg_locatie_code,
|
|
l.alg_locatie_omschrijving,
|
|
og.alg_gebouw_code gebouw,
|
|
og.alg_gebouw_naam gebouw_naam,
|
|
COALESCE (bu.prs_afdeling_omschrijving,
|
|
a.prs_afdeling_omschrijving) Business_Unit,
|
|
CASE
|
|
WHEN bu.prs_afdeling_omschrijving IS NOT NULL
|
|
THEN
|
|
a.prs_afdeling_naam
|
|
|| ' - '
|
|
|| a.prs_afdeling_omschrijving
|
|
END afdeling,
|
|
ot.mld_typeopdr_omschrijving type_opdr,
|
|
o.mld_opdr_key,
|
|
sla.mld_melding_datum,
|
|
sla.mld_melding_einddatum_std,
|
|
CASE
|
|
WHEN SYSDATE > sla.mld_melding_einddatum_std
|
|
THEN
|
|
'Te laat'
|
|
WHEN ( SYSDATE <= sla.mld_melding_einddatum_std
|
|
AND blst.aantal_weekdagen (
|
|
SYSDATE,
|
|
sla.mld_melding_einddatum_std) =
|
|
1)
|
|
THEN
|
|
'Binnenkort'
|
|
WHEN ( SYSDATE <= sla.mld_melding_einddatum_std
|
|
AND blst.aantal_weekdagen (
|
|
SYSDATE,
|
|
sla.mld_melding_einddatum_std) >
|
|
1)
|
|
THEN
|
|
'Op tijd'
|
|
END AS beh_tijd_verstreken
|
|
FROM blst_v_rap_sla_basis sla,
|
|
mld_melding m,
|
|
mld_opdr o,
|
|
mld_typeopdr ot,
|
|
alg_v_allonrgoed_gegevens og,
|
|
alg_locatie l,
|
|
alg_gebouw g,
|
|
prs_perslid p,
|
|
prs_afdeling a,
|
|
prs_afdeling bu
|
|
WHERE m.mld_melding_key = sla.mld_melding_key
|
|
AND o.mld_melding_key = m.mld_melding_key
|
|
AND m.mld_alg_onroerendgoed_keys = og.alg_onroerendgoed_keys(+)
|
|
AND m.mld_alg_locatie_key = l.alg_locatie_key(+)
|
|
AND og.alg_gebouw_key = g.alg_gebouw_key
|
|
AND ot.mld_typeopdr_key = o.mld_typeopdr_key
|
|
AND o.mld_statusopdr_key IN (5, 8) -- alleen opdrachten die bij de leverancier liggen
|
|
AND ot.mld_typeopdr_upper <> 'KOFFIELEVERANCIER'
|
|
AND m.prs_perslid_key_voor = p.prs_perslid_key
|
|
AND a.prs_afdeling_key = p.prs_afdeling_key
|
|
AND a.prs_afdeling_parentkey = bu.prs_afdeling_key(+);
|
|
|
|
CREATE OR REPLACE VIEW BLST_V_RAP_OPL_PWA
|
|
(
|
|
FCLT_3D_LOCATIE_KEY,
|
|
LOCATIE_CODE,
|
|
LOCATIE_OMSCHRIJVING,
|
|
PLAATS,
|
|
GEBOUW_CODE,
|
|
GEBOUW,
|
|
BUSINESS_UNIT,
|
|
AFDELING,
|
|
MELDING,
|
|
MELDING_TELLING,
|
|
AFGEMELD,
|
|
OP_TIJD
|
|
)
|
|
AS
|
|
SELECT l.alg_locatie_key,
|
|
l.alg_locatie_code locatie,
|
|
l.alg_locatie_omschrijving locatie_omschrijving,
|
|
l.alg_locatie_plaats locatie_plaats,
|
|
og.alg_gebouw_code gebouw,
|
|
og.alg_gebouw_naam gebouw_naam,
|
|
COALESCE (bu.prs_afdeling_omschrijving,
|
|
a.prs_afdeling_omschrijving) Business_Unit,
|
|
CASE
|
|
WHEN bu.prs_afdeling_omschrijving IS NOT NULL
|
|
THEN
|
|
a.prs_afdeling_naam
|
|
|| ' - '
|
|
|| a.prs_afdeling_omschrijving
|
|
END afdeling,
|
|
m.mld_melding_key melding_key,
|
|
1,
|
|
mld.getmeldingstatusdate (m.mld_melding_key, 5) afgemeld,
|
|
CASE
|
|
WHEN blst.aantal_weekdagen (
|
|
m.mld_melding_datum,
|
|
mld.getmeldingstatusdate (m.mld_melding_key, 5)) >
|
|
24 -- binnen 24 dagen afhandelen is de norm
|
|
THEN
|
|
0
|
|
ELSE
|
|
1
|
|
END op_tijd
|
|
FROM mld_melding m,
|
|
mld_stdmelding sm,
|
|
alg_locatie l,
|
|
alg_v_allonrgoed_gegevens og,
|
|
prs_perslid p,
|
|
prs_afdeling a,
|
|
prs_afdeling bu
|
|
WHERE m.mld_stdmelding_key = sm.mld_stdmelding_key
|
|
AND m.mld_alg_locatie_key = l.alg_locatie_key(+)
|
|
AND m.mld_alg_onroerendgoed_keys = og.alg_onroerendgoed_keys(+)
|
|
AND sm.mld_stdmelding_key = 181 -- PWA
|
|
AND m.mld_melding_status = 5
|
|
AND m.prs_perslid_key_voor = p.prs_perslid_key
|
|
AND a.prs_afdeling_key = p.prs_afdeling_key
|
|
AND a.prs_afdeling_parentkey = bu.prs_afdeling_key(+);
|
|
|
|
CREATE OR REPLACE VIEW BLST_V_RAP_CONTACT_PWA
|
|
(
|
|
FCLT_3D_LOCATIE_KEY,
|
|
LOCATIE_CODE,
|
|
LOCATIE_OMSCHRIJVING,
|
|
PLAATS,
|
|
GEBOUW_KEY,
|
|
GEBOUW,
|
|
BUSINESS_UNIT,
|
|
AFDELING,
|
|
MELDING,
|
|
MELDING_TELLING,
|
|
MELDING_DATUM,
|
|
OP_TIJD
|
|
)
|
|
AS
|
|
SELECT l.alg_locatie_key,
|
|
l.alg_locatie_code locatie,
|
|
l.alg_locatie_omschrijving locatie_omschrijving,
|
|
l.alg_locatie_plaats locatie_plaats,
|
|
og.alg_gebouw_code gebouw,
|
|
og.alg_gebouw_naam gebouw_naam,
|
|
COALESCE (bu.prs_afdeling_omschrijving,
|
|
a.prs_afdeling_omschrijving) Business_Unit,
|
|
CASE
|
|
WHEN bu.prs_afdeling_omschrijving IS NOT NULL
|
|
THEN
|
|
a.prs_afdeling_naam
|
|
|| ' - '
|
|
|| a.prs_afdeling_omschrijving
|
|
END afdeling,
|
|
m.mld_melding_key melding_key,
|
|
1,
|
|
m.mld_melding_datum,
|
|
CASE
|
|
WHEN blst.aantal_weekdagen (
|
|
m.mld_melding_datum,
|
|
mld.getmeldingstatusdate (m.mld_melding_key, 4)) >
|
|
3 --- 3 dagen is de norm voor op tijd
|
|
THEN
|
|
0
|
|
ELSE
|
|
1
|
|
END op_tijd
|
|
FROM mld_melding m,
|
|
mld_stdmelding sm,
|
|
alg_locatie l,
|
|
alg_v_allonrgoed_gegevens og,
|
|
prs_perslid p,
|
|
prs_afdeling a,
|
|
prs_afdeling bu
|
|
WHERE m.mld_stdmelding_key = sm.mld_stdmelding_key
|
|
AND m.mld_alg_locatie_key = l.alg_locatie_key(+)
|
|
AND m.mld_alg_onroerendgoed_keys = og.alg_onroerendgoed_keys(+)
|
|
AND sm.mld_stdmelding_key = 181
|
|
AND m.mld_melding_status IN ( 4 , 5 , 7)
|
|
AND m.prs_perslid_key_voor = p.prs_perslid_key
|
|
AND a.prs_afdeling_key = p.prs_afdeling_key
|
|
AND a.prs_afdeling_parentkey = bu.prs_afdeling_key(+);
|
|
|
|
----------------------------------
|
|
--- Einde rapportages en RTM -----
|
|
----------------------------------
|
|
|
|
CREATE OR REPLACE VIEW BLST_V_RAP_IMP_LOG
|
|
AS
|
|
SELECT * FROM imp_log;
|
|
|
|
CREATE OR REPLACE VIEW BLST_V_RAP_TRACKING
|
|
AS
|
|
SELECT * FROM fac_tracking;
|
|
|
|
CREATE OR REPLACE VIEW blst_v_rap_track_res
|
|
(
|
|
fac_tracking_key,
|
|
fac_tracking_datum,
|
|
fac_srtnotificatie_key,
|
|
reservering,
|
|
fac_tracking_oms,
|
|
prs_perslid_key,
|
|
fac_srtnotificatie_code
|
|
)
|
|
AS
|
|
SELECT t.fac_tracking_key,
|
|
t.fac_tracking_datum,
|
|
t.fac_srtnotificatie_key,
|
|
res.res_reservering_key || '/' || rrr.res_rsv_ruimte_volgnr,
|
|
t.fac_tracking_oms,
|
|
t.prs_perslid_key,
|
|
sn.fac_srtnotificatie_code
|
|
FROM fac_tracking t,
|
|
fac_srtnotificatie sn,
|
|
res_v_aanwezigrsv_ruimte rrr,
|
|
res_reservering res
|
|
WHERE sn.fac_srtnotificatie_key = t.fac_srtnotificatie_key
|
|
AND UPPER (sn.fac_srtnotificatie_xmlnode) = 'RESERVERING'
|
|
AND rrr.res_reservering_key = res.res_reservering_key
|
|
AND res.res_reservering_key = t.fac_tracking_refkey;
|
|
|
|
CREATE OR REPLACE VIEW BLST_V_CAD_THEMA_VLOERAFW
|
|
(
|
|
ALG_RUIMTE_KEY,
|
|
WAARDE
|
|
)
|
|
AS
|
|
SELECT r.alg_ruimte_key, va.fac_usrdata_omschr
|
|
FROM alg_ruimte r,
|
|
(SELECT rr.alg_ruimte_key, ud.fac_usrdata_omschr
|
|
FROM alg_onrgoedkenmerk ok,
|
|
fac_usrdata ud,
|
|
fac_kenmerkdomein rk,
|
|
alg_kenmerk k,
|
|
alg_v_aanwezigruimte rr
|
|
WHERE rk.fac_usrtab_key = ud.fac_usrtab_key
|
|
AND k.fac_kenmerkdomein_key = rk.fac_kenmerkdomein_key
|
|
AND TO_CHAR (ud.fac_usrdata_key) =
|
|
ok.alg_onrgoedkenmerk_waarde
|
|
AND k.alg_kenmerk_key = 1029
|
|
AND rr.alg_ruimte_key = ok.alg_onrgoed_key) va
|
|
WHERE va.alg_ruimte_key = r.alg_ruimte_key;
|
|
|
|
CREATE OR REPLACE VIEW BLST_V_CAD_THEMA_RUIMTEAFD
|
|
(
|
|
ALG_RUIMTE_KEY,
|
|
WAARDE,
|
|
WAARDE_KEY
|
|
)
|
|
AS
|
|
SELECT x.alg_ruimte_key,
|
|
DECODE (y.aantal,
|
|
NULL, '[Leegstand]',
|
|
1, SUBSTR (y.sp, 1, 60),
|
|
'[Meerdere afdelingen]'),
|
|
DECODE (y.aantal, NULL, -1, 1, y.sp_key, NULL)
|
|
FROM (SELECT r.alg_ruimte_key
|
|
FROM alg_v_aanwezigruimte r) x
|
|
LEFT JOIN
|
|
( SELECT ra.alg_ruimte_key,
|
|
MIN (a.prs_afdeling_naam1) sp,
|
|
MIN (a.prs_afdeling_key) sp_key,
|
|
COUNT (ra.prs_afdeling_key) aantal
|
|
FROM prs_v_aanwezigruimteafdeling ra, prs_v_aanwezigafdeling a
|
|
WHERE ra.prs_afdeling_key = a.prs_afdeling_key
|
|
GROUP BY ra.alg_ruimte_key) y
|
|
ON x.alg_ruimte_key = y.alg_ruimte_key
|
|
UNION ALL
|
|
SELECT NULL, SUBSTR (a.prs_afdeling_naam1, 1, 60), a.prs_afdeling_key
|
|
FROM prs_v_aanwezigafdeling a
|
|
WHERE NOT EXISTS
|
|
(SELECT ra.prs_afdeling_key
|
|
FROM prs_v_aanwezigruimteafdeling ra
|
|
WHERE ra.prs_afdeling_key = a.prs_afdeling_key);
|
|
|
|
|
|
CREATE OR REPLACE TRIGGER BLST_T_THEMA_RUIMTEAFD_I_IU
|
|
INSTEAD OF INSERT OR UPDATE
|
|
ON BLST_V_CAD_THEMA_RUIMTEAFD
|
|
BEGIN
|
|
IF UPDATING -- oude hard weggooien; dus DELETE (lekker opruimen)!
|
|
THEN
|
|
DELETE FROM prs_ruimteafdeling
|
|
WHERE alg_ruimte_key = :new.alg_ruimte_key
|
|
AND prs_afdeling_key <> :new.waarde_key;
|
|
END IF;
|
|
|
|
BEGIN
|
|
IF :new.waarde_key <> -1
|
|
THEN
|
|
INSERT INTO prs_ruimteafdeling
|
|
(
|
|
alg_ruimte_key, prs_afdeling_key
|
|
)
|
|
VALUES (:new.alg_ruimte_key, :new.waarde_key);
|
|
END IF;
|
|
EXCEPTION
|
|
WHEN DUP_VAL_ON_INDEX -- was al aanwezig
|
|
THEN
|
|
NULL;
|
|
END;
|
|
END;
|
|
/
|
|
|
|
CREATE OR REPLACE VIEW BLST_V_CAD_LABEL_RUIMTEOPP
|
|
(
|
|
ALG_RUIMTE_KEY,
|
|
WAARDE
|
|
)
|
|
AS
|
|
SELECT r.alg_ruimte_key,
|
|
DECODE (r.alg_ruimte_bruto_vloeropp,
|
|
NULL, '',
|
|
r.alg_ruimte_bruto_vloeropp || ' m2')
|
|
FROM alg_v_aanwezigruimte r, alg_srtruimte sr
|
|
WHERE r.alg_srtruimte_key = sr.alg_srtruimte_key;
|
|
|
|
CREATE OR REPLACE VIEW BLST_V_CAD_THEMA_VLOERAFW
|
|
(
|
|
ALG_RUIMTE_KEY,
|
|
WAARDE,
|
|
WAARDE_KEY
|
|
)
|
|
AS
|
|
SELECT r.alg_ruimte_key, va.fac_usrdata_omschr, va.fac_usrdata_key
|
|
from alg_ruimte r,
|
|
(SELECT rr.alg_ruimte_key, ud.fac_usrdata_omschr, ud.fac_usrdata_key
|
|
FROM alg_onrgoedkenmerk ok,
|
|
fac_usrdata ud,
|
|
fac_kenmerkdomein rk,
|
|
alg_kenmerk k,
|
|
alg_v_aanwezigruimte rr
|
|
WHERE rk.fac_usrtab_key = ud.fac_usrtab_key
|
|
AND k.fac_kenmerkdomein_key = rk.fac_kenmerkdomein_key
|
|
AND TO_CHAR (ud.fac_usrdata_key) =
|
|
ok.alg_onrgoedkenmerk_waarde
|
|
AND k.alg_kenmerk_key = 1029
|
|
AND rr.alg_ruimte_key = ok.alg_onrgoed_key) va
|
|
WHERE va.alg_ruimte_key = r.alg_ruimte_key;
|
|
|
|
CREATE OR REPLACE TRIGGER blst_t_thema_vloerfw_i_iu
|
|
INSTEAD OF INSERT OR UPDATE
|
|
ON BLST_V_CAD_THEMA_VLOERAFW
|
|
FOR EACH ROW
|
|
BEGIN
|
|
--- kenmerk bijwerken, let op: de nieuwe waarde is de key en dus niet de omschrijving
|
|
alg.upsertkenmerk (1029, :new.alg_ruimte_key, :new.waarde_key);
|
|
END;
|
|
/
|
|
|
|
|
|
CREATE OR REPLACE VIEW BLST_V_CAD_THEMA_ZONERING
|
|
(
|
|
ALG_RUIMTE_KEY,
|
|
WAARDE,
|
|
WAARDE_KEY
|
|
)
|
|
AS
|
|
SELECT r.alg_ruimte_key, va.fac_usrdata_omschr, va.fac_usrdata_key
|
|
from alg_ruimte r,
|
|
(SELECT rr.alg_ruimte_key, ud.fac_usrdata_omschr, ud.fac_usrdata_key
|
|
FROM alg_onrgoedkenmerk ok,
|
|
fac_usrdata ud,
|
|
fac_kenmerkdomein rk,
|
|
alg_kenmerk k,
|
|
alg_v_aanwezigruimte rr
|
|
WHERE rk.fac_usrtab_key = ud.fac_usrtab_key
|
|
AND k.fac_kenmerkdomein_key = rk.fac_kenmerkdomein_key
|
|
AND TO_CHAR (ud.fac_usrdata_key) =
|
|
ok.alg_onrgoedkenmerk_waarde
|
|
AND k.alg_kenmerk_key = 1031
|
|
AND rr.alg_ruimte_key = ok.alg_onrgoed_key) va
|
|
WHERE va.alg_ruimte_key = r.alg_ruimte_key;
|
|
|
|
CREATE OR REPLACE TRIGGER blst_t_thema_zonering_i_iu
|
|
INSTEAD OF INSERT OR UPDATE
|
|
ON BLST_V_CAD_THEMA_ZONERING
|
|
FOR EACH ROW
|
|
BEGIN
|
|
--- kenmerk bijwerken, let op: de nieuwe waarde is de key en dus niet de omschrijving
|
|
alg.upsertkenmerk (1031, :new.alg_ruimte_key, :new.waarde_key);
|
|
END;
|
|
/
|
|
|
|
|
|
CREATE OR REPLACE VIEW BLST_V_CAD_THEMA_NEN3140
|
|
(
|
|
ALG_RUIMTE_KEY,
|
|
WAARDE,
|
|
WAARDE_KEY
|
|
)
|
|
AS
|
|
SELECT r.alg_ruimte_key, va.fac_usrdata_omschr, va.fac_usrdata_key
|
|
from alg_ruimte r,
|
|
(SELECT rr.alg_ruimte_key, ud.fac_usrdata_omschr, ud.fac_usrdata_key
|
|
FROM alg_onrgoedkenmerk ok,
|
|
fac_usrdata ud,
|
|
fac_kenmerkdomein rk,
|
|
alg_kenmerk k,
|
|
alg_v_aanwezigruimte rr
|
|
WHERE rk.fac_usrtab_key = ud.fac_usrtab_key
|
|
AND k.fac_kenmerkdomein_key = rk.fac_kenmerkdomein_key
|
|
AND TO_CHAR (ud.fac_usrdata_key) =
|
|
ok.alg_onrgoedkenmerk_waarde
|
|
AND k.alg_kenmerk_key = 1180
|
|
AND rr.alg_ruimte_key = ok.alg_onrgoed_key) va
|
|
WHERE va.alg_ruimte_key = r.alg_ruimte_key;
|
|
|
|
CREATE OR REPLACE TRIGGER blst_t_thema_nen3140_i_iu
|
|
INSTEAD OF INSERT OR UPDATE
|
|
ON BLST_V_CAD_THEMA_NEN3140
|
|
FOR EACH ROW
|
|
BEGIN
|
|
--- kenmerk bijwerken, let op: de nieuwe waarde is de key en dus niet de omschrijving
|
|
alg.upsertkenmerk (1180, :new.alg_ruimte_key, :new.waarde_key);
|
|
END;
|
|
/
|
|
|
|
CREATE OR REPLACE VIEW BLST_V_INS_QRC_OBJECT_MELDING
|
|
(
|
|
HIDE_F_SORT,
|
|
LOCATIE_CODE,
|
|
FCLT_F_LOCATIE,
|
|
FCLT_F_GEBOUW,
|
|
FCLT_F_PLAATS,
|
|
RUIMTENR,
|
|
NAAM,
|
|
FCLT_F_DISCIPLINE,
|
|
FCLT_F_OBJECTGROEP,
|
|
FCLT_F_OBJECTSOORT,
|
|
FCLT_F_IDENTIFICATIE,
|
|
FCLT_F_BOOKMARK,
|
|
INS_DEEL_KEY,
|
|
INS_SRTDEEL_KEY,
|
|
FCLT_3D_DISCIPLINE_KEY,
|
|
FCLT_3D_LOCATIE_KEY,
|
|
INS_ALG_RUIMTE_TYPE,
|
|
INS_ALG_RUIMTE_KEY,
|
|
BOOKMARK_ID,
|
|
GEKOPPELD_AAN
|
|
)
|
|
AS
|
|
SELECT i.ins_deel_omschrijving
|
|
hide_f_sort,
|
|
l.alg_locatie_code,
|
|
l.alg_locatie_code || ' ' || l.alg_locatie_omschrijving
|
|
fclt_f_locatie,
|
|
o.alg_gebouw_omschrijving
|
|
fclt_f_gebouw,
|
|
SUBSTR (o.alg_plaatsaanduiding, 13)
|
|
fclt_f_plaats,
|
|
o.alg_ruimte_nr,
|
|
NULL
|
|
prs_perslid_naam,
|
|
d.ins_discipline_omschrijving
|
|
fclt_f_discipline,
|
|
g.ins_srtgroep_omschrijving
|
|
fclt_f_objectgroep,
|
|
s.ins_srtdeel_omschrijving
|
|
fclt_f_objectsoort,
|
|
i.ins_deel_omschrijving
|
|
fclt_f_identificatie,
|
|
b.fac_bookmark_naam
|
|
fclt_f_bookmark,
|
|
i.ins_deel_key,
|
|
s.ins_srtdeel_key,
|
|
i.ins_discipline_key
|
|
fclt_3d_discipline_key,
|
|
l.alg_locatie_key
|
|
fclt_3d_locatie_key,
|
|
i.ins_alg_ruimte_type,
|
|
i.ins_alg_ruimte_key,
|
|
b.fac_bookmark_id
|
|
hide_f_bookmark_id,
|
|
'Ruimte'
|
|
FROM ins_deel i,
|
|
ins_v_alg_overzicht o,
|
|
ins_srtdeel s,
|
|
ins_srtgroep g,
|
|
ins_discipline d,
|
|
alg_locatie l,
|
|
fac_bookmark b
|
|
WHERE UPPER (b.fac_bookmark_naam) IN ('QRC_OBJECT_MELDING')
|
|
AND COALESCE (b.fac_bookmark_expire, SYSDATE + 1) > SYSDATE
|
|
AND ins_deel_verwijder IS NULL
|
|
AND COALESCE (i.ins_deel_vervaldatum, SYSDATE + 1) > SYSDATE
|
|
AND i.ins_deel_module = 'INS'
|
|
AND i.ins_deel_parent_key IS NULL
|
|
AND s.ins_srtdeel_key = i.ins_srtdeel_key
|
|
AND g.ins_srtgroep_key = s.ins_srtgroep_key
|
|
AND d.ins_discipline_key = g.ins_discipline_key
|
|
AND o.alg_onroerendgoed_keys =
|
|
COALESCE (i.ins_alg_ruimte_key_org, i.ins_alg_ruimte_key)
|
|
AND o.alg_onroerendgoed_type =
|
|
COALESCE (i.ins_alg_ruimte_type_org, i.ins_alg_ruimte_type)
|
|
AND COALESCE (i.ins_alg_ruimte_type_org, i.ins_alg_ruimte_type) IN
|
|
('T', 'R', 'W')
|
|
AND o.alg_locatie_key = i.ins_alg_locatie_key
|
|
AND l.alg_locatie_key = i.ins_alg_locatie_key;
|
|
|
|
CREATE OR REPLACE VIEW BLST_V_QRC_RESERVERING
|
|
(
|
|
HIDE_F_SORT,
|
|
LOCATIE_CODE,
|
|
FCLT_F_LOCATIE,
|
|
FCLT_F_GEBOUW_NAAM,
|
|
FCLT_F_GEBOUW_OMSCHR,
|
|
FCLT_F_VERDIEPING,
|
|
ALG_RUIMTE_KEY,
|
|
FCLT_F_ALG_RUIMTE_NR,
|
|
RES_RUIMTE_KEY,
|
|
FCLT_F_RES_RUIMTE_NR,
|
|
FCLT_F_IDENTIFICATIE,
|
|
FCLT_F_BOOKMARK
|
|
)
|
|
AS
|
|
SELECT r.res_ruimte_nr,
|
|
l.alg_locatie_code,
|
|
l.alg_locatie_omschrijving,
|
|
g.alg_gebouw_naam,
|
|
g.alg_gebouw_omschrijving,
|
|
v.alg_verdieping_code,
|
|
r.alg_ruimte_key,
|
|
r.alg_ruimte_nr,
|
|
r.res_ruimte_key,
|
|
r.res_ruimte_nr,
|
|
r.res_ruimte_key,
|
|
b.fac_bookmark_id hide_f_bookmark_id
|
|
FROM res_ruimte r,
|
|
res_alg_ruimte ar,
|
|
alg_ruimte r,
|
|
alg_verdieping v,
|
|
alg_gebouw g,
|
|
alg_locatie l,
|
|
fac_bookmark b
|
|
WHERE ar.res_ruimte_key = r.res_ruimte_key
|
|
AND r.alg_ruimte_key = ar.alg_ruimte_key
|
|
AND v.alg_verdieping_key = r.alg_verdieping_key
|
|
AND g.alg_gebouw_key = v.alg_gebouw_key
|
|
AND l.alg_locatie_key = g.alg_locatie_key
|
|
AND UPPER (b.fac_bookmark_naam) IN ('QRC_RUIMTE_RESERVERING')
|
|
AND COALESCE (b.fac_bookmark_expire, SYSDATE + 1) > SYSDATE
|
|
AND l.alg_locatie_verwijder IS NULL
|
|
AND ( l.alg_locatie_vervaldatum > SYSDATE
|
|
OR l.alg_locatie_vervaldatum IS NULL)
|
|
AND g.alg_gebouw_verwijder IS NULL
|
|
AND ar.res_alg_ruimte_verwijder IS NULL
|
|
AND r.res_ruimte_verwijder IS NULL
|
|
AND ( r.res_ruimte_vervaldatum > SYSDATE
|
|
OR r.res_ruimte_vervaldatum IS NULL);
|
|
|
|
CREATE OR REPLACE VIEW BLST_V_QRC_WERKPLEK
|
|
(
|
|
HIDE_F_SORT,
|
|
LOCATIE_CODE,
|
|
FCLT_F_LOCATIE,
|
|
FCLT_F_GEBOUW_NAAM,
|
|
FCLT_F_GEBOUW_OMSCHR,
|
|
FCLT_F_VERDIEPING,
|
|
ALG_RUIMTE_KEY,
|
|
FCLT_F_WERKPLEK_NR,
|
|
FCLT_F_IDENTIFICATIE,
|
|
RES_DEEL_KEY,
|
|
FCLT_F_BOOKMARK
|
|
)
|
|
AS
|
|
SELECT rd.res_deel_opmerking,
|
|
l.alg_locatie_code,
|
|
l.alg_locatie_omschrijving,
|
|
g.alg_gebouw_naam,
|
|
g.alg_gebouw_omschrijving,
|
|
v.alg_verdieping_code,
|
|
d.ins_alg_ruimte_key,
|
|
rd.res_deel_omschrijving,
|
|
rd.res_deel_opmerking,
|
|
rd.res_deel_key,
|
|
b.fac_bookmark_id hide_f_bookmark_id
|
|
FROM res_deel rd,
|
|
ins_deel d,
|
|
ins_srtdeel sd,
|
|
ins_srtgroep sg,
|
|
alg_ruimte r,
|
|
alg_verdieping v,
|
|
alg_gebouw g,
|
|
alg_locatie l,
|
|
fac_bookmark b
|
|
WHERE rd.res_ins_deel_key = d.ins_deel_key
|
|
AND sd.ins_srtdeel_key = d.ins_srtdeel_key
|
|
AND sg.ins_srtgroep_key = sd.ins_srtgroep_key
|
|
AND d.ins_alg_ruimte_key = r.alg_ruimte_key
|
|
AND v.alg_verdieping_key = r.alg_verdieping_key
|
|
AND g.alg_gebouw_key = v.alg_gebouw_key
|
|
AND l.alg_locatie_key = g.alg_locatie_key
|
|
AND UPPER (b.fac_bookmark_naam) IN ('QRC_WERKPLEK_RESERVERING')
|
|
AND COALESCE (b.fac_bookmark_expire, SYSDATE + 1) > SYSDATE
|
|
AND sg.ins_srtgroep_key = 1 -- deze sticker is alleen voor werkplekken
|
|
AND ( rd.res_deel_vervaldatum > SYSDATE
|
|
OR rd.res_deel_vervaldatum IS NULL)
|
|
AND rd.res_deel_verwijder IS NULL
|
|
AND ( d.ins_deel_vervaldatum > SYSDATE
|
|
OR d.ins_deel_vervaldatum IS NULL)
|
|
AND d.ins_deel_verwijder IS NULL
|
|
AND d.ins_alg_ruimte_type = 'R';
|
|
|
|
CREATE OR REPLACE VIEW BLST_V_RAP_RUIMTEGEGEVENS
|
|
(
|
|
REGIO_KEY,
|
|
REGIO_OMSCHRIJVING,
|
|
DISTRICT_KEY,
|
|
DISTRICT_OMSCHRIJVING,
|
|
LOCATIE_KEY,
|
|
LOCATIE_CODE,
|
|
LOCATIE_OMSCHRIJVING,
|
|
GEBOUW_KEY,
|
|
GEBOUW_CODE,
|
|
GEBOUW_NAAM,
|
|
VERDIEPING_KEY,
|
|
VERDIEPING_OMSCHRIJVING,
|
|
RUIMTE_KEY,
|
|
RUIMTE_NR,
|
|
RUIMTE_OMSCHRIJVING,
|
|
SRTRUIMTE_OMSCHRIJVING,
|
|
RUIMTE_OPMERKING,
|
|
RUIMTE_BRUTO_VLOEROPP,
|
|
RUIMTE_OMTREK,
|
|
RUIMTE_INHOUD,
|
|
AFDELING_KEY,
|
|
AFDELING_NAAM,
|
|
AFDELING_OMSCHRIJVING,
|
|
FWTE_BUREAUWERKPLEKKEN,
|
|
FWTE_COMMUNICATIEWERKPLEKKEN,
|
|
FWTE_OVERIGE_WERKPLEKKEN,
|
|
VLOERAFWERKING,
|
|
ZONERING,
|
|
NEN3140_NORM
|
|
)
|
|
AS
|
|
SELECT o.alg_regio_key,
|
|
o.alg_regio_omschrijving,
|
|
d.alg_district_key,
|
|
d.alg_district_omschrijving,
|
|
l.alg_locatie_key,
|
|
l.alg_locatie_code,
|
|
l.alg_locatie_omschrijving,
|
|
g.alg_gebouw_key,
|
|
g.alg_gebouw_code,
|
|
g.alg_gebouw_naam,
|
|
v.alg_verdieping_key,
|
|
v.alg_verdieping_omschrijving,
|
|
r.alg_ruimte_key,
|
|
r.alg_ruimte_nr,
|
|
r.alg_ruimte_omschrijving,
|
|
sr.alg_srtruimte_omschrijving,
|
|
R.alg_ruimte_opmerking,
|
|
r.alg_ruimte_bruto_vloeropp,
|
|
r.alg_ruimte_omtrek,
|
|
r.alg_ruimte_inhoud,
|
|
ra.prs_afdeling_key,
|
|
ra.prs_afdeling_naam,
|
|
ra.prs_afdeling_omschrijving,
|
|
bwp.fwte_bureauwerkplekken,
|
|
cwp.fwte_communicatiewerkplekken,
|
|
owp.fwte_overige_werkplekken,
|
|
vloerafw.vloerafwerking,
|
|
znr.zonering,
|
|
nen3140_norm.nen3140_norm
|
|
FROM alg_ruimte r,
|
|
alg_verdieping v,
|
|
alg_gebouw g,
|
|
alg_locatie l,
|
|
alg_district d,
|
|
alg_regio o,
|
|
alg_srtruimte sr,
|
|
(SELECT ra.alg_ruimte_key,
|
|
a.prs_afdeling_key,
|
|
a.prs_afdeling_naam,
|
|
a.prs_afdeling_omschrijving
|
|
FROM prs_ruimteafdeling ra, prs_afdeling a
|
|
WHERE ra.prs_afdeling_key = a.prs_afdeling_key) ra,
|
|
(SELECT ok.alg_onrgoed_key alg_ruimte_key,
|
|
ok.alg_onrgoedkenmerk_waarde FWTE_bureauwerkplekken,
|
|
k.alg_kenmerk_omschrijving
|
|
FROM alg_kenmerk k, alg_onrgoedkenmerk ok
|
|
WHERE k.alg_kenmerk_key = ok.alg_kenmerk_key
|
|
AND ok.alg_onrgoed_niveau = 'R'
|
|
AND k.alg_kenmerk_verwijder IS NULL
|
|
AND ok.alg_onrgoedkenmerk_verwijder IS NULL
|
|
AND ok.alg_onrgoedkenmerk_waarde IS NOT NULL
|
|
AND k.alg_kenmerk_key = 1015) bwp, --- bureauwerkplekken
|
|
(SELECT ok.alg_onrgoed_key
|
|
alg_ruimte_key,
|
|
ok.alg_onrgoedkenmerk_waarde
|
|
FWTE_communicatiewerkplekken,
|
|
k.alg_kenmerk_omschrijving
|
|
FROM alg_kenmerk k, alg_onrgoedkenmerk ok
|
|
WHERE k.alg_kenmerk_key = ok.alg_kenmerk_key
|
|
AND ok.alg_onrgoed_niveau = 'R'
|
|
AND k.alg_kenmerk_verwijder IS NULL
|
|
AND ok.alg_onrgoedkenmerk_verwijder IS NULL
|
|
AND ok.alg_onrgoedkenmerk_waarde IS NOT NULL
|
|
AND k.alg_kenmerk_key = 1016) cwp, -- communicatie werkplekken
|
|
(SELECT ok.alg_onrgoed_key alg_ruimte_key,
|
|
ok.alg_onrgoedkenmerk_waarde FWTE_overige_werkplekken,
|
|
k.alg_kenmerk_omschrijving
|
|
FROM alg_kenmerk k, alg_onrgoedkenmerk ok
|
|
WHERE k.alg_kenmerk_key = ok.alg_kenmerk_key
|
|
AND ok.alg_onrgoed_niveau = 'R'
|
|
AND k.alg_kenmerk_verwijder IS NULL
|
|
AND ok.alg_onrgoedkenmerk_verwijder IS NULL
|
|
AND ok.alg_onrgoedkenmerk_waarde IS NOT NULL
|
|
AND k.alg_kenmerk_key = 1040) owp, --- overige werkplekken
|
|
(SELECT ok.alg_onrgoed_key alg_ruimte_key,
|
|
ud.fac_usrdata_omschr vloerafwerking,
|
|
k.alg_kenmerk_omschrijving
|
|
FROM alg_kenmerk k,
|
|
alg_onrgoedkenmerk ok,
|
|
fac_usrdata ud,
|
|
fac_usrtab ut
|
|
WHERE k.alg_kenmerk_key = ok.alg_kenmerk_key
|
|
AND fac.safe_to_number (ok.alg_onrgoedkenmerk_waarde) =
|
|
ud.fac_usrdata_key
|
|
AND ud.fac_usrtab_key = ut.fac_usrtab_key
|
|
AND ok.alg_onrgoed_niveau = 'R'
|
|
AND k.alg_kenmerk_verwijder IS NULL
|
|
AND ok.alg_onrgoedkenmerk_verwijder IS NULL
|
|
AND ok.alg_onrgoedkenmerk_waarde IS NOT NULL
|
|
AND k.alg_kenmerk_key = 1029 -- vloerafwerking
|
|
AND ut.fac_usrtab_key = 7) vloerafw,
|
|
(SELECT ok.alg_onrgoed_key alg_ruimte_key,
|
|
ud.fac_usrdata_omschr zonering,
|
|
k.alg_kenmerk_omschrijving
|
|
FROM alg_kenmerk k,
|
|
alg_onrgoedkenmerk ok,
|
|
fac_usrdata ud,
|
|
fac_usrtab ut
|
|
WHERE k.alg_kenmerk_key = ok.alg_kenmerk_key
|
|
AND fac.safe_to_number (ok.alg_onrgoedkenmerk_waarde) =
|
|
ud.fac_usrdata_key
|
|
AND ud.fac_usrtab_key = ut.fac_usrtab_key
|
|
AND ok.alg_onrgoed_niveau = 'R'
|
|
AND k.alg_kenmerk_verwijder IS NULL
|
|
AND ok.alg_onrgoedkenmerk_verwijder IS NULL
|
|
AND ok.alg_onrgoedkenmerk_waarde IS NOT NULL
|
|
AND k.alg_kenmerk_key = 1031 -- zonering
|
|
AND ut.fac_usrtab_key = 8) znr,
|
|
(SELECT ok.alg_onrgoed_key alg_ruimte_key,
|
|
ud.fac_usrdata_omschr nen3140_norm,
|
|
k.alg_kenmerk_omschrijving
|
|
FROM alg_kenmerk k,
|
|
alg_onrgoedkenmerk ok,
|
|
fac_usrdata ud,
|
|
fac_usrtab ut
|
|
WHERE k.alg_kenmerk_key = ok.alg_kenmerk_key
|
|
AND fac.safe_to_number (ok.alg_onrgoedkenmerk_waarde) =
|
|
ud.fac_usrdata_key
|
|
AND ud.fac_usrtab_key = ut.fac_usrtab_key
|
|
AND ok.alg_onrgoed_niveau = 'R'
|
|
AND k.alg_kenmerk_verwijder IS NULL
|
|
AND ok.alg_onrgoedkenmerk_verwijder IS NULL
|
|
AND ok.alg_onrgoedkenmerk_waarde IS NOT NULL
|
|
AND k.alg_kenmerk_key = 1180 -- NEN3140 normering
|
|
AND ut.fac_usrtab_key = 281) nen3140_norm
|
|
WHERE 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
|
|
AND l.alg_district_key = d.alg_district_key
|
|
AND d.alg_regio_key = o.alg_regio_key
|
|
AND sr.alg_srtruimte_key = r.alg_srtruimte_key
|
|
AND r.alg_ruimte_verwijder IS NULL
|
|
AND v.alg_verdieping_verwijder IS NULL
|
|
AND g.alg_gebouw_verwijder IS NULL
|
|
AND ra.alg_ruimte_key(+) = r.alg_ruimte_key
|
|
AND bwp.alg_ruimte_key(+) = r.alg_ruimte_key
|
|
AND cwp.alg_ruimte_key(+) = r.alg_ruimte_key
|
|
AND owp.alg_ruimte_key(+) = r.alg_ruimte_key
|
|
AND vloerafw.alg_ruimte_key(+) = r.alg_ruimte_key
|
|
AND znr.alg_ruimte_key(+) = r.alg_ruimte_key
|
|
AND nen3140_norm.alg_ruimte_key(+) = r.alg_ruimte_key;
|
|
|
|
--- BLST#75595 Rapport met afdelingen, gebouwen en reserveerbare ruimten
|
|
CREATE OR REPLACE VIEW BLST_V_RAP_RECHT_RSVRUIMTE
|
|
AS
|
|
SELECT DISTINCT prs.prs_afdeling_naam afdeling_code_prs,
|
|
prs.prs_afdeling_omschrijving afdeling_omschrijving_prs,
|
|
prs.bu_code businessunit_code,
|
|
prs.bu_omschrijving businessunit_omschrijving,
|
|
prs.afd_code afdeling_code,
|
|
prs.afd_omschrijving afdeling_omschrijving,
|
|
r.alg_locatie_code locatie_code,
|
|
r.alg_locatie_omschrijving locatie_omschrijving,
|
|
r.alg_gebouw_code gebouw_code,
|
|
r.alg_gebouw_naam gebouw_naam,
|
|
r.ins_discipline_omschrijving catalogus,
|
|
r.res_ruimte_nr res_ruimte_naam,
|
|
opst.opstelling opstelling
|
|
FROM --- personen die een werkplek hebben in dit gebouw
|
|
(SELECT a.prs_afdeling_naam,
|
|
a.prs_afdeling_omschrijving,
|
|
a.bu_code,
|
|
a.bu_omschrijving,
|
|
a.afd_code,
|
|
a.afd_omschrijving,
|
|
p.prs_perslid_key,
|
|
g.alg_gebouw_key,
|
|
l.alg_locatie_key
|
|
FROM fac_usrtab ut,
|
|
fac_usrdata ud,
|
|
(SELECT a.prs_afdeling_key,
|
|
a.prs_afdeling_naam,
|
|
a.prs_afdeling_omschrijving,
|
|
ab.prs_afdeling_key1 bu_key,
|
|
a1.prs_afdeling_naam bu_code,
|
|
a1.prs_afdeling_omschrijving bu_omschrijving,
|
|
ab.prs_afdeling_key2 afd_key,
|
|
a2.prs_afdeling_naam afd_code,
|
|
a2.prs_afdeling_omschrijving afd_omschrijving
|
|
FROM prs_v_afdeling_boom ab,
|
|
prs_afdeling a,
|
|
prs_afdeling a1,
|
|
prs_afdeling a2
|
|
WHERE ab.prs_afdeling_key = a.prs_afdeling_key
|
|
AND ab.prs_afdeling_key1 = a1.prs_afdeling_key(+)
|
|
AND ab.prs_afdeling_key2 = a2.prs_afdeling_key(+)) a,
|
|
prs_perslid p,
|
|
prs_v_perslid_fullnames pn,
|
|
alg_gebouw g,
|
|
alg_locatie l
|
|
WHERE ( UPPER (fac_usrtab_naam) = 'WERKPLEKKEN BD'
|
|
OR UPPER (fac_usrtab_naam) = 'WERKPLEKKEN EXT')
|
|
AND ud.fac_usrtab_key = ut.fac_usrtab_key
|
|
AND ( ud.fac_usrdata_vervaldatum IS NULL
|
|
OR ud.fac_usrdata_vervaldatum > SYSDATE)
|
|
AND ud.fac_usrdata_verwijder IS NULL
|
|
AND ud.fac_usrdata_omschr = a.prs_afdeling_naam
|
|
AND p.prs_afdeling_key = a.prs_afdeling_key
|
|
AND l.alg_locatie_key = g.alg_locatie_key
|
|
AND pn.prs_perslid_key = p.prs_perslid_key
|
|
AND fac.safe_to_number (g.alg_gebouw_code) =
|
|
fac.safe_to_number (ud.fac_usrdata_prijs)) prs,
|
|
--- gebouwen met res ruimten
|
|
(SELECT l.alg_locatie_key,
|
|
l.alg_locatie_code,
|
|
l.alg_locatie_omschrijving,
|
|
g.alg_gebouw_code,
|
|
g.alg_gebouw_naam,
|
|
g.alg_gebouw_key,
|
|
v.alg_verdieping_code,
|
|
r.alg_ruimte_nr,
|
|
r.alg_ruimte_omschrijving,
|
|
rr.res_ruimte_key,
|
|
rr.res_ruimte_nr,
|
|
cat.ins_discipline_key,
|
|
cat.ins_discipline_omschrijving
|
|
FROM alg_locatie l,
|
|
alg_gebouw g,
|
|
alg_verdieping v,
|
|
alg_ruimte r,
|
|
res_alg_ruimte ra,
|
|
res_ruimte rr,
|
|
ins_tab_discipline cat
|
|
WHERE l.alg_locatie_key = g.alg_locatie_key
|
|
AND v.alg_gebouw_key = g.alg_gebouw_key
|
|
AND r.alg_verdieping_key = v.alg_verdieping_key
|
|
AND r.alg_ruimte_verwijder IS NULL
|
|
AND r.alg_ruimte_key = ra.alg_ruimte_key
|
|
AND ra.res_alg_ruimte_verwijder IS NULL
|
|
AND ra.res_ruimte_key = rr.res_ruimte_key
|
|
AND rr.res_ruimte_verwijder IS NULL
|
|
AND cat.ins_discipline_key = rr.res_discipline_key
|
|
AND cat.ins_discipline_verwijder IS NULL) r,
|
|
--- opstellingen
|
|
( SELECT ro.res_ruimte_key,
|
|
LISTAGG (
|
|
o.res_opstelling_omschrijving
|
|
|| ' ('
|
|
|| ro.res_ruimte_opstel_bezoekers
|
|
|| ' bezoekers)',
|
|
' / ') --- scheidingsteken een komma
|
|
WITHIN GROUP (ORDER BY o.res_opstelling_omschrijving) opstelling
|
|
FROM res_ruimte_opstelling ro, res_opstelling o
|
|
WHERE ro.res_opstelling_key = o.res_opstelling_key
|
|
AND ro.res_ruimte_opstel_verwijder IS NULL
|
|
AND o.res_opstelling_verwijder IS NULL
|
|
GROUP BY ro.res_ruimte_key) opst
|
|
WHERE r.alg_locatie_key = prs.alg_locatie_key
|
|
AND opst.res_ruimte_key = r.res_ruimte_key
|
|
AND EXISTS
|
|
(SELECT g.fac_groep_omschrijving,
|
|
c.ins_discipline_key,
|
|
pf.prs_perslid_naam_friendly,
|
|
pf.prs_perslid_naam_full
|
|
FROM fac_groep g,
|
|
fac_groeprechten gr,
|
|
fac_gebruikersgroep gg,
|
|
prs_perslid p,
|
|
prs_v_perslid_fullnames pf,
|
|
fac_functie f,
|
|
ins_tab_discipline c
|
|
WHERE c.ins_discipline_key = r.ins_discipline_key
|
|
AND p.prs_perslid_key = prs.prs_perslid_key
|
|
AND g.fac_groep_key = gr.fac_groep_key
|
|
AND UPPER (
|
|
fac.getscopeleveltext (
|
|
gr.fac_gebruiker_alg_level_write,
|
|
'ALG')) NOT IN
|
|
('GEEN')
|
|
AND gg.fac_groep_key = g.fac_groep_key
|
|
AND p.prs_perslid_key = gg.prs_perslid_key
|
|
AND pf.prs_perslid_key = p.prs_perslid_key
|
|
AND f.fac_functie_key = gr.fac_functie_key
|
|
AND f.fac_functie_discipline = 1
|
|
AND f.fac_functie_code = 'WEB_RESUSE'
|
|
AND gr.ins_discipline_key = c.ins_discipline_key
|
|
AND c.ins_discipline_verwijder IS NULL
|
|
AND c.ins_discipline_module = 'RES'
|
|
AND c.ins_discipline_min_level IN (1,
|
|
2,
|
|
3,
|
|
4));
|
|
|
|
CREATE OR REPLACE VIEW BLST_V_RAP_UITLEEN_OBJ
|
|
(
|
|
HIDE_F_locatie,
|
|
HIDE_F_deel,
|
|
HIDE_F_tracking_uit,
|
|
locatie_code,
|
|
locatie_omschrijving,
|
|
gebouwcode,
|
|
gebouw_omschrijving,
|
|
discipline,
|
|
groep,
|
|
objectsoort,
|
|
ins_deel_key,
|
|
object_id,
|
|
object_beschrijving,
|
|
datum_uitgeleend,
|
|
datum_uit,
|
|
tijdstip_uit,
|
|
omschrijving_uitgifte,
|
|
uitgeleend_aan,
|
|
uitgegeven_door,
|
|
datum_ingenomen,
|
|
datum_in,
|
|
tijdstip_in,
|
|
ingenomen_door,
|
|
gebruik
|
|
)
|
|
AS
|
|
SELECT l.alg_locatie_code
|
|
sort_locatie,
|
|
d.ins_deel_key
|
|
sort_deel,
|
|
uitg.fac_tracking_key_uit
|
|
sort_uitgifte,
|
|
l.alg_locatie_code,
|
|
l.alg_locatie_omschrijving,
|
|
g.alg_gebouw_code,
|
|
g.alg_gebouw_omschrijving,
|
|
disc.ins_discipline_omschrijving,
|
|
og.ins_srtgroep_omschrijving,
|
|
os.ins_srtdeel_omschrijving,
|
|
d.ins_deel_key,
|
|
d.ins_deel_omschrijving,
|
|
d.ins_deel_opmerking,
|
|
uitg.datum_uitgifte
|
|
datum_uitgeleend,
|
|
fac.safe_to_date (uitg.datum_uitgifte, 'dd-mm-yy')
|
|
datum_uit,
|
|
TO_CHAR (uitg.datum_uitgifte, 'hh24:mi')
|
|
tijdstip_uit,
|
|
uitg.omschrijving_uitgifte,
|
|
SUBSTR (
|
|
uitg.omschrijving_uitgifte,
|
|
INSTR (uitg.omschrijving_uitgifte, 'is uitgegeven aan ') + 18)
|
|
uitgeleend_aan,
|
|
uitg.uitgegeven_door,
|
|
inn.datum_inname
|
|
datum_ingenomen,
|
|
fac.safe_to_date (inn.datum_inname, 'dd-mm-yy')
|
|
datum_in,
|
|
TO_CHAR (inn.datum_inname, 'hh24:mi')
|
|
tijdstip_in,
|
|
inn.ingenomen_door,
|
|
ROUND ((inn.datum_inname - uitg.datum_uitgifte) * 24, 1)
|
|
uren_gebruik
|
|
FROM blst_uitleen_archief a,
|
|
ins_deel d,
|
|
ins_srtdeel os,
|
|
ins_srtgroep og,
|
|
ins_tab_discipline disc,
|
|
alg_ruimte r,
|
|
alg_verdieping v,
|
|
alg_gebouw g,
|
|
alg_locatie l,
|
|
(SELECT t.fac_tracking_key fac_tracking_key_uit,
|
|
t.fac_tracking_datum datum_uitgifte,
|
|
t.fac_tracking_oms omschrijving_uitgifte,
|
|
p.prs_perslid_naam_full uitgegeven_door
|
|
FROM fac_tracking t, prs_v_perslid_fullnames_all p
|
|
WHERE t.prs_perslid_key = p.prs_perslid_key) uitg,
|
|
( SELECT t.fac_tracking_key fac_tracking_key_in,
|
|
t.fac_tracking_datum datum_inname,
|
|
t.fac_tracking_oms omschrijving_inname,
|
|
p.prs_perslid_naam_full ingenomen_door
|
|
FROM fac_tracking t, prs_v_perslid_fullnames_all p
|
|
WHERE t.prs_perslid_key = p.prs_perslid_key
|
|
GROUP BY t.fac_tracking_refkey,
|
|
t.fac_tracking_key,
|
|
t.fac_tracking_datum,
|
|
t.fac_tracking_oms,
|
|
p.prs_perslid_naam_full) inn
|
|
WHERE a.alg_ruimte_key = r.alg_ruimte_key
|
|
AND r.alg_verdieping_key = v.alg_verdieping_key
|
|
AND g.alg_locatie_key = l.alg_locatie_key
|
|
AND v.alg_gebouw_key = g.alg_gebouw_key
|
|
AND a.fac_tracking_key_in = inn.fac_tracking_key_in(+)
|
|
AND a.fac_tracking_key_uit = uitg.fac_tracking_key_uit
|
|
AND a.object_key = d.ins_deel_key
|
|
AND d.ins_srtdeel_key = os.ins_srtdeel_key
|
|
AND os.ins_srtgroep_key = og.ins_srtgroep_key
|
|
AND og.ins_discipline_key = disc.ins_discipline_key
|
|
ORDER BY a.object_key, datum_uitgeleend;
|
|
|
|
------ 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 |