3810 lines
161 KiB
MySQL
3810 lines
161 KiB
MySQL
-- Script containing customer specific configuration sql statements for Hout
|
||
-- (c) 2007 Facilitor Software Nederland/Dijkoraad IT bv
|
||
-- $Revision$
|
||
-- $Id$
|
||
--
|
||
-- Support: +31 53 4800700
|
||
|
||
set echo on
|
||
|
||
spool xhout.lst
|
||
|
||
CREATE OR REPLACE VIEW hout_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 = 161);
|
||
|
||
CREATE OR REPLACE PROCEDURE hout_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_first_time BOOLEAN;
|
||
v_count_error NUMBER(10);
|
||
v_count_tot NUMBER(10);
|
||
v_count_import NUMBER(10);
|
||
|
||
-- De importvelden:
|
||
v_alg_locatie_code VARCHAR2(256); -- 01
|
||
v_alg_gebouw_code VARCHAR2(256);
|
||
v_alg_verdieping_volgnr VARCHAR2(256);
|
||
v_alg_ruimte_nr VARCHAR2(256);
|
||
v_prs_afdeling_naam VARCHAR2(256); -- 05
|
||
v_prs_perslid_naam VARCHAR2(256);
|
||
v_prs_perslid_tussenvoegsel VARCHAR2(256);
|
||
v_prs_perslid_voorletters VARCHAR2(256);
|
||
v_prs_perslid_voornaam VARCHAR2(256);
|
||
v_prs_perslid_titel VARCHAR2(256); -- 10
|
||
v_prs_perslid_telefoonnr 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); -- 15
|
||
v_prs_perslid_oslogin VARCHAR2(256);
|
||
|
||
-- Overig
|
||
v_alg_verdieping_volgnr_num NUMBER(3);
|
||
v_prs_werkplek_volgnr_num NUMBER(3);
|
||
v_prs_werkplek_omschrijving VARCHAR2(256);
|
||
v_prs_werkplek_volgnr VARCHAR2(256);
|
||
|
||
-- PRS_BEDRIJF
|
||
CURSOR c1(p_import_key IN 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;
|
||
|
||
-- Tot slot Procedures:
|
||
|
||
PROCEDURE local_imp_getfield (
|
||
p_parseline IN OUT VARCHAR2,
|
||
p_fielddelimitor IN VARCHAR2,
|
||
p_field OUT VARCHAR2
|
||
)
|
||
AS
|
||
v_firstdelim NUMBER;
|
||
BEGIN
|
||
v_firstdelim := INSTR (p_parseline, p_fielddelimitor, 1);
|
||
|
||
IF v_firstdelim = 0
|
||
THEN
|
||
p_field := SUBSTR(trim(p_parseline), 2, length(p_parseline)-2);
|
||
p_parseline := '';
|
||
RETURN;
|
||
END IF;
|
||
|
||
p_field := SUBSTR(TRIM(p_parseline), 2, v_firstdelim - 3); -- Waarom 3? Om de quotes eraf te halen
|
||
p_parseline := SUBSTR2 (p_parseline, v_firstdelim + 1);
|
||
RETURN;
|
||
END;
|
||
|
||
|
||
BEGIN
|
||
DELETE FROM hout_imp_prs;
|
||
|
||
COMMIT;
|
||
|
||
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;
|
||
v_newline := rec1. fac_imp_file_line;
|
||
v_count_tot := v_count_tot + 1;
|
||
|
||
IF (v_count_tot = 1) THEN
|
||
-- Sla header-regel over
|
||
FETCH c1 INTO rec1;
|
||
EXIT WHEN c1%NOTFOUND;
|
||
v_newline := rec1. fac_imp_file_line;
|
||
END IF;
|
||
|
||
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
|
||
local_imp_getfield (v_newline,
|
||
C_FIELDDELIMITOR,
|
||
v_alg_locatie_code
|
||
);
|
||
-- 02
|
||
local_imp_getfield (v_newline,
|
||
C_FIELDDELIMITOR,
|
||
v_alg_gebouw_code
|
||
);
|
||
-- 03
|
||
local_imp_getfield (v_newline,
|
||
C_FIELDDELIMITOR,
|
||
v_alg_verdieping_volgnr
|
||
);
|
||
-- 04
|
||
local_imp_getfield (v_newline,
|
||
C_FIELDDELIMITOR,
|
||
v_alg_ruimte_nr
|
||
);
|
||
-- 05
|
||
local_imp_getfield (v_newline,
|
||
C_FIELDDELIMITOR,
|
||
v_prs_afdeling_naam
|
||
);
|
||
-- 06
|
||
local_imp_getfield (v_newline,
|
||
C_FIELDDELIMITOR,
|
||
v_prs_perslid_naam
|
||
);
|
||
-- 07
|
||
local_imp_getfield (v_newline,
|
||
C_FIELDDELIMITOR,
|
||
v_prs_perslid_tussenvoegsel
|
||
);
|
||
-- 08
|
||
local_imp_getfield (v_newline,
|
||
C_FIELDDELIMITOR,
|
||
v_prs_perslid_voorletters
|
||
);
|
||
-- 09
|
||
local_imp_getfield (v_newline,
|
||
C_FIELDDELIMITOR,
|
||
v_prs_perslid_voornaam
|
||
);
|
||
-- 10
|
||
local_imp_getfield (v_newline,
|
||
C_FIELDDELIMITOR,
|
||
v_prs_perslid_titel
|
||
);
|
||
-- 11
|
||
local_imp_getfield (v_newline,
|
||
C_FIELDDELIMITOR,
|
||
v_prs_perslid_telefoonnr
|
||
);
|
||
-- 12
|
||
local_imp_getfield (v_newline,
|
||
C_FIELDDELIMITOR,
|
||
v_prs_perslid_mobiel
|
||
);
|
||
-- 13
|
||
local_imp_getfield (v_newline,
|
||
C_FIELDDELIMITOR,
|
||
v_prs_perslid_email
|
||
);
|
||
-- 14
|
||
local_imp_getfield (v_newline,
|
||
C_FIELDDELIMITOR,
|
||
v_prs_srtperslid_omschrijving
|
||
);
|
||
-- 15
|
||
local_imp_getfield (v_newline,
|
||
C_FIELDDELIMITOR,
|
||
v_prs_perslid_nr
|
||
);
|
||
-- 16
|
||
local_imp_getfield (v_newline,
|
||
C_FIELDDELIMITOR,
|
||
v_prs_perslid_oslogin
|
||
);
|
||
--
|
||
|
||
v_aanduiding := v_prs_perslid_naam||'|'||v_prs_perslid_voornaam||' - ';
|
||
|
||
-- 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||']';
|
||
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 := 'Ongeldig werkplek volgnummer';
|
||
v_prs_werkplek_volgnr := trim(v_prs_werkplek_volgnr);
|
||
IF (v_prs_werkplek_volgnr IS NULL) THEN
|
||
v_prs_werkplek_volgnr_num := TO_NUMBER(v_prs_werkplek_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 werkplek omschrijving';
|
||
v_prs_werkplek_omschrijving := trim(v_prs_werkplek_omschrijving);
|
||
IF LENGTH (v_prs_werkplek_omschrijving) > 30
|
||
THEN
|
||
v_prs_werkplek_omschrijving:= SUBSTR(v_prs_werkplek_omschrijving,1,30);
|
||
fac.imp_writelog(p_import_key
|
||
,'W'
|
||
,v_aanduiding||'Werkplek-aanduiding is te lang'
|
||
,'Aanduiding wordt afgebroken tot [' || v_prs_werkplek_omschrijving || ']'
|
||
);
|
||
END IF;
|
||
--
|
||
v_errorhint := 'Ongeldige afdelingscode';
|
||
v_prs_afdeling_naam := trim(v_prs_afdeling_naam);
|
||
IF LENGTH (v_prs_afdeling_naam) > 10
|
||
THEN
|
||
v_prs_afdeling_naam:= SUBSTR(v_prs_afdeling_naam,1,10);
|
||
fac.imp_writelog(p_import_key
|
||
,'W'
|
||
,v_aanduiding||'Afdelingscode is te lang'
|
||
,'Aanduiding wordt afgebroken tot [' || v_prs_afdeling_naam || ']'
|
||
);
|
||
ELSE
|
||
IF (v_prs_afdeling_naam IS NULL) THEN
|
||
v_ongeldig := 1;
|
||
fac.imp_writelog(p_import_key
|
||
,'E'
|
||
,v_aanduiding||'Afdelingscode onbekend'
|
||
,'Afdelingscode moet worden opgegeven'
|
||
);
|
||
END IF;
|
||
END IF;
|
||
--
|
||
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'
|
||
,v_aanduiding||'Naam persoon onbekend'
|
||
,'Naam persoon moet worden opgegeven'
|
||
);
|
||
END IF;
|
||
END IF;
|
||
--
|
||
v_errorhint := 'Ongeldige tussenvoegsel persoon';
|
||
v_prs_perslid_tussenvoegsel := trim(v_prs_perslid_tussenvoegsel);
|
||
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 := '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 := '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_ongeldig := 1;
|
||
fac.imp_writelog(p_import_key
|
||
,'E'
|
||
,v_aanduiding||'Voornaam persoon onbekend'
|
||
,'Voornaam persoon moet worden opgegeven'
|
||
);
|
||
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 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;
|
||
--
|
||
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 bedrijf/afdeling ['||v_prs_afdeling_naam||']';
|
||
|
||
INSERT INTO HOUT_IMP_PRS (
|
||
alg_locatie_code
|
||
,alg_gebouw_code
|
||
,alg_verdieping_volgnr
|
||
,alg_ruimte_nr
|
||
,prs_afdeling_naam
|
||
,prs_perslid_naam
|
||
,prs_perslid_tussenvoegsel
|
||
,prs_perslid_voorletters
|
||
,prs_perslid_voornaam
|
||
,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_tussenvoegsel
|
||
,v_prs_perslid_voorletters
|
||
,v_prs_perslid_voornaam
|
||
,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
|
||
);
|
||
|
||
commit;
|
||
|
||
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 ongeldige importregels: '||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 hout_import_prs;
|
||
/
|
||
|
||
/* Formatted on 13-9-2012 17:38:08 (QP5 v5.115.810.9015) */
|
||
CREATE OR REPLACE PROCEDURE hout_update_prs (p_import_key IN NUMBER)
|
||
IS
|
||
-- LET OP: moet idem zijn als declaratie bij HOUT_IMPORT_PRS
|
||
c_persoon_inactief VARCHAR (30) := 'INACTIEF: ';
|
||
-- Maximaal percentage aan nieuwe medewerkers tov. actieve medewerkers met een nummer
|
||
c_max_delta_percentage NUMBER (10) := 20;
|
||
-- Ruimte waar personen in geplaatst worden (indien nog geen ruimte in opgegeven gebouw)
|
||
c_locatie_code VARCHAR2 (10) := 'RTD';
|
||
c_gebouw_code VARCHAR2 (10) := 'WT';
|
||
c_verdieping_volgnr NUMBER (10) := 99;
|
||
c_ruimte_nr VARCHAR2 (10) := '99.00';
|
||
-- Groep waar personen in geplaatst worden (indien nog geen groep)
|
||
c_groep_upper VARCHAR2 (30) := '_DEFAULT';
|
||
c_profiel_omschrijving VARCHAR (30) := 'DEFAULT';
|
||
v_errormsg VARCHAR2 (1000);
|
||
v_errorhint VARCHAR2 (1000);
|
||
oracle_err_num NUMBER;
|
||
oracle_err_mes VARCHAR2 (200);
|
||
v_aanduiding VARCHAR2 (200);
|
||
v_count_tot_new NUMBER (10);
|
||
v_count_tot_perslid NUMBER (10);
|
||
v_count_error NUMBER (10);
|
||
v_count_tot NUMBER (10);
|
||
v_count NUMBER (10);
|
||
--
|
||
v_srtperslid_key NUMBER (10);
|
||
v_afdeling_key NUMBER (10);
|
||
v_perslid_key NUMBER (10);
|
||
v_secretaresse 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 cdelprs
|
||
IS
|
||
SELECT p.prs_perslid_key,
|
||
p.prs_perslid_nr,
|
||
p.prs_perslid_naam,
|
||
p.prs_perslid_voornaam
|
||
FROM prs_perslid p, (SELECT *
|
||
FROM hout_imp_prs
|
||
WHERE prs_perslid_nr IS NOT NULL) p2
|
||
WHERE 1 = 1
|
||
AND p.prs_perslid_nr = p2.prs_perslid_nr(+)
|
||
AND p.prs_perslid_nr IS NOT NULL
|
||
AND p2.prs_perslid_nr IS NULL
|
||
AND p.prs_perslid_verwijder IS NULL;
|
||
|
||
recdelprs cdelprs%ROWTYPE;
|
||
|
||
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 hout_imp_prs
|
||
WHERE 1 = 1
|
||
GROUP BY UPPER (prs_srtperslid_omschrijving);
|
||
|
||
recsperslid csperslid%ROWTYPE;
|
||
|
||
CURSOR cperslid
|
||
IS
|
||
SELECT *
|
||
FROM hout_imp_prs
|
||
WHERE 1 = 1;
|
||
|
||
recperslid cperslid%ROWTYPE;
|
||
|
||
-- Let op! Personen die niet meer in dienst zijn -> niet in hout_imp_prs!
|
||
-- Alle personen met nummer (ie. de import-doelgroep) zonder werkplek
|
||
-- krijgen "fictieve" werkplek in locatie/gebouw volgens EMIS of anders
|
||
-- Rotterdam/Weena!
|
||
-- Dubbele nummers? Dan krijgt iemand mogelijk de verkeerde plaats!
|
||
CURSOR cwp
|
||
IS
|
||
SELECT p.*, ip.alg_locatie_code, ip.alg_gebouw_code
|
||
FROM hout_imp_prs ip, prs_v_aanwezigperslid p
|
||
WHERE UPPER (ip.prs_perslid_nr) = UPPER (p.prs_perslid_nr)
|
||
AND NOT EXISTS
|
||
(SELECT 1
|
||
FROM prs_perslidwerkplek pw
|
||
WHERE pw.prs_perslid_key = p.prs_perslid_key);
|
||
|
||
-- Alle actieve personen met nummer (ie. de import-doelgroep) en "fictieve"
|
||
-- werkplek (ie. ruimtenummer 99.00) worden gelogd.
|
||
CURSOR cnowp
|
||
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 p.prs_perslid_naam NOT LIKE c_persoon_inactief || '%'
|
||
AND EXISTS
|
||
(SELECT 1
|
||
FROM prs_perslidwerkplek pw,
|
||
prs_werkplek w,
|
||
alg_ruimte r
|
||
WHERE pw.prs_perslid_key = p.prs_perslid_key
|
||
AND pw.prs_werkplek_key = w.prs_werkplek_key
|
||
AND w.prs_alg_ruimte_key = r.alg_ruimte_key
|
||
AND r.alg_ruimte_upper_nr = c_ruimte_nr);
|
||
|
||
-- Alle personen met nummer (ie. de import-doelgroep) niet in een groep
|
||
-- komen in _DEFAULT.
|
||
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
|
||
SELECT COUNT ( * )
|
||
INTO v_count
|
||
FROM imp_log
|
||
WHERE fac_import_key = p_import_key;
|
||
|
||
SELECT DECODE (COUNT ( * ), 0, 1, COUNT ( * ))
|
||
INTO v_count_tot_perslid
|
||
FROM prs_perslid
|
||
WHERE prs_perslid_verwijder IS NULL AND prs_perslid_nr IS NOT NULL;
|
||
|
||
SELECT DECODE (COUNT ( * ), 0, 1, COUNT ( * ))
|
||
INTO v_count_tot_new
|
||
FROM prs_perslid p, fac_imp_perslid ip
|
||
WHERE p.prs_perslid_verwijder IS NULL
|
||
AND p.prs_perslid_nr IS NOT NULL
|
||
AND p.prs_perslid_nr = ip.prs_perslid_nr(+);
|
||
|
||
SELECT MAX (fac_profiel_key), COUNT ( * )
|
||
INTO v_profiel_key, v_count
|
||
FROM fac_profiel
|
||
WHERE UPPER (TRIM (fac_profiel_omschrijving)) = c_profiel_omschrijving;
|
||
|
||
IF (v_count = 0)
|
||
THEN
|
||
fac.imp_writelog (
|
||
p_import_key,
|
||
'I',
|
||
'Standaard profiel ['
|
||
|| c_profiel_omschrijving
|
||
|| '] niet gevonden.',
|
||
'Personen zonder profiel kunnen niet worden gekoppeld aan een profiel.'
|
||
);
|
||
COMMIT;
|
||
END IF;
|
||
|
||
IF ( (v_count > 0)
|
||
OR (TRUNC ( (v_count_tot_new / v_count_tot_perslid) * 100) >=
|
||
(100 - c_max_delta_percentage))
|
||
OR (TRUNC ( (v_count_tot_new / v_count_tot_perslid) * 100) <=
|
||
(100 + c_max_delta_percentage)))
|
||
THEN
|
||
-- Geldig importbestand wat betreft aantal inserts
|
||
OPEN cdelprs;
|
||
|
||
IF cdelprs%ISOPEN
|
||
THEN
|
||
LOOP
|
||
BEGIN
|
||
FETCH cdelprs INTO recdelprs;
|
||
|
||
EXIT WHEN cdelprs%NOTFOUND;
|
||
|
||
v_errorhint := 'Fout bij bepalen verplichtingen';
|
||
|
||
-- Heeft de persoon actuele/toekomstige verplichtigen?
|
||
SELECT COUNT ( * )
|
||
INTO v_count
|
||
FROM prs_v_verplichting_keys r
|
||
WHERE r.prs_perslid_key = recdelprs.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 = recdelprs.prs_perslid_key;
|
||
|
||
fac.imp_writelog (
|
||
p_import_key,
|
||
'I',
|
||
'Persoon met personeelsnummer ['
|
||
|| recdelprs.prs_perslid_nr
|
||
|| '] en naam ['
|
||
|| recdelprs.prs_perslid_naam
|
||
|| ', '
|
||
|| recdelprs.prs_perslid_voornaam
|
||
|| '] is verwijderd.',
|
||
'Persoon is verwijderd.'
|
||
);
|
||
COMMIT;
|
||
ELSE
|
||
-- Staat de persoon al op inactief?
|
||
v_errorhint := 'Fout bij bepalen INACTIEF';
|
||
|
||
SELECT COUNT ( * )
|
||
INTO v_count
|
||
FROM prs_perslid p
|
||
WHERE p.prs_perslid_naam LIKE c_persoon_inactief || '%'
|
||
AND p.prs_perslid_key = recdelprs.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,
|
||
prs_perslid_ingids = NULL
|
||
WHERE prs_perslid_key = recdelprs.prs_perslid_key;
|
||
|
||
fac.imp_writelog (
|
||
p_import_key,
|
||
'I',
|
||
'Persoon met personeelsnummer ['
|
||
|| recdelprs.prs_perslid_nr
|
||
|| '] en naam ['
|
||
|| recdelprs.prs_perslid_naam
|
||
|| ', '
|
||
|| recdelprs.prs_perslid_voornaam
|
||
|| '] is INACTIEF gemaakt.',
|
||
'Persoon is (voorlopig) 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,
|
||
prs_perslid_ingids = NULL
|
||
WHERE prs_perslid_naam LIKE c_persoon_inactief || '%'
|
||
AND (prs_perslid_oslogin IS NOT NULL
|
||
OR prs_perslid_ingids IS NOT NULL);
|
||
|
||
fac.imp_writelog (
|
||
p_import_key,
|
||
'I',
|
||
'Persoon met personeelsnummer ['
|
||
|| recdelprs.prs_perslid_nr
|
||
|| '] en naam ['
|
||
|| recdelprs.prs_perslid_naam
|
||
|| ', '
|
||
|| recdelprs.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_errormsg,
|
||
v_errorhint);
|
||
COMMIT;
|
||
END;
|
||
END LOOP;
|
||
|
||
COMMIT;
|
||
|
||
CLOSE cdelprs;
|
||
END IF;
|
||
|
||
-- Dezelfde persoon met hetzelfde personeelsnummer kan vaker voorkomen (1x actief + 1x inactief).
|
||
-- prs_perslid_nr hoeft niet uniek te zijn, prs_perslid_oslogin wel; vandaar onderstaande update.
|
||
UPDATE prs_perslid
|
||
SET prs_perslid_oslogin = NULL, prs_perslid_ingids = NULL
|
||
WHERE prs_perslid_naam LIKE c_persoon_inactief || '%'
|
||
AND (prs_perslid_oslogin IS NOT NULL
|
||
OR prs_perslid_ingids IS NOT NULL);
|
||
|
||
COMMIT;
|
||
|
||
OPEN csperslid;
|
||
|
||
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: '
|
||
|| TO_CHAR (v_count_error),
|
||
''
|
||
);
|
||
COMMIT;
|
||
|
||
CLOSE csperslid;
|
||
END IF;
|
||
|
||
OPEN cperslid;
|
||
|
||
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_nr
|
||
|| '|'
|
||
|| recperslid.prs_perslid_naam
|
||
|| '|'
|
||
|| recperslid.prs_perslid_voornaam
|
||
|| ' - ';
|
||
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 niet gevonden ['
|
||
|| recperslid.prs_afdeling_naam
|
||
|| ']';
|
||
|
||
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 UPPER (prs_perslid_nr) =
|
||
UPPER (recperslid.prs_perslid_nr);
|
||
|
||
IF (v_count > 1)
|
||
THEN
|
||
fac.imp_writelog (
|
||
p_import_key,
|
||
'E',
|
||
v_aanduiding || ' kan persoon niet 1-duidig bepalen',
|
||
v_errorhint
|
||
);
|
||
COMMIT;
|
||
ELSE
|
||
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_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,
|
||
recperslid.prs_perslid_oslogin,
|
||
v_profiel_key)
|
||
RETURNING prs_perslid_key INTO v_perslid_key;
|
||
ELSE
|
||
-- HOUT#24024: Secretaresse en huidige afdeling anders dan afdeling
|
||
-- volgens import, dan mandaat schonen (zo nodig wordt
|
||
-- mandaat voor nieuwe afdeling hierna weer toegekend).
|
||
v_errorhint := 'Fout bij bepalen WAS-secretaresse';
|
||
|
||
SELECT COUNT ( * )
|
||
INTO v_secretaresse
|
||
FROM prs_perslid p
|
||
WHERE p.prs_perslid_key = v_perslid_key
|
||
AND p.prs_afdeling_key != v_afdeling_key
|
||
AND EXISTS
|
||
(SELECT 1
|
||
FROM prs_afdeling a,
|
||
prs_kostenplaats k,
|
||
fac_usrdata ud
|
||
WHERE a.prs_afdeling_key =
|
||
p.prs_afdeling_key
|
||
AND a.prs_kostenplaats_key =
|
||
k.prs_kostenplaats_key
|
||
AND k.prs_kostenplaats_verwijder IS NULL
|
||
AND k.prs_kostenplaats_upper =
|
||
ud.fac_usrdata_upper
|
||
AND ud.fac_usrtab_key = 601 -- Kostenpl.mandaat
|
||
AND ud.fac_usrdata_verwijder IS NULL);
|
||
|
||
IF (v_secretaresse > 0)
|
||
THEN
|
||
v_errorhint := 'Fout bij schonen mandaat';
|
||
|
||
DELETE FROM prs_perslidkostenplaats
|
||
WHERE prs_perslid_key = v_perslid_key;
|
||
|
||
fac.imp_writelog (
|
||
p_import_key,
|
||
'I',
|
||
v_aanduiding || ' mandaat geschoond',
|
||
'WAS secretaresse'
|
||
);
|
||
END IF;
|
||
|
||
v_errorhint := 'Fout bij wijzigen persoon';
|
||
|
||
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_nr = recperslid.prs_perslid_nr,
|
||
prs_perslid_titel = recperslid.prs_perslid_titel,
|
||
prs_perslid_oslogin =
|
||
recperslid.prs_perslid_oslogin,
|
||
fac_profiel_key =
|
||
COALESCE (fac_profiel_key, v_profiel_key)
|
||
WHERE prs_perslid_key = v_perslid_key;
|
||
END IF;
|
||
|
||
COMMIT;
|
||
|
||
-- HOUT#24024: Indien nog nergens voor gemandateerd, dan secretaresses
|
||
-- mandateren voor alles!
|
||
v_errorhint := 'Fout bij bepalen WORDT-secretaresse';
|
||
|
||
SELECT COUNT ( * )
|
||
INTO v_secretaresse
|
||
FROM prs_afdeling a, prs_kostenplaats k, fac_usrdata ud
|
||
WHERE a.prs_afdeling_key = v_afdeling_key
|
||
AND a.prs_kostenplaats_key =
|
||
k.prs_kostenplaats_key
|
||
AND k.prs_kostenplaats_verwijder IS NULL
|
||
AND k.prs_kostenplaats_upper =
|
||
ud.fac_usrdata_upper
|
||
AND ud.fac_usrtab_key = 601 -- Kostenpl.mandaat
|
||
AND ud.fac_usrdata_verwijder IS NULL
|
||
AND NOT EXISTS
|
||
(SELECT 1
|
||
FROM prs_perslidkostenplaats pk
|
||
WHERE pk.prs_perslid_key = v_perslid_key);
|
||
|
||
IF (v_secretaresse > 0)
|
||
THEN
|
||
v_errorhint := 'Fout bij toekennen mandaat';
|
||
|
||
INSERT INTO prs_perslidkostenplaats pk (
|
||
prs_perslid_key,
|
||
prs_kostenplaats_key,
|
||
prs_perslidkostenplaats_boeken,
|
||
prs_perslidkostenplaats_inzage
|
||
)
|
||
VALUES (v_perslid_key,
|
||
NULL,
|
||
1,
|
||
1);
|
||
|
||
fac.imp_writelog (p_import_key,
|
||
'I',
|
||
v_aanduiding || ' mandaat toegekend',
|
||
'WORDT secretaresse');
|
||
|
||
COMMIT;
|
||
END IF;
|
||
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: '
|
||
|| TO_CHAR (v_count_error),
|
||
''
|
||
);
|
||
|
||
CLOSE cperslid;
|
||
END IF;
|
||
|
||
v_count_tot := 0;
|
||
v_count_error := 0;
|
||
|
||
FOR recwp IN cwp
|
||
LOOP
|
||
BEGIN
|
||
v_count_tot := v_count_tot + 1;
|
||
v_aanduiding :=
|
||
recwp.prs_perslid_nr
|
||
|| '|'
|
||
|| recwp.prs_perslid_naam
|
||
|| '|'
|
||
|| recwp.prs_perslid_voornaam
|
||
|| '|'
|
||
|| recwp.alg_locatie_code
|
||
|| '|'
|
||
|| recwp.alg_gebouw_code
|
||
|| ' - ';
|
||
v_errorhint := 'Fout bij bepalen persoon';
|
||
|
||
SELECT prs_perslid_key
|
||
INTO v_perslid_key
|
||
FROM prs_v_aanwezigperslid
|
||
WHERE UPPER (prs_perslid_nr) = UPPER (recwp.prs_perslid_nr);
|
||
|
||
v_locatie_key := NULL;
|
||
v_gebouw_key := NULL;
|
||
v_verdieping_key := NULL;
|
||
v_ruimte_key := NULL;
|
||
v_errorhint := 'Fout bij bepalen EMIS-locatie';
|
||
|
||
SELECT COUNT ( * )
|
||
INTO v_count
|
||
FROM alg_v_aanweziglocatie
|
||
WHERE alg_locatie_code = recwp.alg_locatie_code;
|
||
|
||
IF v_count = 1
|
||
THEN
|
||
SELECT alg_locatie_key
|
||
INTO v_locatie_key
|
||
FROM alg_v_aanweziglocatie
|
||
WHERE alg_locatie_code = recwp.alg_locatie_code;
|
||
ELSE -- Locatie bestaat niet (of >1 keer)!
|
||
fac.imp_writelog (p_import_key,
|
||
'I',
|
||
v_aanduiding || v_errorhint,
|
||
'Kan EMIS-locatie niet (1-duidig) bepalen!');
|
||
COMMIT;
|
||
END IF;
|
||
|
||
v_errorhint := 'Fout bij bepalen EMIS-gebouw';
|
||
|
||
IF v_locatie_key IS NOT NULL
|
||
THEN
|
||
SELECT COUNT ( * )
|
||
INTO v_count
|
||
FROM alg_v_aanweziggebouw
|
||
WHERE alg_locatie_key = v_locatie_key
|
||
AND alg_gebouw_upper = UPPER (recwp.alg_gebouw_code);
|
||
|
||
IF v_count = 1
|
||
THEN
|
||
SELECT alg_gebouw_key
|
||
INTO v_gebouw_key
|
||
FROM alg_v_aanweziggebouw
|
||
WHERE alg_locatie_key = v_locatie_key
|
||
AND alg_gebouw_upper =
|
||
UPPER (recwp.alg_gebouw_code);
|
||
ELSE -- Gebouw bestaat niet (of >1 keer)!
|
||
fac.imp_writelog (
|
||
p_import_key,
|
||
'I',
|
||
v_aanduiding || v_errorhint,
|
||
'Kan EMIS-gebouw niet (1-duidig) bepalen!'
|
||
);
|
||
COMMIT;
|
||
END IF;
|
||
END IF;
|
||
|
||
v_errorhint :=
|
||
'Fout bij bepalen default locatie/gebouw ('
|
||
|| c_locatie_code
|
||
|| '-'
|
||
|| c_gebouw_code
|
||
|| ')';
|
||
|
||
IF v_gebouw_key IS NULL
|
||
THEN
|
||
SELECT alg_gebouw_key
|
||
INTO v_gebouw_key
|
||
FROM alg_v_aanweziglocatie l, alg_v_aanweziggebouw g
|
||
WHERE l.alg_locatie_code = c_locatie_code
|
||
AND l.alg_locatie_key = g.alg_locatie_key
|
||
AND g.alg_gebouw_upper = UPPER (c_gebouw_code);
|
||
END IF;
|
||
|
||
v_errorhint :=
|
||
'Fout bij bepalen "fictieve" verdieping ('
|
||
|| TO_CHAR (c_verdieping_volgnr)
|
||
|| ')';
|
||
|
||
SELECT alg_verdieping_key
|
||
INTO v_verdieping_key
|
||
FROM alg_v_aanwezigverdieping v
|
||
WHERE v.alg_gebouw_key = v_gebouw_key
|
||
AND v.alg_verdieping_volgnr = c_verdieping_volgnr;
|
||
|
||
v_errorhint :=
|
||
'Fout bij bepalen "fictieve" ruimte (' || c_ruimte_nr || ')';
|
||
|
||
SELECT alg_ruimte_key
|
||
INTO v_ruimte_key
|
||
FROM alg_v_aanwezigruimte r
|
||
WHERE r.alg_verdieping_key = v_verdieping_key
|
||
AND r.alg_ruimte_upper_nr = c_ruimte_nr;
|
||
|
||
-- Persoon krijgt wp op de hierboven bepaalde ruimte.
|
||
v_errorhint := 'Fout bij bepalen vrije werkplek';
|
||
|
||
SELECT COUNT ( * )
|
||
INTO v_count
|
||
FROM prs_werkplek w
|
||
WHERE w.prs_alg_ruimte_key = v_ruimte_key
|
||
AND NOT EXISTS
|
||
(SELECT 1
|
||
FROM prs_perslidwerkplek pw
|
||
WHERE pw.prs_werkplek_key = w.prs_werkplek_key);
|
||
|
||
IF v_count > 0
|
||
THEN
|
||
SELECT MIN (w.prs_werkplek_key)
|
||
INTO v_wp_key
|
||
FROM prs_werkplek w
|
||
WHERE w.prs_alg_ruimte_key = v_ruimte_key
|
||
AND NOT EXISTS
|
||
(SELECT 1
|
||
FROM prs_perslidwerkplek pw
|
||
WHERE pw.prs_werkplek_key =
|
||
w.prs_werkplek_key);
|
||
|
||
v_errorhint := 'Fout bij koppelen persoon aan vrije werkplek';
|
||
|
||
INSERT INTO prs_perslidwerkplek (
|
||
prs_perslid_key,
|
||
prs_werkplek_key,
|
||
prs_perslidwerkplek_bezetting
|
||
)
|
||
VALUES (v_perslid_key, v_wp_key, 100);
|
||
|
||
COMMIT;
|
||
ELSE
|
||
v_errorhint := 'Fout bij bepalen nieuwe werkplek';
|
||
|
||
SELECT COALESCE (MAX (w.prs_werkplek_volgnr), 0) + 1
|
||
INTO v_wp_volgnr
|
||
FROM prs_werkplek w
|
||
WHERE w.prs_alg_ruimte_key = v_ruimte_key;
|
||
|
||
v_wp_oms := c_ruimte_nr || '/' || TO_CHAR (v_wp_volgnr);
|
||
v_errorhint := 'Fout bij toevoegen nieuwe werkplek';
|
||
|
||
INSERT INTO prs_werkplek (prs_werkplek_module,
|
||
prs_werkplek_volgnr,
|
||
prs_werkplek_omschrijving,
|
||
prs_alg_ruimte_key)
|
||
VALUES ('PRR',
|
||
v_wp_volgnr,
|
||
v_wp_oms,
|
||
v_ruimte_key)
|
||
RETURNING prs_werkplek_key INTO v_wp_key;
|
||
|
||
v_errorhint := 'Fout bij koppelen persoon aan nieuwe werkplek';
|
||
|
||
INSERT INTO prs_perslidwerkplek (
|
||
prs_perslid_key,
|
||
prs_werkplek_key,
|
||
prs_perslidwerkplek_bezetting
|
||
)
|
||
VALUES (v_perslid_key, v_wp_key, 100);
|
||
|
||
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',
|
||
'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: '
|
||
|| TO_CHAR (v_count_error),
|
||
''
|
||
);
|
||
COMMIT;
|
||
|
||
FOR recnowp IN cnowp
|
||
LOOP
|
||
BEGIN
|
||
fac.imp_writelog (
|
||
p_import_key,
|
||
'I',
|
||
'Persoon met personeelsnummer ['
|
||
|| recnowp.prs_perslid_nr
|
||
|| '] en naam ['
|
||
|| recnowp.prs_perslid_naam
|
||
|| ', '
|
||
|| recnowp.prs_perslid_voornaam
|
||
|| '] heeft een "fictieve" werkplek',
|
||
'Fictieve werkplek'
|
||
);
|
||
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_errormsg,
|
||
v_errorhint);
|
||
COMMIT;
|
||
END;
|
||
END LOOP;
|
||
|
||
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_errormsg,
|
||
v_errorhint);
|
||
COMMIT;
|
||
END;
|
||
END LOOP;
|
||
|
||
-- Verwijder ongebruikte functies; deze import bepaalt de functies!
|
||
DELETE FROM prs_srtperslid sp
|
||
WHERE NOT EXISTS
|
||
(SELECT 1
|
||
FROM prs_perslid p
|
||
WHERE p.prs_srtperslid_key = sp.prs_srtperslid_key);
|
||
|
||
COMMIT;
|
||
ELSE
|
||
fac.imp_writelog (
|
||
p_import_key,
|
||
'E',
|
||
'Het verschil tussen het aantal actieve personen met personeelsnummer en de te importeren/wijzigen aantallen is te groot, zie specificatie.',
|
||
'* Max. aan wijzigingen toegestaan = ['
|
||
|| TO_CHAR (c_max_delta_percentage)
|
||
|| '%] <br>* '
|
||
|| 'Aantal personen importbestand = ['
|
||
|| TO_CHAR (v_count_tot_new)
|
||
|| '] <br>* '
|
||
|| 'Aantal personen Facilitor = ['
|
||
|| TO_CHAR (v_count_tot_perslid)
|
||
|| ']'
|
||
);
|
||
COMMIT;
|
||
END IF; -- Geldig importbestand wat betreft aantal inserts
|
||
|
||
COMMIT;
|
||
END hout_update_prs;
|
||
/
|
||
|
||
/* Formatted on 2008/04/25 15:20 (Formatter Plus v4.8.7) */
|
||
CREATE OR REPLACE VIEW hout_v_rap_res_overzicht (fclt_f_locatie,
|
||
hide_f_sort_datum_tijd,
|
||
hide_f_sort_ruimte,
|
||
hide_f_sort_resnr,
|
||
hide_f_sort_categorie,
|
||
fclt_f_res_datum,
|
||
res_ruimtenummer,
|
||
van,
|
||
tot,
|
||
naam_gastheer,
|
||
aant,
|
||
voorzieningen,
|
||
omschrijving,
|
||
naam_aanvrager,
|
||
res_num,
|
||
opmerkingen,
|
||
fclt_3d_locatie_key
|
||
)
|
||
AS
|
||
SELECT l.alg_locatie_code locatie,
|
||
TO_CHAR (res_geg.res_reservering_van,
|
||
'YYYY-MM-DD HH24:MI'
|
||
) sort_datum_tijd,
|
||
COALESCE (opstelalg.res_ruimte_nr,
|
||
ruimte_geg.alg_ruimte_aanduiding
|
||
) sort_ruimte,
|
||
rrr.res_reservering_key
|
||
|| '/'
|
||
|| rrr.res_rsv_ruimte_volgnr sort_resnr,
|
||
res_geg.res_type sort_categorie,
|
||
TO_CHAR (res_geg.res_reservering_van, 'DD-MM-YYYY') datum,
|
||
(CASE
|
||
WHEN res_geg.res_type <> '1R' AND rrr.alg_ruimte_key IS NULL
|
||
THEN ''
|
||
ELSE COALESCE (opstelalg.res_ruimte_nr,
|
||
ruimte_geg.alg_ruimte_aanduiding
|
||
)
|
||
END
|
||
) ruimte,
|
||
TO_CHAR (res_geg.res_reservering_van, 'HH24:MI') van,
|
||
TO_CHAR (res_geg.res_reservering_tot, 'HH24:MI') tot, gastheer,
|
||
(CASE
|
||
WHEN res_geg.res_type <> '1R' AND rrr.alg_ruimte_key IS NULL
|
||
THEN ''
|
||
ELSE TO_CHAR (rrr.res_rsv_ruimte_bezoekers)
|
||
END
|
||
) aantal,
|
||
(CASE
|
||
WHEN res_geg.aantal IS NOT NULL
|
||
THEN TO_CHAR (res_geg.aantal)
|
||
|| ' * '
|
||
|| res_geg.res_voorziening
|
||
ELSE res_geg.res_voorziening
|
||
END
|
||
) voorzieningen,
|
||
(CASE
|
||
WHEN res_geg.res_type <> '1R' AND rrr.alg_ruimte_key IS NULL
|
||
THEN ''
|
||
ELSE res_rsv_ruimte_omschrijving
|
||
END
|
||
) omschrijving,
|
||
aanvrager,
|
||
(CASE
|
||
WHEN res_geg.res_type <> '1R' AND rrr.alg_ruimte_key IS NULL
|
||
THEN ''
|
||
ELSE rrr.res_reservering_key || '/' || rrr.res_rsv_ruimte_volgnr
|
||
END
|
||
) resnr,
|
||
(CASE
|
||
WHEN res_geg.res_type <> '1R' AND rrr.alg_ruimte_key IS NULL
|
||
THEN ''
|
||
ELSE res_rsv_ruimte_opmerking
|
||
END
|
||
) opmerking,
|
||
l.alg_locatie_key
|
||
FROM (SELECT '1R' AS res_type, rrr.res_rsv_ruimte_key,
|
||
rro.res_ruimte_key, rrr.res_rsv_ruimte_key AS res_item_key,
|
||
rrr.res_rsv_ruimte_van AS res_reservering_van,
|
||
rrr.res_rsv_ruimte_tot AS res_reservering_tot,
|
||
TO_NUMBER (NULL) AS aantal,
|
||
ro.res_opstelling_omschrijving AS res_voorziening,
|
||
rr.res_discipline_key AS res_ins_discipline_key,
|
||
rrr.res_status_bo_key, TO_NUMBER (NULL) AS res_artikel_key,
|
||
rrr.res_rsv_ruimte_prijs AS prijs,
|
||
TO_NUMBER (NULL) AS stuks_prijs, 1 AS rsv_ruimte_aantal,
|
||
NULL AS artikelnummer, '' AS artikel_groep,
|
||
(SELECT 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 || ')'
|
||
)
|
||
FROM prs_perslid p
|
||
WHERE p.prs_perslid_key = rrr.res_rsv_ruimte_host_key)
|
||
gastheer,
|
||
(SELECT 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 || ')'
|
||
)
|
||
FROM prs_perslid p
|
||
WHERE p.prs_perslid_key = rrr.res_rsv_ruimte_host_key)
|
||
aanvrager
|
||
FROM res_v_aanwezigrsv_ruimte rrr,
|
||
res_ruimte_opstelling rro,
|
||
res_ruimte rr,
|
||
res_opstelling ro
|
||
WHERE rrr.res_ruimte_opstel_key = rro.res_ruimte_opstel_key
|
||
AND rro.res_ruimte_key = rr.res_ruimte_key
|
||
AND rro.res_opstelling_key = ro.res_opstelling_key
|
||
UNION ALL
|
||
SELECT '2V' AS res_type, rrd.res_rsv_ruimte_key,
|
||
(SELECT rro.res_ruimte_key
|
||
FROM res_ruimte_opstelling rro
|
||
WHERE rrr.res_ruimte_opstel_key =
|
||
rro.res_ruimte_opstel_key)
|
||
AS res_ruimte_key,
|
||
rrd.res_rsv_deel_key AS res_item_key,
|
||
rrd.res_rsv_deel_van AS res_reservering_van,
|
||
rrd.res_rsv_deel_tot AS res_reservering_tot,
|
||
TO_NUMBER (NULL) AS aantal,
|
||
ID.ins_deel_omschrijving
|
||
|| ' ('
|
||
|| COALESCE (rd.res_deel_eenheid, '')
|
||
|| ')' AS res_voorziening,
|
||
rd.res_discipline_key AS res_ins_discipline_key,
|
||
rrd.res_status_bo_key, TO_NUMBER (NULL) AS res_artikel_key,
|
||
TO_NUMBER (NULL) AS prijs, rd.res_deel_prijs AS stuks_prijs,
|
||
TO_NUMBER (NULL) AS rsv_ruimte_aantal,
|
||
NULL AS artikelnummer, '' AS artikel_groep,
|
||
'' gastheer,
|
||
'' aanvrager
|
||
FROM res_v_aanwezigrsv_deel rrd,
|
||
res_v_aanwezigrsv_ruimte rrr,
|
||
res_deel rd,
|
||
ins_deel ID
|
||
WHERE rrd.res_rsv_ruimte_key = rrr.res_rsv_ruimte_key
|
||
AND rrd.res_deel_key = rd.res_deel_key
|
||
AND rd.res_ins_deel_key = ID.ins_deel_key
|
||
UNION ALL
|
||
SELECT '3C' AS res_type, rra.res_rsv_ruimte_key,
|
||
(SELECT rro.res_ruimte_key
|
||
FROM res_ruimte_opstelling rro
|
||
WHERE rrr.res_ruimte_opstel_key =
|
||
rro.res_ruimte_opstel_key)
|
||
AS res_ruimte_key,
|
||
res_rsv_artikel_key AS res_item_key,
|
||
rra.res_rsv_artikel_levering AS res_reservering_van,
|
||
res_rsv_ruimte_tot AS res_reservering_tot,
|
||
rra.res_rsv_artikel_aantal AS aantal,
|
||
LTRIM (ra.res_artikel_omschrijving)
|
||
|| ' ('
|
||
|| COALESCE (ra.res_artikel_eenheid, '')
|
||
|| ')' AS res_voorziening,
|
||
ra.res_discipline_key AS res_ins_discipline_key,
|
||
rra.res_status_bo_key,
|
||
ra.res_artikel_key AS res_artikel_key,
|
||
rra.res_rsv_artikel_prijs AS prijs,
|
||
ra.res_artikel_prijs
|
||
/ rra.res_rsv_artikel_aantal AS stuks_prijs,
|
||
TO_NUMBER (NULL) AS rsv_ruimte_aantal,
|
||
ra.res_artikel_nr AS artikelnummer,
|
||
ra.res_artikel_groep AS artikel_groep,
|
||
'' gastheer,
|
||
'' aanvrager
|
||
FROM res_v_aanwezigrsv_artikel rra,
|
||
res_v_aanwezigrsv_ruimte rrr,
|
||
res_artikel ra
|
||
WHERE rra.res_rsv_ruimte_key = rrr.res_rsv_ruimte_key
|
||
AND rra.res_artikel_key = ra.res_artikel_key) res_geg,
|
||
res_rsv_ruimte rrr,
|
||
alg_v_ruimte_gegevens ruimte_geg,
|
||
(SELECT res_ruimte_opstel_key, res_ruimte_nr,
|
||
MIN (alg_ruimte_key) alg_ruimte_key
|
||
FROM res_ruimte_opstelling rro,
|
||
res_alg_ruimte rar,
|
||
res_ruimte rr
|
||
WHERE rro.res_ruimte_key = rar.res_ruimte_key
|
||
AND rr.res_ruimte_key = rar.res_ruimte_key
|
||
AND rar.res_alg_ruimte_verwijder IS NULL
|
||
GROUP BY res_ruimte_opstel_key, res_ruimte_nr) opstelalg,
|
||
alg_locatie l
|
||
WHERE res_geg.res_rsv_ruimte_key = rrr.res_rsv_ruimte_key
|
||
AND rrr.res_ruimte_opstel_key = opstelalg.res_ruimte_opstel_key(+)
|
||
AND ruimte_geg.alg_ruimte_key =
|
||
COALESCE (rrr.alg_ruimte_key, opstelalg.alg_ruimte_key)
|
||
AND l.alg_locatie_key = ruimte_geg.alg_locatie_key
|
||
AND res_geg.res_status_bo_key < 5
|
||
/
|
||
|
||
/* Formatted on 2008/12/05 16:12 (Formatter Plus v4.8.7) */
|
||
CREATE OR REPLACE VIEW hout_v_res_bezet_raw (
|
||
res_ruimte_naam,
|
||
alg_ruimte_nr,
|
||
van,
|
||
tot,
|
||
t0800,
|
||
t0830,
|
||
t0900,
|
||
t0930,
|
||
t1000,
|
||
t1030,
|
||
t1100,
|
||
t1130,
|
||
t1200,
|
||
t1230,
|
||
t1300,
|
||
t1330,
|
||
t1400,
|
||
t1430,
|
||
t1500,
|
||
t1530,
|
||
t1600,
|
||
t1630,
|
||
t1700,
|
||
t1730,
|
||
aant_deelnemers,
|
||
activiteit,
|
||
kostenplaats,
|
||
max_personen
|
||
)
|
||
AS
|
||
SELECT res.res_ruimte_nr,
|
||
res.alg_ruimte_nr,
|
||
res.res_rsv_ruimte_van,
|
||
res.res_rsv_ruimte_tot,
|
||
NVL ( (SELECT 1 / 2
|
||
FROM DUAL
|
||
WHERE res.van <= 8 AND res.tot >= 8.25), 0
|
||
)
|
||
+ NVL ( (SELECT 1 / 2
|
||
FROM DUAL
|
||
WHERE res.van <= 8.25 AND res.tot >= 8.5), 0
|
||
)
|
||
t0800,
|
||
NVL ( (SELECT 1 / 2
|
||
FROM DUAL
|
||
WHERE res.van <= 8.5 AND res.tot >= 8.75), 0
|
||
)
|
||
+ NVL ( (SELECT 1 / 2
|
||
FROM DUAL
|
||
WHERE res.van <= 8.75 AND res.tot >= 9), 0
|
||
)
|
||
t0830,
|
||
NVL ( (SELECT 1 / 2
|
||
FROM DUAL
|
||
WHERE res.van <= 9 AND res.tot >= 9.25), 0
|
||
)
|
||
+ NVL ( (SELECT 1 / 2
|
||
FROM DUAL
|
||
WHERE res.van <= 9.25 AND res.tot >= 9.5), 0
|
||
)
|
||
t0900,
|
||
NVL ( (SELECT 1 / 2
|
||
FROM DUAL
|
||
WHERE res.van <= 9.5 AND res.tot >= 9.75), 0
|
||
)
|
||
+ NVL ( (SELECT 1 / 2
|
||
FROM DUAL
|
||
WHERE res.van <= 9.75 AND res.tot >= 10), 0
|
||
)
|
||
t0930,
|
||
NVL ( (SELECT 1 / 2
|
||
FROM DUAL
|
||
WHERE res.van <= 10 AND res.tot >= 10.25), 0
|
||
)
|
||
+ NVL ( (SELECT 1 / 2
|
||
FROM DUAL
|
||
WHERE res.van <= 10.25 AND res.tot >= 10.5), 0
|
||
)
|
||
t1000,
|
||
NVL ( (SELECT 1 / 2
|
||
FROM DUAL
|
||
WHERE res.van <= 10.5 AND res.tot >= 10.75), 0
|
||
)
|
||
+ NVL ( (SELECT 1 / 2
|
||
FROM DUAL
|
||
WHERE res.van <= 10.75 AND res.tot >= 11), 0
|
||
)
|
||
t1030,
|
||
NVL ( (SELECT 1 / 2
|
||
FROM DUAL
|
||
WHERE res.van <= 11 AND res.tot >= 11.25), 0
|
||
)
|
||
+ NVL ( (SELECT 1 / 2
|
||
FROM DUAL
|
||
WHERE res.van <= 11.25 AND res.tot >= 11.5), 0
|
||
)
|
||
t1100,
|
||
NVL ( (SELECT 1 / 2
|
||
FROM DUAL
|
||
WHERE res.van <= 11.5 AND res.tot >= 11.75), 0
|
||
)
|
||
+ NVL ( (SELECT 1 / 2
|
||
FROM DUAL
|
||
WHERE res.van <= 11.75 AND res.tot >= 12), 0
|
||
)
|
||
t1130,
|
||
NVL ( (SELECT 1 / 2
|
||
FROM DUAL
|
||
WHERE res.van <= 12 AND res.tot >= 12.25), 0
|
||
)
|
||
+ NVL ( (SELECT 1 / 2
|
||
FROM DUAL
|
||
WHERE res.van <= 12.25 AND res.tot >= 12.5), 0
|
||
)
|
||
t1200,
|
||
NVL ( (SELECT 1 / 2
|
||
FROM DUAL
|
||
WHERE res.van <= 12.5 AND res.tot >= 12.75), 0
|
||
)
|
||
+ NVL ( (SELECT 1 / 2
|
||
FROM DUAL
|
||
WHERE res.van <= 12.75 AND res.tot >= 13), 0
|
||
)
|
||
t1230,
|
||
NVL ( (SELECT 1 / 2
|
||
FROM DUAL
|
||
WHERE res.van <= 13 AND res.tot >= 13.25), 0
|
||
)
|
||
+ NVL ( (SELECT 1 / 2
|
||
FROM DUAL
|
||
WHERE res.van <= 13.25 AND res.tot >= 13.5), 0
|
||
)
|
||
t1300,
|
||
NVL ( (SELECT 1 / 2
|
||
FROM DUAL
|
||
WHERE res.van <= 13.5 AND res.tot >= 13.75), 0
|
||
)
|
||
+ NVL ( (SELECT 1 / 2
|
||
FROM DUAL
|
||
WHERE res.van <= 13.75 AND res.tot >= 14), 0
|
||
)
|
||
t1330,
|
||
NVL ( (SELECT 1 / 2
|
||
FROM DUAL
|
||
WHERE res.van <= 14 AND res.tot >= 14.25), 0
|
||
)
|
||
+ NVL ( (SELECT 1 / 2
|
||
FROM DUAL
|
||
WHERE res.van <= 14.25 AND res.tot >= 14.5), 0
|
||
)
|
||
t1400,
|
||
NVL ( (SELECT 1 / 2
|
||
FROM DUAL
|
||
WHERE res.van <= 14.5 AND res.tot >= 14.75), 0
|
||
)
|
||
+ NVL ( (SELECT 1 / 2
|
||
FROM DUAL
|
||
WHERE res.van <= 14.75 AND res.tot >= 15), 0
|
||
)
|
||
t1430,
|
||
NVL ( (SELECT 1 / 2
|
||
FROM DUAL
|
||
WHERE res.van <= 15 AND res.tot >= 15.25), 0
|
||
)
|
||
+ NVL ( (SELECT 1 / 2
|
||
FROM DUAL
|
||
WHERE res.van <= 15.25 AND res.tot >= 15.5), 0
|
||
)
|
||
t1500,
|
||
NVL ( (SELECT 1 / 2
|
||
FROM DUAL
|
||
WHERE res.van <= 15.5 AND res.tot >= 15.75), 0
|
||
)
|
||
+ NVL ( (SELECT 1 / 2
|
||
FROM DUAL
|
||
WHERE res.van <= 15.75 AND res.tot >= 16), 0
|
||
)
|
||
t1530,
|
||
NVL ( (SELECT 1 / 2
|
||
FROM DUAL
|
||
WHERE res.van <= 16 AND res.tot >= 16.25), 0
|
||
)
|
||
+ NVL ( (SELECT 1 / 2
|
||
FROM DUAL
|
||
WHERE res.van <= 16.25 AND res.tot >= 16.5), 0
|
||
)
|
||
t1600,
|
||
NVL ( (SELECT 1 / 2
|
||
FROM DUAL
|
||
WHERE res.van <= 16.5 AND res.tot >= 16.75), 0
|
||
)
|
||
+ NVL ( (SELECT 1 / 2
|
||
FROM DUAL
|
||
WHERE res.van <= 16.75 AND res.tot >= 17), 0
|
||
)
|
||
t1630,
|
||
NVL ( (SELECT 1 / 2
|
||
FROM DUAL
|
||
WHERE res.van <= 17 AND res.tot >= 17.25), 0
|
||
)
|
||
+ NVL ( (SELECT 1 / 2
|
||
FROM DUAL
|
||
WHERE res.van <= 17.25 AND res.tot >= 17.5), 0
|
||
)
|
||
t1700,
|
||
NVL ( (SELECT 1 / 2
|
||
FROM DUAL
|
||
WHERE res.van <= 17.5 AND res.tot >= 17.75), 0
|
||
)
|
||
+ NVL ( (SELECT 1 / 2
|
||
FROM DUAL
|
||
WHERE res.van <= 17.75 AND res.tot >= 18), 0
|
||
)
|
||
t1730,
|
||
res_rsv_ruimte_bezoekers,
|
||
res_activiteit_omschrijving,
|
||
prs_kostenplaats_nr,
|
||
res_ruimte_opstel_bezoekers
|
||
FROM (SELECT (rrr.res_rsv_ruimte_van - TRUNC (rrr.res_rsv_ruimte_van))
|
||
* 24
|
||
van,
|
||
(rrr.res_rsv_ruimte_tot - TRUNC (rrr.res_rsv_ruimte_tot)) * 24
|
||
tot,
|
||
rr.res_ruimte_nr,
|
||
ar.alg_ruimte_nr,
|
||
rrr.res_rsv_ruimte_van,
|
||
rrr.res_rsv_ruimte_tot,
|
||
rrr.res_rsv_ruimte_bezoekers,
|
||
rra.res_activiteit_omschrijving,
|
||
kp.prs_kostenplaats_nr,
|
||
rro.res_ruimte_opstel_bezoekers
|
||
FROM res_rsv_ruimte rrr,
|
||
res_ruimte_opstelling rro,
|
||
res_ruimte rr,
|
||
res_alg_ruimte rar,
|
||
alg_ruimte ar,
|
||
res_activiteit rra,
|
||
prs_kostenplaats kp
|
||
WHERE rrr.res_rsv_ruimte_verwijder IS NULL
|
||
AND rrr.res_ruimte_opstel_key = rro.res_ruimte_opstel_key
|
||
AND rro.res_ruimte_key = rr.res_ruimte_key
|
||
AND rr.res_ruimte_key = rar.res_ruimte_key
|
||
AND rar.alg_ruimte_key = ar.alg_ruimte_key
|
||
AND rrr.res_activiteit_key = rra.res_activiteit_key
|
||
AND rrr.prs_kostenplaats_key = kp.prs_kostenplaats_key(+)) res;
|
||
|
||
/* Formatted on 2008/10/16 14:38 (Formatter Plus v4.8.7) */
|
||
-- RAP-PACKAGE
|
||
CREATE OR REPLACE PACKAGE hout_rap
|
||
AS
|
||
TYPE t_cursor IS REF CURSOR;
|
||
|
||
PROCEDURE res_bezet_raw (
|
||
user_key IN NUMBER,
|
||
p_datum_van IN VARCHAR2,
|
||
p_datum_tot IN VARCHAR2,
|
||
p_cursor OUT t_cursor
|
||
);
|
||
END;
|
||
/
|
||
|
||
/* Formatted on 2008/10/20 11:28 (Formatter Plus v4.8.7) */
|
||
-- RAP-PROCEDURES in PACKAGE BODY (1 per rapportage)
|
||
CREATE OR REPLACE PACKAGE BODY hout_rap
|
||
AS
|
||
-- Ruwe bezettingsdata
|
||
PROCEDURE res_bezet_raw (
|
||
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 r.res_ruimte_naam ruimte_naam, r.alg_ruimte_nr ruimte_nr,
|
||
TO_CHAR (r.van, 'dd-mm-yyyy') datum,
|
||
TO_CHAR (r.van, 'HH24:MI') van,
|
||
TO_CHAR (r.tot, 'HH24:MI') tot, t0800, t0830, t0900, t0930,
|
||
t1000, t1030, t1100, t1130, t1200, t1230, t1300, t1330,
|
||
t1400, t1430, t1500, t1530, t1600, t1630, t1700, t1730,
|
||
aant_deelnemers, activiteit, kostenplaats, max_personen
|
||
FROM hout_v_res_bezet_raw r
|
||
WHERE r.van BETWEEN v_datum_van AND v_datum_tot
|
||
ORDER BY 1, 3, 4, 5;
|
||
END;
|
||
END;
|
||
/
|
||
|
||
-- HOUT#15589 AutoClose repro-bestellingen noti-dagen na aanmaken.
|
||
CREATE OR REPLACE PROCEDURE hout_select_autoclose (
|
||
p_applname IN VARCHAR2,
|
||
p_applrun IN VARCHAR2
|
||
)
|
||
AS
|
||
BEGIN
|
||
DELETE FROM imp_log
|
||
WHERE imp_log_applicatie = p_applname;
|
||
END;
|
||
/
|
||
|
||
CREATE OR REPLACE FORCE VIEW hout_v_export_autoclose (RESULT, result_order)
|
||
AS
|
||
SELECT '', 0
|
||
FROM DUAL
|
||
WHERE 1 = 0;
|
||
/
|
||
|
||
/* Formatted on 23-8-2012 17:02:18 (QP5 v5.115.810.9015) */
|
||
CREATE OR REPLACE PROCEDURE hout_export_autoclose (p_applname IN VARCHAR2,
|
||
p_applrun IN VARCHAR2,
|
||
p_filedir IN VARCHAR2,
|
||
p_filename IN VARCHAR2)
|
||
AS
|
||
BEGIN
|
||
UPDATE bes_bestelopdr
|
||
SET bes_bestelopdr_status = 4
|
||
WHERE bes_bestelopdr_key IN
|
||
(SELECT DISTINCT bo.bes_bestelopdr_key
|
||
FROM bes_bestelopdr bo,
|
||
bes_bestelopdr_item boi,
|
||
bes_bestelling_item bi,
|
||
bes_bestelling b,
|
||
bes_srtdeel sd,
|
||
bes_srtgroep sg,
|
||
bes_disc_params bdp
|
||
WHERE bo.bes_bestelopdr_status = 3
|
||
AND bo.bes_bestelopdr_key =
|
||
boi.bes_bestelopdr_key
|
||
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 = 1041 -- repro-bestellingen
|
||
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_datum,
|
||
bdp.bes_disc_params_noti_dagen,
|
||
'DAGEN'
|
||
) < SYSDATE));
|
||
|
||
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 = 1041 -- repro-bestellingen
|
||
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 b,
|
||
bes_bestelling_item bi,
|
||
bes_srtdeel sd,
|
||
bes_srtgroep sg,
|
||
bes_bestelopdr_item boi
|
||
WHERE b.bes_bestelling_status = 5 -- Besteld
|
||
AND b.bes_bestelling_key = bi.bes_bestelling_key
|
||
--AND bi.bes_bestelling_item_aantal <>
|
||
-- NVL (bi.bes_bestelling_item_aantalontv, 0)
|
||
AND bi.bes_srtdeel_key = sd.bes_srtdeel_key
|
||
AND sd.bes_srtgroep_key = sg.bes_srtgroep_key
|
||
AND sg.ins_discipline_key = 1041 -- repro-bestellingen
|
||
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;
|
||
END;
|
||
/
|
||
|
||
-- HOUT#15762 - Werkplekstatistieken
|
||
/* Formatted on 6-8-2009 17:16:30 (QP5 v5.115.810.9015) */
|
||
CREATE OR REPLACE VIEW hout_v_werkplek_geg
|
||
(
|
||
locatie_key,
|
||
locatie_code,
|
||
gebouw_key,
|
||
gebouw_code,
|
||
verdieping_code,
|
||
verdieping_oms,
|
||
ruimte_nr,
|
||
ruimte_functie,
|
||
werkplek_volgnr,
|
||
gebruiker
|
||
)
|
||
AS
|
||
SELECT a.alg_locatie_key,
|
||
a.alg_locatie_code,
|
||
a.alg_gebouw_key,
|
||
a.alg_gebouw_code,
|
||
a.alg_verdieping_code,
|
||
a.alg_verdieping_omschrijving,
|
||
a.alg_ruimte_nr,
|
||
a.alg_srtruimte_omschrijving,
|
||
a.prs_werkplek_volgnr,
|
||
DECODE (b.aantal,
|
||
NULL, NULL,
|
||
1, b.gebruiker,
|
||
'Meer dan 1 kostenplaats')
|
||
FROM (SELECT w.prs_werkplek_key,
|
||
l.alg_locatie_key,
|
||
l.alg_locatie_code,
|
||
g.alg_gebouw_key,
|
||
g.alg_gebouw_code,
|
||
v.alg_verdieping_code,
|
||
v.alg_verdieping_omschrijving,
|
||
r.alg_ruimte_nr,
|
||
sr.alg_srtruimte_key,
|
||
sr.alg_srtruimte_omschrijving,
|
||
w.prs_werkplek_volgnr
|
||
FROM prs_werkplek w,
|
||
alg_v_aanwezigruimte r,
|
||
alg_verdieping v,
|
||
alg_gebouw g,
|
||
alg_locatie l,
|
||
alg_srtruimte sr
|
||
WHERE w.prs_alg_ruimte_key = r.alg_ruimte_key
|
||
AND 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 pw.prs_werkplek_key,
|
||
MIN (a.prs_afdeling_omschrijving) gebruiker,
|
||
COUNT (DISTINCT a.prs_afdeling_key) aantal
|
||
FROM prs_perslidwerkplek pw,
|
||
prs_perslid p,
|
||
prs_afdeling a
|
||
WHERE pw.prs_perslid_key = p.prs_perslid_key
|
||
AND p.prs_afdeling_key = a.prs_afdeling_key
|
||
GROUP BY pw.prs_werkplek_key) b
|
||
ON a.prs_werkplek_key = b.prs_werkplek_key
|
||
WHERE a.alg_srtruimte_key IN (23, 25, 81);
|
||
|
||
CREATE OR REPLACE VIEW hout_v_rap_wp_func_rui (fclt_f_gebouw_code,
|
||
fclt_f_verdieping_code,
|
||
fclt_f_ruimte_functie,
|
||
ruimte_nr,
|
||
aantal_bezet,
|
||
aantal_mogelijk
|
||
)
|
||
AS
|
||
SELECT v.gebouw_code, v.verdieping_code, v.ruimte_functie, v.ruimte_nr,
|
||
SUM (DECODE (v.gebruiker, NULL, 0, 1)), COUNT (*)
|
||
FROM hout_v_werkplek_geg v
|
||
GROUP BY v.gebouw_code, v.verdieping_code, v.ruimte_functie, v.ruimte_nr
|
||
UNION ALL
|
||
SELECT v.gebouw_code, v.verdieping_code, v.ruimte_functie,
|
||
'zzzTotaal functie', SUM (DECODE (v.gebruiker, NULL, 0, 1)),
|
||
COUNT (*)
|
||
FROM hout_v_werkplek_geg v
|
||
GROUP BY v.gebouw_code,
|
||
v.verdieping_code,
|
||
v.ruimte_functie,
|
||
'zzzTotaal functie'
|
||
UNION ALL
|
||
SELECT v.gebouw_code, v.verdieping_code, 'zzzTotaal etage', 'zzzTotaal etage',
|
||
SUM (DECODE (v.gebruiker, NULL, 0, 1)), COUNT (*)
|
||
FROM hout_v_werkplek_geg v
|
||
GROUP BY v.gebouw_code, v.verdieping_code, 'zzzTotaal etage', 'zzzTotaal etage'
|
||
/
|
||
|
||
CREATE OR REPLACE VIEW hout_v_rap_wp_func_ver (fclt_f_gebouw_code,
|
||
fclt_f_ruimte_functie,
|
||
verdieping_code,
|
||
aantal_bezet,
|
||
aantal_mogelijk
|
||
)
|
||
AS
|
||
SELECT v.gebouw_code, v.ruimte_functie, v.verdieping_code,
|
||
SUM (DECODE (v.gebruiker, NULL, 0, 1)), COUNT (*)
|
||
FROM hout_v_werkplek_geg v
|
||
GROUP BY v.gebouw_code, v.verdieping_code, v.ruimte_functie
|
||
UNION ALL
|
||
SELECT v.gebouw_code, v.ruimte_functie, '99999',
|
||
SUM (DECODE (v.gebruiker, NULL, 0, 1)), COUNT (*)
|
||
FROM hout_v_werkplek_geg v
|
||
GROUP BY v.gebouw_code, v.ruimte_functie, '99999'
|
||
UNION ALL
|
||
SELECT v.gebouw_code, 'zzzTotaal gebouw', v.verdieping_code,
|
||
SUM (DECODE (v.gebruiker, NULL, 0, 1)), COUNT (*)
|
||
FROM hout_v_werkplek_geg v
|
||
GROUP BY v.gebouw_code, 'zzzTotaal gebouw', v.verdieping_code
|
||
UNION ALL
|
||
SELECT v.gebouw_code, 'zzzTotaal gebouw', '99999',
|
||
SUM (DECODE (v.gebruiker, NULL, 0, 1)), COUNT (*)
|
||
FROM hout_v_werkplek_geg v
|
||
GROUP BY v.gebouw_code, 'zzzTotaal gebouw', '99999'
|
||
/
|
||
|
||
CREATE OR REPLACE VIEW hout_v_rap_wp_ver_gebr (fclt_f_gebouw_code,
|
||
fclt_f_verdieping_code,
|
||
fclt_f_kostenplaats,
|
||
aantal,
|
||
totaal
|
||
)
|
||
AS
|
||
SELECT a.gebouw_code, a.verdieping_code, a.gebruiker, a.aantal, b.totaal
|
||
FROM (SELECT v.gebouw_code, v.verdieping_code, v.gebruiker,
|
||
COUNT (*) aantal
|
||
FROM hout_v_werkplek_geg v
|
||
WHERE v.gebruiker IS NOT NULL
|
||
GROUP BY v.gebouw_code, v.verdieping_code, v.gebruiker) a
|
||
LEFT JOIN
|
||
(SELECT v.gebouw_code, v.verdieping_code, COUNT (*) totaal
|
||
FROM hout_v_werkplek_geg v
|
||
GROUP BY v.gebouw_code, v.verdieping_code) b
|
||
ON a.gebouw_code = b.gebouw_code
|
||
AND a.verdieping_code = b.verdieping_code
|
||
UNION ALL
|
||
SELECT v.gebouw_code, v.verdieping_code, 'zzzVrij',
|
||
SUM (DECODE (v.gebruiker, NULL, 1, 0)), COUNT (*)
|
||
FROM hout_v_werkplek_geg v
|
||
GROUP BY v.gebouw_code, v.verdieping_code, 'zzzVrij'
|
||
UNION ALL
|
||
SELECT a.gebouw_code, '99999', a.gebruiker, a.aantal, b.totaal
|
||
FROM (SELECT v.gebouw_code, v.gebruiker, COUNT (*) aantal
|
||
FROM hout_v_werkplek_geg v
|
||
WHERE v.gebruiker IS NOT NULL
|
||
GROUP BY v.gebouw_code, v.gebruiker) a
|
||
LEFT JOIN
|
||
(SELECT v.gebouw_code, COUNT (*) totaal
|
||
FROM hout_v_werkplek_geg v
|
||
GROUP BY v.gebouw_code) b ON a.gebouw_code = b.gebouw_code
|
||
UNION ALL
|
||
SELECT v.gebouw_code, '99999', 'zzzVrij',
|
||
SUM (DECODE (v.gebruiker, NULL, 1, 0)), COUNT (*)
|
||
FROM hout_v_werkplek_geg v
|
||
GROUP BY v.gebouw_code, '99999', 'zzzVrij'
|
||
/
|
||
|
||
/* HOUT#15981 - UNCO aanvragen! */
|
||
/* Formatted on 7-8-2009 11:20:08 (QP5 v5.115.810.9015) */
|
||
CREATE OR REPLACE FUNCTION hout_mld_flexcontent (p_mldkey IN NUMBER)
|
||
RETURN VARCHAR2
|
||
IS
|
||
CURSOR c1
|
||
IS
|
||
SELECT k.mld_kenmerk_key,
|
||
COALESCE (k.mld_kenmerk_volgnummer, 0) volgnummer,
|
||
sk.mld_srtkenmerk_kenmerktype,
|
||
sk.mld_srtkenmerk_omschrijving,
|
||
sk.mld_srtkenmerk_upper,
|
||
rsk.fac_kenmerkdomein_objectnaam,
|
||
rsk.fac_kenmerkdomein_kolomnaam,
|
||
rsk.fac_kenmerkdomein_kolomtxt,
|
||
rsk.fac_usrtab_key,
|
||
k.mld_kenmerk_default
|
||
FROM mld_melding m,
|
||
mld_stdmelding std,
|
||
mld_kenmerk k,
|
||
mld_srtkenmerk sk,
|
||
fac_kenmerkdomein rsk
|
||
WHERE m.mld_melding_key = p_mldkey
|
||
AND m.mld_stdmelding_key = std.mld_stdmelding_key
|
||
AND ( (std.mld_ins_discipline_key = k.mld_stdmelding_key
|
||
AND k.mld_kenmerk_niveau = 'D')
|
||
OR (m.mld_stdmelding_key = k.mld_stdmelding_key
|
||
AND k.mld_kenmerk_niveau = 'S'))
|
||
AND k.mld_kenmerk_verwijder IS NULL
|
||
AND k.mld_srtkenmerk_key = sk.mld_srtkenmerk_key
|
||
AND sk.mld_srtkenmerk_kenmerktype <> 'L' -- label!
|
||
AND sk.mld_srtkenmerk_kenmerktype <> 'Q' -- blanco!
|
||
AND sk.mld_srtkenmerk_verwijder IS NULL
|
||
AND sk.fac_kenmerkdomein_key = rsk.fac_kenmerkdomein_key(+)
|
||
ORDER BY COALESCE (k.mld_kenmerk_volgnummer, 0);
|
||
|
||
v_flexcontent VARCHAR2 (4000);
|
||
v_kenmerk_waarde VARCHAR2 (1000);
|
||
v_ref_kenmerk_waarde VARCHAR2 (1000);
|
||
sql_stmt VARCHAR2 (1000);
|
||
v_count NUMBER (3);
|
||
BEGIN
|
||
v_flexcontent := '';
|
||
|
||
FOR rec IN c1
|
||
LOOP
|
||
BEGIN
|
||
SELECT COUNT (km.mld_kenmerkmelding_key)
|
||
INTO v_count
|
||
FROM mld_kenmerkmelding km
|
||
WHERE km.mld_melding_key = p_mldkey
|
||
AND km.mld_kenmerk_key = rec.mld_kenmerk_key
|
||
AND km.mld_kenmerkmelding_verwijder IS NULL;
|
||
|
||
IF (v_count = 1)
|
||
THEN
|
||
SELECT km.mld_kenmerkmelding_waarde
|
||
INTO v_kenmerk_waarde
|
||
FROM mld_kenmerkmelding km
|
||
WHERE km.mld_melding_key = p_mldkey
|
||
AND km.mld_kenmerk_key = rec.mld_kenmerk_key
|
||
AND km.mld_kenmerkmelding_verwijder IS NULL;
|
||
|
||
IF (rec.mld_srtkenmerk_kenmerktype = 'R')
|
||
THEN
|
||
sql_stmt :=
|
||
'SELECT MIN('
|
||
|| rec.fac_kenmerkdomein_kolomtxt
|
||
|| ')'
|
||
|| ' FROM '
|
||
|| rec.fac_kenmerkdomein_objectnaam
|
||
|| ' WHERE '
|
||
|| rec.fac_kenmerkdomein_kolomnaam
|
||
|| ' = '
|
||
|| v_kenmerk_waarde;
|
||
|
||
EXECUTE IMMEDIATE sql_stmt INTO v_ref_kenmerk_waarde;
|
||
|
||
v_flexcontent :=
|
||
SUBSTR (
|
||
v_flexcontent
|
||
|| rec.mld_srtkenmerk_omschrijving
|
||
|| ': '
|
||
|| v_ref_kenmerk_waarde
|
||
|| CHR (13)
|
||
|| CHR (10),
|
||
1,
|
||
4000
|
||
);
|
||
ELSE
|
||
v_flexcontent :=
|
||
SUBSTR (
|
||
v_flexcontent
|
||
|| rec.mld_srtkenmerk_omschrijving
|
||
|| ': '
|
||
|| v_kenmerk_waarde
|
||
|| CHR (13)
|
||
|| CHR (10),
|
||
1,
|
||
4000
|
||
);
|
||
END IF;
|
||
ELSE -- geen kenmerkwaarde, dus optioneel veld
|
||
v_flexcontent :=
|
||
SUBSTR (
|
||
v_flexcontent
|
||
|| rec.mld_srtkenmerk_omschrijving
|
||
|| ': <leeg>'
|
||
|| CHR (13)
|
||
|| CHR (10),
|
||
1,
|
||
4000
|
||
);
|
||
END IF;
|
||
END;
|
||
END LOOP;
|
||
|
||
RETURN v_flexcontent;
|
||
END;
|
||
/
|
||
|
||
-- lijst van repromeldingen, met hun bijbehorende bestelling, if any
|
||
/* Formatted on 9-6-2010 17:52:05 (QP5 v5.115.810.9015) */
|
||
CREATE OR REPLACE VIEW hout_v_rap_repro_bes_match
|
||
(
|
||
fclt_f_meld_maand,
|
||
fclt_f_vakgroeptype,
|
||
melding,
|
||
meld_datum,
|
||
bestelling,
|
||
bestel_datum
|
||
)
|
||
AS
|
||
SELECT TO_CHAR (m.mld_melding_datum, 'yyyy-mm') meldmaand,
|
||
sd.ins_srtdiscipline_omschrijving vakgroeptype,
|
||
TO_CHAR (m.mld_melding_key) melding,
|
||
TO_CHAR (m.mld_melding_datum, 'dd-mm-yyyy') melddatum,
|
||
TO_CHAR (b.bes_bestelling_key) bestelling,
|
||
TO_CHAR (b.bes_bestelling_datum, 'dd-mm-yyyy') besteldatum
|
||
FROM mld_melding m,
|
||
mld_stdmelding std,
|
||
bes_bestelling b,
|
||
mld_discipline d,
|
||
ins_srtdiscipline sd
|
||
WHERE m.mld_melding_key = b.mld_melding_key(+)
|
||
AND m.mld_stdmelding_key = std.mld_stdmelding_key
|
||
AND std.mld_ins_discipline_key = d.ins_discipline_key
|
||
AND d.ins_srtdiscipline_key = sd.ins_srtdiscipline_key
|
||
AND sd.ins_srtdiscipline_key IN (21, 41);
|
||
|
||
-- telling van repromeldingen en bestellingen per maand
|
||
/* Formatted on 9-6-2010 17:52:25 (QP5 v5.115.810.9015) */
|
||
CREATE OR REPLACE VIEW hout_v_rap_repro_bes_count
|
||
(
|
||
fclt_f_meld_maand,
|
||
fclt_f_vakgroeptype,
|
||
meldingen,
|
||
bestellingen
|
||
)
|
||
AS
|
||
SELECT TO_CHAR (mld_melding_datum, 'yyyy-mm') meldmaand,
|
||
ins_srtdiscipline_omschrijving vakgroeptype,
|
||
COUNT (mld_melding_key) meldingen,
|
||
COUNT (bes_bestelling_key) bestellingen
|
||
FROM (SELECT m.mld_melding_datum,
|
||
sd.ins_srtdiscipline_omschrijving,
|
||
m.mld_melding_key,
|
||
b.bes_bestelling_key
|
||
FROM mld_melding m,
|
||
mld_stdmelding std,
|
||
bes_bestelling b,
|
||
mld_discipline d,
|
||
ins_srtdiscipline sd
|
||
WHERE m.mld_melding_key = b.mld_melding_key(+)
|
||
AND m.mld_stdmelding_key = std.mld_stdmelding_key
|
||
AND std.mld_ins_discipline_key = d.ins_discipline_key
|
||
AND d.ins_srtdiscipline_key = sd.ins_srtdiscipline_key
|
||
AND sd.ins_srtdiscipline_key IN (21, 41))
|
||
GROUP BY TO_CHAR (mld_melding_datum, 'yyyy-mm'),
|
||
ins_srtdiscipline_omschrijving;
|
||
|
||
/* Formatted on 16-6-2011 10:08:24 (QP5 v5.115.810.9015) */
|
||
CREATE OR REPLACE VIEW hout_v_thema_ruimte_afd
|
||
(
|
||
alg_ruimte_key,
|
||
waarde
|
||
)
|
||
AS
|
||
SELECT w.prs_alg_ruimte_key, MIN (a.prs_afdeling_omschrijving)
|
||
FROM prs_perslidwerkplek pw,
|
||
(SELECT p.prs_perslid_key,
|
||
DECODE (p.prs_afdeling_key,
|
||
b.prs_afdeling_key3, b.prs_afdeling_key2,
|
||
b.prs_afdeling_key4, b.prs_afdeling_key2,
|
||
b.prs_afdeling_key5, b.prs_afdeling_key2,
|
||
p.prs_afdeling_key)
|
||
prs_afdeling_key
|
||
FROM prs_perslid p, prs_v_afdeling_boom b
|
||
WHERE p.prs_afdeling_key = b.prs_afdeling_key) pa,
|
||
prs_afdeling a,
|
||
prs_werkplek w
|
||
WHERE pw.prs_perslid_key = pa.prs_perslid_key
|
||
AND pa.prs_afdeling_key = a.prs_afdeling_key
|
||
AND pw.prs_werkplek_key = w.prs_werkplek_key
|
||
GROUP BY w.prs_alg_ruimte_key;
|
||
|
||
/* Formatted on 16-6-2011 10:08:24 (QP5 v5.115.810.9015) */
|
||
CREATE OR REPLACE VIEW hout_v_label_ruimte_afd
|
||
(
|
||
alg_ruimte_key,
|
||
waarde
|
||
)
|
||
AS
|
||
SELECT DISTINCT
|
||
w.prs_alg_ruimte_key, SUBSTR (a.prs_afdeling_omschrijving, 1, 60)
|
||
FROM prs_perslidwerkplek pw,
|
||
(SELECT p.prs_perslid_key,
|
||
DECODE (p.prs_afdeling_key,
|
||
b.prs_afdeling_key3, b.prs_afdeling_key2,
|
||
b.prs_afdeling_key4, b.prs_afdeling_key2,
|
||
b.prs_afdeling_key5, b.prs_afdeling_key2,
|
||
p.prs_afdeling_key)
|
||
prs_afdeling_key
|
||
FROM prs_perslid p, prs_v_afdeling_boom b
|
||
WHERE p.prs_afdeling_key = b.prs_afdeling_key) pa,
|
||
prs_afdeling a,
|
||
prs_werkplek w
|
||
WHERE pw.prs_perslid_key = pa.prs_perslid_key
|
||
AND pa.prs_afdeling_key = a.prs_afdeling_key
|
||
AND pw.prs_werkplek_key = w.prs_werkplek_key;
|
||
|
||
|
||
/* Formatted on 16-6-2011 10:25:55 (QP5 v5.115.810.9015) */
|
||
CREATE OR REPLACE VIEW hout_v_prj_thema_ruimte_afd
|
||
(
|
||
prj_ruimte_key,
|
||
waarde
|
||
)
|
||
AS
|
||
SELECT w.prj_ruimte_key, MIN (a.prs_afdeling_omschrijving)
|
||
FROM prj_perslidwerkplek pw,
|
||
(SELECT p.prs_perslid_key,
|
||
DECODE (p.prs_afdeling_key,
|
||
b.prs_afdeling_key3, b.prs_afdeling_key2,
|
||
b.prs_afdeling_key4, b.prs_afdeling_key2,
|
||
b.prs_afdeling_key5, b.prs_afdeling_key2,
|
||
p.prs_afdeling_key)
|
||
prs_afdeling_key
|
||
FROM prs_perslid p, prs_v_afdeling_boom b
|
||
WHERE p.prs_afdeling_key = b.prs_afdeling_key) pa,
|
||
prs_afdeling a,
|
||
prj_werkplek w
|
||
WHERE pw.prs_perslid_key = pa.prs_perslid_key
|
||
AND pw.prj_perslidwerkplek_verwijder IS NULL
|
||
AND pa.prs_afdeling_key = a.prs_afdeling_key
|
||
AND pw.prj_werkplek_key = w.prj_werkplek_key
|
||
AND w.prj_werkplek_verwijder IS NULL
|
||
GROUP BY w.prj_ruimte_key;
|
||
|
||
/* Formatted on 16-6-2011 10:25:55 (QP5 v5.115.810.9015) */
|
||
CREATE OR REPLACE VIEW hout_v_prj_label_ruimte_afd
|
||
(
|
||
prj_ruimte_key,
|
||
waarde
|
||
)
|
||
AS
|
||
SELECT DISTINCT
|
||
w.prj_ruimte_key, SUBSTR (a.prs_afdeling_omschrijving, 1, 60)
|
||
FROM prj_perslidwerkplek pw,
|
||
(SELECT p.prs_perslid_key,
|
||
DECODE (p.prs_afdeling_key,
|
||
b.prs_afdeling_key3, b.prs_afdeling_key2,
|
||
b.prs_afdeling_key4, b.prs_afdeling_key2,
|
||
b.prs_afdeling_key5, b.prs_afdeling_key2,
|
||
p.prs_afdeling_key)
|
||
prs_afdeling_key
|
||
FROM prs_perslid p, prs_v_afdeling_boom b
|
||
WHERE p.prs_afdeling_key = b.prs_afdeling_key) pa,
|
||
prs_afdeling a,
|
||
prj_werkplek w
|
||
WHERE pw.prs_perslid_key = pa.prs_perslid_key
|
||
AND pw.prj_perslidwerkplek_verwijder IS NULL
|
||
AND pa.prs_afdeling_key = a.prs_afdeling_key
|
||
AND pw.prj_werkplek_key = w.prj_werkplek_key
|
||
AND w.prj_werkplek_verwijder IS NULL;
|
||
|
||
CREATE OR REPLACE VIEW hout_v_label_bewoner_voornaam
|
||
(
|
||
ALG_RUIMTE_KEY,
|
||
WAARDE
|
||
)
|
||
AS
|
||
SELECT prs_w.prs_alg_ruimte_key,
|
||
prs_p.prs_perslid_naam
|
||
|| DECODE (prs_p.prs_perslid_voornaam,
|
||
NULL, '',
|
||
' (' || prs_p.prs_perslid_voornaam || ')')
|
||
FROM prs_werkplek prs_w,
|
||
prs_perslidwerkplek prs_pw,
|
||
prs_perslid prs_p
|
||
WHERE prs_w.prs_werkplek_key = prs_pw.prs_werkplek_key
|
||
AND prs_pw.prs_perslid_key IS NOT NULL
|
||
AND prs_pw.prs_perslid_key = prs_p.prs_perslid_key
|
||
AND prs_w.prs_werkplek_virtueel = 0
|
||
UNION
|
||
SELECT prs_w.prs_alg_ruimte_key, '[Vrij]'
|
||
FROM prs_werkplek prs_w, prs_v_werkplek_bezetting prs_wb
|
||
WHERE prs_w.prs_werkplek_key = prs_wb.prs_werkplek_key
|
||
AND prs_w.prs_werkplek_virtueel = 0
|
||
AND prs_wb.prs_werkplek_bezetting < 100
|
||
/
|
||
|
||
CREATE OR REPLACE VIEW hout_v_label_bewoner_voorl
|
||
(
|
||
ALG_RUIMTE_KEY,
|
||
WAARDE
|
||
)
|
||
AS
|
||
SELECT prs_w.prs_alg_ruimte_key,
|
||
prs_p.prs_perslid_naam
|
||
|| DECODE (prs_p.prs_perslid_voorletters,
|
||
NULL, '',
|
||
', ' || prs_p.prs_perslid_voorletters)
|
||
FROM prs_werkplek prs_w,
|
||
prs_perslidwerkplek prs_pw,
|
||
prs_perslid prs_p
|
||
WHERE prs_w.prs_werkplek_key = prs_pw.prs_werkplek_key
|
||
AND prs_pw.prs_perslid_key IS NOT NULL
|
||
AND prs_pw.prs_perslid_key = prs_p.prs_perslid_key
|
||
AND prs_w.prs_werkplek_virtueel = 0
|
||
UNION
|
||
SELECT prs_w.prs_alg_ruimte_key, '[Vrij]'
|
||
FROM prs_werkplek prs_w, prs_v_werkplek_bezetting prs_wb
|
||
WHERE prs_w.prs_werkplek_key = prs_wb.prs_werkplek_key
|
||
AND prs_w.prs_werkplek_virtueel = 0
|
||
AND prs_wb.prs_werkplek_bezetting < 100
|
||
/
|
||
|
||
/* Formatted on 16-8-2010 14:11:01 (QP5 v5.115.810.9015) */
|
||
CREATE OR REPLACE VIEW HOUT_V_LABEL_BEWONERWP
|
||
(
|
||
ALG_RUIMTE_KEY,
|
||
WAARDE
|
||
)
|
||
AS
|
||
SELECT DISTINCT prs_alg_ruimte_key, waarde
|
||
FROM (SELECT prs_w.prs_alg_ruimte_key,
|
||
prs_p.prs_perslid_naam
|
||
|| DECODE (prs_p.prs_perslid_voorletters,
|
||
NULL, '',
|
||
', ' || prs_p.prs_perslid_voorletters)
|
||
|| ' '
|
||
|| DECODE (prs_w.prs_werkplek_omschrijving,
|
||
NULL, '',
|
||
' (' || prs_w.prs_werkplek_omschrijving || ')')
|
||
waarde
|
||
FROM prs_werkplek prs_w,
|
||
prs_perslidwerkplek prs_pw,
|
||
prs_perslid prs_p
|
||
WHERE prs_w.prs_werkplek_key = prs_pw.prs_werkplek_key
|
||
AND prs_pw.prs_perslid_key IS NOT NULL
|
||
AND prs_pw.prs_perslid_key = prs_p.prs_perslid_key
|
||
UNION
|
||
SELECT prs_w.prs_alg_ruimte_key,
|
||
' Vrij '
|
||
|| DECODE (prs_w.prs_werkplek_omschrijving,
|
||
NULL, '',
|
||
'(' || prs_w.prs_werkplek_omschrijving || ')')
|
||
FROM prs_werkplek prs_w,
|
||
prs_perslidwerkplek prs_wb
|
||
WHERE prs_w.prs_werkplek_key = prs_wb.prs_werkplek_key(+)
|
||
GROUP BY prs_w.prs_alg_ruimte_key,
|
||
prs_w.prs_werkplek_key,
|
||
prs_w.prs_werkplek_omschrijving
|
||
HAVING SUM (NVL (prs_wb.prs_perslidwerkplek_bezetting, 0)) <
|
||
100);
|
||
/
|
||
|
||
/* Formatted on 16-8-2010 14:09:45 (QP5 v5.115.810.9015) */
|
||
CREATE OR REPLACE VIEW HOUT_V_PRJ_LABEL_BEWONERWP
|
||
(
|
||
PRJ_RUIMTE_KEY,
|
||
WAARDE,
|
||
HIGHLIGHT
|
||
)
|
||
AS
|
||
SELECT DISTINCT
|
||
prj_ruimte_key, waarde, DECODE (prj_selectie_key, NULL, 0, 1)
|
||
FROM (SELECT prj_r.prj_scenario_key,
|
||
prs_w.prj_ruimte_key,
|
||
prs_p.prs_perslid_naam
|
||
|| DECODE (prs_p.prs_perslid_voorletters,
|
||
NULL, '',
|
||
', ' || prs_p.prs_perslid_voorletters)
|
||
|| ' '
|
||
|| DECODE (prs_w.prj_werkplek_omschrijving,
|
||
NULL, '',
|
||
'(' || prs_w.prj_werkplek_omschrijving || ')')
|
||
waarde,
|
||
'PRJ_WERKPLEK' label_soort,
|
||
prs_pw.prj_werkplek_key label_key
|
||
FROM PRJ_RUIMTE prj_r,
|
||
PRJ_WERKPLEK prs_w,
|
||
(SELECT *
|
||
FROM PRJ_PERSLIDWERKPLEK
|
||
WHERE prj_perslidwerkplek_verwijder IS NULL) prs_pw,
|
||
PRS_PERSLID prs_p
|
||
WHERE prs_w.prj_werkplek_key = prs_pw.prj_werkplek_key
|
||
AND prs_pw.prs_perslid_key IS NOT NULL
|
||
AND prs_pw.prs_perslid_key = prs_p.prs_perslid_key
|
||
AND prs_w.prj_ruimte_key = prj_r.prj_ruimte_key
|
||
UNION
|
||
SELECT -1,
|
||
prs_w.prj_ruimte_key,
|
||
' Vrij: '
|
||
|| DECODE (prs_w.prj_werkplek_omschrijving,
|
||
NULL, '',
|
||
'(' || prs_w.prj_werkplek_omschrijving || ')'),
|
||
'PRJ_WERKPLEK',
|
||
prs_w.prj_werkplek_key
|
||
FROM PRJ_WERKPLEK prs_w,
|
||
(SELECT *
|
||
FROM PRJ_PERSLIDWERKPLEK
|
||
WHERE prj_perslidwerkplek_verwijder IS NULL) prs_wb
|
||
WHERE prs_w.prj_werkplek_key = prs_wb.prj_werkplek_key(+)
|
||
AND prj_werkplek_verwijder IS NULL
|
||
GROUP BY prs_w.prj_ruimte_key,
|
||
prs_w.prj_werkplek_key,
|
||
prs_w.prj_werkplek_omschrijving
|
||
HAVING SUM (NVL (prs_wb.prj_perslidwerkplek_bezetting, 0)) <
|
||
100) DATA,
|
||
PRJ_SELECTIE ps
|
||
WHERE ps.prj_scenario_key(+) = DATA.prj_scenario_key
|
||
AND ps.prj_selectie_tabelnaam(+) = label_soort
|
||
AND ps.prj_selectie_tabelkey(+) = label_key;
|
||
/
|
||
|
||
/* Formatted on 26-7-2012 16:02:20 (QP5 v5.115.810.9015) */
|
||
CREATE OR REPLACE VIEW hout_v_rap_mld_afhandeling_ict
|
||
(
|
||
fclt_d_aanmaak,
|
||
nummer,
|
||
vakgroep_melding,
|
||
--fclt_f_melding,
|
||
fclt_f_status,
|
||
fclt_f_accept_user,
|
||
fclt_f_update_user,
|
||
fclt_f_afmeld_user,
|
||
plaats_omschrijving,
|
||
--opmerking,
|
||
melder,
|
||
einddatum
|
||
)
|
||
AS
|
||
SELECT TO_CHAR (mldnew.fac_tracking_datum, 'dd-mm-yyyy'),
|
||
SUBSTR (meld.vakgroeptype_prefix, 1, 3) || TO_CHAR (meld.mld_key),
|
||
SUBSTR (meld.vakgroep_oms, 1, 30)
|
||
|| CHR (10)
|
||
|| CHR (13)
|
||
|| SUBSTR (meld.stdmld_oms, 1, 60),
|
||
--SUBSTR (meld.stdmld_oms, 1, 60),
|
||
meld.mld_statuses_omschrijving,
|
||
DECODE (mldrej.prs_perslid_key,
|
||
NULL,
|
||
(SELECT prs_perslid_naam_full
|
||
FROM prs_v_perslid_fullnames
|
||
WHERE prs_perslid_key = mldacp.prs_perslid_key),
|
||
(SELECT prs_perslid_naam_full
|
||
FROM prs_v_perslid_fullnames
|
||
WHERE prs_perslid_key = mldrej.prs_perslid_key)),
|
||
(SELECT prs_perslid_naam_full
|
||
FROM prs_v_perslid_fullnames
|
||
WHERE prs_perslid_key = mldbeh.prs_perslid_key),
|
||
(SELECT prs_perslid_naam_full
|
||
FROM prs_v_perslid_fullnames
|
||
WHERE prs_perslid_key = mldafm.prs_perslid_key),
|
||
SUBSTR (meld.plaatsaanduiding, 1, 30)
|
||
|| CHR (10)
|
||
|| CHR (13)
|
||
|| SUBSTR (meld.mld_oms, 1, 4000)
|
||
mld_oms,
|
||
--SUBSTR (meld.mld_opm, 1, 1000) mld_opm,
|
||
meld.prs_perslid_naam_full,
|
||
TO_CHAR (meld.einddatum, 'dd-mm-yyyy')
|
||
FROM (SELECT m.mld_melding_key mld_key,
|
||
sd.ins_srtdiscipline_key
|
||
vakgroeptype_key,
|
||
sd.ins_srtdiscipline_prefix
|
||
vakgroeptype_prefix,
|
||
td.ins_discipline_key vakgroep_key,
|
||
td.ins_discipline_omschrijving
|
||
vakgroep_oms,
|
||
sm.mld_stdmelding_key stdmld_key,
|
||
sm.mld_stdmelding_omschrijving
|
||
stdmld_oms,
|
||
m.mld_melding_datum begindatum,
|
||
m.mld_melding_einddatum einddatum,
|
||
m.mld_melding_omschrijving mld_oms,
|
||
m.mld_melding_opmerking mld_opm,
|
||
s.mld_statuses_omschrijving,
|
||
COALESCE (pa.alg_plaatsaanduiding,
|
||
l.alg_locatie_code)
|
||
plaatsaanduiding,
|
||
p.prs_perslid_naam_full
|
||
FROM mld_melding m,
|
||
mld_stdmelding sm,
|
||
ins_tab_discipline td,
|
||
ins_srtdiscipline sd,
|
||
mld_statuses s,
|
||
alg_v_plaatsaanduiding pa,
|
||
alg_locatie l,
|
||
prs_v_perslid_fullnames p
|
||
WHERE m.mld_stdmelding_key =
|
||
sm.mld_stdmelding_key
|
||
AND sm.mld_ins_discipline_key =
|
||
td.ins_discipline_key
|
||
AND td.ins_srtdiscipline_key =
|
||
sd.ins_srtdiscipline_key
|
||
AND sd.ins_srtdiscipline_key = 2 -- ICT
|
||
AND m.mld_melding_status =
|
||
s.mld_statuses_key
|
||
AND m.mld_alg_onroerendgoed_keys =
|
||
pa.alg_onroerendgoed_keys(+)
|
||
AND m.mld_alg_locatie_key =
|
||
l.alg_locatie_key
|
||
AND m.prs_perslid_key =
|
||
p.prs_perslid_key) meld
|
||
LEFT JOIN
|
||
fac_tracking mldnew
|
||
ON meld.mld_key = mldnew.fac_tracking_refkey
|
||
AND mldnew.fac_srtnotificatie_key = 21
|
||
LEFT JOIN
|
||
(SELECT t.fac_tracking_refkey,
|
||
t.fac_tracking_datum,
|
||
t.prs_perslid_key
|
||
FROM fac_tracking t
|
||
WHERE t.fac_srtnotificatie_key = 17
|
||
AND t.fac_tracking_key IN
|
||
(SELECT MAX (fac_tracking_key)
|
||
FROM fac_tracking
|
||
WHERE fac_srtnotificatie_key =
|
||
17
|
||
AND fac_tracking_refkey =
|
||
t.fac_tracking_refkey))
|
||
mldacp
|
||
ON meld.mld_key = mldacp.fac_tracking_refkey
|
||
LEFT JOIN
|
||
fac_tracking mldrej
|
||
ON meld.mld_key = mldrej.fac_tracking_refkey
|
||
AND mldrej.fac_srtnotificatie_key = 22
|
||
LEFT JOIN
|
||
(SELECT t.fac_tracking_refkey,
|
||
t.fac_tracking_datum,
|
||
t.prs_perslid_key
|
||
FROM fac_tracking t
|
||
WHERE t.fac_srtnotificatie_key = 144
|
||
AND t.fac_tracking_key IN
|
||
(SELECT MAX (fac_tracking_key)
|
||
FROM fac_tracking
|
||
WHERE fac_srtnotificatie_key = 144
|
||
AND fac_tracking_refkey =
|
||
t.fac_tracking_refkey))
|
||
mldbeh
|
||
ON meld.mld_key = mldbeh.fac_tracking_refkey
|
||
LEFT JOIN
|
||
fac_tracking mldafm
|
||
ON meld.mld_key = mldafm.fac_tracking_refkey
|
||
AND mldafm.fac_srtnotificatie_key = 18
|
||
WHERE mldafm.fac_tracking_datum IS NULL
|
||
OR mldafm.fac_tracking_datum >
|
||
TRUNC (ADD_MONTHS (SYSDATE, -12), 'YYYY');
|
||
|
||
-- HOUT#27850: Urenregistratie tbv. Facilities (HOUT#23679) naar PSC omgebouwd!
|
||
/* Formatted on 24-10-2013 14:08:22 (QP5 v5.115.810.9015) */
|
||
CREATE OR REPLACE VIEW hout_v_rap_urenreg_psc
|
||
(
|
||
fclt_x_vakgroep,
|
||
fclt_f_melding,
|
||
fclt_f_opdrachttype,
|
||
fclt_f_projectnummer,
|
||
fclt_x_opdrachtnr,
|
||
html_opdrachtnr,
|
||
omschrijving,
|
||
dag,
|
||
fclt_d_datum,
|
||
fclt_f_medewerker,
|
||
--fclt_f_type_personeel,
|
||
uren,
|
||
uurtarief,
|
||
kmtarief,
|
||
kmperwk
|
||
)
|
||
AS
|
||
SELECT opdr.ins_discipline_omschrijving vakgroep,
|
||
opdr.mld_stdmelding_omschrijving melding,
|
||
opdr.mld_typeopdr_omschrijving opdrachttype,
|
||
TO_CHAR (opdr.mld_melding_key) projectnummer,
|
||
opdr.mld_melding_key || '/' || opdr.mld_opdr_bedrijfopdr_volgnr
|
||
opdrachtnr,
|
||
DECODE (
|
||
opdr.mld_opdr_key,
|
||
NULL,
|
||
NULL,
|
||
'<a class="details" onclick=''FcltMgr.openDetail("appl/mld/mld_opdr.asp?urole=bo&'
|
||
|| 'opdr_key='
|
||
|| opdr.mld_opdr_key
|
||
|| '")''>'
|
||
|| opdr.mld_melding_key
|
||
|| '/'
|
||
|| opdr.mld_opdr_bedrijfopdr_volgnr
|
||
|| '</a>'
|
||
)
|
||
html_opdrachtnr,
|
||
opdr.mld_opdr_omschrijving opdr_oms,
|
||
DECODE (TO_CHAR (ou.mld_opdr_uren_datum, 'D'),
|
||
2, 'Ma',
|
||
3, 'Di',
|
||
4, 'Wo',
|
||
5, 'Do',
|
||
6, 'Vr',
|
||
7, 'Za',
|
||
'Zo')
|
||
dag,
|
||
TO_CHAR (ou.mld_opdr_uren_datum, 'dd-mm-yyyy') datum,
|
||
opdr.prs_perslid_naam_full
|
||
|| DECODE (b.prs_perslid_key,
|
||
NULL, '',
|
||
' (' || b.prs_bedrijf_naam || ')')
|
||
medewerker,
|
||
--kl.fac_usrdata_omschr type_pers,
|
||
ou.mld_opdr_uren_besteed,
|
||
k1.uurtarief,
|
||
k2.kmtarief,
|
||
k3.kmperwk
|
||
FROM (SELECT o.mld_melding_key,
|
||
o.mld_opdr_key,
|
||
o.mld_opdr_bedrijfopdr_volgnr,
|
||
sm.mld_stdmelding_omschrijving,
|
||
md.ins_discipline_omschrijving,
|
||
ot.mld_typeopdr_omschrijving,
|
||
o.mld_opdr_omschrijving,
|
||
pf.prs_perslid_key,
|
||
pf.prs_perslid_naam_full
|
||
FROM mld_opdr o,
|
||
mld_typeopdr ot,
|
||
mld_melding m,
|
||
mld_stdmelding sm,
|
||
mld_discipline md,
|
||
prs_v_perslid_fullnames pf
|
||
WHERE o.mld_statusopdr_key != 1 -- Afgewezen
|
||
AND o.mld_typeopdr_key =
|
||
ot.mld_typeopdr_key
|
||
AND ot.mld_typeopdr_matchtype = 3 -- Wekelijks geregistreerde uren
|
||
AND o.mld_melding_key =
|
||
m.mld_melding_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 = 181 -- PSC urenregistratie
|
||
AND o.mld_uitvoerende_keys =
|
||
pf.prs_perslid_key) opdr
|
||
LEFT JOIN
|
||
(SELECT cp.prs_perslid_key,
|
||
b.prs_bedrijf_naam
|
||
FROM prs_contactpersoon cp, prs_bedrijf b
|
||
WHERE cp.prs_bedrijf_key =
|
||
b.prs_bedrijf_key) b
|
||
ON opdr.prs_perslid_key = b.prs_perslid_key
|
||
LEFT JOIN
|
||
mld_opdr_uren ou
|
||
ON opdr.mld_opdr_key = ou.mld_opdr_key
|
||
LEFT JOIN -- Weg???
|
||
(SELECT kl.prs_link_key, ud.fac_usrdata_omschr
|
||
FROM prs_kenmerklink kl, fac_usrdata ud
|
||
WHERE kl.prs_kenmerk_key = 1020 -- Type personeel
|
||
AND fac.safe_to_number (
|
||
kl.prs_kenmerklink_waarde
|
||
) = ud.fac_usrdata_key
|
||
AND ud.fac_usrtab_key = 581) k0 -- Type personeel
|
||
ON opdr.prs_perslid_key = k0.prs_link_key
|
||
LEFT JOIN
|
||
(SELECT ko.mld_opdr_key,
|
||
ko.mld_kenmerkopdr_waarde uurtarief
|
||
FROM mld_v_aanwezigkenmerkopdr ko, mld_kenmerk k
|
||
WHERE ko.mld_kenmerk_key = k.mld_kenmerk_key
|
||
AND k.mld_srtkenmerk_key = 1161 -- Uurtarief
|
||
AND k.mld_kenmerk_niveau = 'O') k1 -- Uurtarief
|
||
ON opdr.mld_opdr_key = k1.mld_opdr_key
|
||
LEFT JOIN
|
||
(SELECT ko.mld_opdr_key,
|
||
ko.mld_kenmerkopdr_waarde kmtarief
|
||
FROM mld_v_aanwezigkenmerkopdr ko, mld_kenmerk k
|
||
WHERE ko.mld_kenmerk_key = k.mld_kenmerk_key
|
||
AND k.mld_srtkenmerk_key = 1181 -- Km-tarief
|
||
AND k.mld_kenmerk_niveau = 'O') k2 -- Km-tarief
|
||
ON opdr.mld_opdr_key = k2.mld_opdr_key
|
||
LEFT JOIN
|
||
(SELECT ko.mld_opdr_key, ko.mld_kenmerkopdr_waarde kmperwk
|
||
FROM mld_v_aanwezigkenmerkopdr ko, mld_kenmerk k
|
||
WHERE ko.mld_kenmerk_key = k.mld_kenmerk_key
|
||
AND k.mld_srtkenmerk_key = 1182 -- Km per wk
|
||
AND k.mld_kenmerk_niveau = 'O') k3 -- Km per wk
|
||
ON opdr.mld_opdr_key = k3.mld_opdr_key
|
||
WHERE ou.mld_opdr_uren_besteed IS NOT NULL;
|
||
|
||
/* Formatted on 2-1-2014 14:22:55 (QP5 v5.115.810.9015) */
|
||
CREATE OR REPLACE VIEW hout_v_rap_wk_uren_psc
|
||
(
|
||
hide_f_bv,
|
||
wknr,
|
||
maandag,
|
||
fclt_d_zondag,
|
||
begindatum,
|
||
einddatum,
|
||
uren_vast,
|
||
loon_vast,
|
||
uurtarief,
|
||
kmtarief,
|
||
kmperwk,
|
||
fclt_f_opdrachttype,
|
||
fclt_f_projectnummer,
|
||
opdr_oms,
|
||
fclt_f_locatie,
|
||
fclt_f_medewerker,
|
||
--mdw_type,
|
||
uren_besteed,
|
||
loon_besteed,
|
||
ma_uren,
|
||
di_uren,
|
||
wo_uren,
|
||
do_uren,
|
||
vr_uren,
|
||
za_uren,
|
||
zo_uren
|
||
)
|
||
AS
|
||
SELECT 'B' bv, -- Besteed
|
||
TO_CHAR (wk.dag, 'IYYY-IW') wknr,
|
||
TO_CHAR (TRUNC (wk.dag, 'IW'), 'dd-mm-yyyy') maandag,
|
||
TO_CHAR (TRUNC (wk.dag, 'IW') + 6, 'dd-mm-yyyy') fclt_d_zondag, -- Ref.datum bij van/tot-selectie!
|
||
ou.mld_opdr_datumbegin,
|
||
ou.mld_opdr_einddatum,
|
||
NULL uren_vast, --ou.uren_vast,
|
||
NULL loon_vast,
|
||
--NULL uurtarief, --k1.uurtarief,
|
||
--NULL kmtarief, --k2.kmtarief,
|
||
--NULL kmperwk, --k3.kmperwk,
|
||
COALESCE (k1.uurtarief, '0') uurtarief,
|
||
COALESCE (k2.kmtarief, '0') kmtarief,
|
||
COALESCE (k3.kmperwk, '0') kmperwk,
|
||
ou.mld_typeopdr_omschrijving opdrachttype,
|
||
TO_CHAR (ou.mld_melding_key) projectnummer,
|
||
ou.mld_opdr_omschrijving opdr_oms,
|
||
ou.alg_locatie_omschrijving locatie,
|
||
--opdr.ins_discipline_omschrijving vakgroep,
|
||
--opdr.mld_stdmelding_omschrijving melding,
|
||
--opdr.mld_melding_key || '/' || opdr.mld_opdr_bedrijfopdr_volgnr
|
||
-- opdrachtnr,
|
||
--ou.prs_perslid_naam_full mdw_naam,
|
||
ou.prs_perslid_naam_full
|
||
|| DECODE (b.prs_perslid_key,
|
||
NULL, '',
|
||
' (' || b.prs_bedrijf_naam || ')')
|
||
medewerker,
|
||
--NULL mdw_type,
|
||
COALESCE (ou.ma, 0)
|
||
+ COALESCE (ou.di, 0)
|
||
+ COALESCE (ou.wo, 0)
|
||
+ COALESCE (ou.do, 0)
|
||
+ COALESCE (ou.vr, 0)
|
||
+ COALESCE (ou.za, 0)
|
||
+ COALESCE (ou.zo, 0)
|
||
uren_besteed,
|
||
( COALESCE (ou.ma, 0)
|
||
+ COALESCE (ou.di, 0)
|
||
+ COALESCE (ou.wo, 0)
|
||
+ COALESCE (ou.do, 0)
|
||
+ COALESCE (ou.vr, 0)
|
||
+ COALESCE (ou.za, 0)
|
||
+ COALESCE (ou.zo, 0))
|
||
* COALESCE (fac.safe_to_number (k1.uurtarief), 0)
|
||
loon_besteed,
|
||
COALESCE (ou.ma, 0),
|
||
COALESCE (ou.di, 0),
|
||
COALESCE (ou.wo, 0),
|
||
COALESCE (ou.do, 0),
|
||
COALESCE (ou.vr, 0),
|
||
COALESCE (ou.za, 0),
|
||
COALESCE (ou.zo, 0)
|
||
FROM ( SELECT TRUNC (ADD_MONTHS (SYSDATE, -12),
|
||
'YYYY')
|
||
+ (ROWNUM * 7)
|
||
dag
|
||
FROM DUAL
|
||
CONNECT BY LEVEL <=
|
||
(CEIL( (SYSDATE
|
||
- TRUNC (
|
||
ADD_MONTHS (SYSDATE,
|
||
-12),
|
||
'YYYY'
|
||
))
|
||
/ 7)
|
||
+ 2)) wk
|
||
LEFT JOIN -- Tbv. te berekenen bestede uren per dag!
|
||
(SELECT ou.wk,
|
||
o.mld_melding_key,
|
||
o.mld_opdr_key,
|
||
o.mld_opdr_bedrijfopdr_volgnr,
|
||
o.mld_opdr_datumbegin,
|
||
o.mld_opdr_einddatum,
|
||
o.mld_opdr_uren uren_vast,
|
||
ot.mld_typeopdr_omschrijving,
|
||
DECODE (sm.mld_ins_discipline_key,
|
||
1841, -- Afwezigheidsregistratie
|
||
'*Verlof/ziek',
|
||
o.mld_opdr_omschrijving)
|
||
mld_opdr_omschrijving,
|
||
--sm.mld_stdmelding_omschrijving,
|
||
l.alg_locatie_omschrijving,
|
||
pf.prs_perslid_key,
|
||
pf.prs_perslid_naam_full,
|
||
DECODE (sm.mld_ins_discipline_key,
|
||
1841, -- Afwezigheidsregistratie
|
||
-1 * ou.ma, -- -!
|
||
ou.ma) -- +!
|
||
ma,
|
||
DECODE (sm.mld_ins_discipline_key,
|
||
1841, -- Afwezigheidsregistratie
|
||
-1 * ou.di, -- -!
|
||
ou.di) -- +!
|
||
di,
|
||
DECODE (sm.mld_ins_discipline_key,
|
||
1841, -- Afwezigheidsregistratie
|
||
-1 * ou.wo, -- -!
|
||
ou.wo) -- +!
|
||
wo,
|
||
DECODE (sm.mld_ins_discipline_key,
|
||
1841, -- Afwezigheidsregistratie
|
||
-1 * ou.do, -- -!
|
||
ou.do) -- +!
|
||
do,
|
||
DECODE (sm.mld_ins_discipline_key,
|
||
1841, -- Afwezigheidsregistratie
|
||
-1 * ou.vr, -- -!
|
||
ou.vr) -- +!
|
||
vr,
|
||
DECODE (sm.mld_ins_discipline_key,
|
||
1841, -- Afwezigheidsregistratie
|
||
-1 * ou.za, -- -!
|
||
ou.za) -- +!
|
||
za,
|
||
DECODE (sm.mld_ins_discipline_key,
|
||
1841, -- Afwezigheidsregistratie
|
||
-1 * ou.zo, -- -!
|
||
ou.zo) -- +!
|
||
zo
|
||
FROM ( SELECT TO_CHAR (mld_opdr_uren_datum,
|
||
'IYYY-IW')
|
||
wk,
|
||
mld_opdr_key,
|
||
SUM(DECODE (
|
||
TO_CHAR (
|
||
mld_opdr_uren_datum,
|
||
'D'
|
||
),
|
||
2,
|
||
mld_opdr_uren_besteed,
|
||
0
|
||
))
|
||
ma,
|
||
SUM(DECODE (
|
||
TO_CHAR (
|
||
mld_opdr_uren_datum,
|
||
'D'
|
||
),
|
||
3,
|
||
mld_opdr_uren_besteed,
|
||
0
|
||
))
|
||
di,
|
||
SUM(DECODE (
|
||
TO_CHAR (
|
||
mld_opdr_uren_datum,
|
||
'D'
|
||
),
|
||
4,
|
||
mld_opdr_uren_besteed,
|
||
0
|
||
))
|
||
wo,
|
||
SUM(DECODE (
|
||
TO_CHAR (
|
||
mld_opdr_uren_datum,
|
||
'D'
|
||
),
|
||
5,
|
||
mld_opdr_uren_besteed,
|
||
0
|
||
))
|
||
do,
|
||
SUM(DECODE (
|
||
TO_CHAR (
|
||
mld_opdr_uren_datum,
|
||
'D'
|
||
),
|
||
6,
|
||
mld_opdr_uren_besteed,
|
||
0
|
||
))
|
||
vr,
|
||
SUM(DECODE (
|
||
TO_CHAR (
|
||
mld_opdr_uren_datum,
|
||
'D'
|
||
),
|
||
7,
|
||
mld_opdr_uren_besteed,
|
||
0
|
||
))
|
||
za,
|
||
SUM(DECODE (
|
||
TO_CHAR (
|
||
mld_opdr_uren_datum,
|
||
'D'
|
||
),
|
||
1,
|
||
mld_opdr_uren_besteed,
|
||
0
|
||
))
|
||
zo
|
||
FROM mld_opdr_uren
|
||
GROUP BY TO_CHAR (
|
||
mld_opdr_uren_datum,
|
||
'IYYY-IW'
|
||
),
|
||
mld_opdr_key) ou,
|
||
mld_opdr o,
|
||
mld_typeopdr ot,
|
||
mld_melding m,
|
||
mld_stdmelding sm,
|
||
mld_discipline md,
|
||
alg_v_aanweziglocatie l,
|
||
prs_v_perslid_fullnames pf
|
||
WHERE ou.mld_opdr_key = o.mld_opdr_key
|
||
AND o.mld_statusopdr_key != 1 -- Afgewezen
|
||
AND o.mld_typeopdr_key =
|
||
ot.mld_typeopdr_key
|
||
AND ot.mld_typeopdr_matchtype = 3 -- Wekelijks geregistreerde uren
|
||
AND o.mld_melding_key =
|
||
m.mld_melding_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 = 181 -- PSC urenregistratie
|
||
AND m.mld_alg_locatie_key =
|
||
l.alg_locatie_key(+)
|
||
AND o.mld_uitvoerende_keys =
|
||
pf.prs_perslid_key) ou
|
||
ON TO_CHAR (wk.dag, 'IYYY-IW') = ou.wk
|
||
LEFT JOIN
|
||
( SELECT cp.prs_perslid_key,
|
||
MIN (b.prs_bedrijf_naam) prs_bedrijf_naam
|
||
FROM prs_contactpersoon cp, prs_bedrijf b
|
||
WHERE cp.prs_bedrijf_key = b.prs_bedrijf_key
|
||
GROUP BY cp.prs_perslid_key) b
|
||
ON ou.prs_perslid_key = b.prs_perslid_key
|
||
LEFT JOIN
|
||
(SELECT ko.mld_opdr_key,
|
||
ko.mld_kenmerkopdr_waarde uurtarief
|
||
FROM mld_v_aanwezigkenmerkopdr ko, mld_kenmerk k
|
||
WHERE ko.mld_kenmerk_key = k.mld_kenmerk_key
|
||
AND k.mld_srtkenmerk_key = 1161 -- Uurtarief
|
||
AND k.mld_kenmerk_niveau = 'O') k1 -- Uurtarief
|
||
ON ou.mld_opdr_key = k1.mld_opdr_key
|
||
LEFT JOIN
|
||
(SELECT ko.mld_opdr_key,
|
||
ko.mld_kenmerkopdr_waarde kmtarief
|
||
FROM mld_v_aanwezigkenmerkopdr ko, mld_kenmerk k
|
||
WHERE ko.mld_kenmerk_key = k.mld_kenmerk_key
|
||
AND k.mld_srtkenmerk_key = 1181 -- Km-tarief
|
||
AND k.mld_kenmerk_niveau = 'O') k2 -- Km-tarief
|
||
ON ou.mld_opdr_key = k2.mld_opdr_key
|
||
LEFT JOIN
|
||
(SELECT ko.mld_opdr_key, ko.mld_kenmerkopdr_waarde kmperwk
|
||
FROM mld_v_aanwezigkenmerkopdr ko, mld_kenmerk k
|
||
WHERE ko.mld_kenmerk_key = k.mld_kenmerk_key
|
||
AND k.mld_srtkenmerk_key = 1182 -- Km per wk
|
||
AND k.mld_kenmerk_niveau = 'O') k3 -- Km per wk
|
||
ON ou.mld_opdr_key = k3.mld_opdr_key
|
||
UNION ALL
|
||
SELECT 'V' bv, -- Vast
|
||
TO_CHAR (o.dag, 'IYYY-IW') wknr,
|
||
TO_CHAR (TRUNC (o.dag, 'IW'), 'dd-mm-yyyy') maandag,
|
||
TO_CHAR (TRUNC (o.dag, 'IW') + 6, 'dd-mm-yyyy') fclt_d_zondag, -- Ref.datum bij van/tot-selectie!
|
||
o.mld_opdr_datumbegin,
|
||
o.mld_opdr_einddatum,
|
||
o.uren_vast,
|
||
o.uren_vast * COALESCE (fac.safe_to_number (k1.uurtarief), 0)
|
||
loon_vast,
|
||
COALESCE (k1.uurtarief, '0') uurtarief,
|
||
COALESCE (k2.kmtarief, '0') kmtarief,
|
||
COALESCE (k3.kmperwk, '0') kmperwk,
|
||
o.mld_typeopdr_omschrijving opdrachttype,
|
||
TO_CHAR (o.mld_melding_key) projectnummer,
|
||
o.mld_opdr_omschrijving opdr_oms,
|
||
o.alg_locatie_omschrijving locatie,
|
||
--opdr.ins_discipline_omschrijving vakgroep,
|
||
--opdr.mld_stdmelding_omschrijving melding,
|
||
--opdr.mld_melding_key || '/' || opdr.mld_opdr_bedrijfopdr_volgnr
|
||
-- opdrachtnr,
|
||
--o.prs_perslid_naam_full mdw_naam,
|
||
o.prs_perslid_naam_full
|
||
|| DECODE (b.prs_perslid_key,
|
||
NULL, '',
|
||
' (' || b.prs_bedrijf_naam || ')')
|
||
medewerker,
|
||
--kl.fac_usrdata_omschr mdw_type,
|
||
0,
|
||
0,
|
||
0,
|
||
0,
|
||
0,
|
||
0,
|
||
0,
|
||
0,
|
||
0
|
||
FROM (SELECT wk.dag,
|
||
o.mld_melding_key,
|
||
o.mld_opdr_key,
|
||
o.mld_opdr_bedrijfopdr_volgnr,
|
||
o.mld_opdr_datumbegin,
|
||
o.mld_opdr_einddatum,
|
||
o.mld_opdr_uren uren_vast,
|
||
ot.mld_typeopdr_omschrijving,
|
||
o.mld_opdr_omschrijving,
|
||
--sm.mld_stdmelding_omschrijving,
|
||
l.alg_locatie_omschrijving,
|
||
pf.prs_perslid_key,
|
||
pf.prs_perslid_naam_full
|
||
FROM mld_opdr o,
|
||
mld_typeopdr ot,
|
||
mld_melding m,
|
||
mld_stdmelding sm,
|
||
mld_discipline md,
|
||
alg_v_aanweziglocatie l,
|
||
prs_v_perslid_fullnames pf,
|
||
( SELECT TRUNC (
|
||
ADD_MONTHS (SYSDATE, -12),
|
||
'YYYY'
|
||
)
|
||
+ (ROWNUM * 7)
|
||
dag
|
||
FROM DUAL
|
||
CONNECT BY LEVEL <=
|
||
(CEIL( (SYSDATE
|
||
- TRUNC (
|
||
ADD_MONTHS (
|
||
SYSDATE,
|
||
-12
|
||
),
|
||
'YYYY'
|
||
))
|
||
/ 7)
|
||
+ 2)) wk
|
||
WHERE o.mld_statusopdr_key != 1 -- Afgewezen
|
||
AND o.mld_typeopdr_key =
|
||
ot.mld_typeopdr_key
|
||
AND ot.mld_typeopdr_matchtype = 3 -- Wekelijks geregistreerde uren
|
||
AND o.mld_melding_key =
|
||
m.mld_melding_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 = 181 -- PSC urenregistratie
|
||
AND m.mld_alg_locatie_key =
|
||
l.alg_locatie_key(+)
|
||
AND o.mld_uitvoerende_keys =
|
||
pf.prs_perslid_key
|
||
AND TO_CHAR (wk.dag, 'IYYY-IW') BETWEEN TO_CHAR (
|
||
o.mld_opdr_datumbegin,
|
||
'IYYY-IW'
|
||
)
|
||
AND TO_CHAR (
|
||
o.mld_opdr_einddatum,
|
||
'IYYY-IW'
|
||
))
|
||
o
|
||
LEFT JOIN
|
||
( SELECT cp.prs_perslid_key,
|
||
MIN (b.prs_bedrijf_naam)
|
||
prs_bedrijf_naam
|
||
FROM prs_contactpersoon cp, prs_bedrijf b
|
||
WHERE cp.prs_bedrijf_key = b.prs_bedrijf_key
|
||
GROUP BY cp.prs_perslid_key) b
|
||
ON o.prs_perslid_key = b.prs_perslid_key
|
||
LEFT JOIN -- Weg???
|
||
(SELECT kl.prs_link_key, ud.fac_usrdata_omschr
|
||
FROM prs_kenmerklink kl, fac_usrdata ud
|
||
WHERE kl.prs_kenmerk_key = 1020 -- Type personeel
|
||
AND fac.safe_to_number (
|
||
kl.prs_kenmerklink_waarde
|
||
) = ud.fac_usrdata_key
|
||
AND ud.fac_usrtab_key = 581) k0 -- Type personeel
|
||
ON o.prs_perslid_key = k0.prs_link_key
|
||
LEFT JOIN
|
||
(SELECT ko.mld_opdr_key,
|
||
ko.mld_kenmerkopdr_waarde uurtarief
|
||
FROM mld_v_aanwezigkenmerkopdr ko, mld_kenmerk k
|
||
WHERE ko.mld_kenmerk_key = k.mld_kenmerk_key
|
||
AND k.mld_srtkenmerk_key = 1161 -- Uurtarief
|
||
AND k.mld_kenmerk_niveau = 'O') k1 -- Uurtarief
|
||
ON o.mld_opdr_key = k1.mld_opdr_key
|
||
LEFT JOIN
|
||
(SELECT ko.mld_opdr_key,
|
||
ko.mld_kenmerkopdr_waarde kmtarief
|
||
FROM mld_v_aanwezigkenmerkopdr ko, mld_kenmerk k
|
||
WHERE ko.mld_kenmerk_key = k.mld_kenmerk_key
|
||
AND k.mld_srtkenmerk_key = 1181 -- Km-tarief
|
||
AND k.mld_kenmerk_niveau = 'O') k2 -- Km-tarief
|
||
ON o.mld_opdr_key = k2.mld_opdr_key
|
||
LEFT JOIN
|
||
(SELECT ko.mld_opdr_key, ko.mld_kenmerkopdr_waarde kmperwk
|
||
FROM mld_v_aanwezigkenmerkopdr ko, mld_kenmerk k
|
||
WHERE ko.mld_kenmerk_key = k.mld_kenmerk_key
|
||
AND k.mld_srtkenmerk_key = 1182 -- Km per wk
|
||
AND k.mld_kenmerk_niveau = 'O') k3 -- Km per wk
|
||
ON o.mld_opdr_key = k3.mld_opdr_key;
|
||
|
||
|
||
/* Formatted on 17-1-2013 17:04:16 (QP5 v5.115.810.9015) */
|
||
CREATE OR REPLACE PROCEDURE HOUT_processemail (pfrom IN VARCHAR2,
|
||
pto IN VARCHAR2,
|
||
psubject IN VARCHAR2,
|
||
pbody IN VARCHAR2,
|
||
pextra IN VARCHAR2)
|
||
AS
|
||
v_errormsg VARCHAR2 (1000);
|
||
oracle_err_num NUMBER;
|
||
oracle_err_mes VARCHAR2 (200);
|
||
|
||
v_perslid_key NUMBER (10);
|
||
v_kostenplaats_key NUMBER (10);
|
||
v_stdmelding_key NUMBER (10);
|
||
v_stdmelding_uvt NUMBER (8, 5);
|
||
v_deel_key NUMBER (10);
|
||
v_onrgoed_keys NUMBER (10);
|
||
v_locatie_key NUMBER (10);
|
||
v_melding_key NUMBER (10);
|
||
BEGIN
|
||
CASE
|
||
WHEN UPPER (pto) LIKE 'PRINTERS@%'
|
||
THEN
|
||
v_errormsg := 'Fout bij bepalen printer-melder';
|
||
|
||
-- Valideer bestaan van persoon met key=10081 (Externe partij/leverancier)?
|
||
SELECT p.prs_perslid_key, a.prs_kostenplaats_key
|
||
INTO v_perslid_key, v_kostenplaats_key
|
||
FROM prs_v_aanwezigperslid p, prs_afdeling a
|
||
WHERE p.prs_perslid_key = 10081
|
||
AND p.prs_afdeling_key = a.prs_afdeling_key;
|
||
|
||
v_errormsg := 'Fout bij bepalen printer-melding';
|
||
|
||
-- Valideer bestaan van stdmelding met key=2481 (MF Ricoh automatische melding)?
|
||
SELECT sm.mld_stdmelding_key, sm.mld_stdmelding_uitvoertijd
|
||
INTO v_stdmelding_key, v_stdmelding_uvt
|
||
FROM mld_stdmelding sm
|
||
WHERE sm.mld_stdmelding_key = 2481
|
||
AND sm.mld_stdmelding_verwijder IS NULL;
|
||
|
||
v_errormsg :=
|
||
'Fout bij bepalen printer-object: '
|
||
|| SUBSTR (pfrom, 1, INSTR (pfrom, '@') - 1);
|
||
|
||
-- Valideer de sender in pfrom: kennen we deze als object in de groep met
|
||
-- key=21 (Multifunctionals)?
|
||
SELECT d.ins_deel_key, og.alg_onrgoed_keys, og.alg_locatie_key
|
||
INTO v_deel_key, v_onrgoed_keys, v_locatie_key
|
||
FROM ins_v_aanwezigdeel d,
|
||
ins_v_aanwezigsrtdeel sd,
|
||
ins_v_alg_onroerendgoed og
|
||
WHERE UPPER (d.ins_deel_omschrijving) LIKE
|
||
UPPER (SUBSTR (pfrom, 1, INSTR (pfrom, '@') - 1)) || '%'
|
||
AND d.ins_srtdeel_key = sd.ins_srtdeel_key
|
||
AND sd.ins_srtgroep_key = 21
|
||
AND d.ins_alg_ruimte_key = og.alg_onrgoed_keys;
|
||
|
||
-- suggested extensions:
|
||
-- check for MLDUSE-write autorisations
|
||
-- parse the subject to find the appropriate stdmelding, if uniquely possible
|
||
-- append (as a note?) to an existing melding if #key is found in the subject
|
||
v_errormsg := 'Fout bij toevoegen melding';
|
||
|
||
INSERT INTO mld_melding (mld_melding_module,
|
||
mld_meldbron_key,
|
||
mld_alg_locatie_key,
|
||
mld_alg_onroerendgoed_keys,
|
||
mld_melding_datum,
|
||
mld_melding_omschrijving,
|
||
mld_melding_status,
|
||
mld_melding_uitvoertijd,
|
||
mld_stdmelding_key,
|
||
prs_perslid_key,
|
||
prs_perslid_key_voor,
|
||
prs_kostenplaats_key,
|
||
mld_melding_spoed)
|
||
VALUES ('MLD',
|
||
4, -- email
|
||
v_locatie_key,
|
||
v_onrgoed_keys,
|
||
SYSDATE,
|
||
SUBSTR (psubject, 1, 4000),
|
||
NULL,
|
||
v_stdmelding_uvt,
|
||
v_stdmelding_key,
|
||
v_perslid_key,
|
||
v_perslid_key,
|
||
v_kostenplaats_key,
|
||
3) -- prio normaal
|
||
RETURNING mld_melding_key INTO v_melding_key;
|
||
|
||
v_errormsg := 'Fout bij toevoegen melding-object';
|
||
|
||
INSERT INTO mld_melding_object (mld_melding_key, ins_deel_key)
|
||
VALUES (v_melding_key, v_deel_key);
|
||
|
||
mld.setmeldingstatus (v_melding_key, 2, v_perslid_key);
|
||
ELSE
|
||
INSERT INTO fac_result (
|
||
fac_result_sessionid,
|
||
fac_result_naam,
|
||
fac_result_waarde
|
||
)
|
||
VALUES (
|
||
'hMailServer',
|
||
'errormsg',
|
||
'Onvanger ongeldig - Neem contact op met uw systeembeheerder '
|
||
);
|
||
END CASE;
|
||
EXCEPTION
|
||
WHEN OTHERS
|
||
THEN
|
||
oracle_err_num := SQLCODE;
|
||
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
|
||
v_errormsg :=
|
||
v_errormsg
|
||
|| ' ORACLE (error '
|
||
|| oracle_err_num
|
||
|| '/'
|
||
|| oracle_err_mes
|
||
|| ')';
|
||
fac.writelog ('PROCESSEMAIL',
|
||
'E',
|
||
'HOUT_processemail afgebroken!',
|
||
'[' || pfrom || '] ' || v_errormsg);
|
||
|
||
INSERT INTO fac_result (
|
||
fac_result_sessionid,
|
||
fac_result_naam,
|
||
fac_result_waarde
|
||
)
|
||
VALUES (
|
||
'hMailServer',
|
||
'errormsg',
|
||
'Database fout - Neem contact op met uw systeembeheerder '
|
||
);
|
||
|
||
COMMIT;
|
||
END;
|
||
/
|
||
|
||
/* Formatted on 14-1-2013 14:52:58 (QP5 v5.115.810.9015) */
|
||
CREATE OR REPLACE VIEW hout_v_rap_mail_error
|
||
(
|
||
hide_f_offset,
|
||
datum,
|
||
hint,
|
||
error
|
||
)
|
||
AS
|
||
SELECT SYSDATE - imp_log_datum,
|
||
imp_log_datum,
|
||
imp_log_hint,
|
||
imp_log_omschrijving
|
||
FROM imp_log
|
||
WHERE imp_log_applicatie = 'PROCESSEMAIL'
|
||
AND imp_log_datum > SYSDATE - 30;
|
||
|
||
|
||
-- HOUT#27713
|
||
CREATE OR REPLACE VIEW HOUT_V_RAP_PRJ_OVZ
|
||
(
|
||
FCLT_F_PROJECTTYPE,
|
||
FCLT_F_Project,
|
||
Projectnr,
|
||
Projectomschrijving,
|
||
Projectmanager,
|
||
Adviseur,
|
||
Opdrachtgever,
|
||
Startdatum,
|
||
Einddatum,
|
||
Status,
|
||
Innovatief,
|
||
Samen,
|
||
Duurzaam,
|
||
Divers
|
||
)
|
||
AS
|
||
SELECT md.ins_discipline_omschrijving vakgroep,
|
||
std.mld_stdmelding_omschrijving project,
|
||
ins_srtdiscipline_prefix || m.mld_melding_key projectnr,
|
||
mld_melding_omschrijving projectomschrijving,
|
||
prm.prs_perslid_naam_full projectmanager,
|
||
adv.prs_perslid_naam_full adviseur,
|
||
(SELECT opd.prs_perslid_naam_full
|
||
FROM mld_kenmerkmelding mkm, prs_v_perslid_fullnames opd
|
||
WHERE m.mld_melding_key = mkm.mld_melding_key
|
||
AND mkm.mld_kenmerk_key = 1441 -- kenmerk opdrachtgever
|
||
AND opd.prs_perslid_key =
|
||
mkm.mld_kenmerkmelding_waarde(+))
|
||
opdrachtgever,
|
||
TO_CHAR (mld_melding_datum, 'DD-MM-YYYY') startdatum,
|
||
TO_CHAR (mld_melding_einddatum, 'DD-MM-YYYY') geplande_einddatum,
|
||
(SELECT fac_usrdata_omschr
|
||
FROM mld_kenmerkmelding mkm, fac_usrdata
|
||
WHERE m.mld_melding_key = mkm.mld_melding_key
|
||
AND mkm.mld_kenmerk_key = 1444 -- kenmerk status
|
||
AND fac_usrtab_key = 661 -- eigen tabel status
|
||
AND fac_usrdata_key = mld_kenmerkmelding_waarde)
|
||
status,
|
||
(SELECT mkm.mld_kenmerkmelding_waarde
|
||
FROM mld_kenmerkmelding mkm
|
||
WHERE m.mld_melding_key = mkm.mld_melding_key
|
||
AND mkm.mld_kenmerk_key = 1452) -- kenmerk innovatief
|
||
Innovatief,
|
||
(SELECT mkm.mld_kenmerkmelding_waarde
|
||
FROM mld_kenmerkmelding mkm
|
||
WHERE m.mld_melding_key = mkm.mld_melding_key
|
||
AND mkm.mld_kenmerk_key = 1453) -- kenmerk samen
|
||
Samen,
|
||
(SELECT mkm.mld_kenmerkmelding_waarde
|
||
FROM mld_kenmerkmelding mkm
|
||
WHERE m.mld_melding_key = mkm.mld_melding_key
|
||
AND mkm.mld_kenmerk_key = 1454) -- kenmerk duurzaam
|
||
Duurzaam,
|
||
(SELECT mkm.mld_kenmerkmelding_waarde
|
||
FROM mld_kenmerkmelding mkm
|
||
WHERE m.mld_melding_key = mkm.mld_melding_key
|
||
AND mkm.mld_kenmerk_key = 1455) -- kenmerk divers
|
||
Divers
|
||
FROM mld_melding m,
|
||
mld_stdmelding std,
|
||
mld_discipline md,
|
||
ins_srtdiscipline srt,
|
||
prs_v_perslid_fullnames adv,
|
||
prs_v_perslid_fullnames prm
|
||
WHERE m.mld_stdmelding_key = std.mld_stdmelding_key
|
||
AND md.ins_discipline_key = std.mld_ins_discipline_key
|
||
AND srt.ins_srtdiscipline_key = md.ins_srtdiscipline_key
|
||
AND m.mld_melding_status NOT IN (1, 5, 6) -- alleen lopende meldingen
|
||
AND adv.prs_perslid_key(+) = m.mld_melding_behandelaar_key
|
||
AND prm.prs_perslid_key = m.prs_perslid_key
|
||
AND m.fac_activiteit_key IS NULL
|
||
AND srt.ins_srtdiscipline_key = 181 -- vakgroeptype project support centre
|
||
ORDER BY 1, 2;
|
||
|
||
/* Formatted on 10-2-2014 14:48:12 (QP5 v5.136.908.31019) */
|
||
/*
|
||
CREATE OR REPLACE VIEW HOUT_V_CNT_EXTRA_NOTI
|
||
(
|
||
perslid_key,
|
||
perslid_naam
|
||
)
|
||
AS
|
||
SELECT pf.prs_perslid_key, pf.prs_perslid_naam_full
|
||
FROM fac_gebruikersgroep gg, prs_v_perslid_fullnames pf
|
||
WHERE gg.fac_groep_key IN (921, 941, 961, 962, 981, 982) -- CNT-groepen
|
||
AND gg.prs_perslid_key = pf.prs_perslid_key;
|
||
*/
|
||
|
||
/* Formatted on 10-2-2014 14:48:12 (QP5 v5.136.908.31019) */
|
||
CREATE OR REPLACE VIEW HOUT_V_NOTI_CNTREMINDER
|
||
(
|
||
CODE,
|
||
SENDER,
|
||
RECEIVER,
|
||
TEXT,
|
||
KEY,
|
||
PAR1,
|
||
PAR2,
|
||
XKEY
|
||
)
|
||
AS
|
||
SELECT '',
|
||
'',
|
||
c.prs_perslid_key_beh,
|
||
'Rapp<EFBFBD>l: 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,
|
||
c.cnt_contract_nummer_intern,
|
||
cnt.cnt_getopzegdatum (c.cnt_contract_key),
|
||
NULL
|
||
FROM cnt_v_aanwezigcontract c, prs_bedrijf b
|
||
WHERE c.cnt_prs_bedrijf_key = b.prs_bedrijf_key
|
||
AND c.cnt_contract_verwijder IS NULL
|
||
AND c.cnt_contract_status = 0
|
||
AND (SYSDATE BETWEEN cnt.cnt_getrappeldatum (c.cnt_contract_key)
|
||
AND cnt.cnt_getopzegdatum (c.cnt_contract_key))
|
||
UNION
|
||
SELECT '',
|
||
'',
|
||
c.prs_perslid_key_eig,
|
||
'Rapp<EFBFBD>l: 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,
|
||
c.cnt_contract_nummer_intern,
|
||
cnt.cnt_getopzegdatum (c.cnt_contract_key),
|
||
NULL
|
||
FROM cnt_v_aanwezigcontract c, prs_bedrijf b
|
||
WHERE c.cnt_prs_bedrijf_key = b.prs_bedrijf_key
|
||
AND c.cnt_contract_verwijder IS NULL
|
||
AND c.cnt_contract_status = 0
|
||
AND c.prs_perslid_key_eig IS NOT NULL
|
||
AND (SYSDATE BETWEEN cnt.cnt_getrappeldatum (c.cnt_contract_key)
|
||
AND cnt.cnt_getopzegdatum (c.cnt_contract_key));
|
||
|
||
BEGIN fac.registercustversion('HOUT', 31); END;
|
||
/
|
||
BEGIN adm.systrackscriptId('$Id$', 0); END;
|
||
/
|
||
commit;
|
||
|
||
spool off
|