Files
Customer/onces/CSUN/CSUN#88129.sql
Sander Schepers 6d91585404 CSUN#88129 Nieuwe prijzen ingeven Facilitor Roompot/Landal vóór 1 april
svn path=/Customer/; revision=68598
2025-03-31 14:43:15 +00:00

320 lines
12 KiB
SQL

-- $Id$
--
-- Er zijn voor 273 objectsoorten (huistypes bij verschillende parken) 7 verschillende periodieke taken ingesteld.
-- Sommige parken hebben niet alle taken, maar de meeste wel.
-- Samen zijn er zo 1865 taken waarvan het tarief moet worden aangepast obv een lijst.
-- Die wordt geimporteerd (FIP object), zonder te verwerken en van daaruit worden de taken bijgewerkt (inclusief tracking).
-- Dit script bespaart dus veel handmatig invoerwerk en vermindert de foutkans.
--
DEFINE thisfile = 'CSUN#88129.SQL'
DEFINE dbuser = '^CSUN'
SET ECHO ON
SET DEFINE ON
COLUMN fcltlogfile NEW_VALUE fcltlogfile NOPRINT;
COLUMN fcltcusterr NEW_VALUE fcltcusterr NOPRINT;
WHENEVER SQLERROR CONTINUE;
SELECT adm.getscriptspoolfile ('&thisfile') AS fcltlogfile FROM DUAL;
SPOOL &fcltlogfile
WHENEVER SQLERROR EXIT;
SELECT adm.checkscriptcust ('&dbuser') AS fcltcusterr FROM DUAL;
WHENEVER SQLERROR CONTINUE;
PROMPT &fcltcusterr
SET DEFINE OFF
------ payload begin ------
DECLARE
v_ctr_discipline_key ins_tab_discipline.ins_discipline_key%TYPE;
v_actuele_kosten ins_srtcontrole.ins_srtcontrole_kosten%TYPE;
v_groot_onderhoud ins_srtcontrole.ins_srtcontrole_kosten%TYPE;
v_afzuigkap ins_srtcontrole.ins_srtcontrole_kosten%TYPE;
v_koffieapparaat ins_srtcontrole.ins_srtcontrole_kosten%TYPE;
v_sanitair ins_srtcontrole.ins_srtcontrole_kosten%TYPE;
v_vloerwandbed ins_srtcontrole.ins_srtcontrole_kosten%TYPE;
v_glas_buiten ins_srtcontrole.ins_srtcontrole_kosten%TYPE;
v_glas_binnen ins_srtcontrole.ins_srtcontrole_kosten%TYPE;
CURSOR taken IS
SELECT sc.srtgroep_oms,
i.ins_srtdeel_code,
srtc.ins_srtcontrole_key,
srtc.ctr_discipline_key,
disc.ins_discipline_omschrijving,
srtc.ins_srtinstallatie_key,
fac.safe_to_number (i.ins_kenmerkwaarde1)
AS groot_onderhoud,
fac.safe_to_number (i.ins_kenmerkwaarde2)
AS afzuigkap,
fac.safe_to_number (i.ins_kenmerkwaarde3)
AS koffieapparaat,
fac.safe_to_number (i.ins_kenmerkwaarde4)
AS sanitair,
fac.safe_to_number (i.ins_kenmerkwaarde5)
AS vloerwandbed,
fac.safe_to_number (i.ins_kenmerkwaarde6)
AS glas_buiten,
fac.safe_to_number (i.ins_kenmerkwaarde7)
AS glas_binnen,
srtc.ins_srtcontrole_kosten
AS actuele_kosten
FROM fac_imp_ins i,
ins_srtcontrole srtc,
ins_tab_discipline disc,
ins_v_allsrtinstallatie sc
WHERE sc.ins_srtinstallatie_key = srtc.ins_srtinstallatie_key
AND UPPER (TRIM (sc.srtgroep_oms)) =
UPPER (TRIM (i.ins_srtgroep_omschrijving))
AND UPPER (TRIM (sc.srtdeel_oms)) =
UPPER (TRIM (i.ins_srtdeel_code))
AND srtc.ctr_discipline_key = disc.ins_discipline_key
GROUP BY sc.srtgroep_oms,
i.ins_srtdeel_code,
srtc.ins_srtcontrole_key,
srtc.ins_srtcontrole_omschrijving,
srtc.ctr_discipline_key,
disc.ins_discipline_omschrijving,
srtc.ins_srtinstallatie_key,
i.ins_kenmerkwaarde1,
i.ins_kenmerkwaarde2,
i.ins_kenmerkwaarde3,
i.ins_kenmerkwaarde4,
i.ins_kenmerkwaarde5,
i.ins_kenmerkwaarde6,
i.ins_kenmerkwaarde7,
srtc.ins_srtcontrole_kosten
ORDER BY sc.srtgroep_oms,
i.ins_srtdeel_code,
disc.ins_discipline_omschrijving;
BEGIN
FOR rec IN taken
LOOP
BEGIN
v_groot_onderhoud := NULL;
v_afzuigkap := NULL;
v_koffieapparaat := NULL;
v_sanitair := NULL;
v_vloerwandbed := NULL;
v_glas_buiten := NULL;
v_glas_binnen := NULL;
v_ctr_discipline_key := rec.ctr_discipline_key;
v_actuele_kosten := rec.actuele_kosten;
v_groot_onderhoud := rec.groot_onderhoud;
v_afzuigkap := rec.afzuigkap;
v_koffieapparaat := rec.koffieapparaat;
v_sanitair := rec.sanitair;
v_vloerwandbed := rec.vloerwandbed;
v_glas_buiten := rec.glas_buiten;
v_glas_binnen := rec.glas_binnen;
IF v_ctr_discipline_key = 1021 --groot onderhoud
AND v_actuele_kosten <> v_groot_onderhoud
AND v_groot_onderhoud IS NOT NULL
AND v_groot_onderhoud <> 0
--AND v_actuele_kosten IS NOT NULL
THEN
UPDATE ins_srtcontrole
SET ins_srtcontrole_kosten = v_groot_onderhoud
WHERE ins_srtcontrole_key = rec.ins_srtcontrole_key;
fac.trackaction (
'CTRSUP',
rec.ins_srtcontrole_key,
4,
NULL,
'Gewijzigd '
|| CHR (10)
|| 'Kosten 1: '
|| v_actuele_kosten
|| ' --> '
|| v_groot_onderhoud);
END IF;
IF v_ctr_discipline_key = 1041 --afzuigkap
AND v_actuele_kosten <> v_afzuigkap
AND v_afzuigkap IS NOT NULL
AND v_afzuigkap <> 0
--AND v_actuele_kosten IS NOT NULL
THEN
UPDATE ins_srtcontrole
SET ins_srtcontrole_kosten = v_afzuigkap
WHERE ins_srtcontrole_key = rec.ins_srtcontrole_key;
fac.trackaction (
'CTRSUP',
rec.ins_srtcontrole_key,
4,
NULL,
'Gewijzigd '
|| CHR (10)
|| 'Kosten 1: '
|| v_actuele_kosten
|| ' --> '
|| v_afzuigkap);
END IF;
IF v_ctr_discipline_key = 1042 --koffieapparaat
AND v_actuele_kosten <> v_koffieapparaat
AND v_koffieapparaat IS NOT NULL
AND v_koffieapparaat <> 0
--AND v_actuele_kosten IS NOT NULL
THEN
UPDATE ins_srtcontrole
SET ins_srtcontrole_kosten = v_koffieapparaat
WHERE ins_srtcontrole_key = rec.ins_srtcontrole_key;
fac.trackaction (
'CTRSUP',
rec.ins_srtcontrole_key,
4,
NULL,
'Gewijzigd '
|| CHR (10)
|| 'Kosten 1: '
|| v_actuele_kosten
|| ' --> '
|| v_koffieapparaat);
END IF;
-- Sinds 1 april 2025 nieuw!
IF v_ctr_discipline_key = 1701 --waterkoker
AND v_actuele_kosten <> v_koffieapparaat
AND v_koffieapparaat IS NOT NULL
AND v_koffieapparaat <> 0
--AND v_actuele_kosten IS NOT NULL
THEN
UPDATE ins_srtcontrole
SET ins_srtcontrole_kosten = v_koffieapparaat
WHERE ins_srtcontrole_key = rec.ins_srtcontrole_key;
fac.trackaction (
'CTRSUP',
rec.ins_srtcontrole_key,
4,
NULL,
'Gewijzigd '
|| CHR (10)
|| 'Kosten 1: '
|| v_actuele_kosten
|| ' --> '
|| v_koffieapparaat);
END IF;
IF v_ctr_discipline_key = 1043 --sanitair
AND v_actuele_kosten <> v_sanitair
AND v_sanitair IS NOT NULL
AND v_sanitair <> 0
--AND v_actuele_kosten IS NOT NULL
THEN
UPDATE ins_srtcontrole
SET ins_srtcontrole_kosten = v_sanitair
WHERE ins_srtcontrole_key = rec.ins_srtcontrole_key;
fac.trackaction (
'CTRSUP',
rec.ins_srtcontrole_key,
4,
NULL,
'Gewijzigd '
|| CHR (10)
|| 'Kosten 1: '
|| v_actuele_kosten
|| ' --> '
|| v_sanitair);
END IF;
IF v_ctr_discipline_key = 1044 --vloerwandbed
AND v_actuele_kosten <> v_vloerwandbed
AND v_vloerwandbed IS NOT NULL
AND v_vloerwandbed <> 0
--AND v_actuele_kosten IS NOT NULL
THEN
UPDATE ins_srtcontrole
SET ins_srtcontrole_kosten = v_vloerwandbed
WHERE ins_srtcontrole_key = rec.ins_srtcontrole_key;
fac.trackaction (
'CTRSUP',
rec.ins_srtcontrole_key,
4,
NULL,
'Gewijzigd '
|| CHR (10)
|| 'Kosten 1: '
|| v_actuele_kosten
|| ' --> '
|| v_vloerwandbed);
END IF;
IF v_ctr_discipline_key = (1062) --glas_buiten
--AND v_actuele_kosten <> v_glas_buiten
AND v_glas_buiten IS NOT NULL
AND v_glas_buiten <> 0
--AND v_actuele_kosten IS NOT NULL
THEN
UPDATE ins_srtcontrole
SET ins_srtcontrole_kosten = v_glas_buiten
WHERE ins_srtcontrole_key = rec.ins_srtcontrole_key;
fac.trackaction (
'CTRSUP',
rec.ins_srtcontrole_key,
4,
NULL,
'Gewijzigd '
|| CHR (10)
|| 'Kosten 1: '
|| v_actuele_kosten
|| ' --> '
|| v_glas_buiten);
END IF;
IF v_ctr_discipline_key = 1061 --glas_binnen
--AND v_actuele_kosten <> v_glas_binnen
AND v_glas_binnen IS NOT NULL
AND v_glas_binnen <> 0
--AND v_actuele_kosten IS NOT NULL
THEN
UPDATE ins_srtcontrole
SET ins_srtcontrole_kosten = v_glas_binnen
WHERE ins_srtcontrole_key = rec.ins_srtcontrole_key;
fac.trackaction (
'CTRSUP',
rec.ins_srtcontrole_key,
4,
NULL,
'Gewijzigd '
|| CHR (10)
|| 'Kosten 1: '
|| v_actuele_kosten
|| ' --> '
|| v_glas_binnen);
END IF;
END;
END LOOP;
END;
/
------ 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