3929 lines
168 KiB
SQL
3929 lines
168 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 ------
|
|
|
|
--------------------------------------------------
|
|
--- HIERONDER NIEUWE AFAS IMPORT (2025-JULI) ----
|
|
--------------------------------------------------
|
|
|
|
CREATE OR REPLACE PROCEDURE hmod_import_afasonline (p_import_key IN NUMBER)
|
|
AS
|
|
oracle_err_num NUMBER;
|
|
oracle_err_mes VARCHAR2 (200);
|
|
v_errormsg VARCHAR2 (400);
|
|
v_errorhint VARCHAR2 (400);
|
|
v_aantal_in_fclt NUMBER;
|
|
v_seq_of_columns VARCHAR (255);
|
|
v_seq_of_header VARCHAR (1000);
|
|
|
|
-- overige variabelen
|
|
v_prs_afdeling_key NUMBER (10);
|
|
c_prs_bedrijf_key_hmod NUMBER (10) := 41;
|
|
v_prs_perslid_rol_key NUMBER (10);
|
|
|
|
CURSOR c_afd
|
|
IS
|
|
SELECT fac_imp_file_index,
|
|
prs_afdeling_naam, -- Afdelingscode
|
|
prs_kenmerk5 -- Afdeling omschrijving
|
|
FROM fac_imp_perslid
|
|
WHERE fac_import_key = p_import_key
|
|
ORDER BY fac_imp_file_index;
|
|
|
|
CURSOR c_afd_log
|
|
IS
|
|
SELECT prs_kenmerk20 -- Nieuwe afdeling aanmaken - vullen we in dit kenmerk20
|
|
FROM fac_imp_perslid
|
|
WHERE fac_import_key = p_import_key
|
|
AND prs_kenmerk20 IS NOT NULL
|
|
GROUP BY prs_kenmerk20;
|
|
|
|
-- Op basis van de functie gaan we de facilitor-rol bepalen
|
|
---- via deze rol gaan tijdens verwerkingsactie mensen juiste rechten geven
|
|
CURSOR c_rol
|
|
IS
|
|
SELECT fac_imp_file_index, prs_kenmerk6, prs_kenmerk7
|
|
FROM fac_imp_perslid
|
|
WHERE fac_import_key = p_import_key
|
|
ORDER BY fac_imp_file_index ;
|
|
|
|
BEGIN
|
|
-- Het aangeleverde bestand heeft de gegevens komma gescheiden ipv ;
|
|
v_errorhint := 'Delimiter goed zetten';
|
|
|
|
-- UPDATE fac_imp_file
|
|
-- SET fac_imp_file_line = REPLACE (fac_imp_file_line, ',', ';')
|
|
-- WHERE fac_import_key = p_import_key;
|
|
|
|
-- Het aangeleverde bestand heeft aanhalingstekens om de invoervelden..
|
|
UPDATE fac_imp_file
|
|
SET fac_imp_file_line = REPLACE (fac_imp_file_line, '"', '')
|
|
WHERE fac_import_key = p_import_key;
|
|
|
|
v_errorhint := 'Generieke update';
|
|
-- Import AFAS_ONLINE -- csv formaat via stylesheet afas2fclt.xsl bepaald
|
|
v_seq_of_header := 'Personeelsnummer;Roepnaam;Voorletters;Voorvoegsel;Achternaam;Geslacht;Zakelijk mailadres;Dienstverb.;Begindatum functieregel;Einddatum functieregel;Afdelingscode;Afdeling omschrijving;Functiecode;Functieomschrijving;Formatieplaatscode;Formatieplaats omschrijving;Uren/wk;Leidinggevende persnr.;Naam Leidinggevende;Kofferletter;Datum in dienst;Datum uit dienst';
|
|
-- 1. Personeelsnummer
|
|
-- 2. Roepnaam
|
|
-- 3. Voorletters
|
|
-- 4. Voorvoegsel
|
|
-- 5. Achternaam
|
|
-- 6. Geslacht
|
|
-- 7. Zakelijk mailadres
|
|
-- 8. Dienstverb.
|
|
-- 9. Begindatum functieregel
|
|
-- 10. Einddatum functieregel
|
|
-- 11. Afdelingscode
|
|
-- 12. Afdeling omschrijving
|
|
-- 13. Functiecode
|
|
-- 14. Functieomschrijving
|
|
-- 15. Formatieplaatscode
|
|
-- 16. Formatieplaats omschrijving
|
|
-- 17. Uren/wk
|
|
-- 18. Leidinggevende persnr.
|
|
-- 19. Naam Leidinggevende
|
|
-- 20. Kofferletter
|
|
-- 21. Datum in dienst
|
|
-- 22. Datum uit dienst
|
|
|
|
-- de sequence array staat beschreven in PRS_PAC.SRC bij de prs.import_perslid procedure
|
|
v_seq_of_columns := '0;0;0;0;0;0;11;5;4;2;'
|
|
-- v_alg_locatie_code 1
|
|
-- v_alg_gebouw_code 2
|
|
-- v_alg_verdieping_volgnr 3
|
|
-- v_alg_ruimte_nr 4
|
|
-- v_prs_werkplek_volgnr 5
|
|
-- v_prs_werkplek_omschrijving 6
|
|
-- v_prs_afdeling_naam 7 -- VERPLICHT BIJ IMPORT
|
|
-- v_prs_perslid_naam 8 -- VERPLICHT BIJ IMPORT
|
|
-- v_prs_perslid_tussenvoegsel 9
|
|
-- v_prs_perslid_voornaam 10
|
|
|| '3;0;0;0;6;0;0;7;0;1;'
|
|
-- v_prs_perslid_voorletters 11
|
|
-- v_prs_perslid_partner_naam 12
|
|
-- v_prs_perslid_partner_tussenv 13
|
|
-- v_prs_naamgebruik_code 14 0 (default) perslid_naam en perslid_tussenvoegsel worden gebruikt
|
|
-- 1 personen die de geboortenaam van de partner icm de eigen naam willen gebruiken
|
|
-- 2 personen die de geboortenaam van de partner willen gebruiken
|
|
-- 3 personen die de eigen naam icm de geboortenaam van de partner willen gebruiken
|
|
-- v_prs_perslid_geslacht 15 Gebruik 'man', 'm' of 1 voor man en 'vrouw', 'v' of 0 voor vrouw case insensitive geen default
|
|
-- v_prs_perslid_telefoonnr 16
|
|
-- v_prs_perslid_mobiel 17
|
|
-- v_prs_perslid_email 18
|
|
-- v_prs_perslid_dienstverband 19
|
|
-- v_prs_perslid_nr 20
|
|
|| '14;0;0;0;0;0;8;9;10;11;'
|
|
-- v_prs_srtperslid_omschrijving 21 -- VERPLICHT BIJ IMPORT
|
|
-- v_prs_perslid_oslogin 22
|
|
-- v_prs_perslid_wachtwoord 23
|
|
-- v_prs_perslid_titel 24
|
|
-- v_prs_perslid_apikey 25
|
|
-- v_dummy 26
|
|
-- v_prs_kenmerk1 27
|
|
-- v_prs_kenmerk2 28
|
|
-- v_prs_kenmerk3 29
|
|
-- v_prs_kenmerk4 30
|
|
|| '12;13;14;15;16;17;18;19;20;21;'
|
|
-- v_prs_kenmerk5 31
|
|
-- .t/m kenmerk14 40
|
|
|| '22;0;0;0;0;0';
|
|
-- v_prs_kenmerk15 41
|
|
-- ..t/m kenmerk20 46
|
|
|
|
|
|
v_errorhint := 'Generieke update';
|
|
-- csv verwerken naar de fac_imp_perslid-tabel
|
|
prs.import_perslid(p_import_key, v_seq_of_columns, v_seq_of_header);
|
|
|
|
v_errorhint := 'Login afleiden van emailadres';
|
|
-- Loginnaam afleiden van emailadres
|
|
UPDATE fac_imp_perslid
|
|
SET prs_perslid_oslogin =
|
|
UPPER (
|
|
(SUBSTR (prs_perslid_email,
|
|
0,
|
|
INSTR (prs_perslid_email, '@') - 1)))
|
|
WHERE prs_perslid_email IS NOT NULL ;
|
|
|
|
v_errorhint := 'Uitfilteren records'; -- in afasonline-bestand zitten wellicht aantal zaken die niet mee hoeven naar Facilitor
|
|
-- moeten we uit afasbestand nog medewerkers verwijderen voordat we vervolg import/update-acties gaan doen? Vooralsnog niet...
|
|
NULL;
|
|
|
|
v_errorhint := 'Bewerken records'; -- in afasonline-bestand zitten wellicht aantal zaken die we voor import naar Facilitor willen bewerken
|
|
-- Functie in Facilitor moet worden: functiecode - functieomschrijving
|
|
UPDATE fac_imp_perslid
|
|
SET prs_srtperslid_omschrijving = prs_kenmerk6 || ' - ' || prs_kenmerk7 ;
|
|
|
|
-- Afdeling bepalen waar persoon onder komt te vallen.
|
|
---- Deze wordt voor HUMOD direct uit AFAS gevuld.
|
|
---- In Facilitor kiezen we er voor dat alle afdelingen op niveau 1 aangemaakt worden onder bedrijf_key c_prs_bedrijf_key_hmod
|
|
---- Indien afdeling niet gevonden dan gaan we deze aanmaken onder bedrijf Humanitas Onder Dak
|
|
FOR rec IN c_afd
|
|
LOOP
|
|
BEGIN
|
|
v_errorhint := 'Afdeling van Persoon - bestaand of nieuw?';
|
|
|
|
-- Afdeling op niveau 1 zoeken
|
|
SELECT MIN (a.prs_afdeling_key)
|
|
INTO v_prs_afdeling_key
|
|
FROM prs_v_afdeling a
|
|
WHERE a.prs_afdeling_upper = UPPER (rec.prs_afdeling_naam)
|
|
AND a.prs_afdeling_verwijder IS NULL
|
|
AND a.niveau = 1 -- kijken alleen naar afdelingen op niveau 1
|
|
AND a.prs_bedrijf_key = c_prs_bedrijf_key_hmod ;
|
|
|
|
-- Als afdeling uit AFAS NIET bekend is in Facilitor dan maken we deze straks bij uitvoer/update aan - Bij deze import alvast de info-logging doen
|
|
IF v_prs_afdeling_key IS NULL
|
|
THEN
|
|
|
|
UPDATE fac_imp_perslid
|
|
SET prs_kenmerk20 = 'Nieuwe afdeling - ' || rec.prs_afdeling_naam
|
|
WHERE fac_imp_file_index = rec.fac_imp_file_index ;
|
|
|
|
END IF;
|
|
|
|
END;
|
|
END LOOP;
|
|
|
|
FOR rec IN c_afd_log
|
|
LOOP
|
|
BEGIN
|
|
v_errorhint := 'Nieuwe afdelingen aanmaken - ter info';
|
|
|
|
|
|
fac.imp_writelog (p_import_key,
|
|
'I',
|
|
rec.prs_kenmerk20,
|
|
v_errorhint);
|
|
|
|
END;
|
|
END LOOP;
|
|
|
|
FOR rec IN c_rol
|
|
LOOP
|
|
BEGIN
|
|
v_errorhint := 'Facilitor-rollen bepalen- ter info';
|
|
-- Op zoek naar de Facilitor-rol voor deze medewerkers op basis van functie_code en functie_omschrijving
|
|
-- Onderhouden in eigentabellen functie_rol1 en functie_rol2 (key 901 en key 903)
|
|
|
|
SELECT MAX((SELECT rol.fac_usrdata_code FROM fac_usrdata rol WHERE rol.fac_usrdata_key = ud.fac_usrdata_parentkey AND rol.fac_usrtab_key = 901))
|
|
facilitor_rol
|
|
INTO v_prs_perslid_rol_key
|
|
FROM fac_usrtab ut, fac_usrdata ud
|
|
WHERE ut.fac_usrtab_key = ud.fac_usrtab_key
|
|
AND ut.fac_usrtab_key = 903
|
|
AND ud.fac_usrdata_verwijder IS NULL
|
|
AND UPPER(ud.fac_usrdata_code) = UPPER(rec.prs_kenmerk6) -- functiecode
|
|
AND UPPER(ud.fac_usrdata_omschr) = UPPER(rec.prs_kenmerk7) -- functieomschrijving
|
|
;
|
|
|
|
IF v_prs_perslid_rol_key IS NOT NULL
|
|
THEN
|
|
|
|
UPDATE fac_imp_perslid
|
|
SET prs_kenmerk19 = v_prs_perslid_rol_key
|
|
WHERE fac_imp_file_index = rec.fac_imp_file_index ;
|
|
|
|
END IF;
|
|
|
|
END;
|
|
END LOOP;
|
|
|
|
|
|
|
|
COMMIT;
|
|
EXCEPTION
|
|
WHEN OTHERS
|
|
THEN
|
|
oracle_err_num := SQLCODE;
|
|
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
|
|
v_errormsg := 'Error ' || oracle_err_num || '/' || oracle_err_mes;
|
|
fac.imp_writelog (p_import_key,
|
|
'E',
|
|
v_errormsg,
|
|
v_errorhint);
|
|
END hmod_import_afasonline;
|
|
/
|
|
|
|
CREATE OR REPLACE PROCEDURE hmod_update_afasonline (p_import_key IN NUMBER)
|
|
IS
|
|
-- AFAS in sync met Facilitor bedrijf c_prs_bedrijf_key_hmod
|
|
--- Alle personen verwijderen die niet meer in het import bestand voorkomen.
|
|
--- Match bij HUMOD loopt via Personeelsnummer
|
|
|
|
-- Afdeling AFAS leading
|
|
--- Op niveau 1 gaan we de afdeling van HMOD aanmaken.
|
|
--- Indien onbekende afdelingscode dan gaan we die eerst aanmaken (in immport-deel vullen we daarvoor alvast prs_kenmerk20)
|
|
|
|
-- Leidinggevende - verantwoordelijke
|
|
--- In de personenkaart van Facilitor wordt officiele leidinggevende uit afas gevuld
|
|
--- En op basis functie een automatische toewijzing aan juiste autorisatiegroepen van managers en teamleiders
|
|
|
|
-- Facilitor-rollen bepalen en op basis van deze rollen autorisaties uitreiken
|
|
--- Op basis functie/code zijn er 3 rollen te onderscheiden voor hmod in Facilitor: Teamleider locatie, Regiomanager, Manager algemeen
|
|
---
|
|
|
|
-- HR-mutaties in Facilitor
|
|
--- Bij mutaties in AFAS moeten in Facilitor voor desbetreffende persoon ook zaken geregeld worden. Hiervoor zetten we kenmerk/trigger 'mutatie-hr'
|
|
--- Betreft 4 wijzigingen: Nieuwe medewerker EN Gewijzigde formatieplaats op bestaande medewerker EN medewerker uit dienst EN mutatie nevenfuncties
|
|
----- Ps. laatste NOG INPASSEN - AANLEVEREN UIT AFAS
|
|
--- Werkwijze: Via een cockpit-rapportage zijn deze in beeld en zal BedrijfsBureau de juiste HR-workflow/melding opstarten om de acties voor IT, Applicatiebeheer en Facilitair uitgevoerd te krijgen.
|
|
----- Ps. Cockpit-rapport dus tevens bewakingsrapport dat zaken tijdig geregeld worden.
|
|
--- Voor de mutatie 'verwijderde en/of inactieve medewerkers': <NOG INPASSEN / BESPREKEN MET FRANK/CLAUDIA>
|
|
----- Werkwijze voortel: Daar voor elk medewerker een KOFFER-OBJECT koppelen zodat de medewerker bij verwijderactie uit AFAS-koppeling altijd op INACTIEF komt
|
|
|
|
v_count NUMBER;
|
|
oracle_err_num NUMBER;
|
|
oracle_err_mes VARCHAR2 (200);
|
|
v_errormsg VARCHAR2 (400);
|
|
v_errorhint VARCHAR2 (400);
|
|
|
|
-- overige variabelen
|
|
v_fac_gebruikersgroep_key NUMBER(10);
|
|
v_prs_perslid_key_verantw NUMBER(10);
|
|
v_prs_afdeling_key NUMBER (10);
|
|
c_prs_bedrijf_key_hmod NUMBER (10) := 41;
|
|
c_rol_key_teamleider NUMBER (10) := 1280;
|
|
c_rol_key_regiomanager NUMBER (10) := 1740;
|
|
c_rol_key_manager NUMBER (10) := 1320;
|
|
v_prs_mutatie_hr VARCHAR2 (1000);
|
|
v_import_datum VARCHAR2 (30) := TO_CHAR(SYSDATE) ;
|
|
v_datum_vandaag DATE := TRUNC(SYSDATE) ;
|
|
|
|
CURSOR c_afd
|
|
IS
|
|
SELECT i.prs_kenmerk20, i.prs_kenmerk4, i.prs_kenmerk5
|
|
FROM fac_imp_perslid i
|
|
WHERE i.prs_kenmerk20 IS NOT NULL
|
|
GROUP BY i.prs_kenmerk20, i.prs_kenmerk4, i.prs_kenmerk5 ;
|
|
|
|
CURSOR c_del
|
|
IS
|
|
SELECT p.prs_perslid_key, p.prs_perslid_naam, p.prs_perslid_email, p.prs_perslid_nr, sp.prs_srtperslid_omschrijving, a.prs_afdeling_omschrijving, b.prs_bedrijf_naam
|
|
FROM prs_perslid p, fac_imp_perslid i, prs_srtperslid sp, prs_v_afdeling a, prs_bedrijf b
|
|
WHERE p.prs_perslid_nr = i.prs_perslid_nr(+)
|
|
AND p.prs_perslid_verwijder IS NULL
|
|
AND p.prs_afdeling_key = a.prs_afdeling_key AND a.prs_bedrijf_key = b.prs_bedrijf_key
|
|
AND b.prs_bedrijf_key = c_prs_bedrijf_key_hmod
|
|
AND p.prs_srtperslid_key = sp.prs_srtperslid_key
|
|
AND i.prs_perslid_nr IS NULL -- in Facilitor, met onderstaande voorwaarden, is er dus geen mapping op personeelsnummer en die personen gaan we verwijderen/inactief maken
|
|
AND p.prs_perslid_nr IS NOT NULL
|
|
AND UPPER (p.prs_perslid_email) LIKE '%HUMOD.NL'
|
|
ORDER BY 1 ;
|
|
|
|
-- HR-koffersysteem mutatie op functie en/of afdeling (= formatieplaats-wijziging)
|
|
CURSOR c_mut
|
|
IS
|
|
SELECT p.prs_perslid_key, p.prs_perslid_naam, p.prs_perslid_email, p.prs_perslid_nr, sp.prs_srtperslid_omschrijving, a.prs_afdeling_omschrijving,
|
|
flx.getflex('PRS', 1606, p.prs_perslid_key, 'P')
|
|
formatieplaats_huidig,
|
|
i.prs_kenmerk8
|
|
formatieplaats_import,
|
|
TO_DATE(flx.getflex('PRS', 1800, p.prs_perslid_key, 'P'), 'yyyy-mm-dd')
|
|
datum_uit_dienst,
|
|
TO_DATE(i.prs_kenmerk15, 'yyyy-mm-dd')
|
|
datum_uit_dienst_import
|
|
FROM prs_perslid p, fac_imp_perslid i, prs_srtperslid sp, prs_v_afdeling a, prs_bedrijf b
|
|
WHERE p.prs_perslid_key = i.prs_perslid_key
|
|
AND p.prs_perslid_verwijder IS NULL
|
|
AND p.prs_afdeling_key = a.prs_afdeling_key AND a.prs_bedrijf_key = b.prs_bedrijf_key
|
|
AND b.prs_bedrijf_key = c_prs_bedrijf_key_hmod
|
|
AND p.prs_srtperslid_key = sp.prs_srtperslid_key
|
|
AND p.prs_perslid_nr IS NOT NULL
|
|
AND UPPER (p.prs_perslid_email) LIKE '%HUMOD.NL'
|
|
ORDER BY 1 ;
|
|
|
|
CURSOR c_flex -- Voor updaten van de algemene flex-kenmerkvelden op actuele medewerkers in blok AFAS_ONLINE op personenkaart
|
|
IS
|
|
SELECT p.prs_perslid_key, i.prs_perslid_nr, i.prs_perslid_naam, i.prs_perslid_email,
|
|
i.prs_kenmerk1, i.prs_kenmerk2, i.prs_kenmerk3, i.prs_kenmerk4, i.prs_kenmerk5, 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
|
|
FROM prs_v_aanwezigperslid p, fac_imp_perslid i
|
|
WHERE p.prs_perslid_key = i.prs_perslid_key
|
|
ORDER BY 1;
|
|
|
|
CURSOR c_verantw
|
|
IS
|
|
SELECT p.prs_perslid_key,
|
|
p.prs_perslid_email,
|
|
p.prs_perslid_nr,
|
|
p.prs_perslid_oslogin,
|
|
CASE WHEN p.prs_perslid_key_verantw IS NOT NULL
|
|
THEN (SELECT prs_perslid_nr FROM prs_perslid WHERE prs_perslid_key = p.prs_perslid_key_verantw)
|
|
ELSE NULL
|
|
END
|
|
prs_perslid_verantw_nr,
|
|
p.prs_perslid_verantw_nr_afas
|
|
FROM fac_imp_perslid i,
|
|
(SELECT p.prs_perslid_key,
|
|
p.prs_perslid_email,
|
|
p.prs_perslid_nr,
|
|
p.prs_perslid_oslogin,
|
|
p.prs_perslid_key_verantw,
|
|
(SELECT kw.prs_kenmerklink_waarde
|
|
FROM prs_kenmerklink kw
|
|
WHERE kw.prs_kenmerk_key = 1643
|
|
AND kw.prs_kenmerklink_niveau = 'P'
|
|
AND kw.prs_link_key = p.prs_perslid_key)
|
|
prs_perslid_verantw_nr_afas
|
|
FROM prs_perslid p) p
|
|
WHERE p.prs_perslid_key = i.prs_perslid_key
|
|
ORDER BY 1 ;
|
|
|
|
-- cursor ROLLEN inlezen in de rol-kenmerkvelden op personenkaart
|
|
----- en Autorisatie goed inregelen per rol --- DIT NOG APART GOED INREGELEN
|
|
CURSOR c_rol
|
|
IS
|
|
SELECT p.prs_perslid_key,
|
|
i.prs_kenmerk19, -- rol_key uit afas en eigen-tabel met de facilitor-rollen die bij functie_code en functie_omschrijving horen (tabel key 901 en key 903)
|
|
p.prs_perslid_teamleider,
|
|
p.prs_perslid_regiomanager,
|
|
p.prs_perslid_manager_algemeen
|
|
FROM fac_imp_perslid i,
|
|
(SELECT p.prs_perslid_key,
|
|
p.prs_perslid_email,
|
|
p.prs_perslid_nr,
|
|
p.prs_perslid_oslogin,
|
|
p.prs_perslid_key_verantw,
|
|
(SELECT kw.prs_kenmerklink_waarde
|
|
FROM prs_kenmerklink kw
|
|
WHERE kw.prs_kenmerk_key = c_rol_key_teamleider
|
|
AND kw.prs_kenmerklink_niveau = 'P'
|
|
AND kw.prs_link_key = p.prs_perslid_key)
|
|
prs_perslid_teamleider,
|
|
(SELECT kw.prs_kenmerklink_waarde
|
|
FROM prs_kenmerklink kw
|
|
WHERE kw.prs_kenmerk_key = c_rol_key_regiomanager
|
|
AND kw.prs_kenmerklink_niveau = 'P'
|
|
AND kw.prs_link_key = p.prs_perslid_key)
|
|
prs_perslid_regiomanager,
|
|
(SELECT kw.prs_kenmerklink_waarde
|
|
FROM prs_kenmerklink kw
|
|
WHERE kw.prs_kenmerk_key = c_rol_key_manager
|
|
AND kw.prs_kenmerklink_niveau = 'P'
|
|
AND kw.prs_link_key = p.prs_perslid_key)
|
|
prs_perslid_manager_algemeen
|
|
FROM prs_perslid p) p
|
|
WHERE p.prs_perslid_key = i.prs_perslid_key
|
|
ORDER BY 1 ;
|
|
|
|
|
|
BEGIN
|
|
v_errormsg := 'Update afasonline';
|
|
v_errorhint := 'Niet genoeg personen in bestand, import afgebroken';
|
|
|
|
SELECT COUNT ( * ) INTO v_count FROM fac_imp_perslid;
|
|
|
|
IF v_count >= 100
|
|
THEN
|
|
-- Geldig importbestand wat betreft aantal personen
|
|
|
|
-- Gaan we eerst de afdelingsstructuur bijwerken
|
|
FOR rec IN c_afd
|
|
LOOP
|
|
BEGIN
|
|
v_errorhint:='Fout aanvullen afdelingstructuur: ' || rec.prs_kenmerk4 || ' - ' || rec.prs_kenmerk5 ;
|
|
|
|
INSERT INTO prs_afdeling (
|
|
prs_bedrijf_key,
|
|
prs_afdeling_naam,
|
|
prs_afdeling_omschrijving,
|
|
prs_kostenplaats_key,
|
|
prs_perslid_key_verantw,
|
|
mld_adres_key)
|
|
VALUES (
|
|
c_prs_bedrijf_key_hmod,
|
|
rec.prs_kenmerk4,
|
|
rec.prs_kenmerk5,
|
|
NULL,
|
|
NULL,
|
|
NULL) ;
|
|
|
|
END;
|
|
END LOOP;
|
|
|
|
-- En dan kunnen we de generieke import draaien
|
|
v_errorhint := 'Verwerken persoonsgegevens';
|
|
|
|
COMMIT;
|
|
|
|
-- generic update
|
|
-- 'EMAIL' betekent dat op basis van Email wordt gematched.
|
|
-- 'NR' betekent op basis Personeelsnummer
|
|
-- 'NULL' betekent altijd geen werkplekken verwijderen
|
|
prs.update_perslid (p_import_key, 'NR', NULL);
|
|
|
|
-- Verwijder personen die niet meer in de import voorkomen.
|
|
FOR rec IN c_del
|
|
LOOP
|
|
BEGIN
|
|
v_errorhint := 'Verwijderen persoonsgegevens';
|
|
|
|
prs.delete_perslid (p_import_key, rec.prs_perslid_key);
|
|
|
|
END;
|
|
END LOOP;
|
|
|
|
FOR rec IN c_mut
|
|
LOOP
|
|
BEGIN
|
|
v_errorhint := 'Triggers HR-mutatie zetten';
|
|
|
|
v_prs_mutatie_hr := '' ;
|
|
|
|
-- Bestaande medewerker met wijzigende formatieplaats
|
|
IF rec.formatieplaats_huidig IS NOT NULL AND rec.formatieplaats_huidig <> rec.formatieplaats_import
|
|
THEN
|
|
|
|
v_prs_mutatie_hr := 'Formatieplaats gewijzigd van ' || rec.formatieplaats_huidig || ' naar ' || rec.formatieplaats_import || ' (datum afasimport ' || v_import_datum || ')' ;
|
|
|
|
-- kenmerk aanpassen
|
|
PRS.upsertkenmerk (1760, rec.prs_perslid_key, v_prs_mutatie_hr);
|
|
|
|
-- fac_tracking op personenkaart
|
|
BEGIN fac.trackaction('PRSUPD', rec.prs_perslid_key, 3, NULL, 'MDW_FORMATIEPLAATS_GEWIJZIGD'); END;
|
|
|
|
END IF;
|
|
|
|
-- Nieuwe medewerker in dienst
|
|
IF rec.formatieplaats_huidig IS NULL
|
|
THEN
|
|
|
|
v_prs_mutatie_hr := 'Nieuwe medewerker in dienst met formatieplaats ' || rec.formatieplaats_import || ' (datum afasimport ' || v_import_datum || ')' ;
|
|
|
|
-- kenmerk aanpassen
|
|
PRS.upsertkenmerk (1760, rec.prs_perslid_key, v_prs_mutatie_hr);
|
|
|
|
-- fac_tracking op personenkaart
|
|
BEGIN fac.trackaction('PRSUPD', rec.prs_perslid_key, 3, NULL, 'MDW_IN_DIENST'); END;
|
|
|
|
END IF;
|
|
|
|
-- Medewerker uit dienst
|
|
IF rec.datum_uit_dienst_import IS NOT NULL AND rec.datum_uit_dienst_import <> COALESCE(rec.datum_uit_dienst, v_datum_vandaag) AND rec.datum_uit_dienst_import > v_datum_vandaag
|
|
THEN
|
|
|
|
v_prs_mutatie_hr := 'Medewerker uit dienst met formatieplaats ' || rec.formatieplaats_import || ' (datum afasimport ' || v_import_datum || ')' ;
|
|
|
|
-- kenmerk aanpassen
|
|
PRS.upsertkenmerk (1760, rec.prs_perslid_key, v_prs_mutatie_hr);
|
|
|
|
-- fac_tracking op personenkaart
|
|
BEGIN fac.trackaction('PRSUPD', rec.prs_perslid_key, 3, NULL, 'MDW_UIT_DIENST'); END;
|
|
|
|
END IF;
|
|
|
|
END;
|
|
END LOOP;
|
|
|
|
|
|
-- Op de personenkaart de actuele humod-mederwerkers de afas-velden uit de koppeling vullen - ter informatie
|
|
FOR rec IN c_flex
|
|
LOOP
|
|
BEGIN
|
|
|
|
-- standaardvelden:
|
|
v_errorhint:='Fout bijwerken - Naam';
|
|
PRS.upsertkenmerk (1602, rec.prs_perslid_key, rec.prs_perslid_naam);
|
|
|
|
v_errorhint:='Fout bijwerken - Personeelsnummer';
|
|
PRS.upsertkenmerk (1604, rec.prs_perslid_key, rec.prs_perslid_nr);
|
|
|
|
v_errorhint:='Fout bijwerken - Zakelijk emailadres';
|
|
PRS.upsertkenmerk (1605, rec.prs_perslid_key, rec.prs_perslid_email);
|
|
|
|
-- overige uit de import-kenmerkvelden:
|
|
v_errorhint:='Fout bijwerken kenmerkveld1 - Dienstverb.';
|
|
PRS.upsertkenmerk (1660, rec.prs_perslid_key, rec.prs_kenmerk1);
|
|
|
|
v_errorhint:='Fout bijwerken kenmerkveld2 - Begindatum functieregel';
|
|
PRS.upsertkenmerk (1644, rec.prs_perslid_key, rec.prs_kenmerk2);
|
|
|
|
v_errorhint:='Fout bijwerken kenmerkveld3 - Einddatum functieregel';
|
|
PRS.upsertkenmerk (1645, rec.prs_perslid_key, rec.prs_kenmerk3);
|
|
|
|
v_errorhint:='Fout bijwerken kenmerkveld4 - Afdelingscode';
|
|
PRS.upsertkenmerk (1608, rec.prs_perslid_key, rec.prs_kenmerk4);
|
|
|
|
v_errorhint:='Fout bijwerken kenmerkveld5 - Afdeling omschrijving';
|
|
PRS.upsertkenmerk (1609, rec.prs_perslid_key, rec.prs_kenmerk5);
|
|
|
|
v_errorhint:='Fout bijwerken kenmerkveld6 - Functiecode';
|
|
PRS.upsertkenmerk (1610, rec.prs_perslid_key, rec.prs_kenmerk6);
|
|
|
|
v_errorhint:='Fout bijwerken kenmerkveld7 - Functieomschrijving';
|
|
PRS.upsertkenmerk (1611, rec.prs_perslid_key, rec.prs_kenmerk7);
|
|
|
|
v_errorhint:='Fout bijwerken kenmerkveld8 - Formatieplaatscode';
|
|
PRS.upsertkenmerk (1606, rec.prs_perslid_key, rec.prs_kenmerk8);
|
|
|
|
v_errorhint:='Fout bijwerken kenmerkveld9 - Formatieplaats omschrijving';
|
|
PRS.upsertkenmerk (1607, rec.prs_perslid_key, rec.prs_kenmerk9);
|
|
|
|
v_errorhint:='Fout bijwerken kenmerkveld10 - Uren/wk';
|
|
PRS.upsertkenmerk (1640, rec.prs_perslid_key, rec.prs_kenmerk10);
|
|
|
|
v_errorhint:='Fout bijwerken kenmerkveld11 - Leidinggevende persnr';
|
|
PRS.upsertkenmerk (1643, rec.prs_perslid_key, rec.prs_kenmerk11);
|
|
|
|
v_errorhint:='Fout bijwerken kenmerkveld12 - Naam Leidinggevende';
|
|
PRS.upsertkenmerk (1642, rec.prs_perslid_key, rec.prs_kenmerk12);
|
|
|
|
v_errorhint:='Fout bijwerken kenmerkveld13 - Kofferletter';
|
|
PRS.upsertkenmerk (1641, rec.prs_perslid_key, rec.prs_kenmerk13);
|
|
|
|
v_errorhint:='Fout bijwerken kenmerkveld14 - Datum in Dienst';
|
|
PRS.upsertkenmerk (1780, rec.prs_perslid_key, rec.prs_kenmerk14);
|
|
|
|
v_errorhint:='Fout bijwerken kenmerkveld14 - Datum uit Dienst';
|
|
PRS.upsertkenmerk (1800, rec.prs_perslid_key, rec.prs_kenmerk15);
|
|
|
|
END;
|
|
END LOOP;
|
|
|
|
-- En de verantwoordelijk manager updaten in de personenkaart indien nodig
|
|
FOR rec IN c_verantw
|
|
LOOP
|
|
BEGIN
|
|
v_errorhint:='Fout bijwerken verantwoordelijke';
|
|
|
|
-- als de aangeboden waarde uit afas anders is dan de huidige verantwoordelijke in de personenkaart dan gaan we personenkaart updaten
|
|
IF COALESCE(rec.prs_perslid_verantw_nr_afas, '<leeg>') <> COALESCE(rec.prs_perslid_verantw_nr, '<leeg>')
|
|
THEN
|
|
|
|
-- geen gevonden facilitor-manager dan gevulde verantwoordelijke verwijderen
|
|
IF rec.prs_perslid_verantw_nr_afas IS NULL
|
|
THEN
|
|
|
|
UPDATE prs_perslid
|
|
SET prs_perslid_key_verantw = ''
|
|
WHERE prs_perslid_key = rec.prs_perslid_key ;
|
|
|
|
END IF;
|
|
|
|
-- wel gevonden facilitor-manager dan bijbehorende verantwoordelijke_key in personenkaart vullen
|
|
IF rec.prs_perslid_verantw_nr_afas IS NOT NULL
|
|
THEN
|
|
|
|
SELECT MIN(prs_perslid_key)
|
|
INTO v_prs_perslid_key_verantw
|
|
FROM prs_perslid
|
|
WHERE prs_perslid_nr = rec.prs_perslid_verantw_nr_afas ;
|
|
|
|
IF v_prs_perslid_key_verantw IS NOT NULL
|
|
THEN
|
|
|
|
UPDATE prs_perslid
|
|
SET prs_perslid_key_verantw = v_prs_perslid_key_verantw
|
|
WHERE prs_perslid_key = rec.prs_perslid_key ;
|
|
|
|
ELSE
|
|
|
|
UPDATE prs_perslid
|
|
SET prs_perslid_key_verantw = ''
|
|
WHERE prs_perslid_key = rec.prs_perslid_key ;
|
|
|
|
END IF;
|
|
|
|
END IF;
|
|
|
|
|
|
END IF;
|
|
|
|
|
|
END;
|
|
END LOOP;
|
|
|
|
FOR rec IN c_rol
|
|
LOOP
|
|
BEGIN
|
|
v_errorhint:='Fout bijwerken facilitor-rollen';
|
|
|
|
-- 1. als prs_kenmerk19 leeg is dan ook alle vinkjes leegmaken...
|
|
IF rec.prs_kenmerk19 IS NULL AND (rec.prs_perslid_teamleider IS NOT NULL OR rec.prs_perslid_regiomanager IS NOT NULL OR rec.prs_perslid_manager_algemeen IS NOT NULL)
|
|
THEN
|
|
|
|
IF rec.prs_perslid_teamleider IS NOT NULL
|
|
THEN
|
|
|
|
DELETE FROM prs_kenmerklink WHERE prs_link_key = rec.prs_perslid_key AND prs_kenmerk_key = c_rol_key_teamleider AND prs_kenmerklink_VERWIJDER IS NULL ;
|
|
|
|
-- tracking doen op personenkaart
|
|
BEGIN fac.trackaction('PRSUPD', rec.prs_perslid_key, 3, NULL, 'Teamleider: 1 --> (gewist vanuit AFAS_koppeling)'); END;
|
|
|
|
END IF;
|
|
|
|
IF rec.prs_perslid_regiomanager IS NOT NULL
|
|
THEN
|
|
|
|
DELETE FROM prs_kenmerklink WHERE prs_link_key = rec.prs_perslid_key AND prs_kenmerk_key = c_rol_key_regiomanager AND prs_kenmerklink_VERWIJDER IS NULL ;
|
|
|
|
-- tracking doen op personenkaart
|
|
BEGIN fac.trackaction('PRSUPD', rec.prs_perslid_key, 3, NULL, 'Regiomanager: 1 --> (gewist vanuit AFAS_koppeling)'); END;
|
|
|
|
END IF;
|
|
|
|
IF rec.prs_perslid_manager_algemeen IS NOT NULL
|
|
THEN
|
|
|
|
DELETE FROM prs_kenmerklink WHERE prs_link_key = rec.prs_perslid_key AND prs_kenmerk_key = c_rol_key_manager AND prs_kenmerklink_VERWIJDER IS NULL ;
|
|
|
|
-- tracking doen op personenkaart
|
|
BEGIN fac.trackaction('PRSUPD', rec.prs_perslid_key, 3, NULL, 'Manager algemeen: 1 --> (gewist vanuit AFAS_koppeling)'); END;
|
|
|
|
END IF;
|
|
|
|
END IF;
|
|
|
|
-- 2. als prs_kenmerk19 gevuld is dan checken of juiste rol-vinkje gezet is, zo niet, doen..
|
|
-- 2.1. voor c_rol_key_teamleider
|
|
IF rec.prs_kenmerk19 IS NOT NULL AND fac.safe_to_number(rec.prs_kenmerk19) = c_rol_key_teamleider
|
|
THEN
|
|
|
|
-- toevoegen
|
|
IF rec.prs_perslid_teamleider IS NULL
|
|
THEN
|
|
|
|
INSERT INTO prs_kenmerklink(prs_link_key,prs_kenmerk_key,prs_kenmerklink_waarde,prs_kenmerklink_niveau)
|
|
VALUES (rec.prs_perslid_key, c_rol_key_teamleider, '1', 'P') ;
|
|
|
|
BEGIN fac.trackaction('PRSUPD', rec.prs_perslid_key, 3, NULL, 'Teamleider: (leeg) --> 1 (vanuit AFAS_koppeling)'); END;
|
|
|
|
END IF;
|
|
|
|
-- en de andere rollen deleten als ze nog aangevinkt zijn (kan maar 1 rol krijgen)
|
|
IF rec.prs_perslid_regiomanager IS NOT NULL
|
|
THEN
|
|
|
|
DELETE FROM prs_kenmerklink WHERE prs_link_key = rec.prs_perslid_key AND prs_kenmerk_key = c_rol_key_regiomanager AND prs_kenmerklink_VERWIJDER IS NULL ;
|
|
|
|
-- tracking doen op personenkaart
|
|
BEGIN fac.trackaction('PRSUPD', rec.prs_perslid_key, 3, NULL, 'Regiomanager: 1 --> (gewist vanuit AFAS_koppeling)'); END;
|
|
|
|
END IF;
|
|
|
|
IF rec.prs_perslid_manager_algemeen IS NOT NULL
|
|
THEN
|
|
|
|
DELETE FROM prs_kenmerklink WHERE prs_link_key = rec.prs_perslid_key AND prs_kenmerk_key = c_rol_key_manager AND prs_kenmerklink_VERWIJDER IS NULL ;
|
|
|
|
-- tracking doen op personenkaart
|
|
BEGIN fac.trackaction('PRSUPD', rec.prs_perslid_key, 3, NULL, 'Manager algemeen: 1 --> (gewist vanuit AFAS_koppeling)'); END;
|
|
|
|
END IF;
|
|
|
|
END IF;
|
|
|
|
-- 2.2. c_rol_key_regiomanager
|
|
IF rec.prs_kenmerk19 IS NOT NULL AND fac.safe_to_number(rec.prs_kenmerk19) = c_rol_key_regiomanager
|
|
THEN
|
|
|
|
-- toevoegen
|
|
IF rec.prs_perslid_regiomanager IS NULL
|
|
THEN
|
|
|
|
INSERT INTO prs_kenmerklink(prs_link_key,prs_kenmerk_key,prs_kenmerklink_waarde,prs_kenmerklink_niveau)
|
|
VALUES (rec.prs_perslid_key, c_rol_key_regiomanager, '1', 'P') ;
|
|
|
|
BEGIN fac.trackaction('PRSUPD', rec.prs_perslid_key, 3, NULL, 'Regiomanager: (leeg) --> 1 (vanuit AFAS_koppeling)'); END;
|
|
|
|
END IF;
|
|
|
|
-- en de andere rollen deleten als ze nog aangevinkt zijn (kan maar 1 rol krijgen)
|
|
IF rec.prs_perslid_teamleider IS NOT NULL
|
|
THEN
|
|
|
|
DELETE FROM prs_kenmerklink WHERE prs_link_key = rec.prs_perslid_key AND prs_kenmerk_key = c_rol_key_teamleider AND prs_kenmerklink_VERWIJDER IS NULL ;
|
|
|
|
-- tracking doen op personenkaart
|
|
BEGIN fac.trackaction('PRSUPD', rec.prs_perslid_key, 3, NULL, 'Teamleider: 1 --> (gewist vanuit AFAS_koppeling)'); END;
|
|
|
|
END IF;
|
|
|
|
IF rec.prs_perslid_manager_algemeen IS NOT NULL
|
|
THEN
|
|
|
|
DELETE FROM prs_kenmerklink WHERE prs_link_key = rec.prs_perslid_key AND prs_kenmerk_key = c_rol_key_manager AND prs_kenmerklink_VERWIJDER IS NULL ;
|
|
|
|
-- tracking doen op personenkaart
|
|
BEGIN fac.trackaction('PRSUPD', rec.prs_perslid_key, 3, NULL, 'Manager algemeen: 1 --> (gewist vanuit AFAS_koppeling)'); END;
|
|
|
|
END IF;
|
|
|
|
END IF;
|
|
|
|
-- 2.3. c_rol_key_manager
|
|
IF rec.prs_kenmerk19 IS NOT NULL AND fac.safe_to_number(rec.prs_kenmerk19) = c_rol_key_manager
|
|
THEN
|
|
|
|
-- toevoegen
|
|
IF rec.prs_perslid_manager_algemeen IS NULL
|
|
THEN
|
|
|
|
INSERT INTO prs_kenmerklink(prs_link_key,prs_kenmerk_key,prs_kenmerklink_waarde,prs_kenmerklink_niveau)
|
|
VALUES (rec.prs_perslid_key, c_rol_key_manager, '1', 'P') ;
|
|
|
|
BEGIN fac.trackaction('PRSUPD', rec.prs_perslid_key, 3, NULL, 'Manager algemeen: (leeg) --> 1 (vanuit AFAS_koppeling)'); END;
|
|
|
|
END IF;
|
|
|
|
-- en de andere rollen deleten als ze nog aangevinkt zijn (kan maar 1 rol krijgen)
|
|
IF rec.prs_perslid_teamleider IS NOT NULL
|
|
THEN
|
|
|
|
DELETE FROM prs_kenmerklink WHERE prs_link_key = rec.prs_perslid_key AND prs_kenmerk_key = c_rol_key_teamleider AND prs_kenmerklink_VERWIJDER IS NULL ;
|
|
|
|
-- tracking doen op personenkaart
|
|
BEGIN fac.trackaction('PRSUPD', rec.prs_perslid_key, 3, NULL, 'Teamleider: 1 --> (gewist vanuit AFAS_koppeling)'); END;
|
|
|
|
END IF;
|
|
|
|
IF rec.prs_perslid_manager_algemeen IS NOT NULL
|
|
THEN
|
|
|
|
DELETE FROM prs_kenmerklink WHERE prs_link_key = rec.prs_perslid_key AND prs_kenmerk_key = c_rol_key_manager AND prs_kenmerklink_VERWIJDER IS NULL ;
|
|
|
|
-- tracking doen op personenkaart
|
|
BEGIN fac.trackaction('PRSUPD', rec.prs_perslid_key, 3, NULL, 'Manager algemeen: 1 --> (gewist vanuit AFAS_koppeling)'); END;
|
|
|
|
END IF;
|
|
|
|
END IF;
|
|
|
|
END;
|
|
END LOOP;
|
|
|
|
/*
|
|
FOR rec IN c_aut
|
|
LOOP
|
|
BEGIN
|
|
-- Alle locatiemanagers toevoegen aan eigen autorisatiegroep'
|
|
v_errorhint:='Fout bijwerken locatiemanagers in eigen autorisatiegroep';
|
|
|
|
BEGIN
|
|
|
|
SELECT fac_gebruikersgroep_key
|
|
INTO v_fac_gebruikersgroep_key
|
|
FROM fac_gebruikersgroep
|
|
WHERE fac_groep_key = 22 -- Groep 'Locatie- en Regiomanagers'
|
|
AND prs_perslid_key = rec.prs_perslid_key ;
|
|
EXCEPTION
|
|
WHEN NO_DATA_FOUND
|
|
THEN
|
|
|
|
INSERT INTO fac_gebruikersgroep (fac_groep_key,
|
|
prs_perslid_key)
|
|
VALUES (22, rec.prs_perslid_key);
|
|
|
|
END;
|
|
|
|
|
|
END;
|
|
END LOOP;
|
|
*/
|
|
|
|
|
|
ELSE
|
|
fac.imp_writelog (p_import_key,
|
|
'E',
|
|
v_errormsg,
|
|
v_errorhint);
|
|
COMMIT;
|
|
END IF;
|
|
|
|
COMMIT;
|
|
EXCEPTION
|
|
WHEN OTHERS
|
|
THEN
|
|
oracle_err_num := SQLCODE;
|
|
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
|
|
v_errormsg := 'Error ' || oracle_err_num || '/' || oracle_err_mes;
|
|
fac.imp_writelog (p_import_key,
|
|
'E',
|
|
v_errormsg,
|
|
v_errorhint);
|
|
END hmod_update_afasonline;
|
|
/
|
|
|
|
|
|
|
|
|
|
---------------------------------------------------------------------------
|
|
--- HIERONDER OUDE IMPORT ADP en KOFFERSYSTEEM NOG HELEMAAL OPSCHONEN! ----
|
|
---------------------------------------------------------------------------
|
|
|
|
|
|
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_LOC,
|
|
MANAGER_ALGEMEEN,
|
|
REGIOMANAGER,
|
|
BEDRIJF,
|
|
DATUM_UITDIENST
|
|
)
|
|
AS
|
|
SELECT
|
|
p.prs_perslid_key,
|
|
p.prs_perslid_voornaam || ' ' || p.prs_perslid_naam
|
|
naam,
|
|
p.prs_perslid_nr,
|
|
p.prs_perslid_voornaam || ' ' || p.prs_perslid_naam || ' (' || p.prs_perslid_nr || ')' ||
|
|
DECODE(v.teamleider_loc, 'ja', ' - teamleider loc',
|
|
DECODE(v.regiomanager, 'ja', ' - regiomanager',
|
|
DECODE(v.manager_algemeen, 'ja', '- manager algemeen',
|
|
NULL))) naam_tot,
|
|
v.teamleider_loc,
|
|
v.manager_algemeen,
|
|
v.regiomanager,
|
|
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
|
|
teamleider_loc,
|
|
(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) -- manager algemeen
|
|
manager_algemeen,
|
|
(select CASE WHEN max(k.prs_kenmerklink_waarde) IS NULL THEN 'nee' ELSE 'ja' END regiomanager
|
|
from prs_kenmerklink k where k.prs_link_key = p.prs_perslid_key and k.prs_kenmerklink_niveau = 'P' and k.prs_kenmerk_key = 1740) -- regiomanager
|
|
regiomanager,
|
|
(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 IN (41, 8101) -- HMOD en HMOD-interne-emailadressen
|
|
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_loc = 'ja'
|
|
;
|
|
|
|
CREATE OR REPLACE VIEW hmod_v_personenlijst_man
|
|
AS
|
|
SELECT *
|
|
FROM hmod_v_personenlijst
|
|
WHERE
|
|
manager_algemeen = 'ja'
|
|
;
|
|
|
|
CREATE OR REPLACE VIEW hmod_v_personenlijst_rm -- Regiomanager
|
|
AS
|
|
SELECT *
|
|
FROM hmod_v_personenlijst
|
|
WHERE
|
|
regiomanager = 'ja'
|
|
;
|
|
|
|
-- HR is geen officiele Facilitor-rol meer en view kan tzt weg/gedropt worden
|
|
CREATE OR REPLACE VIEW hmod_v_personenlijst_hr
|
|
AS
|
|
SELECT *
|
|
FROM hmod_v_personenlijst ;
|
|
|
|
|
|
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 = 5 THEN 'ja' ELSE 'nee' END
|
|
automatisch_verlengen,
|
|
CASE WHEN cnt_contract_inactiveren = 1 THEN 'ja' ELSE 'nee' END
|
|
automatisch_beeindigen,
|
|
(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'
|
|
AND v.automatisch_beeindigen = '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'
|
|
AND v.automatisch_beeindigen = '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'
|
|
AND v.automatisch_beeindigen = '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' ;
|
|
|
|
-- Als vanuit AFAS-koppeling een nieuwe medewerker binnenkomt of een bestaande medewerker een formatieplaats-wijziging heeft, dan moet er in Facilitor een HR-mutatieproces opgestart worden
|
|
CREATE OR REPLACE VIEW hmod_v_noti_afas_hrtrigger
|
|
(
|
|
code,
|
|
sender,
|
|
receiver,
|
|
text,
|
|
key,
|
|
xkey,
|
|
xemail,
|
|
xmobile
|
|
)
|
|
AS
|
|
SELECT 'PRSUPD',
|
|
NULL,
|
|
g.prs_perslid_key,
|
|
'HR_MUTATIE: ' || v.prs_perslid_email || ' - ' || v.afas_hr_mutatie
|
|
text,
|
|
v.prs_perslid_key,
|
|
NULL,
|
|
NULL,
|
|
NULL
|
|
FROM (SELECT p.prs_perslid_key, p.prs_perslid_naam, p.prs_perslid_email, p.prs_perslid_nr,
|
|
flx.getflex('PRS', 1760, p.prs_perslid_key, 'P') afas_hr_mutatie
|
|
FROM prs_perslid p ) v,
|
|
(SELECT ft.fac_tracking_refkey, ft.fac_tracking_oms, MAX(ft.fac_tracking_datum) datum_mutatie
|
|
FROM fac_tracking ft, fac_srtnotificatie sn
|
|
WHERE ft.fac_srtnotificatie_key = sn.fac_srtnotificatie_key
|
|
AND sn.fac_srtnotificatie_code = 'PRSUPD'
|
|
AND (
|
|
ft.fac_tracking_oms = 'MDW_FORMATIEPLAATS_GEWIJZIGD'
|
|
OR
|
|
ft.fac_tracking_oms = 'MDW_NIEUW'
|
|
)
|
|
GROUP BY ft.fac_tracking_refkey, ft.fac_tracking_oms
|
|
) ft,
|
|
(SELECT gg.prs_perslid_key
|
|
FROM fac_groep g, fac_gebruikersgroep gg
|
|
WHERE g.fac_groep_key = gg.fac_groep_key
|
|
AND g.fac_groep_key = 541 -- AUTORISATIEGROEP HR_MUTATIE
|
|
AND gg.fac_gebruikersgroep_vervaldatum IS NULL
|
|
) g,
|
|
(SELECT COALESCE(fac_notificatie_job_lastrun, trunc(sysdate-1)) datum_last_run
|
|
FROM fac_notificatie_job
|
|
WHERE LOWER(fac_notificatie_job_view) ='hmod_v_noti_afas_hrtrigger') n
|
|
WHERE v.prs_perslid_key = ft.fac_tracking_refkey
|
|
AND ft.datum_mutatie >= n.datum_last_run
|
|
;
|
|
|
|
|
|
---------------------
|
|
-- 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
|