2563 lines
112 KiB
SQL
2563 lines
112 KiB
SQL
-- Script containing customer specific configuration sql statements for WEHK: Wehkamp
|
|
-- (c) 2010 SG|facilitor bv
|
|
-- $Revision$
|
|
-- $Id$
|
|
--
|
|
-- Support: +31 53 4800700
|
|
|
|
SET ECHO ON
|
|
|
|
SPOOL xwehk.lst;
|
|
|
|
/* Formatted on 4-4-2012 16:44:36 (QP5 v5.115.810.9015) */
|
|
CREATE OR REPLACE VIEW wehk_v_import_log
|
|
AS
|
|
SELECT imp_log_status fclt_f_status,
|
|
imp_log_omschrijving omschrijving,
|
|
imp_log_hint opmerking
|
|
FROM imp_log l
|
|
WHERE l.fac_import_key = (SELECT MAX (fac_import_key)
|
|
FROM fac_import
|
|
WHERE fac_import_app_key = 29);
|
|
|
|
CREATE OR REPLACE PROCEDURE wehk_import_prs (
|
|
p_import_key IN NUMBER
|
|
) IS
|
|
|
|
c_fielddelimitor VARCHAR2 (1) := ';';
|
|
|
|
v_newline VARCHAR2 (1000); -- Input line
|
|
v_errormsg VARCHAR (1000);
|
|
v_errorhint VARCHAR (1000);
|
|
oracle_err_num NUMBER;
|
|
oracle_err_mes VARCHAR2 (200);
|
|
v_count NUMBER;
|
|
v_ongeldig NUMBER(1);
|
|
v_mode NUMBER(1);
|
|
v_aanduiding VARCHAR (200);
|
|
v_all_null BOOLEAN;
|
|
v_count_error NUMBER(10);
|
|
v_count_tot NUMBER(10);
|
|
v_count_import NUMBER(10);
|
|
v_position NUMBER(10);
|
|
|
|
-- De importvelden:
|
|
v_alg_locatie_code VARCHAR2(256);
|
|
v_alg_gebouw_code VARCHAR2(256);
|
|
v_alg_verdieping_volgnr VARCHAR2(256);
|
|
v_prs_afdeling_naam VARCHAR2(256);
|
|
v_prs_perslid_naam VARCHAR2(256);
|
|
v_prs_perslid_naam_all VARCHAR2(256);
|
|
v_prs_perslid_voornaam VARCHAR2(256);
|
|
v_prs_perslid_titel VARCHAR2(256);
|
|
v_prs_perslid_voorletters VARCHAR2(256);
|
|
v_prs_perslid_mobiel VARCHAR2(256);
|
|
v_prs_perslid_email VARCHAR2(256);
|
|
v_prs_srtperslid_omschrijving VARCHAR2(256);
|
|
v_prs_perslid_nr VARCHAR2(256);
|
|
v_prs_perslid_oslogin VARCHAR2(256);
|
|
v_prs_perslid_telefoonnr VARCHAR2(256);
|
|
|
|
|
|
-- De importvelden:
|
|
v_alg_verdieping_volgnr_num NUMBER(3);
|
|
v_alg_ruimte_nr VARCHAR2(256);
|
|
v_prs_werkplek_volgnr VARCHAR2(256);
|
|
v_prs_perslid_tussenvoegsel VARCHAR2(256);
|
|
|
|
-- PRS_BEDRIJF
|
|
CURSOR c1(p_import_key NUMBER)
|
|
IS
|
|
SELECT *
|
|
FROM fac_imp_file
|
|
WHERE 1=1
|
|
AND fac_import_key = p_import_key
|
|
ORDER BY fac_imp_file_index;
|
|
|
|
rec1 c1%ROWTYPE;
|
|
|
|
BEGIN
|
|
DELETE FROM wehk_imp_prs;
|
|
|
|
v_count_error := 0;
|
|
v_count_tot := 0;
|
|
v_count_import := 0;
|
|
v_aanduiding := '';
|
|
OPEN c1(p_import_key);
|
|
IF (c1%ISOPEN)
|
|
THEN
|
|
LOOP
|
|
BEGIN
|
|
v_errormsg := 'Fout FETCH te importeren rij';
|
|
|
|
FETCH c1 INTO rec1;
|
|
EXIT WHEN c1%NOTFOUND;
|
|
IF (v_count_tot = 0) THEN FETCH c1 INTO rec1; EXIT WHEN c1%NOTFOUND; END IF; -- Sla eerste regel van het importbestand over
|
|
v_newline := rec1. fac_imp_file_line;
|
|
v_count_tot := v_count_tot + 1;
|
|
|
|
v_errormsg := '';
|
|
v_errorhint := 'Fout opvragen te importeren rij';
|
|
v_aanduiding := '';
|
|
v_ongeldig := 0;
|
|
|
|
IF (1=0)
|
|
THEN
|
|
fac.imp_writelog (p_import_key,
|
|
'E',
|
|
v_aanduiding||'Ongeldig importbestand',
|
|
'Toelichting: ... '
|
|
);
|
|
ELSE
|
|
|
|
-- Lees alle veldwaarden
|
|
-- 01
|
|
fac.imp_getfield (v_newline,
|
|
C_FIELDDELIMITOR,
|
|
v_alg_locatie_code
|
|
);
|
|
-- 02
|
|
fac.imp_getfield (v_newline,
|
|
C_FIELDDELIMITOR,
|
|
v_alg_gebouw_code
|
|
);
|
|
-- 03
|
|
fac.imp_getfield (v_newline,
|
|
C_FIELDDELIMITOR,
|
|
v_alg_verdieping_volgnr
|
|
);
|
|
-- 04
|
|
fac.imp_getfield (v_newline,
|
|
C_FIELDDELIMITOR,
|
|
v_alg_ruimte_nr
|
|
);
|
|
-- 05
|
|
fac.imp_getfield (v_newline,
|
|
C_FIELDDELIMITOR,
|
|
v_prs_afdeling_naam
|
|
);
|
|
-- 06
|
|
fac.imp_getfield (v_newline,
|
|
C_FIELDDELIMITOR,
|
|
v_prs_perslid_naam_all
|
|
);
|
|
-- 07
|
|
fac.imp_getfield (v_newline,
|
|
C_FIELDDELIMITOR,
|
|
v_prs_perslid_voornaam
|
|
);
|
|
-- 08
|
|
fac.imp_getfield (v_newline,
|
|
C_FIELDDELIMITOR,
|
|
v_prs_perslid_titel
|
|
);
|
|
-- 09
|
|
fac.imp_getfield (v_newline,
|
|
C_FIELDDELIMITOR,
|
|
v_prs_perslid_telefoonnr
|
|
);
|
|
-- 10
|
|
fac.imp_getfield (v_newline,
|
|
C_FIELDDELIMITOR,
|
|
v_prs_perslid_mobiel
|
|
);
|
|
-- 11
|
|
fac.imp_getfield (v_newline,
|
|
C_FIELDDELIMITOR,
|
|
v_prs_perslid_email
|
|
);
|
|
-- 12
|
|
fac.imp_getfield (v_newline,
|
|
C_FIELDDELIMITOR,
|
|
v_prs_srtperslid_omschrijving
|
|
);
|
|
-- 13
|
|
fac.imp_getfield (v_newline,
|
|
C_FIELDDELIMITOR,
|
|
v_prs_perslid_nr
|
|
);
|
|
-- 14
|
|
fac.imp_getfield (v_newline,
|
|
C_FIELDDELIMITOR,
|
|
v_prs_perslid_oslogin
|
|
);
|
|
|
|
v_aanduiding := v_prs_perslid_naam_all||' - ';
|
|
|
|
-- Controleer alle veldwaarde
|
|
v_errorhint := 'Ongeldige locatie code';
|
|
v_alg_locatie_code := trim(v_alg_locatie_code);
|
|
IF LENGTH (v_alg_locatie_code) > 5
|
|
THEN
|
|
v_alg_locatie_code:= SUBSTR(v_alg_locatie_code,1,5);
|
|
fac.imp_writelog(p_import_key
|
|
,'W'
|
|
,v_aanduiding||'Locatie-aanduiding is te lang'
|
|
,'Aanduiding wordt afgebroken tot <' || v_alg_locatie_code || '>'
|
|
);
|
|
END IF;
|
|
--
|
|
v_errorhint := 'Ongeldige gebouw code';
|
|
v_alg_gebouw_code := trim(v_alg_gebouw_code);
|
|
IF LENGTH (v_alg_gebouw_code) > 10
|
|
THEN
|
|
v_alg_gebouw_code:= SUBSTR(v_alg_gebouw_code,1,10);
|
|
fac.imp_writelog(p_import_key
|
|
,'W'
|
|
,v_aanduiding||'Gebouw-aanduiding is te lang'
|
|
,'Aanduiding wordt afgebroken tot <' || v_alg_gebouw_code || '>'
|
|
);
|
|
END IF;
|
|
--
|
|
v_errorhint := 'Ongeldig verdieping volgnummer';
|
|
v_alg_verdieping_volgnr := trim(v_alg_verdieping_volgnr);
|
|
IF (v_alg_verdieping_volgnr IS NULL) THEN
|
|
v_alg_verdieping_volgnr_num := TO_NUMBER(v_alg_verdieping_volgnr);
|
|
ELSE
|
|
BEGIN
|
|
v_alg_verdieping_volgnr_num:= TO_NUMBER(v_alg_verdieping_volgnr);
|
|
|
|
EXCEPTION
|
|
WHEN OTHERS
|
|
THEN
|
|
v_ongeldig := 1;
|
|
oracle_err_num := SQLCODE;
|
|
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
|
|
v_errormsg := 'OTHERS (error ' || oracle_err_num || '/' || oracle_err_mes || ')';
|
|
fac.imp_writelog (p_import_key,
|
|
'E',
|
|
v_aanduiding||v_errormsg,
|
|
v_errorhint
|
|
);
|
|
END;
|
|
END IF;
|
|
--
|
|
v_errorhint := 'Ongeldige ruimte nr';
|
|
v_alg_ruimte_nr := trim(v_alg_ruimte_nr);
|
|
IF LENGTH (v_alg_ruimte_nr) > 10
|
|
THEN
|
|
v_alg_ruimte_nr:= SUBSTR(v_alg_ruimte_nr,1,10);
|
|
fac.imp_writelog(p_import_key
|
|
,'W'
|
|
,v_aanduiding||'Ruimtenr-aanduiding is te lang'
|
|
,'Aanduiding wordt afgebroken tot <' || v_alg_ruimte_nr || '>'
|
|
);
|
|
END IF;
|
|
--
|
|
v_errorhint := 'Afleiden naam niet succesvol';
|
|
-- Markeer de positie van ',' of anders positie 257 (dwz geen komma)
|
|
SELECT DECODE (INSTR (v_prs_perslid_naam_all, ','), 0, 257, INSTR (v_prs_perslid_naam_all, ',') )
|
|
INTO v_position
|
|
FROM DUAL;
|
|
--
|
|
SELECT SUBSTR (v_prs_perslid_naam_all,
|
|
1,
|
|
v_position - 1
|
|
)
|
|
INTO v_prs_perslid_naam
|
|
FROM DUAL;
|
|
-- v_position + 2 --> komma overslaan
|
|
SELECT TRIM(SUBSTR (v_prs_perslid_naam_all, v_position + 1))
|
|
INTO v_prs_perslid_naam_all
|
|
FROM DUAL;
|
|
--
|
|
v_errorhint := 'Ongeldige naam persoon';
|
|
v_prs_perslid_naam := trim(v_prs_perslid_naam);
|
|
IF LENGTH (v_prs_perslid_naam) > 30
|
|
THEN
|
|
v_prs_perslid_naam:= SUBSTR(v_prs_perslid_naam,1,30);
|
|
fac.imp_writelog(p_import_key
|
|
,'W'
|
|
,v_aanduiding||'Naam persoon is te lang'
|
|
,'Aanduiding wordt afgebroken tot <' || v_prs_perslid_naam || '>'
|
|
);
|
|
ELSE
|
|
IF (v_prs_perslid_naam IS NULL) THEN
|
|
v_ongeldig := 1;
|
|
fac.imp_writelog(p_import_key
|
|
,'E'
|
|
,'Persoon heeft geen achternaam, personeelsnummer: '||v_prs_perslid_nr
|
|
,'Naam persoon moet worden opgegeven'
|
|
);
|
|
END IF;
|
|
END IF;
|
|
v_errorhint := 'Afleiden voorletters niet succesvol';
|
|
-- Markeer de positie van ' ' (spatie) of anders positie 257 (dwz geen spatie)
|
|
SELECT DECODE (INSTR (v_prs_perslid_naam_all, ' '), 0, 257, INSTR (v_prs_perslid_naam_all, ' ') )
|
|
INTO v_position
|
|
FROM DUAL;
|
|
--
|
|
SELECT SUBSTR (v_prs_perslid_naam_all,
|
|
1,
|
|
v_position - 1
|
|
)
|
|
INTO v_prs_perslid_voorletters
|
|
FROM DUAL;
|
|
-- v_position + 2 --> spatie overslaan
|
|
SELECT SUBSTR (v_prs_perslid_naam_all, v_position + 1)
|
|
INTO v_prs_perslid_naam_all
|
|
FROM DUAL;
|
|
--
|
|
v_errorhint := 'Ongeldige voorletters persoon';
|
|
v_prs_perslid_voorletters := trim(v_prs_perslid_voorletters);
|
|
IF LENGTH (v_prs_perslid_voorletters) > 10
|
|
THEN
|
|
v_prs_perslid_voorletters:= SUBSTR(v_prs_perslid_voorletters,1,10);
|
|
fac.imp_writelog(p_import_key
|
|
,'W'
|
|
,v_aanduiding||'Voorletters persoon zijn te lang'
|
|
,'Aanduiding wordt afgebroken tot <' || v_prs_perslid_voorletters || '>'
|
|
);
|
|
END IF;
|
|
--
|
|
v_errorhint := 'Ongeldige tussenvoegsel persoon';
|
|
v_prs_perslid_tussenvoegsel := trim(v_prs_perslid_naam_all);
|
|
IF LENGTH (v_prs_perslid_tussenvoegsel) > 10
|
|
THEN
|
|
v_prs_perslid_tussenvoegsel:= SUBSTR(v_prs_perslid_tussenvoegsel,1,10);
|
|
fac.imp_writelog(p_import_key
|
|
,'W'
|
|
,v_aanduiding||'Tussenvoegsel persoon is te lang'
|
|
,'Aanduiding wordt afgebroken tot <' || v_prs_perslid_tussenvoegsel || '>'
|
|
);
|
|
END IF;
|
|
--
|
|
v_errorhint := 'Voornaam persoon';
|
|
v_prs_perslid_voornaam := trim(v_prs_perslid_voornaam);
|
|
IF LENGTH (v_prs_perslid_voornaam) > 30
|
|
THEN
|
|
v_prs_perslid_voornaam:= SUBSTR(v_prs_perslid_voornaam,1,30);
|
|
fac.imp_writelog(p_import_key
|
|
,'W'
|
|
,v_aanduiding||'Voornaam persoon is te lang'
|
|
,'Aanduiding wordt afgebroken tot <' || v_prs_perslid_voornaam || '>'
|
|
);
|
|
ELSE
|
|
IF (v_prs_perslid_voornaam IS NULL) THEN
|
|
v_errorhint := 'Geen voornaam gevonden, is ook niet verplicht';
|
|
END IF;
|
|
END IF;
|
|
--
|
|
v_errorhint := 'Ongeldige titel persoon';
|
|
v_prs_perslid_titel := trim(v_prs_perslid_titel);
|
|
IF LENGTH (v_prs_perslid_titel) > 15
|
|
THEN
|
|
v_prs_perslid_titel:= SUBSTR(v_prs_perslid_titel,1,15);
|
|
fac.imp_writelog(p_import_key
|
|
,'W'
|
|
,v_aanduiding||'Titel persoon is te lang'
|
|
,'Aanduiding wordt afgebroken tot <' || v_prs_perslid_titel || '>'
|
|
);
|
|
END IF;
|
|
--
|
|
v_errorhint := 'Ongeldige telefoonnr. persoon';
|
|
v_prs_perslid_telefoonnr := trim(v_prs_perslid_telefoonnr);
|
|
IF LENGTH (v_prs_perslid_telefoonnr) > 15
|
|
THEN
|
|
v_prs_perslid_telefoonnr:= SUBSTR(v_prs_perslid_telefoonnr,1,15);
|
|
fac.imp_writelog(p_import_key
|
|
,'W'
|
|
,v_aanduiding||'Telefoonnr. persoon is te lang'
|
|
,'Aanduiding wordt afgebroken tot <' || v_prs_perslid_telefoonnr || '>'
|
|
);
|
|
END IF;
|
|
--
|
|
v_errorhint := 'Ongeldige mobielnr. persoon';
|
|
v_prs_perslid_mobiel := trim(v_prs_perslid_mobiel);
|
|
IF LENGTH (v_prs_perslid_mobiel) > 15
|
|
THEN
|
|
v_prs_perslid_mobiel:= SUBSTR(v_prs_perslid_mobiel,1,15);
|
|
fac.imp_writelog(p_import_key
|
|
,'W'
|
|
,v_aanduiding||'Mobielnr. persoon is te lang'
|
|
,'Aanduiding wordt afgebroken tot <' || v_prs_perslid_mobiel || '>'
|
|
);
|
|
END IF;
|
|
--
|
|
v_errorhint := 'Ongeldige email persoon';
|
|
v_prs_perslid_email := trim(v_prs_perslid_email);
|
|
IF LENGTH (v_prs_perslid_email) > 50
|
|
THEN
|
|
v_prs_perslid_email:= SUBSTR(v_prs_perslid_email,1,50);
|
|
fac.imp_writelog(p_import_key
|
|
,'W'
|
|
,v_aanduiding||'Email persoon is te lang'
|
|
,'Aanduiding wordt afgebroken tot <' || v_prs_perslid_email || '>'
|
|
);
|
|
END IF;
|
|
--
|
|
v_errorhint := 'Ongeldige functie persoon';
|
|
v_prs_srtperslid_omschrijving := trim(v_prs_srtperslid_omschrijving);
|
|
IF LENGTH (v_prs_srtperslid_omschrijving) > 30
|
|
THEN
|
|
v_prs_srtperslid_omschrijving:= SUBSTR(v_prs_srtperslid_omschrijving,1,30);
|
|
fac.imp_writelog(p_import_key
|
|
,'W'
|
|
,v_aanduiding||'Functie-aanduiding persoon is te lang'
|
|
,'Aanduiding wordt afgebroken tot <' || v_prs_srtperslid_omschrijving || '>'
|
|
);
|
|
ELSE
|
|
IF (v_prs_srtperslid_omschrijving IS NULL) THEN
|
|
v_ongeldig := 1;
|
|
fac.imp_writelog(p_import_key
|
|
,'E'
|
|
,v_aanduiding||'Functie persoon onbekend'
|
|
,'Functie persoon moet worden opgegeven'
|
|
);
|
|
END IF;
|
|
END IF;
|
|
--
|
|
v_errorhint := 'Ongeldige persoonnr.';
|
|
v_prs_perslid_nr := trim(v_prs_perslid_nr);
|
|
IF LENGTH (v_prs_perslid_nr) > 16
|
|
THEN
|
|
v_prs_perslid_nr := SUBSTR(v_prs_perslid_nr,1,16);
|
|
fac.imp_writelog(p_import_key
|
|
,'W'
|
|
,v_aanduiding||'Persoonnr. persoon is te lang'
|
|
,'Aanduiding wordt afgebroken tot <' || v_prs_perslid_nr || '>'
|
|
);
|
|
END IF;
|
|
--
|
|
IF v_prs_perslid_nr IS NULL
|
|
THEN
|
|
v_prs_perslid_nr := SUBSTR(v_prs_perslid_nr,1,16);
|
|
fac.imp_writelog(p_import_key
|
|
,'E'
|
|
,v_aanduiding||'Persoonnr. persoon is te lang'
|
|
,'Persoon heeft geen personeelsnummer <' || v_prs_perslid_naam || '>'
|
|
);
|
|
END IF;
|
|
--
|
|
v_errorhint := 'Ongeldige loginnaam';
|
|
v_prs_perslid_oslogin := trim(v_prs_perslid_oslogin);
|
|
IF LENGTH (v_prs_perslid_oslogin) > 30
|
|
THEN
|
|
v_prs_perslid_oslogin := SUBSTR(v_prs_perslid_oslogin,1,30);
|
|
fac.imp_writelog(p_import_key
|
|
,'W'
|
|
,v_aanduiding||'Loginnaam persoon is te lang'
|
|
,'Aanduiding wordt afgebroken tot <' || v_prs_perslid_oslogin || '>'
|
|
);
|
|
END IF;
|
|
--
|
|
|
|
-- Insert geformatteerde import record
|
|
IF v_ongeldig = 0
|
|
THEN
|
|
v_errormsg := 'Fout bij toevoegen te importeren persoon';
|
|
|
|
INSERT INTO wehk_imp_prs (
|
|
ALG_LOCATIE_CODE
|
|
,ALG_GEBOUW_CODE
|
|
,ALG_VERDIEPING_VOLGNR
|
|
,ALG_RUIMTE_NR
|
|
,PRS_AFDELING_NAAM
|
|
,PRS_PERSLID_NAAM
|
|
,PRS_PERSLID_VOORNAAM
|
|
,PRS_PERSLID_VOORLETTERS
|
|
,PRS_PERSLID_TUSSENVOEGSEL
|
|
,PRS_PERSLID_TITEL
|
|
,PRS_PERSLID_TELEFOONNR
|
|
,PRS_PERSLID_MOBIEL
|
|
,PRS_PERSLID_EMAIL
|
|
,PRS_SRTPERSLID_OMSCHRIJVING
|
|
,PRS_PERSLID_NR
|
|
,PRS_PERSLID_OSLOGIN
|
|
) VALUES (
|
|
v_ALG_LOCATIE_CODE
|
|
,v_ALG_GEBOUW_CODE
|
|
,v_ALG_VERDIEPING_VOLGNR
|
|
,v_ALG_RUIMTE_NR
|
|
,v_PRS_AFDELING_NAAM
|
|
,v_PRS_PERSLID_NAAM
|
|
,v_PRS_PERSLID_VOORNAAM
|
|
,v_PRS_PERSLID_VOORLETTERS
|
|
,v_PRS_PERSLID_TUSSENVOEGSEL
|
|
--,DECODE(v_PRS_PERSLID_TITEL,'M','De heer',DECODE(v_PRS_PERSLID_TITEL,'V','Mevrouw',v_PRS_PERSLID_TITEL))
|
|
,v_PRS_PERSLID_TITEL
|
|
,v_PRS_PERSLID_TELEFOONNR
|
|
,v_PRS_PERSLID_MOBIEL
|
|
,v_PRS_PERSLID_EMAIL
|
|
,v_PRS_SRTPERSLID_OMSCHRIJVING
|
|
,v_PRS_PERSLID_NR
|
|
,v_PRS_PERSLID_OSLOGIN
|
|
);
|
|
|
|
v_count_import := v_count_import + 1;
|
|
END IF;
|
|
|
|
END IF;
|
|
END;
|
|
END LOOP;
|
|
END IF;
|
|
|
|
fac.imp_writelog ( p_import_key,
|
|
'S',
|
|
'Persoon: aantal ingelezen regels: '||to_char(v_count_tot),
|
|
''
|
|
);
|
|
|
|
fac.imp_writelog ( p_import_key,
|
|
'S',
|
|
'Persoon: aantal ingelezen ongeldige importregels: <b>'||to_char(v_count_tot - v_count_import),
|
|
''
|
|
);
|
|
|
|
|
|
COMMIT;
|
|
|
|
EXCEPTION
|
|
WHEN OTHERS
|
|
THEN
|
|
oracle_err_num := SQLCODE;
|
|
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
|
|
v_errormsg := 'OTHERS (error ' || oracle_err_num || '/' || oracle_err_mes || ')';
|
|
fac.imp_writelog (p_import_key,
|
|
'E',
|
|
v_aanduiding||v_errormsg,
|
|
v_errorhint
|
|
);
|
|
|
|
END wehk_import_prs;
|
|
/
|
|
|
|
CREATE OR REPLACE PROCEDURE wehk_update_prs (
|
|
p_import_key IN NUMBER
|
|
)
|
|
IS
|
|
c_fielddelimitor VARCHAR2 (1) := ';';
|
|
c_persoon_inactief VARCHAR2 (30) := 'INACTIEF: ';
|
|
-- Groep waar personen in geplaatst worden (indien nog geen groep)
|
|
c_groep_upper VARCHAR2 (30) := 'ALGEMEEN';
|
|
c_profiel_oms VARCHAR2 (30) := 'ALGEMEEN';
|
|
v_errormsg VARCHAR2 (1000);
|
|
v_errorhint VARCHAR2 (1000);
|
|
oracle_err_num NUMBER;
|
|
oracle_err_mes VARCHAR2 (200);
|
|
v_aanduiding VARCHAR2 (200);
|
|
v_percentage NUMBER;
|
|
v_count NUMBER (10);
|
|
v_count2 NUMBER (10);
|
|
v_count_prev_log NUMBER (10);
|
|
v_ongeldig NUMBER (1);
|
|
v_count_update NUMBER (10);
|
|
v_count_error NUMBER (10);
|
|
v_count_tot NUMBER (10);
|
|
--
|
|
v_perslid_key NUMBER (10);
|
|
v_afdeling_key NUMBER (10);
|
|
v_srtperslid_key NUMBER (10);
|
|
v_locatie_key NUMBER (10);
|
|
v_gebouw_key NUMBER (10);
|
|
v_verdieping_key NUMBER (10);
|
|
v_ruimte_key NUMBER (10);
|
|
v_wp_volgnr NUMBER (3);
|
|
v_wp_oms VARCHAR2 (30);
|
|
v_wp_key NUMBER (10);
|
|
v_groep_key NUMBER (10);
|
|
v_profiel_key NUMBER (10);
|
|
|
|
CURSOR csperslid
|
|
IS
|
|
SELECT MIN (prs_perslid_naam) prs_perslid_naam,
|
|
MIN (prs_perslid_voornaam) prs_perslid_voornaam,
|
|
MIN (prs_srtperslid_omschrijving) prs_srtperslid_omschrijving
|
|
FROM wehk_imp_prs
|
|
WHERE 1 = 1
|
|
GROUP BY UPPER (prs_srtperslid_omschrijving);
|
|
|
|
recsperslid csperslid%ROWTYPE;
|
|
|
|
CURSOR cperslid
|
|
IS
|
|
SELECT *
|
|
FROM wehk_imp_prs
|
|
WHERE 1 = 1;
|
|
|
|
recperslid cperslid%ROWTYPE;
|
|
|
|
CURSOR cpersliddel
|
|
IS
|
|
SELECT p.prs_perslid_key, p.prs_perslid_nr, p.prs_perslid_naam,
|
|
p.prs_perslid_voornaam
|
|
FROM prs_v_aanwezigperslid p
|
|
WHERE p.prs_perslid_nr IS NOT NULL
|
|
AND NOT EXISTS (
|
|
SELECT 1
|
|
FROM wehk_imp_prs ip
|
|
WHERE UPPER (ip.prs_perslid_nr) =
|
|
UPPER (p.prs_perslid_nr));
|
|
|
|
recpersliddel cpersliddel%ROWTYPE;
|
|
|
|
-- Sluit personen uit die niet in Facilitor voorkomen. Deze konden kennelijk bij de ADD
|
|
-- actie niet worden toegevoegd waarvoor waarschijnlijk al een logmelding gegenereerd is,
|
|
-- vandaar dus uitsluiten van deelname.
|
|
CURSOR cwp
|
|
IS
|
|
SELECT wip.*, TO_NUMBER (NULL) prs_werkplek_volgnr,
|
|
'' prs_werkplek_omschrijving
|
|
FROM wehk_imp_prs wip,
|
|
(SELECT prs_perslid_nr
|
|
FROM prs_perslid
|
|
WHERE prs_perslid_verwijder IS NULL) p
|
|
WHERE 1 = 1
|
|
AND p.prs_perslid_nr = wip.prs_perslid_nr
|
|
AND ( (wip.alg_locatie_code IS NOT NULL)
|
|
OR (wip.alg_gebouw_code IS NOT NULL)
|
|
OR (wip.alg_verdieping_volgnr IS NOT NULL)
|
|
OR (wip.alg_ruimte_nr IS NOT NULL)
|
|
);
|
|
|
|
recwp cwp%ROWTYPE;
|
|
|
|
-- Alle personen met nummer (ie. de import-doelgroep) niet in een groep
|
|
-- komen in ALGEMEEN.
|
|
CURSOR cnogroup
|
|
IS
|
|
SELECT p.prs_perslid_key, p.prs_perslid_nr, p.prs_perslid_naam,
|
|
p.prs_perslid_voornaam
|
|
FROM prs_v_aanwezigperslid p
|
|
WHERE p.prs_perslid_nr IS NOT NULL
|
|
AND NOT EXISTS (SELECT 1
|
|
FROM fac_gebruikersgroep g
|
|
WHERE g.prs_perslid_key = p.prs_perslid_key);
|
|
BEGIN
|
|
v_count_prev_log := 1;
|
|
|
|
-- Aantal aktieve personen
|
|
SELECT DECODE (COUNT (*), 0, 1, COUNT (*))
|
|
INTO v_count
|
|
FROM prs_perslid p
|
|
WHERE 1 = 1
|
|
AND p.prs_perslid_verwijder IS NULL
|
|
AND p.prs_perslid_naam NOT LIKE '%INACTIEF%';
|
|
|
|
-- Aantal personen importbestand
|
|
SELECT DECODE (COUNT (*), 0, 1, COUNT (*))
|
|
INTO v_count2
|
|
FROM wehk_imp_prs p
|
|
WHERE 1 = 1 AND p.prs_perslid_nr IS NULL;
|
|
|
|
v_percentage := (v_count2 / v_count2) * 100;
|
|
|
|
IF ( ((v_percentage < 80) OR (v_percentage > 120))
|
|
AND (v_count_prev_log > 0)
|
|
)
|
|
THEN
|
|
fac.imp_writelog (p_import_key,
|
|
'E',
|
|
'Het verschil tussen de actieve personen ('
|
|
|| v_count
|
|
|| ') en te importeren aantallen ('
|
|
|| v_count
|
|
|| ') is te groot, zie specificaties',
|
|
'Afwijking (' || v_percentage || ')'
|
|
);
|
|
ELSE
|
|
v_errorhint := 'Fout bij bepalen profiel';
|
|
|
|
SELECT MAX (fac_profiel_key), COUNT ( * )
|
|
INTO v_profiel_key, v_count
|
|
FROM fac_profiel
|
|
WHERE UPPER (TRIM (fac_profiel_omschrijving)) =
|
|
c_profiel_oms;
|
|
|
|
IF (v_count = 0)
|
|
THEN
|
|
fac.imp_writelog (
|
|
p_import_key,
|
|
'I',
|
|
'Standaard profiel ['
|
|
|| c_profiel_oms
|
|
|| '] niet gevonden.',
|
|
'Personen zonder profiel kunnen niet worden gekoppeld aan een profiel.'
|
|
);
|
|
COMMIT;
|
|
END IF;
|
|
|
|
OPEN csperslid;
|
|
|
|
v_count_update := 0;
|
|
v_count_tot := 0;
|
|
v_count_error := 0;
|
|
|
|
IF csperslid%ISOPEN
|
|
THEN
|
|
LOOP
|
|
BEGIN
|
|
v_aanduiding := '';
|
|
v_errormsg := '';
|
|
v_errorhint := '';
|
|
|
|
FETCH csperslid
|
|
INTO recsperslid;
|
|
|
|
EXIT WHEN csperslid%NOTFOUND;
|
|
v_count_tot := v_count_tot + 1;
|
|
v_aanduiding :=
|
|
recsperslid.prs_perslid_naam
|
|
|| '|'
|
|
|| recsperslid.prs_perslid_voornaam
|
|
|| '|'
|
|
|| recsperslid.prs_srtperslid_omschrijving
|
|
|| ' - ';
|
|
v_errorhint := 'Fout bij bepalen functie';
|
|
|
|
SELECT COUNT (*)
|
|
INTO v_count
|
|
FROM prs_srtperslid
|
|
WHERE UPPER (prs_srtperslid_omschrijving) =
|
|
UPPER (recsperslid.prs_srtperslid_omschrijving)
|
|
AND prs_srtperslid_verwijder IS NULL;
|
|
|
|
IF (v_count = 0)
|
|
THEN
|
|
v_errorhint := 'Fout bij toevoegen functie';
|
|
|
|
INSERT INTO prs_srtperslid
|
|
(prs_srtperslid_omschrijving
|
|
)
|
|
VALUES (recsperslid.prs_srtperslid_omschrijving
|
|
);
|
|
|
|
COMMIT;
|
|
END IF;
|
|
|
|
COMMIT;
|
|
EXCEPTION
|
|
WHEN OTHERS
|
|
THEN
|
|
v_count_error := v_count_error + 1;
|
|
oracle_err_num := SQLCODE;
|
|
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
|
|
v_errormsg :=
|
|
' (ORACLE error number = <'
|
|
|| oracle_err_num
|
|
|| '> ORACLE error message = <'
|
|
|| oracle_err_mes
|
|
|| '>)';
|
|
fac.imp_writelog (p_import_key,
|
|
'E',
|
|
v_aanduiding || v_errormsg,
|
|
v_errorhint
|
|
);
|
|
COMMIT;
|
|
END;
|
|
END LOOP;
|
|
|
|
fac.imp_writelog
|
|
(p_import_key,
|
|
'S',
|
|
'Personeelsfunctie: verwerkte regels zonder foutmelding: '
|
|
|| TO_CHAR (v_count_tot - v_count_error),
|
|
''
|
|
);
|
|
fac.imp_writelog
|
|
(p_import_key,
|
|
'S',
|
|
'Personeelsfunctie: verwerkte regels met foutmelding: <b>'
|
|
|| TO_CHAR (v_count_error),
|
|
''
|
|
);
|
|
COMMIT;
|
|
|
|
CLOSE csperslid;
|
|
END IF;
|
|
|
|
OPEN cperslid;
|
|
|
|
v_count_update := 0;
|
|
v_count_tot := 0;
|
|
v_count_error := 0;
|
|
|
|
IF cperslid%ISOPEN
|
|
THEN
|
|
LOOP
|
|
BEGIN
|
|
v_aanduiding := '';
|
|
v_errormsg := '';
|
|
v_errorhint := '';
|
|
|
|
FETCH cperslid
|
|
INTO recperslid;
|
|
|
|
EXIT WHEN cperslid%NOTFOUND;
|
|
v_count_tot := v_count_tot + 1;
|
|
v_aanduiding :=
|
|
recperslid.prs_perslid_naam
|
|
|| '|'
|
|
|| recperslid.prs_perslid_naam
|
|
|| ' - ';
|
|
v_errormsg := '';
|
|
v_errorhint := 'Fout bij bepalen functie';
|
|
|
|
SELECT prs_srtperslid_key
|
|
INTO v_srtperslid_key
|
|
FROM prs_srtperslid
|
|
WHERE prs_srtperslid_verwijder IS NULL
|
|
AND UPPER (prs_srtperslid_omschrijving) =
|
|
UPPER (recperslid.prs_srtperslid_omschrijving);
|
|
|
|
v_errorhint :=
|
|
'Afdeling ['
|
|
|| recperslid.prs_afdeling_naam
|
|
|| '] bestaat niet | personeelsnummer ['
|
|
|| recperslid.prs_perslid_nr
|
|
|| ']';
|
|
|
|
SELECT prs_afdeling_key
|
|
INTO v_afdeling_key
|
|
FROM prs_afdeling
|
|
WHERE UPPER (prs_afdeling_naam) =
|
|
UPPER (recperslid.prs_afdeling_naam)
|
|
AND prs_afdeling_verwijder IS NULL;
|
|
|
|
v_errorhint := 'Kijken of de persoon al bestaat';
|
|
|
|
SELECT COUNT (*), MAX (prs_perslid_key)
|
|
INTO v_count, v_perslid_key
|
|
FROM prs_perslid
|
|
WHERE prs_perslid_verwijder IS NULL
|
|
AND prs_perslid_nr = recperslid.prs_perslid_nr
|
|
AND prs_perslid_nr IS NOT NULL;
|
|
|
|
IF (v_count = 0)
|
|
THEN
|
|
v_errorhint := 'Fout bij toevoegen persoon';
|
|
|
|
INSERT INTO prs_perslid
|
|
(prs_perslid_module, prs_srtperslid_key,
|
|
prs_afdeling_key, prs_perslid_naam,
|
|
prs_perslid_voorletters,
|
|
prs_perslid_tussenvoegsel,
|
|
prs_perslid_voornaam,
|
|
prs_perslid_telefoonnr,
|
|
prs_perslid_mobiel,
|
|
prs_perslid_email,
|
|
prs_perslid_nr,
|
|
prs_perslid_titel,
|
|
prs_perslid_geslacht,
|
|
prs_perslid_oslogin,
|
|
fac_profiel_key
|
|
)
|
|
VALUES ('PRS', v_srtperslid_key,
|
|
v_afdeling_key, recperslid.prs_perslid_naam,
|
|
recperslid.prs_perslid_voorletters,
|
|
recperslid.prs_perslid_tussenvoegsel,
|
|
recperslid.prs_perslid_voornaam,
|
|
recperslid.prs_perslid_telefoonnr,
|
|
recperslid.prs_perslid_mobiel,
|
|
recperslid.prs_perslid_email,
|
|
recperslid.prs_perslid_nr,
|
|
--recperslid.prs_perslid_titel,
|
|
DECODE(UPPER(recperslid.prs_perslid_titel),'M','De heer','V','Mevrouw',recperslid.prs_perslid_titel),
|
|
DECODE(UPPER(recperslid.prs_perslid_titel),'M',1,'V',0,NULL),
|
|
recperslid.prs_perslid_oslogin,
|
|
v_profiel_key
|
|
);
|
|
|
|
COMMIT;
|
|
v_count_update := v_count_update + 1;
|
|
ELSE
|
|
UPDATE prs_perslid
|
|
SET prs_srtperslid_key = v_srtperslid_key,
|
|
prs_afdeling_key = v_afdeling_key,
|
|
prs_perslid_naam = recperslid.prs_perslid_naam,
|
|
prs_perslid_voorletters =
|
|
recperslid.prs_perslid_voorletters,
|
|
prs_perslid_tussenvoegsel =
|
|
recperslid.prs_perslid_tussenvoegsel,
|
|
prs_perslid_voornaam =
|
|
recperslid.prs_perslid_voornaam,
|
|
prs_perslid_telefoonnr =
|
|
recperslid.prs_perslid_telefoonnr,
|
|
prs_perslid_mobiel = recperslid.prs_perslid_mobiel,
|
|
prs_perslid_email = recperslid.prs_perslid_email,
|
|
--prs_perslid_titel = recperslid.prs_perslid_titel,
|
|
prs_perslid_titel = DECODE(UPPER(recperslid.prs_perslid_titel),'M','De heer','V','Mevrouw',recperslid.prs_perslid_titel),
|
|
prs_perslid_geslacht = DECODE(UPPER(recperslid.prs_perslid_titel),'M',1,'V',0,NULL),
|
|
prs_perslid_oslogin = recperslid.prs_perslid_oslogin,
|
|
fac_profiel_key =
|
|
COALESCE (fac_profiel_key, v_profiel_key)
|
|
WHERE prs_perslid_key = v_perslid_key;
|
|
|
|
COMMIT;
|
|
v_count_update := v_count_update + 1;
|
|
END IF;
|
|
EXCEPTION
|
|
WHEN OTHERS
|
|
THEN
|
|
v_count_error := v_count_error + 1;
|
|
oracle_err_num := SQLCODE;
|
|
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
|
|
v_errormsg :=
|
|
' (ORACLE error number = <'
|
|
|| oracle_err_num
|
|
|| '> ORACLE error message = <'
|
|
|| oracle_err_mes
|
|
|| '>)';
|
|
fac.imp_writelog (p_import_key,
|
|
'E',
|
|
v_aanduiding || v_errormsg,
|
|
v_errorhint
|
|
);
|
|
COMMIT;
|
|
END;
|
|
END LOOP;
|
|
|
|
fac.imp_writelog
|
|
(p_import_key,
|
|
'S',
|
|
'Persoon: verwerkte regels zonder foutmelding: '
|
|
|| TO_CHAR (v_count_tot - v_count_error),
|
|
''
|
|
);
|
|
fac.imp_writelog
|
|
(p_import_key,
|
|
'S',
|
|
'Persoon: verwerkte regels met foutmelding: <b>'
|
|
|| TO_CHAR (v_count_error),
|
|
''
|
|
);
|
|
|
|
CLOSE cperslid;
|
|
END IF;
|
|
|
|
OPEN cwp;
|
|
|
|
v_count_update := 0;
|
|
v_count_tot := 0;
|
|
v_count_error := 0;
|
|
|
|
IF cwp%ISOPEN
|
|
THEN
|
|
COMMIT;
|
|
|
|
LOOP
|
|
BEGIN
|
|
v_aanduiding := '';
|
|
v_errormsg := '';
|
|
v_errorhint := '';
|
|
|
|
FETCH cwp
|
|
INTO recwp;
|
|
|
|
EXIT WHEN cwp%NOTFOUND; -- Geen werkplekken meer?
|
|
v_count_tot := v_count_tot + 1;
|
|
v_aanduiding :=
|
|
recwp.alg_locatie_code
|
|
|| '|'
|
|
|| recwp.alg_gebouw_code
|
|
|| '|'
|
|
|| recwp.alg_verdieping_volgnr
|
|
|| '|'
|
|
|| recwp.alg_ruimte_nr
|
|
|| '|'
|
|
|| recwp.prs_perslid_nr
|
|
|| ' - ';
|
|
v_errormsg := '';
|
|
v_errorhint :=
|
|
'Fout bij bepalen persoon [' || recwp.prs_perslid_nr || ']';
|
|
|
|
SELECT prs_perslid_key
|
|
INTO v_perslid_key
|
|
FROM prs_perslid
|
|
WHERE prs_perslid_verwijder IS NULL
|
|
AND prs_perslid_nr = recwp.prs_perslid_nr
|
|
AND prs_perslid_nr IS NOT NULL;
|
|
|
|
v_errorhint := 'Fout bij bepalen locatie';
|
|
|
|
SELECT alg_locatie_key
|
|
INTO v_locatie_key
|
|
FROM alg_v_aanweziglocatie
|
|
WHERE UPPER (alg_locatie_code) =
|
|
UPPER (recwp.alg_locatie_code)
|
|
AND alg_locatie_verwijder IS NULL;
|
|
|
|
v_errorhint :=
|
|
'Fout bij bepalen gebouw [' || recwp.alg_gebouw_code || ']';
|
|
|
|
SELECT alg_gebouw_key
|
|
INTO v_gebouw_key
|
|
FROM alg_v_aanweziggebouw
|
|
WHERE UPPER (alg_gebouw_code) = UPPER (recwp.alg_gebouw_code)
|
|
AND alg_locatie_key = v_locatie_key;
|
|
|
|
v_errorhint := 'Fout bij bepalen verdieping';
|
|
|
|
SELECT alg_verdieping_key
|
|
INTO v_verdieping_key
|
|
FROM alg_v_aanwezigverdieping
|
|
WHERE alg_gebouw_key = v_gebouw_key
|
|
AND alg_verdieping_volgnr = recwp.alg_verdieping_volgnr
|
|
AND alg_verdieping_verwijder IS NULL;
|
|
|
|
v_errorhint :=
|
|
'Fout bij bepalen ruimte ['
|
|
|| TO_CHAR (recwp.alg_ruimte_nr)
|
|
|| ']';
|
|
|
|
SELECT alg_ruimte_key
|
|
INTO v_ruimte_key
|
|
FROM alg_v_aanwezigruimte
|
|
WHERE alg_verdieping_key = v_verdieping_key
|
|
AND UPPER (alg_ruimte_nr) = UPPER (recwp.alg_ruimte_nr);
|
|
|
|
v_errorhint := 'Fout bij verhuizen naar nieuwe werkplek';
|
|
PRS.movetoruimte (v_perslid_key, v_ruimte_key, 'G');
|
|
EXCEPTION
|
|
WHEN OTHERS
|
|
THEN
|
|
v_count_error := v_count_error + 1;
|
|
oracle_err_num := SQLCODE;
|
|
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
|
|
v_errormsg :=
|
|
' (ORACLE error number = <'
|
|
|| oracle_err_num
|
|
|| '> ORACLE error message = <'
|
|
|| oracle_err_mes
|
|
|| '>)';
|
|
fac.imp_writelog (p_import_key,
|
|
'E',
|
|
v_aanduiding || v_errormsg,
|
|
v_errorhint
|
|
);
|
|
COMMIT;
|
|
END;
|
|
END LOOP; -- Volgende werkplek ...
|
|
|
|
fac.imp_writelog
|
|
(p_import_key,
|
|
'S',
|
|
'Werkplek: verwerkte regels zonder foutmelding: '
|
|
|| TO_CHAR (v_count_tot - v_count_error),
|
|
''
|
|
);
|
|
fac.imp_writelog
|
|
(p_import_key,
|
|
'S',
|
|
'Werkplek: verwerkte regels met foutmelding: <b>'
|
|
|| TO_CHAR (v_count_error),
|
|
''
|
|
);
|
|
END IF;
|
|
|
|
CLOSE cwp;
|
|
|
|
OPEN cpersliddel;
|
|
|
|
v_count_update := 0;
|
|
v_count_tot := 0;
|
|
v_count_error := 0;
|
|
|
|
IF cpersliddel%ISOPEN
|
|
THEN
|
|
LOOP
|
|
BEGIN
|
|
v_aanduiding := '';
|
|
v_errormsg := '';
|
|
v_errorhint := '';
|
|
|
|
FETCH cpersliddel
|
|
INTO recpersliddel;
|
|
|
|
EXIT WHEN cpersliddel%NOTFOUND;
|
|
v_count_tot := v_count_tot + 1;
|
|
v_aanduiding :=
|
|
recpersliddel.prs_perslid_nr
|
|
|| '|'
|
|
|| recpersliddel.prs_perslid_naam
|
|
|| '|'
|
|
|| recpersliddel.prs_perslid_voornaam
|
|
|| ' - ';
|
|
v_errorhint := 'Fout bij bepalen verplichtingen';
|
|
|
|
-- Heeft persoon actuele/toekomstige verplichtingen?
|
|
SELECT COUNT (*)
|
|
INTO v_count
|
|
FROM prs_v_verplichting_keys r
|
|
WHERE r.prs_perslid_key = recpersliddel.prs_perslid_key;
|
|
|
|
IF v_count = 0
|
|
THEN
|
|
v_errorhint := 'Fout bij verwijderen persoon';
|
|
|
|
UPDATE prs_perslid
|
|
SET prs_perslid_verwijder = SYSDATE
|
|
WHERE prs_perslid_key = recpersliddel.prs_perslid_key;
|
|
|
|
fac.imp_writelog (p_import_key,
|
|
'I',
|
|
'Persoon met nummer ['
|
|
|| recpersliddel.prs_perslid_nr
|
|
|| '] en naam ['
|
|
|| recpersliddel.prs_perslid_naam
|
|
|| ', '
|
|
|| recpersliddel.prs_perslid_voornaam
|
|
|| '] is verwijderd',
|
|
'Persoon is verwijderd'
|
|
);
|
|
COMMIT;
|
|
ELSE
|
|
-- Staat persoon INACTIEF?
|
|
SELECT COUNT (*)
|
|
INTO v_count
|
|
FROM prs_perslid p
|
|
WHERE p.prs_perslid_naam LIKE c_persoon_inactief || '%'
|
|
AND p.prs_perslid_key = recpersliddel.prs_perslid_key;
|
|
|
|
IF v_count = 0
|
|
THEN
|
|
v_errorhint := 'Fout bij INACTIEF maken persoon';
|
|
|
|
-- Persoon INACTIEF maken (update naam + reset oslogin)
|
|
UPDATE prs_perslid
|
|
SET prs_perslid_naam =
|
|
SUBSTR (c_persoon_inactief || prs_perslid_naam,
|
|
1,
|
|
30
|
|
),
|
|
prs_perslid_oslogin = NULL
|
|
WHERE prs_perslid_key = recpersliddel.prs_perslid_key;
|
|
|
|
fac.imp_writelog (p_import_key,
|
|
'I',
|
|
'Persoon met nummer ['
|
|
|| recpersliddel.prs_perslid_nr
|
|
|| '] en naam ['
|
|
|| recpersliddel.prs_perslid_naam
|
|
|| ', '
|
|
|| recpersliddel.prs_perslid_voornaam
|
|
|| '] is INACTIEF gemaakt',
|
|
'Persoon is INACTIEF gemaakt'
|
|
);
|
|
ELSE
|
|
v_errorhint := 'Fout bij INACTIEF houden persoon';
|
|
|
|
-- Persoon INACTIEF houden (reset oslogin; indien handmatig INACTIEF gemaakt)
|
|
UPDATE prs_perslid
|
|
SET prs_perslid_oslogin = NULL
|
|
WHERE prs_perslid_naam LIKE c_persoon_inactief || '%'
|
|
AND prs_perslid_oslogin IS NOT NULL;
|
|
|
|
fac.imp_writelog (p_import_key,
|
|
'I',
|
|
'Persoon met nummer ['
|
|
|| recpersliddel.prs_perslid_nr
|
|
|| '] en naam ['
|
|
|| recpersliddel.prs_perslid_naam
|
|
|| ', '
|
|
|| recpersliddel.prs_perslid_voornaam
|
|
|| '] is INACTIEF',
|
|
'Persoon is INACTIEF'
|
|
);
|
|
END IF;
|
|
|
|
COMMIT;
|
|
END IF;
|
|
EXCEPTION
|
|
WHEN OTHERS
|
|
THEN
|
|
v_count_error := v_count_error + 1;
|
|
oracle_err_num := SQLCODE;
|
|
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
|
|
v_errormsg :=
|
|
' (ORACLE error number = <'
|
|
|| oracle_err_num
|
|
|| '> ORACLE error message = <'
|
|
|| oracle_err_mes
|
|
|| '>)';
|
|
fac.imp_writelog (p_import_key,
|
|
'E',
|
|
v_aanduiding || v_errormsg,
|
|
v_errorhint
|
|
);
|
|
COMMIT;
|
|
END;
|
|
END LOOP;
|
|
|
|
fac.imp_writelog
|
|
(p_import_key,
|
|
'S',
|
|
'Persoon verwijderen: verwerkte regels zonder foutmelding: '
|
|
|| TO_CHAR (v_count_tot - v_count_error),
|
|
''
|
|
);
|
|
fac.imp_writelog
|
|
(p_import_key,
|
|
'S',
|
|
'Persoon verwijderen: verwerkte regels met foutmelding: <b>'
|
|
|| TO_CHAR (v_count_error),
|
|
''
|
|
);
|
|
COMMIT;
|
|
|
|
CLOSE cpersliddel;
|
|
END IF;
|
|
|
|
FOR recnogroup IN cnogroup
|
|
LOOP
|
|
BEGIN
|
|
v_aanduiding :=
|
|
recnogroup.prs_perslid_nr
|
|
|| '|'
|
|
|| recnogroup.prs_perslid_naam
|
|
|| '|'
|
|
|| recnogroup.prs_perslid_voornaam
|
|
|| ' - ';
|
|
v_errorhint := 'Fout bij bepalen groep [' || c_groep_upper || ']';
|
|
|
|
SELECT fac_groep_key
|
|
INTO v_groep_key
|
|
FROM fac_groep
|
|
WHERE fac_groep_upper = c_groep_upper;
|
|
|
|
v_errorhint :=
|
|
'Fout bij koppelen persoon aan groep [' || c_groep_upper || ']';
|
|
|
|
INSERT INTO fac_gebruikersgroep
|
|
(fac_groep_key, prs_perslid_key
|
|
)
|
|
VALUES (v_groep_key, recnogroup.prs_perslid_key
|
|
);
|
|
|
|
COMMIT;
|
|
EXCEPTION
|
|
WHEN OTHERS
|
|
THEN
|
|
oracle_err_num := SQLCODE;
|
|
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
|
|
v_errormsg :=
|
|
' (ORACLE error number = <'
|
|
|| oracle_err_num
|
|
|| '> ORACLE error message = <'
|
|
|| oracle_err_mes
|
|
|| '>)';
|
|
fac.imp_writelog (p_import_key,
|
|
'E',
|
|
v_aanduiding || v_errormsg,
|
|
v_errorhint
|
|
);
|
|
COMMIT;
|
|
END;
|
|
END LOOP;
|
|
END IF; -- Controle importbestand
|
|
END wehk_update_prs;
|
|
/
|
|
|
|
/* Formatted on 2008/07/31 14:25 (Formatter Plus v4.8.7) */
|
|
CREATE OR REPLACE VIEW wehk_v_rap_ruimteoverzicht (fclt_f_locatie,
|
|
fclt_f_gebouw,
|
|
fclt_f_verdieping,
|
|
ruimtenr,
|
|
omschrijving,
|
|
fclt_f_ruimtefunctie,
|
|
fclt_f_vloersoort,
|
|
teken_opp,
|
|
fclt_f_schoonmaak,
|
|
fclt_f_programma
|
|
)
|
|
AS
|
|
(SELECT a.alg_locatie_code, a.alg_gebouw_code, a.alg_verdieping_code,
|
|
a.alg_ruimte_nr, a.alg_ruimte_omschrijving, a.ruimtefunctie,
|
|
b.vloersoort, a.opp, c.schoonmaak, d.programma
|
|
FROM (SELECT r.alg_ruimte_key, r.alg_ruimte_nr,
|
|
r.alg_ruimte_omschrijving, v.alg_verdieping_code,
|
|
g.alg_gebouw_code, l.alg_locatie_code,
|
|
sr.alg_srtruimte_upper ruimtefunctie,
|
|
r.alg_ruimte_bruto_vloeropp opp
|
|
FROM alg_v_aanwezigruimte r,
|
|
alg_verdieping v,
|
|
alg_gebouw g,
|
|
alg_locatie l,
|
|
alg_srtruimte sr
|
|
WHERE r.alg_verdieping_key = v.alg_verdieping_key
|
|
AND v.alg_gebouw_key = g.alg_gebouw_key
|
|
AND g.alg_locatie_key = l.alg_locatie_key
|
|
AND r.alg_srtruimte_key = sr.alg_srtruimte_key(+)) a
|
|
LEFT JOIN
|
|
(SELECT ok.alg_onrgoed_key, ud.fac_usrdata_omschr vloersoort
|
|
FROM alg_onrgoedkenmerk ok, fac_usrdata ud
|
|
WHERE ok.alg_kenmerk_key = 1020 -- vloersoort
|
|
AND ok.alg_onrgoed_niveau = 'R'
|
|
AND ok.alg_onrgoedkenmerk_waarde = ud.fac_usrdata_key) b
|
|
ON a.alg_ruimte_key = b.alg_onrgoed_key
|
|
LEFT JOIN
|
|
(SELECT ok.alg_onrgoed_key, ud.fac_usrdata_omschr schoonmaak
|
|
FROM alg_onrgoedkenmerk ok, fac_usrdata ud
|
|
WHERE ok.alg_kenmerk_key = 1041 -- schoonmaak
|
|
AND ok.alg_onrgoed_niveau = 'R'
|
|
AND ok.alg_onrgoedkenmerk_waarde = ud.fac_usrdata_key) c
|
|
ON a.alg_ruimte_key = c.alg_onrgoed_key
|
|
LEFT JOIN
|
|
(SELECT ok.alg_onrgoed_key, ud.fac_usrdata_omschr programma
|
|
FROM alg_onrgoedkenmerk ok, fac_usrdata ud
|
|
WHERE ok.alg_kenmerk_key = 1060 -- schoonmaakprogramma
|
|
AND ok.alg_onrgoed_niveau = 'R'
|
|
AND ok.alg_onrgoedkenmerk_waarde = ud.fac_usrdata_key) d
|
|
ON a.alg_ruimte_key = d.alg_onrgoed_key
|
|
)
|
|
/
|
|
|
|
CREATE OR REPLACE VIEW wehk_v_thema_sch_prog (alg_ruimte_key, waarde)
|
|
AS
|
|
SELECT a.alg_ruimte_key, b.programma
|
|
FROM (SELECT r.alg_ruimte_key
|
|
FROM alg_v_aanwezigruimte r) a
|
|
LEFT JOIN
|
|
(SELECT ok.alg_onrgoed_key, ud.fac_usrdata_omschr programma
|
|
FROM alg_onrgoedkenmerk ok, fac_usrdata ud
|
|
WHERE ok.alg_kenmerk_key = 1060 -- schoonmaakprogramma
|
|
AND ok.alg_onrgoed_niveau = 'R'
|
|
AND ok.alg_onrgoedkenmerk_verwijder IS NULL
|
|
AND ok.alg_onrgoedkenmerk_waarde = ud.fac_usrdata_key) b
|
|
ON a.alg_ruimte_key = b.alg_onrgoed_key
|
|
/
|
|
|
|
/* Formatted on 19-8-2009 12:30:30 (QP5 v5.115.810.9015) */
|
|
CREATE OR REPLACE VIEW wehk_v_ophaalafleverbedr
|
|
(
|
|
prs_bedrijf_key,
|
|
bedrijfsgegevens
|
|
)
|
|
AS
|
|
SELECT b.prs_bedrijf_key,
|
|
b.prs_bedrijf_naam
|
|
|| ','
|
|
|| COALESCE (cp.prs_contactpersoon_naam, '-')
|
|
|| ','
|
|
|| COALESCE (cp.prs_contactpersoon_telefoon_1,
|
|
cp.prs_contactpersoon_telefoon_2,
|
|
'-')
|
|
|| ','
|
|
|| COALESCE (b.prs_bedrijf_bezoek_adres, '-')
|
|
|| ','
|
|
|| COALESCE (b.prs_bedrijf_bezoek_postcode, '-')
|
|
|| ' '
|
|
|| COALESCE (b.prs_bedrijf_bezoek_plaats, '-')
|
|
FROM prs_v_aanwezigbedrijf b,
|
|
prs_v_aanwezigkenmerklink kl,
|
|
prs_contactpersoon cp
|
|
WHERE b.prs_bedrijf_uitvoerende = 1
|
|
AND b.prs_bedrijf_key = kl.prs_link_key
|
|
AND kl.prs_kenmerk_key = 1040 -- Vervoersadres
|
|
AND kl.prs_kenmerklink_waarde = 41 -- Ja
|
|
AND b.prs_bedrijf_key = cp.prs_bedrijf_key(+)
|
|
/
|
|
|
|
/* Formatted on 27-8-2009 13:30:00 (QP5 v5.115.810.9015) */
|
|
CREATE OR REPLACE VIEW wehk_v_perslid_info
|
|
(
|
|
prs_perslid_key,
|
|
prs_perslid_info
|
|
)
|
|
AS
|
|
SELECT prs_perslid_key,
|
|
prs_perslid_naam
|
|
|| DECODE (p.prs_perslid_voorletters,
|
|
NULL, '',
|
|
', ' || p.prs_perslid_voorletters)
|
|
|| DECODE (p.prs_perslid_tussenvoegsel,
|
|
NULL, '',
|
|
' ' || p.prs_perslid_tussenvoegsel)
|
|
|| DECODE (p.prs_perslid_voornaam,
|
|
NULL, '',
|
|
' (' || p.prs_perslid_voornaam || ')')
|
|
|| ' / '
|
|
|| a.prs_afdeling_naam
|
|
|| ' / '
|
|
|| sp.prs_srtperslid_omschrijving
|
|
prs_perslid_info
|
|
FROM prs_v_aanwezigperslid p, prs_afdeling a, prs_srtperslid sp
|
|
WHERE p.prs_afdeling_key = a.prs_afdeling_key(+)
|
|
AND p.prs_srtperslid_key = sp.prs_srtperslid_key(+)
|
|
/
|
|
|
|
/* Formatted on 1-12-2009 16:44:12 (QP5 v5.115.810.9015) */
|
|
CREATE OR REPLACE VIEW wehk_v_rap_contractdetails
|
|
(
|
|
hide_f_einddatum,
|
|
hide_f_opzegdatum,
|
|
cnt_nr,
|
|
fclt_f_cnt_soort,
|
|
fclt_f_beschrijving,
|
|
mantel_nr,
|
|
fclt_f_ingangsdatum,
|
|
fclt_f_rappeldatum,
|
|
fclt_f_opzegdatum,
|
|
fclt_f_einddatum,
|
|
uitvoerder,
|
|
fclt_f_eigenaar,
|
|
fclt_f_beheerder,
|
|
cnt_bedrag,
|
|
fclt_f_type_ovkomst,
|
|
fclt_f_uurtarief,
|
|
fclt_f_bet_cond,
|
|
fclt_f_eindemnd,
|
|
fclt_f_bet_term,
|
|
fclt_f_lev_nr,
|
|
fclt_f_korting,
|
|
fclt_f_cnt_vot,
|
|
fclt_f_directeur,
|
|
fclt_f_ink_voorw
|
|
)
|
|
AS
|
|
SELECT TO_CHAR (basis.einddatum, 'yyyymmdd'),
|
|
TO_CHAR (basis.opzegdatum, 'yyyymmdd'),
|
|
basis.cnt_nr,
|
|
basis.cnt_soort,
|
|
basis.beschrijving,
|
|
basis.mantel_nr,
|
|
TO_CHAR (basis.ingangsdatum, 'dd-mm-yyyy'),
|
|
TO_CHAR (basis.rappeldatum, 'dd-mm-yyyy'),
|
|
TO_CHAR (basis.opzegdatum, 'dd-mm-yyyy'),
|
|
TO_CHAR (basis.einddatum, 'dd-mm-yyyy'),
|
|
basis.prs_bedrijf_naam,
|
|
basis.cnt_eigenaar,
|
|
basis.cnt_beheerder,
|
|
REPLACE (
|
|
TO_CHAR (fac.safe_to_number (basis.bedrag), '999999990D99'),
|
|
'.',
|
|
','
|
|
),
|
|
basis.type_ovkomst,
|
|
REPLACE (
|
|
TO_CHAR (fac.safe_to_number (basis.cnt_contract_uurloon), '990D99'),
|
|
'.',
|
|
','
|
|
),
|
|
basis.bet_cond,
|
|
basis.eindemnd,
|
|
basis.bet_term,
|
|
basis.lev_nr,
|
|
basis.korting,
|
|
basis.cnt_vot,
|
|
basis.directeur,
|
|
basis.ink_voorw
|
|
FROM (SELECT c.cnt_contract_nummer_intern cnt_nr,
|
|
td.ins_discipline_omschrijving cnt_soort,
|
|
c.cnt_contract_uurloon,
|
|
c.cnt_contract_omschrijving beschrijving,
|
|
mc.cnt_contract_nummer_intern mantel_nr,
|
|
c.cnt_contract_looptijd_van ingangsdatum,
|
|
cnt.cnt_getrappeldatum (c.cnt_contract_key) rappeldatum,
|
|
cnt.cnt_getopzegdatum (c.cnt_contract_key) opzegdatum,
|
|
c.cnt_contract_looptijd_tot einddatum,
|
|
b.prs_bedrijf_naam,
|
|
a.prs_afdeling_upper
|
|
|| '-'
|
|
|| a.prs_afdeling_omschrijving
|
|
cnt_eigenaar,
|
|
p.prs_perslid_naam_full cnt_beheerder,
|
|
c.cnt_contract_kosten bedrag,
|
|
(SELECT ud.fac_usrdata_omschr
|
|
FROM cnt_kenmerkcontract kc,
|
|
cnt_kenmerk k,
|
|
fac_usrdata ud
|
|
WHERE kc.cnt_contract_key = c.cnt_contract_key
|
|
AND kc.cnt_kenmerk_key = k.cnt_kenmerk_key
|
|
AND k.cnt_srtkenmerk_key = 241
|
|
AND fac.safe_to_number (
|
|
kc.cnt_kenmerkcontract_waarde
|
|
) = ud.fac_usrdata_key)
|
|
type_ovkomst,
|
|
(SELECT ud.fac_usrdata_omschr
|
|
FROM cnt_kenmerkcontract kc,
|
|
cnt_kenmerk k,
|
|
fac_usrdata ud
|
|
WHERE kc.cnt_contract_key = c.cnt_contract_key
|
|
AND kc.cnt_kenmerk_key = k.cnt_kenmerk_key
|
|
AND k.cnt_srtkenmerk_key = 181
|
|
AND fac.safe_to_number (
|
|
kc.cnt_kenmerkcontract_waarde
|
|
) = ud.fac_usrdata_key)
|
|
bet_cond,
|
|
(SELECT ud.fac_usrdata_omschr
|
|
FROM cnt_kenmerkcontract kc,
|
|
cnt_kenmerk k,
|
|
fac_usrdata ud
|
|
WHERE kc.cnt_contract_key = c.cnt_contract_key
|
|
AND kc.cnt_kenmerk_key = k.cnt_kenmerk_key
|
|
AND k.cnt_srtkenmerk_key = 121
|
|
AND fac.safe_to_number (
|
|
kc.cnt_kenmerkcontract_waarde
|
|
) = ud.fac_usrdata_key)
|
|
eindemnd,
|
|
(SELECT ud.fac_usrdata_omschr
|
|
FROM cnt_kenmerkcontract kc,
|
|
cnt_kenmerk k,
|
|
fac_usrdata ud
|
|
WHERE kc.cnt_contract_key = c.cnt_contract_key
|
|
AND kc.cnt_kenmerk_key = k.cnt_kenmerk_key
|
|
AND k.cnt_srtkenmerk_key = 61
|
|
AND fac.safe_to_number (
|
|
kc.cnt_kenmerkcontract_waarde
|
|
) = ud.fac_usrdata_key)
|
|
bet_term,
|
|
(SELECT kc.cnt_kenmerkcontract_waarde
|
|
FROM cnt_kenmerkcontract kc, cnt_kenmerk k
|
|
WHERE kc.cnt_contract_key = c.cnt_contract_key
|
|
AND kc.cnt_kenmerk_key = k.cnt_kenmerk_key
|
|
AND k.cnt_srtkenmerk_key = 203)
|
|
lev_nr,
|
|
(SELECT ud.fac_usrdata_omschr
|
|
FROM cnt_kenmerkcontract kc,
|
|
cnt_kenmerk k,
|
|
fac_usrdata ud
|
|
WHERE kc.cnt_contract_key = c.cnt_contract_key
|
|
AND kc.cnt_kenmerk_key = k.cnt_kenmerk_key
|
|
AND k.cnt_srtkenmerk_key = 161
|
|
AND fac.safe_to_number (
|
|
kc.cnt_kenmerkcontract_waarde
|
|
) = ud.fac_usrdata_key)
|
|
korting,
|
|
(SELECT ud.fac_usrdata_omschr
|
|
FROM cnt_kenmerkcontract kc,
|
|
cnt_kenmerk k,
|
|
fac_usrdata ud
|
|
WHERE kc.cnt_contract_key = c.cnt_contract_key
|
|
AND kc.cnt_kenmerk_key = k.cnt_kenmerk_key
|
|
AND k.cnt_srtkenmerk_key = 202
|
|
AND fac.safe_to_number (
|
|
kc.cnt_kenmerkcontract_waarde
|
|
) = ud.fac_usrdata_key)
|
|
cnt_vot,
|
|
(SELECT ud.fac_usrdata_omschr
|
|
FROM cnt_kenmerkcontract kc,
|
|
cnt_kenmerk k,
|
|
fac_usrdata ud
|
|
WHERE kc.cnt_contract_key = c.cnt_contract_key
|
|
AND kc.cnt_kenmerk_key = k.cnt_kenmerk_key
|
|
AND k.cnt_srtkenmerk_key = 201
|
|
AND fac.safe_to_number (
|
|
kc.cnt_kenmerkcontract_waarde
|
|
) = ud.fac_usrdata_key)
|
|
directeur,
|
|
(SELECT ud.fac_usrdata_omschr
|
|
FROM cnt_kenmerkcontract kc,
|
|
cnt_kenmerk k,
|
|
fac_usrdata ud
|
|
WHERE kc.cnt_contract_key = c.cnt_contract_key
|
|
AND kc.cnt_kenmerk_key = k.cnt_kenmerk_key
|
|
AND k.cnt_srtkenmerk_key = 221
|
|
AND fac.safe_to_number (
|
|
kc.cnt_kenmerkcontract_waarde
|
|
) = ud.fac_usrdata_key)
|
|
ink_voorw
|
|
FROM cnt_v_aanwezigcontract c,
|
|
cnt_contract mc,
|
|
ins_tab_discipline td,
|
|
prs_afdeling a,
|
|
prs_v_perslid_fullnames p,
|
|
prs_bedrijf b
|
|
WHERE c.ins_discipline_key = td.ins_discipline_key
|
|
AND c.cnt_contract_mantel_key = mc.cnt_contract_key(+)
|
|
AND c.prs_afdeling_key_eig = a.prs_afdeling_key
|
|
AND c.prs_perslid_key_beh = p.prs_perslid_key
|
|
AND c.cnt_prs_bedrijf_key = b.prs_bedrijf_key) basis;
|
|
|
|
/* Formatted on 12-11-2009 13:52:28 (QP5 v5.115.810.9015) */
|
|
-- PACKAGE voor WEHK specifieke rapportages!
|
|
CREATE OR REPLACE PACKAGE WEHK_RAP
|
|
AS
|
|
TYPE t_cursor IS REF CURSOR;
|
|
|
|
PROCEDURE wehk_rap_cntopeind (user_key IN NUMBER,
|
|
p_datum_van IN VARCHAR2,
|
|
p_datum_tot IN VARCHAR2,
|
|
p_cursor OUT t_cursor);
|
|
|
|
PROCEDURE wehk_rap_cntopopzeg (user_key IN NUMBER,
|
|
p_datum_van IN VARCHAR2,
|
|
p_datum_tot IN VARCHAR2,
|
|
p_cursor OUT t_cursor);
|
|
END;
|
|
/
|
|
|
|
/* Formatted on 12-11-2009 13:58:28 (QP5 v5.115.810.9015) */
|
|
CREATE OR REPLACE PACKAGE BODY wehk_rap
|
|
AS
|
|
--
|
|
-- Algemene procedures en functies.
|
|
--
|
|
-- Contracten op einddatum in een bepaalde periode.
|
|
PROCEDURE wehk_rap_cntopeind (user_key IN NUMBER,
|
|
p_datum_van IN VARCHAR2, -- Let wel: formaat '16-01-2006'
|
|
p_datum_tot IN VARCHAR2,
|
|
p_cursor OUT t_cursor)
|
|
AS
|
|
v_datum_van DATE;
|
|
v_datum_tot DATE;
|
|
BEGIN
|
|
v_datum_van := fac.safe_to_date (p_datum_van, 'dd-mm-yyyy');
|
|
v_datum_tot := fac.safe_to_date (p_datum_tot, 'dd-mm-yyyy');
|
|
|
|
OPEN p_cursor FOR
|
|
SELECT hide_f_einddatum,
|
|
cnt_nr,
|
|
fclt_f_cnt_soort,
|
|
fclt_f_beschrijving,
|
|
mantel_nr,
|
|
fclt_f_ingangsdatum,
|
|
fclt_f_rappeldatum,
|
|
fclt_f_opzegdatum,
|
|
fclt_f_einddatum,
|
|
uitvoerder,
|
|
fclt_f_eigenaar,
|
|
fclt_f_beheerder,
|
|
cnt_bedrag,
|
|
fclt_f_type_ovkomst,
|
|
fclt_f_bet_cond,
|
|
fclt_f_eindemnd,
|
|
fclt_f_bet_term,
|
|
fclt_f_lev_nr,
|
|
fclt_f_korting,
|
|
fclt_f_cnt_vot,
|
|
fclt_f_directeur,
|
|
fclt_f_ink_voorw
|
|
FROM wehk_v_rap_contractdetails
|
|
WHERE TO_DATE (fclt_f_einddatum, 'dd-mm-yyyy') BETWEEN v_datum_van
|
|
AND v_datum_tot
|
|
ORDER BY hide_f_einddatum;
|
|
END;
|
|
|
|
-- Contracten op opzegdatum in een bepaalde periode.
|
|
PROCEDURE wehk_rap_cntopopzeg (user_key IN NUMBER,
|
|
p_datum_van IN VARCHAR2, -- Let wel: formaat '16-01-2006'
|
|
p_datum_tot IN VARCHAR2,
|
|
p_cursor OUT t_cursor)
|
|
AS
|
|
v_datum_van DATE;
|
|
v_datum_tot DATE;
|
|
BEGIN
|
|
v_datum_van := fac.safe_to_date (p_datum_van, 'dd-mm-yyyy');
|
|
v_datum_tot := fac.safe_to_date (p_datum_tot, 'dd-mm-yyyy');
|
|
|
|
OPEN p_cursor FOR
|
|
SELECT hide_f_opzegdatum,
|
|
cnt_nr,
|
|
fclt_f_cnt_soort,
|
|
fclt_f_beschrijving,
|
|
mantel_nr,
|
|
fclt_f_ingangsdatum,
|
|
fclt_f_rappeldatum,
|
|
fclt_f_opzegdatum,
|
|
fclt_f_einddatum,
|
|
uitvoerder,
|
|
fclt_f_eigenaar,
|
|
fclt_f_beheerder,
|
|
cnt_bedrag,
|
|
fclt_f_type_ovkomst,
|
|
fclt_f_bet_cond,
|
|
fclt_f_eindemnd,
|
|
fclt_f_bet_term,
|
|
fclt_f_lev_nr,
|
|
fclt_f_korting,
|
|
fclt_f_cnt_vot,
|
|
fclt_f_directeur,
|
|
fclt_f_ink_voorw
|
|
FROM wehk_v_rap_contractdetails
|
|
WHERE TO_DATE (fclt_f_opzegdatum, 'dd-mm-yyyy') BETWEEN v_datum_van
|
|
AND v_datum_tot
|
|
ORDER BY hide_f_opzegdatum;
|
|
END;
|
|
END;
|
|
/
|
|
|
|
/* Formatted on 17-12-2009 16:10:32 (QP5 v5.115.810.9015) */
|
|
CREATE OR REPLACE VIEW wehk_v_rap_mld_schade
|
|
(
|
|
hide_f_melddatum,
|
|
fclt_f_maand,
|
|
fclt_f_locatie,
|
|
fclt_f_melding_nr,
|
|
fclt_f_melding,
|
|
fclt_f_status,
|
|
fclt_f_ev_nr,
|
|
fclt_f_rit_nr,
|
|
fclt_f_rit_datum,
|
|
vvp_waarde,
|
|
fclt_f_art_oms,
|
|
fclt_f_art_nr,
|
|
fclt_f_eigen_risico,
|
|
fclt_f_klant_nr,
|
|
opkoop_waarde,
|
|
fclt_f_schade_intern,
|
|
fclt_f_soort_schade,
|
|
fclt_f_vervoerder,
|
|
finance_waarde,
|
|
wehkamp_waarde
|
|
)
|
|
AS
|
|
SELECT m.mld_melding_datum,
|
|
TO_CHAR (m.mld_melding_datum, 'yyyy-mm'),
|
|
l.alg_locatie_code,
|
|
TO_CHAR (m.mld_melding_key),
|
|
sm.mld_stdmelding_omschrijving,
|
|
s.mld_statuses_omschrijving,
|
|
(SELECT km.mld_kenmerkmelding_waarde
|
|
FROM mld_kenmerkmelding km, mld_kenmerk k
|
|
WHERE km.mld_melding_key = m.mld_melding_key
|
|
AND km.mld_kenmerk_key = k.mld_kenmerk_key
|
|
AND k.mld_srtkenmerk_key = 543)
|
|
ev_nr,
|
|
(SELECT km.mld_kenmerkmelding_waarde
|
|
FROM mld_kenmerkmelding km, mld_kenmerk k
|
|
WHERE km.mld_melding_key = m.mld_melding_key
|
|
AND km.mld_kenmerk_key = k.mld_kenmerk_key
|
|
AND k.mld_srtkenmerk_key = 541)
|
|
rit_nr,
|
|
(SELECT km.mld_kenmerkmelding_waarde
|
|
FROM mld_kenmerkmelding km, mld_kenmerk k
|
|
WHERE km.mld_melding_key = m.mld_melding_key
|
|
AND km.mld_kenmerk_key = k.mld_kenmerk_key
|
|
AND k.mld_srtkenmerk_key = 581)
|
|
rit_datum,
|
|
(SELECT fac.safe_to_number (km.mld_kenmerkmelding_waarde)
|
|
FROM mld_kenmerkmelding km, mld_kenmerk k
|
|
WHERE km.mld_melding_key = m.mld_melding_key
|
|
AND km.mld_kenmerk_key = k.mld_kenmerk_key
|
|
AND k.mld_srtkenmerk_key = 624)
|
|
vvp_waarde,
|
|
(SELECT km.mld_kenmerkmelding_waarde
|
|
FROM mld_kenmerkmelding km, mld_kenmerk k
|
|
WHERE km.mld_melding_key = m.mld_melding_key
|
|
AND km.mld_kenmerk_key = k.mld_kenmerk_key
|
|
AND k.mld_srtkenmerk_key = 562)
|
|
art_oms,
|
|
(SELECT km.mld_kenmerkmelding_waarde
|
|
FROM mld_kenmerkmelding km, mld_kenmerk k
|
|
WHERE km.mld_melding_key = m.mld_melding_key
|
|
AND km.mld_kenmerk_key = k.mld_kenmerk_key
|
|
AND k.mld_srtkenmerk_key = 561)
|
|
art_nr,
|
|
(SELECT ud.fac_usrdata_omschr
|
|
FROM mld_kenmerkmelding km, mld_kenmerk k, fac_usrdata ud
|
|
WHERE km.mld_melding_key = m.mld_melding_key
|
|
AND km.mld_kenmerk_key = k.mld_kenmerk_key
|
|
AND k.mld_srtkenmerk_key = 546
|
|
AND fac.safe_to_number (km.mld_kenmerkmelding_waarde) =
|
|
ud.fac_usrdata_key)
|
|
eigen_risico,
|
|
(SELECT km.mld_kenmerkmelding_waarde
|
|
FROM mld_kenmerkmelding km, mld_kenmerk k
|
|
WHERE km.mld_melding_key = m.mld_melding_key
|
|
AND km.mld_kenmerk_key = k.mld_kenmerk_key
|
|
AND k.mld_srtkenmerk_key = 544)
|
|
klant_nr,
|
|
COALESCE (
|
|
( SELECT SUM (fac.safe_to_number (ko.mld_kenmerkopdr_waarde))
|
|
FROM mld_kenmerkopdr ko, mld_opdr o, mld_kenmerk k
|
|
WHERE ko.mld_opdr_key = o.mld_opdr_key
|
|
AND o.mld_typeopdr_key = 681
|
|
AND o.mld_melding_key = m.mld_melding_key
|
|
AND ko.mld_kenmerk_key = k.mld_kenmerk_key
|
|
AND k.mld_srtkenmerk_key = 623
|
|
GROUP BY ko.mld_opdr_key),
|
|
(SELECT fac.safe_to_number (
|
|
REPLACE (km.mld_kenmerkmelding_waarde, ',', '.')
|
|
)
|
|
FROM mld_kenmerkmelding km, mld_kenmerk k
|
|
WHERE km.mld_melding_key = m.mld_melding_key
|
|
AND km.mld_kenmerk_key = k.mld_kenmerk_key
|
|
AND k.mld_srtkenmerk_key = 564)
|
|
)
|
|
opkoop_waarde,
|
|
COALESCE (
|
|
( SELECT MAX (ud.fac_usrdata_omschr)
|
|
FROM mld_kenmerkopdr ko,
|
|
mld_opdr o,
|
|
mld_kenmerk k,
|
|
fac_usrdata ud
|
|
WHERE ko.mld_opdr_key = o.mld_opdr_key
|
|
AND o.mld_melding_key = m.mld_melding_key
|
|
AND ko.mld_kenmerk_key = k.mld_kenmerk_key
|
|
AND k.mld_srtkenmerk_key = 565
|
|
AND fac.safe_to_number (ko.mld_kenmerkopdr_waarde) =
|
|
ud.fac_usrdata_key
|
|
GROUP BY ko.mld_opdr_key),
|
|
(SELECT ud.fac_usrdata_omschr
|
|
FROM mld_kenmerkmelding km, mld_kenmerk k, fac_usrdata ud
|
|
WHERE km.mld_melding_key = m.mld_melding_key
|
|
AND km.mld_kenmerk_key = k.mld_kenmerk_key
|
|
AND k.mld_srtkenmerk_key = 565
|
|
AND fac.safe_to_number (
|
|
km.mld_kenmerkmelding_waarde
|
|
) = ud.fac_usrdata_key)
|
|
)
|
|
schade_intern,
|
|
(SELECT km.mld_kenmerkmelding_waarde
|
|
FROM mld_kenmerkmelding km, mld_kenmerk k
|
|
WHERE km.mld_melding_key = m.mld_melding_key
|
|
AND km.mld_kenmerk_key = k.mld_kenmerk_key
|
|
AND k.mld_srtkenmerk_key = 425)
|
|
soort_schade,
|
|
(SELECT ud.fac_usrdata_omschr
|
|
FROM mld_kenmerkmelding km, mld_kenmerk k, fac_usrdata ud
|
|
WHERE km.mld_melding_key = m.mld_melding_key
|
|
AND km.mld_kenmerk_key = k.mld_kenmerk_key
|
|
AND k.mld_srtkenmerk_key = 566
|
|
AND fac.safe_to_number (km.mld_kenmerkmelding_waarde) =
|
|
ud.fac_usrdata_key)
|
|
vervoerder,
|
|
COALESCE (
|
|
( SELECT SUM (fac.safe_to_number (ko.mld_kenmerkopdr_waarde))
|
|
FROM mld_kenmerkopdr ko, mld_opdr o, mld_kenmerk k
|
|
WHERE ko.mld_opdr_key = o.mld_opdr_key
|
|
AND o.mld_typeopdr_key = 681
|
|
AND o.mld_melding_key = m.mld_melding_key
|
|
AND ko.mld_kenmerk_key = k.mld_kenmerk_key
|
|
AND k.mld_srtkenmerk_key = 622
|
|
GROUP BY ko.mld_opdr_key),
|
|
(SELECT fac.safe_to_number (
|
|
REPLACE (km.mld_kenmerkmelding_waarde, ',', '.')
|
|
)
|
|
FROM mld_kenmerkmelding km, mld_kenmerk k
|
|
WHERE km.mld_melding_key = m.mld_melding_key
|
|
AND km.mld_kenmerk_key = k.mld_kenmerk_key
|
|
AND k.mld_srtkenmerk_key = 563)
|
|
)
|
|
finance_waarde,
|
|
COALESCE (
|
|
( SELECT SUM (fac.safe_to_number (ko.mld_kenmerkopdr_waarde))
|
|
FROM mld_kenmerkopdr ko, mld_opdr o, mld_kenmerk k
|
|
WHERE ko.mld_opdr_key = o.mld_opdr_key
|
|
AND o.mld_typeopdr_key = 681
|
|
AND o.mld_melding_key = m.mld_melding_key
|
|
AND ko.mld_kenmerk_key = k.mld_kenmerk_key
|
|
AND k.mld_srtkenmerk_key = 641
|
|
GROUP BY ko.mld_opdr_key),
|
|
(SELECT fac.safe_to_number (
|
|
REPLACE (km.mld_kenmerkmelding_waarde, ',', '.')
|
|
)
|
|
FROM mld_kenmerkmelding km, mld_kenmerk k
|
|
WHERE km.mld_melding_key = m.mld_melding_key
|
|
AND km.mld_kenmerk_key = k.mld_kenmerk_key
|
|
AND k.mld_srtkenmerk_key = 569)
|
|
)
|
|
wehkamp_waarde
|
|
FROM mld_melding m,
|
|
mld_stdmelding sm,
|
|
mld_statuses s,
|
|
alg_locatie l
|
|
WHERE TO_NUMBER (TO_CHAR (m.mld_melding_datum, 'yyyymm')) > 200909
|
|
AND m.mld_stdmelding_key = sm.mld_stdmelding_key
|
|
AND sm.mld_ins_discipline_key = 621 -- schade
|
|
AND m.mld_melding_status = s.mld_statuses_key
|
|
AND m.mld_alg_locatie_key = l.alg_locatie_key;
|
|
|
|
-- WEHK#20053 - Notificaties naar specifiek geregistreerde personen binnen de
|
|
-- afdeling gedefinieerd als contracteigenaar en - indien ongedefinieerd -
|
|
-- naar de persoon gedefinieerd als contractbeheerder. Tenminste, als vandaag
|
|
-- is de rappeldatum!
|
|
/* Formatted on 21-3-2011 12:18:24 (QP5 v5.115.810.9015) */
|
|
CREATE OR REPLACE VIEW wehk_v_noti_cntreminder
|
|
(
|
|
code,
|
|
sender,
|
|
receiver,
|
|
text,
|
|
KEY,
|
|
par1,
|
|
par2,
|
|
xkey
|
|
)
|
|
AS
|
|
SELECT 'CUST01',
|
|
'',
|
|
COALESCE (y.prs_eigenaar, x.prs_beheerder),
|
|
'Rappel: Contract '
|
|
|| x.cnt_contract_nummer_intern
|
|
|| ' ('
|
|
|| x.cnt_contract_omschrijving
|
|
|| ' '
|
|
|| x.prs_bedrijf_naam
|
|
|| ')'
|
|
|| ' moet uiterlijk per '
|
|
|| TO_CHAR (cnt.cnt_getopzegdatum (x.cnt_contract_key),
|
|
'dd-mm-yyyy')
|
|
|| ' worden verlengd of opgezegd.',
|
|
x.cnt_contract_key,
|
|
x.cnt_contract_nummer_intern,
|
|
NULL,
|
|
NULL
|
|
FROM (SELECT c.prs_afdeling_key_eig afd_eigenaar,
|
|
c.prs_perslid_key_beh prs_beheerder,
|
|
c.cnt_contract_nummer_intern,
|
|
c.cnt_contract_omschrijving,
|
|
b.prs_bedrijf_naam,
|
|
c.cnt_contract_key
|
|
FROM cnt_v_aanwezigcontract c, prs_bedrijf b
|
|
WHERE c.cnt_prs_bedrijf_key = b.prs_bedrijf_key
|
|
AND c.cnt_contract_status = 0
|
|
--AND SYSDATE BETWEEN cnt.cnt_getrappeldatum (c.cnt_contract_key)
|
|
-- AND cnt.cnt_getopzegdatum (c.cnt_contract_key)
|
|
AND TRUNC (
|
|
cnt.cnt_getRappeldatum (c.cnt_contract_key)
|
|
) = TRUNC (SYSDATE)) x
|
|
LEFT JOIN
|
|
(SELECT kl.prs_link_key afd_eigenaar,
|
|
fac.safe_to_number (kl.prs_kenmerklink_waarde)
|
|
prs_eigenaar
|
|
FROM prs_v_aanwezigkenmerklink kl
|
|
WHERE kl.prs_kenmerk_key IN (1100, 1101, 1140) -- Eigenaar 1 + 2 + 3
|
|
AND kl.prs_kenmerklink_niveau = 'A') y
|
|
ON x.afd_eigenaar = y.afd_eigenaar;
|
|
|
|
-- WEHK#20113 AutoClose ALLE bestellingen noti-dagen na geplande leverdatum!
|
|
CREATE OR REPLACE PROCEDURE wehk_select_autoclose (
|
|
p_applname IN VARCHAR2,
|
|
p_applrun IN VARCHAR2
|
|
)
|
|
AS
|
|
BEGIN
|
|
NULL;
|
|
END;
|
|
/
|
|
|
|
CREATE OR REPLACE FORCE VIEW wehk_v_export_autoclose (RESULT, result_order)
|
|
AS
|
|
SELECT '', 0
|
|
FROM DUAL
|
|
WHERE 1 = 0;
|
|
/
|
|
|
|
/* Formatted on 1-4-2011 14:48:18 (QP5 v5.115.810.9015) */
|
|
CREATE OR REPLACE PROCEDURE wehk_export_autoclose (p_applname IN VARCHAR2,
|
|
p_applrun IN VARCHAR2,
|
|
p_filedir IN VARCHAR2,
|
|
p_filename IN VARCHAR2)
|
|
AS
|
|
CURSOR cres
|
|
IS
|
|
SELECT rrr.res_rsv_ruimte_key
|
|
FROM res_rsv_ruimte rrr
|
|
WHERE res_status_bo_key = 2
|
|
AND res_rsv_ruimte_verwijder IS NULL
|
|
AND res_rsv_ruimte_van < SYSDATE - 14;
|
|
|
|
CURSOR cart
|
|
IS
|
|
SELECT ra.res_rsv_artikel_key
|
|
FROM res_rsv_artikel ra
|
|
WHERE res_status_bo_key = 2
|
|
AND res_rsv_artikel_verwijder IS NULL
|
|
AND res_rsv_artikel_levering < SYSDATE - 14;
|
|
|
|
CURSOR cobj
|
|
IS
|
|
SELECT rd.res_rsv_deel_key
|
|
FROM res_rsv_deel rd
|
|
WHERE res_status_bo_key = 2
|
|
AND res_rsv_deel_verwijder IS NULL
|
|
AND res_rsv_deel_tot < SYSDATE - 14;
|
|
|
|
BEGIN
|
|
FOR rc
|
|
IN (SELECT boi.bes_bestelopdr_item_key, bo.bes_bestelopdr_key
|
|
FROM bes_bestelopdr_item boi,
|
|
bes_bestelopdr bo,
|
|
bes_bestelling_item bi,
|
|
bes_bestelling b,
|
|
bes_srtdeel sd,
|
|
bes_srtgroep sg,
|
|
bes_disc_params bdp
|
|
WHERE boi.bes_bestelopdr_key = bo.bes_bestelopdr_key
|
|
AND bo.bes_bestelopdr_status = 4 -- In bestelling
|
|
AND boi.bes_bestelopdr_item_key = bi.bes_bestelopdr_item_key
|
|
AND bi.bes_bestelling_key = b.bes_bestelling_key
|
|
AND bi.bes_srtdeel_key = sd.bes_srtdeel_key
|
|
AND sd.bes_srtgroep_key = sg.bes_srtgroep_key
|
|
--AND sg.ins_discipline_key = -1
|
|
AND sg.ins_discipline_key = bdp.bes_ins_discipline_key
|
|
AND bdp.bes_disc_params_noti_dagen IS NOT NULL
|
|
AND (b.bes_bestelling_datum IS NULL
|
|
OR fac.datumtijdplusuitvoertijd (
|
|
b.bes_bestelling_leverdatum,
|
|
bdp.bes_disc_params_noti_dagen,
|
|
'DAGEN'
|
|
) < SYSDATE))
|
|
LOOP
|
|
UPDATE bes_bestelopdr_item
|
|
SET bes_bestelopdr_item_aantalontv = bes_bestelopdr_item_aantal
|
|
WHERE bes_bestelopdr_item_key = rc.bes_bestelopdr_item_key;
|
|
|
|
bes.updatebestelopdrstatus (rc.bes_bestelopdr_key, NULL);
|
|
|
|
COMMIT;
|
|
END LOOP;
|
|
|
|
FOR rc
|
|
IN (SELECT bi.bes_bestelling_item_key, bi.bes_bestelling_key
|
|
FROM bes_bestelling_item bi, bes_bestelopdr_item boi
|
|
WHERE bi.bes_bestelling_item_aantal <>
|
|
NVL (bi.bes_bestelling_item_aantalontv, 0)
|
|
AND bi.bes_bestelopdr_item_key = boi.bes_bestelopdr_item_key
|
|
AND boi.bes_bestelopdr_item_aantal =
|
|
boi.bes_bestelopdr_item_aantalontv)
|
|
LOOP
|
|
UPDATE bes_bestelling_item
|
|
SET bes_bestelling_item_aantalontv = bes_bestelling_item_aantal
|
|
WHERE bes_bestelling_item_key = rc.bes_bestelling_item_key;
|
|
|
|
bes.updatebestellingstatus (rc.bes_bestelling_key, NULL);
|
|
|
|
COMMIT;
|
|
END LOOP;
|
|
|
|
FOR rc IN cart
|
|
LOOP
|
|
UPDATE res_rsv_artikel
|
|
SET res_status_bo_key = 5
|
|
WHERE res_rsv_artikel_key = rc.res_rsv_artikel_key;
|
|
|
|
fac.trackaction ('RESAFM',
|
|
rc.res_rsv_artikel_key,
|
|
NULL,
|
|
NULL,
|
|
NULL);
|
|
COMMIT;
|
|
END LOOP;
|
|
|
|
FOR rc IN cobj
|
|
LOOP
|
|
UPDATE res_rsv_deel
|
|
SET res_status_bo_key = 5
|
|
WHERE res_rsv_deel_key = rc.res_rsv_deel_key;
|
|
|
|
fac.trackaction ('RESAFM',
|
|
rc.res_rsv_deel_key,
|
|
NULL,
|
|
NULL,
|
|
NULL);
|
|
COMMIT;
|
|
END LOOP;
|
|
|
|
FOR rc IN cres
|
|
LOOP
|
|
UPDATE res_rsv_ruimte
|
|
SET res_status_bo_key = 5
|
|
WHERE res_rsv_ruimte_key = rc.res_rsv_ruimte_key;
|
|
|
|
fac.trackaction ('RESAFM',
|
|
rc.res_rsv_ruimte_key,
|
|
NULL,
|
|
NULL,
|
|
NULL);
|
|
COMMIT;
|
|
END LOOP;
|
|
END;
|
|
/
|
|
|
|
-- Bevat CUST02- en CUST03-reminders naar verantwoordelijken voor inspectie
|
|
-- van betreffende objecten.
|
|
-- LET OP: Notificatiejob via xemail!!!
|
|
-- CUST02: wekelijks mbt. over 1 tot 2 weken te keuren objecten!
|
|
-- CUST03: wekelijks mbt. objecten waarvan keuringsdatum is verstreken!
|
|
/* Formatted on 20-6-2013 9:58:02 (QP5 v5.115.810.9015) */
|
|
CREATE OR REPLACE VIEW WEHK_V_NOTI_INSPECTIEREMINDER
|
|
(
|
|
code,
|
|
sender,
|
|
receiver,
|
|
text,
|
|
KEY,
|
|
par1,
|
|
par2,
|
|
xkey,
|
|
xemail,
|
|
xmobile
|
|
)
|
|
AS
|
|
SELECT sn.fac_srtnotificatie_code code,
|
|
NULL sender,
|
|
NULL, --x.receiver,
|
|
REPLACE (
|
|
REPLACE (
|
|
sn.fac_srtnotificatie_oms,
|
|
'##SRTGROEP##',
|
|
DECODE (
|
|
x.min_srtgroep_oms,
|
|
x.max_srtgroep_oms,
|
|
x.min_srtgroep_oms
|
|
|| DECODE (x.aantal, 1, '-' || max_controle_oms, ''),
|
|
x.min_srtgroep_oms || ', ...'
|
|
)
|
|
),
|
|
'##AANTAL##',
|
|
x.aantal
|
|
)
|
|
subject,
|
|
x.dummy_deel_key, -- Dummy key!!!
|
|
NULL,
|
|
NULL,
|
|
NULL,
|
|
(SELECT prs_perslid_email
|
|
FROM prs_perslid
|
|
WHERE prs_perslid_key = x.receiver),
|
|
NULL
|
|
FROM ( SELECT DECODE (
|
|
o.ins_discipline_key,
|
|
1161, -- Controles -> eigenaar
|
|
DECODE (o.ins_alg_ruimte_type,
|
|
'P', o.ins_alg_ruimte_key,
|
|
NULL),
|
|
lv.prs_perslid_key -- Rest -> locatie-verantw.
|
|
)
|
|
receiver,
|
|
MAX (cso.ins_srtcontrole_omschrijving) max_controle_oms,
|
|
MIN (o.ins_srtgroep_omschrijving) min_srtgroep_oms,
|
|
MAX (o.ins_srtgroep_omschrijving) max_srtgroep_oms,
|
|
MIN (o.ins_deel_key) dummy_deel_key,
|
|
COUNT (DISTINCT o.ins_deel_key) aantal
|
|
FROM (SELECT scs.ins_srtinstallatie_key
|
|
ins_srtdeel_key,
|
|
scs.ins_srtcontrole_key,
|
|
scs.ins_srtcontrole_omschrijving,
|
|
scs.ins_srtcontrole_periode
|
|
FROM ins_srtcontrole scs
|
|
WHERE scs.ins_srtcontrole_niveau = 'S'
|
|
UNION ALL
|
|
SELECT sd.ins_srtdeel_key,
|
|
scg.ins_srtcontrole_key,
|
|
scg.ins_srtcontrole_omschrijving,
|
|
scg.ins_srtcontrole_periode
|
|
FROM ins_srtcontrole scg,
|
|
ins_srtdeel sd
|
|
WHERE scg.ins_srtcontrole_niveau = 'G'
|
|
AND scg.ins_srtinstallatie_key =
|
|
sd.ins_srtgroep_key
|
|
UNION ALL
|
|
SELECT sd.ins_srtdeel_key,
|
|
scd.ins_srtcontrole_key,
|
|
scd.ins_srtcontrole_omschrijving,
|
|
scd.ins_srtcontrole_periode
|
|
FROM ins_srtcontrole scd,
|
|
ins_srtgroep sg,
|
|
ins_srtdeel sd
|
|
WHERE scd.ins_srtcontrole_niveau = 'D'
|
|
AND scd.ins_srtinstallatie_key =
|
|
sg.ins_discipline_key
|
|
AND sg.ins_srtgroep_key =
|
|
sd.ins_srtgroep_key) cso -- ControleSoortObjecten
|
|
LEFT JOIN
|
|
(SELECT d.ins_deel_key,
|
|
d.ins_deel_aanmaak,
|
|
d.ins_alg_ruimte_key,
|
|
d.ins_alg_ruimte_type,
|
|
sd.ins_srtdeel_key,
|
|
sg.ins_srtgroep_omschrijving,
|
|
td.ins_discipline_key,
|
|
td.ins_discipline_omschrijving,
|
|
DECODE (d.ins_discipline_key,
|
|
41, 4, -- Vervoersmiddelen -> Zwolle
|
|
d.ins_alg_locatie_key)
|
|
alg_locatie_key
|
|
FROM ins_v_aanwezigdeel d,
|
|
ins_srtdeel sd,
|
|
ins_srtgroep sg,
|
|
ins_tab_discipline td,
|
|
alg_locatie l
|
|
WHERE d.ins_srtdeel_key =
|
|
sd.ins_srtdeel_key
|
|
AND sd.ins_srtgroep_key =
|
|
sg.ins_srtgroep_key
|
|
AND sg.ins_discipline_key =
|
|
td.ins_discipline_key
|
|
AND d.ins_alg_locatie_key =
|
|
l.alg_locatie_key(+)) o -- Objecten
|
|
ON cso.ins_srtdeel_key = o.ins_srtdeel_key
|
|
LEFT JOIN
|
|
(SELECT ok.alg_onrgoed_key alg_locatie_key,
|
|
fac.safe_to_number (
|
|
ok.alg_onrgoedkenmerk_waarde
|
|
)
|
|
prs_perslid_key
|
|
FROM alg_v_aanwezigonrgoedkenmerk ok
|
|
WHERE ok.alg_kenmerk_key = 1120
|
|
AND ok.alg_onrgoed_niveau = 'L') lv -- LocatieVerantwoordelijke
|
|
ON o.alg_locatie_key = lv.alg_locatie_key
|
|
LEFT JOIN
|
|
(SELECT ins_deel_key,
|
|
ins_kenmerkdeel_waarde afgekeurd
|
|
FROM ins_v_aanwezigkenmerkdeel kd,
|
|
ins_kenmerk k
|
|
WHERE kd.ins_kenmerk_key = k.ins_kenmerk_key
|
|
AND k.ins_srtkenmerk_key = -1) oa -- ObjectAfgekeurd
|
|
ON o.ins_deel_key = oa.ins_deel_key
|
|
LEFT JOIN
|
|
(SELECT dsc.ins_deel_key,
|
|
dsc.ins_srtcontrole_key,
|
|
dsc.ins_deelsrtcontrole_datum,
|
|
dsc.ins_deelsrtcontrole_opmerking
|
|
FROM ins_deelsrtcontrole dsc
|
|
WHERE dsc.ins_deelsrtcontrole_datum =
|
|
(SELECT MAX (
|
|
ins_deelsrtcontrole_datum
|
|
)
|
|
FROM ins_deelsrtcontrole
|
|
WHERE ins_deel_key =
|
|
dsc.ins_deel_key
|
|
AND ins_srtcontrole_key =
|
|
dsc.ins_srtcontrole_key))
|
|
olc -- ObjectLaatsteControle
|
|
ON o.ins_deel_key = olc.ins_deel_key
|
|
AND cso.ins_srtcontrole_key =
|
|
olc.ins_srtcontrole_key
|
|
WHERE (oa.afgekeurd IS NULL OR oa.afgekeurd = -1) -- 'Nee'
|
|
AND COALESCE (olc.ins_deelsrtcontrole_datum,
|
|
o.ins_deel_aanmaak)
|
|
+ cso.ins_srtcontrole_periode BETWEEN TRUNC (
|
|
SYSDATE + 7
|
|
)
|
|
AND TRUNC(SYSDATE
|
|
+ 14)
|
|
GROUP BY DECODE (
|
|
o.ins_discipline_key,
|
|
1161, -- Controles -> eigenaar
|
|
DECODE (o.ins_alg_ruimte_type,
|
|
'P', o.ins_alg_ruimte_key,
|
|
NULL),
|
|
lv.prs_perslid_key -- Rest -> locatie-verantw.
|
|
)) x,
|
|
fac_srtnotificatie sn
|
|
WHERE sn.fac_srtnotificatie_code = 'CUST02'
|
|
UNION ALL -- Verstreken naar verantwoordelijken!
|
|
SELECT sn.fac_srtnotificatie_code code,
|
|
NULL sender,
|
|
NULL, --x.receiver,
|
|
REPLACE (
|
|
REPLACE (
|
|
sn.fac_srtnotificatie_oms,
|
|
'##SRTGROEP##',
|
|
DECODE (
|
|
x.min_srtgroep_oms,
|
|
x.max_srtgroep_oms,
|
|
x.min_srtgroep_oms
|
|
|| DECODE (x.aantal, 1, '-' || max_controle_oms, ''),
|
|
x.min_srtgroep_oms || ', ...'
|
|
)
|
|
),
|
|
'##AANTAL##',
|
|
x.aantal
|
|
)
|
|
subject,
|
|
x.dummy_deel_key, -- Dummy key!!!
|
|
NULL,
|
|
NULL,
|
|
NULL,
|
|
(SELECT prs_perslid_email
|
|
FROM prs_perslid
|
|
WHERE prs_perslid_key = x.receiver),
|
|
NULL
|
|
FROM ( SELECT DECODE (
|
|
o.ins_discipline_key,
|
|
1161, -- Controles -> eigenaar
|
|
DECODE (o.ins_alg_ruimte_type,
|
|
'P', o.ins_alg_ruimte_key,
|
|
NULL),
|
|
lv.prs_perslid_key -- Rest -> locatie-verantw.
|
|
)
|
|
receiver,
|
|
MAX (cso.ins_srtcontrole_omschrijving) max_controle_oms,
|
|
MIN (o.ins_srtgroep_omschrijving) min_srtgroep_oms,
|
|
MAX (o.ins_srtgroep_omschrijving) max_srtgroep_oms,
|
|
MIN (o.ins_deel_key) dummy_deel_key,
|
|
COUNT (DISTINCT o.ins_deel_key) aantal
|
|
FROM (SELECT scs.ins_srtinstallatie_key
|
|
ins_srtdeel_key,
|
|
scs.ins_srtcontrole_key,
|
|
scs.ins_srtcontrole_omschrijving,
|
|
scs.ins_srtcontrole_periode
|
|
FROM ins_srtcontrole scs
|
|
WHERE scs.ins_srtcontrole_niveau = 'S'
|
|
UNION ALL
|
|
SELECT sd.ins_srtdeel_key,
|
|
scg.ins_srtcontrole_key,
|
|
scg.ins_srtcontrole_omschrijving,
|
|
scg.ins_srtcontrole_periode
|
|
FROM ins_srtcontrole scg,
|
|
ins_srtdeel sd
|
|
WHERE scg.ins_srtcontrole_niveau = 'G'
|
|
AND scg.ins_srtinstallatie_key =
|
|
sd.ins_srtgroep_key
|
|
UNION ALL
|
|
SELECT sd.ins_srtdeel_key,
|
|
scd.ins_srtcontrole_key,
|
|
scd.ins_srtcontrole_omschrijving,
|
|
scd.ins_srtcontrole_periode
|
|
FROM ins_srtcontrole scd,
|
|
ins_srtgroep sg,
|
|
ins_srtdeel sd
|
|
WHERE scd.ins_srtcontrole_niveau = 'D'
|
|
AND scd.ins_srtinstallatie_key =
|
|
sg.ins_discipline_key
|
|
AND sg.ins_srtgroep_key =
|
|
sd.ins_srtgroep_key) cso -- ControleSoortObjecten
|
|
LEFT JOIN
|
|
(SELECT d.ins_deel_key,
|
|
d.ins_deel_aanmaak,
|
|
d.ins_alg_ruimte_key,
|
|
d.ins_alg_ruimte_type,
|
|
sd.ins_srtdeel_key,
|
|
sg.ins_srtgroep_omschrijving,
|
|
td.ins_discipline_key,
|
|
td.ins_discipline_omschrijving,
|
|
DECODE (d.ins_discipline_key,
|
|
41, 4, -- Vervoersmiddelen -> Zwolle
|
|
d.ins_alg_locatie_key)
|
|
alg_locatie_key
|
|
FROM ins_v_aanwezigdeel d,
|
|
ins_srtdeel sd,
|
|
ins_srtgroep sg,
|
|
ins_tab_discipline td,
|
|
alg_locatie l
|
|
WHERE d.ins_srtdeel_key =
|
|
sd.ins_srtdeel_key
|
|
AND sd.ins_srtgroep_key =
|
|
sg.ins_srtgroep_key
|
|
AND sg.ins_discipline_key =
|
|
td.ins_discipline_key
|
|
AND d.ins_alg_locatie_key =
|
|
l.alg_locatie_key(+)) o -- Objecten
|
|
ON cso.ins_srtdeel_key = o.ins_srtdeel_key
|
|
LEFT JOIN
|
|
(SELECT ok.alg_onrgoed_key alg_locatie_key,
|
|
fac.safe_to_number (
|
|
ok.alg_onrgoedkenmerk_waarde
|
|
)
|
|
prs_perslid_key
|
|
FROM alg_v_aanwezigonrgoedkenmerk ok
|
|
WHERE ok.alg_kenmerk_key = 1120
|
|
AND ok.alg_onrgoed_niveau = 'L') lv -- LocatieVerantwoordelijke
|
|
ON o.alg_locatie_key = lv.alg_locatie_key
|
|
LEFT JOIN
|
|
(SELECT ins_deel_key,
|
|
ins_kenmerkdeel_waarde afgekeurd
|
|
FROM ins_v_aanwezigkenmerkdeel kd,
|
|
ins_kenmerk k
|
|
WHERE kd.ins_kenmerk_key = k.ins_kenmerk_key
|
|
AND k.ins_srtkenmerk_key = -1) oa -- ObjectAfgekeurd
|
|
ON o.ins_deel_key = oa.ins_deel_key
|
|
LEFT JOIN
|
|
(SELECT dsc.ins_deel_key,
|
|
dsc.ins_srtcontrole_key,
|
|
dsc.ins_deelsrtcontrole_datum,
|
|
dsc.ins_deelsrtcontrole_opmerking
|
|
FROM ins_deelsrtcontrole dsc
|
|
WHERE dsc.ins_deelsrtcontrole_datum =
|
|
(SELECT MAX (
|
|
ins_deelsrtcontrole_datum
|
|
)
|
|
FROM ins_deelsrtcontrole
|
|
WHERE ins_deel_key =
|
|
dsc.ins_deel_key
|
|
AND ins_srtcontrole_key =
|
|
dsc.ins_srtcontrole_key))
|
|
olc -- ObjectLaatsteControle
|
|
ON o.ins_deel_key = olc.ins_deel_key
|
|
AND cso.ins_srtcontrole_key =
|
|
olc.ins_srtcontrole_key
|
|
WHERE (oa.afgekeurd IS NULL OR oa.afgekeurd = -1) -- 'Nee'
|
|
AND COALESCE (olc.ins_deelsrtcontrole_datum,
|
|
o.ins_deel_aanmaak)
|
|
+ cso.ins_srtcontrole_periode < TRUNC (SYSDATE)
|
|
GROUP BY DECODE (
|
|
o.ins_discipline_key,
|
|
1161, -- Controles -> eigenaar
|
|
DECODE (o.ins_alg_ruimte_type,
|
|
'P', o.ins_alg_ruimte_key,
|
|
NULL),
|
|
lv.prs_perslid_key -- Rest -> locatie-verantw.
|
|
)) x,
|
|
fac_srtnotificatie sn
|
|
WHERE sn.fac_srtnotificatie_code = 'CUST03'
|
|
UNION ALL -- Verstreken naar fabu@wehkamp.nl!
|
|
SELECT sn.fac_srtnotificatie_code code,
|
|
NULL sender,
|
|
NULL receiver,
|
|
REPLACE (
|
|
REPLACE (
|
|
sn.fac_srtnotificatie_oms,
|
|
'##SRTGROEP##',
|
|
DECODE (x.min_srtgroep_oms,
|
|
x.max_srtgroep_oms, x.min_srtgroep_oms,
|
|
x.min_srtgroep_oms || ', ...')
|
|
),
|
|
'##AANTAL##',
|
|
x.aantal
|
|
)
|
|
subject,
|
|
x.dummy_deel_key, -- Dummy key!!!
|
|
NULL,
|
|
NULL,
|
|
NULL,
|
|
'fabu@wehkamp.nl',
|
|
NULL
|
|
FROM ( SELECT 1 receiver,
|
|
MIN (o.ins_srtgroep_omschrijving) min_srtgroep_oms,
|
|
MAX (o.ins_srtgroep_omschrijving) max_srtgroep_oms,
|
|
MIN (o.ins_deel_key) dummy_deel_key,
|
|
COUNT (DISTINCT o.ins_deel_key) aantal
|
|
FROM (SELECT scs.ins_srtinstallatie_key
|
|
ins_srtdeel_key,
|
|
scs.ins_srtcontrole_key,
|
|
scs.ins_srtcontrole_omschrijving,
|
|
scs.ins_srtcontrole_periode
|
|
FROM ins_srtcontrole scs
|
|
WHERE scs.ins_srtcontrole_niveau = 'S'
|
|
UNION ALL
|
|
SELECT sd.ins_srtdeel_key,
|
|
scg.ins_srtcontrole_key,
|
|
scg.ins_srtcontrole_omschrijving,
|
|
scg.ins_srtcontrole_periode
|
|
FROM ins_srtcontrole scg, ins_srtdeel sd
|
|
WHERE scg.ins_srtcontrole_niveau = 'G'
|
|
AND scg.ins_srtinstallatie_key =
|
|
sd.ins_srtgroep_key
|
|
UNION ALL
|
|
SELECT sd.ins_srtdeel_key,
|
|
scd.ins_srtcontrole_key,
|
|
scd.ins_srtcontrole_omschrijving,
|
|
scd.ins_srtcontrole_periode
|
|
FROM ins_srtcontrole scd,
|
|
ins_srtgroep sg,
|
|
ins_srtdeel sd
|
|
WHERE scd.ins_srtcontrole_niveau = 'D'
|
|
AND scd.ins_srtinstallatie_key =
|
|
sg.ins_discipline_key
|
|
AND sg.ins_srtgroep_key =
|
|
sd.ins_srtgroep_key) cso -- ControleSoortObjecten
|
|
LEFT JOIN
|
|
(SELECT d.ins_deel_key,
|
|
d.ins_deel_aanmaak,
|
|
d.ins_alg_ruimte_key,
|
|
d.ins_alg_ruimte_type,
|
|
sd.ins_srtdeel_key,
|
|
sg.ins_srtgroep_omschrijving,
|
|
td.ins_discipline_key,
|
|
td.ins_discipline_omschrijving,
|
|
DECODE (d.ins_discipline_key,
|
|
41, 4, -- Vervoersmiddelen -> Zwolle
|
|
d.ins_alg_locatie_key)
|
|
alg_locatie_key
|
|
FROM ins_v_aanwezigdeel d,
|
|
ins_srtdeel sd,
|
|
ins_srtgroep sg,
|
|
ins_tab_discipline td,
|
|
alg_locatie l
|
|
WHERE d.ins_srtdeel_key =
|
|
sd.ins_srtdeel_key
|
|
AND sd.ins_srtgroep_key =
|
|
sg.ins_srtgroep_key
|
|
AND sg.ins_discipline_key =
|
|
td.ins_discipline_key
|
|
AND d.ins_alg_locatie_key =
|
|
l.alg_locatie_key(+)) o -- Objecten
|
|
ON cso.ins_srtdeel_key = o.ins_srtdeel_key
|
|
LEFT JOIN
|
|
(SELECT ins_deel_key,
|
|
ins_kenmerkdeel_waarde afgekeurd
|
|
FROM ins_v_aanwezigkenmerkdeel kd,
|
|
ins_kenmerk k
|
|
WHERE kd.ins_kenmerk_key = k.ins_kenmerk_key
|
|
AND k.ins_srtkenmerk_key = -1) oa -- ObjectAfgekeurd
|
|
ON o.ins_deel_key = oa.ins_deel_key
|
|
LEFT JOIN
|
|
(SELECT dsc.ins_deel_key,
|
|
dsc.ins_srtcontrole_key,
|
|
dsc.ins_deelsrtcontrole_datum,
|
|
dsc.ins_deelsrtcontrole_opmerking
|
|
FROM ins_deelsrtcontrole dsc
|
|
WHERE dsc.ins_deelsrtcontrole_datum =
|
|
(SELECT MAX (
|
|
ins_deelsrtcontrole_datum
|
|
)
|
|
FROM ins_deelsrtcontrole
|
|
WHERE ins_deel_key =
|
|
dsc.ins_deel_key
|
|
AND ins_srtcontrole_key =
|
|
dsc.ins_srtcontrole_key))
|
|
olc -- ObjectLaatsteControle
|
|
ON o.ins_deel_key = olc.ins_deel_key
|
|
AND cso.ins_srtcontrole_key =
|
|
olc.ins_srtcontrole_key
|
|
WHERE (oa.afgekeurd IS NULL OR oa.afgekeurd = -1) -- 'Nee'
|
|
AND COALESCE (olc.ins_deelsrtcontrole_datum,
|
|
o.ins_deel_aanmaak)
|
|
+ cso.ins_srtcontrole_periode < TRUNC (SYSDATE)
|
|
GROUP BY 1) x,
|
|
fac_srtnotificatie sn
|
|
WHERE sn.fac_srtnotificatie_code = 'CUST03';
|
|
|
|
/* Formatted on 2-8-2013 14:38:16 (QP5 v5.115.810.9015) */
|
|
CREATE OR REPLACE VIEW wehk_v_inspectie_results
|
|
(
|
|
hide_f_ins_deel_key,
|
|
fclt_f_discipline,
|
|
fclt_f_groep,
|
|
fclt_f_objectsoort,
|
|
fclt_f_object,
|
|
fclt_f_locatie,
|
|
--fclt_3d_locatie_key,
|
|
fclt_f_district,
|
|
fclt_f_regio,
|
|
fclt_f_inspectiepunt,
|
|
fclt_f_inspectieinfo,
|
|
--fclt_f_jaar,
|
|
--fclt_f_maand,
|
|
fclt_d_datum,
|
|
fclt_f_inspecteur,
|
|
fclt_f_beoordeling,
|
|
opmerking
|
|
)
|
|
AS
|
|
SELECT insp.ins_deel_key,
|
|
dis.ins_discipline_omschrijving,
|
|
sg.ins_srtgroep_omschrijving,
|
|
sd.ins_srtdeel_omschrijving,
|
|
d.ins_deel_omschrijving,
|
|
l.alg_locatie_code || '-' || l.alg_locatie_omschrijving,
|
|
--l.alg_locatie_key,
|
|
di.alg_district_omschrijving,
|
|
r.alg_regio_omschrijving,
|
|
sc.ins_srtcontrole_omschrijving,
|
|
sc.ins_srtcontrole_info,
|
|
--TO_CHAR (insp.ins_deelsrtcontrole_datum, 'yyyy'),
|
|
--TO_CHAR (insp.ins_deelsrtcontrole_datum, 'mm'),
|
|
TO_CHAR (insp.ins_deelsrtcontrole_datum, 'dd-mm-yyyy'),
|
|
pf.prs_perslid_naam_full,
|
|
cm.ins_controlemode_oms,
|
|
insp.ins_deelsrtcontrole_opmerking
|
|
FROM ins_deelsrtcontrole insp,
|
|
ins_controlemode cm,
|
|
ins_srtcontrole sc,
|
|
prs_v_perslid_fullnames_all pf,
|
|
ins_deel d,
|
|
ins_srtdeel sd,
|
|
ins_srtgroep sg,
|
|
ins_tab_discipline dis,
|
|
alg_locatie l,
|
|
alg_district di,
|
|
alg_regio r
|
|
WHERE insp.ins_controlemode_key = cm.ins_controlemode_key
|
|
AND insp.ins_srtcontrole_key = sc.ins_srtcontrole_key
|
|
AND insp.prs_perslid_key = pf.prs_perslid_key(+)
|
|
AND insp.ins_deel_key = d.ins_deel_key
|
|
AND d.ins_srtdeel_key = sd.ins_srtdeel_key
|
|
AND sd.ins_srtgroep_key = sg.ins_srtgroep_key
|
|
AND sg.ins_discipline_key = dis.ins_discipline_key
|
|
AND d.ins_alg_locatie_key = l.alg_locatie_key
|
|
AND l.alg_district_key = di.alg_district_key
|
|
AND di.alg_regio_key = r.alg_regio_key;
|
|
|
|
BEGIN fac.registercustversion('WEHK', 23); END;
|
|
/
|
|
BEGIN adm.systrackscriptId('$Id$', 0); END;
|
|
/
|
|
commit;
|
|
spool off
|