Files
Customer/HMOD/hmod.sql
2024-03-26 22:52:09 +00:00

2913 lines
122 KiB
SQL

--
-- $Id$
--
-- Script containing customer specific db-configuration for HMOD.
DEFINE thisfile = 'HMOD.SQL'
DEFINE dbuser = '^HMOD'
SET ECHO ON
SET DEFINE ON
COLUMN fcltlogfile NEW_VALUE fcltlogfile NOPRINT;
COLUMN fcltcusttxt NEW_VALUE fcltcusttxt NOPRINT;
WHENEVER SQLERROR CONTINUE;
SELECT adm.getscriptspoolfile('&thisfile') AS fcltlogfile FROM DUAL;
SPOOL &fcltlogfile
WHENEVER SQLERROR EXIT;
SELECT adm.checkscriptcust('&dbuser') AS fcltcusttxt FROM DUAL;
WHENEVER SQLERROR CONTINUE;
---------------------------------------
PROMPT &fcltcusttxt
---------------------------------------
SET DEFINE OFF
------ payload begin ------
CREATE OR REPLACE PROCEDURE hmod_import_koffer (p_import_key IN NUMBER)
AS
c_fielddelimitor VARCHAR2 (1) := ';';
v_newline VARCHAR2 (1000); -- Input line
v_errormsg VARCHAR2 (1000);
oracle_err_num NUMBER;
oracle_err_mes VARCHAR2 (200);
header_is_valid NUMBER;
v_count NUMBER;
v_ongeldig NUMBER (1);
v_mode NUMBER (1);
v_aanduiding VARCHAR2 (200);
-- v_all_null BOOLEAN;
v_count_error NUMBER (10);
v_count_tot NUMBER (10);
v_count_import NUMBER (10);
-- De importvelden:
v_versiedatum VARCHAR2 (15);
v_afdeling VARCHAR2 (250);
v_functie VARCHAR2 (250);
v_code VARCHAR2 (30);
v_token VARCHAR2 (20);
v_mob VARCHAR2 (20);
v_hit VARCHAR2 (20);
v_lap_en_sim VARCHAR2 (20);
v_lapt VARCHAR2 (20);
v_tnc VARCHAR2 (20);
v_tnc_omschrijving VARCHAR2 (100);
v_facilitor VARCHAR2 (20);
v_adp VARCHAR2 (20);
v_absentiemanager VARCHAR2 (20);
v_regas VARCHAR2 (20);
v_checks VARCHAR2 (20);
v_accountview VARCHAR2 (20);
v_elvy VARCHAR2 (20);
v_hodnet VARCHAR2 (20);
v_proactive VARCHAR2 (20);
v_opmerking VARCHAR2 (1000);
v_volgnr NUMBER (10);
v_lettercode VARCHAR2 (30);
CURSOR c
IS
SELECT *
FROM fac_imp_file
WHERE fac_import_key = p_import_key
ORDER BY fac_imp_file_index;
BEGIN
-- Vorige inlees eerst verwijderen
---- Voor hmod_koffersysteem geldt dat je inlezen op dezelfde dag mag/kunt overschrijven. Voorgaande versiedatums blijven staan.
DELETE FROM hmod_imp_koffersysteem
WHERE versiedatum = TO_CHAR(TRUNC (SYSDATE),'DD-MM-YYYY');
COMMIT;
header_is_valid := 0;
v_ongeldig := 0;
v_count_error := 0;
header_is_valid := 0;
v_count_tot := 0;
v_count_import := 0;
FOR rec IN c
LOOP
BEGIN
v_newline := rec.fac_imp_file_line;
v_errormsg := 'Fout opvragen te importeren rij';
v_aanduiding := '';
-- Lees alle veldwaarden: afdeling;functie;code;token;mob;hit;lap_en_sim;lapt;tnc;tnc omschrijving;facilitor;adp;absentiemanager;regas;checks;accountview;elvy;hodnet;proactive;opmerking
v_errormsg := 'Fout opvragen te importeren kolom/rij 1';
v_errormsg := 'Fout opvragen te importeren kolom/rij 2';
fac.imp_getfield (v_newline, c_fielddelimitor, v_afdeling);
fac.imp_getfield (v_newline, c_fielddelimitor, v_functie);
fac.imp_getfield (v_newline, c_fielddelimitor, v_code);
fac.imp_getfield (v_newline, c_fielddelimitor, v_lettercode);
fac.imp_getfield (v_newline, c_fielddelimitor, v_token);
fac.imp_getfield (v_newline, c_fielddelimitor, v_mob);
fac.imp_getfield (v_newline, c_fielddelimitor, v_hit);
fac.imp_getfield (v_newline, c_fielddelimitor, v_lap_en_sim);
fac.imp_getfield (v_newline, c_fielddelimitor, v_lapt);
fac.imp_getfield (v_newline, c_fielddelimitor, v_tnc);
fac.imp_getfield (v_newline, c_fielddelimitor, v_tnc_omschrijving);
fac.imp_getfield (v_newline, c_fielddelimitor, v_facilitor);
fac.imp_getfield (v_newline, c_fielddelimitor, v_adp);
fac.imp_getfield (v_newline, c_fielddelimitor, v_absentiemanager);
fac.imp_getfield (v_newline, c_fielddelimitor, v_regas);
fac.imp_getfield (v_newline, c_fielddelimitor, v_checks);
fac.imp_getfield (v_newline, c_fielddelimitor, v_accountview);
fac.imp_getfield (v_newline, c_fielddelimitor, v_elvy);
fac.imp_getfield (v_newline, c_fielddelimitor, v_hodnet);
fac.imp_getfield (v_newline, c_fielddelimitor, v_proactive);
fac.imp_getfield (v_newline, c_fielddelimitor, v_opmerking);
v_aanduiding :=
v_versiedatum || '|' || v_afdeling || '-' || v_functie || '|' || v_code;
v_count_tot := v_count_tot + 1;
-- Skip until the header is found
IF header_is_valid = 0
THEN
IF v_afdeling = 'afdeling'
AND v_functie = 'functie'
AND v_code = 'code'
AND v_lettercode = 'lettercode'
AND v_token = 'token'
AND v_mob = 'mob'
AND v_hit = 'hit'
AND v_lap_en_sim = 'lap_en_sim'
AND v_lapt = 'lapt'
AND v_tnc = 'tnc'
AND v_tnc_omschrijving = 'tnc omschrijving'
AND v_facilitor = 'facilitor'
AND v_adp = 'adp'
AND v_absentiemanager = 'absentiemanager'
AND v_regas = 'regas'
AND v_checks = 'checks'
AND v_accountview = 'accountview'
AND v_elvy = 'elvy'
AND v_hodnet = 'hodnet'
AND v_proactive = 'proactive'
AND v_opmerking = 'opmerking'
THEN
header_is_valid := 1;
END IF;
ELSE -- Header OK. Vanaf hier in de LOOP eventueel variabele vullen.
BEGIN
v_errormsg := 'Versiedatum wordt sysdatum ';
SELECT TO_CHAR (TRUNC (SYSDATE), 'DD-MM-YYYY')
INTO v_versiedatum
FROM DUAL;
-- volgnr vullen - dit numerieke veld gebruiken we voor kenmerkdomein-key..
---- dit zou ik ook kunnen vullen buiten de LOOP, toch?
SELECT COALESCE (MAX (volgnr), 0)
INTO v_volgnr
FROM hmod_imp_koffersysteem;
v_volgnr := v_volgnr + 1 ;
END;
INSERT INTO hmod_imp_koffersysteem (versiedatum,
afdeling,
functie,
code,
lettercode,
token,
mob,
hit,
lap_en_sim,
lapt,
tnc,
tnc_omschrijving,
facilitor,
adp,
absentiemanager,
regas,
checks,
accountview,
elvy,
hodnet,
proactive,
volgnr,
opmerking)
VALUES (v_versiedatum,
v_afdeling,
v_functie,
v_code,
v_lettercode,
v_token,
v_mob,
v_hit,
v_lap_en_sim,
v_lapt,
v_tnc,
v_tnc_omschrijving,
v_facilitor,
v_adp,
v_absentiemanager,
v_regas,
v_checks,
v_accountview,
v_elvy,
v_hodnet,
v_proactive,
v_volgnr,
v_opmerking);
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
-- Afsluiting: Rollback/Delete tabel als er fouten in csv zitten. Initieel voor import koffersysteem nog zonder foutcheck opgezet, dus ook geen v_ongeldig aan het vullen...
IF v_ongeldig > 0
THEN
ROLLBACK;
-- Met rollback haalt hij ook al mijn errors en waarschuwingen weg!?? Daarom een DELETE
-- delete from hmod_imp_contractscope where <alleen de ingelzen versiedatum ;
COMMIT;
fac.imp_writelog (
p_import_key,
'E',
'Niet ingelezen. Staan aantal ongeldige regels in csv-bestand. Zie bovenstaande ERRORS. Pas deze eerst aan!',
'');
ELSE
COMMIT;
fac.imp_writelog (
p_import_key,
'S',
'Aantal ingelezen regels: ' || TO_CHAR (v_count_import),
'');
END IF;
END IF;
EXCEPTION
WHEN OTHERS
THEN
ROLLBACK;
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',
v_errormsg || ' - Check !!!! : ' || v_aanduiding,
'');
END hmod_import_koffer;
/
CREATE OR REPLACE PROCEDURE hmod_update_koffer (p_import_key IN NUMBER)
AS
v_errormsg VARCHAR (200);
v_errorhint VARCHAR (200);
oracle_err_mes VARCHAR2 (150);
currentversion fac_module.fac_module_version%TYPE;
v_aanduiding VARCHAR (100);
v_count NUMBER;
BEGIN
-- hmod_update_koffer (p_import_key);
NULL;
END hmod_update_koffer;
/
-- Voor UDR-rapportage.
-- Later stadium nog aanvullen met personen-koppeling zodat men goed overzicht heeft van wat er per persoon is uitgereikt. Bij herziening van de koffer oook direct in beeld heeft waar eventuele vervolgacties gedaan moeten worden.
CREATE OR REPLACE VIEW hmod_v_koffersysteem
(
OMSCHRIJVING_TOTAAL,
VERSIEDATUM,
OMSCHRIJVING,
AFDELING,
FUNCTIE,
CODE,
LETTERCODE,
TOKEN,
MOB,
HIT,
LAP_EN_SIM,
LAPT,
TNC,
TNC_OMSCHRIJVING,
FACILITOR,
ADP,
ABSENTIEMANAGER,
REGAS,
CHECKS,
ACCOUNTVIEW,
ELVY,
HODNET,
PROACTIVE,
VOLGNR,
OPMERKING
)
AS
SELECT afdeling || ' - ' || functie || ' (' || code || ')' AS omschrijving_totaal,
versiedatum,
afdeling || ' - ' || functie AS omschrijving,
afdeling,
functie,
code,
lettercode,
token,
mob,
hit,
lap_en_sim,
lapt,
tnc,
tnc_omschrijving,
facilitor,
adp,
absentiemanager,
regas,
checks,
accountview,
elvy,
hodnet,
proactive,
volgnr,
opmerking
FROM hmod_imp_koffersysteem;
-- Voor keuzelijstjes (kenmerk domein)
CREATE OR REPLACE VIEW hmod_v_koffersysteem_huidig
(
VOLGNR,
OMSCHRIJVING,
VERSIEDATUM,
FORMATIEPLAATS,
ORGANISATIE_CODE,
ORGANISATIE_TOT,
FUNCTIE_CODE,
FUNCTIE_0, -- uit koffersysteem ADP
FUNCTIE_1, -- uit prs_srtfunctie
FUNCTIE_TOT
)
AS
SELECT
k.volgnr,
k.omschrijving_totaal,
k.versiedatum,
k.code,
SUBSTR (k.code, 1, INSTR (k.code, '-')-1)
organisatie_code,
SUBSTR (k.code, 1, INSTR (k.code, '-')-1) || ' - ' || k.afdeling
organisatie_tot,
SUBSTR(k.code,(instr(k.code,'-')+1),LENGTH(k.code))
functie_code,
k.functie
functie_0,
f.functie
functie_1,
SUBSTR(k.code,(instr(k.code,CHR(45))+1),LENGTH(k.code)) || ' - ' || k.functie
functie_tot
FROM hmod_v_koffersysteem k,
(SELECT v.functie_code, v.formatieplaats, MAX (v.functie) functie
FROM (SELECT k.prs_kenmerklink_waarde
formatieplaats,
SUBSTR (k.prs_kenmerklink_waarde, (INSTR (k.prs_kenmerklink_waarde, CHR(45)) + 1), LENGTH (k.prs_kenmerklink_waarde))
functie_code,
sp.prs_srtperslid_omschrijving
functie
FROM prs_perslid p, prs_srtperslid sp, prs_kenmerklink k
WHERE p.prs_srtperslid_key = sp.prs_srtperslid_key
AND p.prs_perslid_key = k.prs_link_key(+)
AND k.prs_kenmerk_key = 1025) v
GROUP BY v.functie_code, v.formatieplaats ) f
WHERE TO_DATE (versiedatum, 'DD-MM-YYYY') = (SELECT MAX (TO_DATE (versiedatum, 'DD-MM-YYYY')) FROM hmod_v_koffersysteem)
AND k.code = f.formatieplaats (+)
ORDER BY omschrijving, versiedatum DESC ;
-- KEUZELIJST VOOR KP's
CREATE OR REPLACE VIEW hmod_v_kostenplaatsen
(
KEY,
KP_NR,
OMSCHRIJVING,
OMSCHRIJVING_TOT,
KP_EINDDATUM,
KP_GROEP
)
AS
SELECT
kp.prs_kostenplaats_key,
kp.prs_kostenplaats_nr,
kp.prs_kostenplaats_omschrijving,
kp.prs_kostenplaats_omschrijving || ' (' || kp.prs_kostenplaats_nr ||')' omschrijving_tot,
prs_kostenplaats_eind,
kpg.prs_kostenplaatsgrp_oms
FROM
prs_kostenplaats kp,
prs_kostenplaatsgrp kpg
WHERE
kp.prs_kostenplaatsgrp_key = kpg.prs_kostenplaatsgrp_key
AND kpg.prs_kostenplaatsgrp_key = 2
AND kp.prs_kostenplaats_verwijder IS NULL
AND TRUNC(SYSDATE) < COALESCE(TRUNC(prs_kostenplaats_eind),TO_DATE('31-12-2099','DD-MM-YYYY'))
;
-- KEUZELIJST VOOR PERSONEN
CREATE OR REPLACE VIEW hmod_v_personenlijst
(
KEY,
NAAM,
PERSONEELSNUMMER,
NAAM_TOT,
TEAMLEIDER_MT,
HR_FUNCTIONARIS,
BEDRIJF,
DATUM_UITDIENST
)
AS
SELECT
p.prs_perslid_key,
p.prs_perslid_voornaam || ' ' || p.prs_perslid_naam
naam,
p.prs_perslid_nr,
CASE WHEN v.teamleider_mt = 'ja' AND v.hr_functionaris = 'nee' THEN p.prs_perslid_voornaam || ' ' || p.prs_perslid_naam || ' (' || p.prs_perslid_nr || ') - teamleider'
WHEN v.teamleider_mt = 'nee' AND v.hr_functionaris = 'ja' THEN p.prs_perslid_voornaam || ' ' || p.prs_perslid_naam || ' (' || p.prs_perslid_nr || ') - hr-functionaris'
WHEN v.teamleider_mt = 'nee' AND v.hr_functionaris = 'ja' THEN p.prs_perslid_voornaam || ' ' || p.prs_perslid_naam || ' (' || p.prs_perslid_nr || ') - teamleider / hr-functionaris'
ELSE p.prs_perslid_voornaam || ' ' || p.prs_perslid_naam || ' (' || p.prs_perslid_nr || ')'
END naam_tot,
v.teamleider_mt,
v.hr_functionaris,
b.prs_bedrijf_naam,
v.datum_uitdienst
FROM
prs_perslid p,
prs_v_afdeling a,
prs_bedrijf b,
(
SELECT prs_perslid_key,
(select CASE WHEN max(k.prs_kenmerklink_waarde) IS NULL THEN 'nee' ELSE 'ja' END teamleider_mt
from prs_kenmerklink k where k.prs_link_key = p.prs_perslid_key and k.prs_kenmerklink_niveau = 'P' and k.prs_kenmerk_key = 1280) -- tl_mt
teamleider_mt,
(select CASE WHEN max(k.prs_kenmerklink_waarde) IS NULL THEN 'nee' ELSE 'ja' END hr_functionaris
from prs_kenmerklink k where k.prs_link_key = p.prs_perslid_key and k.prs_kenmerklink_niveau = 'P' and k.prs_kenmerk_key = 1320) -- hr_functionaris
hr_functionaris,
(select TO_DATE(max(k.prs_kenmerklink_waarde),'DD-MM-YYYY')
from prs_kenmerklink k where k.prs_link_key = p.prs_perslid_key and k.prs_kenmerklink_niveau = 'P' and k.prs_kenmerk_key = 1100) -- datum_uitdienst
datum_uitdienst
FROM prs_perslid p) v
WHERE
p.prs_afdeling_key = a.prs_afdeling_key
AND a.prs_bedrijf_key = b.prs_bedrijf_key
AND p.prs_perslid_key = v.prs_perslid_key
AND p.prs_perslid_verwijder IS NULL
AND p.prs_perslid_nr IS NOT NULL
AND b.prs_bedrijf_key = 41
AND TRUNC(SYSDATE) < COALESCE(TRUNC(v.datum_uitdienst),TO_DATE('31-12-2099','DD-MM-YYYY'))
;
CREATE OR REPLACE VIEW hmod_v_personenlijst_tl
AS
SELECT *
FROM hmod_v_personenlijst
WHERE
teamleider_mt = 'ja'
;
CREATE OR REPLACE VIEW hmod_v_personenlijst_hr
AS
SELECT *
FROM hmod_v_personenlijst
WHERE
hr_functionaris = 'ja'
;
CREATE OR REPLACE VIEW hmod_v_koffersysteem_actueel
AS
SELECT *
FROM hmod_v_koffersysteem
WHERE TO_DATE (versiedatum, 'DD-MM-YYYY') = (SELECT MAX (TO_DATE (versiedatum, 'DD-MM-YYYY')) FROM hmod_v_koffersysteem)
;
CREATE OR REPLACE VIEW hmod_v_meldingen_mutatieprs
(
MLD_MELDING_KEY,
OMSCHRIJVING
)
AS
SELECT
mld_melding_key,
'SA' || to_char(mld_melding_key) || ' - ' || mld_melding_onderwerp
FROM mld_melding m
WHERE mld_stdmelding_key in (922, 923, 924) and mld_melding_status in (2,3,4)
ORDER BY mld_melding_datum DESC
;
-- Basisview en rapportview voor de telefoon-objecten mobiel en vast per persoon
CREATE OR REPLACE VIEW HMOD_V_TELEFOONNR_KLANTOBJECT
(
PRS_PERSLID_KEY,
PRS_NAAM,
SOORT,
SOORT_KEY,
NUMMER_OBJECT,
INS_DEEL_KEY, -- KEY 1
INS_DEEL_AANMAAK,
INS_DEEL_KEY2, -- KEY2 voor MOBIEL-SIM-OBJECT
VASTNR_HUIDIG,
MOBIELNR_HUIDIG
)
AS
SELECT p.prs_perslid_key,
prs_perslid_naam || ' (' || prs_perslid_voornaam || ')'
AS naam_werknemer,
sd.ins_srtdeel_omschrijving,
sd.ins_srtdeel_key,
d.ins_deel_upper,
d.ins_deel_key
key1,
d.ins_deel_aanmaak,
NULL
key2,
p.prs_perslid_telefoonnr,
p.prs_perslid_mobiel
FROM prs_perslid p,
ins_deel d,
ins_srtdeel sd,
prs_v_aanwezigafdeling v
WHERE p.prs_perslid_key = d.ins_alg_ruimte_key
AND d.ins_srtdeel_key = 70 -- Telefooncentralenummers
AND d.ins_alg_ruimte_type = 'P'
AND d.ins_deel_verwijder IS NULL
AND d.ins_deel_actief = 1
AND ( d.ins_deel_vervaldatum IS NULL
OR TRUNC (d.ins_deel_vervaldatum) > TRUNC (SYSDATE))
AND d.ins_srtdeel_key = sd.ins_srtdeel_key
AND p.prs_perslid_verwijder IS NULL
AND p.prs_afdeling_key = v.prs_afdeling_key
AND v.prs_bedrijf_key = 41 -- Personen binnen bedrijf Humanitas onder Dak
AND p.prs_perslid_key NOT IN (721) -- M.u.v. perslid voor met nr '999001' (bestemd voor objecten nog uit te lenen...)
UNION ALL
SELECT p.prs_perslid_key,
prs_perslid_naam || ' (' || prs_perslid_voornaam || ')'
AS Naam_werknemer,
sd.ins_srtdeel_omschrijving,
sd.ins_srtdeel_key,
dd.ins_deel_upper,
d.ins_deel_key
Key1,
d.ins_deel_aanmaak,
dd.ins_deel_key
Key2,
p.prs_perslid_telefoonnr,
p.prs_perslid_mobiel
FROM prs_perslid p,
ins_deel d,
ins_srtdeel sd,
prs_v_aanwezigafdeling v,
ins_kenmerkdeel kd,
ins_deel dd
WHERE p.prs_perslid_key = d.ins_alg_ruimte_key
AND d.ins_srtdeel_key = 69 -- Mobieltelefoon
AND d.ins_alg_ruimte_type = 'P'
AND d.ins_deel_verwijder IS NULL
AND d.ins_deel_actief = 1
AND ( d.ins_deel_vervaldatum IS NULL
OR TRUNC (d.ins_deel_vervaldatum) > TRUNC (SYSDATE))
AND d.ins_srtdeel_key = sd.ins_srtdeel_key
AND p.prs_perslid_verwijder IS NULL
AND p.prs_afdeling_key = v.prs_afdeling_key
AND v.prs_bedrijf_key = 41 -- afdeling binnen bedrijf Humanitas..
AND p.prs_perslid_key NOT IN (721) -- perslid voor met nr '999001' voor objecten nog uit te lenen...
AND d.ins_deel_key = kd.ins_deel_key
AND kd.ins_kenmerk_key = 152
AND kd.ins_kenmerkdeel_verwijder IS NULL
AND fac.safe_to_number (kd.ins_kenmerkdeel_waarde) =
dd.ins_deel_key
AND dd.ins_srtdeel_key = 341 -- SIM-kaarten en nummers
AND dd.ins_deel_verwijder IS NULL
AND dd.ins_deel_actief = 1
AND ( dd.ins_deel_vervaldatum IS NULL
OR TRUNC (dd.ins_deel_vervaldatum) > TRUNC (SYSDATE)) ;
CREATE OR REPLACE PROCEDURE hmod_prs_telefoonnummers (
p_applname IN VARCHAR2,
p_applrun IN VARCHAR2
)
AS
CURSOR c_vast
IS
SELECT PRS_PERSLID_KEY, PRS_NAAM, SOORT, SOORT_KEY, NUMMER_OBJECT, INS_DEEL_KEY, INS_DEEL_AANMAAK, INS_DEEL_KEY2, VASTNR_HUIDIG, MOBIELNR_HUIDIG
FROM HMOD_V_TELEFOONNR_KLANTOBJECT
WHERE SOORT_KEY = 70 AND (VASTNR_HUIDIG<>NUMMER_OBJECT OR VASTNR_HUIDIG is null) ;
CURSOR c_mob
IS
SELECT PRS_PERSLID_KEY, PRS_NAAM, SOORT, SOORT_KEY, NUMMER_OBJECT, INS_DEEL_KEY, INS_DEEL_AANMAAK, INS_DEEL_KEY2, VASTNR_HUIDIG, MOBIELNR_HUIDIG
FROM HMOD_V_TELEFOONNR_KLANTOBJECT
WHERE SOORT_KEY = 69 AND (MOBIELNR_HUIDIG<>NUMMER_OBJECT OR MOBIELNR_HUIDIG is null) ;
CURSOR c_delvast
IS
SELECT p.prs_perslid_key, p.prs_perslid_telefoonnr
FROM prs_perslid p
WHERE
p.prs_perslid_key not in (select v.prs_perslid_key from HMOD_V_TELEFOONNR_KLANTOBJECT v where v.soort_key = 70)
and p.prs_afdeling_key in (select v.prs_afdeling_key from prs_v_aanwezigafdeling v where v.prs_bedrijf_key = 41 and v.prs_afdeling_verwijder is null) -- Onderdeel bedrijf Humanitas...
and p.prs_perslid_telefoonnr is not null ;
CURSOR c_delmob
IS
SELECT p.prs_perslid_key, p.prs_perslid_mobiel
FROM prs_perslid p
WHERE
p.prs_perslid_key not in (select v.prs_perslid_key from HMOD_V_TELEFOONNR_KLANTOBJECT v where v.soort_key = 69)
and p.prs_afdeling_key in (select v.prs_afdeling_key from prs_v_aanwezigafdeling v where v.prs_bedrijf_key = 41 and v.prs_afdeling_verwijder is null) -- Onderdeel bedrijf Humanitas...
and p.prs_perslid_mobiel is not null ;
v_telefoon_vast VARCHAR2(15);
v_telefoon_mobiel VARCHAR2(15);
v_errormsg VARCHAR (200);
v_errorhint VARCHAR (200);
oracle_err_mes VARCHAR2 (150);
currentversion fac_module.fac_module_version%TYPE;
v_aanduiding VARCHAR (100);
v_count NUMBER;
BEGIN
v_count:=0;
FOR rec IN c_vast
LOOP
v_aanduiding :=
'Vast nummer gewijzigd, ' || CHR(10)
|| 'van ' || COALESCE(rec.vastnr_huidig,'<leeg>') || ' naar ' || rec.nummer_object ;
v_errorhint := 'telefoonnr vast aanpassen';
UPDATE prs_perslid p
SET prs_perslid_telefoonnr = rec.nummer_object
WHERE p.prs_perslid_key = rec.prs_perslid_key ;
fac.trackaction (
'PRSUPD',
rec.prs_perslid_key,
3,
SYSDATE,
v_aanduiding);
END LOOP;
FOR rec IN c_mob
LOOP
v_aanduiding :=
'Mobielnummer gewijzigd, ' || CHR(10)
|| 'van ' || COALESCE(rec.mobielnr_huidig,'<leeg>') || ' naar ' || rec.nummer_object ;
v_errorhint := 'telefoonnr mobiel aanpassen';
UPDATE prs_perslid p
SET prs_perslid_mobiel = rec.nummer_object
WHERE p.prs_perslid_key = rec.prs_perslid_key ;
fac.trackaction (
'PRSUPD',
rec.prs_perslid_key,
3,
SYSDATE,
v_aanduiding);
END LOOP;
FOR rec IN c_delvast
LOOP
v_aanduiding :=
'Vast nummer verwijderd ' || CHR(10)
|| 'Was ' || rec.prs_perslid_telefoonnr ;
v_errorhint := 'vast nummer verwijderen';
UPDATE prs_perslid p
SET p.prs_perslid_telefoonnr = ''
WHERE p.prs_perslid_key = rec.prs_perslid_key ;
fac.trackaction (
'PRSUPD',
rec.prs_perslid_key,
3,
SYSDATE,
v_aanduiding);
END LOOP;
FOR rec IN c_delmob
LOOP
v_aanduiding :=
'Mobielnummer verwijderd ' || CHR(10)
|| 'Was ' || rec.prs_perslid_mobiel ;
v_errorhint := 'mobielnummer verwijderen';
UPDATE prs_perslid p
SET p.prs_perslid_mobiel = ''
WHERE p.prs_perslid_key = rec.prs_perslid_key ;
fac.trackaction (
'PRSUPD',
rec.prs_perslid_key,
3,
SYSDATE,
v_aanduiding);
END LOOP;
END;
/
-- script om dagelijks terugkerende scripts aan te roepen.
CREATE OR REPLACE PROCEDURE hmod_select_daily_task (p_applname IN VARCHAR2, p_applrun IN VARCHAR2)
AS
BEGIN
-- job om de telefoonnummers in persoonkaart te synchroniseren met de eigendommen (gekoppelde telefoonobjecten vast en mobiel)
hmod_prs_telefoonnummers (p_applname, p_applrun);
END;
/
-- Rapport van de import-personen ADP.
---- Zowel te gebruiken bij LEZEN als bij VERWERKEN
---- Deze view wordt tevens gebruikt als cursor voor de import-proceduren
CREATE OR REPLACE VIEW hmod_v_prsimport
(
PRS_PERSLID_KEY,
PRS_PERSLID_NR,
PRS_PERSLID_NAAM,
PRS_PERSLID_VOORNAAM,
PRS_PERSLID_OSLOGIN,
PRS_DATUM_UITDIENST,
PRS_STATUS,
FORMATIEPLAATS_HUIDIG,
FORMATIEPLAATS_CSV,
LETTERCODE,
TOKEN,
MOB,
HIT,
LAP_EN_SIM,
LAPT,
TNC,
TNC_OMSCHRIJVING,
FACILITOR,
ADP,
ABSENTIEMANAGER,
REGAS,
CHECKS,
ACCOUNTVIEW,
ELVY,
HODNET,
PROACTIVE,
OPMERKING_KOFFERSYSTEEM,
DATUM_GELEZEN,
DATUM_VERWERKT
)
AS -- Bestaande personen die ook weer in deze PRS-import zitten
SELECT basis.prs_perslid_key,
basis.prs_perslid_nr,
basis.prs_perslid_naam,
i.prs_perslid_voornaam,
basis.prs_perslid_oslogin,
basis.DatumUitDienst,
CASE
WHEN d.datum_verwerkt is not null THEN i.prs_perslid_partner_naam -- Deze vul ik tijdens de import met de prs_status
WHEN d.datum_verwerkt is null and k.code is null THEN 'Basis - Fout'
ELSE basis.koffersysteem_status
END as prs_status,
COALESCE(basis.formatieplaats_huidig,'nvt'),
COALESCE (k.code, i.prs_kenmerk3 || ' LET OP! formatieplaats uit CSV staat niet in actueel koffersysteem') AS formatieplaats_CSV,
k.lettercode,
k.token,
k.mob,
k.hit,
k.lap_en_sim,
k.lapt,
k.tnc,
k.tnc_omschrijving,
k.facilitor,
k.adp,
k.absentiemanager,
k.regas,
k.checks,
k.accountview,
k.elvy,
k.hodnet,
k.proactive,
k.opmerking,
d.datum_gelezen,
d.datum_verwerkt
FROM (SELECT p.prs_perslid_key,
p.prs_perslid_nr,
p.prs_perslid_naam,
p.prs_perslid_oslogin,
a.prs_bedrijf_key,
b.prs_bedrijf_naam,
(SELECT prs_kenmerklink_waarde
FROM prs_kenmerklink
WHERE prs_link_key = p.prs_perslid_key
AND prs_kenmerk_key = 1025
AND prs_kenmerklink_niveau = 'P'
AND prs_kenmerklink_verwijder IS NULL)
AS formatieplaats_huidig,
(SELECT prs_kenmerklink_waarde
FROM prs_kenmerklink
WHERE prs_link_key = p.prs_perslid_key
AND prs_kenmerk_key = 1100
AND prs_kenmerklink_niveau = 'P'
AND prs_kenmerklink_verwijder IS NULL)
AS DatumUitDienst,
(SELECT kd.fac_usrdata_omschr
FROM prs_kenmerklink k, fac_usrdata kd
WHERE k.prs_link_key = p.prs_perslid_key
AND k.prs_kenmerk_key = 1081 -- Kenmerkveld Status
AND k.prs_kenmerklink_niveau = 'P'
AND k.prs_kenmerklink_verwijder IS NULL
AND k.prs_kenmerklink_waarde = kd.fac_usrdata_key
AND kd.fac_usrtab_key = 82) as Koffersysteem_status
FROM prs_perslid p,
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_perslid_verwijder IS NULL) basis,
fac_imp_perslid i,
hmod_v_koffersysteem_actueel k,
(SELECT i.fac_import_key,
MAX (f.fac_import_datum_gelezen) AS datum_gelezen,
MAX (f.fac_import_datum_verwerkt) AS datum_verwerkt
FROM fac_import f, fac_imp_perslid i
WHERE f.fac_import_key = i.fac_import_key AND f.fac_import_app_key = 41
GROUP BY i.fac_import_key,
f.fac_import_datum_gelezen,
f.fac_import_datum_verwerkt) d
WHERE basis.prs_perslid_nr = i.prs_perslid_nr
AND i.prs_kenmerk3 = k.code (+)
AND basis.prs_bedrijf_key = 41 -- Alleen voor Humanitas onder Dak mensen
UNION ALL -- NIEUWE PERSONEN die nog niet in BEDRIJF HUMANITAS zitten en die dus bij import toegevoegd gaan worden en met juiste koffersysteem gevuld moet worden...
---- Nieuwe personen zitten bij INLEZEN aan deze kant (omdat ze nog geen prs_perslid_key hebben). Bij verwerken hebben ze dit wel en dan zitten de NIEUWE personen in bovenstaande union..
SELECT -1 AS prs_perslid_key,
i.prs_perslid_nr,
i.prs_perslid_naam,
i.prs_perslid_voornaam,
NULL as prs_perslid_oslogin, -- Nieuwe mensen krijgen handmatig via voorkant een login
'' as DatumUitDienst,
CASE
WHEN k.code is null THEN 'Nieuw - Fout'
ELSE 'Nieuw'
END as prs_status,
'nvt' AS formatieplaats_huidig,
COALESCE (k.code, i.prs_kenmerk3 || ' LET OP! formatieplaats uit CSV staat niet in actueel koffersysteem') AS formatieplaats_CSV,
k.lettercode,
k.token,
k.mob,
k.hit,
k.lap_en_sim,
k.lapt,
k.tnc,
k.tnc_omschrijving,
k.facilitor,
k.adp,
k.absentiemanager,
k.regas,
k.checks,
k.accountview,
k.elvy,
k.hodnet,
k.proactive,
k.opmerking,
d.datum_gelezen,
d.datum_verwerkt
FROM fac_imp_perslid i, hmod_v_koffersysteem_actueel k,
(SELECT i.fac_import_key,
MAX (f.fac_import_datum_gelezen) AS datum_gelezen,
MAX (f.fac_import_datum_verwerkt) AS datum_verwerkt
FROM fac_import f, fac_imp_perslid i
WHERE f.fac_import_key = i.fac_import_key AND f.fac_import_app_key = 41
GROUP BY i.fac_import_key,
f.fac_import_datum_gelezen,
f.fac_import_datum_verwerkt) d
WHERE i.prs_kenmerk3 = k.code(+)
AND i.fac_import_key = d.fac_import_key
AND UPPER(i.prs_perslid_nr) NOT IN
(SELECT UPPER(p.prs_perslid_nr)
FROM prs_perslid p,
prs_bedrijf b,
prs_v_afdeling a
WHERE p.prs_afdeling_key = a.prs_afdeling_key
AND a.prs_bedrijf_key = b.prs_bedrijf_key
AND p.prs_perslid_nr IS NOT NULL
AND p.prs_perslid_verwijder IS NULL
AND b.prs_bedrijf_key = 41 -- Humanitas onder Dak
)
UNION ALL -- Alle HUMANITAS medewerkers die wel in Facilitor staan, maar niet in CSV-import zitten - Indien nodig handmatig te verwijderen
SELECT basis.prs_perslid_key,
basis.prs_perslid_nr,
basis.prs_perslid_naam,
basis.prs_perslid_voornaam,
basis.prs_perslid_oslogin,
basis.DatumUitDienst,
'Verwijderen' AS prs_status,
basis.formatieplaats_huidig,
'nvt' AS formatieplaats_CSV,
k.lettercode,
k.token,
k.mob,
k.hit,
k.lap_en_sim,
k.lapt,
k.tnc,
k.tnc_omschrijving,
k.facilitor,
k.adp,
k.absentiemanager,
k.regas,
k.checks,
k.accountview,
k.elvy,
k.hodnet,
k.proactive,
k.opmerking,
d.datum_gelezen,
d.datum_verwerkt
FROM (SELECT p.prs_perslid_key,
COALESCE(p.prs_perslid_nr,'999') as prs_perslid_nr,
p.prs_perslid_naam,
p.prs_perslid_voornaam,
p.prs_perslid_oslogin,
a.prs_bedrijf_key,
b.prs_bedrijf_naam,
(SELECT prs_kenmerklink_waarde
FROM prs_kenmerklink
WHERE prs_link_key = p.prs_perslid_key
AND prs_kenmerk_key = 1025
AND prs_kenmerklink_niveau = 'P'
AND prs_kenmerklink_verwijder IS NULL)
AS formatieplaats_huidig,
(SELECT prs_kenmerklink_waarde
FROM prs_kenmerklink
WHERE prs_link_key = p.prs_perslid_key
AND prs_kenmerk_key = 1100
AND prs_kenmerklink_niveau = 'P'
AND prs_kenmerklink_verwijder IS NULL)
AS DatumUitDienst,
(SELECT kd.fac_usrdata_omschr
FROM prs_kenmerklink k, fac_usrdata kd
WHERE k.prs_link_key = p.prs_perslid_key
AND k.prs_kenmerk_key = 1081 -- Kenmerkveld Status
AND k.prs_kenmerklink_niveau = 'P'
AND k.prs_kenmerklink_verwijder IS NULL
AND k.prs_kenmerklink_waarde = kd.fac_usrdata_key
AND kd.fac_usrtab_key = 82) as Koffersysteem_status
FROM prs_perslid p,
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 = 41
AND p.prs_perslid_verwijder IS NULL) basis,
hmod_v_koffersysteem_actueel k,
( SELECT i.fac_import_key,
MAX (f.fac_import_datum_gelezen) AS datum_gelezen,
MAX (f.fac_import_datum_verwerkt) AS datum_verwerkt
FROM fac_import f, fac_imp_perslid i
WHERE f.fac_import_key = i.fac_import_key
AND f.fac_import_app_key = 41
GROUP BY i.fac_import_key,
f.fac_import_datum_gelezen,
f.fac_import_datum_verwerkt) d
WHERE basis.formatieplaats_huidig = k.code(+)
AND basis.Koffersysteem_status != 'Nvt'
AND basis.prs_perslid_nr NOT IN (SELECT i.prs_perslid_nr
FROM fac_imp_perslid i) ;
CREATE OR REPLACE PROCEDURE hmod_import_perslid (p_import_key IN NUMBER)
AS
v_errormsg VARCHAR2 (1000) := '-';
v_errorhint VARCHAR2 (1000) := '-';
oracle_err_num NUMBER;
oracle_err_mes VARCHAR2 (200);
v_aanduiding VARCHAR2 (1000);
v_count NUMBER;
v_count_leeg NUMBER;
v_count_fout NUMBER;
v_count_nieuw NUMBER;
v_count_verwijder NUMBER;
v_count_codeverschilt NUMBER;
CURSOR c -- Alle medewerkers HUMANITAS die in aangeleverde ADP-personen-bestand zitten
IS
SELECT prs_perslid_key,
prs_perslid_nr,
prs_perslid_voornaam,
prs_perslid_oslogin,
prs_status,
formatieplaats_huidig,
formatieplaats_csv,
lettercode,
token,
mob,
hit,
lap_en_sim,
lapt,
tnc,
tnc_omschrijving,
facilitor,
adp,
absentiemanager,
regas,
checks,
accountview,
elvy,
hodnet,
proactive
FROM
hmod_v_prsimport WHERE instr(prs_status,'Verwijderen') = 0 and prs_status is not null ;
BEGIN
v_errorhint := 'Generieke import';
-- Standaard Import. De sequence array staat beschreven in PRS_PAC.SRC bij de import_perslid-PROCEDURE.
prs.import_perslid (
p_import_key,
'0;0;0;0;0;0;1;2;0;3;0;0;0;0;0;0;0;5;0;7;6;0;0;4;0;0;8;9;10;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0',
'Afdelingscode;Volbrief;Roepnaam;Geslacht;Zakelijk e-mailadres;Omschrijving verkort;Werknemernummer;Geboortenaam;Aanhef brief;Formatie code%');
-- DEF2: Afdelingscode;Volbrief;Roepnaam;Geslacht;Zakelijk e-mailadres;Omschrijving verkort;Werknemernummer;Geboortenaam;Aanhef brief;Formatie code'
----- 1 2 3 4 5 6 7 8 9 10
COMMIT;
FOR rec IN c
LOOP
BEGIN
-- Koffersysteem-kenmerken vullen
IF rec.prs_status = 'Basis' or rec.prs_status = 'Nieuw' -- Dan alle koffersysteemvelden naar personenkaart wegschrijven...
THEN
UPDATE fac_imp_perslid p
SET prs_kenmerk6 = rec.token, -- Token
prs_kenmerk7 = rec.mob, -- Mobiel
prs_kenmerk8 = rec.hit, -- Hit
prs_kenmerk9 = rec.lap_en_sim, -- Lap+Sim
prs_kenmerk10 = rec.lapt, -- Lapt
prs_kenmerk11 = rec.tnc, -- Toegangsniveau
prs_kenmerk12 = rec.facilitor, -- Facilitor
prs_kenmerk13 = rec.adp, -- ADP
prs_kenmerk14 = rec.absentiemanager, -- Absentiemanager
prs_kenmerk15 = rec.regas, -- Regas
prs_kenmerk16 = rec.checks, -- Checks
prs_kenmerk17 = rec.accountview, -- Accountview
prs_kenmerk18 = rec.elvy, -- Elvy
prs_kenmerk19 = rec.hodnet, -- HodNet
prs_kenmerk20 = rec.proactive -- Proactive
WHERE p.prs_perslid_nr = rec.prs_perslid_nr;
END IF;
-- De prs_status (= status voor deze import) ook wegschrijven in fac_imp_perslid.
---- Om updateprocedure mee te sturen... + om rapport import prs goed mee te vullen..
---- Omdat er voor koffersysteem al 20 kenmerken gevuld worden, moet ik hier ander veld voor (mis)bruiken.
UPDATE fac_imp_perslid p
SET prs_perslid_partner_naam = rec.prs_status -- Partner_naam voor misbruiken. Wordt in standaard update niet gebruikt (omdat PRS_PERSLID_NAAMGEBRUIK_CODE op 0 meegaat..)
WHERE p.prs_perslid_nr = rec.prs_perslid_nr;
-- Voorletter vullen vanuit Roepnaam
UPDATE fac_imp_perslid p
SET prs_perslid_voorletters = substr(rec.prs_perslid_voornaam,1,1)
WHERE p.prs_perslid_nr = rec.prs_perslid_nr and rec.prs_perslid_voornaam is not null;
-- Basiskoffer - Lettercode vullen -
UPDATE fac_imp_perslid p
SET prs_kenmerk4 = rec.lettercode
WHERE p.prs_perslid_nr = rec.prs_perslid_nr;
-- Loginnaam vullen vanuit huidige personenkaart
UPDATE fac_imp_perslid p
SET prs_perslid_oslogin = rec.prs_perslid_oslogin
WHERE p.prs_perslid_nr = rec.prs_perslid_nr ;
-- Alle Humanitas-personen willen we tijdens de import standaard werkplek-koppeling meegeven
-- Omdat momenteel standplaats nog niet uit ADP kan komen, wordt dit nu met default gevuld: HOD_ALG
UPDATE fac_imp_perslid p
SET alg_locatie_code = 'HOD-ALG',
alg_gebouw_code = 'G',
alg_verdieping_volgnr = 0,
alg_ruimte_nr = '_'
WHERE p.prs_perslid_nr = rec.prs_perslid_nr ;
END;
END LOOP;
BEGIN
v_errormsg := 'Checks op importbestand ';
v_aanduiding := 'Raadpleeg rapport en pas csv-bestand aan en lees opnieuw in';
v_count := 0;
v_count_leeg:=0;
v_count_fout := 0;
v_count_nieuw := 0;
v_count_verwijder :=0;
v_count_codeverschilt := 0;
-- Nog even alles tellen. NOG NAGAAN/AFSPREKEN wanneer de import moet doorlopen en wanneer men het eerst wil raadplegen..
SELECT count (*) INTO v_count FROM hmod_v_prsimport;
SELECT count (*) INTO v_count_nieuw FROM fac_imp_perslid WHERE (prs_perslid_partner_naam = 'Nieuw' or prs_perslid_partner_naam = 'Nieuw - Fout') ;
SELECT count (*) INTO v_count_fout FROM fac_imp_perslid WHERE INSTR (prs_perslid_partner_naam, 'Fout') > 0 ;
SELECT count (*) INTO v_count_verwijder FROM hmod_v_prsimport WHERE INSTR (prs_status, 'Verwijderen') > 0 ;
SELECT count (*) INTO v_count_leeg FROM fac_imp_perslid WHERE prs_perslid_partner_naam is null ;
SELECT count (*) INTO v_count_codeverschilt FROM hmod_v_prsimport WHERE prs_status = 'Basis' and formatieplaats_huidig <> formatieplaats_csv ;
IF v_count_leeg > 0 THEN
fac.imp_writelog (
p_import_key, 'W', 'Aantal personen zonder import-status is: ' || v_count_leeg,
'ACTIE: ' || v_aanduiding);
END IF;
IF v_count_fout > 0 THEN
fac.imp_writelog (
p_import_key, 'W', 'Aantal personen zonder gekoppelde formatieplaats is: ' || v_count_fout,
'ACTIE: ' || v_aanduiding);
END IF;
IF v_count_codeverschilt > 0 THEN
fac.imp_writelog (
p_import_key, 'W', 'Aantal personen die op BASIS staan, hebben in csv andere formatieplaats dan nu in Facilitor: ' || v_count_codeverschilt,
'ACTIE: ' || v_aanduiding);
END IF;
IF v_count_verwijder > 0 THEN
fac.imp_writelog (
p_import_key, 'W', 'Aantal te verwijderen personen is: '|| v_count_verwijder,
'Ter info');
END IF;
IF v_count_nieuw > 0 THEN
fac.imp_writelog (
p_import_key, 'W', 'Aantal nieuw in te lezen personen is: '|| v_count_nieuw,
'Ter info');
END IF;
IF v_count > 0 THEN
fac.imp_writelog (
p_import_key, 'W', 'Aantal totaal te muteren personen is: '|| v_count,
'Ter info');
END IF;
END;
-- Nog wat updates uitvoeren op tussentabel...
UPDATE fac_imp_perslid
SET prs_perslid_geslacht =
CASE
WHEN prs_perslid_titel = 'Man' THEN 1
WHEN prs_perslid_titel = 'Vrouw' THEN 0
ELSE NULL
END,
prs_kenmerk1 = -- Meisjesnaam leegmaken indien man
CASE
WHEN prs_perslid_titel = 'Man' THEN ''
ELSE prs_kenmerk1
END
;
-- Titel kan nu leeggemaakt worden..
UPDATE fac_imp_perslid
SET prs_perslid_titel = '' ;
EXCEPTION
WHEN OTHERS
THEN
oracle_err_num := SQLCODE;
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
v_errormsg := 'ORACLE (error ' || oracle_err_num || '/' || oracle_err_mes || ') ';
fac.imp_writelog (p_import_key, 'E', v_errormsg || v_errorhint, 'Inleesproces personen afgebroken!');
END hmod_import_perslid;
/
-- DE UPDATE
CREATE OR REPLACE PROCEDURE hmod_update_perslid (p_import_key IN NUMBER)
IS
CURSOR c_flex -- Alle records pakken. O.a. voor updaten van de algemene flex-kenmerkvelden
IS
SELECT p.prs_perslid_key, p.prs_perslid_nr, i.prs_perslid_partner_naam,i.prs_kenmerk1, i.prs_kenmerk2, i.prs_kenmerk3
FROM prs_v_aanwezigperslid p, fac_imp_perslid i
WHERE p.prs_perslid_nr = i.prs_perslid_nr
ORDER BY 2;
CURSOR c_flex_koffer -- De flexkenmerken koffersysteem - alleen updaten voor die gevuld zijn
IS
SELECT p.prs_perslid_key, p.prs_perslid_nr, i.prs_perslid_partner_naam, i.prs_kenmerk4, i.prs_kenmerk6,i.prs_kenmerk7,i.prs_kenmerk8,i.prs_kenmerk9,i.prs_kenmerk10,i.prs_kenmerk11,i.prs_kenmerk12,i.prs_kenmerk13,i.prs_kenmerk14,i.prs_kenmerk15,i.prs_kenmerk16,i.prs_kenmerk17,i.prs_kenmerk18,i.prs_kenmerk19,i.prs_kenmerk20
FROM prs_v_aanwezigperslid p, fac_imp_perslid i
WHERE p.prs_perslid_nr = i.prs_perslid_nr AND (i.prs_perslid_partner_naam = 'Basis' or i.prs_perslid_partner_naam = 'Nieuw')
ORDER BY 2;
CURSOR c_del -- Alle medewerkers van bedrijf HUMANITAS die niet in aangeleverde ADP-personen-bestand zitten
IS
SELECT prs_perslid_key,
prs_perslid_nr,
prs_status
FROM
hmod_v_prsimport WHERE prs_status = 'Verwijderen' ;
v_errorhint VARCHAR2 (1000) := '';
v_errormsg VARCHAR2 (1000);
oracle_err_num NUMBER;
oracle_err_mes VARCHAR2 (200);
v_aanduiding VARCHAR2 (1000);
v_count NUMBER;
v_count_leeg NUMBER;
v_count_fout NUMBER;
v_count_nieuw NUMBER;
v_count_verwijder NUMBER;
v_count_codeverschilt NUMBER;
BEGIN
-- Generieke update.
v_errorhint :='Fout in generieke update';
-- Nog even alles tellen. NOG NAGAAN/AFSPREKEN wanneer de import moet doorlopen en wanneer men het eerst wil raadplegen..
v_aanduiding := 'Import afgebroken (conform afspraak) - Zie rapport voor specificaties';
SELECT count (*) INTO v_count FROM hmod_v_prsimport;
SELECT count (*) INTO v_count_nieuw FROM fac_imp_perslid WHERE (prs_perslid_partner_naam = 'Nieuw' or prs_perslid_partner_naam = 'Nieuw - Fout');
SELECT count (*) INTO v_count_fout FROM fac_imp_perslid WHERE INSTR (prs_perslid_partner_naam, 'Fout') > 0 ;
SELECT count (*) INTO v_count_verwijder FROM hmod_v_prsimport WHERE INSTR (prs_status, 'Verwijderen') > 0 ;
SELECT count (*) INTO v_count_leeg FROM fac_imp_perslid WHERE prs_perslid_partner_naam is null ;
SELECT count (*) INTO v_count_codeverschilt FROM hmod_v_prsimport WHERE prs_status = 'Basis' and formatieplaats_huidig <> formatieplaats_csv ;
IF v_count < 20
THEN
fac.imp_writelog (p_import_key, 'E', 'Het aantal te importeren personen is te klein: ' || TO_CHAR (v_count), v_aanduiding);
RETURN;
END IF;
IF v_count_fout > 0
THEN
fac.imp_writelog (p_import_key, 'E', 'Er zitten in import teveel medewerkers met prs_status FOUT: ' || TO_CHAR (v_count_fout), v_aanduiding);
RETURN;
END IF;
IF v_count_nieuw > 20
THEN
fac.imp_writelog (p_import_key, 'E', 'Er zijn teveel NIEUWE medewerkers in import, kan niet kloppen: ' || TO_CHAR (v_count_nieuw), v_aanduiding);
RETURN;
END IF;
IF v_count_leeg > 0
THEN
fac.imp_writelog (p_import_key, 'E', 'Er zitten in import medewerkers ZONDER prs_status: ' || TO_CHAR (v_count_leeg), v_aanduiding);
RETURN;
END IF;
IF v_count_codeverschilt > 0
THEN
fac.imp_writelog (p_import_key, 'E', 'Er zijn (teveel) personen die op BASIS staan, maar in csv andere formatieplaats hebben dan nu in Facilitor: ' || TO_CHAR (v_count_codeverschilt), v_aanduiding);
RETURN;
END IF;
-- Generieke update. NR - key personeelsnr - NULL is geen werkplekken verwijderd
prs.update_perslid (p_import_key, 'NR', 'NULL');
-- Update flexvelden algemeen
FOR rec IN c_flex
LOOP
BEGIN
v_aanduiding := 'Import prs - ' || TO_CHAR(sysdate, 'dd/mm/yyyy - hh:mi:ss') || ' - status: ' || rec.prs_perslid_partner_naam;
v_errorhint:='Fout bijwerken meisjes';
PRS.upsertkenmerk (1023, rec.prs_perslid_key, rec.prs_kenmerk1); -- Meisjesnaam
v_errorhint:='Fout bijwerken briefaanhef';
PRS.upsertkenmerk (1024, rec.prs_perslid_key, rec.prs_kenmerk2); -- Brief aanhef
v_errorhint:='Fout bijwerken formatieplaats';
PRS.upsertkenmerk (1025, rec.prs_perslid_key, rec.prs_kenmerk3); -- Formatieplaats
-- Nog paar kenmerkvelden bijwerken
DELETE FROM prs_kenmerklink
WHERE prs_link_key = rec.prs_perslid_key
AND prs_kenmerk_key = 1082 -- Veld om aan te geven dat persoon verwijderd kan worden. Voor de personen die meekomen in de fac_imp_perslid moet deze leeggemaakt worden...
AND prs_kenmerklink_niveau = 'P'
AND prs_kenmerklink_verwijder IS NULL;
IF rec.prs_perslid_partner_naam = 'Nieuw' or rec.prs_perslid_partner_naam = 'Nieuw - Fout'
THEN
v_errorhint:='Nieuwe personen krijgen altijd basiskoffer mee';
PRS.upsertkenmerk (1081, rec.prs_perslid_key, '143'); -- Koffersysteem (status) = key 143
-- Toevoegen nieuwe personen aan de autorisatiegroep Werknemer - key 79
INSERT INTO fac_gebruikersgroep (fac_groep_key, fac_gebruikersgroep_aanmaak, prs_perslid_key)
VALUES (79, sysdate, rec.prs_perslid_key);
END IF;
fac.trackaction ('PRSUPD', rec.prs_perslid_key, 3,sysdate, v_aanduiding) ;
END;
END LOOP;
-- Update flexvelden Koffersysteem
FOR rec IN c_flex_koffer
LOOP
BEGIN
v_errorhint:='Fout bijwerken Token';
PRS.upsertkenmerk (1068, rec.prs_perslid_key, rec.prs_kenmerk6); -- Token, 6 , 1068
v_errorhint:='Fout bijwerken Mobiel';
PRS.upsertkenmerk (1067, rec.prs_perslid_key, rec.prs_kenmerk7); -- Mobiel 7 , 1067
v_errorhint:='Fout bijwerken Hit';
PRS.upsertkenmerk (1069, rec.prs_perslid_key, rec.prs_kenmerk8); -- Hit 8 , 1069
v_errorhint:='Fout bijwerken Lap+Sim';
PRS.upsertkenmerk (1063, rec.prs_perslid_key, rec.prs_kenmerk9); -- Lap+Sim 9 , 1063
v_errorhint:='Fout bijwerken Lapt';
PRS.upsertkenmerk (1065, rec.prs_perslid_key, rec.prs_kenmerk10); -- Lapt 10, 1065
v_errorhint:='Fout bijwerken Toegangsniveau';
PRS.upsertkenmerk (1061, rec.prs_perslid_key, rec.prs_kenmerk11); -- Toegangsniveau 11, 1061
v_errorhint:='Fout bijwerken Facilitor';
PRS.upsertkenmerk (1072, rec.prs_perslid_key, rec.prs_kenmerk12); -- Facilitor 12 , 1072
v_errorhint:='Fout bijwerken ADP';
PRS.upsertkenmerk (1073, rec.prs_perslid_key, rec.prs_kenmerk13); -- ADP 13 , 1073
v_errorhint:='Fout bijwerken Absentiemanager';
PRS.upsertkenmerk (1074, rec.prs_perslid_key, rec.prs_kenmerk14); -- Absentiemanager 14, 1074
v_errorhint:='Fout bijwerken Regas';
PRS.upsertkenmerk (1075, rec.prs_perslid_key, rec.prs_kenmerk15); -- Regas 15, 1075
v_errorhint:='Fout bijwerken Checks';
PRS.upsertkenmerk (1076, rec.prs_perslid_key, rec.prs_kenmerk16); -- Checks 15, 1076
v_errorhint:='Fout bijwerken Accountview';
PRS.upsertkenmerk (1077, rec.prs_perslid_key, rec.prs_kenmerk17); -- Accountview 17, 1077
v_errorhint:='Fout bijwerken Elvy';
PRS.upsertkenmerk (1078, rec.prs_perslid_key, rec.prs_kenmerk18); -- Elvy 18, 1078
v_errorhint:='Fout bijwerken HodNet';
PRS.upsertkenmerk (1079, rec.prs_perslid_key, rec.prs_kenmerk19); -- HodNet 19, 1079
v_errorhint:='Fout bijwerken Proactive';
PRS.upsertkenmerk (1080, rec.prs_perslid_key, rec.prs_kenmerk20); -- Proactive 20, 1080
v_errorhint:='Fout bijwerken Basiskoffer';
PRS.upsertkenmerk (1028, rec.prs_perslid_key, rec.prs_kenmerk4); -- Basiskoffer
-- Vanuit bovenstaande upsert komen er ook 0-waarden mee op de vinkbox-velden.
-- Voor goede werking van de HR-flow moeten deze records echter direct weer gedelete worden
DELETE FROM prs_kenmerklink kl
WHERE kl.prs_kenmerklink_key IN
(SELECT k.prs_kenmerklink_key
FROM prs_kenmerklink k, prs_kenmerk key
WHERE k.prs_kenmerk_key = key.prs_kenmerk_key
AND k.prs_kenmerklink_waarde = '0' -- 0-waarde vanuit import is niet ok
AND key.prs_kenmerk_niveau = 'P'
AND key.prs_kenmerk_kenmerktype = 'V' -- persoonskenmerken + type vinkbox
AND key.prs_kenmerk_key in (1063,1065,1067,1068,1069,1074,1075,1076,1077,1078,1080)
AND k.prs_link_key = rec.prs_perslid_key
);
END;
END LOOP;
FOR rec IN c_del
LOOP
-- prs.delete_perslid (p_import_key, rec.prs_perslid_key); -- Deze niet draaien voor HMOD ivm de workflow HRM die men in Facilitor uitvoert...?
-- wel vullen van een kenmerkveld ADP-import 1082
BEGIN
v_aanduiding := 'Import prs - ' || TO_CHAR(sysdate, 'dd/mm/yyyy - hh:mi:ss') || ' - status: ' || rec.prs_status;
v_errorhint:='Bijwerken veld verwijderen';
PRS.upsertkenmerk (1082, rec.prs_perslid_key,'let op: verwijderen' );
fac.trackaction ('PRSUPD', rec.prs_perslid_key, 3,sysdate, v_aanduiding) ;
END;
END LOOP;
BEGIN
-- Telefoongegevens komen niet mee met de ADP-import. Deze velden worden dus bij deze prs-import leeggegooid.
-- De telefoonnummers worden gevuld vanuit de aan de persoon gekoppelde telefoonobjecten (vast en mobiel)
-- Daarom aan eind van deze prs-import deze telefoonvelden weer vullen door het dagelijks script wat hiervoor 's nachts draait, nogmaals te runnen.
hmod_prs_telefoonnummers (null, null);
END;
COMMIT;
EXCEPTION
WHEN OTHERS
THEN
oracle_err_num := SQLCODE;
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
v_errormsg := 'ORACLE (error ' || oracle_err_num || '/' || oracle_err_mes || ') ';
fac.imp_writelog (p_import_key, 'E', v_errormsg || v_errorhint, 'Importproces personen afgebroken!');
END hmod_update_perslid;
/
------------------------
-- NOTIFICATIEJOBS -----
------------------------
-- View tbv notificatiejob - Melding toegewezen aan behandelteam zonder behandelaar dan notificatie sturen naar team
-- Notificatie gaat dan naar emailadres bij vakgroep-behandelteam
CREATE OR REPLACE VIEW HMOD_V_NOTI_BEHANDELTEAM
(
SENDER,
RECEIVER,
TEXT,
CODE,
FAC_SRTNOTIFICATIE_KEY,
KEY,
XKEY,
XEMAIL,
XMOBILE
)
AS
SELECT (SELECT prs_perslid_key
FROM prs_perslid
WHERE prs_perslid_upper = 'FACILITOR')
sender,
NULL
receiver,
'De melding '
|| m.mld_melding_key
|| ' is toegewezen aan jouw/jullie behandelgroep '
|| m.actieve_behandelgroep
text,
'CUST01'
code,
(SELECT fac_srtnotificatie_key
FROM fac_srtnotificatie
WHERE fac_srtnotificatie_code = 'CUST01')
fac_srtnotificatie_key,
m.mld_melding_key
key,
NULL
xkey,
m.vakgroep_email
xemail,
NULL
xmobile
FROM (SELECT m.mld_melding_key,
sm.mld_stdmelding_omschrijving,
d.ins_discipline_omschrijving, -- primaire vakgroep
(SELECT COALESCE(fac_notificatie_job_lastrun, trunc(sysdate))
FROM fac_notificatie_job
WHERE fac_notificatie_job_view ='HMOD_V_NOTI_BEHANDELTEAM')
job_datum_vanaf,
m.mld_ins_discipline_key, -- Discipline_key Actieve behandelgroep
(SELECT md2.ins_discipline_omschrijving
FROM mld_discipline md2
WHERE md2.ins_discipline_key = m.mld_ins_discipline_key)
actieve_behandelgroep,
m.mld_melding_behandelaar2_key,
dp2.mld_disc_params_emailnw3 -- email prio normaal/laag
vakgroep_email,
(SELECT COALESCE(MAX (fac_tracking_datum), sysdate)
FROM fac_tracking ft
WHERE fac_tracking_refkey = m.mld_melding_key
AND (
(INSTR (fac_tracking_oms, 'Behandelteam: ') > 0 AND fac_srtnotificatie_key = 52) -- MLDUPD
OR
(INSTR (fac_tracking_oms, 'Behandelteam is gewijzigd naar') > 0 AND fac_srtnotificatie_key = 61) -- MLDBHG
OR
(INSTR (fac_tracking_oms, 'is toegewezen aan jouw/jullie behandelgroep') > 0 AND fac_srtnotificatie_key = 261)) -- CUST01 -- flag 16
)
mld_toegewezen_laatste
FROM mld_melding m,
mld_stdmelding sm,
ins_tab_discipline d,
mld_disc_params dp, -- Primaire vakgroep
mld_disc_params dp2 -- Behandelteam vakgroep
WHERE m.mld_stdmelding_key = sm.mld_stdmelding_key
AND sm.mld_ins_discipline_key = d.ins_discipline_key
AND d.ins_discipline_module = 'MLD'
AND d.ins_discipline_key = dp.mld_ins_discipline_key
AND m.mld_ins_discipline_key = dp2.mld_ins_discipline_key -- Is de key van Behandelteam in mld_melding
AND m.mld_melding_behandelaar2_key IS NULL
AND dp2.mld_disc_params_emailnw3 IS NOT NULL) m
WHERE m.mld_toegewezen_laatste > m.job_datum_vanaf;
-- RAPPEL CONTRACTEN ---
-- Op contracten wordt dit aangegeven. Dit is in basisview opgenomen en deze fungeert als bron voor notificatie
CREATE OR REPLACE VIEW hmod_v_cnt_rappel_basis
AS
SELECT d.ins_discipline_omschrijving,
c.cnt_contract_key,
c.cnt_contract_nummer_intern
|| DECODE (c.cnt_contract_versie,
NULL, '',
'.' || c.cnt_contract_versie)
cnt_contract_nr,
c.cnt_contract_looptijd_van begindatum,
c.cnt_contract_looptijd_tot einddatum,
cnt.cnt_getopzegdatum (c.cnt_contract_key) cnt_opzegdatum,
cnt.cnt_getrappeldatum (c.cnt_contract_key) cnt_rappeldatum,
DECODE (cnt.cnt_contract_status (c.cnt_contract_looptijd_van,
cnt.cnt_getrappeldatum (c.cnt_contract_key),
cnt.cnt_getopzegdatum (c.cnt_contract_key),
c.cnt_contract_looptijd_tot),
0, lcl.l ('lcl_cnt_future'),
1, lcl.l ('lcl_cnt_topical'),
2, lcl.l ('lcl_cnt_warn'),
3, lcl.l ('lcl_cnt_cancel'),
4, lcl.l ('lcl_cnt_past'))
fase_actief,
DECODE (
c.cnt_contract_status,
0,
DECODE (fac.getsetting ('cnt_contract_approval'),
1, lcl.l ('lcl_cnt_active_approval'),
lcl.l ('lcl_cnt_active')),
1,
lcl.l ('lcl_cnt_inactive'),
2,
lcl.l ('lcl_cnt_new'),
3,
lcl.l ('lcl_cnt_forapproval'))
cnt_contract_status,
(SELECT kc.cnt_kenmerkcontract_waarde
FROM cnt_kenmerkcontract kc, cnt_kenmerk k
WHERE k.cnt_kenmerk_key = kc.cnt_kenmerk_key
AND kc.cnt_contract_key = c.cnt_contract_key
AND k.cnt_srtkenmerk_key = 122) -- contractbeheerder
vink_beheerder,
(SELECT p.prs_perslid_email
FROM prs_perslid p
WHERE p.prs_perslid_key = c.prs_perslid_key_beh
AND p.prs_perslid_verwijder IS NULL)
beheerder_email,
(SELECT kc.cnt_kenmerkcontract_waarde
FROM cnt_kenmerkcontract kc, cnt_kenmerk k
WHERE k.cnt_kenmerk_key = kc.cnt_kenmerk_key
AND kc.cnt_contract_key = c.cnt_contract_key
AND k.cnt_srtkenmerk_key = 123) -- contractverantwoordelijke
vink_verantwoordelijke,
(SELECT p.prs_perslid_email
FROM prs_perslid p
WHERE p.prs_perslid_key = c.prs_perslid_key_eig
AND p.prs_perslid_verwijder IS NULL)
veantwoordelijke_email,
(SELECT kc.cnt_kenmerkcontract_waarde
FROM cnt_kenmerkcontract kc, cnt_kenmerk k
WHERE k.cnt_kenmerk_key = kc.cnt_kenmerk_key
AND kc.cnt_contract_key = c.cnt_contract_key
AND k.cnt_srtkenmerk_key = 124) -- rappel anders
vink_anders,
(SELECT kc.cnt_kenmerkcontract_waarde
FROM cnt_kenmerkcontract kc, cnt_kenmerk k
WHERE k.cnt_kenmerk_key = kc.cnt_kenmerk_key
AND kc.cnt_contract_key = c.cnt_contract_key
AND k.cnt_srtkenmerk_key = 161) -- EMAIL bij rappel anders
anders_email
FROM cnt_v_aanwezigcontract c, ins_tab_discipline d
WHERE c.ins_discipline_key = d.ins_discipline_key
AND d.ins_discipline_module = 'CNT';
-- Rappel-opzet - versie 1
---- Wekelijks verstuurd naar Beheerder en Contractverantwoordelijke
CREATE OR REPLACE VIEW hmod_v_noti_cntreminder
(
code,
sender,
receiver,
text,
key,
xkey,
xemail,
xmobile
)
AS
SELECT NULL,
NULL,
c.prs_perslid_key_beh,
'Rappel: 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 NOT EXISTS
(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 = 61)
AND (SYSDATE BETWEEN cnt.cnt_getrappeldatum (c.cnt_contract_key) AND cnt.cnt_getopzegdatum (c.cnt_contract_key))
UNION ALL
SELECT NULL,
NULL,
c.prs_perslid_key_eig,
'Rappel: 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 c.prs_perslid_key_eig IS NOT NULL
AND NOT EXISTS
(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 = 61)
AND (SYSDATE BETWEEN cnt.cnt_getrappeldatum (c.cnt_contract_key) AND cnt.cnt_getopzegdatum (c.cnt_contract_key));
-- Rappel-opzet - HERZIEN
---- Eenmalig verstuurd...
CREATE OR REPLACE VIEW hmod_v_noti_cntreminder_2
(
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 hmod_v_cnt_rappel_basis v, cnt_v_aanwezigcontract c, prs_bedrijf b
WHERE c.cnt_prs_bedrijf_key = b.prs_bedrijf_key
AND v.cnt_contract_key = c.cnt_contract_key
AND v.vink_beheerder = 1
AND c.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 administrateur 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 = 61)
UNION ALL -- Op rappel-datum ACTIE-mail naar het 1e aanspreekpunt sturen (contractverantwoordelijke)
SELECT 'CUST02',
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 hmod_v_cnt_rappel_basis v, cnt_v_aanwezigcontract c, prs_bedrijf b
WHERE c.cnt_prs_bedrijf_key = b.prs_bedrijf_key
AND v.cnt_contract_key = c.cnt_contract_key
AND v.vink_verantwoordelijke = 1
AND c.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 = 61)
UNION ALL -- Op rappel-datum ACTIE-mail naar het 'RAPPEL-ANDERS-emailadres'
SELECT 'CUST02',
NULL,
NULL,
'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,
v.anders_email,
NULL
FROM hmod_v_cnt_rappel_basis v, cnt_v_aanwezigcontract c, prs_bedrijf b
WHERE c.cnt_prs_bedrijf_key = b.prs_bedrijf_key
AND v.cnt_contract_key = c.cnt_contract_key
AND v.vink_anders = 1
AND c.cnt_contract_status = 0
AND cnt.cnt_getrappeldatum (c.cnt_contract_key) = TRUNC (SYSDATE)
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 = 61) ;
-- domeinview Contracten
CREATE OR REPLACE VIEW hmod_v_contracten
(
KEY,
OMSCHRIJVING, -- Soort - Nr.versie - Omschrijving
CONTRACTANT, -- Voor extra_tesktkolom
VERVALDATUM -- Alle contracten die al meer dan jaar verlopen zijn, worden niet meer getoond in keuzelijst
)
AS
SELECT c.cnt_contract_key,
d.ins_discipline_omschrijving
|| ' - '
|| c.cnt_contract_nummer_intern
|| DECODE (c.cnt_contract_versie,
NULL, '',
'.' || c.cnt_contract_versie)
|| ' - '
|| c.cnt_contract_omschrijving
omschrijving,
(SELECT prs_bedrijf_naam
FROM prs_bedrijf
WHERE prs_bedrijf_key = c.cnt_prs_bedrijf_key)
contractant,
c.cnt_contract_looptijd_tot + 365
vervaldatum
FROM cnt_contract c, ins_tab_discipline d
WHERE c.ins_discipline_key = d.ins_discipline_key
AND d.ins_discipline_module = 'CNT' ;
---------------------
-- RAPPORTVIEWS -----
---------------------
-- O.a. bestemd voor overzicht HR-behandelteams
CREATE OR REPLACE VIEW hmod_v_rap_hrmeldingen
(
SRTDISCIPLINE_OMSCHRIJVING,
FCLT_3D_DISCIPLINE_KEY, -- vakgroep_key
DISCIPLINE_NAAM,
MLD_MELDING_KEY,
MLD_MELDING_NR,
MLD_MELDING_DATUM,
MLD_STD_MELDING,
MLD_MELDING_ONDERWERP,
MLD_MELDING_STATUS,
ACTIECODE_OMSCHRIJVING,
MARKERING,
MLD_AANVRAGER,
BESTEMD_VOOR_PERSONEELSLID, -- Voor wie geldt de hr-mutatie?
-- Behandeling
FCLT_3D_DISCIPLINE2_KEY, -- vakgroep_key van actieve behandelteam
ACTIEVE_BEHANDELTEAM,
BEHANDELAAR_FILTER_KEY, -- Voor HR-mensen die zowel Hoofd- als Actieve behandelaar kunnen zijn
BEHANDELAAR_FILTER_NAAM,
-- Datums en doorloop
DATUM_ACCEPT,
DATUM_EIND,
DATUM_AFGEMELD,
DOORLOOPTIJD_WD,
-- Kenmerkvelden
HR_FUNCTIONARIS, -- In aanvraag - welke hr-functionaris is aangegeven?
WORKFLOW_GEKOPPELD,
CONTROLE_ADP
)
AS
SELECT sd.ins_srtdiscipline_omschrijving,
md.ins_discipline_key,
md.ins_discipline_omschrijving,
m.mld_melding_key,
sd.ins_srtdiscipline_prefix || m.mld_melding_key
mld_melding_nr,
m.mld_melding_datum,
CASE WHEN s.mld_stdmelding_key = 145 THEN
s.mld_stdmelding_omschrijving || ' - ' ||
(SELECT fu.fac_usrdata_omschr
FROM mld_kenmerkmelding mkm,
mld_kenmerk k,
fac_usrdata fu
WHERE mkm.mld_melding_key = m.mld_melding_key
AND mkm.mld_kenmerk_key = k.mld_kenmerk_key
AND fac.safe_to_number(mkm.mld_kenmerkmelding_waarde) = fu.fac_usrdata_key
AND k.mld_kenmerk_verwijder IS NULL
AND k.mld_srtkenmerk_key = 95)
ELSE s.mld_stdmelding_omschrijving
END
mld_stdmelding_omschrijving,
m.mld_melding_onderwerp,
(SELECT mld_statuses_omschrijving
FROM mld_statuses sta
WHERE sta.mld_statuses_key = m.mld_melding_status)
mld_melding_status,
CASE WHEN mld_melding_actiecode = 2 THEN 'Actie bij aanvrager'
WHEN mld_melding_actiecode = 129 THEN 'Attentie (actie bo)'
ELSE 'Standaard'
END actiecode_omschrijving,
CASE WHEN mld_melding_flag > 0 THEN lcl.l ('lcl_mld_flag' || mld_melding_flag)
END markering,
(SELECT prs_perslid_naam_full
FROM prs_v_perslid_fullnames_all pf
WHERE pf.prs_perslid_key = m.prs_perslid_key)
mld_aanvrager,
(SELECT p.prs_perslid_naam_full
FROM mld_kenmerkmelding mkm, mld_kenmerk k, prs_v_perslid_fullnames p
WHERE mkm.mld_melding_key = m.mld_melding_key
AND mkm.mld_kenmerk_key = k.mld_kenmerk_key
AND fac.safe_to_number (mkm.mld_kenmerkmelding_waarde) = p.prs_perslid_key
AND k.mld_kenmerk_verwijder IS NULL
AND k.mld_srtkenmerk_key = 97)
bestemd_voor_personeelslid, -- srtkenmerk_key = 97
-- Behandeling
m.mld_ins_discipline_key,
(SELECT md2.ins_discipline_omschrijving
FROM mld_discipline md2
WHERE md2.ins_discipline_key = m.mld_ins_discipline_key)
actieve_behandelteam,
COALESCE(m.mld_melding_behandelaar2_key, m.mld_melding_behandelaar_key)
behandelaar_filter_key,
COALESCE(pba.prs_perslid_naam_full, pb.prs_perslid_naam_full,'<leeg>')
behandelaar_filter_naam,
-- Datums en doorloop
mld.getmeldingstatusdate (m.mld_melding_key, 4)
datum_accept,
m.mld_melding_einddatum,
COALESCE (mld.getmeldingstatusdate (m.mld_melding_key, 5),
mld.getmeldingstatusdate (m.mld_melding_key, 1))
datum_afgemeld,
DECODE (mld.getactualuitvoer (m.mld_melding_key).eenheid,
'D', mld.getactualuitvoer (m.mld_melding_key).tijdsduur,
mld.getactualuitvoer (m.mld_melding_key).tijdsduur/24)
doorlooptijd_wd,
-- Kenmerkvelden
(SELECT p.prs_perslid_naam_full
FROM mld_kenmerkmelding mkm, mld_kenmerk k, prs_v_perslid_fullnames p
WHERE mkm.mld_melding_key = m.mld_melding_key
AND mkm.mld_kenmerk_key = k.mld_kenmerk_key
AND k.mld_kenmerk_verwijder IS NULL
AND fac.safe_to_number (mkm.mld_kenmerkmelding_waarde) = p.prs_perslid_key
AND k.mld_srtkenmerk_key = 681)
hr_functionaris, -- srtkenmerk_key = 681
CASE WHEN m.mld_stdmelding_key NOT IN (923, 924, 925) THEN 'nvt'
WHEN m.mld_melding_parentkey IS NOT NULL AND m.mld_stdmelding_key IN (923, 924, 925) THEN 'ja, aan melding ' || to_char(m.mld_melding_parentkey)
ELSE ''
END
workflow_gekoppeld,
(SELECT mkm.mld_kenmerkmelding_waarde
FROM mld_kenmerkmelding mkm, mld_kenmerk k
WHERE mkm.mld_melding_key = m.mld_melding_key
AND mkm.mld_kenmerk_key = k.mld_kenmerk_key
AND k.mld_kenmerk_verwijder IS NULL
AND k.mld_srtkenmerk_key = 1741)
controle_ADP -- srtkenmerk = 1741
FROM mld_melding m,
prs_perslid p, -- aanvrager
prs_v_perslid_fullnames_all pb, -- behandelaar
prs_v_perslid_fullnames_all pba,-- actievehandelaar
mld_stdmelding s,
mld_stdmeldinggroep sg,
mld_discipline md,
mld_disc_params mdp,
ins_srtdiscipline sd
WHERE s.mld_stdmelding_key = m.mld_stdmelding_key
AND m.prs_perslid_key = p.prs_perslid_key
AND m.mld_melding_behandelaar_key = pb.prs_perslid_key (+)
AND m.mld_melding_behandelaar2_key = pba.prs_perslid_key (+)
AND sd.ins_srtdiscipline_key = md.ins_srtdiscipline_key
AND md.ins_discipline_key = s.mld_ins_discipline_key
AND md.ins_discipline_key = mdp.mld_ins_discipline_key
AND sd.ins_srtdiscipline_key = 22 -- Alleen uit SA
AND md.ins_discipline_key in (94,96) -- vakgroep HR-algemeen en HR-spec
AND s.mld_stdmeldinggroep_key = sg.mld_stdmeldinggroep_key (+)
UNION ALL
SELECT sd.ins_srtdiscipline_omschrijving,
md.ins_discipline_key,
md.ins_discipline_omschrijving,
m.mld_melding_key,
sd.ins_srtdiscipline_prefix || m.mld_melding_key
mld_melding_nr,
m.mld_melding_datum,
wf.mld_stdmelding_omschrijving || ' - ' || s.mld_stdmelding_omschrijving
mld_stdmelding_omschrijving,
m.mld_melding_onderwerp,
(SELECT mld_statuses_omschrijving
FROM mld_statuses sta
WHERE sta.mld_statuses_key = m.mld_melding_status)
mld_melding_status,
CASE WHEN mld_melding_actiecode = 2 THEN 'Actie bij aanvrager'
WHEN mld_melding_actiecode = 129 THEN 'Attentie (actie bo)'
ELSE 'Standaard'
END actiecode_omschrijving,
CASE WHEN mld_melding_flag > 0 THEN lcl.l ('lcl_mld_flag' || mld_melding_flag)
END markering,
'nvt'
mld_aanvrager,
(SELECT prs_perslid_naam_full
FROM prs_v_perslid_fullnames_all pf
WHERE pf.prs_perslid_key = m.prs_perslid_key)
bestemd_voor_personeelslid, -- Voor WF is dit aanvrager
-- Behandeling
m.mld_ins_discipline_key,
md.ins_discipline_omschrijving
actieve_behandelteam,
m.mld_melding_behandelaar_key
behandelaar_filter_key,
COALESCE(pb.prs_perslid_naam_full,'<leeg>')
behandelaar_filter_naam,
-- Datums en doorloop
mld.getmeldingstatusdate (m.mld_melding_key, 4)
datum_accept,
m.mld_melding_einddatum,
COALESCE (mld.getmeldingstatusdate (m.mld_melding_key, 5),
mld.getmeldingstatusdate (m.mld_melding_key, 1))
datum_afgemeld,
DECODE (mld.getactualuitvoer (m.mld_melding_key).eenheid,
'D', mld.getactualuitvoer (m.mld_melding_key).tijdsduur,
mld.getactualuitvoer (m.mld_melding_key).tijdsduur/24)
doorlooptijd_wd,
-- Kenmerkvelden
'nvt'
hr_functionaris,
'workflow - hoofmelding ' || to_char(m.mld_melding_start_key)
workflow_gekoppeld,
(SELECT mkm.mld_kenmerkmelding_waarde
FROM mld_kenmerkmelding mkm, mld_kenmerk k
WHERE mkm.mld_melding_key = m.mld_melding_key
AND mkm.mld_kenmerk_key = k.mld_kenmerk_key
AND k.mld_kenmerk_verwijder IS NULL
AND k.mld_srtkenmerk_key = 1741)
controle_ADP -- srtkenmerk = 1742 in acceptatie
FROM mld_melding m,
prs_perslid p, -- aanvrager
prs_v_perslid_fullnames_all pb, -- behandelaar
mld_stdmelding s,
mld_stdmeldinggroep sg,
mld_discipline md,
mld_disc_params mdp,
ins_srtdiscipline sd,
(SELECT m.mld_melding_start_key, s.mld_stdmelding_omschrijving
FROM mld_melding m, mld_stdmelding s
WHERE m.mld_melding_start_key = m.mld_melding_key
AND m.mld_stdmelding_key = s.mld_stdmelding_key ) wf
WHERE s.mld_stdmelding_key = m.mld_stdmelding_key
AND m.prs_perslid_key = p.prs_perslid_key
AND m.mld_melding_behandelaar_key = pb.prs_perslid_key (+)
AND sd.ins_srtdiscipline_key = md.ins_srtdiscipline_key
AND md.ins_discipline_key = s.mld_ins_discipline_key
AND md.ins_discipline_key = mdp.mld_ins_discipline_key
AND sd.ins_srtdiscipline_key = 24 -- Alleen uit HR-Workflows
AND s.mld_stdmeldinggroep_key = sg.mld_stdmeldinggroep_key (+)
AND m.mld_melding_start_key <> m.mld_melding_key -- Alleen de actiemeldingen in de workflow tonen
AND m.mld_melding_start_key = wf.mld_melding_start_key
;
-- Rapporview voor HMOD voor de Informatiegids om de telefoonnummers van Management te kunnen opvragen...
CREATE OR REPLACE VIEW hmod_v_rap_informatiegids
(
BEDRIJFSNAAM,
CONTACTPERSOON,
CONTACT_TEL,
CONTACT_MOB,
CONTACT_MAIL,
FUNCTIE,
CONTACTPRS_INTERN,
KERSTKAARTEN,
JAARDOCUMENT,
JAARDOCUMENT_PUBL,
HUMIT_MAILING,
RVT_MAILING
)
AS
SELECT v.BEDRIJFSNAAM,
v.CONTACT_NAAM,
v.CONTACT_TEL,
v.CONTACT_MOB,
v.CONTACT_EMAIL,
v.FUNCTIE,
v.contactpersoon_intern,
v.kerstkaarten,
v.jaardocument,
v.jaardocument_publiekeversie,
v.humit_mailing,
v.mailing_rvt_voorzitter
FROM (SELECT 0 AS soort,
b.prs_bedrijf_key,
b.prs_bedrijf_naam AS bedrijfsnaam,
b.prs_bedrijf_contact_persoon AS contact_naam,
b.prs_bedrijf_telefoon AS contact_tel,
'nvt' AS contact_mob,
b.prs_bedrijf_email AS contact_email,
'nvt' AS functie,
'nvt' AS contactpersoon_intern,
'nvt' AS kerstkaarten,
'nvt' AS jaardocument,
'nvt' AS jaardocument_publiekeversie,
'nvt' AS humit_mailing,
'nvt' AS mailing_rvt_voorzitter
FROM prs_bedrijf b
WHERE b.prs_bedrijf_ingids IS NULL
AND b.prs_bedrijf_verwijder IS NULL
UNION ALL
SELECT 1 AS soort,
b.prs_bedrijf_key,
b.prs_bedrijf_naam AS bedrijfsnaam,
c.prs_contactpersoon_naam AS contact_naam,
c.prs_contactpersoon_telefoon_1 AS contact_tel,
c.prs_contactpersoon_telefoon_2 AS contact_mob,
c.prs_contactpersoon_email AS contact_email,
c.prs_contactpersoon_functie AS functie,
(SELECT ud.fac_usrdata_omschr
FROM prs_kenmerklink kw,
prs_kenmerk k,
fac_kenmerkdomein kd,
fac_usrdata ud
WHERE kw.prs_kenmerklink_niveau = 'C'
AND kw.prs_kenmerk_key = 1260
AND k.fac_kenmerkdomein_key = kd.fac_kenmerkdomein_key
AND kd.fac_kenmerkdomein_module = 'PRS'
AND kd.fac_usrtab_key = ud.fac_usrtab_key
AND fac.safe_to_number (kw.prs_kenmerklink_waarde) = ud.fac_usrdata_key
AND kw.prs_link_key = c.prs_contactpersoon_key)
AS contactpersoon_intern,
(SELECT DECODE (COALESCE (TO_CHAR (COUNT (*)), '0'),
'1', 'aan',
'0', 'uit',
'onbekend')
FROM prs_kenmerklink kw
WHERE kw.prs_kenmerklink_niveau = 'C'
AND kw.prs_kenmerk_key = 1243
AND kw.prs_link_key = c.prs_contactpersoon_key)
AS kerstkaarten,
(SELECT DECODE (COALESCE (TO_CHAR (COUNT (*)), '0'),
'1', 'aan',
'0', 'uit',
'onbekend')
FROM prs_kenmerklink kw
WHERE kw.prs_kenmerklink_niveau = 'C'
AND kw.prs_kenmerk_key = 1241
AND kw.prs_link_key = c.prs_contactpersoon_key)
AS jaardocument,
(SELECT DECODE (COALESCE (TO_CHAR (COUNT (*)), '0'),
'1', 'aan',
'0', 'uit',
'onbekend')
FROM prs_kenmerklink kw
WHERE kw.prs_kenmerklink_niveau = 'C'
AND kw.prs_kenmerk_key = 1242
AND kw.prs_link_key = c.prs_contactpersoon_key)
AS jaardocument_publiekeversie,
(SELECT DECODE (COALESCE (TO_CHAR (COUNT (*)), '0'),
'1', 'aan',
'0', 'uit',
'onbekend')
FROM prs_kenmerklink kw
WHERE kw.prs_kenmerklink_niveau = 'C'
AND kw.prs_kenmerk_key = 1240
AND kw.prs_link_key = c.prs_contactpersoon_key)
AS humit_mailing,
(SELECT DECODE (COALESCE (TO_CHAR (COUNT (*)), '0'),
'1', 'aan',
'0', 'uit',
'onbekend')
FROM prs_kenmerklink kw
WHERE kw.prs_kenmerklink_niveau = 'C'
AND kw.prs_kenmerk_key = 1244
AND kw.prs_link_key = c.prs_contactpersoon_key)
AS mailing_rvt_voorzitter
FROM prs_bedrijf b, prs_contactpersoon c
WHERE b.prs_bedrijf_ingids IS NULL
AND b.prs_bedrijf_verwijder IS NULL
AND b.prs_bedrijf_key = c.prs_bedrijf_key
AND c.prs_contactpersoon_verwijder IS NULL) v
ORDER BY v.bedrijfsnaam, v.soort;
-- Rapport met de telefooncentrale-nr's als objecten vastgelegd onder objectsoort 2438
-- View kan in principe met udr-insdeel gemaakt worden echter dat rapport wordt dan nog niet goed getoond in Informatiegids
-- Daarom een cust-view voor gemaakt. Zie ook ticket HMOD#64927.
CREATE OR REPLACE VIEW hmod_v_rap_telefooncentr_nrs
(
PLAATS,
BEZOEKADRES,
TELEFOON_AFDELING,
AFDELING, -- opmerkingsinfo bij Object
TELEFOON_ALGEMEEN,
EMAIL_ALGEMEEN
)
AS
SELECT
l.alg_locatie_plaats,
l.alg_locatie_adres,
i.ins_deel_omschrijving,
i.ins_deel_opmerking,
(SELECT kl.alg_onrgoedkenmerk_waarde
FROM alg_onrgoedkenmerk kl, alg_kenmerk k
WHERE kl.alg_kenmerk_key = k.alg_kenmerk_key
AND kl.alg_onrgoed_key = l.alg_locatie_key
AND kl.alg_onrgoed_niveau = 'L'
AND k.alg_kenmerk_key = 1040) telefoon_algemeen,
l.alg_locatie_email
FROM
ins_deel i,
ins_srtdeel s,
ins_v_alg_overzicht o,
alg_locatie l
WHERE i.ins_deel_verwijder IS NULL
AND i.ins_deel_module = 'INS'
AND i.ins_deel_parent_key IS NULL
AND o.alg_onroerendgoed_keys = i.ins_alg_ruimte_key
AND o.alg_onroerendgoed_type = i.ins_alg_ruimte_type
AND i.ins_alg_ruimte_type IN ('T', 'R', 'W')
AND o.alg_locatie_key = i.ins_alg_locatie_key
AND i.ins_alg_locatie_key = l.alg_locatie_key
AND s.ins_srtdeel_key = i.ins_srtdeel_key
AND s.ins_srtdeel_code = '2438' -- Telefooncentrale nummers
AND i.ins_deel_opmerking IS NOT NULL
ORDER BY l.alg_locatie_plaats, l.alg_locatie_adres, i.ins_deel_omschrijving ;
-- View - Per persoon de eigendommen (gekoppelde objecten) en de persoonlijke koffersysteem-kenmerken
---- O.a. bedoeld om via gestylde UDR de gebruikersovereenkomst op te stellen
CREATE OR REPLACE VIEW hmod_v_koffersysteem_prs
(
PRS_PERSLID_KEY,
PERSONEELSNR,
NAAM,
FUNCTIE,
AFDELING,
BEDRIJFSNAAM,
TYPE_EIGENDOM,
INS_DISC,
INS_GROEP,
INS_SOORT,
INS_SOORT_CODE,
SOORT_EIGENDOM,
INS_DEEL_KEY,
INS_DEEL_UPPER,
GEBRUIKSEIGENDOM,
MERK,
TYPE,
SERIENUMMER,
IMEI_NR,
FORMATIEPLAATS,
KOFFERSYSTEEM_STATUS,
DATUM_UITDIENST,
PRS_PERSLID_VERWIJDER
)
AS
SELECT -- 1. Objecteigendommen
p.prs_perslid_key,
p.prs_perslid_nr,
p.prs_perslid_voornaam || ' ' || p.prs_perslid_naam,
sp.prs_srtperslid_omschrijving,
a.prs_afdeling_naam || ' - ' || a.prs_afdeling_upper
AS Afdeling,
b.prs_bedrijf_naam,
'Apparatuur'
type_eigendom, --apparatuur of rechten koffersysteem
vd.ins_discipline_omschrijving,
vd.ins_srtgroep_upper,
vd.ins_srtdeel_upper,
sd.ins_srtdeel_code,
sd.ins_srtdeel_omschrijving,
vd.ins_deel_key,
vd.ins_deel_upper,
COALESCE (s.sim_nr, vd.ins_deel_upper)
IdentificatieCode,
(SELECT kw.ins_kenmerkdeel_waarde
FROM ins_kenmerkdeel kw, ins_kenmerk k
WHERE kw.ins_deel_key = vd.ins_deel_key
AND kw.ins_kenmerk_key = k.ins_kenmerk_key
AND k.ins_srtkenmerk_key = 9)
merk,
(SELECT kw.ins_kenmerkdeel_waarde
FROM ins_kenmerkdeel kw, ins_kenmerk k
WHERE kw.ins_deel_key = vd.ins_deel_key
AND kw.ins_kenmerk_key = k.ins_kenmerk_key
AND k.ins_srtkenmerk_key = 11)
type,
(SELECT kw.ins_kenmerkdeel_waarde
FROM ins_kenmerkdeel kw, ins_kenmerk k
WHERE kw.ins_deel_key = vd.ins_deel_key
AND kw.ins_kenmerk_key = k.ins_kenmerk_key
AND k.ins_srtkenmerk_key = 10)
serienummer,
(SELECT kw.ins_kenmerkdeel_waarde
FROM ins_kenmerkdeel kw, ins_kenmerk k
WHERE kw.ins_deel_key = vd.ins_deel_key
AND kw.ins_kenmerk_key = k.ins_kenmerk_key
AND k.ins_srtkenmerk_key = 63)
IMEI_nr,
(SELECT kw.prs_kenmerklink_waarde
FROM prs_kenmerklink kw
WHERE kw.prs_link_key = p.prs_perslid_key
AND kw.prs_kenmerklink_niveau = 'P'
AND kw.prs_kenmerk_key = 1025)
formatieplaats,
(SELECT ud.fac_usrdata_omschr
FROM prs_kenmerklink kw,
prs_kenmerk k,
fac_kenmerkdomein d,
fac_usrtab ut,
fac_usrdata ud
WHERE kw.prs_link_key = p.prs_perslid_key
AND kw.prs_kenmerklink_niveau = 'P'
AND kw.prs_kenmerk_key = 1081
AND kw.prs_kenmerk_key = k.prs_kenmerk_key
AND k.fac_kenmerkdomein_key = d.fac_kenmerkdomein_key
AND d.fac_usrtab_key = ut.fac_usrtab_key
AND ut.fac_usrtab_key = ud.fac_usrtab_key
AND fac.safe_to_number (kw.prs_kenmerklink_waarde) =
ud.fac_usrdata_key)
koffersysteem_status,
(SELECT kw.prs_kenmerklink_waarde
FROM prs_kenmerklink kw
WHERE kw.prs_link_key = p.prs_perslid_key
AND kw.prs_kenmerklink_niveau = 'P'
AND kw.prs_kenmerk_key = 1100)
datum_uitdienst,
p.prs_perslid_verwijder
FROM prs_perslid p,
prs_v_afdeling_boom va,
prs_bedrijf b,
prs_afdeling a,
prs_srtperslid sp,
ins_v_deel_gegevens vd,
ins_srtdeel sd,
(SELECT d.ins_deel_key,
d.ins_deel_upper,
kw.ins_kenmerkdeel_waarde,
sim.ins_deel_upper AS sim_nr
FROM ins_deel d,
ins_kenmerkdeel kw,
ins_kenmerk k,
ins_deel sim
WHERE d.ins_deel_key = kw.ins_deel_key
AND kw.ins_kenmerk_key = k.ins_kenmerk_key
AND k.ins_srtkenmerk_key = 24 -- SIM-kaart
AND kw.ins_kenmerkdeel_verwijder IS NULL
AND fac.safe_to_number (kw.ins_kenmerkdeel_waarde) =
sim.ins_deel_key) s
WHERE p.prs_afdeling_key = va.prs_afdeling_key
AND va.prs_bedrijf_key = b.prs_bedrijf_key
AND p.prs_afdeling_key = a.prs_afdeling_key
AND p.prs_srtperslid_key = sp.prs_srtperslid_key
AND p.prs_perslid_verwijder IS NULL
AND p.prs_perslid_key = vd.prs_perslid_key
AND vd.ins_srtdeel_key = sd.ins_srtdeel_key
AND vd.ins_deel_key = s.ins_deel_key(+)
UNION ALL
SELECT -- 2. Eigen koffersysteem
p.prs_perslid_key,
p.prs_perslid_nr,
p.prs_perslid_voornaam || ' ' || p.prs_perslid_naam,
sp.prs_srtperslid_omschrijving,
a.prs_afdeling_naam || ' - ' || a.prs_afdeling_upper
AS Afdeling,
b.prs_bedrijf_naam,
'Eigen koffersysteem'
type_eigendom,
NULL,
NULL,
NULL,
NULL,
koffer.soort,
NULL,
NULL,
prs_kenmerk_omschrijving,
NULL,
NULL,
NULL,
NULL,
(SELECT kw.prs_kenmerklink_waarde
FROM prs_kenmerklink kw
WHERE kw.prs_link_key = p.prs_perslid_key
AND kw.prs_kenmerklink_niveau = 'P'
AND kw.prs_kenmerk_key = 1025)
formatieplaats,
(SELECT ud.fac_usrdata_omschr
FROM prs_kenmerklink kw,
prs_kenmerk k,
fac_kenmerkdomein d,
fac_usrtab ut,
fac_usrdata ud
WHERE kw.prs_link_key = p.prs_perslid_key
AND kw.prs_kenmerklink_niveau = 'P'
AND kw.prs_kenmerk_key = 1081
AND kw.prs_kenmerk_key = k.prs_kenmerk_key
AND k.fac_kenmerkdomein_key = d.fac_kenmerkdomein_key
AND d.fac_usrtab_key = ut.fac_usrtab_key
AND ut.fac_usrtab_key = ud.fac_usrtab_key
AND fac.safe_to_number (kw.prs_kenmerklink_waarde) =
ud.fac_usrdata_key)
koffersysteem_status,
(SELECT kw.prs_kenmerklink_waarde
FROM prs_kenmerklink kw
WHERE kw.prs_link_key = p.prs_perslid_key
AND kw.prs_kenmerklink_niveau = 'P'
AND kw.prs_kenmerk_key = 1100)
datum_uitdienst,
p.prs_perslid_verwijder
FROM prs_perslid p,
prs_v_afdeling_boom va,
prs_bedrijf b,
prs_afdeling a,
prs_srtperslid sp,
( SELECT v.prs_link_key AS prs_perslid_key,
v.prs_kenmerk_omschrijving,
v.soort
FROM ((SELECT kw.prs_link_key,
k.prs_kenmerk_omschrijving,
'Telefonie en IT' AS Soort
FROM prs_kenmerklink kw, prs_kenmerk k
WHERE kw.prs_kenmerklink_niveau = 'P'
AND kw.prs_kenmerk_key = k.prs_kenmerk_key
AND k.prs_kenmerk_key = 1063)
UNION
(SELECT kw.prs_link_key,
k.prs_kenmerk_omschrijving,
'Telefonie en IT' AS Soort
FROM prs_kenmerklink kw, prs_kenmerk k
WHERE kw.prs_kenmerklink_niveau = 'P'
AND kw.prs_kenmerk_key = k.prs_kenmerk_key
AND k.prs_kenmerk_key = 1065)
UNION
(SELECT kw.prs_link_key,
k.prs_kenmerk_omschrijving,
'Telefonie en IT' AS Soort
FROM prs_kenmerklink kw, prs_kenmerk k
WHERE kw.prs_kenmerklink_niveau = 'P'
AND kw.prs_kenmerk_key = k.prs_kenmerk_key
AND k.prs_kenmerk_key = 1067)
UNION
(SELECT kw.prs_link_key,
k.prs_kenmerk_omschrijving,
'Telefonie en IT' AS Soort
FROM prs_kenmerklink kw, prs_kenmerk k
WHERE kw.prs_kenmerklink_niveau = 'P'
AND kw.prs_kenmerk_key = k.prs_kenmerk_key
AND k.prs_kenmerk_key = 1068)
UNION
(SELECT kw.prs_link_key,
k.prs_kenmerk_omschrijving,
'Telefonie en IT' AS Soort
FROM prs_kenmerklink kw, prs_kenmerk k
WHERE kw.prs_kenmerklink_niveau = 'P'
AND kw.prs_kenmerk_key = k.prs_kenmerk_key
AND k.prs_kenmerk_key = 1069)
UNION
(SELECT kw.prs_link_key,
k.prs_kenmerk_omschrijving,
'Applicaties' AS Soort
FROM prs_kenmerklink kw, prs_kenmerk k
WHERE kw.prs_kenmerklink_niveau = 'P'
AND kw.prs_kenmerk_key = k.prs_kenmerk_key
AND k.prs_kenmerk_key = 1072)
UNION
(SELECT kw.prs_link_key,
k.prs_kenmerk_omschrijving,
'Applicaties' AS Soort
FROM prs_kenmerklink kw, prs_kenmerk k
WHERE kw.prs_kenmerklink_niveau = 'P'
AND kw.prs_kenmerk_key = k.prs_kenmerk_key
AND k.prs_kenmerk_key = 1073)
UNION
(SELECT kw.prs_link_key,
k.prs_kenmerk_omschrijving,
'Applicaties' AS Soort
FROM prs_kenmerklink kw, prs_kenmerk k
WHERE kw.prs_kenmerklink_niveau = 'P'
AND kw.prs_kenmerk_key = k.prs_kenmerk_key
AND k.prs_kenmerk_key = 1074)
UNION
(SELECT kw.prs_link_key,
k.prs_kenmerk_omschrijving,
'Applicaties' AS Soort
FROM prs_kenmerklink kw, prs_kenmerk k
WHERE kw.prs_kenmerklink_niveau = 'P'
AND kw.prs_kenmerk_key = k.prs_kenmerk_key
AND k.prs_kenmerk_key = 1075)
UNION
(SELECT kw.prs_link_key,
k.prs_kenmerk_omschrijving,
'Applicaties' AS Soort
FROM prs_kenmerklink kw, prs_kenmerk k
WHERE kw.prs_kenmerklink_niveau = 'P'
AND kw.prs_kenmerk_key = k.prs_kenmerk_key
AND k.prs_kenmerk_key = 1076)
UNION
(SELECT kw.prs_link_key,
k.prs_kenmerk_omschrijving,
'Applicaties' AS Soort
FROM prs_kenmerklink kw, prs_kenmerk k
WHERE kw.prs_kenmerklink_niveau = 'P'
AND kw.prs_kenmerk_key = k.prs_kenmerk_key
AND k.prs_kenmerk_key = 1077)
UNION
(SELECT kw.prs_link_key,
k.prs_kenmerk_omschrijving,
'Applicaties' AS Soort
FROM prs_kenmerklink kw, prs_kenmerk k
WHERE kw.prs_kenmerklink_niveau = 'P'
AND kw.prs_kenmerk_key = k.prs_kenmerk_key
AND k.prs_kenmerk_key = 1078)
UNION
(SELECT kw.prs_link_key,
k.prs_kenmerk_omschrijving,
'Applicaties' AS Soort
FROM prs_kenmerklink kw, prs_kenmerk k
WHERE kw.prs_kenmerklink_niveau = 'P'
AND kw.prs_kenmerk_key = k.prs_kenmerk_key
AND k.prs_kenmerk_key = 1079)
UNION
(SELECT kw.prs_link_key,
k.prs_kenmerk_omschrijving,
'Applicaties' AS Soort
FROM prs_kenmerklink kw, prs_kenmerk k
WHERE kw.prs_kenmerklink_niveau = 'P'
AND kw.prs_kenmerk_key = k.prs_kenmerk_key
AND k.prs_kenmerk_key = 1080)) v
ORDER BY v.prs_link_key, v.soort, v.prs_kenmerk_omschrijving) koffer
WHERE p.prs_afdeling_key = va.prs_afdeling_key
AND va.prs_bedrijf_key = b.prs_bedrijf_key
AND p.prs_afdeling_key = a.prs_afdeling_key
AND p.prs_srtperslid_key = sp.prs_srtperslid_key
AND p.prs_perslid_key = koffer.prs_perslid_key
AND p.prs_perslid_verwijder IS NULL
;
-- Persoonlijk Koffersysteem vergeleken met Basis-koffersysteem (om snel discrepanties mee naar boven te halen
CREATE OR REPLACE VIEW hmod_v_koffersysteem_prs2
(
PERSLID_KEY,
PERSLID_NR,
PERSLID_NAAM,
FUNCTIE,
AFDELING,
BEDRIJF,
FORMATIEPLAATS,
KOFFERSYSTEEM_STATUS,
B_LAP_EN_SIM,
P_LAP_EN_SIM,
B_LAPT,
P_LAPT,
B_MOB,
P_MOB,
B_TOKEN,
P_TOKEN,
B_HIT,
P_HIT,
B_FACILITOR,
P_FACILITOR,
B_ADP,
P_ADP,
B_ABSENTIEMANAGER,
P_ABSENTIEMANAGER,
B_REGAS,
P_REGAS,
B_CHECKS,
P_CHECKS,
B_ACCOUNTVIEW,
P_ACCOUNTVIEW,
B_ELVY,
P_ELVY,
B_HODNET,
P_HODNET,
B_PROACTIVE,
P_PROACTIVE,
B_TOEGANGSNIVEAU, -- tnc
P_TOEGANGSNIVEAU,
OPMERKING_KOFFERSYSTEEM,
DATUM_UITDIENST,
VERWIJDERD
)
AS
SELECT
p.prs_perslid_key,
p.prs_perslid_nr,
p.prs_perslid_voornaam || ' ' || p.prs_perslid_naam,
sp.prs_srtperslid_omschrijving,
a.prs_afdeling_naam || ' - ' || a.prs_afdeling_upper
AS Afdeling,
b.prs_bedrijf_naam,
v.formatieplaats,
v.koffersysteem_status,
COALESCE(k.lap_en_sim,'<!>') b_lap_en_sim,
(SELECT COALESCE(max(kw.prs_kenmerklink_waarde),'0')
FROM prs_kenmerklink kw, prs_kenmerk k
WHERE kw.prs_kenmerklink_niveau = 'P'
AND kw.prs_link_key = p.prs_perslid_key
AND kw.prs_kenmerk_key = k.prs_kenmerk_key
AND k.prs_kenmerk_key = 1063) p_lap_en_sim,
COALESCE(k.lapt,'<!>') b_lapt,
(SELECT COALESCE(max(kw.prs_kenmerklink_waarde),'0')
FROM prs_kenmerklink kw, prs_kenmerk k
WHERE kw.prs_kenmerklink_niveau = 'P'
AND kw.prs_link_key = p.prs_perslid_key
AND kw.prs_kenmerk_key = k.prs_kenmerk_key
AND k.prs_kenmerk_key = 1065) p_lapt,
COALESCE(k.mob,'<!>') b_mob,
(SELECT COALESCE(max(kw.prs_kenmerklink_waarde),'0')
FROM prs_kenmerklink kw, prs_kenmerk k
WHERE kw.prs_kenmerklink_niveau = 'P'
AND kw.prs_link_key = p.prs_perslid_key
AND kw.prs_kenmerk_key = k.prs_kenmerk_key
AND k.prs_kenmerk_key = 1067) p_mob,
COALESCE(k.token,'<!>') b_token,
(SELECT COALESCE(max(kw.prs_kenmerklink_waarde),'0')
FROM prs_kenmerklink kw, prs_kenmerk k
WHERE kw.prs_kenmerklink_niveau = 'P'
AND kw.prs_link_key = p.prs_perslid_key
AND kw.prs_kenmerk_key = k.prs_kenmerk_key
AND k.prs_kenmerk_key = 1068) p_token,
COALESCE(k.hit,'<!>') b_hit,
(SELECT COALESCE(max(kw.prs_kenmerklink_waarde),'0')
FROM prs_kenmerklink kw, prs_kenmerk k
WHERE kw.prs_kenmerklink_niveau = 'P'
AND kw.prs_link_key = p.prs_perslid_key
AND kw.prs_kenmerk_key = k.prs_kenmerk_key
AND k.prs_kenmerk_key = 1069) p_hit,
COALESCE(k.facilitor,'<!>') b_facilitor,
(SELECT COALESCE(max(kw.prs_kenmerklink_waarde),'0')
FROM prs_kenmerklink kw, prs_kenmerk k
WHERE kw.prs_kenmerklink_niveau = 'P'
AND kw.prs_link_key = p.prs_perslid_key
AND kw.prs_kenmerk_key = k.prs_kenmerk_key
AND k.prs_kenmerk_key = 1072) p_facilitor,
COALESCE(k.adp,'<!>') b_adp,
(SELECT COALESCE(max(kw.prs_kenmerklink_waarde),'0')
FROM prs_kenmerklink kw, prs_kenmerk k
WHERE kw.prs_kenmerklink_niveau = 'P'
AND kw.prs_link_key = p.prs_perslid_key
AND kw.prs_kenmerk_key = k.prs_kenmerk_key
AND k.prs_kenmerk_key = 1073) p_adp,
COALESCE(k.absentiemanager,'<!>') b_absentiemanager,
(SELECT COALESCE(max(kw.prs_kenmerklink_waarde),'0')
FROM prs_kenmerklink kw, prs_kenmerk k
WHERE kw.prs_kenmerklink_niveau = 'P'
AND kw.prs_link_key = p.prs_perslid_key
AND kw.prs_kenmerk_key = k.prs_kenmerk_key
AND k.prs_kenmerk_key = 1074) p_absentiemanager,
COALESCE(k.regas,'<!>') b_regas,
(SELECT COALESCE(max(kw.prs_kenmerklink_waarde),'0')
FROM prs_kenmerklink kw, prs_kenmerk k
WHERE kw.prs_kenmerklink_niveau = 'P'
AND kw.prs_link_key = p.prs_perslid_key
AND kw.prs_kenmerk_key = k.prs_kenmerk_key
AND k.prs_kenmerk_key = 1075) p_regas,
COALESCE(k.checks,'<!>') b_checks,
(SELECT COALESCE(max(kw.prs_kenmerklink_waarde),'0')
FROM prs_kenmerklink kw, prs_kenmerk k
WHERE kw.prs_kenmerklink_niveau = 'P'
AND kw.prs_link_key = p.prs_perslid_key
AND kw.prs_kenmerk_key = k.prs_kenmerk_key
AND k.prs_kenmerk_key = 1076) p_checks,
COALESCE(k.accountview,'<!>') b_accountview,
(SELECT COALESCE(max(kw.prs_kenmerklink_waarde),'0')
FROM prs_kenmerklink kw, prs_kenmerk k
WHERE kw.prs_kenmerklink_niveau = 'P'
AND kw.prs_link_key = p.prs_perslid_key
AND kw.prs_kenmerk_key = k.prs_kenmerk_key
AND k.prs_kenmerk_key = 1077) p_accountview,
COALESCE(k.elvy,'<!>') b_elvy,
(SELECT COALESCE(max(kw.prs_kenmerklink_waarde),'0')
FROM prs_kenmerklink kw, prs_kenmerk k
WHERE kw.prs_kenmerklink_niveau = 'P'
AND kw.prs_link_key = p.prs_perslid_key
AND kw.prs_kenmerk_key = k.prs_kenmerk_key
AND k.prs_kenmerk_key = 1078) p_elvy,
COALESCE(k.hodnet,'<!>') b_hodnet,
(SELECT COALESCE(max(kw.prs_kenmerklink_waarde),'0')
FROM prs_kenmerklink kw, prs_kenmerk k
WHERE kw.prs_kenmerklink_niveau = 'P'
AND kw.prs_link_key = p.prs_perslid_key
AND kw.prs_kenmerk_key = k.prs_kenmerk_key
AND k.prs_kenmerk_key = 1079) p_hodnet,
COALESCE(k.proactive,'<!>') b_proactive,
(SELECT COALESCE(max(kw.prs_kenmerklink_waarde),'0')
FROM prs_kenmerklink kw, prs_kenmerk k
WHERE kw.prs_kenmerklink_niveau = 'P'
AND kw.prs_link_key = p.prs_perslid_key
AND kw.prs_kenmerk_key = k.prs_kenmerk_key
AND k.prs_kenmerk_key = 1080) p_proactive,
COALESCE(k.tnc,'<!>') b_toegangsniveau,
(SELECT COALESCE(max(kw.prs_kenmerklink_waarde),'0')
FROM prs_kenmerklink kw, prs_kenmerk k
WHERE kw.prs_kenmerklink_niveau = 'P'
AND kw.prs_link_key = p.prs_perslid_key
AND kw.prs_kenmerk_key = k.prs_kenmerk_key
AND k.prs_kenmerk_key = 1061) p_toegangsniveau,
k.opmerking,
(SELECT kw.prs_kenmerklink_waarde
FROM prs_kenmerklink kw
WHERE kw.prs_link_key = p.prs_perslid_key
AND kw.prs_kenmerklink_niveau = 'P'
AND kw.prs_kenmerk_key = 1100)
datum_uitdienst,
p.prs_perslid_verwijder
FROM prs_perslid p,
prs_v_afdeling_boom va,
prs_bedrijf b,
prs_afdeling a,
prs_srtperslid sp,
(SELECT prs_perslid_key,
(SELECT kw.prs_kenmerklink_waarde
FROM prs_kenmerklink kw
WHERE kw.prs_link_key = p.prs_perslid_key
AND kw.prs_kenmerklink_niveau = 'P'
AND kw.prs_kenmerk_key = 1025)
formatieplaats,
(SELECT ud.fac_usrdata_omschr
FROM prs_kenmerklink kw,
prs_kenmerk k,
fac_kenmerkdomein d,
fac_usrtab ut,
fac_usrdata ud
WHERE kw.prs_link_key = p.prs_perslid_key
AND kw.prs_kenmerklink_niveau = 'P'
AND kw.prs_kenmerk_key = 1081
AND kw.prs_kenmerk_key = k.prs_kenmerk_key
AND k.fac_kenmerkdomein_key = d.fac_kenmerkdomein_key
AND d.fac_usrtab_key = ut.fac_usrtab_key
AND ut.fac_usrtab_key = ud.fac_usrtab_key
AND fac.safe_to_number (kw.prs_kenmerklink_waarde) = ud.fac_usrdata_key)
koffersysteem_status
FROM prs_perslid p ) v,
(
SELECT *
FROM hmod_v_koffersysteem
WHERE TO_DATE (versiedatum, 'DD-MM-YYYY') =
(SELECT MAX (TO_DATE (versiedatum, 'DD-MM-YYYY'))
FROM hmod_v_koffersysteem) ) k
WHERE p.prs_afdeling_key = va.prs_afdeling_key
AND va.prs_bedrijf_key = b.prs_bedrijf_key
AND p.prs_afdeling_key = a.prs_afdeling_key
AND p.prs_srtperslid_key = sp.prs_srtperslid_key
AND p.prs_perslid_key = v.prs_perslid_key
AND p.prs_perslid_verwijder IS NULL
AND v.formatieplaats = k.code (+)
;
-- Meldingen en Actiedatums - Tbv Kalenderview (gebouwbeheerders)
CREATE OR REPLACE VIEW hmod_v_rap_meldingen_bo
(
MLD_MELDING_KEY,
MLD_MELDING_ONDERWERP,
BEHANDELAAR_KEY,
BEHANDELAAR,
MLD_STDMELDING_OMSCHRIJVING,
MLD_STDMELDINGGROEP_NAAM,
MLD_STATUS_OMSCHRIJVING,
LOCATIE_PLAATS,
LOCATIE_OMSCHRIJVING,
MLD_MELDING_DATUM,
MLD_MELDING_ACTIEDATUM,
MLD_MELDING_ACTIEDATUM_B, -- berekend voor kalenderweergave
MLD_MELDING_EINDDATUM,
OPDRACHTEN_AANTAL_LOPEND,
STATUS_KALENDER -- t.b.v. kalenderweergave
)
AS
SELECT m.mld_melding_key,
m.mld_melding_onderwerp,
m.mld_melding_behandelaar_key,
COALESCE(pb.prs_perslid_naam_friendly, '<nog geen behandelaar>')
behandelaar,
std.mld_stdmelding_omschrijving,
stg.mld_stdmeldinggroep_naam,
ms.mld_statuses_omschrijving,
l.alg_locatie_plaats,
l.alg_locatie_omschrijving,
m.mld_melding_datum,
m.mld_melding_actiedatum,
CASE WHEN m.mld_melding_actiedatum IS NULL THEN m.mld_melding_datum
ELSE m.mld_melding_actiedatum
END
mld_melding_actiedatum_b,
m.mld_melding_einddatum,
(SELECT count(*) FROM mld_opdr o WHERE o.mld_melding_key = m.mld_melding_key AND o.mld_statusopdr_key IN (5,8) ) -- uitgegeven, geaccepteerd
opdrachten_aantal_lopend,
CASE
WHEN ms.mld_statuses_key IN (2,3,4,7) AND m.mld_melding_actiedatum IS NULL THEN 'Nog inplannen' -- lopende melding nog inplannen
WHEN ms.mld_statuses_key IN (2,3,4,7) AND m.mld_melding_actiedatum IS NOT NULL THEN 'Ingepland' -- lopende melding nog inplannen
ELSE ms.mld_statuses_omschrijving
END status_kalender
FROM mld_melding m,
mld_statuses ms,
prs_v_perslid_fullnames p, -- melder
prs_v_perslid_fullnames pb, -- behandelaar
ins_tab_discipline d,
mld_stdmelding std,
mld_stdmeldinggroep stg,
alg_locatie l,
alg_district d
WHERE 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 l.alg_district_key = d.alg_district_key
AND m.mld_melding_status = ms.mld_statuses_key
AND m.prs_perslid_key = p.prs_perslid_key(+)
AND m.mld_melding_behandelaar_key = pb.prs_perslid_key (+)
AND std.mld_stdmeldinggroep_key = stg.mld_stdmeldinggroep_key (+)
;
-- Tbv calenderview op actiedatum (voor Gebouwbeheerders)
CREATE OR REPLACE VIEW hmod_v_cal_meldingen_bo
(
USER_KEY,
TITLE,
VAN,
TOT,
ITEM_KEY,
COLOR,
TEXTCOLOR,
BEHANDELAAR,
ADRES,
STATUS_KALENDER,
MLD_STDMELDINGGROEP_NAAM
)
AS
SELECT behandelaar_key,
' - M' || mld_melding_key || ' - ' || mld_melding_onderwerp || CHR(10)
|| locatie_plaats || ' - ' || locatie_omschrijving || CHR(10)
|| CASE WHEN mld_melding_actiedatum IS NOT NULL THEN 'Van ' || TO_CHAR(mld_melding_actiedatum_b) || ' tot ...........' || CHR(10) ELSE '' || CHR(10) END || CHR(10)
|| 'Einddatum melding: ' || TO_CHAR(mld_melding_einddatum, 'dd-mm-yyyy') || CHR(10)
|| 'Behandelaar: ' || behandelaar
|| CASE WHEN opdrachten_aantal_lopend >0 THEN CHR(10) || 'Lopende opdrachten:' || TO_CHAR(opdrachten_aantal_lopend) || 'x' ELSE '' END
title,
mld_melding_actiedatum_b
van,
mld_melding_actiedatum_b + 2/24
tot,
mld_melding_key,
DECODE (status_kalender,
'Afgewezen', '#C0C0C0', -- grijs
'Afgemeld', '#C0C0C0', -- grijs
'Nog inplannen', '#f58a20', -- oranje
'Ingepland', '#20b2f5', -- lichtblauw
'#0000FF')
color,
DECODE (status_kalender,
'Afgewezen', '#bf0b3b', -- rood
'Afgemeld', '#000000', -- zwart
'Nog inplannen', '#FFFFFF', -- wit,
'Ingepland', '#FFFFFF',
'#000000')
textcolor,
behandelaar,
locatie_plaats || ' - ' || locatie_omschrijving
adres,
status_kalender,
mld_stdmeldinggroep_naam
FROM hmod_v_rap_meldingen_bo
ORDER BY mld_melding_actiedatum ;
-- Opdrachten en Gebouwbeheer
CREATE OR REPLACE VIEW HMOD_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,
TYPE_LOCATIE,
AFMELD_DATUM,
OPDRACHT_TYPE,
TD_NAAM
)
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,
l.alg_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,
d.alg_district_omschrijving,
(SELECT MAX (ft.fac_tracking_datum)
FROM fac_tracking ft
WHERE ft.fac_tracking_refkey = o.mld_opdr_key
AND ft.fac_srtnotificatie_key = 74), -- MLDAFM
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
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_district d,
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 l.alg_district_key = d.alg_district_key
AND o.mld_uitvoerende_keys = mu.mld_uitvoerende_key
AND os.mld_statusopdr_key = o.mld_statusopdr_key
AND mu.intern = 1;
-- view om QR codes voor een deel te genereren
CREATE OR REPLACE VIEW hmod_v_rap_qr_deel
AS
SELECT fac_bookmark_naam,
fac_bookmark_id,
b.fac_bookmark_path,
b.fac_bookmark_query,
ins_discipline_omschrijving,
ins_srtgroep_omschrijving,
ins_srtdeel_omschrijving,
ins_deel_omschrijving,
CASE
WHEN d.ins_discipline_key = 109 -- IT
THEN
(SELECT k.ins_kenmerkdeel_waarde
FROM ins_kenmerkdeel k
WHERE k.ins_deel_key = d.ins_deel_key
AND k.ins_kenmerk_key = 21)
ELSE
NULL
END
serienummer,
DECODE (d.ins_discipline_key, 109, flx.getdomeinwaarde (61, flx.getflex('INS', 26, ins_deel_key)), -- IT
110, flx.getdomeinwaarde (61, flx.getflex('INS', 27, ins_deel_key)), -- Inventaris
'Nee')
gestickerd,
DECODE(flx.getflex ('INS', 582, d.ins_deel_key), '1', 'ja', 'nee')
bekend_bij_microsoft,
TO_DATE(flx.getflex ('INS', 583, d.ins_deel_key),'dd-mm-yyyy')
datum_configuratie,
CASE WHEN alg_locatie_key IS NOT NULL THEN 'Locatiegebonden'
WHEN d.prs_perslid_key IS NOT NULL THEN 'Persoonsgebonden'
ELSE 'Overig'
END type,
alg_locatie_key,
alg_gebouw_omschrijving,
d.prs_perslid_key,
prs_perslid_volnaam,
ins_deel_aanmaak,
ins_deel_key
FROM fac_bookmark b, ins_v_deel_gegevens d
WHERE fac_bookmark_expire IS NULL
AND fac_bookmark_id = 'QPgqz69zEKMLncP6';
------ 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