Files
Customer/RENK/renk.sql
Maarten van der Heide 82ef77eb51 Script header/footer formaat
svn path=/Customer/trunk/; revision=57208
2022-09-08 13:34:26 +00:00

4253 lines
184 KiB
SQL
Raw Permalink Blame History

--
-- $Id$
--
-- Script containing customer specific db-configuration for RENK.
DEFINE thisfile = 'RENK.SQL'
DEFINE dbuser = '^RENK'
SET ECHO ON
SET DEFINE ON
COLUMN fcltlogfile NEW_VALUE fcltlogfile NOPRINT;
COLUMN fcltcusttxt NEW_VALUE fcltcusttxt NOPRINT;
WHENEVER SQLERROR CONTINUE;
SELECT adm.getscriptspoolfile('&thisfile') AS fcltlogfile FROM DUAL;
SPOOL &fcltlogfile
WHENEVER SQLERROR EXIT;
SELECT adm.checkscriptcust('&dbuser') AS fcltcusttxt FROM DUAL;
WHENEVER SQLERROR CONTINUE;
---------------------------------------
PROMPT &fcltcusttxt
---------------------------------------
SET DEFINE OFF
------ payload begin ------
/* Formatted on 4-4-2012 16:44:36 (QP5 v5.115.810.9015) */
CREATE OR REPLACE VIEW renk_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 = 41);
/* Formatted on 24-2-2012 11:44:55 (QP5 v5.115.810.9015) */
CREATE OR REPLACE PROCEDURE renk_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_oslogin VARCHAR2 (256);
v_prs_perslid_titel 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_afdeling_naam VARCHAR2 (256);
v_prs_afdeling_omschrijving 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_nr 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
-- Eerst opruiming
DELETE FROM renk_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_titel);
-- 03
fac.imp_getfield (v_newline, c_fielddelimitor, v_prs_perslid_naam);
-- 04
fac.imp_getfield (v_newline,
c_fielddelimitor,
v_prs_perslid_tussenvoegsel);
-- 05
fac.imp_getfield (v_newline,
c_fielddelimitor,
v_prs_perslid_voorletters);
-- 06
fac.imp_getfield (v_newline,
c_fielddelimitor,
v_prs_perslid_voornaam);
-- 07
fac.imp_getfield (v_newline, c_fielddelimitor, v_prs_afdeling_naam);
-- 08
fac.imp_getfield (v_newline,
c_fielddelimitor,
v_prs_afdeling_omschrijving);
-- 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_nr);
-- 16
fac.imp_getfield (v_newline,
c_fielddelimitor,
v_prs_perslid_ingangsdatum);
-- 17
fac.imp_getfield (v_newline,
c_fielddelimitor,
v_prs_perslid_einddatum);
--
v_aanduiding :=
'['
|| v_prs_perslid_oslogin
|| '|'
|| 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_oslogin) = 'LOGINNAAM'
AND UPPER (v_prs_perslid_titel) = 'TITEL'
AND UPPER (v_prs_perslid_naam) = 'PERSOONACHTERNAAM'
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_afdeling_naam) = 'AFDELINGSCODE'
AND UPPER (v_prs_afdeling_omschrijving) =
'AFDELINGSOMSCHRIJVING'
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_nr) = 'PERSONEELSNUMMER'
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 := 'Ongeldige loginnaam';
v_prs_perslid_oslogin := TRIM (v_prs_perslid_oslogin);
IF (v_prs_perslid_oslogin IS NULL
OR LENGTH (v_prs_perslid_oslogin) > 30)
THEN
v_ongeldig := 1;
fac.imp_writelog (
p_import_key,
'E',
v_aanduiding || 'Loginnaam onbekend of te lang',
'Loginnaam is verplicht; regel wordt overgeslagen!'
);
COMMIT;
END IF;
--
v_errorhint := 'Ongeldige titel';
v_prs_perslid_titel := TRIM (v_prs_perslid_titel);
IF LENGTH (v_prs_perslid_titel) > 15
THEN
v_prs_perslid_titel := SUBSTR (v_prs_perslid_titel, 1, 15);
fac.imp_writelog (
p_import_key,
'W',
v_aanduiding || 'Titel te lang',
'Titel wordt afgebroken tot ['
|| v_prs_perslid_titel
|| ']'
);
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;
ELSE
IF (v_prs_perslid_naam IS NULL)
THEN
v_ongeldig := 1;
fac.imp_writelog (
p_import_key,
'E',
v_aanduiding || 'Achternaam onbekend',
'Achternaam 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 := '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 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 := '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;
/*
--
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;
-- LET OP: Personeelsnummer - nog - niet gebruikt!
v_errorhint := 'Ongeldig personeelsnummer';
v_prs_perslid_nr := TRIM (v_prs_perslid_nr);
IF LENGTH (v_prs_perslid_nr) > 16
THEN
v_prs_perslid_nr := SUBSTR (v_prs_perslid_nr, 1, 16);
fac.imp_writelog (
p_import_key,
'W',
v_aanduiding || 'Personeelsnummer te lang',
'Personeelsnummer wordt afgebroken tot ['
|| v_prs_perslid_nr
|| ']'
);
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 RENK_IMP_PRS';
INSERT INTO renk_imp_prs (imp_datum,
prs_perslid_oslogin,
prs_perslid_titel,
prs_perslid_naam,
prs_perslid_tussenvoegsel,
prs_perslid_voorletters,
prs_perslid_voornaam,
prs_afdeling_naam,
prs_afdeling_omschrijving,
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_nr,
prs_perslid_ingangsdatum,
prs_perslid_einddatum)
VALUES (SYSDATE,
v_prs_perslid_oslogin,
v_prs_perslid_titel,
v_prs_perslid_naam,
v_prs_perslid_tussenvoegsel,
v_prs_perslid_voorletters,
v_prs_perslid_voornaam,
v_prs_afdeling_naam,
v_prs_afdeling_omschrijving,
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_nr,
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 renk_import_prs;
/
/* Formatted on 24-2-2012 11:44:55 (QP5 v5.115.810.9015) */
CREATE OR REPLACE PROCEDURE renk_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) := 40; -- Per RENK#27766 op 40%!
-- Ruimte waar personen in geplaatst worden (indien nog geen ruimte in opgegeven gebouw)
c_ruimte_nr VARCHAR2 (10) := '0.00';
-- 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_gebouw_key NUMBER (10);
v_gebouw_code VARCHAR2 (10);
--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 renk_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 renk_imp_prs ip
WHERE UPPER (ip.prs_perslid_oslogin) =
UPPER (p.prs_perslid_oslogin));
-- Let op! Personen die niet meer in dienst zijn -> niet in renk_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 renk_imp_prs
GROUP BY UPPER (prs_srtperslid_omschrijving);
-- Let op! Personen die niet meer in dienst zijn -> niet in renk_imp_prs!
-- Dubbele oslogins? Dan wordt slechts 1 set persoongegevens toegevoegd!
-- Ook wordt in deze loop de afdelingsomschrijving eventueel bijgewerkt!
CURSOR cperslid
IS
SELECT * FROM renk_imp_prs;
-- Let op! Personen die niet meer in dienst zijn -> niet in renk_imp_prs!
-- Dubbele oslogins? Dan krijgt iemand mogelijk de verkeerde plaats!
CURSOR cwp
IS
SELECT p.*, ip.alg_gebouw_code, ip.alg_ruimte_nr
FROM renk_imp_prs ip, prs_v_aanwezigperslid p
WHERE ip.alg_gebouw_code IS NOT NULL
AND UPPER (ip.prs_perslid_oslogin) =
UPPER (p.prs_perslid_oslogin);
-- 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 RENK_IMP_PRS).
SELECT COUNT ( * )
INTO v_count_prs_import
FROM prs_v_aanwezigperslid p, renk_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
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 := 'Fout bij bepalen profiel';
SELECT MAX (fac_profiel_key), COUNT ( * )
INTO v_profiel_key, v_count
FROM fac_profiel
WHERE UPPER (TRIM (fac_profiel_omschrijving)) =
c_profiel_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?
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 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 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_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 1-duidig 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_oslogin,
prs_perslid_naam,
prs_perslid_tussenvoegsel,
prs_perslid_voorletters,
prs_perslid_voornaam,
prs_perslid_titel,
prs_perslid_telefoonnr,
prs_perslid_mobiel,
prs_perslid_email,
prs_perslid_nr,
prs_perslid_ingangsdatum,
prs_perslid_einddatum,
fac_profiel_key
)
VALUES (
'PRS',
v_srtperslid_key,
v_afdeling_key,
recperslid.prs_perslid_oslogin,
recperslid.prs_perslid_naam,
recperslid.prs_perslid_tussenvoegsel,
recperslid.prs_perslid_voorletters,
recperslid.prs_perslid_voornaam,
recperslid.prs_perslid_titel,
recperslid.prs_perslid_telefoonnr,
recperslid.prs_perslid_mobiel,
recperslid.prs_perslid_email,
recperslid.prs_perslid_nr,
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_titel = recperslid.prs_perslid_titel,
prs_perslid_telefoonnr =
recperslid.prs_perslid_telefoonnr,
prs_perslid_mobiel = recperslid.prs_perslid_mobiel,
prs_perslid_email = recperslid.prs_perslid_email,
prs_perslid_nr = recperslid.prs_perslid_nr,
prs_perslid_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;
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_gebouw_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_oslogin) =
UPPER (recwp.prs_perslid_oslogin);
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 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_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 renk_update_prs;
/
/* Formatted on 19-9-2013 14:58:52 (QP5 v5.115.810.9015) */
CREATE OR REPLACE VIEW renk_v_kostensoorten
AS
SELECT prs_kostensoort_key,
prs_kostensoort_oms || '-' || prs_kostensoort_opmerking
prs_kostensoort_oms
FROM prs_kostensoort;
/* Formatted on 4-12-2013 10:05:55 (QP5 v5.115.810.9015) */
CREATE OR REPLACE VIEW renk_v_res_huurders
AS
SELECT b.prs_bedrijf_key, b.prs_bedrijf_naam
FROM prs_v_aanwezigbedrijf b
WHERE b.prs_bedrijf_huurder = 1
AND EXISTS
(SELECT 1 -- Actief relatie-veld 1021=Geadr./1022=Aanhef?
FROM prs_v_aanwezigkenmerklink
WHERE prs_kenmerk_key IN (1021, 1022)
AND prs_link_key = b.prs_bedrijf_key)
UNION -- Doorsnede met alle bedrijven (ooit) gekoppeld aan Verhuur-boeking
SELECT b.prs_bedrijf_key,
DECODE (b.prs_bedrijf_verwijder,
NULL, b.prs_bedrijf_naam,
'VERVALLEN:' || b.prs_bedrijf_naam)
FROM prs_bedrijf b
WHERE EXISTS
(SELECT 1 -- Actief boeking-veld 9/426=Relatie?
FROM res_v_aanwezigkenmerkwaarde rk,
res_v_aanwezigrsv_ruimte rr
WHERE rk.res_kenmerk_key IN (9, 426)
AND rk.res_rsv_ruimte_key = rr.res_rsv_ruimte_key
AND fac.safe_to_number (
rk.res_kenmerkreservering_waarde
) = b.prs_bedrijf_key);
/* Formatted on 30-1-2014 9:56:26 (QP5 v5.136.908.31019) */
CREATE OR REPLACE VIEW renk_v_rap_mldinsres_qrc
(
fclt_f_soortmelding,
fclt_f_locatie,
fclt_f_gebouw,
fclt_f_verdieping,
plaats,
ruimte_key,
ruimtefunctie,
fclt_f_objectdiscipline,
fclt_f_objectgroep,
objectsoort_key,
fclt_f_objectsoort,
objectsoort_code,
deel_key,
deel_omschrijving,
deel_upper,
hide_f_bookmark_id,
variabele
)
AS
SELECT md.ins_discipline_omschrijving
|| '-'
|| msd.mld_stdmelding_omschrijving,
l.alg_locatie_omschrijving,
o.alg_gebouw_omschrijving,
o.alg_verdieping_omschrijving,
o.alg_plaatsaanduiding plaats,
d.ins_alg_ruimte_key ruimte_key,
sr.alg_srtruimte_omschrijving,
disc.ins_discipline_omschrijving,
sg.ins_srtgroep_omschrijving,
sd.ins_srtdeel_key,
sd.ins_srtdeel_omschrijving,
sd.ins_srtdeel_code,
d.ins_deel_key,
d.ins_deel_omschrijving,
d.ins_deel_upper,
b.fac_bookmark_id,
'INS_KEY'
FROM (SELECT DECODE (
INSTR (
SUBSTR (
UPPER (fac_bookmark_query),
INSTR (UPPER (fac_bookmark_query), 'STDM_KEY=')),
'&'),
0,
SUBSTR (
SUBSTR (
UPPER (fac_bookmark_query),
INSTR (UPPER (fac_bookmark_query), 'STDM_KEY=')),
10),
SUBSTR (
SUBSTR (
UPPER (fac_bookmark_query),
INSTR (UPPER (fac_bookmark_query), 'STDM_KEY=')),
10,
INSTR (
SUBSTR (
UPPER (fac_bookmark_query),
INSTR (UPPER (fac_bookmark_query), 'STDM_KEY=')),
'&')
- 10))
stdm_key,
fac_bookmark_id
FROM fac_bookmark
WHERE TRUNC (fac_bookmark_aanmaak) >=
TO_DATE ('10062013', 'ddmmyyyy')
AND UPPER (fac_bookmark_path) = 'APPL/PDA/MELDING.ASP'
AND INSTR (UPPER (fac_bookmark_query), 'STDM_KEY') > 0) b, -- stdm_key-bookmarks
(SELECT sm.mld_ins_discipline_key,
sm.mld_stdmelding_key,
sm.mld_stdmelding_omschrijving,
si.ins_srtinstallatie_key ins_srtdeel_key
FROM mld_stdmelding sm,
mld_stdmelding_srtinst si
WHERE sm.mld_stdmelding_key = si.mld_stdmelding_key
AND sm.mld_stdmelding_verwijder IS NULL
AND si.ins_srtinstallatie_niveau = 'S'
UNION ALL
SELECT sm.mld_ins_discipline_key,
sm.mld_stdmelding_key,
sm.mld_stdmelding_omschrijving,
sd.ins_srtdeel_key
FROM mld_stdmelding sm,
mld_stdmelding_srtinst si,
ins_srtdeel sd
WHERE sm.mld_stdmelding_key = si.mld_stdmelding_key
AND sm.mld_stdmelding_verwijder IS NULL
AND si.ins_srtinstallatie_niveau = 'G'
AND si.ins_srtinstallatie_key = sd.ins_srtgroep_key
UNION ALL
SELECT sm.mld_ins_discipline_key,
sm.mld_stdmelding_key,
sm.mld_stdmelding_omschrijving,
sd.ins_srtdeel_key
FROM mld_stdmelding sm,
mld_stdmelding_srtinst si,
ins_srtgroep sg,
ins_srtdeel sd
WHERE sm.mld_stdmelding_key = si.mld_stdmelding_key
AND sm.mld_stdmelding_verwijder IS NULL
AND si.ins_srtinstallatie_niveau = 'D'
AND si.ins_srtinstallatie_key = sg.ins_discipline_key
AND sg.ins_srtgroep_key = sd.ins_srtgroep_key) msd, -- object-meldingen
mld_discipline md,
ins_v_aanwezigdeel d,
ins_srtdeel sd,
ins_srtgroep sg,
ins_discipline disc,
ins_v_alg_overzicht o,
alg_locatie l,
alg_ruimte r,
alg_srtruimte sr
WHERE fac.safe_to_number (b.stdm_key) = msd.mld_stdmelding_key
AND msd.mld_ins_discipline_key = md.ins_discipline_key
AND msd.ins_srtdeel_key = d.ins_srtdeel_key
AND d.ins_alg_ruimte_type IN ('T', 'R', 'W')
AND d.ins_deel_parent_key IS NULL
AND d.ins_srtdeel_key = sd.ins_srtdeel_key
AND sd.ins_srtgroep_key = sg.ins_srtgroep_key
AND sg.ins_discipline_key = disc.ins_discipline_key
AND d.ins_alg_ruimte_key = o.alg_onroerendgoed_keys
AND d.ins_alg_ruimte_type = o.alg_onroerendgoed_type
AND d.ins_alg_locatie_key = o.alg_locatie_key -- redundant?
AND o.alg_locatie_key = l.alg_locatie_key
AND d.ins_alg_ruimte_key = r.alg_ruimte_key
AND r.alg_srtruimte_key = sr.alg_srtruimte_key(+)
UNION ALL
SELECT 'Melding op object',
l.alg_locatie_omschrijving,
o.alg_gebouw_omschrijving,
o.alg_verdieping_omschrijving,
o.alg_plaatsaanduiding plaats,
NULL ruimte_key,
sr.alg_srtruimte_omschrijving,
disc.ins_discipline_omschrijving,
sg.ins_srtgroep_omschrijving,
sd.ins_srtdeel_key,
sd.ins_srtdeel_omschrijving,
sd.ins_srtdeel_code,
d.ins_deel_key,
d.ins_deel_omschrijving,
d.ins_deel_upper,
b.fac_bookmark_id,
'INS_KEY'
FROM fac_bookmark b,
ins_v_aanwezigdeel d,
ins_srtdeel sd,
ins_srtgroep sg,
ins_discipline disc,
ins_v_alg_overzicht o,
alg_locatie l,
alg_ruimte r,
alg_srtruimte sr
WHERE TRUNC (b.fac_bookmark_aanmaak) = TO_DATE ('10062013', 'ddmmyyyy')
AND UPPER (b.fac_bookmark_naam) LIKE '%GENERIEK%'
AND UPPER (b.fac_bookmark_path) = 'APPL/PDA/INS_DEEL.ASP'
AND d.ins_alg_ruimte_type IN ('T', 'R', 'W')
AND d.ins_deel_parent_key IS NULL
AND d.ins_srtdeel_key = sd.ins_srtdeel_key
AND sd.ins_srtgroep_key = sg.ins_srtgroep_key
AND sg.ins_discipline_key = disc.ins_discipline_key
AND d.ins_alg_ruimte_key = o.alg_onroerendgoed_keys
AND d.ins_alg_ruimte_type = o.alg_onroerendgoed_type
AND d.ins_alg_locatie_key = o.alg_locatie_key -- redundant?
AND o.alg_locatie_key = l.alg_locatie_key
AND d.ins_alg_ruimte_key = r.alg_ruimte_key
AND r.alg_srtruimte_key = sr.alg_srtruimte_key(+)
UNION ALL
SELECT 'Melding op ruimte',
l.alg_locatie_omschrijving,
o.alg_gebouw_omschrijving,
o.alg_verdieping_omschrijving,
o.alg_plaatsaanduiding plaats,
r.alg_ruimte_key ruimte_key,
sr.alg_srtruimte_omschrijving,
NULL ins_discipline_omschrijving,
NULL ins_srtgroep_omschrijving,
NULL ins_srtdeel_key,
NULL ins_srtdeel_omschrijving,
NULL ins_srtdeel_code,
NULL ins_deel_key,
NULL ins_deel_omschrijving,
NULL ins_deel_upper,
b.fac_bookmark_id,
'RUIMTE_KEY'
FROM fac_bookmark b,
alg_v_aanwezigruimte r,
alg_srtruimte sr,
ins_v_alg_overzicht o,
alg_locatie l
WHERE TRUNC (b.fac_bookmark_aanmaak) = TO_DATE ('10062013', 'ddmmyyyy')
AND UPPER (b.fac_bookmark_naam) LIKE '%GENERIEK%'
AND UPPER (b.fac_bookmark_path) = 'APPL/PDA/MELDING.ASP'
AND INSTR (UPPER (fac_bookmark_query), 'STDM_KEY') = 0
AND r.alg_srtruimte_key = sr.alg_srtruimte_key(+)
AND r.alg_ruimte_key = o.alg_onroerendgoed_keys
AND o.alg_onroerendgoed_type = 'R'
AND o.alg_locatie_key = l.alg_locatie_key
UNION ALL
SELECT 'Melding op gebouw',
l.alg_locatie_omschrijving,
g.alg_gebouw_omschrijving,
NULL alg_verdieping_omschrijving,
l.alg_locatie_code || '-' || g.alg_gebouw_code plaats,
g.alg_gebouw_key ruimte_key,
sg.alg_srtgebouw_omschrijving,
NULL ins_discipline_omschrijving,
NULL ins_srtgroep_omschrijving,
NULL ins_srtdeel_key,
NULL ins_srtdeel_omschrijving,
NULL ins_srtdeel_code,
NULL ins_deel_key,
NULL ins_deel_omschrijving,
NULL ins_deel_upper,
b.fac_bookmark_id,
'GEBOUW_KEY'
FROM fac_bookmark b,
alg_v_aanweziggebouw g,
alg_v_aanwezigsrtgebouw sg,
alg_locatie l
WHERE TRUNC (b.fac_bookmark_aanmaak) = TO_DATE ('30012014', 'ddmmyyyy')
AND UPPER (b.fac_bookmark_naam) LIKE '%GENERIEK%'
AND UPPER (b.fac_bookmark_path) = 'APPL/PDA/MELDING.ASP'
AND INSTR (UPPER (fac_bookmark_query), 'STDM_KEY') = 0
AND g.alg_srtgebouw_key = sg.alg_srtgebouw_key(+)
AND g.alg_locatie_key = l.alg_locatie_key
UNION ALL -- Reserveerbare ruimtes 50=Gemeentehuis
SELECT 'Reserveer ruimte',
l.alg_locatie_omschrijving,
o.alg_gebouw_omschrijving,
o.alg_verdieping_omschrijving,
rr.res_ruimte_nr plaats,
rar.res_ruimte_key ruimte_key,
sr.alg_srtruimte_omschrijving,
NULL ins_discipline_omschrijving,
NULL ins_srtgroep_omschrijving,
NULL ins_srtdeel_key,
NULL ins_srtdeel_omschrijving,
NULL ins_srtdeel_code,
NULL ins_deel_key,
NULL ins_deel_omschrijving,
NULL ins_deel_upper,
b.fac_bookmark_id,
'RES_RUIMTE_KEY'
FROM fac_bookmark b,
res_ruimte rr,
( SELECT res_ruimte_key, MAX (alg_ruimte_key) alg_ruimte_key
FROM res_alg_ruimte
WHERE res_alg_ruimte_verwijder IS NULL
GROUP BY res_ruimte_key) rar,
alg_ruimte r,
alg_srtruimte sr,
ins_v_alg_overzicht o,
alg_locatie l
WHERE TRUNC (b.fac_bookmark_aanmaak) = TO_DATE ('10062013', 'ddmmyyyy')
AND UPPER (b.fac_bookmark_naam) LIKE '%GENERIEK%'
AND UPPER (b.fac_bookmark_path) = 'APPL/PDA/RESERVERINGEN.ASP'
AND rr.res_discipline_key != 62 -- OV kaart
AND rr.res_ruimte_key = rar.res_ruimte_key
AND rar.alg_ruimte_key = r.alg_ruimte_key
AND r.alg_srtruimte_key = sr.alg_srtruimte_key(+)
AND r.alg_ruimte_key = o.alg_onroerendgoed_keys
AND o.alg_onroerendgoed_type = 'R'
AND o.alg_locatie_key = l.alg_locatie_key
AND l.alg_locatie_key = 50;
/* Formatted on 29-8-2013 17:20:02 (QP5 v5.115.810.9015) */
CREATE OR REPLACE PACKAGE RENK
AS
-- PACKAGES voor de RENK specifieke ondersteuning
PROCEDURE freezereserveringen (p_groepering IN VARCHAR2,
p_kenmerk IN VARCHAR2);
END;
/
/* Formatted on 29-8-2013 17:20:02 (QP5 v5.115.810.9015) */
CREATE OR REPLACE PACKAGE BODY RENK
AS
PROCEDURE freezereserveringen (p_groepering IN VARCHAR2,
p_kenmerk IN VARCHAR2)
AS
-- Volgende cursors lopen over boekingen door de huurder geidentificeerd
-- door 'p_groepering' in de lopende jaarhelft hebben plaatsgevonden (of
-- nog moeten plaatsvinden) en nog niet zijn gefactuureerd; betreffende
-- ruimte-reservering worden NIET Administratief Verwerkt!
-- Ook wordt aan deze reserveringen een (nieuw) Docman-kenmerk gekoppeld.
CURSOR cobj
IS
SELECT v.resid,
rr.res_rsv_ruimte_key,
rr.res_reservering_key,
rr.res_rsv_ruimte_volgnr,
rd.res_rsv_deel_key,
rd.res_status_bo_key
FROM renk_v_verhuurregels_alle v,
res_v_aanwezigrsv_ruimte rr,
res_v_aanwezigrsv_deel rd
WHERE v.groepering = p_groepering
AND v.res_rsv_ruimte_key = rr.res_rsv_ruimte_key
AND rr.res_rsv_ruimte_key = rd.res_rsv_ruimte_key;
CURSOR cart
IS
SELECT v.resid,
rr.res_rsv_ruimte_key,
rr.res_reservering_key,
rr.res_rsv_ruimte_volgnr,
ra.res_rsv_artikel_key,
ra.res_status_bo_key
FROM renk_v_verhuurregels_alle v,
res_v_aanwezigrsv_ruimte rr,
res_v_aanwezigrsv_artikel ra
WHERE v.groepering = p_groepering
AND v.res_rsv_ruimte_key = rr.res_rsv_ruimte_key
AND rr.res_rsv_ruimte_key = ra.res_rsv_ruimte_key;
CURSOR crui
IS
SELECT v.resid,
rr.res_rsv_ruimte_key,
rr.res_reservering_key,
rr.res_rsv_ruimte_volgnr,
rr.res_status_bo_key
FROM renk_v_verhuurregels_alle v, res_v_aanwezigrsv_ruimte rr
WHERE v.groepering = p_groepering
AND v.res_rsv_ruimte_key = rr.res_rsv_ruimte_key;
c_applname VARCHAR2 (50) := 'FREEZE_RES';
v_errormsg VARCHAR2 (1000);
oracle_err_num NUMBER;
oracle_err_mes VARCHAR2 (200);
v_aanduiding VARCHAR2 (200) := '-';
v_count NUMBER (10);
v_count_upd NUMBER (10);
--v_factuurnr VARCHAR2 (20);
--v_prskey NUMBER (10);
--v_huurderlid VARCHAR2 (1) := 'N';
--v_factuurbedrag NUMBER (12, 2);
--v_prijs NUMBER (9, 2);
BEGIN
v_count_upd := 0;
-- Bevriezen RES-objecten!
FOR rec IN cobj
LOOP
BEGIN
v_aanduiding :=
'['
|| rec.resid
|| '|'
|| rec.res_rsv_ruimte_key
|| '|'
|| TO_CHAR (p_groepering)
|| '] ';
-- Eerst maar eens afmelden (als dat nog niet is gedaan)!
IF (rec.res_status_bo_key = 2)
THEN
v_errormsg := 'Fout bij TV-en RES-object.';
UPDATE res_rsv_deel
SET res_status_bo_key = 5
WHERE res_rsv_deel_key = rec.res_rsv_deel_key;
COMMIT;
v_count_upd := v_count_upd + 1;
END IF;
--v_errormsg := 'Fout bij bepalen res_rsv_deel_prijs.';
--SELECT res.getdeelprijs (rec.res_rsv_deel_key)
-- INTO v_prijs
-- FROM DUAL;
--v_errormsg := 'Fout bij bijwerken res_rsv_deel_prijs.';
--UPDATE res_rsv_deel
-- SET res_rsv_deel_prijs = v_prijs
-- WHERE res_rsv_deel_key = rec.res_rsv_deel_key;
--v_errormsg := 'Fout bij AV-en RES-object.';
--UPDATE res_rsv_deel
-- SET res_status_bo_key = 6
-- WHERE res_rsv_deel_key = rec.res_rsv_deel_key;
--COMMIT;
--v_count_upd := v_count_upd + 1;
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 (c_applname,
'W',
v_aanduiding || v_errormsg,
'RES-object');
COMMIT;
END;
END LOOP;
fac.writelog (c_applname,
'S',
'RES-object/#afgemeld: ' || TO_CHAR (v_count_upd),
'');
COMMIT;
v_count_upd := 0;
-- Bevriezen RES-artikelen!
FOR rec IN cart
LOOP
BEGIN
v_aanduiding :=
'['
|| rec.resid
|| '|'
|| rec.res_rsv_ruimte_key
|| '|'
|| TO_CHAR (p_groepering)
|| '] ';
-- Eerst maar eens afmelden (als dat nog niet is gedaan)!
IF (rec.res_status_bo_key = 2)
THEN
v_errormsg := 'Fout bij TV-en RES-artikel.';
UPDATE res_rsv_artikel
SET res_status_bo_key = 5
WHERE res_rsv_artikel_key = rec.res_rsv_artikel_key;
COMMIT;
v_count_upd := v_count_upd + 1;
END IF;
--IF (rec.res_artikel_prijs_vast = 1)
--THEN
-- v_errormsg := 'Fout bij bepalen res_rsv_artikel_prijs.';
-- SELECT res.getartikelprijs (rec.res_rsv_artikel_key)
-- INTO v_prijs
-- FROM DUAL;
-- v_errormsg := 'Fout bij bijwerken res_rsv_artikel_prijs.';
-- UPDATE res_rsv_artikel
-- SET res_rsv_artikel_prijs = v_prijs,
-- res_rsv_artikel_inkoopprijs =
-- (SELECT res_artikel_inkoopprijs
-- FROM res_artikel
-- WHERE res_artikel_key = rec.res_artikel_key),
-- res_rsv_artikel_btw =
-- (SELECT res_artikel_btw
-- FROM res_artikel
-- WHERE res_artikel_key = rec.res_artikel_key)
-- WHERE res_rsv_artikel_key = rec.res_rsv_artikel_key;
--END IF;
--v_errormsg := 'Fout bij AV-en RES-artikel.';
--UPDATE res_rsv_artikel
-- SET res_status_bo_key = 6
-- WHERE res_rsv_artikel_key = rec.res_rsv_artikel_key;
--COMMIT;
--v_count_upd := v_count_upd + 1;
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 (c_applname,
'W',
v_aanduiding || v_errormsg,
'RES-artikel');
COMMIT;
END;
END LOOP;
fac.writelog (c_applname,
'S',
'RES-artikel/#afgemeld: ' || TO_CHAR (v_count_upd),
'');
COMMIT;
v_count_upd := 0;
-- Eerst maar eens afmelden (als dat nog niet is gedaan)!
FOR rec IN crui
LOOP
BEGIN
v_aanduiding :=
'['
|| rec.resid
|| '|'
|| rec.res_rsv_ruimte_key
|| '|'
|| TO_CHAR (p_groepering)
|| '] ';
-- Niet voor reeds afgemelde reserveringen en "roomservice"!
IF (rec.res_status_bo_key = 2)
THEN
v_errormsg := 'Fout bij TV-en RES-ruimte.';
UPDATE res_rsv_ruimte
SET res_status_bo_key = 5
WHERE res_rsv_ruimte_key = rec.res_rsv_ruimte_key;
fac.trackaction ('RESAFM',
rec.res_rsv_ruimte_key,
NULL,
NULL,
NULL);
COMMIT;
v_count_upd := v_count_upd + 1;
END IF;
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 (c_applname,
'W',
v_aanduiding || v_errormsg,
'RES-ruimte/TV');
COMMIT;
END;
END LOOP;
fac.writelog (c_applname,
'S',
'RES-ruimte/#afgemeld: ' || TO_CHAR (v_count_upd),
'');
COMMIT;
v_count_upd := 0;
FOR rec IN crui
LOOP
BEGIN
v_aanduiding :=
'['
|| rec.resid
|| '|'
|| rec.res_rsv_ruimte_key
|| '|'
|| TO_CHAR (p_groepering)
|| '] ';
v_errormsg := 'Fout bij bijwerken kenmerk.';
UPDATE res_rsv_ruimte
SET res_rsv_ruimte_ordernr = p_kenmerk
WHERE res_rsv_ruimte_key = rec.res_rsv_ruimte_key;
-- Niet voor "roomservice"!
--IF (rec.res_status_bo_key = 5)
--THEN
-- IF (rec.old_prijs <> rec.new_prijs)
-- THEN
-- v_errormsg := 'Fout bij bijwerken res_rsv_ruimte_prijs';
-- UPDATE res_rsv_ruimte rr
-- SET rr.res_rsv_ruimte_prijs = rec.new_prijs
-- WHERE rr.res_rsv_ruimte_key = rec.res_rsv_ruimte_key;
-- END IF;
-- v_errormsg := 'Fout bij AV-en RES-ruimte.';
-- UPDATE res_rsv_ruimte
-- SET res_status_bo_key = 6
-- WHERE res_rsv_ruimte_key = rec.res_rsv_ruimte_key;
-- fac.trackaction ('RESVER',
-- rec.res_rsv_ruimte_key,
-- NULL,
-- NULL,
-- NULL);
--END IF;
COMMIT;
v_count_upd := v_count_upd + 1;
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 (c_applname,
'W',
v_aanduiding || v_errormsg,
'RES-ruimte/AV');
COMMIT;
END;
END LOOP;
fac.writelog (c_applname,
'S',
'RES-ruimte/#bijgewerkt: ' || TO_CHAR (v_count_upd),
'');
COMMIT;
EXCEPTION
WHEN OTHERS
THEN
oracle_err_num := SQLCODE;
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
v_errormsg :=
v_errormsg
|| ' ORACLE (error '
|| oracle_err_num
|| '/'
|| oracle_err_mes
|| ')';
fac.writelog (c_applname,
'E',
v_aanduiding || v_errormsg,
'');
COMMIT;
END freezereserveringen;
END;
/
/* Formatted on 4-12-2013 12:30:24 (QP5 v5.115.810.9015) */
CREATE OR REPLACE VIEW renk_v_verhuurregels_alle
(
groepering,
sortering1,
sortering2,
fclt_f_naam,
naam,
afd,
tav,
aanhef,
adres,
postcode,
plaats,
factuurdatum,
res_rsv_ruimte_key,
resid,
ordernr,
sys_helft,
dagnaam,
dagnr,
van,
tot,
omschrijving,
opmerking,
datumverzoek,
soortverzoek,
tarief_code,
termijnen,
korting,
behandelaar_naam,
behandelaar_tel,
behandelaar_mail,
res_discipline_key,
res_ruimte_key,
alg_locatie_key,
res_type,
res_ruimte_nr,
vnr,
onderwerp,
res_voorziening,
res_rsv_prijs,
aantal,
ps,
po,
pm,
pa,
pd,
btw
)
AS
SELECT DECODE ( -- V -> per jaarhelft/locatie; I of C -> per reservering!
tarief.res_kenmerkreservering_waarde,
'84', -- Vast
TO_CHAR (rvc.alg_locatie_key) || '-' -- Dash!
|| COALESCE (TO_CHAR (r.bedr_key),
--inaam.res_kenmerkreservering_waarde,
UPPER (TRIM (x.res_rsv_ruimte_omschrijving)),
'[naam]'),
TO_CHAR (x.res_key) || '/' || TO_CHAR (x.res_vnr) -- Slash!
)
groepering,
TO_CHAR (x.van, 'yyyy-mm-dd hh24:mi')
|| rvc.res_ruimte_nr
|| x.res_key
sortering1, -- Factuurregels op datum-tijd en dan ruimtenr
rvc.res_type || SUBSTR ('000000' || TO_CHAR (rvc.vnr), -6)
sortering2, -- ..daarbinnen op type (1R2V3C) en dan volgnr
DECODE (
r.bedr_key,
NULL,
COALESCE (UPPER (TRIM (x.res_rsv_ruimte_omschrijving)),
'[naam]'),
TRIM (r.prs_bedrijf_naam)
)
fclt_f_naam,
DECODE (r.bedr_key,
NULL,
COALESCE (inaam.res_kenmerkreservering_waarde, '[naam]'),
COALESCE (rnaam.prs_kenmerklink_waarde, '[naam]'))
naam,
DECODE (r.bedr_key,
NULL, iafd.res_kenmerkreservering_waarde,
rafd.prs_kenmerklink_waarde)
afd,
DECODE (r.bedr_key,
NULL, itav.res_kenmerkreservering_waarde,
rtav.prs_kenmerklink_waarde)
tav,
DECODE (
r.bedr_key,
NULL,
COALESCE (iaanhef.res_kenmerkreservering_waarde, '[aanhef]'),
COALESCE (raanhef.prs_kenmerklink_waarde, '[aanhef]')
)
aanhef,
DECODE (
r.bedr_key,
NULL,
COALESCE (iadres.res_kenmerkreservering_waarde, '[adres]'),
COALESCE (r.adres, '[adres]')
)
adres,
DECODE (
r.bedr_key,
NULL,
COALESCE (ipostcode.res_kenmerkreservering_waarde, '[pc]'),
COALESCE (r.postcode, '[pc]')
)
postcode,
DECODE (
r.bedr_key,
NULL,
COALESCE (iplaats.res_kenmerkreservering_waarde, '[plaats]'),
COALESCE (r.plaats, '[plaats]')
)
plaats,
TO_CHAR (SYSDATE, 'dd')
|| DECODE (TO_CHAR (SYSDATE, 'mm'),
'01', ' januari ',
'02', ' februari ',
'03', ' maart ',
'04', ' april ',
'05', ' mei ',
'06', ' juni ',
'07', ' juli ',
'08', ' augustus ',
'09', ' september ',
'10', ' okotober ',
'11', ' november ',
' december ')
|| TO_CHAR (SYSDATE, 'yyyy')
factuurdatum,
x.res_rsv_ruimte_key,
x.res_key || '/' || x.res_vnr resid,
x.res_rsv_ruimte_ordernr ordernr,
x.sys_helft, -- 1e of 2e jaarhelft in formaat yyyyh(elft)!
DECODE (TO_CHAR (x.van, 'd'),
'2', 'maandag',
'3', 'dinsdag',
'4', 'woensdag',
'5', 'donderdag',
'6', 'vrijdag',
'7', 'zaterdag',
'zondag')
dagnaam,
DECODE (TO_CHAR (x.van, 'd'),
'1', 7,
TO_NUMBER (TO_CHAR (x.van, 'd')) - 1)
dagnr,
x.van, --TO_CHAR (x.van, 'hh24:mi') van,
x.tot, --TO_CHAR (x.tot, 'hh24:mi') tot,
x.res_rsv_ruimte_omschrijving oms,
x.res_rsv_ruimte_opmerking opm,
COALESCE (datumverzoek.res_kenmerkreservering_waarde,
'dd-mm-jjjj')
datumverzoek,
DECODE (soortverzoek.res_kenmerkreservering_waarde,
'81', 'telefonische',
'82', 'schriftelijke',
'[soortverzoek]')
soortverzoek,
DECODE (tarief.res_kenmerkreservering_waarde,
'84', 'V', -- Vast!
'85', 'C', -- Commercieel!
'I') -- Incidenteel!
tarief_code,
rtermijnen.prs_kenmerklink_waarde termijnen,
DECODE (
rkorting.prs_kenmerklink_waarde,
'1',
DECODE (
rvc.res_discipline_key,
41, -- Sporthal
DECODE (
TO_CHAR (x.tot, 'd'),
'1', -- Zondag
1,
'4', -- Woensdag
DECODE (SIGN ( ( (x.van - TRUNC (x.van)) * 24) - 12),
-1, 0.5,
1),
'7', -- Zaterdag
1,
DECODE (SIGN ( ( (x.van - TRUNC (x.van)) * 24) - 18),
-1, 0.5,
1)
),
1
),
1
)
korting, -- Eventueel te hanteren korting (factor)!
x.behandelaar_naam,
x.behandelaar_tel,
x.behandelaar_mail,
rvc.res_discipline_key,
rvc.res_ruimte_key,
rvc.alg_locatie_key,
rvc.res_type,
rvc.res_ruimte_nr,
rvc.vnr,
rvc.onderwerp,
rvc.res_voorziening,
rvc.res_rsv_prijs,
rvc.aantal,
rvc.ps, -- Uur-tarief
rvc.po, -- Incidenteel tarief
rvc.pm, -- Vast tarief/K
rvc.pa, -- Commercieel tarief/H
rvc.pd, -- Jaartarief/J
rvc.btw
FROM (SELECT rr.res_rsv_ruimte_key,
rr.res_reservering_key res_key,
rr.res_rsv_ruimte_volgnr res_vnr,
rr.res_rsv_ruimte_ordernr,
rr.res_rsv_ruimte_van van,
rr.res_rsv_ruimte_tot tot,
rr.res_rsv_ruimte_omschrijving,
rr.res_rsv_ruimte_opmerking,
p.prs_perslid_key,
DECODE (
p.prs_perslid_voornaam,
'', '',
p.prs_perslid_voornaam
|| ' '
)
|| DECODE (
p.prs_perslid_tussenvoegsel,
'', '',
p.prs_perslid_tussenvoegsel
|| ' '
)
|| p.prs_perslid_naam
behandelaar_naam,
COALESCE (
p.prs_perslid_telefoonnr,
p.prs_perslid_mobiel
)
behandelaar_tel,
p.prs_perslid_email
behandelaar_mail,
TO_CHAR (
rr.res_rsv_ruimte_tot,
'yyyy'
)
|| DECODE (
TRUNC (
ADD_MONTHS (
rr.res_rsv_ruimte_tot, 5
),
'yyyy'
),
TRUNC (
rr.res_rsv_ruimte_tot,
'yyyy'
),
'1',
'2'
) res_helft,
TO_CHAR (
ADD_MONTHS (
SYSDATE, 1
),
'yyyy'
)
|| DECODE (
TRUNC (
ADD_MONTHS (
SYSDATE, 6
),
'yyyy'
),
TRUNC (
ADD_MONTHS (
SYSDATE, 1
),
'yyyy'
),
'1',
'2'
) sys_helft
FROM res_v_aanwezigrsv_ruimte rr,
prs_perslid p
WHERE rr.res_activiteit_key IN (30, 230) -- Verhuur/Schoollokaal
AND rr.res_status_fo_key IN (1, 2)
AND rr.res_rsv_ruimte_dirtlevel = 0
--AND COALESCE (
-- rr.res_status_bo_key, 2
-- ) != 6 -- Nog niet AV
AND rr.res_rsv_ruimte_tot >
ADD_MONTHS (
TRUNC (
ADD_MONTHS (
SYSDATE,
-6
),
'yyyy'
),
7
)
AND rr.res_rsv_ruimte_contact_key =
p.prs_perslid_key)
x
LEFT JOIN -- 301/422 = Datum verzoek
res_v_aanwezigkenmerkwaarde datumverzoek
ON x.res_rsv_ruimte_key = datumverzoek.res_rsv_ruimte_key
AND datumverzoek.res_kenmerk_key IN (301, 422)
LEFT JOIN -- 302/423 = Soort verzoek
res_v_aanwezigkenmerkwaarde soortverzoek
ON x.res_rsv_ruimte_key = soortverzoek.res_rsv_ruimte_key
AND soortverzoek.res_kenmerk_key IN (302, 423)
LEFT JOIN -- 303/424 = Verhuur tarief
res_v_aanwezigkenmerkwaarde tarief
ON x.res_rsv_ruimte_key = tarief.res_rsv_ruimte_key
AND tarief.res_kenmerk_key IN (303, 424)
LEFT JOIN -- Regelmatige relatiegegevens
(SELECT kw.res_rsv_ruimte_key,
b.prs_bedrijf_key bedr_key,
b.prs_bedrijf_naam,
COALESCE (
b.prs_bedrijf_post_adres,
b.prs_bedrijf_bezoek_adres
) adres,
COALESCE (
b.prs_bedrijf_post_postcode,
b.prs_bedrijf_bezoek_postcode
) postcode,
COALESCE (
b.prs_bedrijf_post_plaats,
b.prs_bedrijf_bezoek_plaats
) plaats
FROM res_v_aanwezigkenmerkwaarde kw,
prs_bedrijf b
WHERE kw.res_kenmerk_key IN (9, 426) -- Relatie
AND fac.safe_to_number(kw.res_kenmerkreservering_waarde) =
b.prs_bedrijf_key)
r
ON x.res_rsv_ruimte_key = r.res_rsv_ruimte_key
LEFT JOIN -- 2/428 = Incidentele relatie/Naam
res_v_aanwezigkenmerkwaarde inaam
ON x.res_rsv_ruimte_key = inaam.res_rsv_ruimte_key
AND inaam.res_kenmerk_key IN (2, 428)
LEFT JOIN -- 341/429 = Incidentele relatie/Afd
res_v_aanwezigkenmerkwaarde iafd
ON x.res_rsv_ruimte_key = iafd.res_rsv_ruimte_key
AND iafd.res_kenmerk_key IN (341, 429)
LEFT JOIN -- 342/430 = Incidentele relatie/Tav
res_v_aanwezigkenmerkwaarde itav
ON x.res_rsv_ruimte_key = itav.res_rsv_ruimte_key
AND itav.res_kenmerk_key IN (342, 430)
LEFT JOIN -- 304/436 = Incidentele relatie/Aanhef
res_v_aanwezigkenmerkwaarde iaanhef
ON x.res_rsv_ruimte_key = iaanhef.res_rsv_ruimte_key
AND iaanhef.res_kenmerk_key IN (304, 436)
LEFT JOIN -- 3/431 = Incidentele relatie/Adres
res_v_aanwezigkenmerkwaarde iadres
ON x.res_rsv_ruimte_key = iadres.res_rsv_ruimte_key
AND iadres.res_kenmerk_key IN (3, 431)
LEFT JOIN -- 4/432 = Incidentele relatie/Postcode
res_v_aanwezigkenmerkwaarde ipostcode
ON x.res_rsv_ruimte_key = ipostcode.res_rsv_ruimte_key
AND ipostcode.res_kenmerk_key IN (4, 432)
LEFT JOIN -- 5/433 = Incidentele relatie/Plaats
res_v_aanwezigkenmerkwaarde iplaats
ON x.res_rsv_ruimte_key = iplaats.res_rsv_ruimte_key
AND iplaats.res_kenmerk_key IN (5, 433)
LEFT JOIN -- 1021 = Regelmatige relatie/Naam
prs_v_aanwezigkenmerklink rnaam
ON r.bedr_key = rnaam.prs_link_key
AND rnaam.prs_kenmerk_key = 1021
LEFT JOIN -- 1040 = Regelmatige relatie/Afd
prs_v_aanwezigkenmerklink rafd
ON r.bedr_key = rafd.prs_link_key
AND rafd.prs_kenmerk_key = 1040
LEFT JOIN -- 1041 = Regelmatige relatie/Tav
prs_v_aanwezigkenmerklink rtav
ON r.bedr_key = rtav.prs_link_key
AND rtav.prs_kenmerk_key = 1041
LEFT JOIN -- 1022 = Regelmatige relatie/Aanhef
prs_v_aanwezigkenmerklink raanhef
ON r.bedr_key = raanhef.prs_link_key
AND raanhef.prs_kenmerk_key = 1022
LEFT JOIN -- 1023 = Regelmatige relatie/Termijnen
prs_v_aanwezigkenmerklink rtermijnen
ON r.bedr_key = rtermijnen.prs_link_key
AND rtermijnen.prs_kenmerk_key = 1023
LEFT JOIN -- 1060 = Regelmatige relatie/Korting
prs_v_aanwezigkenmerklink rkorting
ON r.bedr_key = rkorting.prs_link_key
AND rkorting.prs_kenmerk_key = 1060
LEFT JOIN
(SELECT rrr.res_rsv_ruimte_key,
rr.res_discipline_key,
rr.res_ruimte_key,
l.alg_locatie_key,
'1R' res_type,
rr.res_ruimte_nr,
TO_NUMBER (NULL) vnr,
'Huur '
|| DECODE (
rrr.res_activiteit_key,
30,
rdi.ins_discipline_omschrijving || ' '
|| TRIM(SUBSTR (
rr.res_ruimte_nr,
1,
INSTR (rr.res_ruimte_nr || '(',
'(')
- 1
)),
'locatie ' || l.alg_locatie_omschrijving
)
onderwerp,
rr.res_ruimte_nr res_voorziening,
rrr.res_rsv_ruimte_prijs res_rsv_prijs,
(rrr.res_rsv_ruimte_tot - rrr.res_rsv_ruimte_van)
* 24
aantal, -- Duur in uren
rr.res_ruimte_prijs ps, -- Uur-tarief
rr.res_ruimte_prijs_ochtend po, -- Incidenteel tarief
rr.res_ruimte_prijs_middag pm, -- Vast tarief/K
rr.res_ruimte_prijs_avond pa, -- Commercieel tarief/H
rr.res_ruimte_prijs_dag pd, -- Jaartarief/J
6 btw
FROM res_v_aanwezigrsv_ruimte rrr,
res_ruimte_opstelling rro,
res_ruimte rr,
res_discipline rdi,
res_v_res_ruimte_gegevens_all rga,
alg_locatie l
WHERE rrr.res_ruimte_opstel_key = rro.res_ruimte_opstel_key
AND rro.res_ruimte_key = rr.res_ruimte_key
AND rr.res_discipline_key = rdi.ins_discipline_key
AND rr.res_ruimte_key = rga.res_ruimte_key
AND rga.alg_locatie_key = l.alg_locatie_key
UNION ALL
SELECT rrd.res_rsv_ruimte_key,
rr.res_discipline_key,
rr.res_ruimte_key,
l.alg_locatie_key,
'2V' res_type,
rr.res_ruimte_nr,
rd.res_ins_deel_key vnr,
NULL onderwerp,
LTRIM (ID.ins_deel_omschrijving)
|| DECODE (rd.res_deel_eenheid,
NULL, '',
' (' || rd.res_deel_eenheid || ')')
res_voorziening,
rrd.res_rsv_deel_prijs res_rsv_prijs,
(rrd.res_rsv_deel_tot - rrd.res_rsv_deel_van) * 24
aantal, -- Duur in uren
rd.res_deel_prijs ps, -- Uur-tarief
TO_NUMBER (NULL) po, -- Incidenteel tarief
TO_NUMBER (NULL) pm, -- Vast tarief/K
TO_NUMBER (NULL) pa, -- Commercieel tarief/H
TO_NUMBER (NULL) pd, -- Jaartarief/J
6 btw
FROM res_v_aanwezigrsv_ruimte rrr,
res_ruimte_opstelling rro,
res_ruimte rr,
res_v_res_ruimte_gegevens_all rga,
alg_locatie l,
res_v_aanwezigrsv_deel rrd,
res_deel rd,
ins_deel ID
WHERE rrr.res_ruimte_opstel_key = rro.res_ruimte_opstel_key
AND rro.res_ruimte_key = rr.res_ruimte_key
AND rr.res_ruimte_key = rga.res_ruimte_key
AND rga.alg_locatie_key = l.alg_locatie_key
AND rrr.res_rsv_ruimte_key = rrd.res_rsv_ruimte_key
AND rrd.res_deel_key = rd.res_deel_key
AND rd.res_ins_deel_key = ID.ins_deel_key
UNION ALL
SELECT rra.res_rsv_ruimte_key,
rr.res_discipline_key,
rr.res_ruimte_key,
l.alg_locatie_key,
'3C' res_type,
rr.res_ruimte_nr,
ra.res_artikel_volgnummer vnr,
NULL onderwerp,
LTRIM (ra.res_artikel_omschrijving)
|| DECODE (ra.res_artikel_eenheid,
NULL, '',
' (' || ra.res_artikel_eenheid || ')')
res_voorziening,
rra.res_rsv_artikel_prijs res_rsv_prijs,
rra.res_rsv_artikel_aantal aantal,
ra.res_artikel_prijs ps, -- Stuksprijs
TO_NUMBER (NULL) po, -- Incidenteel tarief
TO_NUMBER (NULL) pm, -- Vast tarief/K
TO_NUMBER (NULL) pa, -- Commercieel tarief/H
TO_NUMBER (NULL) pd, -- Jaartarief/J
COALESCE (rra.res_rsv_artikel_btw,
ra.res_artikel_btw,
21)
btw
FROM res_v_aanwezigrsv_ruimte rrr,
res_ruimte_opstelling rro,
res_ruimte rr,
res_v_res_ruimte_gegevens_all rga,
alg_locatie l,
res_v_aanwezigrsv_artikel rra,
res_artikel ra
WHERE rrr.res_ruimte_opstel_key = rro.res_ruimte_opstel_key
AND rro.res_ruimte_key = rr.res_ruimte_key
AND rr.res_ruimte_key = rga.res_ruimte_key
AND rga.alg_locatie_key = l.alg_locatie_key
AND rrr.res_rsv_ruimte_key = rra.res_rsv_ruimte_key
AND rra.res_artikel_key = ra.res_artikel_key) rvc
ON x.res_rsv_ruimte_key = rvc.res_rsv_ruimte_key
WHERE x.res_helft <= x.sys_helft -- Facturatie t/m lopende jaarhelft!
AND (x.res_rsv_ruimte_ordernr IS NULL -- Niet eerder gefactureerd
OR (x.res_rsv_ruimte_ordernr IS NOT NULL -- .. of correctie
AND x.res_helft = x.sys_helft)) -- ..nog toegestaan!
AND tarief.res_kenmerkreservering_waarde != '261' -- Niet nul
/
/* Formatted on 6-3-2014 13:30:30 (QP5 v5.136.908.31019) */
CREATE OR REPLACE VIEW renk_v_lokaalverhuur_vast
(
groepering, -- Huurder/locatie -> factuur
sys_helft,
res_ruimte_key, -- Ruimte
khj_tarief -- K(wartaal), H(alfjaar) of J(aar)
)
AS
SELECT x.groepering,
TO_CHAR (ADD_MONTHS (SYSDATE, 1), 'yyyy')
|| DECODE (TRUNC (ADD_MONTHS (SYSDATE, 6), 'yy'),
TRUNC (ADD_MONTHS (SYSDATE, 1), 'yy'), '1',
'2')
sys_helft,
x.res_ruimte_key,
DECODE (
DECODE (TRUNC (ADD_MONTHS (SYSDATE, 6), 'yy'),
TRUNC (ADD_MONTHS (SYSDATE, 1), 'yy'), '1',
'2'),
'1',
DECODE (x.k1 + x.k2,
2, DECODE (x.k3 + x.k4, 2, 'J', 'H'),
'K'), -- Deze helft geen boekingen in beide kwartalen!
DECODE (x.k3 + x.k4,
2, DECODE (x.k1 + x.k2, 2, 'J', 'H'),
'K') -- Deze helft geen boekingen in beide kwartalen!
)
khj
FROM ( SELECT TO_CHAR (x.alg_locatie_key) || '-'
|| COALESCE (bedr_key.res_kenmerkreservering_waarde,
UPPER (TRIM (x.res_rsv_ruimte_omschrijving)),
'[naam]')
groepering,
x.res_ruimte_key,
DECODE (SIGN (SUM (x.k1) - 8), -1, 0, 1) k1,
DECODE (SIGN (SUM (x.k2) - 8), -1, 0, 1) k2,
DECODE (SIGN (SUM (x.k3) - 8), -1, 0, 1) k3,
DECODE (SIGN (SUM (x.k4) - 8), -1, 0, 1) k4
FROM (SELECT rrr.res_rsv_ruimte_key,
rrr.res_rsv_ruimte_omschrijving,
rr.res_ruimte_key,
rga.alg_locatie_key,
DECODE (TO_CHAR (rrr.res_rsv_ruimte_tot, 'Q'),
1, 1,
0)
k1,
DECODE (TO_CHAR (rrr.res_rsv_ruimte_tot, 'Q'),
2, 1,
0)
k2,
DECODE (TO_CHAR (rrr.res_rsv_ruimte_tot, 'Q'),
3, 1,
0)
k3,
DECODE (TO_CHAR (rrr.res_rsv_ruimte_tot, 'Q'),
4, 1,
0)
k4
FROM res_v_aanwezigrsv_ruimte rrr,
res_ruimte_opstelling rro,
res_ruimte rr,
res_v_res_ruimte_gegevens_all rga
WHERE rrr.res_activiteit_key = 230 -- Schoollokaal
AND rrr.res_status_fo_key IN (1, 2)
AND rrr.res_rsv_ruimte_dirtlevel = 0
AND rrr.res_ruimte_opstel_key =
rro.res_ruimte_opstel_key
AND rro.res_ruimte_key = rr.res_ruimte_key
AND rr.res_discipline_key = 43
AND rr.res_ruimte_key = rga.res_ruimte_key
AND rrr.res_rsv_ruimte_tot BETWEEN ADD_MONTHS (
TRUNC (
ADD_MONTHS (
SYSDATE,
-6),
'yyyy'),
7)
AND ADD_MONTHS (
TRUNC (
ADD_MONTHS (
SYSDATE,
-6),
'yyyy'),
19)) x
LEFT JOIN -- 424 = Verhuur tarief
res_v_aanwezigkenmerkwaarde tarief
ON x.res_rsv_ruimte_key = tarief.res_rsv_ruimte_key
AND tarief.res_kenmerk_key = 424
LEFT JOIN -- 426 = Regelmatige relatiegegevens
res_v_aanwezigkenmerkwaarde bedr_key
ON x.res_rsv_ruimte_key = bedr_key.res_rsv_ruimte_key
AND bedr_key.res_kenmerk_key = 426
WHERE tarief.res_kenmerkreservering_waarde = '84'
GROUP BY TO_CHAR (x.alg_locatie_key) || '-'
|| COALESCE (
bedr_key.res_kenmerkreservering_waarde,
UPPER (TRIM (x.res_rsv_ruimte_omschrijving)),
'[naam]'),
x.res_ruimte_key) x;
/* Formatted on 2-8-2013 10:00:45 (QP5 v5.115.810.9015) */
CREATE OR REPLACE VIEW renk_v_rap_res_actual
(
hide_f_groepering,
hide_f_mindatum,
hide_f_maxdatum,
hide_f_restype,
fclt_f_naam,
naam,
afd,
tav,
aanhef,
adres,
postcode,
plaats,
factuurdatum,
ordernr,
periode, -- sys_helft
dagnaam,
dagnr,
van,
tot,
rvc_oms,
aantal,
stuksprijs,
bruto,
onderwerp,
datumverzoek,
soortverzoek,
tarief_code,
termijnen,
korting,
kenmerk,
behandelaar_naam,
behandelaar_tel,
behandelaar_mail,
res_discipline_key,
res_ruimte_key,
aant_weken
)
AS
SELECT x.groepering,
MIN (x.sortering1),
MAX (x.sortering1),
x.sortering2,
MIN (x.fclt_f_naam),
MIN (x.naam),
MIN (x.afd),
MIN (x.tav),
MIN (x.aanhef),
MIN (x.adres),
MIN (x.postcode),
MIN (x.plaats),
MIN (x.factuurdatum),
MIN (x.ordernr),
MIN (x.sys_helft),
MIN (x.dagnaam),
x.dagnr,
x.van,
x.tot,
MIN (x.res_voorziening),
MIN (x.aantal),
MIN (x.stuksprijs),
DECODE (x.khj_tarief,
NULL, SUM (x.bruto),
SUM (x.bruto) / COUNT ( * )),
MIN (x.onderwerp),
MIN (x.datumverzoek), -- Langst geleden verzoekdatum!
MIN (x.soortverzoek), -- Schriftelijk wint!
MIN (x.tarief_code),
MIN (x.termijnen),
MIN (x.korting),
'***CONCEPT***' kenmerk,
MIN (x.behandelaar_naam),
MIN (x.behandelaar_tel),
MIN (x.behandelaar_mail),
MIN (x.res_discipline_key),
x.res_ruimte_key,
COUNT ( * ) aant_weken
FROM (SELECT x.groepering,
x.sortering1,
x.sortering2,
x.fclt_f_naam,
x.naam,
x.afd,
x.tav,
x.aanhef,
x.adres,
x.postcode,
x.plaats,
x.factuurdatum,
x.ordernr,
x.sys_helft,
x.dagnaam,
x.dagnr,
TO_CHAR (x.van, 'hh24:mi') van,
TO_CHAR (x.tot, 'hh24:mi') tot,
x.res_voorziening,
x.aantal,
ROUND (
DECODE (
x.res_rsv_prijs,
NULL,
DECODE (
x.res_type,
'1R',
DECODE (
x.tarief_code,
'V', -- Speciale tarieven igv. lokalen!
DECODE (y.khj_tarief,
'H', x.pa, -- Halfjaar
'J', x.pd, -- Jaar
x.pm), -- Vast/Kwartaal
'C',
x.pa, -- Commercieel!
x.po -- Incidenteel!
),
x.ps -- 2V/3C!
),
x.res_rsv_prijs
/ DECODE (x.aantal, NULL, 1, 0, 1, x.aantal)
),
2
)
stuksprijs,
ROUND (
DECODE (
x.res_type,
'1R', -- ZIE OOK ONDERSTAANDE - GEVAARLIJKE - AANNAME!
COALESCE (
x.res_rsv_prijs, -- NULL totdat door MVH "bevroren"
--DECODE (x.res_ruimte_key,
-- 121, CEIL (x.aantal / 4),
-- x.aantal) -- Instructieruimte per dagdeel
x.aantal
* DECODE (
x.tarief_code,
'V', -- Speciale tarieven igv. lokalen!
DECODE (y.khj_tarief,
'H', x.pa, -- Halfjaar
'J', x.pd, -- Jaar
x.pm), -- Vast/Kwartaal
'C',
x.pa, -- Commercieel!
x.po -- Incidenteel!
)
* x.korting
),
COALESCE (x.res_rsv_prijs, x.aantal * x.ps) -- 2V/3C!
),
2
)
bruto,
x.onderwerp,
SUBSTR (x.datumverzoek, 7, 4)
|| SUBSTR (x.datumverzoek, 4, 2)
|| SUBSTR (x.datumverzoek, 1, 2)
datumverzoek,
x.soortverzoek,
x.tarief_code,
x.termijnen,
x.korting,
x.behandelaar_naam,
x.behandelaar_tel,
x.behandelaar_mail,
x.res_discipline_key,
x.res_ruimte_key,
y.khj_tarief
FROM renk_v_verhuurregels_alle x,
renk_v_lokaalverhuur_vast y
WHERE x.groepering = y.groepering(+)
AND x.sys_helft = y.sys_helft(+)
AND x.res_ruimte_key = y.res_ruimte_key(+)) x
GROUP BY x.groepering,
x.sortering2,
x.dagnr,
x.van,
x.tot,
x.res_ruimte_key,
x.khj_tarief;
/* Formatted on 25-11-2013 11:10:05 (QP5 v5.115.810.9015) */
CREATE OR REPLACE VIEW renk_v_verhuurregels_frozen
(
groepering1,
groepering2,
sortering1,
sortering2,
fclt_f_naam,
naam,
afd,
tav,
aanhef,
adres,
postcode,
plaats,
factuurdatum,
res_rsv_ruimte_key,
resid,
ordernr,
sys_helft,
dagnaam,
dagnr,
van,
tot,
omschrijving,
opmerking,
datumverzoek,
soortverzoek,
tarief_code,
termijnen,
korting,
behandelaar_naam,
behandelaar_tel,
behandelaar_mail,
res_discipline_key,
res_ruimte_key,
alg_locatie_key,
res_type,
res_ruimte_nr,
vnr,
onderwerp,
res_voorziening,
res_rsv_prijs,
aantal,
ps,
po,
pm,
pa,
pd,
btw
)
AS
SELECT x.res_rsv_ruimte_ordernr groepering1,
DECODE ( -- V -> per jaarhelft/locatie; I of C -> per reservering!
tarief.res_kenmerkreservering_waarde,
'84', -- Vast
TO_CHAR (rvc.alg_locatie_key) || '-' -- Dash!
|| COALESCE (TO_CHAR (r.bedr_key),
--inaam.res_kenmerkreservering_waarde,
UPPER (TRIM (x.res_rsv_ruimte_omschrijving)),
'[naam]'),
TO_CHAR (x.res_key) || '/' || TO_CHAR (x.res_vnr) -- Slash!
)
groepering2,
TO_CHAR (x.van, 'yyyy-mm-dd hh24:mi')
|| rvc.res_ruimte_nr
|| x.res_key
sortering1, -- Factuurregels op datum-tijd en dan ruimtenr
rvc.res_type || SUBSTR ('000000' || TO_CHAR (rvc.vnr), -6)
sortering2, -- ..daarbinnen op type (1R2V3C) en dan volgnr
DECODE (
r.bedr_key,
NULL,
COALESCE (UPPER (TRIM (x.res_rsv_ruimte_omschrijving)),
'[naam]'),
TRIM (r.prs_bedrijf_naam)
)
fclt_f_naam,
DECODE (r.bedr_key,
NULL,
COALESCE (inaam.res_kenmerkreservering_waarde, '[naam]'),
COALESCE (rnaam.prs_kenmerklink_waarde, '[naam]'))
naam,
DECODE (r.bedr_key,
NULL, iafd.res_kenmerkreservering_waarde,
rafd.prs_kenmerklink_waarde)
afd,
DECODE (r.bedr_key,
NULL, itav.res_kenmerkreservering_waarde,
rtav.prs_kenmerklink_waarde)
tav,
DECODE (
r.bedr_key,
NULL,
COALESCE (iaanhef.res_kenmerkreservering_waarde, '[aanhef]'),
COALESCE (raanhef.prs_kenmerklink_waarde, '[aanhef]')
)
aanhef,
DECODE (
r.bedr_key,
NULL,
COALESCE (iadres.res_kenmerkreservering_waarde, '[adres]'),
COALESCE (r.adres, '[adres]')
)
adres,
DECODE (
r.bedr_key,
NULL,
COALESCE (ipostcode.res_kenmerkreservering_waarde, '[pc]'),
COALESCE (r.postcode, '[pc]')
)
postcode,
DECODE (
r.bedr_key,
NULL,
COALESCE (iplaats.res_kenmerkreservering_waarde, '[plaats]'),
COALESCE (r.plaats, '[plaats]')
)
plaats,
TO_CHAR (SYSDATE, 'dd')
|| DECODE (TO_CHAR (SYSDATE, 'mm'),
'01', ' januari ',
'02', ' februari ',
'03', ' maart ',
'04', ' april ',
'05', ' mei ',
'06', ' juni ',
'07', ' juli ',
'08', ' augustus ',
'09', ' september ',
'10', ' okotober ',
'11', ' november ',
' december ')
|| TO_CHAR (SYSDATE, 'yyyy')
factuurdatum,
x.res_rsv_ruimte_key,
x.res_key || '/' || x.res_vnr resid,
x.res_rsv_ruimte_ordernr ordernr,
x.res_helft, -- 1e of 2e jaarhelft in formaat yyyyh(elft)!
DECODE (TO_CHAR (x.van, 'd'),
'2', 'maandag',
'3', 'dinsdag',
'4', 'woensdag',
'5', 'donderdag',
'6', 'vrijdag',
'7', 'zaterdag',
'zondag')
dagnaam,
DECODE (TO_CHAR (x.van, 'd'),
'1', 7,
TO_NUMBER (TO_CHAR (x.van, 'd')) - 1)
dagnr,
x.van, --TO_CHAR (x.van, 'hh24:mi') van,
x.tot, --TO_CHAR (x.tot, 'hh24:mi') tot,
x.res_rsv_ruimte_omschrijving oms,
x.res_rsv_ruimte_opmerking opm,
COALESCE (datumverzoek.res_kenmerkreservering_waarde,
'dd-mm-jjjj')
datumverzoek,
DECODE (soortverzoek.res_kenmerkreservering_waarde,
'81', 'telefonische',
'82', 'schriftelijke',
'[soortverzoek]')
soortverzoek,
DECODE (tarief.res_kenmerkreservering_waarde,
'84', 'V', -- Vast!
'85', 'C', -- Commercieel!
'I') -- Incidenteel!
tarief_code,
rtermijnen.prs_kenmerklink_waarde termijnen,
DECODE (
rkorting.prs_kenmerklink_waarde,
'1',
DECODE (
rvc.res_discipline_key,
41, -- Sporthal
DECODE (
TO_CHAR (x.tot, 'd'),
'1', -- Zondag
1,
'4', -- Woensdag
DECODE (SIGN ( ( (x.van - TRUNC (x.van)) * 24) - 12),
-1, 0.5,
1),
'7', -- Zaterdag
1,
DECODE (SIGN ( ( (x.van - TRUNC (x.van)) * 24) - 18),
-1, 0.5,
1)
),
1
),
1
)
korting, -- Eventueel te hanteren korting (factor)!
x.behandelaar_naam,
x.behandelaar_tel,
x.behandelaar_mail,
rvc.res_discipline_key,
rvc.res_ruimte_key,
rvc.alg_locatie_key,
rvc.res_type,
rvc.res_ruimte_nr,
rvc.vnr,
rvc.onderwerp,
rvc.res_voorziening,
rvc.res_rsv_prijs,
rvc.aantal,
rvc.ps, -- Uur-tarief
rvc.po, -- Incidenteel tarief
rvc.pm, -- Vast tarief/K
rvc.pa, -- Commercieel tarief/H
rvc.pd, -- Jaartarief/J
rvc.btw
FROM (SELECT rr.res_rsv_ruimte_key,
rr.res_reservering_key res_key,
rr.res_rsv_ruimte_volgnr res_vnr,
rr.res_rsv_ruimte_ordernr,
rr.res_rsv_ruimte_van van,
rr.res_rsv_ruimte_tot tot,
rr.res_rsv_ruimte_omschrijving,
rr.res_rsv_ruimte_opmerking,
p.prs_perslid_key,
DECODE (
p.prs_perslid_voornaam,
'', '',
p.prs_perslid_voornaam
|| ' '
)
|| DECODE (
p.prs_perslid_tussenvoegsel,
'', '',
p.prs_perslid_tussenvoegsel
|| ' '
)
|| p.prs_perslid_naam
behandelaar_naam,
COALESCE (
p.prs_perslid_telefoonnr,
p.prs_perslid_mobiel
)
behandelaar_tel,
p.prs_perslid_email
behandelaar_mail,
TO_CHAR (
rr.res_rsv_ruimte_tot,
'yyyy'
)
|| DECODE (
TRUNC (
ADD_MONTHS (
rr.res_rsv_ruimte_tot, 5
),
'yyyy'
),
TRUNC (
rr.res_rsv_ruimte_tot,
'yyyy'
),
'1',
'2'
)
res_helft
FROM res_v_aanwezigrsv_ruimte rr,
prs_perslid p
WHERE rr.res_rsv_ruimte_ordernr IS NOT NULL
AND rr.res_activiteit_key IN (30, 230) -- Verhuur/Schoollokaal
AND rr.res_status_fo_key IN (1, 2)
AND rr.res_rsv_ruimte_dirtlevel = 0
--AND COALESCE (
-- rr.res_status_bo_key, 2
-- ) != 6 -- Nog niet AV
AND rr.res_rsv_ruimte_tot >
TO_DATE (
'01072013', 'ddmmyyyy'
)
AND rr.res_rsv_ruimte_tot >
TRUNC (
ADD_MONTHS (
SYSDATE, -12
),
'yyyy'
)
AND rr.res_rsv_ruimte_contact_key =
p.prs_perslid_key)
x
LEFT JOIN -- 301/422 = Datum verzoek
res_v_aanwezigkenmerkwaarde datumverzoek
ON x.res_rsv_ruimte_key = datumverzoek.res_rsv_ruimte_key
AND datumverzoek.res_kenmerk_key IN (301, 422)
LEFT JOIN -- 302/423 = Soort verzoek
res_v_aanwezigkenmerkwaarde soortverzoek
ON x.res_rsv_ruimte_key = soortverzoek.res_rsv_ruimte_key
AND soortverzoek.res_kenmerk_key IN (302, 423)
LEFT JOIN -- 303/424 = Verhuur tarief
res_v_aanwezigkenmerkwaarde tarief
ON x.res_rsv_ruimte_key = tarief.res_rsv_ruimte_key
AND tarief.res_kenmerk_key IN (303, 424)
LEFT JOIN -- Regelmatige relatiegegevens
(SELECT kw.res_rsv_ruimte_key,
b.prs_bedrijf_key bedr_key,
b.prs_bedrijf_naam,
COALESCE (
b.prs_bedrijf_post_adres,
b.prs_bedrijf_bezoek_adres
) adres,
COALESCE (
b.prs_bedrijf_post_postcode,
b.prs_bedrijf_bezoek_postcode
) postcode,
COALESCE (
b.prs_bedrijf_post_plaats,
b.prs_bedrijf_bezoek_plaats
) plaats
FROM res_v_aanwezigkenmerkwaarde kw,
prs_bedrijf b
WHERE kw.res_kenmerk_key IN (9, 426) -- Relatie
AND fac.safe_to_number(kw.res_kenmerkreservering_waarde) =
b.prs_bedrijf_key)
r
ON x.res_rsv_ruimte_key = r.res_rsv_ruimte_key
LEFT JOIN -- 2/428 = Incidentele relatie/Naam
res_v_aanwezigkenmerkwaarde inaam
ON x.res_rsv_ruimte_key = inaam.res_rsv_ruimte_key
AND inaam.res_kenmerk_key IN (2, 428)
LEFT JOIN -- 341/429 = Incidentele relatie/Afd
res_v_aanwezigkenmerkwaarde iafd
ON x.res_rsv_ruimte_key = iafd.res_rsv_ruimte_key
AND iafd.res_kenmerk_key IN (341, 429)
LEFT JOIN -- 342/430 = Incidentele relatie/Tav
res_v_aanwezigkenmerkwaarde itav
ON x.res_rsv_ruimte_key = itav.res_rsv_ruimte_key
AND itav.res_kenmerk_key IN (342, 430)
LEFT JOIN -- 304/436 = Incidentele relatie/Aanhef
res_v_aanwezigkenmerkwaarde iaanhef
ON x.res_rsv_ruimte_key = iaanhef.res_rsv_ruimte_key
AND iaanhef.res_kenmerk_key IN (304, 436)
LEFT JOIN -- 3/431 = Incidentele relatie/Adres
res_v_aanwezigkenmerkwaarde iadres
ON x.res_rsv_ruimte_key = iadres.res_rsv_ruimte_key
AND iadres.res_kenmerk_key IN (3, 431)
LEFT JOIN -- 4/432 = Incidentele relatie/Postcode
res_v_aanwezigkenmerkwaarde ipostcode
ON x.res_rsv_ruimte_key = ipostcode.res_rsv_ruimte_key
AND ipostcode.res_kenmerk_key IN (4, 432)
LEFT JOIN -- 5/433 = Incidentele relatie/Plaats
res_v_aanwezigkenmerkwaarde iplaats
ON x.res_rsv_ruimte_key = iplaats.res_rsv_ruimte_key
AND iplaats.res_kenmerk_key IN (5, 433)
LEFT JOIN -- 1021 = Regelmatige relatie/Naam
prs_v_aanwezigkenmerklink rnaam
ON r.bedr_key = rnaam.prs_link_key
AND rnaam.prs_kenmerk_key = 1021
LEFT JOIN -- 1040 = Regelmatige relatie/Afd
prs_v_aanwezigkenmerklink rafd
ON r.bedr_key = rafd.prs_link_key
AND rafd.prs_kenmerk_key = 1040
LEFT JOIN -- 1041 = Regelmatige relatie/Tav
prs_v_aanwezigkenmerklink rtav
ON r.bedr_key = rtav.prs_link_key
AND rtav.prs_kenmerk_key = 1041
LEFT JOIN -- 1022 = Regelmatige relatie/Aanhef
prs_v_aanwezigkenmerklink raanhef
ON r.bedr_key = raanhef.prs_link_key
AND raanhef.prs_kenmerk_key = 1022
LEFT JOIN -- 1023 = Regelmatige relatie/Termijnen
prs_v_aanwezigkenmerklink rtermijnen
ON r.bedr_key = rtermijnen.prs_link_key
AND rtermijnen.prs_kenmerk_key = 1023
LEFT JOIN -- 1060 = Regelmatige relatie/Korting
prs_v_aanwezigkenmerklink rkorting
ON r.bedr_key = rkorting.prs_link_key
AND rkorting.prs_kenmerk_key = 1060
LEFT JOIN
(SELECT rrr.res_rsv_ruimte_key,
rr.res_discipline_key,
rr.res_ruimte_key,
l.alg_locatie_key,
'1R' res_type,
rr.res_ruimte_nr,
TO_NUMBER (NULL) vnr,
'Huur '
|| DECODE (
rrr.res_activiteit_key,
30,
rdi.ins_discipline_omschrijving || ' '
|| TRIM(SUBSTR (
rr.res_ruimte_nr,
1,
INSTR (rr.res_ruimte_nr || '(',
'(')
- 1
)),
'locatie ' || l.alg_locatie_omschrijving
)
onderwerp,
rr.res_ruimte_nr res_voorziening,
rrr.res_rsv_ruimte_prijs res_rsv_prijs,
(rrr.res_rsv_ruimte_tot - rrr.res_rsv_ruimte_van)
* 24
aantal, -- Duur in uren
rr.res_ruimte_prijs ps, -- Uur-tarief
rr.res_ruimte_prijs_ochtend po, -- Incidenteel tarief
rr.res_ruimte_prijs_middag pm, -- Vast tarief/K
rr.res_ruimte_prijs_avond pa, -- Commercieel tarief/H
rr.res_ruimte_prijs_dag pd, -- Jaartarief/J
6 btw
FROM res_v_aanwezigrsv_ruimte rrr,
res_ruimte_opstelling rro,
res_ruimte rr,
res_discipline rdi,
res_v_res_ruimte_gegevens_all rga,
alg_locatie l
WHERE rrr.res_ruimte_opstel_key =
rro.res_ruimte_opstel_key
AND rro.res_ruimte_key = rr.res_ruimte_key
AND rr.res_discipline_key = rdi.ins_discipline_key
AND rr.res_ruimte_key = rga.res_ruimte_key
AND rga.alg_locatie_key = l.alg_locatie_key
UNION ALL
SELECT rrd.res_rsv_ruimte_key,
rr.res_discipline_key,
rr.res_ruimte_key,
l.alg_locatie_key,
'2V' res_type,
rr.res_ruimte_nr,
rd.res_ins_deel_key vnr,
NULL onderwerp,
LTRIM (ID.ins_deel_omschrijving)
|| DECODE (rd.res_deel_eenheid,
NULL, '',
' (' || rd.res_deel_eenheid || ')')
res_voorziening,
rrd.res_rsv_deel_prijs res_rsv_prijs,
(rrd.res_rsv_deel_tot - rrd.res_rsv_deel_van) * 24
aantal, -- Duur in uren
rd.res_deel_prijs ps, -- Uur-tarief
TO_NUMBER (NULL) po, -- Incidenteel tarief
TO_NUMBER (NULL) pm, -- Vast tarief/K
TO_NUMBER (NULL) pa, -- Commercieel tarief/H
TO_NUMBER (NULL) pd, -- Jaartarief/J
6 btw
FROM res_v_aanwezigrsv_ruimte rrr,
res_ruimte_opstelling rro,
res_ruimte rr,
res_v_res_ruimte_gegevens_all rga,
alg_locatie l,
res_v_aanwezigrsv_deel rrd,
res_deel rd,
ins_deel ID
WHERE rrr.res_ruimte_opstel_key =
rro.res_ruimte_opstel_key
AND rro.res_ruimte_key = rr.res_ruimte_key
AND rr.res_ruimte_key = rga.res_ruimte_key
AND rga.alg_locatie_key = l.alg_locatie_key
AND rrr.res_rsv_ruimte_key = rrd.res_rsv_ruimte_key
AND rrd.res_deel_key = rd.res_deel_key
AND rd.res_ins_deel_key = ID.ins_deel_key
UNION ALL
SELECT rra.res_rsv_ruimte_key,
rr.res_discipline_key,
rr.res_ruimte_key,
l.alg_locatie_key,
'3C' res_type,
rr.res_ruimte_nr,
ra.res_artikel_volgnummer vnr,
NULL onderwerp,
LTRIM (ra.res_artikel_omschrijving)
|| DECODE (ra.res_artikel_eenheid,
NULL, '',
' (' || ra.res_artikel_eenheid || ')')
res_voorziening,
rra.res_rsv_artikel_prijs res_rsv_prijs,
rra.res_rsv_artikel_aantal aantal,
ra.res_artikel_prijs ps, -- Stuksprijs
TO_NUMBER (NULL) po, -- Incidenteel tarief
TO_NUMBER (NULL) pm, -- Vast tarief/K
TO_NUMBER (NULL) pa, -- Commercieel tarief/H
TO_NUMBER (NULL) pd, -- Jaartarief/J
COALESCE (rra.res_rsv_artikel_btw,
ra.res_artikel_btw,
21)
btw
FROM res_v_aanwezigrsv_ruimte rrr,
res_ruimte_opstelling rro,
res_ruimte rr,
res_v_res_ruimte_gegevens_all rga,
alg_locatie l,
res_v_aanwezigrsv_artikel rra,
res_artikel ra
WHERE rrr.res_ruimte_opstel_key =
rro.res_ruimte_opstel_key
AND rro.res_ruimte_key = rr.res_ruimte_key
AND rr.res_ruimte_key = rga.res_ruimte_key
AND rga.alg_locatie_key = l.alg_locatie_key
AND rrr.res_rsv_ruimte_key = rra.res_rsv_ruimte_key
AND rra.res_artikel_key = ra.res_artikel_key) rvc
ON x.res_rsv_ruimte_key = rvc.res_rsv_ruimte_key
WHERE tarief.res_kenmerkreservering_waarde != '261' -- Niet nul
/
/* Formatted on 6-3-2014 13:45:45 (QP5 v5.136.908.31019) */
CREATE OR REPLACE VIEW renk_v_lokaalverhuur_frozen
(
groepering2, -- Huurder/locatie -> factuur
sys_helft,
res_ruimte_key, -- Ruimte
khj_tarief -- K(wartaal), H(alfjaar) of J(aar)
)
AS
SELECT x.groepering2,
x.res_helft,
x.res_ruimte_key,
DECODE (
SUBSTR (x.res_helft, -1),
'1',
DECODE (x.k1 + x.k2,
2, DECODE (x.k3 + x.k4, 2, 'J', 'H'),
'K'), -- Deze helft geen boekingen in beide kwartalen!
DECODE (x.k3 + x.k4,
2, DECODE (x.k1 + x.k2, 2, 'J', 'H'),
'K') -- Deze helft geen boekingen in beide kwartalen!
)
khj
FROM ( SELECT TO_CHAR (x.alg_locatie_key) || '-'
|| COALESCE (bedr_key.res_kenmerkreservering_waarde,
UPPER (TRIM (x.res_rsv_ruimte_omschrijving)),
'[naam]')
groepering2,
x.res_helft,
x.res_ruimte_key,
DECODE (SIGN (SUM (x.k1) - 8), -1, 0, 1) k1,
DECODE (SIGN (SUM (x.k2) - 8), -1, 0, 1) k2,
DECODE (SIGN (SUM (x.k3) - 8), -1, 0, 1) k3,
DECODE (SIGN (SUM (x.k4) - 8), -1, 0, 1) k4
FROM (SELECT rrr.res_rsv_ruimte_key,
rrr.res_rsv_ruimte_omschrijving,
rr.res_ruimte_key,
rga.alg_locatie_key,
TO_CHAR (DECODE (TO_CHAR (rrr.res_rsv_ruimte_tot, 'mm'),
'07', ADD_MONTHS (rrr.res_rsv_ruimte_tot, -12),
rrr.res_rsv_ruimte_tot),
'yyyy')
|| DECODE (TRUNC (ADD_MONTHS (rrr.res_rsv_ruimte_tot, 6), 'yy'),
TRUNC (rrr.res_rsv_ruimte_tot, 'yy'), '1',
'2')
res_helft,
DECODE (TO_CHAR (rrr.res_rsv_ruimte_tot, 'Q'),
1, 1,
0)
k1,
DECODE (TO_CHAR (rrr.res_rsv_ruimte_tot, 'Q'),
2, 1,
0)
k2,
DECODE (TO_CHAR (rrr.res_rsv_ruimte_tot, 'Q'),
3, 1,
0)
k3,
DECODE (TO_CHAR (rrr.res_rsv_ruimte_tot, 'Q'),
4, 1,
0)
k4
FROM res_v_aanwezigrsv_ruimte rrr,
res_ruimte_opstelling rro,
res_ruimte rr,
res_v_res_ruimte_gegevens_all rga
WHERE rrr.res_rsv_ruimte_ordernr IS NOT NULL
AND rrr.res_activiteit_key = 230 -- Schoollokaal
AND rrr.res_status_fo_key IN (1, 2)
AND rrr.res_rsv_ruimte_dirtlevel = 0
AND rrr.res_ruimte_opstel_key =
rro.res_ruimte_opstel_key
AND rro.res_ruimte_key = rr.res_ruimte_key
AND rr.res_discipline_key = 43
AND rr.res_ruimte_key = rga.res_ruimte_key) x
LEFT JOIN -- 424 = Verhuur tarief
res_v_aanwezigkenmerkwaarde tarief
ON x.res_rsv_ruimte_key = tarief.res_rsv_ruimte_key
AND tarief.res_kenmerk_key = 424
LEFT JOIN -- 426 = Regelmatige relatiegegevens
res_v_aanwezigkenmerkwaarde bedr_key
ON x.res_rsv_ruimte_key = bedr_key.res_rsv_ruimte_key
AND bedr_key.res_kenmerk_key = 426
WHERE tarief.res_kenmerkreservering_waarde = '84'
GROUP BY TO_CHAR (x.alg_locatie_key) || '-'
|| COALESCE (
bedr_key.res_kenmerkreservering_waarde,
UPPER (TRIM (x.res_rsv_ruimte_omschrijving)),
'[naam]'),
x.res_helft,
x.res_ruimte_key) x;
/* Formatted on 25-11-2013 11:12:24 (QP5 v5.115.810.9015) */
CREATE OR REPLACE VIEW renk_v_rap_res_frozen
(
hide_f_groepering,
hide_f_mindatum,
hide_f_maxdatum,
hide_f_restype,
fclt_f_naam,
naam,
afd,
tav,
aanhef,
adres,
postcode,
plaats,
factuurdatum,
ordernr,
periode, -- res_helft
dagnaam,
dagnr,
van,
tot,
rvc_oms,
aantal,
stuksprijs,
bruto,
onderwerp,
datumverzoek,
soortverzoek,
tarief_code,
termijnen,
korting,
fclt_f_kenmerk,
behandelaar_naam,
behandelaar_tel,
behandelaar_mail,
res_discipline_key,
res_ruimte_key,
aant_weken
)
AS
SELECT x.groepering1,
MIN (x.sortering1),
MAX (x.sortering1),
x.sortering2,
MIN (x.fclt_f_naam),
MIN (x.naam),
MIN (x.afd),
MIN (x.tav),
MIN (x.aanhef),
MIN (x.adres),
MIN (x.postcode),
MIN (x.plaats),
MIN (x.factuurdatum),
MIN (x.ordernr),
MIN (x.sys_helft),
MIN (x.dagnaam),
x.dagnr,
x.van,
x.tot,
MIN (x.res_voorziening),
MIN (x.aantal),
MIN (x.stuksprijs),
DECODE (x.khj_tarief,
NULL, SUM (x.bruto),
SUM (x.bruto) / COUNT ( * )),
MIN (x.onderwerp),
MIN (x.datumverzoek), -- Langst geleden verzoekdatum!
MIN (x.soortverzoek), -- Schriftelijk wint!
MIN (x.tarief_code),
MIN (x.termijnen),
MIN (x.korting),
x.ordernr kenmerk,
MIN (x.behandelaar_naam),
MIN (x.behandelaar_tel),
MIN (x.behandelaar_mail),
MIN (x.res_discipline_key),
x.res_ruimte_key,
COUNT ( * ) aant_weken
FROM (SELECT x.groepering1,
x.sortering1,
x.sortering2,
x.fclt_f_naam,
x.naam,
x.afd,
x.tav,
x.aanhef,
x.adres,
x.postcode,
x.plaats,
x.factuurdatum,
x.ordernr,
x.sys_helft,
x.dagnaam,
x.dagnr,
TO_CHAR (x.van, 'hh24:mi') van,
TO_CHAR (x.tot, 'hh24:mi') tot,
x.res_voorziening,
x.aantal,
ROUND (
DECODE (
x.res_rsv_prijs,
NULL,
DECODE (
x.res_type,
'1R',
DECODE (
x.tarief_code,
'V', -- Speciale tarieven igv. lokalen!
DECODE (y.khj_tarief,
'H', x.pa, -- Halfjaar
'J', x.pd, -- Jaar
x.pm), -- Vast/Kwartaal
'C',
x.pa, -- Commercieel!
x.po -- Incidenteel!
),
x.ps -- 2V/3C!
),
x.res_rsv_prijs
/ DECODE (x.aantal, NULL, 1, 0, 1, x.aantal)
),
2
)
stuksprijs,
ROUND (
DECODE (
x.res_type,
'1R', -- ZIE OOK ONDERSTAANDE - GEVAARLIJKE - AANNAME!
COALESCE (
x.res_rsv_prijs, -- NULL totdat door MVH "bevroren"
--DECODE (x.res_ruimte_key,
-- 121, CEIL (x.aantal / 4),
-- x.aantal) -- Instructieruimte per dagdeel
x.aantal
* DECODE (
x.tarief_code,
'V', -- Speciale tarieven igv. lokalen!
DECODE (y.khj_tarief,
'H', x.pa, -- Halfjaar
'J', x.pd, -- Jaar
x.pm), -- Vast/Kwartaal
'C',
x.pa, -- Commercieel!
x.po -- Incidenteel!
)
* x.korting
),
COALESCE (x.res_rsv_prijs, x.aantal * x.ps) -- 2V/3C!
),
2
)
bruto,
x.onderwerp,
SUBSTR (x.datumverzoek, 7, 4)
|| SUBSTR (x.datumverzoek, 4, 2)
|| SUBSTR (x.datumverzoek, 1, 2)
datumverzoek,
x.soortverzoek,
x.tarief_code,
x.termijnen,
x.korting,
x.behandelaar_naam,
x.behandelaar_tel,
x.behandelaar_mail,
x.res_discipline_key,
x.res_ruimte_key,
y.khj_tarief
FROM renk_v_verhuurregels_frozen x,
renk_v_lokaalverhuur_frozen y
WHERE x.groepering2 = y.groepering2(+)
AND x.sys_helft = y.sys_helft(+)
AND x.res_ruimte_key = y.res_ruimte_key(+)) x
GROUP BY x.groepering1,
x.sortering2,
x.dagnr,
x.van,
x.tot,
x.res_ruimte_key,
x.khj_tarief;
/* Formatted on 2-8-2013 10:05:45 (QP5 v5.115.810.9015) */
CREATE OR REPLACE VIEW renk_v_rap_freezereserveringen
(
hide_f_groepering,
fclt_f_naam,
aantal,
eerder_kenmerk
)
AS
SELECT v.hide_f_groepering,
v.fclt_f_naam,
SUM (v.aant_weken) aantal,
MAX (v.ordernr)
FROM renk_v_rap_res_actual v
WHERE SUBSTR (v.hide_f_restype, 1, 2) = '1R'
GROUP BY v.hide_f_groepering, v.fclt_f_naam;
-- View voor notificatiejob controleert elk uur of er nieuwe (srtnoti 59)/
-- gewijzigde (srtnoti 60) reserveringen zijn voor zalen B&W kamer, raadzaal
-- en trouwzaal (resp. keys 5, 6 en 7).
-- Met RENK#27558 alleen reserveringen tussen 18:00 en 24:00 controleren.
CREATE OR REPLACE VIEW RENK_V_NOTI_SPEC_RESREMINDER
(
CODE,
SENDER,
RECEIVER,
TEXT,
KEY,
XKEY
)
AS
SELECT DISTINCT
'RESUPD',
NULL,
usr.prs_perslid_key,
(CASE str.fac_srtnotificatie_key
WHEN 60
THEN
'Reservering '
|| rrr.res_reservering_key
|| '/'
|| rrr.res_rsv_ruimte_volgnr
|| ' ('
|| res_rsv_ruimte_van
|| ' - '
|| res_ruimte_nr
|| ') is op '
|| fac_tracking_datum
|| ' gewijzigd door '
|| pf.prs_perslid_naam_full
ELSE
'Reservering '
|| rrr.res_reservering_key
|| '/'
|| rrr.res_rsv_ruimte_volgnr
|| ' ('
|| res_rsv_ruimte_van
|| ' - '
|| res_ruimte_nr
|| ') is op '
|| fac_tracking_datum
|| ' nieuw aangemaakt door '
|| pf.prs_perslid_naam_full
END)
text,
res_reservering_key,
res_rsv_ruimte_key
FROM res_rsv_ruimte rrr,
res_ruimte_opstelling rro,
res_ruimte rr,
fac_tracking tr,
fac_srtnotificatie str,
prs_v_perslid_fullnames_all pf,
(SELECT DISTINCT p.prs_perslid_key
FROM fac_groeprechten g,
fac_functie f,
fac_gebruikersgroep gg,
prs_v_aanwezigperslid p
WHERE g.fac_functie_key = f.fac_functie_key
AND g.fac_groep_key = gg.fac_groep_key
AND p.prs_perslid_key = gg.prs_perslid_key
AND fac_functie_code = 'WEB_USER02') usr
WHERE rrr.res_ruimte_opstel_key = rro.res_ruimte_opstel_key
AND rro.res_ruimte_key = rr.res_ruimte_key
AND res_rsv_ruimte_verwijder IS NULL
AND rr.res_ruimte_key IN (5, 6, 7)
AND tr.fac_srtnotificatie_key = str.fac_srtnotificatie_key
AND tr.prs_perslid_key = pf.prs_perslid_key(+)
AND ( (tr.fac_tracking_refkey = rrr.res_rsv_ruimte_key
AND str.fac_srtnotificatie_xmlnode IN
('reservering', 'xreservering')))
AND str.fac_srtnotificatie_key IN (59, 60)
AND tr.fac_tracking_datum >
(SELECT fac_notificatie_job_nextrun
- fac_notificatie_job_interval / 24
FROM fac_notificatie_job
WHERE fac_notificatie_job_view =
'RENK_V_NOTI_SPEC_RESREMINDER')
AND ( (TO_CHAR (rrr.res_rsv_ruimte_van, 'HH24MISS') BETWEEN '180000'
AND '235959')
OR (TO_CHAR (rrr.res_rsv_ruimte_tot, 'HH24MISS') BETWEEN '180000'
AND '235959'));
-- RENK#30936 RTMs
/* Formatted on 17-11-2014 17:30:24 (QP5 v5.136.908.31019) */
CREATE OR REPLACE VIEW RENK_V_GRAPH_NEW12M_AANVR
(
FCLT_XAS_,
FCLT_YAS_,
VOLGORDE
)
AS
SELECT DECODE (TO_CHAR (mld_melding_datum, 'mm'),
'01', 'Januari',
'02', 'Februari',
'03', 'Maart',
'04', 'April',
'05', 'Mei',
'06', 'Juni',
'07', 'Juli',
'08', 'Augustus',
'09', 'September',
'10', 'Oktober',
'11', 'November',
'December'),
COUNT ( * ),
TO_CHAR (mld_melding_datum, 'yyyymm')
FROM mld_melding m, mld_stdmelding sm, mld_discipline md
WHERE m.mld_melding_datum BETWEEN ADD_MONTHS (TRUNC (SYSDATE, 'mm'), -11)
AND SYSDATE
AND m.mld_stdmelding_key = sm.mld_stdmelding_key
AND sm.mld_ins_discipline_key = md.ins_discipline_key
AND md.ins_srtdiscipline_key = 44 -- Aanvraag
GROUP BY TO_CHAR (mld_melding_datum, 'mm'),
TO_CHAR (mld_melding_datum, 'yyyymm');
CREATE OR REPLACE VIEW RENK_V_GRAPH_NEW12M_BODES
(
FCLT_XAS_,
FCLT_YAS_,
VOLGORDE
)
AS
SELECT DECODE (TO_CHAR (mld_melding_datum, 'mm'),
'01', 'Januari',
'02', 'Februari',
'03', 'Maart',
'04', 'April',
'05', 'Mei',
'06', 'Juni',
'07', 'Juli',
'08', 'Augustus',
'09', 'September',
'10', 'Oktober',
'11', 'November',
'December'),
COUNT ( * ),
TO_CHAR (mld_melding_datum, 'yyyymm')
FROM mld_melding m, mld_stdmelding sm, mld_discipline md
WHERE m.mld_melding_datum BETWEEN ADD_MONTHS (TRUNC (SYSDATE, 'mm'), -11)
AND SYSDATE
AND m.mld_stdmelding_key = sm.mld_stdmelding_key
AND sm.mld_ins_discipline_key = md.ins_discipline_key
AND md.ins_srtdiscipline_key = 1 -- Melding voor Bodes (intern)
GROUP BY TO_CHAR (mld_melding_datum, 'mm'),
TO_CHAR (mld_melding_datum, 'yyyymm');
CREATE OR REPLACE VIEW RENK_V_GRAPH_NEW12M_VASTG
(
FCLT_XAS_,
FCLT_YAS_,
VOLGORDE
)
AS
SELECT DECODE (TO_CHAR (mld_melding_datum, 'mm'),
'01', 'Januari',
'02', 'Februari',
'03', 'Maart',
'04', 'April',
'05', 'Mei',
'06', 'Juni',
'07', 'Juli',
'08', 'Augustus',
'09', 'September',
'10', 'Oktober',
'11', 'November',
'December'),
COUNT ( * ),
TO_CHAR (mld_melding_datum, 'yyyymm')
FROM mld_melding m, mld_stdmelding sm, mld_discipline md
WHERE m.mld_melding_datum BETWEEN ADD_MONTHS (TRUNC (SYSDATE, 'mm'), -11)
AND SYSDATE
AND m.mld_stdmelding_key = sm.mld_stdmelding_key
AND sm.mld_ins_discipline_key = md.ins_discipline_key
AND md.ins_srtdiscipline_key = 61 -- Melding Vastgoed (extern)
GROUP BY TO_CHAR (mld_melding_datum, 'mm'),
TO_CHAR (mld_melding_datum, 'yyyymm');
CREATE OR REPLACE VIEW RENK_V_GRAPH_BHNDLR_OPEN
(
FCLT_XAS_,
FCLT_YAS_,
FCLT_YAS2_,
VOLGORDE
)
AS
SELECT DECODE (
o.mld_melding_key,
NULL,
x.behandelaar,
DECODE (o.mld_statusopdr_key,
3, o.budgethouder, -- Nvt. bij RENK?
10, 'Beheerder', -- Nvt. bij RENK!
o.uitvoerende))
behandelaar,
COUNT ( * ) - SUM (uitvoeringoptijd) telaat,
SUM (uitvoeringoptijd) optijd,
0 - COUNT ( * ) volgorde
FROM (SELECT m.mld_melding_key,
m.mld_melding_status,
p.prs_perslid_naam_full behandelaar,
DECODE (
SIGN(m.mld_melding_einddatum_std
- TRUNC (SYSDATE, 'mi')),
-1,
0,
1)
uitvoeringoptijd
FROM mld_melding m,
mld_stdmelding sm,
mld_discipline md,
prs_v_perslid_fullnames_all p
WHERE m.mld_stdmelding_key = sm.mld_stdmelding_key
AND sm.mld_ins_discipline_key = md.ins_discipline_key
--AND md.ins_srtdiscipline_key = -1
AND m.mld_melding_status IN (2, 3, 4, 7, 0) -- 2-Ingevoerd, 3-Ingezien, 4-Geaccepteerd, 7-Uitgegeven, 0-Pending
AND m.mld_melding_behandelaar_key = p.prs_perslid_key) x
LEFT JOIN -- Gegevens van lopende opdracht met laagste volgnummer!
(SELECT o.mld_melding_key,
o.mld_statusopdr_key,
COALESCE (b.prs_bedrijf_naam, p1.prs_perslid_naam_full)
uitvoerende,
p2.prs_perslid_naam_full budgethouder
FROM mld_opdr o,
prs_bedrijf b, -- Externe leverancier
prs_v_perslid_fullnames_all p1, -- Interne uitvoerende
prs_v_perslid_fullnames_all p2 -- Budgethouder
WHERE o.mld_statusopdr_key IN (3, 4, 5, 8, 10) -- 3-Ter fiattering, 4-Gefiatteerd, 5-Uitgegeven, 8-Geaccepteerd, 10-Ter goedkeuring
AND o.mld_uitvoerende_keys = b.prs_bedrijf_key(+)
AND o.mld_uitvoerende_keys = p1.prs_perslid_key(+)
AND prs.getkpverantwoordelijke (o.prs_kostenplaats_key,
1,
-1) =
p2.prs_perslid_key(+)
AND NOT EXISTS
(SELECT 1
FROM mld_opdr
WHERE mld_melding_key = o.mld_melding_key
AND mld_opdr_bedrijfopdr_volgnr <
o.mld_opdr_bedrijfopdr_volgnr)) o
ON x.mld_melding_key = o.mld_melding_key
GROUP BY DECODE (
o.mld_melding_key,
NULL,
x.behandelaar,
DECODE (o.mld_statusopdr_key,
3, o.budgethouder,
10, 'Beheerder',
o.uitvoerende))
UNION ALL -- Extra kolom zodat voorgaande kolommen helemaal getoond?
SELECT ' ' behandelaar,
0 telaat,
0 optijd,
0 volgorde
FROM DUAL;
CREATE OR REPLACE VIEW RENK_V_GRAPH_VAKGRP_OPEN
(
FCLT_XAS_,
FCLT_YAS_,
FCLT_URL
--FCLT_3D_DISCIPLINE_KEY
)
AS
SELECT sd.ins_srtdiscipline_prefix
|| '-'
|| md.ins_discipline_omschrijving,
COUNT ( * ),
'appl/mld/mld_search.asp?urole=fo'
|| '&'
|| 'autosearch=1'
|| '&'
|| 'disc_key_str='
|| md.ins_discipline_key
--md.ins_discipline_key
FROM mld_melding m,
mld_stdmelding sm,
mld_discipline md,
ins_srtdiscipline sd
WHERE m.mld_stdmelding_key = sm.mld_stdmelding_key
AND sm.mld_ins_discipline_key = md.ins_discipline_key
AND md.ins_srtdiscipline_key = sd.ins_srtdiscipline_key
--AND sd.ins_srtdiscipline_key = -1
AND m.mld_melding_status IN (2, 3, 4, 7, 0) -- 2-Ingevoerd, 3-Ingezien, 4-Geaccepteerd, 7-Uitgegeven, 0-Pending
GROUP BY sd.ins_srtdiscipline_prefix
|| '-'
|| md.ins_discipline_omschrijving,
md.ins_discipline_key
UNION ALL -- Extra kolom zodat voorgaande kolommen helemaal getoond?
SELECT ' ', 0, ' ' FROM DUAL;
CREATE OR REPLACE VIEW RENK_V_GRAPH_PPI_ACP
(
FCLT_XAS_,
FCLT_YAS_
)
AS
SELECT SUM (acceptatieoptijd) aantal, COUNT (mld_key) totaal
FROM (SELECT DISTINCT
m.mld_melding_key mld_key,
--DECODE (
-- SIGN(m.mld_melding_acceptdatum_std - TRUNC (SYSDATE, 'mi')),
-- -1, 0,
-- 1)
CASE SIGN(fac.datumtijdplusuitvoertijd (
m.mld_melding_datum,
m.mld_melding_t_accepttijd.tijdsduur,
m.mld_melding_t_accepttijd.eenheid
)
- SYSDATE)
WHEN -1
THEN
0
ELSE
1
END
acceptatieoptijd
FROM mld_melding m
--WHERE m.mld_melding_status IN (2, 3) -- 2-Ingevoerd, 3-Ingezien
WHERE m.mld_melding_status IN (2, 3, 4, 7, 0) -- 2-Ingevoerd, 3-Ingezien, 4-Geaccepteerd, 7-Uitgegeven, 0-Pending
);
CREATE OR REPLACE VIEW RENK_V_GRAPH_PPI_AFM
(
FCLT_XAS_,
FCLT_YAS_
)
AS
SELECT SUM (uitvoeringoptijd) aantal, COUNT (mld_key) totaal
FROM (SELECT DISTINCT
m.mld_melding_key mld_key,
--DECODE (
-- SIGN(m.mld_melding_einddatum_std - TRUNC (SYSDATE, 'mi')),
-- -1, 0,
-- 1)
CASE SIGN(fac.datumtijdplusuitvoertijd (
m.mld_melding_datum,
m.mld_melding_t_uitvoertijd.tijdsduur,
m.mld_melding_t_uitvoertijd.eenheid
)
- SYSDATE)
WHEN -1
THEN
0
ELSE
1
END
uitvoeringoptijd
FROM mld_melding m
WHERE m.mld_melding_status IN (2, 3, 4, 7, 0) -- 2-Ingevoerd, 3-Ingezien, 4-Geaccepteerd, 7-Uitgegeven, 0-Pending
);
-- RENK#35126 Extra CUST contractreminder
CREATE OR REPLACE FORCE VIEW renk_v_noti_cntreminder
(
code,
sender,
receiver,
text,
key,
par1,
par2,
xkey
)
AS
SELECT '',
'',
c.prs_perslid_key_beh,
'Rapp<EFBFBD>l: Contract ' || c.cnt_contract_nummer_intern
|| DECODE (cnt_contract_versie,
NULL, '',
'.' || cnt_contract_versie)
|| ' ('
|| c.cnt_contract_omschrijving
|| ' '
|| b.prs_bedrijf_naam
|| ')'
|| ' moet uiterlijk per '
|| TO_CHAR (cnt.cnt_getopzegdatum (c.cnt_contract_key),
'DD-MM-YYYY')
|| ' worden verlengd of opgezegd.',
c.cnt_contract_key,
c.cnt_contract_nummer_intern,
cnt.cnt_getopzegdatum (c.cnt_contract_key),
NULL
FROM cnt_v_aanwezigcontract c, prs_bedrijf b
WHERE b.prs_bedrijf_key = c.cnt_prs_bedrijf_key
AND cnt_contract_verwijder IS NULL
AND cnt_contract_status = 0
AND (SYSDATE BETWEEN cnt.cnt_getrappeldatum (c.cnt_contract_key)
AND cnt.cnt_getopzegdatum (c.cnt_contract_key))
UNION ALL
SELECT '',
'',
c.prs_perslid_key_beh,
'Rapp<EFBFBD>l: Contract ' || c.cnt_contract_nummer_intern
|| DECODE (cnt_contract_versie,
NULL, '',
'.' || cnt_contract_versie)
|| ' ('
|| c.cnt_contract_omschrijving
|| ' '
|| b.prs_bedrijf_naam
|| ')'
|| ' de extra rapp<70>ldatum '
|| TO_CHAR (opz.waarde, 'DD-MM-YYYY')
|| ' zal binnenkort verstrijken.',
c.cnt_contract_key,
c.cnt_contract_nummer_intern,
cnt.cnt_getopzegdatum (c.cnt_contract_key),
NULL
FROM cnt_v_aanwezigcontract c,
prs_bedrijf b,
(SELECT ckc.cnt_contract_key,
fac.safe_to_date (cnt_kenmerkcontract_waarde,
'DD-MM-YYYY')
waarde
FROM cnt_kenmerkcontract ckc, cnt_kenmerk ck
WHERE ckc.cnt_kenmerk_key = ck.cnt_kenmerk_key
AND ck.cnt_srtkenmerk_key = 161
AND ckc.cnt_kenmerkcontract_waarde IS NOT NULL
AND ckc.cnt_kenmerkcontract_verwijder IS NULL) opz
WHERE b.prs_bedrijf_key = c.cnt_prs_bedrijf_key
AND cnt_contract_verwijder IS NULL
AND cnt_contract_status = 0
AND opz.cnt_contract_key = c.cnt_contract_key
AND opz.waarde >= TRUNC (SYSDATE + 7)
AND opz.waarde <= TRUNC (SYSDATE + 14);
-- RENK#52155 Rapport Contracten met relatiegegevens
CREATE OR REPLACE VIEW RENK_V_CONTRACTEN
(
CONTRACTNR,
SOORT_CONTRACT,
BESCHRIJVING,
OMSCHRIJVING,
VAN,
TOT,
OPMERKING,
BEDRIJFSNAAM,
LEVERANCIERSNR,
ADRES,
POSTCODE,
PLAATS,
LAND,
POSTADRES,
POSTADRES_PC,
POSTADRES_PLAATS,
POSTADRES_LAND,
CONTACTPERSOON,
TELEFOON,
FAX
)
AS
SELECT c.cnt_contract_key,
(select ins_tab_discipline.ins_discipline_omschrijving
from ins_tab_discipline
where ins_tab_discipline.ins_discipline_key=c.ins_discipline_key),
c.cnt_contract_omschrijving,c.cnt_contract_document, c.cnt_contract_looptijd_van, cnt_contract_looptijd_tot, c.cnt_contract_opmerking,
b.prs_bedrijf_naam, b.prs_leverancier_nr, b.prs_bedrijf_bezoek_adres, b.prs_bedrijf_bezoek_postcode, b.prs_bedrijf_bezoek_plaats, b.prs_bedrijf_bezoek_land, b.prs_bedrijf_post_adres, b.prs_bedrijf_post_postcode, b.prs_bedrijf_post_plaats, b.prs_bedrijf_post_land,
b.prs_bedrijf_contact_persoon, b.prs_bedrijf_contact_telefoon, b.prs_bedrijf_contact_fax
FROM cnt_contract c, prs_bedrijf b
WHERE
c.cnt_prs_bedrijf_key =b.PRS_BEDRIJF_KEY
and c.CNT_CONTRACT_VERWIJDER is null;
------ 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