-- -- $Id$ -- -- Customer specific once-script BLCC#83156.SQL. DEFINE thisfile = 'BLCC#83156.sql' DEFINE dbuser = '^BLCC' 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 ------ -- BLCC#83156: ACTUAL schoonmaaktarieven (Basic/Premium/Excellent) in ruimte- -- kenmerkvelden indexeren met 5%! -- [Vermenigvuldigen met 1,05 en afronden op 2 decimalen] SET SERVEROUTPUT ON size 1000000; DECLARE CURSOR c IS -- SELECT ok.alg_onrgoed_key, -- k.alg_kenmerk_key, -- k.alg_kenmerk_omschrijving, -- ok.alg_onrgoedkenmerk_key, -- fac.safe_to_number (ok.alg_onrgoedkenmerk_waarde) waarde_oud, -- ROUND (fac.safe_to_number (ok.alg_onrgoedkenmerk_waarde) * 1.02, 2) waarde_nieuw, -- Kak, dit had 5% moeten zijn! -- k.alg_kenmerk_omschrijving -- || ': ' -- || ok.alg_onrgoedkenmerk_waarde -- || ' --> ' -- || TO_CHAR (ROUND (fac.safe_to_number (ok.alg_onrgoedkenmerk_waarde) * 1.02, 2)) -- Kak, dit had 5% moeten zijn! -- tracking -- FROM alg_v_aanwezigonrgoedkenmerk ok, alg_kenmerk k -- WHERE fac.safe_to_number (ok.alg_onrgoedkenmerk_waarde) IS NOT NULL -- AND ok.alg_onrgoed_niveau = 'R' -- AND ok.alg_kenmerk_key = k.alg_kenmerk_key -- AND k.alg_kenmerk_key IN (1540, 1541, 1542) -- Schoonmaaktarief Basic/Premium/Excellent -- AND EXISTS (SELECT 1 FROM alg_v_aanwezigruimte WHERE alg_ruimte_key = ok.alg_onrgoed_key) --ORDER BY 1, 2; SELECT ok.alg_onrgoed_key, ok.alg_kenmerk_key, ok.alg_onrgoedkenmerk_key, fac.safe_to_number (SUBSTR (SUBSTR (t.fac_tracking_oms, INSTR (t.fac_tracking_oms, ':') + 1), 1, INSTR (SUBSTR (t.fac_tracking_oms, INSTR (t.fac_tracking_oms, ':') + 1), '-->') - 1)) waarde_org, fac.safe_to_number (SUBSTR (t.fac_tracking_oms, INSTR (t.fac_tracking_oms, '-->') + 3)) waarde_oud, TO_CHAR (ROUND (fac.safe_to_number (SUBSTR (SUBSTR (t.fac_tracking_oms, INSTR (t.fac_tracking_oms, ':') + 1), 1, INSTR (SUBSTR (t.fac_tracking_oms, INSTR (t.fac_tracking_oms, ':') + 1), '-->') - 1)) * 1.05, 2)) waarde_nieuw, SUBSTR (t.fac_tracking_oms, 1, INSTR (t.fac_tracking_oms, ':') - 1) || ': ' || TRIM (SUBSTR (t.fac_tracking_oms, INSTR (t.fac_tracking_oms, '-->') + 3)) || ' --> ' || TO_CHAR (ROUND (fac.safe_to_number (SUBSTR (SUBSTR (t.fac_tracking_oms, INSTR (t.fac_tracking_oms, ':') + 1), 1, INSTR (SUBSTR (t.fac_tracking_oms, INSTR (t.fac_tracking_oms, ':') + 1), '-->') - 1)) * 1.05, 2)) tracking FROM fac_tracking t, alg_v_aanwezigonrgoedkenmerk ok WHERE t.fac_srtnotificatie_key = 118 -- ALGRUP AND TRUNC (t.fac_tracking_datum) = fac.safe_to_date ('15-04-2024', 'dd-mm-yyyy') AND t.fac_tracking_refkey = ok.alg_onrgoed_key AND ok.alg_kenmerk_key IN (1540, 1541, 1542) -- Schoonmaaktarief Basic/Premium/Excellent AND EXISTS (SELECT 1 FROM alg_kenmerk WHERE alg_kenmerk_key = ok.alg_kenmerk_key AND alg_kenmerk_omschrijving = SUBSTR (t.fac_tracking_oms, 1, INSTR (t.fac_tracking_oms, ':') - 1)) ORDER BY 1, 2; v_count NUMBER := 0; BEGIN FOR rec IN c LOOP BEGIN UPDATE alg_onrgoedkenmerk SET alg_onrgoedkenmerk_waarde = TO_CHAR (rec.waarde_nieuw) WHERE alg_onrgoedkenmerk_key = rec.alg_onrgoedkenmerk_key; fac.trackaction ('ALGRUP', rec.alg_onrgoed_key, NULL, NULL, rec.tracking); v_count := v_count + 1; END; END LOOP; DBMS_OUTPUT.PUT_LINE ('S: ' || TO_CHAR (v_count) || ' schoonmaaktarieven geïndexeerd'); 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