35 Commits

Author SHA1 Message Date
Erik Groener
e91fab1a47 FZKH#88392 Probleem bij importeren verbruiksartikelen zonder kostensoort
Regels met niet bestaande kostensoort omschrijvingen worden niet in importtabel gezet.

svn path=/Database/branches/DB50/; revision=68689
2025-04-08 12:57:12 +00:00
Erik Groener
86eb532a2d FZKH#88392 Probleem bij importeren verbruiksartikelen zonder kostensoort
svn path=/Database/branches/DB50/; revision=68678
2025-04-08 08:01:39 +00:00
Jos Groot Lipman
8110221e43 VNOG#88326 Veranderde e-mailnotificaties na update versie 2025.1
svn path=/Database/branches/DB50/; revision=68619
2025-04-01 14:55:36 +00:00
Jos Groot Lipman
a7c9068806 MARX#88269 Opdrachten via mail i.p.v. premium koppeling
svn path=/Database/branches/DB50/; revision=68551
2025-03-26 12:01:40 +00:00
Jos Groot Lipman
24855f1e1e MARX#88269 Opdrachten via mail i.p.v. premium koppeling
svn path=/Database/branches/DB50/; revision=68532
2025-03-25 15:05:35 +00:00
Jos Groot Lipman
ddc1067bf7 HCAS#88267 Inefficiëntie in Putorders door BEZDON notificatie triggers
svn path=/Database/branches/DB50/; revision=68530
2025-03-25 15:02:14 +00:00
Jos Groot Lipman
d6881fe219 SGGR#87834 Vier settings voor aantal licensed users toegevoegd
svn path=/Database/branches/DB50/; revision=68453
2025-03-19 12:27:20 +00:00
Jos Groot Lipman
11020748a0 FCLT#88153 prs_perslid_systeemadres deprecated-->technisch adres
svn path=/Database/branches/DB50/; revision=68449
2025-03-19 11:16:11 +00:00
Jos Groot Lipman
061e44885d FCLT#85890 fac_v_noti_facorderqueuefails notificaties ook baseren op nieuwe notificatie queue gebeuren
svn path=/Database/branches/DB50/; revision=68442
2025-03-18 14:18:30 +00:00
Erik Groener
ba9603a62c WRTH#87857 Probleem bij importeren contractheaders in 2025.1 versie
svn path=/Database/branches/DB50/; revision=68440
2025-03-18 13:29:57 +00:00
78a027a723 RIAN#87845
RIAN#87851
Trunk -> 2025.1 (DB51 -> DB50)

svn path=/Database/branches/DB50/; revision=68425
2025-03-17 13:38:48 +00:00
3490c6591b FCLT#88052 UDR aan (protected)setting omschrijving toegevoegd
svn path=/Database/branches/DB50/; revision=68389
2025-03-13 09:48:25 +00:00
d6a48a0de7 NOVA#85923 LCL; Markeren -> Handmatig versturen
svn path=/Database/branches/DB50/; revision=68372
2025-03-12 11:02:42 +00:00
Maykel Geerdink
5aa2f14baf FCLT#87938: Problemen met export/import in objectenbeheer: ontbrekende kolommen.
svn path=/Database/branches/DB50/; revision=68361
2025-03-11 15:59:48 +00:00
Erik Groener
6848f46b99 WRTH#87857 Probleem bij importeren contractheaders in 2025.1 versie
svn path=/Database/branches/DB50/; revision=68360
2025-03-11 15:50:53 +00:00
761478e5c4 BCGV#85436 LCL's gebruiken (en alvast aanmaken)
svn path=/Database/branches/DB50/; revision=68341
2025-03-10 15:58:34 +00:00
Erik Groener
491cc5b06c FBEA#87660 Invoeren niet-planbare dagen in Facilitor voor nieuw seizoen
svn path=/Database/branches/DB50/; revision=68337
2025-03-10 14:06:46 +00:00
Jos Groot Lipman
05388b80a4 FCLT#85890 fac.notifytrackingbedrijven kan nu ook met delay (voor Mareon)
svn path=/Database/branches/DB50/; revision=68269
2025-03-03 15:45:51 +00:00
Jos Groot Lipman
49452ff6bc FCLT#85890 noti_delay_mode om immediate gedrag van bedrijfadres notificaties aan te sturen
svn path=/Database/branches/DB50/; revision=68256
2025-03-03 08:16:05 +00:00
90aa537a1f VNOG#85909 + alias
svn path=/Database/branches/DB50/; revision=68233
2025-02-27 17:12:57 +00:00
Jos Groot Lipman
0013b2bd21 FCLT#85890 noti_delay_mode om immediate gedrag van bedrijfadres notificaties aan te sturen
svn path=/Database/branches/DB50/; revision=68229
2025-02-27 12:35:47 +00:00
Jos Groot Lipman
a545314ce2 CSUN#87371 Verwijderen overbodige afbeeldingen bij mail2melding berichten
svn path=/Database/branches/DB50/; revision=68227
2025-02-27 11:53:36 +00:00
Jos Groot Lipman
0ff61cc1b9 FCLT#86661 Tasker elke seconde draaien en herstartbaar maken.
Bij delay=0 zorgen dat notificatie 'voorkruipt' door prio op 1 te zetten

svn path=/Database/branches/DB50/; revision=68218
2025-02-27 08:20:41 +00:00
6e38bd09af AAXX#87593 S(exchange_max_concurrent_notifications) alvast toegevoegd
svn path=/Database/branches/DB50/; revision=68210
2025-02-26 14:22:44 +00:00
e81df9e029 VNOG#85909 Performance verbetering ins_v_deelenonderdeel
svn path=/Database/branches/DB50/; revision=68195
2025-02-25 15:23:11 +00:00
Maykel Geerdink
dbe2096830 VGLD#85984: Automatische afsluitdatum instellen in contracten mogelijk?
svn path=/Database/branches/DB50/; revision=68158
2025-02-24 13:31:54 +00:00
96d9dad71e FCLT#86343 Commentaar uitgebreid
svn path=/Database/branches/DB50/; revision=68127
2025-02-21 08:47:28 +00:00
Maykel Geerdink
289ab7beba NOVA#85923: Voorbeeldweergave van opdracht vóór verzending.
svn path=/Database/branches/DB50/; revision=68123
2025-02-20 16:23:55 +00:00
a217b03c5d BSSC#86530 3 -> 2 velden, korting en prijs, waarbij prijs het resultaat is van de res.getruimteprijs-functie en die levert, indien van toepassing, res_rsv_ruimte_totaal op
svn path=/Database/branches/DB50/; revision=68118
2025-02-20 15:41:39 +00:00
Jos Groot Lipman
05641e991d FCLT#85890 Diverse notificatie configuratie interface verfijningen
svn path=/Database/branches/DB50/; revision=68102
2025-02-20 11:56:54 +00:00
Maykel Geerdink
ed4406dbd7 NOVA#85923: Voorbeeldweergave van opdracht vóór verzending.
svn path=/Database/branches/DB50/; revision=68098
2025-02-20 11:14:38 +00:00
Jos Groot Lipman
27ccd165f1 FCLT#85890 puo_lcl_tracknoti_sys en puo_lcl_tracknoti_sys_fail toegevoegd
svn path=/Database/branches/DB50/; revision=68087
2025-02-19 17:03:51 +00:00
Jos Groot Lipman
dd8f872cb5 FCLT#85890 Technisch adres interne bedrijven geen vertraging bij versturen
* Tasker opstarten bij wijzigen notbefore
* ORDNEW notificeren wel als teverzenden = 1 natuurlijk

svn path=/Database/branches/DB50/; revision=68078
2025-02-19 13:04:08 +00:00
1046a64edb MARX#87424 menuoptie toegevoegd, en lcl's van technisch adres aangepast naar systeemadres
svn path=/Database/branches/DB50/; revision=68066
2025-02-19 09:50:42 +00:00
6a24668f64 Branch DB50
svn path=/Database/branches/DB50/; revision=68061
2025-02-18 20:03:22 +00:00
65 changed files with 3338 additions and 8944 deletions

View File

@@ -203,9 +203,6 @@ AS
raise_application_error(-20001, tekst);
END IF;
-- Voor als een once-script ooit tabellen aanmaakt.
EXECUTE IMMEDIATE 'ALTER SESSION SET nls_length_semantics=''char''';
RETURN tekst;
END;

View File

@@ -36,17 +36,17 @@
dummy1, child_verwijder, child_key, dummy2) \
BEGIN \
IF :new.parent_verwijder IS NOT NULL \
THEN \
_THEN \
UPDATE child_table \
SET child_verwijder = :new.parent_verwijder \
WHERE child_table.child_key = :new.parent_key \
AND child_table.ins_alg_ruimte_type = 'W' \
AND child_table.ins_deel_verwijder IS NULL; \
ELSIF (:new.parent_verwijder IS NULL AND :old.parent_verwijder IS NOT NULL)\
THEN \
_ELSIF (:new.parent_verwijder IS NULL AND :old.parent_verwijder IS NOT NULL)\
_THEN \
UPDATE child_table \
SET child_verwijder = :new.parent_verwijder \
WHERE child_table.child_key = :new.parent_key \
AND ins_alg_ruimte_type = 'W'; \
END_IF; \
_END_IF; \
END

View File

@@ -120,8 +120,6 @@ CREATE_TABLE(alg_locatie,0)
DATE,
alg_locatie_volgnr
NUMBER(3),
alg_locatie_timezone
VARCHAR2(40),
-- in MLD_TAB.SRC:
-- mld_dienstniveau_key
-- NUMBER(10)
@@ -718,9 +716,6 @@ CREATE_TABLE(alg_kenmerk,0)
,alg_kenmerk_volgnr
NUMBER(3)
NOT NULL
,alg_kenmerk_rolcode
NUMBER(4)
DEFAULT 7 NOT NULL
,alg_kenmerk_omschrijving
VARCHAR2(50)
,alg_kenmerk_upper

View File

@@ -2249,6 +2249,7 @@ AS
mld_adres ma,
alg_locatie l
WHERE o.bes_bestelopdr_key = pbestelopdrkey
AND b.prs_bedrijf_key = o.prs_bedrijf_key
AND o.mld_adres_key_lev = ma.mld_adres_key
AND ma.alg_locatie_key = l.alg_locatie_key(+)
AND ( b.prs_bedrijf_key = o.prs_bedrijf_key -- type 'B'

View File

@@ -497,7 +497,7 @@ CREATE_TABLE(bes_disc_params, 0)
NUMBER(1)
DEFAULT 0
NOT NULL,
bes_disc_params_bestelmode /* 0=ouderwets artikelselector, 1=vrij artikelen, 2=bestellijst, 3=actuele lijst */
bes_disc_params_bestelmode /* 0=ouderwets artikelselector, 1=vrij artikelen, 2=bestellijst */
NUMBER(1)
DEFAULT 0
NOT NULL,
@@ -607,9 +607,6 @@ CREATE_TABLE(bes_kenmerk, 0)
, bes_kenmerk_volgnummer
NUMBER(3)
NOT NULL
, bes_kenmerk_rolcode
NUMBER(4)
DEFAULT 7 NOT NULL
, bes_kenmerk_uniek
NUMBER(1)
, bes_kenmerk_regexp

View File

@@ -351,118 +351,6 @@ AS
AND sd.prs_bedrijf_key = b.prs_bedrijf_key
AND sd.bes_staffeltabel_key = bs.bes_staffeltabel_key;
CREATE_VIEW(bes_v_average_current_stock, 0)
AS
-- Gemiddelde voorraad en bestellingen voor "Actuele lijst" artikelen.
SELECT sd.bes_srtdeel_key,
sd.bes_srtdeel_volgnr volgnummer,
sd.bes_srtdeel_nr artikelnummer,
sd.bes_srtdeel_omschrijving artikel,
sd.bes_srtdeel_notitie notitie,
dp.bes_ins_discipline_key,
bd.ins_discipline_omschrijving discipline,
g.bes_srtgroep_key,
g.bes_srtgroep_omschrijving groep,
sd.bes_srtdeel_voorraadmax voorraadmax,
sd.bes_srtdeel_voorraadmin voorraadmin,
sd.bes_srtdeel_maxbestel maxbestel,
sd.bes_srtdeel_minimum bestelmin,
sd.bes_srtdeel_maximum bestelmax,
sd.bes_srtdeel_veelvoud bestelveelvoud,
sd.bes_srtdeel_eenheid eenheid,
sd.bes_srtdeel_vervaldatum vervaldatum,
(SELECT COUNT(*)
FROM bes_kenmerk bk,
bes_srtkenmerk sk,
bes_srtdeel sd2,
bes_srtgroep sg
WHERE sd2.bes_srtgroep_key = sg.bes_srtgroep_key
AND (bk.bes_srtinstallatie_key = sg.ins_discipline_key
AND bk.bes_kenmerk_niveau LIKE 'D'
OR bk.bes_srtinstallatie_key = sg.bes_srtgroep_key
AND bk.bes_kenmerk_niveau LIKE 'G'
OR bk.bes_srtinstallatie_key = sd2.bes_srtdeel_key
AND bk.bes_kenmerk_niveau LIKE 'S')
AND bk.bes_kenmerk_type = 'I'
AND bk.bes_srtkenmerk_key = sk.bes_srtkenmerk_key
AND bk.bes_kenmerk_verwijder IS NULL
AND sk.bes_srtkenmerk_verwijder IS NULL
AND sd2.bes_srtdeel_key = sd.bes_srtdeel_key) aantal_kenmerken,
SUM(CASE WHEN b.bes_bestelling_status = 6 THEN 0 ELSE bi.bes_bestelling_item_aantal END) - SUM(CASE WHEN b.bes_bestelling_status = 6 THEN 0 ELSE COALESCE(bi.bes_bestelling_item_aantalontv, 0) END) in_bestelling,
SUM(bi.bes_bestelling_item_aantal) besteld,
SUM(COALESCE(bi.bes_bestelling_item_aantalontv, 0)) geleverd,
COALESCE(bes.getsrtdeelprijs(sd.bes_srtdeel_key, NULL), 0) prijs,
MIN(b.bes_bestelling_datum) eerste_bestelling,
MAX(b.bes_bestelling_datum) laatste_bestelling,
ROUND(MAX(b.bes_bestelling_datum) - MIN(b.bes_bestelling_datum)) historie_dagen,
COUNT(sd.bes_srtdeel_key) aantal_bestellingen,
ROUND((MAX(b.bes_bestelling_datum) - MIN(b.bes_bestelling_datum)) / COUNT(sd.bes_srtdeel_key)) bestel_periode_dagen,
CASE
WHEN MAX(b.bes_bestelling_datum) - MIN(b.bes_bestelling_datum) = 0
THEN NULL
ELSE ROUND((COUNT(sd.bes_srtdeel_key) / ((MAX(b.bes_bestelling_datum) - MIN(b.bes_bestelling_datum)) / 365)) / 12, 1)
END bestellingen_per_maand,
CASE
WHEN MAX(b.bes_bestelling_datum) - MIN(b.bes_bestelling_datum) = 0
THEN NULL
ELSE ROUND((((MAX(b.bes_bestelling_datum) - MIN(b.bes_bestelling_datum)) / 365) * SUM(bi.bes_bestelling_item_aantal)) / 12, 1)
END artikelen_per_maand,
CASE
WHEN MAX(b.bes_bestelling_datum) - MIN(b.bes_bestelling_datum) = 0
THEN NULL
ELSE ROUND((((MAX(b.bes_bestelling_datum) - MIN(b.bes_bestelling_datum)) / 365) * SUM(bi.bes_bestelling_item_aantal)) * COALESCE(bes.getsrtdeelprijs(sd.bes_srtdeel_key, NULL), 0) / 12)
END totaal_per_maand,
CASE
WHEN MAX(b.bes_bestelling_datum) - MIN(b.bes_bestelling_datum) = 0
THEN NULL
ELSE ROUND(COUNT(sd.bes_srtdeel_key) / ((MAX(b.bes_bestelling_datum) - MIN(b.bes_bestelling_datum)) / 365), 1)
END bestellingen_per_jaar,
CASE
WHEN MAX(b.bes_bestelling_datum) - MIN(b.bes_bestelling_datum) = 0
THEN NULL
ELSE ROUND(((MAX(b.bes_bestelling_datum) - MIN(b.bes_bestelling_datum)) / 365) * SUM(bi.bes_bestelling_item_aantal))
END artikelen_per_jaar,
CASE
WHEN MAX(b.bes_bestelling_datum) - MIN(b.bes_bestelling_datum) = 0
THEN NULL
ELSE ROUND(((MAX(b.bes_bestelling_datum) - MIN(b.bes_bestelling_datum)) / 365) * SUM(bi.bes_bestelling_item_aantal)) * COALESCE(bes.getsrtdeelprijs(sd.bes_srtdeel_key, NULL), 0)
END totaal_per_jaar
FROM bes_discipline bd,
bes_v_aanwezigsrtgroep g,
bes_v_aanwezigsrtdeel sd,
bes_disc_params dp,
bes_bestelling b,
bes_bestelling_item bi
WHERE sd.bes_srtgroep_key = g.bes_srtgroep_key
AND dp.bes_disc_params_bestelmode = 3
AND g.ins_discipline_key = bd.ins_discipline_key
AND bd.ins_discipline_key = dp.bes_ins_discipline_key
AND sd.bes_srtdeel_key = bi.bes_srtdeel_key
AND bi.bes_bestelling_key = b.bes_bestelling_key
AND b.bes_bestelling_status IN (2, 3, 4, 5, 6)
AND (sd.bes_srtdeel_vervaldatum IS NULL
OR sd.bes_srtdeel_vervaldatum > SYSDATE)
GROUP BY sd.bes_srtdeel_volgnr,
sd.bes_srtdeel_nr,
sd.bes_srtdeel_key,
sd.bes_srtdeel_omschrijving,
sd.bes_srtdeel_notitie,
dp.bes_ins_discipline_key,
bd.ins_discipline_omschrijving,
g.bes_srtgroep_key,
g.bes_srtgroep_omschrijving,
sd.bes_srtdeel_voorraadmax,
sd.bes_srtdeel_voorraadmin,
sd.bes_srtdeel_maxbestel,
sd.bes_srtdeel_minimum,
sd.bes_srtdeel_maximum,
sd.bes_srtdeel_veelvoud,
sd.bes_srtdeel_eenheid,
sd.bes_srtdeel_vervaldatum
ORDER BY sd.bes_srtdeel_volgnr,
sd.bes_srtdeel_nr;
REGISTERRUN('$Id$')
#endif // BES

View File

@@ -13,13 +13,6 @@ CREATE OR REPLACE PACKAGE bez AS
FUNCTION afssprintf (ps IN VARCHAR2 , p_afspraak_key IN NUMBER) RETURN VARCHAR2 ;
FUNCTION bzksprintf (ps IN VARCHAR2 , p_bezoekers_key IN NUMBER) RETURN VARCHAR2 ;
PROCEDURE remove (p_afspraak_key IN NUMBER);
PROCEDURE notifyafspraakbedrijven (p_afspraak_key NUMBER,
ptrackingkey NUMBER,
pnotidelay NUMBER DEFAULT NULL);
PROCEDURE notifybezoekerbedrijven (p_bezoekers_key NUMBER,
ptrackingkey NUMBER,
pnotidelay NUMBER DEFAULT NULL);
END bez;
/
@@ -590,67 +583,6 @@ CREATE OR REPLACE PACKAGE BODY bez AS
fac.remove_tracking('afspraak', p_afspraak_key);
END;
-- Alleen generieke bedrijven
PROCEDURE notifyafspraakbedrijven (p_afspraak_key NUMBER,
ptrackingkey NUMBER,
pnotidelay NUMBER DEFAULT NULL)
IS
BEGIN
FOR bedrijfrec IN (SELECT b.prs_bedrijf_key,
'G' bedrijfadres_type,
a.alg_locatie_key,
a.bez_afspraak_key
FROM prs_bedrijf b,
bez_afspraak a
WHERE a.bez_afspraak_key = p_afspraak_key
AND EXISTS
(SELECT 1
FROM prs_bedrijfadres ba
WHERE ba.prs_bedrijf_key = b.prs_bedrijf_key
AND ba.prs_bedrijfadres_startdatum <= SYSDATE
AND ba.prs_bedrijfadres_type = 'G'))
LOOP
fac.notifybedrijf (pbedrijf_key => bedrijfrec.prs_bedrijf_key,
pbedrijfadres_type => bedrijfrec.bedrijfadres_type,
prefkey => p_afspraak_key,
ptrackingkey => ptrackingkey,
preference => TO_CHAR(bedrijfrec.bez_afspraak_key),
plocatie_key => bedrijfrec.alg_locatie_key,
pnotidelay => pnotidelay);
END LOOP;
END;
-- Alleen generieke bedrijven
PROCEDURE notifybezoekerbedrijven (p_bezoekers_key NUMBER,
ptrackingkey NUMBER,
pnotidelay NUMBER DEFAULT NULL)
IS
BEGIN
FOR bedrijfrec IN (SELECT b.prs_bedrijf_key,
'G' bedrijfadres_type,
a.alg_locatie_key,
a.bez_afspraak_key
FROM prs_bedrijf b,
bez_afspraak a,
bez_bezoekers bb
WHERE bb.bez_afspraak_key = a.bez_afspraak_key
AND EXISTS
(SELECT 1
FROM prs_bedrijfadres ba
WHERE ba.prs_bedrijf_key = b.prs_bedrijf_key
AND ba.prs_bedrijfadres_startdatum <= SYSDATE
AND ba.prs_bedrijfadres_type = 'G'))
LOOP
fac.notifybedrijf (pbedrijf_key => bedrijfrec.prs_bedrijf_key,
pbedrijfadres_type => bedrijfrec.bedrijfadres_type,
prefkey => p_bezoekers_key,
ptrackingkey => ptrackingkey,
preference => TO_CHAR(bedrijfrec.bez_afspraak_key),
plocatie_key => bedrijfrec.alg_locatie_key,
pnotidelay => pnotidelay);
END LOOP;
END;
END bez;
/

View File

@@ -161,9 +161,6 @@ CREATE_TABLE(bez_kenmerk,0)
,bez_kenmerk_volgnr
NUMBER(3)
NOT NULL
,bez_kenmerk_rolcode
NUMBER(4)
DEFAULT 7 NOT NULL
,bez_kenmerk_omschrijving
VARCHAR2(50)
,bez_kenmerk_upper

View File

@@ -13,9 +13,9 @@ CREATE_TABLE(bgt_disc_params,0)
NUMBER (10)
CONSTRAINT bgt_r_ins_discipine_key REFERENCES ins_tab_discipline (ins_discipline_key),
bgt_disc_params_code -- projectcode
VARCHAR2 (20 CHAR),
VARCHAR2 (20 BYTE),
bgt_disc_params_opdrachtgever
VARCHAR2 (200 CHAR),
VARCHAR2 (200 BYTE),
bgt_disc_params_startdatum
DATE
);
@@ -28,18 +28,18 @@ CREATE_TABLE(bgt_project, 0)
NUMBER (10)
CONSTRAINT bgt_r_ins_discipline_key1 REFERENCES ins_tab_discipline (ins_discipline_key),
bgt_project_code
VARCHAR2 (20 CHAR)
VARCHAR2 (20 BYTE)
CONSTRAINT bgt_c_bgt_project_code NOT NULL,
bgt_project_omschrijving
VARCHAR2 (60 CHAR),
VARCHAR2 (60 BYTE),
bgt_project_volgnr
NUMBER (3),
bgt_project_prijspeildatum
DATE,
bgt_project_info
VARCHAR2 (4000 CHAR),
VARCHAR2 (4000 BYTE),
bgt_project_notes
VARCHAR2 (4000 CHAR),
VARCHAR2 (4000 BYTE),
bgt_project_aanmaak
DATE DEFAULT SYSDATE,
bgt_project_verwijder
@@ -59,9 +59,9 @@ CREATE_TABLE(bgt_kostenrubriek,0)
CONSTRAINT bgt_c_bgt_kostenrubriek1 NOT NULL
CONSTRAINT bgt_r_bgt_project_key1 REFERENCES bgt_project (bgt_project_key),
bgt_kostenrubriek_code
VARCHAR2 (20 CHAR),
VARCHAR2 (20 BYTE),
bgt_kostenrubriek_oms
VARCHAR2 (60 CHAR) NOT NULL,
VARCHAR2 (60 BYTE) NOT NULL,
fin_btwtabelwaarde_key
NUMBER(10)
CONSTRAINT bgt_r_fin_btwtabelwaarde_key REFERENCES fin_btwtabelwaarde (fin_btwtabelwaarde_key)

View File

@@ -892,78 +892,6 @@ AS
GROUP BY ins_deel_key, res_deel_omschrijving;
// Een basisview om sensorgemiddelde per ruimte per dag te berekenen
// AI-generated, nog niet nageteld, maar who cares.
// Bevat alleen sensoren met niet-discrete numerieke waarden zoals temperatuur, niet bezetting
// Bevat het ruimtegemiddelde van alle sensoren van hetzelfde srtdeel gedurende de kantoortijden
CREATE_VIEW(ins_v_sensorgemiddele_per_ruimte_per_dag, 0)
AS
WITH
sensor_data
AS
(SELECT d.ins_alg_ruimte_key
, d.ins_srtdeel_key
, sd.ins_srtdeel_code
, sd.ins_srtdeel_omschrijving
, sh.ins_deel_statedate
, sh.ins_deel_state
, LEAD (sh.ins_deel_statedate) OVER (PARTITION BY d.ins_alg_ruimte_key, sd.ins_srtdeel_omschrijving ORDER BY sh.ins_deel_statedate) AS next_statedate
FROM ins_deel d
JOIN ins_deel_state_history sh ON sh.ins_deel_key = d.ins_deel_key
JOIN ins_srtdeel sd ON sd.ins_srtdeel_key = d.ins_srtdeel_key
WHERE d.ins_alg_ruimte_type = 'R' AND sd.ins_srtdeel_sensortype = 2),
bounded_intervals
AS
(SELECT ins_alg_ruimte_key
, ins_srtdeel_key
, ins_srtdeel_code
, ins_srtdeel_omschrijving
, TRUNC (ins_deel_statedate) AS datum
, GREATEST (ins_deel_statedate, TRUNC (ins_deel_statedate) + fac.getsetting ('fac_t_startofworkday') / 24) AS start_time
, LEAST (NVL (next_statedate, TRUNC (ins_deel_statedate) + 1), TRUNC (ins_deel_statedate) + fac.getsetting ('fac_t_endofworkday') / 24) AS end_time
, ins_deel_state
FROM sensor_data
WHERE -- Alleen intervallen die de kantoortijd raken
NVL (next_statedate, TRUNC (ins_deel_statedate) + 1) > TRUNC (ins_deel_statedate) + fac.getsetting ('fac_t_startofworkday') / 24
AND ins_deel_statedate < TRUNC (ins_deel_statedate) + fac.getsetting ('fac_t_endofworkday') / 24),
gewogen_data
AS
(SELECT ins_alg_ruimte_key
, ins_srtdeel_key
, ins_srtdeel_code
, ins_srtdeel_omschrijving
, datum
, ins_deel_state
, (end_time - start_time) * 24 * 60 AS duration_minutes -- of * 24 * 60 * 60 voor seconden
FROM bounded_intervals
WHERE end_time > start_time -- filter eventueel negatieve of nulduur
)
SELECT ins_alg_ruimte_key
, ins_srtdeel_key
, ins_srtdeel_code
, ins_srtdeel_omschrijving
, datum
, ROUND (SUM (ins_deel_state * duration_minutes) / SUM (duration_minutes), 2) AS gewogen_gemiddelde
FROM gewogen_data
GROUP BY ins_alg_ruimte_key
, ins_srtdeel_key
, ins_srtdeel_code
, ins_srtdeel_omschrijving
, datum
ORDER BY ins_alg_ruimte_key, datum;
CREATE_VIEW(cad_v_co2_daggemiddelde, 0)
AS
SELECT ins_alg_ruimte_key alg_ruimte_key, datum fclt_f_datum, gewogen_gemiddelde waarde
FROM ins_v_sensorgemiddele_per_ruimte_per_dag
WHERE ins_srtdeel_code = 'CO2';
CREATE_VIEW(cad_v_temp_daggemiddelde)
AS
SELECT ins_alg_ruimte_key alg_ruimte_key, datum fclt_f_datum, gewogen_gemiddelde waarde
FROM ins_v_sensorgemiddele_per_ruimte_per_dag
WHERE ins_srtdeel_code = 'TEMP';
REGISTERRUN('$Id$')
#endif // CAD

59
CARE.SRC Normal file
View File

@@ -0,0 +1,59 @@
-- [CARE*.SQL]
--
-- Script tbv het initialiseren van de Facilitor Care-Webb omgeving in Oracle
-- Copyright Aareon Nederland B.V.
-- All rights reserved!
/*
* $Revision$
* $Id$
*/
#include "modules.h"
#include "comsql.h"
SET TIME ON
SET DEFINE OFF
SPOOL xcarewebb
PROMPT [carewebb.lst]
PROMPT
PROMPT Copyright Aareon Nederland B.V. ALL RIGHTS RESERVED.
PROMPT
PROMPT Dit is de gegenereerde list-file van CARExxxx.sql welke
PROMPT is gebruikt om de Facilitor(r) Care-Webb _VERSION omgeving in Oracle aan te
PROMPT maken.
PROMPT
PROMPT Dit script is gerund in user:
SHOW USER
PROMPT
PROMPT
SET LINESIZE 1000
SET ECHO ON
#include "care\care_tab.src"
#include "care\care_ind.src"
#include "care\care_vie.src"
#include "care\care_pac.src"
#include "care\care_ini.src"
COMMIT;
///////////////////////////// finally compile all views, triggers etc acc to the latest state ///////
BEGIN DBMS_UTILITY.COMPILE_SCHEMA(USER, FALSE); END;
/
REGISTERONCE('$Id$')
COMMIT;
///////////////////////////// Report invalid objects, if any ///////
SET ECHO OFF
SET LINESIZE 132
PROMPT List of all invalid objects after Facilitor Care-Webb upgrade:
SELECT _VERSION||' Warning: ' || object_type || ' ' || object_name || ' is ' || status
FROM user_objects
WHERE object_type IN ('VIEW', 'TRIGGER', 'PACKAGE', 'PROCEDURE', 'FUNCTION', 'PACKAGE BODY')
AND status <> 'VALID'
AND UPPER(object_name) LIKE 'CARE%'
ORDER BY object_name;
SELECT 'Care-Webb/' || USER || ' is now ' || fac.getdbversion() FROM DUAL;
PROMPT De upgrade is gereed, controleer de LST-files.
PROMPT Neem bij vragen, twijfels of problemen contact op met Facilitor.
SPOOL OFF

View File

@@ -27,8 +27,6 @@ CREATE UNIQUE INDEX cnt_i_cnt_factuurschema1 ON cnt_factuurschema(cnt_contract_k
CREATE INDEX cnt_i_cnt_srtkenmerk1 ON cnt_srtkenmerk(cnt_srtkenmerk_code);
CREATE INDEX cnt_i_cnt_kenmerk1 ON cnt_kenmerk(cnt_kenmerk_code);
CREATE INDEX cnt_i_cnt_verlengschema ON cnt_verlengschema(cnt_contract_key);
REGISTERONCE('$Id$')
#endif // CNT

View File

@@ -6,7 +6,6 @@
CREATE OR REPLACE PACKAGE cnt AS
PROCEDURE setcontractstatus (pcontractkey IN NUMBER, pstatus IN NUMBER, puserkey IN NUMBER);
FUNCTION getVerlengschemaEinddatum(startdatum IN DATE, cnt_key IN NUMBER, volgnr IN NUMBER) RETURN DATE;
FUNCTION cnt_getTermijndatum (pdate IN DATE, ptermijn_key IN NUMBER, prichting IN NUMBER) RETURN DATE;
FUNCTION termijnjaarfactor (ptermijn_key IN NUMBER) RETURN NUMBER;
FUNCTION cnt_getOpzegdatum (pcnt_contract_key IN NUMBER) RETURN DATE;
@@ -39,7 +38,7 @@ CREATE OR REPLACE PACKAGE BODY cnt AS
AS
currentstatus cnt_contract.cnt_contract_status%TYPE;
newstatus cnt_contract.cnt_contract_status%TYPE;
eventcode VARCHAR(7); -- fac_srtnotificatie.fac_srtnotificatie_code%TYPE is te klein voor '@CNTNEW'
eventcode fac_srtnotificatie.fac_srtnotificatie_code%TYPE;
BEGIN
SELECT cnt_contract_status
INTO currentstatus
@@ -52,12 +51,11 @@ CREATE OR REPLACE PACKAGE BODY cnt AS
IF currentstatus IS NULL
THEN
newstatus := pstatus;
eventcode := 'CNTNEW'; -- direct ook notificeren
eventcode := 'CNTNEW';
ELSIF currentstatus = 2 OR currentstatus = 3 -- Het kan ook zijn dat er geen fiattering nodig is.
THEN
newstatus := pstatus;
eventcode := 'CNTFIT';
fac.notifytrackingbedrijven('CNTNEW', pcontractkey); -- Nu alsnog notificeren, we zijn helemaal klaar met fiatteren
END IF;
WHEN 1 -- Gesloten
THEN
@@ -71,7 +69,7 @@ CREATE OR REPLACE PACKAGE BODY cnt AS
IF currentstatus IS NULL
THEN
newstatus := pstatus;
eventcode := '@CNTNEW'; -- nog niet notificeren
eventcode := 'CNTNEW';
ELSIF currentstatus = 3
THEN
newstatus := pstatus;
@@ -79,7 +77,7 @@ CREATE OR REPLACE PACKAGE BODY cnt AS
END IF;
WHEN 3 -- Ter goedkeuring
THEN
IF currentstatus = 2 OR currentstatus IS NULL
IF currentstatus = 2
THEN
newstatus := pstatus;
eventcode := 'CNTCPT';
@@ -102,27 +100,6 @@ CREATE OR REPLACE PACKAGE BODY cnt AS
END IF;
END;
-- Bepaal de einddatum na x iteraties van het verlengschema vanaf een startdatum.
FUNCTION getVerlengschemaEinddatum(startdatum IN DATE, cnt_key IN NUMBER, volgnr IN NUMBER) RETURN DATE
IS
CURSOR c_verleng
IS
SELECT cnt_verlengschema_volgnr
, cnt_verlengschema_verlengtermijn
FROM cnt_verlengschema
WHERE cnt_verlengschema_volgnr <= volgnr
AND cnt_contract_key = cnt_key;
einddatum DATE := startdatum;
BEGIN
FOR c IN c_verleng
LOOP
einddatum := cnt.cnt_getTermijndatum(einddatum, c.cnt_verlengschema_verlengtermijn, 1);
END LOOP;
RETURN einddatum;
END;
-- Deze functie bepaalt de datum door het termijn (ptermijn_key) van de datum (pdate) in mindering te brengen.
-- Indien de 29, 30 of 31 datum niet in de betreffende maand voorkomt wordt de eerste van de volgende maand genomen.
-- prichting geeft aan of ten opzichte van pdate achteruit (-1) of vooruit (1, of anders) moet worden gerekend.
@@ -270,7 +247,6 @@ CREATE OR REPLACE PACKAGE BODY cnt AS
, c.cnt_contract_nummer_intern
, c.cnt_contract_omschrijving
, c.cnt_contract_looptijd_tot
, c.cnt_contract_verleng_termijn
, o.cnt_termijn_omschrijving opzegtermijn
, cnt.cnt_getTermijndatum (c.cnt_contract_looptijd_tot, c.cnt_contract_opzegtermijn, -1) dtopzeggen
, v.cnt_termijn_omschrijving verlengtermijn
@@ -296,10 +272,6 @@ CREATE OR REPLACE PACKAGE BODY cnt AS
);
tracking VARCHAR2(4000);
this_verlengschema_key cnt_verlengschema.cnt_verlengschema_key%TYPE;
next_verlengschema_key cnt_verlengschema.cnt_verlengschema_key%TYPE;
next_termijn cnt_termijn.cnt_termijn_key%TYPE;
infinite_prolongate NUMBER(1) := 0;
BEGIN
FOR cnt_verloopt IN c_verleng
LOOP
@@ -312,45 +284,6 @@ CREATE OR REPLACE PACKAGE BODY cnt AS
, '{1}', TO_CHAR(cnt_verloopt.dtnieuw,'dd-mm-yyyy')
);
fac.trackaction ('CNTUPD', cnt_verloopt.cnt_contract_key, NULL, NULL, tracking);
-- Heeft dit automatisch verlengbaar contract een verlengschema?
BEGIN
SELECT this_schema_key
, next_schema_key
INTO this_verlengschema_key
, next_verlengschema_key
FROM ( SELECT cnt_verlengschema_key AS this_schema_key
, LEAD(cnt_verlengschema_key) OVER(ORDER BY cnt_verlengschema_volgnr) AS next_schema_key
FROM cnt_verlengschema
WHERE cnt_contract_key = cnt_verloopt.cnt_contract_key
)
WHERE rownum = 1;
-- Dan eerstvolgende verlengtermijn uit verlengschema naar het veld verlengtermijn in contract kopieren...
IF next_verlengschema_key IS NOT NULL
THEN
SELECT cnt_verlengschema_verlengtermijn
INTO next_termijn
FROM cnt_verlengschema
WHERE cnt_verlengschema_key = next_verlengschema_key;
ELSE
IF infinite_prolongate = 1
THEN
next_termijn := cnt_verloopt.cnt_contract_verleng_termijn;
ELSE
next_termijn := NULL;
END IF;
END IF;
UPDATE cnt_contract
SET cnt_contract_verleng_termijn = next_termijn
WHERE cnt_contract_key = cnt_verloopt.cnt_contract_key;
-- ...en deze verlengtermijn uit het verlengschema verwijderen.
DELETE
FROM cnt_verlengschema
WHERE cnt_verlengschema_key = this_verlengschema_key;
EXCEPTION
WHEN NO_DATA_FOUND THEN NULL;
-- Laat laatste verlengtermijn staan als er geen volgende in het schema gevonden kan worden.
END;
END LOOP;
END;
@@ -367,8 +300,7 @@ CREATE OR REPLACE PACKAGE BODY cnt AS
AND NOT EXISTS (SELECT f.fin_factuur_key -- Contract mag geen openstaande facturen hebben.
FROM fin_factuur f
WHERE f.cnt_contract_key = c.cnt_contract_key
AND f.fin_factuur_statuses_key NOT IN (1,7)
AND f.fin_factuur_verwijder IS NULL);
AND f.fin_factuur_statuses_key NOT IN (1,7));
BEGIN
BEGIN
SELECT prs_perslid_key
@@ -402,7 +334,6 @@ CREATE OR REPLACE PACKAGE BODY cnt AS
newkey NUMBER;
nummer1 cnt_contract.cnt_contract_nummer_intern%TYPE;
amount1 cnt_contract.cnt_contract_kosten%TYPE;
approve_new cnt_disc_params.cnt_disc_params_approve_new%TYPE;
srtcontract_type cnt_disc_params.cnt_srtcontract_type%TYPE;
new_status cnt_contract.cnt_contract_status%TYPE;
tracking VARCHAR2 (4000);
@@ -425,9 +356,8 @@ CREATE OR REPLACE PACKAGE BODY cnt AS
cnt_contract_nummer_intern,
cnt_contract_kosten,
cdp.cnt_srtcontract_type,
cdp.cnt_disc_params_approve_new,
c.cnt_contract_status
INTO begin1, eind1, versie1, nummer1, amount1, srtcontract_type, approve_new, new_status
INTO begin1, eind1, versie1, nummer1, amount1, srtcontract_type, new_status
FROM cnt_contract c,
cnt_disc_params cdp
WHERE c.ins_discipline_key = cdp.cnt_ins_discipline_key
@@ -442,9 +372,10 @@ CREATE OR REPLACE PACKAGE BODY cnt AS
THEN
-- Splitsen van contract.
begin1 := p_datum;
IF (fac.getsetting('cnt_contract_approval') = 1 AND srtcontract_type != 6) -- niet voor mantelcontracten
eind1 := eind1;
IF (fac.getsetting('cnt_contract_approval') = 1 AND srtcontract_type != 6)
THEN
new_status := 2; -- altijd op nieuw(=concept)
new_status := 2; -- altijd op nieuw
ELSE
new_status := 0; -- direct actief
END IF;
@@ -684,15 +615,15 @@ CREATE OR REPLACE PACKAGE BODY cnt AS
-- ##KEY## = cnt_contract_nummer_intern
IF INSTR (s, '#') > 0
THEN
SELECT COALESCE(b.prs_bedrijf_naam, p.prs_perslid_naam_full, a.prs_afdeling_omschrijving),
c.cnt_contract_omschrijving,
c.cnt_contract_nummer_intern
SELECT COALESCE(prs_bedrijf_naam, fac.getsetting ('prs_pers_string'), fac.getsetting ('prs_dep_string')),
cnt_contract_omschrijving,
cnt_contract_nummer_intern
INTO varlev,
varomsch,
varnummer
FROM cnt_contract c,
prs_bedrijf b,
prs_v_perslid_fullnames_all p,
prs_perslid p,
prs_afdeling a
WHERE c.cnt_prs_bedrijf_key = b.prs_bedrijf_key(+)
AND c.cnt_prs_perslid_key = p.prs_perslid_key(+)
@@ -783,15 +714,11 @@ CREATE OR REPLACE PACKAGE BODY cnt AS
l.alg_locatie_key,
CASE WHEN b.prs_bedrijf_key = c.cnt_prs_bedrijf_key THEN 'C' ELSE 'G' END bedrijfadres_type,
cnt_contract_nummer_intern,
c.ins_discipline_key,
COALESCE (l.alg_locatie_email, ins_discipline_email),
d.prs_bedrijf_key persoon_bedrijf_key -- van de melder, niet de uitvoerende
COALESCE (l.alg_locatie_email, ins_discipline_email)
FROM prs_bedrijf b,
cnt_contract c,
ins_tab_discipline d,
alg_locatie l,
prs_perslid p,
prs_v_afdeling d,
( SELECT cnt_contract_key,
DECODE (MIN (cp1.cnt_alg_plaats_code),
'L', MIN (cp1.cnt_alg_plaats_key),
@@ -835,8 +762,6 @@ CREATE OR REPLACE PACKAGE BODY cnt AS
AND d.ins_discipline_key = c.ins_discipline_key
AND c.cnt_contract_key = cp.cnt_contract_key(+)
AND cp.cnt_locatie_key = l.alg_locatie_key(+)
AND d.prs_afdeling_key = p.prs_afdeling_key
AND p.prs_perslid_key = c.prs_perslid_key_beh
AND ( b.prs_bedrijf_key = c.cnt_prs_bedrijf_key -- type 'C'
OR EXISTS
(SELECT 1
@@ -850,9 +775,7 @@ CREATE OR REPLACE PACKAGE BODY cnt AS
prefkey => pcntkey,
ptrackingkey => ptrackingkey,
preference => bedrijfrec.cnt_contract_nummer_intern,
pdiscipline_key => bedrijfrec.ins_discipline_key,
plocatie_key => bedrijfrec.alg_locatie_key,
pbedrijf_key2 => bedrijfrec.persoon_bedrijf_key,
pnotidelay => pnotidelay);
END LOOP;
END;

View File

@@ -18,7 +18,6 @@ CREATE SEQUENCE cnt_s_cnt_kenmerkcontract_key MINVALUE 1;
CREATE SEQUENCE cnt_s_cnt_contract_note_key MINVALUE 1;
CREATE SEQUENCE cnt_s_cnt_factuurschema_key MINVALUE 1;
CREATE SEQUENCE cnt_s_cnt_verlengschema_key MINVALUE 1;
REGISTERONCE('$Id$')

View File

@@ -86,14 +86,6 @@ CREATE_TABLE(cnt_disc_params, 0)
DEFAULT 0
NOT NULL,
cnt_disc_params_opties
NUMBER(1)
DEFAULT 0
NOT NULL,
cnt_disc_params_ksverplicht /* Kostensoort verplicht {0=niet verplicht (default), 1=verplicht} */
NUMBER(1)
DEFAULT 0
NOT NULL,
cnt_disc_params_approve_new /* nieuw/gesplitst contract altijd acorderen {0=nee (default), 1=ja} */
NUMBER(1)
DEFAULT 0
NOT NULL
@@ -377,9 +369,6 @@ CREATE_TABLE(cnt_kenmerk, 0)
, cnt_kenmerk_volgnummer
NUMBER(3)
NOT NULL
, cnt_kenmerk_rolcode
NUMBER(4)
DEFAULT 7 NOT NULL
, cnt_kenmerk_uniek
NUMBER(1)
, cnt_kenmerk_regexp
@@ -461,21 +450,6 @@ CREATE_TABLE(cnt_factuurschema , 0)
DEFAULT SYSDATE
);
CREATE_TABLE(cnt_verlengschema, 0)
(
cnt_verlengschema_key
NUMBER(10)
PRIMARY KEY,
cnt_contract_key
NUMBER(10)
CONSTRAINT cnt_r_cnt_contract_key2 REFERENCES cnt_contract(cnt_contract_key),
cnt_verlengschema_volgnr
NUMBER(2),
cnt_verlengschema_verlengtermijn
NUMBER(10)
CONSTRAINT cnt_r_cnt_termijn_key6 REFERENCES cnt_termijn(cnt_termijn_key)
);
REGISTERONCE('$Id$')

View File

@@ -357,14 +357,6 @@ BEGIN
END;
/
CREATE OR REPLACE TRIGGER cnt_t_cnt_verlengschema_B_I
BEFORE INSERT ON cnt_verlengschema
FOR EACH ROW
BEGIN
UPDATE_PRIMARY_KEY(cnt_verlengschema_key,cnt_s_cnt_verlengschema_key);
END;
/
REGISTERRUN('$Id$')
#endif // CNT

419
COMSQL.H
View File

@@ -54,7 +54,7 @@ BEGIN adm.systrackscriptId(svnid, 0); END;~/
END IF; \
EXCEPTION \
WHEN NO_DATA_FOUND THEN \
raise_application_error(-20000, message); \
APPLICATION_ERROR(-20000, message); \
END
#define CHECK_KEY_REFERENCE(table, primary_key, ref_key, message) \
@@ -69,9 +69,9 @@ BEGIN adm.systrackscriptId(svnid, 0); END;~/
WHERE primary_key = ref_key; \
EXCEPTION \
WHEN NO_DATA_FOUND \
THEN raise_application_error(-20000, message); \
THEN APPLICATION_ERROR(-20000, message); \
WHEN mutating_table \
THEN NULL; \
_THEN NULL; \
END
@@ -81,6 +81,20 @@ BEGIN adm.systrackscriptId(svnid, 0); END;~/
#define CREATE_TABLE(table_name, level) \
CREATE TABLE table_name
#define _SPOOL(x) \
SPOOL x
#define _EQ_OLD(x,y) \
x = :old.y
#define PROMPT1(x) \
PROMPT x
#define PROMPT2(x,y) \
PROMPT x,y
#define _INTO_VAR(x) \
INTO x
#define CREATE_SEQUENCE(sequence_name, minval) \
CREATE SEQUENCE sequence_name MINVALUE minval;
@@ -90,15 +104,122 @@ CREATE SEQUENCE sequence_name MINVALUE minval;
#define CREATE_TRIGGER(trigger_name) \
CREATE OR REPLACE TRIGGER trigger_name
#define _END_TRIGGER() \
END;~/
#define CREATE_PROCEDURE(pack_name, proc_name) \
CREATE OR REPLACE PROCEDURE proc_name
#define MONEY \
NUMBER
#define VARCHAR \
VARCHAR2
#define _LONG_RAW \
LONG RAW
#define _CONCAT \
||
#define _ALTER_MODIFY_START \
MODIFY
#define _ALTER_ADD_START \
ADD (
#define _ALTER_END \
)
#define _IDENTITY(x,y)
#define _TYPE(tab,fld) \
tab.fld%TYPE
#define _CREATE_OR_REPLACE \
CREATE OR REPLACE
#define _RETURN_LENGTH(x) \
#define _DECLARE_VAR(x) \
x
#define _SET_VAR(x) \
x
#define _VAR(x) \
x
#define _ASSIGN \
:=
#define _RETURNS \
RETURN
#define _AS \
IS
#define _GO \
;
#define _GO2 \
;~/
#define _NOTFOUND(x) \
x%NOTFOUND
#define INSTR2(a, b) \
INSTR(a, b)
#define SUBSTR2 \
SUBSTR
#define TRUNC_DATE \
TRUNC
#define _LOOP \
loop
#define _FOR(i,a,b) \
FOR i in a .. b loop
#define _END_LOOP \
end loop
#define _EXIT \
exit
#define _FROM_DUAL \
FROM DUAL
#define _EXEC0(p) \
p
#define _EXEC1(p,a1) \
p(a1)
#define _EXEC2(p,a1,a2) \
p(a1,a2)
#define _EXEC3(p,a1,a2,a3) \
p(a1,a2,a3)
#define _EXEC4(p,a1,a2,a3, a4) \
p(a1,a2,a3,a4)
#define _EXEC5(p,a1,a2,a3,a4,a5) \
p(a1,a2,a3,a4,a5)
#define _EXEC6(p,a1,a2,a3,a4,a5,a6) \
p(a1,a2,a3,a4,a5,a6)
#define _INTO1(x)
#define _INTO2(x) \
INTO x
#define _INTO3(x) \
,x
#define UPDATE_UPPER(omschrijving, upper_omschrijving,tab) \
:new.upper_omschrijving := UPPER(:new.omschrijving)
@@ -110,25 +231,128 @@ INSTR(a, b)
END IF; \
END
#define _CC \
||
#define _OPLUS \
(+)
#define _OSTAR
#define _DECODE_BEGIN \
DECODE(
#define _DECODE_WHEN \
,
#define _DECODE_THEN \
,
#define _DECODE_ELSE \
,
#define _DECODE_END \
)
#define _THEN \
THEN
#define _FOUND(x) \
x%FOUND = TRUE
#define _IN_PACKAGE(pak,fp,fname) \
fp fname
#define _INPUT \
IN
#define _OUTPUT(x) \
OUT x
#define _DATEPART(x,y) \
TO_CHAR(x,#@y)
#define DATE_TO_CHAR \
TO_CHAR
#define NUMBER_TO_CHAR \
TO_CHAR
#define _MOD \
MOD
#define _NUM2HM(x) \
TO_NUMBER(TO_CHAR(x,'HH24.MI'))
#define _TO_CHAR(x) \
TO_CHAR(x)
#define _TO_NUMBER(x) \
TO_NUMBER(x)
#define _TO_NUMBER2(x,y) \
TO_NUMBER(x,y)
#define _TO_NUMBER3(x,y,z) \
TO_NUMBER(x,y,z)
#define _TO_DATE(x) \
TO_DATE(x)
#define _TO_DATE2(x,y) \
TO_DATE(x,y)
#define _DECLARE_CURSOR(x) \
CURSOR x
#define _CURSOR_PARAM(x) \
(x)
#define _CURSOR_PARAM2(x,y) \
(x,y)
#define _CURSOR_PARAM3(x,y,z) \
(x,y,z)
#define _CURSOR_FOR \
IS
#define _OPEN_CURSOR1(query, s, rec) \
FOR rec IN query LOOP
#define _OPEN_CURSOR2(query, s, rec, key) \
FOR rec IN query(key) LOOP
// , val s := rec.val;
#define _CLOSE_CURSOR(query, s) \
END LOOP;
#define _BEGIN_SQLS_PROC \
AS
#define _BEGIN_ORA_PROC \
BEGIN
#define _END_PROC \
END;~/
#define _END_IF \
END IF;
#define _ELSE \
ELSE
#define _ELSIF \
ELSIF
#define _FAC_MODULE(module,omschrijving) \
INSERT INTO fac_module (fac_module_name, fac_module_version, fac_module_date, fac_module_remark, fac_module_extern) \
VALUES (module,_DBV_STRING,TO_CHAR(SYSDATE,'YYYYMMDD'),omschrijving, 1);
#define APPLICATION_ERROR(code,text) raise_application_error(code, text)
#define APPLICATION_ERROR_GOTO(code,text) raise_application_error(code, text)
#define UPDATE_PRIMARY_KEY(primary_key, sequence_primary_key) \
@@ -137,6 +361,63 @@ END IF;
FROM DUAL; \
END IF
#define CHECK_UNIQUE_OMSCHRIJVING(tabel, upper_omschrijving, \
exc_msg_GEEN_OMSCHRIJVING, \
exc_msg_BESTAANDE_OMSCHRIJVING) \
DECLARE \
dummy CHAR := 'N'; \
BEGIN \
SELECT 'X' INTO dummy \
FROM tabel \
GROUP BY upper_omschrijving \
HAVING COUNT(*) > 1; \
APPLICATION_ERROR(-20001, exc_msg_BESTAANDE_OMSCHRIJVING); \
EXCEPTION \
WHEN NO_DATA_FOUND \
THEN NULL; \
\
WHEN TOO_MANY_ROWS \
THEN APPLICATION_ERROR(-20001, exc_msg_BESTAANDE_OMSCHRIJVING); \
END
#define CHECK_UNIQUE_KEY_OMSCHRIJVING(tabel, key, upper_omschrijving, \
exc_msg_GEEN_OMSCHRIJVING, \
exc_msg_BESTAANDE_OMSCHRIJVING) \
DECLARE \
dummy CHAR := 'N'; \
BEGIN \
SELECT 'X' INTO dummy \
FROM tabel \
GROUP BY key, upper_omschrijving \
HAVING COUNT(*) > 1; \
APPLICATION_ERROR(-20001, exc_msg_BESTAANDE_OMSCHRIJVING); \
EXCEPTION \
WHEN NO_DATA_FOUND \
THEN NULL; \
\
WHEN TOO_MANY_ROWS \
THEN APPLICATION_ERROR(-20001, exc_msg_BESTAANDE_OMSCHRIJVING); \
END
#define CHECK_UNIQUE_DEEL_KEY_OMSCHRIJVING(tabel, up_key, naast_key, \
upper_omschrijving, exc_msg_GEEN_OMSCHRIJVING, \
exc_msg_BESTAANDE_OMSCHRIJVING) \
DECLARE \
dummy CHAR := 'N'; \
BEGIN \
SELECT 'X' INTO dummy \
FROM tabel \
GROUP BY up_key, naast_key, upper_omschrijving \
HAVING COUNT(*) > 1; \
APPLICATION_ERROR(-20001, exc_msg_BESTAANDE_OMSCHRIJVING); \
EXCEPTION \
WHEN NO_DATA_FOUND \
THEN NULL; \
\
WHEN TOO_MANY_ROWS \
THEN APPLICATION_ERROR(-20001, exc_msg_BESTAANDE_OMSCHRIJVING); \
END
#define LAAT_VERDIEPING_VERVALLEN_VOOR_GEBOUW(exc_msg_VERDIEPING_IN_GEBRUIK) \
BEGIN \
IF :new.alg_gebouw_verwijder IS NOT NULL \
@@ -150,10 +431,10 @@ END IF;
END IF; \
EXCEPTION \
WHEN NO_DATA_FOUND \
THEN raise_application_error(-20000, exc_msg_VERDIEPING_IN_GEBRUIK); \
THEN APPLICATION_ERROR(-20000, exc_msg_VERDIEPING_IN_GEBRUIK); \
\
WHEN TOO_MANY_ROWS \
THEN raise_application_error(-20000, exc_msg_VERDIEPING_IN_GEBRUIK); \
THEN APPLICATION_ERROR(-20000, exc_msg_VERDIEPING_IN_GEBRUIK); \
END
#define LAAT_RUIMTE_VERVALLEN_VOOR_VERDIEPING(exc_msg_RUIMTE_IN_GEBRUIK) \
@@ -169,10 +450,10 @@ END IF;
END IF; \
EXCEPTION \
WHEN NO_DATA_FOUND \
THEN raise_application_error(-20000, exc_msg_RUIMTE_IN_GEBRUIK); \
THEN APPLICATION_ERROR(-20000, exc_msg_RUIMTE_IN_GEBRUIK); \
\
WHEN TOO_MANY_ROWS \
THEN raise_application_error(-20000, exc_msg_RUIMTE_IN_GEBRUIK); \
THEN APPLICATION_ERROR(-20000, exc_msg_RUIMTE_IN_GEBRUIK); \
END
#define CHECK_NOG_REFERENCES(tabel,tabel_verwijder_veld,reference_view, \
@@ -186,13 +467,65 @@ END IF;
SELECT 'x' INTO dummy \
FROM reference_view \
WHERE reference_view.key_veld = :old.key_veld; \
raise_application_error(-20000, message); \
APPLICATION_ERROR(-20000,message); \
END IF; \
EXCEPTION \
WHEN NO_DATA_FOUND THEN \
NULL; \
WHEN TOO_MANY_ROWS THEN \
raise_application_error(-20000, message); \
APPLICATION_ERROR(-20000,message); \
END
#define CHECK_REFERENCE_INST(key_veld, message) \
DECLARE \
dummy CHAR; \
BEGIN \
SELECT 'X' INTO dummy \
FROM ins_v_aanwezigdeel \
WHERE ins_deel_key = :new.key_veld; \
EXCEPTION \
WHEN NO_DATA_FOUND THEN \
BEGIN \
SELECT 'X' INTO dummy \
FROM ins_v_aanwezigonderdeel \
WHERE ins_onderdeel_key = :new.key_veld; \
EXCEPTION \
WHEN NO_DATA_FOUND THEN \
BEGIN \
SELECT 'X' INTO dummy \
FROM ins_v_aanwezigelement \
WHERE ins_element_key = :new.key_veld; \
EXCEPTION \
WHEN NO_DATA_FOUND THEN \
APPLICATION_ERROR(-20000, message); \
END; \
END; \
END
#define CHECK_REFERENCE_SRTINST(key_veld, message) \
DECLARE \
dummy CHAR; \
BEGIN \
SELECT 'X' INTO dummy \
FROM ins_v_aanwezigsrtdeel \
WHERE ins_srtdeel_key = :new.key_veld; \
EXCEPTION \
WHEN NO_DATA_FOUND THEN \
BEGIN \
SELECT 'X' INTO dummy \
FROM ins_v_aanwezigsrtonderdeel \
WHERE ins_srtonderdeel_key = :new.key_veld; \
EXCEPTION \
WHEN NO_DATA_FOUND THEN \
BEGIN \
SELECT 'X' INTO dummy \
FROM ins_v_aanwezigsrtelement \
WHERE ins_srtelement_key = :new.key_veld; \
EXCEPTION \
WHEN NO_DATA_FOUND THEN \
APPLICATION_ERROR(-20000, message); \
END; \
END; \
END
#define CHECK_REFERENCE_ONROERENDGOED(key_veld, message) \
@@ -222,7 +555,7 @@ END IF;
WHERE alg_terreinsector_key = :new.key_veld; \
EXCEPTION \
WHEN NO_DATA_FOUND THEN \
raise_application_error(-20000, message); \
APPLICATION_ERROR(-20000,message); \
END; \
END; \
END; \
@@ -233,12 +566,56 @@ CEIL
#define NULLDATUM NULL
#define CREATE_VOLGNR(volgnr_srt, volgnr_periode) \
INSERT INTO fac_volgnrs (fac_volgnr_srt, fac_volgnr_periode) \
VALUES(volgnr_srt, volgnr_periode)
#define UPDATE_VOLGNR(key_veld, fac_volgnr_srt) \
IF :new.key_veld IS NULL \
THEN \
:new.key_veld := FAC_P_FAC_VOLGNR.FAC_VOLGNR_NEXTVAL(fac_volgnr_srt); \
END IF
#define DEFINIEER_VIEW_AANWEZIG(table, verwijder_veld, view_name, level) \
CREATE_VIEW (view_name,level) AS \
SELECT * \
FROM table \
WHERE table.verwijder_veld IS NULLDATUM
#define CHECK_REFERENCE_DEFAULTUITV(key_veld, message) \
DECLARE \
dummy CHAR; \
BEGIN \
SELECT 'X' INTO dummy \
FROM mld_v_defaultuitv \
WHERE bco_defaultuitv_keys = :new.key_veld; \
EXCEPTION \
WHEN NO_DATA_FOUND THEN \
APPLICATION_ERROR(-20000, message); \
END
#define UPDATE_WEEKINGAVE(weekingave_veld) \
BEGIN \
:new.weekingave_veld := to_number( \
to_char(:new.mld_opdr_datumbegin, 'YYWW')); \
END
#define SET_VERWIJDER_CHILDREN2(child_table, parent_key, child_key, parent_verwijder, \
child_verwijder) \
BEGIN \
IF :new.parent_verwijder IS NOT NULL OR \
(:new.parent_verwijder IS NULL AND :old.parent_verwijder IS NOT NULL) \
THEN \
UPDATE child_table \
SET child_verwijder = :new.parent_verwijder \
WHERE \
child_table.child_key = :new.parent_key; \
END IF; \
END
#define DELETE_CHILDREN(child_table, parent_key) \
BEGIN \
DELETE FROM child_table \
@@ -360,6 +737,28 @@ BEGIN ~\
END; ~\
/ ~\
#define BEGIN_MODULE(m) \
DECLARE ~\
dummy VARCHAR2(1); ~\
BEGIN ~\
SELECT 'x'INTO dummy ~\
FROM fac_module ~\
WHERE fac_module_name = UPPER(#@m);
#define SQL_SPOOL(SQLRegel) \
dbms_output.put_line(#@SQLRegel);
#define END_MODULE(m) \
EXCEPTION ~\
WHEN NO_DATA_FOUND THEN dbms_output.put_line('--Module ' ||#@m|| ' niet aanwezig'); ~\
END; ~/
#define UPDMOD(m, n) \
BEGIN_MODULE(m) ~\
SQL_SPOOL(START n.m) ~\
END_MODULE(m)
#define START_LOCALEITEMS(dialect_id) \
DECLARE ~ \
v_dialect_id fac_localeitems.fac_localeitems_dialect_id%TYPE; ~ \

View File

@@ -104,6 +104,7 @@ AS
WHERE starttime <= date_interval_end
AND endtime >= date_interval_start
AND appt_id || '|' || recur_id = p_appt_id || '|' || p_recur_id
AND gelukt IS NULL
AND NOT REGEXP_LIKE (att_mail, (SELECT COALESCE (fac_setting_pvalue, fac_setting_default)
FROM fac_setting
WHERE fac_setting_name = 'exchange_internal_email_regexp'));

View File

@@ -25,7 +25,7 @@ INSERT INTO fac_version
// Alles als een enorme BEGIN/END is over het netwerk immens sneller
BEGIN
DEF_FAC_MESSAGE ('fac_m002', 'Facilitor '|| _DBV_STRING,'Facilitor ' || _DBV_STRING);
DEF_FAC_MESSAGE ('fac_m002', 'Facilitor '_CONCAT _DBV_STRING,'Facilitor '_CONCAT _DBV_STRING);
/* FAC */
DEF_FAC_MESSAGE ('fac_m001', 'Printvoorbeeld','Preview');
@@ -1521,7 +1521,7 @@ DEF_FAC_MESSAGE ('PRS_C_PRS_KENMERK_MAX_C' , 'Nieuwe max.waarde van dit kenmerks
DEF_FAC_MESSAGE ('PRS_C_PRS_KENMERK_MAX_P' , 'Nieuwe max.waarde van dit kenmerksoort voldoet niet aan alle personen.' ,'New max.value of this property-type does not satisfy all persons.');
DEF_FAC_MESSAGE ('PRS_C_PRS_KENMERK_LENGTE', 'De lengte moet tussen 1 en 50 liggen.','Length must be between 1 and 50.');
DEF_FAC_MESSAGE ('PRS_I_PRS_BEDRIJFADRES2' , 'Combinatie bedrijf, discipline, locatie, opdrachttype, adrestype is niet uniek', 'Combination company, discipline, location, ordertype, address type is not unique');
DEF_FAC_MESSAGE ('PRS_I_PRS_BEDRIJFADRES2' , 'Combinatie bedrijf, district, locatie, opdrachttype, adrestype is niet uniek', 'Combination company, district, location, order type, address type is not unique');
DEF_FAC_MESSAGE ('PRS_R_ALG_LOCATIE_KEY1', 'De referentie naar locatie is niet ingevuld.','The reference to location has not been entered.');
DEF_FAC_MESSAGE ('PRS_R_ALG_LOCATIE_KEY2', 'Er zijn nog referenties van locatiebestekken naar locatie.','There are still references from location-plans to location.');
@@ -1550,7 +1550,7 @@ DEF_FAC_MESSAGE ('PRS_R_PRS_EENHEID_KEY', 'Verwijderen niet toegestaan, er zijn
DEF_FAC_MESSAGE ('PRS_R_PRS_CONTACTPERSOON_KEY', 'De contactpersoon is niet goed.','The contact person is invalid.');
DEF_FAC_MESSAGE ('PRS_U_PERSLIDWERKPLEK', 'De combinatie van persoon of afdeling en werkplek is niet uniek.','The combination of person or department and workplace is not unique.');
DEF_FAC_MESSAGE ('PRS_U_PRS_AFDELING_UPPER', 'Het veld ''Code'' is niet uniek.','The field ''Code'' is not unique.');
DEF_FAC_MESSAGE ('PRS_U_PRS_AFDELING_UPPER', 'Het veld ''Naam'' is niet uniek.','The field ''Name'' is not unique.');
DEF_FAC_MESSAGE ('PRS_U_PRS_BEDRIJF_NAAM_UPPER', 'Het veld ''Naam'' is niet uniek.','The field ''Name'' is not unique.');
DEF_FAC_MESSAGE ('PRS_U_PRS_BEDRIJFDIENSTLOC_KEY', 'De combinatie bedrijf, dienst, locatie en gebouw is niet uniek', 'The combination of company, service, location and building is not unique');
DEF_FAC_MESSAGE ('PRS_U_PRS_BESTEK_UPPER_NR', 'Het veld ''Nummer'' is niet uniek.','The field ''Number'' is not unique.');
@@ -2059,7 +2059,6 @@ DEF_FAC_SRTNOT('ORDNOL', 1, 'lcl_noti_ORDNOL', 'mld/mld_opdr.asp?opdr_key=', '0'
DEF_FAC_SRTNOT('ORDAFM', 1, 'lcl_noti_ORDAFM', 'mld/mld_opdr.asp?opdr_key=', '0', 'opdracht', 10);
DEF_FAC_SRTNOT('ORDNEW', 0, 'lcl_noti_ORDNEW', 'mld/mld_opdr.asp?opdr_key=', '0', 'opdracht', 10);
DEF_FAC_SRTNOT('ORDUPD', 0, 'lcl_noti_ORDUPD', 'mld/mld_opdr.asp?opdr_key=', '0', 'opdracht', 60);
DEF_FAC_SRTNOT('ORDSND', 0, 'lcl_noti_ORDSND', 'mld/mld_opdr.asp?opdr_key=', '0', 'opdracht', 60);
DEF_FAC_SRTNOT('ORDDAT', 0, 'lcl_noti_ORDDAT', 'mld/mld_opdr.asp?opdr_key=', '0', 'opdracht', 60);
DEF_FAC_SRTNOT('ORDPLD', 0, 'lcl_noti_ORDPLD', 'mld/mld_opdr.asp?opdr_key=', '0', 'opdracht', 60);
DEF_FAC_SRTNOT('ORDPL2', 0, 'lcl_noti_ORDPL2', 'mld/mld_opdr.asp?opdr_key=', '0', 'opdracht', 60);
@@ -2598,8 +2597,6 @@ DEF_RAPPORT('BASIS', 'WEB_UDRMAN', 32, 'ins_v_udr_sensorhistorie', 'UDR: Sensor
'UDR: Sensors recent history', 'Basic report for recent values of sensors')
DEF_RAPPORT('BASIS', 'WEB_UDRMAN', 32, 'ins_v_udr_sensorhistogram', 'UDR: Sensor gearchiveerde historie','Basisrapport voor historische gecomprimeerde meetwaarden van status-sensoren',
'UDR: Sensors archived history', 'Basic report for historic compressed values of state-sensors')
DEF_RAPPORT('BASIS', 'WEB_UDRMAN', 32, 'ins_v_udr_sensordata', 'UDR: Actuele Sensordata', 'Basisrapport voor actuele data van sensoren',
'UDR: Actual Sensor data', 'Basic report current data from sensors')
DEF_RAPPORT('BASIS', 'WEB_UDRMAN', 32, 'ins_v_udr_uitgifte', 'UDR: Object uitgifte historie', 'Basisrapport van uitlenen en innemen van objecten',
'UDR: Object issuance history', 'Basic report of lending and taking in objects')
DEF_RAPPORT('BASIS', 'WEB_UDRMAN', 32, 'bez_v_udr_reserveringbezoeker', 'UDR: Bezoekers bij reserveringen', 'Basisrapport voor bezoekers met reserveringsgegevens',
@@ -2701,7 +2698,6 @@ DEF_MENUITEM(1, 'lcl_menu_cht_incoming' , '', 'CHT', 'appl/chat/ChatterA
DEF_MENUITEM(1, 'lcl_menu_mld_fo_overview' , '', 'MLD', 'appl/mld/mld_search.asp?urole=fo', 0, 0, 'WEB_MLDFOF', 'R', '1', '');
DEF_MENUITEM(1, 'lcl_menu_mld_fo_1' , '', 'MLD', 'appl/mld/mld_melding.asp?urole=fo', 1, 0, 'WEB_MLDFOF', 'W', '1', '');
DEF_MENUITEM(1, 'lcl_menu_mld_fo_2' , '', 'MLD', 'appl/mld/mld_melding.asp?urole=fo', 0, 0, 'WEB_MLDFOF', 'W', '0', '');
DEF_MENUITEM(1, 'lcl_menu_fac_jobs_templates_fo', '', 'MLD', 'appl/fac/job_search.asp?urole=fo&template=1', 0, 0, 'WEB_MLDFOF', 'W', '1', '');
DEF_MENUITEM(1, 'lcl_menu_mld_concepts' , '', 'MLD', 'appl/mld/mld_search.asp?concept=1&urole=fo', 0, 0, 'WEB_MLDMSU', 'R', '0', '');
DEF_MENUITEM(1, 'lcl_menu_mld_notes' , '', 'MLD', 'appl/mld/mld_show_note.asp?urole=fo', 0, 0, 'WEB_MLDFOF', 'R', '0', '');
DEF_MENUITEM(1, 'lcl_menu_mld_bo_call_center' , '', 'MLD', 'appl/mld/mld_search.asp?urole=bo', 0, 0, 'WEB_MLDBOF', 'R', '1', '');
@@ -2866,7 +2862,7 @@ DEF_MENUITEM(2, 'lcl_menu_alg_terreinkenmerken' , '', 'ALG', 'appl/mgt/alg_kenme
DEF_MENUITEM(2, 'lcl_menu_alg_gebouwkenmerken' , '', 'ALG', 'appl/mgt/alg_kenmerk.asp?level=G', 0, 0, 'WEB_ALGMGT', 'W', '1', '');
DEF_MENUITEM(2, 'lcl_menu_alg_verdiepkenmerken' , '', 'ALG', 'appl/mgt/alg_kenmerk.asp?level=V', 0, 0, 'WEB_ALGMGT', 'W', '1', '');
DEF_MENUITEM(2, 'lcl_menu_alg_ruimtekenmerken' , '', 'ALG', 'appl/mgt/alg_kenmerk.asp?level=R', 0, 0, 'WEB_ALGMGT', 'W', '1', '');
//DEF_MENUITEM(2, 'lcl_menu_alg_kenmerkdomeinen' , '', 'ALG', 'appl/fac/fac_kenmerkdomein_search.asp?fkdmodule=ALG', 0, 0, 'WEB_ALGMGT', 'W', '1', '');
DEF_MENUITEM(2, 'lcl_menu_alg_kenmerkdomeinen' , '', 'ALG', 'appl/fac/fac_kenmerkdomein_search.asp?fkdmodule=ALG', 0, 0, 'WEB_ALGMGT', 'W', '1', '');
DEF_MENUITEM(2, 'lcl_menu_alg_setting' , '', 'ALG', 'appl/fac/fac_setting_search.asp?module=ALG', 0, 0, 'WEB_ALGMGT', 'W', '0', '');
DEF_MENUKOP(2, 'lcl_facmgt_prs', 'fa-users');
@@ -2877,7 +2873,7 @@ DEF_MENUITEM(2, 'lcl_menu_prs_bedrijfkenmerken' , '', 'PRS', 'appl/mgt/prs_kenme
DEF_MENUITEM(2, 'lcl_menu_prs_afdelingskenmerke', '', 'PRS', 'appl/mgt/prs_kenmerk.asp?level=A', 0, 0, 'WEB_PRSMGT', 'W', '1', '');
DEF_MENUITEM(2, 'lcl_menu_prs_persoonskenmerken', '', 'PRS', 'appl/mgt/prs_kenmerk.asp?level=P', 0, 0, 'WEB_PRSMGT', 'W', '1', '');
DEF_MENUITEM(2, 'lcl_menu_prs_contactkenmerken' , '', 'PRS', 'appl/mgt/prs_kenmerk.asp?level=C', 0, 0, 'WEB_PRSMGT', 'W', '1', '');
//DEF_MENUITEM(2, 'lcl_menu_prs_kenmerkdomeinen' , '', 'PRS', 'appl/fac/fac_kenmerkdomein_search.asp?fkdmodule=PRS', 0, 0, 'WEB_PRSMGT', 'W', '1', '');
DEF_MENUITEM(2, 'lcl_menu_prs_kenmerkdomeinen' , '', 'PRS', 'appl/fac/fac_kenmerkdomein_search.asp?fkdmodule=PRS', 0, 0, 'WEB_PRSMGT', 'W', '1', '');
DEF_MENUITEM(2, 'lcl_menu_prs_setting' , '', 'PRS', 'appl/fac/fac_setting_search.asp?module=PRS', 0, 0, 'WEB_PRSMGT', 'W', '0', '');
DEF_MENUKOP(2, 'lcl_facmgt_ins', 'fa-fire-extinguisher');
@@ -2890,7 +2886,7 @@ DEF_MENUITEM(2, 'lcl_menu_ins_srtcontrole' , '', 'INS', 'appl/mgt/ins_srtco
DEF_MENUITEM(2, 'lcl_menu_ins_kenmerken' , '', 'INS', 'appl/mgt/ins_kenmerk.asp', 0, 0, 'WEB_INSMGT', 'W', '1', '');
DEF_MENUITEM(2, 'lcl_menu_ins_taakkenmerken' , '', 'CTR', 'appl/mgt/ins_kenmerk.asp?niveau=T', 0, 0, 'WEB_CTRMGT', 'W', '1', '');
DEF_MENUITEM(2, 'lcl_menu_ins_kenmerksoorten' , '', 'INS', 'appl/mgt/ins_srtkenmerk.asp', 0, 0, 'WEB_INSMGT', 'W', '1', '');
//DEF_MENUITEM(2, 'lcl_menu_ins_kenmerkdomeinen' , '', 'INS', 'appl/fac/fac_kenmerkdomein_search.asp?fkdmodule=INS', 0, 0, 'WEB_INSMGT', 'W', '1', '');
DEF_MENUITEM(2, 'lcl_menu_ins_kenmerkdomeinen' , '', 'INS', 'appl/fac/fac_kenmerkdomein_search.asp?fkdmodule=INS', 0, 0, 'WEB_INSMGT', 'W', '1', '');
DEF_MENUITEM(2, 'lcl_menu_ins_setting' , '', 'INS', 'appl/fac/fac_setting_search.asp?module=INS', 0, 0, 'WEB_INSMGT', 'W', '0', '');
DEF_MENUKOP(2, 'lcl_facmgt_mld', 'fa-desktop');
@@ -2906,12 +2902,10 @@ DEF_MENUITEM(2, 'lcl_menu_mld_opdrachttypes' , '', 'MLD', 'appl/mgt/mld_typeo
DEF_MENUITEM(2, 'lcl_menu_mld_improdopdr' , '', 'MLD', 'appl/mgt/mld_impropdr.asp', 0, 0, 'WEB_MLDMGT', 'W', '1', '');
DEF_MENUITEM(2, 'lcl_menu_mld_opdrkosten' , '', 'MLD', 'appl/mgt/mld_kosten.asp', 0, 0, 'WEB_MLDMGT', 'W', '1', '');
DEF_MENUITEM(2, 'lcl_menu_mld_workflows' , '', 'MLD', 'appl/mgt/mld_workflow.asp', 0, 0, 'WEB_MLDMGT', 'W', '1', '');
DEF_MENUITEM(2, 'lcl_menu_fac_jobs_templates' , '', 'MLD', 'appl/fac/job_search.asp?template=1', 0, 0, 'WEB_MLDMGT', 'W', '1', '');
DEF_MENUITEM(2, 'lcl_menu_mld_email_setting' , '', 'MLD', 'appl/mgt/fac_email_setting.asp', 0, 0, 'WEB_MLDMGT', 'W', '1', '');
DEF_MENUITEM(2, 'lcl_menu_mld_kenmerken_m' , '', 'MLD', 'appl/mgt/mld_kenmerk.asp?niveau=M', 0, 0, 'WEB_MLDMGT', 'W', '1', '');
DEF_MENUITEM(2, 'lcl_menu_mld_kenmerken' , '', 'MLD', 'appl/mgt/mld_kenmerk.asp?niveau=O', 0, 0, 'WEB_MLDMGT', 'W', '1', '');
DEF_MENUITEM(2, 'lcl_menu_mld_kenmerksoorten' , '', 'MLD', 'appl/mgt/mld_srtkenmerk.asp', 0, 0, 'WEB_MLDMGT', 'W', '1', '');
//DEF_MENUITEM(2, 'lcl_menu_mld_kenmerkdomeinen' , '', 'MLD', 'appl/fac/fac_kenmerkdomein_search.asp?fkdmodule=MLD', 0, 0, 'WEB_MLDMGT', 'W', '1', '');
DEF_MENUITEM(2, 'lcl_menu_mld_kenmerkdomeinen' , '', 'MLD', 'appl/fac/fac_kenmerkdomein_search.asp?fkdmodule=MLD', 0, 0, 'WEB_MLDMGT', 'W', '1', '');
DEF_MENUITEM(2, 'lcl_menu_mld_setting' , '', 'MLD', 'appl/fac/fac_setting_search.asp?module=MLD', 0, 0, 'WEB_MLDMGT', 'W', '0', '');
DEF_MENUKOP(2, 'lcl_facmgt_res', 'fa-calendar');
@@ -2929,7 +2923,7 @@ DEF_MENUITEM(2, 'lcl_menu_res_opstellingen' , '', 'RES', 'appl/mgt/res_opste
DEF_MENUITEM(2, 'lcl_menu_res_perioden' , '', 'RES', 'appl/mgt/res_cyclus.asp', 0, 0, 'WEB_RESMGT', 'W', '1', '');
DEF_MENUITEM(2, 'lcl_menu_res_kenmerken' , '', 'RES', 'appl/mgt/res_kenmerk.asp', 0, 0, 'WEB_RESMGT', 'W', '1', '');
DEF_MENUITEM(2, 'lcl_menu_res_kenmerksoorten' , '', 'RES', 'appl/mgt/res_srtkenmerk.asp', 0, 0, 'WEB_RESMGT', 'W', '1', '');
//DEF_MENUITEM(2, 'lcl_menu_res_kenmerkdomeinen' , '', 'RES', 'appl/fac/fac_kenmerkdomein_search.asp?fkdmodule=RES', 0, 0, 'WEB_RESMGT', 'W', '1', '');
DEF_MENUITEM(2, 'lcl_menu_res_kenmerkdomeinen' , '', 'RES', 'appl/fac/fac_kenmerkdomein_search.asp?fkdmodule=RES', 0, 0, 'WEB_RESMGT', 'W', '1', '');
DEF_MENUITEM(2, 'lcl_menu_res_setting' , '', 'RES', 'appl/fac/fac_setting_search.asp?module=RES', 0, 0, 'WEB_RESMGT', 'W', '0', '');
DEF_MENUKOP(2, 'lcl_facmgt_bes', 'fa-cart-plus');
@@ -2940,7 +2934,7 @@ DEF_MENUITEM(2, 'lcl_menu_bes_staffeltabel' , '', 'BES', 'appl/mgt/bes_staff
DEF_MENUITEM(2, 'lcl_menu_bes_kenmerken' , '', 'BES', 'appl/mgt/bes_kenmerkbestel.asp', 0, 0, 'WEB_BESMGT', 'W', '1', '');
DEF_MENUITEM(2, 'lcl_menu_bes_itemkenmerken' , '', 'BES', 'appl/mgt/bes_kenmerk.asp', 0, 0, 'WEB_BESMGT', 'W', '1', '');
DEF_MENUITEM(2, 'lcl_menu_bes_kenmerksoorten' , '', 'BES', 'appl/mgt/bes_srtkenmerk.asp', 0, 0, 'WEB_BESMGT', 'W', '1', '');
//DEF_MENUITEM(2, 'lcl_menu_bes_kenmerkdomeinen' , '', 'BES', 'appl/fac/fac_kenmerkdomein_search.asp?fkdmodule=BES', 0, 0, 'WEB_BESMGT', 'W', '1', '');
DEF_MENUITEM(2, 'lcl_menu_bes_kenmerkdomeinen' , '', 'BES', 'appl/fac/fac_kenmerkdomein_search.asp?fkdmodule=BES', 0, 0, 'WEB_BESMGT', 'W', '1', '');
DEF_MENUITEM(2, 'lcl_menu_bes_importeren' , '', 'BES', 'appl/mgt/fac_import_app.asp', 0, 0, 'WEB_BESMGT', 'W', '1', '');
DEF_MENUITEM(2, 'lcl_menu_bes_setting' , '', 'BES', 'appl/fac/fac_setting_search.asp?module=BES', 0, 0, 'WEB_BESMGT', 'W', '0', '');
@@ -2949,7 +2943,7 @@ DEF_MENUITEM(2, 'lcl_menu_cnt_contractsoorten' , '', 'CNT', 'appl/mgt/cnt_disci
DEF_MENUITEM(2, 'lcl_menu_cnt_termijnen' , '', 'CNT', 'appl/mgt/cnt_termijn.asp', 0, 0, 'WEB_CNTMGT', 'W', '1', '');
DEF_MENUITEM(2, 'lcl_menu_cnt_kenmerken' , '', 'CNT', 'appl/mgt/cnt_kenmerk.asp', 0, 0, 'WEB_CNTMGT', 'W', '1', '');
DEF_MENUITEM(2, 'lcl_menu_cnt_kenmerksoorten' , '', 'CNT', 'appl/mgt/cnt_srtkenmerk.asp', 0, 0, 'WEB_CNTMGT', 'W', '1', '');
//DEF_MENUITEM(2, 'lcl_menu_cnt_kenmerkdomeinen' , '', 'CNT', 'appl/fac/fac_kenmerkdomein_search.asp?fkdmodule=CNT', 0, 0, 'WEB_CNTMGT', 'W', '1', '');
DEF_MENUITEM(2, 'lcl_menu_cnt_kenmerkdomeinen' , '', 'CNT', 'appl/fac/fac_kenmerkdomein_search.asp?fkdmodule=CNT', 0, 0, 'WEB_CNTMGT', 'W', '1', '');
DEF_MENUITEM(2, 'lcl_menu_cnt_setting' , '', 'CNT', 'appl/fac/fac_setting_search.asp?module=CNT', 0, 0, 'WEB_CNTMGT', 'W', '0', '');
DEF_MENUKOP(2, 'lcl_facmgt_fin', 'fa-euro-sign');
@@ -2962,7 +2956,7 @@ DEF_MENUITEM(2, 'lcl_menu_fin_profielen' , '', 'FIN', 'appl/mgt/fac_profi
DEF_MENUITEM(2, 'lcl_menu_fin_profiel_limieten' , '', 'FIN', 'appl/mgt/fac_profielwaarde.asp', 0, 0, 'WEB_FINMSU', 'W', '1', '');
DEF_MENUITEM(2, 'lcl_menu_fin_btwtabellen' , '', 'FIN', 'appl/mgt/fin_btwtabel.asp', 0, 0, 'WEB_FINMSU', 'W', '1', '');
DEF_MENUITEM(2, 'lcl_menu_fin_kenmerken' , '', 'FIN', 'appl/mgt/fin_kenmerk.asp', 0, 0, 'WEB_FINMGT', 'W', '1', '');
//DEF_MENUITEM(2, 'lcl_menu_fin_kenmerkdomeinen' , '', 'FIN', 'appl/fac/fac_kenmerkdomein_search.asp?fkdmodule=FIN', 0, 0, 'WEB_FINMGT', 'W', '1', '');
DEF_MENUITEM(2, 'lcl_menu_fin_kenmerkdomeinen' , '', 'FIN', 'appl/fac/fac_kenmerkdomein_search.asp?fkdmodule=FIN', 0, 0, 'WEB_FINMGT', 'W', '1', '');
DEF_MENUITEM(2, 'lcl_menu_fin_setting' , '', 'FIN', 'appl/fac/fac_setting_search.asp?module=FIN', 0, 0, 'WEB_FINMGT', 'W', '0', '');
DEF_MENUKOP(2, 'lcl_facmgt_fg', 'fa-map');
@@ -2979,13 +2973,13 @@ DEF_MENUKOP(2, 'lcl_facmgt_bez', 'fa-user-plus');
DEF_MENUITEM(2, 'lcl_menu_bez_actie_groep' , '', 'BEZ', 'appl/mgt/bez_actie_groep.asp', 0, 0, 'WEB_BEZMGT', 'W', '1', '');
DEF_MENUITEM(2, 'lcl_menu_bez_acties' , '', 'BEZ', 'appl/mgt/bez_actie.asp', 0, 0, 'WEB_BEZMGT', 'W', '1', '');
DEF_MENUITEM(2, 'lcl_menu_bez_kenmerken' , '', 'BEZ', 'appl/mgt/bez_kenmerk.asp', 0, 0, 'WEB_BEZMGT', 'W', '1', '');
//DEF_MENUITEM(2, 'lcl_menu_bez_kenmerkdomeinen' , '', 'BEZ', 'appl/fac/fac_kenmerkdomein_search.asp?fkdmodule=BEZ', 0, 0, 'WEB_BEZMGT', 'W', '1', '');
DEF_MENUITEM(2, 'lcl_menu_bez_kenmerkdomeinen' , '', 'BEZ', 'appl/fac/fac_kenmerkdomein_search.asp?fkdmodule=BEZ', 0, 0, 'WEB_BEZMGT', 'W', '1', '');
DEF_MENUITEM(2, 'lcl_menu_bez_setting' , '', 'BEZ', 'appl/fac/fac_setting_search.asp?module=BEZ', 0, 0, 'WEB_BEZMGT', 'W', '0', '');
DEF_MENUKOP(2, 'lcl_facmgt_faq', 'fa-info-circle');
DEF_MENUITEM(2, 'lcl_menu_faq_catalogi' , '', 'FAQ', 'appl/mgt/faq_discipline.asp', 0, 0, 'WEB_FAQMSU', 'W', '1', '');
DEF_MENUITEM(2, 'lcl_menu_faq_kenmerk' , '', 'FAQ', 'appl/mgt/faq_kenmerk.asp', 0, 0, 'WEB_FAQMGT', 'W', '1', '');
//DEF_MENUITEM(2, 'lcl_menu_faq_kenmerkdomeinen' , '', 'FAQ', 'appl/fac/fac_kenmerkdomein_search.asp?fkdmodule=FAQ', 0, 0, 'WEB_FAQMGT', 'W', '1', '');
DEF_MENUITEM(2, 'lcl_menu_faq_kenmerkdomeinen' , '', 'FAQ', 'appl/fac/fac_kenmerkdomein_search.asp?fkdmodule=FAQ', 0, 0, 'WEB_FAQMGT', 'W', '1', '');
DEF_MENUITEM(2, 'lcl_menu_faq_setting' , '', 'FAQ', 'appl/fac/fac_setting_search.asp?module=FAQ', 0, 0, 'WEB_FAQMGT', 'W', '0', '');
DEF_MENUKOP(2, 'lcl_facmgt_reports', 'fa-memo-circle-check');
@@ -2999,8 +2993,6 @@ DEF_MENUKOP(2, 'lcl_facmgt_overig', 'fa-cogs');
DEF_MENUITEM(2, 'lcl_menu_fac_bookmarks' , '', 'FAC', 'appl/fac/fac_bookmark_list.asp', 0, 0, 'WEB_HLPADM', 'R', '1', '');
DEF_MENUITEM(2, 'lcl_menu_cht_chatkanalen' , '', 'CHT', 'appl/mgt/cht_discipline.asp', 0, 0, 'WEB_PRSSYS', 'W', '1', '');
DEF_MENUITEM(2, 'lcl_menu_fac_eigen_tabellen' , '', 'FAC', 'appl/mgt/fac_usrtab.asp', 0, 0, 'WEB_PRSSYS', 'W', '1', '');
DEF_MENUITEM(2, 'lcl_menu_kenmerkdomeinen' , '', 'FAC', 'appl/fac/fac_kenmerkdomein_search.asp', 0, 0, 'WEB_PRSSYS', 'W', '1', '');
DEF_MENUITEM(2, 'lcl_menu_prs_bedrijf_system' , '', 'FAC', 'appl/prs/prs_bedrijf_search.asp?intern=2', 0, 0, 'WEB_PRSSYS', 'W', '1', '');
DEF_MENUITEM(2, 'lcl_menu_system_adresses' , '', 'FAC', 'appl/mgt/prs_bedrijfadres.asp', 0, 0, 'WEB_PRSSYS', 'W', '1', '');
DEF_MENUITEM(2, 'lcl_menu_fac_xsledit' , '', 'FAC', 'appl/fac/fac_edit_xsl.asp', 0, 0, 'WEB_PRSSYS', 'W', '1', '');

File diff suppressed because it is too large Load Diff

View File

@@ -133,7 +133,7 @@ CREATE OR REPLACE PACKAGE fac
PROCEDURE putjobnotifications (pviewname VARCHAR2, pmode NUMBER, pflags NUMBER, pqueue VARCHAR2 DEFAULT 'DEFAULT');
FUNCTION getEmail ( pkey IN NUMBER ) RETURN VARCHAR2;
FUNCTION getMobile ( pkey IN NUMBER ) RETURN VARCHAR2;
PROCEDURE fac_hourly;
PROCEDURE fac_hourly; -- future use
PROCEDURE fac_nightly;
PROCEDURE fac_daily;
PROCEDURE fac_weekly;
@@ -163,7 +163,8 @@ CREATE OR REPLACE PACKAGE fac
plocatie_key NUMBER DEFAULT NULL,
pdiscipline_key NUMBER DEFAULT NULL,
ptypeopdr_key NUMBER DEFAULT NULL,
pbedrijf_key2 NUMBER DEFAULT NULL);
pbedrijf_key2 NUMBER DEFAULT NULL,
pdisc_key NUMBER DEFAULT NULL);
FUNCTION gettrackingdate (peventcode IN VARCHAR2, pkey IN number) RETURN date;
FUNCTION gettrackinguserkey (peventcode IN VARCHAR2, pkey IN number) RETURN number;
PROCEDURE initsession (flcode IN VARCHAR2);
@@ -172,17 +173,14 @@ CREATE OR REPLACE PACKAGE fac
PROCEDURE registercustversion (pcustid IN VARCHAR2, pcustnr IN NUMBER);
FUNCTION getdbversion RETURN VARCHAR2;
FUNCTION getDefaultBehandelteam(p_stdm IN NUMBER) RETURN NUMBER;
PROCEDURE processemail (p_from IN VARCHAR2
, p_to IN VARCHAR2
, p_subject IN VARCHAR2
, p_body IN VARCHAR2
, p_session_id IN VARCHAR2
, p_email_set_key IN NUMBER);
PROCEDURE processemail (pfrom IN VARCHAR2, pto IN VARCHAR2, psubject IN VARCHAR2, pbody IN VARCHAR2, psessionid IN VARCHAR2);
FUNCTION isdatefeestdag(p_date IN DATE, pCalendarId IN VARCHAR2 DEFAULT 'Default') RETURN BOOLEAN;
FUNCTION calcnextcyclusdate (p_date IN DATE, p_mode IN NUMBER, p_eenheid IN NUMBER, p_periode IN NUMBER, p_bits IN NUMBER, pCalendarId IN VARCHAR2 DEFAULT 'Default') RETURN DATE;
FUNCTION nextcyclusdate (p_date IN DATE, p_mode IN NUMBER, p_eenheid IN NUMBER, p_periode IN NUMBER, p_bits IN NUMBER, p_steps IN NUMBER DEFAULT 0, p_ismjob IN NUMBER DEFAULT 0, pCalendarId IN VARCHAR2 DEFAULT 'Default') RETURN DATE;
FUNCTION nextcyclusdatedeel (p_insdeel IN NUMBER, p_srtcontrole IN NUMBER, p_steps IN NUMBER DEFAULT 0, pCalendarId IN VARCHAR2 DEFAULT 'Default') RETURN DATE;
FUNCTION nextcyclusdatesteps (p_date IN DATE, p_mode IN NUMBER, p_eenheid IN NUMBER, p_periode IN NUMBER, p_bits IN NUMBER, p_steps IN NUMBER DEFAULT 1, p_enddate IN DATE DEFAULT SYSDATE, pCalendarId IN VARCHAR2 DEFAULT 'Default') RETURN NUMBER;
FUNCTION makehash (p_in VARCHAR2, method IN VARCHAR2 DEFAULT 'MD5') RETURN VARCHAR2;
FUNCTION testhash (p_hash VARCHAR2, p_in VARCHAR2) RETURN NUMBER;
PROCEDURE createlikebookmark (pxmlnode VARCHAR2, prefkey NUMBER);
PROCEDURE sequence_nextval(p_seqname IN VARCHAR2, p_initval IN NUMBER DEFAULT 1, p_initexpire IN DATE DEFAULT NULL);
PROCEDURE remove_tracking(p_xmlnode IN VARCHAR2, p_refkey IN NUMBER);
@@ -677,51 +675,28 @@ CREATE OR REPLACE PACKAGE BODY fac AS
AND pEindWerkUur BETWEEN 0 AND 24
AND pEindWerkUur > pBeginWerkUur
THEN
datumbegin := begindatum;
LOOP
-- Verschuif datumbegin als deze valt
-- [a] in het weekend (alleen als pMode = 1)
-- [b] buiten de meegegeven uren, hier geldt Kantoortijden- of Openingstijden-regime!
-- [c] op een vrije dag
IF pMode = 1
THEN
-- Verschuif (gewijzigde) datumbegin als deze in het weekend valt.
weekdagbegin := fac.getweekdaynum (datumbegin); -- zo=1 t/m za=7
IF weekdagbegin = 1
THEN
-- Als zo=1, dan schuif 1 dag door naar maandag 'pBeginWerkUur'.
datumbegin := TRUNC (datumbegin + 1) + (pBeginWerkUur / 24);
CONTINUE;
ELSIF weekdagbegin = 7
THEN
-- Als za=7, dan schuif 2 dagen door naar maandag 'pBeginWerkUur'.
datumbegin := TRUNC (datumbegin + 2) + (pBeginWerkUur / 24);
CONTINUE;
END IF;
END IF;
-- Verschuif begindatum als deze valt [a] buiten de meegegeven uren of [b] op
-- een vrije dag. Dit geldt Kantoortijden- of Openingstijden-regime!
SELECT COUNT ( * )
INTO vrijedag
FROM mld_vrije_dagen
WHERE mld_vrije_dagen_datum = TRUNC (datumbegin)
WHERE mld_vrije_dagen_datum = TRUNC (begindatum)
AND mld_vrije_dagen_id = pCalendarId;
IF (datumbegin > TRUNC (datumbegin) + (pEindWerkUur / 24) OR vrijedag = 1)
IF (begindatum > TRUNC (begindatum) + (pEindWerkUur / 24) OR vrijedag = 1)
THEN
-- Als begintijd na 'pEindWerkUur', dan naar 'pBeginWerkUur' volgende dag;
-- hetzelfde als begindag is een vrije dag.
-- En als deze volgende dag is een vrije dag, dan volgt vanzelf compensatie!
datumbegin := TRUNC (datumbegin + 1) + (pBeginWerkUur / 24);
CONTINUE;
ELSIF (datumbegin < TRUNC (datumbegin) + (pBeginWerkUur / 24))
datumbegin := TRUNC (begindatum + 1) + (pBeginWerkUur / 24);
ELSIF (begindatum < TRUNC (begindatum) + (pBeginWerkUur / 24))
THEN
-- Als begintijd voor 'pBeginWerkUur', dan naar 'pBeginWerkUur' huidige dag.
datumbegin := TRUNC (datumbegin) + (pBeginWerkUur / 24);
CONTINUE;
datumbegin := TRUNC (begindatum) + (pBeginWerkUur / 24);
ELSE
-- Anders 1-op-1 overnemen.
datumbegin := begindatum;
END IF;
EXIT;
END LOOP;
IF pMode = 0
THEN
@@ -732,6 +707,19 @@ CREATE OR REPLACE PACKAGE BODY fac AS
-- Alleen werkdagen excl. vrije dagen (= Kantoortijden-regime en alleen
-- werkdagen-variant van Openingstijden-regime)!
dagenperweek := 5;
-- Verschuif (gewijzigde) datumbegin als deze in het weekend valt.
weekdagbegin := fac.getweekdaynum (datumbegin); -- zo=1 t/m za=7
IF weekdagbegin = 1
THEN
-- Als zo=1, dan schuif 1 dag door naar maandag 'pBeginWerkUur'.
datumbegin := TRUNC (datumbegin + 1) + (pBeginWerkUur / 24);
ELSIF weekdagbegin = 7
THEN
-- Als za=7, dan schuif 2 dagen door naar maandag 'pBeginWerkUur'.
datumbegin := TRUNC (datumbegin + 2) + (pBeginWerkUur / 24);
END IF;
END IF;
IF uitvoertijdtype IN ('D', 'DAGEN')
@@ -2654,7 +2642,7 @@ CREATE OR REPLACE PACKAGE BODY fac AS
soms,
pref,
pxref,
CASE WHEN l_srtnoti_delay = 0 THEN 1 ELSE pprio END, -- delay 0 altijd hoge prio en 'voorkruipen'
CASE WHEN l_srtnoti_delay = 0 THEN 1 ELSE pprio END, // delay 0 altijd hoge prio en 'voorkruipen'
psender,
llang,
lsysteem,
@@ -2755,7 +2743,7 @@ CREATE OR REPLACE PACKAGE BODY fac AS
AND fac_notificatie_job_queue = pqueue;
tnextrun fac_notificatie_job.fac_notificatie_job_nextrun%TYPE;
BEGIN
fac_hourly(); -- Klant specifieke en cleanup
fac.cleannotifications(); -- Eens per uur beetje opruimen is aardig
FOR rec1 IN c1
LOOP
-- Voer de job uit
@@ -2845,8 +2833,7 @@ CREATE OR REPLACE PACKAGE BODY fac AS
-- Ruim alle totaal verwerkte notificaties op.
-- Putorders heeft de meeste al wel gedaan maar iets als portal only komt niet per se langs putorders
DELETE FROM fac_notificatie
WHERE fac_notificatie_queue = 'DEFAULT'
AND fac_notificatie_status IN (0, 16)
WHERE fac_notificatie_status IN (0, 16)
AND fac_notificatie_systeemadres IS NULL
AND prs_bedrijfadres_key IS NULL;
END;
@@ -2949,7 +2936,7 @@ CREATE OR REPLACE PACKAGE BODY fac AS
pmode,
lxemail,
lxmobile,
3, -- altijd lage prio
2,
pattach => attachments,
pbedrijfadreskey => lbedrijfadreskey,
pqueue => pqueue,
@@ -2964,7 +2951,7 @@ CREATE OR REPLACE PACKAGE BODY fac AS
lxemail,
lxmobile,
lxkey,
3, -- altijd lage prio
2,
lxsender,
pattach => attachments,
pbedrijfadreskey => lbedrijfadreskey,
@@ -3006,7 +2993,7 @@ CREATE OR REPLACE PACKAGE BODY fac AS
AND k.mld_kenmerk_default LIKE '%##SQL##%'
AND k.mld_kenmerk_verplicht = 1
AND t.mld_srtkenmerk_verwijder IS NULL
AND BITAND(k.mld_kenmerk_rolcode, 3) > 0
AND k.mld_kenmerk_volgnummer <= 900
AND NOT EXISTS
(SELECT ''
FROM mld_kenmerkmelding km
@@ -3432,7 +3419,6 @@ CREATE OR REPLACE PACKAGE BODY fac AS
AS
cust_daily VARCHAR2(20);
has_cust_daily NUMBER(1);
mld_assume_ok_days NUMBER(10);
BEGIN
fac.writelog ('FAC_DAILY', 'S', 'Start', '');
@@ -3462,13 +3448,6 @@ CREATE OR REPLACE PACKAGE BODY fac AS
-- Automatische inactivering van contracten.
cnt.autoinactiveer_contract();
-- Het resetten van de Actie-bij-melder van het afmelden na "mld_assume_ok_days" dagen.
mld_assume_ok_days := fac.safe_to_number(fac.getsetting('mld_assume_ok_days'));
IF mld_assume_ok_days > 0
THEN
mld.resetpostafmeldactie(256, mld_assume_ok_days);
END IF;
fac_custprocedure('DAILY');
fac.fac_cleanup(0); -- 0 = onvoorwaardelijk
@@ -3518,15 +3497,13 @@ CREATE OR REPLACE PACKAGE BODY fac AS
fac_custprocedure('PRE_PUTORDERS');
END;
-- Wordt aangeroepen vanuit putnotificationjobs welke doorgaans elk uur draait
-- Zou netter zijn om fac_hourly aan te roepen vanuit \UTILS\gen_notify\gen_notify.js
-- en dan van hieruit putnotificationjobs aan te roepen. Maar niet nu.
-- Future use: wordt nog nooit ergens aangeroepen!
-- Zou netter zijn om deze aan te roepen vanuit w:\Branch20243\UTILS\gen_notify\gen_notify.js
PROCEDURE fac_hourly
AS
BEGIN
fac.cleannotifications(); -- Eens per uur beetje opruimen is aardig
-- fac.putnotificationjobs('DEFAULT');
fac_custprocedure('HOURLY');
fac_custprocedure('FAC_HOURLY');
END;
PROCEDURE executeschedules
@@ -3905,7 +3882,6 @@ CREATE OR REPLACE PACKAGE BODY fac AS
VALUES (prefkey, puserkey, tkey, loms, psubjectkey
)
RETURNING fac_tracking_key INTO new_fac_tracking_key;
-- LET OP: Dit activeert fac_t_fac_tracking_b_i aan waar fac.notifytracking wordt aangeroepen.
ELSE
INSERT INTO fac_tracking (fac_tracking_refkey, prs_perslid_key, fac_srtnotificatie_key, fac_tracking_datum, fac_tracking_oms, fac_tracking_subject_refkey
)
@@ -3984,7 +3960,7 @@ CREATE OR REPLACE PACKAGE BODY fac AS
lreskey res_rsv_ruimte.res_reservering_key%TYPE;
lres_ruimte_opstel_key res_rsv_ruimte.res_ruimte_opstel_key%TYPE;
lrefkey NUMBER (10);
lxrefkey NUMBER (10); -- res_rsv_ruimte_key, fac_tracking_key, mld_opdr_note_key
lxrefkey res_rsv_ruimte.res_rsv_ruimte_key%TYPE; -- also fac_tracking_key
lalg_ruimte_key res_rsv_ruimte.alg_ruimte_key%TYPE;
lalglocatiekey alg_locatie.alg_locatie_key%TYPE;
lalgonrgoedkey mld_melding.mld_alg_onroerendgoed_keys%TYPE;
@@ -4201,9 +4177,6 @@ CREATE OR REPLACE PACKAGE BODY fac AS
THEN
bericht := mld.opdrsprintf (loms, prefkey);
END IF;
-- voor opdrachten (en meldingen) hebben we een toepassing voor de extrakey in de queue, nl. de verwijzing
-- naar de trackingtabel, dat is specifieker dan we terug kunnen bepalen. De notitie daarbij kan nl. van belang zijn
lxrefkey := ptrackingkey;
-- In 4i notificeerden we alleen toekenning aan de uitvoerder
-- In 5i tracken we veel meer, en is er dus ook de mogelijkheid
@@ -4225,11 +4198,6 @@ CREATE OR REPLACE PACKAGE BODY fac AS
FROM mld_v_uitvoerende u
WHERE u.mld_uitvoerende_key = lreceiver;
SELECT fac_tracking_subject_refkey
INTO lxrefkey
FROM fac_tracking
WHERE fac_tracking_key = ptrackingkey;
IF luitvtype = 'B'
THEN
-- Het gaat om een bedrijf receiver
@@ -4347,6 +4315,9 @@ CREATE OR REPLACE PACKAGE BODY fac AS
WHERE aog.alg_gebouw_key = g.alg_gebouw_key
AND aog.alg_onroerendgoed_keys = lalgonrgoedkey;
END IF;
-- voor opdrachten (en meldingen) hebben we een toepassing voor de extrakey in de queue, nl. de verwijzing
-- naar de trackingtabel, dat is specifieker dan we terug kunnen bepalen. De notitie daarbij kan nl. van belang zijn
lxrefkey := ptrackingkey;
WHEN lxmlnode = 'reservering' OR lxmlnode = 'xreservering'
THEN
@@ -4973,12 +4944,6 @@ CREATE OR REPLACE PACKAGE BODY fac AS
WHEN lxmlnode = 'contract'
THEN
cnt.notifycontractbedrijven(l_refkey, ptrackingkey, pnotidelay);
WHEN lxmlnode = 'afspraak'
THEN
bez.notifyafspraakbedrijven(l_refkey, ptrackingkey, pnotidelay);
WHEN lxmlnode = 'bezoeker'
THEN
bez.notifybezoekerbedrijven(l_refkey, ptrackingkey, pnotidelay);
ELSE
fac.notifygeneriekbedrijven(l_refkey, ptrackingkey, pnotidelay);
@@ -5023,7 +4988,8 @@ CREATE OR REPLACE PACKAGE BODY fac AS
plocatie_key NUMBER DEFAULT NULL,
pdiscipline_key NUMBER DEFAULT NULL,
ptypeopdr_key NUMBER DEFAULT NULL,
pbedrijf_key2 NUMBER DEFAULT NULL)
pbedrijf_key2 NUMBER DEFAULT NULL,
pdisc_key NUMBER DEFAULT NULL) -- future use
AS
l_bdradr_key prs_bedrijfadres.prs_bedrijfadres_key%TYPE;
l_basrt_key prs_bedrijfadres_srtnoti.prs_bedrijfadres_srtnoti_key%TYPE;
@@ -5035,6 +5001,7 @@ CREATE OR REPLACE PACKAGE BODY fac AS
l_oms fac_notificatie.fac_notificatie_oms%TYPE;
l_perslid_key fac_tracking.prs_perslid_key%TYPE;
l_extra_key fac_tracking.fac_tracking_subject_refkey%TYPE;
nn_noti NUMBER (10);
aantal NUMBER (10);
dummy VARCHAR2 (1);
notbefore fac_notificatie.fac_notificatie_notbefore%TYPE;
@@ -5085,14 +5052,20 @@ CREATE OR REPLACE PACKAGE BODY fac AS
-- Merk op: per bedrijf notificeren we hooguit <20><>n enkel technisch adres
-- Dat adres wordt eerst bepaald op basis van locatie/district/opdrachttype/discipline/bedrijfadres_type
-- Als er meerdere adressen zijn die aan zo'n combinatie wordt gekeken welke srtnotificaties er aan hangen
-- Als er meerdere adressen zijn die aan zo'n combinatie voldoen moet je er altijd srtnotificaties aan hangen
-- Alleen als er maar een enkel adres is mag dat eventueel zonder srtnotificatie
-- (dat werkt alleen voor ORDNEW, BES2NE en CNTNEW voor backwards compatibiliteit)
-- Dit is om het begrijpbaar te houden.
-- Ook: je kunt onder een bedrijf een adres maken voor alle locaties maar specifiek opdrachttype
-- en eentje voor specifieke locatie en algemene opdracht
-- Dat ondersteunen we niet en geeft ongedefinieerd gedrag.
BEGIN
SELECT ba.prs_bedrijfadres_key
INTO l_bdradr_key
SELECT ba.prs_bedrijfadres_key,
(SELECT COUNT (*)
FROM prs_bedrijfadres_srtnoti basrt
WHERE basrt.prs_bedrijfadres_key = ba.prs_bedrijfadres_key
AND basrt.fac_srtnotificatie_key = l_srtnoti_key)
INTO l_bdradr_key, nn_noti
FROM prs_bedrijfadres ba
WHERE ba.prs_bedrijf_key = pbedrijf_key
AND ba.prs_bedrijfadres_type = pbedrijfadres_type
@@ -5101,6 +5074,7 @@ CREATE OR REPLACE PACKAGE BODY fac AS
AND (ba.ins_discipline_key = pdiscipline_key OR ba.ins_discipline_key IS NULL)
AND (ba.alg_locatie_key = plocatie_key OR ba.alg_locatie_key IS NULL)
AND (ba.prs_bedrijf_key2 = pbedrijf_key2 OR ba.prs_bedrijf_key2 IS NULL)
AND (ba.ins_discipline_key = pdisc_key OR ba.ins_discipline_key IS NULL)
AND ( ba.alg_district_key = (SELECT d.alg_district_key
FROM alg_locatie d
WHERE d.alg_locatie_key = plocatie_key)
@@ -5108,6 +5082,9 @@ CREATE OR REPLACE PACKAGE BODY fac AS
AND (l_srtnoti_key IN (SELECT basrt.fac_srtnotificatie_key
FROM prs_bedrijfadres_srtnoti basrt
WHERE basrt.prs_bedrijfadres_key = ba.prs_bedrijfadres_key)
OR NOT EXISTS (SELECT 1 -- backwards compatible: technische adressen zonder srtnoti werken nog steeds voor ORDNEW
FROM prs_bedrijfadres_srtnoti basrt
WHERE basrt.prs_bedrijfadres_key = ba.prs_bedrijfadres_key)
)
ORDER BY ba.mld_typeopdr_key NULLS LAST, -- door de NULLS LAST heeft een specifieke altijd voorkeur
ba.ins_discipline_key NULLS LAST,
@@ -5139,6 +5116,21 @@ CREATE OR REPLACE PACKAGE BODY fac AS
AND basrt.fac_srtnotificatie_key(+) = srtnoti.fac_srtnotificatie_key
AND srtnoti.fac_srtnotificatie_key = l_srtnoti_key;
IF (nn_noti = 0) // geen specifiek record gevonden
THEN
IF (pbedrijfadres_type = 'O' AND l_srtnoti_code = 'ORDNEW')
OR (pbedrijfadres_type = 'O' AND l_srtnoti_code = 'ORDUPD' AND ptrackingkey IS NULL) -- vanuit trigger mld_t_mld_opdr_B_IU toen teverzenden op 2 is gezet
OR (pbedrijfadres_type = 'B' AND l_srtnoti_code = 'BES2NE') -- bestelopdracht aangemaakt
OR (pbedrijfadres_type = 'C' AND l_srtnoti_code = 'CNTNEW')
-- RESNEW nooit automatisch OR (pbedrijfadres_type = 'R' AND l_srtnoti_code = 'RESNEW')
THEN
NULL; -- backwards compatible: als geen enkel prs_bedrijfadres_srtnoti is dan is er default een xxxNEW
ELSE
DBMS_OUTPUT.Put_line ('Technisch adres onder bedrijf ' || pbedrijf_key || ' luistert niet naar notificatie ' || l_srtnoti_code);
RETURN;
END IF;
END IF;
-- ORDUPD of wat dan ook sturen we niet als er nog geen ORDNEW tracking (en naar we aannamen notificatie) is geweest
-- (DECODE mag alleen binnen een SELECT, domme Oracle)
SELECT DECODE(l_srtnoti_xmlnode, 'opdracht', 'ORDNEW',
@@ -5350,10 +5342,8 @@ CREATE OR REPLACE PACKAGE BODY fac AS
RETURN verstring;
END;
-- Hulpfuncties voor processemail
-- Haalt default Behandelteam op
FUNCTION getdefaultbehandelteam (p_stdm IN NUMBER)
FUNCTION getDefaultBehandelteam(p_stdm IN NUMBER)
RETURN NUMBER
IS
stdm_default_disc mld_stdmelding.mld_stdmelding_default_disc%TYPE;
@@ -5362,7 +5352,6 @@ CREATE OR REPLACE PACKAGE BODY fac AS
INTO stdm_default_disc
FROM mld_stdmelding
WHERE mld_stdmelding_key = p_stdm;
RETURN stdm_default_disc;
EXCEPTION
WHEN NO_DATA_FOUND
@@ -5370,359 +5359,162 @@ CREATE OR REPLACE PACKAGE BODY fac AS
RETURN NULL;
END;
PROCEDURE processemail (p_from IN VARCHAR2
, p_to IN VARCHAR2
, p_subject IN VARCHAR2
, p_body IN VARCHAR2
, p_session_id IN VARCHAR2
, p_email_set_key IN NUMBER)
-- Status: proven concept
PROCEDURE processemail (pfrom IN VARCHAR2,
pto IN VARCHAR2,
psubject IN VARCHAR2,
pbody IN VARCHAR2,
psessionid IN VARCHAR2
)
AS
-- Local variables
l_sender prs_perslid.prs_perslid_key%TYPE;
l_cost_center prs_afdeling.prs_kostenplaats_key%TYPE;
l_new_key mld_melding.mld_melding_key%TYPE;
l_std_message_key mld_stdmelding.mld_stdmelding_key%TYPE;
l_std_thirdparty_flag mld_stdmelding.mld_stdmelding_thirdparty%TYPE;
l_std_discipline_key mld_stdmelding.mld_ins_discipline_key%TYPE;
l_fallback_sender fac_email_setting.prs_perslid_key_auth%TYPE;
l_using_fallback BOOLEAN := FALSE;
l_existing_mld_key mld_melding.mld_melding_key%TYPE;
l_sender_email_ext mld_melding.mld_melding_email_ext%TYPE;
l_kenmerk_key mld_kenmerk.mld_kenmerk_key%TYPE;
l_error_msg fac_result.fac_result_waarde%TYPE;
l_default_disc mld_stdmelding.mld_ins_discipline_key%TYPE;
-- Precomputed cleaned body
l_clean_body VARCHAR2 (4000);
-- Helper function: extract existing ticket key
FUNCTION get_mld_key_from_subject (subj IN VARCHAR2, sndr IN NUMBER)
RETURN NUMBER
IS
m VARCHAR2 (4000);
d VARCHAR2 (10);
k NUMBER;
BEGIN
m :=
REGEXP_SUBSTR (subj
, '([A-Za-z]{1,3})?#?\d{1,10}'
, 1
, 1
, 'i');
IF m IS NOT NULL
THEN
d := REGEXP_SUBSTR (m, '\d{1,10}');
END IF;
IF d IS NOT NULL
THEN
SELECT MAX (mld_melding_key)
INTO k
FROM mld_melding
WHERE mld_melding_key = fac.safe_to_number (d) AND prs_perslid_key = sndr;
RETURN k;
END IF;
RETURN NULL;
EXCEPTION
WHEN NO_DATA_FOUND
THEN
RETURN NULL;
END;
-- Helper function: clean body text
FUNCTION clean_body (bod IN VARCHAR2)
RETURN VARCHAR2
IS
t VARCHAR2 (4000);
BEGIN
t := REPLACE (bod, CHR (13) || CHR (10) || CHR (13) || CHR (10), CHR (13) || CHR (10));
RETURN SUBSTR (t, 1, 4000);
END;
BEGIN
-- Precompute body variants
l_clean_body := clean_body (p_body);
-- Alle criteria zijn al 'verbruikt' om de juiste configuratie te vinden
-- dus p_email_set_key is voldoende om de juiste standaardmelding te vinden
-- In principe definieert de afzender de melder, maar als die niet bestaat kan
-- dat de bij de configuratie behorende fallback persoon zijn.
-- 1. Validate sender (and get the key)
sender prs_perslid.prs_perslid_key%TYPE;
kostenplaats prs_afdeling.prs_kostenplaats_key%TYPE;
newkey mld_melding.mld_melding_key%TYPE;
defaultstdmelding fac_setting.fac_setting_default%TYPE;
stdm_default_disc mld_stdmelding.mld_stdmelding_default_disc%TYPE;
kkey mld_kenmerk.mld_kenmerk_key%TYPE;
errormsg fac_result.fac_result_waarde%TYPE;
BEGIN
-- Valideer de sender in pfrom: kennen we deze?
SELECT p.prs_perslid_key, d.prs_kostenplaats_key
INTO l_sender, l_cost_center
FROM prs_perslid p JOIN prs_afdeling d ON p.prs_afdeling_key = d.prs_afdeling_key
WHERE p.prs_perslid_verwijder IS NULL
AND (p.prs_perslid_inactief IS NULL OR p.prs_perslid_inactief > SYSDATE)
AND (p.prs_perslid_einddatum IS NULL OR p.prs_perslid_einddatum > SYSDATE)
AND UPPER (p.prs_perslid_email) = UPPER (p_from);
EXCEPTION
WHEN NO_DATA_FOUND
THEN
l_sender := NULL;
-- fac.writelog ('PROCESSEMAIL', 'I', 'Unknown sender: ' || p_from, NULL);
END;
INTO sender, kostenplaats
FROM prs_perslid p, prs_afdeling d
WHERE p.prs_afdeling_key = d.prs_afdeling_key
AND UPPER (prs_perslid_email) = UPPER (pfrom);
-- 2. Fetch standard stdmelding props from configuration
CASE
WHEN UPPER (pto) LIKE 'SERVICEDESK@%'
THEN
defaultstdmelding := fac.getsetting ('defaultstdmelding');
stdm_default_disc := getDefaultBehandelteam(defaultstdmelding);
-- suggested extensions:
-- check for MLDUSE-write autorisations
-- parse the subject to find an appropriate stdmelding, if uniquely possible
-- append (as a note?) to an existing melding if #key is found in the subject
BEGIN
SELECT s.mld_stdmelding_key
, s.mld_stdmelding_thirdparty
, s.mld_ins_discipline_key
, e.prs_perslid_key_auth
INTO l_std_message_key
, l_std_thirdparty_flag
, l_std_discipline_key
, l_fallback_sender
FROM fac_email_setting e JOIN mld_stdmelding s ON e.mld_stdmelding_key = s.mld_stdmelding_key
WHERE e.fac_email_setting_key = p_email_set_key
AND s.mld_stdmelding_verwijder IS NULL
AND (s.mld_stdmelding_vervaldatum IS NULL OR s.mld_stdmelding_vervaldatum > SYSDATE);
EXCEPTION
WHEN NO_DATA_FOUND
THEN
l_error_msg := 'Onvolledige email configuratie: geen standaardmelding gevonden voor configuratie ' || p_email_set_key;
fac.writelog ('PROCESSEMAIL'
, 'E'
, l_error_msg
, '');
INSERT INTO fac_result (fac_result_sessionid, fac_result_naam, fac_result_waarde)
VALUES (p_session_id, 'errormsg', 'Dit mailadres is onbekend'); -- zichtbaar voor de mailer
RETURN;
END;
-- 3. Fallback if third-party
IF l_sender IS NULL AND l_std_thirdparty_flag = 1 AND l_fallback_sender IS NOT NULL
THEN
l_sender := l_fallback_sender;
l_using_fallback := TRUE;
fac.writelog ('PROCESSEMAIL'
, 'I'
, 'Fallback melder ('||l_sender||') wordt gebruikt voor ' || p_from
, NULL);
END IF;
IF l_sender IS NULL
THEN
l_error_msg := 'Afzender '|| p_from ||' is onbekend en er kan geen fallback worden afgeleid uit de email configuratie';
fac.writelog ('PROCESSEMAIL'
, 'E'
, l_error_msg
, NULL);
INSERT INTO fac_result (fac_result_sessionid, fac_result_naam, fac_result_waarde)
VALUES (p_session_id, 'errormsg', 'De afzender is onbekend'); -- zichtbaar voor de mailer
RETURN;
END IF;
-- 4. Authorization check
BEGIN
SELECT 1
INTO l_kenmerk_key
FROM fac_v_webgebruiker v
WHERE v.fac_functie_key = (SELECT fac_functie_key
FROM fac_functie
WHERE fac_functie_code = 'WEB_MLDUSE')
AND v.ins_discipline_key = l_std_discipline_key
AND v.prs_perslid_key = l_sender
AND v.fac_gebruiker_prs_level_write < 9
AND v.fac_gebruiker_alg_level_write < 9;
EXCEPTION
WHEN NO_DATA_FOUND
THEN
l_error_msg := 'De melder is niet geautoriseerd voor melding van discipline ' || l_std_discipline_key;
fac.writelog ('PROCESSEMAIL'
, 'E'
, l_error_msg
, NULL);
INSERT INTO fac_result (fac_result_sessionid, fac_result_naam, fac_result_waarde)
VALUES (p_session_id, 'errormsg', 'De afzender is niet geautoriseerd'); -- zichtbaar voor de mailer
RETURN;
END;
-- 5. Create new or append
l_existing_mld_key := get_mld_key_from_subject (p_subject, l_sender);
IF l_existing_mld_key IS NULL
THEN
-- New melding
l_default_disc := fac.getdefaultbehandelteam (l_std_message_key);
IF l_using_fallback
THEN
-- Store mail address as external email
l_sender_email_ext := p_from;
END IF;
INSERT INTO mld_melding (mld_melding_module
, mld_meldbron_key
, mld_melding_datum
, mld_melding_onderwerp
, mld_melding_omschrijving
, mld_melding_status
, mld_stdmelding_key
, prs_perslid_key
, prs_perslid_key_voor
, mld_melding_email_ext
, prs_kostenplaats_key
, mld_melding_spoed
, mld_ins_discipline_key)
VALUES ('MLD'
, 4
, SYSDATE
, SUBSTR(p_subject, 1, 200)
, l_clean_body
, NULL
, l_std_message_key
, l_sender
, l_sender
, l_sender_email_ext
, l_cost_center
, 3
, l_default_disc)
INSERT INTO mld_melding (mld_melding_module,
mld_meldbron_key,
mld_melding_datum,
mld_melding_omschrijving,
mld_melding_status,
mld_stdmelding_key,
prs_perslid_key,
prs_perslid_key_voor,
prs_kostenplaats_key,
mld_melding_spoed,
mld_ins_discipline_key)
VALUES ('MLD',
4, -- email
SYSDATE,
SUBSTR (
psubject || CHR (13)
|| REPLACE (
SUBSTR (pbody,
1,
4000 - (LENGTH (psubject) + 2)),
CHR (13) || CHR (10) || CHR (13) || CHR (10),
CHR (13) || CHR (10)),
1,
4000), -- verwijder onnodige witregels
NULL,
defaultstdmelding,
sender,
sender,
kostenplaats,
3,
stdm_default_disc)
RETURNING mld_melding_key
INTO l_new_key;
INTO newkey;
mld.setmeldingstatus (l_new_key, 2, l_sender);
-- find the lowest volgnummer of the flexfield of type folder.
SELECT MIN (mld_kenmerk_key)
INTO kkey
FROM mld_kenmerk k,
mld_srtkenmerk sk,
mld_stdmelding std,
ins_tab_discipline d
WHERE mld_srtkenmerk_kenmerktype = 'M'
AND sk.mld_srtkenmerk_key = k.mld_srtkenmerk_key
AND std.mld_stdmelding_key = defaultstdmelding
AND std.mld_ins_discipline_key = d.ins_discipline_key
AND ((k.mld_kenmerk_niveau = 'A' AND k.mld_stdmelding_key IS NULL)
OR (k.mld_kenmerk_niveau = 'S' AND k.mld_stdmelding_key = std.mld_stdmelding_key)
OR (k.mld_kenmerk_niveau = 'D' AND k.mld_stdmelding_key = d.ins_discipline_key)
OR (k.mld_kenmerk_niveau = 'T' AND k.mld_stdmelding_key = d.ins_srtdiscipline_key))
AND k.mld_kenmerk_verwijder IS NULL
AND NOT EXISTS
(SELECT mld_kenmerk_volgnummer
FROM mld_kenmerk k1,
mld_srtkenmerk sk1,
mld_stdmelding std1,
ins_tab_discipline d1
WHERE sk1.mld_srtkenmerk_kenmerktype = 'M'
AND sk1.mld_srtkenmerk_key =
k1.mld_srtkenmerk_key
AND std1.mld_stdmelding_key =
defaultstdmelding
AND std1.mld_ins_discipline_key =
d1.ins_discipline_key
AND ((k1.mld_kenmerk_niveau = 'A' AND k1.mld_stdmelding_key IS NULL)
OR (k1.mld_kenmerk_niveau = 'S' AND k1.mld_stdmelding_key = std1.mld_stdmelding_key)
OR (k1.mld_kenmerk_niveau = 'D' AND k1.mld_stdmelding_key = d1.ins_discipline_key)
OR (k1.mld_kenmerk_niveau = 'T' AND k1.mld_stdmelding_key = d1.ins_srtdiscipline_key))
AND k1.mld_kenmerk_verwijder IS NULL
AND k1.mld_kenmerk_volgnummer >
k.mld_kenmerk_volgnummer);
-- En nu dan?
IF l_default_disc IS NOT NULL
IF kkey IS NOT NULL
THEN
mld.notifybackoffice (l_new_key, 'MLDBHG', 2);
INSERT INTO fac_result (fac_result_sessionid,
fac_result_naam,
fac_result_waarde)
VALUES (psessionid,
'kenmerkpath',
'MLD\M' || to_char( TRUNC(newkey/1000), 'FM0000') || '___\M' || newkey || '\' || kkey || '\');
END IF;
mld.mld_nextworkflowstep (l_new_key, -1);
mld.mld_addautoorder(l_new_key);
mld.setmeldingstatus (newkey, 2, sender);
-- logging voor de mailserver..
INSERT INTO fac_result (fac_result_sessionid, fac_result_naam, fac_result_waarde)
VALUES (p_session_id, 'maillog', 'Mail geregistreerd onder melding ' || TO_CHAR (l_new_key));
IF stdm_default_disc IS NOT NULL
THEN
mld.notifybackoffice (newkey, 'MLDBHG', 2);
END IF;
END;
ELSE
-- Append note
INSERT INTO mld_melding_note (mld_melding_key
, mld_melding_note_omschrijving
, prs_perslid_key
, mld_melding_note_flag)
VALUES (l_existing_mld_key
, l_clean_body
, l_sender
, 1);
fac.trackaction ('MLDA2B'
, l_existing_mld_key
, l_sender
, NULL
, '#Notitie via email'); -- TODO testen of okay zo
UPDATE mld_melding
SET mld_melding_actiecode = 128 + 1
WHERE mld_melding_status != 5
AND mld_melding_key = l_existing_mld_key;
-- logging voor de mailserver..
INSERT INTO fac_result (fac_result_sessionid, fac_result_naam, fac_result_waarde)
VALUES (p_session_id, 'maillog', 'Notitie toegevoegd aan melding ' || TO_CHAR (l_existing_mld_key));
fac.writelog ('PROCESSEMAIL'
, 'I'
, 'Mail als notitie toegevoegd aan ' || l_existing_mld_key
, NULL);
l_new_key := l_existing_mld_key;
NULL;
END CASE;
IF errormsg IS NOT NULL
THEN
INSERT INTO fac_result (fac_result_sessionid,
fac_result_naam,
fac_result_waarde)
VALUES (psessionid, 'errormsg', errormsg);
END IF;
l_error_msg := NULL;
-- Alleen van een nieuwe melding bewaren we de originele mail body
l_error_msg := NULL;
IF l_existing_mld_key IS NULL
THEN
-- 6a. ORGMAIL kenmerk
BEGIN
SELECT k.mld_kenmerk_key
INTO l_kenmerk_key
FROM mld_kenmerk k
, mld_srtkenmerk sk
, mld_stdmelding std
, ins_tab_discipline d
WHERE mld_srtkenmerk_kenmerktype = 'M'
AND sk.mld_srtkenmerk_key = k.mld_srtkenmerk_key
AND std.mld_stdmelding_key = l_std_message_key
AND std.mld_ins_discipline_key = d.ins_discipline_key
AND ( (k.mld_kenmerk_niveau = 'A' AND k.mld_stdmelding_key IS NULL)
OR (k.mld_kenmerk_niveau = 'S' AND k.mld_stdmelding_key = std.mld_stdmelding_key)
OR (k.mld_kenmerk_niveau = 'D' AND k.mld_stdmelding_key = d.ins_discipline_key)
OR (k.mld_kenmerk_niveau = 'T' AND k.mld_stdmelding_key = d.ins_srtdiscipline_key))
AND k.mld_kenmerk_verwijder IS NULL
AND BITAND (k.mld_kenmerk_rolcode, 1) = 1
AND k.mld_kenmerk_code = '*ORGMAIL';
INSERT INTO fac_result (fac_result_sessionid, fac_result_naam, fac_result_waarde)
VALUES (p_session_id, 'kenmerkorgmailpath', 'MLD\M' || TO_CHAR (TRUNC (l_new_key / 1000), 'FM0000') || '___\M' || l_new_key || '\' || l_kenmerk_key || '\');
EXCEPTION
WHEN NO_DATA_FOUND
THEN
fac.writelog ('PROCESSEMAIL'
, 'I'
, 'Geen bijlagenkenmerk (code *ORGMAIL) voor origineel bericht geconstateerd.'
, l_error_msg);
WHEN TOO_MANY_ROWS
THEN
fac.writelog ('PROCESSEMAIL'
, 'W'
, 'Niet eenduidig bijlagenkenmerk (code *ORGMAIL) voor origineel bericht geconstateerd.'
, l_error_msg);
END;
END IF;
-- 6b. Attachment kenmerk, bij nieuwe en bestaande melding
BEGIN
SELECT k.mld_kenmerk_key
INTO l_kenmerk_key
FROM mld_kenmerk k
, mld_srtkenmerk sk
, mld_stdmelding std
, ins_tab_discipline d
WHERE mld_srtkenmerk_kenmerktype = 'M'
AND sk.mld_srtkenmerk_key = k.mld_srtkenmerk_key
AND std.mld_stdmelding_key = l_std_message_key
AND std.mld_ins_discipline_key = d.ins_discipline_key
AND ( (k.mld_kenmerk_niveau = 'A' AND k.mld_stdmelding_key IS NULL)
OR (k.mld_kenmerk_niveau = 'S' AND k.mld_stdmelding_key = std.mld_stdmelding_key)
OR (k.mld_kenmerk_niveau = 'D' AND k.mld_stdmelding_key = d.ins_discipline_key)
OR (k.mld_kenmerk_niveau = 'T' AND k.mld_stdmelding_key = d.ins_srtdiscipline_key))
AND k.mld_kenmerk_verwijder IS NULL
AND BITAND (k.mld_kenmerk_rolcode, 1) = 1
AND k.mld_kenmerk_code = '*MAILATT';
INSERT INTO fac_result (fac_result_sessionid, fac_result_naam, fac_result_waarde)
VALUES (p_session_id, 'kenmerkpath', 'MLD\M' || TO_CHAR (TRUNC (l_new_key / 1000), 'FM0000') || '___\M' || l_new_key || '\' || l_kenmerk_key || '\');
l_error_msg := NULL;
EXCEPTION
WHEN NO_DATA_FOUND
THEN
fac.writelog ('PROCESSEMAIL'
, 'I'
, 'Geen bijlagenkenmerk (code *MAILATT) voor bijlagen geconstateerd.'
, l_error_msg);
WHEN TOO_MANY_ROWS
THEN
fac.writelog ('PROCESSEMAIL'
, 'W'
, 'Niet eenduidig bijlagenkenmerk (code *MAILATT) voor bijlagen geconstateerd.'
, l_error_msg);
END;
EXCEPTION
WHEN OTHERS
THEN
fac.writelog ('PROCESSEMAIL'
, 'E'
, 'Error: ' || SQLERRM
, NULL);
INSERT INTO fac_result (fac_result_sessionid, fac_result_naam, fac_result_waarde)
VALUES (p_session_id, 'errormsg', 'Unexpected error'); -- zichtbaar voor de mailer
END processemail;
fac.writelog (
'PROCESSEMAIL',
'W',
'Mail kon niet verwerkt worden afzender: '
|| pfrom
|| '['
|| errormsg
|| ']',
'OTHERS (error '
|| SQLCODE
|| '/'
|| SUBSTR (SQLERRM, 1, 100)
|| ')');
INSERT INTO fac_result (fac_result_sessionid,
fac_result_naam,
fac_result_waarde)
VALUES (psessionid,
'errormsg',
'Database fout - Neem contact op met uw systeembeheerder');
END;
-- Is de meegegeven datum een feestdag
FUNCTION isdatefeestdag(p_date IN DATE, pCalendarId IN VARCHAR2 DEFAULT 'Default')
@@ -5772,7 +5564,7 @@ CREATE OR REPLACE PACKAGE BODY fac AS
month1 NUMBER;
month2 NUMBER;
BEGIN
IF (p_periode = 0 OR p_eenheid = 5)
IF p_periode = 0
THEN
RETURN p_date;
END IF;
@@ -6296,6 +6088,29 @@ CREATE OR REPLACE PACKAGE BODY fac AS
END IF;
END;
-- We garanderen maximaal 64 characters
-- We ondersteunen alleen nog maar 'MD5'
FUNCTION makehash (p_in VARCHAR2, method IN VARCHAR2 DEFAULT 'MD5')
RETURN VARCHAR2
IS
l_hash VARCHAR2 (2000);
BEGIN
l_hash := RAWTOHEX(UTL_RAW.cast_to_raw(DBMS_OBFUSCATION_TOOLKIT.MD5 (input_string=> p_in)));
RETURN l_hash;
END;
FUNCTION testhash (p_hash VARCHAR2, p_in VARCHAR2)
RETURN NUMBER
IS
BEGIN
IF p_hash = makehash(p_in, 'MD5')
THEN
RETURN 1;
ELSE
RETURN 0;
END IF;
END;
PROCEDURE createlikebookmark (pxmlnode IN VARCHAR2,
prefkey IN NUMBER)
IS
@@ -6502,42 +6317,14 @@ CREATE OR REPLACE PACKAGE BODY fac AS
COMMIT;
-- Heel soms voegt iemand een bijlage toe maar slaat het uiteindelijk niet goed op.
-- De fac_bijlagen_disk_directory wijst nog (relatief) naar de TEMP folder
-- die UTILS\gen_scheduler\gen_cleanup.js op een andere manier opruimt
DELETE FROM fac_bijlagen
WHERE fac_bijlagen_refkey = -1
AND fac_bijlagen_key = fac_bijlagen_root_key -- safety
AND fac_bijlagen_aanmaak < TRUNC (SYSDATE);
-- Wissen oude (gisteren) popups van Putorders.
UPDATE fac_notificatie n
SET n.fac_notificatie_status = BITAND(n.fac_notificatie_status, 255 - 8)
WHERE n.fac_notificatie_queue = 'DEFAULT'
AND BITAND (n.fac_notificatie_status, 8) = 8
AND n.fac_notificatie_datum < TRUNC(SYSDATE);
DELETE FROM fac_notificatie
WHERE fac_notificatie_queue = 'EXCHANGE'
AND fac_notificatie_datum < TRUNC(SYSDATE);
WHERE BITAND (n.fac_notificatie_status, 8) = 8
AND TRUNC (n.fac_notificatie_datum) < TRUNC (SYSDATE);
-- nu records deleten die niets meer doen
fac.cleannotifications();
-- Bij impliciete werkplekken horen er geen werkplekken te zijn zonder bezetting
-- Er waren echter (cust)scripts rond die wel de bezetting maar niet de werkplek zelf verwijderen
-- Dat met gepaste tegenzin gewoon automatisch doen.
IF fac.getsetting ('prs_werkplek_implicit') = '1' --impliciet
THEN
DELETE
FROM prs_werkplek pw
WHERE prs_werkplek_type = 0 -- van de flex afblijven voor de zekerheid
AND NOT EXISTS
(SELECT 1
FROM prs_perslidwerkplek ppw
WHERE ppw.prs_werkplek_key = pw.prs_werkplek_key);
END IF;
-- Import opschonen.
DECLARE
v_count NUMBER;

View File

@@ -1255,15 +1255,6 @@ CREATE OR REPLACE PACKAGE BODY ano AS
SET prs_perslid_apikey = 'TEST_' || dbms_utility.get_hash_value(prs_perslid_apikey , 0, power(2,24))
WHERE prs_perslid_apikey IS NOT NULL;
-- Deze weer kloppend maken voor als je lokaal gaat testen
UPDATE fac_setting
SET fac_setting_pvalue =
(SELECT prs_perslid_apikey
FROM prs_perslid
WHERE prs_perslid_oslogin = '_PUTORDERS')
WHERE fac_setting_pvalue IS NULL
AND fac_setting_name = 'puo_fclt_web_apikey';
DELETE FROM fac_imp_perslid;
-- Indien mogelijk de naam van contactpersoon overnemen van prs_perslid.
@@ -1330,7 +1321,6 @@ CREATE OR REPLACE PACKAGE BODY ano AS
WHERE bez_afspraak_bedrijf IS NOT NULL
AND bez_afspraak_bedrijf <> 'Anoniem';
-- Alleen de externe bedrijven
UPDATE prs_bedrijf
SET prs_bedrijf_naam = ano.naam(prs_bedrijf_naam, 10)
, prs_bedrijf_post_adres = ano.adres(prs_bedrijf_post_adres)
@@ -1345,8 +1335,7 @@ CREATE OR REPLACE PACKAGE BODY ano AS
, prs_bedrijf_email = ano.email(prs_bedrijf_email)
, prs_bedrijf_contact_persoon = ano.naam(prs_bedrijf_contact_persoon)
, prs_bedrijf_contact_telefoon = ano.telefoon(prs_bedrijf_contact_telefoon)
, prs_bedrijf_contact_fax = ano.telefoon(prs_bedrijf_contact_fax)
WHERE prs_bedrijf_intern IS NULL;
, prs_bedrijf_contact_fax = ano.telefoon(prs_bedrijf_contact_fax);
UPDATE prs_bedrijfadres
SET prs_bedrijfadres_url = ano.email(prs_bedrijfadres_url)

File diff suppressed because it is too large Load Diff

View File

@@ -91,7 +91,7 @@
o_ktable_kshowexpr OUT VARCHAR2
)
AS
l_module VARCHAR2 (4);
l_module VARCHAR2 (3);
BEGIN
l_module := pmodule;
o_kvtable_kniveau := NULL;
@@ -115,10 +115,6 @@
WHEN pmodule = 'FIN'
THEN o_kvtable := 'fin_kenmerkfactuur';
o_kvtable_refkey := 'fin_factuur_key';
WHEN pmodule = 'FINR'
THEN o_kvtable := 'fin_kenmerkfactregel';
o_kvtable_refkey := 'fin_factuurregel_key';
l_module := 'FIN';
WHEN pmodule = 'CIL' OR pmodule = 'SLE'
THEN o_kvtable := 'ins_kenmerkdeel';
o_kvtable_refkey := 'ins_deel_key';
@@ -169,7 +165,7 @@
l_kcolumnname_kkey VARCHAR2 (30);
l_kcolumnname_delete VARCHAR2 (30);
l_kcolumnname_showexpr VARCHAR2 (30);
l_module VARCHAR2 (4);
l_module VARCHAR2 (3);
BEGIN
IF p_optional = 1 AND p_ref_key IS NULL
THEN
@@ -392,7 +388,7 @@
p_waarde IN VARCHAR2,
p_multi IN NUMBER DEFAULT 0)
AS
l_module VARCHAR2 (4);
l_module VARCHAR2 (3);
l_sql_kenm VARCHAR2 (4500);
l_sql_upsert VARCHAR2 (4500);
l_rowsprocessed NUMBER DEFAULT 0;
@@ -468,7 +464,7 @@
p_niveau IN VARCHAR2,
p_waardekey IN NUMBER DEFAULT NULL)
AS
l_module VARCHAR2 (4);
l_module VARCHAR2 (3);
l_sql_delete VARCHAR2 (4500);
l_rowsprocessed NUMBER DEFAULT 0;
l_cursor_delete INTEGER DEFAULT DBMS_SQL.open_cursor;
@@ -514,7 +510,7 @@
FUNCTION getflexexprtype (pmodule IN VARCHAR2,
p_kenmerk_key IN NUMBER) RETURN VARCHAR2
IS
l_module VARCHAR2 (4);
l_module VARCHAR2 (3);
l_sql_expr VARCHAR2 (4500);
l_kenmerk_tablename VARCHAR2 (30);
l_kenmval_tablename VARCHAR2 (30);
@@ -549,7 +545,7 @@
FUNCTION getflexexpression (pmodule IN VARCHAR2,
p_kenmerk_key IN NUMBER) RETURN VARCHAR2
IS
l_module VARCHAR2 (4);
l_module VARCHAR2 (3);
l_sql_expr VARCHAR2 (4500);
l_kenmerk_tablename VARCHAR2 (30);
l_kenmval_tablename VARCHAR2 (30);
@@ -575,7 +571,7 @@
FUNCTION getflexshowexpr (pmodule IN VARCHAR2,
p_kenmerk_key IN NUMBER) RETURN VARCHAR2
IS
l_module VARCHAR2 (4);
l_module VARCHAR2 (3);
l_sql_expr VARCHAR2 (4500);
l_kenmerk_tablename VARCHAR2 (30);
l_kenmval_tablename VARCHAR2 (30);
@@ -645,7 +641,7 @@
END;
PROCEDURE evaluateflexexpressions (pmodule IN VARCHAR2, prefkey IN NUMBER, puserkey IN NUMBER, psavetodb IN NUMBER)
AS
l_module VARCHAR2 (4);
l_module VARCHAR2 (3);
l_sql_exprval VARCHAR2 (4500);
l_rowsprocessed NUMBER DEFAULT 0;
l_cursor_exprval NUMBER; -- INTEGER DEFAULT DBMS_SQL.open_cursor;
@@ -775,8 +771,7 @@
'Error binding flex-expression ' || pmodule|| ' kkey:' || expr.fac_kenmwaarden_kenmerk_key
|| ' type: ' || l_kenmerktype || ' val: ' || l_kenmerkwaarde
|| CHR(10) || SQLERRM
|| CHR(10) || l_sql_exprval
|| CHR(10) || 'Original: ' || l_expr);
|| CHR(10) || l_sql_exprval);
END;
END LOOP;
BEGIN
@@ -787,8 +782,7 @@
-20001,
'Error executing flex-expression ' || pmodule|| ' kkey:' || expr.fac_kenmwaarden_kenmerk_key
|| CHR(10) || SQLERRM
|| CHR(10) || l_sql_exprval
|| CHR(10) || 'Original: ' || l_expr);
|| CHR(10) || l_sql_exprval);
END;
IF expr.fac_kenmwaarden_kenmerktype = 'N'
THEN

View File

@@ -8,27 +8,6 @@
*
*/
/* Als tijdens een upgrade de PROCEDURE waittask loopt dan 'hangt' de package
recreate totdat de timeout van waittask optreedt (max 60 seconde).
Door hier even een willekeurige taak te starten eindigt waittask even
en hebben wij de kans te upgraden.
Van de PUTORDERS taak weten we dat het vrij onschuldig is als die een
keer wordt gestart zonder dat er eigenlijk iets te doen is.
In omgevingen waar de tasker niet draait zal geen fac_task record zijn
en dan doet dit statement ook niets.
*/
UPDATE fac_task
SET fac_task_nextrun = SYSDATE
WHERE fac_task_key =
(SELECT MIN (fac_task_key)
FROM fac_task tt, fac_cust tsko
WHERE tt.fac_cust_key = tsko.fac_cust_key
AND fac_cust_enabled > 0
AND BITAND (fac_task_flags, 1) = 1
AND fac_task_code = 'PUTORDERS');
-- Zodat de externe tasker het ziet:
COMMIT;
CREATE OR REPLACE PACKAGE tsk
AS
PROCEDURE registercust (p_customerid VARCHAR2 DEFAULT NULL,
@@ -54,6 +33,8 @@ AS
fac_schema fac_version.fac_version_schema%TYPE;
currentdb_schema VARCHAR2 (64);
tsksql VARCHAR2 (4000);
cursor_name INTEGER;
rows_processed INTEGER;
BEGIN
SELECT fac_version_cust,
fac_version_schema
@@ -80,7 +61,13 @@ AS
WHERE fac_cust_customerid = custid;
ELSE -- Remote register
tsksql := 'BEGIN ' || tsk_master_schema || '.tsk.registercust(:custid, :schema); END;';
EXECUTE IMMEDIATE tsksql USING selfid, fac_schema;
cursor_name := DBMS_SQL.open_cursor;
DBMS_SQL.PARSE (cursor_name, tsksql, DBMS_SQL.NATIVE);
DBMS_SQL.BIND_VARIABLE (cursor_name, ':custid', selfid);
DBMS_SQL.BIND_VARIABLE (cursor_name, ':schema', fac_schema);
rows_processed := DBMS_SQL.EXECUTE (cursor_name);
DBMS_SQL.CLOSE_CURSOR (cursor_name);
END IF;
END;
@@ -91,6 +78,8 @@ AS
selfid fac_version.fac_version_cust%TYPE;
tsksql VARCHAR2 (4000);
currentdb_schema VARCHAR2 (64);
cursor_name INTEGER;
rows_processed INTEGER;
BEGIN
SELECT fac_version_cust INTO selfid FROM fac_version;
tsk_master_schema := fac.getsetting ('tsk_master_schema');
@@ -110,7 +99,13 @@ AS
END;
ELSE -- start remote tasker
tsksql := 'BEGIN ' || tsk_master_schema || '.tsk.registertask(:taskcode, :custid); END;';
EXECUTE IMMEDIATE tsksql USING p_taskcode, selfid;
cursor_name := DBMS_SQL.open_cursor;
DBMS_SQL.PARSE (cursor_name, tsksql, DBMS_SQL.NATIVE);
DBMS_SQL.BIND_VARIABLE (cursor_name, ':custid', selfid);
DBMS_SQL.BIND_VARIABLE (cursor_name, ':taskcode', p_taskcode);
rows_processed := DBMS_SQL.EXECUTE (cursor_name);
DBMS_SQL.CLOSE_CURSOR (cursor_name);
END IF;
END;
@@ -123,6 +118,8 @@ AS
selfid fac_version.fac_version_cust%TYPE;
tsksql VARCHAR2 (4000);
currentdb_schema VARCHAR2 (64);
cursor_name INTEGER;
rows_processed INTEGER;
BEGIN
SELECT fac_version_cust INTO selfid FROM fac_version;
tsk_master_schema := fac.getsetting ('tsk_master_schema');
@@ -138,7 +135,14 @@ AS
WHERE fac_cust_customerid = COALESCE(p_customerid, selfid));
ELSE -- start remote tasker
tsksql := 'BEGIN ' || tsk_master_schema || '.tsk.starttask(:taskcode, :nextrun, :custid); END;';
EXECUTE IMMEDIATE tsksql USING p_taskcode, p_nextrun, selfid;
cursor_name := DBMS_SQL.open_cursor;
DBMS_SQL.PARSE (cursor_name, tsksql, DBMS_SQL.NATIVE);
DBMS_SQL.BIND_VARIABLE (cursor_name, ':custid', selfid);
DBMS_SQL.BIND_VARIABLE (cursor_name, ':taskcode', p_taskcode);
DBMS_SQL.BIND_VARIABLE (cursor_name, ':nextrun', p_nextrun);
rows_processed := DBMS_SQL.EXECUTE (cursor_name);
DBMS_SQL.CLOSE_CURSOR (cursor_name);
END IF;
END;
@@ -166,8 +170,7 @@ AS
RETURN;
END IF;
DBMS_SESSION.SLEEP(pinterval); -- Dit maakt dat in de Oracle statistics allerlei timer events
-- hoog scoren in 'Top 5 Timed Events' Dat is verder niet erg.
DBMS_SESSION.SLEEP(pinterval);
END LOOP;
END;
END tsk;

File diff suppressed because it is too large Load Diff

View File

@@ -47,7 +47,13 @@ COMMIT;
WHENEVER SQLERROR EXIT;
BEGIN
-- Unused; remove in 2025.3
-- Unused; remove in 2025.2
DEFINE_SETTING('PUO', 0001, 'WEB_FACTAB', 'puo_custorders' , 'boolean' , 'false' , 'UNUSED! true = use customer orderqueue')
DEFINE_SETTING('FAC', 0001, 'WEB_FACFAC', 'openai_model' , 'string' , 'gpt-4o' , 'UNUSED! Default OpenAI language model to use')
DEFINE_SETTING('FAC', 0001, 'WEB_FACFAC', 'openai_model_large_context' , 'string' , '' , 'UNUSED! Fallback model for prompts with larger contexts')
DEFINE_SETTING('FAC', 0001, 'WEB_FACFAC', 'openai_apikey' , 'string' , 'sk-proj-yzeVEAimM50pGzoPSTdmT3BlbkFJM3cBKKfpo0PVEEyBYJwR', 'UNUSED! OpenAI APIKEY for AI services')
DEFINE_SETTING('FAC', 0001, 'WEB_FACFAC', 'openai_organization' , 'string' , 'org-6M9EiAUYLBepI30skvLFk39B', 'UNUSED! OpenAI Organization for AI services')
DEFINE_SETTING('MLD', 0001, 'WEB_PRSSYS', 'mld_opdr_confirm_for_send' , 'number' , '0' , 'Ask confirmation before sending an e-Order to a supplier (0=do not ask| 1=ask)')
-- \Unused
DEFINE_SETTING('FAC', 0000, 'WEB_FACFAC', 'fac_otap' , 'string' , 'P' , 'OTAP environment. custenv.wsc overrule only')
@@ -63,7 +69,6 @@ DEFINE_SETTING('FAC', 0001, 'WEB_FACFAC', 'licensed_fe_users'
DEFINE_SETTING('FAC', 0001, 'WEB_FACFAC', 'licensed_key_users' , 'number' , '0' , 'Number of licensed key users')
DEFINE_SETTING('FAC', 0001, 'WEB_FACFAC', 'licensed_device_users' , 'number' , '0' , 'Number of licensed device users')
DEFINE_SETTING('FAC', 0001, 'WEB_FACFAC', 'licensed_passive_users' , 'number' , '0' , 'Number of licensed passive users')
DEFINE_SETTING('FAC', 0001, 'WEB_FACFAC', 'licensed_templates' , 'string' , 'basic,generic' , 'Licensed bedrijfadres templates (comma separated)')
DEFINE_SETTING('PUO', 0000, 'WEB_FACTAB', 'tsk_master_schema' , 'string' , '' , 'Tasker master schema name (not necessarily customerId)')
DEFINE_SETTING('PUO', 0000, 'WEB_FACTAB', 'tsk_extra_folders' , 'array' , '' , 'Tasker extra folders to start CUST tasks (future use))')
@@ -117,7 +122,6 @@ DEFINE_SETTING('FAC', 0001, 'WEB_FACFAC', 'iLearning_enabled'
DEFINE_SETTING('FAC', 0001, 'WEB_FACTAB', 'language_toggles' , 'array' , 'NL' , 'Allow language toggle for alternate languages')
DEFINE_SETTING('FAC', 0001, 'WEB_FACFAC', 'login_pda_url' , 'string' , 'appl/aut/login.asp' , 'url providing login-services when pda detected. Future use')
DEFINE_SETTING('FAC', 0001, 'WEB_FACFAC', 'login_url' , 'string' , 'appl/aut/login.asp' , 'url providing login-services')
DEFINE_SETTING('FAC', 0001, 'WEB_FACFAC', 'm2m_enabled' , 'number' , '0' , 'Is Facilitor Mail2Melding configured {0=disabled | 1=enabled}')
DEFINE_SETTING('FAC', 0001, 'WEB_FACFAC', 'mobile_enabled' , 'number' , '0' , 'Is Facilitor Mobile available {0=disabled | 1=web only enabled | 2=Nativescript app only enabled | 3=web+app enabled}')
DEFINE_SETTING('FAC', 0001, 'WEB_FACFAC', 'multi_language_option' , 'number' , '0' , 'Enable multi language')
DEFINE_SETTING('FAC', 0001, 'WEB_FACTAB', 'prs_allow_impersonate' , 'boolean' , 'false' , 'Allow impersonation by PRSSYS')
@@ -205,10 +209,8 @@ DEFINE_SETTING('FAC', 0001, 'WEB_FACTAB', 'fac_msxml2domdocument'
DEFINE_SETTING('FAC', 0001, 'WEB_FACTAB', 'fac_tamper_check' , 'number' , '255' , 'Perform tampercheck on save')
DEFINE_SETTING('FAC', 0001, 'WEB_FACTAB', 'fac_reserved_number1' , 'number' , '0' , 'reserved_number1 (reserved and unused)')
DEFINE_SETTING('FAC', 0001, 'WEB_FACTAB', 'fac_reserved_number2' , 'number' , '0' , 'reserved_number2 (reserved and unused)')
DEFINE_SETTING('FAC', 0001, 'WEB_FACTAB', 'fac_reserved_number3' , 'number' , '0' , 'reserved_number3 (reserved and unused)')
DEFINE_SETTING('FAC', 0001, 'WEB_FACTAB', 'fac_reserved_string1' , 'string' , '' , 'reserved_string1 (reserved and unused)')
DEFINE_SETTING('FAC', 0001, 'WEB_FACTAB', 'fac_reserved_string2' , 'string' , '' , 'reserved_string2 (reserved and unused)')
DEFINE_SETTING('FAC', 0001, 'WEB_FACTAB', 'fac_reserved_string3' , 'string' , '' , 'reserved_string3 (reserved and unused)')
DEFINE_SETTING('FAC', 0001, 'WEB_FACTAB', 'fac_server_timezone' , 'string' , 'Europe/Amsterdam' , 'The timezone of the database-server')
DEFINE_SETTING('FAC', 0001, 'WEB_PRSSYS', 'fac_t_endofworkday' , 'float' , '17' , 'End time (hour, decimal) of a working day')
DEFINE_SETTING('FAC', 0001, 'WEB_PRSSYS', 'fac_t_startofworkday' , 'float' , '8' , 'Start time (hour, decimal) of a working day')
@@ -232,7 +234,6 @@ DEFINE_SETTING('FAC', 0001, 'WEB_FACTAB', 'impAllowedExt'
DEFINE_SETTING('FAC', 0001, 'WEB_FACTAB', 'kto_srtdiscipline_key' , 'number' , '-1' , 'key van KTO (klanttevredenheidsonderzoek) vakgroeptype')
DEFINE_SETTING('FAC', 0001, 'WEB_FACTAB', 'logcenter_url' , 'string' , 'https://logcentre.facilitor.nl/?SSO=CUSTOMER', 'Logcenter url')
DEFINE_SETTING('FAC', 0001, 'WEB_FACTAB', 'menu_image_path' , 'string' , NULL , 'relative! path to folder storing menu pictures and files')
DEFINE_SETTING('FAC', 0001, 'WEB_FACTAB', 'menu_image_url_path' , 'string' , NULL , 'relative! path to folder storing menu files which are used as url')
DEFINE_SETTING('FAC', 0001, 'WEB_PRSSYS', 'mobile_favorite_menu_items' , 'number' , '3' , 'This is how many of the favorite menuitems are shown on the mobile portal')
DEFINE_SETTING('FAC', 0001, 'WEB_PRSSYS', 'mobile_password_exp' , 'number' , '15' , 'time to enter the login code received on the mobile in minutes.')
DEFINE_SETTING('FAC', 0001, 'WEB_FACTAB', 'os_logon' , 'boolean' , 'false' , 'enable NT domain logon {true | false}')
@@ -247,8 +248,7 @@ DEFINE_SETTING('FAC', 0001, 'WEB_FACTAB', 'prs_login_lockout_delayfactor'
DEFINE_SETTING('FAC', 0001, 'WEB_FACTAB', 'prs_password_hash_factor' , 'number' , '17' , 'Password hash workfactor (2^x)')
DEFINE_SETTING('FAC', 0001, 'WEB_FACTAB', 'prs_password_otp_mode' , 'number' , '0' , 'OTP mode (0=off,+1=prssys only, +2=everyone with password, +4=force 2-factor auth)')
DEFINE_SETTING('FAC', 0001, 'WEB_FACTAB', 'qr_auth_expire' , 'number' , '5' , 'Minutes QRC-code is valid (default 5)')
DEFINE_SETTING('FAC', 0001, 'WEB_PRSSYS', 'qr_color' , 'number' , '5452544' , 'QRC color')
DEFINE_SETTING('FAC', 0001, 'WEB_PRSSYS', 'qr_bggray_color' , 'number' , '255' , 'QRC background gray color (0-255)')
DEFINE_SETTING('FAC', 0001, 'WEB_FACTAB', 'qr_color' , 'number' , '5452544' , 'QRC color')
DEFINE_SETTING('FAC', 0001, 'WEB_FACTAB', 'qrc_enable' , 'number' , '0' , 'Enable QRC-authentication feature (1) or not (0)')
DEFINE_SETTING('FAC', 0001, 'WEB_FACTAB', 'refreshfromdump_oracle_login' , 'string' , '' , 'oracle login un/pw')
DEFINE_SETTING('FAC', 0001, 'WEB_FACTAB', 'self_register' , 'number' , '0' , 'Can user self-register? ( 0 disable )')
@@ -443,7 +443,7 @@ DEFINE_SETTING('FAC', 0001, 'WEB_PRSSYS', 'anonymize_mode'
DEFINE_SETTING('FAC', 0001, 'WEB_PRSSYS', 'datapurge_period' , 'number' , '99' , 'Period (years) to keep dynamic data stored in database. Older data wil be permanently purged')
DEFINE_SETTING('FAC', 0001, 'WEB_PRSSYS', 'aut_login_strip_domain' , 'number' , '1' , 'Strip AD domain from login name { 0=no, 1=yes (default) } (Future use)')
DEFINE_SETTING('FAC', 0001, 'WEB_PRSSYS', 'auth_edit_advanced' , 'boolean' , 'false' , 'Start autorisation popup dialog in advanced mode')
DEFINE_SETTING('FAC', 0001, 'WEB_PRSSYS', 'buttons_in_hamburger' , 'array' , 'fa-print,fa-envelope,fa-table,fa-fclt-refresh,fa-columns,fa-share-square,fa-file-download,fa-file-upload,fa-megaphone,fa-trash-can-xmark', 'Hide these frameheader buttons behind a hamburger.')
DEFINE_SETTING('FAC', 0001, 'WEB_PRSSYS', 'buttons_in_hamburger' , 'array' , 'fa-print,fa-envelope,fa-table,fa-fclt-refresh,fa-columns,fa-share-square,fa-file-download,fa-file-upload', 'Hide these frameheader buttons behind a hamburger.')
DEFINE_SETTING('FAC', 0001, 'WEB_PRSSYS', 'can_selfapprove' , 'number' , '999999' , 'I can approve myself below or equal this limit or someone else must approve always above this limit')
DEFINE_SETTING('FAC', 0001, 'WEB_PRSSYS', 'checkBrowser' , 'number' , '0' , 'Check for IE6 at login (1) or not.')
DEFINE_SETTING('FAC', 0001, 'WEB_PRSSYS', 'currency_icon' , 'string' , 'fa-euro-sign' , 'Currency icon. Use fa-money-bill-wave for generic')
@@ -553,12 +553,9 @@ DEFINE_SETTING('FAC', 0001, 'WEB_PRSSYS', 'udr_graph_gauge_colors'
DEFINE_SETTING('FAC', 0001, 'WEB_PRSSYS', 'udr_graph_pie_colors' , 'string' , '[''#003478'',''#6685ae'',''#e37b00'',''#0b94f9'',''#81ce58'',''#f3d736'',''#acaa65'',''#a222c4'',''#5b9bc3'',''#1c40eb'',''#037011'',''#d192e7'',''#f88625'',''#93b89f'',''#bf6b87'',''#a2b41a'',''#f76979'',''#f41181'',''#73eb59'',''#32d1d0'',''#a00bed'',''#66fe6b'',''#b94d5b'']' , 'Colors being used for pie charts (string!)')
DEFINE_SETTING('FAC', 0001, 'WEB_PRSSYS', 'use_wildcard_with_suggests' , 'number' , '2' , 'Use wildcards for all sugest fields (0=no wildcard, 1=text*, 2=*text*)')
DEFINE_SETTING('FAC', 0001, 'WEB_PRSSYS', 'usrrap_refreshrate' , 'number' , '60' , 'time between auto refresh of selected usrraps (seconds)')
DEFINE_SETTING('FAC', 0001, 'WEB_FACTAB', 'ai_enabled' , 'number' , '0' , 'Enable AI (65535=all (incl. future) AI features) to generate;' || CHR(10) || '&1; subjects for calls from their description (configuration needed)' || CHR(10) || '&2; FAQs for calls' || CHR(10) || '&4; text for closing calls' || CHR(10) || '&8; new order descriptions' || CHR(10) || '&16; portal messages when publishing calls')
DEFINE_SETTING('FAC', 0001, 'WEB_FACFAC', 'ai_enabled' , 'number' , '0' , 'Enable AI (65535=all (incl. future) AI features)' || CHR(10) || '&1; generate subjects for calls from their description (configuration needed)' || CHR(10) || '&2; generate FAQs for calls' || CHR(10) || '&4; generate text for closing calls' || CHR(10) || '&8; generate new order descriptions')
DEFINE_SETTING('FAC', 0001, 'WEB_FACTAB', 'ai_endpoint' , 'string' , 'https://ai-fac-prod-openai-studio.openai.azure.com/openai/deployments/ai-fac-prod-4o/chat/completions?api-version=2024-08-01-preview', 'AI API endpoint url')
DEFINE_SETTING('FAC', 0001, 'WEB_FACFAC', 'ai_apikey' , 'string' , 'CCV3nRxb3ohPwxlwPQBjGFWqDSPTilfLHjsfhGBRjOEmlfgRtRzwJQQJ99AKACfhMk5XJ3w3AAABACOG7TGx', 'APIKEY for AI services')
DEFINE_SETTING('FAC', 0001, 'WEB_FACTAB', 'ai_mail_base_prompt_outputformat' , 'string' , '' , 'AI base prompt for e-mails. Describes desired output format 0 (future use)')
DEFINE_SETTING('FAC', 0001, 'WEB_FACTAB', 'ai_mail_base_prompt1' , 'string' , '' , 'AI base prompt for e-mails. Describes format 1 (future use)')
DEFINE_SETTING('FAC', 0001, 'WEB_FACTAB', 'ai_mail_base_prompt2' , 'string' , '' , 'AI base prompt for e-mails. Describes format 2 (future use)')
DEFINE_SETTING('FAC', 0001, 'WEB_FACTAB', 'ai_apikey' , 'string' , 'CCV3nRxb3ohPwxlwPQBjGFWqDSPTilfLHjsfhGBRjOEmlfgRtRzwJQQJ99AKACfhMk5XJ3w3AAABACOG7TGx', 'APIKEY for AI services')
DEFINE_SETTING('MSG', 0001, 'WEB_PRSSYS', 'msg_photo_size' , 'string' , 'r512x512' , 'Resize uploads to this maximum MSG photo size. Ex: r200x150')
DEFINE_SETTING('MSG', 0001, 'WEB_PRSSYS', 'msg_max_history' , 'number' , '30' , 'Show messages no longer than msg_max_history days ago')
DEFINE_SETTING('FAQ', 0001, 'WEB_PRSSYS', 'faq_kennisbank_popup' , 'number' , '3' , 'Show kennisbank popup {0=no | 01=1=FE | 10=2=FO | 11=3=FE+FO}')
@@ -566,7 +563,6 @@ DEFINE_SETTING('FAQ', 0001, 'WEB_PRSSYS', 'faq_max_results'
DEFINE_SETTING('FAQ', 0001, 'WEB_PRSSYS', 'faq_max_results_mld' , 'number' , '0' , 'Initial number of faq items when editing an issue. 0 = show all.')
DEFINE_SETTING('FAQ', 0001, 'WEB_PRSSYS', 'faq_max_results_bez' , 'number' , '0' , 'Initial number of faq items when editing an appointment. 0 = show all.')
DEFINE_SETTING('FAQ', 0001, 'WEB_PRSSYS', 'faq_search_hints_only' , 'number' , '0' , 'When searching through the Knowledge base, only find matching hints {1=true | 0=false}')
DEFINE_SETTING('FAQ', 0001, 'WEB_PRSSYS', 'faq_default_visibility' , 'number' , '3' , 'Set default visibility when creating a new knowledgebase item {1=Selfservice | 2=Professionals | 3=Selfservide and Profesionals')
DEFINE_SETTING('FIN', 0001, 'WEB_PRSSYS', 'fin_bof_mag_editen' , 'number' , '1' , 'Users/Approvers with FINBOF rights have edit possibilities {0=no edit (only approve) | 1=edit (default)}')
DEFINE_SETTING('FIN', 0001, 'WEB_PRSSYS', 'fin_btw_default' , 'number' , '3' , 'Standaard btw tarief (1=NL|Nul, 2=NL|Laag, 3=NL|Hoog, enz.)')
DEFINE_SETTING('FIN', 0001, 'WEB_PRSSYS', 'fin_enable_afwijzen' , 'number' , '1' , 'Is it possible to reject an invoice or not {0=Afwijzen unavailable | 1=Afwijzen available}')
@@ -630,7 +626,6 @@ DEFINE_SETTING('MLD', 0001, 'WEB_PRSSYS', 'mld_allow_parentmelding'
DEFINE_SETTING('MLD', 0001, 'WEB_PRSSYS', 'mld_archive_by_gui' , 'boolean' , 'false' , 'Can a call be archived by a button (true) or just by export (false)')
DEFINE_SETTING('MLD', 0001, 'WEB_PRSSYS', 'mld_opdr_archive_by_gui' , 'boolean' , 'false' , 'Can an order be archived by a button (true) or not (false)')
DEFINE_SETTING('MLD', 0001, 'WEB_PRSSYS', 'mld_ask_for_orders' , 'boolean' , 'true' , 'ask for immediate order input after call entry { true | false }')
DEFINE_SETTING('MLD', 0001, 'WEB_PRSSYS', 'mld_assume_ok_days' , 'number' , '0' , 'Number of days after the call will be automatically closed, if no response is given')
DEFINE_SETTING('MLD', 0001, 'WEB_PRSSYS', 'mld_autolink_regexp' , 'string' , '(?:(?:melding [A-Z]*)|(?:[A-Z \,]+\#[A-Z]*))(\d+)', 'Automatically turn MLD-references in texts into clickable links eg. (?:(?:melding [A-Z]*)|(?:[A-Z\,\n]+\#[A-Z]*))(\d+)')
DEFINE_SETTING('MLD', 0001, 'WEB_PRSSYS', 'mld_behandelteam_canclose' , 'number' , '1' , 'Close authorization depending on (0=discipline | 1=discipline en treatment team (default))')
DEFINE_SETTING('MLD', 0001, 'WEB_PRSSYS', 'mld_bo_sort_descending' , 'number' , '0' , 'Sort ordering of mld_melding for BO (0 = most urgent first | 1 = last made first | 2 = most recent activity first)')
@@ -653,7 +648,7 @@ DEFINE_SETTING('MLD', 0001, 'WEB_PRSSYS', 'mld_first_close_orders'
DEFINE_SETTING('MLD', 0001, 'WEB_PRSSYS', 'mld_fixdatums_marge' , 'number' , '7' , 'WEB_MLDMSU can fix invoer/afgemeld dates')
DEFINE_SETTING('MLD', 0001, 'WEB_PRSSYS', 'mld_fo_can_assign_team' , 'number' , '0' , 'Allow assignment of a new call to a treatment team by the frontoffice {0=no | 1=yes}')
DEFINE_SETTING('MLD', 0001, 'WEB_PRSSYS', 'mld_fo_default_user' , 'boolean' , 'false' , 'Use current user as default caller, { true=user default | false=empty default }')
DEFINE_SETTING('MLD', 0001, 'WEB_PRSSYS', 'mld_fof_canFlexChange' , 'boolean' , 'false' , 'TODO is dit het dan? ***MLDFOF kan FE-flexkenmerken ook na acceptatie nog wijzigen***')
DEFINE_SETTING('MLD', 0001, 'WEB_PRSSYS', 'mld_fof_canFlexChange' , 'boolean' , 'false' , 'FOF flex kenmerken laten wijzigen >800 900<=.')
DEFINE_SETTING('MLD', 0001, 'WEB_PRSSYS', 'mld_forward_all' , 'number' , '1' , 'Forward a complain 0= to a complain with the same srtdiscipline 1= (default) to a complain for all srtdisciplines')
DEFINE_SETTING('MLD', 0001, 'WEB_PRSSYS', 'mld_forward_auto_fill' , 'number' , '0' , 'Use current discipline and call (and "assigned to") as defaults while forwarding. {0=no | 1=yes}')
DEFINE_SETTING('MLD', 0001, 'WEB_PRSSYS', 'mld_forward_can_assign' , 'number' , '0' , 'Allow assignment to a specific handler-person while forwarding a call {0=no | 1=yes}')
@@ -684,7 +679,6 @@ DEFINE_SETTING('MLD', 0001, 'WEB_PRSSYS', 'mld_object_filled_in_alert'
DEFINE_SETTING('MLD', 0001, 'WEB_PRSSYS', 'mld_omschrijving_restrict_edit' , 'number' , '0' , 'Het veld omschrijving alleen in te vullen als nog te accepteren (0=no, 1=yes)')
DEFINE_SETTING('MLD', 0001, 'WEB_PRSSYS', 'mld_opdr_alt_kostensoort' , 'number' , '0' , 'Enable use of alternative cost category {0|1} default 0')
DEFINE_SETTING('MLD', 0001, 'WEB_PRSSYS', 'mld_opdr_approval_all' , 'number' , '0' , 'Goedkeuring opdracht vereist t.o.v. eerstvolgende limiet (=0 default) of t.o.v. totale kosten (in n keer)(=1)')
DEFINE_SETTING('MLD', 0001, 'WEB_PRSSYS', 'mld_pessismistisch_hergoedkeuren' , 'number' , '0' , 'Hergoedkeuren als de opdrachtkosten boven de bestellimiet, of boven de goedkeuringsvrijstelling komen {1=ja | 0=alleen als beiden waar zijn}')
DEFINE_SETTING('MLD', 0001, 'WEB_PRSSYS', 'mld_opdr_validate_by_substitute' , 'number' , '1' , 'Validate by substitute {0=no | 1=yes default}')
DEFINE_SETTING('MLD', 0001, 'WEB_PRSSYS', 'mld_opdr_ask_mail_if_unknown' , 'number' , '0' , 'Workaround for sending order by e-mail to ''externe relatie'' if address unknown (0=disabled default | 1=enabled)')
DEFINE_SETTING('MLD', 0001, 'WEB_PRSSYS', 'mld_opdr_close' , 'number' , '0' , 'Can close orders in order overview window without seeing order details? {0=yes default | 1=no}')
@@ -712,7 +706,6 @@ DEFINE_SETTING('MLD', 0001, 'WEB_PRSSYS', 'mld_pgb_fiattering'
DEFINE_SETTING('MLD', 0001, 'WEB_PRSSYS', 'mld_photo_size' , 'string' , 'r512x512' , 'Resize uploads to this maximum MLD photo size. Ex: r200x150')
DEFINE_SETTING('MLD', 0001, 'WEB_PRSSYS', 'mld_plandate_in_list' , 'number' , '0' , '*Show Planned Date as a column in backoffice overview orders {0=no | 1=yes}')
DEFINE_SETTING('MLD', 0001, 'WEB_PRSSYS', 'mld_print_loc_address' , 'number' , '0' , 'Show location address details in backoffice overview calls {0=no | 1=on print | 2=address+postal code+building} | 3=address+postal code+city')
DEFINE_SETTING('MLD', 0001, 'WEB_PRSSYS', 'mld_uses_requestor_location' , 'number' , '1' , 'Use the location of the requestor to overwrite the location of a new issue {0=no | 1=yes(default)}')
DEFINE_SETTING('MLD', 0001, 'WEB_PRSSYS', 'mld_processing_group_all' , 'number' , '1' , 'Een behandelteam mag gekozen worden uit dezelfde srtdiscipline {0} of uit alle srtdiscipline {1=default})')
DEFINE_SETTING('MLD', 0001, 'WEB_PRSSYS', 'mld_reference_days' , 'number' , '100' , 'Het aantal dagen terug in de tijd van waaraf eigen referentie getoond dienen te worden')
DEFINE_SETTING('MLD', 0001, 'WEB_PRSSYS', 'mld_rejected_is_open' , 'number' , '0' , 'show rejected meldingen as Open FE/FO {1=Open | 0=Closed}.')
@@ -720,7 +713,6 @@ DEFINE_SETTING('MLD', 0001, 'WEB_PRSSYS', 'mld_restrict_mobile_to_me'
DEFINE_SETTING('MLD', 0001, 'WEB_PRSSYS', 'mld_sel_single_closingtext' , 'number' , '1' , 'Auto select closing text when just one available {2=yes | 1=no (default)}')
DEFINE_SETTING('MLD', 0001, 'WEB_PRSSYS', 'mld_selector_mode' , 'number' , '0' , 'Selector mode vakgroep/melding voor de frontend. {0(=default)=vakgroep en melding (beide eerst te kiezen), 1=vakgroep readonly, 2=alleen melding}')
DEFINE_SETTING('MLD', 0001, 'WEB_PRSSYS', 'mld_show_cards' , 'number' , '5' , 'Number of order cards shown under a contractor in order plan board {nn=number | -1=all}')
DEFINE_SETTING('MLD', 0001, 'WEB_PRSSYS', 'mld_bord_compact_threshold_columns' , 'number' , '6' , 'Number of columns after which the board will suppress empty columns {-1=never | 0=always | nn=number of columns}')
DEFINE_SETTING('MLD', 0001, 'WEB_PRSSYS', 'mld_show_endtime' , 'number' , '1' , 'Show endtime for complaints (0=only date, 1=with endtime)')
DEFINE_SETTING('MLD', 0001, 'WEB_PRSSYS', 'mld_show_parent_attachments' , 'boolean' , 'true' , 'Show the attachments of parent calls {true (default) | false}')
DEFINE_SETTING('MLD', 0001, 'WEB_PRSSYS', 'mld_show_search_similar' , 'number' , '0' , 'Show a link to similar calls with call details {0=no | 1=yes}')

View File

@@ -118,10 +118,10 @@ CREATE_TABLE(fac_groep, 0)
NUMBER(10)
CONSTRAINT fac_k_fac_groep_key PRIMARY KEY,
fac_groep_omschrijving
VARCHAR2(60)
VARCHAR2(30)
CONSTRAINT fac_c_fac_groep_omschrijving CHECK(fac_groep_omschrijving IS NOT NULL),
fac_groep_upper
VARCHAR2(60),
VARCHAR2(30),
-- CONSTRAINT fac_c_fac_groep_upper CHECK(fac_groep_upper IS NOT NULL),
fac_groep_collega
NUMBER(1)
@@ -642,10 +642,6 @@ CREATE_TABLE(fac_notificatie, 0)
// REFERENCES prs_bedrijfadres(prs_bedrijfadres_key) ON DELETE CASCADE,
fac_notificatie_receiver_email
VARCHAR2(255),
fac_notificatie_email_cc
VARCHAR2(4000),
fac_notificatie_email_bcc
VARCHAR2(4000),
fac_notificatie_receiver_phone
VARCHAR2(30),
fac_notificatie_oms
@@ -877,7 +873,7 @@ CREATE_TABLE(fac_activiteit, 0)
fac_activiteit_eenheid -- 1=dagelijks, 2=wekelijk, 3=maandelijk, 4=jaarlijks, null=eenmalig. Niet beschikbaar: uurlijks(0)
NUMBER(1)
DEFAULT(1)
CONSTRAINT fac_c_fac_activiteit_eenheid CHECK (fac_activiteit_eenheid IN (1,2,3,4,5) OR fac_activiteit_eenheid IS NULL),
CONSTRAINT fac_c_fac_activiteit_eenheid CHECK (fac_activiteit_eenheid IN (1,2,3,4) OR fac_activiteit_eenheid IS NULL),
fac_activiteit_bits -- details, afhankelijk van de mode (mag best null zijn)
NUMBER(4),
fac_activiteit_periode
@@ -1046,8 +1042,6 @@ CREATE_TABLE(fac_imp_onrgoed1, 0)
, alg_locatie_omschrijving VARCHAR2(60)
, alg_gebouw_code VARCHAR2(12)
, alg_gebouw_naam VARCHAR2(60)
, alg_gebouw_adres VARCHAR2(50)
, alg_gebouw_postcode VARCHAR2(12)
, alg_srtgebouw_omschrijving VARCHAR2(30)
, alg_locatie_verantw VARCHAR2(30)
, alg_locatie_verantw_tel VARCHAR2(20)
@@ -1103,7 +1097,6 @@ CREATE_TABLE(fac_imp_mld, 0)
, mld_stdmelding_slabewaken NUMBER(1)
, mld_stdmelding_externnr VARCHAR2(256)
, mld_stdmelding_image VARCHAR2(255)
, mld_stdmelding_objects_allowed NUMBER(1)
);
CREATE_TABLE(fac_imp_mldafmtxt, 0)
@@ -1394,7 +1387,7 @@ CREATE_TABLE(fac_imp_ext_bedrijf, 0)
prs_overeenkomst_nr VARCHAR2 (30),
prs_overeenkomst_datum DATE,
prs_bedrijf_email VARCHAR2 (100),
prs_bedrijf_opmerking VARCHAR2 (4000),
prs_bedrijf_opmerking VARCHAR2 (320),
prs_dienst_omschrijving VARCHAR2 (60),
alg_locatie_code VARCHAR2 (10),
alg_gebouw_code VARCHAR2 (12),
@@ -1578,7 +1571,7 @@ CREATE_TABLE( fac_menuitems, 0)
fac_menuitems_groep NUMBER(1), /* 0=personal, 1=professional, 2=appmanagement, 3=mobile*/
fac_menuitems_label VARCHAR2 (30 CHAR) NOT NULL,
fac_menuitems_oms VARCHAR2 (60 CHAR),
fac_menuitems_module VARCHAR2 (3 CHAR),
fac_menuitems_module VARCHAR2 (3 BYTE),
fac_menuitems_url VARCHAR2 (60 CHAR),
fac_menuitems_srtdisc NUMBER(1),
fac_menuitems_disc NUMBER(1),
@@ -1655,8 +1648,6 @@ CREATE_TABLE(fac_nieuws, 0)
fac_nieuws_parentkey NUMBER(10) REFERENCES fac_nieuws(fac_nieuws_key) ON DELETE CASCADE
// Note: this column is defined in PRS_TAB.SRC
// prs_perslid_key NUMBER(10) REFERENCES prs_perslid(prs_perslid_key) ON DELETE SET NULL
// Note: this column is defined in MLD_TAB.SRC
// mld_melding_key NUMBER(10) REFERENCES mld_melding(mld_melding_key) ON DELETE SET NULL
);
CREATE_TABLE(fac_faq, 0)
@@ -1832,7 +1823,6 @@ CREATE_TABLE(fac_imp_flex, 0)
kenmerk_niveau VARCHAR2(255),
kenmerk_verplicht VARCHAR2(255),
kenmerk_groep VARCHAR2(255),
kenmerk_rolcode VARCHAR2(255),
kenmerk_volgnummer VARCHAR2(255),
kenmerk_default VARCHAR2(4000),
kenmerk_type VARCHAR2(255),
@@ -2113,16 +2103,12 @@ CREATE_TABLE(fac_email_setting, 0)
fac_email_setting_action VARCHAR2 (255),
fac_email_setting_aanmaak DATE DEFAULT SYSDATE,
fac_email_setting_expire DATE,
fac_email_setting_attachpath VARCHAR2 (255) DEFAULT '*flexfilespath',
fac_email_setting_attachpath VARCHAR2 (255),
fac_email_setting_attachext VARCHAR2(255),
fac_email_setting_reqattachext VARCHAR2(255),
fac_email_setting_attachmaxkb NUMBER(10), -- Kilobyte
fac_email_setting_loglevel NUMBER(3) DEFAULT 0 NOT NULL,
fac_email_setting_text VARCHAR2 (320), -- signaaltekst in onderwerpregel
fac_email_setting_opmerking VARCHAR2 (320),
fac_email_setting_ai_prompt VARCHAR2 (4000),
// Note: this column is defined in MLD_TAB.SRC
// mld_stdmelding_key NUMBER(10) REFERENCES mld_stdmelding(mld_stdmelding_key) ON DELETE CASCADE,
// Note: this column is defined in PRS_TAB.SRC
// prs_perslid_key_auth NUMBER(10) REFERENCES prs_perslid(prs_perslid_key)
CONSTRAINT fac_u_fac_email_setting_user UNIQUE(fac_email_setting_user, fac_email_setting_volgnr)
@@ -2163,8 +2149,7 @@ CREATE_TABLE(fac_imp_inspectie, 0) (
ins_srtcontrole_periode VARCHAR2 (7),
ins_srtcontrole_mode VARCHAR2 (1),
ins_srtcontrole_eenheid VARCHAR2 (1),
ins_srtcontrole_bits VARCHAR2 (4),
ctr_discipline_omschrijving VARCHAR2 (60)
ins_srtcontrole_bits VARCHAR2 (4)
);
-- AAIT#25547
@@ -2212,11 +2197,8 @@ CREATE_TABLE(fac_imp_cnt, 0)
bedrag_termijn NUMBER (11,2),
uurtarief NUMBER (6,2),
korting NUMBER (4,2),
locatiecode VARCHAR2 (10),
terreincode VARCHAR2 (12),
scope VARCHAR2 (1),
gebouwcode VARCHAR2 (12),
verdiepingcode NUMBER (3),
ruimtecode VARCHAR2 (20),
verlengen VARCHAR2 (1),
versie VARCHAR2 (10),
dienst VARCHAR2 (60),
@@ -2346,7 +2328,6 @@ CREATE_TABLE(faq_kenmerk,0)
faq_kenmerk_key NUMBER(10) CONSTRAINT faq_k_faq_kenmerk_key PRIMARY KEY,
faq_discipline_key NUMBER(10),
faq_kenmerk_volgnr NUMBER(3) NOT NULL,
faq_kenmerk_rolcode NUMBER(4) DEFAULT 7 NOT NULL,
faq_kenmerk_omschrijving VARCHAR2(50),
faq_kenmerk_upper VARCHAR2(50),
faq_kenmerk_code VARCHAR2(60),

View File

@@ -343,9 +343,7 @@ BEGIN
-- Kopieer direct naar statusinformatie op de portal indien van toepassing
-- Daarbij worden alle oude berichten (eerst) verwijderd
IF BITAND (:NEW.fac_notificatie_status, 1) = 1
AND :new.prs_perslid_key_receiver IS NOT NULL
AND :new.fac_notificatie_queue = 'DEFAULT'
IF BITAND (:NEW.fac_notificatie_status, 1) = 1 AND :new.prs_perslid_key_receiver IS NOT NULL
THEN
-- strip zodat we alleen de eerste regel overhouden
loms := SUBSTR(:NEW.fac_notificatie_oms, 1, 512);
@@ -414,7 +412,7 @@ BEGIN
OR :NEW.fac_notificatie_systeemadres IS NOT NULL
THEN
tsk.starttask(p_taskcode => 'PUTORDERS', p_nextrun => :NEW.fac_notificatie_notbefore);
ELSIF :NEW.fac_notificatie_queue = 'EXCHANGE'
ELSIF :NEW.fac_notificatie_queue = 'EXCHANGE' -- future use
THEN
tsk.starttask(p_taskcode => 'EXCHANGE', p_nextrun => :NEW.fac_notificatie_notbefore);
END IF;
@@ -587,11 +585,6 @@ CREATE_TRIGGER(fac_t_fac_tracking_b_i)
ON fac_tracking
COMPOUND TRIGGER
newkey fac_tracking.fac_tracking_key%TYPE;
srtkey fac_tracking.fac_srtnotificatie_key%TYPE;
refkey fac_tracking.fac_tracking_refkey%TYPE;
omschr fac_tracking.fac_tracking_oms%TYPE;
prskey fac_tracking.prs_perslid_key%TYPE;
notify_bedrijven BOOLEAN := FALSE;
BEFORE EACH ROW
IS
@@ -613,29 +606,21 @@ CREATE_TRIGGER(fac_t_fac_tracking_b_i)
ELSIF SUBSTR(:new.fac_tracking_oms, 1, 1) = '@' -- Technische adressen niet notificeren, wel personen
THEN
:new.fac_tracking_oms := SUBSTR(:new.fac_tracking_oms, 2);
newkey := :new.fac_tracking_key;
fac.notifytracking(:new.fac_srtnotificatie_key, :new.prs_perslid_key, :new.fac_tracking_oms, :new.fac_tracking_refkey, :new.fac_tracking_key);
-- geen newkey assignment zodat zo geen fac.notifytrackingbedrijven volgt
ELSE
fac.notifytracking(:new.fac_srtnotificatie_key, :new.prs_perslid_key, :new.fac_tracking_oms, :new.fac_tracking_refkey, :new.fac_tracking_key);
newkey := :new.fac_tracking_key;
notify_bedrijven := TRUE;
-- Alleen hier ook fac.notifytrackingbedrijven uitvoeren
END IF;
srtkey := :new.fac_srtnotificatie_key;
refkey := :new.fac_tracking_refkey;
prskey := :new.prs_perslid_key;
omschr := :new.fac_tracking_oms;
END BEFORE EACH ROW;
AFTER STATEMENT
IS
BEGIN
IF newkey IS NOT NULL
THEN
fac.notifytracking(srtkey, prskey, omschr, refkey, newkey);
IF notify_bedrijven
THEN
fac.notifytrackingbedrijven (newkey);
END IF;
END IF;
END AFTER STATEMENT;
END;
/
@@ -1144,12 +1129,4 @@ END;
-- END;
-- /
CREATE_TRIGGER(fac_t_fac_note_group_B_I)
BEFORE INSERT ON fac_note_group
FOR EACH ROW
BEGIN
UPDATE_PRIMARY_KEY(fac_note_group_key, fac_s_fac_note_group_key);
END;
/
REGISTERRUN('$Id$')

View File

@@ -615,9 +615,8 @@ AS
AND res_rsv_deel_van;
-- Notificatie voor opdrachten in de queue die al meer dan S(puo_failalert_threshold) minuten gefaald zijn
-- Het onderwerp ondersteunt placeholders, default is zoiets:
-- '##APPL## waarschuwing (##CUST##): Het versturen van ##ENTITYKEY## van ##DATETIME## naar ##ADRES## is na ##NR## pogingen nog niet gelukt. Controleer de configuratie.'
CREATE_VIEW(fac_v_noti_facorderqueuefails, 0)
(
receiver,
@@ -625,40 +624,31 @@ CREATE_VIEW(fac_v_noti_facorderqueuefails, 0)
)
AS
SELECT wg.prs_perslid_key,
REPLACE (
REPLACE (
REPLACE (
REPLACE (
REPLACE (
REPLACE (lcl.l('lcl_noti_facorderqueuefails_subject')
, '##APPL##'
, lcl.l ('lcl_facilitor_appl'))
, '##ENTITYKEY##'
, DECODE (fac_srtnotificatie_xmlnode
, 'opdracht', 'Order '
LTRIM (lcl.L ('lcl_facilitor_appl'))
|| ' alert: transmission of '
|| DECODE (fac_srtnotificatie_xmlnode,
'opdracht', 'Order '
|| (SELECT mld_melding_key || '/' || mld_opdr_bedrijfopdr_volgnr
FROM mld_opdr o
WHERE mld_opdr_key = fac_notificatie_refkey)
, 'bestelopdr', 'Procurement order '
WHERE mld_opdr_key = fac_notificatie_refkey),
'bestelopdr', 'Procurement order '
|| (SELECT bes_bestelopdr_id
FROM bes_bestelopdr o
WHERE bes_bestelopdr_key = fac_notificatie_refkey)
, 'reservering', 'Reservation '
|| (SELECT res_reservering_key || '/' || res_rsv_ruimte_volgnr
FROM res_rsv_ruimte o
WHERE res_rsv_ruimte_key = fac_notificatie_extrakey)
, fac_srtnotificatie_xmlnode || ' ' || fac_notificatie_refkey))
, '##ADRES##'
, COALESCE ((SELECT (prs_bedrijf_naam)
WHERE bes_bestelopdr_key = fac_notificatie_refkey),
fac_notificatie_refkey)
|| ' to '
|| COALESCE ((SELECT (prs_bedrijf_naam)
FROM prs_bedrijf b, prs_bedrijfadres pba
WHERE b.prs_bedrijf_key = pba.prs_bedrijf_key AND pba.prs_bedrijfadres_key = q.prs_bedrijfadres_key)
, '??'))
, '##NR##'
, fac_notificatie_failcount)
, '##DATETIME##'
, TO_CHAR (q.fac_notificatie_datum, 'DD-MM-YYYY HH24:MI'))
, '##CUST##'
, fac_version_cust)
WHERE b.prs_bedrijf_key = pba.prs_bedrijf_key
AND pba.prs_bedrijfadres_key = q.prs_bedrijfadres_key),
'??')
|| ' has failed '
|| fac_notificatie_failcount
|| ' times since '
|| TO_CHAR (q.fac_notificatie_datum, 'DD-MM-YYYY HH24:MI')
|| ' ('
|| fac_version_cust
|| ')'
FROM fac_notificatie q,
fac_srtnotificatie fs,
fac_functie f,
@@ -853,33 +843,34 @@ CREATE_VIEW (fac_v_imp_res_artikel_sync ,0) (hide_f_artikel_catalogus,
artikelMinimum
)
AS
SELECT d.ins_discipline_omschrijving,
a.res_artikel_omschrijving,
TO_CHAR (a.res_artikel_key),
d.ins_discipline_omschrijving,
(SELECT k.prs_kostensoort_oms
FROM prs_kostensoort k
WHERE k.prs_kostensoort_key = d.prs_kostensoort_key),
a.res_artikel_nr,
a.res_artikel_omschrijving,
a.res_artikel_eenheid,
TO_CHAR (a.res_artikel_prijs),
TO_CHAR (a.res_artikel_prijs_vast),
TO_CHAR (a.res_artikel_inkoopprijs),
TO_CHAR (a.res_artikel_kostenpersoneel),
TO_CHAR (a.res_artikel_kostenalgemeen),
TO_CHAR (a.res_artikel_btw),
a.res_artikel_opmerking,
a.res_artikel_groep,
TO_CHAR (a.res_artikel_volgnummer),
TO_CHAR (a.res_artikel_ingangsdatum, 'YYYYMMDD'),
TO_CHAR (a.res_artikel_vervaldatum, 'YYYYMMDD'),
TO_CHAR (a.res_artikel_minimum)
FROM res_v_aanwezigartikel a
, res_discipline d
WHERE d.ins_discipline_key = a.res_discipline_key
AND d.ins_discipline_verwijder IS NULL;
SELECT (SELECT ins_discipline_omschrijving
FROM ins_tab_discipline d
WHERE d.ins_discipline_key = res_discipline_key),
res_artikel_omschrijving,
TO_CHAR (res_artikel_key),
(SELECT ins_discipline_omschrijving
FROM ins_tab_discipline d
WHERE d.ins_discipline_key = res_discipline_key),
(SELECT prs_kostensoort_oms
FROM ins_tab_discipline d, prs_kostensoort k
WHERE d.ins_discipline_key = res_discipline_key
AND d.prs_kostensoort_key = k.prs_kostensoort_key),
res_artikel_nr,
res_artikel_omschrijving,
res_artikel_eenheid,
TO_CHAR (res_artikel_prijs),
TO_CHAR (res_artikel_prijs_vast),
TO_CHAR (res_artikel_inkoopprijs),
TO_CHAR (res_artikel_kostenpersoneel),
TO_CHAR (res_artikel_kostenalgemeen),
TO_CHAR (res_artikel_btw),
res_artikel_opmerking,
res_artikel_groep,
TO_CHAR (res_artikel_volgnummer),
TO_CHAR (res_artikel_ingangsdatum, 'YYYYMMDD'),
TO_CHAR (res_artikel_vervaldatum, 'YYYYMMDD'),
TO_CHAR (res_artikel_minimum)
FROM res_v_aanwezigartikel;
/* View met het maximale actuele menu van de huidige configuratie */
CREATE_VIEW (fac_v_menu, 0)
@@ -993,53 +984,43 @@ AS
WHERE imp_log_applicatie = '$PutOrders$' AND imp_log_datum > SYSDATE - 10;
CREATE_VIEW (fac_v_lcrap_fe_vs_key_data, 0)
(
prs_perslid_key
, naam
, usertype
, oslogin
, last_login
, key_user
)
AS
SELECT x.prs_perslid_key
, naam
, usertype
, oslogin
, last_login
, a.key_user
FROM (SELECT p.prs_perslid_key
, (SELECT prs_perslid_naam_full
SELECT x.prs_perslid_key,
naam,
usertype,
oslogin,
last_login,
a.key_user,
b.xd_user
FROM (SELECT p.prs_perslid_key,
(SELECT prs_perslid_naam_full
FROM prs_v_perslid_fullnames_all pf
WHERE pf.prs_perslid_key = p.prs_perslid_key)
naam
, 'user'
usertype
, COALESCE (p.prs_perslid_oslogin, p.prs_perslid_oslogin2)
oslogin
, p.prs_perslid_login
naam,
'user'
usertype,
COALESCE (p.prs_perslid_oslogin, p.prs_perslid_oslogin2)
oslogin,
p.prs_perslid_login
last_login
FROM prs_v_aanwezigperslid p
WHERE ( prs_perslid_oslogin IS NULL
OR prs_perslid_oslogin NOT IN ('_FACILITOR'
, '_PUTORDERS'
, '_HMAIL'
, '_SYSTEEM'))
OR prs_perslid_oslogin NOT IN ('_FACILITOR', '_PUTORDERS', '_HMAIL'))
AND EXISTS -- op basis van groep + rechten
(SELECT 1
FROM fac_v_webgebruiker
WHERE prs_perslid_key = p.prs_perslid_key)
UNION ALL
SELECT p.prs_perslid_key
, (SELECT prs_perslid_naam_full
SELECT p.prs_perslid_key,
(SELECT prs_perslid_naam_full
FROM prs_v_perslid_fullnames_all pf
WHERE pf.prs_perslid_key = p.prs_perslid_key)
naam
, 'user'
usertype
, COALESCE (p.prs_perslid_oslogin, p.prs_perslid_oslogin2)
oslogin
, NULL
naam,
'user'
usertype,
COALESCE (p.prs_perslid_oslogin, p.prs_perslid_oslogin2)
oslogin,
NULL
last_login -- geen login (lees zonder rechten), dus telt als nooit recent ingelogd!
FROM prs_v_aanwezigperslid p
WHERE NOT EXISTS -- g<><67>n groep + rechten!
@@ -1050,20 +1031,25 @@ AS
OR EXISTS
(SELECT 1
FROM bes_disc_params dp, bes_discipline bd
WHERE dp.bes_disc_params_for_others = 1 AND bd.ins_discipline_key = dp.bes_ins_discipline_key AND bd.ins_discipline_verwijder IS NULL))
WHERE dp.bes_disc_params_for_others = 1
AND bd.ins_discipline_key = dp.bes_ins_discipline_key
AND bd.ins_discipline_verwijder IS NULL))
UNION ALL -- FSN#27315: En ook eventuele "sensorusers" meetellen!
SELECT NULL prs_perslid_key
, sd.ins_srtdeel_omschrijving naam
, 'sensorobject' usertype
, ins_deel_omschrijving oslogin
, ins_deel_statedate last_login -- recent actief dus tellen als recent
SELECT NULL prs_perslid_key,
sd.ins_srtdeel_omschrijving naam,
'sensorobject' usertype,
ins_deel_omschrijving oslogin,
ins_deel_statedate last_login -- recent actief dus tellen als recent
FROM ins_v_aanwezigdeel d, ins_srtdeel sd
WHERE d.ins_srtdeel_key = sd.ins_srtdeel_key AND NVL(sd.ins_srtdeel_sensortype,0) <> 0) x
LEFT JOIN -- 1=user heeft schrijfrechten op key-codes=notFE-codes
(SELECT DISTINCT prs_perslid_key, 1 key_user
FROM (SELECT g.prs_perslid_key, 1 key_user
FROM fac_v_webgebruiker g, fac_functie f
WHERE g.fac_functie_key = f.fac_functie_key AND f.fac_functie_groep IN (1, 2) AND g.fac_gebruiker_prs_level_write < 9 AND g.fac_gebruiker_alg_level_write < 9
WHERE g.fac_functie_key = f.fac_functie_key
AND f.fac_functie_groep IN (1, 2)
AND g.fac_gebruiker_prs_level_write < 9
AND g.fac_gebruiker_alg_level_write < 9
UNION
SELECT p.prs_perslid_key, 1 key_user
FROM fac_groep fg, fac_gebruikersgroep fgg, prs_perslid p
@@ -1075,7 +1061,15 @@ AS
FROM fac_gebruikersgroep
GROUP BY fac_groep_key
HAVING COUNT (prs_perslid_key) > 9))) a
ON x.prs_perslid_key = a.prs_perslid_key;
ON x.prs_perslid_key = a.prs_perslid_key
LEFT JOIN -- FSN#30404: 1=user is cross-domain (xd) user
(SELECT p.prs_perslid_key, 1 xd_user
FROM prs_v_aanwezigperslid p, prs_v_afdeling_boom ab
WHERE p.prs_afdeling_key = ab.prs_afdeling_key
AND p.prs_perslid_apikey IS NOT NULL
AND ab.prs_bedrijf_key =
fac.safe_to_number (fac.getsetting ('xd_primary_bedrijfkey'))) b
ON x.prs_perslid_key = b.prs_perslid_key;
-- Dit gaan we hanteren om API-users te tellen (zijn dan geen normale keyusers meer)
CREATE_VIEW (fac_v_lcrap_apiusers, 0)
@@ -1104,43 +1098,37 @@ AS
-- personen zonder rechten worden als passive_user toegevoegd
CREATE_VIEW (fac_v_lcrap_fe_vs_key, 0)
(
tijdstip
, licensed_fe_users
, licensed_key_users
, licensed_device_users
, licensed_passive_users
, fe_users
, key_users
, devices
, passive_users
, all_users
, recent_login
, licensed_delta_fe
, licensed_delta_key
, licensed_delta_device
, licensed_delta_passive
tijdstip,
all_users,
fe_users,
key_users,
devices,
passive_users,
xdkey_users,
recent_login
)
BEQUEATH DEFINER
AS
SELECT tijdstip
, fac.getsetting ('licensed_fe_users') licensed_fe_users
, fac.getsetting ('licensed_key_users') licensed_key_users
, fac.getsetting ('licensed_device_users') licensed_device_users
, fac.getsetting ('licensed_passive_users') licensed_passive_users
, fe_users
, key_users
, NVL (system_users, 0)
, NVL (passive_users, 0)
, all_users
, recent_login
, fac.safe_to_number (fac.getsetting ('licensed_fe_users')) - fe_users delta_fe
, fac.safe_to_number (fac.getsetting ('licensed_key_users')) - key_users delta_key
, fac.safe_to_number (fac.getsetting ('licensed_device_users')) - NVL (system_users, 0) delta_device
, fac.safe_to_number (fac.getsetting ('licensed_passive_users')) - NVL (passive_users, 0) delta_passive
FROM (SELECT SYSDATE tijdstip
, COUNT (*) all_users
, COUNT (*) - SUM (DECODE (x.key_user, NULL, 0, 1)) fe_users
, SUM (DECODE (x.key_user, NULL, 0, 1)) key_users
, SUM (CASE WHEN x.last_login > SYSDATE - 100 THEN 1 ELSE 0 END) recent_login
SELECT tijdstip,
all_users,
fe_users,
key_users,
NVL (system_users, 0),
NVL (passive_users, 0),
xdkey_users,
recent_login
FROM (SELECT SYSDATE
tijdstip,
COUNT (*)
all_users,
COUNT (*) - SUM (DECODE (x.key_user, NULL, DECODE (x.xd_user, NULL, 0, 1), 1))
fe_users,
SUM (DECODE (x.key_user, NULL, 0, DECODE (x.xd_user, NULL, 1, 0)))
key_users,
SUM (DECODE (x.key_user, NULL, 0, DECODE (x.xd_user, NULL, 0, 1)))
xdkey_users,
SUM (CASE WHEN x.last_login > SYSDATE - 100 THEN 1 ELSE 0 END)
recent_login
FROM fac_v_lcrap_fe_vs_key_data x
WHERE x.usertype = 'user') a
LEFT JOIN (SELECT COUNT (*) system_users
@@ -1830,7 +1818,6 @@ AS
km.res_kenmerk_niveau kenmerk_niveau,
km.res_kenmerk_verplicht kenmerk_verplicht,
km.res_kenmerk_groep kenmerk_groep,
km.res_kenmerk_rolcode kenmerk_rolcode,
km.res_kenmerk_volgnummer kenmerk_volgnummer,
km.res_kenmerk_default kenmerk_default,
km.res_kenmerk_toonbaar kenmerk_toonbaar,
@@ -1877,7 +1864,6 @@ AS
bes_kenmerk_niveau kenmerk_niveau,
bes_kenmerk_verplicht kenmerk_verplicht,
bes_kenmerk_groep kenmerk_groep,
bes_kenmerk_rolcode kenmerk_rolcode,
bes_kenmerk_volgnummer kenmerk_volgnummer,
bes_kenmerk_default kenmerk_default,
bes_kenmerk_toonbaar kenmerk_toonbaar,
@@ -1973,7 +1959,6 @@ AS
mld_kenmerk_niveau kenmerk_niveau,
mld_kenmerk_verplicht kenmerk_verplicht,
mld_kenmerk_groep kenmerk_groep,
mld_kenmerk_rolcode kenmerk_rolcode,
mld_kenmerk_volgnummer kenmerk_volgnummer,
mld_kenmerk_default kenmerk_default,
mld_kenmerk_toonbaar kenmerk_toonbaar,
@@ -2127,7 +2112,6 @@ AS
km.cnt_kenmerk_niveau kenmerk_niveau,
km.cnt_kenmerk_verplicht kenmerk_verplicht,
km.cnt_kenmerk_groep kenmerk_groep,
km.cnt_kenmerk_rolcode kenmerk_rolcode,
km.cnt_kenmerk_volgnummer kenmerk_volgnummer,
km.cnt_kenmerk_default kenmerk_default,
km.cnt_kenmerk_toonbaar kenmerk_toonbaar,
@@ -2174,7 +2158,6 @@ AS
ins_kenmerk_niveau kenmerk_niveau,
ins_kenmerk_verplicht kenmerk_verplicht,
ins_kenmerk_groep kenmerk_groep,
ins_kenmerk_rolcode kenmerk_rolcode,
ins_kenmerk_volgnummer kenmerk_volgnummer,
ins_kenmerk_default kenmerk_default,
ins_kenmerk_toonbaar kenmerk_toonbaar,
@@ -2301,7 +2284,6 @@ AS
NULL kenmerk_niveau,
km.fin_kenmerk_verplicht kenmerk_verplicht,
km.fin_kenmerk_groep kenmerk_groep,
km.fin_kenmerk_rolcode kenmerk_rolcode,
km.fin_kenmerk_volgnr kenmerk_volgnummer,
km.fin_kenmerk_default kenmerk_default,
km.fin_kenmerk_toonbaar kenmerk_toonbaar,
@@ -2341,7 +2323,6 @@ AS
, k.ins_kenmerk_niveau kenmerk_niveau
, k.ins_kenmerk_verplicht kenmerk_verplicht
, k.ins_kenmerk_groep kenmerk_groep
, k.ins_kenmerk_rolcode kenmerk_rolcode
, k.ins_kenmerk_volgnummer kenmerk_volgnummer
, k.ins_kenmerk_default kenmerk_default
, k.ins_kenmerk_toonbaar kenmerk_toonbaar

View File

@@ -134,8 +134,8 @@ SELECT b.prs_bedrijf_naam Bedrijfsnaam
-- importtabel: fac_imp_inspectie
CREATE OR REPLACE VIEW fac_v_exp_inspectie
AS
SELECT a.discipline_oms Disciplineomschrijving
, a.srtgroep_oms Groepsoortomschrijving
SELECT d.ins_discipline_omschrijving Disciplineomschrijving
, g.ins_srtgroep_omschrijving Groepsoortomschrijving
, s.ins_srtdeel_code Objectsoortcode
, c.ins_srtcontrole_omschrijving Controle_omschrijving
, c.ins_srtcontrole_info Controle_informatie
@@ -143,16 +143,13 @@ SELECT a.discipline_oms Disciplineomschrijving
, c.ins_srtcontrole_eenheid Eenheid
, c.ins_srtcontrole_mode Controle_mode
, c.ins_srtcontrole_bits Bits
, (SELECT t.ins_discipline_omschrijving
FROM ctr_discipline t
WHERE t.ins_discipline_key = c.ctr_discipline_key
) Taakcategorie
FROM ins_srtcontrole c
, ins_srtdeel s
, ins_v_allsrtinstallatie a
WHERE c.ins_srtcontrole_niveau = a.niveau
AND c.ins_srtinstallatie_key = a.ins_srtinstallatie_key
AND a.ins_srtdeel_key = s.ins_srtdeel_key(+)
, ins_srtgroep g
, ins_discipline d
WHERE c.ins_srtinstallatie_key = s.ins_srtdeel_key
AND s.ins_srtgroep_key = g.ins_srtgroep_key
AND g.ins_discipline_key = d.ins_discipline_key
;
-- import: FIP: 6-Aanvullen objecten
@@ -262,7 +259,6 @@ SELECT sd.ins_srtdiscipline_omschrijving vakgroeptype
, sm.mld_stdmelding_afmeldtext tekst_bij_afmelden
, DECODE(sm.mld_stdmelding_doublecheck, 1, 'i', 2, 'a', 3, 'b', 'n') dubbele_meldingen
, mld_stdmelding_slabewaken sla_bewaken
, mld_stdmelding_objects_allowed max_objecten
, md.ins_discipline_image disc_image
, sm.mld_stdmelding_image stdm_image
, sm.mld_stdmelding_externnr externnr
@@ -291,27 +287,25 @@ SELECT sd.ins_srtdiscipline_omschrijving vakgroeptype
-- import: FIP: 1-Aanvullen districten t/m gebouwen
-- importsheet: Inventarisatie Vastgoed, tabblad Locaties
-- importtabel: fac_imp_onrgoed1
CREATE OR REPLACE FORCE VIEW fac_v_exp_onrgoed1
CREATE OR REPLACE VIEW fac_v_exp_onrgoed1
AS
SELECT r.alg_regio_omschrijving Regio,
d.alg_district_omschrijving District,
l.alg_locatie_code Locatiecode,
l.alg_locatie_omschrijving Locatieomschrijving,
g.alg_gebouw_code Gebouwcode,
g.alg_gebouw_naam Gebouwomschrijving,
sg.alg_srtgebouw_omschrijving Gebouwfunctie,
l.alg_locatie_verantw Contactpersoon,
l.alg_locatie_verantw_tel Telefoonnummer,
l.alg_locatie_adres Bezoekadres,
l.alg_locatie_postcode Postcode,
l.alg_locatie_plaats Plaats,
l.alg_locatie_land Land,
l.alg_locatie_land Locatieland,
l.alg_locatie_post_adres Postadres,
l.alg_locatie_post_postcode Postpostcode,
l.alg_locatie_post_plaats Postplaats,
l.alg_locatie_post_land Postland,
sg.alg_srtgebouw_omschrijving Gebouwfunctie,
g.alg_gebouw_code Gebouwcode,
g.alg_gebouw_naam Gebouwnaam,
g.alg_gebouw_adres Gebouwadres,
g.alg_gebouw_postcode Gebouwpostcode,
l.alg_locatie_post_postcode postPostcode,
l.alg_locatie_post_plaats postPlaats,
l.alg_locatie_post_land Land,
NULL kenmerk1,
NULL kenmerk2,
NULL kenmerk3,
@@ -564,27 +558,23 @@ SELECT c.cnt_contract_nummer_intern ContractNr
, TO_CHAR(c.cnt_contract_termijnkosten) Termijnbedrag --X_termijnbedrag
, TO_CHAR(c.cnt_contract_uurloon) Uurtarief --Y_uurtarief
, TO_CHAR(c.cnt_contract_korting) Korting --Z_korting
, CASE WHEN p.cnt_alg_plaats_code IN ('L','T','G','V','R')
THEN g.alg_locatie_code
ELSE NULL
END locatiecode --AA_locatiecode
, CASE WHEN p.cnt_alg_plaats_code IN ('T')
THEN g.alg_terreinsector_code
ELSE NULL
END terreincode --AB_terreincode
, CASE WHEN p.cnt_alg_plaats_code IN ('G','V','R')
THEN g.alg_gebouw_code
ELSE NULL
END gebouwcode --AC_gebouwcode
, CASE WHEN p.cnt_alg_plaats_code IN ('V','R')
THEN g.alg_verdieping_code
ELSE NULL
END verdiepingcode --AD_verdiepingcode
, CASE WHEN p.cnt_alg_plaats_code IN ('R')
THEN g.alg_ruimte_nr
ELSE NULL
END ruimtecode --AE_ruimtecode
, c.cnt_contract_verlenging Verlengen --AF_verlengen
, p.cnt_alg_plaats_code ScopeType --AA_scope
, (SELECT MIN(CASE WHEN p.cnt_alg_plaats_code = 'L' THEN alg_locatie_code
WHEN p.cnt_alg_plaats_code = 'G' THEN alg_gebouw_code
ELSE ''
END)
FROM alg_v_gebouw_gegevens
WHERE CASE WHEN p.cnt_alg_plaats_code = 'L' THEN alg_locatie_key
WHEN p.cnt_alg_plaats_code = 'G' THEN alg_gebouw_key
END = p.cnt_alg_plaats_key
) LocatieGebouw_code --AB_locatiegebouw
, c.cnt_contract_verlenging Verlengen --AC_verlengen
--, CASE WHEN c.cnt_contract_verlenging = 5
-- THEN cnt.cnt_getTermijndatum( c.cnt_contract_looptijd_tot
-- , c.cnt_contract_verleng_termijn
-- , 1)
-- ELSE NULL
-- END Verlengdatum
FROM cnt_contract c
, (SELECT mm.cnt_contract_key
, mm.cnt_contract_nummer_intern
@@ -595,20 +585,6 @@ SELECT c.cnt_contract_nummer_intern ContractNr
AND md.cnt_srtcontract_type = 6
AND mm.cnt_contract_status != 1
) m
, (SELECT o.*, l.alg_locatie_code
FROM alg_v_onroerendgoed_gegevens o
, alg_locatie l
WHERE o.alg_locatie_key = l.alg_locatie_key
UNION
SELECT l.alg_locatie_key, NULL, NULL
, l.alg_locatie_code, NULL
, NULL, NULL, NULL
, NULL, NULL, NULL
, NULL, NULL, NULL
, NULL, NULL, NULL
, l.alg_locatie_key, 'L', l.alg_locatie_code
FROM alg_locatie l
) g
, cnt_contract_plaats p
, prs_afdeling a
, prs_v_aanwezigperslid b
@@ -618,7 +594,7 @@ SELECT c.cnt_contract_nummer_intern ContractNr
AND c.cnt_contract_key = p.cnt_contract_key(+)
AND c.prs_afdeling_key_eig = a.prs_afdeling_key
AND c.prs_perslid_key_beh = b.prs_perslid_key
AND c.prs_perslid_key_eig = e.prs_perslid_key(+)
AND c.prs_perslid_key_eig = e.prs_perslid_key
AND c.prs_kostenplaats_key = k.prs_kostenplaats_key
AND c.cnt_contract_verwijder IS NULL
AND a.prs_afdeling_verwijder IS NULL
@@ -628,34 +604,4 @@ SELECT c.cnt_contract_nummer_intern ContractNr
, c.cnt_contract_versie
;
CREATE OR REPLACE FORCE VIEW fac_v_exp_res_artikel_sync
AS
SELECT ra.res_artikel_key ArtikelKey
, rd.ins_discipline_omschrijving CatalogusNaam
, pk.prs_kostensoort_oms CatalogusKostensoort
, ra.res_artikel_nr ArtikelNummer
, ra.res_artikel_omschrijving ArtikelOmschrijving
, ra.res_artikel_eenheid ArtikelEenheid
, ra.res_artikel_prijs ArtikelPrijs
, ra.res_artikel_prijs_vast ArtikelPrijsVast
, ra.res_artikel_inkoopprijs ArtikelInkoopprijs
, ra.res_artikel_kostenpersoneel ArtikelPersoneelkosten
, ra.res_artikel_kostenalgemeen ArtikelAlgemenekosten
, ra.res_artikel_BTW ArtikelBTW
, ra.res_artikel_opmerking ArtikelOpmerking
, ra.res_artikel_groep ArtikelGroep
, ra.res_artikel_volgnummer ArtikelVolgnummer
, TO_CHAR(ra.res_artikel_ingangsdatum, 'yyyymmdd') ArtikelIngangsdatum
, TO_CHAR(ra.res_artikel_vervaldatum, 'yyyymmdd') ArtikelVervaldatum
, ra.res_artikel_minimum ArtikelMinimum
, ra.res_artikel_externnr Externnr
FROM res_artikel ra
, res_discipline rd
, prs_kostensoort pk
WHERE ra.res_discipline_key = rd.ins_discipline_key
AND rd.prs_kostensoort_key = pk.prs_kostensoort_key(+)
AND ra.res_artikel_verwijder IS NULL
AND TRUNC(ra.res_artikel_vervaldatum) > TRUNC(SYSDATE)
;
REGISTERRUN('$Id$')

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -60,8 +60,8 @@ PROJEXE=z:\Project\FACILITOR\BUILD
##
## New style using schemanumbers
##
CURRENTVERSION=51
NEXTVERSION=52
CURRENTVERSION=49
NEXTVERSION=50
FILEVERSION=a
NEXTROOT=DB$(NEXTVERSION)$(FILEVERSION)
CURRENTUPDATE=DB$(CURRENTVERSION)to$(NEXTVERSION)

View File

@@ -22,17 +22,17 @@ spool &fcltlogfile
WHENEVER SQLERROR EXIT;
DECLARE
tekst VARCHAR2 (1000);
charset VARCHAR2 (1000);
n_object NUMBER (10);
BEGIN
SELECT MIN(client_charset)
INTO charset
FROM v$session_connect_info
WHERE sid = sys_context('USERENV','SID');
IF charset <> 'WE8MSWIN1252' THEN
CASE ASCII('<27>')
WHEN 191 THEN tekst :='WE8ISO8859P1';
WHEN 128 THEN tekst :='WE8MSWIN1252'; -- De enige goede
ELSE tekst :='UNKNOWN ';
END CASE;
IF tekst <> 'WE8MSWIN1252' THEN
tekst := '=================================================================' || CHR(10)
|| 'Foute clientside NLS_LANG voor dit Facilitor script.' || CHR(10)
|| 'WE8MSWIN1252 is nodig, ik vermoed '|| charset || CHR(10)
|| 'Foute clientside NLS_LANG ['|| TO_CHAR(ASCII('<27>')) ||'] voor dit Facilitor script.' || CHR(10)
|| 'WE8MSWIN1252 is nodig, ik vermoed '|| tekst || CHR(10)
|| 'Geef bijvoorbeeld in Windows voordat SQL*Plus opstart:' || CHR(10)
|| 'SET NLS_LANG=.WE8MSWIN1252' || CHR(10)
|| 'Het script wordt nu afgebroken!' || CHR(10)
@@ -67,15 +67,12 @@ PROMPT
SELECT 'Current os_user: ' || SYS_CONTEXT( 'userenv', 'os_user' ) FROM DUAL;
PROMPT
ALTER SESSION SET nls_length_semantics='char';
SET LINESIZE 1000
SET DEFINE OFF
SET ECHO ON
#include "adm\adm_tab.src"
#include "adm\adm_seq.src"
#include "adm\adm_tri.src"
/* adm_pac.src komt straks nog een keer met de recreate maar we hebben hem al eerder nodig */
#include "adm\adm_pac.src"
/* TYPES */
@@ -206,6 +203,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 710
PROMPT If in doubt please contact: FACILITOR Helpdesk +31 53 4800 710
PROMPT Copyright (c) 1996-2025 Aareon Nederland B.V. All rights reserved.
SPOOL OFF

View File

@@ -515,7 +515,7 @@ AS
WHERE cnt_contract_key = c_key
AND fin_factuur_statuses_key <> 1
AND fin_factuur_verwijder IS NULL
AND (fin_factuur_datum <= factuurdatum OR fin_factuur_statuses_key IN (6, 7)) -- Akkoord(6) en Verwerkt(7)
AND fin_factuur_datum <= factuurdatum
AND fin_factuur_boekmaand = factuurboekmaand;
-- totaaltermijngefactureerd(btw) is dus voor deze periode inclusief deze nieuwe, dus
@@ -530,7 +530,7 @@ AS
WHERE cnt_contract_key = c_key
AND fin_factuur_statuses_key <> 1
AND fin_factuur_verwijder IS NULL
AND (fin_factuur_datum <= factuurdatum OR fin_factuur_statuses_key IN (6, 7)); -- Akkoord(6) en Verwerkt(7)
AND fin_factuur_datum <= factuurdatum;
DBMS_OUTPUT.put_line ('Totaal gefactureerd: ' || totaalgefactureerd);
DBMS_OUTPUT.put_line ('Totaal gefactureerd periode: ' || totaaltermijngefactureerd);
@@ -624,7 +624,7 @@ AS
WHERE mld_opdr_key = o_key
AND fin_factuur_statuses_key <> 1
AND fin_factuur_verwijder IS NULL
AND (fin_factuur_datum <= factuurdatum OR fin_factuur_statuses_key IN (6, 7)); -- Akkoord(6) en Verwerkt(7)
AND fin_factuur_datum <= factuurdatum;
-- Hier kunnen we iets met de deels nieuwe opties
-- '0;Geen facturen;1;E<>n factuur (vaste prijs);2;E<>n factuur (nacalculatie);3;Meerdere facturen;4;Contracttermijnen',

View File

@@ -190,9 +190,6 @@ CREATE_TABLE(fin_kenmerk,0)
,fin_kenmerk_volgnr
NUMBER(3)
NOT NULL
,fin_kenmerk_rolcode
NUMBER(4)
DEFAULT 7 NOT NULL
,fin_kenmerk_omschrijving
VARCHAR2(50)
,fin_kenmerk_upper

View File

@@ -1,101 +1,269 @@
--
-- $Id$
--
/* Script bevat initiele configuratie voor een standaard FM inrichting van Facilitor.
Voor FM-implementaties zal dit Het Startpunt zijn. Verwachting is dat dit zo ongeveer het eerste is wat je altijd zult doen bij een FM-implementatie,
niettemin doen we ons best -en zullen we dat moeten verifieren- om het zodanig opgezet te hebben dat het ook later nog kan worden uitgevoerd.
Niet omdat dat waarschijnlijk is, maar omdat zode meest robuuste code wordt gemaakt, die bestand is tegen een onverwachte situatie.
Het kan [alleen] uitgaan van alles wat standaard aanwezig is (uit fac_ini).
Moet in sync worden gehouden met de DB-versies, is daarom technisch onderdeel van de Facilitor-core
Inhoudelijk zou er een Implementatie-CAB mogen zijn (vertegenwoordigers van consultancy, support en evt core-CAB) die de verantwoordelijkheid over de content heeft.
Ook goed om te weten: dit is een eenmalig (once) script dat een momentopname genereert als startpunt van een verdere implementatie.
Er komen GEEN upgrades voor deze initialisatie met nieuwere versies of aanvullingen.
Na deze aftrap mag je het verder helemaal zelf doen.
De basisinrichting wordt per module van onder naar boven opgebouwd, en eindigt met een zeer bescheidenaantal appetizers:
fictieve gegevens die e.e.a. voor de eerste confrontatie minder abstract maken.
Let op: deze code wordt letterlijk geinclude als body van procedure ini.fmis_ini, het is geen SQL*Plus!
Er wordt gebruik gemaakt van importfuncties, die COMMIT's doen.
Deze hele procedure moet dus foutlooslopen want het is alles of niks. */
-- Script bevat initiele configuratie voor een standaard FM inrichting van Facilitor
-- Voor FM-implementaties zal dit Het Startpunt zijn.
--
--
-- Verwachting is dat dit zo ongeveer het eerste is wat je altijd zult doen bij een FM-implementatie,
-- niettemin doen we ons best -en zullen we dat moeten verifieren- om het zodanig opgezet te hebben
-- dat het ook later nog kan worden uitgevoerd. Niet omdat dat waarschijnlijk is, maar omdat zo
-- de meest robuuste code wordt gemaakt, die bestand is tegen een onverwachte situatie.
--
-- Het kan [alleen] uitgaan van alles wat standaard aanwezig is (uit fac_ini).
--
-- Moet in sync worden gehouden met de DB-versies, is daarom technisch onderdeel van de Facilitor-core
-- Inhoudelijk zou er een Implementatie-CAB mogen zijn (vertegenwoordigers van consultancy, support en evt core-CAB)
-- die de verantwoordelijkheid over de content heeft.
--
-- Ook goed om te weten: dit is een eenmalig (once) script dat een momentopname genereert als startpunt van
-- een verdere implementatie. Er komen GEEN upgrades voor deze initialisatie met nieuwere versies of
-- aanvullingen. Na deze aftrap mag je het verder helemaal zelf doen.
--
-- De basisinrichting wordt per module van onder naar boven opgebouwd, en eindigt met een zeer bescheiden
-- aantal appetizers: fictieve gegevens die e.e.a. voor de eerste confrontatie minder abstract maken.
--
--
-- Let op: deze code wordt letterlijk geinclude als body van procedure ini.fmis_ini, het is geen SQL*Plus!
--
-- Er wordt gebruik gemaakt van importfuncties, die COMMIT's doen. Deze hele procedure moet dus foutloos
-- lopen want het is alles of niks.
--
-- BASISCONFIG PER MODULE
-- 1. ALG
-- Gebouwfuncties en ruimtefuncties (afgeleid uit XD; denk dat het beter kan maar elke indeling kent zijn POV)
-- Bv Bouwbesluit, NEN. De Facilitaire NEN lijkt (!) dat niet te bieden.
INSERT INTO alg_srtgebouw(alg_srtgebouw_omschrijving, alg_srtgebouw_passief) VALUES ('Fietsenstalling', NULL);
INSERT INTO alg_srtgebouw(alg_srtgebouw_omschrijving, alg_srtgebouw_passief) VALUES ('Gemeenschapshuis', NULL);
INSERT INTO alg_srtgebouw(alg_srtgebouw_omschrijving, alg_srtgebouw_passief) VALUES ('Kantoorgebouw', NULL);
INSERT INTO alg_srtgebouw(alg_srtgebouw_omschrijving, alg_srtgebouw_passief) VALUES ('Kinderopvang', NULL);
INSERT INTO alg_srtgebouw(alg_srtgebouw_omschrijving, alg_srtgebouw_passief) VALUES ('Loods', 1);
INSERT INTO alg_srtgebouw(alg_srtgebouw_omschrijving, alg_srtgebouw_passief) VALUES ('Opslag/Magazijn', 1);
INSERT INTO alg_srtgebouw(alg_srtgebouw_omschrijving, alg_srtgebouw_passief) VALUES ('Parkeergebouw', NULL);
INSERT INTO alg_srtgebouw(alg_srtgebouw_omschrijving, alg_srtgebouw_passief) VALUES ('Portocabin', NULL);
INSERT INTO alg_srtgebouw(alg_srtgebouw_omschrijving, alg_srtgebouw_passief) VALUES ('Projectlocatie', NULL);
INSERT INTO alg_srtgebouw(alg_srtgebouw_omschrijving, alg_srtgebouw_passief) VALUES ('Schoolgebouw', NULL);
INSERT INTO alg_srtgebouw(alg_srtgebouw_omschrijving, alg_srtgebouw_passief) VALUES ('Sportcentrum', NULL);
INSERT INTO alg_srtgebouw(alg_srtgebouw_omschrijving, alg_srtgebouw_passief) VALUES ('Stationsgebouw', NULL);
INSERT INTO alg_srtgebouw(alg_srtgebouw_omschrijving, alg_srtgebouw_passief) VALUES ('Winkel', NULL);
INSERT INTO alg_srtgebouw(alg_srtgebouw_omschrijving, alg_srtgebouw_passief) VALUES ('Wijkcentrum', NULL);
INSERT INTO alg_srtgebouw(alg_srtgebouw_omschrijving, alg_srtgebouw_passief) VALUES ('Werkplaats', NULL);
INSERT INTO alg_srtgebouw(alg_srtgebouw_omschrijving, alg_srtgebouw_passief) VALUES ('Woning', NULL);
INSERT INTO alg_srtterreinsector(alg_srtterreinsec_omschrijving) VALUES ('Parkeerterrein');
INSERT INTO alg_srtterreinsector(alg_srtterreinsec_omschrijving) VALUES ('Groenvoorziening');
-- NEN2580
INSERT INTO alg_srtruimte(alg_srtruimte_omschrijving, prs_bevat_werkplek, prs_verhuurbaar) VALUES ('Bijeenkomstruimte', NULL, 1);
INSERT INTO alg_srtruimte(alg_srtruimte_omschrijving, prs_bevat_werkplek, prs_verhuurbaar) VALUES ('Garage', NULL, 1);
INSERT INTO alg_srtruimte(alg_srtruimte_omschrijving, prs_bevat_werkplek, prs_verhuurbaar) VALUES ('Kantoorruimte', 1, 1);
INSERT INTO alg_srtruimte(alg_srtruimte_omschrijving, prs_bevat_werkplek, prs_verhuurbaar) VALUES ('Technische ruimte', NULL, NULL);
INSERT INTO alg_srtruimte(alg_srtruimte_omschrijving, prs_bevat_werkplek, prs_verhuurbaar) VALUES ('Opslag/Magazijn', NULL, 1);
INSERT INTO alg_srtruimte(alg_srtruimte_omschrijving, prs_bevat_werkplek, prs_verhuurbaar) VALUES ('Horizontale verkeersruimte', NULL, NULL);
INSERT INTO alg_srtruimte(alg_srtruimte_omschrijving, prs_bevat_werkplek, prs_verhuurbaar) VALUES ('Verticale verkeersruimte', NULL, NULL);
INSERT INTO alg_srtruimte(alg_srtruimte_omschrijving, prs_bevat_werkplek, prs_verhuurbaar) VALUES ('Sanitairruimte', NULL, NULL);
INSERT INTO alg_srtruimte(alg_srtruimte_omschrijving, prs_bevat_werkplek, prs_verhuurbaar) VALUES ('Woonruimte', 1, 1);
-- Het ligt voor de hand hier een bak flexkenmerken aan te maken die je voor FM nodig hebt
-- Vloerafwerking: een eigen tabel met gangbare Vloerafwerkingen en een referentiekenmerk
-- Glasoppervlak: een number, wellicht per type (separatieglas, buiten)
fac.writelog ('INI.FMIS_INI','I', 'ALG completed', '');
-- 2. INS
-- Even helemaal weggehaald. Omdat bevonden was toch direct te verwijderen uit de omgeving. Van ieder onderdeel het format (insert into) en 1 voorbeeld laten staan.
-- Vakgroepen (Meervoud).
/* INSERT INTO ins_tab_discipline (ins_discipline_module, ins_discipline_code, ins_discipline_omschrijving, ins_discipline_min_level, ins_discipline_image)
-- Vakgroepen. Meervoud
-- Leidraad voor onderscheid is: is het aannemelijk dat daar andere personen (backoffice, autorisaties) over gaan. Ook NLSfb.
INSERT INTO ins_tab_discipline (ins_discipline_module, ins_discipline_code, ins_discipline_omschrijving, ins_discipline_min_level, ins_discipline_image)
SELECT 'INS', 'NLSFB00', 'FMIS-Bouwkundig Algemeen', 1, '' FROM DUAL UNION ALL
SELECT 'INS', 'NLSFB04', 'FMIS-Bouwkundig Afwerkingen', 1, '' FROM DUAL UNION ALL
SELECT 'INS', 'NLSFB05', 'FMIS-Bouwkundig Mechanische installaties', 1, '' FROM DUAL UNION ALL
SELECT 'INS', 'NLSFB06', 'FMIS-Bouwkundig Elektrische installaties', 1, '' FROM DUAL UNION ALL
SELECT 'INS', 'NLSFB07', 'FMIS-Bouwkundig Vaste inrichtingen', 1, '' FROM DUAL UNION ALL
SELECT 'INS', 'NLSFB08', 'FMIS-Bouwkundig Losse inventaris', 1, '' FROM DUAL UNION ALL
SELECT 'INS', 'NLSFB09', 'FMIS-Bouwkundig Terrein', 1, '' FROM DUAL UNION ALL
SELECT 'INS', 'F020', 'FMIS-Automaten', 1, 'fa-slot-machine' FROM DUAL UNION ALL
SELECT 'INS', 'F030', 'FMIS-Werkplekken', 1, 'fa-chair-office' FROM DUAL UNION ALL
SELECT 'INS', 'F040', 'FMIS-Toegang/Beveiliging', 1, 'fa-universal-access' FROM DUAL UNION ALL
SELECT 'INS', 'F050', 'FMIS-Presentatiemiddelen', 1, 'fa-projector' FROM DUAL UNION ALL
SELECT 'INS', 'F060', 'FMIS-Vervoer', 1, 'fa-car-side' FROM DUAL UNION ALL
SELECT 'INS', 'I010', 'FMIS-Computers', 1, 'fa-computer' FROM DUAL UNION ALL
SELECT 'INS', 'I020', 'FMIS-Smartphones', 1, 'fa-mobile-android' FROM DUAL UNION ALL
SELECT 'INS', 'I030', 'FMIS-Sensoren', 1, 'fa-sensor-on' FROM DUAL UNION ALL
SELECT 'INS', 'P010', 'FMIS-Parkeren', 1, 'fa-parking' FROM DUAL;
INSERT INTO ins_disc_params (ins_discipline_key) SELECT ins_discipline_key FROM ins_tab_discipline WHERE ins_discipline_module='INS' AND ins_discipline_key NOT IN (SELECT ins_discipline_key FROM ins_disc_params);
*/
-- Groepen (Meervoud).
/* INSERT INTO ins_srtgroep (ins_srtgroep_omschrijving, ins_discipline_key)
-- Groepen TODO AANVULLEN of verbeteren. Meervoud.
INSERT INTO ins_srtgroep (ins_srtgroep_omschrijving, ins_discipline_key)
SELECT 'Koffieautomaten', ins_discipline_key FROM ins_tab_discipline WHERE ins_discipline_code = 'F020' UNION ALL
*/
-- Objectsoorten (Enkelvoud).
/* INSERT INTO ins_srtdeel (ins_srtgroep_key, ins_srtdeel_code, ins_srtdeel_omschrijving, ins_srtdeel_image, ins_srtdeel_sensortype)
SELECT 'Snoepautomaten', ins_discipline_key FROM ins_tab_discipline WHERE ins_discipline_code = 'F020' UNION ALL
SELECT 'Frisdrankautomaten', ins_discipline_key FROM ins_tab_discipline WHERE ins_discipline_code = 'F020' UNION ALL
SELECT 'Waterkoelers', ins_discipline_key FROM ins_tab_discipline WHERE ins_discipline_code = 'F020' UNION ALL
SELECT 'Bureau''s', ins_discipline_key FROM ins_tab_discipline WHERE ins_discipline_code = 'F030' UNION ALL
SELECT 'Tafels', ins_discipline_key FROM ins_tab_discipline WHERE ins_discipline_code = 'F030' UNION ALL
SELECT 'Stoelen', ins_discipline_key FROM ins_tab_discipline WHERE ins_discipline_code = 'F030' UNION ALL
SELECT 'Werkplekken', ins_discipline_key FROM ins_tab_discipline WHERE ins_discipline_code = 'F030' UNION ALL
SELECT 'Desktops', ins_discipline_key FROM ins_tab_discipline WHERE ins_discipline_code = 'I010' UNION ALL
SELECT 'Laptops', ins_discipline_key FROM ins_tab_discipline WHERE ins_discipline_code = 'I010' UNION ALL
SELECT 'Tablets', ins_discipline_key FROM ins_tab_discipline WHERE ins_discipline_code = 'I010' UNION ALL
SELECT 'Sensoren', ins_discipline_key FROM ins_tab_discipline WHERE ins_discipline_code = 'I030';
-- Objectsoorten TODO AANVULLEN. Enkelvoud.
INSERT INTO ins_srtdeel (ins_srtgroep_key, ins_srtdeel_code, ins_srtdeel_omschrijving, ins_srtdeel_image, ins_srtdeel_sensortype)
SELECT ins_srtgroep_key, 'KOF','Koffieautomaat', 'fa-mug-hot', 0 FROM ins_srtgroep WHERE ins_srtgroep_omschrijving = 'Koffieautomaten' UNION ALL
*/
SELECT ins_srtgroep_key, 'SNP','Snoepautomaat', 'fa-lollipop', 0 FROM ins_srtgroep WHERE ins_srtgroep_omschrijving = 'Snoepautomaten' UNION ALL
SELECT ins_srtgroep_key, 'FRS','Frisdrankautomaat', 'fa-cup-straw-swoosh', 0 FROM ins_srtgroep WHERE ins_srtgroep_omschrijving = 'Frisdrankautomaten' UNION ALL
SELECT ins_srtgroep_key, 'WTK','Waterkoeler', 'fa-glass-water', 0 FROM ins_srtgroep WHERE ins_srtgroep_omschrijving = 'Waterkoelers' UNION ALL
SELECT ins_srtgroep_key, 'DSK','Desktop type 1', 'fa-desktop', 0 FROM ins_srtgroep WHERE ins_srtgroep_omschrijving = 'Desktops' UNION ALL
SELECT ins_srtgroep_key, 'BUR','Bureau 160x80', 'fa-lamp-desk', 0 FROM ins_srtgroep WHERE ins_srtgroep_omschrijving = 'Bureau''s' UNION ALL
SELECT ins_srtgroep_key, 'TAF','Vergadertafel', 'fa-users-line', 0 FROM ins_srtgroep WHERE ins_srtgroep_omschrijving = 'Tafels' UNION ALL
SELECT ins_srtgroep_key, 'BST','Bureaustoel', 'fa-chair-office ', 0 FROM ins_srtgroep WHERE ins_srtgroep_omschrijving = 'Stoelen' UNION ALL
SELECT ins_srtgroep_key, 'LPT','Laptop type 1', 'fa-laptop', 0 FROM ins_srtgroep WHERE ins_srtgroep_omschrijving = 'Laptops' UNION ALL
SELECT ins_srtgroep_key, 'LPT','Laptop type 2', 'fa-laptop', 0 FROM ins_srtgroep WHERE ins_srtgroep_omschrijving = 'Laptops' UNION ALL
SELECT ins_srtgroep_key, 'TAB','Tablet', 'fa-tablet', 0 FROM ins_srtgroep WHERE ins_srtgroep_omschrijving = 'Tablets' UNION ALL
SELECT ins_srtgroep_key, 'SB','Bezettingssensor', 'fa-sensor', 1 FROM ins_srtgroep WHERE ins_srtgroep_omschrijving = 'Sensoren' UNION ALL
SELECT ins_srtgroep_key, 'ST','Temperatuursensor', 'fa-temperature-half', 2 FROM ins_srtgroep WHERE ins_srtgroep_omschrijving = 'Sensoren' UNION ALL
SELECT ins_srtgroep_key, 'SC','CO2-sensor', 'fa-sensor-cloud', 2 FROM ins_srtgroep WHERE ins_srtgroep_omschrijving = 'Sensoren';
fac.writelog ('INI.FMIS_INI','I', 'INS completed', '');
-- 3. MLD
-- Importeren van een standaard meldingenstructuur (MLD), maakt alle bovenliggende niveaus zelf aan
INSERT INTO fac_imp_mld (ins_srtdiscipline_omschrijving, ins_srtdiscipline_prefix, ins_srtdiscipline_alg, ins_discipline_omschrijving, mld_stdmelding_hint, mld_stdmelding_omschrijving, mld_stdmelding_uitvoertijd, mld_stdmelding_objects_allowed)
SELECT 'FMIS-Storing','S',1,'Gebouw- & installatieonderhoud','fa-lightbulb-cfl-on','Elektrische installatie',5,2 FROM DUAL UNION ALL
SELECT 'FMIS-Storing','S',1,'Gebouw- & installatieonderhoud','fa-door-open','Hang- & sluitwerk(sloten, deurdranger, deurklink etc)',5,2 FROM DUAL UNION ALL
SELECT 'FMIS-Storing','S',1,'Gebouw- & installatieonderhoud','fa-shield-exclamation','Inbraak-/alarminstallatie',5,2 FROM DUAL UNION ALL
SELECT 'FMIS-Storing','S',1,'Gebouw- & installatieonderhoud','fa-temperature-list','Klimaatinstallatie (airco/koelunit)',5,2 FROM DUAL UNION ALL
SELECT 'FMIS-Storing','S',1,'Gebouw- & installatieonderhoud','fa-elevator','Liften',5,2 FROM DUAL UNION ALL
SELECT 'FMIS-Storing','S',1,'Schoonmaak & hygi<EFBFBD>nevoorzieningen','fa-toilet','Sanitair (toilet/urinoir, kraan, wasbak, spoelknop)',5,2 FROM DUAL UNION ALL
SELECT 'FMIS-Storing','S',1,'Gebouw- & installatieonderhoud','fa-lightbulb-exclamation-on','Verlichting',5,2 FROM DUAL UNION ALL
SELECT 'FMIS-Storing','S',1,'Schoonmaak & hygi<EFBFBD>nevoorzieningen','fa-jug-bottle','Schoonmaak',5,2 FROM DUAL UNION ALL
SELECT 'FMIS-Storing','S',1,'Terrein- & groenvoorziening','fa-road','Bestrating',5,2 FROM DUAL UNION ALL
SELECT 'FMIS-Storing','S',1,'Terrein- & groenvoorziening','fa-gas-pump-slash','Elektrische oplaadpunten',5,2 FROM DUAL UNION ALL
SELECT 'FMIS-Storing','S',1,'Terrein- & groenvoorziening','fa-temperature-frigid','Gladheidbestrijding',5,2 FROM DUAL UNION ALL
SELECT 'FMIS-Storing','S',1,'Terrein- & groenvoorziening','fa-tree','Groenonderhoud',5,2 FROM DUAL UNION ALL
SELECT 'FMIS-Storing','S',1,'Terrein- & groenvoorziening','fa-light-emergency-on','Terreinverlichting',5,2 FROM DUAL UNION ALL
SELECT 'FMIS-Storing','S',1,'Toegang & beveiliging','fa-drivers-license','Toegangspas',5,2 FROM DUAL UNION ALL
SELECT 'FMIS-Storing','S',1,'Kantoorbeheer','fa-coffee-pot','Koffiezetapparaat',1,2 FROM DUAL UNION ALL
SELECT 'FMIS-Storing','S',1,'Kantoorbeheer','fa-chair-office','Werkplek',1,2 FROM DUAL UNION ALL
SELECT 'FMIS-Storing','S',1,'ICT','fa-wifi-exclamation','Netwerkstoring',5,2 FROM DUAL UNION ALL
SELECT 'FMIS-Storing','S',1,'ICT','fa-laptop-slash','Hardware',5,2 FROM DUAL UNION ALL
SELECT 'FMIS-Storing','S',1,'Toegang & beveiliging','fa-shield-exclamation','Beveiliging',5,2 FROM DUAL UNION ALL
SELECT 'FMIS-Storing','S',1,'ICT','fa-file-word','Software en applicaties',5,2 FROM DUAL UNION ALL
SELECT 'FMIS-Storing','S',1,'Schoonmaak & hygi<EFBFBD>nevoorzieningen','fa-trash-can-clock','Container is niet geleegd',5,2 FROM DUAL UNION ALL
SELECT 'FMIS-Storing','S',1,'Calamiteiten & BHV','fa-medkit','AED werkt niet/rood lampje',5,2 FROM DUAL UNION ALL
SELECT 'FMIS-Storing','S',1,'Calamiteiten & BHV','fa-fire-extinguisher','Blusmiddelen',5,2 FROM DUAL UNION ALL
SELECT 'FMIS-Storing','S',1,'Gebouw- & installatieonderhoud','fa-house-building','Bouwkundig (dak, kozijnen, wanden, glas, ruitbreuk, lekkage)',5,2 FROM DUAL UNION ALL
SELECT 'FMIS-Aanvraag','A',1,'Toegang & beveiliging','fa-drivers-license','Toegangspas',5,2 FROM DUAL UNION ALL
SELECT 'FMIS-Aanvraag','A',1,'ICT','fa-medkit','Randapparatuur en accessoires',5,2 FROM DUAL UNION ALL
SELECT 'FMIS-Aanvraag','A',1,'ICT','fa-laptop-mobile','Hardware',5,2 FROM DUAL UNION ALL
SELECT 'FMIS-Aanvraag','A',1,'Bedrijfsmiddelen','fa-home-lg','Thuiswerk voorzieningen',5,2 FROM DUAL UNION ALL
SELECT 'FMIS-Aanvraag','A',1,'ICT','fa-globe','Netwerk',5,2 FROM DUAL UNION ALL
SELECT 'FMIS-Aanvraag','A',1,'ICT','fa-file-word','Software en applicaties',5,2 FROM DUAL UNION ALL
SELECT 'FMIS-Aanvraag','A',1,'Toegang & beveiliging','fa-shield-alt','Beveiliging',5,2 FROM DUAL UNION ALL
SELECT 'FMIS-Aanvraag','A',1,'ICT','fa-file-shield','Autorisaties',5,2 FROM DUAL UNION ALL
SELECT 'FMIS-Aanvraag','A',1,'Schoonmaak & hygi<EFBFBD>nevoorzieningen','fa-trash-plus','Extra container',5,2 FROM DUAL UNION ALL
SELECT 'FMIS-Aanvraag','A',1,'Schoonmaak & hygi<EFBFBD>nevoorzieningen','fa-trash-can-clock','Extra afval afvoer verzoek',5,2 FROM DUAL UNION ALL
SELECT 'FMIS-Aanvraag','A',1,'Kantoorbeheer','fa-coffee-beans','Ingredi<EFBFBD>nten t.b.v. koffieautomaat',5,2 FROM DUAL UNION ALL
SELECT 'FMIS-Aanvraag','A',1,'Kantoorbeheer','fa-jug-bottle','Waterflessen t.b.v. waterkoeler',5,2 FROM DUAL UNION ALL
SELECT 'FMIS-Aanvraag','A',1,'Calamiteiten & BHV','fa-medkit','BHV trainingen',5,2 FROM DUAL UNION ALL
SELECT 'FMIS-Aanvraag','A',1,'Calamiteiten & BHV','fa-prescription-bottle-alt','EHBO-middelen',5,2 FROM DUAL UNION ALL
SELECT 'FMIS-Aanvraag','A',1,'Bedrijfsmiddelen','fa-flower-tulip','Bloemen bestellen',5,2 FROM DUAL UNION ALL
SELECT 'FMIS-Aanvraag','A',1,'Bedrijfsmiddelen','fa-car-mirrors','Huurauto',5,2 FROM DUAL UNION ALL
SELECT 'FMIS-Aanvraag','A',1,'Bedrijfsmiddelen','fa-pencil-mechanical','Kantoorartikelen',5,2 FROM DUAL UNION ALL
SELECT 'FMIS-Aanvraag','A',1,'Schoonmaak & hygi<EFBFBD>nevoorzieningen','fa-jug-bottle','Extra schoonmaak (verzoek)',5,2 FROM DUAL UNION ALL
SELECT 'FMIS-Aanvraag','A',1,'Schoonmaak & hygi<EFBFBD>nevoorzieningen','fa-house-chimney-window','Extra glasbewassing (binnen/buiten)',5,2 FROM DUAL UNION ALL
SELECT 'FMIS-Aanvraag','A',1,'Schoonmaak & hygi<EFBFBD>nevoorzieningen','fa-toilet-paper-check','Sanitaire middelen',5,2 FROM DUAL UNION ALL
SELECT 'FMIS-Klacht','K',0,'Klacht','fa-octagon-exclamation','Klacht',5,2 FROM DUAL UNION ALL
SELECT 'FMIS-Klacht','K',0,'Klacht','fa-people-arrows-left-right','Ongewenst gedrag',5,2 FROM DUAL;
-- Dit mag inhoudelijk beter
-- TODO minder exotische meldingen
-- TODO meer variatie in de plaatjes
-- TODO betere suggesties voor parameters als Behandelteam, planbaarheid
INSERT INTO fac_imp_mld (ins_srtdiscipline_omschrijving, ins_srtdiscipline_prefix, ins_srtdiscipline_alg, ins_discipline_omschrijving, mld_stdmelding_hint, mld_stdmelding_omschrijving, mld_stdmelding_uitvoertijd)
SELECT 'FMIS-Aanvraag','A',1,'Afval','fa-recycle','Ophalen/verzamelen afval', 5 FROM DUAL UNION ALL
SELECT 'FMIS-Aanvraag','A',1,'Afval','fa-recycle','Extra container', 5 FROM DUAL UNION ALL
SELECT 'FMIS-Aanvraag','A',1,'Afval','fa-bin-recycle','Zwerfafval (verzamelen)', 5 FROM DUAL UNION ALL
SELECT 'FMIS-Aanvraag','A',1,'Automaten','fa-candy','Fris-/versnapering-automaat', 5 FROM DUAL UNION ALL
SELECT 'FMIS-Aanvraag','A',1,'Automaten','fa-coffee-beans','Ingredi<EFBFBD>nten t.b.v. koffieautomaat', 5 FROM DUAL UNION ALL
SELECT 'FMIS-Aanvraag','A',1,'Automaten','fa-jug-bottle','Waterflessen t.b.v. waterkoeler', 5 FROM DUAL UNION ALL
SELECT 'FMIS-Aanvraag','A',1,'BHV & Veiligheid','fa-medkit','BHV Herhalingstrainingen', 5 FROM DUAL UNION ALL
SELECT 'FMIS-Aanvraag','A',1,'BHV & Veiligheid','fa-medkit','BHV middelen (AED/BHV rugzak-/hesje/megafoon) leveren', 5 FROM DUAL UNION ALL
SELECT 'FMIS-Aanvraag','A',1,'BHV & Veiligheid','fa-jug-bottle','Blusmiddelen (brandblusser/brandslanghaspel)', 5 FROM DUAL UNION ALL
SELECT 'FMIS-Aanvraag','A',1,'BHV & Veiligheid','fa-medkit','EHBO-middelen bestellen', 5 FROM DUAL UNION ALL
SELECT 'FMIS-Aanvraag','A',1,'BHV & Veiligheid','fa-medkit','Ontruimingsplan & -plattegrond (nieuw/wijzigen)', 5 FROM DUAL UNION ALL
SELECT 'FMIS-Aanvraag','A',1,'BHV & Veiligheid','fa-bandage','Pleisterautomaten plaatsen/aanvullen', 5 FROM DUAL UNION ALL
SELECT 'FMIS-Aanvraag','A',1,'Bedrijfskeuken apparatuur','fa-cutlery','Bedrijfskeuken apparatuur', 5 FROM DUAL UNION ALL
SELECT 'FMIS-Aanvraag','A',1,'Bedrijfskleding','fa-shirt','Bedrijfskleding', 5 FROM DUAL UNION ALL
SELECT 'FMIS-Aanvraag','A',1,'Benodigdheden & bedrijfsmiddelen','fa-flower-tulip','Bloemen bestellen', 5 FROM DUAL UNION ALL
SELECT 'FMIS-Aanvraag','A',1,'Benodigdheden & bedrijfsmiddelen','fa-eur','Huurauto', 5 FROM DUAL UNION ALL
SELECT 'FMIS-Aanvraag','A',1,'Benodigdheden & bedrijfsmiddelen','fa-eur','Kantoorbenodigheden', 5 FROM DUAL UNION ALL
SELECT 'FMIS-Aanvraag','A',1,'Benodigdheden & bedrijfsmiddelen','fa-eur','Onderhoud overige bedrijfsmiddelen', 5 FROM DUAL UNION ALL
SELECT 'FMIS-Aanvraag','A',1,'Benodigdheden & bedrijfsmiddelen','fa-eur','Repro en documentbeheer', 5 FROM DUAL UNION ALL
SELECT 'FMIS-Aanvraag','A',1,'Benodigdheden & bedrijfsmiddelen','fa-eur','Vloeistoffen/gassen bestellen', 5 FROM DUAL UNION ALL
SELECT 'FMIS-Aanvraag','A',1,'Catering','fa-coffee','Catering', 5 FROM DUAL UNION ALL
SELECT 'FMIS-Aanvraag','A',1,'Gebouw- & installatieonderhoud','fa-cubes','Automatische deuren(dock-/rol-/schuif-/overhead)', 5 FROM DUAL UNION ALL
SELECT 'FMIS-Aanvraag','A',1,'Gebouw- & installatieonderhoud','fa-cubes','Bouwkundig', 5 FROM DUAL UNION ALL
SELECT 'FMIS-Aanvraag','A',1,'Gebouw- & installatieonderhoud','fa-cubes','Brandblusser/brandhaspel', 5 FROM DUAL UNION ALL
SELECT 'FMIS-Aanvraag','A',1,'Gebouw- & installatieonderhoud','fa-cubes','Brandmeld- & ontruimingsinstallatie(BMC)', 5 FROM DUAL UNION ALL
SELECT 'FMIS-Aanvraag','A',1,'Gebouw- & installatieonderhoud','fa-cubes','Inbraak-/alarminstallatie', 5 FROM DUAL UNION ALL
SELECT 'FMIS-Aanvraag','A',1,'Gebouw- & installatieonderhoud','fa-cubes','Keuring elektrische (hand) apparatuur (NEN3140)', 5 FROM DUAL UNION ALL
SELECT 'FMIS-Aanvraag','A',1,'Gebouw- & installatieonderhoud','fa-cubes','Klimaatinstallatie (airco/koelunit)', 5 FROM DUAL UNION ALL
SELECT 'FMIS-Aanvraag','A',1,'Gebouw- & installatieonderhoud','fa-cubes','Lift', 5 FROM DUAL UNION ALL
SELECT 'FMIS-Aanvraag','A',1,'Gebouw- & installatieonderhoud','fa-cubes','Schade Gebouwonderhoud', 5 FROM DUAL UNION ALL
SELECT 'FMIS-Aanvraag','A',1,'Gebouw- & installatieonderhoud','fa-cubes','Schilderwerkzaamheden', 5 FROM DUAL UNION ALL
SELECT 'FMIS-Aanvraag','A',1,'Gebouw- & installatieonderhoud','fa-cubes','Technische installaties', 5 FROM DUAL UNION ALL
SELECT 'FMIS-Aanvraag','A',1,'Gebouw- & installatieonderhoud','fa-cubes','Verlichting', 5 FROM DUAL UNION ALL
SELECT 'FMIS-Aanvraag','A',1,'Gereedschap, PBM en trappen','fa-wrench','Defect elektrische (hand) apparatuur (NEN3140)', 5 FROM DUAL UNION ALL
SELECT 'FMIS-Aanvraag','A',1,'Gereedschap, PBM en trappen','fa-wrench','Desinfectiemiddel + handschoenen', 5 FROM DUAL UNION ALL
SELECT 'FMIS-Aanvraag','A',1,'Gereedschap, PBM en trappen','fa-wrench','Keuring elektrische (hand) apparatuur (NEN3140)', 5 FROM DUAL UNION ALL
SELECT 'FMIS-Aanvraag','A',1,'Gereedschap, PBM en trappen','fa-wrench','Persoonlijke beschermingsmiddelen', 5 FROM DUAL UNION ALL
SELECT 'FMIS-Aanvraag','A',1,'Hijs- & hef-installaties','fa-industry','Keuring hijs- en hefmiddelen', 5 FROM DUAL UNION ALL
SELECT 'FMIS-Aanvraag','A',1,'Hijs- & hef-installaties','fa-industry','Keuring kleine hijsmiddelen, klimmateriaal en stellingen', 5 FROM DUAL UNION ALL
SELECT 'FMIS-Aanvraag','A',1,'Hijs- & hef-installaties','fa-industry','Kleine hijsmiddelen, klimmateriaal en stellingen', 5 FROM DUAL UNION ALL
SELECT 'FMIS-Aanvraag','A',1,'Meubilair & inrichting','fa-home','Audio visuele middelen', 5 FROM DUAL UNION ALL
SELECT 'FMIS-Aanvraag','A',1,'Meubilair & inrichting','fa-home','Bewegwijzering', 5 FROM DUAL UNION ALL
SELECT 'FMIS-Aanvraag','A',1,'Meubilair & inrichting','fa-home','Binnenbeplanting', 5 FROM DUAL UNION ALL
SELECT 'FMIS-Aanvraag','A',1,'Meubilair & inrichting','fa-home','Meubilair & inrichting', 5 FROM DUAL UNION ALL
SELECT 'FMIS-Aanvraag','A',1,'Meubilair & inrichting','fa-home','Meubilair leveren', 5 FROM DUAL UNION ALL
SELECT 'FMIS-Aanvraag','A',1,'Meubilair & inrichting','fa-home','Sleutel leveren t.b.v. meubilair', 5 FROM DUAL UNION ALL
SELECT 'FMIS-Aanvraag','A',1,'Meubilair & inrichting','fa-home','Vloerbedekking (nieuw/vervangen)', 5 FROM DUAL UNION ALL
SELECT 'FMIS-Aanvraag','A',1,'Ongedierte bestrijding','fa-bug','Ongediertebestrijding', 5 FROM DUAL UNION ALL
SELECT 'FMIS-Aanvraag','A',1,'Ongedierte bestrijding','fa-bug','Pest Control producten(lokaasbakjes, UV lamp, overige)', 5 FROM DUAL UNION ALL
SELECT 'FMIS-Aanvraag','A',1,'Ongedierte bestrijding','fa-bug','Verdelging en preventieve controle', 5 FROM DUAL UNION ALL
SELECT 'FMIS-Aanvraag','A',1,'Post- & koeriersdiensten','fa-envelopes-bulk','Benodigheden & middelen dienstverlening post', 5 FROM DUAL UNION ALL
SELECT 'FMIS-Aanvraag','A',1,'Post- & koeriersdiensten','fa-person-dolly','Koerierzendingen', 5 FROM DUAL UNION ALL
SELECT 'FMIS-Aanvraag','A',1,'Receptie & beveiliging','fa-user-police-tie','Extra inzet receptie', 5 FROM DUAL UNION ALL
SELECT 'FMIS-Aanvraag','A',1,'Receptie & beveiliging','fa-address-card','Extra openings-/sluitronde', 5 FROM DUAL UNION ALL
SELECT 'FMIS-Aanvraag','A',1,'Receptie & beveiliging','fa-address-card','Inzet Verkeersregelaar(s)', 5 FROM DUAL UNION ALL
SELECT 'FMIS-Aanvraag','A',1,'Receptie & beveiliging','fa-user-police','Inzet extra beveiliging', 5 FROM DUAL UNION ALL
SELECT 'FMIS-Aanvraag','A',1,'Receptie & beveiliging','fa-shield-keyhole','Plaatsen/vervangen (elektronisch) slot/sleutel', 5 FROM DUAL UNION ALL
SELECT 'FMIS-Aanvraag','A',1,'Schoonmaak','fa-eraser','Extra schoonmaak (verzoek)', 5 FROM DUAL UNION ALL
SELECT 'FMIS-Aanvraag','A',1,'Schoonmaak','fa-eraser','Gevelreiniging (extra)', 5 FROM DUAL UNION ALL
SELECT 'FMIS-Aanvraag','A',1,'Schoonmaak','fa-eraser','Glasbewassing (binnen/buiten)', 5 FROM DUAL UNION ALL
SELECT 'FMIS-Aanvraag','A',1,'Schoonmaak','fa-eraser','Sanitaire middelen', 5 FROM DUAL UNION ALL
SELECT 'FMIS-Aanvraag','A',1,'Terrein- & groenvoorziening','fa-tree','Elektrische oplaadpunten', 5 FROM DUAL UNION ALL
SELECT 'FMIS-Aanvraag','A',1,'Terrein- & groenvoorziening','fa-tree','Gladheidsbestrijding', 5 FROM DUAL UNION ALL
SELECT 'FMIS-Aanvraag','A',1,'Terrein- & groenvoorziening','fa-tree','Groenonderhoud', 5 FROM DUAL UNION ALL
SELECT 'FMIS-Aanvraag','A',1,'Terrein- & groenvoorziening','fa-tree','Hekwerken (onderhoud)', 5 FROM DUAL UNION ALL
SELECT 'FMIS-Aanvraag','A',1,'Terrein- & groenvoorziening','fa-tree','Overige aanvragen (toegangscontrole/hekwerken)', 5 FROM DUAL UNION ALL
SELECT 'FMIS-Aanvraag','A',1,'Terrein- & groenvoorziening','fa-tree','Terrein- & groenvoorziening', 5 FROM DUAL UNION ALL
SELECT 'FMIS-Aanvraag','A',1,'Terrein- & groenvoorziening','fa-tree','Terreinverlichting', 5 FROM DUAL UNION ALL
SELECT 'FMIS-Aanvraag','A',1,'Terrein- & groenvoorziening','fa-tree','Toegangspoorten & slagbomen', 5 FROM DUAL UNION ALL
SELECT 'FMIS-Aanvraag','A',1,'Verhuizing','fa-truck','Verhuismiddelen leveren', 5 FROM DUAL UNION ALL
SELECT 'FMIS-Aanvraag','A',1,'Verhuizing','fa-truck','Verhuizing extern', 5 FROM DUAL UNION ALL
SELECT 'FMIS-Aanvraag','A',1,'Verhuizing','fa-truck','Verhuizing intern', 5 FROM DUAL UNION ALL
SELECT 'FMIS-Klacht','K',0,'Afval','fa-recycle','Klacht mbt Afval', 5 FROM DUAL UNION ALL
SELECT 'FMIS-Klacht','K',0,'Automaten','fa-server','Klacht mbt automaten', 5 FROM DUAL UNION ALL
SELECT 'FMIS-Klacht','K',0,'BHV & Veiligheid','fa-medkit','Klacht mbt BHV & Veiligheid', 5 FROM DUAL UNION ALL
SELECT 'FMIS-Klacht','K',0,'Bedrijfskeuken apparatuur','fa-cutlery','Bedrijfskeuken apparatuur', 5 FROM DUAL UNION ALL
SELECT 'FMIS-Klacht','K',0,'Bedrijfskleding','fa-vest-patches','Klacht mbt Bedrijfskleding', 5 FROM DUAL UNION ALL
SELECT 'FMIS-Klacht','K',0,'Facilitaire dienstverlening','fa-id-badge','Klacht mbt facilitaire dienstverlening', 5 FROM DUAL UNION ALL
SELECT 'FMIS-Klacht','K',0,'Gebouw- & installatieonderhoud','fa-cubes','Klacht mbt onderhoud', 5 FROM DUAL UNION ALL
SELECT 'FMIS-Klacht','K',0,'Meubilair & inrichting','fa-home','Klacht mbt Meubilair & inrichting', 5 FROM DUAL UNION ALL
SELECT 'FMIS-Klacht','K',0,'Ongedierte bestrijding','fa-bug','Klacht mbt Ongediertebestrijding', 5 FROM DUAL UNION ALL
SELECT 'FMIS-Klacht','K',0,'Koeriersdiensten','fa-truck-fast','Klacht mbt koeriersdiensten', 5 FROM DUAL UNION ALL
SELECT 'FMIS-Klacht','K',0,'Receptie & beveiliging','fa-shield-check','Klacht mbt Receptie & beveiliging', 5 FROM DUAL UNION ALL
SELECT 'FMIS-Klacht','K',0,'Schoonmaak','fa-eraser','Klacht mbt Schoonmaak', 5 FROM DUAL UNION ALL
SELECT 'FMIS-Klacht','K',0,'Terrein- & groenvoorziening','fa-tree','Klacht mbt terrein- & groenvoorziening', 5 FROM DUAL UNION ALL
SELECT 'FMIS-Storing','S',1,'Afval','fa-recycle','Container is niet geleegd', 5 FROM DUAL UNION ALL
SELECT 'FMIS-Storing','S',1,'Automaten','fa-server','Fris-/versnapering-automaat', 5 FROM DUAL UNION ALL
SELECT 'FMIS-Storing','S',1,'Automaten','fa-server','Koffieautomaat', 5 FROM DUAL UNION ALL
SELECT 'FMIS-Storing','S',1,'Automaten','fa-server','Waterkoeler', 5 FROM DUAL UNION ALL
SELECT 'FMIS-Storing','S',1,'BHV & Veiligheid','fa-medkit','AED werkt niet/rood lampje', 5 FROM DUAL UNION ALL
SELECT 'FMIS-Storing','S',1,'BHV & Veiligheid','fa-medkit','Blusmiddelen (brandblusser/brandslanghaspel)', 5 FROM DUAL UNION ALL
SELECT 'FMIS-Storing','S',1,'BHV & Veiligheid','fa-medkit','Brandslaghaspel (kast)', 5 FROM DUAL UNION ALL
SELECT 'FMIS-Storing','S',1,'BHV & Veiligheid','fa-medkit','Keuring blusapparatuur', 5 FROM DUAL UNION ALL
SELECT 'FMIS-Storing','S',1,'BHV & Veiligheid','fa-medkit','Legionellabeheer en bemonstering', 5 FROM DUAL UNION ALL
SELECT 'FMIS-Storing','S',1,'BHV & Veiligheid','fa-medkit','Verzegeling blusapparatuur', 5 FROM DUAL UNION ALL
SELECT 'FMIS-Storing','S',1,'Bedrijfskeuken apparatuur','fa-cutlery','Bedrijfskeuken apparatuur', 5 FROM DUAL UNION ALL
SELECT 'FMIS-Storing','S',1,'Gebouw- & installatieonderhoud','fa-cubes','Automatische deuren(dock-/rol-/schuif-/overhead)', 5 FROM DUAL UNION ALL
SELECT 'FMIS-Storing','S',1,'Gebouw- & installatieonderhoud','fa-cubes','Bouwkundig', 5 FROM DUAL UNION ALL
SELECT 'FMIS-Storing','S',1,'Gebouw- & installatieonderhoud','fa-cubes','Bouwkundig (dak, kozijnen, wanden, glas, ruitbreuk, lekkage)', 5 FROM DUAL UNION ALL
SELECT 'FMIS-Storing','S',1,'Gebouw- & installatieonderhoud','fa-cubes','Brandblusser/brandhaspel', 5 FROM DUAL UNION ALL
SELECT 'FMIS-Storing','S',1,'Gebouw- & installatieonderhoud','fa-cubes','Brandmeld- & ontruimingsinstallatie(BMC)', 5 FROM DUAL UNION ALL
SELECT 'FMIS-Storing','S',1,'Gebouw- & installatieonderhoud','fa-cubes','Dak- en gevelinstallaties', 5 FROM DUAL UNION ALL
SELECT 'FMIS-Storing','S',1,'Gebouw- & installatieonderhoud','fa-cubes','Eigenaarsinstallaties (Eigenaar pand)', 5 FROM DUAL UNION ALL
SELECT 'FMIS-Storing','S',1,'Gebouw- & installatieonderhoud','fa-cubes','Elektrische installatie', 5 FROM DUAL UNION ALL
SELECT 'FMIS-Storing','S',1,'Gebouw- & installatieonderhoud','fa-cubes','Hang- & sluitwerk(sloten, deurdranger, deurklink etc)', 5 FROM DUAL UNION ALL
SELECT 'FMIS-Storing','S',1,'Gebouw- & installatieonderhoud','fa-cubes','Inbraak-/alarminstallatie', 5 FROM DUAL UNION ALL
SELECT 'FMIS-Storing','S',1,'Gebouw- & installatieonderhoud','fa-cubes','Klimaatinstallatie (airco/koelunit)', 5 FROM DUAL UNION ALL
SELECT 'FMIS-Storing','S',1,'Gebouw- & installatieonderhoud','fa-cubes','Liften', 5 FROM DUAL UNION ALL
SELECT 'FMIS-Storing','S',1,'Gebouw- & installatieonderhoud','fa-cubes','Noodverlichting', 5 FROM DUAL UNION ALL
SELECT 'FMIS-Storing','S',1,'Gebouw- & installatieonderhoud','fa-cubes','Riolering, leidingen & kanalen', 5 FROM DUAL UNION ALL
SELECT 'FMIS-Storing','S',1,'Gebouw- & installatieonderhoud','fa-cubes','Sanitair (toilet/urinoir, kraan, wasbak, spoelknop)', 5 FROM DUAL UNION ALL
SELECT 'FMIS-Storing','S',1,'Gebouw- & installatieonderhoud','fa-cubes','Schade Gebouwonderhoud', 5 FROM DUAL UNION ALL
SELECT 'FMIS-Storing','S',1,'Gebouw- & installatieonderhoud','fa-cubes','Sprinkler installatie', 5 FROM DUAL UNION ALL
SELECT 'FMIS-Storing','S',1,'Gebouw- & installatieonderhoud','fa-cubes','Technische installaties', 5 FROM DUAL UNION ALL
SELECT 'FMIS-Storing','S',1,'Gebouw- & installatieonderhoud','fa-cubes','Verlichting', 5 FROM DUAL UNION ALL
SELECT 'FMIS-Storing','S',1,'Gebouw- & installatieonderhoud','fa-cubes','Witgoed (wasmachines, koelkasten, drogers etc.)', 5 FROM DUAL UNION ALL
SELECT 'FMIS-Storing','S',1,'Gebouw- & installatieonderhoud','fa-cubes','Zonwering (binnen/buiten)', 5 FROM DUAL UNION ALL
SELECT 'FMIS-Storing','S',1,'Hijs- & hef-installaties','fa-industry','Calamiteit Hijs- & hef-installaties', 5 FROM DUAL UNION ALL
SELECT 'FMIS-Storing','S',1,'Hijs- & hef-installaties','fa-industry','Hijs- & hef-installaties', 5 FROM DUAL UNION ALL
SELECT 'FMIS-Storing','S',1,'Hijs- & hef-installaties','fa-industry','Kleine hijsmiddelen, klimmateriaal en stellingen', 5 FROM DUAL UNION ALL
SELECT 'FMIS-Storing','S',1,'Ongedierte bestrijding','fa-bug','Ongediertebestrijding', 5 FROM DUAL UNION ALL
SELECT 'FMIS-Storing','S',1,'Receptie & beveiliging','fa-address-card','Plaatsen/vervangen (electronisch) slot/sleutel', 5 FROM DUAL UNION ALL
SELECT 'FMIS-Storing','S',1,'Schoonmaak','fa-eraser','Sanitaire accessoires', 5 FROM DUAL UNION ALL
SELECT 'FMIS-Storing','S',1,'Schoonmaak','fa-eraser','Schoonmaak', 5 FROM DUAL UNION ALL
SELECT 'FMIS-Storing','S',1,'Terrein- & groenvoorziening','fa-tree','Bestrating', 5 FROM DUAL UNION ALL
SELECT 'FMIS-Storing','S',1,'Terrein- & groenvoorziening','fa-tree','Elektrische oplaadpunten', 5 FROM DUAL UNION ALL
SELECT 'FMIS-Storing','S',1,'Terrein- & groenvoorziening','fa-tree','Gladheidbestrijding', 5 FROM DUAL UNION ALL
SELECT 'FMIS-Storing','S',1,'Terrein- & groenvoorziening','fa-tree','Groenonderhoud', 5 FROM DUAL UNION ALL
SELECT 'FMIS-Storing','S',1,'Terrein- & groenvoorziening','fa-tree','Terreinverlichting', 5 FROM DUAL UNION ALL
SELECT 'FMIS-Storing','S',1,'Terrein- & groenvoorziening','fa-tree','Toegangscontrole/inbraakalarm systeem', 5 FROM DUAL;
-- beetje lomp, wat vinden we?
UPDATE fac_imp_mld SET mld_stdmelding_slabewaken = 0, mld_stdmelding_notfrontend = 0
@@ -103,18 +271,31 @@ UPDATE fac_imp_mld SET mld_stdmelding_slabewaken = 0, mld_stdmelding_notfrontend
UPDATE fac_imp_mld SET mld_stdmelding_slabewaken = 1, mld_stdmelding_notfrontend = 1
WHERE ins_srtdiscipline_omschrijving = 'FMIS-Melding';
UPDATE fac_imp_mld SET mld_stdmelding_groep = SUBSTR(ins_discipline_omschrijving, 1, 30)
WHERE ins_srtdiscipline_omschrijving LIKE 'FMIS-%';
WHERE ins_srtdiscipline_omschrijving like 'FMIS-%';
BEGIN fac_update_mld(ini.getImportKey('MLD')); END;
DELETE FROM fac_imp_mld;
-- De import ondersteunde de image niet, dus die ging via de hint
--UPDATE ins_srtdiscipline SET ins_srtdiscipline_kostenklant = 8 WHERE ins_srtdiscipline_omschrijving = 'FMIS-Klacht';
--UPDATE fac_setting
-- SET fac_setting_pvalue =
-- (SELECT mld_stdmelding_key
-- FROM mld_stdmelding
-- WHERE mld_stdmelding_omschrijving = 'Ontvangen mail bericht')
-- WHERE fac_setting_name = 'defaultstdmelding';
--INSERT INTO fac_email_setting (fac_email_setting_user, fac_email_setting_frommode, fac_email_setting_action, fac_email_setting_attachpath)
-- VALUES ('servicedesk', 0, 'FAC.processemail', '*flexfilespath');
-- huh? O, de import ondersteunde de image niet, dus die ging via de hint
UPDATE mld_stdmelding
SET mld_stdmelding_image = mld_stdmelding_hint,
mld_stdmelding_hint = NULL
WHERE mld_stdmelding_hint IS NOT NULL AND mld_stdmelding_image IS NULL;
-- Voeg bijlage toe aan alle vakgroeptypen
-- Als die als
INSERT INTO mld_srtkenmerk (mld_srtkenmerk_omschrijving, mld_srtkenmerk_kenmerktype) VALUES ('Bijlagen', 'M');
INSERT INTO mld_kenmerk (mld_srtkenmerk_key, mld_kenmerk_niveau, mld_kenmerk_volgnummer, mld_kenmerk_groep) SELECT mld_srtkenmerk_key, 'A', 100, 0
FROM mld_srtkenmerk
@@ -123,6 +304,17 @@ INSERT INTO mld_kenmerk (mld_srtkenmerk_key, mld_kenmerk_niveau, mld_kenmerk_vol
fac.writelog ('INI.FMIS_INI','I', 'MLD completed', '');
-- 4. RES
-- Vraag is of we dit niet UIT de RES_INI moeten halen en hier moeten definieren.
-- Antwoord is: Waarom?
-- Daarom hier ter referentie, mogelijk wel aanvullen?
--INSERT INTO RES_OPSTELLING (res_opstelling_key,res_opstelling_omschrijving) VALUES (1,'Standaard');
--INSERT INTO res_srtactiviteit (res_srtactiviteit_key, res_srtactiviteit_omschrijving, res_srtactiviteit_soort) VALUES (1, 'Ruimte', 0);
--INSERT INTO res_srtactiviteit (res_srtactiviteit_key, res_srtactiviteit_omschrijving, res_srtactiviteit_soort) VALUES (2, 'Voorzieningen', 1);
--INSERT INTO res_activiteit (res_activiteit_omschrijving, res_srtactiviteit_key) VALUES ('Vergadering', 1);
--INSERT INTO res_activiteit (res_activiteit_omschrijving, res_srtactiviteit_key) VALUES ('N.v.t.', 2);
-- en dan nog wat meer, want we hoeven minder neutraal te zijn: Evenement, Hybride vergadering, ..
INSERT INTO res_srtactiviteit (res_srtactiviteit_omschrijving, res_srtactiviteit_soort, res_srtactiviteit_prefix,
res_srtactiviteit_kpnverplicht, res_srtactiviteit_metomschr, res_srtactiviteit_metopmerk, res_srtactiviteit_metaantal)
VALUES ('Flexwerken', 1, 'WP', 2, 0, 0, 0);
@@ -164,17 +356,17 @@ fac.writelog ('INI.FMIS_INI','I', 'RES completed', '');
-- 5. BEZ
-- Zaken uit BEZ_INI hier overgenomen
INSERT INTO bez_actie_groep (bez_actie_groep_omschrijving, bez_actie_groep_default) VALUES ('Standaard', 1);
INSERT INTO bez_actie (bez_actie_omschrijving, bez_actie_groep_key) SELECT 'Onbekend' , bez_actie_groep_key FROM bez_actie_groep WHERE bez_actie_groep_omschrijving = 'Standaard';
INSERT INTO bez_actie (bez_actie_omschrijving, bez_actie_groep_key) SELECT 'Ontvanger bellen' , bez_actie_groep_key FROM bez_actie_groep WHERE bez_actie_groep_omschrijving = 'Standaard';
INSERT INTO bez_actie (bez_actie_omschrijving, bez_actie_groep_key) SELECT 'Begeleiden naar ontvanger', bez_actie_groep_key FROM bez_actie_groep WHERE bez_actie_groep_omschrijving = 'Standaard';
INSERT INTO bez_actie (bez_actie_omschrijving, bez_actie_groep_key) SELECT 'Verwijzen naar ontvanger' , bez_actie_groep_key FROM bez_actie_groep WHERE bez_actie_groep_omschrijving = 'Standaard';
INSERT INTO bez_actie (bez_actie_omschrijving, bez_actie_groep_key) SELECT 'Op laten halen (bellen)' , bez_actie_groep_key FROM bez_actie_groep WHERE bez_actie_groep_omschrijving = 'Standaard';
INSERT INTO bez_actie_groep (bez_actie_groep_omschrijving, bez_actie_groep_default) VALUES ('FMIS-Standaard', 1);
INSERT INTO bez_actie (bez_actie_omschrijving, bez_actie_groep_key) (SELECT 'Onbekend' , bez_actie_groep_key FROM bez_actie_groep WHERE bez_actie_groep_omschrijving = 'FMIS-Standaard');
INSERT INTO bez_actie (bez_actie_omschrijving, bez_actie_groep_key) (SELECT 'Ontvanger bellen' , bez_actie_groep_key FROM bez_actie_groep WHERE bez_actie_groep_omschrijving = 'FMIS-Standaard');
INSERT INTO bez_actie (bez_actie_omschrijving, bez_actie_groep_key) (SELECT 'Begeleiden naar ontvanger', bez_actie_groep_key FROM bez_actie_groep WHERE bez_actie_groep_omschrijving = 'FMIS-Standaard');
INSERT INTO bez_actie (bez_actie_omschrijving, bez_actie_groep_key) (SELECT 'Verwijzen naar ontvanger' , bez_actie_groep_key FROM bez_actie_groep WHERE bez_actie_groep_omschrijving = 'FMIS-Standaard');
INSERT INTO bez_actie (bez_actie_omschrijving, bez_actie_groep_key) (SELECT 'Op laten halen (bellen)' , bez_actie_groep_key FROM bez_actie_groep WHERE bez_actie_groep_omschrijving = 'FMIS-Standaard');
fac.writelog ('INI.FMIS_INI','I', 'BEZ completed', '');
-- 6. CNT
/* DECLARE
DECLARE
v_discipline_key ins_tab_discipline.ins_discipline_key%TYPE;
v_key cnt_srtkenmerk.cnt_srtkenmerk_key%TYPE;
BEGIN
@@ -203,15 +395,14 @@ BEGIN
cnt_kenmerk_volgnummer,
cnt_kenmerk_groep)
SELECT v_key, ins_discipline_key, 'S', 100, 0 FROM cnt_discipline;
END; */
END;
fac.writelog ('INI.FMIS_INI','I', 'CNT completed', '');
-- 7. FAQ
INSERT INTO ins_tab_discipline (ins_discipline_omschrijving, ins_discipline_module) VALUES ('Facilitaire kennisbank', 'FAQ');
INSERT INTO ins_tab_discipline (ins_discipline_omschrijving, ins_discipline_module) VALUES ('Facilitaire Kennisbank', 'FAQ');
fac.writelog ('INI.FMIS_INI','I', 'FAQ completed', '');
-- 8. MSG
-- Misschien ook hier nog een berichtje, anders iig de catalogi
INSERT INTO ins_tab_discipline (ins_discipline_omschrijving, ins_discipline_module) VALUES ('Algemene berichten', 'MSG');
@@ -221,11 +412,11 @@ fac.writelog ('INI.FMIS_INI','I', 'MSG completed', '');
-- 9. CAD
-- De standaardthema's uit CAD-INI van vroeger heb je niet met ITSM nodig, dus horen bij FMIS
-- De kunt makkelijk beargumenteren dat PRJ-thema's er dan ook bij zouden horen.
INSERT INTO cad_legenda (cad_legenda_omschrijving, cad_legenda_discreet) VALUES ('Bezetting', 1); -- naam mag je later wel aanpassen, nu handig uniek
INSERT INTO cad_legendawaarde (cad_legenda_key, cad_legendawaarde_value, cad_legendawaarde_rgb, cad_legendawaarde_omschr) SELECT MAX(cad_legenda_key),'0','33CC33','hele dag beschikbaar' FROM cad_legenda WHERE cad_legenda_omschrijving='Bezetting';
INSERT INTO cad_legendawaarde (cad_legenda_key, cad_legendawaarde_value, cad_legendawaarde_rgb, cad_legendawaarde_omschr) SELECT MAX(cad_legenda_key),'1','FF9900','''s middags beschikbaar' FROM cad_legenda WHERE cad_legenda_omschrijving='Bezetting';
INSERT INTO cad_legendawaarde (cad_legenda_key, cad_legendawaarde_value, cad_legendawaarde_rgb, cad_legendawaarde_omschr) SELECT MAX(cad_legenda_key),'2','FFFF00','''s ochtends beschikbaar' FROM cad_legenda WHERE cad_legenda_omschrijving='Bezetting';
INSERT INTO cad_legendawaarde (cad_legenda_key, cad_legendawaarde_value, cad_legendawaarde_rgb, cad_legendawaarde_omschr) SELECT MAX(cad_legenda_key),'3','FF0000','hele dag bezet' FROM cad_legenda WHERE cad_legenda_omschrijving='Bezetting';
INSERT INTO cad_legenda (cad_legenda_omschrijving, cad_legenda_discreet) VALUES ('FMIS-Bezetting', 1); -- naam mag je later wel aanpassen, nu handig uniek
INSERT INTO cad_legendawaarde (cad_legenda_key, cad_legendawaarde_value, cad_legendawaarde_rgb, cad_legendawaarde_omschr) SELECT MAX(cad_legenda_key),'0','33CC33','hele dag beschikbaar' FROM cad_legenda WHERE cad_legenda_omschrijving='FMIS-Bezetting';
INSERT INTO cad_legendawaarde (cad_legenda_key, cad_legendawaarde_value, cad_legendawaarde_rgb, cad_legendawaarde_omschr) SELECT MAX(cad_legenda_key),'1','FF9900','''s middags beschikbaar' FROM cad_legenda WHERE cad_legenda_omschrijving='FMIS-Bezetting';
INSERT INTO cad_legendawaarde (cad_legenda_key, cad_legendawaarde_value, cad_legendawaarde_rgb, cad_legendawaarde_omschr) SELECT MAX(cad_legenda_key),'2','FFFF00','''s ochtends beschikbaar' FROM cad_legenda WHERE cad_legenda_omschrijving='FMIS-Bezetting';
INSERT INTO cad_legendawaarde (cad_legenda_key, cad_legendawaarde_value, cad_legendawaarde_rgb, cad_legendawaarde_omschr) SELECT MAX(cad_legenda_key),'3','FF0000','hele dag bezet' FROM cad_legenda WHERE cad_legenda_omschrijving='FMIS-Bezetting';
INSERT INTO cad_thema (cad_thema_omschrijving, cad_legenda_key, cad_thema_view, cad_thema_type, fac_functie_key)
SELECT 'Ruimtefunctie', 1, 'cad_v_thema_srtruimte', 1, fac_functie_key
@@ -251,7 +442,7 @@ INSERT INTO cad_thema (cad_thema_omschrijving, cad_legenda_key, cad_thema_view,
SELECT 'Werkplekbezetting', cad_legenda_key, 'cad_v_thema_deel_res_datum', 17, fac_functie_key
FROM fac_functie, cad_legenda
WHERE fac_functie_code = 'WEB_RESUSE'
AND cad_legenda_omschrijving = 'Bezetting';
AND cad_legenda_omschrijving = 'FMIS-Bezetting';
-- CAD labels
INSERT INTO cad_label (cad_label_omschrijving, cad_label_view, cad_label_type, fac_functie_key, cad_label_size)
@@ -281,14 +472,14 @@ INSERT INTO cad_label (cad_label_omschrijving, cad_label_view, cad_label_type, f
--- INFOBOARD rapportage
INSERT INTO fac_usrrap (fac_usrrap_omschrijving, fac_usrrap_view_name, fac_usrrap_info, fac_functie_key, fac_usrrap_groep)
SELECT 'Actuele reserveringen'
SELECT 'FMIS: Actuele reserveringen'
, 'res_v_rap_infobordframe'
, 'Reserveringsoverzicht tbv informatieschermen'
, fac_functie_key
, 'RESERVERINGEN'
FROM fac_functie
WHERE fac_functie_code='WEB_RESFOF';
-- Dit is netjes de Engelse vertaling, was eerder voorhanden in fac_ini. Zou striktgenomen voor alle teksten moeten, tzt.
INSERT INTO fac_locale (fac_locale_lang, fac_locale_kolomkeyval, fac_locale_kolomnaam, fac_locale_tekst)
SELECT 'EN', MAX(fac_usrrap_key), 'FAC_USRRAP_OMSCHRIJVING', 'INFOBOARD: Actual reservations' FROM fac_usrrap WHERE fac_usrrap_view_name = 'res_v_rap_infobordframe';
INSERT INTO fac_locale (fac_locale_lang, fac_locale_kolomkeyval, fac_locale_kolomnaam, fac_locale_tekst)
@@ -301,39 +492,38 @@ UPDATE fac_setting SET fac_setting_pvalue = (SELECT MAX(fac_usrrap_key) FROM fac
fac.writelog ('INI.FMIS_INI','I', 'CAD completed', '');
-- 10. UDR
-- Kunnen we een paar FMIS-rapporten verzinnen? Neu.
-- Instellingen: Alleen settings die specifiek voor FM zijn en intrinsiek afwijken van de standaardinstellingen(!)
-- Settings: Alleen settings die specifiek voor FM zijn en intrinsiek afwijken van de standaardinstellingen(!)
-- Algemeen UPDATE fac_setting SET fac_setting_pvalue = 'no_reply@' || user || '.facilitor.nl' WHERE fac_setting_name = 'puo_fromaddress';
-- FMIS impliceert het een en ander
UPDATE fac_setting SET fac_setting_pvalue = '1' WHERE fac_setting_name = 'faq_enabled';
UPDATE fac_setting SET fac_setting_pvalue = '1' WHERE fac_setting_name = 'mobile_enabled';
UPDATE fac_setting SET fac_setting_pvalue = '1' WHERE fac_setting_name = 'qrc_enabled';
UPDATE fac_setting SET fac_setting_pvalue = '1' WHERE fac_setting_name = 'vis_afspraak_host_uses_keys';
UPDATE fac_setting SET fac_setting_pvalue = '1' WHERE fac_setting_name = 'vis_afspraak_onrgoed_uses_keys';
UPDATE fac_setting SET fac_setting_pvalue = '2' WHERE fac_setting_name = 'portalmenu_combine_single';
UPDATE fac_setting SET fac_setting_pvalue = '1' WHERE fac_setting_name = 'fac_usrrap_mode';
UPDATE fac_setting SET fac_setting_pvalue = 'false' WHERE fac_setting_name = 'mld_accept_confirm';
UPDATE fac_setting SET fac_setting_pvalue = '1' WHERE fac_setting_name = 'mld_use_order_approval';
UPDATE fac_setting SET fac_setting_pvalue = '1' WHERE fac_setting_name = 'vis_afspraak_host_uses_keys'; -- vind ik beter, terug kan altijd nog
UPDATE fac_setting SET fac_setting_pvalue = '1' WHERE fac_setting_name = 'vis_afspraak_onrgoed_uses_keys'; -- vind ik beter, terug kan altijd nog
fac.writelog ('INI.FMIS_INI','I', 'Settings completed', '');
-- Autorisatiegroepen
-- We definieren deze groepen: Medewerker (_DEFAULT), Frontoffice, Backoffice, Beheerder (_ADMIN)
INSERT INTO fac_groep (fac_groep_omschrijving, fac_groep_opmerking) VALUES ('FMIS-Frontoffice', 'FMIS-autorisatiegroep voor frontoffice users');
INSERT INTO fac_groep (fac_groep_omschrijving, fac_groep_opmerking) VALUES ('FMIS-Backoffice', 'FMIS-autorisatiegroep voor backoffice users');
INSERT INTO fac_groep (fac_groep_omschrijving, fac_groep_opmerking) VALUES ('Applicatiebeheer', 'Autorisatiegroep voor functionele applicatiebeheerders van de klant (licentie rechten)');
INSERT INTO fac_groep (fac_groep_omschrijving, fac_groep_opmerking) VALUES ('_TESTERS', 'Autorisatiegroep voor testers van de klant tbv Facilitor trainingen');
UPDATE fac_groep
SET fac_groep_opmerking = 'Autorisatiegroep met alle applicatiebeheerrechten die mogelijk zijn (ook niet-licentierechten)'
WHERE fac_groep_omschrijving = '_Admin';
-- Toekennen van de rechten om aan het werk te kunnen
-- We proberen ons zo goed mogelijk te beperken tot de functionaliteit die we hier zelf net hebben gedefinieerd.
-- In het bijzonder willen we geen bij-effecten als MLDUSE voor andere disciplines die toevallig al bestaan (bv uit ITSM_INI)
-- gaan toekennen. Voor Admin-groepen is dat wat minder strikt en doen we wel ons best.
-- Vooralsnog supporten we niet compleet dat je achteraf nog kunt initialiseren he.
-- Default rechten
-- Medewerker rechten
INSERT INTO fac_groeprechten (fac_groep_key, fac_functie_key, ins_discipline_key,
fac_gebruiker_alg_level_read, fac_gebruiker_alg_level_write,
fac_gebruiker_prs_level_read, fac_gebruiker_prs_level_write)
SELECT g.fac_groep_key, f.fac_functie_key, d.ins_discipline_key, -1, -1, -1, -1
FROM fac_functie f, ins_tab_discipline d, fac_groep g, ins_srtdiscipline sd
WHERE f.fac_functie_code IN ('WEB_RESUSE', 'WEB_MLDUSE', 'WEB_FAQUSE')
WHERE f.fac_functie_code IN ('WEB_RESUSE', 'WEB_MLDUSE', 'WEB_BESUSE','WEB_BEZUSE','WEB_FAQUSE','WEB_PROFIL')
AND f.fac_functie_module = d.ins_discipline_module
AND g.fac_groep_upper = '_DEFAULT'
AND d.ins_srtdiscipline_key = sd.ins_srtdiscipline_key(+)
@@ -345,37 +535,13 @@ INSERT INTO fac_groeprechten (fac_groep_key, fac_functie_key, ins_discipline_key
AND gr.ins_discipline_key = d.ins_discipline_key
AND gr.fac_groep_key = g.fac_groep_key);
-- Default rechten die niet te koppelen zijn aan een discipline (globale rechten)
INSERT INTO fac_groeprechten (fac_groep_key,
fac_functie_key,
ins_discipline_key,
fac_gebruiker_alg_level_read,
fac_gebruiker_alg_level_write,
fac_gebruiker_prs_level_read,
fac_gebruiker_prs_level_write)
SELECT g.fac_groep_key,
f.fac_functie_key,
NULL,
-1,
-1,
-1,
-1
FROM fac_functie f, fac_groep g --, ins_tab_discipline d, ins_srtdiscipline sd
WHERE f.fac_functie_code IN ('WEB_BEZUSE','WEB_PROFIL', 'WEB_PRSOBJ', 'WEB_PHSRCH')
AND g.fac_groep_upper = '_DEFAULT'
AND NOT EXISTS
(SELECT gr.fac_groeprechten_key
FROM fac_groeprechten gr
WHERE gr.fac_functie_key = f.fac_functie_key
AND gr.fac_groep_key = g.fac_groep_key);
-- Frontoffice rechten
INSERT INTO fac_groeprechten (fac_groep_key, fac_functie_key, ins_discipline_key,
fac_gebruiker_alg_level_read, fac_gebruiker_alg_level_write,
fac_gebruiker_prs_level_read, fac_gebruiker_prs_level_write)
SELECT g.fac_groep_key, f.fac_functie_key, d.ins_discipline_key, -1, -1, -1, -1
FROM fac_functie f, ins_tab_discipline d, fac_groep g, ins_srtdiscipline sd
WHERE f.fac_functie_code IN ('WEB_RESFOF', 'WEB_MLDFOF', 'WEB_FAQFOF')
WHERE f.fac_functie_code IN ('WEB_RESFOF', 'WEB_MLDFOF', 'WEB_BESFOF', 'WEB_BEZFOF', 'WEB_FAQFOF', 'WEB_INSFOF')
AND f.fac_functie_module = d.ins_discipline_module
AND g.fac_groep_upper = 'FMIS-FRONTOFFICE'
AND d.ins_srtdiscipline_key = sd.ins_srtdiscipline_key(+)
@@ -387,37 +553,13 @@ INSERT INTO fac_groeprechten (fac_groep_key, fac_functie_key, ins_discipline_key
AND gr.ins_discipline_key = d.ins_discipline_key
AND gr.fac_groep_key = g.fac_groep_key);
-- Frontoffice rechten die niet te koppelen zijn aan een discipline (globale rechten)
INSERT INTO fac_groeprechten (fac_groep_key,
fac_functie_key,
ins_discipline_key,
fac_gebruiker_alg_level_read,
fac_gebruiker_alg_level_write,
fac_gebruiker_prs_level_read,
fac_gebruiker_prs_level_write)
SELECT g.fac_groep_key,
f.fac_functie_key,
NULL,
-1,
-1,
-1,
-1
FROM fac_functie f, fac_groep g --, ins_tab_discipline d, ins_srtdiscipline sd
WHERE f.fac_functie_code IN ('WEB_BEZFOF', 'WEB_INSFOF', 'WEB_PRSFOF')
AND g.fac_groep_upper = 'FMIS-FRONTOFFICE'
AND NOT EXISTS
(SELECT gr.fac_groeprechten_key
FROM fac_groeprechten gr
WHERE gr.fac_functie_key = f.fac_functie_key
AND gr.fac_groep_key = g.fac_groep_key);
-- Backoffice rechten
INSERT INTO fac_groeprechten (fac_groep_key, fac_functie_key, ins_discipline_key,
fac_gebruiker_alg_level_read, fac_gebruiker_alg_level_write,
fac_gebruiker_prs_level_read, fac_gebruiker_prs_level_write)
SELECT g.fac_groep_key, f.fac_functie_key, d.ins_discipline_key, -1, -1, -1, -1
FROM fac_functie f, ins_tab_discipline d, fac_groep g, ins_srtdiscipline sd
WHERE f.fac_functie_code IN ('WEB_RESBOF', 'WEB_MLDBOF', 'WEB_ORDBOF', 'WEB_FAQBOF')
WHERE f.fac_functie_code IN ('WEB_RESBOF', 'WEB_MLDBOF', 'WEB_ORDBOF', 'WEB_BESBOF', 'WEB_BEZBOF', 'WEB_FAQBOF', 'WEB_INSUSE', 'WEB_INSMAN', 'WEB_CNTMAN', 'WEB_CNTUSE')
AND f.fac_functie_module = d.ins_discipline_module
AND g.fac_groep_upper = 'FMIS-BACKOFFICE'
AND d.ins_srtdiscipline_key = sd.ins_srtdiscipline_key(+)
@@ -429,79 +571,7 @@ INSERT INTO fac_groeprechten (fac_groep_key, fac_functie_key, ins_discipline_key
AND gr.ins_discipline_key = d.ins_discipline_key
AND gr.fac_groep_key = g.fac_groep_key);
-- Backoffice rechten die niet te koppelen zijn aan een discipline (globale rechten)
INSERT INTO fac_groeprechten (fac_groep_key,
fac_functie_key,
ins_discipline_key,
fac_gebruiker_alg_level_read,
fac_gebruiker_alg_level_write,
fac_gebruiker_prs_level_read,
fac_gebruiker_prs_level_write)
SELECT g.fac_groep_key,
f.fac_functie_key,
NULL,
-1,
-1,
-1,
-1
FROM fac_functie f, fac_groep g --, ins_tab_discipline d, ins_srtdiscipline sd
WHERE f.fac_functie_code IN ('WEB_ALGUSE', 'WEB_RUIUSE', 'WEB_ALMAN', 'WEB_RUIMAN', 'WEB_TERMAN',
'WEB_BEZBOF', 'WEB_CNTMAN', 'WEB_CNTUSE', 'WEB_INSUSE', 'WEB_FAQBOF',
'WEB_INSMAN', 'WEB_INSUSE', 'WEB_MSGBOF', 'WEB_PRSMAN', 'WEB_RELMAN',
'WEB_EXTREL', 'WEB_PRSUSE')
AND g.fac_groep_upper = 'FMIS-BACKOFFICE'
AND NOT EXISTS
(SELECT gr.fac_groeprechten_key
FROM fac_groeprechten gr
WHERE gr.fac_functie_key = f.fac_functie_key
AND gr.fac_groep_key = g.fac_groep_key);
-- Applicatiebeheer rechten
INSERT INTO fac_groeprechten (fac_groep_key, fac_functie_key, ins_discipline_key,
fac_gebruiker_alg_level_read, fac_gebruiker_alg_level_write,
fac_gebruiker_prs_level_read, fac_gebruiker_prs_level_write)
SELECT g.fac_groep_key, f.fac_functie_key, d.ins_discipline_key, -1, -1, -1, -1
FROM fac_functie f, ins_tab_discipline d, fac_groep g, ins_srtdiscipline sd
WHERE f.fac_functie_code IN ('WEB_RESMSU', 'WEB_MLDMSU', 'WEB_FAQMGT', 'WEB_FAQMSU',
'WEB_RESMGT', 'WEB_MLDMGT', 'WEB_RESBAC', 'WEB_MLDBAC')
AND f.fac_functie_module = d.ins_discipline_module
AND g.fac_groep_upper = 'APPLICATIEBEHEER'
AND d.ins_srtdiscipline_key = sd.ins_srtdiscipline_key(+)
AND (sd.ins_srtdiscipline_omschrijving LIKE 'FMIS-%' OR sd.ins_srtdiscipline_omschrijving IS NULL)
AND NOT EXISTS
(SELECT gr.fac_groeprechten_key
FROM fac_groeprechten gr
WHERE gr.fac_functie_key = f.fac_functie_key
AND gr.ins_discipline_key = d.ins_discipline_key
AND gr.fac_groep_key = g.fac_groep_key);
-- Applicatiebeheer rechten die niet te koppelen zijn aan een discipline (globale rechten)
INSERT INTO fac_groeprechten (fac_groep_key,
fac_functie_key,
ins_discipline_key,
fac_gebruiker_alg_level_read,
fac_gebruiker_alg_level_write,
fac_gebruiker_prs_level_read,
fac_gebruiker_prs_level_write)
SELECT g.fac_groep_key,
f.fac_functie_key,
NULL,
-1,
-1,
-1,
-1
FROM fac_functie f, fac_groep g --, ins_tab_discipline d, ins_srtdiscipline sd
WHERE f.fac_functie_code IN ('WEB_PRSMGT', 'WEB_PRSMSU', 'WEB_ALGMSU',
'WEB_ALGMGT', 'WEB_BEZMSU', 'WEB_BEZMGT', 'WEB_BEZBAC', 'WEB_CNTMSU', 'WEB_CNTMGT',
'WEB_FACMGT', 'WEB_FACMSU', 'WEB_IMPORT', 'WEB_PRSSYS', 'WEB_INSMGT', 'WEB_INSMSU')
AND g.fac_groep_upper = 'APPLICATIEBEHEER'
AND NOT EXISTS
(SELECT gr.fac_groeprechten_key
FROM fac_groeprechten gr
WHERE gr.fac_functie_key = f.fac_functie_key
AND gr.fac_groep_key = g.fac_groep_key);
-- _ADMIN rechten
-- Beheerder rechten
INSERT INTO fac_groeprechten (fac_groep_key, fac_functie_key, ins_discipline_key,
fac_gebruiker_alg_level_read, fac_gebruiker_alg_level_write,
fac_gebruiker_prs_level_read, fac_gebruiker_prs_level_write)
@@ -521,38 +591,10 @@ INSERT INTO fac_groeprechten (fac_groep_key, fac_functie_key, ins_discipline_key
AND gr.ins_discipline_key = d.ins_discipline_key
AND gr.fac_groep_key = g.fac_groep_key);
-- _ADMIN rechten die niet te koppelen zijn aan een discipline (globale rechten) muv WEB_FACFAC en WEB_FACHML en WEB_FACTAB
INSERT INTO fac_groeprechten (fac_groep_key,
fac_functie_key,
ins_discipline_key,
fac_gebruiker_alg_level_read,
fac_gebruiker_alg_level_write,
fac_gebruiker_prs_level_read,
fac_gebruiker_prs_level_write)
SELECT g.fac_groep_key,
f.fac_functie_key,
NULL,
-1,
-1,
-1,
-1
FROM fac_functie f, fac_groep g --, ins_tab_discipline d, ins_srtdiscipline sd
WHERE f.fac_functie_code IN ('WEB_BEZBAC', 'WEB_BEZUSE', 'WEB_CADUSE',
'WEB_CADALG', 'WEB_CADCNT', 'WEB_CADMLD', 'WEB_CADPRS', 'WEB_CADSCH', 'WEB_FACQRC',
'WEB_EXTFIN', 'WEB_FINGOE', 'WEB_VERFAC', 'WEB_KPIRAP', 'WEB_UURUSE', 'WEB_MRKUSE',
'WEB_MSGUSE', 'WEB_PHONEB', 'WEB_PHSRCH', 'WEB_PROFIL', 'WEB_PRSOBJ', 'WEB_WGTUSE')
AND g.fac_groep_upper = '_ADMIN'
AND NOT EXISTS
(SELECT gr.fac_groeprechten_key
FROM fac_groeprechten gr
WHERE gr.fac_functie_key = f.fac_functie_key
AND gr.fac_groep_key = g.fac_groep_key);
-- _FACILITOR-rechten
-- We willen tbv Support dat _FACILITOR alles kan, dus ook rechten krijgt op de zaken
-- die hier zijn aangemaakt. De rest had-ie standaard al.
-- Dit zijn dus autorisaties als ORDAFR, ORDBO2, ORDGO5, UURBOF, CNTGO1 en MLDREO.
-- Dit zijn dus autorisaties als ORDAFR,ORDBO2, ORDGO5, UURBOF, CNTGO1 en MLDREO, to name a few.
INSERT INTO fac_groeprechten (fac_groep_key, fac_functie_key, ins_discipline_key,
fac_gebruiker_alg_level_read, fac_gebruiker_alg_level_write,
fac_gebruiker_prs_level_read, fac_gebruiker_prs_level_write)
@@ -572,16 +614,53 @@ INSERT INTO fac_groeprechten (fac_groep_key, fac_functie_key, ins_discipline_key
fac.writelog ('INI.FMIS_INI','I', 'AUT completed', '');
-- Voorbeeldvulling
-- Importeren van locatie en gebouwen (ONRGOED1) - voor nu weglaten. Als klanten wellicht dit zelf gaan gebruiken dan kan het toegevoegd worden wel dan een lijst van 5 en niet 1 waarde.
/* INSERT INTO fac_imp_onrgoed1 (alg_regio_omschrijving, alg_district_omschrijving,
--
--
-- Een heel klein beetje voorbeeldvulling als appetizer
--
--
-- Importeren van locatie en gebouwen (ONRGOED1)
INSERT INTO fac_imp_onrgoed1 (alg_regio_omschrijving, alg_district_omschrijving,
alg_locatie_code, alg_locatie_omschrijving, alg_gebouw_code, alg_gebouw_naam, alg_srtgebouw_omschrijving,
alg_locatie_adres, alg_locatie_postcode, alg_locatie_plaats)
VALUES ('Nederland', 'Midden',
'UTR','Hoofdkantoor','HQ','Hoofdgebouw','Kantoor',
'Grotestraat 123','1234 AB','Utrecht');
BEGIN fac_update_onrgoed1(ini.getImportKey('ONRGOED1')); END;
DELETE FROM fac_imp_onrgoed1; */
DELETE FROM fac_imp_onrgoed1;
-- Importeren van vergaderzalen (ONRGOED2)
INSERT INTO fac_imp_onrgoed2 (alg_locatie_code, alg_gebouw_code, alg_verdieping_volgnr, alg_srtruimte_omschrijving,
alg_ruimte_nr, alg_ruimte_omschrijving, reserveerbaar,
res_discipline_omschrijving, res_opstelling_omschrijving, res_ruimte_opstel_bezoekers, res_ruimte_nr)
SELECT 'UTR', 'HQ', 0, 'Vergaderruimte', '0.12', 'Vergaderruimte 1', 'J', 'Vergaderruimte', 'Standaard', 10, 'Dahlia' FROM DUAL UNION ALL
SELECT 'UTR', 'HQ', 0, 'Vergaderruimte', '0.13', 'Vergaderruimte 2', 'J', 'Vergaderruimte', 'Standaard', 8, 'Rozentuin' FROM DUAL;
-- Importeren van losse ruimten
INSERT INTO fac_imp_onrgoed2( alg_locatie_code, alg_gebouw_code, alg_verdieping_volgnr, alg_srtruimte_omschrijving, alg_ruimte_nr, alg_ruimte_omschrijving)
SELECT 'UTR', 'HQ', 0, 'Verkeersruimte', '0.01', 'Gang' FROM DUAL UNION ALL
SELECT 'UTR', 'HQ', 0, 'Kantoor', '0.02', 'Kantoor 0.02' FROM DUAL UNION ALL
SELECT 'UTR', 'HQ', 0, 'Kantoor', '0.03', 'Kantoor 0.03' FROM DUAL UNION ALL
SELECT 'UTR', 'HQ', 0, 'Kantoor', '0.04', 'Kantoor 0.04' FROM DUAL;
BEGIN fac_update_onrgoed2(ini.getImportKey('ONRGOED2')); END;
DELETE FROM fac_imp_onrgoed2;
-- Mooier:
UPDATE alg_verdieping SET alg_verdieping_omschrijving = 'Begane grond' WHERE alg_verdieping_upper = 'VERDIEPING 0';
-- Importeren van flexplekken (INS)
INSERT INTO fac_imp_ins (ins_discipline_omschrijving, ins_srtgroep_omschrijving,ins_srtdeel_code,ins_srtdeel_omschrijving,ins_deel_omschrijving,
alg_locatie_code,alg_gebouw_code,alg_verdieping_volgnr,alg_ruimte_nr,ins_deel_aantal,reserveerbaar,res_deel_alg_level,res_discipline_omschrijving)
SELECT 'Werkplekken', 'Werkplekken', 'FLEXDS', 'Flexplek met dockingstation', 'FLEXDS003.1', 'UTR', 'HQ', 0, '0.03', 1, 1, 4, 'Werkplekreservering' FROM DUAL UNION ALL
SELECT 'Werkplekken', 'Werkplekken', 'FLEXDS', 'Flexplek met dockingstation', 'FLEXDS004.1', 'UTR', 'HQ', 0, '0.04', 1, 1, 4, 'Werkplekreservering' FROM DUAL UNION ALL
SELECT 'Werkplekken', 'Werkplekken', 'FLEX', 'Flexplek', 'FLEX004.2', 'UTR', 'HQ', 0, '0.04', 1, 1, 4, 'Werkplekreservering' FROM DUAL;
BEGIN fac_update_ins(ini.getImportKey('INS')); END;
DELETE FROM fac_imp_ins;
-- Wil ik dit, en zo, en specifiek? Core!
INSERT INTO fac_menu (fac_menu_altlabel,
@@ -603,6 +682,16 @@ INSERT INTO fac_menu (fac_menu_altlabel,
FROM fac_functie f, res_discipline rd
WHERE rd.ins_discipline_omschrijving = 'Flexplekken' AND f.fac_functie_code = 'WEB_RESUSE';
-- Reserveerbare artikelen
INSERT INTO fac_imp_res_artikel_sync (res_discipline_oms, res_artikel_nr, res_artikel_omschrijving, res_artikel_eenheid, res_artikel_prijs, res_artikel_prijs_vast)
SELECT 'Dranken', 'D002', 'Thee', 'Kan', '5.50', 1 FROM DUAL UNION ALL
SELECT 'Dranken', 'D003', 'Frisdrank', 'Flesje', '2.50', 1 FROM DUAL UNION ALL
SELECT 'Dranken', 'D004', 'Water', 'Kan', '2.00', 1 FROM DUAL UNION ALL
SELECT 'Dranken', 'D001', 'Koffie', 'Kan', '7.50', 1 FROM DUAL;
BEGIN fac_update_res_artikel_sync(ini.getImportKey('RES_ARTIKEL_SYNC')); END;
DELETE FROM fac_imp_res_artikel_sync;
-- Interne organisatiestructuur (ORGANISATIE), is die kostenplaats nodig?
INSERT INTO fac_imp_organisatie (prs_bedrijf_naam, prs_afdeling_naam, prs_afdeling_omschrijving, prs_kostenplaats_nr)
SELECT 'Onze organisatie', 'SALES', 'Sales & Marketing', 'S' FROM DUAL UNION ALL
@@ -615,10 +704,11 @@ INSERT INTO fac_imp_organisatie (prs_bedrijf_naam, prs_afdeling_naam, prs_afdeli
BEGIN fac_update_organisatie(ini.getImportKey('ORGANISATIE')); END;
DELETE FROM fac_imp_organisatie;
-- Minimale gebruikers, moet gedocumenteerd worden, wachtwoorden via wachtwoord-vergeten oid
-- nummers/mail hebben bewust ongeldig format om gegarandeerd ongeldig te zijn
INSERT INTO fac_imp_perslid (prs_afdeling_naam, prs_perslid_naam, prs_perslid_voornaam, prs_perslid_telefoonnr, prs_perslid_mobiel, prs_perslid_email, prs_srtperslid_omschrijving, prs_perslid_nr, prs_perslid_oslogin, prs_perslid_wachtwoord)
SELECT 'MW', 'Medewerker', 'Marco', '022-398345', '06-2978529', 'marco.medewerker@wxyz', 'Medewerker', '001', 'Marco', 'Medewerker21#' FROM DUAL UNION ALL
SELECT 'MW' a, 'Medewerker' b, 'Marco' c, '022-398345' d, '06-2978529' e, 'marco.medewerker@wxyz' f, 'Medewerker' g, '001' h, 'Marco' i, 'Medewerker21#' j FROM DUAL UNION ALL
SELECT 'FM', 'Backoffice', 'Bas', '022-398346', '06-2978630', 'bas.backoffice@wxyz', 'Medewerker', '002', 'Bas', 'Backoffice21#' FROM DUAL UNION ALL
SELECT 'FM', 'Frontoffice', 'Furkan', '022-398248', '06-2935632', 'furkan.frontoffice@wxyz', 'Medewerker', '003', 'Furkan', 'Frontoffice21#' FROM DUAL UNION ALL
SELECT 'ICT', 'Beheerder', 'Barbara', '022-398247', '06-2937631', 'barbara.beheerder@wxyz', 'Medewerker', '004', 'Barbara', 'Beheerder21#' FROM DUAL;
@@ -626,147 +716,34 @@ BEGIN fac_update_perslid(ini.getImportKey('PERSLID')); END;
DELETE FROM fac_imp_perslid;
-- Rechten toekennen aan de personen
-- Iedereen zit standaard in de _DEFAULT groep
-- Iedereen zit standaard al in de _default groep
-- De beheerder zetten we in de beheerdersgroep en de ook in de backoffice groep? Nou, ik vind toch eigenlijk van niet.
-- INSERT INTO fac_gebruikersgroep (fac_groep_key, prs_perslid_key) SELECT g.fac_groep_key, p.prs_perslid_key FROM fac_groep, prs_perslid p WHERE g.fac_groep_upper = '_DEFAULT' AND p.prs_perslid_naam = 'Medewerker'
INSERT INTO fac_gebruikersgroep (fac_groep_key, prs_perslid_key) SELECT g.fac_groep_key, p.prs_perslid_key FROM fac_groep g, prs_perslid p WHERE g.fac_groep_upper = 'FMIS-BACKOFFICE' AND p.prs_perslid_naam = 'Backoffice';
INSERT INTO fac_gebruikersgroep (fac_groep_key, prs_perslid_key) SELECT g.fac_groep_key, p.prs_perslid_key FROM fac_groep g, prs_perslid p WHERE g.fac_groep_upper = 'FMIS-FRONTOFFICE' AND p.prs_perslid_naam = 'Backoffice';
INSERT INTO fac_gebruikersgroep (fac_groep_key, prs_perslid_key) SELECT g.fac_groep_key, p.prs_perslid_key FROM fac_groep g, prs_perslid p WHERE g.fac_groep_upper = 'FMIS-FRONTOFFICE' AND p.prs_perslid_naam = 'Frontoffice';
INSERT INTO fac_gebruikersgroep (fac_groep_key, prs_perslid_key) SELECT g.fac_groep_key, p.prs_perslid_key FROM fac_groep g, prs_perslid p WHERE g.fac_groep_upper = 'APPLICATIEBEHEER' AND p.prs_perslid_naam = 'Beheerder';
INSERT INTO fac_gebruikersgroep (fac_groep_key, prs_perslid_key) SELECT g.fac_groep_key, p.prs_perslid_key FROM fac_groep g, prs_perslid p WHERE g.fac_groep_upper = '_ADMIN' AND p.prs_perslid_naam = 'Beheerder';
--INSERT INTO fac_gebruikersgroep (fac_groep_key, prs_perslid_key) SELECT g.fac_groep_key, p.prs_perslid_key FROM fac_groep g, prs_perslid p WHERE g.fac_groep_upper = 'FMIS-BACKOFFICE' AND p.prs_perslid_naam = 'Beheerder';
--INSERT INTO fac_gebruikersgroep (fac_groep_key, prs_perslid_key) SELECT g.fac_groep_key, p.prs_perslid_key FROM fac_groep g, prs_perslid p WHERE g.fac_groep_upper = 'FMIS-FRONTOFFICE' AND p.prs_perslid_naam = 'Beheerder';
-- INS
INSERT INTO fac_imp_ins (ins_discipline_omschrijving, ins_srtgroep_omschrijving,ins_srtdeel_code,ins_srtdeel_omschrijving,ins_deel_omschrijving,
alg_locatie_code,alg_gebouw_code,alg_verdieping_volgnr,alg_ruimte_nr,ins_deel_aantal)
SELECT 'Automaten', 'Koffieautomaten', 'KOF', 'Koffieautomaat', 'KOF001', 'UTR', 'HQ', 0, '0.01', 1 FROM DUAL UNION ALL
SELECT 'Automaten', 'Koffieautomaten', 'KOF', 'Koffieautomaat', 'KOF002', 'UTR', 'HQ', 0, '0.01', 1 FROM DUAL;
BEGIN fac_update_ins(ini.getImportKey('INS')); END;
DELETE FROM fac_imp_ins;
fac.writelog ('INI.FMIS_INI','I', 'Sample content completed', '');
-- Nieuws bericht
INSERT INTO fac_nieuws (fac_nieuws_titel, fac_nieuws_omschrijving, fac_nieuws_image,
prs_perslid_key)
SELECT 'Facilitor voor al je facilitaire zaken', 'Gefeliciteerd met de keuze voor Facilitor! Dit is een eerste stap naar totale controle over je dienstverlenende processen.', 'fa-person-through-window',
SELECT 'Facilitor voor al je facilitaire zaken', 'Gefeliciteerd met de keuze voor Facilitor/FMIS! Dit is een eerste stap naar totale controle over je dienstverlenende processen.', 'fa-person-through-window',
prs_perslid_key
FROM prs_perslid
WHERE prs_perslid_oslogin = '_FACILITOR';
-- 'Help me' verwijderen
DELETE FROM fac_menu WHERE fac_menu_altlabel = 'lcl_menu_mld_fe_5';
-- Widgetpagina aanmaken
/* DECLARE
mijn_widget_paginakey fac_widget_page.fac_widget_page_key%TYPE;
mijn_aanvraag_paginakey fac_menu.fac_menu_key%TYPE;
mijn_storing_paginakey fac_menu.fac_menu_key%TYPE;
mijn_klacht_paginakey fac_menu.fac_menu_key%TYPE;
mijn_aanvraag_widgetkey fac_widget.fac_widget_key%TYPE;
mijn_storing_widgetkey fac_widget.fac_widget_key%TYPE;
mijn_klacht_widgetkey fac_widget.fac_widget_key%TYPE;
BEGIN
INSERT INTO fac_widget_page(fac_widget_page_name, prs_perslid_key, fac_groep_key) VALUES ('Startpagina', NULL, NULL)
RETURNING fac_widget_page_key INTO mijn_widget_paginakey;
UPDATE fac_setting SET fac_setting_pvalue = mijn_widget_paginakey WHERE fac_setting_name = 'widgetportal';
-- Menuitems Aanvraag, Storing, Klacht aanmaken
INSERT INTO fac_menu(fac_menuitems_key, fac_menu_altlabel, fac_menu_altgroep, fac_menu_image, fac_menu_info, fac_menu_message, fac_menu_volgnr, fac_menu_alturl, fac_functie_key, fac_menu_portal, fac_menu_level, ins_srtdiscipline_key, ins_discipline_key) VALUES ( NULL, 'Doe een aanvraag', 0, 'fa-comments-question-check', NULL, NULL, 60, '/appl/mld/mld_fe_menu.asp?srtdisc=1&lvl=1', NULL, NULL, 2, NULL, NULL)
RETURNING fac_menu_key INTO mijn_aanvraag_paginakey;
INSERT INTO fac_menu(fac_menuitems_key, fac_menu_altlabel, fac_menu_altgroep, fac_menu_image, fac_menu_info, fac_menu_message, fac_menu_volgnr, fac_menu_alturl, fac_functie_key, fac_menu_portal, fac_menu_level, ins_srtdiscipline_key, ins_discipline_key) VALUES ( NULL, 'Meld een storing', 0, 'fa-comments-alt-exclamation', NULL, NULL, 70, '/appl/mld/mld_fe_menu.asp?srtdisc=3&lvl=1', NULL, NULL, 2, NULL, NULL)
RETURNING fac_menu_key INTO mijn_storing_paginakey;
INSERT INTO fac_menu(fac_menuitems_key, fac_menu_altlabel, fac_menu_altgroep, fac_menu_image, fac_menu_info, fac_menu_message, fac_menu_volgnr, fac_menu_alturl, fac_functie_key, fac_menu_portal, fac_menu_level, ins_srtdiscipline_key, ins_discipline_key) VALUES ( NULL, 'Meld een klacht', 0, 'fa-bell-ring', NULL, NULL, 80, '/appl/mld/mld_fe_menu.asp?srtdisc=2&lvl=1', NULL, NULL, 2, NULL, NULL)
RETURNING fac_menu_key INTO mijn_klacht_paginakey;
-- losse widgets aanmaken van de menuitems
INSERT INTO fac_widget(fac_widget_type, fac_widget_naam, fac_widget_typerefkey, fac_widget_content, fac_widget_url, fac_widget_title, fac_widget_refreshtime, fac_widget_id, fac_widget_height, fac_widget_width, fac_functie_key, fac_widget_public) VALUES ('MI', 'Doe een aanvraag', mijn_aanvraag_paginakey, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0)
RETURNING fac_widget_key INTO mijn_aanvraag_widgetkey;
INSERT INTO fac_widget(fac_widget_type, fac_widget_naam, fac_widget_typerefkey, fac_widget_content, fac_widget_url, fac_widget_title, fac_widget_refreshtime, fac_widget_id, fac_widget_height, fac_widget_width, fac_functie_key, fac_widget_public) VALUES ('MI', 'Meld een storing', mijn_storing_paginakey, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0)
RETURNING fac_widget_key INTO mijn_storing_widgetkey;
INSERT INTO fac_widget(fac_widget_type, fac_widget_naam, fac_widget_typerefkey, fac_widget_content, fac_widget_url, fac_widget_title, fac_widget_refreshtime, fac_widget_id, fac_widget_height, fac_widget_width, fac_functie_key, fac_widget_public) VALUES ('MI', 'Meld een klacht', mijn_klacht_paginakey, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0)
RETURNING fac_widget_key INTO mijn_klacht_widgetkey;
-- Widgets op de widgetpagina zetten
INSERT ALL INTO fac_widget_onpage (fac_widget_page_key, fac_widget_key, fac_widget_onpage_order, fac_widget_onpage_height, fac_widget_onpage_width) VALUES (mijn_widget_paginakey, mijn_aanvraag_widgetkey, 0, null, 33)
INTO fac_widget_onpage (fac_widget_page_key, fac_widget_key, fac_widget_onpage_order, fac_widget_onpage_height, fac_widget_onpage_width) VALUES (mijn_widget_paginakey, mijn_storing_widgetkey, 1, null, 33)
INTO fac_widget_onpage (fac_widget_page_key, fac_widget_key, fac_widget_onpage_order, fac_widget_onpage_height, fac_widget_onpage_width) VALUES (mijn_widget_paginakey, mijn_klacht_widgetkey, 2, null, 33)
INTO fac_widget_onpage (fac_widget_page_key, fac_widget_key, fac_widget_onpage_order, fac_widget_onpage_height, fac_widget_onpage_width) VALUES (mijn_widget_paginakey, 1, 3, null, 100)
INTO fac_widget_onpage (fac_widget_page_key, fac_widget_key, fac_widget_onpage_order, fac_widget_onpage_height, fac_widget_onpage_width) VALUES (mijn_widget_paginakey, 2, 4, null, 100)
INTO fac_widget_onpage (fac_widget_page_key, fac_widget_key, fac_widget_onpage_order, fac_widget_onpage_height, fac_widget_onpage_width) VALUES (mijn_widget_paginakey, 3, 5, null, 100)
INTO fac_widget_onpage (fac_widget_page_key, fac_widget_key, fac_widget_onpage_order, fac_widget_onpage_height, fac_widget_onpage_width) VALUES (mijn_widget_paginakey, 4, 6, null, 100)
SELECT 1 FROM DUAL;
END; */
DECLARE
-- CNT declaraties
v_discipline_key ins_tab_discipline.ins_discipline_key%TYPE;
v_key cnt_srtkenmerk.cnt_srtkenmerk_key%TYPE;
-- Widgetpagina declaraties
mijn_widget_paginakey fac_widget_page.fac_widget_page_key%TYPE;
mijn_aanvraag_paginakey fac_menu.fac_menu_key%TYPE;
mijn_storing_paginakey fac_menu.fac_menu_key%TYPE;
mijn_klacht_paginakey fac_menu.fac_menu_key%TYPE;
mijn_aanvraag_widgetkey fac_widget.fac_widget_key%TYPE;
mijn_storing_widgetkey fac_widget.fac_widget_key%TYPE;
mijn_klacht_widgetkey fac_widget.fac_widget_key%TYPE;
BEGIN
-- CNT inserts
INSERT INTO ins_tab_discipline (ins_discipline_omschrijving, ins_discipline_module) VALUES ('Onderhoudscontract', 'CNT')
RETURNING ins_discipline_key INTO v_discipline_key;
INSERT INTO cnt_disc_params (cnt_ins_discipline_key, cnt_srtcontract_type) VALUES (v_discipline_key, 1);
INSERT INTO ins_tab_discipline (ins_discipline_omschrijving, ins_discipline_module) VALUES ('Servicecontract', 'CNT')
RETURNING ins_discipline_key INTO v_discipline_key;
INSERT INTO cnt_disc_params (cnt_ins_discipline_key, cnt_srtcontract_type) VALUES (v_discipline_key, 3);
INSERT INTO ins_tab_discipline (ins_discipline_omschrijving, ins_discipline_module) VALUES ('Algemeen contract', 'CNT')
RETURNING ins_discipline_key INTO v_discipline_key;
INSERT INTO cnt_disc_params (cnt_ins_discipline_key, cnt_srtcontract_type) VALUES (v_discipline_key, 4);
INSERT INTO ins_tab_discipline (ins_discipline_omschrijving, ins_discipline_module) VALUES ('Leverancierscontract', 'CNT')
RETURNING ins_discipline_key INTO v_discipline_key;
INSERT INTO cnt_disc_params (cnt_ins_discipline_key, cnt_srtcontract_type) VALUES (v_discipline_key, 5);
INSERT INTO ins_tab_discipline (ins_discipline_omschrijving, ins_discipline_module) VALUES ('Mantelcontract', 'CNT')
RETURNING ins_discipline_key INTO v_discipline_key;
INSERT INTO cnt_disc_params (cnt_ins_discipline_key, cnt_srtcontract_type) VALUES (v_discipline_key, 6);
-- Alle contracten hebben bijlagen
INSERT INTO cnt_srtkenmerk (cnt_srtkenmerk_omschrijving, cnt_srtkenmerk_kenmerktype) VALUES ('Bijlagen', 'M')
RETURNING cnt_srtkenmerk_key INTO v_key;
INSERT INTO cnt_kenmerk (cnt_srtkenmerk_key,
cnt_srtcontract_key,
cnt_kenmerk_niveau,
cnt_kenmerk_volgnummer,
cnt_kenmerk_groep)
SELECT v_key, ins_discipline_key, 'S', 100, 0 FROM cnt_discipline;
-- Widgetpagina inserts
INSERT INTO fac_widget_page(fac_widget_page_name, prs_perslid_key, fac_groep_key) VALUES ('Startpagina', NULL, NULL)
RETURNING fac_widget_page_key INTO mijn_widget_paginakey;
UPDATE fac_setting SET fac_setting_pvalue = mijn_widget_paginakey WHERE fac_setting_name = 'widgetportal';
-- Menuitems Aanvraag, Storing, Klacht aanmaken
INSERT INTO fac_menu(fac_menuitems_key, fac_menu_altlabel, fac_menu_altgroep, fac_menu_image, fac_menu_info, fac_menu_message, fac_menu_volgnr, fac_menu_alturl, fac_functie_key, fac_menu_portal, fac_menu_level, ins_srtdiscipline_key, ins_discipline_key)
VALUES (NULL, 'Doe een aanvraag', 0, 'fa-comments-question-check', NULL, NULL, 60, '/appl/mld/mld_fe_menu.asp?srtdisc=1&lvl=1', NULL, NULL, 2, NULL, NULL)
RETURNING fac_menu_key INTO mijn_aanvraag_paginakey;
INSERT INTO fac_menu(fac_menuitems_key, fac_menu_altlabel, fac_menu_altgroep, fac_menu_image, fac_menu_info, fac_menu_message, fac_menu_volgnr, fac_menu_alturl, fac_functie_key, fac_menu_portal, fac_menu_level, ins_srtdiscipline_key, ins_discipline_key)
VALUES (NULL, 'Meld een storing', 0, 'fa-message-exclamation', NULL, NULL, 70, '/appl/mld/mld_fe_menu.asp?srtdisc=3&lvl=1', NULL, NULL, 2, NULL, NULL)
RETURNING fac_menu_key INTO mijn_storing_paginakey;
INSERT INTO fac_menu(fac_menuitems_key, fac_menu_altlabel, fac_menu_altgroep, fac_menu_image, fac_menu_info, fac_menu_message, fac_menu_volgnr, fac_menu_alturl, fac_functie_key, fac_menu_portal, fac_menu_level, ins_srtdiscipline_key, ins_discipline_key)
VALUES (NULL, 'Meld een klacht', 0, 'fa-bell-ring', NULL, NULL, 80, '/appl/mld/mld_fe_menu.asp?srtdisc=2&lvl=1', NULL, NULL, 2, NULL, NULL)
RETURNING fac_menu_key INTO mijn_klacht_paginakey;
-- Widgets aanmaken
INSERT INTO fac_widget(fac_widget_type, fac_widget_naam, fac_widget_typerefkey, fac_widget_content, fac_widget_url, fac_widget_title, fac_widget_refreshtime, fac_widget_id, fac_widget_height, fac_widget_width, fac_functie_key, fac_widget_public)
VALUES ('MI', 'Doe een aanvraag', mijn_aanvraag_paginakey, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0)
RETURNING fac_widget_key INTO mijn_aanvraag_widgetkey;
INSERT INTO fac_widget(fac_widget_type, fac_widget_naam, fac_widget_typerefkey, fac_widget_content, fac_widget_url, fac_widget_title, fac_widget_refreshtime, fac_widget_id, fac_widget_height, fac_widget_width, fac_functie_key, fac_widget_public)
VALUES ('MI', 'Meld een storing', mijn_storing_paginakey, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0)
RETURNING fac_widget_key INTO mijn_storing_widgetkey;
INSERT INTO fac_widget(fac_widget_type, fac_widget_naam, fac_widget_typerefkey, fac_widget_content, fac_widget_url, fac_widget_title, fac_widget_refreshtime, fac_widget_id, fac_widget_height, fac_widget_width, fac_functie_key, fac_widget_public)
VALUES ('MI', 'Meld een klacht', mijn_klacht_paginakey, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0)
RETURNING fac_widget_key INTO mijn_klacht_widgetkey;
-- Widgets op de pagina zetten
INSERT ALL
INTO fac_widget_onpage (fac_widget_page_key, fac_widget_key, fac_widget_onpage_order, fac_widget_onpage_height, fac_widget_onpage_width) VALUES (mijn_widget_paginakey, mijn_aanvraag_widgetkey, 0, NULL, 33)
INTO fac_widget_onpage (fac_widget_page_key, fac_widget_key, fac_widget_onpage_order, fac_widget_onpage_height, fac_widget_onpage_width) VALUES (mijn_widget_paginakey, mijn_storing_widgetkey, 1, NULL, 33)
INTO fac_widget_onpage (fac_widget_page_key, fac_widget_key, fac_widget_onpage_order, fac_widget_onpage_height, fac_widget_onpage_width) VALUES (mijn_widget_paginakey, mijn_klacht_widgetkey, 2, NULL, 33)
INTO fac_widget_onpage (fac_widget_page_key, fac_widget_key, fac_widget_onpage_order, fac_widget_onpage_height, fac_widget_onpage_width) VALUES (mijn_widget_paginakey, 1, 3, NULL, 100)
INTO fac_widget_onpage (fac_widget_page_key, fac_widget_key, fac_widget_onpage_order, fac_widget_onpage_height, fac_widget_onpage_width) VALUES (mijn_widget_paginakey, 2, 4, NULL, 100)
INTO fac_widget_onpage (fac_widget_page_key, fac_widget_key, fac_widget_onpage_order, fac_widget_onpage_height, fac_widget_onpage_width) VALUES (mijn_widget_paginakey, 3, 5, NULL, 100)
INTO fac_widget_onpage (fac_widget_page_key, fac_widget_key, fac_widget_onpage_order, fac_widget_onpage_height, fac_widget_onpage_width) VALUES (mijn_widget_paginakey, 4, 6, NULL, 100)
SELECT 1 FROM DUAL;
END;
fac.writelog ('INI.FMIS_INI','I', 'All completed', '');
------ payload end ------

View File

@@ -905,14 +905,14 @@ fac.writelog ('INI.ITSM_INI','I', 'FAC completed', '');
-- Kenmerksoorten per standaardmelding
-- Incidenten hebben kenmerken op vakgroeptypeniveau zodat een klant eenvoudig zelf incidenten kan toevoegen
INSERT INTO mld_kenmerk (mld_srtkenmerk_key, mld_stdmelding_key, mld_kenmerk_niveau, mld_kenmerk_rolcode, mld_kenmerk_volgnummer, mld_kenmerk_omschrijving)
SELECT sk.mld_srtkenmerk_key, v_vgt_incident, 'T', 7, 5 , 'Onderzoek en diagnose' FROM mld_srtkenmerk sk WHERE sk.mld_srtkenmerk_omschrijving = 'ITSM Bloktitel'
INSERT INTO mld_kenmerk (mld_srtkenmerk_key, mld_stdmelding_key, mld_kenmerk_niveau, mld_kenmerk_volgnummer, mld_kenmerk_omschrijving)
SELECT sk.mld_srtkenmerk_key, v_vgt_incident, 'T', 5 , 'Onderzoek en diagnose' FROM mld_srtkenmerk sk WHERE sk.mld_srtkenmerk_omschrijving = 'ITSM Bloktitel'
UNION ALL
SELECT sk.mld_srtkenmerk_key, v_vgt_incident, 'T', 7, 10 , 'Bijlagen' FROM mld_srtkenmerk sk WHERE sk.mld_srtkenmerk_omschrijving = 'ITSM Bijlagen'
SELECT sk.mld_srtkenmerk_key, v_vgt_incident, 'T', 10 , 'Bijlagen' FROM mld_srtkenmerk sk WHERE sk.mld_srtkenmerk_omschrijving = 'ITSM Bijlagen'
UNION ALL
SELECT sk.mld_srtkenmerk_key, v_vgt_incident, 'T', 4, 20 , 'Workaround mogelijk?' FROM mld_srtkenmerk sk WHERE sk.mld_srtkenmerk_omschrijving = 'ITSM Ja/Nee/Nvt'
SELECT sk.mld_srtkenmerk_key, v_vgt_incident, 'T', 905 , 'Workaround mogelijk?' FROM mld_srtkenmerk sk WHERE sk.mld_srtkenmerk_omschrijving = 'ITSM Ja/Nee/Nvt'
UNION ALL
SELECT sk.mld_srtkenmerk_key, v_vgt_incident, 'T', 4, 30 , 'Toelichting/beschrijving workaround' FROM mld_srtkenmerk sk WHERE sk.mld_srtkenmerk_omschrijving = 'ITSM Tekstblok';
SELECT sk.mld_srtkenmerk_key, v_vgt_incident, 'T', 910 , 'Toelichting/beschrijving workaround' FROM mld_srtkenmerk sk WHERE sk.mld_srtkenmerk_omschrijving = 'ITSM Tekstblok';
-- Niet-standaard wijzigingen hebben kenmerken op vakgroep niveau zodat een klant eenvoudig een nieuwe categorie niet-standaard wijziging kan toevoegen
-- Niet-standaard wijziging kennen Deelmeldingen

View File

@@ -16,13 +16,13 @@
SELECT 'x' INTO dummy \
FROM kindje_tabel \
WHERE kindje_tabel.key_veld = :old.key_veld; \
raise_application_error(-20000, message); \
APPLICATION_ERROR(-20000,message); \
END IF; \
EXCEPTION \
WHEN NO_DATA_FOUND THEN \
NULL; \
WHEN TOO_MANY_ROWS THEN \
raise_application_error(-20000, message); \
APPLICATION_ERROR(-20000,message); \
END
@@ -31,7 +31,7 @@
IF :new.key_ruimte_veld IS NULL \
AND :new.key_terrein_veld IS NULL \
THEN \
raise_application_error(-20000, message); \
APPLICATION_ERROR(-20000, message); \
END IF; \
END
@@ -69,7 +69,7 @@
~ \
IF verplicht = 1 AND :new.kolom_naam IS NULL \
THEN \
raise_application_error(-20004, to_char(attribuut_key)|| \
APPLICATION_ERROR(-20004, to_char(attribuut_key)|| \
to_char(:new.ins_srtdeel_key)||'att_m008');~ \
ELSIF tiep = 'N' \
THEN \
@@ -80,7 +80,7 @@
IF ware_waarde < min_waarde OR ware_waarde > max_waarde \
THEN \
/* Te klein / te groot */ \
raise_application_error(-20004, to_char(attribuut_key)|| \
APPLICATION_ERROR(-20004, to_char(attribuut_key)|| \
to_char(:new.ins_srtdeel_key)||'att_m009');~ \
ELSE \
/* Bepaal het format_mask */ \
@@ -95,14 +95,14 @@
:new.kolom_naam := LTRIM(to_char(ware_waarde, format_mask)); \
IF INSTR(:new.kolom_naam, '#') <> 0 \
THEN \
raise_application_error(-20004, to_char(attribuut_key)|| \
APPLICATION_ERROR(-20004, to_char(attribuut_key)|| \
to_char(:new.ins_srtdeel_key)||'att_m010');~ \
END IF;~ \
END IF;~ \
EXCEPTION \
WHEN others \
THEN \
raise_application_error(-20004, to_char(attribuut_key)|| \
APPLICATION_ERROR(-20004, to_char(attribuut_key)|| \
to_char(:new.ins_srtdeel_key)||'att_m010');~ \
END;~ \
\
@@ -111,7 +111,7 @@
ware_lengte := LENGTH(:new.kolom_naam); \
IF ware_lengte > max_lengte \
THEN \
raise_application_error(-20004, to_char(attribuut_key)|| \
APPLICATION_ERROR(-20004, to_char(attribuut_key)|| \
to_char(:new.ins_srtdeel_key)||'att_m011');~ \
END IF;~ \
END IF; \
@@ -134,12 +134,12 @@
AND INS_SD.ins_srtgroep_key = INS_SG.ins_srtgroep_key \
AND INS_SG.ins_discipline_key = :old.ins_srtinst_keys \
AND INS_D.FacKolom IS NOT NULL; \
raise_application_error(-20003, 'att_m022'); \
APPLICATION_ERROR(-20003, 'att_m022'); \
EXCEPTION \
WHEN NO_DATA_FOUND \
THEN NULL; \
WHEN TOO_MANY_ROWS \
THEN raise_application_error(-20003, 'att_m022'); \
THEN APPLICATION_ERROR(-20003, 'att_m022'); \
END; \
END IF
@@ -155,12 +155,12 @@
WHERE INS_D.ins_srtdeel_key = INS_SD.ins_srtdeel_key \
AND INS_SD.ins_srtgroep_key = :old.ins_srtinst_keys \
AND FacKolom IS NOT NULL; \
raise_application_error(-20003, 'att_m022'); \
APPLICATION_ERROR(-20003, 'att_m022'); \
EXCEPTION \
WHEN NO_DATA_FOUND \
THEN NULL; \
WHEN TOO_MANY_ROWS \
THEN raise_application_error(-20003, 'att_m022'); \
THEN APPLICATION_ERROR(-20003, 'att_m022'); \
END; \
END IF
@@ -175,12 +175,12 @@
FROM ins_v_aanwezigdeel \
WHERE ins_srtdeel_key = :old.ins_srtinst_keys \
AND FacKolom IS NOT NULL; \
raise_application_error(-20003, 'att_m022'); \
APPLICATION_ERROR(-20003, 'att_m022'); \
EXCEPTION \
WHEN NO_DATA_FOUND \
THEN NULL; \
WHEN TOO_MANY_ROWS \
THEN raise_application_error(-20003, 'att_m022'); \
THEN APPLICATION_ERROR(-20003, 'att_m022'); \
END; \
END IF
@@ -195,13 +195,13 @@
FROM reference_view \
WHERE reference_view.key_veld = :old.key_veld \
AND reference_view.reference_verwijder_veld IS NULL; \
raise_application_error(-20000, message); \
APPLICATION_ERROR(-20000,message); \
END IF; \
EXCEPTION \
WHEN NO_DATA_FOUND THEN \
NULL; \
WHEN TOO_MANY_ROWS THEN \
raise_application_error(-20000, message); \
APPLICATION_ERROR(-20000,message); \
END
#endif // _INSSQL_H

View File

@@ -36,6 +36,7 @@ CREATE INDEX ins_i_ins_kenmerk1 ON ins_kenmerk(ins_kenmerk_code);
CREATE INDEX ins_i_ins_srtinstallatie1 ON ins_kenmerk(ins_srtinstallatie_key);
CREATE INDEX ins_i_ins_kenmerk_deel1 ON ins_kenmerkdeel(ins_deel_key);
CREATE INDEX ins_i_ins_kenmerk_kenmerk1 ON ins_kenmerkdeel(ins_kenmerk_key);
CREATE INDEX ins_i_ins_kenmerk_kenmerk2 ON ins_kenmerkdeel(ins_kenmerkdeel_waarde);
CREATE INDEX ins_i_ins_deelkoppeling1 ON ins_deelkoppeling(ins_deelkoppeling_van_key);
CREATE INDEX ins_i_ins_deelkoppeling2 ON ins_deelkoppeling(ins_deelkoppeling_naar_key);

View File

@@ -10,8 +10,21 @@ _FAC_MODULE('SLE','lcl_module_SLE')
INSERT INTO ins_scenario(ins_scenario_key, ins_scenario_omschrijving)
VALUES (1, 'Actual scenario');
DEF_RAPPORT('BASIS', 'WEB_SLEFOF', 0, 'ins_v_rap_sle_toegang', 'UDR: Sleuteloverzicht', 'Basisrapport voor sleutels',
'UDR: Key management', 'Basic report for key management')
INSERT INTO fac_usrrap
(fac_usrrap_omschrijving, fac_usrrap_view_name,
fac_usrrap_vraagbegindatum, fac_usrrap_vraageinddatum,
fac_usrrap_functie,
fac_usrrap_info,
fac_functie_key, fac_usrrap_autorefresh
)
VALUES ('SLE: Sleuteloverzicht', 'ins_v_rap_sle_toegang',
0, 0,
0,
'Overzicht van sleutels en bezitters',
(SELECT fac_functie_key FROM fac_functie
WHERE fac_functie_code = 'WEB_SLEFOF'),
0
);
DEF_STATUS('controle', 0, 'lcl_ins_controle_pending');
DEF_STATUS('controle', 2, 'lcl_ins_controle_gestart');

View File

@@ -312,10 +312,6 @@ CREATE_TABLE(ins_srtdeel,0)
NOT NULL,
ins_srtdeel_statethreshold /* drempelwaarde waarboven een melding type mld_stdmelding_key aangemaakt moet worden */
VARCHAR2(128),
ins_srtdeel_statestepsize /* ondergrens (marge) voor verschil tussen meetwaarden om als verschil te erkennen, bv 0,5 */
NUMBER(6,3),
ins_srtdeel_stateanchor /* anker voor zgn kwantisatiegrid, bv 10. Werkt in combi met stepsize Q(x) = round((x - q_anchor)/q_step) * q_step + q_anchor */
NUMBER(6,3),
/* in mld_tab.src:
mld_stdmelding_key
NUMBER(10)
@@ -468,8 +464,6 @@ CREATE_TABLE(ins_deel_state_history, 0)
CONSTRAINT ins_r_ins_deel_key2 REFERENCES ins_deel(ins_deel_key),
ins_deel_state
VARCHAR2(128),
ins_deel_state_value
NUMBER(16,6),
ins_deel_statedate
DATE,
ins_deel_state_history_opmerk /* je weet het niet he */
@@ -856,9 +850,6 @@ CREATE_TABLE(ins_kenmerk, 0)
ins_kenmerk_volgnummer
NUMBER(3)
NOT NULL,
ins_kenmerk_rolcode
NUMBER(4)
DEFAULT 7 NOT NULL,
ins_kenmerk_locatiekolom
VARCHAR2(30),
ins_kenmerk_uniek

View File

@@ -354,140 +354,79 @@ BEGIN
END;
/
CREATE OR REPLACE TRIGGER ins_t_ins_deel_a_u
AFTER UPDATE
ON ins_deel
CREATE OR REPLACE TRIGGER ins_t_ins_deel_A_U
AFTER UPDATE ON ins_deel
FOR EACH ROW
DECLARE
lmelder_oslogin CONSTANT VARCHAR2 (10) := '_SYSTEEM';
new_date DATE;
prev_state ins_deel_state_history.ins_deel_state%TYPE;
prev_historystate ins_deel_state_history.ins_deel_state%TYPE;
lsensortype ins_srtdeel.ins_srtdeel_sensortype%TYPE;
lstate_history_key ins_deel_state_history.ins_deel_state_history_key%TYPE;
ins_srtdeel_statethreshold ins_srtdeel.ins_srtdeel_statethreshold%TYPE;
anchorednewstateval NUMBER;
ldubbelcheck_key mld_melding.mld_melding_key%TYPE;
lstdmelding_key ins_srtdeel.mld_stdmelding_key%TYPE;
ldiscipline_key mld_stdmelding.mld_ins_discipline_key%TYPE;
lstatethreshold ins_srtdeel.ins_srtdeel_statethreshold%TYPE;
lstatestepsize ins_srtdeel.ins_srtdeel_statestepsize%TYPE;
lstateanchor ins_srtdeel.ins_srtdeel_stateanchor%TYPE;
lmelding_key mld_melding.mld_melding_key%TYPE;
lmelder_key mld_melding.prs_perslid_key%TYPE;
BEGIN
BEGIN
-- archiving changes in state_history, satisfying parameters
-- note that archiving is more limited than recording any change
IF (:old.ins_deel_state IS NULL AND :new.ins_deel_state IS NOT NULL) OR (:new.ins_deel_state <> :old.ins_deel_state)
-- archiving chances in state_history
IF (:old.ins_deel_state IS NULL AND :new.ins_deel_state IS NOT NULL)
OR (:new.ins_deel_state <> :old.ins_deel_state)
THEN
BEGIN
-- mutatie van state impliceert al dat het een sensortype is
-- toch checken we dat en halen ook de benodigde eigenschappen op
new_date := COALESCE (:new.ins_deel_statedate, SYSDATE); -- voorkom dat de update *net* een seconde later kan zijn
SELECT ins_srtdeel_statethreshold
, mld_stdmelding_key
, ins_srtdeel_statestepsize
, ins_srtdeel_stateanchor
, ins_srtdeel_sensortype
INTO lstatethreshold
, lstdmelding_key
, lstatestepsize
, lstateanchor
, lsensortype
FROM ins_srtdeel
WHERE ins_srtdeel_key = :new.ins_srtdeel_key AND ins_srtdeel_sensortype > 0; -- een sensor; dwingt configuratie af.
-- voorkom dat de update *net* een seconde later kan zijn, een atomair tijdstip voor deze activiteit hier
new_date := COALESCE (:new.ins_deel_statedate, SYSDATE);
-- Voor continuwaarden gaan we de waarden 'snappen' op een 'grid' van meetwaarden
-- initieel/default de ongesnapte meetwaarde; voor tekstwaarden wordt dit NULL
anchorednewstateval := fac.safe_to_number (:new.ins_deel_state);
-- we bewaren alleen de history als de afwijking met de vorige waarde er is (discreet)
-- of groot genoeg is (continu) als dat geconfigureerd is. Merk op dat we hier de gesnapte
-- (dus eventueel afgeronde) waarden vergelijken
IF BITAND (lsensortype, 1) = 1 OR (lstatestepsize IS NOT NULL AND lstateanchor IS NOT NULL)
THEN
BEGIN
SELECT ins_deel_state
INTO prev_historystate
FROM ins_deel_state_history
WHERE ins_deel_key = :new.ins_deel_key
ORDER BY ins_deel_statedate DESC, ins_deel_state_history_key DESC
FETCH FIRST 1 ROW ONLY;
IF BITAND (lsensortype, 2) = 2
THEN
-- continuwaarden snappen op grid
anchorednewstateval :=
ROUND ((anchorednewstateval - TO_NUMBER (lstateanchor)) / TO_NUMBER (lstatestepsize)) * TO_NUMBER (lstatestepsize) + TO_NUMBER (lstateanchor);
END IF;
EXCEPTION
WHEN NO_DATA_FOUND
THEN
DBMS_OUTPUT.put_line ('No history for deel_state, firstvalue=' || anchorednewstateval);
prev_historystate := NULL;
END;
END IF;
DBMS_OUTPUT.put_line ('prev_historystate=' || prev_historystate);
DBMS_OUTPUT.put_line ('new.ins_deel_state=' || :new.ins_deel_state);
DBMS_OUTPUT.put_line ('ins.state_diff (prev_historystate, :new.ins_deel_state)=' || ins.state_diff (prev_historystate, :new.ins_deel_state));
-- we gaan er gewoon van uit dat de oude waarde al gealigned is op het grid.
-- round((x - q_anchor)/q_step) * q_step + q_anchor
DBMS_OUTPUT.put_line ('anchorednewstateval=' || anchorednewstateval);
-- Waarde opslaan: sowieso voor discrete waarden en
-- voor continuwaarden indien de afgeronde afwijking groot genoeg id
--
-- Note: we introduce the numeric value in ins_deel_state_value, this is for future use
-- since at this moment all existing code etc does not use it yet and altering that is out off scope
--
IF BITAND (lsensortype, 2) <> 2 OR prev_historystate IS NULL OR ABS (ins.state_diff (prev_historystate, :new.ins_deel_state)) >= lstatestepsize
THEN
BEGIN
INSERT INTO ins_deel_state_history (ins_deel_key
, ins_deel_state
, ins_deel_statedate
, ins_deel_state_value)
VALUES (:new.ins_deel_key
, COALESCE (TO_CHAR (anchorednewstateval), :new.ins_deel_state)
, COALESCE (:new.ins_deel_statedate, new_date)
, anchorednewstateval)
INSERT INTO ins_deel_state_history (ins_deel_key, ins_deel_state, ins_deel_statedate)
VALUES (:new.ins_deel_key,
:new.ins_deel_state,
COALESCE (:new.ins_deel_statedate, new_date))
RETURNING ins_deel_state_history_key
INTO lstate_history_key;
EXCEPTION
WHEN DUP_VAL_ON_INDEX
THEN
-- Er blijkt op/voor/met precies dit tijdstip al een meetwaarde geregistreerd van deze sensor
-- Dan kiezen we maar voor: laatste update -dus deze- geldt, alsof het een correctie is.
IF (prev_historystate <> :new.ins_deel_state)
BEGIN
SELECT ins_deel_state
INTO prev_state
FROM ins_deel_state_history
WHERE ins_deel_state_history_key =
(SELECT MAX (ins_deel_state_history_key)
FROM ins_deel_state_history
WHERE ins_deel_key = :new.ins_deel_key
AND ins_deel_statedate < new_date);
EXCEPTION
WHEN NO_DATA_FOUND
THEN
UPDATE ins_deel_state_history
SET ins_deel_state = COALESCE (TO_CHAR (anchorednewstateval), :new.ins_deel_state), ins_deel_state_value = anchorednewstateval
WHERE ins_deel_key = :new.ins_deel_key AND ins_deel_statedate = new_date;
END IF;
-- lstate_history_key blijft hier NULL, dus een dubbele kan nooit een melding triggeren
-- wie hier ooit uitkomt bij een probleem: gefeliciteerd
NULL;
END;
IF (prev_state = :new.ins_deel_state)
THEN
DELETE ins_deel_state_history
WHERE ins_deel_key = :new.ins_deel_key AND ins_deel_statedate = new_date;
ELSE -- kan alleen bij tri-stste statussen gebeuren
UPDATE ins_deel_state_history
SET ins_deel_state = :new.ins_deel_state
WHERE ins_deel_key = :new.ins_deel_key AND ins_deel_statedate = new_date;
END IF;
END;
END IF;
-- potentially trigger dependent actions; this is not dependant
-- to the snapping of the values, which are for archiving only.
IF (:old.ins_deel_state IS NULL AND :new.ins_deel_state IS NOT NULL) OR (:new.ins_deel_state <> :old.ins_deel_state)
-- potentially trigger dependent actions
IF (:old.ins_deel_state IS NULL AND :new.ins_deel_state IS NOT NULL)
OR (:new.ins_deel_state <> :old.ins_deel_state)
THEN
BEGIN
SELECT ins_srtdeel_statethreshold, mld_stdmelding_key
INTO lstatethreshold, lstdmelding_key
FROM ins_srtdeel
WHERE ins_srtdeel_key = :new.ins_srtdeel_key;
IF lstatethreshold IS NOT NULL
AND lstdmelding_key IS NOT NULL
AND ( ( BITAND (lsensortype, 2) = 2
AND ins.state_compare (:new.ins_deel_state, lstatethreshold) > 0
AND ins.state_compare (:old.ins_deel_state, lstatethreshold) <= 0)
OR (BITAND (lsensortype, 1) = 1 AND UPPER (:new.ins_deel_state) = UPPER (lstatethreshold)))
AND ins.state_compare (:old.ins_deel_state, lstatethreshold) <= 0
THEN
-- Eerst controleren of er niet al een "heel recente" melding bestaat
-- waarmee deze zou kunnen gaan overlappen. We hebben geen behoefte aan veel meer
@@ -501,7 +440,8 @@ BEGIN
EXCEPTION
WHEN NO_DATA_FOUND
THEN
fac.putsystemnotification ('Invalid configuration: missing _SYSTEEM user', 1);
fac.putsystemnotification ('Invalid configuration: missing _SYSTEEM user',
1);
END;
IF lmelder_key IS NOT NULL
@@ -522,16 +462,22 @@ BEGIN
AND mo.ins_deel_key = :new.ins_deel_key
AND m.mld_stdmelding_key = lstdmelding_key
AND m.prs_perslid_key = lmelder_key
AND m.mld_melding_status IN (2
, 0
, 4
, 7); -- lopend
AND m.mld_melding_status IN (2,
0,
4,
7); -- lopend
IF ldubbelcheck_key IS NOT NULL -- puur voor de leesbaarheid, als er geen is gaan we nl in de exception verder
THEN
-- track this. This seems like an appropriate place.
UPDATE ins_deel_state_history
SET ins_deel_state_history_opmerk = REPLACE (REPLACE (lcl.l ('lcl_ins_sensorstate_already_mld'), '{0}', ldubbelcheck_key), '{1}', lstatethreshold)
SET ins_deel_state_history_opmerk =
REPLACE (
REPLACE (lcl.l ('lcl_ins_sensorstate_already_mld'),
'{0}',
lmelding_key),
'{1}',
lstatethreshold)
WHERE ins_deel_state_history_key = lstate_history_key;
END IF;
EXCEPTION
@@ -544,35 +490,40 @@ BEGIN
FROM mld_stdmelding msm
WHERE msm.mld_stdmelding_key = lstdmelding_key;
INSERT INTO mld_melding (mld_melding_module
, mld_meldbron_key
, mld_alg_locatie_key
, mld_alg_onroerendgoed_keys
, mld_melding_datum
, mld_melding_onderwerp
, mld_melding_omschrijving
, mld_stdmelding_key
, mld_melding_status
, mld_kosten_klant
, prs_perslid_key
, mld_melding_spoed
, mld_ins_discipline_key)
VALUES ('MLD'
, 11
, -- sensor
:new.ins_alg_locatie_key
, :new.ins_alg_ruimte_key
, SYSDATE
, lcl.l ('lcl_mld_state_generated_onderwerp')
, REPLACE (REPLACE (lcl.l ('lcl_mld_state_generated_omschrijving'), '{0}', :new.ins_deel_state), '{1}', lstatethreshold)
, lstdmelding_key
, 2
, -- of afh mld_directklaar
NULL
, lmelder_key
, --TODO!!!!!!! prs_perslid_key,
3
, ldiscipline_key)
INSERT INTO mld_melding (mld_melding_module,
mld_meldbron_key,
mld_alg_locatie_key,
mld_alg_onroerendgoed_keys,
mld_melding_datum,
mld_melding_onderwerp,
mld_melding_omschrijving,
mld_stdmelding_key,
mld_melding_status,
mld_kosten_klant,
prs_perslid_key,
mld_melding_spoed,
mld_ins_discipline_key)
VALUES (
'MLD',
11, -- sensor
:new.ins_alg_locatie_key,
:new.ins_alg_ruimte_key,
SYSDATE,
lcl.l ('lcl_mld_state_generated_onderwerp'),
REPLACE (
REPLACE (
lcl.l (
'lcl_mld_state_generated_omschrijving'),
'{0}',
:new.ins_deel_state),
'{1}',
lstatethreshold),
lstdmelding_key,
2, -- of afh mld_directklaar
NULL,
lmelder_key, --TODO!!!!!!! prs_perslid_key,
3,
ldiscipline_key)
RETURNING mld_melding_key
INTO lmelding_key;
@@ -583,7 +534,12 @@ BEGIN
-- track this. This seems like an appropriate place.
UPDATE ins_deel_state_history
SET ins_deel_state_history_opmerk =
REPLACE (REPLACE (lcl.l ('lcl_ins_sensorstate_caused_mld'), '{0}', lmelding_key), '{1}', lstatethreshold)
REPLACE (
REPLACE (lcl.l ('lcl_ins_sensorstate_caused_mld'),
'{0}',
lmelding_key),
'{1}',
lstatethreshold)
WHERE ins_deel_state_history_key = lstate_history_key;
-- If defined kick off the workflow
@@ -594,12 +550,6 @@ BEGIN
END IF;
END;
END IF;
EXCEPTION
WHEN NO_DATA_FOUND
THEN
DBMS_OUTPUT.put_line ('Statevalues set for non-sensor: ignored');
NULL;
END;
-- Uitlenen object: Uitgifte object toevoegen aan de uitgifte tabel.
IF (:old.ins_alg_ruimte_key_org IS NULL AND :new.ins_alg_ruimte_key_org IS NOT NULL)
@@ -616,15 +566,21 @@ BEGIN
, SYSDATE
, CASE
WHEN :new.res_rsv_deel_key IS NOT NULL
THEN
(SELECT rrd.res_rsv_deel_tot
THEN (SELECT rrd.res_rsv_deel_tot
FROM res_rsv_deel rrd
WHERE res_rsv_deel_key = :new.res_rsv_deel_key)
ELSE
NULL
ELSE NULL
END
, CASE WHEN :new.ins_alg_ruimte_type = 'P' THEN :new.ins_alg_ruimte_key ELSE NULL END
, CASE WHEN :new.ins_alg_ruimte_type = 'C' THEN :new.ins_alg_ruimte_key ELSE NULL END);
, CASE
WHEN :new.ins_alg_ruimte_type = 'P'
THEN :new.ins_alg_ruimte_key
ELSE NULL
END
, CASE
WHEN :new.ins_alg_ruimte_type = 'C'
THEN :new.ins_alg_ruimte_key
ELSE NULL
END);
END;
END IF;
@@ -670,7 +626,7 @@ BEGIN
WHILE PrimaryKey IS NOT NULL
LOOP
Dummy := fac.remember_SavePrimaryKey('INS_TRIGGER_BUSY', 1);
/* Jammer maar helaas, vanwege syntaxredenen moeten we weten of we met UNDO te maken hebben */
/* Jammer maar helaas, vanwege syntaxredenen moeten we weten of we met UNDO te maken hebben
/* Als parent is verwijderd, dan is deletemode gevuld met zijn datum */
/* Als parent terug wordt gehaald, dan is delete-mode gevuld met NULL ( betekent FALSE) */
SELECT ins_deel_verwijder

View File

@@ -2667,42 +2667,6 @@ SELECT di.deel_key,
ins_v_defined_inspect_xcp iscx
WHERE di.deel_key = iscx.ins_deel_key;
// Rapport over de actuele sensordata van alle sensoren met wat afgeleide gegevens
CREATE_VIEW(ins_v_udr_sensordata, 0)
AS
SELECT h.ins_deel_key deel_key
, og.alg_ruimte_key ruimte_key
, og.alg_plaatsaanduiding plaats
, d.ins_deel_omschrijving sensor
, sd.ins_srtdeel_omschrijving soort
, sd.ins_srtdeel_code soortcode
, DECODE (BITAND (sd.ins_srtdeel_sensortype, 3), 1, lcl.l ('lcl_ins_sensortype1'), 2, lcl.l ('lcl_ins_sensortype2'), '?') sensortype
, og.alg_gebouw_code gebouwcode
, og.alg_gebouw_naam gebouwnaam
, og.alg_verdieping_code verdiepingcode
, og.alg_ruimte_nr ruimtenr
, og.prs_werkplek_key werkplek_key
, og.prs_werkplek_volgnr werkplekvolgnr
, og.prs_werkplek_omschrijving werkplek
, og.alg_terreinsector_code terreinsectorcode
, og.alg_terreinsector_naam terreinsector
, h.ins_deel_state waarde
, sd.ins_srtdeel_statethreshold bovengrens
, DECODE (sd.ins_srtdeel_statethreshold, NULL, NULL, ins.state_diff (sd.ins_srtdeel_statethreshold, h.ins_deel_state)) marge
, h.ins_deel_statedate datum
, ROUND ((SYSDATE - h.ins_deel_statedate) * 24 * 60, 1) minutes_ago
, og.alg_locatie_key fclt_3d_locatie_key
, d.ins_discipline_key fclt_3d_discipline_key
FROM ins_deel h
, ins_v_deelenonderdeel d
, ins_v_alg_overzicht og
, ins_srtdeel sd
WHERE og.alg_onroerendgoed_keys = d.ins_alg_ruimte_key
AND og.alg_onroerendgoed_type = d.ins_alg_ruimte_type
AND sd.ins_srtdeel_key = d.ins_srtdeel_key
AND sd.ins_srtdeel_sensortype > 0
AND d.ins_deel_key = h.ins_deel_key;
// Rapport over de gecomprimeerde/historische sensordata van status-sensoren
CREATE_VIEW(ins_v_udr_sensorhistogram, 0)
AS
@@ -2738,14 +2702,13 @@ AS
og.alg_gebouw_code gebouwcode,
og.alg_gebouw_naam gebouwnaam,
og.alg_verdieping_code verdiepingcode,
og.alg_ruimte_key ruimte_key,
og.alg_ruimte_nr ruimtenr,
og.prs_werkplek_volgnr werkplekvolgnr,
og.prs_werkplek_omschrijving werkplek,
og.alg_terreinsector_code terreinsectorcode,
og.alg_terreinsector_naam terreinsector,
h.ins_deel_state status,
h.ins_deel_state_value status_numeriek,
fac.safe_to_number (REPLACE (h.ins_deel_state, ',', '.')) status_numeriek,
h.ins_deel_state_history_opmerk opmerking,
og.alg_locatie_key fclt_3d_locatie_key,
d.ins_discipline_key fclt_3d_discipline_key
@@ -2812,123 +2775,5 @@ AS
ORDER BY du.ins_deel_key,
du.ins_deel_uitgifte_begin;
/*
-- ins_v_room_occupancy_buckets:
-- Verzamelt 30-min buckets van de afgelopen 90 dagen per ruimte en bezettingssensor.
-- Filtert op werkdagen (ma<6D>vr) en sluit feestdagen uit.
-- Output-kolommen:
-- alg_ruimte_key, bucket_start, sensor_id, state ('true'/'false').
--
-- ins_v_room_occupancy_stats:
-- Agregeert per ruimte en bucket het aantal bezette werkplekken (occupied_desks)
-- en het totaal aantal werkpleksensoren (total_desks).
-- Output-kolommen:
-- room_key, bucket_start, occupied_desks, total_desks.
--
-- ins_v_room_occupancy_kpis:
-- Berekent per ruimte drie KPI's:
-- total_person_hours (som occupied_desks <20> 0.5u)
-- avg_utilization_pct (gem. benutting % op 1 decimaal)
-- peak_occupied_desks (max gelijktijdige bezetting in <20><>n bucket)
*/
CREATE_VIEW(ins_v_room_occupancy_buckets, 0)
AS
WITH
intervals
AS
( SELECT -- genereer alle 30-min-intervals tussen sysdate-90 en sysdate
TRUNC (SYSDATE - 90) + NUMTODSINTERVAL ((ROWNUM - 1) * 30, 'MINUTE') AS bucket_start
FROM DUAL
CONNECT BY ROWNUM <= ((SYSDATE - (SYSDATE - 90)) * 24 * 60 / 30)),
sensors
AS
( -- select alleen bezettingssensoren
SELECT d.ins_deel_key, d.ins_alg_ruimte_key AS alg_ruimte_key
FROM ins_deel d JOIN ins_srtdeel sd ON sd.ins_srtdeel_key = d.ins_srtdeel_key
WHERE sd.ins_srtgroep_key = fac.getsetting ('ins_occupationsensors_srtgroep_key') AND d.ins_alg_ruimte_type = 'R'),
sensor_states
AS
( SELECT i.bucket_start
, s.ins_deel_key AS sensor_id
, s.alg_ruimte_key
, MAX (h.ins_deel_statedate) AS last_ts
FROM intervals i
CROSS JOIN sensors s
LEFT JOIN ins_deel_state_history h ON h.ins_deel_key = s.ins_deel_key AND h.ins_deel_statedate <= i.bucket_start
GROUP BY i.bucket_start, s.ins_deel_key, s.alg_ruimte_key),
bucket_values
AS
(SELECT ss.alg_ruimte_key
, ss.bucket_start
, ss.sensor_id
, -- gebruik NVL om ontbrekende states als 'false' te tonen
NVL (h.ins_deel_state, 'false') AS state
FROM sensor_states ss LEFT JOIN ins_deel_state_history h ON h.ins_deel_key = ss.sensor_id AND h.ins_deel_statedate = ss.last_ts
-- filter op kantooruren via TO_CHAR, omdat EXTRACT(HOUR) niet werkt op DATE
WHERE (TO_NUMBER (TO_CHAR (ss.bucket_start, 'HH24')) + TO_NUMBER (TO_CHAR (ss.bucket_start, 'MI')) / 60) BETWEEN fac.getsetting ('fac_t_startofworkday')
AND fac.getsetting ('fac_t_endofworkday')
-- alleen maandag t/m vrijdag
AND TO_CHAR (ss.bucket_start, 'DY', 'NLS_DATE_LANGUAGE=ENGLISH') NOT IN ('SAT', 'SUN')
-- geen vrije dagen
AND TRUNC (ss.bucket_start) NOT IN (SELECT mld_vrije_dagen_datum FROM mld_vrije_dagen))
SELECT alg_ruimte_key
, bucket_start
, sensor_id
, state
FROM bucket_values;
CREATE_VIEW(ins_v_room_occupancy_stats, 0)
AS
SELECT rob.alg_ruimte_key
AS alg_ruimte_key
, rob.bucket_start
, -- aantal bezette werkplekken in de bucket
SUM (
CASE
WHEN (LOWER(rob.state) = 'true' OR rob.state = '1')
AND EXISTS
(SELECT 1
FROM ins_deel d JOIN ins_srtdeel sd ON sd.ins_srtdeel_key = d.ins_srtdeel_key
WHERE sd.ins_srtgroep_key = fac.getsetting ('ins_occupationsensors_srtgroep_key')
AND d.ins_deel_key = rob.sensor_id
AND d.ins_alg_ruimte_key = rob.alg_ruimte_key)
THEN
1
ELSE
0
END)
AS occupied_desks
, -- totaal aantal werkpleksensoren in de bucket
SUM (
CASE
WHEN EXISTS
(SELECT 1
FROM ins_deel d JOIN ins_srtdeel sd ON sd.ins_srtdeel_key = d.ins_srtdeel_key
WHERE sd.ins_srtgroep_key = fac.getsetting ('ins_occupationsensors_srtgroep_key')
AND d.ins_deel_key = rob.sensor_id
AND d.ins_alg_ruimte_key = rob.alg_ruimte_key)
THEN
1
ELSE
0
END)
AS total_desks
FROM ins_v_room_occupancy_buckets rob
GROUP BY rob.alg_ruimte_key, rob.bucket_start;
CREATE_VIEW(ins_v_room_occupancy_kpis, 0)
AS
SELECT alg_ruimte_key
, -- 1) Totaal persoon-uren over de afgelopen 90 dagen tijdens kantoortijden
SUM (occupied_desks * (30 / 60)) AS total_person_hours
, -- 2) Gemiddelde benutting als percentage per bucket, afgerond op 1 decimaal
ROUND (AVG (occupied_desks / NULLIF (total_desks, 0)) * 100, 1) AS avg_utilization_pct
, -- 3) Piek aantal gelijktijdig bezette werkplekken in <20><>n bucket
MAX (occupied_desks) AS peak_occupied_desks
FROM ins_v_room_occupancy_stats
GROUP BY alg_ruimte_key;
REGISTERRUN('$Id$')
#endif // INS

View File

@@ -77,7 +77,7 @@ CREATE INDEX mld_i_mld_opdr_uren2 ON mld_opdr_uren(mld_opdr_key);
CREATE UNIQUE INDEX mld_i_mld_dienstpakket ON mld_dienstpakket(mld_stdmelding_key, mld_dienstniveau_key);
CREATE UNIQUE INDEX mld_i_mld_opdr_uitvoeren1 ON mld_opdr_uitvoeren(mld_opdr_key, mld_opdr_uitvoeren_dag);
CREATE INDEX mld_i_mld_opdr_materiaal1 ON mld_opdr_materiaal(mld_opdr_key);
CREATE INDEX mld_i_mld_opdr_materiaal1 ON mld_opdr_materiaal(mld_opdr_key, fac_usrdata_key, mld_opdr_materiaal_omschr);
CREATE UNIQUE INDEX mld_i_mld_stdmeldingfaq1 ON mld_stdmeldingfaq(mld_stdmelding_key, ins_discipline_key, fac_faq_key);
CREATE INDEX mld_i_mld_stdmeldingfaq2 ON mld_stdmeldingfaq(ins_discipline_key, fac_faq_key);

View File

@@ -343,7 +343,7 @@ DEFINE_LOCALEITEM(lcl_select_bedrijf)
DEFINE_LOCALEITEM(lcl_select_dienst_filter)
DEFINE_LOCALEITEM(lcl_select_notypeopdr_selected)
DEFINE_LOCALEITEM(lcl_select_typeopdr)
DEFINE_LOCALEITEM(lcl_setsent)
DEFINE_LOCALEITEM(lcl_setsend)
DEFINE_LOCALEITEM(lcl_status)
DEFINE_LOCALEITEM(lcl_status_details)
DEFINE_LOCALEITEM(lcl_submit)

View File

@@ -62,15 +62,6 @@ CREATE OR REPLACE PACKAGE mld AS
eenheid IN VARCHAR2 DEFAULT NULL
) RETURN MLD_T_UITVOERTIJD;
FUNCTION getactualuitvoer (p_melding_key IN NUMBER) RETURN MLD_T_UITVOERTIJD;
FUNCTION getactualaccept (startdate IN DATE,
enddate IN DATE,
stdm_key IN NUMBER,
prio IN NUMBER,
alg_key IN NUMBER,
ins_key IN NUMBER,
eenheid IN VARCHAR2 DEFAULT NULL
) RETURN MLD_T_UITVOERTIJD;
FUNCTION getactualaccept (p_melding_key IN NUMBER) RETURN MLD_T_UITVOERTIJD;
FUNCTION getstduitvoer (stdm_key IN NUMBER,
prio IN NUMBER,
alg_key IN NUMBER,
@@ -82,7 +73,6 @@ CREATE OR REPLACE PACKAGE mld AS
ins_key IN NUMBER,
v_mld_stdmelding_regime OUT NUMBER,
v_uitvoertijd_object OUT MLD_T_UITVOERTIJD,
v_accepttijd OUT MLD_T_UITVOERTIJD,
v_beginuur OUT NUMBER,
v_einduur OUT NUMBER,
v_werkdagen OUT NUMBER
@@ -262,7 +252,7 @@ CREATE OR REPLACE PACKAGE BODY mld AS
END IF;
WHEN 1 -- Afgewezen
THEN
IF currentstatus IS NULL OR currentstatus = 0 OR currentstatus = 2 OR currentstatus = 4
IF currentstatus IS NULL OR currentstatus = 0 OR currentstatus = 2
THEN
newstatus := pstatus;
eventcode := 'MLDREJ';
@@ -338,11 +328,6 @@ CREATE OR REPLACE PACKAGE BODY mld AS
THEN
behandelaar2_key := NULL;
END IF;
-- Van actiecode bit 128 wissen indien gezet.
IF BITAND(actiecode, 128) = 128
THEN
actiecode := actiecode - 128;
END IF;
END IF;
WHEN 6 -- Verwerkt
THEN
@@ -1490,7 +1475,7 @@ CREATE OR REPLACE PACKAGE BODY mld AS
preference => bedrijfrec.reference,
ptypeopdr_key => bedrijfrec.mld_typeopdr_key,
plocatie_key => bedrijfrec.alg_locatie_key,
pdiscipline_key => bedrijfrec.mld_opdr_discipline_key,
pdisc_key => bedrijfrec.mld_opdr_discipline_key,
psender => bedrijfrec.alg_locatie_email,
pbedrijf_key2 => bedrijfrec.persoon_bedrijf_key,
pnotidelay => pnotidelay);
@@ -1537,9 +1522,8 @@ CREATE OR REPLACE PACKAGE BODY mld AS
ptrackingkey => ptrackingkey,
preference => bedrijfrec.reference,
plocatie_key => bedrijfrec.alg_locatie_key,
pdiscipline_key => bedrijfrec.mld_ins_discipline_key,
pdisc_key => bedrijfrec.mld_ins_discipline_key,
psender => bedrijfrec.alg_locatie_email,
pbedrijf_key2 => bedrijfrec.persoon_bedrijf_key,
pnotidelay => pnotidelay);
END LOOP;
END;
@@ -1800,10 +1784,8 @@ CREATE OR REPLACE PACKAGE BODY mld AS
l_alg_gebouw_key alg_v_allonrgoed_gegevens.alg_gebouw_key%TYPE;
l_alg_verdieping_key alg_v_allonrgoed_gegevens.alg_verdieping_key %TYPE;
l_alg_ruimte_key alg_v_allonrgoed_gegevens.alg_ruimte_key%TYPE;
l_alg_type alg_v_allonrgoed_gegevens.alg_type%TYPE;
l_prs_dienst_key NUMBER;
l_prs_bedrijf_key prs_v_aanwezigbedrijf.prs_bedrijf_key%TYPE;
l_cnt_contract_key cnt_contract.cnt_contract_key%TYPE;
l_aantal NUMBER;
l_bdl_tijdsduur prs_bedrijfdienstlocatie.prs_bdl_t_uitvoertijd.tijdsduur%TYPE;
l_bdl_eenheid prs_bedrijfdienstlocatie.prs_bdl_t_uitvoertijd.eenheid%TYPE;
@@ -1907,9 +1889,9 @@ CREATE OR REPLACE PACKAGE BODY mld AS
, mto.mld_typeopdr_fvs
, mto.mld_typeopdr_gvs
, mto.mld_typeopdr_isofferte
, mto.mld_typeopdr_kosten
, mto.mld_typeopdr_kosten_verplicht
, mto.mld_typeopdr_slamode
, mld_typeopdr_kosten
, mld_typeopdr_kosten_verplicht
, mld_typeopdr_slamode
INTO l_mld_typeopdr_key
, l_mld_typeopdr_fvs
, l_mld_typeopdr_gvs
@@ -2051,11 +2033,9 @@ CREATE OR REPLACE PACKAGE BODY mld AS
SELECT g.alg_gebouw_key
, g.alg_verdieping_key
, g.alg_ruimte_key
, g.alg_type
INTO l_alg_gebouw_key
, l_alg_verdieping_key
, l_alg_ruimte_key
, l_alg_type
FROM alg_v_allonrgoed_gegevens g
WHERE g.alg_onroerendgoed_keys = l_mld_alg_onroerendgoed_keys;
END IF;
@@ -2076,7 +2056,7 @@ CREATE OR REPLACE PACKAGE BODY mld AS
IF l_prs_dienst_key IS NOT NULL
THEN
-- Controleer of er <20><>n bedrijf is dat deze dienst levert (op deze locatie/dit gebouw) via prs_bedrijfdienstlocatie
-- Controleer of er <20><>n bedrijf is dat deze dienst levert (op deze locatie/dit gebouw)
IF l_alg_gebouw_key IS NOT NULL
THEN
SELECT MIN(bdl.prs_bedrijf_key) prs_bedrijf_key
@@ -2092,12 +2072,9 @@ CREATE OR REPLACE PACKAGE BODY mld AS
WHERE bdl.prs_bedrijf_key = b.prs_bedrijf_key
AND bdl.prs_dienst_key = l_prs_dienst_key
AND ((bdl.alg_gebouw_key = l_alg_gebouw_key
OR bdl.alg_gebouw_key IS NULL
)
OR bdl.alg_gebouw_key IS NULL)
AND (bdl.alg_locatie_key = l_mld_alg_locatie_key
OR bdl.alg_locatie_key IS NULL
)
)
OR bdl.alg_locatie_key IS NULL))
AND bdl.mld_autoorder = 1;
ELSIF l_mld_alg_locatie_key IS NOT NULL
THEN
@@ -2114,8 +2091,7 @@ CREATE OR REPLACE PACKAGE BODY mld AS
WHERE bdl.prs_bedrijf_key = b.prs_bedrijf_key
AND bdl.prs_dienst_key = l_prs_dienst_key
AND (bdl.alg_locatie_key = l_mld_alg_locatie_key
OR bdl.alg_locatie_key IS NULL
)
OR bdl.alg_locatie_key IS NULL)
AND bdl.mld_autoorder = 1;
ELSE
SELECT MIN(bdl.prs_bedrijf_key) prs_bedrijf_key
@@ -2140,56 +2116,6 @@ CREATE OR REPLACE PACKAGE BODY mld AS
THEN
l_prs_bedrijf_key := NULL;
END IF;
--
-- Controleer of er <20><>n bedrijf is dat deze dienst levert (op deze locatie/dit gebouw) via cnt_contract_plaats
IF l_aantal <> 1
THEN
IF l_mld_alg_onroerendgoed_keys IS NOT NULL
THEN
SELECT MIN(c.cnt_prs_bedrijf_key) cnt_prs_bedrijf_key
, MIN(cp.cnt_contract_key) cnt_contract_key
, COUNT(DISTINCT c.cnt_prs_bedrijf_key) aantal
INTO l_prs_bedrijf_key
, l_cnt_contract_key
, l_aantal
FROM cnt_contract c
, cnt_contract_plaats cp
, cnt_disc_params cd
WHERE cp.cnt_contract_key = c.cnt_contract_key
AND cd.cnt_ins_discipline_key = c.ins_discipline_key
AND SYSDATE BETWEEN c.cnt_contract_looptijd_van
AND c.cnt_contract_looptijd_tot
AND c.cnt_contract_verwijder IS NULL
AND cd.cnt_srtcontract_type IN (3,5)
AND cp.cnt_alg_plaats_key = l_mld_alg_onroerendgoed_keys
AND cp.cnt_alg_plaats_code = l_alg_type
AND c.prs_dienst_key = l_prs_dienst_key;
ELSE
SELECT MIN(c.cnt_prs_bedrijf_key) cnt_prs_bedrijf_key
, MIN(cp.cnt_contract_key) cnt_contract_key
, COUNT(DISTINCT c.cnt_prs_bedrijf_key) aantal
INTO l_prs_bedrijf_key
, l_cnt_contract_key
, l_aantal
FROM cnt_contract c
, cnt_contract_plaats cp
, cnt_disc_params cd
WHERE cp.cnt_contract_key = c.cnt_contract_key
AND cd.cnt_ins_discipline_key = c.ins_discipline_key
AND SYSDATE BETWEEN c.cnt_contract_looptijd_van
AND c.cnt_contract_looptijd_tot
AND c.cnt_contract_verwijder IS NULL
AND cd.cnt_srtcontract_type IN (3,5)
AND cp.cnt_alg_plaats_key = l_mld_alg_locatie_key
AND cp.cnt_alg_plaats_code = 'L'
AND c.prs_dienst_key = l_prs_dienst_key;
END IF;
IF l_aantal <> 1
THEN
l_prs_bedrijf_key := NULL;
l_cnt_contract_key := NULL;
END IF;
END IF;
END IF;
IF l_prs_bedrijf_key IS NULL
THEN
@@ -2316,7 +2242,6 @@ CREATE OR REPLACE PACKAGE BODY mld AS
mld_opdr_bedrijfopdr_volgnr,
mld_typeopdr_key,
mld_uitvoerende_keys,
cnt_contract_key,
prs_perslid_key,
prs_kostenplaats_key,
prs_kostensoort_key,
@@ -2332,7 +2257,6 @@ CREATE OR REPLACE PACKAGE BODY mld AS
mld.bepaalopdrmeldingvolgnr(p_melding_key),
l_mld_typeopdr_key,
l_prs_bedrijf_key,
l_cnt_contract_key,
CASE
WHEN l_haswrite = 1
THEN l_prs_perslid_key
@@ -2417,7 +2341,8 @@ CREATE OR REPLACE PACKAGE BODY mld AS
AND k.mld_srtkenmerk_key = t.mld_srtkenmerk_key
AND t.mld_srtkenmerk_verwijder IS NULL
AND t.mld_srtkenmerk_kenmerktype <> 'M'
AND BITAND(k.mld_kenmerk_rolcode, 5) > 0 -- Alleen bij of na afmelden mogen afmeld-kenmerken (x0x of x1x)
AND (k.mld_kenmerk_volgnummer <= 100
OR k.mld_kenmerk_volgnummer >= 900) -- Alleen bij of na afmelden mogen afmeld-kenmerken tussen de 100..900
AND COALESCE((SELECT v.mld_kenmerkmelding_waarde
FROM mld_kenmerkmelding v
, mld_kenmerk vk
@@ -2487,7 +2412,8 @@ CREATE OR REPLACE PACKAGE BODY mld AS
AND k.mld_srtkenmerk_key = t.mld_srtkenmerk_key
AND t.mld_srtkenmerk_verwijder IS NULL
AND t.mld_srtkenmerk_kenmerktype <> 'M'
AND BITAND(k.mld_kenmerk_rolcode, 5) > 0 -- Alleen bij of na afmelden mogen afmeld-kenmerken (x0x of x1x)
AND (k.mld_kenmerk_volgnummer <= 100
OR k.mld_kenmerk_volgnummer >= 900) -- Alleen bij of na afmelden mogen afmeld-kenmerken tussen de 100..900
AND COALESCE((SELECT MIN(v.mld_kenmerkmelding_waarde)
FROM mld_kenmerkmelding v
, mld_kenmerk vk
@@ -2511,7 +2437,6 @@ CREATE OR REPLACE PACKAGE BODY mld AS
UPDATE mld_opdr
SET mld_opdr_teverzenden = 1
WHERE mld_opdr_key = l_new_opdr_key;
fac.notifytrackingbedrijven ('ORDNEW', l_new_opdr_key);
ELSE
-- Alleen in geval van een uitvoerder, de opdracht door putorders laten oppikken.
BEGIN
@@ -2534,7 +2459,6 @@ CREATE OR REPLACE PACKAGE BODY mld AS
UPDATE mld_opdr
SET mld_opdr_teverzenden = 1
WHERE mld_opdr_key = l_new_opdr_key;
fac.notifytrackingbedrijven ('ORDNEW', l_new_opdr_key);
EXCEPTION
WHEN NO_DATA_FOUND
THEN NULL;
@@ -2777,7 +2701,8 @@ CREATE OR REPLACE PACKAGE BODY mld AS
WHERE wr1.mld_workflowstep_key = ws1.mld_workflowstep_key
AND wr1.mld_workflowstep_next_key = r_nextsteps.mld_workflowstep_key;
DBMS_OUTPUT.put_line ('total nr of possible predecessors for next step: ' || l_nrofpossiblepredecessors);
DBMS_OUTPUT.put_line (
'total nr of possible predecessors for next step: ' || l_nrofpossiblepredecessors);
SELECT COUNT ( * )
INTO l_nrofactualpredecessors -- disregard status
@@ -2786,10 +2711,10 @@ CREATE OR REPLACE PACKAGE BODY mld AS
(SELECT wr1.mld_workflowstep_key
FROM mld_workflowrule wr1, mld_workflowstep ws1
WHERE wr1.mld_workflowstep_key = ws1.mld_workflowstep_key
AND wr1.mld_workflowstep_next_key = r_nextsteps.mld_workflowstep_key
)
AND wr1.mld_workflowstep_next_key =
r_nextsteps.mld_workflowstep_key)
-- the step to be continued
AND m.mld_melding_start_key = l_melding_start_key; -- for this thread
AND mld_melding_start_key = l_melding_start_key; -- for this thread
DBMS_OUTPUT.put_line('total nr of actual predecessors for next step: '
|| l_nrofactualpredecessors);
@@ -2818,8 +2743,7 @@ CREATE OR REPLACE PACKAGE BODY mld AS
(SELECT wr1.mld_workflowstep_key
FROM mld_workflowrule wr1, mld_workflowstep ws1
WHERE wr1.mld_workflowstep_key = ws1.mld_workflowstep_key
AND wr1.mld_workflowstep_next_key = r_nextsteps.mld_workflowstep_key
)
AND wr1.mld_workflowstep_next_key = r_nextsteps.mld_workflowstep_key)
GROUP BY wr1.mld_workflowstep_key;
EXCEPTION
WHEN NO_DATA_FOUND OR TOO_MANY_ROWS
@@ -2837,7 +2761,8 @@ CREATE OR REPLACE PACKAGE BODY mld AS
IN (SELECT wr1.mld_workflowstep_key
FROM mld_workflowrule wr1, mld_workflowstep ws1
WHERE wr1.mld_workflowstep_key = ws1.mld_workflowstep_key
AND wr1.mld_workflowstep_next_key = r_nextsteps.mld_workflowstep_key
AND wr1.mld_workflowstep_next_key =
r_nextsteps.mld_workflowstep_key
MINUS
SELECT mld_workflowstep_key
FROM mld_melding m
@@ -2845,11 +2770,9 @@ CREATE OR REPLACE PACKAGE BODY mld AS
(SELECT wr1.mld_workflowstep_key
FROM mld_workflowrule wr1, mld_workflowstep ws1
WHERE wr1.mld_workflowstep_key = ws1.mld_workflowstep_key
AND wr1.mld_workflowstep_next_key = r_nextsteps.mld_workflowstep_key
)
AND mld_melding_start_key = l_melding_start_key
)
LOOP
AND wr1.mld_workflowstep_next_key =
r_nextsteps.mld_workflowstep_key)
AND mld_melding_start_key = l_melding_start_key) LOOP
-- This predecessing step missingsteps.mld_workflowstep_key is possible but not actual. How come?
-- Are some of its predecessor(s) not being the root actual in this workflow?
-- NOTE THAT THIS NEEDS ATTENTION IF WE NEED TO SUPPORT LONGER, UNBALANCED, CONDITIONAL WORKFLOWS
@@ -2861,8 +2784,8 @@ CREATE OR REPLACE PACKAGE BODY mld AS
(SELECT wr1.mld_workflowstep_key
FROM mld_workflowrule wr1, mld_workflowstep ws1
WHERE wr1.mld_workflowstep_key = ws1.mld_workflowstep_key
AND wr1.mld_workflowstep_next_key = missingsteps.mld_workflowstep_key
)
AND wr1.mld_workflowstep_next_key =
missingsteps.mld_workflowstep_key)
AND mld_melding_key <> l_melding_start_key
AND mld_melding_start_key = l_melding_start_key;
@@ -2904,14 +2827,14 @@ CREATE OR REPLACE PACKAGE BODY mld AS
(SELECT wr1.mld_workflowstep_key
FROM mld_workflowrule wr1, mld_workflowstep ws1
WHERE wr1.mld_workflowstep_key = ws1.mld_workflowstep_key
AND wr1.mld_workflowstep_next_key = r_nextsteps.mld_workflowstep_key
)
AND wr1.mld_workflowstep_next_key =
r_nextsteps.mld_workflowstep_key)
-- the step to be continued
AND mld_melding_status IN (1, 5, 6) -- predecessor has been handled, no matter how
AND mld_melding_start_key = l_melding_start_key; -- for this thread
DBMS_OUTPUT.put_line ('total nr of READY predecessors for next step: '
|| l_nrofreadypredecessors);
DBMS_OUTPUT.put_line (
'total nr of READY predecessors for next step: ' || l_nrofreadypredecessors);
createthisnextstep := FALSE;
-- What we do next depends on the jointype. We are one predecessor ourselves. Options are:
@@ -2931,10 +2854,11 @@ CREATE OR REPLACE PACKAGE BODY mld AS
CASE r_nextsteps.mld_workflowstep_jointype
WHEN 0
THEN -- AND
createthisnextstep := l_nrofreadypredecessors >= l_nrofrequiredpredecessors OR p_success = -1;
createthisnextstep :=
l_nrofreadypredecessors >= l_nrofrequiredpredecessors OR p_success = -1;
WHEN 1
THEN -- OR
createthisnextstep := l_nrofreadypredecessors = 1 OR p_success = -1;
createthisnextstep := l_nrofreadypredecessors = 1;
-- if l_nrofreadypredecessors > 1 the creation has already taken place :-)
WHEN 2
THEN -- SYNC
@@ -2946,7 +2870,8 @@ CREATE OR REPLACE PACKAGE BODY mld AS
IF createthisnextstep
THEN
DBMS_OUTPUT.put_line ('We GO for the next step ' || r_nextsteps.mld_workflowstep_key);
DBMS_OUTPUT.put_line (
'We GO for the next step ' || r_nextsteps.mld_workflowstep_key);
IF evaluatecondition (p_melding_key, r_nextsteps.mld_workflowrule_condition)
THEN
@@ -2962,7 +2887,8 @@ CREATE OR REPLACE PACKAGE BODY mld AS
rootregistered := TRUE;
END IF;
DBMS_OUTPUT.put_line ('We actually start the next step ' || r_nextsteps.mld_workflowstep_key);
DBMS_OUTPUT.put_line (
'We actually start the next step ' || r_nextsteps.mld_workflowstep_key);
l_nrstepsevaluatedtrue := l_nrstepsevaluatedtrue + 1;
IF r_nextsteps.mld_directklaar = 2
@@ -3404,7 +3330,6 @@ CREATE OR REPLACE PACKAGE BODY mld AS
RETURN MLD_T_UITVOERTIJD
AS
v_actual_uitvoertijd_object mld_stdmelding.mld_stdmelding_t_uitvoertijd%TYPE := MLD_T_UITVOERTIJD(NULL, NULL); -- constructor initialisatie;
v_actual_accepttijd mld_stdmelding.mld_stdmelding_t_accepttijd%TYPE := MLD_T_UITVOERTIJD(NULL, NULL); -- constructor initialisatie;
v_uitvoertijdtype VARCHAR2(5);
v_mld_stdmelding_regime mld_stdmelding.mld_stdmelding_regime%TYPE;
v_beginuur alg_gebouw.alg_gebouw_beginuur%TYPE;
@@ -3412,7 +3337,7 @@ CREATE OR REPLACE PACKAGE BODY mld AS
v_werkdagen alg_gebouw.alg_gebouw_werkdagen%TYPE;
BEGIN
getSLAparams(stdm_key, prio, alg_key, ins_key,
v_mld_stdmelding_regime, v_actual_uitvoertijd_object, v_actual_accepttijd, v_beginuur, v_einduur, v_werkdagen);
v_mld_stdmelding_regime, v_actual_uitvoertijd_object, v_beginuur, v_einduur, v_werkdagen);
IF COALESCE(eenheid, v_actual_uitvoertijd_object.eenheid) = 'D'
THEN
@@ -3455,89 +3380,6 @@ CREATE OR REPLACE PACKAGE BODY mld AS
RETURN v_actual_uitvoertijd_object;
END;
-- Dit is de tijd waarop afgerekend gaat worden.
FUNCTION getactualaccept (p_melding_key IN NUMBER)
RETURN MLD_T_UITVOERTIJD
AS
v_actual_accepttijd mld_stdmelding.mld_stdmelding_t_accepttijd%TYPE := MLD_T_UITVOERTIJD(NULL, NULL); -- constructor initialisatie;
BEGIN
-- Objecten hebben geen acceptatietijd.
SELECT mld.getactualaccept(m.mld_melding_datum,
COALESCE(fac.gettrackingdate('MLDACP', m.mld_melding_key), fac.gettrackingdate('MLDAFM', m.mld_melding_key), fac.gettrackingdate('MLDREJ', m.mld_melding_key), SYSDATE),
m.mld_stdmelding_key,
m.mld_melding_spoed,
m.mld_alg_onroerendgoed_keys,
NULL, -- ins_key (Objecten hebben geen acceptatietijd).
m.mld_melding_t_accepttijd.eenheid
)
INTO v_actual_accepttijd
FROM mld_melding m
WHERE mld_melding_key = p_melding_key;
RETURN v_actual_accepttijd;
END;
FUNCTION getactualaccept (startdate IN DATE,
enddate IN DATE,
stdm_key IN NUMBER,
prio IN NUMBER,
alg_key IN NUMBER, -- Altijd gebouw of hoger, locatie niet ondersteund
ins_key IN NUMBER, -- Object met de laagste uitvoertijd
eenheid IN VARCHAR2 DEFAULT NULL
)
RETURN MLD_T_UITVOERTIJD
AS
v_actual_uitvoertijd_object mld_stdmelding.mld_stdmelding_t_uitvoertijd%TYPE := MLD_T_UITVOERTIJD(NULL, NULL); -- constructor initialisatie;
v_actual_accepttijd mld_stdmelding.mld_stdmelding_t_accepttijd%TYPE := MLD_T_UITVOERTIJD(NULL, NULL); -- constructor initialisatie;
v_uitvoertijdtype VARCHAR2(5);
v_mld_stdmelding_regime mld_stdmelding.mld_stdmelding_regime%TYPE;
v_beginuur alg_gebouw.alg_gebouw_beginuur%TYPE;
v_einduur alg_gebouw.alg_gebouw_einduur%TYPE;
v_werkdagen alg_gebouw.alg_gebouw_werkdagen%TYPE;
BEGIN
getSLAparams(stdm_key, prio, alg_key, ins_key,
v_mld_stdmelding_regime, v_actual_uitvoertijd_object, v_actual_accepttijd, v_beginuur, v_einduur, v_werkdagen);
IF COALESCE(eenheid, v_actual_accepttijd.eenheid) = 'D'
THEN
v_uitvoertijdtype := 'DAGEN';
ELSE
v_uitvoertijdtype := 'UREN';
END IF;
-- Als bij Openingstijden geen ruimte/gebouwopeningstijden zijn gevonden dan terugvallen op Kantoortijden.
IF v_mld_stdmelding_regime = 1 OR (v_mld_stdmelding_regime = 2 AND (v_beginuur = -1 OR v_einduur = -1)) -- Kantoortijden: als in 5.1.2
THEN
v_actual_accepttijd :=
FAC.datumtijdnaaruitvoertijd (startdate, enddate, v_uitvoertijdtype);
ELSIF v_mld_stdmelding_regime = 2 -- Openingstijden: gebruik ruimte/gebouwopeningstijden
THEN
v_actual_accepttijd :=
FAC.datumtijdnaaruitvoertijd (startdate,
enddate,
v_uitvoertijdtype,
v_beginuur,
v_einduur,
v_werkdagen); -- Mode=0/1 resp. alle dagen/alleen werkdagen!
ELSIF v_mld_stdmelding_regime = 3 -- 24/7: negeert weekenden of vrije dagen
THEN
v_actual_accepttijd :=
FAC.datumtijdnaaruitvoertijd (startdate,
enddate,
v_uitvoertijdtype,
NULL, -- Don't care
NULL, -- Don't care
2); -- Mode=2 => 24/7
END IF;
-- Een negatieve actuele uitvoertijd niet toestaan. Minimale waarde is 0.
IF v_actual_accepttijd.tijdsduur < 0
THEN
v_actual_accepttijd.tijdsduur := 0;
END IF;
RETURN v_actual_accepttijd;
END;
FUNCTION uitvoertijd_to_char (uitvoertijd IN MLD_T_UITVOERTIJD)
RETURN VARCHAR
AS BEGIN
@@ -3579,14 +3421,13 @@ CREATE OR REPLACE PACKAGE BODY mld AS
v_einddatum DATE;
v_mld_stdmelding_regime mld_stdmelding.mld_stdmelding_regime%TYPE;
v_uitvoertijd_object mld_stdmelding.mld_stdmelding_t_uitvoertijd%TYPE := MLD_T_UITVOERTIJD(NULL, NULL); -- contructor initialisatie;
v_accepttijd mld_stdmelding.mld_stdmelding_t_accepttijd%TYPE := MLD_T_UITVOERTIJD(NULL, NULL); -- contructor initialisatie;
v_uitvoertijdtype VARCHAR2(5);
v_beginuur alg_gebouw.alg_gebouw_beginuur%TYPE;
v_einduur alg_gebouw.alg_gebouw_einduur%TYPE;
v_werkdagen NUMBER;
BEGIN
getSLAparams(stdm_key, prio, alg_key, ins_key,
v_mld_stdmelding_regime, v_uitvoertijd_object, v_accepttijd, v_beginuur, v_einduur, v_werkdagen);
v_mld_stdmelding_regime, v_uitvoertijd_object, v_beginuur, v_einduur, v_werkdagen);
IF uitvoertijd_object.eenheid IS NOT NULL
THEN
@@ -3666,14 +3507,13 @@ CREATE OR REPLACE PACKAGE BODY mld AS
RETURN MLD_T_UITVOERTIJD
AS
v_uitvoertijd_object mld_stdmelding.mld_stdmelding_t_uitvoertijd%TYPE := MLD_T_UITVOERTIJD(NULL, NULL); -- contructor initialisatie
v_accepttijd mld_stdmelding.mld_stdmelding_t_accepttijd%TYPE := MLD_T_UITVOERTIJD(NULL, NULL); -- contructor initialisatie
v_mld_stdmelding_regime mld_stdmelding.mld_stdmelding_regime%TYPE;
v_beginuur alg_gebouw.alg_gebouw_beginuur%TYPE;
v_einduur alg_gebouw.alg_gebouw_einduur%TYPE;
v_werkdagen NUMBER;
BEGIN
getSLAparams(stdm_key, prio, alg_key, ins_key,
v_mld_stdmelding_regime, v_uitvoertijd_object, v_accepttijd, v_beginuur, v_einduur, v_werkdagen);
v_mld_stdmelding_regime, v_uitvoertijd_object, v_beginuur, v_einduur, v_werkdagen);
RETURN v_uitvoertijd_object;
END;
@@ -3705,14 +3545,12 @@ CREATE OR REPLACE PACKAGE BODY mld AS
ins_key IN NUMBER, -- Object met de laagste uitvoertijd
v_mld_stdmelding_regime OUT NUMBER,
v_uitvoertijd_object OUT MLD_T_UITVOERTIJD,
v_accepttijd OUT MLD_T_UITVOERTIJD,
v_beginuur OUT NUMBER,
v_einduur OUT NUMBER,
v_werkdagen OUT NUMBER
)
AS
v_uitvoertijd_object_s mld_stdmelding.mld_stdmelding_t_uitvoertijd%TYPE := MLD_T_UITVOERTIJD(NULL, NULL); -- contructor initialisatie
v_accepttijd_s mld_stdmelding.mld_stdmelding_t_accepttijd%TYPE := MLD_T_UITVOERTIJD(NULL, NULL); -- contructor initialisatie
v_mld_stdmelding_afhankelijk mld_stdmelding.mld_stdmelding_afhankelijk%TYPE;
l_alg_type VARCHAR2(1);
l_terreinsector_key alg_terreinsector.alg_terreinsector_key%TYPE;
@@ -3725,9 +3563,6 @@ CREATE OR REPLACE PACKAGE BODY mld AS
l_mldsrtruimte_uitvtijd_object mld_stdmsrtruimte.mld_stdmsrtruimte_t_uitvtijd%TYPE := MLD_T_UITVOERTIJD(NULL, NULL); -- contructor initialisatie
l_mldsrtgebouw_uitvtijd_object mld_stdmsrtgebouw.mld_stdmsrtgebouw_t_uitvtijd%TYPE := MLD_T_UITVOERTIJD(NULL, NULL); -- contructor initialisatie
l_mldsrtterrein_uitvtijd_object mld_stdmsrtterrein.mld_stdmsrtterrein_t_uitvtijd%TYPE := MLD_T_UITVOERTIJD(NULL, NULL); -- contructor initialisatie
l_mldsrtterrein_acctijd mld_stdmsrtterrein.mld_stdmsrtterrein_t_acctijd%TYPE := MLD_T_UITVOERTIJD(NULL, NULL); -- contructor initialisatie
l_mldsrtgebouw_accepttijd mld_stdmsrtgebouw.mld_stdmsrtgebouw_t_accepttijd%TYPE := MLD_T_UITVOERTIJD(NULL, NULL); -- contructor initialisatie
l_mldsrtruimte_accepttijd mld_stdmsrtruimte.mld_stdmsrtruimte_t_accepttijd%TYPE := MLD_T_UITVOERTIJD(NULL, NULL); -- contructor initialisatie
BEGIN
SELECT mld_stdmelding_regime,
CASE prio
@@ -3737,19 +3572,10 @@ CREATE OR REPLACE PACKAGE BODY mld AS
ELSE mld_stdmelding_t_uitvoertijd
END, -- gegarandeerd gevuld
mld_stdmelding_t_uitvoertijd, -- standaard uitvoertijd
CASE prio
WHEN 1 THEN mld_stdmelding_t_accept_pr1
WHEN 2 THEN mld_stdmelding_t_accept_pr2
WHEN 4 THEN mld_stdmelding_t_accept_pr4
ELSE mld_stdmelding_t_accepttijd
END, -- gegarandeerd gevuld
mld_stdmelding_t_accepttijd, -- standaard acceptatietijd
mld_stdmelding_afhankelijk
INTO v_mld_stdmelding_regime,
v_uitvoertijd_object,
v_uitvoertijd_object_s,
v_accepttijd,
v_accepttijd_s,
v_mld_stdmelding_afhankelijk
FROM mld_stdmelding msm
WHERE msm.mld_stdmelding_key = stdm_key;
@@ -3761,14 +3587,6 @@ CREATE OR REPLACE PACKAGE BODY mld AS
v_uitvoertijd_object := v_uitvoertijd_object_s;
END IF;
-- Als je geen afwijkende acceptatietijd voor de prio hebt, dan is het die van Normaal
-- Dit is een vangnet, die prio had eigenlijk niet voor kunnen komen.
IF prio <> 3 AND v_accepttijd.tijdsduur IS NULL
THEN
v_accepttijd := v_accepttijd_s;
END IF;
-- Acceptatietijd kent itt uitvoertijd geen objectafhankelijkheid.
IF v_mld_stdmelding_afhankelijk = 1 AND ins_key IS NOT NULL
THEN
-- is er een objectafhankelijke SLA? Dan geldt die ongeacht de prio
@@ -3818,16 +3636,10 @@ CREATE OR REPLACE PACKAGE BODY mld AS
2, sst.mld_stdmsrtterrein_t_uitv_pr2,
3, sst.mld_stdmsrtterrein_t_uitvtijd,
4, sst.mld_stdmsrtterrein_t_uitv_pr4),
COALESCE(sst.mld_stdmsrtterrein_regime, v_mld_stdmelding_regime) regime, -- geen srtterreinsector-afhankelijk afwijkend regime.
DECODE (prio,
1, sst.mld_stdmsrtterrein_t_acc_pr1,
2, sst.mld_stdmsrtterrein_t_acc_pr2,
3, sst.mld_stdmsrtterrein_t_acctijd,
4, sst.mld_stdmsrtterrein_t_acc_pr4)
COALESCE(sst.mld_stdmsrtterrein_regime, v_mld_stdmelding_regime) regime -- geen srtterreinsector-afhankelijk afwijkend regime.
INTO l_srtterrein_uitvoertijd_object,
l_mldsrtterrein_uitvtijd_object,
v_mld_stdmelding_regime,
l_mldsrtterrein_acctijd
v_mld_stdmelding_regime
FROM alg_terreinsector t,
alg_srtterreinsector st,
mld_stdmsrtterrein sst
@@ -3851,16 +3663,10 @@ CREATE OR REPLACE PACKAGE BODY mld AS
2, ssg.mld_stdmsrtgebouw_t_uitv_pr2,
3, ssg.mld_stdmsrtgebouw_t_uitvtijd,
4, ssg.mld_stdmsrtgebouw_t_uitv_pr4),
COALESCE(ssg.mld_stdmsrtgebouw_regime, v_mld_stdmelding_regime) regime, -- geen srtgebouw-afhankelijk afwijkend regime.
DECODE (prio,
1, ssg.mld_stdmsrtgebouw_t_accept_pr1,
2, ssg.mld_stdmsrtgebouw_t_accept_pr2,
3, ssg.mld_stdmsrtgebouw_t_accepttijd,
4, ssg.mld_stdmsrtgebouw_t_accept_pr4)
COALESCE(ssg.mld_stdmsrtgebouw_regime, v_mld_stdmelding_regime) regime -- geen srtgebouw-afhankelijk afwijkend regime.
INTO l_srtgebouw_uitvoertijd_object,
l_mldsrtgebouw_uitvtijd_object,
v_mld_stdmelding_regime,
l_mldsrtgebouw_accepttijd
v_mld_stdmelding_regime
FROM alg_gebouw g,
alg_srtgebouw sg,
mld_stdmsrtgebouw ssg
@@ -3886,16 +3692,10 @@ CREATE OR REPLACE PACKAGE BODY mld AS
2, ssr.mld_stdmsrtruimte_t_uitv_pr2,
3, ssr.mld_stdmsrtruimte_t_uitvtijd,
4, ssr.mld_stdmsrtruimte_t_uitv_pr4),
COALESCE(ssr.mld_stdmsrtruimte_regime, v_mld_stdmelding_regime), -- geen srtruimte-afhankelijk afwijkend regime.
DECODE (prio,
1, ssr.mld_stdmsrtruimte_t_accept_pr1,
2, ssr.mld_stdmsrtruimte_t_accept_pr2,
3, ssr.mld_stdmsrtruimte_t_accepttijd,
4, ssr.mld_stdmsrtruimte_t_accept_pr4)
COALESCE(ssr.mld_stdmsrtruimte_regime, v_mld_stdmelding_regime) -- geen srtruimte-afhankelijk afwijkend regime.
INTO l_srtruimte_uitvoertijd_object,
l_mldsrtruimte_uitvtijd_object,
v_mld_stdmelding_regime,
l_mldsrtruimte_accepttijd
v_mld_stdmelding_regime
FROM alg_ruimte r,
alg_srtruimte sr,
mld_stdmsrtruimte ssr
@@ -3935,26 +3735,6 @@ CREATE OR REPLACE PACKAGE BODY mld AS
ELSE
v_uitvoertijd_object.eenheid := v_uitvoertijd_object.eenheid;
END IF;
-- Acceptatietijd van de mld_stdmsrtruimte, mld_stdmsrtgebouw of mld_stdmsrtterrein nemen.
-- Als mld_stdmsrtruimte_t_accepttijd, mld_stdmsrtgebouw_t_accepttijd en mld_stdmsrtterrein_t_acctijd geen waarden hebben, dan terugvallen op standaard uitvoertijd die altijd een waarde heeft.
IF l_alg_type = 'T'
THEN
v_accepttijd.tijdsduur := COALESCE(l_mldsrtterrein_acctijd.tijdsduur, v_accepttijd.tijdsduur);
ELSE
v_accepttijd.tijdsduur := COALESCE(l_mldsrtruimte_accepttijd.tijdsduur, -- eerst ruimte
l_mldsrtgebouw_accepttijd.tijdsduur, -- dan gebouw
v_accepttijd.tijdsduur); -- dan standaard.
END IF;
IF l_mldsrtruimte_accepttijd.tijdsduur IS NOT NULL
THEN
v_accepttijd.eenheid := l_mldsrtruimte_accepttijd.eenheid;
ELSIF l_mldsrtgebouw_accepttijd.tijdsduur IS NOT NULL
THEN
v_accepttijd.eenheid := l_mldsrtgebouw_accepttijd.eenheid;
ELSE
v_accepttijd.eenheid := v_accepttijd.eenheid;
END IF;
END IF;
IF alg_key IS NULL AND v_mld_stdmelding_regime = 2
@@ -4834,7 +4614,7 @@ IS
BEGIN
UPDATE mld_melding m
SET m.mld_melding_actiecode = m.mld_melding_actiecode - BITAND (m.mld_melding_actiecode, p_actiecode)
WHERE m.mld_melding_status = 5 -- afgemeld
WHERE m.mld_melding_status = 6 -- afgemeld
AND BITAND (m.mld_melding_actiecode, p_actiecode) > 0
AND fac.gettrackingdate ('MLDAFM', m.mld_melding_key) < (SYSDATE - p_days);

View File

@@ -388,12 +388,8 @@ CREATE_TABLE(mld_melding_tag,0) /* generieke opzet voor mld_releases of mld_rel
CONSTRAINT mld_r_mld_stdmeldinggroep_key2 REFERENCES mld_stdmeldinggroep(mld_stdmeldinggroep_key),
mld_melding_tag_datum_van /* lijkt logisch, maar definieren waarom */
DATE,
mld_melding_tag_datum_acc /* de acceptatiereleasedatum */
DATE,
mld_melding_tag_datum_tot /* de releasedatum */
DATE NOT NULL,
mld_melding_tag_actief /* om te kunnen laten vervallen */
NUMBER(2) DEFAULT 1 NOT NULL,
prs_perslid_key /* aanmaker of verantwoordelijke */
NUMBER(10)
CONSTRAINT mld_r_prs_perslid_key15 REFERENCES prs_perslid(prs_perslid_key),
@@ -594,10 +590,6 @@ CREATE_TABLE(mld_stdmelding,0)
NUMBER(1)
DEFAULT 0
NOT NULL,
mld_stdmelding_objects_allowed
NUMBER(1)
DEFAULT(2)
NOT NULL,
CONSTRAINT mld_u_mld_stdmelding UNIQUE(mld_ins_discipline_key, mld_stdmelding_omschrijving, mld_stdmelding_verwijder)
);
@@ -611,11 +603,6 @@ ALTER TABLE mld_stdmelding MODIFY mld_stdmelding_t_uitvoertijd NOT_NULL(mld_stdm
ALTER TABLE mld_stdmelding MODIFY mld_stdmelding_t_uitvtijd_pr1 DEFAULT MLD_T_UITVOERTIJD(NULL, NULL);
ALTER TABLE mld_stdmelding MODIFY mld_stdmelding_t_uitvtijd_pr2 DEFAULT MLD_T_UITVOERTIJD(NULL, NULL);
ALTER TABLE mld_stdmelding MODIFY mld_stdmelding_t_uitvtijd_pr4 DEFAULT MLD_T_UITVOERTIJD(NULL, NULL);
ALTER TABLE fac_email_setting ADD
(
mld_stdmelding_key
NUMBER(10) REFERENCES mld_stdmelding(mld_stdmelding_key) ON DELETE CASCADE
);
ALTER TABLE ins_srtdeel ADD
(
mld_stdmelding_key
@@ -864,11 +851,11 @@ CREATE_TABLE(mld_discipline_discipline, 0) -- Kruistabel
(
mld_discipline_discipline_key
NUMBER (10) PRIMARY KEY NOT NULL,
mld_discipline_key1 -- Vakgroep
mld_discipline_key1
NUMBER(10)
CONSTRAINT mld_k_mld_disc_disc_key1
REFERENCES ins_tab_discipline(ins_discipline_key) NOT NULL,
mld_discipline_key2 -- Behandelteam
mld_discipline_key2
NUMBER(10)
CONSTRAINT mld_r_mld_disc_disc_key2
REFERENCES ins_tab_discipline(ins_discipline_key) NOT NULL
@@ -1213,10 +1200,6 @@ COMMENT ON COLUMN mld_workflowrule.mld_workflowrule_result IS '0 is failure/reje
COMMENT ON COLUMN mld_melding.mld_workflowstep_key IS 'references the workflow step that this melding corresponds to';
COMMENT ON COLUMN mld_melding.mld_melding_start_key IS 'references the initiating mld_melding if this is a workflow step';
ALTER TABLE fac_nieuws ADD
mld_melding_key
NUMBER(10) CONSTRAINT mld_r_mld_melding_key8 REFERENCES mld_melding(mld_melding_key) ON DELETE SET NULL;
CREATE_TABLE(mld_opdr,0)
(
@@ -1478,7 +1461,7 @@ CREATE_TABLE(mld_kenmerk, 0)
VARCHAR2(60)
, mld_kenmerk_verplicht
NUMBER(1)
, mld_kenmerk_groep /* voor groepsverplichting als mld_kenmerk_verplicht=2 */
, mld_kenmerk_groep
NUMBER(1)
DEFAULT 0 NOT NULL
, mld_kenmerk_toonbaar
@@ -1489,10 +1472,6 @@ CREATE_TABLE(mld_kenmerk, 0)
, mld_kenmerk_volgnummer
NUMBER(3)
NOT NULL
, mld_kenmerk_rolcode /* voor welke rol(len) is dit kenmerk */
NUMBER(4)
DEFAULT 7 /* default alles */
NOT NULL
, mld_kenmerk_uniek
NUMBER(1)
, mld_kenmerk_regexp

View File

@@ -430,7 +430,7 @@ BEGIN
NULL; -- stond hij al in de queue
ELSIF :NEW.mld_opdr_teverzenden = 2 AND :NEW.mld_opdr_verzonden IS NULL
THEN -- Zou hij vroeger in de fac_v_orderqueue herverschijnen
-- ORDSND tracking/notificatie
-- ORDUPD tracking/notificatie
--mld.notifyopdrbedrijven (:new.mld_opdr_key, ptrackingkey => NULL); geeft trigger mutating
FOR bedrijfrec
IN (SELECT b.prs_bedrijf_key,
@@ -454,7 +454,7 @@ BEGIN
AND m.mld_alg_locatie_key = l2.alg_locatie_key(+)
AND d.prs_afdeling_key = p.prs_afdeling_key
AND p.prs_perslid_key = m.prs_perslid_key
AND fac_srtnotificatie_code = 'ORDSND') -- hardcoded ORDSND, het gaat uiteindelijk vooral om de XMLnode 'opdracht' in putorders
AND fac_srtnotificatie_code = 'ORDUPD') -- hardcoded ORDUPD, het gaat uiteindelijk vooral om de XMLnode 'opdracht' in putorders
LOOP
fac.notifybedrijf (pbedrijf_key => bedrijfrec.prs_bedrijf_key,
pbedrijfadres_type => 'O',
@@ -464,7 +464,7 @@ BEGIN
preference => bedrijfrec.reference,
ptypeopdr_key => :NEW.mld_typeopdr_key,
plocatie_key => bedrijfrec.alg_locatie_key,
pdiscipline_key => :NEW.mld_opdr_discipline_key,
pdisc_key => :NEW.mld_opdr_discipline_key,
pbedrijf_key2 => bedrijfrec.persoon_bedrijf_key,
psender => bedrijfrec.alg_locatie_email);
END LOOP;
@@ -487,7 +487,7 @@ FOR EACH ROW
BEGIN
UPDATE_PRIMARY_KEY(mld_vrije_dagen_key, mld_s_mld_vrije_dagen_key);
/* Haal het tijdgedeelte van de ingevoerde datum af. */
:new.mld_vrije_dagen_datum := TRUNC(:new.mld_vrije_dagen_datum);
:new.mld_vrije_dagen_datum := TRUNC_DATE(:new.mld_vrije_dagen_datum);
END;
/
@@ -1064,14 +1064,6 @@ BEGIN
END;
/
CREATE_TRIGGER(mld_t_mld_discipline_discipline_B_I)
BEFORE INSERT ON mld_discipline_discipline
FOR EACH ROW
BEGIN
UPDATE_PRIMARY_KEY(mld_discipline_discipline_key, mld_s_mld_disc_disc_key);
END;
/
REGISTERRUN('$Id$')
#endif // MLD

View File

@@ -4,7 +4,7 @@
*/
/* uitvoertijd, duur en eenheid in uren (U) of dagen (D) */
CREATE TYPE MLD_T_UITVOERTIJD
CREATE_TYPE (MLD_T_UITVOERTIJD)
AS
OBJECT (tijdsduur NUMBER(12,5), eenheid VARCHAR2(1));
/

View File

@@ -850,8 +850,6 @@ CREATE_VIEW(mld_v_udr_melding, 1)
accept_sla_optijd,
uitvoering_sla_optijd,
afspraak_sla_optijd,
acceptatietijd_werkdgn,
acceptatietijd_werkuren,
selfservice,
melding_tag,
melding_tag_datum
@@ -1012,10 +1010,6 @@ AS
lcl.l ('lcl_no')
END
afspraak_sla_optijd,
DECODE (x.t_acceptatietijd.eenheid, 'D', x.t_acceptatietijd.tijdsduur, NULL)
acceptatietijd_werkdgn,
DECODE (x.t_acceptatietijd.eenheid, 'U', x.t_acceptatietijd.tijdsduur, NULL)
acceptatietijd_werkuren,
DECODE(invoerder, melder, lcl.l ('lcl_yes'), lcl.l ('lcl_no')) selfservice,
mld_melding_tag_naam,
mld_melding_tag_datum_tot
@@ -1168,7 +1162,6 @@ AS
mld.getmeldingstatusdate (m.mld_melding_key, 1))
accepted,
mld.getactualuitvoer (m.mld_melding_key) t_doorlooptijd,
mld.getactualaccept(m.mld_melding_key) t_acceptatietijd,
m.mld_melding_onderwerp onderwerp,
m.mld_melding_omschrijving omschrijving,
m.mld_melding_opmerking opmerking,

View File

@@ -9,7 +9,7 @@
CREATE_TABLE(prj_scenario, 0)
(
prj_scenario_key
NUMBER(10)
NUMBER(10) _IDENTITY(10000000,1)
CONSTRAINT prj_k_prj_scenario_key PRIMARY KEY,
prj_scenario_omschrijving
VARCHAR2(30),
@@ -42,7 +42,7 @@ CREATE_TABLE(prj_scenario, 0)
CREATE_TABLE(prj_ruimte, 0)
(
prj_ruimte_key
NUMBER(10)
NUMBER(10) _IDENTITY(10000000,1)
CONSTRAINT prj_k_prj_ruimte_key PRIMARY KEY,
prj_scenario_key
NUMBER(10)
@@ -246,7 +246,7 @@ CREATE_TABLE(prj_deel, 0)
CREATE_TABLE(prj_selectie, 0)
(
prj_selectie_key
NUMBER(10)
NUMBER(10) _IDENTITY(10000000,1)
CONSTRAINT prj_k_prj_selectie_key PRIMARY KEY,
prj_scenario_key
NUMBER(10)
@@ -270,7 +270,7 @@ CREATE_TABLE(prj_selectie, 0)
CREATE_TABLE(prj_scenario_note, 0)
(
prj_scenario_note_key
NUMBER(10)
NUMBER(10) _IDENTITY(10000000,1)
CONSTRAINT prj_k_prj_scenario_reamrk_key PRIMARY KEY,
prj_scenario_key
NUMBER(10)

View File

@@ -10,7 +10,7 @@ CREATE INDEX prs_i_prs_afdeling2 ON prs_afdeling(prs_kostenplaats_key);
CREATE INDEX prs_i_prs_afdeling3 ON prs_afdeling(prs_afdeling_externid);
CREATE INDEX prs_i_prs_bedrijfadres1 ON prs_bedrijfadres(prs_bedrijf_key);
CREATE UNIQUE INDEX prs_i_prs_bedrijfadres2 ON prs_bedrijfadres(prs_bedrijf_key, prs_bedrijfadres_type, mld_typeopdr_key, ins_discipline_key, alg_locatie_key, alg_district_key, prs_bedrijf_key2, prs_bedrijfadres_startdatum);
CREATE UNIQUE INDEX prs_i_prs_bedrijfadres2 ON prs_bedrijfadres(prs_bedrijf_key, prs_bedrijfadres_type, mld_typeopdr_key, alg_locatie_key, alg_district_key, prs_bedrijf_key2, prs_bedrijfadres_startdatum);
CREATE INDEX prs_i_prs_perslid1 ON prs_perslid(prs_srtperslid_key);
CREATE INDEX prs_i_prs_perslid2 ON prs_perslid(prs_afdeling_key);
@@ -20,7 +20,6 @@ CREATE INDEX prs_i_prs_perslid6 ON prs_perslid(prs_perslid_nr);
CREATE UNIQUE INDEX prs_i_prs_perslid7 ON prs_perslid(prs_perslid_apikey);
CREATE INDEX prs_i_prs_perslid8 ON prs_perslid(prs_perslid_externid);
CREATE UNIQUE INDEX prs_i_prs_bedrijfbedrijf1 ON prs_bedrijf_bedrijf(prs_bedrijf_key1, prs_bedrijf_key2);
CREATE UNIQUE INDEX prs_i_prs_bedrijfadres_srtnoti1 ON prs_bedrijfadres_srtnoti(prs_bedrijfadres_key, fac_srtnotificatie_key);
CREATE INDEX prs_i_prscontactpersoon1 ON prs_contactpersoon(prs_bedrijf_key);
CREATE INDEX prs_i_prscontactpersoon2 ON prs_contactpersoon(prs_perslid_key);

View File

@@ -95,6 +95,9 @@ AS
PROCEDURE setpassword(pperslidkey IN NUMBER, pwachtwoord IN VARCHAR2);
FUNCTION testpassword(pperslidkey IN NUMBER, pwachtwoord IN VARCHAR2)
RETURN NUMBER;
PROCEDURE upsertkenmerk (p_kenmerk_key IN NUMBER, p_prs_key IN NUMBER, p_waarde IN VARCHAR2);
PROCEDURE movetoruimte (p_prs_key IN NUMBER, p_ruimte_key IN NUMBER, p_alg_type IN VARCHAR2, p_virtual IN NUMBER DEFAULT 0);
@@ -551,8 +554,6 @@ AS
RETURN lnextfiatteur;
END;
// Let op: Als pwachtwoord IS NULL wordt het wachtwoord gewist
// Als pwachtwoord IS NOT NULL wordt een random(!!) wachtwoord ingesteld zodat de gebruik zelf 'wachtwoord vergeten' kan gaan doen
PROCEDURE setpassword(pperslidkey IN NUMBER, pwachtwoord IN VARCHAR2)
IS
BEGIN
@@ -569,12 +570,37 @@ AS
SET prs_perslid_salt = DBMS_RANDOM.string ('a', 32)
WHERE prs_perslid_key = pperslidkey;
UPDATE prs_perslid
SET prs_perslid_wachtwoord_hash = DBMS_RANDOM.string ('a', 32), -- zodat wachtwoord vergeten mogelijk wordt
prs_perslid_wachtwoord_exp = SYSDATE -- direct verlopen
SET prs_perslid_wachtwoord_hash = fac.makehash(prs_perslid_salt || pwachtwoord),
prs_perslid_wachtwoord_exp = CASE WHEN fac.getsetting ('prs_password_expiration') > 0
THEN SYSDATE + fac.getsetting ('prs_password_expiration')
ELSE NULL
END
WHERE prs_perslid_key = pperslidkey;
END IF;
END;
FUNCTION testpassword(pperslidkey IN NUMBER, pwachtwoord IN VARCHAR2)
RETURN NUMBER
IS
perslid_key prs_perslid.prs_perslid_key%TYPE;
BEGIN
IF pwachtwoord IS NULL
THEN
RETURN 0;
END IF;
BEGIN
SELECT prs_perslid_key
INTO perslid_key
FROM prs_perslid
WHERE fac.testhash(prs_perslid_wachtwoord_hash, prs_perslid_salt || pwachtwoord) = 1
AND prs_perslid_key = pperslidkey;
EXCEPTION
WHEN NO_DATA_FOUND
THEN RETURN 0;
END;
RETURN 1;
END;
-- Er wordt nu niet getrackt (wat eigenlijk niet zo goed is)
PROCEDURE upsertkenmerk (p_kenmerk_key IN NUMBER,
p_prs_key IN NUMBER,

View File

@@ -60,7 +60,7 @@ CREATE_TABLE(prs_bedrijf,0)
prs_bedrijf_contact_fax
VARCHAR2(20),
prs_bedrijf_opmerking
VARCHAR2(4000),
VARCHAR2(1000),
prs_bedrijf_opmerking2
VARCHAR2(1000),
prs_bedrijf_uurloon
@@ -113,9 +113,7 @@ CREATE_TABLE(prs_bedrijf,0)
CONSTRAINT prs_c_prs_bedrijf_contract CHECK(prs_bedrijf_contract IS NULL
OR prs_bedrijf_contract = 1 ),
prs_bedrijf_intern /* NULL=extern, 1=onderdeel van de eigen organisatie, 2=pseudo(systeem)bedrijf voor bedrijfadressen */
NUMBER(1)
CONSTRAINT prs_c_prs_bedrijf_intern CHECK(prs_bedrijf_intern IS NULL
OR prs_bedrijf_intern IN (1,2)),
NUMBER(1),
prs_bedrijf_huurder /* is huurder */
NUMBER(1)
CONSTRAINT prs_c_prs_bedrijf_huurder CHECK(prs_bedrijf_huurder IS NULL
@@ -234,10 +232,6 @@ CREATE_TABLE(prs_bedrijfadres, 0) (
prs_bedrijfadres_key
NUMBER(10)
CONSTRAINT prs_k_prs_bedrijfadres_key PRIMARY KEY,
prs_bedrijfadres_template
VARCHAR(128)
DEFAULT 'generic'
NOT NULL,
prs_bedrijf_key -- opdrachtnemer
NUMBER(10)
CONSTRAINT prs_r_prs_bedrijf_key6 REFERENCES prs_bedrijf(prs_bedrijf_key) ON DELETE CASCADE,
@@ -764,10 +758,6 @@ CREATE_TABLE(prs_perslid,0)
NUMBER(1)
DEFAULT 0
NOT NULL,
prs_perslid_errorhandling -- 0=200 on API1 error, 1=400 on error
NUMBER (10)
DEFAULT 1
NOT NULL,
prs_perslid_key_verantw -- fallback als elke structuur faalt (irt o.a. meldingen-instemming)
NUMBER(10)
CONSTRAINT prs_r_prs_perslid_key23 REFERENCES prs_perslid(prs_perslid_key),
@@ -1148,9 +1138,6 @@ CREATE_TABLE(prs_kenmerk,0)
,prs_kenmerk_volgnr
NUMBER(3)
NOT NULL
,prs_kenmerk_rolcode
NUMBER(4)
DEFAULT 7 NOT NULL
,prs_kenmerk_omschrijving
VARCHAR2(50)
,prs_kenmerk_upper

View File

@@ -500,45 +500,6 @@ BEGIN
END;
/
CREATE_TRIGGER(prs_t_prs_bedrijfadres_A_I)
AFTER INSERT ON prs_bedrijfadres
FOR EACH ROW
BEGIN
CASE :new.prs_bedrijfadres_type
WHEN 'C' THEN
INSERT INTO prs_bedrijfadres_srtnoti
(prs_bedrijfadres_key, fac_srtnotificatie_key)
SELECT :new.prs_bedrijfadres_key,
fac_srtnotificatie_key
FROM fac_srtnotificatie
WHERE fac_srtnotificatie_code = 'CNTNEW';
WHEN 'O' THEN
INSERT INTO prs_bedrijfadres_srtnoti
(prs_bedrijfadres_key, fac_srtnotificatie_key)
SELECT :new.prs_bedrijfadres_key,
fac_srtnotificatie_key
FROM fac_srtnotificatie
WHERE fac_srtnotificatie_code IN ('ORDNEW', 'ORDSND');
WHEN 'B' THEN
INSERT INTO prs_bedrijfadres_srtnoti
(prs_bedrijfadres_key, fac_srtnotificatie_key)
SELECT :new.prs_bedrijfadres_key,
fac_srtnotificatie_key
FROM fac_srtnotificatie
WHERE fac_srtnotificatie_code = 'BES2NE';
WHEN 'R' THEN
INSERT INTO prs_bedrijfadres_srtnoti
(prs_bedrijfadres_key, fac_srtnotificatie_key)
SELECT :new.prs_bedrijfadres_key,
fac_srtnotificatie_key
FROM fac_srtnotificatie
WHERE fac_srtnotificatie_code = 'RESSND';
ELSE -- V=Voorraadinfo, N=Notificatie, E=ERP (Mareon)
NULL;
END CASE;
END;
/
CREATE_TRIGGER(prs_t_prs_bedrijfadres_srtnoti_B_I)
BEFORE INSERT ON prs_bedrijfadres_srtnoti
FOR EACH ROW

View File

@@ -209,7 +209,6 @@ AS
new_ruimte_van DATE;
new_ruimte_tot DATE;
bez_parkingdiscipline_key NUMBER;
min_res_rsv_artikel_key res_rsv_artikel.res_rsv_artikel_key%TYPE;
BEGIN
SELECT *
INTO rsv_from
@@ -362,8 +361,8 @@ AS
prsv_ruimte_key_to,
ra.res_rsv_deel_prijs,
2, -- ingevoerd
TRUNC (rsv_to.res_rsv_ruimte_van) + (ra.res_rsv_deel_van - TRUNC (rsv_from.res_rsv_ruimte_van)), -- reservering van rsv_deel kan afwijken van rsv_ruimte
TRUNC (rsv_to.res_rsv_ruimte_tot) + (ra.res_rsv_deel_tot - TRUNC (rsv_from.res_rsv_ruimte_tot))
TRUNC (rsv_to.res_rsv_ruimte_van) + (ra.res_rsv_deel_van - TRUNC (rsv_from.res_rsv_ruimte_van)),
TRUNC (rsv_to.res_rsv_ruimte_van) + (ra.res_rsv_deel_tot - TRUNC (rsv_from.res_rsv_ruimte_tot))
FROM res_rsv_deel ra, res_deel rd
WHERE ra.res_rsv_ruimte_key = prsv_ruimte_key_from
AND ra.res_deel_key = rd.res_deel_key
@@ -435,22 +434,21 @@ AS
-- Artikel is al toegevoegd indien catering is aangevinkt.
-- De kenmerken van de oude en nieuwe reserveringen zijn exact hetzelfde met dezelfde kenmerk keys enz.
-- De kenmerken van de oude en nieuwe reservering in dezelfde volgorde zetten en dan de waarden overnemen.
-- Een artikel kan vaker voorkomen met een andere waarde van zijn kenmerk.
-- In dat geval kunnen de kenmerken niet rechtstreeks gematched worden. Een "oud" res_rsv_artikel_key kan dan gematched worden aan meerdere "nieuwe" res_rsv_artikel_key's.
-- We doorlopen dan elk "oud" res_rsv_artikel_key met zijn kenmerk afzonderlijk en kiezen dan <20><>n van de vrije "nieuwe" res_rsv_artikel_key's (MIN).
-- Aan het eind zijn dan alle "oud" res_rsv_artikel_key's gebonden aan een nieuw res_rsv_artikel_key. Met een query kan het niet in <20><>n keer opgelost worden.
FOR kenmerkartikelrec
IN
(SELECT oldkenmerk.res_rsv_artikel_key,
INSERT INTO res_kenmerkartikel (res_rsv_artikel_key,
res_kenmerk_key,
res_kenmerkartikel_waarde)
SELECT newkenmerk.res_rsv_artikel_key,
newkenmerk.res_kenmerk_key,
oldkenmerk.res_kenmerkartikel_waarde,
oldkenmerk.res_artikel_key
oldkenmerk.res_kenmerkartikel_waarde
FROM (SELECT ka.res_rsv_artikel_key,
ka.res_kenmerk_key,
ka.res_kenmerkartikel_waarde,
ra.res_artikel_key,
k.res_srtkenmerk_key
ROW_NUMBER()
OVER(ORDER BY
rra.res_rsv_artikel_key,
k.res_kenmerk_key)
AS RN
FROM res_kenmerkartikel ka,
res_kenmerk k,
res_srtkenmerk sk,
@@ -466,7 +464,7 @@ AS
AND rra.res_rsv_ruimte_key = rr.res_rsv_ruimte_key
--AND k.res_activiteit_key IS NULL -- Niet nodig: Als res_activiteit_key gevuld is dan is res_kenmerk_niveau 'A'.
AND k.res_kenmerk_niveau IN ('C', 'D')
AND BITAND(k.res_kenmerk_rolcode, 7) <> 4 -- Backofficekenmerken niet (100)
AND k.res_kenmerk_volgnummer < 900
AND k.res_kenmerk_verwijder IS NULL
AND ka.res_kenmerkartikel_verwijder IS NULL
AND sk.res_srtkenmerk_kenmerktype NOT IN ('F', 'M', 'E')
@@ -474,7 +472,11 @@ AS
(SELECT rra.res_rsv_artikel_key,
k.res_kenmerk_key,
ra.res_artikel_key,
k.res_srtkenmerk_key
ROW_NUMBER()
OVER(ORDER BY
rra.res_rsv_artikel_key,
k.res_kenmerk_key)
AS rn
FROM res_rsv_ruimte rr,
res_rsv_artikel rra,
res_artikel ra,
@@ -484,37 +486,11 @@ AS
OR k.res_discipline_key = ra.res_discipline_key)
AND ra.res_artikel_key = rra.res_artikel_key
AND rr.res_rsv_ruimte_key = prsv_ruimte_key_to) newkenmerk
WHERE oldkenmerk.res_kenmerk_key = newkenmerk.res_kenmerk_key
AND oldkenmerk.res_srtkenmerk_key = newkenmerk.res_srtkenmerk_key
WHERE oldkenmerk.rn = newkenmerk.rn
AND oldkenmerk.res_kenmerk_key = newkenmerk.res_kenmerk_key
AND oldkenmerk.res_artikel_key = newkenmerk.res_artikel_key
GROUP BY oldkenmerk.res_rsv_artikel_key,
newkenmerk.res_kenmerk_key,
oldkenmerk.res_kenmerkartikel_waarde,
oldkenmerk.res_artikel_key
ORDER BY oldkenmerk.res_rsv_artikel_key,
newkenmerk.res_kenmerk_key)
LOOP
SELECT MIN(rra.res_rsv_artikel_key)
INTO min_res_rsv_artikel_key
FROM res_rsv_artikel rra,
res_rsv_ruimte rr
WHERE rra.res_rsv_ruimte_key = rr.res_rsv_ruimte_key
AND rr.res_rsv_ruimte_key = prsv_ruimte_key_to
AND res_artikel_key = kenmerkartikelrec.res_artikel_key
-- De res_rsv_artikel_key's die bezet zijn uitsluiten. Welke res_kenmerkartikel_waarde is ingevuld maakt niets uit.
AND NOT EXISTS
(SELECT res_kenmerkartikel_key
FROM res_kenmerkartikel
WHERE res_rsv_artikel_key = rra.res_rsv_artikel_key
AND res_kenmerk_key = kenmerkartikelrec.res_kenmerk_key);
INSERT INTO res_kenmerkartikel (res_rsv_artikel_key,
res_kenmerk_key,
res_kenmerkartikel_waarde)
VALUES (min_res_rsv_artikel_key,
kenmerkartikelrec.res_kenmerk_key,
kenmerkartikelrec.res_kenmerkartikel_waarde);
END LOOP;
ORDER BY newkenmerk.res_rsv_artikel_key,
newkenmerk.res_kenmerk_key;
END IF;
END IF;
-- 512 Bezoekers
@@ -570,7 +546,7 @@ AS
) waarde_from
WHERE k.res_activiteit_key = r.res_activiteit_key
AND k.res_kenmerk_niveau = 'A'
AND BITAND(k.res_kenmerk_rolcode, 7) <> 4 -- Backofficekenmerken niet
AND k.res_kenmerk_volgnummer < 900
AND k.res_kenmerk_verwijder IS NULL
AND s.res_srtkenmerk_verwijder IS NULL
AND k.res_srtkenmerk_key = s.res_srtkenmerk_key
@@ -1220,8 +1196,6 @@ AS
AND rr.res_rsv_ruimte_key = ra.res_rsv_ruimte_key
AND ra.res_artikel_key = a.res_artikel_key
AND sao.res_srtartikel_og_verwijder IS NULL
AND ra.res_rsv_artikel_levering BETWEEN COALESCE(sao.res_srtartikel_og_ingangsdatum, a.res_artikel_ingangsdatum, TRUNC(ra.res_rsv_artikel_levering))
AND COALESCE(sao.res_srtartikel_og_vervaldatum, a.res_artikel_vervaldatum, TRUNC(ra.res_rsv_artikel_levering)+1)
AND rg.alg_ruimte_key IS NOT NULL
AND rar.res_alg_ruimte_verwijder IS NULL -- Het kan ook een koppelruimte zijn die uit meerdere ruimten bestaat
AND ra.res_rsv_artikel_key = pres_rsv_artikel_key
@@ -2583,20 +2557,14 @@ AS
AS
BEGIN
FOR bedrijfrec
-- JGL: Vooralsnog geen ondersteuning van technische adressen per discipline
-- Dat wordt te ingewikkeld omdat onderstaande loop dan per discipline fac.notifybedrijf
-- gaat aanroepen waardoor je altijd een notificatie per catalogus krijgt wat je misschien helemaal niet wilt
IN (SELECT b.prs_bedrijf_key,
l.alg_locatie_key,
CASE WHEN b.prs_bedrijf_key = resbedrijf.prs_bedrijf_key THEN 'R' ELSE 'G' END bedrijfadres_type,
rrr.res_reservering_key || '/' || rrr.res_rsv_ruimte_volgnr reference,
d.prs_bedrijf_key persoon_bedrijf_key -- van de melder, niet de uitvoerende
rrr.res_reservering_key || '/' || rrr.res_rsv_ruimte_volgnr reference
FROM prs_bedrijf b,
res_rsv_ruimte rrr,
alg_locatie l,
alg_v_ruimte_gegevens_all ruimte_geg,
prs_perslid p,
prs_v_afdeling d,
( SELECT res_ruimte_opstel_key,
rr.res_ruimte_key,
MIN (alg_ruimte_key) alg_ruimte_key
@@ -2611,13 +2579,11 @@ AS
AND rra.res_artikel_key = ra.res_artikel_key
GROUP BY res_rsv_ruimte_key) resbedrijf
WHERE rrr.res_rsv_ruimte_key = prsvkey
AND resbedrijf.res_rsv_ruimte_key(+) = rrr.res_rsv_ruimte_key -- outer join voor 'G'enerieke notificaties zonder catering
AND resbedrijf.res_rsv_ruimte_key = prsvkey
AND rrr.res_ruimte_opstel_key = opstelalg.res_ruimte_opstel_key(+)
AND ruimte_geg.alg_ruimte_key = COALESCE (rrr.alg_ruimte_key, opstelalg.alg_ruimte_key)
AND ruimte_geg.alg_locatie_key = l.alg_locatie_key
AND d.prs_afdeling_key = p.prs_afdeling_key
AND p.prs_perslid_key = rrr.res_rsv_ruimte_host_key
AND ( b.prs_bedrijf_key = resbedrijf.prs_bedrijf_key -- type 'R', alleen als er catering bij zit
AND ( b.prs_bedrijf_key = resbedrijf.prs_bedrijf_key -- type 'R'
OR EXISTS
(SELECT 1
FROM prs_bedrijfadres ba
@@ -2631,7 +2597,6 @@ AS
ptrackingkey => ptrackingkey,
preference => bedrijfrec.reference,
plocatie_key => bedrijfrec.alg_locatie_key,
pbedrijf_key2 => bedrijfrec.persoon_bedrijf_key,
pnotidelay => pnotidelay);
END LOOP;
END;

View File

@@ -141,8 +141,6 @@ CREATE_TABLE(res_ruimte,0)
DEFAULT 0
NOT NULL
CONSTRAINT res_c_res_ruimte_cv CHECK(res_ruimte_cv IN (0,1)),
res_ruimte_limiet /* Optional overrule of Setting res_reservering_limiet (days) */
NUMBER(3),
CONSTRAINT res_u_res_ruimte_upper UNIQUE(res_ruimte_upper, res_ruimte_verwijder)
);
@@ -869,9 +867,6 @@ CREATE_TABLE(res_kenmerk, 0)
, res_kenmerk_volgnummer
NUMBER(3)
NOT NULL
, res_kenmerk_rolcode
NUMBER(4)
DEFAULT 7 NOT NULL
, res_kenmerk_default
VARCHAR2(4000)
, res_kenmerk_show_expr
@@ -963,10 +958,6 @@ CREATE_TABLE(res_srtartikel_onrgoed, 0)
, res_srtartikel_og_verwijder
DATE
DEFAULT NULLDATUM
, res_srtartikel_og_ingangsdatum
DATE
, res_srtartikel_og_vervaldatum
DATE
, CONSTRAINT res_c_alg_onrgoed_key UNIQUE(alg_onrgoed_key, alg_onrgoed_niveau, res_discipline_key, res_srtartikel_og_verwijder)
);

View File

@@ -31,21 +31,6 @@ AUDIT_VALUE(res_ruimte, res_ruimte_intprijs_dag)
AUDIT_VALUE(res_ruimte, res_ruimte_vervaldatum)
AUDIT_END()
AUDIT_BEGIN(res_artikel)
AUDIT_VALUE(res_artikel, res_discipline_key)
AUDIT_VALUE(res_artikel, res_artikel_prijs)
AUDIT_VALUE(res_artikel, res_artikel_prijs_vast)
AUDIT_VALUE(res_artikel, res_artikel_inkoopprijs)
AUDIT_VALUE(res_artikel, res_artikel_kostenpersoneel)
AUDIT_VALUE(res_artikel, res_artikel_kostenalgemeen)
AUDIT_VALUE(res_artikel, res_artikel_btw)
AUDIT_END()
AUDIT_BEGIN(res_deel)
AUDIT_VALUE(res_deel, res_discipline_key)
AUDIT_VALUE(res_deel, res_deel_prijs)
AUDIT_VALUE(res_deel, res_deel_prijs_vast)
AUDIT_END()
CREATE_TRIGGER(res_t_res_disc_params_b_iu)
BEFORE INSERT OR UPDATE ON res_disc_params

View File

@@ -369,12 +369,8 @@ AND ins_discipline_min_level IN (1,2,3,4);
CREATE_VIEW(res_v_srtartikel_onrgoed, 0)
( alg_ruimte_key,
res_discipline_key,
alg_onrgoed_niveau,
alg_onrgoed_ingangsdatum,
alg_onrgoed_vervaldatum
) AS
SELECT ra.alg_ruimte_key, og.res_discipline_key, og.alg_onrgoed_niveau
, og.res_srtartikel_og_ingangsdatum, og.res_srtartikel_og_vervaldatum
alg_onrgoed_niveau) AS
SELECT ra.alg_ruimte_key, res_discipline_key, alg_onrgoed_niveau
FROM res_srtartikel_onrgoed og,
alg_ruimte ra,
alg_verdieping rv,
@@ -383,110 +379,23 @@ CREATE_VIEW(res_v_srtartikel_onrgoed, 0)
AND ra.alg_verdieping_key = rv.alg_verdieping_key
AND rv.alg_gebouw_key = rg.alg_gebouw_key
AND og.alg_onrgoed_niveau = 'L'
AND og.res_srtartikel_og_verwijder IS NULL
AND ra.alg_ruimte_key IS NOT NULL
AND res_srtartikel_og_verwijder IS NULL
AND alg_ruimte_key IS NOT NULL
UNION
SELECT ra.alg_ruimte_key, og.res_discipline_key, og.alg_onrgoed_niveau
, og.res_srtartikel_og_ingangsdatum, og.res_srtartikel_og_vervaldatum
SELECT ra.alg_ruimte_key, res_discipline_key, alg_onrgoed_niveau
FROM res_srtartikel_onrgoed og, alg_ruimte ra, alg_verdieping rv
WHERE og.alg_onrgoed_key = rv.alg_gebouw_key
AND ra.alg_verdieping_key = rv.alg_verdieping_key
AND og.alg_onrgoed_niveau = 'G'
AND og.res_srtartikel_og_verwijder IS NULL
AND ra.alg_ruimte_key IS NOT NULL
AND res_srtartikel_og_verwijder IS NULL
AND alg_ruimte_key IS NOT NULL
UNION
SELECT ra.alg_ruimte_key, og.res_discipline_key, og.alg_onrgoed_niveau
, og.res_srtartikel_og_ingangsdatum, og.res_srtartikel_og_vervaldatum
SELECT ra.alg_ruimte_key, res_discipline_key, alg_onrgoed_niveau
FROM res_srtartikel_onrgoed og, alg_ruimte ra
WHERE og.alg_onrgoed_key = ra.alg_ruimte_key
AND og.alg_onrgoed_niveau = 'R'
AND og.res_srtartikel_og_verwijder IS NULL
AND ra.alg_ruimte_key IS NOT NULL;
CREATE_VIEW(res_v_srtartikel_onrgoed_scope, 0)
AS
WITH onrgoed AS
(SELECT alg_onroerendgoed_keys
, alg_ruimte_key
, alg_verdieping_key
, alg_gebouw_key
, alg_locatie_key
FROM alg_v_allonroerendgoed
WHERE alg_type = 'R'
)
, scope AS
(SELECT ar.alg_onroerendgoed_keys
, so.res_discipline_key
, 'R' alg_onrgoed_niveau
, ar.alg_ruimte_key AS alg_onrgoed_key
, so.res_srtartikel_og_ingangsdatum
, so.res_srtartikel_og_vervaldatum
, so.res_srtartikel_og_verwijder
FROM onrgoed ar
, res_srtartikel_onrgoed so
WHERE so.alg_onrgoed_niveau = 'R'
AND so.alg_onrgoed_key = ar.alg_ruimte_key
UNION ALL
SELECT ar.alg_onroerendgoed_keys
, so.res_discipline_key
, 'V'
, ar.alg_verdieping_key
, so.res_srtartikel_og_ingangsdatum
, so.res_srtartikel_og_vervaldatum
, so.res_srtartikel_og_verwijder
FROM onrgoed ar
, res_srtartikel_onrgoed so
WHERE so.alg_onrgoed_niveau = 'V'
AND so.alg_onrgoed_key = ar.alg_verdieping_key
UNION ALL
SELECT ar.alg_onroerendgoed_keys
, so.res_discipline_key
, 'G'
, ar.alg_gebouw_key
, so.res_srtartikel_og_ingangsdatum
, so.res_srtartikel_og_vervaldatum
, so.res_srtartikel_og_verwijder
FROM onrgoed ar
, res_srtartikel_onrgoed so
WHERE so.alg_onrgoed_niveau = 'G'
AND so.alg_onrgoed_key = ar.alg_gebouw_key
UNION ALL
SELECT ar.alg_onroerendgoed_keys
, so.res_discipline_key
, 'L'
, ar.alg_locatie_key
, so.res_srtartikel_og_ingangsdatum
, so.res_srtartikel_og_vervaldatum
, so.res_srtartikel_og_verwijder
FROM onrgoed ar
, res_srtartikel_onrgoed so
WHERE so.alg_onrgoed_niveau = 'L'
AND so.alg_onrgoed_key = ar.alg_locatie_key
)
, ranked AS
(SELECT scope.*
, ROW_NUMBER() OVER
(PARTITION BY scope.alg_onroerendgoed_keys
, scope.res_discipline_key
ORDER BY CASE scope.alg_onrgoed_niveau
WHEN 'R' THEN 1
WHEN 'V' THEN 2
WHEN 'G' THEN 3
WHEN 'L' THEN 4
END
) AS rank_nr
FROM scope
)
SELECT alg_onroerendgoed_keys
, res_discipline_key
, alg_onrgoed_niveau
, alg_onrgoed_key
, res_srtartikel_og_ingangsdatum
, res_srtartikel_og_vervaldatum
, res_srtartikel_og_verwijder
FROM ranked
WHERE rank_nr = 1;
AND res_srtartikel_og_verwijder IS NULL
AND alg_ruimte_key IS NOT NULL;
CREATE_VIEW(fac_v_my_res_rooms, 0) AS
SELECT res_ruimte_key,
@@ -763,8 +672,6 @@ CREATE_VIEW(res_v_udr_reservering, 1)
bezoekers,
van,
tot,
localized_van,
localized_tot,
duur,
status,
bostatus,
@@ -838,15 +745,79 @@ AS
a.prs_afdeling_key,
a.prs_afdeling_naam,
a.prs_afdeling_omschrijving,
rg.alg_regio_omschrijving,
d.alg_district_omschrijving,
l.alg_locatie_key,
l.alg_locatie_code,
l.alg_locatie_omschrijving,
l.alg_locatie_plaats,
g.alg_gebouw_code,
g.alg_gebouw_key,
v.alg_verdieping_code,
(SELECT rg.alg_regio_omschrijving
FROM alg_regio rg,
alg_district d,
alg_locatie l,
alg_gebouw g,
alg_verdieping v,
alg_ruimte r
WHERE rg.alg_regio_key = d.alg_regio_key
AND d.alg_district_key = l.alg_district_key
AND l.alg_locatie_key = g.alg_locatie_key
AND g.alg_gebouw_key = v.alg_gebouw_key
AND v.alg_verdieping_key = r.alg_verdieping_key
AND r.alg_ruimte_key = r2a.alg_ruimte_key),
(SELECT d.alg_district_omschrijving
FROM alg_district d,
alg_locatie l,
alg_gebouw g,
alg_verdieping v,
alg_ruimte r
WHERE d.alg_district_key = l.alg_district_key
AND l.alg_locatie_key = g.alg_locatie_key
AND g.alg_gebouw_key = v.alg_gebouw_key
AND v.alg_verdieping_key = r.alg_verdieping_key
AND r.alg_ruimte_key = r2a.alg_ruimte_key),
(SELECT l.alg_locatie_key
FROM alg_locatie l,
alg_gebouw g,
alg_verdieping v,
alg_ruimte r
WHERE l.alg_locatie_key = g.alg_locatie_key
AND g.alg_gebouw_key = v.alg_gebouw_key
AND v.alg_verdieping_key = r.alg_verdieping_key
AND r.alg_ruimte_key = r2a.alg_ruimte_key),
(SELECT alg_locatie_code
FROM alg_locatie l,
alg_gebouw g,
alg_verdieping v,
alg_ruimte r
WHERE l.alg_locatie_key = g.alg_locatie_key
AND g.alg_gebouw_key = v.alg_gebouw_key
AND v.alg_verdieping_key = r.alg_verdieping_key
AND r.alg_ruimte_key = r2a.alg_ruimte_key),
(SELECT alg_locatie_omschrijving
FROM alg_locatie l,
alg_gebouw g,
alg_verdieping v,
alg_ruimte r
WHERE l.alg_locatie_key = g.alg_locatie_key
AND g.alg_gebouw_key = v.alg_gebouw_key
AND v.alg_verdieping_key = r.alg_verdieping_key
AND r.alg_ruimte_key = r2a.alg_ruimte_key),
(SELECT alg_locatie_plaats
FROM alg_locatie l,
alg_gebouw g,
alg_verdieping v,
alg_ruimte r
WHERE l.alg_locatie_key = g.alg_locatie_key
AND g.alg_gebouw_key = v.alg_gebouw_key
AND v.alg_verdieping_key = r.alg_verdieping_key
AND r.alg_ruimte_key = r2a.alg_ruimte_key),
(SELECT alg_gebouw_code
FROM alg_gebouw g, alg_verdieping v, alg_ruimte r
WHERE g.alg_gebouw_key = v.alg_gebouw_key
AND v.alg_verdieping_key = r.alg_verdieping_key
AND r.alg_ruimte_key = r2a.alg_ruimte_key),
(SELECT v.alg_gebouw_key
FROM alg_verdieping v, alg_ruimte r
WHERE v.alg_verdieping_key = r.alg_verdieping_key
AND r.alg_ruimte_key = r2a.alg_ruimte_key),
(SELECT alg_verdieping_code
FROM alg_verdieping v, alg_ruimte r
WHERE v.alg_verdieping_key = r.alg_verdieping_key
AND r.alg_ruimte_key = r2a.alg_ruimte_key),
r2a.ruimte_nr,
r2a.opstelling,
r2a.capaciteit,
@@ -875,20 +846,6 @@ AS
rrr.res_rsv_ruimte_bezoekers,
rrr.res_rsv_ruimte_van,
rrr.res_rsv_ruimte_tot,
(SELECT CAST (
FROM_TZ (CAST (rrr.res_rsv_ruimte_van AS TIMESTAMP),
fac.getsetting ('fac_server_timezone'))
AT TIME ZONE COALESCE (l.alg_locatie_timezone,
fac.getsetting ('fac_server_timezone'))
AS DATE)
FROM DUAL),
(SELECT CAST (
FROM_TZ (CAST (rrr.res_rsv_ruimte_tot AS TIMESTAMP),
fac.getsetting ('fac_server_timezone'))
AT TIME ZONE COALESCE (l.alg_locatie_timezone,
fac.getsetting ('fac_server_timezone'))
AS DATE)
FROM DUAL),
COALESCE ( (rrr.res_rsv_ruimte_tot - rrr.res_rsv_ruimte_van) * 24, 0),
(SELECT res_status_fo_omschrijving
FROM res_status_fo rs
@@ -935,21 +892,9 @@ AS
rrr.alg_ruimte_key,
r.alg_ruimte_nr
FROM res_rsv_ruimte rrr, alg_ruimte r
WHERE rrr.alg_ruimte_key IS NOT NULL AND r.alg_ruimte_key = rrr.alg_ruimte_key) r2a,
alg_ruimte r,
alg_verdieping v,
alg_gebouw g,
alg_locatie l,
alg_district d,
alg_regio rg
WHERE rrr.alg_ruimte_key IS NOT NULL AND r.alg_ruimte_key = rrr.alg_ruimte_key) r2a
WHERE rrr.res_reservering_key = res.res_reservering_key
AND rrr.res_rsv_ruimte_key = r2a.res_rsv_ruimte_key(+)
AND r2a.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 l.alg_district_key = d.alg_district_key(+)
AND d.alg_regio_key = rg.alg_regio_key(+)
AND rrr.prs_kostenplaats_key = k.prs_kostenplaats_key(+)
AND rrr.res_activiteit_key = ra.res_activiteit_key
AND ra.res_srtactiviteit_key = rsa.res_srtactiviteit_key
@@ -1005,8 +950,6 @@ CREATE_VIEW(res_v_udr_reserveringincl, 1)
bezoekers,
van,
tot,
localized_van,
localized_tot,
duur,
status,
bostatus,
@@ -1099,14 +1042,75 @@ AS
a.prs_afdeling_key,
a.prs_afdeling_naam,
a.prs_afdeling_omschrijving,
rg.alg_regio_omschrijving,
d.alg_district_omschrijving,
l.alg_locatie_key,
l.alg_locatie_code,
l.alg_locatie_omschrijving,
l.alg_locatie_plaats,
g.alg_gebouw_code,
v.alg_verdieping_code,
(SELECT rg.alg_regio_omschrijving
FROM alg_regio rg,
alg_district d,
alg_locatie l,
alg_gebouw g,
alg_verdieping v,
alg_ruimte r
WHERE rg.alg_regio_key = d.alg_regio_key
AND d.alg_district_key = l.alg_district_key
AND l.alg_locatie_key = g.alg_locatie_key
AND g.alg_gebouw_key = v.alg_gebouw_key
AND v.alg_verdieping_key = r.alg_verdieping_key
AND r.alg_ruimte_key = r2a.alg_ruimte_key),
(SELECT d.alg_district_omschrijving
FROM alg_district d,
alg_locatie l,
alg_gebouw g,
alg_verdieping v,
alg_ruimte r
WHERE d.alg_district_key = l.alg_district_key
AND l.alg_locatie_key = g.alg_locatie_key
AND g.alg_gebouw_key = v.alg_gebouw_key
AND v.alg_verdieping_key = r.alg_verdieping_key
AND r.alg_ruimte_key = r2a.alg_ruimte_key),
(SELECT l.alg_locatie_key
FROM alg_locatie l,
alg_gebouw g,
alg_verdieping v,
alg_ruimte r
WHERE l.alg_locatie_key = g.alg_locatie_key
AND g.alg_gebouw_key = v.alg_gebouw_key
AND v.alg_verdieping_key = r.alg_verdieping_key
AND r.alg_ruimte_key = r2a.alg_ruimte_key),
(SELECT alg_locatie_code
FROM alg_locatie l,
alg_gebouw g,
alg_verdieping v,
alg_ruimte r
WHERE l.alg_locatie_key = g.alg_locatie_key
AND g.alg_gebouw_key = v.alg_gebouw_key
AND v.alg_verdieping_key = r.alg_verdieping_key
AND r.alg_ruimte_key = r2a.alg_ruimte_key),
(SELECT alg_locatie_omschrijving
FROM alg_locatie l,
alg_gebouw g,
alg_verdieping v,
alg_ruimte r
WHERE l.alg_locatie_key = g.alg_locatie_key
AND g.alg_gebouw_key = v.alg_gebouw_key
AND v.alg_verdieping_key = r.alg_verdieping_key
AND r.alg_ruimte_key = r2a.alg_ruimte_key),
(SELECT alg_locatie_plaats
FROM alg_locatie l,
alg_gebouw g,
alg_verdieping v,
alg_ruimte r
WHERE l.alg_locatie_key = g.alg_locatie_key
AND g.alg_gebouw_key = v.alg_gebouw_key
AND v.alg_verdieping_key = r.alg_verdieping_key
AND r.alg_ruimte_key = r2a.alg_ruimte_key),
(SELECT alg_gebouw_code
FROM alg_gebouw g, alg_verdieping v, alg_ruimte r
WHERE g.alg_gebouw_key = v.alg_gebouw_key
AND v.alg_verdieping_key = r.alg_verdieping_key
AND r.alg_ruimte_key = r2a.alg_ruimte_key),
(SELECT alg_verdieping_code
FROM alg_verdieping v, alg_ruimte r
WHERE v.alg_verdieping_key = r.alg_verdieping_key
AND r.alg_ruimte_key = r2a.alg_ruimte_key),
r2a.ruimte_nr,
r2a.opstelling,
r2a.capaciteit,
@@ -1137,20 +1141,6 @@ AS
rrr.res_rsv_ruimte_bezoekers,
rrr.res_rsv_ruimte_van,
rrr.res_rsv_ruimte_tot,
(SELECT CAST (
FROM_TZ (CAST (rrr.res_rsv_ruimte_van AS TIMESTAMP),
fac.getsetting ('fac_server_timezone'))
AT TIME ZONE COALESCE (l.alg_locatie_timezone,
fac.getsetting ('fac_server_timezone'))
AS DATE)
FROM DUAL),
(SELECT CAST (
FROM_TZ (CAST (rrr.res_rsv_ruimte_tot AS TIMESTAMP),
fac.getsetting ('fac_server_timezone'))
AT TIME ZONE COALESCE (l.alg_locatie_timezone,
fac.getsetting ('fac_server_timezone'))
AS DATE)
FROM DUAL),
COALESCE ( (rrr.res_rsv_ruimte_tot - rrr.res_rsv_ruimte_van) * 24, 0),
(SELECT res_status_fo_omschrijving
FROM res_status_fo rs
@@ -1253,21 +1243,9 @@ AS
'consumable' vtype
FROM res_v_aanwezigrsv_artikel rra, res_artikel ra, ins_tab_discipline c
WHERE rra.res_artikel_key = ra.res_artikel_key
AND ra.res_discipline_key = c.ins_discipline_key) voorz,
alg_ruimte r,
alg_verdieping v,
alg_gebouw g,
alg_locatie l,
alg_district d,
alg_regio rg
AND ra.res_discipline_key = c.ins_discipline_key) voorz
WHERE rrr.res_reservering_key = res.res_reservering_key
AND rrr.res_rsv_ruimte_key = r2a.res_rsv_ruimte_key(+)
AND r2a.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 l.alg_district_key = d.alg_district_key(+)
AND d.alg_regio_key = rg.alg_regio_key(+)
AND rrr.prs_kostenplaats_key = k.prs_kostenplaats_key(+)
AND rrr.res_rsv_ruimte_key = voorz.res_rsv_ruimte_key(+)
AND rrr.res_activiteit_key = ra.res_activiteit_key
@@ -1279,121 +1257,5 @@ AS
AND (rrr.res_ruimte_opstel_key IS NOT NULL OR voorz.res_rsv_ruimte_key IS NOT NULL)
AND rrr.res_rsv_ruimte_van >= TO_DATE ('01-01-2010', 'DD-MM-YYYY');
-- Om een goede bezettingsgraad te kunnen leveren zijn onderstaande views gegenereerd
-- Deze houdt rekening met werkplekreserveringen in een ruimte, en telt dan het aantal bezettingen
-- Alles op basis van reserveringen. BIj INS gebeurt iets vergelijkbaars obv sensorinfo.
-- De performance is een risico omdat er per ruimte/werkplek (max, als 24x7) 13.000 halfuurbuckets
-- worden bepaald. We moeten dus nog gaan zien of we deze standaard gaan tonen, wellicht na een vinkje.
-- Maar dan zijn ze als voorbeeld (en toets/beloning op inrichting cf. richtlijnen) beschikbaar.
/*
-- Desk-reserveringen (werkplekken) via 30-minuut-buckets:
-- 1) res_v_desk_reservation_buckets:
-- Genereer alle 30-min-buckets voor sysdate-90 tot sysdate binnen kantoortijden
-- (ma-vr, geen feestdagen). Breek alle werkplekreserveringen op in deze buckets.
-- OUTPUT: alg_ruimte_key, bucket_start, reserved_count (aantal werkplekken gereserveerd).
--
-- 2) res_v_desk_reservation_stats:
-- Toon per bucket en ruimte het aantal werkplekreserveringen.
--
-- 3) res_v_desk_reservation_kpis:
-- KPI<50>s per ruimte:
-- total_reserved_hours_desk = som(reserved_count <20> 0.5u)
-- avg_reserved_count = gem. aantal gelijktijdige desk-reserveringen
-- peak_reserved_count = max gelijktijdige desk-reserveringen
*/
CREATE_VIEW(res_v_desk_reservation_buckets, 0)
AS
WITH
intervals
AS
( SELECT TRUNC (SYSDATE - 90) + NUMTODSINTERVAL ((ROWNUM - 1) * 30, 'MINUTE') AS bucket_start
FROM DUAL
CONNECT BY ROWNUM <= ((SYSDATE - (SYSDATE - 90)) * 24 * 60 / 30)),
valid_buckets
AS
(SELECT bucket_start
FROM intervals
WHERE (TO_NUMBER (TO_CHAR (bucket_start, 'HH24')) + TO_NUMBER (TO_CHAR (bucket_start, 'MI')) / 60) BETWEEN fac.getsetting ('fac_t_startofworkday')
AND fac.getsetting ('fac_t_endofworkday')
AND TO_CHAR (bucket_start, 'DY', 'NLS_DATE_LANGUAGE=ENGLISH') NOT IN ('SAT', 'SUN')
AND TRUNC (bucket_start) NOT IN (SELECT mld_vrije_dagen_datum FROM mld_vrije_dagen)),
desk_res
AS
(SELECT r.alg_ruimte_key AS alg_ruimte_key, rd.res_rsv_deel_van AS start_dt, rd.res_rsv_deel_tot AS end_dt
FROM res_rsv_ruimte r
JOIN res_rsv_deel rd ON rd.res_rsv_ruimte_key = r.res_rsv_ruimte_key
JOIN res_deel d ON d.res_deel_key = rd.res_deel_key
JOIN res_discipline dis ON dis.ins_discipline_key = d.res_discipline_key
WHERE r.res_rsv_ruimte_dirtlevel = 0
AND r.res_status_fo_key IN (1, 2)
AND r.res_ruimte_opstel_key IS NULL
AND r.res_rsv_ruimte_verwijder IS NULL
AND dis.ins_discipline_min_level = 5
AND rd.res_rsv_deel_van < SYSDATE
AND rd.res_rsv_deel_tot > SYSDATE - 90),
bucket_assign
AS
(SELECT vb.bucket_start, dr.alg_ruimte_key
FROM valid_buckets vb JOIN desk_res dr ON dr.start_dt < vb.bucket_start + INTERVAL '30' MINUTE AND dr.end_dt > vb.bucket_start)
SELECT alg_ruimte_key, bucket_start, COUNT (*) AS reserved_count
FROM bucket_assign
GROUP BY alg_ruimte_key, bucket_start;
CREATE_VIEW(res_v_desk_reservation_stats, 0)
AS
SELECT rdb.alg_ruimte_key, rdb.bucket_start, rdb.reserved_count
FROM res_v_desk_reservation_buckets rdb;
CREATE_VIEW(res_v_desk_reservation_kpis, 0)
AS
SELECT alg_ruimte_key
, SUM (reserved_count * 0.5) AS total_reserved_hours_desk
, ROUND (AVG (reserved_count), 1) AS avg_reserved_count_desk
, MAX (reserved_count) AS peak_reserved_count_desk
FROM res_v_desk_reservation_stats
GROUP BY alg_ruimte_key;
/*
-- Kamerreserveringen (ruimtes) via eenvoudige KPI-berekening:
-- 4) res_v_room_simple_kpis:
-- Direct berekening per ruimte:<br>-- total_reserved_hours_room = som uren binnen kantoortijden</br>
-- avg_reservation_duration_hours (uren, 1 decimaal)
-- max_reservation_duration_hours
-- Hierbij worden reserveringstijden per record afgeknipt met GREATEST/LEAST
*/
CREATE_VIEW(res_v_room_simple_kpis, 0)
AS
SELECT rar.alg_ruimte_key
AS alg_ruimte_key
, SUM (
LEAST (r.res_rsv_ruimte_tot, TRUNC (r.res_rsv_ruimte_van) + NUMTODSINTERVAL (fac.getsetting ('fac_t_endofworkday'), 'HOUR'))
- GREATEST (r.res_rsv_ruimte_van, TRUNC (r.res_rsv_ruimte_van) + NUMTODSINTERVAL (fac.getsetting ('fac_t_startofworkday'), 'HOUR')))
* 24
AS total_reserved_hours_room
, -- gemiddelde reserveringsduur in uren (1 decimaal)
ROUND (
AVG (
( LEAST (r.res_rsv_ruimte_tot, TRUNC (r.res_rsv_ruimte_van) + NUMTODSINTERVAL (fac.getsetting ('fac_t_endofworkday'), 'HOUR'))
- GREATEST (r.res_rsv_ruimte_van, TRUNC (r.res_rsv_ruimte_van) + NUMTODSINTERVAL (fac.getsetting ('fac_t_startofworkday'), 'HOUR')))
* 24)
, 1)
AS avg_reservation_duration_hours
, -- gemiddelde aantal personen per reservering
ROUND (AVG (COALESCE (r.res_rsv_ruimte_bezoekers_shown, r.res_rsv_ruimte_bezoekers)), 1)
AS avg_persons_per_reservation
FROM res_rsv_ruimte r
JOIN res_ruimte_opstelling ro ON ro.res_ruimte_opstel_key = r.res_ruimte_opstel_key
JOIN res_ruimte ru ON ru.res_ruimte_key = ro.res_ruimte_key
JOIN res_alg_ruimte rar ON rar.res_ruimte_key = ru.res_ruimte_key
WHERE r.res_rsv_ruimte_dirtlevel = 0
AND r.res_status_fo_key IN (1, 2)
AND r.res_rsv_ruimte_verwijder IS NULL
AND r.res_rsv_ruimte_van < SYSDATE
AND r.res_rsv_ruimte_tot > SYSDATE - 90
GROUP BY rar.alg_ruimte_key;
REGISTERRUN('$Id$')
#endif // RES

View File

@@ -23,9 +23,9 @@ CREATE_TABLE(web_user_messages, 0)
VARCHAR2(512)
CONSTRAINT web_c_web_mes_dsc NOT NULL,
web_user_mess_action_soort
VARCHAR2(1),
CHAR(1),
web_user_mess_action_status
VARCHAR2(1),
CHAR(1),
web_user_mess_action_params
VARCHAR2(255),
web_user_mess_prioriteit

View File

@@ -1,414 +0,0 @@
/*
* Update script van FACILITOR schema
* $Revision$
* $Id$
*/
#include "prologue.inc"
COMMIT;
SET DEFINE OFF
/////////////////////////////////////////////////////////////////////////////////////////// WRTH#87857
UPDATE fac_import_app SET fac_import_app_csv = 1 WHERE fac_import_app_code = 'CNT';
/////////////////////////////////////////////////////////////////////////////////////////// PCHX#86497
ALTER TABLE cnt_disc_params /* Kostensoort verplicht {0=niet verplicht (default), 1=verplicht} */
ADD cnt_disc_params_ksverplicht
NUMBER(1)
DEFAULT 0
NOT NULL;
/////////////////////////////////////////////////////////////////////////////////////////// SCHG#88197
ALTER TABLE fac_imp_cnt
DROP COLUMN scope;
ALTER TABLE fac_imp_cnt
DROP COLUMN gebouwcode;
ALTER TABLE fac_imp_cnt
ADD ( locatiecode VARCHAR2 (10)
, terreincode VARCHAR2 (12)
, gebouwcode VARCHAR2 (12)
, verdiepingcode NUMBER (3)
, ruimtecode VARCHAR2 (20)
);
/////////////////////////////////////////////////////////////////////////////////////////// BAMG#85636
CREATE TABLE cnt_verlengschema
(
cnt_verlengschema_key
NUMBER(10)
PRIMARY KEY,
cnt_contract_key
NUMBER(10)
CONSTRAINT cnt_r_cnt_contract_key2 REFERENCES cnt_contract(cnt_contract_key),
cnt_verlengschema_volgnr
NUMBER(2),
cnt_verlengschema_verlengtermijn
NUMBER(10)
CONSTRAINT cnt_r_cnt_termijn_key6 REFERENCES cnt_termijn(cnt_termijn_key)
);
CREATE SEQUENCE cnt_s_cnt_verlengschema_key MINVALUE 1;
CREATE INDEX cnt_i_cnt_verlengschema ON cnt_verlengschema(cnt_contract_key);
/////////////////////////////////////////////////////////////////////////////////////////// YASK#88648
UPDATE fac_message
SET fac_message_text = 'Het veld ''Code'' is niet uniek.'
WHERE fac_message_code = 'PRS_U_PRS_AFDELING_UPPER';
/////////////////////////////////////////////////////////////////////////////////////////// FCLT#84467
ALTER TABLE mld_kenmerk ADD mld_kenmerk_rolcode NUMBER(4) DEFAULT 7 NOT NULL;
UPDATE mld_kenmerk k
SET mld_kenmerk_rolcode = 0;
UPDATE mld_kenmerk k
SET mld_kenmerk_rolcode = mld_kenmerk_rolcode + 1
WHERE mld_kenmerk_volgnummer <= 800
AND mld_kenmerk_niveau IN ('T', 'D', 'S', 'A');
UPDATE mld_kenmerk k
SET mld_kenmerk_rolcode = mld_kenmerk_rolcode + 2
WHERE mld_kenmerk_volgnummer <= 900 -- ja ook die <=800
AND mld_kenmerk_niveau IN ('T', 'D', 'S', 'A');
UPDATE mld_kenmerk k
SET mld_kenmerk_rolcode = mld_kenmerk_rolcode + 4 -- anders ziet BO de normale km niet
WHERE mld_kenmerk_volgnummer <= 800 OR mld_kenmerk_volgnummer >= 900
AND mld_kenmerk_niveau IN ('T', 'D', 'S', 'A');
UPDATE mld_kenmerk k
SET mld_kenmerk_rolcode = mld_kenmerk_rolcode + 1
WHERE mld_kenmerk_volgnummer <= 100
AND mld_kenmerk_niveau IN ('O', 'P');
UPDATE mld_kenmerk k
SET mld_kenmerk_rolcode = mld_kenmerk_rolcode + 2
WHERE mld_kenmerk_volgnummer <= 900
AND mld_kenmerk_volgnummer >= 100
AND mld_kenmerk_niveau IN ('O', 'P');
UPDATE mld_kenmerk k
SET mld_kenmerk_rolcode = mld_kenmerk_rolcode + 4
WHERE mld_kenmerk_volgnummer >= 900
AND mld_kenmerk_niveau IN ('O', 'P');
ALTER TABLE bes_kenmerk ADD bes_kenmerk_rolcode NUMBER(4) DEFAULT 7 NOT NULL;
UPDATE bes_kenmerk k
SET bes_kenmerk_rolcode = 0;
UPDATE bes_kenmerk k
SET bes_kenmerk_rolcode = bes_kenmerk_rolcode + 1
WHERE bes_kenmerk_volgnummer <= 100
AND bes_kenmerk_type IN ('B', 'I');
UPDATE bes_kenmerk k
SET bes_kenmerk_rolcode = bes_kenmerk_rolcode + 4
WHERE bes_kenmerk_volgnummer >= 900
AND bes_kenmerk_type IN ('B', 'I');
ALTER TABLE cnt_kenmerk ADD cnt_kenmerk_rolcode NUMBER(4) DEFAULT 7 NOT NULL;
UPDATE cnt_kenmerk k
SET cnt_kenmerk_rolcode = 0;
UPDATE cnt_kenmerk k
SET cnt_kenmerk_rolcode = 1
WHERE cnt_kenmerk_volgnummer <= 100;
UPDATE cnt_kenmerk k
SET cnt_kenmerk_rolcode = cnt_kenmerk_rolcode + 2
WHERE cnt_kenmerk_volgnummer >= 100;
ALTER TABLE ins_kenmerk ADD ins_kenmerk_rolcode NUMBER(4) DEFAULT 7 NOT NULL;
UPDATE ins_kenmerk k
SET ins_kenmerk_rolcode = 0;
UPDATE ins_kenmerk k
SET ins_kenmerk_rolcode = 1
WHERE ins_kenmerk_volgnummer <= 100
AND ins_kenmerk_niveau IN ('D', 'G', 'S');
UPDATE ins_kenmerk k
SET ins_kenmerk_rolcode = ins_kenmerk_rolcode + 2
WHERE ins_kenmerk_volgnummer >= 100
AND ins_kenmerk_volgnummer <= 900
AND ins_kenmerk_niveau IN ('D', 'G', 'S');
UPDATE ins_kenmerk k
SET ins_kenmerk_rolcode = ins_kenmerk_rolcode + 4
WHERE ins_kenmerk_volgnummer >= 900
AND ins_kenmerk_niveau IN ('D', 'G', 'S');
UPDATE ins_kenmerk k
SET ins_kenmerk_rolcode = 1
WHERE ins_kenmerk_volgnummer <= 100
AND ins_kenmerk_niveau IN ('T', 'C', 'E');
ALTER TABLE res_kenmerk ADD res_kenmerk_rolcode NUMBER(4) DEFAULT 7 NOT NULL;
UPDATE res_kenmerk k
SET res_kenmerk_rolcode = 0;
UPDATE res_kenmerk k
SET res_kenmerk_rolcode = 1
WHERE res_kenmerk_volgnummer <= 800;
UPDATE res_kenmerk k
SET res_kenmerk_rolcode = res_kenmerk_rolcode + 2
WHERE res_kenmerk_volgnummer <= 900;
UPDATE res_kenmerk k
SET res_kenmerk_rolcode = res_kenmerk_rolcode + 4
WHERE res_kenmerk_volgnummer <= 800
OR res_kenmerk_volgnummer >= 900;
// Deze varianten hebben kenmerk_volgnr ipv kenmerk_volgnummer
// (en tegelijkertijd geen verwijzing naar een kenmerksoort)
ALTER TABLE alg_kenmerk ADD alg_kenmerk_rolcode NUMBER(4) DEFAULT 7 NOT NULL;
UPDATE alg_kenmerk k
SET alg_kenmerk_rolcode = 0;
UPDATE alg_kenmerk k
SET alg_kenmerk_rolcode = 1
WHERE alg_kenmerk_volgnr <= 100;
UPDATE alg_kenmerk k
SET alg_kenmerk_rolcode = alg_kenmerk_rolcode + 2
WHERE alg_kenmerk_volgnr >= 100;
ALTER TABLE bez_kenmerk ADD bez_kenmerk_rolcode NUMBER(4) DEFAULT 7 NOT NULL;
UPDATE bez_kenmerk k
SET bez_kenmerk_rolcode = 0;
UPDATE bez_kenmerk k
SET bez_kenmerk_rolcode = 3
WHERE bez_kenmerk_volgnr <= 900;
UPDATE bez_kenmerk k
SET bez_kenmerk_rolcode = bez_kenmerk_rolcode + 4
WHERE bez_kenmerk_volgnr >= 900;
ALTER TABLE fin_kenmerk ADD fin_kenmerk_rolcode NUMBER(4) DEFAULT 7 NOT NULL;
UPDATE fin_kenmerk k
SET fin_kenmerk_rolcode = 1;
ALTER TABLE faq_kenmerk ADD faq_kenmerk_rolcode NUMBER(4) DEFAULT 7 NOT NULL;
UPDATE faq_kenmerk k
SET faq_kenmerk_rolcode = 1;
ALTER TABLE prs_kenmerk ADD prs_kenmerk_rolcode NUMBER(4) DEFAULT 7 NOT NULL;
UPDATE prs_kenmerk k
SET prs_kenmerk_rolcode = 0;
UPDATE prs_kenmerk k
SET prs_kenmerk_rolcode = 1
WHERE prs_kenmerk_volgnr <= 100;
UPDATE prs_kenmerk k
SET prs_kenmerk_rolcode = prs_kenmerk_rolcode + 2
WHERE prs_kenmerk_volgnr >= 100;
UPDATE prs_kenmerk k
SET prs_kenmerk_rolcode = prs_kenmerk_rolcode + 4 -- Wijzigbaar met PROFIL
WHERE prs_kenmerk_niveau <> 'C' AND prs_kenmerk_volgnr >= 800;
UPDATE prs_kenmerk k
SET prs_kenmerk_rolcode = prs_kenmerk_rolcode + 4 -- Wijzigbaar met EXTREL
WHERE prs_kenmerk_niveau = 'C' AND BITAND (prs_kenmerk_rolcode, 4) = 0;
UPDATE prs_kenmerk k
SET prs_kenmerk_toonbaar = COALESCE (prs_kenmerk_toonbaar, 0) + 2 -- Zichtbaar in profiel
WHERE prs_kenmerk_volgnr > 800
AND prs_kenmerk_volgnr <= 900
AND BITAND (COALESCE (prs_kenmerk_toonbaar, 0), 2) = 0;
ALTER TABLE fac_imp_flex ADD kenmerk_rolcode VARCHAR2(255);
/*
UPDATE ins_kenmerk k
SET ins_kenmerk_omschrijving = (SELECT ins_srtkenmerk_omschrijving FROM ins_srtkenmerk sk WHERE sk.ins_srtkenmerk_key = k.ins_srtkenmerk_key)
WHERE ins_kenmerk_omschrijving IS NULL;
UPDATE mld_kenmerk k
SET mld_kenmerk_omschrijving = (SELECT mld_srtkenmerk_omschrijving FROM mld_srtkenmerk sk WHERE sk.mld_srtkenmerk_key = k.mld_srtkenmerk_key)
WHERE mld_kenmerk_omschrijving IS NULL;
UPDATE res_kenmerk k
SET res_kenmerk_omschrijving = (SELECT res_srtkenmerk_omschrijving FROM res_srtkenmerk sk WHERE sk.res_srtkenmerk_key = k.res_srtkenmerk_key)
WHERE res_kenmerk_omschrijving IS NULL;
UPDATE bes_kenmerk k
SET bes_kenmerk_omschrijving = (SELECT bes_srtkenmerk_omschrijving FROM bes_srtkenmerk sk WHERE sk.bes_srtkenmerk_key = k.bes_srtkenmerk_key)
WHERE bes_kenmerk_omschrijving IS NULL;
UPDATE cnt_kenmerk k
SET cnt_kenmerk_omschrijving = (SELECT cnt_srtkenmerk_omschrijving FROM cnt_srtkenmerk sk WHERE sk.cnt_srtkenmerk_key = k.cnt_srtkenmerk_key)
WHERE cnt_kenmerk_omschrijving IS NULL;
*/
/////////////////////////////////////////////////////////////////////////////////////////// AAIT#87224
ALTER TABLE prs_bedrijf MODIFY prs_bedrijf_opmerking VARCHAR2(4000);
ALTER TABLE fac_imp_ext_bedrijf MODIFY prs_bedrijf_opmerking VARCHAR2(4000);
/////////////////////////////////////////////////////////////////////////////////////////// FCLT#88353
UPDATE prs_bedrijf SET prs_bedrijf_intern = NULL WHERE prs_bedrijf_intern = 0;
ALTER TABLE prs_bedrijf
ADD CONSTRAINT prs_c_prs_bedrijf_intern CHECK(prs_bedrijf_intern IS NULL OR prs_bedrijf_intern IN (1,2));
/////////////////////////////////////////////////////////////////////////////////////////// LOGC#89125
ALTER TABLE mld_melding_tag ADD mld_melding_tag_datum_acc DATE;
/////////////////////////////////////////////////////////////////////////////////////////// FCLT#85585
ALTER TABLE fac_email_setting
ADD (mld_stdmelding_key NUMBER (10) REFERENCES mld_stdmelding (mld_stdmelding_key) ON DELETE CASCADE);
ALTER TABLE fac_email_setting
MODIFY fac_email_setting_attachpath VARCHAR2 (255) DEFAULT '*flexfilespath';
ALTER TABLE fac_email_setting
ADD fac_email_setting_text VARCHAR2 (320);
INSERT INTO fac_setting (fac_setting_module
, fac_setting_flags
, fac_functie_key
, fac_setting_name
, fac_setting_type
, fac_setting_description)
SELECT 'FAC'
, 1
, fac_functie_key
, 'm2m_enabled'
, 'number'
, 'Is Facilitor Mail2Melding configured {0=disabled | 1=enabled}'
FROM fac_functie
WHERE fac_functie_code = 'WEB_FACFAC';
-- Zet nieuwe setting m2m_enabled voor omgeving waar m2m in gebruik is
DECLARE
m2m NUMBER;
BEGIN
SELECT COUNT (*) INTO m2m FROM fac_email_setting;
IF m2m > 0
THEN
UPDATE fac_setting
SET fac_setting_pvalue = '1'
WHERE fac_setting_name = 'm2m_enabled';
END IF;
END;
/
/////////////////////////////////////////////////////////////////////////////////////////// FCLT#88913
DEF_FAC_SRTNOT('ORDSND', 0, 'lcl_noti_ORDSND', 'mld/mld_opdr.asp?opdr_key=', '0', 'opdracht', 60);
-- CNTNEW/ORDNEW/BES2NE aanmaken bij kanalen die nog naar geen enkele notificatie luisteren
INSERT INTO prs_bedrijfadres_srtnoti (prs_bedrijfadres_key, fac_srtnotificatie_key)
SELECT prs_bedrijfadres_key, fac_srtnotificatie_key
FROM fac_srtnotificatie, prs_bedrijfadres ba
WHERE fac_srtnotificatie_code = 'CNTNEW'
AND prs_bedrijfadres_type = 'C'
AND NOT EXISTS
(SELECT 1
FROM prs_bedrijfadres_srtnoti ba_srt
WHERE ba_srt.prs_bedrijfadres_key = ba.prs_bedrijfadres_key);
INSERT INTO prs_bedrijfadres_srtnoti (prs_bedrijfadres_key, fac_srtnotificatie_key)
SELECT prs_bedrijfadres_key, fac_srtnotificatie_key
FROM fac_srtnotificatie, prs_bedrijfadres ba
WHERE fac_srtnotificatie_code IN ('ORDNEW', 'ORDSND')
AND prs_bedrijfadres_type = 'O'
AND NOT EXISTS
(SELECT 1
FROM prs_bedrijfadres_srtnoti ba_srt
WHERE ba_srt.prs_bedrijfadres_key = ba.prs_bedrijfadres_key);
INSERT INTO prs_bedrijfadres_srtnoti (prs_bedrijfadres_key, fac_srtnotificatie_key)
SELECT prs_bedrijfadres_key, fac_srtnotificatie_key
FROM fac_srtnotificatie, prs_bedrijfadres ba
WHERE fac_srtnotificatie_code = 'BES2NE'
AND prs_bedrijfadres_type = 'B'
AND NOT EXISTS
(SELECT 1
FROM prs_bedrijfadres_srtnoti ba_srt
WHERE ba_srt.prs_bedrijfadres_key = ba.prs_bedrijfadres_key);
-- RESNEW luisterde al nooit automatisch
/////////////////////////////////////////////////////////////////////////////////////////// FCLT#87091
ALTER TABLE fac_nieuws ADD
mld_melding_key
NUMBER(10) CONSTRAINT mld_r_mld_melding_key8 REFERENCES mld_melding(mld_melding_key) ON DELETE SET NULL;
UPDATE fac_setting
SET fac_setting_pvalue = fac_setting_pvalue || ',fa-megaphone'
WHERE fac_setting_pvalue IS NOT NULL
AND fac_setting_name = 'buttons_in_hamburger';
/////////////////////////////////////////////////////////////////////////////////////////// FCLT#89182
INSERT INTO fac_locale (fac_locale_lang,
fac_locale_kolomkeyval,
fac_locale_kolomnaam,
fac_locale_tekst)
SELECT 'EN',
fac_usrrap_key,
'FAC_USRRAP_OMSCHRIJVING',
'UDR: Key management'
FROM fac_usrrap
WHERE fac_usrrap_view_name = 'ins_v_rap_sle_toegang'
AND fac_usrrap_omschrijving = 'SLE: Sleuteloverzicht'
AND fac_usrrap_info = 'Overzicht van sleutels en bezitters';
INSERT INTO fac_locale (fac_locale_lang,
fac_locale_kolomkeyval,
fac_locale_kolomnaam,
fac_locale_tekst)
SELECT 'EN',
fac_usrrap_key,
'FAC_USRRAP_INFO',
'Basic report for key management'
FROM fac_usrrap
WHERE fac_usrrap_view_name = 'ins_v_rap_sle_toegang'
AND fac_usrrap_omschrijving = 'SLE: Sleuteloverzicht'
AND fac_usrrap_info = 'Overzicht van sleutels en bezitters';
UPDATE fac_usrrap
SET fac_usrrap_omschrijving = 'UDR: Sleuteloverzicht',
fac_usrrap_info = 'Basisrapport voor sleutels',
fac_usrrap_groep = 'BASIS'
WHERE fac_usrrap_view_name = 'ins_v_rap_sle_toegang'
AND fac_usrrap_omschrijving = 'SLE: Sleuteloverzicht'
AND fac_usrrap_info = 'Overzicht van sleutels en bezitters'
AND fac_usrrap_groep IS NULL;
/////////////////////////////////////////////////////////////////////////////////////////// FZKH#88777
ALTER TABLE fac_activiteit DROP CONSTRAINT fac_c_fac_activiteit_eenheid;
ALTER TABLE fac_activiteit
ADD CONSTRAINT fac_c_fac_activiteit_eenheid CHECK (fac_activiteit_eenheid IN (1,2,3,4,5) OR fac_activiteit_eenheid IS NULL);
DEF_MENUITEM(1, 'lcl_menu_fac_jobs_templates_fo', '', 'MLD', 'appl/fac/job_search.asp?urole=fo&template=1', 0, 0, 'WEB_MLDFOF', 'W', '1', '');
DEF_MENUITEM(2, 'lcl_menu_fac_jobs_templates', '', 'MLD', 'appl/fac/job_search.asp?template=1', 0, 0, 'WEB_MLDMGT', 'W', '1', '');
MENU_INS_AFTER('lcl_menu_fac_jobs_templates', 'lcl_menu_mld_workflows', 1);
/////////////////////////////////////////////////////////////////////////////////////////// FZKH#87243
UPDATE mld_kenmerk k1
SET k1.mld_kenmerk_inlijst = k1.mld_kenmerk_inlijst + 2
WHERE k1.mld_kenmerk_key IN
(SELECT k2.mld_kenmerk_key
FROM mld_kenmerk k2, mld_srtkenmerk sk, fac_kenmerkdomein kd
WHERE k2.mld_srtkenmerk_key = sk.mld_srtkenmerk_key
AND sk.fac_kenmerkdomein_key = kd.fac_kenmerkdomein_key
AND k2.mld_kenmerk_verwijder IS NULL
AND sk.mld_srtkenmerk_verwijder IS NULL
AND kd.fac_kenmerkdomein_verwijder IS NULL
AND k2.mld_kenmerk_show_expr IS NULL
AND k2.mld_kenmerk_toonbaar IS NULL
AND k2.mld_kenmerk_niveau IN ('A',
'T',
'D',
'S')
AND sk.mld_srtkenmerk_kenmerktype IN ('r', 'R')
AND NOT EXISTS
(SELECT ''
FROM fac_usrtab u1
WHERE u1.fac_usrtab_parentkey IS NOT NULL
AND u1.fac_usrtab_key = kd.fac_usrtab_key)
AND NOT EXISTS
(SELECT ''
FROM fac_usrtab u1, fac_usrtab u2
WHERE u2.fac_usrtab_parentkey =
u1.fac_usrtab_key
AND u1.fac_usrtab_key = kd.fac_usrtab_key));
/////////////////////////////////////////////////////////////////////////////////////////// ALLR#80285
ALTER TABLE res_ruimte
ADD res_ruimte_limiet NUMBER (3);
/////////////////////////////////////////////////////////////////////////////////////////// BLCC#88329
ALTER TABLE cnt_disc_params
ADD cnt_disc_params_approve_new NUMBER(1) DEFAULT 0 NOT NULL;
/////////////////////////////////////////////////////////////////////////////////////////// VLKC#89252
INSERT INTO fac_setting (fac_setting_module,
fac_setting_name,
fac_setting_type,
fac_setting_description,
fac_setting_default,
fac_setting_pvalue)
VALUES('MLD',
'mld_pessismistisch_hergoedkeuren',
'number',
'Hergoedkeuren als de opdrachtkosten boven de bestellimiet, of boven de goedkeuringsvrijstelling komen {1=ja | 0=alleen als beiden waar zijn}',
'0',
(SELECT fac_setting_pvalue FROM fac_setting WHERE fac_setting_name = 'fac_reserved_number2'));
UPDATE fac_setting
SET fac_setting_pvalue = ''
WHERE fac_setting_name = 'fac_reserved_number2';
/////////////////////////////////////////////////////////////////////////////////////////// FCLT#00000
REGISTERONCE('$Id$')
#include "epilogue.inc"

View File

@@ -1,143 +0,0 @@
/*
* Update script van FACILITOR schema
* $Revision$
* $Id$
*/
#include "prologue.inc"
COMMIT;
SET DEFINE OFF
/////////////////////////////////////////////////////////////////////////////////////////// FCLT#89720
BEGIN
adm.trydrop('INDEX prs_i_prs_bedrijfadres2');
END;
/
CREATE UNIQUE INDEX prs_i_prs_bedrijfadres2 ON prs_bedrijfadres(prs_bedrijf_key, prs_bedrijfadres_type, mld_typeopdr_key, ins_discipline_key, alg_locatie_key, alg_district_key, prs_bedrijf_key2, prs_bedrijfadres_startdatum);
UPDATE fac_message
SET fac_message_text = 'Combinatie bedrijf, discipline, locatie, opdrachttype, adrestype is niet uniek'
WHERE fac_message_code = 'PRS_I_PRS_BEDRIJFADRES2';
/////////////////////////////////////////////////////////////////////////////////////////// FCLT#90099
BEGIN
adm.tryalter('TABLE prs_bedrijf DROP CONSTRAINT prs_c_prs_bedrijf_intern');
END;
/
UPDATE prs_bedrijf SET prs_bedrijf_intern = NULL WHERE prs_bedrijf_intern = 0;
ALTER TABLE prs_bedrijf
ADD CONSTRAINT prs_c_prs_bedrijf_intern CHECK(prs_bedrijf_intern IS NULL OR prs_bedrijf_intern IN (1,2));
/////////////////////////////////////////////////////////////////////////////////////////// FCLT#89903
CREATE UNIQUE INDEX prs_i_prs_bedrijfadres_srtnoti1 ON prs_bedrijfadres_srtnoti(prs_bedrijfadres_key, fac_srtnotificatie_key);
/////////////////////////////////////////////////////////////////////////////////////////// FCLT#90097
UPDATE alg_gebouw
SET mld_vrije_dagen_id = NULL
WHERE mld_vrije_dagen_id = '-1';
/////////////////////////////////////////////////////////////////////////////////////////// MARX#90181
ALTER TABLE prs_perslid
ADD prs_perslid_errorhandling -- 0=200 on API1 error, 1=400 on error
NUMBER (10)
DEFAULT 1
NOT NULL;
/////////////////////////////////////////////////////////////////////////////////////////// FCLT#88579
DECLARE
altersql VARCHAR (4000);
BEGIN
FOR curs IN ( SELECT c.*
FROM user_tab_columns c JOIN user_tables t ON t.table_name = c.table_name
WHERE char_used = 'B'
ORDER BY c.table_name, c.column_name)
LOOP
-- FAC_IMP_OPROGNOSE z<>n kolom ELEMENT is een enigszins reserved woord lijkt. Daarom quotes
altersql :=
'alter table ' || curs.table_name || ' MODIFY "' || curs.column_name || '" VARCHAR (' || curs.data_length || ' CHAR)';
DBMS_OUTPUT.PUT_LINE (altersql);
EXECUTE IMMEDIATE altersql;
END LOOP;
END;
/
DROP INDEX INS_I_INS_KENMERK_KENMERK2;
/////////////////////////////////////////////////////////////////////////////////////////// FCLT#90179
ALTER TABLE fac_groep MODIFY (fac_groep_omschrijving VARCHAR2(60), fac_groep_upper VARCHAR2(60));
/////////////////////////////////////////////////////////////////////////////////////////// FCLT#89765
ALTER PACKAGE fac COMPILE; // anders (mogelijk nog) invalid en lukt het volgende niet
ALTER PACKAGE fac COMPILE BODY;
UPDATE mld_melding
SET mld_melding_actiecode = mld_melding_actiecode - 128 -- bit 1, 2 en 256 toegestaan
WHERE mld_melding_status = 5
AND BITAND(mld_melding_actiecode, 128) = 128;
/////////////////////////////////////////////////////////////////////////////////////////// SGGR#81078
ALTER TABLE ins_srtdeel ADD ins_srtdeel_statestepsize NUMBER (6, 3);
ALTER TABLE ins_srtdeel ADD ins_srtdeel_stateanchor NUMBER (6, 3);
ALTER TABLE ins_deel_state_history ADD ins_deel_state_value NUMBER(16,6);
CREATE VIEW ins_v_udr_sensordata AS SELECT * FROM DUAL;
DEF_RAPPORT('BASIS', 'WEB_UDRMAN', 32, 'ins_v_udr_sensordata', 'UDR: Actuele Sensordata', 'Basisrapport voor actuele data van sensoren',
'UDR: Actual Sensor data', 'Basic report current data from sensors')
/////////////////////////////////////////////////////////////////////////////////////////// PROR#89199
ALTER TABLE mld_stdmelding ADD mld_stdmelding_objects_allowed NUMBER(1) DEFAULT(2) NOT NULL;
ALTER TABLE fac_imp_mld ADD mld_stdmelding_objects_allowed NUMBER(1);
/////////////////////////////////////////////////////////////////////////////////////////// DLLG#90075
ALTER TABLE alg_locatie ADD alg_locatie_timezone VARCHAR2(40);
/////////////////////////////////////////////////////////////////////////////////////////// FCLT#88619
-- cascadeert vanzelf door naar fac_menu
DELETE FROM fac_menuitems
WHERE fac_menuitems_label LIKE 'lcl_menu_____kenmerkdomeinen';
DEF_MENUITEM(2, 'lcl_menu_kenmerkdomeinen' , '', 'FAC', 'appl/fac/fac_kenmerkdomein_search.asp', 0, 0, 'WEB_PRSSYS', 'W', '1', '');
MENU_INS_AFTER('lcl_menu_kenmerkdomeinen', 'lcl_menu_fac_eigen_tabellen', 1);
/////////////////////////////////////////////////////////////////////////////////////////// LOGC#90445
ALTER TABLE mld_melding_tag ADD mld_melding_tag_actief NUMBER(2) DEFAULT 1 NOT NULL;
/////////////////////////////////////////////////////////////////////////////////////////// FCLT#79801
ALTER TABLE fac_imp_onrgoed1
ADD ( alg_gebouw_adres VARCHAR2(50)
, alg_gebouw_postcode VARCHAR2(12)
);
/////////////////////////////////////////////////////////////////////////////////////////// MARX#89543
DROP INDEX mld_i_mld_opdr_materiaal1 ;
CREATE INDEX mld_i_mld_opdr_materiaal1 ON mld_opdr_materiaal(mld_opdr_key);
/////////////////////////////////////////////////////////////////////////////////////////// UWVA#88793
ALTER TABLE res_srtartikel_onrgoed ADD res_srtartikel_og_ingangsdatum DATE;
ALTER TABLE res_srtartikel_onrgoed ADD res_srtartikel_og_vervaldatum DATE;
/////////////////////////////////////////////////////////////////////////////////////////// FCLT#84701
ALTER TABLE prs_bedrijfadres
ADD prs_bedrijfadres_template VARCHAR(128)
DEFAULT 'generic'
NOT NULL;
/////////////////////////////////////////////////////////////////////////////////////////// FCLT#55847
ALTER TABLE fac_notificatie
ADD fac_notificatie_email_cc VARCHAR(4000);
ALTER TABLE fac_notificatie
ADD fac_notificatie_email_bcc VARCHAR(4000);
/////////////////////////////////////////////////////////////////////////////////////////// FCLT#87173
ALTER TABLE fac_imp_inspectie ADD ctr_discipline_omschrijving VARCHAR2(60);
/////////////////////////////////////////////////////////////////////////////////////////// MARX#90312
ALTER TABLE fac_email_setting
ADD fac_email_setting_ai_prompt VARCHAR2(4000);
/////////////////////////////////////////////////////////////////////////////////////////// FCLT#00000
REGISTERONCE('$Id$')
#include "epilogue.inc"

View File

@@ -62,17 +62,17 @@ END;
DECLARE
tekst VARCHAR2 (1000);
charset VARCHAR2 (1000);
BEGIN
SELECT MIN(client_charset)
INTO charset
FROM v$session_connect_info
WHERE sid = sys_context('USERENV','SID');
IF charset <> 'WE8MSWIN1252' THEN
CASE ASCII('<27>')
WHEN 191 THEN tekst :='WE8ISO8859P1';
WHEN 128 THEN tekst :='WE8MSWIN1252'; -- De enige goede
ELSE tekst :='UNKNOWN ';
END CASE;
IF tekst <> 'WE8MSWIN1252' THEN
tekst := '=================================================================' || CHR(10)
|| 'Wrong clientside NLS_LANG for this Facilitor upgrade.' || CHR(10)
|| 'WE8MSWIN1252 is required, we suspect '|| charset || CHR(10)
|| 'Please enter this before you start SQL*Plus:' || CHR(10)
|| 'Wrong clientside NLS_LANG ['|| TO_CHAR(ASCII('<27>')) ||'] for this Facilitor upgrade.' || CHR(10)
|| 'WE8MSWIN1252 is required, we suspect '|| tekst || CHR(10)
|| 'Please enter before you start SQL*Plus:' || CHR(10)
|| ' on Windows:' || CHR(10)
|| ' SET NLS_LANG=.WE8MSWIN1252' || CHR(10)
|| ' on Unix:' || CHR(10)
@@ -130,7 +130,6 @@ variable update_start number
exec :update_start := dbms_utility.get_time
/* om zeker te weten dat eventuele conversies goed gaan */
ALTER SESSION SET nls_territory='america';
ALTER SESSION SET nls_length_semantics='char';
SELECT adm.systeminfo FROM DUAL;