IVET#57006 SYNC_SCHOONMAAK-export loopt al een maand niet meer

svn path=/Customer/trunk/; revision=41849
This commit is contained in:
Maarten van der Heide
2019-03-28 15:26:27 +00:00
parent e44f8791d2
commit 03283d27fd

View File

@@ -2530,41 +2530,41 @@ AS
/
-- Synchronisatiemechanisme om dagelijks de schoonmaakprogramma kenmerken bij de
-- ruimte te synchroniseren met de objecten die voor de schoonmaak gebruikt worden.
CREATE OR REPLACE PROCEDURE ivet_export_sync_schoonmaak (p_applname IN VARCHAR2,
p_applrun IN VARCHAR2,
p_filedir IN VARCHAR2,
p_filename IN VARCHAR2)
-- Synchronisatiemechanisme om dagelijks de Schoonmaakprogramma-kenmerken bij
-- de ruimte te synchroniseren met de Schoonmaak-objecten die worden gebruikt.
CREATE OR REPLACE PROCEDURE ivet_export_sync_schoonmaak (
p_applname IN VARCHAR2,
p_applrun IN VARCHAR2,
p_filedir IN VARCHAR2,
p_filename IN VARCHAR2)
AS
CURSOR c (
c_srtgroep_key NUMBER)
CURSOR c (c_srtgroep_key NUMBER)
IS
SELECT ins_srtdeel_key,
alg_ruimte_key,
alg_ruimte_aanduiding,
ins_srtdeel_omschrijving
FROM ins_srtdeel sd,
alg_v_ruimte_gegevens rg,
fac_usrdata ud,
alg_onrgoedkenmerk aogk
WHERE aogk.alg_onrgoed_key = rg.alg_ruimte_key
AND aogk.alg_kenmerk_key = 1020
AND fac.safe_to_number (aogk.alg_onrgoedkenmerk_waarde) = ud.fac_usrdata_key
AND ud.fac_usrdata_code = ins_srtdeel_code
AND sd.ins_srtgroep_key = c_srtgroep_key;
SELECT sd.ins_srtdeel_key, rg.alg_ruimte_key, rg.alg_ruimte_aanduiding, sd.ins_srtdeel_omschrijving
FROM alg_onrgoedkenmerk aogk, alg_v_ruimte_gegevens rg, fac_usrdata ud, ins_srtdeel sd
WHERE aogk.alg_kenmerk_key = 1020 -- Schoonmaakprogramma
AND aogk.alg_onrgoed_key = rg.alg_ruimte_key
AND fac.safe_to_number (aogk.alg_onrgoedkenmerk_waarde) = ud.fac_usrdata_key
AND ud.fac_usrdata_code = sd.ins_srtdeel_code
AND sd.ins_srtgroep_key = c_srtgroep_key;
v_errormsg VARCHAR2 (1000);
oracle_err_num NUMBER;
oracle_err_mes VARCHAR2 (200);
v_aanduiding VARCHAR2 (1000) := '';
v_srtgroep_key NUMBER;
v_srtdeel_key NUMBER;
v_deel_key NUMBER;
v_count NUMBER;
BEGIN
v_errormsg := 'Fout bepalen schoonmaak-groep';
SELECT ins_srtgroep_key
INTO v_srtgroep_key
FROM ins_srtgroep
WHERE ins_srtgroep_verwijder IS NULL AND ins_srtgroep_omschrijving = 'Schoonmaak';
FROM ins_v_aanwezigsrtgroep
WHERE ins_srtgroep_omschrijving = 'Schoonmaak';
-- aanmaken update ins_srtdeel
-- srtdelen worden gesynchroniseerd met de eigentabel met key
-- Aanmaken objectsoorten volgens Eigen tabel met key=2301!
v_errormsg := 'Fout toevoegen schoonmaak-objectsoorten';
INSERT INTO ins_srtdeel (ins_srtgroep_key,
ins_srtdeel_code,
ins_srtdeel_omschrijving,
@@ -2573,38 +2573,43 @@ BEGIN
fac_usrdata_code,
fac_usrdata_omschr,
1
FROM fac_usrdata ud
FROM fac_v_aanwezigusrdata ud
WHERE fac_usrtab_key = 2301
AND NOT EXISTS
(SELECT ins_srtdeel_key
FROM ins_srtdeel
WHERE ins_srtdeel_verwijder IS NULL
AND ins_srtdeel_code = ud.fac_usrdata_code
AND ins_srtgroep_key = v_srtgroep_key);
AND NOT EXISTS
(SELECT 1
FROM ins_v_aanwezigsrtdeel
WHERE ins_srtgroep_key = v_srtgroep_key
AND ins_srtdeel_code = ud.fac_usrdata_code);
-- Bijwerken objectsoorten volgens Eigen tabel met key=2301!
v_errormsg := 'Fout bijwerken objectsoort-omschrijvingen';
UPDATE ins_srtdeel
SET ins_srtdeel_omschrijving =
(SELECT fac_usrdata_omschr
FROM fac_usrdata
FROM fac_v_aanwezigusrdata
WHERE fac_usrtab_key = 2301
AND fac_usrdata_verwijder IS NULL
AND fac_usrdata_code = ins_srtdeel_code)
WHERE ins_srtgroep_key = v_srtgroep_key AND ins_srtdeel_verwijder IS NULL;
AND fac_usrdata_code = ins_srtdeel_code)
WHERE ins_srtdeel_verwijder IS NULL
AND ins_srtgroep_key = v_srtgroep_key;
FOR rec IN c (v_srtgroep_key)
LOOP
BEGIN
v_aanduiding := '[' || rec.alg_ruimte_aanduiding || '|' || rec.ins_srtdeel_omschrijving || '] ';
BEGIN
SELECT d.ins_deel_key, d.ins_srtdeel_key
INTO v_deel_key, v_srtdeel_key
FROM ins_deel d, ins_srtdeel sd
WHERE d.ins_srtdeel_key = sd.ins_srtdeel_key
AND sd.ins_srtgroep_key = v_srtgroep_key
AND d.ins_alg_ruimte_key = rec.alg_ruimte_key
AND d.ins_deel_vervaldatum IS NULL;
v_errormsg := 'Fout bepalen schoonmaak-object (oud)';
SELECT d.ins_srtdeel_key, d.ins_deel_key
INTO v_srtdeel_key, v_deel_key
FROM ins_v_aanwezigdeel d, ins_srtdeel sd
WHERE d.ins_deel_vervaldatum IS NULL
AND d.ins_srtdeel_key = sd.ins_srtdeel_key
AND sd.ins_srtgroep_key = v_srtgroep_key
AND d.ins_alg_ruimte_key = rec.alg_ruimte_key
AND d.ins_alg_ruimte_type = 'R';
IF v_srtdeel_key <> rec.ins_srtdeel_key
THEN
v_errormsg := 'Fout vervallen schoonmaak-object';
UPDATE ins_deel
SET ins_deel_vervaldatum = SYSDATE
WHERE ins_deel_key = v_deel_key;
@@ -2619,23 +2624,50 @@ BEGIN
IF v_deel_key = -1
THEN
INSERT INTO ins_deel (ins_srtdeel_key,
ins_alg_ruimte_key,
ins_alg_ruimte_type,
ins_deel_omschrijving,
ins_deel_actief)
VALUES (rec.ins_srtdeel_key,
rec.alg_ruimte_key,
'R',
SUBSTR (rec.alg_ruimte_aanduiding || ' / ' || rec.ins_srtdeel_omschrijving,
1,
60),
1)
RETURNING ins_deel_key
INTO v_deel_key;
-- IVET#57006: SYNC_SCHOONMAAK-export loopt al een maand niet meer.
-- Oorzaak volgens MVH dat toe te voegen object soms al
-- bestaat, daarom voortaan ook objecten reanimeren!
v_errormsg := 'Fout bepalen schoonmaak-object (nieuw)';
SELECT COUNT (*)
INTO v_count
FROM ins_v_aanwezigdeel d
WHERE d.ins_srtdeel_key = rec.ins_srtdeel_key
AND d.ins_alg_ruimte_key = rec.alg_ruimte_key
AND d.ins_alg_ruimte_type = 'R';
IF v_count = 0
THEN
v_errormsg := 'Fout toevoegen schoonmaak-object';
INSERT INTO ins_deel (ins_srtdeel_key,
ins_alg_ruimte_key,
ins_alg_ruimte_type,
ins_deel_omschrijving,
ins_deel_actief)
VALUES (rec.ins_srtdeel_key,
rec.alg_ruimte_key,
'R',
SUBSTR (rec.alg_ruimte_aanduiding || ' / ' || rec.ins_srtdeel_omschrijving, 1, 60),
1);
ELSE
v_errormsg := 'Fout reanimeren schoonmaak-object';
UPDATE ins_deel
SET ins_deel_vervaldatum = SYSDATE,
ins_deel_omschrijving = SUBSTR (rec.alg_ruimte_aanduiding || ' / ' || rec.ins_srtdeel_omschrijving, 1, 60),
ins_deel_actief = 1
WHERE ins_srtdeel_key = rec.ins_srtdeel_key
AND ins_alg_ruimte_key = rec.alg_ruimte_key
AND ins_alg_ruimte_type = 'R';
END IF;
END IF;
END;
END LOOP;
EXCEPTION
WHEN OTHERS
THEN
oracle_err_num := SQLCODE;
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
v_errormsg := v_errormsg || ' ORACLE (error ' || oracle_err_num || '/' || oracle_err_mes || ')';
fac.writelog (p_applname, 'E', v_aanduiding || v_errormsg, 'SYNC_SCHOONMAAK-export afgebroken!');
END;
/
@@ -2682,17 +2714,14 @@ AS
-- Dagelijkse taak.
-- Hieronder vallen:
-- - Synchronsiatie schoonmaakprogramma bij ruimte met schoonmaakobjecten.
-- - Synchronisatie schoonmaakprogramma bij ruimte met schoonmaakobjecten.
CREATE OR REPLACE PROCEDURE ivet_export_daily_task (p_applname IN VARCHAR2,
p_applrun IN VARCHAR2,
p_filedir IN VARCHAR2,
p_filename IN VARCHAR2)
AS
BEGIN
ivet_export_sync_schoonmaak (p_applname,
p_applrun,
p_filedir,
p_filename);
ivet_export_sync_schoonmaak (p_applname, p_applrun, p_filedir, p_filename);
END;
/
@@ -3736,9 +3765,9 @@ AS
AND a.prs_kostenplaats_key = k.prs_kostenplaats_key;
-- IVET#52961 Rapport voor afhandeling periodieke taken (in eerste instantie voor brandmeldcentrales)
CREATE OR REPLACE VIEW ivet_v_rap_tasks
CREATE OR REPLACE VIEW ivet_v_rap_tasks
AS
SELECT
SELECT
disc.ins_discipline_omschrijving AS Discipline,
sg.ins_srtgroep_omschrijving AS Groep,
sd.ins_srtdeel_omschrijving AS Objectsoort,
@@ -3749,27 +3778,27 @@ SELECT
TO_CHAR(dsc.ins_deelsrtcontrole_datum , 'HH24:MI' ) AS Tijd_uitvoer,
(SELECT cm.ins_controlemode_oms
FROM ins_controlemode cm
WHERE cm.ins_controlemode_key = dsc.ins_controlemode_key) AS Status,
WHERE cm.ins_controlemode_key = dsc.ins_controlemode_key) AS Status,
dsc.ins_deelsrtcontrole_opmerking AS Opmerking
FROM
ins_deelsrtcontrole dsc,
ins_srtcontrole sc,
ins_deel d,
ins_srtdeel sd,
ins_srtgroep sg,
FROM
ins_deelsrtcontrole dsc,
ins_srtcontrole sc,
ins_deel d,
ins_srtdeel sd,
ins_srtgroep sg,
ins_tab_discipline disc
WHERE
WHERE
dsc.ins_deel_key = d.ins_deel_key
AND dsc.ins_srtcontrole_key = sc.ins_srtcontrole_key
AND d.ins_srtdeel_key = sd.ins_srtdeel_key
AND sd.ins_srtgroep_key = sg.ins_srtgroep_key
AND disc.ins_discipline_key = sg.ins_discipline_key
ORDER BY
disc.ins_discipline_omschrijving,
sg.ins_srtgroep_omschrijving,
sd.ins_srtdeel_omschrijving,
d.ins_deel_omschrijving,
sc.ins_srtcontrole_omschrijving,
ORDER BY
disc.ins_discipline_omschrijving,
sg.ins_srtgroep_omschrijving,
sd.ins_srtdeel_omschrijving,
d.ins_deel_omschrijving,
sc.ins_srtcontrole_omschrijving,
dsc.ins_deelsrtcontrole_datum_org DESC;
--IVET#54995 notificaties reserveringen / meldingsreserveringen
@@ -3806,7 +3835,7 @@ CREATE OR REPLACE VIEW ivet_v_noti_tafelresreminder
key,
xkey,
xemail,
xmobile
xmobile
)
AS
SELECT 'CUST04',
@@ -3830,13 +3859,13 @@ SELECT 'CUST04',
NULL,
NULL
FROM mld_melding m
WHERE
WHERE
m.mld_stdmelding_key = 2661 --Key voor stdmelding 'Tafel reserveren restaurant'
AND
(SELECT (TRUNC (fac.safe_to_date(km.mld_kenmerkmelding_waarde, 'DD-MM-YYYY')))
FROM mld_kenmerkmelding km
WHERE km.mld_kenmerk_key = 16741 --Key voor kenmerk tijd
AND km.mld_melding_key = m.mld_melding_key) =
AND km.mld_melding_key = m.mld_melding_key) =
(CASE WHEN fac.getweekdaynum(SYSDATE) = 6
THEN(TRUNC(SYSDATE)+3)
ELSE (TRUNC(SYSDATE)+1)