1262 lines
51 KiB
SQL
1262 lines
51 KiB
SQL
--
|
|
-- $Id$
|
|
--
|
|
|
|
DEFINE thisfile = 'ZGTW.SQL'
|
|
DEFINE dbuser = 'ZGTW'
|
|
|
|
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
|
|
|
|
CREATE OR REPLACE PROCEDURE ZGTW_IMPORT_RESERVERINGEN (
|
|
p_import_key IN NUMBER)
|
|
AS
|
|
BEGIN
|
|
NULL;
|
|
END;
|
|
/
|
|
|
|
CREATE OR REPLACE PROCEDURE ZGTW_UPDATE_RESERVERINGEN (
|
|
p_import_key IN NUMBER)
|
|
AS
|
|
CURSOR sel IS
|
|
SELECT fac_imp_csv_col01
|
|
AS ultimo_code,
|
|
fac_imp_csv_col04
|
|
AS ultimo_code_volgnr,
|
|
fac_imp_csv_col21
|
|
AS res_ruimte_nr,
|
|
fac_imp_csv_col03
|
|
AS res_status,
|
|
fac_imp_csv_col07
|
|
AS res_aanvrager,
|
|
fac_imp_csv_col09
|
|
AS res_aanvrager_email,
|
|
fac_imp_csv_col05
|
|
AS res_omschrijving,
|
|
fac.safe_to_date (
|
|
TO_CHAR (
|
|
CAST (
|
|
TO_TIMESTAMP_TZ (
|
|
fac_imp_csv_col10,
|
|
'YYYY-MM-DD HH24:MI:SSFF TZH:TZM')
|
|
AT LOCAL
|
|
AS DATE),
|
|
'DD/MM/YYYY HH24:MI:SS'),
|
|
'DD/MM/YYYY HH24:MI:SS')
|
|
AS res_startdatum,
|
|
fac.safe_to_date (
|
|
TO_CHAR (
|
|
CAST (
|
|
TO_TIMESTAMP_TZ (
|
|
fac_imp_csv_col11,
|
|
'YYYY-MM-DD HH24:MI:SSFF TZH:TZM')
|
|
AT LOCAL
|
|
AS DATE),
|
|
'DD/MM/YYYY HH24:MI:SS'),
|
|
'DD/MM/YYYY HH24:MI:SS')
|
|
AS res_einddatum,
|
|
DECODE (fac_imp_csv_col30, 'NULL', '', fac_imp_csv_col30)
|
|
AS debiteurnr,
|
|
DECODE (
|
|
fac_imp_csv_col30,
|
|
'NULL', '',
|
|
(SELECT prs_bedrijf_key
|
|
FROM prs_bedrijf
|
|
WHERE LOWER (prs_leverancier_nr) =
|
|
LOWER (fac_imp_csv_col30)))
|
|
AS relatie_key,
|
|
rec.fac_imp_csv_col17 as kostenplaats_nr,
|
|
|
|
(SELECT MIN(pk.prs_kostenplaats_key)
|
|
FROM prs_kostenplaats pk
|
|
WHERE pk.prs_kostenplaats_verwijder IS NULL
|
|
AND LOWER(pk.prs_kostenplaats_nr) = LOWER(rec.fac_imp_csv_col17))
|
|
AS kostenplaats_key
|
|
FROM fac_imp_csv rec
|
|
WHERE fac_import_key = p_import_key
|
|
AND fac_imp_csv_col01 <> 'Reserveringsnummer'
|
|
-- and fac_imp_csv_col01 in ('114661', '114284')
|
|
ORDER BY fac_imp_csv_key;
|
|
|
|
v_res_startdatum DATE;
|
|
v_res_einddatum DATE;
|
|
v_prs_perslid_key NUMBER;
|
|
v_res_ruimte_opstel_key NUMBER;
|
|
v_res_activiteit_key NUMBER;
|
|
v_rsv_ruimte_key NUMBER;
|
|
v_reservering_key NUMBER;
|
|
|
|
v_res_kenmerk_key NUMBER;
|
|
v_debiteur NUMBER;
|
|
v_status_bo NUMBER;
|
|
v_status_fo NUMBER;
|
|
v_volgnr NUMBER;
|
|
v_no_show NUMBER;
|
|
v_count NUMBER;
|
|
v_errormsg VARCHAR2 (1000) := '-';
|
|
oracle_err_num NUMBER;
|
|
oracle_err_mes VARCHAR2 (200);
|
|
v_aanduiding VARCHAR2 (200);
|
|
BEGIN
|
|
v_res_kenmerk_key := -1;
|
|
v_errormsg := 'Kenmerk tbv ultimo code is niet gevonden';
|
|
|
|
SELECT res_kenmerk_key
|
|
INTO v_res_kenmerk_key
|
|
FROM res_kenmerk rk
|
|
WHERE rk.res_kenmerk_code = 'ULTIMO_CODE'
|
|
AND rk.res_kenmerk_verwijder IS NULL
|
|
AND rk.res_activiteit_key = 10;
|
|
|
|
v_errormsg := 'Kenmerk tbv ultimo code gevonden, nu naar loop';
|
|
|
|
IF v_res_kenmerk_key > 0
|
|
THEN
|
|
FOR rec IN sel
|
|
LOOP
|
|
IF rec.ultimo_code <> 'Code reservering'
|
|
THEN
|
|
-- Heb ik de reservering al
|
|
v_volgnr := fac.safe_to_number (rec.ultimo_code_volgnr);
|
|
v_errormsg := 'Opzoeken bestaande reservering';
|
|
|
|
v_debiteur := NULL;
|
|
|
|
BEGIN
|
|
SELECT r.res_reservering_key
|
|
INTO v_reservering_key
|
|
FROM res_reservering r, res_rsv_ruimte rrr
|
|
WHERE r.res_reservering_externnr = rec.ultimo_code
|
|
AND rrr.res_reservering_key =
|
|
r.res_reservering_key
|
|
AND rrr.res_rsv_ruimte_volgnr = v_volgnr
|
|
AND rrr.res_rsv_ruimte_verwijder IS NULL;
|
|
EXCEPTION
|
|
WHEN NO_DATA_FOUND
|
|
THEN
|
|
v_reservering_key := -1;
|
|
END;
|
|
|
|
IF v_reservering_key = -1 -- alleen aanmaken als we hem nog niet hebben
|
|
THEN
|
|
v_errormsg := 'Bepalen startdatum en einddatum';
|
|
v_res_startdatum := rec.res_startdatum;
|
|
v_res_einddatum := rec.res_einddatum;
|
|
v_debiteur := rec.relatie_key;
|
|
|
|
v_errormsg := 'Opzoeken persoon';
|
|
|
|
BEGIN
|
|
BEGIN
|
|
SELECT p.prs_perslid_key
|
|
INTO v_prs_perslid_key
|
|
FROM prs_perslid p
|
|
WHERE LOWER (p.prs_perslid_email) =
|
|
LOWER (rec.res_aanvrager_email);
|
|
EXCEPTION
|
|
WHEN NO_DATA_FOUND
|
|
THEN
|
|
BEGIN
|
|
SELECT p.prs_perslid_key
|
|
INTO v_prs_perslid_key
|
|
FROM prs_perslid p
|
|
WHERE UPPER (p.prs_perslid_naam) =
|
|
UPPER (rec.res_aanvrager);
|
|
EXCEPTION
|
|
WHEN NO_DATA_FOUND
|
|
THEN
|
|
v_prs_perslid_key := 3;
|
|
END;
|
|
END;
|
|
END;
|
|
|
|
v_aanduiding :=
|
|
'Reservering '
|
|
|| rec.ultimo_code
|
|
|| ' voor ruimte met ruimte Nr :'
|
|
|| rec.res_ruimte_nr
|
|
|| ' is niet gevonden';
|
|
|
|
SELECT MIN (rro.res_ruimte_opstel_key)
|
|
INTO v_res_ruimte_opstel_key
|
|
FROM res_ruimte rr, res_ruimte_opstelling rro
|
|
WHERE rr.res_ruimte_verwijder IS NULL
|
|
AND rr.res_ruimte_nr LIKE rec.res_ruimte_nr || '%'
|
|
AND rro.res_ruimte_opstel_default = '1'
|
|
AND rro.res_ruimte_key = rr.res_ruimte_key;
|
|
|
|
BEGIN
|
|
SELECT ra.res_activiteit_key
|
|
INTO v_res_activiteit_key
|
|
FROM res_activiteit ra
|
|
WHERE ra.res_activiteit_omschrijving = 'Vergadering';
|
|
EXCEPTION
|
|
WHEN NO_DATA_FOUND
|
|
THEN
|
|
v_res_activiteit_key := 10;
|
|
END;
|
|
|
|
|
|
v_status_bo := 2; -- Alles op Geregistreerd (want alleen lopende reserveringen)
|
|
v_status_fo := 2; -- Alles op Definitief (want alleen lopende reserveringen)
|
|
v_no_show := TO_NUMBER (NULL);
|
|
|
|
|
|
IF v_prs_perslid_key > 0 AND v_res_ruimte_opstel_key > 0
|
|
THEN
|
|
IF v_reservering_key = -1
|
|
THEN
|
|
INSERT INTO res_reservering (
|
|
res_reservering_verwijder,
|
|
res_reservering_externnr)
|
|
VALUES (NULL, rec.ultimo_code)
|
|
RETURNING res_reservering_key
|
|
INTO v_reservering_key;
|
|
END IF;
|
|
|
|
v_errormsg := 'Fout toevoegen res_rsv_ruimte.';
|
|
|
|
INSERT INTO res_rsv_ruimte (
|
|
res_reservering_key,
|
|
res_rsv_ruimte_volgnr,
|
|
res_rsv_ruimte_opmerking,
|
|
res_rsv_ruimte_omschrijving,
|
|
prs_kostenplaats_key,
|
|
res_rsv_ruimte_contact_key,
|
|
res_rsv_ruimte_host_key,
|
|
--alg_ruimte_key,
|
|
res_ruimte_opstel_key,
|
|
res_rsv_ruimte_cvab_mode,
|
|
res_activiteit_key,
|
|
res_rsv_ruimte_van,
|
|
res_rsv_ruimte_tot,
|
|
res_rsv_ruimte_bezoekers,
|
|
res_rsv_ruimte_bezoekers_shown,
|
|
res_status_bo_key,
|
|
res_status_fo_key,
|
|
res_rsv_ruimte_noshow,
|
|
res_rsv_ruimte_externnr)
|
|
VALUES (v_reservering_key,
|
|
v_volgnr,
|
|
NULL,
|
|
SUBSTR (rec.res_omschrijving, 1, 60),
|
|
rec.kostenplaats_key,
|
|
v_prs_perslid_key,
|
|
v_prs_perslid_key,
|
|
v_res_ruimte_opstel_key,
|
|
NULL, -- CVAB-mode op Afhalen!
|
|
v_res_activiteit_key,
|
|
v_res_startdatum,
|
|
v_res_einddatum,
|
|
TO_NUMBER (NULL),
|
|
v_no_show,
|
|
v_status_bo,
|
|
v_status_fo,
|
|
v_no_show,
|
|
NULL)
|
|
RETURNING res_rsv_ruimte_key
|
|
INTO v_rsv_ruimte_key;
|
|
|
|
flx.setflex ('RES',
|
|
v_res_kenmerk_key,
|
|
v_rsv_ruimte_key,
|
|
rec.ultimo_code || '/' || v_volgnr);
|
|
fac.trackaction ('#RESNEW',
|
|
v_rsv_ruimte_key,
|
|
NULL,
|
|
SYSDATE,
|
|
'Gemigreerd vanuit Ultimo');
|
|
|
|
IF v_debiteur IS NOT NULL
|
|
THEN
|
|
flx.setflex ('RES',
|
|
65, --Kenmerk Klantnummer bij activiteit Vergadering
|
|
v_rsv_ruimte_key,
|
|
v_debiteur);
|
|
END IF;
|
|
|
|
fac.imp_writelog (
|
|
p_import_key,
|
|
'I',
|
|
'Reservering '
|
|
|| v_reservering_key
|
|
|| ' aangemaakt voor ultimo reservering '
|
|
|| rec.ultimo_code,
|
|
'');
|
|
END IF;
|
|
ELSE
|
|
fac.imp_writelog (
|
|
p_import_key,
|
|
'I',
|
|
'Reservering voor ultimo reservering '
|
|
|| rec.ultimo_code
|
|
|| ' reeds aangemaakt.',
|
|
'');
|
|
END IF;
|
|
END IF;
|
|
END LOOP;
|
|
END IF;
|
|
EXCEPTION
|
|
WHEN OTHERS
|
|
THEN
|
|
oracle_err_num := SQLCODE;
|
|
oracle_err_mes := SUBSTR (SQLERRM, 1, 150);
|
|
v_errormsg :=
|
|
v_errormsg
|
|
|| 'ORACLE (error '
|
|
|| oracle_err_num
|
|
|| '/'
|
|
|| oracle_err_mes
|
|
|| ')';
|
|
fac.imp_writelog (p_import_key,
|
|
'E',
|
|
'Importproces Ultimo reserveringen afgebroken!',
|
|
v_errormsg);
|
|
END;
|
|
/
|
|
|
|
CREATE OR REPLACE PROCEDURE ZGTW_IMPORT_CATERING (
|
|
p_import_key IN NUMBER)
|
|
AS
|
|
BEGIN
|
|
NULL;
|
|
END;
|
|
/
|
|
|
|
CREATE OR REPLACE PROCEDURE ZGTW_UPDATE_CATERING (
|
|
p_import_key IN NUMBER)
|
|
AS
|
|
CURSOR catres IS
|
|
WITH
|
|
rr_set
|
|
AS
|
|
(SELECT rr.res_reservering_externnr,
|
|
rrr.res_rsv_ruimte_volgnr,
|
|
rr.res_reservering_key,
|
|
rrr.res_rsv_ruimte_key,
|
|
/* voeg hier de kolommen toe die je nodig hebt uit rr/rrr */
|
|
ROW_NUMBER ()
|
|
OVER (
|
|
PARTITION BY rr.res_reservering_externnr,
|
|
rrr.res_rsv_ruimte_volgnr
|
|
ORDER BY rr.res_reservering_key DESC -- kies je eigen logica
|
|
) rn
|
|
FROM res_reservering rr
|
|
JOIN res_rsv_ruimte rrr
|
|
ON rrr.res_reservering_key =
|
|
rr.res_reservering_key)
|
|
SELECT fac_imp_csv_col01 AS ultimo_code,
|
|
fac_imp_csv_col04 AS ultimo_code_volgnr,
|
|
fac_imp_csv_col23 AS ultimo_art_nr,
|
|
fac_imp_csv_col24 AS ultimo_art_omschrijving,
|
|
art.RES_ARTIKEL_key AS artikel_key,
|
|
fac_imp_csv_col12 AS aantal,
|
|
fac.safe_to_date (
|
|
TO_CHAR (
|
|
CAST (
|
|
TO_TIMESTAMP_TZ (
|
|
fac_imp_csv_col10,
|
|
'YYYY-MM-DD HH24:MI:SS.FF7 TZH:TZM')
|
|
AT LOCAL
|
|
AS DATE),
|
|
'DD/MM/YYYY HH24:MI:SS'),
|
|
'DD/MM/YYYY HH24:MI:SS') AS van,
|
|
rs.res_rsv_ruimte_key AS res_rsv_ruimte_key,
|
|
rs.res_reservering_key AS reservering_key,
|
|
rs.res_rsv_ruimte_volgnr AS res_rsv_ruimte_volgnr
|
|
FROM fac_imp_csv fac
|
|
LEFT JOIN res_artikel art
|
|
ON fac.safe_to_number (fac.fac_imp_csv_col23) =
|
|
fac.safe_to_number (art.res_artikel_nr)
|
|
AND art.res_discipline_key <> 263
|
|
LEFT JOIN rr_set rs
|
|
ON fac.safe_to_number (fac.fac_imp_csv_col01) =
|
|
fac.safe_to_number (rs.res_reservering_externnr)
|
|
AND fac.safe_to_number (fac.fac_imp_csv_col04) =
|
|
fac.safe_to_number (rs.res_rsv_ruimte_volgnr)
|
|
AND rs.rn = 1
|
|
WHERE fac_import_key = p_import_key
|
|
AND fac_imp_csv_col01 <> 'Reserveringsnummer'
|
|
ORDER BY fac_imp_csv_key;
|
|
|
|
-- v_res_startdatum DATE;
|
|
-- v_res_einddatum DATE;
|
|
-- v_prs_perslid_key NUMBER;
|
|
-- v_res_ruimte_opstel_key NUMBER;
|
|
-- v_res_activiteit_key NUMBER;
|
|
-- v_rsv_ruimte_key NUMBER;
|
|
-- v_reservering_key NUMBER;
|
|
|
|
c_fielddelimitor VARCHAR2 (1) := ';';
|
|
v_newline VARCHAR2 (1000); -- Input line
|
|
v_errormsg VARCHAR2 (1000) := '-';
|
|
v_errorhint VARCHAR2 (1000);
|
|
oracle_err_num NUMBER;
|
|
oracle_err_mes VARCHAR2 (200);
|
|
v_aanduiding VARCHAR2 (500);
|
|
v_reservering_key NUMBER;
|
|
v_res_rsv_ruimte_key NUMBER;
|
|
v_res_rsv_artikel_key NUMBER;
|
|
v_ruimte_opstel_key NUMBER;
|
|
v_soort VARCHAR2 (200);
|
|
-- v_count NUMBER;
|
|
-- v_res_kenmerk_key NUMBER;
|
|
-- v_status_bo NUMBER;
|
|
-- v_status_fo NUMBER;
|
|
-- v_volgnr NUMBER;
|
|
-- v_no_show NUMBER;
|
|
|
|
BEGIN
|
|
FOR rec IN catres
|
|
LOOP
|
|
BEGIN
|
|
v_aanduiding :=
|
|
rec.ultimo_code || '-' || rec.ultimo_art_nr || '/1';
|
|
v_errormsg := 'Fout toevoegen rsv_artikel';
|
|
|
|
IF rec.artikel_key IS NOT NULL
|
|
THEN
|
|
INSERT INTO res_rsv_artikel (res_artikel_key,
|
|
res_rsv_artikel_aantal,
|
|
res_rsv_artikel_levering,
|
|
res_status_bo_key,
|
|
res_rsv_ruimte_key)
|
|
VALUES (rec.artikel_key,
|
|
rec.aantal,
|
|
rec.van,
|
|
2,
|
|
rec.res_rsv_ruimte_key)
|
|
RETURNING res_rsv_artikel_key
|
|
INTO v_res_rsv_artikel_key;
|
|
|
|
FAC.trackaction (
|
|
'#RESUPD',
|
|
rec.res_rsv_ruimte_key,
|
|
3,
|
|
SYSDATE,
|
|
'Reservering '
|
|
|| rec.reservering_key
|
|
|| '/'
|
|
|| rec.res_rsv_ruimte_volgnr
|
|
|| ' gewijzigd'
|
|
|| CHR (13)
|
|
|| 'Artikel '
|
|
|| rec.ultimo_art_omschrijving
|
|
|| ' toegevoegd');
|
|
|
|
fac.imp_writelog (
|
|
p_import_key,
|
|
'I',
|
|
'Catering '
|
|
|| rec.reservering_key
|
|
|| ' bijgevoegd bij Ultimo reservering '
|
|
|| rec.ultimo_code,
|
|
'');
|
|
ELSE
|
|
fac.imp_writelog (
|
|
p_import_key,
|
|
'E',
|
|
'Catering '
|
|
|| rec.reservering_key
|
|
|| ' NIET bijgevoegd bij Ultimo reservering '
|
|
|| rec.ultimo_code,
|
|
'Error: Artikel_key is NULL, geen insert uitgevoerd.');
|
|
END IF;
|
|
EXCEPTION
|
|
WHEN OTHERS
|
|
THEN
|
|
fac.imp_writelog (
|
|
p_import_key,
|
|
'E',
|
|
'Catering '
|
|
|| rec.reservering_key
|
|
|| ' NIET bijgevoegd bij Ultimo reservering '
|
|
|| rec.ultimo_code,
|
|
'Error: ' || SQLERRM);
|
|
END;
|
|
END LOOP;
|
|
END;
|
|
/
|
|
|
|
CREATE OR REPLACE VIEW zgtw_v_udr_reserveringincl
|
|
(
|
|
key,
|
|
nummer,
|
|
res_omschrijving,
|
|
invoerdatum,
|
|
datum,
|
|
gastheer,
|
|
zichtbare_gastheer,
|
|
contact,
|
|
gastheer_email,
|
|
contact_email,
|
|
invoerder,
|
|
kostensoortgroep,
|
|
kostensoort,
|
|
kpn,
|
|
kpn_omschrijving,
|
|
kpn_extern,
|
|
fclt_3d_divisie_key,
|
|
divisie_naam,
|
|
divisie_omschrijving,
|
|
fclt_3d_afdeling_key,
|
|
afdeling_code,
|
|
afdeling_omschrijving,
|
|
regio_omschrijving,
|
|
district_omschijving,
|
|
fclt_3d_locatie_key,
|
|
locatie,
|
|
locatie_omschrijving,
|
|
locatie_plaats,
|
|
gebouw,
|
|
gebouw_key,
|
|
verdieping,
|
|
ruimte,
|
|
opstelling,
|
|
capaciteit,
|
|
no_show,
|
|
actual_shown,
|
|
mandaat,
|
|
personeelsnr,
|
|
fclt_3d_discipline_key,
|
|
catalogus_key,
|
|
catalogus,
|
|
reserveerbare_ruimte,
|
|
bezoekers,
|
|
van,
|
|
tot,
|
|
duur,
|
|
status,
|
|
bostatus,
|
|
activiteit,
|
|
srtactiviteit_key,
|
|
activiteitsoort,
|
|
opmerking,
|
|
visibility,
|
|
bezorgmode,
|
|
voorziening_discipline_key,
|
|
voorziening_type,
|
|
voorziening_catalogus,
|
|
leverancier,
|
|
voorziening_product_key,
|
|
voorziening_product,
|
|
voorziening_van,
|
|
voorziening_tot,
|
|
voorziening_aantal,
|
|
voorziening_prijs,
|
|
voorziening_prijs_extern,
|
|
voorziening_totaalprijs,
|
|
voorziening_totaalprijsextern,
|
|
ruimte_uurprijs,
|
|
ruimte_duur,
|
|
zaalhuur,
|
|
debiteurnr,
|
|
relatietype_key,
|
|
relatietype_omschrijving,
|
|
prijs_doorbelasting
|
|
)
|
|
AS
|
|
SELECT rrr.res_rsv_ruimte_key,
|
|
res.res_reservering_key || '/' || rrr.res_rsv_ruimte_volgnr,
|
|
rrr.res_rsv_ruimte_omschrijving,
|
|
COALESCE (rrr.res_rsv_ruimte_aanmaak, voorz.van),
|
|
rrr.res_rsv_ruimte_van,
|
|
host_pf.prs_perslid_naam_full,
|
|
DECODE (p.prs_perslid_visibility,
|
|
1, host_pf_friendly.prs_perslid_naam_friendly,
|
|
a.prs_afdeling_omschrijving)
|
|
zichtbare_gastheer,
|
|
contact_pf.prs_perslid_naam_full,
|
|
ph.prs_perslid_email,
|
|
pc.prs_perslid_email,
|
|
invoerder_pf.prs_perslid_naam_full,
|
|
ksg.prs_kostensoortgrp_oms
|
|
kostensoortgroep,
|
|
ks.prs_kostensoort_oms
|
|
kostensoort,
|
|
k.prs_kostenplaats_nr,
|
|
k.prs_kostenplaats_omschrijving,
|
|
k.prs_kostenplaats_extern,
|
|
an.prs_afdeling_key,
|
|
an.prs_afdeling_naam,
|
|
an.prs_afdeling_omschrijving,
|
|
a.prs_afdeling_key,
|
|
a.prs_afdeling_naam,
|
|
a.prs_afdeling_omschrijving,
|
|
rg.alg_regio_omschrijving,
|
|
d.alg_district_omschrijving,
|
|
l.alg_locatie_key,
|
|
l.alg_locatie_code,
|
|
l.alg_locatie_omschrijving,
|
|
l.alg_locatie_plaats,
|
|
g.alg_gebouw_code,
|
|
g.alg_gebouw_key,
|
|
v.alg_verdieping_code,
|
|
r2a.ruimte_nr,
|
|
r2a.opstelling,
|
|
r2a.capaciteit,
|
|
rrr.res_rsv_ruimte_noshow,
|
|
rrr.res_rsv_ruimte_bezoekers_shown,
|
|
NVL (pr.fac_profiel_limiet, 0),
|
|
p.prs_perslid_nr,
|
|
COALESCE (voorz.ins_discipline_key, disc.ins_discipline_key),
|
|
disc.ins_discipline_key,
|
|
disc.ins_discipline_omschrijving,
|
|
DECODE (rrr.alg_ruimte_key, NULL, 'Ja', 'Nee'),
|
|
rrr.res_rsv_ruimte_bezoekers,
|
|
rrr.res_rsv_ruimte_van,
|
|
rrr.res_rsv_ruimte_tot,
|
|
COALESCE ((rrr.res_rsv_ruimte_tot - rrr.res_rsv_ruimte_van) * 24,
|
|
0),
|
|
rs_fo.res_status_fo_omschrijving,
|
|
rs_bo.res_status_bo_omschrijving,
|
|
ra.res_activiteit_omschrijving,
|
|
rsa.res_srtactiviteit_key,
|
|
rsa.res_srtactiviteit_omschrijving,
|
|
rrr.res_rsv_ruimte_opmerking,
|
|
rrr.res_rsv_ruimte_visibility,
|
|
DECODE (rrr.res_rsv_ruimte_cvab_mode,
|
|
0, lcl.l ('lcl_res_afhalen'),
|
|
1, lcl.l ('lcl_res_bezorgen'),
|
|
''),
|
|
voorz.ins_discipline_key,
|
|
voorz.vtype,
|
|
voorz.catalogus,
|
|
leverancier.prs_bedrijf_naam,
|
|
voorz.product_key,
|
|
voorz.product,
|
|
TO_CHAR (voorz.van, 'hh24:mi'),
|
|
TO_CHAR (voorz.tot, 'hh24:mi'),
|
|
voorz.aantal,
|
|
voorz.prijs,
|
|
voorz.prijs_extern,
|
|
voorz.totaalprijs,
|
|
voorz.totaalprijs_extern,
|
|
rr.res_ruimte_prijs,
|
|
ROUND ((rrr.res_rsv_ruimte_tot - rrr.res_rsv_ruimte_van) * 24, 2),
|
|
CASE
|
|
WHEN b.prs_leverancier_nr IS NULL
|
|
THEN
|
|
NULL
|
|
WHEN rt.prs_relatietype_key = 30
|
|
THEN
|
|
NULL
|
|
ELSE
|
|
rr.res_ruimte_prijs
|
|
* (ROUND (
|
|
(rrr.res_rsv_ruimte_tot - rrr.res_rsv_ruimte_van)
|
|
* 24,
|
|
2))
|
|
/ COUNT (*) OVER (PARTITION BY rrr.res_rsv_ruimte_key)
|
|
END,
|
|
b.prs_leverancier_nr
|
|
debiteur,
|
|
rt.prs_relatietype_key,
|
|
rt.prs_relatietype_omschrijving,
|
|
CASE
|
|
WHEN b.prs_leverancier_nr IS NULL
|
|
THEN
|
|
voorz.totaalprijs
|
|
WHEN rt.prs_relatietype_key = 30
|
|
THEN
|
|
voorz.totaalprijs
|
|
ELSE
|
|
voorz.totaalprijs_extern
|
|
+ rr.res_ruimte_prijs
|
|
* (ROUND (
|
|
( rrr.res_rsv_ruimte_tot
|
|
- rrr.res_rsv_ruimte_van)
|
|
* 24,
|
|
2))
|
|
/ COUNT (*) OVER (PARTITION BY rrr.res_rsv_ruimte_key)
|
|
END
|
|
FROM res_v_aanwezigrsv_ruimte rrr
|
|
JOIN res_reservering res
|
|
ON rrr.res_reservering_key = res.res_reservering_key
|
|
JOIN res_activiteit ra
|
|
ON rrr.res_activiteit_key = ra.res_activiteit_key
|
|
JOIN res_srtactiviteit rsa
|
|
ON ra.res_srtactiviteit_key = rsa.res_srtactiviteit_key
|
|
JOIN prs_perslid p
|
|
ON rrr.res_rsv_ruimte_host_key = p.prs_perslid_key
|
|
JOIN prs_afdeling a ON p.prs_afdeling_key = a.prs_afdeling_key
|
|
JOIN prs_v_afdeling_boom ab
|
|
ON p.prs_afdeling_key = ab.prs_afdeling_key
|
|
JOIN prs_afdeling an ON ab.prs_afdeling_key1 = an.prs_afdeling_key
|
|
LEFT JOIN prs_kostenplaats k
|
|
ON rrr.prs_kostenplaats_key = k.prs_kostenplaats_key
|
|
LEFT JOIN prs_v_perslid_fullnames_all host_pf
|
|
ON host_pf.prs_perslid_key = rrr.res_rsv_ruimte_host_key
|
|
LEFT JOIN prs_v_perslid_fullnames_all host_pf_friendly
|
|
ON host_pf_friendly.prs_perslid_key =
|
|
rrr.res_rsv_ruimte_host_key
|
|
LEFT JOIN prs_v_perslid_fullnames_all contact_pf
|
|
ON contact_pf.prs_perslid_key = rrr.res_rsv_ruimte_contact_key
|
|
LEFT JOIN prs_perslid ph
|
|
ON ph.prs_perslid_key = rrr.res_rsv_ruimte_host_key
|
|
LEFT JOIN prs_perslid pc
|
|
ON pc.prs_perslid_key = rrr.res_rsv_ruimte_contact_key
|
|
LEFT JOIN fac_profiel pr ON p.fac_profiel_key = pr.fac_profiel_key
|
|
LEFT JOIN res_status_fo rs_fo
|
|
ON rs_fo.res_status_fo_key = rrr.res_status_fo_key
|
|
LEFT JOIN res_status_bo rs_bo
|
|
ON rs_bo.res_status_bo_key = rrr.res_status_bo_key
|
|
LEFT JOIN
|
|
(SELECT tr.fac_tracking_refkey, pf.prs_perslid_naam_full
|
|
FROM fac_tracking tr
|
|
JOIN fac_srtnotificatie str
|
|
ON tr.fac_srtnotificatie_key =
|
|
str.fac_srtnotificatie_key
|
|
JOIN prs_v_perslid_fullnames_all pf
|
|
ON tr.prs_perslid_key = pf.prs_perslid_key
|
|
WHERE str.fac_srtnotificatie_code = 'RESNEW') invoerder_pf
|
|
ON invoerder_pf.fac_tracking_refkey = rrr.res_rsv_ruimte_key
|
|
LEFT JOIN
|
|
( SELECT r.res_rsv_ruimte_key,
|
|
MAX (o.res_opstelling_omschrijving) opstelling,
|
|
MAX (ro.res_ruimte_opstel_bezoekers) capaciteit,
|
|
MAX (ra.alg_ruimte_key) alg_ruimte_key,
|
|
MAX (rr.res_ruimte_nr) ruimte_nr
|
|
FROM res_rsv_ruimte r
|
|
JOIN res_ruimte_opstelling ro
|
|
ON r.res_ruimte_opstel_key = ro.res_ruimte_opstel_key
|
|
JOIN res_opstelling o
|
|
ON ro.res_opstelling_key = o.res_opstelling_key
|
|
JOIN res_ruimte rr
|
|
ON ro.res_ruimte_key = rr.res_ruimte_key
|
|
JOIN res_alg_ruimte ra
|
|
ON rr.res_ruimte_key = ra.res_ruimte_key
|
|
WHERE r.res_rsv_ruimte_verwijder IS NULL
|
|
GROUP BY r.res_rsv_ruimte_key
|
|
UNION ALL
|
|
SELECT rrr.res_rsv_ruimte_key,
|
|
'' opstelling,
|
|
NULL capaciteit,
|
|
rrr.alg_ruimte_key,
|
|
r.alg_ruimte_nr
|
|
FROM res_rsv_ruimte rrr
|
|
JOIN alg_ruimte r ON r.alg_ruimte_key = rrr.alg_ruimte_key
|
|
WHERE rrr.alg_ruimte_key IS NOT NULL) r2a
|
|
ON rrr.res_rsv_ruimte_key = r2a.res_rsv_ruimte_key
|
|
LEFT JOIN res_ruimte_opstelling ro
|
|
ON rrr.res_ruimte_opstel_key = ro.res_ruimte_opstel_key
|
|
LEFT JOIN res_ruimte rr ON ro.res_ruimte_key = rr.res_ruimte_key
|
|
LEFT JOIN ins_tab_discipline disc
|
|
ON rr.res_discipline_key = disc.ins_discipline_key
|
|
LEFT JOIN res_discipline rd
|
|
ON disc.ins_discipline_key = rd.ins_discipline_key
|
|
LEFT JOIN prs_kostensoort ks
|
|
ON rd.prs_kostensoort_key = ks.prs_kostensoort_key
|
|
LEFT JOIN prs_kostensoortgrp ksg
|
|
ON ks.prs_kostensoortgrp_key = ksg.prs_kostensoortgrp_key
|
|
LEFT JOIN alg_ruimte r ON r2a.alg_ruimte_key = r.alg_ruimte_key
|
|
LEFT JOIN alg_verdieping v
|
|
ON r.alg_verdieping_key = v.alg_verdieping_key
|
|
LEFT JOIN alg_gebouw g ON v.alg_gebouw_key = g.alg_gebouw_key
|
|
LEFT JOIN alg_locatie l ON g.alg_locatie_key = l.alg_locatie_key
|
|
LEFT JOIN alg_district d
|
|
ON l.alg_district_key = d.alg_district_key
|
|
LEFT JOIN alg_regio rg ON d.alg_regio_key = rg.alg_regio_key
|
|
LEFT JOIN
|
|
(SELECT rrd.res_rsv_ruimte_key
|
|
res_rsv_ruimte_key,
|
|
-rd.res_deel_key
|
|
product_key,
|
|
rd.res_deel_omschrijving
|
|
product,
|
|
DECODE (
|
|
rd.res_deel_prijs_vast,
|
|
1, NVL (rrd.res_rsv_deel_prijs, rd.res_deel_prijs),
|
|
(rrd.res_rsv_deel_tot - rrd.res_rsv_deel_van)
|
|
* 24
|
|
* NVL (rrd.res_rsv_deel_prijs, rd.res_deel_prijs))
|
|
totaalprijs,
|
|
DECODE (
|
|
rd.res_deel_prijs_vast,
|
|
1, NVL (rrd.res_rsv_deel_prijs, rd.res_deel_prijs),
|
|
(rrd.res_rsv_deel_tot - rrd.res_rsv_deel_van)
|
|
* 24
|
|
* NVL (rrd.res_rsv_deel_prijs, rd.res_deel_prijs))
|
|
totaalprijs_extern,
|
|
rrd.res_rsv_deel_van
|
|
van,
|
|
rrd.res_rsv_deel_tot
|
|
tot,
|
|
(rrd.res_rsv_deel_tot - rrd.res_rsv_deel_van) * 24
|
|
aantal,
|
|
NVL (rrd.res_rsv_deel_prijs, rd.res_deel_prijs)
|
|
prijs,
|
|
NVL (rrd.res_rsv_deel_prijs, rd.res_deel_prijs)
|
|
prijs_extern,
|
|
c.ins_discipline_key
|
|
ins_discipline_key,
|
|
c.ins_discipline_omschrijving
|
|
catalogus,
|
|
'object'
|
|
vtype
|
|
FROM res_v_aanwezigrsv_deel rrd
|
|
JOIN res_deel rd ON rrd.res_deel_key = rd.res_deel_key
|
|
JOIN ins_deel d ON d.ins_deel_key = rd.res_ins_deel_key
|
|
JOIN ins_tab_discipline c
|
|
ON c.ins_discipline_key = rd.res_discipline_key
|
|
WHERE rrd.res_rsv_ruimte_key IS NOT NULL
|
|
UNION ALL
|
|
SELECT rra.res_rsv_ruimte_key
|
|
res_rsv_ruimte_key,
|
|
ra.res_artikel_key
|
|
product_key,
|
|
ra.res_artikel_omschrijving
|
|
product,
|
|
NVL (rra.res_rsv_artikel_prijs,
|
|
rra.res_rsv_artikel_aantal * res_artikel_prijs)
|
|
totaalprijs,
|
|
NVL (rra.res_rsv_artikel_prijs,
|
|
rra.res_rsv_artikel_aantal * res_artikel_inkoopprijs)
|
|
totaalprijs_extern,
|
|
rra.res_rsv_artikel_levering
|
|
van,
|
|
NULL
|
|
tot,
|
|
rra.res_rsv_artikel_aantal
|
|
aantal,
|
|
NVL (
|
|
rra.res_rsv_artikel_prijs / rra.res_rsv_artikel_aantal,
|
|
res_artikel_prijs)
|
|
prijs,
|
|
NVL (
|
|
rra.res_rsv_artikel_prijs / rra.res_rsv_artikel_aantal,
|
|
res_artikel_inkoopprijs)
|
|
prijs_extern,
|
|
c.ins_discipline_key
|
|
ins_discipline_key,
|
|
c.ins_discipline_omschrijving
|
|
catalogus,
|
|
'consumable'
|
|
vtype
|
|
FROM res_v_aanwezigrsv_artikel rra
|
|
JOIN res_artikel ra
|
|
ON rra.res_artikel_key = ra.res_artikel_key
|
|
JOIN ins_tab_discipline c
|
|
ON ra.res_discipline_key = c.ins_discipline_key) voorz
|
|
ON rrr.res_rsv_ruimte_key = voorz.res_rsv_ruimte_key
|
|
LEFT JOIN
|
|
(SELECT rdp.res_ins_discipline_key, b.prs_bedrijf_naam
|
|
FROM res_disc_params rdp
|
|
JOIN prs_bedrijf b
|
|
ON rdp.prs_bedrijf_key = b.prs_bedrijf_key)
|
|
leverancier
|
|
ON leverancier.res_ins_discipline_key =
|
|
voorz.ins_discipline_key
|
|
LEFT JOIN
|
|
(SELECT *
|
|
FROM (SELECT kc.res_rsv_ruimte_key,
|
|
kc.res_kenmerk_key,
|
|
kc.res_kenmerkreservering_waarde,
|
|
ROW_NUMBER ()
|
|
OVER (PARTITION BY kc.res_rsv_ruimte_key
|
|
ORDER BY kc.res_kenmerkwaarde_key) AS rn
|
|
FROM res_kenmerkwaarde kc
|
|
JOIN res_kenmerk r
|
|
ON kc.res_kenmerk_key = r.res_kenmerk_key
|
|
WHERE kc.res_kenmerkwaarde_verwijder IS NULL
|
|
AND r.res_srtkenmerk_key = 42)
|
|
WHERE rn = 1) kc
|
|
ON kc.res_rsv_ruimte_key = rrr.res_rsv_ruimte_key
|
|
LEFT JOIN prs_bedrijf b
|
|
ON fac.safe_to_number (kc.res_kenmerkreservering_waarde) =
|
|
b.prs_bedrijf_key
|
|
LEFT JOIN prs_relatietype rt
|
|
ON fac.safe_to_number (b.prs_relatietype_key) =
|
|
rt.prs_relatietype_key
|
|
WHERE rrr.res_rsv_ruimte_van >= TO_DATE ('01-01-2017', 'DD-MM-YYYY')
|
|
AND ( rrr.res_ruimte_opstel_key IS NOT NULL
|
|
OR voorz.res_rsv_ruimte_key IS NOT NULL);
|
|
|
|
CREATE OR REPLACE VIEW ZGTW_V_KLANTGEGEVENS
|
|
(
|
|
PRS_BEDRIJF_KEY,
|
|
PRS_LEVERANCIER_NR,
|
|
PRS_BEDRIJF_NAAM,
|
|
PRS_BEDRIJF_GEGEVENS,
|
|
PRS_BEDRIJF_VERWIJDER
|
|
)
|
|
AS
|
|
SELECT prs_bedrijf_key,
|
|
prs_leverancier_nr,
|
|
prs_bedrijf_naam,
|
|
prs_leverancier_nr || ' (' || prs_bedrijf_naam || ')',
|
|
prs_bedrijf_verwijder
|
|
FROM prs_bedrijf;
|
|
|
|
--Herziend standpunt: alle gebruikers moeten gemandateerd worden voor alle kostenplaatsen
|
|
CREATE OR REPLACE PROCEDURE zgtw_daily
|
|
AS
|
|
CURSOR c_perslid IS
|
|
SELECT p.prs_perslid_key
|
|
FROM prs_v_aanwezigperslid p
|
|
WHERE NOT EXISTS
|
|
(SELECT 1
|
|
FROM prs_perslidkostenplaats x
|
|
WHERE prs_kostenplaats_key IS NULL
|
|
AND x.prs_perslid_key = p.prs_perslid_key);
|
|
BEGIN
|
|
FOR rec IN c_perslid
|
|
LOOP
|
|
BEGIN
|
|
INSERT INTO prs_perslidkostenplaats (
|
|
prs_perslid_key,
|
|
prs_kostenplaats_key,
|
|
prs_perslidkostenplaats_boeken,
|
|
prs_perslidkostenplaats_inzage)
|
|
VALUES (rec.prs_perslid_key,
|
|
NULL,
|
|
1,
|
|
0);
|
|
EXCEPTION
|
|
WHEN OTHERS
|
|
THEN
|
|
fac.writelog (
|
|
'MANDATERING ',
|
|
'I',
|
|
'Mandatering niet gelukt voor p_key: '
|
|
|| rec.prs_perslid_key,
|
|
'');
|
|
END;
|
|
END LOOP;
|
|
END;
|
|
/
|
|
|
|
CREATE OR REPLACE VIEW ZGTW_V_FACTURATIERAPPORT
|
|
(
|
|
NUMMER,
|
|
DATUM,
|
|
LOCATIE_OMSCHRIJVING,
|
|
VAN,
|
|
TOT,
|
|
ACTIVITEIT,
|
|
RUIMTE,
|
|
VOORZIENING_TYPE,
|
|
VOORZIENING_CATALOGUS,
|
|
VOORZIENING_PRODUCT,
|
|
VOORZIENING_VAN,
|
|
VOORZIENING_TOT,
|
|
VOORZIENING_AANTAL,
|
|
VOORZIENING_PRIJS,
|
|
VOORZIENING_PRIJS_EXTERN,
|
|
VOORZIENING_PRIJS_DOORBELAST,
|
|
VOORZIENING_TOTAALPRIJS,
|
|
VOORZIENING_TOTAALPRIJSEXTERN,
|
|
VOORZIENING_TOTAALPRIJS_DOORBELAST,
|
|
RUIMTE_UURPRIJS,
|
|
RUIMTE_DUUR,
|
|
ZAALHUUR,
|
|
DEBITEURNR,
|
|
DEBITEUR,
|
|
KOSTENPLAATS_NR,
|
|
KOSTENPLAATS_OMSCHRIJVING,
|
|
RELATIETYPE_OMSCHRIJVING,
|
|
PRIJS_DOORBELASTING
|
|
)
|
|
AS
|
|
WITH
|
|
r2a
|
|
AS
|
|
( SELECT r.res_rsv_ruimte_key,
|
|
MAX (o.res_opstelling_omschrijving)
|
|
AS opstelling,
|
|
MAX (ro.res_ruimte_opstel_bezoekers)
|
|
AS capaciteit,
|
|
MAX (ra.alg_ruimte_key)
|
|
AS alg_ruimte_key,
|
|
MAX (rr.res_ruimte_omschrijving)
|
|
AS ruimte
|
|
FROM res_rsv_ruimte r
|
|
JOIN res_ruimte_opstelling ro
|
|
ON r.res_ruimte_opstel_key = ro.res_ruimte_opstel_key
|
|
JOIN res_opstelling o
|
|
ON ro.res_opstelling_key = o.res_opstelling_key
|
|
JOIN res_ruimte rr
|
|
ON ro.res_ruimte_key = rr.res_ruimte_key
|
|
JOIN res_alg_ruimte ra
|
|
ON rr.res_ruimte_key = ra.res_ruimte_key
|
|
WHERE r.res_rsv_ruimte_verwijder IS NULL
|
|
GROUP BY r.res_rsv_ruimte_key
|
|
UNION ALL
|
|
SELECT rrr.res_rsv_ruimte_key,
|
|
'' AS opstelling,
|
|
NULL AS capaciteit,
|
|
r.alg_ruimte_key,
|
|
r.alg_ruimte_omschrijving as ruimte
|
|
FROM res_rsv_ruimte rrr
|
|
JOIN alg_ruimte r
|
|
ON r.alg_ruimte_key = rrr.alg_ruimte_key
|
|
WHERE rrr.alg_ruimte_key IS NOT NULL),
|
|
-- 2) Voorzieningen (objecten & consumables)
|
|
voorz
|
|
AS
|
|
(SELECT rrd.res_rsv_ruimte_key
|
|
AS res_rsv_ruimte_key,
|
|
-rd.res_deel_key
|
|
AS product_key,
|
|
rd.res_deel_omschrijving
|
|
AS product,
|
|
CASE
|
|
WHEN rd.res_deel_prijs_vast = 1
|
|
THEN
|
|
NVL (rrd.res_rsv_deel_prijs, rd.res_deel_prijs)
|
|
ELSE
|
|
(rrd.res_rsv_deel_tot - rrd.res_rsv_deel_van)
|
|
* 24
|
|
* NVL (rrd.res_rsv_deel_prijs, rd.res_deel_prijs)
|
|
END
|
|
AS totaalprijs,
|
|
CASE
|
|
WHEN rd.res_deel_prijs_vast = 1
|
|
THEN
|
|
NVL (rrd.res_rsv_deel_prijs, rd.res_deel_prijs)
|
|
ELSE
|
|
(rrd.res_rsv_deel_tot - rrd.res_rsv_deel_van)
|
|
* 24
|
|
* NVL (rrd.res_rsv_deel_prijs, rd.res_deel_prijs)
|
|
END
|
|
AS totaalprijs_extern,
|
|
rrd.res_rsv_deel_van
|
|
AS van,
|
|
rrd.res_rsv_deel_tot
|
|
AS tot,
|
|
(rrd.res_rsv_deel_tot - rrd.res_rsv_deel_van) * 24
|
|
AS aantal,
|
|
NVL (rrd.res_rsv_deel_prijs, rd.res_deel_prijs)
|
|
AS prijs,
|
|
NVL (rrd.res_rsv_deel_prijs, rd.res_deel_prijs)
|
|
AS prijs_extern,
|
|
c.ins_discipline_key
|
|
AS ins_discipline_key,
|
|
c.ins_discipline_omschrijving
|
|
AS catalogus,
|
|
'object'
|
|
AS vtype
|
|
FROM res_v_aanwezigrsv_deel rrd
|
|
JOIN res_deel rd ON rrd.res_deel_key = rd.res_deel_key
|
|
JOIN ins_deel d ON d.ins_deel_key = rd.res_ins_deel_key
|
|
JOIN ins_tab_discipline c
|
|
ON c.ins_discipline_key = rd.res_discipline_key
|
|
WHERE rrd.res_rsv_ruimte_key IS NOT NULL
|
|
UNION ALL
|
|
SELECT rra.res_rsv_ruimte_key,
|
|
ra.res_artikel_key,
|
|
ra.res_artikel_omschrijving,
|
|
NVL (rra.res_rsv_artikel_prijs,
|
|
rra.res_rsv_artikel_aantal * res_artikel_prijs),
|
|
NVL (
|
|
rra.res_rsv_artikel_prijs,
|
|
rra.res_rsv_artikel_aantal * res_artikel_inkoopprijs),
|
|
rra.res_rsv_artikel_levering,
|
|
NULL,
|
|
rra.res_rsv_artikel_aantal,
|
|
NVL (
|
|
rra.res_rsv_artikel_prijs
|
|
/ rra.res_rsv_artikel_aantal,
|
|
res_artikel_prijs),
|
|
NVL (
|
|
rra.res_rsv_artikel_prijs
|
|
/ rra.res_rsv_artikel_aantal,
|
|
res_artikel_inkoopprijs),
|
|
c.ins_discipline_key,
|
|
c.ins_discipline_omschrijving,
|
|
'consumable'
|
|
FROM res_v_aanwezigrsv_artikel rra
|
|
JOIN res_artikel ra
|
|
ON rra.res_artikel_key = ra.res_artikel_key
|
|
JOIN ins_tab_discipline c
|
|
ON ra.res_discipline_key = c.ins_discipline_key),
|
|
kc
|
|
AS
|
|
(SELECT *
|
|
FROM (SELECT kc.res_rsv_ruimte_key,
|
|
kc.res_kenmerk_key,
|
|
kc.res_kenmerkreservering_waarde,
|
|
ROW_NUMBER ()
|
|
OVER (PARTITION BY kc.res_rsv_ruimte_key
|
|
ORDER BY kc.res_kenmerkwaarde_key) AS rn
|
|
FROM res_kenmerkwaarde kc
|
|
JOIN res_kenmerk r
|
|
ON kc.res_kenmerk_key = r.res_kenmerk_key
|
|
WHERE kc.res_kenmerkwaarde_verwijder IS NULL
|
|
AND r.res_srtkenmerk_key = 42)
|
|
WHERE rn = 1)
|
|
SELECT res.res_reservering_key || '/' || rrr.res_rsv_ruimte_volgnr
|
|
AS nummer,
|
|
rrr.res_rsv_ruimte_van
|
|
AS datum,
|
|
l.alg_locatie_omschrijving
|
|
AS locatie_omschrijving,
|
|
rrr.res_rsv_ruimte_van
|
|
AS van,
|
|
rrr.res_rsv_ruimte_tot
|
|
AS tot,
|
|
ra.res_activiteit_omschrijving
|
|
AS activiteit,
|
|
r2a.ruimte
|
|
AS ruimte,
|
|
voorz.vtype
|
|
AS voorziening_type,
|
|
voorz.catalogus
|
|
AS voorziening_catalogus,
|
|
voorz.product
|
|
AS voorziening_product,
|
|
TO_CHAR (voorz.van, 'hh24:mi')
|
|
AS voorziening_van,
|
|
TO_CHAR (voorz.tot, 'hh24:mi')
|
|
AS voorziening_tot,
|
|
NVL (voorz.aantal, 0)
|
|
AS voorziening_aantal,
|
|
NVL (voorz.prijs, 0)
|
|
AS voorziening_prijs,
|
|
NVL (voorz.prijs_extern, 0)
|
|
AS voorziening_prijs_extern,
|
|
CASE
|
|
WHEN b.prs_leverancier_nr IS NULL
|
|
OR rt.prs_relatietype_key = 30
|
|
THEN
|
|
NVL (voorz.prijs, 0)
|
|
ELSE
|
|
NVL (voorz.prijs_extern, 0)
|
|
END
|
|
AS voorziening_prijs_doorbelast,
|
|
NVL (voorz.totaalprijs, 0)
|
|
AS voorziening_totaalprijs,
|
|
NVL (voorz.totaalprijs_extern, 0)
|
|
AS voorziening_totaalprijsextern,
|
|
CASE
|
|
WHEN b.prs_leverancier_nr IS NULL
|
|
OR rt.prs_relatietype_key = 30
|
|
THEN
|
|
NVL (voorz.totaalprijs, 0)
|
|
ELSE
|
|
NVL (voorz.totaalprijs_extern, 0)
|
|
END
|
|
AS voorziening_totaalprijs_doorbelast,
|
|
NVL (rr.res_ruimte_prijs, 0)
|
|
AS ruimte_uurprijs,
|
|
NVL (
|
|
ROUND ((rrr.res_rsv_ruimte_tot - rrr.res_rsv_ruimte_van) * 24,
|
|
2),
|
|
0)
|
|
AS ruimte_duur,
|
|
CASE
|
|
WHEN b.prs_leverancier_nr IS NULL
|
|
THEN
|
|
0
|
|
WHEN rt.prs_relatietype_key = 30
|
|
THEN
|
|
0
|
|
ELSE
|
|
NVL (
|
|
NVL (rr.res_ruimte_prijs, 0)
|
|
* NVL (
|
|
ROUND (
|
|
( rrr.res_rsv_ruimte_tot
|
|
- rrr.res_rsv_ruimte_van)
|
|
* 24,
|
|
2),
|
|
0)
|
|
/ NULLIF (
|
|
COUNT (*)
|
|
OVER (PARTITION BY rrr.res_rsv_ruimte_key),
|
|
0),
|
|
0)
|
|
END
|
|
AS zaalhuur,
|
|
b.prs_leverancier_nr
|
|
AS debiteurnr,
|
|
CASE
|
|
WHEN b.prs_leverancier_nr IS NULL
|
|
THEN b.prs_bedrijf_naam
|
|
ELSE b.prs_bedrijf_naam || ' (' || b.prs_leverancier_nr || ')'
|
|
END AS debiteur,
|
|
pk.prs_kostenplaats_nr
|
|
AS kostenplaats_nr,
|
|
pk.prs_kostenplaats_omschrijving
|
|
AS kostenplaats_omschrijving,
|
|
rt.prs_relatietype_omschrijving
|
|
AS relatietype_omschrijving,
|
|
CASE
|
|
WHEN b.prs_leverancier_nr IS NULL
|
|
THEN
|
|
NVL (voorz.totaalprijs, 0)
|
|
WHEN rt.prs_relatietype_key = 30
|
|
THEN
|
|
NVL (voorz.totaalprijs, 0)
|
|
ELSE
|
|
NVL (voorz.totaalprijs_extern, 0)
|
|
+ NVL (rr.res_ruimte_prijs, 0)
|
|
* NVL (
|
|
ROUND (
|
|
( rrr.res_rsv_ruimte_tot
|
|
- rrr.res_rsv_ruimte_van)
|
|
* 24,
|
|
2),
|
|
0)
|
|
/ NULLIF (
|
|
COUNT (*)
|
|
OVER (PARTITION BY rrr.res_rsv_ruimte_key),
|
|
0)
|
|
END
|
|
AS prijs_doorbelasting
|
|
FROM res_v_aanwezigrsv_ruimte rrr
|
|
JOIN res_reservering res
|
|
ON rrr.res_reservering_key = res.res_reservering_key
|
|
JOIN res_activiteit ra
|
|
ON rrr.res_activiteit_key = ra.res_activiteit_key
|
|
LEFT JOIN res_ruimte_opstelling ro
|
|
ON rrr.res_ruimte_opstel_key = ro.res_ruimte_opstel_key
|
|
LEFT JOIN res_ruimte rr ON ro.res_ruimte_key = rr.res_ruimte_key
|
|
LEFT JOIN r2a ON r2a.res_rsv_ruimte_key = rrr.res_rsv_ruimte_key
|
|
LEFT JOIN alg_ruimte r ON r2a.alg_ruimte_key = r.alg_ruimte_key
|
|
LEFT JOIN alg_verdieping v
|
|
ON r.alg_verdieping_key = v.alg_verdieping_key
|
|
LEFT JOIN alg_gebouw g ON v.alg_gebouw_key = g.alg_gebouw_key
|
|
LEFT JOIN alg_locatie l ON g.alg_locatie_key = l.alg_locatie_key
|
|
LEFT JOIN voorz
|
|
ON rrr.res_rsv_ruimte_key = voorz.res_rsv_ruimte_key
|
|
LEFT JOIN kc ON kc.res_rsv_ruimte_key = rrr.res_rsv_ruimte_key
|
|
LEFT JOIN prs_bedrijf b
|
|
ON fac.safe_to_number (kc.res_kenmerkreservering_waarde) =
|
|
b.prs_bedrijf_key
|
|
LEFT JOIN prs_relatietype rt
|
|
ON fac.safe_to_number (b.prs_relatietype_key) =
|
|
rt.prs_relatietype_key
|
|
LEFT JOIN res_rsv_ruimte rrv
|
|
ON rrv.res_rsv_ruimte_key = rrr.res_rsv_ruimte_key
|
|
LEFT JOIN prs_kostenplaats pk
|
|
ON pk.prs_kostenplaats_key = rrv.prs_kostenplaats_key
|
|
WHERE rrr.res_rsv_ruimte_van >= DATE '2017-01-01'
|
|
AND ( rrr.res_ruimte_opstel_key IS NOT NULL
|
|
OR voorz.res_rsv_ruimte_key IS NOT NULL);
|
|
|
|
------ 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
|