60 lines
1.3 KiB
SQL
60 lines
1.3 KiB
SQL
--
|
|
-- $Id$
|
|
--
|
|
-- Correctie van foutief geregistreerde uren
|
|
|
|
DEFINE thisfile = 'ARAI#61786.sql'
|
|
DEFINE dbuser = '^ARAI'
|
|
|
|
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 ------
|
|
|
|
|
|
DECLARE
|
|
|
|
CURSOR uren IS
|
|
SELECT mu.mld_opdr_uren_key,
|
|
LEAST (999, ROUND ( (t.ntb_prs * 24), 2)) aantal_uur
|
|
FROM arai_v_persoonuren t, mld_opdr_uren mu
|
|
WHERE t.mld_opdr_key = mu.mld_opdr_key
|
|
AND t.prs_perslid_key = mu.prs_perslid_key
|
|
AND t.datum = mu.mld_opdr_uren_datum
|
|
AND t.datum >= TO_DATE ('01-01-2020', 'dd-mm-yyyy')
|
|
AND LEAST (999, ROUND ( (t.ntb_prs * 24), 2)) <>
|
|
mu.mld_opdr_uren_besteed;
|
|
|
|
BEGIN
|
|
FOR rec IN uren
|
|
LOOP
|
|
BEGIN
|
|
UPDATE mld_opdr_uren
|
|
SET mld_opdr_uren_besteed = rec.aantal_uur
|
|
WHERE mld_opdr_uren_key = rec.mld_opdr_uren_key;
|
|
END;
|
|
|
|
COMMIT;
|
|
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
|
|
|