FCLT#60015 nieuwe conditiemeting-werkwijze is onderdeel van de core muv initialisatie
svn path=/Database/trunk/; revision=45400
This commit is contained in:
3128
CND/CND.sql
3128
CND/CND.sql
File diff suppressed because it is too large
Load Diff
2836
CND/CND_PAC.SRC
Normal file
2836
CND/CND_PAC.SRC
Normal file
File diff suppressed because it is too large
Load Diff
99
CND/CND_TRI.SRC
Normal file
99
CND/CND_TRI.SRC
Normal file
@@ -0,0 +1,99 @@
|
||||
#ifdef CND
|
||||
/*
|
||||
* $Revision$
|
||||
* $Id$
|
||||
*/
|
||||
|
||||
|
||||
-----------------------------------------------------------------------------------------------------------------------
|
||||
--
|
||||
-- Additional triggers for tables that are related to CND. AFTER-update, ze mogen de normale flow niet beinvloeden
|
||||
--
|
||||
-----------------------------------------------------------------------------------------------------------------------
|
||||
|
||||
|
||||
CREATE OR REPLACE TRIGGER cnd_t_alg_gebouw_a_u
|
||||
AFTER UPDATE
|
||||
ON alg_gebouw
|
||||
FOR EACH ROW
|
||||
DECLARE
|
||||
CURSOR gebouw_objecten
|
||||
IS
|
||||
SELECT dg.ins_deel_key
|
||||
FROM ins_v_deel_gegevens_keys dg, ins_deel d
|
||||
WHERE d.ins_deel_key = dg.ins_deel_key
|
||||
AND ins_deel_verwijder IS NULL
|
||||
AND dg.alg_gebouw_key = :new.alg_gebouw_key;
|
||||
BEGIN
|
||||
IF :new.alg_gebouw_in_bewerking = 0 AND :old.alg_gebouw_in_bewerking = 1
|
||||
THEN
|
||||
-- recalculate the mjb_scores of all objects within this building
|
||||
-- This may take some time
|
||||
FOR d IN gebouw_objecten
|
||||
LOOP
|
||||
cnd.update_mjb_scores (d.ins_deel_key, 0);
|
||||
END LOOP;
|
||||
END IF;
|
||||
END;
|
||||
/
|
||||
|
||||
CREATE OR REPLACE TRIGGER cnd_t_alg_terreinsector_a_u
|
||||
AFTER UPDATE
|
||||
ON alg_terreinsector
|
||||
FOR EACH ROW
|
||||
DECLARE
|
||||
CURSOR terreinsector_objecten
|
||||
IS
|
||||
SELECT dg.ins_deel_key
|
||||
FROM ins_v_deel_gegevens_keys dg, ins_deel d
|
||||
WHERE d.ins_deel_key = dg.ins_deel_key
|
||||
AND ins_deel_verwijder IS NULL
|
||||
AND dg.alg_terreinsector_key = :new.alg_terreinsector_key;
|
||||
BEGIN
|
||||
IF :new.alg_terreinsector_in_bewerk = 0 AND :old.alg_terreinsector_in_bewerk = 1
|
||||
THEN
|
||||
-- recalculate the mjb_scores of all objects within this terrain
|
||||
-- This may take some time
|
||||
FOR d IN terreinsector_objecten
|
||||
LOOP
|
||||
cnd.update_mjb_scores (d.ins_deel_key, 0);
|
||||
END LOOP;
|
||||
END IF;
|
||||
END;
|
||||
/
|
||||
|
||||
|
||||
-- een trigger op srtcontrole die bij afmelden de scores reset (bij methode 1?)
|
||||
CREATE OR REPLACE TRIGGER cnd_t_deelsrtcontrole_a_u
|
||||
AFTER UPDATE
|
||||
ON ins_deelsrtcontrole
|
||||
FOR EACH ROW
|
||||
DECLARE
|
||||
lcount NUMBER;
|
||||
BEGIN
|
||||
-- de bij dit object behorende gebreken afmelden en daarna de scores herberekenen, zou dan 1 moeten worden, nog uitdenken
|
||||
-- de statussen (vooralsnog 0;Ingepland 2;Gestart/In behandeling 5;Afgemeld/Gereed gemeld; 6;Afgerond)
|
||||
-- Ik kies even voor 6, maar misschien moet ook al bij 5?
|
||||
IF :new.ins_deelsrtcontrole_status = 6
|
||||
AND :new.ins_deelsrtcontrole_status <> :old.ins_deelsrtcontrole_status
|
||||
THEN
|
||||
-- dit gaat natuurlijk niet goed. Zijn er nog meer lopende taken op ditzelfde object?
|
||||
-- SELECT COUNT (*)
|
||||
-- INTO lcount
|
||||
-- FROM ins_deelsrtcontrole
|
||||
-- WHERE ins_deel_key = :new.ins_deel_key
|
||||
-- AND ins_deelsrtcontrole_status <> 6
|
||||
-- AND ins_deelsrtcontrole_key <> :new.ins_deelsrtcontrole_key;
|
||||
|
||||
-- IF lcount = 0
|
||||
-- THEN
|
||||
cnd.resetgebreken(:new.ins_deel_key);
|
||||
cnd.update_mjb_scores (:new.ins_deel_key); -- als nu in_bewerking, komt het dan nog ooit goed?
|
||||
-- END IF;
|
||||
END IF;
|
||||
END;
|
||||
/
|
||||
|
||||
REGISTERRUN('$Id$')
|
||||
|
||||
#endif // CND
|
||||
204
CND/CND_VIE.SRC
Normal file
204
CND/CND_VIE.SRC
Normal file
@@ -0,0 +1,204 @@
|
||||
#ifdef CND
|
||||
/*
|
||||
* $Revision$
|
||||
* $Id$
|
||||
*/
|
||||
|
||||
-- CND_V_NEN2767_ALLE_GEBREKEN: hierin zitten alle meldingen (gebreken) die nu relevant voor de berekening kunnen zijn
|
||||
-- dus gebreken die erkend zijn maar nog niet verwerkt of afgewezen.
|
||||
-- Niet uit te sluiten valt dat er dubbele registraties zijn, dat wordt ontdubbeld in cnd_v_nen2767_per_srtgebrek
|
||||
-- Het is daarmee niet aannemelijk dat je deze view nodig hebt, gebruik cnd_v_nen2767_per_srtgebrek.
|
||||
-- Merk op: op alle 3 de aspecten in mld_kenmerkmelding zit geen outer join, omdat ze overal verplicht zijn;
|
||||
-- zonder deze waarden is de conditiescore ook niet te berekenen overigens.
|
||||
|
||||
CREATE OR REPLACE VIEW cnd_v_nen2767_alle_gebreken
|
||||
(
|
||||
ins_deel_key,
|
||||
mld_melding_key,
|
||||
mld_stdmelding_key,
|
||||
mld_melding_status,
|
||||
ernst,
|
||||
intensiteit,
|
||||
omvang
|
||||
)
|
||||
AS
|
||||
WITH
|
||||
w_srtdisc_key AS (SELECT fac.getsetting ('cnd_gebreken_srtdisc_key') sdk FROM DUAL)
|
||||
SELECT d.ins_deel_key,
|
||||
m.mld_melding_key,
|
||||
m.mld_stdmelding_key,
|
||||
m.mld_melding_status,
|
||||
km_ernst.mld_kenmerkmelding_waarde,
|
||||
km_intensiteit.mld_kenmerkmelding_waarde,
|
||||
ud_omvang.fac_usrdata_prijs
|
||||
FROM mld_melding m,
|
||||
mld_stdmelding sm,
|
||||
mld_discipline disc,
|
||||
mld_melding_object mo,
|
||||
ins_deel d,
|
||||
mld_kenmerkmelding km_ernst,
|
||||
mld_kenmerk k_ernst,
|
||||
mld_srtkenmerk sk_ernst,
|
||||
mld_kenmerkmelding km_intensiteit,
|
||||
mld_kenmerk k_intensiteit,
|
||||
mld_srtkenmerk sk_intensiteit,
|
||||
mld_kenmerkmelding km_omvang,
|
||||
mld_kenmerk k_omvang,
|
||||
mld_srtkenmerk sk_omvang,
|
||||
fac_usrdata ud_omvang,
|
||||
w_srtdisc_key
|
||||
WHERE disc.ins_srtdiscipline_key = w_srtdisc_key.sdk
|
||||
AND sm.mld_stdmelding_code <> 'GEEN' -- moet uiteindelijk wegkunnen
|
||||
AND disc.ins_discipline_verwijder IS NULL
|
||||
AND sm.mld_ins_discipline_key = disc.ins_discipline_key
|
||||
AND m.mld_stdmelding_key = sm.mld_stdmelding_key
|
||||
AND mo.mld_melding_key = m.mld_melding_key
|
||||
AND mo.mld_melding_object_verwijder IS NULL
|
||||
AND d.ins_deel_key = mo.ins_deel_key
|
||||
AND km_ernst.mld_melding_key = m.mld_melding_key
|
||||
AND k_ernst.mld_kenmerk_key = km_ernst.mld_kenmerk_key
|
||||
AND k_ernst.mld_srtkenmerk_key = sk_ernst.mld_srtkenmerk_key
|
||||
AND sk_ernst.mld_srtkenmerk_code = 'ERNST'
|
||||
AND km_intensiteit.mld_melding_key = m.mld_melding_key
|
||||
AND k_intensiteit.mld_kenmerk_key = km_intensiteit.mld_kenmerk_key
|
||||
AND k_intensiteit.mld_srtkenmerk_key = sk_intensiteit.mld_srtkenmerk_key
|
||||
AND sk_intensiteit.mld_srtkenmerk_code = 'INTENSITEIT'
|
||||
AND km_omvang.mld_melding_key = m.mld_melding_key
|
||||
AND k_omvang.mld_kenmerk_key = km_omvang.mld_kenmerk_key
|
||||
AND k_omvang.mld_srtkenmerk_key = sk_omvang.mld_srtkenmerk_key
|
||||
AND sk_omvang.mld_srtkenmerk_code = 'OMVANG'
|
||||
AND ud_omvang.fac_usrdata_key = fac.safe_to_number (km_omvang.mld_kenmerkmelding_waarde)
|
||||
AND m.mld_melding_status NOT IN (1, 6);
|
||||
|
||||
-- Ontdubbel eventuele zelfde gebreken die op hetzelfde object zijn gemaakt, dus wanneer na elkaar
|
||||
-- hetzelfde gebrek (stdmelding) is ingelegd, dan geldt de laatste (=hoogste melding_key)
|
||||
CREATE OR REPLACE VIEW cnd_v_nen2767_per_srtgebrek
|
||||
(
|
||||
ins_deel_key,
|
||||
mld_melding_key,
|
||||
mld_stdmelding_key,
|
||||
mld_melding_status,
|
||||
ernst,
|
||||
intensiteit,
|
||||
omvang
|
||||
)
|
||||
AS
|
||||
SELECT a.ins_deel_key,
|
||||
a.mld_melding_key,
|
||||
a.mld_stdmelding_key,
|
||||
a.mld_melding_status,
|
||||
a.ernst,
|
||||
a.intensiteit,
|
||||
a.omvang
|
||||
FROM cnd_v_nen2767_alle_gebreken a,
|
||||
( SELECT a2.mld_stdmelding_key,
|
||||
a2.ins_deel_key,
|
||||
MAX (a2.mld_melding_key) AS mld_melding_key
|
||||
FROM cnd_v_nen2767_alle_gebreken a2
|
||||
GROUP BY a2.mld_stdmelding_key, a2.ins_deel_key) b
|
||||
WHERE a.mld_melding_key = b.mld_melding_key
|
||||
AND a.ins_deel_key = b.ins_deel_key;
|
||||
|
||||
|
||||
CREATE OR REPLACE VIEW cnd_v_nen2767_gebrek
|
||||
AS
|
||||
WITH
|
||||
w_srtdisc_key AS (SELECT fac.getsetting ('cnd_gebreken_srtdisc_key') sdk FROM DUAL)
|
||||
SELECT mo.ins_deel_key,
|
||||
m.mld_melding_key,
|
||||
m.mld_stdmelding_key,
|
||||
m.mld_melding_status,
|
||||
m.mld_melding_datum
|
||||
FROM mld_melding m,
|
||||
mld_stdmelding sm,
|
||||
mld_discipline disc,
|
||||
mld_melding_object mo,
|
||||
w_srtdisc_key
|
||||
WHERE disc.ins_srtdiscipline_key = w_srtdisc_key.sdk
|
||||
AND disc.ins_discipline_verwijder IS NULL
|
||||
AND sm.mld_ins_discipline_key = disc.ins_discipline_key
|
||||
AND m.mld_stdmelding_key = sm.mld_stdmelding_key
|
||||
AND mo.mld_melding_key = m.mld_melding_key
|
||||
AND mo.mld_melding_object_verwijder IS NULL
|
||||
AND m.mld_melding_status NOT IN (1,6);
|
||||
|
||||
|
||||
CREATE OR REPLACE VIEW cnd_v_nen2767_srtgebrek
|
||||
AS
|
||||
SELECT a.ins_deel_key,
|
||||
a.mld_melding_key,
|
||||
a.mld_stdmelding_key,
|
||||
a.mld_melding_status,
|
||||
a.mld_melding_datum
|
||||
FROM cnd_v_nen2767_gebrek a,
|
||||
( SELECT a2.mld_stdmelding_key,
|
||||
a2.ins_deel_key,
|
||||
MAX (a2.mld_melding_key) AS mld_melding_key
|
||||
FROM cnd_v_nen2767_gebrek a2
|
||||
GROUP BY a2.mld_stdmelding_key, a2.ins_deel_key) b
|
||||
WHERE a.mld_melding_key = b.mld_melding_key
|
||||
AND a.ins_deel_key = b.ins_deel_key;
|
||||
|
||||
CREATE OR REPLACE VIEW cnd_v_aggr_cond_score
|
||||
(
|
||||
alg_locatie_key,
|
||||
alg_gebouw_key,
|
||||
ins_deel_key,
|
||||
ins_deel_aantal,
|
||||
ins_deel_mjb_score1,
|
||||
kosten,
|
||||
correctiefactor,
|
||||
totale_vervangingswaarde,
|
||||
correctie_vervangingswaarde
|
||||
)
|
||||
AS
|
||||
SELECT l.alg_locatie_key,
|
||||
g.alg_gebouw_key,
|
||||
d.ins_deel_key,
|
||||
MAX (d.ins_deel_aantal),
|
||||
MAX (d.ins_deel_mjb_score1),
|
||||
MAX (
|
||||
COALESCE (sc.INS_SRTCONTROLE_KOSTEN, 0)
|
||||
+ COALESCE (sc.INS_SRTCONTROLE_KOSTEN2, 0)
|
||||
+ COALESCE (sc.INS_SRTCONTROLE_KOSTEN3, 0)
|
||||
+ COALESCE (sc.INS_SRTCONTROLE_MATERIAAL, 0))
|
||||
kosten,
|
||||
cnd.nen2767_corr_cond_score (MAX (d.ins_deel_mjb_score1))
|
||||
correctiefactor,
|
||||
MAX (d.ins_deel_aantal)
|
||||
* MAX (
|
||||
COALESCE (sc.INS_SRTCONTROLE_KOSTEN, 0)
|
||||
+ COALESCE (sc.INS_SRTCONTROLE_KOSTEN2, 0)
|
||||
+ COALESCE (sc.INS_SRTCONTROLE_KOSTEN3, 0)
|
||||
+ COALESCE (sc.INS_SRTCONTROLE_MATERIAAL, 0))
|
||||
totale_vervangingswaarde,
|
||||
MAX (d.ins_deel_aantal)
|
||||
* MAX (
|
||||
COALESCE (sc.INS_SRTCONTROLE_KOSTEN, 0)
|
||||
+ COALESCE (sc.INS_SRTCONTROLE_KOSTEN2, 0)
|
||||
+ COALESCE (sc.INS_SRTCONTROLE_KOSTEN3, 0)
|
||||
+ COALESCE (sc.INS_SRTCONTROLE_MATERIAAL, 0))
|
||||
* cnd.nen2767_corr_cond_score (MAX (d.ins_deel_mjb_score1))
|
||||
correctie_vervangingswaarde
|
||||
FROM ins_deel d,
|
||||
ins_v_defined_inspect_xcp sc,
|
||||
alg_ruimte r,
|
||||
alg_verdieping v,
|
||||
alg_gebouw g,
|
||||
alg_locatie l
|
||||
WHERE d.ins_deel_verwijder IS NULL
|
||||
AND ins_deel_mjb_score1 IS NOT NULL
|
||||
AND sc.ins_deel_key = d.ins_deel_key
|
||||
AND d.ins_alg_ruimte_type = 'R'
|
||||
AND d.ins_alg_ruimte_key = r.alg_ruimte_key
|
||||
AND r.alg_verdieping_key = v.alg_verdieping_key
|
||||
AND v.alg_gebouw_key = g.alg_gebouw_key
|
||||
AND g.alg_locatie_key = l.alg_locatie_key
|
||||
AND ins_scenario_key = 1
|
||||
AND ctr_ismjob = 1
|
||||
GROUP BY d.ins_deel_key, l.alg_locatie_key, g.alg_gebouw_key;
|
||||
|
||||
|
||||
REGISTERRUN('$Id$')
|
||||
|
||||
#endif // CND
|
||||
3
FCLT.NMK
3
FCLT.NMK
@@ -156,6 +156,9 @@ $(EXE)\$(NEXTROOT)\FCLT$(NEXTVERSION)$(FILEVERSION).SQL: \
|
||||
$(MSRC)\cad\cad_tab.src \
|
||||
$(MSRC)\cad\cad_tri.src \
|
||||
$(MSRC)\cad\cad_vie.src \
|
||||
$(MSRC)\cnt\cnd_pac.src \
|
||||
$(MSRC)\cnt\cnd_tri.src \
|
||||
$(MSRC)\cnt\cnd_vie.src \
|
||||
$(MSRC)\cnt\cnt_ind.src \
|
||||
$(MSRC)\cnt\cnt_ini.src \
|
||||
$(MSRC)\cnt\cnt_pac.src \
|
||||
|
||||
6
FCLT.SRC
6
FCLT.SRC
@@ -47,7 +47,7 @@ WHENEVER SQLERROR CONTINUE;
|
||||
|
||||
PROMPT [&fcltlogfile]
|
||||
PROMPT
|
||||
PROMPT Copyright 1996-2019 Aareon Nederland B.V. ALL RIGHTS RESERVED.
|
||||
PROMPT Copyright 1996-2020 Aareon Nederland B.V. ALL RIGHTS RESERVED.
|
||||
PROMPT
|
||||
PROMPT This is the generated list-file of EVALCONCAT(FCLT,_DBV).sql which was used
|
||||
PROMPT to create the FACILITOR(r) EVALCONCAT(DB,_DBV) schema in Oracle
|
||||
@@ -181,6 +181,6 @@ PROMPT ======================================================================
|
||||
SELECT 'Schema FACILITOR@' || USER || ' is now ' || fac.getdbversion() FROM DUAL;
|
||||
PROMPT
|
||||
PROMPT Your schema initialisation is ready. Please check the logfile for errors.
|
||||
PROMPT If in doubt please contact: FACILITOR Helpdesk +31 53 4800 700
|
||||
PROMPT Copyright (c) 1996-2019 Aareon Nederland B.V. All rights reserved.
|
||||
PROMPT If in doubt please contact: FACILITOR Helpdesk +31 53 4800 710
|
||||
PROMPT Copyright (c) 1996-2020 Aareon Nederland B.V. All rights reserved.
|
||||
SPOOL OFF
|
||||
|
||||
@@ -9,6 +9,7 @@
|
||||
* BEZ - Bezoekers registratie
|
||||
* BGT - Budgetconrole (BCS)
|
||||
* CAD - AutoCAD koppeling
|
||||
* CND - Conditiemetingen (NEN2767)
|
||||
* CNT - Contracten
|
||||
* CTR - Periodieke taken (controles)
|
||||
* FAC - Basismodule
|
||||
@@ -29,6 +30,7 @@
|
||||
#define BEZ BEZ
|
||||
#define BGT BGT
|
||||
#define CAD CAD
|
||||
#define CND CND
|
||||
#define CNT CNT
|
||||
#define CTR CTR
|
||||
#define FAC FAC
|
||||
|
||||
@@ -23,6 +23,7 @@
|
||||
#include "msg\msg_vie.src"
|
||||
#include "kpi\kpi_vie.src"
|
||||
#include "ctr\ctr_vie.src"
|
||||
#include "cnd\cnd_vie.src"
|
||||
|
||||
// Recreation all packages
|
||||
#include "adm\adm_pac.src"
|
||||
@@ -44,6 +45,7 @@
|
||||
#include "msg\msg_pac.src"
|
||||
#include "kpi\kpi_pac.src"
|
||||
#include "ctr\ctr_pac.src"
|
||||
#include "cnd\cnd_pac.src"
|
||||
|
||||
// Recreation all triggers
|
||||
// adm_tri staat ook al in FCLT.SRC maar hier herhalen voor upgrade-scripts
|
||||
@@ -67,6 +69,7 @@
|
||||
#include "msg\msg_tri.src"
|
||||
#include "kpi\kpi_tri.src"
|
||||
#include "ctr\ctr_tri.src"
|
||||
#include "cnd\cnd_tri.src"
|
||||
|
||||
/* LOCALE's */
|
||||
#include "fac\fac_lcl.src"
|
||||
|
||||
Reference in New Issue
Block a user