--
-- $Id$
--
-- Dit script schoont de reserveringen en meldingen die zijn afgemeld voor 01-01-2021 (zet ze in het archief). Korte beschrijving wat het script doet
-- 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 = 'WELK#75628.SQL'
DEFINE dbuser   = 'WELK'

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 c_mld IS
        SELECT m.mld_melding_key
          FROM mld_melding m
         WHERE     m.mld_melding_status = 5                         --Afgemeld
               AND TRUNC (m.mld_melding_datum) <
                   TO_DATE ('01012021', 'DDMMYYYY');

    CURSOR c_opdr IS
        SELECT m.mld_melding_key,
               o.mld_opdr_key,
               o.mld_opdr_bedrijfopdr_volgnr
          FROM mld_melding m, mld_opdr o
         WHERE     m.mld_melding_key = o.mld_melding_key
               AND m.mld_melding_status IN (5,6)                    --Afgemeld/Verwerkt
               AND o.mld_statusopdr_key = 6                         --Afgemeld
               AND TRUNC (m.mld_melding_datum) <
                   TO_DATE ('01012021', 'DDMMYYYY');

    CURSOR c_res IS
        SELECT res_rsv_ruimte_key, res_reservering_key, res_rsv_ruimte_van
          FROM res_rsv_ruimte
         WHERE     res_status_bo_key IN (2, 5)
               AND res_rsv_ruimte_verwijder IS NULL
               AND TRUNC (res_rsv_ruimte_van) <
                   TO_DATE ('01012021', 'DDMMYYYY');
BEGIN
    FOR rec IN c_mld
    LOOP
        UPDATE mld_melding
           SET mld_melding_status = 6
         WHERE mld_melding_key = rec.mld_melding_key;

        fac.trackaction ('MLDVER',
                         rec.mld_melding_key,
                         4,
                         NULL,
                         'Administratief verwerkt');
    END LOOP;

    FOR rec IN c_opdr
    LOOP
        UPDATE mld_opdr
           SET mld_statusopdr_key = 7
         WHERE mld_opdr_key = rec.mld_opdr_key;

        fac.trackaction (
            'ORDVER',
            rec.mld_opdr_key,
            4,
            NULL,
            'Opdracht ' || rec.mld_opdr_key || ' is geheel verwerkt');
    END LOOP;

    FOR rec IN c_res
    LOOP
        UPDATE res_rsv_ruimte
           SET res_status_bo_key = 6
         WHERE res_rsv_ruimte_key = rec.res_rsv_ruimte_key;

        fac.trackaction ('RESVER',
                         rec.res_rsv_ruimte_key,
                         4,
                         NULL,
                         'Administratief verwerkt');
    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
