MAAS#61281 Koppeling Valuemation
svn path=/Customer/trunk/; revision=46779
This commit is contained in:
417
MAAS/maas.sql
417
MAAS/maas.sql
@@ -251,7 +251,7 @@ BEGIN
|
||||
|
||||
-- Bepalen van het ticknr. uit Valuemation, deze is vooral van belang bij het confirmation bericht
|
||||
v_errormsg := '(0x246)' || v_mldkey || psubject || v_actie;
|
||||
v_vmnr := substr(regexp_replace(psubject, '[^0-9]', ''),0, 12);
|
||||
v_vmnr := SUBSTR (REGEXP_REPLACE (psubject, '[^0-9]', ''), 0, 12);
|
||||
|
||||
-- Bepalen van mld_melding_key
|
||||
v_errormsg := '(0x247)' || v_mldkey || psubject || v_actie;
|
||||
@@ -283,18 +283,19 @@ BEGIN
|
||||
-- Bepalen van opdrachtvolgnr
|
||||
v_errormsg := '(0x248)' || v_mldkey || psubject || v_actie;
|
||||
v_opdrvolgnr :=
|
||||
SUBSTR (
|
||||
SUBSTR (
|
||||
SUBSTR (psubject, INSTR (psubject, 'Facilitor opdracht:') + 19),
|
||||
0),
|
||||
INSTR (
|
||||
SUBSTR (
|
||||
SUBSTR (psubject,
|
||||
INSTR (psubject, 'Facilitor opdracht:') + 19),
|
||||
0),
|
||||
'/')
|
||||
+ 1,
|
||||
1);
|
||||
SUBSTR (
|
||||
SUBSTR (
|
||||
SUBSTR (psubject,
|
||||
INSTR (psubject, 'Facilitor opdracht:') + 19),
|
||||
0),
|
||||
INSTR (
|
||||
SUBSTR (
|
||||
SUBSTR (psubject,
|
||||
INSTR (psubject, 'Facilitor opdracht:') + 19),
|
||||
0),
|
||||
'/')
|
||||
+ 1,
|
||||
1);
|
||||
|
||||
-- Bepalen van de mld_opdr_key
|
||||
-- Uitgangspunt is 1 opdracht per melding
|
||||
@@ -332,7 +333,7 @@ BEGIN
|
||||
WHEN UPPER (SUBSTR (psubject, LENGTH (psubject) - 11, 12)) LIKE
|
||||
'%IS OPGELOST%'
|
||||
THEN
|
||||
v_actie := 'ORDUPD';
|
||||
v_actie := 'ORDGOE';
|
||||
v_kenmstatusoms :=
|
||||
'Oplossing is aangereikt, bij akkoord kan de opdracht door u afgemeld worden. Akkoord graag ook versturen naar Valuemation via een opmerking.';
|
||||
WHEN UPPER (SUBSTR (psubject, LENGTH (psubject) - 45, 46)) LIKE
|
||||
@@ -343,8 +344,7 @@ BEGIN
|
||||
'%IS BIJGEWERKT%'
|
||||
THEN
|
||||
v_actie := 'ORDUPD';
|
||||
v_kenmstatusoms :=
|
||||
'De melding is bijgewerkt.';
|
||||
v_kenmstatusoms := 'De melding is bijgewerkt.';
|
||||
ELSE
|
||||
v_actie := NULL;
|
||||
END CASE;
|
||||
@@ -478,7 +478,7 @@ BEGIN
|
||||
END IF;
|
||||
|
||||
UPDATE mld_opdr
|
||||
SET mld_statusopdr_key = 8 --Status geaccepteerd
|
||||
SET mld_statusopdr_key = 8 --Status geaccepteerd
|
||||
WHERE mld_opdr_key = v_opdrkey;
|
||||
|
||||
fac.trackaction ('ORDACP',
|
||||
@@ -597,7 +597,7 @@ BEGIN
|
||||
'(0x433)' || v_mldkey || psubject || v_actie;
|
||||
|
||||
UPDATE mld_opdr
|
||||
SET mld_statusopdr_key = 8 -- Geaccepteerd
|
||||
SET mld_statusopdr_key = 8 -- Geaccepteerd
|
||||
WHERE mld_opdr_key = v_opdrkey AND v_status = 6;
|
||||
|
||||
fac.trackaction (
|
||||
@@ -655,7 +655,7 @@ BEGIN
|
||||
UPDATE mld_kenmerkopdr
|
||||
SET mld_kenmerkopdr_waarde = v_kenmstatusoms
|
||||
WHERE mld_opdr_key = v_opdrkey
|
||||
AND mld_kenmerk_key = 602 -- Kenmerk 'Status valuemation' (601 in ACCP)
|
||||
AND mld_kenmerk_key = 602 -- Kenmerk 'Status valuemation' (601 in ACCP)
|
||||
AND mld_kenmerkopdr_verwijder IS NULL;
|
||||
|
||||
fac.trackaction (
|
||||
@@ -676,7 +676,7 @@ BEGIN
|
||||
IF v_kenmstatusper_cur = 'leeg'
|
||||
THEN
|
||||
v_errormsg :=
|
||||
'(0x440)' || v_mldkey || psubject || v_actie;
|
||||
'(0x437)' || v_mldkey || psubject || v_actie;
|
||||
|
||||
INSERT INTO mld_kenmerkopdr (mld_opdr_key,
|
||||
mld_kenmerk_key,
|
||||
@@ -696,7 +696,7 @@ BEGIN
|
||||
'Status per: leeg --> ' || v_kenmstatusper); -- # voorkomt notificatie
|
||||
ELSE
|
||||
v_errormsg :=
|
||||
'(0x441)' || v_mldkey || psubject || v_actie;
|
||||
'(0x438)' || v_mldkey || psubject || v_actie;
|
||||
|
||||
UPDATE mld_kenmerkopdr
|
||||
SET mld_kenmerkopdr_waarde =
|
||||
@@ -720,7 +720,7 @@ BEGIN
|
||||
|
||||
-- Als er een opdracht_key gevonden kan worden, dan ook de body als notitie meenemen
|
||||
v_errormsg :=
|
||||
'(0x442)' || v_mldkey || psubject || v_actie;
|
||||
'(0x439)' || v_mldkey || psubject || v_actie;
|
||||
|
||||
INSERT INTO mld_opdr_note (mld_opdr_key,
|
||||
mld_opdr_note_omschrijving,
|
||||
@@ -764,6 +764,236 @@ BEGIN
|
||||
|| ')');
|
||||
END IF;
|
||||
|
||||
--Hieronder de afhandeling van het bericht wanneer de melding vanuit Valuemation ter goedkeuring in Facilitor wordt aangeboden.
|
||||
--Op termijn ontvangen we hopelijk nog 2 url's in fac_result in de html-body om de oplossing te accepteren of af te wijzen.
|
||||
IF v_actie = 'ORDGOE'
|
||||
THEN
|
||||
v_errormsg := '(0x440)' || v_mldkey || psubject || v_actie;
|
||||
v_vmnr :=
|
||||
SUBSTR (REGEXP_REPLACE (psubject, '[^0-9]', ''), 1, 12);
|
||||
|
||||
|
||||
IF v_opdrkey IS NOT NULL
|
||||
THEN
|
||||
v_errormsg :=
|
||||
'(0x441)' || v_mldkey || psubject || v_actie;
|
||||
|
||||
SELECT mld_statusopdr_key
|
||||
INTO v_status
|
||||
FROM mld_opdr
|
||||
WHERE mld_opdr_key = v_opdrkey;
|
||||
|
||||
--Normaal zouden we het ticketnummer vanuit Valuemation al moeten hebben vanuit confirmationbericht. Maar als dit bericht niet goed ontvangen is, dan proberen we het ticketnummer alsnog te vullen
|
||||
IF v_vmnr IS NOT NULL AND v_opdrkey IS NOT NULL
|
||||
THEN
|
||||
v_errormsg :=
|
||||
'(0x442)' || v_mldkey || psubject || v_actie;
|
||||
|
||||
UPDATE mld_opdr
|
||||
SET mld_opdr_externnr = v_vmnr
|
||||
WHERE mld_opdr_key = v_opdrkey
|
||||
AND mld_opdr_externnr IS NULL;
|
||||
|
||||
--Enkel tracking mbt nieuw (of aanpassing Externnr) toevoegen als er ook iets wijzigt.
|
||||
IF v_opdrextnr <> v_vmnr
|
||||
THEN
|
||||
fac.trackaction (
|
||||
'ORDUPD',
|
||||
v_opdrkey,
|
||||
sender,
|
||||
NULL,
|
||||
'#Valuemation nr vanuit confirmationbericht: '
|
||||
|| v_opdrextnr
|
||||
|| ' --> '
|
||||
|| v_vmnr); -- # voorkomt notificatie
|
||||
END IF;
|
||||
ELSE
|
||||
fac.writelog (
|
||||
'PROCESSEMAIL',
|
||||
'E',
|
||||
'Valuemation nr kon niet worden gevuld:'
|
||||
|| pfrom
|
||||
|| '['
|
||||
|| v_errormsg
|
||||
|| v_vmnr
|
||||
|| ']',
|
||||
'OTHERS (error '
|
||||
|| SQLCODE
|
||||
|| '/'
|
||||
|| SUBSTR (SQLERRM, 1, 100)
|
||||
|| ')');
|
||||
END IF;
|
||||
|
||||
--Wanneer confirmationbericht niet binnen is gekomen, dan is de status nog Toegekend (6) en niet Geaccepteerd (8). Dat kunnen we nu ook omzetten.
|
||||
IF v_vmnr IS NOT NULL
|
||||
AND v_opdrkey IS NOT NULL
|
||||
AND v_status = 6 --Toegekend (en dus nog niet geaccepteerd)
|
||||
THEN
|
||||
v_errormsg :=
|
||||
'(0x443)' || v_mldkey || psubject || v_actie;
|
||||
|
||||
UPDATE mld_opdr
|
||||
SET mld_statusopdr_key = 8 -- Geaccepteerd
|
||||
WHERE mld_opdr_key = v_opdrkey AND v_status = 6;
|
||||
|
||||
fac.trackaction (
|
||||
'ORDACP',
|
||||
v_opdrkey,
|
||||
sender,
|
||||
NULL,
|
||||
'#Melding gevalideerd in Valuemation'); -- # voorkomt notificatie
|
||||
END IF;
|
||||
|
||||
-- Hieronder bepalen of de opdracht al de kenmerken mbt status Valuemation gevuld heeft.
|
||||
SELECT COALESCE (
|
||||
(SELECT mld_kenmerkopdr_waarde
|
||||
FROM mld_kenmerkopdr
|
||||
WHERE mld_kenmerk_key = 602 -- Kenmerk 'Status valuemation' (601 in ACCP)
|
||||
AND mld_opdr_key = v_opdrkey
|
||||
AND mld_kenmerkopdr_verwijder IS NULL),
|
||||
'leeg')
|
||||
INTO v_kenmstatusoms_cur
|
||||
FROM DUAL;
|
||||
|
||||
SELECT COALESCE (
|
||||
(SELECT mld_kenmerkopdr_waarde
|
||||
FROM mld_kenmerkopdr
|
||||
WHERE mld_kenmerk_key = 603 -- Kenmerk 'Status per' (623 in ACCP)
|
||||
AND mld_opdr_key = v_opdrkey
|
||||
AND mld_kenmerkopdr_verwijder IS NULL),
|
||||
'leeg')
|
||||
INTO v_kenmstatusper_cur
|
||||
FROM DUAL;
|
||||
|
||||
-- Als de kenmerken nog niet bestaan, dan toevoegen bij de opdracht, anders updaten indien gewijzigd.
|
||||
IF v_kenmstatusoms_cur = 'leeg'
|
||||
THEN
|
||||
v_errormsg :=
|
||||
'(0x444)' || v_mldkey || psubject || v_actie;
|
||||
|
||||
INSERT INTO mld_kenmerkopdr (mld_opdr_key,
|
||||
mld_kenmerk_key,
|
||||
mld_kenmerkopdr_waarde)
|
||||
VALUES (v_opdrkey, 602, 'Oplossing is aangereikt'); -- Kenmerk 'Status valuemation' (601 in ACCP)
|
||||
|
||||
fac.trackaction (
|
||||
'ORDUPD',
|
||||
v_opdrkey,
|
||||
sender,
|
||||
NULL,
|
||||
'Status Valuemation: leeg --> ' || v_kenmstatusoms); -- # voorkomt notificatie
|
||||
ELSE
|
||||
v_errormsg :=
|
||||
'(0x445)' || v_mldkey || psubject || v_actie;
|
||||
|
||||
IF v_kenmstatusoms_cur <> v_kenmstatusoms_cur
|
||||
THEN
|
||||
UPDATE mld_kenmerkopdr
|
||||
SET mld_kenmerkopdr_waarde = v_kenmstatusoms
|
||||
WHERE mld_opdr_key = v_opdrkey
|
||||
AND mld_kenmerk_key = 602 -- Kenmerk 'Status valuemation' (601 in ACCP)
|
||||
AND mld_kenmerkopdr_verwijder IS NULL;
|
||||
|
||||
fac.trackaction (
|
||||
'ORDUPD',
|
||||
v_opdrkey,
|
||||
sender,
|
||||
NULL,
|
||||
'Status Valuemation: '
|
||||
|| v_kenmstatusoms_cur
|
||||
|| ' --> '
|
||||
|| v_kenmstatusoms); -- # voorkomt notificatie
|
||||
ELSE
|
||||
v_errormsg :=
|
||||
'(0x446)' || v_mldkey || psubject || v_actie;
|
||||
END IF;
|
||||
END IF;
|
||||
|
||||
IF v_kenmstatusper_cur = 'leeg'
|
||||
THEN
|
||||
v_errormsg :=
|
||||
'(0x447)' || v_mldkey || psubject || v_actie;
|
||||
|
||||
INSERT INTO mld_kenmerkopdr (mld_opdr_key,
|
||||
mld_kenmerk_key,
|
||||
mld_kenmerkopdr_waarde)
|
||||
VALUES (v_opdrkey,
|
||||
603, -- -- Kenmerk 'Status per' (623 in ACCP)
|
||||
TO_CHAR (SYSDATE,
|
||||
'DD-MM-YYYY HH24:MI:SS'))
|
||||
RETURNING mld_kenmerkopdr_waarde
|
||||
INTO v_kenmstatusper;
|
||||
|
||||
fac.trackaction (
|
||||
'ORDUPD',
|
||||
v_opdrkey,
|
||||
sender,
|
||||
NULL,
|
||||
'Status per: leeg --> ' || v_kenmstatusper); -- # voorkomt notificatie
|
||||
ELSE
|
||||
v_errormsg :=
|
||||
'(0x448)' || v_mldkey || psubject || v_actie;
|
||||
|
||||
UPDATE mld_kenmerkopdr
|
||||
SET mld_kenmerkopdr_waarde =
|
||||
TO_CHAR (SYSDATE, 'DD-MM-YYYY HH24:MI:SS')
|
||||
WHERE mld_opdr_key = v_opdrkey
|
||||
AND mld_kenmerk_key = 603 -- Kenmerk 'Status per' (623 in ACCP)
|
||||
AND mld_kenmerkopdr_verwijder IS NULL
|
||||
RETURNING mld_kenmerkopdr_waarde
|
||||
INTO v_kenmstatusper;
|
||||
|
||||
fac.trackaction (
|
||||
'ORDUPD',
|
||||
v_opdrkey,
|
||||
sender,
|
||||
NULL,
|
||||
'Status per:'
|
||||
|| v_kenmstatusper_cur
|
||||
|| ' --> '
|
||||
|| v_kenmstatusper); -- # voorkomt notificatie
|
||||
END IF;
|
||||
|
||||
-- Als er een opdracht_key gevonden kan worden, dan ook de body als afhandeling meenemen
|
||||
v_errormsg :=
|
||||
'(0x449)' || v_mldkey || psubject || v_actie;
|
||||
|
||||
UPDATE mld_opdr
|
||||
SET mld_opdr_opmerking =
|
||||
SUBSTR (
|
||||
REPLACE (
|
||||
SUBSTR (pbody, 1, 4000),
|
||||
CHR (13)
|
||||
|| CHR (10)
|
||||
|| CHR (13)
|
||||
|| CHR (10),
|
||||
CHR (13) || CHR (10)),
|
||||
1,
|
||||
4000)
|
||||
WHERE mld_opdr_key = v_opdrkey;
|
||||
|
||||
fac.trackaction ('ORDUPD',
|
||||
v_opdrkey,
|
||||
sender,
|
||||
NULL,
|
||||
'Oplossing is aangereikt');
|
||||
END IF;
|
||||
ELSE
|
||||
fac.writelog (
|
||||
'PROCESSEMAIL',
|
||||
'E',
|
||||
'Melding kan niet bijgewerkt worden, onbekende opdrachtkey'
|
||||
|| pfrom
|
||||
|| '['
|
||||
|| v_errormsg
|
||||
|| ']',
|
||||
'OTHERS (error '
|
||||
|| SQLCODE
|
||||
|| '/'
|
||||
|| SUBSTR (SQLERRM, 1, 100)
|
||||
|| ')');
|
||||
END IF;
|
||||
|
||||
--Hieronder de afhandeling van het bericht wanneer de melding is opgelost in Valuemation.
|
||||
IF v_actie = 'ORDAFM'
|
||||
THEN
|
||||
@@ -1021,6 +1251,149 @@ EXCEPTION
|
||||
END;
|
||||
/
|
||||
|
||||
CREATE OR REPLACE VIEW maas_v_mldopdr
|
||||
AS
|
||||
SELECT melding_key,
|
||||
meldingnummer,
|
||||
melding_start_key,
|
||||
externnummer,
|
||||
melding_regio,
|
||||
melding_district,
|
||||
melding_locatiecode,
|
||||
melding_locatie,
|
||||
melding_locatieplaats,
|
||||
fclt_3d_locatie_key,
|
||||
melding_gebouwcode,
|
||||
melding_gebouw,
|
||||
melding_verdieping,
|
||||
melding_ruimtenr,
|
||||
melding_ruimte,
|
||||
melding_ordernr,
|
||||
kostensoortgroep,
|
||||
kostensoort,
|
||||
kostenplaats,
|
||||
kostenplaats_oms,
|
||||
melder,
|
||||
melder_key,
|
||||
afdeling,
|
||||
afdeling_omschrijving,
|
||||
fclt_3d_afdeling_key,
|
||||
bedrijf_key,
|
||||
invoerder,
|
||||
meldbron,
|
||||
soortmelding,
|
||||
fclt_3d_discipline_key,
|
||||
productgroep,
|
||||
subproductgroep,
|
||||
behandelgroep,
|
||||
behandelaar,
|
||||
behandelaar_key,
|
||||
subproductgroepgroep,
|
||||
fclt_3d_discipline2_key,
|
||||
actieve_behandelgroep,
|
||||
actieve_behandelaar_key,
|
||||
actieve_behandelaar,
|
||||
melding_status,
|
||||
sla_nvt,
|
||||
sla_werkdgn,
|
||||
sla_werkuren,
|
||||
sla_respijtdgn,
|
||||
sla_respijturen,
|
||||
sla_accptdgn,
|
||||
sla_accpturen,
|
||||
plan_uitvoertijd_sla,
|
||||
melding_datum,
|
||||
melding_einddatum,
|
||||
melding_einddatum_std,
|
||||
melding_acceptdatum,
|
||||
melding_afgemeld,
|
||||
melding_accepted,
|
||||
doorlooptijd_werkdgn,
|
||||
doorlooptijd_werkuren,
|
||||
onderwerp,
|
||||
vomschrijving,
|
||||
melding_opmerking,
|
||||
prioriteit,
|
||||
prioriteittxt,
|
||||
rating,
|
||||
rating_opmerking,
|
||||
bolletje,
|
||||
actiecode,
|
||||
accept_sla_dagen,
|
||||
accept_sla_uren,
|
||||
uitvoering_sla_dagen,
|
||||
uitvoering_sla_uren,
|
||||
afspraak_sla_dagen,
|
||||
afspraak_sla_uren,
|
||||
accept_sla_optijd,
|
||||
uitvoering_sla_optijd,
|
||||
afspraak_sla_optijd,
|
||||
selfservice,
|
||||
opdracht_key,
|
||||
opdracht_nummer,
|
||||
opdracht_regio,
|
||||
opdracht_district,
|
||||
opdracht_locatie_code,
|
||||
opdracht_locatie,
|
||||
opdracht_locatieplaats,
|
||||
opdracht_gebouwcode,
|
||||
opdracht_gebouw,
|
||||
opdracht_verdieping,
|
||||
opdracht_ruimtenr,
|
||||
opdracht_ruimte,
|
||||
opdracht_kostenplaats,
|
||||
opdracht_kostenplaats_oms,
|
||||
opdracht_type,
|
||||
opdracht_volgnummer,
|
||||
opdracht_status,
|
||||
opdracht_duur_gepland,
|
||||
opdracht_datum,
|
||||
opdracht_einddatum,
|
||||
opdracht_plandatum,
|
||||
opdracht_acceptdatum,
|
||||
opdracht_afgemeld,
|
||||
opdracht_doorlooptijd,
|
||||
opdracht_accepttijd,
|
||||
opdracht_omschrijving,
|
||||
opdracht_opmerking,
|
||||
opdracht_uitvoerende,
|
||||
opdracht_uitvoerende_contact,
|
||||
opdracht_behandelaar,
|
||||
opdracht_contract,
|
||||
opdracht_contract_versie,
|
||||
opdracht_contactpersoon,
|
||||
opdracht_uren,
|
||||
opdracht_correctie,
|
||||
opdracht_materiaal,
|
||||
opdracht_uurtarief,
|
||||
opdracht_kosten,
|
||||
opdracht_verstrektdatum,
|
||||
opdracht_lev_doorloopuren,
|
||||
opdracht_lev_doorloopdagen,
|
||||
(SELECT DISTINCT mld_kenmerkopdr_waarde
|
||||
FROM mld_v_aanwezigkenmerkopdr km1,
|
||||
mld_srtkenmerk sk,
|
||||
mld_kenmerk km
|
||||
WHERE km1.mld_opdr_key = opdracht_key
|
||||
AND sk.mld_srtkenmerk_key = 381
|
||||
AND km.mld_srtkenmerk_key = sk.mld_srtkenmerk_key
|
||||
AND km.mld_kenmerk_key = km1.mld_kenmerk_key
|
||||
AND km1.mld_kenmerkopdr_verwijder IS NULL)
|
||||
AS status_valuemation,
|
||||
(SELECT DISTINCT mld_kenmerkopdr_waarde
|
||||
FROM mld_v_aanwezigkenmerkopdr km1,
|
||||
mld_srtkenmerk sk,
|
||||
mld_kenmerk km
|
||||
WHERE km1.mld_opdr_key = opdracht_key
|
||||
AND sk.mld_srtkenmerk_key = 401
|
||||
AND km.mld_srtkenmerk_key = sk.mld_srtkenmerk_key
|
||||
AND km.mld_kenmerk_key = km1.mld_kenmerk_key
|
||||
AND km1.mld_kenmerkopdr_verwijder IS NULL)
|
||||
AS status_per
|
||||
FROM mld_v_udr_meldingopdracht
|
||||
WHERE opdracht_key IS NOT NULL;
|
||||
|
||||
|
||||
------ payload end ------
|
||||
|
||||
SET DEFINE OFF
|
||||
|
||||
Reference in New Issue
Block a user