Files
Customer/onces/MDUX/MDUX#37363.sql
Marcel Bourseau 5d53a0f74b MDUX#37363: Contractbeheer / huurcontracten
svn path=/Customer/; revision=32338
2017-01-12 16:25:24 +00:00

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