2342 lines
108 KiB
MySQL
2342 lines
108 KiB
MySQL
--
|
||
-- $Id$
|
||
--
|
||
-- Script containing customer specific db-configuration for VLKC.
|
||
DEFINE thisfile = 'VLKC.SQL'
|
||
DEFINE dbuser = '^VLKC'
|
||
DEFINE custid = 'VLKC'
|
||
|
||
SET ECHO ON
|
||
SET DEFINE ON
|
||
COLUMN fcltlogfile NEW_VALUE fcltlogfile NOPRINT;
|
||
WHENEVER SQLERROR EXIT;
|
||
SELECT adm.scriptspoolfile('&dbuser', '&thisfile') AS fcltlogfile FROM DUAL;
|
||
WHENEVER SQLERROR CONTINUE;
|
||
SPOOL &fcltlogfile
|
||
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; -- F. Van Lanschot Bankiers 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, 0, 2, 1, 3, 2, 4, 3, 5, 4, 6, 5, 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 F. van Lanschot!
|
||
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, 0, 2, 1, 3, 2, 4, 3, 5, 4, 6, 5, 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
|
||
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 >= 2 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 <= 6 -- 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?
|
||
ELSIF rc.imp_lev <= 6 -- 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?
|
||
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?
|
||
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);
|
||
|
||
COMMIT;
|
||
|
||
-- Zet afdelingen op VERVALLEN; de rest handmatig verder maar regelen!
|
||
v_errormsg := 'Fout inactiveren afdelingen.';
|
||
|
||
SELECT COUNT ( * ) -- ALLEEN onder F. van Lanschot!
|
||
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 F. van Lanschot!
|
||
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 F. van Lanschot!
|
||
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
|
||
-- Generieke import.
|
||
-- De sequence array staat beschreven in PRS_PAC.SRC bij de import_perslid-PROCEDURE.
|
||
-- Met Stamplaats wordt nog niets gedaan!
|
||
--"Personeelsnummer";"Loginnaam";"Achternaam";"Tussenvoegsel";"Voorletters";"Voornaam";"Afdelingscode";"Functie";"Email";"Telefoonnr";"Mobiel";"Stamplaats"
|
||
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;0;0;0;'
|
||
|| '0;0;0;0;0;0;0;0;0;0;'
|
||
|| '0;0;0;0;0;0',
|
||
--'%Personeelsnummer;Loginnaam;Achternaam;Tussenvoegsel;Voorletters;Voornaam;Afdelingscode;Functie;Email;Telefoonnr;Mobiel;Stamplaats%');
|
||
'%"Personeelsnummer";"Loginnaam";"Achternaam";"Tussenvoegsel";"Voorletters";"Voornaam";"Afdelingscode";"Functie";"Email";"Telefoonnr";"Mobiel";"Stamplaats"%');
|
||
|
||
-- Klantspecifieke aanpassingen.
|
||
-- Als geen Loginnaam aangeleverd, dan handmatig toegekende niet wissen.
|
||
UPDATE fac_imp_perslid i
|
||
SET i.prs_perslid_oslogin =
|
||
(SELECT MAX (p.prs_perslid_oslogin)
|
||
FROM prs_v_aanwezigperslid p
|
||
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 p
|
||
WHERE p.prs_perslid_oslogin IS NOT NULL
|
||
AND p.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 (p.prs_perslid_voorletters)
|
||
FROM prs_v_aanwezigperslid p
|
||
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 p
|
||
WHERE p.prs_perslid_voorletters IS NOT NULL
|
||
AND p.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 (p.prs_perslid_voornaam)
|
||
FROM prs_v_aanwezigperslid p
|
||
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 p
|
||
WHERE p.prs_perslid_voornaam IS NOT NULL
|
||
AND p.prs_perslid_nr = i.prs_perslid_nr);
|
||
|
||
COMMIT;
|
||
|
||
-- Iedereen de Functie 'Collega'.
|
||
UPDATE fac_imp_perslid
|
||
SET prs_srtperslid_omschrijving = 'Collega';
|
||
|
||
COMMIT;
|
||
|
||
-- Klantspecifieke aanpassingen.
|
||
-- Locatie/Gebouw/Verdieping/Ruimte bepalen via Kenmerk1-kolom -> Eigen tabel (key = 1) ->
|
||
-- Gebouw en daaronder Ruimte '_000' op de verdieping met het laagste volgnummer!
|
||
-- 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
|
||
-- '_000' op de meegegeven locatie.
|
||
-- Eventuele WPs onder andere locaties dan import-locatie blijven ook 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 = -1
|
||
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 = -1
|
||
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 = -1
|
||
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 = '_000'
|
||
AND NOT EXISTS
|
||
(SELECT 1
|
||
FROM alg_v_aanwezigruimte r, alg_verdieping v
|
||
WHERE r.alg_ruimte_nr = '_000'
|
||
AND r.alg_verdieping_key = v.alg_verdieping_key
|
||
AND v.alg_verdieping_volgnr < iv.alg_verdieping_volgnr)),
|
||
i.alg_ruimte_nr =
|
||
(SELECT '_000'
|
||
FROM fac_v_aanwezigusrdata ud, -- Mapping Kenmerk1-code -> Gebouwcode
|
||
alg_v_aanweziggebouw ig,
|
||
alg_locatie il
|
||
WHERE ud.fac_usrtab_key = -1
|
||
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))
|
||
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 = -1
|
||
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 i
|
||
SET i.alg_verdieping_volgnr = 0
|
||
WHERE i.alg_gebouw_code IS NOT NULL
|
||
AND i.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;
|
||
/
|
||
|
||
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_afd_count NUMBER (10);
|
||
v_afd_digit VARCHAR2 (1);
|
||
v_count_prs_import NUMBER (10); -- #actieve personen na import!
|
||
v_count_prs_actual NUMBER (10); -- #actieve personen voor import!
|
||
|
||
-- Verwijderen personen niet in import (voor afdeling wel in import)!
|
||
CURSOR c_del (p_afd_digit VARCHAR2)
|
||
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_afdeling_key = a.prs_afdeling_key
|
||
AND SUBSTR (a.prs_afdeling_upper, 1, 1) = UPPER (p_afd_digit)
|
||
AND EXISTS
|
||
(SELECT 1
|
||
FROM fac_imp_perslid i
|
||
WHERE UPPER (SUBSTR (i.prs_afdeling_naam, 1, 1)) = UPPER (p_afd_digit))
|
||
AND NOT EXISTS
|
||
(SELECT 1
|
||
FROM fac_imp_perslid i
|
||
WHERE i.prs_perslid_nr = p.prs_perslid_nr)
|
||
ORDER BY 2, 1;
|
||
BEGIN
|
||
-- Generieke update (op personeelsnummer).
|
||
prs.update_perslid (p_import_key, 'NR', NULL);
|
||
|
||
-- Verwijder personen die niet meer in de import voorkomen.
|
||
SELECT COUNT (DISTINCT SUBSTR (prs_afdeling_naam, 1, 1)),
|
||
MAX (SUBSTR (prs_afdeling_naam, 1, 1))
|
||
INTO v_afd_count, v_afd_digit
|
||
FROM fac_imp_perslid;
|
||
|
||
-- Bepaal aantal personen na import (beginnend met v_afd_digit).
|
||
SELECT COUNT (DISTINCT prs_perslid_nr)
|
||
INTO v_count_prs_import
|
||
FROM fac_imp_perslid;
|
||
|
||
-- Bepaal aantal personen voor import (beginnend met v_afd_digit).
|
||
SELECT DECODE (COUNT ( * ), 0, 1, COUNT ( * ))
|
||
INTO v_count_prs_actual
|
||
FROM prs_v_aanwezigperslid p, prs_afdeling a
|
||
WHERE p.prs_perslid_nr IS NOT NULL
|
||
AND p.prs_afdeling_key = a.prs_afdeling_key
|
||
AND SUBSTR (a.prs_afdeling_naam, 1, 1) = v_afd_digit;
|
||
/*
|
||
IF (v_afd_count > 1)
|
||
THEN
|
||
fac.imp_writelog (
|
||
p_import_key, 'W',
|
||
'Personen niet onder dezelfde afdeling op het hoogste niveau (VL en KC?); zie specificatie!',
|
||
'Geen personen verwijderd');
|
||
ELSIF (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
|
||
FOR rec IN c_del (v_afd_digit)
|
||
LOOP
|
||
prs.delete_perslid (p_import_key, rec.prs_perslid_key);
|
||
END LOOP;
|
||
END IF;
|
||
*/
|
||
END vlkc_update_prs;
|
||
/
|
||
|
||
-- Import vanuit Strukton
|
||
/* Formatted on 19-12-2016 15:15:45 (QP5 v5.136.908.31019) */
|
||
CREATE OR REPLACE PROCEDURE vlkc_import_opdrstat_strukton (p_import_key IN NUMBER)
|
||
AS
|
||
c_delim VARCHAR2 (1) := ';';
|
||
v_newline VARCHAR2 (4000); -- Input 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;
|
||
v_ongeldig NUMBER (1) := 0;
|
||
-- De importvelden
|
||
v_mld_opdr_key_tekst VARCHAR2 (100);
|
||
v_mld_opdr_key NUMBER (10);
|
||
v_mld_opdr_opmerking VARCHAR2 (4000);
|
||
v_extern_nummer VARCHAR2 (100);
|
||
v_status_code VARCHAR2 (100);
|
||
v_status NUMBER (10);
|
||
v_datumtijd_tekst VARCHAR2 (100);
|
||
v_datumtijd DATE;
|
||
v_status_tekst VARCHAR2 (100);
|
||
v_opmerking VARCHAR2 (4000);
|
||
v_totaal NUMBER (8,2);
|
||
v_totaal_str VARCHAR2 (100);
|
||
|
||
-- Overige velden:
|
||
CURSOR c1
|
||
IS
|
||
SELECT *
|
||
FROM fac_imp_file
|
||
WHERE fac_import_key = p_import_key
|
||
ORDER BY fac_imp_file_index;
|
||
BEGIN
|
||
-- Eerst opruiming
|
||
DELETE FROM vlkc_imp_opdrstat_strukton;
|
||
|
||
COMMIT;
|
||
|
||
FOR rec1 IN c1
|
||
LOOP
|
||
BEGIN
|
||
v_newline := rec1.fac_imp_file_line;
|
||
v_errormsg := 'Fout opvragen importregel';
|
||
v_aanduiding := '';
|
||
v_ongeldig := 0;
|
||
|
||
-- Lees alle veldwaarden
|
||
fac.imp_getfield (v_newline, c_delim, v_mld_opdr_key_tekst);
|
||
fac.imp_getfield (v_newline, c_delim, v_extern_nummer);
|
||
fac.imp_getfield (v_newline, c_delim, v_status_code); -- typeID
|
||
fac.imp_getfield (v_newline, c_delim, v_datumtijd_tekst);
|
||
fac.imp_getfield (v_newline, c_delim, v_status_tekst);
|
||
fac.imp_getfield (v_newline, c_delim, v_opmerking);
|
||
fac.imp_getfield (v_newline, c_delim, v_totaal_str);
|
||
v_opmerking := SUBSTR (v_opmerking, 1, 1000);
|
||
-- Verwijder de markering voor cr/lf die in stylesheet is toegevoegd.
|
||
v_opmerking := REPLACE (v_opmerking, '@@', CHR (13) || CHR (10));
|
||
v_totaal := fac.safe_to_number (v_totaal_str);
|
||
fac.imp_writelog (p_import_key, 'I',
|
||
'v_totaal_str:' || v_totaal_str || ' / v_totaal:' || TO_CHAR (v_totaal), '');
|
||
v_aanduiding :=
|
||
'['
|
||
|| v_mld_opdr_key_tekst
|
||
|| '|'
|
||
|| v_extern_nummer
|
||
|| '|'
|
||
|| v_status_code
|
||
|| '|'
|
||
|| v_datumtijd_tekst
|
||
|| '|'
|
||
|| v_status_tekst
|
||
|| '] ';
|
||
|
||
-- Ik controleer of ik een geldige header heb, dat is: in de juiste
|
||
-- kolommen de juiste kolomkop. Ik controleer daarbij ALLE kolommen!
|
||
-- Ik negeer alles totdat ik een geldige header ben gepasseerd.
|
||
IF header_is_valid = 0
|
||
THEN
|
||
IF UPPER (TRIM (v_mld_opdr_key_tekst)) = 'REFERENCEID'
|
||
AND UPPER (TRIM (v_extern_nummer)) = 'SERVICEREQUESTID'
|
||
AND UPPER (TRIM (v_status_code)) = 'TYPEID'
|
||
AND UPPER (TRIM (v_datumtijd_tekst)) = 'DATETIME'
|
||
AND UPPER (TRIM (v_opmerking)) = 'REMARKS'
|
||
AND UPPER (TRIM (v_totaal_str)) = 'TOTAL'
|
||
THEN
|
||
header_is_valid := 1;
|
||
END IF;
|
||
ELSE
|
||
v_count_tot := v_count_tot + 1;
|
||
-- Controleer alle veldwaarden
|
||
v_errormsg := 'Fout bepalen opdracht';
|
||
v_mld_opdr_key := TRIM (v_mld_opdr_key);
|
||
|
||
BEGIN
|
||
SELECT o.mld_opdr_key, o.mld_opdr_opmerking
|
||
INTO v_mld_opdr_key, v_mld_opdr_opmerking
|
||
FROM mld_opdr o, mld_melding m, mld_stdmelding sm, ins_tab_discipline td, ins_srtdiscipline sd
|
||
WHERE o.mld_melding_key = m.mld_melding_key
|
||
AND m.mld_stdmelding_key = sm.mld_stdmelding_key
|
||
AND sm.mld_ins_discipline_key = td.ins_discipline_key
|
||
AND td.ins_srtdiscipline_key = sd.ins_srtdiscipline_key
|
||
AND sd.ins_srtdiscipline_prefix || m.mld_melding_key || '/' || o.mld_opdr_bedrijfopdr_volgnr = v_mld_opdr_key_tekst;
|
||
EXCEPTION
|
||
WHEN OTHERS
|
||
THEN
|
||
v_ongeldig := 1;
|
||
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_import_key, 'W', v_aanduiding || v_errormsg, '');
|
||
END;
|
||
|
||
IF v_ongeldig = 0
|
||
THEN
|
||
v_errormsg := 'Fout bepalen status';
|
||
|
||
CASE
|
||
WHEN v_status_code = '5'
|
||
THEN
|
||
v_status := 5; -- uitgegeven
|
||
WHEN v_status_code = '10'
|
||
THEN
|
||
v_status := 8; -- geaccepteerd
|
||
WHEN v_status_code = '20' -- monteur gereed
|
||
THEN
|
||
v_status := 6; -- afgemeld
|
||
WHEN v_status_code = '25' -- specialist gereed
|
||
THEN
|
||
v_status := 6; -- afgemeld
|
||
WHEN v_status_code = '30' -- technisch gereed
|
||
THEN
|
||
v_status := 6; -- afgemeld
|
||
-- For future use
|
||
--WHEN v_status_code = '40' -- uitgeprijst
|
||
--THEN
|
||
-- v_status := 9; -- afgerond
|
||
WHEN v_status_code = '70'
|
||
THEN
|
||
v_status := 1; -- geannuleerd
|
||
WHEN v_status_code = '80'
|
||
THEN
|
||
v_status := 1; -- afgewezen
|
||
ELSE
|
||
v_status := NULL;
|
||
v_ongeldig := 1; -- nog te bezien
|
||
END CASE;
|
||
END IF;
|
||
|
||
IF v_ongeldig = 0
|
||
THEN
|
||
v_errormsg := 'Fout converteren datumtijd';
|
||
|
||
IF INSTR (v_datumtijd_tekst, '.') > 0
|
||
THEN
|
||
v_datumtijd := fac.safe_to_date (REPLACE (SUBSTR (v_datumtijd_tekst, 1, INSTR (v_datumtijd_tekst, '.') - 1), 'T', ' '), 'yyyy-mm-dd hh24:mi:ss');
|
||
ELSE
|
||
v_datumtijd := fac.safe_to_date (v_datumtijd_tekst, 'yyyy-mm-dd hh24:mi:ss');
|
||
END IF;
|
||
END IF;
|
||
|
||
IF v_ongeldig = 0
|
||
THEN
|
||
v_errormsg := 'Fout aanvullen opmerking';
|
||
|
||
-- Controleer of de opmerking is gevuld en deze opmerking niet
|
||
-- al bij een eerdere statusovergang is gemeld.
|
||
IF v_opmerking IS NOT NULL AND INSTR (v_mld_opdr_opmerking, v_opmerking) = 0
|
||
THEN
|
||
v_opmerking := '[' || v_datumtijd_tekst || '] - ' || v_status_tekst || CHR (13) || CHR (10) || v_opmerking;
|
||
ELSE
|
||
v_opmerking := '[' || v_datumtijd_tekst || '] - ' || v_status_tekst;
|
||
END IF;
|
||
END IF;
|
||
|
||
-- Insert geformatteerde import record
|
||
IF v_ongeldig = 0
|
||
THEN
|
||
BEGIN
|
||
v_errormsg := 'Fout wegschrijven statusbericht';
|
||
|
||
INSERT INTO vlkc_imp_opdrstat_strukton (mld_opdr_key, extern_nummer, status, datumtijd, opmerking, totaal)
|
||
VALUES (v_mld_opdr_key, v_extern_nummer, v_status, v_datumtijd, v_opmerking, v_totaal);
|
||
|
||
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, 'E', v_aanduiding || v_errormsg, '');
|
||
END;
|
||
ELSE
|
||
fac.imp_writelog (p_import_key, 'E', v_aanduiding || v_errormsg, '');
|
||
END IF;
|
||
END IF;
|
||
END;
|
||
END LOOP;
|
||
|
||
IF header_is_valid = 0
|
||
THEN
|
||
fac.imp_writelog (p_import_key, 'E',
|
||
'Ongeldig importbestand', 'Geen header of header niet volgens specificatie!');
|
||
ELSE
|
||
fac.imp_writelog (p_import_key, 'S',
|
||
'Inleesproces/#ingelezen statusberichten: ' || TO_CHAR (v_count_tot), '');
|
||
fac.imp_writelog (p_import_key, 'S',
|
||
'Inleesproces/#ongeldige niet ingelezen statusberichten: ' || TO_CHAR (v_count_tot - v_count_imp), '');
|
||
END IF;
|
||
|
||
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.imp_writelog (p_import_key, 'E',
|
||
v_aanduiding || v_errormsg, 'Inleesproces statusberichten afgebroken!');
|
||
END;
|
||
/
|
||
|
||
CREATE OR REPLACE PROCEDURE vlkc_update_opdrstat_strukton (p_import_key IN NUMBER)
|
||
AS
|
||
-- Cursor loopt - in volgorde! - over alle ingelezen statusberichten.
|
||
CURSOR c1
|
||
IS
|
||
SELECT mld_opdr_key, extern_nummer, datumtijd, status, opmerking, totaal
|
||
FROM vlkc_imp_opdrstat_strukton
|
||
ORDER BY 1, 3;
|
||
|
||
c_user_key NUMBER (10) := 5; -- _STRUKTON-user
|
||
c_refnr_srtkkey NUMBER (10) := 42; -- Refnr. Leverancier
|
||
v_errormsg VARCHAR2 (1000);
|
||
oracle_err_num NUMBER;
|
||
oracle_err_mes VARCHAR2 (200);
|
||
v_aanduiding VARCHAR2 (200);
|
||
v_count_tot NUMBER (10) := 0;
|
||
v_count NUMBER (10) := 0;
|
||
v_mld_key NUMBER (10) := 0;
|
||
v_opdr_key NUMBER (10) := 0;
|
||
v_opdr_status NUMBER (10) := 0;
|
||
v_mld_typeopdr_key mld_typeopdr.mld_typeopdr_key%TYPE;
|
||
v_mld_kenmerk_key mld_kenmerk.mld_kenmerk_key%TYPE;
|
||
v_mld_kenmerkopdr_key mld_kenmerkopdr.mld_kenmerkopdr_key%TYPE;
|
||
BEGIN
|
||
-- Loop over alle ingelezen Strukton-statusberichten.
|
||
FOR rec IN c1
|
||
LOOP
|
||
BEGIN
|
||
v_aanduiding :=
|
||
'['
|
||
|| rec.mld_opdr_key
|
||
|| '|'
|
||
|| SUBSTR (rec.opmerking, 1, 100)
|
||
|| '] ';
|
||
v_count_tot := v_count_tot + 1;
|
||
|
||
-- Key van melding/opdracht bepalen en Refnr. bij opdracht opslaan.
|
||
IF rec.mld_opdr_key IS NOT NULL
|
||
THEN
|
||
v_errormsg := 'Fout bepalen opdracht.';
|
||
|
||
SELECT mld_melding_key, mld_opdr_key, mld_statusopdr_key, mld_typeopdr_key
|
||
INTO v_mld_key, v_opdr_key, v_opdr_status, v_mld_typeopdr_key
|
||
FROM mld_opdr
|
||
WHERE mld_opdr_key = rec.mld_opdr_key;
|
||
|
||
v_errormsg := 'Fout bepalen Refnr-kenmerk.';
|
||
|
||
SELECT k.mld_kenmerk_key
|
||
INTO v_mld_kenmerk_key
|
||
FROM mld_kenmerk k
|
||
WHERE k.mld_srtkenmerk_key = c_refnr_srtkkey
|
||
AND k.mld_typeopdr_key = v_mld_typeopdr_key;
|
||
|
||
v_errormsg := 'Fout bepalen Refnr-kenmerkopdracht.';
|
||
|
||
SELECT MAX (ko.mld_kenmerkopdr_key)
|
||
INTO v_mld_kenmerkopdr_key
|
||
FROM mld_kenmerkopdr ko
|
||
WHERE ko.mld_opdr_key = v_opdr_key
|
||
AND v_mld_kenmerk_key = ko.mld_kenmerk_key;
|
||
|
||
IF v_mld_kenmerkopdr_key IS NULL
|
||
THEN
|
||
-- Kenmerk toevoegen
|
||
v_errormsg := 'Fout toevoegen Refnr-kenmerkopdracht.';
|
||
|
||
INSERT INTO mld_kenmerkopdr (mld_kenmerk_key,
|
||
mld_opdr_key,
|
||
mld_kenmerkopdr_waarde)
|
||
VALUES (v_mld_kenmerk_key, v_opdr_key, rec.extern_nummer);
|
||
ELSE
|
||
-- Kenmerk bijwerken
|
||
v_errormsg := 'Fout bijwerken Refnr-kenmerkopdracht.';
|
||
|
||
UPDATE mld_kenmerkopdr
|
||
SET mld_kenmerkopdr_waarde = rec.extern_nummer
|
||
WHERE mld_kenmerkopdr_key = v_mld_kenmerkopdr_key;
|
||
END IF;
|
||
|
||
v_errormsg := 'Fout bijwerken Opmerking (opdracht).';
|
||
|
||
v_count := LENGTH (rec.opmerking) + 5; -- Beetje speling qua lengte!
|
||
|
||
UPDATE mld_opdr
|
||
SET mld_opdr_opmerking =
|
||
DECODE (
|
||
mld_opdr_opmerking,
|
||
NULL,
|
||
rec.opmerking,
|
||
rec.opmerking
|
||
|| CHR (13)
|
||
|| CHR (10)
|
||
|| SUBSTR (mld_opdr_opmerking, 1, (4000 - v_count)))
|
||
WHERE mld_opdr_key = v_opdr_key;
|
||
|
||
v_errormsg := 'Fout bijwerken Status.';
|
||
|
||
IF v_opdr_status <> rec.status
|
||
THEN
|
||
IF rec.status = 8 AND v_opdr_status = 5
|
||
THEN
|
||
-- Accepteer opdracht als de opdracht uitgegeven was
|
||
MLD.setopdrachtstatus (v_opdr_key, 8, c_user_key); -- Strukton
|
||
ELSIF rec.status = 6 AND v_opdr_status = 5
|
||
THEN
|
||
-- Meld de opdracht af als deze uitgegeven was
|
||
MLD.setopdrachtstatus (v_opdr_key, 8, c_user_key); -- Strukton, eerst accepteren
|
||
MLD.setopdrachtstatus (v_opdr_key, 6, c_user_key); -- Strukton
|
||
ELSIF rec.status = 6 AND v_opdr_status = 8
|
||
THEN
|
||
-- Meld de opdracht af als deze geaccepteerd was
|
||
MLD.setopdrachtstatus (v_opdr_key, 6, c_user_key); -- Strukton
|
||
ELSIF rec.status = 1 AND v_opdr_status IN (5, 8)
|
||
THEN
|
||
-- Wijs de opdracht af als deze niet/wel geaccepteerd was
|
||
MLD.setopdrachtstatus (v_opdr_key, 1, c_user_key); -- Strukton
|
||
MLD.updatemeldingstatusAV (v_mld_key, 0, c_user_key, 0);
|
||
ELSIF rec.status = 9 AND v_opdr_status = 6 -- DODE TAK; er geldt nooit rec.status = 9!
|
||
THEN
|
||
-- Rond de opdracht af als deze afgemeld was
|
||
mld.setopdrachtstatus (v_opdr_key, 9, c_user_key); -- Strukton
|
||
END IF;
|
||
|
||
IF rec.status = 6 AND v_opdr_status <> 6
|
||
THEN
|
||
-- Niet meer melding bijwerken (en afmelden was ook al niet meer)!
|
||
/*
|
||
v_errormsg := 'Fout bijwerken Opmerking (melding).';
|
||
|
||
UPDATE mld_melding m
|
||
SET mld_melding_opmerking =
|
||
DECODE (
|
||
mld_melding_opmerking,
|
||
NULL,
|
||
rec.opmerking,
|
||
rec.opmerking || CHR (13) || CHR (10)
|
||
|| SUBSTR (mld_melding_opmerking,
|
||
1,
|
||
(4000 - v_count)))
|
||
WHERE mld_melding_key = v_mld_key
|
||
AND mld_melding_status IN (4, 7)
|
||
AND NOT EXISTS
|
||
( -- Afhandeling in melding niet aanpassen voor projecten
|
||
SELECT sm.mld_stdmelding_key
|
||
FROM mld_stdmelding sm,
|
||
ins_tab_discipline td,
|
||
ins_srtdiscipline sd
|
||
WHERE sm.mld_stdmelding_key = m.mld_stdmelding_key
|
||
AND sm.mld_ins_discipline_key = td.ins_discipline_key
|
||
AND td.ins_srtdiscipline_key = sd.ins_srtdiscipline_key
|
||
AND sd.ins_srtdiscipline_prefix = 'QQQ');
|
||
*/
|
||
-- Sinds AADO#30922 wordt de melding niet meer automatisch afgemeld.
|
||
MLD.updatemeldingstatusAV (v_mld_key, 0, c_user_key, 0);
|
||
END IF;
|
||
END IF;
|
||
END IF;
|
||
|
||
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.imp_writelog (p_import_key, 'E',
|
||
v_aanduiding || v_errormsg, 'Statusbericht-loop');
|
||
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.imp_writelog (p_import_key, 'E',
|
||
v_aanduiding || v_errormsg, 'Importproces statusberichten afgebroken!');
|
||
END;
|
||
/
|
||
|
||
|
||
/* 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 = 5
|
||
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 = 5
|
||
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
|
||
/* Formatted on 28-1-2016 21:12:24 (QP5 v5.136.908.31019) */
|
||
CREATE OR REPLACE VIEW vlkc_v_rap_cat_doorbelasting
|
||
(
|
||
fclt_f_jaar,
|
||
kostenplaatscode,
|
||
kostenplaats_oms,
|
||
--aantal,
|
||
jan,
|
||
feb,
|
||
mrt,
|
||
apr,
|
||
mei,
|
||
jun,
|
||
jul,
|
||
aug,
|
||
sep,
|
||
okt,
|
||
nov,
|
||
dec,
|
||
tot
|
||
)
|
||
AS
|
||
SELECT TO_CHAR (x.res_rsv_artikel_levering, 'yyyy') jaar,
|
||
kp.prs_kostenplaats_nr,
|
||
kp.prs_kostenplaats_omschrijving,
|
||
--COUNT (DISTINCT res_id),
|
||
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
|
||
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 = 5
|
||
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 = 5
|
||
AND rra.res_artikel_key = ra.res_artikel_key) x,
|
||
prs_perslid p, prs_afdeling a, prs_kostenplaats kp
|
||
WHERE TO_CHAR (x.res_rsv_artikel_levering, 'yyyy') = TO_CHAR (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'), kp.prs_kostenplaats_nr, kp.prs_kostenplaats_omschrijving
|
||
UNION ALL
|
||
SELECT TO_CHAR (x.res_rsv_artikel_levering, 'yyyy') jaar,
|
||
kp.prs_kostenplaats_nr,
|
||
kp.prs_kostenplaats_omschrijving,
|
||
--COUNT (DISTINCT res_id),
|
||
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
|
||
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 = 5
|
||
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 = 5
|
||
AND rra.res_artikel_key = ra.res_artikel_key) x,
|
||
prs_perslid p, prs_afdeling a, prs_kostenplaats kp
|
||
WHERE TO_CHAR (x.res_rsv_artikel_levering, 'yyyy') = TO_CHAR (SYSDATE, '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'), kp.prs_kostenplaats_nr, kp.prs_kostenplaats_omschrijving;
|
||
|
||
-- VLKC#35252
|
||
/* Formatted on 10-3-2016 16:20:40 (QP5 v5.136.908.31019) */
|
||
CREATE OR REPLACE VIEW vlkc_v_rap_bez_aanmelding
|
||
(
|
||
afspraakdatum,
|
||
afspraaknr,
|
||
fclt_f_contactpersoon,
|
||
fclt_f_gastheer,
|
||
bezoeker,
|
||
opmerking,
|
||
fclt_f_door
|
||
)
|
||
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')
|
||
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
|
||
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;
|
||
|
||
-- 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(+);
|
||
|
||
/* Formatted on 21-4-2016 15:48:12 (QP5 v5.136.908.31019) */
|
||
CREATE OR REPLACE VIEW vlkc_v_rap_res_huismeesters
|
||
(
|
||
hide_f_volgorde,
|
||
ruimte,
|
||
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 (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_deel rrd, res_deel rd
|
||
WHERE rrd.res_deel_key = rd.res_deel_key
|
||
AND rd.res_discipline_key IN (51)
|
||
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))
|
||
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_deel_key = rd.res_deel_key
|
||
AND rd.res_ins_deel_key = d.ins_deel_key
|
||
AND rd.res_discipline_key IN (51)
|
||
AND rrd.res_rsv_deel_tot BETWEEN TRUNC (SYSDATE) AND TRUNC (SYSDATE + 15)
|
||
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_artikel_key = ra.res_artikel_key
|
||
AND ra.res_discipline_key IN (46, 81)
|
||
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 = 2) kr -- Opmerking Huismeester
|
||
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(+);
|
||
|
||
/* Formatted on 25-11-2016 15:36:24 (QP5 v5.136.908.31019) */
|
||
CREATE OR REPLACE VIEW vlkc_v_rap_coda_export
|
||
(
|
||
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,
|
||
factuurnummer
|
||
)
|
||
AS
|
||
SELECT TO_CHAR (fac.gettrackingdate ('FINFOK', f.fin_factuur_key), 'yyyy-mm')
|
||
|| DECODE (TO_CHAR (fac.gettrackingdate ('FINFOK', f.fin_factuur_key), 'yyyy-mm'),
|
||
TO_CHAR (SYSDATE, 'yyyy-mm'), '*',
|
||
'')
|
||
periode, -- ToDo!
|
||
COALESCE (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, 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,
|
||
b.prs_bedrijf_naam leverancier,
|
||
f.fin_factuur_nr factuurnummer
|
||
FROM fin_factuur f,
|
||
mld_opdr o,
|
||
mld_melding m,
|
||
mld_stdmelding sm,
|
||
prs_kostensoort ksm,
|
||
prs_kostensoortgrp ksgm,
|
||
ins_tab_discipline td,
|
||
prs_kostensoort ksv,
|
||
prs_kostensoortgrp ksgv,
|
||
ins_srtdiscipline sd,
|
||
prs_kostenplaats kp,
|
||
prs_bedrijf b
|
||
WHERE 1 = 1
|
||
AND f.fin_factuur_statuses_key = 6 -- Akkoord
|
||
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.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 o.prs_kostenplaats_key = kp.prs_kostenplaats_key(+)
|
||
AND o.mld_uitvoerende_keys = b.prs_bedrijf_key
|
||
UNION ALL
|
||
SELECT TO_CHAR (SYSDATE, 'yyyy-mm') || '*' periode, -- ToDo!
|
||
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)
|
||
c.cnt_contract_termijnkosten bedrag_debet,
|
||
--DECODE (SIGN (f.fin_factuur_totaal + f.fin_factuur_totaal_btw),
|
||
-- -1, f.fin_factuur_totaal + f.fin_factuur_totaal_btw,
|
||
-- TO_NUMBER (NULL))
|
||
NULL bedrag_credit,
|
||
--COALESCE (ksgc.prs_kostensoortgrp_oms, ksgd.prs_kostensoortgrp_oms, 'ONGEDEFINEERD')
|
||
td.ins_discipline_omschrijving omschrijving,
|
||
'C' || c.cnt_contract_nummer_intern verplichtingnummer,
|
||
b.prs_bedrijf_naam leverancier,
|
||
--f.fin_factuur_nr factuurnummer
|
||
'N.v.t.' factuurnummer
|
||
FROM --fin_factuur f,
|
||
cnt_contract c,
|
||
prs_kostensoort ksc,
|
||
prs_kostensoortgrp ksgc,
|
||
ins_tab_discipline td,
|
||
prs_kostensoort ksd,
|
||
prs_kostensoortgrp ksgd,
|
||
prs_kostenplaats kp,
|
||
prs_bedrijf b
|
||
WHERE 1 = 1
|
||
--AND f.fin_factuur_statuses_key = 6 -- Akkoord
|
||
--AND f.cnt_contract_key = c.cnt_contract_key
|
||
--AND c.cnt_contract_looptijd_van < SYSDATE -- Altijd van eerste maand?
|
||
AND c.cnt_contract_looptijd_tot > TRUNC (SYSDATE, 'mm') -- Altijd tot eerste maand?
|
||
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(+)
|
||
AND c.cnt_prs_bedrijf_key = b.prs_bedrijf_key;
|
||
|
||
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,
|
||
factuurnummer
|
||
)
|
||
AS
|
||
SELECT TO_CHAR (fac.gettrackingdate ('FINFOK', f.fin_factuur_key), 'yyyy-mm')
|
||
|| DECODE (TO_CHAR (fac.gettrackingdate ('FINFOK', f.fin_factuur_key), 'yyyy-mm'),
|
||
TO_CHAR (SYSDATE, 'yyyy-mm'), '*',
|
||
'')
|
||
periode, -- ToDo!
|
||
COALESCE (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, 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,
|
||
b.prs_bedrijf_naam leverancier,
|
||
f.fin_factuur_nr factuurnummer
|
||
FROM mld_opdr o,
|
||
fin_factuur f,
|
||
mld_melding m,
|
||
mld_stdmelding sm,
|
||
prs_kostensoort ksm,
|
||
prs_kostensoortgrp ksgm,
|
||
ins_tab_discipline td,
|
||
prs_kostensoort ksv,
|
||
prs_kostensoortgrp ksgv,
|
||
ins_srtdiscipline sd,
|
||
prs_kostenplaats kp,
|
||
prs_bedrijf b
|
||
WHERE 1 = 1
|
||
AND o.mld_typeopdr_key IN (5, 283) -- Werkopdracht/Offerteopdracht
|
||
AND o.mld_opdr_key = f.mld_opdr_key
|
||
AND f.fin_factuur_statuses_key = 6 -- 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 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 o.prs_kostenplaats_key = kp.prs_kostenplaats_key(+)
|
||
AND o.mld_uitvoerende_keys = b.prs_bedrijf_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,
|
||
leverancier,
|
||
factuurnummer
|
||
)
|
||
AS
|
||
SELECT TO_CHAR (SYSDATE, 'yyyy-mm') || '*' periode, -- ToDo!
|
||
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)
|
||
c.cnt_contract_termijnkosten bedrag_debet,
|
||
--DECODE (SIGN (f.fin_factuur_totaal + f.fin_factuur_totaal_btw),
|
||
-- -1, f.fin_factuur_totaal + f.fin_factuur_totaal_btw,
|
||
-- TO_NUMBER (NULL))
|
||
TO_NUMBER (NULL) bedrag_credit,
|
||
--COALESCE (ksgc.prs_kostensoortgrp_oms, ksgd.prs_kostensoortgrp_oms, 'ONGEDEFINEERD')
|
||
td.ins_discipline_omschrijving omschrijving,
|
||
'C' || c.cnt_contract_nummer_intern verplichtingnummer,
|
||
b.prs_bedrijf_naam leverancier,
|
||
--f.fin_factuur_nr factuurnummer
|
||
'N.v.t.' factuurnummer
|
||
FROM cnt_contract c,
|
||
--fin_factuur f,
|
||
prs_kostensoort ksc,
|
||
prs_kostensoortgrp ksgc,
|
||
ins_tab_discipline td,
|
||
prs_kostensoort ksd,
|
||
prs_kostensoortgrp ksgd,
|
||
prs_kostenplaats kp,
|
||
prs_bedrijf b
|
||
WHERE 1 = 1
|
||
--AND c.cnt_contract_looptijd_van < SYSDATE -- Altijd van eerste maand?
|
||
AND c.cnt_contract_looptijd_tot > TRUNC (SYSDATE, 'mm') -- Altijd tot eerste maand?
|
||
--AND c.cnt_contract_key = f.cnt_contract_key
|
||
--AND f.fin_factuur_statuses_key = 6 -- Akkoord
|
||
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(+)
|
||
AND c.cnt_prs_bedrijf_key = b.prs_bedrijf_key;
|
||
|
||
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,
|
||
factuurnummer
|
||
)
|
||
AS
|
||
SELECT NULL periode,
|
||
COALESCE (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, 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,
|
||
b.prs_bedrijf_naam leverancier,
|
||
f.fin_factuur_nr factuurnummer
|
||
FROM mld_opdr o,
|
||
(SELECT *
|
||
FROM fin_factuur
|
||
WHERE fin_factuur_statuses_key IN (2, 3)) f, -- Ingevoerd/Incompleet
|
||
mld_melding m,
|
||
mld_stdmelding sm,
|
||
prs_kostensoort ksm,
|
||
prs_kostensoortgrp ksgm,
|
||
ins_tab_discipline td,
|
||
prs_kostensoort ksv,
|
||
prs_kostensoortgrp ksgv,
|
||
ins_srtdiscipline sd,
|
||
prs_kostenplaats kp,
|
||
prs_bedrijf b
|
||
WHERE 1 = 1
|
||
AND o.mld_typeopdr_key IN (5, 283) -- Werkopdracht/Offerteopdracht
|
||
AND o.mld_opdr_key = f.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.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 o.prs_kostenplaats_key = kp.prs_kostenplaats_key(+)
|
||
AND o.mld_uitvoerende_keys = b.prs_bedrijf_key;
|
||
|
||
CREATE OR REPLACE VIEW vlkc_v_rap_cnt_verantw
|
||
(
|
||
fclt_f_jaar,
|
||
contractnummer,
|
||
leverancier,
|
||
leveranciersnummer,
|
||
jaarbedrag,
|
||
reeds_gefactureerd,
|
||
reeds_verantwoord,
|
||
kostensoort, -- 5 cijfers
|
||
kostenplaats -- 4 cijfers
|
||
)
|
||
AS
|
||
SELECT TO_CHAR (c.cnt_contract_looptijd_tot, 'yyyy') jaar, -- Altijd nieuwe versie per jaar?
|
||
c.cnt_contract_nummer_intern contractnummer,
|
||
b.prs_bedrijf_naam leverancier,
|
||
b.prs_leverancier_nr leveranciersnummer,
|
||
c.cnt_contract_kosten jaarbedrag, -- Is dat altijd jaarbedrag?
|
||
SUM(DECODE (SIGN (f.fin_factuur_totaal + f.fin_factuur_totaal_btw),
|
||
-1, f.fin_factuur_totaal + f.fin_factuur_totaal_btw,
|
||
0))
|
||
reeds_gefactureerd,
|
||
SUM (COALESCE (ud.fac_usrdata_prijs, 0)) reeds_verantwoord,
|
||
COALESCE (ksgc.prs_kostensoortgrp_altcode, ksgd.prs_kostensoortgrp_altcode, NULL) kostensoort,
|
||
kp.prs_kostenplaats_nr kostenplaats
|
||
FROM cnt_contract c,
|
||
(SELECT *
|
||
FROM fin_factuur
|
||
WHERE fin_factuur_statuses_key IN (2, 6, 7)) f, -- Ingevoerd/Akkoord/Verwerkt
|
||
prs_kostensoort ksc,
|
||
prs_kostensoortgrp ksgc,
|
||
ins_tab_discipline td,
|
||
prs_kostensoort ksd,
|
||
prs_kostensoortgrp ksgd,
|
||
prs_kostenplaats kp,
|
||
prs_bedrijf b,
|
||
(SELECT *
|
||
FROM fac_usrdata
|
||
WHERE fac_usrtab_key = -1) ud
|
||
WHERE 1 = 1 -- Alle contracten!
|
||
AND c.cnt_contract_key = f.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 = b.prs_bedrijf_key
|
||
AND TO_CHAR (c.cnt_contract_key) = ud.fac_usrdata_omschr(+)
|
||
GROUP BY TO_CHAR (c.cnt_contract_looptijd_tot, 'yyyy'), -- Altijd nieuwe versie per jaar?
|
||
c.cnt_contract_nummer_intern,
|
||
b.prs_bedrijf_naam,
|
||
b.prs_leverancier_nr,
|
||
c.cnt_contract_kosten, -- Is dat altijd jaarbedrag?
|
||
COALESCE (ksgc.prs_kostensoortgrp_altcode, ksgd.prs_kostensoortgrp_altcode, NULL),
|
||
kp.prs_kostenplaats_nr;
|
||
|
||
------ 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
|