ZGTW#89613 Implementatie ZGT
svn path=/Customer/trunk/; revision=69894
This commit is contained in:
833
ZGTW/ZGTW.sql
833
ZGTW/ZGTW.sql
@@ -1,15 +1,9 @@
|
||||
--
|
||||
-- $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 = 'SAMPLE.SQL'
|
||||
DEFINE dbuser = 'UWVA'
|
||||
DEFINE thisfile = 'ZGTW.SQL'
|
||||
DEFINE dbuser = 'ZGTW'
|
||||
|
||||
SET ECHO ON
|
||||
SET DEFINE ON
|
||||
@@ -26,9 +20,828 @@ PROMPT &fcltcusttxt
|
||||
---------------------------------------
|
||||
SET DEFINE OFF
|
||||
|
||||
------ payload begin ------
|
||||
CREATE OR REPLACE PROCEDURE ZGTW_TEST.ZGTW_IMPORT_RESERVERINGEN (
|
||||
p_import_key IN NUMBER)
|
||||
AS
|
||||
BEGIN
|
||||
NULL;
|
||||
END;
|
||||
/
|
||||
|
||||
SELECT * FROM DUAL; -- het echte script
|
||||
CREATE OR REPLACE PROCEDURE ZGTW_TEST.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:SS.FF7 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:SS.FF7 TZH:TZM')
|
||||
AT LOCAL
|
||||
AS DATE),
|
||||
'DD/MM/YYYY HH24:MI:SS'),
|
||||
'DD/MM/YYYY HH24:MI:SS') AS res_einddatum
|
||||
FROM fac_imp_csv rec
|
||||
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;
|
||||
|
||||
v_res_kenmerk_key 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';
|
||||
|
||||
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_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_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),
|
||||
TO_NUMBER (NULL),
|
||||
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');
|
||||
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_TEST.ZGTW_IMPORT_CATERING (
|
||||
p_import_key IN NUMBER)
|
||||
AS
|
||||
BEGIN
|
||||
NULL;
|
||||
END;
|
||||
/
|
||||
|
||||
CREATE OR REPLACE PROCEDURE ZGTW_TEST.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)
|
||||
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);
|
||||
|
||||
------ payload end ------
|
||||
|
||||
|
||||
Reference in New Issue
Block a user