354 lines
14 KiB
SQL
354 lines
14 KiB
SQL
/* Formatted on 4/3/2019 09:50:03 (QP5 v5.336) */
|
|
--
|
|
-- $Id$
|
|
--
|
|
-- Script containing customer specific sql statements for the FACILITOR database
|
|
|
|
DEFINE thisfile = 'SCBR.SQL'
|
|
DEFINE dbuser = '^SCBR'
|
|
|
|
SET ECHO ON
|
|
SET DEFINE ON
|
|
COLUMN fcltlogfile NEW_VALUE fcltlogfile NOPRINT;
|
|
WHENEVER SQLERROR EXIT;
|
|
|
|
SELECT adm.scriptspoolfile ('&dbuser', '&thisfile') AS fcltlogfile FROM DUAL;
|
|
|
|
WHENEVER SQLERROR CONTINUE;
|
|
SPOOL &fcltlogfile
|
|
SET DEFINE OFF
|
|
|
|
------ payload begin ------
|
|
|
|
CREATE OR REPLACE VIEW SCBR_V_RAP_DAGOVERZICHT
|
|
(
|
|
SORT,
|
|
NUMMER,
|
|
GASTHEER,
|
|
CONTACT,
|
|
VAN,
|
|
TOT,
|
|
DUUR,
|
|
ACTIVITEIT,
|
|
ACTIVITEITSOORT,
|
|
VOORZIENING_CATALOGUS,
|
|
VOORZIENING_PRODUCT,
|
|
PARAAF
|
|
)
|
|
AS
|
|
SELECT rrr.res_rsv_ruimte_van,
|
|
res.res_reservering_key || '/' || rrr.res_rsv_ruimte_volgnr,
|
|
(SELECT prs_perslid_naam_full
|
|
FROM prs_v_perslid_fullnames_all pf
|
|
WHERE pf.prs_perslid_key = rrr.res_rsv_ruimte_host_key),
|
|
(SELECT prs_perslid_naam_full
|
|
FROM prs_v_perslid_fullnames_all pf
|
|
WHERE pf.prs_perslid_key = rrr.res_rsv_ruimte_contact_key),
|
|
rrr.res_rsv_ruimte_van,
|
|
rrr.res_rsv_ruimte_tot,
|
|
COALESCE ((rrr.res_rsv_ruimte_tot - rrr.res_rsv_ruimte_van) * 24,
|
|
0),
|
|
ra.res_activiteit_omschrijving,
|
|
rsa.res_srtactiviteit_omschrijving,
|
|
voorz.catalogus,
|
|
voorz.product,
|
|
''
|
|
FROM res_v_aanwezigrsv_ruimte rrr,
|
|
res_activiteit ra,
|
|
res_srtactiviteit rsa,
|
|
res_reservering res,
|
|
prs_perslid p,
|
|
prs_afdeling a,
|
|
(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,
|
|
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,
|
|
c.ins_discipline_key
|
|
ins_discipline_key,
|
|
c.ins_discipline_omschrijving
|
|
catalogus,
|
|
'object'
|
|
vtype
|
|
FROM res_v_aanwezigrsv_deel rrd,
|
|
res_deel rd,
|
|
ins_deel d,
|
|
ins_tab_discipline c
|
|
WHERE rrd.res_deel_key = rd.res_deel_key
|
|
AND d.ins_deel_key = rd.res_ins_deel_key
|
|
AND rrd.res_rsv_ruimte_key IS NOT NULL
|
|
AND c.ins_discipline_key = rd.res_discipline_key) voorz
|
|
WHERE rrr.res_reservering_key = res.res_reservering_key
|
|
AND rrr.res_rsv_ruimte_key = voorz.res_rsv_ruimte_key
|
|
AND rrr.res_activiteit_key = ra.res_activiteit_key
|
|
AND ra.res_srtactiviteit_key = rsa.res_srtactiviteit_key
|
|
AND rrr.res_rsv_ruimte_host_key = p.prs_perslid_key
|
|
AND p.prs_afdeling_key = a.prs_afdeling_key
|
|
AND rsa.res_srtactiviteit_key = 2
|
|
AND rrr.res_rsv_ruimte_van >= TO_DATE ('01-01-2010', 'DD-MM-YYYY')
|
|
ORDER BY rrr.res_rsv_ruimte_van;
|
|
|
|
|
|
CREATE OR REPLACE VIEW SCBR_V_RAP_SLEUTELUITGIFTE
|
|
(
|
|
MEDEWERKER,
|
|
MEDEWERKER_TELNR,
|
|
MEDEWERKER_PERSNR,
|
|
AFDELING,
|
|
LEIDINGGEVENDE,
|
|
LEIDINGGEVENDE_TELNR,
|
|
SLEUTEL,
|
|
CILINDER,
|
|
RUIMTE
|
|
)
|
|
AS
|
|
SELECT prs_perslid_naam_full,
|
|
COALESCE (p.prs_perslid_mobiel, p.prs_perslid_telefoonnr)
|
|
telnr,
|
|
p.prs_perslid_nr,
|
|
a.prs_afdeling_omschrijving,
|
|
leidinggev.leidinggev
|
|
leidinggevende,
|
|
leidinggev.leidinggev_telnr,
|
|
sleutel,
|
|
LISTAGG (cilinder, ', ') WITHIN GROUP (ORDER BY cilinder)
|
|
AS cilinder,
|
|
LISTAGG (plaats, ', ') WITHIN GROUP (ORDER BY plaats)
|
|
AS plaats
|
|
FROM (SELECT l.alg_locatie_key,
|
|
pf.prs_perslid_key,
|
|
pf.prs_perslid_naam_full,
|
|
cil.ins_deel_omschrijving cilinder,
|
|
s.ins_srtdeel_code sleutelset_code,
|
|
s.ins_srtdeel_omschrijving sleutelset_oms,
|
|
sle.ins_deel_omschrijving sleutel,
|
|
l.alg_locatie_code, -- Locatie ruimte-cilinder (deur of bureau)!
|
|
DECODE (
|
|
cil.ins_alg_ruimte_key_org,
|
|
NULL, -- Als op (stam)bureau,..
|
|
NULL, -- ..dan nergens toegang!
|
|
l.alg_locatie_code
|
|
|| '-'
|
|
|| aog.alg_gebouw_code
|
|
|| '-'
|
|
|| aog.alg_verdieping_code
|
|
|| '-'
|
|
|| aog.alg_ruimte_nr) plaats
|
|
FROM ins_srtdeel_srtdeel iss,
|
|
ins_srtdeel c,
|
|
ins_v_aanwezigdeel cil,
|
|
alg_v_allonrgoed_gegevens aog,
|
|
alg_locatie l,
|
|
ins_srtdeel s,
|
|
ins_v_aanwezigdeel sle,
|
|
prs_v_perslid_fullnames_all pf
|
|
WHERE iss.ins_module = 'SLE'
|
|
AND iss.ins_srtdeel_key_1 = c.ins_srtdeel_key
|
|
AND c.ins_srtdeel_key = cil.ins_srtdeel_key
|
|
AND cil.ins_alg_ruimte_type = 'R' -- Ingenomen of uitgegeven!
|
|
AND cil.ins_alg_ruimte_key = aog.alg_onroerendgoed_keys
|
|
AND aog.alg_locatie_key = l.alg_locatie_key
|
|
AND iss.ins_srtdeel_key_2 = s.ins_srtdeel_key
|
|
AND s.ins_srtdeel_key = sle.ins_srtdeel_key
|
|
AND sle.ins_alg_ruimte_type = 'P'
|
|
AND sle.ins_alg_ruimte_key = pf.prs_perslid_key)
|
|
sle_uitgifte,
|
|
prs_perslid p,
|
|
prs_afdeling a,
|
|
(SELECT a.prs_afdeling_key,
|
|
a.prs_afdeling_omschrijving afdeling,
|
|
lg.prs_perslid_naam_friendly leidinggev,
|
|
COALESCE (p.prs_perslid_mobiel, p.prs_perslid_telefoonnr) leidinggev_telnr
|
|
FROM prs_kenmerklink kl,
|
|
prs_v_perslid_fullnames_all lg,
|
|
prs_perslid p,
|
|
prs_afdeling a,
|
|
prs_kenmerk k
|
|
WHERE kl.prs_kenmerklink_waarde = lg.prs_perslid_key
|
|
AND a.prs_afdeling_key = kl.prs_link_key
|
|
AND lg.prs_perslid_key = p.prs_perslid_key
|
|
AND kl.prs_kenmerk_key = k.prs_kenmerk_key
|
|
AND k.prs_kenmerk_upper = 'LEIDINGGEVENDE') leidinggev
|
|
WHERE sle_uitgifte.prs_perslid_key = p.prs_perslid_key
|
|
AND p.prs_afdeling_key = a.prs_afdeling_key
|
|
AND a.prs_afdeling_key = leidinggev.prs_afdeling_key(+)
|
|
GROUP BY prs_perslid_naam_full,
|
|
p.prs_perslid_nr,
|
|
a.prs_afdeling_omschrijving,
|
|
leidinggev.leidinggev,
|
|
leidinggev.leidinggev_telnr,
|
|
COALESCE (p.prs_perslid_mobiel, p.prs_perslid_telefoonnr),
|
|
sleutel;
|
|
|
|
CREATE OR REPLACE VIEW SCBR_V_RAP_BESTELLINGEN
|
|
(
|
|
CATALOGUS,
|
|
KOSTENSOORT,
|
|
KOSTENPLAATS,
|
|
BUDGETHOUDER,
|
|
BESTELOPDRACHT,
|
|
BESTEL_DATUM,
|
|
BESTEL_STATUS,
|
|
BESTELLER,
|
|
ARTIKEL,
|
|
ARTIKEL_PRIJS,
|
|
AANTAL,
|
|
REGEL_TOTAAL
|
|
)
|
|
AS
|
|
SELECT d.ins_discipline_omschrijving
|
|
catalogus,
|
|
(SELECT ks.prs_kostensoort_oms
|
|
FROM prs_kostensoort ks
|
|
WHERE ks.prs_kostensoort_key =
|
|
(SELECT MAX (
|
|
COALESCE (bsg.prs_kostensoort_key,
|
|
disc.prs_kostensoort_key))
|
|
FROM bes_discipline disc, bes_srtgroep bsg
|
|
WHERE disc.ins_discipline_key =
|
|
bsg.ins_discipline_key
|
|
AND disc.ins_discipline_key = d.ins_discipline_key))
|
|
kostensoort,
|
|
kp.prs_kostenplaats_nr,
|
|
kp.budgethouder,
|
|
bo.bes_bestelopdr_id,
|
|
bo.bes_bestelopdr_datum,
|
|
stat.bes_bestelopdrstatuses_omschr,
|
|
pn.prs_perslid_naam_friendly
|
|
besteller,
|
|
boi.bes_bestelopdr_item_omschrijv,
|
|
COALESCE (boi.bes_bestelopdr_item_prijs, 0),
|
|
boi.bes_bestelopdr_item_aantalontv,
|
|
COALESCE (
|
|
boi.bes_bestelopdr_item_prijs
|
|
* boi.bes_bestelopdr_item_aantalontv,
|
|
0)
|
|
AS totaal_bedrag
|
|
FROM bes_bestelopdr bo,
|
|
bes_bestelopdr_item boi,
|
|
bes_bestelopdrstatuses stat,
|
|
prs_v_perslid_fullnames_all pn,
|
|
prs_perslid p,
|
|
prs_afdeling a,
|
|
bes_bestelling b,
|
|
bes_bestelling_item bi,
|
|
bes_srtdeel sd,
|
|
bes_srtgroep sg,
|
|
ins_tab_discipline d,
|
|
(SELECT kp.prs_kostenplaats_key,
|
|
kp.prs_kostenplaats_nr,
|
|
bh.prs_perslid_naam_friendly budgethouder
|
|
FROM prs_kostenplaats kp, prs_v_perslid_fullnames_all bh
|
|
WHERE kp.prs_perslid_key = bh.prs_perslid_key(+)) kp
|
|
WHERE bo.bes_bestelopdr_key = boi.bes_bestelopdr_key
|
|
AND stat.bes_bestelopdrstatuses_key = bo.bes_bestelopdr_status
|
|
AND bo.prs_perslid_key = pn.prs_perslid_key
|
|
AND bo.prs_perslid_key = p.prs_perslid_key
|
|
AND p.prs_afdeling_key = a.prs_afdeling_key
|
|
AND a.prs_kostenplaats_key = kp.prs_kostenplaats_key
|
|
AND b.bes_bestelling_key = bi.bes_bestelling_key
|
|
AND bi.bes_bestelopdr_item_key = boi.bes_bestelopdr_item_key(+)
|
|
AND boi.bes_bestelopdr_key = bo.bes_bestelopdr_key(+)
|
|
AND bi.bes_srtdeel_key = sd.bes_srtdeel_key
|
|
AND sd.bes_srtgroep_key = sg.bes_srtgroep_key
|
|
AND sg.ins_discipline_key = d.ins_discipline_key
|
|
ORDER BY d.ins_discipline_omschrijving,
|
|
(SELECT ks.prs_kostensoort_oms
|
|
FROM prs_kostensoort ks
|
|
WHERE ks.prs_kostensoort_key =
|
|
(SELECT MAX (
|
|
COALESCE (bsg.prs_kostensoort_key,
|
|
disc.prs_kostensoort_key))
|
|
FROM bes_discipline disc, bes_srtgroep bsg
|
|
WHERE disc.ins_discipline_key =
|
|
bsg.ins_discipline_key
|
|
AND disc.ins_discipline_key =
|
|
d.ins_discipline_key)),
|
|
kp.prs_kostenplaats_nr,
|
|
bo.bes_bestelopdr_id;
|
|
|
|
CREATE OR REPLACE PACKAGE SCBR
|
|
AS
|
|
PROCEDURE bes_after_insert (p_bes_bestelling_key IN NUMBER);
|
|
END;
|
|
/
|
|
|
|
CREATE OR REPLACE PACKAGE BODY SCBR
|
|
AS
|
|
PROCEDURE bes_after_insert (p_bes_bestelling_key IN NUMBER)
|
|
IS
|
|
v_count NUMBER;
|
|
v_kostenplaats NUMBER;
|
|
BEGIN
|
|
-- STAP 1: kostenplaats bepalen adhv de gekozen projectcode
|
|
SELECT COUNT (kpl.prs_kostenplaats_key)
|
|
INTO v_count
|
|
FROM bes_bestelling bs,
|
|
bes_kenmerkbestell km,
|
|
fac_usrdata ud,
|
|
fac_usrtab ut,
|
|
prs_kostenplaats kpl
|
|
WHERE bs.bes_bestelling_key = p_bes_bestelling_key
|
|
AND km.bes_bestelling_key = bs.bes_bestelling_key
|
|
AND km.bes_kenmerkbestell_waarde = ud.fac_usrdata_key
|
|
AND ud.fac_usrtab_key = ut.fac_usrtab_key
|
|
AND ud.fac_usrdata_prijs = kpl.prs_kostenplaats_nr;
|
|
|
|
--- Stap 2: als 1 kostenplaats gevonden kon worden, dan deze opnemen bij de bestelling
|
|
IF v_count = 1
|
|
THEN
|
|
SELECT kpl.prs_kostenplaats_key
|
|
INTO v_kostenplaats
|
|
FROM bes_bestelling bs,
|
|
bes_kenmerkbestell km,
|
|
fac_usrdata ud,
|
|
fac_usrtab ut,
|
|
prs_kostenplaats kpl
|
|
WHERE bs.bes_bestelling_key = p_bes_bestelling_key
|
|
AND km.bes_bestelling_key = bs.bes_bestelling_key
|
|
AND km.bes_kenmerkbestell_waarde = ud.fac_usrdata_key
|
|
AND ud.fac_usrtab_key = ut.fac_usrtab_key
|
|
AND ud.fac_usrdata_prijs = kpl.prs_kostenplaats_nr;
|
|
|
|
UPDATE bes_bestelling b
|
|
SET b.prs_kostenplaats_key = v_kostenplaats
|
|
WHERE b.bes_bestelling_key = p_bes_bestelling_key;
|
|
END IF;
|
|
|
|
COMMIT;
|
|
END;
|
|
|
|
END SCBR;
|
|
/
|
|
------ 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 |