Files
Customer/HPJI/hpji.sql
Suzan Wiegerinck 60dbe30603 HPJI#55445 alternatieve login personenimport
svn path=/Customer/trunk/; revision=40153
2018-12-10 11:59:56 +00:00

2141 lines
87 KiB
SQL
Raw Blame History

--
-- $Id$
--
-- Script containing customer specific sql statements for the FACILITOR database
DEFINE thisfile = 'HPJI.SQL'
DEFINE dbuser = '^HPJI'
DEFINE custid = 'HPJI'
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
CREATE OR REPLACE PACKAGE HPJI
AS
-- PACKAGES voor de HPJI specifieke ondersteuning
TYPE t_cursor IS REF CURSOR;
PROCEDURE rap_it_inventaris_jaar (user_key IN NUMBER,
p_datum_van IN VARCHAR2,
p_datum_tot IN VARCHAR2,
p_cursor OUT t_cursor);
END;
/
CREATE OR REPLACE PACKAGE BODY HPJI
AS
PROCEDURE rap_it_inventaris_jaar (user_key IN NUMBER,
p_datum_van IN VARCHAR2, -- Let wel: formaat '24-06-1965'
p_datum_tot IN VARCHAR2,
p_cursor OUT t_cursor)
AS
v_datum_van DATE;
v_datum_tot DATE;
BEGIN
v_datum_van := fac.safe_to_date (p_datum_van, 'dd-mm-yyyy');
v_datum_tot := fac.safe_to_date (p_datum_tot, 'dd-mm-yyyy');
OPEN p_cursor FOR
SELECT grid.onderdeel || '-' || grid.rubriek hide_f_regel,
grid.onderdeel fclt_f_onderdeel,
grid.rubriek fclt_f_rubriek,
grid.jaar fclt_f_aanschafjaar,
COALESCE (x.aantal, 0) aantal
FROM (SELECT a.prs_afdeling_key onderdeel_key,
sd.ins_srtdeel_key rubriek_key,
j.jaar jaar,
a.prs_afdeling_omschrijving onderdeel,
sd.ins_srtdeel_omschrijving rubriek
FROM (SELECT prs_afdeling_key,
prs_afdeling_omschrijving
FROM prs_v_aanwezigafdeling
WHERE prs_afdeling_parentkey IS NULL
UNION ALL
SELECT -1 prs_afdeling_key,
'Onbekend' prs_afdeling_omschrijving
FROM DUAL) a,
ins_v_aanwezigsrtdeel sd,
ins_v_aanwezigsrtgroep sg,
(SELECT DISTINCT
TO_CHAR (
fac.safe_to_date (
ins_kenmerkdeel_waarde,
'dd-mm-yyyy'),
'yyyy')
jaar
FROM ins_v_aanwezigkenmerkdeel
WHERE ins_kenmerk_key = 101 -- Aanschafdatum
AND fac.safe_to_date (
ins_kenmerkdeel_waarde,
'dd-mm-yyyy') BETWEEN v_datum_van
AND v_datum_tot)
j
WHERE sd.ins_srtgroep_key = sg.ins_srtgroep_key
AND sg.ins_discipline_key = 401) grid -- Hardware
LEFT JOIN
( SELECT asd.prs_afdeling_key1 onderdeel_key,
asd.ins_srtdeel_key rubriek_key,
j.jaar jaar,
COUNT ( * ) aantal
FROM (SELECT DECODE (ra.aantal,
1, ab.prs_afdeling_key1,
-1)
prs_afdeling_key1,
d.ins_srtdeel_key,
d.ins_deel_key
FROM ins_v_aanwezigdeel d,
alg_v_allonrgoed_gegevens aog,
( SELECT alg_ruimte_key,
MAX (prs_afdeling_key)
prs_afdeling_key,
COUNT ( * ) aantal
FROM prs_ruimteafdeling
GROUP BY alg_ruimte_key) ra,
prs_v_afdeling_boom ab
WHERE d.ins_alg_ruimte_type NOT IN
('A', 'P', 'W')
AND d.ins_alg_ruimte_key =
aog.alg_onroerendgoed_keys
AND aog.alg_ruimte_key =
ra.alg_ruimte_key
AND ra.prs_afdeling_key =
ab.prs_afdeling_key
UNION ALL
SELECT -1 prs_afdeling_key1,
d.ins_srtdeel_key,
d.ins_deel_key
FROM ins_v_aanwezigdeel d,
alg_v_allonrgoed_gegevens aog
WHERE d.ins_alg_ruimte_type NOT IN
('A', 'P', 'W')
AND d.ins_alg_ruimte_key =
aog.alg_onroerendgoed_keys
AND (aog.alg_ruimte_key IS NULL
OR NOT EXISTS
(SELECT 1
FROM prs_ruimteafdeling ra
WHERE ra.alg_ruimte_key =
aog.alg_ruimte_key))
UNION ALL
SELECT ab.prs_afdeling_key1,
d.ins_srtdeel_key,
d.ins_deel_key
FROM ins_v_aanwezigdeel d,
prs_v_afdeling_boom ab
WHERE d.ins_alg_ruimte_type = 'A'
AND d.ins_alg_ruimte_key =
ab.prs_afdeling_key
UNION ALL
SELECT ab.prs_afdeling_key1,
d.ins_srtdeel_key,
d.ins_deel_key
FROM ins_v_aanwezigdeel d,
prs_perslid p,
prs_v_afdeling_boom ab
WHERE d.ins_alg_ruimte_type = 'P'
AND d.ins_alg_ruimte_key =
p.prs_perslid_key
AND p.prs_afdeling_key =
ab.prs_afdeling_key
UNION ALL
SELECT DECODE (ra.aantal,
1, ab.prs_afdeling_key1,
-1)
prs_afdeling_key1,
d.ins_srtdeel_key,
d.ins_deel_key
FROM ins_v_aanwezigdeel d,
prs_werkplek w,
( SELECT alg_ruimte_key,
MAX (prs_afdeling_key)
prs_afdeling_key,
COUNT ( * ) aantal
FROM prs_ruimteafdeling
GROUP BY alg_ruimte_key) ra,
prs_v_afdeling_boom ab
WHERE d.ins_alg_ruimte_type = 'W'
AND d.ins_alg_ruimte_key =
w.prs_werkplek_key
AND w.prs_alg_ruimte_key =
ra.alg_ruimte_key
AND ra.prs_afdeling_key =
ab.prs_afdeling_key
UNION ALL
SELECT -1 prs_afdeling_key1,
d.ins_srtdeel_key,
d.ins_deel_key
FROM ins_v_aanwezigdeel d, prs_werkplek w
WHERE d.ins_alg_ruimte_type = 'W'
AND d.ins_alg_ruimte_key =
w.prs_werkplek_key
AND NOT EXISTS
(SELECT 1
FROM prs_ruimteafdeling ra
WHERE ra.alg_ruimte_key =
w.prs_alg_ruimte_key))
asd
LEFT JOIN
(SELECT ins_deel_key,
fac.safe_to_date (
ins_kenmerkdeel_waarde,
'dd-mm-yyyy')
datum,
TO_CHAR (
fac.safe_to_date (
ins_kenmerkdeel_waarde,
'dd-mm-yyyy'),
'yyyy')
jaar
FROM ins_v_aanwezigkenmerkdeel
WHERE ins_kenmerk_key = 101) j -- Aanschafdatum
ON asd.ins_deel_key = j.ins_deel_key
WHERE j.datum BETWEEN v_datum_van AND v_datum_tot
GROUP BY asd.prs_afdeling_key1,
asd.ins_srtdeel_key,
j.jaar) x
ON grid.onderdeel_key = x.onderdeel_key
AND grid.rubriek_key = x.rubriek_key
AND grid.jaar = x.jaar
ORDER BY 1,
2,
3,
4;
END rap_it_inventaris_jaar;
END;
/
CREATE OR REPLACE VIEW hpji_v_import_log
AS
SELECT imp_log_status fclt_f_status,
imp_log_omschrijving omschrijving,
imp_log_hint opmerking
FROM imp_log l
WHERE l.fac_import_key = (SELECT MAX (fac_import_key)
FROM fac_import
WHERE fac_import_app_key = 41);
CREATE OR REPLACE VIEW hpji_v_ruimtekaartjes
(
fclt_f_opmaak,
fclt_f_loc_code,
fclt_f_geb_code,
fclt_f_ver_code,
fclt_f_ruimte_nr,
hide_f_ruimte_key,
ruimtesoort,
opp,
titel,
naam,
tussenvoegsel,
voorletters,
voornaam,
functie,
aantal
)
AS
(SELECT e.opmaak,
a.alg_locatie_code,
a.alg_gebouw_code,
a.alg_verdieping_code,
a.alg_ruimte_nr,
TO_CHAR (a.alg_ruimte_key) || e.opmaak,
b.ruimtesoort,
a.opp,
c.prs_perslid_titel,
c.prs_perslid_naam,
c.prs_perslid_tussenvoegsel,
c.prs_perslid_voorletters,
c.prs_perslid_voornaam,
c.prs_srtperslid_omschrijving,
d.aantal
FROM (SELECT r.alg_ruimte_key,
r.alg_ruimte_nr,
v.alg_verdieping_code,
g.alg_gebouw_code,
l.alg_locatie_code,
d.alg_district_omschrijving,
r.alg_ruimte_bruto_vloeropp opp
FROM alg_v_aanwezigruimte r,
alg_verdieping v,
alg_gebouw g,
alg_locatie l,
alg_district d
WHERE r.alg_verdieping_key = v.alg_verdieping_key
AND v.alg_gebouw_key = g.alg_gebouw_key
AND g.alg_locatie_key = l.alg_locatie_key
AND l.alg_district_key = d.alg_district_key) a
LEFT JOIN
(SELECT r.alg_ruimte_key,
COALESCE (sr.alg_srtruimte_omschrijving, '-')
ruimtesoort
FROM alg_v_aanwezigruimte r, alg_srtruimte sr
WHERE r.alg_srtruimte_key = sr.alg_srtruimte_key) b
ON a.alg_ruimte_key = b.alg_ruimte_key
LEFT JOIN -- personen op ruimte
(SELECT DISTINCT wp.prs_alg_ruimte_key,
p.prs_perslid_titel,
p.prs_perslid_naam,
p.prs_perslid_voorletters,
p.prs_perslid_tussenvoegsel,
p.prs_perslid_voornaam,
sp.prs_srtperslid_omschrijving
FROM prs_werkplek wp,
prs_perslidwerkplek pw,
prs_v_aanwezigperslid p,
prs_srtperslid sp
WHERE wp.prs_werkplek_key = pw.prs_werkplek_key
AND pw.prs_perslid_key = p.prs_perslid_key
AND p.prs_srtperslid_key = sp.prs_srtperslid_key) c
ON a.alg_ruimte_key = c.prs_alg_ruimte_key
LEFT JOIN -- aantal personen op ruimte
( SELECT wp.prs_alg_ruimte_key,
COUNT (pw.prs_perslid_key) aantal
FROM prs_werkplek wp, prs_perslidwerkplek pw
WHERE wp.prs_werkplek_key = pw.prs_werkplek_key
GROUP BY wp.prs_alg_ruimte_key) d
ON a.alg_ruimte_key = d.prs_alg_ruimte_key,
(SELECT 'Wilster' opmaak FROM DUAL
UNION ALL
SELECT 'Portalis' opmaak FROM DUAL
UNION ALL
SELECT 'Juvaid' opmaak FROM DUAL
UNION ALL
SELECT 'Het Poortje' opmaak FROM DUAL
UNION ALL
SELECT 'DOK3' opmaak FROM DUAL) e);
CREATE OR REPLACE VIEW hpji_v_ruimtekaartjes2
(
fclt_f_opmaak,
fclt_f_loc_code,
fclt_f_geb_code,
fclt_f_ver_code,
fclt_f_ruimte_nr,
hide_f_ruimte_key,
ruimtesoort
)
AS
SELECT DISTINCT fclt_f_opmaak,
fclt_f_loc_code,
fclt_f_geb_code,
fclt_f_ver_code,
fclt_f_ruimte_nr,
hide_f_ruimte_key,
ruimtesoort
FROM hpji_v_ruimtekaartjes
/
CREATE OR REPLACE VIEW hpji_v_label_ruimteafd (alg_ruimte_key, waarde)
AS
SELECT DISTINCT ra.alg_ruimte_key, a.prs_afdeling_naam1
FROM prs_v_aanwezigruimteafdeling ra, prs_v_aanwezigafdeling a
WHERE ra.prs_afdeling_key = a.prs_afdeling_key
UNION
SELECT DISTINCT r.alg_ruimte_key, '[Onbekend]' -- ruimten zonder afd.
FROM alg_v_aanwezigruimte r
WHERE NOT EXISTS ( -- waar geen afd. binnen bestaat
SELECT ra.alg_ruimte_key
FROM prs_v_aanwezigruimteafdeling ra
WHERE ra.alg_ruimte_key = r.alg_ruimte_key)
/
CREATE OR REPLACE VIEW hpji_v_label_ruimteafd_nr (alg_ruimte_key, waarde)
AS
SELECT DISTINCT ra.alg_ruimte_key, a.prs_afdeling_naam
FROM prs_v_aanwezigruimteafdeling ra, prs_v_aanwezigafdeling a
WHERE ra.prs_afdeling_key = a.prs_afdeling_key
UNION
SELECT DISTINCT r.alg_ruimte_key, '[Onbekend]' -- ruimten zonder afd.
FROM alg_v_aanwezigruimte r
WHERE NOT EXISTS ( -- waar geen afd. binnen bestaat
SELECT ra.alg_ruimte_key
FROM prs_v_aanwezigruimteafdeling ra
WHERE ra.alg_ruimte_key = r.alg_ruimte_key)
/
CREATE OR REPLACE VIEW hpji_v_label_ruimteafd_oms (alg_ruimte_key, waarde)
AS
SELECT DISTINCT ra.alg_ruimte_key, a.prs_afdeling_omschrijving
FROM prs_v_aanwezigruimteafdeling ra, prs_v_aanwezigafdeling a
WHERE ra.prs_afdeling_key = a.prs_afdeling_key
UNION
SELECT DISTINCT r.alg_ruimte_key, '[Onbekend]' -- ruimten zonder afd.
FROM alg_v_aanwezigruimte r
WHERE NOT EXISTS ( -- waar geen afd. binnen bestaat
SELECT ra.alg_ruimte_key
FROM prs_v_aanwezigruimteafdeling ra
WHERE ra.alg_ruimte_key = r.alg_ruimte_key)
/
CREATE OR REPLACE FORCE VIEW hpji_v_thema_ruimteafd
(
alg_ruimte_key,
waarde,
waarde_key
)
AS
SELECT x.alg_ruimte_key,
DECODE (y.aantal,
NULL, '[Onbekend]',
1, SUBSTR (y.afd, 1, 60),
'Meer dan 1 afdeling!'),
DECODE (y.aantal, NULL, -1, 1, y.afd_key, NULL)
FROM (SELECT r.alg_ruimte_key
FROM alg_v_aanwezigruimte r) x
LEFT JOIN
( SELECT ra.alg_ruimte_key,
MIN (a.prs_afdeling_naam1) afd,
MIN (a.prs_afdeling_key) afd_key,
COUNT (ra.prs_afdeling_key) aantal
FROM prs_v_aanwezigruimteafdeling ra,
prs_v_aanwezigafdeling a
WHERE ra.prs_afdeling_key = a.prs_afdeling_key
GROUP BY ra.alg_ruimte_key) y
ON x.alg_ruimte_key = y.alg_ruimte_key
UNION ALL
SELECT NULL, a.prs_afdeling_naam1, a.prs_afdeling_key
FROM prs_v_aanwezigafdeling a
WHERE NOT EXISTS (SELECT ra.prs_afdeling_key
FROM prs_v_aanwezigruimteafdeling ra
WHERE ra.prs_afdeling_key = a.prs_afdeling_key)
/
CREATE OR REPLACE TRIGGER hpji_t_thema_ruimteafd_i_iu
INSTEAD OF INSERT OR UPDATE
ON hpji_v_thema_ruimteafd
BEGIN
IF UPDATING -- oude hard weggooien; dus DELETE (lekker opruimen)!
THEN
DELETE FROM prs_ruimteafdeling
WHERE alg_ruimte_key = :new.alg_ruimte_key
AND prs_afdeling_key <> :new.waarde_key;
END IF;
BEGIN
IF :new.waarde_key <> -1
THEN
INSERT INTO prs_ruimteafdeling (alg_ruimte_key, prs_afdeling_key)
VALUES (:new.alg_ruimte_key, :new.waarde_key);
END IF;
EXCEPTION
WHEN DUP_VAL_ON_INDEX -- was al aanwezig
THEN
NULL;
END;
END;
/
CREATE OR REPLACE FORCE VIEW hpji_v_thema_ruimteafd1
(
alg_ruimte_key,
waarde,
waarde_key
)
AS
SELECT x.alg_ruimte_key,
DECODE (y.aantal,
NULL, '[Onbekend]',
1, SUBSTR (y.afd, 1, 60),
'Meer dan 1 afdeling!'),
DECODE (y.aantal, 1, y.afd_key, NULL)
FROM (SELECT r.alg_ruimte_key
FROM alg_v_aanwezigruimte r) x
LEFT JOIN
( SELECT ra.alg_ruimte_key,
MIN (a.prs_afdeling_naam1) afd,
MIN (a.prs_afdeling_key) afd_key,
COUNT (ra.prs_afdeling_key) aantal
FROM prs_v_aanwezigruimteafdeling ra,
prs_v_afdeling_boom b,
prs_v_aanwezigafdeling a
WHERE ra.prs_afdeling_key = b.prs_afdeling_key
AND b.prs_afdeling_key1 = a.prs_afdeling_key
GROUP BY ra.alg_ruimte_key) y
ON x.alg_ruimte_key = y.alg_ruimte_key
/
CREATE OR REPLACE VIEW hpji_v_thema_vloerafw
(
alg_ruimte_key,
waarde,
waarde_key
)
AS
SELECT a.alg_ruimte_key,
COALESCE (b.vloerafw, '[Onbekend]'),
COALESCE (b.vloerafw_key, -1)
FROM (SELECT r.alg_ruimte_key
FROM alg_v_aanwezigruimte r) a
LEFT JOIN
(SELECT ok.alg_onrgoed_key,
ud.fac_usrdata_omschr vloerafw,
ud.fac_usrdata_key vloerafw_key
FROM alg_onrgoedkenmerk ok, fac_usrdata ud
WHERE ok.alg_kenmerk_key = 1020 -- vloerafwerking
AND ok.alg_onrgoed_niveau = 'R'
AND ok.alg_onrgoedkenmerk_verwijder IS NULL
AND ok.alg_onrgoedkenmerk_waarde = ud.fac_usrdata_key) b
ON a.alg_ruimte_key = b.alg_onrgoed_key
UNION ALL
SELECT NULL,
ud.fac_usrdata_omschr vloerafw,
ud.fac_usrdata_key vloerafw_key
FROM fac_usrdata ud
WHERE ud.fac_usrtab_key = 21
AND NOT EXISTS
(SELECT 1
FROM alg_onrgoedkenmerk ok
WHERE ok.alg_kenmerk_key = 1020 -- vloerafwerking
AND ok.alg_onrgoedkenmerk_waarde = ud.fac_usrdata_key)
/
CREATE OR REPLACE TRIGGER hpji_t_thema_vloerafw_i_iu
INSTEAD OF INSERT OR UPDATE
ON hpji_v_thema_vloerafw
BEGIN
IF UPDATING -- oude hard weggooien; dus DELETE (lekker opruimen)!
THEN
DELETE FROM alg_onrgoedkenmerk
WHERE alg_onrgoed_key = :new.alg_ruimte_key
AND alg_onrgoedkenmerk_waarde <> :new.waarde_key;
END IF;
BEGIN
IF :new.waarde_key <> -1
THEN
INSERT INTO alg_onrgoedkenmerk (alg_onrgoed_key,
alg_onrgoed_niveau,
alg_kenmerk_key,
alg_onrgoedkenmerk_waarde)
VALUES (:new.alg_ruimte_key,
'R',
1020,
:new.waarde_key);
END IF;
EXCEPTION
WHEN DUP_VAL_ON_INDEX -- was al aanwezig
THEN
NULL;
END;
END;
/
CREATE OR REPLACE VIEW hpji_v_thema_ruimtefunc
(
alg_ruimte_key,
waarde,
waarde_key
)
AS
SELECT r.alg_ruimte_key ruimte_key,
COALESCE (sr.alg_srtruimte_omschrijving, '[Onbekend]') waarde,
COALESCE (sr.alg_srtruimte_key, -1) waarde_key
FROM alg_v_aanwezigruimte r, alg_srtruimte sr
WHERE r.alg_srtruimte_key = sr.alg_srtruimte_key(+)
UNION ALL
SELECT NULL ruimte_key,
sr.alg_srtruimte_omschrijving waarde,
sr.alg_srtruimte_key waarde_key
FROM alg_srtruimte sr
WHERE NOT EXISTS (SELECT 1
FROM alg_v_aanwezigruimte r
WHERE r.alg_srtruimte_key = sr.alg_srtruimte_key)
/
CREATE OR REPLACE TRIGGER hpji_t_thema_ruimtefunc_i_iu
INSTEAD OF UPDATE
ON hpji_v_thema_ruimtefunc
FOR EACH ROW
BEGIN
UPDATE alg_ruimte
SET alg_srtruimte_key = :new.waarde_key
WHERE alg_ruimte_key = :new.alg_ruimte_key
AND alg_srtruimte_key <> :new.waarde_key;
END;
/
CREATE OR REPLACE FORCE VIEW hpji_v_thema_legewp (alg_ruimte_key, waarde)
AS
SELECT x.prs_alg_ruimte_key, (100 - ROUND (wp_bez / wp_tot * 100)) leeg_p
FROM ( SELECT wp.prs_alg_ruimte_key, COUNT ( * ) wp_tot
FROM prs_werkplek wp
GROUP BY wp.prs_alg_ruimte_key) x
LEFT JOIN
( SELECT wp.prs_alg_ruimte_key, COUNT ( * ) wp_bez
FROM prs_werkplek wp
WHERE EXISTS
(SELECT 1
FROM prs_perslidwerkplek pw
WHERE pw.prs_werkplek_key = wp.prs_werkplek_key)
GROUP BY wp.prs_alg_ruimte_key) y
ON x.prs_alg_ruimte_key = y.prs_alg_ruimte_key;
/
CREATE OR REPLACE FORCE VIEW hpji_v_thema_objecten (alg_ruimte_key, waarde)
AS
SELECT d.ins_alg_ruimte_key, COUNT ( * ) aantal
FROM ins_deel d
WHERE d.ins_alg_ruimte_type = 'R'
GROUP BY d.ins_alg_ruimte_key
/
CREATE OR REPLACE VIEW HPJI_V_RAP_OPROGNOSEACTIVITEIT
(
FCLT_F_SOORTACTIVITEIT,
FCLT_F_JAAR,
ACTIVITEITEN,
BUDGET
)
AS
SELECT mld_stdmelding_omschrijving,
TO_CHAR (mld_melding_datum, 'yyyy') fclt_f_jaar,
COUNT (mld_melding_key),
SUM (fac.safe_to_number (prijs)) budget
FROM fac_v_oprognosegegevens
GROUP BY mld_stdmelding_omschrijving, TO_CHAR (mld_melding_datum, 'yyyy');
CREATE OR REPLACE VIEW HPJI_V_RAP_OPROGNOSEGEBOUW
(
FCLT_F_GEBOUW,
FCLT_F_JAAR,
ACTIVITEITEN,
BUDGET
)
AS
SELECT op.alg_locatie_code
|| ' - '
|| g.alg_gebouw_code
|| ' / '
|| g.alg_gebouw_naam
gebouw,
TO_CHAR (op.mld_melding_datum, 'yyyy') fclt_f_jaar,
COUNT (op.mld_melding_key),
SUM (fac.safe_to_number (op.prijs)) budget
FROM fac_v_oprognosegegevens op, alg_gebouw g
WHERE op.alg_gebouw_key = g.alg_gebouw_key
GROUP BY op.alg_locatie_code
|| ' - '
|| g.alg_gebouw_code
|| ' / '
|| g.alg_gebouw_naam,
TO_CHAR (op.mld_melding_datum, 'yyyy');
CREATE OR REPLACE FORCE VIEW HPJI_V_RAP_OPROGNOSEVOORTGANG
(
FCLT_F_GEBOUW,
FCLT_F_JAAR,
MELDINGNR,
SOORTACTIVITEIT,
ACTIVITEIT,
STATUS,
BUDGET
)
AS
SELECT alg_locatie_gebouw_naam gebouw,
TO_CHAR (mld_melding_datum, 'yyyy') fclt_f_jaar,
TO_CHAR (mld_melding_key) meldingnr,
mld_stdmelding_omschrijving,
mld_melding_omschrijving melding,
mld_statuses_omschrijving status,
fac.safe_to_number (prijs) budget
FROM fac_v_oprognosegegevens;
CREATE OR REPLACE VIEW hpji_v_inkoopdata
(
maand,
afgemeld_op,
soort_bestelling,
bestel_id,
status,
besteld_op,
besteld_bij,
commentaar,
kosten
)
AS
SELECT DISTINCT
DECODE (b.bes_bestelling_status,
6, TO_CHAR (bo.bes_bestelopdr_leverdatum, 'yyyy-mm'),
-- TO_CHAR (fac.gettrackingdate ('BESOTV', b.bes_bestelling_key),
-- 'yyyy-mm'),
'Lopend')
maand,
-- TO_CHAR (fac.gettrackingdate ('BESOTV', b.bes_bestelling_key),
-- 'dd-mm-yyyy')
TO_CHAR (bo.bes_bestelopdr_leverdatum, 'dd-mm-yyyy') afgemeld_op,
'Catalogus',
TO_CHAR (b.bes_bestelling_key) bestel_id,
s.bes_bestellingstatuses_omschr status,
TO_CHAR (b.bes_bestelling_datum, 'dd-mm-yyyy') besteld_op,
l.prs_bedrijf_naam,
bo.bes_bestelopdr_delivery_opmerk,
0 kosten
FROM bes_bestelling b,
bes_bestellingstatuses s,
bes_bestelling_item bi,
bes_bestelopdr_item boi,
bes_bestelopdr bo,
prs_bedrijf l
WHERE b.bes_bestelling_status = s.bes_bestellingstatuses_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 bo.prs_bedrijf_key = l.prs_bedrijf_key
UNION ALL
SELECT DECODE (
a.mld_statusopdr_key,
6,
TO_CHAR (fac.gettrackingdate ('ORDAFM', a.mld_opdr_key),
'yyyy-mm'),
'Lopend')
maand,
TO_CHAR (fac.gettrackingdate ('ORDAFM', a.mld_opdr_key),
'dd-mm-yyyy')
afgemeld_op,
'Incidenteel',
a.bestel_id,
a.status,
TO_CHAR (a.besteld_op, 'dd-mm-yyyy'),
a.prs_bedrijf_naam,
DECODE (b.fac_usrdata_key,
41, b.ontvangststatus || CHR (13) || CHR (10),
42, b.ontvangststatus || CHR (13) || CHR (10),
43, b.ontvangststatus || CHR (13) || CHR (10),
'')
|| COALESCE (c.commentaar, ''),
a.kosten
FROM (SELECT o.mld_opdr_key,
o.mld_melding_key || '/' || o.mld_opdr_bedrijfopdr_volgnr
bestel_id,
o.mld_statusopdr_key,
s.mld_statusopdr_omschrijving status,
o.mld_opdr_datumbegin besteld_op,
o.mld_opdr_verzonden,
u.prs_bedrijf_naam,
o.mld_opdr_kosten kosten
FROM mld_opdr o, mld_statusopdr s, prs_bedrijf u
WHERE o.mld_typeopdr_key = 182
AND o.mld_statusopdr_key = s.mld_statusopdr_key
AND o.mld_uitvoerende_keys = u.prs_bedrijf_key) a
LEFT JOIN (SELECT ko.mld_opdr_key,
ud.fac_usrdata_key,
ud.fac_usrdata_omschr ontvangststatus
FROM mld_v_aanwezigkenmerkopdr ko, fac_usrdata ud
WHERE ko.mld_kenmerk_key = 1
AND fac.safe_to_number (
ko.mld_kenmerkopdr_waarde) =
ud.fac_usrdata_key) b
ON a.mld_opdr_key = b.mld_opdr_key
LEFT JOIN (SELECT ko.mld_opdr_key,
ko.mld_kenmerkopdr_waarde commentaar
FROM mld_v_aanwezigkenmerkopdr ko
WHERE ko.mld_kenmerk_key = 2) c
ON a.mld_opdr_key = c.mld_opdr_key;
CREATE OR REPLACE VIEW hpji_v_rap_inkoop_opm
(
fclt_f_maand,
hide_f_afgemeld_op,
fclt_f_soort_bestelling,
bestel_id,
status,
besteld_op,
fclt_f_leverancier,
klacht
)
AS
SELECT v.maand,
v.afgemeld_op,
v.soort_bestelling,
v.bestel_id,
v.status,
v.besteld_op,
v.besteld_bij,
v.commentaar
FROM hpji_v_inkoopdata v
WHERE v.maand = 'Lopend' OR v.commentaar IS NOT NULL;
CREATE OR REPLACE VIEW hpji_v_rap_inkoop_ppi
(
fclt_f_maand,
fclt_f_leverancier,
totaal_aantal,
klacht_aantal,
percentage
)
AS
SELECT sums.maand,
sums.besteld_bij,
sums.totaal_aant,
sums.klacht_aant,
REPLACE (
TO_CHAR (sums.klacht_aant / sums.totaal_aant * 100, '999990D9'),
'.',
',')
|| '%'
FROM ( SELECT x.maand,
x.besteld_bij,
SUM (x.totaal_aant) totaal_aant,
SUM (x.klacht_aant) klacht_aant
FROM ( SELECT v.maand,
v.besteld_bij,
COUNT ( * ) totaal_aant,
0 klacht_aant
FROM hpji_v_inkoopdata v
WHERE v.maand <> 'Lopend'
GROUP BY v.maand, v.besteld_bij
UNION ALL
SELECT v.maand,
v.besteld_bij,
0 totaal_aant,
COUNT ( * ) klacht_aant
FROM hpji_v_inkoopdata v
WHERE v.maand <> 'Lopend' AND v.commentaar IS NOT NULL
GROUP BY v.maand, v.besteld_bij) x
GROUP BY x.maand, x.besteld_bij) sums
WHERE sums.totaal_aant > 0;
CREATE OR REPLACE VIEW hpji_v_noti_goederenontvangst
(
code,
sender,
receiver,
text,
KEY,
par1,
par2,
xkey
)
AS
SELECT sn.fac_srtnotificatie_code,
NULL,
gg.prs_perslid_key,
REPLACE (sn.fac_srtnotificatie_oms,
'##OPDR##',
o.mld_melding_key || '/' || o.mld_opdr_bedrijfopdr_volgnr),
o.mld_opdr_key,
NULL,
NULL,
NULL
FROM mld_opdr o,
mld_kenmerkopdr ko,
fac_srtnotificatie sn,
fac_gebruikersgroep gg
WHERE o.mld_statusopdr_key IN (4, 5, 8) -- Gefiat./Uitgeg./Geaccept.
AND o.mld_typeopdr_key = 182
AND TRUNC (ko.mld_kenmerkopdr_aanmaak) = TRUNC (SYSDATE)
AND TO_NUMBER (TO_CHAR (ko.mld_kenmerkopdr_aanmaak, 'HH24')) + 1 =
TO_NUMBER (TO_CHAR (SYSDATE, 'HH24'))
AND o.mld_opdr_key = ko.mld_opdr_key
AND ko.mld_kenmerk_key = 1 -- Ontvangststatus
AND ko.mld_kenmerkopdr_waarde IN ('41') -- Onjuist
AND sn.fac_srtnotificatie_code = 'CUST01'
AND gg.fac_groep_key = 81
UNION ALL
SELECT sn.fac_srtnotificatie_code,
NULL,
gg.prs_perslid_key,
REPLACE (sn.fac_srtnotificatie_oms,
'##OPDR##',
o.mld_melding_key || '/' || o.mld_opdr_bedrijfopdr_volgnr),
o.mld_opdr_key,
NULL,
NULL,
NULL
FROM mld_opdr o,
mld_v_aanwezigkenmerkopdr ko1,
mld_v_aanwezigkenmerkopdr ko2,
fac_srtnotificatie sn,
fac_gebruikersgroep gg
WHERE o.mld_statusopdr_key IN (4, 5, 8) -- Gefiat./Uitgeg./Geaccept.
AND o.mld_typeopdr_key = 182
AND TRUNC (fac.gettrackingdate ('ORDUPD', o.mld_opdr_key)) =
TRUNC (SYSDATE)
AND TO_NUMBER(TO_CHAR (
fac.gettrackingdate ('ORDUPD', o.mld_opdr_key),
'HH24'))
+ 1 = TO_NUMBER (TO_CHAR (SYSDATE, 'HH24'))
AND o.mld_opdr_key = ko1.mld_opdr_key
AND ko1.mld_kenmerk_key = 1 -- Ontvangststatus
AND ko1.mld_kenmerkopdr_waarde IN ('42', '43') -- Retour/Goedgek.
AND o.mld_opdr_key = ko2.mld_opdr_key
AND ko2.mld_kenmerk_key = 101 -- Afleveradres
AND sn.fac_srtnotificatie_code = 'CUST01'
AND gg.fac_groep_key = 86
AND gg.prs_perslid_key IN
(SELECT pw.prs_perslid_key
FROM prs_perslidwerkplek pw,
prs_werkplek wp,
alg_ruimte r,
alg_verdieping v,
alg_gebouw g
WHERE pw.prs_werkplek_key = wp.prs_werkplek_key
AND wp.prs_alg_ruimte_key = r.alg_ruimte_key
AND r.alg_verdieping_key = v.alg_verdieping_key
AND v.alg_gebouw_key = g.alg_gebouw_key
AND g.alg_locatie_key =
DECODE (ko2.mld_kenmerkopdr_waarde,
'121', 2, -- Afleveradres GR
'122', 1, -- Afleveradres VH
NULL));
-- Bevat CUST02-reminders naar groepen bij aanmaken specifieke WF-meldingen:
-- Nieuwe Medewerker (NM), Vertrek Medewerker (VM) en Kleine Verhuizing (KV).
-- Periodiciteit: elk uur (mbt. in het voorgaande uur aangemaakte meldingen)!
CREATE OR REPLACE VIEW hpji_v_noti_wf_reminder
(
code,
sender,
receiver,
text,
KEY,
par1,
par2,
xkey
)
AS -- Systeembeheer=89
SELECT sn.fac_srtnotificatie_code,
NULL,
gg.prs_perslid_key,
REPLACE (sn.fac_srtnotificatie_oms,
'##STDM##',
sm.mld_stdmelding_omschrijving),
m.mld_melding_key,
sm.mld_stdmelding_omschrijving,
NULL,
NULL
FROM mld_melding m,
mld_stdmelding sm,
fac_srtnotificatie sn,
fac_gebruikersgroep gg
WHERE m.mld_melding_status IN (2, 3) -- Te behandelen!
AND TRUNC (m.mld_melding_datum) = TRUNC (SYSDATE)
AND TO_NUMBER (TO_CHAR (m.mld_melding_datum, 'HH24')) + 1 =
TO_NUMBER (TO_CHAR (SYSDATE, 'HH24'))
AND m.mld_stdmelding_key IN (281, -- verzorgen netwerkacc.+appl.
288, -- toewijzen telefoonnr.
292, -- plaatsen PC+randapp.
300, -- deact. acc.+appl.
306 -- patchen netw.
)
AND m.mld_stdmelding_key = sm.mld_stdmelding_key
AND sn.fac_srtnotificatie_code = 'CUST02'
AND gg.fac_groep_key = 89
UNION ALL -- PZ=93
SELECT sn.fac_srtnotificatie_code,
NULL,
gg.prs_perslid_key,
REPLACE (sn.fac_srtnotificatie_oms,
'##STDM##',
sm.mld_stdmelding_omschrijving),
m.mld_melding_key,
sm.mld_stdmelding_omschrijving,
NULL,
NULL
FROM mld_melding m,
mld_stdmelding sm,
fac_srtnotificatie sn,
fac_gebruikersgroep gg
WHERE m.mld_melding_status IN (2, 3) -- Te behandelen!
AND TRUNC (m.mld_melding_datum) = TRUNC (SYSDATE)
AND TO_NUMBER (TO_CHAR (m.mld_melding_datum, 'HH24')) + 1 =
TO_NUMBER (TO_CHAR (SYSDATE, 'HH24'))
AND m.mld_stdmelding_key IN (282, -- opvoeren Persmaster
293, -- wijzigen Persmaster
297 -- innemen vervoersbewijs
)
AND m.mld_stdmelding_key = sm.mld_stdmelding_key
AND sn.fac_srtnotificatie_code = 'CUST02'
AND gg.fac_groep_key = 93
UNION ALL -- Huisvesting=82
SELECT sn.fac_srtnotificatie_code,
NULL,
gg.prs_perslid_key,
REPLACE (sn.fac_srtnotificatie_oms,
'##STDM##',
sm.mld_stdmelding_omschrijving),
m.mld_melding_key,
sm.mld_stdmelding_omschrijving,
NULL,
NULL
FROM mld_melding m,
mld_stdmelding sm,
fac_srtnotificatie sn,
fac_gebruikersgroep gg
WHERE m.mld_melding_status IN (2, 3) -- Te behandelen!
AND TRUNC (m.mld_melding_datum) = TRUNC (SYSDATE)
AND TO_NUMBER (TO_CHAR (m.mld_melding_datum, 'HH24')) + 1 =
TO_NUMBER (TO_CHAR (SYSDATE, 'HH24'))
AND m.mld_stdmelding_key IN (283, -- toewijzen werkplek
302 -- plannen kleine verhuzing
)
AND m.mld_stdmelding_key = sm.mld_stdmelding_key
AND sn.fac_srtnotificatie_code = 'CUST02'
AND gg.fac_groep_key = 82
UNION ALL -- Applicatiebeheer=21
SELECT sn.fac_srtnotificatie_code,
NULL,
gg.prs_perslid_key,
REPLACE (sn.fac_srtnotificatie_oms,
'##STDM##',
sm.mld_stdmelding_omschrijving),
m.mld_melding_key,
sm.mld_stdmelding_omschrijving,
NULL,
NULL
FROM mld_melding m,
mld_stdmelding sm,
fac_srtnotificatie sn,
fac_gebruikersgroep gg
WHERE m.mld_melding_status IN (2, 3) -- Te behandelen!
AND TRUNC (m.mld_melding_datum) = TRUNC (SYSDATE)
AND TO_NUMBER (TO_CHAR (m.mld_melding_datum, 'HH24')) + 1 =
TO_NUMBER (TO_CHAR (SYSDATE, 'HH24'))
AND m.mld_stdmelding_key IN (287, -- verzorgen spec. appl.
299 -- deactiveren spec. appl.
)
AND m.mld_stdmelding_key = sm.mld_stdmelding_key
AND sn.fac_srtnotificatie_code = 'CUST02'
AND gg.fac_groep_key = 21
UNION ALL -- Managementassistentes=121
SELECT sn.fac_srtnotificatie_code,
NULL,
gg.prs_perslid_key,
REPLACE (sn.fac_srtnotificatie_oms,
'##STDM##',
sm.mld_stdmelding_omschrijving),
m.mld_melding_key,
sm.mld_stdmelding_omschrijving,
NULL,
NULL
FROM mld_melding m,
mld_stdmelding sm,
fac_srtnotificatie sn,
fac_gebruikersgroep gg
WHERE m.mld_melding_status IN (2, 3) -- Te behandelen!
AND TRUNC (m.mld_melding_datum) = TRUNC (SYSDATE)
AND TO_NUMBER (TO_CHAR (m.mld_melding_datum, 'HH24')) + 1 =
TO_NUMBER (TO_CHAR (SYSDATE, 'HH24'))
AND m.mld_stdmelding_key IN (289, -- bestellen visitekaartjes
298 -- aankondigen vertrek
)
AND m.mld_stdmelding_key = sm.mld_stdmelding_key
AND sn.fac_srtnotificatie_code = 'CUST02'
AND gg.fac_groep_key = 121
UNION ALL -- AD ontvangst en veiligheid=122
SELECT sn.fac_srtnotificatie_code,
NULL,
gg.prs_perslid_key,
REPLACE (sn.fac_srtnotificatie_oms,
'##STDM##',
sm.mld_stdmelding_omschrijving),
m.mld_melding_key,
sm.mld_stdmelding_omschrijving,
NULL,
NULL
FROM mld_melding m,
mld_stdmelding sm,
fac_srtnotificatie sn,
fac_gebruikersgroep gg
WHERE m.mld_melding_status IN (2, 3) -- Te behandelen!
AND TRUNC (m.mld_melding_datum) = TRUNC (SYSDATE)
AND TO_NUMBER (TO_CHAR (m.mld_melding_datum, 'HH24')) + 1 =
TO_NUMBER (TO_CHAR (SYSDATE, 'HH24'))
AND m.mld_stdmelding_key IN (285, -- verzorgen toegang+pieper
295 -- innemen toegang+pieper
)
AND m.mld_stdmelding_key = sm.mld_stdmelding_key
AND sn.fac_srtnotificatie_code = 'CUST02'
AND gg.fac_groep_key = 122;
CREATE OR REPLACE VIEW hpji_v_ruimteaanduiding (ruimtekey, ruimteaanduiding)
AS
SELECT pa.alg_onroerendgoed_keys, pa.alg_plaatsaanduiding
FROM alg_v_plaatsaanduiding pa
WHERE pa.alg_onroerendgoed_type = 'R'
UNION ALL
SELECT -1, 'GR-000 (Onbekend)' FROM DUAL
UNION ALL
SELECT -1, 'VH-000 (Onbekend)' FROM DUAL;
CREATE OR REPLACE VIEW hpji_v_rap_ruimteoverzicht
(
fclt_f_locatie,
fclt_f_gebouw,
fclt_f_verdieping,
ruimtenr,
fclt_f_ruimtefunctie,
fclt_f_vloerafwerking,
fclt_f_specialisatie,
fclt_f_afdeling,
teken_opp
)
AS
(SELECT a.alg_locatie_code,
a.alg_gebouw_code,
a.alg_verdieping_code,
a.alg_ruimte_nr,
a.ruimtefunctie,
b.vloerafw,
c.specialisatie,
d.afdeling,
a.opp
FROM (SELECT r.alg_ruimte_key,
r.alg_ruimte_nr,
r.alg_ruimte_omschrijving,
v.alg_verdieping_code,
g.alg_gebouw_code,
l.alg_locatie_code,
sr.alg_srtruimte_omschrijving ruimtefunctie,
r.alg_ruimte_bruto_vloeropp opp
FROM alg_v_aanwezigruimte r,
alg_verdieping v,
alg_gebouw g,
alg_locatie l,
alg_srtruimte sr
WHERE r.alg_verdieping_key = v.alg_verdieping_key
AND v.alg_gebouw_key = g.alg_gebouw_key
AND g.alg_locatie_key = l.alg_locatie_key
AND r.alg_srtruimte_key = sr.alg_srtruimte_key(+)) a
LEFT JOIN (SELECT ok.alg_onrgoed_key,
ud.fac_usrdata_omschr vloerafw
FROM alg_onrgoedkenmerk ok, fac_usrdata ud
WHERE ok.alg_kenmerk_key = 1020 -- vloerafwerking
AND ok.alg_onrgoed_niveau = 'R'
AND ok.alg_onrgoedkenmerk_waarde =
ud.fac_usrdata_key) b
ON a.alg_ruimte_key = b.alg_onrgoed_key
LEFT JOIN (SELECT ra.alg_ruimte_key,
a.prs_afdeling_naam1 specialisatie
FROM prs_v_aanwezigruimteafdeling ra,
prs_v_afdeling_boom b,
prs_v_aanwezigafdeling a
WHERE ra.prs_afdeling_key = b.prs_afdeling_key
AND b.prs_afdeling_key1 = a.prs_afdeling_key) c
ON a.alg_ruimte_key = c.alg_ruimte_key
LEFT JOIN (SELECT ra.alg_ruimte_key, a.prs_afdeling_naam1 afdeling
FROM prs_v_aanwezigruimteafdeling ra,
prs_v_aanwezigafdeling a
WHERE ra.prs_afdeling_key = a.prs_afdeling_key) d
ON a.alg_ruimte_key = d.alg_ruimte_key);
CREATE OR REPLACE VIEW hpji_v_rap_verplichtingen
(
bestel_id,
status,
omschrijving,
besteld_op,
fclt_f_leverancier,
ontvangststatus,
kosten
)
AS
SELECT a.bestel_id,
a.status,
a.mld_opdr_omschrijving,
TO_CHAR (a.besteld_op, 'dd-mm-yyyy'),
a.prs_bedrijf_naam,
DECODE (b.fac_usrdata_key,
41, b.ontvangststatus || CHR (13) || CHR (10),
42, b.ontvangststatus || CHR (13) || CHR (10),
43, b.ontvangststatus || CHR (13) || CHR (10),
'')
|| COALESCE (c.commentaar, ''),
a.kosten
FROM (SELECT o.mld_opdr_key,
o.mld_melding_key || '/' || o.mld_opdr_bedrijfopdr_volgnr
bestel_id,
o.mld_statusopdr_key,
s.mld_statusopdr_omschrijving status,
o.mld_opdr_omschrijving,
o.mld_opdr_datumbegin besteld_op,
o.mld_opdr_verzonden,
u.prs_bedrijf_naam,
o.mld_opdr_kosten kosten
FROM mld_opdr o, mld_statusopdr s, prs_bedrijf u
WHERE o.mld_typeopdr_key = 182
AND o.mld_statusopdr_key <> 6
AND o.mld_statusopdr_key = s.mld_statusopdr_key
AND o.mld_uitvoerende_keys = u.prs_bedrijf_key) a
LEFT JOIN (SELECT ko.mld_opdr_key,
ud.fac_usrdata_key,
ud.fac_usrdata_omschr ontvangststatus
FROM mld_v_aanwezigkenmerkopdr ko, fac_usrdata ud
WHERE ko.mld_kenmerk_key = 1
AND fac.safe_to_number (
ko.mld_kenmerkopdr_waarde) =
ud.fac_usrdata_key) b
ON a.mld_opdr_key = b.mld_opdr_key
LEFT JOIN (SELECT ko.mld_opdr_key,
ko.mld_kenmerkopdr_waarde commentaar
FROM mld_v_aanwezigkenmerkopdr ko
WHERE ko.mld_kenmerk_key = 2) c
ON a.mld_opdr_key = c.mld_opdr_key;
CREATE OR REPLACE FUNCTION hpji_res_deel_maandbez (p_reskey IN NUMBER,
yyyymm IN VARCHAR2)
RETURN NUMBER
IS
v_bez NUMBER;
v_van_date DATE;
v_van_uur NUMBER;
v_tot_date DATE;
v_tot_uur NUMBER;
v_loop_date DATE;
v_count NUMBER;
BEGIN
v_bez := 0;
SELECT TRUNC (res_rsv_deel_van),
DECODE (
SIGN (
( (res_rsv_deel_van - TRUNC (res_rsv_deel_van)) * 24) - 8),
-1,
8,
DECODE (
SIGN( ( (res_rsv_deel_van - TRUNC (res_rsv_deel_van)) * 24)
- 18),
-1,
( (res_rsv_deel_van - TRUNC (res_rsv_deel_van)) * 24),
18)),
TRUNC (res_rsv_deel_tot),
DECODE (
SIGN (
( (res_rsv_deel_tot - TRUNC (res_rsv_deel_tot)) * 24) - 8),
-1,
8,
DECODE (
SIGN( ( (res_rsv_deel_tot - TRUNC (res_rsv_deel_tot)) * 24)
- 18),
-1,
( (res_rsv_deel_tot - TRUNC (res_rsv_deel_tot)) * 24),
18))
INTO v_van_date,
v_van_uur,
v_tot_date,
v_tot_uur
FROM res_rsv_deel
WHERE res_rsv_deel_key = p_reskey;
IF (TO_CHAR (v_van_date, 'yyyy-mm') = yyyymm)
THEN
v_loop_date := v_van_date;
ELSE
v_loop_date := TO_DATE (yyyymm || '01', 'yyyy-mmdd');
END IF;
WHILE (v_loop_date <= v_tot_date
AND TO_CHAR (v_loop_date, 'yyyy-mm') = yyyymm)
LOOP
SELECT COUNT ( * )
INTO v_count
FROM mld_vrije_dagen
WHERE mld_vrije_dagen_datum = v_loop_date;
IF (v_count = 0 AND TO_CHAR (v_loop_date, 'd') NOT IN ('1', '7'))
THEN
CASE
WHEN v_van_date = v_tot_date
THEN
v_bez := v_bez + (v_tot_uur - v_van_uur);
WHEN v_loop_date = v_van_date
THEN
v_bez := v_bez + v_van_uur - 8;
WHEN v_loop_date = v_tot_date
THEN
v_bez := v_bez + v_tot_uur - 8;
ELSE
v_bez := v_bez + 10;
END CASE;
END IF;
v_loop_date := v_loop_date + 1;
END LOOP;
RETURN v_bez;
END;
/
CREATE OR REPLACE VIEW hpji_v_rap_res_deel_maandbez
(
fclt_f_maand,
fclt_f_catalogus,
fclt_f_voorziening,
gebruik,
beschikbaar,
bezetting
)
AS
SELECT a.maand,
a.catalogus,
a.voorziening,
a.gebruik,
b.beschikbaar,
REPLACE (TO_CHAR (a.gebruik / b.beschikbaar * 100, '990D9'),
'.',
',')
|| '%'
FROM ( SELECT hist.maand,
td.ins_discipline_omschrijving catalogus,
ins_d.ins_deel_omschrijving voorziening,
rd.res_deel_key,
SUM(hpji_res_deel_maandbez (rd.res_rsv_deel_key,
hist.maand))
gebruik
FROM res_v_aanwezigrsv_deel rd,
res_deel res_d,
ins_deel ins_d,
ins_tab_discipline td,
(SELECT DISTINCT
TO_CHAR (res_rsv_deel_van, 'yyyy-mm') maand
FROM res_rsv_deel
WHERE TO_CHAR (res_rsv_deel_van, 'yyyymmdd') <
TO_CHAR (SYSDATE, 'yyyymm') || '01') hist
WHERE rd.res_deel_key = res_d.res_deel_key
AND res_d.res_ins_deel_key = ins_d.ins_deel_key
AND res_d.res_discipline_key = td.ins_discipline_key
AND TO_CHAR (rd.res_rsv_deel_van, 'yyyy-mm') <=
hist.maand
AND TO_CHAR (rd.res_rsv_deel_tot, 'yyyy-mm') >=
hist.maand
GROUP BY hist.maand,
td.ins_discipline_omschrijving,
ins_d.ins_deel_omschrijving,
rd.res_deel_key) a
LEFT JOIN
(SELECT hist.maand,
fac.count_work_days (
TO_DATE (hist.maand || '01', 'yyyy-mmdd'),
LAST_DAY (TO_DATE (hist.maand || '01', 'yyyy-mmdd'))
+ 1)
* 10
beschikbaar
FROM (SELECT DISTINCT
TO_CHAR (res_rsv_deel_van, 'yyyy-mm') maand
FROM res_rsv_deel
WHERE TO_CHAR (res_rsv_deel_van, 'yyyymmdd') <
TO_CHAR (SYSDATE, 'yyyymm') || '01') hist) b
ON a.maand = b.maand;
CREATE OR REPLACE VIEW hpji_v_rap_it_inventaris_jaar
(
hide_f_regel,
fclt_f_onderdeel,
fclt_f_rubriek,
fclt_f_aanschafjaar,
aantal
)
AS
SELECT grid.onderdeel || '-' || grid.rubriek regel,
grid.onderdeel,
grid.rubriek,
grid.jaar,
COALESCE (x.aantal, 0)
FROM (SELECT a.prs_afdeling_key onderdeel_key,
sd.ins_srtdeel_key rubriek_key,
j.jaar jaar,
a.prs_afdeling_omschrijving onderdeel,
sd.ins_srtdeel_omschrijving rubriek
FROM (SELECT prs_afdeling_key, prs_afdeling_omschrijving
FROM prs_v_aanwezigafdeling
WHERE prs_afdeling_parentkey IS NULL
UNION ALL
SELECT -1 prs_afdeling_key,
'Onbekend' prs_afdeling_omschrijving
FROM DUAL) a,
ins_v_aanwezigsrtdeel sd,
ins_v_aanwezigsrtgroep sg,
(SELECT DISTINCT
TO_CHAR (
fac.safe_to_date (ins_kenmerkdeel_waarde,
'dd-mm-yyyy'),
'yyyy')
jaar
FROM ins_v_aanwezigkenmerkdeel
WHERE ins_kenmerk_key = 101) j -- Aanschafdatum
WHERE sd.ins_srtgroep_key = sg.ins_srtgroep_key
AND sg.ins_discipline_key = 401) grid -- Hardware
LEFT JOIN
( SELECT asd.prs_afdeling_key1 onderdeel_key,
asd.ins_srtdeel_key rubriek_key,
j.jaar jaar,
COUNT ( * ) aantal
FROM (SELECT DECODE (ra.aantal,
1, ab.prs_afdeling_key1,
-1)
prs_afdeling_key1,
d.ins_srtdeel_key,
d.ins_deel_key
FROM ins_v_aanwezigdeel d,
alg_v_allonrgoed_gegevens aog,
( SELECT alg_ruimte_key,
MAX (prs_afdeling_key)
prs_afdeling_key,
COUNT ( * ) aantal
FROM prs_ruimteafdeling
GROUP BY alg_ruimte_key) ra,
prs_v_afdeling_boom ab
WHERE d.ins_alg_ruimte_type NOT IN ('A', 'P', 'W')
AND d.ins_alg_ruimte_key =
aog.alg_onroerendgoed_keys
AND aog.alg_ruimte_key = ra.alg_ruimte_key
AND ra.prs_afdeling_key = ab.prs_afdeling_key
UNION ALL
SELECT -1 prs_afdeling_key1,
d.ins_srtdeel_key,
d.ins_deel_key
FROM ins_v_aanwezigdeel d,
alg_v_allonrgoed_gegevens aog
WHERE d.ins_alg_ruimte_type NOT IN ('A', 'P', 'W')
AND d.ins_alg_ruimte_key =
aog.alg_onroerendgoed_keys
AND (aog.alg_ruimte_key IS NULL
OR NOT EXISTS
(SELECT 1
FROM prs_ruimteafdeling ra
WHERE ra.alg_ruimte_key =
aog.alg_ruimte_key))
UNION ALL
SELECT ab.prs_afdeling_key1,
d.ins_srtdeel_key,
d.ins_deel_key
FROM ins_v_aanwezigdeel d, prs_v_afdeling_boom ab
WHERE d.ins_alg_ruimte_type = 'A'
AND d.ins_alg_ruimte_key =
ab.prs_afdeling_key
UNION ALL
SELECT ab.prs_afdeling_key1,
d.ins_srtdeel_key,
d.ins_deel_key
FROM ins_v_aanwezigdeel d,
prs_perslid p,
prs_v_afdeling_boom ab
WHERE d.ins_alg_ruimte_type = 'P'
AND d.ins_alg_ruimte_key = p.prs_perslid_key
AND p.prs_afdeling_key = ab.prs_afdeling_key
UNION ALL
SELECT DECODE (ra.aantal,
1, ab.prs_afdeling_key1,
-1)
prs_afdeling_key1,
d.ins_srtdeel_key,
d.ins_deel_key
FROM ins_v_aanwezigdeel d,
prs_werkplek w,
( SELECT alg_ruimte_key,
MAX (prs_afdeling_key)
prs_afdeling_key,
COUNT ( * ) aantal
FROM prs_ruimteafdeling
GROUP BY alg_ruimte_key) ra,
prs_v_afdeling_boom ab
WHERE d.ins_alg_ruimte_type = 'W'
AND d.ins_alg_ruimte_key = w.prs_werkplek_key
AND w.prs_alg_ruimte_key = ra.alg_ruimte_key
AND ra.prs_afdeling_key = ab.prs_afdeling_key
UNION ALL
SELECT -1 prs_afdeling_key1,
d.ins_srtdeel_key,
d.ins_deel_key
FROM ins_v_aanwezigdeel d, prs_werkplek w
WHERE d.ins_alg_ruimte_type = 'W'
AND d.ins_alg_ruimte_key = w.prs_werkplek_key
AND NOT EXISTS
(SELECT 1
FROM prs_ruimteafdeling ra
WHERE ra.alg_ruimte_key =
w.prs_alg_ruimte_key)) asd
LEFT JOIN
(SELECT ins_deel_key,
TO_CHAR (
fac.safe_to_date (ins_kenmerkdeel_waarde,
'dd-mm-yyyy'),
'yyyy')
jaar
FROM ins_v_aanwezigkenmerkdeel
WHERE ins_kenmerk_key = 101) j -- Aanschafdatum
ON asd.ins_deel_key = j.ins_deel_key
GROUP BY asd.prs_afdeling_key1, asd.ins_srtdeel_key, j.jaar) x
ON grid.onderdeel_key = x.onderdeel_key
AND grid.rubriek_key = x.rubriek_key
AND grid.jaar = x.jaar;
CREATE OR REPLACE VIEW HPJI_V_RAP_CNT_HUURCONTRACT
(
CNT_CONTRACT_KEY,
CNT_CONTRACT_NUMMER,
CNT_CONTRACT_NUMMER_INTERN,
CNT_CONTRACT_VERSIE,
ALG_LOCATIE_KEY,
ALG_LOCATIE_OMSCHRIJVING,
ALG_LOCATIE_ADRES,
ALG_LOCATIE_POSTCODE,
ALG_LOCATIE_PLAATS,
ALG_GEBOUW_KEY,
ALG_GEBOUW_CODE,
ALG_GEBOUW_NAAM,
PRS_KOSTENPLAATS_NR_GEB,
PRS_KOSTENPLAATS_OMS_GEB,
CNT_CONTRACT_OPMERKING,
CONTRACTPARTIJ,
CNT_CONTRACT_LOOPTIJD_VAN,
CNT_RAPPELDATUM,
CNT_OPZEGDATUM,
CNT_CONTRACT_LOOPTIJD_TOT,
FASE_ACTIEF,
CNT_CONTRACT_STATUS,
KOSTEN,
CNT_CONTRACT_TERMIJNKOSTEN,
FACTUURTERMIJN,
JAARKOSTEN,
CNT_CONTRACT_KORTING,
BEDDEN,
ZORGSOORT,
BEHEERDER,
KALE_HUUR_MAAND,
NAAM_HUURDER_GEB_DAT,
TUIN,
MAINENERGIE,
WATERBEDRIJF,
ZIGGO,
TOTALGAS
)
AS
SELECT c.cnt_contract_key,
cnt_contract_nummer,
cnt_contract_nummer_intern,
cnt_contract_versie,
alg_locatie_key,
cp.alg_locatie_omschrijving,
alg_locatie_adres,
alg_locatie_postcode,
alg_locatie_plaats,
alg_gebouw_key,
alg_gebouw_code,
alg_gebouw_naam,
pk.prs_kostenplaats_nr,
pk.prs_kostenplaats_omschrijving,
cnt_contract_opmerking,
COALESCE (prs_bedrijf_naam, pf1.prs_perslid_naam_full)
contractpartij,
cnt_contract_looptijd_van,
cnt.cnt_getrappeldatum (c.cnt_contract_key)
cnt_rappeldatum,
cnt.cnt_getopzegdatum (c.cnt_contract_key)
cnt_opzegdatum,
cnt_contract_looptijd_tot,
DECODE (cnt.cnt_contract_status (
c.cnt_contract_looptijd_van,
cnt.cnt_getrappeldatum (c.cnt_contract_key),
cnt.cnt_getopzegdatum (c.cnt_contract_key),
c.cnt_contract_looptijd_tot),
0, lcl.l ('lcl_cnt_future'),
1, lcl.l ('lcl_cnt_topical'),
2, lcl.l ('lcl_cnt_warn'),
3, lcl.l ('lcl_cnt_cancel'),
4, lcl.l ('lcl_cnt_past'))
fase_actief,
DECODE (
c.cnt_contract_status,
0, DECODE (fac.getsetting ('cnt_contract_approval'),
1, lcl.l ('lcl_cnt_active_approval'),
lcl.l ('lcl_cnt_active')),
1, lcl.l ('lcl_cnt_inactive'),
2, lcl.l ('lcl_cnt_new'),
3, lcl.l ('lcl_cnt_forapproval'))
cnt_contract_status,
ROUND (
DECODE (
fac.getsetting ('cnt_scopeverdeling'),
1, cp.cnt_contract_plaats_gewicht,
0, COALESCE (cp.cnt_contract_plaats_gewicht, 1)
* c.cnt_contract_kosten
/ (SELECT DECODE (
SUM (
COALESCE (
cnt_contract_plaats_gewicht,
0)),
0, 1,
SUM (cnt_contract_plaats_gewicht))
FROM cnt_contract_plaats ccp
WHERE ccp.cnt_contract_key = cnt_contract_key),
c.cnt_contract_kosten),
2)
kosten,
c.cnt_contract_termijnkosten,
(SELECT lcl.x ('cnt_termijn_omschrijving',
cnt_termijn_key,
cnt_termijn_omschrijving)
FROM cnt_termijn
WHERE cnt_termijn_key = c.cnt_contract_termijntermijn)
factuurtermijn,
DECODE (
cnt.termijnjaarfactor (c.cnt_contract_termijntermijn),
-1, TO_NUMBER (NULL),
cnt.termijnjaarfactor (c.cnt_contract_termijntermijn)
* cnt_contract_termijnkosten)
jaarkosten,
c.cnt_contract_korting,
(SELECT cnt_kenmerkcontract_waarde
FROM cnt_kenmerkcontract ck
WHERE cnt_contract_key = c.cnt_contract_key
AND cnt_kenmerk_key = 281)
bedden,
(SELECT fac_usrdata_omschr
FROM cnt_kenmerkcontract ck, fac_usrdata ud
WHERE cnt_contract_key = c.cnt_contract_key
AND cnt_kenmerk_key = 241
AND ud.fac_usrtab_key = 385
AND cnt_kenmerkcontract_waarde = fac_usrdata_key)
zorgsoort,
(SELECT fac_usrdata_omschr
FROM cnt_kenmerkcontract ck, fac_usrdata ud
WHERE cnt_contract_key = c.cnt_contract_key
AND cnt_kenmerk_key = 301
AND ud.fac_usrtab_key = 541
AND cnt_kenmerkcontract_waarde = fac_usrdata_key)
beheerder,
(SELECT cnt_kenmerkcontract_waarde
FROM cnt_kenmerkcontract ck
WHERE cnt_contract_key = c.cnt_contract_key
AND cnt_kenmerk_key = 341)
kale_huur_maand,
(SELECT cnt_kenmerkcontract_waarde
FROM cnt_kenmerkcontract ck
WHERE cnt_contract_key = c.cnt_contract_key
AND cnt_kenmerk_key = 342)
naam_huurder_geb_dat,
(SELECT fac_usrdata_omschr
FROM cnt_kenmerkcontract ck, fac_usrdata ud
WHERE cnt_contract_key = c.cnt_contract_key
AND cnt_kenmerk_key = 423
AND ud.fac_usrtab_key = 643
AND cnt_kenmerkcontract_waarde = fac_usrdata_key)
tuin,
(SELECT fac_usrdata_omschr
FROM cnt_kenmerkcontract ck, fac_usrdata ud
WHERE cnt_contract_key = c.cnt_contract_key
AND cnt_kenmerk_key = 421
AND ud.fac_usrtab_key = 641
AND cnt_kenmerkcontract_waarde = fac_usrdata_key)
mainenergie,
(SELECT fac_usrdata_omschr
FROM cnt_kenmerkcontract ck, fac_usrdata ud
WHERE cnt_contract_key = c.cnt_contract_key
AND cnt_kenmerk_key = 422
AND ud.fac_usrtab_key = 642
AND cnt_kenmerkcontract_waarde = fac_usrdata_key)
waterbedrijf,
(SELECT fac_usrdata_omschr
FROM cnt_kenmerkcontract ck, fac_usrdata ud
WHERE cnt_contract_key = c.cnt_contract_key
AND cnt_kenmerk_key = 561
AND ud.fac_usrtab_key = 681
AND cnt_kenmerkcontract_waarde = fac_usrdata_key)
ziggo,
(SELECT fac_usrdata_omschr
FROM cnt_kenmerkcontract ck, fac_usrdata ud
WHERE cnt_contract_key = c.cnt_contract_key
AND cnt_kenmerk_key = 581
AND ud.fac_usrtab_key = 81
AND cnt_kenmerkcontract_waarde = fac_usrdata_key)
totalgas
FROM cnt_contract c,
(SELECT cp_1.cnt_contract_key,
l.alg_locatie_key,
l.alg_locatie_omschrijving,
l.alg_locatie_code,
l.alg_locatie_adres,
l.alg_locatie_postcode,
l.alg_locatie_plaats,
g.alg_gebouw_key,
g.alg_gebouw_code,
g.alg_gebouw_naam,
g.prs_kostenplaats_key,
cp_1.cnt_contract_plaats_gewicht
FROM cnt_contract_plaats cp_1,
alg_gebouw g,
alg_locatie l
WHERE cp_1.cnt_contract_plaats_verwijder IS NULL
AND cp_1.cnt_alg_plaats_key = g.alg_gebouw_key
AND g.alg_locatie_key = l.alg_locatie_key
AND cp_1.cnt_alg_plaats_code = 'G'
UNION ALL
SELECT cp_2.cnt_contract_key,
l.alg_locatie_key,
l.alg_locatie_omschrijving,
l.alg_locatie_code,
l.alg_locatie_adres,
l.alg_locatie_postcode,
l.alg_locatie_plaats,
NULL,
NULL,
NULL,
NULL,
cp_2.cnt_contract_plaats_gewicht
FROM cnt_contract_plaats cp_2,
alg_locatie l
WHERE cp_2.cnt_contract_plaats_verwijder IS NULL
AND cp_2.cnt_alg_plaats_key = l.alg_locatie_key
AND cp_2.cnt_alg_plaats_code = 'L') cp,
prs_bedrijf b,
prs_v_perslid_fullnames_all pf1,
prs_kostenplaats pk
WHERE c.ins_discipline_key = 1101
AND c.cnt_contract_verwijder IS NULL
AND c.cnt_contract_key = cp.cnt_contract_key(+)
AND c.cnt_prs_bedrijf_key = b.prs_bedrijf_key(+)
AND c.cnt_prs_perslid_key = pf1.prs_perslid_key(+)
AND cp.prs_kostenplaats_key = pk.prs_kostenplaats_key(+);
CREATE OR REPLACE VIEW hpji_v_rap_it_inventaris_stuk
(
fclt_f_onderdeel,
fclt_f_rubriek,
obj_id,
fclt_f_merk,
fclt_f_model,
fclt_d_aanschafdatum,
fclt_f_vestiging,
ruimte_nr,
ruimte_oms
)
AS
SELECT a.prs_afdeling_omschrijving,
sd.ins_srtdeel_omschrijving,
asd.ins_deel_omschrijving,
x.merk,
y.model,
TO_CHAR (z.datum, 'dd-mm-yyyy'),
asd.vestiging,
asd.ruimte_nr,
asd.ruimte_oms
FROM (SELECT d.ins_srtdeel_key,
d.ins_deel_key,
d.ins_deel_omschrijving,
DECODE (rv.aantal, 1, rv.prs_afdeling_key1, -1)
prs_afdeling_key1,
aog.alg_gebouw_code || ' - ' || aog.alg_gebouw_naam
vestiging,
aog.alg_ruimte_nr ruimte_nr,
aog.alg_ruimte_omschrijving ruimte_oms
FROM ins_v_aanwezigdeel d,
alg_v_allonrgoed_gegevens aog,
( SELECT alg_ruimte_key,
MAX (prs_afdeling_key1) prs_afdeling_key1,
COUNT ( * ) aantal
FROM prs_ruimteafdeling ra, prs_v_afdeling_boom ab
WHERE ra.prs_afdeling_key = ab.prs_afdeling_key
GROUP BY ra.alg_ruimte_key) rv
WHERE d.ins_alg_ruimte_type NOT IN ('A', 'P', 'W')
AND d.ins_alg_ruimte_key = aog.alg_onroerendgoed_keys
AND aog.alg_ruimte_key = rv.alg_ruimte_key
UNION ALL
SELECT d.ins_srtdeel_key,
d.ins_deel_key,
d.ins_deel_omschrijving,
-1 prs_afdeling_key1,
aog.alg_gebouw_code || ' - ' || aog.alg_gebouw_naam
vestiging,
aog.alg_ruimte_nr ruimte_nr,
aog.alg_ruimte_omschrijving ruimte_oms
FROM ins_v_aanwezigdeel d, alg_v_allonrgoed_gegevens aog
WHERE d.ins_alg_ruimte_type NOT IN ('A', 'P', 'W')
AND d.ins_alg_ruimte_key = aog.alg_onroerendgoed_keys
AND (aog.alg_ruimte_key IS NULL
OR NOT EXISTS
(SELECT 1
FROM prs_ruimteafdeling ra
WHERE ra.alg_ruimte_key = aog.alg_ruimte_key))
UNION ALL
SELECT d.ins_srtdeel_key,
d.ins_deel_key,
d.ins_deel_omschrijving,
ab.prs_afdeling_key1,
'Onbekend',
NULL ruimte_nr,
NULL ruimte_oms
FROM ins_v_aanwezigdeel d, prs_v_afdeling_boom ab
WHERE d.ins_alg_ruimte_type = 'A'
AND d.ins_alg_ruimte_key = ab.prs_afdeling_key
UNION ALL
SELECT d.ins_srtdeel_key,
d.ins_deel_key,
d.ins_deel_omschrijving,
ab.prs_afdeling_key1,
'Onbekend',
NULL ruimte_nr,
NULL ruimte_oms
FROM ins_v_aanwezigdeel d, prs_perslid p, prs_v_afdeling_boom ab
WHERE d.ins_alg_ruimte_type = 'P'
AND d.ins_alg_ruimte_key = p.prs_perslid_key
AND p.prs_afdeling_key = ab.prs_afdeling_key
UNION ALL
SELECT d.ins_srtdeel_key,
d.ins_deel_key,
d.ins_deel_omschrijving,
DECODE (rv.aantal, 1, rv.prs_afdeling_key1, -1)
prs_afdeling_key1,
aog.alg_gebouw_code || ' - ' || aog.alg_gebouw_naam
vestiging,
aog.alg_ruimte_nr ruimte_nr,
aog.alg_ruimte_omschrijving ruimte_oms
FROM ins_v_aanwezigdeel d,
prs_werkplek w,
( SELECT alg_ruimte_key,
MAX (prs_afdeling_key1) prs_afdeling_key1,
COUNT ( * ) aantal
FROM prs_ruimteafdeling ra, prs_v_afdeling_boom ab
WHERE ra.prs_afdeling_key = ab.prs_afdeling_key
GROUP BY ra.alg_ruimte_key) rv,
alg_v_allonrgoed_gegevens aog
WHERE d.ins_alg_ruimte_type = 'W'
AND d.ins_alg_ruimte_key = w.prs_werkplek_key
AND w.prs_alg_ruimte_key = rv.alg_ruimte_key
AND rv.alg_ruimte_key = aog.alg_ruimte_key
UNION ALL
SELECT d.ins_srtdeel_key,
d.ins_deel_key,
d.ins_deel_omschrijving,
-1 prs_afdeling_key1,
aog.alg_gebouw_code || ' - ' || aog.alg_gebouw_naam
vestiging,
aog.alg_ruimte_nr ruimte_nr,
aog.alg_ruimte_omschrijving ruimte_oms
FROM ins_v_aanwezigdeel d,
prs_werkplek w,
alg_v_allonrgoed_gegevens aog
WHERE d.ins_alg_ruimte_type = 'W'
AND d.ins_alg_ruimte_key = w.prs_werkplek_key
AND NOT EXISTS
(SELECT 1
FROM prs_ruimteafdeling ra
WHERE ra.alg_ruimte_key = w.prs_alg_ruimte_key)
AND w.prs_alg_ruimte_key = aog.alg_ruimte_key) asd,
ins_srtdeel sd,
ins_srtgroep sg,
(SELECT prs_afdeling_key, prs_afdeling_omschrijving
FROM prs_v_aanwezigafdeling
WHERE prs_afdeling_parentkey IS NULL
UNION ALL
SELECT -1 prs_afdeling_key, 'Onbekend' prs_afdeling_omschrijving
FROM DUAL) a,
(SELECT ins_deel_key, ins_kenmerkdeel_waarde merk
FROM ins_v_aanwezigkenmerkdeel kd, ins_kenmerk k
WHERE kd.ins_kenmerk_key = k.ins_kenmerk_key
AND k.ins_srtkenmerk_key = 21) x, -- Merk
(SELECT ins_deel_key, ins_kenmerkdeel_waarde model
FROM ins_v_aanwezigkenmerkdeel kd, ins_kenmerk k
WHERE kd.ins_kenmerk_key = k.ins_kenmerk_key
AND k.ins_srtkenmerk_key = 22) y, -- Model
(SELECT ins_deel_key,
fac.safe_to_date (ins_kenmerkdeel_waarde, 'dd-mm-yyyy')
datum
FROM ins_v_aanwezigkenmerkdeel
WHERE ins_kenmerk_key = 101) z -- Aanschafdatum
WHERE asd.ins_srtdeel_key = sd.ins_srtdeel_key
AND sd.ins_srtgroep_key = sg.ins_srtgroep_key
AND sg.ins_discipline_key = 401 -- Hardware
AND asd.prs_afdeling_key1 = a.prs_afdeling_key
AND asd.ins_deel_key = x.ins_deel_key(+)
AND asd.ins_deel_key = y.ins_deel_key(+)
AND asd.ins_deel_key = z.ins_deel_key(+);
-- HPJI#28971 Geleverde bestellingen bloemen automatisch afmelden
CREATE OR REPLACE PROCEDURE hpji_export_bes_afmeld (p_applname IN VARCHAR2,
p_applrun IN VARCHAR2,
p_filedir IN VARCHAR2,
p_filename IN VARCHAR2)
AS
-- De bestelopdrachten die ik als compleet geleverd veronderstel,
-- die zouden in principe meer werkdagen geleden geleverd zijn dan
-- de 'notidagen' van de catalogus aangeeft.
-- bes_discipline 201 Bloemen Groningen
-- bes_discipline 202 Bloemen Veenhuizen
CURSOR cbopi
IS
SELECT boi.bes_bestelopdr_item_key,
bo.bes_bestelopdr_key,
b.bes_bestelling_key
FROM bes_bestelopdr bo,
bes_bestelopdr_item boi,
bes_bestelling_item bi,
bes_bestelling b,
bes_srtdeel sd,
bes_srtgroep sg,
bes_disc_params bdp
WHERE bo.bes_bestelopdr_status = 4 -- In bestelling
AND bo.bes_bestelopdr_key = boi.bes_bestelopdr_key
AND boi.bes_bestelopdr_item_key = bi.bes_bestelopdr_item_key
AND bi.bes_bestelling_key = b.bes_bestelling_key
AND bi.bes_srtdeel_key = sd.bes_srtdeel_key
AND sd.bes_srtgroep_key = sg.bes_srtgroep_key
AND sg.ins_discipline_key = bdp.bes_ins_discipline_key
AND sg.ins_discipline_key IN (201, 202)
AND bdp.bes_disc_params_noti_dagen IS NOT NULL
AND (b.bes_bestelling_leverdatum IS NULL
OR fac.datumtijdplusuitvoertijd (
b.bes_bestelling_leverdatum,
bdp.bes_disc_params_noti_dagen,
'DAGEN') < SYSDATE);
-- Alle bestelaanvragen die (nu) geheel geleverd zijn sluiten we af.
CURSOR cbesi
IS
SELECT bi.bes_bestelling_item_key, b.bes_bestelling_key
FROM bes_bestelling b,
bes_bestelling_item bi,
bes_bestelopdr_item boi,
bes_srtdeel sd,
bes_srtgroep sg
WHERE b.bes_bestelling_status = 5 -- Besteld
AND b.bes_bestelling_key = bi.bes_bestelling_key
AND bi.bes_bestelopdr_item_key = boi.bes_bestelopdr_item_key
AND boi.bes_bestelopdr_item_aantal =
boi.bes_bestelopdr_item_aantalontv
AND bi.bes_srtdeel_key = sd.bes_srtdeel_key
AND sd.bes_srtgroep_key = sg.bes_srtgroep_key
AND sg.ins_discipline_key IN (201, 202);
v_errorhint VARCHAR2 (1000);
v_errormsg VARCHAR2 (1000);
oracle_err_num NUMBER;
oracle_err_mes VARCHAR2 (200);
BEGIN
FOR r IN cbopi
LOOP
-- Zeg dat alles geleverd is wat besteld is.
UPDATE bes_bestelopdr_item
SET bes_bestelopdr_item_aantalontv = bes_bestelopdr_item_aantal
WHERE bes_bestelopdr_item_key = r.bes_bestelopdr_item_key;
bes.updatebestelopdrstatus (r.bes_bestelopdr_key, NULL);
END LOOP;
FOR r IN cbesi
LOOP
-- Sluit alle aanvraagregels af die nu geheel geleverd zijn.
UPDATE bes_bestelling_item
SET bes_bestelling_item_aantalontv = bes_bestelling_item_aantal
WHERE bes_bestelling_item_key = r.bes_bestelling_item_key;
bes.updatebestellingstatus (r.bes_bestelling_key, NULL);
END LOOP;
COMMIT;
EXCEPTION
WHEN OTHERS
THEN
oracle_err_num := SQLCODE;
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
ROLLBACK;
v_errormsg :=
'ORACLE (error ' || oracle_err_num || '/' || oracle_err_mes || ')';
fac.writelog (p_applname,
'E',
'Proces afmelden bestellingen afgebroken!',
v_errormsg);
COMMIT;
END;
/
/* Formatted on 12-3-2018 15:47:37 (QP5 v5.136.908.31019) */
CREATE OR REPLACE PROCEDURE hpji_import_prs (p_import_key IN NUMBER)
AS
oracle_err_num NUMBER;
oracle_err_mes VARCHAR2 (200);
v_errormsg VARCHAR2 (400);
v_errorhint VARCHAR2 (400);
v_aantal_in_FCLT NUMBER;
BEGIN
v_errorhint := 'Generieke update';
-- de sequence array staat beschreven in PRS_PAC.SRC bij de prs.import_perslid proc
prs.import_perslid (
p_import_key,
'0;0;0;0;0;0;7;2;3;5;'
|| '4;0;0;0;0;11;12;13;0;6;'
|| '8;1;0;0;0;0;14;15;16;0;'
|| '0;0;0;0;0;0;0;0;0;0;'
|| '0;0;0;0;0;0',
'Loginnaam;Naam;Tussenvoegsel;Voorletters;Voornaam;Personeelsnummer;Afdelingscode;Functie;Locatie;Ruimte;Telefoon;Mobiel;Email;Datum in dienst;Datum uit dienst;Domain%');
-- op basis van het bedrijf wordt straks de autorisatie groep bepaald
-- het bedrijf dus maar vast bepalen
UPDATE fac_imp_perslid i
SET prs_kenmerk5 =
(SELECT DISTINCT b.prs_bedrijf_key
FROM prs_v_afdeling a, prs_bedrijf b
WHERE UPPER (i.prs_afdeling_naam) = a.prs_afdeling_upper
AND a.prs_bedrijf_key = b.prs_bedrijf_key);
-- Zie #55445: personen met een alternatieve inlogcode moeten worden uitgesloten van bijwerken
-- Deze worden dus uit de importtabel verwijderd, tenzij ze een einddatum hebben in het verleden, dan moeten ze wel netjes be<62>indigd worden
DELETE fac_imp_perslid
WHERE fac.safe_to_date (prs_kenmerk2, 'dd-mm-yyyy') > SYSDATE
AND upper(prs_perslid_oslogin) IN (SELECT upper(prs_perslid_oslogin)
FROM prs_perslid p
WHERE p.prs_perslid_oslogin2 IS NOT NULL);
COMMIT;
EXCEPTION
WHEN OTHERS
THEN
oracle_err_num := SQLCODE;
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
v_errormsg := 'Error ' || oracle_err_num || '/' || oracle_err_mes;
fac.imp_writelog (p_import_key,
'E',
v_errormsg,
v_errorhint);
END hpji_import_prs;
/
CREATE OR REPLACE PROCEDURE hpji_update_prs (p_import_key IN NUMBER)
IS
-- Alle personen verwijderen die in het import import bestand voorkomen met een einddatum < vandaag
-- Personen in de juiste autorisatiegroep zetten.
-- Match bij HPJI is oslogin, hieronder de query om alle personen te verwijderen die:
CURSOR c_del
IS
SELECT p.prs_perslid_key, p.prs_perslid_nr, pf.prs_perslid_naam_full
FROM fac_imp_perslid i, prs_perslid p, prs_v_perslid_fullnames_all pf
WHERE UPPER (p.prs_perslid_oslogin) = UPPER (i.prs_perslid_oslogin)
AND pf.prs_perslid_key = p.prs_perslid_key
AND i.prs_kenmerk2 IS NOT NULL
AND fac.safe_to_date (i.prs_kenmerk2, 'dd-mm-yyyy') < SYSDATE;
v_count NUMBER;
BEGIN
-- generic update
-- 'LOGIN' betekent dat op basis van Login wordt gematched.
-- 'NR' betekent dat op basis van Personeelsnummer wordt gematched.
-- 'A' betekent altijd alle (andere/overige) werkplekken verwijderen
prs.update_perslid (p_import_key, 'LOGIN', NULL);
hpji_post_update_perslid(p_import_key);
-- Verwijder personen die niet meer in de import voorkomen.
FOR rec IN c_del
LOOP
BEGIN
prs.delete_perslid (p_import_key, rec.prs_perslid_key);
END;
END LOOP;
END hpji_update_prs;
/
CREATE OR REPLACE PROCEDURE hpji_post_update_perslid (p_import_key IN NUMBER)
AS
--- prsleden die vallen onder Elker (28580) of de combi (29670) moeten toegevoegd worden aan de _default groep (1)
--- als ze daar nog niet in zitten
CURSOR c_auth_default
IS
SELECT DISTINCT prs_perslid_key, prs_kenmerk5
FROM fac_imp_perslid
WHERE prs_kenmerk5 IN (28580, 29670)
AND fac_import_key = p_import_key
AND prs_perslid_key IS NOT NULL
AND prs_perslid_key NOT IN (SELECT prs_perslid_key
FROM fac_gebruikersgroep
WHERE fac_groep_key = 1);
-- prsleden die vallen onder Het Poortje (21) of de combi (29670) moeten worden toegevoegd aan de groep Bestellen Poortje (721)
-- als ze daar nog niet in zitten
CURSOR c_auth_bestellen
IS
SELECT DISTINCT prs_perslid_key, prs_kenmerk5
FROM fac_imp_perslid
WHERE prs_kenmerk5 IN (21, 29670)
AND fac_import_key = p_import_key
AND prs_perslid_key IS NOT NULL
AND prs_perslid_key NOT IN (SELECT prs_perslid_key
FROM fac_gebruikersgroep
WHERE fac_groep_key = 721);
BEGIN
-- plaats personen in de juiste autorisatie groepen
FOR rec IN c_auth_default
LOOP
BEGIN
INSERT INTO FAC_GEBRUIKERSGROEP (prs_perslid_key, fac_groep_key)
VALUES (rec.prs_perslid_key, 1);
END;
END LOOP;
FOR rec IN c_auth_bestellen
LOOP
BEGIN
INSERT INTO FAC_GEBRUIKERSGROEP (prs_perslid_key, fac_groep_key)
VALUES (rec.prs_perslid_key, 721);
-- Medewerkers van mogen Het Poortje (21) mogen niet in de _default groep
-- Dus als zij daar in zitten moeten zij daar uit
DELETE FAC_GEBRUIKERSGROEP
WHERE prs_perslid_key = rec.prs_perslid_key
AND rec.prs_kenmerk5 = 21
AND fac_groep_key = 1;
END;
END LOOP;
COMMIT;
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