--
-- $Id$
--
-- <<Korte omschrijving wat het script doet>>

DEFINE thisfile = 'MDUX#38328.SQL'
DEFINE dbuser   = '^MDUX'
DEFINE custid   = 'MDUX'

SET ECHO ON
SET DEFINE ON
COLUMN fcltlogfile NEW_VALUE fcltlogfile NOPRINT;
WHENEVER SQLERROR EXIT;
SELECT adm.scriptspoolfile('&dbuser', '&thisfile') AS fcltlogfile FROM DUAL;
WHENEVER SQLERROR CONTINUE;
SPOOL &fcltlogfile
SET DEFINE OFF

------ payload begin ------


CREATE OR REPLACE PROCEDURE mdux_ins_conv_object2afdeling
IS
	-- Alle objecten die een Accountcode hebben in het kenmerk accountcode, die gaan ipv op ruimteof persoon op de afdeling (account).
	
	CURSOR c
	IS
    SELECT d.ins_deel_key, d.ins_deel_upper, kd.ins_kenmerkdeel_waarde, a.prs_afdeling_key
    FROM ins_deel d, ins_kenmerkdeel kd, ins_kenmerk k, ins_srtkenmerk sk, prs_afdeling a
    WHERE d.ins_deel_key = kd.ins_deel_key
    AND kd.ins_kenmerk_key = k.ins_kenmerk_key
    AND k.ins_srtkenmerk_key = sk.ins_srtkenmerk_key
    AND sk.ins_srtkenmerk_upper = 'ACCOUNTCODE'
    AND  UPPER(kd.ins_kenmerkdeel_waarde) = a.prs_afdeling_upper
    AND ins_deel_verwijder IS NULL
    AND a.prs_afdeling_verwijder IS NULL;

--Check: objecten die een accountcode (=afdelingcode) hebben gerkegen die niet bestaat.
--select d.ins_deel_upper, kd.ins_kenmerkdeel_waarde from ins_deel d, ins_kenmerkdeel kd, ins_kenmerk k, ins_srtkenmerk sk
--where d.ins_deel_key = kd.ins_deel_key
--and kd.ins_kenmerk_key = k.ins_kenmerk_key
--AND k.ins_srtkenmerk_key = sk.ins_srtkenmerk_key
--AND sk.ins_srtkenmerk_upper = 'ACCOUNTCODE'
--AND  NOT EXISTS (select 'x' FROM prs_afdeling a WHERE UPPER(kd.ins_kenmerkdeel_waarde) = a.prs_afdeling_upper);

	
	v_count           NUMBER;

BEGIN

  -- Van alle objectsoorten de "Hoort bij" niet alleen ruimte en persoon, maar ook afdeling mogelijk maken: ins_srtdeel_binding op 25 zetten.
  UPDATE ins_srtdeel
  SET ins_srtdeel_binding = 25;


  -- Voor elke object met een afdeling-code in kenmerk 'Accountcode'
  FOR rec IN c
  LOOP
     BEGIN
        
        
        UPDATE ins_deel
        SET ins_alg_ruimte_key = rec.prs_afdeling_key, ins_alg_ruimte_type = 'A'
        WHERE ins_deel_key = rec.ins_deel_key;
        
         
     END;
  END LOOP;
  
END mdux_ins_conv_object2afdeling;
/

BEGIN
mdux_ins_conv_object2afdeling();
END;
/

DROP PROCEDURE mdux_ins_conv_object2afdeling;





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