3362 lines
140 KiB
SQL
3362 lines
140 KiB
SQL
/* Formatted on 9-9-2021 10:31:54 (QP5 v5.336) */
|
||
--
|
||
-- $Id$
|
||
--
|
||
-- Script containing customer specific sql statements for the FACILITOR database
|
||
-- Voor dbuser invullen: - indien script voor 1 klant is: 'AADS' (de klantcode, zoals vermeld in fac_version_cust)
|
||
-- - script is voor meerdere klanten: 'AAXX' (de groepcode, zoals vermeld in fac_version_group)
|
||
-- - script is voor meerdere klanten met naam volgens een bepaald patroon: '^AA|^ASMS|^GULU|^NMMS|^RABO|^ZKHM'
|
||
-- Ook als het script gedraaid wordt voor de verkeerde cust wordt er een logfile gemaakt.
|
||
-- (dit in tegenstelling tot sample_xxxx.sql)
|
||
|
||
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
|
||
PROCEDURE prs_ext_mandaten (p_perslid_key IN NUMBER);
|
||
|
||
PROCEDURE prs_bd_werkplekken (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 getAanvraagNr (p_resNr IN VARCHAR2)
|
||
RETURN VARCHAR2;
|
||
|
||
FUNCTION get_SAPid
|
||
RETURN VARCHAR2;
|
||
|
||
FUNCTION getguid
|
||
RETURN VARCHAR2;
|
||
|
||
PROCEDURE add2exportTable (p_res_key IN VARCHAR2,
|
||
p_sapid IN VARCHAR2,
|
||
p_regel_nr IN NUMBER,
|
||
p_artikel_key IN NUMBER,
|
||
p_artikel_nr IN VARCHAR2,
|
||
p_aantal IN NUMBER,
|
||
p_export_type IN VARCHAR2,
|
||
p_actie IN VARCHAR2);
|
||
|
||
PROCEDURE inactivate_prs;
|
||
|
||
PROCEDURE anonimiseer_bezoeker;
|
||
|
||
PROCEDURE anonimiseer_mld;
|
||
|
||
PROCEDURE anonimiseer_prs;
|
||
|
||
PROCEDURE afmelden_reserveringen;
|
||
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);
|
||
|
||
CURSOR WP IS
|
||
SELECT p.prs_perslid_key, r.alg_ruimte_key
|
||
FROM prs_perslid p,
|
||
( SELECT g.alg_gebouw_key,
|
||
MAX (r.alg_ruimte_key) alg_ruimte_key
|
||
FROM alg_gebouw g,
|
||
alg_onrgoedkenmerk km,
|
||
alg_verdieping v,
|
||
alg_ruimte r
|
||
WHERE km.alg_onrgoed_niveau = 'G'
|
||
AND km.alg_kenmerk_key = 1141
|
||
AND km.alg_onrgoedkenmerk_verwijder IS NULL
|
||
AND g.alg_gebouw_verwijder IS NULL
|
||
AND g.alg_gebouw_key = km.alg_onrgoed_key
|
||
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
|
||
GROUP BY g.alg_gebouw_key) r
|
||
WHERE 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 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 getAanvraagNr (p_resNr IN VARCHAR2)
|
||
RETURN VARCHAR2
|
||
AS
|
||
v_result VARCHAR2 (20) := '159';
|
||
v_code VARCHAR2 (40); -- juiste waarde checken
|
||
v_codelength NUMBER;
|
||
v_maxlength NUMBER := 8;
|
||
BEGIN
|
||
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_result := v_code || LPAD (p_resNr, v_maxlength - v_codelength, '0');
|
||
RETURN v_result;
|
||
END;
|
||
|
||
FUNCTION get_SAPid
|
||
RETURN VARCHAR2
|
||
AS
|
||
v_result VARCHAR2 (30);
|
||
v_prs_perslid_key NUMBER;
|
||
BEGIN
|
||
v_result := 'ND';
|
||
v_prs_perslid_key := SYS_CONTEXT ('USERENV', 'CLIENT_IDENTIFIER');
|
||
|
||
--v_prs_perslid_key :=3;
|
||
SELECT prs.prs_perslid_oslogin2
|
||
INTO v_result
|
||
FROM prs_perslid prs
|
||
WHERE prs.prs_perslid_key = v_prs_perslid_key;
|
||
|
||
RETURN v_result;
|
||
END;
|
||
|
||
FUNCTION getguid
|
||
RETURN VARCHAR2
|
||
AS
|
||
v_result VARCHAR2 (100);
|
||
BEGIN
|
||
v_result := '';
|
||
|
||
SELECT REGEXP_REPLACE (SYS_GUID (),
|
||
'(.{8})(.{4})(.{4})(.{4})(.{12})',
|
||
'\1-\2-\3-\4-\5')
|
||
INTO v_result
|
||
FROM DUAL;
|
||
|
||
RETURN v_result;
|
||
END;
|
||
|
||
PROCEDURE add2exportTable (p_res_key IN VARCHAR2,
|
||
p_sapid IN VARCHAR2,
|
||
p_regel_nr IN NUMBER,
|
||
p_artikel_key IN NUMBER,
|
||
p_artikel_nr IN VARCHAR2,
|
||
p_aantal IN NUMBER,
|
||
p_export_type IN VARCHAR2,
|
||
p_actie IN VARCHAR2)
|
||
AS
|
||
BEGIN
|
||
IF p_actie = 'INS'
|
||
THEN
|
||
INSERT INTO blst_exp_sap (res_key,
|
||
sap_id,
|
||
regel_nr,
|
||
res_rsv_artikel_key,
|
||
artikel_nr,
|
||
aantal,
|
||
export_type)
|
||
VALUES (p_res_key,
|
||
p_sapid,
|
||
p_regel_nr,
|
||
p_artikel_key,
|
||
p_artikel_nr,
|
||
p_aantal,
|
||
p_export_type);
|
||
ELSE
|
||
UPDATE blst_exp_sap
|
||
SET aantal = p_aantal
|
||
WHERE res_key = p_res_key
|
||
AND res_rsv_artikel_key = p_artikel_key
|
||
AND regel_nr = p_regel_nr;
|
||
END IF;
|
||
|
||
COMMIT;
|
||
END;
|
||
|
||
PROCEDURE inactivate_prs
|
||
AS
|
||
v_errormsg VARCHAR2 (1000);
|
||
v_errorhint VARCHAR2 (1000);
|
||
oracle_err_num NUMBER;
|
||
oracle_err_mes VARCHAR2 (200);
|
||
v_count NUMBER (10);
|
||
v_perslid_naam VARCHAR (100);
|
||
v_perslid_nr VARCHAR (30);
|
||
|
||
--- Als een persoon 12 maanden niet meer heeft ingelogd verwijderen we deze
|
||
CURSOR prs_del IS
|
||
SELECT p.prs_perslid_key, p.prs_perslid_oslogin
|
||
FROM prs_v_aanwezigperslid p
|
||
WHERE p.prs_perslid_login <
|
||
TRUNC (ADD_MONTHS (SYSDATE, -12), 'mm')
|
||
GROUP BY p.prs_perslid_key, p.prs_perslid_oslogin;
|
||
BEGIN
|
||
FOR rec IN prs_del
|
||
LOOP
|
||
BEGIN
|
||
v_errormsg := 'Verwijderen van de persoon is NIET gelukt';
|
||
v_errorhint :=
|
||
'Heeft de persoon met prs_perslid_key '
|
||
|| TO_CHAR (rec.prs_perslid_key)
|
||
|| ' historie?';
|
||
|
||
SELECT prs_perslid_naam_full, prs_perslid_nr
|
||
INTO v_perslid_naam, v_perslid_nr
|
||
FROM prs_perslid p, prs_v_perslid_fullnames pf
|
||
WHERE p.prs_perslid_key = pf.prs_perslid_key
|
||
AND p.prs_perslid_key = rec.prs_perslid_key;
|
||
|
||
-- *** Budgethouderschap ***
|
||
-- Voor hoeveel kostenplaatsen is deze persoon budgethouder?
|
||
SELECT COUNT (*)
|
||
INTO v_count
|
||
FROM prs_kostenplaats
|
||
WHERE prs_perslid_key = rec.prs_perslid_key;
|
||
|
||
IF (v_count > 0)
|
||
THEN
|
||
UPDATE prs_kostenplaats
|
||
SET prs_perslid_key = NULL
|
||
WHERE prs_perslid_key = rec.prs_perslid_key;
|
||
|
||
fac.imp_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.imp_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.imp_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.imp_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.imp_writelog (
|
||
'inact_prs',
|
||
'I',
|
||
'Persoon ge<67>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.imp_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.imp_writelog ('inact_prs',
|
||
'E',
|
||
v_errormsg,
|
||
v_errorhint);
|
||
END;
|
||
END LOOP;
|
||
END;
|
||
|
||
PROCEDURE anonimiseer_bezoeker
|
||
AS
|
||
v_van DATE;
|
||
v_tot DATE;
|
||
BEGIN
|
||
SELECT datum_van
|
||
INTO v_van
|
||
FROM (SELECT TRUNC (MIN (bez_afspraak_datum)) datum_van
|
||
FROM bez_afspraak a
|
||
WHERE bez_afspraak_datum < (SYSDATE - 42)
|
||
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')));
|
||
|
||
SELECT TRUNC (SYSDATE - 42) --- 6 weken dus 6-7
|
||
INTO v_tot FROM DUAL;
|
||
|
||
ano.anonymizebez (v_van, v_tot);
|
||
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,
|
||
TRUNC (res.res_rsv_ruimte_tot) + 7 datum_verwerk
|
||
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 datum_verwerk <= SYSDATE;
|
||
|
||
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,
|
||
TRUNC (res.res_rsv_ruimte_tot) + 7 datum_verwerk
|
||
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 datum_verwerk <= SYSDATE;
|
||
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 ('RESUPD',
|
||
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 ('RESUPD',
|
||
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
|
||
|| ')';
|
||
END;
|
||
END;
|
||
/
|
||
|
||
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 DISTINCT 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,
|
||
gb.alg_ruimte_omschrijving 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,
|
||
res_alg_ruimte rar,
|
||
alg_v_ruimte_gegevens_all 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
|
||
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 = rsa.res_srtactiviteit_key
|
||
AND rsa.res_srtactiviteit_soort = 0
|
||
AND TRUNC (res.res_rsv_ruimte_van) < TRUNC (SYSDATE + p_days)
|
||
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 rar.res_ruimte_key = rm.res_ruimte_key
|
||
AND rar.alg_ruimte_key = gb.alg_ruimte_key
|
||
AND ken.alg_onrgoed_key = gb.alg_gebouw_key
|
||
AND geb.alg_gebouw_key = gb.alg_gebouw_key
|
||
AND ken.alg_kenmerk_key = 1081
|
||
AND ken.alg_onrgoedkenmerk_waarde = 1;
|
||
|
||
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="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, '<Reserveringen>');
|
||
|
||
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_element (v_bestand, 'Gebouw', rec.gebouw);
|
||
blst.add_xml_element (v_bestand, 'GebouwCode', rec.code);
|
||
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', rec.opmerking);
|
||
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, '</Reserveringen>');
|
||
blst.add_xml_row (v_bestand, '</Facilitor>');
|
||
|
||
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;
|
||
END IF;
|
||
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)
|
||
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, '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)
|
||
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',
|
||
blst.getAanvraagNr (TO_CHAR (p_res_key)));
|
||
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 res_key, res.res_status_bo_key bo_status_key -- ophalen reserveringen van ruimte voor externe klant
|
||
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) res_key, res.res_status_bo_key bo_status_key -- ophalen losse catering aanvragen voor externe klant
|
||
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;
|
||
|
||
v_bestand VARCHAR2 (50);
|
||
v_base VARCHAR2 (10);
|
||
v_guid VARCHAR2 (40);
|
||
v_counter NUMBER;
|
||
v_SAPID VARCHAR2 (30);
|
||
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_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, 'StatusCode', 'B');
|
||
blst.add_xml_row (v_bestand, '</Verkooporder_fac>');
|
||
blst.add_xml_row (v_bestand, '</Facilitor>');
|
||
v_counter := v_counter + 1;
|
||
|
||
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.res_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.res_key; -- set status van bestelde artikelen ook op verwerkt (6)
|
||
|
||
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)
|
||
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, '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)
|
||
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 = 1120)
|
||
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,
|
||
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)
|
||
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 = 1120)
|
||
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)
|
||
IS
|
||
SELECT res_key,
|
||
res_reservering_key,
|
||
res_rsv_ruimte_volgnr,
|
||
last_upd,
|
||
last_export,
|
||
ruimte,
|
||
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 < SYSDATE + 7; -- p_horizon even voor test op 7 gezet
|
||
|
||
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_approved NUMBER := 0;
|
||
v_approvedCount NUMBER := 0;
|
||
v_dayOfWeek VARCHAR2 (10) := 0;
|
||
v_feestdagen NUMBER := 0;
|
||
v_kenmerk_key NUMBER;
|
||
BEGIN
|
||
v_SAPID := '';
|
||
v_counter := 1;
|
||
v_base := 'IKP_NEW';
|
||
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;
|
||
|
||
FOR rec IN sel_res_new (v_horizon)
|
||
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 <> 1;
|
||
|
||
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;
|
||
ELSE
|
||
v_approved := 1;
|
||
END IF;
|
||
ELSE
|
||
v_approved := 1;
|
||
END IF;
|
||
|
||
IF v_approved = 1
|
||
THEN
|
||
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, '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)));
|
||
-- SELECT res_kenmerkwaarde_key
|
||
-- INTO v_kenmerkwaarde_key
|
||
-- FROM res_kenmerkwaarde where res_kenmerk_key=v_kenmerk_key
|
||
-- AND res_rsv_ruimte_key=rec.res_key;
|
||
-- IF v_kenm
|
||
-- INSERT INTO res_kenmerkwaarde (
|
||
-- res_kenmerk_key,
|
||
-- res_rsv_ruimte_key,
|
||
-- res_kenmerkreservering_waarde)
|
||
-- VALUES (
|
||
-- v_kenmerk_key,
|
||
-- rec.res_key,
|
||
-- blst.getAanvraagNr (TO_CHAR (rec.res_key)));
|
||
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, '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_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);
|
||
END IF;
|
||
|
||
COMMIT;
|
||
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
|
||
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,
|
||
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 datum_van < SYSDATE + 7; -- p_horizon even voor test op 7 gezet;
|
||
|
||
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_actionCode VARCHAR2 (6);
|
||
v_approved NUMBER := 0;
|
||
v_approvedCount NUMBER := 0;
|
||
v_horizon NUMBER;
|
||
v_dayOfWeek VARCHAR2 (10) := 0;
|
||
v_feestdagen NUMBER := 0;
|
||
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;
|
||
|
||
|
||
FOR rec IN sel_res_upd (v_horizon)
|
||
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 <> 1;
|
||
|
||
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;
|
||
ELSE
|
||
v_approved := 1;
|
||
END IF;
|
||
ELSE
|
||
v_approved := 1;
|
||
END IF;
|
||
|
||
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_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, '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>');
|
||
|
||
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.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);
|
||
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 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;
|
||
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_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);
|
||
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 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_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_prijs_str VARCHAR2 (50);
|
||
v_prijs NUMBER;
|
||
v_nettoprijs_str VARCHAR2 (50);
|
||
v_nettoprijs NUMBER;
|
||
v_leverdatum_str VARCHAR2 (50);
|
||
v_leverdatum DATE;
|
||
v_aanduiding VARCHAR2 (4000);
|
||
|
||
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;
|
||
|
||
DELETE FROM blst_imp_sap;
|
||
|
||
v_aanduiding := 'Start inlees process';
|
||
COMMIT;
|
||
|
||
FOR rec IN c1
|
||
LOOP
|
||
BEGIN
|
||
v_aanduiding := 'Lees regel';
|
||
v_newline := rec.fac_imp_file_line;
|
||
|
||
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_prijs_str);
|
||
fac.imp_getfield (v_newline, c_delim, v_nettoprijs_str);
|
||
fac.imp_getfield (v_newline, c_delim, v_leverdatum_str);
|
||
|
||
v_aanduiding := 'Valideer Headers';
|
||
|
||
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_prijs_str)) = 'PRIJS'
|
||
AND UPPER (TRIM (v_nettoprijs_str)) = 'NETTOPRIJS'
|
||
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_res_key :=
|
||
fac.safe_to_number (
|
||
SUBSTR (v_sapnr_str, 4, LENGTH (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;
|
||
|
||
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_prijs := fac.safe_to_number (v_prijs_str);
|
||
v_nettoprijs := fac.safe_to_number (v_nettoprijs_str);
|
||
v_aanduiding := 'Converteer leverdatum voor ' || v_sapnr_str;
|
||
v_leverdatum :=
|
||
fac.safe_to_date (v_leverdatum_str,
|
||
'DD-MM-YYYY hh:mm:ss');
|
||
|
||
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)
|
||
VALUES (v_res_key,
|
||
v_regelnr,
|
||
v_actioncode_str,
|
||
v_artikelnr_str,
|
||
v_aantal,
|
||
v_prijs,
|
||
v_nettoprijs,
|
||
v_leverDatum);
|
||
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 = 2)
|
||
THEN
|
||
fac.imp_writelog (p_import_key,
|
||
'W',
|
||
v_errormsg,
|
||
'');
|
||
ELSE
|
||
fac.imp_writelog (p_import_key,
|
||
'E',
|
||
v_errormsg,
|
||
'');
|
||
END IF;
|
||
END IF;
|
||
END IF;
|
||
END;
|
||
END LOOP;
|
||
|
||
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!');
|
||
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 prijs,
|
||
imp.inkoopprijs inkoopprijs,
|
||
imp.leverdatum leverdatum,
|
||
COALESCE (
|
||
(SELECT res_rsv_artikel_key
|
||
FROM blst_exp_sap
|
||
WHERE res_key = imp.res_key
|
||
AND artikel_nr = imp.artikel_nr),
|
||
0) art_key,
|
||
COALESCE (
|
||
(SELECT aantal exp_aantal
|
||
FROM blst_exp_sap
|
||
WHERE res_key = imp.res_key
|
||
AND artikel_Nr(+) = imp.artikel_nr),
|
||
0) exp_aantal,
|
||
res.res_status_fo_key,
|
||
res.res_status_bo_key
|
||
FROM blst_imp_sap imp, res_rsv_ruimte res
|
||
WHERE res.res_rsv_ruimte_key = imp.res_key
|
||
AND ( res.res_status_fo_key = 2
|
||
AND ( COALESCE (res.res_status_bo_key, 0) = 0
|
||
OR res.res_status_bo_key = 2))
|
||
ORDER BY imp.res_key, imp.regel_nr;
|
||
|
||
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_kostensoort VARCHAR2(60);
|
||
BEGIN
|
||
FOR rec IN sel
|
||
LOOP
|
||
v_mutatie := 0;
|
||
v_aanduiding := 'Geen acties voor SAP IMPORT';
|
||
v_errorhint := 'SAP IMPORT';
|
||
|
||
-- 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;
|
||
|
||
-- check wekje kostensoort de catalogus heeft
|
||
SELECT art.prs_kostensoort_oms
|
||
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_artikel ra, res_discipline rd, prs_kostensoort k
|
||
WHERE ra.res_artikel_nr=rec.imp_artikel_nr
|
||
AND ra.res_artikel_verwijder IS NULL
|
||
AND rd.ins_discipline_key = ra.res_discipline_key
|
||
AND rd.prs_kostensoort_key = k.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;
|
||
|
||
|
||
IF v_extern=0 AND INSTR(UPPER(v_kostensoort),'CATERING EXCL')>0
|
||
THEN
|
||
v_prijs := rec.inkoopprijs; -- netto prijs
|
||
|
||
ELSE
|
||
v_prijs := rec.prijs; -- bruto prijs
|
||
END IF;
|
||
|
||
IF rec.actioncode = '02'
|
||
THEN
|
||
-- TODO : update moet niet alleen aantal maar ok inkoop prije en prijs van artikel in res_rsv_artikel updaten
|
||
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
|
||
WHERE res_rsv_ruimte_key = rec.res_key
|
||
AND res_rsv_artikel_key = rec.art_key;
|
||
|
||
v_mutatie := 1;
|
||
v_aanduiding :=
|
||
'SAP import: bestelaantal van artikelNr '
|
||
|| rec.imp_artikel_nr
|
||
|| ' gewijzigid naar '
|
||
|| rec.imp_aantal
|
||
|| ' en prijs aangepast naar '
|
||
|| v_prijs;
|
||
fac.trackaction ('RESUPD',
|
||
rec.res_key,
|
||
3,
|
||
SYSDATE,
|
||
v_aanduiding);
|
||
ELSIF rec.actioncode = '01'
|
||
THEN
|
||
SELECT art.res_artikel_key
|
||
INTO v_artikel_key
|
||
FROM res_rsv_ruimte res,
|
||
prs_perslid pp,
|
||
fac_gebruikersgroep fgg,
|
||
fac_groep fg,
|
||
fac_groeprechten fgr,
|
||
ins_tab_discipline itd,
|
||
(SELECT *
|
||
FROM res_artikel ra, res_discipline rd
|
||
WHERE ra.res_artikel_nr=rec.imp_artikel_nr
|
||
AND ra.res_artikel_verwijder IS NULL
|
||
AND rd.ins_discipline_key = ra.res_discipline_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;
|
||
|
||
IF v_artikel_key > 0
|
||
THEN
|
||
-- 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)
|
||
VALUES (v_artikel_key,
|
||
rec.imp_aantal,
|
||
2,
|
||
rec.res_key,
|
||
v_prijs,
|
||
1,
|
||
rec.leverdatum);
|
||
|
||
v_aanduiding :=
|
||
'SAP import: Artikel toegevoegd'
|
||
|| rec.imp_artikel_nr
|
||
|| ' met aantal '
|
||
|| rec.imp_aantal
|
||
|| ' en prijs '
|
||
|| v_prijs;
|
||
fac.trackaction ('RESUPD',
|
||
rec.res_key,
|
||
3,
|
||
SYSDATE,
|
||
v_aanduiding);
|
||
END IF;
|
||
ELSE
|
||
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_aanduiding :=
|
||
'SAP import: Artikel verwijder' || rec.imp_artikel_nr;
|
||
fac.trackaction ('RESUPD',
|
||
rec.res_key,
|
||
3,
|
||
SYSDATE,
|
||
v_aanduiding);
|
||
END IF;
|
||
|
||
fac.imp_writelog (p_import_key,
|
||
'S',
|
||
v_aanduiding,
|
||
v_errorhint);
|
||
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.imp_writelog (p_import_key,
|
||
'E',
|
||
v_errormsg || v_aanduiding,
|
||
v_errorhint);
|
||
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,
|
||
cat.ins_discipline_omschrijving
|
||
catalogus,
|
||
cat.ins_discipline_externnr
|
||
externnr,
|
||
TO_CHAR (r.datum_van, 'DD-MM-YYYY')
|
||
leverdatum,
|
||
TO_CHAR (r.datum_van, 'HH24:MI')
|
||
levertijd,
|
||
cat_set.res_disc_params_expire_dagen
|
||
wijzigingshorizon,
|
||
cat_set.res_disc_params_expire_tijd
|
||
grens_wijzigingshorizon,
|
||
TO_CHAR ((r.datum_van - cat_set.res_disc_params_expire_dagen),
|
||
'DD-MM-YYYY')
|
||
|| ' '
|
||
|| cat_set.res_disc_params_expire_tijd
|
||
|| ' uur'
|
||
sluiting_wijz_horizon,
|
||
cat_set.res_disc_params_cancel_dagen
|
||
annuleringshorizon,
|
||
TO_CHAR ((r.datum_van - cat_set.res_disc_params_cancel_dagen),
|
||
'DD-MM-YYYY')
|
||
sluiting_ann_horizon,
|
||
a.res_artikel_nr,
|
||
a.res_artikel_omschrijving,
|
||
a.res_artikel_prijs
|
||
eenh_prijs,
|
||
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 = 1120)
|
||
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 = 1120)
|
||
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
|
||
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
|
||
ORDER BY r.res_key;
|
||
|
||
CREATE OR REPLACE PROCEDURE blst_daily
|
||
AS
|
||
BEGIN
|
||
-- mandaat voor alle AN medewerkers
|
||
blst.inactivate_prs ();
|
||
|
||
-- anonimiseer bezoekers
|
||
blst.anonimiseer_bezoeker ();
|
||
|
||
-- automatisch afmelden reserveringen met catering/losse catering aanvragen
|
||
blst.afmelden_reserveringen ();
|
||
END;
|
||
/
|
||
|
||
------ payload end ------
|
||
|
||
SET DEFINE OFF
|
||
|
||
BEGIN
|
||
adm.systrackscriptId (
|
||
'$Id$',
|
||
0);
|
||
END;
|
||
/
|
||
|
||
COMMIT;
|
||
SET ECHO OFF
|
||
SPOOL OFF
|
||
SET DEFINE ON
|
||
PROMPT Logfile of this upgrade is: &fcltlogfile |