120 lines
4.2 KiB
SQL
120 lines
4.2 KiB
SQL
--
|
|
-- $Id$
|
|
--
|
|
-- Customer specific once-script FMHN#73172.sql.
|
|
DEFINE thisfile = 'FMHN#73172.sql'
|
|
DEFINE dbuser = '^FMHN'
|
|
|
|
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
|
|
CURSOR c1 -- meldingen
|
|
IS
|
|
SELECT sub.*
|
|
FROM (SELECT m.mld_melding_key,
|
|
m.mld_meldbron_nr,
|
|
m.mld_melding_datum,
|
|
m.mld_melding_status,
|
|
(SELECT MAX (t.fac_tracking_datum)
|
|
FROM fac_tracking t
|
|
WHERE t.fac_tracking_refkey = m.mld_melding_key
|
|
AND t.fac_srtnotificatie_key = 46)
|
|
MLDAFR,
|
|
(SELECT MAX (t.fac_tracking_datum)
|
|
FROM fac_tracking t
|
|
WHERE t.fac_tracking_refkey = m.mld_melding_key
|
|
AND t.fac_srtnotificatie_key = 45)
|
|
MLDAFM
|
|
FROM mld_melding m) sub
|
|
WHERE MLDAFM IS NULL
|
|
AND MLDAFR IS NOT NULL
|
|
AND mld_melding_status NOT IN (1, 5, 6, 99);
|
|
|
|
CURSOR c2 -- opdrachten, er kunnen meerdere opdr onder een mld vallen dus vandaar in een eigen cursor
|
|
IS
|
|
SELECT sub.*
|
|
FROM (SELECT m.mld_melding_key,
|
|
o.mld_opdr_key,
|
|
m.mld_meldbron_nr,
|
|
m.mld_melding_datum,
|
|
m.mld_melding_status,
|
|
(SELECT MAX (t.fac_tracking_datum)
|
|
FROM fac_tracking t
|
|
WHERE t.fac_tracking_refkey = m.mld_melding_key
|
|
AND t.fac_srtnotificatie_key = 46)
|
|
MLDAFR,
|
|
(SELECT MAX (t.fac_tracking_datum)
|
|
FROM fac_tracking t
|
|
WHERE t.fac_tracking_refkey = m.mld_melding_key
|
|
AND t.fac_srtnotificatie_key = 45)
|
|
MLDAFM,
|
|
(SELECT MAX (t.fac_tracking_datum)
|
|
FROM fac_tracking t
|
|
WHERE t.fac_tracking_refkey = o.mld_opdr_key
|
|
AND t.fac_srtnotificatie_key = 74)
|
|
ORDAFM
|
|
FROM mld_melding m, mld_opdr o
|
|
WHERE m.mld_melding_key = o.mld_melding_key) sub
|
|
WHERE MLDAFM IS NULL
|
|
AND ORDAFM IS NULL -- Als de opdracht toevallig al is afgemeld slaan we die over
|
|
AND MLDAFR IS NOT NULL
|
|
AND mld_opdr_key IS NOT NULL
|
|
AND mld_melding_status NOT IN (1, 5, 6, 99);
|
|
BEGIN
|
|
FOR rec IN c2 -- We doen eerst de opdrachten, anders geeft die cursor straks geen resultaat meer omdat de meldingen zijn afgemeld
|
|
LOOP
|
|
BEGIN
|
|
UPDATE mld_opdr
|
|
SET mld_statusopdr_key = 6 -- Afgemeld
|
|
WHERE mld_opdr_key = rec.mld_opdr_key;
|
|
|
|
fac.trackaction ('#ORDAFM',
|
|
rec.mld_opdr_key,
|
|
3,
|
|
rec.mldafr,
|
|
'Afgemeld door systeem');
|
|
END;
|
|
END LOOP;
|
|
|
|
FOR rec IN c1
|
|
LOOP
|
|
BEGIN
|
|
UPDATE mld_melding
|
|
SET mld_melding_status = 5 -- Afgemeld
|
|
WHERE mld_melding_key = rec.mld_melding_key;
|
|
|
|
fac.trackaction ('#MLDAFM',
|
|
rec.mld_melding_key,
|
|
3,
|
|
rec.mldafr,
|
|
'Afgemeld door systeem');
|
|
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
|