3006 lines
128 KiB
SQL
3006 lines
128 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_omschrijving,
|
|
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,
|
|
CASE WHEN cnt_contract_verlenging = 2 THEN 'nee' ELSE 'ja' END
|
|
automatisch_verlengen,
|
|
(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_kenmerk_key = 716) -- 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_kenmerk_key = 715) -- verantwoordelijk manager
|
|
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_kenmerk_key = 724) -- rappel 2e aanspreekpunt
|
|
vink_tweede_aanspreekpunt,
|
|
(SELECT p.prs_perslid_email
|
|
FROM prs_perslid p
|
|
WHERE p.prs_perslid_key = (SELECT fac.safe_to_number(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_kenmerk_key = 723)
|
|
AND p.prs_perslid_verwijder IS NULL)
|
|
tweede_aanspreekpunt_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_kenmerk_key = 717) -- opgezegd
|
|
contract_opgezegd,
|
|
(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_kenmerk_key = 709) -- opgezegd_reden
|
|
contract_opgezegd_reden
|
|
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 - HERZIEN
|
|
---- Eenmalig verstuurd naar optioneel contract-veantwoordelijke, contractbeheerder en 2e aanspreekpunt
|
|
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 v.contract_opgezegd IS NULL
|
|
AND v.automatisch_verlengen = 'nee'
|
|
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 v.contract_opgezegd IS NULL
|
|
AND v.automatisch_verlengen = 'nee'
|
|
UNION ALL -- Op rappel-datum ACTIE-mail naar het 'RAPPEL-ANDERS-emailadres'
|
|
SELECT 'CUST03',
|
|
NULL,
|
|
NULL,
|
|
'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,
|
|
v.tweede_aanspreekpunt_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_tweede_aanspreekpunt = 1
|
|
AND c.cnt_contract_status = 0
|
|
AND cnt.cnt_getrappeldatum (c.cnt_contract_key) = TRUNC (SYSDATE)
|
|
AND v.contract_opgezegd IS NULL
|
|
AND v.automatisch_verlengen = 'nee' ;
|
|
|
|
-- 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
|
|
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 vanuit Meldingen
|
|
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 Geplande aanvang
|
|
--- uit storingen en service-aanvragen
|
|
CREATE OR REPLACE VIEW hmod_v_rap_opdrachten
|
|
(
|
|
INTERN,
|
|
TYPE,
|
|
MLD_OPDR_KEY,
|
|
MLD_UITVOERENDE_KEY,
|
|
OPDRACHTNR,
|
|
STATUS,
|
|
MELDING,
|
|
BEHANDELAAR,
|
|
LOCATIE_PLAATS,
|
|
LOCATIE_OMSCHRIJVING,
|
|
OPDRACHT_AANMAAKDATUM,
|
|
GEPLANDE_AANVANG,
|
|
GEPLANDE_AANVANG_B, -- berekend voor kalenderweergave
|
|
GEPLANDE_EINDDATUM,
|
|
GEPLANDE_EINDDATUM_B, -- berekend voor kalenderweergave
|
|
OPDRACHT_EINDDATUM,
|
|
MELDING_EINDDATUM,
|
|
OMSCHRIJVING,
|
|
PRS_PERSLID_KEY,
|
|
NAAM_UITVOERDER,
|
|
UREN_BESTEED,
|
|
AFMELD_DATUM,
|
|
OPDRACHT_TYPE,
|
|
TD_NAAM,
|
|
PRIORITEIT,
|
|
STATUS_KALENDER, -- t.b.v. kalenderweergave
|
|
ACTIE_CODE_OPDRACHT,
|
|
FCLT_3D_DISCIPLINE_KEY, -- vakgroep_key
|
|
VAKGROEP,
|
|
VAKGROEPTYPE
|
|
)
|
|
AS
|
|
SELECT mu.intern,
|
|
CASE
|
|
WHEN mu.TYPE = 'B' AND mu.intern = 1 THEN 'Poule-opdracht'
|
|
WHEN mu.TYPE = 'P' AND mu.intern = 1 THEN 'Klus-opdracht'
|
|
WHEN mu.intern = 0 THEN 'Externe opdracht'
|
|
ELSE '<?>'
|
|
END
|
|
TYPE,
|
|
o.mld_opdr_key,
|
|
CASE
|
|
WHEN mu.TYPE = 'B' AND mu.intern = 1 THEN mu.mld_uitvoerende_key
|
|
WHEN mu.TYPE = 'P' AND mu.intern = 1 THEN mu.mld_uitvoerende_key
|
|
WHEN mu.intern = 0 THEN mu.mld_uitvoerende_key
|
|
ELSE NULL
|
|
END
|
|
mld_uitvoerende_key,
|
|
TO_CHAR (o.mld_melding_key)
|
|
|| '/'
|
|
|| o.mld_opdr_bedrijfopdr_volgnr
|
|
opdrachtnummer,
|
|
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,
|
|
o.mld_opdr_datumbegin,
|
|
o.mld_opdr_plandatum
|
|
geplande_aanvang,
|
|
CASE WHEN o.mld_opdr_plandatum IS NOT NULL THEN o.mld_opdr_plandatum ELSE o.mld_opdr_datumbegin END
|
|
geplande_aanvang_b,
|
|
o.mld_opdr_plandatum2
|
|
geplande_einddatum,
|
|
CASE WHEN o.mld_opdr_plandatum2 IS NOT NULL AND o.mld_opdr_plandatum IS NOT NULL THEN o.mld_opdr_plandatum2
|
|
WHEN o.mld_opdr_plandatum2 IS NULL AND o.mld_opdr_plandatum IS NOT NULL THEN o.mld_opdr_plandatum + 2/24
|
|
ELSE o.mld_opdr_datumbegin + 2/24
|
|
END
|
|
geplande_einddatum_b,
|
|
o.mld_opdr_einddatum,
|
|
m.mld_melding_einddatum,
|
|
TRIM (
|
|
REGEXP_REPLACE (
|
|
REGEXP_SUBSTR (o.mld_opdr_omschrijving,
|
|
'(([^ ]*)( |$)*){10}'),
|
|
'[[:space:]]',
|
|
' '))
|
|
|| '...'
|
|
omschrijving,
|
|
p.prs_perslid_key,
|
|
mu.naam
|
|
naam_uitvoerder,
|
|
(SELECT ko.mld_kenmerkopdr_waarde
|
|
FROM mld_kenmerkopdr ko
|
|
WHERE ko.mld_opdr_key = o.mld_opdr_key
|
|
AND ko.mld_kenmerk_key = 203) -- kenmerk Uren_besteed
|
|
uren_besteed,
|
|
(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
|
|
afmeld_datum,
|
|
ot.mld_typeopdr_omschrijving,
|
|
CASE
|
|
WHEN mu.TYPE = 'B' AND mu.intern = 1 THEN COALESCE (p.prs_perslid_naam_full, '<nog geen behandelaar>')
|
|
WHEN mu.TYPE = 'P' AND mu.intern = 1 THEN mu.naam
|
|
ELSE ''
|
|
END td_naam,
|
|
CASE WHEN mu.intern = 1 THEN COALESCE(v.prioriteit,'3 - NORMAAL')
|
|
ELSE 'nvt'
|
|
END
|
|
prioriteit,
|
|
CASE
|
|
WHEN os.mld_statusopdr_omschrijving = 'Afgemeld' THEN 'Afgemeld'
|
|
WHEN os.mld_statusopdr_omschrijving = 'Afgewezen' THEN 'Afgewezen'
|
|
WHEN mu.intern = 1 AND os.mld_statusopdr_omschrijving = 'Toegekend' AND o.mld_opdr_plandatum IS NULL THEN 'Nog inplannen'
|
|
WHEN mu.intern = 1 AND os.mld_statusopdr_omschrijving = 'Toegekend' AND o.mld_opdr_plandatum IS NOT NULL THEN 'Ingepland'
|
|
WHEN mu.intern = 0 AND os.mld_statusopdr_omschrijving = 'Toegekend' AND o.mld_opdr_plandatum IS NULL THEN 'Nog niet bevestigd'
|
|
WHEN mu.intern = 0 AND os.mld_statusopdr_omschrijving = 'Toegekend' AND o.mld_opdr_plandatum IS NOT NULL THEN 'Bevestigd'
|
|
ELSE ''
|
|
END status_kalender,
|
|
CASE WHEN o.mld_opdr_actiecode = 1 THEN 'Bij uitvoerder (1)'
|
|
WHEN o.mld_opdr_actiecode = 4 THEN 'Bij uitvoerder (4)'
|
|
WHEN o.mld_opdr_actiecode = 129 THEN 'Bij backoffice'
|
|
ELSE 'Bij uitvoerder (0)'
|
|
END
|
|
actie_code_opdracht,
|
|
d.ins_discipline_key,
|
|
d.ins_discipline_omschrijving,
|
|
sd.ins_srtdiscipline_omschrijving
|
|
FROM mld_opdr o,
|
|
mld_melding m,
|
|
mld_typeopdr ot,
|
|
prs_v_perslid_fullnames p,
|
|
ins_tab_discipline d,
|
|
ins_srtdiscipline sd,
|
|
mld_stdmelding std,
|
|
alg_locatie l,
|
|
alg_district di,
|
|
mld_v_uitvoerende mu,
|
|
mld_statusopdr os,
|
|
(
|
|
SELECT ko.mld_opdr_key, ud.fac_usrdata_code || ' - ' || ud.fac_usrdata_omschr prioriteit
|
|
FROM mld_kenmerkopdr ko, fac_usrdata ud
|
|
WHERE fac.safe_to_number(ko.mld_kenmerkopdr_waarde) = ud.fac_usrdata_key
|
|
AND fac_usrtab_key = 641 -- keuzelijst eigen tabel Prioriteit
|
|
AND ko.mld_kenmerk_key IN (3881, 3901) -- kenmerk Prioriteit
|
|
) v
|
|
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 d.ins_srtdiscipline_key = sd.ins_srtdiscipline_key
|
|
AND sd.ins_srtdiscipline_key IN (22, 23) -- Storingen en Serviceaanvragen
|
|
AND m.mld_alg_locatie_key = l.alg_locatie_key (+)
|
|
AND l.alg_district_key = di.alg_district_key (+)
|
|
AND o.mld_uitvoerende_keys = mu.mld_uitvoerende_key
|
|
AND os.mld_statusopdr_key = o.mld_statusopdr_key
|
|
AND o.mld_opdr_key = v.mld_opdr_key(+);
|
|
|
|
-- Tbv calenderview vanuit Opdrachten - geplande aanvang
|
|
CREATE OR REPLACE VIEW hmod_v_cal_opdrachten
|
|
(
|
|
USER_KEY,
|
|
TITLE,
|
|
VAN,
|
|
TOT,
|
|
ITEM_KEY,
|
|
COLOR,
|
|
TEXTCOLOR,
|
|
NAAM_UITVOERRDER,
|
|
LOCATIE_PLAATS,
|
|
STATUS_KALENDER,
|
|
INTERN,
|
|
OPDRACHT_TYPE
|
|
)
|
|
AS
|
|
SELECT mld_uitvoerende_key,
|
|
' - ' || opdrachtnr || CHR(10)
|
|
|| naam_uitvoerder || CHR(10)
|
|
|| locatie_omschrijving || CHR(10)
|
|
|| 'Status: ' || status_kalender || CHR(10)
|
|
|| CASE WHEN geplande_einddatum IS NOT NULL THEN DECODE(intern, 1, 'Ingepland tot ', 'Bevestigd voor ') || TO_CHAR(geplande_einddatum_b) || CHR(10) ELSE '' END
|
|
|| CASE WHEN intern = 1 THEN CHR(10) || 'Prio: ' || prioriteit ELSE '' END
|
|
title,
|
|
geplande_aanvang_b
|
|
van,
|
|
geplande_einddatum_b
|
|
tot,
|
|
mld_opdr_key,
|
|
DECODE (intern, 1,
|
|
DECODE (status_kalender,
|
|
'Afgewezen', '#C0C0C0', -- grijs
|
|
'Afgemeld', '#C0C0C0', -- grijs
|
|
'Nog inplannen', '#f58a20', -- oranje
|
|
'Ingepland', '#20b2f5', -- lichtblauw
|
|
'#0000FF'),
|
|
0,
|
|
DECODE (status_kalender,
|
|
'Afgewezen', '#C0C0C0', -- grijs
|
|
'Afgemeld', '#C0C0C0', -- grijs
|
|
'Nog niet bevestigd', '#F5ED5D', -- lichtgeel
|
|
'Bevestigd', '#DED304', -- donkergeel
|
|
'#0000FF'),
|
|
'#0000FF'
|
|
) color, --
|
|
DECODE (intern, 1,
|
|
DECODE (status_kalender,
|
|
'Afgewezen', '#bf0b3b', -- rood
|
|
'Afgemeld', '#000000', -- zwart
|
|
'Nog inplannen', '#FFFFFF', -- wit,
|
|
'Ingepland',
|
|
DECODE (LOWER(prioriteit),
|
|
'3 - normaal', '#FFFFFF', -- wit
|
|
'4 - laag', '#FFFFFF', -- wit
|
|
'2 - hoog', '#f58a20', -- oranje
|
|
'1 - kritiek', '#bf0b3b', -- rood
|
|
'#000000'),
|
|
'#000000'),
|
|
0,
|
|
DECODE (status_kalender,
|
|
'Afgewezen', '#bf0b3b', -- rood
|
|
'Afgemeld', '#000000', -- zwart
|
|
'Nog niet bevestigd', '#000000', -- zwart
|
|
'Bevestigd', '#000000', -- zwart
|
|
'Toegekend', '#FFFFFF', -- wit,
|
|
'#0000FF'),
|
|
'#000000'
|
|
) textcolor,
|
|
naam_uitvoerder,
|
|
locatie_plaats,
|
|
status_kalender,
|
|
intern,
|
|
opdracht_type
|
|
FROM hmod_v_rap_opdrachten
|
|
ORDER BY geplande_aanvang_b ;
|
|
|
|
|
|
-- 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
|