7720 lines
320 KiB
MySQL
7720 lines
320 KiB
MySQL
--
|
||
-- $Id$
|
||
--
|
||
-- Script containing customer specific configuration sql statements for CSUN: CSU National Accounts
|
||
--
|
||
|
||
DEFINE thisfile = 'CSUN.SQL'
|
||
DEFINE dbuser = 'CSUN'
|
||
|
||
SET ECHO ON
|
||
SET DEFINE ON
|
||
COLUMN fcltlogfile NEW_VALUE fcltlogfile NOPRINT;
|
||
COLUMN fcltcusttxt NEW_VALUE fcltcusttxt NOPRINT;
|
||
WHENEVER SQLERROR CONTINUE;
|
||
SELECT adm.getscriptspoolfile('&thisfile') AS fcltlogfile FROM DUAL;
|
||
SPOOL &fcltlogfile
|
||
WHENEVER SQLERROR EXIT;
|
||
SELECT adm.checkscriptcust('&dbuser') AS fcltcusttxt FROM DUAL;
|
||
WHENEVER SQLERROR CONTINUE;
|
||
---------------------------------------
|
||
PROMPT &fcltcusttxt
|
||
---------------------------------------
|
||
SET DEFINE OFF
|
||
|
||
------ payload begin ------
|
||
|
||
CREATE OR REPLACE PROCEDURE csun_imp_writelog (
|
||
p_import_key IN NUMBER,
|
||
p_severity IN VARCHAR2,
|
||
p_errormsg IN VARCHAR2,
|
||
p_errorhint IN VARCHAR2)
|
||
AS
|
||
PRAGMA AUTONOMOUS_TRANSACTION;
|
||
BEGIN
|
||
fac.imp_writelog (p_import_key,
|
||
p_severity,
|
||
p_errormsg,
|
||
p_errorhint);
|
||
COMMIT;
|
||
END;
|
||
/
|
||
|
||
CREATE OR REPLACE VIEW csun_v_rap_errorlog
|
||
(
|
||
hide_f_imp_log_datum,
|
||
fclt_f_applicatie,
|
||
fclt_f_datum,
|
||
tijdstip,
|
||
fclt_f_niveau,
|
||
fclt_f_omschrijving,
|
||
hint
|
||
)
|
||
AS
|
||
SELECT imp_log_datum hide_f_imp_log_datum,
|
||
COALESCE(fac_import_app_code,imp_log_applicatie),
|
||
TO_CHAR (imp_log_datum, 'YYYYMMDD') fclt_f_datum,
|
||
TO_CHAR (imp_log_datum, 'HH24:MI:SS') tijdstip,
|
||
DECODE (imp_log_status,
|
||
'F', 'Fataal',
|
||
'E', 'Error',
|
||
'W', 'Waarschuwing',
|
||
'I', 'Informatief',
|
||
'S', 'Samenvatting',
|
||
'-')
|
||
fclt_f_niveau,
|
||
imp_log_omschrijving fclt_f_omschrijving,
|
||
imp_log_hint
|
||
FROM imp_log l, fac_import i, fac_import_app a
|
||
WHERE l.fac_import_key = i.fac_import_key(+)
|
||
AND i.fac_import_app_key = a.fac_import_app_key(+)
|
||
AND l.imp_log_datum > sysdate -10;
|
||
|
||
CREATE OR REPLACE PROCEDURE csun_add_xml_row (
|
||
p_bestand IN VARCHAR2,
|
||
p_regel IN VARCHAR2)
|
||
AS
|
||
v_index NUMBER;
|
||
BEGIN
|
||
SELECT COALESCE( MAX(fac_rapport_volgnr), 0) + 1
|
||
INTO v_index
|
||
FROM fac_rapport
|
||
WHERE fac_rapport_node = p_bestand;
|
||
|
||
INSERT INTO fac_rapport (
|
||
fac_rapport_node,
|
||
fac_rapport_volgnr,
|
||
fac_rapport_regel)
|
||
VALUES (p_bestand,
|
||
v_index,
|
||
p_regel);
|
||
END;
|
||
/
|
||
|
||
CREATE OR REPLACE PROCEDURE csun_add_xml_element (
|
||
p_bestand IN VARCHAR2,
|
||
p_tag IN VARCHAR2,
|
||
p_value IN VARCHAR2)
|
||
AS
|
||
BEGIN
|
||
csun_add_xml_row(p_bestand,
|
||
'<' || p_tag || '>'
|
||
|| xml.char_to_html(p_value)
|
||
|| '</' || p_tag || '>');
|
||
END;
|
||
/
|
||
|
||
CREATE OR REPLACE PACKAGE CSUN_RAP
|
||
AS
|
||
-- PACKAGES voor de CSUN specifieke rapportages
|
||
TYPE t_cursor IS REF CURSOR;
|
||
|
||
PROCEDURE district_periode (user_key IN NUMBER,
|
||
p_datum_van IN VARCHAR2,
|
||
p_datum_tot IN VARCHAR2,
|
||
p_cursor OUT t_cursor);
|
||
PROCEDURE regio_periode (user_key IN NUMBER,
|
||
p_datum_van IN VARCHAR2,
|
||
p_datum_tot IN VARCHAR2,
|
||
p_cursor OUT t_cursor);
|
||
PROCEDURE client_periode (user_key IN NUMBER,
|
||
p_datum_van IN VARCHAR2,
|
||
p_datum_tot IN VARCHAR2,
|
||
p_cursor OUT t_cursor);
|
||
PROCEDURE ns_district_periode (user_key IN NUMBER,
|
||
p_datum_van IN VARCHAR2,
|
||
p_datum_tot IN VARCHAR2,
|
||
p_cursor OUT t_cursor);
|
||
PROCEDURE ns_regio_periode (user_key IN NUMBER,
|
||
p_datum_van IN VARCHAR2,
|
||
p_datum_tot IN VARCHAR2,
|
||
p_cursor OUT t_cursor);
|
||
PROCEDURE ns_client_periode (user_key IN NUMBER,
|
||
p_datum_van IN VARCHAR2,
|
||
p_datum_tot IN VARCHAR2,
|
||
p_cursor OUT t_cursor);
|
||
END;
|
||
/
|
||
|
||
CREATE OR REPLACE PACKAGE BODY CSUN_RAP
|
||
AS
|
||
--
|
||
--Rapportages
|
||
--
|
||
PROCEDURE district_periode (user_key IN NUMBER,
|
||
p_datum_van IN VARCHAR2, -- Let wel: formaat '13-05-2005'
|
||
p_datum_tot IN VARCHAR2,
|
||
p_cursor OUT t_cursor)
|
||
AS
|
||
v_datum_van DATE;
|
||
v_datum_tot DATE;
|
||
v_alg_level_read NUMBER;
|
||
BEGIN
|
||
v_datum_van := fac.safe_to_date (p_datum_van, 'dd-mm-yyyy');
|
||
v_datum_tot := fac.safe_to_date (p_datum_tot, 'dd-mm-yyyy')+1;
|
||
|
||
OPEN p_cursor FOR
|
||
SELECT district,
|
||
COUNT (mld_key) aantal_meldingen,
|
||
SUM (acceptoptijd) acceptoptijd,
|
||
SUM (uitvoeringoptijd) uitvoeringoptijd
|
||
FROM (
|
||
SELECT DISTINCT
|
||
m.mld_melding_key mld_key,
|
||
di.alg_district_upper district,
|
||
l.alg_locatie_code locatie,
|
||
CASE SIGN(fac.datumtijdplusuitvoertijd (
|
||
fac.gettrackingdate ('MLDNEW', m.mld_melding_key),
|
||
std.mld_stdmelding_t_accepttijd.tijdsduur, --was sm.mld_stdmelding_urgentie,
|
||
std.mld_stdmelding_t_accepttijd.eenheid) --was 'UREN')
|
||
- COALESCE (fac.gettrackingdate ('MLDREJ', m.mld_melding_key),
|
||
fac.gettrackingdate ('MLDACP', m.mld_melding_key),
|
||
SYSDATE))
|
||
WHEN -1 THEN 0
|
||
ELSE 1
|
||
END
|
||
acceptoptijd,
|
||
CASE
|
||
WHEN fac.gettrackingdate ('MLDREJ', m.mld_melding_key) IS NULL
|
||
THEN
|
||
CASE SIGN(fac.datumtijdplusuitvoertijd (
|
||
m.mld_melding_datum,
|
||
m.mld_melding_t_uitvoertijd.tijdsduur, --was m.mld_melding_uitvoertijd,
|
||
m.mld_melding_t_uitvoertijd.eenheid) --was 'DAGEN')
|
||
- COALESCE (fac.gettrackingdate ('MLDREJ', m.mld_melding_key),
|
||
fac.gettrackingdate ('MLDAFM', m.mld_melding_key),
|
||
SYSDATE))
|
||
WHEN -1 THEN 0
|
||
ELSE 1
|
||
END
|
||
ELSE 1
|
||
END
|
||
uitvoeringoptijd
|
||
FROM mld_melding m,
|
||
mld_discipline md,
|
||
alg_locatie l,
|
||
alg_district di,
|
||
prs_perslid p,
|
||
mld_stdmelding std
|
||
WHERE m.mld_alg_locatie_key = l.alg_locatie_key
|
||
AND l.alg_district_key = di.alg_district_key
|
||
AND m.prs_perslid_key = p.prs_perslid_key
|
||
AND md.ins_discipline_key = std.mld_ins_discipline_key
|
||
AND std.mld_stdmelding_key = m.mld_stdmelding_key
|
||
AND m.mld_melding_datum BETWEEN v_datum_van AND v_datum_tot
|
||
)
|
||
GROUP BY district;
|
||
END;
|
||
|
||
PROCEDURE regio_periode (user_key IN NUMBER,
|
||
p_datum_van IN VARCHAR2, -- Let wel: formaat '13-05-2005'
|
||
p_datum_tot IN VARCHAR2,
|
||
p_cursor OUT t_cursor)
|
||
AS
|
||
v_datum_van DATE;
|
||
v_datum_tot DATE;
|
||
v_alg_level_read NUMBER;
|
||
BEGIN
|
||
v_datum_van := fac.safe_to_date (p_datum_van, 'dd-mm-yyyy');
|
||
v_datum_tot := fac.safe_to_date (p_datum_tot, 'dd-mm-yyyy')+1;
|
||
|
||
OPEN p_cursor FOR
|
||
SELECT regio,
|
||
COUNT (mld_key) aantal_meldingen,
|
||
SUM (acceptoptijd) acceptoptijd,
|
||
SUM (uitvoeringoptijd) uitvoeringoptijd
|
||
FROM (
|
||
SELECT DISTINCT
|
||
m.mld_melding_key mld_key,
|
||
di.alg_district_upper district,
|
||
l.alg_locatie_code locatie,
|
||
r.alg_regio_omschrijving regio,
|
||
CASE SIGN(fac.datumtijdplusuitvoertijd (
|
||
fac.gettrackingdate ('MLDNEW', m.mld_melding_key),
|
||
std.mld_stdmelding_t_accepttijd.tijdsduur, --was sm.mld_stdmelding_urgentie,
|
||
std.mld_stdmelding_t_accepttijd.eenheid) --was 'UREN')
|
||
- COALESCE (fac.gettrackingdate ('MLDREJ', m.mld_melding_key),
|
||
fac.gettrackingdate ('MLDACP', m.mld_melding_key),
|
||
SYSDATE))
|
||
WHEN -1 THEN 0
|
||
ELSE 1
|
||
END
|
||
acceptoptijd,
|
||
CASE
|
||
WHEN fac.gettrackingdate ('MLDREJ', m.mld_melding_key) IS NULL
|
||
THEN
|
||
CASE SIGN(fac.datumtijdplusuitvoertijd (
|
||
m.mld_melding_datum,
|
||
m.mld_melding_t_uitvoertijd.tijdsduur, --was m.mld_melding_uitvoertijd,
|
||
m.mld_melding_t_uitvoertijd.eenheid) --was 'DAGEN')
|
||
- COALESCE (fac.gettrackingdate ('MLDREJ', m.mld_melding_key),
|
||
fac.gettrackingdate ('MLDAFM', m.mld_melding_key),
|
||
SYSDATE))
|
||
WHEN -1 THEN 0
|
||
ELSE 1
|
||
END
|
||
ELSE 1
|
||
END
|
||
uitvoeringoptijd
|
||
FROM mld_melding m,
|
||
mld_discipline md,
|
||
alg_regio r,
|
||
alg_locatie l,
|
||
alg_district di,
|
||
prs_perslid p,
|
||
mld_stdmelding std
|
||
WHERE m.mld_alg_locatie_key = l.alg_locatie_key
|
||
AND l.alg_district_key = di.alg_district_key
|
||
AND di.alg_regio_key = r.alg_regio_key
|
||
AND m.prs_perslid_key = p.prs_perslid_key
|
||
AND md.ins_discipline_key = std.mld_ins_discipline_key
|
||
AND std.mld_stdmelding_key = m.mld_stdmelding_key
|
||
AND m.mld_melding_datum BETWEEN v_datum_van AND v_datum_tot
|
||
)
|
||
GROUP BY regio;
|
||
END;
|
||
|
||
PROCEDURE client_periode (user_key IN NUMBER,
|
||
p_datum_van IN VARCHAR2, -- Let wel: formaat '13-05-2005'
|
||
p_datum_tot IN VARCHAR2,
|
||
p_cursor OUT t_cursor)
|
||
AS
|
||
v_datum_van DATE;
|
||
v_datum_tot DATE;
|
||
v_alg_level_read NUMBER;
|
||
BEGIN
|
||
v_datum_van := fac.safe_to_date (p_datum_van, 'dd-mm-yyyy');
|
||
v_datum_tot := fac.safe_to_date (p_datum_tot, 'dd-mm-yyyy')+1;
|
||
|
||
OPEN p_cursor FOR
|
||
SELECT fac_usrdata_omschr client,
|
||
COUNT (mld_key) aantal_meldingen,
|
||
SUM (acceptoptijd) acceptoptijd,
|
||
SUM (uitvoeringoptijd) uitvoeringoptijd
|
||
FROM (
|
||
SELECT DISTINCT
|
||
m.mld_melding_key mld_key,
|
||
fac_usrdata_omschr ,
|
||
CASE SIGN(fac.datumtijdplusuitvoertijd (
|
||
fac.gettrackingdate ('MLDNEW', m.mld_melding_key),
|
||
std.mld_stdmelding_t_accepttijd.tijdsduur, --was sm.mld_stdmelding_urgentie,
|
||
std.mld_stdmelding_t_accepttijd.eenheid) --was 'UREN')
|
||
- COALESCE (fac.gettrackingdate ('MLDREJ', m.mld_melding_key),
|
||
fac.gettrackingdate ('MLDACP', m.mld_melding_key),
|
||
SYSDATE))
|
||
WHEN -1 THEN 0
|
||
ELSE 1
|
||
END
|
||
acceptoptijd,
|
||
CASE
|
||
WHEN fac.gettrackingdate ('MLDREJ', m.mld_melding_key) IS NULL
|
||
THEN
|
||
CASE SIGN(fac.datumtijdplusuitvoertijd (
|
||
m.mld_melding_datum,
|
||
m.mld_melding_t_uitvoertijd.tijdsduur, --was m.mld_melding_uitvoertijd,
|
||
m.mld_melding_t_uitvoertijd.eenheid) --was 'DAGEN')
|
||
- COALESCE (fac.gettrackingdate ('MLDREJ', m.mld_melding_key),
|
||
fac.gettrackingdate ('MLDAFM', m.mld_melding_key),
|
||
SYSDATE))
|
||
WHEN -1 THEN 0
|
||
ELSE 1
|
||
END
|
||
ELSE 1
|
||
END
|
||
uitvoeringoptijd
|
||
FROM mld_melding m,
|
||
alg_onrgoedkenmerk ogk,
|
||
mld_stdmelding std,
|
||
fac_usrdata ud
|
||
WHERE m.mld_alg_locatie_key = ogk.alg_onrgoed_key
|
||
AND ogk.alg_onrgoed_niveau = 'L'
|
||
AND ogk.alg_kenmerk_key = 1000
|
||
AND fac.safe_to_number(ogk.alg_onrgoedkenmerk_waarde) = fac_usrdata_key
|
||
AND m.mld_stdmelding_key = std.mld_stdmelding_key
|
||
AND m.mld_melding_datum BETWEEN v_datum_van AND v_datum_tot
|
||
)
|
||
GROUP BY fac_usrdata_omschr;
|
||
END;
|
||
|
||
PROCEDURE ns_district_periode (user_key IN NUMBER,
|
||
p_datum_van IN VARCHAR2, -- Let wel: formaat '13-05-2005'
|
||
p_datum_tot IN VARCHAR2,
|
||
p_cursor OUT t_cursor)
|
||
AS
|
||
v_datum_van DATE;
|
||
v_datum_tot DATE;
|
||
v_alg_level_read NUMBER;
|
||
BEGIN
|
||
v_datum_van := fac.safe_to_date (p_datum_van, 'dd-mm-yyyy');
|
||
v_datum_tot := fac.safe_to_date (p_datum_tot, 'dd-mm-yyyy')+1;
|
||
|
||
OPEN p_cursor FOR
|
||
SELECT district,
|
||
COUNT (mld_key) aantal_meldingen,
|
||
SUM (acceptoptijd) acceptoptijd,
|
||
SUM (uitvoeringoptijd) uitvoeringoptijd
|
||
FROM (
|
||
SELECT DISTINCT
|
||
m.mld_melding_key mld_key,
|
||
di.alg_district_upper district,
|
||
l.alg_locatie_code locatie,
|
||
CASE SIGN(fac.datumtijdplusuitvoertijd (
|
||
fac.gettrackingdate ('MLDNEW', m.mld_melding_key),
|
||
std.mld_stdmelding_t_accepttijd.tijdsduur, --was sm.mld_stdmelding_urgentie,
|
||
std.mld_stdmelding_t_accepttijd.eenheid) --was 'UREN')
|
||
- COALESCE (fac.gettrackingdate ('MLDREJ', m.mld_melding_key),
|
||
fac.gettrackingdate ('MLDACP', m.mld_melding_key),
|
||
SYSDATE))
|
||
WHEN -1 THEN 0
|
||
ELSE 1
|
||
END
|
||
acceptoptijd,
|
||
CASE
|
||
WHEN fac.gettrackingdate ('MLDREJ', m.mld_melding_key) IS NULL
|
||
THEN
|
||
CASE SIGN(fac.datumtijdplusuitvoertijd (
|
||
m.mld_melding_datum,
|
||
m.mld_melding_t_uitvoertijd.tijdsduur, --was m.mld_melding_uitvoertijd,
|
||
m.mld_melding_t_uitvoertijd.eenheid) --was 'DAGEN')
|
||
- COALESCE (fac.gettrackingdate ('MLDREJ', m.mld_melding_key),
|
||
fac.gettrackingdate ('MLDAFM', m.mld_melding_key),
|
||
SYSDATE))
|
||
WHEN -1 THEN 0
|
||
ELSE 1
|
||
END
|
||
ELSE 1
|
||
END
|
||
uitvoeringoptijd
|
||
FROM mld_melding m,
|
||
mld_discipline md,
|
||
alg_locatie l,
|
||
alg_district di,
|
||
prs_perslid p,
|
||
mld_stdmelding std
|
||
WHERE m.mld_alg_locatie_key = l.alg_locatie_key
|
||
AND m.mld_stdmelding_key = 61 -- Klacht No-Show
|
||
AND l.alg_district_key = di.alg_district_key
|
||
AND m.prs_perslid_key = p.prs_perslid_key
|
||
AND md.ins_discipline_key = std.mld_ins_discipline_key
|
||
AND std.mld_stdmelding_key = m.mld_stdmelding_key
|
||
AND m.mld_melding_datum BETWEEN v_datum_van AND v_datum_tot
|
||
)
|
||
GROUP BY district;
|
||
END;
|
||
|
||
PROCEDURE ns_regio_periode (user_key IN NUMBER,
|
||
p_datum_van IN VARCHAR2, -- Let wel: formaat '13-05-2005'
|
||
p_datum_tot IN VARCHAR2,
|
||
p_cursor OUT t_cursor)
|
||
AS
|
||
v_datum_van DATE;
|
||
v_datum_tot DATE;
|
||
v_alg_level_read NUMBER;
|
||
BEGIN
|
||
v_datum_van := fac.safe_to_date (p_datum_van, 'dd-mm-yyyy');
|
||
v_datum_tot := fac.safe_to_date (p_datum_tot, 'dd-mm-yyyy')+1;
|
||
|
||
OPEN p_cursor FOR
|
||
SELECT regio,
|
||
COUNT (mld_key) aantal_meldingen,
|
||
SUM (acceptoptijd) acceptoptijd,
|
||
SUM (uitvoeringoptijd) uitvoeringoptijd
|
||
FROM (
|
||
SELECT DISTINCT
|
||
m.mld_melding_key mld_key,
|
||
di.alg_district_upper district,
|
||
l.alg_locatie_code locatie,
|
||
r.alg_regio_omschrijving regio,
|
||
CASE SIGN(fac.datumtijdplusuitvoertijd (
|
||
fac.gettrackingdate ('MLDNEW', m.mld_melding_key),
|
||
std.mld_stdmelding_t_accepttijd.tijdsduur, --was sm.mld_stdmelding_urgentie,
|
||
std.mld_stdmelding_t_accepttijd.eenheid) --was 'UREN')
|
||
- COALESCE (fac.gettrackingdate ('MLDREJ', m.mld_melding_key),
|
||
fac.gettrackingdate ('MLDACP', m.mld_melding_key),
|
||
SYSDATE))
|
||
WHEN -1 THEN 0
|
||
ELSE 1
|
||
END
|
||
acceptoptijd,
|
||
CASE
|
||
WHEN fac.gettrackingdate ('MLDREJ', m.mld_melding_key) IS NULL
|
||
THEN
|
||
CASE SIGN(fac.datumtijdplusuitvoertijd (
|
||
m.mld_melding_datum,
|
||
m.mld_melding_t_uitvoertijd.tijdsduur, --was m.mld_melding_uitvoertijd,
|
||
m.mld_melding_t_uitvoertijd.eenheid) --was 'DAGEN')
|
||
- COALESCE (fac.gettrackingdate ('MLDREJ', m.mld_melding_key),
|
||
fac.gettrackingdate ('MLDAFM', m.mld_melding_key),
|
||
SYSDATE))
|
||
WHEN -1 THEN 0
|
||
ELSE 1
|
||
END
|
||
ELSE 1
|
||
END
|
||
uitvoeringoptijd
|
||
FROM mld_melding m,
|
||
mld_discipline md,
|
||
alg_regio r,
|
||
alg_locatie l,
|
||
alg_district di,
|
||
prs_perslid p,
|
||
mld_stdmelding std
|
||
WHERE m.mld_alg_locatie_key = l.alg_locatie_key
|
||
AND m.mld_stdmelding_key = 61 -- Klacht No-Show
|
||
AND l.alg_district_key = di.alg_district_key
|
||
AND di.alg_regio_key = r.alg_regio_key
|
||
AND m.prs_perslid_key = p.prs_perslid_key
|
||
AND md.ins_discipline_key = std.mld_ins_discipline_key
|
||
AND std.mld_stdmelding_key = m.mld_stdmelding_key
|
||
AND m.mld_melding_datum BETWEEN v_datum_van AND v_datum_tot
|
||
)
|
||
GROUP BY regio;
|
||
END;
|
||
|
||
PROCEDURE ns_client_periode (user_key IN NUMBER,
|
||
p_datum_van IN VARCHAR2, -- Let wel: formaat '13-05-2005'
|
||
p_datum_tot IN VARCHAR2,
|
||
p_cursor OUT t_cursor)
|
||
AS
|
||
v_datum_van DATE;
|
||
v_datum_tot DATE;
|
||
v_alg_level_read NUMBER;
|
||
BEGIN
|
||
v_datum_van := fac.safe_to_date (p_datum_van, 'dd-mm-yyyy');
|
||
v_datum_tot := fac.safe_to_date (p_datum_tot, 'dd-mm-yyyy')+1;
|
||
|
||
OPEN p_cursor FOR
|
||
SELECT fac_usrdata_omschr client,
|
||
COUNT (mld_key) aantal_meldingen,
|
||
SUM (acceptoptijd) acceptoptijd,
|
||
SUM (uitvoeringoptijd) uitvoeringoptijd
|
||
FROM (
|
||
SELECT DISTINCT
|
||
m.mld_melding_key mld_key,
|
||
fac_usrdata_omschr ,
|
||
CASE SIGN(fac.datumtijdplusuitvoertijd (
|
||
fac.gettrackingdate ('MLDNEW', m.mld_melding_key),
|
||
std.mld_stdmelding_t_accepttijd.tijdsduur, --was sm.mld_stdmelding_urgentie,
|
||
std.mld_stdmelding_t_accepttijd.eenheid) --was 'UREN')
|
||
- COALESCE (fac.gettrackingdate ('MLDREJ', m.mld_melding_key),
|
||
fac.gettrackingdate ('MLDACP', m.mld_melding_key),
|
||
SYSDATE))
|
||
WHEN -1 THEN 0
|
||
ELSE 1
|
||
END
|
||
acceptoptijd,
|
||
CASE
|
||
WHEN fac.gettrackingdate ('MLDREJ', m.mld_melding_key) IS NULL
|
||
THEN
|
||
CASE SIGN(fac.datumtijdplusuitvoertijd (
|
||
m.mld_melding_datum,
|
||
m.mld_melding_t_uitvoertijd.tijdsduur, --was m.mld_melding_uitvoertijd,
|
||
m.mld_melding_t_uitvoertijd.eenheid) --was 'DAGEN')
|
||
- COALESCE (fac.gettrackingdate ('MLDREJ', m.mld_melding_key),
|
||
fac.gettrackingdate ('MLDAFM', m.mld_melding_key),
|
||
SYSDATE))
|
||
WHEN -1 THEN 0
|
||
ELSE 1
|
||
END
|
||
ELSE 1
|
||
END
|
||
uitvoeringoptijd
|
||
FROM mld_melding m,
|
||
alg_onrgoedkenmerk ogk,
|
||
mld_stdmelding std,
|
||
fac_usrdata ud
|
||
WHERE m.mld_alg_locatie_key = ogk.alg_onrgoed_key
|
||
AND m.mld_stdmelding_key = 61 -- Klacht No-Show
|
||
AND ogk.alg_onrgoed_niveau = 'L'
|
||
AND ogk.alg_kenmerk_key = 1000
|
||
AND fac.safe_to_number(ogk.alg_onrgoedkenmerk_waarde) = fac_usrdata_key
|
||
AND m.mld_stdmelding_key = std.mld_stdmelding_key
|
||
AND m.mld_melding_datum BETWEEN v_datum_van AND v_datum_tot
|
||
)
|
||
GROUP BY fac_usrdata_omschr;
|
||
END;
|
||
END;
|
||
/
|
||
|
||
|
||
-- stuur mail notificatie naar alternatief emailadres dat bij de melding staat. srtkenmerk_key = 1
|
||
-- en stuur mail naar de BB-er die via een CSU locatie waar hij/zij een werkplek heeft onder hetzelfde
|
||
-- CSUN#74612. Onderscheid is gemaakt in notificatie-tekst, soms BBer en soms Rayonmanager
|
||
-- district als de locatie waar de melding op is ingevoerd. Uitzondering is het pand Gustav Mahlerlaan 10
|
||
-- in A'dam (hoofdgebouw ABN key = 6218) deze heeft een vast emailadres.
|
||
-- ook worden meldingen uitgesloten als ze de standaardmelding in de meldinggroep Geen notificatie zit.
|
||
-- Deze export wordt voorin putorders.bat aangeroepen zodat hij net op tijd is om extra e-mail
|
||
-- notificaties aan te maken. Anderzijds door de putorders verwerking is zowel het origineel als
|
||
-- de nieuwe weg zodat een volgende ronde het niet in herhaling valt.
|
||
|
||
-- Wanneer de Politie Haaglanden gekoppeld kan worden aan een melding (via werkplek) moet de notificatie NIET naar andere personen met een werkplek op die locatie.
|
||
CREATE OR REPLACE PROCEDURE csun_export_mailnoti (p_applname IN VARCHAR2,
|
||
p_applrun IN VARCHAR2,
|
||
p_filedir IN VARCHAR2,
|
||
p_filename IN VARCHAR2)
|
||
AS
|
||
CURSOR c IS
|
||
SELECT DISTINCT
|
||
x.mld_melding_key,
|
||
DECODE (
|
||
COUNT (haaglanden) OVER (PARTITION BY mld_melding_key),
|
||
1, 'Politie.Haaglanden@csu.nl',
|
||
x.prs_perslid_email) prs_perslid_email,
|
||
x.functie
|
||
FROM (SELECT DISTINCT
|
||
mld_melding_key,
|
||
prs_perslid_email,
|
||
DECODE (UPPER (prs_perslid_email),
|
||
'POLITIE.HAAGLANDEN@CSU.NL', 1,
|
||
NULL) haaglanden,
|
||
functie
|
||
FROM (SELECT m.mld_melding_key,
|
||
alg_onrgoedkenmerk_waarde
|
||
prs_perslid_email,
|
||
mld_melding_status,
|
||
mld_stdmelding_key,
|
||
'BBer'
|
||
functie
|
||
FROM mld_melding m,
|
||
(SELECT alg_onrgoed_key,
|
||
alg_onrgoedkenmerk_waarde
|
||
FROM alg_onrgoedkenmerk aogk
|
||
WHERE alg_kenmerk_key = 1260) lse
|
||
WHERE m.mld_alg_locatie_key =
|
||
lse.alg_onrgoed_key
|
||
AND m.mld_stdmelding_key != 41 -- ontvangen berichten
|
||
UNION ALL
|
||
SELECT m.mld_melding_key,
|
||
prs_perslid_email,
|
||
mld_melding_status,
|
||
mld_stdmelding_key,
|
||
'BBer' AS functie
|
||
FROM prs_perslid p,
|
||
mld_melding m,
|
||
alg_locatie l,
|
||
alg_locatie l2,
|
||
prs_v_werkplekperslid_gegevens pwpg,
|
||
prs_kenmerklink kl
|
||
WHERE m.mld_alg_locatie_key = l.alg_locatie_key
|
||
AND m.mld_stdmelding_key != 41 -- ontvangen berichten
|
||
AND pwpg.alg_locatie_key = l2.alg_locatie_key
|
||
AND l.alg_district_key = l2.alg_district_key
|
||
AND pwpg.prs_perslid_key = p.prs_perslid_key
|
||
AND p.prs_srtperslid_key = 32 -- BBer
|
||
AND prs_kenmerk_key = 1100 -- notificatie enable vinkje
|
||
AND prs_kenmerklink_waarde = '1'
|
||
AND kl.prs_link_key = p.prs_perslid_key
|
||
AND p.prs_perslid_email IS NOT NULL
|
||
AND p.prs_perslid_verwijder IS NULL
|
||
AND m.mld_stdmelding_key IN
|
||
(SELECT mld_stdmelding_key
|
||
FROM mld_stdmelding
|
||
WHERE mld_stdmelding_default_disc IN
|
||
(1181, 1183) -- Behandelteams BB en RM/PM & BB
|
||
AND mld_stdmelding_verwijder
|
||
IS NULL)
|
||
UNION ALL
|
||
SELECT m.mld_melding_key,
|
||
prs_perslid_email,
|
||
mld_melding_status,
|
||
mld_stdmelding_key,
|
||
DECODE (p.prs_srtperslid_key,
|
||
50, 'Rayonmanager',
|
||
4041, 'Objectleider') AS functie
|
||
FROM prs_perslid p,
|
||
mld_melding m,
|
||
prs_v_werkplekperslid_gegevens pwpg,
|
||
prs_kenmerklink kl
|
||
WHERE m.mld_stdmelding_key != 41 -- ontvangen berichten
|
||
AND pwpg.alg_locatie_key =
|
||
m.mld_alg_locatie_key
|
||
AND pwpg.prs_perslid_key = p.prs_perslid_key
|
||
AND p.prs_srtperslid_key IN (4041, 50) -- Objectleider en Rayonmanager
|
||
AND prs_kenmerk_key = 1100 -- notificatie enable vinkje
|
||
AND prs_kenmerklink_waarde = '1'
|
||
AND kl.prs_link_key = p.prs_perslid_key
|
||
AND p.prs_perslid_email IS NOT NULL
|
||
AND p.prs_perslid_verwijder IS NULL
|
||
AND m.mld_stdmelding_key IN
|
||
(SELECT mld_stdmelding_key
|
||
FROM mld_stdmelding
|
||
WHERE mld_stdmelding_default_disc IN
|
||
(1182, 1183) -- Behandelteams RM en RM/PM & BB
|
||
AND mld_stdmelding_verwijder
|
||
IS NULL)
|
||
UNION ALL
|
||
SELECT m.mld_melding_key,
|
||
'klantsupport@csu.nl',
|
||
mld_melding_status,
|
||
mld_stdmelding_key,
|
||
'Klantsupport' AS functie
|
||
FROM mld_melding m
|
||
WHERE m.mld_stdmelding_key != 41 -- ontvangen berichten
|
||
AND m.mld_stdmelding_key IN
|
||
(SELECT mld_stdmelding_key
|
||
FROM mld_stdmelding
|
||
WHERE mld_stdmelding_default_disc IN
|
||
(1181, 1183) -- Behandelteams BB en RM/PM & BB
|
||
AND mld_stdmelding_verwijder
|
||
IS NULL)
|
||
AND m.mld_alg_locatie_key NOT IN
|
||
(SELECT l.alg_locatie_key
|
||
FROM prs_perslid p,
|
||
alg_locatie l,
|
||
alg_locatie l2,
|
||
prs_v_werkplekperslid_gegevens
|
||
pwpg,
|
||
prs_kenmerklink kl
|
||
WHERE pwpg.alg_locatie_key =
|
||
l2.alg_locatie_key
|
||
AND l.alg_district_key =
|
||
l2.alg_district_key
|
||
AND pwpg.prs_perslid_key =
|
||
p.prs_perslid_key
|
||
AND p.prs_srtperslid_key = 32 -- BBer
|
||
AND prs_kenmerk_key = 1100 -- notificatie enable vinkje
|
||
AND prs_kenmerklink_waarde =
|
||
'1'
|
||
AND kl.prs_link_key =
|
||
p.prs_perslid_key
|
||
AND p.prs_perslid_email
|
||
IS NOT NULL
|
||
AND p.prs_perslid_verwijder
|
||
IS NULL)
|
||
UNION ALL
|
||
SELECT m.mld_melding_key,
|
||
'klantsupport@csu.nl',
|
||
mld_melding_status,
|
||
mld_stdmelding_key,
|
||
'Klantsupport' AS functie
|
||
FROM mld_melding m
|
||
WHERE m.mld_stdmelding_key != 41 -- ontvangen berichten
|
||
AND m.mld_stdmelding_key IN
|
||
(SELECT mld_stdmelding_key
|
||
FROM mld_stdmelding
|
||
WHERE mld_stdmelding_default_disc IN
|
||
(1182, 1183) -- Behandelteams RM en RM/PM & BB
|
||
AND mld_stdmelding_verwijder
|
||
IS NULL)
|
||
AND m.mld_alg_locatie_key NOT IN
|
||
(SELECT pwpg.alg_locatie_key
|
||
FROM prs_perslid p,
|
||
prs_v_werkplekperslid_gegevens
|
||
pwpg,
|
||
prs_kenmerklink kl
|
||
WHERE pwpg.alg_locatie_key =
|
||
m.mld_alg_locatie_key
|
||
AND pwpg.prs_perslid_key =
|
||
p.prs_perslid_key
|
||
AND p.prs_srtperslid_key IN
|
||
(4041, 50) -- Objectleider en Rayonmanager
|
||
AND prs_kenmerk_key = 1100 -- notificatie enable vinkje
|
||
AND prs_kenmerklink_waarde =
|
||
'1'
|
||
AND kl.prs_link_key =
|
||
p.prs_perslid_key
|
||
AND p.prs_perslid_email
|
||
IS NOT NULL
|
||
AND p.prs_perslid_verwijder
|
||
IS NULL)) g
|
||
WHERE g.mld_melding_status IN (2,
|
||
3,
|
||
4,
|
||
7) -- Ivm CSUN#59537 moet deze notificatie ook pas wanneer deze bij Backoffice staat (status 2/3/4/7) ipv alleen nog in planning bij Frontoffice (status 0)
|
||
AND mld_stdmelding_key NOT IN
|
||
(SELECT mld_stdmelding_key
|
||
FROM mld_stdmelding
|
||
WHERE mld_stdmeldinggroep_key = 1) -- Geen notificatie
|
||
AND NOT EXISTS
|
||
( SELECT MAX (fac_tracking_key)
|
||
FROM fac_tracking t
|
||
WHERE ( ( ( fac_tracking_oms LIKE
|
||
'Gemaild naar BBer:%'
|
||
OR fac_tracking_oms LIKE
|
||
'Gemaild naar Rayonmanager:%'
|
||
OR fac_tracking_oms LIKE
|
||
'Gemaild naar Objectleider:%'
|
||
OR fac_tracking_oms LIKE
|
||
'Gemaild naar Klantsupport:%')
|
||
AND fac_srtnotificatie_key =
|
||
111) -- MLDMAI
|
||
OR ( UPPER (fac_tracking_oms) LIKE
|
||
'%PLAATS:%'
|
||
AND fac_srtnotificatie_key =
|
||
41)) -- MLDUPD
|
||
AND t.fac_srtnotificatie_key = 111
|
||
AND t.fac_tracking_refkey =
|
||
g.mld_melding_key
|
||
GROUP BY fac_tracking_refkey)) x;
|
||
|
||
v_dummy VARCHAR2 (128);
|
||
v_pattach VARCHAR2 (4000);
|
||
BEGIN
|
||
-- stuur de notificatie ook naar het emailadres kenmerk.
|
||
INSERT INTO fac_notificatie (fac_srtnotificatie_key,
|
||
fac_notificatie_status,
|
||
fac_notificatie_receiver_email,
|
||
fac_notificatie_oms,
|
||
fac_notificatie_refkey,
|
||
fac_notificatie_prioriteit,
|
||
fac_notificatie_datum,
|
||
fac_notificatie_sender_email,
|
||
fac_notificatie_lang,
|
||
prs_perslid_key_sender)
|
||
SELECT DISTINCT n.fac_srtnotificatie_key,
|
||
2, -- e-mail
|
||
mld_kenmerkmelding_waarde,
|
||
fac_notificatie_oms,
|
||
fac_notificatie_refkey,
|
||
fac_notificatie_prioriteit,
|
||
fac_notificatie_datum,
|
||
fac_notificatie_sender_email,
|
||
fac_notificatie_lang,
|
||
prs_perslid_key_sender
|
||
FROM fac_notificatie n,
|
||
fac_srtnotificatie sn,
|
||
mld_kenmerkmelding km,
|
||
mld_kenmerk k,
|
||
mld_melding m,
|
||
prs_perslid p
|
||
WHERE n.fac_srtnotificatie_key = sn.fac_srtnotificatie_key
|
||
AND ( sn.fac_srtnotificatie_code = 'MLDAFM'
|
||
OR sn.fac_srtnotificatie_code = 'MLDUPD'
|
||
OR sn.fac_srtnotificatie_code = 'MLDREJ')
|
||
AND BITAND (fac_notificatie_status, 2) = 2 -- Alleen als het een e-mail notificatie was
|
||
AND km.mld_melding_key = m.mld_melding_key
|
||
AND m.prs_perslid_key_voor = p.prs_perslid_key
|
||
AND UPPER (mld_kenmerkmelding_waarde) <>
|
||
UPPER (p.prs_perslid_email)
|
||
AND n.fac_notificatie_refkey = km.mld_melding_key
|
||
AND km.mld_kenmerk_key = k.mld_kenmerk_key
|
||
AND k.mld_srtkenmerk_key = 1 -- email notificatie
|
||
AND NOT EXISTS --CSUN#79474: Mocht putorders vastlopen, niet onbedoelde (exponentiele) dubbelingen
|
||
(SELECT x.fac_notificatie_refkey
|
||
FROM fac_notificatie x
|
||
WHERE x.fac_srtnotificatie_key =
|
||
sn.fac_srtnotificatie_key
|
||
AND x.fac_notificatie_refkey =
|
||
n.fac_notificatie_refkey
|
||
AND x.prs_perslid_key_receiver IS NULL);
|
||
|
||
FOR rec IN c
|
||
LOOP
|
||
BEGIN
|
||
v_pattach := NULL;
|
||
|
||
IF rec.prs_perslid_email IS NOT NULL
|
||
THEN
|
||
SELECT LISTAGG (fac_bijlagen_key, '|')
|
||
WITHIN GROUP (ORDER BY fac_bijlagen_key)
|
||
INTO v_pattach
|
||
FROM fac_bijlagen
|
||
WHERE fac_bijlagen_refkey = rec.mld_melding_key
|
||
AND fac_bijlagen_module = 'MLD'
|
||
AND fac_bijlagen_verwijder IS NULL;
|
||
|
||
fac.putnotificationsrtprio (
|
||
NULL,
|
||
NULL,
|
||
'MLDMAI',
|
||
rec.mld_melding_key,
|
||
'BB: Melding '
|
||
|| rec.mld_melding_key
|
||
|| ' is aan u ('
|
||
|| rec.functie
|
||
|| ') in behandeling gegeven',
|
||
2,
|
||
rec.prs_perslid_email,
|
||
NULL,
|
||
NULL,
|
||
2,
|
||
NULL,
|
||
v_pattach);
|
||
fac.trackaction (
|
||
'MLDMAI',
|
||
rec.mld_melding_key,
|
||
4,
|
||
NULL,
|
||
'Gemaild naar '
|
||
|| rec.functie
|
||
|| ': '
|
||
|| rec.prs_perslid_email);
|
||
ELSE
|
||
fac.trackaction (
|
||
'MLDMAI',
|
||
rec.mld_melding_key,
|
||
4,
|
||
NULL,
|
||
'Gemaild naar '
|
||
|| rec.functie
|
||
|| ': <Geen info gevonden>');
|
||
END IF;
|
||
END;
|
||
END LOOP;
|
||
|
||
-- Op verzoek van SVB worden mail notificaties naar een mailadres dat bij de locatie geconfigureerd is gestuurd.
|
||
UPDATE fac_notificatie n
|
||
SET prs_perslid_key_receiver = NULL,
|
||
fac_notificatie_receiver_email =
|
||
(SELECT aogk.alg_onrgoedkenmerk_waarde
|
||
FROM alg_onrgoedkenmerk aogk, mld_melding m
|
||
WHERE aogk.alg_onrgoed_key = m.mld_alg_locatie_key
|
||
AND aogk.alg_kenmerk_key = 1320 -- alternatief email adres.
|
||
AND n.fac_notificatie_refkey = m.mld_melding_key)
|
||
WHERE EXISTS
|
||
(SELECT sn.fac_srtnotificatie_key
|
||
FROM fac_srtnotificatie sn,
|
||
mld_melding m,
|
||
alg_onrgoedkenmerk aogk
|
||
WHERE n.fac_srtnotificatie_key =
|
||
sn.fac_srtnotificatie_key
|
||
AND sn.fac_srtnotificatie_xmlnode = 'melding'
|
||
AND fac_notificatie_oms NOT LIKE 'BB: %'
|
||
AND fac_notificatie_oms NOT LIKE 'Rayonmanager: %'
|
||
AND fac_notificatie_oms NOT LIKE 'Objectleider: %'
|
||
AND ( sn.fac_srtnotificatie_code = 'MLDNEW'
|
||
OR sn.fac_srtnotificatie_code = 'MLDAFM'
|
||
OR sn.fac_srtnotificatie_code = 'MLDACP'
|
||
OR sn.fac_srtnotificatie_code = 'MLDAFR'
|
||
OR sn.fac_srtnotificatie_code = 'MLDUPD'
|
||
OR sn.fac_srtnotificatie_code = 'MLDREJ')
|
||
AND fac_notificatie_refkey = m.mld_melding_key
|
||
AND m.mld_alg_locatie_key = aogk.alg_onrgoed_key
|
||
AND aogk.alg_kenmerk_key = 1320);
|
||
|
||
COMMIT;
|
||
END;
|
||
/
|
||
|
||
|
||
CREATE OR REPLACE PACKAGE csun
|
||
AS
|
||
FUNCTION convert_esc (p_str VARCHAR2)
|
||
RETURN VARCHAR2;
|
||
|
||
PROCEDURE mld_after_insert (p_key IN NUMBER);
|
||
END;
|
||
/
|
||
|
||
CREATE OR REPLACE PACKAGE BODY csun
|
||
AS
|
||
FUNCTION convert_esc (p_str VARCHAR2)
|
||
RETURN VARCHAR2
|
||
AS
|
||
v_str VARCHAR2 (4000);
|
||
v_pos NUMBER;
|
||
v_chr VARCHAR2 (1);
|
||
v_asc NUMBER;
|
||
v_hex VARCHAR2 (2);
|
||
BEGIN
|
||
v_str := p_str;
|
||
v_pos := INSTR (p_str, '&#x');
|
||
|
||
IF v_pos <> 0
|
||
THEN
|
||
v_hex := SUBSTR (p_str, v_pos + 3, 2);
|
||
v_asc := TO_NUMBER (v_hex, 'XX');
|
||
v_chr := CHR (v_asc);
|
||
v_str := REPLACE (p_str, '&#x' || v_hex || ';', v_chr);
|
||
|
||
IF v_str <> p_str
|
||
THEN
|
||
v_str := convert_esc (v_str);
|
||
END IF;
|
||
END IF;
|
||
|
||
RETURN (v_str);
|
||
END;
|
||
|
||
-- Hook functie die na het invoeren van een melding aangeroepen wordt.
|
||
PROCEDURE mld_after_insert (p_key IN NUMBER)
|
||
AS
|
||
v_melding_status NUMBER;
|
||
v_locatie_key NUMBER;
|
||
v_client NUMBER; -- klantcode
|
||
v_perslid_key NUMBER; -- melder
|
||
v_stdmelding_key_old NUMBER;
|
||
v_stdmelding_key_new NUMBER;
|
||
v_melding_oms_old VARCHAR2(100);
|
||
v_melding_oms_new VARCHAR2(100);
|
||
v_mld_uitvoertijd_old mld_stdmelding.mld_stdmelding_t_uitvoertijd%TYPE;
|
||
v_mld_accepttijd_old mld_stdmelding.mld_stdmelding_t_accepttijd%TYPE;
|
||
v_mld_uitvoertijd_new mld_stdmelding.mld_stdmelding_t_uitvoertijd%TYPE;
|
||
v_mld_accepttijd_new mld_stdmelding.mld_stdmelding_t_accepttijd%TYPE;
|
||
v_melding_omschrijving mld_melding.mld_melding_omschrijving%TYPE;
|
||
v_melding_onderwerp mld_melding.mld_melding_onderwerp%TYPE;
|
||
v_melding_einddatum_std DATE;
|
||
v_melding_acceptdatum_std DATE;
|
||
v_melding_einddatum_old DATE;
|
||
v_melding_datum DATE;
|
||
v_dienst_key NUMBER(10);
|
||
v_typeopdr_key NUMBER(10);
|
||
v_bedrijf_key NUMBER(10);
|
||
v_opdr_key NUMBER(10);
|
||
v_stdmelding_autoorder mld_stdmelding.mld_stdmelding_autoorder%TYPE;
|
||
v_locatie_change NUMBER(1);
|
||
v_melding_cat VARCHAR2(400);
|
||
v_locatie_code VARCHAR2(100);
|
||
v_locatie VARCHAR2(100);
|
||
v_gebouw_code VARCHAR2(100);
|
||
v_errormsg VARCHAR2(100);
|
||
BEGIN
|
||
v_errormsg := 'Ophalen meldinggegevens';
|
||
BEGIN
|
||
v_locatie_change := 0;
|
||
|
||
SELECT mld_melding_status, mld_alg_locatie_key, prs_perslid_key, mld_stdmelding_key, mld_melding_einddatum, mld_melding_datum, mld_melding_omschrijving
|
||
INTO v_melding_status, v_locatie_key, v_perslid_key, v_stdmelding_key_old, v_melding_einddatum_old, v_melding_datum, v_melding_omschrijving
|
||
FROM mld_melding
|
||
WHERE mld_melding_key = p_key;
|
||
|
||
BEGIN
|
||
SELECT fac.safe_to_number (prs_kenmerklink_waarde)
|
||
INTO v_client
|
||
FROM prs_kenmerklink
|
||
WHERE prs_kenmerk_key = 1080 AND prs_link_key = v_perslid_key;
|
||
EXCEPTION WHEN NO_DATA_FOUND
|
||
THEN
|
||
v_client := NULL;
|
||
END;
|
||
|
||
-- Nu gaan we kijken of we de melding aan een locatie kunnen koppelen
|
||
-- Hiervoor hebben we een locatiecode en gebouwcode bij de mail melding
|
||
-- Bij sommige klanten is de gebouwcode gevuld en bij sommige de locatiecode
|
||
v_errormsg := 'Bepalen locatie';
|
||
SELECT mld_kenmerkmelding_waarde
|
||
INTO v_locatie_code
|
||
FROM ( SELECT mld_kenmerkmelding_waarde, mld_melding_key
|
||
FROM mld_kenmerkmelding km,
|
||
mld_kenmerk k
|
||
WHERE k.mld_srtkenmerk_key = 181 -- Klant locatiecode
|
||
AND km.mld_kenmerk_key = k.mld_kenmerk_key) kl,
|
||
mld_melding m
|
||
WHERE m.mld_melding_key = kl.mld_melding_key(+)
|
||
AND m.mld_melding_key = p_key;
|
||
|
||
SELECT mld_kenmerkmelding_waarde
|
||
INTO v_gebouw_code
|
||
FROM ( SELECT mld_kenmerkmelding_waarde, mld_melding_key
|
||
FROM mld_kenmerkmelding km,
|
||
mld_kenmerk k
|
||
WHERE k.mld_srtkenmerk_key = 201 -- Klant gebouwcode
|
||
AND km.mld_kenmerk_key = k.mld_kenmerk_key) kg,
|
||
mld_melding m
|
||
WHERE m.mld_melding_key = kg.mld_melding_key(+)
|
||
AND m.mld_melding_key = p_key;
|
||
|
||
IF v_locatie_key = 28581 AND v_client IS NOT NULL -- Locatie key van locatie ONBEKEND
|
||
THEN
|
||
BEGIN
|
||
IF v_client = 462 -- pilot voor RWS
|
||
OR v_client = 241 -- Arcadis
|
||
OR v_client = 801 -- PostNL Pakket
|
||
OR v_client = 344 -- ABN Amro
|
||
OR v_client = 381 -- Mayfield
|
||
OR v_client = 301 -- Humanitas
|
||
OR v_client = 382 -- KPN Retail
|
||
OR v_client = 321 -- Tennet
|
||
OR v_client = 602 -- KPMG Meijburg
|
||
OR v_client = 601 -- KPMG
|
||
OR v_client = 701 -- Sanquin
|
||
THEN
|
||
SELECT alg_locatie_key
|
||
INTO v_locatie_key
|
||
FROM alg_locatie l,
|
||
mld_kenmerkmelding km,
|
||
mld_kenmerk k,
|
||
alg_onrgoedkenmerk aogkk,
|
||
alg_onrgoedkenmerk aogkc
|
||
WHERE k.mld_srtkenmerk_key = 181 -- Klant locatiecode
|
||
AND k.mld_kenmerk_key = km.mld_kenmerk_key
|
||
AND km.mld_melding_key = p_key
|
||
AND UPPER (trim(aogkk.alg_onrgoedkenmerk_waarde)) =
|
||
UPPER (km.mld_kenmerkmelding_waarde)
|
||
AND aogkk.alg_onrgoed_key = l.alg_locatie_key
|
||
AND l.alg_locatie_verwijder is null
|
||
AND aogkk.alg_kenmerk_key = 1203 -- Klant locatiecode
|
||
AND fac.safe_to_number (aogkc.alg_onrgoedkenmerk_waarde) = v_client
|
||
AND aogkc.alg_onrgoed_key = l.alg_locatie_key
|
||
AND aogkc.alg_kenmerk_key = 1000; -- Client
|
||
ELSIF v_client = 621 -- DB Schenker
|
||
OR v_client = 641 -- Alliance
|
||
OR v_client = 841 -- KPN (Yask)
|
||
OR v_client = 902 -- Hudson Bay
|
||
or v_client = 1262 -- Volksbank
|
||
THEN
|
||
SELECT alg_locatie_key
|
||
INTO v_locatie_key
|
||
FROM alg_locatie l,
|
||
mld_kenmerkmelding km,
|
||
mld_kenmerk k,
|
||
alg_onrgoedkenmerk aogkk,
|
||
alg_onrgoedkenmerk aogkc
|
||
WHERE k.mld_srtkenmerk_key = 201 -- Klant gebouwcode
|
||
AND k.mld_kenmerk_key = km.mld_kenmerk_key
|
||
AND km.mld_melding_key = p_key
|
||
AND UPPER (trim(aogkk.alg_onrgoedkenmerk_waarde)) =
|
||
UPPER (km.mld_kenmerkmelding_waarde)
|
||
AND aogkk.alg_onrgoed_key = l.alg_locatie_key
|
||
AND l.alg_locatie_verwijder is null
|
||
AND aogkk.alg_kenmerk_key = 1203 -- Klant locatiecode
|
||
AND fac.safe_to_number (aogkc.alg_onrgoedkenmerk_waarde) = v_client
|
||
AND aogkc.alg_onrgoed_key = l.alg_locatie_key
|
||
AND aogkc.alg_kenmerk_key = 1000; -- Client
|
||
END IF;
|
||
|
||
DBMS_OUTPUT.put_line (v_locatie_key);
|
||
|
||
UPDATE mld_melding
|
||
SET mld_alg_locatie_key = v_locatie_key
|
||
WHERE mld_melding_key = p_key;
|
||
|
||
v_locatie_change := 1;
|
||
EXCEPTION
|
||
WHEN OTHERS
|
||
THEN
|
||
-- Geen geldige locatie gevonden. Dan blijven we op onbekend staan.
|
||
-- 4 - Facilitor
|
||
INSERT INTO mld_melding_note (mld_melding_key,
|
||
prs_perslid_key,
|
||
mld_melding_note_omschrijving)
|
||
VALUES (p_key, 4, v_errormsg || ': ' || v_locatie_code || '-' || v_gebouw_code);
|
||
END;
|
||
END IF;
|
||
|
||
-- Nu gaan we kijken of we ook de stdmelding kunnen invullen. Normaal staat deze op mail.
|
||
-- Via de koppeling wordt het kenmerk meldingcategorie (key 361) gevuld. Dit is de tekst
|
||
-- zoals de klant de melding gekwalificeerd heeft. In de eigen tabel 'Map klantmelding' wordt deze
|
||
-- vertaald naar een stdmelding_key.
|
||
v_errormsg := 'Bepalen stdmelding';
|
||
SELECT MAX(mld_kenmerkmelding_waarde)
|
||
INTO v_melding_cat
|
||
FROM mld_kenmerkmelding km
|
||
WHERE km.mld_melding_key = p_key
|
||
AND km.mld_kenmerk_key = 361;
|
||
|
||
-- CSUN#54801 Wanneer geen locatie bij mailmeldingen, dan ook niet de vakgroep herbepalen. Vervolgens notificatie.
|
||
IF v_locatie <> 28581 AND v_locatie IS NOT NULL AND v_melding_cat IS NOT NULL -- Locatie key van locatie ONBEKEND
|
||
THEN
|
||
BEGIN
|
||
v_errormsg := 'Bepalen stdmelding (zoek in eigen tabel)';
|
||
SELECT fac_usrdata_volgnr
|
||
INTO v_stdmelding_key_new
|
||
FROM fac_usrdata ud
|
||
WHERE ud.fac_usrdata_parentkey = v_client
|
||
AND ud.fac_usrtab_key = 101
|
||
AND UPPER(ud.fac_usrdata_omschr) = UPPER(SUBSTR(v_melding_cat,1,60));
|
||
|
||
IF v_stdmelding_key_new <> v_stdmelding_key_old
|
||
THEN
|
||
v_errormsg := 'Bepalen stdmelding (ophalen omschrijving nieuwe melding)';
|
||
SELECT ins_discipline_omschrijving || '/' || mld_stdmelding_omschrijving, mld_stdmelding_t_uitvoertijd, mld_stdmelding_t_accepttijd
|
||
INTO v_melding_oms_new, v_mld_uitvoertijd_new, v_mld_accepttijd_new
|
||
FROM mld_stdmelding std,
|
||
ins_tab_discipline d
|
||
WHERE std.mld_stdmelding_key = v_stdmelding_key_new
|
||
AND std.mld_ins_discipline_key = d.ins_discipline_key;
|
||
|
||
v_errormsg := 'Bepalen stdmelding (ophalen omschrijving oude melding)';
|
||
SELECT ins_discipline_omschrijving || '/' || mld_stdmelding_omschrijving, mld_stdmelding_t_uitvoertijd, mld_stdmelding_t_accepttijd
|
||
INTO v_melding_oms_old, v_mld_uitvoertijd_old, v_mld_accepttijd_old
|
||
FROM mld_stdmelding std,
|
||
ins_tab_discipline d
|
||
WHERE std.mld_stdmelding_key = v_stdmelding_key_old
|
||
AND std.mld_ins_discipline_key = d.ins_discipline_key;
|
||
|
||
v_errormsg := 'Bepalen stdmelding (pas stdmeldingkey aan)';
|
||
UPDATE mld_melding SET mld_stdmelding_key = v_stdmelding_key_new,
|
||
mld_melding_t_uitvoertijd = v_mld_uitvoertijd_new,
|
||
mld_melding_t_accepttijd = v_mld_accepttijd_new
|
||
WHERE mld_melding_key = p_key;
|
||
|
||
v_errormsg := 'Bepalen stdmelding (bepaal einddatum en accept)';
|
||
SELECT mld.geteinddatum(mld_melding_key), mld.getacceptdatum (mld_melding_datum, mld_stdmelding_key, NULL)
|
||
INTO v_melding_einddatum_std, v_melding_acceptdatum_std
|
||
FROM mld_melding
|
||
WHERE mld_melding_key = p_key;
|
||
|
||
v_errormsg := 'Bepalen stdmelding (pas std tijden aan)';
|
||
UPDATE mld_melding SET mld_melding_einddatum_std = v_melding_einddatum_std,
|
||
mld_melding_acceptdatum_std = v_melding_acceptdatum_std
|
||
WHERE mld_melding_key = p_key;
|
||
|
||
v_errormsg := 'Bepalen stdmelding (update tracking)';
|
||
fac.trackaction('MLDUPD', p_key, 4, NULL, 'Melding M' || p_key || ' (' || v_melding_oms_new ||') is gewijzigd' || CHR(10) ||
|
||
'Melding: ' || v_melding_oms_old || ' --> ' || v_melding_oms_new || CHR(10) ||
|
||
'Gereed: ' || TO_CHAR(v_melding_einddatum_old, 'dd-mm-yyyy hh24:mi') || ' --> ' || TO_CHAR(v_melding_einddatum_std, 'dd-mm-yyyy hh24:mi'));
|
||
|
||
END IF;
|
||
EXCEPTION
|
||
WHEN OTHERS
|
||
THEN
|
||
-- Waarschijnlijk iets fout gegaan in de configuratie. Locatie wordt niet aangepast.
|
||
INSERT INTO mld_melding_note (mld_melding_key,
|
||
prs_perslid_key,
|
||
mld_melding_note_omschrijving)
|
||
VALUES (p_key, 4, v_errormsg || ': ' || v_locatie_code || '-' || v_gebouw_code || '-' || v_melding_cat);
|
||
END;
|
||
END IF;
|
||
|
||
BEGIN
|
||
-- Nu kijken of we automatisch een opdracht kunnen aanmaken.
|
||
IF v_locatie_change = 1 AND v_stdmelding_key_old = 41 AND v_stdmelding_key_new <> 41 -- 41 = Ontvangen mail.
|
||
THEN
|
||
SELECT mld_stdmelding_autoorder,
|
||
ms.prs_dienst_key,
|
||
ms.mld_typeopdr_key
|
||
INTO v_stdmelding_autoorder,
|
||
v_dienst_key,
|
||
v_typeopdr_key
|
||
FROM mld_stdmelding ms
|
||
WHERE mld_stdmelding_key = v_stdmelding_key_new;
|
||
|
||
-- Heb ik genoeg informatie om een opdracht aan te kunnen maken.
|
||
IF v_stdmelding_autoorder = 1 AND v_dienst_key IS NOT NULL AND v_typeopdr_key IS NOT NULL
|
||
THEN
|
||
SELECT MIN (bdl.prs_bedrijf_key)
|
||
INTO v_bedrijf_key
|
||
FROM prs_bedrijfdienstlocatie bdl, prs_v_aanwezigbedrijf b
|
||
WHERE bdl.prs_bedrijf_key = b.prs_bedrijf_key
|
||
AND bdl.prs_dienst_key = v_dienst_key
|
||
AND (bdl.alg_locatie_key = v_locatie_key OR bdl.alg_locatie_key IS NULL);
|
||
|
||
IF v_bedrijf_key IS NOT NULL
|
||
THEN
|
||
mld.setmeldingstatus(p_key, 4, v_perslid_key);
|
||
|
||
INSERT INTO mld_opdr (mld_uitvoerende_keys,
|
||
mld_opdr_kosten,
|
||
mld_opdr_uurloon,
|
||
mld_melding_key,
|
||
mld_opdr_module,
|
||
mld_opdr_bedrijfopdr_volgnr,
|
||
mld_opdr_datumbegin,
|
||
mld_opdr_einddatum,
|
||
mld_typeopdr_key,
|
||
prs_perslid_key,
|
||
mld_opdr_omschrijving,
|
||
mld_opdr_uren,
|
||
mld_opdr_teverzenden)
|
||
VALUES (v_bedrijf_key,
|
||
0,
|
||
0,
|
||
p_key,
|
||
'MLD',
|
||
mld.bepaalopdrmeldingvolgnr (p_key),
|
||
v_melding_datum,
|
||
v_melding_einddatum_std,
|
||
v_typeopdr_key,
|
||
v_perslid_key,
|
||
v_melding_onderwerp || CHR(10) || v_melding_omschrijving,
|
||
0,
|
||
1)
|
||
RETURNING mld_opdr_key INTO v_opdr_key;
|
||
|
||
mld.setopdrachtstatus(v_opdr_key, 5, v_perslid_key); -- Uitgegeven
|
||
|
||
mld.updatemeldingstatus (p_key, 0, v_perslid_key);
|
||
|
||
END IF;
|
||
END IF;
|
||
END IF;
|
||
EXCEPTION WHEN OTHERS
|
||
THEN
|
||
-- Waarschijnlijk iets fout gegaan in de configuratie. Opdracht wordt niet aangemaakt.
|
||
INSERT INTO mld_melding_note (mld_melding_key,
|
||
prs_perslid_key,
|
||
mld_melding_note_omschrijving)
|
||
VALUES (p_key, 4, 'Opdracht kan niet aangemaakt worden: ' || v_errormsg || ': ' || v_locatie_code || '-' || v_gebouw_code || '-' || v_melding_cat);
|
||
END;
|
||
EXCEPTION
|
||
WHEN OTHERS
|
||
THEN
|
||
-- Waarschijnlijk iets fout gegaan in de configuratie. Locatie wordt niet aangepast.
|
||
INSERT INTO mld_melding_note (mld_melding_key,
|
||
prs_perslid_key,
|
||
mld_melding_note_omschrijving)
|
||
VALUES (p_key, 4, v_errormsg || ': ' || v_locatie_code || '-' || v_gebouw_code || '-' || v_melding_cat);
|
||
END;
|
||
END;
|
||
END;
|
||
/
|
||
|
||
CREATE OR REPLACE FUNCTION csun_get_html_valuepair (p_text IN VARCHAR2,
|
||
p_start IN VARCHAR2,
|
||
p_eind IN VARCHAR2)
|
||
RETURN VARCHAR2
|
||
AS
|
||
v_pos NUMBER;
|
||
v_pos_begin NUMBER;
|
||
v_pos_eind NUMBER;
|
||
v_result VARCHAR2(4000);
|
||
BEGIN
|
||
-- controleer of de begintag aanwezig is. Zo nee, dan hebben we niets te tonen.
|
||
v_pos := INSTR (p_text, p_start);
|
||
|
||
--dbms_output.put_line('v_pos start:' || v_pos);
|
||
IF v_pos = 0
|
||
THEN
|
||
RETURN NULL;
|
||
END IF;
|
||
|
||
|
||
v_pos_begin :=
|
||
INSTR (p_text, CHR (10) || CHR (13) || p_start || CHR (10) || CHR (13))
|
||
+ LENGTH (p_start)
|
||
+ 4;
|
||
--dbms_output.put_line('v_pos_begin:' || v_pos_begin);
|
||
|
||
-- controleer of de eindtag aanwezig is. Zo nee, dan gaan we opzoek naar de volgende.
|
||
v_pos := INSTR (p_text, p_eind);
|
||
|
||
--dbms_output.put_line('v_pos eind:' || v_pos);
|
||
IF v_pos = 0
|
||
THEN
|
||
v_pos_eind :=
|
||
INSTR (p_text,
|
||
CHR (10) || CHR (13),
|
||
v_pos_begin,
|
||
1);
|
||
ELSE
|
||
v_pos_eind :=
|
||
INSTR (p_text,
|
||
CHR (10) || CHR (13) || p_eind || CHR (10) || CHR (13));
|
||
END IF;
|
||
|
||
-- dbms_output.put_line('v_pos_eind:' || v_pos_eind);
|
||
v_result := p_start
|
||
|| ': '
|
||
|| SUBSTR (p_text, v_pos_begin, v_pos_eind - v_pos_begin);
|
||
|
||
-- Soms wordt een tag niet gevonden. Dan wordt de hele body inclusief CSS meegestuurd.
|
||
-- Dat willen we natuurlijk niet. Daarom maken we daar maar een lege tag van.
|
||
IF LENGTH(v_result) > 1000
|
||
THEN
|
||
v_result := p_start || ':';
|
||
END IF;
|
||
|
||
RETURN v_result;
|
||
END;
|
||
/
|
||
|
||
CREATE OR REPLACE PROCEDURE csun_processemail (pfrom IN VARCHAR2,
|
||
pto IN VARCHAR2,
|
||
psubject IN VARCHAR2,
|
||
pbody IN VARCHAR2,
|
||
psessionid IN VARCHAR2,
|
||
pemailkey IN NUMBER)
|
||
AS
|
||
sender prs_perslid.prs_perslid_key%TYPE;
|
||
kostenplaats prs_afdeling.prs_kostenplaats_key%TYPE;
|
||
mldkey mld_melding.mld_melding_key%TYPE;
|
||
stdmelding mld_stdmelding.mld_stdmelding_key%TYPE;
|
||
subject_regexp fac_setting.fac_setting_default%TYPE;
|
||
kkey mld_kenmerk.mld_kenmerk_key%TYPE;
|
||
errormsg fac_result.fac_result_waarde%TYPE;
|
||
behandelaar_key mld_melding.mld_melding_behandelaar_key%TYPE;
|
||
mldnum VARCHAR2 (4000);
|
||
srtdisc VARCHAR2 (4000);
|
||
cnt NUMBER (10);
|
||
v_flag_on_fenote NUMBER (10);
|
||
v_flag_on_bonote NUMBER (10);
|
||
v_from VARCHAR2 (4000);
|
||
v_body VARCHAR2 (4000);
|
||
m_body VARCHAR2 (4000);
|
||
v_locatie_code VARCHAR2 (1000); -- om te voorkomen dat we foutmeldingen krijgen als de locatie niet bepaald kan worden.
|
||
v_pos NUMBER;
|
||
v_externnr VARCHAR2 (1000);
|
||
v_omschrijving_ruimte VARCHAR2(1000);
|
||
v_client NUMBER;
|
||
v_new NUMBER; -- vlag om te testen of het om een nieuwe melding gaat.
|
||
BEGIN
|
||
fac.writelog ('PROCESSEMAIL#80929',
|
||
'I',
|
||
'Step 1',
|
||
TO_CHAR (SYSTIMESTAMP, 'HH24:MI:SS.FF'));
|
||
|
||
v_new := 0;
|
||
errormsg := '(0x143)';
|
||
v_externnr := NULL;
|
||
|
||
-- Verwijder de Bounce Address Tag Validation
|
||
IF pfrom LIKE 'prvs=%'
|
||
THEN
|
||
v_from := SUBSTR (pfrom, INSTR (pfrom, '=', -1) + 1);
|
||
ELSE
|
||
v_from := pfrom;
|
||
END IF;
|
||
|
||
v_body := pbody;
|
||
m_body := pbody;
|
||
|
||
-- DBMS_OUTPUT.PUT_LINE('v_from: '||v_from);
|
||
|
||
-- Valideer de sender in pfrom: kennen we deze?
|
||
SELECT MIN (prs_perslid_key), MIN (d.prs_kostenplaats_key)
|
||
INTO sender, kostenplaats
|
||
FROM prs_perslid p, prs_afdeling d
|
||
WHERE p.prs_afdeling_key = d.prs_afdeling_key
|
||
AND prs_perslid_verwijder IS NULL
|
||
AND
|
||
--(UPPER (prs_perslid_email) = UPPER (v_from) OR --CSUN#76149: Niet meer kijken naar prs_perslid_email
|
||
EXISTS
|
||
(SELECT *
|
||
FROM prs_kenmerklink kl
|
||
WHERE prs_kenmerk_key = 1020
|
||
AND prs_link_key = p.prs_perslid_key
|
||
AND UPPER (kl.prs_kenmerklink_waarde) = UPPER (v_from));
|
||
|
||
fac.writelog ('PROCESSEMAIL#80929',
|
||
'I',
|
||
'Sender ' || sender,
|
||
TO_CHAR (SYSTIMESTAMP, 'HH24:MI:SS.FF'));
|
||
|
||
BEGIN
|
||
SELECT fac.safe_to_number (prs_kenmerklink_waarde)
|
||
INTO v_client
|
||
FROM prs_kenmerklink
|
||
WHERE prs_kenmerk_key = 1080 AND prs_link_key = sender;
|
||
EXCEPTION WHEN NO_DATA_FOUND
|
||
THEN
|
||
v_client := NULL;
|
||
END;
|
||
|
||
fac.writelog ('PROCESSEMAIL#80929',
|
||
'I',
|
||
'v_client ' || v_client,
|
||
TO_CHAR (SYSTIMESTAMP, 'HH24:MI:SS.FF'));
|
||
|
||
CASE
|
||
WHEN UPPER (pto) LIKE 'SERVICEDESK@%' OR UPPER (pto) LIKE 'DJI@%' OR UPPER (pto) LIKE 'KLANTSUPPORT@%'
|
||
THEN
|
||
errormsg := '(0x145)';
|
||
|
||
BEGIN
|
||
-- bij abnamro gaan we de html body nog even opschonen
|
||
IF sender = 23
|
||
THEN
|
||
-- pas de omschrijving van de melding aan. Verwijder onnodige html ballast.
|
||
v_body := REPLACE(v_body, ' ', ' '); -- spatie
|
||
v_body := REPLACE(v_body, '!', '!');
|
||
v_body := REPLACE(v_body, '"', CHR(34)); -- double quote
|
||
v_body := REPLACE(v_body, '#', '#');
|
||
v_body := REPLACE(v_body, '$', '$');
|
||
v_body := REPLACE(v_body, '%', '%');
|
||
v_body := REPLACE(v_body, '&', '&');
|
||
v_body := REPLACE(v_body, ''', CHR(39)); -- single quote
|
||
v_body := REPLACE(v_body, '(', '(');
|
||
v_body := REPLACE(v_body, ')', ')');
|
||
v_body := REPLACE(v_body, '*', '*');
|
||
v_body := REPLACE(v_body, '+', '+');
|
||
v_body := REPLACE(v_body, ',', ','); -- komma
|
||
v_body := REPLACE(v_body, '-', '-'); -- min teken
|
||
v_body := REPLACE(v_body, '.', '.'); -- punt
|
||
v_body := REPLACE(v_body, '/', '/');
|
||
v_body := REPLACE(v_body, ':', ':'); -- dubbele punt
|
||
v_body := REPLACE(v_body, ';', ';'); -- punt komma
|
||
v_body := REPLACE(v_body, '<', '<');
|
||
v_body := REPLACE(v_body, '=', '=');
|
||
v_body := REPLACE(v_body, '>', '>');
|
||
v_body := REPLACE(v_body, '?', '?');
|
||
v_body := REPLACE(v_body, '@', '@');
|
||
v_body := REPLACE(v_body, ' ' || CHR (10) || CHR (13), CHR (10) || CHR (13)); -- soms komt er ineens een een spatie achter de tag.
|
||
-- gaat het om een normale werkbon, dan is v_pos > 0; anders gaat het om een klacht.
|
||
v_pos := INSTR (v_body, '--> Werkbon');
|
||
|
||
IF v_pos = 0
|
||
THEN
|
||
v_omschrijving_ruimte := csun_get_html_valuepair (v_body,
|
||
'Omschrijving ruimte',
|
||
'Klacht! Wat moet je doen?');
|
||
ELSE
|
||
v_omschrijving_ruimte := csun_get_html_valuepair (v_body,
|
||
'Omschrijving ruimte',
|
||
'Met vriendelijke groet');
|
||
END IF;
|
||
|
||
v_externnr := csun_get_html_valuepair (v_body,
|
||
'Aanvraagnr.',
|
||
'Omschrijving aanvraag');
|
||
m_body :=
|
||
csun_get_html_valuepair (v_body,
|
||
'Naam',
|
||
'Telefoonnr.')
|
||
|| CHR (10)
|
||
|| csun_get_html_valuepair (v_body,
|
||
'Telefoonnr.',
|
||
'Mobiel nr.')
|
||
|| CHR (10)
|
||
|| csun_get_html_valuepair (v_body,
|
||
'Mobiel nr.',
|
||
'E-mail')
|
||
|| CHR (10)
|
||
|| csun_get_html_valuepair (v_body,
|
||
'E-mail',
|
||
'Melddatum')
|
||
|| CHR (10)
|
||
|| csun_get_html_valuepair (v_body,
|
||
'Melddatum',
|
||
'Aanvraagnr.')
|
||
|| CHR (10)
|
||
|| csun_get_html_valuepair (v_body,
|
||
'Aanvraagnr.',
|
||
'Omschrijving aanvraag')
|
||
|| CHR (10)
|
||
|| csun_get_html_valuepair (v_body,
|
||
'Omschrijving aanvraag',
|
||
'Toelichting')
|
||
|| CHR (10)
|
||
|| csun_get_html_valuepair (v_body,
|
||
'Toelichting',
|
||
'Object')
|
||
|| CHR (10)
|
||
|| csun_get_html_valuepair (v_body,
|
||
'Object',
|
||
'Postcode')
|
||
|| CHR (10)
|
||
|| csun_get_html_valuepair (v_body,
|
||
'Postcode',
|
||
'Plaats')
|
||
|| CHR (10)
|
||
|| csun_get_html_valuepair (v_body,
|
||
'Plaats',
|
||
'Omschrijving ruimte')
|
||
|| CHR (10)
|
||
|| v_omschrijving_ruimte;
|
||
|
||
-- zoek de locatie
|
||
v_locatie_code := csun_get_html_valuepair (v_body, 'Object', 'Postcode');
|
||
v_locatie_code := SUBSTR(v_locatie_code, 9, INSTR(v_locatie_code, ' ',1,2)-9);
|
||
END IF;
|
||
|
||
-- bij Engie gaan we de html body nog even opschonen
|
||
IF sender = 23221
|
||
THEN
|
||
-- pas de omschrijving van de melding aan. Verwijder onnodige html ballast.
|
||
v_body := REPLACE(v_body, ' ', ' '); -- spatie
|
||
v_body := REPLACE(v_body, '!', '!');
|
||
v_body := REPLACE(v_body, '"', CHR(34)); -- double quote
|
||
v_body := REPLACE(v_body, '#', '#');
|
||
v_body := REPLACE(v_body, '$', '$');
|
||
v_body := REPLACE(v_body, '%', '%');
|
||
v_body := REPLACE(v_body, '&', '&');
|
||
v_body := REPLACE(v_body, ''', CHR(39)); -- single quote
|
||
v_body := REPLACE(v_body, '(', '(');
|
||
v_body := REPLACE(v_body, ')', ')');
|
||
v_body := REPLACE(v_body, '*', '*');
|
||
v_body := REPLACE(v_body, '+', '+');
|
||
v_body := REPLACE(v_body, ',', ','); -- komma
|
||
v_body := REPLACE(v_body, '-', '-'); -- min teken
|
||
v_body := REPLACE(v_body, '.', '.'); -- punt
|
||
v_body := REPLACE(v_body, '/', '/');
|
||
v_body := REPLACE(v_body, ':', ':'); -- dubbele punt
|
||
v_body := REPLACE(v_body, ';', ';'); -- punt komma
|
||
v_body := REPLACE(v_body, '<', '<');
|
||
v_body := REPLACE(v_body, '=', '=');
|
||
v_body := REPLACE(v_body, '>', '>');
|
||
v_body := REPLACE(v_body, '?', '?');
|
||
v_body := REPLACE(v_body, '@', '@');
|
||
v_body := REPLACE(v_body, ' ' || CHR (10) || CHR (13), CHR (10) || CHR (13)); -- soms komt er ineens een een spatie achter de tag.
|
||
END IF;
|
||
|
||
-- Humanitas / KPMG Meijburg heeft de locatiecode ergens in het onderwerp staan
|
||
IF v_client = 301 OR v_client = 602
|
||
THEN
|
||
BEGIN
|
||
SELECT lc.alg_onrgoedkenmerk_waarde
|
||
INTO v_locatie_code
|
||
FROM alg_onrgoedkenmerk lc,
|
||
alg_onrgoedkenmerk cl
|
||
WHERE lc.alg_onrgoed_key = cl.alg_onrgoed_key
|
||
AND lc.alg_kenmerk_key = 1203 -- Klant locatiecode
|
||
AND fac.safe_to_number (cl.alg_onrgoedkenmerk_waarde) = v_client
|
||
AND cl.alg_kenmerk_key = 1000 -- Client
|
||
AND UPPER(psubject) LIKE '%' || UPPER(lc.alg_onrgoedkenmerk_waarde) || '%';
|
||
EXCEPTION WHEN OTHERS
|
||
THEN
|
||
v_locatie_code := NULL;
|
||
END;
|
||
END IF;
|
||
|
||
-- Mayfield bericht bevat een regel als: Betreft locatie : Apeldoorn, Wapenrustlaan 11-31 (NLV03001)
|
||
IF v_client = 381 -- Mayfield
|
||
THEN
|
||
-- eerst de regel vinden
|
||
v_locatie_code := SUBSTR(v_body, INSTR(v_body, 'Betreft locatie'), -- start vd regel
|
||
INSTR(v_body, CHR(13), -- op zoek naar het einde vd regel
|
||
INSTR(v_body, 'Betreft locatie') -- waarbij we beginnen te zoeken aan het begin vd regel
|
||
)-
|
||
INSTR(v_body, 'Betreft locatie')); -- verminderd met het begin vd regel omdat we alleen het verschil mee moeten geven.
|
||
-- nu de locatiecode
|
||
v_locatie_code := SUBSTR(v_locatie_code, INSTR(v_locatie_code, '(')+1, INSTR(v_locatie_code, ')')-1 - (INSTR(v_locatie_code, '(')+1));
|
||
END IF;
|
||
|
||
IF v_client = 601 -- KPMG
|
||
THEN
|
||
-- eerst de regel vinden
|
||
v_locatie_code := SUBSTR(v_body, INSTR(v_body, 'Locatie: '), -- start vd regel
|
||
INSTR(v_body, CHR(13), -- op zoek naar het einde vd regel
|
||
INSTR(v_body, 'Locatie: ') -- waarbij we beginnen te zoeken aan het begin vd regel
|
||
)-
|
||
INSTR(v_body, 'Locatie: ')); -- verminderd met het begin vd regel omdat we alleen het verschil mee moeten geven.
|
||
-- nu de locatiecode
|
||
v_locatie_code := TRIM(SUBSTR(v_locatie_code, 9));
|
||
END IF;
|
||
|
||
-- Bij Sanquin komt de locatie ergens achter de tekst Locatie: te staan
|
||
IF v_client = 701 -- Sanquin
|
||
THEN
|
||
BEGIN
|
||
SELECT lc.alg_onrgoedkenmerk_waarde
|
||
INTO v_locatie_code
|
||
FROM alg_onrgoedkenmerk lc,
|
||
alg_onrgoedkenmerk cl
|
||
WHERE lc.alg_onrgoed_key = cl.alg_onrgoed_key
|
||
AND lc.alg_kenmerk_key = 1203 -- Klant locatiecode
|
||
AND fac.safe_to_number (cl.alg_onrgoedkenmerk_waarde) = v_client
|
||
AND cl.alg_kenmerk_key = 1000 -- Client
|
||
AND UPPER(v_body) LIKE '%LOCATIE: ' || UPPER(lc.alg_onrgoedkenmerk_waarde) || '%';
|
||
EXCEPTION WHEN OTHERS
|
||
THEN
|
||
v_locatie_code := NULL;
|
||
END;
|
||
END IF;
|
||
|
||
|
||
|
||
-- Tennet
|
||
-- Afleveradres: TenneT TSO B.V.
|
||
-- Frankeneng 116
|
||
-- 6716 AA EDE
|
||
IF v_client = 321 -- Tennet
|
||
THEN
|
||
v_pos := INSTR(v_body, 'Afleveradres: TenneT TSO B.V.'); -- We zoeken de postcode onder het afleveradres
|
||
v_pos := INSTR(v_body, CHR(10), v_pos, 2); -- Vervolgens zoeken we de tweede line feed vanaf het afleveradres
|
||
v_locatie_code := UPPER(SUBSTR(v_body, v_pos +1, 7));
|
||
END IF;
|
||
EXCEPTION
|
||
WHEN OTHERS
|
||
THEN
|
||
fac.writelog (
|
||
'PROCESSEMAIL',
|
||
'W',
|
||
'Mail kon niet geformateerd worden afzender:'
|
||
|| pfrom
|
||
|| '['
|
||
|| errormsg
|
||
|| ']',
|
||
'OTHERS (error '
|
||
|| SQLCODE
|
||
|| '/'
|
||
|| SUBSTR (SQLERRM, 1, 100)
|
||
|| ')');
|
||
END;
|
||
|
||
fac.writelog ('PROCESSEMAIL#80929',
|
||
'I',
|
||
'v_locatie_code ' || v_locatie_code,
|
||
TO_CHAR (SYSTIMESTAMP, 'HH24:MI:SS.FF'));
|
||
|
||
|
||
-- append (as a note?) to an existing melding if #key is found in the subject
|
||
-- Alternatief was: scannen van fac_srtnotificatie_oms maar dat voelt ook niet echt lekker
|
||
-- subject_regexp := fac.getsetting ('mld_reply_subject_regexp'); -- [[:alpha:]]*[[:digit:]]{3,}
|
||
subject_regexp := '[[:alpha:]]*[[:digit:]]{3,}';
|
||
mldnum :=
|
||
REGEXP_SUBSTR (psubject,
|
||
subject_regexp,
|
||
1,
|
||
1,
|
||
'i'); -- MA12345
|
||
srtdisc :=
|
||
REGEXP_SUBSTR (mldnum,
|
||
'[[:alpha:]]',
|
||
1,
|
||
1,
|
||
'i'); -- MA
|
||
mldkey := fac.safe_to_number (SUBSTR (mldnum, LENGTH (srtdisc) + 1));
|
||
|
||
fac.writelog ('PROCESSEMAIL#80929',
|
||
'I',
|
||
'mldkey ' || mldkey,
|
||
TO_CHAR (SYSTIMESTAMP, 'HH24:MI:SS.FF'));
|
||
|
||
-- DBMS_OUTPUT.PUT_LINE('mldnum: ' || mldnum);
|
||
-- DBMS_OUTPUT.PUT_LINE('srtdisc: ' || srtdisc);
|
||
-- DBMS_OUTPUT.PUT_LINE('mldkey: ' || mldkey);
|
||
-- We eisen
|
||
-- - Goed meldingnummer
|
||
-- - Goede srtdiscipline
|
||
-- - Afzender is degene voor wie de melding was
|
||
-- suggested extensions: ook collega's toestaan?
|
||
SELECT MIN (mm.mld_stdmelding_key)
|
||
INTO stdmelding
|
||
FROM mld_melding mm,
|
||
mld_stdmelding msm,
|
||
ins_tab_discipline insd,
|
||
ins_srtdiscipline isd
|
||
WHERE mm.mld_melding_key = mldkey
|
||
AND mm.mld_stdmelding_key = msm.mld_stdmelding_key
|
||
AND msm.mld_ins_discipline_key = insd.ins_discipline_key
|
||
AND insd.ins_srtdiscipline_key = isd.ins_srtdiscipline_key
|
||
-- Controle op srtdisc werkt niet goed. Mails worden na binnenkomst namelijk doorgezet
|
||
-- naar de definitieve stdmelding(/discipline/srtdiscpline) en daarmee verandert de
|
||
-- prefix letter
|
||
--AND isd.ins_srtdiscipline_prefix = srtdisc
|
||
AND mm.prs_perslid_key_voor = sender;
|
||
|
||
-- DBMS_OUTPUT.PUT_LINE('mld_stdmelding_key: ' || TO_CHAR(stdmelding));
|
||
|
||
fac.writelog ('PROCESSEMAIL#80929',
|
||
'I',
|
||
'stdmelding ' || stdmelding,
|
||
TO_CHAR (SYSTIMESTAMP, 'HH24:MI:SS.FF'));
|
||
|
||
IF mldkey IS NULL
|
||
THEN
|
||
BEGIN
|
||
-- controleren of we deze melding al eerder ontvangen hebben en dit een update / reminder betreft.
|
||
SELECT mld_melding_key, mld_stdmelding_key
|
||
INTO mldkey, stdmelding
|
||
FROM mld_melding m
|
||
WHERE m.prs_perslid_key = sender
|
||
AND psubject LIKE '%' || m.mld_melding_externnr || '%'
|
||
AND m.mld_melding_externnr IS NOT NULL;
|
||
EXCEPTION WHEN OTHERS
|
||
THEN
|
||
mldkey := NULL;
|
||
stdmelding := NULL;
|
||
END;
|
||
END IF;
|
||
|
||
fac.writelog ('PROCESSEMAIL#80929',
|
||
'I',
|
||
'mldkey2a ' || mldkey,
|
||
TO_CHAR (SYSTIMESTAMP, 'HH24:MI:SS.FF'));
|
||
|
||
-- Onderstaande query los van bovenstaande voor de performance (CSUN#80929)
|
||
IF mldkey IS NULL
|
||
THEN
|
||
BEGIN
|
||
-- controleren of we deze melding al eerder ontvangen hebben en dit een update / reminder betreft.
|
||
SELECT m.mld_melding_key, m.mld_stdmelding_key
|
||
INTO mldkey, stdmelding
|
||
FROM mld_melding m, mld_kenmerkmelding km, mld_kenmerk k
|
||
WHERE m.prs_perslid_key = sender
|
||
AND km.mld_melding_key = m.mld_melding_key
|
||
AND km.mld_kenmerk_key = k.mld_kenmerk_key
|
||
AND k.mld_srtkenmerk_key = 2 -- Werkbon/Opdracht nr. klant
|
||
AND psubject LIKE '%' || km.mld_kenmerkmelding_waarde || '%';
|
||
EXCEPTION WHEN OTHERS
|
||
THEN
|
||
mldkey := NULL;
|
||
stdmelding := NULL;
|
||
END;
|
||
END IF;
|
||
|
||
fac.writelog ('PROCESSEMAIL#80929',
|
||
'I',
|
||
'mldkey2 ' || mldkey,
|
||
TO_CHAR (SYSTIMESTAMP, 'HH24:MI:SS.FF'));
|
||
|
||
|
||
BEGIN
|
||
SELECT mld_melding_behandelaar_key
|
||
INTO behandelaar_key
|
||
FROM mld_melding m, prs_perslid p
|
||
WHERE mld_melding_key = mldkey
|
||
AND mld_melding_behandelaar_key = p.prs_perslid_key
|
||
AND p.prs_perslid_email IS NOT NULL
|
||
AND p.prs_perslid_verwijder IS NULL;
|
||
EXCEPTION
|
||
WHEN OTHERS
|
||
THEN
|
||
behandelaar_key := NULL;
|
||
END;
|
||
|
||
fac.writelog ('PROCESSEMAIL#80929',
|
||
'I',
|
||
'behandelaar_key ' || behandelaar_key,
|
||
TO_CHAR (SYSTIMESTAMP, 'HH24:MI:SS.FF'));
|
||
|
||
IF stdmelding IS NOT NULL
|
||
AND behandelaar_key IS NOT NULL
|
||
AND sender <> 23
|
||
THEN -- Bestaande melding en behandelaar is bekend en niet ABN AMRO (23)
|
||
INSERT INTO mld_melding_note (mld_melding_key,
|
||
mld_melding_note_omschrijving,
|
||
prs_perslid_key,
|
||
mld_melding_note_flag)
|
||
VALUES (mldkey,
|
||
SUBSTR (
|
||
psubject || CHR (13) || CHR (10)
|
||
|| REPLACE (
|
||
SUBSTR (v_body,
|
||
1,
|
||
4000 - (LENGTH (psubject) + 2)),
|
||
CHR (13) || CHR (10) || CHR (13) || CHR (10),
|
||
CHR (13) || CHR (10)),
|
||
1,
|
||
4000), -- verwijder onnodige witregels
|
||
sender,
|
||
1); -- 1 is zichtbaar FE want zelf ingevoerd.
|
||
|
||
-- Default tracking is even goed genoeg
|
||
fac.trackaction ('MLDNOT',
|
||
mldkey,
|
||
sender,
|
||
NULL,
|
||
'#Notitie toegevoegd vanuit e-mail'); -- # voorkomt notificatie
|
||
-- DBMS_OUTPUT.PUT_LINE('Notitie toegevoegd.');
|
||
|
||
INSERT INTO fac_result (fac_result_sessionid,
|
||
fac_result_naam,
|
||
fac_result_waarde)
|
||
VALUES (psessionid, 'maillog', 'Als notitie toegevoegd aan melding ' || mldkey);
|
||
|
||
-- Notificatie naar behandelaar
|
||
fac.putnotificationsrtprio (
|
||
NULL,
|
||
behandelaar_key,
|
||
'MLDNOB',
|
||
mldkey,
|
||
'Melding ' || mldkey || ' is door de klant aangepast.',
|
||
2,
|
||
NULL,
|
||
NULL,
|
||
NULL,
|
||
2,
|
||
NULL);
|
||
|
||
fac.writelog ('PROCESSEMAIL#80929',
|
||
'I',
|
||
'Notitie toegevoegd',
|
||
TO_CHAR (SYSTIMESTAMP, 'HH24:MI:SS.FF'));
|
||
|
||
-- Vlaggetjes zetten zoals mld_edit_note.asp dat doet
|
||
BEGIN
|
||
IF fac.getsetting('mld_melding_actiecode') = 1
|
||
THEN
|
||
UPDATE mld_melding
|
||
SET mld_melding_actiecode = 1+128 -- Backoffice + Attentie
|
||
WHERE mld_melding_key = mldkey;
|
||
END IF;
|
||
EXCEPTION
|
||
WHEN OTHERS
|
||
THEN
|
||
DBMS_OUTPUT.put_line( 'Niet gelukt om flag '
|
||
|| v_flag_on_fenote
|
||
|| ' te zetten.');
|
||
END;
|
||
ELSE
|
||
-- suggested extensions:
|
||
-- check for MLDUSE-write autorisations
|
||
-- parse the subject to find an appropriate stdmelding, if uniquely possible
|
||
errormsg := '(0x148)';
|
||
|
||
BEGIN
|
||
stdmelding :=
|
||
fac.safe_to_number (fac.getsetting ('defaultstdmelding'));
|
||
|
||
v_new := 1; -- nieuwe melding
|
||
INSERT INTO mld_melding (mld_melding_module,
|
||
mld_meldbron_key,
|
||
mld_melding_datum,
|
||
mld_melding_omschrijving,
|
||
mld_melding_status,
|
||
mld_melding_t_uitvoertijd,
|
||
mld_stdmelding_key,
|
||
mld_alg_locatie_key,
|
||
mld_melding_externnr,
|
||
prs_perslid_key,
|
||
prs_perslid_key_voor,
|
||
prs_kostenplaats_key,
|
||
mld_melding_spoed)
|
||
VALUES ('MLD',
|
||
4, -- email
|
||
SYSDATE,
|
||
SUBSTR (
|
||
psubject || CHR (13)
|
||
|| REPLACE (
|
||
SUBSTR (m_body,
|
||
1,
|
||
4000 - (LENGTH (psubject) + 1)),
|
||
CHR (13)
|
||
|| CHR (10)
|
||
|| CHR (13)
|
||
|| CHR (10),
|
||
CHR (13) || CHR (10)),
|
||
1,
|
||
4000), -- verwijder onnodige witregels
|
||
NULL,
|
||
MLD_T_UITVOERTIJD (2, 'D'),
|
||
stdmelding,
|
||
28581, -- Locatie onbekend.
|
||
SUBSTR(v_externnr,1,30),
|
||
sender,
|
||
sender,
|
||
kostenplaats,
|
||
3)
|
||
RETURNING mld_melding_key
|
||
INTO mldkey;
|
||
|
||
fac.writelog ('PROCESSEMAIL#80929',
|
||
'I',
|
||
'Nieuwe melding ' || mldkey,
|
||
TO_CHAR (SYSTIMESTAMP, 'HH24:MI:SS.FF'));
|
||
|
||
-- DBMS_OUTPUT.PUT_LINE('Melding toegevoegd: ' || mldkey);
|
||
errormsg := '(0x165)';
|
||
mld.setmeldingstatus (mldkey, 2, sender);
|
||
|
||
INSERT INTO fac_result (fac_result_sessionid,
|
||
fac_result_naam,
|
||
fac_result_waarde)
|
||
VALUES (psessionid, 'maillog', 'Geregistreerd onder melding ' || mldkey);
|
||
|
||
fac.writelog ('PROCESSEMAIL#80929',
|
||
'I',
|
||
'fac_result toegevoegd ',
|
||
TO_CHAR (SYSTIMESTAMP, 'HH24:MI:SS.FF'));
|
||
|
||
END;
|
||
|
||
-- Zoek het laagste bijlagen kenmerk om de bijlagen onder te stoppen
|
||
errormsg := '(0x151)';
|
||
|
||
SELECT MIN (mld_kenmerk_key)
|
||
INTO kkey
|
||
FROM mld_kenmerk k,
|
||
mld_srtkenmerk sk,
|
||
mld_stdmelding std,
|
||
ins_tab_discipline d
|
||
WHERE mld_srtkenmerk_kenmerktype = 'M'
|
||
AND sk.mld_srtkenmerk_key = k.mld_srtkenmerk_key
|
||
AND std.mld_stdmelding_key = stdmelding
|
||
AND std.mld_ins_discipline_key = d.ins_discipline_key
|
||
AND ( (k.mld_stdmelding_key = std.mld_stdmelding_key
|
||
AND k.mld_kenmerk_niveau = 'S')
|
||
OR (k.mld_stdmelding_key = d.ins_discipline_key
|
||
AND k.mld_kenmerk_niveau = 'D')
|
||
OR (k.mld_stdmelding_key = d.ins_srtdiscipline_key
|
||
AND k.mld_kenmerk_niveau = 'T'))
|
||
AND k.mld_kenmerk_verwijder IS NULL
|
||
AND NOT EXISTS
|
||
(SELECT mld_kenmerk_volgnummer
|
||
FROM mld_kenmerk k1,
|
||
mld_srtkenmerk sk1,
|
||
mld_stdmelding std1,
|
||
ins_tab_discipline d1
|
||
WHERE sk1.mld_srtkenmerk_kenmerktype = 'M'
|
||
AND sk1.mld_srtkenmerk_key = k1.mld_srtkenmerk_key
|
||
AND std1.mld_stdmelding_key = stdmelding
|
||
AND std1.mld_ins_discipline_key =
|
||
d1.ins_discipline_key
|
||
AND ( (k1.mld_stdmelding_key =
|
||
std1.mld_stdmelding_key
|
||
AND k1.mld_kenmerk_niveau = 'S')
|
||
OR (k1.mld_stdmelding_key = d1.ins_discipline_key
|
||
AND k1.mld_kenmerk_niveau = 'D')
|
||
OR (k1.mld_stdmelding_key =
|
||
d1.ins_srtdiscipline_key
|
||
AND k1.mld_kenmerk_niveau = 'T'))
|
||
AND k1.mld_kenmerk_verwijder IS NULL
|
||
AND k1.mld_kenmerk_volgnummer >
|
||
k.mld_kenmerk_volgnummer);
|
||
|
||
fac.writelog ('PROCESSEMAIL#80929',
|
||
'I',
|
||
'kkey ' || kkey,
|
||
TO_CHAR (SYSTIMESTAMP, 'HH24:MI:SS.FF'));
|
||
|
||
errormsg := '(0x153)';
|
||
|
||
IF kkey IS NOT NULL
|
||
THEN
|
||
-- DBMS_OUTPUT.PUT_LINE('Bijlagen kenmerk: ' || kkey);
|
||
errormsg := '(0x157)';
|
||
|
||
INSERT INTO fac_result (fac_result_sessionid,
|
||
fac_result_naam,
|
||
fac_result_waarde)
|
||
VALUES (psessionid,
|
||
'kenmerkpath',
|
||
'MLD\M'
|
||
|| TO_CHAR (TRUNC (mldkey / 1000), 'FM0000')
|
||
|| '___\M'
|
||
|| mldkey
|
||
|| '\'
|
||
|| kkey
|
||
|| '\');
|
||
END IF;
|
||
|
||
-- originele email wordt opgeslagen bij de melding
|
||
INSERT INTO fac_result (fac_result_sessionid,
|
||
fac_result_naam,
|
||
fac_result_waarde)
|
||
VALUES (psessionid,
|
||
'kenmerkorgmailpath',
|
||
'MLD\M' || TO_CHAR (TRUNC (mldkey / 1000), 'FM0000') || '___\M' || mldkey || '\' || 1561 || '\');
|
||
|
||
END IF;
|
||
ELSE
|
||
errormsg := '(0x187)';
|
||
|
||
INSERT INTO fac_result (fac_result_sessionid,
|
||
fac_result_naam,
|
||
fac_result_waarde)
|
||
VALUES (psessionid,
|
||
'errormsg',
|
||
'Uw email kan niet worden verwerkt. Neem contact op met klantsupport@csu.nl voor meer informatie. Foutcode '
|
||
|| errormsg);
|
||
END CASE;
|
||
|
||
fac.writelog ('PROCESSEMAIL#80929',
|
||
'I',
|
||
'Step 2',
|
||
TO_CHAR (SYSTIMESTAMP, 'HH24:MI:SS.FF'));
|
||
|
||
-- alleen locatiekenmerk aanmaken als het een nieuwe melding betreft. Anders krijgen we dubbele kenmerken.
|
||
IF v_locatie_code IS NOT NULL AND v_new = 1
|
||
THEN
|
||
csun_set_kenmerk('MLD',281, mldkey, v_locatie_code, 0); -- locatie_code klant kenmerk
|
||
CSUN.mld_after_insert (mldkey);
|
||
END IF;
|
||
|
||
fac.writelog ('PROCESSEMAIL#80929',
|
||
'I',
|
||
'Step 3',
|
||
TO_CHAR (SYSTIMESTAMP, 'HH24:MI:SS.FF'));
|
||
|
||
-- Log het binnenkomende bericht als dat nodig is.
|
||
-- IF sender = 23 THEN -- ABNAMRO
|
||
-- Verwijder records uit de fac_rapport tabel omdat de key uniek moet zijn.
|
||
DELETE fac_rapport WHERE fac_rapport_volgnr = mldkey;
|
||
INSERT INTO fac_rapport (fac_rapport_node, fac_rapport_volgnr, fac_rapport_regel, fac_rapport_soort)
|
||
VALUES (SUBSTR('MELDING_' || v_client, 1, 12), mldkey, SUBSTR(pbody, 1, 1990), 1);
|
||
-- END IF;
|
||
|
||
fac.writelog ('PROCESSEMAIL#80929',
|
||
'I',
|
||
'Einde!',
|
||
TO_CHAR (SYSTIMESTAMP, 'HH24:MI:SS.FF'));
|
||
|
||
EXCEPTION
|
||
WHEN OTHERS
|
||
THEN
|
||
-- DBMS_OUTPUT.PUT_LINE('Mail niet geaccepteerd: ' || 'OTHERS (error ' || SQLCODE || '/' || SUBSTR (SQLERRM, 1, 100) || ')');
|
||
INSERT INTO fac_result (fac_result_sessionid,
|
||
fac_result_naam,
|
||
fac_result_waarde)
|
||
VALUES (psessionid,
|
||
'errormsg',
|
||
'Uw email kan niet worden verwerkt. Neem contact op met klantsupport@csu.nl voor meer informatie. Foutcode '
|
||
|| errormsg);
|
||
|
||
fac.writelog (
|
||
'PROCESSEMAIL',
|
||
'E',
|
||
'Mail kon niet ingelezen worden afzender:'
|
||
|| pfrom
|
||
|| '['
|
||
|| errormsg
|
||
|| ']',
|
||
'OTHERS (error '
|
||
|| SQLCODE
|
||
|| '/'
|
||
|| SUBSTR (SQLERRM, 1, 100)
|
||
|| ')');
|
||
END;
|
||
/
|
||
|
||
CREATE OR REPLACE VIEW CSUN_V_RAP_MAIL_ERROR
|
||
(
|
||
hide_f_offset,
|
||
datum,
|
||
hint,
|
||
error
|
||
)
|
||
AS
|
||
SELECT SYSDATE - imp_log_datum,
|
||
imp_log_datum,
|
||
imp_log_hint,
|
||
imp_log_omschrijving
|
||
FROM imp_log
|
||
WHERE imp_log_applicatie = 'PROCESSEMAIL'
|
||
AND imp_log_datum > SYSDATE - 30;
|
||
|
||
|
||
CREATE OR REPLACE VIEW CSUN_V_RAP_MELDING
|
||
(
|
||
ACCOUNTCODE,
|
||
FCLT_F_CLIENT,
|
||
WERKBEDRIJF,
|
||
DATUM,
|
||
TIJDSTIP,
|
||
SOORT_MELDING,
|
||
WERKBON,
|
||
MELDING,
|
||
TYPE,
|
||
SOORT,
|
||
FCLT_F_BEHANDELAAR,
|
||
OMSCHRIJVING,
|
||
LOCATIE,
|
||
LOCATIE_ADRES,
|
||
LOCATIE_PLAATS,
|
||
OPLOSTIJD,
|
||
DATUM_REACTIE,
|
||
REACTIE_OPTIJD,
|
||
REACTIE,
|
||
UITVOERTIJD,
|
||
UITGEVOERD,
|
||
UITGEVOERD_DOOR,
|
||
STATUS,
|
||
AFHANDELTIJD_DAGEN,
|
||
AFHANDELTIJD_UREN,
|
||
AFMELD_TEKST,
|
||
AFMELD_KEY
|
||
)
|
||
AS
|
||
SELECT (SELECT fac_usrdata_code
|
||
FROM alg_onrgoedkenmerk, fac_usrdata ud
|
||
WHERE alg_kenmerk_key = 1000
|
||
AND alg_onrgoed_key = l.alg_locatie_key
|
||
AND fac.safe_to_number (alg_onrgoedkenmerk_waarde) =
|
||
fac_usrdata_key)
|
||
accountcode,
|
||
(SELECT fac_usrdata_omschr
|
||
FROM alg_onrgoedkenmerk, fac_usrdata ud
|
||
WHERE alg_kenmerk_key = 1000
|
||
AND alg_onrgoed_key = l.alg_locatie_key
|
||
AND fac.safe_to_number (alg_onrgoedkenmerk_waarde) =
|
||
fac_usrdata_key)
|
||
client,
|
||
own.fac_usrdata_omschr werkbedrijf,
|
||
mld_melding_datum Datum,
|
||
TO_CHAR (mld_melding_datum, 'HH24:MI') Tijdstip,
|
||
sd.ins_srtdiscipline_omschrijving Soort_melding,
|
||
(SELECT mld_kenmerkmelding_waarde
|
||
FROM mld_kenmerkmelding km, mld_kenmerk k
|
||
WHERE km.mld_melding_key = m.mld_melding_key
|
||
AND km.mld_kenmerk_key = k.mld_kenmerk_key
|
||
AND k.mld_srtkenmerk_key = 2)
|
||
werkbon,
|
||
m.mld_melding_key Melding,
|
||
sd.ins_srtdiscipline_prefix
|
||
|| ' - '
|
||
|| d.ins_discipline_omschrijving
|
||
TYPE,
|
||
std.mld_stdmelding_omschrijving Soort,
|
||
p.prs_perslid_naam_full,
|
||
m.mld_melding_omschrijving Omschrijving,
|
||
l.alg_locatie_omschrijving Locatie,
|
||
l.alg_locatie_adres locatie_adres,
|
||
l.alg_locatie_plaats locatie_plaats,
|
||
TO_CHAR (m.mld_melding_acceptdatum_std, 'dd-mm-yyyy hh24:mi')
|
||
oplostijd,
|
||
TO_CHAR (tr.fac_tracking_datum, 'dd-mm-yyyy hh24:mi') datum_reactie,
|
||
DECODE (
|
||
SIGN (tr.fac_tracking_datum - m.mld_melding_acceptdatum_std),
|
||
-1,
|
||
'ja',
|
||
NULL)
|
||
reactie_optijd,
|
||
mld_melding_opmerking reactie,
|
||
TO_CHAR (m.mld_melding_einddatum_std, 'dd-mm-yyyy hh24:mi')
|
||
uitvoertijd,
|
||
TO_CHAR (tr2.fac_tracking_datum, 'dd-mm-yyyy hh24:mi') uitgevoerd,
|
||
tr2.prs_perslid_naam_full,
|
||
st.mld_statuses_omschrijving,
|
||
ROUND (
|
||
DECODE (mld.getactualuitvoer (m.mld_melding_key).eenheid,
|
||
'D', mld.getactualuitvoer (m.mld_melding_key).tijdsduur,
|
||
NULL),
|
||
2)
|
||
doorlooptijd_werkdgn,
|
||
ROUND (
|
||
DECODE (
|
||
mld.getactualuitvoer (m.mld_melding_key).eenheid,
|
||
'U',
|
||
mld.getactualuitvoer (m.mld_melding_key).tijdsduur,
|
||
'D',
|
||
(mld.getactualuitvoer (m.mld_melding_key).tijdsduur
|
||
* (SELECT COALESCE (e.fac_setting_pvalue,
|
||
e.fac_setting_default)
|
||
- COALESCE (s.fac_setting_pvalue,
|
||
s.fac_setting_default)
|
||
FROM fac_setting s, fac_setting e
|
||
WHERE s.fac_setting_name = 'fac_t_startofworkday'
|
||
AND e.fac_setting_name = 'fac_t_endofworkday')),
|
||
NULL),
|
||
2)
|
||
doorlooptijd_werkuren,
|
||
m.mld_melding_opmerking,
|
||
COALESCE (
|
||
(SELECT MAX (ma.mld_afmeldtekst_key)
|
||
FROM mld_afmeldtekst ma
|
||
WHERE m.mld_stdmelding_key = ma.mld_stdmelding_key
|
||
AND TRIM (m.mld_melding_opmerking) =
|
||
TRIM (ma.mld_afmeldtekst_omschrijving)),
|
||
(SELECT MAX (ma.mld_afmeldtekst_key)
|
||
FROM mld_afmeldtekst ma
|
||
WHERE d.ins_discipline_key = ma.mld_ins_discipline_key
|
||
AND TRIM (m.mld_melding_opmerking) =
|
||
TRIM (ma.mld_afmeldtekst_omschrijving)))
|
||
AS afmeld_key
|
||
FROM mld_melding m,
|
||
alg_locatie l,
|
||
mld_stdmelding std,
|
||
ins_tab_discipline d,
|
||
ins_srtdiscipline sd,
|
||
prs_v_perslid_fullnames p,
|
||
mld_statuses st,
|
||
(SELECT fac_usrdata_omschr, aok.alg_onrgoed_key
|
||
FROM alg_onrgoedkenmerk aok,
|
||
alg_kenmerk ak,
|
||
fac_kenmerkdomein fc,
|
||
fac_usrdata fu,
|
||
fac_usrtab ft
|
||
WHERE ak.alg_kenmerk_key = 1001
|
||
AND alg_onrgoedkenmerk_verwijder IS NULL
|
||
AND aok.alg_kenmerk_key = ak.alg_kenmerk_key
|
||
AND ak.fac_kenmerkdomein_key = fc.fac_kenmerkdomein_key
|
||
AND ft.fac_usrtab_key = fc.fac_usrtab_key
|
||
AND fu.fac_usrtab_key = ft.fac_usrtab_key
|
||
AND alg_onrgoedkenmerk_waarde = fac_usrdata_key) own,
|
||
(SELECT fac_tracking_datum, fac_tracking_refkey
|
||
FROM fac_tracking t
|
||
WHERE t.fac_tracking_oms LIKE '%Afhandeling: (leeg) -->%') tr,
|
||
(SELECT fac_tracking_datum,
|
||
fac_tracking_refkey,
|
||
p.prs_perslid_naam_full
|
||
FROM fac_tracking t,
|
||
fac_srtnotificatie srt,
|
||
prs_v_perslid_fullnames p
|
||
WHERE t.fac_srtnotificatie_key = srt.fac_srtnotificatie_key
|
||
AND srt.fac_srtnotificatie_code = 'MLDAFM'
|
||
AND p.prs_perslid_key = t.prs_perslid_key) tr2
|
||
WHERE m.mld_alg_locatie_key = l.alg_locatie_key(+)
|
||
AND m.mld_stdmelding_key = std.mld_stdmelding_key
|
||
AND std.mld_ins_discipline_key = d.ins_discipline_key
|
||
AND d.ins_srtdiscipline_key = sd.ins_srtdiscipline_key(+)
|
||
AND m.mld_melding_key = tr.fac_tracking_refkey(+)
|
||
AND m.mld_melding_key = tr2.fac_tracking_refkey(+)
|
||
AND m.mld_melding_status = st.mld_statuses_key
|
||
AND alg_locatie_key = own.alg_onrgoed_key(+)
|
||
AND m.mld_melding_behandelaar_key = p.prs_perslid_key(+);
|
||
|
||
CREATE OR REPLACE VIEW CSUN_V_RAP_MELDING_SANQ
|
||
(
|
||
MELDING,
|
||
RL,
|
||
DM,
|
||
LOCATIE,
|
||
RC,
|
||
RC_TELEFOON,
|
||
RC_MAIL,
|
||
FCLT_D_DATUM_MELDING,
|
||
TIJDSTIP_MELDING,
|
||
MAAND_MELDING,
|
||
MELDER,
|
||
AARD_MELDING,
|
||
OMSCHRIJVING,
|
||
RUIMTE_CATEGORIE,
|
||
RUIMTE_NUMMER,
|
||
URGENTIEKLASSE,
|
||
ONDERNOMEN_ACTIES,
|
||
RESULTAAT,
|
||
PREVENTIE,
|
||
STATUS,
|
||
DATUM_AFGEHANDELD,
|
||
TIJDSTIP_AFGEHANDELD,
|
||
AFHANDELTIJD_UREN,
|
||
AFHANDELTIJD_DAGEN,
|
||
BIJZONDERHEDEN
|
||
)
|
||
AS
|
||
SELECT mld_melding_key,
|
||
NULL rl,
|
||
NULL dm,
|
||
alg_locatie_omschrijving,
|
||
NULL rc_sanquin,
|
||
NULL telefoonnummer,
|
||
NULL mailadres,
|
||
TO_CHAR (mld_melding_datum, 'dd-mm-yyyy') datum,
|
||
TO_CHAR (mld_melding_datum, 'hh24:mi') tijdstip,
|
||
fac.safe_to_number (TO_CHAR (mld_melding_datum, 'mm')) maand,
|
||
pf.prs_perslid_naam_full melder,
|
||
std.mld_stdmelding_omschrijving aard,
|
||
mld_melding_omschrijving omschrijving,
|
||
NULL ruimte_categorie,
|
||
NULL ruimte_nummer,
|
||
mld_melding_spoed urgentieklasse,
|
||
-- decode (mld_melding_spoed, null vereistehersteltijd,
|
||
mld_melding_opmerking ondernomenacties,
|
||
NULL resultaat,
|
||
NULL preventie,
|
||
mld_statuses_omschrijving status,
|
||
TO_CHAR (einddatum.datum, 'dd-mm-yyyy') datumafgehandeld,
|
||
TO_CHAR (einddatum.datum, 'hh24:mi') tijdstipafgehandeld,
|
||
csu_count_WorkHours (mld_melding_datum, einddatum.datum)
|
||
afgehandelduren,
|
||
ROUND (
|
||
csu_count_WorkHours (mld_melding_datum, einddatum.datum) / 9,
|
||
2)
|
||
afgehandelddagen,
|
||
NULL bijzonderheden
|
||
FROM mld_melding m,
|
||
alg_locatie l,
|
||
prs_v_perslid_fullnames_all pf,
|
||
mld_stdmelding std,
|
||
mld_statuses st,
|
||
(SELECT fac_tracking_refkey, fac_tracking_datum datum
|
||
FROM fac_tracking
|
||
WHERE fac_srtnotificatie_key = 35) einddatum
|
||
WHERE m.mld_alg_locatie_key = l.alg_locatie_key
|
||
AND m.prs_perslid_key = pf.prs_perslid_key
|
||
AND m.mld_stdmelding_key = std.mld_stdmelding_key
|
||
AND m.mld_melding_key = einddatum.fac_tracking_refkey(+)
|
||
AND m.mld_melding_status = st.mld_statuses_key;
|
||
|
||
|
||
CREATE OR REPLACE VIEW CSUN_V_RAP_DISTRICTGEGEVENS
|
||
(
|
||
FCLT_F_BUSINESSUNIT,
|
||
DISTRICT,
|
||
BBER
|
||
)
|
||
AS
|
||
SELECT alg_regio_omschrijving,
|
||
alg_district_omschrijving,
|
||
(SELECT prs_perslid_naam_full
|
||
FROM prs_v_perslid_fullnames pf
|
||
WHERE pf.prs_perslid_key = p.prs_perslid_key)
|
||
BBer
|
||
FROM alg_district d,
|
||
alg_regio r,
|
||
prs_perslid p,
|
||
alg_locatie l2,
|
||
prs_v_perslidwerkplek_gegevens pwpg
|
||
WHERE d.alg_regio_key = r.alg_regio_key
|
||
AND pwpg.alg_locatie_key = l2.alg_locatie_key
|
||
AND d.alg_district_key = l2.alg_district_key
|
||
AND pwpg.prs_perslid_key = p.prs_perslid_key
|
||
AND p.prs_srtperslid_key = 32; -- BBer
|
||
|
||
CREATE OR REPLACE VIEW csun_v_rap_locatiegegevens
|
||
(
|
||
prjnr,
|
||
fclt_f_regioomschrijving,
|
||
fclt_f_districtomschrijving,
|
||
locatiecode,
|
||
locatieomschrijving,
|
||
bezoekadres,
|
||
postcode,
|
||
plaats,
|
||
fclt_f_client,
|
||
bud,
|
||
bb,
|
||
rm_pm
|
||
)
|
||
AS
|
||
SELECT (SELECT alg_onrgoedkenmerk_waarde
|
||
FROM alg_onrgoedkenmerk ogk
|
||
WHERE alg_kenmerk_key = 1040
|
||
AND ogk.alg_onrgoed_key = l.alg_locatie_key)
|
||
prjnr,
|
||
alg_regio_omschrijving,
|
||
alg_district_omschrijving,
|
||
l.alg_locatie_code,
|
||
l.alg_locatie_omschrijving,
|
||
l.alg_locatie_adres,
|
||
l.alg_locatie_postcode,
|
||
l.alg_locatie_plaats,
|
||
(SELECT u.fac_usrdata_omschr
|
||
FROM fac_usrdata u, alg_onrgoedkenmerk ogk
|
||
WHERE alg_kenmerk_key = 1000
|
||
AND ogk.alg_onrgoed_key = l.alg_locatie_key
|
||
AND fac.safe_to_number (alg_onrgoedkenmerk_waarde) =
|
||
u.fac_usrdata_key)
|
||
client,
|
||
(SELECT prs_perslid_naam_full
|
||
FROM prs_v_perslid_fullnames pf, alg_onrgoedkenmerk ogk
|
||
WHERE alg_kenmerk_key = 1006
|
||
AND ogk.alg_onrgoed_key = l.alg_locatie_key
|
||
AND fac.safe_to_number (alg_onrgoedkenmerk_waarde) =
|
||
pf.prs_perslid_key)
|
||
bud,
|
||
(SELECT max(prs_perslid_naam_full) || DECODE (count(p.prs_perslid_key), 1, '', '*')
|
||
FROM prs_v_perslid_fullnames pf,
|
||
prs_perslid p,
|
||
alg_locatie l2,
|
||
prs_v_perslidwerkplek_gegevens pwpg
|
||
WHERE pwpg.alg_locatie_key = l2.alg_locatie_key
|
||
AND l.alg_district_key = l2.alg_district_key
|
||
AND pwpg.prs_perslid_key = p.prs_perslid_key
|
||
AND p.prs_srtperslid_key = 32 -- BBer
|
||
AND p.prs_perslid_key = pf.prs_perslid_key) BB,
|
||
(SELECT MAX (prs_perslid_naam_full)
|
||
|| DECODE (COUNT (p.prs_perslid_key), 1, '', '*')
|
||
FROM csun_imp_project i,
|
||
alg_locatie l1,
|
||
prs_perslid p,
|
||
prs_v_perslid_fullnames pf,
|
||
alg_v_ruimte_gegevens rg
|
||
WHERE p.prs_perslid_nr LIKE '%' || i.rayonl_persnr || '%'
|
||
AND 'P' || i.project = l1.alg_locatie_code
|
||
AND l1.alg_locatie_key = rg.alg_locatie_key
|
||
AND rg.alg_ruimte_nr = '-'
|
||
AND prs_srtperslid_key IN (50, 4041) -- rayonleider
|
||
AND prs_perslid_verwijder IS NULL
|
||
AND pf.prs_perslid_key = p.prs_perslid_key
|
||
AND l.alg_locatie_key = l1.alg_locatie_key) RM_PM
|
||
FROM alg_locatie l, alg_district d, alg_regio r
|
||
WHERE l.alg_district_key = d.alg_district_key
|
||
AND d.alg_regio_key = r.alg_regio_key
|
||
AND alg_locatie_verwijder IS NULL;
|
||
|
||
CREATE OR REPLACE VIEW csun_v_rap_districtgegevens
|
||
(
|
||
fclt_f_businessunit,
|
||
district,
|
||
bber
|
||
)
|
||
AS
|
||
SELECT alg_regio_omschrijving,
|
||
alg_district_omschrijving,
|
||
(SELECT prs_perslid_naam_full
|
||
FROM prs_v_perslid_fullnames pf
|
||
WHERE pf.prs_perslid_key = p.prs_perslid_key) BBer
|
||
FROM alg_district d,
|
||
alg_regio r,
|
||
prs_perslid p,
|
||
alg_locatie l2,
|
||
prs_v_perslidwerkplek_gegevens pwpg
|
||
WHERE d.alg_regio_key = r.alg_regio_key
|
||
AND pwpg.alg_locatie_key = l2.alg_locatie_key
|
||
AND d.alg_district_key = l2.alg_district_key
|
||
AND pwpg.prs_perslid_key = p.prs_perslid_key
|
||
AND p.prs_srtperslid_key = 32;
|
||
|
||
|
||
CREATE OR REPLACE PROCEDURE csun_set_kenmerk(p_module IN VARCHAR2,
|
||
p_kenmerk_key IN NUMBER,
|
||
p_link_key IN NUMBER,
|
||
p_kenmerk_waarde IN VARCHAR2,
|
||
p_history IN NUMBER)
|
||
AS
|
||
v_count NUMBER;
|
||
v_niveau VARCHAR2 (1);
|
||
BEGIN
|
||
CASE p_module
|
||
WHEN 'PRS'
|
||
THEN
|
||
-- niveau van prs_kenmerk ophalen, omdat deze ook in prs_kenmerklink wordt
|
||
-- opgeslagen (da's dus redundant..?)
|
||
SELECT prs_kenmerk_niveau
|
||
INTO v_niveau
|
||
FROM prs_kenmerk
|
||
WHERE prs_kenmerk_key = p_kenmerk_key;
|
||
|
||
SELECT COUNT ( * )
|
||
INTO v_count
|
||
FROM prs_kenmerklink
|
||
WHERE prs_link_key = p_link_key
|
||
AND prs_kenmerk_key = p_kenmerk_key
|
||
AND prs_kenmerklink_verwijder IS NULL;
|
||
|
||
IF v_count = 1
|
||
THEN
|
||
IF p_kenmerk_waarde IS NULL
|
||
THEN
|
||
DELETE prs_kenmerklink
|
||
WHERE prs_link_key = p_link_key
|
||
AND prs_kenmerk_key = p_kenmerk_key
|
||
AND prs_kenmerklink_verwijder IS NULL;
|
||
ELSE
|
||
UPDATE prs_kenmerklink
|
||
SET prs_kenmerklink_waarde = p_kenmerk_waarde
|
||
WHERE prs_link_key = p_link_key
|
||
AND prs_kenmerk_key = p_kenmerk_key
|
||
AND prs_kenmerklink_verwijder IS NULL;
|
||
END IF;
|
||
ELSE
|
||
IF p_kenmerk_key IS NOT NULL AND p_kenmerk_waarde IS NOT NULL
|
||
THEN
|
||
INSERT INTO prs_kenmerklink (prs_kenmerk_key,
|
||
prs_link_key,
|
||
prs_kenmerklink_niveau,
|
||
prs_kenmerklink_waarde)
|
||
VALUES (p_kenmerk_key,
|
||
p_link_key,
|
||
v_niveau,
|
||
p_kenmerk_waarde);
|
||
END IF;
|
||
END IF;
|
||
|
||
WHEN 'ALG'
|
||
THEN
|
||
-- niveau van prs_kenmerk ophalen, omdat deze ook in prs_kenmerklink wordt
|
||
-- opgeslagen (da's dus redundant..?)
|
||
SELECT alg_kenmerk_niveau
|
||
INTO v_niveau
|
||
FROM alg_kenmerk
|
||
WHERE alg_kenmerk_key = p_kenmerk_key;
|
||
|
||
SELECT COUNT ( * )
|
||
INTO v_count
|
||
FROM alg_onrgoedkenmerk
|
||
WHERE alg_onrgoed_key = p_link_key
|
||
AND alg_kenmerk_key = p_kenmerk_key
|
||
AND alg_onrgoedkenmerk_verwijder IS NULL;
|
||
|
||
IF v_count = 1
|
||
THEN
|
||
IF p_kenmerk_waarde IS NULL
|
||
THEN
|
||
DELETE alg_onrgoedkenmerk
|
||
WHERE alg_onrgoed_key = p_link_key
|
||
AND alg_kenmerk_key = p_kenmerk_key
|
||
AND alg_onrgoedkenmerk_verwijder IS NULL;
|
||
ELSE
|
||
UPDATE alg_onrgoedkenmerk
|
||
SET alg_onrgoedkenmerk_waarde = p_kenmerk_waarde
|
||
WHERE alg_onrgoed_key = p_link_key
|
||
AND alg_kenmerk_key = p_kenmerk_key
|
||
AND alg_onrgoedkenmerk_verwijder IS NULL;
|
||
END IF;
|
||
ELSE
|
||
IF p_kenmerk_key IS NOT NULL AND p_kenmerk_waarde IS NOT NULL
|
||
THEN
|
||
INSERT INTO alg_onrgoedkenmerk (alg_kenmerk_key,
|
||
alg_onrgoed_key,
|
||
alg_onrgoed_niveau,
|
||
alg_onrgoedkenmerk_waarde)
|
||
VALUES (p_kenmerk_key,
|
||
p_link_key,
|
||
v_niveau,
|
||
p_kenmerk_waarde);
|
||
END IF;
|
||
END IF;
|
||
|
||
WHEN 'MLD'
|
||
THEN
|
||
-- melding- of opdrachtkenmerk?
|
||
SELECT mld_kenmerk_niveau
|
||
INTO v_niveau
|
||
FROM mld_kenmerk
|
||
WHERE mld_kenmerk_key = p_kenmerk_key;
|
||
|
||
CASE v_niveau
|
||
WHEN 'O'
|
||
THEN
|
||
SELECT COUNT ( * )
|
||
INTO v_count
|
||
FROM mld_kenmerkopdr
|
||
WHERE mld_opdr_key = p_link_key
|
||
AND mld_kenmerk_key = p_kenmerk_key
|
||
AND mld_kenmerkopdr_verwijder IS NULL;
|
||
|
||
IF v_count = 1
|
||
THEN
|
||
IF p_kenmerk_waarde IS NULL
|
||
THEN
|
||
DELETE mld_kenmerkopdr
|
||
WHERE mld_opdr_key = p_link_key
|
||
AND mld_kenmerk_key = p_kenmerk_key
|
||
AND mld_kenmerkopdr_verwijder IS NULL;
|
||
ELSE
|
||
UPDATE mld_kenmerkopdr
|
||
SET mld_kenmerkopdr_waarde = p_kenmerk_waarde
|
||
WHERE mld_opdr_key = p_link_key
|
||
AND mld_kenmerk_key = p_kenmerk_key
|
||
AND mld_kenmerkopdr_verwijder IS NULL;
|
||
END IF;
|
||
ELSE
|
||
IF p_kenmerk_key IS NOT NULL AND p_kenmerk_waarde IS NOT NULL
|
||
THEN
|
||
INSERT INTO mld_kenmerkopdr (mld_kenmerk_key,
|
||
mld_opdr_key,
|
||
mld_kenmerkopdr_waarde)
|
||
VALUES (p_kenmerk_key,
|
||
p_link_key,
|
||
p_kenmerk_waarde);
|
||
END IF;
|
||
END IF;
|
||
ELSE
|
||
SELECT COUNT ( * )
|
||
INTO v_count
|
||
FROM mld_kenmerkmelding
|
||
WHERE mld_melding_key = p_link_key
|
||
AND mld_kenmerk_key = p_kenmerk_key
|
||
AND mld_kenmerkmelding_verwijder IS NULL;
|
||
|
||
IF v_count = 1
|
||
THEN
|
||
IF p_kenmerk_waarde IS NULL
|
||
THEN
|
||
DELETE mld_kenmerkmelding
|
||
WHERE mld_melding_key = p_link_key
|
||
AND mld_kenmerk_key = p_kenmerk_key
|
||
AND mld_kenmerkmelding_verwijder IS NULL;
|
||
ELSE
|
||
UPDATE mld_kenmerkmelding
|
||
SET mld_kenmerkmelding_waarde = p_kenmerk_waarde
|
||
WHERE mld_melding_key = p_link_key
|
||
AND mld_kenmerk_key = p_kenmerk_key
|
||
AND mld_kenmerkmelding_verwijder IS NULL;
|
||
END IF;
|
||
ELSE
|
||
IF p_kenmerk_key IS NOT NULL AND p_kenmerk_waarde IS NOT NULL
|
||
THEN
|
||
INSERT INTO mld_kenmerkmelding (mld_kenmerk_key,
|
||
mld_melding_key,
|
||
mld_kenmerkmelding_waarde)
|
||
VALUES (p_kenmerk_key,
|
||
p_link_key,
|
||
p_kenmerk_waarde);
|
||
END IF;
|
||
END IF;
|
||
END CASE;
|
||
END CASE;
|
||
END;
|
||
/
|
||
|
||
|
||
CREATE OR REPLACE PROCEDURE csun_import_project (p_import_key IN NUMBER)
|
||
AS
|
||
c_fielddelimitor VARCHAR2 (1) := ',';
|
||
v_newline VARCHAR2 (1000); -- Input line
|
||
v_errormsg VARCHAR2 (1000);
|
||
v_error_hint VARCHAR2 (1000);
|
||
oracle_err_num NUMBER;
|
||
oracle_err_mes VARCHAR2 (200);
|
||
header_is_valid NUMBER;
|
||
v_count NUMBER;
|
||
v_error NUMBER (1);
|
||
v_aanduiding VARCHAR2 (200);
|
||
-- De importvelden:
|
||
v_accountcode VARCHAR2 (255); -- 14
|
||
v_accountnaam VARCHAR2 (255); -- 60
|
||
v_project VARCHAR2 (255); -- 8
|
||
|
||
v_locatie_omschrijving VARCHAR2 (255); -- 30
|
||
v_locatie_adres VARCHAR2 (255); -- 35
|
||
v_locatie_postcode VARCHAR2 (255); -- 12
|
||
v_locatie_plaats VARCHAR2 (255); -- 30
|
||
v_dm VARCHAR2 (255); -- 100
|
||
v_voornaam VARCHAR2 (255); -- 30
|
||
v_voorletters VARCHAR2 (255); -- 10
|
||
v_tussenvoegsels VARCHAR2 (255); -- 15
|
||
v_achternaam VARCHAR2 (255); -- 60
|
||
v_bu VARCHAR2 (255);
|
||
v_vervallen VARCHAR2 (255);
|
||
v_rayonl_persnr VARCHAR2 (255); -- 16
|
||
v_rayonl_naam VARCHAR2 (255); -- 60
|
||
v_kenmerk1 VARCHAR2 (255);
|
||
v_kenmerk2 VARCHAR2 (255);
|
||
v_kenmerk3 VARCHAR2 (255);
|
||
v_kenmerk4 VARCHAR2 (255);
|
||
v_kenmerk5 VARCHAR2 (255);
|
||
|
||
|
||
CURSOR c1
|
||
IS
|
||
SELECT *
|
||
FROM fac_imp_file
|
||
WHERE fac_import_key = p_import_key
|
||
ORDER BY fac_imp_file_index;
|
||
BEGIN
|
||
v_error_hint := 'Verwijderen oude records';
|
||
-- Eerst opruiming
|
||
DELETE
|
||
FROM imp_log l
|
||
WHERE EXISTS
|
||
(SELECT i.fac_import_key
|
||
FROM fac_import i, fac_import i2
|
||
WHERE l.fac_import_key = i.fac_import_key
|
||
AND i.fac_import_app_key = i2.fac_import_app_key
|
||
AND i2.fac_import_key = p_import_key)
|
||
AND l.fac_import_key <> p_import_key;
|
||
|
||
DELETE FROM csun_imp_project;
|
||
|
||
header_is_valid := 0;
|
||
v_count := 0;
|
||
COMMIT;
|
||
|
||
FOR rec1 IN c1
|
||
LOOP
|
||
BEGIN
|
||
v_error_hint := 'Fout FETCH te importeren rij';
|
||
v_newline := rec1.fac_imp_file_line;
|
||
v_error_hint := 'Fout opvragen te importeren rij';
|
||
v_aanduiding := '';
|
||
v_error := 0;
|
||
-- Lees alle veldwaarden
|
||
fac.imp_getfield (v_newline, c_fielddelimitor, v_accountcode); -- FPACCC
|
||
fac.imp_getfield (v_newline, c_fielddelimitor, v_accountnaam); -- FPACCO
|
||
fac.imp_getfield (v_newline, c_fielddelimitor, v_project); -- FPPRJ#
|
||
fac.imp_getfield (v_newline, c_fielddelimitor, v_bu); -- FPREGO
|
||
fac.imp_getfield (v_newline, c_fielddelimitor, v_dm); -- FPDISC
|
||
fac.imp_getfield (v_newline, c_fielddelimitor, v_voorletters); -- FPDIVL
|
||
fac.imp_getfield (v_newline, c_fielddelimitor, v_voornaam); -- FPDIVN
|
||
fac.imp_getfield (v_newline, c_fielddelimitor, v_tussenvoegsels); -- FPDIVV
|
||
fac.imp_getfield (v_newline, c_fielddelimitor, v_achternaam); -- FPDINM
|
||
fac.imp_getfield (v_newline, c_fielddelimitor, v_locatie_omschrijving); -- FPLOCO
|
||
fac.imp_getfield (v_newline, c_fielddelimitor, v_locatie_adres); -- FPADBA
|
||
fac.imp_getfield (v_newline, c_fielddelimitor, v_locatie_postcode); -- FPPKBA
|
||
fac.imp_getfield (v_newline, c_fielddelimitor, v_locatie_plaats); -- FPPLBA
|
||
fac.imp_getfield (v_newline, c_fielddelimitor, v_vervallen); -- FPVERV
|
||
fac.imp_getfield (v_newline, c_fielddelimitor, v_rayonl_persnr); -- FPGEOK
|
||
fac.imp_getfield (v_newline, c_fielddelimitor, v_rayonl_naam); -- FPRLNM
|
||
fac.imp_getfield (v_newline, c_fielddelimitor, v_kenmerk1);
|
||
fac.imp_getfield (v_newline, c_fielddelimitor, v_kenmerk2);
|
||
fac.imp_getfield (v_newline, c_fielddelimitor, v_kenmerk3);
|
||
fac.imp_getfield (v_newline, c_fielddelimitor, v_kenmerk4);
|
||
fac.imp_getfield (v_newline, c_fielddelimitor, v_kenmerk5);
|
||
|
||
v_aanduiding :=
|
||
v_project || '|' || v_locatie_omschrijving || '| ';
|
||
|
||
IF (header_is_valid = 0)
|
||
THEN
|
||
IF UPPER (v_accountcode) = 'FPACCC'
|
||
AND UPPER (v_project) = 'FPPRJ#'
|
||
AND UPPER (v_achternaam) = 'FPDINM'
|
||
AND UPPER (v_bu) = 'FPREGO'
|
||
AND UPPER (v_locatie_omschrijving) = 'FPLOCO'
|
||
AND UPPER (v_locatie_plaats) = 'FPPLBA'
|
||
THEN
|
||
header_is_valid := 1;
|
||
ELSE
|
||
IF rec1.fac_imp_file_index = 1 THEN
|
||
fac.imp_writelog (p_import_key,
|
||
'I',
|
||
'Header FPACCC:'||v_accountcode||'-FPPRJ#:'||v_project||'-FPDINM:'||v_achternaam||'-FPREGO:'||v_bu||'-FPLOCO:'||v_locatie_omschrijving||'-FPPLBA:'||v_locatie_plaats,
|
||
'Geen geldige headerregel aanwezig');
|
||
END IF;
|
||
END IF;
|
||
ELSE
|
||
-- Insert geformatteerde import record
|
||
IF v_error = 0
|
||
THEN
|
||
|
||
v_error_hint :=
|
||
'Fout bij toevoegen te impoteren locatie ['
|
||
|| v_project
|
||
|| ']';
|
||
|
||
INSERT INTO csun_imp_project (accountcode,
|
||
accountnaam,
|
||
project,
|
||
vervallen,
|
||
bu,
|
||
dm,
|
||
voornaam,
|
||
voorletters,
|
||
tussenvoegsels,
|
||
achternaam,
|
||
code,
|
||
omschrijving,
|
||
adres,
|
||
postcode,
|
||
woonplaats,
|
||
rayonl_persnr,
|
||
rayonl_naam,
|
||
kenmerk1,
|
||
kenmerk2,
|
||
kenmerk3,
|
||
kenmerk4,
|
||
kenmerk5)
|
||
VALUES (SUBSTR(TRIM(v_accountcode),1,14),
|
||
SUBSTR(TRIM(v_accountnaam),1,60),
|
||
SUBSTR(TRIM(v_project),1,14),
|
||
SUBSTR(TRIM(v_vervallen),1,1),
|
||
SUBSTR(TRIM(v_bu),1,14),
|
||
TO_NUMBER(TRIM(v_dm)),
|
||
SUBSTR(TRIM(v_voornaam),1,14),
|
||
SUBSTR(TRIM(v_voorletters),1,14),
|
||
SUBSTR(TRIM(v_tussenvoegsels),1,14),
|
||
SUBSTR(TRIM(v_achternaam),1,60),
|
||
NULL, -- Wordt niet meer gebruikt.
|
||
SUBSTR(TRIM(v_locatie_omschrijving),1,60),
|
||
SUBSTR(TRIM(v_locatie_adres),1,35),
|
||
SUBSTR(TRIM(v_locatie_postcode),1,9),
|
||
SUBSTR(TRIM(v_locatie_plaats),1,35),
|
||
SUBSTR(TRIM(v_rayonl_persnr),1,16),
|
||
SUBSTR(TRIM(v_rayonl_naam),1,60),
|
||
v_kenmerk1,
|
||
v_kenmerk2,
|
||
v_kenmerk3,
|
||
v_kenmerk4,
|
||
v_kenmerk5);
|
||
v_count := v_count + 1;
|
||
END IF;
|
||
END IF;
|
||
END;
|
||
END LOOP;
|
||
|
||
IF (header_is_valid = 0)
|
||
THEN
|
||
fac.imp_writelog (p_import_key,
|
||
'E',
|
||
v_aanduiding || 'Ongeldig importbestand',
|
||
'Geen geldige headerregel aanwezig');
|
||
ELSE
|
||
fac.imp_writelog (
|
||
p_import_key,
|
||
'S',
|
||
'Locaties: aantal ingelezen regels: ' || TO_CHAR (v_count),
|
||
'');
|
||
END IF;
|
||
|
||
COMMIT;
|
||
EXCEPTION
|
||
WHEN OTHERS
|
||
THEN
|
||
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_error_hint);
|
||
END csun_import_project;
|
||
/
|
||
|
||
|
||
CREATE OR REPLACE PROCEDURE csun_update_project (p_import_key IN NUMBER)
|
||
IS
|
||
v_errormsg VARCHAR2 (1000);
|
||
v_error_hint VARCHAR2 (1000);
|
||
oracle_err_num NUMBER;
|
||
oracle_err_mes VARCHAR2 (1000);
|
||
v_aanduiding VARCHAR2 (200);
|
||
v_count NUMBER (10);
|
||
v_ongeldig NUMBER (1);
|
||
v_count_update NUMBER (10);
|
||
v_count_tot NUMBER (10);
|
||
|
||
-- De importvelden:de
|
||
v_locatie_key NUMBER (10);
|
||
v_bud_key NUMBER (10);
|
||
v_account_key NUMBER (10);
|
||
v_district_key NUMBER (10);
|
||
v_perslid_key NUMBER (10);
|
||
v_afdeling_key NUMBER (10);
|
||
v_tussenv VARCHAR2 (15);
|
||
v_achternaam VARCHAR2 (60);
|
||
|
||
CURSOR c_account
|
||
IS
|
||
SELECT DISTINCT accountcode, accountnaam
|
||
FROM csun_imp_project
|
||
WHERE COALESCE (UPPER (vervallen), 'N') <> 'J';
|
||
|
||
CURSOR c_district (
|
||
c_accountcode IN VARCHAR2)
|
||
IS
|
||
SELECT DISTINCT dm,
|
||
voornaam,
|
||
voorletters,
|
||
tussenvoegsels,
|
||
achternaam
|
||
FROM csun_imp_project
|
||
WHERE accountcode = c_accountcode
|
||
AND COALESCE (UPPER (vervallen), 'N') <> 'J';
|
||
|
||
CURSOR c (
|
||
c_accountcode IN VARCHAR2,
|
||
c_dm IN NUMBER)
|
||
IS
|
||
SELECT *
|
||
FROM csun_imp_project
|
||
WHERE accountcode = c_accountcode
|
||
AND dm = c_dm
|
||
AND COALESCE (UPPER (vervallen), 'N') <> 'J';
|
||
|
||
CURSOR c_verv (
|
||
c_accountcode IN VARCHAR2)
|
||
IS
|
||
SELECT alg_locatie_key, fac_usrdata_code
|
||
FROM alg_locatie l,
|
||
alg_onrgoedkenmerk aogka,
|
||
alg_onrgoedkenmerk aogkp,
|
||
fac_usrdata u
|
||
WHERE aogka.alg_kenmerk_key = 1000 -- client
|
||
AND l.alg_locatie_key = aogka.alg_onrgoed_key
|
||
AND fac.safe_to_number (aogka.alg_onrgoedkenmerk_waarde) =
|
||
u.fac_usrdata_key
|
||
AND aogkp.alg_kenmerk_key = 1040 -- projectnummer
|
||
AND l.alg_locatie_key = aogkp.alg_onrgoed_key
|
||
AND NOT EXISTS
|
||
(SELECT project
|
||
FROM csun_imp_project
|
||
WHERE project = aogkp.alg_onrgoedkenmerk_waarde
|
||
AND COALESCE (UPPER (vervallen), 'N') = 'N')
|
||
AND NOT EXISTS
|
||
(SELECT alg_onrgoedkenmerk_waarde
|
||
FROM alg_onrgoedkenmerk aogkv
|
||
WHERE aogkv.alg_kenmerk_key = 1160 -- vervaldatum
|
||
AND l.alg_locatie_key = aogkv.alg_onrgoed_key);
|
||
|
||
CURSOR c_del
|
||
IS
|
||
SELECT alg_locatie_key, alg_locatie_code
|
||
FROM alg_locatie l, alg_onrgoedkenmerk aogk
|
||
WHERE alg_locatie_verwijder IS NULL
|
||
AND aogk.alg_kenmerk_key = 1160 -- vervaldatum
|
||
AND l.alg_locatie_key = aogk.alg_onrgoed_key
|
||
AND fac.safe_to_date (aogk.alg_onrgoedkenmerk_waarde,
|
||
'dd-mm-yyyy') < SYSDATE - 10
|
||
AND l.alg_locatie_key NOT IN
|
||
(SELECT b.fac_bijlagen_refkey
|
||
FROM fac_bijlagen b, alg_kenmerk bkm
|
||
WHERE b.fac_bijlagen_refkey = l.alg_locatie_key
|
||
AND bkm.alg_kenmerk_key =
|
||
b.fac_bijlagen_kenmerk_key
|
||
AND bkm.alg_kenmerk_niveau = 'L' --Enkel wanneer er op locatieniveau kenmerken zijn toegevoegd.
|
||
AND b.fac_bijlagen_module = 'ALG' -- Enkel bijlagen komend uit deze module (geen res/mld/etc).
|
||
AND bkm.alg_kenmerk_kenmerktype IN ('M', 'F') -- Enkel kenmerksoorten obv map met bijlage of enkele bijlage
|
||
AND b.fac_bijlagen_verwijder IS NULL);
|
||
|
||
CURSOR c_rayonl
|
||
IS
|
||
SELECT DISTINCT
|
||
bu,
|
||
rayonl_persnr,
|
||
TRIM (SUBSTR (rayonl_naam, 1, INSTR (rayonl_naam, ' ')))
|
||
voornaam,
|
||
TRIM (SUBSTR (rayonl_naam, INSTR (rayonl_naam, ' '), 60))
|
||
achternaam,
|
||
rayonl_naam
|
||
FROM csun_imp_project
|
||
WHERE rayonl_naam IS NOT NULL;
|
||
|
||
CURSOR c_rayon_wp
|
||
IS
|
||
SELECT p.prs_perslid_key, rg.alg_ruimte_key
|
||
FROM csun_imp_project i,
|
||
alg_locatie l,
|
||
prs_perslid p,
|
||
alg_v_ruimte_gegevens rg
|
||
WHERE p.prs_perslid_nr LIKE '%' || i.rayonl_persnr || '%'
|
||
AND 'P' || i.project = l.alg_locatie_code
|
||
AND l.alg_locatie_key = rg.alg_locatie_key
|
||
AND rg.alg_ruimte_nr = '-'
|
||
AND prs_srtperslid_key = 50 -- rayonleider
|
||
AND prs_perslid_verwijder IS NULL
|
||
AND NOT EXISTS
|
||
(SELECT *
|
||
FROM prs_v_perslidwerkplek_gegevens pwpg
|
||
WHERE pwpg.prs_perslid_key = p.prs_perslid_key
|
||
AND pwpg.alg_locatie_key = l.alg_locatie_key);
|
||
|
||
FUNCTION get_alg_kenmerk (p_kenmerk_key IN NUMBER,
|
||
p_onrgoed_key IN NUMBER)
|
||
RETURN VARCHAR2
|
||
AS
|
||
v_waarde VARCHAR2 (255);
|
||
BEGIN
|
||
SELECT alg_onrgoedkenmerk_waarde
|
||
INTO v_waarde
|
||
FROM alg_onrgoedkenmerk
|
||
WHERE alg_kenmerk_key = p_kenmerk_key
|
||
AND alg_onrgoed_key = p_onrgoed_key;
|
||
|
||
RETURN v_waarde;
|
||
EXCEPTION
|
||
WHEN NO_DATA_FOUND
|
||
THEN
|
||
RETURN NULL;
|
||
END;
|
||
BEGIN
|
||
-- v_count_update := 0;
|
||
-- v_count_tot := 0;
|
||
v_error_hint := 'Start met doorlopen accounts';
|
||
|
||
|
||
FOR rec_a IN c_account
|
||
LOOP
|
||
BEGIN
|
||
v_error_hint :=
|
||
'Ophalen data voor accountcode: ' || rec_a.accountcode;
|
||
|
||
BEGIN
|
||
SELECT fac_usrdata_key
|
||
INTO v_account_key
|
||
FROM fac_usrdata
|
||
WHERE fac_usrtab_key = 1 -- Eigentabel met client
|
||
AND fac_usrdata_code = rec_a.accountcode
|
||
AND fac_usrdata_verwijder IS NULL;
|
||
EXCEPTION
|
||
WHEN NO_DATA_FOUND
|
||
THEN
|
||
INSERT INTO fac_usrdata (fac_usrtab_key,
|
||
fac_usrdata_code,
|
||
fac_usrdata_omschr)
|
||
VALUES (1, rec_a.accountcode, rec_a.accountnaam)
|
||
RETURNING fac_usrdata_key
|
||
INTO v_account_key;
|
||
END;
|
||
|
||
FOR rec_d IN c_district (rec_a.accountcode)
|
||
LOOP
|
||
BEGIN
|
||
v_error_hint :=
|
||
'Ophalen data voor dm: '
|
||
|| rec_d.dm
|
||
|| ' Naam:'
|
||
|| rec_d.achternaam;
|
||
|
||
--Eerst leegmaken
|
||
v_district_key := NULL;
|
||
BEGIN
|
||
SELECT alg_onrgoed_key
|
||
INTO v_district_key
|
||
FROM prs_perslid p,
|
||
alg_onrgoedkenmerk aog,
|
||
alg_district d
|
||
WHERE p.prs_perslid_naam = rec_d.achternaam
|
||
AND p.prs_perslid_voorletters = rec_d.voorletters
|
||
AND COALESCE (p.prs_perslid_tussenvoegsel, '.') =
|
||
COALESCE (rec_d.tussenvoegsels, '.')
|
||
AND alg_kenmerk_key = 1021 -- key van districtmanager
|
||
AND prs_perslid_key =
|
||
fac.safe_to_number (alg_onrgoedkenmerk_waarde)
|
||
AND aog.alg_onrgoed_key = d.alg_district_key
|
||
AND d.alg_district_verwijder IS NULL
|
||
AND aog.alg_onrgoedkenmerk_verwijder IS NULL;
|
||
EXCEPTION
|
||
WHEN NO_DATA_FOUND
|
||
THEN
|
||
fac.imp_writelog (
|
||
p_import_key,
|
||
'E',
|
||
'Import locaties afgebroken, distrinctmanager niet gevonden ( district mngr:'
|
||
|| rec_d.dm
|
||
|| '('
|
||
|| rec_d.voorletters
|
||
|| ' '
|
||
|| rec_d.tussenvoegsels
|
||
|| ' '
|
||
|| rec_d.achternaam
|
||
|| ')'
|
||
|| '- account:'
|
||
|| rec_a.accountcode
|
||
|| '-'
|
||
|| rec_a.accountnaam
|
||
|| ')',
|
||
v_error_hint);
|
||
END;
|
||
|
||
IF v_district_key IS NOT NULL
|
||
THEN
|
||
FOR rec IN c (rec_a.accountcode, rec_d.dm)
|
||
LOOP
|
||
BEGIN
|
||
v_locatie_key := NULL;
|
||
-- Get BUD reference
|
||
v_error_hint := 'Bepalen bb referentie: ' || rec.dm;
|
||
v_bud_key := get_alg_kenmerk (1060, v_district_key);
|
||
|
||
BEGIN
|
||
v_error_hint :=
|
||
'Kijk of de locatie al bestaat: '
|
||
|| rec.project;
|
||
|
||
SELECT alg_locatie_key
|
||
INTO v_locatie_key
|
||
FROM alg_locatie
|
||
WHERE SUBSTR (alg_locatie_code, 2, 50) =
|
||
rec.project
|
||
AND alg_locatie_verwijder IS NULL
|
||
AND alg_locatie_vervaldatum IS NULL;
|
||
EXCEPTION
|
||
WHEN NO_DATA_FOUND
|
||
THEN
|
||
-- Kijk of de locatieomschrijving al voorkomt. Als dat het geval is mogen we de
|
||
-- nieuwe locatie niet aanmaken, binnen hetzelfde district.
|
||
SELECT COUNT ( * )
|
||
INTO v_count
|
||
FROM alg_locatie
|
||
WHERE alg_locatie_upper =
|
||
UPPER (
|
||
SUBSTR (rec.omschrijving, 1, 50))
|
||
AND alg_locatie_verwijder IS NULL;
|
||
|
||
IF v_count = 0
|
||
THEN
|
||
INSERT INTO alg_locatie (alg_district_key,
|
||
alg_locatie_code,
|
||
alg_locatie_omschrijving)
|
||
VALUES (v_district_key,
|
||
'P' || rec.project,
|
||
SUBSTR (rec.omschrijving, 1, 50))
|
||
RETURNING alg_locatie_key
|
||
INTO v_locatie_key;
|
||
ELSE
|
||
fac.imp_writelog (
|
||
p_import_key,
|
||
'E',
|
||
'Import locaties afgebroken, locatie omschrijving bestaat al ( district mngr:'
|
||
|| rec_d.dm
|
||
|| '('
|
||
|| rec_d.voorletters
|
||
|| ' '
|
||
|| rec_d.tussenvoegsels
|
||
|| ' '
|
||
|| rec_d.achternaam
|
||
|| ')'
|
||
|| '- account:'
|
||
|| rec_a.accountcode
|
||
|| '-'
|
||
|| rec_a.accountnaam
|
||
|| ' Projectnr: '
|
||
|| rec.project
|
||
|| ')',
|
||
'Locatie met omschrijving: '
|
||
|| rec.omschrijving
|
||
|| ' bestaat al');
|
||
END IF;
|
||
END;
|
||
|
||
IF v_locatie_key IS NOT NULL
|
||
THEN
|
||
UPDATE alg_locatie
|
||
SET alg_locatie_omschrijving =
|
||
SUBSTR (rec.omschrijving, 1, 50),
|
||
alg_district_key = v_district_key,
|
||
alg_locatie_adres = rec.adres,
|
||
alg_locatie_postcode = rec.postcode,
|
||
alg_locatie_plaats = rec.woonplaats
|
||
WHERE alg_locatie_key = v_locatie_key;
|
||
|
||
csun_set_kenmerk ('ALG',
|
||
1006,
|
||
v_locatie_key,
|
||
v_bud_key,
|
||
0);
|
||
csun_set_kenmerk ('ALG',
|
||
1000,
|
||
v_locatie_key,
|
||
v_account_key,
|
||
0);
|
||
csun_set_kenmerk ('ALG',
|
||
1040,
|
||
v_locatie_key,
|
||
rec.project,
|
||
0);
|
||
-- reanimeer verwijderde locaties
|
||
csun_set_kenmerk ('ALG',
|
||
1160,
|
||
v_locatie_key,
|
||
NULL,
|
||
0);
|
||
END IF;
|
||
EXCEPTION
|
||
WHEN OTHERS
|
||
THEN
|
||
oracle_err_mes := SUBSTR (SQLERRM, 1, 150);
|
||
v_errormsg :=
|
||
'(ORACLE error ' || oracle_err_mes || ')';
|
||
fac.imp_writelog (
|
||
p_import_key,
|
||
'E',
|
||
'Import locaties afgebroken ( district mngr:'
|
||
|| rec_d.dm
|
||
|| '('
|
||
|| rec_d.voorletters
|
||
|| ' '
|
||
|| rec_d.tussenvoegsels
|
||
|| ' '
|
||
|| rec_d.achternaam
|
||
|| ')'
|
||
|| '- account:'
|
||
|| rec_a.accountcode
|
||
|| '-'
|
||
|| rec_a.accountnaam
|
||
|| ' Projectnr: '
|
||
|| rec.project
|
||
|| '):'
|
||
|| v_errormsg,
|
||
v_error_hint);
|
||
END;
|
||
END LOOP;
|
||
END IF;
|
||
EXCEPTION
|
||
WHEN OTHERS
|
||
THEN
|
||
oracle_err_mes := SUBSTR (SQLERRM, 1, 150);
|
||
v_errormsg := '(ORACLE error ' || oracle_err_mes || ')';
|
||
fac.imp_writelog (
|
||
p_import_key,
|
||
'E',
|
||
'Import locaties afgebroken ( district mngr:'
|
||
|| rec_d.dm
|
||
|| '('
|
||
|| rec_d.voorletters
|
||
|| ' '
|
||
|| rec_d.tussenvoegsels
|
||
|| ' '
|
||
|| rec_d.achternaam
|
||
|| ')'
|
||
|| '- account:'
|
||
|| rec_a.accountcode
|
||
|| '-'
|
||
|| rec_a.accountnaam
|
||
|| '):'
|
||
|| v_errormsg,
|
||
v_error_hint);
|
||
END;
|
||
END LOOP;
|
||
|
||
FOR rec_verv IN c_verv (rec_a.accountcode)
|
||
LOOP
|
||
BEGIN
|
||
-- zet de vervaldatum bij de locatie zodat deze na 6 maanden verwijderd kan worden.
|
||
csun_set_kenmerk ('ALG',
|
||
1160,
|
||
rec_verv.alg_locatie_key,
|
||
TO_CHAR (SYSDATE, 'dd-mm-yyyy'),
|
||
0);
|
||
END;
|
||
END LOOP;
|
||
EXCEPTION
|
||
WHEN OTHERS
|
||
THEN
|
||
oracle_err_mes := SUBSTR (SQLERRM, 1, 150);
|
||
v_errormsg := '(ORACLE error ' || oracle_err_mes || ')';
|
||
fac.imp_writelog (
|
||
p_import_key,
|
||
'E',
|
||
'Import locaties afgebroken ('
|
||
|| rec_a.accountcode
|
||
|| '):'
|
||
|| v_errormsg,
|
||
v_error_hint);
|
||
END;
|
||
END LOOP;
|
||
|
||
csun_export_set_werkplek (p_import_key);
|
||
|
||
FOR rec_del IN c_del
|
||
LOOP
|
||
BEGIN
|
||
v_error_hint :=
|
||
'Verwijderen gebouwen - Locatie_code: '
|
||
|| rec_del.alg_locatie_code;
|
||
|
||
UPDATE alg_gebouw
|
||
SET alg_gebouw_verwijder = SYSDATE
|
||
WHERE alg_locatie_key = rec_del.alg_locatie_key;
|
||
|
||
v_error_hint :=
|
||
'Verwijderen locatie - Locatie_code: '
|
||
|| rec_del.alg_locatie_code;
|
||
|
||
UPDATE alg_locatie
|
||
SET alg_locatie_verwijder = SYSDATE
|
||
WHERE alg_locatie_key = rec_del.alg_locatie_key;
|
||
EXCEPTION
|
||
WHEN OTHERS
|
||
THEN
|
||
oracle_err_mes := SUBSTR (SQLERRM, 1, 150);
|
||
v_errormsg := '(ORACLE error ' || oracle_err_mes || ')';
|
||
fac.imp_writelog (p_import_key,
|
||
'E',
|
||
'Verwijderen locaties:' || v_errormsg,
|
||
v_error_hint);
|
||
END;
|
||
END LOOP;
|
||
|
||
|
||
-- voeg de rayonleiders toe als ze nog niet bestaan
|
||
FOR rec_ray IN c_rayonl
|
||
LOOP
|
||
BEGIN
|
||
-- Een rayonleider kan meerdere geo-kodes hebben. Het personeelsnummer is dan gevuld met meerdere codes.
|
||
SELECT MAX (prs_perslid_key)
|
||
INTO v_perslid_key
|
||
FROM prs_perslid
|
||
WHERE prs_perslid_verwijder IS NULL
|
||
AND prs_perslid_nr LIKE '%' || rec_ray.rayonl_persnr || '%';
|
||
|
||
IF v_perslid_key IS NULL
|
||
THEN
|
||
-- nieuwe rayonleider aanmaken tijdelijk onder CSU NA.
|
||
INSERT INTO prs_perslid (prs_srtperslid_key,
|
||
prs_afdeling_key,
|
||
prs_perslid_nr,
|
||
prs_perslid_naam,
|
||
prs_perslid_voornaam)
|
||
VALUES (50,
|
||
1,
|
||
rec_ray.rayonl_persnr,
|
||
rec_ray.achternaam,
|
||
rec_ray.voornaam)
|
||
RETURNING prs_perslid_key
|
||
INTO v_perslid_key;
|
||
|
||
v_achternaam := rec_ray.achternaam;
|
||
v_tussenv := '';
|
||
|
||
IF INSTR (v_achternaam, 'van der ') = 1
|
||
THEN
|
||
v_achternaam := SUBSTR (v_achternaam, 9);
|
||
v_tussenv := 'van der';
|
||
END IF;
|
||
|
||
IF INSTR (v_achternaam, 'van den ') = 1
|
||
THEN
|
||
v_achternaam := SUBSTR (v_achternaam, 9);
|
||
v_tussenv := 'van den';
|
||
END IF;
|
||
|
||
IF INSTR (v_achternaam, 'van de ') = 1
|
||
THEN
|
||
v_achternaam := SUBSTR (v_achternaam, 8);
|
||
v_tussenv := 'van de';
|
||
END IF;
|
||
|
||
IF INSTR (v_achternaam, 'van ') = 1
|
||
THEN
|
||
v_achternaam := SUBSTR (v_achternaam, 5);
|
||
v_tussenv := 'van';
|
||
END IF;
|
||
|
||
IF INSTR (v_achternaam, 'de ') = 1
|
||
THEN
|
||
v_achternaam := SUBSTR (v_achternaam, 4);
|
||
v_tussenv := 'de';
|
||
END IF;
|
||
|
||
UPDATE prs_perslid
|
||
SET prs_perslid_naam = v_achternaam,
|
||
prs_perslid_tussenvoegsel = v_tussenv
|
||
WHERE prs_perslid_key = v_perslid_key;
|
||
END IF;
|
||
END;
|
||
|
||
BEGIN
|
||
-- Eigen tabel met key 61 wordt gebruikt om de mapping tussen business unit en CSU afdeling vast te leggen.
|
||
SELECT prs_afdeling_key
|
||
INTO v_afdeling_key
|
||
FROM prs_afdeling a, fac_usrdata ud
|
||
WHERE ud.fac_usrtab_key = 61
|
||
AND prs_afdeling_omschrijving = 'CSU ' || fac_usrdata_omschr
|
||
AND fac_usrdata_code = rec_ray.bu;
|
||
|
||
UPDATE prs_perslid
|
||
SET prs_afdeling_key = v_afdeling_key
|
||
WHERE prs_perslid_key = v_perslid_key;
|
||
EXCEPTION
|
||
WHEN NO_DATA_FOUND
|
||
THEN
|
||
fac.imp_writelog (
|
||
p_import_key,
|
||
'E',
|
||
'Afdeling van Rayonleider kan niet gevonden worden ( Rayonleider:'
|
||
|| rec_ray.voornaam
|
||
|| ' - '
|
||
|| rec_ray.achternaam
|
||
|| ')',
|
||
'');
|
||
END;
|
||
END LOOP;
|
||
|
||
-- Geef de rayonleiders een werkplek als ze deze nog niet hebben.
|
||
FOR rec IN c_rayon_wp
|
||
LOOP
|
||
prs.movetoruimte (rec.prs_perslid_key,
|
||
rec.alg_ruimte_key,
|
||
'L',
|
||
1);
|
||
END LOOP;
|
||
|
||
-- Verwijder de werkplek van een rayonleider als deze niet meer gekoppeld is.
|
||
|
||
DELETE prs_perslidwerkplek
|
||
WHERE prs_perslidwerkplek_key IN
|
||
(SELECT prs_perslidwerkplek_key
|
||
FROM prs_v_perslidwerkplek_gegevens pwpg,
|
||
prs_perslid p,
|
||
alg_locatie l
|
||
WHERE pwpg.prs_perslid_key = p.prs_perslid_key
|
||
AND p.prs_srtperslid_key = 50 -- Rayonleider
|
||
AND l.alg_locatie_key = pwpg.alg_locatie_key
|
||
AND l.alg_locatie_code LIKE 'P%'
|
||
AND NOT EXISTS
|
||
(SELECT i.project
|
||
FROM csun_imp_project i, alg_locatie l
|
||
WHERE p.prs_perslid_nr LIKE
|
||
'%' || i.rayonl_persnr || '%'
|
||
AND 'P' || i.project =
|
||
l.alg_locatie_code
|
||
AND l.alg_locatie_key =
|
||
pwpg.alg_locatie_key
|
||
AND pwpg.alg_ruimte_nr = '-'));
|
||
|
||
COMMIT;
|
||
EXCEPTION
|
||
WHEN OTHERS
|
||
THEN
|
||
oracle_err_mes := SUBSTR (SQLERRM, 1, 150);
|
||
v_errormsg := '(ORACLE error ' || oracle_err_mes || ')';
|
||
fac.imp_writelog (
|
||
p_import_key,
|
||
'E',
|
||
'Fout tijdens importeren van onroerend goed (locatie en gebouw) ',
|
||
v_errormsg);
|
||
END csun_update_project;
|
||
/
|
||
|
||
-- rapport om de ingelezen gegevens op te zoeken.
|
||
CREATE OR REPLACE VIEW csun_v_rap_imp_project
|
||
(
|
||
accountcode,
|
||
accountnaam,
|
||
project,
|
||
vervallen,
|
||
bu,
|
||
dm,
|
||
voornaam,
|
||
voorletters,
|
||
tussenvoegsels,
|
||
achternaam,
|
||
code,
|
||
omschrijving,
|
||
adres,
|
||
postcode,
|
||
woonplaats
|
||
)
|
||
AS
|
||
SELECT accountcode,
|
||
accountnaam,
|
||
project,
|
||
vervallen,
|
||
bu,
|
||
dm,
|
||
voornaam,
|
||
voorletters,
|
||
tussenvoegsels,
|
||
achternaam,
|
||
code,
|
||
omschrijving,
|
||
adres,
|
||
postcode,
|
||
woonplaats
|
||
FROM csun_imp_project;
|
||
|
||
--
|
||
-- Procedures en functies om de doorlooptijd van meldingen te bepalen
|
||
--
|
||
CREATE OR REPLACE FUNCTION csu_find_next_workingday (pdate1 IN DATE)
|
||
RETURN DATE
|
||
IS
|
||
result DATE;
|
||
v_vrije_dagen NUMBER;
|
||
v_date DATE;
|
||
BEGIN
|
||
v_date := pdate1;
|
||
|
||
IF pdate1 < (TRUNC (v_date) + 8 / 24)
|
||
THEN
|
||
v_date := TRUNC (v_date) + 8 / 24;
|
||
END IF;
|
||
|
||
IF pdate1 > (TRUNC (v_date) + 17 / 24)
|
||
THEN
|
||
v_date := TRUNC (v_date) + 17 / 24;
|
||
END IF;
|
||
|
||
IF TO_CHAR (v_date, 'd') IN (1, 7)
|
||
THEN
|
||
result := csu_find_next_workingday (TRUNC (v_date) + 1 + 8 / 24);
|
||
ELSE
|
||
SELECT COUNT ( * )
|
||
INTO v_vrije_dagen
|
||
FROM mld_vrije_dagen
|
||
WHERE mld_vrije_dagen_datum = TRUNC (v_date);
|
||
|
||
IF v_vrije_dagen = 1
|
||
THEN
|
||
result := csu_find_next_workingday (TRUNC (v_date) + 1 + 8 / 24);
|
||
ELSE
|
||
result := v_date;
|
||
END IF;
|
||
END IF;
|
||
|
||
RETURN result;
|
||
END;
|
||
/
|
||
|
||
CREATE OR REPLACE FUNCTION csu_find_prev_workingday (pdate1 IN DATE)
|
||
RETURN DATE
|
||
IS
|
||
result DATE;
|
||
v_vrije_dagen NUMBER;
|
||
v_date DATE;
|
||
BEGIN
|
||
v_date := pdate1;
|
||
|
||
IF pdate1 < (TRUNC (v_date) + 8 / 24)
|
||
THEN
|
||
v_date := TRUNC (v_date) + 8 / 24;
|
||
END IF;
|
||
|
||
IF pdate1 > (TRUNC (v_date) + 17 / 24)
|
||
THEN
|
||
v_date := TRUNC (v_date) + 17 / 24;
|
||
END IF;
|
||
|
||
IF TO_CHAR (v_date, 'd') IN (1, 7)
|
||
THEN
|
||
result := csu_find_prev_workingday (TRUNC (v_date) - 1 + 17 / 24);
|
||
ELSE
|
||
SELECT COUNT ( * )
|
||
INTO v_vrije_dagen
|
||
FROM mld_vrije_dagen
|
||
WHERE mld_vrije_dagen_datum = TRUNC (v_date);
|
||
|
||
IF v_vrije_dagen = 1
|
||
THEN
|
||
result := csu_find_prev_workingday (TRUNC (v_date) - 1 + 17 / 24);
|
||
ELSE
|
||
result := v_date;
|
||
END IF;
|
||
END IF;
|
||
|
||
RETURN result;
|
||
END;
|
||
/
|
||
|
||
CREATE OR REPLACE FUNCTION csu_count_WorkHours (pdate_from IN DATE,
|
||
pdate_to IN DATE)
|
||
RETURN NUMBER
|
||
IS
|
||
eikdag NUMBER;
|
||
v_date_from DATE;
|
||
v_date_to DATE;
|
||
v_week NUMBER;
|
||
v_mod NUMBER;
|
||
v_holidays NUMBER;
|
||
v_beginuur NUMBER (5, 2);
|
||
v_einduur NUMBER (5, 2);
|
||
v_correction NUMBER;
|
||
BEGIN
|
||
-- Dit is een maandag, is dat volgens de huidige territory dag 2?
|
||
SELECT TO_NUMBER (TO_CHAR (TO_DATE ('01-01-2007', 'DD-MM-YYYY'), 'D'))
|
||
INTO eikdag
|
||
FROM DUAL;
|
||
|
||
IF eikdag <> 2
|
||
THEN
|
||
-- WE MOETEN met zondag=1 werken (geen nieuwe eis, wel duidelijker probleem)
|
||
raise_application_error (-20000, 'Facilitor: Invalid NLS_TERRITORY');
|
||
END IF;
|
||
|
||
v_date_from := csu_find_prev_workingday (pdate_from);
|
||
v_date_to := csu_find_next_workingday (pdate_to);
|
||
|
||
DBMS_OUTPUT.put_line (
|
||
'v_date_from:' || v_date_from || ' v_date_to:' || v_date_to);
|
||
|
||
-- Determine whole weeks (v_week) and remaining days (v_mod) between FROM and TO
|
||
v_week := TRUNC ( (TRUNC (v_date_to) - TRUNC (v_date_from)) / 7);
|
||
v_mod := MOD ( (TRUNC (v_date_to) - TRUNC (v_date_from)), 7);
|
||
|
||
-- Determine the registered holidays between FROM and TO
|
||
SELECT COUNT ( * )
|
||
INTO v_holidays
|
||
FROM MLD_VRIJE_DAGEN
|
||
WHERE MLD_VRIJE_DAGEN_DATUM BETWEEN v_date_from AND v_date_to;
|
||
|
||
v_beginuur := (TRUNC (v_date_from, 'MI') - TRUNC (v_date_from)) * 24;
|
||
v_einduur := (TRUNC (v_date_to, 'MI') - TRUNC (v_date_to)) * 24;
|
||
|
||
DBMS_OUTPUT.put_line (
|
||
'v_beginuur:' || v_beginuur || ' v_einduur:' || v_einduur);
|
||
|
||
IF v_einduur - v_beginuur > 0
|
||
THEN
|
||
v_correction := v_einduur - v_beginuur;
|
||
ELSE
|
||
v_correction := v_einduur - v_beginuur;
|
||
END IF;
|
||
|
||
DBMS_OUTPUT.put_line( 'v_week:'
|
||
|| v_week
|
||
|| ' v_mod:'
|
||
|| v_mod
|
||
|| ' v_holidays:'
|
||
|| v_holidays
|
||
|| ' v_correction: '
|
||
|| v_correction);
|
||
RETURN 9 * ( (5 * v_week) + v_mod - v_holidays) + v_correction;
|
||
EXCEPTION
|
||
WHEN NO_DATA_FOUND
|
||
THEN
|
||
RETURN NULL;
|
||
END;
|
||
/
|
||
|
||
|
||
CREATE OR REPLACE PROCEDURE csun_export_set_werkplek (p_import_key IN NUMBER)
|
||
AS
|
||
|
||
CURSOR c
|
||
IS
|
||
SELECT prs_perslid_key, rg.alg_ruimte_key
|
||
FROM prs_v_aanwezigperslid p,
|
||
prs_afdeling a,
|
||
alg_onrgoedkenmerk aogk,
|
||
fac_usrdata ud,
|
||
alg_v_ruimte_gegevens rg,
|
||
alg_locatie l
|
||
WHERE p.prs_afdeling_key = a.prs_afdeling_key
|
||
AND a.prs_afdeling_verwijder IS NULL
|
||
AND ( a.prs_afdeling_naam IN ('Adecco',
|
||
'Manpower',
|
||
'Luba',
|
||
'Servex',
|
||
'USG PA',
|
||
'USG People',
|
||
'NS Retail',
|
||
'DJI')
|
||
AND (EXISTS
|
||
(SELECT gg.prs_perslid_key
|
||
FROM fac_gebruikersgroep gg
|
||
WHERE fac_groep_key = 61 -- Klant
|
||
AND gg.prs_perslid_key =
|
||
p.prs_perslid_key))
|
||
OR ( EXISTS
|
||
(SELECT alg_onrgoedkenmerk_key
|
||
FROM alg_onrgoedkenmerk aog,
|
||
prs_kenmerklink kl
|
||
WHERE ( ( aog.alg_onrgoedkenmerk_waarde =
|
||
kl.prs_kenmerklink_waarde
|
||
AND aog.alg_kenmerk_key = 1123 -- klantspecifieke regioindeling
|
||
AND aog.alg_onrgoed_key =
|
||
rg.alg_locatie_key)
|
||
OR (UPPER(kl.prs_kenmerklink_waarde) =
|
||
'ALLES'))
|
||
AND kl.prs_link_key = p.prs_perslid_key
|
||
AND kl.prs_kenmerk_key = 1060))) -- klantspecifieke regioautorisatie)
|
||
AND fac.safe_to_number (aogk.alg_onrgoedkenmerk_waarde) =
|
||
fac_usrdata_key
|
||
AND aogk.alg_kenmerk_key = 1000
|
||
AND aogk.alg_onrgoed_key = rg.alg_locatie_key
|
||
AND UPPER (prs_afdeling_omschrijving) LIKE
|
||
UPPER (fac_usrdata_omschr) || '%'
|
||
AND fac_usrtab_key = 1
|
||
AND rg.alg_ruimte_nr = '-'
|
||
AND l.alg_locatie_key = rg.alg_locatie_key
|
||
AND l.alg_locatie_verwijder IS NULL
|
||
AND NOT EXISTS
|
||
(SELECT prs_perslidwerkplek_key
|
||
FROM prs_perslidwerkplek pwp, prs_werkplek wp
|
||
WHERE pwp.prs_perslid_key = p.prs_perslid_key
|
||
AND pwp.prs_werkplek_key = wp.prs_werkplek_key
|
||
AND wp.prs_alg_ruimte_key = rg.alg_ruimte_key);
|
||
|
||
BEGIN
|
||
-- toevoegen gebouwen
|
||
INSERT INTO alg_gebouw (alg_locatie_key,
|
||
alg_srtgebouw_key,
|
||
alg_gebouw_naam,
|
||
alg_gebouw_code)
|
||
SELECT alg_locatie_key,
|
||
40,
|
||
'Onbekend',
|
||
'O'
|
||
FROM alg_locatie l
|
||
WHERE NOT EXISTS (SELECT alg_locatie_key
|
||
FROM alg_gebouw g
|
||
WHERE g.alg_locatie_key = l.alg_locatie_key
|
||
AND g.alg_gebouw_verwijder IS NULL)
|
||
AND alg_locatie_omschrijving NOT LIKE 'CSU%';
|
||
|
||
-- toevoegen verdiepingen
|
||
INSERT INTO alg_verdieping (alg_gebouw_key,
|
||
alg_verdieping_omschrijving,
|
||
alg_verdieping_volgnr,
|
||
alg_verdieping_code)
|
||
SELECT alg_gebouw_key,
|
||
'Onbekend',
|
||
1,
|
||
'O'
|
||
FROM alg_gebouw g
|
||
WHERE NOT EXISTS (SELECT alg_gebouw_key
|
||
FROM alg_verdieping v
|
||
WHERE v.alg_gebouw_key = g.alg_gebouw_key
|
||
AND v.alg_verdieping_verwijder IS NULL);
|
||
|
||
-- toevoegen ruimten
|
||
INSERT INTO alg_ruimte (alg_verdieping_key,
|
||
alg_ruimte_nr,
|
||
alg_srtruimte_key,
|
||
alg_ruimte_omschrijving)
|
||
SELECT alg_verdieping_key,
|
||
'-',
|
||
1,
|
||
'Onbekend'
|
||
FROM alg_v_aanwezigverdieping v
|
||
WHERE NOT EXISTS (SELECT alg_verdieping_key
|
||
FROM alg_ruimte r
|
||
WHERE r.alg_verdieping_key = v.alg_verdieping_key
|
||
AND r.alg_ruimte_verwijder IS NULL);
|
||
|
||
FOR rec IN c
|
||
LOOP
|
||
prs.movetoruimte (rec.prs_perslid_key,
|
||
rec.alg_ruimte_key,
|
||
'L',
|
||
1);
|
||
END LOOP;
|
||
|
||
END;
|
||
/
|
||
|
||
|
||
-- Statusberichten die voor de koppeling met Axxerion op de SFTP server geplaatst worden.
|
||
-- Is copy van RABO
|
||
CREATE OR REPLACE VIEW csun_v_export_status_axxerion (
|
||
result,
|
||
result_order
|
||
)
|
||
AS
|
||
SELECT fac_rapport_regel, fac_rapport_volgnr
|
||
FROM fac_rapport
|
||
WHERE fac_rapport_node = SUBSTR ('STATUS_AXXERION', 1, 12);
|
||
|
||
|
||
CREATE OR REPLACE PROCEDURE csun_select_status_axxerion (p_applname IN VARCHAR2,
|
||
p_applrun IN VARCHAR2)
|
||
AS
|
||
CURSOR c (
|
||
p_from DATE,
|
||
p_to DATE)
|
||
IS
|
||
SELECT mld_melding_externnr,
|
||
fac_tracking_datum,
|
||
DECODE (sn.fac_srtnotificatie_code,
|
||
'MLDACP', 'ACCEPT',
|
||
'MLDREJ', 'REJECT',
|
||
'MLDAFM', 'CLOSE',
|
||
'MLDAFR', 'FINCLOSE',
|
||
'MLDUPD', 'UPDATE',
|
||
'Invalid')
|
||
status,
|
||
mld_melding_einddatum,
|
||
mld_melding_opmerking,
|
||
DECODE (fac_srtnotificatie_code, 'MLDUPD', 1, 0) volgorde
|
||
FROM fac_tracking t, fac_srtnotificatie sn, mld_melding m
|
||
WHERE fac_tracking_datum BETWEEN p_from AND p_to
|
||
AND t.fac_srtnotificatie_key = sn.fac_srtnotificatie_key
|
||
AND t.fac_tracking_refkey = m.mld_melding_key
|
||
AND m.mld_melding_externnr IS NOT NULL
|
||
AND m.prs_perslid_key = 8902 -- melding is geinitieerd via de PostNL koppeling.
|
||
AND (sn.fac_srtnotificatie_code = 'MLDACP'
|
||
OR sn.fac_srtnotificatie_code = 'MLDREJ'
|
||
OR sn.fac_srtnotificatie_code = 'MLDAFM'
|
||
OR sn.fac_srtnotificatie_code = 'MLDAFR'
|
||
OR sn.fac_srtnotificatie_code = 'MLDUPD')
|
||
ORDER BY mld_melding_externnr, volgorde, fac_tracking_datum;
|
||
|
||
v_from DATE;
|
||
v_to DATE;
|
||
v_count NUMBER;
|
||
v_externnr VARCHAR2 (10);
|
||
v_bestand VARCHAR2 (100);
|
||
v_empty NUMBER;
|
||
BEGIN
|
||
v_count := 0;
|
||
v_empty := 1;
|
||
v_externnr := '9999';
|
||
v_bestand := SUBSTR (p_applname, 1, 12);
|
||
|
||
-- de laatste synchronisatietijd wordt opgeslagen in fac_rapport met een speciale node naam eindigend op een 1.
|
||
-- mocht deze niet gevuld zijn (initieel) dan gebruiken we het huidige uur.
|
||
BEGIN
|
||
SELECT fac.safe_to_date (fac_rapport_regel, 'yyyy-mm-dd hh24:mi')
|
||
INTO v_from
|
||
FROM fac_rapport
|
||
WHERE SUBSTR (v_bestand, 1, 11) || '1' = fac_rapport_node;
|
||
EXCEPTION
|
||
WHEN NO_DATA_FOUND
|
||
THEN
|
||
v_from := TRUNC (SYSDATE, 'HH24');
|
||
END;
|
||
|
||
-- het einde van de periode mag niet verder liggen dan de huidige tijd
|
||
v_to := v_from + 1 / (24 * 4);
|
||
|
||
IF v_to > SYSDATE
|
||
THEN
|
||
v_to := v_from;
|
||
END IF;
|
||
|
||
-- Eerst opruiming
|
||
DELETE FROM imp_log
|
||
WHERE imp_log_applicatie = p_applname;
|
||
|
||
DELETE fac_rapport
|
||
WHERE fac_rapport_node = v_bestand;
|
||
|
||
-- als de export een tijdje niet gedraaid is dan halen we dit weer in door de periode groter te maken.
|
||
WHILE v_to + 1 / (24 * 4) < SYSDATE AND v_count < 10
|
||
LOOP
|
||
v_to := v_to + 1 / (24 * 4);
|
||
v_count := v_count + 1;
|
||
END LOOP;
|
||
|
||
-- header
|
||
csun_add_xml_row (v_bestand, '<?xml version="1.0" encoding="windows-1252"?>');
|
||
csun_add_xml_row (v_bestand, '<facilitor>');
|
||
csun_add_xml_row (v_bestand, '<meldingstatusses>');
|
||
|
||
FOR rec IN c (v_from, v_to)
|
||
LOOP
|
||
v_empty := 0;
|
||
|
||
IF NOT (rec.mld_melding_externnr = v_externnr AND rec.status = 'UPDATE')
|
||
THEN
|
||
v_externnr := rec.mld_melding_externnr;
|
||
csun_add_xml_row (v_bestand, '<meldingstatus key="' || rec.mld_melding_externnr || '">');
|
||
csun_add_xml_element (v_bestand,
|
||
'timestamp',
|
||
TO_CHAR (rec.fac_tracking_datum, 'dd-mm-yyyy hh24:mi'));
|
||
csun_add_xml_element (v_bestand, 'status', rec.status);
|
||
csun_add_xml_element (v_bestand, 'afhandeling', rec.mld_melding_opmerking);
|
||
csun_add_xml_element (v_bestand,
|
||
'oplosdatum',
|
||
TO_CHAR (rec.mld_melding_einddatum, 'dd-mm-yyyy hh24:mi'));
|
||
csun_add_xml_row (v_bestand, '</meldingstatus>');
|
||
END IF;
|
||
END LOOP;
|
||
|
||
csun_add_xml_row (v_bestand, '</meldingstatusses>');
|
||
csun_add_xml_row (v_bestand, '</facilitor>');
|
||
|
||
-- Als er niet geexporteerd is dan gaan we alle regels verwijderen
|
||
-- zodat er niet een leeg xml bestand komt te staan met alleen de facilitor tags.
|
||
IF v_empty = 1
|
||
THEN
|
||
DELETE fac_rapport
|
||
WHERE fac_rapport_node = v_bestand;
|
||
END IF;
|
||
|
||
DELETE fac_rapport
|
||
WHERE fac_rapport_node = SUBSTR (v_bestand, 1, 11) || '1';
|
||
|
||
INSERT INTO fac_rapport (fac_rapport_node, fac_rapport_regel)
|
||
VALUES (SUBSTR (v_bestand, 1, 11) || '1', TO_CHAR (v_to, 'yyyy-mm-dd hh24:mi'));
|
||
END;
|
||
/
|
||
|
||
---- CSUN#25915: Portaal specials...
|
||
---- Drie Grafieken, scope op afdelingnivo1 (BU):
|
||
-- 1. openstaande meldingen per vakgroep.
|
||
-- 2. meldingen per maand.
|
||
-- 3. gemiddelde uitvoertijd per maand.
|
||
|
||
-- 1. openstaande meldingen per vakgroep.
|
||
CREATE OR REPLACE VIEW csun_v_graph_vakgroep_open
|
||
(
|
||
FCLT_XAS_,
|
||
FCLT_YAS_,
|
||
FCLT_URL,
|
||
FCLT_3D_AFDELING_KEY
|
||
)
|
||
AS
|
||
SELECT sd.ins_srtdiscipline_prefix || '-' || d.ins_discipline_omschrijving,
|
||
COUNT (d.ins_discipline_omschrijving),
|
||
'appl/mld/mld_search.asp?urole=fo' || '&' || 'autosearch=1' || '&' || 'disc_key_str=' || d.ins_discipline_key || '&' || 'dep_key=' || p.prs_afdeling_key,
|
||
p.prs_afdeling_key
|
||
FROM mld_melding m, mld_stdmelding std, ins_tab_discipline d, ins_srtdiscipline sd, prs_perslid p
|
||
WHERE m.mld_stdmelding_key = std.mld_stdmelding_key
|
||
AND std.mld_ins_discipline_key = d.ins_discipline_key
|
||
AND d.ins_srtdiscipline_key = sd.ins_srtdiscipline_key
|
||
AND mld_melding_status IN (2, 3, 4, 7, 0) -- 2-ingevoerd, 3-ingezien, 4-geaccepteerd, 7-uitgegeven, 0-pending
|
||
AND m.prs_perslid_key = p.prs_perslid_key
|
||
GROUP BY d.ins_discipline_key, sd.ins_srtdiscipline_prefix || '-' || d.ins_discipline_omschrijving, p.prs_afdeling_key;
|
||
|
||
|
||
-- 2. meldingen per maand.
|
||
CREATE OR REPLACE VIEW csun_v_graph_meldingpm
|
||
(
|
||
FCLT_XAS_,
|
||
FCLT_YAS_,
|
||
VOLGORDE,
|
||
FCLT_3D_AFDELING_KEY
|
||
)
|
||
AS
|
||
SELECT DECODE (SUBSTR (TO_CHAR (mld_melding_datum, 'yyyymm'), 5),
|
||
'01', 'Januari',
|
||
'02', 'Februari',
|
||
'03', 'Maart',
|
||
'04', 'April',
|
||
'05', 'Mei',
|
||
'06', 'Juni',
|
||
'07', 'Juli',
|
||
'08', 'Augustus',
|
||
'09', 'September',
|
||
'10', 'Oktober',
|
||
'11', 'November',
|
||
'December'),
|
||
COUNT (d.ins_discipline_omschrijving),
|
||
TO_CHAR (mld_melding_datum, 'yyyymm'),
|
||
p.prs_afdeling_key
|
||
FROM mld_melding m, mld_stdmelding std, ins_tab_discipline d, prs_perslid p
|
||
WHERE mld_melding_datum BETWEEN ADD_MONTHS (
|
||
TO_DATE (
|
||
TO_CHAR (SYSDATE, 'yyyymm') || '01',
|
||
'yyyymmdd'),
|
||
-11)
|
||
AND SYSDATE
|
||
AND m.mld_stdmelding_key = std.mld_stdmelding_key
|
||
AND std.mld_ins_discipline_key = d.ins_discipline_key
|
||
AND m.prs_perslid_key = p.prs_perslid_key
|
||
GROUP BY TO_CHAR (mld_melding_datum, 'yyyymm'),p.prs_afdeling_key;
|
||
|
||
-- 3. gemiddelde uitvoertijd per maand.
|
||
CREATE OR REPLACE VIEW csun_v_graph_uitvtijd_pm
|
||
(
|
||
FCLT_XAS_,
|
||
FCLT_YAS_,
|
||
VOLGORDE,
|
||
FCLT_3D_AFDELING_KEY
|
||
)
|
||
AS
|
||
SELECT DECODE (SUBSTR (TO_CHAR (mld_melding_datum, 'yyyymm'), 5),
|
||
'01', 'Januari',
|
||
'02', 'Februari',
|
||
'03', 'Maart',
|
||
'04', 'April',
|
||
'05', 'Mei',
|
||
'06', 'Juni',
|
||
'07', 'Juli',
|
||
'08', 'Augustus',
|
||
'09', 'September',
|
||
'10', 'Oktober',
|
||
'11', 'November',
|
||
'December'),
|
||
AVG(COALESCE (fac.gettrackingdate ('MLDREJ', m.mld_melding_key), COALESCE (fac.gettrackingdate ('MLDAFM', m.mld_melding_key), SYSDATE)) - m.mld_melding_datum),
|
||
TO_CHAR (mld_melding_datum, 'yyyymm'),
|
||
p.prs_afdeling_key
|
||
FROM mld_melding m, mld_stdmelding std, ins_tab_discipline d, prs_perslid p
|
||
WHERE mld_melding_datum BETWEEN ADD_MONTHS (
|
||
TO_DATE (
|
||
TO_CHAR (SYSDATE, 'yyyymm') || '01',
|
||
'yyyymmdd'),
|
||
-11)
|
||
AND SYSDATE
|
||
AND m.mld_stdmelding_key = std.mld_stdmelding_key
|
||
AND std.mld_ins_discipline_key = d.ins_discipline_key
|
||
AND m.prs_perslid_key = p.prs_perslid_key
|
||
GROUP BY TO_CHAR (mld_melding_datum, 'yyyymm'),p.prs_afdeling_key;
|
||
|
||
CREATE OR REPLACE VIEW CSUN_V_UDR_MELDING
|
||
(
|
||
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,
|
||
WERKBON_OPDRACHT_NR,
|
||
KOSTEN,
|
||
OFFERTE_BEDRAG,
|
||
EINDDATUM_KLANT,
|
||
KLANTKENMERK,
|
||
KLANTSPEC_REGIO_INDELING,
|
||
OPDRACHTNUMMER_CSU,
|
||
AKKOORD_KLANT,
|
||
DATUM_AFRONDING,
|
||
DATUM_FACTURATIE,
|
||
ACCOUNTCODE,
|
||
FCLT_F_CLIENT,
|
||
TIJDSTIP,
|
||
AFHANDELTIJD_DAGEN,
|
||
AFHANDELTIJD_UREN,
|
||
REACTIE,
|
||
REACTIE_OPTIJD,
|
||
UITGEVOERD,
|
||
UITGEVOERD_DOOR,
|
||
AFMELD_KEY,
|
||
GEGROND_ONGEGROND,
|
||
FUNCTIE_AFMELDER
|
||
)
|
||
AS
|
||
SELECT m."MELDING_KEY",
|
||
m."MELDINGNUMMER",
|
||
m."MELDING_START_KEY",
|
||
m."EXTERNNUMMER",
|
||
m."MELDING_REGIO",
|
||
m."MELDING_DISTRICT",
|
||
m."MELDING_LOCATIECODE",
|
||
m."MELDING_LOCATIE",
|
||
m."MELDING_LOCATIEPLAATS",
|
||
m."FCLT_3D_LOCATIE_KEY",
|
||
m."MELDING_GEBOUWCODE",
|
||
m."MELDING_GEBOUW",
|
||
m."MELDING_VERDIEPING",
|
||
m."MELDING_RUIMTENR",
|
||
m."MELDING_RUIMTE",
|
||
m."MELDING_ORDERNR",
|
||
m."KOSTENSOORTGROEP",
|
||
m."KOSTENSOORT",
|
||
m."KOSTENPLAATS",
|
||
m."KOSTENPLAATS_OMS",
|
||
m."MELDER",
|
||
m."MELDER_KEY",
|
||
m."AFDELING",
|
||
m."AFDELING_OMSCHRIJVING",
|
||
m."FCLT_3D_AFDELING_KEY",
|
||
m."BEDRIJF_KEY",
|
||
m."INVOERDER",
|
||
m."MELDBRON",
|
||
m."SOORTMELDING",
|
||
m."FCLT_3D_DISCIPLINE_KEY",
|
||
m."PRODUCTGROEP",
|
||
m."SUBPRODUCTGROEP",
|
||
m."BEHANDELGROEP",
|
||
m."BEHANDELAAR",
|
||
m."BEHANDELAAR_KEY",
|
||
m."SUBPRODUCTGROEPGROEP",
|
||
m."FCLT_3D_DISCIPLINE2_KEY",
|
||
m."ACTIEVE_BEHANDELGROEP",
|
||
m."ACTIEVE_BEHANDELAAR_KEY",
|
||
m."ACTIEVE_BEHANDELAAR",
|
||
m."MELDING_STATUS",
|
||
m."SLA_NVT",
|
||
m."SLA_WERKDGN",
|
||
m."SLA_WERKUREN",
|
||
m."SLA_RESPIJTDGN",
|
||
m."SLA_RESPIJTUREN",
|
||
m."SLA_ACCPTDGN",
|
||
m."SLA_ACCPTUREN",
|
||
m."PLAN_UITVOERTIJD_SLA",
|
||
m."MELDING_DATUM",
|
||
m."MELDING_EINDDATUM",
|
||
m."MELDING_EINDDATUM_STD",
|
||
m."MELDING_ACCEPTDATUM",
|
||
m."MELDING_AFGEMELD",
|
||
m."MELDING_ACCEPTED",
|
||
m."DOORLOOPTIJD_WERKDGN",
|
||
m."DOORLOOPTIJD_WERKUREN",
|
||
m."ONDERWERP",
|
||
m."VOMSCHRIJVING",
|
||
m."MELDING_OPMERKING",
|
||
m."PRIORITEIT",
|
||
m."PRIORITEITTXT",
|
||
m."RATING",
|
||
m."RATING_OPMERKING",
|
||
m."BOLLETJE",
|
||
m."ACTIECODE",
|
||
m."ACCEPT_SLA_DAGEN",
|
||
m."ACCEPT_SLA_UREN",
|
||
m."UITVOERING_SLA_DAGEN",
|
||
m."UITVOERING_SLA_UREN",
|
||
m."AFSPRAAK_SLA_DAGEN",
|
||
m."AFSPRAAK_SLA_UREN",
|
||
m."ACCEPT_SLA_OPTIJD",
|
||
m."UITVOERING_SLA_OPTIJD",
|
||
m."AFSPRAAK_SLA_OPTIJD",
|
||
m."SELFSERVICE",
|
||
(SELECT DISTINCT (mld_kenmerkmelding_waarde)
|
||
FROM mld_kenmerkmelding mk, mld_kenmerk k
|
||
WHERE mk.mld_kenmerk_key = k.mld_kenmerk_key
|
||
AND mld_srtkenmerk_key = 2
|
||
AND mk.mld_melding_key = m.melding_key
|
||
AND mk.mld_kenmerkmelding_verwijder IS NULL)
|
||
werkbon_opdracht_nr,
|
||
(SELECT DISTINCT (fac.safe_to_number (mld_kenmerkmelding_waarde))
|
||
FROM mld_kenmerkmelding mk, mld_kenmerk k
|
||
WHERE mk.mld_kenmerk_key = k.mld_kenmerk_key
|
||
AND mld_srtkenmerk_key = 101
|
||
AND mk.mld_melding_key = m.melding_key
|
||
AND mk.mld_kenmerkmelding_verwijder IS NULL)
|
||
kosten,
|
||
(SELECT DISTINCT (fac.safe_to_number (mld_kenmerkmelding_waarde))
|
||
FROM mld_kenmerkmelding mk, mld_kenmerk k
|
||
WHERE mk.mld_kenmerk_key = k.mld_kenmerk_key
|
||
AND mld_srtkenmerk_key = 141
|
||
AND mk.mld_melding_key = m.melding_key
|
||
AND mk.mld_kenmerkmelding_verwijder IS NULL)
|
||
offerte_bedrag,
|
||
(SELECT DISTINCT (mld_kenmerkmelding_waarde)
|
||
FROM mld_kenmerkmelding mk, mld_kenmerk k
|
||
WHERE mk.mld_kenmerk_key = k.mld_kenmerk_key
|
||
AND mld_srtkenmerk_key = 161
|
||
AND mk.mld_melding_key = m.melding_key
|
||
AND mk.mld_kenmerkmelding_verwijder IS NULL)
|
||
einddatum_klant,
|
||
(SELECT DISTINCT (alg_onrgoedkenmerk_waarde)
|
||
FROM alg_onrgoedkenmerk aok
|
||
WHERE alg_kenmerk_key = 1240
|
||
AND aok.alg_onrgoed_key = fclt_3d_locatie_key
|
||
AND alg_onrgoedkenmerk_verwijder IS NULL)
|
||
klantkenmerk,
|
||
(SELECT DISTINCT (alg_onrgoedkenmerk_waarde)
|
||
FROM alg_onrgoedkenmerk aok
|
||
WHERE alg_kenmerk_key = 1123
|
||
AND aok.alg_onrgoed_key = fclt_3d_locatie_key
|
||
AND alg_onrgoedkenmerk_verwijder IS NULL)
|
||
klantspec_regio_indeling,
|
||
(SELECT DISTINCT (fac.safe_to_number (mld_kenmerkmelding_waarde))
|
||
FROM mld_kenmerkmelding mk, mld_kenmerk k
|
||
WHERE mk.mld_kenmerk_key = k.mld_kenmerk_key
|
||
AND mld_srtkenmerk_key = 661
|
||
AND mk.mld_melding_key = m.melding_key
|
||
AND mk.mld_kenmerkmelding_verwijder IS NULL)
|
||
opdrachtnummer_csu,
|
||
(SELECT DISTINCT (ud.fac_usrdata_omschr)
|
||
FROM mld_kenmerkmelding mk, mld_kenmerk k, fac_usrdata ud
|
||
WHERE mk.mld_kenmerk_key = k.mld_kenmerk_key
|
||
AND mld_srtkenmerk_key = 681
|
||
AND ud.fac_usrtab_key = 261 -- Eigen tabel ja/nee
|
||
AND ud.fac_usrdata_key =
|
||
fac.safe_to_number (mld_kenmerkmelding_waarde)
|
||
AND mk.mld_melding_key = m.melding_key
|
||
AND mk.mld_kenmerkmelding_verwijder IS NULL)
|
||
akkoord_klant,
|
||
fac.gettrackingdate ('MLDAFR', m.melding_key),
|
||
TO_DATE (DECODE (fac.gettrackingdate ('MLDAFR', m.melding_key),
|
||
NULL, DECODE ((SELECT DISTINCT (fac.safe_to_number (mld_kenmerkmelding_waarde))
|
||
FROM mld_kenmerkmelding mk, mld_kenmerk k
|
||
WHERE mk.mld_kenmerk_key = k.mld_kenmerk_key
|
||
AND mld_srtkenmerk_key = 101
|
||
AND mk.mld_melding_key = m.melding_key
|
||
AND mk.mld_kenmerkmelding_verwijder IS NULL), NULL, NULL, m."MELDING_AFGEMELD"),
|
||
fac.gettrackingdate ('MLDAFR', m.melding_key))) datum_facturatie,
|
||
mc.accountcode,
|
||
mc.fclt_f_client,
|
||
mc.tijdstip,
|
||
mc.afhandeltijd_dagen,
|
||
mc.afhandeltijd_uren,
|
||
mc.reactie,
|
||
mc.reactie_optijd,
|
||
mc.uitgevoerd,
|
||
mc.uitgevoerd_door,
|
||
mc.afmeld_key,
|
||
(SELECT DISTINCT (ud.fac_usrdata_omschr)
|
||
FROM mld_kenmerkmelding mk, mld_kenmerk k, fac_usrdata ud
|
||
WHERE mk.mld_kenmerk_key = k.mld_kenmerk_key
|
||
AND mld_srtkenmerk_key = 741 -- Kenmerksoort Gegrond/ongegrond
|
||
AND ud.fac_usrtab_key = 301 -- Eigen tabel Gegrond/ongegrond
|
||
AND ud.fac_usrdata_key =
|
||
fac.safe_to_number (mld_kenmerkmelding_waarde)
|
||
AND mk.mld_melding_key = m.melding_key
|
||
AND mk.mld_kenmerkmelding_verwijder IS NULL)
|
||
gegrond_ongegrond,
|
||
(SELECT DISTINCT sp.prs_srtperslid_omschrijving
|
||
FROM fac_tracking t, prs_perslid p, prs_srtperslid sp
|
||
WHERE p.prs_srtperslid_key = sp.prs_srtperslid_key
|
||
AND p.prs_perslid_key = t.prs_perslid_key(+)
|
||
AND t.fac_tracking_refkey = m.melding_key
|
||
AND fac_srtnotificatie_key = 35)
|
||
functie_afmelder
|
||
FROM mld_v_udr_melding m, csun_v_rap_melding mc
|
||
WHERE mc.melding = m.melding_key;
|
||
|
||
-- CSUN#54801 Wanneer geen locatie bij mailmeldingen, dan ook niet de vakgroep herbepalen. Vervolgens notificatie.
|
||
CREATE OR REPLACE VIEW csun_v_rap_mldmail_nobo
|
||
(
|
||
melding_nr,
|
||
melding_datum,
|
||
melding_omschrijving,
|
||
melding_opmerking,
|
||
lockey,
|
||
locatie,
|
||
voor,
|
||
melding_externnr,
|
||
gebouwcode_klant,
|
||
locatiecode_klant
|
||
)
|
||
AS
|
||
SELECT m.mld_melding_key,
|
||
m.mld_melding_datum,
|
||
SUBSTR (m.mld_melding_omschrijving,
|
||
1,
|
||
INSTR (m.mld_melding_omschrijving, CHR (13)))
|
||
AS omschrijving,
|
||
m.mld_melding_opmerking,
|
||
m.mld_alg_locatie_key,
|
||
l.alg_locatie_omschrijving,
|
||
p.prs_perslid_naam AS voor,
|
||
m.mld_melding_externnr,
|
||
(SELECT mkm.mld_kenmerkmelding_waarde
|
||
FROM mld_kenmerkmelding mkm, mld_kenmerk mk
|
||
WHERE mkm.mld_melding_key = m.mld_melding_key
|
||
AND mk.mld_kenmerk_key = mkm.mld_kenmerk_key
|
||
AND mk.mld_srtkenmerk_key = 201)
|
||
AS gebouwcode_klant, -- Key voor kenmerksoort Gebouwcode klant
|
||
(SELECT mkm.mld_kenmerkmelding_waarde
|
||
FROM mld_kenmerkmelding mkm, mld_kenmerk mk
|
||
WHERE mkm.mld_melding_key = m.mld_melding_key
|
||
AND mk.mld_kenmerk_key = mkm.mld_kenmerk_key
|
||
AND mk.mld_srtkenmerk_key = 181)
|
||
AS locatiecode_klant -- Key voor kenmerksoort Locatiecode klant
|
||
FROM mld_melding m, alg_locatie l, prs_perslid p
|
||
WHERE m.mld_melding_status NOT IN (1, 5)
|
||
AND m.mld_stdmelding_key = 41
|
||
AND l.alg_locatie_key = m.mld_alg_locatie_key
|
||
AND m.prs_perslid_key_voor = p.prs_perslid_key;
|
||
|
||
CREATE OR REPLACE VIEW csun_v_noti_mldmail_nobo
|
||
(
|
||
code,
|
||
sender,
|
||
receiver,
|
||
text,
|
||
key,
|
||
xkey
|
||
)
|
||
AS
|
||
SELECT DISTINCT
|
||
'CUST01' AS code,
|
||
NULL,
|
||
13141, -- Persoon Servicedesk NA (voor emailadres: Servicedesk.na@csu.nl).
|
||
'Attentie: deze meldingen zijn niet automatisch doorgezet naar de juiste vakgroep en/of locatie',
|
||
(SELECT fac_usrrap_key
|
||
FROM fac_usrrap
|
||
WHERE fac_usrrap_view_name = 'CSUN_V_RAP_MLDMAIL_NOBO')
|
||
rapportnr,
|
||
NULL
|
||
FROM csun_v_rap_mldmail_nobo;
|
||
|
||
--CSUN#53832 Deze notificatie zorgt ervoor dat de districtmanager wordt genotificeerd over alle notities die worden ingevoerd bij meldingen waaraan geen behandelaar is gekoppeld.
|
||
CREATE OR REPLACE VIEW csun_v_noti_mldnote_nobo
|
||
(
|
||
code,
|
||
sender,
|
||
receiver,
|
||
text,
|
||
key,
|
||
xkey
|
||
)
|
||
AS
|
||
SELECT 'CUST02' AS code,
|
||
NULL AS sender,
|
||
(SELECT fac.safe_to_number (km.alg_onrgoedkenmerk_waarde)
|
||
FROM alg_v_aanwezigonrgoedkenmerk km
|
||
WHERE km.alg_onrgoed_niveau = 'D'
|
||
AND km.alg_kenmerk_key = 1021
|
||
AND km.alg_onrgoed_key = l.alg_district_key)
|
||
AS receiver,
|
||
'Er is een opmerking geplaatst bij melding '
|
||
|| m.mld_melding_key
|
||
|| ' ('
|
||
|| COALESCE (m.mld_melding_onderwerp,
|
||
sm.mld_stdmelding_omschrijving)
|
||
|| ')'
|
||
AS text,
|
||
m.mld_melding_key AS key,
|
||
NULL AS extra_key
|
||
FROM mld_melding_note n,
|
||
mld_melding m,
|
||
alg_v_locatie_gegevens l,
|
||
mld_stdmelding sm
|
||
WHERE n.mld_melding_key = m.mld_melding_key
|
||
AND l.alg_locatie_key = m.mld_alg_locatie_key
|
||
AND m.mld_melding_behandelaar_key IS NULL
|
||
AND sm.mld_stdmelding_key = m.mld_stdmelding_key
|
||
AND ( (TO_CHAR (n.mld_melding_note_aanmaak, 'HH24') =
|
||
TO_CHAR (SYSDATE, 'HH24') - 1 --Vandaag, een uur geleden
|
||
AND TRUNC (n.mld_melding_note_aanmaak) = TRUNC (SYSDATE))
|
||
OR (TO_CHAR (n.mld_melding_note_aanmaak, 'HH24') =
|
||
TO_CHAR (SYSDATE, 'HH24') - 1 --Gisteren, een uur geleden
|
||
AND TRUNC (n.mld_melding_note_aanmaak) =
|
||
TRUNC (SYSDATE) - 1));
|
||
|
||
-- CSUN#60798 Notificatie om gebruikers te berichten wanneer een klant akkoord heeft gegeven in een workflow aanvraag contractmutatie
|
||
CREATE OR REPLACE VIEW csun_v_rap_wfcntraanvraag
|
||
(
|
||
melding_nr,
|
||
melding_datum,
|
||
melding_einddatum,
|
||
melding_onderwerp,
|
||
standaardmelding,
|
||
melding_omschrijving,
|
||
melding_opmerking
|
||
)
|
||
AS
|
||
SELECT m.mld_melding_key,
|
||
m.mld_melding_datum,
|
||
m.mld_melding_einddatum,
|
||
m.mld_melding_onderwerp,
|
||
sm.mld_stdmelding_omschrijving,
|
||
m.mld_melding_omschrijving,
|
||
m.mld_melding_opmerking
|
||
FROM mld_melding m,
|
||
mld_kenmerkmelding kmm,
|
||
mld_kenmerk km,
|
||
mld_srtkenmerk sk,
|
||
mld_stdmelding sm,
|
||
fac_tracking t,
|
||
fac_srtnotificatie sn
|
||
WHERE m.mld_stdmelding_key IN (1241,1281) -- Klant, ontvangst calculatie & herkansing
|
||
AND m.mld_melding_status = 5 -- Afgemeld
|
||
AND sk.mld_srtkenmerk_key = 601 -- Klant akkoord
|
||
AND kmm.mld_kenmerkmelding_waarde = '1861' -- Ja
|
||
AND sm.mld_stdmelding_key = m.mld_stdmelding_key
|
||
AND sk.mld_srtkenmerk_key = km.mld_srtkenmerk_key
|
||
AND km.mld_kenmerk_key = kmm.mld_kenmerk_key
|
||
AND kmm.mld_melding_key = m.mld_melding_key
|
||
AND t.fac_tracking_refkey = m.mld_melding_key
|
||
AND t.fac_srtnotificatie_key = sn.fac_srtnotificatie_key
|
||
AND sn.fac_srtnotificatie_code = 'MLDAFM';
|
||
|
||
--CSUN#60798 Notificatie aan medewerker bedrijfsbureau en calculators indien klant akkoord is.
|
||
CREATE OR REPLACE VIEW csun_v_noti_wfcntraanvraag
|
||
(
|
||
code,
|
||
sender,
|
||
receiver,
|
||
text,
|
||
key,
|
||
xkey
|
||
)
|
||
AS
|
||
SELECT 'CUST03' AS code,
|
||
NULL AS sender,
|
||
p.prs_perslid_key AS receiver,
|
||
'Klant heeft akkoord gegeven op calculatie bij melding: '
|
||
|| m.melding_nr
|
||
|| ' ('
|
||
|| COALESCE (m.melding_onderwerp, m.standaardmelding)
|
||
|| ')'
|
||
AS text,
|
||
m.melding_nr AS key,
|
||
NULL AS extra_key
|
||
FROM csun_v_rap_wfcntraanvraag m,
|
||
prs_perslid p,
|
||
fac_v_rap_groepleden agl,
|
||
fac_groep g
|
||
WHERE p.prs_perslid_oslogin = agl.fclt_f_login
|
||
AND g.fac_groep_key IN (441, 461) --autorisatiegroepen respectievelijk: Calculators en BB NA
|
||
AND g.fac_groep_omschrijving = agl.fclt_f_groep
|
||
AND m.melding_nr NOT IN
|
||
(SELECT t.fac_tracking_refkey
|
||
FROM fac_tracking t
|
||
WHERE fac_tracking_oms LIKE '%CUST03%'
|
||
AND t.fac_tracking_refkey = m.melding_nr)
|
||
ORDER BY key, receiver;
|
||
|
||
--CSUN#60798 Notificatie aan accountmanagers als er voor zijn klant/locatie een actie openstaat
|
||
CREATE OR REPLACE VIEW csun_v_noti_wfcntr_accm
|
||
(
|
||
code,
|
||
sender,
|
||
receiver,
|
||
text,
|
||
key,
|
||
xkey
|
||
)
|
||
AS
|
||
SELECT 'CUST04' AS code,
|
||
NULL AS sender,
|
||
(SELECT ud_a.fac_usrdata_prijs -- Hier wordt de prs_perslid_key van de betreffende accountmanager vastgelegd.
|
||
FROM alg_onrgoedkenmerk aogc, fac_usrdata ud_a
|
||
WHERE aogc.alg_onrgoed_key = m.mld_alg_locatie_key
|
||
AND aogc.alg_kenmerk_key = 1000 --Kenmerk Client bij locatie (1801 in ACCP)
|
||
AND aogc.alg_onrgoed_niveau = 'L'
|
||
and ud_a.fac_usrtab_key = 1 -- Eigen tabel 'Client'
|
||
and ud_a.fac_usrdata_key = aogc.alg_onrgoedkenmerk_waarde)
|
||
AS receiver,
|
||
('Er staat een actie voor u klaar mbt een aanvraag contractmutatie')
|
||
AS text,
|
||
m.mld_melding_key AS key,
|
||
NULL AS extra_key
|
||
FROM mld_melding m, mld_stdmelding sm
|
||
WHERE sm.mld_stdmelding_key = m.mld_stdmelding_key
|
||
AND sm.mld_ins_discipline_key = 862 -- Vakgroep Accountmanagers
|
||
AND m.mld_melding_status IN (2, 3, 4) -- Nieuw, Te accepteren, In behandeling
|
||
AND m.mld_melding_key NOT IN
|
||
(SELECT t.fac_tracking_refkey
|
||
FROM fac_tracking t
|
||
WHERE fac_tracking_oms like '%CUST04%'
|
||
AND t.fac_tracking_refkey = m.mld_melding_key);
|
||
|
||
--CSUN#60798 Notificatie aan accountmanagers (via kenmerk bij locatie) en calculators (via autorisatiegroep) indien klant niet akkoord is.
|
||
CREATE OR REPLACE VIEW csun_v_noti_wfcntr_cancel
|
||
(
|
||
code,
|
||
sender,
|
||
receiver,
|
||
text,
|
||
key,
|
||
xkey
|
||
)
|
||
AS
|
||
SELECT 'CUST05' AS code,
|
||
NULL AS sender,
|
||
(SELECT ud_a.fac_usrdata_prijs -- Hier wordt de prs_perslid_key van de betreffende accountmanager vastgelegd.
|
||
FROM alg_onrgoedkenmerk aogc, fac_usrdata ud_a
|
||
WHERE aogc.alg_onrgoed_key = m.mld_alg_locatie_key
|
||
AND aogc.alg_kenmerk_key = 1000 --Kenmerk Client bij locatie (1801 in ACCP)
|
||
AND aogc.alg_onrgoed_niveau = 'L'
|
||
and ud_a.fac_usrtab_key = 1 -- Eigen tabel 'Client'
|
||
and ud_a.fac_usrdata_key = aogc.alg_onrgoedkenmerk_waarde)
|
||
AS receiver,
|
||
('Een klant heeft een calculatie mbt een aanvraag contractmutatie niet akkoord bevonden')
|
||
AS text,
|
||
m.mld_melding_key AS key,
|
||
NULL AS extra_key
|
||
FROM mld_melding m,
|
||
mld_stdmelding sm,
|
||
mld_kenmerkmelding kmm,
|
||
mld_kenmerk km
|
||
WHERE sm.mld_stdmelding_key = m.mld_stdmelding_key
|
||
AND m.mld_melding_key = kmm.mld_melding_key
|
||
AND sm.mld_ins_discipline_key = 861 --Vakgroep klant
|
||
AND km.mld_srtkenmerk_key = 601 -- Kenmerksoort Klant akkoord
|
||
AND kmm.mld_kenmerkmelding_waarde = '1862' -- Niet akkoord
|
||
AND kmm.mld_kenmerk_key = km.mld_kenmerk_key
|
||
AND m.mld_melding_status IN (1, 5) --Afgewezen, Afgemeld
|
||
AND m.mld_melding_key NOT IN
|
||
(SELECT t.fac_tracking_refkey
|
||
FROM fac_tracking t
|
||
WHERE fac_tracking_oms like '%CUST05%'
|
||
AND t.fac_tracking_refkey = m.mld_melding_key)
|
||
UNION ALL
|
||
SELECT 'CUST05' AS code,
|
||
NULL AS sender,
|
||
p.prs_perslid_key AS receiver,
|
||
('Een klant heeft een calculatie mbt een aanvraag contractmutatie niet akkoord bevonden')
|
||
AS text,
|
||
m.mld_melding_key AS key,
|
||
NULL AS extra_key
|
||
FROM mld_melding m,
|
||
mld_stdmelding sm,
|
||
mld_kenmerkmelding kmm,
|
||
mld_kenmerk km,
|
||
prs_perslid p,
|
||
fac_v_rap_groepleden agl,
|
||
fac_groep g
|
||
WHERE p.prs_perslid_oslogin = agl.fclt_f_login
|
||
AND g.fac_groep_key IN (441) --autorisatiegroep Calculators
|
||
AND g.fac_groep_omschrijving = agl.fclt_f_groep
|
||
AND sm.mld_stdmelding_key = m.mld_stdmelding_key
|
||
AND m.mld_melding_key = kmm.mld_melding_key
|
||
AND sm.mld_ins_discipline_key = 861 --Vakgroep klant
|
||
AND km.mld_srtkenmerk_key = 601 -- Kenmerksoort Klant akkoord
|
||
AND kmm.mld_kenmerkmelding_waarde = '1862' -- Niet akkoord
|
||
AND kmm.mld_kenmerk_key = km.mld_kenmerk_key
|
||
AND m.mld_melding_status IN (1, 5) --Afgewezen, Afgemeld
|
||
AND m.mld_melding_key NOT IN
|
||
(SELECT t.fac_tracking_refkey
|
||
FROM fac_tracking t
|
||
WHERE fac_tracking_oms like '%CUST05%'
|
||
AND t.fac_tracking_refkey = m.mld_melding_key);
|
||
|
||
--CSUN#59537
|
||
CREATE OR REPLACE PROCEDURE csun_import_planning (p_import_key IN NUMBER)
|
||
IS
|
||
c_fielddelimitor VARCHAR2 (1) := ';';
|
||
v_newline VARCHAR2 (1000);
|
||
v_aanduiding VARCHAR2 (200);
|
||
v_errorhint VARCHAR2 (1000);
|
||
v_errormsg VARCHAR2 (1000);
|
||
oracle_err_num NUMBER;
|
||
oracle_err_mes VARCHAR2 (200);
|
||
header_is_valid NUMBER;
|
||
v_ongeldig NUMBER (1);
|
||
v_count_tot NUMBER (10);
|
||
v_count_import NUMBER (10);
|
||
v_count_melding NUMBER := 1;
|
||
v_count_alglocatie NUMBER := 1;
|
||
v_year_method NUMBER := 1;
|
||
-- De importvelden:
|
||
v_fac_import_key VARCHAR (256);
|
||
v_fac_import_index VARCHAR (256);
|
||
v_mld_stdmelding_key VARCHAR (256);
|
||
v_mld_stdmelding_oms VARCHAR (256);
|
||
v_alg_locatie_code VARCHAR (256);
|
||
v_alg_locatie_oms VARCHAR (256);
|
||
v_uitvoerjaar VARCHAR (256);
|
||
v_uitvoerweek VARCHAR (256);
|
||
v_onderwerp VARCHAR (256);
|
||
v_omschrijving VARCHAR (4000);
|
||
v_aanvrageremail VARCHAR (256);
|
||
|
||
CURSOR c
|
||
IS
|
||
SELECT *
|
||
FROM fac_imp_file
|
||
WHERE fac_import_key = p_import_key
|
||
ORDER BY fac_imp_file_index;
|
||
BEGIN
|
||
v_count_tot := 0;
|
||
v_count_import := 0;
|
||
header_is_valid := 0;
|
||
|
||
-- Eerst opschonen voor we beginnen
|
||
DELETE FROM csun_imp_planning;
|
||
|
||
FOR rec IN c
|
||
LOOP
|
||
BEGIN
|
||
v_newline := rec.fac_imp_file_line;
|
||
v_fac_import_key := rec.fac_import_key;
|
||
v_fac_import_index := rec.fac_imp_file_index;
|
||
v_aanduiding := '';
|
||
v_errorhint := 'Fout bij opvragen te importeren rij';
|
||
v_ongeldig := 0;
|
||
|
||
IF SUBSTR (v_newline, 1, 3) = '??A???A>??A?'
|
||
THEN
|
||
-- EF BB BF aangetroffen
|
||
fac.imp_writelog (p_import_key,
|
||
'W',
|
||
'Byte Order Mark aangetroffen',
|
||
'Bestand heeft onbehandeld UTF-8 formaat.');
|
||
v_newline := SUBSTR (v_newline, 4);
|
||
END IF;
|
||
|
||
-- Lees alle veldwaarden
|
||
fac.imp_getfield (v_newline, c_fielddelimitor, v_mld_stdmelding_key); -- Soort melding key
|
||
fac.imp_getfield (v_newline, c_fielddelimitor, v_mld_stdmelding_oms); -- Soort melding omschrijving
|
||
fac.imp_getfield (v_newline, c_fielddelimitor, v_alg_locatie_code); -- Locatie key
|
||
fac.imp_getfield (v_newline, c_fielddelimitor, v_alg_locatie_oms); -- Locatieomschrijving
|
||
fac.imp_getfield (v_newline, c_fielddelimitor, v_uitvoerjaar); -- Uitvoerjaar
|
||
fac.imp_getfield (v_newline, c_fielddelimitor, v_uitvoerweek); -- Uitvoerweek
|
||
fac.imp_getfield (v_newline, c_fielddelimitor, v_onderwerp); -- Onderwerp
|
||
fac.imp_getfield (v_newline, c_fielddelimitor, v_omschrijving); -- Omschrijving
|
||
fac.imp_getfield (v_newline, c_fielddelimitor, v_aanvrageremail); --Emailadres aanvrager
|
||
|
||
IF (fac.safe_to_number (v_uitvoerweek) < 10)
|
||
THEN
|
||
v_uitvoerweek := (0 || v_uitvoerweek);
|
||
END IF;
|
||
|
||
v_aanduiding :=
|
||
'['
|
||
|| v_mld_stdmelding_key
|
||
|| '|'
|
||
|| v_alg_locatie_code
|
||
|| '|'
|
||
|| v_uitvoerjaar
|
||
|| '|'
|
||
|| v_uitvoerweek
|
||
|| '] ';
|
||
|
||
v_count_tot := v_count_tot + 1;
|
||
|
||
-- Ik controleer of ik een geldige header heb, dat is: in de juiste kolommen de juiste kolomkop. Ik controleer daarbij ALLE kolommen!
|
||
-- Ik negeer alles totdat ik een geldige header ben gepasseerd.
|
||
IF (header_is_valid = 0)
|
||
THEN
|
||
IF UPPER (v_mld_stdmelding_key) = 'MELDING'
|
||
AND UPPER (v_mld_stdmelding_oms) = 'MELDINGOMSCHRIJVING'
|
||
AND UPPER (v_alg_locatie_code) = 'LOCATIECODE'
|
||
AND UPPER (v_alg_locatie_oms) = 'LOCATIE'
|
||
AND UPPER (v_uitvoerjaar) = 'UITVOERJAAR'
|
||
AND UPPER (v_uitvoerweek) = 'UITVOERWEEK'
|
||
AND UPPER (v_onderwerp) = 'ONDERWERP' --Lengte max 80
|
||
AND UPPER (v_omschrijving) = 'OMSCHRIJVING' --Lengte max 4000
|
||
AND UPPER (v_aanvrageremail) = 'AANVRAGEREMAIL' --Lengte max 4000
|
||
THEN
|
||
header_is_valid := 1;
|
||
END IF;
|
||
ELSE
|
||
--Controle of de opgegeven stdmelding wel aanwezig is
|
||
SELECT COUNT ( * )
|
||
INTO v_count_melding
|
||
FROM mld_stdmelding sm
|
||
WHERE v_mld_stdmelding_key = sm.mld_stdmelding_key
|
||
AND sm.mld_stdmelding_verwijder IS NULL;
|
||
|
||
IF v_count_melding = 0
|
||
THEN
|
||
v_ongeldig := 1;
|
||
fac.imp_writelog (
|
||
p_import_key,
|
||
'W',
|
||
v_aanduiding || 'Meldingnummer bestaat niet',
|
||
'Melding wordt niet ingelezen!');
|
||
END IF;
|
||
|
||
--Controle of de opgegeven locatiecode wel aanwezig is
|
||
SELECT COUNT ( * )
|
||
INTO v_count_alglocatie
|
||
FROM alg_locatie l
|
||
WHERE l.alg_locatie_code = v_alg_locatie_code
|
||
AND l.alg_locatie_verwijder IS NULL;
|
||
|
||
IF v_count_alglocatie = 0
|
||
THEN
|
||
v_ongeldig := 1;
|
||
fac.imp_writelog (
|
||
p_import_key,
|
||
'W',
|
||
v_aanduiding || 'Locatie (locatiecode) bestaat niet',
|
||
'Melding wordt niet ingelezen!');
|
||
END IF;
|
||
|
||
--Bepalen methode van inlezen. Verderop bij de import wordt obv weeknummer een datum bepaald (met NEXT_DAY).
|
||
CASE
|
||
WHEN TO_CHAR (TO_DATE ('04-jan-' || v_uitvoerjaar, 'dd-mm-yyyy'),
|
||
'Day') like '%Vrijdag%'
|
||
OR TO_CHAR (TO_DATE ('04-jan-' || v_uitvoerjaar, 'dd-mm-yyyy'),
|
||
'Day') like '%Zaterdag%'
|
||
OR TO_CHAR (TO_DATE ('04-jan-' || v_uitvoerjaar, 'dd-mm-yyyy'),
|
||
'Day') like '%Zondag%'
|
||
THEN
|
||
v_year_method := 2;
|
||
ELSE
|
||
v_year_method := 1;
|
||
END CASE;
|
||
|
||
-- Controle of de melding wel ingelezen moet worden. Meldingen moeten worden ingelezen na volgende week.
|
||
-- Dus stel het is week 8, dan moeten meldingen ingelezen worden in week 10 en verder.
|
||
-- De routine om meldingen automatisch aan te maken (csun_export_meldingen) maakt namelijk op maandag meldingen voor volgende week aan.
|
||
IF TO_NUMBER (TO_CHAR (v_uitvoerjaar) || TO_CHAR (v_uitvoerweek)) <=
|
||
TO_NUMBER (
|
||
TO_CHAR (SYSDATE, 'YYYY') || TO_CHAR (SYSDATE, 'WW'))
|
||
+ 1
|
||
THEN
|
||
v_ongeldig := 1;
|
||
fac.imp_writelog (p_import_key,
|
||
'W',
|
||
v_aanduiding || 'Melding niet in toekomst',
|
||
'Melding wordt niet ingelezen!');
|
||
END IF;
|
||
|
||
IF LENGTH (v_onderwerp) > 80
|
||
THEN
|
||
v_onderwerp := SUBSTR (v_onderwerp, 1, 80);
|
||
fac.imp_writelog (
|
||
p_import_key,
|
||
'W',
|
||
v_aanduiding || 'Onderwerp te lang',
|
||
'Onderwerp wordt afgebroken tot [' || v_onderwerp || ']');
|
||
END IF;
|
||
|
||
IF LENGTH (v_omschrijving) > 4000
|
||
THEN
|
||
v_omschrijving := SUBSTR (v_omschrijving, 1, 4000);
|
||
fac.imp_writelog (
|
||
p_import_key,
|
||
'W',
|
||
v_aanduiding || 'Omschrijving te lang',
|
||
'Omschrijving wordt afgebroken tot ['
|
||
|| v_omschrijving
|
||
|| ']');
|
||
END IF;
|
||
|
||
IF LENGTH (v_aanvrageremail) > 200
|
||
THEN
|
||
v_aanvrageremail := SUBSTR (v_aanvrageremail, 1, 200);
|
||
fac.imp_writelog (
|
||
p_import_key,
|
||
'W',
|
||
v_aanduiding || 'Emailadres aanvrager te lang',
|
||
'Emailadres aanvrager wordt afgebroken tot ['
|
||
|| v_aanvrageremail
|
||
|| ']');
|
||
END IF;
|
||
|
||
IF LENGTH (v_alg_locatie_oms) > 60
|
||
THEN
|
||
v_alg_locatie_oms := SUBSTR (v_alg_locatie_oms, 1, 60);
|
||
END IF;
|
||
|
||
-- Insert geformatteerde import record
|
||
IF header_is_valid = 1 AND v_ongeldig = 0
|
||
THEN
|
||
BEGIN
|
||
v_errorhint :=
|
||
'Fout bij toevoegen regel aan importtabel csun_imp_planning';
|
||
|
||
INSERT INTO csun_imp_planning (fac_import_key,
|
||
fac_import_index,
|
||
fac_import_datum,
|
||
mld_stdmelding_key,
|
||
mld_stdmelding_oms,
|
||
alg_locatie_code,
|
||
alg_locatie_oms,
|
||
uitvoerdatum,
|
||
uitvoerweek,
|
||
uitvoerjaar,
|
||
onderwerp,
|
||
omschrijving,
|
||
aanvrageremail)
|
||
VALUES (v_fac_import_key,
|
||
v_fac_import_index,
|
||
SYSDATE,
|
||
TO_NUMBER (v_mld_stdmelding_key),
|
||
v_mld_stdmelding_oms,
|
||
v_alg_locatie_code,
|
||
v_alg_locatie_oms,
|
||
NEXT_DAY (
|
||
TO_DATE ('04-jan-' || v_uitvoerjaar,
|
||
'dd-mm-yyyy')
|
||
+ (v_uitvoerweek - v_year_method) * 7,
|
||
'vrijd'),
|
||
v_uitvoerweek,
|
||
v_uitvoerjaar,
|
||
v_onderwerp,
|
||
v_omschrijving,
|
||
v_aanvrageremail);
|
||
|
||
COMMIT;
|
||
|
||
v_count_import := v_count_import + 1;
|
||
EXCEPTION
|
||
WHEN OTHERS
|
||
THEN
|
||
oracle_err_num := SQLCODE;
|
||
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
|
||
v_errormsg :=
|
||
v_errorhint
|
||
|| ' ORACLE (error '
|
||
|| oracle_err_num
|
||
|| '/'
|
||
|| oracle_err_mes
|
||
|| ')';
|
||
fac.imp_writelog (
|
||
p_import_key,
|
||
'W',
|
||
v_aanduiding || v_errormsg,
|
||
'Ingelezen regel kan niet worden weggeschreven!');
|
||
COMMIT;
|
||
END;
|
||
END IF;
|
||
END IF;
|
||
END;
|
||
END LOOP;
|
||
|
||
IF (header_is_valid = 0)
|
||
THEN
|
||
fac.imp_writelog (p_import_key,
|
||
'E',
|
||
'Ongeldig importbestand',
|
||
'Geen header of header niet volgens specificatie!');
|
||
ELSE
|
||
fac.imp_writelog (
|
||
p_import_key,
|
||
'S',
|
||
'CSUN_PLANNING/#ingelezen importregels: ' || TO_CHAR (v_count_tot),
|
||
'');
|
||
fac.imp_writelog (
|
||
p_import_key,
|
||
'S',
|
||
'CSUN_PLANNING/#ongeldige niet ingelezen importregels incl header: '
|
||
|| TO_CHAR (v_count_tot - v_count_import),
|
||
'');
|
||
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.imp_writelog (p_import_key,
|
||
'E',
|
||
v_aanduiding || v_errormsg,
|
||
'Inleesproces CSUN_IMPORT_PLANNING afgebroken!');
|
||
END csun_import_planning;
|
||
/
|
||
|
||
--CSUN#59537
|
||
CREATE OR REPLACE PROCEDURE csun_update_planning (p_import_key IN NUMBER)
|
||
AS
|
||
v_fac_import_key NUMBER (10);
|
||
v_fac_import_index NUMBER (10);
|
||
v_errorhint VARCHAR2 (1000);
|
||
v_errormsg VARCHAR2 (1000);
|
||
oracle_err_num NUMBER;
|
||
oracle_err_mes VARCHAR2 (200);
|
||
v_mld_melding_key NUMBER (10);
|
||
v_mld_stdmelding_key NUMBER (10);
|
||
v_mld_melding_datum DATE;
|
||
v_opdr_key NUMBER (10);
|
||
v_perslid_key NUMBER (10) := 4; -- Facilitor
|
||
v_aanvrager_key NUMBER (10);
|
||
v_stdmelding_autoorder VARCHAR2 (200);
|
||
v_dienst_key NUMBER (10);
|
||
v_typeopdr_key NUMBER (10);
|
||
v_bedrijf_key NUMBER (10);
|
||
|
||
-- Haal alle meldingen op uit de tussentabel van volgende week en die nog niet zijn aangemaakt. Deze hebben een datum op de vrijdag volgende week.
|
||
CURSOR cmld
|
||
IS
|
||
SELECT m.*,
|
||
(SELECT fac.safe_to_number (km.alg_onrgoedkenmerk_waarde)
|
||
FROM alg_v_aanwezigonrgoedkenmerk km
|
||
WHERE km.alg_onrgoed_niveau = 'D'
|
||
AND km.alg_kenmerk_key = 1300 --Kenmerk bij district : Medewerker bedrijfsbureau
|
||
AND km.alg_onrgoed_key = l.alg_district_key)
|
||
AS mld_behandelaar_key,
|
||
COALESCE (
|
||
(SELECT MAX (prs_perslid_key) --prs_perslid_key van geimporteerde emailadres of anders Facilitor (perslid_key 4)
|
||
FROM prs_perslid
|
||
WHERE UPPER (prs_perslid_email) = UPPER (m.aanvrageremail)),
|
||
4)
|
||
AS aanvrager_key,
|
||
l.alg_locatie_key
|
||
FROM csun_imp_planning m, alg_v_locatie_gegevens l
|
||
WHERE l.alg_locatie_code = m.alg_locatie_code
|
||
AND m.mld_melding_key IS NULL;
|
||
BEGIN
|
||
FOR recmld IN cmld
|
||
LOOP
|
||
BEGIN
|
||
v_errorhint := 'Insert melding';
|
||
|
||
INSERT INTO mld_melding (prs_perslid_key,
|
||
mld_melding_module,
|
||
mld_meldbron_key,
|
||
mld_alg_locatie_key,
|
||
mld_melding_datum,
|
||
mld_stdmelding_key,
|
||
mld_melding_einddatum,
|
||
mld_melding_status,
|
||
mld_melding_spoed,
|
||
mld_melding_onderwerp,
|
||
mld_melding_omschrijving,
|
||
mld_melding_behandelaar_key)
|
||
VALUES (recmld.aanvrager_key,
|
||
'MLD',
|
||
6, --Bron = Systeem
|
||
recmld.alg_locatie_key,
|
||
SYSDATE,
|
||
recmld.mld_stdmelding_key,
|
||
TO_DATE(CONCAT (
|
||
TO_CHAR (recmld.uitvoerdatum, 'YYYY-MM-DD'),
|
||
' 17:00:00')),
|
||
0, --Status = Bij Frontoffice
|
||
3, --Prioriteit = Normaal
|
||
recmld.onderwerp,
|
||
recmld.omschrijving,
|
||
NULL) --Op verzoek (CSUN#59537) toch niet vullen
|
||
RETURNING mld_melding_key, mld_stdmelding_key, mld_melding_datum
|
||
INTO v_mld_melding_key,
|
||
v_mld_stdmelding_key,
|
||
v_mld_melding_datum;
|
||
|
||
v_errorhint := 'Tracking MLDNEW';
|
||
--PROCEDURE trackaction (pcode VARCHAR2, prefkey NUMBER, puserkey NUMBER, pdatum DATE, poms VARCHAR2);
|
||
--Dit zorgt voor een juiste datum 'Laatste actiedatum' in het meldingsoverzicht.
|
||
fac.trackaction ('MLDNEW',
|
||
v_mld_melding_key,
|
||
v_perslid_key,
|
||
SYSDATE,
|
||
'Melding is aangemaakt vanuit planning');
|
||
|
||
v_errorhint := 'Insert kenmerk Import Planning';
|
||
|
||
-- We zetten een vinkje om aan de melding te herkennen dat deze uit deze import komt.
|
||
-- Daarmee kunnen we de status ook aanpassen van de meldingen die gepland staan over 2 weken (status van 0 naar 4) in een export-procedure
|
||
INSERT INTO mld_kenmerkmelding (mld_melding_key,
|
||
mld_kenmerk_key,
|
||
mld_kenmerkmelding_waarde) -- Vinkje aan.
|
||
VALUES (v_mld_melding_key, 1301, -- Kenmerk 'Import planning'
|
||
1); -- Vinkje aan.
|
||
EXCEPTION
|
||
WHEN OTHERS
|
||
THEN
|
||
oracle_err_num := SQLCODE;
|
||
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
|
||
v_errormsg :=
|
||
v_errorhint
|
||
|| ' ORACLE (error '
|
||
|| oracle_err_num
|
||
|| '/'
|
||
|| oracle_err_mes
|
||
|| ')';
|
||
fac.imp_writelog (
|
||
p_import_key,
|
||
'W',
|
||
v_errorhint || ' ' || v_errormsg,
|
||
'Ingelezen regel kan niet worden weggeschreven!');
|
||
COMMIT;
|
||
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.imp_writelog (p_import_key,
|
||
'E',
|
||
v_errormsg,
|
||
'Inleesproces CSUN_UPDATE_PLANNING afgebroken!');
|
||
END csun_update_planning;
|
||
/
|
||
|
||
--CSUN#59537
|
||
CREATE OR REPLACE PROCEDURE csun_export_planning (p_applname IN VARCHAR2,
|
||
p_applrun IN VARCHAR2,
|
||
p_filedir IN VARCHAR2,
|
||
p_filename IN VARCHAR2)
|
||
AS
|
||
v_fac_import_key NUMBER (10);
|
||
v_fac_import_index NUMBER (10);
|
||
v_mld_melding_key NUMBER (10);
|
||
v_perslid_key NUMBER (10) := 4; -- Facilitor
|
||
v_errorhint VARCHAR2 (1000);
|
||
v_errormsg VARCHAR2 (1000);
|
||
oracle_err_num NUMBER;
|
||
oracle_err_mes VARCHAR2 (200);
|
||
v_opdr_key NUMBER (10);
|
||
v_stdmelding_autoorder VARCHAR2 (200);
|
||
v_dienst_key NUMBER (10);
|
||
v_typeopdr_key NUMBER (10);
|
||
v_bedrijf_key NUMBER (10);
|
||
|
||
-- Haal alle meldingen op die nog in behandeling (status 0) staan en met kenmerk 'Planning melding' aan heeft. .
|
||
CURSOR cmld
|
||
IS
|
||
SELECT m.mld_melding_key,
|
||
m.mld_stdmelding_key,
|
||
m.mld_melding_onderwerp,
|
||
m.mld_melding_omschrijving,
|
||
m.mld_melding_datum,
|
||
m.mld_melding_einddatum,
|
||
m.mld_alg_locatie_key,
|
||
(SELECT DISTINCT (wf.mld_stdmelding_key)
|
||
FROM mld_workflowstep wf
|
||
WHERE m.mld_stdmelding_key = wf.mld_stdmelding_key(+)
|
||
AND wf.mld_workflowstep_start_key IS NULL)
|
||
AS stdmelding_key, --Alleen bij een startmelding van een workflow
|
||
(SELECT DISTINCT (wf.mld_workflowstep_key)
|
||
FROM mld_workflowstep wf
|
||
WHERE m.mld_stdmelding_key = wf.mld_stdmelding_key(+)
|
||
AND wf.mld_workflowstep_start_key IS NULL)
|
||
AS workflowstep_key --Alleen bij een startmelding van een workflow
|
||
FROM mld_melding m,
|
||
mld_kenmerkmelding km,
|
||
mld_stdmelding sm,
|
||
ins_tab_discipline disc
|
||
WHERE km.mld_melding_key = m.mld_melding_key
|
||
AND TRUNC (m.mld_melding_einddatum) <= TRUNC (SYSDATE) + 11
|
||
AND km.mld_kenmerk_key = 1301 --Kenmerk 'Import planning' (checkbox die bij het importeren op 1 wordt gezet zodat herkend wordt dat deze vanuit de import komt).
|
||
AND km.mld_kenmerkmelding_waarde = 1
|
||
AND m.mld_melding_status = 0
|
||
AND m.mld_stdmelding_key = sm.mld_stdmelding_key
|
||
AND sm.mld_ins_discipline_key = disc.ins_discipline_key
|
||
AND disc.ins_srtdiscipline_key <> 201; --Vakgroeptype 'JDE'
|
||
BEGIN
|
||
FOR recmld IN cmld
|
||
LOOP
|
||
BEGIN
|
||
UPDATE mld_melding
|
||
SET mld_melding_status = 2, --Nieuw ipv Frontoffice (0)
|
||
mld_melding_datum = SYSDATE --CSUN#71827
|
||
WHERE mld_melding_key = recmld.mld_melding_key
|
||
RETURNING mld_melding_key
|
||
INTO v_mld_melding_key;
|
||
|
||
--Tracking voor het doorzetten van Frontoffice naar Backoffice
|
||
fac.trackaction ('MLDDOO',
|
||
v_mld_melding_key,
|
||
v_perslid_key,
|
||
SYSDATE,
|
||
NULL);
|
||
|
||
v_errorhint := 'Select opdracht';
|
||
|
||
COMMIT;
|
||
|
||
-- Betreft het een workflowmelding?
|
||
IF recmld.stdmelding_key IS NOT NULL
|
||
THEN
|
||
UPDATE mld_melding
|
||
SET mld_workflowstep_key = recmld.workflowstep_key,
|
||
mld_melding_start_key = mld_melding_key
|
||
WHERE mld_melding_key = recmld.mld_melding_key;
|
||
|
||
-- Indien het een melding is die start is van een workflow, dan moet ook de eerstvolgende stap(pen) aangemaakt worden.
|
||
mld.mld_nextworkflowstep (recmld.mld_melding_key, -1);
|
||
END IF;
|
||
|
||
-- Nu kijken of we automatisch een opdracht kunnen aanmaken.
|
||
SELECT ms.mld_stdmelding_autoorder,
|
||
ms.prs_dienst_key,
|
||
ms.mld_typeopdr_key
|
||
INTO v_stdmelding_autoorder, v_dienst_key, v_typeopdr_key
|
||
FROM mld_stdmelding ms
|
||
WHERE ms.mld_stdmelding_key = recmld.mld_stdmelding_key;
|
||
|
||
-- Heb ik genoeg informatie om een opdracht aan te kunnen maken.
|
||
IF v_stdmelding_autoorder = 1
|
||
AND v_dienst_key IS NOT NULL
|
||
AND v_typeopdr_key IS NOT NULL
|
||
THEN
|
||
v_errorhint := 'Select bedrijfkey';
|
||
|
||
SELECT MIN (bdl.prs_bedrijf_key)
|
||
INTO v_bedrijf_key
|
||
FROM prs_bedrijfdienstlocatie bdl, prs_v_aanwezigbedrijf b
|
||
WHERE bdl.prs_bedrijf_key = b.prs_bedrijf_key
|
||
AND bdl.prs_dienst_key = v_dienst_key
|
||
AND (bdl.alg_locatie_key = recmld.mld_alg_locatie_key
|
||
OR bdl.alg_locatie_key IS NULL);
|
||
|
||
IF v_bedrijf_key IS NOT NULL
|
||
THEN
|
||
v_errorhint := 'Insert opdracht';
|
||
|
||
--Eerst de melding in behandeling zetten, op status 0 of 2 kunnen geen opdrachten worden aangemaakt.
|
||
|
||
UPDATE mld_melding
|
||
SET mld_melding_status = 4 --Nieuw ipv Frontoffice (0)
|
||
WHERE mld_melding_key = recmld.mld_melding_key
|
||
RETURNING mld_melding_key
|
||
INTO v_mld_melding_key;
|
||
|
||
INSERT INTO mld_opdr (mld_uitvoerende_keys,
|
||
mld_opdr_kosten,
|
||
mld_opdr_uurloon,
|
||
mld_melding_key,
|
||
mld_opdr_module,
|
||
mld_opdr_bedrijfopdr_volgnr,
|
||
mld_opdr_datumbegin,
|
||
mld_opdr_einddatum,
|
||
mld_typeopdr_key,
|
||
prs_perslid_key,
|
||
mld_opdr_omschrijving,
|
||
mld_opdr_uren,
|
||
mld_opdr_teverzenden)
|
||
VALUES (v_bedrijf_key,
|
||
0,
|
||
0,
|
||
v_mld_melding_key,
|
||
'MLD',
|
||
mld.bepaalopdrmeldingvolgnr (v_mld_melding_key),
|
||
recmld.mld_melding_datum,
|
||
recmld.mld_melding_einddatum,
|
||
v_typeopdr_key,
|
||
v_perslid_key,
|
||
recmld.mld_melding_onderwerp
|
||
|| CHR (10)
|
||
|| recmld.mld_melding_omschrijving,
|
||
0,
|
||
1)
|
||
RETURNING mld_opdr_key
|
||
INTO v_opdr_key;
|
||
|
||
mld.setopdrachtstatus (v_opdr_key, 5, v_perslid_key); -- Uitgegeven
|
||
END IF;
|
||
|
||
mld.updatemeldingstatus (v_mld_melding_key, 0, v_perslid_key);
|
||
END IF;
|
||
END;
|
||
END LOOP;
|
||
END csun_export_planning;
|
||
/
|
||
|
||
CREATE OR REPLACE VIEW csun_v_noti_wfcntr_klant
|
||
(
|
||
code,
|
||
sender,
|
||
receiver,
|
||
text,
|
||
key,
|
||
xkey,
|
||
xemail,
|
||
xmobile,
|
||
xsender,
|
||
attachments
|
||
)
|
||
AS
|
||
SELECT DISTINCT
|
||
'CUST06' AS code, --Distinct zodat bij meerdere bijlagen toch maar 1 regel/notificatie wordt gemaakt
|
||
NULL AS sender,
|
||
p.prs_perslid_key AS receiver,
|
||
'Er is een calculatie voor uw aanvraag contractmutatie: '
|
||
|| m.mld_melding_key
|
||
|| ' ('
|
||
|| COALESCE (m.mld_melding_onderwerp,
|
||
sm.mld_stdmelding_omschrijving)
|
||
|| ')'
|
||
AS text,
|
||
m.mld_melding_key AS key,
|
||
NULL AS extra_key,
|
||
NULL,
|
||
NULL,
|
||
NULL,
|
||
'/' || b.fac_bijlagen_disk_directory || '/*' -- Zo (*) worden alle bijlagen bijgevoegd, van dezelfde kenmerk_key van de melding waar de bijlage is bijgevoegd (Calculatie)
|
||
FROM mld_melding m,
|
||
mld_stdmelding sm,
|
||
prs_perslid p,
|
||
mld_melding bm,
|
||
mld_stdmelding bsm,
|
||
fac_bijlagen b
|
||
WHERE p.prs_perslid_key = m.prs_perslid_key
|
||
AND m.mld_stdmelding_key = sm.mld_stdmelding_key
|
||
AND sm.mld_ins_discipline_key = 861 -- Vakgroep klant
|
||
AND m.mld_stdmelding_key <> 1201 -- Startmelding workflow
|
||
AND m.mld_melding_status NOT IN (1, 5, 6) -- Afgewezen, afgemeld, historie
|
||
AND bm.mld_melding_start_key = m.mld_melding_start_key
|
||
AND bm.mld_stdmelding_key = bsm.mld_stdmelding_key
|
||
AND bsm.mld_ins_discipline_key = 863 -- Vakgroep calculatie
|
||
AND b.fac_bijlagen_module = 'MLD'
|
||
AND b.fac_bijlagen_refkey = bm.mld_melding_key
|
||
AND b.fac_bijlagen_verwijder IS NULL
|
||
AND m.mld_melding_key NOT IN
|
||
(SELECT t.fac_tracking_refkey
|
||
FROM fac_tracking t
|
||
WHERE fac_tracking_oms LIKE '%CUST06%'
|
||
AND t.fac_tracking_refkey = m.mld_melding_key)
|
||
ORDER BY key, receiver;
|
||
|
||
CREATE OR REPLACE VIEW csun_v_noti_actie_klant
|
||
(
|
||
code,
|
||
sender,
|
||
receiver,
|
||
text,
|
||
key,
|
||
xkey,
|
||
xemail,
|
||
xmobile,
|
||
xsender,
|
||
attachments
|
||
)
|
||
AS
|
||
SELECT
|
||
'CUST07' AS code,
|
||
NULL AS sender,
|
||
p.prs_perslid_key AS receiver,
|
||
'Er staat een actie voor u klaar m.b.t. melding '
|
||
|| m.mld_melding_key
|
||
|| ' ('
|
||
|| COALESCE (m.mld_melding_onderwerp,
|
||
sm.mld_stdmelding_omschrijving)
|
||
|| ')'
|
||
AS text,
|
||
m.mld_melding_key AS key,
|
||
NULL AS extra_key,
|
||
NULL,
|
||
NULL,
|
||
NULL,
|
||
null
|
||
FROM mld_melding m,
|
||
mld_stdmelding sm,
|
||
prs_perslid p
|
||
WHERE p.prs_perslid_key = m.prs_perslid_key
|
||
AND m.mld_stdmelding_key = sm.mld_stdmelding_key
|
||
AND sm.mld_ins_discipline_key = 903 -- Vakgroep Periodieke werkzaamheden controle klant
|
||
AND m.mld_melding_status NOT IN (1, 5, 6) -- Afgewezen, afgemeld, historie
|
||
AND m.mld_melding_key NOT IN
|
||
(SELECT t.fac_tracking_refkey
|
||
FROM fac_tracking t
|
||
WHERE fac_tracking_oms LIKE '%CUST07%'
|
||
AND t.fac_tracking_refkey = m.mld_melding_key)
|
||
ORDER BY key, receiver;
|
||
|
||
|
||
--CSUN#64697 Notificatie naar BB'er wanneer klant akkoord is met de uitgevoerde glasbewassing
|
||
CREATE OR REPLACE VIEW csun_v_rap_glas_akkoord
|
||
(
|
||
melding_nr,
|
||
melding_datum,
|
||
melding_einddatum,
|
||
melding_onderwerp,
|
||
standaardmelding,
|
||
melding_omschrijving,
|
||
melding_opmerking,
|
||
mld_alg_locatie_key
|
||
)
|
||
AS
|
||
SELECT m.mld_melding_key,
|
||
m.mld_melding_datum,
|
||
m.mld_melding_einddatum,
|
||
m.mld_melding_onderwerp,
|
||
sm.mld_stdmelding_omschrijving,
|
||
m.mld_melding_omschrijving,
|
||
m.mld_melding_opmerking,
|
||
m.mld_alg_locatie_key
|
||
FROM mld_melding m,
|
||
mld_kenmerkmelding kmm,
|
||
mld_kenmerk km,
|
||
mld_srtkenmerk sk,
|
||
mld_stdmelding sm,
|
||
fac_tracking t,
|
||
fac_srtnotificatie sn
|
||
WHERE m.mld_stdmelding_key IN (1363, 1381, 1382) -- Glasbewassing akkoord & herkansingen
|
||
AND m.mld_melding_status = 5 -- Afgemeld
|
||
AND sk.mld_srtkenmerk_key = 681 -- Kenmerk Akkoord
|
||
AND kmm.mld_kenmerkmelding_waarde = '1861' -- Ja
|
||
AND sm.mld_stdmelding_key = m.mld_stdmelding_key
|
||
AND sk.mld_srtkenmerk_key = km.mld_srtkenmerk_key
|
||
AND km.mld_kenmerk_key = kmm.mld_kenmerk_key
|
||
AND kmm.mld_melding_key = m.mld_melding_key
|
||
AND t.fac_tracking_refkey = m.mld_melding_key
|
||
AND t.fac_srtnotificatie_key = sn.fac_srtnotificatie_key
|
||
AND sn.fac_srtnotificatie_code = 'MLDAFM';
|
||
|
||
CREATE OR REPLACE VIEW csun_v_noti_glas_akkoord
|
||
(
|
||
code,
|
||
sender,
|
||
receiver,
|
||
text,
|
||
key,
|
||
xkey
|
||
)
|
||
AS
|
||
SELECT 'CUST08' AS code,
|
||
NULL AS sender,
|
||
p.prs_perslid_key AS receiver,
|
||
'Klant heeft akkoord gegeven op de uitgevoerde werkzaamheden bij melding: '
|
||
|| m.melding_nr
|
||
|| ' ('
|
||
|| COALESCE (m.melding_onderwerp, m.standaardmelding)
|
||
|| ')'
|
||
AS text,
|
||
m.melding_nr AS key,
|
||
NULL AS extra_key
|
||
FROM csun_v_rap_glas_akkoord m,
|
||
prs_perslid p,
|
||
fac_v_rap_groepleden agl,
|
||
fac_groep g,
|
||
alg_locatie l,
|
||
alg_locatie l2,
|
||
prs_v_perslidwerkplek_gegevens pwpg,
|
||
prs_kenmerklink kl
|
||
WHERE p.prs_perslid_oslogin = agl.fclt_f_login
|
||
AND g.fac_groep_key = 21 --autorisatiegroep BB
|
||
AND g.fac_groep_omschrijving = agl.fclt_f_groep
|
||
AND m.melding_nr NOT IN
|
||
(SELECT t.fac_tracking_refkey
|
||
FROM fac_tracking t
|
||
WHERE fac_tracking_oms LIKE '%CUST08%'
|
||
AND t.fac_tracking_refkey = m.melding_nr)
|
||
AND m.mld_alg_locatie_key = l.alg_locatie_key
|
||
AND pwpg.alg_locatie_key = l2.alg_locatie_key
|
||
AND l.alg_district_key = l2.alg_district_key
|
||
AND pwpg.prs_perslid_key = p.prs_perslid_key
|
||
AND p.prs_srtperslid_key = 32 -- BBer
|
||
AND prs_kenmerk_key = 1100 -- notificatie enable vinkje
|
||
AND fac.safe_to_number (prs_kenmerklink_waarde) = 1
|
||
AND kl.prs_link_key = p.prs_perslid_key
|
||
AND p.prs_perslid_email IS NOT NULL
|
||
AND p.prs_perslid_verwijder IS NULL
|
||
AND m.mld_alg_locatie_key = l.alg_locatie_key
|
||
-- AND m.mld_stdmelding_key != 41 -- ontvangen berichten
|
||
AND pwpg.alg_locatie_key = l2.alg_locatie_key
|
||
AND l.alg_district_key = l2.alg_district_key
|
||
AND pwpg.prs_perslid_key = p.prs_perslid_key
|
||
AND p.prs_srtperslid_key = 32 -- BBer
|
||
AND prs_kenmerk_key = 1100 -- notificatie enable vinkje
|
||
AND fac.safe_to_number (prs_kenmerklink_waarde) = 1
|
||
AND kl.prs_link_key = p.prs_perslid_key
|
||
AND p.prs_perslid_email IS NOT NULL
|
||
AND p.prs_perslid_verwijder IS NULL
|
||
ORDER BY key, receiver;
|
||
|
||
CREATE OR REPLACE PROCEDURE csun_import_jde (p_import_key IN NUMBER)
|
||
IS
|
||
c_fielddelimitor VARCHAR2 (1) := ';';
|
||
v_newline VARCHAR2 (4000);
|
||
v_aanduiding VARCHAR2 (200);
|
||
v_errorhint VARCHAR2 (1000);
|
||
v_errormsg VARCHAR2 (1000);
|
||
oracle_err_num NUMBER;
|
||
oracle_err_mes VARCHAR2 (200);
|
||
header_is_valid NUMBER;
|
||
v_ongeldig NUMBER (1);
|
||
v_count_tot NUMBER (10);
|
||
v_count_import NUMBER (10);
|
||
v_count_melding NUMBER := 1;
|
||
v_count_alglocatie NUMBER := 1;
|
||
v_year_method NUMBER := 1;
|
||
-- De importvelden:
|
||
v_fac_import_key VARCHAR (256);
|
||
v_fac_import_index VARCHAR (256);
|
||
v_mld_stdmelding_key VARCHAR (256);
|
||
v_alg_locatie_code VARCHAR (256);
|
||
v_uitvoerdatum VARCHAR (256);
|
||
v_onderwerp VARCHAR (256);
|
||
v_omschrijving VARCHAR (4000);
|
||
v_opdrachtnr VARCHAR (256);
|
||
v_meldinglocatie VARCHAR (4000);
|
||
v_kosten VARCHAR (256);
|
||
v_aanvrageremail VARCHAR (256);
|
||
|
||
CURSOR c
|
||
IS
|
||
SELECT *
|
||
FROM fac_imp_file
|
||
WHERE fac_import_key = p_import_key
|
||
ORDER BY fac_imp_file_index;
|
||
BEGIN
|
||
v_count_tot := 0;
|
||
v_count_import := 0;
|
||
header_is_valid := 0;
|
||
|
||
-- Eerst opschonen voor we beginnen
|
||
DELETE FROM csun_imp_jde;
|
||
|
||
FOR rec IN c
|
||
LOOP
|
||
BEGIN
|
||
v_newline := rec.fac_imp_file_line;
|
||
v_fac_import_key := rec.fac_import_key;
|
||
v_fac_import_index := rec.fac_imp_file_index;
|
||
v_aanduiding := '';
|
||
v_errorhint := 'Fout bij opvragen te importeren rij';
|
||
v_ongeldig := 0;
|
||
|
||
IF SUBSTR (v_newline, 1, 3) = '??A???A>??A?'
|
||
THEN
|
||
-- EF BB BF aangetroffen
|
||
fac.imp_writelog (p_import_key,
|
||
'W',
|
||
'Byte Order Mark aangetroffen',
|
||
'Bestand heeft onbehandeld UTF-8 formaat.');
|
||
v_newline := SUBSTR (v_newline, 4);
|
||
END IF;
|
||
|
||
-- Lees alle veldwaarden
|
||
fac.imp_getfield (v_newline, c_fielddelimitor, v_mld_stdmelding_key); -- Soort melding key
|
||
fac.imp_getfield (v_newline, c_fielddelimitor, v_alg_locatie_code); -- Locatie key
|
||
fac.imp_getfield (v_newline, c_fielddelimitor, v_uitvoerdatum); -- Uitvoerdatum
|
||
fac.imp_getfield (v_newline, c_fielddelimitor, v_onderwerp); -- Onderwerp
|
||
fac.imp_getfield (v_newline, c_fielddelimitor, v_omschrijving); -- Omschrijving
|
||
fac.imp_getfield (v_newline, c_fielddelimitor, v_opdrachtnr); -- Opdrachtnr/werkbon
|
||
fac.imp_getfield (v_newline, c_fielddelimitor, v_meldinglocatie); -- Meldinglocatie
|
||
fac.imp_getfield (v_newline, c_fielddelimitor, v_kosten); -- Kosten
|
||
fac.imp_getfield (v_newline, c_fielddelimitor, v_aanvrageremail); --Emailadres aanvrager
|
||
|
||
v_aanduiding :=
|
||
'['
|
||
|| v_mld_stdmelding_key
|
||
|| '|'
|
||
|| v_alg_locatie_code
|
||
|| '|'
|
||
|| v_opdrachtnr
|
||
|| '|'
|
||
|| v_uitvoerdatum
|
||
|| '] ';
|
||
|
||
v_count_tot := v_count_tot + 1;
|
||
|
||
-- Ik controleer of ik een geldige header heb, dat is: in de juiste kolommen de juiste kolomkop. Ik controleer daarbij ALLE kolommen!
|
||
-- Ik negeer alles totdat ik een geldige header ben gepasseerd.
|
||
IF (header_is_valid = 0)
|
||
THEN
|
||
IF UPPER (v_mld_stdmelding_key) = 'MELDING'
|
||
AND UPPER (v_alg_locatie_code) = 'LOCATIECODE'
|
||
AND UPPER (v_uitvoerdatum) = 'UITVOERDATUM'
|
||
AND UPPER (v_onderwerp) = 'ONDERWERP' --Lengte max 80
|
||
AND UPPER (v_omschrijving) = 'OMSCHRIJVING' --Lengte max 4000
|
||
AND UPPER (v_opdrachtnr) = 'WERKBON/OPDRACHTNR KLANT'
|
||
AND UPPER (v_meldinglocatie) = 'MELDINGLOCATIE'
|
||
AND UPPER (v_kosten) = 'KOSTEN'
|
||
AND UPPER (v_aanvrageremail) = 'AANVRAGEREMAIL' --Lengte max 200
|
||
THEN
|
||
header_is_valid := 1;
|
||
END IF;
|
||
ELSE
|
||
--Controle of de opgegeven stdmelding wel aanwezig is
|
||
SELECT COUNT ( * )
|
||
INTO v_count_melding
|
||
FROM mld_stdmelding sm
|
||
WHERE v_mld_stdmelding_key = sm.mld_stdmelding_key
|
||
AND sm.mld_stdmelding_verwijder IS NULL;
|
||
|
||
IF v_count_melding = 0
|
||
THEN
|
||
v_ongeldig := 1;
|
||
fac.imp_writelog (
|
||
p_import_key,
|
||
'W',
|
||
v_aanduiding || 'Meldingnummer bestaat niet',
|
||
'Melding wordt niet ingelezen!');
|
||
END IF;
|
||
|
||
--Controle of de opgegeven locatiecode wel aanwezig is
|
||
SELECT COUNT ( * )
|
||
INTO v_count_alglocatie
|
||
FROM alg_locatie l
|
||
WHERE l.alg_locatie_code = v_alg_locatie_code
|
||
AND l.alg_locatie_verwijder IS NULL;
|
||
|
||
IF v_count_alglocatie = 0
|
||
THEN
|
||
v_ongeldig := 1;
|
||
fac.imp_writelog (
|
||
p_import_key,
|
||
'W',
|
||
v_aanduiding || 'Locatie (locatiecode) bestaat niet',
|
||
'Melding wordt niet ingelezen!');
|
||
END IF;
|
||
|
||
IF LENGTH (v_onderwerp) > 80
|
||
THEN
|
||
v_onderwerp := SUBSTR (v_onderwerp, 1, 80);
|
||
fac.imp_writelog (
|
||
p_import_key,
|
||
'W',
|
||
v_aanduiding || 'Onderwerp te lang',
|
||
'Onderwerp wordt afgebroken tot [' || v_onderwerp || ']');
|
||
END IF;
|
||
|
||
IF LENGTH (v_omschrijving) > 4000
|
||
THEN
|
||
v_omschrijving := SUBSTR (v_omschrijving, 1, 4000);
|
||
fac.imp_writelog (
|
||
p_import_key,
|
||
'W',
|
||
v_aanduiding || 'Omschrijving te lang',
|
||
'Omschrijving wordt afgebroken tot ['
|
||
|| v_omschrijving
|
||
|| ']');
|
||
END IF;
|
||
|
||
IF LENGTH (v_opdrachtnr) > 49
|
||
THEN
|
||
v_opdrachtnr := SUBSTR (v_opdrachtnr, 1, 49);
|
||
fac.imp_writelog (
|
||
p_import_key,
|
||
'W',
|
||
v_aanduiding || 'Opdrachtnr/werkbon te lang',
|
||
'Opdrachtnr/werkbon wordt afgebroken tot ['
|
||
|| v_opdrachtnr
|
||
|| ']');
|
||
END IF;
|
||
|
||
IF LENGTH (v_meldinglocatie) > 49
|
||
THEN
|
||
v_meldinglocatie := SUBSTR (v_meldinglocatie, 1, 49);
|
||
fac.imp_writelog (
|
||
p_import_key,
|
||
'W',
|
||
v_aanduiding || 'Meldinglocatie te lang',
|
||
'Meldinglocatie wordt afgebroken tot ['
|
||
|| v_meldinglocatie
|
||
|| ']');
|
||
END IF;
|
||
|
||
IF LENGTH (v_kosten) > 11
|
||
THEN
|
||
v_kosten := SUBSTR (v_kosten, 1, 11);
|
||
fac.imp_writelog (
|
||
p_import_key,
|
||
'W',
|
||
v_aanduiding || 'Kosten te lang',
|
||
'Kosten wordt afgebroken tot [' || v_onderwerp || ']');
|
||
END IF;
|
||
|
||
|
||
IF LENGTH (v_aanvrageremail) > 200
|
||
THEN
|
||
v_aanvrageremail := SUBSTR (v_aanvrageremail, 1, 200);
|
||
fac.imp_writelog (
|
||
p_import_key,
|
||
'W',
|
||
v_aanduiding || 'Emailadres aanvrager te lang',
|
||
'Emailadres aanvrager wordt afgebroken tot ['
|
||
|| v_aanvrageremail
|
||
|| ']');
|
||
END IF;
|
||
|
||
-- Insert geformatteerde import record
|
||
IF header_is_valid = 1 AND v_ongeldig = 0
|
||
--Als er een geldige header is en een kloppende stdmelding en locatiecode, dan mag de melding worden aangemaakt.
|
||
THEN
|
||
BEGIN
|
||
v_errorhint :=
|
||
'Fout bij toevoegen regel aan importtabel csun_imp_jde';
|
||
|
||
INSERT INTO csun_imp_jde (fac_import_key,
|
||
fac_import_index,
|
||
fac_import_datum,
|
||
mld_stdmelding_key,
|
||
alg_locatie_code,
|
||
uitvoerdatum,
|
||
onderwerp,
|
||
omschrijving,
|
||
opdrachtnr,
|
||
meldinglocatie,
|
||
kosten,
|
||
aanvrageremail)
|
||
VALUES (v_fac_import_key,
|
||
v_fac_import_index,
|
||
SYSDATE,
|
||
fac.safe_to_number (v_mld_stdmelding_key),
|
||
v_alg_locatie_code,
|
||
fac.safe_to_date (v_uitvoerdatum, 'dd-mm-yyyy'),
|
||
v_onderwerp,
|
||
v_omschrijving,
|
||
v_opdrachtnr,
|
||
v_meldinglocatie,
|
||
v_kosten,
|
||
v_aanvrageremail);
|
||
|
||
COMMIT;
|
||
|
||
v_count_import := v_count_import + 1;
|
||
EXCEPTION
|
||
WHEN OTHERS
|
||
THEN
|
||
oracle_err_num := SQLCODE;
|
||
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
|
||
v_errormsg :=
|
||
v_errorhint
|
||
|| ' ORACLE (error '
|
||
|| oracle_err_num
|
||
|| '/'
|
||
|| oracle_err_mes
|
||
|| ')';
|
||
fac.imp_writelog (
|
||
p_import_key,
|
||
'W',
|
||
v_aanduiding || v_errormsg,
|
||
'Ingelezen regel kan niet worden weggeschreven!');
|
||
COMMIT;
|
||
END;
|
||
END IF;
|
||
END IF;
|
||
END;
|
||
END LOOP;
|
||
|
||
IF (header_is_valid = 0)
|
||
THEN
|
||
fac.imp_writelog (p_import_key,
|
||
'E',
|
||
'Ongeldig importbestand',
|
||
'Geen header of header niet volgens specificatie!');
|
||
ELSE
|
||
fac.imp_writelog (
|
||
p_import_key,
|
||
'S',
|
||
'CSUN_JDE/#ingelezen importregels: ' || TO_CHAR (v_count_tot),
|
||
'');
|
||
fac.imp_writelog (
|
||
p_import_key,
|
||
'S',
|
||
'CSUN_JDE/#ongeldige niet ingelezen importregels incl header: '
|
||
|| TO_CHAR (v_count_tot - v_count_import),
|
||
'');
|
||
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.imp_writelog (p_import_key,
|
||
'E',
|
||
v_aanduiding || v_errormsg,
|
||
'Inleesproces CSUN_IMPORT_JDE afgebroken!');
|
||
END csun_import_jde;
|
||
/
|
||
|
||
CREATE OR REPLACE PROCEDURE csun_update_jde (p_import_key IN NUMBER)
|
||
AS
|
||
v_fac_import_key NUMBER (10);
|
||
v_fac_import_index NUMBER (10);
|
||
v_errorhint VARCHAR2 (1000);
|
||
v_errormsg VARCHAR2 (1000);
|
||
oracle_err_num NUMBER;
|
||
oracle_err_mes VARCHAR2 (200);
|
||
v_mld_melding_key NUMBER (10);
|
||
v_mld_stdmelding_key NUMBER (10);
|
||
v_mld_melding_datum DATE;
|
||
v_perslid_key NUMBER (10) := 4; -- Facilitor
|
||
v_aanvrager_key NUMBER (10);
|
||
|
||
-- Haal alle meldingen op uit de tussentabel en die nog niet zijn aangemaakt. Deze hebben een datum op de vrijdag volgende week.
|
||
CURSOR cmld
|
||
IS
|
||
SELECT m.*,
|
||
(SELECT fac.safe_to_number (km.alg_onrgoedkenmerk_waarde)
|
||
FROM alg_v_aanwezigonrgoedkenmerk km
|
||
WHERE km.alg_onrgoed_niveau = 'D'
|
||
AND km.alg_kenmerk_key = 1300 --Kenmerk bij district : Medewerker bedrijfsbureau
|
||
AND km.alg_onrgoed_key = l.alg_district_key)
|
||
AS mld_behandelaar_key,
|
||
COALESCE (
|
||
(SELECT MAX (prs_link_key) --prs_perslid_key van geimporteerde emailadres, of anders Facilitor (perslid_key 4)
|
||
FROM prs_kenmerklink
|
||
WHERE prs_kenmerklink_niveau = 'P'
|
||
AND prs_kenmerklink_verwijder IS NULL
|
||
AND UPPER (prs_kenmerklink_waarde) =
|
||
UPPER (m.aanvrageremail)),
|
||
v_perslid_key)
|
||
AS aanvrager_key,
|
||
l.alg_locatie_key,
|
||
REPLACE(REPLACE(kosten, '.'), ',', '.') as kosten_n
|
||
FROM csun_imp_jde m, alg_v_locatie_gegevens l
|
||
WHERE l.alg_locatie_code = m.alg_locatie_code
|
||
AND m.mld_melding_key IS NULL;
|
||
BEGIN
|
||
FOR recmld IN cmld
|
||
LOOP
|
||
BEGIN
|
||
v_errorhint := 'Insert melding';
|
||
|
||
INSERT INTO mld_melding (prs_perslid_key,
|
||
mld_melding_module,
|
||
mld_meldbron_key,
|
||
mld_alg_locatie_key,
|
||
mld_melding_datum,
|
||
mld_stdmelding_key,
|
||
mld_melding_einddatum,
|
||
mld_melding_status,
|
||
mld_melding_spoed,
|
||
mld_melding_onderwerp,
|
||
mld_melding_omschrijving)
|
||
VALUES (recmld.aanvrager_key,
|
||
'MLD',
|
||
6, --Bron = Systeem
|
||
recmld.alg_locatie_key,
|
||
SYSDATE,
|
||
recmld.mld_stdmelding_key,
|
||
TO_DATE(CONCAT (
|
||
TO_CHAR (recmld.uitvoerdatum, 'YYYY-MM-DD'),
|
||
' 17:00:00')),
|
||
0, --Status = Bij Frontoffice
|
||
3, --Prioriteit = Normaal
|
||
recmld.onderwerp,
|
||
recmld.omschrijving)
|
||
RETURNING mld_melding_key, mld_stdmelding_key, mld_melding_datum
|
||
INTO v_mld_melding_key,
|
||
v_mld_stdmelding_key,
|
||
v_mld_melding_datum;
|
||
|
||
v_errorhint := 'Tracking MLDNEW';
|
||
--PROCEDURE trackaction (pcode VARCHAR2, prefkey NUMBER, puserkey NUMBER, pdatum DATE, poms VARCHAR2);
|
||
--Dit zorgt voor een juiste datum 'Laatste actiedatum' in het meldingsoverzicht.
|
||
fac.trackaction ('MLDNEW',
|
||
v_mld_melding_key,
|
||
v_perslid_key,
|
||
SYSDATE,
|
||
'Melding is aangemaakt vanuit planning JDE');
|
||
|
||
v_errorhint := 'Insert kenmerk Import Planning';
|
||
|
||
-- We zetten een vinkje om aan de melding te herkennen dat deze uit deze import komt.
|
||
-- Daarmee kunnen we de status ook aanpassen van de meldingen die gepland staan over 2 weken (status van 0 naar 4) in een export-procedure
|
||
INSERT INTO mld_kenmerkmelding (mld_melding_key,
|
||
mld_kenmerk_key,
|
||
mld_kenmerkmelding_waarde) -- Vinkje aan.
|
||
VALUES (v_mld_melding_key, 1301, -- Kenmerk 'Import planning'
|
||
1); -- Vinkje aan.
|
||
|
||
v_errorhint := 'Kenmerk opdrachtnummer';
|
||
|
||
--Kenmerk opdrachtnummer
|
||
INSERT INTO mld_kenmerkmelding (mld_melding_key,
|
||
mld_kenmerk_key,
|
||
mld_kenmerkmelding_waarde)
|
||
VALUES (v_mld_melding_key, 1443, recmld.opdrachtnr);
|
||
|
||
v_errorhint := 'Kenmerk Meldinglocatie';
|
||
|
||
--Kenmerk meldinglocatie
|
||
INSERT INTO mld_kenmerkmelding (mld_melding_key,
|
||
mld_kenmerk_key,
|
||
mld_kenmerkmelding_waarde)
|
||
VALUES (v_mld_melding_key, 1481, recmld.meldinglocatie);
|
||
|
||
v_errorhint := 'Kenmerk kosten';
|
||
|
||
--Kenmerk kosten
|
||
INSERT INTO mld_kenmerkmelding (mld_melding_key,
|
||
mld_kenmerk_key,
|
||
mld_kenmerkmelding_waarde)
|
||
VALUES (v_mld_melding_key, 1501, recmld.kosten_n);
|
||
EXCEPTION
|
||
WHEN OTHERS
|
||
THEN
|
||
oracle_err_num := SQLCODE;
|
||
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
|
||
v_errormsg :=
|
||
v_errorhint
|
||
|| ' ORACLE (error '
|
||
|| oracle_err_num
|
||
|| '/'
|
||
|| oracle_err_mes
|
||
|| ')';
|
||
fac.imp_writelog (
|
||
p_import_key,
|
||
'W',
|
||
v_errorhint || ' ' || v_errormsg,
|
||
'Ingelezen regel kan niet worden weggeschreven!');
|
||
COMMIT;
|
||
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.imp_writelog (p_import_key,
|
||
'E',
|
||
v_errormsg,
|
||
'Inleesproces CSUN_UPDATE_JDE afgebroken!');
|
||
END csun_update_jde;
|
||
/
|
||
|
||
CREATE OR REPLACE PROCEDURE csun_export_jde (p_applname IN VARCHAR2,
|
||
p_applrun IN VARCHAR2,
|
||
p_filedir IN VARCHAR2,
|
||
p_filename IN VARCHAR2)
|
||
AS
|
||
v_fac_import_key NUMBER (10);
|
||
v_fac_import_index NUMBER (10);
|
||
v_mld_melding_key NUMBER (10);
|
||
v_perslid_key NUMBER (10) := 4; -- Facilitor
|
||
v_errorhint VARCHAR2 (1000);
|
||
v_errormsg VARCHAR2 (1000);
|
||
oracle_err_num NUMBER;
|
||
oracle_err_mes VARCHAR2 (200);
|
||
v_opdr_key NUMBER (10);
|
||
v_stdmelding_autoorder VARCHAR2 (200);
|
||
v_dienst_key NUMBER (10);
|
||
v_typeopdr_key NUMBER (10);
|
||
v_bedrijf_key NUMBER (10);
|
||
|
||
-- Haal alle meldingen op die nog in behandeling (status 0) staan en met kenmerk 'Planning melding' aan heeft. .
|
||
CURSOR cmld
|
||
IS
|
||
SELECT m.mld_melding_key,
|
||
m.mld_stdmelding_key,
|
||
m.mld_melding_onderwerp,
|
||
m.mld_melding_omschrijving,
|
||
m.mld_melding_datum,
|
||
m.mld_melding_einddatum,
|
||
m.mld_alg_locatie_key,
|
||
(SELECT DISTINCT (wf.mld_stdmelding_key)
|
||
FROM mld_workflowstep wf
|
||
WHERE m.mld_stdmelding_key = wf.mld_stdmelding_key(+)
|
||
AND wf.mld_workflowstep_start_key IS NULL)
|
||
AS stdmelding_key, --Alleen bij een startmelding van een workflow
|
||
(SELECT DISTINCT (wf.mld_workflowstep_key)
|
||
FROM mld_workflowstep wf
|
||
WHERE m.mld_stdmelding_key = wf.mld_stdmelding_key(+)
|
||
AND wf.mld_workflowstep_start_key IS NULL)
|
||
AS workflowstep_key --Alleen bij een startmelding van een workflow
|
||
FROM mld_melding m,
|
||
mld_kenmerkmelding km,
|
||
mld_stdmelding sm,
|
||
ins_tab_discipline disc
|
||
WHERE km.mld_melding_key = m.mld_melding_key
|
||
AND TRUNC (m.mld_melding_einddatum) = TRUNC (SYSDATE)
|
||
AND km.mld_kenmerk_key = 1301 --Kenmerk 'Import planning' (checkbox die bij het importeren op 1 wordt gezet zodat herkend wordt dat deze vanuit de import komt).
|
||
AND km.mld_kenmerkmelding_waarde = 1
|
||
AND m.mld_melding_status = 0
|
||
AND m.mld_stdmelding_key = sm.mld_stdmelding_key
|
||
AND sm.mld_ins_discipline_key = disc.ins_discipline_key
|
||
AND disc.ins_srtdiscipline_key = 201; --Vakgroeptype 'JDE'
|
||
BEGIN
|
||
FOR recmld IN cmld
|
||
LOOP
|
||
BEGIN
|
||
UPDATE mld_melding
|
||
SET mld_melding_status = 2 --Nieuw ipv Frontoffice (0)
|
||
WHERE mld_melding_key = recmld.mld_melding_key
|
||
RETURNING mld_melding_key
|
||
INTO v_mld_melding_key;
|
||
|
||
--Tracking voor het doorzetten van Frontoffice naar Backoffice
|
||
fac.trackaction ('MLDDOO',
|
||
v_mld_melding_key,
|
||
v_perslid_key,
|
||
SYSDATE,
|
||
NULL);
|
||
|
||
v_errorhint := 'Select opdracht';
|
||
|
||
COMMIT;
|
||
|
||
-- Betreft het een workflowmelding?
|
||
IF recmld.stdmelding_key IS NOT NULL
|
||
THEN
|
||
UPDATE mld_melding
|
||
SET mld_workflowstep_key = recmld.workflowstep_key,
|
||
mld_melding_start_key = mld_melding_key
|
||
WHERE mld_melding_key = recmld.mld_melding_key;
|
||
|
||
-- Indien het een melding is die start is van een workflow, dan moet ook de eerstvolgende stap(pen) aangemaakt worden.
|
||
mld.mld_nextworkflowstep (recmld.mld_melding_key, -1);
|
||
END IF;
|
||
|
||
-- Nu kijken of we automatisch een opdracht kunnen aanmaken.
|
||
SELECT ms.mld_stdmelding_autoorder,
|
||
ms.prs_dienst_key,
|
||
ms.mld_typeopdr_key
|
||
INTO v_stdmelding_autoorder, v_dienst_key, v_typeopdr_key
|
||
FROM mld_stdmelding ms
|
||
WHERE ms.mld_stdmelding_key = recmld.mld_stdmelding_key;
|
||
|
||
-- Heb ik genoeg informatie om een opdracht aan te kunnen maken.
|
||
IF v_stdmelding_autoorder = 1
|
||
AND v_dienst_key IS NOT NULL
|
||
AND v_typeopdr_key IS NOT NULL
|
||
THEN
|
||
v_errorhint := 'Select bedrijfkey';
|
||
|
||
SELECT MIN (bdl.prs_bedrijf_key)
|
||
INTO v_bedrijf_key
|
||
FROM prs_bedrijfdienstlocatie bdl, prs_v_aanwezigbedrijf b
|
||
WHERE bdl.prs_bedrijf_key = b.prs_bedrijf_key
|
||
AND bdl.prs_dienst_key = v_dienst_key
|
||
AND (bdl.alg_locatie_key = recmld.mld_alg_locatie_key
|
||
OR bdl.alg_locatie_key IS NULL);
|
||
|
||
IF v_bedrijf_key IS NOT NULL
|
||
THEN
|
||
v_errorhint := 'Insert opdracht';
|
||
|
||
--Eerst de melding in behandeling zetten, op status 0 of 2 kunnen geen opdrachten worden aangemaakt.
|
||
|
||
UPDATE mld_melding
|
||
SET mld_melding_status = 4 --Nieuw ipv Frontoffice (0)
|
||
WHERE mld_melding_key = recmld.mld_melding_key
|
||
RETURNING mld_melding_key
|
||
INTO v_mld_melding_key;
|
||
|
||
INSERT INTO mld_opdr (mld_uitvoerende_keys,
|
||
mld_opdr_kosten,
|
||
mld_opdr_uurloon,
|
||
mld_melding_key,
|
||
mld_opdr_module,
|
||
mld_opdr_bedrijfopdr_volgnr,
|
||
mld_opdr_datumbegin,
|
||
mld_opdr_einddatum,
|
||
mld_typeopdr_key,
|
||
prs_perslid_key,
|
||
mld_opdr_omschrijving,
|
||
mld_opdr_uren,
|
||
mld_opdr_teverzenden)
|
||
VALUES (v_bedrijf_key,
|
||
0,
|
||
0,
|
||
v_mld_melding_key,
|
||
'MLD',
|
||
mld.bepaalopdrmeldingvolgnr (v_mld_melding_key),
|
||
recmld.mld_melding_datum,
|
||
recmld.mld_melding_einddatum,
|
||
v_typeopdr_key,
|
||
v_perslid_key,
|
||
recmld.mld_melding_onderwerp
|
||
|| CHR (10)
|
||
|| recmld.mld_melding_omschrijving,
|
||
0,
|
||
1)
|
||
RETURNING mld_opdr_key
|
||
INTO v_opdr_key;
|
||
|
||
mld.setopdrachtstatus (v_opdr_key, 5, v_perslid_key); -- Uitgegeven
|
||
END IF;
|
||
|
||
mld.updatemeldingstatus (v_mld_melding_key, 0, v_perslid_key);
|
||
END IF;
|
||
END;
|
||
END LOOP;
|
||
END csun_export_jde;
|
||
/
|
||
|
||
CREATE OR REPLACE VIEW CSUN_V_UDR_DEELINSPECT
|
||
(
|
||
DEEL_KEY,
|
||
DISCIPLINE,
|
||
SOORT,
|
||
GROEP,
|
||
SOORTCODE,
|
||
OMSCHRIJVING,
|
||
PLAATSEIGENAAR,
|
||
PLAATSEIGENAARTYPE,
|
||
PLAATSAANDUIDING,
|
||
EIGENAAR,
|
||
EIGENAAR_KEY,
|
||
OPMERKING,
|
||
REGIO,
|
||
DISTRICT,
|
||
LOCATIE_CODE,
|
||
LOCATIE_OMSCHRIJVING,
|
||
LOCATIE_PLAATS,
|
||
GEBOUWCODE,
|
||
GEBOUW,
|
||
TERREINSECTORCODE,
|
||
TERREINSECTOR,
|
||
VERDIEPINGCODE,
|
||
RUIMTENR,
|
||
WERKPLEKVOLGNR,
|
||
WERKPLEK,
|
||
UITLEENBAAR,
|
||
UITGELEEND,
|
||
RES_OPMERKING,
|
||
BEHEERDER,
|
||
VERVALDATUM,
|
||
ACTIEF,
|
||
AANTAL,
|
||
STATE,
|
||
STATEDATE,
|
||
FCLT_3D_DISCIPLINE_KEY,
|
||
FCLT_3D_AFDELING_KEY,
|
||
FCLT_3D_LOCATIE_KEY,
|
||
INS_DEELSRTCONTROLE_KEY,
|
||
INS_SRTCONTROLE_KEY,
|
||
CTR_DISCIPLINE_OMSCHRIJVING,
|
||
SRTCONTROLE_OMSCHRIJVING,
|
||
INS_DEELSRTCONTROLE_DATUM,
|
||
CONTROLEMODE_OMSCHRIJVING,
|
||
INS_DEELSRTCONTROLE_OPMERKING,
|
||
PERSLID,
|
||
INS_DEELSRTCONTROLE_DATUM_ORG,
|
||
INS_DEELSRTCONTROLE_PLANDATUM,
|
||
DEELSRTCONTROLE_STATUS,
|
||
FREEZECOST,
|
||
KOSTEN
|
||
)
|
||
AS
|
||
SELECT d.deel_key,
|
||
d.discipline,
|
||
d.soort,
|
||
d.groep,
|
||
d.soortcode,
|
||
d.omschrijving,
|
||
d.plaatseigenaar,
|
||
d.plaatseigenaartype,
|
||
d.plaatsaanduiding,
|
||
d.eigenaar,
|
||
d.eigenaar_key,
|
||
d.opmerking,
|
||
d.regio,
|
||
d.district,
|
||
d.locatie_code,
|
||
d.locatie_omschrijving,
|
||
d.locatie_plaats,
|
||
d.gebouwcode,
|
||
d.gebouw,
|
||
d.terreinsectorcode,
|
||
d.terreinsector,
|
||
d.verdiepingcode,
|
||
d.ruimtenr,
|
||
d.werkplekvolgnr,
|
||
d.werkplek,
|
||
d.uitleenbaar,
|
||
d.uitgeleend,
|
||
d.res_opmerking,
|
||
d.beheerder,
|
||
d.vervaldatum,
|
||
d.actief,
|
||
d.aantal,
|
||
d.state,
|
||
d.statedate,
|
||
d.fclt_3d_discipline_key,
|
||
d.fclt_3d_afdeling_key,
|
||
d.fclt_3d_locatie_key,
|
||
idsc.ins_deelsrtcontrole_key,
|
||
idsc.ins_srtcontrole_key,
|
||
(SELECT cd.ins_discipline_omschrijving
|
||
FROM ctr_discipline cd, ins_srtcontrole isc
|
||
WHERE isc.ins_srtcontrole_key = idsc.ins_srtcontrole_key
|
||
AND isc.ctr_discipline_key = cd.ins_discipline_key)
|
||
ctr_discipline_omschrijving,
|
||
(SELECT isc.ins_srtcontrole_omschrijving
|
||
FROM ins_srtcontrole isc
|
||
WHERE isc.ins_srtcontrole_key = idsc.ins_srtcontrole_key)
|
||
srtcontrole_omschrijving,
|
||
idsc.ins_deelsrtcontrole_datum,
|
||
(SELECT icm.ins_controlemode_oms
|
||
FROM ins_controlemode icm
|
||
WHERE icm.ins_controlemode_key = idsc.ins_controlemode_key)
|
||
controlemode_omschrijving,
|
||
idsc.ins_deelsrtcontrole_opmerking,
|
||
(SELECT prs_perslid_naam_full
|
||
FROM prs_v_perslid_fullnames_all pf
|
||
WHERE pf.prs_perslid_key = idsc.prs_perslid_key)
|
||
perslid,
|
||
idsc.ins_deelsrtcontrole_datum_org,
|
||
idsc.ins_deelsrtcontrole_plandatum,
|
||
(SELECT lcl.x ('fc2l.fac_code2label_label',
|
||
fc2l.fac_code2label_key,
|
||
fc2l.fac_code2label_label)
|
||
FROM fac_code2label fc2l
|
||
WHERE fc2l.fac_code2label_domein = 'controle'
|
||
AND fc2l.fac_code2label_code =
|
||
idsc.ins_deelsrtcontrole_status)
|
||
deelsrtcontrole_status,
|
||
idsc.ins_deelsrtcontrole_freezecost,
|
||
k.ins_srtcontrole_kosten
|
||
FROM ins_v_udr_deel d, ins_deelsrtcontrole idsc, ins_srtcontrole k
|
||
WHERE d.deel_key = idsc.ins_deel_key
|
||
AND idsc.ins_srtcontrole_key = k.ins_srtcontrole_key;
|
||
|
||
CREATE OR REPLACE VIEW CSUN_V_UDR_DEELINSPECT_PLAN
|
||
(
|
||
DEEL_KEY,
|
||
DISCIPLINE,
|
||
SOORT,
|
||
GROEP,
|
||
SOORTCODE,
|
||
OMSCHRIJVING,
|
||
PLAATSEIGENAAR,
|
||
PLAATSEIGENAARTYPE,
|
||
PLAATSAANDUIDING,
|
||
EIGENAAR,
|
||
EIGENAAR_KEY,
|
||
OPMERKING,
|
||
REGIO,
|
||
DISTRICT,
|
||
LOCATIE_CODE,
|
||
LOCATIE_OMSCHRIJVING,
|
||
LOCATIE_PLAATS,
|
||
GEBOUWCODE,
|
||
GEBOUW,
|
||
TERREINSECTORCODE,
|
||
TERREINSECTOR,
|
||
VERDIEPINGCODE,
|
||
RUIMTENR,
|
||
ZONE,
|
||
WERKPLEKVOLGNR,
|
||
WERKPLEK,
|
||
UITLEENBAAR,
|
||
UITGELEEND,
|
||
RES_OPMERKING,
|
||
BEHEERDER,
|
||
VERVALDATUM,
|
||
ACTIEF,
|
||
AANTAL,
|
||
STATE,
|
||
STATEDATE,
|
||
FCLT_3D_DISCIPLINE_KEY,
|
||
FCLT_3D_AFDELING_KEY,
|
||
FCLT_3D_LOCATIE_KEY,
|
||
TAAKCATEGORIE,
|
||
INS_DEELSRTCONTROLE_KEY,
|
||
INS_SRTCONTROLE_KEY,
|
||
SRTCONTROLE_OMSCHRIJVING,
|
||
INS_DEELSRTCONTROLE_DATUM,
|
||
CONTROLEMODE_OMSCHRIJVING,
|
||
INS_DEELSRTCONTROLE_OPMERKING,
|
||
PERSLID,
|
||
INS_DEELSRTCONTROLE_DATUM_ORG,
|
||
INS_DEELSRTCONTROLE_PLANDATUM,
|
||
DEELSRTCONTROLE_STATUS,
|
||
PLANJAAR,
|
||
PLANWEEK,
|
||
PLANPERIODE,
|
||
UITVOERJAAR,
|
||
UITVOERWEEK,
|
||
UITVOERPERIODE,
|
||
NEXTJAAR,
|
||
NEXTWEEK,
|
||
NEXTPERIODE,
|
||
PLANCOST,
|
||
FREEZECOST,
|
||
KOSTEN_MEETELLEN
|
||
)
|
||
AS
|
||
SELECT ud.deel_key,
|
||
ud.discipline,
|
||
ud.soort,
|
||
ud.groep,
|
||
ud.soortcode,
|
||
ud.omschrijving,
|
||
ud.plaatseigenaar,
|
||
ud.plaatseigenaartype,
|
||
ud.plaatsaanduiding,
|
||
ud.eigenaar,
|
||
ud.eigenaar_key,
|
||
ud.opmerking,
|
||
ud.regio,
|
||
ud.district,
|
||
ud.locatie_code,
|
||
ud.locatie_omschrijving,
|
||
ud.locatie_plaats,
|
||
ud.gebouwcode,
|
||
ud.gebouw,
|
||
ud.terreinsectorcode,
|
||
ud.terreinsector,
|
||
ud.verdiepingcode,
|
||
ud.ruimtenr,
|
||
z.ins_kenmerkdeel_waarde,
|
||
ud.werkplekvolgnr,
|
||
ud.werkplek,
|
||
ud.uitleenbaar,
|
||
ud.uitgeleend,
|
||
ud.res_opmerking,
|
||
ud.beheerder,
|
||
ud.vervaldatum,
|
||
ud.actief,
|
||
ud.aantal,
|
||
ud.state,
|
||
ud.statedate,
|
||
ud.fclt_3d_discipline_key,
|
||
ud.fclt_3d_afdeling_key,
|
||
ud.fclt_3d_locatie_key,
|
||
ctr.ins_discipline_omschrijving,
|
||
ud.ins_deelsrtcontrole_key,
|
||
ud.ins_srtcontrole_key,
|
||
ud.srtcontrole_omschrijving,
|
||
ud.ins_deelsrtcontrole_datum,
|
||
ud.controlemode_omschrijving,
|
||
ud.ins_deelsrtcontrole_opmerking,
|
||
ud.perslid,
|
||
ud.ins_deelsrtcontrole_datum_org,
|
||
ud.ins_deelsrtcontrole_plandatum,
|
||
ud.deelsrtcontrole_status,
|
||
TO_CHAR (
|
||
COALESCE (ud.ins_deelsrtcontrole_plandatum,
|
||
ud.ins_deelsrtcontrole_datum_org),
|
||
'YYYY'),
|
||
fac.safe_to_number (
|
||
TO_CHAR (
|
||
COALESCE (ud.ins_deelsrtcontrole_plandatum,
|
||
ud.ins_deelsrtcontrole_datum_org),
|
||
'iw'))
|
||
AS weeknummer,
|
||
(CASE
|
||
WHEN fac.safe_to_number (
|
||
TO_CHAR (
|
||
COALESCE (ud.ins_deelsrtcontrole_plandatum,
|
||
ud.ins_deelsrtcontrole_datum_org),
|
||
'iw')) BETWEEN 0
|
||
AND 5
|
||
THEN
|
||
1
|
||
WHEN fac.safe_to_number (
|
||
TO_CHAR (
|
||
COALESCE (ud.ins_deelsrtcontrole_plandatum,
|
||
ud.ins_deelsrtcontrole_datum_org),
|
||
'iw')) BETWEEN 4
|
||
AND 8
|
||
THEN
|
||
2
|
||
WHEN fac.safe_to_number (
|
||
TO_CHAR (
|
||
COALESCE (ud.ins_deelsrtcontrole_plandatum,
|
||
ud.ins_deelsrtcontrole_datum_org),
|
||
'iw')) BETWEEN 8
|
||
AND 12
|
||
THEN
|
||
3
|
||
WHEN fac.safe_to_number (
|
||
TO_CHAR (
|
||
COALESCE (ud.ins_deelsrtcontrole_plandatum,
|
||
ud.ins_deelsrtcontrole_datum_org),
|
||
'iw')) BETWEEN 12
|
||
AND 16
|
||
THEN
|
||
4
|
||
WHEN fac.safe_to_number (
|
||
TO_CHAR (
|
||
COALESCE (ud.ins_deelsrtcontrole_plandatum,
|
||
ud.ins_deelsrtcontrole_datum_org),
|
||
'iw')) BETWEEN 16
|
||
AND 20
|
||
THEN
|
||
5
|
||
WHEN fac.safe_to_number (
|
||
TO_CHAR (
|
||
COALESCE (ud.ins_deelsrtcontrole_plandatum,
|
||
ud.ins_deelsrtcontrole_datum_org),
|
||
'iw')) BETWEEN 20
|
||
AND 24
|
||
THEN
|
||
6
|
||
WHEN fac.safe_to_number (
|
||
TO_CHAR (
|
||
COALESCE (ud.ins_deelsrtcontrole_plandatum,
|
||
ud.ins_deelsrtcontrole_datum_org),
|
||
'iw')) BETWEEN 24
|
||
AND 28
|
||
THEN
|
||
7
|
||
WHEN fac.safe_to_number (
|
||
TO_CHAR (
|
||
COALESCE (ud.ins_deelsrtcontrole_plandatum,
|
||
ud.ins_deelsrtcontrole_datum_org),
|
||
'iw')) BETWEEN 28
|
||
AND 32
|
||
THEN
|
||
8
|
||
WHEN fac.safe_to_number (
|
||
TO_CHAR (
|
||
COALESCE (ud.ins_deelsrtcontrole_plandatum,
|
||
ud.ins_deelsrtcontrole_datum_org),
|
||
'iw')) BETWEEN 32
|
||
AND 36
|
||
THEN
|
||
9
|
||
WHEN fac.safe_to_number (
|
||
TO_CHAR (
|
||
COALESCE (ud.ins_deelsrtcontrole_plandatum,
|
||
ud.ins_deelsrtcontrole_datum_org),
|
||
'iw')) BETWEEN 36
|
||
AND 40
|
||
THEN
|
||
10
|
||
WHEN fac.safe_to_number (
|
||
TO_CHAR (
|
||
COALESCE (ud.ins_deelsrtcontrole_plandatum,
|
||
ud.ins_deelsrtcontrole_datum_org),
|
||
'iw')) BETWEEN 40
|
||
AND 44
|
||
THEN
|
||
11
|
||
WHEN fac.safe_to_number (
|
||
TO_CHAR (
|
||
COALESCE (ud.ins_deelsrtcontrole_plandatum,
|
||
ud.ins_deelsrtcontrole_datum_org),
|
||
'iw')) BETWEEN 44
|
||
AND 48
|
||
THEN
|
||
12
|
||
WHEN fac.safe_to_number (
|
||
TO_CHAR (
|
||
COALESCE (ud.ins_deelsrtcontrole_plandatum,
|
||
ud.ins_deelsrtcontrole_datum_org),
|
||
'iw')) BETWEEN 48
|
||
AND 53
|
||
THEN
|
||
13
|
||
ELSE
|
||
0
|
||
END)
|
||
periodenummer,
|
||
TO_CHAR (ud.ins_deelsrtcontrole_datum, 'YYYY'),
|
||
fac.safe_to_number (TO_CHAR (ud.ins_deelsrtcontrole_datum, 'iw'))
|
||
AS weeknummer,
|
||
(CASE
|
||
WHEN fac.safe_to_number (
|
||
TO_CHAR (ud.ins_deelsrtcontrole_datum, 'iw')) BETWEEN 0
|
||
AND 5
|
||
THEN
|
||
1
|
||
WHEN fac.safe_to_number (
|
||
TO_CHAR (ud.ins_deelsrtcontrole_datum, 'iw')) BETWEEN 4
|
||
AND 8
|
||
THEN
|
||
2
|
||
WHEN fac.safe_to_number (
|
||
TO_CHAR (ud.ins_deelsrtcontrole_datum, 'iw')) BETWEEN 8
|
||
AND 12
|
||
THEN
|
||
3
|
||
WHEN fac.safe_to_number (
|
||
TO_CHAR (ud.ins_deelsrtcontrole_datum, 'iw')) BETWEEN 12
|
||
AND 16
|
||
THEN
|
||
4
|
||
WHEN fac.safe_to_number (
|
||
TO_CHAR (ud.ins_deelsrtcontrole_datum, 'iw')) BETWEEN 16
|
||
AND 20
|
||
THEN
|
||
5
|
||
WHEN fac.safe_to_number (
|
||
TO_CHAR (ud.ins_deelsrtcontrole_datum, 'iw')) BETWEEN 20
|
||
AND 24
|
||
THEN
|
||
6
|
||
WHEN fac.safe_to_number (
|
||
TO_CHAR (ud.ins_deelsrtcontrole_datum, 'iw')) BETWEEN 24
|
||
AND 28
|
||
THEN
|
||
7
|
||
WHEN fac.safe_to_number (
|
||
TO_CHAR (ud.ins_deelsrtcontrole_datum, 'iw')) BETWEEN 28
|
||
AND 32
|
||
THEN
|
||
8
|
||
WHEN fac.safe_to_number (
|
||
TO_CHAR (ud.ins_deelsrtcontrole_datum, 'iw')) BETWEEN 32
|
||
AND 36
|
||
THEN
|
||
9
|
||
WHEN fac.safe_to_number (
|
||
TO_CHAR (ud.ins_deelsrtcontrole_datum, 'iw')) BETWEEN 36
|
||
AND 40
|
||
THEN
|
||
10
|
||
WHEN fac.safe_to_number (
|
||
TO_CHAR (ud.ins_deelsrtcontrole_datum, 'iw')) BETWEEN 40
|
||
AND 44
|
||
THEN
|
||
11
|
||
WHEN fac.safe_to_number (
|
||
TO_CHAR (ud.ins_deelsrtcontrole_datum, 'iw')) BETWEEN 44
|
||
AND 48
|
||
THEN
|
||
12
|
||
WHEN fac.safe_to_number (
|
||
TO_CHAR (ud.ins_deelsrtcontrole_datum, 'iw')) BETWEEN 48
|
||
AND 53
|
||
THEN
|
||
13
|
||
ELSE
|
||
0
|
||
END)
|
||
periodenummer,
|
||
TO_CHAR (
|
||
fac.nextcyclusdatedeel (d.ins_deel_key,
|
||
sc.ins_srtcontrole_key),
|
||
'YYYY'),
|
||
fac.safe_to_number (
|
||
TO_CHAR (
|
||
fac.nextcyclusdatedeel (d.ins_deel_key,
|
||
sc.ins_srtcontrole_key),
|
||
'iw'))
|
||
AS weeknummer,
|
||
(CASE
|
||
WHEN fac.safe_to_number (
|
||
TO_CHAR (
|
||
fac.nextcyclusdatedeel (d.ins_deel_key,
|
||
sc.ins_srtcontrole_key),
|
||
'iw')) BETWEEN 0
|
||
AND 5
|
||
THEN
|
||
1
|
||
WHEN fac.safe_to_number (
|
||
TO_CHAR (
|
||
fac.nextcyclusdatedeel (d.ins_deel_key,
|
||
sc.ins_srtcontrole_key),
|
||
'iw')) BETWEEN 4
|
||
AND 8
|
||
THEN
|
||
2
|
||
WHEN fac.safe_to_number (
|
||
TO_CHAR (
|
||
fac.nextcyclusdatedeel (d.ins_deel_key,
|
||
sc.ins_srtcontrole_key),
|
||
'iw')) BETWEEN 8
|
||
AND 12
|
||
THEN
|
||
3
|
||
WHEN fac.safe_to_number (
|
||
TO_CHAR (
|
||
fac.nextcyclusdatedeel (d.ins_deel_key,
|
||
sc.ins_srtcontrole_key),
|
||
'iw')) BETWEEN 12
|
||
AND 16
|
||
THEN
|
||
4
|
||
WHEN fac.safe_to_number (
|
||
TO_CHAR (
|
||
fac.nextcyclusdatedeel (d.ins_deel_key,
|
||
sc.ins_srtcontrole_key),
|
||
'iw')) BETWEEN 16
|
||
AND 20
|
||
THEN
|
||
5
|
||
WHEN fac.safe_to_number (
|
||
TO_CHAR (
|
||
fac.nextcyclusdatedeel (d.ins_deel_key,
|
||
sc.ins_srtcontrole_key),
|
||
'iw')) BETWEEN 20
|
||
AND 24
|
||
THEN
|
||
6
|
||
WHEN fac.safe_to_number (
|
||
TO_CHAR (
|
||
fac.nextcyclusdatedeel (d.ins_deel_key,
|
||
sc.ins_srtcontrole_key),
|
||
'iw')) BETWEEN 24
|
||
AND 28
|
||
THEN
|
||
7
|
||
WHEN fac.safe_to_number (
|
||
TO_CHAR (
|
||
fac.nextcyclusdatedeel (d.ins_deel_key,
|
||
sc.ins_srtcontrole_key),
|
||
'iw')) BETWEEN 28
|
||
AND 32
|
||
THEN
|
||
8
|
||
WHEN fac.safe_to_number (
|
||
TO_CHAR (
|
||
fac.nextcyclusdatedeel (d.ins_deel_key,
|
||
sc.ins_srtcontrole_key),
|
||
'iw')) BETWEEN 32
|
||
AND 36
|
||
THEN
|
||
9
|
||
WHEN fac.safe_to_number (
|
||
TO_CHAR (
|
||
fac.nextcyclusdatedeel (d.ins_deel_key,
|
||
sc.ins_srtcontrole_key),
|
||
'iw')) BETWEEN 36
|
||
AND 40
|
||
THEN
|
||
10
|
||
WHEN fac.safe_to_number (
|
||
TO_CHAR (
|
||
fac.nextcyclusdatedeel (d.ins_deel_key,
|
||
sc.ins_srtcontrole_key),
|
||
'iw')) BETWEEN 40
|
||
AND 44
|
||
THEN
|
||
11
|
||
WHEN fac.safe_to_number (
|
||
TO_CHAR (
|
||
fac.nextcyclusdatedeel (d.ins_deel_key,
|
||
sc.ins_srtcontrole_key),
|
||
'iw')) BETWEEN 44
|
||
AND 48
|
||
THEN
|
||
12
|
||
WHEN fac.safe_to_number (
|
||
TO_CHAR (
|
||
fac.nextcyclusdatedeel (d.ins_deel_key,
|
||
sc.ins_srtcontrole_key),
|
||
'iw')) BETWEEN 48
|
||
AND 53
|
||
THEN
|
||
13
|
||
ELSE
|
||
0
|
||
END)
|
||
periodenummer,
|
||
sc.ins_srtcontrole_kosten,
|
||
idsc.ins_deelsrtcontrole_freezecost,
|
||
(CASE WHEN ud.controlemode_omschrijving = 'Niet uitgevoerd' THEN 0 ELSE 1 END)
|
||
FROM ins_v_udr_deelinspect ud,
|
||
ins_deelsrtcontrole idsc,
|
||
ins_deel d,
|
||
ins_kenmerkdeel z,
|
||
ins_kenmerk zk,
|
||
ins_srtdeel sd,
|
||
ins_srtgroep sg,
|
||
ins_tab_discipline disc,
|
||
ins_tab_discipline ctr,
|
||
ins_srtcontrole sc
|
||
WHERE ud.ins_srtcontrole_key = idsc.ins_srtcontrole_key
|
||
AND ud.ins_deelsrtcontrole_key = idsc.ins_deelsrtcontrole_key
|
||
AND d.ins_deel_key = ud.deel_key
|
||
AND idsc.INS_SRTCONTROLE_KEY = sc.ins_srtcontrole_key
|
||
AND idsc.INS_DEEL_KEY = ud.deel_key
|
||
AND sd.ins_srtdeel_key = d.ins_srtdeel_key
|
||
AND sg.ins_srtgroep_key = sd.ins_srtgroep_key
|
||
AND disc.ins_discipline_key = sg.ins_discipline_key
|
||
AND ctr.ins_discipline_key = sc.ctr_discipline_key
|
||
AND ( ( sd.ins_srtdeel_key = sc.ins_srtinstallatie_key
|
||
AND ins_srtcontrole_niveau = 'S')
|
||
OR ( sg.ins_srtgroep_key = sc.ins_srtinstallatie_key
|
||
AND ins_srtcontrole_niveau = 'G')
|
||
OR (disc.ins_discipline_key = sc.ins_srtinstallatie_key))
|
||
AND z.ins_deel_key = d.ins_deel_key(+)
|
||
AND z.ins_kenmerk_key = zk.ins_kenmerk_key
|
||
AND zk.ins_srtkenmerk_key = 41 -- kenmerk Zone bij objecten
|
||
AND z.ins_kenmerkdeel_verwijder IS NULL
|
||
UNION ALL
|
||
SELECT ud.deel_key,
|
||
ud.discipline,
|
||
ud.soort,
|
||
ud.groep,
|
||
ud.soortcode,
|
||
ud.omschrijving,
|
||
ud.plaatseigenaar,
|
||
ud.plaatseigenaartype,
|
||
ud.plaatsaanduiding,
|
||
ud.eigenaar,
|
||
ud.eigenaar_key,
|
||
ud.opmerking,
|
||
ud.regio,
|
||
ud.district,
|
||
ud.locatie_code,
|
||
ud.locatie_omschrijving,
|
||
ud.locatie_plaats,
|
||
ud.gebouwcode,
|
||
ud.gebouw,
|
||
ud.terreinsectorcode,
|
||
ud.terreinsector,
|
||
ud.verdiepingcode,
|
||
ud.ruimtenr,
|
||
z.ins_kenmerkdeel_waarde,
|
||
ud.werkplekvolgnr,
|
||
ud.werkplek,
|
||
ud.uitleenbaar,
|
||
ud.uitgeleend,
|
||
ud.res_opmerking,
|
||
ud.beheerder,
|
||
ud.vervaldatum,
|
||
ud.actief,
|
||
ud.aantal,
|
||
ud.state,
|
||
ud.statedate,
|
||
ud.fclt_3d_discipline_key,
|
||
ud.fclt_3d_afdeling_key,
|
||
ud.fclt_3d_locatie_key,
|
||
ctr.ins_discipline_omschrijving,
|
||
NULL,
|
||
sc.ins_srtcontrole_key,
|
||
sc.ins_srtcontrole_omschrijving,
|
||
NULL,
|
||
'Nog niet gepland',
|
||
NULL,
|
||
NULL,
|
||
NULL,
|
||
fac.nextcyclusdatedeel (d.ins_deel_key, sc.ins_srtcontrole_key),
|
||
'Nog te realiseren',
|
||
TO_CHAR (
|
||
fac.nextcyclusdatedeel (d.ins_deel_key,
|
||
sc.ins_srtcontrole_key),
|
||
'YYYY'),
|
||
fac.safe_to_number (
|
||
TO_CHAR (
|
||
fac.nextcyclusdatedeel (d.ins_deel_key,
|
||
sc.ins_srtcontrole_key),
|
||
'iw'))
|
||
AS weeknummer,
|
||
(CASE
|
||
WHEN fac.safe_to_number (
|
||
TO_CHAR (
|
||
fac.nextcyclusdatedeel (d.ins_deel_key,
|
||
sc.ins_srtcontrole_key),
|
||
'iw')) BETWEEN 0
|
||
AND 5
|
||
THEN
|
||
1
|
||
WHEN fac.safe_to_number (
|
||
TO_CHAR (
|
||
fac.nextcyclusdatedeel (d.ins_deel_key,
|
||
sc.ins_srtcontrole_key),
|
||
'iw')) BETWEEN 4
|
||
AND 8
|
||
THEN
|
||
2
|
||
WHEN fac.safe_to_number (
|
||
TO_CHAR (
|
||
fac.nextcyclusdatedeel (d.ins_deel_key,
|
||
sc.ins_srtcontrole_key),
|
||
'iw')) BETWEEN 8
|
||
AND 12
|
||
THEN
|
||
3
|
||
WHEN fac.safe_to_number (
|
||
TO_CHAR (
|
||
fac.nextcyclusdatedeel (d.ins_deel_key,
|
||
sc.ins_srtcontrole_key),
|
||
'iw')) BETWEEN 12
|
||
AND 16
|
||
THEN
|
||
4
|
||
WHEN fac.safe_to_number (
|
||
TO_CHAR (
|
||
fac.nextcyclusdatedeel (d.ins_deel_key,
|
||
sc.ins_srtcontrole_key),
|
||
'iw')) BETWEEN 16
|
||
AND 20
|
||
THEN
|
||
5
|
||
WHEN fac.safe_to_number (
|
||
TO_CHAR (
|
||
fac.nextcyclusdatedeel (d.ins_deel_key,
|
||
sc.ins_srtcontrole_key),
|
||
'iw')) BETWEEN 20
|
||
AND 24
|
||
THEN
|
||
6
|
||
WHEN fac.safe_to_number (
|
||
TO_CHAR (
|
||
fac.nextcyclusdatedeel (d.ins_deel_key,
|
||
sc.ins_srtcontrole_key),
|
||
'iw')) BETWEEN 24
|
||
AND 28
|
||
THEN
|
||
7
|
||
WHEN fac.safe_to_number (
|
||
TO_CHAR (
|
||
fac.nextcyclusdatedeel (d.ins_deel_key,
|
||
sc.ins_srtcontrole_key),
|
||
'iw')) BETWEEN 28
|
||
AND 32
|
||
THEN
|
||
8
|
||
WHEN fac.safe_to_number (
|
||
TO_CHAR (
|
||
fac.nextcyclusdatedeel (d.ins_deel_key,
|
||
sc.ins_srtcontrole_key),
|
||
'iw')) BETWEEN 32
|
||
AND 36
|
||
THEN
|
||
9
|
||
WHEN fac.safe_to_number (
|
||
TO_CHAR (
|
||
fac.nextcyclusdatedeel (d.ins_deel_key,
|
||
sc.ins_srtcontrole_key),
|
||
'iw')) BETWEEN 36
|
||
AND 40
|
||
THEN
|
||
10
|
||
WHEN fac.safe_to_number (
|
||
TO_CHAR (
|
||
fac.nextcyclusdatedeel (d.ins_deel_key,
|
||
sc.ins_srtcontrole_key),
|
||
'iw')) BETWEEN 40
|
||
AND 44
|
||
THEN
|
||
11
|
||
WHEN fac.safe_to_number (
|
||
TO_CHAR (
|
||
fac.nextcyclusdatedeel (d.ins_deel_key,
|
||
sc.ins_srtcontrole_key),
|
||
'iw')) BETWEEN 44
|
||
AND 48
|
||
THEN
|
||
12
|
||
WHEN fac.safe_to_number (
|
||
TO_CHAR (
|
||
fac.nextcyclusdatedeel (d.ins_deel_key,
|
||
sc.ins_srtcontrole_key),
|
||
'iw')) BETWEEN 48
|
||
AND 53
|
||
THEN
|
||
13
|
||
ELSE
|
||
0
|
||
END)
|
||
periodenummer,
|
||
NULL,
|
||
NULL,
|
||
NULL,
|
||
TO_CHAR (
|
||
fac.nextcyclusdatedeel (d.ins_deel_key,
|
||
sc.ins_srtcontrole_key),
|
||
'YYYY'),
|
||
fac.safe_to_number (
|
||
TO_CHAR (
|
||
fac.nextcyclusdatedeel (d.ins_deel_key,
|
||
sc.ins_srtcontrole_key),
|
||
'iw'))
|
||
AS weeknummer,
|
||
(CASE
|
||
WHEN fac.safe_to_number (
|
||
TO_CHAR (
|
||
fac.nextcyclusdatedeel (d.ins_deel_key,
|
||
sc.ins_srtcontrole_key),
|
||
'iw')) BETWEEN 0
|
||
AND 5
|
||
THEN
|
||
1
|
||
WHEN fac.safe_to_number (
|
||
TO_CHAR (
|
||
fac.nextcyclusdatedeel (d.ins_deel_key,
|
||
sc.ins_srtcontrole_key),
|
||
'iw')) BETWEEN 4
|
||
AND 8
|
||
THEN
|
||
2
|
||
WHEN fac.safe_to_number (
|
||
TO_CHAR (
|
||
fac.nextcyclusdatedeel (d.ins_deel_key,
|
||
sc.ins_srtcontrole_key),
|
||
'iw')) BETWEEN 8
|
||
AND 12
|
||
THEN
|
||
3
|
||
WHEN fac.safe_to_number (
|
||
TO_CHAR (
|
||
fac.nextcyclusdatedeel (d.ins_deel_key,
|
||
sc.ins_srtcontrole_key),
|
||
'iw')) BETWEEN 12
|
||
AND 16
|
||
THEN
|
||
4
|
||
WHEN fac.safe_to_number (
|
||
TO_CHAR (
|
||
fac.nextcyclusdatedeel (d.ins_deel_key,
|
||
sc.ins_srtcontrole_key),
|
||
'iw')) BETWEEN 16
|
||
AND 20
|
||
THEN
|
||
5
|
||
WHEN fac.safe_to_number (
|
||
TO_CHAR (
|
||
fac.nextcyclusdatedeel (d.ins_deel_key,
|
||
sc.ins_srtcontrole_key),
|
||
'iw')) BETWEEN 20
|
||
AND 24
|
||
THEN
|
||
6
|
||
WHEN fac.safe_to_number (
|
||
TO_CHAR (
|
||
fac.nextcyclusdatedeel (d.ins_deel_key,
|
||
sc.ins_srtcontrole_key),
|
||
'iw')) BETWEEN 24
|
||
AND 28
|
||
THEN
|
||
7
|
||
WHEN fac.safe_to_number (
|
||
TO_CHAR (
|
||
fac.nextcyclusdatedeel (d.ins_deel_key,
|
||
sc.ins_srtcontrole_key),
|
||
'iw')) BETWEEN 28
|
||
AND 32
|
||
THEN
|
||
8
|
||
WHEN fac.safe_to_number (
|
||
TO_CHAR (
|
||
fac.nextcyclusdatedeel (d.ins_deel_key,
|
||
sc.ins_srtcontrole_key),
|
||
'iw')) BETWEEN 32
|
||
AND 36
|
||
THEN
|
||
9
|
||
WHEN fac.safe_to_number (
|
||
TO_CHAR (
|
||
fac.nextcyclusdatedeel (d.ins_deel_key,
|
||
sc.ins_srtcontrole_key),
|
||
'iw')) BETWEEN 36
|
||
AND 40
|
||
THEN
|
||
10
|
||
WHEN fac.safe_to_number (
|
||
TO_CHAR (
|
||
fac.nextcyclusdatedeel (d.ins_deel_key,
|
||
sc.ins_srtcontrole_key),
|
||
'iw')) BETWEEN 40
|
||
AND 44
|
||
THEN
|
||
11
|
||
WHEN fac.safe_to_number (
|
||
TO_CHAR (
|
||
fac.nextcyclusdatedeel (d.ins_deel_key,
|
||
sc.ins_srtcontrole_key),
|
||
'iw')) BETWEEN 44
|
||
AND 48
|
||
THEN
|
||
12
|
||
WHEN fac.safe_to_number (
|
||
TO_CHAR (
|
||
fac.nextcyclusdatedeel (d.ins_deel_key,
|
||
sc.ins_srtcontrole_key),
|
||
'iw')) BETWEEN 48
|
||
AND 53
|
||
THEN
|
||
13
|
||
ELSE
|
||
0
|
||
END)
|
||
periodenummer,
|
||
sc.ins_srtcontrole_kosten,
|
||
NULL,
|
||
1
|
||
FROM ins_v_udr_deel ud,
|
||
ins_deel d,
|
||
ins_srtdeel sd,
|
||
ins_srtgroep sg,
|
||
ins_kenmerkdeel z,
|
||
ins_kenmerk zk,
|
||
ins_tab_discipline disc,
|
||
ins_tab_discipline ctr,
|
||
ins_srtcontrole sc
|
||
WHERE d.ins_deel_key = ud.deel_key
|
||
AND sd.ins_srtdeel_key = d.ins_srtdeel_key
|
||
AND sg.ins_srtgroep_key = sd.ins_srtgroep_key
|
||
AND disc.ins_discipline_key = sg.ins_discipline_key
|
||
AND ctr.ins_discipline_key = sc.ctr_discipline_key
|
||
AND ( ( sd.ins_srtdeel_key = sc.ins_srtinstallatie_key
|
||
AND ins_srtcontrole_niveau = 'S')
|
||
OR ( sg.ins_srtgroep_key = sc.ins_srtinstallatie_key
|
||
AND ins_srtcontrole_niveau = 'G')
|
||
OR ( disc.ins_discipline_key = sc.ins_srtinstallatie_key
|
||
AND ins_srtcontrole_niveau = 'D'))
|
||
AND z.ins_deel_key = d.ins_deel_key(+)
|
||
AND z.ins_kenmerk_key = zk.ins_kenmerk_key
|
||
AND zk.ins_srtkenmerk_key = 41 -- kenmerk Zone bij objecten
|
||
AND z.ins_kenmerkdeel_verwijder IS NULL;
|
||
|
||
CREATE OR REPLACE VIEW CSUN_V_UDR_DEELINSPECT_BUDGET
|
||
(
|
||
PARK,
|
||
PLANJAAR,
|
||
BUDGET,
|
||
PLANNING,
|
||
KOSTEN
|
||
)
|
||
AS
|
||
SELECT groep,
|
||
planjaar,
|
||
SUM (plancost) - SUM (freezecost) AS te_realiseren,
|
||
SUM (plancost) AS planning,
|
||
SUM (freezecost) AS realisatie
|
||
FROM CSUN_V_UDR_DEELINSPECT_PLAN
|
||
WHERE kosten_meetellen = 1
|
||
GROUP BY groep, planjaar;
|
||
|
||
|
||
CREATE OR REPLACE VIEW CSUN_V_NOTI_DM
|
||
(
|
||
CODE,
|
||
SENDER,
|
||
RECEIVER,
|
||
TEXT,
|
||
KEY,
|
||
XKEY,
|
||
XEMAIL,
|
||
XMOBILE,
|
||
XSENDER,
|
||
ATTACHMENTS
|
||
)
|
||
AS
|
||
SELECT 'CUST09'
|
||
AS code,
|
||
NULL
|
||
AS sender,
|
||
fac.safe_to_number (dmk.alg_onrgoedkenmerk_waarde)
|
||
AS receiver,
|
||
'Er is een nieuwe melding: '
|
||
|| m.mld_melding_key
|
||
|| ' ('
|
||
|| COALESCE (m.mld_melding_onderwerp,
|
||
sm.mld_stdmelding_omschrijving)
|
||
|| ')'
|
||
AS text,
|
||
m.mld_melding_key
|
||
AS key,
|
||
NULL
|
||
AS extra_key,
|
||
NULL,
|
||
NULL,
|
||
NULL,
|
||
NULL
|
||
FROM mld_melding m,
|
||
mld_stdmelding sm,
|
||
alg_locatie l,
|
||
alg_district d,
|
||
alg_onrgoedkenmerk dmk
|
||
WHERE m.mld_stdmelding_key = sm.mld_stdmelding_key
|
||
AND m.mld_alg_locatie_key = l.alg_locatie_key
|
||
AND l.alg_district_key = d.alg_district_key
|
||
AND d.alg_district_key = dmk.alg_onrgoed_key
|
||
AND dmk.alg_onrgoed_niveau = 'D'
|
||
AND dmk.alg_onrgoedkenmerk_verwijder IS NULL
|
||
AND dmk.alg_kenmerk_key = 1021 -- Kenmerk Districtsmanager
|
||
AND sm.mld_stdmelding_key IN
|
||
(SELECT fac_usrdata_prijs
|
||
FROM fac_usrdata
|
||
WHERE fac_usrtab_key = 321 -- Eigen tabel 'Notificatie DM'
|
||
AND fac_usrdata_verwijder IS NULL)
|
||
AND m.mld_melding_datum BETWEEN (SELECT fac_notificatie_job_lastrun
|
||
FROM fac_notificatie_job
|
||
WHERE UPPER (
|
||
fac_notificatie_job_view) =
|
||
'CSUN_V_NOTI_DM')
|
||
AND (SELECT fac_notificatie_job_nextrun
|
||
FROM fac_notificatie_job
|
||
WHERE UPPER (
|
||
fac_notificatie_job_view) =
|
||
'CSUN_V_NOTI_DM');
|
||
|
||
CREATE OR REPLACE VIEW CSUN_V_UDR_MELDING_KENTALIS
|
||
(
|
||
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,
|
||
WERKBON_OPDRACHT_NR,
|
||
KOSTEN,
|
||
OFFERTE_BEDRAG,
|
||
EINDDATUM_KLANT,
|
||
KLANTKENMERK,
|
||
KLANTSPEC_REGIO_INDELING,
|
||
OPDRACHTNUMMER_CSU,
|
||
AKKOORD_KLANT,
|
||
DATUM_AFRONDING,
|
||
DATUM_FACTURATIE,
|
||
ACCOUNTCODE,
|
||
FCLT_F_CLIENT,
|
||
TIJDSTIP,
|
||
AFHANDELTIJD_DAGEN,
|
||
AFHANDELTIJD_UREN,
|
||
REACTIE,
|
||
REACTIE_OPTIJD,
|
||
UITGEVOERD,
|
||
UITGEVOERD_DOOR,
|
||
AFMELD_KEY,
|
||
UITVOERINGSMELDING
|
||
)
|
||
AS
|
||
SELECT m."MELDING_KEY",
|
||
m."MELDINGNUMMER",
|
||
m."MELDING_START_KEY",
|
||
m."EXTERNNUMMER",
|
||
m."MELDING_REGIO",
|
||
m."MELDING_DISTRICT",
|
||
m."MELDING_LOCATIECODE",
|
||
m."MELDING_LOCATIE",
|
||
m."MELDING_LOCATIEPLAATS",
|
||
m."FCLT_3D_LOCATIE_KEY",
|
||
m."MELDING_GEBOUWCODE",
|
||
m."MELDING_GEBOUW",
|
||
m."MELDING_VERDIEPING",
|
||
m."MELDING_RUIMTENR",
|
||
m."MELDING_RUIMTE",
|
||
m."MELDING_ORDERNR",
|
||
m."KOSTENSOORTGROEP",
|
||
m."KOSTENSOORT",
|
||
m."KOSTENPLAATS",
|
||
m."KOSTENPLAATS_OMS",
|
||
m."MELDER",
|
||
m."MELDER_KEY",
|
||
m."AFDELING",
|
||
m."AFDELING_OMSCHRIJVING",
|
||
m."FCLT_3D_AFDELING_KEY",
|
||
m."BEDRIJF_KEY",
|
||
m."INVOERDER",
|
||
m."MELDBRON",
|
||
m."SOORTMELDING",
|
||
m."FCLT_3D_DISCIPLINE_KEY",
|
||
m."PRODUCTGROEP",
|
||
m."SUBPRODUCTGROEP",
|
||
m."BEHANDELGROEP",
|
||
m."BEHANDELAAR",
|
||
m."BEHANDELAAR_KEY",
|
||
m."SUBPRODUCTGROEPGROEP",
|
||
m."FCLT_3D_DISCIPLINE2_KEY",
|
||
m."ACTIEVE_BEHANDELGROEP",
|
||
m."ACTIEVE_BEHANDELAAR_KEY",
|
||
m."ACTIEVE_BEHANDELAAR",
|
||
m."MELDING_STATUS",
|
||
m."SLA_NVT",
|
||
m."SLA_WERKDGN",
|
||
m."SLA_WERKUREN",
|
||
m."SLA_RESPIJTDGN",
|
||
m."SLA_RESPIJTUREN",
|
||
m."SLA_ACCPTDGN",
|
||
m."SLA_ACCPTUREN",
|
||
m."PLAN_UITVOERTIJD_SLA",
|
||
m."MELDING_DATUM",
|
||
m."MELDING_EINDDATUM",
|
||
m."MELDING_EINDDATUM_STD",
|
||
m."MELDING_ACCEPTDATUM",
|
||
m."MELDING_AFGEMELD",
|
||
m."MELDING_ACCEPTED",
|
||
m."DOORLOOPTIJD_WERKDGN",
|
||
m."DOORLOOPTIJD_WERKUREN",
|
||
m."ONDERWERP",
|
||
m."VOMSCHRIJVING",
|
||
m."MELDING_OPMERKING",
|
||
m."PRIORITEIT",
|
||
m."PRIORITEITTXT",
|
||
m."RATING",
|
||
m."RATING_OPMERKING",
|
||
m."BOLLETJE",
|
||
m."ACTIECODE",
|
||
m."ACCEPT_SLA_DAGEN",
|
||
m."ACCEPT_SLA_UREN",
|
||
m."UITVOERING_SLA_DAGEN",
|
||
m."UITVOERING_SLA_UREN",
|
||
m."AFSPRAAK_SLA_DAGEN",
|
||
m."AFSPRAAK_SLA_UREN",
|
||
m."ACCEPT_SLA_OPTIJD",
|
||
m."UITVOERING_SLA_OPTIJD",
|
||
m."AFSPRAAK_SLA_OPTIJD",
|
||
m."SELFSERVICE",
|
||
(SELECT DISTINCT (mld_kenmerkmelding_waarde)
|
||
FROM mld_kenmerkmelding mk, mld_kenmerk k
|
||
WHERE mk.mld_kenmerk_key = k.mld_kenmerk_key
|
||
AND mld_srtkenmerk_key = 2
|
||
AND mk.mld_melding_key = m.melding_key
|
||
AND mk.mld_kenmerkmelding_verwijder IS NULL)
|
||
werkbon_opdracht_nr,
|
||
(SELECT DISTINCT (fac.safe_to_number (mld_kenmerkmelding_waarde))
|
||
FROM mld_kenmerkmelding mk, mld_kenmerk k
|
||
WHERE mk.mld_kenmerk_key = k.mld_kenmerk_key
|
||
AND mld_srtkenmerk_key = 101
|
||
AND mk.mld_melding_key = m.melding_key
|
||
AND mk.mld_kenmerkmelding_verwijder IS NULL)
|
||
kosten,
|
||
(SELECT DISTINCT (fac.safe_to_number (mld_kenmerkmelding_waarde))
|
||
FROM mld_kenmerkmelding mk, mld_kenmerk k
|
||
WHERE mk.mld_kenmerk_key = k.mld_kenmerk_key
|
||
AND mld_srtkenmerk_key = 141
|
||
AND mk.mld_melding_key = m.melding_key
|
||
AND mk.mld_kenmerkmelding_verwijder IS NULL)
|
||
offerte_bedrag,
|
||
(SELECT DISTINCT (mld_kenmerkmelding_waarde)
|
||
FROM mld_kenmerkmelding mk, mld_kenmerk k
|
||
WHERE mk.mld_kenmerk_key = k.mld_kenmerk_key
|
||
AND mld_srtkenmerk_key = 161
|
||
AND mk.mld_melding_key = m.melding_key
|
||
AND mk.mld_kenmerkmelding_verwijder IS NULL)
|
||
einddatum_klant,
|
||
(SELECT DISTINCT (alg_onrgoedkenmerk_waarde)
|
||
FROM alg_onrgoedkenmerk aok
|
||
WHERE alg_kenmerk_key = 1240
|
||
AND aok.alg_onrgoed_key = fclt_3d_locatie_key
|
||
AND alg_onrgoedkenmerk_verwijder IS NULL)
|
||
klantkenmerk,
|
||
(SELECT DISTINCT (alg_onrgoedkenmerk_waarde)
|
||
FROM alg_onrgoedkenmerk aok
|
||
WHERE alg_kenmerk_key = 1123
|
||
AND aok.alg_onrgoed_key = fclt_3d_locatie_key
|
||
AND alg_onrgoedkenmerk_verwijder IS NULL)
|
||
klantspec_regio_indeling,
|
||
(SELECT DISTINCT (fac.safe_to_number (mld_kenmerkmelding_waarde))
|
||
FROM mld_kenmerkmelding mk, mld_kenmerk k
|
||
WHERE mk.mld_kenmerk_key = k.mld_kenmerk_key
|
||
AND mld_srtkenmerk_key = 661
|
||
AND mk.mld_melding_key = m.melding_key
|
||
AND mk.mld_kenmerkmelding_verwijder IS NULL)
|
||
opdrachtnummer_csu,
|
||
(SELECT DISTINCT (ud.fac_usrdata_omschr)
|
||
FROM mld_kenmerkmelding mk, mld_kenmerk k, fac_usrdata ud
|
||
WHERE mk.mld_kenmerk_key = k.mld_kenmerk_key
|
||
AND mld_srtkenmerk_key = 681
|
||
AND ud.fac_usrtab_key = 261 -- Eigen tabel ja/nee
|
||
AND ud.fac_usrdata_key =
|
||
fac.safe_to_number (mld_kenmerkmelding_waarde)
|
||
AND mk.mld_melding_key = m.melding_key
|
||
AND mk.mld_kenmerkmelding_verwijder IS NULL)
|
||
akkoord_klant,
|
||
fac.gettrackingdate ('MLDAFR', m.melding_key),
|
||
TO_DATE (DECODE (fac.gettrackingdate ('MLDAFR', m.melding_key),
|
||
NULL, DECODE ((SELECT DISTINCT (fac.safe_to_number (mld_kenmerkmelding_waarde))
|
||
FROM mld_kenmerkmelding mk, mld_kenmerk k
|
||
WHERE mk.mld_kenmerk_key = k.mld_kenmerk_key
|
||
AND mld_srtkenmerk_key = 101
|
||
AND mk.mld_melding_key = m.melding_key
|
||
AND mk.mld_kenmerkmelding_verwijder IS NULL), NULL, NULL, m."MELDING_AFGEMELD"),
|
||
fac.gettrackingdate ('MLDAFR', m.melding_key))) datum_facturatie,
|
||
mc.accountcode,
|
||
mc.fclt_f_client,
|
||
mc.tijdstip,
|
||
mc.afhandeltijd_dagen,
|
||
mc.afhandeltijd_uren,
|
||
mc.reactie,
|
||
mc.reactie_optijd,
|
||
mc.uitgevoerd,
|
||
mc.uitgevoerd_door,
|
||
mc.afmeld_key,
|
||
(SELECT DISTINCT (m1.mld_melding_key)
|
||
FROM mld_melding m1
|
||
WHERE m1.mld_melding_start_key = m."MELDING_START_KEY"
|
||
AND m1.mld_workflowstep_key = 50)
|
||
FROM mld_v_udr_melding m, csun_v_rap_melding mc
|
||
WHERE mc.melding = m.melding_key
|
||
AND UPPER (mc.fclt_f_client) = 'KENTALIS';
|
||
|
||
CREATE OR REPLACE VIEW CSUN_V_NOTI_SLA24HR
|
||
(
|
||
CODE,
|
||
SENDER,
|
||
RECEIVER,
|
||
TEXT,
|
||
KEY,
|
||
XKEY,
|
||
XEMAIL,
|
||
XMOBILE,
|
||
XSENDER,
|
||
ATTACHMENTS
|
||
)
|
||
AS
|
||
SELECT 'CUST10' AS code,
|
||
NULL AS sender,
|
||
NULL AS receiver,
|
||
'De SLA verloopt over 24 uur' AS text,
|
||
mld_melding_key AS key,
|
||
NULL AS extra_key,
|
||
prs_perslid_email AS xemail,
|
||
NULL,
|
||
NULL,
|
||
NULL
|
||
FROM (SELECT DISTINCT x.*
|
||
FROM (SELECT *
|
||
FROM (SELECT m.mld_melding_key,
|
||
sm.mld_ins_discipline_key,
|
||
alg_onrgoedkenmerk_waarde
|
||
prs_perslid_email,
|
||
mld_melding_status,
|
||
m.mld_stdmelding_key,
|
||
mld_melding_einddatum,
|
||
m.mld_melding_onderwerp,
|
||
m.mld_melding_omschrijving
|
||
FROM mld_melding m,
|
||
mld_stdmelding sm,
|
||
(SELECT alg_onrgoed_key,
|
||
alg_onrgoedkenmerk_waarde
|
||
FROM alg_onrgoedkenmerk aogk
|
||
WHERE alg_kenmerk_key = 1260
|
||
AND alg_onrgoedkenmerk_verwijder
|
||
IS NULL) lse
|
||
WHERE m.mld_alg_locatie_key =
|
||
lse.alg_onrgoed_key
|
||
AND m.mld_stdmelding_key =
|
||
sm.mld_stdmelding_key
|
||
AND m.mld_stdmelding_key != 41 -- ontvangen berichten
|
||
AND m.mld_stdmelding_key IN
|
||
(SELECT fac.safe_to_number(fac_usrdata_code)
|
||
FROM fac_usrdata
|
||
WHERE fac_usrtab_key = 342 -- Eigen Tabel 'NotificerenBB'
|
||
AND fac_usrdata_verwijder
|
||
IS NULL)
|
||
UNION ALL
|
||
SELECT m.mld_melding_key,
|
||
sm.mld_ins_discipline_key,
|
||
prs_perslid_email,
|
||
mld_melding_status,
|
||
m.mld_stdmelding_key,
|
||
mld_melding_einddatum,
|
||
m.mld_melding_onderwerp,
|
||
m.mld_melding_omschrijving
|
||
FROM prs_perslid p,
|
||
mld_melding m,
|
||
mld_stdmelding sm,
|
||
prs_v_perslidwerkplek_gegevens pwpg,
|
||
prs_kenmerklink kl
|
||
WHERE m.mld_stdmelding_key != 41 -- ontvangen berichten
|
||
AND m.mld_stdmelding_key =
|
||
sm.mld_stdmelding_key
|
||
AND pwpg.alg_locatie_key =
|
||
m.mld_alg_locatie_key
|
||
AND pwpg.prs_perslid_key =
|
||
p.prs_perslid_key
|
||
AND p.prs_srtperslid_key IN (32) -- BBer
|
||
AND prs_kenmerk_key = 1100 -- notificatie enable vinkje
|
||
AND fac.safe_to_number (
|
||
prs_kenmerklink_waarde) =
|
||
1
|
||
AND kl.prs_link_key = p.prs_perslid_key
|
||
AND p.prs_perslid_email IS NOT NULL
|
||
AND p.prs_perslid_verwijder IS NULL
|
||
AND m.mld_stdmelding_key IN
|
||
(SELECT fac.safe_to_number(fac_usrdata_code)
|
||
FROM fac_usrdata
|
||
WHERE fac_usrtab_key = 342 -- Eigen Tabel 'NotificerenBB'
|
||
AND fac_usrdata_verwijder
|
||
IS NULL)
|
||
UNION ALL
|
||
SELECT m.mld_melding_key,
|
||
sm.mld_ins_discipline_key,
|
||
prs_perslid_email,
|
||
mld_melding_status,
|
||
m.mld_stdmelding_key,
|
||
mld_melding_einddatum,
|
||
m.mld_melding_onderwerp,
|
||
m.mld_melding_omschrijving
|
||
FROM prs_perslid p,
|
||
mld_melding m,
|
||
mld_stdmelding sm,
|
||
prs_v_perslidwerkplek_gegevens pwpg,
|
||
prs_kenmerklink kl
|
||
WHERE m.mld_stdmelding_key != 41 -- ontvangen berichten
|
||
AND m.mld_stdmelding_key =
|
||
sm.mld_stdmelding_key
|
||
AND pwpg.alg_locatie_key =
|
||
m.mld_alg_locatie_key
|
||
AND pwpg.prs_perslid_key =
|
||
p.prs_perslid_key
|
||
AND p.prs_srtperslid_key IN (4041, 50) -- Objectleider, Rayonleider
|
||
AND prs_kenmerk_key = 1100 -- notificatie enable vinkje
|
||
AND fac.safe_to_number (
|
||
prs_kenmerklink_waarde) =
|
||
1
|
||
AND kl.prs_link_key = p.prs_perslid_key
|
||
AND p.prs_perslid_email IS NOT NULL
|
||
AND p.prs_perslid_verwijder IS NULL
|
||
AND m.mld_stdmelding_key IN
|
||
(SELECT fac.safe_to_number(fac_usrdata_code)
|
||
FROM fac_usrdata
|
||
WHERE fac_usrtab_key = 341 -- Eigen Tabel 'NotificerenRM/PM'
|
||
AND fac_usrdata_verwijder
|
||
IS NULL)) g
|
||
WHERE g.mld_melding_status IN (2,
|
||
3,
|
||
4,
|
||
7) -- Ivm CSUN#59537 moet deze notificatie ook pas wanneer deze bij Backoffice staat (status 2/3/4/7) ipv alleen nog in planning bij Frontoffice (status 0)
|
||
AND g.mld_stdmelding_key NOT IN
|
||
(SELECT mld_stdmelding_key
|
||
FROM mld_stdmelding
|
||
WHERE mld_stdmeldinggroep_key = 1) -- Geen notificatie
|
||
AND NOT EXISTS
|
||
(SELECT t.fac_tracking_key
|
||
FROM fac_tracking t
|
||
WHERE t.fac_srtnotificatie_key = 821 -- CUST10 mag niet eerder zijn gestuurd, maar 1 keer sturen
|
||
AND t.fac_tracking_refkey =
|
||
g.mld_melding_key)
|
||
AND g.mld_melding_einddatum < SYSDATE + 1 --Binnen 24 uur vanaf nu
|
||
AND g.mld_ins_discipline_key IN
|
||
(SELECT fac.safe_to_number(fac_usrdata_code)
|
||
FROM fac_usrdata
|
||
WHERE fac_usrtab_key = 401 -- Eigen tabel 'Notificatie SLA'
|
||
AND fac_usrdata_verwijder IS NULL))
|
||
x
|
||
WHERE x.mld_melding_key NOT IN
|
||
(SELECT t.fac_tracking_refkey
|
||
FROM fac_tracking t
|
||
WHERE t.fac_tracking_oms LIKE '%CUST10%'
|
||
AND t.fac_tracking_refkey = x.mld_melding_key));
|
||
|
||
CREATE OR REPLACE VIEW CSUN_V_NOTI_SLA_JDEKLACHT
|
||
(
|
||
CODE,
|
||
SENDER,
|
||
RECEIVER,
|
||
TEXT,
|
||
KEY,
|
||
XKEY,
|
||
XEMAIL,
|
||
XMOBILE,
|
||
XSENDER,
|
||
ATTACHMENTS
|
||
)
|
||
AS
|
||
SELECT 'CUST11'
|
||
AS code,
|
||
NULL
|
||
AS sender,
|
||
fac.safe_to_number (dmk.alg_onrgoedkenmerk_waarde)
|
||
AS receiver,
|
||
'De SLA van de JDE klacht verloopt binnen 4 uur'
|
||
AS text,
|
||
m.mld_melding_key
|
||
AS key,
|
||
NULL
|
||
AS extra_key,
|
||
NULL,
|
||
NULL,
|
||
NULL,
|
||
NULL
|
||
FROM mld_melding m,
|
||
mld_stdmelding sm,
|
||
alg_locatie l,
|
||
alg_district d,
|
||
alg_onrgoedkenmerk dmk
|
||
WHERE m.mld_stdmelding_key = sm.mld_stdmelding_key
|
||
AND m.mld_alg_locatie_key = l.alg_locatie_key
|
||
AND l.alg_district_key = d.alg_district_key
|
||
AND d.alg_district_key = dmk.alg_onrgoed_key
|
||
AND dmk.alg_onrgoed_niveau = 'D'
|
||
AND dmk.alg_onrgoedkenmerk_verwijder IS NULL
|
||
AND dmk.alg_kenmerk_key = 1021 -- Kenmerk Districtsmanager
|
||
AND sm.mld_ins_discipline_key = 962 --JDE Klachten
|
||
AND m.mld_melding_einddatum < SYSDATE + (4 / 24) --Binnen 4 uur vanaf nu
|
||
AND m.mld_melding_status IN (2,
|
||
3,
|
||
4,
|
||
7)
|
||
AND m.mld_melding_key NOT IN
|
||
(SELECT t.fac_tracking_refkey
|
||
FROM fac_tracking t
|
||
WHERE t.fac_tracking_oms LIKE '%CUST11%'
|
||
AND t.fac_tracking_refkey = m.mld_melding_key);
|
||
|
||
CREATE OR REPLACE VIEW CSUN_V_UDR_DEELINSPECT_JAARPLAN
|
||
(
|
||
GROEP,
|
||
PLANJAAR,
|
||
FCLT_3D_LOCATIE_KEY,
|
||
INS_SRTDEEL_KEY,
|
||
SRTCONTROLE_OMSCHRIJVING,
|
||
AANTAL_HUISJES,
|
||
INS_SRTCONTROLE_KEY,
|
||
TAAKCATEGORIE,
|
||
PRIJS_ENKEL,
|
||
EENHEID,
|
||
PERIODE,
|
||
FACTOR,
|
||
REALISATIE_P01,
|
||
REALISATIE_P02,
|
||
REALISATIE_P03,
|
||
REALISATIE_P04,
|
||
REALISATIE_P05,
|
||
REALISATIE_P06,
|
||
REALISATIE_P07,
|
||
REALISATIE_P08,
|
||
REALISATIE_P09,
|
||
REALISATIE_P10,
|
||
REALISATIE_P11,
|
||
REALISATIE_P12,
|
||
REALISATIE_P13,
|
||
REALISATIE,
|
||
PLANNING,
|
||
NOG_REALISEREN
|
||
)
|
||
AS
|
||
SELECT groep,
|
||
planjaar,
|
||
fclt_3d_locatie_key,
|
||
ins_srtdeel_key,
|
||
srtcontrole_omschrijving,
|
||
aantal_huisjes,
|
||
ins_srtcontrole_key,
|
||
taakcategorie,
|
||
prijs
|
||
AS prijs_enkel,
|
||
eenheid,
|
||
periode,
|
||
DECODE (eenheid, 4, 1 / periode, 3, 12 / periode)
|
||
AS factor,
|
||
realisatie_p01,
|
||
realisatie_p02,
|
||
realisatie_p03,
|
||
realisatie_p04,
|
||
realisatie_p05,
|
||
realisatie_p06,
|
||
realisatie_p07,
|
||
realisatie_p08,
|
||
realisatie_p09,
|
||
realisatie_p10,
|
||
realisatie_p11,
|
||
realisatie_p12,
|
||
realisatie_p13,
|
||
realisatie,
|
||
( aantal_huisjes
|
||
* prijs
|
||
* (DECODE (eenheid, 4, 1 / periode, 3, 12 / periode)))
|
||
AS planning,
|
||
((aantal_huisjes * prijs) - realisatie)
|
||
AS nog_realiseren
|
||
FROM (SELECT x.*,
|
||
(SELECT COUNT (*)
|
||
FROM ins_deel tel
|
||
WHERE tel.ins_srtdeel_key = x.ins_srtdeel_key)
|
||
AS aantal_huisjes,
|
||
(SELECT sc.ins_srtcontrole_eenheid
|
||
FROM ins_srtcontrole sc
|
||
WHERE sc.ins_srtcontrole_key = x.ins_srtcontrole_key)
|
||
AS eenheid,
|
||
(SELECT sc.ins_srtcontrole_periode
|
||
FROM ins_srtcontrole sc
|
||
WHERE sc.ins_srtcontrole_key = x.ins_srtcontrole_key)
|
||
AS periode,
|
||
(SELECT sc.ins_srtcontrole_kosten
|
||
FROM ins_srtcontrole sc
|
||
WHERE sc.ins_srtcontrole_key = x.ins_srtcontrole_key)
|
||
AS prijs
|
||
FROM ( SELECT groep,
|
||
planjaar,
|
||
fclt_3d_locatie_key,
|
||
d.ins_srtdeel_key,
|
||
srtcontrole_omschrijving,
|
||
ins_srtcontrole_key,
|
||
taakcategorie,
|
||
-- SUM (plancost) - SUM (freezecost) AS te_realiseren,
|
||
-- SUM (plancost) AS planning,
|
||
SUM (freezecost)
|
||
AS realisatie,
|
||
SUM (
|
||
CASE WHEN planperiode = 1 THEN freezecost END)
|
||
AS realisatie_p01,
|
||
SUM (
|
||
CASE WHEN planperiode = 2 THEN freezecost END)
|
||
AS realisatie_p02,
|
||
SUM (
|
||
CASE WHEN planperiode = 3 THEN freezecost END)
|
||
AS realisatie_p03,
|
||
SUM (
|
||
CASE WHEN planperiode = 4 THEN freezecost END)
|
||
AS realisatie_p04,
|
||
SUM (
|
||
CASE WHEN planperiode = 5 THEN freezecost END)
|
||
AS realisatie_p05,
|
||
SUM (
|
||
CASE WHEN planperiode = 6 THEN freezecost END)
|
||
AS realisatie_p06,
|
||
SUM (
|
||
CASE WHEN planperiode = 7 THEN freezecost END)
|
||
AS realisatie_p07,
|
||
SUM (
|
||
CASE WHEN planperiode = 8 THEN freezecost END)
|
||
AS realisatie_p08,
|
||
SUM (
|
||
CASE WHEN planperiode = 9 THEN freezecost END)
|
||
AS realisatie_p09,
|
||
SUM (
|
||
CASE WHEN planperiode = 10 THEN freezecost END)
|
||
AS realisatie_p10,
|
||
SUM (
|
||
CASE WHEN planperiode = 11 THEN freezecost END)
|
||
AS realisatie_p11,
|
||
SUM (
|
||
CASE WHEN planperiode = 12 THEN freezecost END)
|
||
AS realisatie_p12,
|
||
SUM (
|
||
CASE WHEN planperiode = 13 THEN freezecost END)
|
||
AS realisatie_p13
|
||
FROM CSUN_V_UDR_DEELINSPECT_PLAN, ins_deel d
|
||
WHERE kosten_meetellen = 1
|
||
AND deel_key = ins_deel_key
|
||
GROUP BY groep,
|
||
planjaar,
|
||
fclt_3d_locatie_key,
|
||
d.ins_srtdeel_key,
|
||
ins_srtcontrole_key,
|
||
taakcategorie,
|
||
srtcontrole_omschrijving
|
||
ORDER BY fclt_3d_locatie_key, ins_srtcontrole_key) x);
|
||
|
||
CREATE OR REPLACE PROCEDURE csun_mld_verwerken
|
||
AS
|
||
c_applname VARCHAR2 (50) := 'MLD_VERWERK';
|
||
v_errormsg VARCHAR2 (1000);
|
||
oracle_err_num NUMBER;
|
||
oracle_err_mes VARCHAR2 (200);
|
||
v_mld_key NUMBER;
|
||
|
||
CURSOR c IS
|
||
SELECT mld_melding_key
|
||
FROM mld_melding
|
||
WHERE mld_melding_status = 5
|
||
AND mld_melding_afgerond = 1;
|
||
BEGIN
|
||
FOR rec IN c
|
||
LOOP
|
||
v_mld_key := rec.mld_melding_key;
|
||
mld.setmeldingstatus (rec.mld_melding_key,
|
||
6, -- Status Financieel verwerkt
|
||
4, -- Facilitor
|
||
NULL);
|
||
END LOOP;
|
||
EXCEPTION
|
||
WHEN OTHERS
|
||
THEN
|
||
oracle_err_num := SQLCODE;
|
||
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
|
||
v_errormsg :=
|
||
'ORACLE (error '
|
||
|| oracle_err_num
|
||
|| '/'
|
||
|| oracle_err_mes
|
||
|| ')';
|
||
fac.writelog (c_applname,
|
||
'E',
|
||
v_mld_key || ' ' || v_errormsg,
|
||
'Daily taak verwerken meldingen afgebroken!');
|
||
END;
|
||
/
|
||
|
||
CREATE OR REPLACE PROCEDURE CSUN_DAILY
|
||
AS
|
||
v_errormsg VARCHAR2 (1000);
|
||
oracle_err_num NUMBER;
|
||
oracle_err_mes VARCHAR2 (200);
|
||
BEGIN
|
||
-- Meldingen die zijn afgemelde <20>n afgerond mogen financieel worden verwerkt (status 6 / Archief)
|
||
csun_mld_verwerken ();
|
||
END;
|
||
/
|
||
|
||
CREATE OR REPLACE VIEW csun_v_rap_alginrichting
|
||
AS
|
||
SELECT prjnr,
|
||
fclt_f_regioomschrijving,
|
||
fclt_f_districtomschrijving,
|
||
locatiecode,
|
||
locatieomschrijving,
|
||
bezoekadres,
|
||
postcode,
|
||
plaats,
|
||
fclt_f_client,
|
||
bud,
|
||
bb,
|
||
rm_pm
|
||
FROM csun_v_rap_locatiegegevens
|
||
WHERE rm_pm = '*' OR bb = '*';
|
||
|
||
CREATE OR REPLACE VIEW csun_v_noti_alginrichting
|
||
(
|
||
code,
|
||
sender,
|
||
receiver,
|
||
text,
|
||
key,
|
||
xkey,
|
||
xemail,
|
||
xmobile,
|
||
xsender,
|
||
attachments
|
||
)
|
||
AS
|
||
SELECT DISTINCT
|
||
'CUST12' AS code,
|
||
NULL,
|
||
NULL,
|
||
'Attentie: Bij deze locatie is geen BBer, RMer of PMer/Objectleider ingesteld',
|
||
(SELECT fac_usrrap_key
|
||
FROM fac_usrrap
|
||
WHERE UPPER(fac_usrrap_view_name) = 'CSUN_V_RAP_ALGINRICHTING')
|
||
rapportnr,
|
||
NULL,
|
||
'klantsupport@csu.nl',
|
||
NULL,
|
||
NULL,
|
||
NULL
|
||
FROM csun_v_rap_alginrichting
|
||
WHERE rm_pm = '*'
|
||
OR bb = '*';
|
||
|
||
CREATE OR REPLACE VIEW CSUN_V_MULESOFT_POSTNL
|
||
(
|
||
MELDINGNR,
|
||
WERKBONOPDRACHTNRKLANT,
|
||
CSUPROJECTNUMMER,
|
||
PONUMMER,
|
||
HEEFTWERKBON,
|
||
DATUMWERKBONVERSTUUR,
|
||
WERKBONGEVULD,
|
||
STATUS,
|
||
WIJZIGDATUM,
|
||
SYNCDATUM,
|
||
INSERTDATE,
|
||
ACCEPTDATE,
|
||
AFMELDDATE,
|
||
AFMELDTEKST
|
||
)
|
||
AS
|
||
SELECT m.mld_melding_key
|
||
AS Meldingnr,
|
||
(SELECT k.mld_kenmerkmelding_waarde
|
||
FROM mld_kenmerkmelding k, mld_kenmerk km, mld_srtkenmerk skm
|
||
WHERE k.mld_kenmerkmelding_verwijder IS NULL
|
||
AND k.mld_kenmerk_key = km.mld_kenmerk_key
|
||
AND skm.mld_srtkenmerk_key = km.mld_srtkenmerk_key
|
||
AND skm.mld_srtkenmerk_key = 2 --Werkbon/Opdrachtnr. klant
|
||
AND k.mld_melding_key = m.mld_melding_key)
|
||
AS werkbonOpdrachtnrKlant,
|
||
l.alg_locatie_code
|
||
AS CSUProjectNummer,
|
||
(SELECT mld_kenmerkmelding_waarde
|
||
FROM mld_kenmerkmelding
|
||
WHERE mld_kenmerkmelding_verwijder IS NULL
|
||
AND mld_kenmerk_key = 1781 --PO-nummer
|
||
AND mld_melding_key = m.mld_melding_key)
|
||
AS werkbonOpdrachtnrKlant,
|
||
(SELECT fac_usrdata_omschr
|
||
FROM mld_kenmerkmelding, fac_usrdata
|
||
WHERE mld_kenmerkmelding_verwijder IS NULL
|
||
AND TO_CHAR (fac_usrdata_key) = mld_kenmerkmelding_waarde
|
||
AND mld_kenmerk_key = 1722 --PostNL werkbon (ja/nee)
|
||
AND mld_melding_key = m.mld_melding_key)
|
||
AS heeftwerkbon,
|
||
(SELECT mld_kenmerkmelding_waarde
|
||
FROM mld_kenmerkmelding
|
||
WHERE mld_kenmerkmelding_verwijder IS NULL
|
||
AND mld_kenmerk_key = 1782 --Datum werkbon verstuurd
|
||
AND mld_melding_key = m.mld_melding_key)
|
||
AS datumwerkbonverstuurd,
|
||
(SELECT fac_usrdata_omschr
|
||
FROM mld_kenmerkmelding, fac_usrdata
|
||
WHERE mld_kenmerkmelding_verwijder IS NULL
|
||
AND TO_CHAR (fac_usrdata_key) = mld_kenmerkmelding_waarde
|
||
AND mld_kenmerk_key = 1801 --PostNL werkbon gevuld (ja/nee)?
|
||
AND mld_melding_key = m.mld_melding_key)
|
||
AS werkbongevuld,
|
||
m.mld_melding_status
|
||
AS Status,
|
||
(SELECT MAX (datum)
|
||
FROM ((SELECT MAX (t.fac_tracking_datum) AS datum
|
||
FROM fac_tracking t, fac_srtnotificatie sn
|
||
WHERE sn.fac_srtnotificatie_xmlnode = 'melding'
|
||
AND sn.fac_srtnotificatie_key =
|
||
t.fac_srtnotificatie_key
|
||
AND t.fac_tracking_refkey = m.mld_melding_key)
|
||
UNION ALL
|
||
SELECT MAX (n.mld_melding_note_aanmaak) AS datum
|
||
FROM mld_melding_note n
|
||
WHERE n.mld_melding_note_flag = 1
|
||
AND n.mld_melding_key = m.mld_melding_key))
|
||
AS wijzigdatum,
|
||
(SELECT mld_kenmerkmelding_waarde
|
||
FROM mld_kenmerkmelding
|
||
WHERE mld_kenmerkmelding_verwijder IS NULL
|
||
AND mld_kenmerk_key = 1823 --Syncdate
|
||
AND mld_melding_key = m.mld_melding_key)
|
||
AS SyncDatum,
|
||
COALESCE (fac.gettrackingdate ('MLDNEW', m.mld_melding_key),
|
||
m.mld_melding_datum)
|
||
AS insertDate,
|
||
fac.gettrackingdate ('MLDACP', m.mld_melding_key)
|
||
AS acceptDate,
|
||
fac.gettrackingdate ('MLDAFM', m.mld_melding_key)
|
||
AS afmeldDate,
|
||
m.mld_melding_opmerking
|
||
AS afmeldtekst
|
||
FROM mld_melding m, alg_locatie l
|
||
WHERE m.mld_melding_status NOT IN (1, 6) --Afgewezen of historie
|
||
AND m.prs_perslid_key = 39281 -- API-user tbv Mulesoft
|
||
AND l.alg_locatie_key = m.mld_alg_locatie_key;
|
||
|
||
------ payload end ------
|
||
|
||
SET DEFINE OFF
|
||
BEGIN adm.systrackscriptId ('$Id$', 0); END;
|
||
/
|
||
|
||
COMMIT;
|
||
SET ECHO OFF
|
||
SPOOL OFF
|
||
SET DEFINE ON
|
||
PROMPT Logfile of this upgrade is: &fcltlogfile
|
||
|