VNOG#78645 -- GMO proces en notificatie, verhuisprocedure gerelateerde objecten
svn path=/Customer/trunk/; revision=65608
This commit is contained in:
250
VNOG/vnog.sql
250
VNOG/vnog.sql
@@ -924,10 +924,47 @@ AS
|
||||
AND GREATEST (kmgi.mld_kenmerkmelding_aanmaak, kmgf.mld_kenmerkmelding_aanmaak, kmgh.mld_kenmerkmelding_aanmaak) > COALESCE (nj.fac_notificatie_job_lastrun, TRUNC (SYSDATE))
|
||||
;
|
||||
|
||||
-- Notificatie bij het aanmaken van een GMO melding
|
||||
CREATE OR REPLACE VIEW VNOG_V_NOTI_GMO
|
||||
(
|
||||
CODE,
|
||||
SENDER,
|
||||
RECEIVER,
|
||||
TEXT,
|
||||
KEY,
|
||||
XKEY,
|
||||
XSENDER,
|
||||
XEMAIL,
|
||||
XMOBILE,
|
||||
ATTACHMENTS
|
||||
)
|
||||
AS
|
||||
SELECT sn.fac_srtnotificatie_code,
|
||||
NULL,
|
||||
m.prs_perslid_key,
|
||||
REPLACE (sn.fac_srtnotificatie_oms,
|
||||
'##KEY##',
|
||||
TO_CHAR (m.mld_melding_key)),
|
||||
m.mld_melding_key,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL xmobile,
|
||||
NULL attachments
|
||||
FROM mld_melding m,
|
||||
fac_srtnotificatie sn,
|
||||
fac_notificatie_job nj
|
||||
WHERE m.mld_stdmelding_key = 951 -- GMO
|
||||
AND m.mld_melding_datum > nj.fac_notificatie_job_lastrun
|
||||
AND sn.fac_srtnotificatie_code = 'CUST06'
|
||||
AND nj.fac_notificatie_job_view = 'VNOG_V_NOTI_GMO';
|
||||
|
||||
CREATE OR REPLACE PACKAGE VNOG
|
||||
AS
|
||||
PROCEDURE afmelden_mld;
|
||||
PROCEDURE afmelden_ord;
|
||||
PROCEDURE verhuis_inv;
|
||||
PROCEDURE verstuur_gmo;
|
||||
END;
|
||||
/
|
||||
|
||||
@@ -1051,6 +1088,217 @@ AS
|
||||
v_errormsg := 'ORACLE (error ' || oracle_err_num || '/' || oracle_err_mes || ')';
|
||||
fac.writelog (c_applname, 'E', v_aanduiding || v_errormsg, 'Taak afgebroken!');
|
||||
END;
|
||||
|
||||
PROCEDURE verhuis_inv
|
||||
AS
|
||||
c_applname VARCHAR2 (50) := 'VERHUIS_INV';
|
||||
v_errormsg VARCHAR2 (1000);
|
||||
oracle_err_num NUMBER;
|
||||
oracle_err_mes VARCHAR2 (200);
|
||||
v_aanduiding VARCHAR2 (200);
|
||||
v_count_tot NUMBER (10);
|
||||
v_deel_key NUMBER (10);
|
||||
v_perslid_key NUMBER (5) := 3;
|
||||
|
||||
CURSOR c1 IS
|
||||
SELECT i2.ins_deel_omschrijving vrt,
|
||||
i.ins_deel_omschrijving inv,
|
||||
i.ins_deel_opmerking nummer,
|
||||
i.ins_deel_key inventaris,
|
||||
i2.ins_deel_key voertuig,
|
||||
i.ins_alg_ruimte_key ruimte_oud,
|
||||
i2.ins_alg_ruimte_key ruimte_nieuw,
|
||||
SUBSTR (i2.ins_deel_omschrijving,
|
||||
1,
|
||||
INSTR (i2.ins_deel_omschrijving, '/') - 1) waarde
|
||||
FROM ins_deel i, ins_deel i2, ins_deelkoppeling k
|
||||
WHERE i.ins_deel_key = k.ins_deelkoppeling_naar_key
|
||||
AND i2.ins_deel_key = k.ins_deelkoppeling_van_key
|
||||
AND i.ins_alg_ruimte_key <> i2.ins_alg_ruimte_key
|
||||
AND i.ins_alg_ruimte_type = 'R'
|
||||
AND i2.ins_alg_ruimte_type = 'R'
|
||||
AND i.ins_deel_verwijder IS NULL
|
||||
AND i2.ins_deel_verwijder IS NULL;
|
||||
|
||||
CURSOR c2 IS
|
||||
SELECT x.inventaris,
|
||||
x.nummer,
|
||||
x.waarde
|
||||
FROM (SELECT i2.ins_deel_omschrijving vrt,
|
||||
i.ins_deel_omschrijving inv,
|
||||
i.ins_deel_opmerking nummer,
|
||||
i.ins_deel_key inventaris,
|
||||
i2.ins_deel_key voertuig,
|
||||
i.ins_alg_ruimte_key ruimte_oud,
|
||||
i2.ins_alg_ruimte_key ruimte_nieuw,
|
||||
SUBSTR (i2.ins_deel_omschrijving,
|
||||
1,
|
||||
INSTR (i2.ins_deel_omschrijving, '/') - 1) waarde
|
||||
FROM ins_deel i, ins_deel i2, ins_deelkoppeling k
|
||||
WHERE i.ins_deel_key = k.ins_deelkoppeling_naar_key
|
||||
AND i2.ins_deel_key = k.ins_deelkoppeling_van_key
|
||||
AND i.ins_alg_ruimte_type = 'R'
|
||||
AND i2.ins_alg_ruimte_type = 'R'
|
||||
AND i.ins_deel_verwijder IS NULL
|
||||
AND i2.ins_deel_verwijder IS NULL) x
|
||||
WHERE x.nummer != x.waarde;
|
||||
|
||||
BEGIN
|
||||
v_count_tot := 0;
|
||||
FOR rec IN c1
|
||||
LOOP
|
||||
v_errormsg := 'Fout verhuizen inventarisitem';
|
||||
v_aanduiding := '[deelkey: ' || TO_CHAR (rec.inventaris) || ']';
|
||||
BEGIN
|
||||
UPDATE ins_deel
|
||||
SET ins_alg_ruimte_key = rec.ruimte_nieuw,
|
||||
ins_deel_opmerking = rec.waarde
|
||||
WHERE ins_deel_key = rec.inventaris
|
||||
RETURNING ins_deel_key
|
||||
INTO v_deel_key;
|
||||
|
||||
fac.trackaction ('INSUPD', v_deel_key, v_perslid_key, NULL, '#Inventarisitem verhuisd met voertuig');
|
||||
END;
|
||||
v_count_tot := v_count_tot + 1;
|
||||
END LOOP;
|
||||
fac.writelog (c_applname, 'S', '#Inventarisitems verplaatst: ' || TO_CHAR (v_count_tot), '');
|
||||
COMMIT;
|
||||
|
||||
v_count_tot := 0;
|
||||
FOR rec IN c2
|
||||
LOOP
|
||||
v_errormsg := 'Fout toekennen nieuw 06-nummer';
|
||||
v_aanduiding := '[deelkey: ' || TO_CHAR (rec.inventaris) || ']';
|
||||
BEGIN
|
||||
UPDATE ins_deel
|
||||
SET ins_deel_opmerking = rec.waarde
|
||||
WHERE ins_deel_key = rec.inventaris
|
||||
RETURNING ins_deel_key
|
||||
INTO v_deel_key;
|
||||
|
||||
fac.trackaction ('INSUPD', v_deel_key, v_perslid_key, NULL, '#Nieuw 06-nummer toegekend aan inventarisitem');
|
||||
END;
|
||||
v_count_tot := v_count_tot + 1;
|
||||
END LOOP;
|
||||
fac.writelog (c_applname, 'S', '#Inventarisitems aangepast: ' || 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;
|
||||
|
||||
-- Maak elke jaar op 1 augustus voor iedereen met objecten een GMO melding aan.
|
||||
-- Objecten in bezit worden hieraan gekoppeld.
|
||||
-- Wanneer een GMO melding voorzien is van een handtekening wordt deze de volgende dag afgemeld.
|
||||
-- Bijbehorende notificatie is CUST06
|
||||
PROCEDURE verstuur_gmo
|
||||
AS
|
||||
c_applname VARCHAR2 (50) := 'VERSTUUR_GMO';
|
||||
v_errormsg VARCHAR2 (1000);
|
||||
oracle_err_num NUMBER;
|
||||
oracle_err_mes VARCHAR2 (200);
|
||||
v_aanduiding VARCHAR2 (200);
|
||||
|
||||
CURSOR mld IS
|
||||
SELECT MAX (i.ins_deel_key), p.prs_perslid_key
|
||||
FROM ins_deel i, prs_v_aanwezigperslid p
|
||||
WHERE ins_alg_ruimte_type = 'P'
|
||||
AND ins_alg_ruimte_key = p.prs_perslid_key
|
||||
AND ins_deel_verwijder IS NULL
|
||||
AND NOT EXISTS (SELECT 'x' FROM mld_melding m WHERE m.mld_stdmelding_key = 951 AND m.prs_perslid_key = p.prs_perslid_key AND mld_melding_status IN (0, 2, 3, 4, 7))
|
||||
GROUP BY p.prs_perslid_key;
|
||||
|
||||
CURSOR obj IS
|
||||
SELECT i.ins_deel_key, p.prs_perslid_key, m.mld_melding_key
|
||||
FROM ins_deel i, prs_v_aanwezigperslid p, mld_melding m
|
||||
WHERE ins_alg_ruimte_type = 'P'
|
||||
AND ins_alg_ruimte_key = p.prs_perslid_key
|
||||
AND ins_deel_verwijder IS NULL
|
||||
AND m.prs_perslid_key = p.prs_perslid_key
|
||||
AND m.mld_stdmelding_key = 951 -- GMO
|
||||
AND m.mld_melding_status = 2
|
||||
AND NOT EXISTS (SELECT 'x' FROM mld_melding_object o WHERE o.mld_melding_key = m.mld_melding_key AND o.ins_deel_key = i.ins_deel_key);
|
||||
|
||||
CURSOR tek
|
||||
IS
|
||||
SELECT m.mld_melding_key
|
||||
FROM mld_kenmerkmelding mk, mld_melding m
|
||||
WHERE m.mld_melding_key = mk.mld_melding_key
|
||||
AND m.mld_stdmelding_key = 951 -- GMO melding
|
||||
AND mk.mld_kenmerk_key = 1361 -- Handtekening
|
||||
AND m.mld_melding_status NOT IN (5, 6) -- Nog niet afgemeld of archief
|
||||
;
|
||||
BEGIN
|
||||
IF TO_CHAR (sysdate, 'DD-MM') = '01-08'
|
||||
THEN
|
||||
FOR rec IN mld
|
||||
LOOP
|
||||
v_errormsg := 'Fout aanmaken GMO melding';
|
||||
v_aanduiding := '[perslid_key: ' || TO_CHAR (rec.prs_perslid_key) || ']';
|
||||
BEGIN
|
||||
INSERT INTO mld_melding (mld_melding_module,
|
||||
mld_meldbron_key,
|
||||
mld_melding_datum,
|
||||
mld_stdmelding_key,
|
||||
prs_perslid_key,
|
||||
prs_perslid_key_voor,
|
||||
mld_melding_status,
|
||||
mld_melding_spoed,
|
||||
mld_ins_discipline_key)
|
||||
VALUES ('MLD',
|
||||
5,
|
||||
SYSDATE,
|
||||
951, -- GMO
|
||||
rec.prs_perslid_key,
|
||||
rec.prs_perslid_key,
|
||||
2, -- Status nieuw
|
||||
3, -- Prio normaal
|
||||
1121) -- Behandelteam GMO
|
||||
;
|
||||
END;
|
||||
END LOOP;
|
||||
|
||||
FOR rec IN obj
|
||||
LOOP
|
||||
v_errormsg := 'Fout toevoegen object aan GMO melding';
|
||||
v_aanduiding := '[deel_key: ' || TO_CHAR (rec.ins_deel_key) || ']';
|
||||
BEGIN
|
||||
INSERT INTO mld_melding_object (mld_melding_key, ins_deel_key)
|
||||
VALUES (rec.mld_melding_key, rec.ins_deel_key);
|
||||
END;
|
||||
END LOOP;
|
||||
COMMIT;
|
||||
|
||||
ELSE
|
||||
FOR rec IN tek
|
||||
LOOP
|
||||
v_errormsg := 'Fout afmelden GMO melding';
|
||||
v_aanduiding :=
|
||||
'[melding_key: ' || TO_CHAR (rec.mld_melding_key) || ']';
|
||||
|
||||
BEGIN
|
||||
UPDATE mld_melding
|
||||
SET mld_melding_status = 5 -- Afgemeld
|
||||
WHERE mld_melding_key = rec.mld_melding_key;
|
||||
END;
|
||||
END LOOP;
|
||||
COMMIT;
|
||||
|
||||
END IF;
|
||||
|
||||
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;
|
||||
/
|
||||
|
||||
@@ -1062,6 +1310,8 @@ AS
|
||||
BEGIN
|
||||
vnog.afmelden_mld;
|
||||
vnog.afmelden_ord;
|
||||
vnog.verhuis_inv;
|
||||
vnog.verstuur_gmo;
|
||||
EXCEPTION
|
||||
WHEN OTHERS
|
||||
THEN
|
||||
|
||||
Reference in New Issue
Block a user