Files
Database/PRS/PRS_VIE.SRC
Erik Groener a0e306f4d0 HPJI#69018 Verwijderen van een persoon kan ook wanneer deze nog contractmanager is
svn path=/Database/trunk/; revision=56334
2022-06-22 07:21:58 +00:00

1864 lines
73 KiB
Plaintext

#ifdef PRS // 01-12-98 PF
/*
* $Revision$
* $Id$
*/
DEFINIEER_VIEW_AANWEZIG(prs_afdeling,
prs_afdeling_verwijder,
prs_v_aanwezigafdeling,
0);
DEFINIEER_VIEW_AANWEZIG(prs_srtperslid,
prs_srtperslid_verwijder,
prs_v_aanwezigsrtperslid,
0);
DEFINIEER_VIEW_AANWEZIG(prs_perslid,
prs_perslid_verwijder,
prs_v_aanwezigperslid,
0);
DEFINIEER_VIEW_AANWEZIG(prs_perslid,
prs_perslid_verwijder,
all_v_aanwezigperslid,
0);
DEFINIEER_VIEW_AANWEZIG(prs_ruimteafdeling,
prs_ruimteafdeling_verwijder,
prs_v_aanwezigruimteafdeling,
0);
DEFINIEER_VIEW_AANWEZIG(prs_kostenplaats,
prs_kostenplaats_verwijder,
prs_v_aanwezigkostenplaats,
0);
DEFINIEER_VIEW_AANWEZIG(prs_bedrijf,
prs_bedrijf_verwijder,
prs_v_aanwezigbedrijf,
0);
/* 24-07-96/KTH Alle bedrijven die UITVOERENDE zijn */
DEFINIEER_VIEW_AANWEZIG(prs_bedrijf,
prs_bedrijf_verwijder,
prs_v_uitvoerendebedrijf,
0) AND prs_bedrijf_uitvoerende = 1;
/* 24-07-96/KTH Alle bedrijven die LEVERANCIER zijn */
DEFINIEER_VIEW_AANWEZIG(prs_bedrijf,
prs_bedrijf_verwijder,
prs_v_leverancierbedrijf,
0) AND prs_bedrijf_leverancier = 1;
/* 24-07-96/KTH Alle bedrijven waamee een CONTRACT kan worden afgesloten */
DEFINIEER_VIEW_AANWEZIG(prs_bedrijf,
prs_bedrijf_verwijder,
prs_v_contractbedrijf,
0) AND prs_bedrijf_contract = 1;
DEFINIEER_VIEW_AANWEZIG(prs_kenmerk, prs_kenmerk_verwijder,
prs_v_aanwezigkenmerk,0);
DEFINIEER_VIEW_AANWEZIG(prs_kenmerkLink, prs_kenmerkLink_verwijder,
prs_v_aanwezigkenmerkLink,0);
CREATE_VIEW(prs_v_perslid_gegevens,0) AS
SELECT PRS_P.prs_perslid_key,
PRS_P.prs_perslid_naam,
PRS_P.prs_perslid_upper,
PRS_P.prs_perslid_voorletters,
PRS_P.prs_perslid_tussenvoegsel,
PRS_P.prs_perslid_voornaam,
PRS_P.prs_perslid_initialen,
PRS_P.prs_perslid_nr,
PRS_P.prs_perslid_telefoonnr,
PRS_P.prs_perslid_email,
PRS_P.prs_perslid_mobiel,
PRS_P.prs_perslid_oslogin,
PRS_P.prs_afdeling_key,
PRS_A.prs_afdeling_naam,
PRS_A.prs_afdeling_upper,
PRS_A.prs_afdeling_omschrijving,
PRS_S.prs_srtperslid_omschrijving
FROM prs_v_aanwezigperslid PRS_P, prs_afdeling PRS_A,
prs_srtperslid PRS_S
WHERE PRS_P.prs_afdeling_key = PRS_A.prs_afdeling_key
AND PRS_P.prs_srtperslid_key = PRS_S.prs_srtperslid_key;
CREATE_VIEW (prs_v_perslid_print,0) AS
SELECT PRS_P.prs_perslid_key
,PRS_P.prs_perslid_naam
,PRS_P.prs_perslid_voorletters
,PRS_P.prs_perslid_tussenvoegsel
,PRS_P.prs_perslid_voornaam
,PRS_P.prs_perslid_initialen
,PRS_P.prs_perslid_nr
,PRS_A.prs_afdeling_naam
,PRS_P.prs_perslid_telefoonnr
,PRS_SP.prs_srtperslid_omschrijving
,k.prs_kostenplaats_nr AS prs_afdeling_kostenplaats
,k.prs_kostenplaats_nr
FROM prs_v_aanwezigperslid PRS_P
,prs_afdeling PRS_A
,prs_srtperslid PRS_SP
,prs_kostenplaats k
WHERE PRS_P.prs_afdeling_key = PRS_A.prs_afdeling_key
AND PRS_SP.prs_srtperslid_key(+) = PRS_P.prs_srtperslid_key
AND PRS_A.prs_kostenplaats_key = k.prs_kostenplaats_key(+);
CREATE_VIEW(prs_v_perslid_fullnames, 0) AS
SELECT prs_perslid_key,
prs_perslid_naam||DECODE(p.prs_perslid_voorletters,null,'',', '||p.prs_perslid_voorletters)
||DECODE(p.prs_perslid_tussenvoegsel,null,'',' '||p.prs_perslid_tussenvoegsel)
||DECODE(p.prs_perslid_voornaam,null,'',' ('||p.prs_perslid_voornaam||')') prs_perslid_naam_full,
DECODE (p.prs_perslid_voornaam, NULL, '', p.prs_perslid_voornaam || ' ')
|| DECODE (p.prs_perslid_tussenvoegsel, NULL, '', p.prs_perslid_tussenvoegsel || ' ')
|| prs_perslid_naam prs_perslid_naam_friendly
FROM prs_v_aanwezigperslid p;
CREATE_VIEW(prs_v_perslid_fullnames_all, 0) AS
SELECT prs_perslid_key,
prs_perslid_naam||DECODE(p.prs_perslid_voorletters,null,'',', '||p.prs_perslid_voorletters)
||DECODE(p.prs_perslid_tussenvoegsel,null,'',' '||p.prs_perslid_tussenvoegsel)
||DECODE(p.prs_perslid_voornaam,null,'',' ('||p.prs_perslid_voornaam||')') prs_perslid_naam_full,
DECODE (p.prs_perslid_voornaam, NULL, '', p.prs_perslid_voornaam || ' ')
|| DECODE (p.prs_perslid_tussenvoegsel, NULL, '', p.prs_perslid_tussenvoegsel || ' ')
|| prs_perslid_naam prs_perslid_naam_friendly,
prs_perslid_verwijder
FROM prs_perslid p;
CREATE_VIEW (prs_v_afdeling_perslid,0)
( prs_roerendgoed_key
, prs_roerendgoed_type
, prs_afdeling_key
, prs_afdeling_omschrijving
, prs_afdeling_upper
, prs_perslid_key
, prs_perslid_volnaam
, prs_perslid_upper
)
AS SELECT prs_a.prs_afdeling_key,
'A',
prs_a.prs_afdeling_key,
prs_a.prs_afdeling_omschrijving,
prs_a.prs_afdeling_upper,
TO_NUMBER (NULL),
NULL,
NULL
FROM prs_afdeling prs_a
UNION
SELECT prs_p.prs_perslid_key,
'P',
prs_a.prs_afdeling_key,
prs_a.prs_afdeling_omschrijving,
prs_a.prs_afdeling_upper,
prs_p.prs_perslid_key,
pf.prs_perslid_naam_full,
prs_p.prs_perslid_upper
FROM prs_perslid prs_p, prs_afdeling prs_a, prs_v_perslid_fullnames_all pf
WHERE prs_p.prs_afdeling_key = prs_a.prs_afdeling_key
AND prs_p.prs_perslid_key = pf.prs_perslid_key;
CREATE_VIEW (prs_v_afdeling_boom, 0)
( niveau,
prs_bedrijf_key,
prs_afdeling_key,
prs_afdeling_key1,
prs_afdeling_key2,
prs_afdeling_key3,
prs_afdeling_key4,
prs_afdeling_key5) AS
SELECT '1' Niveau,
a1.prs_bedrijf_key,
a1.prs_afdeling_key,
a1.prs_afdeling_key,
TO_NUMBER(NULL),
TO_NUMBER(NULL),
TO_NUMBER(NULL),
TO_NUMBER(NULL)
FROM prs_afdeling a1
WHERE a1.prs_afdeling_parentkey IS NULL
UNION
SELECT '2' Niveau,
a1.prs_bedrijf_key,
a2.prs_afdeling_key,
a1.prs_afdeling_key,
a2.prs_afdeling_key,
TO_NUMBER(NULL),
TO_NUMBER(NULL),
TO_NUMBER(NULL)
FROM prs_afdeling a1, prs_afdeling a2
WHERE a2.prs_afdeling_parentkey=a1.prs_afdeling_key
AND a1.prs_afdeling_parentkey IS NULL
UNION
SELECT '3' Niveau,
a1.prs_bedrijf_key,
a3.prs_afdeling_key,
a1.prs_afdeling_key,
a2.prs_afdeling_key,
a3.prs_afdeling_key,
TO_NUMBER(NULL),
TO_NUMBER(NULL)
FROM prs_afdeling a1, prs_afdeling a2, prs_afdeling a3
WHERE a2.prs_afdeling_parentkey=a1.prs_afdeling_key
AND a3.prs_afdeling_parentkey=a2.prs_afdeling_key
AND a1.prs_afdeling_parentkey IS NULL
UNION
SELECT '4' Niveau,
a1.prs_bedrijf_key,
a4.prs_afdeling_key,
a1.prs_afdeling_key,
a2.prs_afdeling_key,
a3.prs_afdeling_key,
a4.prs_afdeling_key,
TO_NUMBER(NULL)
FROM prs_afdeling a1, prs_afdeling a2, prs_afdeling a3, prs_afdeling a4
WHERE a2.prs_afdeling_parentkey=a1.prs_afdeling_key
AND a3.prs_afdeling_parentkey=a2.prs_afdeling_key
AND a4.prs_afdeling_parentkey=a3.prs_afdeling_key
AND a1.prs_afdeling_parentkey IS NULL
UNION
SELECT '5' Niveau,
a1.prs_bedrijf_key,
a5.prs_afdeling_key,
a1.prs_afdeling_key,
a2.prs_afdeling_key,
a3.prs_afdeling_key,
a4.prs_afdeling_key,
a5.prs_afdeling_key
FROM prs_afdeling a1, prs_afdeling a2, prs_afdeling a3, prs_afdeling a4, prs_afdeling a5
WHERE a2.prs_afdeling_parentkey=a1.prs_afdeling_key
AND a3.prs_afdeling_parentkey=a2.prs_afdeling_key
AND a4.prs_afdeling_parentkey=a3.prs_afdeling_key
AND a5.prs_afdeling_parentkey=a4.prs_afdeling_key
AND a1.prs_afdeling_parentkey IS NULL;
-- De 'aanwezig'-variant van bovenstaande boom, en dat is handiger dan je denkt
-- Een aanwezige afdeling met ergens daarboven een parent die niet aanwezig is,
-- is effectief namelijk eigenlijk niet aanwezig.
-- Kan dus ook gebruikt worden om te checken of een afdeling echt nog aanwezig is
CREATE_VIEW (prs_v_aanwezigafdeling_boom, 0)
(
niveau,
prs_bedrijf_key,
prs_afdeling_key,
prs_afdeling_key1,
prs_afdeling_key2,
prs_afdeling_key3,
prs_afdeling_key4,
prs_afdeling_key5
)
AS
SELECT '1' niveau,
a1.prs_bedrijf_key,
a1.prs_afdeling_key,
a1.prs_afdeling_key,
TO_NUMBER (NULL),
TO_NUMBER (NULL),
TO_NUMBER (NULL),
TO_NUMBER (NULL)
FROM prs_afdeling a1
WHERE a1.prs_afdeling_parentkey IS NULL AND a1.prs_afdeling_verwijder IS NULL
UNION
SELECT '2' niveau,
a1.prs_bedrijf_key,
a2.prs_afdeling_key,
a1.prs_afdeling_key,
a2.prs_afdeling_key,
TO_NUMBER (NULL),
TO_NUMBER (NULL),
TO_NUMBER (NULL)
FROM prs_afdeling a1, prs_afdeling a2
WHERE a2.prs_afdeling_parentkey = a1.prs_afdeling_key
AND a1.prs_afdeling_parentkey IS NULL
AND a1.prs_afdeling_verwijder IS NULL
AND a2.prs_afdeling_verwijder IS NULL
UNION
SELECT '3' niveau,
a1.prs_bedrijf_key,
a3.prs_afdeling_key,
a1.prs_afdeling_key,
a2.prs_afdeling_key,
a3.prs_afdeling_key,
TO_NUMBER (NULL),
TO_NUMBER (NULL)
FROM prs_afdeling a1, prs_afdeling a2, prs_afdeling a3
WHERE a2.prs_afdeling_parentkey = a1.prs_afdeling_key
AND a3.prs_afdeling_parentkey = a2.prs_afdeling_key
AND a1.prs_afdeling_parentkey IS NULL
AND a1.prs_afdeling_verwijder IS NULL
AND a2.prs_afdeling_verwijder IS NULL
AND a3.prs_afdeling_verwijder IS NULL
UNION
SELECT '4' niveau,
a1.prs_bedrijf_key,
a4.prs_afdeling_key,
a1.prs_afdeling_key,
a2.prs_afdeling_key,
a3.prs_afdeling_key,
a4.prs_afdeling_key,
TO_NUMBER (NULL)
FROM prs_afdeling a1,
prs_afdeling a2,
prs_afdeling a3,
prs_afdeling a4
WHERE a2.prs_afdeling_parentkey = a1.prs_afdeling_key
AND a3.prs_afdeling_parentkey = a2.prs_afdeling_key
AND a4.prs_afdeling_parentkey = a3.prs_afdeling_key
AND a1.prs_afdeling_parentkey IS NULL
AND a1.prs_afdeling_verwijder IS NULL
AND a2.prs_afdeling_verwijder IS NULL
AND a3.prs_afdeling_verwijder IS NULL
AND a4.prs_afdeling_verwijder IS NULL
UNION
SELECT '5' niveau,
a1.prs_bedrijf_key,
a5.prs_afdeling_key,
a1.prs_afdeling_key,
a2.prs_afdeling_key,
a3.prs_afdeling_key,
a4.prs_afdeling_key,
a5.prs_afdeling_key
FROM prs_afdeling a1,
prs_afdeling a2,
prs_afdeling a3,
prs_afdeling a4,
prs_afdeling a5
WHERE a2.prs_afdeling_parentkey = a1.prs_afdeling_key
AND a3.prs_afdeling_parentkey = a2.prs_afdeling_key
AND a4.prs_afdeling_parentkey = a3.prs_afdeling_key
AND a5.prs_afdeling_parentkey = a4.prs_afdeling_key
AND a1.prs_afdeling_parentkey IS NULL
AND a1.prs_afdeling_verwijder IS NULL
AND a2.prs_afdeling_verwijder IS NULL
AND a3.prs_afdeling_verwijder IS NULL
AND a4.prs_afdeling_verwijder IS NULL
AND a5.prs_afdeling_verwijder IS NULL;
CREATE_VIEW(prs_v_afdeling_fullnames, 0)
( NIVEAU,
PRS_AFDELING_KEY,
PRS_AFDELING_NAAM,
PRS_AFDELING_NAAM1,
PRS_AFDELING_NAAM2,
PRS_AFDELING_NAAM3,
PRS_AFDELING_NAAM4,
PRS_AFDELING_NAAM5,
PRS_AFDELING_NAAM6,
PRS_BEDRIJF_KEY ) AS
SELECT 1,
a1.prs_afdeling_key,
a1.prs_afdeling_naam,
a1.prs_afdeling_naam || ' [' || a1.prs_afdeling_omschrijving || ']',
a1.prs_afdeling_naam,
a1.prs_afdeling_omschrijving,
a1.prs_afdeling_omschrijving,
a1.prs_afdeling_omschrijving,
a1.prs_afdeling_naam || '-' || a1.prs_afdeling_omschrijving,
a1.prs_bedrijf_key
FROM PRS_AFDELING a1
WHERE a1.prs_afdeling_parentkey IS NULL
UNION ALL
SELECT 2,
a2.prs_afdeling_key,
a2.prs_afdeling_omschrijving,
a1.prs_afdeling_naam || '-' || a2.prs_afdeling_omschrijving,
a1.prs_afdeling_naam || '-' || a2.prs_afdeling_naam,
a2.prs_afdeling_naam,
a2.prs_afdeling_omschrijving || ' [' || a1.prs_afdeling_omschrijving || ']',
a2.prs_afdeling_omschrijving || ' [' || a1.prs_afdeling_omschrijving || ']',
a2.prs_afdeling_naam || '-' || a2.prs_afdeling_omschrijving,
a1.prs_bedrijf_key
FROM PRS_AFDELING a1, PRS_AFDELING a2
WHERE a2.prs_afdeling_parentkey = a1.prs_afdeling_key
AND a1.prs_afdeling_parentkey is NULL
UNION ALL
SELECT 3,
a3.prs_afdeling_key,
a3.prs_afdeling_omschrijving,
a1.prs_afdeling_naam || '-' || a2.prs_afdeling_naam || '-' || a3.prs_afdeling_omschrijving,
a1.prs_afdeling_naam || '-' || a2.prs_afdeling_naam || '-' || a3.prs_afdeling_naam,
a3.prs_afdeling_naam,
a3.prs_afdeling_omschrijving || ' [' || a1.prs_afdeling_omschrijving || ']',
a3.prs_afdeling_omschrijving || ' [' || a1.prs_afdeling_naam || '-' || a2.prs_afdeling_naam || ']',
a3.prs_afdeling_naam || '-' || a3.prs_afdeling_omschrijving,
a1.prs_bedrijf_key
FROM PRS_AFDELING a1, PRS_AFDELING a2, PRS_AFDELING a3
WHERE a3.prs_afdeling_parentkey = a2.prs_afdeling_key
AND a2.prs_afdeling_parentkey = a1.prs_afdeling_key
AND a1.prs_afdeling_parentkey is NULL
UNION ALL
SELECT 4,
a4.prs_afdeling_key,
a4.prs_afdeling_omschrijving,
a1.prs_afdeling_naam || '-' || a2.prs_afdeling_naam || '-' || a3.prs_afdeling_naam || '-' || a4.prs_afdeling_omschrijving,
a1.prs_afdeling_naam || '-' || a2.prs_afdeling_naam || '-' || a3.prs_afdeling_naam || '-' || a4.prs_afdeling_naam,
a4.prs_afdeling_naam,
a4.prs_afdeling_omschrijving || ' [' || a1.prs_afdeling_omschrijving || ']',
a4.prs_afdeling_omschrijving || ' [' || a1.prs_afdeling_naam || '-' || a2.prs_afdeling_naam || '-' || a3.prs_afdeling_naam || ']',
a4.prs_afdeling_naam || '-' || a4.prs_afdeling_omschrijving,
a1.prs_bedrijf_key
FROM PRS_AFDELING a1, PRS_AFDELING a2, PRS_AFDELING a3, PRS_AFDELING a4
WHERE a4.prs_afdeling_parentkey = a3.prs_afdeling_key
AND a3.prs_afdeling_parentkey = a2.prs_afdeling_key
AND a2.prs_afdeling_parentkey = a1.prs_afdeling_key
AND a1.prs_afdeling_parentkey is NULL
UNION ALL
SELECT 5,
a5.prs_afdeling_key,
a5.prs_afdeling_omschrijving,
a1.prs_afdeling_naam || '-' || a2.prs_afdeling_naam || '-' || a3.prs_afdeling_naam || '-' || a4.prs_afdeling_naam || '-' || a5.prs_afdeling_omschrijving,
a1.prs_afdeling_naam || '-' || a2.prs_afdeling_naam || '-' || a3.prs_afdeling_naam || '-' || a4.prs_afdeling_naam || '-' || a5.prs_afdeling_naam,
a5.prs_afdeling_naam,
a5.prs_afdeling_omschrijving || ' [' || a1.prs_afdeling_omschrijving || ']',
a5.prs_afdeling_omschrijving || ' [' || a1.prs_afdeling_naam || '-' || a2.prs_afdeling_naam || '-' || a3.prs_afdeling_naam || '-' || a4.prs_afdeling_naam || ']',
a5.prs_afdeling_naam || '-' || a5.prs_afdeling_omschrijving,
a1.prs_bedrijf_key
FROM PRS_AFDELING a1, PRS_AFDELING a2, PRS_AFDELING a3, PRS_AFDELING a4, PRS_AFDELING a5
WHERE a5.prs_afdeling_parentkey = a4.prs_afdeling_key
AND a4.prs_afdeling_parentkey = a3.prs_afdeling_key
AND a3.prs_afdeling_parentkey = a2.prs_afdeling_key
AND a2.prs_afdeling_parentkey = a1.prs_afdeling_key
AND a1.prs_afdeling_parentkey is NULL;
CREATE_VIEW (PRS_V_AFDELING_BOOM21, 0 )
(PRS_AFDELING_KEY1)
AS
SELECT a1.prs_afdeling_key
FROM prs_afdeling a1
WHERE a1.prs_afdeling_parentkey IS NULL;
CREATE_VIEW (PRS_V_AFDELING_BOOM22, 0 )
(PRS_AFDELING_KEY1, PRS_AFDELING_KEY2)
AS
SELECT a1.prs_afdeling_key, a2.prs_afdeling_key
FROM prs_afdeling a1, prs_afdeling a2
WHERE a2.prs_afdeling_parentkey = a1.prs_afdeling_key
AND a1.prs_afdeling_parentkey IS NULL;
CREATE_VIEW (PRS_V_AFDELING_BOOM23, 0 )
(PRS_AFDELING_KEY1, PRS_AFDELING_KEY2, PRS_AFDELING_KEY3)
AS
SELECT
a1.prs_afdeling_key,
a2.prs_afdeling_key,
a3.prs_afdeling_key
FROM prs_afdeling a1, prs_afdeling a2, prs_afdeling a3
WHERE a2.prs_afdeling_parentkey=a1.prs_afdeling_key
AND a3.prs_afdeling_parentkey=a2.prs_afdeling_key
AND a1.prs_afdeling_parentkey IS NULL;
CREATE_VIEW (PRS_V_AFDELING_BOOM24, 0)
(PRS_AFDELING_KEY1, PRS_AFDELING_KEY2, PRS_AFDELING_KEY3, PRS_AFDELING_KEY4)
AS
SELECT a1.prs_afdeling_key,
a2.prs_afdeling_key,
a3.prs_afdeling_key,
a4.prs_afdeling_key
FROM prs_afdeling a1, prs_afdeling a2, prs_afdeling a3, prs_afdeling a4
WHERE a2.prs_afdeling_parentkey=a1.prs_afdeling_key
AND a3.prs_afdeling_parentkey=a2.prs_afdeling_key
AND a4.prs_afdeling_parentkey=a3.prs_afdeling_key
AND a1.prs_afdeling_parentkey IS NULL;
CREATE_VIEW (PRS_V_AFDELING_BOOM25, 0 )
(PRS_AFDELING_KEY1, PRS_AFDELING_KEY2, PRS_AFDELING_KEY3, PRS_AFDELING_KEY4, PRS_AFDELING_KEY5)
AS
SELECT
a1.prs_afdeling_key,
a2.prs_afdeling_key,
a3.prs_afdeling_key,
a4.prs_afdeling_key,
a5.prs_afdeling_key
FROM prs_afdeling a1, prs_afdeling a2, prs_afdeling a3, prs_afdeling a4, prs_afdeling a5
WHERE a2.prs_afdeling_parentkey=a1.prs_afdeling_key
AND a3.prs_afdeling_parentkey=a2.prs_afdeling_key
AND a4.prs_afdeling_parentkey=a3.prs_afdeling_key
AND a5.prs_afdeling_parentkey=a4.prs_afdeling_key
AND a1.prs_afdeling_parentkey IS NULL;
CREATE_VIEW (prs_v_afdeling_familie_oud, 0 )
(PRS_AFDELING_KEY, PRS_AFDELING_ELDER_KEY, NIVEAU)
AS
SELECT prs_afdeling_key5 prs_afdeling_key,
prs_afdeling_key5 prs_afdeling_elder_key, 5 niveau
FROM prs_v_afdeling_boom25
UNION ALL
SELECT prs_afdeling_key5, prs_afdeling_key4, 4
FROM prs_v_afdeling_boom25
UNION ALL
SELECT prs_afdeling_key5, prs_afdeling_key3, 3
FROM prs_v_afdeling_boom25
UNION ALL
SELECT prs_afdeling_key5, prs_afdeling_key2, 2
FROM prs_v_afdeling_boom25
UNION ALL
SELECT prs_afdeling_key5, prs_afdeling_key1, 1
FROM prs_v_afdeling_boom25
UNION ALL
SELECT prs_afdeling_key4, prs_afdeling_key4, 4
FROM prs_v_afdeling_boom24
UNION ALL
SELECT prs_afdeling_key4, prs_afdeling_key3, 3
FROM prs_v_afdeling_boom24
UNION ALL
SELECT prs_afdeling_key4, prs_afdeling_key2, 2
FROM prs_v_afdeling_boom24
UNION ALL
SELECT prs_afdeling_key4, prs_afdeling_key1, 1
FROM prs_v_afdeling_boom24
UNION ALL
SELECT prs_afdeling_key3, prs_afdeling_key3, 3
FROM prs_v_afdeling_boom23
UNION ALL
SELECT prs_afdeling_key3, prs_afdeling_key2, 2
FROM prs_v_afdeling_boom23
UNION ALL
SELECT prs_afdeling_key3, prs_afdeling_key1, 1
FROM prs_v_afdeling_boom23
UNION ALL
SELECT prs_afdeling_key2, prs_afdeling_key2, 2
FROM prs_v_afdeling_boom22
UNION ALL
SELECT prs_afdeling_key2, prs_afdeling_key1, 1
FROM prs_v_afdeling_boom22
UNION ALL
SELECT prs_afdeling_key1, prs_afdeling_key1, 1
FROM prs_v_afdeling_boom21 ;
// Compacte en efficiente versie van prs_v_afdeling_familie
CREATE_VIEW (prs_v_afdeling_familie, 0)
(PRS_AFDELING_KEY, PRS_AFDELING_ELDER_KEY, NIVEAU)
AS
WITH
levels
AS
( SELECT prs_afdeling_key,
COALESCE (CONNECT_BY_ROOT (prs_afdeling_parentkey), prs_afdeling_key) prs_afdeling_elder_key,
LEVEL niveau
FROM prs_afdeling
CONNECT BY PRIOR prs_afdeling_key = prs_afdeling_parentkey
ORDER BY prs_afdeling_key, niveau)
SELECT ll.prs_afdeling_key,
ll.prs_afdeling_elder_key,
(SELECT MAX (l2.niveau)
FROM levels l2
WHERE ll.prs_afdeling_elder_key = l2.prs_afdeling_key)
niveau
FROM levels ll
ORDER BY prs_afdeling_key, niveau;
--
--
CREATE_VIEW(prs_v_afdeling, 0)
( prs_afdeling_key,
prs_afdeling_parentkey,
prs_afdeling_naam,
prs_afdeling_naam1,
prs_afdeling_naam2,
prs_afdeling_naam3,
prs_afdeling_naam4,
prs_afdeling_naam5,
prs_afdeling_naam6,
prs_afdeling_upper,
prs_afdeling_omschrijving,
prs_kostenplaats_key,
mld_adres_key,
prs_afdeling_aanmaak,
prs_afdeling_verwijder,
prs_bedrijf_key,
niveau ) AS
SELECT a.prs_afdeling_key,
a.prs_afdeling_parentkey,
b.prs_afdeling_naam,
b.prs_afdeling_naam1,
b.prs_afdeling_naam2,
b.prs_afdeling_naam3,
b.prs_afdeling_naam4,
b.prs_afdeling_naam5,
b.prs_afdeling_naam6,
UPPER(a.prs_afdeling_naam) prs_afdeling_upper,
a.prs_afdeling_omschrijving,
a.prs_kostenplaats_key,
a.mld_adres_key,
a.prs_afdeling_aanmaak,
a.prs_afdeling_verwijder,
b.prs_bedrijf_key,
b.niveau
FROM prs_afdeling a, prs_v_afdeling_fullnames b
WHERE a.prs_afdeling_key=b.prs_afdeling_key;
-- NB: dit is een overrule!
DEFINIEER_VIEW_AANWEZIG(prs_v_afdeling,
prs_afdeling_verwijder,
prs_v_aanwezigafdeling,
0);
CREATE_VIEW (prs_v_prs_kostenplaats_info, 0)
(kpn_nummer,
kpn_omschrijving,
fclt_f_kpn_budgethouder,
fclt_f_kpn_groep_omschrijving,
fclt_f_kpn_groep_verantw
)
AS
SELECT prs_kostenplaats_nr kpn_nummer,
prs_kostenplaats_omschrijving kpn_omschrijving,
pf1.prs_perslid_naam_full kpn_budgethouder,
kpg.prs_kostenplaatsgrp_oms kpn_groep_omschrijving,
pf2.prs_perslid_naam_full kpn_groep_verantw
FROM prs_v_aanwezigkostenplaats kp,
prs_v_perslid_fullnames pf1,
prs_v_perslid_fullnames pf2,
prs_kostenplaatsgrp kpg
WHERE kp.prs_perslid_key = pf1.prs_perslid_key(+)
AND kp.prs_kostenplaatsgrp_key = kpg.prs_kostenplaatsgrp_key(+)
AND kpg.prs_perslid_key = pf2.prs_perslid_key(+);
/* Views voor de HOOFDwerkplek van persleden */
-- Deze is veel sneller dan de eropvolgende, dus die gebruiken als je alleen de hwp nodig hebt
CREATE_VIEW(prs_v_hoofdperslidwerkplek2, 0)
(
prs_perslid_key,
prs_werkplek_key,
aantal
)
AS
SELECT prs_perslid_key, pwp.prs_werkplek_key, 1
FROM prs_perslidwerkplek pwp, prs_werkplek wp
WHERE pwp.prs_werkplek_key = wp.prs_werkplek_key
AND wp.prs_werkplek_virtueel = 0
AND NOT EXISTS
(SELECT ''
FROM prs_perslidwerkplek pwp2, prs_werkplek wp2
WHERE pwp.prs_perslid_key = pwp2.prs_perslid_key
AND pwp2.prs_werkplek_key = wp2.prs_werkplek_key
AND wp2.prs_werkplek_virtueel = 0
AND pwp.prs_werkplek_key <> pwp2.prs_werkplek_key
AND COALESCE (pwp2.prs_perslidwerkplek_volgnr, 10000 + pwp2.prs_perslidwerkplek_key) <
COALESCE (pwp.prs_perslidwerkplek_volgnr, 10000 + pwp.prs_perslidwerkplek_key));
CREATE_VIEW(prs_v_hoofdperslidwerkplek, 0)
AS
SELECT prs_perslid_key,
MAX (pwp.prs_werkplek_key) prs_werkplek_key,
1 aantal
FROM prs_perslidwerkplek pwp, prs_werkplek wp
WHERE pwp.prs_werkplek_key = wp.prs_werkplek_key
AND wp.prs_werkplek_virtueel = 0
GROUP BY prs_perslid_key
HAVING COUNT (pwp.prs_werkplek_key) = 1
UNION ALL
SELECT prs_perslid_key, pwp.prs_werkplek_key, 2
FROM prs_perslidwerkplek pwp, prs_werkplek wp
WHERE pwp.prs_werkplek_key = wp.prs_werkplek_key
AND wp.prs_werkplek_virtueel = 0
AND NOT EXISTS
(SELECT ''
FROM prs_perslidwerkplek pwp2, prs_werkplek wp2
WHERE pwp.prs_perslid_key = pwp2.prs_perslid_key
AND pwp2.prs_werkplek_key = wp2.prs_werkplek_key
AND wp2.prs_werkplek_virtueel = 0
AND pwp.prs_werkplek_key <> pwp2.prs_werkplek_key
AND COALESCE (pwp2.prs_perslidwerkplek_volgnr, 10000+pwp2.prs_perslidwerkplek_key) <
COALESCE (pwp.prs_perslidwerkplek_volgnr, 10000+pwp.prs_perslidwerkplek_key))
AND NOT EXISTS
( SELECT prs_perslid_key
FROM prs_perslidwerkplek pwp3, prs_werkplek wp3
WHERE pwp3.prs_werkplek_key = wp3.prs_werkplek_key
AND wp3.prs_werkplek_virtueel = 0
AND pwp3.prs_perslid_key = pwp.prs_perslid_key
GROUP BY prs_perslid_key
HAVING COUNT (pwp3.prs_werkplek_key) = 1);
CREATE_VIEW(prs_v_werkplek_gegevens,0)
(
prs_werkplek_key,
prs_werkplek_volgnr,
prs_werkplek_omschrijving,
prs_werkplek_opp,
prs_werkplek_module,
prs_werkplek_virtueel,
prs_werkplek_type,
alg_ruimte_key,
alg_ruimte_nr,
alg_ruimte_upper_nr,
alg_ruimte_bruto_vloeropp,
alg_verdieping_key,
alg_verdieping_code,
alg_verdieping_volgnr,
alg_verdieping_omschrijving,
alg_gebouw_key,
alg_gebouw_code,
alg_gebouw_omschrijving,
alg_gebouw_upper,
alg_locatie_key,
alg_locatie_code,
alg_ruimte_aanduiding,
prs_werkplek_aanduiding,
prs_werkplek_getekend,
alg_ruimte_omschrijving,
prs_werkplek_vastopp
)
AS
SELECT prs_w.prs_werkplek_key,
prs_w.prs_werkplek_volgnr,
prs_w.prs_werkplek_omschrijving,
prs_w.prs_werkplek_opp,
prs_w.prs_werkplek_module,
prs_w.prs_werkplek_virtueel,
prs_w.prs_werkplek_type,
alg_r.alg_ruimte_key,
alg_r.alg_ruimte_nr,
alg_r.alg_ruimte_upper_nr,
alg_r.alg_ruimte_bruto_vloeropp,
alg_v.alg_verdieping_key,
alg_v.alg_verdieping_code,
alg_v.alg_verdieping_volgnr,
alg_v.alg_verdieping_omschrijving,
alg_g.alg_gebouw_key,
alg_g.alg_gebouw_code,
alg_g.alg_gebouw_omschrijving,
alg_g.alg_gebouw_upper,
alg_g.alg_locatie_key,
alg_l.alg_locatie_code,
DECODE (SUBSTR (alg_g.alg_gebouw_code, 1, 1), '_', '', alg_g.alg_gebouw_code)
|| DECODE (SUBSTR (alg_v.alg_verdieping_code, 1, 1),
'_', '',
'-' || alg_v.alg_verdieping_code)
|| DECODE (SUBSTR (alg_r.alg_ruimte_nr, 1, 1), '_', '', '-' || alg_r.alg_ruimte_nr),
alg_l.alg_locatie_code
|| DECODE (SUBSTR (alg_g.alg_gebouw_code, 1, 1), '_', '', '-' ||alg_g.alg_gebouw_code)
|| DECODE (SUBSTR (alg_v.alg_verdieping_code, 1, 1),
'_', '',
'-' || alg_v.alg_verdieping_code)
|| DECODE (SUBSTR (alg_r.alg_ruimte_nr, 1, 1), '_', '', '-' || alg_r.alg_ruimte_nr)
|| '/'
|| TO_CHAR (prs_w.prs_werkplek_volgnr),
prs_w.prs_werkplek_getekend,
alg_r.alg_ruimte_omschrijving,
prs_w.prs_werkplek_vastopp
FROM prs_werkplek prs_w,
alg_ruimte alg_r,
alg_verdieping alg_v,
alg_gebouw alg_g,
alg_locatie alg_l
WHERE alg_r.alg_verdieping_key = alg_v.alg_verdieping_key
AND alg_v.alg_gebouw_key = alg_g.alg_gebouw_key
AND prs_w.prs_alg_ruimte_key = alg_r.alg_ruimte_key
AND alg_g.alg_locatie_key = alg_l.alg_locatie_key;
/* View om te bepalen wat het totale bezettingspercentage van een werkplek is */
CREATE_VIEW(prs_v_werkplek_bezetting, 0)
(prs_werkplek_key,
prs_werkplek_bezetting) AS
SELECT PRS_W.prs_werkplek_key,
NVL(SUM(PRS_PW.prs_perslidwerkplek_bezetting), 0)
FROM prs_werkplek PRS_W,
prs_perslidwerkplek PRS_PW
WHERE PRS_W.prs_werkplek_key = PRS_PW.prs_werkplek_key (+)
GROUP BY PRS_W.prs_werkplek_key;
/* View om alle werkplekken te koppelen aan persleden, met outerjoin. */
CREATE_VIEW(prs_v_perslidwerkplek_gegevens, 0)
(prs_werkplek_key,
prs_werkplek_volgnr,
prs_werkplek_omschrijving,
prs_werkplek_opp,
prs_werkplek_aanduiding,
prs_werkplek_virtueel,
alg_ruimte_key,
alg_ruimte_nr,
alg_ruimte_upper_nr,
alg_verdieping_key,
alg_verdieping_code,
alg_verdieping_volgnr,
alg_verdieping_omschrijving,
alg_gebouw_key,
alg_gebouw_code,
alg_gebouw_omschrijving,
alg_gebouw_upper,
alg_locatie_key,
prs_perslidwerkplek_key,
prs_afdeling_key,
prs_perslid_key,
prs_afd_perslid_naam,
prs_afd_perslid_upper,
prs_perslidwerkplek_bezetting)
AS
SELECT prs_w.prs_werkplek_key, prs_w.prs_werkplek_volgnr, prs_w.prs_werkplek_omschrijving, prs_w.prs_werkplek_opp,
prs_w.prs_werkplek_aanduiding, prs_w.prs_werkplek_virtueel, prs_w.alg_ruimte_key, prs_w.alg_ruimte_nr,
prs_w.alg_ruimte_upper_nr, prs_w.alg_verdieping_key, prs_w.alg_verdieping_code, prs_w.alg_verdieping_volgnr,
prs_w.alg_verdieping_omschrijving, prs_w.alg_gebouw_key, prs_w.alg_gebouw_code, prs_w.alg_gebouw_omschrijving,
prs_w.alg_gebouw_upper, prs_w.alg_locatie_key, prs_pw.prs_perslidwerkplek_key, TO_NUMBER (NULL),
prs_pw.prs_perslid_key, pf.prs_perslid_naam_full, prs_p.prs_perslid_upper,
prs_pw.prs_perslidwerkplek_bezetting
FROM prs_v_werkplek_gegevens prs_w,
prs_perslidwerkplek prs_pw,
prs_perslid prs_p,
prs_v_perslid_fullnames_all pf
WHERE prs_w.prs_werkplek_key = prs_pw.prs_werkplek_key
AND prs_pw.prs_perslid_key IS NOT NULL
AND prs_pw.prs_perslid_key = prs_p.prs_perslid_key
AND prs_p.prs_perslid_key = pf.prs_perslid_key
UNION
SELECT prs_w.prs_werkplek_key, prs_w.prs_werkplek_volgnr, prs_w.prs_werkplek_omschrijving, prs_w.prs_werkplek_opp,
prs_w.prs_werkplek_aanduiding, prs_w.prs_werkplek_virtueel, prs_w.alg_ruimte_key, prs_w.alg_ruimte_nr,
prs_w.alg_ruimte_upper_nr, prs_w.alg_verdieping_key, prs_w.alg_verdieping_code, prs_w.alg_verdieping_volgnr,
prs_w.alg_verdieping_omschrijving, prs_w.alg_gebouw_key, prs_w.alg_gebouw_code, prs_w.alg_gebouw_omschrijving,
prs_w.alg_gebouw_upper, prs_w.alg_locatie_key, TO_NUMBER (NULL), TO_NUMBER (NULL), TO_NUMBER (NULL), '[Vrij]',
'[VRIJ]', 100 - prs_wb.prs_werkplek_bezetting
FROM prs_v_werkplek_gegevens prs_w, prs_v_werkplek_bezetting prs_wb
WHERE prs_w.prs_werkplek_key = prs_wb.prs_werkplek_key AND prs_wb.prs_werkplek_bezetting < 100;
/* View om werkplekken aan persleden te koppelen met afdeling. */
CREATE_VIEW(prs_v_werkplekperslid_gegevens,0) (prs_perslidwerkplek_key,
prs_perslid_key,
prs_afdeling_key,
prs_naam,
prs_werkplek_key,
prs_werkplek_volgnr,
prs_werkplek_opp,
alg_locatie_key,
alg_gebouw_omschrijving,
alg_gebouw_upper,
alg_verdieping_code,
alg_verdieping_omschrijving,
alg_ruimte_nr,
alg_ruimte_upper_nr
)
AS
SELECT prs_pw.prs_perslidwerkplek_key, prs_pw.prs_perslid_key, prs_p.prs_afdeling_key, pf.prs_perslid_naam_full,
prs_pw.prs_werkplek_key, prs_w.prs_werkplek_volgnr, prs_w.prs_werkplek_opp, prs_w.alg_locatie_key,
prs_w.alg_gebouw_omschrijving, prs_w.alg_gebouw_upper, prs_w.alg_verdieping_code,
prs_w.alg_verdieping_omschrijving, prs_w.alg_ruimte_nr, prs_w.alg_ruimte_upper_nr
FROM prs_perslidwerkplek prs_pw,
prs_perslid prs_p,
prs_v_werkplek_gegevens prs_w,
prs_v_perslid_fullnames_all pf
WHERE prs_pw.prs_perslid_key = prs_p.prs_perslid_key
AND prs_pw.prs_werkplek_key = prs_w.prs_werkplek_key
AND prs_p.prs_perslid_key = pf.prs_perslid_key;
/* View om werkplekken aan persleden te koppelen met afdeling, geen outer join. */
CREATE_VIEW(prs_v_werkplekafdeling_geg,0)
( prs_perslidwerkplek_key,
prs_afdeling_key,
prs_afdeling_naam,
prs_afdeling_upper,
prs_werkplek_key,
prs_werkplek_volgnr,
prs_werkplek_opp,
alg_locatie_key,
alg_gebouw_omschrijving,
alg_gebouw_upper,
alg_verdieping_code,
alg_verdieping_omschrijving,
alg_ruimte_key,
alg_ruimte_nr,
alg_ruimte_upper_nr,
alg_ruimte_bruto_vloeropp ) AS
SELECT PRS_PW.prs_perslidwerkplek_key,
PRS_A.prs_afdeling_key,
PRS_A.prs_afdeling_naam,
PRS_A.prs_afdeling_upper,
PRS_PW.prs_werkplek_key,
PRS_W.prs_werkplek_volgnr,
PRS_W.prs_werkplek_opp,
PRS_W.alg_locatie_key,
PRS_W.alg_gebouw_omschrijving,
PRS_W.alg_gebouw_upper,
PRS_W.alg_verdieping_code,
PRS_W.alg_verdieping_omschrijving,
PRS_W.alg_ruimte_key,
PRS_W.alg_ruimte_nr,
PRS_W.alg_ruimte_upper_nr,
PRS_W.alg_ruimte_bruto_vloeropp
FROM prs_perslidwerkplek PRS_PW, PRS_PERSLID PRS_P,
PRS_AFDELING PRS_A, prs_v_werkplek_gegevens PRS_W
WHERE PRS_PW.prs_perslid_key = PRS_P.prs_perslid_key
AND PRS_P.prs_afdeling_key = PRS_A.prs_afdeling_key
AND PRS_PW.prs_werkplek_key = PRS_W.prs_werkplek_key;
CREATE_VIEW(prs_v_uurloon_uitvoerende, 0)
(prs_uitvoerende_key, uurloon) AS
SELECT P.prs_perslid_key, P.prs_perslid_uurloon
FROM prs_v_aanwezigperslid P
WHERE P.prs_perslid_uurloon IS NOT NULL
UNION
SELECT P.prs_perslid_key, S.prs_srtperslid_uurloon
FROM prs_v_aanwezigperslid P, prs_v_aanwezigsrtperslid S
WHERE P.prs_perslid_uurloon IS NULL
AND P.prs_srtperslid_key = S.prs_srtperslid_key
AND S.prs_srtperslid_uurloon IS NOT NULL
AND S.prs_bedrijf_key IS NULL
UNION
SELECT S.prs_srtperslid_key, S.prs_srtperslid_uurloon
FROM prs_v_aanwezigsrtperslid S
UNION
SELECT B.prs_bedrijf_key, B.prs_bedrijf_uurloon
FROM prs_v_aanwezigbedrijf B
WHERE B.prs_bedrijf_uurloon IS NOT NULL;
CREATE_VIEW(prs_v_ruimte_afdeling ,0)
(prs_afdeling_key,
prs_afdeling_naam,
prs_werkplek_key,
prs_werkplek_opp,
alg_verdieping_key,
alg_verdieping_code,
alg_gebouw_key) AS
SELECT AF.prs_afdeling_key, -- Werkplekken gekoppeld aan personen
AF.prs_afdeling_naam,
PWP.prs_werkplek_key,
(WP.prs_werkplek_opp*PWP.prs_perslidwerkplek_bezetting)/100,
V.alg_verdieping_key,
V.alg_verdieping_code,
V.alg_gebouw_key
FROM prs_perslidwerkplek PWP, prs_v_werkplek_gegevens WP,
prs_perslid PL, prs_afdeling AF,
alg_ruimte R, alg_verdieping V
WHERE WP.prs_werkplek_key = PWP.prs_werkplek_key
AND PL.prs_perslid_key = PWP.prs_perslid_key
AND PL.prs_afdeling_key = AF.prs_afdeling_key
AND WP.alg_ruimte_key = R.alg_ruimte_key
AND R.alg_verdieping_key = V.alg_verdieping_key;
CREATE_VIEW(prs_v_ruimte_afdeling_total,0)
(prs_afdeling_key,
prs_afdeling_naam,
prs_afdeling_opp,
alg_verdieping_key,
alg_gebouw_key) AS
SELECT DISTINCT(RA.prs_afdeling_key),
RA.prs_afdeling_naam,
SUM(RA.prs_werkplek_opp),
RA.alg_verdieping_key,
RA.alg_gebouw_key
FROM prs_v_ruimte_afdeling RA
GROUP BY prs_afdeling_key,
prs_afdeling_naam,
alg_gebouw_key,
alg_verdieping_key,
prs_werkplek_opp;
--
-- Waarom hier?
CREATE_VIEW(fac_v_my_disciplines, 0)
( ins_discipline_key,
prs_perslid_key,
fac_gebruiker_alg_level_read,
fac_gebruiker_alg_level_write,
fac_gebruiker_prs_level_read,
fac_gebruiker_prs_level_write,
fac_functie_code,
fac_functie_module) AS
SELECT g.ins_discipline_key,
g.prs_perslid_key,
g.fac_gebruiker_alg_level_read,
g.fac_gebruiker_alg_level_write,
g.fac_gebruiker_prs_level_read,
g.fac_gebruiker_prs_level_write,
f.fac_functie_code,
f.fac_functie_module
FROM fac_v_webgebruiker g, FAC_FUNCTIE f
WHERE f.fac_functie_key = g.fac_functie_key
AND g.ins_discipline_key IS NOT NULL;
-- Oppervlakte van een werkplek, rekening houdend met andere werkplekken in de ruimte
-- die eventueel een vaste oppervlakte kunnen hebben
-- Het is een zware view dus sporadisch gebruiken!
CREATE_VIEW(prs_v_werkplek_oppervlakte, 0) (prs_werkplek_key, wpopp)
AS
SELECT prs_werkplek_key,
DECODE (prs_werkplek_vastopp,
1, prs_werkplek_opp,
(alg_ruimte_bruto_vloeropp - totvastopp
) / vrijwp
) wpopp
FROM (SELECT prs_alg_ruimte_key, COUNT (*),
COUNT (*) - COUNT (prs_werkplek_vastopp) vrijwp,
COUNT (prs_werkplek_vastopp) vastwp,
SUM (DECODE (prs_werkplek_vastopp,
1, prs_werkplek_opp,
0
)
) totvastopp
FROM prs_werkplek
GROUP BY prs_alg_ruimte_key) selopp,
alg_ruimte prj_r,
prs_werkplek prj_w
WHERE prj_r.alg_ruimte_key = prj_w.prs_alg_ruimte_key
AND selopp.prs_alg_ruimte_key = prj_r.alg_ruimte_key
ORDER BY prs_werkplek_key;
-- overzicht van verplichtingen
CREATE_VIEW(PRS_V_VERPLICHTING, 0)
(prs_perslid_key, fac_message_code, item, item_key, locatie_key, xmlnode)
AS
SELECT o.mld_uitvoerende_keys,
'PRS_OPENST_OPDRACHT',
(SELECT isd.ins_srtdiscipline_prefix
FROM ins_srtdiscipline isd, ins_tab_discipline id, mld_melding m
WHERE id.ins_srtdiscipline_key = isd.ins_srtdiscipline_key
AND std.mld_ins_discipline_key = id.ins_discipline_key
AND o.mld_melding_key = m.mld_melding_key)
|| TO_CHAR (o.mld_melding_key)
|| '/'
|| TO_CHAR (o.mld_opdr_bedrijfopdr_volgnr),
o.mld_opdr_key,
m.mld_alg_locatie_key,
'opdracht'
FROM mld_opdr o,
prs_perslid p,
mld_melding m,
mld_stdmelding std
WHERE o.mld_statusopdr_key IN (5, 8)
AND o.mld_melding_key = m.mld_melding_key
AND m.mld_stdmelding_key = std.mld_stdmelding_key
AND o.mld_uitvoerende_keys = p.prs_perslid_key
AND o.fac_activiteit_key IS NULL
UNION ALL
SELECT m.prs_perslid_key,
'PRS_OPENST_MELDING',
(SELECT isd.ins_srtdiscipline_prefix
FROM ins_srtdiscipline isd, ins_tab_discipline id
WHERE id.ins_srtdiscipline_key = isd.ins_srtdiscipline_key
AND std.mld_ins_discipline_key = id.ins_discipline_key)
|| TO_CHAR (m.mld_melding_key),
m.mld_melding_key,
m.mld_alg_locatie_key,
'melding'
FROM mld_melding m,
mld_stdmelding std
WHERE m.mld_stdmelding_key = std.mld_stdmelding_key
AND m.mld_melding_status IN (0, 2, 3, 4, 7)
AND m.fac_activiteit_key IS NULL
UNION ALL
SELECT b.prs_perslid_key,
'PRS_OPENST_BESTELLING',
TO_CHAR (bes_bestelling_key),
bes_bestelling_key,
ma.alg_locatie_key,
'bestelling'
FROM bes_bestelling b, mld_adres ma
WHERE b.bes_bestelling_status IN (5, 4, 3, 2)
AND b.mld_adres_key_lev = ma.mld_adres_key(+)
AND b.fac_activiteit_key IS NULL
AND EXISTS (SELECT 1
FROM bes_bestelling_item i
WHERE b.bes_bestelling_key = i.bes_bestelling_key)
UNION ALL
SELECT b.prs_perslid_key_voor,
'PRS_OPENST_BESTELLING',
TO_CHAR (bes_bestelling_key),
bes_bestelling_key,
ma.alg_locatie_key,
'bestelling'
FROM bes_bestelling b, mld_adres ma
WHERE b.bes_bestelling_status IN (5, 4, 3, 2)
AND b.mld_adres_key_lev = ma.mld_adres_key(+)
AND b.fac_activiteit_key IS NULL
AND EXISTS (SELECT 1
FROM bes_bestelling_item i
WHERE b.bes_bestelling_key = i.bes_bestelling_key)
UNION ALL
SELECT ins_alg_ruimte_key,
'PRS_BEZIT_OBJECT',
ins_deel_omschrijving,
ins_deel_key,
d.ins_alg_locatie_key,
'deel'
FROM ins_v_aanwezigdeel d, ins_tab_discipline id
WHERE d.ins_alg_ruimte_type = 'P'
AND id.ins_discipline_key = d.ins_discipline_key
AND id.ins_discipline_min_level <> 3
UNION ALL
SELECT rr.res_rsv_ruimte_host_key,
'PRS_OPENST_RES_R',
TO_CHAR (rr.res_reservering_key)
|| '/'
|| TO_CHAR (res_rsv_ruimte_volgnr),
rr.res_rsv_ruimte_key,
rg.alg_locatie_key,
'reservering'
FROM res_v_aanwezigrsv_ruimte rr,
res_ruimte_opstelling ro,
res_v_alg_ruimte_gegevens rg
WHERE rr.res_ruimte_opstel_key = ro.res_ruimte_opstel_key
AND ro.res_ruimte_key = rg.res_ruimte_key
AND rr.res_status_bo_key IN (4, 3, 2)
AND res_rsv_ruimte_tot > SYSDATE-14 -- na 14 dagen niet meer klagen
UNION ALL
SELECT rr.res_rsv_ruimte_host_key,
'PRS_OPENST_RES_V',
TO_CHAR (rr.res_reservering_key)
|| '/'
|| TO_CHAR (res_rsv_ruimte_volgnr),
rr.res_rsv_ruimte_key,
rg.alg_locatie_key,
'reservering'
FROM res_v_aanwezigrsv_deel rd, alg_v_onrgoed_boom rg, res_rsv_ruimte rr
WHERE rr.alg_ruimte_key = rg.alg_ruimte_key
AND rr.res_rsv_ruimte_key = rd.res_rsv_ruimte_key
AND rd.res_status_bo_key IN (4, 3, 2)
AND res_rsv_ruimte_tot > SYSDATE-14
UNION ALL
SELECT rr.res_rsv_ruimte_host_key,
'PRS_OPENST_RES_C',
TO_CHAR (rr.res_reservering_key)
|| '/'
|| TO_CHAR (res_rsv_ruimte_volgnr),
rr.res_rsv_ruimte_key,
rg.alg_locatie_key,
'reservering'
FROM res_v_aanwezigrsv_artikel ra,
alg_v_onrgoed_boom rg,
res_rsv_ruimte rr
WHERE rr.alg_ruimte_key = rg.alg_ruimte_key
AND rr.res_rsv_ruimte_key = ra.res_rsv_ruimte_key
AND ra.res_status_bo_key IN (4, 3, 2)
AND res_rsv_ruimte_tot > SYSDATE-14
UNION ALL
SELECT rr.res_rsv_ruimte_contact_key,
'PRS_OPENST_RES_RC',
TO_CHAR (rr.res_reservering_key)
|| '/'
|| TO_CHAR (res_rsv_ruimte_volgnr),
rr.res_rsv_ruimte_key,
rg.alg_locatie_key,
'reservering'
FROM res_v_aanwezigrsv_ruimte rr,
res_ruimte_opstelling ro,
res_v_alg_ruimte_gegevens rg
WHERE rr.res_ruimte_opstel_key = ro.res_ruimte_opstel_key
AND ro.res_ruimte_key = rg.res_ruimte_key
AND rr.res_status_bo_key IN (4, 3, 2)
AND res_rsv_ruimte_tot > SYSDATE-14
UNION ALL
SELECT rr.res_rsv_ruimte_contact_key,
'PRS_OPENST_RES_VC',
TO_CHAR (rr.res_reservering_key)
|| '/'
|| TO_CHAR (res_rsv_ruimte_volgnr),
rr.res_rsv_ruimte_key,
rg.alg_locatie_key,
'reservering'
FROM res_v_aanwezigrsv_deel rd, alg_v_onrgoed_boom rg, res_rsv_ruimte rr
WHERE rr.alg_ruimte_key = rg.alg_ruimte_key
AND rr.res_rsv_ruimte_key = rd.res_rsv_ruimte_key
AND rd.res_status_bo_key IN (4, 3, 2)
AND res_rsv_ruimte_tot > SYSDATE-14
UNION ALL
SELECT rr.res_rsv_ruimte_contact_key,
'PRS_OPENST_RES_CC',
TO_CHAR (rr.res_reservering_key)
|| '/'
|| TO_CHAR (res_rsv_ruimte_volgnr),
rr.res_rsv_ruimte_key,
rg.alg_locatie_key,
'reservering'
FROM res_v_aanwezigrsv_artikel ra,
alg_v_onrgoed_boom rg,
res_rsv_ruimte rr
WHERE rr.alg_ruimte_key = rg.alg_ruimte_key
AND rr.res_rsv_ruimte_key = ra.res_rsv_ruimte_key
AND ra.res_status_bo_key IN (4, 3, 2)
AND rr.alg_ruimte_key IS NOT NULL
AND res_rsv_ruimte_tot > SYSDATE-14
UNION ALL
SELECT a.bez_afspraak_host_key,
'PRS_AFSPRAAK_H',
TO_CHAR (a.bez_afspraak_datum, 'DD-MM-YYYY HH24:MI'),
a.bez_afspraak_key,
a.alg_locatie_key,
'afspraak'
FROM bez_afspraak a
WHERE a.bez_afspraak_datum > SYSDATE
UNION ALL
SELECT a.bez_afspraak_contact_key,
'PRS_AFSPRAAK_C',
TO_CHAR (a.bez_afspraak_datum, 'DD-MM-YYYY HH24:MI'),
a.bez_afspraak_key,
a.alg_locatie_key,
'afspraak'
FROM bez_afspraak a
WHERE a.bez_afspraak_datum > SYSDATE
UNION ALL
SELECT k.prs_perslid_key,
'PRS_BUDGETHOUDER_VAN',
k.prs_kostenplaats_nr,
k.prs_kostenplaats_key,
NULL,
'budgethouder'
FROM prs_kostenplaats k
WHERE prs_kostenplaats_verwijder IS NULL
AND (prs_kostenplaats_eind > SYSDATE OR prs_kostenplaats_eind IS NULL)
UNION ALL
SELECT k.prs_perslid_key,
'PRS_FIATTEUR_GROEP1',
k.prs_kostenplaatsgrp_oms,
k.prs_kostenplaatsgrp_key,
NULL,
'fiatteur'
FROM prs_kostenplaatsgrp k
UNION ALL
SELECT k.prs_kostenplaatsgrp_fiat2_key,
'PRS_FIATTEUR_GROEP2',
k.prs_kostenplaatsgrp_oms,
k.prs_kostenplaatsgrp_key,
NULL,
'fiatteur'
FROM prs_kostenplaatsgrp k
UNION ALL
SELECT k.prs_kostenplaatsgrp_fiat3_key,
'PRS_FIATTEUR_GROEP3',
k.prs_kostenplaatsgrp_oms,
k.prs_kostenplaatsgrp_key,
NULL,
'fiatteur'
FROM prs_kostenplaatsgrp k
UNION ALL
SELECT c.prs_perslid_key_beh,
'CNT_CONTRACT_BEH',
cnt_contract_nummer_intern ||
CASE
WHEN c.cnt_contract_versie IS NOT NULL
THEN '.' || c.cnt_contract_versie
ELSE ''
END,
c.cnt_contract_key,
NULL,
'contract'
FROM cnt_contract c
WHERE cnt_contract_verwijder IS NULL
AND cnt_contract_status = 0 /* actief */
AND cnt_contract_looptijd_tot > SYSDATE
UNION ALL
SELECT c.prs_perslid_key_eig,
'CNT_CONTRACT_EIG',
cnt_contract_nummer_intern ||
CASE
WHEN c.cnt_contract_versie IS NOT NULL
THEN '.' || c.cnt_contract_versie
ELSE ''
END,
c.cnt_contract_key,
NULL,
'contract'
FROM cnt_contract c
WHERE cnt_contract_verwijder IS NULL
AND cnt_contract_status = 0 /* actief */
AND cnt_contract_looptijd_tot > SYSDATE
UNION ALL
SELECT c.cnt_prs_perslid_key,
'CNT_CONTRACT_PARTIJ',
cnt_contract_nummer_intern ||
CASE
WHEN c.cnt_contract_versie IS NOT NULL
THEN '.' || c.cnt_contract_versie
ELSE ''
END,
c.cnt_contract_key,
NULL,
'contract'
FROM cnt_contract c
WHERE cnt_contract_verwijder IS NULL
AND cnt_contract_status = 0 /* actief */
AND cnt_contract_looptijd_tot > SYSDATE
AND c.cnt_prs_perslid_key IS NOT NULL
UNION ALL
SELECT d.prs_perslid_key_beh,
'PRS_BEHEERT_OBJECT',
ins_deel_omschrijving,
ins_deel_key,
d.ins_alg_locatie_key,
'deel'
FROM ins_v_aanwezigdeel d;
-- Dezelfde view voor afdelingen
CREATE_VIEW(prs_v_afd_verplichting, 0)
(prs_afdeling_key, fac_message_code, item, item_key)
AS
SELECT p.prs_afdeling_key, 'PRS_OPENST_OPDRACHT',
(SELECT isd.ins_srtdiscipline_prefix
FROM ins_srtdiscipline isd, ins_tab_discipline ID, mld_stdmelding std, mld_melding m
WHERE ID.ins_srtdiscipline_key = isd.ins_srtdiscipline_key
AND m.mld_stdmelding_key = std.mld_stdmelding_key
AND std.mld_ins_discipline_key = ID.ins_discipline_key
AND o.mld_melding_key = m.mld_melding_key)
|| TO_CHAR (o.mld_melding_key)
|| '/'
|| TO_CHAR (o.mld_opdr_bedrijfopdr_volgnr),
o.mld_opdr_key
FROM mld_opdr o, prs_perslid p
WHERE o.mld_statusopdr_key IN (5, 8)
AND o.mld_uitvoerende_keys = p.prs_perslid_key
AND o.fac_activiteit_key IS NULL
UNION
SELECT p.prs_afdeling_key, 'PRS_OPENST_BESTELLING', TO_CHAR (bes_bestelling_key), bes_bestelling_key
FROM bes_bestelling b, prs_perslid p
WHERE b.bes_bestelling_status IN (5, 4, 3, 2)
AND b.prs_perslid_key=p.prs_perslid_key
UNION
SELECT ins_alg_ruimte_key, 'PRS_BEZIT_OBJECT', ins_deel_omschrijving, ins_deel_key
FROM ins_v_aanwezigdeel d, ins_tab_discipline ID
WHERE d.ins_alg_ruimte_type = 'A'
AND ID.ins_discipline_key = d.ins_discipline_key
AND ID.ins_discipline_min_level <> 3;
// PF: DEZE NOG SEMANTISCH CONTROLEREN!
CREATE_VIEW(prs_v_kp_verplichting, 0)
(prs_kostenplaats_key, fac_message_code, item, item_key, locatie_key)
AS
SELECT o.prs_kostenplaats_key, 'KPN_OPENST_OPDRACHT',
(SELECT isd.ins_srtdiscipline_prefix
FROM ins_srtdiscipline isd, ins_tab_discipline ID, mld_melding m
WHERE ID.ins_srtdiscipline_key = isd.ins_srtdiscipline_key
AND std.mld_ins_discipline_key = ID.ins_discipline_key
AND o.mld_melding_key = m.mld_melding_key)
|| TO_CHAR (o.mld_melding_key)
|| '/'
|| TO_CHAR (o.mld_opdr_bedrijfopdr_volgnr),
o.mld_opdr_key, m.mld_alg_locatie_key
FROM mld_opdr o, prs_perslid p, mld_stdmelding std, mld_melding m
WHERE o.mld_statusopdr_key IN (5, 8)
AND o.mld_melding_key = m.mld_melding_key
AND m.mld_stdmelding_key = std.mld_stdmelding_key
AND o.mld_uitvoerende_keys = p.prs_perslid_key
UNION
SELECT b.prs_kostenplaats_key, 'KPN_OPENST_BESTELLING', TO_CHAR (bes_bestelling_key), bes_bestelling_key,
ma.alg_locatie_key
FROM bes_bestelling b, mld_adres ma
WHERE b.bes_bestelling_status IN (5, 4, 3, 2) AND b.mld_adres_key_lev = ma.mld_adres_key(+)
UNION
SELECT rr.prs_kostenplaats_key, 'KPN_OPENST_RES_R', TO_CHAR (rr.res_reservering_key) || '/' || COUNT (*),
rr.res_reservering_key, rg.alg_locatie_key
FROM res_v_aanwezigrsv_ruimte rr, res_ruimte_opstelling ro, res_v_alg_ruimte_gegevens rg
WHERE rr.res_ruimte_opstel_key = ro.res_ruimte_opstel_key
AND ro.res_ruimte_key = rg.res_ruimte_key
AND rr.res_status_bo_key IN (4, 3, 2)
GROUP BY rr.prs_kostenplaats_key, 'KPN_OPENST_RES_R', rr.res_reservering_key, rg.alg_locatie_key
UNION
SELECT rr.prs_kostenplaats_key, 'KPN_OPENST_RES_V', TO_CHAR (rr.res_reservering_key) || '/' || COUNT (*),
rr.res_reservering_key, rg.alg_locatie_key
FROM res_v_aanwezigrsv_deel rd, res_v_alg_ruimte_gegevens rg, res_v_aanwezigrsv_ruimte rr
WHERE rr.res_rsv_ruimte_key = rd.res_rsv_ruimte_key
AND rr.alg_ruimte_key = rg.alg_ruimte_key
AND rd.res_status_bo_key IN (4, 3, 2)
AND rr.alg_ruimte_key IS NOT NULL
GROUP BY rr.prs_kostenplaats_key, 'KPN_OPENST_RES_V', rr.res_reservering_key, rg.alg_ruimte_key, rg.alg_locatie_key
UNION
SELECT rr.prs_kostenplaats_key, 'KPN_OPENST_RES_C', TO_CHAR (rr.res_reservering_key) || '/' || COUNT (*),
rr.res_reservering_key, rg.alg_locatie_key
FROM res_v_aanwezigrsv_artikel ra, res_v_alg_ruimte_gegevens rg, res_v_aanwezigrsv_ruimte rr
WHERE rr.res_rsv_ruimte_key = ra.res_rsv_ruimte_key
AND rr.alg_ruimte_key = rg.alg_ruimte_key
AND ra.res_status_bo_key IN (4, 3, 2)
AND rr.alg_ruimte_key IS NOT NULL
GROUP BY rr.prs_kostenplaats_key, 'KPN_OPENST_RES_C', rr.res_reservering_key, rr.alg_ruimte_key, rg.alg_locatie_key;
// Deze view is beter geschikt dan bovenstaande en geeft of een bepaald persoon
// relevant gebruikt werd/wordt in de database. Komt een perslid hier niet in voor
// dan mag die verwijderd (DELETED) worden. (gebruik als select ** where prs_perslid_key=NNN
CREATE_VIEW(prs_v_verplichting_refcheck,0)
(prs_perslid_key)
AS
SELECT b.prs_perslid_key
FROM bes_bestelling b
UNION ALL
SELECT b.prs_perslid_key_voor
FROM bes_bestelling b
UNION ALL
SELECT b.bes_bestelling_fiat_user
FROM bes_bestelling b
UNION ALL
SELECT b.prs_perslid_key
FROM bes_bestelopdr b
UNION ALL
SELECT a.bez_afspraak_contact_key
FROM bez_afspraak a
UNION ALL
SELECT a.bez_afspraak_host_key
FROM bez_afspraak a
UNION ALL
SELECT a.prs_perslid_key
FROM bez_afspraak a
UNION ALL
SELECT z.prs_perslid_key
FROM bez_bezoekers z
UNION ALL
SELECT p.prs_perslid_key
FROM prs_contactpersoon p
UNION ALL
SELECT c.prs_perslid_key_beh
FROM cnt_contract c
UNION ALL
SELECT c.prs_perslid_key_eig
FROM cnt_contract c
UNION ALL
SELECT c.cnt_prs_perslid_key
FROM cnt_contract c
UNION ALL
SELECT m.prs_perslid_key
FROM mld_melding m
UNION ALL
SELECT m.prs_perslid_key_voor
FROM mld_melding m
UNION ALL
SELECT m.mld_melding_behandelaar_key
FROM mld_melding m
UNION ALL
SELECT o.mld_uitvoerende_keys
FROM mld_opdr o
UNION ALL
SELECT o.prs_perslid_key
FROM mld_opdr o
UNION ALL
SELECT m.prs_perslid_key
FROM mrk_bericht m
UNION ALL
SELECT r.res_rsv_ruimte_host_key
FROM res_rsv_ruimte r
UNION ALL
SELECT r.res_rsv_ruimte_contact_key
FROM res_rsv_ruimte r
UNION ALL
SELECT ins_alg_ruimte_key
FROM ins_deel d
WHERE d.ins_alg_ruimte_type = 'P'
UNION ALL
SELECT prs_perslid_key_beh
FROM ins_deel d;
-- Genuanceeerdere versie van de voorgaande, te gebruiken voor existentie:
-- kom een perslid_key hierin voor, dan heeft die een actuele verplichting
-- en mag-ie niet inactief (_VERWIJDER) worden.
CREATE_VIEW(prs_v_verplichting_keys, 0) (prs_perslid_key, item_key)
AS
SELECT o.mld_uitvoerende_keys, o.mld_opdr_key
FROM mld_opdr o, prs_perslid p
WHERE o.mld_statusopdr_key IN (5, 8)
AND o.mld_uitvoerende_keys = p.prs_perslid_key
AND o.fac_activiteit_key IS NULL
UNION ALL
SELECT m.prs_perslid_key, m.mld_melding_key
FROM mld_melding m
WHERE m.mld_melding_status IN (2, 3, 4, 7)
AND m.fac_activiteit_key IS NULL
UNION ALL
SELECT b.prs_perslid_key, bes_bestelling_key
FROM bes_bestelling b
WHERE b.bes_bestelling_status IN (5, 4, 3, 2)
AND b.fac_activiteit_key IS NULL
AND EXISTS (SELECT 1
FROM bes_bestelling_item i
WHERE b.bes_bestelling_key = i.bes_bestelling_key)
UNION ALL
SELECT ins_alg_ruimte_key, ins_deel_key
FROM ins_v_aanwezigdeel d, ins_tab_discipline ID
WHERE d.ins_alg_ruimte_type = 'P'
AND ID.ins_discipline_key = d.ins_discipline_key
AND ID.ins_discipline_min_level <> 3
UNION ALL
SELECT prs_perslid_key_beh, ins_deel_key
FROM ins_v_aanwezigdeel d
UNION ALL
SELECT rr.res_rsv_ruimte_host_key, r.res_reservering_key
FROM res_v_aanwezigreservering r, res_v_aanwezigrsv_ruimte rr
WHERE r.res_reservering_key = rr.res_reservering_key
AND rr.res_status_bo_key IN (4, 3, 2)
AND res_rsv_ruimte_tot > SYSDATE-14 -- na 14 dagen niet meer klagen
UNION ALL
SELECT rr.res_rsv_ruimte_host_key, r.res_reservering_key
FROM res_v_aanwezigreservering r, res_v_aanwezigrsv_deel rd, res_rsv_ruimte rr
WHERE r.res_reservering_key = rr.res_reservering_key
AND rr.res_rsv_ruimte_key = rd.res_rsv_ruimte_key
AND rd.res_status_bo_key IN (4, 3, 2)
AND res_rsv_ruimte_tot > SYSDATE-14
UNION ALL
SELECT rr.res_rsv_ruimte_host_key, r.res_reservering_key
FROM res_v_aanwezigreservering r, res_v_aanwezigrsv_artikel ra, res_rsv_ruimte rr
WHERE r.res_reservering_key = rr.res_reservering_key
AND rr.res_rsv_ruimte_key = ra.res_rsv_ruimte_key
AND ra.res_status_bo_key IN (4, 3, 2)
AND res_rsv_ruimte_tot > SYSDATE-14
UNION ALL
SELECT rr.res_rsv_ruimte_contact_key, r.res_reservering_key
FROM res_v_aanwezigreservering r, res_v_aanwezigrsv_ruimte rr, res_ruimte_opstelling ro
WHERE r.res_reservering_key = rr.res_reservering_key
AND rr.res_ruimte_opstel_key = ro.res_ruimte_opstel_key
AND rr.res_status_bo_key IN (4, 3, 2)
AND res_rsv_ruimte_tot > SYSDATE-14
UNION ALL
SELECT rr.res_rsv_ruimte_contact_key, r.res_reservering_key
FROM res_v_aanwezigreservering r, res_v_aanwezigrsv_deel rd, res_rsv_ruimte rr
WHERE r.res_reservering_key = rr.res_reservering_key
AND rr.res_rsv_ruimte_key = rd.res_rsv_ruimte_key
AND rd.res_status_bo_key IN (4, 3, 2)
AND res_rsv_ruimte_tot > SYSDATE-14
UNION ALL
SELECT rr.res_rsv_ruimte_contact_key, r.res_reservering_key
FROM res_v_aanwezigreservering r, res_v_aanwezigrsv_artikel ra, res_rsv_ruimte rr
WHERE r.res_reservering_key = rr.res_reservering_key
AND rr.res_rsv_ruimte_key = ra.res_rsv_ruimte_key
AND ra.res_status_bo_key IN (4, 3, 2)
AND res_rsv_ruimte_tot > SYSDATE-14
AND rr.alg_ruimte_key IS NOT NULL
UNION ALL
SELECT a.bez_afspraak_host_key, a.bez_afspraak_key
FROM bez_afspraak a
WHERE a.bez_afspraak_datum > SYSDATE
UNION ALL
SELECT a.bez_afspraak_contact_key, a.bez_afspraak_key
FROM bez_afspraak a
WHERE a.bez_afspraak_datum > SYSDATE
UNION ALL
SELECT k.prs_perslid_key, k.prs_kostenplaats_key
FROM prs_kostenplaats k
WHERE prs_kostenplaats_verwijder IS NULL
AND k.prs_perslid_key IS NOT NULL
AND prs_kostenplaats_eind > SYSDATE
UNION ALL
SELECT k.prs_perslid_key, k.prs_kostenplaatsgrp_key
FROM prs_kostenplaatsgrp k
WHERE k.prs_perslid_key IS NOT NULL
UNION ALL
SELECT k.prs_kostenplaatsgrp_fiat2_key, k.prs_kostenplaatsgrp_key
FROM prs_kostenplaatsgrp k
WHERE k.prs_kostenplaatsgrp_fiat2_key IS NOT NULL
UNION ALL
SELECT k.prs_kostenplaatsgrp_fiat3_key, k.prs_kostenplaatsgrp_key
FROM prs_kostenplaatsgrp k
WHERE k.prs_kostenplaatsgrp_fiat3_key IS NOT NULL
UNION ALL
SELECT c.prs_perslid_key_beh, cnt_contract_key
FROM cnt_contract c
WHERE cnt_contract_verwijder IS NULL
AND cnt_contract_status = 0 /* actief */
AND cnt_contract_looptijd_tot > SYSDATE
UNION ALL
SELECT c.prs_perslid_key_eig, cnt_contract_key
FROM cnt_contract c
WHERE cnt_contract_verwijder IS NULL
AND cnt_contract_status = 0 /* actief */
AND cnt_contract_looptijd_tot > SYSDATE
UNION ALL
SELECT c.cnt_prs_perslid_key, cnt_contract_key
FROM cnt_contract c
WHERE cnt_contract_verwijder IS NULL
AND cnt_contract_status = 0 /* actief */
AND cnt_contract_looptijd_tot > SYSDATE;
-- Aantal echte werkplekken van een persoon
CREATE_VIEW(PRS_V_AANTALWP,0)
(PRS_PERSLID_KEY, AANTALWP)
AS
SELECT pww2.prs_perslid_key, count (1)
FROM prs_werkplek pw2,
prs_perslidwerkplek pww2
WHERE pw2.prs_werkplek_key = pww2.prs_werkplek_key
AND pw2.prs_werkplek_virtueel = 0
GROUP BY pww2.prs_perslid_key;
-- Genormaliseerd dienstverband in een ruimte (dienstverband / aantal werkplekken)
CREATE_VIEW(prs_v_norm_verband, 0)
AS
SELECT prs_w.prs_alg_ruimte_key alg_ruimte_key, prs_p.prs_perslid_key, pp2.aantalwp,
TRUNC (10 * prs_perslid_dienstverband / pp2.aantalwp)
/ 10 norm_verband
FROM prs_werkplek prs_w,
prs_perslidwerkplek prs_pw,
prs_perslid prs_p,
prs_v_aantalwp pp2
WHERE prs_w.prs_werkplek_key = prs_pw.prs_werkplek_key
AND prs_pw.prs_perslid_key IS NOT NULL
AND prs_pw.prs_perslid_key = prs_p.prs_perslid_key
AND prs_w.prs_werkplek_virtueel = 0
AND prs_p.prs_perslid_key = pp2.prs_perslid_key;
CREATE_VIEW(prs_v_qvw_bedrijf, 0)
AS
SELECT prs_bedrijf_key,
prs_bedrijf_naam,
prs_bedrijf_naam_upper,
prs_bedrijf_post_adres,
prs_bedrijf_post_postcode,
prs_bedrijf_post_plaats,
prs_bedrijf_post_land,
prs_bedrijf_bezoek_adres,
prs_bedrijf_bezoek_postcode,
prs_bedrijf_bezoek_plaats,
prs_bedrijf_bezoek_land,
prs_bedrijf_telefoon,
prs_bedrijf_fax,
prs_bedrijf_telefoon2,
prs_bedrijf_contact_persoon,
prs_bedrijf_contact_telefoon,
prs_bedrijf_contact_fax,
prs_bedrijf_opmerking,
prs_bedrijf_opmerking2,
prs_bedrijf_uurloon,
prs_leverancier_nr,
prs_overeenkomst_nr,
prs_overeenkomst_datum,
prs_bedrijf_aanmaak,
prs_bedrijf_verwijder,
prs_bedrijf_leverancier,
prs_bedrijf_uitvoerende,
prs_bedrijf_contract,
prs_bedrijf_intern,
prs_bedrijf_huurder,
prs_bedrijf_email,
prs_bedrijf_ingids
FROM prs_bedrijf
WHERE prs_bedrijf.prs_bedrijf_verwijder IS NULL;
-- Per ruimte hoeveel flexplekken vrij en bezet
-- verdieping is wel handig in deze view, voor totaaloverzichten op gebouwniveau
CREATE_VIEW(prs_v_flexplekken, 0)
(
alg_ruimte_key,
vrij,
bezet,
alg_verdieping_key
)
AS
SELECT alg_ruimte_key, SUM (vrij) vrij, SUM (bezet) bezet, alg_verdieping_key
FROM ( SELECT wp.prs_alg_ruimte_key alg_ruimte_key,
COUNT (wp.prs_werkplek_key) vrij,
0 bezet,
r.alg_verdieping_key
FROM prs_werkplek wp, prs_perslidwerkplek pwp, alg_ruimte r
WHERE wp.prs_werkplek_virtueel = 0
AND wp.prs_werkplek_type = 1
AND wp.prs_alg_ruimte_key = r.alg_ruimte_key
AND pwp.prs_werkplek_key(+) = wp.prs_werkplek_key
AND pwp.prs_perslid_key IS NULL
GROUP BY wp.prs_alg_ruimte_key, r.alg_verdieping_key
UNION ALL
SELECT wp.prs_alg_ruimte_key alg_ruimte_key,
0 vrij,
COUNT (wp.prs_werkplek_key) bezet,
r.alg_verdieping_key
FROM prs_werkplek wp, prs_perslidwerkplek pwp, alg_ruimte r
WHERE wp.prs_werkplek_virtueel = 0
AND wp.prs_werkplek_type = 1
AND wp.prs_alg_ruimte_key = r.alg_ruimte_key
AND pwp.prs_werkplek_key = wp.prs_werkplek_key
AND pwp.prs_perslid_key IS NOT NULL
GROUP BY wp.prs_alg_ruimte_key, r.alg_verdieping_key)
GROUP BY alg_ruimte_key, alg_verdieping_key;
-- Vooralsnog placeholder, moet aangepast worden
CREATE_VIEW(prs_v_api_afdelingen, 1) AS SELECT * from prs_v_aanwezigafdeling;
CREATE_VIEW(prs_v_api_personen, 1) AS SELECT * from prs_v_aanwezigperslid;
/* ROOT VIEWS for User defined Reports (UDR) */
CREATE_VIEW(prs_v_udr_bedrijf, 0)
(
key,
naam,
postadres,
postpostcode,
postplaats,
postland,
adres,
postcode,
plaats,
land,
telefoon1,
telefoon2,
contactpersoon,
contacttelefoon,
opmerking1,
opmerking2,
uurloon,
leveranciernr,
overeenkomstnr,
overeenkomstdatum,
relatietype,
registratiedatum,
isleverancier,
isuitvoerende,
iscontract,
ishuurder,
isintern,
email,
dienst,
locatie,
gebouw,
district,
regio,
fclt_3d_locatie_key
)
AS
SELECT b.prs_bedrijf_key key,
prs_bedrijf_naam naam,
prs_bedrijf_post_adres postadres,
prs_bedrijf_post_postcode postpostcode,
prs_bedrijf_post_plaats postplaats,
prs_bedrijf_post_land postland,
prs_bedrijf_bezoek_adres adres,
prs_bedrijf_bezoek_postcode postcode,
prs_bedrijf_bezoek_plaats plaats,
prs_bedrijf_bezoek_land land,
prs_bedrijf_telefoon telefoon1,
prs_bedrijf_telefoon2 telefoon2,
prs_bedrijf_contact_persoon contactpersoon,
prs_bedrijf_contact_telefoon contacttelefoon,
prs_bedrijf_opmerking opmerking1,
prs_bedrijf_opmerking2 opmerking2,
prs_bedrijf_uurloon uurloon,
prs_leverancier_nr leveranciernr,
prs_overeenkomst_nr overeenkomstnr,
prs_overeenkomst_datum overeenkomstdatum,
lcl.x ('prs_relatietype_omschrijving',
r.prs_relatietype_key,
r.prs_relatietype_omschrijving)
relatietype,
prs_bedrijf_aanmaak registratiedatum,
DECODE (prs_bedrijf_leverancier, 1, lcl.l ('lcl_yes'), lcl.l ('lcl_no')) isleverancier,
DECODE (prs_bedrijf_uitvoerende, 1, lcl.l ('lcl_yes'), lcl.l ('lcl_no')) isuitvoerende,
DECODE (prs_bedrijf_contract, 1, lcl.l ('lcl_yes'), lcl.l ('lcl_no')) iscontract,
DECODE (prs_bedrijf_huurder, 1, lcl.l ('lcl_yes'), lcl.l ('lcl_no')) ishuurder,
DECODE (prs_bedrijf_intern, 1, lcl.l ('lcl_yes'), lcl.l ('lcl_no')) isintern,
prs_bedrijf_email email,
lcl.x ('prs_dienst_omschrijving', d.prs_dienst_key, d.prs_dienst_omschrijving) dienst,
l.alg_locatie_omschrijving locatie,
lcl.l ('lcl_all') gebouw,
lcl.l ('lcl_all') district,
lcl.l ('lcl_all') regio,
bdl.alg_locatie_key fclt_3d_locatie_key
FROM prs_bedrijf b,
prs_bedrijfdienstlocatie bdl,
prs_dienst d,
prs_relatietype r,
alg_locatie l
WHERE prs_bedrijf_verwijder IS NULL
AND b.prs_bedrijf_key = bdl.prs_bedrijf_key(+)
AND d.prs_dienst_key(+) = bdl.prs_dienst_key
AND b.prs_relatietype_key = r.prs_relatietype_key(+)
AND l.alg_locatie_key = bdl.alg_locatie_key
UNION
SELECT b.prs_bedrijf_key key,
prs_bedrijf_naam naam,
prs_bedrijf_post_adres postadres,
prs_bedrijf_post_postcode postpostcode,
prs_bedrijf_post_plaats postplaats,
prs_bedrijf_post_land postland,
prs_bedrijf_bezoek_adres adres,
prs_bedrijf_bezoek_postcode postcode,
prs_bedrijf_bezoek_plaats plaats,
prs_bedrijf_bezoek_land land,
prs_bedrijf_telefoon telefoon1,
prs_bedrijf_telefoon2 telefoon2,
prs_bedrijf_contact_persoon contactpersoon,
prs_bedrijf_contact_telefoon contacttelefoon,
prs_bedrijf_opmerking opmerking1,
prs_bedrijf_opmerking2 opmerking2,
prs_bedrijf_uurloon uurloon,
prs_leverancier_nr leveranciernr,
prs_overeenkomst_nr overeenkomstnr,
prs_overeenkomst_datum overeenkomstdatum,
lcl.x ('prs_relatietype_omschrijving',
r.prs_relatietype_key,
r.prs_relatietype_omschrijving)
relatietype,
prs_bedrijf_aanmaak registratiedatum,
DECODE (prs_bedrijf_leverancier, 1, lcl.l ('lcl_yes'), lcl.l ('lcl_no')) isleverancier,
DECODE (prs_bedrijf_uitvoerende, 1, lcl.l ('lcl_yes'), lcl.l ('lcl_no')) isuitvoerende,
DECODE (prs_bedrijf_contract, 1, lcl.l ('lcl_yes'), lcl.l ('lcl_no')) iscontract,
DECODE (prs_bedrijf_huurder, 1, lcl.l ('lcl_yes'), lcl.l ('lcl_no')) ishuurder,
DECODE (prs_bedrijf_intern, 1, lcl.l ('lcl_yes'), lcl.l ('lcl_no')) isintern,
prs_bedrijf_email email,
lcl.x ('prs_dienst_omschrijving', d.prs_dienst_key, d.prs_dienst_omschrijving) dienst,
l.alg_locatie_omschrijving locatie,
g.alg_gebouw_omschrijving gebouw,
ad.alg_district_omschrijving district,
ar.alg_regio_omschrijving regio,
bdl.alg_locatie_key fclt_3d_locatie_key
FROM prs_bedrijf b,
prs_bedrijfdienstlocatie bdl,
prs_dienst d,
prs_relatietype r,
alg_locatie l,
alg_gebouw g,
alg_regio ar,
alg_district ad
WHERE prs_bedrijf_verwijder IS NULL
AND b.prs_bedrijf_key = bdl.prs_bedrijf_key(+)
AND d.prs_dienst_key(+) = bdl.prs_dienst_key
AND b.prs_relatietype_key = r.prs_relatietype_key(+)
AND g.alg_locatie_key = l.alg_locatie_key
AND g.alg_gebouw_key = bdl.alg_gebouw_key
AND l.alg_district_key = ad.alg_district_key
AND ad.alg_regio_key = ar.alg_regio_key
UNION
SELECT b.prs_bedrijf_key key,
prs_bedrijf_naam naam,
prs_bedrijf_post_adres postadres,
prs_bedrijf_post_postcode postpostcode,
prs_bedrijf_post_plaats postplaats,
prs_bedrijf_post_land postland,
prs_bedrijf_bezoek_adres adres,
prs_bedrijf_bezoek_postcode postcode,
prs_bedrijf_bezoek_plaats plaats,
prs_bedrijf_bezoek_land land,
prs_bedrijf_telefoon telefoon1,
prs_bedrijf_telefoon2 telefoon2,
prs_bedrijf_contact_persoon contactpersoon,
prs_bedrijf_contact_telefoon contacttelefoon,
prs_bedrijf_opmerking opmerking1,
prs_bedrijf_opmerking2 opmerking2,
prs_bedrijf_uurloon uurloon,
prs_leverancier_nr leveranciernr,
prs_overeenkomst_nr overeenkomstnr,
prs_overeenkomst_datum overeenkomstdatum,
lcl.x ('prs_relatietype_omschrijving',
r.prs_relatietype_key,
r.prs_relatietype_omschrijving)
relatietype,
prs_bedrijf_aanmaak registratiedatum,
DECODE (prs_bedrijf_leverancier, 1, lcl.l ('lcl_yes'), lcl.l ('lcl_no')) isleverancier,
DECODE (prs_bedrijf_uitvoerende, 1, lcl.l ('lcl_yes'), lcl.l ('lcl_no')) isuitvoerende,
DECODE (prs_bedrijf_contract, 1, lcl.l ('lcl_yes'), lcl.l ('lcl_no')) iscontract,
DECODE (prs_bedrijf_huurder, 1, lcl.l ('lcl_yes'), lcl.l ('lcl_no')) ishuurder,
DECODE (prs_bedrijf_intern, 1, lcl.l ('lcl_yes'), lcl.l ('lcl_no')) isintern,
prs_bedrijf_email email,
lcl.x ('prs_dienst_omschrijving', d.prs_dienst_key, d.prs_dienst_omschrijving) dienst,
lcl.l ('lcl_all') locatie,
lcl.l ('lcl_all') gebouw,
lcl.l ('lcl_all') district,
lcl.l ('lcl_all') regio,
NULL fclt_3d_locatie_key
FROM prs_bedrijf b,
prs_bedrijfdienstlocatie bdl,
prs_dienst d,
prs_relatietype r
WHERE prs_bedrijf_verwijder IS NULL
AND b.prs_bedrijf_key = bdl.prs_bedrijf_key(+)
AND d.prs_dienst_key(+) = bdl.prs_dienst_key
AND b.prs_relatietype_key = r.prs_relatietype_key(+)
AND bdl.alg_gebouw_key IS NULL
AND bdl.alg_locatie_key IS NULL;
REGISTERRUN('$Id$')
#endif // PRS