2045 lines
85 KiB
SQL
2045 lines
85 KiB
SQL
--
|
|
-- $Id$
|
|
--
|
|
-- Script containing customer specific sql statements for the FACILITOR database
|
|
|
|
DEFINE thisfile = 'impu.SQL'
|
|
DEFINE dbuser = 'IMPU'
|
|
|
|
SET ECHO ON
|
|
SET DEFINE ON
|
|
COLUMN fcltlogfile NEW_VALUE fcltlogfile NOPRINT;
|
|
COLUMN fcltcusttxt NEW_VALUE fcltcusttxt NOPRINT;
|
|
WHENEVER SQLERROR CONTINUE;
|
|
SELECT adm.getscriptspoolfile('&thisfile') AS fcltlogfile FROM DUAL;
|
|
SPOOL &fcltlogfile
|
|
WHENEVER SQLERROR EXIT;
|
|
SELECT adm.checkscriptcust('&dbuser') AS fcltcusttxt FROM DUAL;
|
|
WHENEVER SQLERROR CONTINUE;
|
|
---------------------------------------
|
|
PROMPT &fcltcusttxt
|
|
---------------------------------------
|
|
SET DEFINE OFF
|
|
|
|
------ payload begin ------
|
|
|
|
-------------------------------
|
|
--- DOMEIN-VIEWS --------------
|
|
-------------------------------
|
|
|
|
|
|
CREATE OR REPLACE VIEW impu_v_locatielijst
|
|
(
|
|
ALG_LOCATIE_KEY,
|
|
ALG_LOCATIE_OMSCHRIJVING,
|
|
ALG_LOCATIE_ADRES,
|
|
ALG_LOCATIE_VERWIJDER
|
|
)
|
|
AS
|
|
SELECT
|
|
l.alg_locatie_key,
|
|
l.alg_locatie_omschrijving,
|
|
l.alg_locatie_adres,
|
|
l.alg_locatie_verwijder
|
|
FROM
|
|
alg_locatie l
|
|
;
|
|
|
|
CREATE OR REPLACE VIEW impu_v_kostenplaatsen
|
|
(
|
|
KEY,
|
|
NR,
|
|
OMSCHRIJVING,
|
|
OMSCHRIJVING_KPG,
|
|
KOSTENPLAATS_EINDDATUM
|
|
)
|
|
AS
|
|
SELECT
|
|
kp.prs_kostenplaats_key,
|
|
kp.prs_kostenplaats_nr,
|
|
kp.prs_kostenplaats_nr || ' ' || kp.prs_kostenplaats_omschrijving
|
|
omschrijving,
|
|
kpg.prs_kostenplaatsgrp_oms,
|
|
kp.prs_kostenplaats_eind
|
|
FROM
|
|
prs_kostenplaats kp,
|
|
prs_kostenplaatsgrp kpg
|
|
WHERE
|
|
kp.prs_kostenplaatsgrp_key = kpg.prs_kostenplaatsgrp_key
|
|
AND kp.prs_kostenplaats_verwijder IS NULL
|
|
AND (kp.prs_kostenplaats_eind IS NULL OR kp.prs_kostenplaats_eind > TRUNC(SYSDATE) )
|
|
ORDER BY kpg.prs_kostenplaatsgrp_oms || ' - ' || kp.prs_kostenplaats_nr || ' ' || kp.prs_kostenplaats_omschrijving
|
|
;
|
|
|
|
-- Voor keuzelijstjes (kenmerk domein)
|
|
CREATE OR REPLACE VIEW impu_v_personenlijst
|
|
(
|
|
PRS_PERSLID_KEY,
|
|
NAAM,
|
|
PERSONEELSNUMMER,
|
|
EMAIL,
|
|
BEDRIJFSNAAM
|
|
)
|
|
AS
|
|
SELECT
|
|
p.prs_perslid_key,
|
|
CASE WHEN p.prs_perslid_tussenvoegsel IS NULL
|
|
THEN p.prs_perslid_voornaam || ' ' || p.prs_perslid_naam
|
|
ELSE p.prs_perslid_voornaam || ' ' || p.prs_perslid_tussenvoegsel || ' ' || p.prs_perslid_naam
|
|
END
|
|
naam,
|
|
p.prs_perslid_nr,
|
|
p.prs_perslid_email,
|
|
b.prs_bedrijf_naam
|
|
FROM
|
|
prs_perslid p,
|
|
prs_srtperslid sp,
|
|
prs_v_afdeling a,
|
|
prs_bedrijf b
|
|
WHERE
|
|
p.prs_afdeling_key = a.prs_afdeling_key
|
|
AND a.prs_bedrijf_key = b.prs_bedrijf_key
|
|
AND p.prs_srtperslid_key = sp.prs_srtperslid_key
|
|
AND UPPER(sp.prs_srtperslid_omschrijving) NOT IN ('TEAMACCOUNT')
|
|
AND b.prs_bedrijf_key IN (SELECT prs_link_key FROM prs_kenmerklink WHERE prs_kenmerk_key = 1040 AND prs_kenmerklink_niveau = 'B' AND prs_kenmerklink_verwijder IS NULL)
|
|
AND p.prs_perslid_verwijder IS NULL
|
|
ORDER BY p.prs_perslid_naam
|
|
;
|
|
|
|
-- Lijst van Locatiemanagers + Regiomanagers + Tijdelijke waarnemers (tbv domeinview)
|
|
CREATE OR REPLACE VIEW impu_v_personenlijst_loc
|
|
(
|
|
PRS_PERSLID_KEY,
|
|
NAAM,
|
|
PERSONEELSNUMMER,
|
|
EMAIL,
|
|
BEDRIJFSNAAM
|
|
)
|
|
AS
|
|
SELECT
|
|
p.prs_perslid_key,
|
|
CASE WHEN p.prs_perslid_tussenvoegsel IS NULL
|
|
THEN p.prs_perslid_voornaam || ' ' || p.prs_perslid_naam || ' (' || sp.prs_srtperslid_omschrijving || ')'
|
|
ELSE p.prs_perslid_voornaam || ' ' || p.prs_perslid_tussenvoegsel || ' ' || p.prs_perslid_naam || ' (' || sp.prs_srtperslid_omschrijving || ')'
|
|
END
|
|
naam,
|
|
p.prs_perslid_nr,
|
|
p.prs_perslid_email,
|
|
b.prs_bedrijf_naam
|
|
FROM
|
|
prs_perslid p,
|
|
prs_srtperslid sp,
|
|
prs_v_afdeling a,
|
|
prs_bedrijf b
|
|
WHERE
|
|
p.prs_afdeling_key = a.prs_afdeling_key
|
|
AND a.prs_bedrijf_key = b.prs_bedrijf_key
|
|
AND b.prs_bedrijf_key IN (SELECT prs_link_key FROM prs_kenmerklink WHERE prs_kenmerk_key = 1040 AND prs_kenmerklink_niveau = 'B' AND prs_kenmerklink_verwijder IS NULL)
|
|
AND p.prs_srtperslid_key = sp.prs_srtperslid_key
|
|
AND (INSTR(UPPER(sp.prs_srtperslid_omschrijving),'DIVISIEMANAGER') > 0 OR INSTR(UPPER(sp.prs_srtperslid_omschrijving),'LOCATIEMANAGER') > 0 OR INSTR(UPPER(sp.prs_srtperslid_omschrijving),'REGIOMANAGER') > 0 OR INSTR(UPPER(sp.prs_srtperslid_omschrijving),'TEAMLEIDER') > 0) -- Titels uit AFAS die meelopen in Locatiemanager-verhaal zijn: Locatiemanager + Locatiemanager IKC + Regiomanager + Teamleider
|
|
AND p.prs_perslid_verwijder IS NULL
|
|
UNION
|
|
SELECT
|
|
p.prs_perslid_key,
|
|
CASE WHEN p.prs_perslid_tussenvoegsel IS NULL
|
|
THEN p.prs_perslid_voornaam || ' ' || p.prs_perslid_naam || ' (Waarnemer - ' || sp.prs_srtperslid_omschrijving || ')'
|
|
ELSE p.prs_perslid_voornaam || ' ' || p.prs_perslid_tussenvoegsel || ' ' || p.prs_perslid_naam || ' (Waarnemer - ' || sp.prs_srtperslid_omschrijving || ')'
|
|
END
|
|
naam,
|
|
p.prs_perslid_nr,
|
|
p.prs_perslid_email,
|
|
b.prs_bedrijf_naam
|
|
FROM
|
|
prs_perslid p,
|
|
prs_srtperslid sp,
|
|
prs_v_afdeling a,
|
|
prs_bedrijf b,
|
|
prs_kenmerklink kl
|
|
WHERE
|
|
p.prs_afdeling_key = a.prs_afdeling_key
|
|
AND a.prs_bedrijf_key = b.prs_bedrijf_key
|
|
AND b.prs_bedrijf_key IN (SELECT prs_link_key FROM prs_kenmerklink WHERE prs_kenmerk_key = 1040 AND prs_kenmerklink_niveau = 'B' AND prs_kenmerklink_verwijder IS NULL)
|
|
AND p.prs_srtperslid_key = sp.prs_srtperslid_key
|
|
AND p.prs_perslid_key = kl.prs_link_key
|
|
AND kl.prs_kenmerk_key = 1021 -- kenmerk waarnemer (vinkbox)
|
|
AND kl.prs_kenmerklink_waarde = '1' AND kl.prs_kenmerklink_verwijder IS NULL
|
|
AND p.prs_perslid_verwijder IS NULL ;
|
|
|
|
-- Lijst van Locatiemanagers + Regiomanagers en de locaties waar men verantwoordelijk is (tbv personen-import)
|
|
CREATE OR REPLACE VIEW impu_v_locatiemanagers
|
|
(
|
|
PRS_PERSLID_KEY,
|
|
ALG_LOCATIE_KEY,
|
|
LOCATIEMANAGER,
|
|
LOCATIE,
|
|
PRS_PERSLID_VERWIJDER
|
|
)
|
|
AS
|
|
SELECT p.prs_perslid_key,
|
|
l.alg_locatie_key,
|
|
p.prs_perslid_naam || ' (' || p.prs_perslid_voornaam || ' ' || p.prs_perslid_tussenvoegsel || ') - ' || sp.prs_srtperslid_omschrijving
|
|
locatiemanager,
|
|
l.alg_locatie_code || ' - ' || l.alg_locatie_omschrijving
|
|
locatie,
|
|
p.prs_perslid_verwijder
|
|
FROM prs_perslid p, prs_srtperslid sp, alg_onrgoedkenmerk ok, alg_locatie l
|
|
WHERE fac.safe_to_number(ok.alg_onrgoedkenmerk_waarde) = p.prs_perslid_key
|
|
AND ok.alg_kenmerk_key IN (1016, 1018, 1180, 1200) -- locatiemanagers en Regiomanagers en locatiemanager-2 en -3
|
|
AND ok.alg_onrgoedkenmerk_verwijder IS NULL
|
|
AND ok.alg_onrgoed_niveau = 'L' AND ok.alg_onrgoed_key = l.alg_locatie_key
|
|
AND (l.alg_locatie_verwijder IS NULL OR l.alg_locatie_vervaldatum > TRUNC(SYSDATE) )
|
|
AND l.alg_locatie_verwijder IS NULL
|
|
AND (TRUNC(l.alg_locatie_vervaldatum) > TRUNC(sysdate) OR l.alg_locatie_vervaldatum IS NULL )
|
|
AND p.prs_srtperslid_key = sp.prs_srtperslid_key
|
|
AND (INSTR(UPPER(sp.prs_srtperslid_omschrijving),'DIVISIEMANAGER') > 0 OR INSTR(UPPER(sp.prs_srtperslid_omschrijving),'LOCATIEMANAGER') > 0 OR INSTR(UPPER(sp.prs_srtperslid_omschrijving),'REGIOMANAGER') > 0 OR INSTR(UPPER(sp.prs_srtperslid_omschrijving),'TEAMLEIDER') > 0) -- Titels uit AFAS die meelopen in Locatiemanager-verhaal zijn: Locatiemanager + Locatiemanager IKC + Regiomanager + Teamleider
|
|
GROUP BY p.prs_perslid_key, l.alg_locatie_key,
|
|
p.prs_perslid_naam || ' (' || p.prs_perslid_voornaam || ' ' || p.prs_perslid_tussenvoegsel || ') - ' || sp.prs_srtperslid_omschrijving,
|
|
l.alg_locatie_code || ' - ' || l.alg_locatie_omschrijving,
|
|
p.prs_perslid_verwijder
|
|
;
|
|
|
|
|
|
-- Lijst van Locatiemanagers + Regiomanagers en de Werkplekkoppeling die ze in hun persoonskaart hebben (tbv personen-import)
|
|
CREATE OR REPLACE VIEW impu_v_locatiemanagers_wp
|
|
(
|
|
PRS_PERSLID_KEY,
|
|
ALG_LOCATIE_KEY,
|
|
NAAM,
|
|
LOCATIE_WP,
|
|
PRS_WERKPLEK_KEY,
|
|
BEDRIJFSNAAM
|
|
)
|
|
AS
|
|
SELECT wp.prs_perslid_key,
|
|
onr.alg_locatie_key,
|
|
p.prs_perslid_naam_friendly,
|
|
l.alg_locatie_code || ' - ' || l.alg_locatie_omschrijving
|
|
locatie,
|
|
w.prs_werkplek_key,
|
|
v.bedrijfsnaam
|
|
FROM (
|
|
SELECT prs_perslid_key, bedrijfsnaam
|
|
FROM impu_v_personenlijst_loc
|
|
GROUP BY prs_perslid_key, bedrijfsnaam
|
|
) v,
|
|
prs_v_perslid_fullnames p, prs_perslidwerkplek wp, prs_werkplek w, alg_ruimte r, alg_v_onrgoed_boom onr, alg_locatie l
|
|
WHERE v.prs_perslid_key = p.prs_perslid_key
|
|
AND p.prs_perslid_key = wp.prs_perslid_key
|
|
AND wp.prs_werkplek_key = w.prs_werkplek_key
|
|
AND w.prs_alg_ruimte_key = r.alg_ruimte_key
|
|
AND r.alg_ruimte_key = onr.alg_ruimte_key
|
|
AND onr.alg_locatie_key = l.alg_locatie_key
|
|
ORDER BY wp.prs_perslid_key ;
|
|
|
|
-- BRONVIEW: Alle locaties met haar kostenplaats(en)
|
|
CREATE OR REPLACE VIEW impu_v_locaties_kp
|
|
(
|
|
alg_locatie_key,
|
|
alg_locatie_omschrijving,
|
|
vinkje_kdv,
|
|
vinkje_vo,
|
|
vinkje_bso,
|
|
vinkje_welzijn,
|
|
vinkje_ssc,
|
|
kostenplaats_opvangsoort,
|
|
prs_kostenplaats_key,
|
|
prs_kostenplaats_nr,
|
|
prs_kostenplaats_omschrijving,
|
|
prs_kostenplaats_eind,
|
|
prs_kostenplaats_verwijder,
|
|
locatie_status
|
|
)
|
|
AS
|
|
SELECT alg_locatie_key,
|
|
alg_locatie_omschrijving,
|
|
flx.getflex('ALG',1001, l.alg_locatie_key,'L') vinkje_kdv,
|
|
flx.getflex('ALG',1002, l.alg_locatie_key,'L') vinkje_vo,
|
|
flx.getflex('ALG',1003, l.alg_locatie_key,'L') vinkje_bso,
|
|
flx.getflex('ALG',1100, l.alg_locatie_key,'L') vinkje_welzijn,
|
|
flx.getflex('ALG',1160, l.alg_locatie_key,'L') vinkje_ssc,
|
|
'kostenplaats kdv' kostenplaats_opvangsoort,
|
|
kw.alg_onrgoedkenmerk_waarde prs_kostenplaats_key,
|
|
prs_kostenplaats_nr,
|
|
prs_kostenplaats_omschrijving,
|
|
prs_kostenplaats_eind,
|
|
prs_kostenplaats_verwijder,
|
|
CASE WHEN l.alg_locatie_vervaldatum IS NULL OR TRUNC(l.alg_locatie_vervaldatum) > TRUNC(SYSDATE)
|
|
THEN 'actueel'
|
|
ELSE 'oud'
|
|
END
|
|
locatie_status
|
|
FROM alg_locatie l, alg_onrgoedkenmerk kw, prs_kostenplaats kp
|
|
WHERE kw.alg_onrgoed_key = l.alg_locatie_key
|
|
AND fac.safe_to_number (kw.alg_onrgoedkenmerk_waarde) =
|
|
kp.prs_kostenplaats_key
|
|
AND alg_onrgoed_niveau = 'L'
|
|
AND kw.alg_kenmerk_key = 1021 -- kostenplaats-1
|
|
UNION
|
|
SELECT alg_locatie_key,
|
|
alg_locatie_omschrijving,
|
|
flx.getflex('ALG',1001, l.alg_locatie_key,'L') vinkje_kdv,
|
|
flx.getflex('ALG',1002, l.alg_locatie_key,'L') vinkje_vo,
|
|
flx.getflex('ALG',1003, l.alg_locatie_key,'L') vinkje_bso,
|
|
flx.getflex('ALG',1100, l.alg_locatie_key,'L') vinkje_welzijn,
|
|
flx.getflex('ALG',1160, l.alg_locatie_key,'L') vinkje_ssc,
|
|
'kostenplaats vo' kostenplaats_opvangsoort,
|
|
kw.alg_onrgoedkenmerk_waarde prs_kostenplaats_key,
|
|
prs_kostenplaats_nr,
|
|
prs_kostenplaats_omschrijving,
|
|
prs_kostenplaats_eind,
|
|
prs_kostenplaats_verwijder,
|
|
CASE WHEN l.alg_locatie_vervaldatum IS NULL OR TRUNC(l.alg_locatie_vervaldatum) > TRUNC(SYSDATE)
|
|
THEN 'actueel'
|
|
ELSE 'oud'
|
|
END
|
|
locatie_status
|
|
FROM alg_locatie l, alg_onrgoedkenmerk kw, prs_kostenplaats kp
|
|
WHERE kw.alg_onrgoed_key = l.alg_locatie_key
|
|
AND fac.safe_to_number (kw.alg_onrgoedkenmerk_waarde) =
|
|
kp.prs_kostenplaats_key
|
|
AND alg_onrgoed_niveau = 'L'
|
|
AND kw.alg_kenmerk_key = 1022 -- kostenplaats-2
|
|
UNION
|
|
SELECT alg_locatie_key,
|
|
alg_locatie_omschrijving,
|
|
flx.getflex('ALG',1001, l.alg_locatie_key,'L') vinkje_kdv,
|
|
flx.getflex('ALG',1002, l.alg_locatie_key,'L') vinkje_vo,
|
|
flx.getflex('ALG',1003, l.alg_locatie_key,'L') vinkje_bso,
|
|
flx.getflex('ALG',1100, l.alg_locatie_key,'L') vinkje_welzijn,
|
|
flx.getflex('ALG',1160, l.alg_locatie_key,'L') vinkje_ssc,
|
|
'kostenplaats bso' kostenplaats_opvangsoort,
|
|
kw.alg_onrgoedkenmerk_waarde prs_kostenplaats_key,
|
|
prs_kostenplaats_nr,
|
|
prs_kostenplaats_omschrijving,
|
|
prs_kostenplaats_eind,
|
|
prs_kostenplaats_verwijder,
|
|
CASE WHEN l.alg_locatie_vervaldatum IS NULL OR TRUNC(l.alg_locatie_vervaldatum) > TRUNC(SYSDATE)
|
|
THEN 'actueel'
|
|
ELSE 'oud'
|
|
END
|
|
locatie_status
|
|
FROM alg_locatie l, alg_onrgoedkenmerk kw, prs_kostenplaats kp
|
|
WHERE kw.alg_onrgoed_key = l.alg_locatie_key
|
|
AND fac.safe_to_number (kw.alg_onrgoedkenmerk_waarde) =
|
|
kp.prs_kostenplaats_key
|
|
AND alg_onrgoed_niveau = 'L'
|
|
AND kw.alg_kenmerk_key = 1023 -- kostenplaats-3
|
|
UNION
|
|
SELECT alg_locatie_key,
|
|
alg_locatie_omschrijving,
|
|
flx.getflex('ALG',1001, l.alg_locatie_key,'L') vinkje_kdv,
|
|
flx.getflex('ALG',1002, l.alg_locatie_key,'L') vinkje_vo,
|
|
flx.getflex('ALG',1003, l.alg_locatie_key,'L') vinkje_bso,
|
|
flx.getflex('ALG',1100, l.alg_locatie_key,'L') vinkje_welzijn,
|
|
flx.getflex('ALG',1160, l.alg_locatie_key,'L') vinkje_ssc,
|
|
'kostenplaats vo2' kostenplaats_opvangsoort,
|
|
kw.alg_onrgoedkenmerk_waarde prs_kostenplaats_key,
|
|
prs_kostenplaats_nr,
|
|
prs_kostenplaats_omschrijving,
|
|
prs_kostenplaats_eind,
|
|
prs_kostenplaats_verwijder,
|
|
CASE WHEN l.alg_locatie_vervaldatum IS NULL OR TRUNC(l.alg_locatie_vervaldatum) > TRUNC(SYSDATE)
|
|
THEN 'actueel'
|
|
ELSE 'oud'
|
|
END
|
|
locatie_status
|
|
FROM alg_locatie l, alg_onrgoedkenmerk kw, prs_kostenplaats kp
|
|
WHERE kw.alg_onrgoed_key = l.alg_locatie_key
|
|
AND fac.safe_to_number (kw.alg_onrgoedkenmerk_waarde) =
|
|
kp.prs_kostenplaats_key
|
|
AND alg_onrgoed_niveau = 'L'
|
|
AND kw.alg_kenmerk_key = 1080 -- kostenplaats-4
|
|
UNION
|
|
SELECT alg_locatie_key,
|
|
alg_locatie_omschrijving,
|
|
flx.getflex('ALG',1001, l.alg_locatie_key,'L') vinkje_kdv,
|
|
flx.getflex('ALG',1002, l.alg_locatie_key,'L') vinkje_vo,
|
|
flx.getflex('ALG',1003, l.alg_locatie_key,'L') vinkje_bso,
|
|
flx.getflex('ALG',1100, l.alg_locatie_key,'L') vinkje_welzijn,
|
|
flx.getflex('ALG',1160, l.alg_locatie_key,'L') vinkje_ssc,
|
|
'kostenplaats welzijn' kostenplaats_opvangsoort,
|
|
kw.alg_onrgoedkenmerk_waarde prs_kostenplaats_key,
|
|
prs_kostenplaats_nr,
|
|
prs_kostenplaats_omschrijving,
|
|
prs_kostenplaats_eind,
|
|
prs_kostenplaats_verwijder,
|
|
CASE WHEN l.alg_locatie_vervaldatum IS NULL OR TRUNC(l.alg_locatie_vervaldatum) > TRUNC(SYSDATE)
|
|
THEN 'actueel'
|
|
ELSE 'oud'
|
|
END
|
|
locatie_status
|
|
FROM alg_locatie l, alg_onrgoedkenmerk kw, prs_kostenplaats kp
|
|
WHERE kw.alg_onrgoed_key = l.alg_locatie_key
|
|
AND fac.safe_to_number (kw.alg_onrgoedkenmerk_waarde) =
|
|
kp.prs_kostenplaats_key
|
|
AND alg_onrgoed_niveau = 'L'
|
|
AND kw.alg_kenmerk_key = 1120 -- kostenplaats-4
|
|
UNION
|
|
SELECT alg_locatie_key,
|
|
alg_locatie_omschrijving,
|
|
flx.getflex('ALG',1001, l.alg_locatie_key,'L') vinkje_kdv,
|
|
flx.getflex('ALG',1002, l.alg_locatie_key,'L') vinkje_vo,
|
|
flx.getflex('ALG',1003, l.alg_locatie_key,'L') vinkje_bso,
|
|
flx.getflex('ALG',1100, l.alg_locatie_key,'L') vinkje_welzijn,
|
|
flx.getflex('ALG',1160, l.alg_locatie_key,'L') vinkje_ssc,
|
|
'kostenplaats ssc' kostenplaats_opvangsoort,
|
|
kw.alg_onrgoedkenmerk_waarde prs_kostenplaats_key,
|
|
prs_kostenplaats_nr,
|
|
prs_kostenplaats_omschrijving,
|
|
prs_kostenplaats_eind,
|
|
prs_kostenplaats_verwijder,
|
|
CASE WHEN l.alg_locatie_vervaldatum IS NULL OR TRUNC(l.alg_locatie_vervaldatum) > TRUNC(SYSDATE)
|
|
THEN 'actueel'
|
|
ELSE 'oud'
|
|
END
|
|
locatie_status
|
|
FROM alg_locatie l, alg_onrgoedkenmerk kw, prs_kostenplaats kp
|
|
WHERE kw.alg_onrgoed_key = l.alg_locatie_key
|
|
AND fac.safe_to_number (kw.alg_onrgoedkenmerk_waarde) =
|
|
kp.prs_kostenplaats_key
|
|
AND alg_onrgoed_niveau = 'L'
|
|
AND kw.alg_kenmerk_key = 1140 -- kostenplaats-5
|
|
;
|
|
|
|
|
|
CREATE OR REPLACE VIEW impu_v_ict_nummers
|
|
(
|
|
INS_DEEL_KEY,
|
|
INS_DEEL_UPPER
|
|
)
|
|
AS
|
|
SELECT
|
|
v.ins_deel_key,
|
|
v.ins_deel_upper
|
|
FROM ins_v_deel_gegevens v, ins_deel d
|
|
WHERE v.ins_discipline_key = 62 -- ICT-Nummers
|
|
AND v.ins_deel_key = d.ins_deel_key
|
|
AND d.ins_deel_verwijder IS NULL
|
|
AND (d.ins_deel_vervaldatum IS NULL OR TRUNC(d.ins_deel_vervaldatum) > TRUNC(sysdate) ) ;
|
|
|
|
|
|
CREATE OR REPLACE PROCEDURE impu_import_afasonline (p_import_key IN NUMBER)
|
|
AS
|
|
oracle_err_num NUMBER;
|
|
oracle_err_mes VARCHAR2 (200);
|
|
v_errormsg VARCHAR2 (400);
|
|
v_errorhint VARCHAR2 (400);
|
|
v_aantal_in_fclt NUMBER;
|
|
|
|
-- overige variabelen
|
|
v_prs_afdeling_key NUMBER (10);
|
|
c_prs_afdeling_key_leid NUMBER (10) := 21; -- Afdeling waaronder Locatiemanagers en Regiomanagers komen te vallen
|
|
c_prs_afdeling_key_gmk NUMBER (10) := 22; -- Algemene medewerkersafdeling GMK
|
|
c_prs_afdeling_key_akros NUMBER (10) := 1101; -- Algemene medewerkersafdeling Akros
|
|
c_prs_afdeling_key_combi NUMBER (10) := 1102; -- Algemene medewerkersafdeling Combiwel
|
|
c_prs_afdeling_key_impuls NUMBER (10) := 1141; -- Algemene medewerkersafdeling Impu
|
|
|
|
v_alg_locatie_key NUMBER (10);
|
|
v_alg_locatie_code VARCHAR2 (10);
|
|
v_alg_gebouw_key NUMBER (10);
|
|
v_alg_gebouw_code VARCHAR2 (12);
|
|
v_alg_verdieping_key NUMBER (10);
|
|
v_alg_verdieping_volgnr NUMBER (3);
|
|
v_alg_ruimte_key NUMBER (10);
|
|
v_alg_ruimte_nr VARCHAR2 (20);
|
|
|
|
|
|
CURSOR c_afd
|
|
IS
|
|
SELECT fac_imp_file_index,
|
|
prs_kenmerk1,
|
|
prs_afdeling_naam,
|
|
CASE WHEN INSTR(UPPER(prs_perslid_email), '@IMPULS.NL') > 0 THEN 'IMPULS'
|
|
WHEN INSTR(UPPER(prs_perslid_email), '@GMK.NL') > 0 THEN 'GMK'
|
|
WHEN INSTR(UPPER(prs_perslid_email), '@AKROS-AMSTERDAM.NL') > 0 THEN 'AKROS'
|
|
WHEN INSTR(UPPER(prs_perslid_email), '@COMBIWELVOORKINDEREN.NL') > 0 THEN 'COMBIWEL'
|
|
ELSE 'GMK'
|
|
END
|
|
bedrijf,
|
|
prs_srtperslid_omschrijving
|
|
FROM fac_imp_perslid
|
|
WHERE fac_import_key = p_import_key;
|
|
|
|
CURSOR c_tel
|
|
IS
|
|
SELECT p.fac_imp_file_index,
|
|
p.prs_perslid_email,
|
|
pp.prs_perslid_telefoonnr
|
|
FROM fac_imp_perslid p, prs_perslid pp
|
|
WHERE p.prs_perslid_email = pp.prs_perslid_email
|
|
AND pp.prs_perslid_telefoonnr IS NOT NULL ;
|
|
|
|
CURSOR c_loc
|
|
IS
|
|
SELECT fac_imp_file_index, prs_kenmerk5 -- kostenplaatsnr afas...
|
|
FROM fac_imp_perslid
|
|
WHERE prs_kenmerk5 IS NOT NULL
|
|
AND fac_import_key = p_import_key
|
|
ORDER BY fac_imp_file_index ;
|
|
|
|
BEGIN
|
|
-- Het aangeleverde bestand heeft de gegevens komma gescheiden ipv ;
|
|
v_errorhint := 'Delimiter goed zetten';
|
|
|
|
-- UPDATE fac_imp_file
|
|
-- SET fac_imp_file_line = REPLACE (fac_imp_file_line, ',', ';')
|
|
-- WHERE fac_import_key = p_import_key;
|
|
|
|
-- Het aangeleverde bestand heeft aanhalingstekens om de invoervelden..
|
|
UPDATE fac_imp_file
|
|
SET fac_imp_file_line = REPLACE (fac_imp_file_line, '"', '')
|
|
WHERE fac_import_key = p_import_key;
|
|
|
|
|
|
v_errorhint := 'Generieke update';
|
|
|
|
-- WORDT 2025-MRT
|
|
prs.import_perslid (
|
|
p_import_key,
|
|
'0;0;0;0;0;0;1;2;3;5;'
|
|
|| '4;0;0;0;0;0;20;6;0;8;'
|
|
|| '7;0;0;0;0;0;9;10;11;12;'
|
|
|| '1;13;14;15;16;17;18;19;20;0;'
|
|
|| '0;0;0;0;0;0',
|
|
'Kostenplaats;Achternaam;Voorvoegsel;Voorletters;Roepnaam;E-Mail_werk;Omschrijving_Functie;Medewerker;Organisatorische_eenheid_omschrijving;Kostenplaats_2;Datum_in_dienst;Datum_uit_dienst;Soort_medewerker;Soort_medewerker__Code_obv_medewerkertaal_;Organisatorische_eenheid;Leidinggevende_pers_nr;Leidinggevende_Naam;Werkgever;Naam_werkgever;Mobiel_werk');
|
|
-- AFASONLINE: "Kostenplaats";"Achternaam";"Voorvoegsel";"Voorletters";"Roepnaam";"E-Mail_werk";"Omschrijving_Functie";"Medewerker";"Organisatorische_eenheid_omschrijving";"Kostenplaats_2";"Datum_in_dienst";"Datum_uit_dienst";"Soort_medewerker";"Soort_medewerker__Code_obv_medewerkertaal_";"Organisatorische_eenheid";"Leidinggevende_pers_nr";"Leidinggevende_Naam";"Werkgever";"Naam_werkgever";"Mobiel_werk"
|
|
-- 1 (7) 2 (8) 3 (9) 4 (11) 5 (10) 6 (18) 7 (21) 8(20) 9 (27) 10 (28) 11 (29) 12 (30) 13 (32) 14 (33) 15 (34) 16 (35) 17 (36) 18 (37) 19 (38) 20 (39)
|
|
-- DEF: Kostenplaats;Achternaam;Voorvoegsel;Voorletters;Roepnaam;Mail werk;Functie;Medewerker;Organisatorische eenheid;Kostenplaats_oms;In dienst;Uit dienst;Soort medewerker;Soort_medewerker__Code_obv_medewerkertaal_;Organisatorische_eenheid;Leidinggevende_pers_nr;Leidinggevende_Naam;Werkgever;Naam_werkgever;Mobiel_werk
|
|
|
|
|
|
v_errorhint := 'Login afleiden van emailadres';
|
|
|
|
-- Loginnaam afleiden van emailadres
|
|
UPDATE fac_imp_perslid
|
|
SET prs_perslid_oslogin =
|
|
UPPER (
|
|
(SUBSTR (prs_perslid_email,
|
|
0,
|
|
INSTR (prs_perslid_email, '@') - 1)))
|
|
WHERE prs_perslid_email IS NOT NULL ;
|
|
|
|
v_errorhint := 'Uitfilteren records'; -- in afasonline-bestand zitten aantal zaken die niet mee hoeven naar Facilitor
|
|
|
|
---- functie gevuld met PROFIT dan record delete
|
|
DELETE fac_imp_perslid
|
|
WHERE UPPER (prs_srtperslid_omschrijving) IN ('PROFIT');
|
|
|
|
---- we nemen uit afas alleen de bedrijven/domeinen mee van impuls, gmk, akros en combiwel
|
|
DELETE fac_imp_perslid
|
|
WHERE (
|
|
UPPER (prs_perslid_email) NOT LIKE '%@IMPULS.NL'
|
|
AND
|
|
UPPER (prs_perslid_email) NOT LIKE '%@GMK.NL'
|
|
AND
|
|
UPPER (prs_perslid_email) NOT LIKE '%@AKROS-AMSTERDAM.NL'
|
|
AND
|
|
UPPER (prs_perslid_email) NOT LIKE '%@COMBIWELVOORKINDEREN.NL'
|
|
)
|
|
;
|
|
|
|
v_errorhint := 'Afdeling bepalen en vullen';
|
|
|
|
-- Afdeling bepalen waar persoon onder komt te vallen.
|
|
-- Voor locatiemanagers, regiomanagers, teamleider en divisiemanager, geldt dat deze altijd op 'LOCATIE_MAN' moeten komen
|
|
-- Voor de overige personen/accounts geldt:
|
|
---- De mederwerkers komen uit AFAS en hebben een kostenplaats uit AFAS. Als in Facilitor er een afdeling is aangemaakt met dit gekoppelde kostenplaats_nr dan koppelen we de persoon ook aan die afdeling.
|
|
------ indien er op de medewerker geen kostenplaats-afdeling gevonden is, dan wordt deze medewerker onder zijn bedrijf op standaard afdeling gezet: MEDEW_AKROS / MEDEW_COMBIW / MEDEW_IMPULS / MEDEW_GMK
|
|
---- De teamaccounts lopen niet via de afas-koppeling. Voor volledigheid, deze komen op eigen TEAM_code onder Eigen bedrijf
|
|
|
|
FOR rec IN c_afd
|
|
LOOP
|
|
BEGIN
|
|
v_errorhint := 'Persoon aan Afdeling koppelen';
|
|
|
|
-- Als locatie/regio-managerleider dan afdeling altijd LOCATIE (c_prs_afdeling_key_leid)
|
|
IF INSTR (UPPER (rec.prs_srtperslid_omschrijving),
|
|
'LOCATIEMANAGER') >
|
|
0
|
|
OR INSTR (UPPER (rec.prs_srtperslid_omschrijving),
|
|
'REGIOMANAGER') >
|
|
0
|
|
OR INSTR (UPPER (rec.prs_srtperslid_omschrijving),
|
|
'TEAMLEIDER') >
|
|
0
|
|
OR INSTR (UPPER (rec.prs_srtperslid_omschrijving),
|
|
'DIVISIEMANAGER') >
|
|
0
|
|
THEN
|
|
UPDATE fac_imp_perslid
|
|
SET prs_afdeling_naam =
|
|
(SELECT prs_afdeling_upper
|
|
FROM prs_afdeling
|
|
WHERE prs_afdeling_key = c_prs_afdeling_key_leid)
|
|
WHERE fac_imp_file_index = rec.fac_imp_file_index;
|
|
ELSE
|
|
SELECT MIN (a.prs_afdeling_key)
|
|
INTO v_prs_afdeling_key
|
|
FROM prs_v_afdeling a, prs_kostenplaats kp
|
|
WHERE kp.prs_kostenplaats_upper =
|
|
UPPER (rec.prs_afdeling_naam)
|
|
AND a.prs_bedrijf_key IN (SELECT prs_link_key FROM prs_kenmerklink WHERE prs_kenmerk_key = 1040 AND prs_kenmerklink_niveau = 'B' AND prs_kenmerklink_verwijder IS NULL) -- bedrijven GMK
|
|
AND a.prs_afdeling_verwijder IS NULL
|
|
AND a.niveau = 1 -- kijken alleen naar afdelingen op niveau 1
|
|
AND a.prs_kostenplaats_key = kp.prs_kostenplaats_key;
|
|
|
|
-- Als afdeling/kostenplaats uit AFAS bekend is in Facilitor dan medewerker op die afdeling zetten
|
|
IF v_prs_afdeling_key IS NOT NULL
|
|
THEN
|
|
|
|
-- op de Facilitor-kp-afdeling zetten
|
|
UPDATE fac_imp_perslid
|
|
SET prs_afdeling_naam =
|
|
(SELECT prs_afdeling_upper
|
|
FROM prs_afdeling
|
|
WHERE prs_afdeling_key = v_prs_afdeling_key)
|
|
WHERE fac_imp_file_index = rec.fac_imp_file_index;
|
|
END IF;
|
|
|
|
-- Als afdeling uit AFAS (nog) niet bekend is in Facilitor dan medewerkers GMK, AKROS, COMBIWEL op hun algemene medewerkers-afdeling zetten
|
|
IF v_prs_afdeling_key IS NULL
|
|
THEN
|
|
|
|
-- op algemene medewerkers-afdeling zetten
|
|
IF rec.bedrijf = 'GMK'
|
|
THEN
|
|
|
|
UPDATE fac_imp_perslid
|
|
SET prs_afdeling_naam =
|
|
(SELECT prs_afdeling_upper
|
|
FROM prs_afdeling
|
|
WHERE prs_afdeling_key = c_prs_afdeling_key_gmk)
|
|
WHERE fac_imp_file_index = rec.fac_imp_file_index;
|
|
|
|
END IF;
|
|
|
|
IF rec.bedrijf = 'IMPULS'
|
|
THEN
|
|
|
|
UPDATE fac_imp_perslid
|
|
SET prs_afdeling_naam =
|
|
(SELECT prs_afdeling_upper
|
|
FROM prs_afdeling
|
|
WHERE prs_afdeling_key = c_prs_afdeling_key_impuls)
|
|
WHERE fac_imp_file_index = rec.fac_imp_file_index;
|
|
|
|
END IF;
|
|
|
|
IF rec.bedrijf = 'AKROS'
|
|
THEN
|
|
|
|
UPDATE fac_imp_perslid
|
|
SET prs_afdeling_naam =
|
|
(SELECT prs_afdeling_upper
|
|
FROM prs_afdeling
|
|
WHERE prs_afdeling_key = c_prs_afdeling_key_akros)
|
|
WHERE fac_imp_file_index = rec.fac_imp_file_index;
|
|
|
|
END IF;
|
|
|
|
IF rec.bedrijf = 'COMBIWEL'
|
|
THEN
|
|
|
|
UPDATE fac_imp_perslid
|
|
SET prs_afdeling_naam =
|
|
(SELECT prs_afdeling_upper
|
|
FROM prs_afdeling
|
|
WHERE prs_afdeling_key = c_prs_afdeling_key_combi)
|
|
WHERE fac_imp_file_index = rec.fac_imp_file_index;
|
|
|
|
END IF;
|
|
|
|
END IF;
|
|
END IF;
|
|
END;
|
|
END LOOP;
|
|
|
|
FOR rec IN c_tel
|
|
LOOP
|
|
-- 2025-MAART
|
|
--- Mobiele telefoonnummers komen nu uit AFAS
|
|
--- De vaste telefoonnummers kan/mag men in Facilitor-kaart handmatig opnemen. Deze vullen we nu met import dus aan in fac_imp_perslid-tabel zodat ze niet leeg gemaakt worden met update afasonlinee
|
|
|
|
v_errorhint :=
|
|
'Telefoonnummer toevoegen aan import-tabel'
|
|
|| '-'
|
|
|| rec.prs_perslid_email;
|
|
|
|
IF rec.prs_perslid_telefoonnr IS NOT NULL
|
|
THEN
|
|
UPDATE fac_imp_perslid p
|
|
SET p.prs_perslid_telefoonnr = rec.prs_perslid_telefoonnr
|
|
WHERE p.fac_imp_file_index = rec.fac_imp_file_index ;
|
|
END IF;
|
|
|
|
END LOOP;
|
|
|
|
v_errorhint := 'Locatie bepalen en vullen';
|
|
-- Default Locatie / Standplaats bepalen voor persoon op basis AFAS-kostenplaats standplaats en de gekoppelde kostenplaatsen in de Locatiekaart
|
|
|
|
FOR rec IN c_loc
|
|
LOOP
|
|
BEGIN
|
|
|
|
v_errorhint := 'Persoon aan Locatie-Ruimte koppelen';
|
|
v_alg_locatie_key := NULL;
|
|
v_alg_gebouw_key := NULL;
|
|
v_alg_verdieping_key := NULL;
|
|
v_alg_ruimte_key := NULL;
|
|
|
|
SELECT min(alg_locatie_key)
|
|
INTO v_alg_locatie_key
|
|
FROM impu_v_locaties_kp v
|
|
WHERE UPPER(v.prs_kostenplaats_nr) = UPPER(rec.prs_kenmerk5)
|
|
AND (TRUNC(v.prs_kostenplaats_eind) > TRUNC(sysdate) OR v.prs_kostenplaats_verwijder IS NULL ) ;
|
|
|
|
IF v_alg_locatie_key IS NOT NULL THEN
|
|
|
|
-- Locatie_code ophalen
|
|
SELECT alg_locatie_code
|
|
INTO v_alg_locatie_code
|
|
FROM alg_locatie
|
|
WHERE alg_locatie_key = v_alg_locatie_key ;
|
|
|
|
-- Gebouw_key ophalen
|
|
SELECT min(alg_gebouw_key)
|
|
INTO v_alg_gebouw_key
|
|
FROM alg_gebouw
|
|
WHERE alg_locatie_key = v_alg_locatie_key
|
|
AND alg_gebouw_verwijder IS NULL
|
|
AND (TRUNC(alg_gebouw_vervaldatum) > TRUNC(sysdate) OR alg_gebouw_vervaldatum IS NULL ) ;
|
|
|
|
IF v_alg_gebouw_key IS NOT NULL THEN
|
|
|
|
-- Gebouw_code ophalen
|
|
SELECT alg_gebouw_code
|
|
INTO v_alg_gebouw_code
|
|
FROM alg_gebouw
|
|
WHERE alg_gebouw_key = v_alg_gebouw_key ;
|
|
|
|
-- Verdiepings_key ophalen
|
|
SELECT min(alg_verdieping_key)
|
|
INTO v_alg_verdieping_key
|
|
FROM alg_verdieping
|
|
WHERE alg_gebouw_key = v_alg_gebouw_key
|
|
AND alg_verdieping_verwijder IS NULL ;
|
|
|
|
END IF;
|
|
|
|
IF v_alg_verdieping_key IS NOT NULL THEN
|
|
|
|
-- Verdieping_volgnr ophalen
|
|
SELECT alg_verdieping_volgnr
|
|
INTO v_alg_verdieping_volgnr
|
|
FROM alg_verdieping
|
|
WHERE alg_verdieping_key = v_alg_verdieping_key ;
|
|
|
|
-- Ruimte_key ophalen
|
|
SELECT min(alg_ruimte_key)
|
|
INTO v_alg_ruimte_key
|
|
FROM alg_ruimte
|
|
WHERE alg_verdieping_key = v_alg_verdieping_key
|
|
AND alg_ruimte_verwijder IS NULL ;
|
|
|
|
END IF;
|
|
|
|
IF v_alg_ruimte_key IS NOT NULL THEN
|
|
|
|
-- Ruimte_nr ophalen
|
|
SELECT alg_ruimte_nr
|
|
INTO v_alg_ruimte_nr
|
|
FROM alg_ruimte
|
|
WHERE alg_ruimte_key = v_alg_ruimte_key ;
|
|
|
|
-- Vullen vastgoed-keten in import-tabel
|
|
UPDATE fac_imp_perslid
|
|
SET alg_locatie_code = v_alg_locatie_code,
|
|
alg_gebouw_code = v_alg_gebouw_code,
|
|
alg_verdieping_volgnr = v_alg_verdieping_volgnr,
|
|
alg_ruimte_nr = v_alg_ruimte_nr
|
|
WHERE fac_imp_file_index = rec.fac_imp_file_index ;
|
|
|
|
END IF;
|
|
|
|
ELSE
|
|
-- Geen Locatie/Vastgoedketen kunnen vinden
|
|
|
|
NULL;
|
|
|
|
END IF;
|
|
|
|
END;
|
|
END LOOP;
|
|
|
|
|
|
COMMIT;
|
|
EXCEPTION
|
|
WHEN OTHERS
|
|
THEN
|
|
oracle_err_num := SQLCODE;
|
|
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
|
|
v_errormsg := 'Error ' || oracle_err_num || '/' || oracle_err_mes;
|
|
fac.imp_writelog (p_import_key,
|
|
'E',
|
|
v_errormsg,
|
|
v_errorhint);
|
|
END impu_import_afasonline;
|
|
/
|
|
|
|
CREATE OR REPLACE PROCEDURE impu_update_afasonline (p_import_key IN NUMBER)
|
|
IS
|
|
-- Alle personen verwijderen die niet meer in het import bestand voorkomen.
|
|
-- Personen in de juiste autorisatiegroep zetten.
|
|
-- Match bij IMPULS KINDEROPVANG kan via Email of Personeelsnummer.
|
|
---- Zie ticket IMPU#84705 - ivm overgang GMK omzetting van email naar personeelsnummer
|
|
-- Geen acties tenzij het aantal records in de importtabel meer dan 100 medewerkers betreft.
|
|
-- Daarnaast in 2025-juni toegevoegd dat werkplekken van locatiemanager-2/3 + mandaten worden ingeregeld
|
|
-- De verantwoordelijke (leidinggevende) koppelen in personenkaart
|
|
-- Bij de Teamaccounts ook deze verantwoordelijke (leidinggevende) vullen met de eerste locatiemanager uit de locatiekaart
|
|
|
|
|
|
CURSOR c_del
|
|
IS
|
|
SELECT p.prs_perslid_key, p.prs_perslid_naam, p.prs_perslid_email, p.prs_perslid_nr, sp.prs_srtperslid_omschrijving, a.prs_afdeling_omschrijving, b.prs_bedrijf_naam
|
|
FROM prs_perslid p, fac_imp_perslid i, prs_srtperslid sp, prs_v_afdeling a, prs_bedrijf b
|
|
WHERE p.prs_perslid_nr = i.prs_perslid_nr(+)
|
|
AND p.prs_perslid_verwijder IS NULL
|
|
AND p.prs_afdeling_key = a.prs_afdeling_key AND a.prs_bedrijf_key = b.prs_bedrijf_key
|
|
AND p.prs_srtperslid_key = sp.prs_srtperslid_key
|
|
AND i.prs_perslid_nr IS NULL -- in Facilitor, met onderstaande voorwaarden, is er dus geen mapping op personeelsnummer en die personen gaan we verwijderen/inactief maken
|
|
AND a.prs_bedrijf_key IN (SELECT prs_link_key FROM prs_kenmerklink WHERE prs_kenmerk_key = 1040 AND prs_kenmerklink_niveau = 'B' AND prs_kenmerklink_verwijder IS NULL) -- bedrijven GMK
|
|
AND sp.prs_srtperslid_upper NOT IN 'TEAMACCOUNT'
|
|
AND p.prs_perslid_nr IS NOT NULL
|
|
AND (
|
|
UPPER (p.prs_perslid_email) LIKE '%IMPULS.NL'
|
|
OR
|
|
UPPER (p.prs_perslid_email) LIKE '%GMK.NL'
|
|
OR
|
|
UPPER (p.prs_perslid_email) LIKE '%@AKROS-AMSTERDAM.NL'
|
|
OR
|
|
UPPER (p.prs_perslid_email) LIKE '%@COMBIWELVOORKINDEREN.NL'
|
|
)
|
|
ORDER BY 1 ;
|
|
|
|
CURSOR c_flex -- Voor updaten van de algemene flex-kenmerkvelden op actuele medewerkers
|
|
IS
|
|
SELECT p.prs_perslid_key, i.prs_kenmerk1, i.prs_kenmerk2, i.prs_kenmerk3, i.prs_kenmerk4, i.prs_kenmerk5, i.prs_kenmerk6, i.prs_perslid_nr,
|
|
i.prs_kenmerk7, i.prs_kenmerk8, i.prs_kenmerk9, i.prs_kenmerk10, i.prs_kenmerk11, i.prs_kenmerk12, i.prs_kenmerk13, i.prs_srtperslid_omschrijving
|
|
FROM prs_v_aanwezigperslid p, fac_imp_perslid i
|
|
WHERE p.prs_perslid_key = i.prs_perslid_key
|
|
ORDER BY 1;
|
|
|
|
CURSOR c_loc -- Voor updaten van locatieleiders (in eigen autorisatiegroep)
|
|
IS
|
|
SELECT v.prs_perslid_key
|
|
FROM impu_v_locatiemanagers v
|
|
GROUP BY v.prs_perslid_key ;
|
|
|
|
CURSOR c_loc_wp -- Voor updaten van locatieleiders (werkplek-koppelingen)
|
|
IS
|
|
SELECT v.prs_perslid_key, v.persoon, v.alg_locatie_key, v.locatienaam, v.prs_werkplek_key, v.actie
|
|
FROM
|
|
(
|
|
SELECT man.prs_perslid_key, man.locatiemanager persoon, man.alg_locatie_key, man.locatie locatienaam, NULL prs_werkplek_key, 'toevoegen' actie
|
|
FROM impu_v_locatiemanagers man
|
|
WHERE NOT EXISTS
|
|
(SELECT *
|
|
FROM impu_v_locatiemanagers_wp wp
|
|
WHERE wp.alg_locatie_key = man.alg_locatie_key
|
|
AND wp.prs_perslid_key = man.prs_perslid_key)
|
|
UNION
|
|
SELECT wp.prs_perslid_key, wp.naam persoon, wp.alg_locatie_key, wp.locatie_wp locatienaam, wp.prs_werkplek_key, 'verwijderen' actie
|
|
FROM impu_v_locatiemanagers_wp wp
|
|
WHERE NOT EXISTS
|
|
(SELECT *
|
|
FROM impu_v_locatiemanagers man
|
|
WHERE man.alg_locatie_key = wp.alg_locatie_key
|
|
AND man.prs_perslid_key = wp.prs_perslid_key)
|
|
UNION
|
|
SELECT wp.prs_perslid_key, man.locatiemanager persoon, wp.alg_locatie_key, man.locatie locatienaam, wp.prs_werkplek_key, 'ok' actie
|
|
FROM impu_v_locatiemanagers_wp wp, impu_v_locatiemanagers man
|
|
WHERE man.alg_locatie_key = wp.alg_locatie_key
|
|
AND man.prs_perslid_key = wp.prs_perslid_key
|
|
) v
|
|
ORDER BY v.prs_perslid_key, v.alg_locatie_key ;
|
|
|
|
CURSOR c_loc_kp -- Voor updaten van locatiemanagers (mandaten op kostenplaatsen)
|
|
IS
|
|
SELECT w.prs_perslid_key, w.locatiemanager, w.alg_locatie_key, w.alg_locatie_omschrijving, w.prs_kostenplaats_key, w.prs_kostenplaats_omschrijving
|
|
FROM ( SELECT v_prs.prs_perslid_key,
|
|
v_prs.locatiemanager,
|
|
v_prs.alg_locatie_key,
|
|
v_kp.alg_locatie_omschrijving,
|
|
v_kp.prs_kostenplaats_key,
|
|
v_kp.prs_kostenplaats_nr || ' - ' || v_kp.prs_kostenplaats_omschrijving
|
|
prs_kostenplaats_omschrijving
|
|
FROM impu_v_locatiemanagers v_prs, impu_v_locaties_kp v_kp
|
|
WHERE v_prs.alg_locatie_key = v_kp.alg_locatie_key
|
|
GROUP BY v_prs.prs_perslid_key,
|
|
v_prs.locatiemanager,
|
|
v_prs.alg_locatie_key,
|
|
v_kp.alg_locatie_omschrijving,
|
|
v_kp.prs_kostenplaats_key,
|
|
v_kp.prs_kostenplaats_nr || ' - ' || v_kp.prs_kostenplaats_omschrijving
|
|
) w
|
|
ORDER BY 1, 2, 3;
|
|
|
|
CURSOR c_loc_kp_del -- Voor deleten van mandaten die niet meer van toepassing zijn
|
|
IS
|
|
SELECT pk.prs_perslid_key, pk.prs_perslidkostenplaats_key
|
|
FROM prs_perslidkostenplaats pk
|
|
WHERE
|
|
NOT EXISTS
|
|
( SELECT v_prs.prs_perslid_key,
|
|
v_kp.prs_kostenplaats_key
|
|
FROM impu_v_locatiemanagers v_prs,
|
|
impu_v_locaties_kp v_kp
|
|
WHERE v_prs.alg_locatie_key = v_kp.alg_locatie_key
|
|
AND v_prs.prs_perslid_key = pk.prs_perslid_key
|
|
AND v_kp.prs_kostenplaats_key = pk.prs_kostenplaats_key
|
|
GROUP BY v_prs.prs_perslid_key,
|
|
v_kp.prs_kostenplaats_key)
|
|
AND pk.prs_perslid_key IN (SELECT d.prs_perslid_key FROM impu_v_personenlijst_loc d)
|
|
ORDER BY 1, 2 ;
|
|
|
|
CURSOR c_verantw
|
|
IS
|
|
SELECT p.prs_perslid_key,
|
|
p.prs_perslid_email,
|
|
p.prs_perslid_nr,
|
|
p.prs_perslid_oslogin,
|
|
CASE WHEN p.prs_perslid_key_verantw IS NOT NULL
|
|
THEN (SELECT prs_perslid_nr FROM prs_perslid WHERE prs_perslid_key = p.prs_perslid_key_verantw)
|
|
ELSE NULL
|
|
END
|
|
prs_perslid_verantw_nr,
|
|
p.prs_perslid_verantw_nr_afas
|
|
FROM fac_imp_perslid i,
|
|
(SELECT p.prs_perslid_key,
|
|
p.prs_perslid_email,
|
|
p.prs_perslid_nr,
|
|
p.prs_perslid_oslogin,
|
|
p.prs_perslid_key_verantw,
|
|
(SELECT kw.prs_kenmerklink_waarde
|
|
FROM prs_kenmerklink kw
|
|
WHERE kw.prs_kenmerk_key = 1082
|
|
AND kw.prs_kenmerklink_niveau = 'P'
|
|
AND kw.prs_link_key = p.prs_perslid_key)
|
|
prs_perslid_verantw_nr_afas
|
|
FROM prs_perslid p) p
|
|
WHERE p.prs_perslid_key = i.prs_perslid_key
|
|
ORDER BY 1 ;
|
|
|
|
-- Voor teamaccounts de verantwoordelijke vullen met 1e-locatiemanager
|
|
CURSOR c_verantw_t
|
|
IS
|
|
SELECT p.prs_perslid_key, -- - teamaccount perslid_key
|
|
p.prs_perslid_naam,
|
|
p.prs_perslid_email,
|
|
p.prs_perslid_key_verantw, -- huidige verantwoordelijke
|
|
l.alg_locatie_key,
|
|
-- eerste locatiemanager van die locatie
|
|
(SELECT p.prs_perslid_key -- p.* -- min(p.alg_kenmerk_key)
|
|
FROM ( SELECT ROWNUM volgnr, v.*, ok.alg_kenmerk_key
|
|
FROM impu_v_locatiemanagers v, alg_onrgoedkenmerk ok
|
|
WHERE ok.alg_onrgoed_niveau = 'L'
|
|
AND ok.alg_onrgoed_key = v.alg_locatie_key
|
|
AND fac.safe_to_number (ok.alg_onrgoedkenmerk_waarde) = v.prs_perslid_key
|
|
AND v.prs_perslid_verwijder IS NULL
|
|
AND INSTR (UPPER (locatiemanager), 'REGIOMANAGER') = 0
|
|
AND v.alg_locatie_key = l.alg_locatie_key
|
|
ORDER BY ok.alg_kenmerk_key) p
|
|
WHERE p.volgnr = 1) locatiemanager_key
|
|
FROM prs_perslid p,
|
|
prs_srtperslid sp,
|
|
prs_perslidwerkplek wp,
|
|
prs_werkplek w,
|
|
alg_ruimte r,
|
|
alg_v_onrgoed_boom onr,
|
|
alg_locatie l
|
|
WHERE p.prs_srtperslid_key = sp.prs_srtperslid_key
|
|
AND sp.prs_srtperslid_upper = 'TEAMACCOUNT'
|
|
AND p.prs_perslid_key = wp.prs_perslid_key
|
|
AND wp.prs_werkplek_key = w.prs_werkplek_key
|
|
AND w.prs_alg_ruimte_key = r.alg_ruimte_key
|
|
AND r.alg_ruimte_key = onr.alg_ruimte_key
|
|
AND onr.alg_locatie_key = l.alg_locatie_key
|
|
ORDER BY wp.prs_perslid_key;
|
|
|
|
|
|
v_count NUMBER;
|
|
oracle_err_num NUMBER;
|
|
oracle_err_mes VARCHAR2 (200);
|
|
v_errormsg VARCHAR2 (400);
|
|
v_errorhint VARCHAR2 (400);
|
|
|
|
v_fac_gebruikersgroep_key NUMBER(10);
|
|
v_alg_ruimte_key NUMBER;
|
|
v_prs_werkplek_key NUMBER;
|
|
v_prs_perslid_key_verantw NUMBER(10);
|
|
v_teller_mandaat NUMBER(10);
|
|
|
|
|
|
BEGIN
|
|
v_errormsg := 'Update afasonline';
|
|
v_errorhint := 'Niet genoeg personen in bestand, import afgebroken';
|
|
|
|
SELECT COUNT ( * ) INTO v_count FROM fac_imp_perslid;
|
|
|
|
IF v_count >= 100
|
|
THEN
|
|
v_errorhint := 'Verwerken persoonsgegevens';
|
|
|
|
-- Geldig importbestand wat betreft aantal personen
|
|
|
|
COMMIT;
|
|
|
|
-- generic update
|
|
-- 'EMAIL' betekent dat op basis van Email wordt gematched.
|
|
-- 'NR' betekent op basis Personeelsnummer
|
|
-- 'NULL' betekent altijd geen werkplekken verwijderen
|
|
prs.update_perslid (p_import_key, 'NR', NULL);
|
|
|
|
v_errorhint := 'Verwijderen persoonsgegevens';
|
|
|
|
-- Verwijder personen die niet meer in de import voorkomen.
|
|
FOR rec IN c_del
|
|
LOOP
|
|
BEGIN
|
|
prs.delete_perslid (p_import_key, rec.prs_perslid_key);
|
|
END;
|
|
END LOOP;
|
|
|
|
FOR rec IN c_flex
|
|
LOOP
|
|
BEGIN
|
|
v_errorhint:='Fout bijwerken kenmerkveld1 - OE-Standplaats Afas';
|
|
PRS.upsertkenmerk (1001, rec.prs_perslid_key, rec.prs_kenmerk1);
|
|
|
|
v_errorhint:='Fout bijwerken kenmerkveld2 - Kostenplaats_oms';
|
|
PRS.upsertkenmerk (1002, rec.prs_perslid_key, rec.prs_kenmerk2);
|
|
|
|
v_errorhint:='Fout bijwerken kenmerkveld3 - DatumInDienst';
|
|
PRS.upsertkenmerk (1004, rec.prs_perslid_key, rec.prs_kenmerk3);
|
|
|
|
v_errorhint:='Fout bijwerken kenmerkveld4 - DatumUitDienst';
|
|
PRS.upsertkenmerk (1005, rec.prs_perslid_key, rec.prs_kenmerk4);
|
|
|
|
v_errorhint:='Fout bijwerken kenmerkveld5 - Kostenplaats';
|
|
PRS.upsertkenmerk (1003, rec.prs_perslid_key, rec.prs_kenmerk5);
|
|
|
|
v_errorhint:='Fout bijwerken kenmerkveld5 - Soort Medewerker';
|
|
PRS.upsertkenmerk (1006, rec.prs_perslid_key, rec.prs_kenmerk6);
|
|
|
|
v_errorhint:='Fout bijwerken kenmerkveld6 - Medewerker-nummer';
|
|
PRS.upsertkenmerk (1060, rec.prs_perslid_key, rec.prs_perslid_nr);
|
|
|
|
-- NIEUWE VELDEN 2025-MRT
|
|
PRS.upsertkenmerk (1080, rec.prs_perslid_key, rec.prs_kenmerk7); -- Soort_medewerker__Code_obv_medewerkertaal_
|
|
PRS.upsertkenmerk (1081, rec.prs_perslid_key, rec.prs_kenmerk8); -- Organisatorische_eenheid
|
|
PRS.upsertkenmerk (1082, rec.prs_perslid_key, rec.prs_kenmerk9); -- Leidinggevende_pers_nr
|
|
PRS.upsertkenmerk (1083, rec.prs_perslid_key, rec.prs_kenmerk10); -- Leidinggevende_Naam
|
|
PRS.upsertkenmerk (1084, rec.prs_perslid_key, rec.prs_kenmerk11); -- Werkgever
|
|
PRS.upsertkenmerk (1085, rec.prs_perslid_key, rec.prs_kenmerk12); -- Naam_werkgever
|
|
PRS.upsertkenmerk (1086, rec.prs_perslid_key, rec.prs_kenmerk13); -- Mobiel_werk
|
|
PRS.upsertkenmerk (1100, rec.prs_perslid_key, rec.prs_srtperslid_omschrijving); -- Functie_afas
|
|
|
|
END;
|
|
END LOOP;
|
|
|
|
FOR rec IN c_loc
|
|
LOOP
|
|
BEGIN
|
|
-- Alle locatiemanagers toevoegen aan eigen autorisatiegroep'
|
|
v_errorhint:='Fout bijwerken locatiemanagers in eigen autorisatiegroep';
|
|
|
|
BEGIN
|
|
|
|
SELECT fac_gebruikersgroep_key
|
|
INTO v_fac_gebruikersgroep_key
|
|
FROM fac_gebruikersgroep
|
|
WHERE fac_groep_key = 22 -- Groep 'Locatie- en Regiomanagers'
|
|
AND prs_perslid_key = rec.prs_perslid_key ;
|
|
EXCEPTION
|
|
WHEN NO_DATA_FOUND
|
|
THEN
|
|
|
|
INSERT INTO fac_gebruikersgroep (fac_groep_key,
|
|
prs_perslid_key)
|
|
VALUES (22, rec.prs_perslid_key);
|
|
|
|
END;
|
|
|
|
|
|
END;
|
|
END LOOP;
|
|
|
|
FOR rec IN c_loc_wp
|
|
LOOP
|
|
BEGIN
|
|
|
|
IF rec.actie = 'toevoegen'
|
|
THEN
|
|
v_errorhint:='Fout bij toevoegen werkplekken';
|
|
|
|
BEGIN
|
|
|
|
SELECT MIN(r.alg_ruimte_key)
|
|
INTO v_alg_ruimte_key
|
|
FROM alg_ruimte r, alg_verdieping v, alg_gebouw g
|
|
WHERE r.alg_verdieping_key = v.alg_verdieping_key AND v.alg_gebouw_key = g.alg_gebouw_key
|
|
AND r.alg_ruimte_verwijder IS NULL AND v.alg_verdieping_verwijder IS NULL AND g.alg_gebouw_verwijder IS NULL
|
|
AND g.alg_locatie_key = rec.alg_locatie_key ;
|
|
|
|
IF v_alg_ruimte_key IS NOT NULL
|
|
THEN
|
|
|
|
-- PROCEDURE movetoruimte (p_prs_key IN NUMBER, p_ruimte_key IN NUMBER, p_alg_type IN VARCHAR2, p_virtual IN NUMBER DEFAULT 0);
|
|
BEGIN
|
|
PRS.movetoruimte (rec.prs_perslid_key,
|
|
v_alg_ruimte_key,
|
|
'L',
|
|
1);
|
|
END;
|
|
|
|
END IF;
|
|
END;
|
|
|
|
END IF;
|
|
|
|
IF rec.actie = 'verwijderen'
|
|
THEN
|
|
v_errorhint:='Fout bij verwijderen werkplekken';
|
|
|
|
DELETE prs_werkplek WHERE prs_werkplek_key = rec.prs_werkplek_key;
|
|
|
|
END IF;
|
|
|
|
END;
|
|
END LOOP;
|
|
|
|
FOR rec IN c_loc_kp
|
|
LOOP
|
|
BEGIN
|
|
-- kostenplaatsen en mandaat
|
|
v_errorhint :=
|
|
'bijwerken mandaten locatiemanager - perslid_key:'
|
|
|| TO_CHAR (rec.prs_perslid_key);
|
|
|
|
|
|
-- Alle mandaten goed inregelen
|
|
|
|
SELECT COUNT(*)
|
|
INTO v_teller_mandaat
|
|
FROM prs_perslidkostenplaats
|
|
WHERE prs_perslid_key = rec.prs_perslid_key
|
|
AND prs_kostenplaats_key = rec.prs_kostenplaats_key ;
|
|
|
|
IF v_teller_mandaat = 0
|
|
THEN
|
|
|
|
v_errorhint :=
|
|
'bijwerken kostenplaats-mandaat - kostenplaat_key'
|
|
|| TO_CHAR (rec.prs_kostenplaats_key);
|
|
|
|
|
|
INSERT INTO prs_perslidkostenplaats (
|
|
prs_perslidkostenplaats_boeken,
|
|
prs_perslidkostenplaats_inzage,
|
|
prs_perslid_key,
|
|
prs_kostenplaats_key)
|
|
VALUES (1,
|
|
1,
|
|
rec.prs_perslid_key,
|
|
rec.prs_kostenplaats_key);
|
|
END IF;
|
|
|
|
END;
|
|
END LOOP;
|
|
|
|
FOR rec IN c_loc_kp_del
|
|
LOOP
|
|
BEGIN
|
|
-- opschonen mandaten die niet meer geldig zijn
|
|
v_errorhint :=
|
|
'verwijderen mandaten locatiemanager - perslid_key:'
|
|
|| TO_CHAR (rec.prs_perslid_key);
|
|
|
|
DELETE FROM prs_perslidkostenplaats
|
|
WHERE prs_perslidkostenplaats_key =
|
|
rec.prs_perslidkostenplaats_key;
|
|
END;
|
|
END LOOP;
|
|
|
|
-- En de verantwoordelijk manager updaten in de personenkaart indien nodig
|
|
FOR rec IN c_verantw
|
|
LOOP
|
|
BEGIN
|
|
v_errorhint:='Fout bijwerken verantwoordelijke';
|
|
|
|
-- als de aangeboden waarde uit afas anders is dan de huidige verantwoordelijke in de personenkaart dan gaan we personenkaart updaten
|
|
IF COALESCE(rec.prs_perslid_verantw_nr_afas, '<leeg>') <> COALESCE(rec.prs_perslid_verantw_nr, '<leeg>')
|
|
THEN
|
|
|
|
-- geen gevonden facilitor-manager dan gevulde verantwoordelijke verwijderen
|
|
IF rec.prs_perslid_verantw_nr_afas IS NULL
|
|
THEN
|
|
|
|
UPDATE prs_perslid
|
|
SET prs_perslid_key_verantw = ''
|
|
WHERE prs_perslid_key = rec.prs_perslid_key ;
|
|
|
|
END IF;
|
|
|
|
-- wel gevonden facilitor-manager dan bijbehorende verantwoordelijke_key in personenkaart vullen
|
|
IF rec.prs_perslid_verantw_nr_afas IS NOT NULL
|
|
THEN
|
|
|
|
SELECT MIN(prs_perslid_key)
|
|
INTO v_prs_perslid_key_verantw
|
|
FROM prs_perslid
|
|
WHERE prs_perslid_nr = rec.prs_perslid_verantw_nr_afas ;
|
|
|
|
IF v_prs_perslid_key_verantw IS NOT NULL
|
|
THEN
|
|
|
|
UPDATE prs_perslid
|
|
SET prs_perslid_key_verantw = v_prs_perslid_key_verantw
|
|
WHERE prs_perslid_key = rec.prs_perslid_key ;
|
|
|
|
ELSE
|
|
|
|
UPDATE prs_perslid
|
|
SET prs_perslid_key_verantw = ''
|
|
WHERE prs_perslid_key = rec.prs_perslid_key ;
|
|
|
|
END IF;
|
|
|
|
END IF;
|
|
|
|
|
|
END IF;
|
|
|
|
|
|
END;
|
|
END LOOP;
|
|
|
|
-- En de verantwoordelijk manager updaten in de personenkaart van de teamaccounts
|
|
FOR rec IN c_verantw_t
|
|
LOOP
|
|
BEGIN
|
|
v_errorhint:='Fout bijwerken verantwoordelijke in teamaccount';
|
|
|
|
-- als de huidge gekoppelde verantwoordelijke in de teamaccount-personenkaart anders is dan de waarde/locatiemanager uit de gekoppelde locatiekaart dan zaken updaten in teamaccount
|
|
IF COALESCE(rec.prs_perslid_key_verantw, '<leeg>') <> COALESCE(rec.locatiemanager_key, '<leeg>')
|
|
THEN
|
|
|
|
-- geen gevonden locatiemanager in locatiekaart dan verantwoordelijke in teamaccount verwijderen
|
|
IF rec.locatiemanager_key IS NULL
|
|
THEN
|
|
|
|
UPDATE prs_perslid
|
|
SET prs_perslid_key_verantw = ''
|
|
WHERE prs_perslid_key = rec.prs_perslid_key ;
|
|
|
|
END IF;
|
|
|
|
-- wel gevonden locatiemanager dan bijbehorende verantwoordelijke_key in teamaccount vullen
|
|
IF rec.locatiemanager_key IS NOT NULL
|
|
THEN
|
|
|
|
UPDATE prs_perslid
|
|
SET prs_perslid_key_verantw = rec.locatiemanager_key
|
|
WHERE prs_perslid_key = rec.prs_perslid_key ;
|
|
|
|
END IF;
|
|
|
|
END IF;
|
|
|
|
END;
|
|
END LOOP;
|
|
|
|
|
|
ELSE
|
|
fac.imp_writelog (p_import_key,
|
|
'E',
|
|
v_errormsg,
|
|
v_errorhint);
|
|
COMMIT;
|
|
END IF;
|
|
|
|
COMMIT;
|
|
EXCEPTION
|
|
WHEN OTHERS
|
|
THEN
|
|
oracle_err_num := SQLCODE;
|
|
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
|
|
v_errormsg := 'Error ' || oracle_err_num || '/' || oracle_err_mes;
|
|
fac.imp_writelog (p_import_key,
|
|
'E',
|
|
v_errormsg,
|
|
v_errorhint);
|
|
END impu_update_afasonline;
|
|
/
|
|
|
|
|
|
-------------------------------
|
|
--- RAPPORTAGES ---------------
|
|
-------------------------------
|
|
|
|
-- ICT-nummer - beheer
|
|
CREATE OR REPLACE VIEW impu_v_ict_nummers_man
|
|
(
|
|
ICT_NUMMER,
|
|
PROVIDER,
|
|
STATUS,
|
|
ICT_OBJECT,
|
|
GEKOPPELD_AAN_TYPE,
|
|
GEKOPPELD_AAN,
|
|
NR_INS_DEEL_KEY,
|
|
OBJ_INS_DEEL_KEY
|
|
)
|
|
AS
|
|
SELECT
|
|
nr.ins_deel_upper,
|
|
flx.getdomeinwaarde(21,flx.getflex('INS', 42, nr.ins_deel_key)) provider,
|
|
CASE WHEN d.ins_deel_upper IS NOT NULL THEN 'Gekoppeld' ELSE 'Vrij' END
|
|
status,
|
|
d.ins_deel_upper,
|
|
d.gekoppeld_aan_type,
|
|
d.gekoppeld_aan,
|
|
nr.ins_deel_key,
|
|
d.ins_deel_key
|
|
FROM (SELECT v.ins_deel_key,
|
|
v.ins_deel_upper
|
|
FROM ins_v_deel_gegevens v, ins_deel d
|
|
WHERE v.ins_discipline_key = 62 -- ICT-Nummers
|
|
AND v.ins_deel_key = d.ins_deel_key
|
|
AND d.ins_deel_verwijder IS NULL
|
|
AND (d.ins_deel_vervaldatum IS NULL OR TRUNC(d.ins_deel_vervaldatum) > TRUNC(sysdate) )
|
|
) nr,
|
|
(SELECT d.ins_deel_key,
|
|
d.ins_deel_upper,
|
|
kw.ins_kenmerkdeel_waarde,
|
|
num.ins_deel_upper as nummer_gekoppeld,
|
|
DECODE(d.ins_alg_ruimte_type, 'R', 'Locatie',
|
|
'A', 'Afdeling',
|
|
'P', 'Persoon/Teamaccount',
|
|
'')
|
|
gekoppeld_aan_type,
|
|
v.alg_plaatsaanduiding,
|
|
DECODE(d.ins_alg_ruimte_type, 'R', l.alg_locatie_omschrijving, v.alg_plaatsaanduiding)
|
|
gekoppeld_aan
|
|
FROM ins_deel d,
|
|
ins_kenmerkdeel kw,
|
|
ins_kenmerk k,
|
|
ins_deel num,
|
|
ins_v_deel_gegevens v,
|
|
alg_locatie l
|
|
WHERE d.ins_deel_key = kw.ins_deel_key
|
|
AND kw.ins_kenmerk_key = k.ins_kenmerk_key
|
|
AND k.ins_srtkenmerk_key = 6
|
|
AND kw.ins_kenmerkdeel_verwijder IS NULL
|
|
AND fac.safe_to_number (kw.ins_kenmerkdeel_waarde) =
|
|
num.ins_deel_key
|
|
AND d.ins_deel_key = v.ins_deel_key
|
|
AND d.ins_alg_locatie_key = l.alg_locatie_key(+)
|
|
) d
|
|
WHERE
|
|
nr.ins_deel_upper = d.nummer_gekoppeld(+) ;
|
|
|
|
|
|
-- Rapportage Gebouwbeheer
|
|
CREATE OR REPLACE VIEW IMPU_V_ALG_ONROERENDGOED
|
|
(
|
|
WIJK,
|
|
LOCATIE,
|
|
LOCATIE_CODE,
|
|
LOCATIE_KEY,
|
|
GEBOUW,
|
|
-- gegevens uit locatiekaart
|
|
LOCATIEMANAGER,
|
|
LOCATIEMANAGER_2,
|
|
REGIOMANAGER,
|
|
CONTACT_TOELICHTING,
|
|
GEBRUIKSRECHT,
|
|
DIENST_AFVAL,
|
|
DIENST_SCHOONMAAK,
|
|
DIENST_TELEFONIE,
|
|
EIGENAARSCHAP_TOELICHTING,
|
|
KDV,
|
|
VO,
|
|
BSO,
|
|
WELZIJN,
|
|
SSC,
|
|
LOCATIE_STATUS
|
|
)
|
|
AS
|
|
SELECT d.alg_district_omschrijving,
|
|
l.alg_locatie_omschrijving,
|
|
l.alg_locatie_code,
|
|
l.alg_locatie_key,
|
|
v.alg_gebouw_code || ' - ' || v.alg_gebouw_naam
|
|
gebouw,
|
|
km.locatiemanager,
|
|
km.locatiemanager_2,
|
|
km.regiomanager,
|
|
km.contact_toelichting,
|
|
km.gebruiksrecht,
|
|
km.dienst_afval,
|
|
km.dienst_schoonmaak,
|
|
km.dienst_telefonie,
|
|
km.eigenaarschap_toelichting,
|
|
km.kdv,
|
|
km.vo,
|
|
km.bso,
|
|
km.welzijn,
|
|
km.ssc,
|
|
CASE WHEN l.alg_locatie_vervaldatum IS NULL OR TRUNC(l.alg_locatie_vervaldatum) > TRUNC(SYSDATE)
|
|
THEN 'actueel'
|
|
ELSE 'oud'
|
|
END
|
|
locatie_status
|
|
FROM alg_v_onroerendgoed_gegevens v,
|
|
alg_locatie l,
|
|
alg_district d,
|
|
(SELECT l.alg_locatie_key,
|
|
flx.getdomeinwaarde(2, flx.getflex('ALG',1016, l.alg_locatie_key,'L')) locatiemanager,
|
|
flx.getdomeinwaarde(2, flx.getflex('ALG',1180, l.alg_locatie_key,'L')) locatiemanager_2,
|
|
flx.getdomeinwaarde(2, flx.getflex('ALG',1018, l.alg_locatie_key,'L')) regiomanager,
|
|
flx.getflex('ALG',1019, l.alg_locatie_key,'L') contact_toelichting,
|
|
flx.getdomeinwaarde(1,flx.getflex('ALG',1005, l.alg_locatie_key,'L')) gebruiksrecht,
|
|
flx.getflex('ALG',1007, l.alg_locatie_key,'L') dienst_afval,
|
|
flx.getflex('ALG',1008, l.alg_locatie_key,'L') dienst_schoonmaak,
|
|
flx.getflex('ALG',1009, l.alg_locatie_key,'L') dienst_telefonie,
|
|
flx.getflex('ALG',1011, l.alg_locatie_key,'L') eigenaarschap_toelichting,
|
|
flx.getflex('ALG',1001, l.alg_locatie_key,'L') KDV,
|
|
flx.getflex('ALG',1002, l.alg_locatie_key,'L') VO,
|
|
flx.getflex('ALG',1003, l.alg_locatie_key,'L') BSO,
|
|
flx.getflex('ALG',1100, l.alg_locatie_key,'L') WELZIJN,
|
|
flx.getflex('ALG',1160, l.alg_locatie_key,'L') SSC
|
|
FROM alg_locatie l ) km
|
|
WHERE v.alg_locatie_key = l.alg_locatie_key
|
|
AND l.alg_district_key = d.alg_district_key
|
|
AND v.alg_type IN ('G')
|
|
AND v.alg_locatie_key = km.alg_locatie_key
|
|
ORDER BY d.alg_district_omschrijving, l.alg_locatie_code, v.alg_gebouw_code
|
|
;
|
|
|
|
CREATE OR REPLACE VIEW impu_v_rap_opdrachten_intern
|
|
(
|
|
TYPE,
|
|
MLD_OPDR_KEY,
|
|
MLD_UITVOERENDE_KEY,
|
|
OPDRACHTNR,
|
|
OPDRACHT_DATUM,
|
|
STATUS,
|
|
MELDING,
|
|
BEHANDELAAR,
|
|
LOCATIE_PLAATS,
|
|
LOCATIE_OMSCHRIJVING,
|
|
GEPLANDE_AANVANG,
|
|
OMSCHRIJVING,
|
|
PRS_PERSLID_KEY,
|
|
NAAM_UITVOERDER,
|
|
AFMELD_DATUM,
|
|
OPDRACHT_TYPE,
|
|
TD_NAAM,
|
|
FILTERSTATUS, -- Bolletje
|
|
FILTERSTATUS_TD,
|
|
FILTERSTATUS_BO
|
|
)
|
|
AS
|
|
SELECT CASE
|
|
WHEN mu.TYPE = 'B' THEN 'Poule-opdracht'
|
|
WHEN mu.TYPE = 'P' THEN 'Klus-opdracht'
|
|
ELSE '<?>'
|
|
END
|
|
TYPE,
|
|
o.mld_opdr_key,
|
|
CASE
|
|
WHEN mu.TYPE = 'B' THEN o.prs_perslid_key
|
|
WHEN mu.TYPE = 'P' THEN mu.mld_uitvoerende_key
|
|
ELSE NULL
|
|
END
|
|
mld_uitvoerende_key,
|
|
TO_CHAR (o.mld_melding_key)
|
|
|| '/'
|
|
|| o.mld_opdr_bedrijfopdr_volgnr
|
|
opdrachtnummer,
|
|
o.mld_opdr_datumbegin,
|
|
DECODE (
|
|
os.mld_statusopdr_key,
|
|
8, DECODE (o.mld_opdr_halted,
|
|
1, 'Onderbroken',
|
|
os.mld_statusopdr_omschrijving),
|
|
os.mld_statusopdr_omschrijving)
|
|
status,
|
|
std.mld_stdmelding_omschrijving,
|
|
COALESCE (p.prs_perslid_naam_full, '<nog geen behandelaar>'), -- BEHANDELAAR
|
|
l.alg_locatie_plaats,
|
|
CASE WHEN m.mld_alg_onroerendgoed_keys IS NOT NULL
|
|
THEN l.alg_locatie_omschrijving || ' - ' || COALESCE(onr.alg_gebouw_naam, onr.alg_terreinsector_naam)
|
|
ELSE l.alg_locatie_omschrijving
|
|
END
|
|
locatie_omschrijving,
|
|
COALESCE(o.mld_opdr_plandatum, o.mld_opdr_einddatum)
|
|
geplande_aanvang,
|
|
TRIM (
|
|
REGEXP_REPLACE (
|
|
REGEXP_SUBSTR (o.mld_opdr_omschrijving,
|
|
'(([^ ]*)( |$)*){10}'),
|
|
'[[:space:]]',
|
|
' '))
|
|
|| '...',
|
|
p.prs_perslid_key,
|
|
mu.naam,
|
|
(SELECT MAX (ft.fac_tracking_datum)
|
|
FROM fac_tracking ft
|
|
WHERE ft.fac_tracking_refkey = o.mld_opdr_key
|
|
AND ft.fac_srtnotificatie_key = 78), -- ORDAFM
|
|
ot.mld_typeopdr_omschrijving,
|
|
CASE
|
|
WHEN mu.TYPE = 'B' THEN COALESCE (p.prs_perslid_naam_full, '<nog geen behandelaar>')
|
|
WHEN mu.TYPE = 'P' THEN mu.naam
|
|
ELSE '<?>'
|
|
END TD_NAAM,
|
|
CASE
|
|
WHEN o.mld_opdr_flag>0 THEN Lcl.L('lcl_opdr_flag' || o.mld_opdr_flag)
|
|
ELSE ''
|
|
END filterstatus,
|
|
(SELECT ud.fac_usrdata_omschr
|
|
FROM mld_kenmerkopdr ko, mld_kenmerk km, fac_usrdata ud
|
|
WHERE ko.mld_opdr_key = o.mld_opdr_key
|
|
AND ko.mld_kenmerk_key = km.mld_kenmerk_key
|
|
AND fac.safe_to_number(ko.mld_kenmerkopdr_waarde) = ud.fac_usrdata_key
|
|
AND ud.fac_usrtab_key = 22 -- domeinview filterstatus
|
|
AND ko.mld_kenmerk_key = 11) -- filterstatus TD
|
|
filterstatus_td,
|
|
(SELECT DECODE(mld_kenmerkopdr_waarde, '1', 'SPOED', NULL)
|
|
FROM mld_kenmerkopdr ko, mld_kenmerk km
|
|
WHERE ko.mld_opdr_key = o.mld_opdr_key
|
|
AND ko.mld_kenmerk_key = km.mld_kenmerk_key
|
|
AND km.mld_srtkenmerk_key = 101) -- spoedindicatie door backoffice
|
|
filterstatus_bo
|
|
FROM mld_opdr o,
|
|
mld_melding m,
|
|
mld_typeopdr ot,
|
|
prs_v_perslid_fullnames p,
|
|
ins_tab_discipline d,
|
|
mld_stdmelding std,
|
|
alg_locatie l,
|
|
alg_v_onroerendgoed_gegevens onr,
|
|
mld_v_uitvoerende mu,
|
|
mld_statusopdr os
|
|
WHERE o.mld_melding_key = m.mld_melding_key(+)
|
|
AND o.prs_perslid_key = p.prs_perslid_key(+)
|
|
AND o.mld_typeopdr_key = ot.mld_typeopdr_key
|
|
AND ot.mld_typeopdr_isofferte = 0 -- Alleen werkopdrachten
|
|
AND m.mld_stdmelding_key = std.mld_stdmelding_key(+)
|
|
AND std.mld_ins_discipline_key = d.ins_discipline_key(+)
|
|
AND m.mld_alg_locatie_key = l.alg_locatie_key -- alle std-meldingen hebben verplicht-niveau locatie
|
|
AND o.mld_uitvoerende_keys = mu.mld_uitvoerende_key
|
|
AND os.mld_statusopdr_key = o.mld_statusopdr_key
|
|
AND m.mld_alg_onroerendgoed_keys = onr.alg_onroerendgoed_keys (+)
|
|
AND mu.intern = 1;
|
|
|
|
-- Rapportage view voor Behandelteam bloktitels
|
|
CREATE OR REPLACE VIEW impu_v_mld_behandelteams_blok
|
|
(
|
|
MLD_MELDING_KEY,
|
|
BLOK,
|
|
FCLT_3D_DISCIPLINE_KEY,
|
|
BEHANDELTEAM,
|
|
BEHANDELAAR,
|
|
STATUS,
|
|
AFGEMELD_DATUM,
|
|
-- HOOFDMELDING-GEGEVENS
|
|
MLD_STDMELDING_KEY,
|
|
MLD_STDMELDING_OMSCHRIJVING,
|
|
FCLT_3D_LOCATIE_KEY,
|
|
HM_LOCATIE,
|
|
HM_BEHANDELAAR,
|
|
HM_STATUS,
|
|
HM_STREEFDATUM_GEREED,
|
|
HM_AFHANDELINGSTEKST,
|
|
-- KENMERKVELDEN IN BLOK - HIERONDER OPNEMEN
|
|
ACTIEDATUM,
|
|
ACTIEGEVRAAGD,
|
|
STATUS_BT,
|
|
CONTACT,
|
|
CONTACT_T,
|
|
GESPREKKEN,
|
|
GESPREKKEN_T,
|
|
TEUGKOPPELING,
|
|
TERUGKOPPELING_T,
|
|
BELEID,
|
|
BELEID_T,
|
|
VRIJETEKST
|
|
-- KENMERKVELDEN IN HOOFDMELDING- VIA UDR GUI TOEVOEGEN
|
|
)
|
|
AS
|
|
SELECT m.mld_melding_key,
|
|
COALESCE (kmb.mld_kenmerk_code, 'BLOK_ONBEKEND')
|
|
blok,
|
|
mb.ins_discipline_key,
|
|
d.ins_discipline_omschrijving
|
|
behandelteam,
|
|
p.prs_perslid_naam
|
|
behandelaar,
|
|
CASE
|
|
WHEN mb.mld_kenmerkblokmelding_afmelddatum IS NULL THEN 'lopend'
|
|
ELSE 'afgemeld'
|
|
END
|
|
status,
|
|
mb.mld_kenmerkblokmelding_afmelddatum
|
|
afgemeld_datum,
|
|
-- gegevens hoofdmelding
|
|
m.mld_stdmelding_key,
|
|
sm.mld_stdmelding_omschrijving,
|
|
m.mld_alg_locatie_key,
|
|
CASE WHEN m.mld_alg_locatie_key IS NOT NULL THEN (SELECT alg_locatie_omschrijving FROM alg_locatie WHERE alg_locatie_key = m.mld_alg_locatie_key)
|
|
ELSE 'geen locatie op mld'
|
|
END
|
|
hm_locatie,
|
|
CASE WHEN m.mld_melding_behandelaar_key IS NOT NULL THEN (SELECT prs_perslid_voornaam || ' ' || prs_perslid_naam FROM prs_perslid WHERE prs_perslid_key = m.mld_melding_behandelaar_key)
|
|
ELSE 'geen hoofd-behandelaar'
|
|
END
|
|
hm_behandelaar,
|
|
(SELECT mld_statuses_omschrijving FROM mld_statuses WHERE mld_statuses_key = m.mld_melding_status)
|
|
hm_status,
|
|
m.mld_melding_einddatum
|
|
hm_streefdatum_gereed,
|
|
m.mld_melding_opmerking
|
|
hm_afhandelingstekst,
|
|
-- kenmerkvelden in blok van behandelteam - hieronder opnemen
|
|
fac.safe_to_date(
|
|
FLX.getflex (
|
|
'MLD',
|
|
COALESCE (
|
|
(SELECT mld_kenmerk_key
|
|
FROM mld_kenmerk
|
|
WHERE mld_srtkenmerk_key = 303
|
|
AND mld_kenmerk_code =
|
|
COALESCE (kmb.mld_kenmerk_code,
|
|
'BLOK_ONBEKEND')
|
|
|| '_ACTIEDATUM'
|
|
AND mld_kenmerk_verwijder IS NULL
|
|
AND mld_stdmelding_key = m.mld_stdmelding_key),
|
|
-1),
|
|
m.mld_melding_key)
|
|
, 'dd-mm-yyyy')
|
|
actiedatum,
|
|
FLX.getflex (
|
|
'MLD',
|
|
COALESCE (
|
|
(SELECT mld_kenmerk_key
|
|
FROM mld_kenmerk
|
|
WHERE mld_srtkenmerk_key = 302
|
|
AND mld_kenmerk_code =
|
|
COALESCE (kmb.mld_kenmerk_code,
|
|
'BLOK_ONBEKEND')
|
|
|| '_ACTIEGEVRAAGD'
|
|
AND mld_kenmerk_verwijder IS NULL
|
|
AND mld_stdmelding_key = m.mld_stdmelding_key),
|
|
-1),
|
|
m.mld_melding_key)
|
|
actiegevraagd,
|
|
FLX.getdomeinwaarde(
|
|
221,
|
|
FLX.getflex (
|
|
'MLD',
|
|
COALESCE (
|
|
(SELECT mld_kenmerk_key
|
|
FROM mld_kenmerk
|
|
WHERE mld_srtkenmerk_key = 601 -- BT - Status mijn BV-melding
|
|
AND mld_kenmerk_code =
|
|
COALESCE (kmb.mld_kenmerk_code,
|
|
'BLOK_ONBEKEND')
|
|
|| '_STATUS_BT'
|
|
AND mld_kenmerk_verwijder IS NULL
|
|
AND mld_stdmelding_key = m.mld_stdmelding_key),
|
|
-1),
|
|
m.mld_melding_key))
|
|
status_bt,
|
|
FLX.getflex (
|
|
'MLD',
|
|
COALESCE (
|
|
(SELECT mld_kenmerk_key
|
|
FROM mld_kenmerk
|
|
WHERE mld_srtkenmerk_key = 581 -- BT - Contact opgenomen met melder
|
|
AND mld_kenmerk_code =
|
|
COALESCE (kmb.mld_kenmerk_code,
|
|
'BLOK_ONBEKEND')
|
|
|| '_CONTACT'
|
|
AND mld_kenmerk_verwijder IS NULL
|
|
AND mld_stdmelding_key = m.mld_stdmelding_key),
|
|
-1),
|
|
m.mld_melding_key)
|
|
contact,
|
|
FLX.getflex (
|
|
'MLD',
|
|
COALESCE (
|
|
(SELECT mld_kenmerk_key
|
|
FROM mld_kenmerk
|
|
WHERE mld_srtkenmerk_key = 621 -- BT - Contact opgenomen met melder - Toelichting
|
|
AND mld_kenmerk_code =
|
|
COALESCE (kmb.mld_kenmerk_code,
|
|
'BLOK_ONBEKEND')
|
|
|| '_CONTACT_T'
|
|
AND mld_kenmerk_verwijder IS NULL
|
|
AND mld_stdmelding_key = m.mld_stdmelding_key),
|
|
-1),
|
|
m.mld_melding_key)
|
|
contact_t,
|
|
FLX.getflex (
|
|
'MLD',
|
|
COALESCE (
|
|
(SELECT mld_kenmerk_key
|
|
FROM mld_kenmerk
|
|
WHERE mld_srtkenmerk_key = 582 -- BT - Gesprekken gevoerd
|
|
AND mld_kenmerk_code =
|
|
COALESCE (kmb.mld_kenmerk_code,
|
|
'BLOK_ONBEKEND')
|
|
|| '_GESPREKKEN'
|
|
AND mld_kenmerk_verwijder IS NULL
|
|
AND mld_stdmelding_key = m.mld_stdmelding_key),
|
|
-1),
|
|
m.mld_melding_key)
|
|
gesprekken,
|
|
FLX.getflex (
|
|
'MLD',
|
|
COALESCE (
|
|
(SELECT mld_kenmerk_key
|
|
FROM mld_kenmerk
|
|
WHERE mld_srtkenmerk_key = 622 -- BT - Gesprekken gevoerd - Toelichting
|
|
AND mld_kenmerk_code =
|
|
COALESCE (kmb.mld_kenmerk_code,
|
|
'BLOK_ONBEKEND')
|
|
|| '_GESPREKKEN_T'
|
|
AND mld_kenmerk_verwijder IS NULL
|
|
AND mld_stdmelding_key = m.mld_stdmelding_key),
|
|
-1),
|
|
m.mld_melding_key)
|
|
gesprekken_t,
|
|
FLX.getflex (
|
|
'MLD',
|
|
COALESCE (
|
|
(SELECT mld_kenmerk_key
|
|
FROM mld_kenmerk
|
|
WHERE mld_srtkenmerk_key = 661 -- BT - Terugkoppeling naar melder
|
|
AND mld_kenmerk_code =
|
|
COALESCE (kmb.mld_kenmerk_code,
|
|
'BLOK_ONBEKEND')
|
|
|| '_TERUGKOPPELING'
|
|
AND mld_kenmerk_verwijder IS NULL
|
|
AND mld_stdmelding_key = m.mld_stdmelding_key),
|
|
-1),
|
|
m.mld_melding_key)
|
|
terugkoppeling,
|
|
FLX.getflex (
|
|
'MLD',
|
|
COALESCE (
|
|
(SELECT mld_kenmerk_key
|
|
FROM mld_kenmerk
|
|
WHERE mld_srtkenmerk_key = 624 -- BT - Terugkoppeling naar melder - Toelichting
|
|
AND mld_kenmerk_code =
|
|
COALESCE (kmb.mld_kenmerk_code,
|
|
'BLOK_ONBEKEND')
|
|
|| '_TERUGKOPPELING_T'
|
|
AND mld_kenmerk_verwijder IS NULL
|
|
AND mld_stdmelding_key = m.mld_stdmelding_key),
|
|
-1),
|
|
m.mld_melding_key)
|
|
terugkoppeling_t,
|
|
FLX.getflex (
|
|
'MLD',
|
|
COALESCE (
|
|
(SELECT mld_kenmerk_key
|
|
FROM mld_kenmerk
|
|
WHERE mld_srtkenmerk_key = 584 -- BT - Beleid aangepast
|
|
AND mld_kenmerk_code =
|
|
COALESCE (kmb.mld_kenmerk_code,
|
|
'BLOK_ONBEKEND')
|
|
|| '_BELEID'
|
|
AND mld_kenmerk_verwijder IS NULL
|
|
AND mld_stdmelding_key = m.mld_stdmelding_key),
|
|
-1),
|
|
m.mld_melding_key)
|
|
beleid,
|
|
FLX.getflex (
|
|
'MLD',
|
|
COALESCE (
|
|
(SELECT mld_kenmerk_key
|
|
FROM mld_kenmerk
|
|
WHERE mld_srtkenmerk_key = 641 -- BT - Beleid aangepast - Toelichting
|
|
AND mld_kenmerk_code =
|
|
COALESCE (kmb.mld_kenmerk_code,
|
|
'BLOK_ONBEKEND')
|
|
|| '_BELEID_T'
|
|
AND mld_kenmerk_verwijder IS NULL
|
|
AND mld_stdmelding_key = m.mld_stdmelding_key),
|
|
-1),
|
|
m.mld_melding_key)
|
|
beleid_t,
|
|
FLX.getflex (
|
|
'MLD',
|
|
COALESCE (
|
|
(SELECT mld_kenmerk_key
|
|
FROM mld_kenmerk
|
|
WHERE mld_srtkenmerk_key = 301
|
|
AND mld_kenmerk_code =
|
|
COALESCE (kmb.mld_kenmerk_code,
|
|
'BLOK_ONBEKEND')
|
|
|| '_VRIJETEKST'
|
|
AND mld_kenmerk_verwijder IS NULL
|
|
AND mld_stdmelding_key = m.mld_stdmelding_key),
|
|
-1),
|
|
m.mld_melding_key)
|
|
vrijetekst
|
|
FROM mld_melding m,
|
|
mld_stdmelding sm,
|
|
mld_kenmerkblokmelding mb,
|
|
mld_kenmerk kmb,
|
|
mld_discipline d,
|
|
prs_perslid p
|
|
WHERE m.mld_melding_key = mb.mld_melding_key
|
|
AND mb.ins_discipline_key = d.ins_discipline_key
|
|
AND mb.mld_kenmerk_key = kmb.mld_kenmerk_key
|
|
AND mb.prs_perslid_key = p.prs_perslid_key(+)
|
|
AND m.mld_stdmelding_key = sm.mld_stdmelding_key;
|
|
|
|
|
|
-------------------------------
|
|
--- NOTI-JOBS ---------------
|
|
-------------------------------
|
|
|
|
-- IMPULS: Contractbeheerder(_eig) is Beheerder/Administrateur en de Contractverantwoordelijke (_beh) is 1e aanspreekpunt die beslist over wel/niet verlengen
|
|
CREATE OR REPLACE VIEW impu_v_noti_cntreminder
|
|
(
|
|
code,
|
|
sender,
|
|
receiver,
|
|
text,
|
|
key,
|
|
xkey,
|
|
xemail,
|
|
xmobile
|
|
)
|
|
AS -- Op rappel-datum naar de Beheerder/Administrateur sturen
|
|
SELECT 'CNTMAI',
|
|
NULL,
|
|
c.prs_perslid_key_beh,
|
|
'TER INFO: Rappel verstuurd voor contract ' || c.cnt_contract_nummer_intern
|
|
|| DECODE (c.cnt_contract_versie, NULL, '', '.' || c.cnt_contract_versie)
|
|
|| ' (' || c.cnt_contract_omschrijving || ' ' || b.prs_bedrijf_naam || ')'
|
|
|| ' - Moet uiterlijk per ' || TO_CHAR (cnt.cnt_getopzegdatum (c.cnt_contract_key), 'dd-mm-yyyy')
|
|
|| ' worden verlengd of opgezegd.',
|
|
c.cnt_contract_key,
|
|
NULL,
|
|
NULL,
|
|
NULL
|
|
FROM cnt_v_aanwezigcontract c, prs_bedrijf b
|
|
WHERE c.cnt_prs_bedrijf_key = b.prs_bedrijf_key
|
|
AND cnt_contract_status = 0
|
|
AND cnt.cnt_getrappeldatum (c.cnt_contract_key) = TRUNC (SYSDATE)
|
|
AND c.prs_perslid_key_beh <> c.prs_perslid_key_eig -- als administratuer gelijk aan 1e aanspreekpunt dan dan sturen we de info-mail niet uit
|
|
AND NOT EXISTS -- kenmerkveld 'Opgezegd' staat uit
|
|
(SELECT km.cnt_contract_key
|
|
FROM cnt_kenmerkcontract km, cnt_kenmerk k
|
|
WHERE km.cnt_contract_key = c.cnt_contract_key AND km.cnt_kenmerk_key = k.cnt_kenmerk_key AND k.cnt_srtkenmerk_key = 7)
|
|
UNION ALL -- Op rappel-datum ACTIE-mail naar het 1e aanspreekpunt sturen
|
|
SELECT 'CUST01',
|
|
NULL,
|
|
c.prs_perslid_key_eig,
|
|
'ACTIE: Rappel verstuurd voor contract ' || c.cnt_contract_nummer_intern
|
|
|| DECODE (c.cnt_contract_versie, NULL, '', '.' || c.cnt_contract_versie)
|
|
|| ' (' || c.cnt_contract_omschrijving || ' ' || b.prs_bedrijf_naam || ')'
|
|
|| ' - Moet uiterlijk per ' || TO_CHAR (cnt.cnt_getopzegdatum (c.cnt_contract_key), 'dd-mm-yyyy')
|
|
|| ' worden verlengd of opgezegd.',
|
|
c.cnt_contract_key,
|
|
NULL,
|
|
NULL,
|
|
NULL
|
|
FROM cnt_v_aanwezigcontract c, prs_bedrijf b
|
|
WHERE c.cnt_prs_bedrijf_key = b.prs_bedrijf_key
|
|
AND cnt_contract_status = 0
|
|
AND cnt.cnt_getrappeldatum (c.cnt_contract_key) = TRUNC (SYSDATE)
|
|
AND c.prs_perslid_key_eig IS NOT NULL
|
|
AND NOT EXISTS -- kenmerkveld 'Opgezegd' staat uit
|
|
(SELECT km.cnt_contract_key
|
|
FROM cnt_kenmerkcontract km, cnt_kenmerk k
|
|
WHERE km.cnt_contract_key = c.cnt_contract_key AND km.cnt_kenmerk_key = k.cnt_kenmerk_key AND k.cnt_srtkenmerk_key = 7) ;
|
|
|
|
-- IMPULS: Notificatie ontvangstbevestiging aan externe partij (ouder, etc.)
|
|
CREATE OR REPLACE VIEW impu_v_noti_mld_bev_extern
|
|
(
|
|
code,
|
|
sender, -- hoofd-behandelaar melding
|
|
receiver, -- geen geregistreerde melder dus via xemail sturen
|
|
text,
|
|
key,
|
|
xkey,
|
|
xemail,
|
|
xmobile
|
|
)
|
|
AS
|
|
SELECT 'CUST02',
|
|
m.mld_melding_behandelaar_key,
|
|
NULL
|
|
receiver,
|
|
'Onze ontvangstbevestiging op uw meldingnr ' || 'BV' || m.mld_melding_key,
|
|
m.mld_melding_key,
|
|
NULL
|
|
xkey,
|
|
m.mld_melding_email_ext,
|
|
NULL
|
|
xmobile
|
|
FROM mld_melding m,
|
|
mld_stdmelding sm,
|
|
(select km.mld_melding_key,
|
|
sk.mld_srtkenmerk_omschrijving,
|
|
fac.safe_to_number(km.mld_kenmerkmelding_waarde)
|
|
reactie_vinkje_sturen,
|
|
(SELECT MAX (ft.fac_tracking_datum)
|
|
FROM fac_tracking ft, fac_srtnotificatie sn
|
|
WHERE ft.fac_tracking_refkey = km.mld_melding_key
|
|
AND ft.fac_srtnotificatie_key = sn.fac_srtnotificatie_key
|
|
AND sn.fac_srtnotificatie_xmlnode = 'melding'
|
|
AND sn.fac_srtnotificatie_code = 'CUST02')
|
|
AS reactie_datum_uitgestuurd, -- Datum genotificeerd door deze noti-job
|
|
flx.getflex('MLD', COALESCE((SELECT km.mld_kenmerk_key FROM mld_kenmerk km WHERE km.mld_srtkenmerk_key = 314 AND km.mld_kenmerk_niveau = 'S' AND km.mld_stdmelding_key = m.mld_stdmelding_key), -1), km.mld_melding_key)
|
|
reactie_tekst
|
|
from mld_melding m,
|
|
mld_stdmelding sm,
|
|
mld_kenmerkmelding km,
|
|
mld_kenmerk k,
|
|
mld_srtkenmerk sk
|
|
where sm.mld_stdmelding_key = m.mld_stdmelding_key
|
|
and m.mld_melding_key = km.mld_melding_key
|
|
and km.mld_kenmerk_key = k.mld_kenmerk_key
|
|
and k.mld_srtkenmerk_key = sk.mld_srtkenmerk_key
|
|
and sk.mld_srtkenmerk_key = 304 -- bevestiging naar externe - uitsturen
|
|
) v
|
|
WHERE m.mld_stdmelding_key = sm.mld_stdmelding_key
|
|
AND sm.mld_stdmelding_key IN (382, 462) -- voor welzijn (462) en externe klacht ouder (382)
|
|
AND m.mld_melding_status IN (2, 3, 4, 7)
|
|
AND m.mld_melding_behandelaar_key IS NOT NULL
|
|
AND m.mld_melding_key = v.mld_melding_key (+)
|
|
-- Voorwaarden voor uitsturen
|
|
----- vinkje staat aan + is nog nooit uitgestuurd + tekst is gevuld
|
|
AND v.reactie_vinkje_sturen = 1 AND v.reactie_datum_uitgestuurd IS NULL AND v.reactie_tekst IS NOT NULL ;
|
|
|
|
-- IMPULS: Notificatie van behandelteam (bt) bij afmelding naar de hoofdbehandelaar van de BV-melding
|
|
CREATE OR REPLACE VIEW impu_v_noti_mld_afmelding_bt
|
|
(
|
|
code,
|
|
sender, -- uit BT-team.... dus facilitor
|
|
receiver, -- de hoofdbehandelaar van de BV-melding
|
|
text,
|
|
key,
|
|
xkey,
|
|
xemail,
|
|
xmobile
|
|
)
|
|
AS
|
|
SELECT 'CUST03',
|
|
3
|
|
sender,
|
|
m.mld_melding_behandelaar_key
|
|
receiver,
|
|
'Meldingnr BV' || m.mld_melding_key || ' - ' || v.blok || ' is door behandelteam ' || v.behandelteam || ' afgemeld'
|
|
onderwerp_mail,
|
|
m.mld_melding_key,
|
|
NULL
|
|
xkey,
|
|
NULL
|
|
xemail,
|
|
NULL
|
|
xmobile
|
|
FROM mld_melding m,
|
|
mld_stdmelding sm,
|
|
impu_v_mld_behandelteams_blok v,
|
|
(SELECT m.mld_melding_key,
|
|
MAX (ft.fac_tracking_datum)
|
|
blok_afgemeld_last_cust03 -- Datum laatst genotificeerd door deze noti-job
|
|
FROM mld_melding m,
|
|
fac_tracking ft,
|
|
fac_srtnotificatie sn
|
|
WHERE
|
|
m.mld_melding_key = ft.fac_tracking_refkey
|
|
AND ft.fac_srtnotificatie_key = sn.fac_srtnotificatie_key
|
|
AND sn.fac_srtnotificatie_xmlnode = 'melding'
|
|
AND sn.fac_srtnotificatie_code = 'CUST03'
|
|
GROUP BY m.mld_melding_key
|
|
) t
|
|
WHERE m.mld_stdmelding_key = sm.mld_stdmelding_key
|
|
AND m.mld_melding_status IN (2, 3, 4, 7)
|
|
AND m.mld_melding_behandelaar_key IS NOT NULL
|
|
AND m.mld_melding_key = v.mld_melding_key
|
|
AND m.mld_melding_key = t.mld_melding_key (+)
|
|
-- Voorwaarden voor uitsturen
|
|
----- afmeld_datum in blok gevuld en na deze datum is er geen CUST03 meer uitgegaan
|
|
AND v.afgemeld_datum IS NOT NULL
|
|
AND v.afgemeld_datum >= COALESCE(t.blok_afgemeld_last_cust03, v.afgemeld_datum)
|
|
;
|
|
|
|
|
|
----------------------------------
|
|
--- OVERIGE CUST-FUNCTIES ------
|
|
----------------------------------
|
|
|
|
-- Hook functie die na het saven (mld_postsave) van een externe klacht-melding de verplichte gegevens ouder en email vult in mld_melding_externegegevens
|
|
CREATE OR REPLACE PROCEDURE impu_mld_after_insert_klacht (p_key IN NUMBER)
|
|
AS
|
|
v_errormsg VARCHAR2 (200);
|
|
v_mld_stdmelding_key NUMBER (10) ;
|
|
v_ouder VARCHAR2 (60);
|
|
v_ouder_email VARCHAR2 (100);
|
|
v_ouder_tel VARCHAR2 (20);
|
|
|
|
BEGIN
|
|
v_errormsg := 'Ophalen meldinggegevens ouder';
|
|
|
|
SELECT mld_stdmelding_key
|
|
INTO v_mld_stdmelding_key
|
|
FROM mld_melding
|
|
WHERE mld_melding_key = p_key ;
|
|
|
|
IF v_mld_stdmelding_key IN (382, 462) -- Klacht externe en Welzijns-melding
|
|
THEN
|
|
|
|
SELECT flx.getflex('MLD', COALESCE((SELECT km.mld_kenmerk_key FROM mld_kenmerk km WHERE km.mld_srtkenmerk_key = 161 AND km.mld_kenmerk_niveau = 'S' AND km.mld_stdmelding_key = v_mld_stdmelding_key), -1), m.mld_melding_key) ouder,
|
|
flx.getflex('MLD', COALESCE((SELECT km.mld_kenmerk_key FROM mld_kenmerk km WHERE km.mld_srtkenmerk_key = 162 AND km.mld_kenmerk_niveau = 'S' AND km.mld_stdmelding_key = v_mld_stdmelding_key), -1), m.mld_melding_key) ouder_mail,
|
|
flx.getflex('MLD', COALESCE((SELECT km.mld_kenmerk_key FROM mld_kenmerk km WHERE km.mld_srtkenmerk_key = 181 AND km.mld_kenmerk_niveau = 'S' AND km.mld_stdmelding_key = v_mld_stdmelding_key), -1), m.mld_melding_key) ouder_tel
|
|
INTO v_ouder, v_ouder_email, v_ouder_tel
|
|
FROM mld_melding m
|
|
WHERE mld_melding_key = p_key ;
|
|
|
|
UPDATE mld_melding
|
|
SET mld_melding_naam_ext = v_ouder,
|
|
mld_melding_email_ext = v_ouder_email,
|
|
mld_melding_tel_ext = COALESCE(v_ouder_tel, 'onbekend')
|
|
WHERE mld_melding_key = p_key ;
|
|
|
|
ELSE
|
|
|
|
NULL;
|
|
|
|
END IF;
|
|
|
|
END impu_mld_after_insert_klacht;
|
|
/
|
|
|
|
|
|
------ 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
|