diff --git a/AA/aaxx.sql b/AA/aaxx.sql index d9dfa044c..dd81fa0f0 100644 --- a/AA/aaxx.sql +++ b/AA/aaxx.sql @@ -17313,21 +17313,31 @@ BEGIN -- Vlaggetjes zetten zoals mld_edit_note.asp dat doet BEGIN - v_flag_on_fenote := fac.getsetting ('mld_flag_on_fenote'); - v_flag_on_bonote := fac.getsetting ('mld_flag_on_bonote'); - - IF v_flag_on_fenote <> 0 AND v_flag_on_fenote IS NOT NULL + IF fac.getdbversion() >= 'DB36' -- DB36 forward compatible THEN - UPDATE mld_melding - SET mld_melding_flag = - DECODE (opdrkey, - NULL, v_flag_on_fenote, - v_flag_on_bonote) - WHERE mld_melding_key = mldkey - AND ( (mld_melding_flag = v_flag_on_bonote) - OR (mld_melding_flag = 0 OR mld_melding_flag IS NULL)); + IF fac.getsetting('mld_melding_actiecode') = 1 + THEN + UPDATE mld_melding + SET mld_melding_actiecode = 1+128 -- Backoffice + Attentie + WHERE mld_melding_key = v_mldkey; + END IF; + ELSE + v_flag_on_fenote := fac.getsetting ('mld_flag_on_fenote'); + v_flag_on_bonote := fac.getsetting ('mld_flag_on_bonote'); - DBMS_OUTPUT.put_line ('Flag gezet.'); + IF v_flag_on_fenote <> 0 AND v_flag_on_fenote IS NOT NULL + THEN + UPDATE mld_melding + SET mld_melding_flag = + DECODE (opdrkey, + NULL, v_flag_on_fenote, + v_flag_on_bonote) + WHERE mld_melding_key = mldkey + AND ( (mld_melding_flag = v_flag_on_bonote) + OR (mld_melding_flag = 0 OR mld_melding_flag IS NULL)); + + DBMS_OUTPUT.put_line ('Flag gezet.'); + END IF; END IF; EXCEPTION WHEN OTHERS diff --git a/ARAI/arai.sql b/ARAI/arai.sql index ffe9ef976..e9371ac32 100644 --- a/ARAI/arai.sql +++ b/ARAI/arai.sql @@ -8918,27 +8918,36 @@ BEGIN -- Vlaggetjes zetten zoals mld_edit_note.asp dat doet IF 1=0 -- ARAI heeft geen melding valggetjes, dus onderstaande kan voor nu weg. THEN - BEGIN - v_flag_on_fenote := fac.getsetting('mld_flag_on_fenote'); - v_flag_on_bonote := fac.getsetting('mld_flag_on_bonote'); + BEGIN + IF fac.getdbversion() >= 'DB36' -- DB36 forward compatible + THEN + IF fac.getsetting('mld_melding_actiecode') = 1 + THEN + UPDATE mld_melding + SET mld_melding_actiecode = 1+128 -- Backoffice + Attentie + WHERE mld_melding_key = v_mldkey; + END IF; + ELSE + v_flag_on_fenote := fac.getsetting('mld_flag_on_fenote'); + v_flag_on_bonote := fac.getsetting('mld_flag_on_bonote'); - IF v_flag_on_bonote <> 0 AND v_flag_on_bonote IS NOT NULL - THEN - UPDATE mld_melding - SET mld_melding_flag = v_flag_on_bonote - WHERE mld_melding_key = v_mldkey - AND ( (mld_melding_flag = v_flag_on_fenote) - OR (mld_melding_flag = 0 OR mld_melding_flag IS NULL)); - - END IF; - EXCEPTION - WHEN OTHERS - THEN - DBMS_OUTPUT.put_line( 'Niet gelukt om flag ' + IF v_flag_on_bonote <> 0 AND v_flag_on_bonote IS NOT NULL + THEN + UPDATE mld_melding + SET mld_melding_flag = v_flag_on_bonote + WHERE mld_melding_key = v_mldkey + AND ( (mld_melding_flag = v_flag_on_fenote) + OR (mld_melding_flag = 0 OR mld_melding_flag IS NULL)); + END IF; + END IF; + EXCEPTION + WHEN OTHERS + THEN + DBMS_OUTPUT.put_line( 'Niet gelukt om flag ' || v_flag_on_bonote || ' te zetten.'); - END; - END IF; -- ARAI heef geen vlaggetjes + END; + END IF; -- ARAI heef geen vlaggetjes -- Default tracking is even goed genoeg fac.trackaction ('MLDNOT', diff --git a/CSUN/CSUN.sql b/CSUN/CSUN.sql index e5e2e80f7..de57e892b 100644 --- a/CSUN/CSUN.sql +++ b/CSUN/CSUN.sql @@ -1450,17 +1450,27 @@ BEGIN -- Vlaggetjes zetten zoals mld_edit_note.asp dat doet BEGIN - v_flag_on_fenote := fac.getsetting('mld_flag_on_fenote'); - v_flag_on_bonote := fac.getsetting('mld_flag_on_bonote'); - - IF v_flag_on_fenote <> 0 AND v_flag_on_fenote IS NOT NULL + IF fac.getdbversion() >= 'DB36' -- DB36 forward compatible THEN - UPDATE mld_melding - SET mld_melding_flag = v_flag_on_fenote - WHERE mld_melding_key = mldkey - AND ( (mld_melding_flag = v_flag_on_bonote) - OR (mld_melding_flag = 0 OR mld_melding_flag IS NULL)); - -- DBMS_OUTPUT.PUT_LINE('Flag: ' || v_flag_on_fenote || ' gezet.'); + IF fac.getsetting('mld_melding_actiecode') = 1 + THEN + UPDATE mld_melding + SET mld_melding_actiecode = 1+128 -- Backoffice + Attentie + WHERE mld_melding_key = v_mldkey; + END IF; + ELSE + v_flag_on_fenote := fac.getsetting('mld_flag_on_fenote'); + v_flag_on_bonote := fac.getsetting('mld_flag_on_bonote'); + + IF v_flag_on_fenote <> 0 AND v_flag_on_fenote IS NOT NULL + THEN + UPDATE mld_melding + SET mld_melding_flag = v_flag_on_fenote + WHERE mld_melding_key = mldkey + AND ( (mld_melding_flag = v_flag_on_bonote) + OR (mld_melding_flag = 0 OR mld_melding_flag IS NULL)); + -- DBMS_OUTPUT.PUT_LINE('Flag: ' || v_flag_on_fenote || ' gezet.'); + END IF; END IF; EXCEPTION WHEN OTHERS diff --git a/DEMO/demo.sql b/DEMO/demo.sql index ab489ae12..72fce7d3e 100644 --- a/DEMO/demo.sql +++ b/DEMO/demo.sql @@ -4415,21 +4415,31 @@ BEGIN -- Vlaggetjes zetten zoals mld_edit_note.asp dat doet BEGIN - v_flag_on_fenote := fac.getsetting ('mld_flag_on_fenote'); - v_flag_on_bonote := fac.getsetting ('mld_flag_on_bonote'); - - IF v_flag_on_fenote <> 0 AND v_flag_on_fenote IS NOT NULL + IF fac.getdbversion() >= 'DB36' -- DB36 forward compatible THEN - UPDATE mld_melding - SET mld_melding_flag = - DECODE (opdrkey, - NULL, v_flag_on_fenote, - v_flag_on_bonote) - WHERE mld_melding_key = mldkey - AND ( (mld_melding_flag = v_flag_on_bonote) - OR (mld_melding_flag = 0 OR mld_melding_flag IS NULL)); - - DBMS_OUTPUT.put_line ('Flag gezet.'); + IF fac.getsetting('mld_melding_actiecode') = 1 + THEN + UPDATE mld_melding + SET mld_melding_actiecode = 1+128 -- Backoffice + Attentie + WHERE mld_melding_key = v_mldkey; + END IF; + ELSE + v_flag_on_fenote := fac.getsetting ('mld_flag_on_fenote'); + v_flag_on_bonote := fac.getsetting ('mld_flag_on_bonote'); + + IF v_flag_on_fenote <> 0 AND v_flag_on_fenote IS NOT NULL + THEN + UPDATE mld_melding + SET mld_melding_flag = + DECODE (opdrkey, + NULL, v_flag_on_fenote, + v_flag_on_bonote) + WHERE mld_melding_key = mldkey + AND ( (mld_melding_flag = v_flag_on_bonote) + OR (mld_melding_flag = 0 OR mld_melding_flag IS NULL)); + + DBMS_OUTPUT.put_line ('Flag gezet.'); + END IF; END IF; EXCEPTION WHEN OTHERS @@ -4714,6 +4724,109 @@ AS AND l.alg_district_key = d.alg_district_key GROUP BY b.prs_bedrijf_key, b.prs_bedrijf_naam, d.alg_district_key; +/* Origineel - Pre-beurs 2019 +CREATE OR REPLACE FORCE VIEW DEMO.DEMO_V_THEMA_DEEL_RES_PVH +( + INS_DEEL_KEY, + INS_ALG_RUIMTE_KEY, + WAARDE +) +AS + SELECT r.ins_deel_key, + ins_alg_ruimte_key, + DECODE (k.ins_kenmerkdeel_waarde, + NULL, + COALESCE (MIN (TRUNC (tijdvrij * 24 * 60) - 1), 999999), + 1) + waarde -- MIN want perssimistisch + FROM (SELECT res_ins_deel_key ins_deel_key, + ins_alg_ruimte_key, + res_rsv_deel_van - SYSDATE tijdvrij + FROM res_v_aanwezigdeel r, + ins_deel d, + (SELECT res_deel_key, res_rsv_deel_van, res_rsv_deel_tot + FROM res_v_aanwezigrsv_deel rrd + WHERE SYSDATE BETWEEN TRUNC (res_rsv_deel_van) + AND res_rsv_deel_tot) blokkerend -- vandaag en nog niet afgelopen + WHERE r.res_deel_key = blokkerend.res_deel_key(+) + AND d.ins_deel_key = r.res_ins_deel_key) r + LEFT OUTER JOIN + (SELECT ins_deel_key, ins_kenmerkdeel_waarde + FROM ins_kenmerkdeel + WHERE ins_kenmerk_key = 1141 + AND ins_kenmerkdeel_verwijder IS NULL) k + ON k.ins_deel_key = r.ins_deel_key + GROUP BY r.ins_deel_key, ins_alg_ruimte_key, k.ins_kenmerkdeel_waarde; +*/ +CREATE OR REPLACE VIEW DEMO_V_THEMA_DEEL_RES_PVH +( + INS_DEEL_KEY, + INS_ALG_RUIMTE_KEY, + WAARDE +) +AS + SELECT r.ins_deel_key, + r.ins_alg_ruimte_key, + DECODE (r.status, + 0, + COALESCE (MIN (TRUNC (r.tijdvrij * 24 * 60) - 1), 999999), + 1) + waarde -- MIN want pessimistisch + FROM (SELECT r.res_ins_deel_key ins_deel_key, + d.ins_alg_ruimte_key, + blokkerend.res_rsv_deel_van - SYSDATE tijdvrij, + DECODE (INITCAP (d.ins_deel_state), + '0', -- Als de sensor uit is kijken we naar de reservering + DECODE (blokkerend.res_deel_key, + NULL, + 0, -- Als er geen reservering loopt, dan is de status uit + 1), -- Anders aan + 1) + status + FROM res_v_aanwezigdeel r, + ins_deel d, + (SELECT res_deel_key, res_rsv_deel_van, res_rsv_deel_tot + FROM res_v_aanwezigrsv_deel + WHERE SYSDATE BETWEEN TRUNC (res_rsv_deel_van) + AND res_rsv_deel_tot) blokkerend -- Vandaag en nog niet afgelopen + WHERE r.res_ins_deel_key = d.ins_deel_key + AND d.ins_alg_ruimte_type = 'R' + AND r.res_deel_key = blokkerend.res_deel_key(+)) r + LEFT JOIN -- Waarom dit kenmerk en bezetting niet op basis van reservering? + (SELECT ins_deel_key, ins_kenmerkdeel_waarde + FROM ins_v_aanwezigkenmerkdeel + WHERE ins_kenmerk_key = 1141) k -- Bezet door + ON r.ins_deel_key = k.ins_deel_key + WHERE r.ins_deel_key IN (26486, 26506) -- LeftClick puck+slof! + GROUP BY r.ins_deel_key, ins_alg_ruimte_key, r.status + UNION ALL -- En dan de reserveerbare delen zonder sensor + SELECT r.ins_deel_key, + r.ins_alg_ruimte_key, + DECODE (k.ins_kenmerkdeel_waarde, + NULL, + COALESCE (MIN (TRUNC (r.tijdvrij * 24 * 60) - 1), 999999), + 1) + waarde -- MIN want pessimistisch + FROM (SELECT r.res_ins_deel_key ins_deel_key, + d.ins_alg_ruimte_key, + blokkerend.res_rsv_deel_van - SYSDATE tijdvrij + FROM res_v_aanwezigdeel r, + ins_deel d, + (SELECT res_deel_key, res_rsv_deel_van, res_rsv_deel_tot + FROM res_v_aanwezigrsv_deel + WHERE SYSDATE BETWEEN TRUNC (res_rsv_deel_van) + AND res_rsv_deel_tot) blokkerend -- Vandaag en nog niet afgelopen + WHERE r.res_ins_deel_key = d.ins_deel_key + AND d.ins_alg_ruimte_type = 'R' + AND r.res_deel_key = blokkerend.res_deel_key(+)) r + LEFT JOIN -- Waarom dit kenmerk en bezetting niet op basis van reservering? + (SELECT ins_deel_key, ins_kenmerkdeel_waarde + FROM ins_v_aanwezigkenmerkdeel + WHERE ins_kenmerk_key = 1141) k -- Bezet door + ON r.ins_deel_key = k.ins_deel_key + WHERE r.ins_deel_key NOT IN (26486, 26506) -- LeftClick puck+slof! + GROUP BY r.ins_deel_key, r.ins_alg_ruimte_key, k.ins_kenmerkdeel_waarde; + BEGIN adm.systrackscriptId('$Id$'); END; / BEGIN fac.registercustversion('DEMO', 7); END;