Files
Customer/WEHK/WEHK.sql
Maarten van der Heide 9c1388a832 Script header/footer formaat
svn path=/Customer/trunk/; revision=57216
2022-09-08 13:54:21 +00:00

3834 lines
162 KiB
SQL

--
-- $Id$
--
-- Script containing customer specific db-configuration for WEHK.
DEFINE thisfile = 'WEHK.SQL'
DEFINE dbuser = '^WEHK'
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 ------
/* 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;
/
CREATE OR REPLACE PROCEDURE wehk_import_leverancier (p_import_key IN NUMBER
)
AS
BEGIN
fac_import_ext_bedrijf(p_import_key);
END;
/
CREATE OR REPLACE PROCEDURE wehk_update_leverancier (p_import_key IN NUMBER
)
AS
BEGIN
fac_update_bedrijf_body(p_import_key, 1);
END;
/
CREATE OR REPLACE PROCEDURE wehk_processemail (pfrom IN VARCHAR2,
pto IN VARCHAR2,
psubject IN VARCHAR2,
pbody IN VARCHAR2,
psessionid IN VARCHAR2,
pemailkey IN NUMBER)
AS
v_sender prs_perslid.prs_perslid_key%TYPE;
v_melding_key mld_melding.mld_melding_key%TYPE;
v_stdmelding_key mld_stdmelding.mld_stdmelding_key%TYPE;
v_mld_kenmerk_key mld_kenmerk.mld_kenmerk_key%TYPE;
v_mld_kenmerkmelding_waarde mld_kenmerkmelding.mld_kenmerkmelding_waarde%TYPE;
errormsg fac_result.fac_result_waarde%TYPE;
v_count NUMBER;
v_error NUMBER;
v_errormsg VARCHAR2 (100);
v_from VARCHAR2 (4000);
v_body VARCHAR2 (4000);
BEGIN
errormsg := 'Geen geldige reply';
v_error := 0;
v_errormsg := '';
-- Check of dit een reply is op CUST07 waar de sender coversheet@wehk.facilitor.nl is.
CASE
WHEN UPPER (pto) LIKE '%COVERSHEET@%'
THEN
errormsg := 'Geen coversheet email gevonden.';
v_body := regexp_substr (pbody, '[A-z]*');
errormsg := 'Geen geldige reply gevonden, dit moet JA of NEE zijn.';
v_melding_key := REGEXP_SUBSTR (psubject,
'[[:digit:]]{1,}',
1,
1,
'i');
errormsg := 'Error code 1.';
SELECT mld_stdmelding_key
INTO v_stdmelding_key
FROM mld_melding
WHERE mld_melding_key = v_melding_key;
errormsg := 'Error code 2.';
SELECT mld_kenmerk_key
INTO v_mld_kenmerk_key
FROM mld_kenmerk
WHERE mld_stdmelding_key = v_stdmelding_key
AND mld_srtkenmerk_key IN (1831, 1832, 1833, 1834, 1835);
errormsg := 'Error code 3.';
CASE WHEN UPPER (v_body) LIKE '%JA%'
THEN
v_mld_kenmerkmelding_waarde := 41;
WHEN UPPER (v_body) LIKE '%NEE%'
THEN
v_mld_kenmerkmelding_waarde := 42;
END CASE;
errormsg := 'Error code 4.';
INSERT INTO mld_kenmerkmelding
(mld_melding_key,
mld_kenmerk_key,
mld_kenmerkmelding_waarde)
VALUES (v_melding_key,
v_mld_kenmerk_key, -- email
v_mld_kenmerkmelding_waarde)
RETURNING mld_melding_key
INTO v_melding_key;
errormsg := 'Error code 5.';
UPDATE mld_melding
SET mld_melding_status = 5
WHERE mld_melding_key = v_melding_key;
errormsg := '(0x165)';
mld.setmeldingstatus (v_melding_key, 2, v_sender);
END CASE;
EXCEPTION
WHEN OTHERS
THEN
INSERT INTO fac_result (fac_result_sessionid, fac_result_naam, fac_result_waarde)
VALUES (psessionid,
'maillog',
'Database fout - Neem contact op met uw systeembeheerder ' || errormsg);
fac.writelog ('PROCESSEMAIL',
'E',
'Mail kon niet ingelezen worden afzender:' || pfrom || '[' || errormsg || ']',
'OTHERS (error ' || SQLCODE || '/' || SUBSTR (SQLERRM, 1, 100) || ')');
END;
/
/* 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;
/
-- Contractkenmerken vullen met waarden uit Coversheet meldingen
CREATE OR REPLACE PROCEDURE wehk_export_contractopvoer (
p_applname IN VARCHAR2,
p_applrun IN VARCHAR2,
p_filedir IN VARCHAR2,
p_filename IN VARCHAR2)
AS
CURSOR wehk_c_opvoer -- Contracten die het meldingnummer van een coversheetmelding hebben in het kenmerkveld, conform kenmerkkeys op PRODUCTIE!!!
IS
SELECT DISTINCT *
FROM (SELECT c.cnt_contract_key,
m.mld_melding_key,
mk.mld_kenmerk_key,
mk.mld_kenmerkmelding_waarde,
DECODE (mk.mld_kenmerk_key,
2565, 1200,
2531, 1401,
2594, 1402,
2534, 1403,
2598, 1184,
2587, 1194,
2521, 1178)
cntkenmerkkey
FROM cnt_contract c,
mld_melding m,
mld_kenmerkmelding mk,
cnt_kenmerkcontract ck
WHERE m.mld_melding_start_key = ck.cnt_kenmerkcontract_waarde
AND ck.cnt_kenmerk_key = 1482 -- meldingsnummer
AND m.mld_melding_status = 5 -- afgemeld, dus coversheet is goedgekeurd
AND m.mld_stdmelding_key = 1601 -- coversheet en contract
AND ck.cnt_contract_key = c.cnt_contract_key
AND mk.mld_melding_key = m.mld_melding_key) sub
WHERE sub.cntkenmerkkey IS NOT NULL
AND NOT EXISTS -- Alleen kenmerken die nog leeg zijn
(SELECT 1
FROM cnt_kenmerkcontract ck
WHERE ck.cnt_contract_key = sub.cnt_contract_key
AND ck.cnt_kenmerk_key = sub.cntkenmerkkey);
BEGIN
FOR rec IN wehk_c_opvoer
LOOP
INSERT INTO cnt_kenmerkcontract (cnt_contract_key,
cnt_kenmerk_key,
cnt_kenmerkcontract_waarde,
cnt_kenmerkcontract_aanmaak,
cnt_kenmerkcontract_wijzig)
VALUES (rec.cnt_contract_key,
rec.cntkenmerkkey,
rec.mld_kenmerkmelding_waarde,
SYSDATE,
SYSDATE);
END LOOP;
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!
/*
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#39464 - Notificaties naar Contracteigenaar functie, Contractbeheerder
-- en - indien gedefineerd voor contractsoort - Contracteigenaar procurement,
-- tenminste, als vandaag is de rappeldatum!
/* Formatted on 4-7-2017 14:52:08 (QP5 v5.136.908.31019) */
CREATE OR REPLACE VIEW wehk_v_noti_cntreminder
(
code,
sender,
receiver,
text,
key,
xkey
)
AS
SELECT 'CUST01',
NULL,
c.prs_perslid_key_eig,
'Rappel: Contract '
|| c.cnt_contract_nummer_intern
|| ' ('
|| 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
FROM cnt_v_aanwezigcontract c, prs_bedrijf b
WHERE c.prs_perslid_key_eig IS NOT NULL
AND c.cnt_contract_status = 0
AND c.cnt_prs_bedrijf_key = b.prs_bedrijf_key
AND TRUNC (cnt.cnt_getRappeldatum (c.cnt_contract_key)) = TRUNC (SYSDATE)
UNION ALL
SELECT 'CUST01',
NULL,
c.prs_perslid_key_beh,
'Rappel: Contract '
|| c.cnt_contract_nummer_intern
|| ' ('
|| 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
FROM cnt_v_aanwezigcontract c, prs_bedrijf b
WHERE c.cnt_contract_status = 0
AND c.cnt_prs_bedrijf_key = b.prs_bedrijf_key
AND TRUNC (cnt.cnt_getRappeldatum (c.cnt_contract_key)) = TRUNC (SYSDATE)
UNION ALL
SELECT 'CUST01',
NULL,
fac.safe_to_number (epkc.cnt_kenmerkcontract_waarde),
'Rappel: Contract '
|| c.cnt_contract_nummer_intern
|| ' ('
|| 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
FROM cnt_v_aanwezigcontract c, prs_bedrijf b, cnt_kenmerkcontract epkc, cnt_kenmerk epk
WHERE c.cnt_contract_status = 0
AND c.cnt_prs_bedrijf_key = b.prs_bedrijf_key
AND c.cnt_contract_key = epkc.cnt_contract_key
AND epkc.cnt_kenmerkcontract_verwijder IS NULL
AND epkc.cnt_kenmerk_key = epk.cnt_kenmerk_key
AND epk.cnt_kenmerk_verwijder IS NULL
AND epk.cnt_srtkenmerk_key = 301 -- Contracteigenaar procurement
AND TRUNC (cnt.cnt_getRappeldatum (c.cnt_contract_key)) = TRUNC (SYSDATE)
UNION ALL
SELECT 'CUST01',
NULL,
fac.safe_to_number (ud.fac_usrdata_code), -- Te notificeren PRS_PERSLID_KEY voor Top50-contracten!
'Rappel: Contract '
|| c.cnt_contract_nummer_intern
|| ' ('
|| 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
FROM cnt_v_aanwezigcontract c, prs_bedrijf b, cnt_kenmerkcontract hotkc, cnt_kenmerk hotk, fac_usrdata ud
WHERE c.cnt_contract_status = 0
AND c.cnt_prs_bedrijf_key = b.prs_bedrijf_key
AND c.cnt_contract_key = hotkc.cnt_contract_key
AND hotkc.cnt_kenmerkcontract_verwijder IS NULL
AND hotkc.cnt_kenmerk_key = hotk.cnt_kenmerk_key
AND hotk.cnt_kenmerk_verwijder IS NULL
AND hotk.cnt_srtkenmerk_key = 481 -- Top50 spend
AND ud.fac_usrtab_key = 741
AND TRUNC (cnt.cnt_getRappeldatum (c.cnt_contract_key)) = TRUNC (SYSDATE)
UNION ALL
SELECT sn.fac_srtnotificatie_code,
NULL,
c.prs_perslid_key_eig,
REPLACE (
REPLACE (
REPLACE (
REPLACE (sn.fac_srtnotificatie_oms,
'##NR##', c.cnt_contract_nummer_intern),
'##OMS##', c.cnt_contract_omschrijving),
'##BEDR##', b.prs_bedrijf_naam),
'##DAT##', prkc.cnt_kenmerkcontract_waarde),
c.cnt_contract_key,
NULL
FROM cnt_v_aanwezigcontract c, prs_bedrijf b, cnt_kenmerkcontract prkc, cnt_kenmerk prk, fac_srtnotificatie sn
WHERE c.prs_perslid_key_eig IS NOT NULL
AND c.cnt_prs_bedrijf_key = b.prs_bedrijf_key
AND c.cnt_contract_status = 0
AND c.cnt_contract_key = prkc.cnt_contract_key
AND prkc.cnt_kenmerkcontract_verwijder IS NULL
AND prkc.cnt_kenmerk_key = prk.cnt_kenmerk_key
AND prk.cnt_kenmerk_verwijder IS NULL
AND prk.cnt_srtkenmerk_key = 315 -- Performance review rappeldatum
AND fac.safe_to_date (prkc.cnt_kenmerkcontract_waarde, 'dd-mm-yyyy') = TRUNC (SYSDATE)
AND sn.fac_srtnotificatie_code = 'CUST04'
UNION ALL
SELECT sn.fac_srtnotificatie_code,
NULL,
c.prs_perslid_key_beh,
REPLACE (
REPLACE (
REPLACE (
REPLACE (sn.fac_srtnotificatie_oms,
'##NR##', c.cnt_contract_nummer_intern),
'##OMS##', c.cnt_contract_omschrijving),
'##BEDR##', b.prs_bedrijf_naam),
'##DAT##', prkc.cnt_kenmerkcontract_waarde),
c.cnt_contract_key,
NULL
FROM cnt_v_aanwezigcontract c, prs_bedrijf b, cnt_kenmerkcontract prkc, cnt_kenmerk prk, fac_srtnotificatie sn
WHERE c.cnt_contract_status = 0
AND c.cnt_prs_bedrijf_key = b.prs_bedrijf_key
AND c.cnt_contract_key = prkc.cnt_contract_key
AND prkc.cnt_kenmerkcontract_verwijder IS NULL
AND prkc.cnt_kenmerk_key = prk.cnt_kenmerk_key
AND prk.cnt_kenmerk_verwijder IS NULL
AND prk.cnt_srtkenmerk_key = 315 -- Performance review rappeldatum
AND fac.safe_to_date (prkc.cnt_kenmerkcontract_waarde, 'dd-mm-yyyy') = TRUNC (SYSDATE)
AND sn.fac_srtnotificatie_code = 'CUST04'
UNION ALL
SELECT sn.fac_srtnotificatie_code,
NULL,
fac.safe_to_number (epkc.cnt_kenmerkcontract_waarde),
REPLACE (
REPLACE (
REPLACE (
REPLACE (sn.fac_srtnotificatie_oms,
'##NR##', c.cnt_contract_nummer_intern),
'##OMS##', c.cnt_contract_omschrijving),
'##BEDR##', b.prs_bedrijf_naam),
'##DAT##', prkc.cnt_kenmerkcontract_waarde),
c.cnt_contract_key,
NULL
FROM cnt_v_aanwezigcontract c,
prs_bedrijf b,
cnt_kenmerkcontract epkc,
cnt_kenmerk epk,
cnt_kenmerkcontract prkc,
cnt_kenmerk prk,
fac_srtnotificatie sn
WHERE c.ins_discipline_key IN (1564, 1565) -- Non-merchandise/Inhuur!
AND c.cnt_contract_status = 0
AND c.cnt_prs_bedrijf_key = b.prs_bedrijf_key
AND c.cnt_contract_key = epkc.cnt_contract_key
AND epkc.cnt_kenmerkcontract_verwijder IS NULL
AND epkc.cnt_kenmerk_key = epk.cnt_kenmerk_key
AND epk.cnt_kenmerk_verwijder IS NULL
AND epk.cnt_srtkenmerk_key = 301 -- Contracteigenaar procurement
AND c.cnt_contract_key = prkc.cnt_contract_key
AND prkc.cnt_kenmerkcontract_verwijder IS NULL
AND prkc.cnt_kenmerk_key = prk.cnt_kenmerk_key
AND prk.cnt_kenmerk_verwijder IS NULL
AND prk.cnt_srtkenmerk_key = 315 -- Performance review rappeldatum
AND fac.safe_to_date (prkc.cnt_kenmerkcontract_waarde, 'dd-mm-yyyy') = TRUNC (SYSDATE)
AND sn.fac_srtnotificatie_code = 'CUST04';
-- WEHK#56252 - Kenmerkdomein voor alleen bhvers-
CREATE OR REPLACE VIEW WEHK_V_PRS_BHVNAMEN
(
prs_perslid_key,
prs_perslid_naam
)
AS
SELECT na.prs_perslid_key, na.prs_perslid_naam_friendly
from prs_v_perslid_fullnames na , prs_perslid p
where na.prs_perslid_key IN (Select PRS_LINK_KEY
from prs_kenmerklink
WHERE PRS_KENMERKLINK_WAARDE = '41'
AND prs_kenmerk_key = 1120)
AND na.prs_perslid_key = p.prs_perslid_key
AND p.prs_perslid_verwijder is null;
-- 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 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;
-- KPIs/Contracten
CREATE OR REPLACE VIEW wehk_v_kpi_cnt_data
AS
SELECT c.cnt_contract_key,
c.cnt_contract_nummer_intern || '.' || COALESCE (c.cnt_contract_versie, '0') contractid,
cd.ins_discipline_key,
cd.ins_discipline_omschrijving contractsoort,
a.prs_afdeling_key contractafd3_key,
a.prs_afdeling_omschrijving contractafd3_oms,
c.cnt_contract_kosten,
DECODE (vrkt.cnt_kenmerkcontract_waarde, NULL, 'Nee', 'Ja') verrijkt,
DECODE (appr.aant, 3, 'Ja', 'Nee') approved,
CASE
WHEN SYSDATE < c.cnt_contract_looptijd_van
THEN 'Toekomstig'
WHEN SYSDATE BETWEEN c.cnt_contract_looptijd_van AND cnt.cnt_getrappeldatum (c.cnt_contract_key)
THEN 'Actueel'
WHEN SYSDATE BETWEEN cnt.cnt_getopzegdatum (c.cnt_contract_key) AND c.cnt_contract_looptijd_tot
THEN 'In opzegtermijn'
WHEN SYSDATE > c.cnt_contract_looptijd_tot
THEN 'Verlopen'
ELSE 'Rappel'
END
contractfase,
afd1.fac_usrdata_omschr afd1_aanvrager,
afd2.fac_usrdata_omschr afd2_aanvrager
FROM cnt_v_aanwezigcontract c, cnt_discipline cd,
prs_v_afdeling_boom ab, prs_afdeling a,
(SELECT kc.*
FROM cnt_kenmerkcontract kc, cnt_kenmerk k
WHERE kc.cnt_kenmerkcontract_verwijder IS NULL
AND kc.cnt_kenmerk_key = k.cnt_kenmerk_key
AND k.cnt_kenmerk_verwijder IS NULL
AND k.cnt_srtkenmerk_key = 304) vrkt, -- Groepsmaatschappij
( SELECT kc.cnt_contract_key, SUM (DECODE (kc.cnt_kenmerkcontract_waarde, 'Ja', 1, 0)) aant
FROM cnt_kenmerkcontract kc, cnt_kenmerk k
WHERE kc.cnt_kenmerkcontract_verwijder IS NULL
AND kc.cnt_kenmerk_key = k.cnt_kenmerk_key
AND k.cnt_kenmerk_verwijder IS NULL
AND k.cnt_srtkenmerk_key IN (291, 292, 293) -- Approval Budgethouder/Legal/Buyer
GROUP BY kc.cnt_contract_key) appr,
(SELECT kc.cnt_contract_key, ud.fac_usrdata_omschr
FROM cnt_kenmerkcontract kc, cnt_kenmerk k, fac_usrdata ud
WHERE kc.cnt_kenmerkcontract_verwijder IS NULL
AND kc.cnt_kenmerk_key = k.cnt_kenmerk_key
AND k.cnt_kenmerk_verwijder IS NULL
AND k.cnt_srtkenmerk_key = 288 -- Afdeling 1e level Aanvrager
AND kc.cnt_kenmerkcontract_waarde = TO_CHAR (ud.fac_usrdata_key)) afd1,
(SELECT kc.cnt_contract_key, ud.fac_usrdata_omschr
FROM cnt_kenmerkcontract kc, cnt_kenmerk k, fac_usrdata ud
WHERE kc.cnt_kenmerkcontract_verwijder IS NULL
AND kc.cnt_kenmerk_key = k.cnt_kenmerk_key
AND k.cnt_kenmerk_verwijder IS NULL
AND k.cnt_srtkenmerk_key = 289 -- Afdeling 2e level Aanvrager
AND kc.cnt_kenmerkcontract_waarde = TO_CHAR (ud.fac_usrdata_key)) afd2
WHERE c.cnt_contract_status = 0 -- Actief
--AND SYSDATE BETWEEN c.cnt_contract_looptijd_van AND c.cnt_contract_looptijd_tot
AND c.ins_discipline_key = cd.ins_discipline_key
AND cd.ins_discipline_key IN (1561, 1562, 1563, 1564, 1565)
AND c.prs_afdeling_key_eig = ab.prs_afdeling_key
AND COALESCE (ab.prs_afdeling_key3, ab.prs_afdeling_key1) = a.prs_afdeling_key
AND c.cnt_contract_key = vrkt.cnt_contract_key(+)
AND c.cnt_contract_key = appr.cnt_contract_key(+)
AND c.cnt_contract_key = afd1.cnt_contract_key(+)
AND c.cnt_contract_key = afd2.cnt_contract_key(+);
/*
CREATE OR REPLACE VIEW wehk_v_kpi_cnt_coverage -- WEG?
AS
SELECT c.cnt_contract_key,
c.cnt_contract_nummer_intern || '.' || COALESCE (c.cnt_contract_versie, '0') contractid,
cd.ins_discipline_omschrijving contractsoort,
a.prs_afdeling_omschrijving contractafd3,
c.cnt_contract_kosten
FROM cnt_v_aanwezigcontract c, cnt_discipline cd,
prs_v_afdeling_boom ab, prs_afdeling a
WHERE c.cnt_contract_status = 0 -- Actief
--AND SYSDATE BETWEEN c.cnt_contract_looptijd_van AND c.cnt_contract_looptijd_tot
AND c.ins_discipline_key = cd.ins_discipline_key
AND cd.ins_discipline_key IN (1561, 1562, 1563, 1564, 1565)
AND c.prs_afdeling_key_eig = ab.prs_afdeling_key
AND COALESCE (ab.prs_afdeling_key3, ab.prs_afdeling_key1) = a.prs_afdeling_key;
CREATE OR REPLACE VIEW wehk_v_kpi_cnt_verrijkt -- WEG?
AS
SELECT c.cnt_contract_key,
c.cnt_contract_nummer_intern || '.' || COALESCE (c.cnt_contract_versie, '0') contractid,
DECODE (vrkt.cnt_kenmerkcontract_waarde, NULL, 'Nee', 'Ja') verrijkt
FROM cnt_v_aanwezigcontract c,
(SELECT kc.*
FROM cnt_kenmerkcontract kc, cnt_kenmerk k
WHERE kc.cnt_kenmerkcontract_verwijder IS NULL
AND kc.cnt_kenmerk_key = k.cnt_kenmerk_key
AND k.cnt_kenmerk_verwijder IS NULL
AND k.cnt_srtkenmerk_key = 304) vrkt -- Groepsmaatschappij
WHERE c.cnt_contract_status = 0 -- Actief
--AND SYSDATE BETWEEN c.cnt_contract_looptijd_van AND c.cnt_contract_looptijd_tot
AND c.ins_discipline_key IN (1561, 1562, 1563, 1564, 1565)
AND c.cnt_contract_key = vrkt.cnt_contract_key(+);
CREATE OR REPLACE VIEW wehk_v_kpi_cnt_approved -- WEG?
AS
SELECT c.cnt_contract_key,
c.cnt_contract_nummer_intern || '.' || COALESCE (c.cnt_contract_versie, '0') contractid,
DECODE (appr.aant, 3, 'Ja', 'Nee') approved
FROM cnt_v_aanwezigcontract c,
( SELECT kc.cnt_contract_key, SUM (DECODE (kc.cnt_kenmerkcontract_waarde, 'Ja', 1, 0)) aant
FROM cnt_kenmerkcontract kc, cnt_kenmerk k
WHERE kc.cnt_kenmerkcontract_verwijder IS NULL
AND kc.cnt_kenmerk_key = k.cnt_kenmerk_key
AND k.cnt_kenmerk_verwijder IS NULL
AND k.cnt_srtkenmerk_key IN (291, 292, 293) -- Approval Budgethouder/Legal/Buyer
GROUP BY kc.cnt_contract_key) appr
WHERE c.cnt_contract_status = 0 -- Actief
--AND SYSDATE BETWEEN c.cnt_contract_looptijd_van AND c.cnt_contract_looptijd_tot
AND c.ins_discipline_key IN (1561, 1562, 1563, 1564, 1565)
AND c.cnt_contract_key = appr.cnt_contract_key(+);
*/
CREATE OR REPLACE VIEW wehk_v_kpi_cnt_covaant
(
FCLT_XAS_,
FCLT_YAS_,
VOLGORDE,
FCLT_URL
)
AS
SELECT contractsoort,
COUNT ( * ),
0 - COUNT ( * ),
'appl/cnt/cnt_search.asp?urole=bo'
|| '&'
|| 'autosearch=1'
|| '&'
|| 'disc='
|| TO_CHAR (ins_discipline_key)
FROM wehk_v_kpi_cnt_data
GROUP BY contractsoort, TO_CHAR (ins_discipline_key)
UNION ALL -- Extra kolom zodat voorgaande kolommen helemaal getoond?
SELECT ' ',
0,
999999,
' '
FROM DUAL;
CREATE OR REPLACE VIEW wehk_v_kpi_cnt_covaant_afd3
(
FCLT_XAS_,
FCLT_YAS_,
VOLGORDE,
FCLT_URL
)
AS
SELECT contractafd3_oms,
COUNT ( * ),
0 - COUNT ( * ),
'appl/cnt/cnt_search.asp?urole=bo'
|| '&'
|| 'autosearch=1'
|| '&'
|| 'dep_key='
|| TO_CHAR (contractafd3_key)
FROM wehk_v_kpi_cnt_data
GROUP BY contractafd3_oms,
TO_CHAR (contractafd3_key)
UNION ALL -- Extra kolom zodat voorgaande kolommen helemaal getoond?
SELECT ' ',
0,
999999,
' '
FROM DUAL;
CREATE OR REPLACE VIEW wehk_v_kpi_cnt_coveuro
(
FCLT_XAS_,
FCLT_YAS_,
VOLGORDE,
FCLT_URL
)
AS
SELECT contractsoort,
SUM ( cnt_contract_kosten ),
0 - COUNT ( * ),
'appl/cnt/cnt_search.asp?urole=bo'
|| '&'
|| 'autosearch=1'
|| '&'
|| 'disc='
|| TO_CHAR (ins_discipline_key)
FROM wehk_v_kpi_cnt_data
GROUP BY contractsoort, TO_CHAR (ins_discipline_key)
UNION ALL -- Extra kolom zodat voorgaande kolommen helemaal getoond?
SELECT ' ',
0,
999999,
' '
FROM DUAL;
CREATE OR REPLACE VIEW wehk_v_kpi_cnt_coveuro_afd3
(
FCLT_XAS_,
FCLT_YAS_,
VOLGORDE,
FCLT_URL
)
AS
SELECT contractafd3_oms,
SUM ( cnt_contract_kosten ),
0 - COUNT ( * ),
'appl/cnt/cnt_search.asp?urole=bo'
|| '&'
|| 'autosearch=1'
|| '&'
|| 'dep_key='
|| TO_CHAR (contractafd3_key)
FROM wehk_v_kpi_cnt_data
GROUP BY contractafd3_oms, TO_CHAR (contractafd3_key)
UNION ALL -- Extra kolom zodat voorgaande kolommen helemaal getoond?
SELECT ' ',
0,
999999,
' '
FROM DUAL;
CREATE OR REPLACE VIEW wehk_v_kpi_cnt_soortfase
(
FCLT_XAS_,
FCLT_YAS_,
FCLT_YAS2_,
FCLT_YAS3_,
FCLT_YAS4_,
FCLT_YAS5_,
FCLT_SORT
)
AS
WITH contracten
AS (SELECT cnt_contract_key, ins_discipline_key,
CASE
WHEN SYSDATE < cnt_contract_looptijd_van
THEN 'Toekomstig'
WHEN SYSDATE BETWEEN cnt_contract_looptijd_van AND cnt.cnt_getrappeldatum (cnt_contract_key)
THEN 'Actueel'
WHEN SYSDATE BETWEEN cnt.cnt_getopzegdatum (cnt_contract_key) AND cnt_contract_looptijd_tot
THEN 'In opzegtermijn'
WHEN SYSDATE > cnt_contract_looptijd_tot
THEN 'Verlopen'
ELSE 'Rappel'
END
contractfase
FROM cnt_v_aanwezigcontract
WHERE cnt_contract_status = 0 -- Actief
AND ins_discipline_key IN (1561, 1562, 1563, 1564, 1565))
SELECT cd.ins_discipline_omschrijving,
SUM (DECODE (SUBSTR (c.contractfase, 1, 1), 'T', 1, 0)) toekomstig,
SUM (DECODE (SUBSTR (c.contractfase, 1, 1), 'A', 1, 0)) actueel,
SUM (DECODE (SUBSTR (c.contractfase, 1, 1), 'R', 1, 0)) rappel,
SUM (DECODE (SUBSTR (c.contractfase, 1, 1), 'I', 1, 0)) opzeg,
SUM (DECODE (SUBSTR (c.contractfase, 1, 1), 'V', 1, 0)) verlopen,
0 - COUNT ( * )
FROM contracten c, cnt_discipline cd
WHERE c.ins_discipline_key = cd.ins_discipline_key
GROUP BY cd.ins_discipline_omschrijving;
CREATE OR REPLACE VIEW wehk_v_kpi_cnt_bandsfase
(
FCLT_XAS_,
FCLT_YAS_,
FCLT_YAS2_,
FCLT_YAS3_,
FCLT_YAS4_,
FCLT_YAS5_,
FCLT_SORT
)
AS
WITH contracten
AS (SELECT cnt_contract_key,
CASE
WHEN SYSDATE < cnt_contract_looptijd_van
THEN 'Toekomstig'
WHEN SYSDATE BETWEEN cnt_contract_looptijd_van AND cnt.cnt_getrappeldatum (cnt_contract_key)
THEN 'Actueel'
WHEN SYSDATE BETWEEN cnt.cnt_getopzegdatum (cnt_contract_key) AND cnt_contract_looptijd_tot
THEN 'In opzegtermijn'
WHEN SYSDATE > cnt_contract_looptijd_tot
THEN 'Verlopen'
ELSE 'Rappel'
END
contractfase
FROM cnt_v_aanwezigcontract
WHERE cnt_contract_status = 0 -- Actief
AND ins_discipline_key IN (1561, 1562, 1563, 1564, 1565))
SELECT COALESCE (afd2.fac_usrdata_omschr, '???') afd2,
SUM (DECODE (SUBSTR (c.contractfase, 1, 1), 'T', 1, 0)) toekomstig,
SUM (DECODE (SUBSTR (c.contractfase, 1, 1), 'A', 1, 0)) actueel,
SUM (DECODE (SUBSTR (c.contractfase, 1, 1), 'R', 1, 0)) rappel,
SUM (DECODE (SUBSTR (c.contractfase, 1, 1), 'I', 1, 0)) opzeg,
SUM (DECODE (SUBSTR (c.contractfase, 1, 1), 'V', 1, 0)) verlopen,
0 - COUNT ( * )
FROM contracten c,
(SELECT kc.cnt_contract_key, ud.fac_usrdata_key, ud.fac_usrdata_omschr
FROM cnt_kenmerkcontract kc, cnt_kenmerk k, fac_usrdata ud
WHERE kc.cnt_kenmerkcontract_verwijder IS NULL
AND kc.cnt_kenmerk_key = k.cnt_kenmerk_key
AND k.cnt_kenmerk_verwijder IS NULL
AND k.cnt_srtkenmerk_key = 288 -- Afdeling 1e level Aanvrager
AND kc.cnt_kenmerkcontract_waarde = TO_CHAR (ud.fac_usrdata_key)) afd1,
(SELECT kc.cnt_contract_key, ud.fac_usrdata_key, ud.fac_usrdata_omschr
FROM cnt_kenmerkcontract kc, cnt_kenmerk k, fac_usrdata ud
WHERE kc.cnt_kenmerkcontract_verwijder IS NULL
AND kc.cnt_kenmerk_key = k.cnt_kenmerk_key
AND k.cnt_kenmerk_verwijder IS NULL
AND k.cnt_srtkenmerk_key = 289 -- Afdeling 2e level Aanvrager
AND kc.cnt_kenmerkcontract_waarde = TO_CHAR (ud.fac_usrdata_key)) afd2
WHERE c.cnt_contract_key = afd1.cnt_contract_key
AND afd1.fac_usrdata_key = 2967 -- Buying and Sales
AND c.cnt_contract_key = afd2.cnt_contract_key(+)
GROUP BY COALESCE (afd2.fac_usrdata_omschr, '???');
CREATE OR REPLACE VIEW wehk_v_kpi_cnt_afloop
AS
SELECT c.cnt_contract_key,
c.cnt_contract_nummer_intern || '.' || COALESCE (c.cnt_contract_versie, '0') contractid,
TO_CHAR (c.cnt_contract_looptijd_tot, 'yyyy-mm') afloopmaand
FROM cnt_v_aanwezigcontract c, cnt_discipline cd
WHERE c.cnt_contract_status = 0 -- Actief
AND c.cnt_contract_looptijd_tot BETWEEN TRUNC (SYSDATE, 'mm') AND ADD_MONTHS (TRUNC (SYSDATE, 'mm'), 24) - 1 -- 24 maanden in toekomst
AND c.ins_discipline_key = cd.ins_discipline_key
AND cd.ins_discipline_key IN (1561, 1562, 1563, 1564, 1565);
-- WEHK#40548: Openstaande meldingen per locatie/vakgroep (anders dan ongeval)
CREATE OR REPLACE VIEW wehk_v_rtm_meld_locvg
AS
SELECT m.mld_melding_key,
l.alg_locatie_key,
l.alg_locatie_code,
l.alg_locatie_omschrijving,
sm.mld_stdmelding_key,
sm.mld_stdmelding_omschrijving,
md.ins_discipline_key,
md.ins_discipline_omschrijving,
COALESCE (l.alg_locatie_code, 'Onbekend') || '-' || md.ins_discipline_omschrijving locvg
FROM mld_melding m, alg_locatie l, mld_stdmelding sm, mld_discipline md
WHERE m.mld_melding_status IN (2, 3, 4, 7, 0, 99) -- 2-Ingevoerd, 3-Ingezien, 4-Geaccepteerd, 7-Uitgegeven, 0-Pending, 99-Niet opgelost
AND m.mld_alg_locatie_key = l.alg_locatie_key(+)
AND m.mld_stdmelding_key = sm.mld_stdmelding_key
AND sm.mld_ins_discipline_key = md.ins_discipline_key
AND md.ins_srtdiscipline_key != 41;
-- WEHK#40548: Openstaande meldingen per locatie/vakgroep (anders dan ongeval)
CREATE OR REPLACE VIEW WEHK_V_RTM_MELD_LOCVGSLA
(
MLD_MELDING_KEY,
ALG_LOCATIE_KEY,
ALG_LOCATIE_CODE,
ALG_LOCATIE_OMSCHRIJVING,
MLD_STDMELDING_KEY,
MLD_STDMELDING_OMSCHRIJVING,
INS_DISCIPLINE_KEY,
INS_DISCIPLINE_OMSCHRIJVING,
LOCVG,
MLDSTART,
MLDEIND_RESPIJT,
SLA
)
AS
SELECT m.mld_melding_key,
l.alg_locatie_key,
l.alg_locatie_code,
l.alg_locatie_omschrijving,
sm.mld_stdmelding_key,
sm.mld_stdmelding_omschrijving,
md.ins_discipline_key,
md.ins_discipline_omschrijving,
COALESCE (l.alg_locatie_code, 'Onbekend')
|| '-'
|| md.ins_discipline_omschrijving
locvg,
fac.gettrackingdate ('MLDNEW', m.mld_melding_key),
m.mld_melding_einddatum_std,
CASE
WHEN (COALESCE( fac.gettrackingdate ('MLDAFM', m.mld_melding_key), (SYSDATE))
<= m.mld_melding_einddatum)
THEN
'Binnen'
ELSE
'Buiten'
END
binnen_buiten_SLA
FROM mld_melding m,
alg_locatie l,
mld_stdmelding sm,
mld_discipline md
WHERE m.mld_melding_status IN (2, 3, 4, 7, 0, 99) -- 2-Ingevoerd, 3-Ingezien, 4-Geaccepteerd, 7-Uitgegeven, 0-Pending, 99-Niet opgelost
AND m.mld_alg_locatie_key = l.alg_locatie_key(+)
AND m.mld_stdmelding_key = sm.mld_stdmelding_key
AND sm.mld_ins_discipline_key = md.ins_discipline_key
AND md.ins_srtdiscipline_key != 41;
-- WEHK#40548: Openstaande ongeval-meldingen per locatie/soortmelding
CREATE OR REPLACE VIEW WEHK_V_RTM_ONGEVAL_LOCSM
(
MLD_MELDING_KEY,
ALG_LOCATIE_KEY,
ALG_LOCATIE_CODE,
ALG_LOCATIE_OMSCHRIJVING,
MLD_STDMELDING_KEY,
MLD_STDMELDING_OMSCHRIJVING,
INS_DISCIPLINE_KEY,
INS_DISCIPLINE_OMSCHRIJVING,
LOCSM
)
AS
SELECT m.mld_melding_key,
l.alg_locatie_key,
l.alg_locatie_code,
l.alg_locatie_omschrijving,
sm.mld_stdmelding_key,
sm.mld_stdmelding_omschrijving,
md.ins_discipline_key,
md.ins_discipline_omschrijving,
COALESCE (l.alg_locatie_code, 'Onbekend')
|| '-'
|| sm.mld_stdmelding_omschrijving
locsm
FROM mld_melding m,
alg_locatie l,
mld_stdmelding sm,
mld_discipline md
WHERE m.mld_alg_locatie_key = l.alg_locatie_key(+)
AND m.mld_stdmelding_key = sm.mld_stdmelding_key
AND sm.mld_ins_discipline_key = md.ins_discipline_key
AND sm.mld_ins_discipline_key IN (1641, 1642, 1643, 1644) -- Enkel de 4 nieuwe discipline key, voor de nieuwe ongevalsmeldingen
AND md.ins_srtdiscipline_key = 41;
-- WEHK#40548: Openstaande ongeval-meldingen per locatie/soortmelding
CREATE OR REPLACE VIEW WEHK_V_RTM_ONGEVAL_LOCSMSLA
(
MLD_MELDING_KEY,
ALG_LOCATIE_KEY,
ALG_LOCATIE_CODE,
ALG_LOCATIE_OMSCHRIJVING,
MLD_STDMELDING_KEY,
MLD_STDMELDING_OMSCHRIJVING,
INS_DISCIPLINE_KEY,
INS_DISCIPLINE_OMSCHRIJVING,
LOCSM,
MLDSTART,
MLDEIND_RESPIJT,
SLA
)
AS
SELECT m.mld_melding_key,
l.alg_locatie_key,
l.alg_locatie_code,
l.alg_locatie_omschrijving,
sm.mld_stdmelding_key,
sm.mld_stdmelding_omschrijving,
md.ins_discipline_key,
md.ins_discipline_omschrijving,
COALESCE (l.alg_locatie_code, 'Onbekend')
|| '-'
|| sm.mld_stdmelding_omschrijving
locsm,
fac.gettrackingdate ('MLDNEW', m.mld_melding_key),
m.mld_melding_einddatum_std,
CASE
WHEN
(SYSDATE) -
(COALESCE
(FAC.datumtijdplusuitvoertijd(m.mld_melding_einddatum_std, m.mld_melding_t_respijt.tijdsduur, m.mld_melding_t_respijt.eenheid),
m.mld_melding_einddatum_std))
< 0
THEN 'Binnen'
ELSE 'Buiten'
END binnen_buiten_SLA
FROM mld_melding m,
alg_locatie l,
mld_stdmelding sm,
mld_discipline md
WHERE m.mld_melding_status IN (2, 3, 4, 7, 0, 99) -- 2-Ingevoerd, 3-Ingezien, 4-Geaccepteerd, 7-Uitgegeven, 0-Pending, 99-Niet opgelost
AND m.mld_alg_locatie_key = l.alg_locatie_key(+)
AND m.mld_stdmelding_key = sm.mld_stdmelding_key
AND sm.mld_ins_discipline_key = md.ins_discipline_key
AND sm.mld_ins_discipline_key IN (1641,1642,1643,1644) -- Enkel de 4 nieuwe discipline key, voor de nieuwe ongevalsmeldingen
AND md.ins_srtdiscipline_key = 41;
-- WEHK#40548: Openstaande opdrachten per (locatie/)leverancier
CREATE OR REPLACE VIEW wehk_v_rtm_opdr_lev
AS
SELECT o.mld_opdr_key,
o.mld_melding_key,
o.mld_opdr_bedrijfopdr_volgnr,
l.alg_locatie_key,
l.alg_locatie_code,
l.alg_locatie_omschrijving,
l.alg_locatie_code || '-' || b.prs_bedrijf_naam locuv,
'B' uv_type,
b.prs_bedrijf_naam uv
FROM mld_opdr o, prs_bedrijf b, mld_melding m, alg_locatie l
WHERE o.mld_statusopdr_key IN (3, 4, 5, 8, 10) -- 3-Ter fiattering, 4-Gefiatteerd, 5-Uitgegeven, 8-Geaccepteerd, Ter goedkeuring
AND o.mld_uitvoerende_keys = b.prs_bedrijf_key
AND o.mld_melding_key = m.mld_melding_key
AND m.mld_alg_locatie_key = l.alg_locatie_key(+)
UNION ALL
SELECT o.mld_opdr_key,
o.mld_melding_key,
o.mld_opdr_bedrijfopdr_volgnr,
l.alg_locatie_key,
l.alg_locatie_code,
l.alg_locatie_omschrijving,
l.alg_locatie_code || '-' || pf.prs_perslid_naam_full locuv,
'P' uv_type,
pf.prs_perslid_naam_full uv
FROM mld_opdr o, prs_v_perslid_fullnames_all pf, mld_melding m, alg_locatie l
WHERE o.mld_statusopdr_key IN (3, 4, 5, 8, 10) -- 3-Ter fiattering, 4-Gefiatteerd, 5-Uitgegeven, 8-Geaccepteerd, Ter goedkeuring
AND o.mld_uitvoerende_keys = pf.prs_perslid_key
AND o.mld_melding_key = m.mld_melding_key
AND m.mld_alg_locatie_key = l.alg_locatie_key(+);
-- WEHK#58706 Contracten met datum laatst gewijzigd.
CREATE OR REPLACE VIEW WEHK_CNT_V_CNTBEH_WIJZIG
(
CONTRACT_KEY,
CONTRACT_NR,
CONTRACT_OMSCH,
CONTRACT_BEHEERDER,
LOOPTIJD_VAN,
LOOPTIJD_TOT,
CONTRACT_FASE,
STATUS,
CONTRACT_KOSTEN,
LAATSTE_WIJZIG_DATUM
)
AS
SELECT CNT_CONTRACT_KEY,
COALESCE (CNT_CONTRACT_NUMMER_INTERN, TO_CHAR (CNT_CONTRACT_KEY)),
CNT_CONTRACT_OMSCHRIJVING,
(select prs_perslid_naam_friendly from prs_v_perslid_fullnames where prs_perslid_key = prs_perslid_key_beh ) daan,
c.CNT_CONTRACT_LOOPTIJD_VAN,
CNT_CONTRACT_LOOPTIJD_TOT,
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,
CNT_CONTRACT_KOSTEN,
(SELECT MAX (fac_tracking_datum)
FROM fac_tracking ft, fac_srtnotificatie sn
WHERE fac_tracking_refkey = cnt_contract_key
AND sn.fac_srtnotificatie_key = ft.fac_srtnotificatie_key
AND sn.fac_srtnotificatie_xmlnode = 'contract')
LAATST_GEWIJZIGD
FROM cnt_contract c
WHERE c.cnt_contract_verwijder IS NULL;
-- WEHK#40548: Afgehandelde meldingen per (locatie/)maand
CREATE OR REPLACE VIEW wehk_v_rtm_meld_afm_mnd
AS
SELECT m.mld_melding_key,
l.alg_locatie_key,
l.alg_locatie_code,
l.alg_locatie_omschrijving,
sm.mld_stdmelding_key,
sm.mld_stdmelding_omschrijving,
md.ins_discipline_key,
md.ins_discipline_omschrijving,
l.alg_locatie_code || '-' || TO_CHAR (t.fac_tracking_datum, 'yyyy-mm') locmnd,
TO_CHAR (t.fac_tracking_datum, 'yyyy-mm') mnd,
DECODE (SUBSTR (TO_CHAR (t.fac_tracking_datum, 'yyyymm'), 5),
'01', 'Januari',
'02', 'Februari',
'03', 'Maart',
'04', 'April',
'05', 'Mei',
'06', 'Juni',
'07', 'Juli',
'08', 'Augustus',
'09', 'September',
'10', 'Oktober',
'11', 'November',
'December')
mnd_oms
FROM mld_melding m, alg_locatie l, mld_stdmelding sm, mld_discipline md, fac_tracking t
WHERE m.mld_melding_status IN (5, 6) -- 5-Afgemeld, 6-Verwerkt
AND m.mld_alg_locatie_key = l.alg_locatie_key(+)
AND m.mld_stdmelding_key = sm.mld_stdmelding_key
AND sm.mld_ins_discipline_key = md.ins_discipline_key
AND m.mld_melding_key = t.fac_tracking_refkey
AND t.fac_srtnotificatie_key = 18 -- MLDAFM
AND t.fac_tracking_datum BETWEEN ADD_MONTHS (TRUNC (SYSDATE, 'mm'), -11) AND SYSDATE;
-- WEHK#53429: Notificatiejob nieuwe ongevalsmeldingen:
CREATE OR REPLACE VIEW wehk_v_rap_newmldongeval
(
locatie,
locatiecode,
locatieomschrijving,
hrmedewerker,
melding_key,
trackdatum,
datum,
tijd,
invoerder,
aanvrager,
behandelaar,
stdmeldingomschrijving,
meldingonderwerp,
meldingomschrijving
)
AS
SELECT l.alg_locatie_omschrijving,
l.alg_locatie_code,
l.alg_locatie_omschrijving,
COALESCE (
(SELECT fac.safe_to_number (alg_onrgoedkenmerk_waarde)
FROM alg_onrgoedkenmerk
WHERE alg_kenmerk_key = 1140 --Kenmerk 'Persoon ongevalsmelding' bij locatie
AND alg_onrgoed_niveau = 'L'
AND alg_onrgoedkenmerk_verwijder IS NULL
AND alg_onrgoed_key = l.alg_locatie_key),
2693) hrmedewerker,
m.mld_melding_key,
t.fac_tracking_datum trackingdatum,
TRUNC (t.fac_tracking_datum) datum,
SUBSTR (t.fac_tracking_datum, 12, 8) tijd,
t.prs_perslid_key invoerder,
m.prs_perslid_key_voor aanvrager,
m.mld_melding_behandelaar_key behandelaar,
sm.mld_stdmelding_omschrijving,
m.mld_melding_onderwerp,
m.mld_melding_omschrijving
FROM mld_melding m,
mld_stdmelding sm,
ins_tab_discipline d,
fac_tracking t,
alg_locatie l
WHERE ( t.fac_tracking_refkey = m.mld_melding_key
AND m.mld_alg_locatie_key = l.alg_locatie_key
AND l.alg_locatie_verwijder IS NULL
AND t.fac_srtnotificatie_key = 21
AND m.mld_stdmelding_key = sm.mld_stdmelding_key
AND sm.mld_ins_discipline_key = d.ins_discipline_key
AND d.ins_srtdiscipline_key = 41
AND TRUNC (t.fac_tracking_datum) = TRUNC (SYSDATE)
AND TO_CHAR (t.fac_tracking_datum, 'HH24') =
TO_CHAR (SYSDATE - 1 / 24, 'HH24'))
OR ( t.fac_tracking_refkey = m.mld_melding_key
AND m.mld_alg_locatie_key = l.alg_locatie_key
AND l.alg_locatie_verwijder IS NULL
AND t.fac_srtnotificatie_key = 21
AND m.mld_stdmelding_key = sm.mld_stdmelding_key
AND sm.mld_ins_discipline_key = d.ins_discipline_key
AND d.ins_srtdiscipline_key = 41
AND TRUNC (t.fac_tracking_datum) = TRUNC (SYSDATE - 1)
AND TO_CHAR (t.fac_tracking_datum, 'HH24') =
TO_CHAR (SYSDATE - 1 / 24, 'HH24')
AND TO_CHAR (SYSDATE - 1 / 24, 'HH24') = 23);
-- Rapportage t.b.v. facturatieschema
CREATE OR REPLACE VIEW WEHK_V_RAP_FACTUURSCHEMA
(
CONTRACTKEY,
CONTRACT_NUMMER,
CONTRACTSOORT,
INKOOPCATEGORIE_1E_LEVEL,
INKOOPSCATEGORIE_2E_LEVEL,
AFDELING_LEVEL1_AANVRAGER,
AFDELING_LEVEL2_AANVRAGER,
BEDRIJFSNAAM,
CONTRACT_OMSCHRIJVING,
FACTUURMAAND,
BEDRAG,
OPMERKING
)
AS
SELECT c.cnt_contract_key,
c.cnt_contract_nummer_intern,
cd.ins_discipline_omschrijving,
(SELECT fac_usrdata_omschr
FROM fac_usrdata
WHERE fac_usrdata_key =
(SELECT ckc.cnt_kenmerkcontract_waarde
FROM cnt_kenmerkcontract ckc, cnt_kenmerk ck
WHERE ckc.cnt_contract_key = c.cnt_contract_key
AND ckc.cnt_kenmerk_key = ck.cnt_kenmerk_key
AND ck.cnt_srtkenmerk_key = 319))
inkoop1,
(SELECT fac_usrdata_omschr
FROM fac_usrdata
WHERE fac_usrdata_key =
(SELECT ckc.cnt_kenmerkcontract_waarde
FROM cnt_kenmerkcontract ckc, cnt_kenmerk ck
WHERE ckc.cnt_contract_key = c.cnt_contract_key
AND ckc.cnt_kenmerk_key = ck.cnt_kenmerk_key
AND ck.cnt_srtkenmerk_key = 320))
inkoop2,
(SELECT fac_usrdata_omschr
FROM fac_usrdata
WHERE fac_usrdata_key =
(SELECT ckc.cnt_kenmerkcontract_waarde
FROM cnt_kenmerkcontract ckc, cnt_kenmerk ck
WHERE ckc.cnt_contract_key = c.cnt_contract_key
AND ckc.cnt_kenmerk_key = ck.cnt_kenmerk_key
AND ck.cnt_srtkenmerk_key = 288))
afdeling1,
(SELECT fac_usrdata_omschr
FROM fac_usrdata
WHERE fac_usrdata_key =
(SELECT ckc.cnt_kenmerkcontract_waarde
FROM cnt_kenmerkcontract ckc, cnt_kenmerk ck
WHERE ckc.cnt_contract_key = c.cnt_contract_key
AND ckc.cnt_kenmerk_key = ck.cnt_kenmerk_key
AND ck.cnt_srtkenmerk_key = 289))
afdeling2,
pb.prs_bedrijf_naam,
c.cnt_contract_omschrijving,
cf.cnt_factuurschema_boekmaand,
cf.cnt_factuurschema_bedrag,
cf.cnt_factuurschema_opmerking
FROM cnt_factuurschema cf,
cnt_contract c,
cnt_v_aanwezigdiscipline cd,
prs_bedrijf pb
WHERE c.cnt_contract_key = cf.cnt_contract_key
AND c.cnt_contract_verwijder IS NULL -- niet verwijderd
AND c.ins_discipline_key = cd.ins_discipline_key
AND c.cnt_prs_bedrijf_key = pb.prs_bedrijf_key;
-- WEHK#53429: Notificatiejob nieuwe ongevalsmeldingen:
CREATE OR REPLACE VIEW WEHK_V_NOTI_NEWMLDONGEVAL
(
CODE,
SENDER,
RECEIVER,
TEXT,
KEY,
XKEY,
XEMAIL,
XMOBILE
)
AS
SELECT 'CUST05',
NULL,
mldv.hrmedewerker,
( 'Er is een nieuwe ongevalsmelding ('
|| 'o /'
|| mldv.melding_key
|| ') op locatie '
|| mldv.locatieomschrijving),
mldv.melding_key,
NULL,
NULL,
NULL
FROM WEHK_V_RAP_NEWMLDONGEVAL mldv;
CREATE OR REPLACE VIEW WEHK_V_NOTI_OPVOERENCONTRACT
(
CODE,
SENDER,
RECEIVER,
TEXT,
KEY,
XKEY,
XEMAIL,
XMOBILE
)
AS
-- Bij nieuwe "opvoeren contract" meldingen moet er een mail gaan naar
-- de verzamelbox van de contractafdeling, voor nu even mijn eigen ter test.
-- Flag = 1 instellen bij de notificatiejob! (i.v.m. xemail)
SELECT 'CUST06',
NULL,
NULL,
( 'Er staat een nieuwe melding voor opvoeren contract voor u klaar ('
|| 'i /'
|| m.mld_melding_key)
|| ')',
m.mld_melding_key,
NULL,
'contracten@wehkamp.nl',
NULL
FROM mld_melding m,
fac_tracking t
WHERE m.mld_stdmelding_key = 1641
AND m.mld_melding_key = t.fac_tracking_refkey
AND t.fac_srtnotificatie_key =
(SELECT fac_srtnotificatie_key
FROM fac_srtnotificatie
WHERE fac_srtnotificatie_code = 'MLDNEW')
AND t.fac_tracking_datum BETWEEN (SELECT fac_notificatie_job_nextrun
- fac_notificatie_job_interval
/ 24
FROM fac_notificatie_job
WHERE fac_notificatie_job_view =
'WEHK_V_NOTI_OPVOERENCONTRACT')
AND (SELECT fac_notificatie_job_nextrun
FROM fac_notificatie_job
WHERE fac_notificatie_job_view =
'WEHK_V_NOTI_OPVOERENCONTRACT');
-- Melding naar de in de coversheet melding geselecteerde goedkeurder.
-- Flag 8 instellen voor XSENDER!
CREATE OR REPLACE VIEW WEHK_V_NOTI_GOEDKEURDER
(
CODE,
SENDER,
RECEIVER,
TEXT,
KEY,
XKEY,
XSENDER,
XEMAIL,
XMOBILE
)
AS
SELECT 'CUST07',
NULL,
mkm.mld_kenmerkmelding_waarde,
'Er staat een coversheet voor u klaar ter goedkeuring ('
|| 'i /'
|| m.mld_melding_key
|| ')',
m.mld_melding_key,
NULL,
'coversheet@wehk.facilitor.nl',
NULL,
NULL
FROM mld_melding m, mld_kenmerkmelding mkm, mld_kenmerk mk, fac_tracking t
WHERE m.mld_stdmelding_key IN (1621, 1622, 1623, 1624, 1625) -- een van de goedkeuringsmeldingen
AND mkm.mld_kenmerk_key = mk.mld_kenmerk_key
AND mkm.mld_melding_key = m.mld_melding_key
AND mk.mld_srtkenmerk_key = 1847
AND t.fac_tracking_refkey = m.mld_melding_key
AND t.fac_srtnotificatie_key =
(SELECT fac_srtnotificatie_key
FROM fac_srtnotificatie
WHERE fac_srtnotificatie_code = 'MLDNEW')
AND t.fac_tracking_datum BETWEEN (SELECT fac_notificatie_job_nextrun
- fac_notificatie_job_interval
/ 24
FROM fac_notificatie_job
WHERE fac_notificatie_job_view =
'WEHK_V_NOTI_GOEDKEURDER')
AND (SELECT fac_notificatie_job_nextrun
FROM fac_notificatie_job
WHERE fac_notificatie_job_view =
'WEHK_V_NOTI_GOEDKEURDER');
------ 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