3110 lines
124 KiB
SQL
3110 lines
124 KiB
SQL
-- Script containing customer specific configuration sql statements for Asito Digitaal Logboek
|
||
-- $Revision$
|
||
-- $Id$
|
||
|
||
|
||
DEFINE thisfile = 'ASDL.SQL'
|
||
DEFINE dbuser = '^ASDL'
|
||
DEFINE custid = 'ASDL'
|
||
|
||
SET ECHO ON
|
||
SET DEFINE ON
|
||
COLUMN fcltlogfile NEW_VALUE fcltlogfile NOPRINT;
|
||
WHENEVER SQLERROR EXIT;
|
||
SELECT adm.scriptspoolfile('&dbuser', '&thisfile') AS fcltlogfile FROM DUAL;
|
||
WHENEVER SQLERROR CONTINUE;
|
||
SPOOL &fcltlogfile
|
||
SET DEFINE OFF
|
||
|
||
------ payload begin ------
|
||
|
||
|
||
CREATE OR REPLACE PACKAGE asdl
|
||
AS
|
||
FUNCTION check_valid_schedule (p_deel_key IN NUMBER)
|
||
RETURN VARCHAR2;
|
||
|
||
FUNCTION get_bits_str (p_eenheid IN NUMBER,
|
||
p_bits IN NUMBER)
|
||
RETURN VARCHAR2;
|
||
|
||
FUNCTION get_bits_value (p_eenheid IN NUMBER,
|
||
p_rangorde IN NUMBER,
|
||
p_dagen IN VARCHAR2)
|
||
RETURN NUMBER;
|
||
|
||
FUNCTION get_bits_rangorde (p_eenheid IN NUMBER,
|
||
p_bits IN NUMBER)
|
||
RETURN NUMBER;
|
||
|
||
FUNCTION get_kenmerks (p_module IN VARCHAR2,
|
||
p_srtkenmerk_key IN NUMBER,
|
||
p_soort_key IN NUMBER,
|
||
p_soort_niveau IN VARCHAR2,
|
||
p_link_key IN NUMBER)
|
||
RETURN VARCHAR2;
|
||
|
||
FUNCTION get_kenmerk (p_module IN VARCHAR2,
|
||
p_kenmerk_key IN NUMBER,
|
||
p_link_key IN NUMBER)
|
||
RETURN VARCHAR2;
|
||
|
||
FUNCTION get_kenmerkwaarde (p_kenmerk_type VARCHAR2,
|
||
p_kenmerkdomein_key NUMBER,
|
||
p_kenmerk_waarde VARCHAR2)
|
||
RETURN VARCHAR2;
|
||
END;
|
||
/
|
||
|
||
CREATE OR REPLACE PACKAGE BODY asdl
|
||
AS
|
||
FUNCTION check_valid_schedule (p_deel_key IN NUMBER)
|
||
RETURN VARCHAR2
|
||
AS
|
||
v_srtcontrole_key NUMBER;
|
||
v_dummydate DATE;
|
||
v_error_string VARCHAR2 (200);
|
||
BEGIN
|
||
SELECT ins_srtcontrole_key
|
||
INTO v_srtcontrole_key
|
||
FROM ins_srtcontroledl_xcp x
|
||
WHERE x.ins_deel_key = p_deel_key;
|
||
|
||
BEGIN
|
||
SELECT TRUNC (
|
||
fac.nextcyclusdatedeel (p_deel_key, v_srtcontrole_key, 1))
|
||
INTO v_dummydate
|
||
FROM DUAL;
|
||
|
||
v_error_string := NULL;
|
||
EXCEPTION
|
||
WHEN OTHERS
|
||
THEN
|
||
v_error_string := SUBSTR (SQLERRM, 1, 200);
|
||
END;
|
||
|
||
RETURN v_error_string;
|
||
END;
|
||
|
||
FUNCTION get_bits_str (p_eenheid IN NUMBER,
|
||
p_bits IN NUMBER) RETURN VARCHAR2
|
||
AS
|
||
v_result VARCHAR2(100);
|
||
m_bits NUMBER;
|
||
BEGIN
|
||
|
||
IF p_eenheid = 0
|
||
THEN
|
||
-- uurlijks doen we nog even niets mee
|
||
NULL;
|
||
ELSIF p_eenheid = 1
|
||
THEN
|
||
-- dagelijks doen we nog even niets mee
|
||
NULL;
|
||
ELSIF p_eenheid = 2
|
||
THEN
|
||
-- wekelijks
|
||
IF BITAND (p_bits, 2) <> 0 THEN v_result := 'Ma'; END IF;
|
||
IF BITAND (p_bits, 4) <> 0 THEN v_result := v_result || 'Di'; END IF;
|
||
IF BITAND (p_bits, 8) <> 0 THEN v_result := v_result || 'Wo'; END IF;
|
||
IF BITAND (p_bits, 16) <> 0 THEN v_result := v_result || 'Do'; END IF;
|
||
IF BITAND (p_bits, 32) <> 0 THEN v_result := v_result || 'Vr'; END IF;
|
||
IF BITAND (p_bits, 64) <> 0 THEN v_result := v_result || 'Za'; END IF;
|
||
IF BITAND (p_bits, 1) <> 0 THEN v_result := v_result || 'Zo'; END IF;
|
||
IF BITAND (p_bits, 128) <> 0 THEN v_result := v_result || 'NF'; END IF;
|
||
ELSIF p_eenheid = 3
|
||
THEN
|
||
-- maandelijks
|
||
IF BITAND (p_bits, 2) <> 0 THEN v_result := 'Ma'; END IF;
|
||
IF BITAND (p_bits, 4) <> 0 THEN v_result := v_result || 'Di'; END IF;
|
||
IF BITAND (p_bits, 8) <> 0 THEN v_result := v_result || 'Wo'; END IF;
|
||
IF BITAND (p_bits, 16) <> 0 THEN v_result := v_result || 'Do'; END IF;
|
||
IF BITAND (p_bits, 32) <> 0 THEN v_result := v_result || 'Vr'; END IF;
|
||
IF BITAND (p_bits, 64) <> 0 THEN v_result := v_result || 'Za'; END IF;
|
||
IF BITAND (p_bits, 1) <> 0 THEN v_result := v_result || 'Zo'; END IF;
|
||
IF BITAND (p_bits, 128) <> 0 THEN v_result := v_result || 'NF'; END IF;
|
||
END IF;
|
||
RETURN v_result;
|
||
END;
|
||
|
||
FUNCTION get_bits_value (p_eenheid IN NUMBER,
|
||
p_rangorde IN NUMBER,
|
||
p_dagen IN VARCHAR2) RETURN NUMBER
|
||
AS
|
||
v_result NUMBER;
|
||
BEGIN
|
||
v_result := 0;
|
||
IF INSTR(UPPER(p_dagen), 'MA') > 0 THEN v_result := v_result + 2; END IF;
|
||
IF INSTR(UPPER(p_dagen), 'DI') > 0 THEN v_result := v_result + 4; END IF;
|
||
IF INSTR(UPPER(p_dagen), 'WO') > 0 THEN v_result := v_result + 8; END IF;
|
||
IF INSTR(UPPER(p_dagen), 'DO') > 0 THEN v_result := v_result + 16; END IF;
|
||
IF INSTR(UPPER(p_dagen), 'VR') > 0 THEN v_result := v_result + 32; END IF;
|
||
IF INSTR(UPPER(p_dagen), 'ZA') > 0 THEN v_result := v_result + 64; END IF;
|
||
IF INSTR(UPPER(p_dagen), 'ZO') > 0 THEN v_result := v_result + 1; END IF;
|
||
IF INSTR(UPPER(p_dagen), 'NF') > 0 THEN v_result := v_result + 128; END IF;
|
||
IF p_rangorde IS NOT NULL
|
||
THEN
|
||
v_result := v_result + (p_rangorde * 256);
|
||
END IF;
|
||
RETURN v_result;
|
||
END;
|
||
|
||
FUNCTION get_bits_rangorde (p_eenheid IN NUMBER,
|
||
p_bits IN NUMBER) RETURN NUMBER
|
||
AS
|
||
m_bits NUMBER;
|
||
BEGIN
|
||
|
||
IF p_eenheid = 3
|
||
THEN
|
||
-- maandelijks
|
||
m_bits := BITAND(p_bits, 256 + 512 + 1024) / 256;
|
||
END IF;
|
||
RETURN m_bits;
|
||
END;
|
||
|
||
FUNCTION get_kenmerks (p_module IN VARCHAR2,
|
||
p_srtkenmerk_key IN NUMBER,
|
||
p_soort_key IN NUMBER,
|
||
p_soort_niveau IN VARCHAR2,
|
||
p_link_key IN NUMBER)
|
||
RETURN VARCHAR2
|
||
AS
|
||
v_kenmerk_key mld_srtkenmerk.mld_srtkenmerk_key%TYPE;
|
||
BEGIN
|
||
CASE p_module
|
||
WHEN 'MLD'
|
||
THEN
|
||
SELECT k.mld_kenmerk_key
|
||
INTO v_kenmerk_key
|
||
FROM mld_kenmerk k
|
||
WHERE k.mld_kenmerk_verwijder IS NULL
|
||
AND mld_srtkenmerk_key = p_srtkenmerk_key
|
||
AND mld_stdmelding_key = p_soort_key
|
||
AND mld_kenmerk_niveau = p_soort_niveau;
|
||
WHEN 'INS'
|
||
THEN
|
||
SELECT k.ins_kenmerk_key
|
||
INTO v_kenmerk_key
|
||
FROM ins_kenmerk k
|
||
WHERE k.ins_kenmerk_verwijder IS NULL
|
||
AND ins_srtkenmerk_key = p_srtkenmerk_key
|
||
AND ins_srtinstallatie_key = p_soort_key
|
||
AND ins_kenmerk_niveau = p_soort_niveau;
|
||
END CASE;
|
||
|
||
RETURN asdl.get_kenmerk (p_module,
|
||
v_kenmerk_key,
|
||
p_link_key);
|
||
END;
|
||
|
||
|
||
FUNCTION get_kenmerk (p_module IN VARCHAR2,
|
||
p_kenmerk_key IN NUMBER,
|
||
p_link_key IN NUMBER)
|
||
RETURN VARCHAR2
|
||
AS
|
||
v_kenmerk_type mld_srtkenmerk.mld_srtkenmerk_kenmerktype%TYPE;
|
||
v_kenmerk_waarde mld_kenmerkmelding.mld_kenmerkmelding_waarde%TYPE;
|
||
v_kenmerkdomein_key fac_kenmerkdomein.fac_kenmerkdomein_key%TYPE;
|
||
v_kenmerk_niveau ins_kenmerk.ins_kenmerk_niveau%TYPE;
|
||
BEGIN
|
||
CASE p_module
|
||
WHEN 'MLD'
|
||
THEN
|
||
SELECT mld_srtkenmerk_kenmerktype,
|
||
sk.fac_kenmerkdomein_key,
|
||
km.mld_kenmerkmelding_waarde
|
||
INTO v_kenmerk_type,
|
||
v_kenmerkdomein_key,
|
||
v_kenmerk_waarde
|
||
FROM mld_v_aanwezigkenmerkmelding km,
|
||
mld_kenmerk k,
|
||
mld_srtkenmerk sk
|
||
WHERE km.mld_melding_key = p_link_key
|
||
AND km.mld_kenmerk_key = p_kenmerk_key
|
||
AND km.mld_kenmerk_key = k.mld_kenmerk_key
|
||
AND k.mld_srtkenmerk_key = sk.mld_srtkenmerk_key;
|
||
WHEN 'CNT'
|
||
THEN
|
||
SELECT cnt_srtkenmerk_kenmerktype,
|
||
sk.fac_kenmerkdomein_key,
|
||
kc.cnt_kenmerkcontract_waarde
|
||
INTO v_kenmerk_type,
|
||
v_kenmerkdomein_key,
|
||
v_kenmerk_waarde
|
||
FROM cnt_kenmerkcontract kc,
|
||
cnt_kenmerk k,
|
||
cnt_srtkenmerk sk
|
||
WHERE kc.cnt_contract_key = p_link_key
|
||
AND kc.cnt_kenmerk_key = p_kenmerk_key
|
||
AND kc.cnt_kenmerk_key = k.cnt_kenmerk_key
|
||
AND k.cnt_srtkenmerk_key = sk.cnt_srtkenmerk_key;
|
||
WHEN 'ALG'
|
||
THEN
|
||
SELECT alg_kenmerk_kenmerktype,
|
||
k.fac_kenmerkdomein_key,
|
||
aogk.alg_onrgoedkenmerk_waarde
|
||
INTO v_kenmerk_type,
|
||
v_kenmerkdomein_key,
|
||
v_kenmerk_waarde
|
||
FROM alg_onrgoedkenmerk aogk, alg_kenmerk k
|
||
WHERE aogk.alg_onrgoed_key = p_link_key
|
||
AND aogk.alg_kenmerk_key = p_kenmerk_key
|
||
AND aogk.alg_kenmerk_key = k.alg_kenmerk_key;
|
||
WHEN 'PRS'
|
||
THEN
|
||
SELECT prs_kenmerk_kenmerktype,
|
||
k.fac_kenmerkdomein_key,
|
||
pkl.prs_kenmerklink_waarde
|
||
INTO v_kenmerk_type,
|
||
v_kenmerkdomein_key,
|
||
v_kenmerk_waarde
|
||
FROM prs_kenmerklink pkl, prs_kenmerk k
|
||
WHERE pkl.prs_link_key = p_link_key
|
||
AND pkl.prs_kenmerk_key = p_kenmerk_key
|
||
AND pkl.prs_kenmerk_key = k.prs_kenmerk_key;
|
||
WHEN 'INS'
|
||
THEN
|
||
SELECT k.ins_kenmerk_niveau
|
||
INTO v_kenmerk_niveau
|
||
FROM ins_kenmerk k
|
||
WHERE ins_kenmerk_key = p_kenmerk_key;
|
||
|
||
IF v_kenmerk_niveau = 'C' THEN
|
||
SELECT sk.ins_srtkenmerk_kenmerktype,
|
||
sk.fac_kenmerkdomein_key,
|
||
ikds.ins_kmdeelsrtcontr_waarde
|
||
INTO v_kenmerk_type,
|
||
v_kenmerkdomein_key,
|
||
v_kenmerk_waarde
|
||
FROM ins_kmdeelsrtcontr ikds, ins_kenmerk k, ins_srtkenmerk sk
|
||
WHERE ikds.ins_kmdeelsrtcontr_key = p_link_key
|
||
AND ikds.ins_kmdeelsrtcontr_verwijder IS NULL
|
||
AND ikds.ins_kenmerk_key = p_kenmerk_key
|
||
AND ikds.ins_kenmerk_key = k.ins_kenmerk_key
|
||
AND k.ins_srtkenmerk_key = sk.ins_srtkenmerk_key;
|
||
ELSE
|
||
SELECT sk.ins_srtkenmerk_kenmerktype,
|
||
sk.fac_kenmerkdomein_key,
|
||
ikd.ins_kenmerkdeel_waarde
|
||
INTO v_kenmerk_type,
|
||
v_kenmerkdomein_key,
|
||
v_kenmerk_waarde
|
||
FROM ins_kenmerkdeel ikd, ins_kenmerk k, ins_srtkenmerk sk
|
||
WHERE ikd.ins_deel_key = p_link_key
|
||
AND ikd.ins_kenmerkdeel_verwijder IS NULL
|
||
AND ikd.ins_kenmerk_key = p_kenmerk_key
|
||
AND ikd.ins_kenmerk_key = k.ins_kenmerk_key
|
||
AND k.ins_srtkenmerk_key = sk.ins_srtkenmerk_key;
|
||
END IF;
|
||
END CASE;
|
||
|
||
RETURN asdl.get_kenmerkwaarde (v_kenmerk_type,
|
||
v_kenmerkdomein_key,
|
||
v_kenmerk_waarde);
|
||
END;
|
||
|
||
|
||
FUNCTION get_kenmerkwaarde (p_kenmerk_type VARCHAR2,
|
||
p_kenmerkdomein_key NUMBER,
|
||
p_kenmerk_waarde VARCHAR2)
|
||
RETURN VARCHAR2
|
||
AS
|
||
v_result VARCHAR2(4000);
|
||
BEGIN
|
||
IF p_kenmerk_type = 'R' OR p_kenmerk_type = 'S' THEN
|
||
v_result := fac.getdomeinwaarde (p_kenmerkdomein_key,
|
||
p_kenmerk_waarde);
|
||
ELSIF p_kenmerk_type = 'D' THEN
|
||
v_result := TO_CHAR (fac.safe_to_date (p_kenmerk_waarde, 'dd-mm-yyyy'), 'yyyy-mm-dd');
|
||
ELSE
|
||
v_result := p_kenmerk_waarde;
|
||
END IF;
|
||
return v_result;
|
||
END;
|
||
END;
|
||
/
|
||
|
||
CREATE OR REPLACE VIEW asdl_v_perslid_2250
|
||
(
|
||
prs_perslid_key,
|
||
prs_perslid_naam_full,
|
||
prs_perslid_verwijder
|
||
)
|
||
AS
|
||
SELECT p.prs_perslid_key,
|
||
pf.prs_perslid_naam_full,
|
||
p.prs_perslid_verwijder
|
||
FROM prs_v_perslid_fullnames_all pf, prs_perslid p
|
||
WHERE pf.prs_perslid_key = p.prs_perslid_key AND p.prs_afdeling_key = 62;
|
||
|
||
|
||
CREATE OR REPLACE VIEW asdl_v_rap_werkprogramma
|
||
(
|
||
alg_district_omschrijving,
|
||
alg_locatie_code,
|
||
fclt_3d_locatie_key,
|
||
alg_locatie_omschrijving,
|
||
ins_srtdeel_code,
|
||
ins_srtcontrole_omschrijving,
|
||
ins_srtcontroledl_xcp_eenheid,
|
||
ins_srtcontroledl_xcp_periode,
|
||
frequentie,
|
||
afwijking,
|
||
uitvoering,
|
||
info
|
||
)
|
||
AS
|
||
SELECT alg_district_omschrijving,
|
||
alg_locatie_code,
|
||
l.alg_locatie_key,
|
||
alg_locatie_omschrijving,
|
||
ins_srtdeel_code,
|
||
ins_srtcontrole_omschrijving,
|
||
DECODE (ins_srtcontroledl_xcp_eenheid,
|
||
2, 'week',
|
||
3, 'maand',
|
||
'jaar'),
|
||
ins_srtcontroledl_xcp_periode,
|
||
DECODE (ins_srtcontroledl_xcp_eenheid, 2, 52, 3, 12, 1)
|
||
/ ins_srtcontroledl_xcp_periode,
|
||
(SELECT alg_onrgoedkenmerk_waarde
|
||
FROM alg_onrgoedkenmerk aogk
|
||
WHERE alg_onrgoedkenmerk_verwijder IS NULL
|
||
AND aogk.alg_onrgoed_key = l.alg_locatie_key
|
||
AND aogk.alg_kenmerk_key = 1000)
|
||
afw,
|
||
(SELECT alg_onrgoedkenmerk_waarde
|
||
FROM alg_onrgoedkenmerk aogk
|
||
WHERE alg_onrgoedkenmerk_verwijder IS NULL
|
||
AND aogk.alg_onrgoed_key = l.alg_locatie_key
|
||
AND aogk.alg_kenmerk_key = 1020)
|
||
uitv,
|
||
REPLACE (
|
||
REPLACE (
|
||
REPLACE (REPLACE (ins_srtcontrole_info, '[table]'),
|
||
'[/table]'),
|
||
'[',
|
||
'<'),
|
||
']',
|
||
'>')
|
||
FROM alg_locatie l,
|
||
alg_district d,
|
||
ins_srtdeel sd,
|
||
ins_v_deel_gegevens dg,
|
||
ins_srtcontroledl_xcp x,
|
||
ins_srtcontrole sc
|
||
WHERE l.alg_district_key = d.alg_district_key
|
||
AND l.alg_locatie_key = dg.alg_locatie_key
|
||
AND dg.ins_srtdeel_key = sc.ins_srtinstallatie_key
|
||
AND x.ins_srtcontrole_key = sc.ins_srtcontrole_key
|
||
AND x.ins_deel_key = dg.ins_deel_key
|
||
AND dg.ins_srtdeel_key = sd.ins_srtdeel_key;
|
||
|
||
-- Schoonmaakacties voor vandaag.
|
||
CREATE OR REPLACE VIEW asdl_v_rap_schoonmaak_today
|
||
(
|
||
aantal,
|
||
eerste,
|
||
ruimte_key,
|
||
ruimte_nr,
|
||
alg_ruimte_omschrijving,
|
||
ins_deel_omschrijving,
|
||
alg_gebouw_omschrijving,
|
||
alg_gebouw_upper,
|
||
alg_locatie_omschrijving,
|
||
alg_locatie_key,
|
||
ins_deel_key,
|
||
ins_srtcontroledl_xcp_groep,
|
||
fclt_3d_user_key,
|
||
alg_locatie_x,
|
||
ins_srtcontrole_key,
|
||
maand,
|
||
periodiek,
|
||
ins_deelsrtcontrole_key
|
||
)
|
||
AS
|
||
SELECT COUNT (isc.ins_srtcontrole_key) aantal_srtcontoles,
|
||
MIN (isc.ins_srtcontrole_key) min_srtcontrole_key,
|
||
r.alg_ruimte_key,
|
||
r.alg_ruimte_nr,
|
||
'Wekelijks onderhoud',
|
||
REPLACE (d.ins_deel_omschrijving, alg_gebouw_upper || '-'),
|
||
REPLACE (alg_gebouw_omschrijving, alg_gebouw_upper || ' - '),
|
||
alg_gebouw_upper,
|
||
l.alg_locatie_omschrijving,
|
||
l.alg_locatie_key,
|
||
id.ins_deel_key,
|
||
ins_srtcontroledl_xcp_groep,
|
||
COALESCE (p.prs_perslid_key, -1) prs_perslid_key,
|
||
alg_locatie_x,
|
||
isc.ins_srtcontrole_key,
|
||
DECODE (ins_srtcontroledl_xcp_eenheid, 3, 1, 0) maand,
|
||
DECODE (ins_srtcontroledl_xcp_eenheid, 3, ' Periodiek', '') periodiek,
|
||
(SELECT MAX (ins_deelsrtcontrole_key) ins_deelsrtcontrole_key
|
||
FROM ins_deelsrtcontrole dsc
|
||
WHERE dsc.ins_deel_key = id.ins_deel_key
|
||
AND dsc.ins_srtcontrole_key = isc.ins_srtcontrole_key
|
||
AND ins_deelsrtcontrole_status NOT IN (5,6))
|
||
ins_deelsrtcontrole_key
|
||
FROM ins_v_deel_gegevens id,
|
||
ins_deel d,
|
||
ins_srtcontrole isc,
|
||
ins_srtcontroledl_xcp xcp,
|
||
prs_kenmerklink kl,
|
||
alg_ruimte r,
|
||
alg_locatie l,
|
||
prs_perslid p
|
||
WHERE id.alg_locatie_key = l.alg_locatie_key
|
||
AND p.alg_onroerendgoed_keys(+) = l.alg_locatie_key
|
||
AND xcp.ins_deel_key = id.ins_deel_key
|
||
AND xcp.ins_srtcontrole_key = isc.ins_srtcontrole_key
|
||
AND xcp.ins_srtcontroledl_xcp_eenheid IS NOT NULL
|
||
AND (isc.ins_srtcontrole_niveau = 'S'
|
||
AND isc.ins_srtinstallatie_key = id.ins_srtdeel_key
|
||
OR isc.ins_srtcontrole_niveau = 'G'
|
||
AND isc.ins_srtinstallatie_key = id.ins_srtgroep_key
|
||
OR isc.ins_srtcontrole_niveau = 'D'
|
||
AND isc.ins_srtinstallatie_key = id.ins_discipline_key)
|
||
AND kl.prs_kenmerk_key = 1000
|
||
AND kl.prs_kenmerklink_waarde = xcp.ins_srtcontroledl_xcp_groep
|
||
AND id.alg_ruimte_key = r.alg_ruimte_key
|
||
AND kl.prs_link_key = p.prs_perslid_key
|
||
AND id.ins_deel_key = d.ins_deel_key
|
||
AND COALESCE (d.ins_deel_vervaldatum, SYSDATE) >= SYSDATE
|
||
AND ( ( TRUNC (fac.nextcyclusdatedeel (id.ins_deel_key, isc.ins_srtcontrole_key, 1)) <= TRUNC (SYSDATE) + DECODE (ins_srtcontroledl_xcp_eenheid, 3, 5, 0) -- periodieke werkzaamheden mag ik de gehele week afmelden.
|
||
AND NOT EXISTS (SELECT idsc.ins_deelsrtcontrole_status
|
||
FROM ins_deelsrtcontrole idsc
|
||
WHERE idsc.ins_deelsrtcontrole_status < 5
|
||
AND idsc.ins_deel_key = d.ins_deel_key
|
||
AND idsc.ins_srtcontrole_key = isc.ins_srtcontrole_key
|
||
)
|
||
)
|
||
OR EXISTS (SELECT idsc.ins_deelsrtcontrole_status
|
||
FROM ins_deelsrtcontrole idsc
|
||
WHERE idsc.ins_deelsrtcontrole_status < 5
|
||
AND idsc.ins_deel_key = d.ins_deel_key
|
||
AND idsc.ins_srtcontrole_key = isc.ins_srtcontrole_key
|
||
AND TRUNC(COALESCE(ins_deelsrtcontrole_plandatum, ins_deelsrtcontrole_datum_org)) <= TRUNC (SYSDATE) + DECODE (ins_srtcontroledl_xcp_eenheid, 3, 5, 0) ) )
|
||
GROUP BY r.alg_ruimte_key,
|
||
r.alg_ruimte_nr,
|
||
kl.prs_link_key,
|
||
isc.ins_srtcontrole_omschrijving,
|
||
alg_gebouw_omschrijving,
|
||
alg_gebouw_upper,
|
||
l.alg_locatie_key,
|
||
d.ins_deel_omschrijving,
|
||
l.alg_locatie_omschrijving,
|
||
id.ins_deel_key,
|
||
ins_srtcontroledl_xcp_groep,
|
||
p.prs_perslid_key,
|
||
alg_locatie_x,
|
||
isc.ins_srtcontrole_key,
|
||
ins_srtcontroledl_xcp_eenheid;
|
||
|
||
-- Schoonmaak acties voor vandaag op mijn route.
|
||
CREATE OR REPLACE VIEW asdl_v_rap_schoonmaak_today1
|
||
(
|
||
aantal,
|
||
eerste,
|
||
ruimte_key,
|
||
ruimte_nr,
|
||
alg_ruimte_omschrijving,
|
||
ins_deel_omschrijving,
|
||
alg_gebouw_omschrijving,
|
||
alg_gebouw_upper,
|
||
alg_locatie_omschrijving,
|
||
alg_locatie_key,
|
||
alg_district_key,
|
||
alg_regio_key,
|
||
ins_deel_key,
|
||
ins_discipline_key,
|
||
ins_srtcontroledl_xcp_groep,
|
||
fclt_3d_user_key,
|
||
alg_locatie_x,
|
||
ins_srtcontrole_key,
|
||
volgorde,
|
||
maand
|
||
)
|
||
AS
|
||
SELECT COUNT (isc.ins_srtcontrole_key) aantal_srtcontoles,
|
||
MIN (isc.ins_srtcontrole_key) min_srtcontrole_key,
|
||
r.alg_ruimte_key,
|
||
r.alg_ruimte_nr,
|
||
alg_ruimte_omschrijving,
|
||
REPLACE (d.ins_deel_omschrijving, alg_gebouw_upper || '-'),
|
||
REPLACE (alg_gebouw_omschrijving, alg_gebouw_upper || ' - '),
|
||
alg_gebouw_upper,
|
||
l.alg_locatie_omschrijving,
|
||
l.alg_locatie_key,
|
||
di.alg_district_key,
|
||
di.alg_regio_key,
|
||
id.ins_deel_key,
|
||
id.ins_discipline_key,
|
||
ins_srtcontroledl_xcp_groep,
|
||
kl.prs_link_key,
|
||
alg_locatie_x,
|
||
isc.ins_srtcontrole_key,
|
||
w.volgorde,
|
||
DECODE(ins_srtcontroledl_xcp_eenheid, 3, 1, 0) maand
|
||
FROM ins_v_deel_gegevens id,
|
||
ins_deel d,
|
||
ins_srtcontrole isc,
|
||
ins_srtcontroledl_xcp xcp,
|
||
prs_kenmerklink kl,
|
||
alg_ruimte r,
|
||
alg_locatie l,
|
||
alg_district di,
|
||
(SELECT alg_onrgoedkenmerk_waarde volgorde, alg_onrgoed_key
|
||
FROM alg_onrgoedkenmerk aogk
|
||
WHERE aogk.alg_kenmerk_key = DECODE (MOD(TO_CHAR(SYSDATE, 'IW'),2), 1, 1043, 0, 1042)
|
||
AND aogk.alg_onrgoedkenmerk_verwijder IS NULL) w
|
||
WHERE id.alg_locatie_key = l.alg_locatie_key
|
||
AND l.alg_district_key = di.alg_district_key
|
||
AND l.alg_locatie_key = w.alg_onrgoed_key(+)
|
||
AND xcp.ins_deel_key = id.ins_deel_key
|
||
AND xcp.ins_srtcontrole_key = isc.ins_srtcontrole_key
|
||
AND xcp.ins_srtcontroledl_xcp_eenheid IS NOT NULL
|
||
AND (isc.ins_srtcontrole_niveau = 'S'
|
||
AND isc.ins_srtinstallatie_key = id.ins_srtdeel_key
|
||
OR isc.ins_srtcontrole_niveau = 'G'
|
||
AND isc.ins_srtinstallatie_key = id.ins_srtgroep_key
|
||
OR isc.ins_srtcontrole_niveau = 'D'
|
||
AND isc.ins_srtinstallatie_key = id.ins_discipline_key)
|
||
AND kl.prs_kenmerk_key = 1000
|
||
AND kl.prs_kenmerklink_waarde = xcp.ins_srtcontroledl_xcp_groep
|
||
AND id.alg_ruimte_key = r.alg_ruimte_key
|
||
AND id.ins_deel_key = d.ins_deel_key
|
||
AND COALESCE(d.ins_deel_vervaldatum, SYSDATE) >= SYSDATE
|
||
AND ( ( TRUNC (fac.nextcyclusdatedeel (id.ins_deel_key, isc.ins_srtcontrole_key, 1)) <= TRUNC (SYSDATE) + DECODE (ins_srtcontroledl_xcp_eenheid, 3, 5, 0) -- periodieke werkzaamheden mag ik de gehele week afmelden.
|
||
AND NOT EXISTS (SELECT idsc.ins_deelsrtcontrole_status
|
||
FROM ins_deelsrtcontrole idsc
|
||
WHERE idsc.ins_deelsrtcontrole_status < 5
|
||
AND idsc.ins_deel_key = d.ins_deel_key
|
||
AND idsc.ins_srtcontrole_key = isc.ins_srtcontrole_key
|
||
)
|
||
)
|
||
OR EXISTS (SELECT idsc.ins_deelsrtcontrole_status
|
||
FROM ins_deelsrtcontrole idsc
|
||
WHERE idsc.ins_deelsrtcontrole_status < 5
|
||
AND idsc.ins_deel_key = d.ins_deel_key
|
||
AND idsc.ins_srtcontrole_key = isc.ins_srtcontrole_key
|
||
AND TRUNC(COALESCE(ins_deelsrtcontrole_plandatum, ins_deelsrtcontrole_datum_org)) <= TRUNC (SYSDATE) + DECODE (ins_srtcontroledl_xcp_eenheid, 3, 5, 0) ) )
|
||
GROUP BY r.alg_ruimte_key,
|
||
r.alg_ruimte_nr,
|
||
kl.prs_link_key,
|
||
alg_ruimte_omschrijving,
|
||
alg_gebouw_omschrijving,
|
||
alg_gebouw_upper,
|
||
l.alg_locatie_key,
|
||
di.alg_district_key,
|
||
di.alg_regio_key,
|
||
d.ins_deel_omschrijving,
|
||
l.alg_locatie_omschrijving,
|
||
id.ins_deel_key,
|
||
id.ins_discipline_key,
|
||
ins_srtcontroledl_xcp_groep,
|
||
alg_locatie_x,
|
||
isc.ins_srtcontrole_key,
|
||
w.volgorde,
|
||
ins_srtcontroledl_xcp_eenheid;
|
||
|
||
CREATE OR REPLACE VIEW asdl_v_rap_schoonmaak_result
|
||
(
|
||
alg_regio_key,
|
||
alg_regio_omschrijving,
|
||
alg_district_key,
|
||
alg_district_omschrijving,
|
||
fclt_3d_locatie_key,
|
||
alg_locatie_code,
|
||
alg_locatie_omschrijving,
|
||
laatste_schoonmaak,
|
||
schoonmaker
|
||
)
|
||
AS
|
||
SELECT r.alg_regio_key,
|
||
r.alg_regio_omschrijving,
|
||
di.alg_district_key,
|
||
di.alg_district_omschrijving,
|
||
l.alg_locatie_key,
|
||
l.alg_locatie_code,
|
||
l.alg_locatie_omschrijving,
|
||
idc.ins_deelsrtcontrole_datum laatste_schoonmaak,
|
||
pf.prs_perslid_naam_full
|
||
FROM (SELECT ins_alg_locatie_key alg_locatie_key,
|
||
prs_perslid_key,
|
||
ins_deelsrtcontrole_datum
|
||
FROM ins_deelsrtcontrole idc1, ins_deel d1
|
||
WHERE idc1.ins_deel_key = d1.ins_deel_key
|
||
AND NOT EXISTS
|
||
(SELECT ins_deelsrtcontrole_key
|
||
FROM ins_deelsrtcontrole idc2, ins_deel d2
|
||
WHERE idc2.ins_deel_key = d2.ins_deel_key
|
||
AND d1.ins_alg_locatie_key = d2.ins_alg_locatie_key
|
||
AND idc1.ins_deelsrtcontrole_key <
|
||
idc2.ins_deelsrtcontrole_key)) idc,
|
||
alg_locatie l,
|
||
alg_district di,
|
||
alg_regio r,
|
||
prs_v_perslid_fullnames pf
|
||
WHERE idc.alg_locatie_key = l.alg_locatie_key
|
||
AND l.alg_locatie_verwijder IS NULL
|
||
AND l.alg_district_key = di.alg_district_key
|
||
AND di.alg_regio_key = r.alg_regio_key
|
||
AND idc.prs_perslid_key = pf.prs_perslid_key;
|
||
|
||
CREATE OR REPLACE VIEW asdl_v_rap_persoonsgegevens
|
||
AS
|
||
SELECT pf.prs_perslid_naam_full naam,
|
||
prs_afdeling_naam,
|
||
p.prs_perslid_key,
|
||
prs_perslid_email email,
|
||
prs_srtperslid_omschrijving,
|
||
prs_srtperslid_opp,
|
||
asdl.get_kenmerk ('PRS', 1000, p.prs_perslid_key) route,
|
||
asdl.get_kenmerk ('PRS', 1023, p.prs_perslid_key) geboortedatum,
|
||
asdl.get_kenmerk ('PRS', 1024, p.prs_perslid_key) VGM,
|
||
asdl.get_kenmerk ('PRS', 1055, p.prs_perslid_key) resgerichtsch,
|
||
asdl.get_kenmerk ('PRS', 1056, p.prs_perslid_key) resgerichtschbeh,
|
||
asdl.get_kenmerk ('PRS', 1057, p.prs_perslid_key) duurzaamsch,
|
||
asdl.get_kenmerk ('PRS', 1058, p.prs_perslid_key) duurzaamschbeh,
|
||
asdl.get_kenmerk ('PRS', 1059, p.prs_perslid_key) gastvrijheid,
|
||
asdl.get_kenmerk ('PRS', 1060, p.prs_perslid_key) gastvrijheidbeh,
|
||
asdl.get_kenmerk ('PRS', 1026, p.prs_perslid_key) hospitality,
|
||
asdl.get_kenmerk ('PRS', 1045, p.prs_perslid_key) hospitalitybeh,
|
||
asdl.get_kenmerk ('PRS', 1027, p.prs_perslid_key) nederl_taaltrjct,
|
||
asdl.get_kenmerk ('PRS', 1046, p.prs_perslid_key) nederl_taalbeh,
|
||
asdl.get_kenmerk ('PRS', 1030, p.prs_perslid_key) svsbasis,
|
||
asdl.get_kenmerk ('PRS', 1047, p.prs_perslid_key) svsbasisbeh,
|
||
asdl.get_kenmerk ('PRS', 1031, p.prs_perslid_key) svsleid,
|
||
asdl.get_kenmerk ('PRS', 1048, p.prs_perslid_key) svsleidbeh,
|
||
asdl.get_kenmerk ('PRS', 1032, p.prs_perslid_key) svsstation,
|
||
asdl.get_kenmerk ('PRS', 1049, p.prs_perslid_key) svsstationbeh,
|
||
asdl.get_kenmerk ('PRS', 1033, p.prs_perslid_key) taakeigenveilig,
|
||
asdl.get_kenmerk ('PRS', 1050, p.prs_perslid_key) taakeigenveiligbeh,
|
||
asdl.get_kenmerk ('PRS', 1034, p.prs_perslid_key) taakeigenveiliggeldigtot,
|
||
DECODE(SIGN(fac.safe_to_date(asdl.get_kenmerk ('PRS', 1034, p.prs_perslid_key), 'dd-mm-yyyy') - SYSDATE), -1, 0, 1) taakeigenveiliggeldig,
|
||
asdl.get_kenmerk ('PRS', 1052, p.prs_perslid_key) vca_b,
|
||
asdl.get_kenmerk ('PRS', 1053, p.prs_perslid_key) vca_bbeh,
|
||
asdl.get_kenmerk ('PRS', 1054, p.prs_perslid_key) vca_bgeldigtot,
|
||
DECODE(SIGN(fac.safe_to_date(asdl.get_kenmerk ('PRS', 1054, p.prs_perslid_key), 'dd-mm-yyyy') - SYSDATE), -1, 0, 1) vca_bgeldig,
|
||
asdl.get_kenmerk ('PRS', 1036, p.prs_perslid_key) dvp,
|
||
-- asdl.get_kenmerk ('PRS', 1053) vca_bbeh,
|
||
asdl.get_kenmerk ('PRS', 1037, p.prs_perslid_key) dvpgeldigtot,
|
||
DECODE(SIGN(fac.safe_to_date(asdl.get_kenmerk ('PRS', 1037, p.prs_perslid_key), 'dd-mm-yyyy') - SYSDATE), -1, 0, 1) dvpgeldig,
|
||
asdl.get_kenmerk ('PRS', 1039, p.prs_perslid_key) idchecker,
|
||
asdl.get_kenmerk ('PRS', 1041, p.prs_perslid_key) wavpas,
|
||
fac.safe_to_date(asdl.get_kenmerk ('PRS', 1100, p.prs_perslid_key), 'yyyy-mm-dd') wavpasgeldigtot,
|
||
d.alg_district_omschrijving
|
||
FROM prs_perslid p,
|
||
prs_afdeling a,
|
||
prs_srtperslid sp,
|
||
prs_v_perslid_fullnames pf,
|
||
( SELECT prs_perslid_key, alg_district_key
|
||
FROM prs_v_perslidwerkplek_gegevens pwg, alg_locatie l
|
||
WHERE pwg.alg_locatie_key = l.alg_locatie_key
|
||
AND alg_district_key <> 21 -- Algemene Asito locatie
|
||
GROUP BY prs_perslid_key, l.alg_district_key) wp,
|
||
alg_district d
|
||
WHERE p.prs_perslid_key = pf.prs_perslid_key
|
||
AND p.prs_afdeling_key = a.prs_afdeling_key
|
||
AND p.prs_srtperslid_key = sp.prs_srtperslid_key
|
||
AND p.prs_perslid_key = wp.prs_perslid_key(+)
|
||
AND wp.alg_district_key = d.alg_district_key(+)
|
||
AND prs_afdeling_naam = '2250';
|
||
|
||
CREATE OR REPLACE VIEW asdl_v_rap_wiezitwaar
|
||
AS
|
||
SELECT prs_afd_perslid_naam,
|
||
alg_locatie_omschrijving,
|
||
wp.prs_werkplek_getekend,
|
||
l.alg_locatie_key fclt_3d_locatie_key,
|
||
pwg.prs_perslid_key
|
||
FROM prs_v_perslidwerkplek_gegevens pwg, prs_werkplek wp, alg_locatie l, prs_perslid p
|
||
WHERE pwg.prs_werkplek_key = wp.prs_werkplek_key
|
||
AND prs_werkplek_type = 1
|
||
AND pwg.prs_perslid_key = p.prs_perslid_key
|
||
AND p.prs_perslid_verwijder IS NULL
|
||
AND pwg.alg_locatie_key = l.alg_locatie_key;
|
||
|
||
-- rapportage van deelnemers aan de toolboxsessie.
|
||
-- Kenmerk 101 tot en met 120 zijn deelnemers.
|
||
CREATE OR REPLACE VIEW asdl_v_rap_toolboxsessie
|
||
AS
|
||
SELECT m.mld_melding_key melding,
|
||
mld_melding_datum datum,
|
||
mld_melding_onderwerp onderwerp,
|
||
mld_melding_omschrijving omschrijving,
|
||
prs_perslid_naam_full deelnemer
|
||
FROM mld_kenmerkmelding km, prs_v_perslid_fullnames_all pf, mld_melding m
|
||
WHERE mld_kenmerk_key BETWEEN 101 AND 120
|
||
AND fac.safe_to_number (km.mld_kenmerkmelding_waarde) = pf.prs_perslid_key
|
||
AND km.mld_melding_key = m.mld_melding_key;
|
||
|
||
|
||
CREATE OR REPLACE VIEW asdl_v_rap_importsheet
|
||
(
|
||
disciplineomschrijving,
|
||
disciplinekostensoort,
|
||
groepsoortomschrijving,
|
||
objectsoortcode,
|
||
objectsoortomschrijving,
|
||
objectomschrijving,
|
||
objectopmerking,
|
||
ins_deel_key,
|
||
reserveerbaar,
|
||
eenheid,
|
||
prijs,
|
||
locatiecode,
|
||
gebouwcode,
|
||
bouwlaagvolgnummer,
|
||
ruimtenummer,
|
||
reserveringscope,
|
||
catalogusnaam,
|
||
cataloguskostensoort,
|
||
persoonmatchcode,
|
||
persoonmatchwaarde,
|
||
district,
|
||
locatie,
|
||
frequentie,
|
||
oppervlakte,
|
||
vloersoort,
|
||
dagen,
|
||
route,
|
||
uitvoeringsmoment,
|
||
afwijkingen,
|
||
eerstvolgendeschoonmaak
|
||
)
|
||
AS
|
||
SELECT d.ins_discipline_omschrijving,
|
||
NULL disciplinekostensoort,
|
||
d.ins_srtgroep_omschrijving,
|
||
sd.ins_srtdeel_code,
|
||
sd.ins_srtdeel_omschrijving,
|
||
d.ins_deel_omschrijving,
|
||
NULL objectopmerking,
|
||
d.ins_deel_key,
|
||
NULL reserveerbaar,
|
||
NULL eenheid,
|
||
NULL prijs,
|
||
alg_locatie_code,
|
||
alg_gebouw_upper,
|
||
alg_verdieping_volgnr,
|
||
alg_ruimte_nr,
|
||
NULL reserveringscope,
|
||
NULL catalogusnaam,
|
||
NULL cataloguskostensoort,
|
||
NULL persoonmatchcode,
|
||
NULL persoonmatchwaarde,
|
||
alg_district_omschrijving,
|
||
alg_locatie_omschrijving,
|
||
COALESCE(fac.safe_to_number(asdl.get_kenmerks ('INS', 44, d.ins_discipline_key, 'D', d.ins_deel_key)),
|
||
DECODE (ins_srtcontroledl_xcp_eenheid, 2, 52, 3, 12, 1)
|
||
/ ins_srtcontroledl_xcp_periode),
|
||
asdl.get_kenmerks ('INS', 41, d.ins_discipline_key, 'D', d.ins_deel_key) oppervlakte,
|
||
asdl.get_kenmerks ('INS', 42, d.ins_discipline_key, 'D', d.ins_deel_key) vloersoort,
|
||
COALESCE( asdl.get_kenmerks ('INS', 43, d.ins_discipline_key, 'D', d.ins_deel_key), asdl.get_bits_str(ins_srtcontroledl_xcp_eenheid, ins_srtcontroledl_xcp_bits)) dagen,
|
||
ins_srtcontroledl_xcp_groep,
|
||
asdl.get_kenmerk ('ALG', 1020, l.alg_locatie_key) uitv,
|
||
asdl.get_kenmerk ('ALG', 1000, l.alg_locatie_key) afw,
|
||
DECODE (
|
||
id.ins_deel_vervaldatum,
|
||
NULL,
|
||
TRUNC(fac.nextcyclusdatedeel (d.ins_deel_key,
|
||
x.ins_srtcontrole_key,
|
||
1)),
|
||
NULL)
|
||
eerste
|
||
FROM ins_v_deel_gegevens d,
|
||
ins_srtdeel sd,
|
||
alg_locatie l,
|
||
alg_verdieping v,
|
||
alg_district di,
|
||
ins_srtcontroledl_xcp x,
|
||
ins_deel id
|
||
WHERE d.ins_srtdeel_key = sd.ins_srtdeel_key
|
||
AND d.alg_locatie_key = l.alg_locatie_key
|
||
AND d.ins_deel_key = x.ins_deel_key
|
||
AND d.ins_deel_key = id.ins_deel_key
|
||
AND d.alg_verdieping_key = v.alg_verdieping_key
|
||
AND l.alg_district_key = di.alg_district_key;
|
||
|
||
-- ASDL#37757
|
||
CREATE OR REPLACE VIEW asdl_v_rap_obj_route_details
|
||
(
|
||
discipline,
|
||
groep,
|
||
objectsoort,
|
||
object,
|
||
district,
|
||
locatie_omschrijving,
|
||
locatie_code,
|
||
oppervlakte,
|
||
vloersoort,
|
||
route,
|
||
uitvoeringsmoment,
|
||
afwijkende_schoonmaak,
|
||
eerstvolgende_moment,
|
||
volgnummer_even_weken,
|
||
volgnummer_oneven_weken
|
||
)
|
||
AS
|
||
SELECT d.ins_discipline_omschrijving,
|
||
d.ins_srtgroep_omschrijving,
|
||
sd.ins_srtdeel_omschrijving,
|
||
d.ins_deel_omschrijving,
|
||
alg_district_omschrijving,
|
||
alg_locatie_omschrijving,
|
||
alg_locatie_code,
|
||
asdl.get_kenmerks ('INS',
|
||
41,
|
||
d.ins_discipline_key,
|
||
'D',
|
||
d.ins_deel_key)
|
||
oppervlakte,
|
||
asdl.get_kenmerks ('INS',
|
||
42,
|
||
d.ins_discipline_key,
|
||
'D',
|
||
d.ins_deel_key)
|
||
vloersoort,
|
||
ins_srtcontroledl_xcp_groep,
|
||
asdl.get_kenmerk ('ALG', 1020, l.alg_locatie_key) uitv,
|
||
asdl.get_kenmerk ('ALG', 1000, l.alg_locatie_key) afw,
|
||
DECODE (
|
||
id.ins_deel_vervaldatum,
|
||
NULL,
|
||
TRUNC(fac.nextcyclusdatedeel (d.ins_deel_key,
|
||
x.ins_srtcontrole_key,
|
||
1)),
|
||
NULL
|
||
)
|
||
eerste,
|
||
asdl.get_kenmerk ('ALG', 1042, l.alg_locatie_key) volgnr_even,
|
||
asdl.get_kenmerk ('ALG', 1043, l.alg_locatie_key) volgnr_oneven
|
||
FROM ins_v_deel_gegevens d,
|
||
ins_srtdeel sd,
|
||
alg_locatie l,
|
||
alg_district di,
|
||
ins_srtcontroledl_xcp x,
|
||
ins_deel id
|
||
WHERE d.ins_srtdeel_key = sd.ins_srtdeel_key
|
||
AND d.alg_locatie_key = l.alg_locatie_key
|
||
AND d.ins_deel_key = x.ins_deel_key
|
||
AND d.ins_deel_key = id.ins_deel_key
|
||
AND l.alg_district_key = di.alg_district_key;
|
||
|
||
CREATE OR REPLACE VIEW asdl_v_rap_check_schedule
|
||
AS
|
||
SELECT d.*
|
||
FROM ins_v_deel_gegevens d, ins_srtcontroledl_xcp x
|
||
WHERE x.ins_deel_key = d.ins_deel_key
|
||
AND asdl.check_valid_schedule (d.ins_deel_key) IS NOT NULL;
|
||
|
||
-- Basisrapportage om per locatie te zien of hier schoongemaakt is.
|
||
-- Om te bepalen of er uberhaupt schoongemaakt moest worden kijken we in de xcp bits.
|
||
CREATE OR REPLACE VIEW asdl_v_rap_ns_stat
|
||
(
|
||
datum,
|
||
locatie,
|
||
perceel,
|
||
schoongemaakt
|
||
)
|
||
AS
|
||
SELECT dsc.ins_deelsrtcontrole_datum,
|
||
alg_locatie_omschrijving,
|
||
alg_district_omschrijving,
|
||
DECODE (
|
||
(SELECT COUNT ( * )
|
||
FROM ins_deelsrtcontrole dsca, ins_deel da
|
||
WHERE dsca.ins_deel_key = da.ins_deel_key
|
||
AND ins_controlemode_key = 10
|
||
AND TRUNC (dsca.ins_deelsrtcontrole_datum_org) =
|
||
dsc.ins_deelsrtcontrole_datum
|
||
AND da.ins_alg_locatie_key = l.alg_locatie_key),
|
||
0,
|
||
0,
|
||
1)
|
||
schoongemaakt
|
||
FROM alg_locatie l,
|
||
alg_district d,
|
||
( SELECT TRUNC (ins_deelsrtcontrole_datum) ins_deelsrtcontrole_datum,
|
||
POWER (2, TO_CHAR (ins_deelsrtcontrole_datum, 'D') - 1)
|
||
mask
|
||
FROM ins_deelsrtcontrole
|
||
GROUP BY TRUNC (ins_deelsrtcontrole_datum),
|
||
POWER (2, TO_CHAR (ins_deelsrtcontrole_datum, 'D') - 1))
|
||
dsc,
|
||
( SELECT ins_alg_locatie_key alg_locatie_key,
|
||
ins_srtcontroledl_xcp_bits
|
||
FROM ins_srtcontroledl_xcp x,
|
||
ins_deel d,
|
||
ins_srtdeel sd,
|
||
ins_srtgroep sg
|
||
WHERE d.ins_deel_key = x.ins_deel_key
|
||
AND d.ins_srtdeel_key = sd.ins_srtdeel_key
|
||
AND sd.ins_srtgroep_key = sg.ins_srtgroep_key
|
||
AND sg.ins_discipline_key = 121 -- NS Schoonmaak
|
||
GROUP BY ins_alg_locatie_key, ins_srtcontroledl_xcp_bits) dcg
|
||
WHERE l.alg_locatie_key = dcg.alg_locatie_key
|
||
AND ins_deelsrtcontrole_datum >= TO_DATE ('20160701', 'yyyymmdd') -- we zijn het contract op 1 juli begonnen
|
||
AND l.alg_locatie_verwijder IS NULL
|
||
AND l.alg_district_key = d.alg_district_key
|
||
AND BITAND (ins_srtcontroledl_xcp_bits, dsc.mask) <> 0;
|
||
|
||
-- Groepering om grafiek met percentages te tonen
|
||
CREATE OR REPLACE VIEW asdl_v_rap_ns_stat_tot (datum, percentage)
|
||
AS
|
||
SELECT datum, ROUND ( (SUM (schoongemaakt) / COUNT ( * )) * 100)
|
||
FROM asdl_v_rap_ns_stat
|
||
GROUP BY datum;
|
||
|
||
-- Groepering om grafiek met percentages te tonen per perceel
|
||
CREATE OR REPLACE FORCE VIEW asdl_v_training
|
||
(
|
||
PERCEEL,
|
||
STATUS,
|
||
PRS_KENMERK_KEY,
|
||
FAC_USRDATA_KEY,
|
||
LEIDING
|
||
)
|
||
AS
|
||
SELECT
|
||
alg_district_omschrijving,
|
||
fac_usrdata_volgnr || '.' || fac_usrdata_omschr status,
|
||
prs_kenmerk_key,
|
||
ud.fac_usrdata_key,
|
||
DECODE (sp.prs_srtperslid_key, 62, 1, 0)
|
||
FROM prs_kenmerklink kl,
|
||
fac_usrdata ud,
|
||
prs_perslid p,
|
||
prs_afdeling a,
|
||
prs_srtperslid sp,
|
||
( SELECT prs_perslid_key, alg_district_key
|
||
FROM prs_perslidwerkplek pw,
|
||
prs_werkplek wp,
|
||
alg_ruimte r,
|
||
alg_verdieping v,
|
||
alg_gebouw g,
|
||
alg_locatie l
|
||
WHERE pw.prs_werkplek_key = wp.prs_werkplek_key
|
||
AND wp.prs_alg_ruimte_key = r.alg_ruimte_key
|
||
AND r.alg_verdieping_key = v.alg_verdieping_key
|
||
AND v.alg_gebouw_key = g.alg_gebouw_key
|
||
AND g.alg_locatie_key = l.alg_locatie_key
|
||
AND alg_district_key <> 21 -- Algemene Asito locatie
|
||
GROUP BY prs_perslid_key, l.alg_district_key) wp,
|
||
alg_district d
|
||
WHERE p.prs_afdeling_key = a.prs_afdeling_key
|
||
AND p.prs_srtperslid_key = sp.prs_srtperslid_key
|
||
AND p.prs_perslid_key = wp.prs_perslid_key(+)
|
||
AND wp.alg_district_key = d.alg_district_key(+)
|
||
AND prs_afdeling_naam = '2250'
|
||
AND fac.safe_to_number (kl.prs_kenmerklink_waarde) =
|
||
ud.fac_usrdata_key
|
||
AND kl.prs_link_key = p.prs_perslid_key;
|
||
|
||
|
||
-- Specifieke rapportages.
|
||
CREATE OR REPLACE VIEW asdl_v_training_perceel
|
||
(
|
||
PERCEEL,
|
||
OMSCHRIJVING,
|
||
STATUS,
|
||
PERC,
|
||
AANTAL
|
||
)
|
||
AS
|
||
SELECT alg_district_omschrijving,
|
||
DECODE (prs_kenmerk_key,
|
||
1049, 'SVS perron & stationsreiniging',
|
||
1050, 'Taak Eigen Veiligheid',
|
||
1053, 'VCA (B-VCA)',
|
||
1120, 'WAV pas',
|
||
1122, 'Digitaal Veiligheid Paspoort')
|
||
omschrijving,
|
||
fac_usrdata_volgnr || '.' || fac_usrdata_omschr,
|
||
ROUND (
|
||
( (SELECT COUNT ( * )
|
||
FROM asdl_v_training t
|
||
WHERE k.prs_kenmerk_key = t.prs_kenmerk_key
|
||
AND ud.fac_usrdata_key = t.fac_usrdata_key
|
||
AND perceel = alg_district_omschrijving)
|
||
/ (SELECT DECODE (COUNT ( * ), 0, 1, COUNT ( * ))
|
||
FROM asdl_v_training t
|
||
WHERE k.prs_kenmerk_key = t.prs_kenmerk_key
|
||
AND perceel = alg_district_omschrijving)
|
||
* 100),
|
||
2)
|
||
perc,
|
||
(SELECT COUNT ( * )
|
||
FROM asdl_v_training t
|
||
WHERE k.prs_kenmerk_key = t.prs_kenmerk_key
|
||
AND ud.fac_usrdata_key = t.fac_usrdata_key
|
||
AND perceel = alg_district_omschrijving)
|
||
aantal
|
||
FROM fac_usrdata ud, prs_kenmerk k, alg_district d
|
||
WHERE ud.fac_usrtab_key = 1
|
||
AND k.prs_kenmerk_key IN (1049, 1050, 1053, 1120, 1122)
|
||
AND d.alg_district_key IN (41, 42, 43, 44);
|
||
|
||
CREATE OR REPLACE VIEW asdl_v_training_totaal
|
||
(
|
||
OMSCHRIJVING,
|
||
STATUS,
|
||
PERC,
|
||
AANTAL
|
||
)
|
||
AS
|
||
SELECT DECODE (prs_kenmerk_key,
|
||
1049, 'SVS perron & stationsreiniging',
|
||
1050, 'Taak Eigen Veiligheid',
|
||
1053, 'VCA (B-VCA)',
|
||
1120, 'WAV pas',
|
||
1122, 'Digitaal Veiligheid Paspoort')
|
||
omschrijving,
|
||
fac_usrdata_volgnr || '.' || fac_usrdata_omschr,
|
||
ROUND (
|
||
( (SELECT COUNT ( * )
|
||
FROM asdl_v_training t
|
||
WHERE k.prs_kenmerk_key = t.prs_kenmerk_key
|
||
AND ud.fac_usrdata_key = t.fac_usrdata_key)
|
||
/ (SELECT DECODE (COUNT ( * ), 0, 1, COUNT ( * ))
|
||
FROM asdl_v_training t
|
||
WHERE k.prs_kenmerk_key = t.prs_kenmerk_key)
|
||
* 100),
|
||
2)
|
||
perc,
|
||
(SELECT COUNT ( * )
|
||
FROM asdl_v_training t
|
||
WHERE k.prs_kenmerk_key = t.prs_kenmerk_key
|
||
AND ud.fac_usrdata_key = t.fac_usrdata_key)
|
||
aantal
|
||
FROM fac_usrdata ud, prs_kenmerk k, alg_district d
|
||
WHERE ud.fac_usrtab_key = 1
|
||
AND k.prs_kenmerk_key IN (1049, 1050, 1053, 1120, 1122)
|
||
AND d.alg_district_key IN (41, 42, 43, 44)
|
||
GROUP BY prs_kenmerk_key,
|
||
fac_usrdata_volgnr,
|
||
fac_usrdata_omschr,
|
||
fac_usrdata_key;
|
||
|
||
|
||
|
||
-- view om een listbox met locatiebeheerders te vullen
|
||
CREATE OR REPLACE VIEW asdl_v_list_locatiebeheerder
|
||
(
|
||
prs_perslid_naam_full,
|
||
prs_perslid_key,
|
||
prs_perslid_verwijder
|
||
)
|
||
AS
|
||
SELECT prs_perslid_naam_full, pf.prs_perslid_key, NULL
|
||
FROM prs_v_perslid_fullnames pf, fac_gebruikersgroep gg
|
||
WHERE pf.prs_perslid_key = gg.prs_perslid_key AND fac_groep_key = 241
|
||
UNION ALL
|
||
SELECT prs_perslid_naam_full, prs_perslid_key, SYSDATE
|
||
FROM prs_v_perslid_fullnames_all pf
|
||
WHERE pf.prs_perslid_key NOT IN
|
||
(SELECT prs_perslid_key
|
||
FROM fac_gebruikersgroep gg
|
||
WHERE gg.prs_perslid_key = pf.prs_perslid_key AND fac_groep_key = 241);
|
||
|
||
-------------------------------------------------------------------------------------------
|
||
--
|
||
-- Notificatiejobs
|
||
--
|
||
-------------------------------------------------------------------------------------------
|
||
-- Notificatie naar leidinggevende op dag dat medewerker jarig is.
|
||
CREATE OR REPLACE VIEW asdl_v_noti_verjaardag
|
||
(
|
||
sender,
|
||
receiver,
|
||
text,
|
||
code,
|
||
fac_srtnotificatie_key,
|
||
key,
|
||
xkey,
|
||
xemail,
|
||
xmobile
|
||
)
|
||
AS
|
||
SELECT NULL,
|
||
p.prs_perslid_key,
|
||
'Let op: Uw medewerker '
|
||
|| prs_perslid_naam_friendly
|
||
|| ' is vandaag ('
|
||
|| RTRIM (TO_CHAR (SYSDATE, 'dd month'))
|
||
|| ') jarig.',
|
||
'PRSMAI' code,
|
||
NULL fac_srtnotificatie_key,
|
||
NULL key,
|
||
NULL xkey,
|
||
NULL xemail,
|
||
NULL xmobiel
|
||
FROM prs_kenmerklink klg,
|
||
prs_v_perslid_fullnames pf,
|
||
prs_kenmerklink kll,
|
||
prs_perslid p
|
||
WHERE klg.prs_kenmerk_key = 1023
|
||
AND klg.prs_kenmerklink_verwijder IS NULL
|
||
AND klg.prs_link_key = pf.prs_perslid_key
|
||
AND SUBSTR (klg.prs_kenmerklink_waarde, 1, 5) =
|
||
TO_CHAR (SYSDATE, 'dd-mm')
|
||
AND kll.prs_kenmerk_key = 1061
|
||
AND kll.prs_kenmerklink_verwijder IS NULL
|
||
AND kll.prs_link_key = pf.prs_perslid_key
|
||
AND fac.safe_to_number (kll.prs_kenmerklink_waarde) = p.prs_perslid_key;
|
||
|
||
CREATE OR REPLACE VIEW asdl_v_noti_opleiding
|
||
(
|
||
sender,
|
||
receiver,
|
||
text,
|
||
code,
|
||
fac_srtnotificatie_key,
|
||
key,
|
||
xkey,
|
||
xemail,
|
||
xmobile
|
||
)
|
||
AS
|
||
SELECT NULL,
|
||
701 prs_perslid_key, -- NS Asito administratie
|
||
'Let op: Opleiding/pas '
|
||
|| opleiding
|
||
|| ' van medewerker '
|
||
|| prs_perslid_naam_friendly
|
||
|| ' is bijna verlopen ('
|
||
|| prs_kenmerklink_waarde
|
||
|| ')',
|
||
'PRSMAI' code,
|
||
NULL fac_srtnotificatie_key,
|
||
NULL key,
|
||
NULL xkey,
|
||
NULL xemail,
|
||
NULL xmobiel
|
||
FROM prs_v_perslid_fullnames pf,
|
||
(SELECT 'VCA vol' opleiding, prs_link_key, prs_kenmerklink_waarde
|
||
FROM prs_kenmerklink
|
||
WHERE prs_kenmerk_key = 1095
|
||
AND TRUNC (SYSDATE) IN
|
||
(fac.safe_to_date (prs_kenmerklink_waarde,
|
||
'dd-mm-yyyy')
|
||
- (12 * 7),
|
||
fac.safe_to_date (prs_kenmerklink_waarde,
|
||
'dd-mm-yyyy')
|
||
- (10 * 7),
|
||
fac.safe_to_date (prs_kenmerklink_waarde,
|
||
'dd-mm-yyyy')
|
||
- (8 * 7),
|
||
fac.safe_to_date (prs_kenmerklink_waarde,
|
||
'dd-mm-yyyy')
|
||
- (6 * 7),
|
||
fac.safe_to_date (prs_kenmerklink_waarde,
|
||
'dd-mm-yyyy')
|
||
- (4 * 7),
|
||
fac.safe_to_date (prs_kenmerklink_waarde,
|
||
'dd-mm-yyyy')
|
||
- (2 * 7))
|
||
UNION
|
||
SELECT 'DVP (digitaal veiligheids paspoort)',
|
||
prs_link_key,
|
||
prs_kenmerklink_waarde
|
||
FROM prs_kenmerklink
|
||
WHERE prs_kenmerk_key = 1037
|
||
AND TRUNC (SYSDATE) IN
|
||
(fac.safe_to_date (prs_kenmerklink_waarde,
|
||
'dd-mm-yyyy')
|
||
- (8 * 7),
|
||
fac.safe_to_date (prs_kenmerklink_waarde,
|
||
'dd-mm-yyyy')
|
||
- (6 * 7),
|
||
fac.safe_to_date (prs_kenmerklink_waarde,
|
||
'dd-mm-yyyy')
|
||
- (4 * 7),
|
||
fac.safe_to_date (prs_kenmerklink_waarde,
|
||
'dd-mm-yyyy')
|
||
- (2 * 7))
|
||
UNION
|
||
SELECT 'WAV (wet arbeid vreemdelingen)',
|
||
prs_link_key,
|
||
prs_kenmerklink_waarde
|
||
FROM prs_kenmerklink
|
||
WHERE prs_kenmerk_key = 1100
|
||
AND TRUNC (SYSDATE) IN
|
||
(fac.safe_to_date (prs_kenmerklink_waarde,
|
||
'dd-mm-yyyy')
|
||
- (8 * 7),
|
||
fac.safe_to_date (prs_kenmerklink_waarde,
|
||
'dd-mm-yyyy')
|
||
- (6 * 7),
|
||
fac.safe_to_date (prs_kenmerklink_waarde,
|
||
'dd-mm-yyyy')
|
||
- (4 * 7),
|
||
fac.safe_to_date (prs_kenmerklink_waarde,
|
||
'dd-mm-yyyy')
|
||
- (2 * 7))
|
||
UNION
|
||
SELECT 'VCA Basis', prs_link_key, prs_kenmerklink_waarde
|
||
FROM prs_kenmerklink
|
||
WHERE prs_kenmerk_key = 1054
|
||
AND TRUNC (SYSDATE) IN
|
||
(fac.safe_to_date (prs_kenmerklink_waarde,
|
||
'dd-mm-yyyy')
|
||
- (12 * 7),
|
||
fac.safe_to_date (prs_kenmerklink_waarde,
|
||
'dd-mm-yyyy')
|
||
- (10 * 7),
|
||
fac.safe_to_date (prs_kenmerklink_waarde,
|
||
'dd-mm-yyyy')
|
||
- (8 * 7),
|
||
fac.safe_to_date (prs_kenmerklink_waarde,
|
||
'dd-mm-yyyy')
|
||
- (6 * 7),
|
||
fac.safe_to_date (prs_kenmerklink_waarde,
|
||
'dd-mm-yyyy')
|
||
- (4 * 7),
|
||
fac.safe_to_date (prs_kenmerklink_waarde,
|
||
'dd-mm-yyyy')
|
||
- (2 * 7))
|
||
UNION
|
||
SELECT 'Taak eigen veiligheid',
|
||
prs_link_key,
|
||
prs_kenmerklink_waarde
|
||
FROM prs_kenmerklink
|
||
WHERE prs_kenmerk_key = 1034
|
||
AND TRUNC (SYSDATE) IN
|
||
(fac.safe_to_date (prs_kenmerklink_waarde,
|
||
'dd-mm-yyyy')
|
||
- (8 * 7),
|
||
fac.safe_to_date (prs_kenmerklink_waarde,
|
||
'dd-mm-yyyy')
|
||
- (6 * 7),
|
||
fac.safe_to_date (prs_kenmerklink_waarde,
|
||
'dd-mm-yyyy')
|
||
- (4 * 7),
|
||
fac.safe_to_date (prs_kenmerklink_waarde,
|
||
'dd-mm-yyyy')
|
||
- (2 * 7))) o
|
||
WHERE o.prs_link_key = pf.prs_perslid_key;
|
||
|
||
-- Afschrift naar gebruiker NS Asito administratie
|
||
-- na afmelden 'Graffiti verwijderen'-meldingen!
|
||
CREATE OR REPLACE VIEW asdl_v_noti_administratie
|
||
(
|
||
code,
|
||
sender,
|
||
receiver,
|
||
text,
|
||
key,
|
||
xkey,
|
||
xemail,
|
||
xmobile
|
||
)
|
||
AS
|
||
SELECT sn.fac_srtnotificatie_code,
|
||
NULL,
|
||
701 prs_perslid_key, -- NS Asito administratie
|
||
REPLACE (
|
||
REPLACE (
|
||
REPLACE (sn.fac_srtnotificatie_oms,
|
||
'##KEY##',
|
||
m.mld_melding_key),
|
||
'##DISC##',
|
||
md.ins_discipline_omschrijving),
|
||
'##STDMLD##',
|
||
sm.mld_stdmelding_omschrijving),
|
||
m.mld_melding_key,
|
||
NULL,
|
||
NULL,
|
||
NULL
|
||
FROM fac_tracking t,
|
||
mld_melding m,
|
||
mld_stdmelding sm,
|
||
mld_discipline md,
|
||
fac_srtnotificatie sn,
|
||
fac_notificatie_job nj
|
||
WHERE t.fac_srtnotificatie_key = 38 -- MLDAFM
|
||
AND t.fac_tracking_refkey = m.mld_melding_key
|
||
AND m.mld_stdmelding_key = 81 -- Graffiti verwijderen
|
||
AND m.mld_stdmelding_key = sm.mld_stdmelding_key
|
||
AND sm.mld_ins_discipline_key = md.ins_discipline_key
|
||
AND sn.fac_srtnotificatie_code = 'CUST01'
|
||
AND nj.fac_notificatie_job_view = 'ASDL_V_NOTI_ADMINISTRATIE'
|
||
AND t.fac_tracking_datum > nj.fac_notificatie_job_nextrun - (nj.fac_notificatie_job_interval / 24);
|
||
|
||
-- Notificatie naar de locatiebeheerder om de actie goed te keuren of af te wijzen.
|
||
CREATE OR REPLACE VIEW asdl_v_noti_glas_locatiebeheer
|
||
(
|
||
code,
|
||
sender,
|
||
receiver,
|
||
text,
|
||
key,
|
||
xkey,
|
||
xemail,
|
||
xmobile
|
||
)
|
||
AS
|
||
SELECT sn.fac_srtnotificatie_code,
|
||
NULL,
|
||
fac.safe_to_number(mld_kenmerkmelding_waarde) prs_perslid_key, -- NS Asito administratie
|
||
'Glasbewassing op locatie ' || alg_locatie_omschrijving || ' is uitgevoerd.',
|
||
m.mld_melding_key,
|
||
NULL,
|
||
NULL,
|
||
NULL
|
||
FROM fac_tracking t,
|
||
mld_melding m,
|
||
mld_stdmelding sm,
|
||
fac_srtnotificatie sn,
|
||
fac_notificatie_job nj,
|
||
mld_kenmerkmelding km,
|
||
mld_kenmerk k,
|
||
alg_locatie l
|
||
WHERE t.fac_srtnotificatie_key = 43 -- MLDNEW
|
||
AND t.fac_tracking_refkey = m.mld_melding_key
|
||
AND m.mld_stdmelding_key = sm.mld_stdmelding_key
|
||
AND sm.mld_ins_discipline_key = 241
|
||
AND sn.fac_srtnotificatie_code = 'CUST02'
|
||
AND k.mld_srtkenmerk_key = 121 -- locatiebeheerder
|
||
AND km.mld_melding_key = m.mld_melding_key
|
||
AND km.mld_kenmerk_key = k.mld_kenmerk_key
|
||
AND m.mld_alg_locatie_key = l.alg_locatie_key
|
||
AND UPPER(nj.fac_notificatie_job_view) = 'ASDL_V_NOTI_GLAS_LOCATIEBEHEER'
|
||
AND t.fac_tracking_datum > nj.fac_notificatie_job_nextrun - (nj.fac_notificatie_job_interval / 24);
|
||
|
||
--
|
||
-- Notificatie naar de administratie om glasbewassing te factureren en de voortgang te volgen.
|
||
CREATE OR REPLACE VIEW asdl_v_noti_glas_factuur
|
||
(
|
||
code,
|
||
sender,
|
||
receiver,
|
||
text,
|
||
key,
|
||
xkey,
|
||
xemail,
|
||
xmobile
|
||
)
|
||
AS
|
||
SELECT sn.fac_srtnotificatie_code,
|
||
NULL,
|
||
2561 prs_perslid_key, -- NS Asito 2250
|
||
'Glasbewassing op locatie ' || alg_locatie_omschrijving ||
|
||
DECODE(t.fac_srtnotificatie_key, 37, ' kan gefactureerd worden.',
|
||
44, ' is afgekeurd.',
|
||
43, ' is aangemaakt.'),
|
||
m.mld_melding_key,
|
||
NULL,
|
||
NULL,
|
||
NULL
|
||
FROM fac_tracking t,
|
||
mld_melding m,
|
||
mld_stdmelding sm,
|
||
fac_srtnotificatie sn,
|
||
fac_notificatie_job nj,
|
||
alg_locatie l
|
||
WHERE t.fac_srtnotificatie_key IN (37, 44, 43) -- MLDACP, MLDREJ, MLDNEW
|
||
AND t.fac_tracking_refkey = m.mld_melding_key
|
||
AND m.mld_stdmelding_key = sm.mld_stdmelding_key
|
||
AND sm.mld_ins_discipline_key = 241
|
||
AND sn.fac_srtnotificatie_code = 'MLDMAI'
|
||
AND m.mld_alg_locatie_key = l.alg_locatie_key
|
||
AND UPPER(nj.fac_notificatie_job_view) = 'ASDL_V_NOTI_GLAS_FACTUUR'
|
||
AND t.fac_tracking_datum > nj.fac_notificatie_job_nextrun - (nj.fac_notificatie_job_interval / 24);
|
||
|
||
-------------------------------------------------------------------------------------------
|
||
--
|
||
-- Importsheets
|
||
--
|
||
-------------------------------------------------------------------------------------------
|
||
CREATE OR REPLACE PROCEDURE asdl_import_perslid (p_import_key IN NUMBER)
|
||
AS
|
||
CURSOR c
|
||
IS
|
||
SELECT * FROM fac_imp_perslid;
|
||
|
||
v_seq_of_columns VARCHAR (255);
|
||
v_index_eigen NUMBER;
|
||
v_index_partner NUMBER;
|
||
v_code NUMBER;
|
||
v_index NUMBER;
|
||
v_voorletters VARCHAR2 (100);
|
||
BEGIN
|
||
v_seq_of_columns :=
|
||
'0;0;0;0;0;0;1;10;12;14;9;11;13;0;0;0;0;7;0;2;5;0;0;0;0;0;16;15;0;8;31;32;33;34;35;36;37;38;39;40;41;42;43;44;45;46';
|
||
prs.import_perslid (
|
||
p_import_key,
|
||
v_seq_of_columns,
|
||
'WERKS;PERNR;STELL;SHORT;STEXT;E_MAIL_P;E_MAIL_Z;ENAME;INITS;NACHN;NAME2;VORSW;VORS2;RUFNM;GBDAT;PERNR_OL%');
|
||
|
||
-- Even het personeelsnummer voorzien van de nodig voorloopnullen. Die Excel toch...
|
||
-- en ook het nummer van de leidinggevende
|
||
UPDATE fac_imp_perslid i
|
||
SET prs_perslid_nr = LPAD(prs_perslid_nr, 8, '0'),
|
||
prs_kenmerk1 = LPAD(prs_kenmerk1, 8, '0'),
|
||
prs_perslid_oslogin = (SELECT MAX(prs_perslid_oslogin) FROM prs_perslid p WHERE p.prs_perslid_verwijder IS NULL and p.prs_perslid_nr = LPAD(i.prs_perslid_nr, 8, '0')),
|
||
prs_srtperslid_omschrijving = DECODE (SUBSTR(REPLACE(UPPER(prs_srtperslid_omschrijving), 'MEDEWERKER '),1,10),
|
||
'OBJECTLEID', 'Objectleider',
|
||
'PROJECTLEI', 'Objectleider',
|
||
'KWALITEIT ', 'Vestigingsmanager en ondersteuning',
|
||
'Schoonmaker');
|
||
|
||
-- koppel iedereen aan afdeling 2250
|
||
-- UPDATE fac_imp_perslid SET prs_afdeling_naam = '2250';
|
||
|
||
-- Zorg dat de juiste naam getoond wordt
|
||
-- Codering naamgebruik FACILITOR:
|
||
-- 0 - Gebruik eigennaam
|
||
-- 1 - Gebruik partnernaam - eigennaam
|
||
-- 2 - Gebruik partnernaam
|
||
-- 3 - Gebruik eigennaam - partnernaam
|
||
-- PRS_PERSLID_NAAMGEBRUIK_CODE
|
||
-- Kenmerk4 is de volledige naam.
|
||
|
||
FOR rec IN c
|
||
LOOP
|
||
v_index_eigen := INSTR (rec.prs_kenmerk4, rec.prs_perslid_naam);
|
||
|
||
-- als de partnernaam leeg is wil dat hetzelfde zeggen als dat deze niet voorkomt in de display naam.
|
||
IF rec.prs_perslid_partner_naam IS NULL
|
||
THEN
|
||
v_index_partner := 0;
|
||
ELSE
|
||
v_index_partner :=
|
||
INSTR (rec.prs_kenmerk4, rec.prs_perslid_partner_naam);
|
||
END IF;
|
||
|
||
IF v_index_eigen = 0
|
||
THEN
|
||
v_code := 2;
|
||
ELSE
|
||
IF v_index_partner = 0
|
||
THEN
|
||
v_code := 0;
|
||
ELSE
|
||
IF v_index_eigen < v_index_partner
|
||
THEN
|
||
v_code := 3;
|
||
ELSE
|
||
v_code := 1;
|
||
END IF;
|
||
END IF;
|
||
END IF;
|
||
|
||
UPDATE fac_imp_perslid
|
||
SET prs_perslid_naamgebruik_code = v_code
|
||
WHERE prs_perslid_nr = rec.prs_perslid_nr;
|
||
|
||
-- even netjes de punten plaatsen in de voorletters.
|
||
v_voorletters := NULL;
|
||
|
||
FOR v_index IN 1 .. LENGTH (rec.prs_perslid_voorletters)
|
||
LOOP
|
||
v_voorletters :=
|
||
v_voorletters
|
||
|| SUBSTR (rec.prs_perslid_voorletters, v_index, 1)
|
||
|| '.';
|
||
END LOOP;
|
||
|
||
UPDATE fac_imp_perslid
|
||
SET prs_perslid_voorletters = SUBSTR (v_voorletters, 1, 15)
|
||
WHERE prs_perslid_nr = rec.prs_perslid_nr;
|
||
END LOOP;
|
||
END asdl_import_perslid;
|
||
/
|
||
|
||
|
||
CREATE OR REPLACE PROCEDURE asdl_update_perslid (p_import_key IN NUMBER)
|
||
IS
|
||
CURSOR c_flex
|
||
IS
|
||
SELECT i.prs_perslid_key, prs_kenmerk3 leid_key, prs_kenmerk2 geboorte
|
||
FROM fac_imp_perslid i;
|
||
|
||
CURSOR c_del
|
||
IS
|
||
SELECT p.prs_perslid_key, p.prs_perslid_nr, pf.prs_perslid_naam_full
|
||
FROM fac_imp_perslid i, prs_perslid p, prs_v_perslid_fullnames_all pf
|
||
WHERE p.prs_perslid_nr = i.prs_perslid_nr(+)
|
||
AND pf.prs_perslid_key = p.prs_perslid_key
|
||
AND p.prs_perslid_nr IS NOT NULL
|
||
AND i.prs_perslid_nr IS NULL
|
||
AND p.prs_perslid_verwijder IS NULL
|
||
ORDER BY 2;
|
||
|
||
v_perslid_key NUMBER;
|
||
v_perslid_nr VARCHAR2 (100);
|
||
v_kostenplaats_nr VARCHAR2 (100);
|
||
v_count NUMBER;
|
||
v_errorhint VARCHAR2 (1000);
|
||
BEGIN
|
||
SELECT count(*)
|
||
INTO v_count
|
||
FROM fac_imp_perslid;
|
||
|
||
IF v_count > 0 THEN
|
||
|
||
-- generic update
|
||
prs.update_perslid (p_import_key, 'NR', NULL);
|
||
|
||
FOR rec IN c_del
|
||
LOOP
|
||
BEGIN
|
||
-- Niet gebruik maken van de standaard functie omdat we geen medewerkers
|
||
-- hard willen verwijderen.
|
||
-- prs.delete_perslid (p_import_key, rec.prs_perslid_key);
|
||
|
||
-- Controleer of er ACTUELE verplichtingen zijn
|
||
SELECT COUNT ( * )
|
||
INTO v_count
|
||
FROM prs_v_verplichting_keys vp
|
||
WHERE vp.prs_perslid_key = rec.prs_perslid_key;
|
||
|
||
IF v_count > 0
|
||
THEN
|
||
UPDATE prs_perslid
|
||
SET prs_perslid_naam =
|
||
SUBSTR ('INACTIEF:' || prs_perslid_naam, 1, 60),
|
||
prs_perslid_oslogin = NULL,
|
||
prs_perslid_oslogin2 = NULL
|
||
WHERE prs_perslid_key = rec.prs_perslid_key
|
||
AND prs_perslid_naam NOT LIKE 'INACTIEF:%';
|
||
|
||
IF rec.prs_perslid_naam_full NOT LIKE '%INACTIEF%'
|
||
THEN
|
||
fac.trackaction ('PRSUPD', rec.prs_perslid_key, NULL, SYSDATE, 'Persoon als INACTIEF gemarkeerd of was al INACTIEF gemarkeerd.' );
|
||
END IF;
|
||
|
||
fac.imp_writelog (
|
||
p_import_key,
|
||
'I',
|
||
'Persoon als INACTIEF gemarkeerd of was al INACTIEF gemarkeerd.',
|
||
'Achternaam/persoonsnr: '
|
||
|| rec.prs_perslid_naam_full
|
||
|| '/'
|
||
|| rec.prs_perslid_nr);
|
||
ELSE
|
||
BEGIN
|
||
UPDATE prs_perslid
|
||
SET prs_perslid_verwijder = SYSDATE
|
||
WHERE prs_perslid_key = rec.prs_perslid_key;
|
||
fac.imp_writelog (
|
||
p_import_key,
|
||
'I',
|
||
'Persoon ge<67>nactiveerd.',
|
||
'Achternaam/persoonsnr: '
|
||
|| rec.prs_perslid_naam_full
|
||
|| '/'
|
||
|| rec.prs_perslid_nr);
|
||
fac.trackaction ('PRSDEL', rec.prs_perslid_key, NULL, SYSDATE, NULL );
|
||
EXCEPTION
|
||
WHEN OTHERS
|
||
THEN
|
||
-- Kennelijk heeft de persoon toch ernstige verplichtingen
|
||
v_errorhint :=
|
||
'Persoon heeft nog (max. '
|
||
|| TO_CHAR (v_count)
|
||
|| ') verplichtingen. Naam/persoonsnr: '
|
||
|| rec.prs_perslid_naam_full
|
||
|| '/'
|
||
|| rec.prs_perslid_nr;
|
||
fac.imp_writelog (p_import_key,
|
||
'I',
|
||
'Inactiveren persoon is niet gelukt',
|
||
v_errorhint);
|
||
END;
|
||
END IF;
|
||
END;
|
||
END LOOP;
|
||
|
||
UPDATE fac_imp_perslid i
|
||
SET prs_kenmerk3 =
|
||
(SELECT prs_perslid_key
|
||
FROM prs_perslid p
|
||
WHERE p.prs_perslid_verwijder IS NULL
|
||
AND p.prs_perslid_nr = i.prs_kenmerk1);
|
||
|
||
FOR rec IN c_flex
|
||
LOOP
|
||
BEGIN
|
||
prs.upsertkenmerk (1061, rec.prs_perslid_key, rec.leid_key);
|
||
prs.upsertkenmerk (1023, rec.prs_perslid_key, rec.geboorte);
|
||
EXCEPTION
|
||
WHEN OTHERS
|
||
THEN
|
||
NULL; -- Jammer
|
||
END;
|
||
END LOOP;
|
||
END IF;
|
||
END asdl_update_perslid;
|
||
/
|
||
|
||
|
||
CREATE OR REPLACE PROCEDURE asdl_import_wiezitwaar (p_import_key IN NUMBER)
|
||
AS
|
||
CURSOR c_cursor
|
||
IS
|
||
SELECT *
|
||
FROM fac_imp_file
|
||
WHERE fac_import_key = p_import_key
|
||
ORDER BY fac_imp_file_index;
|
||
|
||
v_newline VARCHAR2 (1000);
|
||
v_aanduiding VARCHAR2 (1000); -- Import line
|
||
v_field VARCHAR2 (100); -- Import field
|
||
v_fielddelimitor VARCHAR2 (1); -- Field seperator
|
||
v_errormsg VARCHAR (200);
|
||
v_errorhint VARCHAR (200);
|
||
oracle_err_num NUMBER;
|
||
oracle_err_mes VARCHAR2 (200);
|
||
v_skipfield VARCHAR2 (100);
|
||
-- De importvelden
|
||
v_perslid_nr VARCHAR2 (100);
|
||
v_locatie_code VARCHAR2 (100);
|
||
v_locatie_omschrijving VARCHAR2(100);
|
||
v_datum_str VARCHAR2 (100);
|
||
v_perslid_key NUMBER;
|
||
v_locatie_key NUMBER;
|
||
v_datum DATE;
|
||
v_ruimte_key NUMBER;
|
||
v_werkplek_key NUMBER;
|
||
v_perslidwerkplek_key NUMBER;
|
||
v_max_werkplek_volgnr NUMBER;
|
||
header_found BOOLEAN;
|
||
|
||
BEGIN
|
||
-- Init
|
||
header_found := FALSE;
|
||
v_fielddelimitor := ';';
|
||
|
||
FOR rec1 IN c_cursor
|
||
LOOP
|
||
BEGIN
|
||
v_newline := rec1.fac_imp_file_line;
|
||
v_aanduiding := v_newline;
|
||
|
||
IF SUBSTR (v_newline, 1, 3) = '?'
|
||
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;
|
||
|
||
fac.imp_getfield (v_newline, v_fielddelimitor, v_skipfield);
|
||
fac.imp_getfield (v_newline, v_fielddelimitor, v_perslid_nr);
|
||
fac.imp_getfield (v_newline, v_fielddelimitor, v_skipfield);
|
||
fac.imp_getfield (v_newline, v_fielddelimitor, v_locatie_code);
|
||
fac.imp_getfield (v_newline, v_fielddelimitor, v_locatie_omschrijving);
|
||
fac.imp_getfield (v_newline, v_fielddelimitor, v_datum_str);
|
||
|
||
v_aanduiding := 'Persoon: ' || v_perslid_nr || ' - Locatie: ' || v_locatie_code;
|
||
|
||
-- Skip until a valid header is found
|
||
IF UPPER(v_perslid_nr) = 'PERNR'
|
||
AND UPPER(v_locatie_code) = 'STRNO'
|
||
AND UPPER(v_datum_str) = 'DATUM'
|
||
THEN
|
||
-- Sla de kopregel over.
|
||
header_found := TRUE;
|
||
ELSIF (header_found AND v_perslid_nr IS NOT NULL)
|
||
THEN
|
||
v_errorhint := 'Datum omzetten naar intern formaat';
|
||
v_datum := to_date(v_datum_str, 'dd-mm-yyyy');
|
||
|
||
-- personeelsnummer voorzien van voorloopnullen
|
||
v_perslid_nr := LPAD(v_perslid_nr, 8, '0');
|
||
|
||
v_errorhint := 'Vind de juiste persoon';
|
||
SELECT prs_perslid_key
|
||
INTO v_perslid_key
|
||
FROM prs_perslid p
|
||
WHERE prs_perslid_verwijder IS NULL
|
||
AND prs_perslid_nr = v_perslid_nr;
|
||
|
||
v_errorhint := 'Vind de juiste locatie (op postcode)';
|
||
BEGIN
|
||
SELECT alg_locatie_key
|
||
INTO v_locatie_key
|
||
FROM alg_locatie
|
||
WHERE alg_locatie_verwijder IS NULL
|
||
AND REPLACE(alg_locatie_code, ' ') = SUBSTR(v_locatie_code, 1, 6);
|
||
EXCEPTION WHEN NO_DATA_FOUND
|
||
THEN
|
||
v_errorhint := 'Vind de juiste locatie (op omschrijving)';
|
||
SELECT alg_locatie_key
|
||
INTO v_locatie_key
|
||
FROM alg_locatie
|
||
WHERE alg_locatie_verwijder IS NULL
|
||
AND UPPER(v_locatie_omschrijving) like '%' || UPPER(alg_locatie_omschrijving);
|
||
END;
|
||
|
||
v_errorhint := 'Vind de juiste ruimte';
|
||
SELECT MIN(alg_ruimte_key)
|
||
INTO v_ruimte_key
|
||
FROM alg_v_ruimte_gegevens rg
|
||
WHERE alg_locatie_key = v_locatie_key;
|
||
|
||
BEGIN
|
||
v_errorhint := 'Check of er al een werkplek voor deze persoon bestaat.';
|
||
SELECT wp.prs_werkplek_key, prs_perslidwerkplek_key
|
||
INTO v_werkplek_key, v_perslidwerkplek_key
|
||
FROM prs_werkplek wp,
|
||
prs_perslidwerkplek pwp
|
||
WHERE wp.prs_werkplek_key = pwp.prs_werkplek_key
|
||
AND wp.prs_alg_ruimte_key = v_ruimte_key
|
||
AND pwp.prs_perslid_key = v_perslid_key
|
||
AND prs_werkplek_type = 1 -- we gebruikten type flex om conflict met echter wp te voorkomen.
|
||
AND prs_werkplek_virtueel = 1;
|
||
|
||
v_errorhint := 'Pas de datum aan bij de werkplek';
|
||
UPDATE prs_werkplek SET prs_werkplek_getekend = v_datum WHERE prs_werkplek_key = v_werkplek_key;
|
||
|
||
EXCEPTION WHEN NO_DATA_FOUND
|
||
THEN
|
||
v_errorhint := 'Bepaal max werkplekvolgnummer';
|
||
SELECT MAX(prs_werkplek_volgnr)
|
||
INTO v_max_werkplek_volgnr
|
||
FROM prs_werkplek
|
||
WHERE prs_alg_ruimte_key = v_ruimte_key;
|
||
|
||
v_errorhint := 'Toevoegen werkplek';
|
||
INSERT INTO prs_werkplek
|
||
( prs_alg_ruimte_key,
|
||
prs_werkplek_volgnr,
|
||
prs_werkplek_omschrijving,
|
||
prs_werkplek_getekend,
|
||
prs_werkplek_type,
|
||
prs_werkplek_virtueel)
|
||
VALUES ( v_ruimte_key,
|
||
COALESCE(v_max_werkplek_volgnr, 0) + 1,
|
||
v_perslid_nr,
|
||
v_datum,
|
||
1,
|
||
1)
|
||
RETURNING prs_werkplek_key INTO v_werkplek_key;
|
||
|
||
v_errorhint := 'Toevoegen perslidwerkplek';
|
||
INSERT INTO prs_perslidwerkplek
|
||
( prs_werkplek_key,
|
||
prs_perslid_key)
|
||
VALUES ( v_werkplek_key,
|
||
v_perslid_key);
|
||
END;
|
||
END IF;
|
||
|
||
COMMIT;
|
||
EXCEPTION WHEN OTHERS
|
||
THEN
|
||
oracle_err_num := SQLCODE;
|
||
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
|
||
v_errormsg := 'OTHERS (error ' || oracle_err_num || '/' || oracle_err_mes || ')';
|
||
fac.imp_writelog (p_import_key, 'E', SUBSTR (v_errormsg, 1, 1000), v_aanduiding || ' - ' || v_errorhint);
|
||
END;
|
||
END LOOP;
|
||
|
||
IF NOT header_found
|
||
THEN
|
||
fac.imp_writelog (p_import_key,
|
||
'E',
|
||
'Geen geldige header aangetroffen',
|
||
'Bestand is geen geldig ruimtesoort importbestand.'
|
||
);
|
||
END IF;
|
||
|
||
-- Werkplekken ouder dan 18 maanden gaan we weggooien.
|
||
DELETE prs_perslidwerkplek pwp
|
||
WHERE pwp.prs_werkplek_key IN (SELECT prs_werkplek_key
|
||
FROM prs_werkplek
|
||
WHERE ADD_MONTHS (
|
||
COALESCE (prs_werkplek_getekend,
|
||
SYSDATE),
|
||
18) < SYSDATE);
|
||
|
||
DELETE prs_werkplek wp
|
||
WHERE ADD_MONTHS (
|
||
COALESCE (prs_werkplek_getekend,
|
||
SYSDATE),
|
||
18) < SYSDATE;
|
||
EXCEPTION
|
||
WHEN OTHERS
|
||
THEN
|
||
oracle_err_num := SQLCODE;
|
||
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
|
||
v_errormsg := 'OTHERS (error ' || oracle_err_num || '/' || oracle_err_mes || ')';
|
||
fac.imp_writelog (p_import_key, 'E', SUBSTR (v_errormsg, 1, 1000), v_aanduiding);
|
||
END;
|
||
/
|
||
|
||
|
||
CREATE OR REPLACE PROCEDURE asdl_update_wiezitwaar (p_import_key IN NUMBER)
|
||
AS
|
||
BEGIN
|
||
fac.imp_writelog (p_import_key, 'I', 'Verwerk hoeft bij WieZitWaar import niet uitgevoerd te worden', NULL);
|
||
END;
|
||
/
|
||
|
||
-- import van template met schoonmaakgegevens
|
||
CREATE OR REPLACE PROCEDURE asdl_import_ins (p_import_key IN NUMBER)
|
||
AS
|
||
|
||
CURSOR c
|
||
IS
|
||
SELECT alg_locatie_code, ins_deel_omschrijving
|
||
FROM fac_imp_ins
|
||
GROUP BY alg_locatie_code, ins_deel_omschrijving
|
||
HAVING COUNT (ins_deel_omschrijving) > 1;
|
||
|
||
CURSOR c2 (
|
||
p_locatie_code VARCHAR2,
|
||
p_deel_omschrijving VARCHAR2)
|
||
IS
|
||
SELECT alg_locatie_code, ins_deel_omschrijving, ins_kenmerkwaarde20
|
||
FROM fac_imp_ins
|
||
WHERE alg_locatie_code = p_locatie_code
|
||
AND ins_deel_omschrijving = p_deel_omschrijving;
|
||
|
||
v_count NUMBER;
|
||
BEGIN
|
||
fac_import_ins(p_import_key);
|
||
|
||
-- vul een volgnummer in kenmerk20
|
||
UPDATE fac_imp_ins
|
||
SET ins_kenmerkwaarde20 = ROWNUM;
|
||
|
||
-- markeer objecten die niet uniek zijn met *<volgnummer>
|
||
FOR rec IN c
|
||
LOOP
|
||
v_count := 1;
|
||
|
||
FOR rec2 IN c2 (rec.alg_locatie_code, rec.ins_deel_omschrijving)
|
||
LOOP
|
||
UPDATE fac_imp_ins
|
||
SET ins_deel_omschrijving =
|
||
ins_deel_omschrijving || '*' || v_count
|
||
WHERE ins_kenmerkwaarde20 = rec2.ins_kenmerkwaarde20;
|
||
|
||
v_count := v_count + 1;
|
||
END LOOP;
|
||
END LOOP;
|
||
|
||
-- soms wordt een , als decimaal scheidingsteken opgegeven. Dat passen we even aan.
|
||
UPDATE fac_imp_ins
|
||
SET ins_kenmerkwaarde1 = REPLACE(ins_kenmerkwaarde1, ',', '.');
|
||
COMMIT;
|
||
END;
|
||
/
|
||
|
||
|
||
|
||
CREATE OR REPLACE PROCEDURE asdl_update_ins (p_import_key IN NUMBER)
|
||
AS
|
||
CURSOR c
|
||
IS
|
||
SELECT * FROM fac_imp_ins;
|
||
|
||
CURSOR c_insp
|
||
IS
|
||
SELECT DISTINCT sdg.*
|
||
FROM ins_v_srtdeel_gegevens sdg, fac_imp_ins i
|
||
WHERE UPPER (sdg.ins_discipline_omschrijving) =
|
||
UPPER (TRIM (i.ins_discipline_omschrijving))
|
||
AND sdg.ins_srtgroep_upper =
|
||
UPPER (TRIM (i.ins_srtgroep_omschrijving))
|
||
AND UPPER (sdg.ins_srtdeel_code) = UPPER (TRIM (i.ins_srtdeel_code));
|
||
|
||
v_errormsg VARCHAR (200);
|
||
v_aanduiding VARCHAR (200);
|
||
oracle_err_num NUMBER;
|
||
oracle_err_mes VARCHAR2 (200);
|
||
|
||
v_count NUMBER;
|
||
v_regio_key alg_regio.alg_regio_key%TYPE;
|
||
v_district_key alg_district.alg_district_key%TYPE;
|
||
v_locatie_key alg_locatie.alg_locatie_key%TYPE;
|
||
v_gebouw_key alg_gebouw.alg_gebouw_key%TYPE;
|
||
v_verdieping_key alg_verdieping.alg_verdieping_key%TYPE;
|
||
v_ruimte_key alg_ruimte.alg_ruimte_key%TYPE;
|
||
v_locatie_code alg_locatie.alg_locatie_code%TYPE;
|
||
v_regio alg_regio.alg_regio_omschrijving%TYPE;
|
||
v_district alg_district.alg_district_omschrijving%TYPE;
|
||
v_locatie alg_locatie.alg_locatie_omschrijving%TYPE;
|
||
v_srtcontrole_key ins_srtcontrole.ins_srtcontrole_key%TYPE;
|
||
v_srtcontroledl_xcp_key ins_srtcontroledl_xcp.ins_srtcontroledl_xcp_key%TYPE;
|
||
v_deel_key ins_deel.ins_deel_key%TYPE;
|
||
v_srtdeel_key ins_srtdeel.ins_srtdeel_key%TYPE;
|
||
v_kenmerk_key ins_kenmerk.ins_kenmerk_key%TYPE;
|
||
BEGIN
|
||
|
||
SELECT COUNT ( * )
|
||
INTO v_count
|
||
FROM imp_log
|
||
WHERE fac_import_key = p_import_key AND imp_log_status = 'E';
|
||
|
||
IF v_count > 0
|
||
THEN
|
||
RETURN;
|
||
END IF;
|
||
|
||
FOR rec IN c
|
||
LOOP
|
||
BEGIN
|
||
v_regio := SUBSTR (rec.ins_kenmerkwaarde2, 1, 30);
|
||
v_district := SUBSTR (rec.ins_kenmerkwaarde3, 1, 30);
|
||
v_locatie := SUBSTR (rec.ins_kenmerkwaarde4, 1, 60);
|
||
v_locatie_code := rec.alg_locatie_code;
|
||
|
||
v_aanduiding := 'Locatiecode: ' || v_locatie_code || ' - Locatie omschrijving: ' || v_locatie;
|
||
|
||
SELECT alg_regio_key
|
||
INTO v_regio_key
|
||
FROM alg_regio
|
||
WHERE alg_regio_upper = UPPER (TRIM (v_regio))
|
||
AND alg_regio_verwijder IS NULL;
|
||
EXCEPTION
|
||
WHEN NO_DATA_FOUND
|
||
THEN
|
||
INSERT INTO alg_regio (alg_regio_omschrijving)
|
||
VALUES (TRIM (v_regio))
|
||
RETURNING alg_regio_key
|
||
INTO v_regio_key;
|
||
END;
|
||
|
||
IF v_regio_key IS NOT NULL
|
||
THEN
|
||
BEGIN
|
||
SELECT alg_district_key
|
||
INTO v_district_key
|
||
FROM alg_district
|
||
WHERE alg_district_upper = UPPER (TRIM (v_district))
|
||
AND alg_regio_key = v_regio_key
|
||
AND alg_district_verwijder IS NULL;
|
||
EXCEPTION
|
||
WHEN NO_DATA_FOUND
|
||
THEN
|
||
INSERT INTO alg_district (alg_regio_key,
|
||
alg_district_omschrijving)
|
||
VALUES (v_regio_key, TRIM (v_district))
|
||
RETURNING alg_district_key
|
||
INTO v_district_key;
|
||
END;
|
||
END IF;
|
||
|
||
IF v_district_key IS NOT NULL
|
||
THEN
|
||
BEGIN
|
||
SELECT alg_locatie_key
|
||
INTO v_locatie_key
|
||
FROM alg_locatie
|
||
WHERE UPPER (alg_locatie_code) = UPPER (TRIM (v_locatie_code))
|
||
AND alg_district_key = v_district_key
|
||
AND alg_locatie_verwijder IS NULL;
|
||
|
||
BEGIN
|
||
UPDATE alg_locatie
|
||
SET alg_locatie_omschrijving = v_locatie
|
||
WHERE alg_locatie_key = v_locatie_key;
|
||
EXCEPTION WHEN OTHERS
|
||
THEN
|
||
oracle_err_num := SQLCODE;
|
||
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
|
||
v_errormsg := 'OTHERS (error ' || oracle_err_num || '/' || oracle_err_mes || ')';
|
||
fac.imp_writelog (p_import_key, 'E', SUBSTR (v_errormsg, 1, 1000), v_aanduiding);
|
||
END;
|
||
EXCEPTION
|
||
WHEN NO_DATA_FOUND
|
||
THEN
|
||
BEGIN
|
||
INSERT INTO alg_locatie (alg_district_key,
|
||
alg_locatie_code,
|
||
alg_locatie_omschrijving)
|
||
VALUES (v_district_key,
|
||
TRIM (v_locatie_code),
|
||
TRIM (v_locatie))
|
||
RETURNING alg_locatie_key
|
||
INTO v_locatie_key;
|
||
EXCEPTION WHEN OTHERS
|
||
THEN
|
||
v_locatie_key := -1;
|
||
oracle_err_num := SQLCODE;
|
||
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
|
||
v_errormsg := 'OTHERS (error ' || oracle_err_num || '/' || oracle_err_mes || ')';
|
||
fac.imp_writelog (p_import_key, 'E', SUBSTR (v_errormsg, 1, 1000), v_aanduiding);
|
||
END;
|
||
END;
|
||
END IF;
|
||
|
||
IF v_locatie_key <> -1
|
||
THEN
|
||
BEGIN
|
||
SELECT alg_gebouw_key
|
||
INTO v_gebouw_key
|
||
FROM alg_gebouw
|
||
WHERE alg_locatie_key = v_locatie_key
|
||
AND alg_gebouw_naam = '_'
|
||
AND alg_gebouw_verwijder IS NULL;
|
||
EXCEPTION
|
||
WHEN NO_DATA_FOUND
|
||
THEN
|
||
INSERT INTO alg_gebouw (alg_locatie_key,
|
||
alg_gebouw_naam,
|
||
alg_gebouw_code)
|
||
VALUES (v_locatie_key, '_', '_')
|
||
RETURNING alg_gebouw_key
|
||
INTO v_gebouw_key;
|
||
END;
|
||
|
||
BEGIN
|
||
SELECT alg_verdieping_key
|
||
INTO v_verdieping_key
|
||
FROM alg_verdieping
|
||
WHERE alg_gebouw_key = v_gebouw_key
|
||
AND alg_verdieping_volgnr = 1
|
||
AND alg_verdieping_verwijder IS NULL;
|
||
EXCEPTION
|
||
WHEN NO_DATA_FOUND
|
||
THEN
|
||
INSERT INTO alg_verdieping (alg_gebouw_key,
|
||
alg_verdieping_omschrijving,
|
||
alg_verdieping_volgnr,
|
||
alg_verdieping_code)
|
||
VALUES (v_gebouw_key,
|
||
'Verdieping 1',
|
||
1,
|
||
'_')
|
||
RETURNING alg_verdieping_key
|
||
INTO v_verdieping_key;
|
||
END;
|
||
|
||
BEGIN
|
||
SELECT alg_ruimte_key
|
||
INTO v_ruimte_key
|
||
FROM alg_ruimte
|
||
WHERE alg_verdieping_key = v_verdieping_key
|
||
AND alg_ruimte_nr = '_'
|
||
AND alg_ruimte_verwijder IS NULL;
|
||
EXCEPTION
|
||
WHEN NO_DATA_FOUND
|
||
THEN
|
||
INSERT INTO alg_ruimte (alg_verdieping_key,
|
||
alg_srtruimte_key,
|
||
alg_ruimte_nr,
|
||
alg_ruimte_omschrijving)
|
||
VALUES (v_verdieping_key,
|
||
1,
|
||
'_',
|
||
'_')
|
||
RETURNING alg_ruimte_key
|
||
INTO v_ruimte_key;
|
||
END;
|
||
END IF;
|
||
END LOOP;
|
||
|
||
fac_update_ins (p_import_key);
|
||
|
||
FOR rec IN c_insp
|
||
LOOP
|
||
-- pas de binding van de objecttypes aan zodat we alleen aan ruimten kunnen koppelen.
|
||
UPDATE ins_srtdeel sd
|
||
SET ins_srtdeel_binding = 1 -- alleen aan ruimte te koppelen
|
||
WHERE ins_srtdeel_key = rec.ins_srtdeel_key;
|
||
|
||
BEGIN
|
||
SELECT ins_srtcontrole_key
|
||
INTO v_srtcontrole_key
|
||
FROM ins_srtcontrole sc
|
||
WHERE sc.ins_srtcontrole_niveau = 'S'
|
||
AND sc.ins_srtinstallatie_key = rec.ins_srtdeel_key;
|
||
EXCEPTION
|
||
WHEN NO_DATA_FOUND
|
||
THEN
|
||
INSERT INTO ins_srtcontrole (ins_srtinstallatie_key,
|
||
ins_srtcontrole_niveau,
|
||
ins_srtcontrole_omschrijving,
|
||
ins_srtcontrole_periode,
|
||
ins_srtcontrole_eenheid,
|
||
ins_srtcontrole_mode,
|
||
ctr_discipline_key)
|
||
VALUES (rec.ins_srtdeel_key,
|
||
'S',
|
||
rec.ins_srtdeel_omschrijving,
|
||
0,
|
||
0,
|
||
0,
|
||
181)
|
||
RETURNING ins_srtcontrole_key INTO v_srtcontrole_key;
|
||
END;
|
||
|
||
BEGIN
|
||
-- Kijk of het kenmerk bijlage al bestaat
|
||
SELECT ins_kenmerk_key
|
||
INTO v_kenmerk_key
|
||
FROM ins_kenmerk
|
||
WHERE ins_srtkenmerk_key = 21 -- bijlage
|
||
AND ins_srtinstallatie_key = v_srtcontrole_key
|
||
AND ins_kenmerk_niveau = 'C'
|
||
AND ins_kenmerk_bewerkniveau = 'D'
|
||
AND ins_kenmerk_verwijder IS NULL;
|
||
EXCEPTION WHEN NO_DATA_FOUND
|
||
THEN
|
||
INSERT INTO ins_kenmerk (ins_srtkenmerk_key,
|
||
ins_srtinstallatie_key,
|
||
ins_kenmerk_niveau,
|
||
ins_kenmerk_bewerkniveau,
|
||
ins_kenmerk_groep,
|
||
ins_kenmerk_volgnummer)
|
||
VALUES (21,
|
||
v_srtcontrole_key,
|
||
'C',
|
||
'D',
|
||
0,
|
||
100);
|
||
END;
|
||
END LOOP;
|
||
|
||
FOR rec IN c
|
||
LOOP
|
||
BEGIN
|
||
SELECT sdg.ins_deel_key, sdg.ins_srtdeel_key
|
||
INTO v_deel_key, v_srtdeel_key
|
||
FROM ins_v_deel_gegevens sdg, alg_locatie l, ins_srtdeel sd
|
||
WHERE sdg.alg_locatie_key = l.alg_locatie_key
|
||
AND sdg.ins_srtdeel_key = sd.ins_srtdeel_key
|
||
AND UPPER (sdg.ins_discipline_omschrijving) =
|
||
UPPER (TRIM (rec.ins_discipline_omschrijving))
|
||
AND sdg.ins_srtgroep_upper =
|
||
UPPER (TRIM (rec.ins_srtgroep_omschrijving))
|
||
AND sd.ins_srtdeel_code_upper = UPPER (TRIM (rec.ins_srtdeel_code))
|
||
AND UPPER(l.alg_locatie_code) = UPPER(rec.alg_locatie_code)
|
||
AND UPPER (sdg.ins_deel_omschrijving) =
|
||
UPPER (TRIM (rec.ins_deel_omschrijving));
|
||
|
||
BEGIN
|
||
SELECT ins_srtcontrole_key
|
||
INTO v_srtcontrole_key
|
||
FROM ins_srtcontrole sc
|
||
WHERE sc.ins_srtcontrole_niveau = 'S'
|
||
AND sc.ins_srtinstallatie_key = v_srtdeel_key
|
||
AND UPPER (sc.ins_srtcontrole_omschrijving) =
|
||
UPPER (TRIM (rec.ins_srtdeel_omschrijving));
|
||
|
||
SELECT ins_srtcontroledl_xcp_key
|
||
INTO v_srtcontroledl_xcp_key
|
||
FROM ins_srtcontroledl_xcp
|
||
WHERE ins_deel_key = v_deel_key
|
||
AND ins_srtcontrole_key = v_srtcontrole_key;
|
||
|
||
UPDATE ins_srtcontroledl_xcp
|
||
SET ins_srtcontroledl_xcp_bits =
|
||
asdl.get_bits_value (rec.ins_kenmerkwaarde11,
|
||
rec.ins_kenmerkwaarde13,
|
||
rec.ins_kenmerkwaarde12),
|
||
ins_srtcontroledl_xcp_periode = rec.ins_kenmerkwaarde10,
|
||
ins_srtcontroledl_xcp_eenheid = rec.ins_kenmerkwaarde11,
|
||
ins_srtcontroledl_xcp_groep = rec.ins_kenmerkwaarde7
|
||
WHERE ins_srtcontroledl_xcp_key = v_srtcontroledl_xcp_key;
|
||
EXCEPTION
|
||
WHEN NO_DATA_FOUND
|
||
THEN
|
||
INSERT INTO ins_srtcontroledl_xcp (ins_deel_key,
|
||
ins_srtcontrole_key,
|
||
ins_srtcontroledl_xcp_bits,
|
||
ins_srtcontroledl_xcp_periode,
|
||
ins_srtcontroledl_xcp_eenheid,
|
||
ins_srtcontroledl_xcp_groep)
|
||
VALUES (v_deel_key,
|
||
v_srtcontrole_key,
|
||
asdl.get_bits_value (rec.ins_kenmerkwaarde11,
|
||
rec.ins_kenmerkwaarde13,
|
||
rec.ins_kenmerkwaarde12),
|
||
rec.ins_kenmerkwaarde10,
|
||
rec.ins_kenmerkwaarde11,
|
||
rec.ins_kenmerkwaarde7);
|
||
END;
|
||
EXCEPTION WHEN OTHERS THEN
|
||
fac.imp_writelog (p_import_key, 'E', 'Niet gelukt om schoonmaakactie toe te voegen',
|
||
'alg_locatie_code: ' || rec.alg_locatie_code || ' - ' ||
|
||
'ins_srtdeel_code: ' || rec.ins_srtdeel_code || ' - ' ||
|
||
'ins_srtgroep_omschrijving: ' || rec.ins_srtgroep_omschrijving || ' - ' ||
|
||
'ins_discipline_omschrijving: ' || rec.ins_discipline_omschrijving);
|
||
END;
|
||
END LOOP;
|
||
|
||
COMMIT;
|
||
END;
|
||
/
|
||
|
||
|
||
--
|
||
-- Export FREEZE (iedere eerste dag van de maand
|
||
--
|
||
|
||
CREATE OR REPLACE PROCEDURE asdl_export_schoonmaak_freeze (
|
||
p_applname IN VARCHAR2,
|
||
p_applrun IN VARCHAR2,
|
||
p_filedir IN VARCHAR2,
|
||
p_filename IN VARCHAR2
|
||
)
|
||
AS
|
||
BEGIN
|
||
INSERT INTO asdl_schoonmaak_freeze (freeze_datum,
|
||
freeze_q,
|
||
ins_discipline_omschrijving,
|
||
ins_srtgroep_omschrijving,
|
||
ins_srtdeel_code,
|
||
ins_srtdeel_omschrijving,
|
||
ins_deel_omschrijving,
|
||
alg_locatie_code,
|
||
alg_locatie_omschrijving,
|
||
perceel,
|
||
frequentie,
|
||
oppervlakte,
|
||
vloersoort,
|
||
dagen,
|
||
route,
|
||
uitvoeringsmoment,
|
||
afwijkingen,
|
||
ins_deel_key)
|
||
SELECT SYSDATE,
|
||
TO_CHAR(sysdate, 'YYYYQ'),
|
||
disciplineomschrijving,
|
||
groepsoortomschrijving,
|
||
objectsoortcode,
|
||
objectsoortomschrijving,
|
||
objectomschrijving,
|
||
locatiecode,
|
||
locatie,
|
||
district,
|
||
frequentie,
|
||
oppervlakte,
|
||
vloersoort,
|
||
dagen,
|
||
route,
|
||
uitvoeringsmoment,
|
||
afwijkingen,
|
||
ins_deel_key
|
||
FROM asdl_v_rap_importsheet
|
||
WHERE disciplineomschrijving LIKE '%NS%';
|
||
COMMIT;
|
||
END;
|
||
/
|
||
|
||
|
||
CREATE OR REPLACE PROCEDURE asdl_export_daily_task (
|
||
p_applname IN VARCHAR2,
|
||
p_applrun IN VARCHAR2,
|
||
p_filedir IN VARCHAR2,
|
||
p_filename IN VARCHAR2
|
||
)
|
||
AS
|
||
|
||
CURSOR c
|
||
IS
|
||
SELECT m.mld_melding_key
|
||
FROM mld_melding m, mld_stdmelding sm
|
||
WHERE mld_melding_status = 4 -- geaccepteerd dus in behandeing
|
||
AND m.mld_stdmelding_key = sm.mld_stdmelding_key
|
||
AND sm.mld_ins_discipline_key = 241;
|
||
|
||
BEGIN
|
||
FOR rec in c
|
||
LOOP
|
||
BEGIN
|
||
-- nu de status op afgemeld zetten.
|
||
mld.setmeldingstatus(rec.mld_melding_key, 5, NULL);
|
||
END;
|
||
END LOOP;
|
||
|
||
BEGIN ASDL_EXPORT_GLASBON_MELDING('GLASBON_MELDING',SYSDATE,'-1',''); END;
|
||
|
||
END;
|
||
/
|
||
|
||
CREATE OR REPLACE VIEW asdl_v_rap_locatie_mismatch(alg_locatie_code, alg_locatie_omschrijving)
|
||
AS
|
||
SELECT DISTINCT locatie, locatieoms
|
||
FROM (
|
||
SELECT SUBSTR(fac_imp_file_line,
|
||
INSTR(fac_imp_file_line, ';', 1, 3)+1,
|
||
INSTR(fac_imp_file_line, ';', 1, 4)- INSTR(fac_imp_file_line, ';', 1, 3)-1) locatie,
|
||
SUBSTR(fac_imp_file_line,
|
||
INSTR(fac_imp_file_line, ';', 1, 4)+1,
|
||
INSTR(fac_imp_file_line, ';', 1, 5)- INSTR(fac_imp_file_line, ';', 1, 4)-1) locatieoms
|
||
FROM fac_imp_file f, fac_import i
|
||
WHERE f.fac_import_key = i.fac_import_key
|
||
AND fac_import_app_key = 81) im
|
||
WHERE SUBSTR(im.locatie, 1, 6) NOT IN (SELECT alg_locatie_code
|
||
FROM alg_locatie
|
||
WHERE alg_locatie_verwijder IS NULL);
|
||
|
||
CREATE OR REPLACE VIEW asdl_v_rap_mi_glas
|
||
(
|
||
mld_melding_key,
|
||
prioriteit,
|
||
nummer,
|
||
datum,
|
||
tijd,
|
||
district,
|
||
plaats,
|
||
onderwerp,
|
||
vakgroep,
|
||
melding,
|
||
omschrijving,
|
||
afhandeling,
|
||
behandelaar,
|
||
melder,
|
||
status,
|
||
datum_afgemeld_afgewezen,
|
||
tijd_afgemeld_afgewezen,
|
||
naam_afmelden_afwijzen,
|
||
datum_geaccepteerd,
|
||
tijd_geaccepteerd,
|
||
naam_accepteren,
|
||
notitie,
|
||
organisatie,
|
||
kostenplaats,
|
||
stationsmanager,
|
||
uitvoerdatum,
|
||
geplande_uitvoeringsweek,
|
||
uitvoerder
|
||
)
|
||
AS
|
||
SELECT mld_melding_key,
|
||
DECODE (mld_melding_spoed,
|
||
3, lcl.l ('lcl_mld_urg_normaal'),
|
||
1, lcl.l ('lcl_mld_urg_kritiek'),
|
||
2, lcl.l ('lcl_mld_urg_hoog'),
|
||
4, lcl.l ('lcl_mld_urg_laag'))
|
||
prioriteit,
|
||
sd.ins_srtdiscipline_prefix || m.mld_melding_key nummer,
|
||
mld_melding_datum datum,
|
||
mld_melding_datum tijd,
|
||
alg_district_omschrijving district,
|
||
alg_locatie_code || ' (' || alg_locatie_omschrijving || ')' plaats,
|
||
mld_melding_onderwerp onderwerp,
|
||
ins_discipline_omschrijving vakgroep,
|
||
mld_stdmelding_omschrijving melding,
|
||
mld_melding_omschrijving omschrijving,
|
||
mld_melding_opmerking afhandeling,
|
||
pfb.prs_perslid_naam_full behandelaar,
|
||
pfm.prs_perslid_naam_full melder,
|
||
st.mld_statuses_omschrijving status,
|
||
mafm.fac_tracking_datum,
|
||
mafm.fac_tracking_datum,
|
||
mafm.prs_perslid_naam_full,
|
||
(SELECT MAX (fac_tracking_datum)
|
||
FROM fac_tracking ft
|
||
WHERE fac_srtnotificatie_key = 37
|
||
AND m.mld_melding_key = ft.fac_tracking_refkey)
|
||
accept_datum,
|
||
(SELECT MAX (fac_tracking_datum)
|
||
FROM fac_tracking ft
|
||
WHERE fac_srtnotificatie_key = 37
|
||
AND m.mld_melding_key = ft.fac_tracking_refkey)
|
||
accept_datum,
|
||
(SELECT prs_perslid_naam_full
|
||
FROM fac_tracking ft, prs_v_perslid_fullnames_all p
|
||
WHERE fac_srtnotificatie_key = 37
|
||
AND p.prs_perslid_key = ft.prs_perslid_key
|
||
AND m.mld_melding_key = ft.fac_tracking_refkey
|
||
AND ft.fac_tracking_key =
|
||
( SELECT MAX (fac_tracking_key)
|
||
FROM fac_tracking
|
||
WHERE fac_srtnotificatie_key = 37
|
||
AND ft.fac_tracking_refkey =
|
||
m.mld_melding_key
|
||
GROUP BY mld_melding_key))
|
||
accepteur,
|
||
(SELECT mld_melding_note_omschrijving
|
||
FROM mld_melding_note mn
|
||
WHERE mn.mld_melding_key = m.mld_melding_key
|
||
AND mn.mld_melding_note_key =
|
||
(SELECT MAX (mld_melding_note_key)
|
||
FROM mld_melding_note mn
|
||
WHERE mn.mld_melding_key = m.mld_melding_key))
|
||
notitie,
|
||
(SELECT prs_afdeling_naam
|
||
FROM prs_v_afdeling d
|
||
WHERE p.prs_afdeling_key = d.prs_afdeling_key)
|
||
organisatie,
|
||
(SELECT prs_kostenplaats_omschrijving
|
||
FROM prs_kostenplaats k
|
||
WHERE k.prs_kostenplaats_key = m.prs_kostenplaats_key)
|
||
kostenplaats,
|
||
(SELECT prs_perslid_naam_full
|
||
FROM mld_kenmerkmelding mk,
|
||
mld_kenmerk k,
|
||
asdl_v_list_locatiebeheerder lb
|
||
WHERE mk.mld_kenmerk_key = k.mld_kenmerk_key
|
||
AND k.mld_srtkenmerk_key = 121
|
||
AND mld_kenmerkmelding_waarde = TO_CHAR (prs_perslid_key)
|
||
AND mk.mld_melding_key = m.mld_melding_key)
|
||
stationsmanager,
|
||
(SELECT TO_DATE (mk.mld_kenmerkmelding_waarde, 'DD-MM-YYYY')
|
||
FROM mld_kenmerkmelding mk, mld_kenmerk k
|
||
WHERE mk.mld_kenmerk_key = k.mld_kenmerk_key
|
||
AND k.mld_srtkenmerk_key = 122
|
||
AND m.mld_melding_key = mk.mld_melding_key)
|
||
uitvoerdatum,
|
||
(SELECT mld_kenmerkmelding_waarde
|
||
FROM mld_kenmerkmelding mk, mld_kenmerk k
|
||
WHERE mk.mld_kenmerk_key = k.mld_kenmerk_key
|
||
AND k.mld_srtkenmerk_key = 161
|
||
AND m.mld_melding_key = mk.mld_melding_key)
|
||
geplande_uitvoeringsweek,
|
||
CASE
|
||
WHEN (SELECT mld_kenmerkmelding_waarde
|
||
FROM mld_kenmerkmelding mk, mld_kenmerk k
|
||
WHERE mk.mld_kenmerk_key = k.mld_kenmerk_key
|
||
AND k.mld_srtkenmerk_key = 201
|
||
AND m.mld_melding_key = mk.mld_melding_key) IS NOT NULL
|
||
THEN
|
||
(SELECT f.fac_usrdata_omschr
|
||
FROM fac_usrdata f,
|
||
(SELECT mk.mld_kenmerkmelding_waarde waarde,
|
||
mk.mld_melding_key sleutel
|
||
FROM mld_kenmerkmelding mk, mld_kenmerk k
|
||
WHERE mk.mld_kenmerk_key =
|
||
k.mld_kenmerk_key
|
||
AND k.mld_srtkenmerk_key = 201) sub
|
||
WHERE f.fac_usrdata_key = fac.safe_to_number(sub.waarde)
|
||
AND m.mld_melding_key = sub.sleutel)
|
||
ELSE
|
||
(SELECT mld_kenmerkmelding_waarde
|
||
FROM mld_kenmerkmelding mk, mld_kenmerk k
|
||
WHERE mk.mld_kenmerk_key = k.mld_kenmerk_key
|
||
AND k.mld_srtkenmerk_key = 141
|
||
AND m.mld_melding_key = mk.mld_melding_key)
|
||
END
|
||
uitvoerder
|
||
FROM mld_melding m,
|
||
mld_stdmelding std,
|
||
mld_discipline md,
|
||
ins_srtdiscipline sd,
|
||
alg_locatie l,
|
||
alg_district d,
|
||
prs_v_perslid_fullnames_all pfb,
|
||
prs_v_perslid_fullnames_all pfm,
|
||
mld_statuses st,
|
||
prs_perslid p,
|
||
(SELECT fac_tracking_datum, fac_tracking_refkey, prs_perslid_naam_full
|
||
FROM fac_tracking ft, prs_v_perslid_fullnames_all pft
|
||
WHERE fac_srtnotificatie_key IN (38, 44)
|
||
AND ft.prs_perslid_key = pft.prs_perslid_key) mafm
|
||
WHERE m.mld_stdmelding_key = std.mld_stdmelding_key
|
||
AND std.mld_ins_discipline_key = md.ins_discipline_key
|
||
AND md.ins_srtdiscipline_key = sd.ins_srtdiscipline_key
|
||
AND m.mld_alg_locatie_key = l.alg_locatie_key(+)
|
||
AND l.alg_district_key = d.alg_district_key(+)
|
||
AND m.mld_melding_behandelaar_key = pfb.prs_perslid_key(+)
|
||
AND m.prs_perslid_key = p.prs_perslid_key
|
||
AND p.prs_perslid_key = pfm.prs_perslid_key
|
||
AND st.mld_statuses_key = m.mld_melding_status
|
||
AND m.mld_melding_key = mafm.fac_tracking_refkey(+)
|
||
AND sd.ins_srtdiscipline_key = 141;
|
||
|
||
CREATE OR REPLACE PROCEDURE ASDL_IMPORT_GLASBON (p_import_key IN NUMBER)
|
||
IS
|
||
c_fielddelimitor VARCHAR2 (1) := ';';
|
||
v_newline VARCHAR2 (1000);
|
||
v_header 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 NUMBER :=1;
|
||
v_count_melding NUMBER :=1;
|
||
v_count_alglocatie NUMBER :=1;
|
||
v_count_weeknr NUMBER :=1;
|
||
v_count_stationsmanager NUMBER :=1;
|
||
v_count_uitvoerder 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_stationsmanager_key VARCHAR (256);
|
||
v_stationsmanager VARCHAR (256);
|
||
v_uitvoerjaar VARCHAR (256);
|
||
v_uitvoerweek VARCHAR (256);
|
||
v_uitvoermaand VARCHAR (256);
|
||
v_uitvoerder VARCHAR (256);
|
||
v_uitvoerdernaam VARCHAR(256);
|
||
v_serviceordernr VARCHAR (256);
|
||
v_onderwerp VARCHAR (256);
|
||
v_omschrijving VARCHAR (256);
|
||
v_datum_melding VARCHAR (256);
|
||
v_meldingnr VARCHAR (256);
|
||
|
||
CURSOR c
|
||
IS
|
||
SELECT *
|
||
FROM fac_imp_file
|
||
WHERE fac_import_key = p_import_key
|
||
ORDER BY fac_imp_file_index;
|
||
|
||
CURSOR l
|
||
IS
|
||
SELECT *
|
||
FROM alg_locatie;
|
||
|
||
BEGIN
|
||
DELETE FROM asdl_imp_glas;
|
||
COMMIT;
|
||
|
||
v_count_tot := 0;
|
||
v_count_import := 0;
|
||
header_is_valid := 0;
|
||
|
||
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;
|
||
v_count := 0;
|
||
|
||
-- 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_stationsmanager_key); -- Key Stationsmanager
|
||
fac.imp_getfield (v_newline, c_fielddelimitor, v_stationsmanager); -- Stationsmanager
|
||
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_uitvoerder); -- Uitvoerder
|
||
fac.imp_getfield (v_newline, c_fielddelimitor, v_uitvoerdernaam); -- Uitvoerdernaam
|
||
fac.imp_getfield (v_newline, c_fielddelimitor, v_serviceordernr); -- Nummer serviceorder
|
||
fac.imp_getfield (v_newline, c_fielddelimitor, v_onderwerp); -- Onderwerp
|
||
fac.imp_getfield (v_newline, c_fielddelimitor, v_omschrijving); -- Omschrijving
|
||
|
||
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_stationsmanager_key) = 'SMNR'
|
||
AND UPPER (v_stationsmanager) = 'STATIONSMANAGER'
|
||
AND UPPER (v_uitvoerjaar) = 'UITVOERJAAR'
|
||
AND UPPER (v_uitvoerweek) = 'UITVOERWEEK'
|
||
AND UPPER (v_uitvoerder) = 'UITVOERDER'
|
||
AND UPPER (v_uitvoerdernaam) = 'UITVOERDERNAAM'
|
||
AND UPPER (v_serviceordernr) = 'SERVICEORDERNUMMER' --Lengte max 50
|
||
AND UPPER (v_onderwerp) = 'ONDERWERP' --Lengte max 80
|
||
AND UPPER (v_omschrijving) = 'OMSCHRIJVING' --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_ins_discipline_key = 241; -- Vakgroep GL-Glasbewassing
|
||
|
||
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 locatie (postcode) wel aanwezig is
|
||
SELECT COUNT ( * )
|
||
INTO v_count_alglocatie
|
||
FROM alg_locatie l
|
||
WHERE l.alg_locatie_code = v_alg_locatie_code;
|
||
|
||
IF v_count_alglocatie = 0
|
||
THEN v_ongeldig := 1;
|
||
fac.imp_writelog (
|
||
p_import_key,
|
||
'W',
|
||
v_aanduiding || 'Locatie (postcode) bestaat niet',
|
||
'Melding wordt niet ingelezen!');
|
||
END IF;
|
||
|
||
--Controle of de opgegeven stationsmanager wel aanwezig is
|
||
SELECT COUNT ( * )
|
||
INTO v_count_stationsmanager
|
||
FROM asdl_v_list_locatiebeheerder lb
|
||
WHERE lb.prs_perslid_key = v_stationsmanager_key
|
||
AND lb.prs_perslid_verwijder IS NULL;
|
||
|
||
IF v_count_stationsmanager = 0
|
||
THEN v_ongeldig := 1;
|
||
fac.imp_writelog (
|
||
p_import_key,
|
||
'W',
|
||
v_aanduiding || 'Stationsmanager bestaat niet',
|
||
'Melding wordt niet ingelezen!');
|
||
END IF;
|
||
|
||
--Controle of de opgegeven uitvoerder wel aanwezig is
|
||
SELECT COUNT ( * )
|
||
INTO v_count_uitvoerder
|
||
FROM fac_usrdata uv
|
||
WHERE uv.fac_usrdata_key = v_uitvoerder
|
||
AND uv.fac_usrtab_key = 21
|
||
AND uv.fac_usrdata_verwijder IS NULL;
|
||
|
||
|
||
IF v_count_uitvoerder = 0
|
||
THEN v_ongeldig := 1;
|
||
fac.imp_writelog (
|
||
p_import_key,
|
||
'W',
|
||
v_aanduiding || 'Uitvoerder bestaat niet',
|
||
'Melding wordt niet ingelezen!');
|
||
END IF;
|
||
|
||
--Controle of de melding al is aangemaakt.
|
||
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 in volgende of voorgaande weken',
|
||
'Melding wordt niet ingelezen!');
|
||
END IF;
|
||
|
||
IF LENGTH (v_serviceordernr) > 50
|
||
THEN
|
||
v_serviceordernr := SUBSTR (v_serviceordernr, 1, 50);
|
||
fac.imp_writelog (
|
||
p_import_key,
|
||
'W',
|
||
v_aanduiding || 'Nummer serviceorder te lang',
|
||
'Nummer serviceorder wordt afgebroken tot ['
|
||
|| v_serviceordernr
|
||
|| ']');
|
||
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_onderwerp := 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;
|
||
|
||
|
||
-- Insert geformatteerde import record
|
||
IF header_is_valid = 1
|
||
AND v_ongeldig = 0
|
||
THEN
|
||
BEGIN
|
||
v_errorhint :=
|
||
'Fout bij toevoegen regel aan importtabel ASDL_IMP_GLAS';
|
||
|
||
INSERT INTO ASDL_IMP_GLAS (
|
||
fac_import_key,
|
||
fac_import_index,
|
||
fac_import_datum,
|
||
mld_stdmelding_key,
|
||
mld_stdmelding_oms,
|
||
alg_locatie_code,
|
||
alg_locatie_oms,
|
||
stationsmanager_key,
|
||
stationsmanager,
|
||
uitvoerdatum,
|
||
uitvoerweek,
|
||
uitvoermaand,
|
||
uitvoerjaar,
|
||
uitvoerder,
|
||
serviceordernr,
|
||
onderwerp,
|
||
omschrijving)
|
||
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,
|
||
TO_NUMBER(v_stationsmanager_key),
|
||
v_stationsmanager,
|
||
NEXT_DAY(TO_DATE('04-jan-' || v_uitvoerjaar, 'dd-mm-yyyy' ) + (v_uitvoerweek-2)*7, 'maan'),
|
||
v_uitvoerweek,
|
||
v_uitvoermaand,
|
||
v_uitvoerjaar,
|
||
TO_NUMBER(v_uitvoerder),
|
||
v_serviceordernr,
|
||
v_onderwerp,
|
||
v_omschrijving);
|
||
|
||
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',
|
||
'GLASBON/#ingelezen importregels: '
|
||
|| TO_CHAR (v_count_tot),
|
||
''
|
||
);
|
||
fac.imp_writelog (
|
||
p_import_key,
|
||
'S',
|
||
'GLASBON/#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 GLASBON afgebroken!');
|
||
END ASDL_IMPORT_GLASBON;
|
||
/
|
||
|
||
|
||
CREATE OR REPLACE PROCEDURE ASDL_UPDATE_GLASBON (p_import_key IN NUMBER)
|
||
IS
|
||
|
||
BEGIN
|
||
|
||
DELETE FROM asdl_imp_glas2
|
||
WHERE asdl_imp_glas2.mld_melding_key IS NULL;
|
||
COMMIT;
|
||
|
||
INSERT INTO asdl_imp_glas2 (
|
||
fac_import_key,
|
||
fac_import_index,
|
||
fac_import_datum,
|
||
mld_stdmelding_key,
|
||
mld_stdmelding_oms,
|
||
alg_locatie_key,
|
||
alg_locatie_oms,
|
||
stationsmanager_key,
|
||
stationsmanager,
|
||
uitvoerdatum,
|
||
uitvoerweek,
|
||
uitvoermaand,
|
||
uitvoerjaar,
|
||
uitvoerder,
|
||
serviceordernr,
|
||
onderwerp,
|
||
omschrijving,
|
||
mld_melding_key)
|
||
SELECT fac_import_key,
|
||
fac_import_index,
|
||
fac_import_datum,
|
||
mld_stdmelding_key,
|
||
mld_stdmelding_oms,
|
||
l.alg_locatie_key,
|
||
alg_locatie_oms,
|
||
stationsmanager_key,
|
||
stationsmanager,
|
||
uitvoerdatum,
|
||
uitvoerweek,
|
||
uitvoermaand,
|
||
uitvoerjaar,
|
||
uitvoerder,
|
||
serviceordernr,
|
||
onderwerp,
|
||
omschrijving,
|
||
mld_melding_key
|
||
FROM asdl_imp_glas imp, alg_locatie l
|
||
WHERE l.alg_locatie_code = imp.alg_locatie_code;
|
||
|
||
END;
|
||
/
|
||
|
||
|
||
|
||
CREATE OR REPLACE PROCEDURE ASDL_EXPORT_GLASBON_MELDING
|
||
(
|
||
p_applname IN VARCHAR2,
|
||
p_applrun IN VARCHAR2,
|
||
p_filedir IN VARCHAR2,
|
||
p_filename IN VARCHAR2
|
||
)
|
||
|
||
AS
|
||
|
||
CURSOR cmld
|
||
IS
|
||
SELECT *
|
||
FROM asdl_imp_glas2
|
||
WHERE TRUNC(TO_DATE(uitvoerdatum)) <= SYSDATE+7
|
||
AND mld_melding_key IS NULL;
|
||
|
||
v_fac_import_key NUMBER(10);
|
||
v_fac_import_index NUMBER(10);
|
||
v_fac_import_datum DATE;
|
||
v_mld_melding_key NUMBER(10);
|
||
v_mld_stdmelding_key NUMBER(10);
|
||
v_mld_melding_datum DATE;
|
||
v_mld_error VARCHAR(256);
|
||
|
||
BEGIN
|
||
|
||
FOR recmld IN cmld
|
||
LOOP
|
||
BEGIN
|
||
|
||
INSERT INTO mld_melding (prs_perslid_key,
|
||
mld_melding_module,
|
||
mld_meldbron_key,
|
||
mld_alg_locatie_key,
|
||
mld_melding_datum,
|
||
mld_melding_omschrijving,
|
||
mld_stdmelding_key,
|
||
mld_melding_einddatum,
|
||
mld_melding_status,
|
||
mld_melding_spoed,
|
||
mld_melding_onderwerp)
|
||
VALUES (3,
|
||
'MLD',
|
||
6, --Bron = Systeem
|
||
recmld.alg_locatie_key,
|
||
SYSDATE,
|
||
recmld.omschrijving,
|
||
recmld.mld_stdmelding_key,
|
||
SYSDATE + 7,
|
||
2, --Status = Nieuw
|
||
3, --Prioriteit = Normaal
|
||
recmld.onderwerp)
|
||
RETURNING mld_melding_key, mld_stdmelding_key, mld_melding_datum INTO v_mld_melding_key, v_mld_stdmelding_key, v_mld_melding_datum;
|
||
|
||
INSERT INTO mld_kenmerkmelding
|
||
(mld_melding_key,
|
||
mld_kenmerk_key,
|
||
mld_kenmerkmelding_waarde)
|
||
SELECT v_mld_melding_key,
|
||
k.mld_kenmerk_key,
|
||
recmld.stationsmanager_key -- Waarde Stationsmanager uit import-tabel
|
||
FROM mld_stdmelding s, mld_kenmerk k, mld_srtkenmerk sk
|
||
WHERE k.mld_stdmelding_key = s.mld_stdmelding_key
|
||
AND k.mld_stdmelding_key = v_mld_stdmelding_key
|
||
AND k.mld_srtkenmerk_key = sk.mld_srtkenmerk_key
|
||
AND s.mld_ins_discipline_key = 241 -- Discipline Glasbewassing
|
||
AND mld_kenmerk_verwijder IS NULL
|
||
AND sk.mld_srtkenmerk_key = 121; -- Kenmerksoort Stationsmanager
|
||
|
||
INSERT INTO mld_kenmerkmelding
|
||
(mld_melding_key,
|
||
mld_kenmerk_key,
|
||
mld_kenmerkmelding_waarde)
|
||
SELECT v_mld_melding_key,
|
||
k.mld_kenmerk_key,
|
||
TO_CHAR(recmld.uitvoerdatum,'DD-MM-YYYY') -- Waarde Uitvoerdatum uit import-tabel
|
||
FROM mld_stdmelding s, mld_kenmerk k, mld_srtkenmerk sk
|
||
WHERE k.mld_stdmelding_key = s.mld_stdmelding_key
|
||
AND k.mld_stdmelding_key = v_mld_stdmelding_key
|
||
AND k.mld_srtkenmerk_key = sk.mld_srtkenmerk_key
|
||
AND s.mld_ins_discipline_key = 241 -- Discipline Glasbewassing
|
||
AND mld_kenmerk_verwijder IS NULL
|
||
AND sk.mld_srtkenmerk_key = 122; -- Kenmerksoort Uitvoerdatum
|
||
|
||
INSERT INTO mld_kenmerkmelding
|
||
(mld_melding_key,
|
||
mld_kenmerk_key,
|
||
mld_kenmerkmelding_waarde)
|
||
SELECT v_mld_melding_key,
|
||
k.mld_kenmerk_key,
|
||
recmld.uitvoerweek -- Waarde Uitvoerweek uit import-tabel
|
||
FROM mld_stdmelding s, mld_kenmerk k, mld_srtkenmerk sk
|
||
WHERE k.mld_stdmelding_key = s.mld_stdmelding_key
|
||
AND k.mld_stdmelding_key = v_mld_stdmelding_key
|
||
AND k.mld_srtkenmerk_key = sk.mld_srtkenmerk_key
|
||
AND s.mld_ins_discipline_key = 241 -- Discipline Glasbewassing
|
||
AND mld_kenmerk_verwijder IS NULL
|
||
AND sk.mld_srtkenmerk_key = 161; -- Kenmerksoort Uitvoerweek
|
||
|
||
INSERT INTO mld_kenmerkmelding
|
||
(mld_melding_key,
|
||
mld_kenmerk_key,
|
||
mld_kenmerkmelding_waarde)
|
||
SELECT v_mld_melding_key,
|
||
k.mld_kenmerk_key,
|
||
recmld.serviceordernr -- Waarde Nummer serviceorder uit import-tabel
|
||
FROM mld_stdmelding s, mld_kenmerk k, mld_srtkenmerk sk
|
||
WHERE k.mld_stdmelding_key = s.mld_stdmelding_key
|
||
AND k.mld_stdmelding_key = v_mld_stdmelding_key
|
||
AND k.mld_srtkenmerk_key = sk.mld_srtkenmerk_key
|
||
AND s.mld_ins_discipline_key = 241 -- Discipline Glasbewassing
|
||
AND mld_kenmerk_verwijder IS NULL
|
||
AND sk.mld_srtkenmerk_key = 181; -- Kenmerksoort Nummer serviceorder
|
||
|
||
INSERT INTO mld_kenmerkmelding
|
||
(mld_melding_key,
|
||
mld_kenmerk_key,
|
||
mld_kenmerkmelding_waarde)
|
||
SELECT v_mld_melding_key,
|
||
k.mld_kenmerk_key,
|
||
recmld.uitvoerder -- Waarde Uitvoerder uit import-tabel
|
||
FROM mld_stdmelding s, mld_kenmerk k, mld_srtkenmerk sk
|
||
WHERE k.mld_stdmelding_key = s.mld_stdmelding_key
|
||
AND k.mld_stdmelding_key = v_mld_stdmelding_key
|
||
AND k.mld_srtkenmerk_key = sk.mld_srtkenmerk_key
|
||
AND s.mld_ins_discipline_key = 241 -- Discipline Glasbewassing
|
||
AND mld_kenmerk_verwijder IS NULL
|
||
AND sk.mld_srtkenmerk_key = 201; -- Kenmerksoort Uitvoerder
|
||
|
||
INSERT INTO mld_kenmerkmelding
|
||
(mld_melding_key,
|
||
mld_kenmerk_key,
|
||
mld_kenmerkmelding_waarde)
|
||
SELECT v_mld_melding_key,
|
||
k.mld_kenmerk_key,
|
||
recmld.uitvoermaand -- Waarde Uitvoeringsmaand uit import-tabel
|
||
FROM mld_stdmelding s, mld_kenmerk k, mld_srtkenmerk sk
|
||
WHERE k.mld_stdmelding_key = s.mld_stdmelding_key
|
||
AND k.mld_stdmelding_key = v_mld_stdmelding_key
|
||
AND k.mld_srtkenmerk_key = sk.mld_srtkenmerk_key
|
||
AND s.mld_ins_discipline_key = 241 -- Discipline Glasbewassing
|
||
AND mld_kenmerk_verwijder IS NULL
|
||
AND sk.mld_srtkenmerk_key = 221; -- Kenmerksoort Uitvoeringsmaand
|
||
|
||
UPDATE asdl_imp_glas imp1
|
||
SET imp1.mld_melding_key = v_mld_melding_key,
|
||
imp1.mld_melding_datum = v_mld_melding_datum
|
||
WHERE imp1.fac_import_key = recmld.fac_import_key
|
||
AND imp1.fac_import_index = recmld.fac_import_index;
|
||
|
||
UPDATE asdl_imp_glas2 imp2
|
||
SET imp2.mld_melding_key = v_mld_melding_key,
|
||
imp2.mld_melding_datum = v_mld_melding_datum
|
||
WHERE imp2.fac_import_key = recmld.fac_import_key
|
||
AND imp2.fac_import_index = recmld.fac_import_index;
|
||
|
||
END;
|
||
END LOOP;
|
||
END;
|
||
/
|
||
|
||
|
||
CREATE OR REPLACE FORCE VIEW ASDL_V_RAP_STATBEH
|
||
(
|
||
PRS_PERSLID_KEY,
|
||
PRS_PERSLID_NAAM_FULL
|
||
)
|
||
AS
|
||
SELECT
|
||
prs_perslid_key, prs_perslid_naam_full
|
||
FROM asdl_v_list_locatiebeheerder
|
||
WHERE prs_perslid_verwijder IS NULL
|
||
ORDER BY prs_perslid_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 |