VNOG#78645 -- Procedure rondom proces periodieke taken
svn path=/Customer/trunk/; revision=64512
This commit is contained in:
165
VNOG/vnog.sql
165
VNOG/vnog.sql
@@ -928,6 +928,7 @@ CREATE OR REPLACE PACKAGE VNOG
|
||||
AS
|
||||
PROCEDURE afmelden_mld;
|
||||
PROCEDURE afmelden_ord;
|
||||
PROCEDURE taak_mld;
|
||||
END;
|
||||
/
|
||||
|
||||
@@ -1050,6 +1051,169 @@ AS
|
||||
v_errormsg := 'ORACLE (error ' || oracle_err_num || '/' || oracle_err_mes || ')';
|
||||
fac.writelog (c_applname, 'E', v_aanduiding || v_errormsg, 'Taak afgebroken!');
|
||||
END;
|
||||
|
||||
-- Procedure die allereerst een taak melding aanmaakt bij periodieke taken die een plandatum hebben van vandaag.
|
||||
-- Wanneer een dergelijke melding wordt afgemeld wordt de bijbehorende taak gereed gemeld.
|
||||
-- Daarna wordt de volgende taak alvast ingepland met een plandatum van precies een jaar verder dan de vorige plandatum.
|
||||
-- Deze procedure is van toepassing op alle periodieke taken waar een bepaalde melding aan gekoppeld is.
|
||||
|
||||
PROCEDURE taak_mld
|
||||
AS
|
||||
c_applname VARCHAR2 (50) := 'TAAK_MLD';
|
||||
v_errormsg VARCHAR2 (1000);
|
||||
oracle_err_num NUMBER;
|
||||
oracle_err_mes VARCHAR2 (200);
|
||||
v_aanduiding VARCHAR2 (200);
|
||||
v_count_tot NUMBER (10);
|
||||
|
||||
v_melding_key NUMBER (10);
|
||||
|
||||
CURSOR c1 IS
|
||||
SELECT ic.ins_deel_key,
|
||||
ic.ins_deelsrtcontrole_key,
|
||||
std.mld_stdmelding_key melding,
|
||||
std.mld_stdmelding_default_disc behandelteam,
|
||||
icl.ins_srtcontrole_omschrijving onderwerp,
|
||||
r.alg_ruimte_key ruimte,
|
||||
v.alg_verdieping_key verdieping,
|
||||
g.alg_gebouw_key gebouw,
|
||||
g.alg_locatie_key locatie,
|
||||
ic.prs_perslid_key melder_key
|
||||
FROM ins_deelsrtcontrole ic,
|
||||
ins_srtcontrole icl,
|
||||
ins_deel i,
|
||||
mld_stdmelding std,
|
||||
alg_ruimte r,
|
||||
alg_verdieping v,
|
||||
alg_gebouw g
|
||||
WHERE ic.ins_srtcontrole_key = icl.ins_srtcontrole_key
|
||||
AND ic.ins_deel_key = i.ins_deel_key
|
||||
AND i.ins_alg_ruimte_key = r.alg_ruimte_key
|
||||
AND r.alg_verdieping_key = v.alg_verdieping_key
|
||||
AND v.alg_gebouw_key = g.alg_gebouw_key
|
||||
AND icl.mld_stdmelding_key = std.mld_stdmelding_key
|
||||
AND TRUNC (ic.ins_deelsrtcontrole_plandatum) = TRUNC (SYSDATE)
|
||||
AND ic.ins_deelsrtcontrole_status <> 6 -- Taak is nog niet gereed
|
||||
AND NOT EXISTS (SELECT 'x' FROM mld_melding_object where ins_deelsrtcontrole_key = ic.ins_deelsrtcontrole_key);
|
||||
|
||||
CURSOR c2 IS
|
||||
SELECT m.mld_melding_key,
|
||||
ic.ins_deelsrtcontrole_key,
|
||||
ic.ins_deel_key,
|
||||
ic.ins_deelsrtcontrole_plandatum gepland,
|
||||
ADD_MONTHS (ic.ins_deelsrtcontrole_plandatum, 12) volgende,
|
||||
ic.prs_perslid_key,
|
||||
ic.ins_srtcontrole_key,
|
||||
f.fac_tracking_datum afmelddatum
|
||||
FROM mld_melding_object mo,
|
||||
mld_melding m,
|
||||
ins_deelsrtcontrole ic,
|
||||
fac_tracking f
|
||||
WHERE m.mld_melding_key = mo.mld_melding_key
|
||||
AND ic.ins_deelsrtcontrole_key = mo.ins_deelsrtcontrole_key
|
||||
AND m.mld_melding_status = 5 -- Afgemeld
|
||||
AND ic.ins_deelsrtcontrole_status <> 6 -- Nog niet gereed
|
||||
AND f.fac_tracking_refkey = m.mld_melding_key
|
||||
AND f.fac_srtnotificatie_key = 47 -- MLDAFM
|
||||
AND TRUNC (f.fac_tracking_datum) = TRUNC (SYSDATE);
|
||||
|
||||
|
||||
BEGIN
|
||||
v_count_tot := 0;
|
||||
FOR rec IN c1
|
||||
LOOP
|
||||
v_errormsg := 'Fout aanmaken melding bij taak';
|
||||
v_aanduiding := '[DEEL:' || TO_CHAR (rec.ins_deel_key) || '/TAAK:' || TO_CHAR (rec.ins_deelsrtcontrole_key) || ']';
|
||||
BEGIN
|
||||
INSERT INTO mld_melding (mld_melding_module,
|
||||
mld_meldbron_key,
|
||||
mld_alg_locatie_key,
|
||||
mld_alg_onroerendgoed_keys,
|
||||
mld_melding_datum,
|
||||
mld_melding_onderwerp,
|
||||
mld_ins_discipline_key,
|
||||
mld_stdmelding_key,
|
||||
prs_perslid_key,
|
||||
prs_perslid_key_voor,
|
||||
mld_melding_status,
|
||||
mld_adres_key,
|
||||
mld_melding_spoed)
|
||||
VALUES ('MLD',
|
||||
10, -- Inspectie
|
||||
rec.locatie,
|
||||
rec.ruimte,
|
||||
SYSDATE,
|
||||
rec.onderwerp,
|
||||
rec.behandelteam,
|
||||
rec.melding,
|
||||
rec.melder_key,
|
||||
rec.melder_key,
|
||||
2, -- Nieuw
|
||||
1, -- NVT
|
||||
3) -- Normaal
|
||||
RETURNING mld_melding_key
|
||||
INTO v_melding_key;
|
||||
|
||||
INSERT INTO mld_melding_object (mld_melding_key,
|
||||
ins_deel_key,
|
||||
ins_deelsrtcontrole_key)
|
||||
VALUES (v_melding_key,
|
||||
rec.ins_deel_key,
|
||||
rec.ins_deelsrtcontrole_key);
|
||||
|
||||
fac.trackaction ('MLDNEW',
|
||||
v_melding_key,
|
||||
NULL,
|
||||
SYSDATE,
|
||||
'Melding aangemaakt vanuit taak');
|
||||
|
||||
END;
|
||||
v_count_tot := v_count_tot + 1;
|
||||
IF MOD (v_count_tot, 100) = 0 THEN COMMIT; END IF;
|
||||
END LOOP;
|
||||
fac.writelog (c_applname, 'S', '#Meldingen aangemaakt bij taken: ' || TO_CHAR (v_count_tot), '');
|
||||
COMMIT;
|
||||
|
||||
v_count_tot := 0;
|
||||
FOR rec IN c2
|
||||
LOOP
|
||||
v_errormsg := 'Fout bij gereedmelden taak';
|
||||
v_aanduiding := '[DEEL:' || TO_CHAR (rec.ins_deel_key) || '/TAAK:' || TO_CHAR (rec.ins_deelsrtcontrole_key) || ']';
|
||||
BEGIN
|
||||
UPDATE ins_deelsrtcontrole
|
||||
SET ins_deelsrtcontrole_datum = rec.afmelddatum,
|
||||
ins_deelsrtcontrole_datum_org = rec.afmelddatum,
|
||||
ins_deelsrtcontrole_opmerking = 'Melding is afgemeld'
|
||||
WHERE ins_deelsrtcontrole_key = rec.ins_deelsrtcontrole_key;
|
||||
|
||||
ins.setinspectstatus (rec.ins_deelsrtcontrole_key, 6, 3); -- status 6 gereed
|
||||
|
||||
INSERT INTO ins_deelsrtcontrole (ins_deel_key,
|
||||
ins_srtcontrole_key,
|
||||
ins_deelsrtcontrole_plandatum,
|
||||
ins_deelsrtcontrole_status,
|
||||
ins_scenario_key,
|
||||
prs_perslid_key)
|
||||
VALUES (rec.ins_deel_key,
|
||||
rec.ins_srtcontrole_key,
|
||||
rec.volgende,
|
||||
0, -- Ingepland
|
||||
1, -- Is altijd scenario 1
|
||||
rec.prs_perslid_key);
|
||||
END;
|
||||
v_count_tot := v_count_tot + 1;
|
||||
IF MOD (v_count_tot, 100) = 0 THEN COMMIT; END IF;
|
||||
END LOOP;
|
||||
fac.writelog (c_applname, 'S', '#Taken gereed gemeld: ' || TO_CHAR (v_count_tot), '');
|
||||
COMMIT;
|
||||
EXCEPTION
|
||||
WHEN OTHERS
|
||||
THEN
|
||||
oracle_err_num := SQLCODE;
|
||||
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
|
||||
v_errormsg := 'ORACLE (error ' || oracle_err_num || '/' || oracle_err_mes || ')';
|
||||
fac.writelog (c_applname, 'E', v_aanduiding || v_errormsg, 'Taak afgebroken!');
|
||||
END;
|
||||
END;
|
||||
/
|
||||
|
||||
@@ -1061,6 +1225,7 @@ AS
|
||||
BEGIN
|
||||
vnog.afmelden_mld;
|
||||
vnog.afmelden_ord;
|
||||
vnog.taak_mld;
|
||||
EXCEPTION
|
||||
WHEN OTHERS
|
||||
THEN
|
||||
|
||||
Reference in New Issue
Block a user