diff --git a/VGLD/vgld.sql b/VGLD/vgld.sql
index 17fa2c9e2..0e29b1ce5 100644
--- a/VGLD/vgld.sql
+++ b/VGLD/vgld.sql
@@ -10,1931 +10,2029 @@ SET ECHO ON
SET DEFINE ON
COLUMN fcltlogfile NEW_VALUE fcltlogfile NOPRINT;
WHENEVER SQLERROR EXIT;
-SELECT adm.scriptspoolfile('&dbuser', '&thisfile') AS fcltlogfile FROM DUAL;
+
+SELECT adm.scriptspoolfile ('&dbuser', '&thisfile') AS fcltlogfile FROM DUAL;
+
WHENEVER SQLERROR CONTINUE;
SPOOL &fcltlogfile
SET DEFINE OFF
------ payload begin ------
-CREATE OR REPLACE PROCEDURE vgld_import_prs (
- p_import_key IN NUMBER
-)
+CREATE OR REPLACE PROCEDURE vgld_import_prs (p_import_key IN NUMBER)
IS
- c_fielddelimitor VARCHAR2 (1) := ';';
- -- LET OP: moet idem zijn als declaratie bij vgld_UPDATE_PRS
- v_newline VARCHAR2 (1000); -- Input line
- v_aanduiding VARCHAR2 (200);
- v_errorhint VARCHAR2 (1000);
- v_errormsg VARCHAR2 (1000);
- oracle_err_num NUMBER;
- oracle_err_mes VARCHAR2 (200);
- header_is_valid NUMBER := 0;
- v_ongeldig NUMBER (1);
- v_count_tot NUMBER (10);
- v_count_import NUMBER (10);
- v_count NUMBER;
- v_pos NUMBER;
- -- De importvelden:
- v_prs_perslid_nr VARCHAR2 (256);
- v_prs_perslid_voornaam VARCHAR2 (256);
- v_prs_perslid_naam VARCHAR2 (256);
- v_prs_perslid_tussenvoegsel VARCHAR2 (256);
- v_prs_perslid_voorletters VARCHAR2 (256);
- v_prs_afdeling_code VARCHAR2 (256);
- v_prs_srtperslid_omschrijving VARCHAR2 (256);
- v_prs_perslid_telefoonnr VARCHAR2 (256);
- v_prs_perslid_mobiel VARCHAR2 (256);
- v_prs_perslid_email VARCHAR2 (256);
- v_prs_perslid_oslogin VARCHAR2 (256);
+ c_fielddelimitor VARCHAR2 (1) := ';';
+ -- LET OP: moet idem zijn als declaratie bij vgld_UPDATE_PRS
+ v_newline VARCHAR2 (1000); -- Input line
+ v_aanduiding VARCHAR2 (200);
+ v_errorhint VARCHAR2 (1000);
+ v_errormsg VARCHAR2 (1000);
+ oracle_err_num NUMBER;
+ oracle_err_mes VARCHAR2 (200);
+ header_is_valid NUMBER := 0;
+ v_ongeldig NUMBER (1);
+ v_count_tot NUMBER (10);
+ v_count_import NUMBER (10);
+ v_count NUMBER;
+ v_pos NUMBER;
+ -- De importvelden:
+ v_prs_perslid_nr VARCHAR2 (256);
+ v_prs_perslid_voornaam VARCHAR2 (256);
+ v_prs_perslid_naam VARCHAR2 (256);
+ v_prs_perslid_tussenvoegsel VARCHAR2 (256);
+ v_prs_perslid_voorletters VARCHAR2 (256);
+ v_prs_afdeling_code VARCHAR2 (256);
+ v_prs_srtperslid_omschrijving VARCHAR2 (256);
+ v_prs_perslid_telefoonnr VARCHAR2 (256);
+ v_prs_perslid_mobiel VARCHAR2 (256);
+ v_prs_perslid_email VARCHAR2 (256);
+ v_prs_perslid_oslogin VARCHAR2 (256);
- -- Overig:
- v_alg_locatie_code VARCHAR2 (256);
- v_alg_gebouw_code VARCHAR2 (256);
+ -- Overig:
+ v_alg_locatie_code VARCHAR2 (256);
+ v_alg_gebouw_code VARCHAR2 (256);
- CURSOR c1
- IS
- SELECT *
- FROM fac_imp_file
- WHERE fac_import_key = p_import_key
- ORDER BY fac_imp_file_index;
+ CURSOR c1 IS
+ SELECT *
+ FROM fac_imp_file
+ WHERE fac_import_key = p_import_key
+ ORDER BY fac_imp_file_index;
BEGIN
- DELETE FROM vgld_imp_prs;
+ DELETE FROM vgld_imp_prs;
- COMMIT;
+ COMMIT;
- v_count_tot := 0;
- v_count_import := 0;
+ 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
+ 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, 02, 03, 04 - Naam van medewerkers in de 1e 4 kolommen: voornaam, voorletters, tussenvoegsels, achternaam.
- fac.imp_getfield (v_newline, c_fielddelimitor, v_prs_perslid_voornaam);
- fac.imp_getfield (v_newline, c_fielddelimitor, v_prs_perslid_voorletters);
- fac.imp_getfield (v_newline, c_fielddelimitor, v_prs_perslid_tussenvoegsel);
- fac.imp_getfield (v_newline, c_fielddelimitor, v_prs_perslid_naam);
+ -- 01, 02, 03, 04 - Naam van medewerkers in de 1e 4 kolommen: voornaam, voorletters, tussenvoegsels, achternaam.
+ fac.imp_getfield (v_newline, c_fielddelimitor, v_prs_perslid_voornaam);
+ fac.imp_getfield (v_newline, c_fielddelimitor, v_prs_perslid_voorletters);
+ fac.imp_getfield (v_newline, c_fielddelimitor, v_prs_perslid_tussenvoegsel);
+ fac.imp_getfield (v_newline, c_fielddelimitor, v_prs_perslid_naam);
- -- 05 - Peroneelsnr
- fac.imp_getfield (v_newline, c_fielddelimitor, v_prs_perslid_nr);
+ -- 05 - Peroneelsnr
+ fac.imp_getfield (v_newline, c_fielddelimitor, v_prs_perslid_nr);
- -- 06 - Afdelingscode
- fac.imp_getfield (v_newline, c_fielddelimitor, v_prs_afdeling_code);
+ -- 06 - Afdelingscode
+ fac.imp_getfield (v_newline, c_fielddelimitor, v_prs_afdeling_code);
- -- 07 - Functieomschrijving van medewerker
- fac.imp_getfield (v_newline, c_fielddelimitor, v_prs_srtperslid_omschrijving);
+ -- 07 - Functieomschrijving van medewerker
+ fac.imp_getfield (v_newline, c_fielddelimitor, v_prs_srtperslid_omschrijving);
- -- 08 - Email adres van medewerker
- fac.imp_getfield (v_newline, c_fielddelimitor, v_prs_perslid_email);
+ -- 08 - Email adres van medewerker
+ fac.imp_getfield (v_newline, c_fielddelimitor, v_prs_perslid_email);
- -- 09 - Mobiel van medewerker
- fac.imp_getfield (v_newline, c_fielddelimitor, v_prs_perslid_mobiel);
+ -- 09 - Mobiel van medewerker
+ fac.imp_getfield (v_newline, c_fielddelimitor, v_prs_perslid_mobiel);
- -- 10 - Telnr van medewerker
- fac.imp_getfield (v_newline, c_fielddelimitor, v_prs_perslid_telefoonnr);
+ -- 10 - Telnr van medewerker
+ fac.imp_getfield (v_newline, c_fielddelimitor, v_prs_perslid_telefoonnr);
- -- 11 - Usernaam/login
- fac.imp_getfield (v_newline, c_fielddelimitor, v_prs_perslid_oslogin);
+ -- 11 - Usernaam/login
+ fac.imp_getfield (v_newline, c_fielddelimitor, v_prs_perslid_oslogin);
- -------------------------------------------------------------------------
+ -------------------------------------------------------------------------
- -- xx - Locatiecode werkplek van medewerker
- --fac.imp_getfield (v_newline, c_fielddelimitor, v_alg_locatie_code);
- v_alg_locatie_code := NULL;
+ -- xx - Locatiecode werkplek van medewerker
+ --fac.imp_getfield (v_newline, c_fielddelimitor, v_alg_locatie_code);
+ v_alg_locatie_code := NULL;
- -- xx - Gebouwcode werkplek van medewerker
- --fac.imp_getfield (v_newline, c_fielddelimitor, v_alg_gebouw_code);
- v_alg_gebouw_code := NULL;
- -------------------------------------------------------------------------
+ -- xx - Gebouwcode werkplek van medewerker
+ --fac.imp_getfield (v_newline, c_fielddelimitor, v_alg_gebouw_code);
+ v_alg_gebouw_code := NULL;
+ -------------------------------------------------------------------------
- --
- v_aanduiding :=
- '['
- || v_prs_perslid_nr
- || '|'
- || v_prs_perslid_naam
- || '] ';
-
- -- 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_voornaam) = 'ROEPNAAM'
- AND UPPER (v_prs_perslid_naam) = 'ACHTERNAAM'
- AND UPPER (v_prs_perslid_nr) = 'PERSNR.'
- AND UPPER (v_prs_afdeling_code) = 'AFDNR.'
- AND UPPER (v_prs_srtperslid_omschrijving) = 'FUNCTIE'
- AND UPPER (v_prs_perslid_email) = 'E-MAIL'
- AND UPPER (v_prs_perslid_mobiel) = 'MOBILE'
- AND UPPER (v_prs_perslid_telefoonnr) = 'TELEFOON'
- AND UPPER (v_prs_perslid_oslogin) = 'LOGIN'
- THEN
- header_is_valid := 1;
- END IF;
- ELSE
- v_count_tot := v_count_tot + 1;
- -- Controleer alle veldwaarden
-
--
- v_errorhint := 'Ongeldige naam';
- v_prs_perslid_naam := TRIM (v_prs_perslid_naam);
+ v_aanduiding := '[' || v_prs_perslid_nr || '|' || v_prs_perslid_naam || '] ';
- IF LENGTH (v_prs_perslid_naam) > 30
+ -- 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
- v_prs_perslid_naam := SUBSTR (v_prs_perslid_naam, 1, 30);
- fac.imp_writelog (p_import_key,
- 'W',
- v_aanduiding || 'Naam te lang',
- 'Naam wordt afgebroken tot ['
- || v_prs_perslid_naam
- || ']'
- );
+ IF UPPER (v_prs_perslid_voornaam) = 'ROEPNAAM'
+ AND UPPER (v_prs_perslid_naam) = 'ACHTERNAAM'
+ AND UPPER (v_prs_perslid_nr) = 'PERSNR.'
+ AND UPPER (v_prs_afdeling_code) = 'AFDNR.'
+ AND UPPER (v_prs_srtperslid_omschrijving) = 'FUNCTIE'
+ AND UPPER (v_prs_perslid_email) = 'E-MAIL'
+ AND UPPER (v_prs_perslid_mobiel) = 'MOBILE'
+ AND UPPER (v_prs_perslid_telefoonnr) = 'TELEFOON'
+ AND UPPER (v_prs_perslid_oslogin) = 'LOGIN'
+ THEN
+ header_is_valid := 1;
+ END IF;
ELSE
- IF (v_prs_perslid_naam IS NULL)
- THEN
- v_ongeldig := 1;
- fac.imp_writelog
- (p_import_key,
- 'E',
- v_aanduiding || 'Naam onbekend',
- 'Naam is verplicht; regel wordt overgeslagen!'
- );
- END IF;
+ v_count_tot := v_count_tot + 1;
+ -- Controleer alle veldwaarden
+
+ --
+ v_errorhint := 'Ongeldige naam';
+ v_prs_perslid_naam := TRIM (v_prs_perslid_naam);
+
+ IF LENGTH (v_prs_perslid_naam) > 30
+ THEN
+ v_prs_perslid_naam := SUBSTR (v_prs_perslid_naam, 1, 30);
+ fac.imp_writelog (p_import_key,
+ 'W',
+ v_aanduiding || 'Naam te lang',
+ 'Naam wordt afgebroken tot [' || v_prs_perslid_naam || ']');
+ ELSE
+ IF (v_prs_perslid_naam IS NULL)
+ THEN
+ v_ongeldig := 1;
+ fac.imp_writelog (p_import_key,
+ 'E',
+ v_aanduiding || 'Naam onbekend',
+ 'Naam is verplicht; regel wordt overgeslagen!');
+ END IF;
+ END IF;
+
+ COMMIT;
+
+ --
+
+ v_errorhint := 'Ongeldig loginnaam';
+ v_prs_perslid_oslogin := TRIM (v_prs_perslid_oslogin);
+
+ IF LENGTH (v_prs_perslid_oslogin) > 30
+ THEN
+ v_prs_perslid_oslogin := SUBSTR (v_prs_perslid_oslogin, 1, 30);
+ fac.imp_writelog (
+ p_import_key,
+ 'W',
+ v_aanduiding || 'Loginnaam te lang',
+ 'Loginnaam wordt afgebroken tot [' || v_prs_perslid_oslogin || ']');
+ ELSE
+ IF (v_prs_perslid_oslogin IS NULL)
+ THEN
+ v_ongeldig := 1;
+ fac.imp_writelog (p_import_key,
+ 'E',
+ v_aanduiding || 'Usernaam/login onbekend',
+ 'Usernaam/login is verplicht; regel wordt overgeslagen!');
+ END IF;
+ END IF;
+
+ COMMIT;
+
+ --
+ v_errorhint := 'Ongeldig e-mailadres';
+ 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 || 'E-mailadres te lang',
+ 'E-mailadres wordt afgebroken tot [' || v_prs_perslid_email || ']');
+ COMMIT;
+ END IF;
+
+ 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 || ']');
+ END IF;
+
+ COMMIT;
+
+
+ --
+ v_errorhint := 'Ongeldig tussenvoegsel';
+ v_prs_perslid_tussenvoegsel := TRIM (v_prs_perslid_tussenvoegsel);
+
+ IF LENGTH (v_prs_perslid_tussenvoegsel) > 15
+ THEN
+ v_prs_perslid_tussenvoegsel := SUBSTR (v_prs_perslid_tussenvoegsel, 1, 15);
+ 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 || ']');
+ END IF;
+
+ COMMIT;
+
+
+
+ v_errorhint := 'Ongeldige afdelingcode';
+ v_prs_afdeling_code := TRIM (v_prs_afdeling_code);
+
+ IF LENGTH (v_prs_afdeling_code) > 10
+ THEN
+ v_prs_afdeling_code := SUBSTR (v_prs_afdeling_code, 1, 10);
+ fac.imp_writelog (
+ p_import_key,
+ 'W',
+ v_aanduiding || 'Afdelingscode te lang',
+ 'Afdelingscode wordt afgebroken tot [' || v_prs_afdeling_code || ']');
+ ELSE
+ IF (v_prs_afdeling_code IS NULL)
+ THEN
+ v_ongeldig := 1;
+ fac.imp_writelog (p_import_key,
+ 'E',
+ v_aanduiding || 'Afdelingscode onbekend',
+ 'Afdelingscode is verplicht; regel wordt overgeslagen!');
+ END IF;
+ END IF;
+
+ COMMIT;
+
+
+ --
+ 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 || ']');
+ 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!');
+ END IF;
+ END IF;
+
+ COMMIT;
+
+ --
+ v_errorhint := 'Ongeldige plaats/locatiecode';
+ v_alg_locatie_code := TRIM (v_alg_locatie_code);
+
+ IF LENGTH (v_alg_locatie_code) > 5
+ THEN
+ v_alg_locatie_code := SUBSTR (v_alg_locatie_code, 1, 5);
+ fac.imp_writelog (
+ p_import_key,
+ 'W',
+ v_aanduiding || 'Locatiecode te lang',
+ 'Locatiecode wordt afgebroken tot [' || v_alg_locatie_code || ']');
+ COMMIT;
+ END IF;
+
+ --
+ v_errorhint := 'Ongeldige plaats/gebouwcode';
+ v_alg_gebouw_code := TRIM (v_alg_gebouw_code);
+
+ IF LENGTH (v_alg_gebouw_code) > 10
+ THEN
+ v_alg_gebouw_code := SUBSTR (v_alg_gebouw_code, 1, 10);
+ fac.imp_writelog (
+ p_import_key,
+ 'W',
+ v_aanduiding || 'Gebouwcode te lang',
+ 'Gebouwcode wordt afgebroken tot [' || v_alg_gebouw_code || ']');
+ COMMIT;
+ END IF;
+
+ --
+ v_errorhint := 'Ongeldig mobiel nummer';
+ v_prs_perslid_mobiel := TRIM (v_prs_perslid_mobiel);
+
+ IF LENGTH (v_prs_perslid_mobiel) > 15
+ THEN
+ v_prs_perslid_mobiel := SUBSTR (v_prs_perslid_mobiel, 1, 15);
+ fac.imp_writelog (
+ p_import_key,
+ 'W',
+ v_aanduiding || 'Mobiel nummer te lang',
+ 'mobiel nummer wordt afgebroken tot [' || v_prs_perslid_mobiel || ']');
+ COMMIT;
+ END IF;
+
+
+ v_errorhint := 'Ongeldig 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;
+
+ COMMIT;
+
+
+ -- Insert geformatteerde import record
+ IF v_ongeldig = 0
+ THEN
+ BEGIN
+ v_errorhint := 'Fout bij toevoegen regel aan importtabel VGLD_IMP_PRS';
+
+ INSERT INTO vgld_imp_prs (prs_perslid_nr,
+ prs_perslid_naam,
+ prs_perslid_tussenvoegsel,
+ prs_perslid_voorletters,
+ prs_perslid_voornaam,
+ prs_afdeling_code,
+ prs_srtperslid_omschrijving,
+ alg_locatie_code,
+ alg_gebouw_code,
+ alg_verdieping_volgnr,
+ alg_ruimte_nr,
+ prs_perslid_telefoonnr,
+ prs_perslid_mobiel,
+ prs_perslid_email,
+ prs_perslid_oslogin)
+ VALUES (v_prs_perslid_nr,
+ v_prs_perslid_naam,
+ v_prs_perslid_tussenvoegsel,
+ v_prs_perslid_voorletters,
+ v_prs_perslid_voornaam,
+ v_prs_afdeling_code,
+ v_prs_srtperslid_omschrijving,
+ v_alg_locatie_code,
+ v_alg_gebouw_code,
+ NULL,
+ NULL,
+ v_prs_perslid_telefoonnr,
+ v_prs_perslid_mobiel,
+ v_prs_perslid_email,
+ v_prs_perslid_oslogin);
+
+ 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;
- COMMIT;
+ 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;
- v_errorhint := 'Ongeldig loginnaam';
- v_prs_perslid_oslogin := TRIM (v_prs_perslid_oslogin);
-
- IF LENGTH (v_prs_perslid_oslogin) > 30
- THEN
- v_prs_perslid_oslogin := SUBSTR (v_prs_perslid_oslogin, 1, 30);
- fac.imp_writelog (p_import_key,
- 'W',
- v_aanduiding || 'Loginnaam te lang',
- 'Loginnaam wordt afgebroken tot ['
- || v_prs_perslid_oslogin
- || ']'
- );
- ELSE
- IF (v_prs_perslid_oslogin IS NULL)
- THEN
- v_ongeldig := 1;
- fac.imp_writelog
- (p_import_key,
- 'E',
- v_aanduiding || 'Usernaam/login onbekend',
- 'Usernaam/login is verplicht; regel wordt overgeslagen!'
- );
- END IF;
- END IF;
- COMMIT;
-
- --
- v_errorhint := 'Ongeldig e-mailadres';
- 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 || 'E-mailadres te lang',
- 'E-mailadres wordt afgebroken tot ['
- || v_prs_perslid_email
- || ']'
- );
- COMMIT;
- END IF;
-
- 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
- || ']'
- );
- END IF;
- COMMIT;
-
-
- --
- v_errorhint := 'Ongeldig tussenvoegsel';
- v_prs_perslid_tussenvoegsel := TRIM (v_prs_perslid_tussenvoegsel);
-
- IF LENGTH (v_prs_perslid_tussenvoegsel) > 15
- THEN
- v_prs_perslid_tussenvoegsel :=
- SUBSTR (v_prs_perslid_tussenvoegsel, 1, 15);
- 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
- || ']'
- );
- END IF;
- COMMIT;
-
-
-
-
-
- v_errorhint := 'Ongeldige afdelingcode';
- v_prs_afdeling_code := TRIM (v_prs_afdeling_code);
-
- IF LENGTH (v_prs_afdeling_code) > 10
- THEN
- v_prs_afdeling_code := SUBSTR (v_prs_afdeling_code, 1, 10);
- fac.imp_writelog (p_import_key,
- 'W',
- v_aanduiding || 'Afdelingscode te lang',
- 'Afdelingscode wordt afgebroken tot ['
- || v_prs_afdeling_code
- || ']'
- );
- ELSE
- IF (v_prs_afdeling_code IS NULL)
- THEN
- v_ongeldig := 1;
- fac.imp_writelog
- (p_import_key,
- 'E',
- v_aanduiding || 'Afdelingscode onbekend',
- 'Afdelingscode is verplicht; regel wordt overgeslagen!'
- );
- END IF;
- END IF;
- COMMIT;
-
-
- --
- 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
- || ']'
- );
- 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!'
- );
- END IF;
- END IF;
- COMMIT;
-
- --
- v_errorhint := 'Ongeldige plaats/locatiecode';
- v_alg_locatie_code := TRIM(v_alg_locatie_code);
-
- IF LENGTH (v_alg_locatie_code) > 5
- THEN
- v_alg_locatie_code := SUBSTR (v_alg_locatie_code, 1, 5);
- fac.imp_writelog (p_import_key,
- 'W',
- v_aanduiding || 'Locatiecode te lang',
- 'Locatiecode wordt afgebroken tot ['
- || v_alg_locatie_code
- || ']'
- );
- COMMIT;
- END IF;
-
- --
- v_errorhint := 'Ongeldige plaats/gebouwcode';
- v_alg_gebouw_code := TRIM(v_alg_gebouw_code);
-
- IF LENGTH (v_alg_gebouw_code) > 10
- THEN
- v_alg_gebouw_code := SUBSTR (v_alg_gebouw_code, 1, 10);
- fac.imp_writelog (p_import_key,
- 'W',
- v_aanduiding || 'Gebouwcode te lang',
- 'Gebouwcode wordt afgebroken tot ['
- || v_alg_gebouw_code
- || ']'
- );
- COMMIT;
- END IF;
-
- --
- v_errorhint := 'Ongeldig mobiel nummer';
- v_prs_perslid_mobiel := TRIM (v_prs_perslid_mobiel);
-
- IF LENGTH (v_prs_perslid_mobiel) > 15
- THEN
- v_prs_perslid_mobiel := SUBSTR (v_prs_perslid_mobiel, 1, 15);
- fac.imp_writelog (p_import_key,
- 'W',
- v_aanduiding || 'Mobiel nummer te lang',
- 'mobiel nummer wordt afgebroken tot ['
- || v_prs_perslid_mobiel
- || ']'
- );
- COMMIT;
- END IF;
-
-
- v_errorhint := 'Ongeldig 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;
-
- COMMIT;
-
-
- -- Insert geformatteerde import record
- IF v_ongeldig = 0
- THEN
- BEGIN
- v_errorhint :=
- 'Fout bij toevoegen regel aan importtabel VGLD_IMP_PRS';
-
- INSERT INTO vgld_imp_prs
- (prs_perslid_nr, prs_perslid_naam,
- prs_perslid_tussenvoegsel,
- prs_perslid_voorletters,
- prs_perslid_voornaam,
- prs_afdeling_code,
- prs_srtperslid_omschrijving,
- alg_locatie_code, alg_gebouw_code,
- alg_verdieping_volgnr, alg_ruimte_nr,
- prs_perslid_telefoonnr,
- prs_perslid_mobiel,
- prs_perslid_email,
- prs_perslid_oslogin
- )
- VALUES (v_prs_perslid_nr, v_prs_perslid_naam,
- v_prs_perslid_tussenvoegsel,
- v_prs_perslid_voorletters,
- v_prs_perslid_voornaam,
- v_prs_afdeling_code,
- v_prs_srtperslid_omschrijving,
- v_alg_locatie_code, v_alg_gebouw_code,
- NULL, NULL,
- v_prs_perslid_telefoonnr,
- v_prs_perslid_mobiel,
- v_prs_perslid_email,
- v_prs_perslid_oslogin
- );
- 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;
+ 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;
+ 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 vgld_import_prs;
/
-CREATE OR REPLACE PROCEDURE vgld_update_prs (
- p_import_key IN NUMBER
-)
+CREATE OR REPLACE PROCEDURE vgld_update_prs (p_import_key IN NUMBER)
IS
- -- LET OP: moet idem zijn als declaratie bij VGLD_IMPORT_PRS
- c_persoon_inactief VARCHAR2 (30) := 'INACTIEF: ';
- -- Maximaal percentage aan nieuwe medewerkers tov. actieve medewerkers met een nummer
- c_max_delta_percentage NUMBER (10) := 20;
- -- Ruimte waar personen in geplaatst worden (indien nog geen ruimte in opgegeven gebouw)
- c_ruimte_nr VARCHAR2 (10) := '000';
- -- Groep waar personen in geplaatst worden (indien nog geen groep)
+ -- LET OP: moet idem zijn als declaratie bij VGLD_IMPORT_PRS
+ c_persoon_inactief VARCHAR2 (30) := 'INACTIEF: ';
+ -- Maximaal percentage aan nieuwe medewerkers tov. actieve medewerkers met een nummer
+ c_max_delta_percentage NUMBER (10) := 20;
+ -- Ruimte waar personen in geplaatst worden (indien nog geen ruimte in opgegeven gebouw)
+ c_ruimte_nr VARCHAR2 (10) := '000';
+ -- Groep waar personen in geplaatst worden (indien nog geen groep)
- c_key_default_rol NUMBER(10) := 1;
+ c_key_default_rol NUMBER (10) := 1;
- v_aanduiding VARCHAR2 (200);
- v_errorhint VARCHAR2 (1000);
- v_errormsg VARCHAR2 (1000);
- oracle_err_num NUMBER;
- oracle_err_mes VARCHAR2 (200);
- v_count_prs_actual NUMBER (10);
- v_count_prs_import NUMBER (10); -- Matching actual persons!
- 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_aanduiding VARCHAR2 (200);
+ v_errorhint VARCHAR2 (1000);
+ v_errormsg VARCHAR2 (1000);
+ oracle_err_num NUMBER;
+ oracle_err_mes VARCHAR2 (200);
+ v_count_prs_actual NUMBER (10);
+ v_count_prs_import NUMBER (10); -- Matching actual persons!
+ 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_oslogin VARCHAR2 (30);
- v_wachtwoord VARCHAR2 (30);
- v_locatie_key NUMBER (10);
- v_gebouw_key NUMBER (10);
- v_verdieping_key NUMBER (10);
- v_ruimte_key NUMBER (10);
- v_wp_key NUMBER (10);
- v_wp_volgnr NUMBER (3);
- v_wp_oms VARCHAR2 (30);
- v_groep_defaultnaam VARCHAR2 (30);
+ v_srtperslid_key NUMBER (10);
+ v_oslogin VARCHAR2 (30);
+ v_wachtwoord VARCHAR2 (30);
+ v_locatie_key NUMBER (10);
+ v_gebouw_key NUMBER (10);
+ v_verdieping_key NUMBER (10);
+ v_ruimte_key NUMBER (10);
+ v_wp_key NUMBER (10);
+ v_wp_volgnr NUMBER (3);
+ v_wp_oms VARCHAR2 (30);
+ v_groep_defaultnaam VARCHAR2 (30);
- -- Let op! Met eindatum zijn personen die niet meer in dienst zijn.
- -- Dubbele nummers? Dan wordt iemand mogelijk niet verwijderd/INACTIEF!
- CURSOR cdelprs
- IS
- SELECT p.prs_perslid_key, p.prs_perslid_nr, p.prs_perslid_naam,
- p.prs_perslid_voornaam
- FROM prs_v_aanwezigperslid p
- WHERE p.prs_perslid_nr IS NOT NULL
- AND NOT EXISTS (
- SELECT 1
- FROM vgld_imp_prs ip
- WHERE ip.prs_perslid_nr = p.prs_perslid_nr);
+ -- Let op! Met eindatum zijn personen die niet meer in dienst zijn.
+ -- Dubbele nummers? Dan wordt iemand mogelijk niet verwijderd/INACTIEF!
+ CURSOR cdelprs IS
+ SELECT p.prs_perslid_key,
+ p.prs_perslid_nr,
+ p.prs_perslid_naam,
+ p.prs_perslid_voornaam
+ FROM prs_v_aanwezigperslid p
+ WHERE p.prs_perslid_nr IS NOT NULL
+ AND NOT EXISTS
+ (SELECT 1
+ FROM vgld_imp_prs ip
+ WHERE ip.prs_perslid_nr = p.prs_perslid_nr);
- CURSOR csperslid
- IS
- SELECT prs_srtperslid_omschrijving
- FROM vgld_imp_prs
- GROUP BY prs_srtperslid_omschrijving;
+ CURSOR csperslid IS
+ SELECT prs_srtperslid_omschrijving
+ FROM vgld_imp_prs
+ GROUP BY prs_srtperslid_omschrijving;
- CURSOR cprsafd
- IS
- SELECT UPPER(prs_afdeling_code) prs_afdeling_code, MIN(prs_afdeling_naam) prs_afdeling_naam
- FROM vgld_imp_prs
- GROUP BY UPPER (prs_afdeling_code);
+ CURSOR cprsafd IS
+ SELECT UPPER (prs_afdeling_code) prs_afdeling_code,
+ MIN (prs_afdeling_naam) prs_afdeling_naam
+ FROM vgld_imp_prs
+ GROUP BY UPPER (prs_afdeling_code);
- CURSOR cperslid
- IS
- SELECT *
- FROM vgld_imp_prs;
+ CURSOR cperslid IS SELECT * FROM vgld_imp_prs;
- CURSOR cwp
- IS
- SELECT p.*, ip.alg_locatie_code, ip.alg_gebouw_code
- FROM vgld_imp_prs ip, prs_v_aanwezigperslid p
- WHERE ip.alg_locatie_code IS NOT NULL
- AND ip.alg_gebouw_code IS NOT NULL
- AND UPPER (ip.prs_perslid_nr) = UPPER (p.prs_perslid_nr);
-
- -- Alle actieve personen met personeelsnummer (ie. de import-doelgroep) zonder een werkplek
- CURSOR cnowp
- IS
- SELECT p.prs_perslid_key, p.prs_perslid_nr, p.prs_perslid_naam,
- p.prs_perslid_voornaam
- FROM prs_v_aanwezigperslid p
- WHERE p.prs_perslid_nr IS NOT NULL
- AND p.prs_perslid_naam NOT LIKE c_persoon_inactief || '%'
- AND NOT EXISTS (SELECT 1
- FROM prs_perslidwerkplek pw
- WHERE pw.prs_perslid_key = p.prs_perslid_key);
-
- -- Alle aanwezige personen met personeelsnummer (ie. de import-doelgroep) niet in een groep
- CURSOR cnogroup
- IS
- SELECT p.prs_perslid_key, p.prs_perslid_nr, p.prs_perslid_naam,
- p.prs_perslid_voornaam
- FROM prs_v_aanwezigperslid p
- WHERE p.prs_perslid_nr IS NOT NULL
- AND NOT EXISTS (SELECT 1
- FROM fac_gebruikersgroep g
- WHERE g.prs_perslid_key = p.prs_perslid_key);
+ CURSOR cwp IS
+ SELECT p.*, ip.alg_locatie_code, ip.alg_gebouw_code
+ FROM vgld_imp_prs ip, prs_v_aanwezigperslid p
+ WHERE ip.alg_locatie_code IS NOT NULL
+ AND ip.alg_gebouw_code IS NOT NULL
+ AND UPPER (ip.prs_perslid_nr) = UPPER (p.prs_perslid_nr);
+ -- Alle actieve personen met personeelsnummer (ie. de import-doelgroep) zonder een werkplek
+ CURSOR cnowp IS
+ SELECT p.prs_perslid_key,
+ p.prs_perslid_nr,
+ p.prs_perslid_naam,
+ p.prs_perslid_voornaam
+ FROM prs_v_aanwezigperslid p
+ WHERE p.prs_perslid_nr IS NOT NULL
+ AND p.prs_perslid_naam NOT LIKE c_persoon_inactief || '%'
+ AND NOT EXISTS
+ (SELECT 1
+ FROM prs_perslidwerkplek pw
+ WHERE pw.prs_perslid_key = p.prs_perslid_key);
+ -- Alle aanwezige personen met personeelsnummer (ie. de import-doelgroep) niet in een groep
+ CURSOR cnogroup IS
+ SELECT p.prs_perslid_key,
+ p.prs_perslid_nr,
+ p.prs_perslid_naam,
+ p.prs_perslid_voornaam
+ FROM prs_v_aanwezigperslid p
+ WHERE p.prs_perslid_nr IS NOT NULL
+ AND NOT EXISTS
+ (SELECT 1
+ FROM fac_gebruikersgroep g
+ WHERE g.prs_perslid_key = p.prs_perslid_key);
BEGIN
- SELECT DECODE (COUNT (*), 0, 1, COUNT (*))
- INTO v_count_prs_actual
- FROM prs_perslid
- WHERE prs_perslid_verwijder IS NULL AND prs_perslid_nr IS NOT NULL;
-
- SELECT DECODE (COUNT (*), 0, 1, COUNT (*))
- INTO v_count_prs_import
- FROM prs_perslid p, vgld_imp_prs ip
- WHERE p.prs_perslid_nr IS NOT NULL
- AND p.prs_perslid_verwijder IS NULL
- AND p.prs_perslid_nr = ip.prs_perslid_nr;
-
- IF ( (TRUNC ((v_count_prs_import / v_count_prs_actual) * 100) >=
- (100 - c_max_delta_percentage
- )
- )
- )
- THEN
- -- Geldig importbestand wat betreft aantal personen
- FOR recdelprs IN cdelprs
- LOOP
- BEGIN
- -- Heeft persoon actuele/toekomstige verplichtingen?
- SELECT COUNT (*)
- INTO v_count
- FROM prs_perslid p, prs_v_verplichting_keys r
- WHERE p.prs_perslid_key = r.prs_perslid_key
- AND p.prs_perslid_key = recdelprs.prs_perslid_key;
-
- IF (v_count = 0)
- THEN
- v_errorhint := 'Fout bij verwijderen persoon';
-
- UPDATE prs_perslid
- SET prs_perslid_verwijder = SYSDATE
- WHERE prs_perslid_key = recdelprs.prs_perslid_key;
-
- fac.imp_writelog (p_import_key,
- 'I',
- 'Persoon met nummer ['
- || recdelprs.prs_perslid_nr
- || '] en naam ['
- || recdelprs.prs_perslid_naam
- || ', '
- || recdelprs.prs_perslid_voornaam
- || '] is verwijderd',
- 'Persoon is verwijderd'
- );
- COMMIT;
- ELSE
- -- Staat persoon INACTIEF?
- 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 zetten persoon';
-
- -- Persoon INACTIEF zetten (update naam + reset oslogin)
- UPDATE prs_perslid
- SET prs_perslid_naam =
- SUBSTR (c_persoon_inactief || prs_perslid_naam,
- 1,
- 30
- ),
- prs_perslid_oslogin = NULL
- WHERE prs_perslid_key = recdelprs.prs_perslid_key;
-
- fac.imp_writelog (p_import_key,
- 'I',
- 'Persoon met nummer ['
- || recdelprs.prs_perslid_nr
- || '] en naam ['
- || recdelprs.prs_perslid_naam
- || ', '
- || recdelprs.prs_perslid_voornaam
- || '] is INACTIEF gezet',
- 'Persoon is INACTIEF gezet'
- );
- ELSE
- v_errorhint := 'Fout bij INACTIEF maken persoon';
-
- -- Persoon INACTIEF maken (reset oslogin; indien handmatig INACTIEF gezet)
- UPDATE prs_perslid
- SET prs_perslid_oslogin = NULL
- WHERE prs_perslid_naam LIKE c_persoon_inactief || '%'
- AND prs_perslid_oslogin IS NOT NULL;
-
- fac.imp_writelog (p_import_key,
- 'I',
- 'Persoon met nummer ['
- || recdelprs.prs_perslid_nr
- || '] en naam ['
- || recdelprs.prs_perslid_naam
- || ', '
- || recdelprs.prs_perslid_voornaam
- || '] is INACTIEF gemaakt',
- 'Persoon is INACTIEF gemaakt'
- );
- 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_errormsg,
- v_errorhint
- );
- COMMIT;
- END;
- END LOOP;
-
- v_count_tot := 0;
- v_count_error := 0;
-
- FOR recsperslid IN csperslid
- LOOP
- BEGIN
- v_count_tot := v_count_tot + 1;
- v_aanduiding := recsperslid.prs_srtperslid_omschrijving || ' - ';
- v_errorhint := 'Fout bij bepalen functie';
-
- SELECT COUNT (*)
- INTO v_count
- FROM prs_srtperslid
- WHERE UPPER (prs_srtperslid_omschrijving) =
- UPPER (recsperslid.prs_srtperslid_omschrijving)
- AND prs_srtperslid_verwijder IS NULL;
-
- IF (v_count = 0)
- THEN
- v_errorhint := 'Fout bij toevoegen functie';
-
- INSERT INTO prs_srtperslid (prs_srtperslid_omschrijving)
- VALUES (recsperslid.prs_srtperslid_omschrijving);
- COMMIT;
- END IF;
- EXCEPTION
- WHEN OTHERS
- THEN
- v_count_error := v_count_error + 1;
- oracle_err_num := SQLCODE;
- oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
- v_errormsg :=
- 'OTHERS (error '
- || oracle_err_num
- || '/'
- || oracle_err_mes
- || ')';
- fac.imp_writelog (p_import_key,
- 'E',
- v_aanduiding || v_errormsg,
- v_errorhint
- );
- COMMIT;
- END;
- END LOOP;
-
- fac.imp_writelog (p_import_key,
- 'S',
- 'Functie: verwerkte regels zonder foutmelding: '
- || TO_CHAR (v_count_tot - v_count_error),
- ''
- );
- fac.imp_writelog (p_import_key,
- 'S',
- 'Functie: verwerkte regels met foutmelding: '
- || TO_CHAR (v_count_error),
- ''
- );
-
- COMMIT;
-
- v_count_tot := 0;
- v_count_error := 0;
-
- FOR recperslid IN cperslid
- LOOP
- BEGIN
- v_count_tot := v_count_tot + 1;
- v_aanduiding :=
- recperslid.prs_perslid_nr
- || '|'
- || recperslid.prs_perslid_naam
- || '|'
- || recperslid.prs_perslid_voornaam
- || ' - ';
- v_errorhint :=
- 'Fout bij bepalen functie ['
- || recperslid.prs_srtperslid_omschrijving
- || ']';
-
- SELECT prs_srtperslid_key
- INTO v_srtperslid_key
- FROM prs_srtperslid
- WHERE prs_srtperslid_verwijder IS NULL
- AND 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_afdeling
- WHERE prs_afdeling_verwijder IS NULL
- AND UPPER (prs_afdeling_naam) = UPPER (recperslid.prs_afdeling_code);
-
-
- v_errorhint := 'Fout bij bepalen persoon';
-
- SELECT COUNT (*), MAX (prs_perslid_key)
- INTO v_count, v_perslid_key
- FROM prs_perslid
- WHERE prs_perslid_verwijder IS NULL
- AND UPPER (prs_perslid_nr) = UPPER (recperslid.prs_perslid_nr);
-
-
- IF (v_count = 0)
- THEN
- v_errorhint := 'Fout bij toevoegen persoon';
- -- Nieuwe persoon uit importbestand, wordt toegevoegd in Facilitor.
- INSERT INTO prs_perslid
- (prs_perslid_module, prs_srtperslid_key,
- prs_afdeling_key, prs_perslid_naam,
- prs_perslid_voorletters,
- prs_perslid_tussenvoegsel,
- prs_perslid_voornaam,
- prs_perslid_telefoonnr,
- prs_perslid_mobiel,
- prs_perslid_email,
- prs_perslid_nr,
- prs_perslid_oslogin
- )
- VALUES ('PRS', v_srtperslid_key,
- v_afdeling_key, recperslid.prs_perslid_naam,
- recperslid.prs_perslid_voorletters,
- recperslid.prs_perslid_tussenvoegsel,
- recperslid.prs_perslid_voornaam,
- recperslid.prs_perslid_telefoonnr,
- recperslid.prs_perslid_mobiel,
- recperslid.prs_perslid_email,
- recperslid.prs_perslid_nr,
- recperslid.prs_perslid_oslogin
- );
- COMMIT;
- ELSE
-
- v_errorhint := 'Fout bij wijzigen persoon';
-
- -- Functie, Afdeling altijd bijwerken
- -- Voorletters, Naam, Tussenvoegsels, Voornaam alleen indien gevuld wordt aangeboden, anders laten staan wat in DB stond.
- -- Telefoonnr: alleen bijwerken indien uit AD-dump gevuld, anders niet bijwerken (dus gewoon laten staan zoals in Facilitor was gereigistreerd).
- -- E-mail: alleen bijwerken indien uit AD-dump gevuld, anders niet bijwerken (dus gewoon laten staan zoals in Facilitor was gereigistreerd).
- -- Personeelsnr: alleen bijwerken indien uit AD-dump gevuld, anders niet bijwerken (dus gewoon laten staan zoals in Facilitor was gereigistreerd).
- -- Login: alleen bijwerken indien uit AD-dump gevuld, anders niet bijwerken (dus gewoon laten staan zoals in Facilitor was gereigistreerd).
-
- UPDATE prs_perslid
- SET prs_srtperslid_key = v_srtperslid_key,
- prs_afdeling_key = v_afdeling_key,
- prs_perslid_naam = COALESCE(recperslid.prs_perslid_naam,prs_perslid_naam),
- prs_perslid_voorletters = COALESCE(recperslid.prs_perslid_voorletters,prs_perslid_voorletters),
- prs_perslid_tussenvoegsel = COALESCE(recperslid.prs_perslid_tussenvoegsel,prs_perslid_tussenvoegsel),
- prs_perslid_voornaam = COALESCE(recperslid.prs_perslid_voornaam,prs_perslid_voornaam),
- -- VGLD#31908 prs_perslid_telefoonnr = COALESCE (recperslid.prs_perslid_telefoonnr, prs_perslid_telefoonnr),
- -- VGLD#31908 prs_perslid_mobiel = COALESCE (recperslid.prs_perslid_mobiel, prs_perslid_mobiel),
- prs_perslid_email = COALESCE (recperslid.prs_perslid_email, prs_perslid_email),
- prs_perslid_nr = COALESCE (recperslid.prs_perslid_nr, prs_perslid_nr),
- prs_perslid_oslogin = COALESCE (recperslid.prs_perslid_oslogin, prs_perslid_oslogin)
- WHERE prs_perslid_key = v_perslid_key;
- 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_nr
- || '|'
- || recwp.prs_perslid_naam
- || '|'
- || recwp.prs_perslid_voornaam
- || '|'
- || recwp.alg_locatie_code
- || '|'
- || recwp.alg_gebouw_code
- || ' - ';
- v_errorhint := 'Fout bij bepalen persoon';
-
- SELECT prs_perslid_key
- INTO v_perslid_key
- FROM prs_v_aanwezigperslid
- WHERE UPPER (prs_perslid_nr) = UPPER (recwp.prs_perslid_nr);
-
- v_errorhint := 'Fout bij bepalen locatie';
-
- SELECT alg_locatie_key
- INTO v_locatie_key
- FROM alg_v_aanweziglocatie
- WHERE UPPER (alg_locatie_code) = UPPER (recwp.alg_locatie_code);
-
- v_errorhint := 'Fout bij bepalen gebouw';
-
- SELECT alg_gebouw_key
- INTO v_gebouw_key
- FROM alg_v_aanweziggebouw
- WHERE alg_locatie_key = v_locatie_key
- AND UPPER (alg_gebouw_code) = UPPER (recwp.alg_gebouw_code);
-
- v_errorhint := 'Fout bij bepalen verdieping';
-
- SELECT alg_verdieping_key
- INTO v_verdieping_key
- FROM alg_v_aanwezigverdieping
- WHERE alg_gebouw_key = v_gebouw_key
- AND alg_verdieping_volgnr = (SELECT MIN (v.alg_verdieping_volgnr)
- FROM alg_verdieping v
- WHERE v.alg_gebouw_key = v_gebouw_key
- AND v.alg_verdieping_volgnr >= 0);
-
- v_errorhint :=
- 'Fout bij bepalen of persoon in gebouw een werkplek heeft';
-
- SELECT COUNT (*)
- INTO v_count
- FROM prs_perslidwerkplek pw,
- prs_werkplek wp,
- alg_ruimte r,
- alg_verdieping v
- WHERE pw.prs_perslid_key = v_perslid_key
- AND pw.prs_werkplek_key = wp.prs_werkplek_key
- AND wp.prs_alg_ruimte_key = r.alg_ruimte_key
- AND r.alg_verdieping_key = v.alg_verdieping_key
- AND v.alg_gebouw_key = v_gebouw_key;
-
- -- v_count=0 -> persoon verhuist naar/krijgt wp in gebouw.
- IF (v_count = 0)
- THEN
- v_errorhint := 'Fout bij bepalen ruimte';
-
- SELECT COUNT (*)
- INTO v_count
- FROM alg_v_aanwezigruimte r
- WHERE r.alg_verdieping_key = v_verdieping_key
- AND r.alg_ruimte_nr = c_ruimte_nr;
-
- -- v_count=0 -> ruimte '000' bestaat nog niet.
- IF (v_count = 0)
- THEN
- v_errorhint := 'Fout bij toevoegen ruimte';
-
- INSERT INTO alg_ruimte
- (alg_verdieping_key, alg_srtruimte_key,
- alg_ruimte_nr
- )
- VALUES (v_verdieping_key, 21, -- facilitaire ruimte
- c_ruimte_nr
- );
- COMMIT;
- END IF;
-
- v_errorhint := 'Fout bij bepalen ruimte';
-
- SELECT alg_ruimte_key
- INTO v_ruimte_key
- FROM alg_v_aanwezigruimte r
- WHERE r.alg_verdieping_key = v_verdieping_key
- AND r.alg_ruimte_nr = c_ruimte_nr;
-
- v_errorhint := 'Fout bij bepalen vrije werkplek';
-
- SELECT COUNT (w.prs_werkplek_key)
- INTO v_count
- FROM prs_werkplek w
- WHERE w.prs_alg_ruimte_key = v_ruimte_key
- AND NOT EXISTS (
- SELECT 1
- FROM prs_perslidwerkplek pw
- WHERE pw.prs_werkplek_key =
- w.prs_werkplek_key);
-
- IF (v_count > 0)
- THEN
- SELECT MIN (w.prs_werkplek_key)
- INTO v_wp_key
- FROM prs_werkplek w
- WHERE w.prs_alg_ruimte_key = v_ruimte_key
- AND NOT EXISTS (
- SELECT 1
- FROM prs_perslidwerkplek pw
- WHERE pw.prs_werkplek_key =
- w.prs_werkplek_key);
-
- v_errorhint :=
- 'Fout bij koppelen persoon aan vrije werkplek';
-
- INSERT INTO prs_perslidwerkplek
- (prs_perslid_key, prs_werkplek_key,
- prs_perslidwerkplek_bezetting
- )
- VALUES (v_perslid_key, v_wp_key,
- 100
- );
- COMMIT;
- ELSE
- v_errorhint := 'Fout bij bepalen nieuwe werkplek';
-
- SELECT prs_s_prs_werkplek_key.NEXTVAL
- INTO v_wp_key
- FROM DUAL;
-
- SELECT COALESCE (MAX (w.prs_werkplek_volgnr), 0) + 1
- INTO v_wp_volgnr
- FROM prs_werkplek w
- WHERE w.prs_alg_ruimte_key = v_ruimte_key;
-
- v_wp_oms := c_ruimte_nr || '/' || TO_CHAR (v_wp_volgnr);
-
- v_errorhint := 'Fout bij aanmaken nieuwe werkplek';
-
- INSERT INTO prs_werkplek
- (prs_werkplek_key, prs_werkplek_module,
- prs_werkplek_volgnr,
- prs_werkplek_omschrijving, prs_alg_ruimte_key
- )
- VALUES (v_wp_key, 'PRR',
- v_wp_volgnr,
- v_wp_oms, v_ruimte_key
- );
-
- v_errorhint :=
- 'Fout bij koppelen persoon aan nieuwe werkplek';
-
- INSERT INTO prs_perslidwerkplek
- (prs_perslid_key, prs_werkplek_key,
- prs_perslidwerkplek_bezetting
- )
- VALUES (v_perslid_key, v_wp_key,
- 100
- );
- COMMIT;
- END IF;
- END IF;
- EXCEPTION
- WHEN OTHERS
- THEN
- v_count_error := v_count_error + 1;
- oracle_err_num := SQLCODE;
- oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
- v_errormsg :=
- 'OTHERS (error '
- || oracle_err_num
- || '/'
- || oracle_err_mes
- || ')';
- fac.imp_writelog (p_import_key,
- 'E',
- v_aanduiding || v_errormsg,
- v_errorhint
- );
- COMMIT;
- END;
- END LOOP;
-
- fac.imp_writelog (p_import_key,
- 'S',
- 'Werkplek: verwerkte regels zonder foutmelding: '
- || TO_CHAR (v_count_tot - v_count_error),
- ''
- );
- fac.imp_writelog (p_import_key,
- 'S',
- 'Werkplek: verwerkte regels met foutmelding: '
- || TO_CHAR (v_count_error),
- ''
- );
- COMMIT;
-
- FOR recnowp IN cnowp
- LOOP
- BEGIN
- fac.imp_writelog (p_import_key,
- 'I',
- 'Persoon met nummer ['
- || recnowp.prs_perslid_nr
- || '] en naam ['
- || recnowp.prs_perslid_naam
- || ', '
- || recnowp.prs_perslid_voornaam
- || '] heeft geen werkplek',
- 'Geen werkplek'
- );
- COMMIT;
- EXCEPTION
- WHEN OTHERS
- THEN
- oracle_err_num := SQLCODE;
- oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
- v_errormsg :=
- 'OTHERS (error '
- || oracle_err_num
- || '/'
- || oracle_err_mes
- || ')';
- fac.imp_writelog (p_import_key,
- 'E',
- v_errormsg,
- v_errorhint
- );
- COMMIT;
- END;
- END LOOP;
-
- -- Iedereen krijgt _default-rol die nog geen groep heeft.
- FOR recnogroup IN cnogroup
- LOOP
- BEGIN
- v_aanduiding :=
- recnogroup.prs_perslid_nr
- || '|'
- || recnogroup.prs_perslid_naam
- || '|'
- || recnogroup.prs_perslid_voornaam
- || ' - ';
- v_errorhint := 'Fout bij bepalen groep met key [' || c_key_default_rol || ']';
-
- SELECT fac_groep_upper
- INTO v_groep_defaultnaam
- FROM fac_groep
- WHERE fac_groep_key = c_key_default_rol;
-
-
- v_errorhint :=
- 'Fout bij koppelen persoon aan groep met key [' || c_key_default_rol || ']';
-
- INSERT INTO fac_gebruikersgroep
- (fac_groep_key, prs_perslid_key
- )
- VALUES (c_key_default_rol, 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;
-
-
- 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)
- || '%]
'
- || '- #personen importbestand = ['
- || TO_CHAR (v_count_prs_import)
- || ']
'
- || '- #personen Facilitor = ['
- || TO_CHAR (v_count_prs_actual)
- || ']'
- );
- COMMIT;
- END IF; -- Geldig importbestand wat betreft aantal inserts
- COMMIT;
-
--- VGLD#51449 iedereen mandateren voor alle kostenplaatsen
-INSERT INTO prs_perslidkostenplaats (prs_perslid_key,
- prs_kostenplaats_key,
- prs_perslidkostenplaats_boeken,
- prs_perslidkostenplaats_inzage)
- SELECT p.prs_perslid_key,
- NULL,
- 1,
- 0
- FROM prs_v_aanwezigperslid p
- WHERE NOT EXISTS (SELECT 1
- FROM prs_perslidkostenplaats
- WHERE prs_perslid_key = p.prs_perslid_key);
-
+ SELECT DECODE (COUNT (*), 0, 1, COUNT (*))
+ INTO v_count_prs_actual
+ FROM prs_perslid
+ WHERE prs_perslid_verwijder IS NULL AND prs_perslid_nr IS NOT NULL;
+
+ SELECT DECODE (COUNT (*), 0, 1, COUNT (*))
+ INTO v_count_prs_import
+ FROM prs_perslid p, vgld_imp_prs ip
+ WHERE p.prs_perslid_nr IS NOT NULL
+ AND p.prs_perslid_verwijder IS NULL
+ AND p.prs_perslid_nr = ip.prs_perslid_nr;
+
+ IF ((TRUNC ((v_count_prs_import / v_count_prs_actual) * 100) >= (100 - c_max_delta_percentage)))
+ THEN
+ -- Geldig importbestand wat betreft aantal personen
+ FOR recdelprs IN cdelprs
+ LOOP
+ BEGIN
+ -- Heeft persoon actuele/toekomstige verplichtingen?
+ SELECT COUNT (*)
+ INTO v_count
+ FROM prs_perslid p, prs_v_verplichting_keys r
+ WHERE p.prs_perslid_key = r.prs_perslid_key
+ AND p.prs_perslid_key = recdelprs.prs_perslid_key;
+
+ IF (v_count = 0)
+ THEN
+ v_errorhint := 'Fout bij verwijderen persoon';
+
+ UPDATE prs_perslid
+ SET prs_perslid_verwijder = SYSDATE
+ WHERE prs_perslid_key = recdelprs.prs_perslid_key;
+
+ fac.imp_writelog (
+ p_import_key,
+ 'I',
+ 'Persoon met nummer ['
+ || recdelprs.prs_perslid_nr
+ || '] en naam ['
+ || recdelprs.prs_perslid_naam
+ || ', '
+ || recdelprs.prs_perslid_voornaam
+ || '] is verwijderd',
+ 'Persoon is verwijderd');
+ COMMIT;
+ ELSE
+ -- Staat persoon INACTIEF?
+ 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 zetten persoon';
+
+ -- Persoon INACTIEF zetten (update naam + reset oslogin)
+ UPDATE prs_perslid
+ SET prs_perslid_naam =
+ SUBSTR (c_persoon_inactief || prs_perslid_naam, 1, 30),
+ prs_perslid_oslogin = NULL
+ WHERE prs_perslid_key = recdelprs.prs_perslid_key;
+
+ fac.imp_writelog (
+ p_import_key,
+ 'I',
+ 'Persoon met nummer ['
+ || recdelprs.prs_perslid_nr
+ || '] en naam ['
+ || recdelprs.prs_perslid_naam
+ || ', '
+ || recdelprs.prs_perslid_voornaam
+ || '] is INACTIEF gezet',
+ 'Persoon is INACTIEF gezet');
+ ELSE
+ v_errorhint := 'Fout bij INACTIEF maken persoon';
+
+ -- Persoon INACTIEF maken (reset oslogin; indien handmatig INACTIEF gezet)
+ UPDATE prs_perslid
+ SET prs_perslid_oslogin = NULL
+ WHERE prs_perslid_naam LIKE c_persoon_inactief || '%'
+ AND prs_perslid_oslogin IS NOT NULL;
+
+ fac.imp_writelog (
+ p_import_key,
+ 'I',
+ 'Persoon met nummer ['
+ || recdelprs.prs_perslid_nr
+ || '] en naam ['
+ || recdelprs.prs_perslid_naam
+ || ', '
+ || recdelprs.prs_perslid_voornaam
+ || '] is INACTIEF gemaakt',
+ 'Persoon is INACTIEF gemaakt');
+ 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_errormsg,
+ v_errorhint);
+ COMMIT;
+ END;
+ END LOOP;
+
+ v_count_tot := 0;
+ v_count_error := 0;
+
+ FOR recsperslid IN csperslid
+ LOOP
+ BEGIN
+ v_count_tot := v_count_tot + 1;
+ v_aanduiding := recsperslid.prs_srtperslid_omschrijving || ' - ';
+ v_errorhint := 'Fout bij bepalen functie';
+
+ SELECT COUNT (*)
+ INTO v_count
+ FROM prs_srtperslid
+ WHERE UPPER (prs_srtperslid_omschrijving) =
+ UPPER (recsperslid.prs_srtperslid_omschrijving)
+ AND prs_srtperslid_verwijder IS NULL;
+
+ IF (v_count = 0)
+ THEN
+ v_errorhint := 'Fout bij toevoegen functie';
+
+ INSERT INTO prs_srtperslid (prs_srtperslid_omschrijving)
+ VALUES (recsperslid.prs_srtperslid_omschrijving);
+
+ COMMIT;
+ END IF;
+ EXCEPTION
+ WHEN OTHERS
+ THEN
+ v_count_error := v_count_error + 1;
+ oracle_err_num := SQLCODE;
+ oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
+ v_errormsg :=
+ 'OTHERS (error ' || oracle_err_num || '/' || oracle_err_mes || ')';
+ fac.imp_writelog (p_import_key,
+ 'E',
+ v_aanduiding || v_errormsg,
+ v_errorhint);
+ COMMIT;
+ END;
+ END LOOP;
+
+ fac.imp_writelog (
+ p_import_key,
+ 'S',
+ 'Functie: verwerkte regels zonder foutmelding: '
+ || TO_CHAR (v_count_tot - v_count_error),
+ '');
+ fac.imp_writelog (p_import_key,
+ 'S',
+ 'Functie: verwerkte regels met foutmelding: ' || TO_CHAR (v_count_error),
+ '');
+
+ COMMIT;
+
+ v_count_tot := 0;
+ v_count_error := 0;
+
+ FOR recperslid IN cperslid
+ LOOP
+ BEGIN
+ v_count_tot := v_count_tot + 1;
+ v_aanduiding :=
+ recperslid.prs_perslid_nr
+ || '|'
+ || recperslid.prs_perslid_naam
+ || '|'
+ || recperslid.prs_perslid_voornaam
+ || ' - ';
+ v_errorhint :=
+ 'Fout bij bepalen functie [' || recperslid.prs_srtperslid_omschrijving || ']';
+
+ SELECT prs_srtperslid_key
+ INTO v_srtperslid_key
+ FROM prs_srtperslid
+ WHERE prs_srtperslid_verwijder IS NULL
+ AND 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_afdeling
+ WHERE prs_afdeling_verwijder IS NULL
+ AND UPPER (prs_afdeling_naam) = UPPER (recperslid.prs_afdeling_code);
+
+
+ v_errorhint := 'Fout bij bepalen persoon';
+
+ SELECT COUNT (*), MAX (prs_perslid_key)
+ INTO v_count, v_perslid_key
+ FROM prs_perslid
+ WHERE prs_perslid_verwijder IS NULL
+ AND UPPER (prs_perslid_nr) = UPPER (recperslid.prs_perslid_nr);
+
+
+ IF (v_count = 0)
+ THEN
+ v_errorhint := 'Fout bij toevoegen persoon';
+
+ -- Nieuwe persoon uit importbestand, wordt toegevoegd in Facilitor.
+ INSERT INTO prs_perslid (prs_perslid_module,
+ prs_srtperslid_key,
+ prs_afdeling_key,
+ prs_perslid_naam,
+ prs_perslid_voorletters,
+ prs_perslid_tussenvoegsel,
+ prs_perslid_voornaam,
+ prs_perslid_telefoonnr,
+ prs_perslid_mobiel,
+ prs_perslid_email,
+ prs_perslid_nr,
+ prs_perslid_oslogin)
+ VALUES ('PRS',
+ v_srtperslid_key,
+ v_afdeling_key,
+ recperslid.prs_perslid_naam,
+ recperslid.prs_perslid_voorletters,
+ recperslid.prs_perslid_tussenvoegsel,
+ recperslid.prs_perslid_voornaam,
+ recperslid.prs_perslid_telefoonnr,
+ recperslid.prs_perslid_mobiel,
+ recperslid.prs_perslid_email,
+ recperslid.prs_perslid_nr,
+ recperslid.prs_perslid_oslogin);
+
+ COMMIT;
+ ELSE
+ v_errorhint := 'Fout bij wijzigen persoon';
+
+ -- Functie, Afdeling altijd bijwerken
+ -- Voorletters, Naam, Tussenvoegsels, Voornaam alleen indien gevuld wordt aangeboden, anders laten staan wat in DB stond.
+ -- Telefoonnr: alleen bijwerken indien uit AD-dump gevuld, anders niet bijwerken (dus gewoon laten staan zoals in Facilitor was gereigistreerd).
+ -- E-mail: alleen bijwerken indien uit AD-dump gevuld, anders niet bijwerken (dus gewoon laten staan zoals in Facilitor was gereigistreerd).
+ -- Personeelsnr: alleen bijwerken indien uit AD-dump gevuld, anders niet bijwerken (dus gewoon laten staan zoals in Facilitor was gereigistreerd).
+ -- Login: alleen bijwerken indien uit AD-dump gevuld, anders niet bijwerken (dus gewoon laten staan zoals in Facilitor was gereigistreerd).
+
+ UPDATE prs_perslid
+ SET prs_srtperslid_key = v_srtperslid_key,
+ prs_afdeling_key = v_afdeling_key,
+ prs_perslid_naam =
+ COALESCE (recperslid.prs_perslid_naam, prs_perslid_naam),
+ prs_perslid_voorletters =
+ COALESCE (recperslid.prs_perslid_voorletters,
+ prs_perslid_voorletters),
+ prs_perslid_tussenvoegsel =
+ COALESCE (recperslid.prs_perslid_tussenvoegsel,
+ prs_perslid_tussenvoegsel),
+ prs_perslid_voornaam =
+ COALESCE (recperslid.prs_perslid_voornaam, prs_perslid_voornaam),
+ -- VGLD#31908 prs_perslid_telefoonnr = COALESCE (recperslid.prs_perslid_telefoonnr, prs_perslid_telefoonnr),
+ -- VGLD#31908 prs_perslid_mobiel = COALESCE (recperslid.prs_perslid_mobiel, prs_perslid_mobiel),
+ prs_perslid_email =
+ COALESCE (recperslid.prs_perslid_email, prs_perslid_email),
+ prs_perslid_nr = COALESCE (recperslid.prs_perslid_nr, prs_perslid_nr),
+ prs_perslid_oslogin =
+ COALESCE (recperslid.prs_perslid_oslogin, prs_perslid_oslogin)
+ WHERE prs_perslid_key = v_perslid_key;
+
+ 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_nr
+ || '|'
+ || recwp.prs_perslid_naam
+ || '|'
+ || recwp.prs_perslid_voornaam
+ || '|'
+ || recwp.alg_locatie_code
+ || '|'
+ || recwp.alg_gebouw_code
+ || ' - ';
+ v_errorhint := 'Fout bij bepalen persoon';
+
+ SELECT prs_perslid_key
+ INTO v_perslid_key
+ FROM prs_v_aanwezigperslid
+ WHERE UPPER (prs_perslid_nr) = UPPER (recwp.prs_perslid_nr);
+
+ v_errorhint := 'Fout bij bepalen locatie';
+
+ SELECT alg_locatie_key
+ INTO v_locatie_key
+ FROM alg_v_aanweziglocatie
+ WHERE UPPER (alg_locatie_code) = UPPER (recwp.alg_locatie_code);
+
+ v_errorhint := 'Fout bij bepalen gebouw';
+
+ SELECT alg_gebouw_key
+ INTO v_gebouw_key
+ FROM alg_v_aanweziggebouw
+ WHERE alg_locatie_key = v_locatie_key
+ AND UPPER (alg_gebouw_code) = UPPER (recwp.alg_gebouw_code);
+
+ v_errorhint := 'Fout bij bepalen verdieping';
+
+ SELECT alg_verdieping_key
+ INTO v_verdieping_key
+ FROM alg_v_aanwezigverdieping
+ WHERE alg_gebouw_key = v_gebouw_key
+ AND alg_verdieping_volgnr =
+ (SELECT MIN (v.alg_verdieping_volgnr)
+ FROM alg_verdieping v
+ WHERE v.alg_gebouw_key = v_gebouw_key AND v.alg_verdieping_volgnr >= 0);
+
+ v_errorhint := 'Fout bij bepalen of persoon in gebouw een werkplek heeft';
+
+ SELECT COUNT (*)
+ INTO v_count
+ FROM prs_perslidwerkplek pw,
+ prs_werkplek wp,
+ alg_ruimte r,
+ alg_verdieping v
+ WHERE pw.prs_perslid_key = v_perslid_key
+ AND pw.prs_werkplek_key = wp.prs_werkplek_key
+ AND wp.prs_alg_ruimte_key = r.alg_ruimte_key
+ AND r.alg_verdieping_key = v.alg_verdieping_key
+ AND v.alg_gebouw_key = v_gebouw_key;
+
+ -- v_count=0 -> persoon verhuist naar/krijgt wp in gebouw.
+ IF (v_count = 0)
+ THEN
+ v_errorhint := 'Fout bij bepalen ruimte';
+
+ SELECT COUNT (*)
+ INTO v_count
+ FROM alg_v_aanwezigruimte r
+ WHERE r.alg_verdieping_key = v_verdieping_key
+ AND r.alg_ruimte_nr = c_ruimte_nr;
+
+ -- v_count=0 -> ruimte '000' bestaat nog niet.
+ IF (v_count = 0)
+ THEN
+ v_errorhint := 'Fout bij toevoegen ruimte';
+
+ INSERT INTO alg_ruimte (alg_verdieping_key,
+ alg_srtruimte_key,
+ alg_ruimte_nr)
+ VALUES (v_verdieping_key, 21, -- facilitaire ruimte
+ c_ruimte_nr);
+
+ COMMIT;
+ END IF;
+
+ v_errorhint := 'Fout bij bepalen ruimte';
+
+ SELECT alg_ruimte_key
+ INTO v_ruimte_key
+ FROM alg_v_aanwezigruimte r
+ WHERE r.alg_verdieping_key = v_verdieping_key
+ AND r.alg_ruimte_nr = c_ruimte_nr;
+
+ v_errorhint := 'Fout bij bepalen vrije werkplek';
+
+ SELECT COUNT (w.prs_werkplek_key)
+ INTO v_count
+ FROM prs_werkplek w
+ WHERE w.prs_alg_ruimte_key = v_ruimte_key
+ AND NOT EXISTS
+ (SELECT 1
+ FROM prs_perslidwerkplek pw
+ WHERE pw.prs_werkplek_key = w.prs_werkplek_key);
+
+ IF (v_count > 0)
+ THEN
+ SELECT MIN (w.prs_werkplek_key)
+ INTO v_wp_key
+ FROM prs_werkplek w
+ WHERE w.prs_alg_ruimte_key = v_ruimte_key
+ AND NOT EXISTS
+ (SELECT 1
+ FROM prs_perslidwerkplek pw
+ WHERE pw.prs_werkplek_key = w.prs_werkplek_key);
+
+ v_errorhint := 'Fout bij koppelen persoon aan vrije werkplek';
+
+ INSERT INTO prs_perslidwerkplek (prs_perslid_key,
+ prs_werkplek_key,
+ prs_perslidwerkplek_bezetting)
+ VALUES (v_perslid_key, v_wp_key, 100);
+
+ COMMIT;
+ ELSE
+ v_errorhint := 'Fout bij bepalen nieuwe werkplek';
+
+ SELECT prs_s_prs_werkplek_key.NEXTVAL INTO v_wp_key FROM DUAL;
+
+ SELECT COALESCE (MAX (w.prs_werkplek_volgnr), 0) + 1
+ INTO v_wp_volgnr
+ FROM prs_werkplek w
+ WHERE w.prs_alg_ruimte_key = v_ruimte_key;
+
+ v_wp_oms := c_ruimte_nr || '/' || TO_CHAR (v_wp_volgnr);
+
+ v_errorhint := 'Fout bij aanmaken nieuwe werkplek';
+
+ INSERT INTO prs_werkplek (prs_werkplek_key,
+ prs_werkplek_module,
+ prs_werkplek_volgnr,
+ prs_werkplek_omschrijving,
+ prs_alg_ruimte_key)
+ VALUES (v_wp_key,
+ 'PRR',
+ v_wp_volgnr,
+ v_wp_oms,
+ v_ruimte_key);
+
+ v_errorhint := 'Fout bij koppelen persoon aan nieuwe werkplek';
+
+ INSERT INTO prs_perslidwerkplek (prs_perslid_key,
+ prs_werkplek_key,
+ prs_perslidwerkplek_bezetting)
+ VALUES (v_perslid_key, v_wp_key, 100);
+
+ COMMIT;
+ END IF;
+ END IF;
+ EXCEPTION
+ WHEN OTHERS
+ THEN
+ v_count_error := v_count_error + 1;
+ oracle_err_num := SQLCODE;
+ oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
+ v_errormsg :=
+ 'OTHERS (error ' || oracle_err_num || '/' || oracle_err_mes || ')';
+ fac.imp_writelog (p_import_key,
+ 'E',
+ v_aanduiding || v_errormsg,
+ v_errorhint);
+ COMMIT;
+ END;
+ END LOOP;
+
+ fac.imp_writelog (
+ p_import_key,
+ 'S',
+ 'Werkplek: verwerkte regels zonder foutmelding: '
+ || TO_CHAR (v_count_tot - v_count_error),
+ '');
+ fac.imp_writelog (
+ p_import_key,
+ 'S',
+ 'Werkplek: verwerkte regels met foutmelding: ' || TO_CHAR (v_count_error),
+ '');
+ COMMIT;
+
+ FOR recnowp IN cnowp
+ LOOP
+ BEGIN
+ fac.imp_writelog (
+ p_import_key,
+ 'I',
+ 'Persoon met nummer ['
+ || recnowp.prs_perslid_nr
+ || '] en naam ['
+ || recnowp.prs_perslid_naam
+ || ', '
+ || recnowp.prs_perslid_voornaam
+ || '] heeft geen werkplek',
+ 'Geen werkplek');
+ COMMIT;
+ EXCEPTION
+ WHEN OTHERS
+ THEN
+ oracle_err_num := SQLCODE;
+ oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
+ v_errormsg :=
+ 'OTHERS (error ' || oracle_err_num || '/' || oracle_err_mes || ')';
+ fac.imp_writelog (p_import_key,
+ 'E',
+ v_errormsg,
+ v_errorhint);
+ COMMIT;
+ END;
+ END LOOP;
+
+ -- Iedereen krijgt _default-rol die nog geen groep heeft.
+ FOR recnogroup IN cnogroup
+ LOOP
+ BEGIN
+ v_aanduiding :=
+ recnogroup.prs_perslid_nr
+ || '|'
+ || recnogroup.prs_perslid_naam
+ || '|'
+ || recnogroup.prs_perslid_voornaam
+ || ' - ';
+ v_errorhint := 'Fout bij bepalen groep met key [' || c_key_default_rol || ']';
+
+ SELECT fac_groep_upper
+ INTO v_groep_defaultnaam
+ FROM fac_groep
+ WHERE fac_groep_key = c_key_default_rol;
+
+
+ v_errorhint :=
+ 'Fout bij koppelen persoon aan groep met key [' || c_key_default_rol || ']';
+
+ INSERT INTO fac_gebruikersgroep (fac_groep_key, prs_perslid_key)
+ VALUES (c_key_default_rol, 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;
+ 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)
+ || '%]
'
+ || '- #personen importbestand = ['
+ || TO_CHAR (v_count_prs_import)
+ || ']
'
+ || '- #personen Facilitor = ['
+ || TO_CHAR (v_count_prs_actual)
+ || ']');
+ COMMIT;
+ END IF; -- Geldig importbestand wat betreft aantal inserts
+
+ COMMIT;
+
+ -- VGLD#51449 iedereen mandateren voor alle kostenplaatsen
+ INSERT INTO prs_perslidkostenplaats (prs_perslid_key,
+ prs_kostenplaats_key,
+ prs_perslidkostenplaats_boeken,
+ prs_perslidkostenplaats_inzage)
+ SELECT p.prs_perslid_key,
+ NULL,
+ 1,
+ 0
+ FROM prs_v_aanwezigperslid p
+ WHERE NOT EXISTS
+ (SELECT 1
+ FROM prs_perslidkostenplaats
+ WHERE prs_perslid_key = p.prs_perslid_key);
END vgld_update_prs;
/
-
-
------
------ FACTUUREXPORT / KOPPELING EXACT
------
-- View waarin bij de factuur met fin_factuur_key het bijbehorende factuurbestand (PDF) geldt.
-CREATE OR REPLACE VIEW vgld_v_factuur_bestand (fin_factuur_key, fin_factuur_bestand)
+
+CREATE OR REPLACE VIEW vgld_v_factuur_bestand
+(
+ fin_factuur_key,
+ fin_factuur_bestand
+)
AS
-SELECT kf.fin_factuur_key, kf.fin_kenmerkfactuur_waarde
-FROM fin_kenmerkfactuur kf
-WHERE kf.fin_kenmerkfactuur_verwijder IS NULL
-AND fin_kenmerk_key = 1;
+ SELECT kf.fin_factuur_key, kf.fin_kenmerkfactuur_waarde
+ FROM fin_kenmerkfactuur kf
+ WHERE kf.fin_kenmerkfactuur_verwijder IS NULL AND fin_kenmerk_key = 1;
-- View waarin bij de factuur met fin_factuur_key het bijbehorende betaalreferentie of betaalkenmerk geldt.
-CREATE OR REPLACE VIEW vgld_v_factuur_betaalref (fin_factuur_key, fin_factuur_betaalref)
+
+CREATE OR REPLACE VIEW vgld_v_factuur_betaalref
+(
+ fin_factuur_key,
+ fin_factuur_betaalref
+)
AS
-SELECT kf.fin_factuur_key, kf.fin_kenmerkfactuur_waarde
-FROM fin_kenmerkfactuur kf
-WHERE kf.fin_kenmerkfactuur_verwijder IS NULL
-AND fin_kenmerk_key = 2;
+ SELECT kf.fin_factuur_key, kf.fin_kenmerkfactuur_waarde
+ FROM fin_kenmerkfactuur kf
+ WHERE kf.fin_kenmerkfactuur_verwijder IS NULL AND fin_kenmerk_key = 2;
-- View waarin bij de factuur met fin_factuur_key de omschrijving van de kopregel (naar Exact) wordt bepaald.
-CREATE OR REPLACE VIEW vgld_v_factuur_omschr_kopregel (fin_factuur_key, fin_factuur_omschr_kopregel)
+
+CREATE OR REPLACE VIEW vgld_v_factuur_omschr_kopregel
+(
+ fin_factuur_key,
+ fin_factuur_omschr_kopregel
+)
AS
-SELECT kf.fin_factuur_key, kf.fin_kenmerkfactuur_waarde
-FROM fin_kenmerkfactuur kf
-WHERE kf.fin_kenmerkfactuur_verwijder IS NULL
-AND fin_kenmerk_key = 81;
+ SELECT kf.fin_factuur_key, kf.fin_kenmerkfactuur_waarde
+ FROM fin_kenmerkfactuur kf
+ WHERE kf.fin_kenmerkfactuur_verwijder IS NULL AND fin_kenmerk_key = 81;
-- View waarin bij de factuur met fin_factuur_key de omschrijving van de kopregel (naar Exact) wordt bepaald.
-CREATE OR REPLACE VIEW vgld_v_factuurregel_datum (fin_factuurregel_key, fin_factuurregel_datum)
+
+CREATE OR REPLACE VIEW vgld_v_factuurregel_datum
+(
+ fin_factuurregel_key,
+ fin_factuurregel_datum
+)
AS
-SELECT kfr.fin_factuurregel_key, kfr.fin_kenmerkfactregel_waarde
-FROM fin_kenmerkfactregel kfr
-WHERE kfr.fin_kenmerkfactregel_verwijder IS NULL
-AND fin_kenmerk_key = 82;
+ SELECT kfr.fin_factuurregel_key, kfr.fin_kenmerkfactregel_waarde
+ FROM fin_kenmerkfactregel kfr
+ WHERE kfr.fin_kenmerkfactregel_verwijder IS NULL AND fin_kenmerk_key = 82;
-- view tbv export naar exact
-CREATE OR REPLACE VIEW vgld_v_factuur_mldcnt_gegevens (
- fin_factuur_key,
- opdracht_id,
- fin_factuur_datum,
- fin_factuur_boekmaand,
- fin_factuur_nr,
- fin_factuur_bestand,
- prs_bedrijf_key,
- fin_factuurregel_totaal,
- fin_factuurregel_btw,
- fin_factuurregel_btw_perc,
- fin_btwtabelwaarde_btwcode,
- fin_factuurregel_nr,
- fin_factuurregel_omschrijving,
- fin_factuurregel_datum,
- fin_factuur_debiteur_nr,
- fin_factuur_betaalref,
- fin_factuur_omschr_kopregel,
- project_nummer,
- prs_kostensoort_oms,
- prs_kostensoort_doorbelasten,
- prs_kostenplaats_nr,
- bes_opdr_key,
- mld_opdr_key,
- cnt_contract_key,
- fin_factuur_statuses_key
- )
+
+CREATE OR REPLACE VIEW vgld_v_factuur_mldcnt_gegevens
+(
+ fin_factuur_key,
+ opdracht_id,
+ fin_factuur_datum,
+ fin_factuur_boekmaand,
+ fin_factuur_nr,
+ fin_factuur_bestand,
+ prs_bedrijf_key,
+ fin_factuurregel_totaal,
+ fin_factuurregel_btw,
+ fin_factuurregel_btw_perc,
+ fin_btwtabelwaarde_btwcode,
+ fin_factuurregel_nr,
+ fin_factuurregel_omschrijving,
+ fin_factuurregel_datum,
+ fin_factuur_debiteur_nr,
+ fin_factuur_betaalref,
+ fin_factuur_omschr_kopregel,
+ project_nummer,
+ prs_kostensoort_oms,
+ prs_kostensoort_doorbelasten,
+ prs_kostenplaats_nr,
+ bes_opdr_key,
+ mld_opdr_key,
+ cnt_contract_key,
+ fin_factuur_statuses_key
+)
AS
- SELECT DISTINCT f.fin_factuur_key,
- COALESCE (TO_CHAR (cnt_contract_nummer),
- (SELECT sd.ins_srtdiscipline_prefix
- || m.mld_melding_key
- || '/'
- || o.mld_opdr_bedrijfopdr_volgnr
- FROM mld_melding m,
- mld_stdmelding std,
- ins_tab_discipline d,
- ins_srtdiscipline sd
- WHERE m.mld_melding_key = o.mld_melding_key
- AND m.mld_stdmelding_key = std.mld_stdmelding_key
- AND std.mld_ins_discipline_key = d.ins_discipline_key
- AND d.ins_srtdiscipline_key =
- sd.ins_srtdiscipline_key)
- )
- opdracht_id,
- f.fin_factuur_datum,
- f.fin_factuur_boekmaand,
- f.fin_factuur_nr,
- fb.fin_factuur_bestand,
- COALESCE (b_c.prs_bedrijf_key, b_o.prs_bedrijf_key) prs_bedrijf_key,
- fr.fin_factuurregel_totaal,
- fr.fin_factuurregel_btw,
- btw.fin_btwtabelwaarde_perc,
- btw.fin_btwtabelwaarde_code,
- fr.fin_factuurregel_nr,
- fr.fin_factuurregel_omschrijving,
- frd.fin_factuurregel_datum,
- f.fin_factuur_debiteur_nr,
- fbr.fin_factuur_betaalref,
- fok.fin_factuur_omschr_kopregel,
- NULL projectnummer,
- COALESCE(ks_regel.prs_kostensoort_oms,ks.prs_kostensoort_oms),
- DECODE(ks_regel.prs_kostensoort_oms, NULL, ks.prs_kostensoort_doorbelasten, ks_regel.prs_kostensoort_doorbelasten),
- COALESCE (kp_c.prs_kostenplaats_nr, kp_o.prs_kostenplaats_nr) prs_kostenplaats_nr,
- NULL bes_opdr_key,
- o.mld_opdr_key,
- c.cnt_contract_key,
- f.fin_factuur_statuses_key
- FROM fin_factuur f,
- vgld_v_factuur_bestand fb,
- vgld_v_factuur_betaalref fbr,
- vgld_v_factuur_omschr_kopregel fok,
- fin_factuurregel fr,
- vgld_v_factuurregel_datum frd,
- fin_btwtabelwaarde btw,
- mld_opdr o,
- mld_typeopdr ot,
- cnt_contract c,
- prs_bedrijf b_o,
- prs_bedrijf b_c,
- prs_kostensoort ks,
- prs_kostensoort ks_regel,
- prs_kostenplaats kp_c,
- prs_kostenplaats kp_o
- WHERE f.fin_factuur_key = fr.fin_factuur_key
- AND fr.fin_factuurregel_key = frd.fin_factuurregel_key(+)
- AND fr.fin_btwtabelwaarde_key = btw.fin_btwtabelwaarde_key
- AND f.fin_factuur_key = fb.fin_factuur_key(+)
- AND f.fin_factuur_key = fbr.fin_factuur_key(+)
- AND f.fin_factuur_key = fok.fin_factuur_key(+)
- AND f.bes_bestelopdr_key is null
- AND f.mld_opdr_key = o.mld_opdr_key(+)
- AND o.prs_kostenplaats_key = kp_o.prs_kostenplaats_key (+)
- AND o.mld_typeopdr_key = ot.mld_typeopdr_key(+)
- AND f.cnt_contract_key = c.cnt_contract_key(+)
- AND o.mld_uitvoerende_keys = b_o.prs_bedrijf_key(+)
- AND c.cnt_prs_bedrijf_key = b_c.prs_bedrijf_key(+)
- AND c.prs_kostenplaats_key = kp_c.prs_kostenplaats_key (+)
- AND f.prs_kostensoort_key = ks.prs_kostensoort_key(+)
- AND fr.prs_kostensoort_key = ks_regel.prs_kostensoort_key(+);
+ SELECT DISTINCT
+ f.fin_factuur_key,
+ COALESCE (
+ TO_CHAR (cnt_contract_nummer),
+ (SELECT sd.ins_srtdiscipline_prefix
+ || m.mld_melding_key
+ || '/'
+ || o.mld_opdr_bedrijfopdr_volgnr
+ FROM mld_melding m,
+ mld_stdmelding std,
+ ins_tab_discipline d,
+ ins_srtdiscipline sd
+ WHERE m.mld_melding_key = o.mld_melding_key
+ AND m.mld_stdmelding_key = std.mld_stdmelding_key
+ AND std.mld_ins_discipline_key = d.ins_discipline_key
+ AND d.ins_srtdiscipline_key = sd.ins_srtdiscipline_key))
+ opdracht_id,
+ f.fin_factuur_datum,
+ f.fin_factuur_boekmaand,
+ f.fin_factuur_nr,
+ fb.fin_factuur_bestand,
+ COALESCE (b_c.prs_bedrijf_key, b_o.prs_bedrijf_key)
+ prs_bedrijf_key,
+ fr.fin_factuurregel_totaal,
+ fr.fin_factuurregel_btw,
+ btw.fin_btwtabelwaarde_perc,
+ btw.fin_btwtabelwaarde_code,
+ fr.fin_factuurregel_nr,
+ fr.fin_factuurregel_omschrijving,
+ frd.fin_factuurregel_datum,
+ f.fin_factuur_debiteur_nr,
+ fbr.fin_factuur_betaalref,
+ fok.fin_factuur_omschr_kopregel,
+ NULL
+ projectnummer,
+ COALESCE (ks_regel.prs_kostensoort_oms, ks.prs_kostensoort_oms),
+ DECODE (ks_regel.prs_kostensoort_oms,
+ NULL, ks.prs_kostensoort_doorbelasten,
+ ks_regel.prs_kostensoort_doorbelasten),
+ COALESCE (kp_c.prs_kostenplaats_nr, kp_o.prs_kostenplaats_nr)
+ prs_kostenplaats_nr,
+ NULL
+ bes_opdr_key,
+ o.mld_opdr_key,
+ c.cnt_contract_key,
+ f.fin_factuur_statuses_key
+ FROM fin_factuur f,
+ vgld_v_factuur_bestand fb,
+ vgld_v_factuur_betaalref fbr,
+ vgld_v_factuur_omschr_kopregel fok,
+ fin_factuurregel fr,
+ vgld_v_factuurregel_datum frd,
+ fin_btwtabelwaarde btw,
+ mld_opdr o,
+ mld_typeopdr ot,
+ cnt_contract c,
+ prs_bedrijf b_o,
+ prs_bedrijf b_c,
+ prs_kostensoort ks,
+ prs_kostensoort ks_regel,
+ prs_kostenplaats kp_c,
+ prs_kostenplaats kp_o
+ WHERE f.fin_factuur_key = fr.fin_factuur_key
+ AND fr.fin_factuurregel_key = frd.fin_factuurregel_key(+)
+ AND fr.fin_btwtabelwaarde_key = btw.fin_btwtabelwaarde_key
+ AND f.fin_factuur_key = fb.fin_factuur_key(+)
+ AND f.fin_factuur_key = fbr.fin_factuur_key(+)
+ AND f.fin_factuur_key = fok.fin_factuur_key(+)
+ AND f.bes_bestelopdr_key IS NULL
+ AND f.mld_opdr_key = o.mld_opdr_key(+)
+ AND o.prs_kostenplaats_key = kp_o.prs_kostenplaats_key(+)
+ AND o.mld_typeopdr_key = ot.mld_typeopdr_key(+)
+ AND f.cnt_contract_key = c.cnt_contract_key(+)
+ AND o.mld_uitvoerende_keys = b_o.prs_bedrijf_key(+)
+ AND c.cnt_prs_bedrijf_key = b_c.prs_bedrijf_key(+)
+ AND c.prs_kostenplaats_key = kp_c.prs_kostenplaats_key(+)
+ AND f.prs_kostensoort_key = ks.prs_kostensoort_key(+)
+ AND fr.prs_kostensoort_key = ks_regel.prs_kostensoort_key(+);
-CREATE OR REPLACE VIEW vgld_v_factuur_bes_gegevens (
- fin_factuur_key,
- opdracht_id,
- fin_factuur_datum,
- fin_factuur_boekmaand,
- fin_factuur_nr,
- fin_factuur_bestand,
- prs_bedrijf_key,
- fin_factuurregel_totaal,
- fin_factuurregel_btw,
- fin_factuurregel_btw_perc,
- fin_btwtabelwaarde_btwcode,
- fin_factuurregel_nr,
- fin_factuurregel_omschrijving,
- fin_factuurregel_datum,
- fin_factuur_debiteur_nr,
- fin_factuur_betaalref,
- fin_factuur_omschr_kopregel,
- project_nummer,
- prs_kostensoort_oms,
- prs_kostensoort_doorbelasten,
- prs_kostenplaats_nr,
- bes_opdr_key,
- mld_opdr_key,
- cnt_contract_key,
- fin_factuur_statuses_key
- )
+CREATE OR REPLACE VIEW vgld_v_factuur_bes_gegevens
+(
+ fin_factuur_key,
+ opdracht_id,
+ fin_factuur_datum,
+ fin_factuur_boekmaand,
+ fin_factuur_nr,
+ fin_factuur_bestand,
+ prs_bedrijf_key,
+ fin_factuurregel_totaal,
+ fin_factuurregel_btw,
+ fin_factuurregel_btw_perc,
+ fin_btwtabelwaarde_btwcode,
+ fin_factuurregel_nr,
+ fin_factuurregel_omschrijving,
+ fin_factuurregel_datum,
+ fin_factuur_debiteur_nr,
+ fin_factuur_betaalref,
+ fin_factuur_omschr_kopregel,
+ project_nummer,
+ prs_kostensoort_oms,
+ prs_kostensoort_doorbelasten,
+ prs_kostenplaats_nr,
+ bes_opdr_key,
+ mld_opdr_key,
+ cnt_contract_key,
+ fin_factuur_statuses_key
+)
AS
- SELECT DISTINCT f.fin_factuur_key,
- TO_CHAR (bo.bes_bestelopdr_id) opdracht_id,
- f.fin_factuur_datum,
- f.fin_factuur_boekmaand,
- f.fin_factuur_nr,
- fb.fin_factuur_bestand,
- b.prs_bedrijf_key,
- fr.fin_factuurregel_totaal,
- fr.fin_factuurregel_btw,
- btw.fin_btwtabelwaarde_perc,
- btw.fin_btwtabelwaarde_code,
- fr.fin_factuurregel_nr,
- fr.fin_factuurregel_omschrijving,
- frd.fin_factuurregel_datum,
- f.fin_factuur_debiteur_nr,
- fbr.fin_factuur_betaalref,
- fok.fin_factuur_omschr_kopregel,
- NULL projectnummer,
- COALESCE(ks_regel.prs_kostensoort_oms,ks.prs_kostensoort_oms),
- DECODE(ks_regel.prs_kostensoort_oms, NULL, ks.prs_kostensoort_doorbelasten, ks_regel.prs_kostensoort_doorbelasten),
- kp.prs_kostenplaats_nr,
- bo.bes_bestelopdr_key bes_opdr_key,
- NULL mld_opdr_key,
- NULL cnt_contract_key,
- f.fin_factuur_statuses_key
- FROM bes_bestelopdr bo,
- prs_bedrijf b,
- bes_bestelling bes,
- bes_bestelopdr_item boi,
- bes_bestelling_item bi,
- fin_factuur f,
- vgld_v_factuur_bestand fb,
- vgld_v_factuur_betaalref fbr,
- vgld_v_factuur_omschr_kopregel fok,
- fin_factuurregel fr,
- vgld_v_factuurregel_datum frd,
- fin_btwtabelwaarde btw,
- prs_kostensoort ks,
- prs_kostensoort ks_regel,
- prs_kostenplaats kp
- WHERE b.prs_bedrijf_key = bo.prs_bedrijf_key
- AND bo.bes_bestelopdr_key = boi.bes_bestelopdr_key
- AND bi.bes_bestelopdr_item_key = boi.bes_bestelopdr_item_key
- AND bes.bes_bestelling_key = bi.bes_bestelling_key
- AND kp.prs_kostenplaats_key = bes.prs_kostenplaats_key
- AND f.prs_kostensoort_key = ks.prs_kostensoort_key(+)
- AND fr.prs_kostensoort_key = ks_regel.prs_kostensoort_key(+)
- AND f.bes_bestelopdr_key = bo.bes_bestelopdr_key
- AND f.fin_factuur_key = fr.fin_factuur_key
- AND fr.fin_factuurregel_key = frd.fin_factuurregel_key(+)
- AND fr.fin_btwtabelwaarde_key = btw.fin_btwtabelwaarde_key
- AND f.fin_factuur_key = fb.fin_factuur_key(+)
- AND f.fin_factuur_key = fbr.fin_factuur_key(+)
- AND f.fin_factuur_key = fok.fin_factuur_key(+);
+ SELECT DISTINCT
+ f.fin_factuur_key,
+ TO_CHAR (bo.bes_bestelopdr_id)
+ opdracht_id,
+ f.fin_factuur_datum,
+ f.fin_factuur_boekmaand,
+ f.fin_factuur_nr,
+ fb.fin_factuur_bestand,
+ b.prs_bedrijf_key,
+ fr.fin_factuurregel_totaal,
+ fr.fin_factuurregel_btw,
+ btw.fin_btwtabelwaarde_perc,
+ btw.fin_btwtabelwaarde_code,
+ fr.fin_factuurregel_nr,
+ fr.fin_factuurregel_omschrijving,
+ frd.fin_factuurregel_datum,
+ f.fin_factuur_debiteur_nr,
+ fbr.fin_factuur_betaalref,
+ fok.fin_factuur_omschr_kopregel,
+ NULL
+ projectnummer,
+ COALESCE (ks_regel.prs_kostensoort_oms, ks.prs_kostensoort_oms),
+ DECODE (ks_regel.prs_kostensoort_oms,
+ NULL, ks.prs_kostensoort_doorbelasten,
+ ks_regel.prs_kostensoort_doorbelasten),
+ kp.prs_kostenplaats_nr,
+ bo.bes_bestelopdr_key
+ bes_opdr_key,
+ NULL
+ mld_opdr_key,
+ NULL
+ cnt_contract_key,
+ f.fin_factuur_statuses_key
+ FROM bes_bestelopdr bo,
+ prs_bedrijf b,
+ bes_bestelling bes,
+ bes_bestelopdr_item boi,
+ bes_bestelling_item bi,
+ fin_factuur f,
+ vgld_v_factuur_bestand fb,
+ vgld_v_factuur_betaalref fbr,
+ vgld_v_factuur_omschr_kopregel fok,
+ fin_factuurregel fr,
+ vgld_v_factuurregel_datum frd,
+ fin_btwtabelwaarde btw,
+ prs_kostensoort ks,
+ prs_kostensoort ks_regel,
+ prs_kostenplaats kp
+ WHERE b.prs_bedrijf_key = bo.prs_bedrijf_key
+ AND bo.bes_bestelopdr_key = boi.bes_bestelopdr_key
+ AND bi.bes_bestelopdr_item_key = boi.bes_bestelopdr_item_key
+ AND bes.bes_bestelling_key = bi.bes_bestelling_key
+ AND kp.prs_kostenplaats_key = bes.prs_kostenplaats_key
+ AND f.prs_kostensoort_key = ks.prs_kostensoort_key(+)
+ AND fr.prs_kostensoort_key = ks_regel.prs_kostensoort_key(+)
+ AND f.bes_bestelopdr_key = bo.bes_bestelopdr_key
+ AND f.fin_factuur_key = fr.fin_factuur_key
+ AND fr.fin_factuurregel_key = frd.fin_factuurregel_key(+)
+ AND fr.fin_btwtabelwaarde_key = btw.fin_btwtabelwaarde_key
+ AND f.fin_factuur_key = fb.fin_factuur_key(+)
+ AND f.fin_factuur_key = fbr.fin_factuur_key(+)
+ AND f.fin_factuur_key = fok.fin_factuur_key(+);
CREATE OR REPLACE VIEW vgld_v_factuur_geg
AS
-SELECT * from vgld_v_factuur_mldcnt_gegevens
-UNION
-SELECT * from vgld_v_factuur_bes_gegevens;
+ SELECT * FROM vgld_v_factuur_mldcnt_gegevens
+ UNION
+ SELECT * FROM vgld_v_factuur_bes_gegevens;
CREATE OR REPLACE VIEW vgld_v_factuur_geg_akkoord
AS
-SELECT * from vgld_v_factuur_mldcnt_gegevens
-WHERE fin_factuur_statuses_key = 6
-UNION
-SELECT * from vgld_v_factuur_bes_gegevens
-WHERE fin_factuur_statuses_key = 6;
+ SELECT *
+ FROM vgld_v_factuur_mldcnt_gegevens
+ WHERE fin_factuur_statuses_key = 6
+ UNION
+ SELECT *
+ FROM vgld_v_factuur_bes_gegevens
+ WHERE fin_factuur_statuses_key = 6;
-- De OUDE ascii-rapportage van het exportbestand die voor Exact zou worden gegenereerd.
+
CREATE OR REPLACE VIEW vgld_v_rap_exact
-(regelnummer,dagb_type, dagbknr, periode, bkjcode, bkstnr, oms25, datum, empty9, debnr,
- crdnr, empty12, bedrag, drbk_in_val, valcode, koers, kredbep, bdrkredbep, vervdatfak, vervdatkrd,
- empty21, empty22, weeknummer, betaalref, betwijze, grek_bdr, empty27, empty28, empty29, empty30,
- empty31, transsubtype, empty33, empty34, empty35, empty36, empty37, empty38, projectnr, field40)
+(
+ regelnummer,
+ dagb_type,
+ dagbknr,
+ periode,
+ bkjcode,
+ bkstnr,
+ oms25,
+ datum,
+ empty9,
+ debnr,
+ crdnr,
+ empty12,
+ bedrag,
+ drbk_in_val,
+ valcode,
+ koers,
+ kredbep,
+ bdrkredbep,
+ vervdatfak,
+ vervdatkrd,
+ empty21,
+ empty22,
+ weeknummer,
+ betaalref,
+ betwijze,
+ grek_bdr,
+ empty27,
+ empty28,
+ empty29,
+ empty30,
+ empty31,
+ transsubtype,
+ empty33,
+ empty34,
+ empty35,
+ empty36,
+ empty37,
+ empty38,
+ projectnr,
+ field40
+)
AS
- SELECT regelnummer,dagb_type, dagbknr, periode, bkjcode, bkstnr, oms25, datum, empty9, debnr,
- crdnr, empty12, bedrag, drbk_in_val, valcode, koers, kredbep, bdrkredbep, vervdatfak, vervdatkrd,
- empty21, empty22, weeknummer, betaalref, betwijze, grek_bdr, empty27, empty28, empty29, empty30,
- empty31, transsubtype, empty33, empty34, empty35, empty36, empty37, empty38, projectnr, '!'
- FROM (SELECT 0 regelnummer,
- 'I' dagb_type,
- '42' dagbknr,
- '' periode,
- '' bkjcode,
- TO_CHAR (fin_factuur_key) bkstnr,
- opdracht_id oms25,
- TO_CHAR (fin_factuur_datum, 'ddmmyyyy') datum,
- '' empty9,
- '' debnr,
- (SELECT prs_leverancier_nr
- FROM prs_bedrijf b
- WHERE b.prs_bedrijf_key = fg.prs_bedrijf_key)
- crdnr,
- '' empty12,
- REPLACE (TO_CHAR (bedrag), ',', '.') bedrag,
- '' drbk_in_val,
- '' valcode,
- '' koers,
- '' kredbep,
- '' bdrkredbep,
- '' vervdatfak,
- '' vervdatkrd,
- '' empty21,
- '' empty22,
- '' weeknummer,
- COALESCE(fin_factuur_betaalref, fin_factuur_nr || '/' || fin_factuur_debiteur_nr) betaalref,
- '' betwijze,
- '' grek_bdr,
- '' empty27,
- '' empty28,
- '' empty29,
- '' empty30,
- '' empty31,
- '' transsubtype,
- '' empty33,
- '' empty34,
- '' empty35,
- '' empty36,
- '' empty37,
- '' empty38,
- '' projectnr,
- '!' empty40
- FROM (SELECT fin_factuur_key,
- opdracht_id,
- fin_factuur_datum,
- fin_factuur_nr,
- prs_bedrijf_key,
- fin_factuur_debiteur_nr,
- fin_factuur_betaalref,
- SUM (fin_factuurregel_totaal + fin_factuurregel_btw)
- bedrag
- FROM vgld_v_factuur_geg_akkoord
- GROUP BY fin_factuur_key,
- opdracht_id,
- fin_factuur_datum,
- fin_factuur_nr,
- prs_bedrijf_key,
- fin_factuur_debiteur_nr,
- fin_factuur_betaalref) fg
- UNION ALL
- SELECT fin_factuurregel_nr regelnummer,
- 'I' dagb_type,
- '42' dagbknr,
- '' periode,
- '' bkjcode,
- TO_CHAR (fin_factuur_key) boekstuknummer,
- COALESCE(fin_factuur_betaalref, fin_factuur_nr || '/' || fin_factuur_debiteur_nr) oms25,
- TO_CHAR (fin_factuur_datum, 'ddmmyyyy') datum,
- prs_kostensoort_oms reknr,
- '' debnr,
- (SELECT prs_leverancier_nr
- FROM prs_bedrijf b
- WHERE b.prs_bedrijf_key = fg.prs_bedrijf_key)
- crdnr,
- '' empty12,
- REPLACE (TO_CHAR (fin_factuurregel_totaal), ',', '.') bedrag,
- '' drbk_in_val,
- '' val_code,
- '' koers,
- '' kredbep,
- '' bdrkredbep,
- '' vervdatfak,
- '' vervdatkrd,
- fin_btwtabelwaarde_btwcode btw_code,
- REPLACE (TO_CHAR (fin_factuurregel_btw), ',', '.') btw_bdr,
- '' weeknummer,
- '' empty24,
- '' empty25,
- '' empty26,
- prs_kostenplaats_nr kstplcode,
- '' kstdrcode,
- '' empty29,
- '' empty30,
- '' empty31,
- '' transsubtype,
- '' empty33,
- '' empty34,
- '' emtpy35,
- '' empty36,
- '' empty37,
- '' empty38,
- project_nummer projectnr,
- '!' empty40
- FROM vgld_v_factuur_geg_akkoord fg);
-
-
-
+ SELECT regelnummer,
+ dagb_type,
+ dagbknr,
+ periode,
+ bkjcode,
+ bkstnr,
+ oms25,
+ datum,
+ empty9,
+ debnr,
+ crdnr,
+ empty12,
+ bedrag,
+ drbk_in_val,
+ valcode,
+ koers,
+ kredbep,
+ bdrkredbep,
+ vervdatfak,
+ vervdatkrd,
+ empty21,
+ empty22,
+ weeknummer,
+ betaalref,
+ betwijze,
+ grek_bdr,
+ empty27,
+ empty28,
+ empty29,
+ empty30,
+ empty31,
+ transsubtype,
+ empty33,
+ empty34,
+ empty35,
+ empty36,
+ empty37,
+ empty38,
+ projectnr,
+ '!'
+ FROM (SELECT 0 regelnummer,
+ 'I' dagb_type,
+ '42' dagbknr,
+ '' periode,
+ '' bkjcode,
+ TO_CHAR (fin_factuur_key) bkstnr,
+ opdracht_id oms25,
+ TO_CHAR (fin_factuur_datum, 'ddmmyyyy') datum,
+ '' empty9,
+ '' debnr,
+ (SELECT prs_leverancier_nr
+ FROM prs_bedrijf b
+ WHERE b.prs_bedrijf_key = fg.prs_bedrijf_key) crdnr,
+ '' empty12,
+ REPLACE (TO_CHAR (bedrag), ',', '.') bedrag,
+ '' drbk_in_val,
+ '' valcode,
+ '' koers,
+ '' kredbep,
+ '' bdrkredbep,
+ '' vervdatfak,
+ '' vervdatkrd,
+ '' empty21,
+ '' empty22,
+ '' weeknummer,
+ COALESCE (fin_factuur_betaalref,
+ fin_factuur_nr || '/' || fin_factuur_debiteur_nr) betaalref,
+ '' betwijze,
+ '' grek_bdr,
+ '' empty27,
+ '' empty28,
+ '' empty29,
+ '' empty30,
+ '' empty31,
+ '' transsubtype,
+ '' empty33,
+ '' empty34,
+ '' empty35,
+ '' empty36,
+ '' empty37,
+ '' empty38,
+ '' projectnr,
+ '!' empty40
+ FROM ( SELECT fin_factuur_key,
+ opdracht_id,
+ fin_factuur_datum,
+ fin_factuur_nr,
+ prs_bedrijf_key,
+ fin_factuur_debiteur_nr,
+ fin_factuur_betaalref,
+ SUM (fin_factuurregel_totaal + fin_factuurregel_btw) bedrag
+ FROM vgld_v_factuur_geg_akkoord
+ GROUP BY fin_factuur_key,
+ opdracht_id,
+ fin_factuur_datum,
+ fin_factuur_nr,
+ prs_bedrijf_key,
+ fin_factuur_debiteur_nr,
+ fin_factuur_betaalref) fg
+ UNION ALL
+ SELECT fin_factuurregel_nr regelnummer,
+ 'I' dagb_type,
+ '42' dagbknr,
+ '' periode,
+ '' bkjcode,
+ TO_CHAR (fin_factuur_key) boekstuknummer,
+ COALESCE (fin_factuur_betaalref,
+ fin_factuur_nr || '/' || fin_factuur_debiteur_nr) oms25,
+ TO_CHAR (fin_factuur_datum, 'ddmmyyyy') datum,
+ prs_kostensoort_oms reknr,
+ '' debnr,
+ (SELECT prs_leverancier_nr
+ FROM prs_bedrijf b
+ WHERE b.prs_bedrijf_key = fg.prs_bedrijf_key) crdnr,
+ '' empty12,
+ REPLACE (TO_CHAR (fin_factuurregel_totaal), ',', '.') bedrag,
+ '' drbk_in_val,
+ '' val_code,
+ '' koers,
+ '' kredbep,
+ '' bdrkredbep,
+ '' vervdatfak,
+ '' vervdatkrd,
+ fin_btwtabelwaarde_btwcode btw_code,
+ REPLACE (TO_CHAR (fin_factuurregel_btw), ',', '.') btw_bdr,
+ '' weeknummer,
+ '' empty24,
+ '' empty25,
+ '' empty26,
+ prs_kostenplaats_nr kstplcode,
+ '' kstdrcode,
+ '' empty29,
+ '' empty30,
+ '' empty31,
+ '' transsubtype,
+ '' empty33,
+ '' empty34,
+ '' emtpy35,
+ '' empty36,
+ '' empty37,
+ '' empty38,
+ project_nummer projectnr,
+ '!' empty40
+ FROM vgld_v_factuur_geg_akkoord fg);
-- Alle waarden (zijn evt meer records) uit eigen tabel '$SYSTEM' waarvan de waarde_code met een
-- zekere prefix begint (volgens de systeem-setting PREFIX_FCLT_FACTUUR_XML_HEADER), komen in de header vd xml terecht.
-CREATE OR REPLACE VIEW vgld_v_fclt_factuur_header (
- result,
- result_order
- )
-AS
-SELECT '<' || fac_usrdata_code || '>' || fac_usrdata_omschr || '' || fac_usrdata_code || '>', 1
-FROM fac_usrdata
-WHERE fac_usrtab_key = 21
-AND fac_usrdata_verwijder is null;
-CREATE OR REPLACE VIEW vgld_v_fclt_factuur_body (
- result,
- result_order
- )
-AS
- SELECT DECODE(regelnummer,0,'','')
- || '' || fin_factuur_key || ''
- || '' || xml.char_to_html(fin_factuur_nr) || ''
- || '' || xml.char_to_html(fin_factuur_bestand) || ''
- || '' || xml.char_to_html(fin_factuur_debiteur_nr) || ''
- || '' || xml.char_to_html(fin_factuur_omschr_kopregel) || ''
- || '' || xml.char_to_html(bes_mld_cnt_opdracht_id) || ''
- || '' || datum || ''
- || '' || fin_factuur_boekmaand || ''
- || '' || xml.char_to_html(grootboekrekening) || ''
- || '' || xml.char_to_html(kostensoort_doorbelasten)|| ''
- || '' || xml.char_to_html(betaalreferentie) || ''
- || '' || xml.char_to_html(crediteur_nr) || ''
- || '' || xml.char_to_html(crediteur_naam) || ''
- || '' || fin_factuur_totaal_exbtw || ''
- || '' || fin_factuur_totaal_incbtw || ''
- || '' || xml.char_to_html(fin_factuurregel_omschrijving) || ''
- || '' || xml.char_to_html(fin_factuurregel_datum) || ''
- || '' || fin_factuurregel_totaal || ''
- || '' || btw_percentage || ''
- || '' || xml.char_to_html(btw_code) || ''
- || '' || btw_bedrag || ''
- || '' || xml.char_to_html(prs_kostenplaats_nr) || ''
- || DECODE(regelnummer, 0, '', DECODE(max_factuur_regelnr - regelnummer,0,'',''))
- ,
- (1000000 + fin_factuur_key) * 10000 + regelnummer
- FROM (SELECT 0 regelnummer,
- aant_factuur_regels,
- max_factuur_regelnr,
- fin_factuur_key,
- fin_factuur_nr,
- fin_factuur_bestand,
- fin_factuur_debiteur_nr,
- fin_factuur_omschr_kopregel,
- opdracht_id bes_mld_cnt_opdracht_id,
- TO_CHAR (fin_factuur_datum, 'ddmmyyyy') datum,
- fin_factuur_boekmaand,
- '' grootboekrekening,
- '' kostensoort_doorbelasten,
- betaalreferentie,
- (SELECT prs_leverancier_nr
- FROM prs_bedrijf b
- WHERE b.prs_bedrijf_key = fg.prs_bedrijf_key) crediteur_nr,
- (SELECT prs_bedrijf_naam
- FROM prs_bedrijf b
- WHERE b.prs_bedrijf_key = fg.prs_bedrijf_key) crediteur_naam,
- REPLACE (TO_CHAR (ROUND(bedrag_exbtw,2)), ',', '.') fin_factuur_totaal_exbtw,
- REPLACE (TO_CHAR (ROUND(bedrag_incbtw,2)), ',', '.') fin_factuur_totaal_incbtw,
- '' fin_factuurregel_omschrijving,
- '' fin_factuurregel_datum,
- '' fin_factuurregel_totaal,
- '' btw_percentage,
- '' btw_code,
- '' btw_bedrag,
- '' prs_kostenplaats_nr
- FROM (SELECT fin_factuur_key,
- opdracht_id,
- fin_factuur_datum,
- fin_factuur_boekmaand,
- fin_factuur_nr,
- fin_factuur_bestand,
- prs_bedrijf_key,
- fin_factuur_debiteur_nr,
- COALESCE(fin_factuur_betaalref, fin_factuur_nr || '/' || fin_factuur_debiteur_nr) betaalreferentie,
- fin_factuur_omschr_kopregel,
- COUNT(fin_factuur_key) AS aant_factuur_regels,
- MAX (fin_factuurregel_nr) AS max_factuur_regelnr,
- SUM (fin_factuurregel_totaal) bedrag_exbtw,
- SUM (fin_factuurregel_totaal + fin_factuurregel_btw) bedrag_incbtw
- FROM vgld_v_factuur_geg_akkoord
- GROUP BY fin_factuur_key,
- opdracht_id,
- fin_factuur_datum,
- fin_factuur_boekmaand,
- fin_factuur_nr,
- fin_factuur_bestand,
- prs_bedrijf_key,
- fin_factuur_debiteur_nr,
- fin_factuur_betaalref,
- fin_factuur_omschr_kopregel) fg
- UNION ALL
- SELECT fin_factuurregel_nr regelnummer,
- (SELECT COUNT(fin_factuur_key)
- FROM vgld_v_factuur_geg_akkoord fc
- WHERE fc.fin_factuur_key = fg.fin_factuur_key
- GROUP BY fin_factuur_key,
- opdracht_id,
- fin_factuur_datum,
- fin_factuur_nr,
- prs_bedrijf_key,
- fin_factuur_debiteur_nr) AS aant_factuur_regels,
- (SELECT MAX(fin_factuurregel_nr)
- FROM vgld_v_factuur_geg_akkoord fc
- WHERE fc.fin_factuur_key = fg.fin_factuur_key
- GROUP BY fin_factuur_key,
- opdracht_id,
- fin_factuur_datum,
- fin_factuur_nr,
- prs_bedrijf_key,
- fin_factuur_debiteur_nr) AS max_factuur_regelnr,
- fin_factuur_key,
- fin_factuur_nr,
- '' fin_factuur_bestand,
- fin_factuur_debiteur_nr,
- '' fin_factuur_omschr_kopregel,
- '' bes_mld_cnt_opdracht_id,
- TO_CHAR (fin_factuur_datum, 'ddmmyyyy') datum,
- fin_factuur_boekmaand,
- prs_kostensoort_oms grootboekrekening,
- TO_CHAR(prs_kostensoort_doorbelasten) kostensoort_doorbelasten,
- COALESCE(fin_factuur_betaalref, fin_factuur_nr || '/' || fin_factuur_debiteur_nr) betaalreferentie,
- (SELECT prs_leverancier_nr
- FROM prs_bedrijf b
- WHERE b.prs_bedrijf_key = fg.prs_bedrijf_key) crediteur_nr,
- (SELECT prs_bedrijf_naam
- FROM prs_bedrijf b
- WHERE b.prs_bedrijf_key = fg.prs_bedrijf_key) crediteur_naam,
- '' fin_factuur_totaal_exbtw,
- '' fin_factuur_totaal_incbtw,
- fin_factuurregel_omschrijving,
- fin_factuurregel_datum,
- REPLACE (TO_CHAR (ROUND(fin_factuurregel_totaal,2)), ',', '.') fin_factuurregel_totaal,
- TO_CHAR(fin_factuurregel_btw_perc) btw_percentage,
- fin_btwtabelwaarde_btwcode btw_code,
- REPLACE (TO_CHAR (ROUND(fin_factuurregel_btw,2)), ',', '.') btw_bedrag,
- prs_kostenplaats_nr
- FROM vgld_v_factuur_geg_akkoord fg
- ORDER BY fin_factuur_key, regelnummer);
-
-
-
-
-CREATE OR REPLACE VIEW vgld_v_export_fclt_factuur (
- result,
- result_order
- )
-AS
-SELECT '',0 FROM DUAL
-UNION
-SELECT result, result_order FROM vgld_v_fclt_factuur_header
-UNION
-SELECT result, result_order FROM vgld_v_fclt_factuur_body
-UNION
-SELECT '',99999999999999999999 FROM DUAL;
-
-
-
-CREATE OR REPLACE PROCEDURE vgld_export_fclt_factuur (
- p_applname IN VARCHAR2,
- p_applrun IN VARCHAR2,
- p_filedir IN VARCHAR2,
- p_filename IN VARCHAR2
+CREATE OR REPLACE VIEW vgld_v_fclt_factuur_header
+(
+ result,
+ result_order
)
AS
+ SELECT '<' || fac_usrdata_code || '>' || fac_usrdata_omschr || '' || fac_usrdata_code || '>',
+ 1
+ FROM fac_usrdata
+ WHERE fac_usrtab_key = 21 AND fac_usrdata_verwijder IS NULL;
- -- In cursor cfactuur alle facturen die worden geexporteerd...
- CURSOR cfactuur
- IS
- SELECT fin_factuur_key
- FROM vgld_v_factuur_geg_akkoord
+CREATE OR REPLACE VIEW vgld_v_fclt_factuur_body
+(
+ result,
+ result_order
+)
+AS
+ SELECT DECODE (regelnummer, 0, '', '')
+ || ''
+ || fin_factuur_key
+ || ''
+ || ''
+ || xml.char_to_html (fin_factuur_nr)
+ || ''
+ || ''
+ || xml.char_to_html (fin_factuur_bestand)
+ || ''
+ || ''
+ || xml.char_to_html (fin_factuur_debiteur_nr)
+ || ''
+ || ''
+ || xml.char_to_html (fin_factuur_omschr_kopregel)
+ || ''
+ || ''
+ || xml.char_to_html (bes_mld_cnt_opdracht_id)
+ || ''
+ || ''
+ || datum
+ || ''
+ || ''
+ || fin_factuur_boekmaand
+ || ''
+ || ''
+ || xml.char_to_html (grootboekrekening)
+ || ''
+ || ''
+ || xml.char_to_html (kostensoort_doorbelasten)
+ || ''
+ || ''
+ || xml.char_to_html (betaalreferentie)
+ || ''
+ || ''
+ || xml.char_to_html (crediteur_nr)
+ || ''
+ || ''
+ || xml.char_to_html (crediteur_naam)
+ || ''
+ || ''
+ || fin_factuur_totaal_exbtw
+ || ''
+ || ''
+ || fin_factuur_totaal_incbtw
+ || ''
+ || ''
+ || xml.char_to_html (fin_factuurregel_omschrijving)
+ || ''
+ || ''
+ || xml.char_to_html (fin_factuurregel_datum)
+ || ''
+ || ''
+ || fin_factuurregel_totaal
+ || ''
+ || ''
+ || btw_percentage
+ || ''
+ || ''
+ || xml.char_to_html (btw_code)
+ || ''
+ || ''
+ || btw_bedrag
+ || ''
+ || ''
+ || xml.char_to_html (prs_kostenplaats_nr)
+ || ''
+ || DECODE (
+ regelnummer,
+ 0, '',
+ DECODE (max_factuur_regelnr - regelnummer,
+ 0, '',
+ '')),
+ (1000000 + fin_factuur_key) * 10000 + regelnummer
+ FROM (SELECT 0
+ regelnummer,
+ aant_factuur_regels,
+ max_factuur_regelnr,
+ fin_factuur_key,
+ fin_factuur_nr,
+ fin_factuur_bestand,
+ fin_factuur_debiteur_nr,
+ fin_factuur_omschr_kopregel,
+ opdracht_id
+ bes_mld_cnt_opdracht_id,
+ TO_CHAR (fin_factuur_datum, 'ddmmyyyy')
+ datum,
+ fin_factuur_boekmaand,
+ ''
+ grootboekrekening,
+ ''
+ kostensoort_doorbelasten,
+ betaalreferentie,
+ (SELECT prs_leverancier_nr
+ FROM prs_bedrijf b
+ WHERE b.prs_bedrijf_key = fg.prs_bedrijf_key)
+ crediteur_nr,
+ (SELECT prs_bedrijf_naam
+ FROM prs_bedrijf b
+ WHERE b.prs_bedrijf_key = fg.prs_bedrijf_key)
+ crediteur_naam,
+ REPLACE (TO_CHAR (ROUND (bedrag_exbtw, 2)), ',', '.')
+ fin_factuur_totaal_exbtw,
+ REPLACE (TO_CHAR (ROUND (bedrag_incbtw, 2)), ',', '.')
+ fin_factuur_totaal_incbtw,
+ ''
+ fin_factuurregel_omschrijving,
+ ''
+ fin_factuurregel_datum,
+ ''
+ fin_factuurregel_totaal,
+ ''
+ btw_percentage,
+ ''
+ btw_code,
+ ''
+ btw_bedrag,
+ ''
+ prs_kostenplaats_nr
+ FROM ( SELECT fin_factuur_key,
+ opdracht_id,
+ fin_factuur_datum,
+ fin_factuur_boekmaand,
+ fin_factuur_nr,
+ fin_factuur_bestand,
+ prs_bedrijf_key,
+ fin_factuur_debiteur_nr,
+ COALESCE (fin_factuur_betaalref,
+ fin_factuur_nr || '/' || fin_factuur_debiteur_nr)
+ betaalreferentie,
+ fin_factuur_omschr_kopregel,
+ COUNT (fin_factuur_key)
+ AS aant_factuur_regels,
+ MAX (fin_factuurregel_nr)
+ AS max_factuur_regelnr,
+ SUM (fin_factuurregel_totaal)
+ bedrag_exbtw,
+ SUM (fin_factuurregel_totaal + fin_factuurregel_btw)
+ bedrag_incbtw
+ FROM vgld_v_factuur_geg_akkoord
+ GROUP BY fin_factuur_key,
+ opdracht_id,
+ fin_factuur_datum,
+ fin_factuur_boekmaand,
+ fin_factuur_nr,
+ fin_factuur_bestand,
+ prs_bedrijf_key,
+ fin_factuur_debiteur_nr,
+ fin_factuur_betaalref,
+ fin_factuur_omschr_kopregel) fg
+ UNION ALL
+ SELECT fin_factuurregel_nr
+ regelnummer,
+ ( SELECT COUNT (fin_factuur_key)
+ FROM vgld_v_factuur_geg_akkoord fc
+ WHERE fc.fin_factuur_key = fg.fin_factuur_key
+ GROUP BY fin_factuur_key,
+ opdracht_id,
+ fin_factuur_datum,
+ fin_factuur_nr,
+ prs_bedrijf_key,
+ fin_factuur_debiteur_nr)
+ AS aant_factuur_regels,
+ ( SELECT MAX (fin_factuurregel_nr)
+ FROM vgld_v_factuur_geg_akkoord fc
+ WHERE fc.fin_factuur_key = fg.fin_factuur_key
+ GROUP BY fin_factuur_key,
+ opdracht_id,
+ fin_factuur_datum,
+ fin_factuur_nr,
+ prs_bedrijf_key,
+ fin_factuur_debiteur_nr)
+ AS max_factuur_regelnr,
+ fin_factuur_key,
+ fin_factuur_nr,
+ ''
+ fin_factuur_bestand,
+ fin_factuur_debiteur_nr,
+ ''
+ fin_factuur_omschr_kopregel,
+ ''
+ bes_mld_cnt_opdracht_id,
+ TO_CHAR (fin_factuur_datum, 'ddmmyyyy')
+ datum,
+ fin_factuur_boekmaand,
+ prs_kostensoort_oms
+ grootboekrekening,
+ TO_CHAR (prs_kostensoort_doorbelasten)
+ kostensoort_doorbelasten,
+ COALESCE (fin_factuur_betaalref,
+ fin_factuur_nr || '/' || fin_factuur_debiteur_nr)
+ betaalreferentie,
+ (SELECT prs_leverancier_nr
+ FROM prs_bedrijf b
+ WHERE b.prs_bedrijf_key = fg.prs_bedrijf_key)
+ crediteur_nr,
+ (SELECT prs_bedrijf_naam
+ FROM prs_bedrijf b
+ WHERE b.prs_bedrijf_key = fg.prs_bedrijf_key)
+ crediteur_naam,
+ ''
+ fin_factuur_totaal_exbtw,
+ ''
+ fin_factuur_totaal_incbtw,
+ fin_factuurregel_omschrijving,
+ fin_factuurregel_datum,
+ REPLACE (TO_CHAR (ROUND (fin_factuurregel_totaal, 2)), ',', '.')
+ fin_factuurregel_totaal,
+ TO_CHAR (fin_factuurregel_btw_perc)
+ btw_percentage,
+ fin_btwtabelwaarde_btwcode
+ btw_code,
+ REPLACE (TO_CHAR (ROUND (fin_factuurregel_btw, 2)), ',', '.')
+ btw_bedrag,
+ prs_kostenplaats_nr
+ FROM vgld_v_factuur_geg_akkoord fg
+ ORDER BY fin_factuur_key, regelnummer);
+
+
+
+CREATE OR REPLACE VIEW vgld_v_export_fclt_factuur
+(
+ result,
+ result_order
+)
+AS
+ SELECT '', 0 FROM DUAL
+ UNION
+ SELECT result, result_order FROM vgld_v_fclt_factuur_header
+ UNION
+ SELECT result, result_order FROM vgld_v_fclt_factuur_body
+ UNION
+ SELECT '', 99999999999999999999 FROM DUAL;
+
+
+
+CREATE OR REPLACE PROCEDURE vgld_export_fclt_factuur (p_applname IN VARCHAR2,
+ p_applrun IN VARCHAR2,
+ p_filedir IN VARCHAR2,
+ p_filename IN VARCHAR2)
+AS
+ -- In cursor cfactuur alle facturen die worden geexporteerd...
+ CURSOR cfactuur IS
+ SELECT fin_factuur_key
+ FROM vgld_v_factuur_geg_akkoord
GROUP BY fin_factuur_key;
-
BEGIN
- -- DE EXPORT IS OP BASIS VAN EEN VIEW GEREALISEERD, WAARNA NU ALS LAATSTE STAP NOG WAT ADMINISTRATIE VOLGT...
- FOR cfact IN cfactuur
- LOOP
- -- Zowel de factuur in tracking zetten als de status op verwerkt (=7) zetten
- fin.setfactuurstatus (cfact.fin_factuur_key, 7, NULL);
- END LOOP;
+ -- DE EXPORT IS OP BASIS VAN EEN VIEW GEREALISEERD, WAARNA NU ALS LAATSTE STAP NOG WAT ADMINISTRATIE VOLGT...
+ FOR cfact IN cfactuur
+ LOOP
+ -- Zowel de factuur in tracking zetten als de status op verwerkt (=7) zetten
+ fin.setfactuurstatus (cfact.fin_factuur_key, 7, NULL);
+ END LOOP;
END;
/
-CREATE OR REPLACE VIEW vgld_v_export_undo_exact (
- result,
- result_order
- )
-AS
-SELECT REPLACE(REPLACE(f.fin_factuur_key
- || ';'
- || opdracht_id
- || ';'
- || fin_factuur_datum
- || ';'
- || fin_factuur_nr
- || ';'
- || prs_bedrijf_key
- || ';'
- || fin_factuurregel_totaal
- || ';'
- || fin_factuurregel_btw
- || ';'
- || fin_factuurregel_nr
- || ';'
- || fin_factuur_debiteur_nr
- || ';'
- || project_nummer
- || ';'
- || prs_kostensoort_oms
- || ';'
- || bes_opdr_key
- || ';'
- || mld_opdr_key
- || ';'
- || cnt_contract_key
- ,CHR (13), ''), CHR (10), ''), f.fin_factuur_key
- FROM vgld_v_factuur_geg f, fac_tracking t, fac_srtnotificatie sn
- WHERE sn.fac_srtnotificatie_code ='FINVER'
- AND sn.fac_srtnotificatie_key = t.fac_srtnotificatie_key
- AND t.fac_tracking_datum >= (SELECT MAX(t1.fac_tracking_datum) - (1 / (24*60))
- FROM fac_tracking t1
- WHERE t1.fac_srtnotificatie_key = t.fac_srtnotificatie_key)
- AND f.fin_factuur_key = t.fac_tracking_refkey
- AND f.fin_factuur_statuses_key = 7;
-
-
-
-CREATE OR REPLACE PROCEDURE vgld_select_undo_exact (
- p_applname IN VARCHAR2,
- p_applrun IN VARCHAR2
+CREATE OR REPLACE VIEW vgld_v_export_undo_exact
+(
+ result,
+ result_order
)
AS
- v_errormsg VARCHAR (200);
-BEGIN
- v_errormsg := 'Geen akties';
+ SELECT REPLACE (
+ REPLACE (
+ f.fin_factuur_key
+ || ';'
+ || opdracht_id
+ || ';'
+ || fin_factuur_datum
+ || ';'
+ || fin_factuur_nr
+ || ';'
+ || prs_bedrijf_key
+ || ';'
+ || fin_factuurregel_totaal
+ || ';'
+ || fin_factuurregel_btw
+ || ';'
+ || fin_factuurregel_nr
+ || ';'
+ || fin_factuur_debiteur_nr
+ || ';'
+ || project_nummer
+ || ';'
+ || prs_kostensoort_oms
+ || ';'
+ || bes_opdr_key
+ || ';'
+ || mld_opdr_key
+ || ';'
+ || cnt_contract_key,
+ CHR (13),
+ ''),
+ CHR (10),
+ ''),
+ f.fin_factuur_key
+ FROM vgld_v_factuur_geg f, fac_tracking t, fac_srtnotificatie sn
+ WHERE sn.fac_srtnotificatie_code = 'FINVER'
+ AND sn.fac_srtnotificatie_key = t.fac_srtnotificatie_key
+ AND t.fac_tracking_datum >=
+ (SELECT MAX (t1.fac_tracking_datum) - (1 / (24 * 60))
+ FROM fac_tracking t1
+ WHERE t1.fac_srtnotificatie_key = t.fac_srtnotificatie_key)
+ AND f.fin_factuur_key = t.fac_tracking_refkey
+ AND f.fin_factuur_statuses_key = 7;
+
+
+CREATE OR REPLACE PROCEDURE vgld_select_undo_exact (p_applname IN VARCHAR2, p_applrun IN VARCHAR2)
+AS
+ v_errormsg VARCHAR (200);
+BEGIN
+ v_errormsg := 'Geen akties';
END;
/
-- Procedure om alle geexporteerde facturen naar status verwerkt te zetten.
-CREATE OR REPLACE PROCEDURE vgld_export_undo_exact (
- p_applname IN VARCHAR2,
- p_applrun IN VARCHAR2,
- p_filedir IN VARCHAR2,
- p_filename IN VARCHAR2
-)
+
+CREATE OR REPLACE PROCEDURE vgld_export_undo_exact (p_applname IN VARCHAR2,
+ p_applrun IN VARCHAR2,
+ p_filedir IN VARCHAR2,
+ p_filename IN VARCHAR2)
AS
- CURSOR cfactuur
- IS
- SELECT DISTINCT f.fin_factuur_key
- FROM fac_tracking t, fac_srtnotificatie sn, fin_factuur f
- WHERE sn.fac_srtnotificatie_code ='FINVER'
- AND sn.fac_srtnotificatie_key = t.fac_srtnotificatie_key
- AND t.fac_tracking_datum >= (SELECT MAX(t1.fac_tracking_datum) - (1 / (24*60))
- FROM fac_tracking t1
- WHERE t1.fac_srtnotificatie_key = t.fac_srtnotificatie_key)
- AND f.fin_factuur_key = t.fac_tracking_refkey
- AND fin_factuur_statuses_key = 7;
+ CURSOR cfactuur IS
+ SELECT DISTINCT f.fin_factuur_key
+ FROM fac_tracking t, fac_srtnotificatie sn, fin_factuur f
+ WHERE sn.fac_srtnotificatie_code = 'FINVER'
+ AND sn.fac_srtnotificatie_key = t.fac_srtnotificatie_key
+ AND t.fac_tracking_datum >=
+ (SELECT MAX (t1.fac_tracking_datum) - (1 / (24 * 60))
+ FROM fac_tracking t1
+ WHERE t1.fac_srtnotificatie_key = t.fac_srtnotificatie_key)
+ AND f.fin_factuur_key = t.fac_tracking_refkey
+ AND fin_factuur_statuses_key = 7;
- v_errormsg VARCHAR (200);
- oracle_err_num NUMBER;
- oracle_err_mes VARCHAR2 (200);
+ v_errormsg VARCHAR (200);
+ oracle_err_num NUMBER;
+ oracle_err_mes VARCHAR2 (200);
BEGIN
- v_errormsg := 'Geen akties';
+ v_errormsg := 'Geen akties';
- FOR cfact IN cfactuur
- LOOP
- -- Eerst de factuur in tracking zetten...
- -- Omdat van 7 naar 6 niet mag/geoorloofd is, lukt het niet via
- -- de reguliere functie fin.setfactuurstatus (cfact.fin_factuur_key, 6, NULL);
+ FOR cfact IN cfactuur
+ LOOP
+ -- Eerst de factuur in tracking zetten...
+ -- Omdat van 7 naar 6 niet mag/geoorloofd is, lukt het niet via
+ -- de reguliere functie fin.setfactuurstatus (cfact.fin_factuur_key, 6, NULL);
- -- Dan maar zelf en custom-made:
- fac.trackaction ('FINFOK', cfact.fin_factuur_key, NULL, NULL, 'Factuur uit archief teruggezet');
- UPDATE fin_factuur
- SET fin_factuur_statuses_key = 6
- WHERE fin_factuur_key = cfact.fin_factuur_key;
+ -- Dan maar zelf en custom-made:
+ fac.trackaction ('FINFOK',
+ cfact.fin_factuur_key,
+ NULL,
+ NULL,
+ 'Factuur uit archief teruggezet');
- END LOOP;
+ UPDATE fin_factuur
+ SET fin_factuur_statuses_key = 6
+ WHERE fin_factuur_key = cfact.fin_factuur_key;
+ END LOOP;
END;
/
@@ -1944,97 +2042,97 @@ END;
CREATE OR REPLACE VIEW vgld_v_rap_res_infobord
(
- aktief,
- offset,
- fclt_f_jaar,
- fclt_f_maand,
- fclt_f_dag,
- dag,
- tijd_van,
- tijd_tot,
- reserv_ruimte,
- fclt_f_ruimte,
- fclt_f_dagoverzicht,
- activiteit,
- catalogus,
- aanvrager,
- gastheer,
- omschrijving,
- status,
- locatie_code,
- gebouw_code,
- verdieping_code,
- locatie_omschrijving,
- gebouw_omschrijving,
- verdieping_omschrijving,
- alg_locatie_key,
- alg_gebouw_key,
- alg_verdieping_key,
- alg_ruimte_key
+ aktief,
+ offset,
+ fclt_f_jaar,
+ fclt_f_maand,
+ fclt_f_dag,
+ dag,
+ tijd_van,
+ tijd_tot,
+ reserv_ruimte,
+ fclt_f_ruimte,
+ fclt_f_dagoverzicht,
+ activiteit,
+ catalogus,
+ aanvrager,
+ gastheer,
+ omschrijving,
+ status,
+ locatie_code,
+ gebouw_code,
+ verdieping_code,
+ locatie_omschrijving,
+ gebouw_omschrijving,
+ verdieping_omschrijving,
+ alg_locatie_key,
+ alg_gebouw_key,
+ alg_verdieping_key,
+ alg_ruimte_key
)
AS
-SELECT (CASE
+ SELECT (CASE
WHEN rrr.res_rsv_ruimte_van > SYSDATE THEN 'expected'
WHEN rrr.res_rsv_ruimte_tot < SYSDATE THEN 'passed'
ELSE 'active'
- END) aktief,
- TRUNC ( (SYSDATE - rrr.res_rsv_ruimte_van) * 24 * 60) offset,
- TO_CHAR (rrr.res_rsv_ruimte_van, 'yyyy') fclt_f_jaar,
- TO_CHAR (rrr.res_rsv_ruimte_van, 'mm') fclt_f_maand,
- TO_CHAR (rrr.res_rsv_ruimte_van, 'dd') fclt_f_dag,
- TO_CHAR (rrr.res_rsv_ruimte_van, 'dd-mm-yyyy') dag,
- TO_CHAR (rrr.res_rsv_ruimte_van, 'hh24:mi') tijd_van,
- TO_CHAR (rrr.res_rsv_ruimte_tot, 'hh24:mi') tijd_tot,
- rrg.res_ruimte_nr ruimte,
- r.alg_ruimte_omschrijving,
- DECODE(RK.ALG_ONRGOEDKENMERK_WAARDE,'1', 'Ja', 'Nee'),
- A.RES_ACTIVITEIT_OMSCHRIJVING,
- rd.ins_discipline_omschrijving catalogus,
- aanvrager.prs_perslid_naam_full aanvrager,
- gastheer.prs_perslid_naam_full gastheer,
- rrr.res_rsv_ruimte_omschrijving omschrijving,
- sf.res_status_fo_omschrijving status,
- l.alg_locatie_code locatie_code,
- g.alg_gebouw_code gebouw_code,
- v.alg_verdieping_code verdieping_code,
- l.alg_locatie_omschrijving locatie_omschrijving,
- g.alg_gebouw_omschrijving gebouw_omschrijving,
- v.alg_verdieping_omschrijving verdieping_omschrijving,
- l.alg_locatie_key,
- g.alg_gebouw_key,
- v.alg_verdieping_key,
- r.alg_ruimte_key
- FROM res_v_aanwezigrsv_ruimte rrr,
- res_ruimte_opstelling rro,
- res_v_res_ruimte_gegevens rrg,
- res_alg_ruimte rar,
- prs_v_perslid_fullnames aanvrager,
- prs_v_perslid_fullnames gastheer,
- alg_locatie l,
- alg_gebouw g,
- alg_verdieping v,
- alg_ruimte r,
- alg_onrgoedkenmerk rk,
- res_status_fo sf,
- res_activiteit a,
- res_discipline rd
- WHERE rrr.res_status_fo_key IN (1, 2)
- AND rrr.res_ruimte_opstel_key = rro.res_ruimte_opstel_key
- AND rro.res_ruimte_key = rrg.res_ruimte_key
- AND rrg.res_ruimte_key = RAR.RES_RUIMTE_KEY
- and RAR.ALG_RUIMTE_KEY = r.alg_ruimte_key
- AND rk.alg_onrgoed_key (+)= r.alg_ruimte_key
- AND rk.alg_kenmerk_key (+) = 1000
- AND rk.alg_onrgoed_niveau (+) ='R'
- AND rrr.res_rsv_ruimte_host_key = gastheer.prs_perslid_key
- AND rrr.res_rsv_ruimte_contact_key = aanvrager.prs_perslid_key
- AND rrg.alg_locatie_key = l.alg_locatie_key
- AND rrg.alg_gebouw_key = g.alg_gebouw_key
- AND rrg.alg_verdieping_key = v.alg_verdieping_key
- AND rrr.res_status_fo_key = sf.res_status_fo_key
- AND rrr.res_activiteit_key = a.res_activiteit_key
- AND a.res_srtactiviteit_key = 1 -- Ruimte (géén Voorz. + WP)!
- AND rrg.res_discipline_key = rd.ins_discipline_key;
+ END) aktief,
+ TRUNC ((SYSDATE - rrr.res_rsv_ruimte_van) * 24 * 60) offset,
+ TO_CHAR (rrr.res_rsv_ruimte_van, 'yyyy') fclt_f_jaar,
+ TO_CHAR (rrr.res_rsv_ruimte_van, 'mm') fclt_f_maand,
+ TO_CHAR (rrr.res_rsv_ruimte_van, 'dd') fclt_f_dag,
+ TO_CHAR (rrr.res_rsv_ruimte_van, 'dd-mm-yyyy') dag,
+ TO_CHAR (rrr.res_rsv_ruimte_van, 'hh24:mi') tijd_van,
+ TO_CHAR (rrr.res_rsv_ruimte_tot, 'hh24:mi') tijd_tot,
+ rrg.res_ruimte_nr ruimte,
+ r.alg_ruimte_omschrijving,
+ DECODE (RK.ALG_ONRGOEDKENMERK_WAARDE, '1', 'Ja', 'Nee'),
+ A.RES_ACTIVITEIT_OMSCHRIJVING,
+ rd.ins_discipline_omschrijving catalogus,
+ aanvrager.prs_perslid_naam_full aanvrager,
+ gastheer.prs_perslid_naam_full gastheer,
+ rrr.res_rsv_ruimte_omschrijving omschrijving,
+ sf.res_status_fo_omschrijving status,
+ l.alg_locatie_code locatie_code,
+ g.alg_gebouw_code gebouw_code,
+ v.alg_verdieping_code verdieping_code,
+ l.alg_locatie_omschrijving locatie_omschrijving,
+ g.alg_gebouw_omschrijving gebouw_omschrijving,
+ v.alg_verdieping_omschrijving verdieping_omschrijving,
+ l.alg_locatie_key,
+ g.alg_gebouw_key,
+ v.alg_verdieping_key,
+ r.alg_ruimte_key
+ FROM res_v_aanwezigrsv_ruimte rrr,
+ res_ruimte_opstelling rro,
+ res_v_res_ruimte_gegevens rrg,
+ res_alg_ruimte rar,
+ prs_v_perslid_fullnames aanvrager,
+ prs_v_perslid_fullnames gastheer,
+ alg_locatie l,
+ alg_gebouw g,
+ alg_verdieping v,
+ alg_ruimte r,
+ alg_onrgoedkenmerk rk,
+ res_status_fo sf,
+ res_activiteit a,
+ res_discipline rd
+ WHERE rrr.res_status_fo_key IN (1, 2)
+ AND rrr.res_ruimte_opstel_key = rro.res_ruimte_opstel_key
+ AND rro.res_ruimte_key = rrg.res_ruimte_key
+ AND rrg.res_ruimte_key = RAR.RES_RUIMTE_KEY
+ AND RAR.ALG_RUIMTE_KEY = r.alg_ruimte_key
+ AND rk.alg_onrgoed_key(+) = r.alg_ruimte_key
+ AND rk.alg_kenmerk_key(+) = 1000
+ AND rk.alg_onrgoed_niveau(+) = 'R'
+ AND rrr.res_rsv_ruimte_host_key = gastheer.prs_perslid_key
+ AND rrr.res_rsv_ruimte_contact_key = aanvrager.prs_perslid_key
+ AND rrg.alg_locatie_key = l.alg_locatie_key
+ AND rrg.alg_gebouw_key = g.alg_gebouw_key
+ AND rrg.alg_verdieping_key = v.alg_verdieping_key
+ AND rrr.res_status_fo_key = sf.res_status_fo_key
+ AND rrr.res_activiteit_key = a.res_activiteit_key
+ AND a.res_srtactiviteit_key = 1 -- Ruimte (géén Voorz. + WP)!
+ AND rrg.res_discipline_key = rd.ins_discipline_key;
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
@@ -2048,14 +2146,13 @@ SELECT (CASE
CREATE OR REPLACE PROCEDURE vgld_import_fin_factuur_od (p_import_key IN NUMBER)
AS
- v_seq_of_columns VARCHAR(50);
+ v_seq_of_columns VARCHAR (50);
BEGIN
-
---In de XSL: factuurnr(1);factuurdatum(2);opdrachtnr(3);omschrijving(4);bedrag(5);btwperc(6);btwbedrag(7);document(8);debiteurnr(9);opmerking(10);btw_verlegd(11);betaalkenmerk(12)
---hulp voor pos : '1;2;3;4;5;6;7;8;9;0;1;2;3;14;15;16;7;8;9;0'
+ --In de XSL: factuurnr(1);factuurdatum(2);opdrachtnr(3);omschrijving(4);bedrag(5);btwperc(6);btwbedrag(7);document(8);debiteurnr(9);opmerking(10);btw_verlegd(11);betaalkenmerk(12)
+ --hulp voor pos : '1;2;3;4;5;6;7;8;9;0;1;2;3;14;15;16;7;8;9;0'
v_seq_of_columns := '0;1;2;3;0;0;4;0;5;7;6;0;0;0;0;0;0;0;0;0';
- -- Variabelelijst
+ -- Variabelelijst
-- v_leveranciernr: 1
-- v_factuurnr: 2 (VERPLICHT, anders zet Facilitor '-' in factuurnr, en is status van factuur "Incompleet")
-- v_factuurdatum: 3
@@ -2078,7 +2175,7 @@ BEGIN
-- v_kenmerk1: 20
-- v_boekmaand: 21
- fac_import_factuur_body(p_import_key, v_seq_of_columns);
+ fac_import_factuur_body (p_import_key, v_seq_of_columns);
END;
/
@@ -2086,8 +2183,8 @@ END;
CREATE OR REPLACE PROCEDURE vgld_update_fin_factuur_od (p_import_key IN NUMBER)
AS
BEGIN
- -- Standaard FCLT verwerk import facturen
- fac_update_factuur (p_import_key);
+ -- Standaard FCLT verwerk import facturen
+ fac_update_factuur (p_import_key);
END;
/
@@ -2101,160 +2198,141 @@ END;
CREATE OR REPLACE PROCEDURE vgld_post_import_ext_bedrijf (p_import_key IN NUMBER)
AS
BEGIN
- -- VGLD stuurt geen LUC mee, afgesproken dat elke leverancier LUC gaat zijn (leverancier, uitvoerende en contractant).
- -- Daarom in deze post-import alle bedrijven in de import met p_import_key een LUC markeren.
+ -- VGLD stuurt geen LUC mee, afgesproken dat elke leverancier LUC gaat zijn (leverancier, uitvoerende en contractant).
+ -- Daarom in deze post-import alle bedrijven in de import met p_import_key een LUC markeren.
- UPDATE fac_imp_ext_bedrijf
- SET prs_bedrijf_leverancier = 1,
- prs_bedrijf_uitvoerende = 1,
- prs_bedrijf_contract = 1;
-
- -- Alle @@ (deze worden in de XSL geplaatst) worden door CR/LF vervangen.
- UPDATE fac_imp_ext_bedrijf
- SET prs_bedrijf_opmerking = replace(prs_bedrijf_opmerking, '@@',CHR (10));
+ UPDATE fac_imp_ext_bedrijf
+ SET prs_bedrijf_leverancier = 1, prs_bedrijf_uitvoerende = 1, prs_bedrijf_contract = 1;
+ -- Alle @@ (deze worden in de XSL geplaatst) worden door CR/LF vervangen.
+ UPDATE fac_imp_ext_bedrijf
+ SET prs_bedrijf_opmerking = REPLACE (prs_bedrijf_opmerking, '@@', CHR (10));
END;
/
CREATE OR REPLACE PROCEDURE vgld_import_extern_bedrijf (p_import_key IN NUMBER)
AS
- v_errormsg VARCHAR2 (1000);
- oracle_err_num NUMBER;
- oracle_err_mes VARCHAR2 (200);
- v_seq_of_columns VARCHAR(255);
+ v_errormsg VARCHAR2 (1000);
+ oracle_err_num NUMBER;
+ oracle_err_mes VARCHAR2 (200);
+ v_seq_of_columns VARCHAR (255);
BEGIN
- -- hulpje 1;2;3;4;5;6;7;8;9;0;1;2;3;4;5;6;7;8;9;0;1;2;3;4;5;6;7;8;9;0;1;2;3;4
- v_seq_of_columns := '2;1;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;3;0;0;0;0;4;0;0';
- fac_import_bedrijf_body (p_import_key, v_seq_of_columns, 0);
- vgld_post_import_ext_bedrijf (p_import_key);
-
+ -- hulpje 1;2;3;4;5;6;7;8;9;0;1;2;3;4;5;6;7;8;9;0;1;2;3;4;5;6;7;8;9;0;1;2;3;4
+ v_seq_of_columns := '2;1;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;3;0;0;0;0;4;0;0';
+ fac_import_bedrijf_body (p_import_key, v_seq_of_columns, 0);
+ vgld_post_import_ext_bedrijf (p_import_key);
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.imp_writelog (p_import_key,
- 'E',
- v_errormsg,
- 'Inleesproces relaties afgebroken!');
+ 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.imp_writelog (p_import_key,
+ 'E',
+ v_errormsg,
+ 'Inleesproces relaties afgebroken!');
END vgld_import_extern_bedrijf;
/
-CREATE OR REPLACE PROCEDURE vgld_update_extern_bedrijf (
- p_import_key IN NUMBER)
+CREATE OR REPLACE PROCEDURE vgld_update_extern_bedrijf (p_import_key IN NUMBER)
AS
- CURSOR ciban
- IS
- SELECT b.prs_bedrijf_key,
- i.prs_leverancier_nr,
- SUBSTR (i.prs_bedrijf_opmerking,
- 7,
- INSTR (i.prs_bedrijf_opmerking, CHR (10)) - 7)
- AS importiban,
- (SELECT prs_kenmerklink_waarde
- FROM prs_kenmerklink
- WHERE prs_kenmerk_key = 1080 --Kenmerk Bankrekening
- AND prs_link_key = b.prs_bedrijf_key)
- AS iban
- FROM fac_imp_ext_bedrijf i, prs_bedrijf b
- WHERE b.prs_leverancier_nr = i.prs_leverancier_nr
- AND b.prs_bedrijf_verwijder IS NULL;
+ CURSOR ciban IS
+ SELECT b.prs_bedrijf_key,
+ i.prs_leverancier_nr,
+ SUBSTR (i.prs_bedrijf_opmerking, 7, INSTR (i.prs_bedrijf_opmerking, CHR (10)) - 7)
+ AS importiban,
+ (SELECT prs_kenmerklink_waarde
+ FROM prs_kenmerklink
+ WHERE prs_kenmerk_key = 1080 --Kenmerk Bankrekening
+ AND prs_link_key = b.prs_bedrijf_key)
+ AS iban
+ FROM fac_imp_ext_bedrijf i, prs_bedrijf b
+ WHERE b.prs_leverancier_nr = i.prs_leverancier_nr AND b.prs_bedrijf_verwijder IS NULL;
BEGIN
- -- Parameter p_sync = 0 of 1:
- -- 0 = er wordt niet gesynchroniseerd (op leveranciersnummer), maar gewoon (ala FIP) aangevuld. Elke leverancier wordt toegevoegd.
- -- 1 = er wel wel gesynchroniseerd (op leveranciernummer), dus add + update + delete
- fac_update_bedrijf_body (p_import_key, 1);
+ -- Parameter p_sync = 0 of 1:
+ -- 0 = er wordt niet gesynchroniseerd (op leveranciersnummer), maar gewoon (ala FIP) aangevuld. Elke leverancier wordt toegevoegd.
+ -- 1 = er wel wel gesynchroniseerd (op leveranciernummer), dus add + update + delete
+ fac_update_bedrijf_body (p_import_key, 1);
- --VGLD#55300: Ook kenmerk 'Bankrekening' vullen met IBAN nummer
- FOR reciban IN ciban
- LOOP
- BEGIN
- prs.upsertkenmerk (1080,
- reciban.prs_bedrijf_key,
- reciban.importiban);
- END;
- END LOOP;
+ --VGLD#55300: Ook kenmerk 'Bankrekening' vullen met IBAN nummer
+ FOR reciban IN ciban
+ LOOP
+ BEGIN
+ prs.upsertkenmerk (1080, reciban.prs_bedrijf_key, reciban.importiban);
+ END;
+ END LOOP;
END;
/
CREATE OR REPLACE VIEW vgld_v_rap_besstatuslist
AS
- SELECT bes_bestelling_key,
- TO_CHAR (bes_bestelling_key) bestelling,
- bes_bestellingstatuses_omschr status,
- DECODE (bes_bestelling_status,
- 2, 'Actief',
- 3, 'Actief',
- 4, 'Actief',
- 5, 'Actief',
- 'Gesloten')
- actief,
- DECODE (bes_bestelling_status,
- 1, 'Afgewezen',
- 2, 'Nieuw',
- 3, 'Gefiatteerd',
- 4, 'Geaccepteerd door FBB',
- 5, 'Besteld door FBB',
- 6, 'Geleverd',
- 7, 'Verwerkt',
- 8, 'Geannuleerd',
- 9, 'Ontvangen',
- '?')
- vlgd_status,
- b.prs_perslid_key,
- b.prs_perslid_key_voor,
- pf1.prs_perslid_naam_full besteller,
- pf2.prs_perslid_naam_full besteld_voor,
- bes_bestelling_datum aanvraagdatum,
- (SELECT MAX (fac_tracking_datum)
- FROM fac_tracking ft, fac_srtnotificatie sn
- WHERE fac_tracking_refkey = b.bes_bestelling_key
- AND sn.fac_srtnotificatie_key = ft.fac_srtnotificatie_key
- AND fac_srtnotificatie_xmlnode = 'bestelling'
- AND fac_srtnotificatie_code = 'BESACP')
- facilitair_bedrijfsbureau,
- (SELECT MAX (fac_tracking_datum)
- FROM fac_tracking ft, fac_srtnotificatie sn
- WHERE fac_tracking_refkey = b.bes_bestelling_key
- AND sn.fac_srtnotificatie_key = ft.fac_srtnotificatie_key
- AND fac_srtnotificatie_xmlnode = 'bestelling'
- AND fac_srtnotificatie_code = 'BESFIT')
- fiat_manager,
- (SELECT MAX (fac_tracking_datum)
- FROM fac_tracking ft, fac_srtnotificatie sn
- WHERE fac_tracking_refkey = b.bes_bestelling_key
- AND sn.fac_srtnotificatie_key = ft.fac_srtnotificatie_key
- AND fac_srtnotificatie_xmlnode = 'bestelling'
- AND fac_srtnotificatie_code = 'BESBES')
- besteld,
- bes_bestelling_leverdatum plan_levdatum,
- ( SELECT MAX (bes_bestelopdr_item_ontvangen)
- FROM bes_bestelopdr bo,
- bes_bestelopdr_item boi,
- bes_bestelling_item bbi,
- bes_bestelling b1
- WHERE bo.bes_bestelopdr_key = boi.bes_bestelopdr_key
- AND bbi.bes_bestelopdr_item_key =
- boi.bes_bestelopdr_item_key
- AND b1.bes_bestelling_key = bbi.bes_bestelling_key
- AND b1.bes_bestelling_status IN (6, 7, 9) -- Geleverd, Verwerkt, Ontvangen
- AND b.bes_bestelling_key = b1.bes_bestelling_key
- GROUP BY b1.bes_bestelling_key)
- afgeleverd,
- bes_bestelling_opmerking opmerking,
- bes_bestelling_lev_opm lever_opemerking
- FROM bes_bestelling b,
- bes_bestellingstatuses bs,
- prs_v_perslid_fullnames_all pf1,
- prs_v_perslid_fullnames_all pf2
- WHERE b.bes_bestelling_status = bs.bes_bestellingstatuses_key
- AND b.prs_perslid_key = pf1.prs_perslid_key
- AND b.prs_perslid_key_voor = pf2.prs_perslid_key
- AND fac_activiteit_key IS NULL;
+ SELECT bes_bestelling_key,
+ TO_CHAR (bes_bestelling_key) bestelling,
+ bes_bestellingstatuses_omschr status,
+ DECODE (bes_bestelling_status,
+ 2, 'Actief',
+ 3, 'Actief',
+ 4, 'Actief',
+ 5, 'Actief',
+ 'Gesloten') actief,
+ DECODE (bes_bestelling_status,
+ 1, 'Afgewezen',
+ 2, 'Nieuw',
+ 3, 'Gefiatteerd',
+ 4, 'Geaccepteerd door FBB',
+ 5, 'Besteld door FBB',
+ 6, 'Geleverd',
+ 7, 'Verwerkt',
+ 8, 'Geannuleerd',
+ 9, 'Ontvangen',
+ '?') vlgd_status,
+ b.prs_perslid_key,
+ b.prs_perslid_key_voor,
+ pf1.prs_perslid_naam_full besteller,
+ pf2.prs_perslid_naam_full besteld_voor,
+ bes_bestelling_datum aanvraagdatum,
+ (SELECT MAX (fac_tracking_datum)
+ FROM fac_tracking ft, fac_srtnotificatie sn
+ WHERE fac_tracking_refkey = b.bes_bestelling_key
+ AND sn.fac_srtnotificatie_key = ft.fac_srtnotificatie_key
+ AND fac_srtnotificatie_xmlnode = 'bestelling'
+ AND fac_srtnotificatie_code = 'BESACP') facilitair_bedrijfsbureau,
+ (SELECT MAX (fac_tracking_datum)
+ FROM fac_tracking ft, fac_srtnotificatie sn
+ WHERE fac_tracking_refkey = b.bes_bestelling_key
+ AND sn.fac_srtnotificatie_key = ft.fac_srtnotificatie_key
+ AND fac_srtnotificatie_xmlnode = 'bestelling'
+ AND fac_srtnotificatie_code = 'BESFIT') fiat_manager,
+ (SELECT MAX (fac_tracking_datum)
+ FROM fac_tracking ft, fac_srtnotificatie sn
+ WHERE fac_tracking_refkey = b.bes_bestelling_key
+ AND sn.fac_srtnotificatie_key = ft.fac_srtnotificatie_key
+ AND fac_srtnotificatie_xmlnode = 'bestelling'
+ AND fac_srtnotificatie_code = 'BESBES') besteld,
+ bes_bestelling_leverdatum plan_levdatum,
+ ( SELECT MAX (bes_bestelopdr_item_ontvangen)
+ FROM bes_bestelopdr bo,
+ bes_bestelopdr_item boi,
+ bes_bestelling_item bbi,
+ bes_bestelling b1
+ WHERE bo.bes_bestelopdr_key = boi.bes_bestelopdr_key
+ AND bbi.bes_bestelopdr_item_key = boi.bes_bestelopdr_item_key
+ AND b1.bes_bestelling_key = bbi.bes_bestelling_key
+ AND b1.bes_bestelling_status IN (6, 7, 9) -- Geleverd, Verwerkt, Ontvangen
+ AND b.bes_bestelling_key = b1.bes_bestelling_key
+ GROUP BY b1.bes_bestelling_key) afgeleverd,
+ bes_bestelling_opmerking opmerking,
+ bes_bestelling_lev_opm lever_opemerking
+ FROM bes_bestelling b,
+ bes_bestellingstatuses bs,
+ prs_v_perslid_fullnames_all pf1,
+ prs_v_perslid_fullnames_all pf2
+ WHERE b.bes_bestelling_status = bs.bes_bestellingstatuses_key
+ AND b.prs_perslid_key = pf1.prs_perslid_key
+ AND b.prs_perslid_key_voor = pf2.prs_perslid_key
+ AND fac_activiteit_key IS NULL;
CREATE OR REPLACE PROCEDURE vgld_import_fin_factuur_marx (p_import_key IN NUMBER)
AS
@@ -2274,88 +2352,92 @@ AS
oracle_err_num NUMBER;
oracle_err_mes VARCHAR2 (200);
c_kenmerk_key_bijlage NUMBER (10);
- c_kenmerk_key_soort VARCHAR (1) := 'M'; -- fin_kenmerk_kenmerktype = M(foldermap) of F(enkelvoudig bestand)
- v_aanduiding_controle VARCHAR2 (1000); -- Voor logging op bijbehorende controle zodat men weet wat men moet controleren
- v_fin_factuur_key NUMBER(10);
- v_perslid_key PRS_PERSLID.PRS_PERSLID_KEY%TYPE;
-
- CURSOR cfactuur
-IS
- SELECT i.fin_factuur_key, factuurdatum, i.kenmerk1, i.kenmerk2, i.kenmerk3, i.kenmerk6, i.kenmerk7, i.kenmerk8, i.kenmerk9, i.factuurnr, i.fac_imp_file_index, f.fin_factuur_totaal, f.fin_factuur_totaal_btw, f.mld_opdr_key, f.cnt_contract_key, f.bes_bestelopdr_key
- FROM fac_imp_factuur i, fin_factuur f
- WHERE i.fin_factuur_key IS NOT NULL
- AND i.fac_import_key = p_import_key
- AND f.fin_factuur_key = i.fin_factuur_key -- Incl bijlage
- AND kenmerk1 IS NOT NULL;
-
+ c_kenmerk_key_soort VARCHAR (1) := 'F'; -- fin_kenmerk_kenmerktype = M(foldermap) of F(enkelvoudig bestand)
+ v_aanduiding_controle VARCHAR2 (1000); -- Voor logging op bijbehorende controle zodat men weet wat men moet controleren
+ v_fin_factuur_key NUMBER (10);
+ v_perslid_key PRS_PERSLID.PRS_PERSLID_KEY%TYPE;
+
+ CURSOR cfactuur IS
+ SELECT i.fin_factuur_key,
+ factuurdatum,
+ i.kenmerk1,
+ i.kenmerk2,
+ i.kenmerk3,
+ i.kenmerk6,
+ i.kenmerk7,
+ i.kenmerk8,
+ i.kenmerk9,
+ i.factuurnr,
+ i.fac_imp_file_index,
+ f.fin_factuur_totaal,
+ f.fin_factuur_totaal_btw,
+ f.mld_opdr_key,
+ f.cnt_contract_key,
+ f.bes_bestelopdr_key
+ FROM fac_imp_factuur i, fin_factuur f
+ WHERE i.fin_factuur_key IS NOT NULL
+ AND i.fac_import_key = p_import_key
+ AND f.fin_factuur_key = i.fin_factuur_key -- Incl bijlage
+ AND kenmerk1 IS NOT NULL;
BEGIN
-- Nu kunnen we de standaard FCLT verwerk import facturen draaien
fac_update_factuur (p_import_key);
-- CUST: post processing voor verwerking van het PDF document
SELECT MIN (fin_kenmerk_key)
- INTO c_kenmerk_key_bijlage
+ INTO c_kenmerk_key_bijlage
FROM fin_kenmerk
WHERE fin_kenmerk_code = 'FACTUURBESTAND' AND fin_kenmerk_verwijder IS NULL;
FOR rec IN cfactuur
LOOP
BEGIN
- LOOP
+ -- Als er een bijlage-flexprop en een bijlage is, dan gaan we deze PDF hier inzetten....
+ IF c_kenmerk_key_bijlage IS NOT NULL AND rec.kenmerk1 IS NOT NULL
+ THEN
BEGIN
- -- Als er een bijlage-flexprop en een bijlage is, dan gaan we deze PDF hier inzetten....
- IF c_kenmerk_key_bijlage IS NOT NULL AND rec.kenmerk1 IS NOT NULL
+ INSERT INTO fac_result (fac_result_sessionid,
+ fac_result_naam,
+ fac_result_waarde)
+ VALUES (
+ 'IMPORT:' || TO_CHAR (p_import_key),
+ 'flexcode',
+ 'FIN:'
+ || TO_CHAR (rec.fin_factuur_key) -- We kunnen niet meerdere imports tegelijk aan!
+ || ':'
+ || c_kenmerk_key_bijlage
+ || ':' -- De kenmerk key
+ || c_kenmerk_key_soort -- 'F of M'
+ );
+
+ -- FSN#33363: Zelf de insert in fin_kenmerkfactuur doen van het bestandskenmerk (FSN#33105 verzorgt dit niet namelijk)
+ -- Aanvulling JM: Voor F-enkelvoudig bestand wel nodig om kenmerk aan te maken, voor M-folder hoeft/moet dit niet
+ IF c_kenmerk_key_soort = 'F'
THEN
- BEGIN
- INSERT INTO fac_result (fac_result_sessionid,
- fac_result_naam,
- fac_result_waarde)
- VALUES (
- 'IMPORT:' || TO_CHAR (p_import_key),
- 'flexcode',
- 'FIN:'
- || TO_CHAR (rec.fin_factuur_key) -- We kunnen niet meerdere imports tegelijk aan!
- || ':'
- || c_kenmerk_key_bijlage
- || ':' -- De kenmerk key
- || c_kenmerk_key_soort -- 'F of M'
- );
-
- -- FSN#33363: Zelf de insert in fin_kenmerkfactuur doen van het bestandskenmerk (FSN#33105 verzorgt dit niet namelijk)
- -- Aanvulling JM: Voor F-enkelvoudig bestand wel nodig om kenmerk aan te maken, voor M-folder hoeft/moet dit niet
- IF c_kenmerk_key_soort = 'M'
- THEN
- INSERT INTO fin_kenmerkfactuur (fin_factuur_key,
- fin_kenmerk_key,
- fin_kenmerkfactuur_waarde)
- VALUES (rec.fin_factuur_key,
- c_kenmerk_key_bijlage,
- rec.kenmerk1);
- END IF;
- EXCEPTION
- WHEN OTHERS
- THEN
- v_aanduiding_controle :=
- 'Van factuur met key '
- || rec.fin_factuur_key
- || ' is de bestandsnaam niet bewaard (regel '
- || rec.fac_imp_file_index
- || ')';
- fac.imp_writelog (
- p_import_key,
- 'W',
- v_aanduiding_controle,
- 'Factuurnr:'
- || rec.factuurnr
- || ' / Bestandsnaam: '
- || rec.kenmerk1);
-
- END;
-
- COMMIT;
+ INSERT INTO fin_kenmerkfactuur (fin_factuur_key,
+ fin_kenmerk_key,
+ fin_kenmerkfactuur_waarde)
+ VALUES (rec.fin_factuur_key, c_kenmerk_key_bijlage, rec.kenmerk1);
END IF;
+
+ EXCEPTION
+ WHEN OTHERS
+ THEN
+ v_aanduiding_controle :=
+ 'Van factuur met key '
+ || rec.fin_factuur_key
+ || ' is de bestandsnaam niet bewaard (regel '
+ || rec.fac_imp_file_index
+ || ')';
+ fac.imp_writelog (
+ p_import_key,
+ 'W',
+ v_aanduiding_controle,
+ 'Factuurnr:' || rec.factuurnr || ' / Bestandsnaam: ' || rec.kenmerk1);
END;
- END LOOP;
+
+ COMMIT;
+ END IF;
END;
END LOOP;
EXCEPTION
@@ -2419,7 +2501,10 @@ END;
------ payload end ------
SET DEFINE OFF
-BEGIN adm.systrackscriptId ('$Id$', 0); END;
+
+BEGIN
+ adm.systrackscriptId ('$Id$', 0);
+END;
/
COMMIT;