-- Customer specific once-script NYBU#37249.
--
-- (c) 2016 Facilitor B.V.
--
-- Support: +31 53 4800700
SET ECHO ON
SPOOL xNYBU37249.lst
SET DEFINE OFF

-- NYBU#37249: Verwijder alle toekomstige (bezoekers bij) reserveringen na 1-1-2017!
-- Verwijder BEZ-tracking!
DELETE FROM fac_tracking t
      WHERE EXISTS
               (SELECT 1                      -- Alle BEZ-tracking (bezoeker)!
                  FROM fac_srtnotificatie
                 WHERE     fac_srtnotificatie_code LIKE 'BEZ%'
                       AND fac_srtnotificatie_xmlnode IN ('bezoeker')
                       AND fac_srtnotificatie_key = t.fac_srtnotificatie_key)
            AND EXISTS
                  (SELECT 1      -- Alle RES-afspraak-bezoekers na 01-01-2017!
                     FROM bez_bezoekers b, bez_afspraak a, res_rsv_ruimte rr
                    WHERE b.bez_afspraak_key = a.bez_afspraak_key
                          AND a.res_rsv_ruimte_key = rr.res_rsv_ruimte_key
                          AND rr.res_rsv_ruimte_van >= TO_DATE ('01012017', 'ddmmyyyy')
                          AND b.bez_bezoekers_key = t.fac_tracking_refkey);

DELETE FROM fac_tracking t
      WHERE EXISTS
               (SELECT 1                      -- Alle BEZ-tracking (afspraak)!
                  FROM fac_srtnotificatie
                 WHERE     fac_srtnotificatie_code LIKE 'BEZ%'
                       AND fac_srtnotificatie_xmlnode IN ('afspraak')
                       AND fac_srtnotificatie_key = t.fac_srtnotificatie_key)
            AND EXISTS
                  (SELECT 1               -- Alle RES-afspraken na 01-01-2017!
                     FROM bez_afspraak a, res_rsv_ruimte rr
                    WHERE a.res_rsv_ruimte_key = rr.res_rsv_ruimte_key
                          AND rr.res_rsv_ruimte_van >= TO_DATE ('01012017', 'ddmmyyyy')
                          AND a.bez_afspraak_key = t.fac_tracking_refkey);

-- Verwijder BEZ-user_messages!
DELETE FROM web_user_messages um
      WHERE EXISTS
               (SELECT 1                 -- Alle BEZ-user_messages (bezoeker)!
                  FROM fac_srtnotificatie
                 WHERE     fac_srtnotificatie_code LIKE 'BEZ%'
                       AND fac_srtnotificatie_xmlnode IN ('bezoeker')
                       AND fac_srtnotificatie_key = um.fac_srtnotificatie_key)
            AND EXISTS
                  (SELECT 1      -- Alle RES-afspraak-bezoekers na 01-01-2017!
                     FROM bez_bezoekers b, bez_afspraak a, res_rsv_ruimte rr
                    WHERE b.bez_afspraak_key = a.bez_afspraak_key
                          AND a.res_rsv_ruimte_key = rr.res_rsv_ruimte_key
                          AND rr.res_rsv_ruimte_van >= TO_DATE ('01012017', 'ddmmyyyy')
                          AND b.bez_bezoekers_key = um.web_user_mess_action_params);

DELETE FROM web_user_messages um
      WHERE EXISTS
               (SELECT 1                 -- Alle BEZ-user_messages (afspraak)!
                  FROM fac_srtnotificatie
                 WHERE     fac_srtnotificatie_code LIKE 'BEZ%'
                       AND fac_srtnotificatie_xmlnode IN ('afspraak')
                       AND fac_srtnotificatie_key = um.fac_srtnotificatie_key)
            AND EXISTS
                  (SELECT 1               -- Alle RES-afspraken na 01-01-2017!
                     FROM bez_afspraak a, res_rsv_ruimte rr
                    WHERE a.res_rsv_ruimte_key = rr.res_rsv_ruimte_key
                          AND rr.res_rsv_ruimte_van >= TO_DATE ('01012017', 'ddmmyyyy')
                          AND a.bez_afspraak_key = um.web_user_mess_action_params);

-- Verwijder BEZ-afspraak (en daarmee impliciet BEZ-bezoekers)!
/*
DELETE FROM bez_bezoekers b
      WHERE EXISTS
               (SELECT 1
                  FROM bez_afspraak a, res_rsv_ruimte rr
                 WHERE a.bez_afspraak_key = b.bez_afspraak_key
                       AND a.res_rsv_ruimte_key = rr.res_rsv_ruimte_key
                       AND rr.res_rsv_ruimte_van >= TO_DATE ('01012017', 'ddmmyyyy'));
*/
DELETE FROM bez_afspraak a
      WHERE EXISTS
               (SELECT 1
                  FROM res_rsv_ruimte
                 WHERE res_rsv_ruimte_key = a.res_rsv_ruimte_key
                       AND res_rsv_ruimte_van >= TO_DATE ('01012017', 'ddmmyyyy'));



-- Verwijder RES-tracking!
/*
SELECT sn.fac_srtnotificatie_code,
       r.res_reservering_key,
       r.res_reservering_aanmaak,
       rr.res_reservering_key || '/' || rr.res_rsv_ruimte_volgnr res_id,
       rr.res_status_bo_key,
       t.*
  FROM fac_tracking t, fac_srtnotificatie sn, res_rsv_ruimte rr, res_reservering r
 WHERE     t.fac_srtnotificatie_key = sn.fac_srtnotificatie_key
       AND t.fac_tracking_refkey = rr.res_rsv_ruimte_key
       AND rr.res_reservering_key = r.res_reservering_key
       AND EXISTS
             (SELECT 1                                   -- Alle RES-tracking!
                FROM fac_srtnotificatie
               WHERE fac_srtnotificatie_code LIKE 'RES%'
                     AND fac_srtnotificatie_xmlnode IN ('reservering', 'xreservering')
                     AND fac_srtnotificatie_key = t.fac_srtnotificatie_key)
       AND EXISTS
             (SELECT 1                    -- Alle reserveringen na 01-01-2017!
                FROM res_rsv_ruimte
               WHERE res_rsv_ruimte_van >= TO_DATE ('01012017', 'ddmmyyyy')
                     AND res_rsv_ruimte_key = t.fac_tracking_refkey);
*/
DELETE FROM fac_tracking t
      WHERE EXISTS
               (SELECT 1                                 -- Alle RES-tracking!
                  FROM fac_srtnotificatie
                 WHERE fac_srtnotificatie_code LIKE 'RES%'
                       AND fac_srtnotificatie_xmlnode IN ('reservering', 'xreservering')
                       AND fac_srtnotificatie_key = t.fac_srtnotificatie_key)
            AND EXISTS
                  (SELECT 1               -- Alle reserveringen na 01-01-2017!
                     FROM res_rsv_ruimte
                    WHERE res_rsv_ruimte_van >= TO_DATE ('01012017', 'ddmmyyyy')
                          AND res_rsv_ruimte_key = t.fac_tracking_refkey);

-- Verwijder RES-user_messages!
DELETE FROM web_user_messages um
      WHERE EXISTS
               (SELECT 1                            -- Alle RES-user_messages!
                  FROM fac_srtnotificatie
                 WHERE fac_srtnotificatie_code LIKE 'RES%'
                       AND fac_srtnotificatie_xmlnode IN ('reservering', 'xreservering')
                       AND fac_srtnotificatie_key = um.fac_srtnotificatie_key)
            AND EXISTS
                  (SELECT 1               -- Alle reserveringen na 01-01-2017!
                     FROM res_rsv_ruimte
                    WHERE res_rsv_ruimte_van >= TO_DATE ('01012017', 'ddmmyyyy')
                          AND res_rsv_ruimte_key = um.web_user_mess_action_params);

-- Verwijder RES-reserveringen (en alles daaronder)!
/*
DELETE FROM res_rsv_deel
 WHERE res_rsv_deel_van >= TO_DATE ('01012017', 'ddmmyyyy');

DELETE FROM res_rsv_artikel
 WHERE res_rsv_artikel_levering >= TO_DATE ('01012017', 'ddmmyyyy');

DELETE FROM res_kenmerkwaarde rk
 WHERE EXISTS (SELECT 1 FROM res_rsv_ruimte WHERE res_rsv_ruimte_key = rk.res_rsv_ruimte_key AND res_rsv_ruimte_van >= TO_DATE ('01012017', 'ddmmyyyy'));

DELETE FROM res_rsv_ruimte
 WHERE res_rsv_ruimte_van >= TO_DATE ('01012017', 'ddmmyyyy');

DELETE FROM res_reservering r
 WHERE NOT EXISTS (SELECT 1 FROM res_rsv_ruimte WHERE res_reservering_key = r.res_reservering_key);
*/
UPDATE res_rsv_deel
   SET res_rsv_deel_verwijder = SYSDATE
 WHERE res_rsv_deel_van >= TO_DATE ('01012017', 'ddmmyyyy')
   AND res_rsv_deel_verwijder IS NULL;

UPDATE res_rsv_artikel
   SET res_rsv_artikel_verwijder = SYSDATE
 WHERE res_rsv_artikel_levering >= TO_DATE ('01012017', 'ddmmyyyy')
   AND res_rsv_artikel_verwijder IS NULL;

UPDATE res_kenmerkwaarde rk
   SET rk.res_kenmerkwaarde_verwijder = SYSDATE
 WHERE EXISTS (SELECT 1 FROM res_rsv_ruimte WHERE res_rsv_ruimte_key = rk.res_rsv_ruimte_key AND res_rsv_ruimte_van >= TO_DATE ('01012017', 'ddmmyyyy'))
   AND rk.res_kenmerkwaarde_verwijder IS NULL;

UPDATE res_rsv_ruimte
   SET res_rsv_ruimte_verwijder = SYSDATE
 WHERE res_rsv_ruimte_van >= TO_DATE ('01012017', 'ddmmyyyy')
   AND res_rsv_ruimte_verwijder IS NULL;

COMMIT;

--UPDATE res_reservering r
--   SET r.res_reservering_verwijder = SYSDATE
-- WHERE NOT EXISTS (SELECT 1 FROM res_rsv_ruimte WHERE res_reservering_key = r.res_reservering_key AND res_rsv_ruimte_verwijder IS NULL)
--   AND r.res_reservering_verwijder IS NULL;
UPDATE res_reservering r
   SET r.res_reservering_verwijder = SYSDATE
 WHERE NOT EXISTS (SELECT 1 FROM res_rsv_ruimte WHERE res_reservering_key = r.res_reservering_key AND res_rsv_ruimte_van < TO_DATE ('01012017', 'ddmmyyyy') AND res_rsv_ruimte_verwijder IS NULL)
   AND r.res_reservering_verwijder IS NULL;

COMMIT;
BEGIN adm.systrackscriptId('$Id$'); END;
/
SPOOL OFF
