35 Commits
DB51 ... DB50

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
38 changed files with 1042 additions and 2652 deletions

View File

@@ -716,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

@@ -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

@@ -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

@@ -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

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;
@@ -78,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';
@@ -101,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.
@@ -269,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
@@ -294,11 +271,7 @@ CREATE OR REPLACE PACKAGE BODY cnt AS
AND cn.cnt_contract_verwijder IS NULL
);
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;
tracking VARCHAR2(4000);
BEGIN
FOR cnt_verloopt IN c_verleng
LOOP
@@ -311,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;
@@ -366,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
@@ -401,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);
@@ -424,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
@@ -444,12 +375,7 @@ CREATE OR REPLACE PACKAGE BODY cnt AS
eind1 := eind1;
IF (fac.getsetting('cnt_contract_approval') = 1 AND srtcontract_type != 6)
THEN
IF (approve_new = 1)
THEN
new_status := 3; -- gesplitst contract altijd accorderen
ELSE
new_status := 2; -- altijd op nieuw
END IF;
new_status := 2; -- altijd op nieuw
ELSE
new_status := 0; -- direct actief
END IF;
@@ -788,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),
@@ -840,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
@@ -855,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

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

@@ -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);
@@ -2699,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', '');
@@ -2904,8 +2902,6 @@ 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', '');

File diff suppressed because it is too large Load Diff

View File

@@ -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,18 +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);
@@ -678,47 +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
-- 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 (begindatum)
AND mld_vrije_dagen_id = pCalendarId;
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;
SELECT COUNT ( * )
INTO vrijedag
FROM mld_vrije_dagen
WHERE mld_vrije_dagen_datum = TRUNC (datumbegin)
AND mld_vrije_dagen_id = pCalendarId;
IF (datumbegin > TRUNC (datumbegin) + (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);
ELSIF (datumbegin < TRUNC (datumbegin) + (pBeginWerkUur / 24))
THEN
-- Als begintijd voor 'pBeginWerkUur', dan naar 'pBeginWerkUur' huidige dag.
datumbegin := TRUNC (datumbegin) + (pBeginWerkUur / 24);
END IF;
EXIT WHEN vrijedag = 0;
END LOOP;
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 (begindatum + 1) + (pBeginWerkUur / 24);
ELSIF (begindatum < TRUNC (begindatum) + (pBeginWerkUur / 24))
THEN
-- Als begintijd voor 'pBeginWerkUur', dan naar 'pBeginWerkUur' huidige dag.
datumbegin := TRUNC (begindatum) + (pBeginWerkUur / 24);
ELSE
-- Anders 1-op-1 overnemen.
datumbegin := begindatum;
END IF;
IF pMode = 0
THEN
@@ -729,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')
@@ -2651,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,
@@ -3002,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
@@ -3428,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', '');
@@ -3458,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
@@ -3899,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
)
@@ -3978,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;
@@ -4035,7 +4017,7 @@ CREATE OR REPLACE PACKAGE BODY fac AS
-- dus zo simpel is het niet. Daarom maar specifiek uitsluiten.
--
-- Deze leiden intrinsiek niet tot notificaties
IF (lcode = 'BESLIK' OR lcode = 'MLDLIK' OR lcode ='RESLIK')
IF (lcode = 'BESLIK' OR lcode = 'MLDLIK' OR lcode='RESLIK')
THEN
RETURN;
END IF;
@@ -4195,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
@@ -4219,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
@@ -4341,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
@@ -5011,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;
@@ -5023,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;
@@ -5073,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
@@ -5089,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)
@@ -5096,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,
@@ -5127,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',
@@ -5338,386 +5342,179 @@ 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;
BEGIN
SELECT mld_stdmelding_default_disc
INTO stdm_default_disc
FROM mld_stdmelding
WHERE mld_stdmelding_key = p_stdm;
RETURN stdm_default_disc;
SELECT mld_stdmelding_default_disc
INTO stdm_default_disc
FROM mld_stdmelding
WHERE mld_stdmelding_key = p_stdm;
RETURN stdm_default_disc;
EXCEPTION
WHEN NO_DATA_FOUND
THEN
RETURN NULL;
WHEN NO_DATA_FOUND
THEN
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)
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);
-- Status: proven concept
PROCEDURE processemail (pfrom IN VARCHAR2,
pto IN VARCHAR2,
psubject IN VARCHAR2,
pbody IN VARCHAR2,
psessionid IN VARCHAR2
)
AS
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 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);
-- 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');
CASE
WHEN UPPER (pto) LIKE 'SERVICEDESK@%'
THEN
defaultstdmelding := fac.getsetting ('defaultstdmelding');
stdm_default_disc := getDefaultBehandelteam(defaultstdmelding);
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)
BEGIN
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;
-- 2. Fetch standard stdmelding props from configuration
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
-- Deze mag wel weg, maar was nog even ter compatibiliteit
-- met oude configuraties die nog geen standaard melding hebben
-- l_std_message_key := fac.safe_to_number (fac.getsetting ('defaultstdmelding'))
-- dan zou de rest alsnog weer moeten bepalen, doen we maar niet dan
l_error_msg := 'Onvolledige email configuratie: geen standaardmelding gevonden voor configuratie ' || p_email_set_key;
fac.writelog ('PROCESSEMAIL'
, 'E'
, l_error_msg
, '');
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);
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);
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
, p_subject
, l_clean_body
, NULL
, l_std_message_key
, l_sender
, l_sender
, l_sender_email_ext
, l_cost_center
, 3
, l_default_disc)
RETURNING mld_melding_key
INTO l_new_key;
mld.setmeldingstatus (l_new_key, 2, l_sender);
-- En nu dan?
IF l_default_disc IS NOT NULL
THEN
mld.notifybackoffice (l_new_key, 'MLDBHG', 2);
END IF;
mld.mld_nextworkflowstep (l_new_key, -1);
mld.mld_addautoorder(l_new_key);
-- 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));
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_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;
END IF;
-- 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
-- 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
l_error_msg := 'Error saving original mail body';
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 newkey;
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';
-- 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);
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);
IF kkey IS NOT NULL
THEN
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.setmeldingstatus (newkey, 2, sender);
IF stdm_default_disc IS NOT NULL
THEN
mld.notifybackoffice (newkey, 'MLDBHG', 2);
END IF;
END;
END IF;
l_error_msg := NULL;
-- 6b. Attachment kenmerk, bij nieuwe en bestaande melding
BEGIN
l_error_msg := 'Error saving attachements';
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;
-- 7. Final error
IF l_error_msg IS NOT NULL
THEN
INSERT INTO fac_result (fac_result_sessionid, fac_result_naam, fac_result_waarde)
VALUES (p_session_id, 'errormsg', l_error_msg);
END IF;
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');
END processemail;
ELSE
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;
EXCEPTION
WHEN OTHERS
THEN
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')
@@ -5767,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;
@@ -6293,7 +6090,6 @@ CREATE OR REPLACE PACKAGE BODY fac AS
-- We garanderen maximaal 64 characters
-- We ondersteunen alleen nog maar 'MD5'
-- DEPRECATED! Droppen met DB52
FUNCTION makehash (p_in VARCHAR2, method IN VARCHAR2 DEFAULT 'MD5')
RETURN VARCHAR2
IS
@@ -6303,6 +6099,18 @@ CREATE OR REPLACE PACKAGE BODY fac AS
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

View File

@@ -13387,7 +13387,7 @@ IS
v_prs_overeenkomst_nr VARCHAR2 (256); -- C30
v_prs_overeenkomst_datum VARCHAR2 (256); -- DATE
v_prs_bedrijf_email VARCHAR2 (256); -- C100
v_prs_bedrijf_opmerking VARCHAR2 (4000); -- C4000
v_prs_bedrijf_opmerking VARCHAR2 (512); -- C320
v_prs_dienst_omschrijving VARCHAR2 (256); -- C60
v_alg_locatie_code VARCHAR2 (256); -- C10
v_alg_gebouw_code VARCHAR2 (256); -- C12
@@ -13997,15 +13997,15 @@ BEGIN
v_errorhint := 'Opmerking te lang';
v_prs_bedrijf_opmerking := TRIM (v_prs_bedrijf_opmerking);
IF LENGTH (v_prs_bedrijf_opmerking) > 4000
IF LENGTH (v_prs_bedrijf_opmerking) > 320
THEN
v_prs_bedrijf_opmerking :=
SUBSTR (TRIM (v_prs_bedrijf_opmerking), 1, 4000);
SUBSTR (TRIM (v_prs_bedrijf_opmerking), 1, 320);
fac.imp_writelog (p_import_key,
'W',
v_aanduiding || v_errorhint,
'Opmerking wordt afgebroken tot ['
|| SUBSTR(v_prs_bedrijf_opmerking, 1, 1000) -- imp_log_omschrijving is niet groter :)
|| v_prs_bedrijf_opmerking
|| ']'
);
END IF;
@@ -17755,7 +17755,6 @@ IS
v_kenmerk_niveau VARCHAR2 (300);
v_kenmerk_verplicht VARCHAR2 (300);
v_kenmerk_groep VARCHAR2 (300);
v_kenmerk_rolcode VARCHAR2 (300);
v_kenmerk_volgnummer VARCHAR2 (300);
v_kenmerk_default VARCHAR2 (4000);
v_kenmerk_toonbaar VARCHAR2 (300);
@@ -17821,7 +17820,6 @@ BEGIN
fac.imp_getfield (v_newline, v_fielddelimitor, v_kenmerk_niveau);
fac.imp_getfield (v_newline, v_fielddelimitor, v_kenmerk_verplicht);
fac.imp_getfield (v_newline, v_fielddelimitor, v_kenmerk_groep);
fac.imp_getfield (v_newline, v_fielddelimitor, v_kenmerk_rolcode);
fac.imp_getfield (v_newline, v_fielddelimitor, v_kenmerk_volgnummer);
fac.imp_getfield (v_newline, v_fielddelimitor, v_kenmerk_default); -- 20
fac.imp_getfield (v_newline, v_fielddelimitor, v_kenmerk_toonbaar);
@@ -17862,7 +17860,6 @@ BEGIN
AND UPPER (v_kenmerk_niveau) = 'KENMERK_NIVEAU'
AND UPPER (v_kenmerk_verplicht) = 'KENMERK_VERPLICHT'
AND UPPER (v_kenmerk_groep) = 'KENMERK_GROEP'
AND UPPER (v_kenmerk_rolcode) = 'KENMERK_ROLCODE'
AND UPPER (v_kenmerk_volgnummer) = 'KENMERK_VOLGNUMMER'
AND UPPER (v_kenmerk_default) = 'KENMERK_DEFAULT'
AND UPPER (v_kenmerk_toonbaar) = 'KENMERK_TOONBAAR'
@@ -17962,7 +17959,6 @@ BEGIN
kenmerk_niveau,
kenmerk_verplicht,
kenmerk_groep,
kenmerk_rolcode,
kenmerk_volgnummer,
kenmerk_default,
kenmerk_type, -- 20
@@ -18011,7 +18007,6 @@ BEGIN
SUBSTR (v_kenmerk_niveau, 1, 255),
SUBSTR (v_kenmerk_verplicht, 1, 255),
SUBSTR (v_kenmerk_groep, 1, 255),
SUBSTR (v_kenmerk_rolcode, 1, 255),
SUBSTR (v_kenmerk_volgnummer, 1, 255),
SUBSTR (v_kenmerk_default, 1, 4000),
SUBSTR (v_kenmerk_type, 1, 255), -- 20
@@ -18558,7 +18553,6 @@ BEGIN
bes_kenmerk_type,
bes_kenmerk_verplicht,
bes_kenmerk_groep,
bes_kenmerk_rolcode,
bes_kenmerk_volgnummer,
bes_kenmerk_default,
bes_kenmerk_verwijder,
@@ -18577,7 +18571,6 @@ BEGIN
rec.kenmerk_type,
fac.safe_to_number (rec.kenmerk_verplicht),
fac.safe_to_number (rec.kenmerk_groep),
fac.safe_to_number (rec.kenmerk_rolcode),
fac.safe_to_number (rec.kenmerk_volgnummer),
rec.kenmerk_default,
TO_DATE (rec.kenmerk_verwijder, 'YYYY-MM-DD HH24:MI:SS'),
@@ -18604,7 +18597,6 @@ BEGIN
bes_kenmerk_type = rec.kenmerk_type,
bes_kenmerk_verplicht = fac.safe_to_number (rec.kenmerk_verplicht),
bes_kenmerk_groep = fac.safe_to_number (rec.kenmerk_groep),
bes_kenmerk_rolcode = fac.safe_to_number (rec.kenmerk_rolcode),
bes_kenmerk_volgnummer = fac.safe_to_number (rec.kenmerk_volgnummer),
bes_kenmerk_default = rec.kenmerk_default,
bes_kenmerk_verwijder = TO_DATE (rec.kenmerk_verwijder, 'YYYY-MM-DD HH24:MI:SS'),
@@ -18694,7 +18686,6 @@ BEGIN
mld_kenmerk_niveau,
mld_kenmerk_verplicht,
mld_kenmerk_groep,
mld_kenmerk_rolcode,
mld_kenmerk_volgnummer,
mld_kenmerk_default,
mld_kenmerk_verwijder,
@@ -18716,7 +18707,6 @@ BEGIN
rec.kenmerk_niveau,
fac.safe_to_number (rec.kenmerk_verplicht),
fac.safe_to_number (rec.kenmerk_groep),
fac.safe_to_number (rec.kenmerk_rolcode),
fac.safe_to_number (rec.kenmerk_volgnummer),
rec.kenmerk_default,
TO_DATE (rec.kenmerk_verwijder, 'YYYY-MM-DD HH24:MI:SS'),
@@ -18746,7 +18736,6 @@ BEGIN
mld_kenmerk_niveau = rec.kenmerk_niveau,
mld_kenmerk_verplicht = fac.safe_to_number (rec.kenmerk_verplicht),
mld_kenmerk_groep = fac.safe_to_number (rec.kenmerk_groep),
mld_kenmerk_rolcode = fac.safe_to_number (rec.kenmerk_rolcode),
mld_kenmerk_volgnummer = fac.safe_to_number (rec.kenmerk_volgnummer),
mld_kenmerk_default = rec.kenmerk_default,
mld_kenmerk_verwijder = TO_DATE (rec.kenmerk_verwijder, 'YYYY-MM-DD HH24:MI:SS'),
@@ -18801,7 +18790,6 @@ BEGIN
res_kenmerk_niveau,
res_kenmerk_verplicht,
res_kenmerk_groep,
res_kenmerk_rolcode,
res_kenmerk_volgnummer,
res_kenmerk_default,
res_kenmerk_verwijder,
@@ -18819,7 +18807,6 @@ BEGIN
rec.kenmerk_niveau,
fac.safe_to_number (rec.kenmerk_verplicht),
fac.safe_to_number (rec.kenmerk_groep),
fac.safe_to_number (rec.kenmerk_rolcode),
fac.safe_to_number (rec.kenmerk_volgnummer),
rec.kenmerk_default,
TO_DATE (rec.kenmerk_verwijder, 'YYYY-MM-DD HH24:MI:SS'),
@@ -18845,7 +18832,6 @@ BEGIN
res_kenmerk_niveau = rec.kenmerk_niveau,
res_kenmerk_verplicht = fac.safe_to_number (rec.kenmerk_verplicht),
res_kenmerk_groep = fac.safe_to_number (rec.kenmerk_groep),
res_kenmerk_rolcode = fac.safe_to_number (rec.kenmerk_rolcode),
res_kenmerk_volgnummer = fac.safe_to_number (rec.kenmerk_volgnummer),
res_kenmerk_default = rec.kenmerk_default,
res_kenmerk_verwijder = TO_DATE (rec.kenmerk_verwijder, 'YYYY-MM-DD HH24:MI:SS'),
@@ -18901,7 +18887,6 @@ BEGIN
cnt_kenmerk_verplicht,
cnt_kenmerk_groep,
cnt_kenmerk_toonbaar,
cnt_kenmerk_rolcode,
cnt_kenmerk_volgnummer,
cnt_kenmerk_uniek,
cnt_kenmerk_verwijder,
@@ -18919,7 +18904,6 @@ BEGIN
fac.safe_to_number (rec.kenmerk_verplicht),
fac.safe_to_number (rec.kenmerk_groep),
fac.safe_to_number (rec.kenmerk_toonbaar),
fac.safe_to_number (rec.kenmerk_rolcode),
fac.safe_to_number (rec.kenmerk_volgnummer),
fac.safe_to_number (rec.kenmerk_uniek),
TO_DATE (rec.kenmerk_verwijder, 'YYYY-MM-DD HH24:MI:SS'),
@@ -18945,7 +18929,6 @@ BEGIN
cnt_kenmerk_verplicht = fac.safe_to_number (rec.kenmerk_verplicht),
cnt_kenmerk_groep = fac.safe_to_number (rec.kenmerk_groep),
cnt_kenmerk_toonbaar = fac.safe_to_number (rec.kenmerk_toonbaar),
cnt_kenmerk_rolcode = fac.safe_to_number (rec.kenmerk_rolcode),
cnt_kenmerk_volgnummer = fac.safe_to_number (rec.kenmerk_volgnummer),
cnt_kenmerk_uniek = fac.safe_to_number (rec.kenmerk_uniek),
cnt_kenmerk_verwijder = TO_DATE (rec.kenmerk_verwijder, 'YYYY-MM-DD HH24:MI:SS'),
@@ -19044,7 +19027,6 @@ BEGIN
ins_kenmerk_bewerkniveau,
ins_kenmerk_verplicht,
ins_kenmerk_groep,
ins_kenmerk_rolcode,
ins_kenmerk_volgnummer,
ins_kenmerk_default,
ins_kenmerk_verwijder,
@@ -19065,7 +19047,6 @@ BEGIN
rec.kenmerk_type,
fac.safe_to_number (rec.kenmerk_verplicht),
fac.safe_to_number (rec.kenmerk_groep),
fac.safe_to_number (rec.kenmerk_rolcode),
fac.safe_to_number (rec.kenmerk_volgnummer),
rec.kenmerk_default,
TO_DATE (rec.kenmerk_verwijder, 'YYYY-MM-DD HH24:MI:SS'),
@@ -19094,7 +19075,6 @@ BEGIN
ins_kenmerk_bewerkniveau = rec.kenmerk_type,
ins_kenmerk_verplicht = fac.safe_to_number (rec.kenmerk_verplicht),
ins_kenmerk_groep = fac.safe_to_number (rec.kenmerk_groep),
ins_kenmerk_rolcode = fac.safe_to_number (rec.kenmerk_rolcode),
ins_kenmerk_volgnummer = fac.safe_to_number (rec.kenmerk_volgnummer),
ins_kenmerk_default = rec.kenmerk_default,
ins_kenmerk_verwijder = TO_DATE (rec.kenmerk_verwijder, 'YYYY-MM-DD HH24:MI:SS'),
@@ -19137,7 +19117,6 @@ BEGIN
fin_kenmerk_dimensie,
fin_kenmerk_type,
fin_kenmerk_verplicht,
fin_kenmerk_rolcode,
fin_kenmerk_volgnr,
fin_kenmerk_groep,
fin_kenmerk_default,
@@ -19160,7 +19139,6 @@ BEGIN
rec.srtkenmerk_dimensie,
rec.kenmerk_type,
fac.safe_to_number (rec.kenmerk_verplicht),
fac.safe_to_number (rec.kenmerk_rolcode),
fac.safe_to_number (rec.kenmerk_volgnummer),
fac.safe_to_number (rec.kenmerk_groep),
rec.kenmerk_default,
@@ -19191,7 +19169,6 @@ BEGIN
fin_kenmerk_type = rec.kenmerk_type,
fin_kenmerk_verplicht = fac.safe_to_number (rec.kenmerk_verplicht),
fin_kenmerk_groep = fac.safe_to_number (rec.kenmerk_groep),
fin_kenmerk_rolcode = fac.safe_to_number (rec.kenmerk_rolcode),
fin_kenmerk_volgnr = fac.safe_to_number (rec.kenmerk_volgnummer),
fin_kenmerk_default = rec.kenmerk_default,
fin_kenmerk_verwijder = TO_DATE (rec.kenmerk_verwijder, 'YYYY-MM-DD HH24:MI:SS'),
@@ -20429,37 +20406,34 @@ AS
, fac_imp_csv_col24 TERMIJNBEDRAG
, fac_imp_csv_col25 UURTARIEF
, fac_imp_csv_col26 KORTING
, fac_imp_csv_col27 LOCATIECODE
, fac_imp_csv_col28 TERREINCODE
, fac_imp_csv_col29 GEBOUWCODE
, fac_imp_csv_col30 VERDIEPINGCODE
, fac_imp_csv_col31 RUIMTECODE
, fac_imp_csv_col32 VERLENGEN
, fac_imp_csv_col33 flex_01
, fac_imp_csv_col34 flex_02
, fac_imp_csv_col35 flex_03
, fac_imp_csv_col36 flex_04
, fac_imp_csv_col37 flex_05
, fac_imp_csv_col38 flex_06
, fac_imp_csv_col39 flex_07
, fac_imp_csv_col40 flex_08
, fac_imp_csv_col41 flex_09
, fac_imp_csv_col42 flex_10
, fac_imp_csv_col43 flex_11
, fac_imp_csv_col44 flex_12
, fac_imp_csv_col45 flex_13
, fac_imp_csv_col46 flex_14
, fac_imp_csv_col47 flex_15
, fac_imp_csv_col48 flex_16
, fac_imp_csv_col49 flex_17
, fac_imp_csv_col50 flex_18
, fac_imp_csv_col51 flex_19
, fac_imp_csv_col52 flex_20
, fac_imp_csv_col53 flex_21
, fac_imp_csv_col54 flex_22
, fac_imp_csv_col55 flex_23
, fac_imp_csv_col56 flex_24
, fac_imp_csv_col57 flex_25
, fac_imp_csv_col27 SCOPETYPE
, fac_imp_csv_col28 LOCATIEGEBOUW_CODE
, fac_imp_csv_col29 VERLENGEN
, fac_imp_csv_col30 flex_01
, fac_imp_csv_col31 flex_02
, fac_imp_csv_col32 flex_03
, fac_imp_csv_col33 flex_04
, fac_imp_csv_col34 flex_05
, fac_imp_csv_col35 flex_06
, fac_imp_csv_col36 flex_07
, fac_imp_csv_col37 flex_08
, fac_imp_csv_col38 flex_09
, fac_imp_csv_col39 flex_10
, fac_imp_csv_col40 flex_11
, fac_imp_csv_col41 flex_12
, fac_imp_csv_col42 flex_13
, fac_imp_csv_col43 flex_14
, fac_imp_csv_col44 flex_15
, fac_imp_csv_col45 flex_16
, fac_imp_csv_col46 flex_17
, fac_imp_csv_col47 flex_18
, fac_imp_csv_col48 flex_19
, fac_imp_csv_col49 flex_20
, fac_imp_csv_col50 flex_21
, fac_imp_csv_col51 flex_22
, fac_imp_csv_col52 flex_23
, fac_imp_csv_col53 flex_24
, fac_imp_csv_col54 flex_25
FROM fac_imp_csv
WHERE fac_imp_csv_index > 1
AND fac_import_key = p_import_key;
@@ -20502,11 +20476,8 @@ AS
v_bedrag_termijn cnt_contract.cnt_contract_termijnkosten%TYPE; --NUMBER(11,2)
v_uurtarief cnt_contract.cnt_contract_uurloon%TYPE; --NUMBER(6,2)
v_korting cnt_contract.cnt_contract_korting%TYPE; --NUMBER(5,2)
v_locatiecode alg_locatie.alg_locatie_code%TYPE; --VARCHAR2(10)
v_terreincode alg_terreinsector.alg_terreinsector_code%TYPE; --VARCHAR2(12)
v_gebouwcode alg_gebouw.alg_gebouw_code%TYPE; --VARCHAR2(12)
v_verdiepingcode alg_verdieping.alg_verdieping_volgnr%TYPE; --NUMBER(3)
v_ruimtecode alg_ruimte.alg_ruimte_nr%TYPE; --VARCHAR2(20)
v_scope_type cnt_contract_plaats.cnt_alg_plaats_code%TYPE; --VARCHAR2(1) --> cnt_contract_plaats.cnt_alg_plaats_code
v_gebouwcode alg_gebouw.alg_gebouw_code%TYPE; --VARCHAR2(12) --> cnt_contract_plaats.cnt_alg_plaats_key
v_verlengen cnt_contract.cnt_contract_verlenging%TYPE; --NUMBER(1)
v_cnt_kenmerk_01 fac_imp_cnt.flex1%TYPE; --VARCHAR2(255);
@@ -20540,9 +20511,7 @@ AS
|| 'EIGENAAR_EMAIL;BEHEERDER_EMAIL;OPMERKING;INGANGSDATUM;RAPPELDATUM;'
|| 'OPZEGDATUM;EINDDATUM;SOORT_CONTACTPARTIJ;BEDRIJFSNAAM;CONTACTNAAM;'
|| 'KOSTENPLAATSCODE;KOSTENSOORTCODE;CONTRACTBEDRAG;TERMIJNBEDRAG;UURTARIEF;'
|| 'KORTING;LOCATIECODE;TERREINCODE;GEBOUWCODE;VERDIEPINGCODE;'
|| 'RUIMTECODE;VERLENGEN';
|| 'KORTING;SCOPETYPE;LOCATIEGEBOUW_CODE;VERLENGEN';
v_header_csv VARCHAR2(500);
v_flex_naam_01 fac_imp_cnt.flex1%TYPE;
v_flex_naam_02 fac_imp_cnt.flex2%TYPE;
@@ -20652,7 +20621,7 @@ AS
v_flexval VARCHAR2(200);
v_flx VARCHAR2(255);
BEGIN
v_flx := bepaal_kenmerk(p_flex_naam);
v_flx := bepaal_kenmerk(p_flex_waarde);
IF v_flx IS NULL
THEN
@@ -20679,14 +20648,13 @@ BEGIN
fac_imp_csv_col11 ||';'|| fac_imp_csv_col12 ||';'|| fac_imp_csv_col13 ||';'|| fac_imp_csv_col14 ||';'|| fac_imp_csv_col15 ||';'||
fac_imp_csv_col16 ||';'|| fac_imp_csv_col17 ||';'|| fac_imp_csv_col18 ||';'|| fac_imp_csv_col19 ||';'|| fac_imp_csv_col20 ||';'||
fac_imp_csv_col21 ||';'|| fac_imp_csv_col22 ||';'|| fac_imp_csv_col23 ||';'|| fac_imp_csv_col24 ||';'|| fac_imp_csv_col25 ||';'||
fac_imp_csv_col26 ||';'|| fac_imp_csv_col27 ||';'|| fac_imp_csv_col28 ||';'|| fac_imp_csv_col29 ||';'|| fac_imp_csv_col30 ||';'||
fac_imp_csv_col31 ||';'|| fac_imp_csv_col32
fac_imp_csv_col26 ||';'|| fac_imp_csv_col27 ||';'|| fac_imp_csv_col28 ||';'|| fac_imp_csv_col29
), ' ', '')
, fac_imp_csv_col33, fac_imp_csv_col34, fac_imp_csv_col35, fac_imp_csv_col36, fac_imp_csv_col37
, fac_imp_csv_col38, fac_imp_csv_col39, fac_imp_csv_col40, fac_imp_csv_col41, fac_imp_csv_col42
, fac_imp_csv_col43, fac_imp_csv_col44, fac_imp_csv_col45, fac_imp_csv_col46, fac_imp_csv_col47
, fac_imp_csv_col48, fac_imp_csv_col49, fac_imp_csv_col50, fac_imp_csv_col51, fac_imp_csv_col52
, fac_imp_csv_col53, fac_imp_csv_col54, fac_imp_csv_col55, fac_imp_csv_col56, fac_imp_csv_col57
, fac_imp_csv_col30, fac_imp_csv_col31, fac_imp_csv_col32, fac_imp_csv_col33, fac_imp_csv_col34
, fac_imp_csv_col35, fac_imp_csv_col36, fac_imp_csv_col37, fac_imp_csv_col38, fac_imp_csv_col39
, fac_imp_csv_col40, fac_imp_csv_col41, fac_imp_csv_col42, fac_imp_csv_col43, fac_imp_csv_col44
, fac_imp_csv_col45, fac_imp_csv_col46, fac_imp_csv_col47, fac_imp_csv_col48, fac_imp_csv_col49
, fac_imp_csv_col50, fac_imp_csv_col51, fac_imp_csv_col52, fac_imp_csv_col53, fac_imp_csv_col54
INTO v_header_csv -- standaard header
, v_flex_naam_01, v_flex_naam_02, v_flex_naam_03, v_flex_naam_04, v_flex_naam_05 -- kenmerk kolom namen
, v_flex_naam_06, v_flex_naam_07, v_flex_naam_08, v_flex_naam_09, v_flex_naam_10
@@ -21066,54 +21034,52 @@ BEGIN
);
END IF;
-- CSV-kolom AA: Controle Locatiecode
v_locatiecode := SUBSTR(TRIM(rec.locatiecode), 1, 10);
IF LENGTH(TRIM(rec.locatiecode)) > 10
-- CSV-kolom AA: Controle ScopeType
IF TRIM(rec.locatiegebouw_code) IS NULL
THEN
fac.imp_writelog( p_import_key, 'W'
, v_aanduiding || 'Locatiecode - Aangepast ivm lengte groter dan 10 voor locatie'
, rec.fac_imp_csv_index || ' - ' || rec.locatiecode || ' wordt: ' || v_locatiecode
);
END IF;
-- CSV-kolom AB: Controle Terreincode
v_terreincode := SUBSTR(TRIM(rec.terreincode), 1, 12);
IF LENGTH(TRIM(rec.terreincode)) > 12
THEN
fac.imp_writelog( p_import_key, 'W'
, v_aanduiding || 'Terreincode - Aangepast ivm lengte groter dan 12 voor terrein'
, rec.fac_imp_csv_index || ' - ' || rec.terreincode || ' wordt: ' || v_terreincode
);
END IF;
-- CSV-kolom AC: Controle Gebouwcode
v_gebouwcode := SUBSTR(TRIM(rec.gebouwcode), 1, 12);
IF LENGTH(TRIM(rec.gebouwcode)) > 12
THEN
fac.imp_writelog( p_import_key, 'W'
, v_aanduiding || 'Gebouwcode - Aangepast ivm lengte groter dan 12 voor gebouw'
, rec.fac_imp_csv_index || ' - ' || rec.gebouwcode || ' wordt: ' || v_gebouwcode
);
END IF;
-- CSV-kolom AD: Controle Verdiepingcode
BEGIN
v_verdiepingcode := fac.safe_to_number(rec.verdiepingcode);
EXCEPTION
WHEN OTHERS THEN
v_scope_type := NULL;
ELSE
v_scope_type := SUBSTR(TRIM(rec.scopetype), 1, 1);
IF v_scope_type IS NULL OR v_scope_type NOT IN ('L', 'G')
THEN
fac.imp_writelog( p_import_key, 'W'
, v_aanduiding || 'Verdiepingcode - Aangepast ivm lengte groter dan 3 voor verdieping'
, rec.fac_imp_csv_index || ' - ' || rec.verdiepingcode || ' wordt: ' || v_verdiepingcode
, v_aanduiding || 'ScopeType - Is niet aanwezig of ongeldig'
, rec.fac_imp_csv_index || ' - ' || v_scope_type || ', Regel wordt overgeslagen'
);
END;
-- CSV-kolom AE: Controle Ruimtecode
v_ruimtecode := SUBSTR(TRIM(rec.ruimtecode), 1, 20);
IF LENGTH(TRIM(rec.ruimtecode)) > 20
THEN
fac.imp_writelog( p_import_key, 'W'
, v_aanduiding || 'Ruimtecode - Aangepast ivm lengte groter dan 20 voor ruimte'
, rec.fac_imp_csv_index || ' - ' || rec.ruimtecode || ' wordt: ' || v_ruimtecode
);
v_ongeldig := 1;
END IF;
END IF;
-- CSV-kolom AF: Controle op geldige waarde voor verlengen
-- CSV-kolom AB: Controle Locatiegebouw_code
IF v_scope_type IS NOT NULL
THEN
IF v_scope_type = 'L'
THEN
v_gebouwcode := SUBSTR(TRIM(rec.locatiegebouw_code), 1, 10);
IF LENGTH(TRIM(rec.locatiegebouw_code)) > 10
THEN
fac.imp_writelog( p_import_key, 'W'
, v_aanduiding || 'Locatiegebouw_code - Aangepast ivm lengte groter dan 10 voor locatie'
, rec.fac_imp_csv_index || ' - ' || rec.locatiegebouw_code || ' wordt: ' || v_gebouwcode
);
END IF;
END IF;
IF v_scope_type = 'G'
THEN
v_gebouwcode := SUBSTR(TRIM(rec.locatiegebouw_code), 1, 12);
IF LENGTH(TRIM(rec.locatiegebouw_code)) > 12
THEN
fac.imp_writelog( p_import_key, 'W'
, v_aanduiding || 'Locatiegebouw_code - Aangepast ivm lengte groter dan 12 voor gebouw'
, rec.fac_imp_csv_index || ' - ' || rec.locatiegebouw_code || ' wordt: ' || v_gebouwcode
);
END IF;
END IF;
ELSE
v_gebouwcode := NULL;
END IF;
-- CSV-kolom AC: Controle op geldige waarde voor verlengen
v_verlengen := fac.safe_to_number(rec.verlengen);
IF v_verlengen NOT IN (0,1,2,3,5)
THEN
@@ -21189,11 +21155,8 @@ BEGIN
, bedrag_termijn
, uurtarief
, korting
, locatiecode
, terreincode
, scope
, gebouwcode
, verdiepingcode
, ruimtecode
, verlengen
, flex1, flex2, flex3, flex4, flex5
, flex6, flex7, flex8, flex9, flex10
@@ -21227,11 +21190,8 @@ BEGIN
, v_bedrag_termijn
, v_uurtarief
, v_korting
, v_locatiecode
, v_terreincode
, v_scope_type
, v_gebouwcode
, v_verdiepingcode
, v_ruimtecode
, v_verlengen
, v_cnt_kenmerk_01, v_cnt_kenmerk_02, v_cnt_kenmerk_03, v_cnt_kenmerk_04, v_cnt_kenmerk_05
, v_cnt_kenmerk_06, v_cnt_kenmerk_07, v_cnt_kenmerk_08, v_cnt_kenmerk_09, v_cnt_kenmerk_10
@@ -21317,11 +21277,8 @@ AS
, i.bedrag_termijn
, i.uurtarief
, i.korting
, i.locatiecode
, i.terreincode
, i.scope
, i.gebouwcode
, i.verdiepingcode
, i.ruimtecode
, i.verlengen
, disc.ins_discipline_key
, mntl.cnt_contract_key mantel_key
@@ -21417,11 +21374,10 @@ AS
, a.bedrag_termijn
, a.uurtarief
, a.korting
, a.locatiecode
, a.terreincode
, a.gebouwcode
, a.verdiepingcode
, a.ruimtecode
, a.scope locgeb_scope
, a.gebouwcode locgeb_code
, gg.plaats_scope
, gg.plaats_key
, a.verlengen
, a.flex1 cnt_kenmerkwaarde1
, a.flex2 cnt_kenmerkwaarde2
@@ -21451,9 +21407,21 @@ AS
FROM imp_cnt a
, cnt_disc_params dp
, prs_contactpersoon cp
, (SELECT 'L' plaats_scope
, alg_locatie_key plaats_key
, alg_locatie_code plaats_code
FROM alg_v_aanweziglocatie
UNION
SELECT 'G'
, alg_gebouw_key
, alg_gebouw_code
FROM alg_v_aanweziggebouw
) gg
WHERE a.ins_discipline_key = dp.cnt_ins_discipline_key
AND UPPER(a.contact_naam) = UPPER(TRIM(cp.prs_contactpersoon_email(+)))
AND a.prs_bedrijf_key = cp.prs_bedrijf_key(+);
AND a.prs_bedrijf_key = cp.prs_bedrijf_key(+)
AND a.scope = gg.plaats_scope(+)
AND a.gebouwcode = gg.plaats_code(+);
-- Constanten
c_contract_type NUMBER := 5; -- Leverancier (met scope)
@@ -21480,9 +21448,7 @@ AS
v_count_cntnew NUMBER;
v_count_cntupd NUMBER;
v_srtnoti_code VARCHAR2(6);
v_scope_code VARCHAR2(1);
v_scope_key NUMBER(10);
v_scope_err VARCHAR2(100);
v_fulltext varchar2(2000);
-- SUBPROC
PROCEDURE bepaal_termijn( p_start IN DATE
@@ -21734,92 +21700,6 @@ AS
);
END; -- SUBPROC upsert_cntkenmerk
-- SUBPROC
PROCEDURE onroerendgoed_to_scope( loc IN VARCHAR2 DEFAULT NULL
, ter IN VARCHAR2 DEFAULT NULL
, bld IN VARCHAR2 DEFAULT NULL
, flr IN NUMBER DEFAULT NULL
, room IN VARCHAR2 DEFAULT NULL
, scope_typ OUT VARCHAR2
, scope_key OUT NUMBER
, scope_err OUT VARCHAR2
)
AS
BEGIN
IF loc IS NOT NULL
THEN
BEGIN
SELECT alg_locatie_key
INTO scope_key
FROM alg_v_aanweziglocatie
WHERE alg_locatie_code = loc;
scope_typ := 'L';
IF ter IS NOT NULL
THEN
BEGIN
SELECT alg_terreinsector_key
INTO scope_key
FROM alg_v_aanwezigterreinsector
WHERE alg_locatie_key = scope_key
AND alg_terreinsector_code = ter;
scope_typ := 'T';
EXCEPTION
WHEN NO_DATA_FOUND THEN
scope_err := 'Onbekende terreinsector: ' || ter || ' in ' || loc;
END;
ELSE
BEGIN
IF bld IS NOT NULL
THEN
BEGIN
SELECT alg_gebouw_key
INTO scope_key
FROM alg_v_aanweziggebouw
WHERE alg_locatie_key = scope_key
AND alg_gebouw_code = bld;
scope_typ := 'G';
IF flr IS NOT NULL
THEN
BEGIN
SELECT alg_verdieping_key
INTO scope_key
FROM alg_v_aanwezigverdieping
WHERE alg_gebouw_key = scope_key
AND alg_verdieping_volgnr = flr;
scope_typ := 'V';
IF room IS NOT NULL
THEN
BEGIN
SELECT alg_ruimte_key
INTO scope_key
FROM alg_v_aanwezigruimte
WHERE alg_verdieping_key = scope_key
AND alg_ruimte_nr = room;
scope_typ := 'R';
EXCEPTION
WHEN NO_DATA_FOUND THEN
scope_err := 'Onbekende ruimte: ' || room || ' in ' || loc ||'-'|| bld ||'-'|| TO_CHAR(flr);
END;
END IF;
EXCEPTION
WHEN NO_DATA_FOUND THEN
scope_err := 'Onbekende verdieping: ' || TO_CHAR(flr) || ' in ' || loc ||'-'|| bld;
END;
END IF;
EXCEPTION
WHEN NO_DATA_FOUND THEN
scope_err := 'Onbekend gebouw: ' || bld || ' in ' || loc;
END;
END IF;
END;
END IF;
EXCEPTION
WHEN NO_DATA_FOUND THEN
scope_err := 'Onbekende locatie: ' || loc;
END;
END IF;
END; -- SUBPROC onroerendgoed_to_scope
BEGIN
v_count_tot := 0;
v_count_cntnew := 0;
@@ -21930,15 +21810,13 @@ BEGIN
v_geldig := 0;
END IF;
onroerendgoed_to_scope( rec.locatiecode, rec.terreincode, rec.gebouwcode, rec.verdiepingcode, rec.ruimtecode
, v_scope_code, v_scope_key, v_scope_err);
-- Locatie/gebouw (als meegegeven): moet bestaan en ook passen bij de
-- contractsoort (type_key 3=Ondersteuning of 5=Leverancier).
IF (v_scope_code IS NOT NULL)
IF (rec.locgeb_scope IS NOT NULL)
THEN
IF v_scope_err IS NOT NULL
THEN
v_errormsg := 'Fout bij bepalen scope: ' || v_scope_err;
v_errormsg := 'Fout bij bepalen locatie/gebouw: ' || rec.locgeb_scope ||'|'|| rec.locgeb_code;
IF (rec.plaats_key IS NULL)
THEN -- Geen locatie/gebouw gevonden.
fac.imp_writelog( p_import_key, 'W'
, v_aanduiding || v_errormsg
, 'Contract/scope wordt overgeslagen'
@@ -22257,14 +22135,14 @@ BEGIN
-- Zo niet, dan toevoegen (bij INSERT altijd toevoegen).
-- NB. Op deze manier kan een contract meerdere keren voorkomen in
-- het importbestand, met verschillende gebouwen.
IF (v_scope_code IS NOT NULL)
IF (rec.plaats_key IS NOT NULL)
THEN -- Komt deze scope al voor?
SELECT COUNT(*)
INTO v_count
FROM cnt_contract_plaats
WHERE cnt_contract_key = v_contract_key
AND cnt_alg_plaats_key = v_scope_key
AND cnt_alg_plaats_code = v_scope_code;
AND cnt_alg_plaats_key = rec.plaats_key
AND cnt_alg_plaats_code = rec.plaats_scope;
IF (v_count = 0) -- Scope komt nog niet voor, dus toevoegen.
THEN
@@ -22275,8 +22153,8 @@ BEGIN
, cnt_alg_plaats_code
)
VALUES ( v_contract_key
, v_scope_key
, v_scope_code
, rec.plaats_key
, rec.plaats_scope
);
END IF;
END IF;

View File

@@ -91,53 +91,49 @@
o_ktable_kshowexpr OUT VARCHAR2
)
AS
l_module VARCHAR2 (4);
l_module VARCHAR2 (3);
BEGIN
l_module := pmodule;
o_kvtable_kniveau := NULL;
CASE
WHEN pmodule = 'ALG'
THEN o_kvtable := 'alg_onrgoedkenmerk';
THEN o_kvtable := 'alg_onrgoedkenmerk';
o_kvtable_refkey := 'alg_onrgoed_key';
o_kvtable_kniveau := 'alg_onrgoed_niveau';
WHEN pmodule = 'BEZ'
THEN o_kvtable := 'bez_kenmerkwaarde';
THEN o_kvtable := 'bez_kenmerkwaarde';
o_kvtable_refkey := 'bez_bezoekers_key';
WHEN pmodule = 'BES'
THEN o_kvtable := 'bes_kenmerkbestell';
THEN o_kvtable := 'bes_kenmerkbestell';
o_kvtable_refkey := 'bes_bestelling_key';
WHEN pmodule = 'CNT'
THEN o_kvtable := 'cnt_kenmerkcontract';
THEN o_kvtable := 'cnt_kenmerkcontract';
o_kvtable_refkey := 'cnt_contract_key';
WHEN pmodule = 'FAQ'
THEN o_kvtable := 'faq_kenmerkwaarde';
THEN o_kvtable := 'faq_kenmerkwaarde';
o_kvtable_refkey := 'fac_faq_key';
WHEN pmodule = 'FIN'
THEN o_kvtable := 'fin_kenmerkfactuur';
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';
THEN o_kvtable := 'ins_kenmerkdeel';
o_kvtable_refkey := 'ins_deel_key';
WHEN pmodule = 'INS'
THEN o_kvtable := 'ins_kenmerkdeel';
THEN o_kvtable := 'ins_kenmerkdeel';
o_kvtable_refkey := 'ins_deel_key';
WHEN pmodule = 'MLD'
THEN o_kvtable := 'mld_kenmerkmelding';
THEN o_kvtable := 'mld_kenmerkmelding';
o_kvtable_refkey := 'mld_melding_key';
WHEN pmodule = 'OPD'
THEN o_kvtable := 'mld_kenmerkopdr';
THEN o_kvtable := 'mld_kenmerkopdr';
o_kvtable_refkey := 'mld_opdr_key';
l_module := 'MLD';
WHEN pmodule = 'PRS'
THEN o_kvtable := 'prs_kenmerklink';
THEN o_kvtable := 'prs_kenmerklink';
o_kvtable_refkey := 'prs_link_key';
o_kvtable_kniveau := 'prs_kenmerklink_niveau';
WHEN pmodule = 'RES'
THEN o_kvtable := 'res_kenmerkwaarde';
THEN o_kvtable := 'res_kenmerkwaarde';
o_kvtable_refkey := 'res_rsv_ruimte_key';
END CASE;
IF l_module = 'RES'
@@ -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;

View File

@@ -33,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
@@ -59,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;
@@ -70,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');
@@ -89,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;
@@ -102,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');
@@ -117,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;
@@ -145,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;

View File

@@ -588,14 +588,14 @@ AS
-- * createxmltagvalueattributes12
-- * function to return a complex XML node including up to 12 attributes
-- * createxmltagvalueattributes9
-- * function to return a complex XML node including up to 9 attributes
-- * use the NULL value in the attrnameX argument for empty attributes
-- * used for Kenmerk-nodes; if the fac_kenmerkdomein_key from p_kmdkey
-- * defines a fac_kenmerkdomein_xmlnode the corresponding subnode
-- * is added on the highest level only
-- * Per 5.4.3 empty nodes are skipped here too, unless the value is '#donotsuppress#'
PROCEDURE createxmltagvalueattributes12 (p_tag IN VARCHAR2,
PROCEDURE createxmltagvalueattributes9 (p_tag IN VARCHAR2,
p_attrname1 IN VARCHAR2,
p_attrvalue1 IN VARCHAR2,
p_attrname2 IN VARCHAR2,
@@ -614,12 +614,6 @@ AS
p_attrvalue8 IN VARCHAR2,
p_attrname9 IN VARCHAR2,
p_attrvalue9 IN VARCHAR2,
p_attrname10 IN VARCHAR2,
p_attrvalue10 IN VARCHAR2,
p_attrname11 IN VARCHAR2,
p_attrvalue11 IN VARCHAR2,
p_attrname12 IN VARCHAR2,
p_attrvalue12 IN VARCHAR2,
p_kmdkey IN VARCHAR2,
p_value IN VARCHAR2,
p_mld_kbm_key IN NUMBER)
@@ -644,9 +638,6 @@ AS
v_return := v_return || attrval(p_attrname7, p_attrvalue7);
v_return := v_return || attrval(p_attrname8, p_attrvalue8);
v_return := v_return || attrval(p_attrname9, p_attrvalue9);
v_return := v_return || attrval(p_attrname10, p_attrvalue10);
v_return := v_return || attrval(p_attrname11, p_attrvalue11);
v_return := v_return || attrval(p_attrname12, p_attrvalue12);
IF p_kmdkey IS NOT NULL
THEN
@@ -738,49 +729,6 @@ AS
addvarchartoclob (v_return);
END;
-- Compatible function for 9 attributes
PROCEDURE createxmltagvalueattributes9 (p_tag IN VARCHAR2,
p_attrname1 IN VARCHAR2,
p_attrvalue1 IN VARCHAR2,
p_attrname2 IN VARCHAR2,
p_attrvalue2 IN VARCHAR2,
p_attrname3 IN VARCHAR2,
p_attrvalue3 IN VARCHAR2,
p_attrname4 IN VARCHAR2,
p_attrvalue4 IN VARCHAR2,
p_attrname5 IN VARCHAR2,
p_attrvalue5 IN VARCHAR2,
p_attrname6 IN VARCHAR2,
p_attrvalue6 IN VARCHAR2,
p_attrname7 IN VARCHAR2,
p_attrvalue7 IN VARCHAR2,
p_attrname8 IN VARCHAR2,
p_attrvalue8 IN VARCHAR2,
p_attrname9 IN VARCHAR2,
p_attrvalue9 IN VARCHAR2,
p_kmdkey IN VARCHAR2,
p_value IN VARCHAR2,
p_mld_kbm_key IN NUMBER)
AS
BEGIN
createxmltagvalueattributes12 (p_tag,
p_attrname1, p_attrvalue1,
p_attrname2, p_attrvalue2,
p_attrname3, p_attrvalue3,
p_attrname4, p_attrvalue4,
p_attrname5, p_attrvalue5,
p_attrname6, p_attrvalue6,
p_attrname7, p_attrvalue7,
p_attrname8, p_attrvalue8,
p_attrname9, p_attrvalue9,
NULL, NULL,
NULL, NULL,
NULL, NULL,
p_kmdkey,
p_value,
p_mld_kbm_key);
END;
-- Compatible function for 5 attributes
PROCEDURE createxmltagvalueattributes (p_tag IN VARCHAR2,
p_attrname1 IN VARCHAR2,
@@ -797,7 +745,7 @@ AS
p_value IN VARCHAR2)
AS
BEGIN
createxmltagvalueattributes12 (p_tag,
createxmltagvalueattributes9 (p_tag,
p_attrname1, p_attrvalue1,
p_attrname2, p_attrvalue2,
p_attrname3, p_attrvalue3,
@@ -807,9 +755,6 @@ AS
NULL, NULL,
NULL, NULL,
NULL, NULL,
NULL, NULL,
NULL, NULL,
NULL, NULL,
p_kmdkey,
p_value,
NULL);
@@ -1694,7 +1639,6 @@ AS
k.prs_kenmerk_nmax,
k.prs_kenmerk_default,
NVL (k.prs_kenmerk_volgnr, 0) volgnummer,
k.prs_kenmerk_rolcode rolcode,
lcl.x ('prs_kenmerk_dimensie',
k.prs_kenmerk_key,
prs_kenmerk_dimensie)
@@ -1739,7 +1683,7 @@ AS
'volgnummer', rec1.volgnummer,
'key', rec1.prs_kenmerk_key,
'dimensie', rec1.dimensie,
'rolcode', rec1.rolcode,
NULL, NULL,
NULL, NULL,
NULL, NULL,
rec1.fac_kenmerkdomein_key,
@@ -1916,7 +1860,6 @@ AS
createxmltagvalue ('username', rec.prs_bedrijfadres_username);
createxmltagvalue ('password', rec.prs_bedrijfadres_password);
END IF;
create_prs_perslid_node(rec.prs_bedrijfadres_lockuser_key, 'lockeduser', TRUE);
createclosetag ('bedrijfadres');
END LOOP;
END IF;
@@ -2994,8 +2937,7 @@ AS
k.alg_kenmerk_nmax,
k.alg_kenmerk_default,
NVL (k.alg_kenmerk_volgnr, 0) volgnummer,
k.alg_kenmerk_rolcode rolcode,
lcl.x ('alg_kenmerk_dimensie',
lcl.x ('alg_kenmerk_dimensie',
k.alg_kenmerk_key,
alg_kenmerk_dimensie)
dimensie,
@@ -3058,7 +3000,7 @@ AS
'volgnummer', rec1.volgnummer,
'key', rec1.alg_kenmerk_key,
'dimensie', rec1.dimensie,
'rolcode', rec1.rolcode,
NULL, NULL,
NULL, NULL,
NULL, NULL,
rec1.fac_kenmerkdomein_key,
@@ -3993,7 +3935,6 @@ AS
s.ins_srtkenmerk_nmax,
k.ins_kenmerk_default,
NVL (k.ins_kenmerk_volgnummer, 0) volgnummer,
k.ins_kenmerk_rolcode rolcode,
lcl.x ('ins_srtkenmerk_dimensie',
s.ins_srtkenmerk_key,
ins_srtkenmerk_dimensie)
@@ -4061,7 +4002,7 @@ AS
'volgnummer', rec1.volgnummer,
'key', rec1.ins_kenmerk_key,
'aanmaak', TO_CHAR (v_kenmerk_aanmaak, 'YYYYMMDD HH24:MI'),
'rolcode', rec1.rolcode,
NULL, NULL,
NULL, NULL,
rec1.fac_kenmerkdomein_key,
v_kenmerk_waarde,
@@ -4233,7 +4174,6 @@ AS
s.ins_srtkenmerk_nmax,
k.ins_kenmerk_default,
NVL (k.ins_kenmerk_volgnummer, 0) volgnummer,
k.ins_kenmerk_rolcode rolcode,
lcl.x ('ins_srtkenmerk_dimensie', s.ins_srtkenmerk_key, ins_srtkenmerk_dimensie)
dimensie,
lcl.x ('ins_kenmerk_hint', k.ins_kenmerk_key, ins_kenmerk_hint) hint,
@@ -4285,7 +4225,7 @@ AS
'volgnummer', rec1.volgnummer,
'key', rec1.ins_kenmerk_key,
'aanmaak', TO_CHAR (v_kenmerk_aanmaak, 'YYYYMMDD HH24:MI'),
'rolcode', rec1.rolcode,
NULL, NULL,
NULL, NULL,
rec1.fac_kenmerkdomein_key,
v_kenmerk_waarde,
@@ -4647,7 +4587,6 @@ AS
k.mld_kenmerk_default,
k.mld_kenmerk_wissen,
NVL (k.mld_kenmerk_volgnummer, 0) volgnummer,
k.mld_kenmerk_rolcode rolcode,
lcl.x ('mld_srtkenmerk_dimensie',
s.mld_srtkenmerk_key,
mld_srtkenmerk_dimensie)
@@ -4699,7 +4638,7 @@ AS
rec1.mld_kenmerk_key,
'MLD');
createxmltagvalueattributes12('kenmerk',
createxmltagvalueattributes9('kenmerk',
'kenmerkcode', rec1.mld_kenmerk_code,
'srtkenmerkcode', rec1.mld_srtkenmerk_code,
'naam', rec1.mld_kenmerk_omschrijving,
@@ -4709,9 +4648,6 @@ AS
'dimensie', rec1.dimensie,
'systeem', rec1.mld_srtkenmerk_systeem,
'wissen', rec1.mld_kenmerk_wissen,
'rolcode', rec1.rolcode,
NULL, NULL,
NULL, NULL,
rec1.fac_kenmerkdomein_key,
v_kenmerk_waarde,
rec1.mld_kenmerkblokmelding_key
@@ -4781,7 +4717,6 @@ AS
s.mld_srtkenmerk_nmax,
k.mld_kenmerk_default,
NVL (k.mld_kenmerk_volgnummer, 0) volgnummer,
k.mld_kenmerk_rolcode rolcode,
lcl.x ('mld_srtkenmerk_dimensie',
s.mld_srtkenmerk_key,
mld_srtkenmerk_dimensie)
@@ -4832,7 +4767,7 @@ AS
'key', rec1.mld_kenmerk_key,
'dimensie', rec1.dimensie,
'systeem', rec1.mld_srtkenmerk_systeem,
'rolcode', rec1.rolcode,
NULL, NULL,
rec1.fac_kenmerkdomein_key,
v_kenmerk_waarde,
NULL
@@ -5823,7 +5758,6 @@ AS
v_tag_naam mld_melding_tag.mld_melding_tag_naam%TYPE;
v_tag_omschrijving mld_melding_tag.mld_melding_tag_oms%TYPE;
v_tag_datum_van mld_melding_tag.mld_melding_tag_datum_van%TYPE;
v_tag_datum_acc mld_melding_tag.mld_melding_tag_datum_acc%TYPE;
v_tag_datum_tot mld_melding_tag.mld_melding_tag_datum_tot%TYPE;
v_conceptstatus mld_melding.mld_melding_conceptstatus%TYPE;
l_isrootmelding NUMBER(1);
@@ -5928,7 +5862,6 @@ AS
mld_melding_tag_naam,
mld_melding_tag_oms,
mld_melding_tag_datum_van,
mld_melding_tag_datum_acc,
mld_melding_tag_datum_tot
INTO v_meldbron_nr,
v_datum,
@@ -5993,7 +5926,6 @@ AS
v_tag_naam,
v_tag_omschrijving,
v_tag_datum_van,
v_tag_datum_acc,
v_tag_datum_tot
FROM mld_melding m, mld_statuses s, mld_stdmelding stdm, mld_melding_tag mmt
WHERE m.mld_melding_status = s.mld_statuses_key
@@ -6072,7 +6004,6 @@ AS
createxmltagvalue ('tag_naam', v_tag_naam);
createxmltagvalue ('tag_omschrijving', v_tag_omschrijving);
mydatetochar ('tag_begindatum', v_tag_datum_van);
mydatetochar ('tag_accdatum', v_tag_datum_acc);
mydatetochar ('tag_einddatum', v_tag_datum_tot);
create_mld_kenmerken (p_key);
create_prs_kostenplaats_node (v_prs_kostenplaats_key, FALSE);
@@ -7026,7 +6957,6 @@ AS
s.bes_srtkenmerk_nmax,
k.bes_kenmerk_default,
NVL (k.bes_kenmerk_volgnummer, 0) volgnummer,
k.bes_kenmerk_rolcode rolcode,
lcl.x ('bes_srtkenmerk_dimensie',
s.bes_srtkenmerk_key,
bes_srtkenmerk_dimensie)
@@ -7086,7 +7016,7 @@ AS
'volgnummer', rec1.volgnummer,
'key', rec1.bes_kenmerk_key,
'dimensie', rec1.dimensie,
'rolcode', rec1.rolcode,
NULL, NULL,
NULL, NULL,
rec1.fac_kenmerkdomein_key,
v_kenmerk_waarde,
@@ -7117,7 +7047,6 @@ AS
s.bes_srtkenmerk_nmax,
k.bes_kenmerk_default,
NVL (k.bes_kenmerk_volgnummer, 0) volgnummer,
k.bes_kenmerk_rolcode rolcode,
lcl.x ('bes_srtkenmerk_dimensie',
s.bes_srtkenmerk_key,
bes_srtkenmerk_dimensie)
@@ -7166,7 +7095,7 @@ AS
'volgnummer', rec1.volgnummer,
'key', rec1.bes_kenmerk_key,
'dimensie', rec1.dimensie,
'rolcode', rec1.rolcode,
NULL, NULL,
NULL, NULL,
rec1.fac_kenmerkdomein_key,
v_kenmerk_waarde,
@@ -7250,7 +7179,6 @@ AS
s.ins_srtkenmerk_nmax,
k.ins_kenmerk_default,
NVL (k.ins_kenmerk_volgnummer, 0) volgnummer,
k.ins_kenmerk_rolcode rolcode,
lcl.x ('ins_srtkenmerk_dimensie',
s.ins_srtkenmerk_key,
ins_srtkenmerk_dimensie)
@@ -7316,7 +7244,7 @@ AS
'volgnummer', rec1.volgnummer,
'key', rec1.ins_kenmerk_key,
'aanmaak', TO_CHAR (v_kenmerk_aanmaak, 'YYYYMMDD HH24:MI'),
'rolcode', rec1.rolcode,
NULL, NULL,
NULL, NULL,
rec1.fac_kenmerkdomein_key,
v_kenmerk_waarde,
@@ -8139,7 +8067,6 @@ AS
k.bez_kenmerk_nmax,
k.bez_kenmerk_default,
NVL (k.bez_kenmerk_volgnr, 0) volgnummer,
k.bez_kenmerk_rolcode rolcode,
lcl.x ('bez_kenmerk_dimensie',
k.bez_kenmerk_key,
bez_kenmerk_dimensie)
@@ -8181,7 +8108,7 @@ AS
'key', rec1.bez_kenmerk_key,
'dimensie', rec1.dimensie,
'systeem', rec1.bez_kenmerk_systeem,
'rolcode', rec1.rolcode,
NULL, NULL,
NULL, NULL,
rec1.fac_kenmerkdomein_key,
v_kenmerk_waarde,
@@ -8479,7 +8406,6 @@ AS
s.res_srtkenmerk_nmax,
k.res_kenmerk_default,
NVL (k.res_kenmerk_volgnummer, 0) volgnummer,
k.res_kenmerk_rolcode rolcode,
lcl.x ('res_srtkenmerk_dimensie',
s.res_srtkenmerk_key,
res_srtkenmerk_dimensie)
@@ -8526,7 +8452,7 @@ AS
'volgnummer', rec1.volgnummer,
'key', rec1.res_kenmerk_key,
'dimensie', rec1.dimensie,
'rolcode', rec1.rolcode,
NULL, NULL,
NULL, NULL,
rec1.fac_kenmerkdomein_key,
v_kenmerk_waarde,
@@ -8553,7 +8479,6 @@ AS
s.res_srtkenmerk_nmax,
k.res_kenmerk_default,
NVL (k.res_kenmerk_volgnummer, 0) volgnummer,
k.res_kenmerk_rolcode rolcode,
lcl.x ('res_srtkenmerk_dimensie',
s.res_srtkenmerk_key,
res_srtkenmerk_dimensie)
@@ -8603,7 +8528,7 @@ AS
'volgnummer', rec1.volgnummer,
'key', rec1.res_kenmerk_key,
'dimensie', rec1.dimensie,
'rolcode', rec1.rolcode,
NULL, NULL,
NULL, NULL,
rec1.fac_kenmerkdomein_key,
v_kenmerk_waarde,
@@ -10016,7 +9941,6 @@ AS
s.cnt_srtkenmerk_nmax,
k.cnt_kenmerk_default,
NVL (k.cnt_kenmerk_volgnummer, 0) volgnummer,
k.cnt_kenmerk_rolcode rolcode,
lcl.x ('cnt_srtkenmerk_dimensie',
s.cnt_srtkenmerk_key,
cnt_srtkenmerk_dimensie)
@@ -10409,7 +10333,6 @@ AS
k.fin_kenmerk_nmax,
k.fin_kenmerk_default,
NVL (k.fin_kenmerk_volgnr, 0) volgnummer,
k.fin_kenmerk_rolcode rolcode,
lcl.x ('fin_kenmerk_dimensie',
k.fin_kenmerk_key,
fin_kenmerk_dimensie)
@@ -10442,7 +10365,6 @@ AS
k.fin_kenmerk_nmax,
k.fin_kenmerk_default,
NVL (k.fin_kenmerk_volgnr, 0) volgnummer,
k.fin_kenmerk_rolcode rolcode,
lcl.x ('fin_kenmerk_dimensie',
k.fin_kenmerk_key,
fin_kenmerk_dimensie)

View File

@@ -122,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')
@@ -210,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')
@@ -237,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}')
@@ -447,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', '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')
@@ -557,9 +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_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}')
@@ -567,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}')
@@ -631,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)')
@@ -654,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}')
@@ -685,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}')
@@ -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

@@ -873,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
@@ -1387,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),
@@ -1648,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)
@@ -1825,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),
@@ -2106,15 +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),
// 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)
@@ -2203,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),
@@ -2337,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

@@ -585,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
@@ -611,16 +606,12 @@ 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
@@ -628,11 +619,7 @@ CREATE_TRIGGER(fac_t_fac_tracking_b_i)
BEGIN
IF newkey IS NOT NULL
THEN
fac.notifytracking(srtkey, prskey, omschr, refkey, newkey);
IF notify_bedrijven
THEN
fac.notifytrackingbedrijven (newkey);
END IF;
fac.notifytrackingbedrijven (newkey);
END IF;
END AFTER STATEMENT;
END;

View File

@@ -635,11 +635,7 @@ AS
|| (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 || ' key ' || fac_notificatie_refkey)
fac_notificatie_refkey)
|| ' to '
|| COALESCE ((SELECT (prs_bedrijf_naam)
FROM prs_bedrijf b, prs_bedrijfadres pba
@@ -847,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)
@@ -987,89 +984,92 @@ 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
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
last_login
FROM prs_v_aanwezigperslid p
WHERE ( prs_perslid_oslogin IS NULL
OR prs_perslid_oslogin NOT IN ('_FACILITOR'
, '_PUTORDERS'
, '_HMAIL'
, '_SYSTEEM'))
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
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
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!
(SELECT 1
FROM fac_v_webgebruiker gg
WHERE gg.prs_perslid_key = p.prs_perslid_key)
AND ( fac.getsetting ('mld_allow_for_others') = 1
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))
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
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
UNION
SELECT p.prs_perslid_key, 1 key_user
FROM fac_groep fg, fac_gebruikersgroep fgg, prs_perslid p
WHERE fac_groep_collega = 1
AND fg.fac_groep_key = fgg.fac_groep_key
AND p.prs_perslid_key = fgg.prs_perslid_key
AND p.prs_perslid_verwijder IS NULL
AND fg.fac_groep_key IN ( SELECT fac_groep_key
FROM fac_gebruikersgroep
GROUP BY fac_groep_key
HAVING COUNT (prs_perslid_key) > 9))) a
ON x.prs_perslid_key = a.prs_perslid_key;
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
last_login
FROM prs_v_aanwezigperslid p
WHERE ( prs_perslid_oslogin IS NULL
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
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
last_login -- geen login (lees zonder rechten), dus telt als nooit recent ingelogd!
FROM prs_v_aanwezigperslid p
WHERE NOT EXISTS -- g<EFBFBD><EFBFBD>n groep + rechten!
(SELECT 1
FROM fac_v_webgebruiker gg
WHERE gg.prs_perslid_key = p.prs_perslid_key)
AND ( fac.getsetting ('mld_allow_for_others') = 1
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))
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
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
UNION
SELECT p.prs_perslid_key, 1 key_user
FROM fac_groep fg, fac_gebruikersgroep fgg, prs_perslid p
WHERE fac_groep_collega = 1
AND fg.fac_groep_key = fgg.fac_groep_key
AND p.prs_perslid_key = fgg.prs_perslid_key
AND p.prs_perslid_verwijder IS NULL
AND fg.fac_groep_key IN ( SELECT fac_groep_key
FROM fac_gebruikersgroep
GROUP BY fac_groep_key
HAVING COUNT (prs_perslid_key) > 9))) a
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)
@@ -1098,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
@@ -1824,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,
@@ -1871,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,
@@ -1967,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,
@@ -2121,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,
@@ -2168,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,
@@ -2295,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,
@@ -2335,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

@@ -558,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
@@ -589,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
@@ -612,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

View File

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

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

@@ -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

@@ -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

@@ -850,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

@@ -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
@@ -1485,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);
@@ -1532,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;
@@ -1795,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;
@@ -1902,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
@@ -2046,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;
@@ -2071,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
@@ -2086,13 +2071,10 @@ CREATE OR REPLACE PACKAGE BODY mld AS
, prs_v_aanwezigbedrijf b
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
)
AND ( bdl.alg_locatie_key = l_mld_alg_locatie_key
OR bdl.alg_locatie_key IS NULL
)
)
AND ((bdl.alg_gebouw_key = l_alg_gebouw_key
OR bdl.alg_gebouw_key IS NULL)
AND (bdl.alg_locatie_key = l_mld_alg_locatie_key
OR bdl.alg_locatie_key IS NULL))
AND bdl.mld_autoorder = 1;
ELSIF l_mld_alg_locatie_key IS NOT NULL
THEN
@@ -2108,9 +2090,8 @@ CREATE OR REPLACE PACKAGE BODY mld AS
, prs_v_aanwezigbedrijf b
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
)
AND (bdl.alg_locatie_key = l_mld_alg_locatie_key
OR bdl.alg_locatie_key IS NULL)
AND bdl.mld_autoorder = 1;
ELSE
SELECT MIN(bdl.prs_bedrijf_key) prs_bedrijf_key
@@ -2135,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
@@ -2311,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,
@@ -2327,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
@@ -2412,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
@@ -2482,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
@@ -2506,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
@@ -2529,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;
@@ -2761,7 +2690,7 @@ CREATE OR REPLACE PACKAGE BODY mld AS
-- and the flexprops of p_melding_key if these match the mld_srtkenmerk_key
LOOP
DBMS_OUTPUT.put_line ( 'startkey:'
DBMS_OUTPUT.put_line( 'startkey:'
|| l_melding_start_key
|| ' step key:'
|| r_nextsteps.mld_workflowstep_key);
@@ -2772,79 +2701,78 @@ 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
FROM mld_melding m
WHERE m.mld_workflowstep_key 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
)
SELECT COUNT ( * )
INTO l_nrofactualpredecessors -- disregard status
FROM mld_melding m
WHERE m.mld_workflowstep_key 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)
-- 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);
DBMS_OUTPUT.put_line('total nr of actual predecessors for next step: '
|| l_nrofactualpredecessors);
l_nrofrequiredpredecessors := l_nrofactualpredecessors;
l_nrofrequiredpredecessors := l_nrofactualpredecessors;
-- If there is a difference between l_nrofpossiblepredecessors and l_nrofactualpredecessors there are
-- a few possibilities:
-- a. an actual predecessor has not been started yet (workflow branches are unequal length)
-- b. an actual predecessor has not been started and will not start due to a condition
-- In case a. the predecessor will start eventually and then trigger the next step.
-- Then l_nrofreadypredecessors = l_nrofpossiblepredecessors
-- In case b. the l_nrofreadypredecessors will never reach l_nrofpossiblepredecessors, the
-- next step will be triggered when l_nrofreadypredecessors = l_nrofactualpredecessors
-- The question is: how do we distinguish a and b?
--
-- Suggestion: backtracking the workflow for the step that is not (yet) there?
IF l_nrofpossiblepredecessors > l_nrofactualpredecessors
THEN
BEGIN
SELECT wr1.mld_workflowstep_key
INTO l_common_ancestor
FROM mld_workflowrule wr1, mld_workflowstep ws1
WHERE wr1.mld_workflowstep_key = ws1.mld_workflowstep_key
AND wr1.mld_workflowstep_next_key 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
)
GROUP BY wr1.mld_workflowstep_key;
EXCEPTION
WHEN NO_DATA_FOUND OR TOO_MANY_ROWS
THEN
-- If there is a difference between l_nrofpossiblepredecessors and l_nrofactualpredecessors there are
-- a few possibilities:
-- a. an actual predecessor has not been started yet (workflow branches are unequal length)
-- b. an actual predecessor has not been started and will not start due to a condition
-- In case a. the predecessor will start eventually and then trigger the next step.
-- Then l_nrofreadypredecessors = l_nrofpossiblepredecessors
-- In case b. the l_nrofreadypredecessors will never reach l_nrofpossiblepredecessors, the
-- next step will be triggered when l_nrofreadypredecessors = l_nrofactualpredecessors
-- The question is: how do we distinguish a and b?
--
-- Suggestion: backtracking the workflow for the step that is not (yet) there?
IF l_nrofpossiblepredecessors > l_nrofactualpredecessors
THEN
BEGIN
SELECT wr1.mld_workflowstep_key
INTO l_common_ancestor
FROM mld_workflowrule wr1, mld_workflowstep ws1
WHERE wr1.mld_workflowstep_key = ws1.mld_workflowstep_key
AND wr1.mld_workflowstep_next_key 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)
GROUP BY wr1.mld_workflowstep_key;
EXCEPTION
WHEN NO_DATA_FOUND OR TOO_MANY_ROWS
THEN
l_common_ancestor := -1;
END;
END;
IF l_common_ancestor <> -1
THEN
IF l_common_ancestor <> -1
THEN
DBMS_OUTPUT.put_line ('Common ancestor detected for all previous workflowsteps, so a condition not met (case b)');
l_nrofrequiredpredecessors := l_nrofactualpredecessors;
ELSE
ELSE
-- determine case a or case b
FOR missingsteps
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
WHERE m.mld_workflowstep_key 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 mld_melding_start_key = l_melding_start_key
)
LOOP
(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
-- 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
@@ -2853,18 +2781,18 @@ CREATE OR REPLACE PACKAGE BODY mld AS
INTO l_prepredecessors
FROM mld_melding m
WHERE m.mld_workflowstep_key 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 = missingsteps.mld_workflowstep_key
)
AND mld_melding_key <> l_melding_start_key
AND mld_melding_start_key = l_melding_start_key;
(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 mld_melding_key <> l_melding_start_key
AND mld_melding_start_key = l_melding_start_key;
DBMS_OUTPUT.put_line ('Complex case! Total nr of actual prepredecessors for predecessor-step '
|| missingsteps.mld_workflowstep_key
|| ': '
|| l_prepredecessors);
DBMS_OUTPUT.put_line('Complex case! Total nr of actual prepredecessors for predecessor-step '
|| missingsteps.mld_workflowstep_key
|| ': '
|| l_prepredecessors);
IF l_prepredecessors = 0
THEN
@@ -2883,30 +2811,30 @@ CREATE OR REPLACE PACKAGE BODY mld AS
THEN
l_nrofrequiredpredecessors := l_nrofactualpredecessors + nrcase_a; --l_nrofpossiblepredecessors;
END IF;
END IF;
ELSE
-- both are the same, just pick one to test against later
l_nrofrequiredpredecessors := l_nrofactualpredecessors;
END IF;
END IF;
ELSE
-- both are the same, just pick one to test against later
l_nrofrequiredpredecessors := l_nrofactualpredecessors;
END IF;
DBMS_OUTPUT.put_line ('total nr of required predecessors for next step: '
|| l_nrofrequiredpredecessors);
DBMS_OUTPUT.put_line('total nr of required predecessors for next step: '
|| l_nrofrequiredpredecessors);
SELECT COUNT ( * )
INTO l_nrofreadypredecessors
FROM mld_melding m
WHERE m.mld_workflowstep_key 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
)
-- 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
SELECT COUNT ( * )
INTO l_nrofreadypredecessors
FROM mld_melding m
WHERE m.mld_workflowstep_key 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)
-- 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:
@@ -2926,11 +2854,12 @@ 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;
-- if l_nrofreadypredecessors > 1 the creation has already taken place :-)
createthisnextstep := l_nrofreadypredecessors = 1;
-- if l_nrofreadypredecessors > 1 the creation has already taken place :-)
WHEN 2
THEN -- SYNC
-- Wel nog een beetje raar in onze <20>naar mijn groeiende overtuiging slimmere- implementatie:
@@ -2941,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
@@ -2957,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
@@ -3399,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;
@@ -3407,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
@@ -3450,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
@@ -3574,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
@@ -3661,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;
@@ -3700,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;
@@ -3720,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
@@ -3732,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;
@@ -3756,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
@@ -3813,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
@@ -3846,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
@@ -3881,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
@@ -3930,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
@@ -4829,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,8 +388,6 @@ 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,
prs_perslid_key /* aanmaker of verantwoordelijke */
@@ -605,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
@@ -858,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
@@ -1207,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)
(
@@ -1472,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
@@ -1483,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;

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

@@ -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,
@@ -2378,10 +2404,10 @@ AS
prs_perslid_apikey = recPersLid.prs_perslid_apikey
WHERE prs_perslid_key = v_perslid_key;
IF recPersLid.prs_perslid_wachtwoord IS NOT NULL
THEN
IF recPersLid.prs_perslid_wachtwoord IS NOT NULL
THEN
prs.setpassword(v_perslid_key, recPersLid.prs_perslid_wachtwoord);
END IF;
END IF;
END IF;
-- Voor CUST-postprocessing (van de kenmerken) is het handig te onthouden:

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
@@ -1140,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

@@ -361,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
@@ -444,7 +444,11 @@ AS
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,
@@ -460,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')
@@ -468,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,
@@ -478,8 +486,8 @@ 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
ORDER BY newkenmerk.res_rsv_artikel_key,
newkenmerk.res_kenmerk_key;
@@ -538,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
@@ -2549,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
@@ -2581,8 +2583,6 @@ AS
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'
OR EXISTS
(SELECT 1
@@ -2597,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

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"