YKPN#66154 -- Aanpassen dailytask naar separate procedure met exception handling

svn path=/Customer/trunk/; revision=50299
This commit is contained in:
Norbert Wassink
2021-03-11 10:13:44 +00:00
parent dfca0a3091
commit 0fcac98603

View File

@@ -95,6 +95,19 @@ AS
pemailkey IN NUMBER);
PROCEDURE autoorder;
PROCEDURE tsk_bevr_contract(p_applname IN VARCHAR2,
p_applrun IN VARCHAR2);
PROCEDURE tsk_mail_locman(p_applname IN VARCHAR2,
p_applrun IN VARCHAR2);
PROCEDURE tsk_bez_buitmld(p_applname IN VARCHAR2,
p_applrun IN VARCHAR2);
PROCEDURE tsk_bez_cleanup(p_applname IN VARCHAR2,
p_applrun IN VARCHAR2);
PROCEDURE tsk_cnt_index (p_applname IN VARCHAR2,
p_applrun IN VARCHAR2);
PROCEDURE tsk_mld_keuring (p_applname IN VARCHAR2,
p_applrun IN VARCHAR2);
END;
/
@@ -1699,6 +1712,461 @@ AS
END LOOP;
END;
PROCEDURE tsk_bevr_contract(p_applname IN VARCHAR2,
p_applrun IN VARCHAR2)
AS
v_errorhint VARCHAR2 (1000);
v_errormsg VARCHAR2 (1000);
oracle_err_num NUMBER;
oracle_err_mes VARCHAR2 (200);
BEGIN
-- bevriezen van contractgegevens
v_errorhint := 'Bevriezen contractgegevens';
IF TO_CHAR (SYSDATE, 'DD') = '01'
THEN
INSERT INTO ykpn_freeze_contract (freezedate,
boekmaand,
cnt_contract_key,
cnt_contract_nummer,
cnt_contract_versie,
cnt_contract_nummer_intern,
cnt_contract_omschrijving,
cnt_contract_opmerking,
cnt_contract_kosten,
cnt_contract_termijnkosten,
cnt_contract_termijntermijn,
cnt_prs_bedrijf_key,
ins_discipline_key,
prs_kostenplaats_key,
cnt_contract_status,
cnt_contract_plaats_key,
cnt_alg_plaats_key,
cnt_alg_plaats_code,
cnt_contract_plaats_gewicht,
cnt_contract_plaats_aanmaak,
cnt_contract_plaats_verwijder)
(SELECT SYSDATE,
TO_CHAR (SYSDATE - 1, 'yyyy-mm'),
c.cnt_contract_key,
cnt_contract_nummer,
cnt_contract_versie,
cnt_contract_nummer_intern,
cnt_contract_omschrijving,
cnt_contract_opmerking,
cnt_contract_kosten,
cnt_contract_termijnkosten,
cnt_contract_termijntermijn,
cnt_prs_bedrijf_key,
ins_discipline_key,
prs_kostenplaats_key,
cnt_contract_status,
cnt_contract_plaats_key,
cnt_alg_plaats_key,
cnt_alg_plaats_code,
cnt_contract_plaats_gewicht,
cnt_contract_plaats_aanmaak,
cnt_contract_plaats_verwijder
FROM cnt_contract c, cnt_contract_plaats cp
WHERE c.cnt_contract_key = cp.cnt_contract_key
AND cnt_contract_plaats_verwijder IS NULL);
END IF;
EXCEPTION
WHEN OTHERS
THEN
oracle_err_num := SQLCODE;
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
v_errormsg := v_errormsg || ' ORACLE (error ' || oracle_err_num || '/' || oracle_err_mes || ')';
fac.writelog (p_applname,
'E',
'Daily task afgebroken!: ' || v_errormsg,
v_errorhint);
COMMIT;
END;
PROCEDURE tsk_mail_locman(p_applname IN VARCHAR2,
p_applrun IN VARCHAR2)
AS
CURSOR c IS
SELECT a.bez_afspraak_key,
prs_perslid_email,
p.prs_perslid_key,
aantal,
bez_afspraak_datum,
alg_locatie_omschrijving
FROM ( SELECT af.bez_afspraak_key,
af.alg_locatie_key,
af.bez_afspraak_datum,
COUNT (af.bez_afspraak_key) aantal
FROM bez_afspraak af, bez_bezoekers b, res_rsv_deel rrd
WHERE af.bez_afspraak_key = b.bez_afspraak_key
AND b.BEZ_BEZOEKERS_KEY = rrd.BEZ_BEZOEKERS_KEY
GROUP BY af.bez_afspraak_key,
af.alg_locatie_key,
af.bez_afspraak_datum) a,
prs_v_perslidwerkplek_gegevens pwpg,
alg_locatie l,
prs_perslid p,
fac_gebruikersgroep gg
WHERE gg.fac_groep_key = 28 -- locatiemanagement
AND gg.prs_perslid_key = pwpg.prs_perslid_key
AND a.alg_locatie_key = pwpg.alg_locatie_key
AND pwpg.prs_perslid_key = p.prs_perslid_key
AND a.alg_locatie_key = l.alg_locatie_key
AND a.aantal > 5
AND a.bez_afspraak_datum > SYSDATE
AND NOT EXISTS
(SELECT fac_tracking_key
FROM fac_tracking t
WHERE t.fac_srtnotificatie_key = 421 -- cust11
AND t.fac_tracking_refkey = a.bez_afspraak_key);
v_oms VARCHAR2 (200);
v_tracking_key NUMBER (10);
v_errorhint VARCHAR2 (1000);
v_errormsg VARCHAR2 (1000);
oracle_err_num NUMBER;
oracle_err_mes VARCHAR2 (200);
BEGIN
-- Stuur locatiemanagement een mail als grote groepen komen parkeren.
v_errorhint := 'Mail locatiemanagement bij grote groepen';
FOR rec IN c
LOOP
-- Controleer of de tracking al gezet is. Er kunnen namelijk meer mensen genotificeerd worden per afspraak
BEGIN
SELECT fac_tracking_key
INTO v_tracking_key
FROM fac_tracking t
WHERE t.fac_srtnotificatie_key = 421 -- CUST11
AND t.fac_tracking_refkey = rec.bez_afspraak_key;
EXCEPTION
WHEN NO_DATA_FOUND
THEN
FAC.trackaction (
'CUST11',
rec.bez_afspraak_key,
3,
NULL,
'#Notificatie grote groep parkeren uitgestuurd');
END;
v_oms :=
'Grote groep ('
|| rec.aantal
|| ') parkeerplaatsen geboekt nr:'
|| rec.bez_afspraak_key
|| ' op '
|| TO_CHAR (rec.bez_afspraak_datum, 'dd-mm-yyyy hh24:mi')
|| ', locatie: '
|| rec.alg_locatie_omschrijving;
INSERT INTO fac_notificatie (fac_srtnotificatie_key,
fac_notificatie_status,
fac_notificatie_receiver_email,
prs_perslid_key_receiver,
fac_notificatie_oms,
fac_notificatie_refkey,
fac_notificatie_extrakey,
fac_notificatie_prioriteit)
VALUES (421, -- CUST11
2, -- mail
rec.prs_perslid_email, -- email
rec.prs_perslid_key,
v_oms,
rec.bez_afspraak_key,
NULL,
2);
END LOOP;
EXCEPTION
WHEN OTHERS
THEN
oracle_err_num := SQLCODE;
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
v_errormsg := v_errormsg || ' ORACLE (error ' || oracle_err_num || '/' || oracle_err_mes || ')';
fac.writelog (p_applname,
'E',
'Daily task afgebroken!: ' || v_errormsg,
v_errorhint);
COMMIT;
END;
PROCEDURE tsk_bez_buitmld(p_applname IN VARCHAR2,
p_applrun IN VARCHAR2)
AS
CURSOR ykpn_bez_out_c IS
SELECT b.bez_bezoekers_key, b.bez_afspraak_key, b.bez_bezoekers_done
FROM BEZ_AFSPRAAK ba, BEZ_BEZOEKERS b
WHERE ba.bez_afspraak_key = b.bez_afspraak_key
AND b.bez_bezoekers_done IS NOT NULL
AND b.bez_bezoekers_out IS NULL
AND TRUNC (ba.bez_afspraak_datum) = TRUNC (SYSDATE);
v_errorhint VARCHAR2 (1000);
v_errormsg VARCHAR2 (1000);
oracle_err_num NUMBER;
oracle_err_mes VARCHAR2 (200);
BEGIN
-- Automatisch buitenmelden bezoekers (moet gepland tussen 22:00 en 0:00 uur). Ticket 56012.
v_errorhint := 'Automatisch bezoek buitenmelden';
FOR rec IN ykpn_bez_out_c
LOOP
BEGIN
UPDATE bez_bezoekers
SET bez_bezoekers_out = SYSDATE
WHERE bez_bezoekers_key = rec.bez_bezoekers_key;
fac.trackaction ('BEZOUT',
rec.bez_bezoekers_key,
NULL,
NULL,
NULL);
END;
END LOOP;
EXCEPTION
WHEN OTHERS
THEN
oracle_err_num := SQLCODE;
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
v_errormsg := v_errormsg || ' ORACLE (error ' || oracle_err_num || '/' || oracle_err_mes || ')';
fac.writelog (p_applname,
'E',
'Daily task afgebroken!: ' || v_errormsg,
v_errorhint);
COMMIT;
END;
PROCEDURE tsk_bez_cleanup(p_applname IN VARCHAR2,
p_applrun IN VARCHAR2)
AS
v_errorhint VARCHAR2 (1000);
v_errormsg VARCHAR2 (1000);
oracle_err_num NUMBER;
oracle_err_mes VARCHAR2 (200);
BEGIN
-- Van bezoekers die langer dan een maand geleden een afspraak hadden gaan we een aantal
-- niet belangrijke kenmerken verwijderden.
v_errorhint := 'Opschonen oude bezoekers';
DELETE bez_kenmerkwaarde
WHERE bez_kenmerkwaarde_key IN
(SELECT bez_kenmerkwaarde_key
FROM bez_bezoekers b, bez_kenmerkwaarde kw, bez_afspraak a
WHERE b.bez_bezoekers_key = kw.bez_bezoekers_key
AND b.bez_afspraak_key = a.bez_afspraak_key
AND kw.bez_kenmerk_key IN (1000, -- Email adres
1001, -- Mobielnummer
1002, -- Aanmaak
1020, -- Pincode
1042, -- Nedap verzonden
1043, -- SMS verzonden
1060, -- Nedap id
1080, -- Kenteken
--1120, -- Geldig ID
1140, -- Uitleg parkeerbeleid
1160, -- Kenteken response id
1200) -- Gebouwomschrijving
AND bez_afspraak_datum < SYSDATE - 30);
EXCEPTION
WHEN OTHERS
THEN
oracle_err_num := SQLCODE;
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
v_errormsg := v_errormsg || ' ORACLE (error ' || oracle_err_num || '/' || oracle_err_mes || ')';
fac.writelog (p_applname,
'E',
'Daily task afgebroken!: ' || v_errormsg,
v_errorhint);
COMMIT;
END;
PROCEDURE tsk_cnt_index (p_applname IN VARCHAR2,
p_applrun IN VARCHAR2)
AS
CURSOR cnt_indexatie IS
SELECT c.cnt_contract_key,
kci.cnt_kenmerkcontract_waarde indexatie,
kcd.cnt_kenmerkcontract_key datum_key,
kci.cnt_kenmerkcontract_key index_key
FROM cnt_contract c,
cnt_kenmerkcontract kci,
cnt_kenmerk ki,
cnt_kenmerkcontract kcd,
cnt_kenmerk kd
WHERE c.cnt_contract_key = kcd.cnt_contract_key
AND kcd.cnt_kenmerk_key = kd.cnt_kenmerk_key
AND kd.cnt_srtkenmerk_key = 81
AND kcd.cnt_kenmerkcontract_waarde =
TO_CHAR (SYSDATE, 'dd-mm-yyyy')
AND c.cnt_contract_key = kci.cnt_contract_key
AND kci.cnt_kenmerk_key = ki.cnt_kenmerk_key
AND ki.cnt_srtkenmerk_key = 82;
v_errorhint VARCHAR2 (1000);
v_errormsg VARCHAR2 (1000);
oracle_err_num NUMBER;
oracle_err_mes VARCHAR2 (200);
BEGIN
-- Contractindexatie
v_errorhint := 'Contract indexatie';
FOR rec IN cnt_indexatie
LOOP
UPDATE cnt_contract_plaats
SET cnt_contract_plaats_gewicht =
cnt_contract_plaats_gewicht * (1 + (rec.indexatie /100))
WHERE cnt_contract_key = rec.cnt_contract_key;
UPDATE cnt_contract c
SET c.cnt_contract_termijnkosten = c.cnt_contract_kosten /12
WHERE c.cnt_contract_key = rec.cnt_contract_key;
UPDATE cnt_contract c
SET c.cnt_contract_kosten =
(SELECT SUM (cnt_contract_plaats_gewicht)
FROM cnt_contract_plaats cp
WHERE cp.cnt_contract_key = rec.cnt_contract_key)
WHERE c.cnt_contract_key = rec.cnt_contract_key;
fac.trackaction (
'CNTUPD',
rec.cnt_contract_key,
3,
SYSDATE,
'Contract ge<67>ndexeerd met ' || rec.indexatie || '%');
-- Verwijder de kenmerken voor de indexatie
DELETE cnt_kenmerkcontract
WHERE cnt_kenmerkcontract_key = rec.datum_key;
DELETE cnt_kenmerkcontract
WHERE cnt_kenmerkcontract_key = rec.index_key;
END LOOP;
EXCEPTION
WHEN OTHERS
THEN
oracle_err_num := SQLCODE;
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
v_errormsg := v_errormsg || ' ORACLE (error ' || oracle_err_num || '/' || oracle_err_mes || ')';
fac.writelog (p_applname,
'E',
'Daily task afgebroken!: ' || v_errormsg,
v_errorhint);
COMMIT;
END;
PROCEDURE tsk_mld_keuring (p_applname IN VARCHAR2,
p_applrun IN VARCHAR2)
AS
CURSOR c_keuring IS
SELECT kd.ins_kenmerkdeel_waarde,
dg.ins_deel_key,
dg.alg_locatie_key,
dg.alg_gebouw_key,
dg.ins_deel_omschrijving,
dg.alg_plaatsaanduiding
FROM ins_v_deel_gegevens dg, ins_kenmerkdeel kd
WHERE ins_discipline_key = 1501
AND dg.ins_deel_key = kd.ins_deel_key
AND kd.ins_kenmerk_key = 47 --Volgende keuring
AND TO_DATE (ins_kenmerkdeel_waarde, 'dd-mm-yyyy') =
TRUNC(SYSDATE) + 30
ORDER BY dg.alg_gebouw_key;
v_errorhint VARCHAR2 (1000);
v_errormsg VARCHAR2 (1000);
oracle_err_num NUMBER;
oracle_err_mes VARCHAR2 (200);
v_old_gebouw_key NUMBER;
v_stdmelding_key NUMBER;
v_melding_key NUMBER;
v_perslid_key NUMBER;
v_stdmelding_uvt mld_stdmelding.mld_stdmelding_t_uitvoertijd%TYPE
:= MLD_T_UITVOERTIJD (NULL, NULL); -- constructor initialisatie
BEGIN
-- Aanmaken melding voor periodieke keuring van objecten. We maken een melding per gebouw aan.
v_errorhint := 'Aanmaken melding voor Keuringsmiddelen keuren';
v_old_gebouw_key := -1;
v_stdmelding_key := 2961; -- Keuringsmiddelen keuren
v_perslid_key := 3; -- Facilitor
SELECT mld_stdmelding_t_uitvoertijd
INTO v_stdmelding_uvt
FROM mld_stdmelding
WHERE mld_stdmelding_key = v_stdmelding_key;
FOR rec IN c_keuring
LOOP
BEGIN
IF rec.alg_gebouw_key <> v_old_gebouw_key
THEN
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_melding_omschrijving,
mld_melding_status,
mld_melding_t_uitvoertijd,
mld_stdmelding_key,
mld_ins_discipline_key, -- behandelteam
prs_perslid_key,
prs_perslid_key_voor,
prs_kostenplaats_key,
mld_melding_spoed)
VALUES (
'MLD',
6, -- system
rec.alg_locatie_key,
rec.alg_gebouw_key,
SYSDATE,
'Keuringsmiddelen keuren',
'Keuring noodzakelijk voor de bijgevoegde keuringsmiddelen',
NULL,
v_stdmelding_uvt,
v_stdmelding_key,
1721, -- Yask locatiemanagement
v_perslid_key,
v_perslid_key,
NULL,
3) -- prio normaal
RETURNING mld_melding_key
INTO v_melding_key;
v_errormsg := 'Fout bij statuswijziging';
mld.setmeldingstatus (v_melding_key, 2, v_perslid_key);
v_old_gebouw_key := rec.alg_gebouw_key;
END IF;
INSERT INTO mld_melding_object (mld_melding_key, ins_deel_key)
VALUES (v_melding_key, rec.ins_deel_key);
END;
END LOOP;
EXCEPTION
WHEN OTHERS
THEN
oracle_err_num := SQLCODE;
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
v_errormsg := v_errormsg || ' ORACLE (error ' || oracle_err_num || '/' || oracle_err_mes || ')';
fac.writelog (p_applname,
'E',
'Daily task afgebroken!: ' || v_errormsg,
v_errorhint);
COMMIT;
END;
END;
/
@@ -2165,338 +2633,34 @@ END ykpn_update_contractscope;
/
CREATE OR REPLACE PROCEDURE ykpn_select_daily_task (p_applname IN VARCHAR2,
p_applrun IN VARCHAR2)
AS
CURSOR c IS
SELECT a.bez_afspraak_key,
prs_perslid_email,
p.prs_perslid_key,
aantal,
bez_afspraak_datum,
alg_locatie_omschrijving
FROM ( SELECT af.bez_afspraak_key,
af.alg_locatie_key,
af.bez_afspraak_datum,
COUNT (af.bez_afspraak_key) aantal
FROM bez_afspraak af, bez_bezoekers b, res_rsv_deel rrd
WHERE af.bez_afspraak_key = b.bez_afspraak_key
AND b.BEZ_BEZOEKERS_KEY = rrd.BEZ_BEZOEKERS_KEY
GROUP BY af.bez_afspraak_key,
af.alg_locatie_key,
af.bez_afspraak_datum) a,
prs_v_perslidwerkplek_gegevens pwpg,
alg_locatie l,
prs_perslid p,
fac_gebruikersgroep gg
WHERE gg.fac_groep_key = 28 -- locatiemanagement
AND gg.prs_perslid_key = pwpg.prs_perslid_key
AND a.alg_locatie_key = pwpg.alg_locatie_key
AND pwpg.prs_perslid_key = p.prs_perslid_key
AND a.alg_locatie_key = l.alg_locatie_key
AND a.aantal > 5
AND a.bez_afspraak_datum > SYSDATE
AND NOT EXISTS
(SELECT fac_tracking_key
FROM fac_tracking t
WHERE t.fac_srtnotificatie_key = 421 -- cust11
AND t.fac_tracking_refkey = a.bez_afspraak_key);
v_oms VARCHAR2 (200);
v_tracking_key NUMBER (10);
CURSOR ykpn_bez_out_c IS
SELECT b.bez_bezoekers_key, b.bez_afspraak_key, b.bez_bezoekers_done
FROM BEZ_AFSPRAAK ba, BEZ_BEZOEKERS b
WHERE ba.bez_afspraak_key = b.bez_afspraak_key
AND b.bez_bezoekers_done IS NOT NULL
AND b.bez_bezoekers_out IS NULL
AND TRUNC (ba.bez_afspraak_datum) = TRUNC (SYSDATE);
CURSOR cnt_indexatie IS
SELECT c.cnt_contract_key,
kci.cnt_kenmerkcontract_waarde indexatie,
kcd.cnt_kenmerkcontract_key datum_key,
kci.cnt_kenmerkcontract_key index_key
FROM cnt_contract c,
cnt_kenmerkcontract kci,
cnt_kenmerk ki,
cnt_kenmerkcontract kcd,
cnt_kenmerk kd
WHERE c.cnt_contract_key = kcd.cnt_contract_key
AND kcd.cnt_kenmerk_key = kd.cnt_kenmerk_key
AND kd.cnt_srtkenmerk_key = 81
AND kcd.cnt_kenmerkcontract_waarde =
TO_CHAR (SYSDATE, 'dd-mm-yyyy')
AND c.cnt_contract_key = kci.cnt_contract_key
AND kci.cnt_kenmerk_key = ki.cnt_kenmerk_key
AND ki.cnt_srtkenmerk_key = 82;
CURSOR c_keuring IS
SELECT kd.ins_kenmerkdeel_waarde,
dg.ins_deel_key,
dg.alg_locatie_key,
dg.alg_gebouw_key,
dg.ins_deel_omschrijving,
dg.alg_plaatsaanduiding
FROM ins_v_deel_gegevens dg, ins_kenmerkdeel kd
WHERE ins_discipline_key = 1501
AND dg.ins_deel_key = kd.ins_deel_key
AND kd.ins_kenmerk_key = 47 --Volgende keuring
AND TO_DATE (ins_kenmerkdeel_waarde, 'dd-mm-yyyy') =
TRUNC(SYSDATE) + 30
ORDER BY dg.alg_gebouw_key;
v_errorhint VARCHAR2 (1000);
v_errormsg VARCHAR2 (1000);
oracle_err_num NUMBER;
oracle_err_mes VARCHAR2 (200);
v_old_gebouw_key NUMBER;
v_stdmelding_key NUMBER;
v_melding_key NUMBER;
v_perslid_key NUMBER;
v_stdmelding_uvt mld_stdmelding.mld_stdmelding_t_uitvoertijd%TYPE
:= MLD_T_UITVOERTIJD (NULL, NULL); -- constructor initialisatie
BEGIN
-- bevriezen van contractgegevens
v_errorhint := 'Bevriezen contractgegevens';
IF TO_CHAR (SYSDATE, 'DD') = '01'
THEN
INSERT INTO ykpn_freeze_contract (freezedate,
boekmaand,
cnt_contract_key,
cnt_contract_nummer,
cnt_contract_versie,
cnt_contract_nummer_intern,
cnt_contract_omschrijving,
cnt_contract_opmerking,
cnt_contract_kosten,
cnt_contract_termijnkosten,
cnt_contract_termijntermijn,
cnt_prs_bedrijf_key,
ins_discipline_key,
prs_kostenplaats_key,
cnt_contract_status,
cnt_contract_plaats_key,
cnt_alg_plaats_key,
cnt_alg_plaats_code,
cnt_contract_plaats_gewicht,
cnt_contract_plaats_aanmaak,
cnt_contract_plaats_verwijder)
(SELECT SYSDATE,
TO_CHAR (SYSDATE - 1, 'yyyy-mm'),
c.cnt_contract_key,
cnt_contract_nummer,
cnt_contract_versie,
cnt_contract_nummer_intern,
cnt_contract_omschrijving,
cnt_contract_opmerking,
cnt_contract_kosten,
cnt_contract_termijnkosten,
cnt_contract_termijntermijn,
cnt_prs_bedrijf_key,
ins_discipline_key,
prs_kostenplaats_key,
cnt_contract_status,
cnt_contract_plaats_key,
cnt_alg_plaats_key,
cnt_alg_plaats_code,
cnt_contract_plaats_gewicht,
cnt_contract_plaats_aanmaak,
cnt_contract_plaats_verwijder
FROM cnt_contract c, cnt_contract_plaats cp
WHERE c.cnt_contract_key = cp.cnt_contract_key
AND cnt_contract_plaats_verwijder IS NULL);
END IF;
v_errorhint := 'Starten daily task';
-- Stuur locatiemanagement een mail als grote groepen komen parkeren.
v_errorhint := 'Mail locatiemanagement bij grote groepen';
FOR rec IN c
LOOP
-- Controleer of de tracking al gezet is. Er kunnen namelijk meer mensen genotificeerd worden per afspraak
BEGIN
SELECT fac_tracking_key
INTO v_tracking_key
FROM fac_tracking t
WHERE t.fac_srtnotificatie_key = 421 -- CUST11
AND t.fac_tracking_refkey = rec.bez_afspraak_key;
EXCEPTION
WHEN NO_DATA_FOUND
THEN
FAC.trackaction (
'CUST11',
rec.bez_afspraak_key,
3,
NULL,
'#Notificatie grote groep parkeren uitgestuurd');
END;
YKPN.tsk_bevr_contract(p_applname, p_applrun);
v_oms :=
'Grote groep ('
|| rec.aantal
|| ') parkeerplaatsen geboekt nr:'
|| rec.bez_afspraak_key
|| ' op '
|| TO_CHAR (rec.bez_afspraak_datum, 'dd-mm-yyyy hh24:mi')
|| ', locatie: '
|| rec.alg_locatie_omschrijving;
YKPN.tsk_mail_locman(p_applname, p_applrun);
YKPN.tsk_bez_buitmld(p_applname, p_applrun);
YKPN.tsk_bez_cleanup(p_applname, p_applrun);
INSERT INTO fac_notificatie (fac_srtnotificatie_key,
fac_notificatie_status,
fac_notificatie_receiver_email,
prs_perslid_key_receiver,
fac_notificatie_oms,
fac_notificatie_refkey,
fac_notificatie_extrakey,
fac_notificatie_prioriteit)
VALUES (421, -- CUST11
2, -- mail
rec.prs_perslid_email, -- email
rec.prs_perslid_key,
v_oms,
rec.bez_afspraak_key,
NULL,
2);
END LOOP;
-- Automatisch buitenmelden bezoekers (moet gepland tussen 22:00 en 0:00 uur). Ticket 56012.
v_errorhint := 'Automatisch bezoek buitenmelden';
FOR rec IN ykpn_bez_out_c
LOOP
BEGIN
UPDATE bez_bezoekers
SET bez_bezoekers_out = SYSDATE
WHERE bez_bezoekers_key = rec.bez_bezoekers_key;
fac.trackaction ('BEZOUT',
rec.bez_bezoekers_key,
NULL,
NULL,
NULL);
END;
END LOOP;
-- Van bezoekers die langer dan een maand geleden een afspraak hadden gaan we een aantal
-- niet belangrijke kenmerken verwijderden.
v_errorhint := 'Opschonen oude bezoekers';
DELETE bez_kenmerkwaarde
WHERE bez_kenmerkwaarde_key IN
(SELECT bez_kenmerkwaarde_key
FROM bez_bezoekers b, bez_kenmerkwaarde kw, bez_afspraak a
WHERE b.bez_bezoekers_key = kw.bez_bezoekers_key
AND b.bez_afspraak_key = a.bez_afspraak_key
AND kw.bez_kenmerk_key IN (1000, -- Email adres
1001, -- Mobielnummer
1002, -- Aanmaak
1020, -- Pincode
1042, -- Nedap verzonden
1043, -- SMS verzonden
1060, -- Nedap id
1080, -- Kenteken
--1120, -- Geldig ID
1140, -- Uitleg parkeerbeleid
1160, -- Kenteken response id
1200) -- Gebouwomschrijving
AND bez_afspraak_datum < SYSDATE - 30);
-- Contractindexatie
v_errorhint := 'Contract indexatie';
FOR rec IN cnt_indexatie
LOOP
UPDATE cnt_contract_plaats
SET cnt_contract_plaats_gewicht =
cnt_contract_plaats_gewicht * (1 + (rec.indexatie /100))
WHERE cnt_contract_key = rec.cnt_contract_key;
UPDATE cnt_contract c
SET c.cnt_contract_termijnkosten = c.cnt_contract_kosten /12
WHERE c.cnt_contract_key = rec.cnt_contract_key;
UPDATE cnt_contract c
SET c.cnt_contract_kosten =
(SELECT SUM (cnt_contract_plaats_gewicht)
FROM cnt_contract_plaats cp
WHERE cp.cnt_contract_key = rec.cnt_contract_key)
WHERE c.cnt_contract_key = rec.cnt_contract_key;
fac.trackaction (
'CNTUPD',
rec.cnt_contract_key,
3,
SYSDATE,
'Contract ge<67>ndexeerd met ' || rec.indexatie || '%');
-- Verwijder de kenmerken voor de indexatie
DELETE cnt_kenmerkcontract
WHERE cnt_kenmerkcontract_key = rec.datum_key;
DELETE cnt_kenmerkcontract
WHERE cnt_kenmerkcontract_key = rec.index_key;
END LOOP;
-- Aanmaken melding voor periodieke keuring van objecten. We maken een melding per gebouw aan.
v_errorhint := 'Aanmaken melding voor Keuringsmiddelen keuren';
v_old_gebouw_key := -1;
v_stdmelding_key := 2961; -- Keuringsmiddelen keuren
v_perslid_key := 3; -- Facilitor
SELECT mld_stdmelding_t_uitvoertijd
INTO v_stdmelding_uvt
FROM mld_stdmelding
WHERE mld_stdmelding_key = v_stdmelding_key;
FOR rec IN c_keuring
LOOP
BEGIN
IF rec.alg_gebouw_key <> v_old_gebouw_key
THEN
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_melding_omschrijving,
mld_melding_status,
mld_melding_t_uitvoertijd,
mld_stdmelding_key,
mld_ins_discipline_key, -- behandelteam
prs_perslid_key,
prs_perslid_key_voor,
prs_kostenplaats_key,
mld_melding_spoed)
VALUES (
'MLD',
6, -- system
rec.alg_locatie_key,
rec.alg_gebouw_key,
SYSDATE,
'Keuringsmiddelen keuren',
'Keuring noodzakelijk voor de bijgevoegde keuringsmiddelen',
NULL,
v_stdmelding_uvt,
v_stdmelding_key,
1721, -- Yask locatiemanagement
v_perslid_key,
v_perslid_key,
NULL,
3) -- prio normaal
RETURNING mld_melding_key
INTO v_melding_key;
v_errormsg := 'Fout bij statuswijziging';
mld.setmeldingstatus (v_melding_key, 2, v_perslid_key);
v_old_gebouw_key := rec.alg_gebouw_key;
END IF;
INSERT INTO mld_melding_object (mld_melding_key, ins_deel_key)
VALUES (v_melding_key, rec.ins_deel_key);
END;
END LOOP;
YKPN.tsk_cnt_index(p_applname, p_applrun);
YKPN.tsk_mld_keuring(p_applname, p_applrun);
YKPN.cleanup_room_dep_contracts;