Files
Customer/onces/BLST/BLST#70816.sql
Norbert Wassink dd9b00b155 BLST#66395 -- inrichten kv8
svn path=/Customer/; revision=54812
2022-02-02 19:21:20 +00:00

187 lines
8.7 KiB
SQL

--
-- $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#70816.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 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
AND res.res_rsv_ruimte_verwijder IS NULL
AND res.res_rsv_ruimte_dirtlevel=0;
v_bestand VARCHAR2 (50);
v_base VARCHAR2 (10);
v_guid VARCHAR2 (40);
v_daysC VARCHAR2 (5);
v_days NUMBER := 7;
v_counter NUMBER;
BEGIN
v_base := 'NDS_NEW';
v_bestand := v_base || '-';
v_guid := blst.getguid ();
v_counter := 0;
DELETE FROM fac_rapport -- Opschonen oude NDS exports
WHERE fac_rapport_node LIKE 'NDS_NEW%';
COMMIT;
SELECT ud.fac_usrdata_code
INTO v_daysC
FROM fac_usrtab ut, FAC_USRDATA ud
WHERE UPPER (ut.fac_usrtab_naam) = 'BLST_SETTINGS'
AND ud.fac_usrtab_key = ut.fac_usrtab_key
AND UPPER (ud.fac_usrdata_omschr) = 'NDS_EXPORT_DAYS';
v_days := fac.safe_to_number (v_daysC);
blst.add_xml_row(v_bestand,
'<?xml version="1.0" encoding="utf-8"?>');
blst.add_xml_row(v_bestand,'<soapenv:Envelope xmlns:ser="http://asycuda.tatisint.com/services" xmlns:bsb="urn:belastingdienst-nl:bsb" xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:wsa="http://www.w3.org/2005/08/addressing">');
blst.add_xml_row(v_bestand,'<soapenv:Header>');
blst.add_xml_row(v_bestand,'<wsa:To>urn:belastingdienst.nl/facilitairedienst/dis</wsa:To>');
blst.add_xml_row(v_bestand,'<wsa:From>');
blst.add_xml_row(v_bestand,'<wsa:Address>urn:belastingdienst.nl/bedrijfsvoering/sbd</wsa:Address>');
blst.add_xml_row(v_bestand,'</wsa:From>');
blst.add_xml_row(v_bestand,'<wsa:Action>http://servicespecifications.belastingdienst.nl/facilitairedienst/dis/vergaderlocaties</wsa:Action>');
blst.add_xml_row(v_bestand,'<wsa:MessageID>uuid:'||v_guid||'</wsa:MessageID>');
blst.add_xml_row(v_bestand,'<bsb:ErrorDestination>urn:belastingdienst-nl:facilitor-error</bsb:ErrorDestination>');
blst.add_xml_row(v_bestand,'</soapenv:Header>');
blst.add_xml_row(v_bestand,'<soapenv:Body>');
blst.add_xml_row(v_bestand,'<ns0:XI015_MT_Reservering xmlns:ns0="http://belastingdienst.nl/xi/bis">');
blst.add_xml_element (v_bestand, 'Submitter', 'Facilitor');
FOR rec IN SEL (v_days)
LOOP
blst.add_xml_row (v_bestand, '<Reservering>');
blst.add_xml_element (v_bestand,
'Reserveringnummer',
rec.reserveringNr || '/' || rec.volgNr);
blst.add_xml_element (v_bestand, 'Locatie', rec.locatie);
blst.add_xml_row(v_bestand,'<Gebouw code="'||rec.code||'">'||rec.gebouw||'</Gebouw>');
blst.add_xml_element (v_bestand, 'Verdieping', rec.verdieping);
blst.add_xml_element (v_bestand, 'RuimteNr', rec.ruimteNr);
blst.add_xml_element (v_bestand,
'RuimteOmschrijving',
rec.ruimteOmsch);
blst.add_xml_element (v_bestand, 'Opstelling', rec.opstelling);
blst.add_xml_element (v_bestand, 'Activiteit', rec.activiteit);
blst.add_xml_element (v_bestand,
'Datum',
TO_CHAR (rec.datum_start, 'YYYY/MM/DD'));
blst.add_xml_element (v_bestand,
'Starttijd',
TO_CHAR (rec.datum_start, 'HH24:MI'));
blst.add_xml_element (v_bestand,
'Eindtijd',
TO_CHAR (rec.datum_tot, 'HH24:MI'));
blst.add_xml_element (v_bestand, 'Titel', rec.titel);
blst.add_xml_element (v_bestand, 'Opmerking', 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, '</ns0:XI015_MT_Reservering>');
blst.add_xml_row (v_bestand, '</soapenv:Body>');
blst.add_xml_row (v_bestand, '</soapenv:Envelope>');
IF v_counter = 0
THEN
-- no data to be exported
DELETE FROM fac_rapport -- Opschonen NDS exports
WHERE fac_rapport_node LIKE 'NDS_NEW%';
COMMIT;
END IF;
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