AAZC#34674 -- ZKHM toegevoegd.
svn path=/Customer/trunk/; revision=27765
This commit is contained in:
816
AA/ZKHM/zkhm.sql
Normal file
816
AA/ZKHM/zkhm.sql
Normal file
@@ -0,0 +1,816 @@
|
||||
-- Script containing customer specific configuration sql statements for zkhm: Arcadis Aqumen Facility Management
|
||||
-- (c) 2005-2007 Dijkoraad IT bv
|
||||
-- $Revision$
|
||||
-- $Id$
|
||||
--
|
||||
-- Support: +31 53 4800700
|
||||
|
||||
@aaxx.sql;
|
||||
|
||||
SPOOL xzkhm.lst
|
||||
SET ECHO ON
|
||||
|
||||
-- script om dagelijks terugkerende scripts aan te roepen.
|
||||
CREATE OR REPLACE PROCEDURE zkhm_select_daily_task (p_applname IN VARCHAR2, p_applrun IN VARCHAR2)
|
||||
AS
|
||||
BEGIN
|
||||
aaxx_daily_task (p_applname, p_applrun);
|
||||
END;
|
||||
/
|
||||
|
||||
-- budgettracker overrules
|
||||
CREATE OR REPLACE VIEW zkhm_v_export_budget_tracker (RESULT, result_order) AS SELECT RESULT, result_order FROM aaxx_v_export_budget_tracker;
|
||||
|
||||
-- export overrules
|
||||
-- exact
|
||||
CREATE OR REPLACE VIEW zkhm_v_export_exact (RESULT, result_order) AS SELECT RESULT, result_order FROM aaxx_v_export_exact_xml;
|
||||
CREATE OR REPLACE PROCEDURE zkhm_select_exact (
|
||||
p_applname IN VARCHAR2,
|
||||
p_applrun IN VARCHAR2
|
||||
)
|
||||
AS
|
||||
BEGIN
|
||||
aaxx_select_exact_xml(p_applname, p_applrun);
|
||||
END;
|
||||
/
|
||||
|
||||
CREATE OR REPLACE PROCEDURE zkhm_export_exact (
|
||||
p_applname IN VARCHAR2,
|
||||
p_applrun IN VARCHAR2,
|
||||
p_filedir IN VARCHAR2,
|
||||
p_filename IN VARCHAR2
|
||||
)
|
||||
AS
|
||||
BEGIN
|
||||
aaxx_export_exact(p_applname, p_applrun, p_filedir, p_filename);
|
||||
END;
|
||||
/
|
||||
|
||||
CREATE OR REPLACE VIEW zkhm_v_export_verwerk_exact (RESULT, result_order) AS SELECT RESULT, result_order FROM aaxx_v_export_verwerk_exact;
|
||||
CREATE OR REPLACE PROCEDURE zkhm_export_verwerk_exact (
|
||||
p_applname IN VARCHAR2,
|
||||
p_applrun IN VARCHAR2,
|
||||
p_filedir IN VARCHAR2,
|
||||
p_filename IN VARCHAR2
|
||||
)
|
||||
AS
|
||||
BEGIN
|
||||
aaxx_export_verwerk_exact(p_applname, p_applrun, p_filedir, p_filename);
|
||||
END;
|
||||
/
|
||||
|
||||
-- bundel catering
|
||||
CREATE OR REPLACE VIEW zkhm_v_export_bundel_catering (RESULT, result_order) AS SELECT RESULT, result_order FROM aaxx_v_export_bundel_catering;
|
||||
|
||||
|
||||
-- exact verkoop
|
||||
CREATE OR REPLACE VIEW zkhm_v_export_exact_verkoop (RESULT, result_order) AS SELECT RESULT, result_order FROM aaxx_v_export_exact_verkoop;
|
||||
CREATE OR REPLACE PROCEDURE zkhm_select_exact_verkoop (
|
||||
p_applname IN VARCHAR2,
|
||||
p_applrun IN VARCHAR2
|
||||
)
|
||||
AS
|
||||
BEGIN
|
||||
aaxx_select_exact_verkoop(p_applname, p_applrun, to_char(sysdate, 'yyyy'));
|
||||
END;
|
||||
/
|
||||
CREATE OR REPLACE PROCEDURE zkhm_export_exact_verkoop (
|
||||
p_applname IN VARCHAR2,
|
||||
p_applrun IN VARCHAR2,
|
||||
p_filedir IN VARCHAR2,
|
||||
p_filename IN VARCHAR2
|
||||
)
|
||||
AS
|
||||
BEGIN
|
||||
aaxx_export_exact_verkoop(p_applname, p_applrun, p_filedir, p_filename, to_char(sysdate, 'yyyy'));
|
||||
END;
|
||||
/
|
||||
|
||||
-- exact verkoop over het vorige jaar
|
||||
CREATE OR REPLACE VIEW zkhm_v_export_exact_verkoop_vj (RESULT, result_order) AS SELECT RESULT, result_order FROM aaxx_v_export_exact_verkoop;
|
||||
CREATE OR REPLACE PROCEDURE zkhm_select_exact_verkoop_vj (
|
||||
p_applname IN VARCHAR2,
|
||||
p_applrun IN VARCHAR2
|
||||
)
|
||||
AS
|
||||
BEGIN
|
||||
aaxx_select_exact_verkoop(p_applname, p_applrun, to_char(to_number(to_char(sysdate, 'yyyy'))-1));
|
||||
END;
|
||||
/
|
||||
CREATE OR REPLACE PROCEDURE zkhm_export_exact_verkoop_vj (
|
||||
p_applname IN VARCHAR2,
|
||||
p_applrun IN VARCHAR2,
|
||||
p_filedir IN VARCHAR2,
|
||||
p_filename IN VARCHAR2
|
||||
)
|
||||
AS
|
||||
BEGIN
|
||||
aaxx_export_exact_verkoop(p_applname, p_applrun, p_filedir, p_filename, to_char(to_number(to_char(sysdate, 'yyyy'))-1));
|
||||
END;
|
||||
/
|
||||
|
||||
CREATE OR REPLACE PROCEDURE zkhm_import_contract (p_import_key IN NUMBER)
|
||||
AS
|
||||
BEGIN
|
||||
aaxx_import_contract(p_import_key);
|
||||
END;
|
||||
/
|
||||
|
||||
CREATE OR REPLACE PROCEDURE zkhm_update_contract (p_import_key IN NUMBER)
|
||||
AS
|
||||
BEGIN
|
||||
aaxx_update_contract(p_import_key);
|
||||
END;
|
||||
/
|
||||
|
||||
CREATE OR REPLACE PROCEDURE zkhm_import_ruimte (p_import_key IN NUMBER)
|
||||
AS
|
||||
BEGIN
|
||||
aaxx_import_ruimte(p_import_key);
|
||||
END;
|
||||
/
|
||||
|
||||
CREATE OR REPLACE PROCEDURE zkhm_update_ruimte (p_import_key IN NUMBER)
|
||||
AS
|
||||
BEGIN
|
||||
aaxx_update_ruimte(p_import_key);
|
||||
END;
|
||||
/
|
||||
|
||||
|
||||
CREATE OR REPLACE PROCEDURE zkhm_export_bundel_catering (
|
||||
p_applname IN VARCHAR2,
|
||||
p_applrun IN VARCHAR2,
|
||||
p_filedir IN VARCHAR2,
|
||||
p_filename IN VARCHAR2
|
||||
)
|
||||
AS
|
||||
BEGIN
|
||||
aaxx_export_bundel_catering(p_applname, p_applrun, p_filedir, p_filename);
|
||||
END;
|
||||
/
|
||||
|
||||
-- exact projecturen (XML)
|
||||
CREATE OR REPLACE VIEW zkhm_v_export_exact_uren (result, result_order)
|
||||
AS SELECT result, result_order FROM aaxx_v_export_exact_uren_xml;
|
||||
CREATE OR REPLACE PROCEDURE zkhm_select_exact_uren (
|
||||
p_applname IN VARCHAR2,
|
||||
p_applrun IN VARCHAR2
|
||||
)
|
||||
AS
|
||||
BEGIN
|
||||
aaxx_select_exact_uren_xml(p_applname, p_applrun, '');
|
||||
END;
|
||||
/
|
||||
|
||||
-- verwerk exact projecturen (XML)
|
||||
CREATE OR REPLACE PROCEDURE zkhm_export_verwerk_exact_uren (
|
||||
p_applname IN VARCHAR2,
|
||||
p_applrun IN VARCHAR2,
|
||||
p_filedir IN VARCHAR2,
|
||||
p_filename IN VARCHAR2
|
||||
)
|
||||
AS
|
||||
BEGIN
|
||||
aaxx_export_verwerk_exact_uren(p_applname, p_applrun, p_filedir, p_filename, '');
|
||||
END;
|
||||
/
|
||||
|
||||
|
||||
|
||||
CREATE OR REPLACE PROCEDURE zkhm_import_perslid_mut (p_import_key IN NUMBER)
|
||||
AS
|
||||
c_fielddelimitor VARCHAR2 (1) := ';';
|
||||
v_newline VARCHAR2 (1000); -- Input line
|
||||
v_errormsg VARCHAR2 (1000);
|
||||
v_errorhint VARCHAR2 (1000);
|
||||
oracle_err_num NUMBER;
|
||||
oracle_err_mes VARCHAR2 (200);
|
||||
header_is_valid NUMBER;
|
||||
v_count NUMBER;
|
||||
v_ongeldig NUMBER (1);
|
||||
v_mode NUMBER (1);
|
||||
v_aanduiding VARCHAR2 (200);
|
||||
v_all_null BOOLEAN;
|
||||
v_count_error NUMBER (10);
|
||||
v_count_tot NUMBER (10);
|
||||
v_count_import NUMBER (10);
|
||||
-- De importvelden:
|
||||
v_alg_locatie_code VARCHAR2 (256);
|
||||
v_alg_gebouw_code VARCHAR2 (256);
|
||||
v_alg_verdieping_volgnr VARCHAR2 (256);
|
||||
v_alg_verdieping_volgnr_num NUMBER (3);
|
||||
v_alg_ruimte_nr VARCHAR2 (256);
|
||||
v_prs_werkplek_volgnr VARCHAR2 (256);
|
||||
v_prs_werkplek_volgnr_num NUMBER (3);
|
||||
v_prs_werkplek_omschrijving VARCHAR2 (256);
|
||||
v_prs_afdeling_naam VARCHAR2 (256);
|
||||
v_prs_afdeling_omschrijving VARCHAR2 (256);
|
||||
v_prs_perslid_naam VARCHAR2 (256);
|
||||
v_prs_perslid_tussenvoegsel VARCHAR2 (256);
|
||||
v_prs_perslid_voorletters VARCHAR2 (256);
|
||||
v_prs_perslid_voornaam VARCHAR2 (256);
|
||||
v_prs_perslid_titel VARCHAR2 (256);
|
||||
v_prs_perslid_telefoonnr VARCHAR2 (256);
|
||||
v_prs_perslid_mobiel VARCHAR2 (256);
|
||||
v_prs_perslid_email VARCHAR2 (256);
|
||||
v_prs_srtperslid_omschrijving VARCHAR2 (256);
|
||||
v_prs_perslid_nr VARCHAR2 (256);
|
||||
v_prs_perslid_oslogin VARCHAR2 (256);
|
||||
v_old_login VARCHAR2 (256);
|
||||
v_dummy VARCHAR2 (256);
|
||||
v_tekst VARCHAR2 (4000);
|
||||
|
||||
CURSOR c1
|
||||
IS
|
||||
SELECT *
|
||||
FROM fac_imp_file
|
||||
WHERE fac_import_key = p_import_key
|
||||
ORDER BY fac_imp_file_index;
|
||||
|
||||
-- cursor om de tussenvoegsels goed in te kunnen vullen. Deze staan nu achter de achternaam.
|
||||
CURSOR c (p_persoonachternaam VARCHAR2)
|
||||
IS
|
||||
SELECT fac_usrdata_omschr
|
||||
FROM fac_usrdata u
|
||||
WHERE UPPER(p_persoonachternaam) LIKE '%' || ' ' || UPPER(u.fac_usrdata_omschr)
|
||||
AND fac_usrtab_key = 61
|
||||
ORDER BY LENGTH (fac_usrdata_omschr) DESC;
|
||||
BEGIN
|
||||
DELETE FROM fac_imp_perslid;
|
||||
|
||||
COMMIT;
|
||||
v_count_error := 0;
|
||||
header_is_valid := 0;
|
||||
v_count_tot := 0;
|
||||
v_count_import := 0;
|
||||
v_aanduiding := '';
|
||||
v_old_login := 'QueQeLeQue';
|
||||
|
||||
FOR rec1 IN c1
|
||||
LOOP
|
||||
BEGIN
|
||||
v_errormsg := 'Fout FETCH te importeren rij';
|
||||
|
||||
v_newline := rec1.fac_imp_file_line;
|
||||
v_errormsg := '';
|
||||
v_errorhint := 'Fout opvragen te importeren rij';
|
||||
v_aanduiding := '';
|
||||
v_ongeldig := 0;
|
||||
|
||||
-- Lees alle veldwaarden
|
||||
-- 01
|
||||
fac.imp_getfield (v_newline, c_fielddelimitor, v_prs_perslid_naam);
|
||||
-- 02
|
||||
fac.imp_getfield (v_newline, c_fielddelimitor, v_prs_perslid_oslogin);
|
||||
-- 03
|
||||
fac.imp_getfield (v_newline, c_fielddelimitor, v_prs_perslid_telefoonnr);
|
||||
-- 04
|
||||
fac.imp_getfield (v_newline, c_fielddelimitor, v_prs_perslid_email);
|
||||
-- 05
|
||||
fac.imp_getfield (v_newline, c_fielddelimitor, v_alg_ruimte_nr);
|
||||
-- 06
|
||||
fac.imp_getfield (v_newline, c_fielddelimitor, v_prs_srtperslid_omschrijving);
|
||||
-- 07
|
||||
fac.imp_getfield (v_newline, c_fielddelimitor, v_prs_afdeling_omschrijving);
|
||||
-- 08 kostenplaats
|
||||
fac.imp_getfield (v_newline, c_fielddelimitor, v_prs_afdeling_naam);
|
||||
-- 09
|
||||
fac.imp_getfield (v_newline, c_fielddelimitor, v_prs_perslid_nr);
|
||||
-- 10 Vestiging
|
||||
fac.imp_getfield (v_newline, c_fielddelimitor, v_dummy);
|
||||
-- 11 Gebouw
|
||||
fac.imp_getfield (v_newline, c_fielddelimitor, v_dummy);
|
||||
-- 12
|
||||
fac.imp_getfield (v_newline, c_fielddelimitor, v_alg_gebouw_code);
|
||||
-- 13
|
||||
fac.imp_getfield (v_newline, c_fielddelimitor, v_tekst);
|
||||
|
||||
--
|
||||
v_aanduiding := v_prs_perslid_naam || ' - ';
|
||||
|
||||
-- Controleer alle veldwaarde
|
||||
IF (header_is_valid = 0)
|
||||
THEN
|
||||
IF UPPER (v_prs_perslid_naam) = 'PERSOON'
|
||||
AND UPPER (v_prs_perslid_oslogin) = 'LOGINNAAMNETWERK'
|
||||
AND UPPER (v_alg_gebouw_code) = 'CODE BOUWDEEL'
|
||||
THEN
|
||||
IF v_tekst IS NULL -- tekst kolom bevat cr/lf die niet door de import begrepen worden.
|
||||
THEN
|
||||
header_is_valid := 1;
|
||||
END IF;
|
||||
END IF;
|
||||
ELSE
|
||||
v_count_tot := v_count_tot + 1;
|
||||
v_errorhint := 'Ongeldige kamer';
|
||||
|
||||
v_alg_locatie_code := NULL;
|
||||
v_alg_gebouw_code := NULL;
|
||||
v_alg_verdieping_volgnr := NULL;
|
||||
IF v_alg_ruimte_nr IS NOT NULL
|
||||
THEN
|
||||
BEGIN
|
||||
SELECT alg_locatie_code, alg_gebouw_upper, alg_verdieping_volgnr
|
||||
INTO v_alg_locatie_code, v_alg_gebouw_code, v_alg_verdieping_volgnr
|
||||
FROM alg_v_ruimte_gegevens
|
||||
WHERE alg_ruimte_nr = v_alg_ruimte_nr;
|
||||
|
||||
EXCEPTION WHEN OTHERS THEN
|
||||
oracle_err_num := SQLCODE;
|
||||
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
|
||||
v_errormsg := 'Error ' || oracle_err_num || '/' || oracle_err_mes;
|
||||
fac.imp_writelog (p_import_key, 'W', v_aanduiding || ' [' || v_alg_ruimte_nr || ']', v_errorhint);
|
||||
v_alg_ruimte_nr := NULL;
|
||||
END;
|
||||
END IF;
|
||||
--
|
||||
v_errorhint := 'Ongeldige afdelingscode';
|
||||
IF v_prs_afdeling_naam IS NULL OR v_prs_afdeling_naam = 'BLANKO'
|
||||
THEN
|
||||
v_prs_afdeling_naam := 'Onbekend';
|
||||
ELSE
|
||||
v_prs_afdeling_naam := SUBSTR(v_prs_afdeling_naam, 1, 4);
|
||||
END IF;
|
||||
|
||||
BEGIN
|
||||
SELECT prs_afdeling_naam
|
||||
INTO v_prs_afdeling_naam
|
||||
FROM prs_afdeling
|
||||
WHERE UPPER(prs_afdeling_naam) = UPPER(v_prs_afdeling_naam)
|
||||
AND prs_afdeling_verwijder IS NULL;
|
||||
EXCEPTION WHEN NO_DATA_FOUND THEN
|
||||
fac.imp_writelog (p_import_key, 'E', v_aanduiding, v_prs_afdeling_naam || ' - Afdeling kan niet gevonden worden!');
|
||||
v_prs_afdeling_naam := NULL;
|
||||
END;
|
||||
|
||||
--
|
||||
v_errorhint := 'Ongeldige naam persoon';
|
||||
|
||||
-- verwijder de tussenvoegsels
|
||||
v_prs_perslid_tussenvoegsel := NULL;
|
||||
FOR rec1 IN c (v_prs_perslid_naam)
|
||||
LOOP
|
||||
BEGIN
|
||||
IF v_old_login <> v_prs_perslid_oslogin THEN
|
||||
v_prs_perslid_tussenvoegsel := rec1.fac_usrdata_omschr;
|
||||
v_prs_perslid_naam := TRIM(SUBSTR (v_prs_perslid_naam, 1, INSTR(v_prs_perslid_naam, rec1.fac_usrdata_omschr)-2));
|
||||
v_old_login := v_prs_perslid_oslogin;
|
||||
END IF;
|
||||
END;
|
||||
END LOOP;
|
||||
|
||||
v_prs_perslid_voorletters := NULL;
|
||||
IF INSTR(v_prs_perslid_naam, ',') >0 THEN
|
||||
-- achternaam bevat ook voornaam
|
||||
v_prs_perslid_voornaam := substr(v_prs_perslid_naam, INSTR(v_prs_perslid_naam, ',')+2);
|
||||
IF INSTR(v_prs_perslid_voornaam, '.') <> 0
|
||||
THEN -- voorletters ipv voornaam
|
||||
v_prs_perslid_voorletters := SUBSTR(v_prs_perslid_voornaam,1,10);
|
||||
v_prs_perslid_voornaam := NULL;
|
||||
END IF;
|
||||
v_prs_perslid_naam := substr(v_prs_perslid_naam, 1, INSTR(v_prs_perslid_naam, ',') -1);
|
||||
END IF;
|
||||
|
||||
-- todo: moeten we nog checken op voorletters?
|
||||
|
||||
--
|
||||
v_errorhint := 'Ongeldige telefoonnr. persoon';
|
||||
v_prs_perslid_telefoonnr := TRIM (v_prs_perslid_telefoonnr);
|
||||
|
||||
IF LENGTH (v_prs_perslid_telefoonnr) > 15
|
||||
THEN
|
||||
v_prs_perslid_telefoonnr := SUBSTR (v_prs_perslid_telefoonnr, 1, 15);
|
||||
fac.imp_writelog (p_import_key,
|
||||
'W',
|
||||
v_aanduiding || 'Telefoonnr. persoon is te lang',
|
||||
'Aanduiding wordt afgebroken tot [' || v_prs_perslid_telefoonnr || ']'
|
||||
);
|
||||
END IF;
|
||||
|
||||
--
|
||||
v_errorhint := 'Ongeldige email persoon';
|
||||
v_prs_perslid_email := TRIM (v_prs_perslid_email);
|
||||
|
||||
IF LENGTH (v_prs_perslid_email) > 200
|
||||
THEN
|
||||
v_prs_perslid_email := SUBSTR (v_prs_perslid_email, 1, 200);
|
||||
fac.imp_writelog (p_import_key,
|
||||
'W',
|
||||
v_aanduiding || 'Email persoon is te lang',
|
||||
'Aanduiding wordt afgebroken tot [' || v_prs_perslid_email || ']'
|
||||
);
|
||||
END IF;
|
||||
|
||||
--
|
||||
v_errorhint := 'Ongeldige functie persoon';
|
||||
v_prs_srtperslid_omschrijving := TRIM (v_prs_srtperslid_omschrijving);
|
||||
|
||||
IF v_prs_srtperslid_omschrijving IS NULL
|
||||
THEN
|
||||
v_prs_srtperslid_omschrijving := 'Onbekend';
|
||||
END IF;
|
||||
|
||||
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-aanduiding persoon is te lang',
|
||||
'Aanduiding wordt afgebroken tot [' || v_prs_srtperslid_omschrijving || ']'
|
||||
);
|
||||
ELSE
|
||||
IF (v_prs_srtperslid_omschrijving IS NULL)
|
||||
THEN
|
||||
v_ongeldig := 1;
|
||||
fac.imp_writelog (p_import_key,
|
||||
'E',
|
||||
v_aanduiding,
|
||||
'Functie persoon moet worden opgegeven'
|
||||
);
|
||||
END IF;
|
||||
END IF;
|
||||
|
||||
--
|
||||
v_errorhint := 'Ongeldige persoonnr.';
|
||||
v_prs_perslid_nr := TRIM (v_prs_perslid_nr);
|
||||
|
||||
IF fac.safe_to_number(v_prs_perslid_nr) IS NULL
|
||||
THEN
|
||||
v_prs_perslid_nr := NULL;
|
||||
END IF;
|
||||
|
||||
IF LENGTH (v_prs_perslid_nr) > 16
|
||||
THEN
|
||||
v_prs_perslid_nr := SUBSTR (v_prs_perslid_nr, 1, 16);
|
||||
fac.imp_writelog (p_import_key,
|
||||
'W',
|
||||
v_aanduiding || 'Persoonnr. persoon is te lang',
|
||||
'Aanduiding wordt afgebroken tot [' || v_prs_perslid_nr || ']'
|
||||
);
|
||||
END IF;
|
||||
|
||||
--
|
||||
v_errorhint := 'Ongeldige loginnaam';
|
||||
v_prs_perslid_oslogin := TRIM (v_prs_perslid_oslogin);
|
||||
|
||||
IF LENGTH (v_prs_perslid_oslogin) > 30
|
||||
THEN
|
||||
v_prs_perslid_oslogin := SUBSTR (v_prs_perslid_oslogin, 1, 30);
|
||||
fac.imp_writelog (p_import_key,
|
||||
'W',
|
||||
v_aanduiding || 'Loginnaam persoon is te lang',
|
||||
'Aanduiding wordt afgebroken tot [' || v_prs_perslid_oslogin || ']'
|
||||
);
|
||||
END IF;
|
||||
|
||||
--
|
||||
-- Insert geformatteerde import record
|
||||
IF v_ongeldig = 0
|
||||
THEN
|
||||
v_errormsg := 'Fout bij toevoegen te impoteren bedrijf/afdeling [' || v_prs_afdeling_naam || ']';
|
||||
|
||||
INSERT INTO fac_imp_perslid (
|
||||
alg_locatie_code,
|
||||
alg_gebouw_code,
|
||||
alg_verdieping_volgnr,
|
||||
alg_ruimte_nr,
|
||||
prs_werkplek_volgnr,
|
||||
prs_werkplek_omschrijving,
|
||||
prs_afdeling_naam,
|
||||
prs_perslid_naam,
|
||||
prs_perslid_tussenvoegsel,
|
||||
prs_perslid_voorletters,
|
||||
prs_perslid_voornaam,
|
||||
prs_perslid_telefoonnr,
|
||||
prs_perslid_email,
|
||||
prs_srtperslid_omschrijving,
|
||||
prs_perslid_nr,
|
||||
prs_perslid_oslogin
|
||||
)
|
||||
VALUES (
|
||||
v_alg_locatie_code,
|
||||
v_alg_gebouw_code,
|
||||
v_alg_verdieping_volgnr,
|
||||
v_alg_ruimte_nr,
|
||||
v_prs_werkplek_volgnr,
|
||||
v_prs_werkplek_omschrijving,
|
||||
v_prs_afdeling_naam,
|
||||
v_prs_perslid_naam,
|
||||
v_prs_perslid_tussenvoegsel,
|
||||
v_prs_perslid_voorletters,
|
||||
v_prs_perslid_voornaam,
|
||||
v_prs_perslid_telefoonnr,
|
||||
v_prs_perslid_email,
|
||||
v_prs_srtperslid_omschrijving,
|
||||
v_prs_perslid_nr,
|
||||
UPPER(v_prs_perslid_oslogin)
|
||||
);
|
||||
|
||||
v_count_import := v_count_import + 1;
|
||||
END IF;
|
||||
END IF;
|
||||
END;
|
||||
END LOOP;
|
||||
|
||||
IF (header_is_valid = 0)
|
||||
THEN
|
||||
fac.imp_writelog (p_import_key,
|
||||
'E',
|
||||
v_aanduiding || 'Ongeldig importbestand',
|
||||
'Geen geldige headerregel aanwezig'
|
||||
);
|
||||
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 := 'Error ' || oracle_err_num || '/' || oracle_err_mes;
|
||||
fac.imp_writelog (p_import_key, 'E', v_aanduiding || v_errormsg, v_errorhint);
|
||||
END zkhm_import_perslid_mut;
|
||||
/
|
||||
|
||||
CREATE OR REPLACE PROCEDURE zkhm_update_perslid_mut (p_import_key IN NUMBER)
|
||||
IS
|
||||
CURSOR c_del
|
||||
IS
|
||||
SELECT prs_perslid_key,
|
||||
prs_perslid_naam,
|
||||
prs_perslid_oslogin,
|
||||
prs_perslid_oslogin2,
|
||||
prs_perslid_login,
|
||||
(SELECT COUNT ( * )
|
||||
FROM prs_v_verplichting v
|
||||
WHERE v.prs_perslid_key = p.prs_perslid_key)
|
||||
verplichtingen
|
||||
FROM prs_perslid p
|
||||
WHERE NOT EXISTS
|
||||
(SELECT prs_perslid_key
|
||||
FROM fac_imp_perslid i
|
||||
WHERE p.prs_perslid_oslogin = UPPER (i.prs_perslid_oslogin)
|
||||
OR p.prs_perslid_oslogin2 = UPPER (i.prs_perslid_oslogin))
|
||||
AND prs_afdeling_key <> 21 -- AAFM medewerkers gaan we niet verwijderen.
|
||||
AND prs_perslid_verwijder IS NULL
|
||||
AND (prs_perslid_oslogin NOT LIKE '/_%' ESCAPE ('/')
|
||||
OR prs_perslid_oslogin IS NULL);
|
||||
|
||||
v_count NUMBER;
|
||||
v_aanduiding VARCHAR2(100);
|
||||
v_errormsg VARCHAR2 (1000);
|
||||
v_errorhint VARCHAR2 (1000);
|
||||
oracle_err_num NUMBER;
|
||||
oracle_err_mes VARCHAR2 (200);
|
||||
BEGIN
|
||||
|
||||
SELECT count(*)
|
||||
INTO v_count
|
||||
FROM fac_imp_perslid;
|
||||
|
||||
IF v_count > 3000 THEN
|
||||
|
||||
-- generic update
|
||||
aaxx.fac_gen_update_perslid (p_import_key, 'LOGIN', 1, '');
|
||||
|
||||
FOR rec IN c_del
|
||||
LOOP
|
||||
BEGIN
|
||||
v_aanduiding := rec.prs_perslid_naam||' ('
|
||||
|| rec.prs_perslid_oslogin||'/'||rec.prs_perslid_oslogin2||') ';
|
||||
|
||||
UPDATE prs_perslid p
|
||||
SET prs_perslid_oslogin = NULL,
|
||||
prs_perslid_oslogin2 = NULL
|
||||
WHERE p.prs_perslid_key = rec.prs_perslid_key;
|
||||
|
||||
IF rec.verplichtingen = 0 THEN
|
||||
UPDATE prs_perslid p
|
||||
SET prs_perslid_verwijder = sysdate
|
||||
WHERE p.prs_perslid_key = rec.prs_perslid_key;
|
||||
fac.imp_writelog (p_import_key, 'I', v_aanduiding || '- Persoon is verwijderd', '');
|
||||
ELSE
|
||||
UPDATE prs_perslid p
|
||||
SET prs_perslid_naam = substr('Inactief ' || prs_perslid_naam, 1,60)
|
||||
WHERE p.prs_perslid_key = rec.prs_perslid_key
|
||||
AND p.prs_perslid_naam not like 'Inactief%';
|
||||
fac.imp_writelog (p_import_key, 'I', v_aanduiding || '- Persoon is als Inactief gemarkeerd', '');
|
||||
END IF;
|
||||
EXCEPTION
|
||||
WHEN OTHERS
|
||||
THEN
|
||||
oracle_err_num := SQLCODE;
|
||||
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
|
||||
v_errormsg :=
|
||||
v_errormsg
|
||||
|| ' ORACLE (error '
|
||||
|| oracle_err_num
|
||||
|| '/'
|
||||
|| oracle_err_mes
|
||||
|| ')';
|
||||
fac.imp_writelog (
|
||||
p_import_key,
|
||||
'E',
|
||||
v_aanduiding || v_errormsg,
|
||||
'Fout bij verwijderen persoon.'
|
||||
);
|
||||
END;
|
||||
END LOOP;
|
||||
ELSE
|
||||
fac.imp_writelog (p_import_key, 'E', 'Te weinig records in personenbestand [' || v_count || ']', '');
|
||||
END IF;
|
||||
END;
|
||||
/
|
||||
|
||||
CREATE OR REPLACE VIEW zkhm_v_rap_catering
|
||||
(
|
||||
naam,
|
||||
gastheer,
|
||||
kostenplaats,
|
||||
locatie,
|
||||
gebouw,
|
||||
verdieping,
|
||||
ruimte,
|
||||
reserveringnr,
|
||||
fclt_d_datum,
|
||||
van,
|
||||
tot,
|
||||
status,
|
||||
artikel,
|
||||
aantal,
|
||||
prijs,
|
||||
totaal
|
||||
)
|
||||
AS
|
||||
SELECT pf_c.prs_perslid_naam_full pfc,
|
||||
pf_h.prs_perslid_naam_full pfh,
|
||||
k.prs_kostenplaats_nr || '-' || prs_kostenplaats_omschrijving,
|
||||
rg.alg_locatie_omschrijving,
|
||||
rg.alg_gebouw_omschrijving,
|
||||
rg.alg_verdieping_omschrijving,
|
||||
rg.alg_ruimte_nr,
|
||||
rrr.res_reservering_key || '/' || rrr.res_rsv_ruimte_volgnr resnr,
|
||||
TO_CHAR (rrr.res_rsv_ruimte_van, 'dd-mm-yyyy'),
|
||||
TO_CHAR (rrr.res_rsv_ruimte_van, 'hh24:mi') van,
|
||||
TO_CHAR (rrr.res_rsv_ruimte_tot, 'hh24:mi') tot,
|
||||
s.res_status_bo_omschrijving,
|
||||
rrp.omschrijving,
|
||||
rrp.aantal,
|
||||
rrp.artikel_prijs,
|
||||
rrp.prijs
|
||||
FROM res_rsv_ruimte rrr,
|
||||
(SELECT rrr.res_rsv_ruimte_key,
|
||||
ra.res_artikel_omschrijving omschrijving,
|
||||
rra.res_rsv_artikel_aantal aantal,
|
||||
round(res.getartikelprijs (rra.res_rsv_artikel_key)/rra.res_rsv_artikel_aantal,2) artikel_prijs,
|
||||
res.getartikelprijs (rra.res_rsv_artikel_key) prijs,
|
||||
rra.res_status_bo_key
|
||||
FROM res_rsv_ruimte rrr, res_rsv_artikel rra, res_artikel ra
|
||||
WHERE rrr.res_rsv_ruimte_key = rra.res_rsv_ruimte_key
|
||||
AND rra.res_artikel_key = ra.res_artikel_key
|
||||
AND rra.res_rsv_artikel_verwijder IS NULL
|
||||
UNION
|
||||
SELECT rrr.res_rsv_ruimte_key,
|
||||
'Ruimte',
|
||||
1 aantal,
|
||||
res.getruimteprijs (rrr.res_rsv_ruimte_key) artikel_prijs,
|
||||
res.getruimteprijs (rrr.res_rsv_ruimte_key) prijs,
|
||||
rrr.res_status_bo_key
|
||||
FROM res_rsv_ruimte rrr
|
||||
WHERE res.getruimteprijs (rrr.res_rsv_ruimte_key) <> 0
|
||||
AND res_rsv_ruimte_verwijder IS NULL) rrp,
|
||||
prs_v_perslid_fullnames_all pf_h,
|
||||
prs_v_perslid_fullnames_all pf_c,
|
||||
prs_kostenplaats k,
|
||||
res_status_bo s,
|
||||
( SELECT MAX (alg_ruimte_key) alg_ruimte_key, res_rsv_ruimte_key
|
||||
FROM res_v_rsv_ruimte_2_alg_ruimte
|
||||
GROUP BY res_rsv_ruimte_key
|
||||
UNION ALL
|
||||
SELECT alg_ruimte_key, res_rsv_ruimte_key
|
||||
FROM res_rsv_ruimte
|
||||
WHERE alg_ruimte_key IS NOT NULL) r,
|
||||
alg_v_ruimte_gegevens rg
|
||||
WHERE res_activiteit_key <> 30
|
||||
AND rrp.res_rsv_ruimte_key = rrr.res_rsv_ruimte_key
|
||||
AND rrr.res_rsv_ruimte_host_key = pf_h.prs_perslid_key
|
||||
AND rrr.res_rsv_ruimte_contact_key = pf_c.prs_perslid_key
|
||||
AND rrr.prs_kostenplaats_key = k.prs_kostenplaats_key(+)
|
||||
AND rrr.res_rsv_ruimte_key = r.res_rsv_ruimte_key
|
||||
AND r.alg_ruimte_key = rg.alg_ruimte_key
|
||||
AND rrp.res_status_bo_key = s.res_status_bo_key;
|
||||
|
||||
|
||||
CREATE OR REPLACE VIEW zkhm_v_rap_catering_derden
|
||||
(
|
||||
naam,
|
||||
gastheer,
|
||||
kostenplaats,
|
||||
locatie,
|
||||
gebouw,
|
||||
verdieping,
|
||||
ruimte,
|
||||
client,
|
||||
geboortedatum,
|
||||
reserveringnr,
|
||||
fclt_d_datum,
|
||||
van,
|
||||
tot,
|
||||
status,
|
||||
artikel,
|
||||
aantal,
|
||||
prijs,
|
||||
totaal
|
||||
)
|
||||
AS
|
||||
SELECT pf_c.prs_perslid_naam_full pfc,
|
||||
pf_h.prs_perslid_naam_full pfh,
|
||||
k.prs_kostenplaats_nr || '-' || prs_kostenplaats_omschrijving,
|
||||
rg.alg_locatie_omschrijving,
|
||||
rg.alg_gebouw_omschrijving,
|
||||
rg.alg_verdieping_omschrijving,
|
||||
rg.alg_ruimte_nr,
|
||||
cl.res_kenmerkreservering_waarde naam,
|
||||
gd.res_kenmerkreservering_waarde geb,
|
||||
rrr.res_reservering_key || '/' || rrr.res_rsv_ruimte_volgnr resnr,
|
||||
TO_CHAR (rrr.res_rsv_ruimte_van, 'dd-mm-yyyy'),
|
||||
TO_CHAR (rrr.res_rsv_ruimte_van, 'hh24:mi') van,
|
||||
TO_CHAR (rrr.res_rsv_ruimte_tot, 'hh24:mi') tot,
|
||||
s.res_status_bo_omschrijving,
|
||||
rrp.omschrijving,
|
||||
rrp.aantal,
|
||||
rrp.prijs,
|
||||
( SELECT SUM (prijs)
|
||||
FROM (SELECT res.getartikelprijs (res_rsv_artikel_key) prijs,
|
||||
res_rsv_ruimte_key
|
||||
FROM res_rsv_artikel) rra2
|
||||
WHERE rra2.res_rsv_ruimte_key = rrr.res_rsv_ruimte_key
|
||||
GROUP BY rra2.res_rsv_ruimte_key)
|
||||
+ res.getruimteprijs (rrr.res_rsv_ruimte_key)
|
||||
FROM res_rsv_ruimte rrr,
|
||||
(SELECT rrr.res_rsv_ruimte_key,
|
||||
ra.res_artikel_omschrijving omschrijving,
|
||||
rra.res_rsv_artikel_aantal aantal,
|
||||
res.getartikelprijs (rra.res_rsv_artikel_key) prijs,
|
||||
rra.res_status_bo_key
|
||||
FROM res_rsv_ruimte rrr, res_rsv_artikel rra, res_artikel ra
|
||||
WHERE rrr.res_rsv_ruimte_key = rra.res_rsv_ruimte_key
|
||||
AND rra.res_artikel_key = ra.res_artikel_key
|
||||
AND rra.res_rsv_artikel_verwijder IS NULL
|
||||
UNION
|
||||
SELECT rrr.res_rsv_ruimte_key,
|
||||
'Ruimte',
|
||||
1 aantal,
|
||||
res.getruimteprijs (rrr.res_rsv_ruimte_key) prijs,
|
||||
rrr.res_status_bo_key
|
||||
FROM res_rsv_ruimte rrr
|
||||
WHERE res.getruimteprijs (rrr.res_rsv_ruimte_key) <> 0
|
||||
AND res_rsv_ruimte_verwijder IS NULL) rrp,
|
||||
(SELECT res_kenmerkreservering_waarde, res_rsv_ruimte_key
|
||||
FROM res_kenmerkwaarde
|
||||
WHERE res_kenmerk_key = 61) cl,
|
||||
(SELECT res_kenmerkreservering_waarde, res_rsv_ruimte_key
|
||||
FROM res_kenmerkwaarde
|
||||
WHERE res_kenmerk_key = 62) gd,
|
||||
prs_v_perslid_fullnames_all pf_h,
|
||||
prs_v_perslid_fullnames_all pf_c,
|
||||
prs_kostenplaats k,
|
||||
res_status_bo s,
|
||||
( SELECT MAX (alg_ruimte_key) alg_ruimte_key, res_rsv_ruimte_key
|
||||
FROM res_v_rsv_ruimte_2_alg_ruimte
|
||||
GROUP BY res_rsv_ruimte_key
|
||||
UNION ALL
|
||||
SELECT alg_ruimte_key, res_rsv_ruimte_key
|
||||
FROM res_rsv_ruimte
|
||||
WHERE alg_ruimte_key IS NOT NULL) r,
|
||||
alg_v_ruimte_gegevens rg
|
||||
WHERE res_activiteit_key = 30
|
||||
AND rrp.res_rsv_ruimte_key = rrr.res_rsv_ruimte_key
|
||||
AND rrr.res_rsv_ruimte_key = cl.res_rsv_ruimte_key(+)
|
||||
AND rrr.res_rsv_ruimte_key = gd.res_rsv_ruimte_key(+)
|
||||
AND rrr.res_rsv_ruimte_host_key = pf_h.prs_perslid_key
|
||||
AND rrr.res_rsv_ruimte_contact_key = pf_c.prs_perslid_key
|
||||
AND rrr.prs_kostenplaats_key = k.prs_kostenplaats_key(+)
|
||||
AND rrr.res_rsv_ruimte_key = r.res_rsv_ruimte_key
|
||||
AND r.alg_ruimte_key = rg.alg_ruimte_key
|
||||
AND rrp.res_status_bo_key = s.res_status_bo_key;
|
||||
|
||||
BEGIN adm.systrackscriptId('$Id$', 0); END;
|
||||
/
|
||||
|
||||
BEGIN fac.registercustversion('ZKHM', 1); END;
|
||||
/
|
||||
|
||||
COMMIT;
|
||||
|
||||
SPOOL OFF
|
||||
|
||||
|
||||
Reference in New Issue
Block a user