LPNL#67364 -- Notificatie bij goedkeuren opdracht.
svn path=/Customer/trunk/; revision=54169
This commit is contained in:
296
LPNL/LPNL.sql
296
LPNL/LPNL.sql
@@ -25,101 +25,146 @@ SET DEFINE OFF
|
||||
|
||||
CREATE OR REPLACE PACKAGE LPNL
|
||||
AS
|
||||
FUNCTION change_delimitor (p_string VARCHAR2,
|
||||
p_delimitor VARCHAR2)
|
||||
RETURN VARCHAR2;
|
||||
FUNCTION change_delimitor (p_string VARCHAR2, p_delimitor VARCHAR2)
|
||||
RETURN VARCHAR2;
|
||||
|
||||
PROCEDURE mld_ord_after_insert(p_opdr_key NUMBER);
|
||||
|
||||
PROCEDURE anonimize;
|
||||
PROCEDURE mld_ord_after_insert;
|
||||
|
||||
PROCEDURE anonimize;
|
||||
END;
|
||||
/
|
||||
|
||||
CREATE OR REPLACE PACKAGE BODY LPNL
|
||||
AS
|
||||
FUNCTION change_delimitor (p_string VARCHAR2, p_delimitor VARCHAR2)
|
||||
RETURN VARCHAR2
|
||||
AS
|
||||
v_field VARCHAR2 (1000) := 'QueQuLeQue';
|
||||
v_result VARCHAR2 (2000);
|
||||
v_line VARCHAR2 (2000);
|
||||
BEGIN
|
||||
v_line := p_string;
|
||||
|
||||
FUNCTION change_delimitor (p_string VARCHAR2,
|
||||
p_delimitor VARCHAR2)
|
||||
RETURN VARCHAR2
|
||||
AS
|
||||
v_field VARCHAR2 (1000) := 'QueQuLeQue';
|
||||
v_result VARCHAR2 (2000);
|
||||
v_line VARCHAR2 (2000);
|
||||
BEGIN
|
||||
v_line := p_string;
|
||||
WHILE v_line IS NOT NULL
|
||||
LOOP
|
||||
fac.imp_getfield (v_line, p_delimitor, v_field);
|
||||
v_result := v_result || '"' || v_field || '";';
|
||||
END LOOP;
|
||||
|
||||
WHILE v_line IS NOT NULL
|
||||
LOOP
|
||||
fac.imp_getfield (v_line, p_delimitor, v_field);
|
||||
v_result := v_result || '"' || v_field || '";';
|
||||
END LOOP;
|
||||
RETURN v_result;
|
||||
END;
|
||||
|
||||
RETURN v_result;
|
||||
END;
|
||||
PROCEDURE mld_ord_after_insert
|
||||
AS
|
||||
v_count NUMBER;
|
||||
|
||||
PROCEDURE mld_ord_after_insert(p_opdr_key NUMBER)
|
||||
AS
|
||||
v_count NUMBER;
|
||||
v_perslid_key NUMBER;
|
||||
v_perslid_naam VARCHAR2(100);
|
||||
BEGIN
|
||||
-- ORDGOE srtnotificatie_key = 95
|
||||
-- Tracking srtnotificatie_key = 177
|
||||
-- Marcel de Boon 22
|
||||
-- Danny Flemming 26
|
||||
SELECT count(*)
|
||||
INTO v_count
|
||||
FROM fac_notificatie
|
||||
WHERE fac_srtnotificatie_key = 95
|
||||
AND fac_notificatie_refkey = p_opdr_key
|
||||
AND prs_perslid_key_receiver IN (26,22);
|
||||
CURSOR c1 IS -- Tweede niveau van Marcel de Boon en Danny Flemming
|
||||
SELECT fac_notificatie_refkey, COUNT (*) aantal
|
||||
FROM fac_notificatie
|
||||
WHERE fac_srtnotificatie_key = 95
|
||||
AND prs_perslid_key_receiver IN (26, 22)
|
||||
GROUP BY fac_notificatie_refkey, fac_notificatie_datum
|
||||
HAVING COUNT (fac_notificatie_refkey) = 2;
|
||||
|
||||
IF v_count = 2
|
||||
THEN
|
||||
SELECT fac_usrdata_code
|
||||
INTO v_perslid_key
|
||||
FROM fac_usrdata
|
||||
WHERE fac_usrdata_key = FAC.safe_to_number(FLX.getflex ('OPD', 21, p_opdr_key));
|
||||
CURSOR c2 IS -- Eerste niveau van Marion Post en Dagomar Jansen
|
||||
SELECT fac_notificatie_refkey, COUNT (*) aantal
|
||||
FROM fac_notificatie
|
||||
WHERE fac_srtnotificatie_key = 95
|
||||
AND prs_perslid_key_receiver IN (27, 23)
|
||||
GROUP BY fac_notificatie_refkey, fac_notificatie_datum
|
||||
HAVING COUNT (fac_notificatie_refkey) = 2;
|
||||
|
||||
dbms_output.put_line(' perslid:' || v_perslid_key);
|
||||
DELETE fac_notificatie
|
||||
WHERE fac_srtnotificatie_key = 95
|
||||
AND prs_perslid_key_receiver <> v_perslid_key
|
||||
AND fac_notificatie_refkey = p_opdr_key;
|
||||
dbms_output.put_line(' Na delete:' || v_perslid_key);
|
||||
SELECT prs_perslid_naam_full
|
||||
INTO v_perslid_naam
|
||||
FROM prs_v_perslid_fullnames
|
||||
WHERE prs_perslid_key = v_perslid_key;
|
||||
dbms_output.put_line(' Na select naam full:' || v_perslid_naam);
|
||||
UPDATE fac_tracking
|
||||
SET fac_tracking_oms = SUBSTR(fac_tracking_oms, 1, INSTR(fac_tracking_oms, 'verstuurd aan')) || 'verstuurd aan ' || v_perslid_naam
|
||||
WHERE fac_tracking_refkey = p_opdr_key
|
||||
AND fac_srtnotificatie_key = 177
|
||||
AND fac_tracking_datum > SYSDATE - 1/(24*60);
|
||||
END IF;
|
||||
PROCEDURE change_tracking (p_opdr_key NUMBER, p_kenmerk_key NUMBER)
|
||||
AS
|
||||
v_perslid_key NUMBER;
|
||||
v_perslid_naam VARCHAR2 (100);
|
||||
BEGIN
|
||||
SELECT fac_usrdata_code
|
||||
INTO v_perslid_key
|
||||
FROM fac_usrdata
|
||||
WHERE fac_usrdata_key =
|
||||
FAC.safe_to_number (
|
||||
FLX.getflex ('OPD', p_kenmerk_key, p_opdr_key));
|
||||
|
||||
END;
|
||||
DBMS_OUTPUT.put_line (' perslid:' || v_perslid_key);
|
||||
|
||||
PROCEDURE anonimize
|
||||
AS
|
||||
CURSOR c IS
|
||||
SELECT *
|
||||
FROM res_rsv_ruimte
|
||||
WHERE res_activiteit_key = 30 -- Werkplek
|
||||
AND res_rsv_ruimte_van < SYSDATE - 21;
|
||||
BEGIN
|
||||
FOR rec IN c
|
||||
LOOP
|
||||
UPDATE res_rsv_ruimte
|
||||
SET res_rsv_ruimte_host_key = 1201,
|
||||
res_rsv_ruimte_contact_key = 1201
|
||||
WHERE res_rsv_ruimte_key = rec.res_rsv_ruimte_key;
|
||||
END LOOP;
|
||||
fac.writelog ('LPNL.anonimize', 'I', 'LPNL.anonimize is uitgevoerd', '');
|
||||
END;
|
||||
DELETE fac_notificatie
|
||||
WHERE fac_srtnotificatie_key = 95
|
||||
AND prs_perslid_key_receiver <> v_perslid_key
|
||||
AND fac_notificatie_refkey = p_opdr_key;
|
||||
|
||||
DELETE web_user_messages
|
||||
WHERE fac_srtnotificatie_key = 95
|
||||
AND prs_perslid_key_receiver <> v_perslid_key
|
||||
AND web_user_mess_action_params = p_opdr_key;
|
||||
|
||||
DBMS_OUTPUT.put_line (' Na delete:' || v_perslid_key);
|
||||
|
||||
SELECT prs_perslid_naam_friendly
|
||||
INTO v_perslid_naam
|
||||
FROM prs_v_perslid_fullnames
|
||||
WHERE prs_perslid_key = v_perslid_key;
|
||||
|
||||
DBMS_OUTPUT.put_line (' Na select naam full:' || v_perslid_naam);
|
||||
|
||||
UPDATE fac_tracking
|
||||
SET fac_tracking_oms =
|
||||
SUBSTR (fac_tracking_oms,
|
||||
1,
|
||||
INSTR (fac_tracking_oms, ' verstuurd aan'))
|
||||
|| 'verstuurd aan '
|
||||
|| v_perslid_naam
|
||||
WHERE fac_tracking_refkey = p_opdr_key
|
||||
AND fac_tracking_oms LIKE '%' || v_perslid_naam || '%'
|
||||
AND fac_srtnotificatie_key = 177
|
||||
AND fac_tracking_datum > SYSDATE - (1 / 24);
|
||||
EXCEPTION
|
||||
WHEN NO_DATA_FOUND
|
||||
THEN
|
||||
NULL; -- Geen fiatteur opgegeven. Dan gaat de mail maar naar beiden toe
|
||||
END;
|
||||
BEGIN
|
||||
-- ORDGOE srtnotificatie_key = 95
|
||||
-- Tracking srtnotificatie_key = 177
|
||||
-- Kenmerk_key van geselecteerde goedkeurder = 21
|
||||
-- Marcel de Boon 22
|
||||
-- Danny Flemming 26
|
||||
-- Marion Post 27
|
||||
-- Dagomar Jansen 23
|
||||
|
||||
FOR rec1 IN c1
|
||||
LOOP
|
||||
change_tracking (rec1.fac_notificatie_refkey, 21);
|
||||
END LOOP;
|
||||
|
||||
FOR rec2 IN c2
|
||||
LOOP
|
||||
change_tracking (rec2.fac_notificatie_refkey, 21);
|
||||
END LOOP;
|
||||
|
||||
END;
|
||||
|
||||
PROCEDURE anonimize
|
||||
AS
|
||||
CURSOR c IS
|
||||
SELECT *
|
||||
FROM res_rsv_ruimte
|
||||
WHERE res_activiteit_key = 30 -- Werkplek
|
||||
AND res_rsv_ruimte_van < SYSDATE - 21;
|
||||
BEGIN
|
||||
FOR rec IN c
|
||||
LOOP
|
||||
UPDATE res_rsv_ruimte
|
||||
SET res_rsv_ruimte_host_key = 1201,
|
||||
res_rsv_ruimte_contact_key = 1201
|
||||
WHERE res_rsv_ruimte_key = rec.res_rsv_ruimte_key;
|
||||
END LOOP;
|
||||
|
||||
fac.writelog ('LPNL.anonimize',
|
||||
'I',
|
||||
'LPNL.anonimize is uitgevoerd',
|
||||
'');
|
||||
END;
|
||||
END;
|
||||
/
|
||||
|
||||
@@ -193,7 +238,7 @@ BEGIN
|
||||
|
||||
-- Verwijder overgebleven records die geen persoon zijn
|
||||
-- De strings waar we op zoeken staan in de eigen tabel met key 1
|
||||
DELETE fac_imp_file
|
||||
DELETE fac_imp_perslid
|
||||
WHERE fac_import_key = p_import_key
|
||||
AND fac_imp_file_index IN
|
||||
(SELECT fac_imp_file_index
|
||||
@@ -532,6 +577,97 @@ AS
|
||||
FROM lpnl_v_wp_bezetting
|
||||
WHERE bhv = 1 AND TRUNC (res_rsv_ruimte_van) = TRUNC (SYSDATE);
|
||||
|
||||
|
||||
-- Financieel
|
||||
|
||||
CREATE OR REPLACE VIEW lpnl_v_rap_fin_verplichting
|
||||
AS
|
||||
|
||||
SELECT sd.ins_srtdiscipline_prefix
|
||||
|| m.mld_melding_key
|
||||
|| '/'
|
||||
|| o.mld_opdr_bedrijfopdr_volgnr nummer,
|
||||
alg_locatie_omschrijving,
|
||||
prs_kostenplaats_omschrijving,
|
||||
k.prs_kostenplaats_nr,
|
||||
prs_kostensoort_oms,
|
||||
prs_kostensoort_opmerking,
|
||||
prs_bedrijf_naam,
|
||||
mld_stdmelding_omschrijving,
|
||||
mld_statusopdr_omschrijving,
|
||||
mld_opdr_kosten,
|
||||
sf.fin_factuur_statuses_omschr,
|
||||
f.fin_factuur_totaal
|
||||
FROM fin_factuur f,
|
||||
mld_opdr o,
|
||||
mld_melding m,
|
||||
mld_stdmelding std,
|
||||
prs_kostensoort ks,
|
||||
ins_srtdiscipline sd,
|
||||
ins_tab_discipline d,
|
||||
prs_bedrijf b,
|
||||
prs_kostenplaats k,
|
||||
alg_locatie l,
|
||||
alg_gebouw g,
|
||||
mld_statusopdr so,
|
||||
fin_factuur_statuses sf
|
||||
WHERE o.mld_opdr_key = f.mld_opdr_key(+)
|
||||
AND o.mld_melding_key = m.mld_melding_key
|
||||
AND m.mld_stdmelding_key = std.mld_stdmelding_key
|
||||
AND std.prs_kostensoort_key = ks.prs_kostensoort_key(+)
|
||||
AND std.mld_ins_discipline_key = d.ins_discipline_key
|
||||
AND d.ins_srtdiscipline_key = sd.ins_srtdiscipline_key
|
||||
AND o.mld_uitvoerende_keys = b.prs_bedrijf_key(+)
|
||||
AND m.mld_alg_locatie_key = g.alg_locatie_key(+)
|
||||
AND m.mld_alg_locatie_key = l.alg_locatie_key(+)
|
||||
AND g.prs_kostenplaats_key = k.prs_kostenplaats_key(+)
|
||||
AND o.mld_statusopdr_key = so.mld_statusopdr_key
|
||||
AND f.fin_factuur_statuses_key = sf.fin_factuur_statuses_key(+)
|
||||
UNION ALL
|
||||
SELECT 'C' || c.cnt_contract_key,
|
||||
alg_locatie_omschrijving,
|
||||
prs_kostenplaats_omschrijving,
|
||||
k.prs_kostenplaats_nr,
|
||||
prs_kostensoort_oms,
|
||||
prs_kostensoort_opmerking,
|
||||
prs_bedrijf_naam,
|
||||
cnt_contract_omschrijving
|
||||
|| ' ('
|
||||
|| cnt_factuurschema_boekmaand
|
||||
|| ')',
|
||||
NULL,
|
||||
ROUND(cfs.cnt_factuurschema_bedrag * (COALESCE(cnt_contract_plaats_gewicht, c.cnt_contract_kosten)/c.cnt_contract_kosten),2),
|
||||
sf.fin_factuur_statuses_omschr,
|
||||
f.fin_factuur_totaal
|
||||
FROM fin_factuur f,
|
||||
cnt_contract c,
|
||||
cnt_contract_plaats cp,
|
||||
prs_kostensoort ks,
|
||||
prs_bedrijf b,
|
||||
prs_kostenplaats k,
|
||||
alg_locatie l,
|
||||
alg_gebouw g,
|
||||
fin_factuur_statuses sf,
|
||||
cnt_factuurschema cfs
|
||||
WHERE c.cnt_contract_key = f.cnt_contract_key(+)
|
||||
AND c.cnt_contract_key = cp.cnt_contract_key
|
||||
AND cp.cnt_alg_plaats_key = l.alg_locatie_key
|
||||
AND l.alg_locatie_key = g.alg_locatie_key
|
||||
AND g.prs_kostenplaats_key = k.prs_kostenplaats_key
|
||||
AND c.prs_kostensoort_key = ks.prs_kostensoort_key(+)
|
||||
AND c.cnt_prs_bedrijf_key = b.prs_bedrijf_key
|
||||
AND f.fin_factuur_statuses_key = sf.fin_factuur_statuses_key(+)
|
||||
AND c.cnt_contract_key = cfs.cnt_contract_key
|
||||
AND TO_DATE (cnt_factuurschema_boekmaand, 'yyyy-mm') BETWEEN TRUNC (
|
||||
SYSDATE,
|
||||
'y')
|
||||
AND TRUNC (
|
||||
SYSDATE,
|
||||
'y')
|
||||
+ 364
|
||||
AND cfs.cnt_factuurschema_boekmaand = f.fin_factuur_boekmaand(+);
|
||||
|
||||
|
||||
-- Dagelijkse taak
|
||||
CREATE OR REPLACE PROCEDURE lpnl_daily
|
||||
AS
|
||||
|
||||
Reference in New Issue
Block a user