BCGV#84047 Toevoeging ordertracking.
svn path=/Customer/trunk/; revision=66758
This commit is contained in:
612
BCGV/bcgv.sql
612
BCGV/bcgv.sql
@@ -1040,6 +1040,618 @@ END;
|
||||
/
|
||||
|
||||
|
||||
/* Formatted on 30-9-2024 14:05:23 (QP5 v5.336) */
|
||||
CREATE OR REPLACE PROCEDURE bcgv_import_budgettering (p_import_key IN NUMBER)
|
||||
AS
|
||||
CURSOR imp_csv IS
|
||||
SELECT fac_imp_csv_key fac_imp_csv_key,
|
||||
fac_imp_csv_col01 kostenplaats_nr,
|
||||
fac_imp_csv_col02 kostenplaats_oms,
|
||||
fac_imp_csv_col03 kostensoort_code,
|
||||
fac_imp_csv_col04 kostensoort_oms,
|
||||
fac_imp_csv_col05 periode,
|
||||
fac_imp_csv_col06 budget
|
||||
FROM fac_imp_csv
|
||||
WHERE fac_import_key = p_import_key
|
||||
ORDER BY fac_imp_csv_key;
|
||||
|
||||
v_errormsg VARCHAR2 (1000);
|
||||
v_errorhint VARCHAR2 (1000);
|
||||
v_aanduiding VARCHAR2 (1000);
|
||||
oracle_err_num NUMBER;
|
||||
oracle_err_mes VARCHAR2 (200);
|
||||
|
||||
v_header_valid NUMBER := 0;
|
||||
v_prs_kostenplaats_key NUMBER;
|
||||
v_prs_kostensoortgrp_key NUMBER;
|
||||
v_prs_kostensoort_key NUMBER;
|
||||
v_alg_gebouw_code VARCHAR2 (20);
|
||||
BEGIN
|
||||
FOR rec IN imp_csv
|
||||
LOOP
|
||||
IF v_header_valid = 0
|
||||
THEN
|
||||
IF ( UPPER (rec.kostenplaats_nr) = 'KOSTENPLAATSCODE'
|
||||
AND UPPER (rec.kostenplaats_oms) = 'KOSTENPLAATSOMS'
|
||||
AND UPPER (rec.kostensoort_code) = 'KOSTENSOORTCODE'
|
||||
AND UPPER (rec.kostensoort_oms) = 'KOSTENSOORTOMS'
|
||||
AND UPPER (rec.periode) = 'PERIODE'
|
||||
AND UPPER (rec.budget) = 'BUDGET (EURO)')
|
||||
THEN
|
||||
v_header_valid := 1;
|
||||
END IF;
|
||||
ELSE
|
||||
v_aanduiding := 'Ophalen kostenplaats ' || rec.kostenplaats_nr || ' mislukt';
|
||||
|
||||
SELECT p.prs_kostenplaats_key
|
||||
INTO v_prs_kostenplaats_key
|
||||
FROM prs_kostenplaats p
|
||||
WHERE p.prs_kostenplaats_nr = rec.kostenplaats_nr AND p.prs_kostenplaats_verwijder IS NULL;
|
||||
|
||||
IF v_prs_kostenplaats_key IS NULL
|
||||
THEN
|
||||
fac.imp_writelog (p_import_key,
|
||||
'E',
|
||||
v_aanduiding || v_errorhint,
|
||||
'Kan kostenplaats niet 1-duidig bepalen');
|
||||
END IF;
|
||||
|
||||
v_aanduiding := 'Ophalen kostensoort ' || rec.kostensoort_code || ' mislukt';
|
||||
|
||||
SELECT k.prs_kostensoort_key
|
||||
INTO v_prs_kostensoort_key
|
||||
FROM prs_kostensoort k
|
||||
WHERE k.prs_kostensoort_upper = UPPER (rec.kostensoort_code)
|
||||
AND k.prs_kostensoort_verwijder IS NULL;
|
||||
|
||||
IF v_prs_kostensoort_key IS NULL
|
||||
THEN
|
||||
fac.imp_writelog (p_import_key,
|
||||
'E',
|
||||
v_aanduiding || v_errorhint,
|
||||
'Kan kostensoort niet 1-duidig bepalen');
|
||||
END IF;
|
||||
END IF;
|
||||
END LOOP;
|
||||
|
||||
IF v_header_valid = 0
|
||||
THEN
|
||||
fac.imp_writelog (p_import_key,
|
||||
'E',
|
||||
'Geen valide header gevonden',
|
||||
'Header fout');
|
||||
END IF;
|
||||
EXCEPTION
|
||||
WHEN NO_DATA_FOUND
|
||||
THEN
|
||||
v_errorhint := v_errormsg || ' - ' || v_aanduiding;
|
||||
oracle_err_num := SQLCODE;
|
||||
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
|
||||
v_errormsg := 'error ' || oracle_err_num || '/' || oracle_err_mes;
|
||||
fac.imp_writelog (p_import_key,
|
||||
'E',
|
||||
v_errormsg,
|
||||
v_errorhint);
|
||||
END;
|
||||
/
|
||||
|
||||
|
||||
CREATE OR REPLACE PROCEDURE bcgv_update_budgettering (p_import_key IN NUMBER)
|
||||
AS
|
||||
CURSOR bdgt IS
|
||||
SELECT fac_imp_csv_key fac_imp_csv_key,
|
||||
fac_imp_csv_col01 kostenplaats_nr,
|
||||
fac_imp_csv_col02 kostenplaats_oms,
|
||||
fac_imp_csv_col03 kostensoort_code,
|
||||
fac_imp_csv_col04 kostensoort_oms,
|
||||
fac_imp_csv_col05 periode,
|
||||
fac_imp_csv_col06 budget
|
||||
FROM fac_imp_csv
|
||||
WHERE fac_import_key = p_import_key
|
||||
ORDER BY fac_imp_csv_key;
|
||||
|
||||
|
||||
v_errormsg VARCHAR2 (1000);
|
||||
v_errorhint VARCHAR2 (1000);
|
||||
v_aanduiding VARCHAR2 (1000);
|
||||
oracle_err_num NUMBER;
|
||||
oracle_err_mes VARCHAR2 (200);
|
||||
v_count NUMBER := 0;
|
||||
v_ongeldig NUMBER := 0;
|
||||
|
||||
v_ins_discipline_key NUMBER;
|
||||
v_bgt_project_key NUMBER;
|
||||
v_bgt_kostenrubriek_key NUMBER;
|
||||
v_kostensoortgrp_key NUMBER;
|
||||
v_kostensoort_key NUMBER;
|
||||
v_kostenplaatsgrp_key NUMBER;
|
||||
v_kostenplaats_key NUMBER;
|
||||
v_kostenplaats_omschrijving PRS_KOSTENPLAATS.PRS_KOSTENPLAATS_OMSCHRIJVING%TYPE;
|
||||
v_budget NUMBER;
|
||||
v_budget_nu NUMBER;
|
||||
v_budget_key NUMBER;
|
||||
v_periode_start DATE;
|
||||
v_periode_eind DATE;
|
||||
BEGIN
|
||||
BEGIN
|
||||
v_aanduiding := 'Ophalen budget project disciplne Investering budgettering mislukt';
|
||||
|
||||
SELECT ins_discipline_key
|
||||
INTO v_ins_discipline_key
|
||||
FROM ins_tab_discipline i
|
||||
WHERE i.ins_discipline_module = 'BGT'
|
||||
AND i.ins_discipline_omschrijving = 'Investering'
|
||||
AND i.ins_discipline_verwijder IS NULL;
|
||||
EXCEPTION
|
||||
WHEN NO_DATA_FOUND
|
||||
THEN
|
||||
INSERT INTO ins_tab_discipline (ins_discipline_omschrijving,
|
||||
ins_discipline_module,
|
||||
ins_discipline_aanmaak,
|
||||
ins_discipline_kpnverplicht)
|
||||
VALUES ('Investering',
|
||||
'BGT',
|
||||
SYSDATE,
|
||||
0)
|
||||
RETURNING ins_discipline_key
|
||||
INTO v_ins_discipline_key;
|
||||
|
||||
INSERT INTO bgt_disc_params (bgt_ins_discipline_key)
|
||||
VALUES (v_ins_discipline_key);
|
||||
END;
|
||||
|
||||
IF v_ins_discipline_key = NULL
|
||||
THEN
|
||||
fac.imp_writelog (p_import_key,
|
||||
'E',
|
||||
v_aanduiding || v_errorhint,
|
||||
'Kan budget project disciplne niet 1-duidig bepalen of aanmaken');
|
||||
v_ongeldig := 1;
|
||||
ELSE
|
||||
BEGIN
|
||||
v_aanduiding := 'Ophalen budget project Budgettering mislukt';
|
||||
|
||||
SELECT p.bgt_project_key
|
||||
INTO v_bgt_project_key
|
||||
FROM bgt_project p
|
||||
WHERE p.bgt_project_code = 'Budgettering'
|
||||
AND p.ins_discipline_key = v_ins_discipline_key
|
||||
AND bgt_project_verwijder IS NULL;
|
||||
EXCEPTION
|
||||
WHEN NO_DATA_FOUND
|
||||
THEN
|
||||
INSERT INTO bgt_project (ins_discipline_key,
|
||||
bgt_project_code,
|
||||
bgt_project_omschrijving,
|
||||
bgt_project_aanmaak)
|
||||
VALUES (v_ins_discipline_key,
|
||||
'Budgettering',
|
||||
'Budgettering',
|
||||
SYSDATE)
|
||||
RETURNING bgt_project_key
|
||||
INTO v_bgt_project_key;
|
||||
END;
|
||||
END IF;
|
||||
|
||||
IF v_bgt_project_key = NULL OR v_ongeldig = 1
|
||||
THEN
|
||||
fac.imp_writelog (p_import_key,
|
||||
'E',
|
||||
v_aanduiding || v_errorhint,
|
||||
'Kan project niet 1-duidig bepalen of aanmaken');
|
||||
v_ongeldig := 1;
|
||||
ELSE
|
||||
FOR rec IN bdgt
|
||||
LOOP
|
||||
IF v_count > 0
|
||||
THEN
|
||||
BEGIN
|
||||
v_aanduiding := 'Ophalen budget project Budgettering mislukt';
|
||||
|
||||
SELECT p.bgt_project_key
|
||||
INTO v_bgt_project_key
|
||||
FROM bgt_project p
|
||||
WHERE p.bgt_project_code = rec.periode
|
||||
AND p.ins_discipline_key = v_ins_discipline_key
|
||||
AND bgt_project_verwijder IS NULL;
|
||||
EXCEPTION
|
||||
WHEN NO_DATA_FOUND
|
||||
THEN
|
||||
INSERT INTO bgt_project (ins_discipline_key,
|
||||
bgt_project_code,
|
||||
bgt_project_omschrijving,
|
||||
bgt_project_aanmaak)
|
||||
VALUES (v_ins_discipline_key,
|
||||
rec.periode,
|
||||
rec.periode,
|
||||
SYSDATE)
|
||||
RETURNING bgt_project_key
|
||||
INTO v_bgt_project_key;
|
||||
END;
|
||||
|
||||
v_aanduiding := 'OPhalen kostenplaatsnr ' || rec.kostenplaats_nr || ' mislukt';
|
||||
|
||||
SELECT k.prs_kostenplaats_key, k.prs_kostenplaatsgrp_key, k.prs_kostenplaats_omschrijving
|
||||
INTO v_kostenplaats_key, v_kostenplaatsgrp_key, v_kostenplaats_omschrijving
|
||||
FROM prs_kostenplaats k
|
||||
WHERE k.prs_kostenplaats_nr = rec.kostenplaats_nr AND k.prs_kostenplaats_verwijder IS NULL;
|
||||
|
||||
BEGIN
|
||||
v_aanduiding := 'Ophalen budget project kostenrubriek ' || v_kostenplaats_omschrijving || ' mislukt';
|
||||
|
||||
SELECT k.bgt_kostenrubriek_key
|
||||
INTO v_bgt_kostenrubriek_key
|
||||
FROM bgt_kostenrubriek k
|
||||
WHERE k.bgt_project_key = v_bgt_project_key
|
||||
AND k.bgt_kostenrubriek_code = rec.kostenplaats_nr
|
||||
AND k.bgt_kostenrubriek_oms = v_kostenplaats_omschrijving;
|
||||
EXCEPTION
|
||||
WHEN NO_DATA_FOUND
|
||||
THEN
|
||||
INSERT INTO bgt_kostenrubriek (bgt_project_key, bgt_kostenrubriek_code, bgt_kostenrubriek_oms)
|
||||
VALUES (v_bgt_project_key, rec.kostenplaats_nr, v_kostenplaats_omschrijving)
|
||||
RETURNING bgt_kostenrubriek_key
|
||||
INTO v_bgt_kostenrubriek_key;
|
||||
END;
|
||||
|
||||
v_aanduiding :=
|
||||
'Ophalen kostensoort en kostengroep ' || rec.kostensoort_code || '-' || rec.kostensoort_oms || ' mislukt';
|
||||
|
||||
SELECT s.prs_kostensoort_key, s.prs_kostensoortgrp_key
|
||||
INTO v_kostensoort_key, v_kostensoortgrp_key
|
||||
FROM prs_kostensoort s, prs_kostensoortgrp g
|
||||
WHERE s.prs_kostensoort_upper = rec.kostensoort_code
|
||||
AND s.prs_kostensoortgrp_key = g.prs_kostensoortgrp_key
|
||||
AND s.prs_kostensoort_verwijder IS NULL;
|
||||
|
||||
v_budget := fac.safe_to_number (REPLACE (rec.budget, '.', ''));
|
||||
|
||||
v_periode_start := fac.safe_to_date ('01-01-' || rec.periode, 'DD-MM-YYYY');
|
||||
v_periode_eind := fac.safe_to_date ('31-12-' || rec.periode, 'DD-MM-YYYY');
|
||||
|
||||
|
||||
IF v_kostenplaats_key > 0
|
||||
AND v_kostenplaatsgrp_key > 0
|
||||
AND v_kostensoort_key > 0
|
||||
AND v_kostensoortgrp_key > 0
|
||||
AND v_budget > 0
|
||||
THEN
|
||||
-- Eerst kijken of hij er al is
|
||||
BEGIN
|
||||
SELECT b.bgt_budget_key, b.bgt_budget_bedrag
|
||||
INTO v_budget_key, v_budget_nu
|
||||
FROM bgt_budget b
|
||||
WHERE b.ins_discipline_key = v_ins_discipline_key
|
||||
AND b.bgt_project_key = v_bgt_project_key
|
||||
AND b.bgt_kostenrubriek_key = v_bgt_kostenrubriek_key
|
||||
AND b.prs_kostensoortgrp_key = v_kostensoortgrp_key
|
||||
AND b.prs_kostensoort_key = v_kostensoort_key
|
||||
AND b.prs_kostenplaatsgrp_key = v_kostenplaatsgrp_key
|
||||
AND b.prs_kostenplaats_key = v_kostenplaats_key
|
||||
AND b.bgt_budget_begin = v_periode_start
|
||||
AND b.bgt_budget_eind = v_periode_eind;
|
||||
|
||||
v_aanduiding :=
|
||||
'Aanpassen budget van '
|
||||
|| rec.kostenplaats_nr
|
||||
|| '-'
|
||||
|| rec.kostensoort_code
|
||||
|| ' van '
|
||||
|| v_budget_nu
|
||||
|| '-> '
|
||||
|| v_budget;
|
||||
|
||||
UPDATE bgt_budget b
|
||||
SET b.bgt_budget_bedrag = v_budget
|
||||
WHERE bgt_budget_key = v_budget_key;
|
||||
|
||||
fac.imp_writelog (p_import_key,
|
||||
'I',
|
||||
v_aanduiding,
|
||||
'Aanpassen budget bedrag');
|
||||
EXCEPTION
|
||||
WHEN NO_DATA_FOUND
|
||||
THEN
|
||||
INSERT INTO bgt_budget (ins_discipline_key,
|
||||
bgt_project_key,
|
||||
bgt_kostenrubriek_key,
|
||||
prs_kostensoortgrp_key,
|
||||
prs_kostensoort_key,
|
||||
prs_kostenplaatsgrp_key,
|
||||
prs_kostenplaats_key,
|
||||
bgt_budget_bedrag,
|
||||
bgt_budget_begin,
|
||||
bgt_budget_eind)
|
||||
VALUES (v_ins_discipline_key,
|
||||
v_bgt_project_key,
|
||||
v_bgt_kostenrubriek_key,
|
||||
v_kostensoortgrp_key,
|
||||
v_kostensoort_key,
|
||||
v_kostenplaatsgrp_key,
|
||||
v_kostenplaats_key,
|
||||
v_budget,
|
||||
v_periode_start,
|
||||
v_periode_eind);
|
||||
END;
|
||||
END IF;
|
||||
END IF;
|
||||
|
||||
v_count := v_count + 1;
|
||||
END LOOP;
|
||||
END IF;
|
||||
EXCEPTION
|
||||
WHEN NO_DATA_FOUND
|
||||
THEN
|
||||
v_errorhint := v_errormsg || ' - ' || v_aanduiding;
|
||||
oracle_err_num := SQLCODE;
|
||||
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
|
||||
v_errormsg := 'error ' || oracle_err_num || '/' || oracle_err_mes;
|
||||
fac.imp_writelog (p_import_key,
|
||||
'E',
|
||||
v_errormsg,
|
||||
v_errorhint);
|
||||
END;
|
||||
/
|
||||
|
||||
CREATE OR REPLACE VIEW bcgv_v_budgetuitnutting
|
||||
AS
|
||||
SELECT x.*, budget - COALESCE (opdracht_gefact, opdracht_uitv, offerte) budget_res
|
||||
FROM (SELECT kp.prs_kostenplaats_nr || ' - ' || kp.prs_kostenplaats_omschrijving prs_kostenplaats,
|
||||
kp.prs_kostenplaats_nr,
|
||||
kp.prs_kostenplaats_omschrijving,
|
||||
kp.prs_kostenplaats_key,
|
||||
kp.prs_perslid_key,
|
||||
(SELECT prs_perslid_naam_friendly
|
||||
FROM prs_v_perslid_fullnames p
|
||||
WHERE p.prs_perslid_key = kp.prs_perslid_key) budgethouder,
|
||||
ksg.prs_kostensoortgrp_key,
|
||||
ksg.prs_kostensoortgrp_oms,
|
||||
ks.prs_kostensoort_key,
|
||||
ks.prs_kostensoort_opmerking prs_kostensoort,
|
||||
ks.prs_kostensoort_upper,
|
||||
b.bgt_budget_bedrag budget,
|
||||
TRUNC (b.bgt_budget_begin, 'YYYY') budget_jaar,
|
||||
b.bgt_budget_begin,
|
||||
b.bgt_budget_eind,
|
||||
(SELECT SUM (opdr_kost)
|
||||
FROM ( SELECT AVG (mld_opdr_kosten) opdr_kost
|
||||
FROM mld_opdr o, mld_typeopdr ot
|
||||
WHERE o.prs_kostenplaats_key = kp.prs_kostenplaats_key
|
||||
AND o.prs_kostensoort_key = ks.prs_kostensoort_key
|
||||
AND o.mld_typeopdr_key = ot.MLD_TYPEOPDR_KEY
|
||||
AND ot.mld_typeopdr_isofferte = 1
|
||||
AND NOT EXISTS (SELECT 1 FROM mld_opdr o2, mld_typeopdr to2 WHERE o2.mld_melding_key = o.mld_melding_key AND o2.mld_typeopdr_key = to2.mld_typeopdr_key and to2.mld_typeopdr_kosten = 1)
|
||||
AND o.mld_statusopdr_key IN (5,
|
||||
6,
|
||||
7,
|
||||
8,
|
||||
9)
|
||||
AND o.mld_opdr_datumbegin BETWEEN b.bgt_budget_begin AND b.bgt_budget_eind
|
||||
GROUP BY o.mld_melding_key)) offerte,
|
||||
(SELECT SUM (mld_opdr_kosten)
|
||||
FROM mld_opdr o, mld_typeopdr ot
|
||||
WHERE o.prs_kostenplaats_key = kp.prs_kostenplaats_key
|
||||
AND o.prs_kostensoort_key = ks.prs_kostensoort_key
|
||||
AND o.mld_typeopdr_key = ot.mld_typeopdr_key
|
||||
AND ot.mld_typeopdr_kosten = 1
|
||||
AND o.mld_statusopdr_key IN (3,4,5,6,7,8,9,10) -- Ter fiattering, Gefiatteerd, Toegekend, Afgemeld, Verwerkt, Geaccepteerd, Afgerond, Ter goedkeuring
|
||||
AND NOT EXISTS (SELECT 1 FROM fin_factuur f WHERE f.mld_opdr_key = o.mld_opdr_key)
|
||||
AND o.mld_opdr_datumbegin BETWEEN b.bgt_budget_begin AND b.bgt_budget_eind) opdracht_uitv,
|
||||
(SELECT SUM (mld_opdr_kosten)
|
||||
FROM mld_opdr o, mld_typeopdr ot
|
||||
WHERE o.prs_kostenplaats_key = kp.prs_kostenplaats_key
|
||||
AND o.prs_kostensoort_key = ks.prs_kostensoort_key
|
||||
AND o.mld_typeopdr_key = ot.mld_typeopdr_key
|
||||
AND ot.mld_typeopdr_kosten = 1
|
||||
AND o.mld_statusopdr_key = 9
|
||||
AND o.mld_opdr_datumbegin BETWEEN b.bgt_budget_begin AND b.bgt_budget_eind) opdracht_gefact
|
||||
FROM bgt_budget b,
|
||||
bgt_project p,
|
||||
bgt_kostenrubriek kr,
|
||||
prs_kostenplaats kp,
|
||||
prs_kostensoort ks,
|
||||
prs_kostensoortgrp ksg
|
||||
WHERE p.bgt_project_key = b.bgt_project_key
|
||||
AND kr.bgt_kostenrubriek_key = b.bgt_kostenrubriek_key
|
||||
AND kp.prs_kostenplaats_key = b.prs_kostenplaats_key
|
||||
AND ks.prs_kostensoort_key = b.prs_kostensoort_key
|
||||
AND ksg.prs_kostensoortgrp_key = ks.prs_kostensoortgrp_key) x;
|
||||
|
||||
CREATE OR REPLACE VIEW bcgv_v_budgetuitn_detail
|
||||
AS
|
||||
SELECT k.prs_kostenplaats_key,
|
||||
k.prs_kostenplaats_nr || ' - ' || k.prs_kostenplaats_omschrijving prs_kostenplaats,
|
||||
k.prs_kostenplaats_nr,
|
||||
ksg.prs_kostensoortgrp_key,
|
||||
ksg.prs_kostensoortgrp_oms,
|
||||
ks.prs_kostensoort_key,
|
||||
ks.prs_kostensoort_oms,
|
||||
ks.prs_kostensoort_opmerking prs_kostensoort,
|
||||
o.mld_melding_key||'/'||o.mld_opdr_bedrijfopdr_volgnr mld_opdr_nr,
|
||||
o.mld_opdr_key,
|
||||
so.mld_statusopdr_omschrijving,
|
||||
CASE
|
||||
WHEN ot.mld_typeopdr_isofferte = 1
|
||||
THEN 'Offerte'
|
||||
ELSE 'Opdracht'
|
||||
END opdracht_soort,
|
||||
TO_CHAR (m.mld_melding_omschrijving) omschrijving,
|
||||
CASE
|
||||
WHEN ot.mld_typeopdr_isofferte = 1
|
||||
THEN mld_opdr_kosten
|
||||
ELSE 0
|
||||
END offerte_bedrag,
|
||||
CASE
|
||||
WHEN ot.mld_typeopdr_isofferte = 0
|
||||
THEN mld_opdr_kosten
|
||||
ELSE 0
|
||||
END opdracht_bedrag
|
||||
FROM mld_opdr o,
|
||||
prs_kostenplaats k,
|
||||
prs_kostensoort ks,
|
||||
prs_kostensoortgrp ksg,
|
||||
mld_melding m,
|
||||
mld_typeopdr ot,
|
||||
mld_statusopdr so
|
||||
WHERE k.prs_kostenplaats_key = o.prs_kostenplaats_key
|
||||
AND ks.prs_kostensoort_key = o.prs_kostensoort_key
|
||||
AND ksg.prs_kostensoortgrp_key = ks.prs_kostensoortgrp_key
|
||||
AND m.mld_melding_key = o.mld_melding_key
|
||||
AND ot.mld_typeopdr_key = o.mld_typeopdr_key
|
||||
AND so.mld_statusopdr_key = o.mld_statusopdr_key;
|
||||
|
||||
-- Ordertracking: Per omgeving ontvang de verantwoordelijke Servicedesk alle notities en mutaties/status-updates op de Opdrachtenstroom die zijn geweest per gestylde mail
|
||||
-- Opzet: Job kijkt of er vanaf de laatste job_run nog mutaties zijn geweest en indien geval dan wordt gestyled rapport gemaild naar desbtreffende backoffice-email-adres
|
||||
|
||||
-- Bronview behorende bij job BCGV_V_NOTIFY_BACKOFFICE_OT
|
||||
CREATE OR REPLACE VIEW bcgv_v_rap_ordertracking_bron
|
||||
AS
|
||||
SELECT -- notitie
|
||||
dp.mld_disc_params_emailnw3 vakgroep_email,
|
||||
m.mld_melding_key || '/' || o.mld_opdr_bedrijfopdr_volgnr opdrachtnr,
|
||||
o.mld_opdr_key,
|
||||
u.naam uitvoerder,
|
||||
po.prs_perslid_naam || ' (' || po.prs_perslid_voornaam || ')' behandelaar,
|
||||
ot.mld_typeopdr_omschrijving opdracht_type,
|
||||
'Notitie' soort, -- soort wijziging: Status of notitie of opdrachtgegevens-wijzigign
|
||||
mld_opdr_note_aanmaak datum,
|
||||
pn.prs_perslid_naam || ' (' || pn.prs_perslid_voornaam || ')' actie_door,
|
||||
'Notitie' actie_omschrijving, -- Subsoort voor status
|
||||
mld_opdr_note_omschrijving actie_details,
|
||||
note.mld_opdr_note_aanmaak datum_mutatie_filter,
|
||||
TO_NUMBER (TO_CHAR (note.mld_opdr_note_aanmaak, 'hh24')) uur_filter
|
||||
FROM mld_melding m,
|
||||
mld_opdr o,
|
||||
mld_typeopdr ot,
|
||||
mld_v_uitvoerende u,
|
||||
mld_opdr_note note,
|
||||
prs_perslid pn,
|
||||
prs_perslid po,
|
||||
mld_stdmelding sm,
|
||||
ins_tab_discipline d,
|
||||
mld_disc_params dp,
|
||||
alg_locatie l
|
||||
WHERE o.mld_opdr_key = note.mld_opdr_key
|
||||
AND m.mld_melding_key = o.mld_melding_key
|
||||
AND o.mld_typeopdr_key = ot.mld_typeopdr_key
|
||||
AND m.mld_stdmelding_key = sm.mld_stdmelding_key
|
||||
AND sm.mld_ins_discipline_key = d.ins_discipline_key
|
||||
AND d.ins_discipline_module = 'MLD'
|
||||
AND d.ins_discipline_key = dp.mld_ins_discipline_key
|
||||
AND note.prs_perslid_key = pn.prs_perslid_key
|
||||
AND pn.prs_perslid_verwijder IS NULL
|
||||
AND o.mld_uitvoerende_keys = u.mld_uitvoerende_key
|
||||
AND o.prs_perslid_key = po.prs_perslid_key(+)
|
||||
AND note.prs_perslid_key NOT IN
|
||||
(SELECT gg.prs_perslid_key
|
||||
FROM fac_gebruikersgroep gg, fac_groep g
|
||||
WHERE gg.fac_groep_key = g.fac_groep_key
|
||||
AND (g.fac_groep_upper = 'HEYDAY' OR g.fac_groep_upper = 'CVGV'))
|
||||
UNION
|
||||
SELECT -- Voor status -- in geval dsm, rabo en sabic
|
||||
dp.mld_disc_params_emailnw3 vakgroep_email,
|
||||
m.mld_melding_key || '/' || o.mld_opdr_bedrijfopdr_volgnr opdrachtnr,
|
||||
o.mld_opdr_key,
|
||||
u.naam uitvoerder,
|
||||
po.prs_perslid_naam || ' (' || po.prs_perslid_voornaam || ')' behandelaar,
|
||||
ot.mld_typeopdr_omschrijving opdracht_type,
|
||||
'Status' soort, -- soort wijziging: Status of notitie of opdrachtgegevens-wijzigign
|
||||
t.fac_tracking_datum datum,
|
||||
pt.prs_perslid_naam || ' (' || pt.prs_perslid_voornaam || ')' actie_door,
|
||||
COALESCE (vert.actiecode_tekst, sn.fac_srtnotificatie_code) actie_omschrijving,
|
||||
t.fac_tracking_oms actie_details,
|
||||
t.fac_tracking_datum datum_mutatie_filter,
|
||||
TO_NUMBER (TO_CHAR (t.fac_tracking_datum, 'hh24')) uur_filter
|
||||
FROM mld_melding m,
|
||||
mld_opdr o,
|
||||
mld_typeopdr ot,
|
||||
fac_tracking t,
|
||||
fac_srtnotificatie sn,
|
||||
(SELECT UPPER (SUBSTR (fac_locale_xsl_label, 12)) AS actiecode, fac_locale_xsl_tekst AS actiecode_tekst
|
||||
FROM fac_locale_xsl
|
||||
WHERE INSTR (fac_locale_xsl_label, 'lcl_ord_is_') > 0 AND fac_locale_xsl_lang = 'NL') vert,
|
||||
mld_v_uitvoerende u,
|
||||
prs_perslid pt,
|
||||
prs_perslid po,
|
||||
mld_stdmelding sm,
|
||||
ins_tab_discipline d,
|
||||
mld_disc_params dp,
|
||||
alg_locatie l
|
||||
WHERE o.mld_opdr_key = t.fac_tracking_refkey
|
||||
AND sn.fac_srtnotificatie_xmlnode = 'opdracht'
|
||||
AND t.fac_srtnotificatie_key = sn.fac_srtnotificatie_key
|
||||
AND sn.fac_srtnotificatie_code = vert.actiecode(+)
|
||||
AND o.mld_typeopdr_key = ot.mld_typeopdr_key
|
||||
AND m.mld_melding_key = o.mld_melding_key
|
||||
AND m.mld_stdmelding_key = sm.mld_stdmelding_key
|
||||
AND sm.mld_ins_discipline_key = d.ins_discipline_key
|
||||
AND d.ins_discipline_module = 'MLD'
|
||||
AND d.ins_discipline_key = dp.mld_ins_discipline_key
|
||||
AND t.prs_perslid_key = pt.prs_perslid_key
|
||||
AND pt.prs_perslid_verwijder IS NULL
|
||||
AND o.mld_uitvoerende_keys = u.mld_uitvoerende_key
|
||||
AND o.prs_perslid_key = po.prs_perslid_key(+)
|
||||
AND t.prs_perslid_key NOT IN
|
||||
(SELECT gg.prs_perslid_key
|
||||
FROM fac_gebruikersgroep gg, fac_groep g
|
||||
WHERE gg.fac_groep_key = g.fac_groep_key
|
||||
AND (g.fac_groep_upper = 'HEYDAY' OR g.fac_groep_upper = 'CVGV'));
|
||||
|
||||
-- Rapportview behorende bij job BCGV_V_NOTIFY_BACKOFFICE_OT
|
||||
-- De lijst die gemaild wordt - inclusief filtering op notificatie-interval
|
||||
CREATE OR REPLACE VIEW bcgv_v_rap_ordertrackinglijst
|
||||
AS
|
||||
SELECT vakgroep_email,
|
||||
v.opdrachtnr,
|
||||
v.mld_opdr_key,
|
||||
v.uitvoerder,
|
||||
v.behandelaar,
|
||||
v.opdracht_type,
|
||||
v.soort, -- soort wijziging: Status of notitie of opdrachtgegevens-wijziging
|
||||
v.datum,
|
||||
v.actie_door,
|
||||
v.actie_omschrijving,
|
||||
v.actie_details,
|
||||
TO_CHAR (d.last_jobrun, 'dd-mm-yyyy hh24:mi:ss') run_deze,
|
||||
TO_CHAR (d.last_cust01, 'dd-mm-yyyy hh24:mi:ss') run_vorige
|
||||
FROM bcgv_v_rap_ordertracking_bron v,
|
||||
(SELECT MAX (COALESCE (ft.fac_tracking_datum, SYSDATE)) last_cust01, -- subview waarin notificatie-interval bepaald wordt (=datums waartussen het resultaat in rapport getoond moet worden)
|
||||
MAX ((SELECT COALESCE (fac_notificatie_job_lastrun, SYSDATE)
|
||||
FROM fac_notificatie_job
|
||||
WHERE fac_notificatie_job_view = 'BCGV_V_NOTIFY_BACKOFFICE_OT')) last_jobrun
|
||||
FROM fac_tracking ft, fac_srtnotificatie sn
|
||||
WHERE ft.fac_srtnotificatie_key = sn.fac_srtnotificatie_key
|
||||
AND sn.fac_srtnotificatie_code = 'CUST01'
|
||||
AND ft.fac_tracking_datum < (SELECT COALESCE (fac_notificatie_job_lastrun - 1/(24*60), SYSDATE) -- de lastrun kan een latere datum hebben dan de laatste notificatie.
|
||||
FROM fac_notificatie_job
|
||||
WHERE fac_notificatie_job_view = 'BCGV_V_NOTIFY_BACKOFFICE_OT')) d
|
||||
WHERE v.datum_mutatie_filter BETWEEN d.last_cust01 AND d.last_jobrun;
|
||||
|
||||
-- Job voor de ordertrackinglijst te versturen
|
||||
CREATE OR REPLACE VIEW bcgv_v_notify_backoffice_ot -- OT = Ordertrackinglijst
|
||||
AS
|
||||
SELECT (SELECT prs_perslid_key
|
||||
FROM prs_perslid
|
||||
WHERE prs_perslid_upper = 'FACILITOR') sender,
|
||||
NULL receiver,
|
||||
'Ordertrackinglijst' text,
|
||||
'CUST01' code,
|
||||
(SELECT fac_srtnotificatie_key
|
||||
FROM fac_srtnotificatie
|
||||
WHERE fac_srtnotificatie_code = 'CUST01') fac_srtnotificatie_key,
|
||||
163 key, -- Ordertrackinglijst
|
||||
NULL xkey,
|
||||
v.vakgroep_email xemail,
|
||||
NULL xmobile
|
||||
FROM ( SELECT vakgroep_email
|
||||
FROM bcgv_v_rap_ordertracking_bron
|
||||
WHERE datum_mutatie_filter >= (SELECT COALESCE (fac_notificatie_job_lastrun, TRUNC (SYSDATE))
|
||||
FROM fac_notificatie_job
|
||||
WHERE fac_notificatie_job_view = 'BCGV_V_NOTIFY_BACKOFFICE_OT')
|
||||
AND vakgroep_email IS NOT NULL
|
||||
AND LOWER (vakgroep_email) NOT IN ('heyq@heydayfm.nl') -- ticket AAIT#84516
|
||||
GROUP BY vakgroep_email) v;
|
||||
|
||||
|
||||
------ payload end ------
|
||||
|
||||
|
||||
Reference in New Issue
Block a user