1262 lines
53 KiB
SQL
1262 lines
53 KiB
SQL
--
|
|
-- $Id$
|
|
--
|
|
-- Script containing customer specific sql statements for the FACILITOR database
|
|
|
|
DEFINE thisfile = 'BFNL.SQL'
|
|
DEFINE dbuser = '^BFNL'
|
|
|
|
SET ECHO ON
|
|
SET DEFINE ON
|
|
COLUMN fcltlogfile NEW_VALUE fcltlogfile NOPRINT;
|
|
COLUMN fcltcusttxt NEW_VALUE fcltcusttxt NOPRINT;
|
|
WHENEVER SQLERROR CONTINUE;
|
|
SELECT adm.getscriptspoolfile('&thisfile') AS fcltlogfile FROM DUAL;
|
|
SPOOL &fcltlogfile
|
|
WHENEVER SQLERROR EXIT;
|
|
SELECT adm.checkscriptcust('&dbuser') AS fcltcusttxt FROM DUAL;
|
|
WHENEVER SQLERROR CONTINUE;
|
|
---------------------------------------
|
|
PROMPT &fcltcusttxt
|
|
---------------------------------------
|
|
SET DEFINE OFF
|
|
|
|
------ payload begin ------
|
|
|
|
CREATE OR REPLACE PACKAGE BFNL
|
|
AS
|
|
FUNCTION change_delimitor (p_string VARCHAR2,
|
|
p_delimitor VARCHAR2)
|
|
RETURN VARCHAR2;
|
|
|
|
END;
|
|
/
|
|
|
|
CREATE OR REPLACE PACKAGE BODY BFNL
|
|
AS
|
|
|
|
FUNCTION change_delimitor (p_string VARCHAR2,
|
|
p_delimitor VARCHAR2)
|
|
RETURN VARCHAR2
|
|
AS
|
|
v_field VARCHAR2 (1000) := 'QueQuLeQue';
|
|
v_result VARCHAR2 (2000);
|
|
v_line VARCHAR2 (2000);
|
|
BEGIN
|
|
v_line := p_string;
|
|
|
|
WHILE v_line IS NOT NULL
|
|
LOOP
|
|
fac.imp_getfield (v_line, p_delimitor, v_field);
|
|
v_result := v_result || '"' || v_field || '";';
|
|
END LOOP;
|
|
|
|
RETURN v_result;
|
|
EXCEPTION
|
|
WHEN OTHERS
|
|
THEN
|
|
RETURN NULL;
|
|
END;
|
|
|
|
|
|
END;
|
|
/
|
|
|
|
-----------------------------------
|
|
-- PERSONEN/ORGANISATIE ---
|
|
-----------------------------------
|
|
|
|
--------------------------------------------------------------------
|
|
-- Locatiekaart en gekoppelde locatieleider - SYSTEMATIEK BLOS ---
|
|
--------------------------------------------------------------------
|
|
|
|
-- Inpassen systematiek om werkplekkoppelingen te genereren op basis locatiekaart
|
|
|
|
-- Lijst van Kostenplaatsen (die men in locatiekaart kan selecteren)
|
|
CREATE OR REPLACE VIEW bfnl_v_kostenplaatsen
|
|
(
|
|
PRS_KOSTENPLAATS_KEY,
|
|
PRS_KOSTENPLAATS_NR,
|
|
PRS_KOSTENPLAATS_VERWIJDER,
|
|
PRS_KOSTENPLAATS_ACTUEEL,
|
|
PRS_KOSTENPLAATS_OMSCHRIJVING
|
|
)
|
|
AS
|
|
SELECT k.prs_kostenplaats_key,
|
|
CASE
|
|
WHEN ( prs_kostenplaats_verwijder IS NOT NULL
|
|
OR ( prs_kostenplaats_eind IS NOT NULL
|
|
AND prs_kostenplaats_eind < TRUNC (SYSDATE)))
|
|
THEN
|
|
k.prs_kostenplaats_nr || ' - oud!'
|
|
ELSE
|
|
k.prs_kostenplaats_nr
|
|
END
|
|
prs_kostenplaats_nr,
|
|
k.prs_kostenplaats_verwijder,
|
|
CASE
|
|
WHEN ( prs_kostenplaats_verwijder IS NOT NULL
|
|
OR ( prs_kostenplaats_eind IS NOT NULL
|
|
AND prs_kostenplaats_eind < TRUNC (SYSDATE)))
|
|
THEN
|
|
'oud!'
|
|
ELSE
|
|
NULL
|
|
END
|
|
prs_kostenplaats_actueel,
|
|
k.prs_kostenplaats_omschrijving
|
|
FROM prs_kostenplaats k;
|
|
|
|
-- Lijst van Locatieverantwoordelijke (tbv domeinview)
|
|
CREATE OR REPLACE VIEW bfnl_v_personenlijst_loc
|
|
(
|
|
PRS_PERSLID_KEY,
|
|
NAAM,
|
|
PERSONEELSNUMMER,
|
|
EMAIL,
|
|
ROL_LOC_VERANTWOORDELIJKE,
|
|
PRS_PERSLID_INACTIEF,
|
|
PRS_PERSLID_VERWIJDER
|
|
)
|
|
AS
|
|
SELECT
|
|
p.prs_perslid_key,
|
|
CASE WHEN p.prs_perslid_tussenvoegsel IS NULL
|
|
THEN p.prs_perslid_voornaam || ' ' || p.prs_perslid_naam || ' (' || sp.prs_srtperslid_omschrijving || ')'
|
|
ELSE p.prs_perslid_voornaam || ' ' || p.prs_perslid_tussenvoegsel || ' ' || p.prs_perslid_naam || ' (' || sp.prs_srtperslid_omschrijving || ')'
|
|
END
|
|
naam,
|
|
p.prs_perslid_nr,
|
|
p.prs_perslid_email,
|
|
pr.rol_loc_verantwoordelijke,
|
|
p.prs_perslid_inactief,
|
|
p.prs_perslid_verwijder
|
|
FROM
|
|
prs_perslid p,
|
|
(SELECT prs_link_key, prs_kenmerklink_waarde rol_loc_verantwoordelijke FROM prs_kenmerklink WHERE prs_kenmerk_key = 1121 AND prs_kenmerklink_niveau = 'P' AND prs_kenmerklink_verwijder IS NULL) pr, -- rol locatieverantwoordelijke
|
|
prs_srtperslid sp,
|
|
prs_v_afdeling a,
|
|
prs_bedrijf b
|
|
WHERE
|
|
p.prs_afdeling_key = a.prs_afdeling_key
|
|
AND a.prs_bedrijf_key = b.prs_bedrijf_key
|
|
AND b.prs_bedrijf_key = 541 -- bedrijfs_key Babilou Family NL
|
|
AND p.prs_srtperslid_key = sp.prs_srtperslid_key
|
|
AND p.prs_perslid_key = pr.prs_link_key
|
|
ORDER BY sp.prs_srtperslid_omschrijving, p.prs_perslid_voornaam, p.prs_perslid_naam
|
|
;
|
|
|
|
-- Lijst van Regiomanagers ((Cluster/District) (tbv domeinview)
|
|
CREATE OR REPLACE VIEW bfnl_v_personenlijst_clus
|
|
(
|
|
PRS_PERSLID_KEY,
|
|
NAAM,
|
|
PERSONEELSNUMMER,
|
|
EMAIL,
|
|
ROL_LOC_VERANTWOORDELIJKE,
|
|
PRS_PERSLID_INACTIEF,
|
|
PRS_PERSLID_VERWIJDER
|
|
)
|
|
AS
|
|
SELECT
|
|
p.prs_perslid_key,
|
|
CASE WHEN p.prs_perslid_tussenvoegsel IS NULL
|
|
THEN p.prs_perslid_voornaam || ' ' || p.prs_perslid_naam || ' (' || sp.prs_srtperslid_omschrijving || ')'
|
|
ELSE p.prs_perslid_voornaam || ' ' || p.prs_perslid_tussenvoegsel || ' ' || p.prs_perslid_naam || ' (' || sp.prs_srtperslid_omschrijving || ')'
|
|
END
|
|
naam,
|
|
p.prs_perslid_nr,
|
|
p.prs_perslid_email,
|
|
pr.rol_regio_verantwoordelijke,
|
|
p.prs_perslid_inactief,
|
|
p.prs_perslid_verwijder
|
|
FROM
|
|
prs_perslid p,
|
|
(SELECT prs_link_key, prs_kenmerklink_waarde rol_regio_verantwoordelijke FROM prs_kenmerklink WHERE prs_kenmerk_key = 1122 AND prs_kenmerklink_niveau = 'P' AND prs_kenmerklink_verwijder IS NULL) pr, -- rol regioverantwoordelijke
|
|
prs_srtperslid sp,
|
|
prs_v_afdeling a,
|
|
prs_bedrijf b
|
|
WHERE
|
|
p.prs_afdeling_key = a.prs_afdeling_key
|
|
AND a.prs_bedrijf_key = b.prs_bedrijf_key
|
|
AND b.prs_bedrijf_key = 541 -- bedrijfs_key Babilou Family NL
|
|
AND p.prs_srtperslid_key = sp.prs_srtperslid_key
|
|
AND p.prs_perslid_key = pr.prs_link_key
|
|
ORDER BY sp.prs_srtperslid_omschrijving, p.prs_perslid_voornaam, p.prs_perslid_naam
|
|
;
|
|
|
|
-- Lijst van Locatieleiders/Vervangers en de locaties waar men verantwoordelijk voor is omdat ze in de locatie/gebouw-kaart gekoppeld zijn
|
|
CREATE OR REPLACE VIEW bfnl_v_locatiemanagers
|
|
(
|
|
PRS_PERSLID_KEY,
|
|
ALG_LOCATIE_KEY,
|
|
LOCATIEMANAGER,
|
|
LOCATIE, -- voor BFNL de personen op GEBOUW gekoppeld en de naam locatie wel op locatieniveau
|
|
PRS_PERSLID_VERWIJDER
|
|
)
|
|
AS
|
|
SELECT p.prs_perslid_key,
|
|
l.alg_locatie_key,
|
|
p.prs_perslid_naam || ' (' || p.prs_perslid_voornaam || ' ' || p.prs_perslid_tussenvoegsel || ') - ' || sp.prs_srtperslid_omschrijving
|
|
locatiemanager,
|
|
l.alg_locatie_code || ' - ' || l.alg_locatie_omschrijving
|
|
locatie,
|
|
p.prs_perslid_verwijder
|
|
FROM prs_perslid p, prs_srtperslid sp, alg_onrgoedkenmerk ok, alg_gebouw g, alg_locatie l
|
|
WHERE fac.safe_to_number(ok.alg_onrgoedkenmerk_waarde) = p.prs_perslid_key
|
|
AND ok.alg_kenmerk_key IN (1180, 1181, 1182, 1183) -- locatieleiders (ook voor bijv vervangers en assistenten)
|
|
AND ok.alg_onrgoedkenmerk_verwijder IS NULL
|
|
AND ok.alg_onrgoed_niveau = 'G' AND ok.alg_onrgoed_key = g.alg_gebouw_key
|
|
AND g.alg_gebouw_verwijder IS NULL
|
|
AND g.alg_locatie_key = l.alg_locatie_key
|
|
AND l.alg_locatie_verwijder IS NULL
|
|
AND (TRUNC(l.alg_locatie_vervaldatum) > TRUNC(sysdate) OR l.alg_locatie_vervaldatum IS NULL )
|
|
AND (TRUNC(g.alg_gebouw_vervaldatum) > TRUNC(sysdate) OR g.alg_gebouw_vervaldatum IS NULL )
|
|
AND p.prs_srtperslid_key = sp.prs_srtperslid_key
|
|
GROUP BY p.prs_perslid_key, l.alg_locatie_key,
|
|
p.prs_perslid_naam || ' (' || p.prs_perslid_voornaam || ' ' || p.prs_perslid_tussenvoegsel || ') - ' || sp.prs_srtperslid_omschrijving,
|
|
l.alg_locatie_code || ' - ' || l.alg_locatie_omschrijving,
|
|
p.prs_perslid_verwijder ;
|
|
|
|
-- Lijst van Locatiemanagers + Cluster-managers en de Werkplekkoppeling die ze in hun personenkaart hebben
|
|
CREATE OR REPLACE VIEW bfnl_v_locatiemanagers_wp
|
|
(
|
|
PRS_PERSLID_KEY,
|
|
ALG_LOCATIE_KEY,
|
|
NAAM,
|
|
LOCATIE_WP,
|
|
PRS_WERKPLEK_KEY,
|
|
PRS_WERKPLEK_VIRTUEEL
|
|
)
|
|
AS
|
|
SELECT wp.prs_perslid_key,
|
|
onr.alg_locatie_key,
|
|
CASE WHEN p.prs_perslid_tussenvoegsel IS NULL
|
|
THEN p.prs_perslid_voornaam || ' ' || p.prs_perslid_naam || ' (' || sp.prs_srtperslid_omschrijving || ')'
|
|
ELSE p.prs_perslid_voornaam || ' ' || p.prs_perslid_tussenvoegsel || ' ' || p.prs_perslid_naam || ' (' || sp.prs_srtperslid_omschrijving || ')'
|
|
END
|
|
naam,
|
|
l.alg_locatie_code || ' - ' || l.alg_locatie_omschrijving
|
|
locatie,
|
|
w.prs_werkplek_key,
|
|
w.prs_werkplek_virtueel
|
|
FROM (
|
|
SELECT prs_perslid_key
|
|
FROM (SELECT *
|
|
FROM bfnl_v_personenlijst_loc
|
|
) x
|
|
GROUP BY x.prs_perslid_key
|
|
) v,
|
|
prs_perslid p, prs_srtperslid sp, prs_perslidwerkplek wp, prs_werkplek w, alg_ruimte r, alg_v_onrgoed_boom onr, alg_locatie l
|
|
WHERE v.prs_perslid_key = p.prs_perslid_key
|
|
AND p.prs_srtperslid_key = sp.prs_srtperslid_key
|
|
AND p.prs_perslid_key = wp.prs_perslid_key
|
|
AND wp.prs_werkplek_key = w.prs_werkplek_key
|
|
AND w.prs_alg_ruimte_key = r.alg_ruimte_key
|
|
AND r.alg_ruimte_key = onr.alg_ruimte_key
|
|
AND onr.alg_locatie_key = l.alg_locatie_key
|
|
ORDER BY wp.prs_perslid_key
|
|
;
|
|
|
|
|
|
-- Nog 2 bronviews nodig voor procedure:
|
|
--- Bronview: Alle locaties met haar kostenplaats(en): bfnl_v_locaties_kp
|
|
--- Bronview: Alle werkplek-koppeling per locatiemanager en de kp's die daarbij vanuit locatiekaart bijhoren: bfnl_v_locaties_wp_kp
|
|
|
|
-- BRONVIEW: Alle locaties met haar kostenplaats(en)
|
|
CREATE OR REPLACE VIEW bfnl_v_locaties_kp
|
|
(
|
|
alg_locatie_key,
|
|
alg_gebouw_key,
|
|
alg_locatie_omschrijving,
|
|
opvangsoorten_op_loc,
|
|
kostenplaats_opvangsoort, -- voor bfnl wordt 1, 2, 3 gebruikt, maar wellicht eenduidiger om deze de opvangsoort mee te geven?
|
|
prs_kostenplaats_key,
|
|
prs_kostenplaats_nr,
|
|
prs_kostenplaats_omschrijving,
|
|
prs_kostenplaats_eind,
|
|
prs_kostenplaats_verwijder,
|
|
locatie_status
|
|
)
|
|
AS
|
|
SELECT l.alg_locatie_key,
|
|
g.alg_gebouw_key,
|
|
alg_locatie_omschrijving,
|
|
flx.getdomeinwaarde (401, flx.getflex('ALG',1240, g.alg_gebouw_key,'G')) opvangsoort_op_loc,
|
|
'kostenplaats-1' kostenplaats_opvangsoort,
|
|
kw.alg_onrgoedkenmerk_waarde prs_kostenplaats_key,
|
|
prs_kostenplaats_nr,
|
|
prs_kostenplaats_omschrijving,
|
|
prs_kostenplaats_eind,
|
|
prs_kostenplaats_verwijder,
|
|
CASE WHEN (l.alg_locatie_vervaldatum IS NULL OR TRUNC(l.alg_locatie_vervaldatum) > TRUNC(SYSDATE))
|
|
AND
|
|
(g.alg_gebouw_vervaldatum IS NULL OR TRUNC(g.alg_gebouw_vervaldatum) > TRUNC(SYSDATE))
|
|
THEN 'actueel'
|
|
ELSE 'oud'
|
|
END
|
|
locatie_status
|
|
FROM alg_locatie l, alg_gebouw g, alg_onrgoedkenmerk kw, prs_kostenplaats kp
|
|
WHERE kw.alg_onrgoed_key = g.alg_gebouw_key
|
|
AND g.alg_locatie_key = l.alg_locatie_key
|
|
AND fac.safe_to_number (kw.alg_onrgoedkenmerk_waarde) =
|
|
kp.prs_kostenplaats_key
|
|
AND alg_onrgoed_niveau = 'G'
|
|
AND kw.alg_kenmerk_key = 1184 -- kostenplaats-1
|
|
UNION
|
|
SELECT l.alg_locatie_key,
|
|
g.alg_gebouw_key,
|
|
alg_locatie_omschrijving,
|
|
flx.getdomeinwaarde (401, flx.getflex('ALG',1240, g.alg_gebouw_key,'G')) opvangsoort_op_loc,
|
|
'kostenplaats-2' kostenplaats_opvangsoort,
|
|
kw.alg_onrgoedkenmerk_waarde prs_kostenplaats_key,
|
|
prs_kostenplaats_nr,
|
|
prs_kostenplaats_omschrijving,
|
|
prs_kostenplaats_eind,
|
|
prs_kostenplaats_verwijder,
|
|
CASE WHEN (l.alg_locatie_vervaldatum IS NULL OR TRUNC(l.alg_locatie_vervaldatum) > TRUNC(SYSDATE))
|
|
AND
|
|
(g.alg_gebouw_vervaldatum IS NULL OR TRUNC(g.alg_gebouw_vervaldatum) > TRUNC(SYSDATE))
|
|
THEN 'actueel'
|
|
ELSE 'oud'
|
|
END
|
|
locatie_status
|
|
FROM alg_locatie l, alg_gebouw g, alg_onrgoedkenmerk kw, prs_kostenplaats kp
|
|
WHERE kw.alg_onrgoed_key = g.alg_gebouw_key
|
|
AND g.alg_locatie_key = l.alg_locatie_key
|
|
AND fac.safe_to_number (kw.alg_onrgoedkenmerk_waarde) =
|
|
kp.prs_kostenplaats_key
|
|
AND alg_onrgoed_niveau = 'G'
|
|
AND kw.alg_kenmerk_key = 1185 -- kostenplaats-2
|
|
UNION
|
|
SELECT l.alg_locatie_key,
|
|
g.alg_gebouw_key,
|
|
alg_locatie_omschrijving,
|
|
flx.getdomeinwaarde (401, flx.getflex('ALG',1240, g.alg_gebouw_key,'G')) opvangsoort_op_loc,
|
|
'kostenplaats-3' kostenplaats_opvangsoort,
|
|
kw.alg_onrgoedkenmerk_waarde prs_kostenplaats_key,
|
|
prs_kostenplaats_nr,
|
|
prs_kostenplaats_omschrijving,
|
|
prs_kostenplaats_eind,
|
|
prs_kostenplaats_verwijder,
|
|
CASE WHEN (l.alg_locatie_vervaldatum IS NULL OR TRUNC(l.alg_locatie_vervaldatum) > TRUNC(SYSDATE))
|
|
AND
|
|
(g.alg_gebouw_vervaldatum IS NULL OR TRUNC(g.alg_gebouw_vervaldatum) > TRUNC(SYSDATE))
|
|
THEN 'actueel'
|
|
ELSE 'oud'
|
|
END
|
|
locatie_status
|
|
FROM alg_locatie l, alg_gebouw g, alg_onrgoedkenmerk kw, prs_kostenplaats kp
|
|
WHERE kw.alg_onrgoed_key = g.alg_gebouw_key
|
|
AND g.alg_locatie_key = l.alg_locatie_key
|
|
AND fac.safe_to_number (kw.alg_onrgoedkenmerk_waarde) =
|
|
kp.prs_kostenplaats_key
|
|
AND alg_onrgoed_niveau = 'G'
|
|
AND kw.alg_kenmerk_key = 1186 -- kostenplaats-3
|
|
UNION
|
|
SELECT l.alg_locatie_key,
|
|
g.alg_gebouw_key,
|
|
alg_locatie_omschrijving,
|
|
flx.getdomeinwaarde (401, flx.getflex('ALG',1240, g.alg_gebouw_key,'G')) opvangsoort_op_loc,
|
|
'kostenplaats-4' kostenplaats_opvangsoort,
|
|
kw.alg_onrgoedkenmerk_waarde prs_kostenplaats_key,
|
|
prs_kostenplaats_nr,
|
|
prs_kostenplaats_omschrijving,
|
|
prs_kostenplaats_eind,
|
|
prs_kostenplaats_verwijder,
|
|
CASE WHEN (l.alg_locatie_vervaldatum IS NULL OR TRUNC(l.alg_locatie_vervaldatum) > TRUNC(SYSDATE))
|
|
AND
|
|
(g.alg_gebouw_vervaldatum IS NULL OR TRUNC(g.alg_gebouw_vervaldatum) > TRUNC(SYSDATE))
|
|
THEN 'actueel'
|
|
ELSE 'oud'
|
|
END
|
|
locatie_status
|
|
FROM alg_locatie l, alg_gebouw g, alg_onrgoedkenmerk kw, prs_kostenplaats kp
|
|
WHERE kw.alg_onrgoed_key = g.alg_gebouw_key
|
|
AND g.alg_locatie_key = l.alg_locatie_key
|
|
AND fac.safe_to_number (kw.alg_onrgoedkenmerk_waarde) =
|
|
kp.prs_kostenplaats_key
|
|
AND alg_onrgoed_niveau = 'G'
|
|
AND kw.alg_kenmerk_key = 1241 -- kostenplaats-4
|
|
;
|
|
|
|
-- BRONVIEW: Alle werkplek-koppeling per locatiemanager en de kp's die daarbij vanuit locatie/gebouwkaart bijhoren
|
|
CREATE OR REPLACE VIEW bfnl_v_locaties_wp_kp
|
|
(
|
|
prs_perslid_key,
|
|
prs_perslid_naam,
|
|
prs_srtperslid_omschrijving,
|
|
rol_loc_verantwoordelijke,
|
|
prs_perslidwerkplek_key,
|
|
alg_locatie_omschrijving,
|
|
alg_locatie_key,
|
|
prs_kostenplaats_key,
|
|
prs_kostenplaats_nr
|
|
)
|
|
AS
|
|
SELECT v.prs_perslid_key,
|
|
p.prs_perslid_naam,
|
|
sp.prs_srtperslid_omschrijving,
|
|
pr.rol_loc_verantwoordelijke,
|
|
v.prs_perslidwerkplek_key,
|
|
l.alg_locatie_omschrijving,
|
|
lkp.alg_locatie_key,
|
|
lkp.prs_kostenplaats_key,
|
|
lkp.prs_kostenplaats_nr
|
|
FROM prs_v_werkplekperslid_gegevens v,
|
|
alg_locatie l,
|
|
prs_perslid p,
|
|
(SELECT prs_link_key, prs_kenmerklink_waarde rol_loc_verantwoordelijke FROM prs_kenmerklink WHERE prs_kenmerk_key = 1121 AND prs_kenmerklink_niveau = 'P' AND prs_kenmerklink_verwijder IS NULL) pr, -- rol locatieverantwoordelijke
|
|
prs_srtperslid sp,
|
|
bfnl_v_locaties_kp lkp
|
|
WHERE v.prs_perslid_key = p.prs_perslid_key
|
|
AND p.prs_srtperslid_key = sp.prs_srtperslid_key
|
|
AND p.prs_perslid_key = pr.prs_link_key(+)
|
|
AND v.alg_locatie_key = l.alg_locatie_key
|
|
AND v.alg_locatie_key = lkp.alg_locatie_key(+) ;
|
|
|
|
-- VOOR REGIOMANAGERS - DE VIEWS
|
|
|
|
-- Lijst van regiomanagers en de locaties waar men verantwoordelijk voor is omdat ze in de districtkaart zijn gekoppeld
|
|
CREATE OR REPLACE VIEW bfnl_v_regiomanagers
|
|
(
|
|
PRS_PERSLID_KEY,
|
|
ALG_LOCATIE_KEY,
|
|
REGIOMANAGER,
|
|
LOCATIE, -- voor BFNL de personen op GEBOUW gekoppeld en de naam locatie wel op locatieniveau
|
|
PRS_PERSLID_VERWIJDER
|
|
)
|
|
AS
|
|
SELECT p.prs_perslid_key,
|
|
l.alg_locatie_key,
|
|
p.prs_perslid_naam || ' (' || p.prs_perslid_voornaam || ' ' || p.prs_perslid_tussenvoegsel || ') - ' || sp.prs_srtperslid_omschrijving
|
|
regiomanager,
|
|
l.alg_locatie_code || ' - ' || l.alg_locatie_omschrijving
|
|
locatie,
|
|
p.prs_perslid_verwijder
|
|
FROM prs_perslid p, prs_srtperslid sp, alg_onrgoedkenmerk ok, alg_locatie l, alg_district d
|
|
WHERE fac.safe_to_number(ok.alg_onrgoedkenmerk_waarde) = p.prs_perslid_key
|
|
AND ok.alg_kenmerk_key IN (1200) -- regiomanager
|
|
AND ok.alg_onrgoedkenmerk_verwijder IS NULL
|
|
AND ok.alg_onrgoed_niveau = 'D' AND ok.alg_onrgoed_key = d.alg_district_key
|
|
AND d.alg_district_key = l.alg_district_key
|
|
AND l.alg_locatie_verwijder IS NULL
|
|
AND (TRUNC(l.alg_locatie_vervaldatum) > TRUNC(sysdate) OR l.alg_locatie_vervaldatum IS NULL )
|
|
AND p.prs_srtperslid_key = sp.prs_srtperslid_key ;
|
|
|
|
--- DE PROCEDURE om voor de Locatiemanagers/verantwoordelijke van de Locaties/Gebouwen de juiste LOCATIES te koppelen als werkplek
|
|
CREATE OR REPLACE VIEW bfnl_v_export_wp_loc_manager
|
|
(
|
|
result,
|
|
result_order
|
|
)
|
|
AS
|
|
SELECT '"SYNC - Werkplekkoppeling Locatieverantwoordelijke (incl. zijn/haar Mandaten)"'
|
|
|| ';"Uitgevoerd"',
|
|
0
|
|
FROM DUAL
|
|
UNION
|
|
SELECT 'ERROR: Datum '|| TO_CHAR(imp_log_datum) || ' - ' || imp_log_omschrijving || ' - ' || imp_log_hint,
|
|
1
|
|
FROM imp_log
|
|
WHERE imp_log_applicatie = 'WP_LOC_MANAGER' ;
|
|
|
|
CREATE OR REPLACE PROCEDURE bfnl_select_wp_loc_manager (
|
|
p_applname IN VARCHAR2,
|
|
p_applrun IN VARCHAR2)
|
|
AS
|
|
-- Werkplekkoppelingen toevoegen
|
|
CURSOR c_loc_wp -- Voor updaten van locatieverantwoordelijke (werkplek-koppelingen)
|
|
IS
|
|
SELECT v.prs_perslid_key,
|
|
v.alg_locatie_key,
|
|
v.prs_werkplek_key,
|
|
v.actie
|
|
FROM (SELECT man.prs_perslid_key,
|
|
man.alg_locatie_key,
|
|
NULL prs_werkplek_key,
|
|
'toevoegen' actie
|
|
FROM bfnl_v_locatiemanagers man
|
|
WHERE NOT EXISTS
|
|
(SELECT *
|
|
FROM bfnl_v_locatiemanagers_wp wp
|
|
WHERE wp.alg_locatie_key =
|
|
man.alg_locatie_key
|
|
AND wp.prs_perslid_key =
|
|
man.prs_perslid_key)
|
|
UNION
|
|
SELECT wp.prs_perslid_key,
|
|
wp.alg_locatie_key,
|
|
wp.prs_werkplek_key,
|
|
'verwijderen' actie
|
|
FROM bfnl_v_locatiemanagers_wp wp
|
|
WHERE NOT EXISTS
|
|
(SELECT *
|
|
FROM bfnl_v_locatiemanagers man
|
|
WHERE man.alg_locatie_key =
|
|
wp.alg_locatie_key
|
|
AND man.prs_perslid_key =
|
|
wp.prs_perslid_key)
|
|
AND NOT EXISTS -- voor de regiomanagers die via de normale weg in de cluster-kaart zijn gekoppeld, moeten de werkplek-koppelingen natuurlijk niet verwijderd worden
|
|
(SELECT *
|
|
FROM bfnl_v_regiomanagers man
|
|
WHERE man.alg_locatie_key =
|
|
wp.alg_locatie_key
|
|
AND man.prs_perslid_key =
|
|
wp.prs_perslid_key)
|
|
UNION
|
|
SELECT wp.prs_perslid_key,
|
|
wp.alg_locatie_key,
|
|
wp.prs_werkplek_key,
|
|
'ok' actie
|
|
FROM bfnl_v_locatiemanagers_wp wp,
|
|
bfnl_v_locatiemanagers man
|
|
WHERE man.alg_locatie_key = wp.alg_locatie_key
|
|
AND man.prs_perslid_key = wp.prs_perslid_key) v
|
|
ORDER BY 1, 2, 3;
|
|
|
|
CURSOR c_loc_kp -- Voor updaten van locatieverantwoordelijke en mandaten op kostenplaatsen
|
|
IS
|
|
SELECT w.prs_perslid_key, w.alg_locatie_key, w.prs_kostenplaats_key, p.prs_perslid_email, kp.prs_kostenplaats_omschrijving
|
|
FROM ( SELECT v_prs.prs_perslid_key,
|
|
v_prs.alg_locatie_key,
|
|
v_kp.prs_kostenplaats_key
|
|
FROM bfnl_v_locatiemanagers v_prs, bfnl_v_locaties_kp v_kp
|
|
WHERE v_prs.alg_locatie_key = v_kp.alg_locatie_key
|
|
GROUP BY v_prs.prs_perslid_key,
|
|
v_prs.alg_locatie_key,
|
|
v_kp.prs_kostenplaats_key) w,
|
|
prs_perslid p, prs_kostenplaats kp
|
|
WHERE w.prs_perslid_key = p.prs_perslid_key AND w.prs_kostenplaats_key = kp.prs_kostenplaats_key
|
|
ORDER BY 1, 2, 3;
|
|
|
|
CURSOR c_loc_kp_del -- Voor deleten van mandaten die niet meer van toepassing zijn
|
|
IS
|
|
SELECT pk.prs_perslid_key, pk.prs_perslidkostenplaats_key, p.prs_perslid_email, kp.prs_kostenplaats_omschrijving
|
|
FROM prs_perslidkostenplaats pk, prs_perslid p, prs_kostenplaats kp
|
|
WHERE
|
|
pk.prs_perslid_key = p.prs_perslid_key AND pk.prs_kostenplaats_key = kp.prs_kostenplaats_key
|
|
AND NOT EXISTS
|
|
( SELECT v_prs.prs_perslid_key,
|
|
v_kp.prs_kostenplaats_key
|
|
FROM bfnl_v_locatiemanagers v_prs,
|
|
bfnl_v_locaties_kp v_kp
|
|
WHERE v_prs.alg_locatie_key = v_kp.alg_locatie_key
|
|
AND v_prs.prs_perslid_key = pk.prs_perslid_key
|
|
AND v_kp.prs_kostenplaats_key = pk.prs_kostenplaats_key
|
|
GROUP BY v_prs.prs_perslid_key,
|
|
v_kp.prs_kostenplaats_key)
|
|
AND pk.prs_perslid_key IN (SELECT d.prs_perslid_key FROM bfnl_v_personenlijst_loc d WHERE p.prs_perslid_verwijder IS NULL AND INSTR(d.naam, 'Regiomanager')=0) -- kijken alleen naar locatieverantwoordelijke
|
|
ORDER BY 1, 2 ;
|
|
|
|
CURSOR c_loc_recht -- -- Voor onderhouden van de locatiemanagers in de eigen autorisatiegroep en de _default-groep
|
|
IS
|
|
SELECT p.prs_perslid_key, p.naam,
|
|
(SELECT count(*) FROM prs_perslidwerkplek wp WHERE wp.prs_perslid_key = p.prs_perslid_key) aantal_wp,
|
|
(SELECT count(*) FROM fac_gebruikersgroep gg WHERE gg.prs_perslid_key = p.prs_perslid_key AND gg.fac_groep_key = 461) groep, -- de locatiemanagers-autorisatiegroep
|
|
(SELECT count(*) FROM fac_gebruikersgroep gg WHERE gg.prs_perslid_key = p.prs_perslid_key AND gg.fac_groep_key = 1) groep_default -- de default_groep
|
|
FROM bfnl_v_personenlijst_loc p
|
|
WHERE p.prs_perslid_verwijder IS NULL AND INSTR(p.naam, 'Regiomanager')=0 -- uitsluiten regiomanagers
|
|
ORDER BY 1 ;
|
|
|
|
|
|
v_errormsg VARCHAR2 (1000);
|
|
v_errorhint VARCHAR2 (1000);
|
|
oracle_err_mes VARCHAR2 (200);
|
|
oracle_err_num NUMBER;
|
|
currentversion fac_module.fac_module_version%TYPE;
|
|
v_aanduiding VARCHAR2 (1000);
|
|
v_count NUMBER;
|
|
|
|
|
|
v_alg_ruimte_key NUMBER;
|
|
v_prs_perslidkostenplaats_key NUMBER (10);
|
|
v_teller_mandaat NUMBER (10);
|
|
v_upsert_sync NUMBER(1);
|
|
|
|
BEGIN
|
|
v_count := 0;
|
|
|
|
FOR rec IN c_loc_wp
|
|
LOOP
|
|
BEGIN
|
|
-- Werkplekkoppelingen op basis van de locaties waar men locatieleider van is
|
|
v_aanduiding :=
|
|
'bijwerken werkplekkoppelingen locatiemanager - perslid_key:'
|
|
|| TO_CHAR (rec.prs_perslid_key);
|
|
|
|
v_upsert_sync := 0 ;
|
|
|
|
IF rec.actie = 'toevoegen'
|
|
THEN
|
|
v_errorhint :=
|
|
'actie toevoegen werkplek - loc-key: '
|
|
|| TO_CHAR (rec.alg_locatie_key);
|
|
|
|
BEGIN
|
|
SELECT MIN (r.alg_ruimte_key)
|
|
INTO v_alg_ruimte_key
|
|
FROM alg_ruimte r, alg_verdieping v, alg_gebouw g
|
|
WHERE r.alg_verdieping_key = v.alg_verdieping_key
|
|
AND v.alg_gebouw_key = g.alg_gebouw_key
|
|
AND r.alg_ruimte_verwijder IS NULL
|
|
AND v.alg_verdieping_verwijder IS NULL
|
|
AND g.alg_gebouw_verwijder IS NULL
|
|
AND g.alg_locatie_key = rec.alg_locatie_key;
|
|
|
|
IF v_alg_ruimte_key IS NOT NULL
|
|
THEN
|
|
-- PROCEDURE movetoruimte (p_prs_key IN NUMBER, p_ruimte_key IN NUMBER, p_alg_type IN VARCHAR2, p_virtual IN NUMBER DEFAULT 0);
|
|
BEGIN
|
|
PRS.movetoruimte (rec.prs_perslid_key,
|
|
v_alg_ruimte_key,
|
|
'L',
|
|
1);
|
|
|
|
v_upsert_sync := 1 ;
|
|
|
|
END;
|
|
END IF;
|
|
END;
|
|
END IF;
|
|
|
|
IF rec.actie = 'verwijderen'
|
|
THEN
|
|
v_errorhint :=
|
|
'actie verwijderen werkplek - loc-key: '
|
|
|| TO_CHAR (rec.alg_locatie_key);
|
|
|
|
DELETE prs_werkplek
|
|
WHERE prs_werkplek_key = rec.prs_werkplek_key;
|
|
|
|
v_upsert_sync := 1 ;
|
|
|
|
END IF;
|
|
|
|
-- In personenkaart nog even vermelden wanneer deze vanuit de WP-sync voor het laatst zijn gemuteerd
|
|
IF v_upsert_sync = 1
|
|
THEN
|
|
|
|
PRS.upsertkenmerk (1140, rec.prs_perslid_key, TO_CHAR(sysdate, 'dd-mm-yyyy HH24:MI'));
|
|
|
|
END IF;
|
|
|
|
EXCEPTION
|
|
WHEN OTHERS
|
|
THEN
|
|
oracle_err_num := SQLCODE;
|
|
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
|
|
v_errormsg :=
|
|
'OTHERS (error '
|
|
|| oracle_err_num
|
|
|| '/'
|
|
|| oracle_err_mes
|
|
|| ')';
|
|
fac.writelog (p_applname,
|
|
'E',
|
|
v_aanduiding || ' - ' || v_errormsg,
|
|
v_errorhint);
|
|
|
|
END;
|
|
|
|
END LOOP;
|
|
|
|
FOR rec IN c_loc_kp
|
|
LOOP
|
|
BEGIN
|
|
-- kostenplaatsen en mandaat
|
|
v_aanduiding :=
|
|
'bijwerken mandaten locatiemanager - perslid_key:'
|
|
|| TO_CHAR (rec.prs_perslid_key);
|
|
|
|
|
|
-- Alle mandaten goed inregelen
|
|
|
|
SELECT COUNT(*)
|
|
INTO v_teller_mandaat
|
|
FROM prs_perslidkostenplaats
|
|
WHERE prs_perslid_key = rec.prs_perslid_key
|
|
AND prs_kostenplaats_key = rec.prs_kostenplaats_key ;
|
|
|
|
IF v_teller_mandaat = 0
|
|
THEN
|
|
|
|
v_errorhint :=
|
|
'bijwerken kostenplaats-mandaat - kostenplaat_key'
|
|
|| TO_CHAR (rec.prs_kostenplaats_key);
|
|
|
|
|
|
INSERT INTO prs_perslidkostenplaats (
|
|
prs_perslidkostenplaats_boeken,
|
|
prs_perslidkostenplaats_inzage,
|
|
prs_perslid_key,
|
|
prs_kostenplaats_key)
|
|
VALUES (1,
|
|
1,
|
|
rec.prs_perslid_key,
|
|
rec.prs_kostenplaats_key);
|
|
END IF;
|
|
|
|
END;
|
|
END LOOP;
|
|
|
|
FOR rec IN c_loc_kp_del
|
|
LOOP
|
|
BEGIN
|
|
-- opschonen mandaten die niet meer geldig zijn
|
|
v_aanduiding :=
|
|
'verwijderen mandaten locatiemanager - perslid_key:'
|
|
|| TO_CHAR (rec.prs_perslid_key);
|
|
v_errorhint := 'verwijderen mandaten die niet meer geldig zijn';
|
|
|
|
DELETE FROM prs_perslidkostenplaats
|
|
WHERE prs_perslidkostenplaats_key =
|
|
rec.prs_perslidkostenplaats_key;
|
|
END;
|
|
END LOOP;
|
|
|
|
FOR rec IN c_loc_recht
|
|
LOOP
|
|
BEGIN
|
|
-- Alle managers zonder WP's uit de autorisatiegroep Locatiemanagers halen (key 461)
|
|
v_aanduiding :=
|
|
'bijwerken locatiemanager - perslid_key:'
|
|
|| TO_CHAR (rec.prs_perslid_key);
|
|
|
|
v_errorhint := 'verwijderen locatiemanager uit eigen autorisatiegroep';
|
|
|
|
IF rec.aantal_wp = 0 AND rec.groep = 1
|
|
THEN
|
|
|
|
DELETE
|
|
FROM fac_gebruikersgroep
|
|
WHERE fac_groep_key = 461 AND prs_perslid_key = rec.prs_perslid_key ;
|
|
|
|
END IF;
|
|
|
|
v_errorhint := 'toevoegen locatiemanagers aan eigen autorisatiegroep';
|
|
|
|
IF rec.aantal_wp > 0 AND rec.groep = 0
|
|
THEN
|
|
|
|
INSERT INTO fac_gebruikersgroep (fac_groep_key,
|
|
prs_perslid_key)
|
|
VALUES (461,
|
|
rec.prs_perslid_key) ;
|
|
|
|
END IF;
|
|
|
|
v_errorhint := 'verwijderen locatiemanager met werkplekkoppelingen uit default autorisatiegroep';
|
|
|
|
IF rec.aantal_wp > 0 AND rec.groep_default = 1
|
|
THEN
|
|
|
|
DELETE
|
|
FROM fac_gebruikersgroep
|
|
WHERE fac_groep_key = 1 AND prs_perslid_key = rec.prs_perslid_key ;
|
|
|
|
END IF;
|
|
|
|
v_errorhint := 'toevoegen locatiemanager zonder werkplekkoppelingen aan de default autorisatiegroep';
|
|
|
|
IF rec.aantal_wp = 0 AND rec.groep_default = 0
|
|
THEN
|
|
|
|
INSERT INTO fac_gebruikersgroep (fac_groep_key,
|
|
prs_perslid_key)
|
|
VALUES (1,
|
|
rec.prs_perslid_key) ;
|
|
|
|
END IF;
|
|
|
|
END;
|
|
END LOOP;
|
|
|
|
EXCEPTION
|
|
WHEN OTHERS
|
|
THEN
|
|
oracle_err_num := SQLCODE;
|
|
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
|
|
v_errormsg :=
|
|
'OTHERS (error ' || oracle_err_num || '/' || oracle_err_mes;
|
|
fac.writelog (p_applname,
|
|
'E',
|
|
v_errormsg,
|
|
v_aanduiding || ' - HINT: ' || v_errorhint);
|
|
END;
|
|
/
|
|
|
|
-- Rapportage Gebouwbeheer en Locatiemanagers / Regiomanagers
|
|
CREATE OR REPLACE VIEW BFNL_V_ALG_ONROERENDGOED
|
|
(
|
|
REGIO,
|
|
DISTRICT,
|
|
LOCATIE,
|
|
LOCATIE_CODE,
|
|
ALG_LOCATIE_KEY,
|
|
GEBOUW,
|
|
ALG_GEBOUW_KEY,
|
|
-- gegevens uit gebouwkaart bfnl
|
|
LABEL_OORSPRONKELIJK,
|
|
OPVANGSOORT_OP_LOC,
|
|
LOCATIEMANAGERS,
|
|
LOCATIEMANAGER_1,
|
|
LOCATIEMANAGER_2,
|
|
LOCATIEMANAGER_3,
|
|
LOCATIEMANAGER_4,
|
|
REGIOMANAGER,
|
|
LOCATIE_STATUS
|
|
)
|
|
AS
|
|
SELECT r.alg_regio_omschrijving,
|
|
d.alg_district_omschrijving,
|
|
l.alg_locatie_omschrijving,
|
|
l.alg_locatie_code,
|
|
l.alg_locatie_key,
|
|
v.alg_gebouw_code || ' - ' || v.alg_gebouw_naam
|
|
gebouw,
|
|
g.alg_gebouw_key,
|
|
km.label_oorspronkelijk,
|
|
km.opvangsoort_op_loc,
|
|
DECODE(km.locatiemanager_1, NULL, '', km.locatiemanager_1) ||
|
|
DECODE(km.locatiemanager_2, NULL, '', ', ' || km.locatiemanager_2) ||
|
|
DECODE(km.locatiemanager_3, NULL, '', ', ' || km.locatiemanager_3) ||
|
|
DECODE(km.locatiemanager_4, NULL, '', ', ' || km.locatiemanager_4)
|
|
locatiemanagers,
|
|
km.locatiemanager_1,
|
|
km.locatiemanager_2,
|
|
km.locatiemanager_3,
|
|
km.locatiemanager_4,
|
|
flx.getdomeinwaarde (381, flx.getflex('ALG',1200, d.alg_district_key,'D')) regiomanager,
|
|
CASE WHEN (l.alg_locatie_vervaldatum IS NULL OR TRUNC(l.alg_locatie_vervaldatum) > TRUNC(SYSDATE))
|
|
AND
|
|
(g.alg_gebouw_vervaldatum IS NULL OR TRUNC(g.alg_gebouw_vervaldatum) > TRUNC(SYSDATE))
|
|
THEN 'actueel'
|
|
ELSE 'oud'
|
|
END
|
|
locatie_status
|
|
FROM alg_v_onroerendgoed_gegevens v,
|
|
alg_locatie l,
|
|
alg_gebouw g,
|
|
alg_district d,
|
|
alg_regio r,
|
|
(SELECT g.alg_gebouw_key,
|
|
flx.getflex('ALG',1141,g.alg_gebouw_key,'G') label_oorspronkelijk,
|
|
flx.getdomeinwaarde (401, flx.getflex('ALG', 1240, g.alg_gebouw_key,'G')) opvangsoort_op_loc,
|
|
flx.getdomeinwaarde(361, flx.getflex('ALG', 1180, g.alg_gebouw_key,'G')) locatiemanager_1,
|
|
flx.getdomeinwaarde(361, flx.getflex('ALG', 1181, g.alg_gebouw_key,'G')) locatiemanager_2,
|
|
flx.getdomeinwaarde(361, flx.getflex('ALG', 1182, g.alg_gebouw_key,'G')) locatiemanager_3,
|
|
flx.getdomeinwaarde(361, flx.getflex('ALG', 1183, g.alg_gebouw_key,'G')) locatiemanager_4
|
|
FROM alg_gebouw g) km
|
|
WHERE 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
|
|
AND d.alg_regio_key = r.alg_regio_key
|
|
AND v.alg_type IN ('G')
|
|
AND g.alg_gebouw_key = km.alg_gebouw_key
|
|
ORDER BY d.alg_district_omschrijving, l.alg_locatie_code, v.alg_gebouw_code
|
|
;
|
|
|
|
|
|
-------------------
|
|
-- RAPPORTAGES ---
|
|
-------------------
|
|
|
|
-- Deviatie workflow - bronview tbv BFNL#88866 & BFNL#90242
|
|
--- moet als gestyld rapport opgenomen worden in bfnl.xsl
|
|
CREATE OR REPLACE VIEW bfnl_v_rap_deviatie_goedkeur
|
|
(
|
|
mld_melding_key,
|
|
fclt_3d_user_key, -- prs_perslid_key van de goedkeurder (via rechten MLDBOF / MLDBO3 op desbetreffende vakgroep)
|
|
goedkeurder,
|
|
fclt_3d_discipline_key, -- vakgroep_key
|
|
fclt_3d_locatie_key,
|
|
alg_locatie_omschrijving,
|
|
gebouw_key,
|
|
alg_gebouw_naam,
|
|
melding_nr, -- actie-meldingsnr met prefix
|
|
melding_start_key, -- meldingsnummer aanvraag
|
|
vakgroep, -- vakgroep_naam
|
|
mld_stdmelding_omschrijving,
|
|
mld_stdmelding_key,
|
|
status,
|
|
datum, -- datum mld_goedkeuring
|
|
datum_m1, -- datum mld_start
|
|
aanvrager,
|
|
omschrijving,
|
|
opmerking,
|
|
opmerking_m1, -- opmerking mld_start
|
|
-- Alle kenmerkvelden op aanvraag
|
|
deviatiesoort,
|
|
titel,
|
|
impact_budget, -- keuzelijst Ja/Nee
|
|
value_convention, ---- Als geen impact dan deze tonen....
|
|
cust_dev_splits, -- keuzelijst voor splitsing in deviatie-workflow naar juiste vakgroep-goedkeuring.
|
|
-- locatie_cluster , -- voor THDD niet van toepassing..
|
|
gebouw, -- deze gebruiken voor verdere tekstmatige specificatie gebouw
|
|
ingangsdatum,
|
|
kostensoort_oud,
|
|
kostensoort_nieuw,
|
|
oud_budget,
|
|
nieuw_budget_jaarbasis,
|
|
nieuw_budget_jaarlopend,
|
|
deviatiebedrag_jaarlopend,
|
|
entiteit,
|
|
investering_totaal,
|
|
omschrijving_investering,
|
|
leverancier,
|
|
risico_code,
|
|
po_nummer,
|
|
co_nummer
|
|
)
|
|
AS
|
|
SELECT m.mld_melding_key,
|
|
pf.prs_perslid_key
|
|
fclt_3d_user_key,
|
|
pf.prs_perslid_naam
|
|
goedkeurder,
|
|
md.ins_discipline_key
|
|
fclt_3d_discipline_key,
|
|
l.alg_locatie_key
|
|
fclt_3d_locatie_key,
|
|
l.alg_locatie_omschrijving,
|
|
og.alg_gebouw_key,
|
|
og.alg_gebouw_naam,
|
|
sd.ins_srtdiscipline_prefix || to_char(m.mld_melding_key)
|
|
melding_nr,
|
|
m.mld_melding_start_key
|
|
melding_start_key,
|
|
md.ins_discipline_omschrijving
|
|
vakgroep,
|
|
s.mld_stdmelding_omschrijving,
|
|
s.mld_stdmelding_key,
|
|
DECODE (m.mld_melding_status, 2, 'nieuw', 'in behandeling')
|
|
status,
|
|
TO_CHAR(m.mld_melding_datum,'dd-mm-yyyy')
|
|
datum,
|
|
TO_CHAR(m1.mld_melding_datum,'dd-mm-yyyy')
|
|
datum_m1,
|
|
p.prs_perslid_naam || ' (' || p.prs_perslid_voornaam || ')'
|
|
aanvrager,
|
|
m.mld_melding_omschrijving,
|
|
m.mld_melding_opmerking,
|
|
m1.mld_melding_opmerking,
|
|
-- Kenmerkvelden bij aanvraag
|
|
(SELECT fu.fac_usrdata_omschr
|
|
FROM mld_kenmerkmelding mkm,
|
|
mld_kenmerk k,
|
|
mld_srtkenmerk sk,
|
|
fac_usrdata fu
|
|
WHERE mkm.mld_melding_key = m.mld_melding_key
|
|
AND mkm.mld_kenmerk_key = k.mld_kenmerk_key
|
|
AND fac.safe_to_number(mkm.mld_kenmerkmelding_waarde) = fu.fac_usrdata_key
|
|
AND k.mld_srtkenmerk_key = sk.mld_srtkenmerk_key
|
|
AND sk.mld_srtkenmerk_upper = 'DEVIATIESOORT')
|
|
deviatiesoort,
|
|
(SELECT mkm.mld_kenmerkmelding_waarde
|
|
FROM mld_kenmerkmelding mkm, mld_kenmerk k, mld_srtkenmerk sk
|
|
WHERE mkm.mld_melding_key = m.mld_melding_key
|
|
AND mkm.mld_kenmerk_key = k.mld_kenmerk_key
|
|
AND k.mld_srtkenmerk_key = sk.mld_srtkenmerk_key
|
|
AND sk.mld_srtkenmerk_upper = 'TITEL')
|
|
titel,
|
|
(SELECT fu.fac_usrdata_omschr
|
|
FROM mld_kenmerkmelding mkm,
|
|
mld_kenmerk k,
|
|
mld_srtkenmerk sk,
|
|
fac_usrdata fu
|
|
WHERE mkm.mld_melding_key = m.mld_melding_key
|
|
AND mkm.mld_kenmerk_key = k.mld_kenmerk_key
|
|
AND fac.safe_to_number(mkm.mld_kenmerkmelding_waarde) = fu.fac_usrdata_key
|
|
AND k.mld_srtkenmerk_key = sk.mld_srtkenmerk_key
|
|
AND sk.mld_srtkenmerk_upper = 'IMPACT OP BUDGET')
|
|
impact_budget,
|
|
(SELECT fu.fac_usrdata_omschr
|
|
FROM mld_kenmerkmelding mkm,
|
|
mld_kenmerk k,
|
|
mld_srtkenmerk sk,
|
|
fac_usrdata fu
|
|
WHERE mkm.mld_melding_key = m.mld_melding_key
|
|
AND mkm.mld_kenmerk_key = k.mld_kenmerk_key
|
|
AND fac.safe_to_number(mkm.mld_kenmerkmelding_waarde) = fu.fac_usrdata_key
|
|
AND k.mld_srtkenmerk_key = sk.mld_srtkenmerk_key
|
|
AND sk.mld_srtkenmerk_upper = 'VALUE CONVENTION')
|
|
value_convention,
|
|
(SELECT fu.fac_usrdata_omschr
|
|
FROM mld_kenmerkmelding mkm,
|
|
mld_kenmerk k,
|
|
mld_srtkenmerk sk,
|
|
fac_usrdata fu
|
|
WHERE mkm.mld_melding_key = m.mld_melding_key
|
|
AND mkm.mld_kenmerk_key = k.mld_kenmerk_key
|
|
AND fac.safe_to_number(mkm.mld_kenmerkmelding_waarde) = fu.fac_usrdata_key
|
|
AND k.mld_srtkenmerk_key = sk.mld_srtkenmerk_key
|
|
AND sk.mld_srtkenmerk_upper = 'CUST_DEV_SPLITS')
|
|
cust_dev_splits,
|
|
-- locaie_cluster -- eigen tabel - nvt voor menz
|
|
(SELECT mkm.mld_kenmerkmelding_waarde
|
|
FROM mld_kenmerkmelding mkm, mld_kenmerk k, mld_srtkenmerk sk
|
|
WHERE mkm.mld_melding_key = m.mld_melding_key
|
|
AND mkm.mld_kenmerk_key = k.mld_kenmerk_key
|
|
AND k.mld_srtkenmerk_key = sk.mld_srtkenmerk_key
|
|
AND sk.mld_srtkenmerk_upper = 'GEBOUW')
|
|
gebouw,
|
|
(SELECT TO_CHAR(TO_DATE(mkm.mld_kenmerkmelding_waarde,'dd-mm-yyyy'),'dd-mm-yyyy')
|
|
FROM mld_kenmerkmelding mkm, mld_kenmerk k, mld_srtkenmerk sk
|
|
WHERE mkm.mld_melding_key = m.mld_melding_key
|
|
AND mkm.mld_kenmerk_key = k.mld_kenmerk_key
|
|
AND k.mld_srtkenmerk_key = sk.mld_srtkenmerk_key
|
|
AND sk.mld_srtkenmerk_upper = 'INGANGSDATUM')
|
|
ingangsdatum,
|
|
(SELECT k.prs_kostensoort_omschrijving
|
|
FROM mld_kenmerkmelding mkm, mld_kenmerk k, mld_srtkenmerk sk, aaxx_v_kostensoort k
|
|
WHERE mkm.mld_melding_key = m.mld_melding_key
|
|
AND mkm.mld_kenmerk_key = k.mld_kenmerk_key
|
|
AND fac.safe_to_number(mkm.mld_kenmerkmelding_waarde) = k.prs_kostensoort_key
|
|
AND k.mld_srtkenmerk_key = sk.mld_srtkenmerk_key
|
|
AND sk.mld_srtkenmerk_upper = 'KOSTENSOORT OUD')
|
|
kostensoort_oud,
|
|
(SELECT k.prs_kostensoort_omschrijving
|
|
FROM mld_kenmerkmelding mkm, mld_kenmerk k, mld_srtkenmerk sk, aaxx_v_kostensoort k
|
|
WHERE mkm.mld_melding_key = m.mld_melding_key
|
|
AND mkm.mld_kenmerk_key = k.mld_kenmerk_key
|
|
AND fac.safe_to_number(mkm.mld_kenmerkmelding_waarde) = k.prs_kostensoort_key
|
|
AND k.mld_srtkenmerk_key = sk.mld_srtkenmerk_key
|
|
AND sk.mld_srtkenmerk_upper = 'KOSTENSOORT NIEUW')
|
|
kostensoort_nieuw,
|
|
(SELECT mkm.mld_kenmerkmelding_waarde
|
|
FROM mld_kenmerkmelding mkm, mld_kenmerk k, mld_srtkenmerk sk
|
|
WHERE mkm.mld_melding_key = m.mld_melding_key
|
|
AND mkm.mld_kenmerk_key = k.mld_kenmerk_key
|
|
AND k.mld_srtkenmerk_key = sk.mld_srtkenmerk_key
|
|
AND sk.mld_srtkenmerk_upper = 'OUD BUDGET')
|
|
oud_budget,
|
|
(SELECT mkm.mld_kenmerkmelding_waarde
|
|
FROM mld_kenmerkmelding mkm, mld_kenmerk k, mld_srtkenmerk sk
|
|
WHERE mkm.mld_melding_key = m.mld_melding_key
|
|
AND mkm.mld_kenmerk_key = k.mld_kenmerk_key
|
|
AND k.mld_srtkenmerk_key = sk.mld_srtkenmerk_key
|
|
AND sk.mld_srtkenmerk_upper = 'NIEUW BUDGET (OP JAARBASIS)')
|
|
nieuw_budget_jaarbasis,
|
|
(SELECT mkm.mld_kenmerkmelding_waarde
|
|
FROM mld_kenmerkmelding mkm, mld_kenmerk k, mld_srtkenmerk sk
|
|
WHERE mkm.mld_melding_key = m.mld_melding_key
|
|
AND mkm.mld_kenmerk_key = k.mld_kenmerk_key
|
|
AND k.mld_srtkenmerk_key = sk.mld_srtkenmerk_key
|
|
AND sk.mld_srtkenmerk_upper = 'NIEUW BUDGET (LOPEND JAAR)')
|
|
nieuw_budget_jaarlopend,
|
|
(SELECT mkm.mld_kenmerkmelding_waarde
|
|
FROM mld_kenmerkmelding mkm, mld_kenmerk k, mld_srtkenmerk sk
|
|
WHERE mkm.mld_melding_key = m.mld_melding_key
|
|
AND mkm.mld_kenmerk_key = k.mld_kenmerk_key
|
|
AND k.mld_srtkenmerk_key = sk.mld_srtkenmerk_key
|
|
AND sk.mld_srtkenmerk_upper = 'DEVIATIEBEDRAG (LOPENDE JAAR)')
|
|
deviatiebedrag_lopendjaar,
|
|
(SELECT mkm.mld_kenmerkmelding_waarde
|
|
FROM mld_kenmerkmelding mkm, mld_kenmerk k, mld_srtkenmerk sk
|
|
WHERE mkm.mld_melding_key = m.mld_melding_key
|
|
AND mkm.mld_kenmerk_key = k.mld_kenmerk_key
|
|
AND k.mld_srtkenmerk_key = sk.mld_srtkenmerk_key
|
|
AND sk.mld_srtkenmerk_upper = 'ENTITEIT')
|
|
entiteit,
|
|
(SELECT mkm.mld_kenmerkmelding_waarde
|
|
FROM mld_kenmerkmelding mkm, mld_kenmerk k, mld_srtkenmerk sk
|
|
WHERE mkm.mld_melding_key = m.mld_melding_key
|
|
AND mkm.mld_kenmerk_key = k.mld_kenmerk_key
|
|
AND k.mld_srtkenmerk_key = sk.mld_srtkenmerk_key
|
|
AND sk.mld_srtkenmerk_upper = 'INVESTERING TOTAAL')
|
|
investering_totaal,
|
|
(SELECT mkm.mld_kenmerkmelding_waarde
|
|
FROM mld_kenmerkmelding mkm, mld_kenmerk k, mld_srtkenmerk sk
|
|
WHERE mkm.mld_melding_key = m.mld_melding_key
|
|
AND mkm.mld_kenmerk_key = k.mld_kenmerk_key
|
|
AND k.mld_srtkenmerk_key = sk.mld_srtkenmerk_key
|
|
AND sk.mld_srtkenmerk_upper = 'OMSCHRIJVING INVESTERING')
|
|
omschrijving_investering,
|
|
(SELECT b.prs_bedrijf_naam
|
|
FROM mld_kenmerkmelding mkm, mld_kenmerk k, mld_srtkenmerk sk, prs_bedrijf b
|
|
WHERE mkm.mld_melding_key = m.mld_melding_key
|
|
AND mkm.mld_kenmerk_key = k.mld_kenmerk_key
|
|
AND fac.safe_to_number(mkm.mld_kenmerkmelding_waarde) = b.prs_bedrijf_key
|
|
AND k.mld_srtkenmerk_key = sk.mld_srtkenmerk_key
|
|
AND sk.mld_srtkenmerk_upper = 'LEVERANCIER')
|
|
leverancier,
|
|
(SELECT fu.fac_usrdata_omschr
|
|
FROM mld_kenmerkmelding mkm,
|
|
mld_kenmerk k,
|
|
mld_srtkenmerk sk,
|
|
fac_usrdata fu
|
|
WHERE mkm.mld_melding_key = m.mld_melding_key
|
|
AND mkm.mld_kenmerk_key = k.mld_kenmerk_key
|
|
AND fac.safe_to_number(mkm.mld_kenmerkmelding_waarde) = fu.fac_usrdata_key
|
|
AND k.mld_srtkenmerk_key = sk.mld_srtkenmerk_key
|
|
AND sk.mld_srtkenmerk_upper = 'RISICOCODE')
|
|
risico_code,
|
|
(SELECT mkm.mld_kenmerkmelding_waarde
|
|
FROM mld_kenmerkmelding mkm, mld_kenmerk k, mld_srtkenmerk sk
|
|
WHERE mkm.mld_melding_key = m.mld_melding_key
|
|
AND mkm.mld_kenmerk_key = k.mld_kenmerk_key
|
|
AND k.mld_srtkenmerk_key = sk.mld_srtkenmerk_key
|
|
AND sk.mld_srtkenmerk_upper = 'PO NUMMER OPDRACHTGEVER')
|
|
po_nummer,
|
|
(SELECT mkm.mld_kenmerkmelding_waarde
|
|
FROM mld_kenmerkmelding mkm, mld_kenmerk k, mld_srtkenmerk sk
|
|
WHERE mkm.mld_melding_key = m.mld_melding_key
|
|
AND mkm.mld_kenmerk_key = k.mld_kenmerk_key
|
|
AND k.mld_srtkenmerk_key = sk.mld_srtkenmerk_key
|
|
AND sk.mld_srtkenmerk_upper = 'CO NUMMER HEYDAY NAAR LEVERANCIER')
|
|
co_nummer
|
|
FROM mld_melding m,
|
|
mld_melding m1,
|
|
alg_v_allonrgoed_gegevens og,
|
|
alg_locatie l,
|
|
prs_perslid p, -- aanvrager
|
|
mld_stdmelding s,
|
|
mld_discipline md,
|
|
mld_disc_params mdp,
|
|
ins_srtdiscipline sd,
|
|
(
|
|
SELECT gr.ins_discipline_key, gg.prs_perslid_key, p.prs_perslid_naam
|
|
FROM fac_gebruikersgroep gg,
|
|
fac_groep g,
|
|
fac_groeprechten gr,
|
|
mld_discipline md,
|
|
ins_srtdiscipline sd,
|
|
fac_functie f,
|
|
prs_perslid p
|
|
WHERE gg.fac_groep_key = g.fac_groep_key
|
|
AND g.fac_groep_key = gr.fac_groep_key
|
|
AND gg.prs_perslid_key = p.prs_perslid_key
|
|
AND gr.fac_functie_key = f.fac_functie_key
|
|
AND gr.ins_discipline_key = md.ins_discipline_key
|
|
AND sd.ins_srtdiscipline_key = md.ins_srtdiscipline_key
|
|
AND md.ins_srtdiscipline_key = 81
|
|
AND INSTR(lower(md.ins_discipline_omschrijving),'goedkeuring') > 0
|
|
AND gr.fac_functie_key = 29 -- MLDBOF
|
|
GROUP BY gr.ins_discipline_key, gg.prs_perslid_key, p.prs_perslid_naam
|
|
) pf -- p-fiatteur
|
|
WHERE s.mld_stdmelding_key = m.mld_stdmelding_key
|
|
AND m.mld_melding_start_key = m1.mld_melding_key
|
|
AND m1.mld_melding_status = 4 -- Lopende aanvraag
|
|
AND m.mld_melding_status in (2, 4) -- Moet in principe nieuw (2) zijn om nog te kunnen annuleren
|
|
-- Indien toch in behandeling (4) genomen dan wel opnemen maar in styling annuleren disablen
|
|
AND m.prs_perslid_key = p.prs_perslid_key
|
|
AND sd.ins_srtdiscipline_key = md.ins_srtdiscipline_key
|
|
AND md.ins_discipline_key = s.mld_ins_discipline_key
|
|
AND md.ins_discipline_key = mdp.mld_ins_discipline_key
|
|
AND md.ins_srtdiscipline_key = 81
|
|
AND INSTR(lower(md.ins_discipline_omschrijving),'goedkeuring') > 0 -- daarbinnen alle vakgroepen tbv goedkeuring
|
|
AND md.ins_discipline_key = pf.ins_discipline_key
|
|
AND m.mld_alg_locatie_key = l.alg_locatie_key(+)
|
|
AND m.mld_alg_onroerendgoed_keys = og.alg_onroerendgoed_keys(+) ;
|
|
|
|
|
|
|
|
----------------------
|
|
-- EXPORTFUNCTIE ---
|
|
----------------------
|
|
|
|
-- script om dagelijks terugkerende scripts aan te roepen.
|
|
CREATE OR REPLACE PROCEDURE bfnl_select_daily_task (p_applname IN VARCHAR2, p_applrun IN VARCHAR2)
|
|
AS
|
|
BEGIN
|
|
|
|
aaxx_daily_task (p_applname, p_applrun);
|
|
|
|
END;
|
|
/
|
|
|
|
-- exact verkoop
|
|
CREATE OR REPLACE VIEW bfnl_v_export_exact_verkoop (RESULT, result_order) AS SELECT RESULT, result_order FROM aaxx_v_export_exact_verkoop;
|
|
|
|
CREATE OR REPLACE PROCEDURE bfnl_select_exact_verkoop (
|
|
p_applname IN VARCHAR2,
|
|
p_applrun IN VARCHAR2
|
|
)
|
|
AS
|
|
BEGIN
|
|
aaxx_select_exact_verkoop(p_applname, p_applrun, to_char(sysdate, 'yyyy'), 'CORE');
|
|
END;
|
|
/
|
|
|
|
CREATE OR REPLACE PROCEDURE bfnl_export_exact_verkoop (
|
|
p_applname IN VARCHAR2,
|
|
p_applrun IN VARCHAR2,
|
|
p_filedir IN VARCHAR2,
|
|
p_filename IN VARCHAR2
|
|
)
|
|
AS
|
|
BEGIN
|
|
aaxx_export_exact_verkoop(p_applname, p_applrun, p_filedir, p_filename, to_char(sysdate, 'yyyy'), 'CORE');
|
|
END;
|
|
/
|
|
|
|
-- exact verkoop over het vorige jaar
|
|
CREATE OR REPLACE VIEW bfnl_v_export_exact_verkoop_vj (RESULT, result_order) AS SELECT RESULT, result_order FROM aaxx_v_export_exact_verkoop;
|
|
|
|
CREATE OR REPLACE PROCEDURE bfnl_select_exact_verkoop_vj (
|
|
p_applname IN VARCHAR2,
|
|
p_applrun IN VARCHAR2
|
|
)
|
|
AS
|
|
BEGIN
|
|
aaxx_select_exact_verkoop(p_applname, p_applrun, to_char(to_number(to_char(sysdate, 'yyyy'))-1), 'CORE');
|
|
END;
|
|
/
|
|
|
|
CREATE OR REPLACE PROCEDURE bfnl_export_exact_verkoop_vj (
|
|
p_applname IN VARCHAR2,
|
|
p_applrun IN VARCHAR2,
|
|
p_filedir IN VARCHAR2,
|
|
p_filename IN VARCHAR2
|
|
)
|
|
AS
|
|
BEGIN
|
|
aaxx_export_exact_verkoop(p_applname, p_applrun, p_filedir, p_filename, to_char(to_number(to_char(sysdate, 'yyyy'))-1), 'CORE');
|
|
END;
|
|
/
|
|
|
|
-- exact projecturen (XML)
|
|
CREATE OR REPLACE VIEW bfnl_v_export_exact_uren (result, result_order)
|
|
AS SELECT result, result_order FROM aaxx_v_export_exact_uren_xml;
|
|
|
|
CREATE OR REPLACE PROCEDURE bfnl_select_exact_uren (
|
|
p_applname IN VARCHAR2,
|
|
p_applrun IN VARCHAR2
|
|
)
|
|
AS
|
|
BEGIN
|
|
aaxx_select_exact_uren_xml(p_applname, p_applrun, '');
|
|
END;
|
|
/
|
|
|
|
-- verwerk exact projecturen (XML)
|
|
CREATE OR REPLACE PROCEDURE bfnl_export_verwerk_exact_uren (
|
|
p_applname IN VARCHAR2,
|
|
p_applrun IN VARCHAR2,
|
|
p_filedir IN VARCHAR2,
|
|
p_filename IN VARCHAR2
|
|
)
|
|
AS
|
|
BEGIN
|
|
aaxx_export_verwerk_exact_uren(p_applname, p_applrun, p_filedir, p_filename, '');
|
|
END;
|
|
/
|
|
|
|
|
|
|
|
|
|
|
|
------ 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
|
|
|