FCLT#60015 in_bewerking feature laten vervallen, upgrade gecompleteerd (nog zonder conversies)

svn path=/Database/trunk/; revision=45437
This commit is contained in:
Peter Feij
2020-01-14 14:05:38 +00:00
parent 1727af5829
commit c5dd62284d
4 changed files with 38 additions and 101 deletions

View File

@@ -193,10 +193,6 @@ CREATE_TABLE(alg_terreinsector,0)
alg_terreinsector_getekend
DATE
DEFAULT NULLDATUM,
alg_terreinsector_in_bewerk /* onderdrukt (tijdelijk) de mjb_score berekening voor alles binnen dit terrein */
NUMBER(1)
DEFAULT (0) NOT NULL
CONSTRAINT alg_c_terreinsector_in_bewerk CHECK(alg_terreinsector_in_bewerk IN (0,1)),
alg_terreinsector_toon_telef
NUMBER(3) DEFAULT(0) NOT NULL
CONSTRAINT alg_c_alg_terreinsector_telf CHECK(alg_terreinsector_toon_telef IN (0,1,2,3)), /* 0=Onzichtbaar; 1=Niet verplicht; 2=Verplicht bij parkeerplaats. 3=Altijd verplicht */
@@ -360,10 +356,6 @@ CREATE_TABLE(alg_gebouw,0)
VARCHAR2(255),
alg_gebouw_mjb_score1
NUMBER(6,2),
alg_gebouw_in_bewerking /* onderdrukt (tijdelijk) de mjb_score berekening voor alles binnen dit gebouw */
NUMBER(1)
DEFAULT (0) NOT NULL
CONSTRAINT alg_c_gebouw_in_bewerk CHECK(alg_gebouw_in_bewerking IN (0,1)),
alg_gebouw_toon_telefoon
NUMBER(3) DEFAULT(0) NOT NULL
CONSTRAINT alg_c_alg_gebouw_toon_telf CHECK(alg_gebouw_toon_telefoon IN (0,1,2,3)), /* 0=Onzichtbaar; 1=Niet verplicht; 2=Verplicht bij parkeerplaats. 3=Altijd verplicht */

View File

@@ -38,7 +38,6 @@
-- - Dus: je kunt in principe op elk moment de score van een object bepalen obv de meldingen van dat moment
-- - middels triggers of aanroepen (in ASP of waar nodig) forceren we herberekening. Veranderingen worden getrackt indien de score(s) ook daadwerkelijk veranderen
-- - gebreken kunnen ook in bulk geimporteerd worden
-- - het direct berekenen van de score kan onderdrukt worden door een status _in_bewerking op gebouw/terreinniveau, als dat weer aan gaat wordt het hele gebouw berekend
--
@@ -69,7 +68,7 @@ AS
RETURN NUMBER;
-- Call this procedure to update the score of p_deel_key based on actual 'gebreken'-meldingen
PROCEDURE update_mjb_scores (p_deel_key IN NUMBER, p_checksuspension IN NUMBER DEFAULT 1, p_user_key IN NUMBER DEFAULT NULL);
PROCEDURE update_mjb_scores (p_deel_key IN NUMBER, p_user_key IN NUMBER DEFAULT NULL);
-- Call this procedure to update scores of objects possible affected by p_melding_key
PROCEDURE process_mjb_score_effects (p_melding_key IN NUMBER, p_user_key IN NUMBER DEFAULT NULL);
@@ -819,7 +818,7 @@ AS
RETURN NULL;
END;
PROCEDURE update_mjb_scores (p_deel_key IN NUMBER, p_checksuspension IN NUMBER DEFAULT 1, p_user_key IN NUMBER DEFAULT NULL)
PROCEDURE update_mjb_scores (p_deel_key IN NUMBER, p_user_key IN NUMBER DEFAULT NULL)
AS
BEGIN
DECLARE
@@ -827,7 +826,6 @@ AS
lnewscore2 NUMBER; -- Prio
loldscore1 NUMBER;
loldscore2 NUMBER;
lcnd_suspended alg_gebouw.alg_gebouw_in_bewerking%TYPE;
BEGIN
-- Hier worden de ins_deel_mjb_score1/2 bijgewerkt.
-- Dat wordt doorgaans getriggerd door een event waardoor deze score gewijzigd kan zijn
@@ -835,31 +833,6 @@ AS
-- nodig en kun je je dus niet alleen baseren op dat waardoor je getriggerd werd
DBMS_OUTPUT.put_line ('updating MJB-object: ' || p_deel_key);
-- Het berekenen kan ook suspended zijn als dat bij het betreffende gebouw/terrein is aangegeven
-- Dan moeten we even helemaal niks doen. Soms weet de aanroeper al dat het niet zo is
-- en checken we het niet vanwege kans op mutating-errors (vanuit de alg-triggers)
IF p_checksuspension = 1
THEN
SELECT GREATEST (COALESCE (g.alg_gebouw_in_bewerking, 0),
COALESCE (t.alg_terreinsector_in_bewerk, 0))
INTO lcnd_suspended
FROM ins_v_deel_gegevens_keys dg, alg_gebouw g, alg_terreinsector t
WHERE dg.alg_gebouw_key = g.alg_gebouw_key(+)
AND dg.alg_terreinsector_key = t.alg_terreinsector_key(+)
AND dg.ins_deel_key = p_deel_key;
ELSE
lcnd_suspended := 0;
END IF;
IF lcnd_suspended = 1
THEN
DBMS_OUTPUT.put_line ('Building/terrain is suspended, scores are not calculated');
RETURN;
END IF;
DBMS_OUTPUT.put_line ('Building/terrain is not suspended: calculate!');
SELECT ins_deel_mjb_score1, ins_deel_mjb_score2
INTO loldscore1, loldscore2
FROM ins_deel
@@ -954,7 +927,7 @@ AS
LOOP
DBMS_OUTPUT.put_line (
'About to update MJB scores of object: ' || c_o.ins_deel_key);
update_mjb_scores (c_o.ins_deel_key, 1, p_user_key);
update_mjb_scores (c_o.ins_deel_key, p_user_key);
ldeelcnt := ldeelcnt + 1;
END LOOP;
@@ -1455,7 +1428,7 @@ BEGIN
THEN
BEGIN
v_errorhint :=
'Fout bij toevoegen regel aan importtabel plat_imp_srtdeel_mlddiscipline';
'Fout bij toevoegen regel aan importtabel cnd_imp_srtdeel_mlddiscipline';
INSERT INTO cnd_imp_srtdeel_mlddiscipline (
fac_import_key,
@@ -2452,7 +2425,7 @@ BEGIN
THEN
BEGIN
v_errorhint :=
'Fout bij toevoegen regel aan importtabel plat_imp_nen2767_results';
'Fout bij toevoegen regel aan importtabel cnd_imp_nen2767_results';
INSERT INTO cnd_imp_nen2767_results (
fac_import_key,

View File

@@ -4,64 +4,10 @@
* $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;
/
REGISTERRUN('$Id$')
#endif // CND

View File

@@ -313,14 +313,40 @@ ALTER TABLE fac_imp_flex
);
/////////////////////////////////////////////////////////////////////////////////////////// FCLT#60015
ALTER TABLE alg_gebouw ADD alg_gebouw_in_bewerking
NUMBER(1) DEFAULT (0) NOT NULL
CONSTRAINT alg_c_gebouw_in_bewerk CHECK(alg_gebouw_in_bewerking IN (0,1));
CREATE_TABLE(cnd_imp_nen2767_results,0)
(
fac_import_key NUMBER (10),
alg_gebouw_code VARCHAR2 (12),
ins_deel_omschrijving VARCHAR2 (60),
mld_melding_datum VARCHAR2 (20),
mld_melding_omschrijving VARCHAR2 (2000),
prs_perslid_email VARCHAR2 (200),
gebrekcode VARCHAR2 (20),
ernst VARCHAR2 (50),
omvang VARCHAR2 (50),
intensiteit VARCHAR2 (50),
aspect1 VARCHAR2 (20),
aspect2 VARCHAR2 (20),
aspect3 VARCHAR2 (20),
aspect4 VARCHAR2 (20),
aspect5 VARCHAR2 (20),
aspect6 VARCHAR2 (20),
aspect7 VARCHAR2 (20),
foto VARCHAR2 (50),
condscore NUMBER (6, 2),
prioscore NUMBER (6, 2),
kosten NUMBER (10, 2),
plandatum DATE
);
ALTER TABLE alg_terreinsector ADD alg_terreinsector_in_bewerk
NUMBER(1)
DEFAULT (0) NOT NULL
CONSTRAINT alg_c_terreinsector_in_bewerk CHECK(alg_terreinsector_in_bewerk IN (0,1));
CREATE_TABLE(cnd_imp_srtdeel_mlddiscipline,0)
(
fac_import_key NUMBER (10),
ins_srtdeel_code VARCHAR2 (10),
ins_srtgroep_omschrijving VARCHAR2 (60),
ins_discipline_omschrijving VARCHAR2 (60),
mld_discipline_omschrijving VARCHAR2 (60)
);
/////////////////////////////////////////////////////////////////////////////////////////// MARX#60634
ALTER TABLE prs_bedrijf MODIFY prs_bedrijf_opmerking VARCHAR2(1000);