--
-- $Id$
--
-- Customer specific once-script FMHN#88583_RES.sql.
DEFINE thisfile = 'FMHN#88583_RES.sql'
DEFINE dbuser   = '^FMHN'

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 ------

-- FMHN#88583: Migratie van bezoekersregistratie, reserveringen en catering voor nieuw pand Zurichtoren;
-- Hoofdbewoner is ACM. 

DECLARE
    c_fielddelimitor       VARCHAR2 (1) := ';';
    v_newline              VARCHAR2 (1000);                      -- Input line
    v_errormsg             VARCHAR2 (1000);
    v_errorhint            VARCHAR2 (1000);
    oracle_err_num         NUMBER;
    oracle_err_mes         VARCHAR2 (200);
    v_aanduiding           VARCHAR2 (500);
    v_reservering_key      NUMBER;
    v_res_rsv_ruimte_key   NUMBER;
    v_ruimte_opstel_key    NUMBER;

    CURSOR zaalres IS
          SELECT csv.fac_import_key,
                 csv.fac_imp_csv_col01
                     AS ResnrTD,
                 csv.fac_imp_csv_col02
                     AS ruimte,
                 (SELECT ro.res_ruimte_opstel_key
                    FROM res_ruimte               rr,
                         RES_V_ALG_RUIMTE_GEGEVENS rag,
                         res_ruimte_opstelling    ro
                   WHERE     rag.res_ruimte_key = rr.res_ruimte_key
                         AND rag.alg_locatie_key = 1
                         AND ro.res_ruimte_key = rr.res_ruimte_key
                         AND ro.res_ruimte_opstel_default = 1
                         AND rr.res_ruimte_friendlyname = csv.fac_imp_csv_col02)
                     opstel_key,
                 SUBSTR (csv.fac_imp_csv_col03, 1, 60)
                     AS omschrijving,
                 COALESCE (fac.safe_to_date (csv.fac_imp_csv_col04, 'YYYY-MM-DD HH24:MI'),fac.safe_to_date (csv.fac_imp_csv_col04, 'DD-MM-YYYY HH24:MI'))
                     AS van,
                 COALESCE (fac.safe_to_date (csv.fac_imp_csv_col05, 'YYYY-MM-DD HH24:MI'),fac.safe_to_date (csv.fac_imp_csv_col05, 'DD-MM-YYYY HH24:MI'))
                     AS tot,
                 csv.fac_imp_csv_col10
                     AS status,
                 COALESCE (aanv.prs_perslid_key, 3)
                     AS key_aanvrager,
                 csv.fac_imp_csv_col07
                     AS email_aanvrager,
                 COALESCE (HOST.prs_perslid_key, aanv.prs_perslid_key, 3)
                     AS key_host,
                 csv.fac_imp_csv_col09
                     AS email_host,
                 (SELECT MAX (prs_kostenplaats_key)
                    FROM prs_afdeling
                   WHERE prs_afdeling_key =
                         COALESCE (HOST.prs_afdeling_key,
                                   aanv.prs_afdeling_key,
                                   NULL))
                     AS kostenplaats_key,
                 DECODE (fac.safe_to_number (csv.fac_imp_csv_col12),
                         0, 1,
                         fac.safe_to_number (csv.fac_imp_csv_col12))
                     AS deelnemers,
                 SUBSTR (csv.fac_imp_csv_col13, 1, 2000)
                     AS aantekeningen
            FROM fac_imp_csv csv
                 LEFT JOIN prs_v_perslid_gegevens aanv
                     ON LOWER (aanv.prs_perslid_email) =
                        LOWER (csv.fac_imp_csv_col07)
                 LEFT JOIN prs_v_perslid_gegevens HOST
                     ON LOWER (HOST.prs_perslid_email) =
                        LOWER (csv.fac_imp_csv_col09)
           WHERE LOWER (csv.fac_imp_csv_col01) <> 'reserveringsnummer'
        --                 AND csv.fac_imp_csv_col01 = 'H2504 234'
        ORDER BY csv.fac_imp_csv_key;
BEGIN
    FOR rec IN zaalres
    LOOP
        BEGIN
            v_aanduiding := rec.ResnrTD;

            INSERT INTO res_reservering (res_reservering_verwijder)
                 VALUES (NULL)
              RETURNING res_reservering_key
                   INTO v_reservering_key;

            v_aanduiding := rec.ResnrTD || '-' || v_reservering_key || '/1';
            v_errormsg := 'Fout toevoegen rsv_ruimte';

            INSERT INTO res_rsv_ruimte (res_reservering_key,
                                        res_rsv_ruimte_volgnr,
                                        res_rsv_ruimte_kosten_klant,
                                        prs_kostenplaats_key,
                                        res_rsv_ruimte_omschrijving,
                                        res_rsv_ruimte_opmerking,
                                        res_rsv_ruimte_contact_key,
                                        res_rsv_ruimte_host_key,
                                        res_ruimte_opstel_key,
                                        res_activiteit_key,
                                        res_rsv_ruimte_van,
                                        res_rsv_ruimte_tot,
                                        res_rsv_ruimte_bezoekers,
                                        res_status_fo_key,
                                        res_status_bo_key,
                                        res_rsv_ruimte_flag)
                 VALUES (v_reservering_key,
                         1,
                         1,
                         rec.kostenplaats_key,
                         rec.omschrijving,
                         SUBSTR (rec.aantekeningen, 1, 2000),
                         rec.key_aanvrager,
                         rec.key_host,
                         rec.opstel_key,
                         10,                                    -- vergadering
                         rec.van,
                         rec.tot,
                         rec.deelnemers,
                         2,
                         2,
                         0)
              RETURNING res_rsv_ruimte_key
                   INTO v_res_rsv_ruimte_key;

            FAC.trackaction ('#RESNEW',
                             v_res_rsv_ruimte_key,
                             3,
                             SYSDATE,
                             'Aangemaakt door conversie, aangevraagd door: '
                             || rec.email_aanvrager);

            RES.set_ruimte_dirty (v_res_rsv_ruimte_key);

            INSERT INTO res_kenmerkwaarde (res_rsv_ruimte_key,
                                           res_kenmerk_key,
                                           res_kenmerkreservering_waarde)
                 VALUES (v_res_rsv_ruimte_key, 23  -- Kenmerk referentienummer
                                                 , rec.ResnrTD);

            --
            --            INSERT INTO res_kenmerkwaarde (res_rsv_ruimte_key,
            --                                           res_kenmerk_key,
            --                                           res_kenmerkreservering_waarde)
            --                     VALUES (v_res_rsv_ruimte_key,
            --                             68, -- Kenmerk toelichting bij activiteit Vergadering
            --                             SUBSTR (rec.aantekeningen, 1, 2000));


            fac.imp_writelog (
                rec.fac_import_key,
                'I',
                'Reservering is aangemaakt: ' || v_res_rsv_ruimte_key,
                v_aanduiding);
        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
