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

DEFINE thisfile = 'MDUX#37363.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_cnt_conv_huurcontracten
IS
	-- Alle contracten waarvan de discipline gelijk is aan de discipline van het laatst toegevoegde contract,
	-- daarvan gaan we de kosten in het standaard veld zetten, gebaseerd op de flexprops "huurkosten" en "servicekosten".
	-- Let op: de termij van huur en servicekosten is gelijk, dus de als huurkosten per maand worden gefactureerd, dan ook de servicekosten, dus beide per maand, per kwartaal of per jaar.
	-- Het kan niet voorkomen (zie betreffende call) dat er een mix is tussen maand en kwartaal b.v. 
	CURSOR c
	IS
	    select  c.cnt_contract_key, c.cnt_contract_omschrijving, 
                        sk.CNT_SRTKENMERK_UPPER upper1, sk2.CNT_SRTKENMERK_UPPER upper2, UD.FAC_USRDATA_CODE MKJ_huur, KC2.CNT_KENMERKCONTRACT_WAARDE huurkosten_p_mnd,
                        sk4.CNT_SRTKENMERK_UPPER upper4, KC4.CNT_KENMERKCONTRACT_WAARDE servicekosten_p_mnd
      from cnt_contract c, 
           cnt_srtkenmerk sk, cnt_kenmerk k, cnt_kenmerkcontract kc, fac_usrdata ud, cnt_srtkenmerk sk2, cnt_kenmerk k2, cnt_kenmerkcontract kc2,
           cnt_srtkenmerk sk4, cnt_kenmerk k4, cnt_kenmerkcontract kc4
      where c.ins_discipline_key  = (select ins_discipline_key from cnt_contract where cnt_contract_key = (select max(cnt_contract_key) from cnt_contract))
      AND c.cnt_contract_verwijder IS NULL
      and SK.CNT_SRTKENMERK_UPPER = 'BETAALPERIODE HUUR'
      and K.CNT_SRTKENMERK_KEY = sK.CNT_SRTKENMERK_KEY
      AND K.CNT_SRTCONTRACT_KEY = C.INS_DISCIPLINE_KEY
      and c.cnt_contract_key = KC.CNT_CONTRACT_KEY
      and K.CNT_KENMERK_KEY = KC.CNT_KENMERK_KEY
      AND UD.FAC_USRDATA_KEY =  fac.safe_to_number(KC.CNT_KENMERKCONTRACT_WAARDE)
      and SK2.CNT_SRTKENMERK_UPPER = 'HUURKOSTEN PER MAAND'
      and K2.CNT_SRTKENMERK_KEY = SK2.CNT_SRTKENMERK_KEY
      AND K2.CNT_SRTCONTRACT_KEY = C.INS_DISCIPLINE_KEY
      and c.cnt_contract_key = KC2.CNT_CONTRACT_KEY
      and K2.CNT_KENMERK_KEY = KC2.CNT_KENMERK_KEY
      and SK4.CNT_SRTKENMERK_UPPER = 'SERVICEKOSTEN PER MAAND'
      and K4.CNT_SRTKENMERK_KEY = SK4.CNT_SRTKENMERK_KEY
      AND K4.CNT_SRTCONTRACT_KEY = C.INS_DISCIPLINE_KEY
      and c.cnt_contract_key = KC4.CNT_CONTRACT_KEY
      and K4.CNT_KENMERK_KEY = KC4.CNT_KENMERK_KEY;

	
	v_count           NUMBER;

BEGIN
    -- generic update


  -- Voor elke contract 
  FOR rec IN c
  LOOP
     BEGIN
     	
     		UPDATE 	cnt_contract c
     		SET 		c.cnt_contract_termijnkosten =  DECODE(rec.MKJ_huur, 'M', 1 * rec.huurkosten_p_mnd, 'K', 3 * rec.huurkosten_p_mnd, 'J', 12 * rec.huurkosten_p_mnd, 0) +
     																						DECODE(rec.MKJ_huur, 'M', 1 * rec.servicekosten_p_mnd, 'K', 3 * rec.servicekosten_p_mnd, 'J', 12 * rec.servicekosten_p_mnd, 0)	,
     					  c.cnt_contract_termijntermijn = DECODE(rec.MKJ_huur, 'M', 3, 'K', 5, 'J', 10)
     		WHERE 	c.cnt_contract_key = rec.cnt_contract_key;
     	
      
     END;
  END LOOP;
  
  
END mdux_cnt_conv_huurcontracten;
/

BEGIN
mdux_cnt_conv_huurcontracten();
END;
/

DROP PROCEDURE mdux_cnt_conv_huurcontracten;

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