192 lines
9.8 KiB
SQL
192 lines
9.8 KiB
SQL
--
|
|
-- $Id$
|
|
--
|
|
-- Als gevolg van FCLT#81770 zijn veel gekoppelde reserveringen aan de Facilitor kant verwijderd
|
|
-- Dit script wil die reserveringen, inclusief voorzieningen & catering, herstellen
|
|
-- Omdat de 'koppelingen onder water' nog in tact zijn kunnen we met dit once script de artikelen, delen en rsv_ruimtes 'undeleten'
|
|
-- om zo zo dicht mogelijk bij de herstelde situatie te komen
|
|
-- Bezoekers bij reserveringen zijn wel onherroepelijk verwijderd
|
|
|
|
-- Voor dbuser invullen: - indien script voor 1 klant is: 'AADS' (de klantcode, zoals vermeld in fac_version_cust)
|
|
-- - script is voor meerdere klanten: 'AAXX' (de groepcode, zoals vermeld in fac_version_group)
|
|
-- - script is voor meerdere klanten met naam volgens een bepaald patroon: '^AA|^ASMS|^GULU|^NMMS|^RABO|^ZKHM'
|
|
--
|
|
DEFINE thisfile = 'FCLT#82178.SQL'
|
|
DEFINE dbuser = '^ALKM|^ASPN|^EBNF|^LBRN|^WELK|^WZUV|^AAIT|^ALLR|^CVGZ|^PROR'
|
|
|
|
SET ECHO ON
|
|
SET DEFINE ON
|
|
COLUMN fcltlogfile NEW_VALUE fcltlogfile NOPRINT;
|
|
COLUMN fcltcusterr NEW_VALUE fcltcusterr NOPRINT;
|
|
WHENEVER SQLERROR CONTINUE;
|
|
SELECT adm.getscriptspoolfile('&thisfile') AS fcltlogfile FROM DUAL;
|
|
SPOOL &fcltlogfile
|
|
WHENEVER SQLERROR EXIT;
|
|
SELECT adm.checkscriptcust('&dbuser') AS fcltcusterr FROM DUAL;
|
|
WHENEVER SQLERROR CONTINUE;
|
|
PROMPT &fcltcusterr
|
|
SET DEFINE OFF
|
|
|
|
------ payload begin ------
|
|
|
|
DECLARE
|
|
CURSOR resurrect IS
|
|
SELECT res_rsv_ruimte_key,
|
|
res_reservering_key,
|
|
res_rsv_ruimte_volgnr,
|
|
res_rsv_ruimte_externnr,
|
|
res_rsv_ruimte_verwijder
|
|
FROM res_rsv_ruimte rrr, fac_tracking tr, fac_srtnotificatie str
|
|
WHERE ( ( res_rsv_ruimte_verwijder BETWEEN TO_DATE (
|
|
'02-02-2024 07:00',
|
|
'DD-MM-YYYY HH24-MI')
|
|
AND TO_DATE (
|
|
'02-02-2024 08:00',
|
|
'DD-MM-YYYY HH24-MI')
|
|
AND tr.fac_tracking_datum BETWEEN TO_DATE (
|
|
'02-02-2024 07:00',
|
|
'DD-MM-YYYY HH24-MI')
|
|
AND TO_DATE (
|
|
'02-02-2024 08:00',
|
|
'DD-MM-YYYY HH24-MI'))
|
|
OR ( res_rsv_ruimte_verwijder BETWEEN TO_DATE (
|
|
'03-02-2024 07:00',
|
|
'DD-MM-YYYY HH24-MI')
|
|
AND TO_DATE (
|
|
'03-02-2024 08:00',
|
|
'DD-MM-YYYY HH24-MI')
|
|
AND tr.fac_tracking_datum BETWEEN TO_DATE (
|
|
'03-02-2024 07:00',
|
|
'DD-MM-YYYY HH24-MI')
|
|
AND TO_DATE (
|
|
'03-02-2024 08:00',
|
|
'DD-MM-YYYY HH24-MI'))
|
|
OR ( res_rsv_ruimte_verwijder BETWEEN TO_DATE (
|
|
'04-02-2024 07:00',
|
|
'DD-MM-YYYY HH24-MI')
|
|
AND TO_DATE (
|
|
'04-02-2024 08:00',
|
|
'DD-MM-YYYY HH24-MI')
|
|
AND tr.fac_tracking_datum BETWEEN TO_DATE (
|
|
'04-02-2024 07:00',
|
|
'DD-MM-YYYY HH24-MI')
|
|
AND TO_DATE (
|
|
'04-02-2024 08:00',
|
|
'DD-MM-YYYY HH24-MI'))
|
|
OR ( res_rsv_ruimte_verwijder BETWEEN TO_DATE (
|
|
'05-02-2024 07:00',
|
|
'DD-MM-YYYY HH24-MI')
|
|
AND TO_DATE (
|
|
'05-02-2024 08:00',
|
|
'DD-MM-YYYY HH24-MI')
|
|
AND tr.fac_tracking_datum BETWEEN TO_DATE (
|
|
'05-02-2024 07:00',
|
|
'DD-MM-YYYY HH24-MI')
|
|
AND TO_DATE (
|
|
'05-02-2024 08:00',
|
|
'DD-MM-YYYY HH24-MI'))
|
|
OR ( res_rsv_ruimte_verwijder BETWEEN TO_DATE (
|
|
'06-02-2024 07:00',
|
|
'DD-MM-YYYY HH24-MI')
|
|
AND TO_DATE (
|
|
'06-02-2024 08:00',
|
|
'DD-MM-YYYY HH24-MI')
|
|
AND tr.fac_tracking_datum BETWEEN TO_DATE (
|
|
'06-02-2024 07:00',
|
|
'DD-MM-YYYY HH24-MI')
|
|
AND TO_DATE (
|
|
'06-02-2024 08:00',
|
|
'DD-MM-YYYY HH24-MI')))
|
|
AND res_rsv_ruimte_externnr IS NOT NULL
|
|
AND rrr.res_rsv_ruimte_key = tr.fac_tracking_refkey
|
|
AND tr.prs_perslid_key IS NULL
|
|
AND tr.fac_srtnotificatie_key = str.fac_srtnotificatie_key
|
|
AND str.fac_srtnotificatie_code = 'RESDEL';
|
|
BEGIN
|
|
FOR rec IN resurrect
|
|
LOOP
|
|
BEGIN
|
|
-- Als ik in Outlook ondertussen aangepast ben, dan sta ik mogelijk opnieuw in Facilitor
|
|
-- Verwijder hier alle kopieen
|
|
DECLARE
|
|
CURSOR duplicate IS
|
|
SELECT res_rsv_ruimte_key
|
|
FROM res_rsv_ruimte
|
|
WHERE res_rsv_ruimte_verwijder IS NULL
|
|
AND res_rsv_ruimte_aanmaak >=
|
|
TO_DATE ('02-02-2024 08:00',
|
|
'DD-MM-YYYY HH24-MI')
|
|
AND res_rsv_ruimte_externnr =
|
|
rec.res_rsv_ruimte_externnr;
|
|
BEGIN
|
|
FOR dup IN duplicate
|
|
LOOP
|
|
UPDATE res_rsv_ruimte
|
|
SET res_status_fo_key = 1,
|
|
res_rsv_ruimte_verwijder = SYSDATE
|
|
WHERE res_rsv_ruimte_key = dup.res_rsv_ruimte_key;
|
|
|
|
-- Logging van herstelwerkzaamheden
|
|
fac.trackaction (
|
|
'#RESDEL',
|
|
dup.res_rsv_ruimte_key,
|
|
NULL,
|
|
SYSDATE,
|
|
'Herstelactie ticket 82178: Reservering verwijderd tbv de originele reservering '
|
|
|| rec.res_reservering_key
|
|
|| '/'
|
|
|| rec.res_rsv_ruimte_volgnr);
|
|
END LOOP;
|
|
END;
|
|
|
|
UPDATE res_rsv_deel
|
|
SET res_rsv_deel_verwijder = NULL
|
|
WHERE res_rsv_ruimte_key = rec.res_rsv_ruimte_key
|
|
AND res_rsv_deel_verwijder = rec.res_rsv_ruimte_verwijder;
|
|
|
|
UPDATE res_rsv_artikel
|
|
SET res_rsv_artikel_verwijder = NULL
|
|
WHERE res_rsv_ruimte_key = rec.res_rsv_ruimte_key
|
|
AND res_rsv_artikel_verwijder =
|
|
rec.res_rsv_ruimte_verwijder;
|
|
|
|
UPDATE res_rsv_ruimte
|
|
SET res_rsv_ruimte_externsyncdate = SYSDATE,
|
|
res_rsv_ruimte_verwijder = NULL,
|
|
res_status_fo_key = 2
|
|
WHERE res_rsv_ruimte_key = rec.res_rsv_ruimte_key;
|
|
|
|
-- Logging van herstelactie
|
|
fac.trackaction (
|
|
'#RESUPD',
|
|
rec.res_rsv_ruimte_key,
|
|
NULL,
|
|
SYSDATE,
|
|
'Herstelactie ticket 82178: Reservering hersteld');
|
|
EXCEPTION
|
|
WHEN DUP_VAL_ON_INDEX
|
|
THEN -- Er bestaat al een reservering met dit externnr
|
|
DBMS_OUTPUT.PUT_LINE (
|
|
'externnr van r'
|
|
|| rec.res_reservering_key
|
|
|| '/'
|
|
|| rec.res_rsv_ruimte_volgnr
|
|
|| ' reeds overschreven.');
|
|
CONTINUE;
|
|
END;
|
|
END LOOP;
|
|
END;
|
|
/
|
|
|
|
------ payload end ------
|
|
|
|
SET DEFINE OFF
|
|
BEGIN adm.systrackscriptId ('$Id$', 1); END;
|
|
/
|
|
|
|
COMMIT;
|
|
SET ECHO OFF
|
|
SPOOL OFF
|
|
SET DEFINE ON
|
|
PROMPT Logfile of this upgrade is: &fcltlogfile
|