DJIN#60189 NACHTWERK-export/bijwerken kenmerken (van opdracht naar melding)
svn path=/Customer/trunk/; revision=45089
This commit is contained in:
223
DJIN/djin.sql
223
DJIN/djin.sql
@@ -763,57 +763,26 @@ END djin_anonimiseer;
|
||||
CREATE OR REPLACE PROCEDURE djin_select_nachtwerk (p_applname IN VARCHAR2,
|
||||
p_applrun IN VARCHAR2)
|
||||
AS
|
||||
v_errormsg VARCHAR2 (1000);
|
||||
oracle_err_num NUMBER;
|
||||
oracle_err_mes VARCHAR2 (200);
|
||||
v_errormsg VARCHAR2 (1000);
|
||||
oracle_err_num NUMBER;
|
||||
oracle_err_mes VARCHAR2 (200);
|
||||
v_old_melding_key NUMBER (10);
|
||||
|
||||
CURSOR c_pd -- Recent gewijzigde Plusdienst-opdrachten met Kosten != 0 onder een (soort)melding met Kosten-veld!
|
||||
-- DJIN#60189: Kopieren opdrachtkenmerken naar meldingkenmerken
|
||||
-- 282=Kosten (euro) (optioneel)+285=Leonardonummer+461=Werkzaamheden uitgevoerd door het locatieteam+
|
||||
-- 621=Betreft schade door molest/vermissing+622=Veroorzaker schade/vermissing/2=Serviceaanvraagnummer+
|
||||
-- 43=Naam leverancier+44=Opdrachtnummer leverancier
|
||||
CURSOR c_o2m
|
||||
IS
|
||||
SELECT x.mld_melding_key,
|
||||
x.mkosten_kkey, x.okosten_kow, mkosten.mld_kenmerkmelding_key mkosten_kmkey,
|
||||
x.mln_kkey, oln.mld_kenmerkopdr_waarde oln_kow, mln.mld_kenmerkmelding_key mln_kmkey,
|
||||
x.mlt_kkey, olt.mld_kenmerkopdr_waarde olt_kow, mlt.mld_kenmerkmelding_key mlt_kmkey
|
||||
FROM (SELECT DISTINCT o.mld_opdr_key, o.mld_melding_key,
|
||||
mkosten.mld_kenmerk_key mkosten_kkey, ko.mld_kenmerkopdr_waarde okosten_kow,
|
||||
mln.mld_kenmerk_key mln_kkey, mlt.mld_kenmerk_key mlt_kkey
|
||||
FROM fac_v_aanwezigusrdata ud1,
|
||||
mld_kenmerk k1,
|
||||
mld_v_aanwezigkenmerkmelding km,
|
||||
fac_v_aanwezigusrdata ud2,
|
||||
mld_melding m,
|
||||
mld_stdmelding sm,
|
||||
ins_tab_discipline td,
|
||||
mld_kenmerk mkosten,
|
||||
mld_kenmerk mln,
|
||||
mld_kenmerk mlt,
|
||||
mld_opdr o,
|
||||
mld_v_aanwezigkenmerkopdr ko,
|
||||
mld_kenmerk okosten
|
||||
WHERE ud1.fac_usrtab_key = 241 -- Kenmerksoorten ter identificatie van Plusdienst (als Prijs > 0)
|
||||
AND ud1.fac_usrdata_code = TO_CHAR (k1.mld_srtkenmerk_key)
|
||||
AND k1.mld_kenmerk_key = km.mld_kenmerk_key
|
||||
AND km.mld_kenmerkmelding_waarde = TO_CHAR (ud2.fac_usrdata_key)
|
||||
AND ud2.fac_usrdata_prijs > 0
|
||||
AND km.mld_melding_key = m.mld_melding_key
|
||||
AND m.mld_stdmelding_key = sm.mld_stdmelding_key
|
||||
AND sm.mld_ins_discipline_key = td.ins_discipline_key
|
||||
AND ((sm.mld_stdmelding_key = mkosten.mld_stdmelding_key AND mkosten.mld_kenmerk_niveau = 'S')
|
||||
OR (td.ins_discipline_key = mkosten.mld_stdmelding_key AND mkosten.mld_kenmerk_niveau = 'D')
|
||||
OR (td.ins_srtdiscipline_key = mkosten.mld_stdmelding_key AND mkosten.mld_kenmerk_niveau = 'T'))
|
||||
AND mkosten.mld_srtkenmerk_key = 282 -- Kosten
|
||||
AND ((sm.mld_stdmelding_key = mln.mld_stdmelding_key AND mln.mld_kenmerk_niveau = 'S')
|
||||
OR (td.ins_discipline_key = mln.mld_stdmelding_key AND mln.mld_kenmerk_niveau = 'D')
|
||||
OR (td.ins_srtdiscipline_key = mln.mld_stdmelding_key AND mln.mld_kenmerk_niveau = 'T'))
|
||||
AND mln.mld_srtkenmerk_key = 285 -- Leonardonummer
|
||||
AND ((sm.mld_stdmelding_key = mlt.mld_stdmelding_key AND mlt.mld_kenmerk_niveau = 'S')
|
||||
OR (td.ins_discipline_key = mlt.mld_stdmelding_key AND mlt.mld_kenmerk_niveau = 'D')
|
||||
OR (td.ins_srtdiscipline_key = mlt.mld_stdmelding_key AND mlt.mld_kenmerk_niveau = 'T'))
|
||||
AND mlt.mld_srtkenmerk_key = 461 -- Locatieteam-vinkveld
|
||||
AND m.mld_melding_key = o.mld_melding_key
|
||||
AND o.mld_opdr_key = ko.mld_opdr_key
|
||||
AND ko.mld_kenmerk_key = okosten.mld_kenmerk_key
|
||||
AND okosten.mld_srtkenmerk_key = 282 -- Kosten
|
||||
AND COALESCE (fac.safe_to_number (ko.mld_kenmerkopdr_waarde), 0) != 0
|
||||
SELECT '[' || TO_CHAR (o.mld_melding_key) || '/' || TO_CHAR (o.mld_opdr_bedrijfopdr_volgnr) || '] ' aanduiding,
|
||||
o.mld_melding_key, o.mld_srtkenmerk_key, o.mld_kenmerkopdr_waarde kow,
|
||||
m.mld_kenmerk_key mkk, w.mld_kenmerkmelding_key kmk, w.mld_kenmerkmelding_waarde kmw
|
||||
FROM (SELECT o.mld_melding_key, o.mld_opdr_bedrijfopdr_volgnr, k.mld_srtkenmerk_key, ko.mld_kenmerkopdr_waarde
|
||||
FROM mld_kenmerk k, mld_v_aanwezigkenmerkopdr ko, mld_opdr o
|
||||
WHERE k.mld_kenmerk_verwijder IS NULL
|
||||
AND k.mld_srtkenmerk_key IN (282, 285, 461, 621, 622, 2, 43, 44)
|
||||
AND k.mld_kenmerk_key = ko.mld_kenmerk_key
|
||||
AND ko.mld_opdr_key = o.mld_opdr_key
|
||||
AND NOT EXISTS -- Skip opdrachten met lager volgnummer
|
||||
(SELECT 1
|
||||
FROM mld_opdr
|
||||
@@ -822,52 +791,30 @@ AS
|
||||
AND EXISTS -- Beschouw zolang recent nog gewijzigd
|
||||
(SELECT 1
|
||||
FROM fac_tracking t, fac_srtnotificatie sn
|
||||
WHERE t.fac_tracking_datum > ADD_MONTHS (SYSDATE, -3)
|
||||
WHERE t.fac_tracking_datum > SYSDATE - 7
|
||||
AND t.fac_srtnotificatie_key = sn.fac_srtnotificatie_key
|
||||
AND sn.fac_srtnotificatie_code LIKE 'ORD%'
|
||||
AND t.fac_tracking_refkey = o.mld_opdr_key)) x
|
||||
LEFT JOIN
|
||||
mld_v_aanwezigkenmerkmelding mkosten
|
||||
ON x.mld_melding_key = mkosten.mld_melding_key
|
||||
AND EXISTS
|
||||
(SELECT 1
|
||||
FROM mld_kenmerk
|
||||
WHERE mld_srtkenmerk_key = 282 -- Kosten op melding
|
||||
AND mld_kenmerk_key = mkosten.mld_kenmerk_key)
|
||||
LEFT JOIN
|
||||
mld_v_aanwezigkenmerkmelding mln
|
||||
ON x.mld_melding_key = mln.mld_melding_key
|
||||
AND EXISTS
|
||||
(SELECT 1
|
||||
FROM mld_kenmerk
|
||||
WHERE mld_srtkenmerk_key = 285 -- Leonardonummer op melding
|
||||
AND mld_kenmerk_key = mln.mld_kenmerk_key)
|
||||
LEFT JOIN
|
||||
mld_v_aanwezigkenmerkopdr oln
|
||||
ON x.mld_opdr_key = oln.mld_opdr_key
|
||||
AND EXISTS
|
||||
(SELECT 1
|
||||
FROM mld_kenmerk
|
||||
WHERE mld_srtkenmerk_key = 285 -- Leonardonummer op opdracht
|
||||
AND mld_kenmerk_key = oln.mld_kenmerk_key)
|
||||
LEFT JOIN
|
||||
mld_v_aanwezigkenmerkmelding mlt
|
||||
ON x.mld_melding_key = mlt.mld_melding_key
|
||||
AND EXISTS
|
||||
(SELECT 1
|
||||
FROM mld_kenmerk
|
||||
WHERE mld_srtkenmerk_key = 461 -- Locatieteam-vinkveld op melding
|
||||
AND mld_kenmerk_key = mlt.mld_kenmerk_key)
|
||||
LEFT JOIN
|
||||
mld_v_aanwezigkenmerkopdr olt
|
||||
ON x.mld_opdr_key = olt.mld_opdr_key
|
||||
AND EXISTS
|
||||
(SELECT 1
|
||||
FROM mld_kenmerk
|
||||
WHERE mld_srtkenmerk_key = 461 -- Locatieteam-vinkveld op opdracht
|
||||
AND mld_kenmerk_key = olt.mld_kenmerk_key)
|
||||
WHERE okosten_kow != COALESCE (mkosten.mld_kenmerkmelding_waarde, '0') -- Kosten nieuw/gewijzigd
|
||||
ORDER BY 1;
|
||||
AND t.fac_tracking_refkey = o.mld_opdr_key)) o, -- Van opdracht
|
||||
( SELECT m.mld_melding_key, k.mld_srtkenmerk_key, MIN (k.mld_kenmerk_key) mld_kenmerk_key
|
||||
FROM mld_melding m, mld_stdmelding sm, ins_tab_discipline td, mld_kenmerk k
|
||||
WHERE m.mld_stdmelding_key = sm.mld_stdmelding_key
|
||||
AND sm.mld_ins_discipline_key = td.ins_discipline_key
|
||||
AND ((sm.mld_stdmelding_key = k.mld_stdmelding_key AND k.mld_kenmerk_niveau = 'S')
|
||||
OR (td.ins_discipline_key = k.mld_stdmelding_key AND k.mld_kenmerk_niveau = 'D')
|
||||
OR (td.ins_srtdiscipline_key = k.mld_stdmelding_key AND k.mld_kenmerk_niveau = 'T'))
|
||||
AND k.mld_kenmerk_verwijder IS NULL
|
||||
AND k.mld_srtkenmerk_key IN (282, 285, 461, 621, 622, 2, 43, 44)
|
||||
GROUP BY m.mld_melding_key, k.mld_srtkenmerk_key) m, -- Naar MIN(kenmerk) op melding
|
||||
(SELECT km.mld_melding_key, k.mld_kenmerk_key, km.mld_kenmerkmelding_key, km.mld_kenmerkmelding_waarde
|
||||
FROM mld_kenmerk k, mld_v_aanwezigkenmerkmelding km
|
||||
WHERE k.mld_kenmerk_verwijder IS NULL
|
||||
AND k.mld_srtkenmerk_key IN (282, 285, 461, 621, 622, 2, 43, 44)
|
||||
AND km.mld_kenmerk_key = k.mld_kenmerk_key) w -- Eventuele huidige waarde van MIN(kenmerk)!
|
||||
WHERE o.mld_melding_key = m.mld_melding_key
|
||||
AND o.mld_srtkenmerk_key = m.mld_srtkenmerk_key
|
||||
AND m.mld_melding_key = w.mld_melding_key(+)
|
||||
AND m.mld_kenmerk_key = w.mld_kenmerk_key(+)
|
||||
ORDER BY 2;
|
||||
BEGIN
|
||||
-- Anonimiseer medewerkers, trackregels en specifieke andere zaken zoals
|
||||
-- het in Productie de bedoeling is (dus pas na afgesproken termijnen en
|
||||
@@ -875,66 +822,57 @@ BEGIN
|
||||
-- Vanuit djin.sql dus altijd alle parameters op FALSE (= geen extra's)!
|
||||
djin_anonimiseer (FALSE, FALSE, FALSE);
|
||||
|
||||
-- DJIN#55344: Doorvoeren dat het Kosten-kenmerkveld uit de evt. opdracht
|
||||
-- met het hoogste volgnummer wordt gekopieerd/bijgewerkt in
|
||||
-- het Kosten-kenmerkveld bij de melding (zolang er mutaties
|
||||
-- DJIN#55344: Doorvoeren dat het kenmerkveld uit de (evt.) opdracht met
|
||||
-- het hoogste volgnummer wordt gekopieerd/bijgewerkt in het
|
||||
-- kenmerkveld bij de melding (zolang er mutaties plaatsvinden
|
||||
-- plaatsvinden op de opdracht).
|
||||
-- Naast Kosten-kenmerkveld (van soort=282), tevens Leonardo-
|
||||
-- nummer (soort=285) en Locatieteam (soort=461) bijwerken!
|
||||
FOR rec IN c_pd
|
||||
v_old_melding_key := -1;
|
||||
FOR rec IN c_o2m
|
||||
LOOP
|
||||
v_errormsg := 'Fout bijwerken Kosten-veld';
|
||||
v_errormsg := 'Fout bijwerken kenmerkveld';
|
||||
BEGIN
|
||||
IF rec.mkosten_kmkey IS NULL
|
||||
IF rec.kmk IS NULL OR rec.kmw != rec.kow
|
||||
THEN
|
||||
INSERT INTO mld_kenmerkmelding (mld_melding_key,
|
||||
mld_kenmerk_key,
|
||||
mld_kenmerkmelding_waarde)
|
||||
VALUES (rec.mld_melding_key,
|
||||
rec.mkosten_kkey,
|
||||
rec.okosten_kow);
|
||||
ELSE
|
||||
UPDATE mld_kenmerkmelding
|
||||
SET mld_kenmerkmelding_waarde = COALESCE (rec.okosten_kow, mld_kenmerkmelding_waarde)
|
||||
WHERE mld_kenmerkmelding_key = rec.mkosten_kmkey;
|
||||
IF v_old_melding_key = -1
|
||||
THEN
|
||||
v_old_melding_key := rec.mld_melding_key;
|
||||
ELSIF rec.mld_melding_key != v_old_melding_key
|
||||
THEN
|
||||
fac.trackaction ('#MLDUPD', v_old_melding_key, NULL, NULL, 'Opdracht2Melding-sync uitgevoerd');
|
||||
v_old_melding_key := rec.mld_melding_key;
|
||||
END IF;
|
||||
|
||||
IF rec.kmk IS NULL
|
||||
THEN
|
||||
INSERT INTO mld_kenmerkmelding (mld_melding_key,
|
||||
mld_kenmerk_key,
|
||||
mld_kenmerkmelding_waarde)
|
||||
VALUES (rec.mld_melding_key,
|
||||
rec.mkk,
|
||||
rec.kow);
|
||||
ELSE
|
||||
UPDATE mld_kenmerkmelding
|
||||
SET mld_kenmerkmelding_waarde = rec.kow
|
||||
WHERE mld_kenmerkmelding_key = rec.kmk;
|
||||
END IF;
|
||||
COMMIT;
|
||||
END IF;
|
||||
IF rec.mln_kmkey IS NULL AND rec.oln_kow IS NOT NULL
|
||||
THEN
|
||||
INSERT INTO mld_kenmerkmelding (mld_melding_key,
|
||||
mld_kenmerk_key,
|
||||
mld_kenmerkmelding_waarde)
|
||||
VALUES (rec.mld_melding_key,
|
||||
rec.mln_kkey,
|
||||
rec.oln_kow);
|
||||
ELSE
|
||||
UPDATE mld_kenmerkmelding
|
||||
SET mld_kenmerkmelding_waarde = COALESCE (rec.oln_kow, mld_kenmerkmelding_waarde)
|
||||
WHERE mld_kenmerkmelding_key = rec.mln_kmkey;
|
||||
END IF;
|
||||
IF rec.mlt_kmkey IS NULL AND rec.olt_kow IS NOT NULL
|
||||
THEN
|
||||
INSERT INTO mld_kenmerkmelding (mld_melding_key,
|
||||
mld_kenmerk_key,
|
||||
mld_kenmerkmelding_waarde)
|
||||
VALUES (rec.mld_melding_key,
|
||||
rec.mlt_kkey,
|
||||
rec.olt_kow);
|
||||
ELSE
|
||||
UPDATE mld_kenmerkmelding
|
||||
SET mld_kenmerkmelding_waarde = COALESCE (rec.olt_kow, mld_kenmerkmelding_waarde)
|
||||
WHERE mld_kenmerkmelding_key = rec.mlt_kmkey;
|
||||
END IF;
|
||||
COMMIT;
|
||||
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', v_errormsg, 'Plusdiensten-loop');
|
||||
fac.writelog (p_applname, 'E', rec.aanduiding || v_errormsg, 'Opdracht2Melding-loop');
|
||||
COMMIT;
|
||||
END;
|
||||
END LOOP;
|
||||
|
||||
IF v_old_melding_key != -1
|
||||
THEN
|
||||
fac.trackaction ('#MLDUPD', v_old_melding_key, NULL, NULL, 'Opdracht2Melding-sync uitgevoerd');
|
||||
END IF;
|
||||
COMMIT;
|
||||
EXCEPTION
|
||||
WHEN OTHERS
|
||||
THEN
|
||||
@@ -6080,7 +6018,7 @@ CREATE OR REPLACE VIEW djin_v_rap_mt_bron
|
||||
week,
|
||||
vestiging,
|
||||
vakgroeptype,
|
||||
vakgroep, -- Of Meldingsoort(=Klacht?) igv. Vakgroeptype=Klantreactie (key=2)
|
||||
vakgroep,
|
||||
aantal,
|
||||
acp_optijd,
|
||||
afm_optijd
|
||||
@@ -6097,8 +6035,7 @@ AS
|
||||
afm_optijd
|
||||
FROM (SELECT d.alg_district_omschrijving vt,
|
||||
sd.ins_srtdiscipline_omschrijving vakgroeptype,
|
||||
DECODE (sd.ins_srtdiscipline_key, 2, COALESCE (smg.mld_stdmeldinggroep_oms, '???'), md.ins_discipline_omschrijving)
|
||||
vakgroep,
|
||||
md.ins_discipline_omschrijving vakgroep,
|
||||
m.mld_melding_key,
|
||||
m.mld_melding_acceptdatum_std,
|
||||
fac.gettrackingdate ('MLDACP', m.mld_melding_key) mldacp,
|
||||
@@ -6109,7 +6046,6 @@ AS
|
||||
mld_stdmelding sm, -- Ook verwijderde meldingen,
|
||||
mld_discipline md, -- en verwijderde vakgroepen,
|
||||
ins_srtdiscipline sd, -- en verwijderde vakgroeptypen,
|
||||
mld_stdmeldinggroep smg,
|
||||
alg_locatie l, -- Ook verwijderde locaties,
|
||||
alg_district d -- en verwijderde districten!
|
||||
WHERE t.fac_srtnotificatie_key = 38 -- MLDAFM
|
||||
@@ -6126,7 +6062,6 @@ AS
|
||||
AND m.mld_stdmelding_key = sm.mld_stdmelding_key
|
||||
AND sm.mld_ins_discipline_key = md.ins_discipline_key
|
||||
AND md.ins_srtdiscipline_key = sd.ins_srtdiscipline_key
|
||||
AND sm.mld_stdmeldinggroep_key = smg.mld_stdmeldinggroep_key(+)
|
||||
AND m.mld_alg_locatie_key = l.alg_locatie_key
|
||||
AND l.alg_district_key = d.alg_district_key)
|
||||
GROUP BY TO_CHAR (mldafm, 'iyyy-iw') || vt || vakgroeptype || vakgroep,
|
||||
|
||||
Reference in New Issue
Block a user