2602 lines
109 KiB
SQL
2602 lines
109 KiB
SQL
--
|
|
-- $Id$
|
|
--
|
|
-- Script containing customer specific db-configuration for ALLV.
|
|
DEFINE thisfile = 'ALLV.SQL'
|
|
DEFINE dbuser = '^ALLV'
|
|
|
|
SET ECHO ON
|
|
SET DEFINE ON
|
|
COLUMN fcltlogfile NEW_VALUE fcltlogfile NOPRINT;
|
|
COLUMN fcltcusttxt NEW_VALUE fcltcusttxt NOPRINT;
|
|
WHENEVER SQLERROR CONTINUE;
|
|
SELECT adm.getscriptspoolfile('&thisfile') AS fcltlogfile FROM DUAL;
|
|
SPOOL &fcltlogfile
|
|
WHENEVER SQLERROR EXIT;
|
|
SELECT adm.checkscriptcust('&dbuser') AS fcltcusttxt FROM DUAL;
|
|
WHENEVER SQLERROR CONTINUE;
|
|
---------------------------------------
|
|
PROMPT &fcltcusttxt
|
|
---------------------------------------
|
|
SET DEFINE OFF
|
|
|
|
------ payload begin ------
|
|
|
|
/* Formatted on 29-3-2013 20:52:02 (QP5 v5.115.810.9015) */
|
|
CREATE OR REPLACE VIEW allv_v_rap_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 = 421);
|
|
|
|
/* Formatted on 29-3-2013 20:52:02 (QP5 v5.115.810.9015) */
|
|
CREATE OR REPLACE PROCEDURE allv_import_prs (p_import_key IN NUMBER)
|
|
IS
|
|
c_fielddelimitor VARCHAR2 (1) := ';';
|
|
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_nr 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_geslacht VARCHAR2 (256);
|
|
--v_prs_afdeling_naam VARCHAR2 (256);
|
|
--v_prs_afdeling_omschrijving VARCHAR2 (256);
|
|
v_prs_kostenplaats_nr VARCHAR2 (256);
|
|
v_prs_srtperslid_omschrijving VARCHAR2 (256);
|
|
--v_alg_locatie_code VARCHAR2 (256);
|
|
v_alg_gebouw_code VARCHAR2 (256);
|
|
--v_alg_verdieping_code VARCHAR2 (256);
|
|
v_alg_ruimte_nr VARCHAR2 (256);
|
|
v_prs_perslid_telefoonnr VARCHAR2 (256);
|
|
v_prs_perslid_mobiel VARCHAR2 (256);
|
|
v_prs_perslid_email VARCHAR2 (256);
|
|
v_prs_perslid_oslogin VARCHAR2 (256);
|
|
v_prs_perslid_ingangsdatum VARCHAR2 (256);
|
|
v_prs_perslid_einddatum 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 allv_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_nr);
|
|
-- 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_geslacht);
|
|
-- xx
|
|
--fac.imp_getfield (v_newline, c_fielddelimitor, v_prs_afdeling_naam);
|
|
-- xx
|
|
--fac.imp_getfield (v_newline, c_fielddelimitor, v_prs_afdeling_omschrijving);
|
|
-- 07
|
|
fac.imp_getfield (v_newline, c_fielddelimitor, v_prs_kostenplaats_nr);
|
|
-- 09
|
|
fac.imp_getfield (v_newline, c_fielddelimitor, v_prs_srtperslid_omschrijving);
|
|
-- xx
|
|
--fac.imp_getfield (v_newline, c_fielddelimitor, v_alg_locatie_code);
|
|
-- 10
|
|
fac.imp_getfield (v_newline, c_fielddelimitor, v_alg_gebouw_code);
|
|
-- xx
|
|
--fac.imp_getfield (v_newline, c_fielddelimitor, v_alg_verdieping_code);
|
|
-- 11
|
|
fac.imp_getfield (v_newline, c_fielddelimitor, v_alg_ruimte_nr);
|
|
-- 12
|
|
fac.imp_getfield (v_newline, c_fielddelimitor, v_prs_perslid_telefoonnr);
|
|
-- 13
|
|
fac.imp_getfield (v_newline, c_fielddelimitor, v_prs_perslid_mobiel);
|
|
-- 14
|
|
fac.imp_getfield (v_newline, c_fielddelimitor, v_prs_perslid_email);
|
|
-- 15
|
|
fac.imp_getfield (v_newline, c_fielddelimitor, v_prs_perslid_oslogin);
|
|
-- 16
|
|
fac.imp_getfield (v_newline, c_fielddelimitor, v_prs_perslid_ingangsdatum);
|
|
-- 18
|
|
fac.imp_getfield (v_newline, c_fielddelimitor, v_prs_perslid_einddatum);
|
|
--
|
|
v_aanduiding :=
|
|
'['
|
|
|| v_prs_perslid_nr
|
|
|| '|'
|
|
|| v_prs_perslid_naam
|
|
|| '|'
|
|
|| v_prs_perslid_tussenvoegsel
|
|
|| '|'
|
|
|| v_prs_perslid_voornaam
|
|
|| '] ';
|
|
|
|
-- 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.
|
|
IF (header_is_valid = 0)
|
|
THEN
|
|
IF ( UPPER (v_prs_perslid_nr) = 'PERSONEELSNUMMER'
|
|
AND UPPER (v_prs_perslid_naam) = 'ACHTERNAAM'
|
|
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_geslacht) = 'GESLACHT'
|
|
--AND UPPER (v_prs_afdeling_naam) = 'AFDELINGSCODE'
|
|
--AND UPPER (v_prs_afdeling_omschrijving) = 'AFDELINGSOMSCHRIJVING'
|
|
AND UPPER (v_prs_kostenplaats_nr) = 'KOSTENPLAATSNUMMER'
|
|
AND UPPER (v_prs_srtperslid_omschrijving) = 'FUNCTIE'
|
|
--AND UPPER (v_alg_locatie_code) = 'LOCATIECODE'
|
|
AND UPPER (v_alg_gebouw_code) = 'GEBOUWCODE'
|
|
--AND UPPER (v_alg_verdieping_code) = 'BOUWLAAGVOLGNUMMER'
|
|
AND UPPER (v_alg_ruimte_nr) = 'RUIMTENUMMER'
|
|
AND UPPER (v_prs_perslid_telefoonnr) = 'TELEFOONNUMMER'
|
|
AND UPPER (v_prs_perslid_mobiel) = 'MOBIEL'
|
|
AND UPPER (v_prs_perslid_email) = 'EMAIL'
|
|
AND UPPER (v_prs_perslid_oslogin) = 'LOGINNAAM'
|
|
AND UPPER (v_prs_perslid_ingangsdatum) = 'INDIENSTDATUM'
|
|
AND UPPER (v_prs_perslid_einddatum) = 'UITDIENSTDATUM')
|
|
THEN
|
|
header_is_valid := 1;
|
|
END IF;
|
|
ELSE
|
|
v_count_tot := v_count_tot + 1;
|
|
-- Controleer alle veldwaarden
|
|
v_errorhint := 'Ongeldig personeelsnummer';
|
|
v_prs_perslid_nr := TRIM (v_prs_perslid_nr);
|
|
|
|
IF (v_prs_perslid_nr IS NULL OR LENGTH (v_prs_perslid_nr) > 16)
|
|
THEN
|
|
v_ongeldig := 1;
|
|
fac.imp_writelog (
|
|
p_import_key,
|
|
'W',
|
|
v_aanduiding || 'Personeelsnummer onbekend/te lang',
|
|
'Personeelsnummer verplicht; regel wordt overgeslagen!'
|
|
);
|
|
COMMIT;
|
|
END IF;
|
|
|
|
--
|
|
v_errorhint := 'Ongeldige achternaam';
|
|
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 || 'Achternaam te lang',
|
|
'Achternaam wordt afgebroken tot ['
|
|
|| v_prs_perslid_naam
|
|
|| ']'
|
|
);
|
|
COMMIT;
|
|
ELSIF (v_prs_perslid_naam IS NULL)
|
|
THEN
|
|
v_ongeldig := 1;
|
|
fac.imp_writelog (
|
|
p_import_key,
|
|
'E',
|
|
v_aanduiding || 'Achternaam onbekend',
|
|
'Achternaam verplicht; regel wordt overgeslagen!'
|
|
);
|
|
COMMIT;
|
|
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 te lang',
|
|
'Voornaam wordt afgebroken tot ['
|
|
|| v_prs_perslid_voornaam
|
|
|| ']'
|
|
);
|
|
COMMIT;
|
|
ELSIF (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;
|
|
|
|
--
|
|
v_errorhint := 'Ongeldig geslacht';
|
|
v_prs_perslid_geslacht := TRIM (v_prs_perslid_geslacht);
|
|
|
|
IF (LENGTH (v_prs_perslid_geslacht) > 1)
|
|
THEN
|
|
v_prs_perslid_geslacht := NULL;
|
|
fac.imp_writelog (p_import_key,
|
|
'W',
|
|
v_aanduiding || 'Geslacht te lang',
|
|
'Geslacht wordt niet gezet');
|
|
COMMIT;
|
|
END IF;
|
|
|
|
/*
|
|
--
|
|
v_errorhint := 'Ongeldige afdelingscode';
|
|
v_prs_afdeling_naam := TRIM (v_prs_afdeling_naam);
|
|
|
|
IF (v_prs_afdeling_naam IS NULL OR LENGTH (v_prs_afdeling_naam) > 10)
|
|
THEN
|
|
v_ongeldig := 1;
|
|
fac.imp_writelog (
|
|
p_import_key,
|
|
'W',
|
|
v_aanduiding || 'Afdelingscode onbekend/te lang',
|
|
'Afdelingscode verplicht; regel wordt overgeslagen!'
|
|
);
|
|
COMMIT;
|
|
END IF;
|
|
|
|
--
|
|
v_errorhint := 'Ongeldige afdelingsomschrijving';
|
|
v_prs_afdeling_omschrijving := TRIM (v_prs_afdeling_omschrijving);
|
|
|
|
IF (LENGTH (v_prs_afdeling_omschrijving) > 60)
|
|
THEN
|
|
v_prs_afdeling_omschrijving :=
|
|
SUBSTR (v_prs_afdeling_omschrijving, 1, 60);
|
|
fac.imp_writelog (
|
|
p_import_key,
|
|
'W',
|
|
v_aanduiding || 'Afdelingsomschrijving te lang',
|
|
'Afdelingsomschrijving wordt afgebroken tot ['
|
|
|| v_prs_afdeling_omschrijving
|
|
|| ']'
|
|
);
|
|
COMMIT;
|
|
END IF;
|
|
*/
|
|
--
|
|
v_errorhint := 'Ongeldig kostenplaatsnummer';
|
|
v_prs_kostenplaats_nr := TRIM (v_prs_kostenplaats_nr);
|
|
|
|
IF (v_prs_kostenplaats_nr IS NULL
|
|
OR LENGTH (v_prs_kostenplaats_nr) > 30)
|
|
THEN
|
|
v_ongeldig := 1;
|
|
fac.imp_writelog (
|
|
p_import_key,
|
|
'W',
|
|
v_aanduiding || 'Kostenplaatsnummer onbekend/te lang',
|
|
'Kostenplaatsnummer verplicht; regel wordt overgeslagen!'
|
|
);
|
|
COMMIT;
|
|
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;
|
|
ELSIF (v_prs_srtperslid_omschrijving IS NULL)
|
|
THEN
|
|
v_prs_srtperslid_omschrijving := 'Onbekend';
|
|
fac.imp_writelog (p_import_key,
|
|
'W',
|
|
v_aanduiding || 'Functie onbekend',
|
|
'Functie wordt gezet op [Onbekend]');
|
|
COMMIT;
|
|
END IF;
|
|
|
|
/*
|
|
--
|
|
v_errorhint := 'Ongeldige locatiecode';
|
|
v_alg_locatie_code := TRIM (v_alg_locatie_code);
|
|
|
|
IF (LENGTH (v_alg_locatie_code) > 10)
|
|
THEN
|
|
v_alg_locatie_code := SUBSTR (v_alg_locatie_code, 1, 10);
|
|
fac.imp_writelog (
|
|
p_import_key,
|
|
'W',
|
|
v_aanduiding || 'Locatiecode te lang',
|
|
'Locatiecode wordt afgebroken tot ['
|
|
|| v_alg_locatie_code
|
|
|| ']'
|
|
);
|
|
COMMIT;
|
|
END IF;
|
|
*/
|
|
--
|
|
v_errorhint := 'Ongeldige gebouwcode';
|
|
v_alg_gebouw_code := TRIM (v_alg_gebouw_code);
|
|
|
|
IF (LENGTH (v_alg_gebouw_code) > 12)
|
|
THEN
|
|
v_alg_gebouw_code := SUBSTR (v_alg_gebouw_code, 1, 12);
|
|
fac.imp_writelog (
|
|
p_import_key,
|
|
'W',
|
|
v_aanduiding || 'Gebouwcode te lang',
|
|
'Gebouwcode wordt afgebroken tot ['
|
|
|| v_alg_gebouw_code
|
|
|| ']'
|
|
);
|
|
COMMIT;
|
|
END IF;
|
|
|
|
/*
|
|
--
|
|
v_errorhint := 'Ongeldige verdiepingcode';
|
|
v_alg_verdieping_code := TRIM (v_alg_verdieping_code);
|
|
|
|
IF (LENGTH (v_alg_verdieping_code) > 10)
|
|
THEN
|
|
v_alg_verdieping_code := SUBSTR (v_alg_verdieping_code, 1, 10);
|
|
fac.imp_writelog (
|
|
p_import_key,
|
|
'W',
|
|
v_aanduiding || 'Verdiepingcode te lang',
|
|
'Verdiepingcode wordt afgebroken tot ['
|
|
|| v_alg_verdieping_code
|
|
|| ']'
|
|
);
|
|
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',
|
|
'Ruimtenummer 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 mobielnummer';
|
|
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 || 'Mobielnummer te lang',
|
|
'Mobielnummer 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 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 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 ALLV_IMP_PRS';
|
|
|
|
INSERT INTO allv_imp_prs (
|
|
imp_datum,
|
|
prs_perslid_nr,
|
|
prs_perslid_naam,
|
|
prs_perslid_tussenvoegsel,
|
|
prs_perslid_voorletters,
|
|
prs_perslid_voornaam,
|
|
prs_perslid_geslacht,
|
|
--prs_afdeling_naam,
|
|
--prs_afdeling_omschrijving,
|
|
prs_kostenplaats_nr,
|
|
prs_srtperslid_omschrijving,
|
|
--alg_locatie_code,
|
|
alg_gebouw_code,
|
|
--alg_verdieping_code,
|
|
alg_ruimte_nr,
|
|
prs_perslid_telefoonnr,
|
|
prs_perslid_mobiel,
|
|
prs_perslid_email,
|
|
prs_perslid_oslogin,
|
|
prs_perslid_ingangsdatum,
|
|
prs_perslid_einddatum
|
|
)
|
|
VALUES (
|
|
SYSDATE,
|
|
v_prs_perslid_nr,
|
|
v_prs_perslid_naam,
|
|
v_prs_perslid_tussenvoegsel,
|
|
v_prs_perslid_voorletters,
|
|
v_prs_perslid_voornaam,
|
|
DECODE (v_prs_perslid_geslacht,
|
|
'2', 1,
|
|
'1', 0,
|
|
NULL),
|
|
--v_prs_afdeling_naam,
|
|
--v_prs_afdeling_omschrijving,
|
|
v_prs_kostenplaats_nr,
|
|
v_prs_srtperslid_omschrijving,
|
|
--v_alg_locatie_code,
|
|
v_alg_gebouw_code,
|
|
--v_alg_verdieping_code,
|
|
v_alg_ruimte_nr,
|
|
v_prs_perslid_telefoonnr,
|
|
v_prs_perslid_mobiel,
|
|
v_prs_perslid_email,
|
|
v_prs_perslid_oslogin,
|
|
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/#ingelezen regels: ' || TO_CHAR (v_count_tot),
|
|
''
|
|
);
|
|
fac.imp_writelog (
|
|
p_import_key,
|
|
'S',
|
|
'Persoon/#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, 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 allv_import_prs;
|
|
/
|
|
|
|
/* Formatted on 11-7-2013 10:48:58 (QP5 v5.115.810.9015) */
|
|
CREATE OR REPLACE PROCEDURE allv_update_prs (p_import_key IN NUMBER)
|
|
IS
|
|
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_key NUMBER (10) := 21; -- Niet bevoegd tot bestellen!
|
|
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_kostenplaats_key NUMBER (10);
|
|
v_srtperslid_key NUMBER (10);
|
|
--v_locatie_key NUMBER (10);
|
|
v_gebouw_key NUMBER (10);
|
|
v_gebouw_code VARCHAR2 (12);
|
|
--v_verdieping_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 allv_imp_prs!
|
|
-- Dubbele nummers? Dan wordt iemand mogelijk niet verwijderd/INACTIEF!
|
|
CURSOR cdelprs
|
|
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_oslogin NOT LIKE '\_%' ESCAPE '\'
|
|
AND NOT EXISTS
|
|
(SELECT 1
|
|
FROM allv_imp_prs ip
|
|
WHERE UPPER (ip.prs_perslid_nr) =
|
|
UPPER (p.prs_perslid_nr));
|
|
|
|
-- Let op! Personen die niet meer in dienst zijn -> niet in allv_imp_prs!
|
|
CURSOR csrtperslid
|
|
IS
|
|
SELECT MIN (prs_perslid_nr) prs_perslid_nr,
|
|
MIN (prs_perslid_naam) prs_perslid_naam,
|
|
MIN (prs_perslid_voornaam) prs_perslid_voornaam,
|
|
MIN (prs_srtperslid_omschrijving) prs_srtperslid_omschrijving
|
|
FROM allv_imp_prs
|
|
GROUP BY UPPER (prs_srtperslid_omschrijving);
|
|
|
|
-- Let op! Personen die niet meer in dienst zijn -> niet in allv_imp_prs!
|
|
-- Dubbele nummers? Dan wordt slechts 1 set persoongegevens toegevoegd!
|
|
-- Ook wordt in deze loop de afdelingsomschrijving eventueel bijgewerkt!
|
|
CURSOR cperslid
|
|
IS
|
|
SELECT * FROM allv_imp_prs;
|
|
|
|
-- Let op! Personen die niet meer in dienst zijn -> niet in allv_imp_prs!
|
|
-- Dubbele nummers? Dan krijgt iemand mogelijk de verkeerde plaats!
|
|
CURSOR cwp
|
|
IS
|
|
SELECT p.*, ip.alg_gebouw_code, ip.alg_ruimte_nr
|
|
FROM allv_imp_prs ip, prs_v_aanwezigperslid p
|
|
WHERE UPPER (ip.prs_perslid_nr) = UPPER (p.prs_perslid_nr)
|
|
AND (ip.alg_gebouw_code IS NOT NULL
|
|
OR ip.alg_ruimte_nr IS NOT NULL);
|
|
|
|
-- Alle actieve personen met nummer (ie. de import-doelgroep) zonder een werkplek
|
|
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 NOT EXISTS
|
|
(SELECT 1
|
|
FROM prs_perslidwerkplek pw
|
|
WHERE pw.prs_perslid_key = p.prs_perslid_key);
|
|
|
|
-- Alle aanwezige personen met nummer (ie. de import-doelgroep) niet in een groep
|
|
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
|
|
-- Bepaal nummer-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 ALLV_IMP_PRS).
|
|
SELECT COUNT ( * )
|
|
INTO v_count_prs_import
|
|
FROM prs_v_aanwezigperslid p, allv_imp_prs ip
|
|
WHERE p.prs_perslid_nr IS NOT NULL
|
|
AND UPPER (p.prs_perslid_nr) = UPPER (ip.prs_perslid_nr)
|
|
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
|
|
WHERE prs_perslid_nr 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 := 'Fout bij bepalen profiel';
|
|
|
|
SELECT MAX (fac_profiel_key), COUNT ( * )
|
|
INTO v_profiel_key, v_count
|
|
FROM fac_profiel
|
|
WHERE fac_profiel_key = c_profiel_key;
|
|
|
|
IF (v_count = 0)
|
|
THEN
|
|
fac.imp_writelog (
|
|
p_import_key,
|
|
'I',
|
|
'Standaard profiel [key='
|
|
|| TO_CHAR (c_profiel_key)
|
|
|| '] niet gevonden.',
|
|
'Personen zonder profiel krijgen geen default profiel.'
|
|
);
|
|
COMMIT;
|
|
END IF;
|
|
|
|
FOR recdelprs IN cdelprs
|
|
LOOP
|
|
BEGIN
|
|
v_aanduiding :=
|
|
recdelprs.prs_perslid_nr
|
|
|| '|'
|
|
|| 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 nummer ['
|
|
|| recdelprs.prs_perslid_nr
|
|
|| '] en naam ['
|
|
|| recdelprs.prs_perslid_naam
|
|
|| ', '
|
|
|| recdelprs.prs_perslid_voornaam
|
|
|| '] is verwijderd',
|
|
'Persoon is verwijderd'
|
|
);
|
|
COMMIT;
|
|
ELSE
|
|
-- Staat persoon 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
|
|
WHERE prs_perslid_key = recdelprs.prs_perslid_key;
|
|
|
|
fac.imp_writelog (
|
|
p_import_key,
|
|
'I',
|
|
'Persoon met nummer ['
|
|
|| recdelprs.prs_perslid_nr
|
|
|| '] 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 nummer ['
|
|
|| 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
|
|
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_nr
|
|
|| '|'
|
|
|| 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_nr
|
|
|| '|'
|
|
|| 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 met kostenplaats ['
|
|
|| recperslid.prs_kostenplaats_nr
|
|
|| ']';
|
|
|
|
SELECT a1.prs_afdeling_key
|
|
INTO v_afdeling_key
|
|
FROM prs_v_aanwezigafdeling a1, prs_v_aanwezigkostenplaats k1
|
|
WHERE a1.prs_kostenplaats_key = k1.prs_kostenplaats_key
|
|
AND k1.prs_kostenplaats_upper =
|
|
UPPER (recperslid.prs_kostenplaats_nr)
|
|
AND NOT EXISTS
|
|
(SELECT 1
|
|
FROM prs_v_aanwezigafdeling a2,
|
|
prs_v_aanwezigkostenplaats k2
|
|
WHERE a2.prs_kostenplaats_key =
|
|
k2.prs_kostenplaats_key
|
|
AND k2.prs_kostenplaats_upper =
|
|
UPPER (
|
|
recperslid.prs_kostenplaats_nr
|
|
)
|
|
AND a2.prs_afdeling_key >
|
|
a1.prs_afdeling_key);
|
|
|
|
--v_errorhint :=
|
|
-- 'Fout bij wijzigen afdelingsomschrijving ['
|
|
-- || recperslid.prs_afdeling_naam
|
|
-- || '|'
|
|
-- || recperslid.prs_afdeling_omschrijving
|
|
-- || ']';
|
|
|
|
--UPDATE prs_afdeling
|
|
-- SET prs_afdeling_omschrijving =
|
|
-- COALESCE (recperslid.prs_afdeling_omschrijving,
|
|
-- prs_afdeling_omschrijving)
|
|
-- WHERE prs_afdeling_key = v_afdeling_key;
|
|
|
|
--COMMIT;
|
|
|
|
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_nr) =
|
|
UPPER (recperslid.prs_perslid_nr);
|
|
|
|
IF (v_count > 1)
|
|
THEN
|
|
fac.imp_writelog (p_import_key,
|
|
'W',
|
|
v_aanduiding || v_errorhint,
|
|
'Kan persoon niet 1-duidig bepalen!');
|
|
ELSIF (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_nr,
|
|
prs_perslid_naam,
|
|
prs_perslid_tussenvoegsel,
|
|
prs_perslid_voorletters,
|
|
prs_perslid_voornaam,
|
|
prs_perslid_geslacht,
|
|
--prs_perslid_telefoonnr,
|
|
--prs_perslid_mobiel,
|
|
prs_perslid_email,
|
|
prs_perslid_oslogin,
|
|
prs_perslid_ingangsdatum,
|
|
prs_perslid_einddatum,
|
|
fac_profiel_key
|
|
)
|
|
VALUES (
|
|
'PRS',
|
|
v_srtperslid_key,
|
|
v_afdeling_key,
|
|
recperslid.prs_perslid_nr,
|
|
recperslid.prs_perslid_naam,
|
|
recperslid.prs_perslid_tussenvoegsel,
|
|
recperslid.prs_perslid_voorletters,
|
|
recperslid.prs_perslid_voornaam,
|
|
recperslid.prs_perslid_geslacht,
|
|
--recperslid.prs_perslid_telefoonnr,
|
|
--recperslid.prs_perslid_mobiel,
|
|
recperslid.prs_perslid_email,
|
|
recperslid.prs_perslid_oslogin,
|
|
COALESCE (recperslid.prs_perslid_ingangsdatum,
|
|
SYSDATE),
|
|
recperslid.prs_perslid_einddatum,
|
|
v_profiel_key
|
|
)
|
|
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_tussenvoegsel =
|
|
recperslid.prs_perslid_tussenvoegsel,
|
|
prs_perslid_voorletters =
|
|
recperslid.prs_perslid_voorletters,
|
|
prs_perslid_voornaam = recperslid.prs_perslid_voornaam,
|
|
prs_perslid_geslacht = recperslid.prs_perslid_geslacht,
|
|
--prs_perslid_telefoonnr =
|
|
-- recperslid.prs_perslid_telefoonnr,
|
|
--prs_perslid_mobiel = recperslid.prs_perslid_mobiel,
|
|
--prs_perslid_email = recperslid.prs_perslid_email,
|
|
prs_perslid_email =
|
|
COALESCE (prs_perslid_email,
|
|
recperslid.prs_perslid_email),
|
|
prs_perslid_oslogin =
|
|
COALESCE (prs_perslid_oslogin,
|
|
recperslid.prs_perslid_oslogin),
|
|
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)
|
|
WHERE prs_perslid_key = v_perslid_key;
|
|
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 :=
|
|
'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_nr
|
|
|| '|'
|
|
|| recwp.prs_perslid_naam
|
|
|| '|'
|
|
|| recwp.prs_perslid_voornaam
|
|
|| '|'
|
|
--|| recwp.alg_locatie_code
|
|
--|| '|'
|
|
|| recwp.alg_gebouw_code
|
|
|| '|'
|
|
--|| recwp.alg_verdieping_code
|
|
--|| '|'
|
|
|| 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_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 locatie';
|
|
|
|
--SELECT alg_locatie_key
|
|
-- INTO v_locatie_key
|
|
-- FROM alg_v_aanweziglocatie
|
|
-- WHERE UPPER (alg_locatie_code) =
|
|
-- UPPER (recwp.alg_locatie_code);
|
|
|
|
v_errorhint := 'Fout bij bepalen gebouw';
|
|
|
|
SELECT alg_gebouw_key
|
|
INTO v_gebouw_key
|
|
FROM alg_v_aanweziggebouw
|
|
WHERE UPPER (alg_gebouw_code) = UPPER (recwp.alg_gebouw_code);
|
|
|
|
--v_errorhint := 'Fout bij bepalen verdieping';
|
|
|
|
--SELECT alg_verdieping_key
|
|
-- INTO v_verdieping_key
|
|
-- FROM alg_v_aanwezigverdieping
|
|
-- WHERE UPPER (alg_verdieping_code) =
|
|
-- UPPER (recwp.alg_verdieping_code)
|
|
-- AND alg_gebouw_key = v_gebouw_key;
|
|
|
|
v_errorhint := 'Fout bij bepalen beoogde ruimte in gebouw';
|
|
|
|
SELECT COUNT ( * )
|
|
INTO v_count
|
|
FROM alg_v_aanwezigruimte r, alg_verdieping v
|
|
WHERE r.alg_ruimte_upper_nr = UPPER (recwp.alg_ruimte_nr)
|
|
AND r.alg_verdieping_key = v.alg_verdieping_key
|
|
AND v.alg_gebouw_key = v_gebouw_key;
|
|
|
|
IF (v_count <> 1)
|
|
THEN
|
|
v_errorhint := 'Fout bij bepalen default ruimte in gebouw';
|
|
|
|
SELECT r.alg_ruimte_key
|
|
INTO v_ruimte_key
|
|
FROM alg_v_aanwezigruimte r, alg_verdieping v
|
|
WHERE r.alg_ruimte_upper_nr = c_ruimte_nr
|
|
AND r.alg_verdieping_key = v.alg_verdieping_key
|
|
AND v.alg_gebouw_key = v_gebouw_key;
|
|
ELSE
|
|
SELECT r.alg_ruimte_key
|
|
INTO v_ruimte_key
|
|
FROM alg_v_aanwezigruimte r, alg_verdieping v
|
|
WHERE r.alg_ruimte_upper_nr = UPPER (recwp.alg_ruimte_nr)
|
|
AND r.alg_verdieping_key = v.alg_verdieping_key
|
|
AND v.alg_gebouw_key = v_gebouw_key;
|
|
END IF;
|
|
|
|
v_errorhint :=
|
|
'Fout bij bepalen of persoon in gebouw een werkplek heeft';
|
|
|
|
SELECT COUNT ( * )
|
|
INTO v_count
|
|
FROM prs_perslidwerkplek pw,
|
|
prs_werkplek w,
|
|
alg_ruimte r,
|
|
alg_verdieping v
|
|
WHERE pw.prs_perslid_key = v_perslid_key
|
|
AND pw.prs_werkplek_key = w.prs_werkplek_key
|
|
AND w.prs_alg_ruimte_key = r.alg_ruimte_key
|
|
AND r.alg_verdieping_key = v.alg_verdieping_key
|
|
AND v.alg_gebouw_key = v_gebouw_key;
|
|
|
|
-- Als persoon in gebouw reeds een werkplek heeft en de nieuwe zou
|
|
-- in de default ruimte zijn (want ongedefinieerd bij import!), dan
|
|
-- wordt onderstaande overgeslagen.
|
|
IF (v_count = 0 OR recwp.alg_ruimte_nr != c_ruimte_nr)
|
|
THEN
|
|
v_errorhint := 'Fout bij verhuizen naar nieuwe werkplek';
|
|
PRS.movetoruimte (v_perslid_key, v_ruimte_key, 'G');
|
|
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 nummer ['
|
|
|| recnowp.prs_perslid_nr
|
|
|| '] 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_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 :=
|
|
'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 allv_update_prs;
|
|
/
|
|
|
|
/* Formatted on 16-3-2010 10:44:04 (QP5 v5.115.810.9015) */
|
|
CREATE OR REPLACE VIEW ALLV_V_RESERVERINGDETAILS
|
|
(
|
|
HIDE_F_SORT,
|
|
FCLT_F_LOCATIE,
|
|
FCLT_F_DATUM,
|
|
RESNR,
|
|
AANTAL,
|
|
RUIMTE,
|
|
VAN,
|
|
TOT,
|
|
VOORZIENINGEN,
|
|
OMSCHRIJVING,
|
|
OPMERKING,
|
|
HIDE_F_RSV_RUIMTE_KEY
|
|
)
|
|
AS
|
|
SELECT l.alg_locatie_code
|
|
|| TO_CHAR (res_geg.res_reservering_van, 'YYYY-MM-DD HH24:MI')
|
|
|| COALESCE (opstelalg.res_ruimte_nr,
|
|
ruimte_geg.alg_ruimte_aanduiding)
|
|
|| rrr.res_reservering_key
|
|
|| rrr.res_rsv_ruimte_volgnr
|
|
|| res_geg.res_type
|
|
sort_loc_tijd_ruimte_resnr_cat,
|
|
l.alg_locatie_code locatie,
|
|
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
|
|
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
|
|
TO_CHAR (rrr.res_rsv_ruimte_bezoekers)
|
|
END)
|
|
aantal,
|
|
(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,
|
|
(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,
|
|
(CASE
|
|
WHEN res_geg.res_type <> '1R' AND rrr.alg_ruimte_key IS NULL
|
|
THEN
|
|
''
|
|
ELSE
|
|
res_rsv_ruimte_opmerking
|
|
END)
|
|
opmerking,
|
|
rrr.res_rsv_ruimte_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,
|
|
fac.gettrackinguserkey ('RESAFM',
|
|
rrr.res_rsv_ruimte_key)
|
|
afmelder_key,
|
|
fac.gettrackingdate ('RESAFM', rrr.res_rsv_ruimte_key)
|
|
afmeld_datum
|
|
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
|
|
AND rrr.res_rsv_ruimte_van BETWEEN TO_DATE (
|
|
TO_CHAR (
|
|
SYSDATE,
|
|
'yyyymmdd'
|
|
),
|
|
'yyyymmdd'
|
|
)
|
|
AND TO_DATE (
|
|
TO_CHAR (
|
|
SYSDATE + 10,
|
|
'yyyymmdd'
|
|
),
|
|
'yyyymmdd'
|
|
)
|
|
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,
|
|
fac.gettrackinguserkey ('RESAFM', rrd.res_rsv_deel_key)
|
|
afmelder_key,
|
|
fac.gettrackingdate ('RESAFM', rrd.res_rsv_deel_key)
|
|
afmeld_datum
|
|
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
|
|
AND rrd.res_rsv_deel_van BETWEEN TO_DATE (
|
|
TO_CHAR (
|
|
SYSDATE,
|
|
'yyyymmdd'
|
|
),
|
|
'yyyymmdd'
|
|
)
|
|
AND TO_DATE (
|
|
TO_CHAR (
|
|
SYSDATE + 10,
|
|
'yyyymmdd'
|
|
),
|
|
'yyyymmdd'
|
|
)
|
|
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,
|
|
fac.gettrackinguserkey ('RESAFM',
|
|
rra.res_rsv_artikel_key)
|
|
afmelder_key,
|
|
fac.gettrackingdate ('RESAFM', rra.res_rsv_artikel_key)
|
|
afmeld_datum
|
|
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
|
|
AND rra.res_rsv_artikel_levering BETWEEN TO_DATE (
|
|
TO_CHAR (
|
|
SYSDATE,
|
|
'yyyymmdd'
|
|
),
|
|
'yyyymmdd'
|
|
)
|
|
AND TO_DATE (
|
|
TO_CHAR (
|
|
SYSDATE
|
|
+ 10,
|
|
'yyyymmdd'
|
|
),
|
|
'yyyymmdd'
|
|
)) 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 16-3-2010 11:01:01 (QP5 v5.115.810.9015) */
|
|
CREATE OR REPLACE VIEW allv_v_rap_resweekdetails
|
|
(
|
|
fclt_f_locatie,
|
|
hide_f_sort_datum_tijd,
|
|
hide_f_sort_ruimte,
|
|
hide_f_sort_resnr,
|
|
hide_f_sort_categorie,
|
|
fclt_f_week,
|
|
dag,
|
|
resnr,
|
|
aantal,
|
|
ruimte,
|
|
van,
|
|
tot,
|
|
voorzieningen,
|
|
omschrijving,
|
|
opmerking
|
|
)
|
|
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,
|
|
'Week ' || TO_CHAR (res_geg.res_reservering_van, 'WW') week,
|
|
TO_CHAR (res_geg.res_reservering_van, 'DD/MM') dag,
|
|
(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
|
|
TO_CHAR (rrr.res_rsv_ruimte_bezoekers)
|
|
END)
|
|
aantal,
|
|
(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,
|
|
(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,
|
|
(CASE
|
|
WHEN res_geg.res_type <> '1R' AND rrr.alg_ruimte_key IS NULL
|
|
THEN
|
|
''
|
|
ELSE
|
|
res_rsv_ruimte_opmerking
|
|
END)
|
|
opmerking
|
|
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,
|
|
fac.gettrackinguserkey ('RESAFM',
|
|
rrr.res_rsv_ruimte_key)
|
|
afmelder_key,
|
|
fac.gettrackingdate ('RESAFM', rrr.res_rsv_ruimte_key)
|
|
afmeld_datum
|
|
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
|
|
AND rrr.res_rsv_ruimte_van BETWEEN SYSDATE - 7
|
|
AND SYSDATE + 14
|
|
AND TO_CHAR (rrr.res_rsv_ruimte_van, 'WW') IN
|
|
(TO_CHAR (SYSDATE, 'WW'),
|
|
TO_CHAR (SYSDATE + 7, 'WW'))
|
|
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,
|
|
fac.gettrackinguserkey ('RESAFM', rrd.res_rsv_deel_key)
|
|
afmelder_key,
|
|
fac.gettrackingdate ('RESAFM', rrd.res_rsv_deel_key)
|
|
afmeld_datum
|
|
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
|
|
AND rrd.res_rsv_deel_van BETWEEN SYSDATE - 7
|
|
AND SYSDATE + 14
|
|
AND TO_CHAR (rrd.res_rsv_deel_van, 'WW') IN
|
|
(TO_CHAR (SYSDATE, 'WW'),
|
|
TO_CHAR (SYSDATE + 7, 'WW'))
|
|
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,
|
|
fac.gettrackinguserkey ('RESAFM',
|
|
rra.res_rsv_artikel_key)
|
|
afmelder_key,
|
|
fac.gettrackingdate ('RESAFM', rra.res_rsv_artikel_key)
|
|
afmeld_datum
|
|
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
|
|
AND rra.res_rsv_artikel_levering BETWEEN SYSDATE - 7
|
|
AND SYSDATE + 14
|
|
AND TO_CHAR (rra.res_rsv_artikel_levering, 'WW') IN
|
|
(TO_CHAR (SYSDATE, 'WW'),
|
|
TO_CHAR (SYSDATE + 7, 'WW'))) 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
|
|
/
|
|
|
|
-- Dummy export NACHTWERK!
|
|
/* Formatted on 29-11-2010 16:25:20 (QP5 v5.115.810.9015) */
|
|
CREATE OR REPLACE VIEW allv_v_export_nachtwerk (RESULT, result_order)
|
|
AS
|
|
SELECT '', 0
|
|
FROM DUAL
|
|
WHERE 1 = 0
|
|
/
|
|
|
|
CREATE OR REPLACE PROCEDURE allv_select_nachtwerk (p_applname IN VARCHAR2,
|
|
p_applrun IN VARCHAR2)
|
|
AS
|
|
v_errormsg VARCHAR2 (1000);
|
|
oracle_err_num NUMBER;
|
|
oracle_err_mes VARCHAR2 (200);
|
|
v_count NUMBER;
|
|
BEGIN
|
|
v_count := 0;
|
|
|
|
COMMIT;
|
|
EXCEPTION
|
|
WHEN OTHERS
|
|
THEN
|
|
oracle_err_num := SQLCODE;
|
|
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
|
|
v_errormsg :=
|
|
'ORACLE (error ' || oracle_err_num || '/' || oracle_err_mes || ')';
|
|
fac.writelog (p_applname,
|
|
'E',
|
|
'Proces NACHTWERK afgebroken!',
|
|
v_errormsg);
|
|
COMMIT;
|
|
END allv_select_nachtwerk;
|
|
/
|
|
|
|
/* Formatted on 14-1-2013 12:08:42 (QP5 v5.115.810.9015) */
|
|
CREATE OR REPLACE VIEW allv_v_imp_bes_artikel_sync
|
|
(
|
|
fclt_f_catalogusnaam,
|
|
leverancier,
|
|
catdatum,
|
|
artikelnr,
|
|
groep,
|
|
omschrijving,
|
|
prijs,
|
|
eenheid,
|
|
picture,
|
|
orderaantal,
|
|
tax,
|
|
duedate,
|
|
inkoopprijs,
|
|
minimum,
|
|
staffeltabel,
|
|
wijzigdagen,
|
|
annuleerdagen
|
|
)
|
|
AS
|
|
SELECT td.ins_discipline_omschrijving,
|
|
b.prs_bedrijf_naam,
|
|
TO_CHAR (td.ins_discipline_aanmaak, 'yyyymmdd'),
|
|
sd.bes_srtdeel_nr,
|
|
sg.bes_srtgroep_omschrijving,
|
|
sd.bes_srtdeel_omschrijving,
|
|
TO_CHAR (bes.getsrtdeelprijs (sd.bes_srtdeel_key, NULL)),
|
|
sd.bes_srtdeel_eenheid,
|
|
sd.bes_srtdeel_image,
|
|
TO_CHAR (sd.bes_srtdeel_veelvoud),
|
|
TO_CHAR (sd.bes_srtdeel_btw),
|
|
TO_CHAR (sd.bes_srtdeel_vervaldatum, 'yyyymmdd'),
|
|
TO_CHAR (bes.getsrtdeelinkprijs (sd.bes_srtdeel_key, NULL)),
|
|
NULL,
|
|
bs.bes_staffeltabel_naam,
|
|
sd.bes_srtdeel_wijzigdagen,
|
|
sd.bes_srtdeel_annuleerdagen
|
|
FROM ins_tab_discipline td,
|
|
bes_srtgroep sg,
|
|
bes_srtdeel sd,
|
|
prs_bedrijf b,
|
|
bes_staffeltabel bs
|
|
WHERE td.ins_discipline_module = 'BES'
|
|
AND td.ins_discipline_verwijder IS NULL
|
|
AND td.ins_discipline_key = sg.ins_discipline_key
|
|
AND sg.bes_srtgroep_verwijder IS NULL
|
|
AND sg.bes_srtgroep_key = sd.bes_srtgroep_key
|
|
AND sd.bes_srtdeel_verwijder IS NULL
|
|
AND sd.prs_bedrijf_key = b.prs_bedrijf_key
|
|
AND bs.bes_staffeltabel_key(+) = sd.bes_staffeltabel_key;
|
|
|
|
|
|
/* Formatted on 28-5-2013 10:25:25 (QP5 v5.115.810.9015) */
|
|
CREATE OR REPLACE VIEW allv_v_kostensoort
|
|
(
|
|
kostensoort_key,
|
|
kostensoort_ref
|
|
)
|
|
AS
|
|
SELECT prs_kostensoort_key,
|
|
prs_kostensoort_oms || ' - ' || prs_kostensoort_opmerking
|
|
FROM prs_kostensoort ks;
|
|
|
|
/* Formatted on 27-5-2013 11:30:24 (QP5 v5.115.810.9015) */
|
|
CREATE OR REPLACE VIEW allv_v_rap_ext_orders_exp
|
|
(
|
|
leveranciernr,
|
|
orderdatum,
|
|
ordernr,
|
|
bedrag,
|
|
aantal,
|
|
kostensoort,
|
|
omschrijving,
|
|
kostenplaats
|
|
)
|
|
AS
|
|
SELECT bedr.prs_leverancier_nr,
|
|
TO_CHAR (bo.bes_bestelopdr_datum, 'dd-mm-yyyy') orderdatum,
|
|
bo.bes_bestelopdr_id ordernr,
|
|
ROUND (
|
|
SUM( boi.bes_bestelopdr_item_prijs
|
|
* boi.bes_bestelopdr_item_aantal
|
|
* (COALESCE (100 + bsd.bes_srtdeel_btw, 121) / 100)),
|
|
2
|
|
)
|
|
bedrag, -- Incl. BTW!
|
|
1 aantal,
|
|
ks.prs_kostensoort_oms kostensoort,
|
|
ks.prs_kostensoort_opmerking omschrijving,
|
|
kp.prs_kostenplaats_nr kostenplaats
|
|
FROM bes_bestelopdr bo,
|
|
bes_bestelopdr_item boi,
|
|
bes_bestelling_item bi,
|
|
bes_srtdeel bsd,
|
|
bes_srtgroep bsg,
|
|
bes_discipline bd,
|
|
bes_disc_params dp,
|
|
prs_kostensoort ks,
|
|
bes_bestelling b,
|
|
--prs_perslid p,
|
|
--prs_afdeling a,
|
|
prs_kostenplaats kp,
|
|
prs_bedrijf bedr
|
|
WHERE bo.bes_bestelopdr_status = 6 -- Geleverd (#besteld=#ontv.)
|
|
AND bo.bes_bestelopdr_key = boi.bes_bestelopdr_key
|
|
AND boi.bes_bestelopdr_item_key = bi.bes_bestelopdr_item_key
|
|
AND bi.bes_srtdeel_key = bsd.bes_srtdeel_key
|
|
AND bsd.bes_srtgroep_key = bsg.bes_srtgroep_key
|
|
AND bsg.ins_discipline_key = bd.ins_discipline_key
|
|
AND bd.ins_discipline_key = dp.bes_ins_discipline_key
|
|
AND dp.bes_ins_discipline_key_inkoop IS NULL
|
|
AND bd.prs_kostensoort_key = ks.prs_kostensoort_key(+)
|
|
AND bi.bes_bestelling_key = b.bes_bestelling_key
|
|
--AND b.prs_perslid_key = p.prs_perslid_key
|
|
--AND p.prs_afdeling_key = a.prs_afdeling_key
|
|
AND b.prs_kostenplaats_key = kp.prs_kostenplaats_key
|
|
AND bo.prs_bedrijf_key = bedr.prs_bedrijf_key
|
|
GROUP BY bedr.prs_leverancier_nr,
|
|
TO_CHAR (bo.bes_bestelopdr_datum, 'dd-mm-yyyy'),
|
|
bo.bes_bestelopdr_id,
|
|
ks.prs_kostensoort_oms,
|
|
ks.prs_kostensoort_opmerking,
|
|
kp.prs_kostenplaats_nr
|
|
UNION ALL
|
|
SELECT bedr.prs_leverancier_nr,
|
|
TO_CHAR (o.mld_opdr_datumbegin, 'dd-mm-yyyy') orderdatum,
|
|
sd.ins_srtdiscipline_prefix
|
|
|| o.mld_melding_key
|
|
|| '/'
|
|
|| o.mld_opdr_bedrijfopdr_volgnr
|
|
ordernr,
|
|
o.mld_opdr_kosten bedrag, -- Incl. BTW!
|
|
1 aantal,
|
|
ok.prs_kostensoort_oms kostensoort,
|
|
ok.prs_kostensoort_opmerking omschrijving,
|
|
kp.prs_kostenplaats_nr kostenplaats
|
|
FROM mld_opdr o,
|
|
mld_melding m,
|
|
mld_stdmelding sm,
|
|
mld_discipline md,
|
|
ins_srtdiscipline sd,
|
|
--prs_kostensoort ks1,
|
|
--prs_kostensoort ks2,
|
|
--prs_perslid p,
|
|
--prs_afdeling a,
|
|
prs_kostenplaats kp,
|
|
prs_bedrijf bedr,
|
|
(SELECT ok.mld_opdr_key,
|
|
ks.prs_kostensoort_oms,
|
|
ks.prs_kostensoort_opmerking
|
|
FROM mld_kenmerkopdr ok, mld_kenmerk k, prs_kostensoort ks
|
|
WHERE ok.mld_kenmerkopdr_verwijder IS NULL
|
|
AND ok.mld_kenmerk_key = k.mld_kenmerk_key
|
|
AND k.mld_kenmerk_verwijder IS NULL
|
|
AND k.mld_srtkenmerk_key = 101
|
|
AND fac.safe_to_number (ok.mld_kenmerkopdr_waarde) =
|
|
ks.prs_kostensoort_key) ok
|
|
WHERE o.mld_statusopdr_key = 6 -- Afgemeld
|
|
AND o.mld_melding_key = m.mld_melding_key
|
|
AND m.mld_stdmelding_key = sm.mld_stdmelding_key
|
|
--AND sm.prs_kostensoort_key = ks1.prs_kostensoort_key(+)
|
|
AND sm.mld_ins_discipline_key = md.ins_discipline_key
|
|
--AND md.prs_kostensoort_key = ks2.prs_kostensoort_key(+)
|
|
AND md.ins_srtdiscipline_key = sd.ins_srtdiscipline_key
|
|
AND sd.ins_srtdiscipline_key = 21 -- Bestelling
|
|
--AND m.prs_perslid_key = p.prs_perslid_key
|
|
--AND p.prs_afdeling_key = a.prs_afdeling_key
|
|
AND o.prs_kostenplaats_key = kp.prs_kostenplaats_key
|
|
AND o.mld_uitvoerende_keys = bedr.prs_bedrijf_key
|
|
AND o.mld_opdr_key = ok.mld_opdr_key(+);
|
|
|
|
/* Formatted on 27-5-2013 11:30:36 (QP5 v5.115.810.9015) */
|
|
CREATE OR REPLACE VIEW allv_v_rap_int_orders_exp
|
|
(
|
|
boekingsdatum,
|
|
bedrag,
|
|
kostensoort,
|
|
omschrijving,
|
|
kostenplaats
|
|
)
|
|
AS
|
|
SELECT --bedr.prs_leverancier_nr,
|
|
TO_CHAR (fac.gettrackingdate ('BES2AF', bo.bes_bestelopdr_key),
|
|
'dd-mm-yyyy')
|
|
boekingsdatum,
|
|
--bo.bes_bestelopdr_id ordernr,
|
|
SUM (
|
|
boi.bes_bestelopdr_item_prijs * boi.bes_bestelopdr_item_aantal
|
|
)
|
|
bedrag, -- Incl. BTW!
|
|
--1 aantal,
|
|
ks.prs_kostensoort_oms kostensoort,
|
|
ks.prs_kostensoort_opmerking omschrijving,
|
|
kp.prs_kostenplaats_nr kostenplaats
|
|
FROM bes_bestelopdr bo,
|
|
bes_bestelopdr_item boi,
|
|
bes_bestelling_item bi,
|
|
bes_srtdeel bsd,
|
|
bes_srtgroep bsg,
|
|
bes_discipline bd,
|
|
bes_disc_params dp,
|
|
prs_kostensoort ks,
|
|
bes_bestelling b,
|
|
--prs_perslid p,
|
|
--prs_afdeling a,
|
|
prs_kostenplaats kp
|
|
WHERE bo.bes_bestelopdr_status = 6 -- Geleverd (#besteld=#ontv.)
|
|
AND bo.bes_bestelopdr_key = boi.bes_bestelopdr_key
|
|
AND boi.bes_bestelopdr_item_key = bi.bes_bestelopdr_item_key
|
|
AND bi.bes_srtdeel_key = bsd.bes_srtdeel_key
|
|
AND bsd.bes_srtgroep_key = bsg.bes_srtgroep_key
|
|
AND bsg.ins_discipline_key = bd.ins_discipline_key
|
|
AND bd.ins_discipline_key = dp.bes_ins_discipline_key
|
|
AND dp.bes_ins_discipline_key_inkoop IS NOT NULL
|
|
AND bd.prs_kostensoort_key = ks.prs_kostensoort_key(+)
|
|
AND bi.bes_bestelling_key = b.bes_bestelling_key
|
|
--AND b.prs_perslid_key = p.prs_perslid_key
|
|
--AND p.prs_afdeling_key = a.prs_afdeling_key
|
|
AND b.prs_kostenplaats_key = kp.prs_kostenplaats_key
|
|
GROUP BY TO_CHAR (fac.gettrackingdate ('BES2AF', bo.bes_bestelopdr_key),
|
|
'dd-mm-yyyy'),
|
|
--bo.bes_bestelopdr_id,
|
|
ks.prs_kostensoort_oms,
|
|
ks.prs_kostensoort_opmerking,
|
|
kp.prs_kostenplaats_nr;
|
|
|
|
|
|
/* Formatted on 21-2-2013 12:36:24 (QP5 v5.115.810.9015) */
|
|
CREATE OR REPLACE VIEW allv_v_rap_voorraad
|
|
(
|
|
hide_f_ext_disc_key,
|
|
fclt_f_catalogus, -- externe catalogusnaam
|
|
fclt_x_actueel,
|
|
int_artikel_nr, -- min. intern artikelnr
|
|
int_artikel_oms, -- min. interne artikelomschrijving
|
|
int_artikel_prijs, -- min. interne artikelprijs
|
|
ext_artikel_nr,
|
|
ext_artikel_oms,
|
|
ext_artikel_prijs,
|
|
intern_extern, -- UIT: "normalisatie-factor" naar IN-aantal
|
|
min_voorraad,
|
|
max_voorraad,
|
|
inkoop_geleverd, -- IN: daadwerkelijk geleverd
|
|
intern_geleverd, -- UIT: daadwerkelijk geleverd
|
|
voorraad,
|
|
hide_f_voorraad_gisteren,
|
|
inkoop_besteld, -- IN: in bestelling + besteld (nog niet geleverd)
|
|
intern_besteld, -- UIT: in bestelling + besteld (nog niet geleverd)
|
|
inkoop_gewenst -- IN: tot maximum als onder minimum
|
|
)
|
|
AS
|
|
SELECT extern.dkey,
|
|
COALESCE (extern.ins_discipline_omschrijving,
|
|
intern.ins_discipline_omschrijving)
|
|
catalogus,
|
|
DECODE (
|
|
COALESCE (intern.besteld, 0),
|
|
COALESCE (intern.geleverd, 0),
|
|
DECODE (COALESCE (extern.besteld, 0),
|
|
COALESCE (extern.geleverd, 0), 'Nee',
|
|
'Ja'),
|
|
'Ja'
|
|
)
|
|
actueel,
|
|
intern.art_nr intern_nr,
|
|
intern.art_oms intern_oms,
|
|
TO_CHAR (intern.art_prijs) intern_prijs,
|
|
COALESCE (extern.art_nr, intern.match_nr) extern_nr,
|
|
extern.art_oms extern_oms,
|
|
TO_CHAR (extern.art_prijs) extern_prijs,
|
|
COALESCE (intern.depotverdeelpct, 1) intern_extern,
|
|
extern.vmin,
|
|
extern.vmax,
|
|
extern.geleverd extern_geleverd,
|
|
intern.geleverd intern_geleverd,
|
|
COALESCE (extern.geleverd, 0)
|
|
- ROUND (
|
|
COALESCE (intern.geleverd, 0)
|
|
/ COALESCE (intern.depotverdeelpct, 1),
|
|
2
|
|
)
|
|
voorraad,
|
|
COALESCE (extern.geleverd_gisteren, 0)
|
|
- ROUND (
|
|
COALESCE (intern.geleverd_gisteren, 0)
|
|
/ COALESCE (intern.depotverdeelpct, 1),
|
|
2
|
|
)
|
|
voorraad_gisteren,
|
|
DECODE (
|
|
COALESCE (extern.besteld, 0),
|
|
COALESCE (extern.geleverd, 0),
|
|
NULL,
|
|
COALESCE (extern.besteld, 0) - COALESCE (extern.geleverd, 0)
|
|
)
|
|
extern_besteld,
|
|
DECODE (
|
|
COALESCE (intern.besteld, 0),
|
|
COALESCE (intern.geleverd, 0),
|
|
NULL,
|
|
COALESCE (intern.besteld, 0) - COALESCE (intern.geleverd, 0)
|
|
)
|
|
intern_besteld,
|
|
CASE
|
|
WHEN (COALESCE (extern.besteld, 0)
|
|
- ROUND (
|
|
COALESCE (intern.besteld, 0)
|
|
/ COALESCE (intern.depotverdeelpct, 1),
|
|
2
|
|
)) < COALESCE (extern.vmin, 0)
|
|
THEN
|
|
COALESCE (extern.vmax, 0)
|
|
- (COALESCE (extern.besteld, 0)
|
|
- ROUND (
|
|
COALESCE (intern.besteld, 0)
|
|
/ COALESCE (intern.depotverdeelpct, 1),
|
|
2
|
|
))
|
|
ELSE
|
|
NULL
|
|
END
|
|
extern_gewenst
|
|
FROM (SELECT bd.ins_discipline_key dkey, -- ext. cataloguskey (INKOOP-key)
|
|
bd.ins_discipline_omschrijving, -- ext. catalogusnaam
|
|
sd.bes_srtdeel_nr art_nr, -- ext. artikelnr
|
|
sd.bes_srtdeel_omschrijving art_oms,
|
|
bes.getsrtdeelprijs (sd.bes_srtdeel_key, NULL)
|
|
art_prijs,
|
|
sd.bes_srtdeel_voorraadmin vmin, -- ext. voorraadmin
|
|
sd.bes_srtdeel_voorraadmax vmax, -- ext. voorraadmax
|
|
(SELECT SUM (bi.bes_bestelling_item_aantal)
|
|
FROM bes_bestelling b, bes_bestelling_item bi
|
|
WHERE b.bes_bestelling_status IN
|
|
(2, 3, 4, 5, 6, 7)
|
|
AND b.bes_bestelling_key =
|
|
bi.bes_bestelling_key
|
|
AND bi.bes_srtdeel_key =
|
|
sd.bes_srtdeel_key)
|
|
besteld,
|
|
(SELECT SUM (bi.bes_bestelling_item_aantal)
|
|
FROM bes_bestelling b, bes_bestelling_item bi
|
|
WHERE b.bes_bestelling_status IN (6, 7)
|
|
AND b.bes_bestelling_key =
|
|
bi.bes_bestelling_key
|
|
AND bi.bes_srtdeel_key =
|
|
sd.bes_srtdeel_key)
|
|
geleverd,
|
|
(SELECT SUM (bi.bes_bestelling_item_aantal)
|
|
FROM bes_bestelling b, bes_bestelling_item bi
|
|
WHERE b.bes_bestelling_datum < TRUNC (SYSDATE)
|
|
AND b.bes_bestelling_status IN (6, 7)
|
|
AND b.bes_bestelling_key =
|
|
bi.bes_bestelling_key
|
|
AND bi.bes_srtdeel_key =
|
|
sd.bes_srtdeel_key)
|
|
geleverd_gisteren
|
|
FROM bes_srtdeel sd, -- ook de verwijderde (igv. punchout)!
|
|
bes_srtgroep g,
|
|
bes_discipline bd,
|
|
bes_disc_params dp
|
|
WHERE sd.bes_srtgroep_key = g.bes_srtgroep_key
|
|
AND g.ins_discipline_key = bd.ins_discipline_key
|
|
AND bd.ins_discipline_key =
|
|
dp.bes_ins_discipline_key
|
|
AND dp.bes_ins_discipline_key_inkoop IS NULL
|
|
AND (bd.ins_discipline_key = 1141 -- Weststrate extern
|
|
OR bd.ins_discipline_key IN
|
|
(SELECT bes_ins_discipline_key_inkoop
|
|
FROM bes_disc_params
|
|
WHERE bes_ins_discipline_key_inkoop IS NOT NULL)))
|
|
extern -- Inkoop artikelen uit externe catalogus!
|
|
FULL JOIN
|
|
(SELECT intern.dkey, -- ext. cataloguskey (INKOOP-key)
|
|
intern.ins_discipline_omschrijving, -- ext. cat.naam
|
|
intern.match_nr, -- ext. artikelnr
|
|
intern.art_nr, -- min. intern artikelnr
|
|
intern.art_oms, -- min. interne artikelomschrijving
|
|
intern.art_prijs, -- min. interne artikelprijs
|
|
intern.depotverdeelpct,
|
|
besteld.aantal besteld,
|
|
besteld.geleverd geleverd,
|
|
besteld_gisteren.aantal besteld_gisteren,
|
|
besteld_gisteren.geleverd geleverd_gisteren
|
|
FROM ( SELECT bde.ins_discipline_key dkey,
|
|
bde.ins_discipline_omschrijving,
|
|
sd.bes_srtdeel_nr match_nr,
|
|
MIN(COALESCE (
|
|
SUBSTR (
|
|
sd.bes_srtdeel_omschrijving,
|
|
INSTR (
|
|
sd.bes_srtdeel_omschrijving,
|
|
'['
|
|
)
|
|
+ 1,
|
|
INSTR (
|
|
sd.bes_srtdeel_omschrijving,
|
|
']'
|
|
)
|
|
- 2
|
|
),
|
|
sd.bes_srtdeel_nr
|
|
))
|
|
art_nr,
|
|
MIN (sd.bes_srtdeel_omschrijving)
|
|
art_oms,
|
|
MIN(bes.getsrtdeelprijs (
|
|
sd.bes_srtdeel_key,
|
|
NULL
|
|
))
|
|
art_prijs,
|
|
MAX(DECODE (
|
|
sd.bes_srtdeel_depotverdeelpct,
|
|
NULL,
|
|
1,
|
|
0,
|
|
1,
|
|
sd.bes_srtdeel_depotverdeelpct
|
|
))
|
|
depotverdeelpct
|
|
FROM bes_srtdeel sd,
|
|
bes_srtgroep g,
|
|
bes_discipline bdi,
|
|
bes_disc_params dp,
|
|
bes_discipline bde
|
|
WHERE sd.bes_srtdeel_verwijder IS NULL
|
|
AND sd.bes_srtgroep_key =
|
|
g.bes_srtgroep_key
|
|
AND g.ins_discipline_key =
|
|
bdi.ins_discipline_key
|
|
AND bdi.ins_discipline_key =
|
|
dp.bes_ins_discipline_key
|
|
AND dp.bes_ins_discipline_key_inkoop =
|
|
bde.ins_discipline_key
|
|
GROUP BY bde.ins_discipline_key,
|
|
bde.ins_discipline_omschrijving,
|
|
bes_srtdeel_nr) intern
|
|
LEFT JOIN
|
|
( SELECT dp.bes_ins_discipline_key_inkoop
|
|
dkey, -- INKOOP-key
|
|
sd.bes_srtdeel_nr match_nr,
|
|
SUM (bi.bes_bestelling_item_aantal)
|
|
aantal,
|
|
SUM(DECODE (
|
|
b.bes_bestelling_status,
|
|
6,
|
|
bi.bes_bestelling_item_aantal,
|
|
7,
|
|
bi.bes_bestelling_item_aantal,
|
|
0
|
|
))
|
|
geleverd
|
|
FROM bes_bestelling b,
|
|
bes_bestelling_item bi,
|
|
bes_srtdeel sd,
|
|
bes_srtgroep g,
|
|
bes_discipline bd,
|
|
bes_disc_params dp
|
|
WHERE b.bes_bestelling_key =
|
|
bi.bes_bestelling_key
|
|
AND bi.bes_srtdeel_key =
|
|
sd.bes_srtdeel_key
|
|
AND sd.bes_srtdeel_verwijder IS NULL
|
|
AND sd.bes_srtgroep_key =
|
|
g.bes_srtgroep_key
|
|
AND g.ins_discipline_key =
|
|
bd.ins_discipline_key
|
|
AND bd.ins_discipline_key =
|
|
dp.bes_ins_discipline_key
|
|
AND dp.bes_ins_discipline_key_inkoop IS NOT NULL
|
|
GROUP BY dp.bes_ins_discipline_key_inkoop,
|
|
bes_srtdeel_nr) besteld
|
|
ON intern.dkey = besteld.dkey
|
|
AND intern.match_nr = besteld.match_nr
|
|
LEFT JOIN
|
|
( SELECT dp.bes_ins_discipline_key_inkoop dkey, -- INKOOP-key
|
|
sd.bes_srtdeel_nr match_nr,
|
|
SUM (bi.bes_bestelling_item_aantal)
|
|
aantal,
|
|
SUM(DECODE (
|
|
b.bes_bestelling_status,
|
|
6,
|
|
bi.bes_bestelling_item_aantal,
|
|
7,
|
|
bi.bes_bestelling_item_aantal,
|
|
0
|
|
))
|
|
geleverd
|
|
FROM bes_bestelling b,
|
|
bes_bestelling_item bi,
|
|
bes_srtdeel sd,
|
|
bes_srtgroep g,
|
|
bes_discipline bd,
|
|
bes_disc_params dp
|
|
WHERE b.bes_bestelling_datum <
|
|
TRUNC (SYSDATE)
|
|
AND b.bes_bestelling_key =
|
|
bi.bes_bestelling_key
|
|
AND bi.bes_srtdeel_key =
|
|
sd.bes_srtdeel_key
|
|
AND sd.bes_srtdeel_verwijder IS NULL
|
|
AND sd.bes_srtgroep_key =
|
|
g.bes_srtgroep_key
|
|
AND g.ins_discipline_key =
|
|
bd.ins_discipline_key
|
|
AND bd.ins_discipline_key =
|
|
dp.bes_ins_discipline_key
|
|
AND dp.bes_ins_discipline_key_inkoop IS NOT NULL
|
|
GROUP BY dp.bes_ins_discipline_key_inkoop,
|
|
bes_srtdeel_nr) besteld_gisteren
|
|
ON intern.dkey = besteld_gisteren.dkey
|
|
AND intern.match_nr = besteld_gisteren.match_nr)
|
|
intern -- Verkoop artikelen uit interne masker-catalogi!
|
|
--ON extern.dkey = intern.dkey AND extern.art_nr = intern.match_nr
|
|
ON extern.art_nr = intern.match_nr
|
|
WHERE intern.art_nr IS NOT NULL;
|
|
|
|
-- Bevat CUST01/02-notificaties (eind van de dag) naar magazijn-medewerkers
|
|
-- dat 1 of meer producten onder de minimale voorraad zitten!
|
|
/* Formatted on 10-12-2010 16:34:34 (QP5 v5.115.810.9015) */
|
|
/*
|
|
CREATE OR REPLACE VIEW allv_v_noti_voorraadreminder
|
|
(
|
|
code,
|
|
sender,
|
|
receiver,
|
|
text,
|
|
KEY,
|
|
par1,
|
|
par2,
|
|
xkey
|
|
)
|
|
AS
|
|
SELECT DISTINCT sn.fac_srtnotificatie_code,
|
|
NULL,
|
|
gg.prs_perslid_key,
|
|
sn.fac_srtnotificatie_oms,
|
|
(SELECT fac_usrrap_key
|
|
FROM fac_usrrap
|
|
WHERE fac_usrrap_view_name = 'allv_v_rap_voorraad'),
|
|
NULL,
|
|
NULL,
|
|
NULL
|
|
FROM allv_v_rap_voorraad v,
|
|
fac_gebruikersgroep gg,
|
|
fac_srtnotificatie sn
|
|
WHERE v.voorraad < v.min_voorraad
|
|
AND v.hide_f_voorraad_gisteren >= v.min_voorraad
|
|
AND v.hide_f_extern_diskey = 561 -- Representatiegeschenken-cat.
|
|
AND gg.fac_groep_key = 61 -- COMM/Representatiegeschenken
|
|
AND sn.fac_srtnotificatie_code = 'CUST01'
|
|
UNION ALL
|
|
SELECT DISTINCT sn.fac_srtnotificatie_code,
|
|
NULL,
|
|
gg.prs_perslid_key,
|
|
sn.fac_srtnotificatie_oms,
|
|
(SELECT fac_usrrap_key
|
|
FROM fac_usrrap
|
|
WHERE fac_usrrap_view_name = 'allv_v_rap_voorraad'),
|
|
NULL,
|
|
NULL,
|
|
NULL
|
|
FROM allv_v_rap_voorraad v,
|
|
fac_gebruikersgroep gg,
|
|
fac_srtnotificatie sn
|
|
WHERE v.voorraad < v.min_voorraad
|
|
AND v.hide_f_voorraad_gisteren >= v.min_voorraad
|
|
AND v.hide_f_extern_diskey = 562 -- Bestuursgeschenken-cat.
|
|
AND gg.fac_groep_key = 121 -- COMM/Bestuursgeschenken
|
|
AND sn.fac_srtnotificatie_code = 'CUST02';
|
|
*/
|
|
|
|
------ payload end ------
|
|
|
|
SET DEFINE OFF
|
|
|
|
BEGIN adm.systrackscriptId ('$Id$', 0); END;
|
|
/
|
|
|
|
COMMIT;
|
|
SET ECHO OFF
|
|
SPOOL OFF
|
|
SET DEFINE ON
|
|
PROMPT Logfile of this upgrade is: &fcltlogfile
|