AAIT#76862 order by erbij zorgt voor een meer chronologische volgorde (niks gegarandeerd, wel verbetering)

FCLT#77012 opschonen exc_import tabel (alleen mislukte regels van deletes die al deleted zijn) en een early exit toegevoegd voor toe-te-voegen reserveringen die al bestaan met exact hetzelfde externnr. Dat kon voorkomen bij bijv. 2 snelle notificaties achter elkaar van hetzelfde event


svn path=/Database/branches/DB44/; revision=59437
This commit is contained in:
2023-03-04 21:31:39 +00:00
parent 8a3a71b99a
commit f6f4effde6

View File

@@ -296,8 +296,16 @@ AS
-- We willen mislukte regels uit eerdere imports bewaren, zodat we die nog eens kunnen proberen.
-- Alle correct verwerkte importregels krijgen een vlag, dus die gooien we weg.
-- Deletes die al deleted zijn, zijn schijnbaar al gelukt
DELETE FROM exc_import
WHERE gelukt IS NOT NULL;
WHERE gelukt IS NOT NULL
OR ( modifier = 'D'
AND EXISTS
(SELECT 1
FROM res_rsv_ruimte
WHERE res_rsv_ruimte_verwijder IS NOT NULL
AND INSTR (res_rsv_ruimte_externnr,
appt_id || '|' || recur_id) = 1));
-- We gaan uit van een geldig bestand, mogelijk verandert dat onderweg
header_is_valid := 0;
@@ -874,7 +882,8 @@ AS
rr.res_ruimte_opstel_key
AND r.res_ruimte_key = ro.res_ruimte_key
AND r.res_ruimte_verwijder IS NULL
AND r.res_ruimte_extern_id = i.room_id);
AND r.res_ruimte_extern_id = i.room_id)
ORDER BY 9;
BEGIN
SELECT BITAND (COALESCE (fac_setting_pvalue, fac_setting_default), 4)
INTO sync_level
@@ -1461,6 +1470,24 @@ AS
CONTINUE;
END IF;
v_errorhint := 'Last-minute duplicaat check';
SELECT COUNT (*)
INTO v_count
FROM res_rsv_ruimte
WHERE res_rsv_ruimte_externnr IS NOT NULL
AND INSTR(res_rsv_ruimte_externnr, rec.appt_id || '|' || rec.recur_id || '|') = 1
AND res_rsv_ruimte_verwijder IS NULL;
IF (v_count > 0)
THEN
fac.imp_writelog (p_import_key,
'E',
v_aanduiding,
'Deze exacte reservering is al bekend in Facilitor. Geen boeking.');
CONTINUE;
END IF;
-- Is dit een op zichzelf staande appointment, of onderdeel van een reeks (recurrence)?
-- (obv recur_id, die samen met appt_id in res_rsv_ruimte_externnr staat)
v_errorhint := 'Check recurrence';