Files
Customer/SCBR/SCBR.sql
Suzan Wiegerinck 508fbc4e5e SCBR#62668 Groveko assortiment in Facilitor
svn path=/Customer/trunk/; revision=47061
2020-06-08 09:08:23 +00:00

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