-- Customer specific once-script UWVA92.
--
-- (c) 2015 SG|facilitor bv
SET ECHO ON
SPOOL xuwva92.lst
SET DEFINE OFF

-- UWVA#31345: Opsplitsen AMSD2 en correctie AMSG3/4
-- a. Verhuizen B-ruimten per AMSD2-verdieping naar BEATRIX-verdieping
-- b. Verhuizen C-ruimten van AMSG4/2e verdieping naar AMSG3/2e verdieping
SET SERVEROUTPUT ON size 1000000;

/* Formatted on 10-2-2015 11:46:38 (QP5 v5.136.908.31019) */
DECLARE
   oracle_err_num   NUMBER;
   oracle_err_mes   VARCHAR2 (255);
   v_aanduiding     VARCHAR2 (255);
   v_errormsg       VARCHAR2 (1024);
   v_errorhint      VARCHAR2 (1024);

   CURSOR c
   IS
      SELECT v_van.alg_gebouw_key van_gebouw_key,
             v_van.alg_verdieping_volgnr van_verdieping_volgnr,
             r.alg_ruimte_nr,
             r.alg_ruimte_key,
             v_naar.alg_verdieping_key naar_verdieping_key
        FROM alg_v_aanwezigruimte r,
             alg_v_aanwezigverdieping v_van,
             alg_v_aanwezigverdieping v_naar
       WHERE     r.alg_ruimte_nr LIKE 'B%'
             AND r.alg_verdieping_key = v_van.alg_verdieping_key
             AND v_van.alg_gebouw_key = 13                            -- AMSD2
             AND v_van.alg_verdieping_volgnr = v_naar.alg_verdieping_volgnr
             AND v_naar.alg_gebouw_key = 77039                      -- BEATRIX
      UNION ALL
      SELECT v_van.alg_gebouw_key van_gebouw_key,
             v_van.alg_verdieping_volgnr van_verdieping_volgnr,
             r.alg_ruimte_nr,
             r.alg_ruimte_key,
             v_naar.alg_verdieping_key naar_verdieping_key
        FROM alg_v_aanwezigruimte r,
             alg_v_aanwezigverdieping v_van,
             alg_v_aanwezigverdieping v_naar
       WHERE     r.alg_ruimte_nr LIKE 'C%'
             AND r.alg_verdieping_key = v_van.alg_verdieping_key
             AND v_van.alg_verdieping_key = 585        -- AMSG4/2e verdieping!
             AND v_van.alg_gebouw_key = 4                             -- AMSG4
             AND v_van.alg_verdieping_volgnr = v_naar.alg_verdieping_volgnr
             AND v_naar.alg_gebouw_key = 3                            -- AMSG3
      ORDER BY 1, 2, 3;
BEGIN
   FOR r1 IN c
   LOOP
      BEGIN
         v_aanduiding :=
               '['
            || TO_CHAR (r1.van_gebouw_key)
            || '|'
            || TO_CHAR (r1.van_verdieping_volgnr)
            || '|'
            || r1.alg_ruimte_nr
            || '] ';

         v_errorhint := 'Fout bijwerken verdieping';

         UPDATE alg_ruimte
            SET alg_verdieping_key = r1.naar_verdieping_key
          WHERE alg_ruimte_key = r1.alg_ruimte_key;

         COMMIT;
      EXCEPTION
         WHEN OTHERS
         THEN
            oracle_err_num := SQLCODE;
            oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
            v_errormsg :=
                  v_aanduiding
               || '(ORACLE error '
               || oracle_err_num
               || '/'
               || oracle_err_mes
               || ')';
            DBMS_OUTPUT.PUT_LINE (
               'Error: ' || v_errormsg || '; Hint: ' || v_errorhint);
      END;
   END LOOP;
END;
/

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

@@uwva_prs.sql
--@@uwva_fin.sql
@@uwva_hv.sql
@@uwva_misc.sql

BEGIN fac.registercustversion('UWVA', 92); END;
/
COMMIT;
