3890 lines
197 KiB
SQL
3890 lines
197 KiB
SQL
--
|
||
-- $Id$
|
||
--
|
||
-- Script containing customer specific db-configuration for NOVA.
|
||
DEFINE thisfile = 'NOVA.SQL'
|
||
DEFINE dbuser = '^NOVA'
|
||
|
||
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 ------
|
||
|
||
-- Mail2Opdracht: INKOOP!
|
||
CREATE OR REPLACE PROCEDURE NOVA_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) := 3561; -- 3561=Onbekend bij migratie/import!
|
||
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_opdracht_id VARCHAR2 (255);
|
||
v_opdracht_key NUMBER (10);
|
||
v_typeopdr_key NUMBER (10);
|
||
v_folder_kkey NUMBER (10);
|
||
v_count NUMBER (10);
|
||
BEGIN
|
||
CASE
|
||
WHEN UPPER (pto) LIKE 'INKOOP@%'
|
||
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_bedrijfadres
|
||
-- WHERE prs_bedrijfadres_type = 'O'
|
||
-- AND INSTR (UPPER (prs_bedrijfadres_url), 'MAILTO:') = 1
|
||
-- AND SUBSTR (UPPER (prs_bedrijfadres_url), INSTR (prs_bedrijfadres_url, '@')) = SUBSTR (UPPER (v_van_email), INSTR (v_van_email, '@'));
|
||
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';
|
||
IF INSTR (UPPER (psubject), 'OPDRACHT NR.') > 0
|
||
THEN
|
||
-- 'Opdracht nr.' in subject, dan beschouw alleen gedeelte daarna!
|
||
v_opdracht_id := SUBSTR (psubject, INSTR (UPPER (psubject), 'OPDRACHT NR.'));
|
||
ELSE
|
||
-- Geen 'Opdracht nr.' in subject, dan beschouw hele subject!
|
||
v_opdracht_id := psubject;
|
||
END IF;
|
||
-- OpdrachtID is gedeelte vanaf 1e cijfer tot volgende white space in
|
||
-- v_opdracht_id!
|
||
IF REGEXP_INSTR (v_opdracht_id, '\d') > 0
|
||
THEN
|
||
v_opdracht_id := SUBSTR (v_opdracht_id, REGEXP_INSTR (v_opdracht_id, '\d')) || ' ';
|
||
v_opdracht_id := SUBSTR (v_opdracht_id, 1, REGEXP_INSTR (v_opdracht_id, '\s') - 1);
|
||
ELSE
|
||
v_opdracht_id := NULL;
|
||
END IF;
|
||
|
||
v_errormsg := 'Fout bepalen opdracht ' || v_opdracht_id;
|
||
SELECT mld_opdr_key, mld_typeopdr_key
|
||
INTO v_opdracht_key, v_typeopdr_key
|
||
FROM mld_opdr
|
||
WHERE TO_CHAR (mld_melding_key) || '/' || TO_CHAR (mld_opdr_bedrijfopdr_volgnr) = v_opdracht_id;
|
||
|
||
-- Notitie-vlaggetje op 4 + 64 (= zichtbaarUITV + ismail)
|
||
v_errormsg := 'Fout toevoegen opdracht-notitie';
|
||
INSERT INTO mld_opdr_note (mld_opdr_key, prs_perslid_key, mld_opdr_note_omschrijving, mld_opdr_note_flag)
|
||
VALUES (v_opdracht_key, v_perslid_key, pfrom || CHR (13) || CHR (10) || psubject || CHR (13) || CHR (10) || SUBSTR (pbody, 1, 2000), 4 + 64);
|
||
|
||
-- Bijwerken attentie (of is hier een primitieve voor?)
|
||
v_errormsg := 'Fout bijwerken attentie';
|
||
BEGIN
|
||
IF fac.getsetting ('mld_opdr_actiecode') IN ('1', '2') -- Aanname?
|
||
THEN
|
||
UPDATE mld_opdr
|
||
SET mld_opdr_actiecode = 1 + 128 -- Backoffice + Attentie
|
||
WHERE mld_opdr_key = v_opdracht_key;
|
||
END IF;
|
||
EXCEPTION
|
||
WHEN OTHERS
|
||
THEN
|
||
DBMS_OUTPUT.put_line ('Niet gelukt om attentie te zetten.');
|
||
END;
|
||
/*
|
||
-- 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);
|
||
*/
|
||
v_folder_kkey := 421;
|
||
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 || '\');
|
||
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;
|
||
|
||
-- Per 2021.1 mogelijk dat originele mail (incl. bijlagen?) ook wordt opgeslagen!
|
||
v_errormsg := 'Fout toevoegen originele mail';
|
||
INSERT INTO fac_result (fac_result_sessionid, fac_result_naam, fac_result_waarde)
|
||
VALUES (psessionid, 'kenmerkorgmailpath', 'MLD\O' || TO_CHAR (TRUNC (v_opdracht_key / 1000), 'FM0000') || '___\O' || v_opdracht_key || '\' || 421 || '\');
|
||
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 := TRIM (v_errormsg || ' ORACLE (error ' || oracle_err_num || '/' || oracle_err_mes || ')');
|
||
fac.writelog ('PROCESSEMAIL', 'E', 'NOVA_processemail afgebroken!', '[' || pfrom || '] ' || 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;
|
||
/
|
||
/* NIEUWSTE DSMA-VERSIE NOG EENS LADEN?!
|
||
CREATE OR REPLACE VIEW NOVA_V_RAP_QRC
|
||
AS
|
||
SELECT d.ins_deel_omschrijving hide_f_sort,
|
||
dd.ins_discipline_omschrijving || ' / ' || sm.mld_stdmelding_omschrijving
|
||
fclt_f_melding,
|
||
'Plaats' gekoppeld_aan,
|
||
l.alg_locatie_code || ' ' || l.alg_locatie_omschrijving
|
||
fclt_f_locatie,
|
||
--o.alg_gebouw_omschrijving fclt_f_gebouw,
|
||
o.alg_plaatsaanduiding fclt_f_plaats,
|
||
NULL fclt_f_persoon,
|
||
dd.ins_discipline_omschrijving fclt_f_discipline,
|
||
sg.ins_srtgroep_omschrijving fclt_f_objectgroep,
|
||
sd.ins_srtdeel_omschrijving fclt_f_objectsoort,
|
||
d.ins_deel_omschrijving fclt_f_identificatie,
|
||
--b.fac_bookmark_naam fclt_f_bookmark,
|
||
dd.ins_discipline_key fclt_3d_discipline_key,
|
||
sd.ins_srtdeel_key,
|
||
d.ins_deel_key,
|
||
d.ins_alg_locatie_key fclt_3d_locatie_key,
|
||
d.ins_alg_ruimte_type,
|
||
d.ins_alg_ruimte_key,
|
||
--o.alg_gebouw_code,
|
||
--o.alg_verdieping_code,
|
||
b.fac_bookmark_id hide_f_bookmark_id
|
||
FROM --fac_bookmark b,
|
||
(SELECT SUBSTR (SUBSTR (UPPER (fac_bookmark_query), INSTR (UPPER (fac_bookmark_query), 'STDMKINA=') + 9), 1, INSTR (SUBSTR (UPPER (fac_bookmark_query), INSTR (UPPER (fac_bookmark_query), 'STDMKINA=') + 9) || '&', '&') - 1)
|
||
stdmkina,
|
||
--fac_bookmark_naam,
|
||
fac_bookmark_id
|
||
FROM fac_bookmark
|
||
WHERE (fac_bookmark_expire IS NULL OR fac_bookmark_expire > SYSDATE)
|
||
AND UPPER (TRIM (fac_bookmark_path)) = 'APPL/PDA/INS_DEEL.ASP'
|
||
AND INSTR (UPPER (fac_bookmark_query), 'STDMKINA=') > 0) b, -- STDMKINA-bookmarks
|
||
ins_v_aanwezigdeel d,
|
||
ins_srtdeel sd,
|
||
ins_srtgroep sg,
|
||
ins_discipline dd,
|
||
alg_locatie l,
|
||
ins_v_alg_overzicht o,
|
||
mld_stdmelding sm,
|
||
mld_stdmelding_srtinst smsd
|
||
WHERE --(b.fac_bookmark_expire IS NULL OR b.fac_bookmark_expire > SYSDATE)
|
||
--AND b.fac_bookmark_naam = 'QRC_MELDING'
|
||
--AND d.ins_deel_module = 'INS'
|
||
d.ins_srtdeel_key = sd.ins_srtdeel_key
|
||
AND sd.ins_srtgroep_key = sg.ins_srtgroep_key
|
||
AND sg.ins_discipline_key = dd.ins_discipline_key
|
||
AND d.ins_deel_parent_key IS NULL
|
||
AND d.ins_alg_ruimte_type IN ('T', 'R', 'W')
|
||
AND d.ins_alg_locatie_key = l.alg_locatie_key
|
||
--AND d.ins_alg_locatie_key = o.alg_locatie_key
|
||
AND d.ins_alg_ruimte_type = o.alg_onroerendgoed_type
|
||
AND d.ins_alg_ruimte_key = o.alg_onroerendgoed_keys
|
||
AND fac.safe_to_number (b.stdmkina) = sm.mld_stdmelding_key
|
||
AND sm.mld_stdmelding_key = smsd.mld_stdmelding_key
|
||
AND smsd.ins_srtinstallatie_key = DECODE (smsd.ins_srtinstallatie_niveau, 'S', sd.ins_srtdeel_key, 'G', sg.ins_srtgroep_key, 'D', dd.ins_discipline_key)
|
||
UNION ALL
|
||
SELECT d.ins_deel_omschrijving hide_f_sort,
|
||
dd.ins_discipline_omschrijving || ' / ' || sm.mld_stdmelding_omschrijving
|
||
fclt_f_melding,
|
||
'Persoon' gekoppeld_aan,
|
||
NULL fclt_f_locatie,
|
||
--NULL fclt_f_gebouw,
|
||
NULL fclt_f_plaats,
|
||
pf.prs_perslid_naam_full fclt_f_persoon,
|
||
dd.ins_discipline_omschrijving fclt_f_discipline,
|
||
sg.ins_srtgroep_omschrijving fclt_f_objectgroep,
|
||
sd.ins_srtdeel_omschrijving fclt_f_objectsoort,
|
||
d.ins_deel_omschrijving fclt_f_identificatie,
|
||
--b.fac_bookmark_naam fclt_f_bookmark,
|
||
dd.ins_discipline_key fclt_3d_discipline_key,
|
||
sd.ins_srtdeel_key,
|
||
d.ins_deel_key,
|
||
d.ins_alg_locatie_key fclt_3d_locatie_key,
|
||
d.ins_alg_ruimte_type,
|
||
d.ins_alg_ruimte_key,
|
||
--NULL alg_gebouw_code,
|
||
--NULL alg_verdieping_code,
|
||
b.fac_bookmark_id hide_f_bookmark_id
|
||
FROM --fac_bookmark b,
|
||
(SELECT SUBSTR (SUBSTR (UPPER (fac_bookmark_query), INSTR (UPPER (fac_bookmark_query), 'STDMKINA=') + 9), 1, INSTR (SUBSTR (UPPER (fac_bookmark_query), INSTR (UPPER (fac_bookmark_query), 'STDMKINA=') + 9) || '&', '&') - 1)
|
||
stdmkina,
|
||
--fac_bookmark_naam,
|
||
fac_bookmark_id
|
||
FROM fac_bookmark
|
||
WHERE (fac_bookmark_expire IS NULL OR fac_bookmark_expire > SYSDATE)
|
||
AND UPPER (TRIM (fac_bookmark_path)) = 'APPL/PDA/INS_DEEL.ASP'
|
||
AND INSTR (UPPER (fac_bookmark_query), 'STDMKINA=') > 0) b, -- STDMKINA-bookmarks
|
||
ins_v_aanwezigdeel d,
|
||
ins_srtdeel sd,
|
||
ins_srtgroep sg,
|
||
ins_discipline dd,
|
||
prs_v_perslid_fullnames pf,
|
||
mld_stdmelding sm,
|
||
mld_stdmelding_srtinst smsd
|
||
WHERE --(b.fac_bookmark_expire IS NULL OR b.fac_bookmark_expire > SYSDATE)
|
||
--AND b.fac_bookmark_naam = 'QRC_MELDING'
|
||
--AND d.ins_deel_module = 'INS'
|
||
d.ins_srtdeel_key = sd.ins_srtdeel_key
|
||
AND d.ins_srtdeel_key = sd.ins_srtdeel_key
|
||
AND sd.ins_srtgroep_key = sg.ins_srtgroep_key
|
||
AND sg.ins_discipline_key = dd.ins_discipline_key
|
||
AND d.ins_deel_parent_key IS NULL
|
||
AND d.ins_alg_ruimte_type IN ('P')
|
||
AND d.ins_alg_ruimte_key = pf.prs_perslid_key
|
||
AND fac.safe_to_number (b.stdmkina) = sm.mld_stdmelding_key
|
||
AND sm.mld_stdmelding_key = smsd.mld_stdmelding_key
|
||
AND smsd.ins_srtinstallatie_key = DECODE (smsd.ins_srtinstallatie_niveau, 'S', sd.ins_srtdeel_key, 'G', sg.ins_srtgroep_key, 'D', dd.ins_discipline_key);
|
||
*/
|
||
CREATE OR REPLACE VIEW NOVA_V_MEDEWERKERS
|
||
(
|
||
prs_perslid_key,
|
||
prs_perslid_naam_full,
|
||
prs_perslid_naam_friendly,
|
||
prs_perslid_verwijder
|
||
)
|
||
AS
|
||
SELECT pf.prs_perslid_key,
|
||
pf.prs_perslid_naam_full,
|
||
pf.prs_perslid_naam_friendly,
|
||
pf.prs_perslid_verwijder
|
||
FROM prs_perslid p, prs_v_perslid_fullnames_all pf
|
||
WHERE p.prs_perslid_apikey IS NULL
|
||
AND p.prs_perslid_externid IS NOT NULL
|
||
AND p.prs_perslid_key = pf.prs_perslid_key;
|
||
|
||
CREATE OR REPLACE VIEW NOVA_V_EVENEMENTENRUIMTE
|
||
(
|
||
res_ruimte_key,
|
||
res_ruimte_nr,
|
||
res_ruimte_vervaldatum
|
||
)
|
||
AS
|
||
SELECT res_ruimte_key, res_ruimte_nr, res_ruimte_vervaldatum
|
||
FROM res_ruimte
|
||
WHERE res_ruimte_verwijder IS NULL
|
||
AND COALESCE (res_ruimte_vervaldatum, SYSDATE + 1) > SYSDATE
|
||
AND res_discipline_key = 301 -- Evenementenruimte
|
||
UNION ALL -- Reserveerbare ruimte beschikbaar houden als ooit gebruikt!
|
||
SELECT rr.res_ruimte_key, rr.res_ruimte_nr, TRUNC (SYSDATE, 'yyyy')
|
||
FROM (SELECT km.*
|
||
FROM mld_kenmerkmelding km, mld_kenmerk k
|
||
WHERE km.mld_kenmerkmelding_verwijder IS NULL
|
||
AND km.mld_kenmerk_key = k.mld_kenmerk_key
|
||
AND k.mld_srtkenmerk_key = 321) km, -- Voorkeur voor ruimte
|
||
res_ruimte rr
|
||
WHERE fac.safe_to_number (km.mld_kenmerkmelding_waarde) = rr.res_ruimte_key
|
||
AND NOT EXISTS
|
||
(SELECT 1
|
||
FROM res_ruimte
|
||
WHERE res_ruimte_verwijder IS NULL
|
||
AND COALESCE (res_ruimte_vervaldatum, SYSDATE + 1) > SYSDATE
|
||
AND res_discipline_key = 301 -- Evenementenruimte
|
||
AND res_ruimte_key = rr.res_ruimte_key);
|
||
|
||
/*
|
||
SELECT x.mld_melding_key melding_key,
|
||
COALESCE (x.ins_srtdiscipline_prefix, '') || TO_CHAR (x.mld_melding_key) meldingnr,
|
||
x.mld_statuses_omschrijving meldingstatus,
|
||
x.prs_perslid_naam_friendly aanvrager,
|
||
wanneer.mld_kenmerkmelding_waarde wanneer,
|
||
route.mld_kenmerkmelding_waarde route,
|
||
COALESCE (locvan.alg_locatie_code, altlocvan.alg_locatie_code) route_van,
|
||
COALESCE (SUBSTR (SUBSTR (ud_route.fac_usrdata_omschr, INSTR (ud_route.fac_usrdata_omschr, '[', 1, 1) + 1),
|
||
1,
|
||
INSTR (SUBSTR (ud_route.fac_usrdata_omschr, INSTR (ud_route.fac_usrdata_omschr, '[', 1, 1) + 1), ']', 1) - 1),
|
||
altvantijd.mld_kenmerkmelding_waarde) van_tijd,
|
||
COALESCE (locnaar.alg_locatie_code, altlocnaar.alg_locatie_code) route_naar,
|
||
COALESCE (SUBSTR (SUBSTR (ud_route.fac_usrdata_omschr, INSTR (ud_route.fac_usrdata_omschr, '[', 1, 2) + 1),
|
||
1,
|
||
INSTR (SUBSTR (ud_route.fac_usrdata_omschr, INSTR (ud_route.fac_usrdata_omschr, '[', 1, 2) + 1), ']', 1) - 1),
|
||
altnaartijd.mld_kenmerkmelding_waarde) naar_tijd,
|
||
kratten.mld_kenmerkmelding_waarde kratten,
|
||
ruimtevan.mld_kenmerkmelding_waarde ruimte_ophalen,
|
||
ruimtenaar.mld_kenmerkmelding_waarde ruimte_bezorgen,
|
||
pfnaar.prs_perslid_naam_friendly bezorgen_bij
|
||
FROM (SELECT sd.ins_srtdiscipline_omschrijving,
|
||
sd.ins_srtdiscipline_prefix,
|
||
md.ins_discipline_omschrijving,
|
||
sm.mld_stdmelding_omschrijving,
|
||
m.mld_melding_key,
|
||
ms.mld_statuses_omschrijving,
|
||
pf.prs_perslid_naam_friendly
|
||
FROM mld_melding m,
|
||
mld_statuses ms,
|
||
mld_stdmelding sm,
|
||
mld_discipline md,
|
||
ins_srtdiscipline sd,
|
||
prs_v_perslid_fullnames pf
|
||
WHERE m.mld_stdmelding_key = 9 --IN (221, 222)
|
||
AND m.mld_melding_status = ms.mld_statuses_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 m.prs_perslid_key_voor = pf.prs_perslid_key) x
|
||
LEFT JOIN mld_v_aanwezigkenmerkmelding wanneer
|
||
ON x.mld_melding_key = wanneer.mld_melding_key
|
||
AND EXISTS (SELECT 1 FROM mld_kenmerk WHERE mld_kenmerk_key = 243 AND mld_kenmerk_key = wanneer.mld_kenmerk_key) -- Wanneer
|
||
LEFT JOIN mld_v_aanwezigkenmerkmelding route
|
||
ON x.mld_melding_key = route.mld_melding_key
|
||
AND EXISTS (SELECT 1 FROM mld_kenmerk WHERE mld_kenmerk_key = 281 AND mld_kenmerk_key = route.mld_kenmerk_key) -- Van-naar-route
|
||
LEFT JOIN fac_v_aanwezigusrdata ud_route
|
||
ON fac.safe_to_number (route.mld_kenmerkmelding_waarde) = ud_route.fac_usrdata_key
|
||
LEFT JOIN alg_locatie locvan -- Van-locatie = ID na 1e '@' tot '/'!
|
||
ON fac.safe_to_number (SUBSTR (SUBSTR (ud_route.fac_usrdata_omschr2, INSTR (ud_route.fac_usrdata_omschr2, '@', 1, 1) + 1),
|
||
1,
|
||
INSTR (SUBSTR (ud_route.fac_usrdata_omschr2, INSTR (ud_route.fac_usrdata_omschr2, '@', 1, 1) + 1), '/', 1) - 1)) = locvan.alg_locatie_key
|
||
LEFT JOIN alg_locatie locnaar -- Naar-locatie = ID na 2e '@'!
|
||
ON fac.safe_to_number (SUBSTR (ud_route.fac_usrdata_omschr2,
|
||
INSTR (ud_route.fac_usrdata_omschr2, '@', 1, 2) + 1)) = locnaar.alg_locatie_key
|
||
LEFT JOIN mld_v_aanwezigkenmerkmelding altvan
|
||
ON x.mld_melding_key = altvan.mld_melding_key
|
||
AND EXISTS (SELECT 1 FROM mld_kenmerk WHERE mld_kenmerk_key = 241 AND mld_kenmerk_key = altvan.mld_kenmerk_key) -- Van-locatie
|
||
LEFT JOIN alg_locatie altlocvan
|
||
ON fac.safe_to_number (altvan.mld_kenmerkmelding_waarde) = altlocvan.alg_locatie_key
|
||
LEFT JOIN mld_v_aanwezigkenmerkmelding altvantijd
|
||
ON x.mld_melding_key = altvantijd.mld_melding_key
|
||
AND EXISTS (SELECT 1 FROM mld_kenmerk WHERE mld_kenmerk_key = 244 AND mld_kenmerk_key = altvantijd.mld_kenmerk_key) -- Tijdstip vertrek op van-locatie
|
||
LEFT JOIN mld_v_aanwezigkenmerkmelding altnaar
|
||
ON x.mld_melding_key = altnaar.mld_melding_key
|
||
AND EXISTS (SELECT 1 FROM mld_kenmerk WHERE mld_kenmerk_key = 242 AND mld_kenmerk_key = altnaar.mld_kenmerk_key) -- Naar-locatie
|
||
LEFT JOIN alg_locatie altlocnaar
|
||
ON fac.safe_to_number (altnaar.mld_kenmerkmelding_waarde) = altlocnaar.alg_locatie_key
|
||
LEFT JOIN mld_v_aanwezigkenmerkmelding altnaartijd
|
||
ON x.mld_melding_key = altnaartijd.mld_melding_key
|
||
AND EXISTS (SELECT 1 FROM mld_kenmerk WHERE mld_kenmerk_key = 282 AND mld_kenmerk_key = altnaartijd.mld_kenmerk_key) -- Tijdstip aankomst op naar-locatie
|
||
LEFT JOIN mld_v_aanwezigkenmerkmelding kratten
|
||
ON x.mld_melding_key = kratten.mld_melding_key
|
||
AND EXISTS (SELECT 1 FROM mld_kenmerk WHERE mld_kenmerk_key = 245 AND mld_kenmerk_key = kratten.mld_kenmerk_key) -- Hoeveel kratten
|
||
LEFT JOIN mld_v_aanwezigkenmerkmelding ruimtevan
|
||
ON x.mld_melding_key = ruimtevan.mld_melding_key
|
||
AND EXISTS (SELECT 1 FROM mld_kenmerk WHERE mld_kenmerk_key = 246 AND mld_kenmerk_key = ruimtevan.mld_kenmerk_key) -- Ruimte ophalen
|
||
LEFT JOIN mld_v_aanwezigkenmerkmelding ruimtenaar
|
||
ON x.mld_melding_key = ruimtenaar.mld_melding_key
|
||
AND EXISTS (SELECT 1 FROM mld_kenmerk WHERE mld_kenmerk_key = 621 AND mld_kenmerk_key = ruimtenaar.mld_kenmerk_key) -- Ruimte bezorgen
|
||
LEFT JOIN mld_v_aanwezigkenmerkmelding cpnaar
|
||
ON x.mld_melding_key = cpnaar.mld_melding_key
|
||
AND EXISTS (SELECT 1 FROM mld_kenmerk WHERE mld_kenmerk_key = 248 AND mld_kenmerk_key = cpnaar.mld_kenmerk_key) -- Contactpersoon bezorgen
|
||
LEFT JOIN prs_v_perslid_fullnames pfnaar
|
||
*/
|
||
CREATE OR REPLACE VIEW NOVA_V_RAP_ITVD
|
||
AS
|
||
SELECT TO_CHAR (fac.safe_to_date (wanneer.mld_kenmerkmelding_waarde, 'dd-mm-yyyy'), 'yyyymmdd')
|
||
|| COALESCE (SUBSTR (SUBSTR (ud_route.fac_usrdata_omschr, INSTR (ud_route.fac_usrdata_omschr, '[', 1, 1) + 1),
|
||
1,
|
||
INSTR (SUBSTR (ud_route.fac_usrdata_omschr, INSTR (ud_route.fac_usrdata_omschr, '[', 1, 1) + 1), ']', 1) - 1),
|
||
altvantijd.mld_kenmerkmelding_waarde)
|
||
hide_f_sortering,
|
||
locvan.alg_locatie_key fclt_3d_locatie_key,
|
||
x.mld_melding_key melding_key,
|
||
COALESCE (x.ins_srtdiscipline_prefix, '') || TO_CHAR (x.mld_melding_key) meldingnr,
|
||
x.mld_statuses_omschrijving meldingstatus,
|
||
x.prs_perslid_naam_friendly aanvrager,
|
||
'Uitgaand' inkomend_uitgaand,
|
||
wanneer.mld_kenmerkmelding_waarde wanneer,
|
||
COALESCE (locvan.alg_locatie_code, altlocvan.alg_locatie_code) locatie,
|
||
ruimtevan.mld_kenmerkmelding_waarde ruimte,
|
||
COALESCE (SUBSTR (SUBSTR (ud_route.fac_usrdata_omschr, INSTR (ud_route.fac_usrdata_omschr, '[', 1, 1) + 1),
|
||
1,
|
||
INSTR (SUBSTR (ud_route.fac_usrdata_omschr, INSTR (ud_route.fac_usrdata_omschr, '[', 1, 1) + 1), ']', 1) - 1),
|
||
altvantijd.mld_kenmerkmelding_waarde) tijd,
|
||
kratten.mld_kenmerkmelding_waarde kratten,
|
||
route.mld_kenmerkmelding_waarde route_id,
|
||
ud_route.fac_usrdata_omschr route,
|
||
x.prs_perslid_naam_friendly contactpersoon
|
||
FROM (SELECT sd.ins_srtdiscipline_omschrijving,
|
||
sd.ins_srtdiscipline_prefix,
|
||
md.ins_discipline_omschrijving,
|
||
sm.mld_stdmelding_omschrijving,
|
||
m.mld_melding_key,
|
||
ms.mld_statuses_omschrijving,
|
||
pf.prs_perslid_naam_friendly
|
||
FROM mld_melding m,
|
||
mld_statuses ms,
|
||
mld_stdmelding sm,
|
||
mld_discipline md,
|
||
ins_srtdiscipline sd,
|
||
prs_v_perslid_fullnames pf
|
||
WHERE m.mld_stdmelding_key = 25 -- Examentransport uitgaand
|
||
AND m.mld_melding_status = ms.mld_statuses_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 m.prs_perslid_key_voor = pf.prs_perslid_key) x
|
||
LEFT JOIN mld_v_aanwezigkenmerkmelding wanneer
|
||
ON x.mld_melding_key = wanneer.mld_melding_key
|
||
AND EXISTS (SELECT 1 FROM mld_kenmerk WHERE mld_kenmerk_key = 65 AND mld_kenmerk_key = wanneer.mld_kenmerk_key) -- Wanneer
|
||
LEFT JOIN mld_v_aanwezigkenmerkmelding route
|
||
ON x.mld_melding_key = route.mld_melding_key
|
||
AND EXISTS (SELECT 1 FROM mld_kenmerk WHERE mld_kenmerk_key = 71 AND mld_kenmerk_key = route.mld_kenmerk_key) -- Van-naar-route
|
||
LEFT JOIN fac_v_aanwezigusrdata ud_route
|
||
ON fac.safe_to_number (route.mld_kenmerkmelding_waarde) = ud_route.fac_usrdata_key
|
||
LEFT JOIN alg_locatie locvan -- Van-locatie = ID na 1e '@' tot '/'!
|
||
ON fac.safe_to_number (SUBSTR (SUBSTR (ud_route.fac_usrdata_omschr2, INSTR (ud_route.fac_usrdata_omschr2, '@', 1, 1) + 1),
|
||
1,
|
||
INSTR (SUBSTR (ud_route.fac_usrdata_omschr2, INSTR (ud_route.fac_usrdata_omschr2, '@', 1, 1) + 1), '/', 1) - 1)) = locvan.alg_locatie_key
|
||
LEFT JOIN alg_locatie locnaar -- Naar-locatie = ID na 2e '@'!
|
||
ON fac.safe_to_number (SUBSTR (ud_route.fac_usrdata_omschr2,
|
||
INSTR (ud_route.fac_usrdata_omschr2, '@', 1, 2) + 1)) = locnaar.alg_locatie_key
|
||
LEFT JOIN mld_v_aanwezigkenmerkmelding altvan
|
||
ON x.mld_melding_key = altvan.mld_melding_key
|
||
AND EXISTS (SELECT 1 FROM mld_kenmerk WHERE mld_kenmerk_key = 86 AND mld_kenmerk_key = altvan.mld_kenmerk_key) -- Van-locatie
|
||
LEFT JOIN alg_locatie altlocvan
|
||
ON fac.safe_to_number (altvan.mld_kenmerkmelding_waarde) = altlocvan.alg_locatie_key
|
||
LEFT JOIN mld_v_aanwezigkenmerkmelding altvantijd
|
||
ON x.mld_melding_key = altvantijd.mld_melding_key
|
||
AND EXISTS (SELECT 1 FROM mld_kenmerk WHERE mld_kenmerk_key = 74 AND mld_kenmerk_key = altvantijd.mld_kenmerk_key) -- Tijdstip vertrek op van-locatie
|
||
LEFT JOIN mld_v_aanwezigkenmerkmelding altnaar
|
||
ON x.mld_melding_key = altnaar.mld_melding_key
|
||
AND EXISTS (SELECT 1 FROM mld_kenmerk WHERE mld_kenmerk_key = 89 AND mld_kenmerk_key = altnaar.mld_kenmerk_key) -- Naar-locatie
|
||
LEFT JOIN alg_locatie altlocnaar
|
||
ON fac.safe_to_number (altnaar.mld_kenmerkmelding_waarde) = altlocnaar.alg_locatie_key
|
||
LEFT JOIN mld_v_aanwezigkenmerkmelding altnaartijd
|
||
ON x.mld_melding_key = altnaartijd.mld_melding_key
|
||
AND EXISTS (SELECT 1 FROM mld_kenmerk WHERE mld_kenmerk_key = 77 AND mld_kenmerk_key = altnaartijd.mld_kenmerk_key) -- Tijdstip aankomst op naar-locatie
|
||
LEFT JOIN mld_v_aanwezigkenmerkmelding kratten
|
||
ON x.mld_melding_key = kratten.mld_melding_key
|
||
AND EXISTS (SELECT 1 FROM mld_kenmerk WHERE mld_kenmerk_key = 68 AND mld_kenmerk_key = kratten.mld_kenmerk_key) -- Hoeveel kratten
|
||
LEFT JOIN mld_v_aanwezigkenmerkmelding ruimtevan
|
||
ON x.mld_melding_key = ruimtevan.mld_melding_key
|
||
AND EXISTS (SELECT 1 FROM mld_kenmerk WHERE mld_kenmerk_key = 80 AND mld_kenmerk_key = ruimtevan.mld_kenmerk_key) -- Ruimte ophalen
|
||
LEFT JOIN mld_v_aanwezigkenmerkmelding ruimtenaar
|
||
ON x.mld_melding_key = ruimtenaar.mld_melding_key
|
||
AND EXISTS (SELECT 1 FROM mld_kenmerk WHERE mld_kenmerk_key = 83 AND mld_kenmerk_key = ruimtenaar.mld_kenmerk_key) -- Ruimte bezorgen
|
||
LEFT JOIN mld_v_aanwezigkenmerkmelding cpnaar
|
||
ON x.mld_melding_key = cpnaar.mld_melding_key
|
||
AND EXISTS (SELECT 1 FROM mld_kenmerk WHERE mld_kenmerk_key = 62 AND mld_kenmerk_key = cpnaar.mld_kenmerk_key) -- Contactpersoon bezorgen
|
||
LEFT JOIN prs_v_perslid_fullnames pfnaar
|
||
ON fac.safe_to_number (cpnaar.mld_kenmerkmelding_waarde) = pfnaar.prs_perslid_key
|
||
WHERE fac.safe_to_date (wanneer.mld_kenmerkmelding_waarde, 'dd-mm-yyyy') >= TRUNC (SYSDATE)
|
||
UNION ALL
|
||
SELECT TO_CHAR (fac.safe_to_date (wanneer.mld_kenmerkmelding_waarde, 'dd-mm-yyyy'), 'yyyymmdd')
|
||
|| COALESCE (SUBSTR (SUBSTR (ud_route.fac_usrdata_omschr, INSTR (ud_route.fac_usrdata_omschr, '[', 1, 2) + 1),
|
||
1,
|
||
INSTR (SUBSTR (ud_route.fac_usrdata_omschr, INSTR (ud_route.fac_usrdata_omschr, '[', 1, 2) + 1), ']', 1) - 1),
|
||
altnaartijd.mld_kenmerkmelding_waarde)
|
||
hide_f_sortering,
|
||
locnaar.alg_locatie_key fclt_3d_locatie_key,
|
||
x.mld_melding_key melding_key,
|
||
COALESCE (x.ins_srtdiscipline_prefix, '') || TO_CHAR (x.mld_melding_key) meldingnr,
|
||
x.mld_statuses_omschrijving meldingstatus,
|
||
x.prs_perslid_naam_friendly aanvrager,
|
||
'Inkomend' inkomend_uitgaand,
|
||
wanneer.mld_kenmerkmelding_waarde wanneer,
|
||
COALESCE (locnaar.alg_locatie_code, altlocnaar.alg_locatie_code) locatie,
|
||
ruimtenaar.mld_kenmerkmelding_waarde ruimte,
|
||
COALESCE (SUBSTR (SUBSTR (ud_route.fac_usrdata_omschr, INSTR (ud_route.fac_usrdata_omschr, '[', 1, 2) + 1),
|
||
1,
|
||
INSTR (SUBSTR (ud_route.fac_usrdata_omschr, INSTR (ud_route.fac_usrdata_omschr, '[', 1, 2) + 1), ']', 1) - 1),
|
||
altnaartijd.mld_kenmerkmelding_waarde) tijd,
|
||
kratten.mld_kenmerkmelding_waarde kratten,
|
||
route.mld_kenmerkmelding_waarde route_id,
|
||
ud_route.fac_usrdata_omschr route,
|
||
pfnaar.prs_perslid_naam_friendly contactpersoon
|
||
FROM (SELECT sd.ins_srtdiscipline_omschrijving,
|
||
sd.ins_srtdiscipline_prefix,
|
||
md.ins_discipline_omschrijving,
|
||
sm.mld_stdmelding_omschrijving,
|
||
m.mld_melding_key,
|
||
ms.mld_statuses_omschrijving,
|
||
pf.prs_perslid_naam_friendly
|
||
FROM mld_melding m,
|
||
mld_statuses ms,
|
||
mld_stdmelding sm,
|
||
mld_discipline md,
|
||
ins_srtdiscipline sd,
|
||
prs_v_perslid_fullnames pf
|
||
WHERE m.mld_stdmelding_key = 26 -- Examentransport inkomend
|
||
AND m.mld_melding_status = ms.mld_statuses_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 m.prs_perslid_key_voor = pf.prs_perslid_key) x
|
||
LEFT JOIN mld_v_aanwezigkenmerkmelding wanneer
|
||
ON x.mld_melding_key = wanneer.mld_melding_key
|
||
AND EXISTS (SELECT 1 FROM mld_kenmerk WHERE mld_kenmerk_key = 66 AND mld_kenmerk_key = wanneer.mld_kenmerk_key) -- Wanneer
|
||
LEFT JOIN mld_v_aanwezigkenmerkmelding route
|
||
ON x.mld_melding_key = route.mld_melding_key
|
||
AND EXISTS (SELECT 1 FROM mld_kenmerk WHERE mld_kenmerk_key = 72 AND mld_kenmerk_key = route.mld_kenmerk_key) -- Van-naar-route
|
||
LEFT JOIN fac_v_aanwezigusrdata ud_route
|
||
ON fac.safe_to_number (route.mld_kenmerkmelding_waarde) = ud_route.fac_usrdata_key
|
||
LEFT JOIN alg_locatie locvan -- Van-locatie = ID na 1e '@' tot '/'!
|
||
ON fac.safe_to_number (SUBSTR (SUBSTR (ud_route.fac_usrdata_omschr2, INSTR (ud_route.fac_usrdata_omschr2, '@', 1, 1) + 1),
|
||
1,
|
||
INSTR (SUBSTR (ud_route.fac_usrdata_omschr2, INSTR (ud_route.fac_usrdata_omschr2, '@', 1, 1) + 1), '/', 1) - 1)) = locvan.alg_locatie_key
|
||
LEFT JOIN alg_locatie locnaar -- Naar-locatie = ID na 2e '@'!
|
||
ON fac.safe_to_number (SUBSTR (ud_route.fac_usrdata_omschr2,
|
||
INSTR (ud_route.fac_usrdata_omschr2, '@', 1, 2) + 1)) = locnaar.alg_locatie_key
|
||
LEFT JOIN mld_v_aanwezigkenmerkmelding altvan
|
||
ON x.mld_melding_key = altvan.mld_melding_key
|
||
AND EXISTS (SELECT 1 FROM mld_kenmerk WHERE mld_kenmerk_key = 87 AND mld_kenmerk_key = altvan.mld_kenmerk_key) -- Van-locatie
|
||
LEFT JOIN alg_locatie altlocvan
|
||
ON fac.safe_to_number (altvan.mld_kenmerkmelding_waarde) = altlocvan.alg_locatie_key
|
||
LEFT JOIN mld_v_aanwezigkenmerkmelding altvantijd
|
||
ON x.mld_melding_key = altvantijd.mld_melding_key
|
||
AND EXISTS (SELECT 1 FROM mld_kenmerk WHERE mld_kenmerk_key = 75 AND mld_kenmerk_key = altvantijd.mld_kenmerk_key) -- Tijdstip vertrek op van-locatie
|
||
LEFT JOIN mld_v_aanwezigkenmerkmelding altnaar
|
||
ON x.mld_melding_key = altnaar.mld_melding_key
|
||
AND EXISTS (SELECT 1 FROM mld_kenmerk WHERE mld_kenmerk_key = 90 AND mld_kenmerk_key = altnaar.mld_kenmerk_key) -- Naar-locatie
|
||
LEFT JOIN alg_locatie altlocnaar
|
||
ON fac.safe_to_number (altnaar.mld_kenmerkmelding_waarde) = altlocnaar.alg_locatie_key
|
||
LEFT JOIN mld_v_aanwezigkenmerkmelding altnaartijd
|
||
ON x.mld_melding_key = altnaartijd.mld_melding_key
|
||
AND EXISTS (SELECT 1 FROM mld_kenmerk WHERE mld_kenmerk_key = 78 AND mld_kenmerk_key = altnaartijd.mld_kenmerk_key) -- Tijdstip aankomst op naar-locatie
|
||
LEFT JOIN mld_v_aanwezigkenmerkmelding kratten
|
||
ON x.mld_melding_key = kratten.mld_melding_key
|
||
AND EXISTS (SELECT 1 FROM mld_kenmerk WHERE mld_kenmerk_key = 69 AND mld_kenmerk_key = kratten.mld_kenmerk_key) -- Hoeveel kratten
|
||
LEFT JOIN mld_v_aanwezigkenmerkmelding ruimtevan
|
||
ON x.mld_melding_key = ruimtevan.mld_melding_key
|
||
AND EXISTS (SELECT 1 FROM mld_kenmerk WHERE mld_kenmerk_key = 81 AND mld_kenmerk_key = ruimtevan.mld_kenmerk_key) -- Ruimte ophalen
|
||
LEFT JOIN mld_v_aanwezigkenmerkmelding ruimtenaar
|
||
ON x.mld_melding_key = ruimtenaar.mld_melding_key
|
||
AND EXISTS (SELECT 1 FROM mld_kenmerk WHERE mld_kenmerk_key = 84 AND mld_kenmerk_key = ruimtenaar.mld_kenmerk_key) -- Ruimte bezorgen
|
||
LEFT JOIN mld_v_aanwezigkenmerkmelding cpnaar
|
||
ON x.mld_melding_key = cpnaar.mld_melding_key
|
||
AND EXISTS (SELECT 1 FROM mld_kenmerk WHERE mld_kenmerk_key = 63 AND mld_kenmerk_key = cpnaar.mld_kenmerk_key) -- Contactpersoon bezorgen
|
||
LEFT JOIN prs_v_perslid_fullnames pfnaar
|
||
ON fac.safe_to_number (cpnaar.mld_kenmerkmelding_waarde) = pfnaar.prs_perslid_key
|
||
WHERE fac.safe_to_date (wanneer.mld_kenmerkmelding_waarde, 'dd-mm-yyyy') >= TRUNC (SYSDATE)
|
||
;
|
||
|
||
CREATE OR REPLACE PACKAGE NOVA
|
||
AS
|
||
PROCEDURE update_afd2kpn;
|
||
PROCEDURE update_prs2loc;
|
||
PROCEDURE afmelden_bes;
|
||
PROCEDURE afmelden_mld;
|
||
PROCEDURE upsert_kanaal;
|
||
PROCEDURE verwerken_res; -- VOOR res2benq: Verwerkt eerder doorgezette RES!
|
||
PROCEDURE res2benq;
|
||
END;
|
||
/
|
||
|
||
CREATE OR REPLACE PACKAGE BODY NOVA
|
||
AS
|
||
-- Bijwerken/toevoegen/koppelen PRS-kostenplaatsen!
|
||
PROCEDURE update_afd2kpn
|
||
AS
|
||
v_errormsg VARCHAR2 (1000);
|
||
oracle_err_num NUMBER;
|
||
oracle_err_mes VARCHAR2 (200);
|
||
v_kostenplaats_key NUMBER (10);
|
||
v_count NUMBER (10);
|
||
|
||
-- Bijwerken PRS-kostenplaatsen die al zijn gekoppeld aan afdelingen.
|
||
CURSOR c1
|
||
IS
|
||
SELECT '[' || TO_CHAR (a.prs_afdeling_key) || '|' || a.prs_afdeling_naam || '] '
|
||
aanduiding,
|
||
a.prs_afdeling_key, TRIM (a.prs_afdeling_naam) prs_afdeling_naam,
|
||
kp.prs_kostenplaats_key, kp.prs_kostenplaats_nr, kp.prs_kostenplaats_omschrijving
|
||
FROM prs_afdeling a,
|
||
(SELECT * FROM prs_v_aanwezigkostenplaats WHERE prs_kostenplaats_module = 'PRS') kp
|
||
WHERE a.prs_afdeling_verwijder IS NULL
|
||
AND a.prs_bedrijf_key = 2 -- Nova College
|
||
AND a.prs_kostenplaats_key = kp.prs_kostenplaats_key
|
||
AND TRIM (a.prs_afdeling_naam) != kp.prs_kostenplaats_nr
|
||
ORDER BY 2;
|
||
|
||
-- Toevoegen PRS-kostenplaatsen en koppelen aan afdelingen nog zonder
|
||
-- kostenplaats (zodra nieuw aangemaakt via REST).
|
||
CURSOR c2
|
||
IS
|
||
SELECT '[' || TO_CHAR (a.prs_afdeling_key) || '|' || a.prs_afdeling_naam || '] '
|
||
aanduiding,
|
||
a.prs_afdeling_key, TRIM (a.prs_afdeling_naam) prs_afdeling_naam,
|
||
kp.prs_kostenplaats_key, kp.prs_kostenplaats_nr, kp.prs_kostenplaats_omschrijving
|
||
FROM prs_afdeling a,
|
||
(SELECT * FROM prs_v_aanwezigkostenplaats WHERE prs_kostenplaats_module = 'PRS') kp
|
||
WHERE a.prs_afdeling_verwijder IS NULL
|
||
AND a.prs_bedrijf_key = 2 -- Nova College
|
||
AND a.prs_kostenplaats_key IS NULL
|
||
AND TRIM (a.prs_afdeling_upper) = TRIM (kp.prs_kostenplaats_upper(+)) -- Bestaat PRS-kostenplaats al?
|
||
ORDER BY 2;
|
||
BEGIN
|
||
-- Ontkoppelen PRS-kostenplaatsen die meermaals voorkomen, behalve op
|
||
-- afdeling met laagste key.
|
||
-- NB. Zou alleen bij 1e DAILY-run iets mogen doen.
|
||
v_errormsg := 'Fout ontkoppelen kostenplaatsen';
|
||
UPDATE prs_afdeling a
|
||
SET prs_kostenplaats_key = NULL
|
||
WHERE a.prs_afdeling_verwijder IS NULL
|
||
AND a.prs_bedrijf_key = 2 -- Nova College
|
||
AND EXISTS
|
||
(SELECT 1
|
||
FROM prs_afdeling
|
||
WHERE prs_kostenplaats_key = a.prs_kostenplaats_key
|
||
AND prs_afdeling_key < a.prs_afdeling_key);
|
||
|
||
-- Bijwerken PRS-kostenplaatsen die al zijn gekoppeld aan afdelingen.
|
||
-- NB. Zou alleen bij 1e DAILY-run iets mogen doen.
|
||
v_count := 0;
|
||
FOR rec IN c1
|
||
LOOP
|
||
BEGIN
|
||
v_errormsg := 'Fout bijwerken kostenplaats';
|
||
UPDATE prs_kostenplaats
|
||
SET prs_kostenplaats_nr = rec.prs_afdeling_naam,
|
||
prs_kostenplaats_omschrijving = rec.prs_afdeling_naam
|
||
WHERE prs_kostenplaats_key = rec.prs_kostenplaats_key;
|
||
|
||
v_count := v_count + 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.writelog ('AFD2KPN', 'W', rec.aanduiding || v_errormsg, '');
|
||
END;
|
||
END LOOP;
|
||
|
||
fac.writelog ('AFD2KPN', 'S', 'Kostenplaatsen/#bijgewerkt: ' || TO_CHAR (v_count), '');
|
||
|
||
-- Toevoegen PRS-kostenplaatsen en koppelen aan afdelingen nog zonder
|
||
-- kostenplaats (zodra nieuw aangemaakt via REST).
|
||
v_count := 0;
|
||
FOR rec IN c2
|
||
LOOP
|
||
BEGIN
|
||
v_kostenplaats_key := rec.prs_kostenplaats_key;
|
||
IF v_kostenplaats_key IS NULL
|
||
THEN
|
||
v_errormsg := 'Fout toevoegen kostenplaats';
|
||
INSERT INTO prs_kostenplaats (prs_kostenplaats_nr, prs_kostenplaats_omschrijving, prs_kostenplaats_module)
|
||
VALUES (rec.prs_afdeling_naam, rec.prs_afdeling_naam, 'PRS')
|
||
RETURNING prs_kostenplaats_key
|
||
INTO v_kostenplaats_key;
|
||
ELSE
|
||
v_errormsg := 'Fout bijwerken kostenplaats';
|
||
UPDATE prs_kostenplaats
|
||
SET prs_kostenplaats_nr = rec.prs_afdeling_naam,
|
||
prs_kostenplaats_omschrijving = rec.prs_afdeling_naam
|
||
WHERE prs_kostenplaats_key = v_kostenplaats_key;
|
||
END IF;
|
||
|
||
v_errormsg := 'Fout koppelen kostenplaats';
|
||
UPDATE prs_afdeling
|
||
SET prs_kostenplaats_key = v_kostenplaats_key
|
||
WHERE prs_afdeling_key = rec.prs_afdeling_key;
|
||
|
||
v_count := v_count + 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.writelog ('AFD2KPN', 'W', rec.aanduiding || v_errormsg, '');
|
||
END;
|
||
END LOOP;
|
||
|
||
fac.writelog ('AFD2KPN', 'S', 'Kostenplaatsen/#toegevoegd: ' || TO_CHAR (v_count), '');
|
||
|
||
-- Bijwerken einddatum van PRS-kostenplaatsen niet langer in gebruik.
|
||
--v_errormsg := 'Fout deactiveren kostenplaatsen';
|
||
--UPDATE prs_kostenplaats kp
|
||
-- SET kp.prs_kostenplaats_eind = SYSDATE
|
||
-- WHERE kp.prs_kostenplaats_verwijder IS NULL
|
||
-- AND COALESCE (kp.prs_kostenplaats_eind, SYSDATE) > TRUNC (SYSDATE)
|
||
-- AND kp.prs_kostenplaats_module = 'PRS'
|
||
-- AND NOT EXISTS
|
||
-- (SELECT 1
|
||
-- FROM prs_afdeling
|
||
-- WHERE prs_afdeling_verwijder IS NULL
|
||
-- AND prs_kostenplaats_key = kp.prs_kostenplaats_key);
|
||
EXCEPTION
|
||
WHEN OTHERS
|
||
THEN
|
||
oracle_err_num := SQLCODE;
|
||
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
|
||
v_errormsg := v_errormsg || ' ORACLE (error ' || oracle_err_num || '/' || oracle_err_mes || ')';
|
||
fac.writelog ('AFD2KPN', 'E', v_errormsg, '');
|
||
END update_afd2kpn;
|
||
|
||
-- Bijwerken/toevoegen/koppelen AD-WP (prs_werkplek_virtueel=0)!
|
||
PROCEDURE update_prs2loc
|
||
AS
|
||
v_errormsg VARCHAR2 (1000);
|
||
oracle_err_num NUMBER;
|
||
oracle_err_mes VARCHAR2 (200);
|
||
v_count NUMBER (10);
|
||
|
||
-- Bepalen alfabetisch eerste fictieve ruimte op basis van locatiecode
|
||
-- (volgens AD).
|
||
CURSOR c1
|
||
IS
|
||
SELECT '[' || TO_CHAR (p.prs_perslid_key) || '|' || p.prs_perslid_email || '|' || l2r.alg_locatie_code || '] '
|
||
aanduiding,
|
||
p.prs_perslid_key,
|
||
p2wp.alg_locatie_key wp_locatie_key, -- Locatie van AD-WP/Ist
|
||
COALESCE (p2wp.aantal, 0) wp_aantal, -- Aantal AD-WPs/Ist
|
||
p2l.alg_locatie_key ad_locatie_key, -- Locatie van AD-WP/Soll
|
||
l2r.alg_ruimte_key ad_ruimte_key -- Ruimte van AD-WP/Soll
|
||
FROM prs_v_aanwezigperslid p,
|
||
( SELECT pw.prs_perslid_key,
|
||
MIN (wpg.alg_locatie_key) alg_locatie_key,
|
||
COUNT (*) aantal
|
||
FROM prs_perslidwerkplek pw, prs_v_werkplek_gegevens wpg
|
||
WHERE pw.prs_werkplek_key = wpg.prs_werkplek_key
|
||
AND wpg.prs_werkplek_virtueel = 0 -- AD-WP
|
||
GROUP BY pw.prs_perslid_key) p2wp,
|
||
(SELECT kl.prs_link_key prs_perslid_key,
|
||
fac.safe_to_number (kl.prs_kenmerklink_waarde) alg_locatie_key
|
||
FROM prs_v_aanwezigkenmerklink kl
|
||
WHERE kl.prs_kenmerk_key = 1000) p2l, -- Locatiecode (volgens AD)
|
||
(SELECT rg.alg_locatie_key,
|
||
rg.alg_locatie_code,
|
||
rg.alg_ruimte_key
|
||
FROM alg_v_ruimte_gegevens rg
|
||
WHERE rg.alg_srtruimte_key = 21 -- Fictief
|
||
AND NOT EXISTS
|
||
(SELECT 1
|
||
FROM alg_v_ruimte_gegevens
|
||
WHERE alg_srtruimte_key = 21 -- Fictief
|
||
AND alg_locatie_key = rg.alg_locatie_key
|
||
AND alg_ruimte_aanduiding < rg.alg_ruimte_aanduiding)) l2r
|
||
WHERE p.prs_perslid_externid IS NOT NULL -- NC-medewerker (aangemaakt via AD-koppeling)
|
||
AND p.prs_perslid_key = p2wp.prs_perslid_key(+)
|
||
AND p.prs_perslid_key = p2l.prs_perslid_key(+)
|
||
AND p2l.alg_locatie_key = l2r.alg_locatie_key(+)
|
||
ORDER BY 2;
|
||
BEGIN
|
||
v_count := 0;
|
||
FOR rec IN c1
|
||
LOOP
|
||
BEGIN
|
||
IF rec.ad_locatie_key IS NULL
|
||
THEN
|
||
fac.writelog ('PRS2LOC', 'W', rec.aanduiding || 'Fout bepalen AD-locatie', '');
|
||
ELSIF rec.ad_ruimte_key IS NULL
|
||
THEN
|
||
fac.writelog ('PRS2LOC', 'W', rec.aanduiding || 'Fout bepalen AD-ruimte', '');
|
||
-- Als AD-(stam)locatie gewijzigd of persoon heeft >1 AD-WPs (zou
|
||
-- niet mogen), dan bijwerken AD-WP!
|
||
-- Ofwel, doe niets als huidige AD-WP op juiste AD-(stam)locatie,
|
||
-- ook als deze handmatig gecorrigeerd is naar een andere ruimte.
|
||
ELSIF rec.ad_locatie_key != COALESCE (rec.wp_locatie_key, -1) OR rec.wp_aantal > 1
|
||
THEN
|
||
v_errormsg := 'Fout bijwerken ruimte';
|
||
prs.movetoruimte (rec.prs_perslid_key, rec.ad_ruimte_key, 'A');
|
||
v_count := v_count + 1;
|
||
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 ('PRS2LOC', 'W', rec.aanduiding || v_errormsg, '');
|
||
END;
|
||
END LOOP;
|
||
|
||
fac.writelog ('PRS2LOC', 'S', 'WP/#bijgewerkt: ' || TO_CHAR (v_count), '');
|
||
EXCEPTION
|
||
WHEN OTHERS
|
||
THEN
|
||
oracle_err_num := SQLCODE;
|
||
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
|
||
v_errormsg := v_errormsg || ' ORACLE (error ' || oracle_err_num || '/' || oracle_err_mes || ')';
|
||
fac.writelog ('PRS2LOC', 'E', v_errormsg, '');
|
||
END update_prs2loc;
|
||
|
||
-- Alle BES op geleverd na 'leverdagen'+'notidagen'!
|
||
PROCEDURE afmelden_bes
|
||
AS
|
||
v_errormsg VARCHAR2 (1000);
|
||
oracle_err_num NUMBER;
|
||
oracle_err_mes VARCHAR2 (200);
|
||
v_count NUMBER (10);
|
||
|
||
-- 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 = 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 b.bes_bestelling_key
|
||
FROM bes_bestelling b,
|
||
bes_bestelling_item bi,
|
||
bes_bestelopdr_item boi
|
||
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
|
||
ORDER BY 1;
|
||
BEGIN
|
||
v_count := 0;
|
||
FOR rec IN cboi
|
||
LOOP
|
||
-- Zeg dat alles geleverd is wat besteld is.
|
||
v_errormsg := 'Fout leveren bestelopdracht ' || TO_CHAR (rec.bes_bestelopdr_key);
|
||
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;
|
||
|
||
FOR rec IN cbi
|
||
LOOP
|
||
-- Sluit alle aanvraagregels af die nu geheel geleverd zijn.
|
||
v_errormsg := 'Fout sluiten bestelaanvraag ' || TO_CHAR (rec.bes_bestelling_key);
|
||
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);
|
||
v_count := v_count + 1;
|
||
END LOOP;
|
||
|
||
fac.writelog ('AFMELDEN_BES', 'S', 'Bestelaanvragen/#geleverd: ' || TO_CHAR (v_count), '');
|
||
EXCEPTION
|
||
WHEN OTHERS
|
||
THEN
|
||
oracle_err_num := SQLCODE;
|
||
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
|
||
v_errormsg := v_errormsg || ' ORACLE (error ' || oracle_err_num || '/' || oracle_err_mes || ')';
|
||
fac.writelog ('AFMELDEN_BES', 'E', v_errormsg, '');
|
||
END afmelden_bes;
|
||
|
||
-- Automatisch sluiten meldingen waarvoor geldt dat:
|
||
-- - Daaronder precies <20><>n (= /1) via API2 afgemelde 'TOPdesk (intern)'-
|
||
-- opdracht.
|
||
-- NB. In andere gevallen moet melding maar handmatig worden gesloten.
|
||
PROCEDURE afmelden_mld
|
||
AS
|
||
v_errormsg VARCHAR2 (1000);
|
||
oracle_err_num NUMBER;
|
||
oracle_err_mes VARCHAR2 (200);
|
||
v_count NUMBER (10);
|
||
|
||
-- Bepalen automatisch te sluiten meldingen (als '/1'-opdracht doorgezet
|
||
-- naar en gesloten door API-user tbv. TOPdesk-koppeling).
|
||
CURSOR c1
|
||
IS
|
||
SELECT DISTINCT o.mld_melding_key
|
||
FROM mld_opdr o, mld_melding m
|
||
WHERE o.mld_typeopdr_key = 61 -- IVT/TOPdesk (intern)
|
||
--AND o.mld_statusopdr_key = 6 -- Afgemeld
|
||
--AND o.mld_opdr_bedrijfopdr_volgnr = 1
|
||
AND fac.gettrackinguserkey ('ORDAFM', o.mld_opdr_key) = 3663 -- API-user tbv. TOPdesk-koppeling
|
||
AND NOT EXISTS
|
||
(SELECT 1
|
||
FROM mld_opdr
|
||
WHERE mld_statusopdr_key IN (3, 4, 5, 8, 10) -- Lopend
|
||
AND mld_opdr_key != o.mld_opdr_key
|
||
AND mld_melding_key = o.mld_melding_key)
|
||
AND o.mld_melding_key = m.mld_melding_key
|
||
AND m.mld_melding_status NOT IN (1, 5, 6) -- Nog niet gesloten
|
||
ORDER BY 1;
|
||
BEGIN
|
||
v_count := 0;
|
||
FOR rec IN c1
|
||
LOOP
|
||
v_errormsg := 'Fout afmelden melding ' || TO_CHAR (rec.mld_melding_key);
|
||
mld.setmeldingstatus (rec.mld_melding_key, 5, NULL); -- Afgemeld (incl. tracking)
|
||
v_count := v_count + 1;
|
||
END LOOP;
|
||
|
||
fac.writelog ('AFMELDEN_MLD', 'S', 'Meldingen/#gesloten: ' || TO_CHAR (v_count), '');
|
||
EXCEPTION
|
||
WHEN OTHERS
|
||
THEN
|
||
oracle_err_num := SQLCODE;
|
||
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
|
||
v_errormsg := v_errormsg || ' ORACLE (error ' || oracle_err_num || '/' || oracle_err_mes || ')';
|
||
fac.writelog ('AFMELDEN_MLD', 'E', v_errormsg, '');
|
||
END afmelden_mld;
|
||
|
||
-- Automatisch bijwerken O-kanaal (prs_bedrijfadres) van relaties.
|
||
PROCEDURE upsert_kanaal
|
||
AS
|
||
v_errormsg VARCHAR2 (1000);
|
||
oracle_err_num NUMBER;
|
||
oracle_err_mes VARCHAR2 (200);
|
||
v_count NUMBER (10);
|
||
|
||
-- Bepalen nieuwe relaties nog zonder O-kanaal.
|
||
CURSOR c1
|
||
IS
|
||
SELECT b.prs_bedrijf_key, b.prs_bedrijf_email, TO_NUMBER (NULL) prs_bedrijfadres_key, NULL prs_bedrijfadres_url
|
||
FROM prs_v_aanwezigbedrijf b
|
||
WHERE b.prs_bedrijf_intern IS NULL
|
||
AND b.prs_bedrijf_key NOT IN (3661) -- Benque
|
||
AND b.prs_bedrijf_email IS NOT NULL
|
||
AND NOT EXISTS
|
||
(SELECT 1
|
||
FROM prs_bedrijfadres
|
||
WHERE prs_bedrijfadres_type = 'O'
|
||
AND prs_bedrijf_key = b.prs_bedrijf_key)
|
||
UNION ALL
|
||
SELECT b.prs_bedrijf_key, b.prs_bedrijf_email, ba.prs_bedrijfadres_key, ba.prs_bedrijfadres_url
|
||
FROM prs_v_aanwezigbedrijf b,
|
||
(SELECT *
|
||
FROM prs_bedrijfadres
|
||
WHERE prs_bedrijfadres_type = 'O'
|
||
AND INSTR (UPPER (prs_bedrijfadres_url), 'MAILTO:') = 1) ba
|
||
WHERE b.prs_bedrijf_intern IS NULL
|
||
AND b.prs_bedrijf_key NOT IN (3661) -- Benque
|
||
AND b.prs_bedrijf_key = ba.prs_bedrijf_key
|
||
AND 'MAILTO:' || UPPER (b.prs_bedrijf_email) != UPPER (ba.prs_bedrijfadres_url)
|
||
ORDER BY 1;
|
||
BEGIN
|
||
v_count := 0;
|
||
FOR rec IN c1
|
||
LOOP
|
||
v_errormsg := 'Fout toevoegen O-kanaal ' || TO_CHAR (rec.prs_bedrijf_key);
|
||
UPDATE prs_bedrijf
|
||
SET prs_bedrijf_uitvoerende = 1
|
||
WHERE prs_bedrijf_key = rec.prs_bedrijf_key;
|
||
|
||
IF rec.prs_bedrijfadres_key IS NULL
|
||
THEN
|
||
INSERT INTO prs_bedrijfadres (prs_bedrijf_key,
|
||
prs_bedrijfadres_type,
|
||
prs_bedrijfadres_url,
|
||
prs_bedrijfadres_ordermode,
|
||
prs_bedrijfadres_xsl,
|
||
prs_bedrijfadres_attachfile,
|
||
prs_bedrijfadres_flexfiles)
|
||
VALUES (rec.prs_bedrijf_key,
|
||
'O',
|
||
'mailto:' || rec.prs_bedrijf_email,
|
||
0,
|
||
'xsl/NOVA.xsl',
|
||
'Algemene-Inkoopvoorwaarden-FSR-V4.0.pdf',
|
||
1);
|
||
ELSE
|
||
UPDATE prs_bedrijfadres
|
||
SET prs_bedrijfadres_url = 'mailto:' || TRIM (rec.prs_bedrijf_email)
|
||
WHERE prs_bedrijfadres_key = rec.prs_bedrijfadres_key;
|
||
END IF;
|
||
v_count := v_count + 1;
|
||
END LOOP;
|
||
|
||
fac.writelog ('UPSERT_KANAAL', 'S', 'Relaties/#gekanaliseerd: ' || TO_CHAR (v_count), '');
|
||
EXCEPTION
|
||
WHEN OTHERS
|
||
THEN
|
||
oracle_err_num := SQLCODE;
|
||
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
|
||
v_errormsg := v_errormsg || ' ORACLE (error ' || oracle_err_num || '/' || oracle_err_mes || ')';
|
||
fac.writelog ('UPSERT_KANAAL', 'E', v_errormsg, '');
|
||
END upsert_kanaal;
|
||
|
||
-- Automatisch verwerken ruimte-reserveringen (roomservice-reserveringen
|
||
-- hebben geen BO-status) die eerder (= voorgaande dag) zijn doogezet naar
|
||
-- Benque.
|
||
-- LET OP: De procedure 'verwerken_res' moet draaien VOOR 'res2benq'!
|
||
PROCEDURE verwerken_res
|
||
AS
|
||
v_errormsg VARCHAR2 (1000);
|
||
oracle_err_num NUMBER;
|
||
oracle_err_mes VARCHAR2 (200);
|
||
v_count NUMBER (10);
|
||
|
||
CURSOR c1
|
||
IS
|
||
WITH wachtdagen
|
||
AS (SELECT fac.safe_to_number (fac_usrdata_omschr) aantal
|
||
FROM fac_v_aanwezigusrdata
|
||
WHERE fac_usrtab_key = 161 -- BENQUE-koppeling
|
||
AND fac_usrdata_upper = 'BENQ_EXPORT_DAYS')
|
||
SELECT DISTINCT '[' || TO_CHAR (rrr.res_rsv_ruimte_key) || '|' || TO_CHAR (rrr.res_reservering_key) || '/' || TO_CHAR (rrr.res_rsv_ruimte_volgnr) || '] '
|
||
aanduiding,
|
||
rrr.res_rsv_ruimte_key
|
||
FROM wachtdagen wd, res_v_aanwezigrsv_ruimte rrr
|
||
WHERE rrr.res_rsv_ruimte_van > fac.safe_to_date ('30-09-2024', 'dd-mm-yyyy')
|
||
--AND rrr.res_ruimte_opstel_key IS NOT NULL
|
||
AND rrr.res_status_bo_key != 6 -- AV
|
||
AND rrr.res_status_fo_key = 2 -- Definitief/Of ook Optie?/Zou moeten
|
||
AND rrr.res_rsv_ruimte_dirtlevel = 0 -- Niet dirty/Zou moeten
|
||
AND fac.count_work_days (rrr.res_rsv_ruimte_van, SYSDATE) >= wd.aantal -- Zou moeten
|
||
AND EXISTS -- Succesvol doorgezet naar Benque
|
||
(SELECT 1
|
||
FROM res_kenmerkwaarde rkw, res_kenmerk rk
|
||
WHERE rkw.res_kenmerk_key = rk.res_kenmerk_key
|
||
AND rk.res_kenmerk_code = 'BENQ_ID'
|
||
AND rkw.res_rsv_ruimte_key = rrr.res_rsv_ruimte_key)
|
||
AND EXISTS -- Met verwerkt artikel uit Benque-catalogus/Zou moeten (na 15-11-2024!)
|
||
(SELECT 1
|
||
FROM res_v_aanwezigrsv_artikel rra, res_artikel ra, res_disc_params dp
|
||
WHERE rra.res_status_bo_key = 6 -- AV
|
||
AND rra.res_rsv_artikel_verwerkt IS NOT NULL
|
||
AND rra.res_rsv_artikel_dirtlevel = 0 -- Niet dirty
|
||
AND rra.res_artikel_key = ra.res_artikel_key
|
||
AND ra.res_discipline_key = dp.res_ins_discipline_key
|
||
AND dp.prs_bedrijf_key = 3661 -- Benque-catalogus
|
||
AND rra.res_rsv_ruimte_key = rrr.res_rsv_ruimte_key)
|
||
ORDER BY 1, 2;
|
||
BEGIN
|
||
v_count := 0;
|
||
FOR rec IN c1
|
||
LOOP
|
||
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 ruimte';
|
||
fac.trackaction ('RESVER', rec.res_rsv_ruimte_key, NULL, NULL, NULL);
|
||
|
||
v_count := v_count + 1;
|
||
END LOOP;
|
||
|
||
fac.writelog ('VERWERKEN_RES', 'S', 'Reserveringen/#dichtgezet: ' || TO_CHAR (v_count), '');
|
||
EXCEPTION
|
||
WHEN OTHERS
|
||
THEN
|
||
oracle_err_num := SQLCODE;
|
||
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
|
||
v_errormsg := v_errormsg || ' ORACLE (error ' || oracle_err_num || '/' || oracle_err_mes || ')';
|
||
fac.writelog ('VERWERKEN_RES', 'E', v_errormsg, '');
|
||
END verwerken_res;
|
||
|
||
PROCEDURE res2benq
|
||
AS
|
||
v_errormsg VARCHAR2 (1000);
|
||
oracle_err_num NUMBER;
|
||
oracle_err_mes VARCHAR2 (200);
|
||
v_count NUMBER (10);
|
||
v_prijs NUMBER;
|
||
|
||
CURSOR c1
|
||
IS
|
||
WITH wachtdagen
|
||
AS (SELECT fac.safe_to_number (fac_usrdata_omschr) aantal
|
||
FROM fac_v_aanwezigusrdata
|
||
WHERE fac_usrtab_key = 161 -- BENQUE-koppeling
|
||
AND fac_usrdata_upper = 'BENQ_EXPORT_DAYS')
|
||
SELECT DISTINCT '[' || TO_CHAR (rrr.res_rsv_ruimte_key) || '|' || TO_CHAR (rrr.res_reservering_key) || '/' || TO_CHAR (rrr.res_rsv_ruimte_volgnr) || '] '
|
||
aanduiding,
|
||
rrr.res_rsv_ruimte_key,
|
||
rra.res_rsv_artikel_key,
|
||
ra.res_artikel_key,
|
||
rra.res_status_bo_key
|
||
FROM wachtdagen wd, res_v_aanwezigrsv_ruimte rrr, res_v_aanwezigrsv_artikel rra, res_artikel ra
|
||
WHERE rrr.res_rsv_ruimte_van > fac.safe_to_date ('30-09-2024', 'dd-mm-yyyy')
|
||
AND rrr.res_status_fo_key = 2 -- Definitief/Of ook Optie?
|
||
AND rrr.res_rsv_ruimte_dirtlevel = 0 -- TODO:Niet dirty?
|
||
AND fac.count_work_days (rrr.res_rsv_ruimte_van, SYSDATE) >= wd.aantal
|
||
AND NOT EXISTS -- Niet al doorgezet/Vervangen door check op Verwerkt?
|
||
(SELECT 1
|
||
FROM res_kenmerkwaarde rkw, res_kenmerk rk
|
||
WHERE rkw.res_kenmerk_key = rk.res_kenmerk_key
|
||
AND rk.res_kenmerk_code = 'BENQ_ID'
|
||
AND rkw.res_rsv_ruimte_key = rrr.res_rsv_ruimte_key)
|
||
AND rrr.res_rsv_ruimte_key = rra.res_rsv_ruimte_key
|
||
AND rra.res_rsv_artikel_verwerkt IS NULL
|
||
AND rra.res_rsv_artikel_dirtlevel = 0 -- TODO:Niet dirty?
|
||
AND rra.res_artikel_key = ra.res_artikel_key
|
||
AND EXISTS -- Met artikel uit Benque-catalogus
|
||
(SELECT 1
|
||
FROM res_disc_params
|
||
WHERE prs_bedrijf_key = 3661 -- Benque-catalogus
|
||
AND res_ins_discipline_key = ra.res_discipline_key)
|
||
UNION ALL
|
||
SELECT DISTINCT '[' || TO_CHAR (rrr.res_rsv_ruimte_key) || '|' || TO_CHAR (rrr.res_reservering_key) || '/' || TO_CHAR (rrr.res_rsv_ruimte_volgnr) || '] '
|
||
aanduiding,
|
||
rrr.res_rsv_ruimte_key,
|
||
NULL res_rsv_artikel_key,
|
||
NULL res_artikel_key,
|
||
rrr.res_status_bo_key
|
||
FROM wachtdagen wd, res_v_aanwezigrsv_ruimte rrr
|
||
WHERE rrr.res_rsv_ruimte_van > fac.safe_to_date ('30-09-2024', 'dd-mm-yyyy')
|
||
AND rrr.res_status_fo_key = 2 -- Definitief/Of ook Optie?
|
||
AND rrr.res_rsv_ruimte_dirtlevel = 0 -- TODO:Niet dirty?
|
||
AND fac.count_work_days (rrr.res_rsv_ruimte_van, SYSDATE) >= wd.aantal
|
||
AND NOT EXISTS -- Niet al doorgezet/Vervangen door check op Verwerkt?
|
||
(SELECT 1
|
||
FROM res_kenmerkwaarde rkw, res_kenmerk rk
|
||
WHERE rkw.res_kenmerk_key = rk.res_kenmerk_key
|
||
AND rk.res_kenmerk_code = 'BENQ_ID'
|
||
AND rkw.res_rsv_ruimte_key = rrr.res_rsv_ruimte_key)
|
||
AND EXISTS -- Met artikel uit Benque-catalogus
|
||
(SELECT 1
|
||
FROM res_v_aanwezigrsv_artikel rra, res_artikel ra, res_disc_params dp
|
||
WHERE rra.res_rsv_artikel_verwerkt IS NULL
|
||
AND rra.res_rsv_artikel_dirtlevel = 0 -- TODO:Niet dirty?
|
||
AND rra.res_artikel_key = ra.res_artikel_key
|
||
AND ra.res_discipline_key = dp.res_ins_discipline_key
|
||
AND dp.prs_bedrijf_key = 3661 -- Benque-catalogus
|
||
AND rra.res_rsv_ruimte_key = rrr.res_rsv_ruimte_key)
|
||
ORDER BY 1, 3, 2;
|
||
BEGIN
|
||
v_count := 0;
|
||
FOR rec IN c1
|
||
LOOP
|
||
IF rec.res_rsv_artikel_key IS NOT NULL
|
||
THEN -- Catering-regel
|
||
IF rec.res_status_bo_key = 2 -- Als 2=Nieuw, dan naar 5=Afgemeld!
|
||
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 catering';
|
||
fac.trackaction ('RESAFM', rec.res_rsv_ruimte_key, NULL, NULL, 'Catering afgemeld');
|
||
END IF;
|
||
ELSE -- Ruimte-regel
|
||
IF rec.res_status_bo_key = 2 -- Als 2=Nieuw, dan naar 5=Afgemeld (dus niet voor Losse catering)!
|
||
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 ruimte';
|
||
fac.trackaction ('RESAFM', rec.res_rsv_ruimte_key, NULL, NULL, NULL);
|
||
END IF;
|
||
|
||
v_errormsg := 'Fout teverzenden reservering';
|
||
fac.trackaction ('RESSND', rec.res_rsv_ruimte_key, NULL, NULL, NULL);
|
||
|
||
v_count := v_count + 1;
|
||
END IF;
|
||
END LOOP;
|
||
|
||
fac.writelog ('RES2BENQ', 'S', 'Reserveringen/#teverzenden: ' || TO_CHAR (v_count), '');
|
||
EXCEPTION
|
||
WHEN OTHERS
|
||
THEN
|
||
oracle_err_num := SQLCODE;
|
||
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
|
||
v_errormsg := v_errormsg || ' ORACLE (error ' || oracle_err_num || '/' || oracle_err_mes || ')';
|
||
fac.writelog ('RES2BENQ', 'E', v_errormsg, '');
|
||
END res2benq;
|
||
END;
|
||
/
|
||
|
||
CREATE OR REPLACE PROCEDURE NOVA_DAILY
|
||
AS
|
||
v_errormsg VARCHAR2 (1000);
|
||
oracle_err_num NUMBER;
|
||
oracle_err_mes VARCHAR2 (200);
|
||
BEGIN
|
||
-- Tegenwoordig worden accounts automatisch geschoond via gen_scheduler.bat
|
||
-- rond 7:30!
|
||
--nova.schonen_accounts;
|
||
|
||
-- Bijwerken/toevoegen/koppelen PRS-kostenplaatsen (1-op-1)!
|
||
nova.update_afd2kpn;
|
||
|
||
-- Bijwerken/toevoegen/koppelen PRS-werkplekken (1-op-1)!
|
||
nova.update_prs2loc;
|
||
|
||
-- Alle BES op geleverd na 'leverdagen'+'notidagen'!
|
||
nova.afmelden_bes;
|
||
|
||
-- Automatisch sluiten MLD (zoals helder gespecificeerd)!
|
||
nova.afmelden_mld;
|
||
|
||
-- Automatisch bijwerken O-kanaal van relaties!
|
||
nova.upsert_kanaal;
|
||
|
||
-- Automatisch na 5 werkdagen doorzetten RES met App<70>l-catering naar Benque
|
||
-- en de volgende dag pas verwerken van de bovenliggende ruimte-reservering
|
||
-- (roomservice-reserveringen hebben geen BO-status)!
|
||
-- LET OP: De procedure 'verwerken_res' moet draaien VOOR 'res2benq'!
|
||
nova.verwerken_res;
|
||
nova.res2benq;
|
||
EXCEPTION
|
||
WHEN OTHERS
|
||
THEN
|
||
oracle_err_num := SQLCODE;
|
||
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
|
||
v_errormsg := 'ORACLE (error ' || oracle_err_num || '/' || oracle_err_mes || ')';
|
||
fac.writelog ('DAILY', 'E', 'Proces afgebroken!', v_errormsg);
|
||
END NOVA_DAILY;
|
||
/
|
||
|
||
CREATE OR REPLACE PROCEDURE NOVA_IMPORT_KPN (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;
|
||
v_ongeldig NUMBER (1);
|
||
-- De importvelden
|
||
v_kpn_nr VARCHAR2 (255);
|
||
v_kpn_oms VARCHAR2 (255);
|
||
v_budgethouder VARCHAR2 (255);
|
||
v_kpn_soort 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_kpn;
|
||
COMMIT;
|
||
|
||
FOR rec IN c1
|
||
LOOP
|
||
BEGIN
|
||
v_newline := rec.fac_imp_file_line;
|
||
v_errormsg := 'Fout opvragen importregel';
|
||
v_aanduiding := '';
|
||
v_ongeldig := 0;
|
||
-- Lees alle veldwaarden
|
||
-- Code verbijzondering;Verb.code omschrijving;Budgethouder;Soort code
|
||
fac.imp_getfield (v_newline, c_delim, v_kpn_nr);
|
||
fac.imp_getfield (v_newline, c_delim, v_kpn_oms);
|
||
fac.imp_getfield (v_newline, c_delim, v_budgethouder);
|
||
fac.imp_getfield (v_newline, c_delim, v_kpn_soort);
|
||
v_aanduiding := '[' || TRIM (v_kpn_nr) || '|' || TRIM (v_kpn_oms) || '|' || TRIM (v_kpn_soort) || '] ';
|
||
|
||
-- Ik controleer of ik een geldige header heb, dat is: in de juiste
|
||
-- kolommen de juiste kolomkop. Ik controleer daarbij ALLE kolommen!
|
||
-- Ik negeer alles totdat ik een geldige header ben gepasseerd.
|
||
IF (header_is_valid = 0)
|
||
THEN
|
||
IF UPPER (v_kpn_nr) = 'CODE VERBIJZONDERING'
|
||
AND UPPER (v_kpn_oms) = 'VERB.CODE OMSCHRIJVING'
|
||
AND UPPER (v_budgethouder) = 'BUDGETHOUDER'
|
||
AND UPPER (v_kpn_soort) = 'SOORT CODE'
|
||
THEN
|
||
header_is_valid := 1;
|
||
END IF;
|
||
ELSIF (rec.regellengte > 0) -- Lege regels overslaan
|
||
THEN
|
||
BEGIN
|
||
v_count_tot := v_count_tot + 1;
|
||
|
||
-- Controleer veldwaarde v_kpn_soort
|
||
v_errormsg := 'Soort code ongeldig';
|
||
IF UPPER (TRIM (v_kpn_soort)) = 'GEBOUWKOSTENPLAATS'
|
||
THEN
|
||
v_kpn_soort := 'ALG';
|
||
ELSIF UPPER (TRIM (v_kpn_soort)) = 'PROJECTKOSTENPLAATS'
|
||
THEN
|
||
v_kpn_soort := 'PRJ';
|
||
ELSE
|
||
v_ongeldig := 1;
|
||
fac.imp_writelog (p_import_key, 'W', v_aanduiding || v_errormsg, 'Regel wordt overgeslagen!');
|
||
END IF;
|
||
|
||
-- Insert geformatteerde import record
|
||
IF v_ongeldig = 0
|
||
THEN
|
||
BEGIN
|
||
v_errormsg := 'Fout wegschrijven importregel';
|
||
INSERT INTO fac_imp_kpn (prs_kostenplaats_nr, prs_kostenplaats_omschrijving, prs_kostenplaats_module, prs_kostenplaats_externnr)
|
||
VALUES (TRIM (v_kpn_nr), TRIM (v_kpn_oms), v_kpn_soort, TRIM (v_budgethouder));
|
||
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;
|
||
END IF;
|
||
END;
|
||
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', 'KPN/#ingelezen importregels: ' || TO_CHAR (v_count_tot), '');
|
||
fac.imp_writelog (p_import_key, 'S', 'KPN/#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 := TRIM (v_errormsg || ' ORACLE (error ' || oracle_err_num || '/' || oracle_err_mes || ')');
|
||
fac.imp_writelog (p_import_key, 'E', v_aanduiding || v_errormsg, 'Inleesproces KPN afgebroken!');
|
||
END NOVA_IMPORT_KPN;
|
||
/
|
||
|
||
-- TODO: Speciale kostenplaatsgroep voor ALG- en PRJ-kostenplaatsen?
|
||
CREATE OR REPLACE PROCEDURE NOVA_UPDATE_KPN (p_import_key IN NUMBER)
|
||
AS
|
||
v_errormsg VARCHAR2 (1000) := '';
|
||
oracle_err_num NUMBER;
|
||
oracle_err_mes VARCHAR2 (200);
|
||
v_aanduiding VARCHAR2 (1000) := '';
|
||
v_count NUMBER (10);
|
||
|
||
-- Bijwerken kostenplaatsen.
|
||
CURSOR c_upd_kpn
|
||
IS
|
||
SELECT '[' || x.prs_kostenplaats_nr || '|' || x.prs_kostenplaats_omschrijving || '|' || x.prs_kostenplaats_module || '] ' aanduiding,
|
||
x.prs_kostenplaats_nr,
|
||
x.prs_kostenplaats_omschrijving,
|
||
x.prs_kostenplaats_module,
|
||
x.prs_kostenplaats_externnr,
|
||
kp.prs_kostenplaats_key,
|
||
pf.prs_perslid_key
|
||
FROM fac_imp_kpn x,
|
||
prs_v_aanwezigkostenplaats kp, -- Beschouw alle kostenplaatsen!
|
||
prs_v_perslid_fullnames pf
|
||
WHERE UPPER (x.prs_kostenplaats_nr) = kp.prs_kostenplaats_upper(+)
|
||
AND UPPER (x.prs_kostenplaats_externnr) = UPPER (pf.prs_perslid_naam_friendly(+))
|
||
ORDER BY kp.prs_kostenplaats_key;
|
||
BEGIN
|
||
v_count := 0;
|
||
FOR rec IN c_upd_kpn
|
||
LOOP
|
||
BEGIN
|
||
IF rec.prs_kostenplaats_key IS NULL
|
||
THEN
|
||
v_errormsg := 'Fout toevoegen kostenplaats';
|
||
INSERT INTO prs_kostenplaats (prs_kostenplaats_nr, prs_kostenplaats_omschrijving, prs_kostenplaats_module, prs_kostenplaats_begin, prs_perslid_key)
|
||
VALUES (rec.prs_kostenplaats_nr, rec.prs_kostenplaats_omschrijving, rec.prs_kostenplaats_module, SYSDATE, rec.prs_perslid_key);
|
||
ELSE
|
||
v_errormsg := 'Fout bijwerken kostenplaats';
|
||
UPDATE prs_kostenplaats kp
|
||
SET kp.prs_kostenplaats_omschrijving = rec.prs_kostenplaats_omschrijving,
|
||
kp.prs_kostenplaats_module = rec.prs_kostenplaats_module,
|
||
kp.prs_perslid_key = rec.prs_perslid_key
|
||
WHERE prs_kostenplaats_key = rec.prs_kostenplaats_key
|
||
AND NOT EXISTS (SELECT 1 FROM prs_afdeling WHERE prs_kostenplaats_key = kp.prs_kostenplaats_key);
|
||
END IF;
|
||
v_count := v_count + 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', rec.aanduiding || v_errormsg, '');
|
||
END;
|
||
END LOOP;
|
||
|
||
fac.imp_writelog (p_import_key, 'S', 'KPN/#bijgewerkt: ' || TO_CHAR (v_count), '');
|
||
/*
|
||
-- Zet kostenplaatsen op VERVALLEN; de rest handmatig verder maar regelen!
|
||
v_errormsg := 'Fout inactiveren kostenplaatsen.';
|
||
SELECT COUNT ( * )
|
||
INTO v_count
|
||
FROM prs_kostenplaats kp
|
||
WHERE kp.prs_kostenplaats_verwijder IS NULL
|
||
AND kp.prs_kostenplaats_module IN ('ALG', 'PRJ')
|
||
AND kp.prs_kostenplaats_upper != 'ONB'
|
||
AND UPPER (COALESCE (kp.prs_kostenplaats_omschrijving, '-')) NOT LIKE 'VERVALLEN:%'
|
||
AND COALESCE (kp.prs_kostenplaats_eind, SYSDATE) > TRUNC (SYSDATE) -- Actief (einddatum leeg of in toekomst)
|
||
AND NOT EXISTS
|
||
(SELECT 1
|
||
FROM fac_imp_kpn
|
||
WHERE UPPER (prs_kostenplaats_nr) = kp.prs_kostenplaats_upper)
|
||
AND NOT EXISTS
|
||
(SELECT 1
|
||
FROM prs_afdeling
|
||
WHERE prs_kostenplaats_key = kp.prs_kostenplaats_key);
|
||
|
||
UPDATE prs_kostenplaats kp
|
||
SET kp.prs_kostenplaats_eind = TRUNC (SYSDATE), -- Per vandaag vervallen
|
||
kp.prs_kostenplaats_omschrijving = SUBSTR ('VERVALLEN: ' || COALESCE (prs_kostenplaats_omschrijving, '-'), 1, 60)
|
||
WHERE kp.prs_kostenplaats_verwijder IS NULL
|
||
AND kp.prs_kostenplaats_module IN ('ALG', 'PRJ')
|
||
AND kp.prs_kostenplaats_upper != 'ONB'
|
||
AND UPPER (COALESCE (kp.prs_kostenplaats_omschrijving, '-')) NOT LIKE 'VERVALLEN:%'
|
||
AND COALESCE (kp.prs_kostenplaats_eind, SYSDATE) > TRUNC (SYSDATE) -- Actief (einddatum leeg of in toekomst)
|
||
AND NOT EXISTS
|
||
(SELECT 1
|
||
FROM fac_imp_kpn
|
||
WHERE UPPER (prs_kostenplaats_nr) = kp.prs_kostenplaats_upper)
|
||
AND NOT EXISTS
|
||
(SELECT 1
|
||
FROM prs_afdeling
|
||
WHERE prs_kostenplaats_key = kp.prs_kostenplaats_key);
|
||
|
||
fac.imp_writelog (p_import_key, 'S', 'KPN/#vervallen: ' || TO_CHAR (v_count), '');
|
||
*/
|
||
EXCEPTION
|
||
WHEN OTHERS
|
||
THEN
|
||
oracle_err_num := SQLCODE;
|
||
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
|
||
v_errormsg := TRIM (v_errormsg || ' ORACLE (error ' || oracle_err_num || '/' || oracle_err_mes || ')');
|
||
fac.imp_writelog (p_import_key, 'E', v_aanduiding || v_errormsg, 'Importproces KPN afgebroken!');
|
||
END NOVA_UPDATE_KPN;
|
||
/
|
||
|
||
CREATE OR REPLACE PROCEDURE NOVA_IMPORT_BEGR_HV (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;
|
||
v_ongeldig NUMBER (1);
|
||
v_count_tst NUMBER (10);
|
||
-- De importvelden
|
||
v_gebouw VARCHAR2 (4000);
|
||
v_nrs VARCHAR2 (4000);
|
||
v_omschrijving VARCHAR2 (4000);
|
||
v_leeg1 VARCHAR2 (4000);
|
||
v_mjop VARCHAR2 (4000);
|
||
v_leeg2 VARCHAR2 (4000);
|
||
v_hv_algemeen VARCHAR2 (4000);
|
||
v_leeg3 VARCHAR2 (4000);
|
||
v_aanp_gebter VARCHAR2 (4000);
|
||
v_activeren1 VARCHAR2 (4000);
|
||
v_leeg4 VARCHAR2 (4000);
|
||
v_inventaris VARCHAR2 (4000);
|
||
v_activeren2 VARCHAR2 (4000);
|
||
v_leeg5 VARCHAR2 (4000);
|
||
v_noodzaak VARCHAR2 (4000);
|
||
v_vervuitbrvern VARCHAR2 (4000);
|
||
v_leverancier VARCHAR2 (4000);
|
||
v_maand VARCHAR2 (4000);
|
||
v_contactpers VARCHAR2 (4000);
|
||
v_leeg6 VARCHAR2 (4000);
|
||
v_toelichting VARCHAR2 (4000);
|
||
v_leeg7 VARCHAR2 (4000);
|
||
v_bouwkosten VARCHAR2 (4000);
|
||
v_vaste_inr VARCHAR2 (4000);
|
||
v_advieskosten VARCHAR2 (4000);
|
||
v_losse_inv VARCHAR2 (4000);
|
||
v_bijkomende_kosten VARCHAR2 (4000);
|
||
v_onvoorzien VARCHAR2 (4000);
|
||
v_totaal VARCHAR2 (4000);
|
||
v_leeg8 VARCHAR2 (4000);
|
||
v_terrein VARCHAR2 (4000);
|
||
v_inr_terreinen40k VARCHAR2 (4000);
|
||
v_nieuwbouw VARCHAR2 (4000);
|
||
v_gebouwen_aankoop VARCHAR2 (4000);
|
||
v_verbouwingen40k VARCHAR2 (4000);
|
||
v_gr_onderh8j25k VARCHAR2 (4000);
|
||
v_gr_onderh10j25k VARCHAR2 (4000);
|
||
v_gr_onderh15j25k VARCHAR2 (4000);
|
||
v_gr_onderh20j25k VARCHAR2 (4000);
|
||
v_gr_onderh25j25k VARCHAR2 (4000);
|
||
v_gr_onderh30j25k VARCHAR2 (4000);
|
||
v_gr_onderh40j25k VARCHAR2 (4000);
|
||
v_lesinv3k VARCHAR2 (4000);
|
||
v_overige_inv3k VARCHAR2 (4000);
|
||
v_computerapp3k VARCHAR2 (4000);
|
||
v_software3k VARCHAR2 (4000);
|
||
v_transportmid5k VARCHAR2 (4000);
|
||
|
||
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 nova_imp_begr_hv;
|
||
COMMIT;
|
||
|
||
FOR rec IN c1
|
||
LOOP
|
||
BEGIN
|
||
v_newline := rec.fac_imp_file_line;
|
||
v_errormsg := 'Fout opvragen importregel';
|
||
v_aanduiding := '';
|
||
v_ongeldig := 0;
|
||
-- Lees alle veldwaarden
|
||
-- Code verbijzondering;Verb.code omschrijving;Budgethouder;Soort code
|
||
|
||
--versiedatum;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||
--;AANVRAAG PROJECTEN HUISVESTING / OVERIGE INVENTARIS (geen lesinventaris) 2024 (incl.btw);;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||
--;;;;;;;;;;;;;;;;;;;;;;Projecten 2024;;;;;;;;Investeringen 2024;;;;;;;;;;;;;;;;
|
||
--Gebouw;Nrs.;Omschrijving;;MJOP;;HV Algemeen3502;;Aanpassing gebouw/ terr.;Activeren;;Inventaris;Activeren;;
|
||
--noodzakelijkofwenselijk;vervanging,uitbreiding,vernieuwing,of combinatie;Naam leverancier;Gewenste maand van levering;Contact -persoon;;Eventuele toelichting vanuit de aanvrager;;
|
||
--Bouwkosten;Vaste inrichting;Advieskosten;Losseinventaris;Bijkomende kosten;Onvoorzien;Totaal;;
|
||
--Terrein;Inrichting terreinen (> EUR 40.000);Nieuwbouw;Gebouwen (aankoop bestaande gebouwen);Verbouwingen (>EUR 40.000 per project);Groot onderhoud (08 jaar) >EUR 25.000;
|
||
--Groot onderhoud (10 jaar) >EUR 25.000;Groot onderhoud (15 jaar) >EUR 25.000;Groot onderhoud (20 jaar) >EUR 25.000;
|
||
--Groot onderhoud (25 jaar) >EUR 25.000;Groot onderhoud (30 jaar) >EUR 25.000;Groot onderhoud (40 jaar) >EUR 25.000;
|
||
--Lesinventaris (>EUR 3.000);Overige inventaris (>EUR 3.000);Computerapparatuur (>EUR 3.000);Software (>EUR 3.000);Transportmiddelen (>EUR 5.000)
|
||
-- 1e keer Activeren (Gbk.rek 002.40)???
|
||
-- 2e keer Activeren (Gbk.rek 005.10)???
|
||
fac.imp_getfield (v_newline, c_delim, v_gebouw);
|
||
fac.imp_getfield (v_newline, c_delim, v_nrs);
|
||
fac.imp_getfield (v_newline, c_delim, v_omschrijving);
|
||
fac.imp_getfield (v_newline, c_delim, v_leeg1);
|
||
fac.imp_getfield (v_newline, c_delim, v_mjop);
|
||
fac.imp_getfield (v_newline, c_delim, v_leeg2);
|
||
fac.imp_getfield (v_newline, c_delim, v_hv_algemeen);
|
||
fac.imp_getfield (v_newline, c_delim, v_leeg3);
|
||
fac.imp_getfield (v_newline, c_delim, v_aanp_gebter);
|
||
fac.imp_getfield (v_newline, c_delim, v_activeren1);
|
||
fac.imp_getfield (v_newline, c_delim, v_leeg4);
|
||
fac.imp_getfield (v_newline, c_delim, v_inventaris);
|
||
fac.imp_getfield (v_newline, c_delim, v_activeren2);
|
||
fac.imp_getfield (v_newline, c_delim, v_leeg5);
|
||
fac.imp_getfield (v_newline, c_delim, v_noodzaak);
|
||
fac.imp_getfield (v_newline, c_delim, v_vervuitbrvern);
|
||
fac.imp_getfield (v_newline, c_delim, v_leverancier);
|
||
fac.imp_getfield (v_newline, c_delim, v_maand);
|
||
fac.imp_getfield (v_newline, c_delim, v_contactpers);
|
||
fac.imp_getfield (v_newline, c_delim, v_leeg6);
|
||
fac.imp_getfield (v_newline, c_delim, v_toelichting);
|
||
fac.imp_getfield (v_newline, c_delim, v_leeg7);
|
||
fac.imp_getfield (v_newline, c_delim, v_bouwkosten);
|
||
fac.imp_getfield (v_newline, c_delim, v_vaste_inr);
|
||
fac.imp_getfield (v_newline, c_delim, v_advieskosten);
|
||
fac.imp_getfield (v_newline, c_delim, v_losse_inv);
|
||
fac.imp_getfield (v_newline, c_delim, v_bijkomende_kosten);
|
||
fac.imp_getfield (v_newline, c_delim, v_onvoorzien);
|
||
fac.imp_getfield (v_newline, c_delim, v_totaal);
|
||
fac.imp_getfield (v_newline, c_delim, v_leeg8);
|
||
fac.imp_getfield (v_newline, c_delim, v_terrein);
|
||
fac.imp_getfield (v_newline, c_delim, v_inr_terreinen40k);
|
||
fac.imp_getfield (v_newline, c_delim, v_nieuwbouw);
|
||
fac.imp_getfield (v_newline, c_delim, v_gebouwen_aankoop);
|
||
fac.imp_getfield (v_newline, c_delim, v_verbouwingen40k);
|
||
fac.imp_getfield (v_newline, c_delim, v_gr_onderh8j25k);
|
||
fac.imp_getfield (v_newline, c_delim, v_gr_onderh10j25k);
|
||
fac.imp_getfield (v_newline, c_delim, v_gr_onderh15j25k);
|
||
fac.imp_getfield (v_newline, c_delim, v_gr_onderh20j25k);
|
||
fac.imp_getfield (v_newline, c_delim, v_gr_onderh25j25k);
|
||
fac.imp_getfield (v_newline, c_delim, v_gr_onderh30j25k);
|
||
fac.imp_getfield (v_newline, c_delim, v_gr_onderh40j25k);
|
||
fac.imp_getfield (v_newline, c_delim, v_lesinv3k);
|
||
fac.imp_getfield (v_newline, c_delim, v_overige_inv3k);
|
||
fac.imp_getfield (v_newline, c_delim, v_computerapp3k);
|
||
fac.imp_getfield (v_newline, c_delim, v_software3k);
|
||
fac.imp_getfield (v_newline, c_delim, v_transportmid5k);
|
||
v_aanduiding := '[' || TRIM (v_gebouw) || '|' || TRIM (v_nrs) || '|' || SUBSTR (TRIM (v_omschrijving), 1, 30) || '] ';
|
||
|
||
-- Ik controleer of ik een geldige header heb, dat is: in de juiste
|
||
-- kolommen de juiste kolomkop. Ik controleer daarbij ALLE kolommen!
|
||
-- Ik negeer alles totdat ik een geldige header ben gepasseerd.
|
||
IF (header_is_valid = 0)
|
||
THEN
|
||
IF UPPER (v_gebouw) = 'GEBOUW'
|
||
AND UPPER (v_nrs) = 'NRS.'
|
||
AND UPPER (v_omschrijving) = 'OMSCHRIJVING'
|
||
--AND UPPER (v_leeg1) = ''
|
||
AND UPPER (v_mjop) = 'MJOP'
|
||
--AND UPPER (v_leeg2) = ''
|
||
AND UPPER (v_hv_algemeen) = 'HV ALGEMEEN3502'
|
||
--AND UPPER (v_leeg3) = ''
|
||
AND UPPER (v_aanp_gebter) = 'AANPASSING GEBOUW/ TERR.'
|
||
--AND UPPER (v_activeren1) = 'ACTIVEREN'
|
||
--AND UPPER (v_leeg4) = ''
|
||
AND UPPER (v_inventaris) = 'INVENTARIS'
|
||
--AND UPPER (v_activeren2) = 'ACTIVEREN'
|
||
--AND UPPER (v_leeg5) = ''
|
||
--AND UPPER (v_noodzaak) = 'NOODZAKELIJKOFWENSELIJK'
|
||
--AND UPPER (v_vervuitbrvern) = 'VERVANGING,UITBREIDING,VERNIEUWING,OF COMBINATIE'
|
||
AND UPPER (v_leverancier) = 'NAAM LEVERANCIER'
|
||
--AND UPPER (v_maand) = 'GEWENSTE MAAND VAN LEVERING'
|
||
--AND UPPER (v_contactpers) = 'CONTACT -PERSOON'
|
||
--AND UPPER (v_leeg6) = ''
|
||
--AND UPPER (v_toelichting) = 'EVENTUELE TOELICHTING VANUIT DE AANVRAGER'
|
||
--AND UPPER (v_leeg7) = ''
|
||
AND UPPER (v_bouwkosten) = 'BOUWKOSTEN'
|
||
AND UPPER (v_vaste_inr) = 'VASTE INRICHTING'
|
||
AND UPPER (v_advieskosten) = 'ADVIESKOSTEN'
|
||
AND UPPER (v_losse_inv) = 'LOSSEINVENTARIS'
|
||
AND UPPER (v_bijkomende_kosten) = 'BIJKOMENDE KOSTEN'
|
||
AND UPPER (v_onvoorzien) = 'ONVOORZIEN'
|
||
AND UPPER (v_totaal) = 'TOTAAL'
|
||
--AND UPPER (v_leeg8) = ''
|
||
AND UPPER (v_terrein) = 'TERREIN'
|
||
AND UPPER (v_inr_terreinen40k) = 'INRICHTING TERREINEN (> EUR 40.000)'
|
||
AND UPPER (v_nieuwbouw) = 'NIEUWBOUW'
|
||
AND UPPER (v_gebouwen_aankoop) = 'GEBOUWEN (AANKOOP BESTAANDE GEBOUWEN)'
|
||
AND UPPER (v_verbouwingen40k) = 'VERBOUWINGEN (>EUR 40.000 PER PROJECT)'
|
||
AND UPPER (v_gr_onderh8j25k) = 'GROOT ONDERHOUD (08 JAAR) >EUR 25.000'
|
||
AND UPPER (v_gr_onderh10j25k) = 'GROOT ONDERHOUD (10 JAAR) >EUR 25.000'
|
||
AND UPPER (v_gr_onderh15j25k) = 'GROOT ONDERHOUD (15 JAAR) >EUR 25.000'
|
||
AND UPPER (v_gr_onderh20j25k) = 'GROOT ONDERHOUD (20 JAAR) >EUR 25.000'
|
||
AND UPPER (v_gr_onderh25j25k) = 'GROOT ONDERHOUD (25 JAAR) >EUR 25.000'
|
||
AND UPPER (v_gr_onderh30j25k) = 'GROOT ONDERHOUD (30 JAAR) >EUR 25.000'
|
||
AND UPPER (v_gr_onderh40j25k) = 'GROOT ONDERHOUD (40 JAAR) >EUR 25.000'
|
||
AND UPPER (v_lesinv3k) = 'LESINVENTARIS (>EUR 3.000)'
|
||
AND UPPER (v_overige_inv3k) = 'OVERIGE INVENTARIS (>EUR 3.000)'
|
||
AND UPPER (v_computerapp3k) = 'COMPUTERAPPARATUUR (>EUR 3.000)'
|
||
AND UPPER (v_software3k) = 'SOFTWARE (>EUR 3.000)'
|
||
AND UPPER (v_transportmid5k) = 'TRANSPORTMIDDELEN (>EUR 5.000)'
|
||
THEN
|
||
header_is_valid := 1;
|
||
END IF;
|
||
--ELSIF (rec.regellengte > 0 AND v_gebouw IS NOT NULL AND v_nrs IS NOT NULL) -- Lege regels overslaan
|
||
ELSIF (rec.regellengte > 0 AND v_gebouw IS NOT NULL) -- Lege regels overslaan
|
||
THEN
|
||
BEGIN
|
||
v_count_tot := v_count_tot + 1;
|
||
v_count_tst := 0;
|
||
|
||
-- Controleer kritische veldwaarden
|
||
-- Overige werkzaamheden
|
||
IF fac.safe_to_number (REPLACE (REPLACE (REPLACE (v_mjop, '.', ''), ',', '.'), '<EFBFBD>', '')) IS NOT NULL THEN v_count_tst := v_count_tst + 1; END IF;
|
||
IF fac.safe_to_number (REPLACE (REPLACE (REPLACE (v_hv_algemeen, '.', ''), ',', '.'), '<EFBFBD>', '')) IS NOT NULL THEN v_count_tst := v_count_tst + 1; END IF;
|
||
IF fac.safe_to_number (REPLACE (REPLACE (REPLACE (v_aanp_gebter, '.', ''), ',', '.'), '<EFBFBD>', '')) IS NOT NULL THEN v_count_tst := v_count_tst + 1; END IF;
|
||
IF fac.safe_to_number (REPLACE (REPLACE (REPLACE (v_inventaris, '.', ''), ',', '.'), '<EFBFBD>', '')) IS NOT NULL THEN v_count_tst := v_count_tst + 1; END IF;
|
||
|
||
-- Projecten
|
||
IF fac.safe_to_number (REPLACE (REPLACE (REPLACE (v_bouwkosten, '.', ''), ',', '.'), '<EFBFBD>', '')) IS NOT NULL
|
||
OR fac.safe_to_number (REPLACE (REPLACE (REPLACE (v_vaste_inr, '.', ''), ',', '.'), '<EFBFBD>', '')) IS NOT NULL
|
||
OR fac.safe_to_number (REPLACE (REPLACE (REPLACE (v_advieskosten, '.', ''), ',', '.'), '<EFBFBD>', '')) IS NOT NULL
|
||
OR fac.safe_to_number (REPLACE (REPLACE (REPLACE (v_losse_inv, '.', ''), ',', '.'), '<EFBFBD>', '')) IS NOT NULL
|
||
OR fac.safe_to_number (REPLACE (REPLACE (REPLACE (v_bijkomende_kosten, '.', ''), ',', '.'), '<EFBFBD>', '')) IS NOT NULL
|
||
OR fac.safe_to_number (REPLACE (REPLACE (REPLACE (v_onvoorzien, '.', ''), ',', '.'), '<EFBFBD>', '')) IS NOT NULL
|
||
THEN
|
||
v_count_tst := v_count_tst + 1;
|
||
END IF;
|
||
|
||
-- Investeringen
|
||
IF fac.safe_to_number (REPLACE (REPLACE (REPLACE (v_terrein, '.', ''), ',', '.'), '<EFBFBD>', '')) IS NOT NULL THEN v_count_tst := v_count_tst + 1; END IF;
|
||
IF fac.safe_to_number (REPLACE (REPLACE (REPLACE (v_inr_terreinen40k, '.', ''), ',', '.'), '<EFBFBD>', '')) IS NOT NULL THEN v_count_tst := v_count_tst + 1; END IF;
|
||
IF fac.safe_to_number (REPLACE (REPLACE (REPLACE (v_nieuwbouw, '.', ''), ',', '.'), '<EFBFBD>', '')) IS NOT NULL THEN v_count_tst := v_count_tst + 1; END IF;
|
||
IF fac.safe_to_number (REPLACE (REPLACE (REPLACE (v_gebouwen_aankoop, '.', ''), ',', '.'), '<EFBFBD>', '')) IS NOT NULL THEN v_count_tst := v_count_tst + 1; END IF;
|
||
IF fac.safe_to_number (REPLACE (REPLACE (REPLACE (v_verbouwingen40k, '.', ''), ',', '.'), '<EFBFBD>', '')) IS NOT NULL THEN v_count_tst := v_count_tst + 1; END IF;
|
||
IF fac.safe_to_number (REPLACE (REPLACE (REPLACE (v_gr_onderh8j25k, '.', ''), ',', '.'), '<EFBFBD>', '')) IS NOT NULL THEN v_count_tst := v_count_tst + 1; END IF;
|
||
IF fac.safe_to_number (REPLACE (REPLACE (REPLACE (v_gr_onderh10j25k, '.', ''), ',', '.'), '<EFBFBD>', '')) IS NOT NULL THEN v_count_tst := v_count_tst + 1; END IF;
|
||
IF fac.safe_to_number (REPLACE (REPLACE (REPLACE (v_gr_onderh15j25k, '.', ''), ',', '.'), '<EFBFBD>', '')) IS NOT NULL THEN v_count_tst := v_count_tst + 1; END IF;
|
||
IF fac.safe_to_number (REPLACE (REPLACE (REPLACE (v_gr_onderh20j25k, '.', ''), ',', '.'), '<EFBFBD>', '')) IS NOT NULL THEN v_count_tst := v_count_tst + 1; END IF;
|
||
IF fac.safe_to_number (REPLACE (REPLACE (REPLACE (v_gr_onderh25j25k, '.', ''), ',', '.'), '<EFBFBD>', '')) IS NOT NULL THEN v_count_tst := v_count_tst + 1; END IF;
|
||
IF fac.safe_to_number (REPLACE (REPLACE (REPLACE (v_gr_onderh30j25k, '.', ''), ',', '.'), '<EFBFBD>', '')) IS NOT NULL THEN v_count_tst := v_count_tst + 1; END IF;
|
||
IF fac.safe_to_number (REPLACE (REPLACE (REPLACE (v_gr_onderh40j25k, '.', ''), ',', '.'), '<EFBFBD>', '')) IS NOT NULL THEN v_count_tst := v_count_tst + 1; END IF;
|
||
IF fac.safe_to_number (REPLACE (REPLACE (REPLACE (v_lesinv3k, '.', ''), ',', '.'), '<EFBFBD>', '')) IS NOT NULL THEN v_count_tst := v_count_tst + 1; END IF;
|
||
IF fac.safe_to_number (REPLACE (REPLACE (REPLACE (v_overige_inv3k, '.', ''), ',', '.'), '<EFBFBD>', '')) IS NOT NULL THEN v_count_tst := v_count_tst + 1; END IF;
|
||
IF fac.safe_to_number (REPLACE (REPLACE (REPLACE (v_computerapp3k, '.', ''), ',', '.'), '<EFBFBD>', '')) IS NOT NULL THEN v_count_tst := v_count_tst + 1; END IF;
|
||
IF fac.safe_to_number (REPLACE (REPLACE (REPLACE (v_software3k, '.', ''), ',', '.'), '<EFBFBD>', '')) IS NOT NULL THEN v_count_tst := v_count_tst + 1; END IF;
|
||
IF fac.safe_to_number (REPLACE (REPLACE (REPLACE (v_transportmid5k, '.', ''), ',', '.'), '<EFBFBD>', '')) IS NOT NULL THEN v_count_tst := v_count_tst + 1; END IF;
|
||
|
||
IF v_count_tst = 0
|
||
THEN
|
||
fac.imp_writelog (p_import_key, 'E', v_aanduiding || 'Fout bepalen investeringsbedrag', 'Regel overgeslagen!');
|
||
v_ongeldig := 1;
|
||
ELSIF v_count_tst > 1
|
||
THEN
|
||
fac.imp_writelog (p_import_key, 'E', v_aanduiding || 'Fout bepalen investeringsrubriek', 'Regel overgeslagen!');
|
||
v_ongeldig := 1;
|
||
END IF;
|
||
|
||
-- Insert geformatteerde import record
|
||
IF v_ongeldig = 0
|
||
THEN
|
||
BEGIN
|
||
v_errormsg := 'Fout wegschrijven importregel';
|
||
INSERT INTO nova_imp_begr_hv (gebouw,
|
||
nrs,
|
||
omschrijving,
|
||
mjop,
|
||
hv_algemeen,
|
||
aanp_gebter,
|
||
inventaris,
|
||
noodzaak,
|
||
vervuitbrvern,
|
||
leverancier,
|
||
maand,
|
||
contactpers,
|
||
toelichting,
|
||
bouwkosten,
|
||
vaste_inr,
|
||
advieskosten,
|
||
losse_inv,
|
||
bijkomende_kosten,
|
||
onvoorzien,
|
||
--totaal,
|
||
terrein,
|
||
inr_terreinen40k,
|
||
nieuwbouw,
|
||
gebouwen_aankoop,
|
||
verbouwingen40k,
|
||
gr_onderh8j25k,
|
||
gr_onderh10j25k,
|
||
gr_onderh15j25k,
|
||
gr_onderh20j25k,
|
||
gr_onderh25j25k,
|
||
gr_onderh30j25k,
|
||
gr_onderh40j25k,
|
||
lesinv3k,
|
||
overige_inv3k,
|
||
computerapp3k,
|
||
software3k,
|
||
transportmid5k)
|
||
VALUES (TRIM (v_gebouw),
|
||
TRIM (v_nrs),
|
||
TRIM (v_omschrijving),
|
||
fac.safe_to_number (REPLACE (REPLACE (REPLACE (v_mjop, '.', ''), ',', '.'), '<EFBFBD>', '')),
|
||
fac.safe_to_number (REPLACE (REPLACE (REPLACE (v_hv_algemeen, '.', ''), ',', '.'), '<EFBFBD>', '')),
|
||
fac.safe_to_number (REPLACE (REPLACE (REPLACE (v_aanp_gebter, '.', ''), ',', '.'), '<EFBFBD>', '')),
|
||
fac.safe_to_number (REPLACE (REPLACE (REPLACE (v_inventaris, '.', ''), ',', '.'), '<EFBFBD>', '')),
|
||
TRIM (v_noodzaak),
|
||
TRIM (v_vervuitbrvern),
|
||
TRIM (v_leverancier),
|
||
TRIM (v_maand),
|
||
TRIM (v_contactpers),
|
||
TRIM (v_toelichting),
|
||
fac.safe_to_number (REPLACE (REPLACE (REPLACE (v_bouwkosten, '.', ''), ',', '.'), '<EFBFBD>', '')),
|
||
fac.safe_to_number (REPLACE (REPLACE (REPLACE (v_vaste_inr, '.', ''), ',', '.'), '<EFBFBD>', '')),
|
||
fac.safe_to_number (REPLACE (REPLACE (REPLACE (v_advieskosten, '.', ''), ',', '.'), '<EFBFBD>', '')),
|
||
fac.safe_to_number (REPLACE (REPLACE (REPLACE (v_losse_inv, '.', ''), ',', '.'), '<EFBFBD>', '')),
|
||
fac.safe_to_number (REPLACE (REPLACE (REPLACE (v_bijkomende_kosten, '.', ''), ',', '.'), '<EFBFBD>', '')),
|
||
fac.safe_to_number (REPLACE (REPLACE (REPLACE (v_onvoorzien, '.', ''), ',', '.'), '<EFBFBD>', '')),
|
||
--fac.safe_to_number (REPLACE (REPLACE (REPLACE (v_totaal, '.', ''), ',', '.'), '<27>', '')),
|
||
fac.safe_to_number (REPLACE (REPLACE (REPLACE (v_terrein, '.', ''), ',', '.'), '<EFBFBD>', '')),
|
||
fac.safe_to_number (REPLACE (REPLACE (REPLACE (v_inr_terreinen40k, '.', ''), ',', '.'), '<EFBFBD>', '')),
|
||
fac.safe_to_number (REPLACE (REPLACE (REPLACE (v_nieuwbouw, '.', ''), ',', '.'), '<EFBFBD>', '')),
|
||
fac.safe_to_number (REPLACE (REPLACE (REPLACE (v_gebouwen_aankoop, '.', ''), ',', '.'), '<EFBFBD>', '')),
|
||
fac.safe_to_number (REPLACE (REPLACE (REPLACE (v_verbouwingen40k, '.', ''), ',', '.'), '<EFBFBD>', '')),
|
||
fac.safe_to_number (REPLACE (REPLACE (REPLACE (v_gr_onderh8j25k, '.', ''), ',', '.'), '<EFBFBD>', '')),
|
||
fac.safe_to_number (REPLACE (REPLACE (REPLACE (v_gr_onderh10j25k, '.', ''), ',', '.'), '<EFBFBD>', '')),
|
||
fac.safe_to_number (REPLACE (REPLACE (REPLACE (v_gr_onderh15j25k, '.', ''), ',', '.'), '<EFBFBD>', '')),
|
||
fac.safe_to_number (REPLACE (REPLACE (REPLACE (v_gr_onderh20j25k, '.', ''), ',', '.'), '<EFBFBD>', '')),
|
||
fac.safe_to_number (REPLACE (REPLACE (REPLACE (v_gr_onderh25j25k, '.', ''), ',', '.'), '<EFBFBD>', '')),
|
||
fac.safe_to_number (REPLACE (REPLACE (REPLACE (v_gr_onderh30j25k, '.', ''), ',', '.'), '<EFBFBD>', '')),
|
||
fac.safe_to_number (REPLACE (REPLACE (REPLACE (v_gr_onderh40j25k, '.', ''), ',', '.'), '<EFBFBD>', '')),
|
||
fac.safe_to_number (REPLACE (REPLACE (REPLACE (v_lesinv3k, '.', ''), ',', '.'), '<EFBFBD>', '')),
|
||
fac.safe_to_number (REPLACE (REPLACE (REPLACE (v_overige_inv3k, '.', ''), ',', '.'), '<EFBFBD>', '')),
|
||
fac.safe_to_number (REPLACE (REPLACE (REPLACE (v_computerapp3k, '.', ''), ',', '.'), '<EFBFBD>', '')),
|
||
fac.safe_to_number (REPLACE (REPLACE (REPLACE (v_software3k, '.', ''), ',', '.'), '<EFBFBD>', '')),
|
||
fac.safe_to_number (REPLACE (REPLACE (REPLACE (v_transportmid5k, '.', ''), ',', '.'), '<EFBFBD>', '')));
|
||
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;
|
||
END IF;
|
||
END;
|
||
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', 'BEGR_HV/#ingelezen importregels: ' || TO_CHAR (v_count_tot), '');
|
||
fac.imp_writelog (p_import_key, 'S', 'BEGR_HV/#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 := TRIM (v_errormsg || ' ORACLE (error ' || oracle_err_num || '/' || oracle_err_mes || ')');
|
||
fac.imp_writelog (p_import_key, 'E', v_aanduiding || v_errormsg, 'Inleesproces BEGR_HV afgebroken!');
|
||
END NOVA_IMPORT_BEGR_HV;
|
||
/
|
||
|
||
-- 2/ 19 Huisvesting-Begroting-Investering
|
||
-- 381/101 Huisvesting-Begroting-Project
|
||
-- 382/102 Huisvesting-Begroting-MJOP
|
||
-- 383/103 Huisvesting-Begroting-HV Algemeen
|
||
-- 384/104 Huisvesting-Begroting-Aanpassing gebouw/terrein
|
||
-- 385/105 Huisvesting-Begroting-Inventaris
|
||
|
||
-- 781/301 Investeringsrubriek
|
||
-- 101/302 Investering/Investeringsbedrag (incl. BTW)
|
||
-- 790/303 MJOP/Investeringsbedrag (incl. BTW)
|
||
-- 791/304 HV Algemeen/Investeringsbedrag (incl. BTW)
|
||
-- 792/305 Aanpassing gebouw/terrein/Investeringsbedrag (incl. BTW)
|
||
-- 793/306 Inventaris/Investeringsbedrag (incl. BTW)
|
||
-- 789/307 Project/Bouwkosten
|
||
-- 801/308 Project/Vaste inrichting
|
||
-- 802/309 Project/Advieskosten
|
||
-- 803/310 Project/Losse inventaris
|
||
-- 804/311 Project/Bijkomende kostsen
|
||
-- 805/312 Project/Onvoorzien
|
||
-- ---/313 Project/Totaal
|
||
-- 784/314 Noodzakelijk of wenselijk
|
||
-- 785/315 Vervanging, uitbreiding, vernieuwing of combinatie
|
||
-- 786/316 Naam leverancier
|
||
-- 787/317 Gewenste maand van levering
|
||
-- 788/318 Contactpersoon
|
||
-- 794/319 Eventuele toelichting vanuit aanvrager
|
||
CREATE OR REPLACE PROCEDURE NOVA_UPDATE_BEGR_HV (p_import_key IN NUMBER)
|
||
AS
|
||
v_errormsg VARCHAR2 (1000) := '';
|
||
oracle_err_num NUMBER;
|
||
oracle_err_mes VARCHAR2 (200);
|
||
v_aanduiding VARCHAR2 (1000) := '';
|
||
v_count NUMBER (10);
|
||
v_melding_key NUMBER (10);
|
||
v_rubriek NUMBER (10);
|
||
v_bedrag NUMBER (10, 2);
|
||
|
||
-- Toevoegen meldingen tbv. (jaar)begroting HV.
|
||
CURSOR c_hv
|
||
IS
|
||
SELECT '[' || x.gebouw || '|' || x.nrs || '|' || SUBSTR (x.omschrijving, 1, 30) || '] ' aanduiding,
|
||
x.gebouw,
|
||
x.nrs,
|
||
x.omschrijving,
|
||
x.noodzaak,
|
||
x.vervuitbrvern,
|
||
x.leverancier,
|
||
x.maand,
|
||
x.contactpers,
|
||
x.toelichting,
|
||
CASE
|
||
WHEN x.mjop IS NOT NULL
|
||
THEN 102
|
||
WHEN x.hv_algemeen IS NOT NULL
|
||
THEN 103
|
||
WHEN x.aanp_gebter IS NOT NULL
|
||
THEN 104
|
||
WHEN x.inventaris IS NOT NULL
|
||
THEN 105
|
||
WHEN COALESCE (x.bouwkosten, x.vaste_inr, x.advieskosten, x.losse_inv, x.bijkomende_kosten, x.onvoorzien) IS NOT NULL
|
||
THEN 101
|
||
--WHEN COALESCE (x.terrein, x.inr_terreinen40k, x.nieuwbouw, x.gebouwen_aankoop, x.verbouwingen40k, x.gr_onderh8j25k, x.gr_onderh10j25k, x.gr_onderh15j25k, x.gr_onderh20j25k, x.gr_onderh25j25k, x.gr_onderh30j25k, x.gr_onderh40j25k, x.lesinv3k, x.overige_inv3k, x.computerapp3k, x.software3k, x.transportmid5k) IS NOT NULL
|
||
--THEN 19
|
||
ELSE 19
|
||
END
|
||
stdmelding_key,
|
||
COALESCE (g.alg_locatie_key, l.alg_locatie_key, 21) locatie_key, -- Als locatie niet kan worden bepaald, dan 21=Onbekend bij migratie/import
|
||
g.alg_gebouw_key gebouw_key, -- Als locatie niet kan worden bepaald, dan NULL
|
||
x.mjop,
|
||
x.hv_algemeen,
|
||
x.aanp_gebter,
|
||
x.inventaris,
|
||
x.bouwkosten,
|
||
x.vaste_inr,
|
||
x.advieskosten,
|
||
x.losse_inv,
|
||
x.bijkomende_kosten,
|
||
x.onvoorzien,
|
||
--x.totaal,
|
||
x.terrein,
|
||
x.inr_terreinen40k,
|
||
x.nieuwbouw,
|
||
x.gebouwen_aankoop,
|
||
x.verbouwingen40k,
|
||
x.gr_onderh8j25k,
|
||
x.gr_onderh10j25k,
|
||
x.gr_onderh15j25k,
|
||
x.gr_onderh20j25k,
|
||
x.gr_onderh25j25k,
|
||
x.gr_onderh30j25k,
|
||
x.gr_onderh40j25k,
|
||
x.lesinv3k,
|
||
x.overige_inv3k,
|
||
x.computerapp3k,
|
||
x.software3k,
|
||
x.transportmid5k,
|
||
TO_CHAR (ADD_MONTHS (SYSDATE, 2), 'yyyy') jaar
|
||
FROM nova_imp_begr_hv x,
|
||
alg_v_aanweziggebouw g,
|
||
alg_v_aanweziglocatie l
|
||
WHERE UPPER (x.gebouw) = g.alg_gebouw_code(+)
|
||
AND UPPER (x.gebouw) = UPPER (l.alg_locatie_code(+))
|
||
ORDER BY x.nrs;
|
||
BEGIN
|
||
v_count := 0;
|
||
|
||
FOR rec IN c_hv
|
||
LOOP
|
||
BEGIN
|
||
v_errormsg := 'Fout toevoegen HV-melding';
|
||
INSERT INTO mld_melding (mld_melding_module,
|
||
mld_meldbron_key,
|
||
mld_meldbron_nr,
|
||
mld_alg_locatie_key,
|
||
mld_alg_onroerendgoed_keys,
|
||
mld_melding_datum,
|
||
mld_melding_onderwerp,
|
||
mld_melding_omschrijving,
|
||
mld_melding_behandelaar_key,
|
||
mld_melding_behandelaar2_key,
|
||
mld_ins_discipline_key,
|
||
mld_stdmelding_key,
|
||
mld_melding_t_uitvoertijd,
|
||
mld_melding_einddatum,
|
||
prs_perslid_key,
|
||
prs_perslid_key_voor,
|
||
mld_melding_status,
|
||
mld_melding_spoed,
|
||
mld_melding_opmerking)
|
||
VALUES ('MLD',
|
||
1, -- Onbekend
|
||
rec.nrs,
|
||
rec.locatie_key,
|
||
rec.gebouw_key,
|
||
fac.safe_to_date ('01-01-' || rec.jaar, 'dd-mm-yyyy'),
|
||
NULL, -- Leeg/TODO???
|
||
SUBSTR (DECODE (rec.nrs, NULL, '', rec.nrs || CHR (13) || CHR (10)) || rec.omschrijving, 1, 4000),
|
||
TO_NUMBER (NULL), -- mld_melding_behandelaar_key
|
||
TO_NUMBER (NULL), -- mld_melding_behandelaar2_key
|
||
TO_NUMBER (NULL), -- mld_ins_discipline_key
|
||
rec.stdmelding_key,
|
||
NULL,
|
||
--TO_DATE (NULL),
|
||
fac.safe_to_date ('31-12-' || rec.jaar, 'dd-mm-yyyy'),
|
||
3561, -- Onbekend bij migratie/import
|
||
3561, -- Onbekend bij migratie/import
|
||
2, -- Nieuw
|
||
3,
|
||
NULL)
|
||
RETURNING mld_melding_key
|
||
INTO v_melding_key;
|
||
|
||
fac.trackaction ('MLDNEW', v_melding_key, NULL, SYSDATE, 'Ge<EFBFBD>mporteerd vanuit HV-sjabloon');
|
||
|
||
IF rec.stdmelding_key = 102
|
||
THEN
|
||
v_errormsg := 'Fout toevoegen [MJOP]-investeringsbedrag';
|
||
INSERT INTO mld_kenmerkmelding (mld_melding_key, mld_kenmerk_key, mld_kenmerkmelding_waarde)
|
||
VALUES (v_melding_key, 303, TO_CHAR (rec.mjop));
|
||
ELSIF rec.stdmelding_key = 103
|
||
THEN
|
||
v_errormsg := 'Fout toevoegen [HV Algemeen]-investeringsbedrag';
|
||
INSERT INTO mld_kenmerkmelding (mld_melding_key, mld_kenmerk_key, mld_kenmerkmelding_waarde)
|
||
VALUES (v_melding_key, 304, TO_CHAR (rec.hv_algemeen));
|
||
ELSIF rec.stdmelding_key = 104
|
||
THEN
|
||
v_errormsg := 'Fout toevoegen [Aanpassing gebouw/terrein]-investeringsbedrag';
|
||
INSERT INTO mld_kenmerkmelding (mld_melding_key, mld_kenmerk_key, mld_kenmerkmelding_waarde)
|
||
VALUES (v_melding_key, 305, TO_CHAR (rec.aanp_gebter));
|
||
ELSIF rec.stdmelding_key = 105
|
||
THEN
|
||
v_errormsg := 'Fout toevoegen [Inventaris]-investeringsbedrag';
|
||
INSERT INTO mld_kenmerkmelding (mld_melding_key, mld_kenmerk_key, mld_kenmerkmelding_waarde)
|
||
VALUES (v_melding_key, 306, TO_CHAR (rec.inventaris));
|
||
ELSIF rec.stdmelding_key = 101
|
||
THEN
|
||
IF rec.bouwkosten IS NOT NULL
|
||
THEN
|
||
v_errormsg := 'Fout toevoegen [Project]-bouwkosten';
|
||
INSERT INTO mld_kenmerkmelding (mld_melding_key, mld_kenmerk_key, mld_kenmerkmelding_waarde)
|
||
VALUES (v_melding_key, 307, TO_CHAR (rec.bouwkosten));
|
||
END IF;
|
||
|
||
IF rec.vaste_inr IS NOT NULL
|
||
THEN
|
||
v_errormsg := 'Fout toevoegen [Project]-vaste_inr';
|
||
INSERT INTO mld_kenmerkmelding (mld_melding_key, mld_kenmerk_key, mld_kenmerkmelding_waarde)
|
||
VALUES (v_melding_key, 308, TO_CHAR (rec.vaste_inr));
|
||
END IF;
|
||
|
||
IF rec.advieskosten IS NOT NULL
|
||
THEN
|
||
v_errormsg := 'Fout toevoegen [Project]-advieskosten';
|
||
INSERT INTO mld_kenmerkmelding (mld_melding_key, mld_kenmerk_key, mld_kenmerkmelding_waarde)
|
||
VALUES (v_melding_key, 309, TO_CHAR (rec.advieskosten));
|
||
END IF;
|
||
|
||
IF rec.losse_inv IS NOT NULL
|
||
THEN
|
||
v_errormsg := 'Fout toevoegen [Project]-losse_inv';
|
||
INSERT INTO mld_kenmerkmelding (mld_melding_key, mld_kenmerk_key, mld_kenmerkmelding_waarde)
|
||
VALUES (v_melding_key, 310, TO_CHAR (rec.losse_inv));
|
||
END IF;
|
||
|
||
IF rec.bijkomende_kosten IS NOT NULL
|
||
THEN
|
||
v_errormsg := 'Fout toevoegen [Project]-bijkomende_kosten';
|
||
INSERT INTO mld_kenmerkmelding (mld_melding_key, mld_kenmerk_key, mld_kenmerkmelding_waarde)
|
||
VALUES (v_melding_key, 311, TO_CHAR (rec.bijkomende_kosten));
|
||
END IF;
|
||
|
||
IF rec.onvoorzien IS NOT NULL
|
||
THEN
|
||
v_errormsg := 'Fout toevoegen [Project]-onvoorzien';
|
||
INSERT INTO mld_kenmerkmelding (mld_melding_key, mld_kenmerk_key, mld_kenmerkmelding_waarde)
|
||
VALUES (v_melding_key, 312, TO_CHAR (rec.onvoorzien));
|
||
END IF;
|
||
ELSIF rec.stdmelding_key = 19
|
||
THEN
|
||
v_errormsg := 'Fout toevoegen [Investering]-investeringsrubriek';
|
||
v_rubriek :=
|
||
CASE
|
||
WHEN rec.terrein IS NOT NULL THEN 181
|
||
WHEN rec.inr_terreinen40k IS NOT NULL THEN 182
|
||
WHEN rec.nieuwbouw IS NOT NULL THEN 183
|
||
WHEN rec.gebouwen_aankoop IS NOT NULL THEN 184
|
||
WHEN rec.verbouwingen40k IS NOT NULL THEN 185
|
||
WHEN rec.gr_onderh8j25k IS NOT NULL THEN 186
|
||
WHEN rec.gr_onderh10j25k IS NOT NULL THEN 187
|
||
WHEN rec.gr_onderh15j25k IS NOT NULL THEN 188
|
||
WHEN rec.gr_onderh20j25k IS NOT NULL THEN 189
|
||
WHEN rec.gr_onderh25j25k IS NOT NULL THEN 190
|
||
WHEN rec.gr_onderh30j25k IS NOT NULL THEN 191
|
||
WHEN rec.gr_onderh40j25k IS NOT NULL THEN 192
|
||
WHEN rec.lesinv3k IS NOT NULL THEN 193
|
||
WHEN rec.overige_inv3k IS NOT NULL THEN 194
|
||
WHEN rec.computerapp3k IS NOT NULL THEN 195
|
||
WHEN rec.software3k IS NOT NULL THEN 196
|
||
--WHEN rec.transportmid5k IS NOT NULL THEN 197
|
||
ELSE 197
|
||
END;
|
||
INSERT INTO mld_kenmerkmelding (mld_melding_key, mld_kenmerk_key, mld_kenmerkmelding_waarde)
|
||
VALUES (v_melding_key, 301, TO_CHAR (v_rubriek));
|
||
|
||
v_errormsg := 'Fout toevoegen [Investering]-investeringsbedrag';
|
||
v_bedrag :=
|
||
COALESCE (rec.terrein,
|
||
rec.inr_terreinen40k,
|
||
rec.nieuwbouw,
|
||
rec.gebouwen_aankoop,
|
||
rec.verbouwingen40k,
|
||
rec.gr_onderh8j25k,
|
||
rec.gr_onderh10j25k,
|
||
rec.gr_onderh15j25k,
|
||
rec.gr_onderh20j25k,
|
||
rec.gr_onderh25j25k,
|
||
rec.gr_onderh30j25k,
|
||
rec.gr_onderh40j25k,
|
||
rec.lesinv3k,
|
||
rec.overige_inv3k,
|
||
rec.computerapp3k,
|
||
rec.software3k,
|
||
rec.transportmid5k);
|
||
INSERT INTO mld_kenmerkmelding (mld_melding_key, mld_kenmerk_key, mld_kenmerkmelding_waarde)
|
||
VALUES (v_melding_key, 302, TO_CHAR (v_bedrag));
|
||
END IF;
|
||
|
||
IF rec.noodzaak IS NOT NULL
|
||
THEN
|
||
v_errormsg := 'Fout toevoegen noodzaak';
|
||
INSERT INTO mld_kenmerkmelding (mld_melding_key, mld_kenmerk_key, mld_kenmerkmelding_waarde)
|
||
VALUES (v_melding_key, 314, rec.noodzaak);
|
||
END IF;
|
||
|
||
IF rec.vervuitbrvern IS NOT NULL
|
||
THEN
|
||
v_errormsg := 'Fout toevoegen vervuitbrvern';
|
||
INSERT INTO mld_kenmerkmelding (mld_melding_key, mld_kenmerk_key, mld_kenmerkmelding_waarde)
|
||
VALUES (v_melding_key, 315, rec.vervuitbrvern);
|
||
END IF;
|
||
|
||
IF rec.leverancier IS NOT NULL
|
||
THEN
|
||
v_errormsg := 'Fout toevoegen leverancier';
|
||
INSERT INTO mld_kenmerkmelding (mld_melding_key, mld_kenmerk_key, mld_kenmerkmelding_waarde)
|
||
VALUES (v_melding_key, 316, rec.leverancier);
|
||
END IF;
|
||
|
||
IF rec.maand IS NOT NULL
|
||
THEN
|
||
v_errormsg := 'Fout toevoegen maand';
|
||
INSERT INTO mld_kenmerkmelding (mld_melding_key, mld_kenmerk_key, mld_kenmerkmelding_waarde)
|
||
VALUES (v_melding_key, 317, rec.maand);
|
||
END IF;
|
||
|
||
IF rec.contactpers IS NOT NULL
|
||
THEN
|
||
v_errormsg := 'Fout toevoegen contactpers';
|
||
INSERT INTO mld_kenmerkmelding (mld_melding_key, mld_kenmerk_key, mld_kenmerkmelding_waarde)
|
||
VALUES (v_melding_key, 318, rec.contactpers);
|
||
END IF;
|
||
|
||
IF rec.toelichting IS NOT NULL
|
||
THEN
|
||
v_errormsg := 'Fout toevoegen toelichting';
|
||
INSERT INTO mld_kenmerkmelding (mld_melding_key, mld_kenmerk_key, mld_kenmerkmelding_waarde)
|
||
VALUES (v_melding_key, 319, rec.toelichting);
|
||
END IF;
|
||
|
||
v_count := v_count + 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', rec.aanduiding || v_errormsg, '');
|
||
END;
|
||
END LOOP;
|
||
|
||
fac.imp_writelog (p_import_key, 'S', 'BEGR_HV/#meldingen: ' || TO_CHAR (v_count), '');
|
||
EXCEPTION
|
||
WHEN OTHERS
|
||
THEN
|
||
oracle_err_num := SQLCODE;
|
||
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
|
||
v_errormsg := TRIM (v_errormsg || ' ORACLE (error ' || oracle_err_num || '/' || oracle_err_mes || ')');
|
||
fac.imp_writelog (p_import_key, 'E', v_aanduiding || v_errormsg, 'Importproces BEGR_HV afgebroken!');
|
||
END NOVA_UPDATE_BEGR_HV;
|
||
/
|
||
|
||
CREATE OR REPLACE PROCEDURE NOVA_IMPORT_BEGR_INK (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;
|
||
v_ongeldig NUMBER (1);
|
||
-- De importvelden
|
||
v_plusje VARCHAR2 (4000);
|
||
v_jr VARCHAR2 (4000);
|
||
v_dl VARCHAR2 (4000);
|
||
v_actgrpnr VARCHAR2 (4000);
|
||
v_vestiging VARCHAR2 (4000);
|
||
v_aard VARCHAR2 (4000);
|
||
v_noodzaak VARCHAR2 (4000);
|
||
v_vervuitbrvern VARCHAR2 (4000);
|
||
v_leverancier VARCHAR2 (4000);
|
||
v_maand VARCHAR2 (4000);
|
||
v_contactpers VARCHAR2 (4000);
|
||
v_invbedrag VARCHAR2 (4000);
|
||
v_afschrkosten VARCHAR2 (4000);
|
||
|
||
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 nova_imp_begr_ink;
|
||
COMMIT;
|
||
|
||
FOR rec IN c1
|
||
LOOP
|
||
BEGIN
|
||
v_newline := rec.fac_imp_file_line;
|
||
v_errormsg := 'Fout opvragen importregel';
|
||
v_aanduiding := '';
|
||
v_ongeldig := 0;
|
||
-- Lees alle veldwaarden
|
||
-- Code verbijzondering;Verb.code omschrijving;Budgethouder;Soort code
|
||
|
||
--TOTAAL;;;;INVESTERINGEN + AFSCHRIJVINGSKOSTEN 2025;;;;;;Budgetcode:;;
|
||
--+;jr;dl;ActGrpNr;Vestiging; - aard van de beoogde uitgaven;Noodzakelijkofwenselijk;Vervanging,uitbreiding,vernieuwing,of combinatie;Naam leverancier;Gewenste maand van levering;Contact -persoon;Investerings -bedrag (incl.btw);Afschrijvingskosten
|
||
fac.imp_getfield (v_newline, c_delim, v_plusje);
|
||
fac.imp_getfield (v_newline, c_delim, v_jr);
|
||
fac.imp_getfield (v_newline, c_delim, v_dl);
|
||
fac.imp_getfield (v_newline, c_delim, v_actgrpnr);
|
||
fac.imp_getfield (v_newline, c_delim, v_vestiging);
|
||
fac.imp_getfield (v_newline, c_delim, v_aard);
|
||
fac.imp_getfield (v_newline, c_delim, v_noodzaak);
|
||
fac.imp_getfield (v_newline, c_delim, v_vervuitbrvern);
|
||
fac.imp_getfield (v_newline, c_delim, v_leverancier);
|
||
fac.imp_getfield (v_newline, c_delim, v_maand);
|
||
fac.imp_getfield (v_newline, c_delim, v_contactpers);
|
||
fac.imp_getfield (v_newline, c_delim, v_invbedrag);
|
||
fac.imp_getfield (v_newline, c_delim, v_afschrkosten);
|
||
v_aanduiding := '[' || TRIM (v_actgrpnr) || '|' || TRIM (v_vestiging) || '|' || TRIM (v_aard) || '] ';
|
||
|
||
-- Ik controleer of ik een geldige header heb, dat is: in de juiste
|
||
-- kolommen de juiste kolomkop. Ik controleer daarbij ALLE kolommen!
|
||
-- Ik negeer alles totdat ik een geldige header ben gepasseerd.
|
||
IF (header_is_valid = 0)
|
||
THEN
|
||
IF UPPER (v_plusje) = '+'
|
||
AND UPPER (v_jr) = 'JR'
|
||
AND UPPER (v_dl) = 'DL'
|
||
AND UPPER (v_actgrpnr) = 'ACTGRPNR'
|
||
AND UPPER (v_vestiging) = 'VESTIGING'
|
||
--AND UPPER (v_aard) = ' - AARD VAN DE BEOOGDE UITGAVEN'
|
||
--AND UPPER (v_noodzaak) = 'NOODZAKELIJKOFWENSELIJK'
|
||
--AND UPPER (v_vervuitbrvern) = 'VERVANGING,UITBREIDING,VERNIEUWING,OF COMBINATIE'
|
||
AND UPPER (v_leverancier) = 'NAAM LEVERANCIER'
|
||
--AND UPPER (v_maand) = 'GEWENSTE MAAND VAN LEVERING'
|
||
--AND UPPER (v_contactpers) = 'CONTACT -PERSOON'
|
||
--AND UPPER (v_invbedrag) = 'INVESTERINGS -BEDRAG (INCL.BTW)'
|
||
AND UPPER (v_afschrkosten) = 'AFSCHRIJVINGSKOSTEN'
|
||
THEN
|
||
header_is_valid := 1;
|
||
END IF;
|
||
-- Lege regels, regels met alleen een '+' overslaan en
|
||
ELSIF NOT (rec.regellengte = 0 OR (rec.regellengte = 1 AND SUBSTR (rec.fac_imp_file_line, 1, 1) = '+') OR v_aard IS NULL)
|
||
THEN
|
||
BEGIN
|
||
v_count_tot := v_count_tot + 1;
|
||
|
||
-- Controleer kritische veldwaarden
|
||
IF fac.safe_to_number (REPLACE (REPLACE (v_invbedrag, '.', ''), ',', '.')) IS NULL
|
||
THEN
|
||
fac.imp_writelog (p_import_key, 'E', v_aanduiding || 'Fout bepalen investeringsbedrag', 'Regel overgeslagen!');
|
||
v_ongeldig := 1;
|
||
ELSIF fac.safe_to_number (v_actgrpnr) IS NULL OR fac.safe_to_number (v_actgrpnr) NOT BETWEEN 1 AND 17
|
||
THEN
|
||
fac.imp_writelog (p_import_key, 'W', v_aanduiding || 'Fout bepalen investeringsrubriek', 'Regel overgeslagen!');
|
||
v_ongeldig := 1;
|
||
END IF;
|
||
|
||
-- Insert geformatteerde import record
|
||
IF v_ongeldig = 0
|
||
THEN
|
||
BEGIN
|
||
v_errormsg := 'Fout wegschrijven importregel';
|
||
INSERT INTO nova_imp_begr_ink (jr,
|
||
dl,
|
||
actgrpnr,
|
||
vestiging,
|
||
aard,
|
||
noodzaak,
|
||
vervuitbrvern,
|
||
leverancier,
|
||
maand,
|
||
contactpers,
|
||
invbedrag,
|
||
afschrkosten)
|
||
VALUES (TRIM (v_jr),
|
||
TRIM (v_dl),
|
||
TRIM (v_actgrpnr),
|
||
TRIM (v_vestiging),
|
||
TRIM (v_aard),
|
||
TRIM (v_noodzaak),
|
||
TRIM (v_vervuitbrvern),
|
||
TRIM (v_leverancier),
|
||
TRIM (v_maand),
|
||
TRIM (v_contactpers),
|
||
fac.safe_to_number (REPLACE (REPLACE (v_invbedrag, '.', ''), ',', '.')),
|
||
fac.safe_to_number (REPLACE (REPLACE (v_afschrkosten, '.', ''), ',', '.')));
|
||
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;
|
||
END IF;
|
||
END;
|
||
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', 'BEGR_INK/#ingelezen importregels: ' || TO_CHAR (v_count_tot), '');
|
||
fac.imp_writelog (p_import_key, 'S', 'BEGR_INK/#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 := TRIM (v_errormsg || ' ORACLE (error ' || oracle_err_num || '/' || oracle_err_mes || ')');
|
||
fac.imp_writelog (p_import_key, 'E', v_aanduiding || v_errormsg, 'Inleesproces BEGR_INK afgebroken!');
|
||
END NOVA_IMPORT_BEGR_INK;
|
||
/
|
||
|
||
-- 181/ 17 Bestellen-Begroting-Investering
|
||
|
||
-- 782/321 Investeringsrubriek
|
||
-- 783/322 Investeringsbedrag (incl. BTW)
|
||
-- 800/323 Afschrijvingskosten
|
||
-- 795/324 Noodzakelijk of wenselijk
|
||
-- 796/325 Vervanging, uitbreiding, vernieuwing of combinatie
|
||
-- 797/326 Naam leverancier
|
||
-- 798/327 Gewenste maand van levering
|
||
-- 799/328 Contactpersoon
|
||
-- 821/329 Budgethouder
|
||
-- 822/330 Investeringsstatus
|
||
CREATE OR REPLACE PROCEDURE NOVA_UPDATE_BEGR_INK (p_import_key IN NUMBER)
|
||
AS
|
||
v_errormsg VARCHAR2 (1000) := '';
|
||
oracle_err_num NUMBER;
|
||
oracle_err_mes VARCHAR2 (200);
|
||
v_aanduiding VARCHAR2 (1000) := '';
|
||
v_count NUMBER (10);
|
||
v_melding_key NUMBER (10);
|
||
|
||
-- Toevoegen meldingen tbv. (jaar)begroting INK.
|
||
CURSOR c_ink
|
||
IS
|
||
SELECT '[' || x.actgrpnr || '|' || x.vestiging || '|' || SUBSTR (x.aard, 1, 30) || '] ' aanduiding,
|
||
--x.jr, x.dl, x.actgrpnr, x.vestiging,
|
||
x.aard,
|
||
x.noodzaak,
|
||
x.vervuitbrvern,
|
||
x.leverancier,
|
||
x.maand,
|
||
x.contactpers,
|
||
17 stdmelding_key,
|
||
COALESCE (g.alg_locatie_key, l.alg_locatie_key, 21) locatie_key, -- Als locatie niet kan worden bepaald, dan 21=Onbekend bij migratie
|
||
g.alg_gebouw_key gebouw_key, -- Als locatie niet kan worden bepaald, dan NULL
|
||
CASE
|
||
WHEN fac.safe_to_number (x.actgrpnr) = 1 THEN 181
|
||
WHEN fac.safe_to_number (x.actgrpnr) = 2 THEN 182
|
||
WHEN fac.safe_to_number (x.actgrpnr) = 3 THEN 183
|
||
WHEN fac.safe_to_number (x.actgrpnr) = 4 THEN 184
|
||
WHEN fac.safe_to_number (x.actgrpnr) = 5 THEN 185
|
||
WHEN fac.safe_to_number (x.actgrpnr) = 6 THEN 186
|
||
WHEN fac.safe_to_number (x.actgrpnr) = 7 THEN 187
|
||
WHEN fac.safe_to_number (x.actgrpnr) = 8 THEN 188
|
||
WHEN fac.safe_to_number (x.actgrpnr) = 9 THEN 189
|
||
WHEN fac.safe_to_number (x.actgrpnr) = 10 THEN 190
|
||
WHEN fac.safe_to_number (x.actgrpnr) = 11 THEN 191
|
||
WHEN fac.safe_to_number (x.actgrpnr) = 12 THEN 192
|
||
WHEN fac.safe_to_number (x.actgrpnr) = 13 THEN 193
|
||
WHEN fac.safe_to_number (x.actgrpnr) = 14 THEN 194
|
||
WHEN fac.safe_to_number (x.actgrpnr) = 15 THEN 195
|
||
WHEN fac.safe_to_number (x.actgrpnr) = 16 THEN 196
|
||
--WHEN fac.safe_to_number (x.actgrpnr) = 17 THEN 197
|
||
ELSE 197
|
||
END
|
||
rubriek,
|
||
x.invbedrag,
|
||
x.afschrkosten,
|
||
TO_CHAR (ADD_MONTHS (SYSDATE, 2), 'yyyy') jaar
|
||
FROM nova_imp_begr_ink x,
|
||
alg_v_aanweziggebouw g,
|
||
alg_v_aanweziglocatie l
|
||
WHERE UPPER (x.vestiging) = g.alg_gebouw_code(+)
|
||
AND UPPER (x.vestiging) = UPPER (l.alg_locatie_code(+))
|
||
ORDER BY x.actgrpnr, COALESCE (g.alg_locatie_key, l.alg_locatie_key, 21), COALESCE (g.alg_gebouw_key, 12761), aard;
|
||
BEGIN
|
||
v_count := 0;
|
||
FOR rec IN c_ink
|
||
LOOP
|
||
BEGIN
|
||
v_errormsg := 'Fout toevoegen INK-melding';
|
||
INSERT INTO mld_melding (mld_melding_module,
|
||
mld_meldbron_key,
|
||
mld_meldbron_nr,
|
||
mld_alg_locatie_key,
|
||
mld_alg_onroerendgoed_keys,
|
||
mld_melding_datum,
|
||
mld_melding_onderwerp,
|
||
mld_melding_omschrijving,
|
||
mld_melding_behandelaar_key,
|
||
mld_melding_behandelaar2_key,
|
||
mld_ins_discipline_key,
|
||
mld_stdmelding_key,
|
||
mld_melding_t_uitvoertijd,
|
||
mld_melding_einddatum,
|
||
prs_perslid_key,
|
||
prs_perslid_key_voor,
|
||
mld_melding_status,
|
||
mld_melding_spoed,
|
||
mld_melding_opmerking)
|
||
VALUES ('MLD',
|
||
1, -- Onbekend
|
||
NULL,
|
||
rec.locatie_key,
|
||
rec.gebouw_key,
|
||
fac.safe_to_date ('01-01-' || rec.jaar, 'dd-mm-yyyy'),
|
||
NULL, -- Leeg/TODO???
|
||
rec.aard,
|
||
TO_NUMBER (NULL), -- mld_melding_behandelaar_key
|
||
TO_NUMBER (NULL), -- mld_melding_behandelaar2_key
|
||
TO_NUMBER (NULL), -- mld_ins_discipline_key
|
||
rec.stdmelding_key,
|
||
NULL,
|
||
--TO_DATE (NULL),
|
||
fac.safe_to_date ('31-12-' || rec.jaar, 'dd-mm-yyyy'),
|
||
3561, -- Onbekend bij migratie/import
|
||
3561, -- Onbekend bij migratie/import
|
||
2, -- Nieuw
|
||
3,
|
||
NULL)
|
||
RETURNING mld_melding_key
|
||
INTO v_melding_key;
|
||
|
||
fac.trackaction ('MLDNEW', v_melding_key, NULL, SYSDATE, 'Ge<EFBFBD>mporteerd vanuit INK-sjabloon');
|
||
|
||
-- Moet bestaan!
|
||
v_errormsg := 'Fout toevoegen investeringsrubriek';
|
||
INSERT INTO mld_kenmerkmelding (mld_melding_key, mld_kenmerk_key, mld_kenmerkmelding_waarde)
|
||
VALUES (v_melding_key, 321, TO_CHAR (rec.rubriek));
|
||
|
||
-- Moet bestaan!
|
||
v_errormsg := 'Fout toevoegen investeringsbedrag';
|
||
INSERT INTO mld_kenmerkmelding (mld_melding_key, mld_kenmerk_key, mld_kenmerkmelding_waarde)
|
||
VALUES (v_melding_key, 322, TO_CHAR (rec.invbedrag));
|
||
|
||
--IF rec.afschrkosten IS NOT NULL
|
||
--THEN
|
||
-- v_errormsg := 'Fout toevoegen afschrijvingskosten';
|
||
-- INSERT INTO mld_kenmerkmelding (mld_melding_key, mld_kenmerk_key, mld_kenmerkmelding_waarde)
|
||
-- VALUES (v_melding_key, 323, TO_CHAR (rec.afschrkosten));
|
||
--END IF;
|
||
|
||
IF rec.noodzaak IS NOT NULL
|
||
THEN
|
||
v_errormsg := 'Fout toevoegen noodzaak';
|
||
INSERT INTO mld_kenmerkmelding (mld_melding_key, mld_kenmerk_key, mld_kenmerkmelding_waarde)
|
||
VALUES (v_melding_key, 324, rec.noodzaak);
|
||
END IF;
|
||
|
||
IF rec.vervuitbrvern IS NOT NULL
|
||
THEN
|
||
v_errormsg := 'Fout toevoegen vervuitbrvern';
|
||
INSERT INTO mld_kenmerkmelding (mld_melding_key, mld_kenmerk_key, mld_kenmerkmelding_waarde)
|
||
VALUES (v_melding_key, 325, rec.vervuitbrvern);
|
||
END IF;
|
||
|
||
IF rec.leverancier IS NOT NULL
|
||
THEN
|
||
v_errormsg := 'Fout toevoegen leverancier';
|
||
INSERT INTO mld_kenmerkmelding (mld_melding_key, mld_kenmerk_key, mld_kenmerkmelding_waarde)
|
||
VALUES (v_melding_key, 326, rec.leverancier);
|
||
END IF;
|
||
|
||
IF rec.maand IS NOT NULL
|
||
THEN
|
||
v_errormsg := 'Fout toevoegen maand';
|
||
INSERT INTO mld_kenmerkmelding (mld_melding_key, mld_kenmerk_key, mld_kenmerkmelding_waarde)
|
||
VALUES (v_melding_key, 327, rec.maand);
|
||
END IF;
|
||
|
||
IF rec.contactpers IS NOT NULL
|
||
THEN
|
||
v_errormsg := 'Fout toevoegen contactpers';
|
||
INSERT INTO mld_kenmerkmelding (mld_melding_key, mld_kenmerk_key, mld_kenmerkmelding_waarde)
|
||
VALUES (v_melding_key, 328, rec.contactpers);
|
||
END IF;
|
||
|
||
v_count := v_count + 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', rec.aanduiding || v_errormsg, '');
|
||
END;
|
||
END LOOP;
|
||
|
||
fac.imp_writelog (p_import_key, 'S', 'BEGR_INK/#meldingen: ' || TO_CHAR (v_count), '');
|
||
EXCEPTION
|
||
WHEN OTHERS
|
||
THEN
|
||
oracle_err_num := SQLCODE;
|
||
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
|
||
v_errormsg := TRIM (v_errormsg || ' ORACLE (error ' || oracle_err_num || '/' || oracle_err_mes || ')');
|
||
fac.imp_writelog (p_import_key, 'E', v_aanduiding || v_errormsg, 'Importproces BEGR_INK afgebroken!');
|
||
END NOVA_UPDATE_BEGR_INK;
|
||
/
|
||
|
||
CREATE OR REPLACE VIEW NOVA_V_NOTI_CNTREMINDER
|
||
(
|
||
code,
|
||
sender,
|
||
receiver,
|
||
text,
|
||
key,
|
||
par1,
|
||
par2,
|
||
xkey,
|
||
xemail,
|
||
xmobile,
|
||
fac_srtnotificatie_key,
|
||
attachments,
|
||
xsender,
|
||
prs_bedrijfadres_key
|
||
)
|
||
AS
|
||
SELECT 'CNTMAI',
|
||
'',
|
||
COALESCE (c.prs_perslid_key_eig, 765), -- 765=dslager@novacollege.nl
|
||
'Rappel: Contract '
|
||
|| c.cnt_contract_nummer_intern
|
||
|| DECODE (cnt_contract_versie, NULL, '', '.' || cnt_contract_versie)
|
||
|| ' ('
|
||
--|| c.cnt_contract_omschrijving
|
||
--|| ' '
|
||
|| TRIM (b.prs_bedrijf_naam)
|
||
|| ')'
|
||
|| ' moet uiterlijk per '
|
||
|| TO_CHAR (cnt.cnt_getopzegdatum (c.cnt_contract_key), 'DD-MM-YYYY')
|
||
|| ' worden verlengd of opgezegd',
|
||
c.cnt_contract_key,
|
||
c.cnt_contract_nummer_intern,
|
||
cnt.cnt_getopzegdatum (c.cnt_contract_key),
|
||
NULL,
|
||
NULL xemail,
|
||
NULL xmobile,
|
||
NULL fac_srtnotificatie_key,
|
||
NULL attachments,
|
||
NULL xsender,
|
||
NULL prs_bedrijfadres_key
|
||
FROM cnt_v_aanwezigcontract c, prs_bedrijf b
|
||
WHERE c.cnt_contract_status = 0 -- Definitief
|
||
AND c.cnt_contract_key = cnt.getnieuwsteversiekey (c.cnt_contract_key)
|
||
--AND SYSDATE BETWEEN cnt.cnt_getrappeldatum (c.cnt_contract_key) AND cnt.cnt_getopzegdatum (c.cnt_contract_key)
|
||
AND TRUNC (cnt.cnt_getrappeldatum (c.cnt_contract_key)) = TRUNC (SYSDATE)
|
||
AND c.cnt_prs_bedrijf_key = b.prs_bedrijf_key
|
||
AND c.prs_perslid_key_eig IS NOT NULL;
|
||
/*
|
||
UNION ALL -- Naar beheerder=Inkoop
|
||
SELECT 'CNTMAI',
|
||
'',
|
||
c.prs_perslid_key_beh,
|
||
'Rappel: Contract '
|
||
|| c.cnt_contract_nummer_intern
|
||
|| DECODE (cnt_contract_versie, NULL, '', '.' || cnt_contract_versie)
|
||
|| ' ('
|
||
--|| c.cnt_contract_omschrijving
|
||
--|| ' '
|
||
|| TRIM (b.prs_bedrijf_naam)
|
||
|| ')'
|
||
|| ' moet uiterlijk per '
|
||
|| TO_CHAR (cnt.cnt_getopzegdatum (c.cnt_contract_key), 'DD-MM-YYYY')
|
||
|| ' worden verlengd of opgezegd',
|
||
c.cnt_contract_key,
|
||
c.cnt_contract_nummer_intern,
|
||
cnt.cnt_getopzegdatum (c.cnt_contract_key),
|
||
NULL,
|
||
NULL xemail,
|
||
NULL xmobile,
|
||
NULL fac_srtnotificatie_key,
|
||
NULL attachments,
|
||
NULL xsender,
|
||
NULL prs_bedrijfadres_key
|
||
FROM cnt_v_aanwezigcontract c, prs_bedrijf b
|
||
WHERE c.cnt_contract_status = 0 -- Definitief
|
||
AND c.cnt_contract_key = cnt.getnieuwsteversiekey (c.cnt_contract_key)
|
||
--AND SYSDATE BETWEEN cnt.cnt_getrappeldatum (c.cnt_contract_key) AND cnt.cnt_getopzegdatum (c.cnt_contract_key)
|
||
AND TRUNC (cnt.cnt_getrappeldatum (c.cnt_contract_key)) = TRUNC (SYSDATE)
|
||
AND c.cnt_prs_bedrijf_key = b.prs_bedrijf_key
|
||
UNION ALL -- Naar _FACILITOR
|
||
SELECT 'CNTMAI',
|
||
'',
|
||
3,
|
||
'Rappel: Contract '
|
||
|| c.cnt_contract_nummer_intern
|
||
|| DECODE (cnt_contract_versie, NULL, '', '.' || cnt_contract_versie)
|
||
|| ' ('
|
||
--|| c.cnt_contract_omschrijving
|
||
--|| ' '
|
||
|| TRIM (b.prs_bedrijf_naam)
|
||
|| ')'
|
||
|| ' moet uiterlijk per '
|
||
|| TO_CHAR (cnt.cnt_getopzegdatum (c.cnt_contract_key), 'DD-MM-YYYY')
|
||
|| ' worden verlengd of opgezegd',
|
||
c.cnt_contract_key,
|
||
c.cnt_contract_nummer_intern,
|
||
cnt.cnt_getopzegdatum (c.cnt_contract_key),
|
||
NULL,
|
||
NULL xemail,
|
||
NULL xmobile,
|
||
NULL fac_srtnotificatie_key,
|
||
NULL attachments,
|
||
NULL xsender,
|
||
NULL prs_bedrijfadres_key
|
||
FROM cnt_v_aanwezigcontract c, prs_bedrijf b
|
||
WHERE c.cnt_contract_status = 0 -- Definitief
|
||
AND c.cnt_contract_key = cnt.getnieuwsteversiekey (c.cnt_contract_key)
|
||
--AND SYSDATE BETWEEN cnt.cnt_getrappeldatum (c.cnt_contract_key) AND cnt.cnt_getopzegdatum (c.cnt_contract_key)
|
||
AND TRUNC (cnt.cnt_getrappeldatum (c.cnt_contract_key)) = TRUNC (SYSDATE)
|
||
AND c.cnt_prs_bedrijf_key = b.prs_bedrijf_key
|
||
AND NOT EXISTS (SELECT 1
|
||
FROM cnt_v_aanwezigcontract
|
||
WHERE cnt_contract_status = 0
|
||
AND cnt_contract_key = cnt.getnieuwsteversiekey (cnt_contract_key)
|
||
--AND SYSDATE BETWEEN cnt.cnt_getrappeldatum (c.cnt_contract_key) AND cnt.cnt_getopzegdatum (c.cnt_contract_key)
|
||
AND TRUNC (cnt.cnt_getrappeldatum (cnt_contract_key)) = TRUNC (SYSDATE)
|
||
AND cnt_contract_key < c.cnt_contract_key);
|
||
*/
|
||
-- Notificatie Intern Transport Vertrouwelijke Documenten (of Examentransport)
|
||
-- naar de koerier Schotpoort (CUST01), naar het Servicepunt op de ophaal- en
|
||
-- bezorglocatie (CUST02) en in specifieke gevallen het Examenbureau (CUST03).
|
||
CREATE OR REPLACE VIEW NOVA_V_NOTI_ITVD
|
||
(
|
||
code,
|
||
sender,
|
||
receiver,
|
||
text,
|
||
key,
|
||
par1,
|
||
par2,
|
||
xkey,
|
||
xemail,
|
||
xmobile,
|
||
fac_srtnotificatie_key,
|
||
attachments,
|
||
xsender,
|
||
prs_bedrijfadres_key
|
||
)
|
||
AS
|
||
SELECT sn.fac_srtnotificatie_code,
|
||
NULL,
|
||
NULL,
|
||
REPLACE (REPLACE (sn.fac_srtnotificatie_oms, '##KEY##', TO_CHAR (m.mld_melding_key)), '##DAT##', datum.mld_kenmerkmelding_waarde),
|
||
m.mld_melding_key,
|
||
NULL,
|
||
NULL,
|
||
NULL,
|
||
ud.fac_usrdata_omschr2 xemail, -- Schotpoort
|
||
NULL xmobile,
|
||
NULL fac_srtnotificatie_key,
|
||
NULL attachments,
|
||
NULL xsender,
|
||
NULL prs_bedrijfadres_key
|
||
FROM mld_melding m,
|
||
fac_tracking t,
|
||
fac_v_aanwezigusrdata ud,
|
||
(SELECT * FROM mld_v_aanwezigkenmerkmelding WHERE mld_kenmerk_key = 64) datum, -- Wanneer
|
||
fac_srtnotificatie sn,
|
||
fac_notificatie_job nj
|
||
WHERE m.mld_stdmelding_key = 24 -- Intern transport vertrouwelijke documenten
|
||
AND m.mld_melding_key = t.fac_tracking_refkey
|
||
AND t.fac_srtnotificatie_key = 52 -- MLDNEW
|
||
AND ud.fac_usrtab_key = 41 -- ITVD/Spec. ontv.
|
||
AND COALESCE (ud.fac_usrdata_vervaldatum, SYSDATE + 1) > SYSDATE
|
||
AND ud.fac_usrdata_key = 221 -- Schotpoort
|
||
AND m.mld_melding_key = datum.mld_melding_key(+)
|
||
AND sn.fac_srtnotificatie_code = 'CUST01'
|
||
AND nj.fac_notificatie_job_view = 'NOVA_V_NOTI_ITVD'
|
||
AND t.fac_tracking_datum > COALESCE (nj.fac_notificatie_job_lastrun, TRUNC (SYSDATE))
|
||
UNION ALL
|
||
SELECT x.fac_srtnotificatie_code,
|
||
NULL,
|
||
NULL,
|
||
REPLACE (REPLACE (REPLACE (x.fac_srtnotificatie_oms, '##KEY##', TO_CHAR (x.mld_melding_key)), '##DAT##', datum.mld_kenmerkmelding_waarde), '##LOC##', '/uitgaand ' || COALESCE (locvan.alg_locatie_omschrijving, altlocvan.alg_locatie_omschrijving)),
|
||
x.mld_melding_key,
|
||
NULL,
|
||
NULL,
|
||
NULL,
|
||
COALESCE (locvan.alg_locatie_email, altlocvan.alg_locatie_email) xemail,
|
||
NULL xmobile,
|
||
NULL fac_srtnotificatie_key,
|
||
NULL attachments,
|
||
NULL xsender,
|
||
NULL prs_bedrijfadres_key
|
||
FROM (SELECT sn.fac_srtnotificatie_code, sn.fac_srtnotificatie_oms, m.mld_melding_key
|
||
FROM mld_melding m, fac_tracking t, fac_srtnotificatie sn, fac_notificatie_job nj
|
||
WHERE m.mld_stdmelding_key = 25 -- Examentransport uitgaand
|
||
AND m.mld_melding_key = t.fac_tracking_refkey
|
||
AND t.fac_srtnotificatie_key = 52 -- MLDNEW
|
||
AND sn.fac_srtnotificatie_code = 'CUST02'
|
||
AND nj.fac_notificatie_job_view = 'NOVA_V_NOTI_ITVD'
|
||
AND t.fac_tracking_datum > COALESCE (nj.fac_notificatie_job_lastrun, TRUNC (SYSDATE))) x
|
||
LEFT JOIN mld_v_aanwezigkenmerkmelding datum
|
||
ON x.mld_melding_key = datum.mld_melding_key
|
||
AND EXISTS (SELECT 1 FROM mld_kenmerk WHERE mld_kenmerk_key = 65 AND mld_kenmerk_key = datum.mld_kenmerk_key) -- Wanneer
|
||
LEFT JOIN mld_v_aanwezigkenmerkmelding route
|
||
ON x.mld_melding_key = route.mld_melding_key
|
||
AND EXISTS (SELECT 1 FROM mld_kenmerk WHERE mld_kenmerk_key = 71 AND mld_kenmerk_key = route.mld_kenmerk_key) -- Van-naar-route
|
||
LEFT JOIN fac_v_aanwezigusrdata ud_route
|
||
ON fac.safe_to_number (route.mld_kenmerkmelding_waarde) = ud_route.fac_usrdata_key
|
||
LEFT JOIN alg_locatie locvan -- Van-locatie = ID na 1e '@' tot '/'!
|
||
ON fac.safe_to_number (SUBSTR (SUBSTR (ud_route.fac_usrdata_omschr2, INSTR (ud_route.fac_usrdata_omschr2, '@', 1, 1) + 1),
|
||
1,
|
||
INSTR (SUBSTR (ud_route.fac_usrdata_omschr2, INSTR (ud_route.fac_usrdata_omschr2, '@', 1, 1) + 1), '/', 1) - 1)) = locvan.alg_locatie_key
|
||
LEFT JOIN mld_v_aanwezigkenmerkmelding altvan
|
||
ON x.mld_melding_key = altvan.mld_melding_key
|
||
AND EXISTS (SELECT 1 FROM mld_kenmerk WHERE mld_kenmerk_key = 86 AND mld_kenmerk_key = altvan.mld_kenmerk_key) -- Van-locatie
|
||
LEFT JOIN alg_locatie altlocvan
|
||
ON fac.safe_to_number (altvan.mld_kenmerkmelding_waarde) = altlocvan.alg_locatie_key
|
||
UNION ALL
|
||
SELECT x.fac_srtnotificatie_code,
|
||
NULL,
|
||
NULL,
|
||
REPLACE (REPLACE (REPLACE (x.fac_srtnotificatie_oms, '##KEY##', TO_CHAR (x.mld_melding_key)), '##DAT##', datum.mld_kenmerkmelding_waarde), '##LOC##', '/inkomend ' || COALESCE (locnaar.alg_locatie_omschrijving, altlocnaar.alg_locatie_omschrijving)),
|
||
x.mld_melding_key,
|
||
NULL,
|
||
NULL,
|
||
NULL,
|
||
COALESCE (locnaar.alg_locatie_email, altlocnaar.alg_locatie_email) xemail,
|
||
NULL xmobile,
|
||
NULL fac_srtnotificatie_key,
|
||
NULL attachments,
|
||
NULL xsender,
|
||
NULL prs_bedrijfadres_key
|
||
FROM (SELECT sn.fac_srtnotificatie_code, sn.fac_srtnotificatie_oms, m.mld_melding_key
|
||
FROM mld_melding m, fac_tracking t, fac_srtnotificatie sn, fac_notificatie_job nj
|
||
WHERE m.mld_stdmelding_key = 26 -- Examentransport inkomend
|
||
AND m.mld_melding_key = t.fac_tracking_refkey
|
||
AND t.fac_srtnotificatie_key = 52 -- MLDNEW
|
||
AND sn.fac_srtnotificatie_code = 'CUST02'
|
||
AND nj.fac_notificatie_job_view = 'NOVA_V_NOTI_ITVD'
|
||
AND t.fac_tracking_datum > COALESCE (nj.fac_notificatie_job_lastrun, TRUNC (SYSDATE))) x
|
||
LEFT JOIN mld_v_aanwezigkenmerkmelding datum
|
||
ON x.mld_melding_key = datum.mld_melding_key
|
||
AND EXISTS (SELECT 1 FROM mld_kenmerk WHERE mld_kenmerk_key = 66 AND mld_kenmerk_key = datum.mld_kenmerk_key) -- Wanneer
|
||
LEFT JOIN mld_v_aanwezigkenmerkmelding route
|
||
ON x.mld_melding_key = route.mld_melding_key
|
||
AND EXISTS (SELECT 1 FROM mld_kenmerk WHERE mld_kenmerk_key = 72 AND mld_kenmerk_key = route.mld_kenmerk_key) -- Van-naar-route
|
||
LEFT JOIN fac_v_aanwezigusrdata ud_route
|
||
ON fac.safe_to_number (route.mld_kenmerkmelding_waarde) = ud_route.fac_usrdata_key
|
||
LEFT JOIN alg_locatie locnaar -- Naar-locatie = ID na 2e '@'!
|
||
ON fac.safe_to_number (SUBSTR (ud_route.fac_usrdata_omschr2,
|
||
INSTR (ud_route.fac_usrdata_omschr2, '@', 1, 2) + 1)) = locnaar.alg_locatie_key
|
||
LEFT JOIN mld_v_aanwezigkenmerkmelding altnaar
|
||
ON x.mld_melding_key = altnaar.mld_melding_key
|
||
AND EXISTS (SELECT 1 FROM mld_kenmerk WHERE mld_kenmerk_key = 90 AND mld_kenmerk_key = altnaar.mld_kenmerk_key) -- Naar-locatie
|
||
LEFT JOIN alg_locatie altlocnaar
|
||
ON fac.safe_to_number (altnaar.mld_kenmerkmelding_waarde) = altlocnaar.alg_locatie_key
|
||
UNION ALL
|
||
SELECT sn.fac_srtnotificatie_code,
|
||
NULL,
|
||
NULL,
|
||
REPLACE (REPLACE (sn.fac_srtnotificatie_oms, '##KEY##', TO_CHAR (m.mld_melding_key)), '##DAT##', datum.mld_kenmerkmelding_waarde),
|
||
m.mld_melding_key,
|
||
NULL,
|
||
NULL,
|
||
NULL,
|
||
ud.fac_usrdata_omschr xemail,
|
||
NULL xmobile,
|
||
NULL fac_srtnotificatie_key,
|
||
NULL attachments,
|
||
NULL xsender,
|
||
NULL prs_bedrijfadres_key
|
||
FROM mld_melding m,
|
||
fac_tracking t,
|
||
fac_v_aanwezigusrdata ud,
|
||
(SELECT * FROM mld_v_aanwezigkenmerkmelding WHERE mld_kenmerk_key = 64) datum, -- Wanneer
|
||
fac_srtnotificatie sn,
|
||
fac_notificatie_job nj
|
||
WHERE m.mld_stdmelding_key = 24 -- Intern transport vertrouwelijke documenten
|
||
AND m.mld_melding_key = t.fac_tracking_refkey
|
||
AND t.fac_srtnotificatie_key = 52 -- MLDNEW
|
||
AND m.prs_perslid_key_voor = fac.safe_to_number (ud.fac_usrdata_code) -- Door specifieke Examenbureau-medewerker, dan naar geconfigureerde e-mail adres!
|
||
AND ud.fac_usrtab_key = 41 -- ITVD/Spec. ontv.
|
||
AND COALESCE (ud.fac_usrdata_vervaldatum, SYSDATE + 1) > SYSDATE
|
||
AND m.mld_melding_key = datum.mld_melding_key(+)
|
||
AND sn.fac_srtnotificatie_code = 'CUST03'
|
||
AND nj.fac_notificatie_job_view = 'NOVA_V_NOTI_ITVD'
|
||
AND t.fac_tracking_datum > COALESCE (nj.fac_notificatie_job_lastrun, TRUNC (SYSDATE));
|
||
|
||
-- Klantspecifieke MLD2BO-notificatie naar Roosterbureau-medewerker met WP op
|
||
-- dezelfde locatie als waarvoor de Aanvraag lesruimte(n) is geregistreerd.
|
||
CREATE OR REPLACE VIEW NOVA_V_NOTI_ROOSTERBUREAU
|
||
(
|
||
code,
|
||
sender,
|
||
receiver,
|
||
text,
|
||
key,
|
||
par1,
|
||
par2,
|
||
xkey,
|
||
xemail,
|
||
xmobile,
|
||
fac_srtnotificatie_key,
|
||
attachments,
|
||
xsender,
|
||
prs_bedrijfadres_key
|
||
)
|
||
AS
|
||
SELECT sn.fac_srtnotificatie_code,
|
||
NULL,
|
||
gg.prs_perslid_key,
|
||
REPLACE (
|
||
--REPLACE (
|
||
--REPLACE (
|
||
REPLACE (
|
||
sn.fac_srtnotificatie_oms,
|
||
'##KEY##',
|
||
TO_CHAR (m.mld_melding_key)),
|
||
--'##DISC##',
|
||
--md.ins_discipline_omschrijving),
|
||
--'##STDMLD##',
|
||
--sm.mld_stdmelding_omschrijving),
|
||
'##GEB##',
|
||
COALESCE (wpg.alg_gebouw_code, wpg.alg_locatie_code)),
|
||
m.mld_melding_key,
|
||
NULL,
|
||
NULL,
|
||
NULL,
|
||
NULL xemail,
|
||
NULL xmobile,
|
||
NULL fac_srtnotificatie_key,
|
||
NULL attachments,
|
||
NULL xsender,
|
||
NULL prs_bedrijfadres_key
|
||
FROM mld_melding m,
|
||
--mld_stdmelding sm,
|
||
--mld_discipline md,
|
||
fac_tracking t,
|
||
fac_gebruikersgroep gg,
|
||
prs_perslidwerkplek pw,
|
||
prs_v_werkplek_gegevens wpg,
|
||
fac_srtnotificatie sn,
|
||
fac_notificatie_job nj
|
||
WHERE m.mld_stdmelding_key = 29 -- Aanvraag lesruimte(n)
|
||
--AND m.mld_stdmelding_key = sm.mld_stdmelding_key
|
||
--AND sm.mld_ins_discipline_key = md.ins_discipline_key
|
||
AND m.mld_melding_key = t.fac_tracking_refkey
|
||
AND t.fac_srtnotificatie_key = 52 -- MLDNEW
|
||
AND gg.fac_groep_key = 125 -- Roosterbureau
|
||
AND gg.prs_perslid_key = pw.prs_perslid_key
|
||
AND pw.prs_werkplek_key = wpg.prs_werkplek_key
|
||
AND wpg.alg_locatie_key = m.mld_alg_locatie_key -- WP op melding-locatie!
|
||
AND sn.fac_srtnotificatie_code = 'CUST04'
|
||
AND nj.fac_notificatie_job_view = 'NOVA_V_NOTI_ROOSTERBUREAU'
|
||
AND t.fac_tracking_datum > COALESCE (nj.fac_notificatie_job_lastrun, TRUNC (SYSDATE));
|
||
/* DEPRECATED
|
||
CREATE OR REPLACE VIEW NOVA_V_RAP_VESTIGINGEN2TD
|
||
AS
|
||
SELECT alg_locatie_key locatie_key,
|
||
alg_locatie_code code,
|
||
alg_locatie_omschrijving naam,
|
||
alg_locatie_adres adres,
|
||
alg_locatie_postcode postcode,
|
||
alg_locatie_plaats plaats,
|
||
alg_locatie_land land,
|
||
alg_locatie_vervaldatum vervaldatum,
|
||
COALESCE (fac.gettrackingdate ('ALGLUP', alg_locatie_key), alg_locatie_aanmaak) last_change
|
||
FROM alg_v_aanweziglocatie;
|
||
|
||
CREATE OR REPLACE VIEW NOVA_V_RAP_RUIMTEN2TD
|
||
AS
|
||
SELECT r.alg_ruimte_key ruimte_key,
|
||
r.alg_ruimte_nr ruimtenr,
|
||
l.alg_locatie_code || '-' || g.alg_gebouw_code || '-' || v.alg_verdieping_code || '-' || r.alg_ruimte_nr
|
||
aanduiding,
|
||
sr.alg_srtruimte_omschrijving ruimtefunctie,
|
||
l.alg_locatie_code locatiecode,
|
||
l.alg_locatie_omschrijving locatienaam,
|
||
l.alg_locatie_plaats locatieplaats,
|
||
r.alg_ruimte_aanmaak aanmaak,
|
||
r.alg_ruimte_verwijder verwijder,
|
||
COALESCE (r.alg_ruimte_verwijder, t.fac_tracking_datum, r.alg_ruimte_aanmaak)
|
||
last_change,
|
||
t.fac_tracking_oms last_omschr
|
||
FROM alg_ruimte r, alg_srtruimte sr, alg_verdieping v, alg_gebouw g, alg_locatie l,
|
||
(SELECT t.*
|
||
FROM fac_tracking t
|
||
WHERE t.fac_srtnotificatie_key = 169 -- ALGRUP
|
||
AND NOT EXISTS
|
||
(SELECT 1
|
||
FROM fac_tracking
|
||
WHERE fac_srtnotificatie_key = 169 -- ALGRUP
|
||
AND fac_tracking_refkey = t.fac_tracking_refkey
|
||
AND fac_tracking_key > t.fac_tracking_key)) t
|
||
WHERE r.alg_srtruimte_key = sr.alg_srtruimte_key(+)
|
||
AND r.alg_verdieping_key = v.alg_verdieping_key
|
||
AND v.alg_gebouw_key = g.alg_gebouw_key
|
||
AND g.alg_locatie_key = l.alg_locatie_key
|
||
AND r.alg_ruimte_key = t.fac_tracking_refkey
|
||
--AND COALESCE (r.alg_ruimte_verwijder, t.fac_tracking_datum, r.alg_ruimte_aanmaak) > fac.safe_to_date ('01-12-2024', 'dd-mm-yyyy')
|
||
AND COALESCE (r.alg_ruimte_verwijder, t.fac_tracking_datum, r.alg_ruimte_aanmaak) > TRUNC (ADD_MONTHS (SYSDATE, -1), 'mm');
|
||
*/
|
||
CREATE OR REPLACE VIEW NOVA_V_RAP_RUIMTEN2TD
|
||
AS
|
||
SELECT TO_CHAR (r.alg_ruimte_aanmaak, 'yyyy-mm') maand,
|
||
r.alg_ruimte_aanmaak last_change,
|
||
'AANGEMAAKT' last_omschr,
|
||
l.alg_locatie_code locatiecode,
|
||
l.alg_locatie_omschrijving locatienaam,
|
||
l.alg_locatie_plaats locatieplaats,
|
||
r.alg_ruimte_key ruimte_key,
|
||
r.alg_ruimte_nr ruimtenr,
|
||
l.alg_locatie_code || '-' || g.alg_gebouw_code || '-' || v.alg_verdieping_code || '-' || r.alg_ruimte_nr
|
||
aanduiding,
|
||
sr.alg_srtruimte_omschrijving ruimtefunctie,
|
||
r.alg_ruimte_omschrijving ruimteomschrijving
|
||
FROM alg_ruimte r, alg_srtruimte sr, alg_verdieping v, alg_gebouw g, alg_locatie l
|
||
WHERE r.alg_srtruimte_key = sr.alg_srtruimte_key(+)
|
||
AND r.alg_verdieping_key = v.alg_verdieping_key
|
||
AND v.alg_gebouw_key = g.alg_gebouw_key
|
||
AND g.alg_locatie_key = l.alg_locatie_key
|
||
AND r.alg_ruimte_aanmaak > fac.safe_to_date ('01-10-2024', 'dd-mm-yyyy')
|
||
UNION ALL
|
||
SELECT TO_CHAR (t.fac_tracking_datum, 'yyyy-mm') maand,
|
||
t.fac_tracking_datum last_change,
|
||
t.fac_tracking_oms last_omschr,
|
||
l.alg_locatie_code locatiecode,
|
||
l.alg_locatie_omschrijving locatienaam,
|
||
l.alg_locatie_plaats locatieplaats,
|
||
r.alg_ruimte_key ruimte_key,
|
||
r.alg_ruimte_nr ruimtenr,
|
||
l.alg_locatie_code || '-' || g.alg_gebouw_code || '-' || v.alg_verdieping_code || '-' || r.alg_ruimte_nr
|
||
aanduiding,
|
||
sr.alg_srtruimte_omschrijving ruimtefunctie,
|
||
r.alg_ruimte_omschrijving ruimteomschrijving
|
||
FROM alg_ruimte r, alg_srtruimte sr, alg_verdieping v, alg_gebouw g, alg_locatie l,
|
||
--(SELECT t.*
|
||
-- FROM fac_tracking t
|
||
-- WHERE t.fac_srtnotificatie_key = 169) t -- ALGRUP
|
||
(SELECT t.*
|
||
FROM fac_tracking t
|
||
WHERE t.fac_srtnotificatie_key = 169 -- ALGRUP
|
||
AND NOT EXISTS
|
||
(SELECT 1
|
||
FROM fac_tracking
|
||
WHERE fac_srtnotificatie_key = 169 -- ALGRUP
|
||
AND fac_tracking_refkey = t.fac_tracking_refkey
|
||
AND fac_tracking_key > t.fac_tracking_key)) t
|
||
WHERE r.alg_srtruimte_key = sr.alg_srtruimte_key(+)
|
||
AND r.alg_verdieping_key = v.alg_verdieping_key
|
||
AND v.alg_gebouw_key = g.alg_gebouw_key
|
||
AND g.alg_locatie_key = l.alg_locatie_key
|
||
AND r.alg_ruimte_key = t.fac_tracking_refkey
|
||
AND t.fac_tracking_datum > fac.safe_to_date ('01-10-2024', 'dd-mm-yyyy')
|
||
UNION ALL
|
||
SELECT TO_CHAR (r.alg_ruimte_verwijder, 'yyyy-mm') maand,
|
||
r.alg_ruimte_verwijder last_change,
|
||
'VERWIJDERD' last_omschr,
|
||
l.alg_locatie_code locatiecode,
|
||
l.alg_locatie_omschrijving locatienaam,
|
||
l.alg_locatie_plaats locatieplaats,
|
||
r.alg_ruimte_key ruimte_key,
|
||
r.alg_ruimte_nr ruimtenr,
|
||
l.alg_locatie_code || '-' || g.alg_gebouw_code || '-' || v.alg_verdieping_code || '-' || r.alg_ruimte_nr
|
||
aanduiding,
|
||
sr.alg_srtruimte_omschrijving ruimtefunctie,
|
||
r.alg_ruimte_omschrijving ruimteomschrijving
|
||
FROM alg_ruimte r, alg_srtruimte sr, alg_verdieping v, alg_gebouw g, alg_locatie l
|
||
WHERE r.alg_srtruimte_key = sr.alg_srtruimte_key(+)
|
||
AND r.alg_verdieping_key = v.alg_verdieping_key
|
||
AND v.alg_gebouw_key = g.alg_gebouw_key
|
||
AND g.alg_locatie_key = l.alg_locatie_key
|
||
AND r.alg_ruimte_verwijder > fac.safe_to_date ('01-10-2024', 'dd-mm-yyyy')
|
||
;
|
||
|
||
CREATE OR REPLACE VIEW NOVA_V_NOTI_ALG_LASTCHANGED
|
||
(
|
||
code,
|
||
sender,
|
||
receiver,
|
||
text,
|
||
key,
|
||
par1,
|
||
par2,
|
||
xkey,
|
||
xemail,
|
||
xmobile,
|
||
fac_srtnotificatie_key,
|
||
attachments,
|
||
xsender,
|
||
prs_bedrijfadres_key
|
||
)
|
||
AS
|
||
SELECT sn.fac_srtnotificatie_code, -- CUST05
|
||
NULL,
|
||
NULL,
|
||
sn.fac_srtnotificatie_oms,
|
||
r.fac_usrrap_key,
|
||
NULL,
|
||
NULL,
|
||
NULL,
|
||
'eboer@novacollege.nl' xemail, -- TODO
|
||
NULL xmobile,
|
||
NULL fac_srtnotificatie_key,
|
||
NULL attachments,
|
||
NULL xsender,
|
||
NULL prs_bedrijfadres_key
|
||
FROM nova_v_rap_ruimten2td v, fac_usrrap r, fac_srtnotificatie sn
|
||
WHERE TO_CHAR (SYSDATE, 'mm') = '01' -- Maandelijks op de 1e
|
||
AND v.last_change > TRUNC (ADD_MONTHS (SYSDATE, -1), 'mm')
|
||
AND UPPER (r.fac_usrrap_view_name) = 'NOVA_V_RAP_RUIMTEN2TD'
|
||
AND r.fac_usrrap_functie = 1 -- Via stylesheet
|
||
AND sn.fac_srtnotificatie_code = 'CUST05'
|
||
AND NOT EXISTS
|
||
(SELECT 1
|
||
FROM fac_usrrap
|
||
WHERE UPPER (fac_usrrap_view_name) = 'NOVA_V_RAP_RUIMTEN2TD'
|
||
AND fac_usrrap_functie = 1 -- Via stylesheet
|
||
AND fac_usrrap_key > r.fac_usrrap_key);
|
||
/*
|
||
Ter inspiratie de volgende 4 real-time monitors (of grafieken) gerealiseerd:
|
||
1. Staafdiagram met lopende meldingen per standaardmelding met de kleuren: [a] blauw=meer dan 2 werkdagen voor geplande einddatum (van de melding!) en actie bij aanvrager, [b] groen=meer dan 2 werkdagen voor geplande einddatum en actie bij backoffice (niet bij aanvrager), [c] oranje=minder dan 2 werkdagen voor geplande einddatum en [d] rood=te laat.
|
||
2. Staafdiagram met lopende meldingen per locatie en zie verder 1.
|
||
3. Staafdiagram met lopende opdrachten die zijn uitgegeven per externe uitvoerder met de kleuren: [a] groen=meer dan 2 werkdagen voor geplande einddatum (van de opdracht!), [b] oranje=minder dan 2 werkdagen voor geplande einddatum en [c] rood=te laat.
|
||
4. Lijndiagram met afgehandelde melding per maand voor elke standaardmelding.
|
||
TODO: Staafdiagrammen (1 t/m 3) klikbaar maken?
|
||
*/
|
||
CREATE OR REPLACE VIEW NOVA_V_UDR_MLD_OPEN
|
||
(
|
||
mld_melding_key,
|
||
meldingid,
|
||
vakgroeptype,
|
||
--vakgroep_key,
|
||
fclt_3d_discipline_key,
|
||
vakgroep,
|
||
standaardmelding,
|
||
--locatie_key,
|
||
fclt_3d_locatie_key,
|
||
locatiecode,
|
||
locatie,
|
||
status,
|
||
behandelteam_key,
|
||
behandelteam,
|
||
mldnew,
|
||
melding_datum,
|
||
geplande_einddatum,
|
||
--uitvoertijd,
|
||
optijd_telaat
|
||
)
|
||
AS
|
||
SELECT x.mld_melding_key,
|
||
x.ins_srtdiscipline_prefix || TO_CHAR (x.mld_melding_key) meldingid,
|
||
x.ins_srtdiscipline_omschrijving vakgroeptype,
|
||
x.ins_discipline_key vakgroep_key,
|
||
x.ins_discipline_omschrijving vakgroep,
|
||
x.mld_stdmelding_omschrijving standaardmelding,
|
||
x.alg_locatie_key,
|
||
x.alg_locatie_code,
|
||
x.alg_locatie_omschrijving,
|
||
x.mld_statuses_omschrijving status,
|
||
x.behandelteam_key,
|
||
COALESCE (x.behandelteam, '<Geen>'),
|
||
x.mldnew,
|
||
x.mld_melding_datum,
|
||
x.mld_melding_einddatum,
|
||
--TO_CHAR (x.mld_melding_t_uitvoertijd.tijdsduur) || x.mld_melding_t_uitvoertijd.eenheid uitvoertijd,
|
||
DECODE (SIGN (x.gepland_over_2wd - SYSDATE),
|
||
-1,
|
||
DECODE (SIGN (x.mld_melding_einddatum - SYSDATE),
|
||
-1, 'Te laat', -- Rood
|
||
'Over 2 dagen te laat'), -- Oranje
|
||
DECODE (BITAND (x.mld_melding_actiecode, 1),
|
||
1, 'Actie bij behandelaar', -- Groen en "alle tijd"
|
||
'Actie bij aanvrager')) -- Blauw en "alle tijd"
|
||
optijd_telaat
|
||
FROM (SELECT m.mld_melding_key,
|
||
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,
|
||
ms.mld_statuses_omschrijving,
|
||
bt.ins_discipline_key behandelteam_key,
|
||
bt.ins_discipline_omschrijving behandelteam,
|
||
--m.mld_melding_spoed,
|
||
fac.gettrackingdate ('MLDNEW', m.mld_melding_key) mldnew,
|
||
m.mld_melding_datum,
|
||
m.mld_melding_einddatum,
|
||
--m.mld_melding_t_uitvoertijd,
|
||
fac.datumtijdplusuitvoertijd (
|
||
m.mld_melding_einddatum - 14,
|
||
mld.getactualuitvoer (m.mld_melding_einddatum - 14, m.mld_melding_einddatum, sm.mld_stdmelding_key, -1, -1, -1, 'D').tijdsduur - 2,
|
||
'D')
|
||
gepland_over_2wd, -- Twee werkdagen voor geplande einddatum (niet triviaal, maar best slim bedacht, al zeg ik het zelf)
|
||
m.mld_melding_actiecode -- 1=bij behandelaar/2=bij aanvrager/129=reactie aanvrager/257=info aanvrager/258=actie aanvrager
|
||
FROM mld_melding m,
|
||
mld_stdmelding sm,
|
||
mld_discipline md,
|
||
ins_srtdiscipline sd,
|
||
alg_locatie l,
|
||
mld_statuses ms,
|
||
mld_discipline bt
|
||
WHERE 1 = 1
|
||
--AND m.mld_melding_datum > TRUNC (ADD_MONTHS (SYSDATE, -24), 'yyyy')
|
||
--AND fac.gettrackingdate ('MLDNEW', m.mld_melding_key) > TRUNC (ADD_MONTHS (SYSDATE, -24), 'yyyy')
|
||
AND m.fac_activiteit_key IS NULL
|
||
AND m.mld_melding_status IN (0, 2, 3, 4, 7, 99) -- Open meldingen
|
||
AND m.mld_stdmelding_key = sm.mld_stdmelding_key
|
||
AND sm.mld_stdmelding_key NOT IN (24) -- Intern transport vertrouwelijke documenten (WF-startmelding)
|
||
AND sm.mld_ins_discipline_key = md.ins_discipline_key
|
||
AND md.ins_discipline_key NOT IN (126, 130) -- Bestellen-Begroting/Huisvesting-Begroting
|
||
AND md.ins_srtdiscipline_key = sd.ins_srtdiscipline_key
|
||
AND sd.ins_srtdiscipline_key NOT IN (21, 41) -- Behandelteams/Axxerion
|
||
AND m.mld_alg_locatie_key = l.alg_locatie_key(+)
|
||
AND m.mld_melding_status = ms.mld_statuses_key
|
||
AND m.mld_ins_discipline_key = bt.ins_discipline_key(+)) x;
|
||
|
||
CREATE OR REPLACE VIEW NOVA_V_UDR_ORD_OPEN
|
||
(
|
||
mld_opdr_key,
|
||
opdrachtid,
|
||
opdrachttype_key,
|
||
opdrachttype,
|
||
uitvoerende_key,
|
||
uitvoerende,
|
||
vakgroeptype,
|
||
--fclt_3d_discipline_key,
|
||
vakgroep_key,
|
||
vakgroep,
|
||
standaardmelding,
|
||
--fclt_3d_locatie_key,
|
||
locatie_key,
|
||
locatiecode,
|
||
locatie,
|
||
status,
|
||
ordnew,
|
||
opdracht_datum,
|
||
opdracht_verzonden,
|
||
geplande_einddatum,
|
||
--uitvoertijd,
|
||
optijd_telaat
|
||
)
|
||
AS
|
||
SELECT x.mld_opdr_key,
|
||
x.ins_srtdiscipline_prefix || TO_CHAR (x.mld_melding_key) || '/' || TO_CHAR (x.mld_opdr_bedrijfopdr_volgnr) opdrachtid,
|
||
x.mld_typeopdr_key,
|
||
x.mld_typeopdr_omschrijving,
|
||
x.mld_uitvoerende_keys,
|
||
--DECODE (x.prs_bedrijf_naam,
|
||
-- NULL,
|
||
-- x.prs_perslid_naam_full,
|
||
-- x.prs_bedrijf_naam)
|
||
x.prs_bedrijf_naam uitvoerende,
|
||
x.ins_srtdiscipline_omschrijving vakgroeptype,
|
||
x.ins_discipline_key vakgroep_key,
|
||
x.ins_discipline_omschrijving vakgroep,
|
||
x.mld_stdmelding_omschrijving standaardmelding,
|
||
x.alg_locatie_key,
|
||
x.alg_locatie_code,
|
||
x.alg_locatie_omschrijving,
|
||
x.mld_statusopdr_omschrijving status,
|
||
x.ordnew,
|
||
x.mld_opdr_datumbegin,
|
||
x.mld_opdr_verzonden,
|
||
x.mld_opdr_einddatum,
|
||
--TO_CHAR (x.mld_melding_t_uitvoertijd.tijdsduur) || x.mld_melding_t_uitvoertijd.eenheid uitvoertijd,
|
||
DECODE (SIGN (x.gepland_over_2wd - SYSDATE),
|
||
-1,
|
||
DECODE (SIGN (x.mld_opdr_einddatum - SYSDATE),
|
||
-1, 'Te laat', -- Rood
|
||
'Over 2 dagen te laat'), -- Oranje
|
||
'Op tijd') -- Groen en "alle tijd"
|
||
optijd_telaat
|
||
FROM (SELECT o.mld_opdr_key,
|
||
o.mld_melding_key,
|
||
o.mld_opdr_bedrijfopdr_volgnr,
|
||
ot.mld_typeopdr_key,
|
||
ot.mld_typeopdr_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,
|
||
os.mld_statusopdr_omschrijving,
|
||
--m.mld_melding_spoed,
|
||
fac.gettrackingdate ('ORDNEW', o.mld_opdr_key) ordnew,
|
||
o.mld_opdr_datumbegin,
|
||
o.mld_opdr_verzonden,
|
||
o.mld_opdr_einddatum,
|
||
--m.mld_melding_t_uitvoertijd,
|
||
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 - 2,
|
||
'D')
|
||
gepland_over_2wd -- Twee werkdagen voor geplande einddatum (niet triviaal, maar best slim bedacht, al zeg ik het zelf)
|
||
FROM mld_opdr o,
|
||
mld_typeopdr ot,
|
||
prs_bedrijf lev,
|
||
--prs_v_perslid_fullnames iuv,
|
||
mld_melding m,
|
||
mld_stdmelding sm,
|
||
mld_discipline md,
|
||
ins_srtdiscipline sd,
|
||
alg_locatie l,
|
||
mld_statusopdr os
|
||
WHERE 1 = 1
|
||
--AND o.mld_opdr_datumbegin > TRUNC (ADD_MONTHS (SYSDATE, -24), 'yyyy')
|
||
--AND fac.gettrackingdate ('ORDNEW', o.mld_opdr_key) > TRUNC (ADD_MONTHS (SYSDATE, -24), 'yyyy')
|
||
AND o.mld_statusopdr_key IN (3, 4, 5, 8, 10) -- Open opdrachten
|
||
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 o.mld_melding_key = m.mld_melding_key
|
||
AND m.mld_stdmelding_key = sm.mld_stdmelding_key
|
||
AND sm.mld_stdmelding_key NOT IN (24) -- Intern transport vertrouwelijke documenten (WF-startmelding)
|
||
AND sm.mld_ins_discipline_key = md.ins_discipline_key
|
||
--AND md.ins_discipline_key NOT IN (126, 130) -- Bestellen-Begroting/Huisvesting-Begroting
|
||
AND md.ins_srtdiscipline_key = sd.ins_srtdiscipline_key
|
||
AND sd.ins_srtdiscipline_key NOT IN (21, 41) -- Behandelteams/Axxerion
|
||
AND m.mld_alg_locatie_key = l.alg_locatie_key(+)
|
||
AND o.mld_statusopdr_key = os.mld_statusopdr_key) x;
|
||
|
||
CREATE OR REPLACE VIEW NOVA_V_UDR_MLD_AFM
|
||
(
|
||
mldafm_maand,
|
||
mld_melding_key,
|
||
meldingid,
|
||
vakgroeptype,
|
||
--vakgroep_key,
|
||
fclt_3d_discipline_key,
|
||
vakgroep,
|
||
standaardmelding,
|
||
--locatie_key,
|
||
fclt_3d_locatie_key,
|
||
locatiecode,
|
||
locatie,
|
||
status
|
||
)
|
||
AS
|
||
SELECT TO_CHAR (x.mldafm, 'yyyy-mm') mldafm_maand,
|
||
x.mld_melding_key,
|
||
x.ins_srtdiscipline_prefix || TO_CHAR (x.mld_melding_key) meldingid,
|
||
x.ins_srtdiscipline_omschrijving vakgroeptype,
|
||
x.ins_discipline_key vakgroep_key,
|
||
x.ins_discipline_omschrijving vakgroep,
|
||
x.mld_stdmelding_omschrijving standaardmelding,
|
||
x.alg_locatie_key,
|
||
x.alg_locatie_code,
|
||
x.alg_locatie_omschrijving,
|
||
x.mld_statuses_omschrijving status
|
||
FROM (SELECT m.mld_melding_key,
|
||
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,
|
||
ms.mld_statuses_omschrijving,
|
||
fac.gettrackingdate ('MLDAFM', m.mld_melding_key) mldafm
|
||
FROM mld_melding m,
|
||
mld_stdmelding sm,
|
||
mld_discipline md,
|
||
ins_srtdiscipline sd,
|
||
alg_locatie l,
|
||
mld_statuses ms
|
||
WHERE fac.gettrackingdate ('MLDAFM', m.mld_melding_key) > TRUNC (ADD_MONTHS (SYSDATE, -12), 'mm')
|
||
AND m.fac_activiteit_key IS NULL
|
||
AND m.mld_melding_status IN (1, 5, 6) -- Gesloten meldingen
|
||
AND m.mld_stdmelding_key = sm.mld_stdmelding_key
|
||
AND sm.mld_stdmelding_key NOT IN (24) -- Intern transport vertrouwelijke documenten (WF-startmelding)
|
||
AND sm.mld_ins_discipline_key = md.ins_discipline_key
|
||
AND md.ins_discipline_key NOT IN (126, 130) -- Bestellen-Begroting/Huisvesting-Begroting
|
||
AND md.ins_srtdiscipline_key = sd.ins_srtdiscipline_key
|
||
AND sd.ins_srtdiscipline_key NOT IN (21, 41) -- Behandelteams/Axxerion
|
||
AND m.mld_alg_locatie_key = l.alg_locatie_key(+)
|
||
AND m.mld_melding_status = ms.mld_statuses_key) x;
|
||
|
||
-- Rapportage voor Joost Knol?
|
||
CREATE OR REPLACE VIEW NOVA_V_BENQUE_ARTIKELEN
|
||
AS
|
||
SELECT rd.ins_discipline_key catalogus_key,
|
||
rd.ins_discipline_aanmaak catalogus_aanmaak,
|
||
rd.ins_discipline_verwijder catalogus_verwijder,
|
||
rd.ins_discipline_omschrijving catalogus,
|
||
ra.res_artikel_key artikel_key,
|
||
ra.res_artikel_aanmaak aangemaakt,
|
||
--ra.res_artikel_vervaldatum vervallen,
|
||
--ra.res_artikel_verwijder verwijderd,
|
||
ra.res_artikel_nr artikelnummer,
|
||
ra.res_artikel_omschrijving omschrijving,
|
||
ra.res_artikel_opmerking opmerking,
|
||
ra.res_artikel_eenheid eenheid,
|
||
ra.res_artikel_prijs prijs,
|
||
ra.res_artikel_btw btw,
|
||
ra.res_artikel_minimum minimum_bestelaantal,
|
||
DECODE (ra.res_artikel_flags, 1, 'Ja', 'Nee')
|
||
meermaals_reserveerbaar
|
||
FROM res_artikel ra, res_discipline rd
|
||
WHERE ra.res_artikel_verwijder IS NULL
|
||
AND COALESCE (ra.res_artikel_vervaldatum, SYSDATE) >
|
||
TRUNC (SYSDATE)
|
||
AND ra.res_discipline_key = rd.ins_discipline_key
|
||
AND (rd.ins_discipline_key IN (321, 341, 361, 362, 363, 364, 365, 366, 367)
|
||
OR rd.ins_discipline_externnr = 'BENQ'
|
||
OR EXISTS
|
||
(SELECT 1
|
||
FROM res_disc_params
|
||
WHERE prs_bedrijf_key = 3661
|
||
AND res_ins_discipline_key = rd.ins_discipline_key));
|
||
|
||
-- HV-opdrachten/uitnutting!
|
||
CREATE OR REPLACE VIEW NOVA_V_RAP_HV_OPDRACHTEN
|
||
AS
|
||
SELECT o.mld_opdr_key,
|
||
fac.safe_to_number (m.mld_meldbron_nr) begr_nr, -- Of leeg voor Uitvoeringsopdrachten?
|
||
-1 begr_reg_kkey,
|
||
sm.mld_stdmelding_omschrijving standaardmelding,
|
||
sd.ins_srtdiscipline_prefix || TO_CHAR (o.mld_melding_key) || '/' || TO_CHAR (o.mld_opdr_bedrijfopdr_volgnr)
|
||
opdracht_nr,
|
||
NULL axx_ref,
|
||
NULL bgt_nr,
|
||
NULL b_nr,
|
||
--DECODE (kpg.prs_kostenplaatsgrp_nr, NULL, '', kpg.prs_kostenplaatsgrp_nr || '-') || kpg.prs_kostenplaatsgrp_oms kostenplaats_groep,
|
||
kp.prs_kostenplaats_upper kostenplaats,
|
||
COALESCE (kso.prs_kostensoort_oms, ksm.prs_kostensoort_oms, ksv.prs_kostensoort_oms)
|
||
kostensoort,
|
||
ot.mld_typeopdr_key opdrachttype_key,
|
||
ot.mld_typeopdr_omschrijving opdrachttype,
|
||
(SELECT naam FROM mld_v_uitvoerende WHERE mld_uitvoerende_key = o.mld_uitvoerende_keys)
|
||
uitvoerende,
|
||
o.mld_statusopdr_key status_key,
|
||
(SELECT mld_statusopdr_omschrijving FROM mld_statusopdr WHERE mld_statusopdr_key = o.mld_statusopdr_key)
|
||
status,
|
||
--TO_CHAR (o.mld_opdr_kosten, 'fm999999999999999990.00') kosten
|
||
o.mld_opdr_kosten
|
||
FROM mld_opdr o,
|
||
mld_typeopdr ot,
|
||
mld_melding m,
|
||
mld_stdmelding sm,
|
||
mld_discipline md,
|
||
ins_srtdiscipline sd,
|
||
prs_kostenplaats kp,
|
||
--prs_kostenplaatsgrp kpg,
|
||
prs_kostensoort kso,
|
||
prs_kostensoort ksm,
|
||
prs_kostensoort ksv
|
||
WHERE o.mld_typeopdr_key = ot.mld_typeopdr_key
|
||
AND ot.mld_typeopdr_key = 5 -- Uitvoeringsopdracht
|
||
AND o.mld_melding_key = m.mld_melding_key
|
||
AND m.mld_stdmelding_key = sm.mld_stdmelding_key
|
||
AND sm.mld_ins_discipline_key = md.ins_discipline_key
|
||
--AND md.ins_discipline_key IN (130, 264) -- HV-Begroting+AXX-Inkoop/Huisvesting
|
||
AND md.ins_discipline_key = 130 -- HV-Begroting
|
||
AND md.ins_srtdiscipline_key = sd.ins_srtdiscipline_key
|
||
AND o.prs_kostenplaats_key = kp.prs_kostenplaats_key(+)
|
||
--AND kp.prs_kostenplaatsgrp_key = kpg.prs_kostenplaatsgrp_key(+)
|
||
AND o.prs_kostensoort_key = kso.prs_kostensoort_key(+)
|
||
AND sm.prs_kostensoort_key = ksm.prs_kostensoort_key(+)
|
||
AND md.prs_kostensoort_key = ksv.prs_kostensoort_key(+)
|
||
UNION ALL
|
||
SELECT o.mld_opdr_key,
|
||
DECODE (o.mld_opdr_ordernr,
|
||
'B-04189', 900,
|
||
'B-04190', 900,
|
||
'B-04191', 900,
|
||
'B-04192', 900,
|
||
'B-04193', 900,
|
||
'B-04194', 900,
|
||
'B-04202', 901,
|
||
'B-04203', 901,
|
||
'B-04204', 901,
|
||
'B-04205', 901,
|
||
'B-04206', 901,
|
||
'B-04207', 901,
|
||
'B-04196', 902,
|
||
'B-04197', 902,
|
||
'B-04198', 902,
|
||
'B-04199', 902,
|
||
'B-04200', 902,
|
||
'B-04201', 902,
|
||
'B-04208', 903,
|
||
'B-04209', 903,
|
||
'B-04210', 903,
|
||
'B-04211', 903,
|
||
'B-04212', 903,
|
||
'B-04213', 903,
|
||
fac.safe_to_number (o.mld_opdr_ordernr))
|
||
begr_nr,
|
||
DECODE (o.mld_opdr_ordernr,
|
||
'B-04189', 307,
|
||
'B-04190', 309,
|
||
'B-04191', 310,
|
||
'B-04192', 312,
|
||
'B-04193', 311,
|
||
'B-04194', 308,
|
||
'B-04202', 307,
|
||
'B-04203', 309,
|
||
'B-04204', 310,
|
||
'B-04205', 312,
|
||
'B-04206', 311,
|
||
'B-04207', 308,
|
||
'B-04196', 307,
|
||
'B-04197', 309,
|
||
'B-04198', 310,
|
||
'B-04199', 312,
|
||
'B-04200', 311,
|
||
'B-04201', 308,
|
||
'B-04208', 307,
|
||
'B-04209', 308,
|
||
'B-04210', 309,
|
||
'B-04211', 310,
|
||
'B-04212', 311,
|
||
'B-04213', 312,
|
||
-1)
|
||
begr_reg_kkey,
|
||
sm.mld_stdmelding_omschrijving standaardmelding,
|
||
sd.ins_srtdiscipline_prefix || TO_CHAR (o.mld_melding_key) || '/' || TO_CHAR (o.mld_opdr_bedrijfopdr_volgnr)
|
||
opdracht_nr,
|
||
DECODE (
|
||
INSTR (o.mld_opdr_omschrijving, 'AXX-referentie:'),
|
||
0, NULL,
|
||
TRIM (SUBSTR (
|
||
SUBSTR (o.mld_opdr_omschrijving, INSTR (o.mld_opdr_omschrijving, 'AXX-referentie:') + 15),
|
||
1,
|
||
INSTR (SUBSTR (o.mld_opdr_omschrijving, INSTR (o.mld_opdr_omschrijving, 'AXX-referentie:') + 15) || CHR (13), CHR (13)) - 1)))
|
||
axx_ref,
|
||
DECODE (
|
||
INSTR (o.mld_opdr_omschrijving, 'BGT'),
|
||
0, NULL,
|
||
SUBSTR (
|
||
SUBSTR (o.mld_opdr_omschrijving, INSTR (o.mld_opdr_omschrijving, 'BGT')),
|
||
1,
|
||
INSTR (SUBSTR (o.mld_opdr_omschrijving, INSTR (o.mld_opdr_omschrijving, 'BGT')), '-', 1, 2) - 1))
|
||
bgt_nr,
|
||
DECODE (SUBSTR (o.mld_opdr_ordernr, 1, 1), 'B', o.mld_opdr_ordernr, NULL)
|
||
b_nr,
|
||
--DECODE (kpg.prs_kostenplaatsgrp_nr, NULL, '', kpg.prs_kostenplaatsgrp_nr || '-') || kpg.prs_kostenplaatsgrp_oms kostenplaats_groep,
|
||
kp.prs_kostenplaats_upper kostenplaats,
|
||
COALESCE (kso.prs_kostensoort_oms, ksm.prs_kostensoort_oms, ksv.prs_kostensoort_oms)
|
||
kostensoort,
|
||
ot.mld_typeopdr_key opdrachttype_key,
|
||
ot.mld_typeopdr_omschrijving opdrachttype,
|
||
(SELECT naam FROM mld_v_uitvoerende WHERE mld_uitvoerende_key = o.mld_uitvoerende_keys)
|
||
uitvoerende,
|
||
o.mld_statusopdr_key status_key,
|
||
(SELECT mld_statusopdr_omschrijving FROM mld_statusopdr WHERE mld_statusopdr_key = o.mld_statusopdr_key)
|
||
status,
|
||
--TO_CHAR (o.mld_opdr_kosten, 'fm999999999999999990.00') kosten
|
||
o.mld_opdr_kosten
|
||
FROM mld_opdr o,
|
||
mld_typeopdr ot,
|
||
mld_melding m,
|
||
mld_stdmelding sm,
|
||
mld_discipline md,
|
||
ins_srtdiscipline sd,
|
||
prs_kostenplaats kp,
|
||
--prs_kostenplaatsgrp kpg,
|
||
prs_kostensoort kso,
|
||
prs_kostensoort ksm,
|
||
prs_kostensoort ksv
|
||
WHERE o.mld_typeopdr_key = ot.mld_typeopdr_key
|
||
AND ot.mld_typeopdr_key = 81 -- Werkopdracht (gemigreerd)
|
||
AND o.mld_melding_key = m.mld_melding_key
|
||
AND m.mld_stdmelding_key = sm.mld_stdmelding_key
|
||
AND sm.mld_ins_discipline_key = md.ins_discipline_key
|
||
--AND md.ins_discipline_key IN (130, 264) -- HV-Begroting+AXX-Inkoop/Huisvesting
|
||
AND md.ins_discipline_key = 264 -- AXX-Inkoop/Huisvesting
|
||
AND md.ins_srtdiscipline_key = sd.ins_srtdiscipline_key
|
||
AND o.prs_kostenplaats_key = kp.prs_kostenplaats_key(+)
|
||
--AND kp.prs_kostenplaatsgrp_key = kpg.prs_kostenplaatsgrp_key(+)
|
||
AND o.prs_kostensoort_key = kso.prs_kostensoort_key(+)
|
||
AND sm.prs_kostensoort_key = ksm.prs_kostensoort_key(+)
|
||
AND md.prs_kostensoort_key = ksv.prs_kostensoort_key(+)
|
||
AND INSTR (o.mld_opdr_omschrijving, 'BGT') > 0
|
||
--AND o.mld_opdr_ordernr IS NOT NULL
|
||
AND NOT EXISTS
|
||
(SELECT 1
|
||
FROM mld_opdr
|
||
WHERE mld_typeopdr_key = 81
|
||
AND INSTR (mld_opdr_omschrijving, 'BGT') > 0
|
||
--AND mld_opdr_ordernr IS NOT NULL
|
||
AND mld_melding_key = o.mld_melding_key
|
||
AND mld_opdr_bedrijfopdr_volgnr < o.mld_opdr_bedrijfopdr_volgnr);
|
||
|
||
CREATE OR REPLACE VIEW NOVA_V_RAP_HV_UITNUTTING
|
||
AS
|
||
SELECT TO_CHAR (x.mld_melding_datum, 'yyyy') jaar,
|
||
x.mld_melding_key,
|
||
x.mld_stdmelding_omschrijving standaardmelding,
|
||
x.ins_srtdiscipline_prefix || TO_CHAR (x.mld_melding_key) melding_nr,
|
||
x.alg_locatie_code || ' - ' || x.alg_locatie_omschrijving locatie,
|
||
x.mld_meldbron_nr begr_nr,
|
||
x.mld_melding_onderwerp,
|
||
x.mld_melding_omschrijving,
|
||
DECODE (x.begroot_kkey,
|
||
307, 'Bouwkosten',
|
||
308, 'Vaste inrichting',
|
||
309, 'Advieskosten',
|
||
310, 'Losse inventaris',
|
||
311, 'Bijkomende kosten',
|
||
312, 'Onvoorzien',
|
||
'Investeringsbedrag')
|
||
begr_reg,
|
||
COALESCE (x.begroot_kosten, 0) begr_totaal,
|
||
o_axx.bgt_nr,
|
||
o_axx.b_nr,
|
||
COALESCE (o_axx.kosten, 0) axx_werk,
|
||
o_axx.aantal axx_aantal,
|
||
COALESCE (o_fac.kosten, 0) fac_werk,
|
||
o_fac.aantal fac_aantal,
|
||
COALESCE (o_axx.kosten, 0) + COALESCE (o_fac.kosten, 0) werk_totaal,
|
||
COALESCE (x.begroot_kosten, 0) - (COALESCE (o_axx.kosten, 0) + COALESCE (o_fac.kosten, 0)) rest_totaal,
|
||
DECODE (SIGN (COALESCE (x.begroot_kosten, 0) - (COALESCE (o_axx.kosten, 0) + COALESCE (o_fac.kosten, 0))), -1, 'Rood', 'Groen') rood_groen,
|
||
COALESCE (fac.safe_to_number (prognose.mld_kenmerkmelding_waarde), COALESCE (x.begroot_kosten, 0)) prognose,
|
||
COALESCE (x.begroot_kosten, 0) - COALESCE (fac.safe_to_number (prognose.mld_kenmerkmelding_waarde), COALESCE (x.begroot_kosten, 0)) - (COALESCE (o_axx.kosten, 0) + COALESCE (o_fac.kosten, 0)) resultaat
|
||
FROM (SELECT sdi.ins_srtdiscipline_prefix,
|
||
mi.mld_melding_key,
|
||
mi.mld_meldbron_nr,
|
||
smi.mld_stdmelding_omschrijving,
|
||
mi.mld_melding_datum,
|
||
l.alg_locatie_code,
|
||
l.alg_locatie_omschrijving,
|
||
mi.mld_melding_onderwerp,
|
||
mi.mld_melding_omschrijving,
|
||
begroot.mld_kenmerk_key begroot_kkey,
|
||
begroot.kosten begroot_kosten
|
||
FROM mld_melding mi,
|
||
mld_stdmelding smi,
|
||
mld_discipline mdi,
|
||
ins_srtdiscipline sdi,
|
||
alg_locatie l,
|
||
( SELECT mld_melding_key,
|
||
DECODE (mld_kenmerk_key,
|
||
302, -1,
|
||
303, -1,
|
||
304, -1,
|
||
305, -1,
|
||
306, -1,
|
||
mld_kenmerk_key)
|
||
mld_kenmerk_key,
|
||
SUM (COALESCE (fac.safe_to_number (mld_kenmerkmelding_waarde), 0))
|
||
kosten
|
||
FROM mld_kenmerkmelding
|
||
WHERE mld_kenmerk_key BETWEEN 302 AND 312
|
||
GROUP BY mld_melding_key,
|
||
DECODE (mld_kenmerk_key,
|
||
302, -1,
|
||
303, -1,
|
||
304, -1,
|
||
305, -1,
|
||
306, -1,
|
||
mld_kenmerk_key)) begroot
|
||
WHERE mi.mld_stdmelding_key = smi.mld_stdmelding_key
|
||
--AND smi.mld_stdmelding_key IN (19, 101, 102, 103, 104, 105)
|
||
AND smi.mld_ins_discipline_key = mdi.ins_discipline_key
|
||
AND mdi.ins_discipline_key = 130 -- HV-Begroting
|
||
AND mdi.ins_srtdiscipline_key = sdi.ins_srtdiscipline_key
|
||
AND mi.mld_alg_locatie_key = l.alg_locatie_key(+)
|
||
AND mi.mld_melding_key = begroot.mld_melding_key(+)) x
|
||
LEFT JOIN ( SELECT begr_nr, begr_reg_kkey, bgt_nr, b_nr,
|
||
SUM (mld_opdr_kosten) kosten,
|
||
COUNT ( * ) aantal -- DISTINCT WRK-nummers!
|
||
FROM nova_v_rap_hv_opdrachten
|
||
WHERE opdrachttype_key = 81 -- Werkopdracht (gemigreerd)
|
||
AND bgt_nr >= 'BGT-24'
|
||
GROUP BY begr_nr, begr_reg_kkey, bgt_nr, b_nr) o_axx
|
||
ON fac.safe_to_number (x.mld_meldbron_nr) = o_axx.begr_nr
|
||
AND x.begroot_kkey = o_axx.begr_reg_kkey
|
||
AND TO_CHAR (x.mld_melding_datum, 'yy') = SUBSTR (bgt_nr, 5, 2)
|
||
LEFT JOIN ( SELECT mld_melding_key,
|
||
DECODE (prs_kostensoort_key,
|
||
1, 307,
|
||
2, 308,
|
||
3, 309,
|
||
4, 310,
|
||
5, 311,
|
||
6, 312,
|
||
-1)
|
||
mld_kenmerk_key,
|
||
SUM (mld_opdr_kosten) kosten,
|
||
COUNT ( * ) aantal
|
||
FROM mld_opdr
|
||
WHERE mld_typeopdr_key = 5 -- Uitvoeringsopdracht
|
||
GROUP BY mld_melding_key,
|
||
DECODE (prs_kostensoort_key,
|
||
1, 307,
|
||
2, 308,
|
||
3, 309,
|
||
4, 310,
|
||
5, 311,
|
||
6, 312,
|
||
-1)) o_fac
|
||
ON x.mld_melding_key = o_fac.mld_melding_key
|
||
AND x.begroot_kkey = o_fac.mld_kenmerk_key
|
||
LEFT JOIN mld_v_aanwezigkenmerkmelding prognose
|
||
ON x.mld_melding_key = prognose.mld_melding_key
|
||
AND prognose.mld_kenmerk_key BETWEEN 841 AND 846 -- Prognose
|
||
;
|
||
/*
|
||
LEFT JOIN ( SELECT SUBSTR (SUBSTR (o.mld_opdr_omschrijving, INSTR (o.mld_opdr_omschrijving, 'BGT')), 1, INSTR (SUBSTR (o.mld_opdr_omschrijving, INSTR (o.mld_opdr_omschrijving, 'BGT')), '-', 1, 2) - 1) bgt_nr,
|
||
DECODE (SUBSTR (o.mld_opdr_ordernr, 1, 1), 'B', o.mld_opdr_ordernr, NULL) b_nr,
|
||
DECODE (o.mld_opdr_ordernr,
|
||
'B-04189', 900,
|
||
'B-04190', 900,
|
||
'B-04191', 900,
|
||
'B-04192', 900,
|
||
'B-04193', 900,
|
||
'B-04194', 900,
|
||
'B-04202', 901,
|
||
'B-04203', 901,
|
||
'B-04204', 901,
|
||
'B-04205', 901,
|
||
'B-04206', 901,
|
||
'B-04207', 901,
|
||
'B-04196', 902,
|
||
'B-04197', 902,
|
||
'B-04198', 902,
|
||
'B-04199', 902,
|
||
'B-04200', 902,
|
||
'B-04201', 902,
|
||
'B-04208', 903,
|
||
'B-04209', 903,
|
||
'B-04210', 903,
|
||
'B-04211', 903,
|
||
'B-04212', 903,
|
||
'B-04213', 903,
|
||
fac.safe_to_number (o.mld_opdr_ordernr))
|
||
mld_meldbron_nr,
|
||
DECODE (o.mld_opdr_ordernr,
|
||
'B-04189', 307,
|
||
'B-04190', 309,
|
||
'B-04191', 310,
|
||
'B-04192', 312,
|
||
'B-04193', 311,
|
||
'B-04194', 308,
|
||
'B-04202', 307,
|
||
'B-04203', 309,
|
||
'B-04204', 310,
|
||
'B-04205', 312,
|
||
'B-04206', 311,
|
||
'B-04207', 308,
|
||
'B-04196', 307,
|
||
'B-04197', 309,
|
||
'B-04198', 310,
|
||
'B-04199', 312,
|
||
'B-04200', 311,
|
||
'B-04201', 308,
|
||
'B-04208', 307,
|
||
'B-04209', 308,
|
||
'B-04210', 309,
|
||
'B-04211', 310,
|
||
'B-04212', 311,
|
||
'B-04213', 312,
|
||
-1)
|
||
mld_kenmerk_key,
|
||
SUM (o.mld_opdr_kosten) kosten,
|
||
COUNT ( * ) aantal
|
||
FROM mld_opdr o
|
||
WHERE o.mld_typeopdr_key = 81 -- Werkopdracht (gemigreerd)
|
||
AND o.mld_opdr_ordernr IS NOT NULL
|
||
GROUP BY SUBSTR (SUBSTR (o.mld_opdr_omschrijving, INSTR (o.mld_opdr_omschrijving, 'BGT')), 1, INSTR (SUBSTR (o.mld_opdr_omschrijving, INSTR (o.mld_opdr_omschrijving, 'BGT')), '-', 1, 2) - 1),
|
||
o.mld_opdr_ordernr,
|
||
DECODE (o.mld_opdr_ordernr,
|
||
'B-04189', 900,
|
||
'B-04190', 900,
|
||
'B-04191', 900,
|
||
'B-04192', 900,
|
||
'B-04193', 900,
|
||
'B-04194', 900,
|
||
'B-04202', 901,
|
||
'B-04203', 901,
|
||
'B-04204', 901,
|
||
'B-04205', 901,
|
||
'B-04206', 901,
|
||
'B-04207', 901,
|
||
'B-04196', 902,
|
||
'B-04197', 902,
|
||
'B-04198', 902,
|
||
'B-04199', 902,
|
||
'B-04200', 902,
|
||
'B-04201', 902,
|
||
'B-04208', 903,
|
||
'B-04209', 903,
|
||
'B-04210', 903,
|
||
'B-04211', 903,
|
||
'B-04212', 903,
|
||
'B-04213', 903,
|
||
fac.safe_to_number (o.mld_opdr_ordernr)),
|
||
DECODE (o.mld_opdr_ordernr,
|
||
'B-04189', 307,
|
||
'B-04190', 309,
|
||
'B-04191', 310,
|
||
'B-04192', 312,
|
||
'B-04193', 311,
|
||
'B-04194', 308,
|
||
'B-04202', 307,
|
||
'B-04203', 309,
|
||
'B-04204', 310,
|
||
'B-04205', 312,
|
||
'B-04206', 311,
|
||
'B-04207', 308,
|
||
'B-04196', 307,
|
||
'B-04197', 309,
|
||
'B-04198', 310,
|
||
'B-04199', 312,
|
||
'B-04200', 311,
|
||
'B-04201', 308,
|
||
'B-04208', 307,
|
||
'B-04209', 308,
|
||
'B-04210', 309,
|
||
'B-04211', 310,
|
||
'B-04212', 311,
|
||
'B-04213', 312,
|
||
-1)) o_axx
|
||
ON x.mld_meldbron_nr = o_axx.mld_meldbron_nr
|
||
AND x.begroot_kkey = o_axx.mld_kenmerk_key
|
||
*/
|
||
-- Misschien met NOVA#86578 in core, maar NOVA kan daar niet op wachten!
|
||
CREATE OR REPLACE VIEW NOVA_V_RAP_CNT_NOTES
|
||
AS
|
||
SELECT TO_DATE ('01-01-1900', 'dd-mm-yyyy') - cn.cnt_contract_note_aanmaak hide_f_sort,
|
||
cn.cnt_contract_note_aanmaak datum,
|
||
c.cnt_contract_key,
|
||
c.cnt_contract_nummer_intern || DECODE (c.cnt_contract_versie, NULL, '', '.' || c.cnt_contract_versie) contractnr,
|
||
c.cnt_contract_omschrijving contractbeschrijving,
|
||
pf.prs_perslid_naam_full notitie_van,
|
||
cn.cnt_contract_note_omschrijving notitie
|
||
FROM cnt_contract_note cn, cnt_contract c, cnt_discipline cd, prs_v_perslid_fullnames_all pf
|
||
WHERE cn.cnt_contract_key = c.cnt_contract_key
|
||
AND c.ins_discipline_key = cd.ins_discipline_key
|
||
AND cn.prs_perslid_key = pf.prs_perslid_key;
|
||
|
||
-- NOVA#88183: Aantal en oppervlakte per pand/praktijk-theorie-kantoor!
|
||
CREATE OR REPLACE VIEW NOVA_V_RAP_ALG_LES_KANTOOR
|
||
AS
|
||
SELECT alg_gebouw_upper pand,
|
||
SUM (DECODE (alg_srtruimte_key, 9, 1, 0)) aant_praktijk,
|
||
SUM (DECODE (alg_srtruimte_key, 9, COALESCE (alg_ruimte_bruto_vloeropp, 0), 0)) m2_praktijd,
|
||
SUM (DECODE (alg_srtruimte_key, 10, 1, 0)) aant_theorie,
|
||
SUM (DECODE (alg_srtruimte_key, 10, COALESCE (alg_ruimte_bruto_vloeropp, 0), 0)) m2_theorie,
|
||
SUM (DECODE (alg_srtruimte_key, 11, 1, 0)) aant_kantoor,
|
||
SUM (DECODE (alg_srtruimte_key, 11, COALESCE (alg_ruimte_bruto_vloeropp, 0), 0)) m2_kantoor
|
||
FROM alg_v_ruimte_gegevens
|
||
GROUP BY alg_gebouw_upper;
|
||
|
||
-- Analyse verwijderde reserveringen!
|
||
CREATE OR REPLACE VIEW NOVA_V_RAP_RES_DEL
|
||
AS
|
||
SELECT rrr.res_rsv_ruimte_key,
|
||
TO_CHAR (rrr.res_reservering_key) || '/' || TO_CHAR (rrr.res_rsv_ruimte_volgnr) resid,
|
||
rrr.res_activiteit_key activiteitid,
|
||
(SELECT res_activiteit_omschrijving FROM res_activiteit WHERE res_activiteit_key = rrr.res_activiteit_key) activiteit,
|
||
TRUNC (rrr.res_rsv_ruimte_tot) res_datum,
|
||
rrr.res_rsv_ruimte_van van,
|
||
rrr.res_rsv_ruimte_tot tot,
|
||
--fac.gettrackingdate ('RESDEL', rrr.res_rsv_ruimte_key) del_datum,
|
||
rrr.res_rsv_ruimte_verwijder del_datum,
|
||
DECODE (SIGN (fac.count_work_days (rrr.res_rsv_ruimte_verwijder, rrr.res_rsv_ruimte_tot)),
|
||
-1, 'Ja',
|
||
DECODE (fac.count_work_days (rrr.res_rsv_ruimte_verwijder, rrr.res_rsv_ruimte_tot),
|
||
0, 'Ja',
|
||
1, 'Ja',
|
||
'Nee')) dubieus,
|
||
TO_CHAR (fac.count_work_days (rrr.res_rsv_ruimte_verwijder, rrr.res_rsv_ruimte_tot)) res_minus_del,
|
||
COALESCE ((SELECT prs_perslid_naam_full FROM prs_v_perslid_fullnames_all WHERE prs_perslid_key = fac.gettrackinguserkey ('RESDEL', rrr.res_rsv_ruimte_key)), 'System') door,
|
||
res.getdeelresprijs (rrr.res_rsv_ruimte_key) kosten,
|
||
rrr.res_status_fo_key fo_status,
|
||
rrr.res_status_bo_key bo_status,
|
||
rrr.res_rsv_ruimte_dirtlevel
|
||
FROM res_rsv_ruimte rrr --, res_kenmerkwaarde rk
|
||
WHERE rrr.res_rsv_ruimte_van > fac.safe_to_date ('30-09-2024', 'dd-mm-yyyy')
|
||
AND rrr.res_rsv_ruimte_verwijder IS NOT NULL -- Verwijderde reserveringen
|
||
--AND rrr.res_rsv_ruimte_dirtlevel = 0 -- Niet dirty?
|
||
AND EXISTS -- Met Benque-catering
|
||
(SELECT 1
|
||
FROM res_artikel ra, res_rsv_artikel rra
|
||
WHERE 1 = 1
|
||
--AND EXISTS -- Met artikel uit Benque-catalogus
|
||
-- (SELECT 1
|
||
-- FROM res_disc_params
|
||
-- WHERE prs_bedrijf_key = 3661 -- Benque-catalogus
|
||
-- AND res_ins_discipline_key = ra.res_discipline_key)
|
||
AND ra.res_discipline_key IN (321, 341, 361, 362, 363, 364, 365, 366, 367, 421)
|
||
AND ra.res_artikel_key = rra.res_artikel_key
|
||
--AND rra.res_rsv_artikel_dirtlevel = 0 -- Niet dirty?
|
||
--AND rra.res_rsv_artikel_verwerkt IS NULL
|
||
AND rra.res_rsv_ruimte_key = rrr.res_rsv_ruimte_key)
|
||
--AND rrr.res_rsv_ruimte_key = rk.res_rsv_ruimte_key
|
||
--AND EXISTS
|
||
-- (SELECT 1
|
||
-- FROM res_kenmerk
|
||
-- WHERE res_srtkenmerk_key = 21 -- BENQ_ID
|
||
-- AND res_kenmerk_key = rk.res_kenmerk_key)
|
||
--AND EXISTS
|
||
-- (SELECT 1
|
||
-- FROM fac_tracking t, fac_srtnotificatie sn
|
||
-- WHERE t.fac_srtnotificatie_key = sn.fac_srtnotificatie_key
|
||
-- AND sn.fac_srtnotificatie_code LIKE 'RES%'
|
||
-- AND t.fac_tracking_refkey = rrr.res_rsv_ruimte_key
|
||
-- AND t.fac_tracking_datum > rk.res_kenmerkwaarde_aanmaak)
|
||
--AND fac.count_work_days (rrr.res_rsv_ruimte_verwijder, rrr.res_rsv_ruimte_tot) <= 1
|
||
;
|
||
|
||
------ 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
|