7172 lines
356 KiB
MySQL
7172 lines
356 KiB
MySQL
--
|
||
-- $Id$
|
||
--
|
||
-- Script containing customer specific db-configuration for VLKC.
|
||
DEFINE thisfile = 'VLKC.SQL'
|
||
DEFINE dbuser = '^VLKC'
|
||
|
||
SET ECHO ON
|
||
SET DEFINE ON
|
||
COLUMN fcltlogfile NEW_VALUE fcltlogfile NOPRINT;
|
||
COLUMN fcltcusttxt NEW_VALUE fcltcusttxt NOPRINT;
|
||
WHENEVER SQLERROR CONTINUE;
|
||
SELECT adm.getscriptspoolfile('&thisfile') AS fcltlogfile FROM DUAL;
|
||
SPOOL &fcltlogfile
|
||
WHENEVER SQLERROR EXIT;
|
||
SELECT adm.checkscriptcust('&dbuser') AS fcltcusttxt FROM DUAL;
|
||
WHENEVER SQLERROR CONTINUE;
|
||
---------------------------------------
|
||
PROMPT &fcltcusttxt
|
||
---------------------------------------
|
||
SET DEFINE OFF
|
||
|
||
------ payload begin ------
|
||
|
||
CREATE OR REPLACE VIEW vlkc_v_rap_import_log
|
||
(
|
||
fclt_f_applicatie,
|
||
datum,
|
||
fclt_f_status,
|
||
omschrijving,
|
||
hint
|
||
)
|
||
AS
|
||
SELECT COALESCE (fac_import_app_code, imp_log_applicatie),
|
||
TO_CHAR (imp_log_datum, 'dd-mm-yyyy hh24:mi'),
|
||
imp_log_status,
|
||
imp_log_omschrijving,
|
||
imp_log_hint
|
||
FROM imp_log il1, fac_import fi1, fac_import_app fia1
|
||
WHERE il1.fac_import_key = fi1.fac_import_key(+)
|
||
AND fi1.fac_import_app_key = fia1.fac_import_app_key(+)
|
||
AND NOT EXISTS
|
||
(SELECT 1
|
||
FROM imp_log il2, fac_import fi2
|
||
WHERE il2.fac_import_key = fi2.fac_import_key
|
||
AND fi2.fac_import_app_key = fi1.fac_import_app_key
|
||
AND il2.fac_import_key > il1.fac_import_key);
|
||
|
||
|
||
/* Formatted on 21-12-2016 16:36:24 (QP5 v5.136.908.31019) */
|
||
CREATE OR REPLACE PROCEDURE vlkc_import_org (p_import_key IN NUMBER)
|
||
AS
|
||
c_delim VARCHAR2 (1) := ';'; -- Field seperator
|
||
v_newline fac_imp_file.fac_imp_file_line%TYPE; -- Import line
|
||
v_errormsg VARCHAR2 (1000) := '';
|
||
oracle_err_num NUMBER;
|
||
oracle_err_mes VARCHAR2 (200);
|
||
v_aanduiding VARCHAR2 (1000) := '';
|
||
header_is_valid NUMBER := 0;
|
||
v_count_tot NUMBER (10) := 0;
|
||
v_count_imp NUMBER (10) := 0;
|
||
-- De importvelden
|
||
v_afd_oms VARCHAR2 (255);
|
||
v_afd_naam VARCHAR2 (255);
|
||
v_afd_parent VARCHAR2 (255);
|
||
v_manager VARCHAR2 (255);
|
||
v_kpn_nr VARCHAR2 (255);
|
||
v_kpn_oms VARCHAR2 (255);
|
||
|
||
CURSOR c1
|
||
IS
|
||
SELECT fac_imp_file_line,
|
||
LENGTH (TRIM (REPLACE (fac_imp_file_line, c_delim, '')))
|
||
regellengte
|
||
FROM fac_imp_file
|
||
WHERE fac_import_key = p_import_key
|
||
ORDER BY fac_imp_file_index;
|
||
BEGIN
|
||
DELETE FROM fac_imp_organisatie;
|
||
COMMIT;
|
||
|
||
FOR rec1 IN c1
|
||
LOOP
|
||
BEGIN
|
||
v_newline := rec1.fac_imp_file_line;
|
||
v_errormsg := 'Fout opvragen importregel';
|
||
v_aanduiding := '';
|
||
-- Lees alle veldwaarden
|
||
-- Afdeling;Afd.-nr.;Nr. bovenliggende afd.;Manager;Nr. kostenplaats;Kostenplaats;Bestaat sinds;Tot en met
|
||
fac.imp_getfield (v_newline, c_delim, v_afd_oms);
|
||
fac.imp_getfield (v_newline, c_delim, v_afd_naam);
|
||
fac.imp_getfield (v_newline, c_delim, v_afd_parent);
|
||
fac.imp_getfield (v_newline, c_delim, v_manager); -- Don't care
|
||
fac.imp_getfield (v_newline, c_delim, v_kpn_nr);
|
||
fac.imp_getfield (v_newline, c_delim, v_kpn_oms);
|
||
|
||
v_aanduiding := '[' || '|' || v_afd_naam || '|' || v_afd_parent || v_afd_oms || '] ';
|
||
|
||
-- 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 v_afd_oms = 'Afdeling'
|
||
AND v_afd_naam = 'Afd.-nr.'
|
||
AND v_afd_parent = 'Nr. bovenliggende afd.'
|
||
AND v_manager = 'Manager'
|
||
AND v_kpn_nr = 'Nr. kostenplaats'
|
||
AND v_kpn_oms = 'Kostenplaats'
|
||
THEN
|
||
header_is_valid := 1;
|
||
END IF;
|
||
ELSIF (rec1.regellengte > 0) -- Lege regels overslaan
|
||
THEN
|
||
BEGIN
|
||
v_count_tot := v_count_tot + 1;
|
||
|
||
-- Direct wegschrijven; controleer alle veldwaarden maar niet.
|
||
v_errormsg := 'Fout wegschrijven importregel';
|
||
|
||
INSERT INTO fac_imp_organisatie (prs_bedrijf_naam, -- Vullen met kostenplaatsomschrijving!
|
||
prs_afdeling_naam,
|
||
prs_afdeling_naam_parent,
|
||
prs_afdeling_omschrijving,
|
||
prs_kostenplaats_nr)
|
||
VALUES (SUBSTR (TRIM (v_kpn_oms), 1, 60),
|
||
SUBSTR (TRIM (v_afd_naam), 1, 15),
|
||
SUBSTR (TRIM (v_afd_parent), 1, 15),
|
||
SUBSTR (TRIM (v_afd_oms), 1, 60),
|
||
SUBSTR (TRIM (v_kpn_nr), 1, 30));
|
||
|
||
v_count_imp := v_count_imp + 1;
|
||
EXCEPTION
|
||
WHEN OTHERS
|
||
THEN
|
||
oracle_err_num := SQLCODE;
|
||
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
|
||
v_errormsg := v_errormsg || ' ORACLE (error ' || oracle_err_num || '/' || oracle_err_mes || ')';
|
||
fac.imp_writelog (p_import_key, 'W', v_aanduiding || v_errormsg, '');
|
||
END;
|
||
|
||
COMMIT;
|
||
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 afspraak!');
|
||
ELSE
|
||
fac.imp_writelog (p_import_key, 'S',
|
||
'Afdelingen/#ingelezen importregels: ' || TO_CHAR (v_count_tot), '');
|
||
fac.imp_writelog (p_import_key, 'S',
|
||
'Afdelingen/#ongeldige niet ingelezen importregels: ' || TO_CHAR (v_count_tot - v_count_imp), '');
|
||
END IF;
|
||
EXCEPTION
|
||
WHEN OTHERS
|
||
THEN
|
||
oracle_err_num := SQLCODE;
|
||
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
|
||
v_errormsg := v_errormsg || ' ORACLE (error ' || oracle_err_num || '/' || oracle_err_mes || ')';
|
||
fac.imp_writelog (p_import_key, 'E', v_aanduiding || v_errormsg, 'Inleesproces Afdelingen afgebroken!');
|
||
|
||
-- Maak importtabel leeg om import van foutieve bestanden te voorkomen!
|
||
DELETE FROM fac_imp_organisatie;
|
||
END;
|
||
/
|
||
|
||
/* Formatted on 21-12-2016 19:35:25 (QP5 v5.136.908.31019) */
|
||
CREATE OR REPLACE PROCEDURE vlkc_update_org (p_import_key IN NUMBER)
|
||
AS
|
||
c_prs_bedrijf_key NUMBER := 2241; -- Van Lanschot Kempen N.V.
|
||
v_errormsg VARCHAR2 (1000) := '';
|
||
oracle_err_num NUMBER;
|
||
oracle_err_mes VARCHAR2 (200);
|
||
v_aanduiding VARCHAR2 (1000) := '';
|
||
v_count NUMBER;
|
||
l_impcountafd NUMBER;
|
||
l_oldcountafd NUMBER;
|
||
l_oldcountkpn NUMBER;
|
||
lkostenplaatskey prs_kostenplaats.prs_kostenplaats_key%TYPE;
|
||
lafdelingkey prs_afdeling.prs_afdeling_key%TYPE;
|
||
l_cur_lev NUMBER;
|
||
l_cur_parentkey prs_afdeling.prs_afdeling_parentkey%TYPE;
|
||
l_new_parentkey prs_afdeling.prs_afdeling_parentkey%TYPE;
|
||
l_vervcountafd NUMBER;
|
||
l_vervcountkpn NUMBER;
|
||
l_newcountafd NUMBER;
|
||
l_newcountkpn NUMBER;
|
||
|
||
-- Uitgangspunt is dat afbeelding in FACILITOR stuctureel gelijk blijft aan
|
||
-- structuur zoals geimporteerd uit X(?).
|
||
-- Wel geldt dat er in FACILITOR slechts 5 niveaus zijn (excl. bedrijf)
|
||
-- en in X(?) meer. De "lagere" regionen worden daarom op niveau 5 gehangen
|
||
-- (en onder niveau 4).
|
||
CURSOR cafdelingsboom
|
||
IS
|
||
SELECT LEVEL imp_lev,
|
||
DECODE (LEVEL, 1, 1, 2, 2, 3, 3, 4, 4, 5) fac_lev,
|
||
UPPER (prs_afdeling_naam) prs_afdeling_naam,
|
||
UPPER (prs_afdeling_naam_parent) prs_afdeling_naam_parent,
|
||
prs_afdeling_omschrijving,
|
||
UPPER (prs_kostenplaats_nr) prs_kostenplaats_nr,
|
||
prs_bedrijf_naam prs_kostenplaats_omschrijving
|
||
FROM fac_imp_organisatie
|
||
WHERE prs_afdeling_naam IS NOT NULL -- Geen lege regels
|
||
CONNECT BY PRIOR prs_afdeling_naam = prs_afdeling_naam_parent
|
||
START WITH prs_afdeling_naam_parent IS NULL
|
||
ORDER BY LEVEL;
|
||
BEGIN
|
||
-- How many records are imported?
|
||
SELECT COUNT ( * ) INTO l_impcountafd FROM fac_imp_organisatie;
|
||
|
||
-- How many active afdelingen are now present?
|
||
SELECT COUNT ( * ) -- ALLEEN onder Van Lanschot Kempen N.V.!
|
||
INTO l_oldcountafd
|
||
FROM prs_v_aanwezigafdeling a, prs_v_afdeling_boom ab
|
||
WHERE UPPER (COALESCE (a.prs_afdeling_omschrijving, '-')) NOT LIKE 'VERVALLEN:%'
|
||
AND a.prs_afdeling_key = ab.prs_afdeling_key
|
||
AND ab.prs_bedrijf_key = c_prs_bedrijf_key;
|
||
|
||
SELECT COUNT ( * )
|
||
INTO l_oldcountkpn
|
||
FROM prs_v_aanwezigkostenplaats
|
||
WHERE prs_kostenplaats_module = 'PRS'
|
||
AND UPPER (COALESCE (prs_kostenplaats_omschrijving, '-')) NOT LIKE 'VERVALLEN:%';
|
||
|
||
-- Check #regels, stop als onvoldoende = minder dan de helft overblijft!
|
||
IF (l_impcountafd < l_oldcountafd / 2)
|
||
THEN
|
||
fac.imp_writelog (p_import_key, 'E', 'Verdacht importbestand', 'Te weinig regels; update afgebroken!');
|
||
RETURN;
|
||
END IF;
|
||
|
||
FOR rc IN cafdelingsboom
|
||
LOOP
|
||
v_aanduiding := '[' || rc.prs_afdeling_naam || '|' || rc.prs_afdeling_naam_parent || '|' || rc.prs_kostenplaats_nr || '] ';
|
||
|
||
-- Bestaat de kostenplaats al?
|
||
v_errormsg := 'Fout bepalen kostenplaats.';
|
||
BEGIN
|
||
SELECT prs_kostenplaats_key
|
||
INTO lkostenplaatskey
|
||
FROM prs_v_aanwezigkostenplaats
|
||
WHERE prs_kostenplaats_upper = rc.prs_kostenplaats_nr;
|
||
EXCEPTION
|
||
WHEN NO_DATA_FOUND
|
||
THEN
|
||
lkostenplaatskey := -1;
|
||
END;
|
||
|
||
-- Bestaat de afdeling al?
|
||
v_errormsg := 'Fout bepalen afdeling.';
|
||
BEGIN
|
||
SELECT a.prs_afdeling_key, COALESCE (fac.safe_to_number (ab.niveau), -1), a.prs_afdeling_parentkey
|
||
INTO lafdelingkey, l_cur_lev, l_cur_parentkey
|
||
FROM prs_afdeling a, prs_v_afdeling_boom ab -- LET OP: Niet prs_v_aanwezigafdeling (want soms "lager" dan 5)!
|
||
WHERE a.prs_afdeling_verwijder IS NULL
|
||
AND a.prs_afdeling_key = ab.prs_afdeling_key(+) -- LET OP: Kan tijdelijk uit beeld raken ("lager" dan 5)!
|
||
AND a.prs_afdeling_upper = rc.prs_afdeling_naam;
|
||
EXCEPTION
|
||
WHEN NO_DATA_FOUND
|
||
THEN
|
||
lafdelingkey := -1;
|
||
l_cur_lev := -1;
|
||
l_cur_parentkey := -1;
|
||
END;
|
||
|
||
l_new_parentkey := -1;
|
||
|
||
v_errormsg := 'Fout toevoegen/bijwerken kostenplaats.';
|
||
|
||
BEGIN
|
||
IF lkostenplaatskey = -1
|
||
THEN
|
||
INSERT INTO prs_kostenplaats (prs_kostenplaats_nr,
|
||
prs_kostenplaats_omschrijving,
|
||
prs_kostenplaats_module,
|
||
prs_kostenplaats_begin,
|
||
prs_kostenplaats_eind)
|
||
VALUES (rc.prs_kostenplaats_nr,
|
||
rc.prs_kostenplaats_omschrijving,
|
||
'PRS',
|
||
SYSDATE,
|
||
NULL)
|
||
RETURNING prs_kostenplaats_key INTO lkostenplaatskey;
|
||
ELSE -- Bijwerken kostenplaats met omschrijving het hoogst in de boom!
|
||
SELECT COUNT ( * )
|
||
INTO v_count
|
||
FROM ( SELECT LEVEL imp_lev,
|
||
DECODE (LEVEL, 1, 1, 2, 2, 3, 3, 4, 4, 5) fac_lev,
|
||
UPPER (prs_afdeling_naam) prs_afdeling_naam,
|
||
UPPER (prs_afdeling_naam_parent) prs_afdeling_naam_parent,
|
||
prs_afdeling_omschrijving,
|
||
UPPER (prs_kostenplaats_nr) prs_kostenplaats_nr,
|
||
prs_bedrijf_naam prs_kostenplaats_omschrijving
|
||
FROM fac_imp_organisatie
|
||
WHERE prs_afdeling_naam IS NOT NULL -- Geen lege regels
|
||
CONNECT BY PRIOR prs_afdeling_naam = prs_afdeling_naam_parent
|
||
START WITH prs_afdeling_naam_parent IS NULL
|
||
ORDER BY LEVEL) x
|
||
WHERE UPPER (x.prs_kostenplaats_nr) = rc.prs_kostenplaats_nr
|
||
AND x.fac_lev < rc.fac_lev;
|
||
|
||
IF (v_count = 0)
|
||
THEN
|
||
UPDATE prs_kostenplaats
|
||
SET prs_kostenplaats_omschrijving = rc.prs_kostenplaats_omschrijving,
|
||
prs_kostenplaats_module = 'PRS'
|
||
WHERE prs_kostenplaats_key = lkostenplaatskey;
|
||
END IF;
|
||
END IF;
|
||
EXCEPTION
|
||
WHEN OTHERS
|
||
THEN
|
||
oracle_err_num := SQLCODE;
|
||
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
|
||
v_errormsg := v_errormsg || ' ORACLE (error ' || oracle_err_num || '/' || oracle_err_mes || ')';
|
||
fac.imp_writelog (p_import_key, 'W', v_aanduiding || v_errormsg, '');
|
||
END;
|
||
|
||
-- Bij de mapping naar afdelingen slaan wel level=1 over en pakken we de
|
||
-- afdelingen vanaf level=2 (= FACILITOR Afdeling-1).
|
||
IF rc.imp_lev >= 1 AND lkostenplaatskey <> -1 -- Elke afdeling heeft kostenplaats!
|
||
THEN
|
||
IF lafdelingkey = -1 -- Nieuwe afdeling -> toevoegen!
|
||
THEN
|
||
BEGIN
|
||
v_errormsg := 'Fout toevoegen afdeling.';
|
||
|
||
IF rc.fac_lev = 1 -- Ingelezen afdeling betreft Afdeling-1!
|
||
THEN
|
||
INSERT INTO prs_afdeling (prs_afdeling_naam,
|
||
prs_afdeling_omschrijving,
|
||
prs_bedrijf_key,
|
||
prs_afdeling_parentkey,
|
||
prs_kostenplaats_key)
|
||
VALUES (rc.prs_afdeling_naam,
|
||
rc.prs_afdeling_omschrijving,
|
||
c_prs_bedrijf_key,
|
||
NULL,
|
||
lkostenplaatskey)
|
||
RETURNING prs_afdeling_key INTO lafdelingkey;
|
||
ELSIF rc.imp_lev <= 5 -- Afdeling-2 t/m Afdeling-5!
|
||
THEN
|
||
-- Bepaal key van parent!
|
||
SELECT prs_afdeling_key
|
||
INTO l_new_parentkey
|
||
FROM prs_afdeling -- LET OP: Niet prs_v_aanwezigafdeling (want soms "lager" dan 5)!
|
||
WHERE prs_afdeling_verwijder IS NULL
|
||
AND prs_afdeling_upper = rc.prs_afdeling_naam_parent;
|
||
|
||
INSERT INTO prs_afdeling (prs_afdeling_naam,
|
||
prs_afdeling_omschrijving,
|
||
prs_bedrijf_key,
|
||
prs_afdeling_parentkey,
|
||
prs_kostenplaats_key)
|
||
VALUES (rc.prs_afdeling_naam,
|
||
rc.prs_afdeling_omschrijving,
|
||
NULL,
|
||
l_new_parentkey,
|
||
lkostenplaatskey)
|
||
RETURNING prs_afdeling_key INTO lafdelingkey;
|
||
ELSE -- Omhoog geschoven afdeling op/naar niveau Afdeling-5!
|
||
-- Bepaal key van parent van (soms zelf verschoven) parent!
|
||
SELECT prs_afdeling_parentkey
|
||
INTO l_new_parentkey
|
||
FROM prs_afdeling -- LET OP: Niet prs_v_aanwezigafdeling (want soms "lager" dan 5)!
|
||
WHERE prs_afdeling_verwijder IS NULL
|
||
AND prs_afdeling_upper = rc.prs_afdeling_naam_parent;
|
||
|
||
-- Doordat cursor van hoog naar laag door organisatie loopt,
|
||
-- komen afdelingen vanaf (imp_)lev>=7 keurig onder gewenste
|
||
-- Afdeling-4 te hangen.
|
||
INSERT INTO prs_afdeling (prs_afdeling_naam,
|
||
prs_afdeling_omschrijving,
|
||
prs_bedrijf_key,
|
||
prs_afdeling_parentkey,
|
||
prs_kostenplaats_key)
|
||
VALUES (rc.prs_afdeling_naam,
|
||
rc.prs_afdeling_omschrijving,
|
||
NULL,
|
||
l_new_parentkey,
|
||
lkostenplaatskey)
|
||
RETURNING prs_afdeling_key INTO lafdelingkey;
|
||
END IF;
|
||
|
||
fac.imp_writelog (p_import_key, 'I', v_aanduiding, 'Afdeling toegevoegd.');
|
||
EXCEPTION
|
||
WHEN OTHERS
|
||
THEN
|
||
oracle_err_num := SQLCODE;
|
||
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
|
||
v_errormsg := v_errormsg || ' ORACLE (error ' || oracle_err_num || '/' || oracle_err_mes || ')';
|
||
fac.imp_writelog (p_import_key, 'W', v_aanduiding || v_errormsg, '');
|
||
END;
|
||
ELSE -- Bestaande afdeling -> bijwerken (misschien)!
|
||
BEGIN
|
||
v_errormsg := 'Fout bijwerken afdeling.';
|
||
|
||
-- Zonodig bijwerken omschrijving (deze kon eerder vervallen
|
||
-- zijn) en/of omhangen naar de juiste plek in de boom.
|
||
IF rc.fac_lev = 1 -- Ingelezen afdeling betreft Afdeling-1!
|
||
THEN
|
||
UPDATE prs_afdeling
|
||
SET prs_afdeling_omschrijving = rc.prs_afdeling_omschrijving,
|
||
prs_bedrijf_key = c_prs_bedrijf_key,
|
||
prs_afdeling_parentkey = NULL,
|
||
prs_kostenplaats_key = lkostenplaatskey
|
||
WHERE prs_afdeling_key = lafdelingkey
|
||
AND (COALESCE (prs_afdeling_omschrijving, '-') <> rc.prs_afdeling_omschrijving -- Oms. gewijzigd?
|
||
OR prs_afdeling_parentkey IS NOT NULL -- Niveau gewijzigd?
|
||
OR prs_kostenplaats_key <> lkostenplaatskey); -- Kostenplaats gewijzigd?
|
||
ELSIF rc.imp_lev <= 5 -- Afdeling-2 t/m Afdeling-5!
|
||
THEN
|
||
-- Bepaal key van parent!
|
||
SELECT prs_afdeling_key
|
||
INTO l_new_parentkey
|
||
FROM prs_afdeling -- LET OP: Niet prs_v_aanwezigafdeling (want soms "lager" dan 5)!
|
||
WHERE prs_afdeling_verwijder IS NULL
|
||
AND prs_afdeling_upper = rc.prs_afdeling_naam_parent;
|
||
|
||
UPDATE prs_afdeling
|
||
SET prs_afdeling_omschrijving = rc.prs_afdeling_omschrijving,
|
||
prs_bedrijf_key = NULL,
|
||
prs_afdeling_parentkey = l_new_parentkey,
|
||
prs_kostenplaats_key = lkostenplaatskey
|
||
WHERE prs_afdeling_key = lafdelingkey
|
||
AND (COALESCE (prs_afdeling_omschrijving, '-') <> rc.prs_afdeling_omschrijving -- Oms. gewijzigd?
|
||
OR COALESCE (prs_afdeling_parentkey, -1) <> l_new_parentkey -- Parent gewijzigd?
|
||
OR prs_kostenplaats_key <> lkostenplaatskey); -- Kostenplaats gewijzigd?
|
||
ELSE -- Omhoog geschoven afdeling op/naar niveau Afdeling-5!
|
||
-- Bepaal key van parent van (soms zelf verschoven) parent!
|
||
SELECT prs_afdeling_parentkey
|
||
INTO l_new_parentkey
|
||
FROM prs_afdeling -- LET OP: Niet prs_v_aanwezigafdeling (want soms "lager" dan 5)!
|
||
WHERE prs_afdeling_verwijder IS NULL
|
||
AND prs_afdeling_upper = rc.prs_afdeling_naam_parent;
|
||
|
||
-- Doordat cursor van hoog naar laag door organisatie loopt,
|
||
-- komen afdelingen vanaf (imp_)lev>=7 keurig onder gewenste
|
||
-- Afdeling-4 te hangen.
|
||
UPDATE prs_afdeling
|
||
SET prs_afdeling_omschrijving = rc.prs_afdeling_omschrijving,
|
||
prs_bedrijf_key = NULL,
|
||
prs_afdeling_parentkey = l_new_parentkey,
|
||
prs_kostenplaats_key = lkostenplaatskey
|
||
WHERE prs_afdeling_key = lafdelingkey
|
||
AND (COALESCE (prs_afdeling_omschrijving, '-') <> rc.prs_afdeling_omschrijving -- Oms. gewijzigd?
|
||
OR COALESCE (prs_afdeling_parentkey, -1) <> l_new_parentkey -- Parent gewijzigd?
|
||
OR prs_kostenplaats_key <> lkostenplaatskey); -- Kostenplaats gewijzigd?
|
||
END IF;
|
||
|
||
IF rc.fac_lev <> l_cur_lev OR l_new_parentkey <> l_cur_parentkey
|
||
THEN
|
||
fac.imp_writelog (p_import_key, 'I', v_aanduiding, 'Afdeling omgehangen naar level=' || TO_CHAR (rc.fac_lev));
|
||
END IF;
|
||
EXCEPTION
|
||
WHEN OTHERS
|
||
THEN
|
||
oracle_err_num := SQLCODE;
|
||
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
|
||
v_errormsg := v_errormsg || ' ORACLE (error ' || oracle_err_num || '/' || oracle_err_mes || ')';
|
||
fac.imp_writelog (p_import_key, 'W', v_aanduiding || v_errormsg, '');
|
||
END;
|
||
END IF;
|
||
|
||
COMMIT;
|
||
END IF;
|
||
END LOOP;
|
||
|
||
-- Zet kostenplaatsen op VERVALLEN; de rest handmatig verder maar regelen!
|
||
v_errormsg := 'Fout inactiveren kostenplaatsen.';
|
||
|
||
SELECT COUNT ( * )
|
||
INTO l_vervcountkpn
|
||
FROM prs_v_aanwezigkostenplaats kp
|
||
WHERE kp.prs_kostenplaats_module = 'PRS'
|
||
AND UPPER (COALESCE (kp.prs_kostenplaats_omschrijving, '-')) NOT LIKE 'VERVALLEN:%'
|
||
AND NOT EXISTS
|
||
(SELECT 1
|
||
FROM fac_imp_organisatie
|
||
WHERE UPPER (prs_kostenplaats_nr) = kp.prs_kostenplaats_upper);
|
||
|
||
UPDATE prs_kostenplaats kp
|
||
SET kp.prs_kostenplaats_omschrijving = SUBSTR ('VERVALLEN:' || COALESCE (prs_kostenplaats_omschrijving, '-'), 1, 60)
|
||
WHERE kp.prs_kostenplaats_verwijder IS NULL
|
||
AND kp.prs_kostenplaats_module = 'PRS'
|
||
AND UPPER (COALESCE (prs_kostenplaats_omschrijving, '-')) NOT LIKE 'VERVALLEN:%'
|
||
AND NOT EXISTS
|
||
(SELECT 1
|
||
FROM fac_imp_organisatie
|
||
WHERE UPPER (prs_kostenplaats_nr) = kp.prs_kostenplaats_upper)
|
||
AND NOT EXISTS
|
||
(SELECT 1
|
||
FROM prs_v_aanwezigperslid
|
||
WHERE prs_kostenplaats_key = kp.prs_kostenplaats_key);
|
||
|
||
COMMIT;
|
||
|
||
-- Zet afdelingen op VERVALLEN; de rest handmatig verder maar regelen!
|
||
v_errormsg := 'Fout inactiveren afdelingen.';
|
||
|
||
SELECT COUNT ( * ) -- ALLEEN onder Van Lanschot Kempen N.V.!
|
||
INTO l_vervcountafd
|
||
FROM prs_v_aanwezigafdeling a, prs_v_afdeling_boom ab
|
||
WHERE UPPER (COALESCE (a.prs_afdeling_omschrijving, '-')) NOT LIKE 'VERVALLEN:%'
|
||
AND a.prs_afdeling_key = ab.prs_afdeling_key
|
||
AND ab.prs_bedrijf_key = c_prs_bedrijf_key
|
||
AND NOT EXISTS
|
||
(SELECT 1
|
||
FROM fac_imp_organisatie
|
||
WHERE UPPER (prs_afdeling_naam) = a.prs_afdeling_upper);
|
||
|
||
UPDATE prs_afdeling a -- ALLEEN onder Van Lanschot Kempen N.V.!
|
||
SET a.prs_afdeling_omschrijving = SUBSTR ('VERVALLEN:' || COALESCE (prs_afdeling_omschrijving, '-'), 1, 60)
|
||
WHERE a.prs_afdeling_verwijder IS NULL
|
||
AND UPPER (COALESCE (a.prs_afdeling_omschrijving, '-')) NOT LIKE 'VERVALLEN:%'
|
||
AND EXISTS
|
||
(SELECT 1
|
||
FROM prs_v_afdeling_boom
|
||
WHERE prs_afdeling_key = a.prs_afdeling_key
|
||
AND prs_bedrijf_key = c_prs_bedrijf_key)
|
||
AND NOT EXISTS
|
||
(SELECT 1
|
||
FROM fac_imp_organisatie
|
||
WHERE UPPER (prs_afdeling_naam) = a.prs_afdeling_upper);
|
||
|
||
COMMIT;
|
||
|
||
-- For summary only.
|
||
SELECT COUNT ( * ) -- ALLEEN onder Van Lanschot Kempen N.V.!
|
||
INTO l_newcountafd
|
||
FROM prs_v_aanwezigafdeling a, prs_v_afdeling_boom ab
|
||
WHERE UPPER (COALESCE (a.prs_afdeling_omschrijving, '-')) NOT LIKE 'VERVALLEN:%'
|
||
AND a.prs_afdeling_key = ab.prs_afdeling_key
|
||
AND ab.prs_bedrijf_key = c_prs_bedrijf_key;
|
||
|
||
SELECT COUNT ( * )
|
||
INTO l_newcountkpn
|
||
FROM prs_v_aanwezigkostenplaats
|
||
WHERE prs_kostenplaats_module = 'PRS'
|
||
AND UPPER (COALESCE (prs_kostenplaats_omschrijving, '-')) NOT LIKE 'VERVALLEN:%';
|
||
|
||
fac.imp_writelog (
|
||
p_import_key, 'S',
|
||
'Aantal afdelingen in importbestand: ' || TO_CHAR (l_impcountafd),
|
||
'');
|
||
fac.imp_writelog (
|
||
p_import_key, 'S',
|
||
'Aantal actieve afdelingen vooraf: '
|
||
|| TO_CHAR (l_oldcountafd)
|
||
|| ' nu: '
|
||
|| TO_CHAR (l_newcountafd),
|
||
'');
|
||
fac.imp_writelog (
|
||
p_import_key, 'S',
|
||
'Aantal afdelingen vervallen: ' || TO_CHAR (l_vervcountafd),
|
||
'');
|
||
fac.imp_writelog (
|
||
p_import_key, 'S',
|
||
'Aantal actieve kostenplaatsen vooraf: '
|
||
|| TO_CHAR (l_oldcountkpn)
|
||
|| ' nu: '
|
||
|| TO_CHAR (l_newcountkpn),
|
||
'');
|
||
fac.imp_writelog (
|
||
p_import_key, 'S',
|
||
'Aantal kostenplaatsen vervallen: ' || TO_CHAR (l_vervcountkpn),
|
||
'');
|
||
EXCEPTION
|
||
WHEN OTHERS
|
||
THEN
|
||
oracle_err_num := SQLCODE;
|
||
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
|
||
v_errormsg := v_errormsg || ' ORACLE (error ' || oracle_err_num || '/' || oracle_err_mes || ')';
|
||
fac.imp_writelog (p_import_key, 'E', v_aanduiding || v_errormsg, 'Importproces Afdelingen afgebroken!');
|
||
END;
|
||
/
|
||
|
||
|
||
/* Formatted on 17-12-2015 14:48:12 (QP5 v5.136.908.31019) */
|
||
CREATE OR REPLACE PROCEDURE vlkc_import_prs (p_import_key IN NUMBER)
|
||
AS
|
||
v_errormsg VARCHAR2 (1000) := '-';
|
||
oracle_err_num NUMBER;
|
||
oracle_err_mes VARCHAR2 (200);
|
||
BEGIN
|
||
-- Verwijder spaties en haakjes ('(' en ')') uit Telefoonnr.
|
||
UPDATE fac_imp_file
|
||
SET fac_imp_file_line =
|
||
SUBSTR (fac_imp_file_line, 1, INSTR (fac_imp_file_line, ';', 1, 9))
|
||
|| REPLACE (
|
||
REPLACE (
|
||
REPLACE (
|
||
SUBSTR (fac_imp_file_line,
|
||
INSTR (fac_imp_file_line, ';', 1, 9) + 1,
|
||
INSTR (fac_imp_file_line, ';', 1, 10) - INSTR (fac_imp_file_line, ';', 1, 9) - 1),
|
||
' ', ''),
|
||
'(', ''),
|
||
')', '')
|
||
|| SUBSTR (fac_imp_file_line, INSTR (fac_imp_file_line, ';', 1, 10))
|
||
WHERE fac_import_key = p_import_key AND fac_imp_file_index > 1;
|
||
COMMIT;
|
||
|
||
-- Verwijder spaties en haakjes ('(' en ')') uit Mobiel.
|
||
UPDATE fac_imp_file
|
||
SET fac_imp_file_line =
|
||
SUBSTR (fac_imp_file_line, 1, INSTR (fac_imp_file_line, ';', 1, 10))
|
||
|| REPLACE (
|
||
REPLACE (
|
||
REPLACE (
|
||
SUBSTR (fac_imp_file_line,
|
||
INSTR (fac_imp_file_line, ';', 1, 10) + 1,
|
||
INSTR (fac_imp_file_line, ';', 1, 11) - INSTR (fac_imp_file_line, ';', 1, 10) - 1),
|
||
' ', ''),
|
||
'(', ''),
|
||
')', '')
|
||
|| SUBSTR (fac_imp_file_line, INSTR (fac_imp_file_line, ';', 1, 11))
|
||
WHERE fac_import_key = p_import_key AND fac_imp_file_index > 1;
|
||
COMMIT;
|
||
|
||
-- Generieke import.
|
||
-- De sequence array staat beschreven in PRS_PAC.SRC bij de import_perslid-PROCEDURE.
|
||
-- Met Stamplaats wordt nog niets gedaan!
|
||
-- '%"Personeelsnummer";"Login";"Achternaam";"Tussenvoegsel";"Voorletters";"Voornaam";"Afdelingscode";"Functie";"Email";"Telefoonnr";"Mobiel";"Stamplaats";"Login2";"Kpnnr";"Kpnoms"%');
|
||
-- '%Personeelsnummer;Login;Achternaam;Tussenvoegsel;Voorletters;Voornaam;Afdelingscode;Functie;Email;Telefoonnr;Mobiel;Stamplaats;Login2;Kpnnr;Kpnoms%');
|
||
prs.import_perslid (
|
||
p_import_key,
|
||
'0;0;0;0;0;0;7;3;4;6;'
|
||
|| '5;0;0;0;0;10;11;9;0;1;'
|
||
|| '8;2;0;0;0;0;12;13;14;15;'
|
||
|| '0;0;0;0;0;0;0;0;0;0;'
|
||
|| '0;0;0;0;0;0',
|
||
'%Personeelsnummer;Login;Achternaam;Tussenvoegsel;Voorletters;Voornaam;Afdelingscode;Functie;Email;Telefoonnr;Mobiel;Stamplaats;Login2;Kpnnr;Kpnoms%');
|
||
|
||
-- Klantspecifieke aanpassingen.
|
||
-- Als geen Login aangeleverd, dan handmatig toegekende niet wissen.
|
||
UPDATE fac_imp_perslid i
|
||
SET i.prs_perslid_oslogin =
|
||
(SELECT MAX (prs_perslid_oslogin)
|
||
FROM prs_v_aanwezigperslid
|
||
WHERE prs_perslid_nr = i.prs_perslid_nr)
|
||
WHERE i.prs_perslid_oslogin IS NULL -- Aangeleverde Loginnaam wint!
|
||
AND EXISTS
|
||
(SELECT 1
|
||
FROM prs_v_aanwezigperslid
|
||
WHERE prs_perslid_oslogin IS NOT NULL
|
||
AND prs_perslid_nr = i.prs_perslid_nr);
|
||
COMMIT;
|
||
|
||
-- Als geen Voorletters aangeleverd, dan handmatig toegekende niet wissen.
|
||
UPDATE fac_imp_perslid i
|
||
SET i.prs_perslid_voorletters =
|
||
(SELECT MAX (prs_perslid_voorletters)
|
||
FROM prs_v_aanwezigperslid
|
||
WHERE prs_perslid_nr = i.prs_perslid_nr)
|
||
WHERE i.prs_perslid_voorletters IS NULL -- Aangeleverde Voorletters winnen!
|
||
AND EXISTS
|
||
(SELECT 1
|
||
FROM prs_v_aanwezigperslid
|
||
WHERE prs_perslid_voorletters IS NOT NULL
|
||
AND prs_perslid_nr = i.prs_perslid_nr);
|
||
COMMIT;
|
||
|
||
-- Als geen Voornaam aangeleverd, dan handmatig toegekende niet wissen.
|
||
UPDATE fac_imp_perslid i
|
||
SET i.prs_perslid_voornaam =
|
||
(SELECT MAX (prs_perslid_voornaam)
|
||
FROM prs_v_aanwezigperslid
|
||
WHERE prs_perslid_nr = i.prs_perslid_nr)
|
||
WHERE i.prs_perslid_voornaam IS NULL -- Aangeleverde Voornaam wint!
|
||
AND EXISTS
|
||
(SELECT 1
|
||
FROM prs_v_aanwezigperslid
|
||
WHERE prs_perslid_voornaam IS NOT NULL
|
||
AND prs_perslid_nr = i.prs_perslid_nr);
|
||
COMMIT;
|
||
|
||
-- Iedereen de Functie 'Collega'.
|
||
UPDATE fac_imp_perslid
|
||
SET prs_srtperslid_omschrijving = 'Collega';
|
||
COMMIT;
|
||
|
||
-- Als geen Email aangeleverd, dan handmatig toegekende niet wissen.
|
||
UPDATE fac_imp_perslid i
|
||
SET i.prs_perslid_email =
|
||
(SELECT MAX (prs_perslid_email)
|
||
FROM prs_v_aanwezigperslid
|
||
WHERE prs_perslid_nr = i.prs_perslid_nr)
|
||
WHERE i.prs_perslid_email IS NULL -- Aangeleverde Email wint!
|
||
AND EXISTS
|
||
(SELECT 1
|
||
FROM prs_v_aanwezigperslid
|
||
WHERE prs_perslid_email IS NOT NULL
|
||
AND prs_perslid_nr = i.prs_perslid_nr);
|
||
COMMIT;
|
||
|
||
-- Als geen Telefoonnr aangeleverd, dan handmatig toegekende niet wissen.
|
||
UPDATE fac_imp_perslid i
|
||
SET i.prs_perslid_telefoonnr =
|
||
(SELECT MAX (prs_perslid_telefoonnr)
|
||
FROM prs_v_aanwezigperslid
|
||
WHERE prs_perslid_nr = i.prs_perslid_nr)
|
||
WHERE i.prs_perslid_telefoonnr IS NULL -- Aangeleverde Telefoonnr wint!
|
||
AND EXISTS
|
||
(SELECT 1
|
||
FROM prs_v_aanwezigperslid
|
||
WHERE prs_perslid_telefoonnr IS NOT NULL
|
||
AND prs_perslid_nr = i.prs_perslid_nr);
|
||
COMMIT;
|
||
|
||
-- Als geen Mobiel aangeleverd, dan handmatig toegekende niet wissen.
|
||
UPDATE fac_imp_perslid i
|
||
SET i.prs_perslid_mobiel =
|
||
(SELECT MAX (prs_perslid_mobiel)
|
||
FROM prs_v_aanwezigperslid
|
||
WHERE prs_perslid_nr = i.prs_perslid_nr)
|
||
WHERE i.prs_perslid_mobiel IS NULL -- Aangeleverde Mobiel wint!
|
||
AND EXISTS
|
||
(SELECT 1
|
||
FROM prs_v_aanwezigperslid
|
||
WHERE prs_perslid_mobiel IS NOT NULL
|
||
AND prs_perslid_nr = i.prs_perslid_nr);
|
||
COMMIT;
|
||
|
||
-- Klantspecifieke aanpassingen.
|
||
-- Locatie/Gebouw/Verdieping/Ruimte bepalen via Kenmerk1-kolom -> Eigen
|
||
-- tabel 1221=MappingAfas2Gebouwcode -> Gebouw -> Alfabetisch eerste
|
||
-- Ruimte met Ruimtefunctie 121=Tbv. Afas-koppeling op Verdieping met
|
||
-- laagste volgnummer! Aldus met Lottie Rodrigues afgestemd op 13-1-25.
|
||
-- Als persoon al een WP heeft op import-locatie, dan is dat de juiste
|
||
-- en blijft deze (handmatig gecorrigeerde WP) ongewijzigd.
|
||
-- In alle andere gevallen verhuist persoon naar bovenstaande ruimte op
|
||
-- import-locatie.
|
||
-- WPs onder andere locaties dan op import-locatie blijven ongewijzigd!
|
||
UPDATE fac_imp_perslid i
|
||
SET i.alg_locatie_code =
|
||
(SELECT il.alg_locatie_code
|
||
FROM fac_v_aanwezigusrdata ud, -- Mapping Kenmerk1-code -> Gebouwcode
|
||
alg_v_aanweziggebouw ig,
|
||
alg_locatie il
|
||
WHERE ud.fac_usrtab_key = 1221 -- MappingAfas2Gebouwcode
|
||
AND UPPER (ud.fac_usrdata_code) = UPPER (i.prs_kenmerk1)
|
||
AND UPPER (ud.fac_usrdata_omschr) = UPPER (ig.alg_gebouw_code)
|
||
AND ig.alg_locatie_key = il.alg_locatie_key
|
||
AND NOT EXISTS
|
||
(SELECT 1
|
||
FROM alg_v_aanweziggebouw
|
||
WHERE UPPER (alg_gebouw_code) = UPPER (ud.fac_usrdata_omschr)
|
||
AND alg_locatie_key < il.alg_locatie_key)),
|
||
i.alg_gebouw_code =
|
||
(SELECT ig.alg_gebouw_code
|
||
FROM fac_v_aanwezigusrdata ud, -- Mapping Kenmerk1-code -> Gebouwcode
|
||
alg_v_aanweziggebouw ig,
|
||
alg_locatie il
|
||
WHERE ud.fac_usrtab_key = 1221 -- MappingAfas2Gebouwcode
|
||
AND UPPER (ud.fac_usrdata_code) = UPPER (i.prs_kenmerk1)
|
||
AND UPPER (ud.fac_usrdata_omschr) = UPPER (ig.alg_gebouw_code)
|
||
AND ig.alg_locatie_key = il.alg_locatie_key
|
||
AND NOT EXISTS
|
||
(SELECT 1
|
||
FROM alg_v_aanweziggebouw
|
||
WHERE UPPER (alg_gebouw_code) = UPPER (ud.fac_usrdata_omschr)
|
||
AND alg_locatie_key < il.alg_locatie_key)),
|
||
i.alg_verdieping_volgnr =
|
||
(SELECT iv.alg_verdieping_volgnr
|
||
FROM fac_v_aanwezigusrdata ud, -- Mapping Kenmerk1-code -> Gebouwcode
|
||
alg_v_aanweziggebouw ig,
|
||
alg_locatie il,
|
||
alg_verdieping iv,
|
||
alg_ruimte ir
|
||
WHERE ud.fac_usrtab_key = 1221 -- MappingAfas2Gebouwcode
|
||
AND UPPER (ud.fac_usrdata_code) = UPPER (i.prs_kenmerk1)
|
||
AND UPPER (ud.fac_usrdata_omschr) = UPPER (ig.alg_gebouw_code)
|
||
AND ig.alg_locatie_key = il.alg_locatie_key
|
||
AND NOT EXISTS
|
||
(SELECT 1
|
||
FROM alg_v_aanweziggebouw
|
||
WHERE UPPER (alg_gebouw_code) = UPPER (ud.fac_usrdata_omschr)
|
||
AND alg_locatie_key < il.alg_locatie_key)
|
||
AND ig.alg_gebouw_key = iv.alg_gebouw_key
|
||
AND iv.alg_verdieping_key = ir.alg_verdieping_key
|
||
AND ir.alg_srtruimte_key = 121 -- Afas-koppeling
|
||
AND NOT EXISTS
|
||
(SELECT 1
|
||
FROM alg_v_aanwezigruimte r, alg_verdieping v
|
||
WHERE r.alg_srtruimte_key = 121 -- Afas-koppeling
|
||
AND r.alg_verdieping_key = v.alg_verdieping_key
|
||
AND v.alg_gebouw_key = iv.alg_gebouw_key
|
||
AND v.alg_verdieping_volgnr < iv.alg_verdieping_volgnr)),
|
||
i.alg_ruimte_nr =
|
||
(SELECT MIN (ir.alg_ruimte_nr)
|
||
FROM fac_v_aanwezigusrdata ud, -- Mapping Kenmerk1-code -> Gebouwcode
|
||
alg_v_aanweziggebouw ig,
|
||
alg_locatie il,
|
||
alg_verdieping iv,
|
||
alg_ruimte ir
|
||
WHERE ud.fac_usrtab_key = 1221 -- MappingAfas2Gebouwcode
|
||
AND UPPER (ud.fac_usrdata_code) = UPPER (i.prs_kenmerk1)
|
||
AND UPPER (ud.fac_usrdata_omschr) = UPPER (ig.alg_gebouw_code)
|
||
AND ig.alg_locatie_key = il.alg_locatie_key
|
||
AND NOT EXISTS
|
||
(SELECT 1
|
||
FROM alg_v_aanweziggebouw
|
||
WHERE UPPER (alg_gebouw_code) = UPPER (ud.fac_usrdata_omschr)
|
||
AND alg_locatie_key < il.alg_locatie_key)
|
||
AND ig.alg_gebouw_key = iv.alg_gebouw_key
|
||
AND iv.alg_verdieping_key = ir.alg_verdieping_key
|
||
AND ir.alg_srtruimte_key = 121 -- Afas-koppeling
|
||
AND NOT EXISTS
|
||
(SELECT 1
|
||
FROM alg_v_aanwezigruimte r, alg_verdieping v
|
||
WHERE r.alg_srtruimte_key = 121 -- Afas-koppeling
|
||
AND r.alg_verdieping_key = v.alg_verdieping_key
|
||
AND v.alg_gebouw_key = iv.alg_gebouw_key
|
||
AND v.alg_verdieping_volgnr < iv.alg_verdieping_volgnr))
|
||
WHERE NOT EXISTS -- Nog geen werkplek op Locatie!
|
||
(SELECT 1
|
||
FROM fac_v_aanwezigusrdata ud, -- Mapping Kenmerk1-code -> Gebouwcode
|
||
alg_v_aanweziggebouw ig,
|
||
alg_locatie il,
|
||
prs_v_aanwezigperslid p,
|
||
prs_perslidwerkplek pw,
|
||
prs_werkplek cw,
|
||
alg_v_aanwezigruimte cr,
|
||
alg_verdieping cv,
|
||
alg_gebouw cg
|
||
WHERE ud.fac_usrtab_key = 1221 -- MappingAfas2Gebouwcode
|
||
AND UPPER (ud.fac_usrdata_code) = UPPER (i.prs_kenmerk1)
|
||
AND UPPER (ud.fac_usrdata_omschr) = UPPER (ig.alg_gebouw_code)
|
||
AND ig.alg_locatie_key = il.alg_locatie_key
|
||
AND NOT EXISTS
|
||
(SELECT 1
|
||
FROM alg_v_aanweziggebouw
|
||
WHERE UPPER (alg_gebouw_code) = UPPER (ud.fac_usrdata_omschr)
|
||
AND alg_locatie_key < il.alg_locatie_key)
|
||
AND p.prs_perslid_nr = i.prs_perslid_nr
|
||
AND p.prs_perslid_key = pw.prs_perslid_key
|
||
AND pw.prs_werkplek_key = cw.prs_werkplek_key
|
||
AND cw.prs_alg_ruimte_key = cr.alg_ruimte_key
|
||
AND cr.alg_verdieping_key = cv.alg_verdieping_key
|
||
AND cv.alg_gebouw_key = cg.alg_gebouw_key
|
||
AND cg.alg_locatie_key = il.alg_locatie_key);
|
||
COMMIT;
|
||
|
||
-- Resulteert in nette foutmelding als ruimte niet kan worden bepaald.
|
||
UPDATE fac_imp_perslid
|
||
SET alg_verdieping_volgnr = 0
|
||
WHERE alg_gebouw_code IS NOT NULL
|
||
AND alg_verdieping_volgnr IS NULL;
|
||
COMMIT;
|
||
EXCEPTION
|
||
WHEN OTHERS
|
||
THEN
|
||
oracle_err_num := SQLCODE;
|
||
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
|
||
v_errormsg := 'ORACLE (error ' || oracle_err_num || '/' || oracle_err_mes || ')';
|
||
fac.imp_writelog (p_import_key, 'E', v_errormsg, 'Inleesproces personen afgebroken!');
|
||
END vlkc_import_prs;
|
||
/
|
||
/*
|
||
SELECT i.prs_perslid_email,
|
||
i.prs_kenmerk1,
|
||
(SELECT COUNT (pwp.alg_gebouw_code)
|
||
FROM prs_v_aanwezigperslid p, prs_v_perslidwerkplek_gegevens pwp
|
||
WHERE p.prs_perslid_key = pwp.prs_perslid_key
|
||
AND pwp.prs_perslidwerkplek_key <= 11501
|
||
AND p.prs_perslid_nr = i.prs_perslid_nr)
|
||
aant_wp,
|
||
(SELECT MIN (pwp.alg_gebouw_code)
|
||
FROM prs_v_aanwezigperslid p, prs_v_perslidwerkplek_gegevens pwp
|
||
WHERE p.prs_perslid_key = pwp.prs_perslid_key
|
||
AND pwp.prs_perslidwerkplek_key <= 11501
|
||
AND p.prs_perslid_nr = i.prs_perslid_nr)
|
||
min_wp,
|
||
(SELECT MAX (pwp.alg_gebouw_code)
|
||
FROM prs_v_aanwezigperslid p, prs_v_perslidwerkplek_gegevens pwp
|
||
WHERE p.prs_perslid_key = pwp.prs_perslid_key
|
||
AND pwp.prs_perslidwerkplek_key <= 11501
|
||
AND p.prs_perslid_nr = i.prs_perslid_nr)
|
||
max_wp,
|
||
i.alg_locatie_code,
|
||
(SELECT il.alg_locatie_code
|
||
FROM fac_v_aanwezigusrdata ud, -- Mapping Kenmerk1-code -> Gebouwcode
|
||
alg_v_aanweziggebouw ig,
|
||
alg_locatie il
|
||
WHERE ud.fac_usrtab_key = 1221 -- MappingAfas2Gebouwcode
|
||
AND UPPER (ud.fac_usrdata_code) = UPPER (i.prs_kenmerk1)
|
||
AND UPPER (ud.fac_usrdata_omschr) = UPPER (ig.alg_gebouw_code)
|
||
AND ig.alg_locatie_key = il.alg_locatie_key
|
||
AND NOT EXISTS
|
||
(SELECT 1
|
||
FROM alg_v_aanweziggebouw
|
||
WHERE UPPER (alg_gebouw_code) =
|
||
UPPER (ud.fac_usrdata_omschr)
|
||
AND alg_locatie_key < il.alg_locatie_key)),
|
||
i.alg_gebouw_code,
|
||
(SELECT ig.alg_gebouw_code
|
||
FROM fac_v_aanwezigusrdata ud, -- Mapping Kenmerk1-code -> Gebouwcode
|
||
alg_v_aanweziggebouw ig,
|
||
alg_locatie il
|
||
WHERE ud.fac_usrtab_key = 1221 -- MappingAfas2Gebouwcode
|
||
AND UPPER (ud.fac_usrdata_code) = UPPER (i.prs_kenmerk1)
|
||
AND UPPER (ud.fac_usrdata_omschr) = UPPER (ig.alg_gebouw_code)
|
||
AND ig.alg_locatie_key = il.alg_locatie_key
|
||
AND NOT EXISTS
|
||
(SELECT 1
|
||
FROM alg_v_aanweziggebouw
|
||
WHERE UPPER (alg_gebouw_code) =
|
||
UPPER (ud.fac_usrdata_omschr)
|
||
AND alg_locatie_key < il.alg_locatie_key)),
|
||
i.alg_verdieping_volgnr,
|
||
(SELECT iv.alg_verdieping_volgnr
|
||
FROM fac_v_aanwezigusrdata ud, -- Mapping Kenmerk1-code -> Gebouwcode
|
||
alg_v_aanweziggebouw ig,
|
||
alg_locatie il,
|
||
alg_verdieping iv,
|
||
alg_ruimte ir
|
||
WHERE ud.fac_usrtab_key = 1221 -- MappingAfas2Gebouwcode
|
||
AND UPPER (ud.fac_usrdata_code) = UPPER (i.prs_kenmerk1)
|
||
AND UPPER (ud.fac_usrdata_omschr) = UPPER (ig.alg_gebouw_code)
|
||
AND ig.alg_locatie_key = il.alg_locatie_key
|
||
AND NOT EXISTS
|
||
(SELECT 1
|
||
FROM alg_v_aanweziggebouw
|
||
WHERE UPPER (alg_gebouw_code) =
|
||
UPPER (ud.fac_usrdata_omschr)
|
||
AND alg_locatie_key < il.alg_locatie_key)
|
||
AND ig.alg_gebouw_key = iv.alg_gebouw_key
|
||
AND iv.alg_verdieping_key = ir.alg_verdieping_key
|
||
AND ir.alg_ruimte_nr = '0'
|
||
AND NOT EXISTS
|
||
(SELECT 1
|
||
FROM alg_v_aanwezigruimte r, alg_verdieping v
|
||
WHERE r.alg_ruimte_nr = '0'
|
||
AND r.alg_verdieping_key =
|
||
v.alg_verdieping_key
|
||
AND v.alg_verdieping_volgnr <
|
||
iv.alg_verdieping_volgnr)),
|
||
i.alg_ruimte_nr,
|
||
(SELECT '0'
|
||
FROM fac_v_aanwezigusrdata ud, -- Mapping Kenmerk1-code -> Gebouwcode
|
||
alg_v_aanweziggebouw ig,
|
||
alg_locatie il
|
||
WHERE ud.fac_usrtab_key = 1221 -- MappingAfas2Gebouwcode
|
||
AND UPPER (ud.fac_usrdata_code) = UPPER (i.prs_kenmerk1)
|
||
AND UPPER (ud.fac_usrdata_omschr) = UPPER (ig.alg_gebouw_code)
|
||
AND ig.alg_locatie_key = il.alg_locatie_key
|
||
AND NOT EXISTS
|
||
(SELECT 1
|
||
FROM alg_v_aanweziggebouw
|
||
WHERE UPPER (alg_gebouw_code) =
|
||
UPPER (ud.fac_usrdata_omschr)
|
||
AND alg_locatie_key < il.alg_locatie_key))
|
||
FROM fac_imp_perslid i
|
||
WHERE NOT EXISTS -- Nog geen werkplek op Locatie!
|
||
(SELECT 1
|
||
FROM fac_v_aanwezigusrdata ud, -- Mapping Kenmerk1-code -> Gebouwcode
|
||
alg_v_aanweziggebouw ig,
|
||
alg_locatie il,
|
||
prs_v_aanwezigperslid p,
|
||
prs_perslidwerkplek pw,
|
||
prs_werkplek cw,
|
||
alg_v_aanwezigruimte cr,
|
||
alg_verdieping CV,
|
||
alg_gebouw cg
|
||
WHERE ud.fac_usrtab_key = 1221 -- MappingAfas2Gebouwcode
|
||
AND UPPER (ud.fac_usrdata_code) = UPPER (i.prs_kenmerk1)
|
||
AND UPPER (ud.fac_usrdata_omschr) =
|
||
UPPER (ig.alg_gebouw_code)
|
||
AND ig.alg_locatie_key = il.alg_locatie_key
|
||
AND NOT EXISTS
|
||
(SELECT 1
|
||
FROM alg_v_aanweziggebouw
|
||
WHERE UPPER (alg_gebouw_code) =
|
||
UPPER (ud.fac_usrdata_omschr)
|
||
AND alg_locatie_key < il.alg_locatie_key)
|
||
AND p.prs_perslid_nr = i.prs_perslid_nr
|
||
AND p.prs_perslid_key = pw.prs_perslid_key
|
||
AND pw.prs_werkplek_key = cw.prs_werkplek_key
|
||
AND cw.prs_alg_ruimte_key = cr.alg_ruimte_key
|
||
AND cr.alg_verdieping_key = CV.alg_verdieping_key
|
||
AND CV.alg_gebouw_key = cg.alg_gebouw_key
|
||
AND cg.alg_locatie_key = il.alg_locatie_key);
|
||
|
||
m.boer@vanlanschotkempen.com Den Bosch Hooge Steenweg 4 E RK-AMS-APOL DB-HSW
|
||
M.Walschots@vanlanschotkempen.com Den Bosch Hooge Steenweg 4 E RK-AMS-APOL DB-HSW
|
||
M.deGroot@vanlanschotkempen.com Den Bosch Hooge Steenweg 3 E RK-AMS-APOL DB-HSW
|
||
E.Deurhof@vanlanschotkempen.com Amsterdam Apollolaan 2 E HK AMS-APOL
|
||
f.jongen@vanlanschotkempen.com Amsterdam Beethovenstraat 2 COL-DHAA HK AMS-WTC
|
||
m.bink@vanlanschotkempen.com Amsterdam Beethovenstraat 2 ALL-GEBOUW COL-GRO-Ubbo AMS-WTC
|
||
M.Boere@vanlanschotkempen.com Amsterdam Apollolaan 1 E E AMS-APOL
|
||
e.bleukens@vanlanschotkempen.com Rotterdam 1 E E ROT
|
||
J.Godschalk@vanlanschotkempen.com Amsterdam Apollolaan 1 E E AMS-APOL
|
||
D.vanderGrinten@vanlanschotkempen.com Amsterdam Apollolaan 1 E E AMS-APOL
|
||
y.langeweg@vanlanschotkempen.com Amsterdam Apollolaan 1 COL-ZEIST COL-ZEIST AMS-APOL
|
||
S.Raspoort@vanlanschotkempen.com Amsterdam Apollolaan 1 E E AMS-APOL
|
||
A.vanWingerden@vanlanschotkempen.com Amsterdam Apollolaan 1 COL-ZEIST COL-ZEIST AMS-APOL
|
||
s.roele@vanlanschotkempen.com Amsterdam Beethovenstraat 1 RK-AMS-APOL RK-AMS-APOL AMS-WTC
|
||
n.ewald-smits@vanlanschotkempen.com Den Bosch Toren 1 E E DB-TOREN
|
||
F.Maghraoui@vanlanschotkempen.com Amsterdam Beethovenstraat 1 RK-AMS-APOL RK-AMS-APOL AMS-WTC
|
||
e.vanbraam@vanlanschotkempen.com Amsterdam Apollolaan 1 E E AMS-APOL
|
||
r.monincx@vanlanschotkempen.com Amsterdam Apollolaan 1 COL-ALK LOO COL-ALK LOO AMS-APOL
|
||
b.cools-vandinther@vanlanschotkempen.com Rotterdam 1 E E ROT
|
||
*/
|
||
CREATE OR REPLACE PROCEDURE vlkc_update_prs (p_import_key IN NUMBER)
|
||
AS
|
||
-- Maximale afname van medewerkers na import tov. huidig aantal met nummer!
|
||
c_max_delta_percentage NUMBER (10) := 25; -- 25%!
|
||
v_errormsg VARCHAR2 (1000);
|
||
oracle_err_num NUMBER;
|
||
oracle_err_mes VARCHAR2 (200);
|
||
v_count_prs_import NUMBER (10); -- #actieve personen na import!
|
||
v_count_prs_actual NUMBER (10); -- #actieve personen voor import!
|
||
v_kostenplaats_key NUMBER (10);
|
||
|
||
-- Verwijderen personen niet in import (voor afdeling wel in import)!
|
||
CURSOR c_del
|
||
IS
|
||
SELECT p.prs_perslid_key, p.prs_perslid_nr
|
||
FROM prs_v_aanwezigperslid p --, prs_afdeling a
|
||
WHERE p.prs_perslid_nr IS NOT NULL -- Personen met nummer
|
||
AND p.prs_srtperslid_key = 3941 -- Personen met functie=Collega
|
||
AND NOT EXISTS
|
||
(SELECT 1
|
||
FROM fac_imp_perslid
|
||
WHERE prs_perslid_nr = p.prs_perslid_nr)
|
||
ORDER BY 2, 1;
|
||
|
||
-- Toekennen alternatieve login!
|
||
CURSOR c_login2
|
||
IS
|
||
SELECT '[' || p.prs_perslid_nr || '|' || TRIM (i.prs_kenmerk2) || '] ' aanduiding,
|
||
p.prs_perslid_key,
|
||
TRIM (i.prs_kenmerk2) prs_kenmerk2
|
||
FROM fac_imp_perslid i, prs_v_aanwezigperslid p
|
||
WHERE LENGTH (TRIM (i.prs_kenmerk2)) > 0 -- Login2
|
||
AND i.prs_perslid_nr = p.prs_perslid_nr
|
||
AND i.prs_kenmerk2 != p.prs_perslid_oslogin
|
||
ORDER BY 2, 1;
|
||
|
||
-- Toekennen(/aanmaken/bijwerken) persoonlijke kostenplaats!
|
||
CURSOR c_prskpn
|
||
IS
|
||
SELECT '[' || p.prs_perslid_nr || '|' || TRIM (i.prs_kenmerk3) || '|' || TRIM (i.prs_kenmerk4) || '] ' aanduiding,
|
||
p.prs_perslid_key,
|
||
TRIM (i.prs_kenmerk3) prs_kenmerk3,
|
||
TRIM (i.prs_kenmerk4) prs_kenmerk4,
|
||
kp.prs_kostenplaats_key
|
||
FROM fac_imp_perslid i, prs_v_aanwezigperslid p, prs_v_aanwezigkostenplaats kp
|
||
WHERE LENGTH (TRIM (i.prs_kenmerk3)) > 0 -- Kpnnr
|
||
AND i.prs_perslid_nr = p.prs_perslid_nr
|
||
AND TRIM (i.prs_kenmerk3) = TRIM (kp.prs_kostenplaats_nr(+))
|
||
ORDER BY 2, 1;
|
||
|
||
-- Toekennen autorisatiegroep _Default NL aan Nederlanders!
|
||
CURSOR c_nl
|
||
IS
|
||
SELECT '[' || p.prs_perslid_nr || '] ' aanduiding,
|
||
p.prs_perslid_key
|
||
FROM prs_v_aanwezigperslid p, prs_v_afdeling_boom ab
|
||
WHERE p.prs_perslid_nr IS NOT NULL
|
||
AND p.prs_srtperslid_key = 3941 -- Personen met functie=Collega
|
||
AND p.prs_afdeling_key = ab.prs_afdeling_key
|
||
AND ab.prs_afdeling_key2 != 7384 -- 10002/Mercier Van Lanschot/Alles NIET onder 10002 is NL!
|
||
AND NOT EXISTS
|
||
(SELECT 1
|
||
FROM fac_gebruikersgroep
|
||
WHERE fac_groep_key = 1 -- _Default NL
|
||
AND prs_perslid_key = p.prs_perslid_key)
|
||
ORDER BY 2, 1;
|
||
|
||
-- Toekennen autorisatiegroep _Default BE aan Belgen!
|
||
CURSOR c_be
|
||
IS
|
||
SELECT '[' || p.prs_perslid_nr || '] ' aanduiding,
|
||
p.prs_perslid_key
|
||
FROM prs_v_aanwezigperslid p, prs_v_afdeling_boom ab
|
||
WHERE p.prs_perslid_nr IS NOT NULL
|
||
AND p.prs_srtperslid_key = 3941 -- Personen met functie=Collega
|
||
AND p.prs_afdeling_key = ab.prs_afdeling_key
|
||
AND ab.prs_afdeling_key2 = 7384 -- 10002/Mercier Van Lanschot
|
||
AND NOT EXISTS
|
||
(SELECT 1
|
||
FROM fac_gebruikersgroep
|
||
WHERE fac_groep_key = 1381 -- _Default BE
|
||
AND prs_perslid_key = p.prs_perslid_key)
|
||
ORDER BY 2, 1;
|
||
BEGIN
|
||
-- Bepaal aantal personen na import.
|
||
SELECT COUNT (DISTINCT prs_perslid_nr)
|
||
INTO v_count_prs_import
|
||
FROM fac_imp_perslid
|
||
WHERE prs_perslid_nr IS NOT NULL;
|
||
|
||
-- Bepaal aantal personen voor import.
|
||
SELECT DECODE (COUNT ( * ), 0, 1, COUNT ( * ))
|
||
INTO v_count_prs_actual
|
||
FROM prs_v_aanwezigperslid
|
||
WHERE prs_perslid_nr IS NOT NULL;
|
||
|
||
IF (TRUNC ( (v_count_prs_import / v_count_prs_actual) * 100) < (100 - c_max_delta_percentage))
|
||
THEN
|
||
fac.imp_writelog (
|
||
p_import_key, 'E',
|
||
'Verschil tussen huidig aantal en te importeren aantal personen te groot; zie specificatie!',
|
||
'- max. verschilpercentage = [' || TO_CHAR (c_max_delta_percentage) || '%]'
|
||
|| CHR (13) || CHR (10)
|
||
|| '- #personen/import = [' || TO_CHAR (v_count_prs_import) || ']'
|
||
|| CHR (13) || CHR (10)
|
||
|| '- #personen/huidig = [' || TO_CHAR (v_count_prs_actual) || ']');
|
||
ELSE
|
||
-- Verwijder personen die niet meer in de import voorkomen.
|
||
FOR rec IN c_del
|
||
LOOP
|
||
prs.delete_perslid (p_import_key, rec.prs_perslid_key);
|
||
END LOOP;
|
||
COMMIT;
|
||
|
||
-- Generieke update (op personeelsnummer).
|
||
--prs.update_perslid (p_import_key, 'EMAIL', NULL); -- EENMALIG op e-mail!
|
||
prs.update_perslid (p_import_key, 'NR', NULL);
|
||
|
||
-- Toekennen alternatieve login!
|
||
FOR rec IN c_login2
|
||
LOOP
|
||
BEGIN
|
||
UPDATE prs_perslid
|
||
SET prs_perslid_oslogin2 = rec.prs_kenmerk2
|
||
WHERE prs_perslid_key = rec.prs_perslid_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', rec.aanduiding || v_errormsg, 'Toekennen login2');
|
||
END;
|
||
END LOOP;
|
||
|
||
-- Toekennen(/aanmaken/bijwerken) kostenplaats!
|
||
FOR rec IN c_prskpn
|
||
LOOP
|
||
BEGIN
|
||
v_kostenplaats_key := rec.prs_kostenplaats_key;
|
||
IF v_kostenplaats_key IS NULL
|
||
THEN
|
||
INSERT INTO prs_kostenplaats (prs_kostenplaats_nr, prs_kostenplaats_omschrijving, prs_kostenplaats_module)
|
||
VALUES (rec.prs_kenmerk3, COALESCE (rec.prs_kenmerk4, rec.prs_kenmerk3), 'PRS')
|
||
RETURNING prs_kostenplaats_key
|
||
INTO v_kostenplaats_key;
|
||
ELSE
|
||
UPDATE prs_kostenplaats
|
||
SET prs_kostenplaats_omschrijving = COALESCE (rec.prs_kenmerk4, rec.prs_kenmerk3),
|
||
prs_kostenplaats_module = 'PRS'
|
||
WHERE prs_kostenplaats_key = v_kostenplaats_key;
|
||
END IF;
|
||
|
||
UPDATE prs_perslid
|
||
SET prs_kostenplaats_key = v_kostenplaats_key
|
||
WHERE prs_perslid_key = rec.prs_perslid_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', rec.aanduiding || v_errormsg, 'Toekennen kostenpaats');
|
||
END;
|
||
END LOOP;
|
||
|
||
-- Toekennen autorisatiegroep 1=_Default NL aan Nederlanders (en afnemen
|
||
-- 1381=_Default BE, maar alleen bij toekenning aan 1=_Default NL)!
|
||
FOR rec IN c_nl
|
||
LOOP
|
||
BEGIN
|
||
v_errormsg := 'Fout afnemen _Default BE';
|
||
DELETE FROM fac_gebruikersgroep
|
||
WHERE fac_groep_key = 1381 AND prs_perslid_key = rec.prs_perslid_key;
|
||
|
||
v_errormsg := 'Fout toekennen _Default NL';
|
||
INSERT INTO fac_gebruikersgroep (fac_groep_key, prs_perslid_key)
|
||
VALUES (1, rec.prs_perslid_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', rec.aanduiding || v_errormsg, 'Toekennen _Default NL');
|
||
END;
|
||
END LOOP;
|
||
|
||
-- Toekennen autorisatiegroep 1381=_Default BE aan Belgen (en afnemen
|
||
-- 1=_Default NL, maar alleen bij toekenning aan 1381=_Default BE)!
|
||
FOR rec IN c_be
|
||
LOOP
|
||
BEGIN
|
||
v_errormsg := 'Fout afnemen _Default NL';
|
||
DELETE FROM fac_gebruikersgroep
|
||
WHERE fac_groep_key = 1 AND prs_perslid_key = rec.prs_perslid_key;
|
||
|
||
v_errormsg := 'Fout toekennen _Default BE';
|
||
INSERT INTO fac_gebruikersgroep (fac_groep_key, prs_perslid_key)
|
||
VALUES (1381, rec.prs_perslid_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', rec.aanduiding || v_errormsg, 'Toekennen _Default BE');
|
||
END;
|
||
END LOOP;
|
||
END IF;
|
||
EXCEPTION
|
||
WHEN OTHERS
|
||
THEN
|
||
oracle_err_num := SQLCODE;
|
||
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
|
||
v_errormsg := 'ORACLE (error ' || oracle_err_num || '/' || oracle_err_mes || ')';
|
||
fac.imp_writelog (p_import_key, 'E', v_errormsg, 'importproces personen afgebroken!');
|
||
END vlkc_update_prs;
|
||
/
|
||
|
||
-- VLKC#40719: Klantspecifieke FACTUUR-import/update die vereist dat bij VLKC
|
||
-- bestelopdrachten met een 'b' (of 'B') beginnen.
|
||
-- VLKC#56901: Facturen tegen CV-contracten accepteren (en CF dan ook maar)!
|
||
CREATE OR REPLACE PROCEDURE vlkc_import_factuur (p_import_key IN NUMBER)
|
||
AS
|
||
v_seq_of_columns VARCHAR(255);
|
||
BEGIN
|
||
v_seq_of_columns := '1;2;3;4;5;6;7;8;9;10;11;12;13;14;15;16;17;18;19;20;21;22;23;24;25;26;27;28';
|
||
fac_import_factuur_body(p_import_key, v_seq_of_columns);
|
||
END;
|
||
/
|
||
|
||
CREATE OR REPLACE PROCEDURE vlkc_update_factuur (p_import_key IN NUMBER)
|
||
AS
|
||
BEGIN
|
||
UPDATE fac_imp_factuur SET ordernr = 'X' || ordernr WHERE SUBSTR (ordernr, 1, 1) BETWEEN '0' AND '9';
|
||
UPDATE fac_imp_factuur SET ordernr = SUBSTR (ordernr, 2) WHERE UPPER (SUBSTR (ordernr, 1, 1)) = 'B' AND SUBSTR (ordernr, 2, 1) BETWEEN '0' AND '9'; -- Strip prefix 'B'
|
||
UPDATE fac_imp_factuur SET ordernr = 'C' || SUBSTR (ordernr, 3) WHERE UPPER (SUBSTR (ordernr, 1, 2)) = 'CF' AND SUBSTR (ordernr, 3, 1) BETWEEN '0' AND '9'; -- 'CF':='C'
|
||
UPDATE fac_imp_factuur SET ordernr = 'C' || SUBSTR (ordernr, 3) WHERE UPPER (SUBSTR (ordernr, 1, 2)) = 'CV' AND SUBSTR (ordernr, 3, 1) BETWEEN '0' AND '9'; -- 'CV':='C'
|
||
UPDATE fac_imp_factuur SET ordernr = 'C' || SUBSTR (ordernr, 3) WHERE UPPER (SUBSTR (ordernr, 1, 2)) = 'CH' AND SUBSTR (ordernr, 3, 1) BETWEEN '0' AND '9'; -- 'CH':='C'
|
||
fac_update_factuur (p_import_key); -- Standaard import verwacht voor BES-verplichting g<><67>n prefix, voor MLD-verplichting prefix<>'C' en voor CNT-verplichting prefix='C'!
|
||
END;
|
||
/
|
||
|
||
|
||
/* VLKC#57175 Rapportage Bloemen besteld voor medewerkers VLKC */
|
||
CREATE OR REPLACE VIEW VLKC_V_RAP_BES_BLOEMEN
|
||
(
|
||
OPDR_KEY,
|
||
OPDR_NR,
|
||
OPDR_DATUM,
|
||
NAAM_BESTELLER,
|
||
KOSTENPLAATS_KEY,
|
||
KOSTENPLAATS_NR,
|
||
KOSTENPLAATS_OMSCHR,
|
||
ARTIKEL_PRIJS_INC,
|
||
ARTIKEL_SOORT_KEY,
|
||
ARTIKEL_SOORT_OMSCHRIJVING,
|
||
VOOR_MEDEWERKER_VLKC
|
||
)
|
||
AS
|
||
SELECT beso.BES_BESTELOPDR_KEY,
|
||
beso.BES_BESTELOPDR_ID,
|
||
beso.BES_BESTELOPDR_DATUM,
|
||
pers.PRS_PERSLID_VOORNAAM || ' ' || pers.PRS_PERSLID_NAAM,
|
||
best.PRS_KOSTENPLAATS_KEY,
|
||
kpn.PRS_KOSTENPLAATS_NR,
|
||
kpn.PRS_KOSTENPLAATS_OMSCHRIJVING,
|
||
besi.BES_BESTELLING_ITEM_PRIJS,
|
||
besd.BES_SRTDEEL_NR,
|
||
besd.bes_srtdeel_omschrijving,
|
||
(SELECT fac_usrdata_omschr
|
||
FROM bes_kenmerkbestell kb, fac_usrdata
|
||
WHERE bes_kenmerk_key = 101
|
||
AND fac_usrtab_key = 61
|
||
AND bes_kenmerkbestell_waarde = TO_CHAR (fac_usrdata_key)
|
||
AND kb.BES_BESTELLING_KEY = besi.BES_BESTELLING_KEY)
|
||
voor_mdw_vl
|
||
FROM bes_bestelopdr beso,
|
||
bes_bestelopdr_item besoi,
|
||
bes_bestelling_item besi,
|
||
bes_srtdeel besd,
|
||
bes_srtgroep besg,
|
||
prs_perslid pers,
|
||
bes_bestelling best,
|
||
prs_kostenplaats kpn
|
||
WHERE beso.BES_BESTELOPDR_KEY = besoi.BES_BESTELOPDR_KEY
|
||
AND besi.BES_BESTELOPDR_ITEM_KEY = besoi.BES_BESTELOPDR_ITEM_KEY
|
||
AND besd.BES_SRTDEEL_KEY = besi.BES_SRTDEEL_KEY
|
||
AND besg.BES_SRTGROEP_KEY = besd.BES_SRTGROEP_KEY
|
||
AND besg.INS_DISCIPLINE_KEY = 661
|
||
AND pers.prs_perslid_key = beso.PRS_PERSLID_KEY
|
||
AND best.BES_BESTELLING_KEY = besi.BES_BESTELLING_KEY
|
||
AND best.PRS_KOSTENPLAATS_KEY = kpn.PRS_KOSTENPLAATS_KEY;
|
||
|
||
|
||
/* Formatted on 17-12-2015 15:32:28 (QP5 v5.136.908.31019) */
|
||
CREATE OR REPLACE VIEW vlkc_v_rap_res_maand
|
||
(
|
||
fclt_f_maand,
|
||
kostenplaats,
|
||
aantal,
|
||
totaalprijs
|
||
)
|
||
AS
|
||
SELECT TO_CHAR (res_rsv_artikel_levering, 'yyyy-mm'),
|
||
prs_kostenplaats_nr,
|
||
COUNT (DISTINCT res_id),
|
||
SUM (verw_prijs)
|
||
FROM (SELECT x.res_rsv_artikel_levering,
|
||
kp.prs_kostenplaats_nr,
|
||
kp.prs_kostenplaats_omschrijving,
|
||
x.res_id,
|
||
x.res_discipline_key,
|
||
x.res_rsv_artikel_key,
|
||
x.res_voorziening,
|
||
x.aantal,
|
||
x.stuksprijs,
|
||
x.verw_prijs,
|
||
x.prijs
|
||
FROM (SELECT rra.res_rsv_artikel_levering,
|
||
rrr.res_rsv_ruimte_host_key,
|
||
rrr.res_reservering_key || '/' || rrr.res_rsv_ruimte_volgnr
|
||
res_id,
|
||
ra.res_discipline_key,
|
||
rra.res_rsv_artikel_key,
|
||
LTRIM (ra.res_artikel_omschrijving)
|
||
|| ' ('
|
||
|| COALESCE (ra.res_artikel_eenheid, '')
|
||
|| ')'
|
||
res_voorziening,
|
||
rra.res_rsv_artikel_aantal aantal,
|
||
ra.res_artikel_prijs stuksprijs,
|
||
rra.res_rsv_artikel_prijs verw_prijs,
|
||
rra.res_rsv_artikel_aantal * ra.res_artikel_prijs
|
||
prijs
|
||
FROM res_rsv_ruimte rrr,
|
||
res_v_aanwezigrsv_artikel rra,
|
||
res_artikel ra
|
||
WHERE rrr.alg_ruimte_key IS NULL
|
||
AND rrr.res_rsv_ruimte_key = rra.res_rsv_ruimte_key
|
||
AND rra.res_status_bo_key IN (5, 6)
|
||
AND rra.res_artikel_key = ra.res_artikel_key
|
||
UNION ALL
|
||
SELECT rra.res_rsv_artikel_levering,
|
||
rrr.res_rsv_ruimte_host_key,
|
||
rrr.res_reservering_key || '/' || rrr.res_rsv_ruimte_volgnr
|
||
resid,
|
||
ra.res_discipline_key,
|
||
rra.res_rsv_artikel_key,
|
||
LTRIM (ra.res_artikel_omschrijving)
|
||
|| ' ('
|
||
|| COALESCE (ra.res_artikel_eenheid, '')
|
||
|| ')'
|
||
res_voorziening,
|
||
rra.res_rsv_artikel_aantal aantal,
|
||
ra.res_artikel_prijs stuksprijs,
|
||
rra.res_rsv_artikel_prijs verw_prijs,
|
||
rra.res_rsv_artikel_aantal * ra.res_artikel_prijs
|
||
prijs
|
||
FROM res_rsv_ruimte rrr,
|
||
res_v_aanwezigrsv_artikel rra,
|
||
res_artikel ra
|
||
WHERE rrr.res_ruimte_opstel_key IS NULL
|
||
AND rrr.res_rsv_ruimte_key = rra.res_rsv_ruimte_key
|
||
AND rra.res_status_bo_key IN (5, 6)
|
||
AND rra.res_artikel_key = ra.res_artikel_key) x,
|
||
prs_perslid p,
|
||
prs_afdeling a,
|
||
prs_kostenplaats kp
|
||
WHERE x.res_rsv_ruimte_host_key = p.prs_perslid_key
|
||
AND p.prs_afdeling_key = a.prs_afdeling_key
|
||
AND a.prs_kostenplaats_key = kp.prs_kostenplaats_key)
|
||
GROUP BY TO_CHAR (res_rsv_artikel_levering, 'yyyy-mm'), prs_kostenplaats_nr;
|
||
|
||
-- VLKC#35251/VLKC#39680/VLKC#39756: Kostenplaats volgens reservering (anders
|
||
-- gastheer) en beperken voor alleen locatie
|
||
-- AMS-BEET!
|
||
/* Formatted on 20-3-2017 12:26:42 (QP5 v5.136.908.31019) */
|
||
CREATE OR REPLACE VIEW vlkc_v_rap_cat_doorbelasting
|
||
(
|
||
fclt_f_jaar,
|
||
kostenplaatscode,
|
||
kostenplaats_oms,
|
||
jan,
|
||
feb,
|
||
mrt,
|
||
apr,
|
||
mei,
|
||
jun,
|
||
jul,
|
||
aug,
|
||
sep,
|
||
okt,
|
||
nov,
|
||
dec,
|
||
tot
|
||
)
|
||
AS
|
||
SELECT TO_CHAR (x.res_rsv_artikel_levering, 'yyyy') jaar,
|
||
COALESCE (x.prs_kostenplaats_nr, kp.prs_kostenplaats_nr),
|
||
DECODE (x.prs_kostenplaats_nr, NULL, kp.prs_kostenplaats_omschrijving, x.prs_kostenplaats_omschrijving),
|
||
SUM(DECODE (TO_CHAR (x.res_rsv_artikel_levering, 'mm'), '01', verw_prijs, 0)) jan,
|
||
SUM(DECODE (TO_CHAR (x.res_rsv_artikel_levering, 'mm'), '02', verw_prijs, 0)) feb,
|
||
SUM(DECODE (TO_CHAR (x.res_rsv_artikel_levering, 'mm'), '03', verw_prijs, 0)) mrt,
|
||
SUM(DECODE (TO_CHAR (x.res_rsv_artikel_levering, 'mm'), '04', verw_prijs, 0)) apr,
|
||
SUM(DECODE (TO_CHAR (x.res_rsv_artikel_levering, 'mm'), '05', verw_prijs, 0)) mei,
|
||
SUM(DECODE (TO_CHAR (x.res_rsv_artikel_levering, 'mm'), '06', verw_prijs, 0)) jun,
|
||
SUM(DECODE (TO_CHAR (x.res_rsv_artikel_levering, 'mm'), '07', verw_prijs, 0)) jul,
|
||
SUM(DECODE (TO_CHAR (x.res_rsv_artikel_levering, 'mm'), '08', verw_prijs, 0)) aug,
|
||
SUM(DECODE (TO_CHAR (x.res_rsv_artikel_levering, 'mm'), '09', verw_prijs, 0)) sep,
|
||
SUM(DECODE (TO_CHAR (x.res_rsv_artikel_levering, 'mm'), '10', verw_prijs, 0)) okt,
|
||
SUM(DECODE (TO_CHAR (x.res_rsv_artikel_levering, 'mm'), '11', verw_prijs, 0)) nov,
|
||
SUM(DECODE (TO_CHAR (x.res_rsv_artikel_levering, 'mm'), '12', verw_prijs, 0)) dec,
|
||
SUM (verw_prijs) tot
|
||
FROM (SELECT rra.res_rsv_artikel_levering,
|
||
rrr.res_rsv_ruimte_host_key,
|
||
rrr.res_reservering_key || '/' || rrr.res_rsv_ruimte_volgnr res_id,
|
||
ra.res_discipline_key,
|
||
rra.res_rsv_artikel_key,
|
||
LTRIM (ra.res_artikel_omschrijving) || ' (' || COALESCE (ra.res_artikel_eenheid, '') || ')' res_voorziening,
|
||
rra.res_rsv_artikel_aantal aantal,
|
||
ra.res_artikel_prijs stuksprijs,
|
||
rra.res_rsv_artikel_prijs verw_prijs,
|
||
rra.res_rsv_artikel_aantal * ra.res_artikel_prijs prijs,
|
||
l.alg_locatie_key,
|
||
kp.prs_kostenplaats_nr,
|
||
kp.prs_kostenplaats_omschrijving
|
||
FROM res_rsv_ruimte rrr,
|
||
res_v_aanwezigrsv_artikel rra,
|
||
res_artikel ra,
|
||
res_ruimte_opstelling rro,
|
||
( SELECT res_ruimte_key, MAX (alg_ruimte_key) alg_ruimte_key
|
||
FROM res_v_aanwezigalg_ruimte
|
||
GROUP BY res_ruimte_key) rar,
|
||
alg_v_onrgoed_boom aob,
|
||
alg_locatie l,
|
||
prs_kostenplaats kp
|
||
WHERE rrr.res_rsv_ruimte_key = rra.res_rsv_ruimte_key
|
||
AND rra.res_status_bo_key IN (5, 6)
|
||
AND rra.res_artikel_key = ra.res_artikel_key
|
||
AND rrr.res_ruimte_opstel_key = rro.res_ruimte_opstel_key(+)
|
||
AND rro.res_ruimte_key = rar.res_ruimte_key(+)
|
||
AND COALESCE (rrr.alg_ruimte_key, rar.alg_ruimte_key) = aob.alg_ruimte_key
|
||
AND aob.alg_locatie_key = l.alg_locatie_key
|
||
AND rrr.prs_kostenplaats_key = kp.prs_kostenplaats_key(+)) x,
|
||
prs_perslid p,
|
||
prs_afdeling a,
|
||
prs_kostenplaats kp
|
||
WHERE x.res_rsv_artikel_levering > TRUNC (ADD_MONTHS (SYSDATE, -12), 'yyyy')
|
||
AND x.res_rsv_ruimte_host_key = p.prs_perslid_key
|
||
AND p.prs_afdeling_key = a.prs_afdeling_key
|
||
AND a.prs_kostenplaats_key = kp.prs_kostenplaats_key
|
||
AND x.alg_locatie_key = 1 -- AMS-BEET (Kempen & Co)
|
||
GROUP BY TO_CHAR (x.res_rsv_artikel_levering, 'yyyy'),
|
||
COALESCE (x.prs_kostenplaats_nr, kp.prs_kostenplaats_nr),
|
||
DECODE (x.prs_kostenplaats_nr, NULL, kp.prs_kostenplaats_omschrijving, x.prs_kostenplaats_omschrijving);
|
||
|
||
-- VLKC#39680: Nieuwe variant voor alle locaties van Van Lanschot (en Kempen)!
|
||
CREATE OR REPLACE VIEW vlkc_v_rap_cat_doorbelasting2
|
||
(
|
||
fclt_f_maand,
|
||
kostenplaatscode,
|
||
kostenplaats_oms,
|
||
fclt_f_locatie,
|
||
tot
|
||
)
|
||
AS
|
||
SELECT TO_CHAR (x.res_rsv_artikel_levering, 'yyyy-mm') maand,
|
||
COALESCE (x.prs_kostenplaats_nr, kp.prs_kostenplaats_nr),
|
||
DECODE (x.prs_kostenplaats_nr, NULL, kp.prs_kostenplaats_omschrijving, x.prs_kostenplaats_omschrijving),
|
||
x.alg_locatie_omschrijving,
|
||
SUM (verw_prijs) tot
|
||
FROM (SELECT rra.res_rsv_artikel_levering,
|
||
rrr.res_rsv_ruimte_host_key,
|
||
rrr.res_reservering_key || '/' || rrr.res_rsv_ruimte_volgnr res_id,
|
||
ra.res_discipline_key,
|
||
rra.res_rsv_artikel_key,
|
||
LTRIM (ra.res_artikel_omschrijving) || ' (' || COALESCE (ra.res_artikel_eenheid, '') || ')' res_voorziening,
|
||
rra.res_rsv_artikel_aantal aantal,
|
||
ra.res_artikel_prijs stuksprijs,
|
||
rra.res_rsv_artikel_prijs verw_prijs,
|
||
rra.res_rsv_artikel_aantal * ra.res_artikel_prijs prijs,
|
||
l.alg_locatie_key,
|
||
l.alg_locatie_omschrijving,
|
||
kp.prs_kostenplaats_nr,
|
||
kp.prs_kostenplaats_omschrijving
|
||
FROM res_rsv_ruimte rrr,
|
||
res_v_aanwezigrsv_artikel rra,
|
||
res_artikel ra,
|
||
res_ruimte_opstelling rro,
|
||
( SELECT res_ruimte_key, MAX (alg_ruimte_key) alg_ruimte_key
|
||
FROM res_v_aanwezigalg_ruimte
|
||
GROUP BY res_ruimte_key) rar,
|
||
alg_v_onrgoed_boom aob,
|
||
alg_locatie l,
|
||
prs_kostenplaats kp
|
||
WHERE rrr.res_rsv_ruimte_key = rra.res_rsv_ruimte_key
|
||
AND rra.res_status_bo_key IN (5, 6)
|
||
AND rra.res_artikel_key = ra.res_artikel_key
|
||
AND rrr.res_ruimte_opstel_key = rro.res_ruimte_opstel_key(+)
|
||
AND rro.res_ruimte_key = rar.res_ruimte_key(+)
|
||
AND COALESCE (rrr.alg_ruimte_key, rar.alg_ruimte_key) = aob.alg_ruimte_key
|
||
AND aob.alg_locatie_key = l.alg_locatie_key
|
||
AND rrr.prs_kostenplaats_key = kp.prs_kostenplaats_key(+)) x,
|
||
prs_perslid p,
|
||
prs_afdeling a,
|
||
prs_kostenplaats kp
|
||
WHERE x.res_rsv_artikel_levering > TRUNC (ADD_MONTHS (SYSDATE, -12), 'yyyy')
|
||
AND x.res_rsv_ruimte_host_key = p.prs_perslid_key
|
||
AND p.prs_afdeling_key = a.prs_afdeling_key
|
||
AND a.prs_kostenplaats_key = kp.prs_kostenplaats_key
|
||
GROUP BY TO_CHAR (x.res_rsv_artikel_levering, 'yyyy-mm'),
|
||
COALESCE (x.prs_kostenplaats_nr, kp.prs_kostenplaats_nr),
|
||
DECODE (x.prs_kostenplaats_nr, NULL, kp.prs_kostenplaats_omschrijving, x.prs_kostenplaats_omschrijving),
|
||
x.alg_locatie_omschrijving;
|
||
|
||
-- VLKC#35252
|
||
CREATE OR REPLACE VIEW vlkc_v_rap_bez_aanmelding
|
||
(
|
||
afspraakdatum,
|
||
afspraaknr,
|
||
fclt_f_contactpersoon,
|
||
fclt_f_gastheer,
|
||
bezoeker,
|
||
opmerking,
|
||
fclt_f_door,
|
||
locatie
|
||
)
|
||
AS
|
||
SELECT x.bez_afspraak_datum,
|
||
TO_CHAR (x.bez_afspraak_key),
|
||
x.contactpersoon,
|
||
x.gastheer,
|
||
x.bez_afspraak_naam,
|
||
x.bez_afspraak_opmerking,
|
||
DECODE (gg.prs_perslid_key, NULL, 'Eindgebruiker', 'Receptie'),
|
||
l.alg_locatie_omschrijving || ' (' || l.alg_locatie_code || ')'
|
||
FROM (SELECT a.bez_afspraak_datum,
|
||
a.bez_afspraak_key,
|
||
a.bez_afspraak_opmerking,
|
||
b.bez_afspraak_naam,
|
||
pc.prs_perslid_naam_full contactpersoon,
|
||
ph.prs_perslid_naam_full gastheer,
|
||
t.prs_perslid_key,
|
||
a.alg_locatie_key
|
||
FROM bez_afspraak a,
|
||
bez_bezoekers b,
|
||
prs_v_perslid_fullnames_all pc,
|
||
prs_v_perslid_fullnames_all ph,
|
||
fac_tracking t
|
||
WHERE a.bez_afspraak_key = b.bez_afspraak_key
|
||
AND a.bez_afspraak_contact_key = pc.prs_perslid_key
|
||
AND a.bez_afspraak_host_key = ph.prs_perslid_key
|
||
AND a.bez_afspraak_key = t.fac_tracking_refkey
|
||
AND t.fac_srtnotificatie_key = 26) x -- BEZMUT
|
||
LEFT JOIN ( SELECT bez_afspraak_key, COUNT ( * ) aantal
|
||
FROM bez_bezoekers
|
||
GROUP BY bez_afspraak_key) b
|
||
ON x.bez_afspraak_key = b.bez_afspraak_key
|
||
LEFT JOIN fac_gebruikersgroep gg -- 43=Receptie
|
||
ON x.prs_perslid_key = gg.prs_perslid_key
|
||
AND gg.fac_groep_key = 43
|
||
LEFT JOIN alg_locatie l
|
||
ON x.alg_locatie_key = l.alg_locatie_key;
|
||
|
||
-- VLKC#35749
|
||
/* Formatted on 18-7-2016 18:35:25 (QP5 v5.136.908.31019) */
|
||
CREATE OR REPLACE VIEW vlkc_v_rap_res_cateringrest
|
||
(
|
||
hide_f_volgorde,
|
||
fclt_x_lijst,
|
||
ruimte,
|
||
datum,
|
||
van,
|
||
tot,
|
||
resnr,
|
||
pers,
|
||
voorzieningen_opstelling,
|
||
opmerking_catering,
|
||
omschrijving,
|
||
aanvrager,
|
||
gastheer,
|
||
res_rsv_ruimte_key
|
||
)
|
||
AS
|
||
SELECT TO_CHAR (rrr.res_rsv_ruimte_van, 'yymmddhh24miss')
|
||
|| TO_CHAR (rrr.res_rsv_ruimte_tot, 'yymmddhh24miss')
|
||
|| TO_CHAR (rrr.res_rsv_ruimte_key)
|
||
|| x.res_type,
|
||
'Cateringlijst L17 + Caf<61>',
|
||
COALESCE (alg_ruimte_geg.alg_ruimte_aanduiding, res_ruimte_geg.res_ruimte_nr),
|
||
x.res_reservering_van,
|
||
x.res_reservering_van,
|
||
x.res_reservering_tot,
|
||
rrr.res_reservering_key || '/' || rrr.res_rsv_ruimte_volgnr,
|
||
TO_CHAR (rrr.res_rsv_ruimte_bezoekers),
|
||
COALESCE (x.res_voorziening, res_ruimte_geg.res_opstelling_omschrijving),
|
||
kr.res_kenmerkreservering_waarde,
|
||
rrr.res_rsv_ruimte_omschrijving,
|
||
pa.prs_perslid_naam_full,
|
||
pg.prs_perslid_naam_full,
|
||
rrr.res_rsv_ruimte_key
|
||
FROM (SELECT '1R' res_type,
|
||
rrr.res_rsv_ruimte_key,
|
||
rrr.res_rsv_ruimte_van res_reservering_van,
|
||
rrr.res_rsv_ruimte_tot res_reservering_tot,
|
||
--TO_NUMBER (NULL) aantal,
|
||
NULL res_voorziening,
|
||
NULL res_discipline_key,
|
||
rrr.res_status_bo_key
|
||
FROM res_v_aanwezigrsv_ruimte rrr
|
||
WHERE rrr.alg_ruimte_key IS NULL
|
||
AND rrr.res_rsv_ruimte_tot BETWEEN TRUNC (SYSDATE) AND TRUNC (SYSDATE + 15)
|
||
--AND EXISTS
|
||
-- (SELECT 1
|
||
-- FROM res_v_aanwezigrsv_artikel rra, res_artikel ra
|
||
-- WHERE rra.res_artikel_key = ra.res_artikel_key
|
||
-- AND ra.res_discipline_key IN (41, 44, 45)
|
||
-- AND rra.res_rsv_ruimte_key = rrr.res_rsv_ruimte_key)
|
||
UNION ALL
|
||
SELECT '3C' res_type,
|
||
rra.res_rsv_ruimte_key,
|
||
rra.res_rsv_artikel_levering res_reservering_van,
|
||
NULL res_reservering_tot,
|
||
--rra.res_rsv_artikel_aantal aantal aantal,
|
||
TO_CHAR (rra.res_rsv_artikel_aantal)
|
||
|| ' * '
|
||
|| LTRIM (ra.res_artikel_omschrijving)
|
||
|| ' ('
|
||
|| COALESCE (ra.res_artikel_eenheid, '')
|
||
|| ')'
|
||
res_voorziening,
|
||
ra.res_discipline_key,
|
||
rra.res_status_bo_key
|
||
FROM res_v_aanwezigrsv_artikel rra, res_artikel ra
|
||
WHERE rra.res_artikel_key = ra.res_artikel_key
|
||
AND ra.res_discipline_key IN (41, 44, 45)
|
||
AND rra.res_rsv_artikel_levering BETWEEN TRUNC (SYSDATE) AND TRUNC (SYSDATE + 15)) x,
|
||
res_v_aanwezigrsv_ruimte rrr,
|
||
prs_v_perslid_fullnames_all pa,
|
||
prs_v_perslid_fullnames_all pg,
|
||
alg_v_ruimte_gegevens_all alg_ruimte_geg,
|
||
(SELECT rro.res_ruimte_opstel_key,
|
||
rro.res_ruimte_opstel_default,
|
||
rr.res_discipline_key,
|
||
rr.res_ruimte_nr,
|
||
ro.res_opstelling_omschrijving
|
||
FROM res_ruimte_opstelling rro, res_ruimte rr, res_opstelling ro
|
||
WHERE rro.res_ruimte_key = rr.res_ruimte_key
|
||
AND rro.res_opstelling_key = ro.res_opstelling_key)
|
||
res_ruimte_geg,
|
||
(SELECT *
|
||
FROM res_v_aanwezigkenmerkwaarde kr, res_kenmerk k
|
||
WHERE kr.res_kenmerk_key = k.res_kenmerk_key
|
||
AND k.res_srtkenmerk_key = 1) kr -- Opmerking Catering
|
||
WHERE x.res_rsv_ruimte_key = rrr.res_rsv_ruimte_key
|
||
AND rrr.res_rsv_ruimte_contact_key = pa.prs_perslid_key
|
||
AND rrr.res_rsv_ruimte_host_key = pg.prs_perslid_key
|
||
AND rrr.alg_ruimte_key = alg_ruimte_geg.alg_ruimte_key(+)
|
||
AND rrr.res_ruimte_opstel_key = res_ruimte_geg.res_ruimte_opstel_key(+)
|
||
AND rrr.res_rsv_ruimte_key = kr.res_rsv_ruimte_key(+)
|
||
AND res_ruimte_geg.res_discipline_key IN (21, 22, 23, 24)
|
||
UNION ALL
|
||
SELECT TO_CHAR (rrr.res_rsv_ruimte_van, 'yymmddhh24miss')
|
||
|| TO_CHAR (rrr.res_rsv_ruimte_tot, 'yymmddhh24miss')
|
||
|| TO_CHAR (rrr.res_rsv_ruimte_key)
|
||
|| x.res_type,
|
||
'Cateringlijst L4 + L15',
|
||
COALESCE (alg_ruimte_geg.alg_ruimte_aanduiding, res_ruimte_geg.res_ruimte_nr),
|
||
x.res_reservering_van,
|
||
x.res_reservering_van,
|
||
x.res_reservering_tot,
|
||
rrr.res_reservering_key || '/' || rrr.res_rsv_ruimte_volgnr,
|
||
TO_CHAR (rrr.res_rsv_ruimte_bezoekers),
|
||
COALESCE (x.res_voorziening, res_ruimte_geg.res_opstelling_omschrijving),
|
||
kr.res_kenmerkreservering_waarde,
|
||
rrr.res_rsv_ruimte_omschrijving,
|
||
pa.prs_perslid_naam_full,
|
||
pg.prs_perslid_naam_full,
|
||
rrr.res_rsv_ruimte_key
|
||
FROM (SELECT '1R' res_type,
|
||
rrr.res_rsv_ruimte_key,
|
||
rrr.res_rsv_ruimte_van res_reservering_van,
|
||
rrr.res_rsv_ruimte_tot res_reservering_tot,
|
||
--TO_NUMBER (NULL) aantal,
|
||
NULL res_voorziening,
|
||
NULL res_discipline_key,
|
||
rrr.res_status_bo_key
|
||
FROM res_v_aanwezigrsv_ruimte rrr
|
||
WHERE rrr.alg_ruimte_key IS NULL
|
||
AND rrr.res_rsv_ruimte_tot BETWEEN TRUNC (SYSDATE) AND TRUNC (SYSDATE + 15)
|
||
--AND EXISTS
|
||
-- (SELECT 1
|
||
-- FROM res_v_aanwezigrsv_artikel rra, res_artikel ra
|
||
-- WHERE rra.res_artikel_key = ra.res_artikel_key
|
||
-- AND ra.res_discipline_key IN (42, 45)
|
||
-- AND rra.res_rsv_ruimte_key = rrr.res_rsv_ruimte_key)
|
||
UNION ALL
|
||
SELECT '3C' res_type,
|
||
rra.res_rsv_ruimte_key,
|
||
rra.res_rsv_artikel_levering res_reservering_van,
|
||
NULL res_reservering_tot,
|
||
--rra.res_rsv_artikel_aantal aantal,
|
||
TO_CHAR (rra.res_rsv_artikel_aantal)
|
||
|| ' * '
|
||
|| LTRIM (ra.res_artikel_omschrijving)
|
||
|| ' ('
|
||
|| COALESCE (ra.res_artikel_eenheid, '')
|
||
|| ')'
|
||
res_voorziening,
|
||
ra.res_discipline_key,
|
||
rra.res_status_bo_key
|
||
FROM res_v_aanwezigrsv_artikel rra, res_artikel ra
|
||
WHERE rra.res_artikel_key = ra.res_artikel_key
|
||
AND ra.res_discipline_key IN (42, 45)
|
||
AND rra.res_rsv_artikel_levering BETWEEN TRUNC (SYSDATE) AND TRUNC (SYSDATE + 15)) x,
|
||
res_v_aanwezigrsv_ruimte rrr,
|
||
prs_v_perslid_fullnames_all pa,
|
||
prs_v_perslid_fullnames_all pg,
|
||
alg_v_ruimte_gegevens_all alg_ruimte_geg,
|
||
(SELECT rro.res_ruimte_opstel_key,
|
||
rro.res_ruimte_opstel_default,
|
||
rr.res_discipline_key,
|
||
rr.res_ruimte_nr,
|
||
ro.res_opstelling_omschrijving
|
||
FROM res_ruimte_opstelling rro, res_ruimte rr, res_opstelling ro
|
||
WHERE rro.res_ruimte_key = rr.res_ruimte_key
|
||
AND rro.res_opstelling_key = ro.res_opstelling_key)
|
||
res_ruimte_geg,
|
||
(SELECT *
|
||
FROM res_v_aanwezigkenmerkwaarde kr, res_kenmerk k
|
||
WHERE kr.res_kenmerk_key = k.res_kenmerk_key
|
||
AND k.res_srtkenmerk_key = 1) kr -- Opmerking Catering
|
||
WHERE x.res_rsv_ruimte_key = rrr.res_rsv_ruimte_key
|
||
AND rrr.res_rsv_ruimte_contact_key = pa.prs_perslid_key
|
||
AND rrr.res_rsv_ruimte_host_key = pg.prs_perslid_key
|
||
AND rrr.alg_ruimte_key = alg_ruimte_geg.alg_ruimte_key(+)
|
||
AND rrr.res_ruimte_opstel_key = res_ruimte_geg.res_ruimte_opstel_key(+)
|
||
AND rrr.res_rsv_ruimte_key = kr.res_rsv_ruimte_key(+)
|
||
AND res_ruimte_geg.res_discipline_key IN (22, 26, 27, 121)
|
||
UNION ALL
|
||
SELECT TO_CHAR (rrr.res_rsv_ruimte_van, 'yymmddhh24miss')
|
||
|| TO_CHAR (rrr.res_rsv_ruimte_tot, 'yymmddhh24miss')
|
||
|| TO_CHAR (rrr.res_rsv_ruimte_key)
|
||
|| x.res_type,
|
||
'Restaurantlijst',
|
||
COALESCE (alg_ruimte_geg.alg_ruimte_aanduiding, res_ruimte_geg.res_ruimte_nr),
|
||
x.res_reservering_van,
|
||
x.res_reservering_van,
|
||
x.res_reservering_tot,
|
||
rrr.res_reservering_key || '/' || rrr.res_rsv_ruimte_volgnr,
|
||
TO_CHAR (rrr.res_rsv_ruimte_bezoekers),
|
||
COALESCE (x.res_voorziening, res_ruimte_geg.res_opstelling_omschrijving),
|
||
kr.res_kenmerkreservering_waarde,
|
||
rrr.res_rsv_ruimte_omschrijving,
|
||
pa.prs_perslid_naam_full,
|
||
pg.prs_perslid_naam_full,
|
||
rrr.res_rsv_ruimte_key
|
||
FROM (SELECT '1R' res_type,
|
||
rrr.res_rsv_ruimte_key,
|
||
rrr.res_rsv_ruimte_van res_reservering_van,
|
||
rrr.res_rsv_ruimte_tot res_reservering_tot,
|
||
--TO_NUMBER (NULL) aantal,
|
||
NULL res_voorziening,
|
||
NULL res_discipline_key,
|
||
rrr.res_status_bo_key
|
||
FROM res_v_aanwezigrsv_ruimte rrr
|
||
WHERE rrr.alg_ruimte_key IS NULL
|
||
AND rrr.res_rsv_ruimte_tot BETWEEN TRUNC (SYSDATE) AND TRUNC (SYSDATE + 15)
|
||
AND EXISTS
|
||
(SELECT 1
|
||
FROM res_v_aanwezigrsv_artikel rra, res_artikel ra
|
||
WHERE rra.res_artikel_key = ra.res_artikel_key
|
||
AND ra.res_artikel_key IN
|
||
(1,
|
||
2,
|
||
3,
|
||
4,
|
||
6,
|
||
12,
|
||
13,
|
||
14,
|
||
15,
|
||
16,
|
||
24,
|
||
28,
|
||
29,
|
||
30,
|
||
31,
|
||
32,
|
||
44,
|
||
61,
|
||
123,
|
||
142,
|
||
244,
|
||
261,
|
||
263,
|
||
264,
|
||
265,
|
||
268,
|
||
269,
|
||
281,
|
||
282,
|
||
284)
|
||
AND rra.res_rsv_ruimte_key = rrr.res_rsv_ruimte_key)
|
||
UNION ALL
|
||
SELECT '3C' res_type,
|
||
rra.res_rsv_ruimte_key,
|
||
rra.res_rsv_artikel_levering res_reservering_van,
|
||
NULL res_reservering_tot,
|
||
--rra.res_rsv_artikel_aantal aantal,
|
||
TO_CHAR (rra.res_rsv_artikel_aantal)
|
||
|| ' * '
|
||
|| LTRIM (ra.res_artikel_omschrijving)
|
||
|| ' ('
|
||
|| COALESCE (ra.res_artikel_eenheid, '')
|
||
|| ')'
|
||
res_voorziening,
|
||
ra.res_discipline_key,
|
||
rra.res_status_bo_key
|
||
FROM res_v_aanwezigrsv_artikel rra, res_artikel ra
|
||
WHERE rra.res_artikel_key = ra.res_artikel_key
|
||
AND ra.res_artikel_key IN
|
||
(1,
|
||
2,
|
||
3,
|
||
4,
|
||
6,
|
||
12,
|
||
13,
|
||
14,
|
||
15,
|
||
16,
|
||
24,
|
||
28,
|
||
29,
|
||
30,
|
||
31,
|
||
32,
|
||
44,
|
||
61,
|
||
123,
|
||
142,
|
||
244,
|
||
261,
|
||
263,
|
||
264,
|
||
265,
|
||
268,
|
||
269,
|
||
281,
|
||
282,
|
||
284)
|
||
AND rra.res_rsv_artikel_levering BETWEEN TRUNC (SYSDATE) AND TRUNC (SYSDATE + 15)) x,
|
||
res_v_aanwezigrsv_ruimte rrr,
|
||
prs_v_perslid_fullnames_all pa,
|
||
prs_v_perslid_fullnames_all pg,
|
||
alg_v_ruimte_gegevens_all alg_ruimte_geg,
|
||
(SELECT rro.res_ruimte_opstel_key,
|
||
rro.res_ruimte_opstel_default,
|
||
rr.res_discipline_key,
|
||
rr.res_ruimte_nr,
|
||
ro.res_opstelling_omschrijving
|
||
FROM res_ruimte_opstelling rro, res_ruimte rr, res_opstelling ro
|
||
WHERE rro.res_ruimte_key = rr.res_ruimte_key
|
||
AND rro.res_opstelling_key = ro.res_opstelling_key)
|
||
res_ruimte_geg,
|
||
(SELECT *
|
||
FROM res_v_aanwezigkenmerkwaarde kr, res_kenmerk K
|
||
WHERE kr.res_kenmerk_key = k.res_kenmerk_key
|
||
AND k.res_srtkenmerk_key = 1) kr -- Opmerking Catering
|
||
WHERE x.res_status_bo_key = 2 -- Geregistreerd
|
||
AND x.res_rsv_ruimte_key = rrr.res_rsv_ruimte_key
|
||
AND rrr.res_rsv_ruimte_contact_key = pa.prs_perslid_key
|
||
AND rrr.res_rsv_ruimte_host_key = pg.prs_perslid_key
|
||
AND rrr.alg_ruimte_key = alg_ruimte_geg.alg_ruimte_key(+)
|
||
AND rrr.res_ruimte_opstel_key = res_ruimte_geg.res_ruimte_opstel_key(+)
|
||
AND rrr.res_rsv_ruimte_key = kr.res_rsv_ruimte_key(+);
|
||
|
||
-- VLKC#52091: Locatie toegevoegd en uitbreiding reserveringstypen/catalogi.
|
||
-- VLKC#72707: Voortaan ook incl. roomservice-reserveringen (bezorgservice).
|
||
-- VLKC#73156: Locatie tonen voor Roomservice-reserveringen (bezorgservice).
|
||
CREATE OR REPLACE VIEW vlkc_v_rap_res_huismeesters
|
||
(
|
||
hide_f_volgorde,
|
||
ruimte,
|
||
locatie,
|
||
datum,
|
||
van,
|
||
tot,
|
||
resnr,
|
||
pers,
|
||
voorzieningen_opstelling,
|
||
opmerking_huismeester,
|
||
omschrijving,
|
||
aanvrager,
|
||
gastheer,
|
||
res_rsv_ruimte_key
|
||
)
|
||
AS
|
||
SELECT TO_CHAR (rrr.res_rsv_ruimte_van, 'yymmddhh24miss') || TO_CHAR (rrr.res_rsv_ruimte_tot, 'yymmddhh24miss') || TO_CHAR (rrr.res_rsv_ruimte_key) || x.res_type,
|
||
COALESCE (rr.res_ruimte_nr, aog.alg_plaatsaanduiding),
|
||
l.alg_locatie_code locatie,
|
||
x.res_reservering_van,
|
||
x.res_reservering_van,
|
||
x.res_reservering_tot,
|
||
rrr.res_reservering_key || '/' || rrr.res_rsv_ruimte_volgnr,
|
||
TO_CHAR (rrr.res_rsv_ruimte_bezoekers),
|
||
COALESCE (x.res_voorziening, ro.res_opstelling_omschrijving),
|
||
kr.res_kenmerkreservering_waarde,
|
||
rrr.res_rsv_ruimte_omschrijving,
|
||
pa.prs_perslid_naam_full,
|
||
pg.prs_perslid_naam_full,
|
||
rrr.res_rsv_ruimte_key
|
||
FROM (SELECT '1R' res_type,
|
||
rrr.res_rsv_ruimte_key,
|
||
rrr.res_rsv_ruimte_van res_reservering_van,
|
||
rrr.res_rsv_ruimte_tot res_reservering_tot,
|
||
TO_NUMBER (NULL) aantal,
|
||
DECODE (rrr.alg_ruimte_key, NULL, NULL, a.res_activiteit_omschrijving) res_voorziening,
|
||
NULL res_discipline_key,
|
||
rrr.res_status_bo_key
|
||
FROM res_v_aanwezigrsv_ruimte rrr, res_activiteit a
|
||
WHERE 1 = 1 --rrr.alg_ruimte_key IS NULL -- Alleen ruimten (geen roomservice)!
|
||
AND rrr.res_rsv_ruimte_tot BETWEEN TRUNC (SYSDATE) AND TRUNC (SYSDATE + 15)
|
||
AND rrr.res_activiteit_key = a.res_activiteit_key
|
||
AND (EXISTS
|
||
(SELECT 1
|
||
FROM res_v_aanwezigkenmerkwaarde kr, res_kenmerk k
|
||
WHERE kr.res_kenmerk_key = k.res_kenmerk_key
|
||
AND k.res_srtkenmerk_key = 2 -- Opmerking Huismeester
|
||
AND kr.res_rsv_ruimte_key = rrr.res_rsv_ruimte_key)
|
||
OR EXISTS
|
||
(SELECT 1
|
||
FROM res_v_aanwezigrsv_deel rrd, res_deel rd
|
||
WHERE rrd.res_deel_key = rd.res_deel_key
|
||
AND rd.res_discipline_key IN (49, 50, 51, 212, 361, 362)
|
||
AND rrd.res_rsv_ruimte_key = rrr.res_rsv_ruimte_key)
|
||
OR EXISTS
|
||
(SELECT 1
|
||
FROM res_v_aanwezigrsv_artikel rra, res_artikel ra
|
||
WHERE rra.res_artikel_key = ra.res_artikel_key
|
||
AND ra.res_discipline_key IN (46, 81)
|
||
AND rra.res_rsv_ruimte_key = rrr.res_rsv_ruimte_key)
|
||
OR EXISTS
|
||
(SELECT 1
|
||
FROM res_ruimte_opstelling rro, res_ruimte rr
|
||
WHERE rro.res_ruimte_key = rr.res_ruimte_key
|
||
AND rr.res_discipline_key IN (121)
|
||
AND rro.res_ruimte_opstel_key = rrr.res_ruimte_opstel_key))
|
||
UNION ALL
|
||
SELECT '2V' res_type,
|
||
rrd.res_rsv_ruimte_key,
|
||
rrd.res_rsv_deel_van res_reservering_van,
|
||
rrd.res_rsv_deel_tot res_reservering_tot,
|
||
TO_NUMBER (NULL) aantal,
|
||
d.ins_deel_omschrijving || ' (' || COALESCE (rd.res_deel_eenheid, '') || ')' res_voorziening,
|
||
rd.res_discipline_key,
|
||
rrd.res_status_bo_key
|
||
FROM res_v_aanwezigrsv_deel rrd, res_deel rd, ins_deel d
|
||
WHERE rrd.res_rsv_deel_tot BETWEEN TRUNC (SYSDATE) AND TRUNC (SYSDATE + 15)
|
||
AND rrd.res_deel_key = rd.res_deel_key
|
||
AND rd.res_discipline_key IN (49, 50, 51, 212, 361, 362)
|
||
AND rd.res_ins_deel_key = d.ins_deel_key
|
||
UNION ALL
|
||
SELECT '3C' res_type,
|
||
rra.res_rsv_ruimte_key,
|
||
rra.res_rsv_artikel_levering res_reservering_van,
|
||
NULL res_reservering_tot,
|
||
rra.res_rsv_artikel_aantal aantal,
|
||
LTRIM (ra.res_artikel_omschrijving) || ' (' || COALESCE (ra.res_artikel_eenheid, '') || ')' res_voorziening,
|
||
ra.res_discipline_key,
|
||
rra.res_status_bo_key
|
||
FROM res_v_aanwezigrsv_artikel rra, res_artikel ra
|
||
WHERE rra.res_rsv_artikel_levering BETWEEN TRUNC (SYSDATE) AND TRUNC (SYSDATE + 15)
|
||
AND rra.res_artikel_key = ra.res_artikel_key
|
||
AND ra.res_discipline_key IN (46, 81)) x,
|
||
res_v_aanwezigrsv_ruimte rrr,
|
||
prs_v_perslid_fullnames_all pa,
|
||
prs_v_perslid_fullnames_all pg,
|
||
res_ruimte_opstelling rro,
|
||
res_ruimte rr,
|
||
res_opstelling ro,
|
||
( SELECT res_ruimte_key, MAX (alg_ruimte_key) alg_ruimte_key
|
||
FROM res_alg_ruimte
|
||
WHERE res_alg_ruimte_verwijder IS NULL
|
||
GROUP BY res_ruimte_key) rar1,
|
||
( SELECT res_ruimte_key, MAX (alg_ruimte_key) alg_ruimte_key
|
||
FROM res_alg_ruimte
|
||
WHERE res_alg_ruimte_verwijder IS NOT NULL
|
||
GROUP BY res_ruimte_key) rar2,
|
||
alg_v_allonrgoed_gegevens aog,
|
||
alg_locatie l,
|
||
(SELECT *
|
||
FROM res_v_aanwezigkenmerkwaarde kr, res_kenmerk k
|
||
WHERE kr.res_kenmerk_key = k.res_kenmerk_key
|
||
AND k.res_srtkenmerk_key = 2) kr -- Opmerking Huismeester
|
||
WHERE COALESCE (x.res_status_bo_key, 2) = 2 -- Geregistreerd (of roomservice)
|
||
AND x.res_rsv_ruimte_key = rrr.res_rsv_ruimte_key
|
||
AND rrr.res_status_fo_key != 4 -- Niet tonen 4=Vervallen reserveringen
|
||
AND rrr.res_rsv_ruimte_contact_key = pa.prs_perslid_key
|
||
AND rrr.res_rsv_ruimte_host_key = pg.prs_perslid_key
|
||
AND rrr.res_ruimte_opstel_key = rro.res_ruimte_opstel_key(+)
|
||
AND rro.res_ruimte_key = rr.res_ruimte_key(+)
|
||
AND rro.res_opstelling_key = ro.res_opstelling_key(+)
|
||
AND rro.res_ruimte_key = rar1.res_ruimte_key(+)
|
||
AND rro.res_ruimte_key = rar2.res_ruimte_key(+)
|
||
AND COALESCE (rar1.alg_ruimte_key, rar2.alg_ruimte_key, rrr.alg_ruimte_key) = aog.alg_ruimte_key
|
||
AND aog.alg_locatie_key = l.alg_locatie_key
|
||
AND rrr.res_rsv_ruimte_key = kr.res_rsv_ruimte_key(+);
|
||
|
||
|
||
-- Zonder R van BROC (in de R geeft 'vlkc_v_rap_cat_doorbelasting' inzicht)!
|
||
-- VLKC#41246: Per 2018 facturen op variabele contracten (= CV) verwerken.
|
||
-- VLKC#55659: Om contracten te kunnen sluiten, voortaan Akkoord-facturen op
|
||
-- alle contracten (CV+CF) verwerken.
|
||
-- NB. Via een eenmalig script is dat voor alle Akkoord-facturen
|
||
-- t/m 2018 gedaan (<28>n bewust zonder tracking)!
|
||
/* Formatted on 20-1-2017 10:15:45 (QP5 v5.136.908.31019) */
|
||
CREATE OR REPLACE VIEW vlkc_v_coda_actual
|
||
(
|
||
bedrijf_key,
|
||
factuur_key,
|
||
bes_opdr_key,
|
||
mld_opdr_key,
|
||
cnt_key,
|
||
kostensoort, -- Van groep!
|
||
doorbelasten,
|
||
kostenplaats, -- Kostenplaats bij verplichting
|
||
kosten
|
||
)
|
||
AS -- Op basis van B-facturen!
|
||
SELECT bo.prs_bedrijf_key bedrijf_key,
|
||
f.fin_factuur_key factuur_key,
|
||
f.bes_bestelopdr_key bes_opdr_key,
|
||
NULL mld_opdr_key,
|
||
NULL cnt_key,
|
||
x.prs_kostensoortgrp_altcode kostensoort,
|
||
COALESCE (x.prs_kostensoort_doorbelasten, 0) doorbelasten,
|
||
x.prs_kostenplaats_nr,
|
||
SUM(DECODE (x.prs_kostensoort_btw,
|
||
1, f.fin_factuur_totaal + f.fin_factuur_totaal_btw,
|
||
f.fin_factuur_totaal))
|
||
kosten
|
||
FROM fin_factuur f,
|
||
bes_bestelopdr bo,
|
||
(SELECT DISTINCT boi.bes_bestelopdr_key,
|
||
ksg.prs_kostensoortgrp_altcode,
|
||
ks.prs_kostensoort_doorbelasten,
|
||
ks.prs_kostensoort_btw,
|
||
kp.prs_kostenplaats_nr
|
||
FROM bes_bestelopdr_item boi,
|
||
bes_bestelling_item bi,
|
||
bes_srtdeel sd,
|
||
bes_srtgroep sg,
|
||
ins_tab_discipline td,
|
||
prs_kostensoort ks,
|
||
prs_kostensoortgrp ksg,
|
||
bes_bestelling b,
|
||
prs_kostenplaats kp
|
||
WHERE boi.bes_bestelopdr_item_key = bi.bes_bestelopdr_item_key
|
||
AND bi.bes_srtdeel_key = sd.bes_srtdeel_key
|
||
AND sd.bes_srtgroep_key = sg.bes_srtgroep_key
|
||
AND sg.ins_discipline_key = td.ins_discipline_key
|
||
AND td.prs_kostensoort_key = ks.prs_kostensoort_key(+)
|
||
AND ks.prs_kostensoortgrp_key = ksg.prs_kostensoortgrp_key(+)
|
||
AND bi.bes_bestelling_key = b.bes_bestelling_key
|
||
AND b.prs_kostenplaats_key = kp.prs_kostenplaats_key) x
|
||
WHERE f.fin_factuur_verwijder IS NULL AND f.fin_factuur_statuses_key = 6 -- Akkoord
|
||
AND fac.gettrackingdate ('FINFOK', f.fin_factuur_key) < TRUNC (SYSDATE)
|
||
AND f.bes_bestelopdr_key = bo.bes_bestelopdr_key
|
||
AND bo.bes_bestelopdr_key = x.bes_bestelopdr_key
|
||
GROUP BY bo.prs_bedrijf_key,
|
||
f.fin_factuur_key,
|
||
f.bes_bestelopdr_key,
|
||
NULL,
|
||
NULL,
|
||
x.prs_kostensoortgrp_altcode,
|
||
COALESCE (x.prs_kostensoort_doorbelasten, 0),
|
||
x.prs_kostenplaats_nr
|
||
UNION ALL -- Op basis van O-facturen!
|
||
SELECT b.prs_bedrijf_key bedrijf_key,
|
||
f.fin_factuur_key factuur_key,
|
||
NULL bes_opdr_key,
|
||
f.mld_opdr_key mld_opdr_key,
|
||
NULL cnt_key,
|
||
COALESCE (ksgm.prs_kostensoortgrp_altcode, ksgv.prs_kostensoortgrp_altcode, NULL)
|
||
kostensoort,
|
||
COALESCE (ksm.prs_kostensoort_doorbelasten, ksv.prs_kostensoort_doorbelasten, 0)
|
||
doorbelasten,
|
||
kp.prs_kostenplaats_nr,
|
||
SUM(DECODE (
|
||
ksm.prs_kostensoort_doorbelasten,
|
||
1,
|
||
DECODE (ksm.prs_kostensoort_btw,
|
||
1, f.fin_factuur_totaal + f.fin_factuur_totaal_btw,
|
||
f.fin_factuur_totaal),
|
||
DECODE (ksv.prs_kostensoort_btw,
|
||
1, f.fin_factuur_totaal + f.fin_factuur_totaal_btw,
|
||
f.fin_factuur_totaal)))
|
||
kosten
|
||
FROM fin_factuur f,
|
||
mld_opdr o,
|
||
mld_melding m,
|
||
mld_stdmelding sm,
|
||
ins_tab_discipline td,
|
||
prs_kostensoort ksm,
|
||
prs_kostensoortgrp ksgm,
|
||
prs_kostensoort ksv,
|
||
prs_kostensoortgrp ksgv,
|
||
prs_kostenplaats kp,
|
||
prs_bedrijf b
|
||
WHERE f.fin_factuur_verwijder IS NULL
|
||
AND f.fin_factuur_statuses_key = 6 -- Akkoord
|
||
AND fac.gettrackingdate ('FINFOK', f.fin_factuur_key) < TRUNC (SYSDATE)
|
||
AND f.mld_opdr_key = o.mld_opdr_key
|
||
AND o.mld_melding_key = m.mld_melding_key
|
||
AND m.mld_stdmelding_key = sm.mld_stdmelding_key
|
||
AND sm.prs_kostensoort_key = ksm.prs_kostensoort_key(+)
|
||
AND ksm.prs_kostensoortgrp_key = ksgm.prs_kostensoortgrp_key(+)
|
||
AND sm.mld_ins_discipline_key = td.ins_discipline_key
|
||
AND td.ins_srtdiscipline_key NOT IN (41, 42, 43, 44, 45) -- BE-vakgroeptypen
|
||
AND td.prs_kostensoort_key = ksv.prs_kostensoort_key(+)
|
||
AND ksv.prs_kostensoortgrp_key = ksgv.prs_kostensoortgrp_key(+)
|
||
AND o.prs_kostenplaats_key = kp.prs_kostenplaats_key
|
||
AND o.mld_uitvoerende_keys = b.prs_bedrijf_key
|
||
GROUP BY b.prs_bedrijf_key,
|
||
f.fin_factuur_key,
|
||
NULL,
|
||
f.mld_opdr_key,
|
||
NULL,
|
||
COALESCE (ksgm.prs_kostensoortgrp_altcode, ksgv.prs_kostensoortgrp_altcode, NULL),
|
||
COALESCE (ksm.prs_kostensoort_doorbelasten, ksv.prs_kostensoort_doorbelasten, 0),
|
||
kp.prs_kostenplaats_nr
|
||
UNION ALL -- Op basis van C-facturen op alle contracten (CV+CF)!
|
||
SELECT c.cnt_prs_bedrijf_key bedrijf_key,
|
||
f.fin_factuur_key factuur_key,
|
||
NULL bes_opdr_key,
|
||
NULL mld_opdr_key,
|
||
f.cnt_contract_key cnt_key,
|
||
COALESCE (ksgc.prs_kostensoortgrp_altcode, ksgd.prs_kostensoortgrp_altcode, NULL)
|
||
kostensoort,
|
||
COALESCE (ksc.prs_kostensoort_doorbelasten, ksd.prs_kostensoort_doorbelasten, 0)
|
||
doorbelasten,
|
||
kp.prs_kostenplaats_nr,
|
||
SUM(DECODE (
|
||
ksc.prs_kostensoort_doorbelasten,
|
||
1,
|
||
DECODE (ksc.prs_kostensoort_btw,
|
||
1, f.fin_factuur_totaal + f.fin_factuur_totaal_btw,
|
||
f.fin_factuur_totaal),
|
||
DECODE (ksd.prs_kostensoort_btw,
|
||
1, f.fin_factuur_totaal + f.fin_factuur_totaal_btw,
|
||
f.fin_factuur_totaal)))
|
||
kosten
|
||
FROM fin_factuur f,
|
||
cnt_v_aanwezigcontract c,
|
||
prs_kostensoort ksc,
|
||
prs_kostensoortgrp ksgc,
|
||
ins_tab_discipline td,
|
||
prs_kostensoort ksd,
|
||
prs_kostensoortgrp ksgd,
|
||
prs_kostenplaats kp
|
||
WHERE f.fin_factuur_verwijder IS NULL
|
||
AND f.fin_factuur_statuses_key = 6 -- Akkoord
|
||
AND fac.gettrackingdate ('FINFOK', f.fin_factuur_key) > TO_DATE ('01012018', 'ddmmyyyy')
|
||
AND f.cnt_contract_key = c.cnt_contract_key
|
||
AND c.prs_kostensoort_key = ksc.prs_kostensoort_key(+)
|
||
AND ksc.prs_kostensoortgrp_key = ksgc.prs_kostensoortgrp_key(+)
|
||
AND c.ins_discipline_key = td.ins_discipline_key
|
||
AND (td.ins_discipline_omschrijving LIKE 'CV%' OR td.ins_discipline_omschrijving LIKE 'CF%')
|
||
AND td.prs_kostensoort_key = ksd.prs_kostensoort_key(+)
|
||
AND ksd.prs_kostensoortgrp_key = ksgd.prs_kostensoortgrp_key(+)
|
||
AND c.prs_kostenplaats_key = kp.prs_kostenplaats_key
|
||
GROUP BY c.cnt_prs_bedrijf_key,
|
||
f.fin_factuur_key,
|
||
NULL,
|
||
NULL,
|
||
f.cnt_contract_key,
|
||
COALESCE (ksgc.prs_kostensoortgrp_altcode, ksgd.prs_kostensoortgrp_altcode, NULL),
|
||
COALESCE (ksc.prs_kostensoort_doorbelasten, ksd.prs_kostensoort_doorbelasten, 0),
|
||
kp.prs_kostenplaats_nr
|
||
UNION ALL -- Op basis van C-termijnen op vaste contracten (= CF)!
|
||
SELECT c.cnt_prs_bedrijf_key bedrijf_key,
|
||
NULL factuur_key,
|
||
NULL bes_opdr_key,
|
||
NULL mld_opdr_key,
|
||
c.cnt_contract_key cnt_key,
|
||
COALESCE (ksgc.prs_kostensoortgrp_altcode, ksgd.prs_kostensoortgrp_altcode, NULL)
|
||
kostensoort,
|
||
COALESCE (ksc.prs_kostensoort_doorbelasten, ksd.prs_kostensoort_doorbelasten, 0)
|
||
doorbelasten,
|
||
kp.prs_kostenplaats_nr,
|
||
c.cnt_contract_termijnkosten kosten
|
||
FROM cnt_v_aanwezigcontract c,
|
||
prs_kostensoort ksc,
|
||
prs_kostensoortgrp ksgc,
|
||
ins_tab_discipline td,
|
||
prs_kostensoort ksd,
|
||
prs_kostensoortgrp ksgd,
|
||
prs_kostenplaats kp
|
||
WHERE TRUNC (c.cnt_contract_looptijd_van) < TRUNC (SYSDATE, 'mm') - 1
|
||
AND c.cnt_contract_looptijd_tot >= TRUNC (SYSDATE, 'mm') - 1
|
||
--AND c.cnt_contract_status = 0 -- NIET Gesloten
|
||
--AND c.cnt_contract_kosten > 0
|
||
AND c.cnt_contract_termijnkosten > 0
|
||
AND c.prs_kostensoort_key = ksc.prs_kostensoort_key(+)
|
||
AND ksc.prs_kostensoortgrp_key = ksgc.prs_kostensoortgrp_key(+)
|
||
AND c.ins_discipline_key = td.ins_discipline_key
|
||
AND td.ins_discipline_omschrijving LIKE 'CF%'
|
||
AND td.prs_kostensoort_key = ksd.prs_kostensoort_key(+)
|
||
AND ksd.prs_kostensoortgrp_key = ksgd.prs_kostensoortgrp_key(+)
|
||
AND c.prs_kostenplaats_key = kp.prs_kostenplaats_key;
|
||
|
||
/* Formatted on 20-1-2017 12:42:24 (QP5 v5.136.908.31019) */
|
||
CREATE OR REPLACE PROCEDURE vlkc_select_coda (p_applname IN VARCHAR2,
|
||
p_applrun IN VARCHAR2)
|
||
AS
|
||
-- 1. Alle goedgekeurde facturen AV-en.
|
||
-- 2. Termijn/maandbedrag van lopende vaste contracten (= CF) bevriezen in
|
||
-- Eigen tabel met key=81.
|
||
--[3. Achterliggende opdrachten AV-en.]
|
||
-- Cursor loopt over een tijdelijke tabel met daarin opgebouwd alle regels
|
||
-- van de (te bevriezen) verantwoording van kosten gebaseerd op B-facturen,
|
||
-- O-facturen, C-facturen (CV+CF) en C-termijnen.
|
||
CURSOR c1
|
||
IS
|
||
SELECT '[' || TO_CHAR (v.bedrijf_key) || '|' || TO_CHAR (v.factuur_key) || '|' || TO_CHAR (COALESCE (v.bes_opdr_key, v.mld_opdr_key, v.cnt_key)) || '] '
|
||
aanduiding,
|
||
v.factuur_key,
|
||
v.bes_opdr_key,
|
||
v.mld_opdr_key,
|
||
v.cnt_key,
|
||
c.cnt_contract_nummer_intern || DECODE (c.cnt_contract_versie, NULL, '', '.' || TO_CHAR (c.cnt_contract_versie)) cnt_nr,
|
||
cp.plaats,
|
||
v.kosten
|
||
FROM vlkc_v_coda_actual v,
|
||
cnt_contract c,
|
||
( SELECT cnt_contract_key, COUNT ( * ) aant, MIN (pa.alg_plaatsaanduiding) plaats
|
||
FROM cnt_contract_plaats cp, alg_v_plaatsaanduiding_all pa
|
||
WHERE cp.cnt_alg_plaats_key = pa.alg_onroerendgoed_keys
|
||
AND cp.cnt_alg_plaats_code = pa.alg_onroerendgoed_type
|
||
GROUP BY cnt_contract_key) cp
|
||
WHERE v.cnt_key = c.cnt_contract_key(+)
|
||
AND c.cnt_contract_key = cp.cnt_contract_key(+)
|
||
ORDER BY 2, 4;
|
||
|
||
v_errormsg VARCHAR2 (1000);
|
||
oracle_err_num NUMBER;
|
||
oracle_err_mes VARCHAR2 (200);
|
||
v_aanduiding VARCHAR2 (200) := '';
|
||
v_holiday NUMBER;
|
||
v_line_count NUMBER;
|
||
v_amount_sum NUMBER (10, 2);
|
||
BEGIN
|
||
v_line_count := 0;
|
||
v_amount_sum := 0;
|
||
|
||
SELECT COUNT ( * )
|
||
INTO v_holiday
|
||
FROM mld_vrije_dagen
|
||
WHERE TRUNC (mld_vrije_dagen_datum) = TRUNC (SYSDATE - 1);
|
||
|
||
-- LET OP: CODA-export draait dagelijks na middernacht (begin van dag) en
|
||
-- de bedragen t/m *NU* worden maandelijks alleen in de nacht na 2e werkdag
|
||
-- van de maand doorgezet (= bevroren tbv. rapporten).
|
||
-- IF nacht na 2e werkdag van de maand (<28>n geen weekend <20>n geen vrije dag)!
|
||
-- count_work_days (d1,d2) bepaalt het #werkdagen van d1 tot d2 (als d1=d2,
|
||
-- dan return 0); daarom bepalen tov. laatste dag van vorige maand!
|
||
IF FAC.count_work_days (TRUNC (SYSDATE, 'mm') - 1, SYSDATE - 1) = 2
|
||
AND TO_CHAR (SYSDATE - 1, 'd') BETWEEN '2' AND '6'
|
||
AND v_holiday = 0
|
||
THEN
|
||
FOR rec IN c1
|
||
LOOP
|
||
BEGIN
|
||
v_aanduiding := rec.aanduiding;
|
||
|
||
IF rec.bes_opdr_key IS NOT NULL -- B-facturen
|
||
THEN
|
||
v_errormsg := 'Fout verwerken B-factuur';
|
||
|
||
UPDATE fin_factuur f
|
||
SET fin_factuur_statuses_key = 7 -- AV
|
||
WHERE f.fin_factuur_key = rec.factuur_key;
|
||
|
||
fac.trackaction ('FINVER',
|
||
rec.factuur_key,
|
||
NULL, -- Dus _FACILITOR!
|
||
NULL,
|
||
NULL);
|
||
ELSIF rec.mld_opdr_key IS NOT NULL -- O-facturen
|
||
THEN
|
||
v_errormsg := 'Fout verwerken O-factuur';
|
||
|
||
UPDATE fin_factuur f
|
||
SET fin_factuur_statuses_key = 7 -- AV
|
||
WHERE f.fin_factuur_key = rec.factuur_key;
|
||
|
||
fac.trackaction ('FINVER',
|
||
rec.factuur_key,
|
||
NULL, -- Dus _FACILITOR!
|
||
NULL,
|
||
NULL);
|
||
ELSE -- C-facturen (CV+CF) <20>f C-termijnen (CF)!
|
||
IF rec.factuur_key IS NOT NULL -- C-factuur
|
||
THEN
|
||
v_errormsg := 'Fout verwerken C-factuur';
|
||
|
||
UPDATE fin_factuur f
|
||
SET fin_factuur_statuses_key = 7 -- AV
|
||
WHERE f.fin_factuur_key = rec.factuur_key;
|
||
|
||
fac.trackaction ('FINVER',
|
||
rec.factuur_key,
|
||
NULL, -- Dus _FACILITOR!
|
||
NULL,
|
||
NULL);
|
||
ELSE -- C-termijn
|
||
v_errormsg := 'Fout verwerken C-termijn';
|
||
|
||
INSERT INTO fac_usrdata (fac_usrtab_key,
|
||
fac_usrdata_code,
|
||
fac_usrdata_omschr,
|
||
fac_usrdata_aanmaak,
|
||
fac_usrdata_vervaldatum,
|
||
fac_usrdata_prijs)
|
||
VALUES (81, -- VasteKostenMnd
|
||
TO_CHAR (ADD_MONTHS (SYSDATE, -1), 'yyyy-mm') || '/' || TO_CHAR (rec.cnt_key),
|
||
TO_CHAR (rec.cnt_nr) || '/' || TO_CHAR (rec.plaats),
|
||
SYSDATE,
|
||
NULL,
|
||
rec.kosten);
|
||
END IF;
|
||
END IF;
|
||
|
||
COMMIT;
|
||
|
||
v_line_count := v_line_count + 1;
|
||
v_amount_sum := v_amount_sum + rec.kosten;
|
||
END;
|
||
END LOOP;
|
||
|
||
fac.writelog (p_applname, 'S', 'CODA-export/#regels: ' || TO_CHAR (v_line_count), TO_CHAR (v_amount_sum));
|
||
END IF;
|
||
EXCEPTION
|
||
WHEN OTHERS
|
||
THEN
|
||
oracle_err_num := SQLCODE;
|
||
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
|
||
v_errormsg := v_errormsg || ' ORACLE (error ' || oracle_err_num || '/' || oracle_err_mes || ')';
|
||
fac.writelog (p_applname, 'E', v_aanduiding || v_errormsg, 'Proces CODA-export afgebroken!');
|
||
COMMIT;
|
||
END;
|
||
/
|
||
|
||
-- VLKC#89584: CODA NL-rapportages!
|
||
CREATE OR REPLACE VIEW vlkc_v_rap_coda_ordexp
|
||
(
|
||
fclt_f_periode,
|
||
kostensoort, -- 5 cijfers
|
||
kostenplaats, -- 4 cijfers
|
||
valuta, -- element3
|
||
bron, -- element4
|
||
bedrag_debet, -- incl. BTW en niet samen met bedrag_credit op <20><>n regel
|
||
bedrag_credit, -- incl. BTW en niet samen met bedrag_debet op <20><>n regel
|
||
omschrijving, -- max. 29 posities
|
||
verplichtingnummer,
|
||
leverancier,
|
||
leveranciersnummer,
|
||
factuurnummer,
|
||
fclt_f_vlkc,
|
||
fclt_f_opdrachttype,
|
||
fclt_f_investering,
|
||
melder, -- of besteller
|
||
melder_pnr, -- of besteller
|
||
melder_kpn, -- of besteller
|
||
locatie
|
||
)
|
||
AS
|
||
WITH lopendeperiode AS (SELECT COALESCE (MAX (TO_CHAR (ADD_MONTHS (fac.safe_to_date (SUBSTR (fac_usrdata_code, 1, 7), 'yyyy-mm'), 1), 'yyyy-mm')), '2017-01') maand
|
||
FROM fac_usrdata
|
||
WHERE fac_usrtab_key = 81)
|
||
SELECT DECODE (f.fin_factuur_statuses_key,
|
||
7, TO_CHAR (fac.gettrackingdate ('FINVER', f.fin_factuur_key) - 10, 'yyyy-mm'),
|
||
lp.maand || '*')
|
||
periode,
|
||
x.prs_kostensoortgrp_altcode kostensoort,
|
||
x.prs_kostenplaats_nr kostenplaats,
|
||
'EUR' element3,
|
||
DECODE (x.prs_kostenplaats_nr, '2216', 'Variabel', 'Eindgebruiker') element4,
|
||
DECODE (SIGN (f.fin_factuur_totaal + f.fin_factuur_totaal_btw),
|
||
-1, TO_NUMBER (NULL),
|
||
(f.fin_factuur_totaal + f.fin_factuur_totaal_btw))
|
||
bedrag_debet,
|
||
DECODE (SIGN (f.fin_factuur_totaal + f.fin_factuur_totaal_btw),
|
||
-1, -1 * (f.fin_factuur_totaal + f.fin_factuur_totaal_btw),
|
||
TO_NUMBER (NULL))
|
||
bedrag_credit,
|
||
'B-' || x.ins_discipline_omschrijving omschrijving,
|
||
'B' || x.bes_bestelopdr_id verplichtingnummer,
|
||
x.prs_bedrijf_naam leverancier,
|
||
x.prs_leverancier_nr leveranciersnummer,
|
||
f.fin_factuur_nr factuurnummer,
|
||
DECODE (SUBSTR (x.prs_kostenplaats_nr, 1, 1), '1', 'KC', 'VL') vlkc,
|
||
'Bestelopdracht' opdrachttype, -- Altijd 'Bestelopdracht'?
|
||
DECODE (x.bes_kenmerkbestell_waarde, '1', 'Ja', 'Nee') investering,
|
||
x.besteller,
|
||
x.besteller_pnr,
|
||
x.besteller_kpn,
|
||
x.alg_locatie_code locatie -- Soms dummy (bv. Fleurop)?
|
||
FROM lopendeperiode lp,
|
||
fin_factuur f,
|
||
(SELECT DISTINCT bo.bes_bestelopdr_key,
|
||
bo.bes_bestelopdr_id,
|
||
ksg.prs_kostensoortgrp_altcode,
|
||
kp.prs_kostenplaats_nr,
|
||
td.ins_discipline_omschrijving,
|
||
lev.prs_bedrijf_naam,
|
||
lev.prs_leverancier_nr,
|
||
bo.bes_bestelopdr_leverdatum,
|
||
inv.bes_kenmerkbestell_waarde,
|
||
bpf.prs_perslid_naam_full besteller,
|
||
bp.prs_perslid_nr besteller_pnr,
|
||
bkp.prs_kostenplaats_nr besteller_kpn,
|
||
l.alg_locatie_code
|
||
FROM bes_bestelopdr bo,
|
||
bes_bestelopdr_item boi,
|
||
bes_bestelling_item bi,
|
||
bes_srtdeel sd,
|
||
bes_srtgroep sg,
|
||
ins_tab_discipline td,
|
||
prs_kostensoort ks,
|
||
prs_kostensoortgrp ksg,
|
||
bes_bestelling b,
|
||
prs_kostenplaats kp,
|
||
prs_bedrijf lev,
|
||
(SELECT *
|
||
FROM bes_kenmerkbestell kb
|
||
WHERE EXISTS
|
||
(SELECT 1
|
||
FROM bes_kenmerk
|
||
WHERE bes_kenmerk_key = kb.bes_kenmerk_key
|
||
AND bes_srtkenmerk_key = 21)) inv, -- Investeringsopdracht
|
||
prs_perslid bp,
|
||
prs_v_perslid_fullnames_all bpf,
|
||
prs_afdeling ba,
|
||
prs_kostenplaats bkp,
|
||
mld_adres a,
|
||
alg_locatie l
|
||
WHERE bo.bes_bestelopdr_key = boi.bes_bestelopdr_key
|
||
AND boi.bes_bestelopdr_item_key = bi.bes_bestelopdr_item_key
|
||
AND bi.bes_srtdeel_key = sd.bes_srtdeel_key
|
||
AND sd.bes_srtgroep_key = sg.bes_srtgroep_key
|
||
AND sg.ins_discipline_key = td.ins_discipline_key
|
||
AND td.prs_kostensoort_key = ks.prs_kostensoort_key(+)
|
||
AND ks.prs_kostensoortgrp_key = ksg.prs_kostensoortgrp_key(+)
|
||
AND bi.bes_bestelling_key = b.bes_bestelling_key
|
||
AND b.prs_kostenplaats_key = kp.prs_kostenplaats_key
|
||
AND bo.prs_bedrijf_key = lev.prs_bedrijf_key
|
||
AND b.bes_bestelling_key = inv.bes_bestelling_key(+)
|
||
AND b.prs_perslid_key = bp.prs_perslid_key
|
||
AND bp.prs_perslid_key = bpf.prs_perslid_key
|
||
AND bp.prs_afdeling_key = ba.prs_afdeling_key
|
||
AND ba.prs_kostenplaats_key = bkp.prs_kostenplaats_key(+)
|
||
AND bo.mld_adres_key_lev = a.mld_adres_key
|
||
AND a.alg_locatie_key = l.alg_locatie_key(+)) x
|
||
WHERE f.fin_factuur_statuses_key IN (6, 7) -- Akkoord/Verwerkt
|
||
AND f.bes_bestelopdr_key = x.bes_bestelopdr_key
|
||
UNION ALL -- Werk/Offerteopdrachten
|
||
SELECT DECODE (f.fin_factuur_statuses_key,
|
||
7, TO_CHAR (fac.gettrackingdate ('FINVER', f.fin_factuur_key) - 10, 'yyyy-mm'),
|
||
lp.maand || '*')
|
||
periode,
|
||
COALESCE (ksgo.prs_kostensoortgrp_altcode, ksgm.prs_kostensoortgrp_altcode, ksgv.prs_kostensoortgrp_altcode, NULL) kostensoort,
|
||
kp.prs_kostenplaats_nr kostenplaats,
|
||
'EUR' element3,
|
||
DECODE (kp.prs_kostenplaats_nr, '2216', 'Variabel', 'Eindgebruiker') element4,
|
||
DECODE (SIGN (f.fin_factuur_totaal + f.fin_factuur_totaal_btw),
|
||
-1, TO_NUMBER (NULL),
|
||
(f.fin_factuur_totaal + f.fin_factuur_totaal_btw))
|
||
bedrag_debet,
|
||
DECODE (SIGN (f.fin_factuur_totaal + f.fin_factuur_totaal_btw),
|
||
-1, -1 * (f.fin_factuur_totaal + f.fin_factuur_totaal_btw),
|
||
TO_NUMBER (NULL))
|
||
bedrag_credit,
|
||
--COALESCE (ksgm.prs_kostensoortgrp_oms, ksgv.prs_kostensoortgrp_oms, 'ONGEDEFINEERD')
|
||
sd.ins_srtdiscipline_prefix || '-' || sm.mld_stdmelding_omschrijving omschrijving,
|
||
sd.ins_srtdiscipline_prefix || TO_CHAR (o.mld_melding_key) || '/' || TO_CHAR (o.mld_opdr_bedrijfopdr_volgnr) verplichtingnummer,
|
||
lev.prs_bedrijf_naam leverancier,
|
||
lev.prs_leverancier_nr leveranciersnummer,
|
||
f.fin_factuur_nr factuurnummer,
|
||
DECODE (vlkc.mld_kenmerkopdr_waarde, '41', 'VL', '42', 'KC', NULL) vlkc,
|
||
DECODE (o.mld_typeopdr_key, 5, 'Werkopdracht', 283, 'Offerteopdracht', 'Jaaropdracht') opdrachttype,
|
||
DECODE (inv.mld_kenmerkopdr_waarde, '1', 'Ja', 'Nee') investering,
|
||
mpf.prs_perslid_naam_full melder,
|
||
mp.prs_perslid_nr melder_pnr,
|
||
mkp.prs_kostenplaats_nr melder_kpn,
|
||
l.alg_locatie_code locatie
|
||
FROM lopendeperiode lp,
|
||
fin_factuur f,
|
||
mld_opdr o,
|
||
mld_melding m,
|
||
mld_stdmelding sm,
|
||
prs_kostensoort ksm,
|
||
prs_kostensoortgrp ksgm,
|
||
prs_kostensoort kso,
|
||
prs_kostensoortgrp ksgo,
|
||
ins_tab_discipline td,
|
||
prs_kostensoort ksv,
|
||
prs_kostensoortgrp ksgv,
|
||
ins_srtdiscipline sd,
|
||
prs_kostenplaats kp,
|
||
prs_bedrijf lev,
|
||
(SELECT *
|
||
FROM mld_v_aanwezigkenmerkopdr ko
|
||
WHERE EXISTS
|
||
(SELECT 1
|
||
FROM mld_kenmerk
|
||
WHERE mld_kenmerk_key = ko.mld_kenmerk_key
|
||
AND mld_srtkenmerk_key = 81)) vlkc, -- Factuur/offerte naar
|
||
(SELECT *
|
||
FROM mld_v_aanwezigkenmerkopdr ko
|
||
WHERE EXISTS
|
||
(SELECT 1
|
||
FROM mld_kenmerk
|
||
WHERE mld_kenmerk_key = ko.mld_kenmerk_key
|
||
AND mld_srtkenmerk_key = 181)) inv, -- Investeringsopdracht
|
||
prs_perslid mp,
|
||
prs_v_perslid_fullnames_all mpf,
|
||
prs_afdeling ma,
|
||
prs_kostenplaats mkp,
|
||
alg_locatie l
|
||
WHERE f.fin_factuur_statuses_key IN (6, 7) -- Akkoord/Verwerkt
|
||
AND f.mld_opdr_key = o.mld_opdr_key
|
||
AND o.mld_typeopdr_key IN (5, 283, 2781) -- Werkopdracht/Offerteopdracht/Jaaropdracht
|
||
AND o.mld_melding_key = m.mld_melding_key
|
||
AND m.mld_stdmelding_key = sm.mld_stdmelding_key
|
||
AND sm.prs_kostensoort_key = ksm.prs_kostensoort_key(+)
|
||
AND ksm.prs_kostensoortgrp_key = ksgm.prs_kostensoortgrp_key(+)
|
||
AND o.prs_kostensoort_key = kso.prs_kostensoort_key(+)
|
||
AND kso.prs_kostensoortgrp_key = ksgo.prs_kostensoortgrp_key(+)
|
||
AND sm.mld_ins_discipline_key = td.ins_discipline_key
|
||
AND td.prs_kostensoort_key = ksv.prs_kostensoort_key(+)
|
||
AND ksv.prs_kostensoortgrp_key = ksgv.prs_kostensoortgrp_key(+)
|
||
AND td.ins_srtdiscipline_key = sd.ins_srtdiscipline_key
|
||
AND sd.ins_srtdiscipline_key NOT IN (41, 42, 43, 44, 45) -- BE-vakgroeptypen
|
||
AND o.prs_kostenplaats_key = kp.prs_kostenplaats_key(+)
|
||
AND o.mld_uitvoerende_keys = lev.prs_bedrijf_key
|
||
AND o.mld_opdr_key = vlkc.mld_opdr_key(+)
|
||
AND o.mld_opdr_key = inv.mld_opdr_key(+)
|
||
AND m.prs_perslid_key = mp.prs_perslid_key
|
||
AND mp.prs_perslid_key = mpf.prs_perslid_key
|
||
AND mp.prs_afdeling_key = ma.prs_afdeling_key
|
||
AND ma.prs_kostenplaats_key = mkp.prs_kostenplaats_key(+)
|
||
AND m.mld_alg_locatie_key = l.alg_locatie_key(+);
|
||
|
||
CREATE OR REPLACE VIEW vlkc_v_rap_coda_cntexp
|
||
(
|
||
fclt_f_periode,
|
||
kostensoort, -- 5 cijfers
|
||
kostenplaats, -- 4 cijfers
|
||
valuta, -- element3
|
||
bron, -- element4
|
||
bedrag_debet, -- incl. BTW en niet samen met bedrag_credit op <20><>n regel
|
||
bedrag_credit, -- incl. BTW en niet samen met bedrag_debet op <20><>n regel
|
||
omschrijving, -- max. 29 posities
|
||
--verplichtingnummer,
|
||
contractnummer,
|
||
leverancier,
|
||
leveranciersnummer,
|
||
factuurnummer,
|
||
fclt_f_vlkc,
|
||
locatie
|
||
)
|
||
AS
|
||
WITH lopendeperiode AS (SELECT COALESCE (MAX (TO_CHAR (ADD_MONTHS (fac.safe_to_date (SUBSTR (fac_usrdata_code, 1, 7), 'yyyy-mm'), 1), 'yyyy-mm')), '2017-01') maand
|
||
FROM fac_usrdata
|
||
WHERE fac_usrtab_key = 81)
|
||
SELECT SUBSTR (ud.fac_usrdata_code, 1, 7) periode, -- yyyy-mm
|
||
COALESCE (ksgc.prs_kostensoortgrp_altcode, ksgd.prs_kostensoortgrp_altcode, NULL) kostensoort,
|
||
kp.prs_kostenplaats_nr kostenplaats,
|
||
'EUR' valuta,
|
||
'Vast' element4,
|
||
ud.fac_usrdata_prijs bedrag_debet,
|
||
TO_NUMBER (NULL) bedrag_credit,
|
||
td.ins_discipline_omschrijving omschrijving,
|
||
--'C' || SUBSTR (ud.fac_usrdata_omschr, 1, INSTR (ud.fac_usrdata_omschr, '/') - 1) verplichtingnummer,
|
||
--DECODE (SUBSTR (td.ins_discipline_omschrijving, 1, 2), 'CV', 'CV', 'C') || c.cnt_contract_nummer_intern || DECODE (c.cnt_contract_versie, NULL, '', '.' || TO_CHAR (c.cnt_contract_versie)) contractnummer,
|
||
DECODE (SUBSTR (td.ins_discipline_omschrijving, 1, 2), 'CV', 'CV', 'C') || SUBSTR (ud.fac_usrdata_omschr, 1, INSTR (ud.fac_usrdata_omschr, '/') - 1) contractnummer,
|
||
lev.prs_bedrijf_naam leverancier,
|
||
lev.prs_leverancier_nr leveranciersnummer,
|
||
'N.v.t.' factuurnummer,
|
||
DECODE (ab.prs_afdeling_key1, 82, 'VL', 81, 'KC', NULL) vlkc,
|
||
LISTAGG (cp.alg_locatie_code, ',') WITHIN GROUP (ORDER BY cp.alg_locatie_code) locatie
|
||
FROM fac_v_aanwezigusrdata ud, -- VLKC#65233: Geen verwijderde entries!
|
||
cnt_contract c, -- Alles, want fac_usrdata "rules"!
|
||
prs_kostensoort ksc,
|
||
prs_kostensoortgrp ksgc,
|
||
ins_tab_discipline td,
|
||
prs_kostensoort ksd,
|
||
prs_kostensoortgrp ksgd,
|
||
prs_kostenplaats kp,
|
||
prs_bedrijf lev,
|
||
prs_v_afdeling_boom ab,
|
||
(SELECT cp.cnt_contract_key, l.alg_locatie_code
|
||
FROM cnt_v_aanwezigcontract_plaats cp, alg_gebouw g, alg_locatie l
|
||
WHERE cp.cnt_alg_plaats_code = 'G'
|
||
AND cp.cnt_alg_plaats_key = g.alg_gebouw_key
|
||
AND g.alg_locatie_key = l.alg_locatie_key
|
||
UNION
|
||
SELECT cp.cnt_contract_key, l.alg_locatie_code
|
||
FROM cnt_v_aanwezigcontract_plaats cp, alg_locatie l
|
||
WHERE cp.cnt_alg_plaats_code = 'L'
|
||
AND cp.cnt_alg_plaats_key = l.alg_locatie_key) cp
|
||
WHERE ud.fac_usrtab_key = 81 -- VasteKostenMnd
|
||
AND SUBSTR (ud.fac_usrdata_code, INSTR (ud.fac_usrdata_code, '/') + 1) = TO_CHAR (c.cnt_contract_key)
|
||
AND c.prs_kostensoort_key = ksc.prs_kostensoort_key(+)
|
||
AND ksc.prs_kostensoortgrp_key = ksgc.prs_kostensoortgrp_key(+)
|
||
AND c.ins_discipline_key = td.ins_discipline_key
|
||
AND td.prs_kostensoort_key = ksd.prs_kostensoort_key(+)
|
||
AND ksd.prs_kostensoortgrp_key = ksgd.prs_kostensoortgrp_key(+)
|
||
AND c.prs_kostenplaats_key = kp.prs_kostenplaats_key(+)
|
||
AND c.cnt_prs_bedrijf_key = lev.prs_bedrijf_key
|
||
AND c.prs_afdeling_key_eig = ab.prs_afdeling_key(+)
|
||
AND c.cnt_contract_key = cp.cnt_contract_key(+)
|
||
GROUP BY SUBSTR (ud.fac_usrdata_code, 1, 7), -- yyyy-mm
|
||
COALESCE (ksgc.prs_kostensoortgrp_altcode, ksgd.prs_kostensoortgrp_altcode, NULL),
|
||
kp.prs_kostenplaats_nr,
|
||
'EUR',
|
||
'Vast',
|
||
ud.fac_usrdata_prijs,
|
||
TO_NUMBER (NULL),
|
||
td.ins_discipline_omschrijving,
|
||
--'C' || SUBSTR (ud.fac_usrdata_omschr, 1, INSTR (ud.fac_usrdata_omschr, '/') - 1),
|
||
--DECODE (SUBSTR (td.ins_discipline_omschrijving, 1, 2), 'CV', 'CV', 'C') || c.cnt_contract_nummer_intern || DECODE (c.cnt_contract_versie, NULL, '', '.' || TO_CHAR (c.cnt_contract_versie)),
|
||
DECODE (SUBSTR (td.ins_discipline_omschrijving, 1, 2), 'CV', 'CV', 'C') || SUBSTR (ud.fac_usrdata_omschr, 1, INSTR (ud.fac_usrdata_omschr, '/') - 1),
|
||
lev.prs_bedrijf_naam,
|
||
lev.prs_leverancier_nr,
|
||
'N.v.t.',
|
||
DECODE (ab.prs_afdeling_key1, 82, 'VL', 81, 'KC', NULL)
|
||
UNION ALL
|
||
SELECT lp.maand || '*' periode,
|
||
COALESCE (ksgc.prs_kostensoortgrp_altcode, ksgd.prs_kostensoortgrp_altcode, NULL) kostensoort,
|
||
kp.prs_kostenplaats_nr kostenplaats,
|
||
'EUR' valuta,
|
||
'Vast' element4,
|
||
c.cnt_contract_termijnkosten bedrag_debet,
|
||
TO_NUMBER (NULL) bedrag_credit,
|
||
td.ins_discipline_omschrijving omschrijving,
|
||
'C' || c.cnt_contract_nummer_intern || DECODE (c.cnt_contract_versie, NULL, '', '.' || TO_CHAR (c.cnt_contract_versie)) verplichtingnummer,
|
||
lev.prs_bedrijf_naam leverancier,
|
||
lev.prs_leverancier_nr leveranciersnummer,
|
||
'N.v.t.' factuurnummer,
|
||
DECODE (ab.prs_afdeling_key1, 82, 'VL', 81, 'KC', NULL) vlkc,
|
||
LISTAGG (cp.alg_locatie_code, ',') WITHIN GROUP (ORDER BY cp.alg_locatie_code) locatie
|
||
FROM lopendeperiode lp,
|
||
cnt_v_aanwezigcontract c, -- Alleen aanwezige vaste contracten (= CF)!
|
||
prs_kostensoort ksc,
|
||
prs_kostensoortgrp ksgc,
|
||
ins_tab_discipline td,
|
||
prs_kostensoort ksd,
|
||
prs_kostensoortgrp ksgd,
|
||
prs_kostenplaats kp,
|
||
prs_bedrijf lev,
|
||
prs_v_afdeling_boom ab,
|
||
(SELECT cp.cnt_contract_key, l.alg_locatie_code
|
||
FROM cnt_v_aanwezigcontract_plaats cp, alg_gebouw g, alg_locatie l
|
||
WHERE cp.cnt_alg_plaats_code = 'G'
|
||
AND cp.cnt_alg_plaats_key = g.alg_gebouw_key
|
||
AND g.alg_locatie_key = l.alg_locatie_key
|
||
UNION
|
||
SELECT cp.cnt_contract_key, l.alg_locatie_code
|
||
FROM cnt_v_aanwezigcontract_plaats cp, alg_locatie l
|
||
WHERE cp.cnt_alg_plaats_code = 'L'
|
||
AND cp.cnt_alg_plaats_key = l.alg_locatie_key) cp
|
||
WHERE TRUNC (c.cnt_contract_looptijd_van) < LAST_DAY (TO_DATE (lp.maand || '-01', 'yyyy-mm-dd'))
|
||
AND c.cnt_contract_looptijd_tot >= LAST_DAY (TO_DATE (lp.maand || '-01', 'yyyy-mm-dd'))
|
||
AND c.prs_kostensoort_key = ksc.prs_kostensoort_key(+)
|
||
AND ksc.prs_kostensoortgrp_key = ksgc.prs_kostensoortgrp_key(+)
|
||
AND c.ins_discipline_key = td.ins_discipline_key
|
||
AND td.ins_discipline_omschrijving LIKE 'CF%' -- TODO: Of ook CV?
|
||
AND td.prs_kostensoort_key = ksd.prs_kostensoort_key(+)
|
||
AND ksd.prs_kostensoortgrp_key = ksgd.prs_kostensoortgrp_key(+)
|
||
AND c.prs_kostenplaats_key = kp.prs_kostenplaats_key(+)
|
||
AND c.cnt_prs_bedrijf_key = lev.prs_bedrijf_key
|
||
AND c.prs_afdeling_key_eig = ab.prs_afdeling_key(+)
|
||
AND c.cnt_contract_key = cp.cnt_contract_key(+)
|
||
GROUP BY lp.maand || '*',
|
||
COALESCE (ksgc.prs_kostensoortgrp_altcode, ksgd.prs_kostensoortgrp_altcode, NULL),
|
||
kp.prs_kostenplaats_nr,
|
||
'EUR',
|
||
'Vast',
|
||
c.cnt_contract_termijnkosten,
|
||
TO_NUMBER (NULL),
|
||
td.ins_discipline_omschrijving,
|
||
'C' || c.cnt_contract_nummer_intern || DECODE (c.cnt_contract_versie, NULL, '', '.' || TO_CHAR (c.cnt_contract_versie)),
|
||
lev.prs_leverancier_nr,
|
||
lev.prs_bedrijf_naam,
|
||
'N.v.t.',
|
||
DECODE (ab.prs_afdeling_key1, 82, 'VL', 81, 'KC', NULL)
|
||
UNION ALL
|
||
SELECT DECODE (f.fin_factuur_statuses_key,
|
||
7, TO_CHAR (fac.gettrackingdate ('FINVER', f.fin_factuur_key) - 10, 'yyyy-mm'),
|
||
lp.maand || '*')
|
||
periode,
|
||
COALESCE (ksgc.prs_kostensoortgrp_altcode, ksgd.prs_kostensoortgrp_altcode, NULL) kostensoort,
|
||
kp.prs_kostenplaats_nr kostenplaats,
|
||
'EUR' valuta,
|
||
'Vast' element4,
|
||
DECODE (SIGN (f.fin_factuur_totaal + f.fin_factuur_totaal_btw),
|
||
-1, TO_NUMBER (NULL),
|
||
(f.fin_factuur_totaal + f.fin_factuur_totaal_btw))
|
||
bedrag_debet,
|
||
DECODE (SIGN (f.fin_factuur_totaal + f.fin_factuur_totaal_btw),
|
||
-1, -1 * (f.fin_factuur_totaal + f.fin_factuur_totaal_btw),
|
||
TO_NUMBER (NULL))
|
||
bedrag_credit,
|
||
td.ins_discipline_omschrijving omschrijving,
|
||
'CV' || c.cnt_contract_nummer_intern || DECODE (c.cnt_contract_versie, NULL, '', '.' || TO_CHAR (c.cnt_contract_versie)) verplichtingnummer,
|
||
lev.prs_bedrijf_naam leverancier,
|
||
lev.prs_leverancier_nr leveranciersnummer,
|
||
f.fin_factuur_nr factuurnummer,
|
||
DECODE (ab.prs_afdeling_key1, 82, 'VL', 81, 'KC', NULL) vlkc,
|
||
LISTAGG (cp.alg_locatie_code, ',') WITHIN GROUP (ORDER BY cp.alg_locatie_code) locatie
|
||
FROM lopendeperiode lp,
|
||
fin_factuur f,
|
||
cnt_v_aanwezigcontract c, -- Alleen aanwezige (CV-)contracten!
|
||
prs_kostensoort ksc,
|
||
prs_kostensoortgrp ksgc,
|
||
ins_tab_discipline td,
|
||
prs_kostensoort ksd,
|
||
prs_kostensoortgrp ksgd,
|
||
prs_kostenplaats kp,
|
||
prs_bedrijf lev,
|
||
prs_v_afdeling_boom ab,
|
||
(SELECT cp.cnt_contract_key, l.alg_locatie_code
|
||
FROM cnt_v_aanwezigcontract_plaats cp, alg_gebouw g, alg_locatie l
|
||
WHERE cp.cnt_alg_plaats_code = 'G'
|
||
AND cp.cnt_alg_plaats_key = g.alg_gebouw_key
|
||
AND g.alg_locatie_key = l.alg_locatie_key
|
||
UNION
|
||
SELECT cp.cnt_contract_key, l.alg_locatie_code
|
||
FROM cnt_v_aanwezigcontract_plaats cp, alg_locatie l
|
||
WHERE cp.cnt_alg_plaats_code = 'L'
|
||
AND cp.cnt_alg_plaats_key = l.alg_locatie_key) cp
|
||
WHERE f.fin_factuur_statuses_key IN (6, 7) -- Akkoord/Verwerkt
|
||
AND fac.gettrackingdate ('FINFOK', f.fin_factuur_key) > TO_DATE ('01012018', 'ddmmyyyy')
|
||
AND f.cnt_contract_key = c.cnt_contract_key
|
||
AND c.prs_kostensoort_key = ksc.prs_kostensoort_key(+)
|
||
AND ksc.prs_kostensoortgrp_key = ksgc.prs_kostensoortgrp_key(+)
|
||
AND c.ins_discipline_key = td.ins_discipline_key
|
||
AND td.ins_discipline_omschrijving LIKE 'CV%' -- Zou zo moeten zijn (nu nog tenminste)!
|
||
AND td.prs_kostensoort_key = ksd.prs_kostensoort_key(+)
|
||
AND ksd.prs_kostensoortgrp_key = ksgd.prs_kostensoortgrp_key(+)
|
||
AND c.prs_kostenplaats_key = kp.prs_kostenplaats_key(+)
|
||
AND c.cnt_prs_bedrijf_key = lev.prs_bedrijf_key
|
||
AND c.prs_afdeling_key_eig = ab.prs_afdeling_key(+)
|
||
AND c.cnt_contract_key = cp.cnt_contract_key(+)
|
||
GROUP BY DECODE (f.fin_factuur_statuses_key,
|
||
7, TO_CHAR (fac.gettrackingdate ('FINVER', f.fin_factuur_key) - 10, 'yyyy-mm'),
|
||
lp.maand || '*'),
|
||
COALESCE (ksgc.prs_kostensoortgrp_altcode, ksgd.prs_kostensoortgrp_altcode, NULL),
|
||
kp.prs_kostenplaats_nr,
|
||
'EUR',
|
||
'Vast',
|
||
DECODE (SIGN (f.fin_factuur_totaal + f.fin_factuur_totaal_btw),
|
||
-1, TO_NUMBER (NULL),
|
||
(f.fin_factuur_totaal + f.fin_factuur_totaal_btw)),
|
||
DECODE (SIGN (f.fin_factuur_totaal + f.fin_factuur_totaal_btw),
|
||
-1, -1 * (f.fin_factuur_totaal + f.fin_factuur_totaal_btw),
|
||
TO_NUMBER (NULL)),
|
||
td.ins_discipline_omschrijving,
|
||
'CV' || c.cnt_contract_nummer_intern || DECODE (c.cnt_contract_versie, NULL, '', '.' || TO_CHAR (c.cnt_contract_versie)),
|
||
lev.prs_leverancier_nr,
|
||
lev.prs_bedrijf_naam,
|
||
f.fin_factuur_nr,
|
||
DECODE (ab.prs_afdeling_key1, 82, 'VL', 81, 'KC', NULL);
|
||
|
||
CREATE OR REPLACE VIEW vlkc_v_rap_coda_ordrun
|
||
(
|
||
fclt_f_periode,
|
||
kostensoort, -- 5 cijfers
|
||
kostenplaats, -- 4 cijfers
|
||
valuta, -- element3
|
||
bron, -- element4
|
||
bedrag_debet, -- incl. BTW en niet samen met bedrag_credit op <20><>n regel
|
||
bedrag_credit, -- incl. BTW en niet samen met bedrag_debet op <20><>n regel
|
||
omschrijving, -- max. 29 posities
|
||
verplichtingnummer,
|
||
leverancier,
|
||
leveranciersnummer,
|
||
factuurnummer,
|
||
fclt_f_vlkc,
|
||
fclt_f_opdrachttype,
|
||
fclt_f_investering,
|
||
einddatum,
|
||
locatie
|
||
)
|
||
AS -- Bestelopdrachten
|
||
SELECT NULL periode,
|
||
x.prs_kostensoortgrp_altcode kostensoort,
|
||
x.prs_kostenplaats_nr kostenplaats,
|
||
'EUR' element3,
|
||
DECODE (x.prs_kostenplaats_nr, '2216', 'Variabel', 'Eindgebruiker') element4,
|
||
DECODE (
|
||
f_run.fin_factuur_key,
|
||
NULL, -- Geen ingevoerde facturen
|
||
DECODE (SIGN (COALESCE (x.kosten, 0)),
|
||
-1, TO_NUMBER (NULL),
|
||
COALESCE (x.kosten, 0)),
|
||
DECODE (
|
||
SIGN (f_run.fin_factuur_totaal + f_run.fin_factuur_totaal_btw),
|
||
-1, TO_NUMBER (NULL),
|
||
(f_run.fin_factuur_totaal + f_run.fin_factuur_totaal_btw)))
|
||
bedrag_debet,
|
||
DECODE (
|
||
f_run.fin_factuur_key,
|
||
NULL, -- Geen ingevoerde facturen
|
||
DECODE (SIGN (COALESCE (x.kosten, 0)),
|
||
-1, -1 * COALESCE (x.kosten, 0),
|
||
TO_NUMBER (NULL)),
|
||
DECODE (
|
||
SIGN (f_run.fin_factuur_totaal + f_run.fin_factuur_totaal_btw),
|
||
-1, -1 * (f_run.fin_factuur_totaal + f_run.fin_factuur_totaal_btw),
|
||
TO_NUMBER (NULL)))
|
||
bedrag_credit,
|
||
'B-' || x.ins_discipline_omschrijving omschrijving,
|
||
'B' || x.bes_bestelopdr_id verplichtingnummer,
|
||
x.prs_bedrijf_naam leverancier,
|
||
x.prs_leverancier_nr leveranciersnummer,
|
||
f_run.fin_factuur_nr factuurnummer,
|
||
DECODE (SUBSTR (x.prs_kostenplaats_nr, 1, 1), '1', 'KC', 'VL') vlkc,
|
||
'Bestelopdracht' opdrachttype, -- Altijd 'Bestelopdracht'?
|
||
DECODE (x.bes_kenmerkbestell_waarde, '1', 'Ja', 'Nee') investering,
|
||
x.bes_bestelopdr_datum einddatum, -- VLKC#57171: Opdrachtdatum!
|
||
x.alg_locatie_code locatie -- Soms dummy (bv. Fleurop)?
|
||
FROM ( SELECT bo.bes_bestelopdr_key,
|
||
bo.bes_bestelopdr_id,
|
||
ksg.prs_kostensoortgrp_altcode,
|
||
kp.prs_kostenplaats_nr,
|
||
td.ins_discipline_omschrijving,
|
||
lev.prs_bedrijf_naam,
|
||
lev.prs_leverancier_nr,
|
||
inv.bes_kenmerkbestell_waarde,
|
||
bo.bes_bestelopdr_datum,
|
||
l.alg_locatie_code,
|
||
SUM ((boi.bes_bestelopdr_item_aantal * boi.bes_bestelopdr_item_brutoprijs))
|
||
kosten
|
||
FROM bes_bestelopdr bo,
|
||
bes_bestelopdr_item boi,
|
||
bes_bestelling_item bi,
|
||
bes_srtdeel sd,
|
||
bes_srtgroep sg,
|
||
ins_tab_discipline td,
|
||
prs_kostensoort ks,
|
||
prs_kostensoortgrp ksg,
|
||
bes_bestelling b,
|
||
prs_kostenplaats kp,
|
||
prs_bedrijf lev,
|
||
(SELECT *
|
||
FROM bes_kenmerkbestell kb
|
||
WHERE EXISTS
|
||
(SELECT 1
|
||
FROM bes_kenmerk
|
||
WHERE bes_kenmerk_key = kb.bes_kenmerk_key
|
||
AND bes_srtkenmerk_key = 21)) inv, -- Investeringsopdracht
|
||
mld_adres a,
|
||
alg_locatie l
|
||
WHERE bo.bes_bestelopdr_key = boi.bes_bestelopdr_key
|
||
AND boi.bes_bestelopdr_item_key = bi.bes_bestelopdr_item_key
|
||
AND bi.bes_srtdeel_key = sd.bes_srtdeel_key
|
||
AND sd.bes_srtgroep_key = sg.bes_srtgroep_key
|
||
AND sg.ins_discipline_key = td.ins_discipline_key
|
||
AND td.ins_discipline_key != 721 -- VLKC#53739: Anders dan Relatiegeschenken!
|
||
AND td.prs_kostensoort_key = ks.prs_kostensoort_key(+)
|
||
AND ks.prs_kostensoortgrp_key = ksg.prs_kostensoortgrp_key(+)
|
||
AND bi.bes_bestelling_key = b.bes_bestelling_key
|
||
AND b.prs_kostenplaats_key = kp.prs_kostenplaats_key
|
||
AND bo.prs_bedrijf_key = lev.prs_bedrijf_key
|
||
AND b.bes_bestelling_key = inv.bes_bestelling_key(+)
|
||
AND bo.mld_adres_key_lev = a.mld_adres_key
|
||
AND a.alg_locatie_key = l.alg_locatie_key(+)
|
||
AND NOT EXISTS -- Geen Bestelopdrachten met een Reden "0-order" (bij de Bestelling)!
|
||
(SELECT 1
|
||
FROM bes_kenmerkbestell kb, bes_kenmerk k
|
||
WHERE kb.bes_kenmerkbestell_verwijder IS NULL
|
||
AND kb.bes_kenmerk_key = k.bes_kenmerk_key
|
||
AND k.bes_srtkenmerk_key = 141 -- Reden "0-order"
|
||
AND kb.bes_bestelling_key = b.bes_bestelling_key)
|
||
GROUP BY bo.bes_bestelopdr_key,
|
||
bo.bes_bestelopdr_id,
|
||
ksg.prs_kostensoortgrp_altcode,
|
||
kp.prs_kostenplaats_nr,
|
||
td.ins_discipline_omschrijving,
|
||
lev.prs_bedrijf_naam,
|
||
lev.prs_leverancier_nr,
|
||
inv.bes_kenmerkbestell_waarde,
|
||
bo.bes_bestelopdr_datum,
|
||
l.alg_locatie_code) x
|
||
LEFT JOIN ( SELECT bes_bestelopdr_key, COUNT ( * ) aantal
|
||
FROM fin_factuur
|
||
WHERE bes_bestelopdr_key IS NOT NULL AND fin_factuur_verwijder IS NULL
|
||
GROUP BY bes_bestelopdr_key) f_cnt
|
||
ON x.bes_bestelopdr_key = f_cnt.bes_bestelopdr_key
|
||
LEFT JOIN fin_factuur f_run
|
||
ON x.bes_bestelopdr_key = f_run.bes_bestelopdr_key AND f_run.fin_factuur_verwijder IS NULL
|
||
WHERE f_cnt.bes_bestelopdr_key IS NULL
|
||
OR COALESCE (f_run.fin_factuur_statuses_key, 2) = 2 -- Ingevoerd
|
||
UNION ALL -- Werkopdrachten
|
||
SELECT NULL periode,
|
||
x.kostensoort,
|
||
x.kostenplaats,
|
||
'EUR' element3,
|
||
DECODE (x.kostenplaats, '2216', 'Variabel', 'Eindgebruiker') element4,
|
||
DECODE (
|
||
f_run.fin_factuur_key,
|
||
NULL, -- Geen ingevoerde facturen
|
||
DECODE (SIGN (COALESCE (x.mld_opdr_kosten, 0)),
|
||
-1, TO_NUMBER (NULL),
|
||
COALESCE (x.mld_opdr_kosten, 0)),
|
||
DECODE (
|
||
SIGN (f_run.fin_factuur_totaal + f_run.fin_factuur_totaal_btw),
|
||
-1, TO_NUMBER (NULL),
|
||
(f_run.fin_factuur_totaal + f_run.fin_factuur_totaal_btw)))
|
||
bedrag_debet,
|
||
DECODE (
|
||
f_run.fin_factuur_key,
|
||
NULL, -- Geen ingevoerde facturen
|
||
DECODE (SIGN (COALESCE (x.mld_opdr_kosten, 0)),
|
||
-1, -1 * COALESCE (x.mld_opdr_kosten, 0),
|
||
TO_NUMBER (NULL)),
|
||
DECODE (
|
||
SIGN (f_run.fin_factuur_totaal + f_run.fin_factuur_totaal_btw),
|
||
-1, -1 * (f_run.fin_factuur_totaal + f_run.fin_factuur_totaal_btw),
|
||
TO_NUMBER (NULL)))
|
||
bedrag_credit,
|
||
x.ins_srtdiscipline_prefix || '-' || x.mld_stdmelding_omschrijving omschrijving,
|
||
x.ins_srtdiscipline_prefix || TO_CHAR (x.mld_melding_key) || '/' || TO_CHAR (x.mld_opdr_bedrijfopdr_volgnr) verplichtingnummer,
|
||
x.prs_bedrijf_naam leverancier,
|
||
x.prs_leverancier_nr leveranciersnummer,
|
||
f_run.fin_factuur_nr factuurnummer,
|
||
DECODE (x.vlkc, '41', 'VL', '42', 'KC', NULL) vlkc,
|
||
DECODE (x.mld_typeopdr_key, 5, 'Werkopdracht', 'Jaaropdracht') opdrachttype,
|
||
DECODE (x.inv, '1', 'Ja', 'Nee') investering,
|
||
x.mld_opdr_einddatum,
|
||
x.alg_locatie_code locatie
|
||
FROM (SELECT o.mld_opdr_key,
|
||
o.mld_melding_key,
|
||
o.mld_opdr_bedrijfopdr_volgnr,
|
||
COALESCE (ksgo.prs_kostensoortgrp_altcode, ksgm.prs_kostensoortgrp_altcode, ksgv.prs_kostensoortgrp_altcode, NULL) kostensoort,
|
||
kp.prs_kostenplaats_nr kostenplaats,
|
||
o.mld_opdr_kosten,
|
||
sd.ins_srtdiscipline_prefix,
|
||
sm.mld_stdmelding_omschrijving,
|
||
lev.prs_bedrijf_naam,
|
||
lev.prs_leverancier_nr,
|
||
vlkc.mld_kenmerkopdr_waarde vlkc,
|
||
o.mld_typeopdr_key,
|
||
inv.mld_kenmerkopdr_waarde inv,
|
||
o.mld_opdr_einddatum,
|
||
l.alg_locatie_code
|
||
FROM mld_opdr o,
|
||
mld_melding m,
|
||
mld_stdmelding sm,
|
||
prs_kostensoort ksm,
|
||
prs_kostensoortgrp ksgm,
|
||
prs_kostensoort kso,
|
||
prs_kostensoortgrp ksgo,
|
||
ins_tab_discipline td,
|
||
prs_kostensoort ksv,
|
||
prs_kostensoortgrp ksgv,
|
||
ins_srtdiscipline sd,
|
||
prs_kostenplaats kp,
|
||
prs_bedrijf lev,
|
||
(SELECT *
|
||
FROM mld_v_aanwezigkenmerkopdr ko
|
||
WHERE EXISTS
|
||
(SELECT 1
|
||
FROM mld_kenmerk
|
||
WHERE mld_kenmerk_key = ko.mld_kenmerk_key
|
||
AND mld_srtkenmerk_key = 81)) vlkc, -- Factuur/offerte naar
|
||
(SELECT *
|
||
FROM mld_v_aanwezigkenmerkopdr ko
|
||
WHERE EXISTS
|
||
(SELECT 1
|
||
FROM mld_kenmerk
|
||
WHERE mld_kenmerk_key = ko.mld_kenmerk_key
|
||
AND mld_srtkenmerk_key = 181)) inv, -- Investeringsopdracht
|
||
alg_locatie l
|
||
WHERE o.mld_typeopdr_key IN (5, 2781) -- Werkopdracht/Jaaropdracht
|
||
AND o.mld_statusopdr_key NOT IN (1, 2) -- Afgewezen/Niet akkoord
|
||
AND o.mld_melding_key = m.mld_melding_key
|
||
AND m.mld_stdmelding_key = sm.mld_stdmelding_key
|
||
AND sm.prs_kostensoort_key = ksm.prs_kostensoort_key(+)
|
||
AND ksm.prs_kostensoortgrp_key = ksgm.prs_kostensoortgrp_key(+)
|
||
AND o.prs_kostensoort_key = kso.prs_kostensoort_key(+)
|
||
AND kso.prs_kostensoortgrp_key = ksgo.prs_kostensoortgrp_key(+)
|
||
AND sm.mld_ins_discipline_key = td.ins_discipline_key
|
||
AND td.prs_kostensoort_key = ksv.prs_kostensoort_key(+)
|
||
AND ksv.prs_kostensoortgrp_key = ksgv.prs_kostensoortgrp_key(+)
|
||
AND td.ins_srtdiscipline_key = sd.ins_srtdiscipline_key
|
||
AND sd.ins_srtdiscipline_key NOT IN (41, 42, 43, 44, 45) -- BE-vakgroeptypen
|
||
AND o.prs_kostenplaats_key = kp.prs_kostenplaats_key(+)
|
||
AND o.mld_uitvoerende_keys = lev.prs_bedrijf_key
|
||
AND o.mld_opdr_key = vlkc.mld_opdr_key(+)
|
||
AND o.mld_opdr_key = inv.mld_opdr_key(+)
|
||
AND m.mld_alg_locatie_key = l.alg_locatie_key(+)
|
||
AND NOT EXISTS -- Geen Werkopdrachten/Jaaropdrachten met Reden "0-order"!
|
||
(SELECT 1
|
||
FROM mld_v_aanwezigkenmerkopdr
|
||
WHERE mld_kenmerk_key IN (201, 2764) -- Reden "0-order"
|
||
AND mld_opdr_key = o.mld_opdr_key)) x
|
||
LEFT JOIN ( SELECT mld_opdr_key, COUNT ( * ) aantal
|
||
FROM fin_factuur
|
||
WHERE mld_opdr_key IS NOT NULL AND fin_factuur_verwijder IS NULL
|
||
GROUP BY mld_opdr_key) f_cnt
|
||
ON x.mld_opdr_key = f_cnt.mld_opdr_key
|
||
LEFT JOIN fin_factuur f_run
|
||
ON x.mld_opdr_key = f_run.mld_opdr_key AND f_run.fin_factuur_verwijder IS NULL
|
||
WHERE f_cnt.mld_opdr_key IS NULL
|
||
OR COALESCE (f_run.fin_factuur_statuses_key, 2) = 2 -- Ingevoerd
|
||
UNION ALL -- Offerteopdrachten
|
||
SELECT NULL periode,
|
||
x.kostensoort,
|
||
x.kostenplaats,
|
||
'EUR' element3,
|
||
DECODE (x.kostenplaats, '2216', 'Variabel', 'Eindgebruiker') element4,
|
||
DECODE (
|
||
COALESCE (f.aantal, 0),
|
||
0, -- Nog geen factuur ontvangen
|
||
DECODE (SIGN (COALESCE (x.mld_opdr_kosten, 0)),
|
||
-1, TO_NUMBER (NULL),
|
||
COALESCE (x.mld_opdr_kosten, 0)),
|
||
DECODE (
|
||
SIGN(COALESCE (x.mld_opdr_kosten, 0) - COALESCE (debet.tot_incl_btw, 0) - COALESCE (credit.tot_incl_btw, 0)),
|
||
-1, TO_NUMBER (NULL),
|
||
COALESCE (x.mld_opdr_kosten, 0) - COALESCE (debet.tot_incl_btw, 0) - COALESCE (credit.tot_incl_btw, 0)))
|
||
bedrag_debet,
|
||
DECODE (
|
||
COALESCE (f.aantal, 0),
|
||
0, -- Nog geen factuur ontvangen
|
||
DECODE (SIGN (COALESCE (x.mld_opdr_kosten, 0)),
|
||
-1, -1 * COALESCE (x.mld_opdr_kosten, 0),
|
||
TO_NUMBER (NULL)),
|
||
DECODE (
|
||
SIGN(COALESCE (x.mld_opdr_kosten, 0) - COALESCE (debet.tot_incl_btw, 0) - COALESCE (credit.tot_incl_btw, 0)),
|
||
-1, -1 * (COALESCE (x.mld_opdr_kosten, 0) - COALESCE (debet.tot_incl_btw, 0) - COALESCE (credit.tot_incl_btw, 0)),
|
||
TO_NUMBER (NULL)))
|
||
bedrag_credit,
|
||
--COALESCE (ksgm.prs_kostensoortgrp_oms, ksgv.prs_kostensoortgrp_oms, 'ONGEDEFINEERD')
|
||
x.ins_srtdiscipline_prefix || '-' || x.mld_stdmelding_omschrijving omschrijving,
|
||
x.ins_srtdiscipline_prefix || TO_CHAR (x.mld_melding_key) || '/' || TO_CHAR (x.mld_opdr_bedrijfopdr_volgnr) verplichtingnummer,
|
||
x.prs_bedrijf_naam leverancier,
|
||
x.prs_leverancier_nr leveranciersnummer,
|
||
GREATEST (debet.fin_factuur_nr, credit.fin_factuur_nr) factuurnummer,
|
||
DECODE (x.vlkc, '41', 'VL', '42', 'KC', NULL) vlkc,
|
||
'Offerteopdracht' opdrachttype,
|
||
DECODE (x.inv, '1', 'Ja', 'Nee') investering,
|
||
x.mld_opdr_einddatum,
|
||
x.alg_locatie_code locatie
|
||
FROM (SELECT o.mld_opdr_key,
|
||
o.mld_melding_key,
|
||
o.mld_opdr_bedrijfopdr_volgnr,
|
||
COALESCE (ksgo.prs_kostensoortgrp_altcode, ksgm.prs_kostensoortgrp_altcode, ksgv.prs_kostensoortgrp_altcode, NULL) kostensoort,
|
||
kp.prs_kostenplaats_nr kostenplaats,
|
||
o.mld_opdr_kosten,
|
||
sd.ins_srtdiscipline_prefix,
|
||
sm.mld_stdmelding_omschrijving,
|
||
lev.prs_bedrijf_naam,
|
||
lev.prs_leverancier_nr,
|
||
vlkc.mld_kenmerkopdr_waarde vlkc,
|
||
o.mld_typeopdr_key,
|
||
inv.mld_kenmerkopdr_waarde inv,
|
||
o.mld_opdr_einddatum,
|
||
l.alg_locatie_code
|
||
FROM mld_opdr o,
|
||
mld_melding m,
|
||
mld_stdmelding sm,
|
||
prs_kostensoort ksm,
|
||
prs_kostensoortgrp ksgm,
|
||
prs_kostensoort kso,
|
||
prs_kostensoortgrp ksgo,
|
||
ins_tab_discipline td,
|
||
prs_kostensoort ksv,
|
||
prs_kostensoortgrp ksgv,
|
||
ins_srtdiscipline sd,
|
||
prs_kostenplaats kp,
|
||
prs_bedrijf lev,
|
||
(SELECT *
|
||
FROM mld_v_aanwezigkenmerkopdr ko
|
||
WHERE EXISTS
|
||
(SELECT 1
|
||
FROM mld_kenmerk
|
||
WHERE mld_kenmerk_key = ko.mld_kenmerk_key
|
||
AND mld_srtkenmerk_key = 81)) vlkc, -- Factuur/offerte naar
|
||
(SELECT *
|
||
FROM mld_v_aanwezigkenmerkopdr ko
|
||
WHERE EXISTS
|
||
(SELECT 1
|
||
FROM mld_kenmerk
|
||
WHERE mld_kenmerk_key = ko.mld_kenmerk_key
|
||
AND mld_srtkenmerk_key = 181)) inv, -- Investeringsopdracht
|
||
alg_locatie l
|
||
WHERE o.mld_typeopdr_key = 283 -- Offerteopdracht
|
||
AND o.mld_statusopdr_key NOT IN (1, 2, 3, 10) -- Afgewezen/Niet akkoord/Ter fiattering/Ter goedkeuring
|
||
AND o.mld_melding_key = m.mld_melding_key
|
||
AND m.mld_stdmelding_key = sm.mld_stdmelding_key
|
||
AND sm.prs_kostensoort_key = ksm.prs_kostensoort_key(+)
|
||
AND ksm.prs_kostensoortgrp_key = ksgm.prs_kostensoortgrp_key(+)
|
||
AND o.prs_kostensoort_key = kso.prs_kostensoort_key(+)
|
||
AND kso.prs_kostensoortgrp_key = ksgo.prs_kostensoortgrp_key(+)
|
||
AND sm.mld_ins_discipline_key = td.ins_discipline_key
|
||
AND td.prs_kostensoort_key = ksv.prs_kostensoort_key(+)
|
||
AND ksv.prs_kostensoortgrp_key = ksgv.prs_kostensoortgrp_key(+)
|
||
AND td.ins_srtdiscipline_key = sd.ins_srtdiscipline_key
|
||
AND sd.ins_srtdiscipline_key NOT IN (41, 42, 43, 44, 45) -- BE-vakgroeptypen
|
||
AND o.prs_kostenplaats_key = kp.prs_kostenplaats_key(+)
|
||
AND o.mld_uitvoerende_keys = lev.prs_bedrijf_key
|
||
AND o.mld_opdr_key = vlkc.mld_opdr_key(+)
|
||
AND o.mld_opdr_key = inv.mld_opdr_key(+)
|
||
AND m.mld_alg_locatie_key = l.alg_locatie_key(+)
|
||
AND NOT EXISTS -- Geen Offerteopdrachten met Reden "0-order"!
|
||
(SELECT 1
|
||
FROM mld_v_aanwezigkenmerkopdr
|
||
WHERE mld_kenmerk_key = 1101 -- Reden "0-order"
|
||
AND mld_opdr_key = o.mld_opdr_key)) x
|
||
LEFT JOIN ( SELECT mld_opdr_key, COUNT ( * ) aantal
|
||
FROM fin_factuur
|
||
WHERE mld_opdr_key IS NOT NULL AND fin_factuur_verwijder IS NULL
|
||
GROUP BY mld_opdr_key) f
|
||
ON x.mld_opdr_key = f.mld_opdr_key
|
||
LEFT JOIN ( SELECT mld_opdr_key, COUNT ( * ) aantal, MAX (fin_factuur_nr) fin_factuur_nr,
|
||
SUM (fin_factuur_totaal + fin_factuur_totaal_btw) tot_incl_btw
|
||
FROM fin_factuur
|
||
WHERE mld_opdr_key IS NOT NULL
|
||
AND fin_factuur_statuses_key IN (6, 7)
|
||
AND (fin_factuur_totaal + fin_factuur_totaal_btw) >= 0
|
||
GROUP BY mld_opdr_key) debet
|
||
ON x.mld_opdr_key = debet.mld_opdr_key
|
||
LEFT JOIN ( SELECT mld_opdr_key, COUNT ( * ) aantal, MAX (fin_factuur_nr) fin_factuur_nr,
|
||
SUM (fin_factuur_totaal + fin_factuur_totaal_btw) tot_incl_btw
|
||
FROM fin_factuur
|
||
WHERE mld_opdr_key IS NOT NULL
|
||
AND fin_factuur_statuses_key IN (6, 7)
|
||
AND (fin_factuur_totaal + fin_factuur_totaal_btw) < 0
|
||
GROUP BY mld_opdr_key) credit
|
||
ON x.mld_opdr_key = credit.mld_opdr_key
|
||
WHERE ROUND (COALESCE (x.mld_opdr_kosten, 0), 2) != ROUND (COALESCE (debet.tot_incl_btw, 0) + COALESCE (credit.tot_incl_btw, 0), 2);
|
||
|
||
-- VLKC#40188: Hernoemen Jaarbedrag naar Contractbedrag/toevoegen Einddatum en Jaarbedrag=12xTermijnbedrag.
|
||
-- VLKC#40188: Verantwoording per jaar/hernoemen Jaarbedrag naar Jaarbedrag_heel/toevoegen Jaarbedrag_deel.
|
||
-- VLKC#56902: Uitbreiding met extra CF/CV-kolom. Tevens in de bestaande Contractnummer-kolom de variabele
|
||
-- contracten de prefix CV gegeven (en de prefix voor vaste contracten ongewijzigd C gebleven).
|
||
-- VLKC#64166: Alleen CF- en CV-contracten beschouwen en daarmee CH-(huur)contracten uitsluiten! Tevens de
|
||
-- prefix voor vaste contracten voortaan op CF (ipv. C).
|
||
CREATE OR REPLACE VIEW vlkc_v_rap_cnt_verantw
|
||
(
|
||
fclt_f_jaar,
|
||
contractnummer,
|
||
cf_of_cv,
|
||
leverancier,
|
||
leveranciersnummer,
|
||
contractbedrag,
|
||
reeds_gefactureerd,
|
||
reeds_verantwoord,
|
||
kostensoort, -- 5 cijfers
|
||
kostenplaats, -- 4 cijfers
|
||
fclt_x_vlkc,
|
||
einddatum_contract,
|
||
jaarbedrag_heel,
|
||
jaarbedrag_deel,
|
||
locatie
|
||
)
|
||
AS
|
||
SELECT TO_CHAR (c.jaar, 'yyyy') jaar,
|
||
DECODE (SUBSTR (td.ins_discipline_omschrijving, 1, 2), 'CV', 'CV', 'C') || c.cnt_contract_nummer_intern || DECODE (c.cnt_contract_versie, NULL, '', '.' || TO_CHAR (c.cnt_contract_versie)) contractnummer,
|
||
DECODE (SUBSTR (td.ins_discipline_omschrijving, 1, 2), 'CV', 'CV', 'C') cf_of_cv,
|
||
lev.prs_bedrijf_naam leverancier,
|
||
lev.prs_leverancier_nr leveranciersnummer,
|
||
c.cnt_contract_kosten contractbedrag,
|
||
verantw.reeds_gefactureerd,
|
||
DECODE (SUBSTR (td.ins_discipline_omschrijving, 1, 2), 'CV', verantw.reeds_verwerkt, verantw.reeds_verantwoord) reeds_verantwoord,
|
||
COALESCE (ksgc.prs_kostensoortgrp_altcode, ksgd.prs_kostensoortgrp_altcode, NULL) kostensoort,
|
||
kp.prs_kostenplaats_nr kostenplaats,
|
||
DECODE (ab.prs_afdeling_key1, 82, 'VL', 81, 'KC', NULL) vlkc,
|
||
c.cnt_contract_looptijd_tot einddatum_contract,
|
||
12 * c.cnt_contract_termijnkosten jaar_heel, -- Termijnbedrag=Maandbedrag (ongeacht Factuurtermijn)!
|
||
ROUND (MONTHS_BETWEEN (LEAST (TRUNC (c.cnt_contract_looptijd_tot), ADD_MONTHS (c.jaar, 12) - 1), GREATEST (TRUNC (c.cnt_contract_looptijd_van), c.jaar)), 0) * c.cnt_contract_termijnkosten jaar_deel,
|
||
LISTAGG (cp.alg_locatie_code, ',') WITHIN GROUP (ORDER BY cp.alg_locatie_code) locatie
|
||
FROM (SELECT TO_CHAR (p.jaar, 'yyyy') || '/' || TO_CHAR (c.cnt_contract_key) jaarkey, p.jaar, c.*
|
||
FROM ( SELECT ADD_MONTHS (TO_DATE ('01012017', 'ddmmyyyy'), (LEVEL - 1) * 12) jaar
|
||
FROM DUAL
|
||
CONNECT BY LEVEL <= MONTHS_BETWEEN (SYSDATE, TO_DATE ('01012017', 'ddmmyyyy')) / 12 + 1) p,
|
||
cnt_contract c -- Alle contracten/versies (incl. verwijderde?)
|
||
WHERE p.jaar BETWEEN TRUNC (c.cnt_contract_looptijd_van, 'yyyy') AND c.cnt_contract_looptijd_tot) c,
|
||
( SELECT jaarkey, SUM (reeds_gefactureerd) reeds_gefactureerd, SUM (reeds_verwerkt) reeds_verwerkt, SUM (reeds_verantwoord) reeds_verantwoord
|
||
FROM (SELECT TO_CHAR (DECODE (t.fac_srtnotificatie_key, 122, t.fac_tracking_datum, t.fac_tracking_datum - 10), 'yyyy') || '/' || TO_CHAR (f.cnt_contract_key) jaarkey, -- Oude bepaling boekmaand!
|
||
COALESCE (f.fin_factuur_totaal, 0) + COALESCE (f.fin_factuur_totaal_btw, 0) reeds_gefactureerd,
|
||
DECODE (f.fin_factuur_statuses_key, 6, 0, COALESCE (f.fin_factuur_totaal, 0) + COALESCE (f.fin_factuur_totaal_btw, 0)) reeds_verwerkt,
|
||
0 reeds_verantwoord
|
||
FROM fin_factuur f,
|
||
( SELECT fac_tracking_refkey, MAX (fac_srtnotificatie_key) fac_srtnotificatie_key, MAX (fac_tracking_datum) fac_tracking_datum
|
||
FROM fac_tracking
|
||
WHERE fac_srtnotificatie_key IN (122, 128) -- FINFOK/FINVER
|
||
GROUP BY fac_tracking_refkey) t
|
||
WHERE f.cnt_contract_key IS NOT NULL
|
||
AND f.fin_factuur_statuses_key IN (6, 7) -- Akkoord/Verwerkt
|
||
AND f.fin_factuur_key = t.fac_tracking_refkey
|
||
AND t.fac_tracking_datum < TO_DATE ('04042018 05:05', 'ddmmyyyy hh24:mi')
|
||
UNION ALL
|
||
SELECT SUBSTR (f.fin_factuur_boekmaand, 1, 4) || '/' || TO_CHAR (f.cnt_contract_key) jaarkey, -- Nieuwe bepaling boekmaand!
|
||
COALESCE (f.fin_factuur_totaal, 0) + COALESCE (f.fin_factuur_totaal_btw, 0) reeds_gefactureerd,
|
||
DECODE (f.fin_factuur_statuses_key, 6, 0, COALESCE (f.fin_factuur_totaal, 0) + COALESCE (f.fin_factuur_totaal_btw, 0)) reeds_verwerkt,
|
||
0 reeds_verantwoord
|
||
FROM fin_factuur f,
|
||
( SELECT fac_tracking_refkey, MAX (fac_srtnotificatie_key) fac_srtnotificatie_key, MAX (fac_tracking_datum) fac_tracking_datum
|
||
FROM fac_tracking
|
||
WHERE fac_srtnotificatie_key IN (122, 128) -- FINFOK/FINVER
|
||
GROUP BY fac_tracking_refkey) t
|
||
WHERE f.cnt_contract_key IS NOT NULL
|
||
AND f.fin_factuur_statuses_key IN (6, 7) -- Akkoord/Verwerkt
|
||
AND f.fin_factuur_key = t.fac_tracking_refkey
|
||
AND t.fac_tracking_datum > TO_DATE ('04042018 05:05', 'ddmmyyyy hh24:mi')
|
||
UNION ALL
|
||
SELECT SUBSTR (fac_usrdata_code, 1, 4) || SUBSTR (fac_usrdata_code, INSTR (fac_usrdata_code, '/')) jaarkey,
|
||
0 reeds_gefactureerd,
|
||
0 reeds_verwerkt,
|
||
COALESCE (fac_usrdata_prijs, 0) reeds_verantwoord
|
||
FROM fac_v_aanwezigusrdata
|
||
WHERE fac_usrtab_key = 81) -- VasteKostenMnd
|
||
GROUP BY jaarkey) verantw,
|
||
prs_kostensoort ksc,
|
||
prs_kostensoortgrp ksgc,
|
||
ins_tab_discipline td,
|
||
prs_kostensoort ksd,
|
||
prs_kostensoortgrp ksgd,
|
||
prs_kostenplaats kp,
|
||
prs_bedrijf lev,
|
||
prs_v_afdeling_boom ab,
|
||
(SELECT cp.cnt_contract_key, l.alg_locatie_code
|
||
FROM cnt_v_aanwezigcontract_plaats cp, alg_gebouw g, alg_locatie l
|
||
WHERE cp.cnt_alg_plaats_code = 'G'
|
||
AND cp.cnt_alg_plaats_key = g.alg_gebouw_key
|
||
AND g.alg_locatie_key = l.alg_locatie_key
|
||
UNION
|
||
SELECT cp.cnt_contract_key, l.alg_locatie_code
|
||
FROM cnt_v_aanwezigcontract_plaats cp, alg_locatie l
|
||
WHERE cp.cnt_alg_plaats_code = 'L'
|
||
AND cp.cnt_alg_plaats_key = l.alg_locatie_key) cp
|
||
WHERE c.jaarkey = verantw.jaarkey(+)
|
||
AND c.prs_kostensoort_key = ksc.prs_kostensoort_key(+)
|
||
AND ksc.prs_kostensoortgrp_key = ksgc.prs_kostensoortgrp_key(+)
|
||
AND c.ins_discipline_key = td.ins_discipline_key
|
||
AND SUBSTR (td.ins_discipline_omschrijving, 1, 2) IN ('CF', 'CV')
|
||
AND td.prs_kostensoort_key = ksd.prs_kostensoort_key(+)
|
||
AND ksd.prs_kostensoortgrp_key = ksgd.prs_kostensoortgrp_key(+)
|
||
AND c.prs_kostenplaats_key = kp.prs_kostenplaats_key(+)
|
||
AND c.cnt_prs_bedrijf_key = lev.prs_bedrijf_key
|
||
AND c.prs_afdeling_key_eig = ab.prs_afdeling_key(+)
|
||
AND (c.cnt_contract_verwijder IS NULL OR COALESCE (verantw.reeds_gefactureerd, 0) <> 0 OR COALESCE (verantw.reeds_verantwoord, 0) <> 0)
|
||
AND c.cnt_contract_key = cp.cnt_contract_key(+)
|
||
GROUP BY TO_CHAR (c.jaar, 'yyyy'),
|
||
DECODE (SUBSTR (td.ins_discipline_omschrijving, 1, 2), 'CV', 'CV', 'C') || c.cnt_contract_nummer_intern || DECODE (c.cnt_contract_versie, NULL, '', '.' || TO_CHAR (c.cnt_contract_versie)),
|
||
DECODE (SUBSTR (td.ins_discipline_omschrijving, 1, 2), 'CV', 'CV', 'C'),
|
||
lev.prs_bedrijf_naam,
|
||
lev.prs_leverancier_nr,
|
||
c.cnt_contract_kosten,
|
||
verantw.reeds_gefactureerd,
|
||
DECODE (SUBSTR (td.ins_discipline_omschrijving, 1, 2), 'CV', verantw.reeds_verwerkt, verantw.reeds_verantwoord),
|
||
COALESCE (ksgc.prs_kostensoortgrp_altcode, ksgd.prs_kostensoortgrp_altcode, NULL),
|
||
kp.prs_kostenplaats_nr,
|
||
DECODE (ab.prs_afdeling_key1, 82, 'VL', 81, 'KC', NULL),
|
||
c.cnt_contract_looptijd_tot,
|
||
12 * c.cnt_contract_termijnkosten,
|
||
ROUND (MONTHS_BETWEEN (LEAST (TRUNC (c.cnt_contract_looptijd_tot), ADD_MONTHS (c.jaar, 12) - 1), GREATEST (TRUNC (c.cnt_contract_looptijd_van), c.jaar)), 0) * c.cnt_contract_termijnkosten
|
||
UNION ALL -- Facturatie/verantwoording op verlopen contracten (in jaren n<> cnt_contract_looptijd_tot)!
|
||
SELECT SUBSTR (verantw.jaarkey, 1, 4) jaar,
|
||
DECODE (SUBSTR (td.ins_discipline_omschrijving, 1, 2), 'CV', 'CV', 'C') || c.cnt_contract_nummer_intern || DECODE (c.cnt_contract_versie, NULL, '', '.' || TO_CHAR (c.cnt_contract_versie)) contractnummer,
|
||
DECODE (SUBSTR (td.ins_discipline_omschrijving, 1, 2), 'CV', 'CV', 'C') cf_of_cv,
|
||
lev.prs_bedrijf_naam leverancier,
|
||
lev.prs_leverancier_nr leveranciersnummer,
|
||
c.cnt_contract_kosten contractbedrag,
|
||
verantw.reeds_gefactureerd,
|
||
DECODE (SUBSTR (td.ins_discipline_omschrijving, 1, 2), 'CV', verantw.reeds_verwerkt, verantw.reeds_verantwoord) reeds_verantwoord,
|
||
COALESCE (ksgc.prs_kostensoortgrp_altcode, ksgd.prs_kostensoortgrp_altcode, NULL) kostensoort,
|
||
kp.prs_kostenplaats_nr kostenplaats,
|
||
DECODE (ab.prs_afdeling_key1, 82, 'VL', 81, 'KC', NULL) vlkc,
|
||
c.cnt_contract_looptijd_tot einddatum_contract,
|
||
0 jaar_heel, -- Contract verlopen!
|
||
0 jaar_deel, -- Contract verlopen!
|
||
LISTAGG (cp.alg_locatie_code, ',') WITHIN GROUP (ORDER BY cp.alg_locatie_code) locatie
|
||
FROM cnt_contract c, -- Alle contracten/versies (incl. verwijderde?)
|
||
( SELECT jaarkey, SUM (reeds_gefactureerd) reeds_gefactureerd, SUM (reeds_verwerkt) reeds_verwerkt, SUM (reeds_verantwoord) reeds_verantwoord
|
||
FROM (SELECT TO_CHAR (DECODE (t.fac_srtnotificatie_key, 122, t.fac_tracking_datum, t.fac_tracking_datum - 10), 'yyyy') || '/' || TO_CHAR (f.cnt_contract_key) jaarkey, -- Oude bepaling boekmaand!
|
||
COALESCE (f.fin_factuur_totaal, 0) + COALESCE (f.fin_factuur_totaal_btw, 0) reeds_gefactureerd,
|
||
DECODE (f.fin_factuur_statuses_key, 6, 0, COALESCE (f.fin_factuur_totaal, 0) + COALESCE (f.fin_factuur_totaal_btw, 0)) reeds_verwerkt,
|
||
0 reeds_verantwoord
|
||
FROM fin_factuur f,
|
||
( SELECT fac_tracking_refkey, MAX (fac_srtnotificatie_key) fac_srtnotificatie_key, MAX (fac_tracking_datum) fac_tracking_datum
|
||
FROM fac_tracking
|
||
WHERE fac_srtnotificatie_key IN (122, 128) -- FINFOK/FINVER
|
||
GROUP BY fac_tracking_refkey) t
|
||
WHERE f.cnt_contract_key IS NOT NULL
|
||
AND f.fin_factuur_statuses_key IN (6, 7) -- Akkoord/Verwerkt
|
||
AND f.fin_factuur_key = t.fac_tracking_refkey
|
||
AND t.fac_tracking_datum < TO_DATE ('04042018 05:05', 'ddmmyyyy hh24:mi')
|
||
UNION ALL
|
||
SELECT SUBSTR (f.fin_factuur_boekmaand, 1, 4) || '/' || TO_CHAR (f.cnt_contract_key) jaarkey, -- Nieuwe bepaling boekmaand!
|
||
COALESCE (f.fin_factuur_totaal, 0) + COALESCE (f.fin_factuur_totaal_btw, 0) reeds_gefactureerd,
|
||
DECODE (f.fin_factuur_statuses_key, 6, 0, COALESCE (f.fin_factuur_totaal, 0) + COALESCE (f.fin_factuur_totaal_btw, 0)) reeds_verwerkt,
|
||
0 reeds_verantwoord
|
||
FROM fin_factuur f,
|
||
( SELECT fac_tracking_refkey, MAX (fac_srtnotificatie_key) fac_srtnotificatie_key, MAX (fac_tracking_datum) fac_tracking_datum
|
||
FROM fac_tracking
|
||
WHERE fac_srtnotificatie_key IN (122, 128) -- FINFOK/FINVER
|
||
GROUP BY fac_tracking_refkey) t
|
||
WHERE f.cnt_contract_key IS NOT NULL
|
||
AND f.fin_factuur_statuses_key IN (6, 7) -- Akkoord/Verwerkt
|
||
AND f.fin_factuur_key = t.fac_tracking_refkey
|
||
AND t.fac_tracking_datum > TO_DATE ('04042018 05:05', 'ddmmyyyy hh24:mi')
|
||
UNION ALL
|
||
SELECT SUBSTR (fac_usrdata_code, 1, 4) || SUBSTR (fac_usrdata_code, INSTR (fac_usrdata_code, '/')) jaarkey,
|
||
0 reeds_gefactureerd,
|
||
0 reeds_verwerkt,
|
||
COALESCE (fac_usrdata_prijs, 0) reeds_verantwoord
|
||
FROM fac_v_aanwezigusrdata
|
||
WHERE fac_usrtab_key = 81) -- VasteKostenMnd
|
||
GROUP BY jaarkey) verantw,
|
||
prs_kostensoort ksc,
|
||
prs_kostensoortgrp ksgc,
|
||
ins_tab_discipline td,
|
||
prs_kostensoort ksd,
|
||
prs_kostensoortgrp ksgd,
|
||
prs_kostenplaats kp,
|
||
prs_bedrijf lev,
|
||
prs_v_afdeling_boom ab,
|
||
(SELECT cp.cnt_contract_key, l.alg_locatie_code
|
||
FROM cnt_v_aanwezigcontract_plaats cp, alg_gebouw g, alg_locatie l
|
||
WHERE cp.cnt_alg_plaats_code = 'G'
|
||
AND cp.cnt_alg_plaats_key = g.alg_gebouw_key
|
||
AND g.alg_locatie_key = l.alg_locatie_key
|
||
UNION
|
||
SELECT cp.cnt_contract_key, l.alg_locatie_code
|
||
FROM cnt_v_aanwezigcontract_plaats cp, alg_locatie l
|
||
WHERE cp.cnt_alg_plaats_code = 'L'
|
||
AND cp.cnt_alg_plaats_key = l.alg_locatie_key) cp
|
||
WHERE TO_CHAR (c.cnt_contract_key) = SUBSTR (verantw.jaarkey, INSTR (verantw.jaarkey, '/') + 1)
|
||
AND TO_CHAR (c.cnt_contract_looptijd_tot, 'yyyy') < SUBSTR (verantw.jaarkey, 1, 4)
|
||
AND c.prs_kostensoort_key = ksc.prs_kostensoort_key(+)
|
||
AND ksc.prs_kostensoortgrp_key = ksgc.prs_kostensoortgrp_key(+)
|
||
AND c.ins_discipline_key = td.ins_discipline_key
|
||
AND SUBSTR (td.ins_discipline_omschrijving, 1, 2) IN ('CF', 'CV')
|
||
AND td.prs_kostensoort_key = ksd.prs_kostensoort_key(+)
|
||
AND ksd.prs_kostensoortgrp_key = ksgd.prs_kostensoortgrp_key(+)
|
||
AND c.prs_kostenplaats_key = kp.prs_kostenplaats_key(+)
|
||
AND c.cnt_prs_bedrijf_key = lev.prs_bedrijf_key
|
||
AND c.prs_afdeling_key_eig = ab.prs_afdeling_key(+)
|
||
AND c.cnt_contract_key = cp.cnt_contract_key(+)
|
||
GROUP BY SUBSTR (verantw.jaarkey, 1, 4),
|
||
DECODE (SUBSTR (td.ins_discipline_omschrijving, 1, 2), 'CV', 'CV', 'C') || c.cnt_contract_nummer_intern || DECODE (c.cnt_contract_versie, NULL, '', '.' || TO_CHAR (c.cnt_contract_versie)),
|
||
DECODE (SUBSTR (td.ins_discipline_omschrijving, 1, 2), 'CV', 'CV', 'C'),
|
||
lev.prs_bedrijf_naam,
|
||
lev.prs_leverancier_nr,
|
||
c.cnt_contract_kosten,
|
||
verantw.reeds_gefactureerd,
|
||
DECODE (SUBSTR (td.ins_discipline_omschrijving, 1, 2), 'CV', verantw.reeds_verwerkt, verantw.reeds_verantwoord),
|
||
COALESCE (ksgc.prs_kostensoortgrp_altcode, ksgd.prs_kostensoortgrp_altcode, NULL),
|
||
kp.prs_kostenplaats_nr,
|
||
DECODE (ab.prs_afdeling_key1, 82, 'VL', 81, 'KC', NULL),
|
||
c.cnt_contract_looptijd_tot,
|
||
0,
|
||
0;
|
||
|
||
-- VLKC#89584: CODA BE-rapportages op MLD, dus niet BES/CNT en zonder facturen!
|
||
CREATE OR REPLACE VIEW vlkc_v_rap_coda_ordexp_be
|
||
(
|
||
fclt_f_periode,
|
||
kostensoort, -- 5 cijfers
|
||
kostenplaats, -- 4 cijfers
|
||
valuta, -- element3
|
||
bron, -- element4
|
||
bedrag_debet, -- incl. BTW en niet samen met bedrag_credit op <20><>n regel
|
||
bedrag_credit, -- incl. BTW en niet samen met bedrag_debet op <20><>n regel
|
||
omschrijving, -- max. 29 posities
|
||
verplichtingnummer,
|
||
leverancier,
|
||
leveranciersnummer,
|
||
factuurnummer,
|
||
fclt_f_vlkc,
|
||
fclt_f_opdrachttype,
|
||
fclt_f_investering,
|
||
melder, -- of besteller
|
||
melder_pnr, -- of besteller
|
||
melder_kpn, -- of besteller
|
||
locatie
|
||
)
|
||
AS
|
||
WITH lopendeperiode AS (SELECT COALESCE (MAX (TO_CHAR (ADD_MONTHS (fac.safe_to_date (SUBSTR (fac_usrdata_code, 1, 7), 'yyyy-mm'), 1), 'yyyy-mm')), '2017-01') maand
|
||
FROM fac_usrdata
|
||
WHERE fac_usrtab_key = 81)
|
||
SELECT --DECODE (f.fin_factuur_statuses_key,
|
||
-- 7, TO_CHAR (fac.gettrackingdate ('FINVER', f.fin_factuur_key) - 10, 'yyyy-mm'),
|
||
-- lp.maand || '*')
|
||
TO_CHAR (o.mld_opdr_datumbegin, 'yyyy-mm')
|
||
periode, -- TODO:Wat doen voor BE?
|
||
COALESCE (ksgo.prs_kostensoortgrp_altcode, ksgm.prs_kostensoortgrp_altcode, ksgv.prs_kostensoortgrp_altcode, NULL) kostensoort,
|
||
kp.prs_kostenplaats_nr kostenplaats,
|
||
'EUR' element3,
|
||
--DECODE (kp.prs_kostenplaats_nr, '2216', 'Variabel', 'Eindgebruiker') element4, -- TODO:Wat doen voor BE?
|
||
'BE' element4,
|
||
--DECODE (SIGN (f.fin_factuur_totaal + f.fin_factuur_totaal_btw),
|
||
-- -1, TO_NUMBER (NULL),
|
||
-- (f.fin_factuur_totaal + f.fin_factuur_totaal_btw))
|
||
TO_NUMBER (NULL)
|
||
bedrag_debet, -- TODO:Wat doen voor BE?
|
||
--DECODE (SIGN (f.fin_factuur_totaal + f.fin_factuur_totaal_btw),
|
||
-- -1, -1 * (f.fin_factuur_totaal + f.fin_factuur_totaal_btw),
|
||
-- TO_NUMBER (NULL))
|
||
TO_NUMBER (NULL)
|
||
bedrag_credit, -- TODO:Wat doen voor BE?
|
||
--COALESCE (ksgm.prs_kostensoortgrp_oms, ksgv.prs_kostensoortgrp_oms, 'ONGEDEFINEERD')
|
||
sd.ins_srtdiscipline_prefix || '-' || sm.mld_stdmelding_omschrijving omschrijving,
|
||
sd.ins_srtdiscipline_prefix || TO_CHAR (o.mld_melding_key) || '/' || TO_CHAR (o.mld_opdr_bedrijfopdr_volgnr) verplichtingnummer,
|
||
lev.prs_bedrijf_naam leverancier,
|
||
lev.prs_leverancier_nr leveranciersnummer,
|
||
--f.fin_factuur_nr factuurnummer, -- TODO:Wat doen voor BE?
|
||
NULL factuurnummer,
|
||
--DECODE (vlkc.mld_kenmerkopdr_waarde, '41', 'VL', '42', 'KC', NULL) vlkc, -- TODO:Wat doen voor BE?
|
||
NULL vlkc,
|
||
DECODE (o.mld_typeopdr_key, 5, 'Werkopdracht', 283, 'Offerteopdracht', 'Jaaropdracht') opdrachttype,
|
||
DECODE (inv.mld_kenmerkopdr_waarde, '1', 'Ja', 'Nee') investering,
|
||
mpf.prs_perslid_naam_full melder,
|
||
mp.prs_perslid_nr melder_pnr,
|
||
mkp.prs_kostenplaats_nr melder_kpn,
|
||
l.alg_locatie_code locatie
|
||
FROM lopendeperiode lp,
|
||
--fin_factuur f,
|
||
mld_opdr o,
|
||
mld_melding m,
|
||
mld_stdmelding sm,
|
||
prs_kostensoort ksm,
|
||
prs_kostensoortgrp ksgm,
|
||
prs_kostensoort kso,
|
||
prs_kostensoortgrp ksgo,
|
||
ins_tab_discipline td,
|
||
prs_kostensoort ksv,
|
||
prs_kostensoortgrp ksgv,
|
||
ins_srtdiscipline sd,
|
||
prs_kostenplaats kp,
|
||
prs_bedrijf lev,
|
||
(SELECT *
|
||
FROM mld_v_aanwezigkenmerkopdr ko
|
||
WHERE EXISTS
|
||
(SELECT 1
|
||
FROM mld_kenmerk
|
||
WHERE mld_kenmerk_key = ko.mld_kenmerk_key
|
||
AND mld_srtkenmerk_key = 81)) vlkc, -- Factuur/offerte naar
|
||
(SELECT *
|
||
FROM mld_v_aanwezigkenmerkopdr ko
|
||
WHERE EXISTS
|
||
(SELECT 1
|
||
FROM mld_kenmerk
|
||
WHERE mld_kenmerk_key = ko.mld_kenmerk_key
|
||
AND mld_srtkenmerk_key = 181)) inv, -- Investeringsopdracht
|
||
prs_perslid mp,
|
||
prs_v_perslid_fullnames_all mpf,
|
||
prs_afdeling ma,
|
||
prs_kostenplaats mkp,
|
||
alg_locatie l
|
||
WHERE 1 = 1
|
||
--AND f.fin_factuur_statuses_key IN (6, 7) -- Akkoord/Verwerkt
|
||
--AND f.mld_opdr_key = o.mld_opdr_key
|
||
AND o.mld_typeopdr_key IN (5, 283, 2781) -- Werkopdracht/Offerteopdracht/Jaaropdracht
|
||
AND o.mld_melding_key = m.mld_melding_key
|
||
AND m.mld_stdmelding_key = sm.mld_stdmelding_key
|
||
AND sm.prs_kostensoort_key = ksm.prs_kostensoort_key(+)
|
||
AND ksm.prs_kostensoortgrp_key = ksgm.prs_kostensoortgrp_key(+)
|
||
AND o.prs_kostensoort_key = kso.prs_kostensoort_key(+)
|
||
AND kso.prs_kostensoortgrp_key = ksgo.prs_kostensoortgrp_key(+)
|
||
AND sm.mld_ins_discipline_key = td.ins_discipline_key
|
||
AND td.prs_kostensoort_key = ksv.prs_kostensoort_key(+)
|
||
AND ksv.prs_kostensoortgrp_key = ksgv.prs_kostensoortgrp_key(+)
|
||
AND td.ins_srtdiscipline_key = sd.ins_srtdiscipline_key
|
||
AND sd.ins_srtdiscipline_key IN (41, 42, 43, 44, 45) -- BE-vakgroeptypen
|
||
AND o.prs_kostenplaats_key = kp.prs_kostenplaats_key(+)
|
||
AND o.mld_uitvoerende_keys = lev.prs_bedrijf_key
|
||
AND o.mld_opdr_key = vlkc.mld_opdr_key(+)
|
||
AND o.mld_opdr_key = inv.mld_opdr_key(+)
|
||
AND m.prs_perslid_key = mp.prs_perslid_key
|
||
AND mp.prs_perslid_key = mpf.prs_perslid_key
|
||
AND mp.prs_afdeling_key = ma.prs_afdeling_key
|
||
AND ma.prs_kostenplaats_key = mkp.prs_kostenplaats_key(+)
|
||
AND m.mld_alg_locatie_key = l.alg_locatie_key(+);
|
||
|
||
--CREATE OR REPLACE VIEW vlkc_v_rap_coda_cntexp_be
|
||
|
||
CREATE OR REPLACE VIEW vlkc_v_rap_coda_ordrun_be
|
||
(
|
||
fclt_f_periode,
|
||
kostensoort, -- 5 cijfers
|
||
kostenplaats, -- 4 cijfers
|
||
valuta, -- element3
|
||
bron, -- element4
|
||
bedrag_debet, -- incl. BTW en niet samen met bedrag_credit op <20><>n regel
|
||
bedrag_credit, -- incl. BTW en niet samen met bedrag_debet op <20><>n regel
|
||
omschrijving, -- max. 29 posities
|
||
verplichtingnummer,
|
||
leverancier,
|
||
leveranciersnummer,
|
||
factuurnummer,
|
||
fclt_f_vlkc,
|
||
fclt_f_opdrachttype,
|
||
fclt_f_investering,
|
||
einddatum,
|
||
locatie
|
||
)
|
||
AS -- Werkopdrachten
|
||
SELECT NULL periode,
|
||
x.kostensoort,
|
||
x.kostenplaats,
|
||
'EUR' element3,
|
||
--DECODE (x.kostenplaats, '2216', 'Variabel', 'Eindgebruiker') element4, -- TODO:Wat doen voor BE?
|
||
'BE' element4,
|
||
DECODE (
|
||
f_run.fin_factuur_key,
|
||
NULL, -- Geen ingevoerde facturen
|
||
DECODE (SIGN (COALESCE (x.mld_opdr_kosten, 0)),
|
||
-1, TO_NUMBER (NULL),
|
||
COALESCE (x.mld_opdr_kosten, 0)),
|
||
DECODE (
|
||
SIGN (f_run.fin_factuur_totaal + f_run.fin_factuur_totaal_btw),
|
||
-1, TO_NUMBER (NULL),
|
||
(f_run.fin_factuur_totaal + f_run.fin_factuur_totaal_btw)))
|
||
bedrag_debet,
|
||
DECODE (
|
||
f_run.fin_factuur_key,
|
||
NULL, -- Geen ingevoerde facturen
|
||
DECODE (SIGN (COALESCE (x.mld_opdr_kosten, 0)),
|
||
-1, -1 * COALESCE (x.mld_opdr_kosten, 0),
|
||
TO_NUMBER (NULL)),
|
||
DECODE (
|
||
SIGN (f_run.fin_factuur_totaal + f_run.fin_factuur_totaal_btw),
|
||
-1, -1 * (f_run.fin_factuur_totaal + f_run.fin_factuur_totaal_btw),
|
||
TO_NUMBER (NULL)))
|
||
bedrag_credit,
|
||
x.ins_srtdiscipline_prefix || '-' || x.mld_stdmelding_omschrijving omschrijving,
|
||
x.ins_srtdiscipline_prefix || TO_CHAR (x.mld_melding_key) || '/' || TO_CHAR (x.mld_opdr_bedrijfopdr_volgnr) verplichtingnummer,
|
||
x.prs_bedrijf_naam leverancier,
|
||
x.prs_leverancier_nr leveranciersnummer,
|
||
f_run.fin_factuur_nr factuurnummer,
|
||
--DECODE (x.vlkc, '41', 'VL', '42', 'KC', NULL) vlkc, -- TODO:Wat doen voor BE?
|
||
NULL vlkc,
|
||
DECODE (x.mld_typeopdr_key, 5, 'Werkopdracht', 'Jaaropdracht') opdrachttype,
|
||
DECODE (x.inv, '1', 'Ja', 'Nee') investering,
|
||
x.mld_opdr_einddatum,
|
||
x.alg_locatie_code locatie
|
||
FROM (SELECT o.mld_opdr_key,
|
||
o.mld_melding_key,
|
||
o.mld_opdr_bedrijfopdr_volgnr,
|
||
COALESCE (ksgo.prs_kostensoortgrp_altcode, ksgm.prs_kostensoortgrp_altcode, ksgv.prs_kostensoortgrp_altcode, NULL) kostensoort,
|
||
kp.prs_kostenplaats_nr kostenplaats,
|
||
o.mld_opdr_kosten,
|
||
sd.ins_srtdiscipline_prefix,
|
||
sm.mld_stdmelding_omschrijving,
|
||
lev.prs_bedrijf_naam,
|
||
lev.prs_leverancier_nr,
|
||
vlkc.mld_kenmerkopdr_waarde vlkc,
|
||
o.mld_typeopdr_key,
|
||
inv.mld_kenmerkopdr_waarde inv,
|
||
o.mld_opdr_einddatum,
|
||
l.alg_locatie_code
|
||
FROM mld_opdr o,
|
||
mld_melding m,
|
||
mld_stdmelding sm,
|
||
prs_kostensoort ksm,
|
||
prs_kostensoortgrp ksgm,
|
||
prs_kostensoort kso,
|
||
prs_kostensoortgrp ksgo,
|
||
ins_tab_discipline td,
|
||
prs_kostensoort ksv,
|
||
prs_kostensoortgrp ksgv,
|
||
ins_srtdiscipline sd,
|
||
prs_kostenplaats kp,
|
||
prs_bedrijf lev,
|
||
(SELECT *
|
||
FROM mld_v_aanwezigkenmerkopdr ko
|
||
WHERE EXISTS
|
||
(SELECT 1
|
||
FROM mld_kenmerk
|
||
WHERE mld_kenmerk_key = ko.mld_kenmerk_key
|
||
AND mld_srtkenmerk_key = 81)) vlkc, -- Factuur/offerte naar
|
||
(SELECT *
|
||
FROM mld_v_aanwezigkenmerkopdr ko
|
||
WHERE EXISTS
|
||
(SELECT 1
|
||
FROM mld_kenmerk
|
||
WHERE mld_kenmerk_key = ko.mld_kenmerk_key
|
||
AND mld_srtkenmerk_key = 181)) inv, -- Investeringsopdracht
|
||
alg_locatie l
|
||
WHERE o.mld_typeopdr_key IN (5, 2781) -- Werkopdracht/Jaaropdracht
|
||
AND o.mld_statusopdr_key NOT IN (1, 2) -- Afgewezen/Niet akkoord
|
||
AND o.mld_melding_key = m.mld_melding_key
|
||
AND m.mld_stdmelding_key = sm.mld_stdmelding_key
|
||
AND sm.prs_kostensoort_key = ksm.prs_kostensoort_key(+)
|
||
AND ksm.prs_kostensoortgrp_key = ksgm.prs_kostensoortgrp_key(+)
|
||
AND o.prs_kostensoort_key = kso.prs_kostensoort_key(+)
|
||
AND kso.prs_kostensoortgrp_key = ksgo.prs_kostensoortgrp_key(+)
|
||
AND sm.mld_ins_discipline_key = td.ins_discipline_key
|
||
AND td.prs_kostensoort_key = ksv.prs_kostensoort_key(+)
|
||
AND ksv.prs_kostensoortgrp_key = ksgv.prs_kostensoortgrp_key(+)
|
||
AND td.ins_srtdiscipline_key = sd.ins_srtdiscipline_key
|
||
AND sd.ins_srtdiscipline_key IN (41, 42, 43, 44, 45) -- BE-vakgroeptypen
|
||
AND o.prs_kostenplaats_key = kp.prs_kostenplaats_key(+)
|
||
AND o.mld_uitvoerende_keys = lev.prs_bedrijf_key
|
||
AND o.mld_opdr_key = vlkc.mld_opdr_key(+)
|
||
AND o.mld_opdr_key = inv.mld_opdr_key(+)
|
||
AND m.mld_alg_locatie_key = l.alg_locatie_key(+)
|
||
AND NOT EXISTS -- Geen Werkopdrachten/Jaaropdrachten met Reden "0-order"!
|
||
(SELECT 1
|
||
FROM mld_v_aanwezigkenmerkopdr
|
||
WHERE mld_kenmerk_key IN (201, 2764) -- Reden "0-order"
|
||
AND mld_opdr_key = o.mld_opdr_key)) x
|
||
LEFT JOIN ( SELECT mld_opdr_key, COUNT ( * ) aantal
|
||
FROM fin_factuur
|
||
WHERE mld_opdr_key IS NOT NULL AND fin_factuur_verwijder IS NULL
|
||
GROUP BY mld_opdr_key) f_cnt
|
||
ON x.mld_opdr_key = f_cnt.mld_opdr_key
|
||
LEFT JOIN fin_factuur f_run
|
||
ON x.mld_opdr_key = f_run.mld_opdr_key AND f_run.fin_factuur_verwijder IS NULL
|
||
WHERE f_cnt.mld_opdr_key IS NULL
|
||
OR COALESCE (f_run.fin_factuur_statuses_key, 2) = 2 -- Ingevoerd
|
||
UNION ALL -- Offerteopdrachten
|
||
SELECT NULL periode,
|
||
x.kostensoort,
|
||
x.kostenplaats,
|
||
'EUR' element3,
|
||
--DECODE (x.kostenplaats, '2216', 'Variabel', 'Eindgebruiker') element4, -- TODO:Wat doen voor BE?
|
||
'BE' element4,
|
||
DECODE (
|
||
COALESCE (f.aantal, 0),
|
||
0, -- Nog geen factuur ontvangen
|
||
DECODE (SIGN (COALESCE (x.mld_opdr_kosten, 0)),
|
||
-1, TO_NUMBER (NULL),
|
||
COALESCE (x.mld_opdr_kosten, 0)),
|
||
DECODE (
|
||
SIGN(COALESCE (x.mld_opdr_kosten, 0) - COALESCE (debet.tot_incl_btw, 0) - COALESCE (credit.tot_incl_btw, 0)),
|
||
-1, TO_NUMBER (NULL),
|
||
COALESCE (x.mld_opdr_kosten, 0) - COALESCE (debet.tot_incl_btw, 0) - COALESCE (credit.tot_incl_btw, 0)))
|
||
bedrag_debet,
|
||
DECODE (
|
||
COALESCE (f.aantal, 0),
|
||
0, -- Nog geen factuur ontvangen
|
||
DECODE (SIGN (COALESCE (x.mld_opdr_kosten, 0)),
|
||
-1, -1 * COALESCE (x.mld_opdr_kosten, 0),
|
||
TO_NUMBER (NULL)),
|
||
DECODE (
|
||
SIGN(COALESCE (x.mld_opdr_kosten, 0) - COALESCE (debet.tot_incl_btw, 0) - COALESCE (credit.tot_incl_btw, 0)),
|
||
-1, -1 * (COALESCE (x.mld_opdr_kosten, 0) - COALESCE (debet.tot_incl_btw, 0) - COALESCE (credit.tot_incl_btw, 0)),
|
||
TO_NUMBER (NULL)))
|
||
bedrag_credit,
|
||
--COALESCE (ksgm.prs_kostensoortgrp_oms, ksgv.prs_kostensoortgrp_oms, 'ONGEDEFINEERD')
|
||
x.ins_srtdiscipline_prefix || '-' || x.mld_stdmelding_omschrijving omschrijving,
|
||
x.ins_srtdiscipline_prefix || TO_CHAR (x.mld_melding_key) || '/' || TO_CHAR (x.mld_opdr_bedrijfopdr_volgnr) verplichtingnummer,
|
||
x.prs_bedrijf_naam leverancier,
|
||
x.prs_leverancier_nr leveranciersnummer,
|
||
GREATEST (debet.fin_factuur_nr, credit.fin_factuur_nr) factuurnummer,
|
||
--DECODE (x.vlkc, '41', 'VL', '42', 'KC', NULL) vlkc, -- TODO:Wat doen voor BE?
|
||
NULL vlkc,
|
||
'Offerteopdracht' opdrachttype,
|
||
DECODE (x.inv, '1', 'Ja', 'Nee') investering,
|
||
x.mld_opdr_einddatum,
|
||
x.alg_locatie_code locatie
|
||
FROM (SELECT o.mld_opdr_key,
|
||
o.mld_melding_key,
|
||
o.mld_opdr_bedrijfopdr_volgnr,
|
||
COALESCE (ksgo.prs_kostensoortgrp_altcode, ksgm.prs_kostensoortgrp_altcode, ksgv.prs_kostensoortgrp_altcode, NULL) kostensoort,
|
||
kp.prs_kostenplaats_nr kostenplaats,
|
||
o.mld_opdr_kosten,
|
||
sd.ins_srtdiscipline_prefix,
|
||
sm.mld_stdmelding_omschrijving,
|
||
lev.prs_bedrijf_naam,
|
||
lev.prs_leverancier_nr,
|
||
vlkc.mld_kenmerkopdr_waarde vlkc,
|
||
o.mld_typeopdr_key,
|
||
inv.mld_kenmerkopdr_waarde inv,
|
||
o.mld_opdr_einddatum,
|
||
l.alg_locatie_code
|
||
FROM mld_opdr o,
|
||
mld_melding m,
|
||
mld_stdmelding sm,
|
||
prs_kostensoort ksm,
|
||
prs_kostensoortgrp ksgm,
|
||
prs_kostensoort kso,
|
||
prs_kostensoortgrp ksgo,
|
||
ins_tab_discipline td,
|
||
prs_kostensoort ksv,
|
||
prs_kostensoortgrp ksgv,
|
||
ins_srtdiscipline sd,
|
||
prs_kostenplaats kp,
|
||
prs_bedrijf lev,
|
||
(SELECT *
|
||
FROM mld_v_aanwezigkenmerkopdr ko
|
||
WHERE EXISTS
|
||
(SELECT 1
|
||
FROM mld_kenmerk
|
||
WHERE mld_kenmerk_key = ko.mld_kenmerk_key
|
||
AND mld_srtkenmerk_key = 81)) vlkc, -- Factuur/offerte naar
|
||
(SELECT *
|
||
FROM mld_v_aanwezigkenmerkopdr ko
|
||
WHERE EXISTS
|
||
(SELECT 1
|
||
FROM mld_kenmerk
|
||
WHERE mld_kenmerk_key = ko.mld_kenmerk_key
|
||
AND mld_srtkenmerk_key = 181)) inv, -- Investeringsopdracht
|
||
alg_locatie l
|
||
WHERE o.mld_typeopdr_key = 283 -- Offerteopdracht
|
||
AND o.mld_statusopdr_key NOT IN (1, 2, 3, 10) -- Afgewezen/Niet akkoord/Ter fiattering/Ter goedkeuring
|
||
AND o.mld_melding_key = m.mld_melding_key
|
||
AND m.mld_stdmelding_key = sm.mld_stdmelding_key
|
||
AND sm.prs_kostensoort_key = ksm.prs_kostensoort_key(+)
|
||
AND ksm.prs_kostensoortgrp_key = ksgm.prs_kostensoortgrp_key(+)
|
||
AND o.prs_kostensoort_key = kso.prs_kostensoort_key(+)
|
||
AND kso.prs_kostensoortgrp_key = ksgo.prs_kostensoortgrp_key(+)
|
||
AND sm.mld_ins_discipline_key = td.ins_discipline_key
|
||
AND td.prs_kostensoort_key = ksv.prs_kostensoort_key(+)
|
||
AND ksv.prs_kostensoortgrp_key = ksgv.prs_kostensoortgrp_key(+)
|
||
AND td.ins_srtdiscipline_key = sd.ins_srtdiscipline_key
|
||
AND sd.ins_srtdiscipline_key IN (41, 42, 43, 44, 45) -- BE-vakgroeptypen
|
||
AND o.prs_kostenplaats_key = kp.prs_kostenplaats_key(+)
|
||
AND o.mld_uitvoerende_keys = lev.prs_bedrijf_key
|
||
AND o.mld_opdr_key = vlkc.mld_opdr_key(+)
|
||
AND o.mld_opdr_key = inv.mld_opdr_key(+)
|
||
AND m.mld_alg_locatie_key = l.alg_locatie_key(+)
|
||
AND NOT EXISTS -- Geen Offerteopdrachten met Reden "0-order"!
|
||
(SELECT 1
|
||
FROM mld_v_aanwezigkenmerkopdr
|
||
WHERE mld_kenmerk_key = 1101 -- Reden "0-order"
|
||
AND mld_opdr_key = o.mld_opdr_key)) x
|
||
LEFT JOIN ( SELECT mld_opdr_key, COUNT ( * ) aantal
|
||
FROM fin_factuur
|
||
WHERE mld_opdr_key IS NOT NULL AND fin_factuur_verwijder IS NULL
|
||
GROUP BY mld_opdr_key) f
|
||
ON x.mld_opdr_key = f.mld_opdr_key
|
||
LEFT JOIN ( SELECT mld_opdr_key, COUNT ( * ) aantal, MAX (fin_factuur_nr) fin_factuur_nr,
|
||
SUM (fin_factuur_totaal + fin_factuur_totaal_btw) tot_incl_btw
|
||
FROM fin_factuur
|
||
WHERE mld_opdr_key IS NOT NULL
|
||
AND fin_factuur_statuses_key IN (6, 7)
|
||
AND (fin_factuur_totaal + fin_factuur_totaal_btw) >= 0
|
||
GROUP BY mld_opdr_key) debet
|
||
ON x.mld_opdr_key = debet.mld_opdr_key
|
||
LEFT JOIN ( SELECT mld_opdr_key, COUNT ( * ) aantal, MAX (fin_factuur_nr) fin_factuur_nr,
|
||
SUM (fin_factuur_totaal + fin_factuur_totaal_btw) tot_incl_btw
|
||
FROM fin_factuur
|
||
WHERE mld_opdr_key IS NOT NULL
|
||
AND fin_factuur_statuses_key IN (6, 7)
|
||
AND (fin_factuur_totaal + fin_factuur_totaal_btw) < 0
|
||
GROUP BY mld_opdr_key) credit
|
||
ON x.mld_opdr_key = credit.mld_opdr_key
|
||
WHERE ROUND (COALESCE (x.mld_opdr_kosten, 0), 2) != ROUND (COALESCE (debet.tot_incl_btw, 0) + COALESCE (credit.tot_incl_btw, 0), 2);
|
||
|
||
--CREATE OR REPLACE VIEW vlkc_v_rap_cnt_verantw_be
|
||
|
||
-- VLKC#40302: Export van import-bestand met de kolommen:
|
||
-- '%Personeelsnummer;Loginnaam;Achternaam;Tussenvoegsel;Voorletters;Voornaam;Afdelingscode;Functie;Email;Telefoonnr;Mobiel;Stamplaats%');
|
||
/* Formatted on 31-5-2017 11:35:05 (QP5 v5.136.908.31019) */
|
||
CREATE OR REPLACE VIEW vlkc_v_rap_import_prs
|
||
(
|
||
personeelsnummer,
|
||
loginnaam,
|
||
achternaam,
|
||
tussenvoegsel,
|
||
voorletters,
|
||
voornaam,
|
||
afdelingscode,
|
||
functie,
|
||
email,
|
||
telefoonnr,
|
||
mobiel,
|
||
stamplaats
|
||
)
|
||
AS
|
||
SELECT p.prs_perslid_nr,
|
||
p.prs_perslid_oslogin,
|
||
p.prs_perslid_naam,
|
||
p.prs_perslid_tussenvoegsel,
|
||
p.prs_perslid_voorletters,
|
||
p.prs_perslid_voornaam,
|
||
a.prs_afdeling_naam,
|
||
sp.prs_srtperslid_omschrijving,
|
||
p.prs_perslid_email,
|
||
p.prs_perslid_telefoonnr,
|
||
p.prs_perslid_mobiel,
|
||
NULL standplaats
|
||
FROM prs_v_aanwezigperslid p,
|
||
prs_v_afdeling_boom ab,
|
||
prs_afdeling a,
|
||
prs_kostenplaats kp,
|
||
prs_srtperslid sp
|
||
WHERE p.prs_perslid_nr IS NOT NULL
|
||
AND p.prs_afdeling_key = ab.prs_afdeling_key
|
||
AND ab.prs_afdeling_key = a.prs_afdeling_key
|
||
AND a.prs_kostenplaats_key = kp.prs_kostenplaats_key
|
||
AND p.prs_srtperslid_key = sp.prs_srtperslid_key;
|
||
|
||
|
||
-- VLKC#60657: Rapportage met RT-objecten die 4 werkdagen "overdue" zijn en
|
||
-- waarvoor het bedrijf *uniek* kan worden bepaald op basis van de
|
||
-- dienst zoals geregistreerd bij de taak.
|
||
CREATE OR REPLACE VIEW vlkc_v_rap_inspectieobjecten
|
||
(
|
||
extra_key, -- Moet zo heten!
|
||
prs_dienst_key,
|
||
alg_locatie_key,
|
||
ins_srtcontrole_key,
|
||
ins_srtcontrole_omschrijving,
|
||
plandatum,
|
||
groep,
|
||
objectsoort,
|
||
bedrijf,
|
||
locatiecode,
|
||
ins_deel_key,
|
||
identificatie,
|
||
beschrijving,
|
||
registratiedatum
|
||
)
|
||
AS
|
||
SELECT bdl.prs_bedrijf_key,
|
||
bdl.prs_dienst_key,
|
||
bdl.alg_locatie_key,
|
||
din.ins_srtcontrole_key,
|
||
din.ins_srtcontrole_omschrijving,
|
||
din.inspectie_next,
|
||
sg.ins_srtgroep_omschrijving,
|
||
sd.ins_srtdeel_omschrijving,
|
||
b.prs_bedrijf_naam,
|
||
l.alg_locatie_code,
|
||
d.ins_deel_key,
|
||
d.ins_deel_omschrijving,
|
||
d.ins_deel_opmerking,
|
||
d.ins_deel_aanmaak
|
||
FROM ins_v_aanwezigdeel d,
|
||
ins_srtdeel sd,
|
||
ins_srtgroep sg,
|
||
(SELECT ins_deel_key, inspectie_next, ins_srtcontrole_key, ins_srtcontrole_omschrijving
|
||
FROM (WITH defined_inspect
|
||
AS (SELECT d.ins_deel_key, d.ins_deel_aanmaak, sc.*
|
||
FROM ins_deel d, ins_srtdeel sd, ins_srtcontrole sc
|
||
WHERE d.ins_srtdeel_key = sd.ins_srtdeel_key
|
||
AND (sc.ins_srtcontrole_niveau = 'S' AND sc.ins_srtinstallatie_key = d.ins_srtdeel_key
|
||
OR sc.ins_srtcontrole_niveau = 'G' AND sc.ins_srtinstallatie_key = sd.ins_srtgroep_key
|
||
OR sc.ins_srtcontrole_niveau = 'D' AND sc.ins_srtinstallatie_key = d.ins_discipline_key))
|
||
SELECT 1 rn, -- NOG GEEN INSPECTIES GEWEEST!
|
||
di.ins_deel_key,
|
||
fac.nextcyclusdate (
|
||
di.ins_deel_aanmaak,
|
||
di.ins_srtcontrole_mode,
|
||
COALESCE (xcp.ins_srtcontroledl_xcp_eenheid, di.ins_srtcontrole_eenheid),
|
||
COALESCE (xcp.ins_srtcontroledl_xcp_periode, di.ins_srtcontrole_periode),
|
||
COALESCE (xcp.ins_srtcontroledl_xcp_bits, di.ins_srtcontrole_bits),
|
||
1)
|
||
inspectie_next,
|
||
di.ins_srtcontrole_key,
|
||
di.ins_srtcontrole_omschrijving
|
||
FROM defined_inspect di, ins_srtcontroledl_xcp xcp
|
||
WHERE (di.ins_deel_key, di.ins_srtcontrole_key) NOT IN
|
||
(SELECT ins_deel_key, ins_srtcontrole_key
|
||
FROM ins_deelsrtcontrole
|
||
WHERE ins_deelsrtcontrole_status IN (5, 6))
|
||
AND di.ins_deel_key = xcp.ins_deel_key(+)
|
||
AND di.ins_srtcontrole_key = xcp.ins_srtcontrole_key(+)
|
||
AND (xcp.ins_srtcontroledl_xcp_eind(+) IS NULL OR xcp.ins_srtcontroledl_xcp_eind(+) > TRUNC (SYSDATE))
|
||
UNION ALL
|
||
SELECT RANK ()
|
||
OVER (
|
||
PARTITION BY di.ins_deel_key, dsc.ins_srtcontrole_key
|
||
ORDER BY dsc.ins_deelsrtcontrole_datum DESC)
|
||
rn,
|
||
di.ins_deel_key,
|
||
fac.nextcyclusdate (
|
||
CASE
|
||
WHEN di.ins_srtcontrole_mode = 0
|
||
THEN dsc.ins_deelsrtcontrole_datum_org
|
||
ELSE dsc.ins_deelsrtcontrole_datum
|
||
END,
|
||
di.ins_srtcontrole_mode,
|
||
COALESCE (xcp.ins_srtcontroledl_xcp_eenheid, di.ins_srtcontrole_eenheid),
|
||
COALESCE (xcp.ins_srtcontroledl_xcp_periode, di.ins_srtcontrole_periode),
|
||
COALESCE (xcp.ins_srtcontroledl_xcp_bits, di.ins_srtcontrole_bits),
|
||
1)
|
||
inspectie_next,
|
||
di.ins_srtcontrole_key,
|
||
di.ins_srtcontrole_omschrijving
|
||
FROM ins_deelsrtcontrole dsc, defined_inspect di, ins_srtcontroledl_xcp xcp
|
||
WHERE dsc.ins_deelsrtcontrole_status IN (5, 6)
|
||
AND di.ins_deel_key = dsc.ins_deel_key
|
||
AND di.ins_srtcontrole_key = dsc.ins_srtcontrole_key
|
||
AND di.ins_deel_key = xcp.ins_deel_key(+)
|
||
AND di.ins_srtcontrole_key = xcp.ins_srtcontrole_key(+)
|
||
AND (xcp.ins_srtcontroledl_xcp_eind(+) IS NULL OR xcp.ins_srtcontroledl_xcp_eind(+) > TRUNC (SYSDATE))
|
||
ORDER BY inspectie_next)
|
||
WHERE rn = 1) din,
|
||
ins_srtcontrole sc,
|
||
( SELECT prs_dienst_key, alg_locatie_key, MIN (prs_bedrijf_key) prs_bedrijf_key, COUNT (DISTINCT prs_bedrijf_key) aantal
|
||
FROM (SELECT prs_bedrijf_key, prs_dienst_key, alg_locatie_key
|
||
FROM prs_bedrijfdienstlocatie
|
||
WHERE alg_locatie_key IS NOT NULL
|
||
UNION ALL
|
||
SELECT bdl.prs_bedrijf_key, bdl.prs_dienst_key, g.alg_locatie_key
|
||
FROM prs_bedrijfdienstlocatie bdl, alg_gebouw g
|
||
WHERE bdl.alg_gebouw_key = g.alg_gebouw_key
|
||
UNION ALL
|
||
SELECT bdl.prs_bedrijf_key, bdl.prs_dienst_key, l.alg_locatie_key
|
||
FROM prs_bedrijfdienstlocatie bdl, alg_locatie l
|
||
WHERE bdl.alg_locatie_key IS NULL AND bdl.alg_gebouw_key IS NULL)
|
||
GROUP BY prs_dienst_key, alg_locatie_key) bdl,
|
||
alg_locatie l,
|
||
prs_bedrijf b
|
||
WHERE d.ins_deel_module = 'INS'
|
||
AND d.ins_deel_parent_key IS NULL
|
||
AND (d.ins_deel_vervaldatum IS NULL OR FAC.count_work_days (d.ins_deel_vervaldatum, SYSDATE) > 4) -- Niet vervallen of pas na volgende inspectie!
|
||
AND d.ins_srtdeel_key = sd.ins_srtdeel_key
|
||
AND sd.ins_srtgroep_key = sg.ins_srtgroep_key
|
||
AND d.ins_deel_key = din.ins_deel_key
|
||
AND din.ins_srtcontrole_key = sc.ins_srtcontrole_key
|
||
AND sc.prs_dienst_key = bdl.prs_dienst_key
|
||
AND bdl.alg_locatie_key = d.ins_alg_locatie_key
|
||
AND d.ins_alg_locatie_key = l.alg_locatie_key
|
||
AND bdl.prs_bedrijf_key = b.prs_bedrijf_key
|
||
AND bdl.aantal = 1 -- *unieke* bedrijf-dienst-locatie voor inspectie
|
||
AND FAC.count_work_days (din.inspectie_next, SYSDATE) = 4
|
||
AND TO_CHAR (SYSDATE, 'd') BETWEEN '2' AND '6';
|
||
|
||
-- Dummy export NACHTWERK!
|
||
-- VLKC#59969: Per december 2019 automatisch afmelden/verwerken reserveringen.
|
||
CREATE OR REPLACE PROCEDURE vlkc_select_nachtwerk (p_applname IN VARCHAR2,
|
||
p_applrun IN VARCHAR2)
|
||
AS
|
||
-- Cursor loopt over alle bestelopdracht-items met status 'In bestelling';
|
||
-- deze worden verondersteld te zijn geleverd na 'leverdagen'+'notidagen'!
|
||
CURSOR cboi
|
||
IS
|
||
SELECT DISTINCT bo.bes_bestelopdr_key
|
||
FROM bes_bestelopdr bo,
|
||
bes_bestelopdr_item boi,
|
||
bes_bestelling_item bi,
|
||
bes_bestelling b,
|
||
bes_srtdeel sd,
|
||
bes_srtgroep sg,
|
||
bes_disc_params bdp
|
||
WHERE bo.bes_bestelopdr_status = 4 -- In bestelling
|
||
AND bo.bes_bestelopdr_key = boi.bes_bestelopdr_key
|
||
AND boi.bes_bestelopdr_item_key = bi.bes_bestelopdr_item_key
|
||
AND bi.bes_bestelling_key = b.bes_bestelling_key
|
||
AND bi.bes_srtdeel_key = sd.bes_srtdeel_key
|
||
AND sd.bes_srtgroep_key = sg.bes_srtgroep_key
|
||
--AND sg.ins_discipline_key = -1
|
||
AND sg.ins_discipline_key = bdp.bes_ins_discipline_key
|
||
AND bdp.bes_disc_params_noti_dagen IS NOT NULL
|
||
AND (b.bes_bestelling_datum IS NULL OR fac.datumtijdplusuitvoertijd (b.bes_bestelling_leverdatum, bdp.bes_disc_params_noti_dagen, 'DAGEN') < SYSDATE)
|
||
ORDER BY 1;
|
||
|
||
-- Cursor loopt over alle bestelling-items met status 'Besteld' waarvan
|
||
-- de bijbehorende bestelopdracht-items zijn geleverd; deze worden dan ook
|
||
-- gesloten!
|
||
CURSOR cbi
|
||
IS
|
||
SELECT DISTINCT
|
||
'[' || TO_CHAR (b.bes_bestelling_key) || '|' || TO_CHAR (ud.fac_usrdata_key) || '] ' aanduiding,
|
||
b.bes_bestelling_key, ud.fac_usrdata_key, b.prs_perslid_key_voor
|
||
FROM bes_bestelling b,
|
||
bes_bestelling_item bi,
|
||
bes_bestelopdr_item boi,
|
||
bes_srtdeel sd,
|
||
bes_srtgroep sg,
|
||
(SELECT *
|
||
FROM fac_v_aanwezigusrdata
|
||
WHERE fac_usrtab_key = 481) ud -- BESOTV catalogi
|
||
WHERE b.bes_bestelling_status = 5 -- Besteld
|
||
AND b.bes_bestelling_key = bi.bes_bestelling_key
|
||
--AND bi.bes_bestelling_item_aantal != COALESCE (bi.bes_bestelling_item_aantalontv, 0)
|
||
AND bi.bes_bestelopdr_item_key = boi.bes_bestelopdr_item_key
|
||
AND boi.bes_bestelopdr_item_aantal = boi.bes_bestelopdr_item_aantalontv
|
||
AND bi.bes_srtdeel_key = sd.bes_srtdeel_key(+)
|
||
AND sd.bes_srtgroep_key = sg.bes_srtgroep_key(+)
|
||
AND sg.ins_discipline_key = fac.safe_to_number (ud.fac_usrdata_code(+))
|
||
ORDER BY 1;
|
||
/*
|
||
-- VLKC#60069:
|
||
-- Cursor loopt over alle BESOTV-tracking in de voorgaande 24 uur waarvan
|
||
-- de bijbehorende catalogus voorkomt in de Eigen tabel met key=481; voor
|
||
-- deze bestellingen wordt een CUST03-noti verstuurd!
|
||
CURSOR ccust03
|
||
IS
|
||
SELECT DISTINCT
|
||
'[' || TO_CHAR (b.bes_bestelling_key) || '|' || TO_CHAR (ud.fac_usrdata_key) || '] ' aanduiding,
|
||
b.bes_bestelling_key, ud.fac_usrdata_key, b.prs_perslid_key_voor
|
||
FROM fac_tracking t,
|
||
bes_bestelling b,
|
||
bes_bestelling_item bi,
|
||
bes_srtdeel sd,
|
||
bes_srtgroep sg,
|
||
(SELECT *
|
||
FROM fac_v_aanwezigusrdata
|
||
WHERE fac_usrtab_key = 481) ud -- BESOTV catalogi
|
||
WHERE t.fac_srtnotificatiecode = 8 -- BESOTV
|
||
AND t.fac_tracking_datum > TRUNC (SYSDATE) + (6 / 24)
|
||
AND t.fac_tracking_refkey = b.bes_bestelling_key
|
||
AND b.bes_bestelling_status = 6 -- Geleverd
|
||
AND b.bes_bestelling_key = bi.bes_bestelling_key
|
||
AND bi.bes_srtdeel_key = sd.bes_srtdeel_key
|
||
AND sd.bes_srtgroep_key = sg.bes_srtgroep_key
|
||
AND sg.ins_discipline_key = fac.safe_to_number (ud.fac_usrdata_code);
|
||
*/
|
||
-- Afmelden/verwerken reserveringen (in juiste volgorde)!
|
||
-- VLKC#61687: Per april 2020 niet meer verwerken (alleen nog afmelden)!
|
||
CURSOR cres
|
||
IS
|
||
SELECT '[' || TO_CHAR (rra.res_rsv_ruimte_key) || '|' || TO_CHAR (rra.res_rsv_artikel_key) || '] ' aanduiding,
|
||
rra.res_rsv_ruimte_key,
|
||
rra.res_rsv_artikel_key,
|
||
NULL res_rsv_deel_key,
|
||
rra.res_status_bo_key,
|
||
rra.res_artikel_key,
|
||
TO_CHAR (rra.res_rsv_artikel_levering, 'yyyy') jaar
|
||
FROM res_v_aanwezigrsv_artikel rra
|
||
WHERE rra.res_status_bo_key = 2 --!= 6
|
||
--AND rra.res_rsv_artikel_levering > TRUNC (ADD_MONTHS (SYSDATE, -12), 'yyyy')
|
||
AND rra.res_rsv_artikel_levering < TRUNC (SYSDATE, 'mm')
|
||
AND rra.res_rsv_artikel_dirtlevel = 0
|
||
UNION ALL
|
||
SELECT '[' || TO_CHAR (rrd.res_rsv_ruimte_key) || '|' || TO_CHAR (rrd.res_rsv_deel_key) || '] ' aanduiding,
|
||
rrd.res_rsv_ruimte_key,
|
||
NULL res_rsv_artikel_key,
|
||
rrd.res_rsv_deel_key,
|
||
rrd.res_status_bo_key,
|
||
NULL res_artikel_key,
|
||
TO_CHAR (rrd.res_rsv_deel_tot, 'yyyy') jaar
|
||
FROM res_v_aanwezigrsv_deel rrd
|
||
WHERE rrd.res_status_bo_key = 2 --!= 6
|
||
--AND rrd.res_rsv_deel_van > TRUNC (ADD_MONTHS (SYSDATE, -12), 'yyyy')
|
||
AND rrd.res_rsv_deel_tot < TRUNC (SYSDATE, 'mm')
|
||
AND rrd.res_rsv_deel_dirtlevel = 0
|
||
AND rrd.res_rsv_ruimte_key IS NOT NULL -- Geen parkeerplaatsen bij niet reservering-gebonden afspraken?
|
||
UNION ALL
|
||
SELECT '[' || TO_CHAR (rrr.res_rsv_ruimte_key) || '] ' aanduiding,
|
||
rrr.res_rsv_ruimte_key,
|
||
NULL res_rsv_artdeel_key,
|
||
NULL res_rsv_deel_key,
|
||
rrr.res_status_bo_key,
|
||
NULL res_artikel_key,
|
||
TO_CHAR (rrr.res_rsv_ruimte_tot, 'yyyy') jaar
|
||
FROM res_v_aanwezigrsv_ruimte rrr
|
||
WHERE rrr.res_status_bo_key = 2 --!= 6/Dit sluit "roomservice" al uit?
|
||
--AND rrr.res_rsv_ruimte_van > TRUNC (ADD_MONTHS (SYSDATE, -12), 'yyyy')
|
||
AND rrr.res_rsv_ruimte_tot < TRUNC (SYSDATE, 'mm')
|
||
AND rrr.res_rsv_ruimte_dirtlevel = 0
|
||
AND rrr.res_ruimte_opstel_key IS NOT NULL -- Geen "roomservice"
|
||
ORDER BY 2, 3;
|
||
|
||
-- VLKC#60657: Cursor loopt over rapportage met RT-objecten die 4 werkdagen
|
||
-- "overdue" zijn; hiervoor wordt een bundelnotificatie
|
||
-- verstuurd via het Noti-kanaal (en anders het Geen/Overige
|
||
-- opdrachten-kanaal) van het *uniek* bepaalde bedrijf op basis
|
||
-- van de dienst zoals geregistreerd bij de taak.
|
||
/*
|
||
CURSOR ccust02
|
||
IS
|
||
SELECT DISTINCT
|
||
--'[' || TO_CHAR (v.bedrijf) || '|' || TO_CHAR (v.locatiecode) || '|' || v.ins_srtcontrole_omschrijving || '] ' aanduiding,
|
||
--sn.fac_srtnotificatie_key, v.extra_key, v.alg_locatie_key, v.ins_srtcontrole_key, v.ins_srtcontrole_omschrijving, v.bedrijf,
|
||
'[' || TO_CHAR (v.extra_key) || '] ' aanduiding,
|
||
sn.fac_srtnotificatie_key, v.extra_key,
|
||
REPLACE (
|
||
REPLACE (
|
||
sn.fac_srtnotificatie_oms,
|
||
'##SRTDEEL##',
|
||
DECODE (
|
||
v.objectsoort_min,
|
||
v.objectsoort_max, v.objectsoort_min, -- || DECODE (v.aantal, 1, '/' || v.ins_srtcontrole_omschrijving, ''),
|
||
v.objectsoort_min || ', ...')),
|
||
'##AANTAL##',
|
||
v.aantal)
|
||
subject,
|
||
r.fac_usrrap_key,
|
||
TRIM (COALESCE (ba.url1, ba.url2)) receiver
|
||
FROM ( SELECT extra_key, --alg_locatie_key, ins_srtcontrole_key, ins_srtcontrole_omschrijving, bedrijf, locatiecode,
|
||
MIN (objectsoort) objectsoort_min,
|
||
MAX (objectsoort) objectsoort_max,
|
||
COUNT (*) aantal
|
||
FROM vlkc_v_rap_inspectieobjecten
|
||
GROUP BY extra_key) v, --, alg_locatie_key, ins_srtcontrole_key, ins_srtcontrole_omschrijving, bedrijf, locatiecode) v,
|
||
(SELECT x.prs_bedrijf_key, x.alg_locatie_key,
|
||
SUBSTR (ba1.prs_bedrijfadres_url, 8) url1,
|
||
SUBSTR (ba2.prs_bedrijfadres_url, 8) url2
|
||
FROM (SELECT b.prs_bedrijf_key, l.alg_locatie_key
|
||
FROM prs_v_aanwezigbedrijf b, alg_v_aanweziglocatie l
|
||
WHERE 1=1) x --b.prs_bedrijf_uitvoerende = 1) x
|
||
LEFT JOIN (SELECT prs_bedrijf_key, --alg_locatie_key,
|
||
prs_bedrijfadres_url
|
||
FROM prs_bedrijfadres
|
||
WHERE prs_bedrijfadres_type = 'N'
|
||
AND UPPER (prs_bedrijfadres_url) LIKE 'MAILTO:%'
|
||
AND alg_locatie_key IS NOT NULL
|
||
UNION ALL
|
||
SELECT ba.prs_bedrijf_key, --l.alg_locatie_key,
|
||
ba.prs_bedrijfadres_url
|
||
FROM prs_bedrijfadres ba, alg_locatie l
|
||
WHERE ba.prs_bedrijfadres_type = 'N'
|
||
AND UPPER (ba.prs_bedrijfadres_url) LIKE 'MAILTO:%'
|
||
AND ba.alg_locatie_key IS NULL
|
||
AND ba.alg_district_key = l.alg_district_key
|
||
AND NOT EXISTS
|
||
(SELECT 1
|
||
FROM prs_bedrijfadres
|
||
WHERE prs_bedrijfadres_type = 'N'
|
||
AND UPPER (prs_bedrijfadres_url) LIKE 'MAILTO:%'
|
||
AND prs_bedrijf_key = ba.prs_bedrijf_key
|
||
AND alg_locatie_key = l.alg_locatie_key)
|
||
UNION ALL
|
||
SELECT ba.prs_bedrijf_key, --l.alg_locatie_key,
|
||
ba.prs_bedrijfadres_url
|
||
FROM prs_bedrijfadres ba, alg_locatie l
|
||
WHERE ba.prs_bedrijfadres_type = 'N'
|
||
AND UPPER (ba.prs_bedrijfadres_url) LIKE 'MAILTO:%'
|
||
AND ba.alg_locatie_key IS NULL
|
||
AND ba.alg_district_key IS NULL
|
||
AND NOT EXISTS
|
||
(SELECT 1
|
||
FROM prs_bedrijfadres
|
||
WHERE prs_bedrijfadres_type = 'N'
|
||
AND UPPER (prs_bedrijfadres_url) LIKE 'MAILTO:%'
|
||
AND prs_bedrijf_key = ba.prs_bedrijf_key
|
||
AND (alg_locatie_key = l.alg_locatie_key OR alg_district_key = l.alg_district_key))) ba1
|
||
ON x.prs_bedrijf_key = ba1.prs_bedrijf_key --AND x.alg_locatie_key = ba1.alg_locatie_key
|
||
LEFT JOIN (SELECT prs_bedrijf_key, --alg_locatie_key,
|
||
prs_bedrijfadres_url
|
||
FROM prs_bedrijfadres
|
||
WHERE mld_typeopdr_key IS NULL -- Overige opdrachten-kanaal
|
||
AND prs_bedrijfadres_type = 'O'
|
||
AND UPPER (prs_bedrijfadres_url) LIKE 'MAILTO:%'
|
||
AND alg_locatie_key IS NOT NULL
|
||
UNION ALL
|
||
SELECT ba.prs_bedrijf_key, --l.alg_locatie_key,
|
||
ba.prs_bedrijfadres_url
|
||
FROM prs_bedrijfadres ba, alg_locatie l
|
||
WHERE ba.mld_typeopdr_key IS NULL -- Overige opdrachten-kanaal
|
||
AND ba.prs_bedrijfadres_type = 'O'
|
||
AND UPPER (ba.prs_bedrijfadres_url) LIKE 'MAILTO:%'
|
||
AND ba.alg_locatie_key IS NULL
|
||
AND ba.alg_district_key = l.alg_district_key
|
||
AND NOT EXISTS
|
||
(SELECT 1
|
||
FROM prs_bedrijfadres
|
||
WHERE mld_typeopdr_key IS NULL
|
||
AND prs_bedrijfadres_type = 'O'
|
||
AND UPPER (prs_bedrijfadres_url) LIKE 'MAILTO:%'
|
||
AND prs_bedrijf_key = ba.prs_bedrijf_key
|
||
AND alg_locatie_key = l.alg_locatie_key)
|
||
UNION ALL
|
||
SELECT ba.prs_bedrijf_key, --l.alg_locatie_key,
|
||
ba.prs_bedrijfadres_url
|
||
FROM prs_bedrijfadres ba, alg_locatie l
|
||
WHERE ba.mld_typeopdr_key IS NULL -- Overige opdrachten-kanaal
|
||
AND ba.prs_bedrijfadres_type = 'O'
|
||
AND UPPER (ba.prs_bedrijfadres_url) LIKE 'MAILTO:%'
|
||
AND ba.alg_locatie_key IS NULL
|
||
AND ba.alg_district_key IS NULL
|
||
AND NOT EXISTS
|
||
(SELECT 1
|
||
FROM prs_bedrijfadres
|
||
WHERE mld_typeopdr_key IS NULL
|
||
AND prs_bedrijfadres_type = 'O'
|
||
AND UPPER (prs_bedrijfadres_url) LIKE 'MAILTO:%'
|
||
AND prs_bedrijf_key = ba.prs_bedrijf_key
|
||
AND (alg_locatie_key = l.alg_locatie_key OR alg_district_key = l.alg_district_key))) ba2
|
||
ON x.prs_bedrijf_key = ba2.prs_bedrijf_key --AND x.alg_locatie_key = ba2.alg_locatie_key
|
||
WHERE ba1.prs_bedrijfadres_url IS NOT NULL OR ba2.prs_bedrijfadres_url IS NOT NULL) ba,
|
||
fac_usrrap r,
|
||
fac_srtnotificatie sn
|
||
WHERE v.extra_key = ba.prs_bedrijf_key
|
||
AND v.alg_locatie_key = ba.alg_locatie_key
|
||
AND UPPER (r.fac_usrrap_view_name) = 'VLKC_V_RAP_INSPECTIEOBJECTEN'
|
||
AND sn.fac_srtnotificatie_code = 'CUST02';
|
||
*/
|
||
CURSOR ccust02
|
||
IS
|
||
SELECT '[' || TRIM (COALESCE (ba.url1, ba.url2)) || '] ' aanduiding,
|
||
sn.fac_srtnotificatie_key,
|
||
v.extra_key,
|
||
REPLACE (
|
||
REPLACE (
|
||
sn.fac_srtnotificatie_oms,
|
||
'##SRTDEEL##',
|
||
DECODE (
|
||
v.objectsoort_min,
|
||
v.objectsoort_max, v.objectsoort_min,
|
||
v.objectsoort_min || ', ...')),
|
||
'##AANTAL##',
|
||
v.aantal)
|
||
subject,
|
||
r.fac_usrrap_key,
|
||
TRIM (COALESCE (ba.url1, ba.url2)) receiver
|
||
FROM ( SELECT extra_key, MIN (objectsoort) objectsoort_min, MAX (objectsoort) objectsoort_max, COUNT (*) aantal
|
||
FROM vlkc_v_rap_inspectieobjecten
|
||
GROUP BY extra_key) v,
|
||
(SELECT x.prs_bedrijf_key, SUBSTR (ba1.prs_bedrijfadres_url, 8) url1, SUBSTR (ba2.prs_bedrijfadres_url, 8) url2
|
||
FROM (SELECT prs_bedrijf_key
|
||
FROM prs_v_aanwezigbedrijf
|
||
WHERE 1=1) x --b.prs_bedrijf_uitvoerende = 1) x
|
||
LEFT JOIN (SELECT DISTINCT prs_bedrijf_key, prs_bedrijfadres_url
|
||
FROM prs_bedrijfadres
|
||
WHERE prs_bedrijfadres_type = 'N'
|
||
AND UPPER (prs_bedrijfadres_url) LIKE 'MAILTO:%') ba1
|
||
ON x.prs_bedrijf_key = ba1.prs_bedrijf_key
|
||
LEFT JOIN (SELECT DISTINCT prs_bedrijf_key, prs_bedrijfadres_url
|
||
FROM prs_bedrijfadres
|
||
WHERE mld_typeopdr_key IS NULL -- Overige opdrachten-kanaal
|
||
AND prs_bedrijfadres_type = 'O'
|
||
AND UPPER (prs_bedrijfadres_url) LIKE 'MAILTO:%') ba2
|
||
ON x.prs_bedrijf_key = ba2.prs_bedrijf_key
|
||
WHERE ba1.prs_bedrijfadres_url IS NOT NULL OR ba2.prs_bedrijfadres_url IS NOT NULL) ba,
|
||
fac_usrrap r,
|
||
fac_srtnotificatie sn
|
||
WHERE v.extra_key = ba.prs_bedrijf_key
|
||
AND UPPER (r.fac_usrrap_view_name) = 'VLKC_V_RAP_INSPECTIEOBJECTEN'
|
||
AND sn.fac_srtnotificatie_code = 'CUST02'
|
||
ORDER BY 3;
|
||
|
||
v_errormsg VARCHAR2 (1000);
|
||
oracle_err_num NUMBER;
|
||
oracle_err_mes VARCHAR2 (200);
|
||
v_holiday NUMBER (10);
|
||
v_old_rsv_ruimte_key NUMBER (10);
|
||
v_prijs NUMBER (9, 2);
|
||
BEGIN
|
||
v_errormsg := 'Fout leveren bestelopdracht';
|
||
|
||
FOR rec IN cboi
|
||
LOOP
|
||
-- Zeg dat alles geleverd is wat besteld is.
|
||
UPDATE bes_bestelopdr_item
|
||
SET bes_bestelopdr_item_aantalontv = bes_bestelopdr_item_aantal
|
||
WHERE bes_bestelopdr_key = rec.bes_bestelopdr_key;
|
||
|
||
bes.updatebestelopdrstatus (rec.bes_bestelopdr_key, NULL);
|
||
END LOOP;
|
||
|
||
v_errormsg := 'Fout sluiten bestelaanvraag';
|
||
|
||
FOR rec IN cbi
|
||
LOOP
|
||
-- Sluit alle aanvraagregels af die nu geheel geleverd zijn.
|
||
UPDATE bes_bestelling_item
|
||
SET bes_bestelling_item_aantalontv = bes_bestelling_item_aantal
|
||
WHERE bes_bestelling_key = rec.bes_bestelling_key;
|
||
|
||
bes.updatebestellingstatus (rec.bes_bestelling_key, NULL);
|
||
|
||
-- VLKC#60069: CUST03-noti!
|
||
IF rec.fac_usrdata_key IS NOT NULL
|
||
THEN
|
||
BEGIN
|
||
v_errormsg := 'Fout toevoegen CUST03-email';
|
||
fac.putnotificationsrtprio (NULL, -- pfrom
|
||
rec.prs_perslid_key_voor, -- pto
|
||
'CUST03', -- pcode
|
||
rec.bes_bestelling_key, -- pref
|
||
NULL, -- poptmessage
|
||
NULL, -- poptstatus
|
||
NULL, -- poptemail
|
||
NULL, -- poptmobile
|
||
NULL, -- pxref
|
||
NULL, -- pprio
|
||
NULL, -- psender
|
||
NULL -- pattach
|
||
);
|
||
|
||
v_errormsg := 'Fout toevoegen CUST03-track';
|
||
fac.trackaction ('CUST03', rec.bes_bestelling_key, NULL, NULL, NULL);
|
||
EXCEPTION
|
||
WHEN OTHERS
|
||
THEN
|
||
oracle_err_num := SQLCODE;
|
||
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
|
||
v_errormsg := v_errormsg || ' ORACLE (error ' || oracle_err_num || '/' || oracle_err_mes || ')';
|
||
fac.writelog (p_applname, 'E', rec.aanduiding || v_errormsg, 'CUST03-noti');
|
||
COMMIT;
|
||
END;
|
||
END IF;
|
||
END LOOP;
|
||
COMMIT;
|
||
/*
|
||
-- VLKC#60069: CUST03-noti!
|
||
FOR rec IN ccust03
|
||
LOOP
|
||
BEGIN
|
||
v_errormsg := 'Fout toevoegen CUST03-email';
|
||
fac.putnotificationsrtprio (NULL, -- pfrom
|
||
rec.prs_perslid_key_voor, -- pto
|
||
'CUST03', -- pcode
|
||
rec.bes_bestelling_key, -- pref
|
||
NULL, -- poptmessage
|
||
NULL, -- poptstatus
|
||
NULL, -- poptemail
|
||
NULL, -- poptmobile
|
||
NULL, -- pxref
|
||
NULL, -- pprio
|
||
NULL, -- psender
|
||
NULL -- pattach
|
||
);
|
||
|
||
v_errormsg := 'Fout toevoegen CUST03-track';
|
||
fac.trackaction ('CUST03', rec.bes_bestelling_key, NULL, NULL, NULL);
|
||
EXCEPTION
|
||
WHEN OTHERS
|
||
THEN
|
||
oracle_err_num := SQLCODE;
|
||
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
|
||
v_errormsg := v_errormsg || ' ORACLE (error ' || oracle_err_num || '/' || oracle_err_mes || ')';
|
||
fac.writelog (p_applname, 'E', rec.aanduiding || v_errormsg, 'CUST03-noti');
|
||
COMMIT;
|
||
END;
|
||
END LOOP;
|
||
COMMIT;
|
||
*/
|
||
SELECT COUNT ( * )
|
||
INTO v_holiday
|
||
FROM mld_vrije_dagen
|
||
WHERE TRUNC (mld_vrije_dagen_datum) = TRUNC (SYSDATE - 1);
|
||
|
||
-- LET OP: De NACHTWERK-export draait dagelijks na 0:00 (begin van dag).
|
||
-- De RES-afmelding/verwerking wordt maandelijks alleen in nacht na 1e
|
||
-- werkdag van de maand uitgevoerd.
|
||
-- VLKC#61687: Per april 2020 niet meer verwerken (alleen nog afmelden)!
|
||
-- IF 1e werkdag van maand (<28>n<EFBFBD>geen weekend <20>n<EFBFBD>geen vrije dag)!
|
||
IF (FAC.count_work_days (TRUNC (SYSDATE, 'mm') - 1, SYSDATE - 1) = 1 -- Nacht na 1e werkdag!
|
||
AND TO_CHAR (SYSDATE - 1, 'd') BETWEEN '2' AND '6'
|
||
AND v_holiday = 0)
|
||
THEN
|
||
v_old_rsv_ruimte_key := -1;
|
||
FOR rec IN cres
|
||
LOOP
|
||
BEGIN
|
||
IF v_old_rsv_ruimte_key = -1
|
||
THEN
|
||
v_old_rsv_ruimte_key := rec.res_rsv_ruimte_key;
|
||
ELSIF rec.res_rsv_ruimte_key != v_old_rsv_ruimte_key
|
||
THEN
|
||
COMMIT; -- Per res_rsv_ruimte_key 1x COMMIT
|
||
v_old_rsv_ruimte_key := rec.res_rsv_ruimte_key;
|
||
END IF;
|
||
|
||
IF rec.res_rsv_artikel_key IS NOT NULL
|
||
THEN -- Verbruiksartikel-regel
|
||
IF rec.res_status_bo_key = 2 -- Per VLKC#61687 altijd zo!
|
||
THEN
|
||
v_errormsg := 'Fout bepalen res_rsv_artikel_prijs';
|
||
SELECT res.getartikelprijs (rec.res_rsv_artikel_key)
|
||
INTO v_prijs
|
||
FROM DUAL;
|
||
|
||
v_errormsg := 'Fout afmelden res_rsv_artikel';
|
||
UPDATE res_rsv_artikel
|
||
SET res_status_bo_key = 5,
|
||
res_rsv_artikel_prijs = v_prijs,
|
||
res_rsv_artikel_inkoopprijs =
|
||
(SELECT res_artikel_inkoopprijs
|
||
FROM res_artikel
|
||
WHERE res_artikel_key = rec.res_artikel_key),
|
||
res_rsv_artikel_btw =
|
||
(SELECT res_artikel_btw
|
||
FROM res_artikel
|
||
WHERE res_artikel_key = rec.res_artikel_key)
|
||
WHERE res_rsv_artikel_key = rec.res_rsv_artikel_key;
|
||
|
||
v_errormsg := 'Fout tracken afmelding';
|
||
fac.trackaction ('RESAFM', rec.res_rsv_ruimte_key, NULL, NULL, 'Catering afgemeld');
|
||
END IF;
|
||
/*
|
||
v_errormsg := 'Fout verwerken res_rsv_artikel';
|
||
UPDATE res_rsv_artikel
|
||
SET res_status_bo_key = 6 -- AV (en zet ook Verwerkt-date)
|
||
WHERE res_rsv_artikel_key = rec.res_rsv_artikel_key;
|
||
|
||
v_errormsg := 'Fout tracken verwerking';
|
||
fac.trackaction ('RESVER', rec.res_rsv_ruimte_key, NULL, NULL, 'Catering verwerkt');
|
||
*/
|
||
ELSIF rec.res_rsv_deel_key IS NOT NULL
|
||
THEN -- Voorziening-regel
|
||
IF rec.res_status_bo_key = 2 -- Per VLKC#61687 altijd zo!
|
||
THEN
|
||
v_errormsg := 'Fout bepalen res_rsv_artikel_prijs';
|
||
SELECT res.getdeelprijs (rec.res_rsv_deel_key)
|
||
INTO v_prijs
|
||
FROM DUAL;
|
||
|
||
v_errormsg := 'Fout afmelden res_rsv_deel';
|
||
UPDATE res_rsv_deel
|
||
SET res_status_bo_key = 5,
|
||
res_rsv_deel_prijs = v_prijs
|
||
WHERE res_rsv_deel_key = rec.res_rsv_deel_key;
|
||
|
||
v_errormsg := 'Fout tracken afmelding';
|
||
fac.trackaction ('RESAFM', rec.res_rsv_ruimte_key, NULL, NULL, 'Voorziening(en) afgemeld');
|
||
END IF;
|
||
/*
|
||
v_errormsg := 'Fout verwerken res_rsv_deel';
|
||
UPDATE res_rsv_deel
|
||
SET res_status_bo_key = 6 -- AV (en zet ook Verwerkt-date)
|
||
WHERE res_rsv_deel_key = rec.res_rsv_deel_key;
|
||
|
||
v_errormsg := 'Fout tracken verwerking';
|
||
fac.trackaction ('RESVER', rec.res_rsv_ruimte_key, NULL, NULL, 'Voorziening(en) verwerkt');
|
||
*/
|
||
ELSE -- Ruimte-regel
|
||
IF rec.res_status_bo_key = 2 -- Per VLKC#61687 altijd zo!
|
||
THEN
|
||
v_errormsg := 'Fout bepalen res_rsv_ruimte_prijs';
|
||
SELECT res.getruimteprijs (rec.res_rsv_ruimte_key)
|
||
INTO v_prijs
|
||
FROM DUAL;
|
||
|
||
v_errormsg := 'Fout afmelden res_rsv_ruimte';
|
||
UPDATE res_rsv_ruimte
|
||
SET res_status_bo_key = 5,
|
||
res_rsv_ruimte_prijs = v_prijs
|
||
WHERE res_rsv_ruimte_key = rec.res_rsv_ruimte_key;
|
||
|
||
v_errormsg := 'Fout tracken afmelding';
|
||
fac.trackaction ('RESAFM', rec.res_rsv_ruimte_key, NULL, NULL, NULL);
|
||
END IF;
|
||
/*
|
||
v_errormsg := 'Fout verwerken res_rsv_ruimte';
|
||
UPDATE res_rsv_ruimte
|
||
SET res_status_bo_key = 6 -- AV
|
||
WHERE res_rsv_ruimte_key = rec.res_rsv_ruimte_key;
|
||
|
||
v_errormsg := 'Fout tracken verwerking';
|
||
fac.trackaction ('RESVER', rec.res_rsv_ruimte_key, NULL, NULL, NULL);
|
||
*/
|
||
END IF;
|
||
EXCEPTION
|
||
WHEN OTHERS
|
||
THEN
|
||
oracle_err_num := SQLCODE;
|
||
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
|
||
v_errormsg := v_errormsg || ' ORACLE (error ' || oracle_err_num || '/' || oracle_err_mes || ')';
|
||
fac.writelog (p_applname, 'W', rec.aanduiding || v_errormsg, 'Afmelden/verwerken RES');
|
||
COMMIT;
|
||
END;
|
||
END LOOP;
|
||
END IF;
|
||
COMMIT;
|
||
|
||
-- VLKC#60657: CUST02-noti!
|
||
FOR rec IN ccust02
|
||
LOOP
|
||
BEGIN
|
||
v_errormsg := 'Fout toevoegen CUST02-email';
|
||
fac.putnotificationsrtprio (NULL, -- pfrom
|
||
NULL, -- pto
|
||
'CUST02', -- pcode
|
||
rec.fac_usrrap_key, -- pref
|
||
rec.subject, -- poptmessage
|
||
NULL, -- poptstatus
|
||
rec.receiver, -- poptemail
|
||
NULL, -- poptmobile
|
||
rec.extra_key, -- pxref
|
||
2, -- pprio
|
||
NULL, -- psender
|
||
NULL -- pattach
|
||
);
|
||
|
||
FOR rcd
|
||
IN ( SELECT ins_deel_key, bedrijf, ins_srtcontrole_omschrijving
|
||
FROM vlkc_v_rap_inspectieobjecten
|
||
WHERE extra_key = rec.extra_key
|
||
ORDER BY 1)
|
||
LOOP
|
||
BEGIN
|
||
v_errormsg := 'Fout toevoegen CUST02-track';
|
||
fac.trackaction ('INSUPD', rcd.ins_deel_key, NULL, NULL, 'CUST02-noti naar ' || rcd.bedrijf || ' [' || rcd.ins_srtcontrole_omschrijving || ']');
|
||
END;
|
||
END LOOP;
|
||
|
||
COMMIT;
|
||
EXCEPTION
|
||
WHEN OTHERS
|
||
THEN
|
||
oracle_err_num := SQLCODE;
|
||
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
|
||
v_errormsg := v_errormsg || ' ORACLE (error ' || oracle_err_num || '/' || oracle_err_mes || ')';
|
||
fac.writelog (p_applname, 'E', rec.aanduiding || v_errormsg, 'CUST02-noti');
|
||
COMMIT;
|
||
END;
|
||
END LOOP;
|
||
COMMIT;
|
||
EXCEPTION
|
||
WHEN OTHERS
|
||
THEN
|
||
oracle_err_num := SQLCODE;
|
||
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
|
||
v_errormsg := v_errormsg || ' ORACLE (error ' || oracle_err_num || '/' || oracle_err_mes || ')';
|
||
fac.writelog (p_applname, 'E', 'Proces NACHTWERK afgebroken!', v_errormsg);
|
||
END vlkc_select_nachtwerk;
|
||
/
|
||
|
||
|
||
-- view tbv kenmerkdomein
|
||
CREATE OR REPLACE VIEW vlkc_v_alg_gebouw
|
||
(
|
||
alg_gebouw_key,
|
||
alg_gebouw_omschrijving,
|
||
alg_gebouw_verw
|
||
)
|
||
AS
|
||
SELECT alg_gebouw_key,
|
||
alg_gebouw_omschrijving,
|
||
COALESCE (alg_gebouw_verwijder, alg_gebouw_vervaldatum)
|
||
alg_gebouw_verw
|
||
FROM alg_gebouw;
|
||
|
||
-- view tbv kenmerkdomein
|
||
CREATE OR REPLACE VIEW vlkc_v_prs_dienst
|
||
(
|
||
prs_dienst_key,
|
||
prs_dienst_omschrijving
|
||
)
|
||
AS
|
||
SELECT prs_dienst_key, prs_dienst_omschrijving FROM prs_dienst;
|
||
|
||
CREATE OR REPLACE VIEW vlkc_v_rap_keyvsfe
|
||
(
|
||
soort_gebruiker,
|
||
naam,
|
||
loginnaam,
|
||
laatste_login
|
||
)
|
||
AS
|
||
SELECT DECODE (key_user, 1, 'KEY', 'FE'),
|
||
pf.prs_perslid_naam_full,
|
||
oslogin,
|
||
prs_perslid_login
|
||
FROM (SELECT *
|
||
FROM (SELECT p.prs_perslid_key prs_key,
|
||
COALESCE (p.prs_perslid_oslogin,
|
||
p.prs_perslid_oslogin2)
|
||
oslogin,
|
||
1 login, -- 1=user heeft login + groep + rechten
|
||
DECODE (
|
||
SIGN(TRUNC(COALESCE (p.prs_perslid_login + 92,
|
||
SYSDATE - 1))
|
||
- TRUNC (SYSDATE)),
|
||
-1,
|
||
0,
|
||
1) -- 1=user heeft laatste 92 dagen ingelogd
|
||
recent_login
|
||
FROM prs_v_aanwezigperslid p
|
||
WHERE EXISTS -- op basis van login + groep + rechten
|
||
(SELECT 1
|
||
FROM fac_v_webgebruiker gg
|
||
WHERE gg.prs_perslid_key = p.prs_perslid_key)
|
||
AND NOT EXISTS -- FSN#36597: WEB_FACFAC-users niet meetellen!
|
||
(SELECT 1
|
||
FROM fac_v_webgebruiker gg, fac_functie f
|
||
WHERE gg.prs_perslid_key =
|
||
p.prs_perslid_key
|
||
AND gg.fac_functie_key =
|
||
f.fac_functie_key
|
||
AND fac_functie_code = 'WEB_FACFAC')
|
||
UNION ALL -- FSN#24029: Soms ook personen zonder login meetellen!
|
||
SELECT p.prs_perslid_key,
|
||
NULL oslogin,
|
||
1 login, -- 1=user telt mee, want allow_for_others!
|
||
0 recent_login -- geen login, dus nooit recent ingelogd
|
||
FROM prs_v_aanwezigperslid p
|
||
WHERE COALESCE (p.prs_perslid_oslogin,
|
||
p.prs_perslid_oslogin2) IS NULL
|
||
AND (fac.getsetting ('mld_allow_for_others') = 1
|
||
OR EXISTS
|
||
(SELECT 1
|
||
FROM bes_disc_params dp
|
||
WHERE dp.bes_disc_params_for_others = 1))
|
||
UNION ALL -- FSN#27315: En ook eventuele "sensorusers" meetellen!
|
||
SELECT NULL prs_perslid_key,
|
||
NULL oslogin,
|
||
COUNT ( * ) login, -- elke sensoruser telt mee als FE!
|
||
1 recent_login -- recent actief dus tellen als recent
|
||
FROM ins_v_aanwezigdeel d
|
||
WHERE ins_deel_statedate > TRUNC (SYSDATE - 30)) x
|
||
LEFT JOIN -- 1=user heeft rechten op key-codes=notFE-codes
|
||
(SELECT DISTINCT fclt_f_login, 1 key_user
|
||
FROM fac_v_rap_groeprechten gr, fac_functie f
|
||
WHERE gr.fclt_f_funcode = f.fac_functie_code
|
||
AND f.fac_functie_groep IN (1, 2)) a
|
||
ON x.oslogin = a.fclt_f_login
|
||
LEFT JOIN -- FSN#30404: 1=user is cross-domain (xd) user
|
||
(SELECT p.prs_perslid_key, 1 xd_user
|
||
FROM prs_v_aanwezigperslid p,
|
||
prs_v_afdeling_boom ab
|
||
WHERE p.prs_afdeling_key = ab.prs_afdeling_key
|
||
AND p.prs_perslid_apikey IS NOT NULL
|
||
AND ab.prs_bedrijf_key =
|
||
fac.safe_to_number(fac.getsetting('xd_primary_bedrijfkey')))
|
||
b
|
||
ON x.prs_key = b.prs_perslid_key) st,
|
||
prs_perslid p,
|
||
prs_v_perslid_fullnames pf
|
||
WHERE login = 1
|
||
AND p.prs_perslid_key = st.prs_key
|
||
AND pf.prs_perslid_key = p.prs_perslid_key;
|
||
|
||
CREATE OR REPLACE VIEW vlkc_v_rap_cnttrack
|
||
(
|
||
wijzig_datum,
|
||
wijziging,
|
||
gewijzigd_door,
|
||
cnt_contract_key,
|
||
contract_nummer,
|
||
contract_nummer_extern,
|
||
contract_versie,
|
||
contractsoort,
|
||
omschrijving,
|
||
ingangsdatum,
|
||
einddatum,
|
||
contractbedrag,
|
||
termijnkosten,
|
||
beheerder,
|
||
status,
|
||
bedrijf,
|
||
leveranciernr,
|
||
kostensoort
|
||
)
|
||
AS
|
||
SELECT fac_tracking_datum,
|
||
REPLACE (fac_tracking_oms, 'Contract gewijzigd' || CHR (10), '')
|
||
wijziging,
|
||
pf2.prs_perslid_naam_full gewijzigd_door,
|
||
cnt_contract_key,
|
||
COALESCE (cnt_contract_nummer_intern, TO_CHAR (cnt_contract_key))
|
||
contract_nummer,
|
||
cnt_contract_nummer,
|
||
cnt_contract_versie,
|
||
cd.ins_discipline_omschrijving,
|
||
cnt_contract_omschrijving,
|
||
cnt_contract_looptijd_van,
|
||
cnt_contract_looptijd_tot,
|
||
cnt_contract_kosten,
|
||
cnt_contract_termijnkosten,
|
||
pf.prs_perslid_naam_full beheerder,
|
||
cnt_contract_status,
|
||
b.prs_bedrijf_naam,
|
||
b.prs_leverancier_nr,
|
||
COALESCE (cks.prs_kostensoort_omschr, sks.prs_kostensoort_omschr)
|
||
kostensoort
|
||
FROM cnt_contract c,
|
||
fac_tracking ft,
|
||
fac_srtnotificatie sn,
|
||
prs_v_perslid_fullnames pf,
|
||
prs_v_perslid_fullnames pf2,
|
||
cnt_discipline cd,
|
||
prs_bedrijf b,
|
||
(SELECT prs_kostensoort_key,
|
||
prs_kostensoort_oms || '-' || prs_kostensoort_opmerking
|
||
prs_kostensoort_omschr
|
||
FROM prs_kostensoort) sks,
|
||
(SELECT prs_kostensoort_key,
|
||
prs_kostensoort_oms || '-' || prs_kostensoort_opmerking
|
||
prs_kostensoort_omschr
|
||
FROM prs_kostensoort) cks
|
||
WHERE cnt_contract_verwijder IS NULL
|
||
AND c.cnt_contract_key = ft.fac_tracking_refkey
|
||
AND ft.fac_srtnotificatie_key = sn.fac_srtnotificatie_key
|
||
AND fac_srtnotificatie_xmlnode = 'contract'
|
||
AND ( UPPER (fac_tracking_oms) LIKE '%TERMIJNBEDRAG%'
|
||
OR UPPER (fac_tracking_oms) LIKE '%INGANGSDATUM%'
|
||
OR UPPER (fac_tracking_oms) LIKE '%EINDDATUM%')
|
||
AND pf.prs_perslid_key = prs_perslid_key_beh
|
||
AND ft.prs_perslid_key = pf2.prs_perslid_key(+)
|
||
AND cd.ins_discipline_key = c.ins_discipline_key
|
||
AND b.prs_bedrijf_key(+) = cnt_prs_bedrijf_key
|
||
AND cd.prs_kostensoort_key = sks.prs_kostensoort_key(+)
|
||
AND c.prs_kostensoort_key = cks.prs_kostensoort_key(+);
|
||
|
||
-- VLKC#54894: Rapportage tbv. doorbelasting parkeerpassen!
|
||
CREATE OR REPLACE VIEW vlkc_v_rap_bez_parkeerpas
|
||
(
|
||
afspraakmaand,
|
||
afspraakdatum,
|
||
afspraakdatum_van,
|
||
afspraakdatum_tot,
|
||
afspraaknr, -- Niet gevraagd
|
||
parkeerpasnummer, -- 23-cijferig
|
||
contactpersoon, -- Niet gevraagd
|
||
gastheer, -- Niet gevraagd
|
||
bezoeker,
|
||
opmerking, -- Niet gevraagd
|
||
kostenplaats,
|
||
kostenplaats_bezoeker,
|
||
kostenplaats_gastheer,
|
||
locatie,
|
||
bez_afspraak_key
|
||
)
|
||
AS
|
||
SELECT TO_CHAR (x.bez_afspraak_datum, 'yyyy-mm') maand,
|
||
x.bez_afspraak_datum,
|
||
x.bez_afspraak_datum van,
|
||
x.bez_afspraak_eind tot,
|
||
TO_CHAR (x.bez_afspraak_key) afspraaknr,
|
||
pp.bez_kenmerkwaarde_waarde parkeerpasnummer,
|
||
x.contactpersoon,
|
||
x.gastheer,
|
||
x.bez_afspraak_naam,
|
||
x.bez_afspraak_opmerking,
|
||
COALESCE (kpb.prs_kostenplaats_nr, kph.prs_kostenplaats_nr) kp,
|
||
kpb.prs_kostenplaats_nr kp_bezoeker,
|
||
DECODE (pb.prs_perslid_key, NULL, kph.prs_kostenplaats_nr, NULL) kp_gastheer,
|
||
l.alg_locatie_omschrijving || ' (' || l.alg_locatie_code || ')',
|
||
x.bez_afspraak_key
|
||
FROM (SELECT a.bez_afspraak_key,
|
||
a.bez_afspraak_datum,
|
||
a.bez_afspraak_eind,
|
||
a.bez_afspraak_opmerking,
|
||
a.bez_afspraak_host_key,
|
||
a.alg_locatie_key,
|
||
b.bez_bezoekers_key,
|
||
b.bez_afspraak_naam,
|
||
b.prs_perslid_key,
|
||
pc.prs_perslid_naam_full contactpersoon,
|
||
ph.prs_perslid_naam_full gastheer
|
||
FROM bez_afspraak a,
|
||
bez_bezoekers b,
|
||
prs_v_perslid_fullnames_all pc,
|
||
prs_v_perslid_fullnames_all ph
|
||
WHERE a.bez_afspraak_key = b.bez_afspraak_key
|
||
AND a.bez_afspraak_contact_key = pc.prs_perslid_key
|
||
AND a.bez_afspraak_host_key = ph.prs_perslid_key) x
|
||
LEFT JOIN prs_perslid pb
|
||
ON x.prs_perslid_key = pb.prs_perslid_key
|
||
LEFT JOIN prs_afdeling ab
|
||
ON pb.prs_afdeling_key = ab.prs_afdeling_key
|
||
LEFT JOIN prs_kostenplaats kpb
|
||
ON ab.prs_kostenplaats_key = kpb.prs_kostenplaats_key
|
||
LEFT JOIN prs_perslid ph
|
||
ON x.bez_afspraak_host_key = ph.prs_perslid_key
|
||
LEFT JOIN prs_afdeling ah
|
||
ON ph.prs_afdeling_key = ah.prs_afdeling_key
|
||
LEFT JOIN prs_kostenplaats kph
|
||
ON ah.prs_kostenplaats_key = kph.prs_kostenplaats_key
|
||
LEFT JOIN bez_kenmerkwaarde pp
|
||
ON x.bez_bezoekers_key = pp.bez_bezoekers_key
|
||
AND pp.bez_kenmerkwaarde_verwijder IS NULL
|
||
AND pp.bez_kenmerk_key = 1040 -- Parkeerpas
|
||
LEFT JOIN alg_locatie l
|
||
ON x.alg_locatie_key = l.alg_locatie_key
|
||
WHERE x.bez_afspraak_datum > TO_DATE ('01-01-2019', 'dd-mm-yyyy')
|
||
AND x.bez_afspraak_datum > TRUNC (ADD_MONTHS (SYSDATE, -12), 'yyyy')
|
||
AND pp.bez_kenmerkwaarde_waarde IS NOT NULL;
|
||
|
||
-- VLKC#63904: Toevoegen voornaam (feitelijk alle naam-velden).
|
||
-- VLKC#80721: Toevoegen afdeling en kostenplaats.
|
||
CREATE OR REPLACE VIEW vlkc_v_rap_groepleden_plus
|
||
(
|
||
prs_perslid_key,
|
||
login,
|
||
gebruiker1,
|
||
gebruiker2,
|
||
voorletters,
|
||
voornaam,
|
||
tussenvoegel,
|
||
naam,
|
||
bedrijf_naam,
|
||
locatie_omschrijving,
|
||
locatie_code,
|
||
gebouw_omschrijving,
|
||
gebouw_code,
|
||
ruimte_aanduiding,
|
||
groep,
|
||
aantal_rechten,
|
||
afdeling,
|
||
--kostenplaats_code,
|
||
--kostenplaats_omschrijving
|
||
kostenplaats
|
||
)
|
||
AS
|
||
SELECT gr.prs_perslid_key,
|
||
p.prs_perslid_oslogin,
|
||
pf.prs_perslid_naam_full,
|
||
pf.prs_perslid_naam_friendly,
|
||
p.prs_perslid_voorletters,
|
||
p.prs_perslid_voornaam,
|
||
p.prs_perslid_tussenvoegsel,
|
||
p.prs_perslid_naam,
|
||
cp.prs_bedrijf_naam,
|
||
wp.alg_locatie_omschrijving,
|
||
wp.alg_locatie_code,
|
||
wp.alg_gebouw_omschrijving,
|
||
wp.alg_gebouw_code,
|
||
wp.alg_ruimte_aanduiding,
|
||
gr.fac_groep_omschrijving,
|
||
gr.aantal_rechten,
|
||
--a.prs_afdeling_naam,
|
||
--a.prs_afdeling_omschrijving,
|
||
a.prs_afdeling_naam || '-' || a.prs_afdeling_omschrijving afdeling,
|
||
--kp.prs_kostenplaats_nr,
|
||
--kp.prs_kostenplaats_omschrijving
|
||
DECODE (kp.prs_kostenplaats_key, NULL, NULL, kp.prs_kostenplaats_nr || '-' || kp.prs_kostenplaats_omschrijving) kostenplaats
|
||
FROM ( SELECT gg.prs_perslid_key,
|
||
g.fac_groep_omschrijving,
|
||
COUNT ( * ) aantal_rechten
|
||
FROM fac_gebruikersgroep gg, fac_groep g, fac_groeprechten gr
|
||
WHERE gg.fac_groep_key = g.fac_groep_key
|
||
AND g.fac_groep_key = gr.fac_groep_key
|
||
GROUP BY gg.prs_perslid_key,
|
||
g.fac_groep_omschrijving) gr,
|
||
(SELECT pw.prs_perslid_key,
|
||
l.alg_locatie_code,
|
||
l.alg_locatie_omschrijving,
|
||
wpg.alg_gebouw_code,
|
||
wpg.alg_gebouw_omschrijving,
|
||
wpg.alg_ruimte_aanduiding
|
||
FROM prs_perslidwerkplek pw, prs_v_werkplek_gegevens wpg, alg_v_aanweziglocatie l
|
||
WHERE pw.prs_werkplek_key = wpg.prs_werkplek_key
|
||
AND wpg.alg_locatie_key = l.alg_locatie_key) wp,
|
||
(SELECT cp.prs_perslid_key,
|
||
b.prs_bedrijf_naam
|
||
FROM prs_contactpersoon cp, prs_v_aanwezigbedrijf b
|
||
WHERE cp.prs_contactpersoon_verwijder IS NULL
|
||
AND cp.prs_perslid_key IS NOT NULL
|
||
AND cp.prs_bedrijf_key = b.prs_bedrijf_key) cp,
|
||
prs_v_aanwezigperslid p,
|
||
prs_afdeling a,
|
||
prs_v_aanwezigkostenplaats kp,
|
||
prs_v_perslid_fullnames pf
|
||
WHERE gr.prs_perslid_key = cp.prs_perslid_key(+)
|
||
AND gr.prs_perslid_key = wp.prs_perslid_key(+)
|
||
AND gr.prs_perslid_key = p.prs_perslid_key
|
||
AND p.prs_afdeling_key = a.prs_afdeling_key
|
||
AND a.prs_kostenplaats_key = kp.prs_kostenplaats_key(+)
|
||
AND p.prs_perslid_key = pf.prs_perslid_key;
|
||
|
||
-- VLKC#56903: Rapportage factuurgoedkeuring
|
||
CREATE OR REPLACE VIEW vlkc_v_rap_factuurgoedkeuring
|
||
(
|
||
factuurdatum,
|
||
fin_factuur_key,
|
||
factuurnummer,
|
||
uitvoerende,
|
||
opdrachtnummer,
|
||
bedrag_excl_btw,
|
||
bedrag_incl_btw,
|
||
status,
|
||
verdeelperiode,
|
||
kostensoort_code,
|
||
kostensoort_oms,
|
||
goedgekeurd,
|
||
verwerkt
|
||
)
|
||
AS
|
||
SELECT f.fin_factuur_datum,
|
||
f.fin_factuur_key,
|
||
f.fin_factuur_nr,
|
||
(SELECT prs_bedrijf_naam
|
||
FROM prs_bedrijf
|
||
WHERE prs_bedrijf_key = COALESCE (o.mld_uitvoerende_keys, c.cnt_prs_bedrijf_key, bo.prs_bedrijf_key))
|
||
uitvoerende,
|
||
COALESCE (
|
||
NVL2 (f.mld_opdr_key, sd.ins_srtdiscipline_prefix || TO_CHAR (o.mld_melding_key) || '/' || o.mld_opdr_bedrijfopdr_volgnr, NULL),
|
||
NVL2 (f.cnt_contract_key, 'C' || c.cnt_contract_nummer_intern || NVL2 (c.cnt_contract_versie, '.' || c.cnt_contract_versie, ''), NULL),
|
||
NVL2 (f.bes_bestelopdr_key, bo.bes_bestelopdr_id, NULL),
|
||
NULL)
|
||
opdrachtnr,
|
||
f.fin_factuur_totaal bedrag_excl_btw,
|
||
f.fin_factuur_totaal + f.fin_factuur_totaal_btw bedrag_incl_btw,
|
||
fs.fin_factuur_statuses_omschr,
|
||
f.fin_factuur_boekmaand,
|
||
ks.prs_kostensoort_oms,
|
||
ks.prs_kostensoort_opmerking,
|
||
fac.gettrackingdate ('FINFOK', f.fin_factuur_key) goedgekeurd,
|
||
fac.gettrackingdate ('FINVER', f.fin_factuur_key) verwerkt
|
||
FROM fin_factuur f,
|
||
mld_opdr o,
|
||
mld_melding m,
|
||
mld_discipline d,
|
||
mld_stdmelding sm,
|
||
ins_srtdiscipline sd,
|
||
cnt_contract c,
|
||
cnt_discipline cd,
|
||
bes_bestelopdr bo,
|
||
fin_factuur_statuses fs,
|
||
prs_kostensoort ks
|
||
WHERE f.fin_factuur_datum > TRUNC (ADD_MONTHS (SYSDATE, -12), 'yyyy')
|
||
AND f.mld_opdr_key = o.mld_opdr_key(+)
|
||
AND o.mld_melding_key = m.mld_melding_key(+)
|
||
AND m.mld_stdmelding_key = sm.mld_stdmelding_key(+)
|
||
AND sm.mld_ins_discipline_key = d.ins_discipline_key(+)
|
||
AND d.ins_srtdiscipline_key = sd.ins_srtdiscipline_key(+)
|
||
AND f.cnt_contract_key = c.cnt_contract_key(+)
|
||
AND c.ins_discipline_key = cd.ins_discipline_key(+)
|
||
AND f.bes_bestelopdr_key = bo.bes_bestelopdr_key(+)
|
||
AND f.fin_factuur_statuses_key = fs.fin_factuur_statuses_key(+)
|
||
AND f.prs_kostensoort_key = ks.prs_kostensoort_key(+);
|
||
|
||
-- VLKC#59966: Rapportage bestelopdrachtkosten (verplichting vs. gefactureerd).
|
||
CREATE OR REPLACE VIEW vlkc_v_rap_bes_kosten
|
||
(
|
||
catalogus,
|
||
leverancier,
|
||
opdrachtid,
|
||
status,
|
||
aangemaakt,
|
||
verzonden,
|
||
geleverd,
|
||
kostensoort_omschr,
|
||
kostensoort_vinkje,
|
||
kostenplaats_code,
|
||
kostenplaats_omschr,
|
||
verplichting,
|
||
verpl_minbtw,
|
||
verpl_maxbtw,
|
||
gefactureerd,
|
||
aantal_fact,
|
||
aanvrager,
|
||
bes_bestelopdr_key
|
||
)
|
||
AS
|
||
SELECT x.ins_discipline_omschrijving,
|
||
x.prs_bedrijf_naam,
|
||
x.bes_bestelopdr_id,
|
||
x.bes_bestelopdrstatuses_omschr status,
|
||
fac.gettrackingdate ('BES2NE', x.bes_bestelopdr_key) aangemaakt,
|
||
fac.gettrackingdate ('BES2SN', x.bes_bestelopdr_key) verzonden,
|
||
fac.gettrackingdate ('BES2AF', x.bes_bestelopdr_key) geleverd,
|
||
x.prs_kostensoort_oms,
|
||
x.prs_kostensoort_btw,
|
||
x.prs_kostenplaats_nr,
|
||
x.prs_kostenplaats_omschrijving,
|
||
-- ROUND (verplichting.kosten, 2) kosten,
|
||
ROUND (x.kosten, 2) kosten,
|
||
x.minbtw,
|
||
x.maxbtw,
|
||
gefactureerd.kosten,
|
||
gefactureerd.aantal,
|
||
(SELECT prs_perslid_naam_full FROM prs_v_perslid_fullnames_all WHERE prs_perslid_key = x.prs_perslid_key) aanvrager,
|
||
x.bes_bestelopdr_key
|
||
FROM ( SELECT bo.bes_bestelopdr_key,
|
||
bd.ins_discipline_omschrijving,
|
||
lev.prs_bedrijf_naam,
|
||
bo.bes_bestelopdr_id,
|
||
bos.bes_bestelopdrstatuses_omschr,
|
||
ks.prs_kostensoort_oms,
|
||
ks.prs_kostensoort_btw,
|
||
kp.prs_kostenplaats_nr,
|
||
kp.prs_kostenplaats_omschrijving,
|
||
b.prs_perslid_key,
|
||
SUM (DECODE (ks.prs_kostensoort_btw,
|
||
1, boi.bes_bestelopdr_item_aantal * boi.bes_bestelopdr_item_prijs,
|
||
boi.bes_bestelopdr_item_aantal * (boi.bes_bestelopdr_item_prijs / 100 * (100 + COALESCE (sd.bes_srtdeel_btw, 0))))) kosten,
|
||
MIN (COALESCE (sd.bes_srtdeel_btw, 0)) minbtw,
|
||
MAX (COALESCE (sd.bes_srtdeel_btw, 0)) maxbtw
|
||
FROM bes_bestelopdr bo,
|
||
bes_bestelopdr_item boi,
|
||
bes_bestelling_item bi,
|
||
bes_bestelling b,
|
||
bes_srtdeel sd,
|
||
bes_srtgroep sg,
|
||
bes_discipline bd,
|
||
prs_kostensoort ks,
|
||
prs_kostenplaats kp,
|
||
prs_bedrijf lev,
|
||
bes_bestelopdrstatuses bos
|
||
WHERE bo.bes_bestelopdr_key = boi.bes_bestelopdr_key(+)
|
||
AND boi.bes_bestelopdr_item_key = bi.bes_bestelopdr_item_key(+)
|
||
AND bi.bes_bestelling_key = b.bes_bestelling_key(+)
|
||
AND bi.bes_srtdeel_key = sd.bes_srtdeel_key(+)
|
||
AND sd.bes_srtgroep_key = sg.bes_srtgroep_key(+)
|
||
AND sg.ins_discipline_key = bd.ins_discipline_key(+)
|
||
AND bd.prs_kostensoort_key = ks.prs_kostensoort_key(+)
|
||
AND b.prs_kostenplaats_key = kp.prs_kostenplaats_key(+)
|
||
AND sd.prs_bedrijf_key = lev.prs_bedrijf_key(+)
|
||
AND bo.bes_bestelopdr_status = bos.bes_bestelopdrstatuses_key
|
||
GROUP BY bo.bes_bestelopdr_key,
|
||
bd.ins_discipline_omschrijving,
|
||
lev.prs_bedrijf_naam,
|
||
bo.bes_bestelopdr_id,
|
||
bos.bes_bestelopdrstatuses_omschr,
|
||
ks.prs_kostensoort_oms,
|
||
ks.prs_kostensoort_btw,
|
||
kp.prs_kostenplaats_nr,
|
||
kp.prs_kostenplaats_omschrijving,
|
||
b.prs_perslid_key) x
|
||
LEFT JOIN ( SELECT bes_bestelopdr_key,
|
||
SUM (bes_bestelopdr_item_aantal * bes_bestelopdr_item_prijs) kosten
|
||
FROM bes_bestelopdr_item
|
||
GROUP BY bes_bestelopdr_key) verplichting
|
||
ON x.bes_bestelopdr_key = verplichting.bes_bestelopdr_key
|
||
LEFT JOIN ( SELECT bes_bestelopdr_key,
|
||
SUM (fin_factuur_totaal + fin_factuur_totaal_btw) kosten,
|
||
COUNT (DISTINCT fin_factuur_key) aantal
|
||
FROM fin_factuur
|
||
WHERE fin_factuur_verwijder IS NULL
|
||
AND fin_factuur_statuses_key IN (6, 7) -- Akkoord/Verwerkt
|
||
GROUP BY bes_bestelopdr_key) gefactureerd
|
||
ON x.bes_bestelopdr_key = gefactureerd.bes_bestelopdr_key;
|
||
|
||
-- VLKC#59982: Rapportage opdrachtkosten (verplichting vs. gefactureerd).
|
||
CREATE OR REPLACE VIEW vlkc_v_rap_mld_kosten
|
||
(
|
||
vakgroeptype,
|
||
vakgroep,
|
||
soortmelding,
|
||
opdrachttype,
|
||
uitvoerende,
|
||
opdrachtid,
|
||
status,
|
||
aangemaakt,
|
||
toegekend,
|
||
verzonden,
|
||
afgemeld,
|
||
afgerond,
|
||
kostensoort_omschr,
|
||
kostensoort_vinkje,
|
||
kostenplaats_code,
|
||
kostenplaats_omschr,
|
||
verplichting,
|
||
gefactureerd,
|
||
aantal_fact,
|
||
aanvrager,
|
||
mld_opdr_key
|
||
)
|
||
AS
|
||
SELECT x.ins_srtdiscipline_omschrijving vakgroeptype,
|
||
x.ins_discipline_omschrijving vakgroep,
|
||
x.mld_stdmelding_omschrijving soortmelding,
|
||
x.mld_typeopdr_omschrijving opdrachttype,
|
||
COALESCE (x.prs_bedrijf_naam, x.prs_perslid_naam_full) uitvoerende,
|
||
x.mld_opdr_id,
|
||
x.mld_statusopdr_omschrijving status,
|
||
x.mld_opdr_datumbegin aangemaakt,
|
||
fac.gettrackingdate ('ORDNEW', x.mld_opdr_key) toegekend,
|
||
x.mld_opdr_verzonden verzonden,
|
||
fac.gettrackingdate ('ORDAFM', x.mld_opdr_key) afgemeld,
|
||
fac.gettrackingdate ('ORDAFR', x.mld_opdr_key) afgerond,
|
||
x.prs_kostensoort_oms,
|
||
x.prs_kostensoort_btw,
|
||
x.prs_kostenplaats_nr,
|
||
x.prs_kostenplaats_omschrijving,
|
||
ROUND (x.mld_opdr_kosten, 2) kosten,
|
||
gefactureerd.kosten,
|
||
gefactureerd.aantal,
|
||
(SELECT prs_perslid_naam_full FROM prs_v_perslid_fullnames_all WHERE prs_perslid_key = x.prs_perslid_key) aanvrager,
|
||
x.mld_opdr_key
|
||
FROM (SELECT o.mld_opdr_key,
|
||
sd.ins_srtdiscipline_omschrijving,
|
||
md.ins_discipline_omschrijving,
|
||
sm.mld_stdmelding_omschrijving,
|
||
ot.mld_typeopdr_key,
|
||
ot.mld_typeopdr_omschrijving,
|
||
lev.prs_bedrijf_naam,
|
||
iuv.prs_perslid_naam_full,
|
||
TO_CHAR (o.mld_melding_key) || '/' || TO_CHAR (o.mld_opdr_bedrijfopdr_volgnr) mld_opdr_id,
|
||
os.mld_statusopdr_omschrijving,
|
||
ks.prs_kostensoort_oms,
|
||
ks.prs_kostensoort_btw,
|
||
kp.prs_kostenplaats_nr,
|
||
kp.prs_kostenplaats_omschrijving,
|
||
o.mld_opdr_datumbegin,
|
||
o.mld_opdr_verzonden,
|
||
o.mld_opdr_kosten,
|
||
m.prs_perslid_key
|
||
FROM mld_opdr o,
|
||
mld_typeopdr ot,
|
||
mld_melding m,
|
||
mld_discipline md,
|
||
mld_stdmelding sm,
|
||
ins_srtdiscipline sd,
|
||
prs_kostensoort ks,
|
||
prs_kostenplaats kp,
|
||
prs_bedrijf lev,
|
||
prs_v_perslid_fullnames iuv,
|
||
mld_statusopdr os
|
||
WHERE o.mld_melding_key = m.mld_melding_key
|
||
AND o.mld_typeopdr_key = ot.mld_typeopdr_key
|
||
AND m.mld_stdmelding_key = sm.mld_stdmelding_key
|
||
AND sm.mld_ins_discipline_key = md.ins_discipline_key
|
||
AND md.ins_srtdiscipline_key = sd.ins_srtdiscipline_key
|
||
AND COALESCE (o.prs_kostensoort_key, sm.prs_kostensoort_key, md.prs_kostensoort_key) = ks.prs_kostensoort_key(+)
|
||
AND o.prs_kostenplaats_key = kp.prs_kostenplaats_key(+)
|
||
AND o.mld_uitvoerende_keys = lev.prs_bedrijf_key(+)
|
||
AND o.mld_uitvoerende_keys = iuv.prs_perslid_key(+)
|
||
AND o.mld_statusopdr_key = os.mld_statusopdr_key) x
|
||
LEFT JOIN ( SELECT mld_opdr_key,
|
||
SUM (fin_factuur_totaal + fin_factuur_totaal_btw) kosten,
|
||
COUNT (DISTINCT fin_factuur_key) aantal
|
||
FROM fin_factuur
|
||
WHERE fin_factuur_verwijder IS NULL
|
||
AND fin_factuur_statuses_key IN (6, 7) -- Akkoord/Verwerkt
|
||
GROUP BY mld_opdr_key) gefactureerd
|
||
ON x.mld_opdr_key = gefactureerd.mld_opdr_key
|
||
WHERE x.mld_typeopdr_key != 282 -- Offerteaanvraag
|
||
OR gefactureerd.aantal > 0;
|
||
|
||
-- VLKC#60050: Wie heeft wanneer de opdrachtkosten gewijzigd?
|
||
CREATE OR REPLACE VIEW vlkc_v_rap_ordupd_kosten
|
||
(
|
||
opdrachttype,
|
||
uitvoerende,
|
||
opdrachtid,
|
||
datum,
|
||
door,
|
||
email,
|
||
contactpers,
|
||
medewerker,
|
||
functie,
|
||
afd_code,
|
||
afd_oms,
|
||
tracking_oms,
|
||
oud_totaal,
|
||
nieuw_totaal,
|
||
mld_opdr_key
|
||
)
|
||
AS
|
||
SELECT ot.mld_typeopdr_omschrijving opdrachttype,
|
||
COALESCE (lev.prs_bedrijf_naam, iuv.prs_perslid_naam_full) uitvoerende,
|
||
TO_CHAR (o.mld_melding_key) || '/' || TO_CHAR (o.mld_opdr_bedrijfopdr_volgnr) opdrachtid,
|
||
t.fac_tracking_datum datum,
|
||
pf.prs_perslid_naam_full door,
|
||
p.prs_perslid_email email,
|
||
DECODE ((SELECT COUNT(*) FROM prs_contactpersoon WHERE prs_perslid_key = p.prs_perslid_key), 0, 'Nee', 'Ja') contactpers,
|
||
DECODE (p.prs_perslid_nr, NULL, 'Nee', 'Ja') medewerker,
|
||
sp.prs_srtperslid_omschrijving functie,
|
||
a.prs_afdeling_naam afd_code,
|
||
a.prs_afdeling_omschrijving afd_code,
|
||
t.fac_tracking_oms tracking_oms,
|
||
fac.safe_to_number (
|
||
TRIM(SUBSTR (
|
||
SUBSTR (t.fac_tracking_oms, INSTR (t.fac_tracking_oms, 'Totaal <20>:') + 9),
|
||
1,
|
||
INSTR (SUBSTR (t.fac_tracking_oms, INSTR (t.fac_tracking_oms, 'Totaal <20>:') + 9), '-->') - 1)))
|
||
tot_oud,
|
||
fac.safe_to_number (
|
||
TRIM(SUBSTR (
|
||
SUBSTR (t.fac_tracking_oms, INSTR (t.fac_tracking_oms, 'Totaal <20>:') + 9),
|
||
INSTR (SUBSTR (t.fac_tracking_oms, INSTR (t.fac_tracking_oms, 'Totaal <20>:') + 9), '-->') + 3,
|
||
INSTR (REPLACE (REPLACE (SUBSTR (t.fac_tracking_oms, INSTR (t.fac_tracking_oms, 'Totaal <20>:') + 9), CHR (10), '#'), CHR (13), '#') || '#', '#')
|
||
- INSTR (SUBSTR (t.fac_tracking_oms, INSTR (t.fac_tracking_oms, 'Totaal <20>:') + 9), '-->') - 3)))
|
||
tot_nieuw,
|
||
o.mld_opdr_key
|
||
FROM fac_tracking t,
|
||
mld_opdr o,
|
||
mld_typeopdr ot,
|
||
prs_bedrijf lev,
|
||
prs_v_perslid_fullnames iuv,
|
||
prs_perslid p,
|
||
prs_v_perslid_fullnames pf,
|
||
prs_afdeling a,
|
||
prs_srtperslid sp
|
||
WHERE t.fac_srtnotificatie_key = 60 -- ORDUPD
|
||
AND t.fac_tracking_datum > TRUNC (ADD_MONTHS (SYSDATE, -24), 'yyyy')
|
||
AND INSTR (t.fac_tracking_oms, 'Totaal <20>:') > 0
|
||
AND t.fac_tracking_refkey = o.mld_opdr_key
|
||
AND o.mld_typeopdr_key = ot.mld_typeopdr_key
|
||
AND o.mld_uitvoerende_keys = lev.prs_bedrijf_key(+)
|
||
AND o.mld_uitvoerende_keys = iuv.prs_perslid_key(+)
|
||
AND t.prs_perslid_key = p.prs_perslid_key
|
||
AND p.prs_perslid_key = pf.prs_perslid_key
|
||
AND p.prs_afdeling_key = a.prs_afdeling_key
|
||
AND p.prs_srtperslid_key = sp.prs_srtperslid_key;
|
||
|
||
-- VLKC#57098: CUST01-noti naar leverancier op de dag/ochtend na de dag waarop
|
||
-- de offerteopdracht is afgekeurd nadat deze is voorafgegaan door
|
||
-- een offerteaanvraag!
|
||
-- VLKC#69256: CUST01-noti ook naar leverancier bij afkeuren offerteopdrachten
|
||
-- zonder dat deze is voorafgegaan doot een offerteaanvraag!
|
||
-- Besloten om als 2e variant toe te voegen (UNION ALL), want toch
|
||
-- op nuances verschillen tussen beide varianten!
|
||
CREATE OR REPLACE VIEW vlkc_v_noti_offerteopdr_afk
|
||
(
|
||
code,
|
||
sender,
|
||
receiver,
|
||
text,
|
||
key,
|
||
xkey,
|
||
xsender,
|
||
xemail,
|
||
xmobile,
|
||
attachments
|
||
)
|
||
AS
|
||
SELECT sn.fac_srtnotificatie_code,
|
||
NULL,
|
||
NULL,
|
||
REPLACE (sn.fac_srtnotificatie_oms, '##OPDRKEY##', TO_CHAR (oa.mld_melding_key) || '/' || TO_CHAR (oa.mld_opdr_bedrijfopdr_volgnr)),
|
||
oo.mld_opdr_key,
|
||
NULL,
|
||
NULL,
|
||
TRIM (COALESCE (ba.url1, ba.url2, ba.prs_bedrijf_email)),
|
||
NULL,
|
||
NULL
|
||
FROM fac_tracking t,
|
||
mld_opdr oo,
|
||
mld_opdr oa,
|
||
mld_melding m,
|
||
(SELECT x.prs_bedrijf_key, x.alg_locatie_key,
|
||
SUBSTR (ba1.prs_bedrijfadres_url, 8) url1,
|
||
SUBSTR (ba2.prs_bedrijfadres_url, 8) url2,
|
||
x.prs_bedrijf_email
|
||
FROM (SELECT b.prs_bedrijf_key, l.alg_locatie_key, b.prs_bedrijf_email
|
||
FROM prs_v_aanwezigbedrijf b, alg_v_aanweziglocatie l
|
||
WHERE b.prs_bedrijf_uitvoerende = 1) x
|
||
LEFT JOIN (SELECT prs_bedrijf_key, alg_locatie_key, prs_bedrijfadres_url
|
||
FROM prs_bedrijfadres
|
||
WHERE mld_typeopdr_key = 282 -- Offerteaanvraag-kanaal
|
||
AND prs_bedrijfadres_type = 'O'
|
||
AND UPPER (prs_bedrijfadres_url) LIKE 'MAILTO:%'
|
||
AND alg_locatie_key IS NOT NULL
|
||
UNION ALL
|
||
SELECT ba.prs_bedrijf_key, l.alg_locatie_key, ba.prs_bedrijfadres_url
|
||
FROM prs_bedrijfadres ba, alg_locatie l
|
||
WHERE ba.mld_typeopdr_key = 282 -- Offerteaanvraag-kanaal
|
||
AND ba.prs_bedrijfadres_type = 'O'
|
||
AND UPPER (ba.prs_bedrijfadres_url) LIKE 'MAILTO:%'
|
||
AND ba.alg_locatie_key IS NULL
|
||
AND ba.alg_district_key = l.alg_district_key
|
||
AND NOT EXISTS
|
||
(SELECT 1
|
||
FROM prs_bedrijfadres
|
||
WHERE mld_typeopdr_key = 282
|
||
AND prs_bedrijfadres_type = 'O'
|
||
AND UPPER (prs_bedrijfadres_url) LIKE 'MAILTO:%'
|
||
AND prs_bedrijf_key = ba.prs_bedrijf_key
|
||
AND alg_locatie_key = l.alg_locatie_key)
|
||
UNION ALL
|
||
SELECT ba.prs_bedrijf_key, l.alg_locatie_key, ba.prs_bedrijfadres_url
|
||
FROM prs_bedrijfadres ba, alg_locatie l
|
||
WHERE ba.mld_typeopdr_key = 282 -- Offerteaanvraag-kanaal
|
||
AND ba.prs_bedrijfadres_type = 'O'
|
||
AND UPPER (ba.prs_bedrijfadres_url) LIKE 'MAILTO:%'
|
||
AND ba.alg_locatie_key IS NULL
|
||
AND ba.alg_district_key IS NULL
|
||
AND NOT EXISTS
|
||
(SELECT 1
|
||
FROM prs_bedrijfadres
|
||
WHERE mld_typeopdr_key = 282
|
||
AND prs_bedrijfadres_type = 'O'
|
||
AND UPPER (prs_bedrijfadres_url) LIKE 'MAILTO:%'
|
||
AND prs_bedrijf_key = ba.prs_bedrijf_key
|
||
AND (alg_locatie_key = l.alg_locatie_key OR alg_district_key = l.alg_district_key))) ba1
|
||
ON x.prs_bedrijf_key = ba1.prs_bedrijf_key AND x.alg_locatie_key = ba1.alg_locatie_key
|
||
LEFT JOIN (SELECT prs_bedrijf_key, alg_locatie_key, prs_bedrijfadres_url
|
||
FROM prs_bedrijfadres
|
||
WHERE mld_typeopdr_key IS NULL -- Overige opdrachten-kanaal
|
||
AND prs_bedrijfadres_type = 'O'
|
||
AND UPPER (prs_bedrijfadres_url) LIKE 'MAILTO:%'
|
||
AND alg_locatie_key IS NOT NULL
|
||
UNION ALL
|
||
SELECT ba.prs_bedrijf_key, l.alg_locatie_key, ba.prs_bedrijfadres_url
|
||
FROM prs_bedrijfadres ba, alg_locatie l
|
||
WHERE ba.mld_typeopdr_key IS NULL -- Overige opdrachten-kanaal
|
||
AND ba.prs_bedrijfadres_type = 'O'
|
||
AND UPPER (ba.prs_bedrijfadres_url) LIKE 'MAILTO:%'
|
||
AND ba.alg_locatie_key IS NULL
|
||
AND ba.alg_district_key = l.alg_district_key
|
||
AND NOT EXISTS
|
||
(SELECT 1
|
||
FROM prs_bedrijfadres
|
||
WHERE mld_typeopdr_key IS NULL
|
||
AND prs_bedrijfadres_type = 'O'
|
||
AND UPPER (prs_bedrijfadres_url) LIKE 'MAILTO:%'
|
||
AND prs_bedrijf_key = ba.prs_bedrijf_key
|
||
AND alg_locatie_key = l.alg_locatie_key)
|
||
UNION ALL
|
||
SELECT ba.prs_bedrijf_key, l.alg_locatie_key, ba.prs_bedrijfadres_url
|
||
FROM prs_bedrijfadres ba, alg_locatie l
|
||
WHERE ba.mld_typeopdr_key IS NULL -- Overige opdrachten-kanaal
|
||
AND ba.prs_bedrijfadres_type = 'O'
|
||
AND UPPER (ba.prs_bedrijfadres_url) LIKE 'MAILTO:%'
|
||
AND ba.alg_locatie_key IS NULL
|
||
AND ba.alg_district_key IS NULL
|
||
AND NOT EXISTS
|
||
(SELECT 1
|
||
FROM prs_bedrijfadres
|
||
WHERE mld_typeopdr_key IS NULL
|
||
AND prs_bedrijfadres_type = 'O'
|
||
AND UPPER (prs_bedrijfadres_url) LIKE 'MAILTO:%'
|
||
AND prs_bedrijf_key = ba.prs_bedrijf_key
|
||
AND (alg_locatie_key = l.alg_locatie_key OR alg_district_key = l.alg_district_key))) ba2
|
||
ON x.prs_bedrijf_key = ba2.prs_bedrijf_key AND x.alg_locatie_key = ba2.alg_locatie_key
|
||
WHERE ba1.prs_bedrijfadres_url IS NOT NULL OR ba2.prs_bedrijfadres_url IS NOT NULL OR x.prs_bedrijf_email IS NOT NULL) ba,
|
||
fac_srtnotificatie sn
|
||
WHERE t.fac_srtnotificatie_key = 72 -- ORDGNO
|
||
AND t.fac_tracking_refkey = oo.mld_opdr_key
|
||
AND oo.mld_typeopdr_key = 283 -- Offerteopdracht
|
||
AND oo.mld_statusopdr_key = 2 -- Niet akkoord
|
||
AND oo.mld_opdr_parent_key = oa.mld_opdr_key -- Na Offerteaanvraag
|
||
AND oa.mld_melding_key = m.mld_melding_key
|
||
AND oa.mld_uitvoerende_keys = ba.prs_bedrijf_key
|
||
AND m.mld_alg_locatie_key = ba.alg_locatie_key
|
||
AND TRUNC (t.fac_tracking_datum) = TRUNC (SYSDATE - 1)
|
||
AND sn.fac_srtnotificatie_code = 'CUST01'
|
||
UNION ALL
|
||
SELECT sn.fac_srtnotificatie_code,
|
||
NULL,
|
||
NULL,
|
||
REPLACE (sn.fac_srtnotificatie_oms, '##OPDRKEY##', TO_CHAR (oo.mld_melding_key) || '/' || TO_CHAR (oo.mld_opdr_bedrijfopdr_volgnr)),
|
||
oo.mld_opdr_key,
|
||
NULL,
|
||
NULL,
|
||
TRIM (COALESCE (ba.url1, ba.url2, ba.prs_bedrijf_email)),
|
||
NULL,
|
||
NULL
|
||
FROM fac_tracking t,
|
||
mld_opdr oo,
|
||
mld_melding m,
|
||
(SELECT x.prs_bedrijf_key, x.alg_locatie_key,
|
||
SUBSTR (ba1.prs_bedrijfadres_url, 8) url1,
|
||
SUBSTR (ba2.prs_bedrijfadres_url, 8) url2,
|
||
x.prs_bedrijf_email
|
||
FROM (SELECT b.prs_bedrijf_key, l.alg_locatie_key, b.prs_bedrijf_email
|
||
FROM prs_v_aanwezigbedrijf b, alg_v_aanweziglocatie l
|
||
WHERE b.prs_bedrijf_uitvoerende = 1) x
|
||
LEFT JOIN (SELECT prs_bedrijf_key, alg_locatie_key, prs_bedrijfadres_url
|
||
FROM prs_bedrijfadres
|
||
WHERE mld_typeopdr_key = 282 -- Offerteaanvraag-kanaal
|
||
AND prs_bedrijfadres_type = 'O'
|
||
AND UPPER (prs_bedrijfadres_url) LIKE 'MAILTO:%'
|
||
AND alg_locatie_key IS NOT NULL
|
||
UNION ALL
|
||
SELECT ba.prs_bedrijf_key, l.alg_locatie_key, ba.prs_bedrijfadres_url
|
||
FROM prs_bedrijfadres ba, alg_locatie l
|
||
WHERE ba.mld_typeopdr_key = 282 -- Offerteaanvraag-kanaal
|
||
AND ba.prs_bedrijfadres_type = 'O'
|
||
AND UPPER (ba.prs_bedrijfadres_url) LIKE 'MAILTO:%'
|
||
AND ba.alg_locatie_key IS NULL
|
||
AND ba.alg_district_key = l.alg_district_key
|
||
AND NOT EXISTS
|
||
(SELECT 1
|
||
FROM prs_bedrijfadres
|
||
WHERE mld_typeopdr_key = 282
|
||
AND prs_bedrijfadres_type = 'O'
|
||
AND UPPER (prs_bedrijfadres_url) LIKE 'MAILTO:%'
|
||
AND prs_bedrijf_key = ba.prs_bedrijf_key
|
||
AND alg_locatie_key = l.alg_locatie_key)
|
||
UNION ALL
|
||
SELECT ba.prs_bedrijf_key, l.alg_locatie_key, ba.prs_bedrijfadres_url
|
||
FROM prs_bedrijfadres ba, alg_locatie l
|
||
WHERE ba.mld_typeopdr_key = 282 -- Offerteaanvraag-kanaal
|
||
AND ba.prs_bedrijfadres_type = 'O'
|
||
AND UPPER (ba.prs_bedrijfadres_url) LIKE 'MAILTO:%'
|
||
AND ba.alg_locatie_key IS NULL
|
||
AND ba.alg_district_key IS NULL
|
||
AND NOT EXISTS
|
||
(SELECT 1
|
||
FROM prs_bedrijfadres
|
||
WHERE mld_typeopdr_key = 282
|
||
AND prs_bedrijfadres_type = 'O'
|
||
AND UPPER (prs_bedrijfadres_url) LIKE 'MAILTO:%'
|
||
AND prs_bedrijf_key = ba.prs_bedrijf_key
|
||
AND (alg_locatie_key = l.alg_locatie_key OR alg_district_key = l.alg_district_key))) ba1
|
||
ON x.prs_bedrijf_key = ba1.prs_bedrijf_key AND x.alg_locatie_key = ba1.alg_locatie_key
|
||
LEFT JOIN (SELECT prs_bedrijf_key, alg_locatie_key, prs_bedrijfadres_url
|
||
FROM prs_bedrijfadres
|
||
WHERE mld_typeopdr_key IS NULL -- Overige opdrachten-kanaal
|
||
AND prs_bedrijfadres_type = 'O'
|
||
AND UPPER (prs_bedrijfadres_url) LIKE 'MAILTO:%'
|
||
AND alg_locatie_key IS NOT NULL
|
||
UNION ALL
|
||
SELECT ba.prs_bedrijf_key, l.alg_locatie_key, ba.prs_bedrijfadres_url
|
||
FROM prs_bedrijfadres ba, alg_locatie l
|
||
WHERE ba.mld_typeopdr_key IS NULL -- Overige opdrachten-kanaal
|
||
AND ba.prs_bedrijfadres_type = 'O'
|
||
AND UPPER (ba.prs_bedrijfadres_url) LIKE 'MAILTO:%'
|
||
AND ba.alg_locatie_key IS NULL
|
||
AND ba.alg_district_key = l.alg_district_key
|
||
AND NOT EXISTS
|
||
(SELECT 1
|
||
FROM prs_bedrijfadres
|
||
WHERE mld_typeopdr_key IS NULL
|
||
AND prs_bedrijfadres_type = 'O'
|
||
AND UPPER (prs_bedrijfadres_url) LIKE 'MAILTO:%'
|
||
AND prs_bedrijf_key = ba.prs_bedrijf_key
|
||
AND alg_locatie_key = l.alg_locatie_key)
|
||
UNION ALL
|
||
SELECT ba.prs_bedrijf_key, l.alg_locatie_key, ba.prs_bedrijfadres_url
|
||
FROM prs_bedrijfadres ba, alg_locatie l
|
||
WHERE ba.mld_typeopdr_key IS NULL -- Overige opdrachten-kanaal
|
||
AND ba.prs_bedrijfadres_type = 'O'
|
||
AND UPPER (ba.prs_bedrijfadres_url) LIKE 'MAILTO:%'
|
||
AND ba.alg_locatie_key IS NULL
|
||
AND ba.alg_district_key IS NULL
|
||
AND NOT EXISTS
|
||
(SELECT 1
|
||
FROM prs_bedrijfadres
|
||
WHERE mld_typeopdr_key IS NULL
|
||
AND prs_bedrijfadres_type = 'O'
|
||
AND UPPER (prs_bedrijfadres_url) LIKE 'MAILTO:%'
|
||
AND prs_bedrijf_key = ba.prs_bedrijf_key
|
||
AND (alg_locatie_key = l.alg_locatie_key OR alg_district_key = l.alg_district_key))) ba2
|
||
ON x.prs_bedrijf_key = ba2.prs_bedrijf_key AND x.alg_locatie_key = ba2.alg_locatie_key
|
||
WHERE ba1.prs_bedrijfadres_url IS NOT NULL OR ba2.prs_bedrijfadres_url IS NOT NULL OR x.prs_bedrijf_email IS NOT NULL) ba,
|
||
fac_srtnotificatie sn
|
||
WHERE t.fac_srtnotificatie_key = 72 -- ORDGNO
|
||
AND t.fac_tracking_refkey = oo.mld_opdr_key
|
||
AND oo.mld_typeopdr_key = 283 -- Offerteopdracht
|
||
AND oo.mld_statusopdr_key = 2 -- Niet akkoord
|
||
AND oo.mld_opdr_parent_key IS NULL -- Niet na Offerteaanvraag
|
||
AND oo.mld_melding_key = m.mld_melding_key
|
||
AND oo.mld_uitvoerende_keys = ba.prs_bedrijf_key
|
||
AND m.mld_alg_locatie_key = ba.alg_locatie_key
|
||
AND TRUNC (t.fac_tracking_datum) = TRUNC (SYSDATE - 1)
|
||
AND sn.fac_srtnotificatie_code = 'CUST01';
|
||
/*
|
||
CREATE OR REPLACE VIEW vlkc_v_noti_inspectiereminder
|
||
(
|
||
code,
|
||
sender,
|
||
receiver,
|
||
text,
|
||
key,
|
||
par1,
|
||
par2,
|
||
xkey,
|
||
xemail,
|
||
xmobile
|
||
)
|
||
AS
|
||
SELECT DISTINCT
|
||
sn.fac_srtnotificatie_code code,
|
||
NULL sender,
|
||
NULL receiver,
|
||
REPLACE (
|
||
REPLACE (
|
||
sn.fac_srtnotificatie_oms,
|
||
'##SRTDEEL##',
|
||
DECODE (
|
||
v.objectsoort_min,
|
||
v.objectsoort_max, v.objectsoort_min || DECODE (v.aantal, 1, '/' || v.ins_srtcontrole_omschrijving, ''),
|
||
v.objectsoort_min || ', ...')),
|
||
'##AANTAL##',
|
||
v.aantal)
|
||
subject,
|
||
r.fac_usrrap_key,
|
||
NULL,
|
||
NULL,
|
||
v.extra_key,
|
||
TRIM (COALESCE (ba.url1, ba.url2)),
|
||
NULL
|
||
FROM ( SELECT extra_key, alg_locatie_key, ins_srtcontrole_omschrijving,
|
||
MIN (objectsoort) objectsoort_min,
|
||
MAX (objectsoort) objectsoort_max,
|
||
COUNT (*) aantal
|
||
FROM vlkc_v_rap_inspectieobjecten
|
||
GROUP BY extra_key, alg_locatie_key, ins_srtcontrole_omschrijving) v,
|
||
(SELECT x.prs_bedrijf_key, x.alg_locatie_key,
|
||
SUBSTR (ba1.prs_bedrijfadres_url, 8) url1,
|
||
SUBSTR (ba2.prs_bedrijfadres_url, 8) url2
|
||
FROM (SELECT b.prs_bedrijf_key, l.alg_locatie_key
|
||
FROM prs_v_aanwezigbedrijf b, alg_v_aanweziglocatie l
|
||
WHERE b.prs_bedrijf_uitvoerende = 1) x
|
||
LEFT JOIN (SELECT prs_bedrijf_key, alg_locatie_key, prs_bedrijfadres_url
|
||
FROM prs_bedrijfadres
|
||
WHERE mld_typeopdr_key = 282 -- Offerteaanvraag-kanaal
|
||
AND prs_bedrijfadres_type = 'O'
|
||
AND UPPER (prs_bedrijfadres_url) LIKE 'MAILTO:%'
|
||
AND alg_locatie_key IS NOT NULL
|
||
UNION ALL
|
||
SELECT ba.prs_bedrijf_key, l.alg_locatie_key, ba.prs_bedrijfadres_url
|
||
FROM prs_bedrijfadres ba, alg_locatie l
|
||
WHERE ba.mld_typeopdr_key = 282 -- Offerteaanvraag-kanaal
|
||
AND ba.prs_bedrijfadres_type = 'O'
|
||
AND UPPER (ba.prs_bedrijfadres_url) LIKE 'MAILTO:%'
|
||
AND ba.alg_locatie_key IS NULL
|
||
AND ba.alg_district_key = l.alg_district_key
|
||
AND NOT EXISTS
|
||
(SELECT 1
|
||
FROM prs_bedrijfadres
|
||
WHERE mld_typeopdr_key = 282
|
||
AND prs_bedrijfadres_type = 'O'
|
||
AND UPPER (prs_bedrijfadres_url) LIKE 'MAILTO:%'
|
||
AND prs_bedrijf_key = ba.prs_bedrijf_key
|
||
AND alg_locatie_key = l.alg_locatie_key)
|
||
UNION ALL
|
||
SELECT ba.prs_bedrijf_key, l.alg_locatie_key, ba.prs_bedrijfadres_url
|
||
FROM prs_bedrijfadres ba, alg_locatie l
|
||
WHERE ba.mld_typeopdr_key = 282 -- Offerteaanvraag-kanaal
|
||
AND ba.prs_bedrijfadres_type = 'O'
|
||
AND UPPER (ba.prs_bedrijfadres_url) LIKE 'MAILTO:%'
|
||
AND ba.alg_locatie_key IS NULL
|
||
AND ba.alg_district_key IS NULL
|
||
AND NOT EXISTS
|
||
(SELECT 1
|
||
FROM prs_bedrijfadres
|
||
WHERE mld_typeopdr_key = 282
|
||
AND prs_bedrijfadres_type = 'O'
|
||
AND UPPER (prs_bedrijfadres_url) LIKE 'MAILTO:%'
|
||
AND prs_bedrijf_key = ba.prs_bedrijf_key
|
||
AND (alg_locatie_key = l.alg_locatie_key OR alg_district_key = l.alg_district_key))) ba1
|
||
ON x.prs_bedrijf_key = ba1.prs_bedrijf_key AND x.alg_locatie_key = ba1.alg_locatie_key
|
||
LEFT JOIN (SELECT prs_bedrijf_key, alg_locatie_key, prs_bedrijfadres_url
|
||
FROM prs_bedrijfadres
|
||
WHERE mld_typeopdr_key IS NULL -- Overige opdrachten-kanaal
|
||
AND prs_bedrijfadres_type = 'O'
|
||
AND UPPER (prs_bedrijfadres_url) LIKE 'MAILTO:%'
|
||
AND alg_locatie_key IS NOT NULL
|
||
UNION ALL
|
||
SELECT ba.prs_bedrijf_key, l.alg_locatie_key, ba.prs_bedrijfadres_url
|
||
FROM prs_bedrijfadres ba, alg_locatie l
|
||
WHERE ba.mld_typeopdr_key IS NULL -- Overige opdrachten-kanaal
|
||
AND ba.prs_bedrijfadres_type = 'O'
|
||
AND UPPER (ba.prs_bedrijfadres_url) LIKE 'MAILTO:%'
|
||
AND ba.alg_locatie_key IS NULL
|
||
AND ba.alg_district_key = l.alg_district_key
|
||
AND NOT EXISTS
|
||
(SELECT 1
|
||
FROM prs_bedrijfadres
|
||
WHERE mld_typeopdr_key IS NULL
|
||
AND prs_bedrijfadres_type = 'O'
|
||
AND UPPER (prs_bedrijfadres_url) LIKE 'MAILTO:%'
|
||
AND prs_bedrijf_key = ba.prs_bedrijf_key
|
||
AND alg_locatie_key = l.alg_locatie_key)
|
||
UNION ALL
|
||
SELECT ba.prs_bedrijf_key, l.alg_locatie_key, ba.prs_bedrijfadres_url
|
||
FROM prs_bedrijfadres ba, alg_locatie l
|
||
WHERE ba.mld_typeopdr_key IS NULL -- Overige opdrachten-kanaal
|
||
AND ba.prs_bedrijfadres_type = 'O'
|
||
AND UPPER (ba.prs_bedrijfadres_url) LIKE 'MAILTO:%'
|
||
AND ba.alg_locatie_key IS NULL
|
||
AND ba.alg_district_key IS NULL
|
||
AND NOT EXISTS
|
||
(SELECT 1
|
||
FROM prs_bedrijfadres
|
||
WHERE mld_typeopdr_key IS NULL
|
||
AND prs_bedrijfadres_type = 'O'
|
||
AND UPPER (prs_bedrijfadres_url) LIKE 'MAILTO:%'
|
||
AND prs_bedrijf_key = ba.prs_bedrijf_key
|
||
AND (alg_locatie_key = l.alg_locatie_key OR alg_district_key = l.alg_district_key))) ba2
|
||
ON x.prs_bedrijf_key = ba2.prs_bedrijf_key AND x.alg_locatie_key = ba2.alg_locatie_key
|
||
WHERE ba1.prs_bedrijfadres_url IS NOT NULL OR ba2.prs_bedrijfadres_url IS NOT NULL) ba,
|
||
fac_usrrap r,
|
||
fac_srtnotificatie sn
|
||
WHERE v.extra_key = ba.prs_bedrijf_key
|
||
AND v.alg_locatie_key = ba.alg_locatie_key
|
||
AND UPPER (r.fac_usrrap_view_name) = 'VLKC_V_RAP_INSPECTIEOBJECTEN'
|
||
AND sn.fac_srtnotificatie_code = 'CUST02';
|
||
*/
|
||
-- VLKC#84847: CUST04-noti naar externe bezoeker nav. registratie afspraak.
|
||
CREATE OR REPLACE VIEW VLKC_V_NOTI_EXT_BEZOEKER
|
||
(
|
||
code,
|
||
sender,
|
||
receiver,
|
||
text,
|
||
key,
|
||
xkey,
|
||
xsender,
|
||
xemail,
|
||
xmobile,
|
||
attachments
|
||
)
|
||
AS
|
||
SELECT sn.fac_srtnotificatie_code,
|
||
NULL,
|
||
NULL,
|
||
REPLACE (
|
||
REPLACE (sn.fac_srtnotificatie_oms,
|
||
'##KEY##',
|
||
TO_CHAR (a.bez_afspraak_key)),
|
||
'##DATIJD##',
|
||
TO_CHAR (a.bez_afspraak_datum, 'dd-mm-yyyy hh24:mi')),
|
||
a.bez_afspraak_key,
|
||
NULL,
|
||
NULL,
|
||
--kb.bez_kenmerkwaarde_waarde,
|
||
b.bez_bezoekers_email,
|
||
NULL,
|
||
NULL
|
||
FROM fac_tracking t,
|
||
bez_afspraak a,
|
||
bez_bezoekers b,
|
||
bez_kenmerkwaarde kb,
|
||
fac_srtnotificatie sn,
|
||
fac_notificatie_job nj
|
||
WHERE t.fac_srtnotificatie_key = 14 -- BEZMUT
|
||
AND t.fac_tracking_refkey = a.bez_afspraak_key
|
||
AND a.bez_afspraak_key = b.bez_afspraak_key
|
||
--AND b.bez_bezoekers_key = kb.bez_bezoekers_key
|
||
--AND kb.bez_kenmerk_key = 1080 -- E-mail adres
|
||
--AND EXISTS -- Als waarde voor Notificeren-vinkje bestaat, dan gezet!
|
||
-- (SELECT 1
|
||
-- FROM bez_kenmerkwaarde
|
||
-- WHERE bez_kenmerkwaarde_verwijder IS NULL
|
||
-- AND bez_kenmerk_key = 1002 -- Notificeren-vinkje
|
||
-- AND bez_bezoekers_key = b.bez_bezoekers_key)
|
||
AND sn.fac_srtnotificatie_code = 'CUST04'
|
||
AND nj.fac_notificatie_job_view = 'VLKC_V_NOTI_EXT_BEZOEKER'
|
||
AND t.fac_tracking_datum > nj.fac_notificatie_job_lastrun;
|
||
|
||
create or replace view vlkc_v_rap_mld_x_res
|
||
as
|
||
SELECT m.mld_melding_key,
|
||
sd.ins_srtdiscipline_prefix || m.mld_melding_key meldingnr,
|
||
mld_melding_datum,
|
||
std.mld_stdmelding_omschrijving melding,
|
||
d.ins_discipline_omschrijving vagkroep,
|
||
d.ins_discipline_key fclt_3d_discipline_key,
|
||
sd.ins_srtdiscipline_omschrijving vakgroeptype,
|
||
aog.alg_plaatsaanduiding plaats,
|
||
l.alg_locatie_key fclt_3d_locatie_key,
|
||
l.alg_locatie_omschrijving locatie,
|
||
pf.prs_perslid_naam_full melder,
|
||
s.mld_statuses_omschrijving status,
|
||
m.mld_melding_onderwerp onderwerp,
|
||
m.mld_melding_omschrijving omschrijving,
|
||
rrr.res_rsv_ruimte_key,
|
||
rrr.res_reservering_key || '/' || rrr.res_rsv_ruimte_volgnr
|
||
reservering,
|
||
rrr.res_rsv_ruimte_omschrijving reservering_omschrijving,
|
||
mo.opdrachtnr,
|
||
mo.mld_opdr_datumbegin opdrachtdatum,
|
||
mo.mld_opdr_einddatum opdracht_eind,
|
||
mo.mld_opdr_plandatum opdracht_plan,
|
||
mo.uitvoerende,
|
||
mo.mld_opdr_kosten kosten,
|
||
mo.opdracht_status,
|
||
mo.opdracht_type,
|
||
mo.factuurincl
|
||
FROM mld_melding m,
|
||
res_rsv_ruimte rrr,
|
||
mld_stdmelding std,
|
||
mld_discipline d,
|
||
ins_srtdiscipline sd,
|
||
alg_v_allonrgoed_gegevens aog,
|
||
mld_statuses s,
|
||
alg_locatie l,
|
||
prs_v_perslid_fullnames_all pf,
|
||
(SELECT o.mld_opdr_key,
|
||
mld_melding_key,
|
||
o.mld_melding_key || '/' || mld_opdr_bedrijfopdr_volgnr
|
||
opdrachtnr,
|
||
o.mld_opdr_datumbegin,
|
||
mld_opdr_einddatum,
|
||
mld_opdr_plandatum,
|
||
mu.naam uitvoerende,
|
||
mld_opdr_kosten,
|
||
so.mld_statusopdr_omschrijving opdracht_status,
|
||
ot.mld_typeopdr_omschrijving opdracht_type,
|
||
fo.factuurincl
|
||
FROM mld_opdr o,
|
||
mld_typeopdr ot,
|
||
mld_statusopdr so,
|
||
mld_v_uitvoerende mu,
|
||
( SELECT mld_opdr_key,
|
||
SUM (f.fin_factuur_totaal + f.fin_factuur_totaal_btw)
|
||
factuurincl
|
||
FROM fin_factuur f
|
||
WHERE mld_opdr_key IS NOT NULL
|
||
AND f.fin_factuur_verwijder IS NULL
|
||
GROUP BY mld_opdr_key) fo
|
||
WHERE o.mld_uitvoerende_keys = mu.mld_uitvoerende_key
|
||
AND o.mld_typeopdr_key = ot.mld_typeopdr_typeopdr_key
|
||
AND o.mld_statusopdr_key = so.mld_statusopdr_key
|
||
AND o.mld_opdr_key = fo.mld_opdr_key(+)) mo
|
||
WHERE rrr.res_rsv_ruimte_key = m.res_rsv_ruimte_key
|
||
AND std.mld_stdmelding_key = m.mld_stdmelding_key
|
||
AND std.mld_ins_discipline_key = d.ins_discipline_key
|
||
AND d.ins_srtdiscipline_key = sd.ins_srtdiscipline_key
|
||
AND m.mld_alg_onroerendgoed_keys = aog.alg_onroerendgoed_keys
|
||
AND m.mld_melding_status = s.mld_statuses_key
|
||
AND aog.alg_locatie_key = l.alg_locatie_key
|
||
AND m.prs_perslid_key = pf.prs_perslid_key
|
||
AND mo.mld_melding_key(+) = m.mld_melding_key;
|
||
|
||
-- VLKC#64128: Technische adressen!
|
||
CREATE OR REPLACE VIEW vlkc_v_rap_bedrijf_kanalen
|
||
(
|
||
prs_bedrijf_key,
|
||
leverancier,
|
||
leveranciersnummer,
|
||
servicemanager,
|
||
l_relatie,
|
||
u_relatie,
|
||
c_relatie,
|
||
h_relatie,
|
||
kanaal,
|
||
opdrachttype,
|
||
--protocol,
|
||
technisch_adres,
|
||
district,
|
||
locatiecode,
|
||
locatieomschrijving
|
||
)
|
||
AS
|
||
SELECT lev.prs_bedrijf_key,
|
||
lev.prs_bedrijf_naam leverancier,
|
||
lev.prs_leverancier_nr leveranciersnummer,
|
||
b2sm.servicemanager,
|
||
DECODE (lev.prs_bedrijf_leverancier, NULL, NULL, 'L'),
|
||
DECODE (lev.prs_bedrijf_uitvoerende, NULL, NULL, 'U'),
|
||
DECODE (lev.prs_bedrijf_contract, NULL, NULL, 'C'),
|
||
DECODE (lev.prs_bedrijf_huurder, NULL, NULL, 'H'),
|
||
ba.prs_bedrijfadres_type,
|
||
DECODE (ba.prs_bedrijfadres_type, 'O', COALESCE (ot.mld_typeopdr_omschrijving, 'Alle (overige)'), NULL),
|
||
--NULL protocol,
|
||
ba.prs_bedrijfadres_url, -- Inclusief protocol
|
||
d.alg_district_omschrijving || DECODE (d.alg_district_verwijder, NULL, '', '*'),
|
||
l.alg_locatie_code || DECODE (l.alg_locatie_verwijder, NULL, '', '*'),
|
||
l.alg_locatie_omschrijving || DECODE (l.alg_locatie_verwijder, NULL, '', '*')
|
||
FROM prs_v_aanwezigbedrijf lev,
|
||
(SELECT kl.prs_link_key prs_bedrijf_key, pf.prs_perslid_naam_full servicemanager
|
||
FROM prs_v_aanwezigkenmerklink kl, prs_v_perslid_fullnames pf
|
||
WHERE kl.prs_kenmerk_key = 1120 -- Verantwoordelijke servicemanager
|
||
AND fac.safe_to_number (kl.prs_kenmerklink_waarde) = pf.prs_perslid_key) b2sm,
|
||
prs_bedrijfadres ba,
|
||
mld_typeopdr ot,
|
||
alg_district d,
|
||
alg_locatie l
|
||
WHERE lev.prs_bedrijf_key = ba.prs_bedrijf_key(+)
|
||
AND lev.prs_bedrijf_key = b2sm.prs_bedrijf_key(+)
|
||
AND ba.mld_typeopdr_key = ot.mld_typeopdr_key(+)
|
||
AND ba.alg_district_key = d.alg_district_key(+)
|
||
AND ba.alg_locatie_key = l.alg_locatie_key(+);
|
||
|
||
-- VLKC#74776: Mail2Melding + Mail2Opdracht. Twee stromen:
|
||
-- - NIEUWEMELDING -: Registreren nieuwe melding van Soortmelding=2121
|
||
-- (Mailmelding) onder Vakgroep=306 (Algemeen) onder
|
||
-- Vakgroeptype=23 (Melding)!
|
||
-- - OPDRACHTNOTITIE -: Toevoegen opdrachtnotitie!
|
||
CREATE OR REPLACE PROCEDURE VLKC_processemail (
|
||
pfrom IN VARCHAR2,
|
||
pto IN VARCHAR2,
|
||
psubject IN VARCHAR2,
|
||
pbody IN VARCHAR2,
|
||
psessionid IN VARCHAR2,
|
||
pemailkey IN NUMBER)
|
||
AS
|
||
c_onbekend_key NUMBER (10) := 34940; -- Facilitydesk
|
||
v_errormsg VARCHAR2 (1000);
|
||
oracle_err_num NUMBER;
|
||
oracle_err_mes VARCHAR2 (200);
|
||
v_van_regel VARCHAR2 (255) := '';
|
||
v_van_email VARCHAR2 (255) := '';
|
||
v_perslid_key NUMBER (10);
|
||
v_kostenplaats_key NUMBER (10);
|
||
v_locatie_key NUMBER (10);
|
||
v_discipline_key NUMBER (10);
|
||
v_stdmelding_key NUMBER (10);
|
||
v_body VARCHAR2 (4000);
|
||
v_melding_key NUMBER (10);
|
||
v_folder_kkey NUMBER (10);
|
||
v_opdracht_id VARCHAR2 (255);
|
||
v_opdracht_key NUMBER (10);
|
||
v_typeopdr_key NUMBER (10);
|
||
v_count NUMBER (10);
|
||
BEGIN
|
||
CASE
|
||
--WHEN UPPER (pto) LIKE 'NIEUWEMELDING@%'
|
||
WHEN INSTR (UPPER (pfrom), 'FACILITYDESK@VANLANSCHOTKEMPEN.COM') > 0 AND UPPER (pto) LIKE 'NIEUWEMELDING@%'
|
||
THEN
|
||
-- Probeer melder te bepalen op basis van e-mail adres tussen '<>' na eerste voorkomen 'Van:'!
|
||
v_errormsg := 'Fout bepalen melder';
|
||
IF INSTR (UPPER (pbody), 'VAN:') > 0
|
||
THEN
|
||
v_van_regel := TRIM (SUBSTR (pbody,
|
||
INSTR (UPPER (pbody), 'VAN:') + 4,
|
||
INSTR (SUBSTR (REPLACE (REPLACE (pbody, CHR (13), '#'), CHR (10), '#') || '#', INSTR (pbody, 'VAN:') + 4), '#') - 1));
|
||
|
||
IF INSTR (v_van_regel, '<') > 0 AND INSTR (v_van_regel, '<') < INSTR (v_van_regel, '>')
|
||
THEN
|
||
v_van_email := SUBSTR (v_van_regel, INSTR (v_van_regel, '<') + 1, INSTR (v_van_regel, '>') - INSTR (v_van_regel, '<') - 1);
|
||
END IF;
|
||
END IF;
|
||
|
||
SELECT COUNT (*)
|
||
INTO v_count
|
||
FROM prs_v_aanwezigperslid
|
||
WHERE UPPER (prs_perslid_email) LIKE UPPER (v_van_email) || '%';
|
||
|
||
IF v_count = 1
|
||
THEN
|
||
SELECT p.prs_perslid_key, a.prs_kostenplaats_key, MIN (wpg.alg_locatie_key)
|
||
INTO v_perslid_key, v_kostenplaats_key, v_locatie_key
|
||
FROM prs_v_aanwezigperslid p, prs_afdeling a,
|
||
(SELECT pw.prs_perslid_key, pw.prs_werkplek_key
|
||
FROM prs_perslidwerkplek pw
|
||
WHERE NOT EXISTS
|
||
(SELECT 1
|
||
FROM prs_perslidwerkplek
|
||
WHERE prs_perslid_key = pw.prs_perslid_key
|
||
AND prs_perslidwerkplek_key > pw.prs_perslidwerkplek_key)) pw,
|
||
prs_v_werkplekperslid_gegevens wpg
|
||
WHERE p.prs_afdeling_key = a.prs_afdeling_key
|
||
AND UPPER (p.prs_perslid_email) LIKE UPPER (v_van_email) || '%'
|
||
AND p.prs_perslid_key = pw.prs_perslid_key(+)
|
||
AND pw.prs_werkplek_key = wpg.prs_werkplek_key(+)
|
||
GROUP BY p.prs_perslid_key, a.prs_kostenplaats_key;
|
||
ELSE -- Melder kan niet 1-duidig worden bepaald, dus Onbekend en 1=AMS-WTC!
|
||
SELECT p.prs_perslid_key, a.prs_kostenplaats_key, 1
|
||
INTO v_perslid_key, v_kostenplaats_key, v_locatie_key
|
||
FROM prs_v_aanwezigperslid p, prs_afdeling a
|
||
WHERE p.prs_afdeling_key = a.prs_afdeling_key
|
||
AND p.prs_perslid_key = c_onbekend_key;
|
||
END IF;
|
||
|
||
-- Bepaal de afgesproken soortmelding met key=2121=Mailmelding!
|
||
v_errormsg := 'Fout bepalen soortmelding';
|
||
SELECT mld_ins_discipline_key, mld_stdmelding_key
|
||
INTO v_discipline_key, v_stdmelding_key
|
||
FROM mld_stdmelding
|
||
WHERE mld_stdmelding_key = 2121;
|
||
|
||
-- Body overnemen tot 1e voorkomen van hard afgesproken start DISCLAIMER!
|
||
v_errormsg := 'Fout strippen disclaimer';
|
||
IF INSTR (UPPER (pbody), 'DISCLAIMER') > 0 --AND INSTR (UPPER (pbody), 'DE INFORMATIE IN DIT BERICHT') > 0
|
||
THEN
|
||
--v_body := TRIM (SUBSTR (pbody, 1, INSTR (UPPER (pbody), 'DE INFORMATIE IN DIT BERICHT') - 12));
|
||
v_body := TRIM (SUBSTR (pbody, 1, INSTR (UPPER (pbody), 'DISCLAIMER') - 1));
|
||
ELSE
|
||
v_body := pbody;
|
||
END IF;
|
||
|
||
-- Suggested extensions:
|
||
-- - Check for MLDUSE-write autorisations
|
||
-- - Parse the subject to find the appropriate stdmelding, if uniquely possible
|
||
-- - Append (as a note?) to an existing melding if #key is found in the subject
|
||
v_errormsg := 'Fout toevoegen melding';
|
||
INSERT INTO mld_melding (mld_melding_module,
|
||
mld_meldbron_key,
|
||
mld_alg_locatie_key,
|
||
mld_alg_onroerendgoed_keys,
|
||
mld_melding_datum,
|
||
mld_melding_omschrijving,
|
||
mld_stdmelding_key,
|
||
mld_melding_t_uitvoertijd,
|
||
prs_kostenplaats_key,
|
||
prs_perslid_key,
|
||
prs_perslid_key_voor,
|
||
mld_melding_status,
|
||
mld_melding_spoed,
|
||
mld_melding_onderwerp,
|
||
mld_melding_behandelaar2_key,
|
||
mld_ins_discipline_key)
|
||
VALUES ('MLD',
|
||
4, -- Email
|
||
COALESCE (v_locatie_key, 1), -- Fallback op 1=AMS-WTC
|
||
NULL, --v_onrgoed_keys,
|
||
SYSDATE,
|
||
SUBSTR (v_body, 1, 2000),
|
||
v_stdmelding_key,
|
||
NULL,
|
||
v_kostenplaats_key,
|
||
v_perslid_key,
|
||
v_perslid_key,
|
||
NULL,
|
||
3, -- Prio normaal
|
||
SUBSTR (psubject, 1, 80),
|
||
NULL,
|
||
NULL) -- BT?
|
||
RETURNING mld_melding_key
|
||
INTO v_melding_key;
|
||
|
||
mld.setmeldingstatus (v_melding_key, 2, v_perslid_key);
|
||
|
||
INSERT INTO fac_result (fac_result_sessionid, fac_result_naam, fac_result_waarde)
|
||
VALUES (psessionid, 'maillog', 'Geregistreerd onder melding ' || v_melding_key);
|
||
|
||
-- Find the lowest volgnummer of the Folder-flexfield.
|
||
v_errormsg := 'Fout toevoegen melding-bijlage';
|
||
SELECT MIN (k1.mld_kenmerk_key)
|
||
INTO v_folder_kkey
|
||
FROM mld_stdmelding sm1, ins_tab_discipline td1, mld_kenmerk k1, mld_srtkenmerk sk1
|
||
WHERE sm1.mld_stdmelding_key = v_stdmelding_key
|
||
AND sm1.mld_ins_discipline_key = td1.ins_discipline_key
|
||
AND k1.mld_kenmerk_verwijder IS NULL
|
||
AND k1.mld_srtkenmerk_key = sk1.mld_srtkenmerk_key
|
||
AND sk1.mld_srtkenmerk_kenmerktype = 'M'
|
||
AND ((k1.mld_stdmelding_key = sm1.mld_stdmelding_key AND k1.mld_kenmerk_niveau = 'S')
|
||
OR (k1.mld_stdmelding_key = td1.ins_discipline_key AND k1.mld_kenmerk_niveau = 'D')
|
||
OR (k1.mld_stdmelding_key = td1.ins_srtdiscipline_key AND k1.mld_kenmerk_niveau = 'T'))
|
||
AND NOT EXISTS
|
||
(SELECT 1
|
||
FROM mld_stdmelding sm2, ins_tab_discipline td2, mld_kenmerk k2, mld_srtkenmerk sk2
|
||
WHERE sm2.mld_stdmelding_key = v_stdmelding_key
|
||
AND sm2.mld_ins_discipline_key = td2.ins_discipline_key
|
||
AND k2.mld_kenmerk_verwijder IS NULL
|
||
AND k2.mld_srtkenmerk_key = sk2.mld_srtkenmerk_key
|
||
AND sk2.mld_srtkenmerk_kenmerktype = 'M'
|
||
AND ((k2.mld_stdmelding_key = sm2.mld_stdmelding_key AND k2.mld_kenmerk_niveau = 'S')
|
||
OR (k2.mld_stdmelding_key = td2.ins_discipline_key AND k2.mld_kenmerk_niveau = 'D')
|
||
OR (k2.mld_stdmelding_key = td2.ins_srtdiscipline_key AND k2.mld_kenmerk_niveau = 'T'))
|
||
AND k2.mld_kenmerk_volgnummer < k1.mld_kenmerk_volgnummer);
|
||
|
||
IF v_folder_kkey IS NOT NULL
|
||
THEN
|
||
INSERT INTO fac_result (fac_result_sessionid, fac_result_naam, fac_result_waarde)
|
||
VALUES (psessionid, 'kenmerkpath', 'MLD\M' || TO_CHAR (TRUNC (v_melding_key / 1000), 'FM0000') || '___\M' || v_melding_key || '\' || v_folder_kkey || '\');
|
||
END IF;
|
||
|
||
-- Handle workflow actions for completion (in case of new melding).
|
||
IF v_count = 0
|
||
THEN
|
||
MLD.mld_nextworkflowstep (v_melding_key, -1); -- -1=Initial
|
||
END IF;
|
||
--WHEN UPPER (pto) LIKE 'OPDRACHTNOTITIE@%'
|
||
WHEN INSTR (UPPER (pfrom), 'FACILITYDESK@VANLANSCHOTKEMPEN.COM') > 0 AND UPPER (pto) LIKE 'OPDRACHTNOTITIE@%'
|
||
THEN
|
||
-- Probeer noteur te bepalen op basis van e-mail adres tussen '<>' na eerste voorkomen 'Van:'!
|
||
v_errormsg := 'Fout bepalen noteur';
|
||
IF INSTR (UPPER (pbody), 'VAN:') > 0
|
||
THEN
|
||
v_van_regel := TRIM (SUBSTR (pbody,
|
||
INSTR (UPPER (pbody), 'VAN:') + 4,
|
||
INSTR (SUBSTR (REPLACE (REPLACE (pbody, CHR (13), '#'), CHR (10), '#') || '#', INSTR (pbody, 'VAN:') + 4), '#') - 1));
|
||
|
||
IF INSTR (v_van_regel, '<') > 0 AND INSTR (v_van_regel, '<') < INSTR (v_van_regel, '>')
|
||
THEN
|
||
v_van_email := SUBSTR (v_van_regel, INSTR (v_van_regel, '<') + 1, INSTR (v_van_regel, '>') - INSTR (v_van_regel, '<') - 1);
|
||
END IF;
|
||
END IF;
|
||
|
||
SELECT COUNT (*)
|
||
INTO v_count
|
||
FROM prs_contactpersoon
|
||
WHERE prs_contactpersoon_email IS NULL
|
||
AND prs_perslid_key IS NOT NULL
|
||
AND UPPER (prs_contactpersoon_email) LIKE UPPER (v_van_email) || '%';
|
||
|
||
IF v_count = 1
|
||
THEN
|
||
SELECT prs_perslid_key
|
||
INTO v_perslid_key
|
||
FROM prs_contactpersoon
|
||
WHERE prs_contactpersoon_email IS NULL
|
||
AND prs_perslid_key IS NOT NULL
|
||
AND UPPER (prs_contactpersoon_email) LIKE UPPER (v_van_email) || '%';
|
||
ELSE -- Noteur kan niet 1-duidig worden bepaald, dus Onbekend!
|
||
SELECT prs_perslid_key
|
||
INTO v_perslid_key
|
||
FROM prs_v_aanwezigperslid
|
||
WHERE prs_perslid_key = c_onbekend_key;
|
||
END IF;
|
||
|
||
v_errormsg := 'Fout bepalen opdracht';
|
||
v_opdracht_id := psubject;
|
||
IF REGEXP_INSTR (v_opdracht_id, '\d') > 0
|
||
THEN
|
||
v_opdracht_id := SUBSTR (v_opdracht_id, REGEXP_INSTR (v_opdracht_id, '\d')) || ' '; -- Gedeelte vanaf eerste cijfer in v_exist_ticket plus ' '!
|
||
v_opdracht_id := SUBSTR (v_opdracht_id, 1, REGEXP_INSTR (v_opdracht_id, '\s') - 1); -- Gedeelte tot eerste white space in v_exist_ticket!
|
||
END IF;
|
||
|
||
v_errormsg := 'Fout bepalen opdracht ' || v_opdracht_id;
|
||
SELECT o.mld_opdr_key, o.mld_typeopdr_key
|
||
INTO v_opdracht_key, v_typeopdr_key
|
||
FROM mld_opdr o
|
||
WHERE TO_CHAR (o.mld_melding_key) || '/' || TO_CHAR (o.mld_opdr_bedrijfopdr_volgnr) = SUBSTR (v_opdracht_id, REGEXP_INSTR (v_opdracht_id, '\d'))
|
||
AND NOT EXISTS
|
||
(SELECT 1
|
||
FROM mld_discipline md, mld_stdmelding sm, mld_melding m
|
||
WHERE md.ins_srtdiscipline_key IN (41, 42, 43, 44, 45) -- BE-vakgroeptypen
|
||
AND md.ins_discipline_key = sm.mld_ins_discipline_key
|
||
AND sm.mld_stdmelding_key = m.mld_stdmelding_key
|
||
AND m.mld_melding_key = o.mld_melding_key);
|
||
|
||
-- Body overnemen tot 1e voorkomen van hard afgesproken start DISCLAIMER!
|
||
v_errormsg := 'Fout strippen disclaimer';
|
||
IF INSTR (UPPER (pbody), 'DISCLAIMER') > 0 AND INSTR (UPPER (pbody), 'DE INFORMATIE IN DIT BERICHT') > 0
|
||
THEN
|
||
v_body := TRIM (SUBSTR (pbody, 1, INSTR (UPPER (pbody), 'DE INFORMATIE IN DIT BERICHT') - 12));
|
||
ELSE
|
||
v_body := pbody;
|
||
END IF;
|
||
|
||
v_errormsg := 'Fout toevoegen opdracht-notitie';
|
||
INSERT INTO mld_opdr_note (mld_opdr_key, prs_perslid_key, mld_opdr_note_omschrijving)
|
||
VALUES (v_opdracht_key, v_perslid_key, pfrom || CHR (13) || CHR (10) || psubject || CHR (13) || CHR (10) || SUBSTR (v_body, 1, 2000));
|
||
|
||
v_errormsg := 'Fout bijwerken opdracht-kleurbolletje';
|
||
UPDATE mld_opdr
|
||
SET mld_opdr_flag = 1 -- Zwart
|
||
WHERE mld_opdr_key = v_opdracht_key;
|
||
|
||
-- Find the lowest volgnummer of the Folder-flexfield.
|
||
v_errormsg := 'Fout toevoegen opdracht-bijlage';
|
||
SELECT MIN (k1.mld_kenmerk_key)
|
||
INTO v_folder_kkey
|
||
FROM mld_kenmerk k1, mld_srtkenmerk sk1
|
||
WHERE k1.mld_typeopdr_key = v_typeopdr_key
|
||
AND k1.mld_kenmerk_verwijder IS NULL
|
||
AND k1.mld_kenmerk_niveau = 'O'
|
||
AND k1.mld_srtkenmerk_key = sk1.mld_srtkenmerk_key
|
||
AND sk1.mld_srtkenmerk_kenmerktype = 'M'
|
||
AND NOT EXISTS
|
||
(SELECT 1
|
||
FROM mld_kenmerk k2, mld_srtkenmerk sk2
|
||
WHERE k2.mld_typeopdr_key = v_typeopdr_key
|
||
AND k2.mld_kenmerk_verwijder IS NULL
|
||
AND k2.mld_kenmerk_niveau = 'O'
|
||
AND k2.mld_srtkenmerk_key = sk2.mld_srtkenmerk_key
|
||
AND sk2.mld_srtkenmerk_kenmerktype = 'M'
|
||
AND k2.mld_kenmerk_volgnummer < k1.mld_kenmerk_volgnummer);
|
||
|
||
IF v_folder_kkey IS NOT NULL
|
||
THEN
|
||
INSERT INTO fac_result (fac_result_sessionid, fac_result_naam, fac_result_waarde)
|
||
VALUES (psessionid, 'kenmerkpath', 'MLD\O' || TO_CHAR (TRUNC (v_opdracht_key / 1000), 'FM0000') || '___\O' || v_opdracht_key || '\' || v_folder_kkey || '\');
|
||
END IF;
|
||
--WHEN UPPER (pto) LIKE 'BELGIEMELDING@%'
|
||
WHEN INSTR (UPPER (pfrom), 'FACILITIES@MERCIERVANLANSCHOT.BE') > 0 AND UPPER (pto) LIKE 'BELGIEMELDING@%'
|
||
THEN
|
||
-- Probeer melder te bepalen op basis van e-mail adres tussen '<>' na eerste voorkomen 'Van:'!
|
||
v_errormsg := 'Fout bepalen melder';
|
||
IF INSTR (UPPER (pbody), 'VAN:') > 0
|
||
THEN
|
||
v_van_regel := TRIM (SUBSTR (pbody,
|
||
INSTR (UPPER (pbody), 'VAN:') + 4,
|
||
INSTR (SUBSTR (REPLACE (REPLACE (pbody, CHR (13), '#'), CHR (10), '#') || '#', INSTR (pbody, 'VAN:') + 4), '#') - 1));
|
||
|
||
IF INSTR (v_van_regel, '<') > 0 AND INSTR (v_van_regel, '<') < INSTR (v_van_regel, '>')
|
||
THEN
|
||
v_van_email := SUBSTR (v_van_regel, INSTR (v_van_regel, '<') + 1, INSTR (v_van_regel, '>') - INSTR (v_van_regel, '<') - 1);
|
||
END IF;
|
||
END IF;
|
||
|
||
SELECT COUNT (*)
|
||
INTO v_count
|
||
FROM prs_v_aanwezigperslid
|
||
WHERE UPPER (prs_perslid_email) LIKE UPPER (v_van_email) || '%';
|
||
|
||
IF v_count = 1
|
||
THEN
|
||
SELECT p.prs_perslid_key, a.prs_kostenplaats_key, MIN (wpg.alg_locatie_key)
|
||
INTO v_perslid_key, v_kostenplaats_key, v_locatie_key
|
||
FROM prs_v_aanwezigperslid p, prs_afdeling a,
|
||
(SELECT pw.prs_perslid_key, pw.prs_werkplek_key
|
||
FROM prs_perslidwerkplek pw
|
||
WHERE NOT EXISTS
|
||
(SELECT 1
|
||
FROM prs_perslidwerkplek
|
||
WHERE prs_perslid_key = pw.prs_perslid_key
|
||
AND prs_perslidwerkplek_key > pw.prs_perslidwerkplek_key)) pw,
|
||
prs_v_werkplekperslid_gegevens wpg
|
||
WHERE p.prs_afdeling_key = a.prs_afdeling_key
|
||
AND UPPER (p.prs_perslid_email) LIKE UPPER (v_van_email) || '%'
|
||
AND p.prs_perslid_key = pw.prs_perslid_key(+)
|
||
AND pw.prs_werkplek_key = wpg.prs_werkplek_key(+)
|
||
GROUP BY p.prs_perslid_key, a.prs_kostenplaats_key;
|
||
ELSE -- Melder kan niet 1-duidig worden bepaald, dus Onbekend en 301=BEL-ANT!
|
||
SELECT p.prs_perslid_key, a.prs_kostenplaats_key, 1
|
||
INTO v_perslid_key, v_kostenplaats_key, v_locatie_key
|
||
FROM prs_v_aanwezigperslid p, prs_afdeling a
|
||
WHERE p.prs_afdeling_key = a.prs_afdeling_key
|
||
AND p.prs_perslid_key = c_onbekend_key;
|
||
END IF;
|
||
|
||
-- Bepaal de afgesproken soortmelding met key=3801=Mailmelding Belgi<67>!
|
||
v_errormsg := 'Fout bepalen soortmelding';
|
||
SELECT mld_ins_discipline_key, mld_stdmelding_key
|
||
INTO v_discipline_key, v_stdmelding_key
|
||
FROM mld_stdmelding
|
||
WHERE mld_stdmelding_key = 3801;
|
||
|
||
-- Body overnemen tot 1e voorkomen van hard afgesproken start DISCLAIMER!
|
||
v_errormsg := 'Fout strippen disclaimer';
|
||
IF INSTR (UPPER (pbody), 'DISCLAIMER') > 0 --AND INSTR (UPPER (pbody), 'DE INFORMATIE IN DIT BERICHT') > 0
|
||
THEN
|
||
--v_body := TRIM (SUBSTR (pbody, 1, INSTR (UPPER (pbody), 'DE INFORMATIE IN DIT BERICHT') - 12));
|
||
v_body := TRIM (SUBSTR (pbody, 1, INSTR (UPPER (pbody), 'DISCLAIMER') - 1));
|
||
ELSE
|
||
v_body := pbody;
|
||
END IF;
|
||
|
||
-- Suggested extensions:
|
||
-- - Check for MLDUSE-write autorisations
|
||
-- - Parse the subject to find the appropriate stdmelding, if uniquely possible
|
||
-- - Append (as a note?) to an existing melding if #key is found in the subject
|
||
v_errormsg := 'Fout toevoegen melding';
|
||
INSERT INTO mld_melding (mld_melding_module,
|
||
mld_meldbron_key,
|
||
mld_alg_locatie_key,
|
||
mld_alg_onroerendgoed_keys,
|
||
mld_melding_datum,
|
||
mld_melding_omschrijving,
|
||
mld_stdmelding_key,
|
||
mld_melding_t_uitvoertijd,
|
||
prs_kostenplaats_key,
|
||
prs_perslid_key,
|
||
prs_perslid_key_voor,
|
||
mld_melding_status,
|
||
mld_melding_spoed,
|
||
mld_melding_onderwerp,
|
||
mld_melding_behandelaar2_key,
|
||
mld_ins_discipline_key)
|
||
VALUES ('MLD',
|
||
4, -- Email
|
||
COALESCE (v_locatie_key, 301), -- Fallback op 301=BEL-ANT
|
||
NULL, --v_onrgoed_keys,
|
||
SYSDATE,
|
||
SUBSTR (v_body, 1, 2000),
|
||
v_stdmelding_key,
|
||
NULL,
|
||
v_kostenplaats_key,
|
||
v_perslid_key,
|
||
v_perslid_key,
|
||
NULL,
|
||
3, -- Prio normaal
|
||
SUBSTR (psubject, 1, 80),
|
||
NULL,
|
||
NULL) -- BT?
|
||
RETURNING mld_melding_key
|
||
INTO v_melding_key;
|
||
|
||
mld.setmeldingstatus (v_melding_key, 2, v_perslid_key);
|
||
|
||
INSERT INTO fac_result (fac_result_sessionid, fac_result_naam, fac_result_waarde)
|
||
VALUES (psessionid, 'maillog', 'Geregistreerd onder melding ' || v_melding_key);
|
||
|
||
-- Find the lowest volgnummer of the Folder-flexfield.
|
||
v_errormsg := 'Fout toevoegen melding-bijlage';
|
||
SELECT MIN (k1.mld_kenmerk_key)
|
||
INTO v_folder_kkey
|
||
FROM mld_stdmelding sm1, ins_tab_discipline td1, mld_kenmerk k1, mld_srtkenmerk sk1
|
||
WHERE sm1.mld_stdmelding_key = v_stdmelding_key
|
||
AND sm1.mld_ins_discipline_key = td1.ins_discipline_key
|
||
AND k1.mld_kenmerk_verwijder IS NULL
|
||
AND k1.mld_srtkenmerk_key = sk1.mld_srtkenmerk_key
|
||
AND sk1.mld_srtkenmerk_kenmerktype = 'M'
|
||
AND ((k1.mld_stdmelding_key = sm1.mld_stdmelding_key AND k1.mld_kenmerk_niveau = 'S')
|
||
OR (k1.mld_stdmelding_key = td1.ins_discipline_key AND k1.mld_kenmerk_niveau = 'D')
|
||
OR (k1.mld_stdmelding_key = td1.ins_srtdiscipline_key AND k1.mld_kenmerk_niveau = 'T'))
|
||
AND NOT EXISTS
|
||
(SELECT 1
|
||
FROM mld_stdmelding sm2, ins_tab_discipline td2, mld_kenmerk k2, mld_srtkenmerk sk2
|
||
WHERE sm2.mld_stdmelding_key = v_stdmelding_key
|
||
AND sm2.mld_ins_discipline_key = td2.ins_discipline_key
|
||
AND k2.mld_kenmerk_verwijder IS NULL
|
||
AND k2.mld_srtkenmerk_key = sk2.mld_srtkenmerk_key
|
||
AND sk2.mld_srtkenmerk_kenmerktype = 'M'
|
||
AND ((k2.mld_stdmelding_key = sm2.mld_stdmelding_key AND k2.mld_kenmerk_niveau = 'S')
|
||
OR (k2.mld_stdmelding_key = td2.ins_discipline_key AND k2.mld_kenmerk_niveau = 'D')
|
||
OR (k2.mld_stdmelding_key = td2.ins_srtdiscipline_key AND k2.mld_kenmerk_niveau = 'T'))
|
||
AND k2.mld_kenmerk_volgnummer < k1.mld_kenmerk_volgnummer);
|
||
|
||
IF v_folder_kkey IS NOT NULL
|
||
THEN
|
||
INSERT INTO fac_result (fac_result_sessionid, fac_result_naam, fac_result_waarde)
|
||
VALUES (psessionid, 'kenmerkpath', 'MLD\M' || TO_CHAR (TRUNC (v_melding_key / 1000), 'FM0000') || '___\M' || v_melding_key || '\' || v_folder_kkey || '\');
|
||
END IF;
|
||
|
||
-- Handle workflow actions for completion (in case of new melding).
|
||
IF v_count = 0
|
||
THEN
|
||
MLD.mld_nextworkflowstep (v_melding_key, -1); -- -1=Initial
|
||
END IF;
|
||
--WHEN UPPER (pto) LIKE 'BELGIENOTITIE@%'
|
||
WHEN INSTR (UPPER (pfrom), 'FACILITIES@MERCIERVANLANSCHOT.BE') > 0 AND UPPER (pto) LIKE 'BELGIENOTITIE@%'
|
||
THEN
|
||
-- Probeer noteur te bepalen op basis van e-mail adres tussen '<>' na eerste voorkomen 'Van:'!
|
||
v_errormsg := 'Fout bepalen noteur';
|
||
IF INSTR (UPPER (pbody), 'VAN:') > 0
|
||
THEN
|
||
v_van_regel := TRIM (SUBSTR (pbody,
|
||
INSTR (UPPER (pbody), 'VAN:') + 4,
|
||
INSTR (SUBSTR (REPLACE (REPLACE (pbody, CHR (13), '#'), CHR (10), '#') || '#', INSTR (pbody, 'VAN:') + 4), '#') - 1));
|
||
|
||
IF INSTR (v_van_regel, '<') > 0 AND INSTR (v_van_regel, '<') < INSTR (v_van_regel, '>')
|
||
THEN
|
||
v_van_email := SUBSTR (v_van_regel, INSTR (v_van_regel, '<') + 1, INSTR (v_van_regel, '>') - INSTR (v_van_regel, '<') - 1);
|
||
END IF;
|
||
END IF;
|
||
|
||
SELECT COUNT (*)
|
||
INTO v_count
|
||
FROM prs_contactpersoon
|
||
WHERE prs_contactpersoon_email IS NULL
|
||
AND prs_perslid_key IS NOT NULL
|
||
AND UPPER (prs_contactpersoon_email) LIKE UPPER (v_van_email) || '%';
|
||
|
||
IF v_count = 1
|
||
THEN
|
||
SELECT prs_perslid_key
|
||
INTO v_perslid_key
|
||
FROM prs_contactpersoon
|
||
WHERE prs_contactpersoon_email IS NULL
|
||
AND prs_perslid_key IS NOT NULL
|
||
AND UPPER (prs_contactpersoon_email) LIKE UPPER (v_van_email) || '%';
|
||
ELSE -- Noteur kan niet 1-duidig worden bepaald, dus Onbekend!
|
||
SELECT prs_perslid_key
|
||
INTO v_perslid_key
|
||
FROM prs_v_aanwezigperslid
|
||
WHERE prs_perslid_key = c_onbekend_key;
|
||
END IF;
|
||
|
||
v_errormsg := 'Fout bepalen opdracht';
|
||
v_opdracht_id := psubject;
|
||
IF REGEXP_INSTR (v_opdracht_id, '\d') > 0
|
||
THEN
|
||
v_opdracht_id := SUBSTR (v_opdracht_id, REGEXP_INSTR (v_opdracht_id, '\d')) || ' '; -- Gedeelte vanaf eerste cijfer in v_exist_ticket plus ' '!
|
||
v_opdracht_id := SUBSTR (v_opdracht_id, 1, REGEXP_INSTR (v_opdracht_id, '\s') - 1); -- Gedeelte tot eerste white space in v_exist_ticket!
|
||
END IF;
|
||
|
||
v_errormsg := 'Fout bepalen opdracht ' || v_opdracht_id;
|
||
SELECT o.mld_opdr_key, o.mld_typeopdr_key
|
||
INTO v_opdracht_key, v_typeopdr_key
|
||
FROM mld_opdr o
|
||
WHERE TO_CHAR (o.mld_melding_key) || '/' || TO_CHAR (o.mld_opdr_bedrijfopdr_volgnr) = SUBSTR (v_opdracht_id, REGEXP_INSTR (v_opdracht_id, '\d'))
|
||
AND EXISTS
|
||
(SELECT 1
|
||
FROM mld_discipline md, mld_stdmelding sm, mld_melding m
|
||
WHERE md.ins_srtdiscipline_key IN (41, 42, 43, 44, 45) -- BE-vakgroeptypen
|
||
AND md.ins_discipline_key = sm.mld_ins_discipline_key
|
||
AND sm.mld_stdmelding_key = m.mld_stdmelding_key
|
||
AND m.mld_melding_key = o.mld_melding_key);
|
||
|
||
-- Body overnemen tot 1e voorkomen van hard afgesproken start DISCLAIMER!
|
||
v_errormsg := 'Fout strippen disclaimer';
|
||
IF INSTR (UPPER (pbody), 'DISCLAIMER') > 0 AND INSTR (UPPER (pbody), 'DE INFORMATIE IN DIT BERICHT') > 0
|
||
THEN
|
||
v_body := TRIM (SUBSTR (pbody, 1, INSTR (UPPER (pbody), 'DE INFORMATIE IN DIT BERICHT') - 12));
|
||
ELSE
|
||
v_body := pbody;
|
||
END IF;
|
||
|
||
v_errormsg := 'Fout toevoegen opdracht-notitie';
|
||
INSERT INTO mld_opdr_note (mld_opdr_key, prs_perslid_key, mld_opdr_note_omschrijving)
|
||
VALUES (v_opdracht_key, v_perslid_key, pfrom || CHR (13) || CHR (10) || psubject || CHR (13) || CHR (10) || SUBSTR (v_body, 1, 2000));
|
||
|
||
v_errormsg := 'Fout bijwerken opdracht-kleurbolletje';
|
||
UPDATE mld_opdr
|
||
SET mld_opdr_flag = 1 -- Zwart
|
||
WHERE mld_opdr_key = v_opdracht_key;
|
||
|
||
-- Find the lowest volgnummer of the Folder-flexfield.
|
||
v_errormsg := 'Fout toevoegen opdracht-bijlage';
|
||
SELECT MIN (k1.mld_kenmerk_key)
|
||
INTO v_folder_kkey
|
||
FROM mld_kenmerk k1, mld_srtkenmerk sk1
|
||
WHERE k1.mld_typeopdr_key = v_typeopdr_key
|
||
AND k1.mld_kenmerk_verwijder IS NULL
|
||
AND k1.mld_kenmerk_niveau = 'O'
|
||
AND k1.mld_srtkenmerk_key = sk1.mld_srtkenmerk_key
|
||
AND sk1.mld_srtkenmerk_kenmerktype = 'M'
|
||
AND NOT EXISTS
|
||
(SELECT 1
|
||
FROM mld_kenmerk k2, mld_srtkenmerk sk2
|
||
WHERE k2.mld_typeopdr_key = v_typeopdr_key
|
||
AND k2.mld_kenmerk_verwijder IS NULL
|
||
AND k2.mld_kenmerk_niveau = 'O'
|
||
AND k2.mld_srtkenmerk_key = sk2.mld_srtkenmerk_key
|
||
AND sk2.mld_srtkenmerk_kenmerktype = 'M'
|
||
AND k2.mld_kenmerk_volgnummer < k1.mld_kenmerk_volgnummer);
|
||
|
||
IF v_folder_kkey IS NOT NULL
|
||
THEN
|
||
INSERT INTO fac_result (fac_result_sessionid, fac_result_naam, fac_result_waarde)
|
||
VALUES (psessionid, 'kenmerkpath', 'MLD\O' || TO_CHAR (TRUNC (v_opdracht_key / 1000), 'FM0000') || '___\O' || v_opdracht_key || '\' || v_folder_kkey || '\');
|
||
END IF;
|
||
ELSE
|
||
INSERT INTO fac_result (fac_result_sessionid, fac_result_naam, fac_result_waarde)
|
||
VALUES (psessionid, 'errormsg', 'Ontvanger ongeldig - Neem contact op met uw systeembeheerder ');
|
||
END CASE;
|
||
EXCEPTION
|
||
WHEN OTHERS
|
||
THEN
|
||
oracle_err_num := SQLCODE;
|
||
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
|
||
v_errormsg := v_errormsg || ' ORACLE (error ' || oracle_err_num || '/' || oracle_err_mes || ')';
|
||
fac.writelog ('PROCESSEMAIL', 'E', 'VLKC_processemail afgebroken!', '[' || v_van_email || '] ' || v_errormsg);
|
||
INSERT INTO fac_result (fac_result_sessionid, fac_result_naam, fac_result_waarde)
|
||
VALUES (psessionid, 'errormsg', 'Database fout - Neem contact op met uw systeembeheerder ');
|
||
COMMIT;
|
||
END;
|
||
/
|
||
|
||
-- VLKC#65151: Uitrijkaarten.
|
||
CREATE OR REPLACE VIEW vlkc_v_rap_uitrijkaarten
|
||
(
|
||
afspraakmaand,
|
||
afspraakdatum,
|
||
afspraakdatum_van,
|
||
afspraakdatum_tot,
|
||
afspraaknr, -- Niet gevraagd
|
||
parkeerpasnummer, -- 23-cijferig
|
||
uitrijkaart,
|
||
uitrijkaartprijs,
|
||
contactpersoon, -- Niet gevraagd
|
||
gastheer, -- Niet gevraagd
|
||
bezoeker,
|
||
opmerking, -- Niet gevraagd
|
||
kostenplaats,
|
||
kostenplaats_bezoeker,
|
||
kostenplaats_gastheer,
|
||
locatie,
|
||
bez_afspraak_key
|
||
)
|
||
AS
|
||
SELECT TO_CHAR (x.bez_afspraak_datum, 'yyyy-mm') maand,
|
||
x.bez_afspraak_datum,
|
||
x.bez_afspraak_datum van,
|
||
x.bez_afspraak_eind tot,
|
||
TO_CHAR (x.bez_afspraak_key) afspraaknr,
|
||
pp.bez_kenmerkwaarde_waarde parkeerpasnummer,
|
||
uk_ud.fac_usrdata_omschr uitrijkaart,
|
||
uk_ud.fac_usrdata_prijs uitrijkaartprijs,
|
||
x.contactpersoon,
|
||
x.gastheer,
|
||
x.bez_afspraak_naam,
|
||
x.bez_afspraak_opmerking,
|
||
COALESCE (kpb.prs_kostenplaats_nr, kph.prs_kostenplaats_nr) kp,
|
||
kpb.prs_kostenplaats_nr kp_bezoeker,
|
||
DECODE (pb.prs_perslid_key, NULL, kph.prs_kostenplaats_nr, NULL) kp_gastheer,
|
||
l.alg_locatie_omschrijving || ' (' || l.alg_locatie_code || ')',
|
||
x.bez_afspraak_key
|
||
FROM (SELECT a.bez_afspraak_key,
|
||
a.bez_afspraak_datum,
|
||
a.bez_afspraak_eind,
|
||
a.bez_afspraak_opmerking,
|
||
a.bez_afspraak_host_key,
|
||
a.alg_locatie_key,
|
||
b.bez_bezoekers_key,
|
||
b.bez_afspraak_naam,
|
||
b.prs_perslid_key,
|
||
pc.prs_perslid_naam_full contactpersoon,
|
||
ph.prs_perslid_naam_full gastheer
|
||
FROM bez_afspraak a,
|
||
bez_bezoekers b,
|
||
prs_v_perslid_fullnames_all pc,
|
||
prs_v_perslid_fullnames_all ph
|
||
WHERE a.bez_afspraak_key = b.bez_afspraak_key
|
||
AND a.bez_afspraak_contact_key = pc.prs_perslid_key
|
||
AND a.bez_afspraak_host_key = ph.prs_perslid_key) x
|
||
LEFT JOIN prs_perslid pb
|
||
ON x.prs_perslid_key = pb.prs_perslid_key
|
||
LEFT JOIN prs_afdeling ab
|
||
ON pb.prs_afdeling_key = ab.prs_afdeling_key
|
||
LEFT JOIN prs_kostenplaats kpb
|
||
ON ab.prs_kostenplaats_key = kpb.prs_kostenplaats_key
|
||
LEFT JOIN prs_perslid ph
|
||
ON x.bez_afspraak_host_key = ph.prs_perslid_key
|
||
LEFT JOIN prs_afdeling ah
|
||
ON ph.prs_afdeling_key = ah.prs_afdeling_key
|
||
LEFT JOIN prs_kostenplaats kph
|
||
ON ah.prs_kostenplaats_key = kph.prs_kostenplaats_key
|
||
LEFT JOIN bez_kenmerkwaarde pp
|
||
ON x.bez_bezoekers_key = pp.bez_bezoekers_key
|
||
AND pp.bez_kenmerkwaarde_verwijder IS NULL
|
||
AND pp.bez_kenmerk_key = 1040 -- Parkeerpasnummer
|
||
LEFT JOIN bez_kenmerkwaarde uk
|
||
ON x.bez_bezoekers_key = uk.bez_bezoekers_key
|
||
AND uk.bez_kenmerkwaarde_verwijder IS NULL
|
||
AND uk.bez_kenmerk_key = 1060 -- Uitrijkaart
|
||
LEFT JOIN fac_v_aanwezigusrdata uk_ud
|
||
ON fac.safe_to_number (uk.bez_kenmerkwaarde_waarde) = uk_ud.fac_usrdata_key
|
||
LEFT JOIN alg_locatie l
|
||
ON x.alg_locatie_key = l.alg_locatie_key
|
||
WHERE x.bez_afspraak_datum > TO_DATE ('01-01-2020', 'dd-mm-yyyy')
|
||
AND x.bez_afspraak_datum > TRUNC (ADD_MONTHS (SYSDATE, -12), 'yyyy');
|
||
|
||
-- VLKC#69695: Automatisch uitgegeven opdrachten (bijna kopie van vlkc_v_rap_mld_kosten).
|
||
CREATE OR REPLACE VIEW vlkc_v_rap_autoorders
|
||
(
|
||
vakgroeptype,
|
||
vakgroep,
|
||
soortmelding,
|
||
opdrachttype,
|
||
opdrachtid,
|
||
uitvoerende,
|
||
omschrijving,
|
||
status,
|
||
aangemaakt,
|
||
toegekend,
|
||
verzonden,
|
||
kosten_opdr,
|
||
kosten_fact,
|
||
aantal_fact,
|
||
einddatum,
|
||
mld_opdr_key, -- VLKC#71567
|
||
uitvoerende_key, -- VLKC#72197
|
||
locatie_key, -- VLKC#72197
|
||
locatiecode, -- VLKC#72197
|
||
locatie -- VLKC#72197
|
||
)
|
||
AS
|
||
SELECT x.ins_srtdiscipline_omschrijving vakgroeptype,
|
||
x.ins_discipline_omschrijving vakgroep,
|
||
x.mld_stdmelding_omschrijving soortmelding,
|
||
x.mld_typeopdr_omschrijving opdrachttype,
|
||
TO_CHAR (x.mld_melding_key) || '/' || TO_CHAR (x.mld_opdr_bedrijfopdr_volgnr) opdrachtid,
|
||
COALESCE (x.prs_bedrijf_naam, x.prs_perslid_naam_full) uitvoerende,
|
||
x.mld_opdr_omschrijving omschrijving,
|
||
x.mld_statusopdr_omschrijving status,
|
||
x.mld_opdr_datumbegin aangemaakt,
|
||
fac.gettrackingdate ('ORDNEW', x.mld_opdr_key) toegekend,
|
||
x.mld_opdr_verzonden verzonden,
|
||
ROUND (x.mld_opdr_kosten, 2) kosten_opdr,
|
||
gefactureerd.kosten kosten_fact,
|
||
gefactureerd.aantal aantal_fact,
|
||
x.mld_opdr_einddatum einddatum,
|
||
x.mld_opdr_key,
|
||
x.mld_uitvoerende_keys,
|
||
x.alg_locatie_key,
|
||
x.alg_locatie_code,
|
||
x.alg_locatie_omschrijving
|
||
FROM (SELECT o.mld_opdr_key,
|
||
o.mld_melding_key,
|
||
o.mld_opdr_bedrijfopdr_volgnr,
|
||
sd.ins_srtdiscipline_omschrijving,
|
||
md.ins_discipline_omschrijving,
|
||
sm.mld_stdmelding_omschrijving,
|
||
ot.mld_typeopdr_key,
|
||
ot.mld_typeopdr_omschrijving,
|
||
o.mld_uitvoerende_keys,
|
||
lev.prs_bedrijf_naam,
|
||
iuv.prs_perslid_naam_full,
|
||
o.mld_opdr_omschrijving,
|
||
os.mld_statusopdr_omschrijving,
|
||
o.mld_opdr_datumbegin,
|
||
o.mld_opdr_einddatum,
|
||
o.mld_opdr_verzonden,
|
||
o.mld_opdr_kosten,
|
||
l.alg_locatie_key,
|
||
l.alg_locatie_code,
|
||
l.alg_locatie_omschrijving
|
||
FROM mld_opdr o,
|
||
mld_typeopdr ot,
|
||
mld_melding m,
|
||
mld_discipline md,
|
||
mld_stdmelding sm,
|
||
ins_srtdiscipline sd,
|
||
prs_bedrijf lev,
|
||
prs_v_perslid_fullnames iuv,
|
||
mld_statusopdr os,
|
||
alg_locatie l
|
||
WHERE o.mld_melding_key = m.mld_melding_key
|
||
AND o.mld_typeopdr_key = ot.mld_typeopdr_key
|
||
AND m.mld_stdmelding_key = sm.mld_stdmelding_key
|
||
AND sm.mld_stdmelding_autoorder = 1 -- Autoorder!
|
||
AND sm.mld_typeopdr_key IS NOT NULL
|
||
AND sm.prs_dienst_key IS NOT NULL
|
||
AND FLOOR ((m.mld_melding_datum - o.mld_opdr_datumbegin) * 24 * 60) = 0 -- Opdracht binnen minuut na melding aangemaakt!
|
||
AND sm.mld_ins_discipline_key = md.ins_discipline_key
|
||
AND md.ins_srtdiscipline_key = sd.ins_srtdiscipline_key
|
||
AND o.mld_uitvoerende_keys = lev.prs_bedrijf_key(+)
|
||
AND o.mld_uitvoerende_keys = iuv.prs_perslid_key(+)
|
||
AND o.mld_statusopdr_key = os.mld_statusopdr_key
|
||
AND m.mld_alg_locatie_key = l.alg_locatie_key) x
|
||
LEFT JOIN ( SELECT mld_opdr_key,
|
||
SUM (fin_factuur_totaal + fin_factuur_totaal_btw) kosten,
|
||
COUNT (DISTINCT fin_factuur_key) aantal
|
||
FROM fin_factuur
|
||
WHERE fin_factuur_verwijder IS NULL
|
||
AND fin_factuur_statuses_key IN (6, 7) -- Akkoord/Verwerkt
|
||
GROUP BY mld_opdr_key) gefactureerd
|
||
ON x.mld_opdr_key = gefactureerd.mld_opdr_key;
|
||
|
||
-- VLKC#69696: Alle opdrachten incl. automatisch vs. niet automatisch aangemaakt.
|
||
CREATE OR REPLACE VIEW vlkc_v_udr_opdrachten
|
||
(
|
||
vakgroeptype,
|
||
vakgroep,
|
||
soortmelding,
|
||
mld_typeopdr_key,
|
||
opdrachttype,
|
||
mld_opdr_key,
|
||
mld_melding_key,
|
||
opdrachtid,
|
||
uitvoerende,
|
||
open_gesloten,
|
||
status,
|
||
aangemaakt,
|
||
toegekend,
|
||
verzonden,
|
||
geaccepteerd,
|
||
afgemeld,
|
||
afgerond,
|
||
verwerkt,
|
||
auto_desk
|
||
)
|
||
AS
|
||
SELECT sd.ins_srtdiscipline_omschrijving,
|
||
md.ins_discipline_omschrijving,
|
||
sm.mld_stdmelding_omschrijving,
|
||
ot.mld_typeopdr_key,
|
||
ot.mld_typeopdr_omschrijving,
|
||
o.mld_opdr_key,
|
||
o.mld_melding_key,
|
||
TO_CHAR (o.mld_melding_key) || '/' || TO_CHAR (o.mld_opdr_bedrijfopdr_volgnr) opdrachtid,
|
||
COALESCE (lev.prs_bedrijf_naam, iuv.prs_perslid_naam_full) uitvoerende,
|
||
CASE
|
||
WHEN os.mld_statusopdr_key IN (3, 4, 5, 8, 10) THEN 'Open'
|
||
ELSE 'Gesloten'
|
||
END
|
||
open_gesloten,
|
||
os.mld_statusopdr_omschrijving,
|
||
o.mld_opdr_datumbegin aangemaakt,
|
||
fac.gettrackingdate ('ORDNEW', o.mld_opdr_key) toegekend,
|
||
o.mld_opdr_verzonden verzonden,
|
||
fac.gettrackingdate ('ORDACP', o.mld_opdr_key) afgemeld,
|
||
fac.gettrackingdate ('ORDAFM', o.mld_opdr_key) afgemeld,
|
||
fac.gettrackingdate ('ORDAFR', o.mld_opdr_key) afgerond,
|
||
fac.gettrackingdate ('ORDVER', o.mld_opdr_key) verwerkt,
|
||
'Auto-opdracht'
|
||
FROM mld_opdr o,
|
||
mld_typeopdr ot,
|
||
mld_melding m,
|
||
mld_discipline md,
|
||
mld_stdmelding sm,
|
||
ins_srtdiscipline sd,
|
||
prs_bedrijf lev,
|
||
prs_v_perslid_fullnames iuv,
|
||
mld_statusopdr os
|
||
WHERE o.mld_opdr_datumbegin > TRUNC (ADD_MONTHS (SYSDATE, -24), 'yyyy')
|
||
AND o.mld_typeopdr_key = ot.mld_typeopdr_key
|
||
AND o.mld_melding_key = m.mld_melding_key
|
||
AND m.mld_stdmelding_key = sm.mld_stdmelding_key
|
||
AND sm.mld_stdmelding_autoorder = 1 -- Autoorder!
|
||
AND sm.mld_typeopdr_key IS NOT NULL
|
||
AND sm.prs_dienst_key IS NOT NULL
|
||
AND FLOOR ((m.mld_melding_datum - o.mld_opdr_datumbegin) * 24 * 60) = 0 -- Opdracht <1 minuut na melding aangemaakt!
|
||
AND sm.mld_ins_discipline_key = md.ins_discipline_key
|
||
AND md.ins_srtdiscipline_key = sd.ins_srtdiscipline_key
|
||
AND o.mld_uitvoerende_keys = lev.prs_bedrijf_key(+)
|
||
AND o.mld_uitvoerende_keys = iuv.prs_perslid_key(+)
|
||
AND o.mld_statusopdr_key = os.mld_statusopdr_key
|
||
UNION ALL
|
||
SELECT sd.ins_srtdiscipline_omschrijving,
|
||
md.ins_discipline_omschrijving,
|
||
sm.mld_stdmelding_omschrijving,
|
||
ot.mld_typeopdr_key,
|
||
ot.mld_typeopdr_omschrijving,
|
||
o.mld_opdr_key,
|
||
o.mld_melding_key,
|
||
TO_CHAR (o.mld_melding_key) || '/' || TO_CHAR (o.mld_opdr_bedrijfopdr_volgnr) opdrachtid,
|
||
COALESCE (lev.prs_bedrijf_naam, iuv.prs_perslid_naam_full) uitvoerende,
|
||
CASE
|
||
WHEN os.mld_statusopdr_key IN (3, 4, 5, 8, 10) THEN 'Open'
|
||
ELSE 'Gesloten'
|
||
END
|
||
open_gesloten,
|
||
os.mld_statusopdr_omschrijving,
|
||
o.mld_opdr_datumbegin aangemaakt,
|
||
fac.gettrackingdate ('ORDNEW', o.mld_opdr_key) toegekend,
|
||
o.mld_opdr_verzonden verzonden,
|
||
fac.gettrackingdate ('ORDACP', o.mld_opdr_key) afgemeld,
|
||
fac.gettrackingdate ('ORDAFM', o.mld_opdr_key) afgemeld,
|
||
fac.gettrackingdate ('ORDAFR', o.mld_opdr_key) afgerond,
|
||
fac.gettrackingdate ('ORDVER', o.mld_opdr_key) verwerkt,
|
||
'Desk-opdracht'
|
||
FROM mld_opdr o,
|
||
mld_typeopdr ot,
|
||
mld_melding m,
|
||
mld_discipline md,
|
||
mld_stdmelding sm,
|
||
ins_srtdiscipline sd,
|
||
prs_bedrijf lev,
|
||
prs_v_perslid_fullnames iuv,
|
||
mld_statusopdr os
|
||
WHERE o.mld_opdr_datumbegin > TRUNC (ADD_MONTHS (SYSDATE, -24), 'yyyy')
|
||
AND o.mld_typeopdr_key = ot.mld_typeopdr_key
|
||
AND o.mld_melding_key = m.mld_melding_key
|
||
AND m.mld_stdmelding_key = sm.mld_stdmelding_key
|
||
AND (sm.mld_stdmelding_autoorder = 0
|
||
OR sm.mld_typeopdr_key IS NULL
|
||
OR sm.prs_dienst_key IS NULL
|
||
OR FLOOR ((m.mld_melding_datum - o.mld_opdr_datumbegin) * 24 * 60) > 0) -- Opdracht >1 minuut na melding aangemaakt!
|
||
AND sm.mld_ins_discipline_key = md.ins_discipline_key
|
||
AND md.ins_srtdiscipline_key = sd.ins_srtdiscipline_key
|
||
AND o.mld_uitvoerende_keys = lev.prs_bedrijf_key(+)
|
||
AND o.mld_uitvoerende_keys = iuv.prs_perslid_key(+)
|
||
AND o.mld_statusopdr_key = os.mld_statusopdr_key;
|
||
|
||
-- VLKC#69003: Doorlooptijden van uitvoerenden tov. afgesproken uitvoertijd
|
||
-- over gesloten opdrachten.
|
||
CREATE OR REPLACE VIEW VLKC_V_RAP_OPDR_DT
|
||
(
|
||
mld_opdr_key,
|
||
mld_melding_key,
|
||
opdrachtid,
|
||
status,
|
||
uitvoerende_key,
|
||
uitvoerende,
|
||
vakgroeptype,
|
||
fclt_3d_discipline_key,
|
||
vakgroep,
|
||
soortmelding,
|
||
fclt_3d_locatie_key,
|
||
locatiecode,
|
||
locatie,
|
||
mld_typeopdr_key,
|
||
opdrachttype,
|
||
uitvoertijd,
|
||
verstrektdatum,
|
||
afmelddatum,
|
||
--uiterste_afmelddatum,
|
||
geplande_einddatum,
|
||
duur,
|
||
optijd_telaat
|
||
)
|
||
AS
|
||
SELECT x.mld_opdr_key,
|
||
x.mld_melding_key,
|
||
x.ins_srtdiscipline_prefix || TO_CHAR (x.mld_melding_key) || '/' || TO_CHAR (x.mld_opdr_bedrijfopdr_volgnr) opdrachtid,
|
||
x.mld_statusopdr_omschrijving status,
|
||
x.mld_uitvoerende_keys uitvoerende_key,
|
||
COALESCE (x.prs_bedrijf_naam, x.prs_perslid_naam_full) uitvoerende,
|
||
x.ins_srtdiscipline_omschrijving vakgroeptype,
|
||
x.ins_discipline_key vakgroep_key,
|
||
x.ins_discipline_omschrijving vakgroep,
|
||
x.mld_stdmelding_omschrijving soortmelding,
|
||
x.alg_locatie_key,
|
||
x.alg_locatie_code,
|
||
x.alg_locatie_omschrijving,
|
||
x.mld_typeopdr_key,
|
||
x.mld_typeopdr_omschrijving,
|
||
TO_CHAR (x.mld_melding_t_uitvoertijd.tijdsduur) || x.mld_melding_t_uitvoertijd.eenheid uitvoertijd,
|
||
COALESCE (x.verzonden, x.toegekend) verstrektdatum,
|
||
x.afmelddatum,
|
||
--x.uiterste_afmelddatum,
|
||
x.geplande_datum,
|
||
mld.getactualuitvoer (COALESCE (x.verzonden, x.toegekend), x.afmelddatum, x.mld_stdmelding_key, NULL, NULL, NULL, 'U').tijdsduur duur,
|
||
--DECODE (SIGN (x.uiterste_afmelddatum - x.afmelddatum), -1, 'Te laat', 'Op tijd')
|
||
DECODE (SIGN (x.geplande_datum - x.afmelddatum),
|
||
-1, 'Te laat',
|
||
DECODE (SIGN (x.wd_voor_geplande_datum - x.afmelddatum),
|
||
-1, 'Dag voor einddatum',
|
||
'Binnen einddatum'))
|
||
optijd_telaat
|
||
FROM (SELECT o.mld_opdr_key,
|
||
o.mld_melding_key,
|
||
o.mld_opdr_bedrijfopdr_volgnr,
|
||
os.mld_statusopdr_omschrijving,
|
||
o.mld_uitvoerende_keys,
|
||
lev.prs_bedrijf_naam,
|
||
iuv.prs_perslid_naam_full,
|
||
sd.ins_srtdiscipline_prefix,
|
||
sd.ins_srtdiscipline_omschrijving,
|
||
md.ins_discipline_key,
|
||
md.ins_discipline_omschrijving,
|
||
sm.mld_stdmelding_key,
|
||
sm.mld_stdmelding_omschrijving,
|
||
l.alg_locatie_key,
|
||
l.alg_locatie_code,
|
||
l.alg_locatie_omschrijving,
|
||
ot.mld_typeopdr_key,
|
||
ot.mld_typeopdr_omschrijving,
|
||
m.mld_melding_spoed,
|
||
m.mld_melding_t_uitvoertijd,
|
||
fac.gettrackingdate ('ORDNEW', o.mld_opdr_key) toegekend,
|
||
o.mld_opdr_verzonden verzonden,
|
||
fac.gettrackingdate ('ORDAFM', o.mld_opdr_key) afmelddatum,
|
||
--fac.datumtijdplusuitvoertijd (
|
||
-- COALESCE (o.mld_opdr_verzonden, fac.gettrackingdate ('ORDNEW', o.mld_opdr_key)),
|
||
-- m.mld_melding_t_uitvoertijd.tijdsduur,
|
||
-- m.mld_melding_t_uitvoertijd.eenheid)
|
||
-- uiterste_afmelddatum
|
||
o.mld_opdr_einddatum geplande_datum,
|
||
--fac.datumtijdplusuitvoertijd (
|
||
-- COALESCE (o.mld_opdr_verzonden, fac.gettrackingdate ('ORDNEW', o.mld_opdr_key)),
|
||
-- DECODE (m.mld_melding_t_uitvoertijd.eenheid,
|
||
-- 'D', GREATEST (m.mld_melding_t_uitvoertijd.tijdsduur - 1, 0),
|
||
-- GREATEST (m.mld_melding_t_uitvoertijd.tijdsduur - 9, 0)), -- 'U'
|
||
-- m.mld_melding_t_uitvoertijd.eenheid)
|
||
-- dag_voor_uiterste_afmdat,
|
||
--o.mld_opdr_einddatum - 1 d_voor_geplande_datum, -- Dag voor geplande einddatum
|
||
fac.datumtijdplusuitvoertijd (
|
||
o.mld_opdr_einddatum - 14,
|
||
mld.getactualuitvoer (o.mld_opdr_einddatum - 14, o.mld_opdr_einddatum, sm.mld_stdmelding_key, -1, -1, -1, 'D').tijdsduur - 1,
|
||
'D')
|
||
wd_voor_geplande_datum -- Werkdag voor geplande einddatum (niet triviaal, maar best slim bedacht, al zeg ik het zelf)
|
||
FROM mld_opdr o,
|
||
mld_typeopdr ot,
|
||
mld_melding m,
|
||
alg_locatie l,
|
||
mld_stdmelding sm,
|
||
mld_discipline md,
|
||
ins_srtdiscipline sd,
|
||
prs_bedrijf lev,
|
||
prs_v_perslid_fullnames iuv,
|
||
mld_statusopdr os
|
||
WHERE o.mld_opdr_datumbegin > TRUNC (ADD_MONTHS (SYSDATE, -24), 'yyyy')
|
||
AND o.mld_statusopdr_key IN (6, 7, 9) -- Gesloten opdrachten (excl. Afgewezen/Niet akkoord)
|
||
AND o.mld_typeopdr_key = ot.mld_typeopdr_key
|
||
AND o.mld_melding_key = m.mld_melding_key
|
||
AND m.mld_alg_locatie_key = l.alg_locatie_key(+)
|
||
AND m.mld_stdmelding_key = sm.mld_stdmelding_key
|
||
AND sm.mld_ins_discipline_key = md.ins_discipline_key
|
||
AND md.ins_srtdiscipline_key = sd.ins_srtdiscipline_key
|
||
AND o.mld_uitvoerende_keys = lev.prs_bedrijf_key(+)
|
||
AND o.mld_uitvoerende_keys = iuv.prs_perslid_key(+)
|
||
AND o.mld_statusopdr_key = os.mld_statusopdr_key) x;
|
||
|
||
-- VLKC#72196: Doorlooptijden van uitvoerenden tov. afgesproken uitvoertijd
|
||
-- over open opdrachten.
|
||
CREATE OR REPLACE VIEW VLKC_V_RAP_OPDR_DT_OPEN
|
||
(
|
||
mld_opdr_key,
|
||
mld_melding_key,
|
||
opdrachtid,
|
||
status,
|
||
uitvoerende_key,
|
||
uitvoerende,
|
||
vakgroeptype,
|
||
fclt_3d_discipline_key,
|
||
vakgroep,
|
||
soortmelding,
|
||
fclt_3d_locatie_key,
|
||
locatiecode,
|
||
locatie,
|
||
mld_typeopdr_key,
|
||
opdrachttype,
|
||
uitvoertijd,
|
||
verstrektdatum,
|
||
afmelddatum,
|
||
--uiterste_afmelddatum,
|
||
geplande_einddatum,
|
||
duur,
|
||
optijd_telaat
|
||
)
|
||
AS
|
||
SELECT x.mld_opdr_key,
|
||
x.mld_melding_key,
|
||
x.ins_srtdiscipline_prefix || TO_CHAR (x.mld_melding_key) || '/' || TO_CHAR (x.mld_opdr_bedrijfopdr_volgnr) opdrachtid,
|
||
x.mld_statusopdr_omschrijving status,
|
||
x.mld_uitvoerende_keys uitvoerende_key,
|
||
COALESCE (x.prs_bedrijf_naam, x.prs_perslid_naam_full) uitvoerende,
|
||
x.ins_srtdiscipline_omschrijving vakgroeptype,
|
||
x.ins_discipline_key vakgroep_key,
|
||
x.ins_discipline_omschrijving vakgroep,
|
||
x.mld_stdmelding_omschrijving soortmelding,
|
||
x.alg_locatie_key,
|
||
x.alg_locatie_code,
|
||
x.alg_locatie_omschrijving,
|
||
x.mld_typeopdr_key,
|
||
x.mld_typeopdr_omschrijving,
|
||
TO_CHAR (x.mld_melding_t_uitvoertijd.tijdsduur) || x.mld_melding_t_uitvoertijd.eenheid uitvoertijd,
|
||
COALESCE (x.verzonden, x.toegekend) verstrektdatum,
|
||
x.afmelddatum,
|
||
--x.uiterste_afmdat,
|
||
x.geplande_datum,
|
||
mld.getactualuitvoer (COALESCE (x.verzonden, x.toegekend), COALESCE (x.afmelddatum, SYSDATE), x.mld_stdmelding_key, NULL, NULL, NULL, 'U').tijdsduur duur,
|
||
--DECODE (SIGN (x.uiterste_afmelddatum - COALESCE (x.afmelddatum, SYSDATE)), -1, 'Te laat', 'Op tijd')
|
||
--DECODE (SIGN (x.uiterste_afmdat - COALESCE (x.afmelddatum, SYSDATE)),
|
||
-- -1, 'Te laat',
|
||
-- DECODE (SIGN (x.wd_voor_geplande_datum - COALESCE (x.afmelddatum, SYSDATE)),
|
||
-- -1, 'Dag voor SLA',
|
||
-- 'Binnen SLA'))
|
||
DECODE (SIGN (x.geplande_datum - COALESCE (x.afmelddatum, SYSDATE)),
|
||
-1, 'Te laat',
|
||
DECODE (SIGN (x.wd_voor_geplande_datum - COALESCE (x.afmelddatum, SYSDATE)),
|
||
-1, 'Dag voor einddatum',
|
||
'Binnen einddatum'))
|
||
optijd_telaat
|
||
FROM (SELECT o.mld_opdr_key,
|
||
o.mld_melding_key,
|
||
o.mld_opdr_bedrijfopdr_volgnr,
|
||
os.mld_statusopdr_omschrijving,
|
||
o.mld_uitvoerende_keys,
|
||
lev.prs_bedrijf_naam,
|
||
iuv.prs_perslid_naam_full,
|
||
sd.ins_srtdiscipline_prefix,
|
||
sd.ins_srtdiscipline_omschrijving,
|
||
md.ins_discipline_key,
|
||
md.ins_discipline_omschrijving,
|
||
sm.mld_stdmelding_key,
|
||
sm.mld_stdmelding_omschrijving,
|
||
l.alg_locatie_key,
|
||
l.alg_locatie_code,
|
||
l.alg_locatie_omschrijving,
|
||
ot.mld_typeopdr_key,
|
||
ot.mld_typeopdr_omschrijving,
|
||
m.mld_melding_spoed,
|
||
m.mld_melding_t_uitvoertijd,
|
||
fac.gettrackingdate ('ORDNEW', o.mld_opdr_key) toegekend,
|
||
o.mld_opdr_verzonden verzonden,
|
||
fac.gettrackingdate ('ORDAFM', o.mld_opdr_key) afmelddatum,
|
||
--fac.datumtijdplusuitvoertijd (
|
||
-- COALESCE (o.mld_opdr_verzonden, fac.gettrackingdate ('ORDNEW', o.mld_opdr_key)),
|
||
-- m.mld_melding_t_uitvoertijd.tijdsduur,
|
||
-- m.mld_melding_t_uitvoertijd.eenheid)
|
||
-- uiterste_afmdat,
|
||
o.mld_opdr_einddatum geplande_datum,
|
||
--fac.datumtijdplusuitvoertijd (
|
||
-- COALESCE (o.mld_opdr_verzonden, fac.gettrackingdate ('ORDNEW', o.mld_opdr_key)),
|
||
-- DECODE (m.mld_melding_t_uitvoertijd.eenheid,
|
||
-- 'D', GREATEST (m.mld_melding_t_uitvoertijd.tijdsduur - 1, 0),
|
||
-- GREATEST (m.mld_melding_t_uitvoertijd.tijdsduur - 9, 0)), -- 'U'
|
||
-- m.mld_melding_t_uitvoertijd.eenheid)
|
||
-- dag_voor_uiterste_afmdat,
|
||
--o.mld_opdr_einddatum - 1 d_voor_geplande_datum, -- Dag voor geplande einddatum
|
||
fac.datumtijdplusuitvoertijd (
|
||
o.mld_opdr_einddatum - 14,
|
||
mld.getactualuitvoer (o.mld_opdr_einddatum - 14, o.mld_opdr_einddatum, sm.mld_stdmelding_key, -1, -1, -1, 'D').tijdsduur - 1,
|
||
'D')
|
||
wd_voor_geplande_datum -- Werkdag voor geplande einddatum (niet triviaal, maar best slim bedacht, al zeg ik het zelf)
|
||
FROM mld_opdr o,
|
||
mld_typeopdr ot,
|
||
mld_melding m,
|
||
alg_locatie l,
|
||
mld_stdmelding sm,
|
||
mld_discipline md,
|
||
ins_srtdiscipline sd,
|
||
prs_bedrijf lev,
|
||
prs_v_perslid_fullnames iuv,
|
||
mld_statusopdr os
|
||
WHERE o.mld_opdr_datumbegin > TRUNC (ADD_MONTHS (SYSDATE, -24), 'yyyy')
|
||
AND o.mld_statusopdr_key NOT IN (1, 2, 6, 7, 9) -- Open opdrachten
|
||
AND o.mld_typeopdr_key = ot.mld_typeopdr_key
|
||
AND o.mld_melding_key = m.mld_melding_key
|
||
AND m.mld_alg_locatie_key = l.alg_locatie_key(+)
|
||
AND m.mld_stdmelding_key = sm.mld_stdmelding_key
|
||
AND sm.mld_ins_discipline_key = md.ins_discipline_key
|
||
AND md.ins_srtdiscipline_key = sd.ins_srtdiscipline_key
|
||
AND o.mld_uitvoerende_keys = lev.prs_bedrijf_key(+)
|
||
AND o.mld_uitvoerende_keys = iuv.prs_perslid_key(+)
|
||
AND o.mld_statusopdr_key = os.mld_statusopdr_key) x;
|
||
/*
|
||
CREATE OR REPLACE VIEW VLKC_V_UDR_MELDING_PLUS
|
||
(
|
||
MELDING_KEY,
|
||
MELDINGNUMMER,
|
||
MELDING_START_KEY,
|
||
EXTERNNUMMER,
|
||
MELDING_REGIO,
|
||
MELDING_DISTRICT,
|
||
MELDING_LOCATIECODE,
|
||
MELDING_LOCATIE,
|
||
MELDING_LOCATIEPLAATS,
|
||
FCLT_3D_LOCATIE_KEY,
|
||
MELDING_GEBOUWCODE,
|
||
MELDING_GEBOUW,
|
||
MELDING_VERDIEPING,
|
||
MELDING_RUIMTENR,
|
||
MELDING_RUIMTE,
|
||
MELDING_ORDERNR,
|
||
KOSTENSOORTGROEP,
|
||
KOSTENSOORT,
|
||
KOSTENPLAATS,
|
||
KOSTENPLAATS_OMS,
|
||
MELDER,
|
||
MELDER_KEY,
|
||
MELDER_EMAIL,
|
||
AFDELING,
|
||
AFDELING_OMSCHRIJVING,
|
||
FCLT_3D_AFDELING_KEY,
|
||
DIVISIE,
|
||
DIVISIE_OMSCHRIJVING,
|
||
FCLT_3D_DIVISIE_KEY,
|
||
BEDRIJF_KEY,
|
||
INVOERDER,
|
||
MELDBRON,
|
||
SOORTMELDING,
|
||
FCLT_3D_DISCIPLINE_KEY,
|
||
PRODUCTGROEP,
|
||
SUBPRODUCTGROEP,
|
||
BEHANDELGROEP,
|
||
BEHANDELAAR,
|
||
BEHANDELAAR_KEY,
|
||
SUBPRODUCTGROEPGROEP,
|
||
FCLT_3D_DISCIPLINE2_KEY,
|
||
ACTIEVE_BEHANDELGROEP,
|
||
ACTIEVE_BEHANDELAAR_KEY,
|
||
ACTIEVE_BEHANDELAAR,
|
||
MELDING_STATUS,
|
||
SLA_NVT,
|
||
SLA_WERKDGN,
|
||
SLA_WERKUREN,
|
||
SLA_RESPIJTDGN,
|
||
SLA_RESPIJTUREN,
|
||
SLA_ACCPTDGN,
|
||
SLA_ACCPTUREN,
|
||
PLAN_UITVOERTIJD_SLA,
|
||
MELDING_DATUM,
|
||
MELDING_EINDDATUM,
|
||
MELDING_EINDDATUM_STD,
|
||
MELDING_ACCEPTDATUM,
|
||
MELDING_AFGEMELD,
|
||
MELDING_ACCEPTED,
|
||
DOORLOOPTIJD_WERKDGN,
|
||
DOORLOOPTIJD_WERKUREN,
|
||
ONDERWERP,
|
||
VOMSCHRIJVING,
|
||
MELDING_OPMERKING,
|
||
PRIORITEIT,
|
||
PRIORITEITTXT,
|
||
RATING,
|
||
RATING_OPMERKING,
|
||
BOLLETJE,
|
||
ACTIECODE,
|
||
ACCEPT_SLA_DAGEN,
|
||
ACCEPT_SLA_UREN,
|
||
UITVOERING_SLA_DAGEN,
|
||
UITVOERING_SLA_UREN,
|
||
AFSPRAAK_SLA_DAGEN,
|
||
AFSPRAAK_SLA_UREN,
|
||
ACCEPT_SLA_OPTIJD,
|
||
UITVOERING_SLA_OPTIJD,
|
||
AFSPRAAK_SLA_OPTIJD,
|
||
SELFSERVICE
|
||
)
|
||
AS
|
||
SELECT * -- TODO
|
||
FROM mld_v_udr_melding;
|
||
*/
|
||
CREATE OR REPLACE VIEW VLKC_V_UDR_OPDRACHT_PLUS
|
||
(
|
||
OPDRACHT_KEY,
|
||
OPDRACHT_NUMMER,
|
||
OPDRACHT_REGIO,
|
||
OPDRACHT_DISTRICT,
|
||
OPDRACHT_LOCATIE_CODE,
|
||
OPDRACHT_LOCATIE,
|
||
OPDRACHT_LOCATIEPLAATS,
|
||
FCLT_3D_LOCATIE_KEY,
|
||
OPDRACHT_GEBOUWCODE,
|
||
OPDRACHT_GEBOUW,
|
||
OPDRACHT_VERDIEPING,
|
||
OPDRACHT_RUIMTENR,
|
||
OPDRACHT_RUIMTE,
|
||
OPDRACHT_KOSTENPLAATS,
|
||
OPDRACHT_KOSTENPLAATS_OMS,
|
||
MELDING_KEY,
|
||
OPDRACHT_TYPE,
|
||
OPDRACHT_VOLGNUMMER,
|
||
OPDRACHT_STATUS,
|
||
OPDRACHT_DUUR_GEPLAND,
|
||
OPDRACHT_DATUM,
|
||
OPDRACHT_EINDDATUM,
|
||
OPDRACHT_PLANDATUM,
|
||
OPDRACHT_ACCEPTDATUM,
|
||
OPDRACHT_AFGEMELD,
|
||
OPDRACHT_DOORLOOPTIJD,
|
||
OPDRACHT_ACCEPTTIJD,
|
||
OPDRACHT_OMSCHRIJVING,
|
||
OPDRACHT_OPMERKING,
|
||
OPDRACHT_UITVOERENDE,
|
||
OPDRACHT_UITVOERENDE_CONTACT,
|
||
OPDRACHT_BEHANDELAAR,
|
||
OPDRACHT_CONTRACT,
|
||
OPDRACHT_CONTRACT_VERSIE,
|
||
OPDRACHT_CONTACTPERSOON,
|
||
OPDRACHT_UREN,
|
||
OPDRACHT_CORRECTIE,
|
||
OPDRACHT_MATERIAAL,
|
||
OPDRACHT_UURTARIEF,
|
||
OPDRACHT_KOSTEN,
|
||
OPDRACHT_PARENT_KEY,
|
||
OPDRACHT_PARENT_NUMMER,
|
||
OPDRACHT_PARENT_VOLGNUMMER,
|
||
OPDRACHT_VERSTREKTDATUM,
|
||
OPDRACHT_LEV_DOORLOOPDAGEN,
|
||
OPDRACHT_LEV_DOORLOOPUREN,
|
||
OPDRACHT_UITVOERENDE_KEY
|
||
)
|
||
AS
|
||
SELECT x.OPDRACHT_KEY,
|
||
x.OPDRACHT_NUMMER,
|
||
x.OPDRACHT_REGIO,
|
||
x.OPDRACHT_DISTRICT,
|
||
x.OPDRACHT_LOCATIE_CODE,
|
||
x.OPDRACHT_LOCATIE,
|
||
x.OPDRACHT_LOCATIEPLAATS,
|
||
x.FCLT_3D_LOCATIE_KEY,
|
||
x.OPDRACHT_GEBOUWCODE,
|
||
x.OPDRACHT_GEBOUW,
|
||
x.OPDRACHT_VERDIEPING,
|
||
x.OPDRACHT_RUIMTENR,
|
||
x.OPDRACHT_RUIMTE,
|
||
x.OPDRACHT_KOSTENPLAATS,
|
||
x.OPDRACHT_KOSTENPLAATS_OMS,
|
||
x.MELDING_KEY,
|
||
x.OPDRACHT_TYPE,
|
||
x.OPDRACHT_VOLGNUMMER,
|
||
x.opdracht_status,
|
||
x.opdracht_duur_gepland,
|
||
x.opdracht_datum,
|
||
x.opdracht_einddatum,
|
||
x.opdracht_plandatum,
|
||
x.opdracht_acceptdatum,
|
||
x.opdracht_afgemeld,
|
||
x.opdracht_doorlooptijd,
|
||
x.opdracht_accepttijd,
|
||
x.opdracht_omschrijving,
|
||
x.opdracht_opmerking,
|
||
x.opdracht_uitvoerende,
|
||
x.opdracht_uitvoerende_contact,
|
||
x.opdracht_behandelaar,
|
||
x.opdracht_contract,
|
||
x.opdracht_contract_versie,
|
||
x.opdracht_contactpersoon,
|
||
x.opdracht_uren,
|
||
x.opdracht_correctie,
|
||
x.opdracht_materiaal,
|
||
x.opdracht_uurtarief,
|
||
x.opdracht_kosten,
|
||
x.opdracht_parent_key,
|
||
x.opdracht_parent_nummer,
|
||
x.opdracht_parent_volgnummer,
|
||
x.opdracht_verstrektdatum,
|
||
x.opdracht_lev_doorloopdagen,
|
||
x.opdracht_lev_doorloopuren,
|
||
COALESCE (b.prs_bedrijf_key, pf.prs_perslid_key) opdracht_uitvoerende_key
|
||
FROM mld_v_udr_opdracht x, mld_opdr o, prs_bedrijf b, prs_v_perslid_fullnames pf
|
||
WHERE x.opdracht_key = o.mld_opdr_key
|
||
AND o.mld_uitvoerende_keys = b.prs_bedrijf_key(+)
|
||
AND o.mld_uitvoerende_keys = pf.prs_perslid_key(+);
|
||
|
||
-- VLKC#71874: Projectkostenrapportage.
|
||
CREATE OR REPLACE VIEW VLKC_V_RAP_PROJECTKOSTEN
|
||
(
|
||
mld_opdr_key,
|
||
mld_melding_key,
|
||
opdrachtid,
|
||
alg_locatie_key,
|
||
locatiecode,
|
||
locatie,
|
||
gebouwcode,
|
||
gebouw,
|
||
verdieping,
|
||
mld_typeopdr_key,
|
||
opdrachttype,
|
||
status,
|
||
omschrijving,
|
||
uitvoerende_key,
|
||
uitvoerende,
|
||
kostenplaats,
|
||
kostenplaats_oms,
|
||
--kostensoort,
|
||
kostensoort_oms,
|
||
opdrachtkosten,
|
||
gefactureerd,
|
||
investering,
|
||
reden_0_order,
|
||
aangemaakt,
|
||
toegekend,
|
||
verzonden
|
||
)
|
||
AS
|
||
SELECT x.mld_opdr_key,
|
||
x.mld_melding_key,
|
||
x.ins_srtdiscipline_prefix || TO_CHAR (x.mld_melding_key) || '/' || TO_CHAR (x.mld_opdr_bedrijfopdr_volgnr)
|
||
opdrachtid,
|
||
x.alg_locatie_key,
|
||
x.alg_locatie_code,
|
||
x.alg_locatie_omschrijving,
|
||
x.alg_gebouw_code,
|
||
x.alg_gebouw_naam,
|
||
x.alg_verdieping_code,
|
||
x.mld_typeopdr_key,
|
||
x.mld_typeopdr_omschrijving,
|
||
x.mld_statusopdr_omschrijving status,
|
||
x.mld_opdr_omschrijving omschrijving,
|
||
x.mld_uitvoerende_keys uitvoerende_key,
|
||
COALESCE (x.prs_bedrijf_naam, x.prs_perslid_naam_full) uitvoerende,
|
||
x.kostenplaats,
|
||
x.kostenplaats_oms,
|
||
--x.kostensoort,
|
||
x.kostensoort_oms,
|
||
TO_CHAR (x.opdrachtkosten, 'fm999999999999999990,00') opdrachtkosten,
|
||
TO_CHAR (gefactureerd.kosten, 'fm999999999999999990,00') gefactureerd,
|
||
DECODE (io.mld_kenmerkopdr_key, NULL, 'Nee', 'Ja') investering,
|
||
ro.mld_kenmerkopdr_waarde reden_0_order,
|
||
x.mld_opdr_datumbegin aangemaakt,
|
||
fac.gettrackingdate ('ORDNEW', x.mld_opdr_key) toegekend,
|
||
x.mld_opdr_verzonden verzonden
|
||
FROM (SELECT o.mld_opdr_key,
|
||
sd.ins_srtdiscipline_prefix,
|
||
o.mld_melding_key,
|
||
o.mld_opdr_bedrijfopdr_volgnr,
|
||
l.alg_locatie_key,
|
||
l.alg_locatie_code,
|
||
l.alg_locatie_omschrijving,
|
||
aog.alg_gebouw_code,
|
||
aog.alg_gebouw_naam,
|
||
aog.alg_verdieping_code,
|
||
ot.mld_typeopdr_key,
|
||
ot.mld_typeopdr_omschrijving,
|
||
os.mld_statusopdr_omschrijving,
|
||
o.mld_opdr_omschrijving,
|
||
o.mld_uitvoerende_keys,
|
||
lev.prs_bedrijf_naam,
|
||
iuv.prs_perslid_naam_full,
|
||
kp.prs_kostenplaats_nr kostenplaats,
|
||
kp.prs_kostenplaats_omschrijving kostenplaats_oms,
|
||
--COALESCE (ksgo.prs_kostensoortgrp_altcode, ksgm.prs_kostensoortgrp_altcode, ksgd.prs_kostensoortgrp_altcode)
|
||
-- kostensoort,
|
||
COALESCE (kso.prs_kostensoort_oms, ksm.prs_kostensoort_oms, ksd.prs_kostensoort_oms)
|
||
kostensoort_oms,
|
||
o.mld_opdr_kosten opdrachtkosten,
|
||
o.mld_opdr_datumbegin,
|
||
mld_opdr_verzonden
|
||
FROM mld_opdr o,
|
||
mld_typeopdr ot,
|
||
mld_melding m,
|
||
alg_locatie l,
|
||
alg_v_allonrgoed_gegevens aog,
|
||
prs_bedrijf lev,
|
||
prs_v_perslid_fullnames iuv,
|
||
mld_statusopdr os,
|
||
mld_stdmelding sm,
|
||
mld_discipline md,
|
||
ins_srtdiscipline sd,
|
||
prs_kostenplaats kp,
|
||
prs_kostensoort kso,
|
||
prs_kostensoortgrp ksgo,
|
||
prs_kostensoort ksm,
|
||
prs_kostensoortgrp ksgm,
|
||
prs_kostensoort ksd,
|
||
prs_kostensoortgrp ksgd
|
||
WHERE o.mld_opdr_datumbegin > TRUNC (ADD_MONTHS (SYSDATE, -24), 'yyyy')
|
||
AND o.mld_statusopdr_key IN (6, 7, 9)
|
||
AND o.mld_typeopdr_key = ot.mld_typeopdr_key
|
||
--AND o.mld_typeopdr_key != 282 -- Offerteaanvraag
|
||
AND o.mld_melding_key = m.mld_melding_key
|
||
AND m.mld_alg_locatie_key = l.alg_locatie_key(+)
|
||
AND m.mld_alg_onroerendgoed_keys = aog.alg_onroerendgoed_keys(+)
|
||
AND o.mld_uitvoerende_keys = lev.prs_bedrijf_key(+)
|
||
AND o.mld_uitvoerende_keys = iuv.prs_perslid_key(+)
|
||
AND o.mld_statusopdr_key = os.mld_statusopdr_key
|
||
AND m.mld_stdmelding_key = sm.mld_stdmelding_key
|
||
AND sm.mld_ins_discipline_key = md.ins_discipline_key
|
||
AND md.ins_srtdiscipline_key = sd.ins_srtdiscipline_key
|
||
AND md.ins_srtdiscipline_key = 21 -- Project
|
||
AND o.prs_kostenplaats_key = kp.prs_kostenplaats_key
|
||
AND o.prs_kostensoort_key = kso.prs_kostensoort_key(+)
|
||
AND kso.prs_kostensoortgrp_key = ksgo.prs_kostensoortgrp_key(+)
|
||
AND sm.prs_kostensoort_key = ksm.prs_kostensoort_key(+)
|
||
AND ksm.prs_kostensoortgrp_key = ksgm.prs_kostensoortgrp_key(+)
|
||
AND md.prs_kostensoort_key = ksd.prs_kostensoort_key(+)
|
||
AND ksd.prs_kostensoortgrp_key = ksgd.prs_kostensoortgrp_key(+)) x
|
||
LEFT JOIN ( SELECT mld_opdr_key,
|
||
SUM (fin_factuur_totaal + fin_factuur_totaal_btw) kosten
|
||
FROM fin_factuur
|
||
WHERE fin_factuur_verwijder IS NULL
|
||
AND fin_factuur_statuses_key IN (6, 7) -- Akkoord/Verwerkt
|
||
GROUP BY mld_opdr_key) gefactureerd
|
||
ON x.mld_opdr_key = gefactureerd.mld_opdr_key
|
||
LEFT JOIN mld_v_aanwezigkenmerkopdr io
|
||
ON x.mld_opdr_key = io.mld_opdr_key
|
||
AND EXISTS
|
||
(SELECT 1
|
||
FROM mld_kenmerk
|
||
WHERE mld_srtkenmerk_key = 181 -- Investeringsopdracht
|
||
AND mld_kenmerk_key = io.mld_kenmerk_key)
|
||
LEFT JOIN mld_v_aanwezigkenmerkopdr ro
|
||
ON x.mld_opdr_key = ro.mld_opdr_key
|
||
AND EXISTS
|
||
(SELECT 1
|
||
FROM mld_kenmerk
|
||
WHERE mld_srtkenmerk_key = 161 -- Reden "0-order"
|
||
AND mld_kenmerk_key = ro.mld_kenmerk_key);
|
||
|
||
------ payload end ------
|
||
|
||
SET DEFINE OFF
|
||
BEGIN adm.systrackscriptId ('$Id$', 0); END;
|
||
/
|
||
|
||
COMMIT;
|
||
SET ECHO OFF
|
||
SPOOL OFF
|
||
SET DEFINE ON
|
||
PROMPT Logfile of this upgrade is: &fcltlogfile
|