/* 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