Files
Customer/WELK/welk.sql
Marcel Bourseau c8b1751ab4 WELK#19097: Nieuw rapport voor de bakker
svn path=/Customer/trunk/; revision=14482
2010-11-10 11:32:52 +00:00

300 lines
12 KiB
SQL

-- Script containing customer specific configuration sql statements for WELK
-- (c) 2010 SG|facilitor bv
-- $Revision: 9 $
-- $Modtime: 10-11-10 11:22 $
--
-- Support: +31 53 4800710
set echo on
spool welk.lst
-- Voorbeeld aanroep van webservice
-- http://dit03/facilitor5iwork/appl/fac/fac_usrrap_list.asp?standalone=1&key=23&session_customerId=WELK&session_user_key=3&sqlWhere=
-- http://welk-a.facilitor.nl/appl/fac/fac_usrrap_list.asp?standalone=1&key=41&session_customerId=WELK&session_user_key=3&sqlWhere=
--
-- Gebouw-key = 5 in onderstaande view om alle bezoekers van het hoofdkantoor in Heerenveen op te kunnen vragen
CREATE OR REPLACE VIEW welk_v_rapp_bezoekers_screen
AS
SELECT to_char(a.bez_afspraak_datum,'DD-MM-YYYY') bez_afspraak_datum,
to_char(a.bez_afspraak_datum,'YYYY-MM-DD') datum_yyyymmdd,
to_char(a.bez_afspraak_datum,'HH24:MI') starttijd,
a.bez_afspraak_key afspr_key,
b.bez_afspraak_naam,
b.bez_afspraak_bedrijf bez_bedrijf,
b.prs_contactpersoon_key,
p.prs_perslid_naam
|| CASE
WHEN p.prs_perslid_voorletters IS NULL THEN ''
ELSE ', ' || p.prs_perslid_voorletters
END
|| CASE
WHEN p.prs_perslid_tussenvoegsel IS NULL THEN ''
ELSE ' ' || p.prs_perslid_tussenvoegsel
END
|| CASE
WHEN p.prs_perslid_voornaam IS NULL THEN ''
ELSE ' (' || p.prs_perslid_voornaam || ')'
END
pers_naam,
a.bez_afspraak_gastheer gastheer,
COALESCE (a.bez_afspraak_telefoonnr,
p.prs_perslid_telefoonnr,
p.prs_perslid_mobiel
)
telf_nr,
a.bez_afspraak_ruimte ruimte,
a.bez_afspraak_opmerking,
a.bez_afspraak_eind,
to_char(a.bez_afspraak_eind,'HH24:MI') eindtijd,
t.bez_actie_omschrijving actie,
b.bez_bezoekers_done,
b.bez_bezoekers_out,
l.alg_locatie_omschrijving loc_omschr,
b.bez_bezoekers_key bez_key
FROM bez_afspraak a,
bez_bezoekers b,
bez_actie t,
prs_perslid p,
alg_locatie l,
alg_district d,
res_rsv_ruimte rrr,
res_ruimte_opstelling rro,
res_ruimte rr,
(SELECT alg_r.alg_ruimte_key alg_onroerendgoed_keys,
alg_r.alg_ruimte_key,
alg_r.alg_verdieping_key,
alg_v.alg_gebouw_key,
'R' alg_type
FROM alg_ruimte alg_r, alg_verdieping alg_v
WHERE alg_r.alg_verdieping_key = alg_v.alg_verdieping_key
UNION ALL
SELECT alg_v.alg_verdieping_key,
TO_NUMBER (NULL),
alg_v.alg_verdieping_key,
alg_v.alg_gebouw_key,
'V'
FROM alg_verdieping alg_v
UNION ALL
SELECT alg_g.alg_gebouw_key,
TO_NUMBER (NULL),
TO_NUMBER (NULL),
alg_g.alg_gebouw_key,
'G'
FROM alg_gebouw alg_g) og,
res_rsv_deel rd
WHERE a.bez_afspraak_key = b.bez_afspraak_key
AND l.alg_district_key = d.alg_district_key
AND t.bez_actie_key(+) = a.bez_actie_key
AND a.alg_locatie_key = l.alg_locatie_key
AND og.alg_onroerendgoed_keys(+) = a.alg_onrgoed_keys
AND b.bez_bezoekers_key = rd.bez_bezoekers_key(+)
AND p.prs_perslid_key = a.bez_afspraak_contact_key
AND a.res_rsv_ruimte_key = rrr.res_rsv_ruimte_key(+)
AND rrr.res_ruimte_opstel_key = rro.res_ruimte_opstel_key(+)
AND rro.res_ruimte_key = rr.res_ruimte_key(+)
AND a.bez_afspraak_datum BETWEEN TRUNC(SYSDATE) AND TRUNC(SYSDATE+1)
AND og.alg_gebouw_key = 5;
-- res_discipline_key 101 = Catalogus "Lunch"
-- res_discipline_key 281 = Catalogus "Bakker"
CREATE OR REPLACE VIEW welk_v_res_lunches_en_bakker
(fclt_f_datum, tijd, fclt_f_locatie, res_discipline_key, ruimte, voorziening, aantal, aanvrager, gastheer, afdeling, activiteit, bezoekers, omschrijving, opmerking)
AS SELECT
TO_CHAR(DATUM,'YYYY-MM-DD') DATUM,
TO_CHAR(DATUM,'HH24:MI') TIJD,
LOCATIE,
res_ins_discipline_key,
ALG_RUIMTE_AANDUIDING RUIMTE,
RES_VOORZIENING,
AANTAL,
AANVRAGER,
GASTHEER,
ORGANISATIE,
RES_ACTIVITEIT_OMSCHRIJVING,
BEZOEKERS,
OMSCHRIJVING,
OPMERKING
FROM (WITH theperslid
AS (SELECT prs_perslid_key,
prs_perslid_telefoonnr,
prs_afdeling_key,
p.prs_perslid_naam
|| CASE
WHEN p.prs_perslid_voorletters IS NULL THEN ''
ELSE ', ' || p.prs_perslid_voorletters
END
|| CASE
WHEN p.prs_perslid_tussenvoegsel IS NULL THEN ''
ELSE ' ' || p.prs_perslid_tussenvoegsel
END
|| CASE
WHEN p.prs_perslid_voornaam IS NULL THEN ''
ELSE ' (' || p.prs_perslid_voornaam || ')'
END
naam
FROM prs_perslid p),
theresrsv
AS (SELECT *
FROM res_rsv_ruimte
)
SELECT rrr.res_reservering_key,
ruimte_geg.alg_locatie_key,
l.alg_locatie_omschrijving locatie,
ruimte_geg.alg_gebouw_key,
ruimte_geg.alg_verdieping_key,
ruimte_geg.alg_ruimte_key,
COALESCE (opstelalg.res_ruimte_nr,
ruimte_geg.alg_ruimte_aanduiding
)
res_ruimte_nr,
ruimte_geg.alg_ruimte_aanduiding,
res_geg.res_voorziening,
NULL,
res_geg.res_reservering_van num_datum_tijd,
res_geg.res_reservering_van datum,
res_geg.res_reservering_van tijd,
res_geg.res_reservering_tot tot,
pcontact.naam aanvrager,
res_geg.res_ins_discipline_key,
res_rsv_ruimte_omschrijving omschrijving,
res_rsv_ruimte_opmerking opmerking,
res_geg.res_rsv_ruimte_key rsv_ruimte_key,
res_geg.res_item_key,
res_geg.res_status_bo_key res_status_bo_key,
res_geg.res_type categorie,
rrr.res_rsv_ruimte_bezoekers bezoekers,
phost.naam gastheer,
pcontact.prs_perslid_telefoonnr,
COALESCE ( (SELECT k.prs_kostenplaats_nr
FROM prs_kostenplaats k
WHERE rrr.prs_kostenplaats_key =
k.prs_kostenplaats_key),
''
)
kostenplaats,
res_geg.aantal aantal,
res_geg.rsv_ruimte_aantal,
res_geg.prijs verwerkt_prijs,
l.alg_district_key,
rrr.res_activiteit_key,
ra.res_activiteit_omschrijving,
ra.res_activiteit_upper,
res_geg.stuks_prijs stuks_prijs,
phost.prs_afdeling_key,
(SELECT d.prs_afdeling_naam2
FROM prs_v_afdeling d
WHERE phost.prs_afdeling_key = d.prs_afdeling_key)
organisatie,
artikelnummer,
rrr.res_rsv_ruimte_noshow noshow,
artikel_groep,
res_geg.rcv_type rcv_type,
res_geg.res_type res_type,
res_geg.keycolumn keycolumn,
rrr.res_rsv_ruimte_volgnr,
rrr.res_rsv_ruimte_key,
res_geg.res_ruimte_key
FROM (SELECT 'C' AS res_type,
'CV' AS rcv_type,
rra.res_rsv_ruimte_key,
(SELECT rro.res_ruimte_key
FROM res_ruimte_opstelling rro
WHERE rrr.res_ruimte_opstel_key =
rro.res_ruimte_opstel_key)
AS res_ruimte_key,
res_rsv_artikel_key AS res_item_key,
rra.res_rsv_artikel_levering AS res_reservering_van,
res_rsv_ruimte_tot AS res_reservering_tot,
rra.res_rsv_artikel_aantal AS aantal,
LTRIM (ra.res_artikel_omschrijving)
|| CASE
WHEN ra.res_artikel_eenheid IS NULL THEN ''
ELSE ' (' || ra.res_artikel_eenheid || ')'
END
AS res_voorziening,
NULL,
ra.res_discipline_key AS res_ins_discipline_key,
rra.res_status_bo_key,
ra.res_artikel_key AS res_artikel_key,
rra.res_rsv_artikel_prijs AS prijs,
ra.res_artikel_prijs AS stuks_prijs,
TO_NUMBER (NULL) AS rsv_ruimte_aantal,
ra.res_artikel_nr AS artikelnummer,
ra.res_artikel_groep AS artikel_groep,
rra.res_rsv_artikel_key keycolumn
FROM res_v_aanwezigrsv_artikel rra, theresrsv rrr, res_artikel ra
WHERE rra.res_rsv_ruimte_key = rrr.res_rsv_ruimte_key
AND rra.res_rsv_artikel_dirtlevel = 0
AND rra.res_artikel_key = ra.res_artikel_key
AND ra.res_discipline_key IN (101, 281)) res_geg,
res_rsv_ruimte rrr,
res_activiteit ra,
theperslid phost,
theperslid pcontact,
alg_v_ruimte_gegevens ruimte_geg,
(SELECT res_ruimte_opstel_key,
res_ruimte_nr,
MIN (alg_ruimte_key) alg_ruimte_key
FROM res_ruimte_opstelling rro, res_alg_ruimte rar, res_ruimte rr
WHERE rro.res_ruimte_key = rar.res_ruimte_key
AND rr.res_ruimte_key = rar.res_ruimte_key
AND rar.res_alg_ruimte_verwijder IS NULL
GROUP BY res_ruimte_opstel_key, res_ruimte_nr) opstelalg,
alg_locatie l,
alg_district di,
prs_kostenplaats k
WHERE res_geg.res_rsv_ruimte_key = rrr.res_rsv_ruimte_key
AND rrr.res_rsv_ruimte_verwijder IS NULL
AND rrr.res_activiteit_key = ra.res_activiteit_key
AND res_rsv_ruimte_host_key = phost.prs_perslid_key
AND res_rsv_ruimte_contact_key = pcontact.prs_perslid_key
AND rrr.res_ruimte_opstel_key = opstelalg.res_ruimte_opstel_key(+)
AND rrr.prs_kostenplaats_key = k.prs_kostenplaats_key(+)
AND ruimte_geg.alg_ruimte_key =
COALESCE (rrr.alg_ruimte_key, opstelalg.alg_ruimte_key)
AND l.alg_locatie_key = ruimte_geg.alg_locatie_key
AND l.alg_district_key = di.alg_district_key
AND res_geg.res_status_bo_key < 5);
CREATE OR REPLACE VIEW welk_v_rapp_lunches
(fclt_f_datum, tijd, fclt_f_locatie, ruimte, voorziening, aantal, aanvrager, gastheer, afdeling, activiteit, bezoekers, omschrijving, opmerking)
AS SELECT fclt_f_datum, tijd, fclt_f_locatie, ruimte, voorziening, aantal, aanvrager, gastheer, afdeling, activiteit, bezoekers, omschrijving, opmerking
FROM welk_v_res_lunches_en_bakker
WHERE res_discipline_key = 101;
CREATE OR REPLACE VIEW welk_v_rap_lunches_overmorgen
(datum, tijd, fclt_f_locatie, ruimte, voorziening, aantal, aanvrager, gastheer, afdeling, activiteit)
AS
SELECT fclt_f_datum, tijd, fclt_f_locatie, ruimte, voorziening, aantal, aanvrager, gastheer, afdeling, activiteit
FROM welk_v_rapp_lunches
WHERE TO_DATE (fclt_f_datum, 'YYYY-MM-DD') = TRUNC(SYSDATE+2);
-- Bakker
CREATE OR REPLACE VIEW welk_v_rapp_bakker
(fclt_f_datum, tijd, fclt_f_locatie, ruimte, voorziening, aantal, aanvrager, gastheer, afdeling, activiteit, bezoekers, omschrijving, opmerking)
AS SELECT fclt_f_datum, tijd, fclt_f_locatie, ruimte, voorziening, aantal, aanvrager, gastheer, afdeling, activiteit, bezoekers, omschrijving, opmerking
FROM welk_v_res_lunches_en_bakker
WHERE res_discipline_key = 281;
CREATE OR REPLACE VIEW welk_v_rap_bakker_overmorgen
(datum, tijd, fclt_f_locatie, ruimte, voorziening, aantal, aanvrager, gastheer, afdeling, activiteit)
AS
SELECT fclt_f_datum, tijd, fclt_f_locatie, ruimte, voorziening, aantal, aanvrager, gastheer, afdeling, activiteit
FROM welk_v_rapp_bakker
WHERE TO_DATE (fclt_f_datum, 'YYYY-MM-DD') = TRUNC(SYSDATE+2);
BEGIN adm.systrackscript('$Workfile: welk.sql $', '$Revision: 9 $', 0); END;
/
COMMIT;
spool off