Files
Customer/WEHK/WEHK.sql
Ruud Lipper 653ea8c594 WEHK#36098 contracten met status gesloten (1) niet meer notificeren
svn path=/Customer/trunk/; revision=29083
2016-04-20 14:00:59 +00:00

2563 lines
112 KiB
SQL

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