YKPN#66154 -- Aanpassen dailytask naar separate procedure met exception handling
svn path=/Customer/trunk/; revision=50299
This commit is contained in:
806
YKPN/ykpn.sql
806
YKPN/ykpn.sql
@@ -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;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user