99 lines
3.7 KiB
SQL
99 lines
3.7 KiB
SQL
--
|
|
-- $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
|