Files
Customer/BLST/BLST.sql
2024-04-24 06:36:19 +00:00

11067 lines
492 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;
FUNCTION get_flex_value (
pmodule IN VARCHAR2,
p_kenmerk_key IN NUMBER,
p_ref_key IN NUMBER,
p_kenmerkdomein_key IN NUMBER,
p_niveau IN VARCHAR2 DEFAULT NULL)
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;
FUNCTION get_flex_value (
pmodule IN VARCHAR2,
p_kenmerk_key IN NUMBER,
p_ref_key IN NUMBER,
p_kenmerkdomein_key IN NUMBER,
p_niveau IN VARCHAR2 DEFAULT NULL)
RETURN VARCHAR2
AS
v_value VARCHAR2 (4000);
v_kenmerkdomein_key NUMBER (10);
BEGIN
v_value :=
flx.getflex (pmodule,
p_kenmerk_key,
p_ref_key,
p_niveau);
IF p_kenmerkdomein_key IS NOT NULL
THEN
v_value := flx.getdomeinwaarde (p_kenmerkdomein_key, v_value);
END IF;
RETURN v_value;
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;
-- werkplekken bij gebouwen die zijn verwijderd of vervallen, deze werkplekken mogen sowieso allemaal weg
CURSOR verwijder
IS
SELECT pw.prs_perslidwerkplek_key, pw.prs_perslid_key
FROM prs_perslidwerkplek pw,
prs_werkplek w,
alg_ruimte r,
alg_verdieping v,
alg_gebouw g
WHERE pw.prs_werkplek_key = w.prs_werkplek_key
AND r.alg_ruimte_key = w.prs_alg_ruimte_key
AND v.alg_verdieping_key = r.alg_verdieping_key
AND g.alg_gebouw_key = v.alg_gebouw_key
AND ( g.alg_gebouw_verwijder IS NOT NULL
OR g.alg_gebouw_vervaldatum <= TRUNC(SYSDATE));
-- de werkplekken van mdw van de Belastingdienst die zijn komen te vervallen
CURSOR intern_verw
IS
SELECT pw.prs_perslidwerkplek_key, prs.prs_perslid_key
FROM prs_perslidwerkplek pw,
prs_werkplek w,
(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 <= TRUNC(SYSDATE)
OR ud.fac_usrdata_verwijder IS NOT 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 UPPER (ud.fac_usrdata_omschr) = 'BD') wp --- alle werklocaties die zijn vervallen of verwijderd voor deze mdw
WHERE wp.afdeling = prs.prs_afdeling_upper
AND 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;
-- de werkplekken van mdw van de specifieke afdelingen binnen Belastingdienst die zijn komen te vervallen
CURSOR intern_spec_verw IS
SELECT pw.prs_perslidwerkplek_key, p.prs_perslid_key
FROM fac_usrtab ut,
fac_usrdata ud,
prs_afdeling a,
prs_perslid p,
alg_gebouw g,
alg_verdieping v,
alg_ruimte r,
prs_perslidwerkplek pw,
prs_werkplek w
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 <= TRUNC(SYSDATE)
OR ud.fac_usrdata_verwijder IS NOT 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 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 EXISTS
(SELECT prs_afdeling_key
FROM prs_afdeling a
WHERE a.prs_afdeling_parentkey = 21
AND p.prs_afdeling_key = a.prs_afdeling_key);
-- de werkplekken van externen die zijn komen te vervallen
CURSOR extern_verw IS
SELECT pw.prs_perslidwerkplek_key, prs.prs_perslid_key
FROM prs_perslidwerkplek pw,
prs_werkplek w,
(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_verwijder IS NOT 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') wp --- alle werkplekken (dummy ruimte per gebouw) waar deze medewerkers een werkplek zouden moeten hebben
WHERE wp.afdeling = prs.prs_afdeling_upper
AND 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;
-- 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 (g.alg_gebouw_vervaldatum > SYSDATE
OR g.alg_gebouw_vervaldatum IS NULL)
AND g.alg_gebouw_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 (g.alg_gebouw_vervaldatum > SYSDATE
OR g.alg_gebouw_vervaldatum IS NULL)
AND g.alg_gebouw_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 (g.alg_gebouw_vervaldatum > SYSDATE
OR g.alg_gebouw_vervaldatum IS NULL)
AND g.alg_gebouw_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
FOR REC IN verwijder
LOOP
v_perslid_key := rec.prs_perslid_key;
v_aanduiding := 'Perslidkey: ' || rec.prs_perslid_key;
v_errorhint :=
'Werkplek verwijderen voor perslid: ' || rec.prs_perslid_key;
BEGIN
DELETE prs_perslidwerkplek pw
WHERE pw.prs_perslidwerkplek_key = rec.prs_perslidwerkplek_key;
COMMIT;
EXCEPTION
WHEN OTHERS
THEN
oracle_err_num := SQLCODE;
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
fac.writelog (
'Verwijderen werkplek BD medewerker',
'E',
'Error '
|| v_aanduiding
|| oracle_err_num
|| '/'
|| oracle_err_mes,
v_errorhint);
END;
END LOOP;
FOR REC IN intern_verw
LOOP
v_perslid_key := rec.prs_perslid_key;
v_aanduiding := 'Perslidkey: ' || rec.prs_perslid_key;
v_errorhint :=
'Werkplek verwijderen voor perslid: ' || rec.prs_perslid_key;
BEGIN
DELETE prs_perslidwerkplek pw
WHERE pw.prs_perslidwerkplek_key = rec.prs_perslidwerkplek_key;
COMMIT;
EXCEPTION
WHEN OTHERS
THEN
oracle_err_num := SQLCODE;
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
fac.writelog (
'Verwijderen werkplek',
'E',
'Error '
|| v_aanduiding
|| oracle_err_num
|| '/'
|| oracle_err_mes,
v_errorhint);
END;
END LOOP;
FOR REC IN intern_spec_verw
LOOP
v_perslid_key := rec.prs_perslid_key;
v_aanduiding := 'Perslidkey: ' || rec.prs_perslid_key;
v_errorhint :=
'Werkplek verwijderen voor perslid: ' || rec.prs_perslid_key;
BEGIN
DELETE prs_perslidwerkplek pw
WHERE pw.prs_perslidwerkplek_key = rec.prs_perslidwerkplek_key;
COMMIT;
EXCEPTION
WHEN OTHERS
THEN
oracle_err_num := SQLCODE;
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
fac.writelog (
'Verwijderen werkplek',
'E',
'Error '
|| v_aanduiding
|| oracle_err_num
|| '/'
|| oracle_err_mes,
v_errorhint);
END;
END LOOP;
FOR REC IN extern_verw
LOOP
v_perslid_key := rec.prs_perslid_key;
v_aanduiding := 'Perslidkey: ' || rec.prs_perslid_key;
v_errorhint :=
'Werkplek verwijderen voor perslid: ' || rec.prs_perslid_key;
BEGIN
DELETE prs_perslidwerkplek pw
WHERE pw.prs_perslidwerkplek_key = rec.prs_perslidwerkplek_key;
COMMIT;
EXCEPTION
WHEN OTHERS
THEN
oracle_err_num := SQLCODE;
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
fac.writelog (
'Verwijderen werkplek',
'E',
'Error '
|| v_aanduiding
|| oracle_err_num
|| '/'
|| oracle_err_mes,
v_errorhint);
END;
END LOOP;
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,
LOCATIE_KEY,
GEBOUW_KEY,
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_locatie_key,
rg.alg_gebouw_key,
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_naam businessunit_code,
prs.bu_omschrijving businessunit_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,
bu.prs_afdeling_naam bu_naam,
bu.prs_afdeling_omschrijving bu_omschrijving,
p.prs_perslid_key,
g.alg_gebouw_key,
l.alg_locatie_key
FROM fac_usrtab ut,
fac_usrdata ud,
prs_afdeling a,
prs_afdeling bu,
prs_perslid p,
prs_v_perslid_fullnames pn,
alg_gebouw g,
alg_locatie l
WHERE (UPPER (fac_usrtab_naam) = 'WERKPLEKKEN BD')
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 -- locatie alleeen voor specifieke afdelingen
AND p.prs_afdeling_key = a.prs_afdeling_key
AND a.prs_afdeling_parentkey = bu.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)
UNION ALL
SELECT a.prs_afdeling_naam,
a.prs_afdeling_omschrijving,
bu.prs_afdeling_naam bu_naam,
bu.prs_afdeling_omschrijving bu_omschrijving,
p.prs_perslid_key,
g.alg_gebouw_key,
l.alg_locatie_key
FROM fac_usrtab ut,
fac_usrdata ud,
prs_afdeling a,
prs_afdeling bu,
prs_perslid p,
prs_v_perslid_fullnames pn,
alg_gebouw g,
alg_locatie l
WHERE (UPPER (fac_usrtab_naam) = 'WERKPLEKKEN BD')
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 = bu.prs_afdeling_naam -- locatie voor alle BD mdw dus op BU koppelen
AND p.prs_afdeling_key = a.prs_afdeling_key
AND a.prs_afdeling_parentkey = bu.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)
UNION ALL
SELECT '' prs_afdeling_naam,
'' prs_afdeling_omschrijving,
a.prs_afdeling_naam bu_naam,
a.prs_afdeling_omschrijving bu_omschrijving,
p.prs_perslid_key,
g.alg_gebouw_key,
l.alg_locatie_key
FROM fac_usrtab ut,
fac_usrdata ud,
prs_afdeling a,
prs_perslid p,
prs_v_perslid_fullnames pn,
alg_gebouw g,
alg_locatie l
WHERE (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 -- externen zitten allemaal op BU niveau
AND p.prs_afdeling_key = a.prs_afdeling_key
AND a.prs_afdeling_parentkey IS NULL
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 ( to_char(uitg.datum_uitgifte, 'dd-mm-yyyy'), 'dd-mm-yyyy')
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 ( to_char (inn.datum_inname, 'dd-mm-yyyy'), 'dd-mm-yyyy')
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;
---------- Plaatsingslijsten ----------
CREATE OR REPLACE VIEW BLST_V_PL_DOS_BELASTINGEN
AS
SELECT vgt.ins_srtdiscipline_omschrijving,
vg.ins_discipline_omschrijving,
sm.mld_stdmelding_omschrijving,
s.mld_statuses_omschrijving,
dossnr.dossiernummer,
obsn.onderwerp_bsnrsin,
dn.doosnummer,
CONCAT (DECODE (vj_onb.vj_onbekend, 'J', '9999', NULL), vj.vernietigingsjaar) vjaar,
hp.hoofdproces,
wp.werkproces,
dp.deelproces,
oj.ontstaansjaar,
hn.handelingsnummer,
dg.directoriaat_generaal,
arch.hoe_archiveren
FROM mld_melding m,
mld_stdmelding sm,
ins_tab_discipline vg,
ins_srtdiscipline vgt,
mld_statuses s,
(SELECT km.mld_melding_key, km.mld_kenmerkmelding_waarde dossiernummer
FROM mld_kenmerkmelding km, mld_kenmerk k
WHERE k.mld_kenmerk_key = km.mld_kenmerk_key
AND km.mld_kenmerkmelding_verwijder IS NULL
AND k.mld_kenmerk_key = 1143) dossnr,
(SELECT km.mld_melding_key, km.mld_kenmerkmelding_waarde onderwerp_bsnrsin
FROM mld_kenmerkmelding km, mld_kenmerk k
WHERE k.mld_kenmerk_key = km.mld_kenmerk_key
AND km.mld_kenmerkmelding_verwijder IS NULL
AND k.mld_kenmerk_key = 1105) obsn,
(SELECT km.mld_melding_key, km.mld_kenmerkmelding_waarde doosnummer
FROM mld_kenmerkmelding km, mld_kenmerk k
WHERE k.mld_kenmerk_key = km.mld_kenmerk_key
AND km.mld_kenmerkmelding_verwijder IS NULL
AND k.mld_kenmerk_key = 1205) dn,
(SELECT km.mld_melding_key, km.mld_kenmerkmelding_waarde vj_onbekend
FROM mld_kenmerkmelding km, mld_kenmerk k
WHERE k.mld_kenmerk_key = km.mld_kenmerk_key
AND km.mld_kenmerkmelding_verwijder IS NULL
AND k.mld_kenmerk_key = 1187) vj_onb,
(SELECT km.mld_melding_key, km.mld_kenmerkmelding_waarde vernietigingsjaar
FROM mld_kenmerkmelding km, mld_kenmerk k
WHERE k.mld_kenmerk_key = km.mld_kenmerk_key
AND km.mld_kenmerkmelding_verwijder IS NULL
AND k.mld_kenmerk_key = 1188) vj,
(SELECT km.mld_melding_key, km.mld_kenmerkmelding_waarde hoofdproces
FROM mld_kenmerkmelding km, mld_kenmerk k
WHERE k.mld_kenmerk_key = km.mld_kenmerk_key
AND km.mld_kenmerkmelding_verwijder IS NULL
AND k.mld_kenmerk_key = 1144) hp,
(SELECT km.mld_melding_key, km.mld_kenmerkmelding_waarde werkproces
FROM mld_kenmerkmelding km, mld_kenmerk k
WHERE k.mld_kenmerk_key = km.mld_kenmerk_key
AND km.mld_kenmerkmelding_verwijder IS NULL
AND k.mld_kenmerk_key = 1145) wp,
(SELECT km.mld_melding_key, km.mld_kenmerkmelding_waarde deelproces
FROM mld_kenmerkmelding km, mld_kenmerk k
WHERE k.mld_kenmerk_key = km.mld_kenmerk_key
AND km.mld_kenmerkmelding_verwijder IS NULL
AND k.mld_kenmerk_key = 1146) dp,
(SELECT mld_melding_key, mld_kenmerkmelding_waarde ontstaansjaar
FROM (SELECT km.mld_melding_key, km.mld_kenmerkmelding_waarde
FROM mld_kenmerkmelding km, mld_kenmerk k
WHERE k.mld_kenmerk_key = km.mld_kenmerk_key
AND km.mld_kenmerkmelding_verwijder IS NULL
AND k.mld_kenmerk_key = 1161
UNION ALL
SELECT km.mld_melding_key, km.mld_kenmerkmelding_waarde
FROM mld_kenmerkmelding km, mld_kenmerk k
WHERE k.mld_kenmerk_key = km.mld_kenmerk_key
AND km.mld_kenmerkmelding_verwijder IS NULL
AND k.mld_kenmerk_key = 1162
UNION ALL
SELECT km.mld_melding_key, km.mld_kenmerkmelding_waarde
FROM mld_kenmerkmelding km, mld_kenmerk k
WHERE k.mld_kenmerk_key = km.mld_kenmerk_key
AND km.mld_kenmerkmelding_verwijder IS NULL
AND k.mld_kenmerk_key = 1163
UNION ALL
SELECT km.mld_melding_key, km.mld_kenmerkmelding_waarde
FROM mld_kenmerkmelding km, mld_kenmerk k
WHERE k.mld_kenmerk_key = km.mld_kenmerk_key
AND km.mld_kenmerkmelding_verwijder IS NULL
AND k.mld_kenmerk_key = 1164
UNION ALL
SELECT km.mld_melding_key, km.mld_kenmerkmelding_waarde
FROM mld_kenmerkmelding km, mld_kenmerk k
WHERE k.mld_kenmerk_key = km.mld_kenmerk_key
AND km.mld_kenmerkmelding_verwijder IS NULL
AND k.mld_kenmerk_key = 1181
UNION ALL
SELECT km.mld_melding_key, km.mld_kenmerkmelding_waarde
FROM mld_kenmerkmelding km, mld_kenmerk k
WHERE k.mld_kenmerk_key = km.mld_kenmerk_key
AND km.mld_kenmerkmelding_verwijder IS NULL
AND k.mld_kenmerk_key = 1182
UNION ALL
SELECT km.mld_melding_key, km.mld_kenmerkmelding_waarde
FROM mld_kenmerkmelding km, mld_kenmerk k
WHERE k.mld_kenmerk_key = km.mld_kenmerk_key
AND km.mld_kenmerkmelding_verwijder IS NULL
AND k.mld_kenmerk_key = 1183
UNION ALL
SELECT km.mld_melding_key, km.mld_kenmerkmelding_waarde
FROM mld_kenmerkmelding km, mld_kenmerk k
WHERE k.mld_kenmerk_key = km.mld_kenmerk_key
AND km.mld_kenmerkmelding_verwijder IS NULL
AND k.mld_kenmerk_key = 1184
UNION ALL
SELECT km.mld_melding_key, km.mld_kenmerkmelding_waarde
FROM mld_kenmerkmelding km, mld_kenmerk k
WHERE k.mld_kenmerk_key = km.mld_kenmerk_key
AND km.mld_kenmerkmelding_verwijder IS NULL
AND k.mld_kenmerk_key = 1185
UNION ALL
SELECT km.mld_melding_key, km.mld_kenmerkmelding_waarde
FROM mld_kenmerkmelding km, mld_kenmerk k
WHERE k.mld_kenmerk_key = km.mld_kenmerk_key
AND km.mld_kenmerkmelding_verwijder IS NULL
AND k.mld_kenmerk_key = 1186)) oj,
(SELECT km.mld_melding_key, km.mld_kenmerkmelding_waarde handelingsnummer
FROM mld_kenmerkmelding km, mld_kenmerk k
WHERE k.mld_kenmerk_key = km.mld_kenmerk_key
AND km.mld_kenmerkmelding_verwijder IS NULL
AND k.mld_kenmerk_key = 1201) hn,
(SELECT km.mld_melding_key, km.mld_kenmerkmelding_waarde directoriaat_generaal
FROM mld_kenmerkmelding km, mld_kenmerk k
WHERE k.mld_kenmerk_key = km.mld_kenmerk_key
AND km.mld_kenmerkmelding_verwijder IS NULL
AND k.mld_kenmerk_key = 1101) dg,
(SELECT km.mld_melding_key, km.mld_kenmerkmelding_waarde hoe_archiveren
FROM mld_kenmerkmelding km, mld_kenmerk k
WHERE k.mld_kenmerk_key = km.mld_kenmerk_key
AND km.mld_kenmerkmelding_verwijder IS NULL
AND k.mld_kenmerk_key = 1104) arch
WHERE m.mld_stdmelding_key = sm.mld_stdmelding_key
AND sm.mld_ins_discipline_key = vg.ins_discipline_key
AND vg.ins_srtdiscipline_key = vgt.ins_srtdiscipline_key
AND m.mld_melding_status = s.mld_statuses_key
AND UPPER (s.mld_statuses_omschrijving) = 'IN BEHANDELING'
AND UPPER (sm.mld_stdmelding_omschrijving) = 'AANBIEDEN TE ARCHIVEREN DOCUMENTEN'
AND UPPER (dg.directoriaat_generaal) = 'BELASTINGEN'
AND UPPER (arch.hoe_archiveren) = 'ONDERWERP (BSN OF RSIN)'
AND dossnr.mld_melding_key(+) = m.mld_melding_key
AND obsn.mld_melding_key(+) = m.mld_melding_key
AND dn.mld_melding_key(+) = m.mld_melding_key
AND vj_onb.mld_melding_key(+) = m.mld_melding_key
AND vj.mld_melding_key(+) = m.mld_melding_key
AND hp.mld_melding_key(+) = m.mld_melding_key
AND wp.mld_melding_key(+) = m.mld_melding_key
AND dp.mld_melding_key(+) = m.mld_melding_key
AND oj.mld_melding_key(+) = m.mld_melding_key
AND hn.mld_melding_key(+) = m.mld_melding_key
AND dg.mld_melding_key = m.mld_melding_key
AND arch.mld_melding_key = m.mld_melding_key;
CREATE OR REPLACE VIEW BLST_V_PL_DOS_DOUANE
AS
SELECT vgt.ins_srtdiscipline_omschrijving,
vg.ins_discipline_omschrijving,
sm.mld_stdmelding_omschrijving,
s.mld_statuses_omschrijving,
dossnr.dossiernummer,
obsn.onderwerp_bsnrsin,
dn.doosnummer,
CONCAT (DECODE (vj_onb.vj_onbekend, 'J', '9999', NULL), vj.vernietigingsjaar) vjaar,
hp.hoofdproces,
wp.werkproces,
dp.deelproces,
oj.ontstaansjaar,
hn.handelingsnummer,
dg.directoriaat_generaal,
arch.hoe_archiveren
FROM mld_melding m,
mld_stdmelding sm,
ins_tab_discipline vg,
ins_srtdiscipline vgt,
mld_statuses s,
(SELECT km.mld_melding_key, km.mld_kenmerkmelding_waarde dossiernummer
FROM mld_kenmerkmelding km, mld_kenmerk k
WHERE k.mld_kenmerk_key = km.mld_kenmerk_key
AND km.mld_kenmerkmelding_verwijder IS NULL
AND k.mld_kenmerk_key = 1143) dossnr,
(SELECT km.mld_melding_key, km.mld_kenmerkmelding_waarde onderwerp_bsnrsin
FROM mld_kenmerkmelding km, mld_kenmerk k
WHERE k.mld_kenmerk_key = km.mld_kenmerk_key
AND km.mld_kenmerkmelding_verwijder IS NULL
AND k.mld_kenmerk_key = 1105) obsn,
(SELECT km.mld_melding_key, km.mld_kenmerkmelding_waarde doosnummer
FROM mld_kenmerkmelding km, mld_kenmerk k
WHERE k.mld_kenmerk_key = km.mld_kenmerk_key
AND km.mld_kenmerkmelding_verwijder IS NULL
AND k.mld_kenmerk_key = 1205) dn,
(SELECT km.mld_melding_key, km.mld_kenmerkmelding_waarde vj_onbekend
FROM mld_kenmerkmelding km, mld_kenmerk k
WHERE k.mld_kenmerk_key = km.mld_kenmerk_key
AND km.mld_kenmerkmelding_verwijder IS NULL
AND k.mld_kenmerk_key = 1187) vj_onb,
(SELECT km.mld_melding_key, km.mld_kenmerkmelding_waarde vernietigingsjaar
FROM mld_kenmerkmelding km, mld_kenmerk k
WHERE k.mld_kenmerk_key = km.mld_kenmerk_key
AND km.mld_kenmerkmelding_verwijder IS NULL
AND k.mld_kenmerk_key = 1188) vj,
(SELECT km.mld_melding_key, km.mld_kenmerkmelding_waarde hoofdproces
FROM mld_kenmerkmelding km, mld_kenmerk k
WHERE k.mld_kenmerk_key = km.mld_kenmerk_key
AND km.mld_kenmerkmelding_verwijder IS NULL
AND k.mld_kenmerk_key = 1144) hp,
(SELECT km.mld_melding_key, km.mld_kenmerkmelding_waarde werkproces
FROM mld_kenmerkmelding km, mld_kenmerk k
WHERE k.mld_kenmerk_key = km.mld_kenmerk_key
AND km.mld_kenmerkmelding_verwijder IS NULL
AND k.mld_kenmerk_key = 1145) wp,
(SELECT km.mld_melding_key, km.mld_kenmerkmelding_waarde deelproces
FROM mld_kenmerkmelding km, mld_kenmerk k
WHERE k.mld_kenmerk_key = km.mld_kenmerk_key
AND km.mld_kenmerkmelding_verwijder IS NULL
AND k.mld_kenmerk_key = 1146) dp,
(SELECT mld_melding_key, mld_kenmerkmelding_waarde ontstaansjaar
FROM (SELECT km.mld_melding_key, km.mld_kenmerkmelding_waarde
FROM mld_kenmerkmelding km, mld_kenmerk k
WHERE k.mld_kenmerk_key = km.mld_kenmerk_key
AND km.mld_kenmerkmelding_verwijder IS NULL
AND k.mld_kenmerk_key = 1161
UNION ALL
SELECT km.mld_melding_key, km.mld_kenmerkmelding_waarde
FROM mld_kenmerkmelding km, mld_kenmerk k
WHERE k.mld_kenmerk_key = km.mld_kenmerk_key
AND km.mld_kenmerkmelding_verwijder IS NULL
AND k.mld_kenmerk_key = 1162
UNION ALL
SELECT km.mld_melding_key, km.mld_kenmerkmelding_waarde
FROM mld_kenmerkmelding km, mld_kenmerk k
WHERE k.mld_kenmerk_key = km.mld_kenmerk_key
AND km.mld_kenmerkmelding_verwijder IS NULL
AND k.mld_kenmerk_key = 1163
UNION ALL
SELECT km.mld_melding_key, km.mld_kenmerkmelding_waarde
FROM mld_kenmerkmelding km, mld_kenmerk k
WHERE k.mld_kenmerk_key = km.mld_kenmerk_key
AND km.mld_kenmerkmelding_verwijder IS NULL
AND k.mld_kenmerk_key = 1164
UNION ALL
SELECT km.mld_melding_key, km.mld_kenmerkmelding_waarde
FROM mld_kenmerkmelding km, mld_kenmerk k
WHERE k.mld_kenmerk_key = km.mld_kenmerk_key
AND km.mld_kenmerkmelding_verwijder IS NULL
AND k.mld_kenmerk_key = 1181
UNION ALL
SELECT km.mld_melding_key, km.mld_kenmerkmelding_waarde
FROM mld_kenmerkmelding km, mld_kenmerk k
WHERE k.mld_kenmerk_key = km.mld_kenmerk_key
AND km.mld_kenmerkmelding_verwijder IS NULL
AND k.mld_kenmerk_key = 1182
UNION ALL
SELECT km.mld_melding_key, km.mld_kenmerkmelding_waarde
FROM mld_kenmerkmelding km, mld_kenmerk k
WHERE k.mld_kenmerk_key = km.mld_kenmerk_key
AND km.mld_kenmerkmelding_verwijder IS NULL
AND k.mld_kenmerk_key = 1183
UNION ALL
SELECT km.mld_melding_key, km.mld_kenmerkmelding_waarde
FROM mld_kenmerkmelding km, mld_kenmerk k
WHERE k.mld_kenmerk_key = km.mld_kenmerk_key
AND km.mld_kenmerkmelding_verwijder IS NULL
AND k.mld_kenmerk_key = 1184
UNION ALL
SELECT km.mld_melding_key, km.mld_kenmerkmelding_waarde
FROM mld_kenmerkmelding km, mld_kenmerk k
WHERE k.mld_kenmerk_key = km.mld_kenmerk_key
AND km.mld_kenmerkmelding_verwijder IS NULL
AND k.mld_kenmerk_key = 1185
UNION ALL
SELECT km.mld_melding_key, km.mld_kenmerkmelding_waarde
FROM mld_kenmerkmelding km, mld_kenmerk k
WHERE k.mld_kenmerk_key = km.mld_kenmerk_key
AND km.mld_kenmerkmelding_verwijder IS NULL
AND k.mld_kenmerk_key = 1186)) oj,
(SELECT km.mld_melding_key, km.mld_kenmerkmelding_waarde handelingsnummer
FROM mld_kenmerkmelding km, mld_kenmerk k
WHERE k.mld_kenmerk_key = km.mld_kenmerk_key
AND km.mld_kenmerkmelding_verwijder IS NULL
AND k.mld_kenmerk_key = 1201) hn,
(SELECT km.mld_melding_key, km.mld_kenmerkmelding_waarde directoriaat_generaal
FROM mld_kenmerkmelding km, mld_kenmerk k
WHERE k.mld_kenmerk_key = km.mld_kenmerk_key
AND km.mld_kenmerkmelding_verwijder IS NULL
AND k.mld_kenmerk_key = 1101) dg,
(SELECT km.mld_melding_key, km.mld_kenmerkmelding_waarde hoe_archiveren
FROM mld_kenmerkmelding km, mld_kenmerk k
WHERE k.mld_kenmerk_key = km.mld_kenmerk_key
AND km.mld_kenmerkmelding_verwijder IS NULL
AND k.mld_kenmerk_key = 1104) arch
WHERE m.mld_stdmelding_key = sm.mld_stdmelding_key
AND sm.mld_ins_discipline_key = vg.ins_discipline_key
AND vg.ins_srtdiscipline_key = vgt.ins_srtdiscipline_key
AND m.mld_melding_status = s.mld_statuses_key
AND UPPER (s.mld_statuses_omschrijving) = 'IN BEHANDELING'
AND UPPER (sm.mld_stdmelding_omschrijving) = 'AANBIEDEN TE ARCHIVEREN DOCUMENTEN'
AND UPPER (dg.directoriaat_generaal) = 'DOUANE'
AND UPPER (arch.hoe_archiveren) = 'ONDERWERP (BSN OF RSIN)'
AND dossnr.mld_melding_key(+) = m.mld_melding_key
AND obsn.mld_melding_key(+) = m.mld_melding_key
AND dn.mld_melding_key(+) = m.mld_melding_key
AND vj_onb.mld_melding_key(+) = m.mld_melding_key
AND vj.mld_melding_key(+) = m.mld_melding_key
AND hp.mld_melding_key(+) = m.mld_melding_key
AND wp.mld_melding_key(+) = m.mld_melding_key
AND dp.mld_melding_key(+) = m.mld_melding_key
AND oj.mld_melding_key(+) = m.mld_melding_key
AND hn.mld_melding_key(+) = m.mld_melding_key
AND dg.mld_melding_key = m.mld_melding_key
AND arch.mld_melding_key = m.mld_melding_key;
CREATE OR REPLACE VIEW BLST_V_PL_DOS_TOESLAGEN
AS
SELECT vgt.ins_srtdiscipline_omschrijving,
vg.ins_discipline_omschrijving,
sm.mld_stdmelding_omschrijving,
s.mld_statuses_omschrijving,
dossnr.dossiernummer,
obsn.onderwerp_bsnrsin,
dn.doosnummer,
CONCAT (DECODE (vj_onb.vj_onbekend, 'J', '9999', NULL), vj.vernietigingsjaar) vjaar,
hp.hoofdproces,
wp.werkproces,
dp.deelproces,
oj.ontstaansjaar,
hn.handelingsnummer,
dg.directoriaat_generaal,
arch.hoe_archiveren
FROM mld_melding m,
mld_stdmelding sm,
ins_tab_discipline vg,
ins_srtdiscipline vgt,
mld_statuses s,
(SELECT km.mld_melding_key, km.mld_kenmerkmelding_waarde dossiernummer
FROM mld_kenmerkmelding km, mld_kenmerk k
WHERE k.mld_kenmerk_key = km.mld_kenmerk_key
AND km.mld_kenmerkmelding_verwijder IS NULL
AND k.mld_kenmerk_key = 1143) dossnr,
(SELECT km.mld_melding_key, km.mld_kenmerkmelding_waarde onderwerp_bsnrsin
FROM mld_kenmerkmelding km, mld_kenmerk k
WHERE k.mld_kenmerk_key = km.mld_kenmerk_key
AND km.mld_kenmerkmelding_verwijder IS NULL
AND k.mld_kenmerk_key = 1105) obsn,
(SELECT km.mld_melding_key, km.mld_kenmerkmelding_waarde doosnummer
FROM mld_kenmerkmelding km, mld_kenmerk k
WHERE k.mld_kenmerk_key = km.mld_kenmerk_key
AND km.mld_kenmerkmelding_verwijder IS NULL
AND k.mld_kenmerk_key = 1205) dn,
(SELECT km.mld_melding_key, km.mld_kenmerkmelding_waarde vj_onbekend
FROM mld_kenmerkmelding km, mld_kenmerk k
WHERE k.mld_kenmerk_key = km.mld_kenmerk_key
AND km.mld_kenmerkmelding_verwijder IS NULL
AND k.mld_kenmerk_key = 1187) vj_onb,
(SELECT km.mld_melding_key, km.mld_kenmerkmelding_waarde vernietigingsjaar
FROM mld_kenmerkmelding km, mld_kenmerk k
WHERE k.mld_kenmerk_key = km.mld_kenmerk_key
AND km.mld_kenmerkmelding_verwijder IS NULL
AND k.mld_kenmerk_key = 1188) vj,
(SELECT km.mld_melding_key, km.mld_kenmerkmelding_waarde hoofdproces
FROM mld_kenmerkmelding km, mld_kenmerk k
WHERE k.mld_kenmerk_key = km.mld_kenmerk_key
AND km.mld_kenmerkmelding_verwijder IS NULL
AND k.mld_kenmerk_key = 1144) hp,
(SELECT km.mld_melding_key, km.mld_kenmerkmelding_waarde werkproces
FROM mld_kenmerkmelding km, mld_kenmerk k
WHERE k.mld_kenmerk_key = km.mld_kenmerk_key
AND km.mld_kenmerkmelding_verwijder IS NULL
AND k.mld_kenmerk_key = 1145) wp,
(SELECT km.mld_melding_key, km.mld_kenmerkmelding_waarde deelproces
FROM mld_kenmerkmelding km, mld_kenmerk k
WHERE k.mld_kenmerk_key = km.mld_kenmerk_key
AND km.mld_kenmerkmelding_verwijder IS NULL
AND k.mld_kenmerk_key = 1146) dp,
(SELECT mld_melding_key, mld_kenmerkmelding_waarde ontstaansjaar
FROM (SELECT km.mld_melding_key, km.mld_kenmerkmelding_waarde
FROM mld_kenmerkmelding km, mld_kenmerk k
WHERE k.mld_kenmerk_key = km.mld_kenmerk_key
AND km.mld_kenmerkmelding_verwijder IS NULL
AND k.mld_kenmerk_key = 1161
UNION ALL
SELECT km.mld_melding_key, km.mld_kenmerkmelding_waarde
FROM mld_kenmerkmelding km, mld_kenmerk k
WHERE k.mld_kenmerk_key = km.mld_kenmerk_key
AND km.mld_kenmerkmelding_verwijder IS NULL
AND k.mld_kenmerk_key = 1162
UNION ALL
SELECT km.mld_melding_key, km.mld_kenmerkmelding_waarde
FROM mld_kenmerkmelding km, mld_kenmerk k
WHERE k.mld_kenmerk_key = km.mld_kenmerk_key
AND km.mld_kenmerkmelding_verwijder IS NULL
AND k.mld_kenmerk_key = 1163
UNION ALL
SELECT km.mld_melding_key, km.mld_kenmerkmelding_waarde
FROM mld_kenmerkmelding km, mld_kenmerk k
WHERE k.mld_kenmerk_key = km.mld_kenmerk_key
AND km.mld_kenmerkmelding_verwijder IS NULL
AND k.mld_kenmerk_key = 1164
UNION ALL
SELECT km.mld_melding_key, km.mld_kenmerkmelding_waarde
FROM mld_kenmerkmelding km, mld_kenmerk k
WHERE k.mld_kenmerk_key = km.mld_kenmerk_key
AND km.mld_kenmerkmelding_verwijder IS NULL
AND k.mld_kenmerk_key = 1181
UNION ALL
SELECT km.mld_melding_key, km.mld_kenmerkmelding_waarde
FROM mld_kenmerkmelding km, mld_kenmerk k
WHERE k.mld_kenmerk_key = km.mld_kenmerk_key
AND km.mld_kenmerkmelding_verwijder IS NULL
AND k.mld_kenmerk_key = 1182
UNION ALL
SELECT km.mld_melding_key, km.mld_kenmerkmelding_waarde
FROM mld_kenmerkmelding km, mld_kenmerk k
WHERE k.mld_kenmerk_key = km.mld_kenmerk_key
AND km.mld_kenmerkmelding_verwijder IS NULL
AND k.mld_kenmerk_key = 1183
UNION ALL
SELECT km.mld_melding_key, km.mld_kenmerkmelding_waarde
FROM mld_kenmerkmelding km, mld_kenmerk k
WHERE k.mld_kenmerk_key = km.mld_kenmerk_key
AND km.mld_kenmerkmelding_verwijder IS NULL
AND k.mld_kenmerk_key = 1184
UNION ALL
SELECT km.mld_melding_key, km.mld_kenmerkmelding_waarde
FROM mld_kenmerkmelding km, mld_kenmerk k
WHERE k.mld_kenmerk_key = km.mld_kenmerk_key
AND km.mld_kenmerkmelding_verwijder IS NULL
AND k.mld_kenmerk_key = 1185
UNION ALL
SELECT km.mld_melding_key, km.mld_kenmerkmelding_waarde
FROM mld_kenmerkmelding km, mld_kenmerk k
WHERE k.mld_kenmerk_key = km.mld_kenmerk_key
AND km.mld_kenmerkmelding_verwijder IS NULL
AND k.mld_kenmerk_key = 1186)) oj,
(SELECT km.mld_melding_key, km.mld_kenmerkmelding_waarde handelingsnummer
FROM mld_kenmerkmelding km, mld_kenmerk k
WHERE k.mld_kenmerk_key = km.mld_kenmerk_key
AND km.mld_kenmerkmelding_verwijder IS NULL
AND k.mld_kenmerk_key = 1201) hn,
(SELECT km.mld_melding_key, km.mld_kenmerkmelding_waarde directoriaat_generaal
FROM mld_kenmerkmelding km, mld_kenmerk k
WHERE k.mld_kenmerk_key = km.mld_kenmerk_key
AND km.mld_kenmerkmelding_verwijder IS NULL
AND k.mld_kenmerk_key = 1101) dg,
(SELECT km.mld_melding_key, km.mld_kenmerkmelding_waarde hoe_archiveren
FROM mld_kenmerkmelding km, mld_kenmerk k
WHERE k.mld_kenmerk_key = km.mld_kenmerk_key
AND km.mld_kenmerkmelding_verwijder IS NULL
AND k.mld_kenmerk_key = 1104) arch
WHERE m.mld_stdmelding_key = sm.mld_stdmelding_key
AND sm.mld_ins_discipline_key = vg.ins_discipline_key
AND vg.ins_srtdiscipline_key = vgt.ins_srtdiscipline_key
AND m.mld_melding_status = s.mld_statuses_key
AND UPPER (s.mld_statuses_omschrijving) = 'IN BEHANDELING'
AND UPPER (sm.mld_stdmelding_omschrijving) = 'AANBIEDEN TE ARCHIVEREN DOCUMENTEN'
AND UPPER (dg.directoriaat_generaal) = 'TOESLAGEN'
AND UPPER (arch.hoe_archiveren) = 'ONDERWERP (BSN OF RSIN)'
AND dossnr.mld_melding_key(+) = m.mld_melding_key
AND obsn.mld_melding_key(+) = m.mld_melding_key
AND dn.mld_melding_key(+) = m.mld_melding_key
AND vj_onb.mld_melding_key(+) = m.mld_melding_key
AND vj.mld_melding_key(+) = m.mld_melding_key
AND hp.mld_melding_key(+) = m.mld_melding_key
AND wp.mld_melding_key(+) = m.mld_melding_key
AND dp.mld_melding_key(+) = m.mld_melding_key
AND oj.mld_melding_key(+) = m.mld_melding_key
AND hn.mld_melding_key(+) = m.mld_melding_key
AND dg.mld_melding_key = m.mld_melding_key
AND arch.mld_melding_key = m.mld_melding_key;
CREATE OR REPLACE VIEW BLST_V_PL_PALLET
AS
SELECT vgt.ins_srtdiscipline_omschrijving,
vg.ins_discipline_omschrijving,
sm.mld_stdmelding_omschrijving,
s.mld_statuses_omschrijving,
pn.palletnummer,
dnv.doosnummer_van,
dnt.doosnummer_tm,
CONCAT (DECODE (vj_onb.vj_onbekend, 'J', '9999', NULL), vj.vernietigingsjaar) vjaar,
hp.hoofdproces,
wp.werkproces,
oj.ontstaansjaar,
hn.handelingsnummer
FROM mld_melding m,
mld_stdmelding sm,
ins_tab_discipline vg,
ins_srtdiscipline vgt,
mld_statuses s,
(SELECT km.mld_melding_key, km.mld_kenmerkmelding_waarde doosnummer_van
FROM mld_kenmerkmelding km, mld_kenmerk k
WHERE k.mld_kenmerk_key = km.mld_kenmerk_key
AND km.mld_kenmerkmelding_verwijder IS NULL
AND k.mld_kenmerk_key = 2) dnv,
(SELECT km.mld_melding_key, km.mld_kenmerkmelding_waarde doosnummer_tm
FROM mld_kenmerkmelding km, mld_kenmerk k
WHERE k.mld_kenmerk_key = km.mld_kenmerk_key
AND km.mld_kenmerkmelding_verwijder IS NULL
AND k.mld_kenmerk_key = 3) dnt,
(SELECT km.mld_melding_key, km.mld_kenmerkmelding_waarde vj_onbekend
FROM mld_kenmerkmelding km, mld_kenmerk k
WHERE k.mld_kenmerk_key = km.mld_kenmerk_key
AND km.mld_kenmerkmelding_verwijder IS NULL
AND k.mld_kenmerk_key = 1187) vj_onb,
(SELECT km.mld_melding_key, km.mld_kenmerkmelding_waarde vernietigingsjaar
FROM mld_kenmerkmelding km, mld_kenmerk k
WHERE k.mld_kenmerk_key = km.mld_kenmerk_key
AND km.mld_kenmerkmelding_verwijder IS NULL
AND k.mld_kenmerk_key = 1188) vj,
(SELECT km.mld_melding_key, km.mld_kenmerkmelding_waarde hoofdproces
FROM mld_kenmerkmelding km, mld_kenmerk k
WHERE k.mld_kenmerk_key = km.mld_kenmerk_key
AND km.mld_kenmerkmelding_verwijder IS NULL
AND k.mld_kenmerk_key = 1144) hp,
(SELECT km.mld_melding_key, km.mld_kenmerkmelding_waarde werkproces
FROM mld_kenmerkmelding km, mld_kenmerk k
WHERE k.mld_kenmerk_key = km.mld_kenmerk_key
AND km.mld_kenmerkmelding_verwijder IS NULL
AND k.mld_kenmerk_key = 1145) wp,
(SELECT mld_melding_key, mld_kenmerkmelding_waarde ontstaansjaar
FROM (SELECT km.mld_melding_key, km.mld_kenmerkmelding_waarde
FROM mld_kenmerkmelding km, mld_kenmerk k
WHERE k.mld_kenmerk_key = km.mld_kenmerk_key
AND km.mld_kenmerkmelding_verwijder IS NULL
AND k.mld_kenmerk_key = 1161
UNION ALL
SELECT km.mld_melding_key, km.mld_kenmerkmelding_waarde
FROM mld_kenmerkmelding km, mld_kenmerk k
WHERE k.mld_kenmerk_key = km.mld_kenmerk_key
AND km.mld_kenmerkmelding_verwijder IS NULL
AND k.mld_kenmerk_key = 1162
UNION ALL
SELECT km.mld_melding_key, km.mld_kenmerkmelding_waarde
FROM mld_kenmerkmelding km, mld_kenmerk k
WHERE k.mld_kenmerk_key = km.mld_kenmerk_key
AND km.mld_kenmerkmelding_verwijder IS NULL
AND k.mld_kenmerk_key = 1163
UNION ALL
SELECT km.mld_melding_key, km.mld_kenmerkmelding_waarde
FROM mld_kenmerkmelding km, mld_kenmerk k
WHERE k.mld_kenmerk_key = km.mld_kenmerk_key
AND km.mld_kenmerkmelding_verwijder IS NULL
AND k.mld_kenmerk_key = 1164
UNION ALL
SELECT km.mld_melding_key, km.mld_kenmerkmelding_waarde
FROM mld_kenmerkmelding km, mld_kenmerk k
WHERE k.mld_kenmerk_key = km.mld_kenmerk_key
AND km.mld_kenmerkmelding_verwijder IS NULL
AND k.mld_kenmerk_key = 1181
UNION ALL
SELECT km.mld_melding_key, km.mld_kenmerkmelding_waarde
FROM mld_kenmerkmelding km, mld_kenmerk k
WHERE k.mld_kenmerk_key = km.mld_kenmerk_key
AND km.mld_kenmerkmelding_verwijder IS NULL
AND k.mld_kenmerk_key = 1182
UNION ALL
SELECT km.mld_melding_key, km.mld_kenmerkmelding_waarde
FROM mld_kenmerkmelding km, mld_kenmerk k
WHERE k.mld_kenmerk_key = km.mld_kenmerk_key
AND km.mld_kenmerkmelding_verwijder IS NULL
AND k.mld_kenmerk_key = 1183
UNION ALL
SELECT km.mld_melding_key, km.mld_kenmerkmelding_waarde
FROM mld_kenmerkmelding km, mld_kenmerk k
WHERE k.mld_kenmerk_key = km.mld_kenmerk_key
AND km.mld_kenmerkmelding_verwijder IS NULL
AND k.mld_kenmerk_key = 1184
UNION ALL
SELECT km.mld_melding_key, km.mld_kenmerkmelding_waarde
FROM mld_kenmerkmelding km, mld_kenmerk k
WHERE k.mld_kenmerk_key = km.mld_kenmerk_key
AND km.mld_kenmerkmelding_verwijder IS NULL
AND k.mld_kenmerk_key = 1185
UNION ALL
SELECT km.mld_melding_key, km.mld_kenmerkmelding_waarde
FROM mld_kenmerkmelding km, mld_kenmerk k
WHERE k.mld_kenmerk_key = km.mld_kenmerk_key
AND km.mld_kenmerkmelding_verwijder IS NULL
AND k.mld_kenmerk_key = 1186)) oj,
(SELECT km.mld_melding_key, km.mld_kenmerkmelding_waarde handelingsnummer
FROM mld_kenmerkmelding km, mld_kenmerk k
WHERE k.mld_kenmerk_key = km.mld_kenmerk_key
AND km.mld_kenmerkmelding_verwijder IS NULL
AND k.mld_kenmerk_key = 1201) hn,
(SELECT km.mld_melding_key, km.mld_kenmerkmelding_waarde palletnummer
FROM mld_kenmerkmelding km, mld_kenmerk k
WHERE k.mld_kenmerk_key = km.mld_kenmerk_key
AND km.mld_kenmerkmelding_verwijder IS NULL
AND k.mld_kenmerk_key = 1) pn
WHERE m.mld_stdmelding_key = sm.mld_stdmelding_key
AND sm.mld_ins_discipline_key = vg.ins_discipline_key
AND vg.ins_srtdiscipline_key = vgt.ins_srtdiscipline_key
AND m.mld_melding_status = s.mld_statuses_key
AND UPPER (s.mld_statuses_omschrijving) = 'IN BEHANDELING'
AND UPPER (sm.mld_stdmelding_omschrijving) = 'AANBIEDEN TE ARCHIVEREN DOCUMENTEN'
AND dnv.mld_melding_key(+) = m.mld_melding_key
AND dnt.mld_melding_key(+) = m.mld_melding_key
AND vj_onb.mld_melding_key(+) = m.mld_melding_key
AND vj.mld_melding_key(+) = m.mld_melding_key
AND hp.mld_melding_key(+) = m.mld_melding_key
AND wp.mld_melding_key(+) = m.mld_melding_key
AND oj.mld_melding_key(+) = m.mld_melding_key
AND hn.mld_melding_key(+) = m.mld_melding_key
AND pn.mld_melding_key(+) = m.mld_melding_key;
CREATE OR REPLACE VIEW BLST_V_PL_RKS_BELASTINGEN
AS
SELECT vgt.ins_srtdiscipline_omschrijving,
vg.ins_discipline_omschrijving,
sm.mld_stdmelding_omschrijving,
s.mld_statuses_omschrijving,
dn.doosnummer,
CONCAT (DECODE (vj_onb.vj_onbekend, 'J', '9999', NULL), vj.vernietigingsjaar) vjaar,
hp.hoofdproces,
wp.werkproces,
dp.deelproces,
oj.ontstaansjaar,
hn.handelingsnummer,
bdat.begindatum,
edat.einddatum,
bnum.beginnummer,
enum.eindnummer,
dg.directoriaat_generaal,
arch.hoe_archiveren
FROM mld_melding m,
mld_stdmelding sm,
ins_tab_discipline vg,
ins_srtdiscipline vgt,
mld_statuses s,
(SELECT km.mld_melding_key, km.mld_kenmerkmelding_waarde doosnummer
FROM mld_kenmerkmelding km, mld_kenmerk k
WHERE k.mld_kenmerk_key = km.mld_kenmerk_key
AND km.mld_kenmerkmelding_verwijder IS NULL
AND k.mld_kenmerk_key = 1205) dn,
(SELECT km.mld_melding_key, km.mld_kenmerkmelding_waarde vj_onbekend
FROM mld_kenmerkmelding km, mld_kenmerk k
WHERE k.mld_kenmerk_key = km.mld_kenmerk_key
AND km.mld_kenmerkmelding_verwijder IS NULL
AND k.mld_kenmerk_key = 1187) vj_onb,
(SELECT km.mld_melding_key, km.mld_kenmerkmelding_waarde vernietigingsjaar
FROM mld_kenmerkmelding km, mld_kenmerk k
WHERE k.mld_kenmerk_key = km.mld_kenmerk_key
AND km.mld_kenmerkmelding_verwijder IS NULL
AND k.mld_kenmerk_key = 1188) vj,
(SELECT km.mld_melding_key, km.mld_kenmerkmelding_waarde hoofdproces
FROM mld_kenmerkmelding km, mld_kenmerk k
WHERE k.mld_kenmerk_key = km.mld_kenmerk_key
AND km.mld_kenmerkmelding_verwijder IS NULL
AND k.mld_kenmerk_key = 1144) hp,
(SELECT km.mld_melding_key, km.mld_kenmerkmelding_waarde werkproces
FROM mld_kenmerkmelding km, mld_kenmerk k
WHERE k.mld_kenmerk_key = km.mld_kenmerk_key
AND km.mld_kenmerkmelding_verwijder IS NULL
AND k.mld_kenmerk_key = 1145) wp,
(SELECT km.mld_melding_key, km.mld_kenmerkmelding_waarde deelproces
FROM mld_kenmerkmelding km, mld_kenmerk k
WHERE k.mld_kenmerk_key = km.mld_kenmerk_key
AND km.mld_kenmerkmelding_verwijder IS NULL
AND k.mld_kenmerk_key = 1146) dp,
(SELECT mld_melding_key, mld_kenmerkmelding_waarde ontstaansjaar
FROM (SELECT km.mld_melding_key, km.mld_kenmerkmelding_waarde
FROM mld_kenmerkmelding km, mld_kenmerk k
WHERE k.mld_kenmerk_key = km.mld_kenmerk_key
AND km.mld_kenmerkmelding_verwijder IS NULL
AND k.mld_kenmerk_key = 1161
UNION ALL
SELECT km.mld_melding_key, km.mld_kenmerkmelding_waarde
FROM mld_kenmerkmelding km, mld_kenmerk k
WHERE k.mld_kenmerk_key = km.mld_kenmerk_key
AND km.mld_kenmerkmelding_verwijder IS NULL
AND k.mld_kenmerk_key = 1162
UNION ALL
SELECT km.mld_melding_key, km.mld_kenmerkmelding_waarde
FROM mld_kenmerkmelding km, mld_kenmerk k
WHERE k.mld_kenmerk_key = km.mld_kenmerk_key
AND km.mld_kenmerkmelding_verwijder IS NULL
AND k.mld_kenmerk_key = 1163
UNION ALL
SELECT km.mld_melding_key, km.mld_kenmerkmelding_waarde
FROM mld_kenmerkmelding km, mld_kenmerk k
WHERE k.mld_kenmerk_key = km.mld_kenmerk_key
AND km.mld_kenmerkmelding_verwijder IS NULL
AND k.mld_kenmerk_key = 1164
UNION ALL
SELECT km.mld_melding_key, km.mld_kenmerkmelding_waarde
FROM mld_kenmerkmelding km, mld_kenmerk k
WHERE k.mld_kenmerk_key = km.mld_kenmerk_key
AND km.mld_kenmerkmelding_verwijder IS NULL
AND k.mld_kenmerk_key = 1181
UNION ALL
SELECT km.mld_melding_key, km.mld_kenmerkmelding_waarde
FROM mld_kenmerkmelding km, mld_kenmerk k
WHERE k.mld_kenmerk_key = km.mld_kenmerk_key
AND km.mld_kenmerkmelding_verwijder IS NULL
AND k.mld_kenmerk_key = 1182
UNION ALL
SELECT km.mld_melding_key, km.mld_kenmerkmelding_waarde
FROM mld_kenmerkmelding km, mld_kenmerk k
WHERE k.mld_kenmerk_key = km.mld_kenmerk_key
AND km.mld_kenmerkmelding_verwijder IS NULL
AND k.mld_kenmerk_key = 1183
UNION ALL
SELECT km.mld_melding_key, km.mld_kenmerkmelding_waarde
FROM mld_kenmerkmelding km, mld_kenmerk k
WHERE k.mld_kenmerk_key = km.mld_kenmerk_key
AND km.mld_kenmerkmelding_verwijder IS NULL
AND k.mld_kenmerk_key = 1184
UNION ALL
SELECT km.mld_melding_key, km.mld_kenmerkmelding_waarde
FROM mld_kenmerkmelding km, mld_kenmerk k
WHERE k.mld_kenmerk_key = km.mld_kenmerk_key
AND km.mld_kenmerkmelding_verwijder IS NULL
AND k.mld_kenmerk_key = 1185
UNION ALL
SELECT km.mld_melding_key, km.mld_kenmerkmelding_waarde
FROM mld_kenmerkmelding km, mld_kenmerk k
WHERE k.mld_kenmerk_key = km.mld_kenmerk_key
AND km.mld_kenmerkmelding_verwijder IS NULL
AND k.mld_kenmerk_key = 1186)) oj,
(SELECT km.mld_melding_key, km.mld_kenmerkmelding_waarde handelingsnummer
FROM mld_kenmerkmelding km, mld_kenmerk k
WHERE k.mld_kenmerk_key = km.mld_kenmerk_key
AND km.mld_kenmerkmelding_verwijder IS NULL
AND k.mld_kenmerk_key = 1201) hn,
(SELECT km.mld_melding_key, km.mld_kenmerkmelding_waarde directoriaat_generaal
FROM mld_kenmerkmelding km, mld_kenmerk k
WHERE k.mld_kenmerk_key = km.mld_kenmerk_key
AND km.mld_kenmerkmelding_verwijder IS NULL
AND k.mld_kenmerk_key = 1101) dg,
(SELECT km.mld_melding_key, km.mld_kenmerkmelding_waarde hoe_archiveren
FROM mld_kenmerkmelding km, mld_kenmerk k
WHERE k.mld_kenmerk_key = km.mld_kenmerk_key
AND km.mld_kenmerkmelding_verwijder IS NULL
AND k.mld_kenmerk_key = 1104) arch,
(SELECT km.mld_melding_key, km.mld_kenmerkmelding_waarde begindatum
FROM mld_kenmerkmelding km, mld_kenmerk k
WHERE k.mld_kenmerk_key = km.mld_kenmerk_key
AND km.mld_kenmerkmelding_verwijder IS NULL
AND k.mld_kenmerk_key = 1106) bdat,
(SELECT km.mld_melding_key, km.mld_kenmerkmelding_waarde einddatum
FROM mld_kenmerkmelding km, mld_kenmerk k
WHERE k.mld_kenmerk_key = km.mld_kenmerk_key
AND km.mld_kenmerkmelding_verwijder IS NULL
AND k.mld_kenmerk_key = 1121) edat,
(SELECT km.mld_melding_key, km.mld_kenmerkmelding_waarde beginnummer
FROM mld_kenmerkmelding km, mld_kenmerk k
WHERE k.mld_kenmerk_key = km.mld_kenmerk_key
AND km.mld_kenmerkmelding_verwijder IS NULL
AND k.mld_kenmerk_key = 1141) bnum,
(SELECT km.mld_melding_key, km.mld_kenmerkmelding_waarde eindnummer
FROM mld_kenmerkmelding km, mld_kenmerk k
WHERE k.mld_kenmerk_key = km.mld_kenmerk_key
AND km.mld_kenmerkmelding_verwijder IS NULL
AND k.mld_kenmerk_key = 1142) enum
WHERE m.mld_stdmelding_key = sm.mld_stdmelding_key
AND sm.mld_ins_discipline_key = vg.ins_discipline_key
AND vg.ins_srtdiscipline_key = vgt.ins_srtdiscipline_key
AND m.mld_melding_status = s.mld_statuses_key
AND UPPER (s.mld_statuses_omschrijving) = 'IN BEHANDELING'
AND UPPER (sm.mld_stdmelding_omschrijving) = 'AANBIEDEN TE ARCHIVEREN DOCUMENTEN'
AND UPPER (dg.directoriaat_generaal) = 'BELASTINGEN'
AND UPPER (arch.hoe_archiveren) = 'ONDERWERP (BSN OF RSIN)'
AND dn.mld_melding_key(+) = m.mld_melding_key
AND vj_onb.mld_melding_key(+) = m.mld_melding_key
AND vj.mld_melding_key(+) = m.mld_melding_key
AND hp.mld_melding_key(+) = m.mld_melding_key
AND wp.mld_melding_key(+) = m.mld_melding_key
AND dp.mld_melding_key(+) = m.mld_melding_key
AND oj.mld_melding_key(+) = m.mld_melding_key
AND hn.mld_melding_key(+) = m.mld_melding_key
AND bdat.mld_melding_key(+) = m.mld_melding_key
AND edat.mld_melding_key(+) = m.mld_melding_key
AND bnum.mld_melding_key(+) = m.mld_melding_key
AND enum.mld_melding_key(+) = m.mld_melding_key
AND dg.mld_melding_key = m.mld_melding_key
AND arch.mld_melding_key = m.mld_melding_key;
CREATE OR REPLACE VIEW BLST_V_PL_RKS_DOUANE
AS
SELECT vgt.ins_srtdiscipline_omschrijving,
vg.ins_discipline_omschrijving,
sm.mld_stdmelding_omschrijving,
s.mld_statuses_omschrijving,
dn.doosnummer,
CONCAT (DECODE (vj_onb.vj_onbekend, 'J', '9999', NULL), vj.vernietigingsjaar) vjaar,
hp.hoofdproces,
wp.werkproces,
dp.deelproces,
oj.ontstaansjaar,
hn.handelingsnummer,
bdat.begindatum,
edat.einddatum,
bnum.beginnummer,
enum.eindnummer,
dg.directoriaat_generaal,
arch.hoe_archiveren
FROM mld_melding m,
mld_stdmelding sm,
ins_tab_discipline vg,
ins_srtdiscipline vgt,
mld_statuses s,
(SELECT km.mld_melding_key, km.mld_kenmerkmelding_waarde doosnummer
FROM mld_kenmerkmelding km, mld_kenmerk k
WHERE k.mld_kenmerk_key = km.mld_kenmerk_key
AND km.mld_kenmerkmelding_verwijder IS NULL
AND k.mld_kenmerk_key = 1205) dn,
(SELECT km.mld_melding_key, km.mld_kenmerkmelding_waarde vj_onbekend
FROM mld_kenmerkmelding km, mld_kenmerk k
WHERE k.mld_kenmerk_key = km.mld_kenmerk_key
AND km.mld_kenmerkmelding_verwijder IS NULL
AND k.mld_kenmerk_key = 1187) vj_onb,
(SELECT km.mld_melding_key, km.mld_kenmerkmelding_waarde vernietigingsjaar
FROM mld_kenmerkmelding km, mld_kenmerk k
WHERE k.mld_kenmerk_key = km.mld_kenmerk_key
AND km.mld_kenmerkmelding_verwijder IS NULL
AND k.mld_kenmerk_key = 1188) vj,
(SELECT km.mld_melding_key, km.mld_kenmerkmelding_waarde hoofdproces
FROM mld_kenmerkmelding km, mld_kenmerk k
WHERE k.mld_kenmerk_key = km.mld_kenmerk_key
AND km.mld_kenmerkmelding_verwijder IS NULL
AND k.mld_kenmerk_key = 1144) hp,
(SELECT km.mld_melding_key, km.mld_kenmerkmelding_waarde werkproces
FROM mld_kenmerkmelding km, mld_kenmerk k
WHERE k.mld_kenmerk_key = km.mld_kenmerk_key
AND km.mld_kenmerkmelding_verwijder IS NULL
AND k.mld_kenmerk_key = 1145) wp,
(SELECT km.mld_melding_key, km.mld_kenmerkmelding_waarde deelproces
FROM mld_kenmerkmelding km, mld_kenmerk k
WHERE k.mld_kenmerk_key = km.mld_kenmerk_key
AND km.mld_kenmerkmelding_verwijder IS NULL
AND k.mld_kenmerk_key = 1146) dp,
(SELECT mld_melding_key, mld_kenmerkmelding_waarde ontstaansjaar
FROM (SELECT km.mld_melding_key, km.mld_kenmerkmelding_waarde
FROM mld_kenmerkmelding km, mld_kenmerk k
WHERE k.mld_kenmerk_key = km.mld_kenmerk_key
AND km.mld_kenmerkmelding_verwijder IS NULL
AND k.mld_kenmerk_key = 1161
UNION ALL
SELECT km.mld_melding_key, km.mld_kenmerkmelding_waarde
FROM mld_kenmerkmelding km, mld_kenmerk k
WHERE k.mld_kenmerk_key = km.mld_kenmerk_key
AND km.mld_kenmerkmelding_verwijder IS NULL
AND k.mld_kenmerk_key = 1162
UNION ALL
SELECT km.mld_melding_key, km.mld_kenmerkmelding_waarde
FROM mld_kenmerkmelding km, mld_kenmerk k
WHERE k.mld_kenmerk_key = km.mld_kenmerk_key
AND km.mld_kenmerkmelding_verwijder IS NULL
AND k.mld_kenmerk_key = 1163
UNION ALL
SELECT km.mld_melding_key, km.mld_kenmerkmelding_waarde
FROM mld_kenmerkmelding km, mld_kenmerk k
WHERE k.mld_kenmerk_key = km.mld_kenmerk_key
AND km.mld_kenmerkmelding_verwijder IS NULL
AND k.mld_kenmerk_key = 1164
UNION ALL
SELECT km.mld_melding_key, km.mld_kenmerkmelding_waarde
FROM mld_kenmerkmelding km, mld_kenmerk k
WHERE k.mld_kenmerk_key = km.mld_kenmerk_key
AND km.mld_kenmerkmelding_verwijder IS NULL
AND k.mld_kenmerk_key = 1181
UNION ALL
SELECT km.mld_melding_key, km.mld_kenmerkmelding_waarde
FROM mld_kenmerkmelding km, mld_kenmerk k
WHERE k.mld_kenmerk_key = km.mld_kenmerk_key
AND km.mld_kenmerkmelding_verwijder IS NULL
AND k.mld_kenmerk_key = 1182
UNION ALL
SELECT km.mld_melding_key, km.mld_kenmerkmelding_waarde
FROM mld_kenmerkmelding km, mld_kenmerk k
WHERE k.mld_kenmerk_key = km.mld_kenmerk_key
AND km.mld_kenmerkmelding_verwijder IS NULL
AND k.mld_kenmerk_key = 1183
UNION ALL
SELECT km.mld_melding_key, km.mld_kenmerkmelding_waarde
FROM mld_kenmerkmelding km, mld_kenmerk k
WHERE k.mld_kenmerk_key = km.mld_kenmerk_key
AND km.mld_kenmerkmelding_verwijder IS NULL
AND k.mld_kenmerk_key = 1184
UNION ALL
SELECT km.mld_melding_key, km.mld_kenmerkmelding_waarde
FROM mld_kenmerkmelding km, mld_kenmerk k
WHERE k.mld_kenmerk_key = km.mld_kenmerk_key
AND km.mld_kenmerkmelding_verwijder IS NULL
AND k.mld_kenmerk_key = 1185
UNION ALL
SELECT km.mld_melding_key, km.mld_kenmerkmelding_waarde
FROM mld_kenmerkmelding km, mld_kenmerk k
WHERE k.mld_kenmerk_key = km.mld_kenmerk_key
AND km.mld_kenmerkmelding_verwijder IS NULL
AND k.mld_kenmerk_key = 1186)) oj,
(SELECT km.mld_melding_key, km.mld_kenmerkmelding_waarde handelingsnummer
FROM mld_kenmerkmelding km, mld_kenmerk k
WHERE k.mld_kenmerk_key = km.mld_kenmerk_key
AND km.mld_kenmerkmelding_verwijder IS NULL
AND k.mld_kenmerk_key = 1201) hn,
(SELECT km.mld_melding_key, km.mld_kenmerkmelding_waarde directoriaat_generaal
FROM mld_kenmerkmelding km, mld_kenmerk k
WHERE k.mld_kenmerk_key = km.mld_kenmerk_key
AND km.mld_kenmerkmelding_verwijder IS NULL
AND k.mld_kenmerk_key = 1101) dg,
(SELECT km.mld_melding_key, km.mld_kenmerkmelding_waarde hoe_archiveren
FROM mld_kenmerkmelding km, mld_kenmerk k
WHERE k.mld_kenmerk_key = km.mld_kenmerk_key
AND km.mld_kenmerkmelding_verwijder IS NULL
AND k.mld_kenmerk_key = 1104) arch,
(SELECT km.mld_melding_key, km.mld_kenmerkmelding_waarde begindatum
FROM mld_kenmerkmelding km, mld_kenmerk k
WHERE k.mld_kenmerk_key = km.mld_kenmerk_key
AND km.mld_kenmerkmelding_verwijder IS NULL
AND k.mld_kenmerk_key = 1106) bdat,
(SELECT km.mld_melding_key, km.mld_kenmerkmelding_waarde einddatum
FROM mld_kenmerkmelding km, mld_kenmerk k
WHERE k.mld_kenmerk_key = km.mld_kenmerk_key
AND km.mld_kenmerkmelding_verwijder IS NULL
AND k.mld_kenmerk_key = 1121) edat,
(SELECT km.mld_melding_key, km.mld_kenmerkmelding_waarde beginnummer
FROM mld_kenmerkmelding km, mld_kenmerk k
WHERE k.mld_kenmerk_key = km.mld_kenmerk_key
AND km.mld_kenmerkmelding_verwijder IS NULL
AND k.mld_kenmerk_key = 1141) bnum,
(SELECT km.mld_melding_key, km.mld_kenmerkmelding_waarde eindnummer
FROM mld_kenmerkmelding km, mld_kenmerk k
WHERE k.mld_kenmerk_key = km.mld_kenmerk_key
AND km.mld_kenmerkmelding_verwijder IS NULL
AND k.mld_kenmerk_key = 1142) enum
WHERE m.mld_stdmelding_key = sm.mld_stdmelding_key
AND sm.mld_ins_discipline_key = vg.ins_discipline_key
AND vg.ins_srtdiscipline_key = vgt.ins_srtdiscipline_key
AND m.mld_melding_status = s.mld_statuses_key
AND UPPER (s.mld_statuses_omschrijving) = 'IN BEHANDELING'
AND UPPER (sm.mld_stdmelding_omschrijving) = 'AANBIEDEN TE ARCHIVEREN DOCUMENTEN'
AND UPPER (dg.directoriaat_generaal) = 'DOUANE'
AND UPPER (arch.hoe_archiveren) = 'ONDERWERP (BSN OF RSIN)'
AND dn.mld_melding_key(+) = m.mld_melding_key
AND vj_onb.mld_melding_key(+) = m.mld_melding_key
AND vj.mld_melding_key(+) = m.mld_melding_key
AND hp.mld_melding_key(+) = m.mld_melding_key
AND wp.mld_melding_key(+) = m.mld_melding_key
AND dp.mld_melding_key(+) = m.mld_melding_key
AND oj.mld_melding_key(+) = m.mld_melding_key
AND hn.mld_melding_key(+) = m.mld_melding_key
AND bdat.mld_melding_key(+) = m.mld_melding_key
AND edat.mld_melding_key(+) = m.mld_melding_key
AND bnum.mld_melding_key(+) = m.mld_melding_key
AND enum.mld_melding_key(+) = m.mld_melding_key
AND dg.mld_melding_key = m.mld_melding_key
AND arch.mld_melding_key = m.mld_melding_key;
CREATE OR REPLACE VIEW BLST_V_PL_RKS_TOESLAGEN
AS
SELECT vgt.ins_srtdiscipline_omschrijving,
vg.ins_discipline_omschrijving,
sm.mld_stdmelding_omschrijving,
s.mld_statuses_omschrijving,
dn.doosnummer,
CONCAT (DECODE (vj_onb.vj_onbekend, 'J', '9999', NULL), vj.vernietigingsjaar) vjaar,
hp.hoofdproces,
wp.werkproces,
dp.deelproces,
oj.ontstaansjaar,
hn.handelingsnummer,
bdat.begindatum,
edat.einddatum,
bnum.beginnummer,
enum.eindnummer,
dg.directoriaat_generaal,
arch.hoe_archiveren
FROM mld_melding m,
mld_stdmelding sm,
ins_tab_discipline vg,
ins_srtdiscipline vgt,
mld_statuses s,
(SELECT km.mld_melding_key, km.mld_kenmerkmelding_waarde doosnummer
FROM mld_kenmerkmelding km, mld_kenmerk k
WHERE k.mld_kenmerk_key = km.mld_kenmerk_key
AND km.mld_kenmerkmelding_verwijder IS NULL
AND k.mld_kenmerk_key = 1205) dn,
(SELECT km.mld_melding_key, km.mld_kenmerkmelding_waarde vj_onbekend
FROM mld_kenmerkmelding km, mld_kenmerk k
WHERE k.mld_kenmerk_key = km.mld_kenmerk_key
AND km.mld_kenmerkmelding_verwijder IS NULL
AND k.mld_kenmerk_key = 1187) vj_onb,
(SELECT km.mld_melding_key, km.mld_kenmerkmelding_waarde vernietigingsjaar
FROM mld_kenmerkmelding km, mld_kenmerk k
WHERE k.mld_kenmerk_key = km.mld_kenmerk_key
AND km.mld_kenmerkmelding_verwijder IS NULL
AND k.mld_kenmerk_key = 1188) vj,
(SELECT km.mld_melding_key, km.mld_kenmerkmelding_waarde hoofdproces
FROM mld_kenmerkmelding km, mld_kenmerk k
WHERE k.mld_kenmerk_key = km.mld_kenmerk_key
AND km.mld_kenmerkmelding_verwijder IS NULL
AND k.mld_kenmerk_key = 1144) hp,
(SELECT km.mld_melding_key, km.mld_kenmerkmelding_waarde werkproces
FROM mld_kenmerkmelding km, mld_kenmerk k
WHERE k.mld_kenmerk_key = km.mld_kenmerk_key
AND km.mld_kenmerkmelding_verwijder IS NULL
AND k.mld_kenmerk_key = 1145) wp,
(SELECT km.mld_melding_key, km.mld_kenmerkmelding_waarde deelproces
FROM mld_kenmerkmelding km, mld_kenmerk k
WHERE k.mld_kenmerk_key = km.mld_kenmerk_key
AND km.mld_kenmerkmelding_verwijder IS NULL
AND k.mld_kenmerk_key = 1146) dp,
(SELECT mld_melding_key, mld_kenmerkmelding_waarde ontstaansjaar
FROM (SELECT km.mld_melding_key, km.mld_kenmerkmelding_waarde
FROM mld_kenmerkmelding km, mld_kenmerk k
WHERE k.mld_kenmerk_key = km.mld_kenmerk_key
AND km.mld_kenmerkmelding_verwijder IS NULL
AND k.mld_kenmerk_key = 1161
UNION ALL
SELECT km.mld_melding_key, km.mld_kenmerkmelding_waarde
FROM mld_kenmerkmelding km, mld_kenmerk k
WHERE k.mld_kenmerk_key = km.mld_kenmerk_key
AND km.mld_kenmerkmelding_verwijder IS NULL
AND k.mld_kenmerk_key = 1162
UNION ALL
SELECT km.mld_melding_key, km.mld_kenmerkmelding_waarde
FROM mld_kenmerkmelding km, mld_kenmerk k
WHERE k.mld_kenmerk_key = km.mld_kenmerk_key
AND km.mld_kenmerkmelding_verwijder IS NULL
AND k.mld_kenmerk_key = 1163
UNION ALL
SELECT km.mld_melding_key, km.mld_kenmerkmelding_waarde
FROM mld_kenmerkmelding km, mld_kenmerk k
WHERE k.mld_kenmerk_key = km.mld_kenmerk_key
AND km.mld_kenmerkmelding_verwijder IS NULL
AND k.mld_kenmerk_key = 1164
UNION ALL
SELECT km.mld_melding_key, km.mld_kenmerkmelding_waarde
FROM mld_kenmerkmelding km, mld_kenmerk k
WHERE k.mld_kenmerk_key = km.mld_kenmerk_key
AND km.mld_kenmerkmelding_verwijder IS NULL
AND k.mld_kenmerk_key = 1181
UNION ALL
SELECT km.mld_melding_key, km.mld_kenmerkmelding_waarde
FROM mld_kenmerkmelding km, mld_kenmerk k
WHERE k.mld_kenmerk_key = km.mld_kenmerk_key
AND km.mld_kenmerkmelding_verwijder IS NULL
AND k.mld_kenmerk_key = 1182
UNION ALL
SELECT km.mld_melding_key, km.mld_kenmerkmelding_waarde
FROM mld_kenmerkmelding km, mld_kenmerk k
WHERE k.mld_kenmerk_key = km.mld_kenmerk_key
AND km.mld_kenmerkmelding_verwijder IS NULL
AND k.mld_kenmerk_key = 1183
UNION ALL
SELECT km.mld_melding_key, km.mld_kenmerkmelding_waarde
FROM mld_kenmerkmelding km, mld_kenmerk k
WHERE k.mld_kenmerk_key = km.mld_kenmerk_key
AND km.mld_kenmerkmelding_verwijder IS NULL
AND k.mld_kenmerk_key = 1184
UNION ALL
SELECT km.mld_melding_key, km.mld_kenmerkmelding_waarde
FROM mld_kenmerkmelding km, mld_kenmerk k
WHERE k.mld_kenmerk_key = km.mld_kenmerk_key
AND km.mld_kenmerkmelding_verwijder IS NULL
AND k.mld_kenmerk_key = 1185
UNION ALL
SELECT km.mld_melding_key, km.mld_kenmerkmelding_waarde
FROM mld_kenmerkmelding km, mld_kenmerk k
WHERE k.mld_kenmerk_key = km.mld_kenmerk_key
AND km.mld_kenmerkmelding_verwijder IS NULL
AND k.mld_kenmerk_key = 1186)) oj,
(SELECT km.mld_melding_key, km.mld_kenmerkmelding_waarde handelingsnummer
FROM mld_kenmerkmelding km, mld_kenmerk k
WHERE k.mld_kenmerk_key = km.mld_kenmerk_key
AND km.mld_kenmerkmelding_verwijder IS NULL
AND k.mld_kenmerk_key = 1201) hn,
(SELECT km.mld_melding_key, km.mld_kenmerkmelding_waarde directoriaat_generaal
FROM mld_kenmerkmelding km, mld_kenmerk k
WHERE k.mld_kenmerk_key = km.mld_kenmerk_key
AND km.mld_kenmerkmelding_verwijder IS NULL
AND k.mld_kenmerk_key = 1101) dg,
(SELECT km.mld_melding_key, km.mld_kenmerkmelding_waarde hoe_archiveren
FROM mld_kenmerkmelding km, mld_kenmerk k
WHERE k.mld_kenmerk_key = km.mld_kenmerk_key
AND km.mld_kenmerkmelding_verwijder IS NULL
AND k.mld_kenmerk_key = 1104) arch,
(SELECT km.mld_melding_key, km.mld_kenmerkmelding_waarde begindatum
FROM mld_kenmerkmelding km, mld_kenmerk k
WHERE k.mld_kenmerk_key = km.mld_kenmerk_key
AND km.mld_kenmerkmelding_verwijder IS NULL
AND k.mld_kenmerk_key = 1106) bdat,
(SELECT km.mld_melding_key, km.mld_kenmerkmelding_waarde einddatum
FROM mld_kenmerkmelding km, mld_kenmerk k
WHERE k.mld_kenmerk_key = km.mld_kenmerk_key
AND km.mld_kenmerkmelding_verwijder IS NULL
AND k.mld_kenmerk_key = 1121) edat,
(SELECT km.mld_melding_key, km.mld_kenmerkmelding_waarde beginnummer
FROM mld_kenmerkmelding km, mld_kenmerk k
WHERE k.mld_kenmerk_key = km.mld_kenmerk_key
AND km.mld_kenmerkmelding_verwijder IS NULL
AND k.mld_kenmerk_key = 1141) bnum,
(SELECT km.mld_melding_key, km.mld_kenmerkmelding_waarde eindnummer
FROM mld_kenmerkmelding km, mld_kenmerk k
WHERE k.mld_kenmerk_key = km.mld_kenmerk_key
AND km.mld_kenmerkmelding_verwijder IS NULL
AND k.mld_kenmerk_key = 1142) enum
WHERE m.mld_stdmelding_key = sm.mld_stdmelding_key
AND sm.mld_ins_discipline_key = vg.ins_discipline_key
AND vg.ins_srtdiscipline_key = vgt.ins_srtdiscipline_key
AND m.mld_melding_status = s.mld_statuses_key
AND UPPER (s.mld_statuses_omschrijving) = 'IN BEHANDELING'
AND UPPER (sm.mld_stdmelding_omschrijving) = 'AANBIEDEN TE ARCHIVEREN DOCUMENTEN'
AND UPPER (dg.directoriaat_generaal) = 'TOESLAGEN'
AND UPPER (arch.hoe_archiveren) = 'ONDERWERP (BSN OF RSIN)'
AND dn.mld_melding_key(+) = m.mld_melding_key
AND vj_onb.mld_melding_key(+) = m.mld_melding_key
AND vj.mld_melding_key(+) = m.mld_melding_key
AND hp.mld_melding_key(+) = m.mld_melding_key
AND wp.mld_melding_key(+) = m.mld_melding_key
AND dp.mld_melding_key(+) = m.mld_melding_key
AND oj.mld_melding_key(+) = m.mld_melding_key
AND hn.mld_melding_key(+) = m.mld_melding_key
AND bdat.mld_melding_key(+) = m.mld_melding_key
AND edat.mld_melding_key(+) = m.mld_melding_key
AND bnum.mld_melding_key(+) = m.mld_melding_key
AND enum.mld_melding_key(+) = m.mld_melding_key
AND dg.mld_melding_key = m.mld_melding_key
AND arch.mld_melding_key = m.mld_melding_key;
------- Einde plaatsingslijsten -------
------ 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