3259 lines
136 KiB
SQL
3259 lines
136 KiB
SQL
-- Script containing customer specific db-configuration for HPJI.
|
|
-- (c) 2010 SG|facilitor bv
|
|
-- $Revision$
|
|
-- $Id$
|
|
--
|
|
-- Support: +31 53 4800700
|
|
|
|
set echo on
|
|
|
|
spool xhpji.lst
|
|
|
|
/* Formatted on 3-2-2011 11:55:55 (QP5 v5.115.810.9015) */
|
|
CREATE OR REPLACE PACKAGE HPJI
|
|
AS
|
|
-- PACKAGES voor de HPJI specifieke ondersteuning
|
|
TYPE t_cursor IS REF CURSOR;
|
|
|
|
PROCEDURE rap_it_inventaris_jaar (user_key IN NUMBER,
|
|
p_datum_van IN VARCHAR2,
|
|
p_datum_tot IN VARCHAR2,
|
|
p_cursor OUT t_cursor);
|
|
END;
|
|
/
|
|
|
|
/* Formatted on 3-2-2011 11:55:55 (QP5 v5.115.810.9015) */
|
|
CREATE OR REPLACE PACKAGE BODY HPJI
|
|
AS
|
|
PROCEDURE rap_it_inventaris_jaar (user_key IN NUMBER,
|
|
p_datum_van IN VARCHAR2, -- Let wel: formaat '24-06-1965'
|
|
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 grid.onderdeel || '-' || grid.rubriek hide_f_regel,
|
|
grid.onderdeel fclt_f_onderdeel,
|
|
grid.rubriek fclt_f_rubriek,
|
|
grid.jaar fclt_f_aanschafjaar,
|
|
COALESCE (x.aantal, 0) aantal
|
|
FROM (SELECT a.prs_afdeling_key onderdeel_key,
|
|
sd.ins_srtdeel_key rubriek_key,
|
|
j.jaar jaar,
|
|
a.prs_afdeling_omschrijving onderdeel,
|
|
sd.ins_srtdeel_omschrijving rubriek
|
|
FROM (SELECT prs_afdeling_key,
|
|
prs_afdeling_omschrijving
|
|
FROM prs_v_aanwezigafdeling
|
|
WHERE prs_afdeling_parentkey IS NULL
|
|
UNION ALL
|
|
SELECT -1 prs_afdeling_key,
|
|
'Onbekend' prs_afdeling_omschrijving
|
|
FROM DUAL) a,
|
|
ins_v_aanwezigsrtdeel sd,
|
|
ins_v_aanwezigsrtgroep sg,
|
|
(SELECT DISTINCT
|
|
TO_CHAR (
|
|
fac.safe_to_date (
|
|
ins_kenmerkdeel_waarde,
|
|
'dd-mm-yyyy'
|
|
),
|
|
'yyyy'
|
|
)
|
|
jaar
|
|
FROM ins_v_aanwezigkenmerkdeel
|
|
WHERE ins_kenmerk_key = 101 -- Aanschafdatum
|
|
AND fac.safe_to_date (
|
|
ins_kenmerkdeel_waarde,
|
|
'dd-mm-yyyy'
|
|
) BETWEEN v_datum_van
|
|
AND v_datum_tot) j
|
|
WHERE sd.ins_srtgroep_key = sg.ins_srtgroep_key
|
|
AND sg.ins_discipline_key = 401) grid -- Hardware
|
|
LEFT JOIN
|
|
( SELECT asd.prs_afdeling_key1 onderdeel_key,
|
|
asd.ins_srtdeel_key rubriek_key,
|
|
j.jaar jaar,
|
|
COUNT ( * ) aantal
|
|
FROM (SELECT DECODE (ra.aantal,
|
|
1, ab.prs_afdeling_key1,
|
|
-1)
|
|
prs_afdeling_key1,
|
|
d.ins_srtdeel_key,
|
|
d.ins_deel_key
|
|
FROM ins_v_aanwezigdeel d,
|
|
alg_v_allonrgoed_gegevens aog,
|
|
( SELECT alg_ruimte_key,
|
|
MAX (prs_afdeling_key)
|
|
prs_afdeling_key,
|
|
COUNT ( * ) aantal
|
|
FROM prs_ruimteafdeling
|
|
GROUP BY alg_ruimte_key) ra,
|
|
prs_v_afdeling_boom ab
|
|
WHERE d.ins_alg_ruimte_type NOT IN
|
|
('A', 'P', 'W')
|
|
AND d.ins_alg_ruimte_key =
|
|
aog.alg_onroerendgoed_keys
|
|
AND aog.alg_ruimte_key =
|
|
ra.alg_ruimte_key
|
|
AND ra.prs_afdeling_key =
|
|
ab.prs_afdeling_key
|
|
UNION ALL
|
|
SELECT -1 prs_afdeling_key1,
|
|
d.ins_srtdeel_key,
|
|
d.ins_deel_key
|
|
FROM ins_v_aanwezigdeel d,
|
|
alg_v_allonrgoed_gegevens aog
|
|
WHERE d.ins_alg_ruimte_type NOT IN
|
|
('A', 'P', 'W')
|
|
AND d.ins_alg_ruimte_key =
|
|
aog.alg_onroerendgoed_keys
|
|
AND (aog.alg_ruimte_key IS NULL
|
|
OR NOT EXISTS
|
|
(SELECT 1
|
|
FROM prs_ruimteafdeling ra
|
|
WHERE ra.alg_ruimte_key =
|
|
aog.alg_ruimte_key))
|
|
UNION ALL
|
|
SELECT ab.prs_afdeling_key1,
|
|
d.ins_srtdeel_key,
|
|
d.ins_deel_key
|
|
FROM ins_v_aanwezigdeel d,
|
|
prs_v_afdeling_boom ab
|
|
WHERE d.ins_alg_ruimte_type = 'A'
|
|
AND d.ins_alg_ruimte_key =
|
|
ab.prs_afdeling_key
|
|
UNION ALL
|
|
SELECT ab.prs_afdeling_key1,
|
|
d.ins_srtdeel_key,
|
|
d.ins_deel_key
|
|
FROM ins_v_aanwezigdeel d,
|
|
prs_perslid p,
|
|
prs_v_afdeling_boom ab
|
|
WHERE d.ins_alg_ruimte_type = 'P'
|
|
AND d.ins_alg_ruimte_key =
|
|
p.prs_perslid_key
|
|
AND p.prs_afdeling_key =
|
|
ab.prs_afdeling_key
|
|
UNION ALL
|
|
SELECT DECODE (ra.aantal,
|
|
1, ab.prs_afdeling_key1,
|
|
-1)
|
|
prs_afdeling_key1,
|
|
d.ins_srtdeel_key,
|
|
d.ins_deel_key
|
|
FROM ins_v_aanwezigdeel d,
|
|
prs_werkplek w,
|
|
( SELECT alg_ruimte_key,
|
|
MAX (prs_afdeling_key)
|
|
prs_afdeling_key,
|
|
COUNT ( * ) aantal
|
|
FROM prs_ruimteafdeling
|
|
GROUP BY alg_ruimte_key) ra,
|
|
prs_v_afdeling_boom ab
|
|
WHERE d.ins_alg_ruimte_type = 'W'
|
|
AND d.ins_alg_ruimte_key =
|
|
w.prs_werkplek_key
|
|
AND w.prs_alg_ruimte_key =
|
|
ra.alg_ruimte_key
|
|
AND ra.prs_afdeling_key =
|
|
ab.prs_afdeling_key
|
|
UNION ALL
|
|
SELECT -1 prs_afdeling_key1,
|
|
d.ins_srtdeel_key,
|
|
d.ins_deel_key
|
|
FROM ins_v_aanwezigdeel d,
|
|
prs_werkplek w
|
|
WHERE d.ins_alg_ruimte_type = 'W'
|
|
AND d.ins_alg_ruimte_key =
|
|
w.prs_werkplek_key
|
|
AND NOT EXISTS
|
|
(SELECT 1
|
|
FROM prs_ruimteafdeling ra
|
|
WHERE ra.alg_ruimte_key =
|
|
w.prs_alg_ruimte_key))
|
|
asd
|
|
LEFT JOIN
|
|
(SELECT ins_deel_key,
|
|
fac.safe_to_date (
|
|
ins_kenmerkdeel_waarde,
|
|
'dd-mm-yyyy'
|
|
)
|
|
datum,
|
|
TO_CHAR (
|
|
fac.safe_to_date (
|
|
ins_kenmerkdeel_waarde,
|
|
'dd-mm-yyyy'
|
|
),
|
|
'yyyy'
|
|
)
|
|
jaar
|
|
FROM ins_v_aanwezigkenmerkdeel
|
|
WHERE ins_kenmerk_key = 101) j -- Aanschafdatum
|
|
ON asd.ins_deel_key = j.ins_deel_key
|
|
WHERE j.datum BETWEEN v_datum_van AND v_datum_tot
|
|
GROUP BY asd.prs_afdeling_key1,
|
|
asd.ins_srtdeel_key,
|
|
j.jaar) x
|
|
ON grid.onderdeel_key = x.onderdeel_key
|
|
AND grid.rubriek_key = x.rubriek_key
|
|
AND grid.jaar = x.jaar
|
|
ORDER BY 1,
|
|
2,
|
|
3,
|
|
4;
|
|
END rap_it_inventaris_jaar;
|
|
END;
|
|
/
|
|
|
|
CREATE OR REPLACE VIEW hpji_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 = 41);
|
|
|
|
/* Formatted on 14-1-2010 18:14:22 (QP5 v5.115.810.9015) */
|
|
CREATE OR REPLACE PROCEDURE hpji_import_prs (p_import_key IN NUMBER)
|
|
IS
|
|
c_fielddelimitor VARCHAR2 (1) := ';';
|
|
-- LET OP: moet idem zijn als declaratie bij HPJI_UPDATE_PRS
|
|
v_newline VARCHAR2 (1000); -- Input line
|
|
v_aanduiding VARCHAR2 (200);
|
|
v_errorhint VARCHAR2 (1000);
|
|
v_errormsg VARCHAR2 (1000);
|
|
oracle_err_num NUMBER;
|
|
oracle_err_mes VARCHAR2 (200);
|
|
header_is_valid NUMBER := 0;
|
|
v_ongeldig NUMBER (1);
|
|
v_count_tot NUMBER (10);
|
|
v_count_import NUMBER (10);
|
|
v_count NUMBER;
|
|
-- De importvelden:
|
|
v_prs_perslid_oslogin VARCHAR2 (256);
|
|
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_nr VARCHAR2 (256); -- HPJI#23731
|
|
v_prs_afdeling_naam VARCHAR2 (256);
|
|
v_prs_srtperslid_omschrijving VARCHAR2 (256);
|
|
v_alg_locatie_oms VARCHAR2 (256); -- A30
|
|
v_alg_ruimte_nr VARCHAR2 (256); -- A10
|
|
v_prs_perslid_telefoonnr VARCHAR2 (256);
|
|
v_prs_perslid_mobiel VARCHAR2 (256);
|
|
v_prs_perslid_email VARCHAR2 (256);
|
|
v_prs_perslid_ingangsdatum VARCHAR2 (256);
|
|
v_prs_perslid_einddatum VARCHAR2 (256);
|
|
v_domain VARCHAR2 (256);
|
|
-- Overig:
|
|
v_prs_perslid_ingangs_date DATE;
|
|
v_prs_perslid_eind_date DATE;
|
|
|
|
CURSOR c1
|
|
IS
|
|
SELECT *
|
|
FROM fac_imp_file
|
|
WHERE fac_import_key = p_import_key
|
|
ORDER BY fac_imp_file_index;
|
|
BEGIN
|
|
DELETE FROM hpji_imp_prs;
|
|
|
|
COMMIT;
|
|
v_count_tot := 0;
|
|
v_count_import := 0;
|
|
|
|
FOR rec1 IN c1
|
|
LOOP
|
|
BEGIN
|
|
v_newline := rec1.fac_imp_file_line;
|
|
v_aanduiding := '';
|
|
v_errorhint := 'Fout bij opvragen te importeren rij';
|
|
v_ongeldig := 0;
|
|
-- Lees alle veldwaarden
|
|
-- 01
|
|
fac.imp_getfield (v_newline, c_fielddelimitor, v_prs_perslid_oslogin);
|
|
-- 02
|
|
fac.imp_getfield (v_newline, c_fielddelimitor, v_prs_perslid_naam);
|
|
-- 03
|
|
fac.imp_getfield (v_newline, c_fielddelimitor, v_prs_perslid_tussenvoegsel);
|
|
-- 04
|
|
fac.imp_getfield (v_newline, c_fielddelimitor, v_prs_perslid_voorletters);
|
|
-- 05
|
|
fac.imp_getfield (v_newline, c_fielddelimitor, v_prs_perslid_voornaam);
|
|
-- 06
|
|
fac.imp_getfield (v_newline, c_fielddelimitor, v_prs_perslid_nr);
|
|
-- 07
|
|
fac.imp_getfield (v_newline, c_fielddelimitor, v_prs_afdeling_naam);
|
|
-- 08
|
|
fac.imp_getfield (v_newline, c_fielddelimitor, v_prs_srtperslid_omschrijving);
|
|
-- 09
|
|
fac.imp_getfield (v_newline, c_fielddelimitor, v_alg_locatie_oms);
|
|
-- 10
|
|
fac.imp_getfield (v_newline, c_fielddelimitor, v_alg_ruimte_nr);
|
|
-- 11
|
|
fac.imp_getfield (v_newline, c_fielddelimitor, v_prs_perslid_telefoonnr);
|
|
-- 12
|
|
fac.imp_getfield (v_newline, c_fielddelimitor, v_prs_perslid_mobiel);
|
|
-- 13
|
|
fac.imp_getfield (v_newline, c_fielddelimitor, v_prs_perslid_email);
|
|
-- 14
|
|
fac.imp_getfield (v_newline, c_fielddelimitor, v_prs_perslid_ingangsdatum);
|
|
-- 15
|
|
fac.imp_getfield (v_newline, c_fielddelimitor, v_prs_perslid_einddatum);
|
|
-- 16
|
|
fac.imp_getfield (v_newline, c_fielddelimitor, v_domain);
|
|
--
|
|
v_aanduiding := '[' || v_prs_perslid_oslogin
|
|
|| '|' || v_prs_perslid_naam
|
|
|| '|' || v_prs_perslid_tussenvoegsel
|
|
|| '|' || v_prs_perslid_voornaam
|
|
|| '|' || v_prs_perslid_nr
|
|
|| '] ';
|
|
|
|
-- Ik controleer of ik een geldige header heb, dat is: in de juiste kolommen
|
|
-- de juiste kolomkop. Ik controleer daarbij ALLE kolommen!
|
|
-- Ik negeer alles totdat ik een geldige header ben gepasseerd.
|
|
-- HPJI#32107: we krijgen separate importbestanden van Elker en Poortje. Die kunnen
|
|
-- tegelijk ingelezen worden, waardoor je meerdere headerregels in de importtabel
|
|
-- krijgt. Regels overslaan tot aan de eerste header en eventuele headerregels
|
|
-- daarna overslaan.
|
|
IF UPPER (v_prs_perslid_oslogin) = 'LOGINNAAM'
|
|
AND UPPER (v_prs_perslid_naam) = 'NAAM'
|
|
AND UPPER (v_prs_perslid_tussenvoegsel) = 'TUSSENVOEGSEL'
|
|
AND UPPER (v_prs_perslid_voorletters) = 'VOORLETTERS'
|
|
AND UPPER (v_prs_perslid_voornaam) = 'VOORNAAM'
|
|
AND UPPER (v_prs_perslid_nr) = 'PERSONEELSNUMMER'
|
|
AND UPPER (v_prs_afdeling_naam) = 'AFDELINGSCODE'
|
|
AND UPPER (v_prs_srtperslid_omschrijving) = 'FUNCTIE'
|
|
AND UPPER (v_alg_locatie_oms) = 'LOCATIE'
|
|
AND UPPER (v_alg_ruimte_nr) = 'RUIMTE'
|
|
AND UPPER (v_prs_perslid_telefoonnr) = 'TELEFOON'
|
|
AND UPPER (v_prs_perslid_mobiel) = 'MOBIEL'
|
|
AND UPPER (v_prs_perslid_email) = 'EMAIL'
|
|
AND UPPER (v_prs_perslid_ingangsdatum) = 'DATUM IN DIENST'
|
|
AND UPPER (v_prs_perslid_einddatum) = 'DATUM UIT DIENST'
|
|
AND UPPER (v_domain) = 'DOMAIN'
|
|
THEN
|
|
header_is_valid := header_is_valid + 1;
|
|
CONTINUE;
|
|
END IF;
|
|
|
|
IF (header_is_valid > 0)
|
|
THEN
|
|
v_count_tot := v_count_tot + 1;
|
|
-- Controleer alle veldwaarden
|
|
|
|
-- HPJI#36139: de domain-kolom is tijdelijk gebruikt toen voor Poortje en Elker
|
|
-- aparte importbestanden werden aangeleverd. Nu staat daarin altijd 'JHNN' en is
|
|
-- niet meer te herleiden naar een prs_bedrijf. We checken er nog op om te
|
|
-- voorkomen dat een importbestand 'oude stijl' wordt ingelezen, maar we
|
|
-- importeren het niet meer.
|
|
v_errorhint := 'Ongeldig domain';
|
|
v_domain := UPPER( SUBSTR( TRIM(v_domain), 1, 30) );
|
|
|
|
IF ('x'||v_domain != 'xJHNN')
|
|
THEN
|
|
v_ongeldig := 1;
|
|
fac.imp_writelog (p_import_key,
|
|
'E',
|
|
v_aanduiding || 'ongeldig domain ['||v_domain||']',
|
|
'Regel wordt overgeslagen!');
|
|
COMMIT;
|
|
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 te lang',
|
|
'Loginnaam wordt afgebroken tot ['
|
|
|| v_prs_perslid_oslogin
|
|
|| ']'
|
|
);
|
|
COMMIT;
|
|
END IF;
|
|
|
|
--
|
|
v_errorhint := 'Ongeldige naam';
|
|
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 te lang',
|
|
'Naam wordt afgebroken tot [' || v_prs_perslid_naam || ']'
|
|
);
|
|
COMMIT;
|
|
ELSE
|
|
IF (v_prs_perslid_naam IS NULL)
|
|
THEN
|
|
v_ongeldig := 1;
|
|
fac.imp_writelog (
|
|
p_import_key,
|
|
'E',
|
|
v_aanduiding || 'Naam onbekend',
|
|
'Naam is verplicht; regel wordt overgeslagen!'
|
|
);
|
|
COMMIT;
|
|
END IF;
|
|
END IF;
|
|
|
|
--
|
|
v_errorhint := 'Ongeldig tussenvoegsel';
|
|
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 te lang',
|
|
'Tussenvoegsel wordt afgebroken tot ['
|
|
|| v_prs_perslid_tussenvoegsel
|
|
|| ']'
|
|
);
|
|
COMMIT;
|
|
END IF;
|
|
|
|
--
|
|
v_errorhint := 'Ongeldige voorletters';
|
|
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 te lang',
|
|
'Voorletters worden afgebroken tot ['
|
|
|| v_prs_perslid_voorletters
|
|
|| ']'
|
|
);
|
|
COMMIT;
|
|
END IF;
|
|
|
|
--
|
|
v_errorhint := 'Ongeldige voornaam';
|
|
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 is te lang',
|
|
'Voornaam wordt afgebroken tot ['
|
|
|| v_prs_perslid_voornaam
|
|
|| ']'
|
|
);
|
|
COMMIT;
|
|
ELSE
|
|
IF (v_prs_perslid_voornaam IS NULL)
|
|
THEN
|
|
v_prs_perslid_voornaam := '-';
|
|
fac.imp_writelog (p_import_key,
|
|
'W',
|
|
v_aanduiding || 'Voornaam onbekend',
|
|
'Voornaam wordt gezet op [-]');
|
|
COMMIT;
|
|
END IF;
|
|
END IF;
|
|
|
|
--
|
|
v_errorhint := 'Ongeldig personeelsnummer';
|
|
v_prs_perslid_nr := TRIM (v_prs_perslid_nr);
|
|
|
|
IF LENGTH (v_prs_perslid_nr) > 16
|
|
THEN
|
|
-- Niet afbreken; anders persoon mogelijk aan verkeerde foto
|
|
-- gekoppeld!
|
|
v_prs_perslid_nr := NULL;
|
|
fac.imp_writelog (
|
|
p_import_key,
|
|
'W',
|
|
v_aanduiding || 'Personeelsnummer te lang',
|
|
'Personeelsnummer wordt overgeslagen/gewist'
|
|
);
|
|
COMMIT;
|
|
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 te lang',
|
|
'Afdelingscode wordt afgebroken tot ['
|
|
|| v_prs_afdeling_naam
|
|
|| ']'
|
|
);
|
|
COMMIT;
|
|
ELSE
|
|
IF (v_prs_afdeling_naam IS NULL)
|
|
THEN
|
|
v_ongeldig := 1;
|
|
fac.imp_writelog (
|
|
p_import_key,
|
|
'E',
|
|
v_aanduiding || 'Afdelingscode onbekend',
|
|
'Afdelingscode is verplicht; regel wordt overgeslagen!'
|
|
);
|
|
COMMIT;
|
|
END IF;
|
|
END IF;
|
|
|
|
--
|
|
v_errorhint := 'Ongeldige functie';
|
|
v_prs_srtperslid_omschrijving :=
|
|
TRIM (v_prs_srtperslid_omschrijving);
|
|
|
|
IF LENGTH (v_prs_srtperslid_omschrijving) > 60
|
|
THEN
|
|
v_prs_srtperslid_omschrijving :=
|
|
SUBSTR (v_prs_srtperslid_omschrijving, 1, 60);
|
|
fac.imp_writelog (
|
|
p_import_key,
|
|
'W',
|
|
v_aanduiding || 'Functie te lang',
|
|
'Functie wordt afgebroken tot ['
|
|
|| v_prs_srtperslid_omschrijving
|
|
|| ']'
|
|
);
|
|
COMMIT;
|
|
ELSE
|
|
IF (v_prs_srtperslid_omschrijving IS NULL)
|
|
THEN
|
|
v_ongeldig := 1;
|
|
fac.imp_writelog (
|
|
p_import_key,
|
|
'E',
|
|
v_aanduiding || 'Functie onbekend',
|
|
'Functie is verplicht; regel wordt overgeslagen!'
|
|
);
|
|
COMMIT;
|
|
END IF;
|
|
END IF;
|
|
|
|
-- LET OP: Locatieomschrijving (niet locatiecode)!
|
|
v_errorhint := 'Ongeldige locatieomschrijving';
|
|
v_alg_locatie_oms := TRIM (v_alg_locatie_oms);
|
|
|
|
IF LENGTH (v_alg_locatie_oms) > 30
|
|
THEN
|
|
v_alg_locatie_oms := SUBSTR (v_alg_locatie_oms, 1, 30);
|
|
fac.imp_writelog (
|
|
p_import_key,
|
|
'W',
|
|
v_aanduiding || 'locatieomschrijving te lang',
|
|
'Aanduiding wordt afgebroken tot ['
|
|
|| v_alg_locatie_oms
|
|
|| ']'
|
|
);
|
|
COMMIT;
|
|
END IF;
|
|
|
|
--
|
|
v_errorhint := 'Ongeldig ruimtenummer';
|
|
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 || 'Ruimtenummer te lang',
|
|
'Aanduiding wordt afgebroken tot ['
|
|
|| v_alg_ruimte_nr
|
|
|| ']'
|
|
);
|
|
COMMIT;
|
|
END IF;
|
|
|
|
--
|
|
v_errorhint := 'Ongeldig telefoonnummer';
|
|
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 || 'Telefoonnummer te lang',
|
|
'Telefoonnummer wordt afgebroken tot ['
|
|
|| v_prs_perslid_telefoonnr
|
|
|| ']'
|
|
);
|
|
COMMIT;
|
|
END IF;
|
|
|
|
--
|
|
v_errorhint := 'Ongeldig mobiel nummer';
|
|
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 || 'Mobiel nummer te lang',
|
|
'Mobiel nummer wordt afgebroken tot ['
|
|
|| v_prs_perslid_mobiel
|
|
|| ']'
|
|
);
|
|
COMMIT;
|
|
END IF;
|
|
|
|
--
|
|
v_errorhint := 'Ongeldig e-mailadres';
|
|
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 || 'E-mailadres te lang',
|
|
'E-mailadres wordt afgebroken tot ['
|
|
|| v_prs_perslid_email
|
|
|| ']'
|
|
);
|
|
COMMIT;
|
|
END IF;
|
|
|
|
--
|
|
v_errorhint := 'Ongeldige datum in dienst';
|
|
v_prs_perslid_ingangsdatum := TRIM (v_prs_perslid_ingangsdatum);
|
|
|
|
IF v_prs_perslid_ingangsdatum IS NOT NULL
|
|
THEN
|
|
BEGIN
|
|
v_prs_perslid_ingangs_date :=
|
|
TO_DATE (v_prs_perslid_ingangsdatum, 'dd-mm-yyyy');
|
|
EXCEPTION
|
|
WHEN OTHERS
|
|
THEN
|
|
v_ongeldig := 1;
|
|
oracle_err_num := SQLCODE;
|
|
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
|
|
v_errormsg :=
|
|
v_errorhint
|
|
|| ' ORACLE (error '
|
|
|| oracle_err_num
|
|
|| '/'
|
|
|| oracle_err_mes
|
|
|| ')';
|
|
fac.imp_writelog (p_import_key,
|
|
'E',
|
|
v_aanduiding || v_errormsg,
|
|
'Regel wordt overgeslagen!');
|
|
COMMIT;
|
|
END;
|
|
ELSE
|
|
v_prs_perslid_ingangs_date := NULL;
|
|
END IF;
|
|
|
|
--
|
|
v_errorhint := 'Ongeldige datum uit dienst';
|
|
v_prs_perslid_einddatum := TRIM (v_prs_perslid_einddatum);
|
|
|
|
IF v_prs_perslid_einddatum IS NOT NULL
|
|
THEN
|
|
BEGIN
|
|
v_prs_perslid_eind_date :=
|
|
TO_DATE (v_prs_perslid_einddatum, 'dd-mm-yyyy');
|
|
EXCEPTION
|
|
WHEN OTHERS
|
|
THEN
|
|
v_ongeldig := 1;
|
|
oracle_err_num := SQLCODE;
|
|
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
|
|
v_errormsg :=
|
|
v_errorhint
|
|
|| ' ORACLE (error '
|
|
|| oracle_err_num
|
|
|| '/'
|
|
|| oracle_err_mes
|
|
|| ')';
|
|
fac.imp_writelog (p_import_key,
|
|
'E',
|
|
v_aanduiding || v_errormsg,
|
|
'Regel wordt overgeslagen!');
|
|
COMMIT;
|
|
END;
|
|
ELSE
|
|
v_prs_perslid_eind_date := NULL;
|
|
END IF;
|
|
|
|
-- Insert geformatteerde import record
|
|
IF v_ongeldig = 0
|
|
THEN
|
|
BEGIN
|
|
v_errorhint :=
|
|
'Fout bij toevoegen regel aan importtabel HPJI_IMP_PRS';
|
|
|
|
INSERT INTO hpji_imp_prs (imp_datum,
|
|
prs_perslid_oslogin,
|
|
prs_perslid_naam,
|
|
prs_perslid_tussenvoegsel,
|
|
prs_perslid_voorletters,
|
|
prs_perslid_voornaam,
|
|
prs_perslid_nr,
|
|
prs_afdeling_naam,
|
|
prs_srtperslid_omschrijving,
|
|
alg_locatie,
|
|
alg_ruimte_nr,
|
|
prs_perslid_telefoonnr,
|
|
prs_perslid_mobiel,
|
|
prs_perslid_email,
|
|
prs_perslid_ingangsdatum,
|
|
prs_perslid_einddatum)
|
|
VALUES (SYSDATE,
|
|
v_prs_perslid_oslogin,
|
|
v_prs_perslid_naam,
|
|
v_prs_perslid_tussenvoegsel,
|
|
v_prs_perslid_voorletters,
|
|
v_prs_perslid_voornaam,
|
|
v_prs_perslid_nr,
|
|
v_prs_afdeling_naam,
|
|
v_prs_srtperslid_omschrijving,
|
|
v_alg_locatie_oms,
|
|
v_alg_ruimte_nr,
|
|
v_prs_perslid_telefoonnr,
|
|
v_prs_perslid_mobiel,
|
|
v_prs_perslid_email,
|
|
v_prs_perslid_ingangs_date,
|
|
v_prs_perslid_eind_date);
|
|
|
|
COMMIT;
|
|
v_count_import := v_count_import + 1;
|
|
EXCEPTION
|
|
WHEN OTHERS
|
|
THEN
|
|
oracle_err_num := SQLCODE;
|
|
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
|
|
v_errormsg :=
|
|
v_errorhint
|
|
|| ' ORACLE (error '
|
|
|| oracle_err_num
|
|
|| '/'
|
|
|| oracle_err_mes
|
|
|| ')';
|
|
fac.imp_writelog (
|
|
p_import_key,
|
|
'E',
|
|
v_aanduiding || v_errormsg,
|
|
'Ingelezen regel kan niet worden weggeschreven!'
|
|
);
|
|
COMMIT;
|
|
END;
|
|
END IF;
|
|
END IF;
|
|
END;
|
|
END LOOP;
|
|
|
|
IF (header_is_valid = 0)
|
|
THEN
|
|
fac.imp_writelog (p_import_key,
|
|
'E',
|
|
'Ongeldig importbestand',
|
|
'Geen header of header niet volgens specificatie!');
|
|
ELSE
|
|
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),
|
|
''
|
|
);
|
|
END IF;
|
|
|
|
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);
|
|
COMMIT;
|
|
END hpji_import_prs;
|
|
/
|
|
|
|
/* Formatted on 12-3-2010 13:22:22 (QP5 v5.115.810.9015) */
|
|
CREATE OR REPLACE PROCEDURE hpji_update_prs (p_import_key IN NUMBER)
|
|
IS
|
|
-- LET OP: moet idem zijn als declaratie bij HPJI_IMPORT_PRS
|
|
c_persoon_inactief VARCHAR2 (30) := 'INACTIEF: ';
|
|
-- Maximaal percentage aan nieuwe medewerkers tov. actieve medewerkers met een e-mail
|
|
c_max_delta_percentage NUMBER (10) := 20;
|
|
-- Ruimte waar personen in geplaatst worden (indien nog geen ruimte in opgegeven gebouw)
|
|
c_ruimte_nr VARCHAR2 (10) := '000';
|
|
-- Groep waar personen in geplaatst worden (indien nog geen groep)
|
|
c_groep_upper VARCHAR2 (30) := '_DEFAULT';
|
|
c_profiel_omschrijving VARCHAR2 (30) := 'DEFAULT';
|
|
v_aanduiding VARCHAR2 (200);
|
|
v_errorhint VARCHAR2 (1000);
|
|
v_errormsg VARCHAR2 (1000);
|
|
oracle_err_num NUMBER;
|
|
oracle_err_mes VARCHAR2 (200);
|
|
v_count_prs_import NUMBER (10); -- #actieve personen na import!
|
|
v_count_prs_actual NUMBER (10); -- #actieve personen voor import!
|
|
v_count_tot NUMBER (10);
|
|
v_count_error NUMBER (10);
|
|
v_count NUMBER (10);
|
|
--
|
|
v_perslid_key NUMBER (10);
|
|
v_afdeling_key NUMBER (10);
|
|
v_srtperslid_key NUMBER (10);
|
|
v_locatie_key NUMBER (10);
|
|
v_ruimte_key NUMBER (10);
|
|
v_ruimte_nr VARCHAR2 (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);
|
|
|
|
-- Let op! Personen die niet meer in dienst zijn -> niet in hpji_imp_prs!
|
|
-- Dubbele oslogins? Dan wordt iemand mogelijk niet verwijderd/INACTIEF!
|
|
CURSOR cdelprs
|
|
IS
|
|
SELECT p.prs_perslid_key,
|
|
p.prs_perslid_oslogin,
|
|
p.prs_perslid_naam,
|
|
p.prs_perslid_voornaam
|
|
FROM prs_v_aanwezigperslid p
|
|
WHERE (p.prs_perslid_oslogin IS NULL
|
|
OR p.prs_perslid_oslogin NOT LIKE '\_%' ESCAPE '\')
|
|
AND p.prs_perslid_oslogin2 IS NULL
|
|
AND NOT EXISTS
|
|
(SELECT 1
|
|
FROM hpji_imp_prs ip
|
|
WHERE UPPER (ip.prs_perslid_oslogin) = UPPER (p.prs_perslid_oslogin))
|
|
UNION ALL
|
|
SELECT p.prs_perslid_key,
|
|
p.prs_perslid_oslogin,
|
|
p.prs_perslid_naam,
|
|
p.prs_perslid_voornaam
|
|
FROM prs_v_aanwezigperslid p
|
|
WHERE p.prs_perslid_oslogin IS NULL
|
|
AND p.prs_perslid_naam LIKE 'INACTIEF:%'
|
|
AND NOT EXISTS (SELECT 1
|
|
FROM prs_v_verplichting_keys pv
|
|
WHERE p.prs_perslid_key = pv.prs_perslid_key);
|
|
|
|
-- Let op! Personen die niet meer in dienst zijn -> niet in hpji_imp_prs!
|
|
CURSOR csrtperslid
|
|
IS
|
|
SELECT MIN (prs_perslid_oslogin) prs_perslid_oslogin,
|
|
MIN (prs_perslid_naam) prs_perslid_naam,
|
|
MIN (prs_perslid_voornaam) prs_perslid_voornaam,
|
|
MIN (prs_srtperslid_omschrijving) prs_srtperslid_omschrijving
|
|
FROM hpji_imp_prs
|
|
GROUP BY UPPER (prs_srtperslid_omschrijving);
|
|
|
|
-- Let op! Personen die niet meer in dienst zijn -> niet in hpji_imp_prs!
|
|
-- Dubbele oslogins? Dan wordt slechts 1 set persoongegevens toegevoegd!
|
|
CURSOR cperslid
|
|
IS
|
|
SELECT *
|
|
FROM hpji_imp_prs;
|
|
|
|
-- Let op! Personen die niet meer in dienst zijn -> niet in hpji_imp_prs!
|
|
-- Dubbele oslogins? Dan krijgt iemand mogelijk de verkeerde plaats!
|
|
CURSOR cwp
|
|
IS
|
|
SELECT p.*, ip.alg_locatie, ip.alg_ruimte_nr
|
|
FROM hpji_imp_prs ip, prs_v_aanwezigperslid p
|
|
WHERE ip.alg_locatie IS NOT NULL
|
|
AND UPPER (ip.prs_perslid_oslogin) =
|
|
UPPER (p.prs_perslid_oslogin)
|
|
AND NOT EXISTS
|
|
(SELECT 1
|
|
FROM prs_perslidwerkplek pw
|
|
WHERE pw.prs_perslid_key = p.prs_perslid_key);
|
|
|
|
-- Alle actieve personen met oslogin (ie. de import-doelgroep) zonder een werkplek
|
|
CURSOR cnowp
|
|
IS
|
|
SELECT p.prs_perslid_key,
|
|
p.prs_perslid_oslogin,
|
|
p.prs_perslid_naam,
|
|
p.prs_perslid_voornaam
|
|
FROM prs_v_aanwezigperslid p
|
|
WHERE p.prs_perslid_oslogin IS NOT NULL
|
|
AND p.prs_perslid_naam NOT LIKE c_persoon_inactief || '%'
|
|
AND NOT EXISTS
|
|
(SELECT 1
|
|
FROM prs_perslidwerkplek pw
|
|
WHERE pw.prs_perslid_key = p.prs_perslid_key);
|
|
|
|
-- Alle aanwezige personen met oslogin (ie. de import-doelgroep) niet in een groep
|
|
CURSOR cnogroup
|
|
IS
|
|
SELECT p.prs_perslid_key,
|
|
p.prs_perslid_oslogin,
|
|
p.prs_perslid_naam,
|
|
p.prs_perslid_voornaam
|
|
FROM prs_v_aanwezigperslid p
|
|
WHERE p.prs_perslid_oslogin IS NOT NULL
|
|
AND NOT EXISTS
|
|
(SELECT 1
|
|
FROM fac_gebruikersgroep g
|
|
WHERE g.prs_perslid_key = p.prs_perslid_key);
|
|
BEGIN
|
|
-- Bepaal oslogin-match tussen Facilitor en RECENT importbestand ofwel het aantal
|
|
-- actieve personen na import.
|
|
-- RECENT betekent niet meer dan een kwartiertje oud (14,4 minuten); dit voorkomt
|
|
-- dat - als er geen nieuw importbestand is aangeleverd - telkens dezelfde fouten
|
|
-- worden gerapporteerd (nl. op basis van een oud importbestand in HPJI_IMP_PRS).
|
|
SELECT COUNT ( * )
|
|
INTO v_count_prs_import
|
|
FROM prs_v_aanwezigperslid p,
|
|
hpji_imp_prs ip
|
|
WHERE p.prs_perslid_oslogin IS NOT NULL
|
|
AND UPPER (p.prs_perslid_oslogin) = UPPER (ip.prs_perslid_oslogin)
|
|
AND (ip.imp_datum + 0.01) > SYSDATE;
|
|
|
|
-- Bepaal huidig aantal actieve personen in Facilitor.
|
|
SELECT DECODE (COUNT ( * ), 0, 1, COUNT ( * ))
|
|
INTO v_count_prs_actual
|
|
FROM prs_v_aanwezigperslid p
|
|
WHERE prs_perslid_oslogin IS NOT NULL;
|
|
|
|
IF ( (TRUNC ( (v_count_prs_import / v_count_prs_actual) * 100) >=
|
|
(100 - c_max_delta_percentage)))
|
|
THEN
|
|
-- Geldig importbestand wat betreft aantal personen
|
|
v_errorhint := 'Standaardprofiel vinden';
|
|
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;
|
|
|
|
FOR recdelprs IN cdelprs
|
|
LOOP
|
|
BEGIN
|
|
v_aanduiding := recdelprs.prs_perslid_oslogin
|
|
|| '|' || recdelprs.prs_perslid_naam
|
|
|| '|' || recdelprs.prs_perslid_voornaam
|
|
|| ' - ';
|
|
v_errorhint := 'Fout bij bepalen verplichtingen';
|
|
|
|
-- Heeft persoon actuele/toekomstige verplichtingen?
|
|
SELECT COUNT ( * )
|
|
INTO v_count
|
|
FROM prs_perslid p, prs_v_verplichting_keys r
|
|
WHERE p.prs_perslid_key = r.prs_perslid_key
|
|
AND p.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 loginnaam ['
|
|
|| recdelprs.prs_perslid_oslogin
|
|
|| '] en naam ['
|
|
|| recdelprs.prs_perslid_naam
|
|
|| ', '
|
|
|| recdelprs.prs_perslid_voornaam
|
|
|| '] is verwijderd',
|
|
'Persoon is verwijderd'
|
|
);
|
|
COMMIT;
|
|
ELSE
|
|
-- Staat persoon INACTIEF?
|
|
SELECT COUNT ( * )
|
|
INTO v_count
|
|
FROM prs_perslid p
|
|
WHERE p.prs_perslid_naam LIKE c_persoon_inactief || '%'
|
|
AND p.prs_perslid_key = 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
|
|
WHERE prs_perslid_key = recdelprs.prs_perslid_key;
|
|
|
|
fac.imp_writelog (
|
|
p_import_key,
|
|
'I',
|
|
'Persoon met loginnaam ['
|
|
|| recdelprs.prs_perslid_oslogin
|
|
|| '] en naam ['
|
|
|| recdelprs.prs_perslid_naam
|
|
|| ', '
|
|
|| recdelprs.prs_perslid_voornaam
|
|
|| '] is INACTIEF gemaakt',
|
|
'Persoon is INACTIEF gemaakt'
|
|
);
|
|
ELSE
|
|
v_errorhint := 'Fout bij INACTIEF houden persoon';
|
|
|
|
-- Persoon INACTIEF houden (reset oslogin; indien handmatig INACTIEF gemaakt)
|
|
UPDATE prs_perslid
|
|
SET prs_perslid_oslogin = NULL
|
|
WHERE prs_perslid_naam LIKE c_persoon_inactief || '%'
|
|
AND prs_perslid_oslogin IS NOT NULL;
|
|
|
|
fac.imp_writelog (
|
|
p_import_key,
|
|
'I',
|
|
'Persoon met loginnaam ['
|
|
|| recdelprs.prs_perslid_oslogin
|
|
|| '] en naam ['
|
|
|| recdelprs.prs_perslid_naam
|
|
|| ', '
|
|
|| recdelprs.prs_perslid_voornaam
|
|
|| '] is INACTIEF',
|
|
'Persoon is INACTIEF'
|
|
);
|
|
END IF;
|
|
|
|
COMMIT;
|
|
END IF;
|
|
EXCEPTION
|
|
WHEN OTHERS
|
|
THEN
|
|
oracle_err_num := SQLCODE;
|
|
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
|
|
v_errormsg :=
|
|
'OTHERS (error '
|
|
|| oracle_err_num
|
|
|| '/'
|
|
|| oracle_err_mes
|
|
|| ')';
|
|
fac.imp_writelog (p_import_key,
|
|
'E',
|
|
v_aanduiding || v_errormsg,
|
|
v_errorhint);
|
|
COMMIT;
|
|
END;
|
|
END LOOP;
|
|
|
|
v_count_tot := 0;
|
|
v_count_error := 0;
|
|
|
|
FOR recsrtperslid IN csrtperslid
|
|
LOOP
|
|
BEGIN
|
|
v_count_tot := v_count_tot + 1;
|
|
v_aanduiding := recsrtperslid.prs_perslid_oslogin
|
|
|| '|' || recsrtperslid.prs_perslid_naam
|
|
|| '|' || recsrtperslid.prs_perslid_voornaam
|
|
|| '|' || recsrtperslid.prs_srtperslid_omschrijving
|
|
|| ' - ';
|
|
v_errorhint := 'Fout bij bepalen functie';
|
|
|
|
SELECT COUNT ( * )
|
|
INTO v_count
|
|
FROM prs_v_aanwezigsrtperslid
|
|
WHERE UPPER (prs_srtperslid_omschrijving) =
|
|
UPPER (recsrtperslid.prs_srtperslid_omschrijving);
|
|
|
|
IF v_count = 0
|
|
THEN
|
|
v_errorhint := 'Fout bij toevoegen functie';
|
|
|
|
INSERT INTO prs_srtperslid (prs_srtperslid_omschrijving)
|
|
VALUES (recsrtperslid.prs_srtperslid_omschrijving);
|
|
|
|
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 :=
|
|
'OTHERS (error '
|
|
|| oracle_err_num
|
|
|| '/'
|
|
|| 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',
|
|
'Functie: verwerkte regels zonder foutmelding: '
|
|
|| TO_CHAR (v_count_tot - v_count_error),
|
|
''
|
|
);
|
|
fac.imp_writelog (
|
|
p_import_key,
|
|
'S',
|
|
'Functie: verwerkte regels met foutmelding: '
|
|
|| TO_CHAR (v_count_error),
|
|
''
|
|
);
|
|
COMMIT;
|
|
v_count_tot := 0;
|
|
v_count_error := 0;
|
|
|
|
FOR recperslid IN cperslid
|
|
LOOP
|
|
BEGIN
|
|
v_count_tot := v_count_tot + 1;
|
|
v_aanduiding := recperslid.prs_perslid_oslogin
|
|
|| '|' || recperslid.prs_perslid_naam
|
|
|| '|' || recperslid.prs_perslid_voornaam
|
|
|| ' - ';
|
|
v_errorhint :=
|
|
'Fout bij bepalen functie ['
|
|
|| recperslid.prs_srtperslid_omschrijving
|
|
|| ']';
|
|
|
|
SELECT prs_srtperslid_key
|
|
INTO v_srtperslid_key
|
|
FROM prs_v_aanwezigsrtperslid
|
|
WHERE UPPER (prs_srtperslid_omschrijving) =
|
|
UPPER (recperslid.prs_srtperslid_omschrijving);
|
|
|
|
v_errorhint :=
|
|
'Fout bij bepalen afdeling ['
|
|
|| recperslid.prs_afdeling_naam
|
|
|| ']';
|
|
|
|
SELECT prs_afdeling_key
|
|
INTO v_afdeling_key
|
|
FROM prs_v_aanwezigafdeling
|
|
WHERE prs_afdeling_upper =
|
|
UPPER (recperslid.prs_afdeling_naam);
|
|
|
|
v_errorhint := 'Fout bij bepalen persoon';
|
|
|
|
SELECT COUNT ( * ), MAX (prs_perslid_key)
|
|
INTO v_count, v_perslid_key
|
|
FROM prs_v_aanwezigperslid
|
|
WHERE UPPER (prs_perslid_oslogin) =
|
|
UPPER (recperslid.prs_perslid_oslogin);
|
|
|
|
IF v_count > 1
|
|
THEN
|
|
fac.imp_writelog (p_import_key,
|
|
'E',
|
|
v_aanduiding || v_errorhint,
|
|
'Kan persoon niet eenduidig bepalen!');
|
|
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_email,
|
|
prs_perslid_oslogin,
|
|
prs_perslid_ingangsdatum,
|
|
prs_perslid_einddatum,
|
|
fac_profiel_key,
|
|
prs_perslid_nr,
|
|
prs_perslid_mobiel
|
|
)
|
|
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_email,
|
|
recperslid.prs_perslid_oslogin,
|
|
COALESCE (
|
|
recperslid.prs_perslid_ingangsdatum,
|
|
SYSDATE
|
|
),
|
|
recperslid.prs_perslid_einddatum,
|
|
v_profiel_key,
|
|
recperslid.prs_perslid_nr,
|
|
recperslid.prs_perslid_mobiel
|
|
)
|
|
RETURNING prs_perslid_key INTO v_perslid_key;
|
|
ELSE
|
|
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 = COALESCE (recperslid.prs_perslid_telefoonnr,
|
|
prs_perslid_telefoonnr),
|
|
prs_perslid_email = COALESCE (recperslid.prs_perslid_email,
|
|
prs_perslid_email),
|
|
prs_perslid_ingangsdatum = COALESCE (recperslid.prs_perslid_ingangsdatum,
|
|
prs_perslid_ingangsdatum),
|
|
prs_perslid_einddatum = recperslid.prs_perslid_einddatum,
|
|
fac_profiel_key = COALESCE (fac_profiel_key, v_profiel_key),
|
|
prs_perslid_nr = recperslid.prs_perslid_nr,
|
|
prs_perslid_mobiel = COALESCE (recperslid.prs_perslid_mobiel,
|
|
prs_perslid_mobiel)
|
|
WHERE prs_perslid_key = v_perslid_key;
|
|
|
|
fac.imp_writelog (p_import_key,
|
|
'D',
|
|
v_aanduiding,
|
|
'Bijgewerkt');
|
|
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 :=
|
|
'OTHERS (error '
|
|
|| oracle_err_num
|
|
|| '/'
|
|
|| 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),
|
|
''
|
|
);
|
|
COMMIT;
|
|
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_oslogin
|
|
|| '|'
|
|
|| recwp.prs_perslid_naam
|
|
|| '|'
|
|
|| recwp.prs_perslid_voornaam
|
|
|| '|'
|
|
|| recwp.alg_locatie
|
|
|| '|'
|
|
|| recwp.alg_ruimte_nr
|
|
|| ' - ';
|
|
v_errorhint := 'Fout bij bepalen persoon';
|
|
|
|
SELECT prs_perslid_key
|
|
INTO v_perslid_key
|
|
FROM prs_v_aanwezigperslid
|
|
WHERE UPPER (prs_perslid_oslogin) =
|
|
UPPER (recwp.prs_perslid_oslogin);
|
|
|
|
v_errorhint := 'Fout bij bepalen locatie';
|
|
|
|
SELECT COUNT ( * )
|
|
INTO v_count
|
|
FROM alg_v_aanweziglocatie
|
|
WHERE alg_locatie_upper = UPPER (recwp.alg_locatie);
|
|
|
|
IF v_count = 0
|
|
THEN
|
|
fac.imp_writelog (p_import_key,
|
|
'I',
|
|
v_aanduiding || v_errorhint,
|
|
'Locatie bestaat niet!');
|
|
COMMIT;
|
|
ELSE -- Locatie bestaat!
|
|
SELECT alg_locatie_key
|
|
INTO v_locatie_key
|
|
FROM alg_v_aanweziglocatie
|
|
WHERE alg_locatie_upper = UPPER (recwp.alg_locatie);
|
|
|
|
v_ruimte_key := NULL;
|
|
v_errorhint := 'Fout bij bepalen ruimte op locatie';
|
|
|
|
SELECT COUNT ( * )
|
|
INTO v_count
|
|
FROM alg_v_aanwezigruimte r,
|
|
alg_verdieping v,
|
|
alg_gebouw g
|
|
WHERE UPPER (r.alg_ruimte_nr) = UPPER (recwp.alg_ruimte_nr)
|
|
AND r.alg_verdieping_key = v.alg_verdieping_key
|
|
AND v.alg_gebouw_key = g.alg_gebouw_key
|
|
AND g.alg_locatie_key = v_locatie_key;
|
|
|
|
IF v_count > 1
|
|
THEN
|
|
fac.imp_writelog (p_import_key,
|
|
'I',
|
|
v_aanduiding || v_errorhint,
|
|
'Kan ruimte niet eenduidig bepalen!');
|
|
COMMIT;
|
|
ELSE
|
|
IF v_count = 1
|
|
THEN
|
|
v_ruimte_nr := recwp.alg_ruimte_nr;
|
|
|
|
SELECT r.alg_ruimte_key
|
|
INTO v_ruimte_key
|
|
FROM alg_v_aanwezigruimte r,
|
|
alg_verdieping v,
|
|
alg_gebouw g
|
|
WHERE UPPER (r.alg_ruimte_nr) =
|
|
UPPER (recwp.alg_ruimte_nr)
|
|
AND r.alg_verdieping_key = v.alg_verdieping_key
|
|
AND v.alg_gebouw_key = g.alg_gebouw_key
|
|
AND g.alg_locatie_key = v_locatie_key;
|
|
ELSE
|
|
v_ruimte_nr := c_ruimte_nr;
|
|
|
|
SELECT r.alg_ruimte_key
|
|
INTO v_ruimte_key
|
|
FROM alg_v_aanwezigruimte r,
|
|
alg_verdieping v,
|
|
alg_gebouw g
|
|
WHERE UPPER (r.alg_ruimte_nr) = c_ruimte_nr
|
|
AND r.alg_verdieping_key = v.alg_verdieping_key
|
|
AND v.alg_gebouw_key = g.alg_gebouw_key
|
|
AND g.alg_gebouw_code IN ('FS0', 'INT')
|
|
AND g.alg_locatie_key = v_locatie_key;
|
|
END IF;
|
|
END IF;
|
|
|
|
-- Persoon krijgt wp op de hierboven bepaalde ruimte (als deze
|
|
-- bestaat).
|
|
IF v_ruimte_key IS NOT NULL
|
|
THEN
|
|
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 := v_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;
|
|
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 :=
|
|
'OTHERS (error '
|
|
|| oracle_err_num
|
|
|| '/'
|
|
|| 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 loginnaam ['
|
|
|| recnowp.prs_perslid_oslogin
|
|
|| '] en naam ['
|
|
|| recnowp.prs_perslid_naam
|
|
|| ', '
|
|
|| recnowp.prs_perslid_voornaam
|
|
|| '] heeft geen werkplek',
|
|
'Geen werkplek'
|
|
);
|
|
COMMIT;
|
|
EXCEPTION
|
|
WHEN OTHERS
|
|
THEN
|
|
oracle_err_num := SQLCODE;
|
|
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
|
|
v_errormsg :=
|
|
'OTHERS (error '
|
|
|| oracle_err_num
|
|
|| '/'
|
|
|| 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_oslogin
|
|
|| '|'
|
|
|| 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 :=
|
|
'OTHERS (error '
|
|
|| oracle_err_num
|
|
|| '/'
|
|
|| 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
|
|
IF (v_count_prs_import = 0)
|
|
THEN
|
|
fac.imp_writelog (
|
|
p_import_key,
|
|
'S',
|
|
'Geen nieuw/recent bestand met te importeren personen aangetroffen!',
|
|
''
|
|
);
|
|
ELSE
|
|
fac.imp_writelog (
|
|
p_import_key,
|
|
'E',
|
|
'Verschil tussen het actuele aantal en het te importeren aantal personen te groot; zie specificatie!',
|
|
'- max. verschilpercentage = ['
|
|
|| TO_CHAR (c_max_delta_percentage)
|
|
|| '%] <br> '
|
|
|| '- #personen importbestand = ['
|
|
|| TO_CHAR (v_count_prs_import)
|
|
|| '] <br> '
|
|
|| '- #personen Facilitor = ['
|
|
|| TO_CHAR (v_count_prs_actual)
|
|
|| ']'
|
|
);
|
|
END IF;
|
|
|
|
COMMIT;
|
|
END IF;
|
|
|
|
COMMIT;
|
|
END hpji_update_prs;
|
|
/
|
|
|
|
/* Formatted on 2-3-2011 10:30:36 (QP5 v5.115.810.9015) */
|
|
CREATE OR REPLACE VIEW hpji_v_ruimtekaartjes
|
|
(
|
|
fclt_f_opmaak,
|
|
fclt_f_loc_code,
|
|
fclt_f_geb_code,
|
|
fclt_f_ver_code,
|
|
fclt_f_ruimte_nr,
|
|
hide_f_ruimte_key,
|
|
ruimtesoort,
|
|
opp,
|
|
titel,
|
|
naam,
|
|
tussenvoegsel,
|
|
voorletters,
|
|
voornaam,
|
|
functie,
|
|
aantal
|
|
)
|
|
AS
|
|
(SELECT e.opmaak,
|
|
a.alg_locatie_code,
|
|
a.alg_gebouw_code,
|
|
a.alg_verdieping_code,
|
|
a.alg_ruimte_nr,
|
|
TO_CHAR (a.alg_ruimte_key) || e.opmaak,
|
|
b.ruimtesoort,
|
|
a.opp,
|
|
c.prs_perslid_titel,
|
|
c.prs_perslid_naam,
|
|
c.prs_perslid_tussenvoegsel,
|
|
c.prs_perslid_voorletters,
|
|
c.prs_perslid_voornaam,
|
|
c.prs_srtperslid_omschrijving,
|
|
d.aantal
|
|
FROM (SELECT r.alg_ruimte_key,
|
|
r.alg_ruimte_nr,
|
|
v.alg_verdieping_code,
|
|
g.alg_gebouw_code,
|
|
l.alg_locatie_code,
|
|
d.alg_district_omschrijving,
|
|
r.alg_ruimte_bruto_vloeropp opp
|
|
FROM alg_v_aanwezigruimte r,
|
|
alg_verdieping v,
|
|
alg_gebouw g,
|
|
alg_locatie l,
|
|
alg_district d
|
|
WHERE r.alg_verdieping_key = v.alg_verdieping_key
|
|
AND v.alg_gebouw_key = g.alg_gebouw_key
|
|
AND g.alg_locatie_key = l.alg_locatie_key
|
|
AND l.alg_district_key = d.alg_district_key)
|
|
a
|
|
LEFT JOIN
|
|
(SELECT r.alg_ruimte_key,
|
|
COALESCE (sr.alg_srtruimte_omschrijving, '-')
|
|
ruimtesoort
|
|
FROM alg_v_aanwezigruimte r, alg_srtruimte sr
|
|
WHERE r.alg_srtruimte_key = sr.alg_srtruimte_key) b
|
|
ON a.alg_ruimte_key = b.alg_ruimte_key
|
|
LEFT JOIN -- personen op ruimte
|
|
(SELECT DISTINCT wp.prs_alg_ruimte_key,
|
|
p.prs_perslid_titel,
|
|
p.prs_perslid_naam,
|
|
p.prs_perslid_voorletters,
|
|
p.prs_perslid_tussenvoegsel,
|
|
p.prs_perslid_voornaam,
|
|
sp.prs_srtperslid_omschrijving
|
|
FROM prs_werkplek wp,
|
|
prs_perslidwerkplek pw,
|
|
prs_v_aanwezigperslid p,
|
|
prs_srtperslid sp
|
|
WHERE wp.prs_werkplek_key = pw.prs_werkplek_key
|
|
AND pw.prs_perslid_key = p.prs_perslid_key
|
|
AND p.prs_srtperslid_key = sp.prs_srtperslid_key)
|
|
c
|
|
ON a.alg_ruimte_key = c.prs_alg_ruimte_key
|
|
LEFT JOIN -- aantal personen op ruimte
|
|
( SELECT wp.prs_alg_ruimte_key,
|
|
COUNT (pw.prs_perslid_key) aantal
|
|
FROM prs_werkplek wp,
|
|
prs_perslidwerkplek pw
|
|
WHERE wp.prs_werkplek_key = pw.prs_werkplek_key
|
|
GROUP BY wp.prs_alg_ruimte_key) d
|
|
ON a.alg_ruimte_key = d.prs_alg_ruimte_key,
|
|
(SELECT 'Wilster' opmaak FROM DUAL
|
|
UNION ALL
|
|
SELECT 'Portalis' opmaak FROM DUAL
|
|
UNION ALL
|
|
SELECT 'Juvaid' opmaak FROM DUAL
|
|
UNION ALL
|
|
SELECT 'Het Poortje' opmaak FROM DUAL
|
|
UNION ALL
|
|
SELECT 'DOK3' opmaak FROM DUAL) e);
|
|
|
|
/* Formatted on 15-2-2010 11:36:40 (QP5 v5.115.810.9015) */
|
|
CREATE OR REPLACE VIEW hpji_v_ruimtekaartjes2
|
|
(
|
|
fclt_f_opmaak,
|
|
fclt_f_loc_code,
|
|
fclt_f_geb_code,
|
|
fclt_f_ver_code,
|
|
fclt_f_ruimte_nr,
|
|
hide_f_ruimte_key,
|
|
ruimtesoort
|
|
)
|
|
AS
|
|
SELECT DISTINCT fclt_f_opmaak,
|
|
fclt_f_loc_code,
|
|
fclt_f_geb_code,
|
|
fclt_f_ver_code,
|
|
fclt_f_ruimte_nr,
|
|
hide_f_ruimte_key,
|
|
ruimtesoort
|
|
FROM hpji_v_ruimtekaartjes
|
|
/
|
|
|
|
CREATE OR REPLACE VIEW hpji_v_label_ruimteafd (
|
|
alg_ruimte_key,
|
|
waarde
|
|
)
|
|
AS
|
|
SELECT DISTINCT ra.alg_ruimte_key, a.prs_afdeling_naam1
|
|
FROM prs_v_aanwezigruimteafdeling ra, prs_v_aanwezigafdeling a
|
|
WHERE ra.prs_afdeling_key = a.prs_afdeling_key
|
|
UNION
|
|
SELECT DISTINCT r.alg_ruimte_key, '[Onbekend]' -- ruimten zonder afd.
|
|
FROM alg_v_aanwezigruimte r
|
|
WHERE NOT EXISTS ( -- waar geen afd. binnen bestaat
|
|
SELECT ra.alg_ruimte_key
|
|
FROM prs_v_aanwezigruimteafdeling ra
|
|
WHERE ra.alg_ruimte_key = r.alg_ruimte_key)
|
|
/
|
|
|
|
CREATE OR REPLACE VIEW hpji_v_label_ruimteafd_nr (alg_ruimte_key, waarde)
|
|
AS
|
|
SELECT DISTINCT ra.alg_ruimte_key, a.prs_afdeling_naam
|
|
FROM prs_v_aanwezigruimteafdeling ra, prs_v_aanwezigafdeling a
|
|
WHERE ra.prs_afdeling_key = a.prs_afdeling_key
|
|
UNION
|
|
SELECT DISTINCT r.alg_ruimte_key, '[Onbekend]' -- ruimten zonder afd.
|
|
FROM alg_v_aanwezigruimte r
|
|
WHERE NOT EXISTS ( -- waar geen afd. binnen bestaat
|
|
SELECT ra.alg_ruimte_key
|
|
FROM prs_v_aanwezigruimteafdeling ra
|
|
WHERE ra.alg_ruimte_key = r.alg_ruimte_key)
|
|
/
|
|
|
|
CREATE OR REPLACE VIEW hpji_v_label_ruimteafd_oms (alg_ruimte_key, waarde)
|
|
AS
|
|
SELECT DISTINCT ra.alg_ruimte_key, a.prs_afdeling_omschrijving
|
|
FROM prs_v_aanwezigruimteafdeling ra, prs_v_aanwezigafdeling a
|
|
WHERE ra.prs_afdeling_key = a.prs_afdeling_key
|
|
UNION
|
|
SELECT DISTINCT r.alg_ruimte_key, '[Onbekend]' -- ruimten zonder afd.
|
|
FROM alg_v_aanwezigruimte r
|
|
WHERE NOT EXISTS ( -- waar geen afd. binnen bestaat
|
|
SELECT ra.alg_ruimte_key
|
|
FROM prs_v_aanwezigruimteafdeling ra
|
|
WHERE ra.alg_ruimte_key = r.alg_ruimte_key)
|
|
/
|
|
|
|
CREATE OR REPLACE FORCE VIEW hpji_v_thema_ruimteafd (
|
|
alg_ruimte_key,
|
|
waarde,
|
|
waarde_key
|
|
)
|
|
AS
|
|
SELECT x.alg_ruimte_key,
|
|
DECODE (y.aantal,
|
|
NULL, '[Onbekend]',
|
|
1, SUBSTR (y.afd, 1, 60),
|
|
'Meer dan 1 afdeling!'),
|
|
DECODE (y.aantal, NULL, -1, 1, y.afd_key, NULL)
|
|
FROM (SELECT r.alg_ruimte_key
|
|
FROM alg_v_aanwezigruimte r) x
|
|
LEFT JOIN
|
|
(SELECT ra.alg_ruimte_key,
|
|
MIN (a.prs_afdeling_naam1) afd,
|
|
MIN (a.prs_afdeling_key) afd_key,
|
|
COUNT (ra.prs_afdeling_key) aantal
|
|
FROM prs_v_aanwezigruimteafdeling ra, prs_v_aanwezigafdeling a
|
|
WHERE ra.prs_afdeling_key = a.prs_afdeling_key
|
|
GROUP BY ra.alg_ruimte_key) y
|
|
ON x.alg_ruimte_key = y.alg_ruimte_key
|
|
UNION ALL
|
|
SELECT NULL, a.prs_afdeling_naam1, a.prs_afdeling_key
|
|
FROM prs_v_aanwezigafdeling a
|
|
WHERE NOT EXISTS
|
|
(SELECT ra.prs_afdeling_key
|
|
FROM prs_v_aanwezigruimteafdeling ra
|
|
WHERE ra.prs_afdeling_key = a.prs_afdeling_key)
|
|
/
|
|
|
|
CREATE OR REPLACE TRIGGER hpji_t_thema_ruimteafd_i_iu
|
|
INSTEAD OF INSERT OR UPDATE
|
|
ON hpji_v_thema_ruimteafd
|
|
BEGIN
|
|
IF UPDATING -- oude hard weggooien; dus DELETE (lekker opruimen)!
|
|
THEN
|
|
DELETE FROM prs_ruimteafdeling
|
|
WHERE alg_ruimte_key = :new.alg_ruimte_key
|
|
AND prs_afdeling_key <> :new.waarde_key;
|
|
END IF;
|
|
|
|
BEGIN
|
|
IF :new.waarde_key <> -1
|
|
THEN
|
|
INSERT INTO prs_ruimteafdeling
|
|
(
|
|
alg_ruimte_key, prs_afdeling_key
|
|
)
|
|
VALUES (:new.alg_ruimte_key, :new.waarde_key);
|
|
END IF;
|
|
EXCEPTION
|
|
WHEN DUP_VAL_ON_INDEX -- was al aanwezig
|
|
THEN
|
|
NULL;
|
|
END;
|
|
END;
|
|
/
|
|
|
|
/* Formatted on 15-2-2010 12:04:02 (QP5 v5.115.810.9015) */
|
|
CREATE OR REPLACE FORCE VIEW hpji_v_thema_ruimteafd1
|
|
(
|
|
alg_ruimte_key,
|
|
waarde,
|
|
waarde_key
|
|
)
|
|
AS
|
|
SELECT x.alg_ruimte_key,
|
|
DECODE (y.aantal,
|
|
NULL, '[Onbekend]',
|
|
1, SUBSTR (y.afd, 1, 60),
|
|
'Meer dan 1 afdeling!'),
|
|
DECODE (y.aantal, 1, y.afd_key, NULL)
|
|
FROM (SELECT r.alg_ruimte_key
|
|
FROM alg_v_aanwezigruimte r) x
|
|
LEFT JOIN
|
|
( SELECT ra.alg_ruimte_key,
|
|
MIN (a.prs_afdeling_naam1) afd,
|
|
MIN (a.prs_afdeling_key) afd_key,
|
|
COUNT (ra.prs_afdeling_key) aantal
|
|
FROM prs_v_aanwezigruimteafdeling ra,
|
|
prs_v_afdeling_boom b,
|
|
prs_v_aanwezigafdeling a
|
|
WHERE ra.prs_afdeling_key = b.prs_afdeling_key
|
|
AND b.prs_afdeling_key1 = a.prs_afdeling_key
|
|
GROUP BY ra.alg_ruimte_key) y
|
|
ON x.alg_ruimte_key = y.alg_ruimte_key
|
|
/
|
|
|
|
/* Formatted on 2-3-2010 21:00:14 (QP5 v5.115.810.9015) */
|
|
CREATE OR REPLACE VIEW hpji_v_thema_vloerafw
|
|
(
|
|
alg_ruimte_key,
|
|
waarde,
|
|
waarde_key
|
|
)
|
|
AS
|
|
SELECT a.alg_ruimte_key,
|
|
COALESCE (b.vloerafw, '[Onbekend]'),
|
|
COALESCE (b.vloerafw_key, -1)
|
|
FROM (SELECT r.alg_ruimte_key
|
|
FROM alg_v_aanwezigruimte r) a
|
|
LEFT JOIN
|
|
(SELECT ok.alg_onrgoed_key,
|
|
ud.fac_usrdata_omschr vloerafw,
|
|
ud.fac_usrdata_key vloerafw_key
|
|
FROM alg_onrgoedkenmerk ok, fac_usrdata ud
|
|
WHERE ok.alg_kenmerk_key = 1020 -- vloerafwerking
|
|
AND ok.alg_onrgoed_niveau = 'R'
|
|
AND ok.alg_onrgoedkenmerk_verwijder IS NULL
|
|
AND ok.alg_onrgoedkenmerk_waarde =
|
|
ud.fac_usrdata_key) b
|
|
ON a.alg_ruimte_key = b.alg_onrgoed_key
|
|
UNION ALL
|
|
SELECT NULL,
|
|
ud.fac_usrdata_omschr vloerafw,
|
|
ud.fac_usrdata_key vloerafw_key
|
|
FROM fac_usrdata ud
|
|
WHERE ud.fac_usrtab_key = 21
|
|
AND NOT EXISTS
|
|
(SELECT 1
|
|
FROM alg_onrgoedkenmerk ok
|
|
WHERE ok.alg_kenmerk_key = 1020 -- vloerafwerking
|
|
AND ok.alg_onrgoedkenmerk_waarde =
|
|
ud.fac_usrdata_key)
|
|
/
|
|
|
|
/* Formatted on 2-3-2010 13:24:46 (QP5 v5.115.810.9015) */
|
|
CREATE OR REPLACE TRIGGER hpji_t_thema_vloerafw_i_iu
|
|
INSTEAD OF INSERT OR UPDATE
|
|
ON hpji_v_thema_vloerafw
|
|
BEGIN
|
|
IF UPDATING -- oude hard weggooien; dus DELETE (lekker opruimen)!
|
|
THEN
|
|
DELETE FROM alg_onrgoedkenmerk
|
|
WHERE alg_onrgoed_key = :new.alg_ruimte_key
|
|
AND alg_onrgoedkenmerk_waarde <> :new.waarde_key;
|
|
END IF;
|
|
|
|
BEGIN
|
|
IF :new.waarde_key <> -1
|
|
THEN
|
|
INSERT INTO alg_onrgoedkenmerk (alg_onrgoed_key,
|
|
alg_onrgoed_niveau,
|
|
alg_kenmerk_key,
|
|
alg_onrgoedkenmerk_waarde)
|
|
VALUES (:new.alg_ruimte_key,
|
|
'R',
|
|
1020,
|
|
:new.waarde_key);
|
|
END IF;
|
|
EXCEPTION
|
|
WHEN DUP_VAL_ON_INDEX -- was al aanwezig
|
|
THEN
|
|
NULL;
|
|
END;
|
|
END;
|
|
/
|
|
|
|
/* Formatted on 23-3-2010 12:00:05 (QP5 v5.115.810.9015) */
|
|
CREATE OR REPLACE VIEW hpji_v_thema_ruimtefunc
|
|
(
|
|
alg_ruimte_key,
|
|
waarde,
|
|
waarde_key
|
|
)
|
|
AS
|
|
SELECT r.alg_ruimte_key ruimte_key,
|
|
COALESCE (sr.alg_srtruimte_omschrijving, '[Onbekend]') waarde,
|
|
COALESCE (sr.alg_srtruimte_key, -1) waarde_key
|
|
FROM alg_v_aanwezigruimte r, alg_srtruimte sr
|
|
WHERE r.alg_srtruimte_key = sr.alg_srtruimte_key(+)
|
|
UNION ALL
|
|
SELECT NULL ruimte_key,
|
|
sr.alg_srtruimte_omschrijving waarde,
|
|
sr.alg_srtruimte_key waarde_key
|
|
FROM alg_srtruimte sr
|
|
WHERE NOT EXISTS (SELECT 1
|
|
FROM alg_v_aanwezigruimte r
|
|
WHERE r.alg_srtruimte_key = sr.alg_srtruimte_key)
|
|
/
|
|
|
|
/* Formatted on 23-3-2010 12:05:35 (QP5 v5.115.810.9015) */
|
|
CREATE OR REPLACE TRIGGER hpji_t_thema_ruimtefunc_i_iu
|
|
INSTEAD OF UPDATE
|
|
ON hpji_v_thema_ruimtefunc
|
|
FOR EACH ROW
|
|
BEGIN
|
|
UPDATE alg_ruimte
|
|
SET alg_srtruimte_key = :new.waarde_key
|
|
WHERE alg_ruimte_key = :new.alg_ruimte_key
|
|
AND alg_srtruimte_key <> :new.waarde_key;
|
|
END;
|
|
/
|
|
|
|
/* Formatted on 2-3-2010 14:06:50 (QP5 v5.115.810.9015) */
|
|
CREATE OR REPLACE FORCE VIEW hpji_v_thema_legewp
|
|
(
|
|
alg_ruimte_key,
|
|
waarde
|
|
)
|
|
AS
|
|
SELECT x.prs_alg_ruimte_key,
|
|
(100 - ROUND (wp_bez / wp_tot * 100)) leeg_p
|
|
FROM ( SELECT wp.prs_alg_ruimte_key, COUNT ( * ) wp_tot
|
|
FROM prs_werkplek wp
|
|
GROUP BY wp.prs_alg_ruimte_key) x
|
|
LEFT JOIN
|
|
( SELECT wp.prs_alg_ruimte_key, COUNT ( * ) wp_bez
|
|
FROM prs_werkplek wp
|
|
WHERE EXISTS
|
|
(SELECT 1
|
|
FROM prs_perslidwerkplek pw
|
|
WHERE pw.prs_werkplek_key =
|
|
wp.prs_werkplek_key)
|
|
GROUP BY wp.prs_alg_ruimte_key) y
|
|
ON x.prs_alg_ruimte_key = y.prs_alg_ruimte_key;
|
|
|
|
/
|
|
|
|
/* Formatted on 23-3-2010 13:40:40 (QP5 v5.115.810.9015) */
|
|
CREATE OR REPLACE FORCE VIEW hpji_v_thema_objecten (alg_ruimte_key, waarde)
|
|
AS
|
|
SELECT d.ins_alg_ruimte_key, COUNT ( * ) aantal
|
|
FROM ins_deel d
|
|
WHERE d.ins_alg_ruimte_type = 'R'
|
|
GROUP BY d.ins_alg_ruimte_key
|
|
/
|
|
|
|
/* Formatted on 2-3-2010 17:00:00 (QP5 v5.115.810.9015) */
|
|
CREATE OR REPLACE VIEW HPJI_V_RAP_OPROGNOSEACTIVITEIT
|
|
(
|
|
FCLT_F_SOORTACTIVITEIT,
|
|
FCLT_F_JAAR,
|
|
ACTIVITEITEN,
|
|
BUDGET
|
|
)
|
|
AS
|
|
SELECT mld_stdmelding_omschrijving,
|
|
TO_CHAR (mld_melding_datum, 'yyyy') fclt_f_jaar,
|
|
COUNT (mld_melding_key),
|
|
SUM (fac.safe_to_number (prijs)) budget
|
|
FROM fac_v_oprognosegegevens
|
|
GROUP BY mld_stdmelding_omschrijving,
|
|
TO_CHAR (mld_melding_datum, 'yyyy');
|
|
|
|
/* Formatted on 1-4-2010 21:14:04 (QP5 v5.115.810.9015) */
|
|
CREATE OR REPLACE VIEW HPJI_V_RAP_OPROGNOSEGEBOUW
|
|
(
|
|
FCLT_F_GEBOUW,
|
|
FCLT_F_JAAR,
|
|
ACTIVITEITEN,
|
|
BUDGET
|
|
)
|
|
AS
|
|
SELECT op.alg_locatie_code
|
|
|| ' - '
|
|
|| g.alg_gebouw_code
|
|
|| ' / '
|
|
|| g.alg_gebouw_naam
|
|
gebouw,
|
|
TO_CHAR (op.mld_melding_datum, 'yyyy') fclt_f_jaar,
|
|
COUNT (op.mld_melding_key),
|
|
SUM (fac.safe_to_number (op.prijs)) budget
|
|
FROM fac_v_oprognosegegevens op, alg_gebouw g
|
|
WHERE op.alg_gebouw_key = g.alg_gebouw_key
|
|
GROUP BY op.alg_locatie_code
|
|
|| ' - '
|
|
|| g.alg_gebouw_code
|
|
|| ' / '
|
|
|| g.alg_gebouw_naam,
|
|
TO_CHAR (op.mld_melding_datum, 'yyyy');
|
|
|
|
/* Formatted on 2-3-2010 17:00:00 (QP5 v5.115.810.9015) */
|
|
CREATE OR REPLACE FORCE VIEW HPJI_V_RAP_OPROGNOSEVOORTGANG
|
|
(
|
|
FCLT_F_GEBOUW,
|
|
FCLT_F_JAAR,
|
|
MELDINGNR,
|
|
SOORTACTIVITEIT,
|
|
ACTIVITEIT,
|
|
STATUS,
|
|
BUDGET
|
|
)
|
|
AS
|
|
SELECT alg_locatie_gebouw_naam gebouw,
|
|
TO_CHAR (mld_melding_datum, 'yyyy') fclt_f_jaar,
|
|
TO_CHAR (mld_melding_key) meldingnr,
|
|
mld_stdmelding_omschrijving,
|
|
mld_melding_omschrijving melding,
|
|
mld_statuses_omschrijving status,
|
|
fac.safe_to_number (prijs) budget
|
|
FROM fac_v_oprognosegegevens;
|
|
|
|
/* Formatted on 25-5-2010 17:32:32 (QP5 v5.115.810.9015) */
|
|
CREATE OR REPLACE VIEW hpji_v_inkoopdata
|
|
(
|
|
maand,
|
|
afgemeld_op,
|
|
soort_bestelling,
|
|
bestel_id,
|
|
status,
|
|
besteld_op,
|
|
besteld_bij,
|
|
commentaar,
|
|
kosten
|
|
)
|
|
AS
|
|
SELECT DISTINCT
|
|
DECODE (b.bes_bestelling_status,
|
|
6, TO_CHAR (bo.bes_bestelopdr_leverdatum, 'yyyy-mm'),
|
|
-- TO_CHAR (fac.gettrackingdate ('BESOTV', b.bes_bestelling_key),
|
|
-- 'yyyy-mm'),
|
|
'Lopend')
|
|
maand,
|
|
-- TO_CHAR (fac.gettrackingdate ('BESOTV', b.bes_bestelling_key),
|
|
-- 'dd-mm-yyyy')
|
|
TO_CHAR (bo.bes_bestelopdr_leverdatum, 'dd-mm-yyyy') afgemeld_op,
|
|
'Catalogus',
|
|
TO_CHAR (b.bes_bestelling_key) bestel_id,
|
|
s.bes_bestellingstatuses_omschr status,
|
|
TO_CHAR (b.bes_bestelling_datum, 'dd-mm-yyyy') besteld_op,
|
|
l.prs_bedrijf_naam,
|
|
bo.bes_bestelopdr_delivery_opmerk,
|
|
0 kosten
|
|
FROM bes_bestelling b,
|
|
bes_bestellingstatuses s,
|
|
bes_bestelling_item bi,
|
|
bes_bestelopdr_item boi,
|
|
bes_bestelopdr bo,
|
|
prs_bedrijf l
|
|
WHERE b.bes_bestelling_status = s.bes_bestellingstatuses_key
|
|
AND b.bes_bestelling_key = bi.bes_bestelling_key
|
|
AND bi.bes_bestelopdr_item_key = boi.bes_bestelopdr_item_key(+)
|
|
AND boi.bes_bestelopdr_key = bo.bes_bestelopdr_key(+)
|
|
AND bo.prs_bedrijf_key = l.prs_bedrijf_key
|
|
UNION ALL
|
|
SELECT DECODE (
|
|
a.mld_statusopdr_key,
|
|
6,
|
|
TO_CHAR (fac.gettrackingdate ('ORDAFM', a.mld_opdr_key),
|
|
'yyyy-mm'),
|
|
'Lopend'
|
|
)
|
|
maand,
|
|
TO_CHAR (fac.gettrackingdate ('ORDAFM', a.mld_opdr_key),
|
|
'dd-mm-yyyy')
|
|
afgemeld_op,
|
|
'Incidenteel',
|
|
a.bestel_id,
|
|
a.status,
|
|
TO_CHAR (a.besteld_op, 'dd-mm-yyyy'),
|
|
a.prs_bedrijf_naam,
|
|
DECODE (b.fac_usrdata_key,
|
|
41, b.ontvangststatus || CHR (13) || CHR (10),
|
|
42, b.ontvangststatus || CHR (13) || CHR (10),
|
|
43, b.ontvangststatus || CHR (13) || CHR (10),
|
|
'')
|
|
|| COALESCE (c.commentaar, ''),
|
|
a.kosten
|
|
FROM (SELECT o.mld_opdr_key,
|
|
o.mld_melding_key
|
|
|| '/'
|
|
|| o.mld_opdr_bedrijfopdr_volgnr
|
|
bestel_id,
|
|
o.mld_statusopdr_key,
|
|
s.mld_statusopdr_omschrijving status,
|
|
o.mld_opdr_datumbegin besteld_op,
|
|
o.mld_opdr_verzonden,
|
|
u.prs_bedrijf_naam,
|
|
o.mld_opdr_kosten kosten
|
|
FROM mld_opdr o, mld_statusopdr s, prs_bedrijf u
|
|
WHERE o.mld_typeopdr_key = 182
|
|
AND o.mld_statusopdr_key = s.mld_statusopdr_key
|
|
AND o.mld_uitvoerende_keys = u.prs_bedrijf_key) a
|
|
LEFT JOIN
|
|
(SELECT ko.mld_opdr_key,
|
|
ud.fac_usrdata_key,
|
|
ud.fac_usrdata_omschr ontvangststatus
|
|
FROM mld_v_aanwezigkenmerkopdr ko, fac_usrdata ud
|
|
WHERE ko.mld_kenmerk_key = 1
|
|
AND fac.safe_to_number (
|
|
ko.mld_kenmerkopdr_waarde
|
|
) = ud.fac_usrdata_key) b
|
|
ON a.mld_opdr_key = b.mld_opdr_key
|
|
LEFT JOIN
|
|
(SELECT ko.mld_opdr_key,
|
|
ko.mld_kenmerkopdr_waarde commentaar
|
|
FROM mld_v_aanwezigkenmerkopdr ko
|
|
WHERE ko.mld_kenmerk_key = 2) c
|
|
ON a.mld_opdr_key = c.mld_opdr_key;
|
|
|
|
/* Formatted on 1-4-2010 21:06:55 (QP5 v5.115.810.9015) */
|
|
CREATE OR REPLACE VIEW hpji_v_rap_inkoop_opm
|
|
(
|
|
fclt_f_maand,
|
|
hide_f_afgemeld_op,
|
|
fclt_f_soort_bestelling,
|
|
bestel_id,
|
|
status,
|
|
besteld_op,
|
|
fclt_f_leverancier,
|
|
klacht
|
|
)
|
|
AS
|
|
SELECT v.maand,
|
|
v.afgemeld_op,
|
|
v.soort_bestelling,
|
|
v.bestel_id,
|
|
v.status,
|
|
v.besteld_op,
|
|
v.besteld_bij,
|
|
v.commentaar
|
|
FROM hpji_v_inkoopdata v
|
|
WHERE v.maand = 'Lopend' OR v.commentaar IS NOT NULL;
|
|
|
|
/* Formatted on 1-4-2010 22:05:35 (QP5 v5.115.810.9015) */
|
|
CREATE OR REPLACE VIEW hpji_v_rap_inkoop_ppi
|
|
(
|
|
fclt_f_maand,
|
|
fclt_f_leverancier,
|
|
totaal_aantal,
|
|
klacht_aantal,
|
|
percentage
|
|
)
|
|
AS
|
|
SELECT sums.maand,
|
|
sums.besteld_bij,
|
|
sums.totaal_aant,
|
|
sums.klacht_aant,
|
|
REPLACE (
|
|
TO_CHAR (sums.klacht_aant / sums.totaal_aant * 100,
|
|
'999990D9'),
|
|
'.',
|
|
','
|
|
)
|
|
|| '%'
|
|
FROM ( SELECT x.maand,
|
|
x.besteld_bij,
|
|
SUM (x.totaal_aant) totaal_aant,
|
|
SUM (x.klacht_aant) klacht_aant
|
|
FROM ( SELECT v.maand,
|
|
v.besteld_bij,
|
|
COUNT ( * ) totaal_aant,
|
|
0 klacht_aant
|
|
FROM hpji_v_inkoopdata v
|
|
WHERE v.maand <> 'Lopend'
|
|
GROUP BY v.maand, v.besteld_bij
|
|
UNION ALL
|
|
SELECT v.maand,
|
|
v.besteld_bij,
|
|
0 totaal_aant,
|
|
COUNT ( * ) klacht_aant
|
|
FROM hpji_v_inkoopdata v
|
|
WHERE v.maand <> 'Lopend'
|
|
AND v.commentaar IS NOT NULL
|
|
GROUP BY v.maand, v.besteld_bij) x
|
|
GROUP BY x.maand, x.besteld_bij) sums
|
|
WHERE sums.totaal_aant > 0;
|
|
|
|
/* Formatted on 28-6-2010 15:44:38 (QP5 v5.115.810.9015) */
|
|
CREATE OR REPLACE VIEW hpji_v_noti_goederenontvangst
|
|
(
|
|
code,
|
|
sender,
|
|
receiver,
|
|
text,
|
|
KEY,
|
|
par1,
|
|
par2,
|
|
xkey
|
|
)
|
|
AS
|
|
SELECT sn.fac_srtnotificatie_code,
|
|
NULL,
|
|
gg.prs_perslid_key,
|
|
REPLACE (
|
|
sn.fac_srtnotificatie_oms,
|
|
'##OPDR##',
|
|
o.mld_melding_key || '/' || o.mld_opdr_bedrijfopdr_volgnr
|
|
),
|
|
o.mld_opdr_key,
|
|
NULL,
|
|
NULL,
|
|
NULL
|
|
FROM mld_opdr o,
|
|
mld_kenmerkopdr ko,
|
|
fac_srtnotificatie sn,
|
|
fac_gebruikersgroep gg
|
|
WHERE o.mld_statusopdr_key IN (4, 5, 8) -- Gefiat./Uitgeg./Geaccept.
|
|
AND o.mld_typeopdr_key = 182
|
|
AND TRUNC (ko.mld_kenmerkopdr_aanmaak) = TRUNC (SYSDATE)
|
|
AND TO_NUMBER (TO_CHAR (ko.mld_kenmerkopdr_aanmaak, 'HH24')) + 1 =
|
|
TO_NUMBER (TO_CHAR (SYSDATE, 'HH24'))
|
|
AND o.mld_opdr_key = ko.mld_opdr_key
|
|
AND ko.mld_kenmerk_key = 1 -- Ontvangststatus
|
|
AND ko.mld_kenmerkopdr_waarde IN ('41') -- Onjuist
|
|
AND sn.fac_srtnotificatie_code = 'CUST01'
|
|
AND gg.fac_groep_key = 81
|
|
UNION ALL
|
|
SELECT sn.fac_srtnotificatie_code,
|
|
NULL,
|
|
gg.prs_perslid_key,
|
|
REPLACE (
|
|
sn.fac_srtnotificatie_oms,
|
|
'##OPDR##',
|
|
o.mld_melding_key || '/' || o.mld_opdr_bedrijfopdr_volgnr
|
|
),
|
|
o.mld_opdr_key,
|
|
NULL,
|
|
NULL,
|
|
NULL
|
|
FROM mld_opdr o,
|
|
mld_v_aanwezigkenmerkopdr ko1,
|
|
mld_v_aanwezigkenmerkopdr ko2,
|
|
fac_srtnotificatie sn,
|
|
fac_gebruikersgroep gg
|
|
WHERE o.mld_statusopdr_key IN (4, 5, 8) -- Gefiat./Uitgeg./Geaccept.
|
|
AND o.mld_typeopdr_key = 182
|
|
AND TRUNC (fac.gettrackingdate ('ORDUPD', o.mld_opdr_key)) =
|
|
TRUNC (SYSDATE)
|
|
AND TO_NUMBER(TO_CHAR (
|
|
fac.gettrackingdate ('ORDUPD', o.mld_opdr_key),
|
|
'HH24'
|
|
))
|
|
+ 1 = TO_NUMBER (TO_CHAR (SYSDATE, 'HH24'))
|
|
AND o.mld_opdr_key = ko1.mld_opdr_key
|
|
AND ko1.mld_kenmerk_key = 1 -- Ontvangststatus
|
|
AND ko1.mld_kenmerkopdr_waarde IN ('42', '43') -- Retour/Goedgek.
|
|
AND o.mld_opdr_key = ko2.mld_opdr_key
|
|
AND ko2.mld_kenmerk_key = 101 -- Afleveradres
|
|
AND sn.fac_srtnotificatie_code = 'CUST01'
|
|
AND gg.fac_groep_key = 86
|
|
AND gg.prs_perslid_key IN
|
|
(SELECT pw.prs_perslid_key
|
|
FROM prs_perslidwerkplek pw,
|
|
prs_werkplek wp,
|
|
alg_ruimte r,
|
|
alg_verdieping v,
|
|
alg_gebouw g
|
|
WHERE pw.prs_werkplek_key = wp.prs_werkplek_key
|
|
AND wp.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 =
|
|
DECODE (ko2.mld_kenmerkopdr_waarde,
|
|
'121', 2, -- Afleveradres GR
|
|
'122', 1, -- Afleveradres VH
|
|
NULL));
|
|
|
|
-- Bevat CUST02-reminders naar groepen bij aanmaken specifieke WF-meldingen:
|
|
-- Nieuwe Medewerker (NM), Vertrek Medewerker (VM) en Kleine Verhuizing (KV).
|
|
-- Periodiciteit: elk uur (mbt. in het voorgaande uur aangemaakte meldingen)!
|
|
/* Formatted on 3-5-2010 14:52:25 (QP5 v5.115.810.9015) */
|
|
CREATE OR REPLACE VIEW hpji_v_noti_wf_reminder
|
|
(
|
|
code,
|
|
sender,
|
|
receiver,
|
|
text,
|
|
KEY,
|
|
par1,
|
|
par2,
|
|
xkey
|
|
)
|
|
AS -- Systeembeheer=89
|
|
SELECT sn.fac_srtnotificatie_code,
|
|
NULL,
|
|
gg.prs_perslid_key,
|
|
REPLACE (sn.fac_srtnotificatie_oms,
|
|
'##STDM##',
|
|
sm.mld_stdmelding_omschrijving),
|
|
m.mld_melding_key,
|
|
sm.mld_stdmelding_omschrijving,
|
|
NULL,
|
|
NULL
|
|
FROM mld_melding m,
|
|
mld_stdmelding sm,
|
|
fac_srtnotificatie sn,
|
|
fac_gebruikersgroep gg
|
|
WHERE m.mld_melding_status IN (2, 3) -- Te behandelen!
|
|
AND TRUNC (m.mld_melding_datum) = TRUNC (SYSDATE)
|
|
AND TO_NUMBER (TO_CHAR (m.mld_melding_datum, 'HH24')) + 1 =
|
|
TO_NUMBER (TO_CHAR (SYSDATE, 'HH24'))
|
|
AND m.mld_stdmelding_key IN (281, -- verzorgen netwerkacc.+appl.
|
|
288, -- toewijzen telefoonnr.
|
|
292, -- plaatsen PC+randapp.
|
|
300, -- deact. acc.+appl.
|
|
306 -- patchen netw.
|
|
)
|
|
AND m.mld_stdmelding_key = sm.mld_stdmelding_key
|
|
AND sn.fac_srtnotificatie_code = 'CUST02'
|
|
AND gg.fac_groep_key = 89
|
|
UNION ALL -- PZ=93
|
|
SELECT sn.fac_srtnotificatie_code,
|
|
NULL,
|
|
gg.prs_perslid_key,
|
|
REPLACE (sn.fac_srtnotificatie_oms,
|
|
'##STDM##',
|
|
sm.mld_stdmelding_omschrijving),
|
|
m.mld_melding_key,
|
|
sm.mld_stdmelding_omschrijving,
|
|
NULL,
|
|
NULL
|
|
FROM mld_melding m,
|
|
mld_stdmelding sm,
|
|
fac_srtnotificatie sn,
|
|
fac_gebruikersgroep gg
|
|
WHERE m.mld_melding_status IN (2, 3) -- Te behandelen!
|
|
AND TRUNC (m.mld_melding_datum) = TRUNC (SYSDATE)
|
|
AND TO_NUMBER (TO_CHAR (m.mld_melding_datum, 'HH24')) + 1 =
|
|
TO_NUMBER (TO_CHAR (SYSDATE, 'HH24'))
|
|
AND m.mld_stdmelding_key IN (282, -- opvoeren Persmaster
|
|
293, -- wijzigen Persmaster
|
|
297 -- innemen vervoersbewijs
|
|
)
|
|
AND m.mld_stdmelding_key = sm.mld_stdmelding_key
|
|
AND sn.fac_srtnotificatie_code = 'CUST02'
|
|
AND gg.fac_groep_key = 93
|
|
UNION ALL -- Huisvesting=82
|
|
SELECT sn.fac_srtnotificatie_code,
|
|
NULL,
|
|
gg.prs_perslid_key,
|
|
REPLACE (sn.fac_srtnotificatie_oms,
|
|
'##STDM##',
|
|
sm.mld_stdmelding_omschrijving),
|
|
m.mld_melding_key,
|
|
sm.mld_stdmelding_omschrijving,
|
|
NULL,
|
|
NULL
|
|
FROM mld_melding m,
|
|
mld_stdmelding sm,
|
|
fac_srtnotificatie sn,
|
|
fac_gebruikersgroep gg
|
|
WHERE m.mld_melding_status IN (2, 3) -- Te behandelen!
|
|
AND TRUNC (m.mld_melding_datum) = TRUNC (SYSDATE)
|
|
AND TO_NUMBER (TO_CHAR (m.mld_melding_datum, 'HH24')) + 1 =
|
|
TO_NUMBER (TO_CHAR (SYSDATE, 'HH24'))
|
|
AND m.mld_stdmelding_key IN (283, -- toewijzen werkplek
|
|
302 -- plannen kleine verhuzing
|
|
)
|
|
AND m.mld_stdmelding_key = sm.mld_stdmelding_key
|
|
AND sn.fac_srtnotificatie_code = 'CUST02'
|
|
AND gg.fac_groep_key = 82
|
|
UNION ALL -- Applicatiebeheer=21
|
|
SELECT sn.fac_srtnotificatie_code,
|
|
NULL,
|
|
gg.prs_perslid_key,
|
|
REPLACE (sn.fac_srtnotificatie_oms,
|
|
'##STDM##',
|
|
sm.mld_stdmelding_omschrijving),
|
|
m.mld_melding_key,
|
|
sm.mld_stdmelding_omschrijving,
|
|
NULL,
|
|
NULL
|
|
FROM mld_melding m,
|
|
mld_stdmelding sm,
|
|
fac_srtnotificatie sn,
|
|
fac_gebruikersgroep gg
|
|
WHERE m.mld_melding_status IN (2, 3) -- Te behandelen!
|
|
AND TRUNC (m.mld_melding_datum) = TRUNC (SYSDATE)
|
|
AND TO_NUMBER (TO_CHAR (m.mld_melding_datum, 'HH24')) + 1 =
|
|
TO_NUMBER (TO_CHAR (SYSDATE, 'HH24'))
|
|
AND m.mld_stdmelding_key IN (287, -- verzorgen spec. appl.
|
|
299 -- deactiveren spec. appl.
|
|
)
|
|
AND m.mld_stdmelding_key = sm.mld_stdmelding_key
|
|
AND sn.fac_srtnotificatie_code = 'CUST02'
|
|
AND gg.fac_groep_key = 21
|
|
UNION ALL -- Managementassistentes=121
|
|
SELECT sn.fac_srtnotificatie_code,
|
|
NULL,
|
|
gg.prs_perslid_key,
|
|
REPLACE (sn.fac_srtnotificatie_oms,
|
|
'##STDM##',
|
|
sm.mld_stdmelding_omschrijving),
|
|
m.mld_melding_key,
|
|
sm.mld_stdmelding_omschrijving,
|
|
NULL,
|
|
NULL
|
|
FROM mld_melding m,
|
|
mld_stdmelding sm,
|
|
fac_srtnotificatie sn,
|
|
fac_gebruikersgroep gg
|
|
WHERE m.mld_melding_status IN (2, 3) -- Te behandelen!
|
|
AND TRUNC (m.mld_melding_datum) = TRUNC (SYSDATE)
|
|
AND TO_NUMBER (TO_CHAR (m.mld_melding_datum, 'HH24')) + 1 =
|
|
TO_NUMBER (TO_CHAR (SYSDATE, 'HH24'))
|
|
AND m.mld_stdmelding_key IN (289, -- bestellen visitekaartjes
|
|
298 -- aankondigen vertrek
|
|
)
|
|
AND m.mld_stdmelding_key = sm.mld_stdmelding_key
|
|
AND sn.fac_srtnotificatie_code = 'CUST02'
|
|
AND gg.fac_groep_key = 121
|
|
UNION ALL -- AD ontvangst en veiligheid=122
|
|
SELECT sn.fac_srtnotificatie_code,
|
|
NULL,
|
|
gg.prs_perslid_key,
|
|
REPLACE (sn.fac_srtnotificatie_oms,
|
|
'##STDM##',
|
|
sm.mld_stdmelding_omschrijving),
|
|
m.mld_melding_key,
|
|
sm.mld_stdmelding_omschrijving,
|
|
NULL,
|
|
NULL
|
|
FROM mld_melding m,
|
|
mld_stdmelding sm,
|
|
fac_srtnotificatie sn,
|
|
fac_gebruikersgroep gg
|
|
WHERE m.mld_melding_status IN (2, 3) -- Te behandelen!
|
|
AND TRUNC (m.mld_melding_datum) = TRUNC (SYSDATE)
|
|
AND TO_NUMBER (TO_CHAR (m.mld_melding_datum, 'HH24')) + 1 =
|
|
TO_NUMBER (TO_CHAR (SYSDATE, 'HH24'))
|
|
AND m.mld_stdmelding_key IN (285, -- verzorgen toegang+pieper
|
|
295 -- innemen toegang+pieper
|
|
)
|
|
AND m.mld_stdmelding_key = sm.mld_stdmelding_key
|
|
AND sn.fac_srtnotificatie_code = 'CUST02'
|
|
AND gg.fac_groep_key = 122;
|
|
|
|
/* Formatted on 17-5-2010 12:12:30 (QP5 v5.115.810.9015) */
|
|
CREATE OR REPLACE VIEW hpji_v_ruimteaanduiding (ruimtekey, ruimteaanduiding)
|
|
AS
|
|
SELECT pa.alg_onroerendgoed_keys, pa.alg_plaatsaanduiding
|
|
FROM alg_v_plaatsaanduiding pa
|
|
WHERE pa.alg_onroerendgoed_type = 'R'
|
|
UNION ALL
|
|
SELECT -1, 'GR-000 (Onbekend)' FROM DUAL
|
|
UNION ALL
|
|
SELECT -1, 'VH-000 (Onbekend)' FROM DUAL;
|
|
|
|
/* Formatted on 12-5-2010 15:10:58 (QP5 v5.115.810.9015) */
|
|
CREATE OR REPLACE VIEW hpji_v_rap_ruimteoverzicht
|
|
(
|
|
fclt_f_locatie,
|
|
fclt_f_gebouw,
|
|
fclt_f_verdieping,
|
|
ruimtenr,
|
|
fclt_f_ruimtefunctie,
|
|
fclt_f_vloerafwerking,
|
|
fclt_f_specialisatie,
|
|
fclt_f_afdeling,
|
|
teken_opp
|
|
)
|
|
AS
|
|
(SELECT a.alg_locatie_code,
|
|
a.alg_gebouw_code,
|
|
a.alg_verdieping_code,
|
|
a.alg_ruimte_nr,
|
|
a.ruimtefunctie,
|
|
b.vloerafw,
|
|
c.specialisatie,
|
|
d.afdeling,
|
|
a.opp
|
|
FROM (SELECT r.alg_ruimte_key,
|
|
r.alg_ruimte_nr,
|
|
r.alg_ruimte_omschrijving,
|
|
v.alg_verdieping_code,
|
|
g.alg_gebouw_code,
|
|
l.alg_locatie_code,
|
|
sr.alg_srtruimte_omschrijving ruimtefunctie,
|
|
r.alg_ruimte_bruto_vloeropp opp
|
|
FROM alg_v_aanwezigruimte r,
|
|
alg_verdieping v,
|
|
alg_gebouw g,
|
|
alg_locatie l,
|
|
alg_srtruimte sr
|
|
WHERE r.alg_verdieping_key = v.alg_verdieping_key
|
|
AND v.alg_gebouw_key = g.alg_gebouw_key
|
|
AND g.alg_locatie_key = l.alg_locatie_key
|
|
AND r.alg_srtruimte_key =
|
|
sr.alg_srtruimte_key(+)) a
|
|
LEFT JOIN
|
|
(SELECT ok.alg_onrgoed_key,
|
|
ud.fac_usrdata_omschr vloerafw
|
|
FROM alg_onrgoedkenmerk ok, fac_usrdata ud
|
|
WHERE ok.alg_kenmerk_key = 1020 -- vloerafwerking
|
|
AND ok.alg_onrgoed_niveau = 'R'
|
|
AND ok.alg_onrgoedkenmerk_waarde =
|
|
ud.fac_usrdata_key) b
|
|
ON a.alg_ruimte_key = b.alg_onrgoed_key
|
|
LEFT JOIN
|
|
(SELECT ra.alg_ruimte_key,
|
|
a.prs_afdeling_naam1 specialisatie
|
|
FROM prs_v_aanwezigruimteafdeling ra,
|
|
prs_v_afdeling_boom b,
|
|
prs_v_aanwezigafdeling a
|
|
WHERE ra.prs_afdeling_key = b.prs_afdeling_key
|
|
AND b.prs_afdeling_key1 = a.prs_afdeling_key) c
|
|
ON a.alg_ruimte_key = c.alg_ruimte_key
|
|
LEFT JOIN
|
|
(SELECT ra.alg_ruimte_key, a.prs_afdeling_naam1 afdeling
|
|
FROM prs_v_aanwezigruimteafdeling ra,
|
|
prs_v_aanwezigafdeling a
|
|
WHERE ra.prs_afdeling_key = a.prs_afdeling_key) d
|
|
ON a.alg_ruimte_key = d.alg_ruimte_key);
|
|
|
|
/* Formatted on 12-5-2010 17:40:43 (QP5 v5.115.810.9015) */
|
|
CREATE OR REPLACE VIEW hpji_v_rap_verplichtingen
|
|
(
|
|
bestel_id,
|
|
status,
|
|
omschrijving,
|
|
besteld_op,
|
|
fclt_f_leverancier,
|
|
ontvangststatus,
|
|
kosten
|
|
)
|
|
AS
|
|
SELECT a.bestel_id,
|
|
a.status,
|
|
a.mld_opdr_omschrijving,
|
|
TO_CHAR (a.besteld_op, 'dd-mm-yyyy'),
|
|
a.prs_bedrijf_naam,
|
|
DECODE (b.fac_usrdata_key,
|
|
41, b.ontvangststatus || CHR (13) || CHR (10),
|
|
42, b.ontvangststatus || CHR (13) || CHR (10),
|
|
43, b.ontvangststatus || CHR (13) || CHR (10),
|
|
'')
|
|
|| COALESCE (c.commentaar, ''),
|
|
a.kosten
|
|
FROM (SELECT o.mld_opdr_key,
|
|
o.mld_melding_key
|
|
|| '/'
|
|
|| o.mld_opdr_bedrijfopdr_volgnr
|
|
bestel_id,
|
|
o.mld_statusopdr_key,
|
|
s.mld_statusopdr_omschrijving status,
|
|
o.mld_opdr_omschrijving,
|
|
o.mld_opdr_datumbegin besteld_op,
|
|
o.mld_opdr_verzonden,
|
|
u.prs_bedrijf_naam,
|
|
o.mld_opdr_kosten kosten
|
|
FROM mld_opdr o, mld_statusopdr s, prs_bedrijf u
|
|
WHERE o.mld_typeopdr_key = 182
|
|
AND o.mld_statusopdr_key <> 6
|
|
AND o.mld_statusopdr_key = s.mld_statusopdr_key
|
|
AND o.mld_uitvoerende_keys = u.prs_bedrijf_key) a
|
|
LEFT JOIN
|
|
(SELECT ko.mld_opdr_key,
|
|
ud.fac_usrdata_key,
|
|
ud.fac_usrdata_omschr ontvangststatus
|
|
FROM mld_v_aanwezigkenmerkopdr ko, fac_usrdata ud
|
|
WHERE ko.mld_kenmerk_key = 1
|
|
AND fac.safe_to_number (
|
|
ko.mld_kenmerkopdr_waarde
|
|
) = ud.fac_usrdata_key) b
|
|
ON a.mld_opdr_key = b.mld_opdr_key
|
|
LEFT JOIN
|
|
(SELECT ko.mld_opdr_key,
|
|
ko.mld_kenmerkopdr_waarde commentaar
|
|
FROM mld_v_aanwezigkenmerkopdr ko
|
|
WHERE ko.mld_kenmerk_key = 2) c
|
|
ON a.mld_opdr_key = c.mld_opdr_key;
|
|
|
|
/* Formatted on 1-6-2010 12:12:12 (QP5 v5.115.810.9015) */
|
|
CREATE OR REPLACE FUNCTION hpji_res_deel_maandbez (p_reskey IN NUMBER,
|
|
yyyymm IN VARCHAR2)
|
|
RETURN NUMBER
|
|
IS
|
|
v_bez NUMBER;
|
|
v_van_date DATE;
|
|
v_van_uur NUMBER;
|
|
v_tot_date DATE;
|
|
v_tot_uur NUMBER;
|
|
v_loop_date DATE;
|
|
v_count NUMBER;
|
|
BEGIN
|
|
v_bez := 0;
|
|
|
|
SELECT TRUNC (res_rsv_deel_van),
|
|
DECODE (
|
|
SIGN (
|
|
( (res_rsv_deel_van - TRUNC (res_rsv_deel_van)) * 24) - 8
|
|
),
|
|
-1,
|
|
8,
|
|
DECODE (
|
|
SIGN( ( (res_rsv_deel_van - TRUNC (res_rsv_deel_van)) * 24)
|
|
- 18),
|
|
-1,
|
|
( (res_rsv_deel_van - TRUNC (res_rsv_deel_van)) * 24),
|
|
18
|
|
)
|
|
),
|
|
TRUNC (res_rsv_deel_tot),
|
|
DECODE (
|
|
SIGN (
|
|
( (res_rsv_deel_tot - TRUNC (res_rsv_deel_tot)) * 24) - 8
|
|
),
|
|
-1,
|
|
8,
|
|
DECODE (
|
|
SIGN( ( (res_rsv_deel_tot - TRUNC (res_rsv_deel_tot)) * 24)
|
|
- 18),
|
|
-1,
|
|
( (res_rsv_deel_tot - TRUNC (res_rsv_deel_tot)) * 24),
|
|
18
|
|
)
|
|
)
|
|
INTO v_van_date,
|
|
v_van_uur,
|
|
v_tot_date,
|
|
v_tot_uur
|
|
FROM res_rsv_deel
|
|
WHERE res_rsv_deel_key = p_reskey;
|
|
|
|
IF (TO_CHAR (v_van_date, 'yyyy-mm') = yyyymm)
|
|
THEN
|
|
v_loop_date := v_van_date;
|
|
ELSE
|
|
v_loop_date := TO_DATE (yyyymm || '01', 'yyyy-mmdd');
|
|
END IF;
|
|
|
|
WHILE (v_loop_date <= v_tot_date
|
|
AND TO_CHAR (v_loop_date, 'yyyy-mm') = yyyymm)
|
|
LOOP
|
|
SELECT COUNT ( * )
|
|
INTO v_count
|
|
FROM mld_vrije_dagen
|
|
WHERE mld_vrije_dagen_datum = v_loop_date;
|
|
|
|
IF (v_count = 0 AND TO_CHAR (v_loop_date, 'd') NOT IN ('1', '7'))
|
|
THEN
|
|
CASE
|
|
WHEN v_van_date = v_tot_date
|
|
THEN
|
|
v_bez := v_bez + (v_tot_uur - v_van_uur);
|
|
WHEN v_loop_date = v_van_date
|
|
THEN
|
|
v_bez := v_bez + v_van_uur - 8;
|
|
WHEN v_loop_date = v_tot_date
|
|
THEN
|
|
v_bez := v_bez + v_tot_uur - 8;
|
|
ELSE
|
|
v_bez := v_bez + 10;
|
|
END CASE;
|
|
END IF;
|
|
|
|
v_loop_date := v_loop_date + 1;
|
|
END LOOP;
|
|
|
|
RETURN v_bez;
|
|
END;
|
|
/
|
|
|
|
/* Formatted on 1-6-2010 14:24:24 (QP5 v5.115.810.9015) */
|
|
CREATE OR REPLACE VIEW hpji_v_rap_res_deel_maandbez
|
|
(
|
|
fclt_f_maand,
|
|
fclt_f_catalogus,
|
|
fclt_f_voorziening,
|
|
gebruik,
|
|
beschikbaar,
|
|
bezetting
|
|
)
|
|
AS
|
|
SELECT a.maand,
|
|
a.catalogus,
|
|
a.voorziening,
|
|
a.gebruik,
|
|
b.beschikbaar,
|
|
REPLACE (TO_CHAR (a.gebruik / b.beschikbaar * 100, '990D9'),
|
|
'.',
|
|
',')
|
|
|| '%'
|
|
FROM ( SELECT hist.maand,
|
|
td.ins_discipline_omschrijving catalogus,
|
|
ins_d.ins_deel_omschrijving voorziening,
|
|
rd.res_deel_key,
|
|
SUM(hpji_res_deel_maandbez (rd.res_rsv_deel_key,
|
|
hist.maand))
|
|
gebruik
|
|
FROM res_v_aanwezigrsv_deel rd,
|
|
res_deel res_d,
|
|
ins_deel ins_d,
|
|
ins_tab_discipline td,
|
|
(SELECT DISTINCT
|
|
TO_CHAR (res_rsv_deel_van, 'yyyy-mm')
|
|
maand
|
|
FROM res_rsv_deel
|
|
WHERE TO_CHAR (res_rsv_deel_van, 'yyyymmdd') <
|
|
TO_CHAR (SYSDATE, 'yyyymm') || '01')
|
|
hist
|
|
WHERE rd.res_deel_key = res_d.res_deel_key
|
|
AND res_d.res_ins_deel_key = ins_d.ins_deel_key
|
|
AND res_d.res_discipline_key = td.ins_discipline_key
|
|
AND TO_CHAR (rd.res_rsv_deel_van, 'yyyy-mm') <=
|
|
hist.maand
|
|
AND TO_CHAR (rd.res_rsv_deel_tot, 'yyyy-mm') >=
|
|
hist.maand
|
|
GROUP BY hist.maand,
|
|
td.ins_discipline_omschrijving,
|
|
ins_d.ins_deel_omschrijving,
|
|
rd.res_deel_key) a
|
|
LEFT JOIN
|
|
(SELECT hist.maand,
|
|
fac.count_work_days (
|
|
TO_DATE (hist.maand || '01', 'yyyy-mmdd'),
|
|
LAST_DAY (
|
|
TO_DATE (hist.maand || '01', 'yyyy-mmdd')
|
|
)
|
|
+ 1
|
|
)
|
|
* 10
|
|
beschikbaar
|
|
FROM (SELECT DISTINCT
|
|
TO_CHAR (res_rsv_deel_van, 'yyyy-mm')
|
|
maand
|
|
FROM res_rsv_deel
|
|
WHERE TO_CHAR (res_rsv_deel_van, 'yyyymmdd') <
|
|
TO_CHAR (SYSDATE, 'yyyymm') || '01')
|
|
hist) b
|
|
ON a.maand = b.maand;
|
|
|
|
/* Formatted on 3-2-2011 12:12:12 (QP5 v5.115.810.9015) */
|
|
CREATE OR REPLACE VIEW hpji_v_rap_it_inventaris_jaar
|
|
(
|
|
hide_f_regel,
|
|
fclt_f_onderdeel,
|
|
fclt_f_rubriek,
|
|
fclt_f_aanschafjaar,
|
|
aantal
|
|
)
|
|
AS
|
|
SELECT grid.onderdeel || '-' || grid.rubriek regel,
|
|
grid.onderdeel,
|
|
grid.rubriek,
|
|
grid.jaar,
|
|
COALESCE (x.aantal, 0)
|
|
FROM (SELECT a.prs_afdeling_key onderdeel_key,
|
|
sd.ins_srtdeel_key rubriek_key,
|
|
j.jaar jaar,
|
|
a.prs_afdeling_omschrijving onderdeel,
|
|
sd.ins_srtdeel_omschrijving rubriek
|
|
FROM (SELECT prs_afdeling_key,
|
|
prs_afdeling_omschrijving
|
|
FROM prs_v_aanwezigafdeling
|
|
WHERE prs_afdeling_parentkey IS NULL
|
|
UNION ALL
|
|
SELECT -1 prs_afdeling_key,
|
|
'Onbekend' prs_afdeling_omschrijving
|
|
FROM DUAL) a,
|
|
ins_v_aanwezigsrtdeel sd,
|
|
ins_v_aanwezigsrtgroep sg,
|
|
(SELECT DISTINCT
|
|
TO_CHAR (
|
|
fac.safe_to_date (
|
|
ins_kenmerkdeel_waarde,
|
|
'dd-mm-yyyy'
|
|
),
|
|
'yyyy'
|
|
)
|
|
jaar
|
|
FROM ins_v_aanwezigkenmerkdeel
|
|
WHERE ins_kenmerk_key = 101) j -- Aanschafdatum
|
|
WHERE sd.ins_srtgroep_key = sg.ins_srtgroep_key
|
|
AND sg.ins_discipline_key = 401) grid -- Hardware
|
|
LEFT JOIN
|
|
( SELECT asd.prs_afdeling_key1 onderdeel_key,
|
|
asd.ins_srtdeel_key rubriek_key,
|
|
j.jaar jaar,
|
|
COUNT ( * ) aantal
|
|
FROM (SELECT DECODE (ra.aantal,
|
|
1, ab.prs_afdeling_key1,
|
|
-1)
|
|
prs_afdeling_key1,
|
|
d.ins_srtdeel_key,
|
|
d.ins_deel_key
|
|
FROM ins_v_aanwezigdeel d,
|
|
alg_v_allonrgoed_gegevens aog,
|
|
( SELECT alg_ruimte_key,
|
|
MAX (prs_afdeling_key)
|
|
prs_afdeling_key,
|
|
COUNT ( * ) aantal
|
|
FROM prs_ruimteafdeling
|
|
GROUP BY alg_ruimte_key) ra,
|
|
prs_v_afdeling_boom ab
|
|
WHERE d.ins_alg_ruimte_type NOT IN
|
|
('A', 'P', 'W')
|
|
AND d.ins_alg_ruimte_key =
|
|
aog.alg_onroerendgoed_keys
|
|
AND aog.alg_ruimte_key =
|
|
ra.alg_ruimte_key
|
|
AND ra.prs_afdeling_key =
|
|
ab.prs_afdeling_key
|
|
UNION ALL
|
|
SELECT -1 prs_afdeling_key1,
|
|
d.ins_srtdeel_key,
|
|
d.ins_deel_key
|
|
FROM ins_v_aanwezigdeel d,
|
|
alg_v_allonrgoed_gegevens aog
|
|
WHERE d.ins_alg_ruimte_type NOT IN
|
|
('A', 'P', 'W')
|
|
AND d.ins_alg_ruimte_key =
|
|
aog.alg_onroerendgoed_keys
|
|
AND (aog.alg_ruimte_key IS NULL
|
|
OR NOT EXISTS
|
|
(SELECT 1
|
|
FROM prs_ruimteafdeling ra
|
|
WHERE ra.alg_ruimte_key =
|
|
aog.alg_ruimte_key))
|
|
UNION ALL
|
|
SELECT ab.prs_afdeling_key1,
|
|
d.ins_srtdeel_key,
|
|
d.ins_deel_key
|
|
FROM ins_v_aanwezigdeel d,
|
|
prs_v_afdeling_boom ab
|
|
WHERE d.ins_alg_ruimte_type = 'A'
|
|
AND d.ins_alg_ruimte_key =
|
|
ab.prs_afdeling_key
|
|
UNION ALL
|
|
SELECT ab.prs_afdeling_key1,
|
|
d.ins_srtdeel_key,
|
|
d.ins_deel_key
|
|
FROM ins_v_aanwezigdeel d,
|
|
prs_perslid p,
|
|
prs_v_afdeling_boom ab
|
|
WHERE d.ins_alg_ruimte_type = 'P'
|
|
AND d.ins_alg_ruimte_key =
|
|
p.prs_perslid_key
|
|
AND p.prs_afdeling_key =
|
|
ab.prs_afdeling_key
|
|
UNION ALL
|
|
SELECT DECODE (ra.aantal,
|
|
1, ab.prs_afdeling_key1,
|
|
-1)
|
|
prs_afdeling_key1,
|
|
d.ins_srtdeel_key,
|
|
d.ins_deel_key
|
|
FROM ins_v_aanwezigdeel d,
|
|
prs_werkplek w,
|
|
( SELECT alg_ruimte_key,
|
|
MAX (prs_afdeling_key)
|
|
prs_afdeling_key,
|
|
COUNT ( * ) aantal
|
|
FROM prs_ruimteafdeling
|
|
GROUP BY alg_ruimte_key) ra,
|
|
prs_v_afdeling_boom ab
|
|
WHERE d.ins_alg_ruimte_type = 'W'
|
|
AND d.ins_alg_ruimte_key =
|
|
w.prs_werkplek_key
|
|
AND w.prs_alg_ruimte_key =
|
|
ra.alg_ruimte_key
|
|
AND ra.prs_afdeling_key =
|
|
ab.prs_afdeling_key
|
|
UNION ALL
|
|
SELECT -1 prs_afdeling_key1,
|
|
d.ins_srtdeel_key,
|
|
d.ins_deel_key
|
|
FROM ins_v_aanwezigdeel d, prs_werkplek w
|
|
WHERE d.ins_alg_ruimte_type = 'W'
|
|
AND d.ins_alg_ruimte_key =
|
|
w.prs_werkplek_key
|
|
AND NOT EXISTS
|
|
(SELECT 1
|
|
FROM prs_ruimteafdeling ra
|
|
WHERE ra.alg_ruimte_key =
|
|
w.prs_alg_ruimte_key))
|
|
asd
|
|
LEFT JOIN
|
|
(SELECT ins_deel_key,
|
|
TO_CHAR (
|
|
fac.safe_to_date (
|
|
ins_kenmerkdeel_waarde,
|
|
'dd-mm-yyyy'
|
|
),
|
|
'yyyy'
|
|
)
|
|
jaar
|
|
FROM ins_v_aanwezigkenmerkdeel
|
|
WHERE ins_kenmerk_key = 101) j -- Aanschafdatum
|
|
ON asd.ins_deel_key = j.ins_deel_key
|
|
GROUP BY asd.prs_afdeling_key1, asd.ins_srtdeel_key, j.jaar)
|
|
x
|
|
ON grid.onderdeel_key = x.onderdeel_key
|
|
AND grid.rubriek_key = x.rubriek_key
|
|
AND grid.jaar = x.jaar;
|
|
|
|
/* Formatted on 3-2-2011 13:34:45 (QP5 v5.115.810.9015) */
|
|
CREATE OR REPLACE VIEW hpji_v_rap_it_inventaris_stuk
|
|
(
|
|
fclt_f_onderdeel,
|
|
fclt_f_rubriek,
|
|
obj_id,
|
|
fclt_f_merk,
|
|
fclt_f_model,
|
|
fclt_d_aanschafdatum,
|
|
fclt_f_vestiging,
|
|
ruimte_nr,
|
|
ruimte_oms
|
|
)
|
|
AS
|
|
SELECT a.prs_afdeling_omschrijving,
|
|
sd.ins_srtdeel_omschrijving,
|
|
asd.ins_deel_omschrijving,
|
|
x.merk,
|
|
y.model,
|
|
TO_CHAR (z.datum, 'dd-mm-yyyy'),
|
|
asd.vestiging,
|
|
asd.ruimte_nr,
|
|
asd.ruimte_oms
|
|
FROM (SELECT d.ins_srtdeel_key,
|
|
d.ins_deel_key,
|
|
d.ins_deel_omschrijving,
|
|
DECODE (rv.aantal, 1, rv.prs_afdeling_key1, -1)
|
|
prs_afdeling_key1,
|
|
aog.alg_gebouw_code || ' - ' || aog.alg_gebouw_naam
|
|
vestiging,
|
|
aog.alg_ruimte_nr ruimte_nr,
|
|
aog.alg_ruimte_omschrijving ruimte_oms
|
|
FROM ins_v_aanwezigdeel d,
|
|
alg_v_allonrgoed_gegevens aog,
|
|
( SELECT alg_ruimte_key,
|
|
MAX (prs_afdeling_key1) prs_afdeling_key1,
|
|
COUNT ( * ) aantal
|
|
FROM prs_ruimteafdeling ra, prs_v_afdeling_boom ab
|
|
WHERE ra.prs_afdeling_key = ab.prs_afdeling_key
|
|
GROUP BY ra.alg_ruimte_key) rv
|
|
WHERE d.ins_alg_ruimte_type NOT IN ('A', 'P', 'W')
|
|
AND d.ins_alg_ruimte_key = aog.alg_onroerendgoed_keys
|
|
AND aog.alg_ruimte_key = rv.alg_ruimte_key
|
|
UNION ALL
|
|
SELECT d.ins_srtdeel_key,
|
|
d.ins_deel_key,
|
|
d.ins_deel_omschrijving,
|
|
-1 prs_afdeling_key1,
|
|
aog.alg_gebouw_code || ' - ' || aog.alg_gebouw_naam
|
|
vestiging,
|
|
aog.alg_ruimte_nr ruimte_nr,
|
|
aog.alg_ruimte_omschrijving ruimte_oms
|
|
FROM ins_v_aanwezigdeel d, alg_v_allonrgoed_gegevens aog
|
|
WHERE d.ins_alg_ruimte_type NOT IN ('A', 'P', 'W')
|
|
AND d.ins_alg_ruimte_key = aog.alg_onroerendgoed_keys
|
|
AND (aog.alg_ruimte_key IS NULL
|
|
OR NOT EXISTS
|
|
(SELECT 1
|
|
FROM prs_ruimteafdeling ra
|
|
WHERE ra.alg_ruimte_key =
|
|
aog.alg_ruimte_key))
|
|
UNION ALL
|
|
SELECT d.ins_srtdeel_key,
|
|
d.ins_deel_key,
|
|
d.ins_deel_omschrijving,
|
|
ab.prs_afdeling_key1,
|
|
'Onbekend',
|
|
NULL ruimte_nr,
|
|
NULL ruimte_oms
|
|
FROM ins_v_aanwezigdeel d, prs_v_afdeling_boom ab
|
|
WHERE d.ins_alg_ruimte_type = 'A'
|
|
AND d.ins_alg_ruimte_key = ab.prs_afdeling_key
|
|
UNION ALL
|
|
SELECT d.ins_srtdeel_key,
|
|
d.ins_deel_key,
|
|
d.ins_deel_omschrijving,
|
|
ab.prs_afdeling_key1,
|
|
'Onbekend',
|
|
NULL ruimte_nr,
|
|
NULL ruimte_oms
|
|
FROM ins_v_aanwezigdeel d,
|
|
prs_perslid p,
|
|
prs_v_afdeling_boom ab
|
|
WHERE d.ins_alg_ruimte_type = 'P'
|
|
AND d.ins_alg_ruimte_key = p.prs_perslid_key
|
|
AND p.prs_afdeling_key = ab.prs_afdeling_key
|
|
UNION ALL
|
|
SELECT d.ins_srtdeel_key,
|
|
d.ins_deel_key,
|
|
d.ins_deel_omschrijving,
|
|
DECODE (rv.aantal, 1, rv.prs_afdeling_key1, -1)
|
|
prs_afdeling_key1,
|
|
aog.alg_gebouw_code || ' - ' || aog.alg_gebouw_naam
|
|
vestiging,
|
|
aog.alg_ruimte_nr ruimte_nr,
|
|
aog.alg_ruimte_omschrijving ruimte_oms
|
|
FROM ins_v_aanwezigdeel d,
|
|
prs_werkplek w,
|
|
( SELECT alg_ruimte_key,
|
|
MAX (prs_afdeling_key1) prs_afdeling_key1,
|
|
COUNT ( * ) aantal
|
|
FROM prs_ruimteafdeling ra, prs_v_afdeling_boom ab
|
|
WHERE ra.prs_afdeling_key = ab.prs_afdeling_key
|
|
GROUP BY ra.alg_ruimte_key) rv,
|
|
alg_v_allonrgoed_gegevens aog
|
|
WHERE d.ins_alg_ruimte_type = 'W'
|
|
AND d.ins_alg_ruimte_key = w.prs_werkplek_key
|
|
AND w.prs_alg_ruimte_key = rv.alg_ruimte_key
|
|
AND rv.alg_ruimte_key = aog.alg_ruimte_key
|
|
UNION ALL
|
|
SELECT d.ins_srtdeel_key,
|
|
d.ins_deel_key,
|
|
d.ins_deel_omschrijving,
|
|
-1 prs_afdeling_key1,
|
|
aog.alg_gebouw_code || ' - ' || aog.alg_gebouw_naam
|
|
vestiging,
|
|
aog.alg_ruimte_nr ruimte_nr,
|
|
aog.alg_ruimte_omschrijving ruimte_oms
|
|
FROM ins_v_aanwezigdeel d,
|
|
prs_werkplek w,
|
|
alg_v_allonrgoed_gegevens aog
|
|
WHERE d.ins_alg_ruimte_type = 'W'
|
|
AND d.ins_alg_ruimte_key = w.prs_werkplek_key
|
|
AND NOT EXISTS
|
|
(SELECT 1
|
|
FROM prs_ruimteafdeling ra
|
|
WHERE ra.alg_ruimte_key =
|
|
w.prs_alg_ruimte_key)
|
|
AND w.prs_alg_ruimte_key = aog.alg_ruimte_key) asd,
|
|
ins_srtdeel sd,
|
|
ins_srtgroep sg,
|
|
(SELECT prs_afdeling_key, prs_afdeling_omschrijving
|
|
FROM prs_v_aanwezigafdeling
|
|
WHERE prs_afdeling_parentkey IS NULL
|
|
UNION ALL
|
|
SELECT -1 prs_afdeling_key,
|
|
'Onbekend' prs_afdeling_omschrijving
|
|
FROM DUAL) a,
|
|
(SELECT ins_deel_key, ins_kenmerkdeel_waarde merk
|
|
FROM ins_v_aanwezigkenmerkdeel kd, ins_kenmerk k
|
|
WHERE kd.ins_kenmerk_key = k.ins_kenmerk_key
|
|
AND k.ins_srtkenmerk_key = 21) x, -- Merk
|
|
(SELECT ins_deel_key, ins_kenmerkdeel_waarde model
|
|
FROM ins_v_aanwezigkenmerkdeel kd, ins_kenmerk k
|
|
WHERE kd.ins_kenmerk_key = k.ins_kenmerk_key
|
|
AND k.ins_srtkenmerk_key = 22) y, -- Model
|
|
(SELECT ins_deel_key,
|
|
fac.safe_to_date (ins_kenmerkdeel_waarde, 'dd-mm-yyyy')
|
|
datum
|
|
FROM ins_v_aanwezigkenmerkdeel
|
|
WHERE ins_kenmerk_key = 101) z -- Aanschafdatum
|
|
WHERE asd.ins_srtdeel_key = sd.ins_srtdeel_key
|
|
AND sd.ins_srtgroep_key = sg.ins_srtgroep_key
|
|
AND sg.ins_discipline_key = 401 -- Hardware
|
|
AND asd.prs_afdeling_key1 = a.prs_afdeling_key
|
|
AND asd.ins_deel_key = x.ins_deel_key(+)
|
|
AND asd.ins_deel_key = y.ins_deel_key(+)
|
|
AND asd.ins_deel_key = z.ins_deel_key(+);
|
|
|
|
|
|
-- HPJI#28971 Geleverde bestellingen bloemen automatisch afmelden
|
|
CREATE OR REPLACE PROCEDURE hpji_export_bes_afmeld (p_applname IN VARCHAR2,
|
|
p_applrun IN VARCHAR2,
|
|
p_filedir IN VARCHAR2,
|
|
p_filename IN VARCHAR2)
|
|
AS
|
|
-- De bestelopdrachten die ik als compleet geleverd veronderstel,
|
|
-- die zouden in principe meer werkdagen geleden geleverd zijn dan
|
|
-- de 'notidagen' van de catalogus aangeeft.
|
|
-- bes_discipline 201 Bloemen Groningen
|
|
-- bes_discipline 202 Bloemen Veenhuizen
|
|
CURSOR cbopi
|
|
IS
|
|
SELECT boi.bes_bestelopdr_item_key, bo.bes_bestelopdr_key, b.bes_bestelling_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 = 4 -- In bestelling
|
|
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 = bdp.bes_ins_discipline_key
|
|
AND sg.ins_discipline_key IN (201, 202)
|
|
AND bdp.bes_disc_params_noti_dagen IS NOT NULL
|
|
AND ( b.bes_bestelling_leverdatum IS NULL
|
|
OR fac.datumtijdplusuitvoertijd (b.bes_bestelling_leverdatum,
|
|
bdp.bes_disc_params_noti_dagen,
|
|
'DAGEN')
|
|
< SYSDATE );
|
|
|
|
-- Alle bestelaanvragen die (nu) geheel geleverd zijn sluiten we af.
|
|
CURSOR cbesi
|
|
IS
|
|
SELECT bi.bes_bestelling_item_key, b.bes_bestelling_key
|
|
FROM bes_bestelling b,
|
|
bes_bestelling_item bi,
|
|
bes_bestelopdr_item boi,
|
|
bes_srtdeel sd,
|
|
bes_srtgroep sg
|
|
WHERE b.bes_bestelling_status = 5 -- Besteld
|
|
AND b.bes_bestelling_key = bi.bes_bestelling_key
|
|
AND bi.bes_bestelopdr_item_key = boi.bes_bestelopdr_item_key
|
|
AND boi.bes_bestelopdr_item_aantal = boi.bes_bestelopdr_item_aantalontv
|
|
AND bi.bes_srtdeel_key = sd.bes_srtdeel_key
|
|
AND sd.bes_srtgroep_key = sg.bes_srtgroep_key
|
|
AND sg.ins_discipline_key IN (201, 202);
|
|
|
|
v_errorhint VARCHAR2 (1000);
|
|
v_errormsg VARCHAR2 (1000);
|
|
oracle_err_num NUMBER;
|
|
oracle_err_mes VARCHAR2 (200);
|
|
BEGIN
|
|
FOR r IN cbopi
|
|
LOOP
|
|
-- Zeg dat alles geleverd is wat besteld is.
|
|
UPDATE bes_bestelopdr_item
|
|
SET bes_bestelopdr_item_aantalontv = bes_bestelopdr_item_aantal
|
|
WHERE bes_bestelopdr_item_key = r.bes_bestelopdr_item_key;
|
|
|
|
bes.updatebestelopdrstatus (r.bes_bestelopdr_key, NULL);
|
|
END LOOP;
|
|
|
|
FOR r IN cbesi
|
|
LOOP
|
|
-- Sluit alle aanvraagregels af die nu geheel geleverd zijn.
|
|
UPDATE bes_bestelling_item
|
|
SET bes_bestelling_item_aantalontv = bes_bestelling_item_aantal
|
|
WHERE bes_bestelling_item_key = r.bes_bestelling_item_key;
|
|
|
|
bes.updatebestellingstatus (r.bes_bestelling_key, NULL);
|
|
END LOOP;
|
|
|
|
COMMIT;
|
|
|
|
EXCEPTION
|
|
WHEN OTHERS
|
|
THEN
|
|
oracle_err_num := SQLCODE;
|
|
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
|
|
ROLLBACK;
|
|
v_errormsg := 'ORACLE (error ' || oracle_err_num || '/' || oracle_err_mes || ')';
|
|
fac.writelog (p_applname,
|
|
'E',
|
|
'Proces afmelden bestellingen afgebroken!',
|
|
v_errormsg);
|
|
COMMIT;
|
|
END;
|
|
/
|
|
|
|
BEGIN fac.registercustversion('HPJI', 12); END;
|
|
/
|
|
BEGIN adm.systrackscriptId('$Id$', 0); END;
|
|
/
|
|
commit;
|
|
|
|
spool off
|