Files
Database/PRJ/PRJ_VIE.SRC
Bert in het Veld 0fc097eff7 FSN #388 : alg_verdieping_code i.p.v. alg_verdieping_volgnr.
svn path=/Database/trunk/; revision=8282
2003-07-23 08:31:24 +00:00

744 lines
30 KiB
Plaintext

#ifdef PRJ
/* Revisie:
**
** 07-03-2000 BIV Views m.b.t. cad_tekening uitgebreid met regel cad_tekening_verwijder IS NULL
** 12-10-1999 RD View <cad_v_prj_deel_gewijzigd> moet oa verwijzen naar view <prj_v_deel_nieuw2>
** en niet naar view <prj_v_deel_nieuw>.
** Aangepast view <prj_v_ruimte_gewijzigd>.
** 12-10-1999 EGR toegevoegd: prj_v_deel_verwijderd_all.
** 11-10-1999 RD Volgende views verwijderd:
** cad_v_prj_deel , cad_v_prj_werkplek , cad_v_prj_ruimte
** cad_v_prj_deel_gewijzigd, cad_v_prj_werkplek_gewijzigd, cad_v_prj_ruimte_gewijzigd
** Volgende views toegevoegd:
** cad_v_prj_deel_gewijzigd, cad_v_prj_werkplek_gewijzigd, cad_v_prj_ruimte_gewijzigd
** 05-10-1999 RD Viewnaam ingekort <prj_v_prj_werkplek_magazijn_delete> --> <prj_v_prj_werkplek_mag_delete>.
** 05-10-1999 RD Toegevoegd: <prj_v_prj_werkplek_magazijn_delete> + <prj_v_werkplek_verwijderd_all> en
** view <prj_v_werkplek_verwijderd> aangepast.
** 04-10-1999 RD Toegevoegd: <prj_v_prj_deel_magazijn_delete>.
** 22-09-1999 EGR View <prj_v_prj_project_definitie> krijgt koppelteken bij gebouw en verdieping.
** 20-09-1999 RD View <prj_v_deel_plaatsaanduiding> retourneert ook <ins_srtdeeel_key>.
** 20-09-1999 RD View <prj_v_deel_verplaatst> aangepast.
** 07-09-1999 RD Views <cad_v_prs_ruimte/werkplek_nieuw> toegevoegd.
** 06-09-1999 BIV View prj_v_ruimte_oppervlakte aangepast (bevatte 2x alg_ruimte_bruto_vloeropp)
** 03-09-1999 RD Toegevoegd: (LET OP: specificatie views NIET veranderen.)
* DELEN ...
<prj_v_prj_deel_nieuw> : nieuwe delen in PRJ
<prj_v_ins_deel_nieuw> : nieuwe delen in INS {sinds afsplitsing PRJ}
<prj_v_deel_nieuw> : <prj_v_prj_deel_nieuw> UNION <prj_v_ins_deel_nieuw>
<prj_v_prj_deel_herstel> : verwijderd in INS, niet verwijderd in PRJ
<prj_v_deel_nieuw2> : <prj_v_prj_deel_nieuw> UNION <prj_v_prj_deel_herstel>
<prj_v_deel_verplaatst> : plaats in PRJ niet hetzelfde als in INS
<prj_v_deel_gewijzigd> : select * from <prj_v_deel_verplaatst>
<prj_v_deel_verwijderd> : in PRJ verwijderd, in INS niet verwijderd
<prj_v_deel_plaatsaanduiding> : o.a. ophalen plaatsaanduiding deel in PRJ
* WERKPLEKKEN ...
<prj_v_prj_werkplek_nieuw> : nieuw werkplekken in PRJ
<prj_v_prj_werkplek_herstel> : werkplekken verwijderd in PRS maar die niet
zijn verwijderd in PRJ
<prj_v_werkplek_nieuw> : <prj_v_prj_werkplek_nieuw> UNION <prj_v_prj_werkplek_herstel>
<prj_v_werkplek_verplaatst> : plaats in PRS niet hetzelfde als in PRJ
<prj_v_werkplek_verwijderd> : niet verwijderd in PRS, verwijderd in PRJ
<prj_v_werkplek_gewijzigd> : <prj_v_werkplek_nieuw> UNION <prj_v_werkplek_verplaatst>
<prj_v_prs_werkplek_nieuw> : werkplekken toegevoegd aan PRS sinds afsplitsing PRJ
<cad_v_prs_werkplek_nieuw> : select * from <prj_v_prs_werkplek_nieuw>
* RUIMTEN ...
<prj_v_ruimte_verwijderd> : in PRJ verwijderd, in ALG niet verwijderd
<prj_v_ruimte_gewijzigd> : verschil in omtrek en/of oppervlakte tussen PRJ en ALG
<prj_v_prj_ruimte_nieuw> : nieuwe ruimten in PRJ
<prj_v_prj_ruimte_herstel> : ruimten verwijderd in ALG maar die niet
zijn verwijderd in PRJ
<prj_v_ruimte_nieuw> : <prj_v_prj_ruimte_nieuw> UNION <prj_v_prj_ruimte_herstel>
<prj_v_ruimte_oppervlakte> : oude (ALG), en nieuwe (PRJ) oppervlakte
<prj_v_alg_ruimte_nieuw> : ruimten toegevoegd aan ALG nadat project is afgesplitst
<prj_v_prj_ruimte_aanduiding> : aanduiding ruimten van PRJ
<prj_v_alg_ruimte_aanduiding> : aanduiding ruimten van ALG
* VERDIEPINGEN ...
<prj_v_alg_verdiepingen> : selecteer alle verdiepingen van een bepaald project
** 31-08-1999 EGR prj_v_[ruimte|werkplek|deel]_verplaatst: in prj verwijderde [ruimte|werkplek|deel] hoort wel bij de selectie.
** 30-08-1999 RD Aangepast view <prj_v_deel_nieuw>: maakt gebruik van view <prj_v_ins_deel_nieuw>.
** 24-08-1999 RD Nieuwe view: <prj_v_alg_ruimte_nieuw>.
** 23-08-1999 RD Nieuwe views: <prj_v_alg_verdiepingen> & <prj_v_ins_deel_nieuw>.
** 28-07-1999 RD Nieuwe views tbv. rapportage: prj_v_deel_plaatsaanduiding,
** prj_v_deel_verplaatst, prj_v_deel_nieuw, prj_v_deel_gewijzigd,
** prj_v_werkplek_verplaatst, prj_v_werkplek_nieuw, prj_v_werkplek_gewijzigd,
** prj_v_ruimte_verplaatst, prj_v_ruimte_nieuw, prj_v_ruimte_gewijzigd
** 26-07-1999 EGR nieuwe view: prj_v_aanwezigdeel.
** 22-07-1999 EGR nieuwe views: prj_v_aanwezigruimte, prj_v_aanwezigwerkplek, prj_v_plattegrond,
** prj_v_contour, prj_v_discipline, prj_v_verhuis, prj_v_cad_aanwezigtekening,
** prj_v_cad_tekening, prj_v_cad_tekening_gegevens
** en herdefinitie van cad-views i.v.m. uitbreiding tabel cad_tekening:
** cad_v_cad_tekening, cad_v_cad_aanwezigtekening,cad_v_cad_tekening_gegevens,
** cad_v_plattegrond, cad_v_contour, cad_v_discipline
** 20-04-1999 ABO Aangemaakt.
*/
#include "comsql.h"
CREATE_VIEW(PRJ_V_PRJ_PROJECT_DEFINITIE, PRJ_NORMAAL_PRIVILEGE)
( cad_tekening_key
, prj_project_key
, prj_gebouw_key
, prj_locatie_key
, prj_verdieping_key
, prj_discipline_key
, prj_project_nr
, prj_gebouw_omschrijving
, prj_verdieping_omschrijving
, prj_discipline_omschrijving
)
AS
SELECT T.cad_tekening_key
, T.prj_project_key
, O.alg_gebouw_key
, T.alg_locatie_key
, T.alg_verdieping_key
, T.ins_discipline_key
, P.prj_project_nr
, O.alg_gebouw_code||' - '||alg_gebouw_naam
, O.alg_verdieping_code||' - '||O.alg_verdieping_omschrijving
, D.ins_discipline_omschrijving
FROM ins_tab_discipline D
, cad_tekening T
, alg_v_onroerendgoed_gegevens O
, prj_project P
WHERE P.prj_project_key (+) = T.prj_project_key
AND T.ins_discipline_key = D.ins_discipline_key
AND T.alg_verdieping_key = O.alg_onroerendgoed_keys (+)
AND T.cad_tekening_verwijder IS NULL
AND T.cad_tekening_type = 'D';
DEFINIEER_VIEW_AANWEZIG(prj_deel
,ins_deel_verwijder
,prj_v_aanwezigdeel
,PRJ_NORMAAL_PRIVILEGE);
DEFINIEER_VIEW_AANWEZIG(prj_ruimte
,alg_ruimte_verwijder
,prj_v_aanwezigruimte
,PRJ_NORMAAL_PRIVILEGE);
DEFINIEER_VIEW_AANWEZIG(prj_werkplek
,prs_werkplek_verwijder
,prj_v_aanwezigwerkplek
,PRS_NORMAAL_PRIVILEGE);
CREATE_VIEW(prj_v_plattegrond, PRJ_NORMAAL_PRIVILEGE)
AS SELECT *
FROM cad_tekening
WHERE UPPER(cad_tekening_type) = 'P'
AND cad_tekening_verwijder IS NULL
AND prj_project_key IS NOT NULL;
CREATE_VIEW(prj_v_contour, PRJ_NORMAAL_PRIVILEGE)
AS SELECT *
FROM cad_tekening
WHERE UPPER(cad_tekening_type) = 'C'
AND cad_tekening_verwijder IS NULL
AND prj_project_key IS NOT NULL;
CREATE_VIEW(prj_v_discipline, PRJ_NORMAAL_PRIVILEGE)
AS SELECT *
FROM cad_tekening
WHERE UPPER(cad_tekening_type) = 'D'
AND cad_tekening_verwijder IS NULL
AND prj_project_key IS NOT NULL;
CREATE_VIEW(prj_v_verhuis, PRJ_NORMAAL_PRIVILEGE)
AS SELECT *
FROM cad_tekening
WHERE UPPER(cad_tekening_type) = 'V'
AND cad_tekening_verwijder IS NULL
AND prj_project_key IS NOT NULL;
CREATE_VIEW(prj_v_cad_aanwezigtekening, PRJ_NORMAAL_PRIVILEGE)
AS SELECT *
FROM cad_tekening C_T
WHERE prj_project_key IS NOT NULL
AND cad_tekening_verwijder IS NULL
AND ( C_T.ins_discipline_key IN (SELECT ins_discipline_key
FROM ins_discipline)
OR C_T.ins_discipline_key IS NULL);
CREATE_VIEW(prj_v_cad_tekening, PRJ_NORMAAL_PRIVILEGE)
AS SELECT ins_discipline_key
, alg_locatie_key
, alg_verdieping_key
, cad_tekening_type
, cad_tekening_filenaam
, prj_project_key
FROM cad_tekening C_T
WHERE cad_tekening_verwijder IS NULL
AND prj_project_key IS NOT NULL;
CREATE_VIEW(prj_v_cad_tekening_gegevens, PRJ_NORMAAL_PRIVILEGE)
( cad_tekening_key
, alg_locatie_key
, alg_locatie_code
, alg_gebouw_key
, alg_gebouw_code
, alg_verdieping_key
, alg_verdieping_omschrijving
, ins_discipline_key
, ins_discipline_omschrijving)
AS SELECT C_T.cad_tekening_key
, C_T.alg_locatie_key
, ALG_L.alg_locatie_code
, ALG_G.alg_gebouw_key
, ALG_G.alg_gebouw_code
, C_T.alg_verdieping_key
, ALG_V.alg_verdieping_omschrijving
, C_T.ins_discipline_key
, INS_D.ins_discipline_omschrijving
FROM alg_locatie ALG_L
, alg_verdieping ALG_V
, alg_gebouw ALG_G
, ins_discipline INS_D
, cad_v_cad_aanwezigtekening C_T
WHERE C_T.alg_locatie_key = ALG_L.alg_locatie_key
AND C_T.alg_verdieping_key = ALG_V.alg_verdieping_key (+)
AND ALG_V.alg_gebouw_key = ALG_G.alg_gebouw_key (+)
AND C_T.ins_discipline_key = INS_D.ins_discipline_key (+)
AND C_T.cad_tekening_verwijder IS NULL;
/*
** Herdefinitie van de cad-views omdat er een veld aan cad_tekening
** is toegevoegd voor projecten.
*/
CREATE_VIEW(cad_v_cad_aanwezigtekening, PRJ_NORMAAL_PRIVILEGE)
AS SELECT *
FROM cad_tekening C_T
WHERE prj_project_key IS NULL
AND cad_tekening_verwijder IS NULL
AND ( C_T.ins_discipline_key IN (SELECT ins_discipline_key
FROM ins_discipline)
OR C_T.ins_discipline_key IS NULL);
CREATE_VIEW(cad_v_cad_tekening, PRJ_NORMAAL_PRIVILEGE)
AS SELECT ins_discipline_key
, alg_locatie_key
, alg_verdieping_key
, cad_tekening_type
, cad_tekening_filenaam
, prj_project_key
FROM cad_tekening C_T
WHERE cad_tekening_verwijder IS NULL
AND prj_project_key IS NULL;
CREATE_VIEW(cad_v_cad_tekening_gegevens, PRJ_NORMAAL_PRIVILEGE)
( cad_tekening_key
, alg_locatie_key
, alg_locatie_code
, alg_gebouw_key
, alg_gebouw_code
, alg_verdieping_key
, alg_verdieping_omschrijving
, ins_discipline_key
, ins_discipline_omschrijving)
AS SELECT C_T.cad_tekening_key
, C_T.alg_locatie_key
, ALG_L.alg_locatie_code
, ALG_G.alg_gebouw_key
, ALG_G.alg_gebouw_code
, C_T.alg_verdieping_key
, ALG_V.alg_verdieping_omschrijving
, C_T.ins_discipline_key
, INS_D.ins_discipline_omschrijving
FROM alg_locatie ALG_L
, alg_verdieping ALG_V
, alg_gebouw ALG_G
, ins_discipline INS_D
, cad_v_cad_aanwezigtekening C_T
WHERE C_T.alg_locatie_key = ALG_L.alg_locatie_key
AND C_T.alg_verdieping_key = ALG_V.alg_verdieping_key (+)
AND ALG_V.alg_gebouw_key = ALG_G.alg_gebouw_key (+)
AND C_T.ins_discipline_key = INS_D.ins_discipline_key (+)
AND C_T.cad_tekening_verwijder IS NULL;
CREATE_VIEW(cad_v_plattegrond, PRJ_NORMAAL_PRIVILEGE)
AS SELECT *
FROM cad_tekening
WHERE UPPER(cad_tekening_type) = 'P'
AND cad_tekening_verwijder IS NULL
AND prj_project_key IS NULL;
CREATE_VIEW(cad_v_contour, PRJ_NORMAAL_PRIVILEGE)
AS SELECT *
FROM cad_tekening
WHERE UPPER(cad_tekening_type) = 'C'
AND cad_tekening_verwijder IS NULL
AND prj_project_key IS NULL;
CREATE_VIEW(cad_v_discipline, PRJ_NORMAAL_PRIVILEGE)
AS SELECT *
FROM cad_tekening
WHERE UPPER(cad_tekening_type) = 'D'
AND cad_tekening_verwijder IS NULL
AND prj_project_key IS NULL;
CREATE_VIEW(prj_v_deel_plaatsaanduiding, PRJ_NORMAAL_PRIVILEGE)
( alg_plaatsaanduiding
, prs_werkplek_key
, prs_werkplek_verwijder
, ins_deel_key
, ins_deel_omschrijving
, ins_deel_verwijder
, ins_srtdeel_key
, prj_project_key)
AS SELECT ALG_G.alg_gebouw_code ||' - '
|| ALG_V.alg_verdieping_code ||' - '
|| PRJ_R.alg_ruimte_nr
, TO_NUMBER(NULL)
, TO_DATE(NULL)
, PRJ_D.ins_deel_key
, PRJ_D.ins_deel_omschrijving
, PRJ_D.ins_deel_verwijder
, PRJ_D.ins_srtdeel_key
, PRJ_D.prj_project_key
FROM prj_deel PRJ_D
, prj_ruimte PRJ_R
, alg_verdieping ALG_V
, alg_gebouw ALG_G
WHERE PRJ_D.ins_alg_ruimte_key = PRJ_R.alg_ruimte_key
AND PRJ_D.ins_alg_ruimte_type = 'R'
AND PRJ_R.alg_verdieping_key = ALG_V.alg_verdieping_key
AND ALG_V.alg_gebouw_key = ALG_G.alg_gebouw_key
AND PRJ_D.prj_project_key = PRJ_R.prj_project_key
UNION
SELECT ALG_G.alg_gebouw_code ||' - '
|| ALG_V.alg_verdieping_code ||' - '
|| PRJ_R.alg_ruimte_nr ||'/'
|| to_char(PRJ_W.prs_werkplek_volgnr)
, PRJ_W.prs_werkplek_key
, PRJ_W.prs_werkplek_verwijder
, PRJ_D.ins_deel_key
, PRJ_D.ins_deel_omschrijving
, PRJ_D.ins_deel_verwijder
, PRJ_D.ins_srtdeel_key
, PRJ_D.prj_project_key
FROM prj_deel PRJ_D
, prj_werkplek PRJ_W
, prj_ruimte PRJ_R
, alg_verdieping ALG_V
, alg_gebouw ALG_G
WHERE PRJ_D.ins_alg_ruimte_key = PRJ_W.prs_werkplek_key
AND PRJ_D.ins_alg_ruimte_type = 'W'
AND PRJ_W.prs_alg_ruimte_key = PRJ_R.alg_ruimte_key
AND PRJ_R.alg_verdieping_key = ALG_V.alg_verdieping_key
AND ALG_V.alg_gebouw_key = ALG_G.alg_gebouw_key
AND PRJ_D.prj_project_key = PRJ_W.prj_project_key
AND PRJ_W.prj_project_key = PRJ_R.prj_project_key;
-- nieuwe delen in PRJ
CREATE_VIEW(prj_v_prj_deel_nieuw, PRJ_NORMAAL_PRIVILEGE)
AS SELECT ins_deel_key
, prj_project_key
FROM prj_deel PD
WHERE NOT EXISTS (SELECT ins_deel_key FROM ins_deel ID
WHERE PD.ins_deel_key = ID.ins_deel_key
AND rownum = 1)
AND PD.ins_deel_verwijder IS NULL;
-- object is in PRJ van ruimte gewijzigd, van/aan werkplek (los)gekoppeld of als onderdeel van een werkplek verplaatst.
INSERT INTO fac_privilege VALUES (UPPER('prj_v_deel_verplaatst'), 62);
CREATE_VIEW(prj_v_deel_verplaatst, PRJ_NORMAAL_PRIVILEGE)
-- Verplaatsing van Ruimte naar Werkplek of omgekeerd + verplaatsing
-- van de ene Ruimte (Werkplek) naar een andere Ruimte (Werkplek).
AS SELECT DISTINCT
PRJ_D.ins_deel_key
, PRJ_D.prj_project_key
FROM ins_deel INS_D
, prj_deel PRJ_D
WHERE PRJ_D.ins_deel_key = INS_D.ins_deel_key
AND (PRJ_D.ins_alg_ruimte_type <> INS_D.ins_alg_ruimte_type
OR
(PRJ_D.ins_alg_ruimte_type = INS_D.ins_alg_ruimte_type
AND
PRJ_D.ins_alg_ruimte_key <> INS_D.ins_alg_ruimte_key))
AND INS_D.ins_deel_verwijder IS NULL
AND PRJ_D.ins_deel_verwijder IS NULL
UNION
-- Werkplek waar een deel aan gekoppeld is, is veranderd van plaats.
SELECT DISTINCT
PRJ_D.ins_deel_key
, PRJ_D.prj_project_key
FROM ins_deel INS_D
, prj_deel PRJ_D
, prj_werkplek PRJ_W
, prs_werkplek PRS_W
WHERE PRJ_D.ins_deel_key = INS_D.ins_deel_key
AND PRJ_D.ins_alg_ruimte_key = INS_D.ins_alg_ruimte_key
AND PRJ_D.ins_alg_ruimte_type = INS_D.ins_alg_ruimte_type
AND PRJ_D.ins_alg_ruimte_type = 'W'
AND PRJ_D.ins_alg_ruimte_key = PRJ_W.prs_werkplek_key
AND INS_D.ins_alg_ruimte_key = PRS_W.prs_werkplek_key
AND PRJ_W.prs_alg_ruimte_key <> PRS_W.prs_alg_ruimte_key
AND PRJ_D.prj_project_key = PRJ_W.prj_project_key
AND INS_D.ins_deel_verwijder IS NULL
AND PRJ_D.ins_deel_verwijder IS NULL;
-- nieuw werkplekken in PRJ
CREATE_VIEW(prj_v_prj_werkplek_nieuw, PRJ_NORMAAL_PRIVILEGE)
AS SELECT prs_werkplek_key
, prj_project_key
FROM prj_werkplek PRJ_W
WHERE NOT EXISTS (SELECT prs_werkplek_key FROM prs_werkplek PRS_W
WHERE PRS_W.prs_werkplek_key = PRJ_W.prs_werkplek_key
AND rownum = 1)
AND prs_werkplek_verwijder IS NULL;
-- werkplekken verwijderd in PRS maar die niet zijn verwijderd in PRJ
CREATE_VIEW(prj_v_prj_werkplek_herstel, PRJ_NORMAAL_PRIVILEGE)
AS SELECT PRJ_W.prs_werkplek_key
, PRJ_W.prj_project_key
FROM prj_werkplek PRJ_W
, prs_werkplek PRS_W
WHERE PRJ_W.prs_werkplek_key = PRS_W.prs_werkplek_key
AND PRJ_W.prs_werkplek_verwijder IS NULL
AND PRS_W.prs_werkplek_verwijder IS NOT NULL;
-- plaats in PRS niet hetzelfde als in PRJ
CREATE_VIEW(prj_v_werkplek_verplaatst, PRJ_NORMAAL_PRIVILEGE)
AS SELECT PRJ_W.prs_werkplek_key
, PRJ_W.prj_project_key
FROM prj_werkplek PRJ_W
, prs_werkplek PRS_W
WHERE PRJ_W.prs_werkplek_key = PRS_W.prs_werkplek_key
AND PRJ_W.prs_werkplek_verwijder IS NULL
AND PRS_W.prs_werkplek_verwijder IS NULL
AND PRS_W.prs_alg_ruimte_key <> PRJ_W.prs_alg_ruimte_key;
-- <prj_v_prj_werkplek_nieuw> UNION <prj_v_prj_werkplek_herstel>
CREATE_VIEW(prj_v_werkplek_nieuw, PRJ_NORMAAL_PRIVILEGE)
AS SELECT *
FROM prj_v_prj_werkplek_nieuw
UNION
SELECT *
FROM prj_v_prj_werkplek_herstel;
-- niet verwijderd in PRS, verwijderd in PRJ
CREATE_VIEW(prj_v_werkplek_verwijderd, PRJ_NORMAAL_PRIVILEGE)
AS SELECT PRJ_W.prs_werkplek_key
, PRJ_W.prj_project_key
FROM prs_werkplek PRS_W,
prj_werkplek PRJ_W
WHERE PRS_W.prs_werkplek_key = PRJ_W.prs_werkplek_key
AND PRS_W.prs_werkplek_verwijder IS NULL
AND PRJ_W.prs_werkplek_verwijder IS NOT NULL
AND PRJ_W.prs_alg_ruimte_key <> 0;
-- niet verwijderd in PRS, in PRJ met ruimte_key = 0 (wel + niet 'verwijderde')
CREATE_VIEW(prj_v_prj_werkplek_mag_delete, PRJ_NORMAAL_PRIVILEGE)
AS SELECT PRJ_W.prs_werkplek_key
, PRJ_W.prj_project_key
FROM prs_werkplek PRS_W,
prj_werkplek PRJ_W
WHERE PRS_W.prs_werkplek_key = PRJ_W.prs_werkplek_key
AND PRS_W.prs_werkplek_verwijder IS NULL
AND PRJ_W.prs_alg_ruimte_key = 0;
-- prj_v_werkplek_verwijderd UNION prj_v_prj_werkplek_mag_delete
CREATE_VIEW(prj_v_werkplek_verwijderd_all, PRJ_NORMAAL_PRIVILEGE)
AS SELECT *
FROM prj_v_werkplek_verwijderd
UNION
SELECT *
FROM prj_v_prj_werkplek_mag_delete;
-- <prj_v_werkplek_nieuw> UNION <prj_v_werkplek_verplaatst>
CREATE_VIEW(prj_v_werkplek_gewijzigd, PRJ_NORMAAL_PRIVILEGE)
AS SELECT *
FROM prj_v_werkplek_nieuw
UNION
SELECT *
FROM prj_v_werkplek_verplaatst;
-- selecteer alle verdiepingen van een bepaald project
CREATE_VIEW(prj_v_alg_verdiepingen, PRJ_NORMAAL_PRIVILEGE)
AS SELECT DISTINCT
alg_verdieping_key
, prj_project_key
FROM cad_tekening
WHERE alg_verdieping_key IS NOT NULL
AND prj_project_key IS NOT NULL
AND cad_tekening_verwijder IS NULL;
-- nieuwe delen in INS {sinds afsplitsing PRJ}
CREATE_VIEW(prj_v_ins_deel_nieuw, PRJ_NORMAAL_PRIVILEGE)
AS SELECT INS_I.ins_deel_key
, PRJ_V.prj_project_key
FROM ins_v_ins_deel_verdieping INS_I,
prj_v_alg_verdiepingen PRJ_V
WHERE INS_I.alg_verdieping_key = PRJ_V.alg_verdieping_key
AND INS_I.ins_deel_key NOT IN (SELECT ins_deel_key
FROM prj_deel PRJ_D
WHERE PRJ_D.prj_project_key = PRJ_V.prj_project_key);
-- <prj_v_prj_deel_nieuw> UNION <prj_v_ins_deel_nieuw>
CREATE_VIEW(prj_v_deel_nieuw, PRJ_NORMAAL_PRIVILEGE)
AS SELECT *
FROM prj_v_prj_deel_nieuw
UNION
SELECT *
FROM prj_v_ins_deel_nieuw;
-- verwijderd in INS, niet verwijderd in PRJ
CREATE_VIEW(prj_v_prj_deel_herstel, PRJ_NORMAAL_PRIVILEGE)
AS SELECT PRJ_D.ins_deel_key
, PRJ_D.prj_project_key
FROM prj_deel PRJ_D,
ins_deel INS_D
WHERE PRJ_D.ins_deel_key = INS_D.ins_deel_key
AND PRJ_D.ins_deel_verwijder IS NULL
AND INS_D.ins_deel_verwijder IS NOT NULL;
-- <prj_v_prj_deel_nieuw> UNION <prj_v_prj_deel_herstel>
CREATE_VIEW(prj_v_deel_nieuw2, PRJ_NORMAAL_PRIVILEGE)
AS SELECT *
FROM prj_v_prj_deel_herstel
UNION
SELECT *
FROM prj_v_prj_deel_nieuw;
-- in PRJ verwijderd, in INS niet verwijderd
CREATE_VIEW(prj_v_deel_verwijderd, PRJ_NORMAAL_PRIVILEGE)
AS SELECT PRJ_D.ins_deel_key
, PRJ_D.prj_project_key
FROM prj_deel PRJ_D
WHERE EXISTS (SELECT ins_deel_key FROM ins_deel INS_D
WHERE PRJ_D.ins_deel_key = INS_D.ins_deel_key
AND INS_D.ins_deel_verwijder IS NULL
AND PRJ_D.ins_deel_verwijder IS NOT NULL
AND rownum = 1);
-- alle in prj verwijderde objecten, en objecten die in het magazijn staan.
CREATE_VIEW(prj_v_deel_verwijderd_all, PRJ_NORMAAL_PRIVILEGE)
AS SELECT PRJ_D.ins_deel_key
, PRJ_D.prj_project_key
FROM prj_deel PRJ_D
, ins_deel INS_D
WHERE INS_D.ins_deel_key = PRJ_D.ins_deel_key
AND INS_D.ins_deel_verwijder IS NULL
AND PRJ_D.ins_deel_verwijder IS NOT NULL
AND PRJ_D.ins_alg_ruimte_key <> 0
UNION
SELECT PRJ_D.ins_deel_key
, PRJ_D.prj_project_key
FROM prj_deel PRJ_D
, ins_deel INS_D
WHERE INS_D.ins_deel_key = PRJ_D.ins_deel_key
AND INS_D.ins_deel_verwijder IS NULL
AND PRJ_D.ins_alg_ruimte_key = 0;
-- select * from <prj_v_deel_verplaatst>
CREATE_VIEW(prj_v_deel_gewijzigd, PRJ_NORMAAL_PRIVILEGE)
AS SELECT *
FROM prj_v_deel_verplaatst;
-- ruimten toegevoegd aan ALG nadat project is afgesplitst
CREATE_VIEW(prj_v_alg_ruimte_nieuw, PRJ_NORMAAL_PRIVILEGE)
AS SELECT ALG_R.alg_ruimte_key
, PRJ_V.prj_project_key
FROM alg_v_alg_ruimte_verdieping ALG_R,
prj_v_alg_verdiepingen PRJ_V
WHERE ALG_R.alg_verdieping_key = PRJ_V.alg_verdieping_key
AND ALG_R.alg_ruimte_key NOT IN (SELECT alg_ruimte_key
FROM prj_ruimte
WHERE prj_project_key = PRJ_V.prj_project_key);
-- in PRJ verwijderd, in ALG niet verwijderd
CREATE_VIEW(prj_v_ruimte_verwijderd, PRJ_NORMAAL_PRIVILEGE)
AS SELECT PRJ_R.alg_ruimte_key
, PRJ_R.prj_project_key
FROM prj_ruimte PRJ_R
, alg_ruimte ALG_R
WHERE PRJ_R.alg_ruimte_key = ALG_R.alg_ruimte_key
AND PRJ_R.alg_ruimte_verwijder IS NOT NULL
AND ALG_R.alg_ruimte_verwijder IS NULL;
-- verschil in omtrek en/of oppervlakte tussen PRJ en ALG
CREATE_VIEW(prj_v_ruimte_gewijzigd, PRJ_NORMAAL_PRIVILEGE)
AS SELECT PRJ_R.alg_ruimte_key
, PRJ_R.prj_project_key
FROM prj_ruimte PRJ_R
, alg_ruimte ALG_R
WHERE PRJ_R.alg_ruimte_key = ALG_R.alg_ruimte_key
AND (PRJ_R.alg_ruimte_bruto_vloeropp <> ALG_R.alg_ruimte_bruto_vloeropp
OR
PRJ_R.alg_ruimte_omtrek <> ALG_R.alg_ruimte_omtrek
)
AND PRJ_R.alg_ruimte_verwijder IS NULL
AND ALG_R.alg_ruimte_verwijder IS NULL;
-- nieuwe ruimten in PRJ
CREATE_VIEW(prj_v_prj_ruimte_nieuw, PRJ_NORMAAL_PRIVILEGE)
AS SELECT alg_ruimte_key
, prj_project_key
FROM prj_ruimte PRJ_R
WHERE NOT EXISTS (SELECT alg_ruimte_key FROM alg_ruimte ALG_R
WHERE PRJ_R.alg_ruimte_key = ALG_R.alg_ruimte_key
AND rownum = 1)
AND alg_ruimte_verwijder IS NULL;
-- ruimten verwijderd in ALG maar die niet zijn verwijderd in PRJ
CREATE_VIEW(prj_v_prj_ruimte_herstel, PRJ_NORMAAL_PRIVILEGE)
AS SELECT PRJ_R.alg_ruimte_key
, PRJ_R.prj_project_key
FROM prj_ruimte PRJ_R
, alg_ruimte ALG_R
WHERE PRJ_R.alg_ruimte_key = ALG_R.alg_ruimte_key
AND PRJ_R.alg_ruimte_verwijder IS NULL
AND ALG_R.alg_ruimte_verwijder IS NOT NULL;
-- <prj_v_prj_ruimte_nieuw> UNION <prj_v_prj_ruimte_herstel>
CREATE_VIEW(prj_v_ruimte_nieuw, PRJ_NORMAAL_PRIVILEGE)
AS SELECT *
FROM prj_v_prj_ruimte_nieuw
UNION
SELECT *
FROM prj_v_prj_ruimte_herstel;
-- werkplekken toegevoegd aan PRS sinds afsplitsing PRJ
CREATE_VIEW(prj_v_prs_werkplek_nieuw, PRJ_NORMAAL_PRIVILEGE)
AS SELECT PRS_W.prs_werkplek_key
, PRJ_V.prj_project_key
FROM prj_v_alg_verdiepingen PRJ_V
, prs_werkplek PRS_W
, alg_ruimte ALG_R
WHERE PRS_W.prs_werkplek_key NOT IN (SELECT PRJ_W.prs_werkplek_key
FROM prj_werkplek PRJ_W
WHERE PRJ_W.prs_werkplek_key = PRS_W.prs_werkplek_key)
AND PRS_W.prs_alg_ruimte_key = ALG_R.alg_ruimte_key
AND PRS_W.prs_werkplek_verwijder IS NULL
AND ALG_R.alg_verdieping_key = PRJ_V.alg_verdieping_key;
-- aanduiding ruimten van PRJ
CREATE_VIEW(prj_v_prj_ruimte_aanduiding, PRJ_NORMAAL_PRIVILEGE)
AS SELECT PRJ_R.alg_ruimte_key
, PRJ_R.prj_project_key
, ALG_G.alg_gebouw_code ||' - '
|| ALG_V.alg_verdieping_code ||' - '
|| PRJ_R.alg_ruimte_nr plaatsaanduiding
FROM prj_ruimte PRJ_R
, alg_verdieping ALG_V
, alg_gebouw ALG_G
WHERE PRJ_R.alg_verdieping_key = ALG_V.alg_verdieping_key
AND ALG_V.alg_gebouw_key = ALG_G.alg_gebouw_key;
-- aanduiding ruimten van ALG
CREATE_VIEW(prj_v_alg_ruimte_aanduiding, PRJ_NORMAAL_PRIVILEGE)
AS SELECT ALG_R.alg_ruimte_key
, to_number(NULL) prj_project_key
, ALG_G.alg_gebouw_code ||' - '
|| ALG_V.alg_verdieping_volgnr ||' - '
|| ALG_R.alg_ruimte_nr plaatsaanduiding
FROM alg_ruimte ALG_R
, alg_verdieping ALG_V
, alg_gebouw ALG_G
WHERE ALG_R.alg_verdieping_key = ALG_V.alg_verdieping_key
AND ALG_V.alg_gebouw_key = ALG_G.alg_gebouw_key;
-- oude (ALG), en nieuwe (PRJ) oppervlakte
CREATE_VIEW(prj_v_ruimte_oppervlakte, PRJ_NORMAAL_PRIVILEGE)
(alg_ruimte_key,
prj_project_key,
oud_vloeropp,
nieuw_vloeropp) AS
SELECT PRJ_R.alg_ruimte_key
, PRJ_R.prj_project_key
, ALG_R.alg_ruimte_bruto_vloeropp
, PRJ_R.alg_ruimte_bruto_vloeropp
FROM alg_ruimte ALG_R
, prj_ruimte PRJ_R
WHERE ALG_R.alg_ruimte_key = PRJ_R.alg_ruimte_key;
-- Delen die in virtuele magazijn staan of zijn gekoppeld aan een werkplek die in
-- het virtuele magazijn staat met de volgende aanvullende condities: deel komt voor in
-- PRJ en INS, tevens is het deel in INS niet verwijderd.
CREATE_VIEW(prj_v_prj_deel_mag_delete, PRJ_NORMAAL_PRIVILEGE)
( alg_plaatsaanduiding
, ins_deel_omschrijving
, ins_deel_key
, ins_srtdeel_omschrijving
, prj_project_key
, alg_verdieping_key)
AS SELECT INS_P.alg_plaatsaanduiding
, INS_P.ins_deel_omschrijving
, PRJ_D.ins_deel_key
, INS_S.ins_srtdeel_omschrijving
, PRJ_D.prj_project_key
, INS_P.alg_verdieping_key
FROM prj_deel PRJ_D
, ins_v_deel_plaatsaanduiding_R INS_P
, ins_srtdeel INS_S
WHERE INS_P.ins_deel_key = PRJ_D.ins_deel_key
AND PRJ_D.ins_srtdeel_key = INS_S.ins_srtdeel_key
AND PRJ_D.ins_alg_ruimte_key = 0
AND PRJ_D.ins_alg_ruimte_type = 'R'
AND INS_P.ins_deel_verwijder IS NULL
UNION
SELECT INS_P.alg_plaatsaanduiding
, INS_P.ins_deel_omschrijving
, PRJ_D.ins_deel_key
, INS_S.ins_srtdeel_omschrijving
, PRJ_D.prj_project_key
, INS_P.alg_verdieping_key
FROM prj_deel PRJ_D
, ins_v_deel_plaatsaanduiding_W INS_P
, ins_srtdeel INS_S
, prj_werkplek PRJ_W
WHERE INS_P.ins_deel_key = PRJ_D.ins_deel_key
AND PRJ_D.ins_srtdeel_key = INS_S.ins_srtdeel_key
AND PRJ_D.ins_alg_ruimte_type = 'W'
AND PRJ_W.prs_werkplek_key = PRJ_D.ins_alg_ruimte_key
AND PRJ_W.prj_project_key = PRJ_D.prj_project_key
AND PRJ_W.prs_alg_ruimte_key = 0
AND INS_P.ins_deel_verwijder IS NULL;
CREATE_VIEW(cad_v_ins_deel_nieuw, FAC_NORMAAL_PRIVILEGE) AS
SELECT *
FROM prj_v_ins_deel_nieuw;
CREATE_VIEW(cad_v_alg_ruimte_nieuw, FAC_NORMAAL_PRIVILEGE) AS
SELECT *
FROM prj_v_alg_ruimte_nieuw;
-- select * from <prj_v_prs_werkplek_nieuw>
CREATE_VIEW(cad_v_prs_werkplek_nieuw, PRJ_NORMAAL_PRIVILEGE)
AS SELECT *
FROM prj_v_prs_werkplek_nieuw;
-- Selecteer nieuwe en van plaatst veranderde objecten.
CREATE_VIEW(cad_v_prj_deel_gewijzigd, PRJ_NORMAAL_PRIVILEGE)
AS SELECT ins_deel_key
, prj_project_key
FROM prj_v_deel_nieuw2
UNION
SELECT ins_deel_key
, prj_project_key
FROM prj_v_deel_verplaatst;
-- Selecteer nieuwe en van plaatst veranderde werkplekken.
CREATE_VIEW(cad_v_prj_werkplek_gewijzigd, PRJ_NORMAAL_PRIVILEGE)
AS SELECT prs_werkplek_key
, prj_project_key
FROM prj_v_werkplek_gewijzigd;
-- Selecteer nieuwe en gewijzigde (mbt oppervlakte) ruimten
CREATE_VIEW(cad_v_prj_ruimte_gewijzigd, PRJ_NORMAAL_PRIVILEGE)
AS SELECT alg_ruimte_key
, prj_project_key
FROM prj_v_ruimte_gewijzigd
WHERE alg_ruimte_key <> 0
UNION
SELECT alg_ruimte_key
, prj_project_key
FROM prj_v_ruimte_nieuw
WHERE alg_ruimte_key <> 0;
#endif // PRJ