Merge DB45d changes
svn path=/Database/trunk/; revision=61949
This commit is contained in:
@@ -646,6 +646,11 @@ AS
|
||||
COMMIT;
|
||||
END import_exchange;
|
||||
|
||||
-- Merk op dat er veel meer dan gewoonlijk COMMIT's tussendoor staan
|
||||
-- Dat is allemaal om zo veel mogelijk deadlocks te voorkomen
|
||||
-- Pas ook op met de volgorde van statements (binnen een transactie)
|
||||
-- Voorkom altijd UPDATE exc_import, dan UPDATE res_rsv_ruimte en dan weer UPDATE exc_import
|
||||
-- De laatste UPDATE exc_import moet voor de UPDATE res_rsv_ruimte
|
||||
PROCEDURE update_exchange (p_import_key IN NUMBER, p_days_from IN NUMBER DEFAULT 0, p_days_to IN NUMBER DEFAULT 90)
|
||||
IS
|
||||
v_aanduiding VARCHAR2 (600);
|
||||
@@ -1017,6 +1022,8 @@ AS
|
||||
FROM res_rsv_ruimte
|
||||
WHERE INSTR(res_rsv_ruimte_externnr, i.appt_id || '|') = 1);
|
||||
|
||||
COMMIT; -- Cleanup
|
||||
|
||||
FOR rec IN c_del
|
||||
LOOP
|
||||
BEGIN
|
||||
@@ -1079,6 +1086,18 @@ AS
|
||||
|
||||
v_errorhint := 'Deelreservering verwijderen';
|
||||
|
||||
-- Succesvol afgerond; zet vlag.
|
||||
-- AKZA#35459: vlag niet zetten voor een single die recurring is geworden;
|
||||
-- die recurrence moeten we straks in de add-cursor nog toevoegen.
|
||||
IF NOT (rec.reden = 'Made recurring')
|
||||
THEN
|
||||
UPDATE exc_import
|
||||
SET gelukt = 1
|
||||
WHERE appt_id || '|' || recur_id =
|
||||
rec.appt_id || '|' || rec.recur_id
|
||||
AND gelukt IS NULL;
|
||||
END IF;
|
||||
|
||||
UPDATE res_rsv_ruimte
|
||||
SET res_status_fo_key = v_status_fo_key,
|
||||
res_rsv_ruimte_verwijder = SYSDATE
|
||||
@@ -1110,18 +1129,6 @@ AS
|
||||
WHERE res_reservering_key =
|
||||
rec.res_reservering_key);
|
||||
|
||||
-- Succesvol afgerond; zet vlag.
|
||||
-- AKZA#35459: vlag niet zetten voor een single die recurring is geworden;
|
||||
-- die recurrence moeten we straks in de add-cursor nog toevoegen.
|
||||
IF NOT (rec.reden = 'Made recurring')
|
||||
THEN
|
||||
UPDATE exc_import
|
||||
SET gelukt = 1
|
||||
WHERE appt_id || '|' || recur_id =
|
||||
rec.appt_id || '|' || rec.recur_id
|
||||
AND gelukt IS NULL;
|
||||
END IF;
|
||||
|
||||
fac.imp_writelog (p_import_key,
|
||||
'I',
|
||||
v_aanduiding,
|
||||
@@ -1145,7 +1152,7 @@ AS
|
||||
END;
|
||||
END LOOP;
|
||||
|
||||
COMMIT;
|
||||
COMMIT; -- de DELETE's
|
||||
|
||||
-- Omdat we entries die gefaald zijn 'bewaren', kan het zijn dat we voor <20><>n appointment
|
||||
-- meerdere updates - of zelfs een delete - hebben. Dan zijn we alleen ge<67>nteresseerd in de
|
||||
@@ -1172,6 +1179,8 @@ AS
|
||||
FROM res_rsv_ruimte
|
||||
WHERE res_rsv_ruimte_externnr = i.appt_id || '|' || i.recur_id);
|
||||
|
||||
COMMIT; -- Cleanup
|
||||
|
||||
-- Dan bestaande bijwerken, anders kan het gebeuren dat we op basis van een UPDATE
|
||||
-- eerst een rsv_ruimte aanmaken en 'm daarna meteen proberen bij te werken.
|
||||
-- TODO: is dat nog steeds zo met "gelukt = 1"?
|
||||
@@ -1349,6 +1358,16 @@ AS
|
||||
END IF;
|
||||
END IF;
|
||||
|
||||
-- Succesvol afgerond; zet vlag.
|
||||
-- All<6C><6C>n voor nu beschouwde ruimte! (appointments kunnen op meerdere ruimtes zijn)
|
||||
-- TODO: komen we hier ook als er iets mis ging met de bezoekers?
|
||||
UPDATE exc_import
|
||||
SET gelukt = 1
|
||||
WHERE appt_id || '|' || recur_id =
|
||||
rec.appt_id || '|' || rec.recur_id
|
||||
AND room_id = rec.room_id
|
||||
AND gelukt IS NULL;
|
||||
|
||||
-- We hebben niet geskipt, dus willen we deze rsv_ruimte bijwerken
|
||||
-- Basisgegevens reservering gewijzigd?
|
||||
IF ( v_ruimte_extern_id != rec.res_ruimte_extern_id
|
||||
@@ -1459,16 +1478,6 @@ AS
|
||||
END IF;
|
||||
END IF;
|
||||
|
||||
-- Succesvol afgerond; zet vlag.
|
||||
-- All<6C><6C>n voor nu beschouwde ruimte! (appointments kunnen op meerdere ruimtes zijn)
|
||||
-- TODO: komen we hier ook als er iets mis ging met de bezoekers?
|
||||
UPDATE exc_import
|
||||
SET gelukt = 1
|
||||
WHERE appt_id || '|' || recur_id =
|
||||
rec.appt_id || '|' || rec.recur_id
|
||||
AND room_id = rec.room_id
|
||||
AND gelukt IS NULL;
|
||||
|
||||
IF (v_debug)
|
||||
THEN
|
||||
fac.imp_writelog (p_import_key,
|
||||
@@ -1495,7 +1504,7 @@ AS
|
||||
END;
|
||||
END LOOP;
|
||||
|
||||
COMMIT;
|
||||
COMMIT; -- de UPDATE's
|
||||
|
||||
-- Ten slotte nieuwe reserveringen toevoegen
|
||||
FOR rec IN c_add
|
||||
@@ -1574,6 +1583,14 @@ AS
|
||||
-- AND res_rsv_ruimte_externnr NOT LIKE '%|'||rec.recur_id||'|%'
|
||||
AND res_rsv_ruimte_verwijder IS NULL;
|
||||
|
||||
-- Succesvol afgerond; zet vlag.
|
||||
-- TODO: komen we hier ook als er iets mis ging met de bezoekers?
|
||||
UPDATE exc_import
|
||||
SET gelukt = 1
|
||||
WHERE appt_id || '|' || recur_id =
|
||||
rec.appt_id || '|' || rec.recur_id
|
||||
AND gelukt IS NULL;
|
||||
|
||||
-- Er bestaan al deelreserveringen voor andere occurences van deze recurring appointment
|
||||
-- Deelreservering binnen de bijbehorende res_reservering aanmaken
|
||||
IF (v_count > 0)
|
||||
@@ -1701,14 +1718,6 @@ AS
|
||||
v_errorhint := 'Toevoegen bezoekers';
|
||||
exc.importBezoekers(p_import_key, rec.appt_id, rec.recur_id, v_rsv_ruimte_key, date_interval_start, date_interval_end);
|
||||
|
||||
-- Succesvol afgerond; zet vlag.
|
||||
-- TODO: komen we hier ook als er iets mis ging met de bezoekers?
|
||||
UPDATE exc_import
|
||||
SET gelukt = 1
|
||||
WHERE appt_id || '|' || recur_id =
|
||||
rec.appt_id || '|' || rec.recur_id
|
||||
AND gelukt IS NULL;
|
||||
|
||||
IF (v_debug)
|
||||
THEN
|
||||
fac.imp_writelog (p_import_key,
|
||||
@@ -1782,7 +1791,7 @@ AS
|
||||
v_errorhint := '';
|
||||
exc.set_ruimtes_clean (p_import_key);
|
||||
END IF;
|
||||
COMMIT;
|
||||
COMMIT; -- de INSERT's
|
||||
|
||||
EXCEPTION
|
||||
WHEN OTHERS
|
||||
|
||||
@@ -274,21 +274,6 @@ CREATE OR REPLACE PACKAGE BODY mld AS
|
||||
THEN
|
||||
newstatus := pstatus;
|
||||
eventcode := 'MLDACP';
|
||||
ELSIF currentstatus = 5
|
||||
THEN
|
||||
newstatus := pstatus;
|
||||
-- Geen nieuwe tracking bij heropenen.
|
||||
eventcode := NULL;
|
||||
-- De MLDAFM trackingen veranderen in een MLDUPD tracking. De tekst (fac_srtnotificatie_oms) blijft hetzelfde.
|
||||
UPDATE fac_tracking
|
||||
SET fac_srtnotificatie_key = ((SELECT fac_srtnotificatie_key
|
||||
FROM fac_srtnotificatie tr
|
||||
WHERE fac_srtnotificatie_code = 'MLDUPD')),
|
||||
fac_tracking_oms = lcl.l('lcl_mld_is_mldafm')
|
||||
WHERE fac_tracking_refkey = pmeldingkey
|
||||
AND fac_srtnotificatie_key = ((SELECT sn.fac_srtnotificatie_key
|
||||
FROM fac_srtnotificatie sn
|
||||
WHERE sn.fac_srtnotificatie_code = 'MLDAFM'));
|
||||
ELSIF currentstatus = 7
|
||||
THEN
|
||||
newstatus := pstatus;
|
||||
|
||||
Reference in New Issue
Block a user