Files
Customer/NOUR/NOUR.SQL
Suzan Wiegerinck 2ca191e403 cust sql conform nieuwe format
svn path=/Customer/trunk/; revision=58559
2023-01-09 07:51:46 +00:00

10457 lines
461 KiB
Plaintext
Raw Blame History

--
-- $Id$
--
-- Script containing customer specific sql statements for the FACILITOR database
DEFINE thisfile = 'NOUR.SQL'
DEFINE dbuser = 'NOUR'
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 ------
--------------------------------------------------------------------------------------------------
------------------------------- LEGACY-MEUK, M.N. VOOR OUTLETBEHEER ------------------------------
--------------------------------------------------------------------------------------------------
-- Utilities
-- De totalen aan verhuurbare ruimte(Opp) per CompanyCode,Afdeling,Soort
CREATE OR REPLACE PACKAGE NOUR AS
FUNCTION NOUR_f_cad_ruimte_bezetting(pBezettingswaarde IN NUMBER) RETURN NUMBER;
FUNCTION NOUR_f_pct_gemeensch(VerdiepingKey IN NUMBER) RETURN NUMBER;
PROCEDURE Ins_Update_Kenmerkdeel(kenmerkdeel_key IN NUMBER,
deel_key IN NUMBER,
kenmerk_key IN NUMBER,
waarde IN VARCHAR2,
historymode IN VARCHAR2,
mselect IN VARCHAR2);
PROCEDURE Kmd_Update_Kenmerkdeel(kenmerkdeel_key IN NUMBER,
deel_key IN NUMBER,
kenmerk_key IN NUMBER,
waarde IN VARCHAR2,
historymode IN VARCHAR2,
mselect IN VARCHAR2);
PROCEDURE Kmd_Insert(p_deel_key IN NUMBER,
p_kenmerk_key IN NUMBER,
p_waarde IN VARCHAR2,
p_historymode IN VARCHAR2);
PROCEDURE Kmd_Delete(p_kenmerkdeel_key IN NUMBER,
p_historymode IN VARCHAR2);
PROCEDURE Kmd_Update(p_kenmerkdeel_key IN NUMBER,
p_waarde IN VARCHAR2,
p_historymode IN VARCHAR2);
PRAGMA RESTRICT_REFERENCES (NOUR_f_pct_gemeensch,WNDS, WNPS);
END NOUR;
/
CREATE OR REPLACE PACKAGE BODY NOUR
AS
FUNCTION NOUR_f_cad_ruimte_bezetting (pBezettingswaarde IN NUMBER)
RETURN NUMBER
IS
-- PRE: pBezettingswaarde IS NOT NULL
v_result NUMBER (3, 0);
BEGIN
IF (pBezettingswaarde <= 0)
THEN
v_result := 0;
ELSE
IF (pBezettingswaarde > 0) AND (pBezettingswaarde < 100)
THEN
v_result := 50;
ELSE
v_result := 100;
END IF;
END IF;
RETURN v_result;
END NOUR_f_cad_ruimte_bezetting;
FUNCTION NOUR_f_pct_gemeensch (VerdiepingKey IN NUMBER)
RETURN NUMBER
IS
GebouwKey NUMBER (10, 2);
opp_verhuurbaar_ver NUMBER (10, 2);
opp_verhuurbaar_hor NUMBER (10, 2);
opp_gemeenschappelijk_ver NUMBER (10, 2);
opp_gemeenschappelijk_hor NUMBER (10, 2);
BEGIN
-- Levert het percentage van de ruimte dat van gebouw met de gegeven key gemeenschappelijk
-- zijnde de opp_gemeenschappelijk/opp_netto. Hiermee kan de bruto oppervlakte van een
-- netto oppervlakte worden berekend met bruto=netto+ pct*netto = (1+pct)*netto
SELECT ALG_GEBOUW_KEY
INTO GebouwKey
FROM ALG_VERDIEPING
WHERE ALG_VERDIEPING_KEY = VerdiepingKey;
SELECT NVL (SUM (alg_ruimte_bruto_vloeropp), 1) -- minstens 1 tegen het delen door nul
INTO opp_verhuurbaar_ver
FROM alg_v_aanwezigruimte R, alg_srtruimte SR, alg_verdieping V
WHERE V.alg_gebouw_key = GebouwKey
AND V.alg_verdieping_key = R.alg_verdieping_key
AND R.alg_srtruimte_key = SR.alg_srtruimte_key
AND SR.prs_verhuurbaar IS NOT NULL
AND SR.prs_bevat_werkplek IS NOT NULL;
SELECT NVL (SUM (alg_ruimte_bruto_vloeropp), 1) -- minstens 1 tegen het delen door nul
INTO opp_verhuurbaar_hor
FROM alg_v_aanwezigruimte R, alg_srtruimte SR, alg_verdieping V
WHERE V.alg_verdieping_key = VerdiepingKey -- Alleen deze verdieping
AND V.alg_verdieping_key = R.alg_verdieping_key
AND R.alg_srtruimte_key = SR.alg_srtruimte_key
AND SR.prs_verhuurbaar IS NOT NULL
AND SR.prs_bevat_werkplek IS NOT NULL;
SELECT NVL (SUM (alg_ruimte_bruto_vloeropp), 0)
INTO opp_gemeenschappelijk_ver
FROM alg_v_aanwezigruimte R, alg_srtruimte SR, alg_verdieping V
WHERE V.alg_gebouw_key = GebouwKey
AND V.alg_verdieping_key = R.alg_verdieping_key
AND R.alg_srtruimte_key = SR.alg_srtruimte_key
AND SR.prs_verhuurbaar IS NOT NULL
AND SR.alg_srtruimte_upper LIKE '%VERTICAAL%'
AND SR.prs_bevat_werkplek IS NULL;
SELECT NVL (SUM (alg_ruimte_bruto_vloeropp), 0)
INTO opp_gemeenschappelijk_hor
FROM alg_v_aanwezigruimte R, alg_srtruimte SR, alg_verdieping V
WHERE V.alg_verdieping_key = VerdiepingKey
AND V.alg_verdieping_key = R.alg_verdieping_key
AND R.alg_srtruimte_key = SR.alg_srtruimte_key
AND SR.prs_verhuurbaar IS NOT NULL
AND SR.alg_srtruimte_upper LIKE '%HORIZONTAAL%'
AND SR.prs_bevat_werkplek IS NULL;
RETURN (opp_gemeenschappelijk_ver / opp_verhuurbaar_ver)
+ (opp_gemeenschappelijk_hor / opp_verhuurbaar_hor);
END NOUR_f_pct_gemeensch;
PROCEDURE Ins_Update_Kenmerkdeel (kenmerkdeel_key IN NUMBER,
deel_key IN NUMBER,
kenmerk_key IN NUMBER,
waarde IN VARCHAR2,
historymode IN VARCHAR2,
mselect IN VARCHAR2)
IS
v_history_mode fac_message.fac_message_text%TYPE;
BEGIN
-- Het is eigenlijk voldoende om hier alleen Kmd_Update()
-- aan te roepen omdat daar alle situaties worden
-- gecontroleerd en de bijbehorende actie wordt uitgevoerd.
-- De onderstaande Select zorgt er dus alleen voor dat
-- indien er geen actueel record bestaat, of een die
-- vandaag is gesloten er een nieuw record wordt gemaakt,
-- hetgeen in Kmd_Update() ook wordt gedaan zodat de tweede
-- insert een foutmelding geeft.
-- Daarom alleen Kmd_Update() aanroepen met een dummy waarde
-- voor ins_kenmerkdeel_key.
--
IF historymode IS NULL
THEN
BEGIN
SELECT DECODE (fac_message_text, 'TRUE', '1', 'FALSE', '0', '0')
INTO v_history_mode
FROM fac_message
WHERE fac_message_code = 'FAC_HISTORYMODE_VALUE';
EXCEPTION
WHEN NO_DATA_FOUND
THEN
v_history_mode := '0';
END;
ELSE
v_history_mode := historymode;
END IF;
NOUR.Kmd_Update_Kenmerkdeel (kenmerkdeel_key,
deel_key,
kenmerk_key,
waarde,
v_history_mode,
mselect);
END Ins_Update_Kenmerkdeel;
PROCEDURE Kmd_Insert (p_deel_key IN NUMBER,
p_kenmerk_key IN NUMBER,
p_waarde IN VARCHAR2,
p_historymode IN VARCHAR2)
IS
BEGIN
IF p_waarde IS NOT NULL
THEN
INSERT INTO ins_kenmerkdeel (ins_kenmerk_key,
ins_deel_Key,
ins_kenmerkdeel_waarde)
VALUES (p_kenmerk_key, p_deel_key, p_waarde);
END IF;
END Kmd_Insert;
PROCEDURE Kmd_Delete (p_kenmerkdeel_key IN NUMBER,
p_historymode IN VARCHAR2)
IS
BEGIN
IF p_historymode = '0'
THEN
--NON HISTORY MODE
DELETE FROM ins_kenmerkdeel
WHERE ins_kenmerkdeel_key = p_kenmerkdeel_key;
ELSE
--HISTORY MODE
UPDATE ins_kenmerkdeel
SET ins_kenmerkdeel_verwijder = SYSDATE
WHERE ins_kenmerkdeel_key = p_kenmerkdeel_key;
END IF;
END Kmd_Delete;
PROCEDURE Kmd_update (p_kenmerkdeel_key IN NUMBER,
p_waarde IN VARCHAR2,
p_historymode IN VARCHAR2)
IS
BEGIN
UPDATE ins_kenmerkdeel
SET ins_kenmerkdeel_waarde = p_waarde,
ins_kenmerkdeel_verwijder = NULL
WHERE ins_kenmerkdeel_key = p_kenmerkdeel_key;
END Kmd_Update;
PROCEDURE Kmd_Update_Kenmerkdeel (kenmerkdeel_key IN NUMBER,
deel_key IN NUMBER,
kenmerk_key IN NUMBER,
waarde IN VARCHAR2,
historymode IN VARCHAR2,
mselect IN VARCHAR2)
IS
v_kenmerkdeelkey NUMBER (10);
BEGIN
IF historymode = '0'
THEN
IF waarde IS NOT NULL
THEN
IF kenmerkdeel_key IS NOT NULL AND mselect = '0'
THEN
NOUR.Kmd_Update (kenmerkdeel_key, waarde, historymode);
ELSIF kenmerkdeel_key IS NULL AND mselect = '1'
THEN
-- kenmerkdeel vanuit form in mselectmode is null
-- deelkey komt uit fac_selectie daar kan kenmerkdeel niet aan toegevoegd worden.
-- Oplossing : zoek a.h.v. Deelkey en Kenmerkkey de kenmerkdeel_key
-- Bij Insert is kenmerkdeel_key ook NULL, maar dit gaat goed aangezien mselect daar nooit '1' kan zijn.
BEGIN
SELECT ins_kenmerkdeel_Key
INTO v_kenmerkdeelkey
FROM ins_v_aanwezigkenmerkdeel
WHERE ins_deel_key = deel_key
AND ins_kenmerk_key = kenmerk_key;
NOUR.Kmd_Update (v_kenmerkdeelkey, waarde, historymode);
EXCEPTION
WHEN NO_DATA_FOUND
THEN
NOUR.Kmd_Insert (deel_key,
kenmerk_key,
waarde,
historymode);
END;
ELSE
NOUR.Kmd_Insert (deel_key,
kenmerk_key,
waarde,
historymode);
END IF;
ELSE
NOUR.Kmd_Delete (kenmerkdeel_key, historymode);
END IF;
ELSIF historymode = '1'
THEN
DECLARE
-- Zoek alle records voor een gegeven object en kenmerk
-- en zet de meest recente bovenaan.
--
CURSOR c_kenmerkdeel (
p_kenmerk_key IN NUMBER,
p_deel_key IN NUMBER)
IS
SELECT ins_kenmerkdeel_key,
TRUNC (ins_kenmerkdeel_aanmaak) ins_kenmerkdeel_aanmaak,
TRUNC (ins_kenmerkdeel_verwijder)
ins_kenmerkdeel_verwijder,
ins_kenmerkdeel_waarde
FROM ins_kenmerkdeel
WHERE ins_kenmerk_key = p_kenmerk_key
AND ins_deel_key = p_deel_key
ORDER BY ins_kenmerkdeel_key DESC;
r_kenmerkdeel c_kenmerkdeel%ROWTYPE;
BEGIN
OPEN c_kenmerkdeel (kenmerk_key, deel_key);
FETCH c_kenmerkdeel INTO r_kenmerkdeel;
IF c_kenmerkdeel%NOTFOUND
THEN
-- Voor dit object en kenmerk bestaat nog geen record
-- dus toevoegen. Behalve als de toe te voegen waarde
-- null is, dan wil je niets toevoegen dus dan ook
-- geen actie.
IF waarde IS NOT NULL
THEN
NOUR.Kmd_Insert (deel_key,
kenmerk_key,
waarde,
historymode);
END IF;
ELSE
-- Er bestaat een record voor het object en kenmerk.
--
IF waarde IS NOT NULL
THEN
-- Er is een nieuwe waarde voor een bepaald object en kenmerk.
--
IF r_kenmerkdeel.ins_kenmerkdeel_aanmaak <= TRUNC (SYSDATE)
AND r_kenmerkdeel.ins_kenmerkdeel_verwijder IS NULL
THEN
-- Het record is nog actueel, dus moet eerst gesloten worden
-- door het als verwijderd te markeren.
--
NOUR.Kmd_Delete (r_kenmerkdeel.ins_kenmerkdeel_key,
historymode);
END IF;
--
-- Er bestaat nu tijdelijk geen actueel record meer voor
-- het object en kenmerk !!
--
IF r_kenmerkdeel.ins_kenmerkdeel_aanmaak < TRUNC (SYSDATE)
AND (r_kenmerkdeel.ins_kenmerkdeel_verwijder <=
TRUNC (SYSDATE)
OR r_kenmerkdeel.ins_kenmerkdeel_verwijder IS NULL)
THEN
-- Het laatste record voor kenmerk bij een object heeft langer
-- dan een dag bestaan. Voeg daarom een nieuwe toe.
--
NOUR.Kmd_Insert (deel_key,
kenmerk_key,
waarde,
historymode);
ELSIF r_kenmerkdeel.ins_kenmerkdeel_aanmaak =
TRUNC (SYSDATE)
THEN
-- Het record voor kenmerk bij een object is vandaag
-- aangemaakt dus wordt er geen nieuwe toegevoegd maar
-- de huidige aangepast.
--
NOUR.Kmd_Update (r_kenmerkdeel.ins_kenmerkdeel_key,
waarde,
historymode);
END IF;
ELSE
-- De nieuwe waarde voor het object en kenmerk is leeg, dus
-- moet het als verwijderd gemarkeerd worden.
-- Behalve als er in MSelect-mode gewijzigd wordt.
--
IF mselect = '0'
THEN
NOUR.Kmd_Delete (r_kenmerkdeel.ins_kenmerkdeel_key,
historymode);
END IF;
END IF;
END IF;
CLOSE c_kenmerkdeel;
END;
END IF;
END Kmd_Update_Kenmerkdeel;
END NOUR;
/
--------------------------------------------------------------------------------------------------
------------------------------- BASISVIEWS -------------------------------------------------------
--------------------------------------------------------------------------------------------------
-- BELANGRIJKE VIEW, wordt veelal gebruikt ipv kostenplaats-tabel!
-- Eerste woord van kostenplaatsgroep-omschrijving = debiteurnr voor doorbelastingsexport
CREATE OR REPLACE VIEW nour_v_kostenplaats
AS
SELECT k.prs_kostenplaats_key,
DECODE( INSTR (prs_kostenplaats_nr, '('),
0, TRIM (prs_kostenplaats_nr),
TRIM (SUBSTR (prs_kostenplaats_nr, 1, INSTR (prs_kostenplaats_nr, '(') - 2) )
) prs_kostenplaats_nr,
UPPER( DECODE( INSTR (prs_kostenplaats_nr, '('),
0, TRIM (prs_kostenplaats_nr),
TRIM (SUBSTR (prs_kostenplaats_nr, 1, INSTR (prs_kostenplaats_nr, '(') - 2) ) )
) prs_kostenplaats_upper,
prs_kostenplaats_nr fclt_kostenplaats_nr,
prs_kostenplaats_omschrijving,
COALESCE( SUBSTR(prs_kostenplaatsgrp_oms, 1, INSTR(prs_kostenplaatsgrp_oms, ' ')-1 ),
'ONBEKEND') debiteurnr,
prs_kostenplaatsgrp_oms,
-- a.companycode,
k.prs_perslid_key, prs_kostenplaats_module, prs_kostenplaats_begin, prs_kostenplaats_eind,
k.prs_kostenplaatsgrp_key, prs_kostenplaats_aanmaak, prs_kostenplaats_verwijder,
kg.prs_perslid_key grp_prs_perslid_key
FROM prs_kostenplaats k,
prs_kostenplaatsgrp kg
WHERE kg.prs_kostenplaatsgrp_key(+) = k.prs_kostenplaatsgrp_key;
-- Mapping van afdeling naar company (top-level afdeling)
CREATE OR REPLACE VIEW nour_v_afdelingcompany
AS
SELECT a.prs_afdeling_key,
a.prs_afdeling_naam,
a.prs_afdeling_upper,
a.prs_afdeling_omschrijving,
c.prs_afdeling_key company_key,
c.prs_afdeling_naam companycode,
c.prs_afdeling_omschrijving company_oms,
a.prs_afdeling_aanmaak,
a.prs_afdeling_verwijder,
a.prs_kostenplaats_key
FROM prs_afdeling a,
prs_afdeling c,
prs_v_afdeling_boom ab
WHERE ab.prs_afdeling_key = a.prs_afdeling_key
AND c.prs_afdeling_key = ab.prs_afdeling_key1;
-- AKZA#494: rapportage "doorbelasting outlets" uses this table
CREATE OR REPLACE VIEW prs_eenheid
(prs_eenheid_key, prs_eenheid_code, prs_eenheid_upper, prs_eenheid_omschrijving,
prs_eenheid_aanmaak, prs_eenheid_verwijder, prs_bedrijf_key)
AS
SELECT a.prs_afdeling_key,
a.prs_afdeling_naam,
a.prs_afdeling_upper,
a.prs_afdeling_omschrijving,
a.prs_afdeling_aanmaak,
a.prs_afdeling_verwijder,
a.prs_bedrijf_key
FROM prs_afdeling a
WHERE a.prs_afdeling_parentkey IS NULL;
CREATE OR REPLACE VIEW NOUR_V_PERSLID
(
PRS_PERSLID_KEY,
PRS_PERSLID_MODULE,
PRS_SRTPERSLID_KEY,
PRS_AFDELING_KEY,
PRS_PERSLID_NAAM,
PRS_PERSLID_UPPER,
PRS_PERSLID_VOORLETTERS,
PRS_PERSLID_VOORNAAM,
PRS_PERSLID_TITEL,
PRS_PERSLID_NR,
PRS_PERSLID_DIENSTVERBAND,
PRS_PERSLID_OPP,
PRS_PERSLID_INGANGSDATUM,
PRS_PERSLID_EINDDATUM,
PRS_PERSLID_UURLOON,
PRS_PERSLID_TELEFOONNR,
PRS_PERSLID_AANMAAK,
PRS_PERSLID_VERWIJDER,
PRS_PERSLID_INITIALEN,
PRS_PERSLID_INIT_UPPER,
PRS_PERSLID_OSLOGIN,
PRS_PERSLID_TUSSENVOEGSEL,
FAC_PROFIEL_KEY,
MLD_ADRES_KEY,
PRS_PERSLID_LOGIN,
PRS_PERSLID_MOBIEL,
PRS_PERSLID_EMAIL,
PRS_PERSLID_SRTNOTI_MODE,
PRS_PERSLID_WACHTWOORD_EXP,
PRS_PERSLID_AUTHENTICATIE,
PRS_PERSLID_AUTHENTICATIE_EXP,
PRS_PERSLID_LANG,
PRS_PERSLID_OSLOGIN2,
PRS_PERSLID_GESLACHT,
PRS_PERSLID_INGIDS,
PRS_PERSLID_SALT,
PRS_PERSLID_WACHTWOORD_HASH,
PRS_PERSLID_SYSTEEMADRES,
ALG_ONROERENDGOED_KEYS,
ALG_ONROERENDGOED_TYPE,
PRS_PERSLID_BEZETDATUM,
PRS_PERSLID_FLAGS,
PRS_PERSLID_APIKEY,
PRS_PERSLID_OPTIONS,
PRS_PERSLID_OTPSECRET,
PRS_PERSLID_OTPCOUNTER,
PRS_PERSLID_CREDENTIALS_DATUM,
PRS_PERSLID_TERMS_DATUM,
PRS_PERSLID_TERMS_VERSION,
PRS_PERSLID_TIMEZONE,
PRS_PERSLID_EXTERNID,
PRS_PERSLID_INACTIEF,
PRS_PERSLID_EXTERNOSLOGIN,
PRS_PERSLID_LOGLEVEL,
PRS_PERSLID_STRING
)
BEQUEATH DEFINER
AS
SELECT p."PRS_PERSLID_KEY",
p."PRS_PERSLID_MODULE",
p."PRS_SRTPERSLID_KEY",
p."PRS_AFDELING_KEY",
p."PRS_PERSLID_NAAM",
p."PRS_PERSLID_UPPER",
p."PRS_PERSLID_VOORLETTERS",
p."PRS_PERSLID_VOORNAAM",
p."PRS_PERSLID_TITEL",
p."PRS_PERSLID_NR",
p."PRS_PERSLID_DIENSTVERBAND",
p."PRS_PERSLID_OPP",
p."PRS_PERSLID_INGANGSDATUM",
p."PRS_PERSLID_EINDDATUM",
p."PRS_PERSLID_UURLOON",
p."PRS_PERSLID_TELEFOONNR",
p."PRS_PERSLID_AANMAAK",
p."PRS_PERSLID_VERWIJDER",
p."PRS_PERSLID_INITIALEN",
upper (p.PRS_PERSLID_INITIALEN) PRS_PERSLID_INIT_UPPER,
p."PRS_PERSLID_OSLOGIN",
p."PRS_PERSLID_TUSSENVOEGSEL",
p."FAC_PROFIEL_KEY",
p."MLD_ADRES_KEY",
p."PRS_PERSLID_LOGIN",
p."PRS_PERSLID_MOBIEL",
p."PRS_PERSLID_EMAIL",
p."PRS_PERSLID_SRTNOTI_MODE",
p."PRS_PERSLID_WACHTWOORD_EXP",
p."PRS_PERSLID_AUTHENTICATIE",
p."PRS_PERSLID_AUTHENTICATIE_EXP",
p."PRS_PERSLID_LANG",
p."PRS_PERSLID_OSLOGIN2",
p."PRS_PERSLID_GESLACHT",
p."PRS_PERSLID_INGIDS",
p."PRS_PERSLID_SALT",
p."PRS_PERSLID_WACHTWOORD_HASH",
p."PRS_PERSLID_SYSTEEMADRES",
p."ALG_ONROERENDGOED_KEYS",
p."ALG_ONROERENDGOED_TYPE",
p."PRS_PERSLID_BEZETDATUM",
p."PRS_PERSLID_FLAGS",
p."PRS_PERSLID_APIKEY",
p."PRS_PERSLID_OPTIONS",
p."PRS_PERSLID_OTPSECRET",
p."PRS_PERSLID_OTPCOUNTER",
p."PRS_PERSLID_CREDENTIALS_DATUM",
p."PRS_PERSLID_TERMS_DATUM",
p."PRS_PERSLID_TERMS_VERSION",
p."PRS_PERSLID_TIMEZONE",
p."PRS_PERSLID_EXTERNID",
p."PRS_PERSLID_INACTIEF",
p."PRS_PERSLID_EXTERNOSLOGIN",
p."PRS_PERSLID_LOGLEVEL",
p.prs_perslid_naam
|| NVL2 (p.prs_perslid_voorletters,
', ' || p.prs_perslid_voorletters,
'')
|| NVL2 (p.prs_perslid_tussenvoegsel,
' ' || p.prs_perslid_tussenvoegsel,
'')
|| NVL2 (p.prs_perslid_voornaam,
' (' || p.prs_perslid_voornaam || ')',
'')
|| DECODE (p.prs_perslid_geslacht, 1, ' (M)', 0, ' (V)', '') prs_perslid_string
FROM prs_perslid p
WHERE prs_perslid_upper NOT LIKE '[%'
AND prs_perslid_upper NOT LIKE 'LEEG [%';
CREATE OR REPLACE VIEW nour_v_aanwezigperslid
AS
SELECT *
FROM nour_v_perslid
WHERE prs_perslid_verwijder IS NULL;
-- Kenmerkdomeinen voor objectenbeheer (Deventer): LoD's, logische objecten etc
CREATE OR REPLACE VIEW nour_v_list_lods
AS
SELECT d.ins_deel_key,
d.ins_deel_omschrijving,
d.ins_deel_opmerking,
d.ins_deel_omschrijving||' '||d.ins_deel_opmerking ins_deel_aanduiding,
d.ins_deel_verwijder
FROM ins_deel d
WHERE ins_discipline_key = 1625;
CREATE OR REPLACE VIEW nour_v_list_logische_obj
AS
SELECT d.ins_deel_key,
d.ins_deel_omschrijving,
d.ins_deel_opmerking,
d.ins_deel_omschrijving||' '||d.ins_deel_opmerking ins_deel_aanduiding,
d.ins_deel_verwijder
FROM ins_deel d
WHERE ins_discipline_key = 1645;
--------------------------------------------------------------------------------------------------
------------------------------- RUIMTEDOORBELASTING EN SCHOONMAAK --------------------------------
--------------------------------------------------------------------------------------------------
CREATE OR REPLACE VIEW nour_ruimte_eenheid
(
alg_ruimte_key,
prs_afdeling_eenheid
)
AS
SELECT w.prs_alg_ruimte_key "ALG_RUIMTE_KEY", 'NIETVERH' prs_afdeling_eenheid
FROM prs_perslidwerkplek pw,
prs_werkplek w,
prs_afdeling a,
prs_afdeling e,
prs_perslid p
WHERE a.prs_afdeling_parentkey = e.prs_afdeling_key
AND e.prs_afdeling_parentkey IS NULL
AND pw.prs_werkplek_key = w.prs_werkplek_key
AND a.prs_afdeling_verwijder IS NULL
AND a.prs_afdeling_naam = 'NIET VERH'
AND p.prs_perslid_verwijder IS NULL
AND pw.prs_perslid_key = p.prs_perslid_key
AND p.prs_afdeling_key = a.prs_afdeling_key
GROUP BY prs_alg_ruimte_key
UNION
SELECT w.prs_alg_ruimte_key "ALG_RUIMTE_KEY",
MAX (e.prs_afdeling_naam) prs_afdeling_eenheid
FROM prs_perslidwerkplek pw,
prs_werkplek w,
prs_afdeling a,
prs_afdeling e,
prs_perslid p
WHERE a.prs_afdeling_parentkey = e.prs_afdeling_key
AND e.prs_afdeling_parentkey IS NULL
AND pw.prs_werkplek_key = w.prs_werkplek_key
AND a.prs_afdeling_verwijder IS NULL
AND a.prs_afdeling_naam <> 'NIET VERH'
AND p.prs_perslid_verwijder IS NULL
AND pw.prs_perslid_key = p.prs_perslid_key
AND p.prs_afdeling_key = a.prs_afdeling_key
GROUP BY prs_alg_ruimte_key;
-- Now with 3D authorization on Building
CREATE OR REPLACE VIEW nour_verdiepingopp
(FCLT_F_GEBOUW, HIDE_F_VOLGNR, VERDIEPING, FCLT_3D_GEBOUW_KEY, OPPERVLAKTE)
AS
SELECT l.alg_locatie_code || '-'
|| alg_gebouw_omschrijving fclt_f_gebouw,
v.alg_verdieping_volgnr,
v.alg_verdieping_omschrijving,
g.alg_gebouw_key,
SUM (r.alg_ruimte_bruto_vloeropp) oppervlakte
FROM alg_v_aanweziggebouw g,
alg_v_aanwezigverdieping v,
alg_v_aanwezigruimte r,
alg_v_aanweziglocatie l
WHERE v.alg_gebouw_key = g.alg_gebouw_key
AND r.alg_verdieping_key = v.alg_verdieping_key
AND g.alg_locatie_key = l.alg_locatie_key
GROUP BY l.alg_locatie_code || '-' || alg_gebouw_omschrijving,v.alg_verdieping_volgnr,v.alg_verdieping_omschrijving,g.alg_gebouw_key;
-- Now with 3D authorization on Building
CREATE OR REPLACE VIEW nour_gebouwopp
(FCLT_F_GEBOUW, FCLT_3D_GEBOUW_KEY, OPPERVLAKTE)
AS
SELECT l.alg_locatie_code || '-' || g.alg_gebouw_omschrijving,
g.alg_gebouw_key,
SUM (r.alg_ruimte_bruto_vloeropp) oppervlakte
FROM alg_v_aanweziggebouw g,
alg_v_aanwezigverdieping v,
alg_v_aanwezigruimte r,
alg_v_aanweziglocatie l
WHERE v.alg_gebouw_key = g.alg_gebouw_key
AND r.alg_verdieping_key = v.alg_verdieping_key
AND g.alg_locatie_key = l.alg_locatie_key
GROUP BY l.alg_locatie_code || '-' || alg_gebouw_omschrijving, g.alg_gebouw_key;
-- Now with 3D authorization on Building and organization
CREATE OR REPLACE VIEW nour_gebruiker_per_ruimte
(FCLT_F_GEBOUW, BOUWLAAG, RUIMTE, FCLT_F_AFDELING, GEBRUIKER,
OPPERVLAKTE, BEZETTINGSGRAAD, BEZETOPP, TELEFOON, FCLT_3D_GEBOUW_KEY, FCLT_3D_AFDELING_KEY)
AS
SELECT w.alg_gebouw_omschrijving gebouw, w.alg_verdieping_code bouwlaag,
w.alg_ruimte_nr ruimte, a.prs_afdeling_naam afdeling,
w.prs_afd_perslid_naam gebruiker,
ROUND (w.prs_werkplek_opp, 2) oppervlakte,
w.prs_perslidwerkplek_bezetting bezettingsgraad,
ROUND (w.prs_werkplek_opp * w.prs_perslidwerkplek_bezetting / 100,
2
) bezetopp,
p.prs_perslid_telefoonnr telefoon,
w.alg_gebouw_key,
a.prs_afdeling_key
FROM prs_v_perslidwerkplek_gegevens w,
prs_v_aanwezigafdeling a,
prs_v_aanwezigperslid p
WHERE p.prs_afdeling_key = a.prs_afdeling_key
AND w.prs_perslid_key = p.prs_perslid_key;
CREATE OR REPLACE VIEW nour_v_ruimte_gegevens
AS
SELECT r.*,
( (nour.nour_f_pct_gemeensch (r.alg_verdieping_key) + 1)
* (NVL (r.alg_ruimte_bruto_vloeropp, 0))
) alg_ruimte_bruto_vloeropp_vh
FROM alg_ruimte r, alg_srtruimte sr
WHERE alg_ruimte_verwijder IS NULL
AND sr.alg_srtruimte_key = r.alg_srtruimte_key
AND sr.prs_verhuurbaar IS NOT NULL
AND sr.prs_bevat_werkplek IS NOT NULL;
-- Now with 3D authorization on Building
CREATE OR REPLACE VIEW nour_verhruimte_per_gebouw (fclt_f_locatie,
fclt_f_gebouw,
fclt_3d_gebouw_key,
oppervlakte,
oppervlakte_bruto,
fclt_3d_locatie_key
)
AS
SELECT l.alg_locatie_code locatie,
g.alg_gebouw_omschrijving gebouw, g.alg_gebouw_key,
SUM (NVL (r.alg_ruimte_bruto_vloeropp, 0)) oppervlakte,
SUM (NVL (r.alg_ruimte_bruto_vloeropp_vh, 0)) oppervlakte_bruto,
g.alg_locatie_key
FROM alg_locatie l, alg_gebouw g, alg_verdieping v, nour_v_ruimte_gegevens r
WHERE r.alg_verdieping_key = v.alg_verdieping_key
AND v.alg_gebouw_key = g.alg_gebouw_key
AND l.alg_locatie_key = g.alg_locatie_key
GROUP BY g.alg_gebouw_omschrijving, g.alg_gebouw_key, g.alg_locatie_key, l.alg_locatie_code;
-- Now with 3D authorization on Building and organization
CREATE OR REPLACE VIEW nour_huur_verhuurbaar_ruimte
(
FCLT_F_COMPANYCODE,
HIDE_F_COMPANYNAAM,
FCLT_F_KOSTENPLAATS,
AFDELING,
FCLT_X_LOCATIE,
FCLT_F_GEBOUW,
VERDIEPING,
RUIMTENR,
RUIMTESOORT,
FCLT_3D_GEBOUW_KEY,
FCLT_3D_AFDELING_KEY,
BVO
)
AS
SELECT e.prs_afdeling_naam companycode,
e.prs_afdeling_omschrijving companynaam,
kp.prs_kostenplaats_nr,
a.prs_afdeling_omschrijving,
rg.alg_locatie_omschrijving||' ('||rg.alg_locatie_code||')',
rg.alg_gebouw_omschrijving,
rg.alg_verdieping_code,
rg.alg_ruimte_nr,
sr.alg_srtruimte_omschrijving,
rg.alg_gebouw_key,
a.prs_afdeling_key,
ROUND( SUM( COALESCE( rg.alg_ruimte_bruto_vloeropp * ra.prs_ruimteafdeling_bezetting / 100,
0)),
1)
bvo
FROM prs_v_aanwezigafdeling a,
prs_v_aanwezigafdeling e,
prs_v_aanwezigruimteafdeling ra,
alg_v_ruimte_gegevens rg,
alg_srtruimte sr,
nour_v_kostenplaats kp
WHERE a.prs_afdeling_parentkey = e.prs_afdeling_key(+)
AND e.prs_afdeling_parentkey IS NULL
AND kp.prs_kostenplaats_key(+) = a.prs_kostenplaats_key
AND ra.prs_afdeling_key = a.prs_afdeling_key(+)
AND rg.alg_ruimte_key = ra.alg_ruimte_key(+)
AND sr.alg_srtruimte_key = rg.alg_srtruimte_key
GROUP BY e.prs_afdeling_naam,
e.prs_afdeling_omschrijving,
kp.prs_kostenplaats_nr,
a.prs_afdeling_omschrijving,
rg.alg_locatie_code,
rg.alg_locatie_omschrijving,
rg.alg_gebouw_omschrijving,
rg.alg_gebouw_key,
rg.alg_verdieping_volgnr,
rg.alg_verdieping_code,
rg.alg_ruimte_nr,
sr.alg_srtruimte_omschrijving,
a.prs_afdeling_key;
CREATE OR REPLACE VIEW nour_huur_verhuurbaar
AS
SELECT fclt_f_companycode,
hide_f_companynaam fclt_f_companynaam,
fclt_f_kostenplaats,
afdeling,
fclt_x_locatie,
fclt_f_gebouw,
ruimtesoort,
fclt_3d_gebouw_key,
fclt_3d_afdeling_key,
SUM(bvo) bvo
FROM nour_huur_verhuurbaar_ruimte
GROUP BY fclt_f_companycode,
hide_f_companynaam,
fclt_f_kostenplaats,
afdeling,
fclt_x_locatie,
fclt_f_gebouw,
ruimtesoort,
fclt_3d_gebouw_key,
fclt_3d_afdeling_key;
-- Now with 3D authorization on Building
CREATE OR REPLACE VIEW nour_schoonmaakrapport (fclt_f_gebouw,
hide_f_verdieping_volgnummer,
verdieping,
ruimte,
omschrijving,
opp,
fclt_f_vloerafwerking,
fclt_f_schoonmaakniveau,
kosten,
fclt_3d_gebouw_key)
AS
SELECT alg_g.alg_gebouw_omschrijving fclt_f_gebouw,
alg_v.alg_verdieping_volgnr,
alg_v.alg_verdieping_omschrijving verdieping,
'R' || alg_r.alg_ruimte_nr ruimte,
alg_r.alg_ruimte_omschrijving omschrijving,
alg_r.alg_ruimte_bruto_vloeropp opp,
u.fac_usrdata_omschr fclt_f_vloerafwerking,
n.fac_usrdata_omschr fclt_f_schoonmaakniveau,
ROUND(n.fac_usrdata_prijs * alg_r.alg_ruimte_bruto_vloeropp,2) kosten,
alg_g.alg_gebouw_key
FROM alg_v_aanweziggebouw alg_g,
alg_v_aanwezigverdieping alg_v,
alg_v_aanwezigruimte alg_r,
alg_onrgoedkenmerk alg_k1,
alg_onrgoedkenmerk alg_k2,
(SELECT * FROM fac_usrdata WHERE fac_usrtab_key = 470) n,
(SELECT * FROM fac_usrdata WHERE fac_usrtab_key = 1) u
WHERE alg_v.alg_gebouw_key = alg_g.alg_gebouw_key
AND alg_v.alg_verdieping_key = alg_r.alg_verdieping_key
AND alg_r.alg_ruimte_key = alg_k1.alg_onrgoed_key(+)
AND alg_k1.alg_kenmerk_key(+) = 1001 --nivo
AND alg_k1.alg_onrgoedkenmerk_waarde = TO_CHAR(n.fac_usrdata_key)
AND alg_r.alg_ruimte_key = alg_k2.alg_onrgoed_key(+)
AND alg_k2.alg_kenmerk_key(+) = 2 -- srtvloer
AND alg_k2.alg_onrgoedkenmerk_waarde = u.fac_usrdata_key(+)
AND u.fac_usrtab_key(+) = 1
ORDER BY alg_v.alg_verdieping_volgnr, alg_r.alg_ruimte_upper_nr;
-- AKZA#476/AKZA#669
CREATE OR REPLACE VIEW nour_v_jaarkosten_per_ordernr (fclt_f_ordernr,
gebouw,
fclt_f_jaar,
besteding)
AS
SELECT ordernr fclt_f_ordernr,
MIN ( gebouw_omschrijving
|| DECODE ((SELECT COUNT (alg_gebouw_omschrijving)
FROM ALG_GEBOUW
WHERE alg_gebouw_ordernr = ordernr),
'1', '',
', .....'
)
) gebouw,
jaar fclt_f_jaar, SUM (besteding_som) besteding
FROM (SELECT g.alg_gebouw_ordernr ordernr,
g.alg_gebouw_omschrijving gebouw_omschrijving,
TO_CHAR (m.mld_melding_datum, 'YYYY') jaar,
SUM
( o.mld_opdr_kosten
+ NVL
((SELECT Fac.safe_to_number
(mld_kenmerkopdr_waarde)
FROM MLD_KENMERKOPDR ko
WHERE mld_kenmerk_key = 2
AND mld_kenmerkopdr_verwijder IS NULL
AND o.mld_opdr_key = ko.mld_opdr_key),
0
)
) besteding_som
FROM MLD_MELDING m,
MLD_OPDR o,
ALG_GEBOUW g,
alg_v_onroerendgoed og,
nour_v_kostenplaats k
WHERE m.mld_melding_key = o.mld_melding_key
AND og.alg_onroerendgoed_keys = m.mld_alg_onroerendgoed_keys
AND og.alg_gebouw_key = g.alg_gebouw_key
AND o.prs_kostenplaats_key = k.prs_kostenplaats_key
AND k.prs_kostenplaats_module = 'ALG'
GROUP BY g.alg_gebouw_ordernr,
g.alg_gebouw_omschrijving,
TO_CHAR (m.mld_melding_datum, 'YYYY'))
GROUP BY ordernr, jaar
UNION ALL
SELECT ordernr fclt_f_ordernr,
MIN
( terein_omschrijving
|| DECODE ((SELECT COUNT (alg_terreinsector_omschrijving)
FROM ALG_TERREINSECTOR
WHERE alg_terreinsector_ordernr = ordernr),
'1', '',
', .....'
)
) terrein,
jaar fclt_f_jaar, SUM (besteding_som) besteding
FROM (SELECT g.alg_terreinsector_ordernr ordernr,
g.alg_terreinsector_omschrijving terein_omschrijving,
TO_CHAR (m.mld_melding_datum, 'YYYY') jaar,
SUM
( o.mld_opdr_kosten
+ NVL
((SELECT Fac.safe_to_number
(mld_kenmerkopdr_waarde)
FROM MLD_KENMERKOPDR ko
WHERE mld_kenmerk_key = 2
AND mld_kenmerkopdr_verwijder IS NULL
AND o.mld_opdr_key = ko.mld_opdr_key),
0
)
) besteding_som
FROM MLD_MELDING m,
MLD_OPDR o,
ALG_TERREINSECTOR g,
alg_v_onroerendgoed og,
nour_v_kostenplaats k
WHERE m.mld_melding_key = o.mld_melding_key
AND og.alg_onroerendgoed_keys = m.mld_alg_onroerendgoed_keys
AND og.alg_terreinsector_key = g.alg_terreinsector_key
AND o.prs_kostenplaats_key = k.prs_kostenplaats_key
AND k.prs_kostenplaats_module = 'ALG'
GROUP BY g.alg_terreinsector_ordernr,
g.alg_terreinsector_omschrijving,
TO_CHAR (m.mld_melding_datum, 'YYYY'))
GROUP BY ordernr, jaar;
--------------------------------------------------------------------------------------------------
------------------------------- GRAPHICS THEMA'S -------------------------------------------------
--------------------------------------------------------------------------------------------------
CREATE OR REPLACE VIEW nour_v_ruimtecode
(ALG_RUIMTE_KEY, RUIMTECODE)
AS
SELECT r.alg_ruimte_key, v.alg_verdieping_code || '.' || SUBSTR(r.alg_ruimte_nr,2) ruimtecode
FROM alg_ruimte r, alg_verdieping v
WHERE r.alg_verdieping_key = v.alg_verdieping_key
AND r.alg_ruimte_nr LIKE '0%'
UNION
SELECT r.alg_ruimte_key, v.alg_verdieping_code || '.' || r.alg_ruimte_nr
FROM alg_ruimte r, alg_verdieping v
WHERE r.alg_verdieping_key = v.alg_verdieping_key
AND r.alg_ruimte_nr NOT LIKE '0%';
CREATE OR REPLACE VIEW cad_v_alg_ruimte
(ALG_RUIMTE_KEY, ALG_VERDIEPING_KEY, ALG_RUIMTE_CADLABEL, ALG_RUIMTE_NR, ALG_RUIMTE_OMSCHRIJVING,
ALG_RUIMTE_OPPERVLAKTE, ALG_SRTRUIMTE_OMSCHRIJVING, NOUR_RUIMTECODE)
AS
SELECT r.alg_ruimte_key, r.alg_verdieping_key, r.alg_ruimte_nr,
r.alg_ruimte_nr, r.alg_ruimte_omschrijving,
TO_CHAR (alg_ruimte_bruto_vloeropp) || ' m2',
sr.alg_srtruimte_omschrijving, ar.ruimtecode
FROM alg_v_aanwezigruimte r, alg_srtruimte sr, nour_v_ruimtecode ar
WHERE sr.alg_srtruimte_key(+) = r.alg_srtruimte_key
AND r.alg_ruimte_key = ar.alg_ruimte_key;
--- voor room_dep thema
CREATE OR REPLACE VIEW nour_v_cad_ruimte_eenheid (parentkey, code, waarde)
AS
SELECT r.alg_verdieping_key, r.alg_ruimte_nr, 'NIETVERH'
FROM prs_perslidwerkplek pw,
prs_werkplek w,
prs_afdeling a,
prs_afdeling e,
prs_perslid p,
alg_ruimte r
WHERE a.prs_afdeling_parentkey = e.prs_afdeling_key
AND w.prs_alg_ruimte_key = r.alg_ruimte_key
AND e.prs_afdeling_parentkey IS NULL
AND pw.prs_werkplek_key = w.prs_werkplek_key
AND a.prs_afdeling_verwijder IS NULL
AND a.prs_afdeling_naam = 'NIET VERH'
AND p.prs_perslid_verwijder IS NULL
AND pw.prs_perslid_key = p.prs_perslid_key
AND p.prs_afdeling_key = a.prs_afdeling_key
GROUP BY r.alg_verdieping_key, r.alg_ruimte_nr
UNION
SELECT r.alg_verdieping_key, r.alg_ruimte_nr, MAX (e.prs_afdeling_naam)
FROM prs_perslidwerkplek pw,
prs_werkplek w,
prs_afdeling a,
prs_afdeling e,
prs_perslid p,
alg_ruimte r
WHERE a.prs_afdeling_parentkey = e.prs_afdeling_key
AND w.prs_alg_ruimte_key = r.alg_ruimte_key
AND e.prs_afdeling_parentkey IS NULL
AND pw.prs_werkplek_key = w.prs_werkplek_key
AND a.prs_afdeling_verwijder IS NULL
AND a.prs_afdeling_naam <> 'NIET VERH'
AND p.prs_perslid_verwijder IS NULL
AND pw.prs_perslid_key = p.prs_perslid_key
AND p.prs_afdeling_key = a.prs_afdeling_key
GROUP BY r.alg_verdieping_key, r.alg_ruimte_nr;
CREATE OR REPLACE VIEW NOUR_RUIMTE_GASFLES
(
ALG_RUIMTE_KEY,
AANTAL_GASFLESSEN
)
AS
SELECT r.alg_ruimte_key "ALG_RUIMTE_KEY",
SUM (DECODE (d.ins_srtdeel_key, 425, 1, 0))
FROM alg_v_aanwezigruimte r, ins_v_aanwezigdeel d
WHERE r.alg_ruimte_key = d.ins_alg_ruimte_key
-- and d.ins_srtdeel_key = 425
GROUP BY alg_ruimte_key;
--- voor room_cyl thema
CREATE OR REPLACE VIEW nour_v_cad_ruimte_gasfles (ALG_RUIMTE_KEY, WAARDE)
AS
SELECT r.alg_ruimte_key, COUNT (d.ins_deel_key)
FROM alg_v_aanwezigruimte r, ins_v_aanwezigdeel d
WHERE r.alg_ruimte_key = d.ins_alg_ruimte_key AND d.ins_srtdeel_key = 425
GROUP BY r.alg_ruimte_key;
CREATE OR REPLACE VIEW nour_v_cad_ruimte_bezetting
(
ALG_RUIMTE_KEY,
WAARDE
)
AS
SELECT ar.alg_ruimte_key,
-- bepaal bezetting: wel/niet verhuurd, alle/een paar/geen werkplekken vrij
TO_CHAR(DECODE (
SUM (bezetting) / (COUNT (prs_werkplek_key) * 100),
0,
-- 150 = geen afdeling toegewezen, dus niet verhuurd
-- 0 = wel een afdeling, maar alle werkplekken vrij
DECODE ( ( SELECT COUNT (prs_afdeling_key)
FROM prs_v_aanwezigruimteafdeling ara
WHERE ara.alg_ruimte_key = ar.alg_ruimte_key
GROUP BY alg_ruimte_key),
NULL, 150,
0, 150,
0),
-- alles tussen 0 en 100 wordt 50 ('deels bezet')
nour.nour_f_cad_ruimte_bezetting (
SUM (bezetting) / (COUNT (prs_werkplek_key)))))
FROM ( SELECT awp.prs_alg_ruimte_key alg_ruimte_key,
awp.prs_werkplek_key,
SUM (COALESCE (prs_perslidwerkplek_bezetting, 0)) bezetting,
a2.prs_afdeling_key
FROM alg_v_aanwezigruimte ar,
prs_werkplek awp,
prs_perslidwerkplek apwp,
prs_v_aanwezigperslid ap,
prs_afdeling a1,
prs_afdeling a2,
prs_v_aanwezigruimteafdeling ara
WHERE awp.prs_alg_ruimte_key = ar.alg_ruimte_key
AND apwp.prs_werkplek_key(+) = awp.prs_werkplek_key
AND ap.prs_perslid_key(+) = apwp.prs_perslid_key
AND a1.prs_afdeling_key(+) = ap.prs_afdeling_key
AND ara.alg_ruimte_key(+) = ar.alg_ruimte_key
AND a2.prs_afdeling_key(+) = ara.prs_afdeling_key
GROUP BY prs_alg_ruimte_key,
awp.prs_werkplek_key,
a2.prs_afdeling_key) x,
alg_v_aanwezigruimte ar
WHERE ar.alg_ruimte_key = x.alg_ruimte_key
GROUP BY ar.alg_ruimte_key;
CREATE OR REPLACE VIEW nour_v_thema_ruimteafd
(
ALG_RUIMTE_KEY,
WAARDE,
WAARDE_KEY
)
AS
SELECT x.alg_ruimte_key,
DECODE (y.aantal,
NULL, '[Leegstand]',
1, SUBSTR (y.sp, 1, 60),
'[Meerdere afdelingen]'),
DECODE (y.aantal, NULL, -1, 1, y.sp_key, NULL)
FROM (SELECT r.alg_ruimte_key
FROM alg_v_aanwezigruimte r,
alg_v_aanwezigsrtruimte sr
WHERE r.alg_srtruimte_key = sr.alg_srtruimte_key
AND sr.prs_verhuurbaar IS NOT NULL
AND sr.alg_srtruimte_upper NOT LIKE '%VERKEER%') x
LEFT JOIN
( SELECT ra.alg_ruimte_key,
MIN (a.prs_afdeling_naam1) sp,
MIN (a.prs_afdeling_key) sp_key,
COUNT (ra.prs_afdeling_key) aantal
FROM prs_v_aanwezigruimteafdeling ra,
prs_v_aanwezigafdeling a
WHERE ra.prs_afdeling_key = a.prs_afdeling_key
GROUP BY ra.alg_ruimte_key) y
ON x.alg_ruimte_key = y.alg_ruimte_key
UNION ALL
SELECT NULL, SUBSTR (a.prs_afdeling_naam1, 1, 60), a.prs_afdeling_key
FROM prs_v_aanwezigafdeling a
WHERE NOT EXISTS (SELECT ra.prs_afdeling_key
FROM prs_v_aanwezigruimteafdeling ra
WHERE ra.prs_afdeling_key = a.prs_afdeling_key);
--- voor room_cov thema
CREATE OR REPLACE VIEW nour_v_cad_ruimte_vloersoort (ALG_RUIMTE_KEY, WAARDE)
AS
SELECT r.alg_ruimte_nr, COUNT (d.ins_deel_key)
FROM alg_v_aanwezigruimte r, ins_v_aanwezigdeel d
WHERE r.alg_ruimte_key = d.ins_alg_ruimte_key AND d.ins_srtdeel_key = 425
GROUP BY r.alg_ruimte_nr;
-- AKZA#13268 Reserverings Plattegrond
-- dd. 18-10-2007 tonen we alles wat het komende uur komt of wat bezig is.
CREATE OR REPLACE VIEW nour_v_cad_thema_reservering
(ALG_RUIMTE_KEY, WAARDE)
AS
SELECT rar.alg_ruimte_key alg_ruimte_key, '1' waarde
FROM res_v_aanwezigrsv_ruimte rrr,
res_ruimte_opstelling rro,
res_ruimte rr,
res_alg_ruimte rar,
res_opstelling ro
WHERE rrr.res_ruimte_opstel_key = rro.res_ruimte_opstel_key
AND rro.res_ruimte_key = rr.res_ruimte_key
AND rro.res_opstelling_key = ro.res_opstelling_key
AND rar.res_ruimte_key = rr.res_ruimte_key
AND SYSDATE BETWEEN res_rsv_ruimte_van - (1 / 24) AND res_rsv_ruimte_tot;
-- dd. 18-10-2007 tonen we alles wat het komende uur komt of wat bezig is.
-- Let op: bij eventuele overlap pakken we de laatste van de twee (de aanstaande)
-- toevallig redden we eenvoudig dat door de strak gedefinieerde tekst
CREATE OR REPLACE VIEW nour_v_cad_ruimte_reservering
(ALG_RUIMTE_KEY, WAARDE)
AS
SELECT rar.alg_ruimte_key,
MAX ( res_ruimte_nr
|| '~'
|| TO_CHAR (res_rsv_ruimte_van, 'HH24:MI')
|| '-'
|| TO_CHAR (res_rsv_ruimte_tot, 'HH24:MI')
|| '~[s60]host: '
|| prs_perslid_naam
|| '~[s80][b]'
|| res_rsv_ruimte_omschrijving
) waarde
FROM res_v_aanwezigrsv_ruimte rrr,
res_ruimte_opstelling rro,
res_ruimte rr,
res_alg_ruimte rar,
res_opstelling ro,
prs_perslid pp
WHERE rrr.res_ruimte_opstel_key = rro.res_ruimte_opstel_key
AND rro.res_ruimte_key = rr.res_ruimte_key
AND rro.res_opstelling_key = ro.res_opstelling_key
AND rar.res_ruimte_key = rr.res_ruimte_key
AND SYSDATE BETWEEN res_rsv_ruimte_van - (1 / 24) AND res_rsv_ruimte_tot
AND pp.prs_perslid_key = res_rsv_ruimte_host_key
GROUP BY rar.alg_ruimte_key;
-- AKZA#22941: Schoonmaak(nivo) in Graphics
CREATE OR REPLACE VIEW nour_v_thema_schnivo
(
alg_ruimte_key,
waarde,
waarde_key
)
AS
SELECT a.alg_ruimte_key,
COALESCE (b.schnivo, '[Onbekend]'),
COALESCE (b.schnivo_key, -1)
FROM (SELECT r.alg_ruimte_key
FROM alg_v_aanwezigruimte r
WHERE alg_srtruimte_key != 961) a -- 'Fictieve ruimte'
LEFT JOIN
(SELECT ok.alg_onrgoed_key,
ud.fac_usrdata_omschr schnivo,
ud.fac_usrdata_key schnivo_key
FROM alg_onrgoedkenmerk ok, fac_usrdata ud
WHERE ok.alg_kenmerk_key = 1001 -- schoonmaakniveau
AND ok.alg_onrgoed_niveau = 'R'
AND ok.alg_onrgoedkenmerk_verwijder IS NULL
AND ok.alg_onrgoedkenmerk_waarde = TO_CHAR(ud.fac_usrdata_key) ) b
ON a.alg_ruimte_key = b.alg_onrgoed_key
UNION ALL
SELECT NULL,
ud.fac_usrdata_omschr schnivo,
ud.fac_usrdata_key schnivo_key
FROM fac_usrdata ud
WHERE ud.fac_usrtab_key = 470
AND NOT EXISTS
(SELECT 1
FROM alg_onrgoedkenmerk ok
WHERE ok.alg_kenmerk_key = 1001 -- schoonmaakniveau
AND ok.alg_onrgoedkenmerk_waarde = ud.fac_usrdata_key);
CREATE OR REPLACE TRIGGER nour_t_thema_schnivo_i_iu
INSTEAD OF INSERT OR UPDATE
ON nour_v_thema_schnivo
BEGIN
IF UPDATING -- oude hard weggooien; dus DELETE (lekker opruimen)!
THEN
DELETE alg_onrgoedkenmerk
WHERE alg_onrgoed_key = :new.alg_ruimte_key
AND alg_onrgoed_niveau = 'R'
AND alg_kenmerk_key = 1001; -- schoonmaakniveau
END IF;
BEGIN
IF :new.waarde_key != -1
THEN
INSERT INTO alg_onrgoedkenmerk (alg_onrgoed_key,
alg_onrgoed_niveau,
alg_kenmerk_key,
alg_onrgoedkenmerk_waarde)
VALUES (:new.alg_ruimte_key,
'R',
1001, -- schoonmaakniveau
:new.waarde_key);
END IF;
EXCEPTION
WHEN DUP_VAL_ON_INDEX -- was al aanwezig
THEN
NULL;
END;
END;
/
--------------------------------------------------------------------------------------------------
------------------------------- SERVICEDESK RAPPORTAGE FUNCTIES ----------------------------------
--------------------------------------------------------------------------------------------------
-- 001 Uitgegeven aan uitvoerende: Servicedesk.
CREATE OR REPLACE VIEW nour_v_rap_uitg_servicedesk
(
fclt_f_uitvoerende,
fclt_f_mldnr,
omschrijving,
fclt_f_meldernaam,
begindatum,
dagen,
afmelddatum
)
AS
SELECT prs_bedrijf_naam fclt_f_uitvoerende,
TO_CHAR (m.mld_melding_key) fclt_f_mldnr,
o.mld_opdr_omschrijving omschrijving,
pf.prs_perslid_naam_full fclt_f_meldernaam,
TO_CHAR (o.mld_opdr_datumbegin, 'DD-MM-YYYY') begindatum,
TO_CHAR (fac.count_Work_Days(o.mld_opdr_datumbegin, o.mld_opdr_einddatum)) dagen,
TO_CHAR (fac.gettrackingdate ('MLDAFM', m.mld_melding_key), 'DD-MM-YYYY') afmelddatum
FROM mld_opdr o, prs_bedrijf b, mld_melding m, prs_v_perslid_fullnames_all pf
WHERE o.mld_uitvoerende_keys = b.prs_bedrijf_key
AND o.mld_melding_key = m.mld_melding_key
AND pf.prs_perslid_key = m.prs_perslid_key
AND (b.prs_bedrijf_key IN (7665, 7651, 7648))
AND o.mld_statusopdr_key = 5;
-- 002 Uitgegeven aan uitvoerenden: Schoonmaak.
CREATE OR REPLACE VIEW nour_v_rap_uitg_schoonmaak
(
fclt_f_uitvoerende,
fclt_f_mldnr,
omschrijving,
fclt_f_meldernaam,
begindatum,
dagen,
afmelddatum
)
AS
SELECT prs_bedrijf_naam fclt_f_uitvoerende,
TO_CHAR (m.mld_melding_key) fclt_f_mldnr,
o.mld_opdr_omschrijving omschrijving,
pf.prs_perslid_naam_full fclt_f_meldernaam,
TO_CHAR (o.mld_opdr_datumbegin, 'DD-MM-YYYY') begindatum,
TO_CHAR (fac.count_Work_Days(o.mld_opdr_datumbegin, o.mld_opdr_einddatum)) dagen,
TO_CHAR (fac.gettrackingdate ('MLDAFM', m.mld_melding_key), 'DD-MM-YYYY') afmelddatum
FROM mld_opdr o, prs_bedrijf b, mld_melding m, prs_v_perslid_fullnames_all pf
WHERE o.mld_uitvoerende_keys = b.prs_bedrijf_key
AND o.mld_melding_key = m.mld_melding_key
AND pf.prs_perslid_key = m.prs_perslid_key
AND o.mld_statusopdr_key = 5
AND (b.prs_bedrijf_key IN (7622, 8062));
-- 003 Uitgegeven aan uitvoerenden: Verhuizen and Kantoorbeheer.
CREATE OR REPLACE VIEW nour_v_rap_uitg_kantoorbeheer
(
fclt_f_uitvoerende,
fclt_f_mldnr,
omschrijving,
fclt_f_meldernaam,
begindatum,
dagen,
afmelddatum
)
AS
SELECT prs_bedrijf_naam fclt_f_uitvoerende,
TO_CHAR (m.mld_melding_key) fclt_f_mldnr,
o.mld_opdr_omschrijving omschrijving,
pf.prs_perslid_naam_full fclt_f_meldernaam,
TO_CHAR (o.mld_opdr_datumbegin, 'DD-MM-YYYY') begindatum,
TO_CHAR (fac.count_Work_Days(o.mld_opdr_datumbegin, o.mld_opdr_einddatum)) dagen,
TO_CHAR (fac.gettrackingdate ('MLDAFM', m.mld_melding_key), 'DD-MM-YYYY') afmelddatum
FROM mld_opdr o, prs_bedrijf b, mld_melding m, prs_v_perslid_fullnames_all pf
WHERE o.mld_uitvoerende_keys = b.prs_bedrijf_key
AND o.mld_melding_key = m.mld_melding_key
AND pf.prs_perslid_key = m.prs_perslid_key
AND b.prs_bedrijf_key IN (7643, 7644, 7646, 7654, 7662)
AND o.mld_statusopdr_key = 5;
-- 004 Uitgegeven aan ALF Elektro uitvoerenden.
CREATE OR REPLACE VIEW nour_v_rap_uitg_electro_alf
(
fclt_f_uitvoerende,
fclt_f_mldnr,
omschrijving,
fclt_f_meldernaam,
begindatum,
dagen,
afmelddatum
)
AS
SELECT prs_bedrijf_naam fclt_f_uitvoerende,
TO_CHAR (m.mld_melding_key) fclt_f_mldnr,
o.mld_opdr_omschrijving omschrijving,
pf.prs_perslid_naam_full fclt_f_meldernaam,
TO_CHAR (o.mld_opdr_datumbegin, 'DD-MM-YYYY') begindatum,
TO_CHAR (fac.count_Work_Days(o.mld_opdr_datumbegin, o.mld_opdr_einddatum)) dagen,
TO_CHAR (fac.gettrackingdate ('MLDAFM', m.mld_melding_key), 'DD-MM-YYYY') afmelddatum
FROM mld_opdr o, prs_bedrijf b, mld_melding m, prs_v_perslid_fullnames_all pf
WHERE o.mld_uitvoerende_keys = b.prs_bedrijf_key
AND o.mld_melding_key = m.mld_melding_key
AND pf.prs_perslid_key = m.prs_perslid_key
AND b.prs_bedrijf_key IN (7667, 7672, 7676, 7683, 7960, 12393)
AND o.mld_statusopdr_key = 5;
-- 005 Uitgegeven aan uitvoerenden: vakgroepbeheer Elektro.
CREATE OR REPLACE VIEW nour_v_rap_uitg_electro
(
fclt_f_mldnr,
begindatum,
dagen,
opdrachtomschrijving,
fclt_f_uitvoerende,
afmelddatum
)
AS
SELECT TO_CHAR (m.mld_melding_key) fclt_f_mldnr,
TO_CHAR (o.mld_opdr_datumbegin, 'DD-MM-YYYY') begindatum,
TO_CHAR (fac.count_Work_Days(o.mld_opdr_datumbegin, o.mld_opdr_einddatum)) dagen,
o.mld_opdr_omschrijving opdrachtomschrijving,
prs_bedrijf_naam fclt_f_uitvoerende,
TO_CHAR (fac.gettrackingdate ('MLDAFM', m.mld_melding_key), 'DD-MM-YYYY') afmelddatum
FROM mld_melding m, mld_opdr o, prs_bedrijf b, prs_v_perslid_fullnames_all pf
WHERE m.mld_melding_key = o.mld_melding_key
AND o.mld_uitvoerende_keys = b.prs_bedrijf_key
AND pf.prs_perslid_key = m.prs_perslid_key
AND (UPPER (pf.prs_perslid_naam_full) LIKE 'PELGRIM%')
AND o.mld_statusopdr_key = 5;
-- 006 Uitgegeven aan uitvoerenden: accountmanager "Terrein & Derden".
CREATE OR REPLACE VIEW nour_v_rap_uitg_accman_td
(
fclt_f_mldnr,
begindatum,
dagen,
opdrachtomschrijving,
fclt_f_order_nr,
fclt_f_uitvoerende,
afmelddatum
)
AS
SELECT TO_CHAR (m.mld_melding_key) fclt_f_mldnr,
TO_CHAR (o.mld_opdr_datumbegin, 'DD-MM-YYYY') begindatum,
TO_CHAR (fac.count_Work_Days(o.mld_opdr_datumbegin, o.mld_opdr_einddatum)) dagen,
o.mld_opdr_omschrijving opdrachtomschrijving,
o.mld_opdr_ordernr fclt_f_order_nr,
prs_bedrijf_naam fclt_f_uitvoerende,
TO_CHAR (fac.gettrackingdate ('MLDAFM', m.mld_melding_key), 'DD-MM-YYYY') afmelddatum
FROM mld_melding m, mld_opdr o, prs_bedrijf b, prs_v_perslid_fullnames_all pf
WHERE m.mld_melding_key = o.mld_melding_key
AND o.mld_uitvoerende_keys = b.prs_bedrijf_key
AND pf.prs_perslid_key = m.prs_perslid_key
AND (UPPER (pf.prs_perslid_naam_full) LIKE 'SWEERS%')
AND o.mld_statusopdr_key = 5
ORDER BY b.prs_bedrijf_naam;
-- 007 Uitgegeven aan uitvoerenden: accountmanager "AHQ".
CREATE OR REPLACE VIEW nour_v_rap_uitg_accman_ahq
AS
SELECT b.prs_bedrijf_naam hide_f_prs_bedrijf_naam,
TO_CHAR (o.mld_melding_key) fclt_f_meldnr,
TO_CHAR (o.mld_opdr_datumbegin, 'DD-MM-YYYY') opdr_datum,
TO_CHAR (fac.count_Work_Days(o.mld_opdr_datumbegin, o.mld_opdr_einddatum)) uitv_dgn, o.mld_opdr_omschrijving meldtekst,
g.alg_gebouw_naam gebouw, b.prs_bedrijf_naam fclt_f_uitvoerende,
g.alg_verdieping_omschrijving verdieping,
o.mld_opdr_ordernr fclt_f_int_ord_nr
FROM mld_melding m, mld_opdr o, prs_bedrijf b, alg_v_allonrgoed_gegevens g, prs_v_perslid_fullnames_all pf
WHERE m.mld_melding_key = o.mld_melding_key
AND o.mld_uitvoerende_keys = b.prs_bedrijf_key
AND m.mld_alg_onroerendgoed_keys = g.alg_onroerendgoed_keys
AND pf.prs_perslid_key = m.prs_perslid_key
AND (UPPER (pf.prs_perslid_naam_full) LIKE 'RUTJES J%')
AND o.mld_statusopdr_key = 5;
-- 008 Kosten op internal- of bewonersordernummer per periode.
CREATE OR REPLACE VIEW nour_v_rap_kosten_pp
(
fclt_f_ord_nr,
melddatum,
datumverw,
mldnr,
meldernaam,
uitvoerder,
meldtekst,
meldstatus,
kosten_k,
kosten
)
AS
SELECT o.mld_opdr_ordernr fclt_f_ord_nr,
o.mld_opdr_datumbegin melddatum,
fac.gettrackingdate ('MLDVER', m.mld_melding_key) datumverw,
TO_CHAR (o.mld_melding_key) mldnr,
pf.prs_perslid_naam_full meldernaam,
b.prs_bedrijf_naam uitvoerder,
o.mld_opdr_omschrijving meldtekst,
o.mld_statusopdr_key || '. ' || mld_statusopdr_omschrijving meldstatus,
m.mld_kosten_klant kosten_k,
o.mld_opdr_kosten
+ NVL (
(SELECT fac.safe_to_number (mld_kenmerkopdr_waarde)
FROM mld_kenmerkopdr ko
WHERE mld_kenmerk_key = 2
AND mld_kenmerkopdr_verwijder IS NULL
AND o.mld_opdr_key = ko.mld_opdr_key),
0
)
kosten
FROM mld_melding m, mld_opdr o, prs_bedrijf b, mld_statusopdr so, prs_v_perslid_fullnames_all pf
WHERE m.mld_melding_key = o.mld_melding_key
AND o.mld_uitvoerende_keys = b.prs_bedrijf_key
AND so.mld_statusopdr_key = o.mld_statusopdr_key
AND m.mld_melding_status <> 6
AND pf.prs_perslid_key = m.prs_perslid_key
AND o.mld_statusopdr_key = 6
AND o.mld_opdr_kosten
+ (SELECT NVL (fac.safe_to_number (mld_kenmerkopdr_waarde), 0)
FROM mld_kenmerkopdr ko
WHERE mld_kenmerk_key = 2
AND mld_kenmerkopdr_verwijder IS NULL
AND o.mld_opdr_key = ko.mld_opdr_key) > 0
AND o.mld_opdr_ordernr IS NOT NULL
AND (o.mld_opdr_ordernr LIKE 'B-%' OR o.mld_opdr_ordernr LIKE 'I-%' OR o.mld_opdr_ordernr LIKE 'O-%')
UNION ALL -- ALL want anders worden dubbelen er uit gehaald
SELECT o.mld_opdr_ordernr fclt_f_ord_nr,
o.mld_opdr_datumbegin melddatum,
fac.gettrackingdate ('MLDVER', m.mld_melding_key) datumverw,
TO_CHAR (o.mld_melding_key) mldnr,
pf.prs_perslid_naam_full meldernaam,
b.prs_bedrijf_naam uitvoerder,
o.mld_opdr_omschrijving meldtekst,
o.mld_statusopdr_key || '. ' || mld_statusopdr_omschrijving meldstatus,
m.mld_kosten_klant kosten_k,
o.mld_opdr_kosten
+ NVL (
(SELECT fac.safe_to_number (mld_kenmerkopdr_waarde)
FROM mld_kenmerkopdr ko
WHERE mld_kenmerk_key = 2
AND mld_kenmerkopdr_verwijder IS NULL
AND o.mld_opdr_key = ko.mld_opdr_key),
0
)
kosten
FROM mld_melding m, mld_opdr o, prs_bedrijf b, mld_statusopdr so, prs_v_perslid_fullnames_all pf
WHERE m.mld_melding_key = o.mld_melding_key
AND o.mld_uitvoerende_keys = b.prs_bedrijf_key
AND so.mld_statusopdr_key = o.mld_statusopdr_key
AND pf.prs_perslid_key = m.prs_perslid_key
AND TO_CHAR (fac.gettrackingdate ('MLDVER', m.mld_melding_key), 'YYYY') > '2001'
AND o.mld_statusopdr_key = 7
AND o.mld_opdr_kosten
+ (SELECT NVL (fac.safe_to_number (mld_kenmerkopdr_waarde), 0)
FROM mld_kenmerkopdr ko
WHERE mld_kenmerk_key = 2
AND mld_kenmerkopdr_verwijder IS NULL
AND o.mld_opdr_key = ko.mld_opdr_key) > 0
AND o.mld_opdr_ordernr IS NOT NULL
AND (o.mld_opdr_ordernr LIKE 'B-%' OR o.mld_opdr_ordernr LIKE 'I-%' OR o.mld_opdr_ordernr LIKE 'O-%');
CREATE OR REPLACE VIEW nour_v_rap_uitg
(
fclt_f_uitvoerende,
fclt_f_mldnr,
omschrijving,
fclt_f_meldernaam,
begindatum,
dagen,
afmelddatum
)
AS
SELECT prs_bedrijf_naam fclt_f_uitvoerende,
TO_CHAR (m.mld_melding_key) fclt_f_mldnr,
o.mld_opdr_omschrijving omschrijving,
pf.prs_perslid_naam_full fclt_f_meldernaam,
o.mld_opdr_datumbegin begindatum,
TO_CHAR (fac.count_Work_Days(o.mld_opdr_datumbegin, o.mld_opdr_einddatum)) dagen,
fac.gettrackingdate ('MLDAFM', m.mld_melding_key) afmelddatum
FROM mld_opdr o, prs_bedrijf b, mld_melding m, prs_v_perslid_fullnames_all pf
WHERE o.mld_uitvoerende_keys = b.prs_bedrijf_key
AND o.mld_melding_key = m.mld_melding_key
AND pf.prs_perslid_key = m.prs_perslid_key
AND o.mld_statusopdr_key = 5;
-- 010 Uitgegeven aan uitvoerenden: vakgroepbeheer Werktuigbouw
--aka Toms view
CREATE OR REPLACE VIEW nour_v_rap_uitg_wtb
(
fclt_f_uitvoerende,
fclt_f_mldnr,
melding_opdracht_omschrijving,
datum_opdr,
dagen,
afgemeld,
fclt_f_meldernaam
)
AS
SELECT prs_bedrijf.prs_bedrijf_naam,
TO_CHAR (mld_opdr.mld_melding_key),
mld_opdr.mld_opdr_omschrijving,
TO_CHAR (mld_opdr.mld_opdr_datumbegin, 'DD-MM-YYYY') mld_opdr_datumbegin,
TO_CHAR (fac.count_Work_Days(mld_opdr.mld_opdr_datumbegin, mld_opdr.mld_opdr_einddatum)),
TO_CHAR (fac.gettrackingdate ('MLDAFM', m.mld_melding_key), 'DD-MM-YYYY') mld_melding_afgemeld,
pf.prs_perslid_naam_full
FROM mld_opdr, prs_bedrijf, mld_melding m, prs_v_perslid_fullnames_all pf
WHERE mld_opdr.mld_uitvoerende_keys = prs_bedrijf.prs_bedrijf_key
AND mld_opdr.mld_melding_key = m.mld_melding_key
AND pf.prs_perslid_key = m.prs_perslid_key
AND mld_opdr.mld_statusopdr_key = 5
AND ( prs_bedrijf.prs_bedrijf_key = 7657
OR prs_bedrijf.prs_bedrijf_key = 8143
OR prs_bedrijf.prs_bedrijf_key = 8144);
-- AKZA#22617: afgemelde meldingen en opdrachten, met kosten.
-- key 18 = MLDAFM, key 26 = ORDAFM
CREATE OR REPLACE VIEW nour_v_rap_afmelders_kosten
AS
SELECT m.mld_melding_key||'/'||o.mld_opdr_bedrijfopdr_volgnr hide_f_srt
,vg.ins_discipline_key fclt_3d_discipline_key
,m.mld_alg_locatie_key fclt_3d_locatie_key
,TO_CHAR(m.mld_melding_key) meldingnr
,vg.ins_discipline_omschrijving fclt_f_vakgroep
,sm.mld_stdmelding_omschrijving melding
,TO_CHAR(ft.fac_tracking_datum, 'DD-MM-YYYY') fclt_d_afgemeld
,pf.prs_perslid_naam_full door
,CASE
WHEN o.mld_opdr_key IS NULL THEN NULL
ELSE m.mld_melding_key||'/'||o.mld_opdr_bedrijfopdr_volgnr
END
opdracht
,so.mld_statusopdr_omschrijving opdrachtstatus
,(SELECT pf.prs_perslid_naam_full
FROM fac_tracking ft
,prs_v_perslid_fullnames pf
WHERE ft.fac_srtnotificatie_key = 26
AND ft.fac_tracking_refkey = o.mld_opdr_key
AND pf.prs_perslid_key = ft.prs_perslid_key)
afmelder
,o.mld_opdr_kosten kosten
FROM fac_tracking ft
,mld_melding m
,mld_stdmelding sm
,mld_discipline vg
,mld_opdr o
,mld_statusopdr so
,prs_v_perslid_fullnames pf
WHERE ft.fac_srtnotificatie_key = 18
AND pf.prs_perslid_key = ft.prs_perslid_key
AND m.mld_melding_key = ft.fac_tracking_refkey
AND sm.mld_stdmelding_key = m.mld_stdmelding_key
AND vg.ins_discipline_key = sm.mld_ins_discipline_key
AND o.mld_melding_key(+) = m.mld_melding_key
AND so.mld_statusopdr_key(+) = o.mld_statusopdr_key;
--------------------------------------------------------------------------------------------------
------------------------------- OUTLETBEHEER -----------------------------------------------------
--------------------------------------------------------------------------------------------------
-- AKZA#22294: Voor indienstredingsworkflows
-- 646: Outlet
CREATE OR REPLACE VIEW nour_v_outlets
AS
SELECT ins_deel_key, ins_deel_omschrijving
FROM ins_deel
WHERE ins_srtdeel_key = 646
AND ins_deel_verwijder IS NULL
AND ins_deel_parent_key IS NOT NULL;
-- views for report INS039
CREATE OR REPLACE VIEW nour_v_outlet_prijs
(INS_DEEL_KEY, INS_DEEL_OMSCHRIJVING, INS_DEEL_UPPER, ALG_PLAATSAANDUIDING,
AANSLUITTYPE_PRIJS, NETWERK_PRIJS, OPTIE2_PRIJS, OPTIE3_PRIJS, OPTIE4_PRIJS, KAMERHUB_PRIJS,
TOTAALPRIJS, AANSLUITTYPE)
AS
SELECT od.ins_deel_key,
od.ins_deel_omschrijving,
od.ins_deel_upper,
(SELECT alg_l.alg_locatie_code
|| '-'
|| alg_g.alg_gebouw_code
|| '-'
|| alg_v.alg_verdieping_code
|| '-'
|| alg_r.alg_ruimte_nr
FROM alg_ruimte alg_r,
alg_verdieping alg_v,
alg_gebouw alg_g,
alg_locatie alg_l
WHERE alg_r.alg_verdieping_key = alg_v.alg_verdieping_key
AND alg_v.alg_gebouw_key = alg_g.alg_gebouw_key
AND alg_g.alg_locatie_key = alg_l.alg_locatie_key
AND alg_r.alg_ruimte_key = od.ins_alg_ruimte_key) alg_plaatsaanduiding,
NVL(fuda.fac_usrdata_prijs, 0) aansluittype_prijs,
NVL(fudn.fac_usrdata_prijs, 0) netwerk_prijs,
NVL(fudo2.fac_usrdata_prijs, 0) optie2_prijs,
NVL(fudo3.fac_usrdata_prijs, 0) optie3_prijs,
NVL(fudo4.fac_usrdata_prijs, 0) optie4_prijs,
NVL(fudk.fac_usrdata_prijs, 0) kamerhub_prijs,
(NVL(fuda.fac_usrdata_prijs, 0)
+ NVL(fudn.fac_usrdata_prijs, 0)
+ NVL(fudk.fac_usrdata_prijs, 0)
+ NVL(fudo2.fac_usrdata_prijs, 0)
+ NVL(fudo3.fac_usrdata_prijs, 0)
+ NVL(fudo4.fac_usrdata_prijs, 0)) totaalprijs,
fuda.fac_usrdata_omschr aansluittype
FROM ins_v_aanwezigkenmerkdeel kd,
ins_v_aanwezigkenmerkdeel ka,
ins_v_aanwezigkenmerkdeel kn,
ins_v_aanwezigkenmerkdeel kk,
ins_v_aanwezigkenmerkdeel ko2,
ins_v_aanwezigkenmerkdeel ko3,
ins_v_aanwezigkenmerkdeel ko4,
fac_usrdata fuda,
fac_usrdata fudn,
fac_usrdata fudk,
fac_usrdata fudo2,
fac_usrdata fudo3,
fac_usrdata fudo4,
ins_deel od
WHERE od.ins_deel_key = kd.ins_deel_key
AND od.ins_deel_key = ka.ins_deel_key(+)
AND od.ins_deel_key = kn.ins_deel_key(+)
AND od.ins_deel_key = kk.ins_deel_key(+)
AND od.ins_deel_key = ko2.ins_deel_key(+)
AND od.ins_deel_key = ko3.ins_deel_key(+)
AND od.ins_deel_key = ko4.ins_deel_key(+)
AND od.ins_deel_verwijder IS NULL
AND kd.ins_kenmerkdeel_waarde = TO_CHAR (181) -- doorbelasten_key is ja
AND kd.ins_kenmerk_key = 51 -- doorbelasten
AND ka.ins_kenmerk_key(+) = 48 -- type aansluiting
AND kn.ins_kenmerk_key(+) = 53 -- netwerk
AND kk.ins_kenmerk_key(+) = 54 -- KamerHUB
AND ko2.ins_kenmerk_key(+) = 55 -- optie2
AND ko3.ins_kenmerk_key(+) = 56 -- optie3
AND ko4.ins_kenmerk_key(+) = 57 -- optie4
AND ka.ins_kenmerkdeel_waarde = TO_CHAR(fuda.fac_usrdata_key(+))
AND kn.ins_kenmerkdeel_waarde = TO_CHAR(fudn.fac_usrdata_key(+))
AND kk.ins_kenmerkdeel_waarde = TO_CHAR(fudk.fac_usrdata_key(+))
AND ko2.ins_kenmerkdeel_waarde = TO_CHAR(fudo2.fac_usrdata_key(+))
AND ko3.ins_kenmerkdeel_waarde = TO_CHAR(fudo3.fac_usrdata_key(+))
AND ko4.ins_kenmerkdeel_waarde = TO_CHAR(fudo4.fac_usrdata_key(+))
AND od.ins_srtdeel_key = 646 --'OUTLET'
ORDER BY 1;
CREATE OR REPLACE VIEW nour_v_outlet_kostpl
(INS_DEEL_KEY, INS_DEEL_OMSCHRIJVING, KOSTENPLAATS)
AS
SELECT ins_deel_key, ins_deel_omschrijving,
NVL (rkostenplaats, skostenplaats) kostenplaats
FROM (SELECT od.ins_deel_key, od.ins_deel_omschrijving,
(select k.prs_kostenplaats_nr from nour_v_kostenplaats k where k.prs_kostenplaats_key = pa.prs_kostenplaats_key) skostenplaats,
NULL rkostenplaats, 1 speciaal
FROM ins_deel od, prs_afdeling pa, ins_v_aanwezigkenmerkdeel ik
WHERE pa.prs_afdeling_key =
fac.safe_to_number (ik.ins_kenmerkdeel_waarde)
AND ik.ins_kenmerk_key = 47
AND ik.ins_deel_key = od.ins_deel_key
AND od.ins_deel_parent_key IS NOT NULL
AND od.ins_deel_verwijder IS NULL
AND od.ins_srtdeel_key = 646 --'OUTLET'
UNION
SELECT od.ins_deel_key, od.ins_deel_omschrijving,
NULL skostenplaats,
(select k.prs_kostenplaats_nr from nour_v_kostenplaats k where k.prs_kostenplaats_key = pa.prs_kostenplaats_key) rkostenplaats, 0 speciaal
FROM ins_deel od, prs_afdeling pa, prs_v_werkplekafdeling_geg wa
WHERE pa.prs_afdeling_key = wa.prs_afdeling_key
AND wa.alg_ruimte_key = od.ins_alg_ruimte_key
AND od.ins_alg_ruimte_type IN ('R', 'W')
AND od.ins_deel_parent_key IS NOT NULL
AND od.ins_deel_verwijder IS NULL
AND od.ins_srtdeel_key = 646 --'OUTLET'
AND od.ins_deel_key NOT IN (
SELECT od.ins_deel_key
FROM ins_deel od,
prs_afdeling pa,
ins_v_aanwezigkenmerkdeel ik
WHERE pa.prs_afdeling_key =
fac.safe_to_number (ik.ins_kenmerkdeel_waarde)
AND ik.ins_kenmerk_key = 47
AND ik.ins_deel_key = od.ins_deel_key
AND od.ins_deel_parent_key IS NOT NULL
AND od.ins_deel_verwijder IS NULL
AND od.ins_srtdeel_key = 646) --'OUTLET'
)
ORDER BY 1;
CREATE OR REPLACE VIEW nour_v_outlet_prijs_kostpl
(FCLT_F_KOSTENPLAATS, AANTAL, AANSLUITTYPE, TOTAALPRIJS)
AS
SELECT ok.kostenplaats,
COUNT(*) aantal,
op.aansluittype,
SUM(op.totaalprijs)
FROM nour_v_outlet_prijs op,
nour_v_outlet_kostpl ok
WHERE op.ins_deel_key = ok.ins_deel_key
GROUP BY ok.kostenplaats, op.aansluittype;
-- views for report INS040
CREATE OR REPLACE VIEW nour_v_wallplate_plaats_kenm
(INS_DEEL_KEY, INS_DEEL_OMSCHRIJVING, MODULE, POORT, NETWERK,
ALG_PLAATSAANDUIDING, OUTLETTYPE, OPMERKING, ALG_GEBOUW_KEY, ALG_GEBOUW_OMSCHRIJVING,
ALG_VERDIEPING_KEY, ALG_VERDIEPING_OMSCHRIJVING, ALG_RUIMTE_KEY)
AS
SELECT od.ins_deel_key,
od.ins_deel_omschrijving,
UPPER(a.ins_deel_hub),
UPPER(a.ins_deel_poort),
fud2.fac_usrdata_omschr netwerk,
l.alg_locatie_code
|| '-'
|| g.alg_gebouw_code
|| '-'
|| v.alg_verdieping_code
|| '-'
|| r.alg_ruimte_nr,
fud.fac_usrdata_omschr outlettype,
k3.ins_kenmerkdeel_waarde opmerking,
g.alg_gebouw_key,
g.alg_gebouw_omschrijving,
v.alg_verdieping_key alg_verdieping_key,
v.alg_verdieping_omschrijving,
od.ins_alg_ruimte_key
FROM ins_deel od,
alg_locatie l,
alg_gebouw g,
alg_verdieping v,
alg_ruimte r,
-- type aansluiting
ins_v_aanwezigkenmerkdeel k1,
fac_usrdata fud,
-- module
ins_v_aanwezigkenmerkdeel k2,
ins_v_ins_poorten a,
-- opmerking
ins_v_aanwezigkenmerkdeel k3,
-- netwerk
ins_v_aanwezigkenmerkdeel k4,
fac_usrdata fud2
WHERE od.ins_deel_verwijder IS NULL
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 l.alg_locatie_key = od.ins_alg_locatie_key
AND r.alg_ruimte_key = od.ins_alg_ruimte_key
AND od.ins_srtdeel_key = 646 --'OUTLET'
-- type aansluiting
AND od.ins_deel_key = k1.ins_deel_key(+)
AND k1.ins_kenmerk_key(+) = 48
AND k1.ins_kenmerkdeel_waarde = TO_CHAR (fud.fac_usrdata_key(+))
-- module
AND od.ins_deel_key = k2.ins_deel_key(+)
AND k2.ins_kenmerkdeel_waarde = TO_CHAR (a.ins_deel_key(+))
AND k2.ins_kenmerk_key(+) = 50
-- opmerking
AND od.ins_deel_key = k3.ins_deel_key(+)
AND k3.ins_kenmerk_key(+) = 58
-- netwerk
AND od.ins_deel_key = k4.ins_deel_key(+)
AND k4.ins_kenmerk_key(+) = 53
AND k4.ins_kenmerkdeel_waarde = TO_CHAR (fud2.fac_usrdata_key(+))
ORDER BY od.ins_deel_omschrijving;
CREATE OR REPLACE VIEW nour_v_wallplate_huurder
(INS_DEEL_KEY, HUURDER)
AS
SELECT g_outlet.ins_deel_key, MIN (wa.prs_afdeling_naam) huurder
FROM ins_deel g_outlet,
(SELECT prs_a.prs_afdeling_naam, prs_w.prs_alg_ruimte_key alg_ruimte_key,
prs_w.prs_werkplek_volgnr
FROM prs_perslidwerkplek prs_pw,
prs_perslid prs_p,
prs_afdeling prs_a,
prs_werkplek prs_w
WHERE prs_pw.prs_perslid_key = prs_p.prs_perslid_key
AND prs_p.prs_afdeling_key = prs_a.prs_afdeling_key
AND prs_pw.prs_werkplek_key = prs_w.prs_werkplek_key
UNION
SELECT to_char(null), alg_ruimte_key,-1 FROM alg_v_aanwezigruimte) wa
WHERE g_outlet.ins_deel_verwijder IS NULL
and g_outlet.ins_deel_parent_key IS NOT NULL
AND g_outlet.ins_alg_ruimte_key = wa.alg_ruimte_key(+)
AND g_outlet.ins_srtdeel_key = 646 -- OUTLET
AND wa.prs_werkplek_volgnr =
NVL((SELECT MIN (prs_werkplek_volgnr)
FROM prs_perslidwerkplek prs_pw, prs_werkplek prs_w
WHERE g_outlet.ins_alg_ruimte_key = prs_w.prs_alg_ruimte_key
AND prs_pw.prs_werkplek_key = prs_w.prs_werkplek_key),-1)
GROUP BY g_outlet.ins_deel_key;
CREATE OR REPLACE VIEW nour_v_wallplate_rapport
(FCLT_F_OUTLET, FCLT_F_MODULE, FCLT_F_POORT, FCLT_F_RUIMTE, FCLT_F_HUURDER,
FCLT_F_TYPE_OUTLET, FCLT_F_NETWERK, OPMERKING, FCLT_3D_GEBOUW, FCLT_3D_VERDIEPING)
AS
SELECT wpk.ins_deel_omschrijving outlet,
wpk.module module,
wpk.poort poort,
wpk.alg_plaatsaanduiding ruimte,
wh.huurder fclt_f_huurder,
wpk.outlettype fclt_f_type_outlet,
wpk.netwerk,
wpk.opmerking opmerking,
wpk.alg_gebouw_key,
wpk.alg_verdieping_key
FROM nour_v_wallplate_plaats_kenm wpk,
nour_v_wallplate_huurder wh
WHERE wpk.ins_deel_key = wh.ins_deel_key;
--------------------------------------------------------------------------------------------------
------------------------------- RITTENADMINISTRATIE ----------------------------------------------
--------------------------------------------------------------------------------------------------
CREATE OR REPLACE VIEW nour_v_rit_adres
AS
SELECT mld_adres_key,
mld_adres_naam,
mld_adres_upper,
mld_adres_bezoek_adres,
mld_adres_bezoek_plaats,
mld_adres_bezoek_plaats || ', ' || mld_adres_bezoek_adres
|| DECODE (SUBSTR (mld_adres_naam, 1, 5),
SUBSTR (mld_adres_bezoek_plaats, 1, 5), '',
', ' || mld_adres_naam)
mld_adres_plaats_adres_naam
FROM mld_adres
WHERE mld_adres_verwijder IS NULL;
-- Rittentariefgroep, die uit 3 kosten kan bestaan: constante kosten (c_tarief),
-- km-kosten (km_tarief) en uur-kosten (uur_tarief).
CREATE OR REPLACE VIEW nour_v_rit_tariefgroep
as select fac_usrdata_key nour_v_rit_tariefgroep_key, fac_usrdata_code nour_v_rit_tariefgroep_naam,
fac.safe_to_number(trim(substr(fac_usrdata_omschr, 1, instr(fac_usrdata_omschr, '-', 1, 1) - 1))) c_tarief,
fac.safe_to_number(trim(substr(fac_usrdata_omschr, instr(fac_usrdata_omschr, '-', 1, 1) + 1, instr(fac_usrdata_omschr, '-', 1, 2) - 1 - instr(fac_usrdata_omschr, '-', 1, 1) ))) km_tarief,
fac.safe_to_number(trim(substr(fac_usrdata_omschr, instr(fac_usrdata_omschr, '-', 1, 2) + 1))) uur_tarief
from fac_usrdata
where fac_usrtab_key = 460
and fac_usrdata_volgnr > 0
and fac_usrdata_verwijder is null;
CREATE OR REPLACE VIEW nour_v_ritten_reservering
as select res.res_reservering_key
from res_v_aanwezigreservering res, res_v_aanwezigrsv_ruimte ruim
where res.res_reservering_key = ruim.res_reservering_key
-- key van activiteit Rit
and ruim.res_activiteit_key = 41;
CREATE OR REPLACE VIEW nour_v_ritten_reservering_geg
AS SELECT res.res_reservering_key,
ruim.res_rsv_ruimte_key,
ruim.res_rsv_ruimte_volgnr,
chauf.res_ruimte_nr AS chauffeur,
ruim.res_rsv_ruimte_omschrijving AS omschrijving,
ruim.res_rsv_ruimte_opmerking AS opmerking,
auto.ins_deel_omschrijving AS auto,
ruim.res_rsv_ruimte_van datum_van,
TO_CHAR (ruim.res_rsv_ruimte_van, 'HH24:MI') tijd_van,
ruim.res_rsv_ruimte_tot datum_tot,
TO_CHAR (ruim.res_rsv_ruimte_tot, 'HH24:MI') tijd_tot,
p.prs_perslid_naam
|| DECODE (COALESCE (p.prs_perslid_voorletters, ''),
'', '',
', ' || p.prs_perslid_voorletters)
|| DECODE (COALESCE (p.prs_perslid_tussenvoegsel, ''),
'', '',
' ' || p.prs_perslid_tussenvoegsel)
|| DECODE (COALESCE (p.prs_perslid_voornaam, ''),
'', '',
' (' || p.prs_perslid_voornaam || ')')
gastheervrouw,
p.prs_perslid_key,
afd.prs_afdeling_naam,
kpl.prs_kostenplaats_nr,
kpl.prs_kostenplaats_omschrijving
FROM res_v_aanwezigreservering res,
res_v_aanwezigrsv_ruimte ruim,
res_v_aanwezigrsv_deel deel,
(SELECT INS_DI.ins_discipline_key,
INS_SG.ins_srtgroep_key,
INS_SD.ins_srtdeel_key,
INS_SD.ins_srtdeel_code
|| ' - '
|| INS_SD.ins_srtdeel_omschrijving,
INS_DE.ins_alg_locatie_key,
INS_AO.alg_gebouw_key,
INS_AO.alg_verdieping_key,
INS_AO.alg_ruimte_key,
INS_AO.prs_werkplek_key,
INS_AO.alg_terreinsector_key,
INS_AO.alg_plaatsaanduiding,
INS_DE.ins_deel_key,
INS_DE.ins_deel_omschrijving,
RES_DE.res_deel_key,
RES_DE.res_deel_eenheid,
RES_DE.res_deel_prijs,
DECODE (RES_DE.res_deel_key, NULL, 0, 1)
FROM ins_v_aanwezigdeel INS_DE,
ins_tab_discipline INS_DI,
ins_v_alg_overzicht INS_AO,
ins_srtdeel INS_SD,
ins_srtgroep INS_SG,
res_v_aanwezigdeel RES_DE
WHERE INS_DE.ins_deel_key = RES_DE.res_ins_deel_key(+)
AND INS_DE.ins_deel_module = 'INS'
AND INS_DE.ins_deel_parent_key IS NULL
AND INS_AO.alg_onroerendgoed_keys =
INS_DE.ins_alg_ruimte_key
AND INS_AO.alg_onroerendgoed_type =
INS_DE.ins_alg_ruimte_type
AND INS_AO.alg_locatie_key = INS_DE.ins_alg_locatie_key
AND INS_SD.ins_srtdeel_key = INS_DE.ins_srtdeel_key
AND INS_SG.ins_srtgroep_key = INS_SD.ins_srtgroep_key
AND INS_DI.ins_discipline_key =
INS_DE.ins_discipline_key
AND INS_DE.ins_discipline_key IN
(SELECT ins_discipline_key
FROM ins_discipline)) auto,
res_ruimte_opstelling opstel,
res_ruimte chauf,
prs_perslid p,
prs_afdeling afd,
prs_kostenplaats kpl
WHERE res.res_reservering_key = ruim.res_reservering_key
AND ruim.res_rsv_ruimte_key = deel.res_rsv_ruimte_key(+)
AND deel.res_deel_key = auto.res_deel_key(+)
AND ruim.res_ruimte_opstel_key = opstel.res_ruimte_opstel_key
AND opstel.res_ruimte_key = chauf.res_ruimte_key
AND p.prs_perslid_key = ruim.res_rsv_ruimte_host_key
AND p.prs_afdeling_key = afd.prs_afdeling_key
AND ruim.prs_kostenplaats_key = kpl.prs_kostenplaats_key(+)
-- activiteit Rit
AND ruim.res_activiteit_key = 41;
CREATE OR REPLACE VIEW nour_v_ritten_rapportage
AS
SELECT ritres.res_reservering_key,
ritres.res_rsv_ruimte_volgnr,
ritres.res_rsv_ruimte_key,
ritres.chauffeur,
ritres.omschrijving,
ritres.opmerking,
ritres.auto,
ritres.datum_van,
ritres.tijd_van,
ritres.datum_tot,
ritres.tijd_tot,
ritres.prs_perslid_key,
ritres.gastheervrouw,
ritres.prs_afdeling_naam,
ritres.prs_kostenplaats_nr,
ritres.prs_kostenplaats_omschrijving,
-- 'Vertrektijd (afwijkend)'
(SELECT fd.fac_usrdata_omschr
FROM fac_usrdata fd, res_kenmerkwaarde k
WHERE k.res_rsv_ruimte_key = ritres.res_rsv_ruimte_key
AND k.res_kenmerk_key = 87
AND fac.safe_to_number (k.res_kenmerkreservering_waarde) = fd.fac_usrdata_key)
afwijkend_van_tijd,
-- 'Via-tijd'
(SELECT fd.fac_usrdata_omschr
FROM fac_usrdata fd, res_kenmerkwaarde k
WHERE k.res_rsv_ruimte_key = ritres.res_rsv_ruimte_key
AND k.res_kenmerk_key = 127
AND fac.safe_to_number (k.res_kenmerkreservering_waarde) = fd.fac_usrdata_key)
via_tijd,
-- 'Aankomsttijd (afwijkend)'
(SELECT fd.fac_usrdata_omschr
FROM fac_usrdata fd, res_kenmerkwaarde k
WHERE k.res_rsv_ruimte_key = ritres.res_rsv_ruimte_key
AND k.res_kenmerk_key = 94
AND fac.safe_to_number (k.res_kenmerkreservering_waarde) = fd.fac_usrdata_key)
afwijkend_tot_tijd,
-- 'Standaard vertrekplaats'
(SELECT van.mld_adres_plaats_adres_naam
FROM res_kenmerkwaarde k, nour_v_rit_adres van
WHERE k.res_rsv_ruimte_key = ritres.res_rsv_ruimte_key
AND k.res_kenmerk_key = 82
AND fac.safe_to_number (k.res_kenmerkreservering_waarde) = van.mld_adres_key)
standaard_van,
-- 'Standaard vertrekplaats'
(SELECT van.mld_adres_bezoek_plaats
FROM res_kenmerkwaarde k, nour_v_rit_adres van
WHERE k.res_rsv_ruimte_key = ritres.res_rsv_ruimte_key
AND k.res_kenmerk_key = 82
AND fac.safe_to_number (k.res_kenmerkreservering_waarde) = van.mld_adres_key)
standaard_van_plaatsnaam,
-- 'Vertrekplaatsnaam (afwijkend)'
(SELECT k.res_kenmerkreservering_waarde
FROM res_kenmerkwaarde k
WHERE k.res_rsv_ruimte_key = ritres.res_rsv_ruimte_key
AND k.res_kenmerk_key = 85)
afwijkend_van_plaats,
-- 'Vertrekadres (afwijkend)'
(SELECT k.res_kenmerkreservering_waarde
FROM res_kenmerkwaarde k
WHERE k.res_rsv_ruimte_key = ritres.res_rsv_ruimte_key
AND k.res_kenmerk_key = 86)
afwijkend_van_adres,
-- 'Standaard via-adres'
(SELECT van.mld_adres_plaats_adres_naam
FROM res_kenmerkwaarde k, nour_v_rit_adres van
WHERE k.res_rsv_ruimte_key = ritres.res_rsv_ruimte_key
AND k.res_kenmerk_key = 124
AND fac.safe_to_number (k.res_kenmerkreservering_waarde) = van.mld_adres_key)
standaard_via,
-- 'Standaard via-adres'
(SELECT van.mld_adres_bezoek_plaats
FROM res_kenmerkwaarde k, nour_v_rit_adres van
WHERE k.res_rsv_ruimte_key = ritres.res_rsv_ruimte_key
AND k.res_kenmerk_key = 124
AND fac.safe_to_number (k.res_kenmerkreservering_waarde) = van.mld_adres_key)
standaard_via_plaatsnaam,
-- 'Via-plaatsnaam (afwijkend)'
(SELECT k.res_kenmerkreservering_waarde
FROM res_kenmerkwaarde k
WHERE k.res_rsv_ruimte_key = ritres.res_rsv_ruimte_key
AND k.res_kenmerk_key = 126)
afwijkend_via_plaats,
-- 'Via-adres (afwijkend)'
(SELECT k.res_kenmerkreservering_waarde
FROM res_kenmerkwaarde k
WHERE k.res_rsv_ruimte_key = ritres.res_rsv_ruimte_key
AND k.res_kenmerk_key = 125)
afwijkend_via_adres,
-- 'Standaard aankomstplaats'
(SELECT naar.mld_adres_plaats_adres_naam
FROM nour_v_rit_adres naar, res_kenmerkwaarde k
WHERE k.res_rsv_ruimte_key = ritres.res_rsv_ruimte_key
AND k.res_kenmerk_key = 89
AND fac.safe_to_number (k.res_kenmerkreservering_waarde) = naar.mld_adres_key)
standaard_naar,
-- 'Standaard aankomstplaats'
(SELECT naar.mld_adres_bezoek_plaats
FROM nour_v_rit_adres naar, res_kenmerkwaarde k
WHERE k.res_rsv_ruimte_key = ritres.res_rsv_ruimte_key
AND k.res_kenmerk_key = 89
AND fac.safe_to_number (k.res_kenmerkreservering_waarde) = naar.mld_adres_key)
standaard_naar_plaatsnaam,
-- 'Aankomstplaatsnaam (afwijkend)'
(SELECT k.res_kenmerkreservering_waarde
FROM res_kenmerkwaarde k
WHERE k.res_rsv_ruimte_key = ritres.res_rsv_ruimte_key
AND k.res_kenmerk_key = 92)
afwijkend_naar_plaats,
-- 'Aankomstadres (afwijkend)'
(SELECT k.res_kenmerkreservering_waarde
FROM res_kenmerkwaarde k
WHERE k.res_rsv_ruimte_key = ritres.res_rsv_ruimte_key
AND k.res_kenmerk_key = 93)
afwijkend_naar_adres,
-- 'Vertrektijd (werkelijk)'
(SELECT fd.fac_usrdata_omschr
FROM fac_usrdata fd, res_kenmerkwaarde k
WHERE k.res_rsv_ruimte_key = ritres.res_rsv_ruimte_key
AND k.res_kenmerk_key = 96
AND fac.safe_to_number (k.res_kenmerkreservering_waarde) = fd.fac_usrdata_key)
chauff_van_tijd,
-- 'Aankomsttijd (werkelijk)'
(SELECT fd.fac_usrdata_omschr
FROM fac_usrdata fd, res_kenmerkwaarde k
WHERE k.res_rsv_ruimte_key = ritres.res_rsv_ruimte_key
AND k.res_kenmerk_key = 97
AND fac.safe_to_number (k.res_kenmerkreservering_waarde) = fd.fac_usrdata_key)
chauff_tot_tijd,
-- 'Gereden km'
(SELECT fac.safe_to_number (
REPLACE (k.res_kenmerkreservering_waarde, ',', '.'))
FROM res_kenmerkwaarde k
WHERE k.res_rsv_ruimte_key = ritres.res_rsv_ruimte_key
AND k.res_kenmerk_key = 98)
chauff_km,
-- 'Aantal uren'
(SELECT fac.safe_to_number (
REPLACE (k.res_kenmerkreservering_waarde, ',', '.'))
FROM res_kenmerkwaarde k
WHERE k.res_rsv_ruimte_key = ritres.res_rsv_ruimte_key
AND k.res_kenmerk_key = 101)
doorbelast_uren,
-- 'Aantal km'
(SELECT fac.safe_to_number (
REPLACE (k.res_kenmerkreservering_waarde, ',', '.'))
FROM res_kenmerkwaarde k
WHERE k.res_rsv_ruimte_key = ritres.res_rsv_ruimte_key
AND k.res_kenmerk_key = 100)
doorbelast_km
FROM nour_v_ritten_reservering_geg ritres;
CREATE OR REPLACE VIEW nour_v_ritten_doorbelasting
AS
SELECT res.res_reservering_key,
ruim.res_rsv_ruimte_volgnr,
ruim.res_rsv_ruimte_key,
stat.res_status_bo_omschrijving status,
tariefgrp.nour_v_rit_tariefgroep_naam tariefgroep,
tariefgrp.c_tarief,
tariefgrp.km_tarief,
tariefgrp.uur_tarief
FROM res_v_aanwezigreservering res,
res_v_aanwezigrsv_ruimte ruim,
res_status_bo stat,
nour_v_rit_tariefgroep tariefgrp,
res_kenmerkwaarde k_tariefgrp
WHERE res.res_reservering_key = ruim.res_reservering_key
AND ruim.res_status_bo_key = stat.res_status_bo_key
-- key van kenmerk Tariefgroep
AND k_tariefgrp.res_kenmerk_key = 102
AND fac.safe_to_number (k_tariefgrp.res_kenmerkreservering_waarde) =
tariefgrp.nour_v_rit_tariefgroep_key
AND ruim.res_rsv_ruimte_key = k_tariefgrp.res_rsv_ruimte_key
-- key van activiteit Rit
AND ruim.res_activiteit_key = 41;
-- key van de special prs_perslid "Non resident passenger"
CREATE OR REPLACE VIEW nour_v_rit_nonresident_pass
AS
SELECT 43667 prs_perslid_key
FROM DUAL;
CREATE OR REPLACE VIEW nour_v_ritten_all_doorbelast
AS
SELECT rit_rap.*,
rit_doorb.status,
rit_doorb.tariefgroep,
rit_doorb.c_tarief,
rit_doorb.km_tarief,
rit_doorb.uur_tarief,
ROUND (
(rit_doorb.c_tarief
+ (rit_doorb.km_tarief
* COALESCE (fac.safe_to_number (rit_rap.doorbelast_km), 0))
+ (rit_doorb.uur_tarief
* COALESCE (fac.safe_to_number (rit_rap.doorbelast_uren), 0))),
2)
AS totaal
FROM nour_v_ritten_rapportage rit_rap,
nour_v_ritten_doorbelasting rit_doorb
WHERE rit_rap.res_rsv_ruimte_key = rit_doorb.res_rsv_ruimte_key(+);
CREATE OR REPLACE VIEW nour_v_ritten_doorbelast_sap
AS
SELECT a.*, b.prs_perslid_key AS rit_nonresidentpass
FROM nour_v_ritten_all_doorbelast a, nour_v_rit_nonresident_pass b
WHERE a.prs_perslid_key = b.prs_perslid_key(+);
CREATE OR REPLACE VIEW nour_v_rit_km_spec
AS
SELECT chauffeur AS fclt_f_chauffeur,
auto AS fclt_f_voertuig,
DECODE (TO_CHAR (datum_van, 'D'),
1, 'Zondag',
2, 'Maandag',
3, 'Dinsdag',
4, 'Woensdag',
5, 'Donderdag',
6, 'Vrijdag',
7, 'Zaterdag',
'')
AS Dag,
datum_van datum,
chauff_van_tijd AS Vertrek,
chauff_tot_tijd AS Aankomst,
prs_afdeling_naam AS fclt_f_Opdrachtgever,
DECODE (afwijkend_van_plaats || ', ' || afwijkend_van_adres,
', ', standaard_van,
afwijkend_van_plaats || ', ' || afwijkend_van_adres)
AS Van,
DECODE (afwijkend_naar_plaats || ', ' || afwijkend_naar_adres,
', ', standaard_naar,
afwijkend_naar_plaats || ', ' || afwijkend_naar_adres)
AS Naar,
TO_NUMBER (chauff_km) AS Kilometers
FROM nour_v_ritten_rapportage;
CREATE OR REPLACE VIEW nour_v_rit_geplande_ritten
AS
SELECT datum_van datum,
DECODE (TO_CHAR (datum_van, 'D'),
1, 'Zondag',
2, 'Maandag',
3, 'Dinsdag',
4, 'Woensdag',
5, 'Donderdag',
6, 'Vrijdag',
7, 'Zaterdag',
'')
AS Dag,
COALESCE (chauff_van_tijd, afwijkend_van_tijd, tijd_van) AS Starttijd,
via_tijd AS Viatijd,
COALESCE (chauff_tot_tijd, afwijkend_tot_tijd, tijd_tot) AS Tottijd,
DECODE (afwijkend_van_plaats || ', ' || afwijkend_van_adres,
', ', standaard_van,
afwijkend_van_plaats || ', ' || afwijkend_van_adres)
AS Van,
DECODE (afwijkend_via_plaats || ', ' || afwijkend_via_adres,
', ', standaard_via,
afwijkend_via_plaats || ', ' || afwijkend_via_adres)
AS Via,
DECODE (afwijkend_naar_plaats || ', ' || afwijkend_naar_adres,
', ', standaard_naar,
afwijkend_naar_plaats || ', ' || afwijkend_naar_adres)
AS Naar,
prs_afdeling_naam AS fclt_f_Opdrachtgever,
chauffeur AS fclt_f_chauffeur,
auto AS fclt_f_auto,
opmerking AS Toelichtingen,
res_reservering_key AS hide_f_reserveringkey,
res_rsv_ruimte_volgnr AS hide_f_reserveringvolgnr,
gastheervrouw AS hide_f_gastheervrouw,
prs_kostenplaats_nr || ' ' || prs_kostenplaats_omschrijving
AS fclt_f_kostenplaats,
prs_afdeling_naam AS hide_f_afdeling
FROM nour_v_ritten_rapportage;
CREATE OR REPLACE VIEW nour_v_rit_kostenoverzicht
AS
SELECT TO_CHAR (res_reservering_key) AS Code,
datum_van datum,
COALESCE (afwijkend_van_plaats, standaard_van_plaatsnaam) AS Van,
COALESCE (afwijkend_naar_plaats, standaard_naar_plaatsnaam) AS Naar,
chauffeur AS fclt_f_chauffeur,
auto AS fclt_f_voertuig,
prs_afdeling_naam AS fclt_f_Opdrachtgever,
fac.safe_to_number (doorbelast_km) AS Km,
fac.safe_to_number (doorbelast_uren) AS Uren,
status,
tariefgroep,
totaal
FROM nour_v_ritten_all_doorbelast;
--------------------------------------------------------------------------------------------------
--------- SAP-EXPORTS: DEELOPDRACHTEN, RESERVERINGEN, LOGISTIEK, SPECIFICATIE, FACTUREN ----------
--------------------------------------------------------------------------------------------------
--- BASISVIEWS RESERVERINGEN ---------------------------------------------------
--TODO: lege companycode? (wordt nu left outer join gedaan)
CREATE OR REPLACE VIEW nour_v_export_resdeel
(
soort,
res_rsv_ruimte_key,
res_rsv_artikel_key,
res_rsv_deel_key,
res_rsv_ruimte_kosten_klant,
res_rsv_ruimte_ordernr,
ins_discipline_key,
kostenplaatscode,
debiteurnr,
kostensoort,
einddatum,
bedrag,
postkey,
valuta,
aantal,
btw,
res_reservering_key,
res_rsv_ruimte_volgnr,
datum,
ruimte_art_oms,
melder_key,
melder,
companycode,
stukprijs,
artikelgroep,
catalogus,
alg_locatie_key
)
AS
SELECT DISTINCT 'deel',
rr.res_rsv_ruimte_key,
rr.res_rsv_artikel_key,
rr.res_rsv_deel_key,
rr.res_rsv_ruimte_kosten_klant,
res_rsv_ruimte_ordernr,
nour_ea.ins_discipline_key,
nour_k.prs_kostenplaats_nr kostenplaatscode,
nour_k.debiteurnr,
nour_ea.kostensoort,
rr.res_rsv_ruimte_tot einddatum,
ROUND (COALESCE (res.getdeelprijs (rr.res_rsv_deel_key), 0), 2) bedrag,
'40' postkey,
'EUR' valuta,
nour_ea.aantal,
'21' btw,
rr.res_reservering_key,
rr.res_rsv_ruimte_volgnr,
TO_CHAR (rr.res_rsv_ruimte_van, 'dd-mm-yyyy')
|| DECODE (rr.res_rsv_ruimte_van, NULL, NULL, ' / ')
|| TO_CHAR (rr.res_rsv_ruimte_tot, 'dd-mm-yyyy')
datum,
TRIM(nour_ea.res_deel_omschrijving) ruimte_art_oms,
pf.prs_perslid_key,
-- Indien non-resident host, dan de omschrijving (waar externe gastheer wordt ingevuld) naar SAP.
DECODE (pf.prs_perslid_key,
40727, COALESCE (res_rsv_ruimte_omschrijving, pf.prs_perslid_naam_full, ' '),
COALESCE (pf.prs_perslid_naam_full, ' ')
)
melder,
COALESCE(ac.companycode, 'LEEG') companycode,
ROUND ( COALESCE (res.getdeelprijs (rr.res_rsv_deel_key), 0) / nour_ea.aantal, 2)
stukprijs,
'' artikelgroep,
nour_ea.ins_discipline_omschrijving catalogus,
rg.alg_locatie_key
FROM (SELECT rr.*, CAST(NULL AS NUMBER) res_rsv_artikel_key, rd.res_rsv_deel_key
FROM res_rsv_ruimte rr, res_rsv_deel rd
WHERE 1 = 1
AND res_rsv_ruimte_verwijder IS NULL
AND rr.res_rsv_ruimte_key = rd.res_rsv_ruimte_key
AND rd.res_status_bo_key = 5) rr,
nour_v_kostenplaats nour_k,
(SELECT * FROM prs_kenmerklink
WHERE prs_kenmerk_key = 1380
AND prs_kenmerklink_verwijder IS NULL) kl,
nour_v_afdelingcompany ac,
-- FSN#26359: res_deel_omschrijving is per DB19 een kolom in res_deel, dus we hoeven
-- ins_deel_omschrijving er niet meer bij te halen
(SELECT rsv_d.res_rsv_deel_key,
rd.res_deel_omschrijving,
rsv_d.res_rsv_ruimte_key,
ins_discipline_key,
ins_discipline_omschrijving,
rsv_d.res_rsv_deel_aantal aantal,
ks.prs_kostensoort_oms kostensoort
FROM res_rsv_deel rsv_d, res_deel rd, res_discipline dis, prs_kostensoort ks
WHERE rsv_d.res_deel_key = rd.res_deel_key
AND rd.res_discipline_key = dis.ins_discipline_key
AND dis.prs_kostensoort_key = ks.prs_kostensoort_key(+) )
nour_ea,
(SELECT l.alg_locatie_key,
rg.res_reservering_key,
rg.res_rsv_ruimte_key,
DECODE (
rg.res_ruimte_key,
NULL,
l.alg_locatie_code
|| '-'
|| g.alg_gebouw_code
|| '-'
|| v.alg_verdieping_volgnr
|| '-'
|| r.alg_ruimte_nr,
l.alg_locatie_code || '-' || rg.res_ruimte_nr
)
res_ruimte_omschrijving
FROM (SELECT rr2.res_reservering_key,
rr2.res_rsv_ruimte_key,
rr.alg_ruimte_key,
rr.res_ruimte_key,
r.res_ruimte_nr res_ruimte_nr
FROM res_v_rsv_ruimte_2_alg_ruimte rr, res_rsv_ruimte rr2, res_ruimte r
WHERE rr2.res_rsv_ruimte_key = rr.res_rsv_ruimte_key AND rr.res_ruimte_key = r.res_ruimte_key
UNION
SELECT rr2.res_reservering_key,
rr2.res_rsv_ruimte_key,
rr2.alg_ruimte_key,
NULL,
a.alg_ruimte_nr res_ruimte_nr
FROM res_rsv_ruimte rr2, alg_ruimte a
WHERE rr2.alg_ruimte_key IS NOT NULL AND rr2.alg_ruimte_key = a.alg_ruimte_key) rg,
alg_ruimte r,
alg_verdieping v,
alg_gebouw g,
alg_locatie l
WHERE 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 rg.alg_ruimte_key = r.alg_ruimte_key) rg,
prs_v_perslid_fullnames_all pf
WHERE 1 = 1
AND rr.res_rsv_ruimte_contact_key = pf.prs_perslid_key
AND rr.prs_kostenplaats_key = nour_k.prs_kostenplaats_key
AND kl.prs_kenmerklink_waarde(+) = nour_k.debiteurnr
AND ac.prs_afdeling_key(+) = kl.prs_link_key
AND nour_ea.res_rsv_deel_key(+) = rr.res_rsv_deel_key
AND rr.res_rsv_ruimte_key = rg.res_rsv_ruimte_key(+);
-- De te exporteren catering met kostenplaats opgevoerd bij een ruimte reservering of losse catering reservering
-- Locatiekey wordt meegeleverd om later deeloverzicht/export te kunnen doen.
CREATE OR REPLACE VIEW nour_v_export_catering
(
soort,
res_rsv_ruimte_key,
res_rsv_artikel_key,
res_rsv_deel_key,
res_rsv_ruimte_kosten_klant,
res_rsv_ruimte_ordernr,
ins_discipline_key,
kostenplaatscode,
debiteurnr,
kostensoort,
einddatum,
bedrag,
postkey,
valuta,
aantal,
btw,
res_reservering_key,
res_rsv_ruimte_volgnr,
datum,
ruimte_art_oms,
melder_key,
melder,
companycode,
stukprijs,
artikelgroep,
catalogus,
alg_locatie_key
)
AS
SELECT DISTINCT 'artikel',
rr.res_rsv_ruimte_key,
rr.res_rsv_artikel_key,
rr.res_rsv_deel_key,
rr.res_rsv_ruimte_kosten_klant,
res_rsv_ruimte_ordernr,
nour_ea.ins_discipline_key,
nour_k.prs_kostenplaats_nr kostenplaatscode,
nour_k.debiteurnr,
nour_ea.kostensoort,
rr.res_rsv_ruimte_tot einddatum,
ROUND (COALESCE (res.getartikelprijs (rr.res_rsv_artikel_key), 0), 2) bedrag,
'40' postkey,
'EUR' valuta,
nour_ea.aantal,
TO_CHAR( COALESCE(nour_ea.res_artikel_btw, 0) ) btw,
rr.res_reservering_key,
rr.res_rsv_ruimte_volgnr,
TO_CHAR (COALESCE (rr.res_rsv_ruimte_van, res_rsv_artikel_levering), 'dd-mm-yyyy')
|| DECODE (COALESCE (rr.res_rsv_ruimte_van, res_rsv_artikel_levering), NULL, NULL, ' / ')
|| TO_CHAR (COALESCE (rr.res_rsv_ruimte_tot, res_rsv_artikel_levering), 'dd-mm-yyyy')
datum,
TRIM (nour_ea.res_artikel_omschrijving) ruimte_art_oms,
pf.prs_perslid_key,
-- Indien non-resident host, dan de omschrijving (waar externe gastheer wordt ingevuld) naar SAP.
DECODE(pf.prs_perslid_key, 40727, COALESCE(res_rsv_ruimte_omschrijving, pf.prs_perslid_naam_full, ' '), COALESCE (pf.prs_perslid_naam_full, ' ') ) melder,
COALESCE(ac.companycode, 'LEEG') companycode,
ROUND (COALESCE (res.getartikelprijs (rr.res_rsv_artikel_key), 0) / nour_ea.aantal, 2)
stukprijs,
' ' artikelgroep,
nour_ea.ins_discipline_omschrijving catalogus,
rg.alg_locatie_key
FROM (SELECT rr.*, ra.res_rsv_artikel_key, CAST(NULL AS NUMBER) res_rsv_deel_key
FROM res_rsv_ruimte rr, res_rsv_artikel ra
WHERE 1 = 1
AND res_rsv_ruimte_verwijder IS NULL
AND rr.res_rsv_ruimte_key = ra.res_rsv_ruimte_key
AND ra.res_status_bo_key = 5) rr,
nour_v_kostenplaats nour_k,
(SELECT * FROM prs_kenmerklink
WHERE prs_kenmerk_key = 1380
AND prs_kenmerklink_verwijder IS NULL) kl,
nour_v_afdelingcompany ac,
(SELECT rsv_art.res_rsv_artikel_key,
art.res_artikel_omschrijving,
rsv_art.res_rsv_ruimte_key,
ins_discipline_key,
ins_discipline_omschrijving,
rsv_art.res_rsv_artikel_aantal aantal,
rsv_art.res_rsv_artikel_levering,
art.res_artikel_btw,
ks.prs_kostensoort_oms kostensoort
FROM res_rsv_artikel rsv_art, res_artikel art, res_discipline dis, prs_kostensoort ks
WHERE 1 = 1
AND rsv_art.res_artikel_key = art.res_artikel_key
AND art.res_discipline_key = dis.ins_discipline_key
AND dis.prs_kostensoort_key = ks.prs_kostensoort_key(+) ) nour_ea,
(SELECT l.alg_locatie_key,
rg.res_reservering_key,
rg.res_rsv_ruimte_key,
DECODE (rg.res_ruimte_key,null,
l.alg_locatie_code || '-' || g.alg_gebouw_code || '-' || v.alg_verdieping_volgnr || '-' || r.alg_ruimte_nr,
l.alg_locatie_code || '-' || rg.res_ruimte_nr) res_ruimte_omschrijving
FROM (SELECT rr2.res_reservering_key, rr2.res_rsv_ruimte_key, rr.alg_ruimte_key, rr.res_ruimte_key, r.res_ruimte_nr res_ruimte_nr
FROM res_v_rsv_ruimte_2_alg_ruimte rr, res_rsv_ruimte rr2, res_ruimte r
WHERE rr2.res_rsv_ruimte_key = rr.res_rsv_ruimte_key
AND rr.res_ruimte_key = r.res_ruimte_key
UNION
SELECT rr2.res_reservering_key, rr2.res_rsv_ruimte_key, rr2.alg_ruimte_key, null, a.alg_ruimte_nr res_ruimte_nr
FROM res_rsv_ruimte rr2, alg_ruimte a
WHERE rr2.alg_ruimte_key IS NOT NULL
AND rr2.alg_ruimte_key = a.alg_ruimte_key) rg,
alg_ruimte r,
alg_verdieping v,
alg_gebouw g,
alg_locatie l
WHERE 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 rg.alg_ruimte_key = r.alg_ruimte_key) rg,
prs_v_perslid_fullnames_all pf
WHERE 1 = 1
AND rr.res_rsv_ruimte_contact_key = pf.prs_perslid_key
AND rr.prs_kostenplaats_key = nour_k.prs_kostenplaats_key
AND kl.prs_kenmerklink_waarde(+) = nour_k.debiteurnr
AND ac.prs_afdeling_key(+) = kl.prs_link_key
AND nour_ea.res_rsv_artikel_key(+) = rr.res_rsv_artikel_key
AND rr.res_rsv_ruimte_key = rg.res_rsv_ruimte_key(+);
CREATE OR REPLACE VIEW nour_v_export_resruimten
(
soort,
res_rsv_ruimte_key,
res_rsv_artikel_key,
res_rsv_deel_key,
res_rsv_ruimte_kosten_klant,
res_rsv_ruimte_ordernr,
ins_discipline_key,
kostenplaatscode,
debiteurnr,
kostensoort,
einddatum,
bedrag,
postkey,
valuta,
aantal,
btw,
res_reservering_key,
res_rsv_ruimte_volgnr,
datum,
ruimte_art_oms,
melder_key,
melder,
companycode,
stukprijs,
artikelgroep,
catalogus,
alg_locatie_key
)
AS
SELECT DISTINCT 'ruimte',
rr.res_rsv_ruimte_key,
rr.res_rsv_artikel_key,
rr.res_rsv_deel_key,
rr.res_rsv_ruimte_kosten_klant,
res_rsv_ruimte_ordernr,
nour_ea.ins_discipline_key,
nour_k.prs_kostenplaats_nr kostenplaatscode,
nour_k.debiteurnr,
nour_ea.kostensoort,
rr.res_rsv_ruimte_tot einddatum,
ROUND (COALESCE (res.getruimteprijs (rr.res_rsv_ruimte_key), 0), 2)
bedrag,
'40' postkey,
'EUR' valuta,
1 aantal,
'21' btw,
rr.res_reservering_key,
rr.res_rsv_ruimte_volgnr,
TO_CHAR (rr.res_rsv_ruimte_van, 'dd-mm-yyyy')
|| DECODE (rr.res_rsv_ruimte_van, NULL, NULL, ' / ')
|| TO_CHAR (rr.res_rsv_ruimte_tot, 'dd-mm-yyyy')
datum,
TRIM (res_ruimte_omschrijving) ruimte_art_oms,
pf.prs_perslid_key,
-- Indien non-resident host, dan de omschrijving (waar externe gastheer wordt ingevuld) naar SAP.
DECODE(pf.prs_perslid_key, 40727, COALESCE(res_rsv_ruimte_omschrijving, pf.prs_perslid_naam_full, ' '), COALESCE (pf.prs_perslid_naam_full, ' ') ) melder,
COALESCE(ac.companycode, 'LEEG') companycode,
ROUND (COALESCE (res.getruimteprijs (rr.res_rsv_ruimte_key), 0), 2)
stukprijs,
' ' artikelgroep,
nour_ea.ins_discipline_omschrijving catalogus,
rg.alg_locatie_key
FROM (SELECT rr.*, CAST(NULL AS NUMBER) res_rsv_artikel_key, CAST(NULL AS NUMBER) res_rsv_deel_key
FROM (SELECT rr.*, r.res_ruimte_key
FROM res_rsv_ruimte rr, res_ruimte_opstelling ro, res_ruimte r
WHERE rr.res_ruimte_opstel_key = ro.res_ruimte_opstel_key
AND ro.res_ruimte_key = r.res_ruimte_key) rr
WHERE 1 = 1 AND res_rsv_ruimte_verwijder IS NULL AND rr.res_status_bo_key = 5) rr,
nour_v_kostenplaats nour_k,
(SELECT * FROM prs_kenmerklink
WHERE prs_kenmerk_key = 1380
AND prs_kenmerklink_verwijder IS NULL) kl,
nour_v_afdelingcompany ac,
(SELECT rg.res_discipline_key ins_discipline_key, d.ins_discipline_omschrijving, rg.res_ruimte_key,
ks.prs_kostensoort_oms kostensoort
FROM res_v_res_ruimte_gegevens rg, ins_tab_discipline d, prs_kostensoort ks
WHERE d.ins_discipline_key = rg.res_discipline_key
AND d.prs_kostensoort_key = ks.prs_kostensoort_key(+) ) nour_ea,
(SELECT l.alg_locatie_key,
rg.res_reservering_key,
rg.res_rsv_ruimte_key,
l.alg_locatie_code || '-' || rg.res_ruimte_nr res_ruimte_omschrijving
FROM (SELECT rr2.res_reservering_key, rr2.res_rsv_ruimte_key, rr.alg_ruimte_key, rr.res_ruimte_key, r.res_ruimte_nr res_ruimte_nr
FROM res_v_rsv_ruimte_2_alg_ruimte rr, res_rsv_ruimte rr2, res_ruimte r
WHERE rr2.res_rsv_ruimte_key = rr.res_rsv_ruimte_key
AND rr.res_ruimte_key = r.res_ruimte_key) rg,
alg_ruimte r,
alg_verdieping v,
alg_gebouw g,
alg_locatie l
WHERE 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 rg.alg_ruimte_key = r.alg_ruimte_key) rg,
prs_v_perslid_fullnames_all pf
WHERE 1 = 1
AND rr.res_reservering_key NOT IN (SELECT res_reservering_key FROM nour_v_ritten_reservering)
AND rr.res_rsv_ruimte_contact_key = pf.prs_perslid_key
AND rr.prs_kostenplaats_key = nour_k.prs_kostenplaats_key
AND kl.prs_kenmerklink_waarde(+) = nour_k.debiteurnr
AND ac.prs_afdeling_key(+) = kl.prs_link_key
AND nour_ea.res_ruimte_key(+) = rr.res_ruimte_key
AND rr.res_rsv_ruimte_key = rg.res_rsv_ruimte_key(+);
CREATE OR REPLACE VIEW nour_v_export_resritten
(
soort,
res_rsv_ruimte_key,
res_rsv_artikel_key,
res_rsv_deel_key,
res_rsv_ruimte_kosten_klant,
res_rsv_ruimte_ordernr,
ins_discipline_key,
kostenplaatscode,
debiteurnr,
kostensoort,
einddatum,
bedrag,
postkey,
valuta,
aantal,
btw,
res_reservering_key,
res_rsv_ruimte_volgnr,
datum,
ruimte_art_oms,
melder_key,
melder,
companycode,
stukprijs,
artikelgroep,
catalogus,
alg_locatie_key
)
AS
SELECT DISTINCT 'rit',
rr.res_rsv_ruimte_key,
rr.res_rsv_artikel_key,
rr.res_rsv_deel_key,
rr.res_rsv_ruimte_kosten_klant,
res_rsv_ruimte_ordernr,
nour_ea.ins_discipline_key,
nour_k.prs_kostenplaats_nr kostenplaatscode,
nour_k.debiteurnr,
nour_ea.kostensoort,
rr.res_rsv_ruimte_tot einddatum,
ROUND ( COALESCE (rit_sap.totaal, 0), 2)
bedrag,
'40' postkey,
'EUR' valuta,
1 aantal,
'21' btw,
rr.res_reservering_key,
rr.res_rsv_ruimte_volgnr,
TO_CHAR (rr.res_rsv_ruimte_van, 'dd-mm-yyyy')
|| DECODE (rr.res_rsv_ruimte_van, NULL, NULL, ' / ')
|| TO_CHAR (rr.res_rsv_ruimte_tot, 'dd-mm-yyyy')
datum,
TRIM (rit_sap.chauffeur) ruimte_art_oms,
pf.prs_perslid_key,
DECODE(rit_sap.rit_nonresidentpass,
NULL, pf.prs_perslid_naam_full,
res_rsv_ruimte_omschrijving)
melder,
COALESCE(ac.companycode, 'LEEG') companycode,
ROUND ( COALESCE (rit_sap.totaal, 0), 2)
stukprijs,
'' artikelgroep,
nour_ea.ins_discipline_omschrijving catalogus,
0 alg_locatie_key
FROM (SELECT rr.*, CAST(NULL AS NUMBER) res_rsv_artikel_key, CAST(NULL AS NUMBER) res_rsv_deel_key
FROM (SELECT rr.*, r.res_ruimte_key
FROM res_rsv_ruimte rr, res_ruimte_opstelling ro, res_ruimte r
WHERE rr.res_ruimte_opstel_key = ro.res_ruimte_opstel_key
AND ro.res_ruimte_key = r.res_ruimte_key) rr
WHERE 1 = 1 AND res_rsv_ruimte_verwijder IS NULL AND rr.res_status_bo_key = 5) rr,
nour_v_kostenplaats nour_k,
(SELECT * FROM prs_kenmerklink
WHERE prs_kenmerk_key = 1380
AND prs_kenmerklink_verwijder IS NULL) kl,
nour_v_afdelingcompany ac,
(SELECT rg.res_discipline_key ins_discipline_key, d.ins_discipline_omschrijving, rg.res_ruimte_key,
ks.prs_kostensoort_oms kostensoort
FROM res_v_res_ruimte_gegevens rg, ins_tab_discipline d, prs_kostensoort ks
WHERE d.ins_discipline_key = rg.res_discipline_key
AND d.prs_kostensoort_key = ks.prs_kostensoort_key(+) ) nour_ea,
prs_v_perslid_fullnames_all pf,
nour_v_ritten_doorbelast_sap rit_sap
WHERE rr.res_rsv_ruimte_contact_key = pf.prs_perslid_key
AND rr.res_rsv_ruimte_key = rit_sap.res_rsv_ruimte_key
AND rr.prs_kostenplaats_key = nour_k.prs_kostenplaats_key
AND kl.prs_kenmerklink_waarde(+) = nour_k.debiteurnr
AND ac.prs_afdeling_key(+) = kl.prs_link_key
AND nour_ea.res_ruimte_key(+) = rr.res_ruimte_key;
--- BASISVIEWS LOGISTIEK -------------------------------------------------------
CREATE OR REPLACE VIEW nour_v_kpn_logistiek
AS
SELECT prs_kostenplaats_key,
prs_kostenplaats_omschrijving || ' - ' || prs_kostenplaats_nr kpn,
prs_kostenplaats_verwijder
FROM prs_kostenplaats;
-- AKZA#23427: Logistieke dienst / postkamer / expeditie
-- View voor berekening kosten/opbrengsten van door postkamer verleende diensten.
-- Views voor rapportage en doorbelasting.
----- PRIJSLIJST (Eigen tabel met vaste bedragen voor verleende diensten) -----
-- Bezorgen van goederen per levering
-- Bezorgen van goederen op afleveradres (p/levering) 1749
-- Bezorgen van goederen op pallet (p/levering) 1750
-- Spoed bezorgen van goederen (p/levering) 1751
-- Spoed bezorgen van goederen op pallet (p/levering) 1752
-- Bezorgen toner / papier (p/st) 1753
-- Expeditie transportkosten
-- Verzending voorbereiden binnen Europa 1755
-- Verzending voorbereiden binnen Europa gevaarlijk 1756
-- Verzending voorbereiden binnenland 1757
-- Verzending voorbereiden binnenland gevaarlijk 1758
-- Verzending voorbereiden buiten Europa 1759
-- Verzending voorbereiden buiten Europa gevaarlijk 1760
-- Koerierszendingen/aangetekende poststukken ex.verzendkosten
-- Koerier DHL met bekend adres in het systeem (p/st) 1764
-- Koerier DHL met onbekend adres in het systeem (p/st) 1765
-- Koerier DHL terugkoppeling (p/recu) 1766
-- Afhandeling per levering
-- Afboeken van ontvangen goederen 1769
-- Controleren van ontvangen goederen 1770
-- Ontvangen/sorteren van goederen met naam 1771
-- Ontvangen/sorteren van goederen zonder naam 1772
-- Gecombineerd ophalen/bezorgen
-- Ophalen en bezorgen van bulkpakketten op pallet (OHZ) 1775
-- Ophalen en bezorgen van (lunch)pakketten (HZ) 1774
-- Ophalen van goederen
-- Ophalen van pakketten (HZP) 1777
-- Ophalen van bulk pakketten op pallet (OHZP) 1778
-- Algemene maandelijkse kosten
-- Opslagkosten kelder C2 (p/pallet) 1780
-- Verwerkingskosten
-- Verwerkingstijd: mailing, verz.exp., ontv.goed. (p/kwartier) 1782
-- Toner/papier:
-- Bezorgen toner/papier (p/st) 2172
-- Vaste kosten:
-- Looprondes (p/maand) 2176
-- Dagblad bezorgen (p/maand) 2177
-- Opslag container 2197
-- View voor berekening kosten/opbrengsten van door postkamer verleende diensten.
-- Dit zijn diverse meldingen en opdrachten en bezorgde lunchpakketten (RES)
-- Voor (vrijwel) elke handeling geldt een bepaald basisbedrag, met daarbij een
-- aantal toeslagen (voor gevaarlijke goederen, spoed etc).
-- Deze view bevat alle benodigde gegevens voor de management info rapportages en
-- de view(s) voor doorbelasting.
-- Alleen afgehandelde zaken zijn relevant, dus de volgende statussen:
-- - melding:
-- 5 Afgemeld
-- 6 Historie
-- - opdracht:
-- 6 Afgemeld
-- 7 Verwerkt
-- 9 Afgerond
-- - reservering:
-- 5 Afgemeld
-- 6 Verwerkt
-- Doorbelaste bedragen worden historisch vastgelegd in een read-only kenmerk bij
-- meldingen en opdrachten (kenmerksoort 462):
-- - vakgroeptype Logistiek: kenmerk 562
-- - opdrachttype Verzending NL: kenmerk 566
-- - opdrachttype Verzending EU: kenmerk 565
-- - opdrachttype Verzending WW: kenmerk 567
--TODO: crediteurnr = COALESCE( company_van(behandelaar), '0801')
CREATE OR REPLACE VIEW nour_v_logistiek_doorbel
AS
SELECT key,
xmlnode,
nummer,
melder,
melding,
vakgroep,
datum,
status,
einddatum,
kostenplaats_key,
kostenplaats_nr,
kostenplaats_oms,
ordernr,
po_nr,
kostensoort,
stuks, gewicht, verwerkingstijd,
opgehaald, onhandzaam, gevaarlijk, spoed,
onb_adr,
basistarief, afgeboekt, gecontroleerd, bezorgd,
aangetekend, terugkoppel,
mailing, couverteren,
ophaalkosten, materiaalkosten,
verwerkingskosten,
totaal_kosten,
doorbelast doorbelast_bedrag
FROM (
-- Ontvangst goederen:
-- Goederen op naam 1041
-- Goederen zonder naam 1042
-- Kenmerken vakgroep:
-- Onhandzaam pakket 521
-- Aantal stuks 401
-- Afgeboekt 408
-- Gecontroleerd 417
-- Bezorgd 413
-- Verwerkingstijd 447
-- PO-nummer 434
-- Prijslijst:
-- Bezorgen van goederen per levering
-- Bezorgen van goederen op afleveradres (p/levering) 1749
-- Bezorgen van goederen op pallet (p/levering) 1750
-- Spoed bezorgen van goederen (p/levering) 1751
-- Spoed bezorgen van goederen op pallet (p/levering) 1752
-- Afhandeling per levering
-- Afboeken van ontvangen goederen 1769
-- Controleren van ontvangen goederen 1770
-- Ontvangen/sorteren van goederen met naam 1771
-- Ontvangen/sorteren van goederen zonder naam 1772
-- Verwerkingskosten
-- Verwerkingstijd: mailing, verz.exp., ontv.goed. (p/kwartier) 1782
SELECT key, 'melding' xmlnode, nummer, datum, einddatum, status, melder,
melding, vakgroep, kostenplaats_key, kostenplaats_nr, kostenplaats_oms, ordernr, po_nr, kostensoort,
stuks, NULL gewicht, verwerkingstijd,
NULL opgehaald, onhandzaam, NULL gevaarlijk, spoed,
NULL onb_adr,
basistarief, afgeboekt, gecontroleerd, bezorgd,
NULL aangetekend, NULL terugkoppel,
NULL mailing, NULL couverteren,
NULL ophaalkosten, NULL materiaalkosten,
verwerkingskosten,
basistarief + afgeboekt + gecontroleerd + bezorgd + verwerkingskosten totaal_kosten,
doorbelast
FROM (
SELECT m.mld_melding_key key,
'L'||m.mld_melding_key nummer,
m.mld_melding_status status,
m.mld_melding_datum datum,
m.mld_melding_einddatum einddatum,
s.mld_stdmelding_omschrijving melding,
d.ins_discipline_omschrijving vakgroep,
ak.prs_kostenplaats_key kostenplaats_key,
ak.prs_kostenplaats_nr kostenplaats_nr,
ak.prs_kostenplaats_omschrijving kostenplaats_oms,
m.mld_melding_ordernr ordernr,
po_nr.mld_kenmerkmelding_waarde po_nr,
ks.prs_kostensoort_oms kostensoort,
pf.prs_perslid_naam_full melder,
fac.safe_to_number(stuks.mld_kenmerkmelding_waarde) stuks,
fac.safe_to_number(ohz.mld_kenmerkmelding_waarde) onhandzaam,
opzondernaam.fac_usrdata_prijs basistarief,
DECODE(SIGN(2.5-m.mld_melding_spoed),
-1, NULL,
1, 1)
spoed,
COALESCE( fac.safe_to_number(afgeboekt.mld_kenmerkmelding_waarde), 0)
* (SELECT fac_usrdata_prijs FROM fac_usrdata
WHERE fac_usrdata_key = 1769)
afgeboekt,
COALESCE( fac.safe_to_number(gecontroleerd.mld_kenmerkmelding_waarde), 0)
* (SELECT fac_usrdata_prijs FROM fac_usrdata
WHERE fac_usrdata_key = 1770)
gecontroleerd,
COALESCE( fac.safe_to_number(bezorgd.mld_kenmerkmelding_waarde), 0)
* (SELECT fac_usrdata_prijs FROM fac_usrdata
WHERE fac_usrdata_key =
DECODE(COALESCE( fac.safe_to_number(ohz.mld_kenmerkmelding_waarde), 0),
0, DECODE(SIGN(2.5-m.mld_melding_spoed),
-1, 1749, -- hz, norm
1, 1751), -- hz, spoed)
1, DECODE(SIGN(2.5-m.mld_melding_spoed),
-1, 1750, -- ohz
1, 1752) ) ) -- ohz, spoed
bezorgd,
COALESCE( fac.safe_to_number(verwerkingstijd.mld_kenmerkmelding_waarde), 0) verwerkingstijd,
COALESCE( fac.safe_to_number(verwerkingstijd.mld_kenmerkmelding_waarde), 0)
* (SELECT fac_usrdata_prijs FROM fac_usrdata
WHERE fac_usrdata_key = 1782)
verwerkingskosten,
fac.safe_to_number(doorbel.mld_kenmerkmelding_waarde) doorbelast
FROM mld_melding m,
mld_stdmelding s,
mld_discipline d,
prs_v_aanwezigkostenplaats ak,
prs_kostensoort ks,
prs_v_perslid_fullnames pf,
(SELECT * FROM mld_kenmerkmelding WHERE mld_kenmerk_key = 521
AND mld_kenmerkmelding_verwijder IS NULL) ohz,
(SELECT * FROM mld_kenmerkmelding WHERE mld_kenmerk_key = 401
AND mld_kenmerkmelding_verwijder IS NULL) stuks,
(SELECT * FROM mld_kenmerkmelding WHERE mld_kenmerk_key = 408
AND mld_kenmerkmelding_verwijder IS NULL) afgeboekt,
(SELECT * FROM mld_kenmerkmelding WHERE mld_kenmerk_key = 417
AND mld_kenmerkmelding_verwijder IS NULL) gecontroleerd,
(SELECT * FROM mld_kenmerkmelding WHERE mld_kenmerk_key = 413
AND mld_kenmerkmelding_verwijder IS NULL) bezorgd,
(SELECT * FROM mld_kenmerkmelding WHERE mld_kenmerk_key = 447
AND mld_kenmerkmelding_verwijder IS NULL) verwerkingstijd,
(SELECT * FROM mld_kenmerkmelding WHERE mld_kenmerk_key = 434
AND mld_kenmerkmelding_verwijder IS NULL) po_nr,
fac_usrdata opzondernaam,
(SELECT * FROM mld_kenmerkmelding WHERE mld_kenmerk_key = 562
AND mld_kenmerkmelding_verwijder IS NULL) doorbel
WHERE m.mld_stdmelding_key IN (1041, 1042)
AND m.mld_melding_status IN (5,6)
AND s.mld_stdmelding_key = m.mld_stdmelding_key
AND d.ins_discipline_key = s.mld_ins_discipline_key
AND ak.prs_kostenplaats_key = m.prs_kostenplaats_key
AND ks.prs_kostensoort_key = s.prs_kostensoort_key
AND pf.prs_perslid_key = m.prs_perslid_key
AND opzondernaam.fac_usrdata_key = DECODE(m.mld_stdmelding_key,
1042, 1772,
1771)
AND ohz.mld_melding_key(+) = m.mld_melding_key
AND stuks.mld_melding_key(+) = m.mld_melding_key
AND afgeboekt.mld_melding_key(+) = m.mld_melding_key
AND gecontroleerd.mld_melding_key(+) = m.mld_melding_key
AND bezorgd.mld_melding_key(+) = m.mld_melding_key
AND verwerkingstijd.mld_melding_key(+) = m.mld_melding_key
AND po_nr.mld_melding_key(+) = m.mld_melding_key
AND doorbel.mld_melding_key(+) = m.mld_melding_key
)
UNION ALL
-- Intern pakket ophalen en bezorgen
-- stdmelding_key 1043
-- Kenmerken:
-- Onhandzaam pakket 431
-- Prijslijst:
-- Ophalen en bezorgen van (lunch)pakketten (HZ) 1774
-- Ophalen en bezorgen van bulkpakketten op pallet (OHZ) 1775
SELECT key, 'melding' xmlnode, nummer, datum, einddatum, status, melder,
melding, vakgroep, kostenplaats_key, kostenplaats_nr, kostenplaats_oms, ordernr, NULL po_nr, kostensoort,
NULL stuks, NULL gewicht, NULL verwerkingstijd,
NULL opgehaald, onhandzaam, NULL gevaarlijk, NULL spoed,
NULL onb_adr,
totaal_kosten basistarief, NULL afgeboekt, NULL gecontroleerd, NULL bezorgd,
NULL aangetekend,NULL terugkoppel,
NULL mailing, NULL couverteren,
NULL ophaalkosten, NULL materiaalkosten,
NULL verwerkingskosten,
totaal_kosten,
doorbelast
FROM (
SELECT m.mld_melding_key key,
'L'||m.mld_melding_key nummer,
m.mld_melding_status status,
m.mld_melding_datum datum,
m.mld_melding_einddatum einddatum,
s.mld_stdmelding_omschrijving melding,
d.ins_discipline_omschrijving vakgroep,
ak.prs_kostenplaats_key kostenplaats_key,
ak.prs_kostenplaats_nr kostenplaats_nr,
ak.prs_kostenplaats_omschrijving kostenplaats_oms,
m.mld_melding_ordernr ordernr,
ks.prs_kostensoort_oms kostensoort,
pf.prs_perslid_naam_full melder,
COALESCE( fac.safe_to_number(ohz.mld_kenmerkmelding_waarde), 0) onhandzaam,
(SELECT fac_usrdata_prijs FROM fac_usrdata
WHERE fac_usrdata_key =
DECODE(COALESCE( fac.safe_to_number(ohz.mld_kenmerkmelding_waarde), 0),
0, 1774,
1, 1775) )
totaal_kosten,
fac.safe_to_number(doorbel.mld_kenmerkmelding_waarde) doorbelast
FROM mld_melding m,
mld_stdmelding s,
mld_discipline d,
prs_v_aanwezigkostenplaats ak,
prs_kostensoort ks,
prs_v_perslid_fullnames pf,
(SELECT * FROM mld_kenmerkmelding WHERE mld_kenmerk_key = 431
AND mld_kenmerkmelding_verwijder IS NULL) ohz,
(SELECT * FROM mld_kenmerkmelding WHERE mld_kenmerk_key = 562
AND mld_kenmerkmelding_verwijder IS NULL) doorbel
WHERE m.mld_stdmelding_key = 1043
AND m.mld_melding_status IN (5,6)
AND s.mld_stdmelding_key = m.mld_stdmelding_key
AND d.ins_discipline_key = s.mld_ins_discipline_key
AND ak.prs_kostenplaats_key = m.prs_kostenplaats_key
AND ks.prs_kostensoort_key = s.prs_kostensoort_key
AND pf.prs_perslid_key = m.prs_perslid_key
AND ohz.mld_melding_key(+) = m.mld_melding_key
AND doorbel.mld_melding_key(+) = m.mld_melding_key
)
UNION ALL
-- Verzending koerier
-- stdmelding_key 1044
-- Kenmerken melding + usrtabs:
-- Aangetekend verzenden 398
-- Aangetekend 483
-- Verzending terugkoppelen 449
-- Onbekend adres 430
-- Prijslijst:
-- Koerier DHL met bekend adres in het systeem (p/st) 1764
-- Koerier DHL met onbekend adres in het systeem (p/st) 1765
-- Koerier DHL terugkoppeling (p/recu) 1766
SELECT key, 'melding' xmlnode, nummer, datum, einddatum, status, melder,
melding, vakgroep, kostenplaats_key, kostenplaats_nr, kostenplaats_oms, ordernr, NULL po_nr, kostensoort,
NULL stuks, NULL gewicht, NULL verwerkingstijd,
NULL opgehaald, NULL onhandzaam, NULL gevaarlijk, NULL spoed,
onb_adr,
basistarief, NULL afgeboekt, NULL gecontroleerd, NULL bezorgd,
aangetekend, terugkoppel,
NULL mailing, NULL couverteren,
NULL ophaalkosten, NULL materiaalkosten,
NULL verwerkingskosten,
basistarief + aangetekend + terugkoppel totaal_kosten,
doorbelast
FROM (
SELECT m.mld_melding_key key,
'L'||m.mld_melding_key nummer,
m.mld_melding_status status,
m.mld_melding_datum datum,
m.mld_melding_einddatum einddatum,
s.mld_stdmelding_omschrijving melding,
d.ins_discipline_omschrijving vakgroep,
ak.prs_kostenplaats_key kostenplaats_key,
ak.prs_kostenplaats_nr kostenplaats_nr,
ak.prs_kostenplaats_omschrijving kostenplaats_oms,
m.mld_melding_ordernr ordernr,
ks.prs_kostensoort_oms kostensoort,
pf.prs_perslid_naam_full melder,
COALESCE( fac.safe_to_number(onb_adr.mld_kenmerkmelding_waarde), 0) onb_adr,
(SELECT fac_usrdata_prijs FROM fac_usrdata
WHERE fac_usrdata_key =
DECODE(COALESCE( fac.safe_to_number(onb_adr.mld_kenmerkmelding_waarde), 0),
1, 1765,
0, 1764) )
basistarief,
ud.fac_usrdata_prijs aangetekend,
COALESCE( fac.safe_to_number(terugkoppel.mld_kenmerkmelding_waarde), 0)
* (SELECT fac_usrdata_prijs FROM fac_usrdata
WHERE fac_usrdata_key = 1766)
terugkoppel,
fac.safe_to_number(doorbel.mld_kenmerkmelding_waarde) doorbelast
FROM mld_melding m,
mld_stdmelding s,
mld_discipline d,
prs_v_aanwezigkostenplaats ak,
prs_kostensoort ks,
prs_v_perslid_fullnames pf,
(SELECT * FROM mld_kenmerkmelding WHERE mld_kenmerk_key = 398
AND mld_kenmerkmelding_verwijder IS NULL) aangetekend,
(SELECT * FROM mld_kenmerkmelding WHERE mld_kenmerk_key = 449
AND mld_kenmerkmelding_verwijder IS NULL) terugkoppel,
(SELECT * FROM mld_kenmerkmelding WHERE mld_kenmerk_key = 430
AND mld_kenmerkmelding_verwijder IS NULL) onb_adr,
(SELECT * FROM fac_usrdata WHERE fac_usrtab_key = 483) ud,
(SELECT * FROM mld_kenmerkmelding WHERE mld_kenmerk_key = 562
AND mld_kenmerkmelding_verwijder IS NULL) doorbel
WHERE m.mld_stdmelding_key = 1044
AND m.mld_melding_status IN (5,6)
AND s.mld_stdmelding_key = m.mld_stdmelding_key
AND d.ins_discipline_key = s.mld_ins_discipline_key
AND ak.prs_kostenplaats_key = m.prs_kostenplaats_key
AND ks.prs_kostensoort_key = s.prs_kostensoort_key
AND pf.prs_perslid_key = m.prs_perslid_key
AND aangetekend.mld_melding_key(+) = m.mld_melding_key
AND ud.fac_usrdata_key(+) = fac.safe_to_number(aangetekend.mld_kenmerkmelding_waarde)
AND terugkoppel.mld_melding_key(+) = m.mld_melding_key
AND onb_adr.mld_melding_key(+) = m.mld_melding_key
AND doorbel.mld_melding_key(+) = m.mld_melding_key
)
UNION ALL
-- Mailing
-- stdmelding_key 1045
-- Kenmerken melding + usrtabs:
-- Vellen 443
-- Mailing 480
-- Gewicht 482
-- Couverteren 480
-- Couverteren 474
-- Aantal stuks 483
-- Verwerkingstijd 446
-- Prijslijst:
-- Verwerkingstijd: mailing, verz.exp., ontv.goed. (p/kwartier) 1782
SELECT key,'melding' xmlnode, nummer, datum, einddatum, status, melder,
melding, vakgroep, kostenplaats_key, kostenplaats_nr, kostenplaats_oms, ordernr, NULL po_nr, kostensoort,
stuks, gewicht, verwerkingstijd,
NULL opgehaald, NULL onhandzaam, NULL gevaarlijk, NULL spoed,
NULL onb_adr,
0 basistarief, NULL afgeboekt, NULL gecontroleerd, NULL bezorgd,
NULL aangetekend, NULL terugkoppel,
gewicht * vellen mailing, stuks/100 * couverteren couverteren,
NULL ophaalkosten, NULL materiaalkosten,
verwerkingskosten,
gewicht * vellen + stuks/100 * couverteren + verwerkingskosten totaal_kosten,
doorbelast
FROM (
SELECT m.mld_melding_key key,
'L'||m.mld_melding_key nummer,
m.mld_melding_status status,
m.mld_melding_datum datum,
m.mld_melding_einddatum einddatum,
s.mld_stdmelding_omschrijving melding,
d.ins_discipline_omschrijving vakgroep,
ak.prs_kostenplaats_key kostenplaats_key,
ak.prs_kostenplaats_nr kostenplaats_nr,
ak.prs_kostenplaats_omschrijving kostenplaats_oms,
m.mld_melding_ordernr ordernr,
ks.prs_kostensoort_oms kostensoort,
pf.prs_perslid_naam_full melder,
COALESCE( fac.safe_to_number(gewicht.mld_kenmerkmelding_waarde), 0) gewicht,
COALESCE( fac.safe_to_number(stuks.mld_kenmerkmelding_waarde), 0) stuks,
COALESCE( fac.safe_to_number(verwerkingstijd.mld_kenmerkmelding_waarde), 0) verwerkingstijd,
mail.fac_usrdata_prijs vellen,
couv.fac_usrdata_prijs couverteren,
COALESCE( fac.safe_to_number(verwerkingstijd.mld_kenmerkmelding_waarde), 0)
* (SELECT fac_usrdata_prijs FROM fac_usrdata
WHERE fac_usrdata_key = 1782)
verwerkingskosten,
fac.safe_to_number(doorbel.mld_kenmerkmelding_waarde) doorbelast
FROM mld_melding m,
mld_stdmelding s,
mld_discipline d,
prs_v_aanwezigkostenplaats ak,
prs_kostensoort ks,
prs_v_perslid_fullnames pf,
(SELECT * FROM mld_kenmerkmelding WHERE mld_kenmerk_key = 443
AND mld_kenmerkmelding_verwijder IS NULL) vel,
(SELECT * FROM mld_kenmerkmelding WHERE mld_kenmerk_key = 482
AND mld_kenmerkmelding_verwijder IS NULL) gewicht,
(SELECT * FROM mld_kenmerkmelding WHERE mld_kenmerk_key = 480
AND mld_kenmerkmelding_verwijder IS NULL) couvert,
(SELECT * FROM mld_kenmerkmelding WHERE mld_kenmerk_key = 483
AND mld_kenmerkmelding_verwijder IS NULL) stuks,
(SELECT * FROM mld_kenmerkmelding WHERE mld_kenmerk_key = 446
AND mld_kenmerkmelding_verwijder IS NULL) verwerkingstijd,
(SELECT * FROM fac_usrdata WHERE fac_usrtab_key = 480) mail,
(SELECT * FROM fac_usrdata WHERE fac_usrtab_key = 474) couv,
(SELECT * FROM mld_kenmerkmelding WHERE mld_kenmerk_key = 562
AND mld_kenmerkmelding_verwijder IS NULL) doorbel
WHERE m.mld_stdmelding_key = 1045
AND m.mld_melding_status IN (5,6)
AND s.mld_stdmelding_key = m.mld_stdmelding_key
AND d.ins_discipline_key = s.mld_ins_discipline_key
AND ak.prs_kostenplaats_key = m.prs_kostenplaats_key
AND ks.prs_kostensoort_key = s.prs_kostensoort_key
AND pf.prs_perslid_key = m.prs_perslid_key
AND vel.mld_melding_key(+) = m.mld_melding_key
AND mail.fac_usrdata_key(+) = fac.safe_to_number(vel.mld_kenmerkmelding_waarde)
AND gewicht.mld_melding_key(+) = m.mld_melding_key
AND couvert.mld_melding_key(+) = m.mld_melding_key
AND couv.fac_usrdata_key(+) = fac.safe_to_number(couvert.mld_kenmerkmelding_waarde)
AND stuks.mld_melding_key(+) = m.mld_melding_key
AND verwerkingstijd.mld_melding_key(+) = m.mld_melding_key
AND doorbel.mld_melding_key(+) = m.mld_melding_key
)
UNION ALL
-- Maandrapportage postale diensten
-- stdmelding_key 1046
-- Kenmerken:
-- Kostenplaats 420
-- Bedrag 411
SELECT key, 'melding' xmlnode, nummer, datum, einddatum, status, melder,
melding, vakgroep, kostenplaats_key, kostenplaats_nr, kostenplaats_oms, ordernr, NULL po_nr, kostensoort,
NULL stuks, NULL gewicht, NULL verwerkingstijd,
NULL opgehaald, NULL onhandzaam, NULL gevaarlijk, NULL spoed,
NULL onb_adr,
bedrag basistarief, NULL afgeboekt, NULL gecontroleerd, NULL bezorgd,
NULL aangetekend, NULL terugkoppel,
NULL mailing, NULL couverteren,
NULL ophaalkosten, NULL materiaalkosten,
NULL verwerkingskosten,
bedrag totaal_kosten,
doorbelast
FROM (
SELECT m.mld_melding_key key,
'L'||m.mld_melding_key nummer,
m.mld_melding_status status,
m.mld_melding_datum datum,
m.mld_melding_einddatum einddatum,
s.mld_stdmelding_omschrijving melding,
d.ins_discipline_omschrijving vakgroep,
ak.prs_kostenplaats_key kostenplaats_key,
ak.prs_kostenplaats_nr kostenplaats_nr,
ak.prs_kostenplaats_omschrijving kostenplaats_oms,
m.mld_melding_ordernr ordernr,
ks.prs_kostensoort_oms kostensoort,
pf.prs_perslid_naam_full melder,
COALESCE( fac.safe_to_number(bedrag.mld_kenmerkmelding_waarde), 0) bedrag,
fac.safe_to_number(doorbel.mld_kenmerkmelding_waarde) doorbelast
FROM mld_melding m,
mld_stdmelding s,
mld_discipline d,
prs_v_aanwezigkostenplaats ak,
prs_kostensoort ks,
prs_v_perslid_fullnames pf,
(SELECT * FROM mld_kenmerkmelding WHERE mld_kenmerk_key = 420
AND mld_kenmerkmelding_verwijder IS NULL) kpn,
(SELECT * FROM mld_kenmerkmelding WHERE mld_kenmerk_key = 411
AND mld_kenmerkmelding_verwijder IS NULL) bedrag,
(SELECT * FROM mld_kenmerkmelding WHERE mld_kenmerk_key = 562
AND mld_kenmerkmelding_verwijder IS NULL) doorbel
WHERE m.mld_stdmelding_key = 1046
AND m.mld_melding_status IN (5,6)
AND s.mld_stdmelding_key = m.mld_stdmelding_key
AND d.ins_discipline_key = s.mld_ins_discipline_key
AND kpn.mld_melding_key(+) = m.mld_melding_key
AND ak.prs_kostenplaats_key(+) = fac.safe_to_number(kpn.mld_kenmerkmelding_waarde)
AND ks.prs_kostensoort_key = s.prs_kostensoort_key
AND pf.prs_perslid_key = m.prs_perslid_key
AND bedrag.mld_melding_key(+) = m.mld_melding_key
AND doorbel.mld_melding_key(+) = m.mld_melding_key
)
UNION ALL
-- Vaste kosten
-- stdmelding_key 1101
-- Kenmerken:
-- Kostenplaats 564
-- Postrondes 561
-- Dagbladen 563
-- Opslag containers 621
-- Prijslijst:
-- Looprondes (p/maand) 2176
-- Dagblad bezorgen (p/maand) 2177
-- Opslag container 2197
SELECT key, 'melding' xmlnode, nummer, datum, einddatum, status, melder,
melding, vakgroep, kostenplaats_key, kostenplaats_nr, kostenplaats_oms, ordernr, NULL po_nr, kostensoort,
NULL stuks, NULL gewicht, NULL verwerkingstijd,
NULL opgehaald, NULL onhandzaam, NULL gevaarlijk, NULL spoed,
NULL onb_adr,
postrondes + dagbladen + containers basistarief, NULL afgeboekt, NULL gecontroleerd, NULL bezorgd,
NULL aangetekend, NULL terugkoppel,
NULL mailing, NULL couverteren,
NULL ophaalkosten, NULL materiaalkosten,
NULL verwerkingskosten,
postrondes + dagbladen + containers totaal_kosten,
doorbelast
FROM (
SELECT m.mld_melding_key key,
'L'||m.mld_melding_key nummer,
m.mld_melding_status status,
m.mld_melding_datum datum,
m.mld_melding_einddatum einddatum,
s.mld_stdmelding_omschrijving melding,
d.ins_discipline_omschrijving vakgroep,
ak.prs_kostenplaats_key kostenplaats_key,
ak.prs_kostenplaats_nr kostenplaats_nr,
ak.prs_kostenplaats_omschrijving kostenplaats_oms,
m.mld_melding_ordernr ordernr,
ks.prs_kostensoort_oms kostensoort,
pf.prs_perslid_naam_full melder,
COALESCE( fac.safe_to_number(pr.mld_kenmerkmelding_waarde), 0) postrondes,
COALESCE( fac.safe_to_number(db.mld_kenmerkmelding_waarde), 0) dagbladen,
COALESCE( fac.safe_to_number(oc.mld_kenmerkmelding_waarde), 0) containers,
fac.safe_to_number(doorbel.mld_kenmerkmelding_waarde) doorbelast
FROM mld_melding m,
mld_stdmelding s,
mld_discipline d,
prs_v_aanwezigkostenplaats ak,
prs_kostensoort ks,
prs_v_perslid_fullnames pf,
(SELECT * FROM mld_kenmerkmelding WHERE mld_kenmerk_key = 564
AND mld_kenmerkmelding_verwijder IS NULL) kpn,
(SELECT * FROM mld_kenmerkmelding WHERE mld_kenmerk_key = 561
AND mld_kenmerkmelding_verwijder IS NULL) pr,
(SELECT * FROM mld_kenmerkmelding WHERE mld_kenmerk_key = 563
AND mld_kenmerkmelding_verwijder IS NULL) db,
(SELECT * FROM mld_kenmerkmelding WHERE mld_kenmerk_key = 621
AND mld_kenmerkmelding_verwijder IS NULL) oc,
(SELECT * FROM mld_kenmerkmelding WHERE mld_kenmerk_key = 562
AND mld_kenmerkmelding_verwijder IS NULL) doorbel
WHERE m.mld_stdmelding_key = 1101
AND m.mld_melding_status IN (5,6)
AND s.mld_stdmelding_key = m.mld_stdmelding_key
AND d.ins_discipline_key = s.mld_ins_discipline_key
AND kpn.mld_melding_key(+) = m.mld_melding_key
AND ak.prs_kostenplaats_key(+) = fac.safe_to_number(kpn.mld_kenmerkmelding_waarde)
AND ks.prs_kostensoort_key = s.prs_kostensoort_key
AND pf.prs_perslid_key = m.prs_perslid_key
AND pr.mld_melding_key(+) = m.mld_melding_key
AND oc.mld_melding_key(+) = m.mld_melding_key
AND db.mld_melding_key(+) = m.mld_melding_key
AND doorbel.mld_melding_key(+) = m.mld_melding_key
)
UNION ALL
-- Toners/olie/nietjes
-- stdmelding_key 1047
-- Kenmerken melding + usrtabs:
-- Kostenplaats 415
-- #Zwarte toner 452
-- #Rode toner 440
-- #Gele toner 418
-- #Blauwe toner 414
-- Olie 429
-- Nietjes 428
-- Prijslijst:
-- Bezorgen toner/papier (p/st) 2172
SELECT key, 'melding' xmlnode, nummer, datum, einddatum, status, melder,
melding, vakgroep, kostenplaats_key, kostenplaats_nr, kostenplaats_oms, ordernr, NULL po_nr, kostensoort,
(z+r+g+b+o+n) stuks, NULL gewicht, NULL verwerkingstijd,
NULL opgehaald, NULL onhandzaam, NULL gevaarlijk, NULL spoed,
NULL onb_adr,
0 basistarief, NULL afgeboekt, NULL gecontroleerd, NULL bezorgd,
NULL aangetekend, NULL terugkoppel,
NULL mailing, NULL couverteren,
NULL ophaalkosten, NULL materiaalkosten,
NULL verwerkingskosten,
(z+r+g+b+o+n) * stuksprijs totaal_kosten,
doorbelast
FROM (
SELECT m.mld_melding_key key,
'L'||m.mld_melding_key nummer,
m.mld_melding_status status,
m.mld_melding_datum datum,
m.mld_melding_einddatum einddatum,
s.mld_stdmelding_omschrijving melding,
d.ins_discipline_omschrijving vakgroep,
ak.prs_kostenplaats_key kostenplaats_key,
ak.prs_kostenplaats_nr kostenplaats_nr,
ak.prs_kostenplaats_omschrijving kostenplaats_oms,
m.mld_melding_ordernr ordernr,
ks.prs_kostensoort_oms kostensoort,
pf.prs_perslid_naam_full melder,
fac.safe_to_number(kpn.mld_kenmerkmelding_waarde) fkpn,
m.prs_kostenplaats_key mkpn,
COALESCE( fac.safe_to_number(zwart.mld_kenmerkmelding_waarde) , 0 ) z,
COALESCE( fac.safe_to_number(rood.mld_kenmerkmelding_waarde), 0 ) r,
COALESCE( fac.safe_to_number(geel.mld_kenmerkmelding_waarde), 0 ) g,
COALESCE( fac.safe_to_number(blauw.mld_kenmerkmelding_waarde), 0 ) b,
COALESCE( fac.safe_to_number(olie.mld_kenmerkmelding_waarde), 0 ) o,
COALESCE( fac.safe_to_number(nietjes.mld_kenmerkmelding_waarde), 0 ) n,
(SELECT fac_usrdata_prijs FROM fac_usrdata WHERE fac_usrdata_key = 2172) stuksprijs,
fac.safe_to_number(doorbel.mld_kenmerkmelding_waarde) doorbelast
FROM mld_melding m,
mld_stdmelding s,
mld_discipline d,
prs_v_aanwezigkostenplaats ak,
prs_kostensoort ks,
prs_v_perslid_fullnames pf,
(SELECT * FROM mld_kenmerkmelding WHERE mld_kenmerk_key = 415
AND mld_kenmerkmelding_verwijder IS NULL) kpn,
(SELECT * FROM mld_kenmerkmelding WHERE mld_kenmerk_key = 452
AND mld_kenmerkmelding_verwijder IS NULL) zwart,
(SELECT * FROM mld_kenmerkmelding WHERE mld_kenmerk_key = 440
AND mld_kenmerkmelding_verwijder IS NULL) rood,
(SELECT * FROM mld_kenmerkmelding WHERE mld_kenmerk_key = 418
AND mld_kenmerkmelding_verwijder IS NULL) geel,
(SELECT * FROM mld_kenmerkmelding WHERE mld_kenmerk_key = 414
AND mld_kenmerkmelding_verwijder IS NULL) blauw,
(SELECT * FROM mld_kenmerkmelding WHERE mld_kenmerk_key = 429
AND mld_kenmerkmelding_verwijder IS NULL) olie,
(SELECT * FROM mld_kenmerkmelding WHERE mld_kenmerk_key = 428
AND mld_kenmerkmelding_verwijder IS NULL) nietjes,
(SELECT * FROM mld_kenmerkmelding WHERE mld_kenmerk_key = 562
AND mld_kenmerkmelding_verwijder IS NULL) doorbel
WHERE m.mld_stdmelding_key = 1047
AND m.mld_melding_status IN (5,6)
AND s.mld_stdmelding_key = m.mld_stdmelding_key
AND d.ins_discipline_key = s.mld_ins_discipline_key
AND kpn.mld_melding_key(+) = m.mld_melding_key
AND ak.prs_kostenplaats_key(+) = fac.safe_to_number(kpn.mld_kenmerkmelding_waarde)
AND ks.prs_kostensoort_key = s.prs_kostensoort_key
AND pf.prs_perslid_key = m.prs_perslid_key
AND zwart.mld_melding_key(+) = m.mld_melding_key
AND rood.mld_melding_key(+) = m.mld_melding_key
AND geel.mld_melding_key(+) = m.mld_melding_key
AND blauw.mld_melding_key(+) = m.mld_melding_key
AND olie.mld_melding_key(+) = m.mld_melding_key
AND nietjes.mld_melding_key(+) = m.mld_melding_key
AND doorbel.mld_melding_key(+) = m.mld_melding_key
)
UNION ALL
-- Papier
-- stdmelding_key 1048
-- Kenmerken melding + usrtabs:
-- Kostenplaats 415
-- #dozen A4 399
-- #pakken A3 400
-- Prijslijst:
-- Bezorgen toner/papier (p/st) 2172
-- A4 (doos, inc bezorg, Teijin) 2173
-- A3 (pak, inc bezorg, Teijin) 2174
SELECT key, 'melding' xmlnode, nummer, datum, einddatum, status, melder,
melding, vakgroep, kostenplaats_key, kostenplaats_nr, kostenplaats_oms, ordernr, NULL po_nr, kostensoort,
(a4 + a3) stuks, NULL gewicht, NULL verwerkingstijd,
NULL opgehaald, NULL onhandzaam, NULL gevaarlijk, NULL spoed,
NULL onb_adr,
0 basistarief, NULL afgeboekt, NULL gecontroleerd, NULL bezorgd,
NULL aangetekend, NULL terugkoppel,
NULL mailing, NULL couverteren,
NULL ophaalkosten, NULL materiaalkosten,
NULL verwerkingskosten,
-- Papier wordt alleen aan Teijin doorbelast; Akzo betaalt alleen bezorging
CASE
WHEN prs_kostenplaats_key IN
(SELECT prs_kostenplaats_key
FROM prs_v_aanwezigkostenplaats
WHERE prs_kostenplaatsgrp_key IN (14,15) )
THEN (a4 * prijs_a4) + (a3 * prijs_a3)
ELSE (a4 + a3) * bezorging
END
totaal_kosten,
doorbelast
FROM (
SELECT m.mld_melding_key key,
'L'||m.mld_melding_key nummer,
m.mld_melding_status status,
m.mld_melding_datum datum,
m.mld_melding_einddatum einddatum,
s.mld_stdmelding_omschrijving melding,
d.ins_discipline_omschrijving vakgroep,
ak.prs_kostenplaats_key kostenplaats_key,
ak.prs_kostenplaats_key,
ak.prs_kostenplaats_nr kostenplaats_nr,
ak.prs_kostenplaats_omschrijving kostenplaats_oms,
m.mld_melding_ordernr ordernr,
ks.prs_kostensoort_oms kostensoort,
pf.prs_perslid_naam_full melder,
COALESCE( fac.safe_to_number(a4.mld_kenmerkmelding_waarde), 0 ) a4,
COALESCE( fac.safe_to_number(a3.mld_kenmerkmelding_waarde), 0 ) a3,
(SELECT fac_usrdata_prijs FROM fac_usrdata WHERE fac_usrdata_key = 2172) bezorging,
(SELECT fac_usrdata_prijs FROM fac_usrdata WHERE fac_usrdata_key = 2173) prijs_a4,
(SELECT fac_usrdata_prijs FROM fac_usrdata WHERE fac_usrdata_key = 2174) prijs_a3,
fac.safe_to_number(doorbel.mld_kenmerkmelding_waarde) doorbelast
FROM mld_melding m,
mld_stdmelding s,
mld_discipline d,
prs_v_aanwezigkostenplaats ak,
prs_kostensoort ks,
prs_v_perslid_fullnames pf,
(SELECT * FROM mld_kenmerkmelding WHERE mld_kenmerk_key = 415
AND mld_kenmerkmelding_verwijder IS NULL) kpn,
(SELECT * FROM mld_kenmerkmelding WHERE mld_kenmerk_key = 399
AND mld_kenmerkmelding_verwijder IS NULL) a4,
(SELECT * FROM mld_kenmerkmelding WHERE mld_kenmerk_key = 400
AND mld_kenmerkmelding_verwijder IS NULL) a3,
(SELECT * FROM mld_kenmerkmelding WHERE mld_kenmerk_key = 562
AND mld_kenmerkmelding_verwijder IS NULL) doorbel
WHERE m.mld_stdmelding_key = 1048
AND m.mld_melding_status IN (5,6)
AND s.mld_stdmelding_key = m.mld_stdmelding_key
AND d.ins_discipline_key = s.mld_ins_discipline_key
AND kpn.mld_melding_key(+) = m.mld_melding_key
AND ak.prs_kostenplaats_key(+) = fac.safe_to_number(kpn.mld_kenmerkmelding_waarde)
AND ks.prs_kostensoort_key = s.prs_kostensoort_key
AND pf.prs_perslid_key = m.prs_perslid_key
AND a4.mld_melding_key(+) = m.mld_melding_key
AND a3.mld_melding_key(+) = m.mld_melding_key
AND doorbel.mld_melding_key(+) = m.mld_melding_key
)
UNION ALL
-- Verzending Nederland/Europa/wereldwijd
-- TODO: opdrachten groeperen per melding
-- stdmelding_keys:
-- Verzending Nederland 1049
-- Verzending Europa 1050
-- Verzending wereldwijd 1051
-- typeopdr_keys:
-- Verzending Nederland 1052
-- Verzending Europa 1053
-- Verzending wereldwijd 1054
-- kenmerkmeldingen melding:
-- Ophalen op WP 361
-- Gevaarlijk 353
-- Onhandzaam 360
-- kenmerken melding:
-- Vervoerder (NL) 502 (prijsoverrule DHL Europlus)
-- kenmerkmeldingen opdracht:
-- Aantal units 377
-- prijslijst (usrtab_key 472):
-- Verzending voorbereiden binnenland 1757
-- Verzending voorbereiden binnenland gevaarlijk 1758
-- Verzending voorbereiden binnen Europa 1755
-- Verzending voorbereiden binnen Europa gevaarlijk 1756
-- Verzending voorbereiden buiten Europa 1759
-- Verzending voorbereiden buiten Europa gevaarlijk 1760
-- Ophalen van pakketten (HZP) 1777
-- Ophalen van bulk pakketten op pallet (OHZP) 1778
-- doorbelast bedrag:
-- kenmerksoort 462
-- kenmerken 566, 565, 567 (NL, EU, WW)
SELECT key, 'opdracht' xmlnode, nummer, datum, einddatum, status, melder,
melding, vakgroep, kostenplaats_key, kostenplaats_nr, kostenplaats_oms, ordernr, NULL po_nr, kostensoort,
NULL stuks, NULL gewicht, NULL verwerkingstijd,
opgehaald, onhandzaam, gevaarlijk, NULL spoed,
NULL onb_adr,
basistarief, NULL afgeboekt, NULL gecontroleerd, NULL bezorgd,
NULL aangetekend, NULL terugkoppel,
NULL mailing, NULL couverteren,
ophaalkosten, materiaalkosten,
NULL verwerkingskosten,
basistarief + ophaalkosten + materiaalkosten totaal_kosten,
doorbelast
FROM (
SELECT mld_opdr_key key,
'L'||mld_melding_key||'/'||volgnr nummer,
datum,
einddatum,
status,
melder,
melding,
vakgroep,
kostenplaats_key,
kostenplaats_nr,
kostenplaats_oms,
ordernr,
kostensoort,
oph opgehaald, ohz onhandzaam, gvr gevaarlijk,
(SELECT fac_usrdata_prijs FROM fac_usrdata
WHERE fac_usrdata_key =
DECODE(gvr,
1, DECODE(mld_stdmelding_key,
1051, 1760,
1050, 1756,
1049, 1758),
0, DECODE(mld_stdmelding_key,
1051, 1759,
1050, 1755,
1049, DECODE(vervoerder,
2165, 2165,
1757)
)
)
) basistarief,
DECODE(oph,
1, (SELECT fac_usrdata_prijs FROM fac_usrdata
WHERE fac_usrdata_key = DECODE(ohz,
1, 1778,
1777) ),
0 ) ophaalkosten,
mat materiaalkosten,
doorbelast
FROM (
SELECT mldopdr.*,
COALESCE( fac.safe_to_number(ophalen.waarde), 0) oph,
COALESCE( fac.safe_to_number(gevaarlijk.waarde), 0) gvr,
COALESCE( fac.safe_to_number(onhandzaam.waarde), 0) ohz,
materiaal.kosten mat
FROM (
SELECT m.mld_melding_key,
m.mld_stdmelding_key,
s.mld_stdmelding_omschrijving melding,
d.ins_discipline_omschrijving vakgroep,
ak.prs_kostenplaats_key kostenplaats_key,
ak.prs_kostenplaats_nr kostenplaats_nr,
ak.prs_kostenplaats_omschrijving kostenplaats_oms,
m.mld_melding_ordernr ordernr,
ks.prs_kostensoort_oms kostensoort,
pf.prs_perslid_naam_full melder,
o.mld_opdr_bedrijfopdr_volgnr volgnr,
o.mld_opdr_key,
m.mld_melding_datum datum,
m.mld_melding_einddatum einddatum,
o.mld_statusopdr_key status,
o.mld_typeopdr_key,
t.mld_typeopdr_omschrijving,
fac.safe_to_number(nl.mld_kenmerkmelding_waarde) vervoerder,
fac.safe_to_number(doorbel.mld_kenmerkopdr_waarde) doorbelast
FROM mld_melding m,
mld_opdr o,
mld_typeopdr t,
mld_stdmelding s,
mld_discipline d,
prs_v_aanwezigkostenplaats ak,
prs_kostensoort ks,
prs_v_perslid_fullnames pf,
(SELECT * FROM mld_kenmerkmelding WHERE mld_kenmerk_key = 502) nl,
(SELECT * FROM mld_kenmerkopdr
WHERE mld_kenmerk_key IN (565, 566, 567)) doorbel
WHERE m.mld_stdmelding_key IN (1049, 1050, 1051)
AND m.mld_melding_status IN (5,6)
AND m.mld_melding_key = o.mld_melding_key(+)
AND s.mld_stdmelding_key = m.mld_stdmelding_key
AND d.ins_discipline_key = s.mld_ins_discipline_key
AND ak.prs_kostenplaats_key = o.prs_kostenplaats_key
AND ks.prs_kostensoort_key = s.prs_kostensoort_key
AND pf.prs_perslid_key = m.prs_perslid_key
AND o.mld_typeopdr_key IN (1052, 1053, 1054)
AND o.mld_statusopdr_key IN (6,7,9)
AND t.mld_typeopdr_key = o.mld_typeopdr_key
AND nl.mld_melding_key(+) = m.mld_melding_key
AND doorbel.mld_opdr_key(+) = o.mld_opdr_key ) mldopdr
LEFT OUTER JOIN (
SELECT km.mld_melding_key,
km.mld_kenmerk_key,
km.mld_kenmerkmelding_waarde waarde
FROM mld_kenmerkmelding km,
mld_kenmerk k
WHERE k.mld_srtkenmerk_key = 361
AND km.mld_kenmerk_key = k.mld_kenmerk_key
AND km.mld_kenmerkmelding_verwijder IS NULL ) ophalen
ON ophalen.mld_melding_key = mldopdr.mld_melding_key
LEFT OUTER JOIN (
SELECT km.mld_melding_key,
km.mld_kenmerk_key,
km.mld_kenmerkmelding_waarde waarde
FROM mld_kenmerkmelding km,
mld_kenmerk k
WHERE k.mld_srtkenmerk_key = 353
AND km.mld_kenmerk_key = k.mld_kenmerk_key
AND km.mld_kenmerkmelding_verwijder IS NULL ) gevaarlijk
ON gevaarlijk.mld_melding_key = mldopdr.mld_melding_key
LEFT OUTER JOIN (
SELECT km.mld_melding_key,
km.mld_kenmerk_key,
km.mld_kenmerkmelding_waarde waarde
FROM mld_kenmerkmelding km,
mld_kenmerk k
WHERE k.mld_srtkenmerk_key = 360
AND km.mld_kenmerk_key = k.mld_kenmerk_key
AND km.mld_kenmerkmelding_verwijder IS NULL) onhandzaam
ON onhandzaam.mld_melding_key = mldopdr.mld_melding_key
LEFT OUTER JOIN (
SELECT om.mld_opdr_key,
SUM(mld_opdr_materiaal_aantal * mld_opdr_materiaal_prijs) kosten
FROM mld_opdr_materiaal om,
mld_opdr o
WHERE om.mld_opdr_key = o.mld_opdr_key
AND o.mld_typeopdr_key IN (1052, 1053, 1054)
AND o.mld_statusopdr_key IN (6,7,9)
AND om.fac_usrdata_key IS NOT NULL
GROUP BY om.mld_opdr_key) materiaal
ON materiaal.mld_opdr_key = mldopdr.mld_opdr_key
)
)
UNION ALL
-- Bezorgen lunchpakketten
-- catalogus "Te bezorgen lunchpakket SSCA" 875
-- Prijslijst
-- Ophalen en bezorgen van (lunch)pakketten (HZ) 1774
SELECT DISTINCT rr.res_rsv_ruimte_key key,
'reservering' xmlnode,
TO_CHAR(rr.res_reservering_key) nummer,
ra.res_rsv_artikel_levering datum,
rr.res_rsv_ruimte_tot einddatum,
ra.res_status_bo_key status,
pf.prs_perslid_naam_full melder,
'Lunchpakket bezorgen' melding,
'Reserveringen' vakgroep,
ak.prs_kostenplaats_key kostenplaats_key,
ak.prs_kostenplaats_nr kostenplaats_nr,
ak.prs_kostenplaats_omschrijving kostenplaats_oms,
rr.res_rsv_ruimte_ordernr ordernr,
NULL po_nr,
'SPOE' kostensoort,
NULL stuks, NULL gewicht, NULL verwerkingstijd,
NULL opgehaald, NULL onhandzaam, NULL gevaarlijk, NULL spoed,
NULL onb_adr,
ud.fac_usrdata_prijs basistarief, NULL afgeboekt, NULL gecontroleerd, NULL bezorgd,
NULL aangetekend, NULL terugkoppel,
NULL mailing, NULL couverteren,
NULL ophaalkosten, NULL materiaalkosten,
NULL verwerkingskosten,
ud.fac_usrdata_prijs totaal_prijs,
NULL doorbelast
FROM res_artikel a,
res_discipline d,
res_rsv_artikel ra,
res_rsv_ruimte rr,
prs_v_aanwezigkostenplaats ak,
prs_v_perslid_fullnames pf,
fac_usrdata ud
WHERE a.res_discipline_key = 875
AND d.ins_discipline_key = a.res_discipline_key
AND ra.res_artikel_key = a.res_artikel_key
AND ra.res_rsv_artikel_verwijder IS NULL
AND ra.res_status_bo_key IN (5,6)
AND TRUNC(ra.res_rsv_artikel_levering) BETWEEN TRUNC(TO_DATE('08-10-2012', 'DD-MM-YYYY'))
AND TRUNC(SYSDATE)
AND rr.res_rsv_ruimte_key = ra.res_rsv_ruimte_key
AND ak.prs_kostenplaats_key = rr.prs_kostenplaats_key
AND pf.prs_perslid_key = rr.res_rsv_ruimte_contact_key
AND ud.fac_usrdata_key = 1774);
--- PACKAGE MET REKENPROCEDURES; DEZE VULLEN DE EXPORTTABEL --------------------
CREATE OR REPLACE PACKAGE nour_p_sap
AS
FUNCTION isnumber (pstring IN VARCHAR2) RETURN BOOLEAN;
FUNCTION getBewonersOrdernr (pOpdracht_key IN NUMBER) RETURN VARCHAR2;
FUNCTION getInternalOrdernr (pMelding_key IN NUMBER) RETURN VARCHAR2;
PROCEDURE exp_mld (p_applname IN VARCHAR2,
p_doUpdate IN BOOLEAN);
PROCEDURE exp_res (p_applname IN VARCHAR2,
p_doUpdate IN BOOLEAN);
PROCEDURE exp_logistiek (p_applname IN VARCHAR2,
p_doUpdate IN BOOLEAN);
END;
/
CREATE OR REPLACE PACKAGE BODY nour_p_sap
AS
FUNCTION isnumber (pstring IN VARCHAR2)
RETURN BOOLEAN
IS
lnnumber NUMBER (10);
lbisnumber BOOLEAN;
BEGIN
lbisnumber := TRUE;
BEGIN
lnnumber := fac.safe_to_number (pstring);
EXCEPTION
WHEN OTHERS
THEN
lbisnumber := FALSE;
END;
RETURN lbisnumber;
END;
FUNCTION getbewonersordernr (popdracht_key IN NUMBER)
RETURN VARCHAR2
IS
lresult VARCHAR2 (1024);
BEGIN
BEGIN
SELECT mld_opdr_ordernr
INTO lresult
FROM mld_opdr
WHERE mld_opdr_key = popdracht_key;
EXCEPTION
WHEN OTHERS
THEN
lresult := '';
END;
RETURN lresult;
END;
FUNCTION getinternalordernr (pmelding_key IN NUMBER)
RETURN VARCHAR2
IS
lresult VARCHAR2 (1024);
lonroerendgoed_key NUMBER (10);
lgebouw_key NUMBER (10);
lterrien_key NUMBER (10);
lonroerendgoed_type VARCHAR (2);
BEGIN
-- alg_gebouw_ordernr OR alg_terreinsector_ordernr
BEGIN
lresult := '';
SELECT mld_alg_onroerendgoed_keys
INTO lonroerendgoed_key
FROM mld_melding
WHERE mld_melding_key = pmelding_key;
SELECT alg_type, alg_terreinsector_key, alg_gebouw_key
INTO lonroerendgoed_type, lterrien_key, lgebouw_key
FROM alg_v_allonroerendgoed
WHERE alg_onroerendgoed_keys = lonroerendgoed_key;
IF (lonroerendgoed_type = 'T')
THEN
SELECT alg_terreinsector_ordernr
INTO lresult
FROM alg_terreinsector
WHERE alg_terreinsector_key = lterrien_key;
ELSE -- lOnroerendgoed_type in ('R','V','G')
SELECT alg_gebouw_ordernr
INTO lresult
FROM alg_gebouw
WHERE alg_gebouw_key = lgebouw_key;
END IF;
EXCEPTION
WHEN OTHERS
THEN
lresult := '';
END;
RETURN lresult;
END;
-- Specify p_doUpdate to set TV/AV statusses in MLD
-- Voorheen werd hier het leveranciernr (altijd bedrijf) opgehaald. Behandelaar lijkt me relevanter om
-- te achterhalen wie de dienst geleverd heeft.
PROCEDURE exp_mld (p_applname IN VARCHAR2, p_doUpdate IN BOOLEAN)
IS
-- Alle afgemelde deelopdrachten waarbij opdrachtkosten + aanneemsom != 0
-- Alleen de Afvalverwijdering-opdrachten waarbij kenmerk "Correct op factuur" = "Ja"
-- moeten worden ge<67>xporteerd.
-- mld_kenmerk Aanneemsom 2
-- mld_typeopdr Deelopdracht-afvalverwijdering 921
-- mld_srtkenmerk Correct op factuur aangetroffen? 208
-- fac_usrdata Reeds gefactureerd-->Ja 1236
CURSOR sap_meldingen
IS
SELECT m.mld_melding_key,
m.mld_alg_onroerendgoed_keys,
COALESCE( TRIM( ks.prs_kostensoort_oms), 'ONBEKEND') prs_kostensoort_oms,
pf.prs_perslid_naam_full,
k.prs_kostenplaats_nr,
k.prs_kostenplaats_key,
k.debiteurnr,
k.prs_kostenplaats_module,
d.ins_discipline_omschrijving||' / '||sm.mld_stdmelding_omschrijving
mld_stdmelding_omschrijving,
o.mld_opdr_key,
sd.ins_srtdiscipline_prefix
|| TO_CHAR(m.mld_melding_key)||'/'
|| TO_CHAR(o.mld_opdr_bedrijfopdr_volgnr)
nummer,
o.mld_uitvoerende_keys,
o.mld_opdr_kosten,
m.prs_perslid_key,
o.mld_typeopdr_key,
ac.companycode crediteurnr,
m.mld_melding_einddatum einddatum,
COALESCE(fac.safe_to_number(aanneemsom.mld_kenmerkopdr_waarde), 0) aanneemsom
FROM mld_melding m,
mld_stdmelding sm,
mld_discipline d,
ins_srtdiscipline sd,
mld_opdr o,
nour_v_kostenplaats k,
prs_kostensoort ks,
prs_v_perslid_fullnames_all pf,
prs_perslid p,
nour_v_afdelingcompany ac,
(SELECT * FROM mld_kenmerkopdr
WHERE mld_kenmerk_key = 2
AND mld_kenmerkopdr_verwijder IS NULL
AND mld_kenmerkopdr_waarde != '.00') aanneemsom,
(SELECT *
FROM mld_kenmerkopdr ko, mld_kenmerk k
WHERE k.mld_srtkenmerk_key = 208
AND k.mld_kenmerk_verwijder IS NULL
AND ko.mld_kenmerk_key = k.mld_kenmerk_key
AND ko.mld_kenmerkopdr_verwijder IS NULL
AND ko.mld_kenmerkopdr_waarde = '1236') correct
WHERE o.mld_statusopdr_key = 6
AND m.mld_melding_key = o.mld_melding_key
AND sm.mld_stdmelding_key = m.mld_stdmelding_key
AND d.ins_discipline_key = sm.mld_ins_discipline_key
AND sd.ins_srtdiscipline_key = d.ins_srtdiscipline_key
AND sd.ins_srtdiscipline_alg = 1 -- AKZA#684
AND ks.prs_kostensoort_key(+) = d.prs_kostensoort_key
AND k.prs_kostenplaats_key(+) = o.prs_kostenplaats_key
AND p.prs_perslid_key = o.prs_perslid_key
AND ac.prs_afdeling_key = p.prs_afdeling_key
AND pf.prs_perslid_key = m.prs_perslid_key
AND aanneemsom.mld_opdr_key(+) = o.mld_opdr_key
AND correct.mld_opdr_key(+) = o.mld_opdr_key
-- Alleen als er kosten zijn
AND o.mld_opdr_kosten + COALESCE(fac.safe_to_number(aanneemsom.mld_kenmerkopdr_waarde), 0) != 0
-- Als afvalverwijdering, dan ook correct op factuur
AND NOT ( o.mld_typeopdr_key = 921
AND ( correct.mld_kenmerkopdr_waarde IS NULL
OR correct.mld_kenmerkopdr_waarde != '1236') )
ORDER BY m.mld_melding_key, o.mld_opdr_bedrijfopdr_volgnr;
rec sap_meldingen%ROWTYPE;
v_kostenplaats VARCHAR2 (10);
v_melding_key NUMBER;
v_debiteurnr VARCHAR2 (12);
v_companycode VARCHAR2 (10);
v_disciplinekostensoort prs_kostensoort.prs_kostensoort_oms%TYPE;
v_bewonersordernr prs_kostenplaats.prs_kostenplaats_nr%TYPE;
v_internalordernr VARCHAR2 (255);
v_opdrkosten mld_opdr.mld_opdr_kosten%TYPE;
v_leveranciernr prs_bedrijf.prs_leverancier_nr%TYPE;
v_opdrachten NUMBER (10);
v_aanneemsom NUMBER (10, 2);
v_count NUMBER;
v_aanduiding VARCHAR2(255);
v_errormsg VARCHAR2(255);
v_errorhint VARCHAR2(255);
BEGIN
-- INIT
v_errormsg := 'init';
v_errorhint := 'init';
v_aanduiding := 'init';
DELETE nour_exp_sap
WHERE soort = 'opdracht';
DELETE imp_log
WHERE imp_log_applicatie = p_applname
AND imp_log_datum < SYSDATE - 185;
FOR rec IN sap_meldingen
LOOP
BEGIN
v_aanduiding := rec.nummer;
v_debiteurnr := NULL;
v_companycode := NULL;
v_errormsg := rec.prs_kostenplaats_module||'-kostenplaats '
||rec.prs_kostenplaats_nr||' (#'||rec.prs_kostenplaats_key||')';
v_errorhint := 'Fout bij overnemen gegevens';
v_melding_key := rec.mld_melding_key;
v_kostenplaats := rec.prs_kostenplaats_nr;
v_disciplinekostensoort := rec.prs_kostensoort_oms;
v_opdrkosten := rec.mld_opdr_kosten + rec.aanneemsom;
-- Bepaal de Companycode adhv het bij de kostenplaatsgroep geregistreerde debiteurnr
-- (verliep voorheen via kpn-->afdeling-->parent, maar dat levert soms meerdere resultaten)
-- nu: kpn-->nr kpngroep = debiteurnr-->flexkenmerk "Debiteurnr" bij toplevel-afdeling = company
v_errorhint := 'Geen debiteurnr en/of companycode gevonden!';
SELECT DISTINCT k.debiteurnr, ac.companycode
INTO v_debiteurnr, v_companycode
FROM mld_opdr o,
nour_v_kostenplaats k,
prs_kenmerklink kl,
nour_v_afdelingcompany ac
WHERE o.mld_opdr_key = rec.mld_opdr_key
AND k.prs_kostenplaats_key = o.prs_kostenplaats_key
AND kl.prs_kenmerklink_waarde = k.debiteurnr
AND kl.prs_kenmerk_key = 1380
AND kl.prs_kenmerklink_verwijder IS NULL
AND ac.prs_afdeling_key = kl.prs_link_key;
-- Eigenlijk is KostenKlant niet meer helemaal bepalend, het is meer of de gekozen kostenplaats
-- een ALG of een PRS kostenplaats is!
IF rec.prs_kostenplaats_module = 'PRS'
THEN
v_errormsg := 'PRS-kostenplaats';
v_errorhint := 'Fout bij bepalen bewonersordernr';
SELECT nour_p_sap.getbewonersordernr (rec.mld_opdr_key)
INTO v_bewonersordernr
FROM DUAL;
-- PKO: (bewoners)ordernr wordt niet meer meegegeven in de export. In de nabije toekomst
-- worden ordernrs als projectkostenplaatsen opgenomen. Daarom niet meer met kostenplaatsen
-- en kostensoorten goochelen o.b.v. die ordernummers.
IF 1=0
THEN
IF (SUBSTR (v_bewonersordernr, 1, 1) = 'B' OR SUBSTR (v_bewonersordernr, 1, 1) = 'b')
AND isnumber (SUBSTR (v_bewonersordernr, 3, 1))
AND fac.safe_to_number (SUBSTR (v_bewonersordernr, 3, 1)) >= 1
AND isnumber (SUBSTR (v_bewonersordernr, 6, 3))
AND fac.safe_to_number (SUBSTR (v_bewonersordernr, 6, 3)) >= 10
--AND v_companycode = defcompcode
THEN
--lgn('B');
--TODO: uit mail Erik van Asveld d.d. 25-02-2014: "Voor <20>bewoners orders<72> (orders met een B,
--of zonder beginletter) is er geen <20><>n op <20><>n relatie meer. De meeboekrekening is de GL account
--waar de kosten uiteindelijk op de ontvangende kostenplaats terecht moet komen."
v_kostenplaats := '0000000';
v_disciplinekostensoort := '4310010';
ELSE
IF (SUBSTR (v_bewonersordernr, 1, 1) = 'I' OR SUBSTR (v_bewonersordernr, 1, 1) = 'i')
AND isnumber (SUBSTR (v_bewonersordernr, 3, 1))
AND fac.safe_to_number (SUBSTR (v_bewonersordernr, 3, 1)) >= 1
AND isnumber (SUBSTR (v_bewonersordernr, 6, 3))
AND fac.safe_to_number (SUBSTR (v_bewonersordernr, 6, 3)) >= 10
--AND v_companycode = defcompcode
THEN
--lgn('I');
v_kostenplaats := '0000000';
v_disciplinekostensoort := '6999026';
ELSE
IF (SUBSTR (v_bewonersordernr, 1, 1) = 'O' OR SUBSTR (v_bewonersordernr, 1, 1) = 'o')
AND isnumber (SUBSTR (v_bewonersordernr, 3, 1))
AND fac.safe_to_number (SUBSTR (v_bewonersordernr, 3, 1)) >= 1
AND isnumber (SUBSTR (v_bewonersordernr, 6, 3))
AND fac.safe_to_number (SUBSTR (v_bewonersordernr, 6, 3)) >= 10
--AND v_companycode = defcompcode
THEN
--lgn('O');
v_kostenplaats := '0000000';
v_disciplinekostensoort := '6999031';
END IF;
END IF;
END IF;
END IF;
-- PRS-kostenplaats, dus bewonersordernr gebruiken, niet internal ordernr.
v_internalordernr := '';
ELSE
v_errormsg := 'ALG-kostenplaats';
v_disciplinekostensoort := '4301001';
-- ALG-kostenplaats, dus internal ordernr gebruiken, niet bewonersordernr.
v_bewonersordernr := NULL;
-- Zoek bij pand (of terrein) geregistreerd ordernr
v_errorhint := 'Fout bij bepalen internal ordernr';
SELECT SUBSTR( nour_p_sap.getinternalordernr (rec.mld_melding_key), 1, 6)
INTO v_internalordernr
FROM DUAL;
IF fac.safe_to_number (SUBSTR (v_internalordernr, 1, 1)) >= 1
AND fac.safe_to_number (SUBSTR (v_internalordernr, 4, 3)) >= 10
THEN
v_disciplinekostensoort := '4310010';
END IF;
END IF;
IF v_opdrkosten != 0
THEN
v_errormsg := 'Insert record';
v_errorhint := 'Invoegen record mislukt!';
INSERT INTO nour_exp_sap
(soort,
crediteurnr,
debiteurnr,
companycode,
costcentre,
ordernr,
postingkey,
kostensoort,
key,
refnr,
einddatum,
bedrag_ex,
bedrag_inc,
btwcode,
omschrijving,
perslid)
VALUES
('opdracht',
rec.crediteurnr,
v_debiteurnr,
v_companycode,
v_kostenplaats,
COALESCE(v_bewonersordernr, v_internalordernr),
CASE
WHEN v_opdrkosten >= 0 THEN '40'
ELSE '50'
END,
v_disciplinekostensoort,
rec.mld_opdr_key,
rec.nummer,
COALESCE((SELECT MAX(fac_tracking_datum)
FROM fac_tracking
WHERE fac_tracking_refkey = rec.mld_opdr_key
AND fac_srtnotificatie_key = 26),
rec.einddatum),
v_opdrkosten,
ROUND(v_opdrkosten * 1.21, 2),
'21',
rec.mld_stdmelding_omschrijving,
rec.prs_perslid_naam_full);
fac.writelog (p_applname, 'I',
v_aanduiding,
v_opdrkosten
);
END IF;
-- Zet de status van de melding op 'Verwerkt'.
-- Als er opdrachten zijn dan moeten deze op 'Verwerkt' gezet worden,
-- anders moet de melding zelf op 'Verwerkt' gezet worden.
IF p_doUpdate
THEN
v_errormsg := 'p_doUpdate';
v_errorhint := 'Fout bij zoeken opdrachten';
SELECT COUNT ( * )
INTO v_opdrachten
FROM mld_opdr
WHERE mld_melding_key = rec.mld_melding_key;
IF v_opdrachten > 0 -- Always true, since this is cursor criterium
THEN
v_errorhint := 'Fout bij zetten opdrachtstatus';
FOR opdrrec
IN (SELECT mld_opdr_key
FROM mld_opdr
WHERE mld_statusopdr_key = 6
AND mld_melding_key = rec.mld_melding_key)
LOOP
v_errorhint := 'Opdracht #'||opdrrec.mld_opdr_key||' verwerken';
mld.setopdrachtstatus (opdrrec.mld_opdr_key, 7, NULL);
END LOOP;
-- Tel het aantal nog niet AV-verklaarde (verwerkte) opdrachten bij deze melding
-- Als dat er 0 zijn, moet de melding ook status Verwerkt krijgen
-- 981119/pf #2083
v_errorhint := 'Fout bij tellen opdrachten';
SELECT COUNT ( * )
INTO v_opdrachten
FROM mld_opdr
WHERE mld_melding_key = rec.mld_melding_key
AND mld_statusopdr_key <> 7;
IF v_opdrachten = 0
THEN
v_errorhint := 'Fout bij verwerken melding '||rec.mld_melding_key;
mld.setmeldingstatus (rec.mld_melding_key, 6, NULL);
fac.writelog (p_applname, 'I',
rec.mld_melding_key,
'Verwerkt'
);
END IF;
ELSE
v_errorhint := 'Fout bij verwerken melding '||rec.mld_melding_key||' (zonder opdrachten)';
mld.setmeldingstatus (rec.mld_melding_key, 6, NULL);
fac.writelog (p_applname, 'I',
rec.mld_melding_key,
'Verwerkt'
);
END IF;
END IF;
EXCEPTION
WHEN NO_DATA_FOUND
THEN
fac.writelog (p_applname, 'E',
v_aanduiding||': '||v_errorhint||' ('||v_errormsg||')',
'Geen gegevens gevonden (' || SUBSTR (SQLERRM, 1, 9) || ')'
);
WHEN OTHERS
THEN
fac.writelog (p_applname, 'E',
v_aanduiding||': '||v_errorhint||' ('||v_errormsg||')',
'Error ' || SQLCODE || '/' || SUBSTR (SQLERRM, 1, 100)
);
END;
END LOOP;
COMMIT;
EXCEPTION
WHEN OTHERS
THEN
fac.writelog (p_applname, 'E',
v_aanduiding||': '||v_errorhint||' ('||v_errormsg||')',
'Error ' || SQLCODE || '/' || SUBSTR (SQLERRM, 1, 100)
);
COMMIT;
END;
-- Specify p_doUpdate to set TV/AV statuses in Catering
PROCEDURE exp_res (p_applname IN VARCHAR2, p_doUpdate IN BOOLEAN)
IS
-- Alle reserveringen met kosten
CURSOR c_sapres
IS
SELECT r.*,
DECODE (r.alg_locatie_key,
2, '0801', -- SSCA
161, '0801', -- AHO
0, '0801', -- AHO (rit)
121, '1435') -- DEV
crediteurnr
FROM ( SELECT * FROM nour_v_export_catering
UNION ALL
SELECT * FROM nour_v_export_resdeel
UNION ALL
SELECT * FROM nour_v_export_resruimten
UNION ALL
SELECT * FROM nour_v_export_resritten) r
WHERE bedrag > 0;
rec c_sapres%ROWTYPE;
v_companycode VARCHAR2 (12);
v_kostensoort VARCHAR2 (12);
v_btw VARCHAR2 (2);
v_errorhint VARCHAR2(100);
v_errormsg VARCHAR2(100);
v_aanduiding VARCHAR2(100);
BEGIN
v_aanduiding := 'init';
v_errormsg := 'init';
v_errorhint := 'init';
DELETE nour_exp_sap
WHERE soort IN ('artikel', 'deel', 'ruimte', 'rit');
DELETE imp_log
WHERE imp_log_applicatie = p_applname
AND imp_log_datum < SYSDATE - 185;
FOR rec IN c_sapres
LOOP
BEGIN
v_aanduiding := rec.res_reservering_key||'/'||rec.res_rsv_ruimte_volgnr||' - '||rec.ruimte_art_oms;
v_errormsg := 'Start';
v_errorhint := 'Fout bij overnemen gegevens';
v_companycode := rec.companycode;
v_kostensoort := rec.kostensoort;
v_errormsg := 'Insert record';
v_errorhint := 'Invoegen record mislukt!';
INSERT INTO nour_exp_sap
(soort,
crediteurnr,
debiteurnr,
companycode,
costcentre,
ordernr,
postingkey,
kostensoort,
key,
refnr,
einddatum,
bedrag_ex,
bedrag_inc,
btwcode,
omschrijving,
perslid)
VALUES
(rec.soort,
rec.crediteurnr,
rec.debiteurnr,
rec.companycode,
rec.kostenplaatscode,
rec.res_rsv_ruimte_ordernr,
rec.postkey,
rec.kostensoort,
COALESCE(rec.res_rsv_deel_key, rec.res_rsv_artikel_key, rec.res_rsv_ruimte_key),
TO_CHAR(rec.res_reservering_key)||'/'||TO_CHAR(rec.res_rsv_ruimte_volgnr),
COALESCE((SELECT MAX(fac_tracking_datum)
FROM fac_tracking
WHERE fac_tracking_refkey = rec.res_rsv_ruimte_key
AND fac_srtnotificatie_key = 32),
rec.einddatum),
rec.bedrag,
ROUND(rec.bedrag * (1 + fac.safe_to_number(rec.btw/100) ), 2),
rec.btw,
rec.datum||' '||rec.ruimte_art_oms,
rec.melder);
fac.writelog(p_applname, 'I',
v_aanduiding,
rec.bedrag);
IF p_doUpdate
THEN
v_errormsg := 'Update status';
v_errorhint := 'Fout bij '||rec.soort;
IF (rec.res_rsv_artikel_key IS NOT NULL)
THEN
UPDATE res_rsv_artikel
SET res_status_bo_key = 6
WHERE res_status_bo_key = 5 AND res_rsv_artikel_key = rec.res_rsv_artikel_key;
END IF;
IF (rec.res_rsv_deel_key IS NOT NULL)
THEN
UPDATE res_rsv_deel
SET res_status_bo_key = 6
WHERE res_status_bo_key = 5 AND res_rsv_deel_key = rec.res_rsv_deel_key;
END IF;
IF (rec.res_rsv_deel_key IS NULL) AND (rec.res_rsv_artikel_key IS NULL)
THEN
UPDATE res_rsv_ruimte
SET res_status_bo_key = 6
WHERE res_status_bo_key = 5 AND res_rsv_ruimte_key = rec.res_rsv_ruimte_key;
END IF;
fac.trackaction ('RESVER', rec.res_rsv_ruimte_key, NULL, NULL, NULL);
END IF;
EXCEPTION
WHEN NO_DATA_FOUND
THEN
fac.writelog (p_applname, 'E',
v_aanduiding||': '||v_errorhint||' ('||v_errormsg||')',
'Geen gegevens gevonden (' || SUBSTR (SQLERRM, 1, 9) || ')'
);
WHEN OTHERS
THEN
fac.writelog (p_applname, 'E',
v_aanduiding||': '||v_errorhint||' ('||v_errormsg||')',
'Error ' || SQLCODE || '/' || SUBSTR (SQLERRM, 1, 100)
); -- tbv logging
END;
END LOOP;
EXCEPTION
WHEN OTHERS
THEN
fac.writelog (p_applname, 'E',
v_aanduiding||': '||v_errorhint||' ('||v_errormsg||')',
'Error ' || SQLCODE || '/' || SUBSTR (SQLERRM, 1, 100)
);
COMMIT;
END;
PROCEDURE exp_logistiek (p_applname IN VARCHAR2, p_doUpdate IN BOOLEAN)
IS
v_aanduiding VARCHAR(100);
v_errormsg VARCHAR(200);
v_errorhint VARCHAR(200);
v_count NUMBER;
-- In een aantal afdelingskenmerken worden maandelijks terugkerende vaste kosten
-- bijgehouden. Op basis hiervan maken we per (afdelings-)kostenplaats een melding
-- aan, om zo historie op te bouwen.
-- Deze cursor bevat een regel per melding, met gesommeerde kosten voor
-- postrondes en/of dagbladen.
CURSOR c_vast
IS
-- usrdata:
-- Looprondes (p/maand) 2176
-- Dagblad bezorgen (p/maand) 2177
-- Opslag containers 2197
-- Kenmerken:
-- Postrondes:
-- Ophaalplaats 1/2/3 1295 / 1296 / 1297
-- Dagbladen:
-- Bezorgplaats 1/2/3 1301 / 1305 / 1308
-- Containers:
-- Aantal containers 1321
SELECT a.prs_kostenplaats_key,
k.prs_kostenplaats_omschrijving,
p.postrondes,
d.dagbladen,
c.containers
FROM prs_kostenplaats k,
prs_afdeling a
LEFT OUTER JOIN ( SELECT prs_afdeling_key,
SUM (fac_usrdata_prijs) postrondes
FROM prs_afdeling, prs_kenmerklink, fac_usrdata
WHERE prs_link_key = prs_afdeling_key
AND prs_kenmerk_key IN (1295, 1296, 1297)
AND prs_kenmerklink_verwijder IS NULL
AND fac_usrdata_key = 2176
GROUP BY prs_afdeling_key) p
ON p.prs_afdeling_key = a.prs_afdeling_key
LEFT OUTER JOIN ( SELECT prs_afdeling_key,
SUM (fac_usrdata_prijs) dagbladen
FROM prs_afdeling, prs_kenmerklink, fac_usrdata
WHERE prs_link_key = prs_afdeling_key
AND prs_kenmerk_key IN (1301, 1305, 1308)
AND prs_kenmerklink_verwijder IS NULL
AND fac_usrdata_key = 2177
GROUP BY prs_afdeling_key) d
ON d.prs_afdeling_key = a.prs_afdeling_key
LEFT OUTER JOIN ( SELECT prs_afdeling_key,
SUM ( fac.safe_to_number(prs_kenmerklink_waarde)
* fac_usrdata_prijs) containers
FROM prs_afdeling, prs_kenmerklink, fac_usrdata
WHERE prs_link_key = prs_afdeling_key
AND prs_kenmerk_key = 1321
AND prs_kenmerklink_verwijder IS NULL
AND fac_usrdata_key = 2197
GROUP BY prs_afdeling_key) c
ON c.prs_afdeling_key = a.prs_afdeling_key
WHERE a.prs_afdeling_verwijder IS NULL
AND k.prs_kostenplaats_key = a.prs_kostenplaats_key
AND ( p.postrondes IS NOT NULL
OR d.dagbladen IS NOT NULL
OR c.containers IS NOT NULL);
CURSOR c_insert
IS
SELECT xmlnode,
'0801' crediteurnr,
k.debiteurnr,
ac.companycode,
k.prs_kostenplaats_nr costcentre,
ordernr,
CASE
WHEN (totaal_kosten < 0) THEN 50
ELSE 40
END postingkey,
kostensoort,
key,
nummer refnr,
einddatum,
totaal_kosten bedrag_ex,
ROUND(totaal_kosten * 1.21, 2) bedrag_inc,
'21' btwcode,
-- Als (Teijin-) PO-nummer gevuld, dan in omschrijving vermelden.
DECODE(po_nr,
NULL, '',
po_nr||' ')
||vakgroep||' / '||melding omschrijving,
melder perslid
FROM nour_v_logistiek_doorbel l,
nour_v_kostenplaats k,
(SELECT * FROM prs_kenmerklink
WHERE prs_kenmerk_key = 1380
AND prs_kenmerklink_verwijder IS NULL) kl,
nour_v_afdelingcompany ac
WHERE totaal_kosten != 0
AND k.prs_kostenplaats_key = l.kostenplaats_key
AND kl.prs_kenmerklink_waarde = k.debiteurnr
AND ac.prs_afdeling_key = kl.prs_link_key
AND ( (xmlnode = 'melding' AND status = 5) -- afgemelde meldingen
OR (xmlnode = 'opdracht' AND status = 6) -- afgemelde opdrachten
OR ( xmlnode = 'reservering' -- afgeleverde cateringartikelen
AND datum BETWEEN (SELECT COALESCE(MAX(fac_tracking_datum),
TO_DATE('08-10-2012', 'DD-MM-YYYY') )
FROM fac_tracking t,
(SELECT key FROM nour_v_logistiek_doorbel
WHERE xmlnode = 'melding' AND status = 6) d
WHERE t.fac_srtnotificatie_key = 24 -- MLDVER
AND d.key = t.fac_tracking_refkey)
AND SYSDATE ) );
-- stdmelding:
-- Postale diensten/Vaste kosten 1101
-- Kenmerken:
-- Kostenplaats 564
-- Postrondes 561
-- Dagbladen 563
-- Opslag containers 621
c_stdmelding_key NUMBER := 1101;
c_flex_kostenplaats NUMBER := 564;
c_flex_postrondes NUMBER := 561;
c_flex_dagbladen NUMBER := 563;
c_flex_containers NUMBER := 621;
v_melding_key NUMBER;
BEGIN
v_aanduiding := 'init';
v_errormsg := 'init';
v_errorhint := 'init';
DELETE nour_exp_sap
WHERE soort IN ('logistiek');
DELETE imp_log
WHERE imp_log_applicatie = p_applname
AND imp_log_datum < SYSDATE - 185;
-- Meldingen voor vaste kosten toevoegen (o.b.v. flexkenmerken bij afdelingen)
IF (p_doUpdate)
THEN
FOR r IN c_vast
LOOP
BEGIN
v_aanduiding := r.prs_kostenplaats_omschrijving;
v_errormsg := 'Meldingen vaste kosten toevoegen';
v_errorhint := 'Fout bij toevoegen melding';
-- Einddatum wordt expliciet gezet, omdat er geen tracking toegevoegd
-- wordt en we eigenlijk de MLDAFM-datum willen gebruiken.
INSERT INTO mld_melding
(mld_melding_module,
mld_meldbron_key,
mld_melding_datum,
mld_melding_einddatum,
mld_stdmelding_key,
prs_perslid_key,
mld_melding_status,
mld_melding_spoed,
prs_kostenplaats_key)
VALUES
('MLD',
45, -- System
SYSDATE,
SYSDATE,
c_stdmelding_key,
7520, -- Facilitor
5, -- Afgemeld
3,
r.prs_kostenplaats_key)
RETURNING mld_melding_key
INTO v_melding_key;
v_errorhint := 'Fout bij toevoegen kenmerk';
mld.upsertmeldingkenmerk(c_flex_kostenplaats,
v_melding_key,
TO_CHAR(r.prs_kostenplaats_key) );
mld.upsertmeldingkenmerk(c_flex_postrondes,
v_melding_key,
TO_CHAR(r.postrondes) );
mld.upsertmeldingkenmerk(c_flex_dagbladen,
v_melding_key,
TO_CHAR(r.dagbladen) );
mld.upsertmeldingkenmerk(c_flex_containers,
v_melding_key,
TO_CHAR(r.containers) );
fac.writelog(p_applname, 'I',
'Melding '||v_melding_key||' toegevoegd',
'Kostenplaats '||v_aanduiding);
EXCEPTION
WHEN NO_DATA_FOUND
THEN
fac.writelog (p_applname, 'E',
v_aanduiding||': '||v_errorhint||' ('||v_errormsg||')',
'Geen gegevens gevonden (' || SUBSTR (SQLERRM, 1, 9) || ')'
);
WHEN OTHERS
THEN
fac.writelog (p_applname, 'E',
v_aanduiding||': '||v_errorhint||' ('||v_errormsg||')',
'Error ' || SQLCODE || '/' || SUBSTR (SQLERRM, 1, 100)
); -- tbv logging
END;
END LOOP;
COMMIT;
END IF;
v_errormsg := 'Insert record';
v_errorhint := 'Invoegen record mislukt!';
-- Logistieke acties voor externe klanten aan doorbelastingstabel toevoegen
FOR r IN c_insert
LOOP
BEGIN
v_aanduiding := r.refnr;
INSERT INTO nour_exp_sap
(soort,
crediteurnr,
debiteurnr,
companycode,
costcentre,
ordernr,
postingkey,
kostensoort,
key,
refnr,
einddatum,
bedrag_ex,
bedrag_inc,
btwcode,
omschrijving,
perslid)
VALUES
('logistiek',
r.crediteurnr,
r.debiteurnr,
r.companycode,
r.costcentre,
r.ordernr,
r.postingkey,
r.kostensoort,
r.key,
r.refnr,
COALESCE((SELECT MAX(fac_tracking_datum)
FROM fac_tracking
WHERE fac_tracking_refkey = r.key
AND fac_srtnotificatie_key = DECODE(r.xmlnode,
'opdracht', 26, -- ORDAFM
'melding', 18, -- MLDAFM
32 -- RESAFM
) ),
r.einddatum),
r.bedrag_ex,
r.bedrag_inc,
r.btwcode,
r.omschrijving,
r.perslid);
fac.writelog(p_applname, 'I',
v_aanduiding,
r.bedrag_ex);
EXCEPTION
WHEN NO_DATA_FOUND
THEN
fac.writelog (p_applname, 'E',
v_aanduiding||': '||v_errorhint||' ('||v_errormsg||')',
'Geen gegevens gevonden (' || SUBSTR (SQLERRM, 1, 9) || ')'
);
WHEN OTHERS
THEN
fac.writelog (p_applname, 'E',
v_aanduiding||': '||v_errorhint||' ('||v_errormsg||')',
'Error ' || SQLCODE || '/' || SUBSTR (SQLERRM, 1, 100)
); -- tbv logging
END;
END LOOP;
COMMIT;
EXCEPTION
WHEN OTHERS
THEN
fac.writelog (p_applname, 'E',
v_aanduiding||': '||v_errorhint||' ('||v_errormsg||')',
'Error ' || SQLCODE || '/' || SUBSTR (SQLERRM, 1, 100)
);
END exp_logistiek;
END;
/
--- EXPORT DEELOPDRACHTEN ------------------------------------------------------
-- Export MLD_SAP bepaalt doorbelastingsgegevens voor deelopdrachten. Gegevens worden later gebruikt
-- gebruikt door de specificatie- en verkoopfactuur-exports (SAP_SPEC resp SAP_FACTUREN)
CREATE OR REPLACE PROCEDURE nour_select_mld_sap (p_applname IN VARCHAR2, p_applrun IN VARCHAR2)
AS
BEGIN
nour_p_sap.exp_mld(p_applname, TRUE); -- p_doUpdate TODO
END;
/
CREATE OR REPLACE VIEW nour_v_export_mld_sap
(RESULT, RESULT_ORDER)
AS
SELECT 'soort;crediteurnr;debiteurnr;companycode;costcentre;ordernr;postingkey;kostensoort;key;refnr;bedrag_ex;bedrag_inc;btwcode;omschrijving;perslid',
0
FROM DUAL
UNION ALL
SELECT soort||';'||
crediteurnr||';'||
debiteurnr||';'||
companycode||';'||
costcentre||';'||
ordernr||';'||
postingkey||';'||
kostensoort||';'||
key||';'||
refnr||';'||
bedrag_ex||';'||
bedrag_inc||';'||
btwcode||';'||
omschrijving||';'||
perslid,
key
FROM nour_exp_sap
WHERE soort = 'opdracht';
CREATE OR REPLACE PROCEDURE nour_export_mld_sap (p_applname IN VARCHAR2,
p_applrun IN VARCHAR2,
p_filedir IN VARCHAR2,
p_filename IN VARCHAR2
)
AS
BEGIN
-- Het laatste tenslotte heeft weinig met de export te maken
-- Maar moet hier wel gebeuren: Alle meldingen die TV zijn en geen
-- opdrachten hebben, worden AV verklaard, zonder verdere extra acties.
--lgn('Tenslotte nog AV verklaren van lege (zonder opdrachten) TV meldingen');
-- AKZA#23427: Meldingen Logistieke dienst (srtdisc 121) vallen hierbuiten; die dus
-- nooit aanpassen met deze export!
-- AKZA#37464: ook KPI-meldingen vallen hierbuiten
FOR rec IN (SELECT mld_melding_key
FROM mld_melding m,
mld_stdmelding s,
mld_discipline d
WHERE NOT EXISTS (SELECT 1
FROM mld_opdr o
WHERE o.mld_melding_key = m.mld_melding_key)
AND m.mld_melding_status = 5 -- TV
AND m.mld_stdmelding_key = s.mld_stdmelding_key
AND s.mld_ins_discipline_key = d.ins_discipline_key
AND d.ins_srtdiscipline_key NOT IN (121, 161) ) -- Logistiek, KPI
LOOP
mld.setmeldingstatus (rec.mld_melding_key, 6, NULL);
fac.writelog(p_applname,
'I',
'Melding '||rec.mld_melding_key||' verwerkt',
'');
END LOOP;
END;
/
--- EXPORT RESERVERINGEN -------------------------------------------------------
CREATE OR REPLACE PROCEDURE nour_select_res_sap (p_applname IN VARCHAR2, p_applrun IN VARCHAR2)
AS
BEGIN
nour_p_sap.exp_res (p_applname, TRUE); -- doUpdate
END;
/
CREATE OR REPLACE VIEW nour_v_export_res_sap
(RESULT, RESULT_ORDER)
AS
SELECT 'soort;crediteurnr;debiteurnr;companycode;costcentre;ordernr;postingkey;kostensoort;key;refnr;bedrag_ex;bedrag_inc;btwcode;omschrijving;perslid',
0
FROM DUAL
UNION ALL
SELECT soort||';'||
crediteurnr||';'||
debiteurnr||';'||
companycode||';'||
costcentre||';'||
ordernr||';'||
postingkey||';'||
kostensoort||';'||
key||';'||
refnr||';'||
bedrag_ex||';'||
bedrag_inc||';'||
btwcode||';'||
omschrijving||';'||
perslid,
key
FROM nour_exp_sap
WHERE soort IN ('artikel', 'deel', 'ruimte', 'rit');
--- EXPORT LOGISTIEK -----------------------------------------------------------
-- Voorbereiden export naar SAP; meldingen aanmaken voor vaste kosten vastgelegd in afdelingskenmerken
CREATE OR REPLACE PROCEDURE nour_select_logistiek (p_applname IN VARCHAR2, p_applrun IN VARCHAR2)
AS
BEGIN
nour_p_sap.exp_logistiek(p_applname, TRUE); --doUpdate
END nour_select_logistiek;
/
-- Exportview naar Foxpro (voor doorbelasting naar SAP)
CREATE OR REPLACE VIEW nour_v_export_logistiek
AS
WITH tmp
AS
(SELECT *
FROM nour_v_logistiek_doorbel l
WHERE totaal_kosten != 0
AND ( (xmlnode = 'melding' AND status = 5) -- afgemelde meldingen
OR (xmlnode = 'opdracht' AND status = 6) -- afgemelde opdrachten
OR ( xmlnode = 'reservering' -- afgeleverde cateringartikelen
AND datum BETWEEN (SELECT COALESCE(MAX(fac_tracking_datum),
TO_DATE('08-10-2012', 'DD-MM-YYYY') )
FROM fac_tracking t,
(SELECT key FROM nour_v_logistiek_doorbel
WHERE xmlnode = 'melding' AND status = 6) d
WHERE t.fac_srtnotificatie_key = 24 -- MLDVER
AND d.key = t.fac_tracking_refkey)
AND SYSDATE ) ) )
SELECT '<html><head><style>' result, 1 result_order FROM DUAL
UNION ALL
SELECT '.num0dec {mso-number-format:0;} .num2dec {mso-number-format:Fixed;} .tekst {mso-number-format:"\@";}' result, 2 result_order FROM DUAL
UNION ALL
SELECT '</style></head><body><table>' result, 3 result_order FROM DUAL
UNION ALL
SELECT '<tr><td>INT_FACT</td>'||
'<td>CMPCODE</td>'||
'<td>KPLCODE</td>'||
'<td>PK</td>'||
'<td>VAL</td>'||
'<td>FAKT.DA</td>'||
'<td>REFERENTIE</td>'||
'<td>GRP</td>'||
'<td>BEDRAG</td>'||
'<td>AANTAL</td>'||
'<td>ARTIKEL</td>'||
'<td>DT</td>'||
'<td>ARTIKELCODE</td>'||
'<td>PRIJS</td>'||
'<td>REFERENTIE 1</td>'||
'<td>BTW</td></tr>' result, 4 result_order FROM DUAL
UNION ALL
SELECT '<tr><td>' ||
nummer ||
'</td><td>' ||
SUBSTR(kostenplaats_nr,
INSTR(kostenplaats_nr, '(')+1,
INSTR(kostenplaats_nr, ')') - INSTR(kostenplaats_nr, '(')-1) ||
'</td><td>' ||
SUBSTR(kostenplaats_nr,
1,
INSTR(kostenplaats_nr, '(')-2) ||
'</td><td>' ||
CASE
WHEN (totaal_kosten < 0) THEN 50
ELSE 40
END ||
'</td><td>' ||
'EUR'||
'</td><td>' ||
TO_CHAR (TRUNC(datum), 'dd-mm-yyyy') ||
'</td><td>' ||
melder ||
'</td><td>' ||
kostensoort ||
'</td><td class="num2dec">' ||
REPLACE(TO_CHAR(COALESCE(totaal_kosten, 0)),'.',',') ||
'</td><td class="num0dec">' ||
'1' ||
'</td><td>' ||
melding ||
'</td><td>' ||
DECODE (SUBSTR(kostenplaats_nr,
INSTR(kostenplaats_nr, '(')+1,
INSTR(kostenplaats_nr, ')') - INSTR(kostenplaats_nr, '(')-1),
'0801', 'NY',
'MY') ||
'</td><td>' ||
'FCLT' ||
'</td><td class="num2dec">' ||
REPLACE(TO_CHAR(COALESCE(totaal_kosten, 0)),'.',',') ||
'</td><td>' ||
'</td><td>' ||
'2' ||
'</td></tr>' result,
5 result_order
FROM tmp
UNION ALL
SELECT '<tr><td class="num2dec">' || REPLACE(TO_CHAR( SUM(totaal_kosten) ),'.',',') || '</td>' ||
'<td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr>' result,
6 result_order
FROM tmp
UNION ALL
SELECT '<tr><td class="num0dec">1</td>' ||
'<td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr>' result,
7 result_order
FROM DUAL
UNION ALL
SELECT '</table></body></html>' result, 8 result_order FROM DUAL;
CREATE OR REPLACE VIEW nour_v_export_logistiek
(RESULT, RESULT_ORDER)
AS
SELECT 'soort;crediteurnr;debiteurnr;companycode;costcentre;ordernr;postingkey;kostensoort;key;refnr;bedrag_ex;bedrag_inc;btwcode;omschrijving;perslid',
0
FROM DUAL
UNION ALL
SELECT soort||';'||
crediteurnr||';'||
debiteurnr||';'||
companycode||';'||
costcentre||';'||
ordernr||';'||
postingkey||';'||
kostensoort||';'||
key||';'||
refnr||';'||
bedrag_ex||';'||
bedrag_inc||';'||
btwcode||';'||
omschrijving||';'||
perslid,
key
FROM nour_exp_sap
WHERE soort = 'logistiek';
-- Afronden export naar SAP;
-- meldingen/opdrachten/reserveringen op status Verwerkt zetten
CREATE OR REPLACE PROCEDURE nour_export_logistiek (p_applname IN VARCHAR2,
p_applrun IN VARCHAR2,
p_filedir IN VARCHAR2,
p_filename IN VARCHAR2)
AS
v_aanduiding VARCHAR(100);
v_errormsg VARCHAR(200);
v_errorhint VARCHAR(100);
v_count NUMBER;
-- Alle te-verwerken meldingen en opdrachten.
-- Doorbelaste logistieke meldingen hebben geen opdrachten, m.u.v. Verzending expeditie.
-- Bij doorbelaste opdrachten (Verzending expeditie) moet ook de melding op Verwerkt worden gezet
-- (Reserveringen zijn al op Verwerkt gezet door de RES-exports)
CURSOR c
IS
SELECT key,
xmlnode,
nummer,
melding,
datum,
totaal_kosten
FROM nour_v_logistiek_doorbel l
WHERE (xmlnode = 'melding' AND status = 5) -- afgemelde meldingen
OR (xmlnode = 'opdracht' AND status = 6) -- afgemelde opdrachten
ORDER BY nummer;
c_flex_mld_doorbelast NUMBER := 562;
c_typeopdr_NL NUMBER := 1052;
c_typeopdr_EU NUMBER := 1053;
c_typeopdr_WW NUMBER := 1054;
c_flex_opdr_NL_doorbelast NUMBER := 566;
c_flex_opdr_EU_doorbelast NUMBER := 565;
c_flex_opdr_WW_doorbelast NUMBER := 567;
v_melding_key NUMBER;
v_flex_key NUMBER;
BEGIN
v_aanduiding := 'init';
v_errormsg := 'init';
v_errorhint := 'init';
-- Meldingen en opdrachten op Verwerkt zetten
-- (Reserveringen zijn bij de RES-exports al op Verwerkt gezet)
FOR r IN c
LOOP
BEGIN
v_aanduiding := r.xmlnode||' '||r.nummer||' (#'||r.key||')';
-- Melding zonder opdrachten
IF (r.xmlnode = 'melding')
THEN
v_errormsg := 'Verwerken';
-- Melding op Verwerkt zetten (zorgt ook voor tracking)
v_errorhint := 'Fout bij verwerken melding';
mld.setmeldingstatus(r.key, 6, NULL);
fac.writelog(p_applname, 'I',
v_aanduiding||' verwerkt',
'');
-- Voor historie: bewaar doorbelaste bedrag
v_errorhint := 'Fout bij zetten meldingkenmerk';
mld.upsertmeldingkenmerk(c_flex_mld_doorbelast,
r.key,
TO_CHAR(r.totaal_kosten) );
ELSIF (r.xmlnode = 'opdracht')
THEN
-- Zet op Verwerkt (zorgt ook voor tracking)
v_errorhint := 'Fout bij verwerken opdracht';
mld.setopdrachtstatus (r.key, 7, NULL);
fac.writelog(p_applname, 'I',
v_aanduiding||' verwerkt',
'');
-- Voor historie: bewaar doorbelaste bedrag
v_errorhint := 'Fout bij zetten opdrachtkenmerk';
SELECT DECODE(mld_typeopdr_key,
c_typeopdr_NL, c_flex_opdr_NL_doorbelast,
c_typeopdr_EU, c_flex_opdr_EU_doorbelast,
c_typeopdr_WW, c_flex_opdr_WW_doorbelast)
INTO v_flex_key
FROM mld_opdr
WHERE mld_opdr_key = r.key;
mld.upsertopdrachtkenmerk(v_flex_key,
r.key,
TO_CHAR(r.totaal_kosten) );
v_errormsg := 'Zoeken overige opdrachten';
-- Achterhaal melding bij opdracht; zijn nu alle opdrachten bij deze
-- melding verwerkt?
v_errorhint := 'Fout bij bepalen melding';
SELECT mld_melding_key
INTO v_melding_key
FROM mld_opdr
WHERE mld_opdr_key = r.key;
-- Zijn er andere te-Verwerken opdrachten bij deze melding?
-- (te-Verwerken is dan: niet Verwerkt (7), niet Afgewezen (1), niet Niet akkoord (2)
v_errorhint := 'Fout bij tellen opdrachten';
SELECT COUNT(*)
INTO v_count
FROM mld_opdr
WHERE mld_melding_key = v_melding_key
AND mld_opdr_key != r.key
AND mld_statusopdr_key NOT IN (1,2,7);
IF (v_count > 0)
THEN
-- Er zijn nog opdrachten; melding kan niet Verwerkt worden
fac.writelog(p_applname, 'I',
'Melding L'||v_melding_key||' bij '||v_aanduiding||' wordt (nog) niet verwerkt',
'Er zijn nog andere openstaande/te verwerken opdrachten');
ELSE
-- Geen andere opdrachten; melding op Verwerkt zetten (zorgt ook voor tracking)
v_errorhint := 'Fout bij verwerken melding';
mld.setmeldingstatus(v_melding_key, 6, NULL);
fac.writelog(p_applname,
'I',
'Melding L'||v_melding_key||' bij '||v_aanduiding||' verwerkt',
'');
END IF;
END IF;
EXCEPTION
WHEN OTHERS
THEN
fac.writelog (p_applname, 'E',
v_aanduiding||': '||v_errorhint||' ('||v_errormsg||')',
'Error ' || SQLCODE || '/' || SUBSTR (SQLERRM, 1, 100)
);
END;
END LOOP;
COMMIT;
EXCEPTION
WHEN OTHERS
THEN
fac.writelog (p_applname, 'E',
v_aanduiding||': '||v_errorhint||' ('||v_errormsg||')',
'Error ' || SQLCODE || '/' || SUBSTR (SQLERRM, 1, 100)
);
END nour_export_logistiek;
/
--- SPECIFICATIEREGELS ---------------------------------------------------------
-- AKZA#27345: Export verkoopfacturen naar SAP.
-- Genereert exportbestand met specificatieregels; deze wordt later in een batch-script
-- gesplitst in bestanden per betalende company(code)
CREATE OR REPLACE VIEW nour_v_export_sap_spec
(RESULT, RESULT_ORDER)
AS
SELECT 'Seq;CoCd;Doc. Type;Crcy;PK;G/L Acct;Cost Ctr;Network;Ordnr;Text;Pstng Date;Amount;Crcy' result,
0 result_order
FROM DUAL
UNION ALL
SELECT seq||';'||cocd||';'||doctype||';'||crcy||';'||pk||';'||glacct||';'||
costctr||';'||network||';'||ordnr||';'||text||';'||pstngdate||';'||amount||';'||crcy1 result,
ROWNUM result_order
FROM (
SELECT ROW_NUMBER() OVER (PARTITION BY companycode ORDER BY companycode, kostensoort, costcentre) AS seq,
companycode cocd,
'MY' doctype,
'EUR' crcy,
postingkey pk,
kostensoort glacct,
costcentre costctr,
NULL network,
TRIM(ordernr) ordnr,
-- Melder in omschrijving vermelden, maar alleen als dat niet _FACILITOR is.
refnr||' '
|| omschrijving
|| DECODE(perslid,
'Facilitor', '',
' ('||perslid||')' ) text,
TO_CHAR(einddatum, 'DD-MM-YYYY') pstngdate,
bedrag_ex amount,
NULL crcy1
FROM nour_exp_sap );
--- VERKOOPFACTUREN ------------------------------------------------------------
-- AKZA#27345: Export verkoopfacturen naar SAP.
-- Facturen worden getotaliseerd per klantbedrijf (company), met daarbij een specificatieregel
-- per opdracht/melding/reservering en aparte BTW-regels voor hoog/laag
CREATE OR REPLACE PROCEDURE nour_select_sap_facturen (p_applname IN VARCHAR2, p_applrun IN VARCHAR2)
AS
CURSOR c_facturen
IS
SELECT TO_CHAR(SYSDATE+2, 'DDMMYYYY') docdate,
'DA' doctype,
crediteurnr companycode,
TO_CHAR(SYSDATE+2, 'DDMMYYYY') postingdate,
'EUR' currency,
NULL documentnr,
DECODE(soort,
'opdracht', 'Service Orders',
'artikel', 'Catering',
'ruimte', 'Bookable rooms',
'deel', 'Bookable equipment',
'logistiek', 'Logistic Services',
soort)
||TO_CHAR(ADD_MONTHS(SYSDATE,-1), ' YYYY.MM') description,
companycode||TO_CHAR(ADD_MONTHS(SYSDATE,-1), '-YYYY.MM') referencenr,
CASE
WHEN SUM(bedrag_inc) >= 0 THEN '01'
WHEN SUM(bedrag_inc) < 0 THEN '11'
END
postingkey,
debiteurnr account,
TRIM( TO_CHAR( SUM(bedrag_inc),
'99999999D99',
'NLS_NUMERIC_CHARACTERS=,.') ) amount,
'**' taxcode,
NULL network,
--TODO: Deventer verwacht hier wel een waarde in(?)
'' assignment,
'' costcenter,
DECODE(soort,
'opdracht', 'Service Orders',
'artikel', 'Catering',
'ruimte', 'Bookable rooms',
'deel', 'Bookable equipment',
'logistiek', 'Logistic Services',
soort)
||TO_CHAR(ADD_MONTHS(SYSDATE,-1), ' YYYY.MM ')
||COALESCE(aa.prs_afdeling_naam6, 'LEEG') lineitemtext,
NULL tradingpartner,
'' ordernr,
NULL partnerbanktype,
NULL xref1,
NULL xref2,
-- de verschillende company's hebben andere contactpersonen per dienst
DECODE( crediteurnr1,
'1435', DECODE( soort,
'opdracht', 'VONKT',
'artikel', 'VONKT',
'ruimte', 'VONKT',
'deel', 'VONKT',
'logistiek', 'VONKT',
NULL),
DECODE( soort,
'opdracht', 'BONGERSH',
'artikel', 'ERMERSJ',
'ruimte', 'ERMERSJ',
'deel', 'ERMERSJ',
'logistiek', 'BOSW',
NULL) )
xref3,
NULL companycodecross,
NULL profitcenter,
soort
-- Diverse HQ-company's hebben dezelfde administratie (0801, 0804, 0806, 0810),
-- dus daar niet onderling factureren.
-- Bij incomplete inrichting kan de companycode leeg zijn, daar expliciet op checken
FROM (SELECT DECODE(companycode, '0804', '0801',
'0806', '0801',
'0810', '0801',
NULL, 'apekool',
companycode) companycode1,
DECODE(crediteurnr, '0804', '0801',
'0806', '0801',
'0810', '0801',
NULL, 'quequeleque',
crediteurnr) crediteurnr1,
es.*
FROM nour_exp_sap es),
prs_v_aanwezigafdeling aa
WHERE companycode1 != crediteurnr1
AND aa.prs_afdeling_naam(+) = companycode
GROUP BY companycode, companycode1, debiteurnr, crediteurnr, crediteurnr1, soort, aa.prs_afdeling_naam6;
-- AKZA#32881 factuurregels sommeren per GLaccount (kostensoort) en kostenplaats
CURSOR c_regels (p_crediteurnr VARCHAR2,
p_debiteurnr VARCHAR2,
p_soort VARCHAR2)
IS
SELECT CASE
WHEN SUM(bedrag_ex) >= 0 THEN '50'
WHEN SUM(bedrag_ex) < 0 THEN '40'
END
postingkey,
kostensoort account,
TRIM( TO_CHAR( SUM(bedrag_ex),
'99999999D99',
'NLS_NUMERIC_CHARACTERS=,.') ) amount,
'NC' taxcode,
NULL network,
NULL assignment,
costcentre costcenter,
DECODE(soort,
'opdracht', 'Service Orders',
'artikel', 'Catering',
'ruimte', 'Bookable rooms',
'deel', 'Bookable equipment',
'logistiek', 'Logistic Services',
soort)
|| TO_CHAR(ADD_MONTHS(SYSDATE,-1), ' YYYY.MM ') lineitemtext,
NULL tradingpartner,
'' ordernr
-- Diverse HQ-company's hebben dezelfde administratie (0801, 0804, 0806, 0810),
-- dus daar niet onderling factureren.
-- Bij incomplete inrichting kan de companycode leeg zijn, daar expliciet op checken
FROM (SELECT DECODE(companycode, '0804', '0801',
'0806', '0801',
'0810', '0801',
NULL, 'apekool',
companycode) companycode1,
DECODE(crediteurnr, '0804', '0801',
'0806', '0801',
'0810', '0801',
NULL, 'quequeleque',
crediteurnr) crediteurnr1,
es.*
FROM nour_exp_sap es)
WHERE companycode1 != crediteurnr1
AND crediteurnr = p_crediteurnr
AND debiteurnr = p_debiteurnr
AND soort = p_soort
GROUP BY kostensoort, costcentre, soort
ORDER BY kostensoort, costcentre;
CURSOR c_btw (p_crediteurnr VARCHAR2,
p_debiteurnr VARCHAR2,
p_soort VARCHAR2)
IS
SELECT CASE
WHEN SUM(bedrag_inc) - SUM(bedrag_ex) >= 0 THEN '50'
WHEN SUM(bedrag_inc) - SUM(bedrag_ex) < 0 THEN '40'
END
postingkey,
'3571039' account,
TRIM( TO_CHAR( SUM(bedrag_inc) - SUM(bedrag_ex),
'99999999D99',
'NLS_NUMERIC_CHARACTERS=,.') ) amount,
DECODE(btwcode,
'21', 'N3',
'6', 'N1',
'0', 'N5',
'NC')
taxcode,
NULL network,
NULL assignment,
NULL costcenter,
'BTW '
|| DECODE(btwcode,
'21', '21%',
'6', '6%',
'onbekend: '||btwcode)
lineitemtext
-- Diverse HQ-company's hebben dezelfde administratie (0801, 0804, 0806, 0810),
-- dus daar niet onderling factureren.
-- Bij incomplete inrichting kan de companycode leeg zijn, daar expliciet op checken
FROM (SELECT DECODE(companycode, '0804', '0801',
'0806', '0801',
'0810', '0801',
NULL, 'apekool',
companycode) companycode1,
DECODE(crediteurnr, '0804', '0801',
'0806', '0801',
'0810', '0801',
NULL, 'quequeleque',
crediteurnr) crediteurnr1,
es.*
FROM nour_exp_sap es)
WHERE companycode1 != crediteurnr1
AND crediteurnr = p_crediteurnr
AND debiteurnr = p_debiteurnr
AND soort = p_soort
GROUP BY postingkey, btwcode;
v_aanduiding VARCHAR2(100);
v_volgnr NUMBER;
v_errormsg VARCHAR(255);
v_errorhint VARCHAR(255);
BEGIN
v_aanduiding := 'init';
v_errormsg := 'init';
v_errorhint := 'init';
v_volgnr := 1;
DELETE fac_rapport
WHERE fac_rapport_node = p_applname;
DELETE imp_log
WHERE imp_log_applicatie = p_applname
AND imp_log_datum > SYSDATE - 185;
v_errorhint := 'Headerregel';
INSERT INTO fac_rapport
(fac_rapport_node,
fac_rapport_volgnr,
fac_rapport_regel,
fac_rapport_soort)
SELECT p_applname,
0,
'<html><head><style>.num0dec {mso-number-format:0;} .num2dec {mso-number-format:Fixed;} .tekst {mso-number-format:"\@"; white-space:nowrap;}</style></head><body><table>',
1
FROM DUAL
UNION ALL
SELECT p_applname,
1,
'<tr><td>DOCDATE</td>'||
'<td>DOCTYPE</td>'||
'<td>COMPANYCODE</td>'||
'<td>POSTINGDATE</td>'||
'<td>CURRENCY</td>'||
'<td>DOCUMENTNR</td>'||
'<td>DESCRIPTION</td>'||
'<td>REFERENCENR</td>'||
'<td>POSTINGKEY</td>'||
'<td>ACCOUNT</td>'||
'<td>AMOUNT</td>'||
'<td>TAXCODE</td>'||
'<td>NETWORK</td>'||
'<td>ASSIGNMENT</td>'||
'<td>COSTCENTER</td>'||
'<td>LINEITEMTEXT</td>'||
'<td>TRADINGPARTNER</td>'||
'<td>ORDERNR</td>'||
'<td>PARTNERBANKTYPE</td>'||
'<td>XREF1</td>'||
'<td>XREF2</td>'||
'<td>XREF3</td>'||
'<td>COMPANYCODECROSS</td>'||
'<td>PROFITCENTER</td></tr>',
1
FROM DUAL;
v_errorhint := 'Sommatieregel';
FOR rec_f IN c_facturen
LOOP
BEGIN
v_aanduiding := rec_f.companycode||' --> '||rec_f.account||' ('||rec_f.soort||')';
v_volgnr := v_volgnr + 1;
v_errormsg := 'Sommatieregel aanmaken';
INSERT INTO fac_rapport
(fac_rapport_node,
fac_rapport_volgnr,
fac_rapport_regel,
fac_rapport_soort)
VALUES
(p_applname,
v_volgnr,
'<tr>'||
'<td class="tekst">'||rec_f.docdate||'</td>'||
'<td class="tekst">'||rec_f.doctype||'</td>'||
'<td class="tekst">'||rec_f.companycode||'</td>'||
'<td class="tekst">'||rec_f.postingdate||'</td>'||
'<td class="tekst">'||rec_f.currency||'</td>'||
'<td class="tekst">'||rec_f.documentnr||'</td>'||
'<td class="tekst">'||rec_f.description||'</td>'||
'<td class="tekst">'||rec_f.referencenr||'</td>'||
'<td class="tekst">'||rec_f.postingkey||'</td>'||
'<td class="tekst">'||rec_f.account||'</td>'||
'<td class="num2dec">'||rec_f.amount||'</td>'||
'<td class="tekst">'||rec_f.taxcode||'</td>'||
'<td class="tekst">'||rec_f.network||'</td>'||
'<td class="tekst">'||rec_f.assignment||'</td>'||
'<td class="tekst">'||rec_f.costcenter||'</td>'||
'<td class="tekst">'||rec_f.lineitemtext||'</td>'||
'<td class="tekst">'||rec_f.tradingpartner||'</td>'||
'<td class="tekst">'||rec_f.ordernr||'</td>'||
'<td class="tekst">'||rec_f.partnerbanktype||'</td>'||
'<td class="tekst">'||rec_f.xref1||'</td>'||
'<td class="tekst">'||rec_f.xref2||'</td>'||
'<td class="tekst">'||rec_f.xref3||'</td>'||
'<td class="tekst">'||rec_f.companycodecross||'</td>'||
'<td class="tekst">'||rec_f.profitcenter||'</td></tr>',
1);
v_errorhint := 'Specificatieregels';
FOR rec IN c_regels (rec_f.companycode,
rec_f.account,
rec_f.soort)
LOOP
BEGIN
v_aanduiding := rec_f.companycode||' --> '||rec_f.account||' ('||rec_f.soort||')'
||' - '||rec.lineitemtext;
v_volgnr := v_volgnr + 1;
v_errormsg := 'Specificatieregel aanmaken';
INSERT INTO fac_rapport
(fac_rapport_node,
fac_rapport_volgnr,
fac_rapport_regel,
fac_rapport_soort)
VALUES
(p_applname,
v_volgnr,
'<tr><td/><td/><td/><td/><td/><td/><td/><td/>'||
'<td class="tekst">'||rec.postingkey||'</td>'||
'<td class="tekst">'||rec.account||'</td>'||
'<td class="num2dec">'||rec.amount||'</td>'||
'<td class="tekst">'||rec.taxcode||'</td>'||
'<td class="tekst">'||rec.network||'</td>'||
'<td class="tekst">'||rec.assignment||'</td>'||
'<td class="tekst">'||rec.costcenter||'</td>'||
'<td class="tekst">'||rec.lineitemtext||'</td>'||
'<td class="tekst">'||rec.tradingpartner||'</td>'||
'<td class="tekst">'||rec.ordernr||'</td>'||
'<td/><td/><td/><td/><td/></tr>',
1);
EXCEPTION
WHEN OTHERS THEN fac.writelog(p_applname, 'E',
v_errormsg||' ('||v_errorhint||')',
v_aanduiding);
END;
END LOOP;
v_errorhint := 'BTW-regels';
FOR rec_btw IN c_btw (rec_f.companycode,
rec_f.account,
rec_f.soort)
LOOP
BEGIN
v_aanduiding := rec_f.companycode||' --> '||rec_f.account||' ('||rec_f.soort||')'
||' - '||rec_btw.lineitemtext;
v_volgnr := v_volgnr + 1;
v_errormsg := 'BTW-regel aanmaken';
INSERT INTO fac_rapport
(fac_rapport_node,
fac_rapport_volgnr,
fac_rapport_regel,
fac_rapport_soort)
VALUES
(p_applname,
v_volgnr,
'<tr><td/><td/><td/><td/><td/><td/><td/><td/>'||
'<td class="tekst">'||rec_btw.postingkey||'</td>'||
'<td class="tekst">'||rec_btw.account||'</td>'||
'<td class="num2dec">'||rec_btw.amount||'</td>'||
'<td class="tekst">'||rec_btw.taxcode||'</td>'||
'<td class="tekst">'||rec_btw.network||'</td>'||
'<td class="tekst">'||rec_btw.assignment||'</td>'||
'<td class="tekst">'||rec_btw.costcenter||'</td>'||
'<td class="tekst">'||rec_btw.lineitemtext||'</td>'||
'<td/><td/><td/><td/><td/><td/><td/></tr>',
1);
EXCEPTION
WHEN OTHERS THEN fac.writelog(p_applname, 'E',
v_errormsg||' ('||v_errorhint||')',
v_aanduiding);
END;
END LOOP;
fac.writelog(p_applname, 'S',
'Verkoopfactuur '||rec_f.companycode||' --> '||rec_f.account||' ('||rec_f.soort||')'||' ge<67>xporteerd',
'<27> '||rec_f.amount);
EXCEPTION
WHEN OTHERS THEN fac.writelog(p_applname, 'E',
v_errormsg||' ('||v_errorhint||')',
v_aanduiding);
END;
END LOOP;
EXCEPTION
WHEN OTHERS THEN fac.writelog(p_applname, 'E',
v_errormsg||' ('||v_errorhint||')',
v_aanduiding);
END nour_select_sap_facturen;
/
CREATE OR REPLACE VIEW nour_v_export_sap_facturen
(RESULT, RESULT_ORDER)
AS
SELECT fac_rapport_regel, fac_rapport_volgnr
FROM fac_rapport
WHERE fac_rapport_node = 'SAP_FACTUREN';
--------------------------------------------------------------------------------------------------
------------------------------- RAPPORTAGES EN NOTIFICATIEJOBS -----------------------------------
--------------------------------------------------------------------------------------------------
--- LOGISTIEK ------------------------------------------------------------------
-- Toont o.a. soort en prijs van alle door-te-belasten en al doorbelaste handelingen in een bepaalde periode
-- mld_srtkenmerk PO-nummer 362
-- mld_srtkenmerk Pakketnummer 561
CREATE OR REPLACE VIEW nour_v_rap_logistiek_doorbel
AS
SELECT TO_CHAR (datum, 'yyyymmdd')||REPLACE(nummer,'L','') hide_f_sort,
DECODE (xmlnode,
'melding', '<a class="details" onclick=''FcltMgr.openDetail("appl/mld/mld_melding.asp?urole=bo&'||'mld_key='
|| key || '")''>'
|| nummer
|| '</a>',
'opdracht', '<a class="details" onclick=''FcltMgr.openDetail("appl/mld/mld_opdr.asp?urole=bo&'||'opdr_key='
|| key || '")''>'
|| nummer
|| '</a>',
'reservering', '<a class="details" onclick=''FcltMgr.openDetail("appl/res/res_reservering.asp?urole=bo&'||'rsv_ruimte_key='
|| key || '")''>'
|| nummer
|| '</a>',
nummer)
html_nummer,
datum,
melding fclt_f_melding,
vakgroep fclt_f_vakgroep,
kostenplaats_nr||' '||kostenplaats_oms fclt_x_kostenplaats,
kostenplaats_oms||'<br/>'||kostenplaats_nr html_kostenplaats,
ordernr,
ponr.mld_kenmerkmelding_waarde po_nummer,
pakket.mld_kenmerkmelding_waarde pakketnummer,
melder aanvrager,
COALESCE (doorbelast_bedrag, totaal_kosten) kosten
FROM nour_v_logistiek_doorbel ld,
(SELECT km.* FROM mld_kenmerkmelding km, mld_kenmerk k
WHERE km.mld_kenmerk_key = k.mld_kenmerk_key
AND km.mld_kenmerkmelding_verwijder IS NULL
AND k.mld_srtkenmerk_key = 362) ponr,
(SELECT km.* FROM mld_kenmerkmelding km, mld_kenmerk k
WHERE km.mld_kenmerk_key = k.mld_kenmerk_key
AND km.mld_kenmerkmelding_verwijder IS NULL
AND k.mld_srtkenmerk_key = 561) pakket
WHERE ponr.mld_melding_key(+) = ld.key
AND pakket.mld_melding_key(+) = ld.key;
-- Doorbelaste handelingen per meldingsoort/opdrachttype
CREATE OR REPLACE PROCEDURE nour_rap_logistiek_samenv (
user_key IN NUMBER,
p_datum_van IN VARCHAR2, -- Let wel: formaat '16-01-2006'
p_datum_tot IN VARCHAR2,
p_cursor OUT SYS_REFCURSOR
)
AS
v_datum_van DATE;
v_datum_tot DATE;
BEGIN
v_datum_van := fac.safe_to_date (p_datum_van, 'dd-mm-yyyy');
v_datum_tot := fac.safe_to_date (p_datum_tot, 'dd-mm-yyyy');
OPEN p_cursor FOR
SELECT vakgroep,
melding,
COUNT (nummer) aantal_meldingen,
SUM (totaal_kosten) totaal_kosten
FROM nour_v_logistiek_doorbel
WHERE datum BETWEEN TO_DATE ('1-10-2012', 'DD-MM-YYYY')
AND SYSDATE
AND datum BETWEEN v_datum_van
AND v_datum_tot
GROUP BY melding, vakgroep
ORDER BY vakgroep, melding;
END nour_rap_logistiek_samenv;
/
-- Actueel overzicht van vaste kosten (flexkenmerken bij afdelingen)
-- usrdata:
-- Looprondes (p/maand) 2176
-- Dagblad bezorgen (p/maand) 2177
-- Opslag containers 2197
-- Kenmerken
-- Postrondes:
-- Ophaalplaats 1 1295
-- Ophaalplaats 2 1296
-- Ophaalplaats 3 1297
-- Dagbladen:
-- Bezorgplaats 1 1301
-- Dagblad 1 1299
-- Abonnee 1 1300
-- Bezorgplaats 2 1305
-- Dagblad 2 1304
-- Abonnee 2 1303
-- Bezorgplaats 3 1308
-- Dagblad 3 1307
-- Abonnee 3 1309
-- Containers:
-- Aantal containers 1321
CREATE OR REPLACE VIEW nour_v_rap_logistiek_vastkost
AS
SELECT prs_afdeling_omschrijving||oms hide_f_sort,
prs_afdeling_omschrijving fclt_x_afdeling,
'<a class="details" onclick=''FcltMgr.openDetail("appl/prs/prs_afdeling.asp?afd_niveau=2&'||'key='
|| prs_afdeling_key || '")''>'
|| htf.escape_sc(prs_afdeling_omschrijving)
|| '</a>' html_afdeling,
ruimte "ruimte/persoon",
oms,
prs_kostenplaats_nr||' '||prs_kostenplaats_omschrijving fclt_x_kostenplaats,
prs_kostenplaats_omschrijving||'<br/>'||prs_kostenplaats_nr html_kostenplaats,
aantal * fac_usrdata_prijs bedrag,
soort fclt_x_soort
FROM (
SELECT a.prs_afdeling_key,
a.prs_afdeling_omschrijving prs_afdeling_omschrijving,
a.prs_kostenplaats_key,
'Looprondes' soort,
'Postronde' oms,
ra.alg_ruimte_aanduiding ruimte,
1 aantal,
2176 fac_usrdata_key
FROM prs_afdeling a,
prs_kenmerklink kl,
alg_v_ruimte_gegevens ra
WHERE kl.prs_kenmerk_key IN (1295, 1296, 1297)
AND kl.prs_kenmerklink_verwijder IS NULL
AND kl.prs_link_key = a.prs_afdeling_key
AND ra.alg_ruimte_key = fac.safe_to_number(kl.prs_kenmerklink_waarde)
UNION ALL
SELECT a.prs_afdeling_key,
a.prs_afdeling_omschrijving,
a.prs_kostenplaats_key,
'Dagbladen' soort,
dbl.prs_kenmerklink_waarde oms,
abo.prs_kenmerklink_waarde ruimte,
1 aantal,
2177 fac_usrdata_key
FROM prs_afdeling a,
prs_kenmerklink kl,
alg_v_ruimte_gegevens ra,
(SELECT * FROM prs_kenmerklink WHERE prs_kenmerk_key = 1299
AND prs_kenmerklink_verwijder IS NULL) dbl,
(SELECT * FROM prs_kenmerklink WHERE prs_kenmerk_key = 1300
AND prs_kenmerklink_verwijder IS NULL) abo
WHERE kl.prs_kenmerk_key = 1301
AND kl.prs_kenmerklink_verwijder IS NULL
AND kl.prs_link_key = a.prs_afdeling_key
AND ra.alg_ruimte_key = fac.safe_to_number(kl.prs_kenmerklink_waarde)
AND dbl.prs_link_key(+) = a.prs_afdeling_key
AND abo.prs_link_key(+) = a.prs_afdeling_key
UNION ALL
SELECT a.prs_afdeling_key,
a.prs_afdeling_omschrijving,
a.prs_kostenplaats_key,
'Dagbladen' soort,
dbl.prs_kenmerklink_waarde oms,
abo.prs_kenmerklink_waarde ruimte,
1 aantal,
2177 fac_usrdata_key
FROM prs_afdeling a,
prs_kenmerklink kl,
alg_v_ruimte_gegevens ra,
(SELECT * FROM prs_kenmerklink WHERE prs_kenmerk_key = 1304
AND prs_kenmerklink_verwijder IS NULL) dbl,
(SELECT * FROM prs_kenmerklink WHERE prs_kenmerk_key = 1303
AND prs_kenmerklink_verwijder IS NULL) abo
WHERE kl.prs_kenmerk_key = 1305
AND kl.prs_kenmerklink_verwijder IS NULL
AND kl.prs_link_key = a.prs_afdeling_key
AND ra.alg_ruimte_key = fac.safe_to_number(kl.prs_kenmerklink_waarde)
AND dbl.prs_link_key(+) = a.prs_afdeling_key
AND abo.prs_link_key(+) = a.prs_afdeling_key
UNION ALL
SELECT a.prs_afdeling_key,
a.prs_afdeling_omschrijving,
a.prs_kostenplaats_key,
'Dagbladen' soort,
dbl.prs_kenmerklink_waarde oms,
abo.prs_kenmerklink_waarde ruimte,
1 aantal,
2177 fac_usrdata_key
FROM prs_afdeling a,
prs_kenmerklink kl,
alg_v_ruimte_gegevens ra,
(SELECT * FROM prs_kenmerklink WHERE prs_kenmerk_key = 1307
AND prs_kenmerklink_verwijder IS NULL) dbl,
(SELECT * FROM prs_kenmerklink WHERE prs_kenmerk_key = 1309
AND prs_kenmerklink_verwijder IS NULL) abo
WHERE kl.prs_kenmerk_key = 1308
AND kl.prs_kenmerklink_verwijder IS NULL
AND kl.prs_link_key = a.prs_afdeling_key
AND ra.alg_ruimte_key = fac.safe_to_number(kl.prs_kenmerklink_waarde)
AND dbl.prs_link_key(+) = a.prs_afdeling_key
AND abo.prs_link_key(+) = a.prs_afdeling_key
UNION ALL
SELECT a.prs_afdeling_key,
a.prs_afdeling_omschrijving prs_afdeling_omschrijving,
a.prs_kostenplaats_key,
'Opslag containers' soort,
'Container ('
|| fac.safe_to_number(kl.prs_kenmerklink_waarde)
|| 'x)'
oms,
NULL ruimte,
fac.safe_to_number(kl.prs_kenmerklink_waarde) aantal,
2197 fac_usrdata_key
FROM prs_afdeling a,
prs_kenmerklink kl
WHERE kl.prs_kenmerk_key = 1321
AND kl.prs_kenmerklink_verwijder IS NULL
AND kl.prs_link_key = a.prs_afdeling_key) a,
fac_usrdata ud,
prs_kostenplaats k
WHERE ud.fac_usrdata_key = a.fac_usrdata_key
AND k.prs_kostenplaats_key = a.prs_kostenplaats_key;
--- RUIMTEGEGEVENS, PERSOONSGEGEVENS, INFORMATIEGIDS ---------------------------
-- AKZA12084: ruimtebeheerders inclusief afdeling als bron voor flexkenmerk bij ruimte (en van belang voor werkvergunning)
CREATE OR REPLACE VIEW nour_v_ruimtebeheerders
(prs_perslid_key, persoonafdeling)
AS
SELECT p.prs_perslid_key, p.prs_perslid_naam || ' / ' || a.prs_afdeling_naam
FROM prs_perslid p, prs_afdeling a
WHERE p.prs_perslid_verwijder IS NULL
AND p.prs_afdeling_key = a.prs_afdeling_key
ORDER BY p.prs_perslid_naam;
CREATE OR REPLACE VIEW nour_v_extraphone (fclt_f_groep,
fclt_f_omschrijving,
fclt_f_plaats,
fclt_f_bereiken,
nummer_email,
fclt_3d_locatie_key,
fclt_3d_gebouw_key
)
AS
SELECT ins_srtdeel_omschrijving, idd.ins_deel_omschrijving,
alg_plaatsaanduiding, ins_srtkenmerk_omschrijving,
ins_kenmerkdeel_waarde, alg_locatie_key, alg_gebouw_key
FROM INS_DEEL idd,
INS_KENMERKDEEL ikd,
INS_KENMERK ik,
INS_SRTKENMERK isk,
INS_SRTDEEL isd,
ins_v_alg_overzicht o
WHERE idd.ins_deel_verwijder IS NULL
AND idd.ins_srtdeel_key = isd.ins_srtdeel_key
AND idd.ins_deel_key = ikd.ins_deel_key
AND ikd.ins_kenmerk_key = ik.ins_kenmerk_key
AND isk.ins_srtkenmerk_key = ik.ins_srtkenmerk_key
AND ins_kenmerkdeel_verwijder IS NULL
AND isk.ins_srtkenmerk_kenmerktype NOT IN ('L', 'Q', 'M', 'F')
AND idd.ins_discipline_key = 825 -- Additieve Bereikbaarheid
AND isk.ins_srtkenmerk_key IN (3082, 3083, 3084) -- Tel/Fax/Email
AND o.alg_ruimte_key = idd.ins_alg_ruimte_key
AND o.alg_onroerendgoed_type = idd.ins_alg_ruimte_type
ORDER BY idd.ins_deel_omschrijving, ins_kenmerk_volgnummer;
-- Ongeacht of een BHV-kenmerk is ingevuld
CREATE OR REPLACE VIEW nour_v_rap_bhv_all
AS
SELECT pf.prs_perslid_key hide_f_key,
pf.prs_perslid_naam_full fclt_f_naam,
p.prs_perslid_telefoonnr telefoon,
d.prs_afdeling_naam fclt_f_afdeling,
w.alg_gebouw_code fclt_f_gebouw,
w.alg_verdieping_code verdieping,
w.alg_ruimte_nr ruimte,
NVL((SELECT kl.prs_kenmerklink_waarde
FROM prs_kenmerklink kl
WHERE kl.prs_link_key = p.prs_perslid_key
AND kl.prs_kenmerk_key = 1166),
'Nooit') fclt_f_laatste_instructie_kb,
NVL((SELECT kl.prs_kenmerklink_waarde
FROM prs_kenmerklink kl
WHERE kl.prs_link_key = p.prs_perslid_key
AND kl.prs_kenmerk_key = 1165),
'Nooit') fclt_f_laatste_instructie_ehbo,
NVL((SELECT kl.prs_kenmerklink_waarde
FROM prs_kenmerklink kl
WHERE kl.prs_link_key = p.prs_perslid_key
AND kl.prs_kenmerk_key = 1168),
'Nooit') fclt_f_ehbo_tot,
NVL((SELECT fac_usrdata_omschr
FROM prs_kenmerklink kl, fac_usrdata
WHERE kl.prs_link_key = p.prs_perslid_key
AND kl.prs_kenmerk_key = 1161
AND prs_kenmerklink_waarde = fac_usrdata_key),
'Onbekend') fclt_f_actief_ehbo,
NVL((SELECT kl.prs_kenmerklink_waarde
FROM prs_kenmerklink kl
WHERE kl.prs_link_key = p.prs_perslid_key
AND kl.prs_kenmerk_key = 1164),
'Nooit') fclt_f_laatste_instructie_aed,
NVL((SELECT kl.prs_kenmerklink_waarde
FROM prs_kenmerklink kl
WHERE kl.prs_link_key = p.prs_perslid_key
AND kl.prs_kenmerk_key = 1200),
'Nooit') fclt_f_aed_tot,
NVL((SELECT kl.prs_kenmerklink_waarde
FROM prs_kenmerklink kl
WHERE kl.prs_link_key = p.prs_perslid_key
AND kl.prs_kenmerk_key = 1180),
'Nooit') fclt_f_nibhv_aed_per,
NVL((SELECT kl.prs_kenmerklink_waarde
FROM prs_kenmerklink kl
WHERE kl.prs_link_key = p.prs_perslid_key
AND kl.prs_kenmerk_key = 1201),
'Nooit') fclt_f_nibhv_aed_tot,
NVL((SELECT kl.prs_kenmerklink_waarde
FROM prs_kenmerklink kl
WHERE kl.prs_link_key = p.prs_perslid_key
AND kl.prs_kenmerk_key = 1167),
'Nooit') fclt_f_laatste_instructie_ocp,
NVL((SELECT kl.prs_kenmerklink_waarde
FROM prs_kenmerklink kl
WHERE kl.prs_link_key = p.prs_perslid_key
AND kl.prs_kenmerk_key = 1202),
'Nooit') fclt_f_ocp_tot,
NVL((SELECT kl.prs_kenmerklink_waarde
FROM prs_kenmerklink kl
WHERE kl.prs_link_key = p.prs_perslid_key
AND kl.prs_kenmerk_key = 1203),
'Nooit') fclt_f_nibhv_ocp_per,
NVL((SELECT kl.prs_kenmerklink_waarde
FROM prs_kenmerklink kl
WHERE kl.prs_link_key = p.prs_perslid_key
AND kl.prs_kenmerk_key = 1204),
'Nooit') fclt_f_nibhv_ocp_tot,
NVL((SELECT kl.prs_kenmerklink_waarde
FROM prs_kenmerklink kl
WHERE kl.prs_link_key = p.prs_perslid_key
AND kl.prs_kenmerk_key = 1204),
'Nooit') fclt_f_laatste_instructie_evac,
NVL((SELECT fac_usrdata_omschr
FROM prs_kenmerklink kl, fac_usrdata
WHERE kl.prs_link_key = p.prs_perslid_key
AND kl.prs_kenmerk_key = 1160
AND prs_kenmerklink_waarde = fac_usrdata_key),
'Onbekend') fclt_f_actief_bhv
FROM prs_perslid p,
prs_v_perslid_fullnames pf,
prs_v_werkplek_gegevens w,
prs_perslidwerkplek pw,
prs_afdeling d
WHERE p.prs_afdeling_key = d.prs_afdeling_key
AND p.prs_perslid_key = pf.prs_perslid_key
AND w.prs_werkplek_key = pw.prs_werkplek_key
AND p.prs_perslid_key = pw.prs_perslid_key
AND prs_perslid_upper NOT LIKE '[%'
AND prs_perslid_upper NOT LIKE 'LEEG [%'
ORDER BY 1;
CREATE OR REPLACE VIEW nour_v_rap_bhv
AS
SELECT *
FROM nour_v_rap_bhv_all
WHERE EXISTS (
SELECT *
FROM prs_kenmerklink kl
WHERE kl.prs_link_key = hide_f_key
AND kl.prs_kenmerk_key IN
-- Zie AKZA_V_RAP_BHV_ALL voor betekenis
(1166,
1165,
1168,
1161,
1164,
1200,
1180,
1201,
1167,
1202,
1203,
1204,
1205,
1160
))
ORDER BY 1;
-- Kentekenoverzicht (nu met flexvelden ipv persoonsgebonden objecten)
-- AKZA#30421: nu met fullnames en aanklikbare namen
CREATE OR REPLACE VIEW nour_v_rap_kentekens
AS
SELECT * FROM
(SELECT prs_perslid_naam_full||'1' hide_f_sort
,prs_perslid_naam_full fclt_x_naam
, '<a class="details" onclick=''FcltMgr.openDetail("'
|| 'appl/prs/prs_perslid.asp?key='||pf.prs_perslid_key
|| '")''>'
|| htf.escape_sc(prs_perslid_naam_full)
|| '</a>'
html_naam
,knt.prs_kenmerklink_waarde fclt_f_kenteken
,ud.fac_usrdata_omschr soort
,mrk.prs_kenmerklink_waarde merk
,typ.prs_kenmerklink_waarde type
,klr.prs_kenmerklink_waarde kleur
FROM prs_v_perslid_fullnames pf
,prs_v_aanwezigkenmerklink knt
,prs_v_aanwezigkenmerklink srt
,fac_usrdata ud
,prs_v_aanwezigkenmerklink mrk
,prs_v_aanwezigkenmerklink typ
,prs_v_aanwezigkenmerklink klr
WHERE knt.prs_link_key = pf.prs_perslid_key
AND knt.prs_kenmerk_key = 1260
AND srt.prs_link_key(+) = pf.prs_perslid_key
AND srt.prs_kenmerk_key(+) = 1280
AND srt.prs_kenmerklink_waarde = ud.fac_usrdata_key(+)
AND mrk.prs_link_key(+) = pf.prs_perslid_key
AND mrk.prs_kenmerk_key(+) = 1281
AND typ.prs_link_key(+) = pf.prs_perslid_key
AND typ.prs_kenmerk_key(+) = 1282
AND klr.prs_link_key(+) = pf.prs_perslid_key
AND klr.prs_kenmerk_key(+) = 1283)
UNION
(SELECT prs_perslid_naam_full||'2' hide_f_sort
,prs_perslid_naam_full fclt_x_naam
, '<a class="details" onclick=''FcltMgr.openDetail("'
|| 'appl/prs/prs_perslid.asp?key='||pf.prs_perslid_key
|| '")''>'
|| htf.escape_sc(prs_perslid_naam_full)
|| '</a>'
html_naam
,knt.prs_kenmerklink_waarde fclt_f_kenteken
,ud.fac_usrdata_omschr soort
,mrk.prs_kenmerklink_waarde merk
,typ.prs_kenmerklink_waarde type
,klr.prs_kenmerklink_waarde kleur
FROM prs_v_perslid_fullnames pf
,prs_v_aanwezigkenmerklink knt
,prs_v_aanwezigkenmerklink srt
,fac_usrdata ud
,prs_v_aanwezigkenmerklink mrk
,prs_v_aanwezigkenmerklink typ
,prs_v_aanwezigkenmerklink klr
WHERE knt.prs_link_key = pf.prs_perslid_key
AND knt.prs_kenmerk_key = 1284
AND srt.prs_link_key(+) = pf.prs_perslid_key
AND srt.prs_kenmerk_key(+) = 1285
AND srt.prs_kenmerklink_waarde = ud.fac_usrdata_key(+)
AND mrk.prs_link_key(+) = pf.prs_perslid_key
AND mrk.prs_kenmerk_key(+) = 1286
AND typ.prs_link_key(+) = pf.prs_perslid_key
AND typ.prs_kenmerk_key(+) = 1287
AND klr.prs_link_key(+) = pf.prs_perslid_key
AND klr.prs_kenmerk_key(+) = 1288)
UNION
(SELECT prs_perslid_naam_full||'3' hide_f_sort
,prs_perslid_naam_full fclt_x_naam
, '<a class="details" onclick=''FcltMgr.openDetail("'
|| 'appl/prs/prs_perslid.asp?key='||pf.prs_perslid_key
|| '")''>'
|| htf.escape_sc(prs_perslid_naam_full)
|| '</a>'
html_naam
,knt.prs_kenmerklink_waarde fclt_f_kenteken
,ud.fac_usrdata_omschr soort
,mrk.prs_kenmerklink_waarde merk
,typ.prs_kenmerklink_waarde type
,klr.prs_kenmerklink_waarde kleur
FROM prs_v_perslid_fullnames pf
,prs_v_aanwezigkenmerklink knt
,prs_v_aanwezigkenmerklink srt
,fac_usrdata ud
,prs_v_aanwezigkenmerklink mrk
,prs_v_aanwezigkenmerklink typ
,prs_v_aanwezigkenmerklink klr
WHERE knt.prs_link_key = pf.prs_perslid_key
AND knt.prs_kenmerk_key = 1289
AND srt.prs_link_key(+) = pf.prs_perslid_key
AND srt.prs_kenmerk_key(+) = 1290
AND srt.prs_kenmerklink_waarde = ud.fac_usrdata_key(+)
AND mrk.prs_link_key(+) = pf.prs_perslid_key
AND mrk.prs_kenmerk_key(+) = 1291
AND typ.prs_link_key(+) = pf.prs_perslid_key
AND typ.prs_kenmerk_key(+) = 1292
AND klr.prs_link_key(+) = pf.prs_perslid_key
AND klr.prs_kenmerk_key(+) = 1293)
ORDER BY hide_f_sort;
-- AKZA#30584: Rapportage ruimte- en gebouwbeheerders (delegates) voor eindgebruikers
-- alg_kenmerk 1160 Areadelegate
-- alg_kenmerk 1180 Reserve Area delegate
-- alg_kenmerk 1181 Reserve Building delegate
-- alg_kenmerk 1182 Supervisor
-- alg_kenmerk 1183 Building delegate
-- alg_kenmerk 1184 Evacuation
-- alg_kenmerk 1185 Reserve Area delegate (res)
-- alg_kenmerk 1200 Reserve Ontruimingsfuctionaris
CREATE OR REPLACE VIEW nour_v_rap_areadelegates
AS
SELECT al.alg_locatie_code||'-'||og.alg_gebouw_code||'-'||og.alg_verdieping_code||'-'||og.alg_ruimte_nr hide_f_sort,
al.alg_locatie_code fclt_f_locatie,
og.alg_gebouw_code fclt_f_gebouw,
og.alg_verdieping_code fclt_f_verdieping,
og.alg_ruimte_nr||' ('||og.alg_ruimte_omschrijving||')' fclt_f_ruimte,
areadel.prs_perslid_naam_full areagedelegeerde,
areares.prs_perslid_naam_full reserve_areagedelegeerde,
arearesres.prs_perslid_naam_full res_reserve_areagedelegeerde,
builddel.prs_perslid_naam_full gebouwgedelegeerde,
buildres.prs_perslid_naam_full reserve_gebouwgedelegeerde,
superv.prs_perslid_naam_full supervisor,
evac.prs_perslid_naam_full ontruimingsfunctionaris,
evacres.prs_perslid_naam_full res_ontruimingsfunctionaris
FROM alg_v_aanweziglocatie al,
alg_v_onroerendgoed_gegevens og,
alg_ruimte r,
(SELECT ok.alg_onrgoed_key alg_ruimte_key,
pf.prs_perslid_key,
pf.prs_perslid_naam_full
FROM alg_onrgoedkenmerk ok, prs_v_perslid_fullnames pf
WHERE ok.alg_onrgoed_niveau = 'R' AND ok.alg_kenmerk_key = 1160
AND ok.alg_onrgoedkenmerk_verwijder IS NULL
AND fac.safe_to_number(ok.alg_onrgoedkenmerk_waarde) = pf.prs_perslid_key) areadel,
(SELECT ok.alg_onrgoed_key alg_ruimte_key,
pf.prs_perslid_key,
pf.prs_perslid_naam_full
FROM alg_onrgoedkenmerk ok, prs_v_perslid_fullnames pf
WHERE ok.alg_onrgoed_niveau = 'R' AND ok.alg_kenmerk_key = 1180
AND ok.alg_onrgoedkenmerk_verwijder IS NULL
AND fac.safe_to_number(ok.alg_onrgoedkenmerk_waarde) = pf.prs_perslid_key) areares,
(SELECT ok.alg_onrgoed_key alg_ruimte_key,
pf.prs_perslid_key,
pf.prs_perslid_naam_full
FROM alg_onrgoedkenmerk ok, prs_v_perslid_fullnames pf
WHERE ok.alg_onrgoed_niveau = 'R' AND ok.alg_kenmerk_key = 1185
AND ok.alg_onrgoedkenmerk_verwijder IS NULL
AND fac.safe_to_number(ok.alg_onrgoedkenmerk_waarde) = pf.prs_perslid_key) arearesres,
(SELECT ok.alg_onrgoed_key alg_ruimte_key,
pf.prs_perslid_key,
pf.prs_perslid_naam_full
FROM alg_onrgoedkenmerk ok, prs_v_perslid_fullnames pf
WHERE ok.alg_onrgoed_niveau = 'R' AND ok.alg_kenmerk_key = 1183
AND ok.alg_onrgoedkenmerk_verwijder IS NULL
AND fac.safe_to_number(ok.alg_onrgoedkenmerk_waarde) = pf.prs_perslid_key) builddel,
(SELECT ok.alg_onrgoed_key alg_ruimte_key,
pf.prs_perslid_key,
pf.prs_perslid_naam_full
FROM alg_onrgoedkenmerk ok, prs_v_perslid_fullnames pf
WHERE ok.alg_onrgoed_niveau = 'R' AND ok.alg_kenmerk_key = 1181
AND ok.alg_onrgoedkenmerk_verwijder IS NULL
AND fac.safe_to_number(ok.alg_onrgoedkenmerk_waarde) = pf.prs_perslid_key) buildres,
(SELECT ok.alg_onrgoed_key alg_ruimte_key,
pf.prs_perslid_key,
pf.prs_perslid_naam_full
FROM alg_onrgoedkenmerk ok, prs_v_perslid_fullnames pf
WHERE ok.alg_onrgoed_niveau = 'R' AND ok.alg_kenmerk_key = 1182
AND ok.alg_onrgoedkenmerk_verwijder IS NULL
AND fac.safe_to_number(ok.alg_onrgoedkenmerk_waarde) = pf.prs_perslid_key) superv,
(SELECT ok.alg_onrgoed_key alg_ruimte_key,
pf.prs_perslid_key,
pf.prs_perslid_naam_full
FROM alg_onrgoedkenmerk ok, prs_v_perslid_fullnames pf
WHERE ok.alg_onrgoed_niveau = 'R' AND ok.alg_kenmerk_key = 1184
AND ok.alg_onrgoedkenmerk_verwijder IS NULL
AND fac.safe_to_number(ok.alg_onrgoedkenmerk_waarde) = pf.prs_perslid_key) evac,
(SELECT ok.alg_onrgoed_key alg_ruimte_key,
pf.prs_perslid_key,
pf.prs_perslid_naam_full
FROM alg_onrgoedkenmerk ok, prs_v_perslid_fullnames pf
WHERE ok.alg_onrgoed_niveau = 'R' AND ok.alg_kenmerk_key = 1200
AND ok.alg_onrgoedkenmerk_verwijder IS NULL
AND fac.safe_to_number(ok.alg_onrgoedkenmerk_waarde) = pf.prs_perslid_key) evacres
WHERE og.alg_locatie_key = al.alg_locatie_key
AND og.alg_ruimte_key IS NOT NULL
AND r.alg_ruimte_key = og.alg_ruimte_key
AND r.alg_ruimte_verwijder IS NULL
AND areadel.alg_ruimte_key(+) = og.alg_ruimte_key
AND areares.alg_ruimte_key(+) = og.alg_ruimte_key
AND arearesres.alg_ruimte_key(+) = og.alg_ruimte_key
AND builddel.alg_ruimte_key(+) = og.alg_ruimte_key
AND buildres.alg_ruimte_key(+) = og.alg_ruimte_key
AND superv.alg_ruimte_key(+) = og.alg_ruimte_key
AND evac.alg_ruimte_key(+) = og.alg_ruimte_key
AND evacres.alg_ruimte_key(+) = og.alg_ruimte_key
AND ( areadel.alg_ruimte_key IS NOT NULL
OR areares.alg_ruimte_key IS NOT NULL
OR arearesres.alg_ruimte_key IS NOT NULL
OR builddel.alg_ruimte_key IS NOT NULL
OR buildres.alg_ruimte_key IS NOT NULL
OR superv.alg_ruimte_key IS NOT NULL
OR evac.alg_ruimte_key IS NOT NULL
OR evacres.alg_ruimte_key IS NOT NULL);
--- OBJECTBEHEER ---------------------------------------------------------------
-- AKZA#29494: Labels met QR-code voor objecten
CREATE OR REPLACE VIEW nour_v_ins_qrc
AS
SELECT i.ins_deel_omschrijving hide_f_sort,
b.fac_bookmark_naam fclt_f_bookmark,
i.ins_discipline_key fclt_3d_discipline_key,
l.alg_locatie_key fclt_3d_locatie_key,
l.alg_locatie_omschrijving fclt_f_locatie,
o.alg_gebouw_omschrijving fclt_f_gebouw,
o.alg_plaatsaanduiding plaats,
s.ins_srtdeel_omschrijving fclt_f_objectsoort,
i.ins_deel_omschrijving fclt_f_identificatie,
i.ins_deel_key,
(SELECT r.alg_ruimte_omschrijving
FROM alg_ruimte r
WHERE r.alg_ruimte_key = i.ins_alg_ruimte_key)
soortruimte,
s.ins_srtdeel_code,
s.ins_srtdeel_key,
i.ins_alg_ruimte_type,
o.alg_gebouw_code,
o.alg_verdieping_code,
l.alg_district_key,
i.ins_alg_ruimte_key,
b.fac_bookmark_id hide_f_bookmark_id
FROM ins_deel i,
ins_v_alg_overzicht o,
ins_srtdeel s,
alg_locatie l,
alg_district di,
fac_bookmark b
WHERE b.fac_bookmark_path IN ('appl/pda/ins_deel.asp',
'appl/ins/ins_deel.asp')
AND ins_deel_verwijder IS NULL
AND COALESCE(i.ins_deel_vervaldatum, SYSDATE+1) > SYSDATE
AND i.ins_deel_module = 'INS'
AND i.ins_deel_parent_key IS NULL
AND o.alg_onroerendgoed_keys = i.ins_alg_ruimte_key
AND o.alg_onroerendgoed_type = i.ins_alg_ruimte_type
AND i.ins_alg_ruimte_type IN ('T', 'R', 'W')
AND o.alg_locatie_key = i.ins_alg_locatie_key
AND i.ins_alg_locatie_key = l.alg_locatie_key
AND l.alg_district_key = di.alg_district_key
AND s.ins_srtdeel_key = i.ins_srtdeel_key
AND o.alg_locatie_key = 121
UNION ALL
SELECT i.ins_deel_omschrijving hide_f_sort,
b.fac_bookmark_naam fclt_f_bookmark,
i.ins_discipline_key fclt_3d_discipline_key,
l.alg_locatie_key fclt_3d_locatie_key,
l.alg_locatie_omschrijving fclt_f_locatie,
o.alg_gebouw_omschrijving fclt_f_gebouw,
o.alg_plaatsaanduiding plaats,
s.ins_srtdeel_omschrijving fclt_f_objectsoort,
i.ins_deel_omschrijving fclt_f_identificatie,
i.ins_deel_key,
(SELECT r.alg_ruimte_omschrijving
FROM alg_ruimte r
WHERE r.alg_ruimte_key = i.ins_alg_ruimte_key)
soortruimte,
s.ins_srtdeel_code,
s.ins_srtdeel_key,
i.ins_alg_ruimte_type,
o.alg_gebouw_code,
o.alg_verdieping_code,
l.alg_district_key,
i.ins_alg_ruimte_key,
b.fac_bookmark_id hide_f_bookmark_id
FROM ins_deel i,
ins_v_alg_overzicht o,
ins_srtdeel s,
ins_srtgroep g,
alg_locatie l,
alg_district di,
fac_bookmark b,
mld_stdmelding sm,
mld_stdmelding_srtinst si
WHERE b.fac_bookmark_path IN ('appl/pda/melding.asp',
'appl/mld/melding.asp')
-- AND b.fac_bookmark_query LIKE '%stdm_key='||sm.mld_stdmelding_key||'%'
AND (b.fac_bookmark_expire IS NULL OR b.fac_bookmark_expire > SYSDATE)
AND ins_deel_verwijder IS NULL
AND i.ins_deel_module = 'INS'
AND i.ins_deel_parent_key IS NULL
AND s.ins_srtdeel_key = i.ins_srtdeel_key
AND g.ins_srtgroep_key = s.ins_srtgroep_key
AND o.alg_onroerendgoed_keys = i.ins_alg_ruimte_key
AND o.alg_onroerendgoed_type = i.ins_alg_ruimte_type
AND i.ins_alg_ruimte_type IN ('T', 'R', 'W')
AND o.alg_locatie_key = i.ins_alg_locatie_key
AND i.ins_alg_locatie_key = l.alg_locatie_key
AND l.alg_district_key = di.alg_district_key
AND sm.mld_stdmelding_key = si.mld_stdmelding_key
AND o.alg_locatie_key = 121
AND si.ins_srtinstallatie_key = DECODE(si.ins_srtinstallatie_niveau,
'S', i.ins_srtdeel_key,
'G', s.ins_srtgroep_key,
'D', g.ins_discipline_key);
CREATE OR REPLACE VIEW nour_v_ins_qrc_single
AS
SELECT *
FROM nour_v_ins_qrc;
CREATE OR REPLACE VIEW nour_v_ins_qrc_mld
AS
SELECT i.ins_deel_omschrijving hide_f_sort,
l.alg_locatie_code||' '||l.alg_locatie_omschrijving fclt_f_locatie,
o.alg_gebouw_omschrijving fclt_f_gebouw,
o.alg_plaatsaanduiding fclt_f_plaats,
d.ins_discipline_omschrijving fclt_f_discipline,
g.ins_srtgroep_omschrijving fclt_f_objectgroep,
s.ins_srtdeel_omschrijving fclt_f_objectsoort,
i.ins_deel_omschrijving fclt_f_identificatie,
d.ins_discipline_omschrijving||' / '||sm.mld_stdmelding_omschrijving fclt_f_melding,
i.ins_deel_key,
s.ins_srtdeel_key,
o.alg_gebouw_code,
o.alg_verdieping_code,
i.ins_discipline_key fclt_3d_discipline_key,
l.alg_locatie_key fclt_3d_locatie_key,
i.ins_alg_ruimte_type,
i.ins_alg_ruimte_key,
b.fac_bookmark_id hide_f_bookmark_id
FROM ins_deel i,
ins_v_alg_overzicht o,
ins_srtdeel s,
ins_srtgroep g,
ins_discipline d,
alg_locatie l,
fac_bookmark b,
mld_stdmelding sm,
mld_stdmelding_srtinst si
WHERE b.fac_bookmark_naam = 'QRC_MELDING'
AND (b.fac_bookmark_expire IS NULL OR b.fac_bookmark_expire > SYSDATE)
AND ins_deel_verwijder IS NULL
AND i.ins_deel_module = 'INS'
AND i.ins_deel_parent_key IS NULL
AND s.ins_srtdeel_key = i.ins_srtdeel_key
AND g.ins_srtgroep_key = s.ins_srtgroep_key
AND d.ins_discipline_key = g.ins_discipline_key
AND o.alg_onroerendgoed_keys = i.ins_alg_ruimte_key
AND o.alg_onroerendgoed_type = i.ins_alg_ruimte_type
AND i.ins_alg_ruimte_type IN ('T', 'R', 'W')
AND o.alg_locatie_key = i.ins_alg_locatie_key
AND i.ins_alg_locatie_key = l.alg_locatie_key
AND sm.mld_stdmelding_key = si.mld_stdmelding_key
AND si.ins_srtinstallatie_key = DECODE(si.ins_srtinstallatie_niveau,
'S', i.ins_srtdeel_key,
'G', s.ins_srtgroep_key,
'D', g.ins_discipline_key);
CREATE OR REPLACE VIEW NOUR_V_NOTI_OBJBEH
(
METHODE,
TO_KEY,
TO_OMSCHR,
REF_KEY,
REF_OMSCHR,
KPN_KEY,
AANTAL,
BETREFT
)
AS
WITH
taken
AS
(SELECT fac.nextcyclusdatedeel (d.ins_deel_key,
d.ins_srtcontrole_key,
1) volgende_cyclus,
p.ins_deelsrtcontrole_plandatum datum_gepland,
COALESCE (
p.ins_deelsrtcontrole_plandatum,
fac.nextcyclusdatedeel (d.ins_deel_key,
d.ins_srtcontrole_key,
1)) volgende_ctr,
d.*,
xcp.ins_srtcontroledl_xcp_periode
FROM (SELECT sc.ins_srtcontrole_key,
d.ins_deel_key,
d.ins_deel_omschrijving,
sc.ins_srtcontrole_periode,
sd.ins_srtdeel_omschrijving,
a.prs_kostenplaats_key,
pfa.prs_perslid_key,
pfa.prs_perslid_naam_full,
CASE
WHEN UPPER (ud.fac_usrdata_omschr) LIKE
'TS-DISCIPLINE%'
THEN
4404 --- op deze manier mappen we alle TS-DISCIPLINE opties terug naar 1
ELSE
ud.fac_usrdata_key
END AS fac_usrdata_key,
ud.fac_usrdata_omschr
FROM ins_srtcontrole sc,
ins_discipline di,
ins_v_aanwezigsrtgroep sg,
ins_v_aanwezigsrtdeel sd,
ins_v_aanwezigdeel d,
prs_perslid p,
prs_afdeling a,
prs_v_perslid_fullnames_all pfa,
(SELECT *
FROM ins_kenmerkdeel kd, ins_kenmerk k
WHERE kd.ins_kenmerkdeel_verwijder IS NULL
AND kd.ins_kenmerk_key =
k.ins_kenmerk_key
AND k.ins_srtkenmerk_key = 3742) kd, -- Uitvoerder regime
fac_usrdata ud
WHERE sd.ins_srtdeel_key = d.ins_srtdeel_key
AND sg.ins_srtgroep_key = sd.ins_srtgroep_key
AND di.ins_discipline_key = sg.ins_discipline_key
AND COALESCE (d.ins_deel_vervaldatum,
SYSDATE + 1) >
SYSDATE
AND p.prs_perslid_key = d.prs_perslid_key_beh
AND a.prs_afdeling_key(+) = p.prs_afdeling_key
AND pfa.prs_perslid_key = d.prs_perslid_key_beh
AND kd.ins_deel_key = d.ins_deel_key
AND NOT EXISTS
(SELECT sk.ins_srtkenmerk_omschrijving,
kd.ins_deel_key
FROM ins_srtkenmerk sk,
ins_kenmerk k,
ins_kenmerkdeel kd
WHERE sk.ins_srtkenmerk_key = 3922
AND k.ins_srtkenmerk_key =
sk.ins_srtkenmerk_key
AND kd.ins_kenmerk_key =
k.ins_kenmerk_key
AND kd.ins_deel_key =
d.ins_deel_key)
AND ( sc.ins_srtcontrole_eind IS NULL
OR sc.ins_srtcontrole_eind > SYSDATE)
AND kd.ins_kenmerkdeel_waarde != '4321' -- 'N.v.t.'
AND ud.fac_usrdata_key =
fac.safe_to_number (
kd.ins_kenmerkdeel_waarde)
AND sc.ins_srtinstallatie_key =
DECODE (ins_srtcontrole_niveau,
'D', di.ins_discipline_key,
'G', sg.ins_srtgroep_key,
'S', sd.ins_srtdeel_key)) d,
ins_srtcontroledl_xcp xcp,
(SELECT *
FROM ins_v_udr_deelinspect ins
WHERE deelsrtcontrole_status = 'Gepland'
AND ins_deelsrtcontrole_plandatum IS NOT NULL) p
WHERE xcp.ins_deel_key(+) = d.ins_deel_key
AND xcp.ins_srtcontrole_key(+) = d.ins_srtcontrole_key
AND p.deel_key(+) = d.ins_deel_key
AND p.ins_srtcontrole_key(+) = d.ins_srtcontrole_key
AND COALESCE (xcp.ins_srtcontroledl_xcp_periode,
d.ins_srtcontrole_periode) >
0
-- De eerste paar dagen van volgende maand ook vast meepakken, dat scheelt verrassingen
AND COALESCE (
p.ins_deelsrtcontrole_plandatum,
fac.nextcyclusdatedeel (d.ins_deel_key,
d.ins_srtcontrole_key,
1)) <
ADD_MONTHS (SYSDATE, 1) + 3)
SELECT 'mail' methode,
prs_perslid_key to_key,
prs_perslid_naam_full to_omschr,
NULL ref_key,
NULL ref_omschr,
NULL kpn_key,
COUNT (*) aantal,
LISTAGG (ins_deel_omschrijving, ', ')
WITHIN GROUP (ORDER BY ins_deel_omschrijving) AS betreft
FROM taken
WHERE fac_usrdata_key = 4318 -- Objectbeheerder
GROUP BY prs_perslid_key, prs_perslid_naam_full
UNION ALL
SELECT 'melding' methode,
fac_usrdata_key to_key,
fac_usrdata_omschr to_omschr,
prs_perslid_key ref_key,
prs_perslid_naam_full ref_omschr,
prs_kostenplaats_key kpn_key,
COUNT (*) aantal,
LISTAGG (ins_deel_omschrijving, ', ')
WITHIN GROUP (ORDER BY ins_deel_omschrijving) AS betreft
FROM taken
WHERE fac_usrdata_key NOT IN (4321, 4318) -- alles behalve nvt en beheerder
GROUP BY fac_usrdata_key,
fac_usrdata_omschr,
prs_kostenplaats_key,
prs_perslid_key,
prs_perslid_naam_full
ORDER BY methode, to_omschr, ref_omschr;
CREATE OR REPLACE FORCE VIEW nour_V_TAKEN_STOPLICHT
(
ALG_LOCATIE_CODE,
ALG_GEBOUW_CODE,
ALG_GEBOUW_KEY,
ALG_VERDIEPING_CODE,
ALG_VERDIEPING_KEY,
ALG_RUIMTE_NR,
ALG_RUIMTE_KEY,
STATUS
)
AS
WITH taken
AS (SELECT d.*,
fac.nextcyclusdatedeel (d.ins_deel_key,
d.ins_srtcontrole_key,
1)
datum,
ins_deelsrtcontrole_plandatum,
CASE
WHEN ins_deelsrtcontrole_plandatum IS NOT NULL
THEN
ins_deelsrtcontrole_plandatum
ELSE
fac.nextcyclusdatedeel (d.ins_deel_key,
d.ins_srtcontrole_key,
1)
END
AS next_date
FROM (SELECT d.ins_alg_ruimte_key,
d.ins_deel_key,
d.ins_deel_omschrijving,
sd.ins_srtdeel_omschrijving,
sc.ins_srtcontrole_key,
sc.ins_srtcontrole_periode
FROM ins_srtcontrole sc,
ins_discipline di,
ins_v_aanwezigsrtgroep sg,
ins_v_aanwezigsrtdeel sd,
ins_v_aanwezigdeel d,
prs_perslid p
WHERE sd.ins_srtdeel_key = d.ins_srtdeel_key
AND sg.ins_srtgroep_key = sd.ins_srtgroep_key
AND di.ins_discipline_key =
sg.ins_discipline_key
AND COALESCE (d.ins_deel_vervaldatum,
SYSDATE + 1) > SYSDATE
AND p.prs_perslid_key = d.prs_perslid_key_beh
AND d.ins_alg_ruimte_type = 'R'
AND sc.ins_srtinstallatie_key =
DECODE (ins_srtcontrole_niveau,
'D', di.ins_discipline_key,
'G', sg.ins_srtgroep_key,
'S', sd.ins_srtdeel_key)) d
LEFT OUTER JOIN ins_srtcontroledl_xcp xcp
ON xcp.ins_deel_key = d.ins_deel_key
AND xcp.ins_srtcontrole_key =
d.ins_srtcontrole_key
LEFT OUTER JOIN (SELECT d.ins_alg_ruimte_key,
d.ins_deel_key,
d.ins_deel_omschrijving,
sd.ins_srtdeel_omschrijving,
c.ins_srtcontrole_key,
sc.ins_srtcontrole_periode,
c.ins_deelsrtcontrole_plandatum
FROM ins_deelsrtcontrole c,
ins_v_aanwezigdeel d,
ins_srtdeel sd,
ins_srtcontrole sc
WHERE c.ins_deelsrtcontrole_plandatum IS NOT NULL
AND c.ins_deelsrtcontrole_datum IS NULL
AND d.ins_deel_key =
c.ins_deel_key
AND sd.ins_srtdeel_key =
d.ins_srtdeel_key
AND sc.ins_srtcontrole_key =
c.ins_srtcontrole_key)
respijt
ON respijt.ins_deel_key = d.ins_deel_key
AND respijt.ins_srtcontrole_key =
d.ins_srtcontrole_key
WHERE COALESCE (xcp.ins_srtcontroledl_xcp_periode,
d.ins_srtcontrole_periode) > 0)
SELECT r."ALG_LOCATIE_CODE",
r."ALG_GEBOUW_CODE",
r."ALG_GEBOUW_KEY",
r."ALG_VERDIEPING_CODE",
r."ALG_VERDIEPING_KEY",
r."ALG_RUIMTE_NR",
r."ALG_RUIMTE_KEY",
t.status
FROM (SELECT l.alg_locatie_code,
g.alg_gebouw_code,
g.alg_gebouw_key,
v.alg_verdieping_code,
v.alg_verdieping_key,
r.alg_ruimte_nr,
r.alg_ruimte_key
FROM alg_v_aanwezigruimte r,
alg_v_aanwezigverdieping v,
alg_v_aanweziggebouw g,
alg_v_aanweziglocatie l
WHERE v.alg_verdieping_key = r.alg_verdieping_key
AND g.alg_gebouw_key = v.alg_gebouw_key
AND l.alg_locatie_key = g.alg_locatie_key) r
LEFT OUTER JOIN
( SELECT ins_alg_ruimte_key alg_ruimte_key,
CASE
WHEN MIN(next_date) < SYSDATE THEN 1 -- 'rood'
WHEN MIN (next_date) < ADD_MONTHS (SYSDATE, 1) THEN 2 -- 'geel'
ELSE 3 -- 'groen'
END
status
FROM taken
GROUP BY ins_alg_ruimte_key) t
ON r.alg_ruimte_key = t.alg_ruimte_key;
CREATE OR REPLACE VIEW nour_v_cad_taken_stoplicht
AS
SELECT alg_ruimte_key,
DECODE(status,
1, 'rood',
2, 'geel',
3, 'groen') waarde
FROM nour_v_taken_stoplicht;
--- SLEUTELBEHEER --------------------------------------------------------------
CREATE OR REPLACE VIEW nour_v_rap_sleutelplan
(
EXTRA_KEY,
FCLT_F_BEZITTER,
PERSONEELSNR,
AFDELING,
TELEFOONNR,
FCLT_F_SLUITPLAN,
SOORT,
SLEUTELNR,
DATUM,
OPMERKING
)
AS
SELECT p1.prs_perslid_key,
p.prs_perslid_naam_full,
p1.prs_perslid_nr,
a.prs_afdeling_naam1,
p1.prs_perslid_telefoonnr,
ins_srtdeel_code Sluitplan,
s.ins_srtdeel_omschrijving Soort,
dl.ins_deel_omschrijving Sleutelnr,
TO_CHAR (
(SELECT MAX (tr.fac_tracking_datum)
FROM fac_tracking tr, fac_srtnotificatie str
WHERE tr.fac_srtnotificatie_key =
str.fac_srtnotificatie_key
AND (str.fac_srtnotificatie_xmlnode IN ('deel'))
AND FAC_SRTNOTIFICATIE_CODE = 'INSOUT'
AND dl.ins_deel_key = tr.fac_tracking_refkey),
'DD-MM-YYYY'
)
Datum,
pa.alg_plaatsaanduiding
|| ' ('
|| r.alg_ruimte_omschrijving
|| ')'
Opmerking
FROM ins_v_aanwezigdeel dl,
ins_v_aanwezigsrtdeel s,
prs_v_perslid_fullnames_all p,
prs_v_aanwezigperslid p1,
alg_ruimte r,
ins_v_alg_overzicht pa,
prs_v_afdeling a
WHERE s.ins_srtdeel_key = dl.ins_srtdeel_key
AND s.ins_srtgroep_key = 925
AND dl.ins_alg_ruimte_type_org = 'R'
AND dl.ins_alg_ruimte_key = p.prs_perslid_key
AND p.prs_perslid_key = p1.prs_perslid_key
AND dl.ins_alg_ruimte_key_org IS NOT NULL
AND dl.ins_alg_ruimte_key_org = r.alg_ruimte_key
AND r.alg_ruimte_key = pa.alg_onroerendgoed_keys
AND a.prs_afdeling_key = p1.prs_afdeling_key
ORDER BY prs_perslid_naam_full, sluitplan;
CREATE OR REPLACE VIEW nour_v_noti_sleutelplan
(
CODE,
SENDER,
RECEIVER,
TEXT,
KEY,
XKEY
)
AS
SELECT 'CUST01',
NULL,
fac.safe_to_number (prs_perslid_key_voor),
'Overzicht sleutels',
(SELECT fac_usrrap_key
FROM fac_usrrap
WHERE fac_usrrap_omschrijving = 'NOUR_V_RAP_SLEUTELPLAN'),
fac.safe_to_number (prs_perslid_key_voor)
FROM mld_melding,
fac_tracking tr,
fac_srtnotificatie str
WHERE mld_stdmelding_key = 1061
AND mld_melding_status IN (5, 6)
AND tr.fac_srtnotificatie_key = str.fac_srtnotificatie_key
AND ( (tr.fac_tracking_refkey = mld_melding_key
AND str.fac_srtnotificatie_xmlnode IN ('melding')))
AND fac_srtnotificatie_code = 'MLDAFM'
AND tr.fac_tracking_datum >
(SELECT fac_notificatie_job_nextrun
- fac_notificatie_job_interval / 24
FROM fac_notificatie_job
WHERE fac_notificatie_job_view = 'NOUR_V_NOTI_SLEUTELPLAN');
CREATE OR REPLACE VIEW NOUR_V_NOTI_MLD_EINDTMPBADGE
(
CODE,
SENDER,
RECEIVER,
TEXT,
KEY,
XKEY
)
AS
SELECT 'CUST03',
NULL,
b.aanvrager_key,
'Tijdelijke badge verloopt: '
|| einddat_badge.blokkade_datum
|| ' (badgenummer: '
|| badge_nr.badge_nr
|| ')',
p.prs_perslid_key,
NULL
FROM prs_perslid p, -- badgehouder
nour_v_rap_tbadges b,
(SELECT prs_link_key, prs_kenmerklink_waarde blokkade_datum
FROM prs_kenmerklink kl
WHERE kl.prs_kenmerklink_niveau = 'P' AND kl.prs_kenmerk_key = 1360)
einddat_badge,
(SELECT prs_link_key, prs_kenmerklink_waarde badge_nr
FROM prs_kenmerklink kl
WHERE kl.prs_kenmerklink_niveau = 'P' AND kl.prs_kenmerk_key = 1000)
badge_nr
WHERE p.prs_perslid_key = einddat_badge.prs_link_key
AND p.prs_perslid_key = badge_nr.prs_link_key
AND b.badgehouder_key = p.prs_perslid_key
AND fac.safe_to_date (einddat_badge.blokkade_datum, 'DD-MM-YYYY') = TRUNC (SYSDATE + 7);
--- de notificatie moet een rapport opleveren
CREATE OR REPLACE VIEW NOUR_V_RAP_NOT_AANVR_TBADGE
(
BLOKKADE_DATUM,
BADGEHOUDER_KEY,
BADGEHOUDER,
BADGE_NR,
FCLT_3D_USER_KEY,
AANVRAGER,
MELDING_KEY,
HTML_MELDINGNR
)
AS
SELECT b.blokkade_datum,
b.badgehouder_key,
b.badgehouder,
b.badge_nr,
b.aanvrager_key,
b.aanvrager,
b.melding_key,
b.html_meldingnr
FROM nour_v_rap_tbadges b
WHERE soort_badge = 'Tijdelijke badge'
AND blokkade_datum > TRUNC (SYSDATE - 1);
--- EXPORTS --------------------------------------------------------------------
-- FACILITOR beoordeelt maandelijks welke taken in de komende periode moeten worden uitgevoerd,
-- of al uitgevoerd hadden moeten zijn. De beheerders van de objecten van deze taken worden
-- hiervan op de hoogte gesteld.
-- * Is de beheerder tevens de eigenaar (owner), dan krijgt deze hierover een e-mail, met een
-- link naar een overzicht van taken op zijn objecten
-- * Ligt het beheer bij TS (EIA of WTB), dan wordt per objectbeheerder een melding aangemaakt,
-- die vanzelf in de actielijst van de juiste backoffice terecht komen. Melder = objectbeheerder
-- (plus kostenplaats).
-- NB: een owner ontvangt maximaal <20><>n e-mail per maand; men ontvangt niet over ieder object
-- een e-mail en er wordt alleen een e-mail verzonden als er in de komende periode taken op
-- objecten van de owner uitgevoerd moeten worden (of taken te laat zijn).
CREATE OR REPLACE PROCEDURE NOUR_INSERT_OBJECTEN (
p_to_key IN NUMBER,
p_ref_key IN NUMBER,
p_mld_melding_key IN VARCHAR2)
IS
CURSOR c_objecten IS
SELECT splt.methode,
splt.to_key,
splt.ref_key,
obj.ins_deel_key
FROM (SELECT DISTINCT methode,
to_key,
ref_key,
REGEXP_SUBSTR (betreft,
'[^,]+',
1,
COLUMN_VALUE) item
FROM nour_v_noti_objbeh spl,
TABLE (
CAST (
MULTISET (
SELECT LEVEL
FROM DUAL
CONNECT BY LEVEL <=
LENGTH (
REGEXP_REPLACE (betreft,
'[^,]'))
+ 1) AS SYS.OdciNumberList)))
splt,
ins_deel obj
WHERE splt.methode = 'melding'
AND TRIM (splt.item) = obj.ins_deel_omschrijving
AND splt.to_key = p_to_key
AND splt.ref_key = p_ref_key;
BEGIN
FOR rec IN c_objecten
LOOP
BEGIN
INSERT INTO mld_melding_object (mld_melding_key, ins_deel_key)
VALUES (p_mld_melding_key, rec.ins_deel_key);
EXCEPTION
WHEN OTHERS
THEN
fac.imp_writelog (
'Monthly Task',
'W',
'Aanvullen object: '
|| rec.ins_deel_key
|| ' is niet uitgevoerd',
'Melding: ' || p_mld_melding_key);
COMMIT;
END;
END LOOP;
END NOUR_INSERT_OBJECTEN;
/
CREATE OR REPLACE PROCEDURE nour_export_task_monthly(p_applname IN VARCHAR2,
p_applrun IN VARCHAR2,
p_filedir IN VARCHAR2,
p_filename IN VARCHAR2)
AS
oracle_err_num NUMBER;
oracle_err_mes VARCHAR2(200);
v_errorhint VARCHAR2(100);
v_aanduiding VARCHAR2(100);
v_melding_key NUMBER(10);
CURSOR c
IS
SELECT * FROM nour_v_noti_objbeh;
BEGIN
v_errorhint := 'init';
DELETE imp_log WHERE imp_log_applicatie = p_applname;
FOR rec IN c
LOOP
BEGIN
IF (rec.methode = 'mail')
THEN
v_aanduiding := rec.ref_omschr || ' ('||rec.methode||') ';
ELSE
v_aanduiding := rec.to_omschr||'/'||rec.ref_omschr || ' ('||rec.methode||') ';
END IF;
IF (rec.methode = 'mail')
THEN
v_errorhint := 'Add mail';
INSERT INTO fac_notificatie (
fac_srtnotificatie_key,
fac_notificatie_status,
prs_perslid_key_receiver,
fac_notificatie_receiver_email,
fac_notificatie_oms,
fac_notificatie_refkey,
prs_perslid_key_sender,
fac_notificatie_prioriteit,
fac_notificatie_lang)
SELECT fac_srtnotificatie_key,
2,
rec.to_key,
prs_perslid_email,
rec.aantal||' uit te voeren taken deze maand',
rec.to_key,
7520,
2,
'NL'
FROM fac_srtnotificatie,
prs_perslid
WHERE fac_srtnotificatie_code = 'CUST05'
AND prs_perslid_key = rec.to_key;
fac.writelog (p_applname, 'I',
'Mail naar '||rec.to_omschr,
rec.aantal||' objecten');
ELSE
v_errorhint := 'Add melding';
INSERT INTO mld_melding (
mld_melding_onderwerp,
mld_melding_omschrijving,
mld_kosten_klant,
prs_perslid_key,
prs_perslid_key_voor,
prs_kostenplaats_key,
mld_stdmelding_key,
mld_alg_locatie_key,
mld_melding_datum,
mld_meldbron_key,
mld_melding_status,
mld_melding_module,
mld_melding_spoed)
VALUES (
'Taken voor '||rec.ref_omschr,
'Uit te voeren taken deze maand voor objectbeheerder '||rec.ref_omschr
||CHR(13)||CHR(10)||'Betreft object(en): '||rec.betreft,
1,
rec.ref_key,
rec.ref_key,
rec.kpn_key,
DECODE(rec.to_key,
4320, 1481, -- EIA / Uitvoering regime
4319, 1482, -- WTB / Uitvoering regime
4347, 1581, -- LDW/ Uitvoering regime
4388, 1610, -- S/Park / Uitvoering regime
4404, 1821), -- TS-Disciplines / Uitvoering regime
121, -- DEV
SYSDATE,
45, -- System
NULL, -- Nieuw
'MLD',
3)
RETURNING mld_melding_key
INTO v_melding_key;
v_errorhint := 'Set status';
mld.setmeldingstatus (v_melding_key, 2, 7520);
fac.writelog (p_applname, 'I',
'Melding voor '||rec.to_omschr||', namens '||rec.ref_omschr,
rec.aantal||' objecten');
NOUR_INSERT_OBJECTEN (rec.to_key, rec.ref_key, v_melding_key);
END IF;
EXCEPTION
WHEN OTHERS
THEN
oracle_err_num := SQLCODE;
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
fac.writelog (p_applname, 'E',
'Error ' || v_aanduiding || oracle_err_num || '/' || oracle_err_mes,
v_errorhint);
END;
END LOOP;
EXCEPTION
WHEN OTHERS
THEN
oracle_err_num := SQLCODE;
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
fac.writelog (p_applname, 'E',
'Error ' || oracle_err_num || '/' || oracle_err_mes,
v_errorhint);
END nour_export_task_monthly;
/
-- Rapport om te check of alle kostenplaats- en companygegevens volledig zijn ingevuld.
CREATE OR REPLACE VIEW nour_v_rap_kpn_check
AS
SELECT DISTINCT k.prs_kostenplaats_nr||'-'||k.debiteurnr hide_f_sort,
k.fclt_kostenplaats_nr fclt_f_kostenplaats_nr,
k.prs_kostenplaats_omschrijving fclt_x_kostenplaats_naam,
'<a class="details" onclick=''FcltMgr.openDetail("'
|| 'appl/prs/kpn_kpn.asp?mode=viewUpdate&'||'key='||k.prs_kostenplaats_key
|| '")''>'
|| htf.escape_sc(k.prs_kostenplaats_omschrijving)
|| '</a>'
html_kostenplaats_naam,
k.debiteurnr fclt_f_debiteurnr,
'<a class="details" onclick=''FcltMgr.openDetail("'
|| 'appl/prs/kpn_kpngroep.asp?mode=viewUpdate&'||'key='||k.prs_kostenplaatsgrp_key
|| '")''>'
|| htf.escape_sc(k.prs_kostenplaatsgrp_oms)
|| '</a>'
html_kostenplaatsgroep,
ac.companycode fclt_f_companycode,
'<a class="details" onclick=''FcltMgr.openDetail("'
|| 'appl/prs/prs_afdeling.asp?afd_niveau=1&'||'afd_key='||ac.company_key
|| '")''>'
|| htf.escape_sc(ac.company_oms)
|| '</a>'
html_company_omschrijving,
DECODE( ac.companycode,
NULL, 'Nee',
'Ja') fclt_f_ok
FROM nour_v_kostenplaats k,
(SELECT * FROM prs_kenmerklink
WHERE prs_kenmerk_key = 1380
AND prs_kenmerklink_verwijder IS NULL) kl,
nour_v_afdelingcompany ac
WHERE k.prs_kostenplaats_verwijder IS NULL
AND kl.prs_kenmerklink_waarde(+) = k.debiteurnr
AND ac.prs_afdeling_key(+) = kl.prs_link_key;
-- AKZA#37566 Rapport met ruimte gegevens.
create or replace view nour_v_rap_ruimte_gegevens
(
alg_locatie_omschrijving,
alg_locatie_code,
alg_gebouw_omschrijving,
alg_verdieping_omschrijving,
alg_verdieping_volgnr,
alg_verdieping_code,
alg_ruimte_nr,
alg_ruimte_omschrijving,
alg_srtruimte_omschrijving,
alg_ruimte_vloer_omschrijving,
alg_ruimte_bruto_vloeropp,
alg_ruimte_opp_gevelglas,
alg_ruimte_opp_separatieglas,
alg_ruimte_opp_gevelbekleding,
alg_ruimte_aanduiding,
alg_ruimte_omtrek,
alg_ruimte_inhoud,
alg_ruimte_getekend,
alg_ruimte_opmerking,
alg_ruimte_opp_alt1,
alg_ruimte_opp_alt2
)
as
select alg_locatie_omschrijving,
alg_locatie_code,
alg_gebouw_omschrijving,
alg_verdieping_omschrijving,
alg_verdieping_volgnr,
alg_verdieping_code,
alg_ruimte_nr,
alg_ruimte_omschrijving,
alg_srtruimte_omschrijving,
alg_ruimte_vloer_omschrijving,
alg_ruimte_bruto_vloeropp,
alg_ruimte_opp_gevelglas,
alg_ruimte_opp_separatieglas,
alg_ruimte_opp_gevelbekleding,
alg_ruimte_aanduiding,
alg_ruimte_omtrek,
alg_ruimte_inhoud,
alg_ruimte_getekend,
alg_ruimte_opmerking,
alg_ruimte_opp_alt1,
alg_ruimte_opp_alt2
from alg_v_ruimte_gegevens;
--------------------------------------------------------------------------------------------------
------------------------------- IMPORTS ----------------------------------------------------------
--------------------------------------------------------------------------------------------------
--- OPDRACHTKOSTEN -------------------------------------------------------------
-- AKZA#27387: Import opdrachtkosten (MB)
CREATE OR REPLACE PROCEDURE nour_import_opdrkosten (
p_import_key IN NUMBER
)
IS
c_fielddelimitor VARCHAR2 (1) := ';';
v_newline VARCHAR2 (1000); -- Input line
v_aanduiding VARCHAR2 (200);
v_errorhint VARCHAR2 (1000);
v_errormsg VARCHAR2 (1000);
oracle_err_num NUMBER;
oracle_err_mes VARCHAR2 (200);
header_is_valid NUMBER := 0;
v_ongeldig NUMBER (1);
v_count_tot NUMBER (10);
v_count_import NUMBER (10);
v_count NUMBER;
-- De importvelden:
v_mld_opdr_nr VARCHAR2 (256);
v_mld_opdr_uren VARCHAR2 (256);
v_mld_opdr_uurloon VARCHAR2 (256);
v_mld_opdr_materiaal VARCHAR2 (256);
-- !!Let op: dit is geen veld in de database, maar wordt via opdrachtkosten teruggerekend!!
v_correctie_bedrag VARCHAR2 (256);
v_mld_opdr_opmerking VARCHAR2 (4000);
CURSOR c
IS
SELECT *
FROM fac_imp_file
WHERE fac_import_key = p_import_key
ORDER BY fac_imp_file_index;
BEGIN
DELETE FROM nour_imp_opdrkosten;
v_count_tot := 0;
v_count_import := 0;
FOR rec IN c
LOOP
BEGIN
v_newline := rec.fac_imp_file_line;
v_aanduiding := '';
v_errorhint := 'Fout bij opvragen te importeren rij';
v_ongeldig := 0;
-- Lees alle veldwaarden
fac.imp_getfield_nr (v_newline, c_fielddelimitor, 1, v_mld_opdr_nr);
fac.imp_getfield_nr (v_newline, c_fielddelimitor, 2, v_mld_opdr_uren);
fac.imp_getfield_nr (v_newline, c_fielddelimitor, 3, v_mld_opdr_uurloon);
fac.imp_getfield_nr (v_newline, c_fielddelimitor, 4, v_mld_opdr_materiaal);
fac.imp_getfield_nr (v_newline, c_fielddelimitor, 5, v_correctie_bedrag);
fac.imp_getfield_nr (v_newline, c_fielddelimitor, 6, v_mld_opdr_opmerking);
v_aanduiding := '[' || v_mld_opdr_nr || '(' || v_mld_opdr_uren || ',' || v_mld_opdr_uurloon || ',' || v_mld_opdr_materiaal || ',' || v_correctie_bedrag || '): ' || '] ';
-- 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_mld_opdr_nr) = 'OPDRACHTNUMMER'
AND UPPER(v_mld_opdr_uren) = 'UREN'
AND UPPER(v_mld_opdr_uurloon) = 'UURTARIEF'
AND UPPER(v_mld_opdr_materiaal) = 'MATERIAALKOSTEN'
AND UPPER(v_correctie_bedrag) = 'CORRECTIEBEDRAG'
AND UPPER(v_mld_opdr_opmerking) = 'OPMERKINGEN'
THEN
header_is_valid := 1;
END IF;
ELSE
v_count_tot := v_count_tot + 1;
-- Controleer alle veldwaarden
v_errorhint := 'Ongeldig/onbekend opdrachtnummer';
v_mld_opdr_nr := TRIM(v_mld_opdr_nr);
-- opdrachtnummer is maximaal <prefix> + <meldingkey> + '/' + <volgnr> = 3 + 10 + 1 + 10 = 24 karakters
IF (v_mld_opdr_nr IS NOT NULL)
THEN
IF LENGTH (v_mld_opdr_nr) > 24
THEN
v_mld_opdr_nr := SUBSTR (v_mld_opdr_nr, 1, 24);
fac.imp_writelog (p_import_key, 'W',
v_aanduiding || 'Opdrachtnummer te lang',
'Wordt afgebroken tot [' || v_mld_opdr_nr || ']' );
END IF;
ELSE
v_ongeldig := 1;
EXIT;
END IF;
-- opdracht uren is N(7,2), dus maximaal 8 karakters (b.v. 12345.67)
IF (v_mld_opdr_uren IS NOT NULL)
THEN
IF LENGTH (v_mld_opdr_uren) > 8
THEN
v_mld_opdr_uren := SUBSTR (v_mld_opdr_uren, 1, 8);
fac.imp_writelog (p_import_key, 'W',
v_aanduiding || 'Uren te lang',
'Wordt afgebroken tot [' || v_mld_opdr_uren || ']' );
END IF;
END IF;
-- uurtarief is N(6,2), dus maximaal 7 karakters (b.v. 1234.56)
IF (v_mld_opdr_uurloon IS NOT NULL)
THEN
IF LENGTH (v_mld_opdr_uurloon) > 8
THEN
v_mld_opdr_uurloon := SUBSTR (v_mld_opdr_uurloon, 1, 7);
fac.imp_writelog (p_import_key, 'W',
v_aanduiding || 'Uurtarief te lang',
'Wordt afgebroken tot [' || v_mld_opdr_uurloon || ']' );
END IF;
END IF;
-- materiaalkosten is N(8,2), dus maximaal 9 karakters (b.v. 123456.78)
IF (v_mld_opdr_materiaal IS NOT NULL)
THEN
IF LENGTH (v_mld_opdr_materiaal) > 9
THEN
v_mld_opdr_materiaal := SUBSTR (v_mld_opdr_materiaal, 1, 7);
fac.imp_writelog (p_import_key, 'W',
v_aanduiding || 'Materiaalkosten te lang',
'Wordt afgebroken tot [' || v_mld_opdr_materiaal || ']' );
END IF;
END IF;
-- correctiebedrag is geen DB-veld, maar wordt logischerwijs gelijkgetrokken aan materiaalkosten.
IF (v_correctie_bedrag IS NOT NULL)
THEN
IF LENGTH (v_correctie_bedrag) > 9
THEN
v_correctie_bedrag := SUBSTR (v_correctie_bedrag, 1, 7);
fac.imp_writelog (p_import_key, 'W',
v_aanduiding || 'Correctiebedrag te lang',
'Wordt afgebroken tot [' || v_correctie_bedrag || ']' );
END IF;
END IF;
-- opmerking is maximaal 4000 karakters
IF (v_mld_opdr_opmerking IS NOT NULL)
THEN
IF LENGTH (v_mld_opdr_opmerking) > 4000
THEN
v_mld_opdr_opmerking := SUBSTR (v_mld_opdr_opmerking, 1, 4000);
fac.imp_writelog (p_import_key, 'W',
v_aanduiding || 'Opmerking te lang',
'Wordt afgebroken tot [' || v_mld_opdr_opmerking || ']' );
END IF;
END IF;
IF ( v_mld_opdr_uren IS NULL
AND v_mld_opdr_uurloon IS NULL
AND v_mld_opdr_materiaal IS NULL
AND v_correctie_bedrag IS NULL
AND v_mld_opdr_opmerking IS NULL
)
THEN
fac.imp_writelog (p_import_key, 'W',
v_aanduiding || 'Alle velden zijn leeg, regel wordt niet verwerkt.',
'Ingelezen regel kan niet worden weggeschreven!' );
v_ongeldig := 1;
EXIT;
END IF;
IF ( (v_mld_opdr_uren IS NOT NULL AND v_mld_opdr_uurloon IS NULL) OR
(v_mld_opdr_uren IS NULL AND v_mld_opdr_uurloon IS NOT NULL)
)
THEN
fac.imp_writelog (p_import_key, 'W',
v_aanduiding || 'Resultaat van uren x uurtarief is 0 omdat niet beide velden gevuld zijn.',
'Wordt derhlave genegeerd' );
END IF;
-- Insert geformatteerde import record
IF v_ongeldig = 0
THEN
BEGIN
v_errorhint :=
'Fout bij toevoegen regel aan importtabel';
INSERT INTO nour_imp_opdrkosten( mld_opdr_nr, mld_opdr_uren, mld_opdr_uurloon, mld_opdr_materiaal, correctie_bedrag, mld_opdr_opmerking)
VALUES (v_mld_opdr_nr, v_mld_opdr_uren, v_mld_opdr_uurloon, v_mld_opdr_materiaal, v_correctie_bedrag, v_mld_opdr_opmerking);
v_count_import := v_count_import + 1;
EXCEPTION
WHEN OTHERS
THEN
oracle_err_num := SQLCODE;
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
v_errormsg :=
v_errorhint
|| ' ORACLE (error '
|| oracle_err_num
|| '/'
|| oracle_err_mes
|| ')';
fac.imp_writelog
(p_import_key,
'E',
v_aanduiding || v_errormsg,
'Ingelezen regel kan niet worden weggeschreven!'
);
COMMIT;
END;
END IF;
END IF;
END;
END LOOP;
IF (header_is_valid = 0)
THEN
fac.imp_writelog (p_import_key,
'E',
'Ongeldig importbestand',
'Geen header of header niet volgens specificatie!'
);
ELSIF (v_ongeldig = 1)
THEN
fac.imp_writelog (p_import_key,
'E',
'Ongeldige regel(s)',
'Regel '||v_aanduiding||' is ongeldig! (Mogelijk zijn er nog meer ongeldige regels.)'
);
ELSE
fac.imp_writelog (p_import_key,
'S',
'OPDRACHT KOSTEN: aantal ingelezen regels: '
|| TO_CHAR (v_count_tot),
''
);
END IF;
COMMIT;
EXCEPTION
WHEN OTHERS
THEN
oracle_err_num := SQLCODE;
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
v_errormsg :=
'OTHERS (error ' || oracle_err_num || '/' || oracle_err_mes || ')';
fac.imp_writelog (p_import_key,
'E',
v_aanduiding || v_errormsg,
v_errorhint
);
COMMIT;
END nour_import_opdrkosten;
/
CREATE OR REPLACE PROCEDURE nour_update_opdrkosten (
p_import_key IN NUMBER
)
IS
v_aanduiding VARCHAR2 (200);
v_errorhint VARCHAR2 (1000);
v_errormsg VARCHAR2 (1000);
oracle_err_num NUMBER;
oracle_err_mes VARCHAR2 (200);
v_count_tot NUMBER (10);
v_count_error NUMBER (10);
v_count NUMBER (10);
-- Alle kostenplaatsen in het importbestand
CURSOR c
IS
SELECT mld_opdr_nr,
ROUND(COALESCE(fac.safe_to_number(REPLACE(mld_opdr_uren, ',','.')),0),2) mld_opdr_uren,
ROUND(COALESCE(fac.safe_to_number(REPLACE(mld_opdr_uurloon, ',','.')),0),2) mld_opdr_uurloon,
ROUND(COALESCE(fac.safe_to_number(REPLACE(mld_opdr_materiaal,',','.')),0),2) mld_opdr_materiaal,
ROUND(COALESCE(fac.safe_to_number(REPLACE(correctie_bedrag, ',','.')),0),2) correctie_bedrag,
mld_opdr_opmerking
FROM nour_imp_opdrkosten
ORDER BY mld_opdr_nr;
v_mld_opdr_key NUMBER (10);
l_mld_opdr_uurloon MLD_OPDR.mld_opdr_uurloon%TYPE;
FUNCTION try_getopdracht_id (p_broc_nr IN VARCHAR2, p_leverancier_nr IN VARCHAR2)
RETURN NUMBER
AS
c_prefix1 VARCHAR2 (1);
-- Ter bepaling van de positie van de slash in bron-nr
c_index NUMBER;
c_slash_index NUMBER;
-- Opdrachtnr voor de slash
c_broc_s1 VARCHAR2 (20);
-- Opdrachtnr na de slash
c_broc_s2 VARCHAR2 (20);
p_broc_key NUMBER(10);
BEGIN
p_broc_key := NULL;
c_index := 1;
c_prefix1 := SUBSTR (p_broc_nr, c_index, 1);
IF ( ( (ASCII (c_prefix1) >= 65 AND ASCII (c_prefix1) <= 90)
OR (ASCII (c_prefix1) >= 97 AND ASCII(c_prefix1) <= 122))
AND ASCII (c_prefix1) != 67
AND ASCII (c_prefix1) != 99)
THEN
-- Eerste karakter is een letter
-- Heeft opdrachtnr nog meer aan prefix?
c_index := 2;
c_prefix1 := SUBSTR (p_broc_nr, c_index, 1);
IF ( (ASCII (c_prefix1) >= 65 AND ASCII (c_prefix1) <= 90)
OR (ASCII (c_prefix1) >= 97 AND ASCII(c_prefix1) <= 122))
THEN
-- Eerste 2 karakter zijn letters
-- Heeft opdrachtnr nog meer aan prefix?
c_index := 3;
c_prefix1 := SUBSTR (p_broc_nr, c_index, 1);
IF ( (ASCII (c_prefix1) >= 65 AND ASCII (c_prefix1) <= 90)
OR (ASCII (c_prefix1) >= 97 AND ASCII(c_prefix1) <= 122))
THEN
-- Opdracht heeft prefix van 3 letters.
c_index := 4;
END IF;
END IF;
END IF;
c_slash_index := INSTR (p_broc_nr, '/');
IF c_slash_index = 0
THEN
c_broc_s1 := SUBSTR (p_broc_nr, c_index);
c_broc_s2 := '';
ELSE
c_broc_s1 := SUBSTR (p_broc_nr, c_index, c_slash_index - c_index);
c_broc_s2 := SUBSTR (p_broc_nr, c_slash_index + 1);
END IF;
BEGIN
SELECT o.mld_opdr_key
INTO p_broc_key
FROM mld_opdr o
WHERE o.mld_melding_key = fac.safe_to_number (c_broc_s1)
AND mld_opdr_bedrijfopdr_volgnr = fac.safe_to_number (c_broc_s2);
EXCEPTION
WHEN OTHERS
THEN
p_broc_key := NULL;
END;
RETURN p_broc_key;
END;
BEGIN
v_count_tot := 0;
v_count_error := 0;
v_aanduiding := '';
FOR rec IN c
LOOP
BEGIN
v_count_tot := v_count_tot + 1;
v_aanduiding := 'Opdrachtnr ' || rec.mld_opdr_nr || '(' || rec.mld_opdr_uren || ',' || rec.mld_opdr_uurloon || ',' || rec.mld_opdr_materiaal || ',' || rec.correctie_bedrag || '): ';
v_mld_opdr_key := try_getopdracht_id(rec.mld_opdr_nr, NULL);
IF (v_mld_opdr_key IS NULL)
THEN
v_count_error := v_count_error + 1;
v_errormsg := 'Opdrachtnummer onbekend / is niet gevonden';
v_errorhint := 'Fout bij bepalen opdrachtnummer';
fac.imp_writelog (p_import_key,
'E',
v_aanduiding || v_errormsg,
v_errorhint
);
COMMIT;
ELSE
-- Opdrachtnummer is gevonden, mld_opdr record is gevonden.
-- Stap 1) Uren x tarief
-- Als uurtarief bij opdracht niet is ingevuld, of als die wel is ingevuld en gelijk is aan uurtarief uit import regel, dan de uren aanvullen/optellen (en uurtarief invullen)
IF (rec.mld_opdr_uurloon != 0 AND rec.mld_opdr_uurloon !=0)
THEN
v_errorhint := 'Fout bij bepalen/zetten uurloon';
-- We gaan eerst ff het uurtarief ophalen, misschien is ie wel gelijk aan het importrecord?
SELECT mld_opdr_uurloon
INTO l_mld_opdr_uurloon
FROM mld_opdr
WHERE mld_opdr_key = v_mld_opdr_key;
IF (l_mld_opdr_uurloon IS NULL OR l_mld_opdr_uurloon = rec.mld_opdr_uurloon)
THEN
-- Inderdaad is tarief gelijk aan import-record, of er was nog geen tarief ingevuld, dan ook goed...
UPDATE mld_opdr
SET mld_opdr_uren = COALESCE(mld_opdr_uren, 0) + rec.mld_opdr_uren,
mld_opdr_uurloon = rec.mld_opdr_uurloon,
mld_opdr_kosten = mld_opdr_kosten + ROUND(rec.mld_opdr_uurloon * rec.mld_opdr_uren, 2)
WHERE mld_opdr_key = v_mld_opdr_key;
ELSE
UPDATE mld_opdr
SET mld_opdr_kosten = mld_opdr_kosten + ROUND(rec.mld_opdr_uurloon * rec.mld_opdr_uren, 2)
WHERE mld_opdr_key = v_mld_opdr_key;
END IF;
END IF;
-- Stap 2) Materiaal kosten
IF (rec.mld_opdr_materiaal != 0)
THEN
v_errorhint := 'Fout bij zetten materiaalkosten';
UPDATE mld_opdr
SET mld_opdr_materiaal = COALESCE(mld_opdr_materiaal,0) + rec.mld_opdr_materiaal,
mld_opdr_kosten = mld_opdr_kosten + rec.mld_opdr_materiaal
WHERE mld_opdr_key = v_mld_opdr_key;
END IF;
-- Stap 3) Correctie bedrag
IF (rec.correctie_bedrag != 0)
THEN
v_errorhint := 'Fout bij zetten correctiebedrag';
UPDATE mld_opdr
SET mld_opdr_kosten = mld_opdr_kosten + rec.correctie_bedrag
WHERE mld_opdr_key = v_mld_opdr_key;
END IF;
-- Stap 4) Aanvullen van opmerking
IF (rec.mld_opdr_opmerking IS NOT NULL)
THEN
v_errorhint := 'Fout bij zetten opmerking';
UPDATE mld_opdr
SET mld_opdr_opmerking = SUBSTR(mld_opdr_opmerking || CHR(10) || rec.mld_opdr_opmerking,1,4000)
WHERE mld_opdr_key = v_mld_opdr_key;
END IF;
-- Informatieve logging
SELECT TO_CHAR(mld_opdr_kosten, '99G9999D99MI')
INTO v_errorhint
FROM mld_opdr
WHERE mld_opdr_key = v_mld_opdr_key;
fac.imp_writelog (p_import_key,
'I',
'Bijgewerkt: '||v_aanduiding,
'Totaalbedrag: '||v_errorhint
);
END IF;
EXCEPTION
WHEN OTHERS
THEN
v_count_error := v_count_error + 1;
oracle_err_num := SQLCODE;
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
v_errormsg :=
'OTHERS (error '
|| oracle_err_num
|| '/'
|| oracle_err_mes
|| ')';
fac.imp_writelog (p_import_key,
'E',
v_aanduiding || v_errormsg,
v_errorhint
);
COMMIT;
END;
END LOOP;
fac.imp_writelog(p_import_key,
'S',
'OPDRACHT KOSTEN: verwerkte regels zonder foutmelding: '
|| TO_CHAR (v_count_tot - v_count_error),
''
);
fac.imp_writelog(p_import_key,
'S',
'OPDRACHT KOSTEN: verwerkte regels met foutmelding: '
|| TO_CHAR (v_count_error),
''
);
COMMIT;
END nour_update_opdrkosten;
/
--- INSPECTIERESULTATEN -------------------------------------------------------------
-- AKZA#31258: Import inspectieresultaten
CREATE OR REPLACE PROCEDURE nour_import_inspectieobj (
p_import_key IN NUMBER
)
IS
c_delim VARCHAR2 (1) := ';';
v_newline VARCHAR2 (1000); -- Input line
v_errormsg VARCHAR2 (1000);
oracle_err_num NUMBER;
oracle_err_mes VARCHAR2 (200);
header_is_valid NUMBER;
v_count_tot NUMBER (10);
v_count_import NUMBER (10);
v_ongeldig NUMBER (1);
v_aanduiding VARCHAR (200);
-- De importvelden:
v_alg_locatie_code VARCHAR2 (255); -- C10
v_ins_deel_omschrijving VARCHAR2 (255); -- C60
v_ins_srtcontrole_omschrijving VARCHAR2 (255); -- C60
v_ins_controle_datum VARCHAR2 (255); -- DATE
v_ins_controle_opm VARCHAR2 (1024); -- C500
v_afgekeurd VARCHAR2 (255); -- C60
v_bestand VARCHAR2 (255); -- C200
-- Overig:
v_ins_controle_datum_d DATE; -- DATE
CURSOR c1
IS
SELECT *
FROM fac_imp_file
WHERE fac_import_key = p_import_key
ORDER BY fac_imp_file_index;
BEGIN
DELETE FROM nour_imp_inspectieobj;
COMMIT;
v_count_tot := 0;
v_count_import := 0;
header_is_valid := 0;
FOR rec1 IN c1
LOOP
BEGIN
v_newline := rec1.fac_imp_file_line;
v_errormsg := 'Fout bij opvragen importregel';
v_aanduiding := '';
v_ongeldig := 0;
-- Lees alle veldwaarden
fac.imp_getfield (v_newline, c_delim, v_alg_locatie_code);
fac.imp_getfield (v_newline, c_delim, v_ins_deel_omschrijving);
fac.imp_getfield (v_newline, c_delim, v_ins_srtcontrole_omschrijving);
fac.imp_getfield (v_newline, c_delim, v_ins_controle_datum);
fac.imp_getfield (v_newline, c_delim, v_ins_controle_opm);
fac.imp_getfield (v_newline, c_delim, v_afgekeurd);
fac.imp_getfield (v_newline, c_delim, v_bestand);
v_aanduiding := '[' || v_ins_deel_omschrijving || ' (' || v_alg_locatie_code || ')] ';
-- 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_alg_locatie_code) = 'LOCATIECODE'
AND UPPER (v_ins_deel_omschrijving) = 'OBJECT_ID'
AND UPPER (v_ins_srtcontrole_omschrijving) = 'SOORTCONTROLE'
AND UPPER (v_ins_controle_datum) = 'CONTROLEDATUM'
AND UPPER (v_ins_controle_opm) = 'CONTROLEOPMERKING'
AND UPPER (v_afgekeurd) = 'AFGEKEURD'
THEN
header_is_valid := 1;
END IF;
ELSE
v_count_tot := v_count_tot + 1;
-- Controleer alle veldwaarden
v_errormsg := 'Locatiecode ongeldig';
v_alg_locatie_code := TRIM (v_alg_locatie_code);
IF LENGTH (v_alg_locatie_code) > 10
THEN
v_alg_locatie_code := SUBSTR (v_alg_locatie_code, 1, 10);
fac.imp_writelog (
p_import_key,
'W',
v_aanduiding || v_errormsg,
'Locatiecode wordt afgebroken tot ['
|| v_alg_locatie_code
|| ']'
);
END IF;
--
v_errormsg := 'Objectomschrijving ongeldig';
v_ins_deel_omschrijving := TRIM (v_ins_deel_omschrijving);
IF LENGTH (v_ins_deel_omschrijving) > 60
THEN
v_ins_deel_omschrijving :=
SUBSTR (TRIM (v_ins_deel_omschrijving), 1, 60);
fac.imp_writelog (
p_import_key,
'W',
v_aanduiding || v_errormsg,
'Objectomschrijving wordt afgebroken tot ['
|| v_ins_deel_omschrijving
|| ']'
);
END IF;
--
v_errormsg := 'Soortcontrole ongeldig';
v_ins_srtcontrole_omschrijving := TRIM (v_ins_srtcontrole_omschrijving);
IF LENGTH (v_ins_srtcontrole_omschrijving) > 60
THEN
v_ins_srtcontrole_omschrijving := SUBSTR (v_ins_srtcontrole_omschrijving, 1, 60);
fac.imp_writelog (
p_import_key,
'W',
v_aanduiding || v_errormsg,
'Soortcontrole wordt afgebroken tot [' || v_ins_srtcontrole_omschrijving || ']'
);
END IF;
--
v_errormsg := 'Controledatum ongeldig';
v_ins_controle_datum := TRIM (v_ins_controle_datum);
v_ins_controle_datum_d := NULL;
IF (v_ins_controle_datum IS NOT NULL)
THEN
IF (fac.safe_to_date (v_ins_controle_datum, 'dd-mm-yyyy') IS NULL)
THEN
fac.imp_writelog (p_import_key,
'W',
v_aanduiding || v_errormsg,
'Controledatum wordt genegeerd');
ELSE
v_ins_controle_datum_d :=
fac.safe_to_date (v_ins_controle_datum, 'dd-mm-yyyy');
END IF;
END IF;
--
v_errormsg := 'Controleopmerking ongeldig';
v_ins_controle_opm := TRIM (v_ins_controle_opm);
IF LENGTH (v_ins_controle_opm) > 500
THEN
v_ins_controle_opm := SUBSTR (v_ins_controle_opm, 1, 500);
fac.imp_writelog (
p_import_key,
'W',
v_aanduiding || v_errormsg,
'Controleopmerking wordt afgekapt op 500 posities'
);
END IF;
--
v_errormsg := 'Afgekeurd ongeldig';
v_afgekeurd := TRIM (v_afgekeurd);
IF LENGTH (v_afgekeurd) > 60
THEN
v_afgekeurd := SUBSTR (v_afgekeurd, 1, 60);
fac.imp_writelog (
p_import_key,
'W',
v_aanduiding || v_errormsg,
'Afgekeurd wordt afgebroken tot [' || v_afgekeurd || ']'
);
END IF;
--
v_errormsg := 'Bestandsnaam ongeldig';
v_bestand := TRIM (v_bestand);
IF (v_bestand IS NOT NULL AND LENGTH (v_bestand) > 200 )
THEN
v_bestand := SUBSTR (v_bestand, 1, 200);
fac.imp_writelog (
p_import_key,
'W',
v_aanduiding || v_errormsg,
'Bestandsnaam wordt afgekapt op 200 posities'
);
END IF;
-- Insert geformatteerde import record
IF v_ongeldig = 0
THEN
BEGIN
v_errormsg := 'Fout bij wegschrijven importregel';
INSERT INTO nour_imp_inspectieobj (
alg_locatie_code,
ins_deel_omschrijving,
ins_srtcontrole_omschrijving,
ins_deelsrtcontrole_datum,
ins_deelsrtcontrole_opmerking,
afgekeurd,
bestand
)
VALUES (v_alg_locatie_code,
v_ins_deel_omschrijving,
v_ins_srtcontrole_omschrijving,
v_ins_controle_datum_d,
v_ins_controle_opm,
v_afgekeurd,
v_bestand);
COMMIT;
v_count_import := v_count_import + 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,
'');
COMMIT;
END;
END IF;
END IF;
END;
END LOOP;
IF (header_is_valid = 0)
THEN
fac.imp_writelog (p_import_key,
'E',
'Ongeldig importbestand',
'Geen header of header niet volgens specificatie!');
ELSE
fac.imp_writelog (
p_import_key,
'S',
'Inspectieobjecten/aantal ingelezen importregels: '
|| TO_CHAR (v_count_tot),
''
);
fac.imp_writelog (
p_import_key,
'S',
'Inspectieobjecten/aantal ongeldige niet ingelezen importregels: '
|| TO_CHAR (v_count_tot - v_count_import),
''
);
END IF;
COMMIT;
EXCEPTION
WHEN OTHERS
THEN
oracle_err_num := SQLCODE;
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
v_errormsg :=
v_errormsg
|| ' ORACLE (error '
|| oracle_err_num
|| '/'
|| oracle_err_mes
|| ')';
fac.imp_writelog (p_import_key,
'E',
v_aanduiding || v_errormsg,
'Inleesproces inspectieobjecten afgebroken!');
END nour_import_inspectieobj;
/
-- Leest voor objecten (locatie+object-id) het resultaat van specifieke taken in,
-- uitgevoerd op bepaalde datums. Met ruimte voor een opmerking en een link naar een
-- bestandsnaam. Voor de bestandsnaam wordt het bestandsnaam-kenmerk met de laagste key
-- bij de betreffende taak (controle) gezocht en gebruikt.
CREATE OR REPLACE PROCEDURE nour_update_inspectieobj (
p_import_key IN NUMBER
)
AS
v_errormsg VARCHAR2 (1000);
oracle_err_num NUMBER;
oracle_err_mes VARCHAR2 (200);
v_count NUMBER (10);
v_count_tot NUMBER (10);
v_count_cupdate NUMBER (10);
v_aanduiding VARCHAR (200);
CURSOR c1
IS
SELECT i.alg_locatie_code,
i.ins_deel_omschrijving,
sc.ins_srtcontrole_key,
sc.ins_srtcontrole_omschrijving,
i.ins_deelsrtcontrole_datum,
i.ins_deelsrtcontrole_opmerking,
i.bestand bestandsnaam,
i.afgekeurd,
ad.ins_deel_key,
ad.ins_srtdeel_key,
g.ins_srtgroep_key,
ad.ins_discipline_key,
al.alg_locatie_key
FROM nour_imp_inspectieobj i,
ins_srtcontrole sc,
ins_v_aanwezigdeel ad,
ins_srtdeel sd,
ins_srtgroep g,
alg_v_aanweziglocatie al
WHERE ad.ins_deel_omschrijving(+) = i.ins_deel_omschrijving
AND UPPER(sc.ins_srtcontrole_omschrijving(+)) = UPPER(i.ins_srtcontrole_omschrijving)
AND sd.ins_srtdeel_key(+) = ad.ins_srtdeel_key
AND g.ins_srtgroep_key(+) = sd.ins_srtgroep_key
AND al.alg_locatie_key(+) = ad.ins_alg_locatie_key;
v_deel_key NUMBER (10);
v_kenmerk_key NUMBER (10);
v_kenmerkdeel_key NUMBER (10);
v_srtcontrole_id VARCHAR2 (20);
v_controlemode_succes_key NUMBER (10);
v_controlemode_afkeur_key NUMBER (10);
v_deelsrtcontrole_key NUMBER(10);
BEGIN
v_count := 0;
v_count_tot := 0;
v_count_cupdate := 0;
v_aanduiding := '';
FOR rec IN c1
LOOP
BEGIN
v_count_tot := v_count_tot + 1;
v_aanduiding := '['||rec.ins_deel_omschrijving
||'|'||rec.alg_locatie_code
||'|'||rec.ins_srtcontrole_omschrijving
||'|'||rec.ins_deelsrtcontrole_datum
|| '] ';
-- We kunnen alleen iets met objecten die we kennen!
IF (rec.ins_deel_key IS NULL OR rec.alg_locatie_key IS NULL)
THEN
fac.imp_writelog(p_import_key, 'E',
'Objectcode onbekend (binnen locatie); regel wordt overgeslagen',
v_aanduiding);
CONTINUE;
END IF;
-- Zonder datum doen we niks
IF (rec.ins_deelsrtcontrole_datum IS NULL)
THEN
fac.imp_writelog(p_import_key, 'E',
'Geen datum ingevuld; regel wordt overgeslagen',
v_aanduiding);
CONTINUE;
END IF;
-- Kennen we de srtcontrole uberhaupt?
IF (rec.ins_srtcontrole_key IS NULL)
THEN
fac.imp_writelog(p_import_key, 'E',
'Soort taak onbekend; regel wordt overgeslagen',
v_aanduiding);
CONTINUE;
END IF;
-- En hoort die srtcontrole ook bij deze objectsoort/-groep/discipline?
v_errormsg := 'srtcontrole bij objectsoort';
SELECT COUNT(*)
INTO v_count
FROM ins_srtcontrole sc
WHERE sc.ins_srtcontrole_key = rec.ins_srtcontrole_key
AND sc.ins_srtinstallatie_key =
DECODE( sc.ins_srtcontrole_niveau,
'S', rec.ins_srtdeel_key,
'G', rec.ins_srtgroep_key,
'D', rec.ins_discipline_key);
-- Nee --> overslaan
IF (v_count = 0)
THEN
fac.imp_writelog(p_import_key, 'E',
'Soort taak hoort niet bij object; regel wordt overgeslagen',
v_aanduiding);
CONTINUE;
END IF;
-- TODO: kan een srtcontrole meerdere malen aan een object gekoppeld zijn? Dan dat nog specifieker bepalen?
IF (rec.ins_deelsrtcontrole_datum IS NULL)
THEN
fac.imp_writelog(p_import_key, 'E',
'Geen datum opgegeven; regel wordt overgeslagen',
v_aanduiding);
CONTINUE;
END IF;
v_errormsg := 'Fout bij bepalen controlemethode succes';
SELECT MIN(cm.ins_controlemode_key)
INTO v_controlemode_succes_key
FROM ins_controlemode cm,
ctr_disc_params dp,
ins_srtcontrole sc
WHERE cm.ins_controlemode_success = 1
AND cm.ins_srtcontrole_type = dp.ctr_disc_params_controle_type
AND dp.ctr_ins_discipline_key = sc.ctr_discipline_key
AND sc.ins_srtcontrole_key = rec.ins_srtcontrole_key;
v_errormsg := 'Fout bij bepalen controlemethode afgekeurd';
SELECT MIN(cm.ins_controlemode_key)
INTO v_controlemode_afkeur_key
FROM ins_controlemode cm,
ctr_disc_params dp,
ins_srtcontrole sc
WHERE cm.ins_controlemode_success IS NULL
AND cm.ins_srtcontrole_type = dp.ctr_disc_params_controle_type
AND dp.ctr_ins_discipline_key = sc.ctr_discipline_key
AND sc.ins_srtcontrole_key = rec.ins_srtcontrole_key;
-- TODO: ins_deelsrtcontrole_datum_org is de datum waarop de taak eigenlijk gedaan had
-- moeten worden. Die staat bij taken met standaardperiode 0 in ins_srtcontroledl_xcp en
-- zal doorgaans afwijken van de datum in het importbestand.
v_errormsg := 'Fout bij toevoegen controle';
INSERT INTO ins_deelsrtcontrole (
ins_deel_key,
ins_srtcontrole_key,
ins_deelsrtcontrole_datum,
ins_deelsrtcontrole_datum_org,
ins_controlemode_key,
ins_deelsrtcontrole_opmerking)
VALUES (
rec.ins_deel_key,
rec.ins_srtcontrole_key,
rec.ins_deelsrtcontrole_datum,
rec.ins_deelsrtcontrole_datum,
DECODE(rec.afgekeurd,
NULL, v_controlemode_succes_key,
v_controlemode_afkeur_key),
rec.ins_deelsrtcontrole_opmerking)
RETURNING ins_deelsrtcontrole_key INTO v_deelsrtcontrole_key;
IF (rec.bestandsnaam IS NOT NULL)
THEN
v_errormsg := 'Fout bij bepalen bestandskenmerk';
SELECT MIN(ins_kenmerk_key)
INTO v_kenmerk_key
FROM ins_kenmerk k,
ins_srtkenmerk sk,
ins_srtcontrole rec
WHERE k.ins_kenmerk_niveau = 'C'
AND k.ins_srtinstallatie_key = rec.ins_srtcontrole_key
AND k.ins_kenmerk_verwijder IS NULL
AND sk.ins_srtkenmerk_key = k.ins_srtkenmerk_key
AND sk.ins_srtkenmerk_kenmerktype = 'X';
v_errormsg := 'Bestandsnaam vastleggen';
INSERT INTO ins_kmdeelsrtcontr (
ins_deelsrtcontrole_key,
ins_kenmerk_key,
ins_kmdeelsrtcontr_waarde)
VALUES (
v_deelsrtcontrole_key,
v_kenmerk_key,
REPLACE(
CASE
WHEN UPPER(rec.bestandsnaam) LIKE 'R:\TD-EXTERN\ITA-3\REPORTS\RTC%'
THEN '/RTC'||SUBSTR(rec.bestandsnaam, 31)
WHEN UPPER(rec.bestandsnaam) LIKE 'R:/TD-EXTERN/ITA-3/REPORTS/RTC%'
THEN '/RTC'||SUBSTR(rec.bestandsnaam, 31)
ELSE
rec.bestandsnaam
END,
'\',
'/')
);
END IF;
v_count_cupdate := v_count_cupdate + 1;
EXCEPTION
WHEN OTHERS
THEN
oracle_err_num := SQLCODE;
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
v_errormsg := v_errormsg || ' ORACLE (error ' || oracle_err_num
|| '/' || oracle_err_mes || ')';
fac.imp_writelog (p_import_key,
'E',
v_errormsg,
v_aanduiding);
END;
END LOOP;
fac.imp_writelog (p_import_key, 'S',
'Aantal ingelezen taken: ' || TO_CHAR (v_count_tot),
'');
fac.imp_writelog (p_import_key, 'S',
'Aantal verwerkte taken: ' || TO_CHAR (v_count_cupdate),
'');
COMMIT;
END nour_update_inspectieobj;
/
--- view om de locatie van nieuwe apparatuur aan te kunnen geven
CREATE OR REPLACE VIEW NOUR_V_RUIMTES_DEVENTER
(
RUIMTE_KEY,
RUIMTE,
VERVALDATUM
)
AS
SELECT ALG_RUIMTE_KEY,
ALG_GEBOUW_UPPER
|| '/'
|| ALG_VERDIEPING_CODE
|| '/'
|| ALG_RUIMTE_UPPER_NR
|| '-'
|| ALG_RUIMTE_OMSCHRIJVING
AS RUIMTE,
ALG_RUIMTE_VERWIJDER
FROM ALG_V_RUIMTE_GEGEVENS_ALL R
WHERE ALG_LOCATIE_KEY = 121;
--- Overzicht met alle werkvergunningen
CREATE OR REPLACE VIEW NOUR_V_WERKVERGUNNINGEN
(
HIDE_F_MELDING_KEY,
HTML_AANVRAAG_NR,
MELDING,
ONDERWERP,
STATUS,
DATUM,
AANVRAGER,
AFDELING,
AFDELING_OMSCHR,
HTML_BESTAND,
AANVRAAG_AFGEROND,
FCLT_3D_LOCATIE_KEY
)
AS
SELECT (1 - s.mld_melding_key) AS sort_desc,
'<a class="details" onclick=''FcltMgr.openDetail("'
|| 'appl/mld/mld_melding.asp?urole=fe&'
|| 'mld_key='
|| s.mld_melding_key
|| '")''>'
|| HTF.escape_sc (s.mld_melding_key)
|| '</a>',
t.mld_stdmelding_omschrijving,
s.mld_melding_onderwerp,
--- s.mld_melding_status,
u.mld_statuses_omschrijving,
s.mld_melding_datum,
p.prs_perslid_naam_full,
a.prs_afdeling_naam,
a.prs_afdeling_omschrijving,
( '<a target ="_blank" href="'
|| bestand.mld_kenmerkmelding_waarde
|| '">'
|| HTF.escape_sc ('PTW-' || s.mld_melding_key)
|| '</a>'),
--- bestand.mld_kenmerkmelding_waarde,
CASE
WHEN ptw_volledig.mld_kenmerkmelding_waarde IS NOT NULL
THEN
'Ja'
WHEN ptw_volledig.mld_kenmerkmelding_waarde IS NULL
THEN
'Nee'
END
AS Ptw_Volledig,
s.mld_alg_locatie_key
FROM mld_melding s,
mld_stdmelding t,
prs_v_perslid_fullnames_all p,
prs_perslid pl,
prs_afdeling a,
mld_statuses u,
(SELECT k.mld_melding_key, k.mld_kenmerkmelding_waarde
FROM mld_kenmerkmelding k, mld_kenmerk n
WHERE n.mld_kenmerk_key = k.mld_kenmerk_key
AND n.mld_srtkenmerk_key = 961) bestand,
(SELECT k.mld_melding_key, k.mld_kenmerkmelding_waarde
FROM mld_kenmerkmelding k, mld_kenmerk n
WHERE n.mld_kenmerk_key = k.mld_kenmerk_key
AND n.mld_srtkenmerk_key = 962) ptw_volledig
WHERE p.prs_perslid_key = s.prs_perslid_key_voor
AND s.mld_stdmelding_key = t.mld_stdmelding_key
AND s.mld_melding_key = bestand.mld_melding_key
AND s.mld_melding_key = ptw_volledig.mld_melding_key(+)
AND s.mld_melding_status = u.mld_statuses_key
AND p.prs_perslid_key=pl.prs_perslid_key
AND pl.prs_afdeling_key=a.prs_afdeling_key
AND s.mld_melding_status NOT IN (1, 5, 6, 99);
--- Rapportage tbv ombouwwerkzaamheden Eurest
CREATE OR REPLACE VIEW NOUR_V_WERKZAAMH_EUREST
(
LOCATIECODE,
LOCATIE,
RUIMTE,
DATUM,
VAN,
TOT,
VERW_DAT,
RESNR,
AANT_PERS,
AANT_WERK,
NO_SHOW,
WIJZIGINGEN,
AANT_VOORZ,
LEV_VOORZ,
VOORZIENING,
GASTHEER,
AANVRAGER,
TEL_AANVRAGER,
KOSTENPLAATS,
ORDERNNR,
OMSCHRIJVING,
OPMERKING,
G_VORPAS,
VOORZ_AANMAAK,
VOORZ_VERW,
VOORZ_MUT,
WIJZ_LAST_MINUTE,
DEL_LAST_MINUTE
)
AS
SELECT rg.alg_locatie_code,
rg.alg_locatie_omschrijving,
r.res_ruimte_nr,
TRUNC (
COALESCE (rr.res_rsv_ruimte_van, ra.res_rsv_artikel_levering))
datum,
TO_CHAR (rr.res_rsv_ruimte_van, 'HH24:MI') van,
TO_CHAR (rr.res_rsv_ruimte_tot, 'HH24:MI') tot,
TRUNC (rr.res_rsv_ruimte_verwijder),
res.res_reservering_key || '/' || rr.res_rsv_ruimte_volgnr resnr,
rr.res_rsv_ruimte_bezoekers aant_pers,
'' aant_werk,
'' no_show,
'' wijzigingen,
ra.res_rsv_artikel_aantal,
TO_CHAR (ra.res_rsv_artikel_levering, 'HH24:MI') levering,
a.res_artikel_omschrijving,
h.prs_perslid_naam_full HOST,
g.prs_perslid_naam_full aanvr,
gt.prs_perslid_telefoonnr telnr_aanvr,
k.prs_kostenplaats_nr,
rr.res_rsv_ruimte_ordernr,
rr.res_rsv_ruimte_omschrijving,
rr.res_rsv_ruimte_opmerking,
g_vorpas.res_kenmerkreservering_waarde g_vorpas,
ra.res_rsv_artikel_aanmaak,
ra.res_rsv_artikel_verwijder,
ra.res_rsv_artikel_mutatie,
CASE
WHEN ( (TRUNC (SYSDATE) = TRUNC (ra.res_rsv_artikel_aanmaak))
OR (TRUNC (SYSDATE) = TRUNC (ra.res_rsv_artikel_mutatie)))
THEN
'Ja'
ELSE
'Nee'
END
LM_MUT,
CASE
WHEN TRUNC (SYSDATE) = TRUNC (ra.res_rsv_artikel_verwijder)
THEN
'Ja'
ELSE
'Nee'
END
LM_DEL
FROM res_rsv_ruimte rr,
res_reservering res,
res_rsv_artikel ra,
res_artikel a,
res_ruimte_opstelling ro,
res_ruimte r,
res_alg_ruimte ar,
alg_v_ruimte_gegevens_all rg,
prs_v_perslid_fullnames_all h,
prs_v_perslid_fullnames_all g,
prs_perslid gt,
prs_kostenplaats k,
(SELECT kw.res_kenmerkreservering_waarde, kw.res_rsv_ruimte_key
FROM res_kenmerk k, res_kenmerkwaarde kw
WHERE kw.res_kenmerk_key = k.res_kenmerk_key
AND k.res_srtkenmerk_key = 181) g_vorpas
WHERE ra.res_rsv_ruimte_key = rr.res_rsv_ruimte_key
AND rr.res_reservering_key = res.res_reservering_key
AND r.res_ruimte_key=ar.res_ruimte_key
AND ar.alg_ruimte_key=rg.alg_ruimte_key
AND a.res_artikel_key = ra.res_artikel_key
AND rr.res_ruimte_opstel_key = ro.res_ruimte_opstel_key
AND ro.res_ruimte_key = r.res_ruimte_key
AND rr.res_rsv_ruimte_host_key = h.prs_perslid_key
AND rr.res_rsv_ruimte_contact_key = g.prs_perslid_key
AND g.prs_perslid_key = gt.prs_perslid_key
AND rr.prs_kostenplaats_key = k.prs_kostenplaats_key
AND rr.res_rsv_ruimte_key = g_vorpas.res_rsv_ruimte_key(+)
AND (rr.res_rsv_ruimte_verwijder IS NULL
OR TRUNC (SYSDATE) = TRUNC (rr.res_rsv_ruimte_verwijder));
-- Notificatie naar areagedelegeerde AKZA#41201
-- Voor alle nieuwe meldingen waarbij het vinkje werkvergunning aanstaat (km441) en een waarbij een werkvergunning is aangemaakt (km961)
-- En waarbij aangegeven is dat de areagedelegeerde geinformeerd moet worden (km1021), AKZA#57881 direct of op een later moment
-- hierbij de areagedelegeerde ophalen die bij de ruimte is vastgelegd (km 1160)
CREATE OR REPLACE VIEW NOUR_V_NOTI_PTW_AREAGD
(
SENDER,
RECEIVER,
TEXT,
CODE,
FAC_SRTNOTIFICATIE_KEY,
KEY,
XKEY,
XEMAIL,
XMOBILE,
XSENDER
)
AS
SELECT DISTINCT
NULL,
p.prs_perslid_key,
REPLACE (n.fac_srtnotificatie_oms, '##mldnr##', m.mld_melding_key),
fac_srtnotificatie_code,
n.fac_srtnotificatie_key,
m.mld_melding_key,
NULL
xkey,
p.prs_perslid_email
xemail,
NULL
xmobile,
'no_reply@nour.facilitor.nl'
FROM fac_tracking t,
fac_srtnotificatie n,
mld_melding m,
alg_v_allonrgoed_gegevens r,
alg_onrgoedkenmerk ad,
prs_perslid p,
(SELECT km.mld_melding_key
FROM mld_kenmerkmelding km, mld_kenmerk k
WHERE k.mld_kenmerk_key = km.mld_kenmerk_key
AND k.mld_srtkenmerk_key = 441) ptw_nodig,
(SELECT km.mld_melding_key, km.mld_kenmerkmelding_waarde
FROM mld_kenmerkmelding km, mld_kenmerk k
WHERE k.mld_kenmerk_key = km.mld_kenmerk_key
AND k.mld_srtkenmerk_key = 961) ptw,
(SELECT km.mld_melding_key, km.mld_kenmerkmelding_waarde
FROM mld_kenmerkmelding km, mld_kenmerk k
WHERE k.mld_kenmerk_key = km.mld_kenmerk_key
AND k.mld_srtkenmerk_key = 1021) areaged
WHERE T.FAC_TRACKING_REFKEY = M.MLD_MELDING_KEY
AND T.FAC_SRTNOTIFICATIE_KEY = 21 --- nieuwe melding
AND N.FAC_SRTNOTIFICATIE_CODE = 'CUST06'
AND m.mld_melding_key = ptw_nodig.mld_melding_key
AND m.mld_melding_key = ptw.mld_melding_key
AND m.mld_melding_key = areaged.mld_melding_key
AND m.mld_alg_onroerendgoed_keys = r.alg_onroerendgoed_keys
AND r.alg_ruimte_key = ad.alg_onrgoed_key
AND ad.alg_kenmerk_key = 1160
AND ad.alg_onrgoedkenmerk_waarde = p.prs_perslid_key
AND t.fac_tracking_datum >
(SELECT fac_notificatie_job_nextrun
- fac_notificatie_job_interval / 24
FROM fac_notificatie_job
WHERE UPPER (fac_notificatie_job_view) =
'NOUR_V_NOTI_PTW_AREAGD')
AND t.fac_tracking_datum <
(SELECT fac_notificatie_job_nextrun
FROM fac_notificatie_job
WHERE UPPER (fac_notificatie_job_view) =
'NOUR_V_NOTI_PTW_AREAGD')
UNION ALL
SELECT DISTINCT
NULL,
p.prs_perslid_key,
REPLACE (n.fac_srtnotificatie_oms, '##mldnr##', m.mld_melding_key),
fac_srtnotificatie_code,
n.fac_srtnotificatie_key,
m.mld_melding_key,
NULL
xkey,
p.prs_perslid_email
xemail,
NULL
xmobile,
'no_reply@nour.facilitor.nl'
FROM fac_tracking t,
fac_srtnotificatie n,
mld_melding m,
alg_v_allonrgoed_gegevens r,
alg_onrgoedkenmerk ad,
prs_perslid p,
(SELECT km.mld_melding_key
FROM mld_kenmerkmelding km, mld_kenmerk k
WHERE k.mld_kenmerk_key = km.mld_kenmerk_key
AND k.mld_srtkenmerk_key = 441) ptw_nodig,
(SELECT km.mld_melding_key, km.mld_kenmerkmelding_waarde
FROM mld_kenmerkmelding km, mld_kenmerk k
WHERE k.mld_kenmerk_key = km.mld_kenmerk_key
AND k.mld_srtkenmerk_key = 961) ptw,
(SELECT km.mld_melding_key, km.mld_kenmerkmelding_waarde
FROM mld_kenmerkmelding km, mld_kenmerk k
WHERE k.mld_kenmerk_key = km.mld_kenmerk_key
AND k.mld_srtkenmerk_key = 1021) areaged
WHERE t.fac_tracking_refkey = m.mld_melding_key
AND t.fac_tracking_oms LIKE
'%Areagedelegeerde informeren?: (leeg) --> 1%' --- of als in een later stadium nog het kenmerk gevuld wordt
AND n.fac_srtnotificatie_code = 'CUST06'
AND m.mld_melding_key = ptw_nodig.mld_melding_key
AND m.mld_melding_key = ptw.mld_melding_key
AND m.mld_melding_key = areaged.mld_melding_key
AND m.mld_alg_onroerendgoed_keys = r.alg_onroerendgoed_keys
AND r.alg_ruimte_key = ad.alg_onrgoed_key
AND ad.alg_kenmerk_key = 1160
AND ad.alg_onrgoedkenmerk_waarde = p.prs_perslid_key
AND t.fac_tracking_datum >
(SELECT fac_notificatie_job_nextrun
- fac_notificatie_job_interval / 24
FROM fac_notificatie_job
WHERE UPPER (fac_notificatie_job_view) =
'NOUR_V_NOTI_PTW_AREAGD')
AND t.fac_tracking_datum <
(SELECT fac_notificatie_job_nextrun
FROM fac_notificatie_job
WHERE UPPER (fac_notificatie_job_view) =
'NOUR_V_NOTI_PTW_AREAGD');
--- NOUR_HUUR_VERHUURB_RUIMTE_PERSL
CREATE OR REPLACE VIEW NOUR_HUUR_VERH_RUIMTE_PERSL
(
FCLT_F_COMPANYCODE,
HIDE_F_COMPANYNAAM,
FCLT_F_KOSTENPLAATS,
AFDELING,
PERSLID_NAAM,
PERSLID_KOSTENPLAATS,
FCLT_X_LOCATIE,
FCLT_F_GEBOUW,
VERDIEPING,
RUIMTENR,
RUIMTESOORT,
FCLT_3D_GEBOUW_KEY,
FCLT_3D_AFDELING_KEY,
BVO
)
AS
SELECT e.prs_afdeling_naam companycode,
e.prs_afdeling_omschrijving companynaam,
kp.prs_kostenplaats_nr,
a.prs_afdeling_omschrijving,
perslid_wp.prs_perslid_naam_full,
perslid_wp.prs_kostenplaats_nr,
rg.alg_locatie_omschrijving || ' (' || rg.alg_locatie_code || ')',
rg.alg_gebouw_omschrijving,
rg.alg_verdieping_code,
rg.alg_ruimte_nr,
sr.alg_srtruimte_omschrijving,
rg.alg_gebouw_key,
a.prs_afdeling_key,
ROUND (
SUM(COALESCE (
rg.alg_ruimte_bruto_vloeropp
* ra.prs_ruimteafdeling_bezetting
/ 100,
0)),
1)
bvo
FROM prs_v_aanwezigafdeling a,
prs_v_aanwezigafdeling e,
prs_v_aanwezigruimteafdeling ra,
alg_v_ruimte_gegevens rg,
alg_srtruimte sr,
nour_v_kostenplaats kp,
(SELECT wp.prs_alg_ruimte_key,
wp.prs_werkplek_key,
pwp.prs_perslidwerkplek_bezetting,
pl.prs_perslid_naam_full,
a.prs_afdeling_omschrijving,
kpl.prs_kostenplaats_nr
FROM prs_werkplek wp,
prs_perslidwerkplek pwp,
prs_v_perslid_fullnames_all pl,
prs_perslid p,
prs_v_aanwezigafdeling a,
prs_v_aanwezigafdeling e,
prs_kostenplaats kpl
WHERE pwp.prs_werkplek_key = wp.prs_werkplek_key
AND pl.prs_perslid_key = pwp.prs_perslid_key
AND a.prs_afdeling_parentkey = e.prs_afdeling_key(+)
AND e.prs_afdeling_parentkey IS NULL
AND pl.prs_perslid_key = p.prs_perslid_key
AND a.prs_afdeling_key = p.prs_afdeling_key
AND kpl.prs_kostenplaats_key = a.prs_kostenplaats_key)
perslid_wp
WHERE a.prs_afdeling_parentkey = e.prs_afdeling_key(+)
AND e.prs_afdeling_parentkey IS NULL
AND kp.prs_kostenplaats_key(+) = a.prs_kostenplaats_key
AND ra.prs_afdeling_key = a.prs_afdeling_key(+)
AND rg.alg_ruimte_key = ra.alg_ruimte_key(+)
AND sr.alg_srtruimte_key = rg.alg_srtruimte_key
AND perslid_wp.prs_alg_ruimte_key(+) = rg.alg_ruimte_key
GROUP BY e.prs_afdeling_naam,
e.prs_afdeling_omschrijving,
kp.prs_kostenplaats_nr,
a.prs_afdeling_omschrijving,
rg.alg_locatie_code,
rg.alg_locatie_omschrijving,
rg.alg_gebouw_omschrijving,
rg.alg_gebouw_key,
rg.alg_verdieping_volgnr,
rg.alg_verdieping_code,
rg.alg_ruimte_nr,
sr.alg_srtruimte_omschrijving,
a.prs_afdeling_key,
perslid_wp.prs_perslid_naam_full,
perslid_wp.prs_afdeling_omschrijving,
perslid_wp.prs_kostenplaats_nr;
CREATE OR REPLACE VIEW NOUR_V_RAP_CTR_LOD
(
INS_DEEL_KEY,
ALG_PLAATSAANDUIDING,
INS_DEEL_OMSCHRIJVING,
INS_DEEL_OPMERKING,
FAC_USRDATA_OMSCHR,
LAATSTE_INSPECTIEDATUM,
RESULT_LAATSTE_INSPECTIE,
INS_DEELSRTCONTROLE_DATUM,
PERSLID,
DEELSRTCONTROLE_STATUS
)
AS
SELECT cl.ins_deel_key,
cl.alg_plaatsaanduiding,
cl.ins_deel_omschrijving,
cl.ins_deel_opmerking,
cl.fac_usrdata_omschr,
TRUNC(last_insp.ins_deelsrtcontrole_datum) laatste_insp,
insp_result.ins_controlemode_oms result_laatste_insp,
TRUNC(cl.ins_deelsrtcontrole_datum),
cl.perslid,
cl.deelsrtcontrole_status
FROM (SELECT lod.ins_deel_key,
og.alg_plaatsaanduiding,
ins_deel_omschrijving,
ins_deel_opmerking,
fac_usrdata_omschr,
dc.ins_deelsrtcontrole_datum,
(SELECT icm.ins_controlemode_oms
FROM ins_controlemode icm
WHERE icm.ins_controlemode_key = dc.ins_controlemode_key)
controlemode_omschrijving,
(SELECT prs_perslid_naam_full
FROM prs_v_perslid_fullnames_all pf
WHERE pf.prs_perslid_key = dc.prs_perslid_key)
perslid,
(SELECT lcl.x ('fc2l.fac_code2label_label',
fc2l.fac_code2label_key,
fc2l.fac_code2label_label)
FROM fac_code2label fc2l
WHERE fc2l.fac_code2label_domein = 'controle'
AND fc2l.fac_code2label_code =
dc.ins_deelsrtcontrole_status)
deelsrtcontrole_status
FROM ins_deel lod,
ins_deelsrtcontrole dc,
alg_v_allonrgoed_gegevens og,
(SELECT fac_usrdata_code,
fac_usrdata_omschr,
km.ins_deel_key
FROM ins_kenmerkdeel km, fac_usrdata ud
WHERE km.ins_kenmerk_key = 7025
AND km.ins_kenmerkdeel_waarde = ud.fac_usrdata_key
AND fac_usrtab_key = 526) criticaliteit
WHERE ins_srtdeel_key IN (7765, 7685)
AND ins_deel_verwijder IS NULL
AND criticaliteit.ins_deel_key = dc.ins_deel_key
AND ins_deel_actief = 1
AND dc.ins_deel_key = lod.ins_deel_key
-- AND fac_usrdata_code IN ('A', 'B') NOUR#72498 Naast de criticaliteit A en B wil men nu ook criticaliteit C, D en N.v.t. toegevoegd hebben
AND lod.ins_alg_ruimte_key = og.alg_ruimte_key
AND dc.ins_deelsrtcontrole_status = 6 -- alle voltooide taken
AND ins_deelsrtcontrole_datum >= ADD_MONTHS (SYSDATE, -1)
AND ins_deelsrtcontrole_datum <= SYSDATE
-- 9457 P2, 9458 P3A, 14260 B, 9459 P4, 9460 P5A, 14269 P5C, 9456 P12
AND ( ( og.alg_gebouw_key IN (9457,
9458,
14260,
9459,
9460)
AND og.alg_verdieping_code IN ('0', '1'))
OR ( og.alg_gebouw_key = 14269
AND og.alg_ruimte_key = 14277)
OR ( og.alg_gebouw_key = 9456
AND og.alg_ruimte_key = 13895)
OR og.alg_gebouw_key = 9539 )
UNION ALL
SELECT d.ins_deel_key,
d.alg_plaatsaanduiding,
d.ins_deel_omschrijving,
d.ins_deel_opmerking,
fac_usrdata_omschr,
fac.nextcyclusdatedeel (d.ins_deel_key,
d.ins_srtcontrole_key,
1),
''
AS ctrmode,
prs_perslid_naam_full,
''
AS status
FROM (SELECT sc.ins_srtcontrole_key,
d.ins_deel_key,
d.ins_deel_omschrijving,
d.ins_deel_opmerking,
sc.ins_srtcontrole_periode,
sd.ins_srtdeel_omschrijving,
pfa.prs_perslid_key,
pfa.prs_perslid_naam_full,
criticaliteit.fac_usrdata_omschr,
og.alg_plaatsaanduiding
FROM ins_srtcontrole sc,
ins_discipline di,
ins_v_aanwezigsrtgroep sg,
ins_v_aanwezigsrtdeel sd,
ins_v_aanwezigdeel d,
alg_v_allonrgoed_gegevens og,
prs_perslid p,
prs_v_perslid_fullnames_all pfa,
(SELECT fac_usrdata_code,
fac_usrdata_omschr,
km.ins_deel_key
FROM ins_kenmerkdeel km, fac_usrdata ud
WHERE km.ins_kenmerk_key = 7025
AND km.ins_kenmerkdeel_waarde =
ud.fac_usrdata_key
AND fac_usrtab_key = 526) criticaliteit
WHERE sd.ins_srtdeel_key = d.ins_srtdeel_key
AND sg.ins_srtgroep_key = sd.ins_srtgroep_key
AND di.ins_discipline_key = sg.ins_discipline_key
AND COALESCE (d.ins_deel_vervaldatum, SYSDATE + 1) >=
SYSDATE
AND p.prs_perslid_key = d.prs_perslid_key_beh
AND d.ins_alg_ruimte_key = og.alg_ruimte_key
AND ( ( og.alg_gebouw_key IN (9457,
9458,
14260,
9459,
9460)
AND og.alg_verdieping_code IN ('0', '1'))
OR ( og.alg_gebouw_key = 14269
AND og.alg_ruimte_key = 14277)
OR ( og.alg_gebouw_key = 9456
AND og.alg_ruimte_key = 13895)
OR og.alg_gebouw_key = 9539 )
AND pfa.prs_perslid_key = d.prs_perslid_key_beh
AND criticaliteit.ins_deel_key = d.ins_deel_key
-- AND criticaliteit.fac_usrdata_code IN ('A', 'B') NOUR#72498 Naast de criticaliteit A en B wil men nu ook criticaliteit C, D en N.v.t. toegevoegd hebben
AND d.ins_srtdeel_key IN (7765, 7685)) d
LEFT OUTER JOIN ins_srtcontroledl_xcp xcp
ON xcp.ins_deel_key = d.ins_deel_key
AND xcp.ins_srtcontrole_key = d.ins_srtcontrole_key
WHERE COALESCE (xcp.ins_srtcontroledl_xcp_periode,
d.ins_srtcontrole_periode) >
0
AND fac.nextcyclusdatedeel (d.ins_deel_key,
d.ins_srtcontrole_key,
1) <=
ADD_MONTHS (SYSDATE, 1)
--- AND fac.nextcyclusdatedeel (d.ins_deel_key,d.ins_srtcontrole_key, 1) >= SYSDATE
AND d.ins_deel_key NOT IN --- als een inspectie al is ingepland weegt dat zwaarder dan de oorspronkelijke datum, object komt op de lijst als plandatum komende maand is
(SELECT ins_deel_key
FROM ins_v_udr_deelinspect ins, ins_deel lod
WHERE ins_deelsrtcontrole_plandatum
IS NOT NULL
AND ins_deelsrtcontrole_datum IS NULL
AND lod.ins_deel_key = ins.deel_key
AND lod.ins_srtdeel_key IN (7765, 7685)
AND lod.ins_deel_verwijder IS NULL)
UNION ALL
SELECT lod.ins_deel_key,
og.alg_plaatsaanduiding,
lod.ins_deel_omschrijving,
lod.ins_deel_opmerking,
fac_usrdata_omschr,
ins_deelsrtcontrole_plandatum,
'' ctrmode,
perslid,
deelsrtcontrole_status
FROM ins_v_udr_deelinspect ins,
ins_deel lod,
alg_v_allonrgoed_gegevens og,
(SELECT fac_usrdata_code,
fac_usrdata_omschr,
km.ins_deel_key
FROM ins_kenmerkdeel km, fac_usrdata ud
WHERE km.ins_kenmerk_key = 7025
AND km.ins_kenmerkdeel_waarde = ud.fac_usrdata_key
AND fac_usrtab_key = 526) criticaliteit
WHERE ins_deelsrtcontrole_plandatum IS NOT NULL
AND ins_deelsrtcontrole_datum IS NULL
AND lod.ins_alg_ruimte_key = og.alg_ruimte_key
AND criticaliteit.ins_deel_key = lod.ins_deel_key
-- AND fac_usrdata_code IN ('A', 'B') NOUR#72498 Naast de criticaliteit A en B wil men nu ook criticaliteit C, D en N.v.t. toegevoegd hebben
AND lod.ins_deel_key = ins.deel_key
AND lod.ins_srtdeel_key IN (7765, 7685) --- LOD's
AND lod.ins_deel_verwijder IS NULL
AND actief = 'ja'
AND ( ( og.alg_gebouw_key IN (9457,
9458,
14260,
9459,
9460)
AND og.alg_verdieping_code IN ('0', '1'))
OR ( og.alg_gebouw_key = 14269
AND og.alg_ruimte_key = 14277)
OR ( og.alg_gebouw_key = 9456
AND og.alg_ruimte_key = 13895)
OR og.alg_gebouw_key = 9539 )
AND ins_deelsrtcontrole_plandatum <=
ADD_MONTHS (SYSDATE, 1)-- AND ins_deelsrtcontrole_plandatum >= SYSDATE
) cl,
( SELECT MAX (sc.ins_deelsrtcontrole_datum)
ins_deelsrtcontrole_datum,
sc.ins_deel_key,
MAX (sc.ins_deelsrtcontrole_key)
ins_deelsrtcontrole_key
FROM ins_deelsrtcontrole sc
WHERE sc.ins_deelsrtcontrole_status = 6
GROUP BY sc.ins_deel_key) last_insp,
(SELECT sc.ins_deelsrtcontrole_key, cm.ins_controlemode_oms
FROM ins_deelsrtcontrole sc, ins_controlemode cm
WHERE sc.ins_controlemode_key = cm.ins_controlemode_key)
insp_result
WHERE cl.ins_deel_key = last_insp.ins_deel_key(+)
AND last_insp.ins_deelsrtcontrole_key =
insp_result.ins_deelsrtcontrole_key;
CREATE OR REPLACE VIEW NOUR_V_RUIMTES
(
ruimte_key,
ruimte_omschrijving,
ruimte_verwijder
)
AS
SELECT alg_ruimte_key,
alg_ruimte_aanduiding || ' - ' || alg_ruimte_omschrijving,
alg_ruimte_verwijder
FROM alg_v_ruimte_gegevens_all
WHERE alg_locatie_code IN ('SSCA', 'AMB')
AND (alg_srtruimte_key IN (1021, 962, 963, 1029, 464, 1041, 1028)
OR alg_srtruimte_key IS NULL);
CREATE OR REPLACE VIEW NOUR_V_RAP_TRAINING
(
TRAINING,
MEDEWERKER,
AFDELING,
VERANTW_COORDINATOR,
OMSCHR_TRAINING,
REULTAAT,
TOELICHTING_RESULTAAT,
DATUM_CERTIFICERING,
GEPL_DATUM_CERTIFICERING,
STATUS_CERTIFICERING
)
AS
(SELECT ins_srtdeel_upper training,
alg_plaatsaanduiding medewerker,
prs_afdeling_omschrijving afdeling,
beheerder verantw_coordinator,
srtcontrole_omschrijving omschr_training,
controlemode_omschrijving reultaat,
ins_deelsrtcontrole_opmerking toelichting_resultaat,
ins_deelsrtcontrole_datum datum_certificering,
ins_deelsrtcontrole_plandatum gepl_datum_certificering,
deelsrtcontrole_status status_certificering
FROM ins_v_deel_gegevens o, ins_v_udr_deelinspect c
WHERE ins_srtgroep_upper = 'TRAINING EN OPLEIDING'
AND o.ins_deel_key = c.deel_key(+));
-- Tbv van de aanvraag van (tijdelijke) badges is het nodig om een onderscheid te kunnen maken tussen medewerkers intern (incl. Teijin) en contractors
CREATE OR REPLACE VIEW NOUR_V_CONTRACTORS
(
PRS_PERSLID_KEY,
NAAM,
PRS_PERSLID_VERWIJDER
)
AS
SELECT p.prs_perslid_key,
p.prs_perslid_string || ' / ' || fac_usrdata_code,
p.prs_perslid_verwijder
FROM NOUR_V_PERSLID p, PRS_KENMERKLINK kl, FAC_USRDATA ud
WHERE prs_link_key = prs_perslid_key
AND prs_kenmerk_key = 1544
AND fac_usrtab_key = 529
AND prs_kenmerklink_waarde = fac_usrdata_key
AND ud.fac_usrdata_verwijder is null
AND (fac_usrdata_vervaldatum > sysdate or fac_usrdata_vervaldatum is null);
CREATE OR REPLACE VIEW NOUR_V_PERSLID_INTERN
(
prs_perslid_key,
naam,
prs_perslid_verwijder
)
AS
SELECT p.prs_perslid_key,
p.prs_perslid_string || ' / ' || fac_usrdata_code,
p.prs_perslid_verwijder
FROM NOUR_V_PERSLID p, PRS_KENMERKLINK kl, FAC_USRDATA ud
WHERE prs_link_key = prs_perslid_key
AND prs_kenmerk_key = 1520
AND fac_usrtab_key = 527
AND prs_kenmerklink_waarde = fac_usrdata_key
AND ud.fac_usrdata_verwijder is null
AND (fac_usrdata_vervaldatum > sysdate or fac_usrdata_vervaldatum is null);
CREATE OR REPLACE VIEW NOUR_V_AANVR_TBADGE
(
PRS_PERSLID_KEY,
NAAM,
PRS_PERSLID_VERWIJDER
)
AS
(SELECT "PRS_PERSLID_KEY", "NAAM", "PRS_PERSLID_VERWIJDER"
FROM NOUR_V_PERSLID_INTERN
UNION ALL
SELECT "PRS_PERSLID_KEY", "NAAM", "PRS_PERSLID_VERWIJDER"
FROM NOUR_V_CONTRACTORS);
CREATE OR REPLACE VIEW NOUR_V_RAP_TBADGES
(
LOCATIE,
BADGEHOUDER_KEY,
BADGEHOUDER,
INT_EXT,
COMPANY,
PROJECT,
WERKZAAM_VOOR,
BADGE_NR,
SOORT_BADGE,
BLOKKADE_DATUM,
AANVRAGER,
AANVRAGER_KEY,
MELDING_KEY,
HTML_MELDINGNR,
MELDING,
STATUS_MELDING,
AANVRAAGDATUM,
AANVRAAG_GEREED,
GEVRAAGDE_EINDDAT
)
AS
SELECT DISTINCT
DECODE (SUBSTR (mdw.badge_nr, 1, 2),
'30', 'Amsterdam',
'13', 'Arnhem',
'Locatie onbekend')
locatie,
mdw.badgehouder_prskey,
mdw.badgehouder,
mdw.int_ext,
mdw.comp,
mdw.project,
mdw.werkzaam_voor,
mdw.badge_nr,
soort_badge,
mdw.blokkade_datum,
badges.aanvrager,
badges.aanvrager_key,
badges.mld_melding_key,
'<a class="details" onclick=''FcltMgr.openDetail("'
|| 'appl/mld/mld_melding.asp?mld_key='
|| badges.mld_melding_key
|| '")''>'
|| HTF.escape_sc (badges.mld_melding_key)
|| '</a>',
badges.mld_stdmelding_omschrijving,
badges.mld_statuses_omschrijving,
badges.mld_melding_datum,
badges.mld_melding_einddatum,
badges.nieuwe_einddatum
FROM (SELECT prs.prs_perslid_key
badgehouder_prskey,
prs.prs_perslid_naam_full
badgehouder,
int_ext.int_ext,
COALESCE (company_contr.company, company_intern.company)
comp,
COALESCE (proj.project, proj_cntr.project)
project,
werkz.werkzaam_voor,
badge.soort_badge,
badge_nr.badge_nr,
FAC.SAFE_TO_DATE (blokkade_datum.blokkade_datum,
'dd-mm-yyyy')
blokkade_datum
FROM prs_v_perslid_fullnames_all prs,
(SELECT prs_link_key, ud.fac_usrdata_omschr int_ext
FROM prs_kenmerklink kl, fac_usrdata ud, fac_usrtab ut
WHERE kl.prs_kenmerklink_niveau = 'P'
AND kl.prs_kenmerklink_waarde = ud.fac_usrdata_key
AND ud.fac_usrtab_key = ut.fac_usrtab_key
AND ut.fac_usrtab_key = 471
AND kl.prs_kenmerk_key = 1560) int_ext,
(SELECT prs_link_key, ud.fac_usrdata_omschr soort_badge
FROM prs_kenmerklink kl, fac_usrdata ud, fac_usrtab ut
WHERE kl.prs_kenmerklink_niveau = 'P'
AND kl.prs_kenmerklink_waarde = ud.fac_usrdata_key
AND ud.fac_usrtab_key = ut.fac_usrtab_key
AND ut.fac_usrtab_key = 61
AND kl.prs_kenmerk_key = 1001) badge,
(SELECT prs_link_key, prs_kenmerklink_waarde badge_nr
FROM prs_kenmerklink kl
WHERE kl.prs_kenmerklink_niveau = 'P'
AND kl.prs_kenmerk_key = 1000) badge_nr,
(SELECT prs_link_key,
prs_kenmerklink_waarde blokkade_datum
FROM prs_kenmerklink kl
WHERE kl.prs_kenmerklink_niveau = 'P'
AND kl.prs_kenmerk_key = 1360) blokkade_datum,
(SELECT prs_link_key, prs_kenmerklink_waarde company
FROM prs_kenmerklink kl
WHERE kl.prs_kenmerklink_niveau = 'P'
AND kl.prs_kenmerk_key = 1543) company_contr,
(SELECT prs_link_key, ud.fac_usrdata_code company
FROM prs_kenmerklink kl, fac_usrdata ud
WHERE kl.prs_kenmerklink_niveau = 'P'
AND kl.prs_kenmerk_key = 1520
AND ud.fac_usrtab_key = 527
AND ud.fac_usrdata_key = prs_kenmerklink_waarde)
company_intern,
(SELECT prs_link_key, prs_kenmerklink_waarde project
FROM prs_kenmerklink kl
WHERE kl.prs_kenmerklink_niveau = 'P'
AND kl.prs_kenmerk_key = 1562) proj,
(SELECT prs_link_key, prs_kenmerklink_waarde project
FROM prs_kenmerklink kl
WHERE kl.prs_kenmerklink_niveau = 'P'
AND kl.prs_kenmerk_key = 1580) proj_cntr,
(SELECT prs_link_key, ud.fac_usrdata_code werkzaam_voor
FROM prs_kenmerklink kl, fac_usrdata ud
WHERE kl.prs_kenmerklink_niveau = 'P'
AND kl.prs_kenmerk_key = 1544
AND ud.fac_usrtab_key = 529
AND ud.fac_usrdata_key = prs_kenmerklink_waarde)
werkz
WHERE prs.prs_perslid_key = company_intern.prs_link_key(+)
AND prs.prs_perslid_key = company_contr.prs_link_key(+)
AND prs.prs_perslid_key = blokkade_datum.prs_link_key(+)
AND prs.prs_perslid_key = badge.prs_link_key(+)
AND prs.prs_perslid_key = werkz.prs_link_key(+)
AND prs.prs_perslid_key = int_ext.prs_link_key(+)
AND prs.prs_perslid_key = badge_nr.prs_link_key(+)
AND prs.prs_perslid_key = proj.prs_link_key(+)
AND prs.prs_perslid_key = proj_cntr.prs_link_key(+)
AND prs.PRS_PERSLID_VERWIJDER IS NULL) mdw,
( SELECT DISTINCT melding_voor,
mld_melding_key,
mld_stdmelding_omschrijving,
mld_statuses_omschrijving,
mld_melding_datum,
mld_melding_einddatum,
aanvrager,
aanvrager_key,
nieuwe_einddatum
FROM ( SELECT melding_voor,
MAX (mld_melding_key) max_mld_melding_key
FROM ((SELECT m.mld_melding_key,
COALESCE (
contractor.contractor_perslid_key,
mdw_intern.int_mdw_perslid_key) melding_voor
FROM mld_melding m,
(SELECT mld_melding_key
contractor_melding_key,
mld_kenmerkmelding_waarde
contractor_perslid_key
FROM mld_kenmerkmelding km
WHERE km.mld_kenmerk_key = 1566 -- contractor
AND km.mld_kenmerkmelding_verwijder
IS NULL) contractor,
(SELECT mld_melding_key
int_mdw_melding_key,
mld_kenmerkmelding_waarde
int_mdw_perslid_key
FROM mld_kenmerkmelding km
WHERE km.mld_kenmerk_key = 1564 -- interne medewerker
AND km.mld_kenmerkmelding_verwijder
IS NULL) mdw_intern
WHERE m.mld_stdmelding_key = 1761 -- badges >> aanvraag badge
AND m.mld_melding_key =
contractor_melding_key(+)
AND m.mld_melding_key =
int_mdw_melding_key(+))
UNION ALL
(SELECT m.mld_melding_key,
medewerker.mdw_perslid_key melding_voor
FROM mld_melding m,
(SELECT mld_melding_key
mdw_melding_key,
mld_kenmerkmelding_waarde
mdw_perslid_key
FROM mld_kenmerkmelding km
WHERE km.mld_kenmerk_key = 1581 -- medewerker
AND km.mld_kenmerkmelding_verwijder
IS NULL) medewerker
WHERE m.mld_stdmelding_key = 1765 -- badges >> verlengen badge
AND m.mld_melding_key =
mdw_melding_key(+))
UNION ALL
(SELECT m.mld_melding_key,
COALESCE (medewerker.mdw_perslid_key,
contractor.contr_perslid_key) melding_voor
FROM mld_melding m,
(SELECT mld_melding_key
mdw_melding_key,
mld_kenmerkmelding_waarde
mdw_perslid_key
FROM mld_kenmerkmelding km
WHERE km.mld_kenmerk_key = 1521 -- medewerker
AND km.mld_kenmerkmelding_verwijder
IS NULL) medewerker,
(SELECT mld_melding_key
contr_melding_key,
mld_kenmerkmelding_waarde
contr_perslid_key
FROM mld_kenmerkmelding km
WHERE km.mld_kenmerk_key = 1481 -- contractor
AND km.mld_kenmerkmelding_verwijder
IS NULL) contractor
WHERE m.mld_stdmelding_key = 1003 -- indienst met tijdelijke badge
AND m.mld_melding_key =
mdw_melding_key(+)
AND m.mld_melding_key =
contr_melding_key(+))
UNION ALL
(SELECT m.mld_melding_key,
COALESCE (contractor.contr_perslid_key,
medewerker.mdw_perslid_key) melding_voor
FROM mld_melding m,
(SELECT mld_melding_key
mdw_melding_key,
mld_kenmerkmelding_waarde
mdw_perslid_key
FROM mld_kenmerkmelding km
WHERE km.mld_kenmerk_key = 313 -- medewerker
AND km.mld_kenmerkmelding_verwijder
IS NULL) medewerker,
(SELECT mld_melding_key
contr_melding_key,
mld_kenmerkmelding_waarde
contr_perslid_key
FROM mld_kenmerkmelding km
WHERE km.mld_kenmerk_key = 1441 -- contractor
AND km.mld_kenmerkmelding_verwijder
IS NULL) contractor
WHERE m.mld_stdmelding_key = 981 -- tijdelijke badge - aanvraag tijdelijke badge
AND m.mld_melding_key =
mdw_melding_key(+)
AND m.mld_melding_key =
contr_melding_key(+))
UNION ALL
(SELECT m.mld_melding_key,
COALESCE (contractor.contr_perslid_key,
medewerker.mdw_perslid_key) melding_voor
FROM mld_melding m,
(SELECT mld_melding_key
mdw_melding_key,
mld_kenmerkmelding_waarde
mdw_perslid_key
FROM mld_kenmerkmelding km
WHERE km.mld_kenmerk_key = 313 -- medewerker
AND km.mld_kenmerkmelding_verwijder
IS NULL) medewerker,
(SELECT mld_melding_key
contr_melding_key,
mld_kenmerkmelding_waarde
contr_perslid_key
FROM mld_kenmerkmelding km
WHERE km.mld_kenmerk_key = 1441 -- contractor
AND km.mld_kenmerkmelding_verwijder
IS NULL) contractor
WHERE m.mld_stdmelding_key = 981 -- tijdelijke badge - aanvraag tijdelijke badge
AND m.mld_melding_key =
mdw_melding_key(+)
AND m.mld_melding_key =
contr_melding_key(+))
UNION ALL
(SELECT m.mld_melding_key,
COALESCE (contractor.contr_perslid_key,
medewerker.mdw_perslid_key) melding_voor
FROM mld_melding m,
(SELECT mld_melding_key
mdw_melding_key,
mld_kenmerkmelding_waarde
mdw_perslid_key
FROM mld_kenmerkmelding km
WHERE km.mld_kenmerk_key = 313 -- medewerker
AND km.mld_kenmerkmelding_verwijder
IS NULL) medewerker,
(SELECT mld_melding_key
contr_melding_key,
mld_kenmerkmelding_waarde
contr_perslid_key
FROM mld_kenmerkmelding km
WHERE km.mld_kenmerk_key = 1441 -- contractor
AND km.mld_kenmerkmelding_verwijder
IS NULL) contractor
WHERE m.mld_stdmelding_key = 984 -- tijdelijke badge - verlengen tijdelijke badge
AND m.mld_melding_key =
mdw_melding_key(+)
AND m.mld_melding_key =
contr_melding_key(+))
UNION ALL
(SELECT m.mld_melding_key,
medewerker.mdw_perslid_key melding_voor
FROM mld_melding m,
(SELECT mld_melding_key
mdw_melding_key,
mld_kenmerkmelding_waarde
mdw_perslid_key
FROM mld_kenmerkmelding km
WHERE km.mld_kenmerk_key = 341 -- medewerker
AND km.mld_kenmerkmelding_verwijder
IS NULL) medewerker
WHERE m.mld_stdmelding_key = 1006 -- uit dienst met tijdelijke badge
AND m.mld_melding_key =
mdw_melding_key(+))
UNION ALL
(SELECT m.mld_melding_key,
medewerker.mdw_perslid_key melding_voor
FROM mld_melding m,
(SELECT mld_melding_key
mdw_melding_key,
mld_kenmerkmelding_waarde
mdw_perslid_key
FROM mld_kenmerkmelding km
WHERE km.mld_kenmerk_key = 1621 -- medewerker
AND km.mld_kenmerkmelding_verwijder
IS NULL) medewerker
WHERE m.mld_stdmelding_key = 1764 -- uit dienst met tijdelijke badge
AND m.mld_melding_key =
mdw_melding_key(+))
UNION ALL
(SELECT m.mld_melding_key,
COALESCE (contractor.contr_perslid_key,
medewerker.mdw_perslid_key) melding_voor
FROM mld_melding m,
(SELECT mld_melding_key
mdw_melding_key,
mld_kenmerkmelding_waarde
mdw_perslid_key
FROM mld_kenmerkmelding km
WHERE km.mld_kenmerk_key = 313 -- medewerker
AND km.mld_kenmerkmelding_verwijder
IS NULL) medewerker,
(SELECT mld_melding_key
contr_melding_key,
mld_kenmerkmelding_waarde
contr_perslid_key
FROM mld_kenmerkmelding km
WHERE km.mld_kenmerk_key = 1441 -- contractor
AND km.mld_kenmerkmelding_verwijder
IS NULL) contractor
WHERE m.mld_stdmelding_key = 1021 -- tijdelijke badge - innemen tijdelijke badge
AND m.mld_melding_key =
mdw_melding_key(+)
AND m.mld_melding_key =
contr_melding_key(+)))
laatste_aanvraag
GROUP BY melding_voor
ORDER BY melding_voor) max_aanvraag,
(SELECT sm.MLD_STDMELDING_OMSCHRIJVING,
m.mld_melding_key,
s.mld_statuses_omschrijving,
m.mld_melding_datum,
mld_melding_einddatum,
aanvr.prs_perslid_naam_full aanvrager,
aanvr.prs_perslid_key aanvrager_key,
einddatum.nieuwe_einddat nieuwe_einddatum
FROM mld_melding m,
mld_statuses s,
prs_v_perslid_fullnames_all aanvr,
mld_stdmelding sm,
((SELECT mld_melding_key einddat_melding_key,
mld_kenmerkmelding_waarde nieuwe_einddat
FROM mld_kenmerkmelding km
WHERE km.mld_kenmerk_key = 1561 -- nieuwe einddatum
AND km.mld_kenmerkmelding_verwijder
IS NULL)
UNION ALL
(SELECT mld_melding_key einddat_melding_key,
mld_kenmerkmelding_waarde einddat
FROM mld_kenmerkmelding km
WHERE km.mld_kenmerk_key = 305 -- einddatum
AND km.mld_kenmerkmelding_verwijder
IS NULL)
UNION ALL
(SELECT mld_melding_key einddat_melding_key,
mld_kenmerkmelding_waarde einddat
FROM mld_kenmerkmelding km
WHERE km.mld_kenmerk_key = 304 -- einddatum
AND km.mld_kenmerkmelding_verwijder
IS NULL)
UNION ALL
(SELECT mld_melding_key einddat_melding_key,
mld_kenmerkmelding_waarde einddat
FROM mld_kenmerkmelding km
WHERE km.mld_kenmerk_key = 304 -- einddatum
AND km.mld_kenmerkmelding_verwijder
IS NULL)
UNION ALL
(SELECT mld_melding_key einddat_melding_key,
mld_kenmerkmelding_waarde einddat
FROM mld_kenmerkmelding km
WHERE km.mld_kenmerk_key = 320 -- einddatum
AND km.mld_kenmerkmelding_verwijder
IS NULL)
UNION ALL
(SELECT mld_melding_key einddat_melding_key,
mld_kenmerkmelding_waarde einddat
FROM mld_kenmerkmelding km
WHERE km.mld_kenmerk_key = 361 -- einddatum
AND km.mld_kenmerkmelding_verwijder
IS NULL)
UNION ALL
(SELECT mld_melding_key einddat_melding_key,
mld_kenmerkmelding_waarde einddat
FROM mld_kenmerkmelding km
WHERE km.mld_kenmerk_key = 1562 -- einddatum
AND km.mld_kenmerkmelding_verwijder
IS NULL)
UNION ALL
(SELECT mld_melding_key einddat_melding_key,
mld_kenmerkmelding_waarde einddat
FROM mld_kenmerkmelding km
WHERE km.mld_kenmerk_key = 364 -- einddatum
AND km.mld_kenmerkmelding_verwijder
IS NULL)) einddatum
WHERE m.mld_melding_status = s.mld_statuses_key
AND m.mld_stdmelding_key = sm.mld_stdmelding_key
AND m.MLD_MELDING_KEY =
einddatum.einddat_melding_key(+)
AND m.prs_perslid_key_voor = aanvr.prs_perslid_key)
details
WHERE max_aanvraag.max_mld_melding_key = details.mld_melding_key
ORDER BY max_aanvraag.melding_voor) badges
WHERE badgehouder_prskey = badges.melding_voor(+)
AND UPPER (soort_badge) = 'TIJDELIJKE BADGE'
ORDER BY mdw.badge_nr, mdw.badgehouder_prskey;
CREATE OR REPLACE VIEW NOUR_V_NOTI_CTR_LOD
(
CODE,
SENDER,
RECEIVER,
TEXT,
KEY,
XKEY,
xemail,
xmobile
)
AS
SELECT fac_srtnotificatie_code
CODE,
7520
SENDER, --- 7520 Facilitor
NULL
RECEIVER,
'Informatie cLODs'
text,
(SELECT fac_usrrap_key
FROM fac_usrrap
WHERE UPPER (fac_usrrap_view_name) = 'NOUR_V_RAP_CTR_LOD') ---- refkey: is het rapport
key,
NULL
xkey,
'ANDRE.MIDDELBOS@NOURYON.COM;ASTRID.KRAMER@NOURYON.COM;BERT.EMMING@NOURYON.COM;THEO.VONK@NOURYON.COM'
xemail,
NULL
xmobile
FROM fac_srtnotificatie sn
WHERE sn.fac_srtnotificatie_code = 'CUST07'
AND TO_CHAR (SYSDATE, 'dd') = '01' -- Elke 1e dag van de maand
AND TO_CHAR (SYSDATE, 'mm') IN ('01',
'02',
'03',
'04',
'05',
'06',
'07',
'08',
'09',
'10',
'11',
'12');
CREATE OR REPLACE VIEW NOUR_V_PERSLID_BADGE_INT
(
PRS_PERSLID_KEY,
NAAM,
PRS_PERSLID_VERWIJDER
)
AS
SELECT p.prs_perslid_key,
p.prs_perslid_string || ' / ' || fac_usrdata_code,
p.prs_perslid_verwijder
FROM NOUR_V_PERSLID p, PRS_KENMERKLINK kl, FAC_USRDATA ud
WHERE prs_link_key = prs_perslid_key
AND prs_kenmerk_key = 1560
AND fac_usrtab_key = 471
AND ud.FAC_USRDATA_KEY in (4381, 1747,4382,4377)
AND prs_kenmerklink_waarde = fac_usrdata_key
AND ( fac_usrdata_vervaldatum > SYSDATE
OR fac_usrdata_vervaldatum IS NULL);
CREATE OR REPLACE VIEW NOUR_V_PERSLID_BADGE_EXT
(
PRS_PERSLID_KEY,
NAAM,
PRS_PERSLID_VERWIJDER
)
AS
SELECT p.prs_perslid_key,
p.prs_perslid_string || ' / ' || fac_usrdata_code,
p.prs_perslid_verwijder
FROM NOUR_V_PERSLID p, PRS_KENMERKLINK kl, FAC_USRDATA ud
WHERE prs_link_key = prs_perslid_key
AND prs_kenmerk_key = 1560
AND fac_usrtab_key = 471
AND ud.FAC_USRDATA_KEY = 1746
AND prs_kenmerklink_waarde = fac_usrdata_key
AND ( fac_usrdata_vervaldatum > SYSDATE
OR fac_usrdata_vervaldatum IS NULL);
CREATE OR REPLACE VIEW NOUR_V_RAP_CONTACTPERSONEN
(
HIDE_F_SORT,
FCLT_X_NAAM,
HTML_NAAM,
FCLT_F_BEDRIJF,
FCLT_F_SOORT,
KENTEKEN,
LEGITIMATIE,
DVD_DATUM,
TAALTEST_DATUM,
TAALTEST_RESULTAAT
)
AS
SELECT naam || prs_bedrijf_naam hide_f_sort,
naam fclt_x_naam,
'<a class="details" onclick=''FcltMgr.openDetail("appl/prs/prs_contactpersoon.asp?mode=viewUpdate&'
|| 'key='
|| prs_contactpersoon_key
|| '")''>'
|| HTF.escape_sc (naam)
|| '</a>' html_naam,
prs_bedrijf_naam fclt_f_bedrijf,
soort fclt_f_soort,
kenteken,
legitimatie,
dvd_datum,
taaltest_datum,
taaltest_resultaat
FROM (SELECT prs_contactpersoon_key,
prs_contactpersoon_naam
|| DECODE (
prs_contactpersoon_voorletters
|| prs_contactpersoon_tussenv
|| prs_contactpersoon_voornaam,
NULL, '',
', '
|| DECODE (prs_contactpersoon_voorletters,
NULL, '',
prs_contactpersoon_voorletters)
|| DECODE (prs_contactpersoon_tussenv,
NULL, '',
' ' || prs_contactpersoon_tussenv)
|| DECODE (
prs_contactpersoon_voornaam,
NULL, '',
' (' || prs_contactpersoon_voornaam || ')'))
naam,
b.prs_bedrijf_key
prs_bedrijf_key,
prs_bedrijf_naam,
soort.fac_usrdata_omschr
soort,
kenteken.prs_kenmerklink_waarde
kenteken,
legitimatie.prs_kenmerklink_waarde
legitimatie,
dvd.prs_kenmerklink_waarde
dvd_datum,
taaldatum.prs_kenmerklink_waarde
taaltest_datum,
taalres.fac_usrdata_omschr
taaltest_resultaat
FROM prs_contactpersoon cp,
prs_v_aanwezigbedrijf b,
(SELECT prs_link_key, ud.fac_usrdata_omschr
FROM prs_kenmerk k, prs_kenmerklink kl, fac_usrdata ud
WHERE prs_kenmerk_niveau = 'C'
AND prs_kenmerk_verwijder IS NULL
AND prs_kenmerk_upper = 'SOORT BEZOEKER'
AND prs_kenmerklink_verwijder IS NULL
AND kl.prs_kenmerk_key = k.prs_kenmerk_key
AND ud.fac_usrdata_key =
fac.safe_to_number (prs_kenmerklink_waarde))
soort,
(SELECT prs_link_key, prs_kenmerklink_waarde
FROM prs_kenmerk k, prs_kenmerklink kl
WHERE prs_kenmerk_niveau = 'C'
AND prs_kenmerk_verwijder IS NULL
AND prs_kenmerk_upper = 'KENTEKEN'
AND prs_kenmerklink_verwijder IS NULL
AND kl.prs_kenmerk_key = k.prs_kenmerk_key)
kenteken,
(SELECT prs_link_key, prs_kenmerklink_waarde
FROM prs_kenmerk k, prs_kenmerklink kl
WHERE prs_kenmerk_niveau = 'C'
AND prs_kenmerk_verwijder IS NULL
AND prs_kenmerk_upper = 'LEGITIMATIE NR'
AND prs_kenmerklink_verwijder IS NULL
AND kl.prs_kenmerk_key = k.prs_kenmerk_key)
legitimatie,
(SELECT prs_link_key, prs_kenmerklink_waarde
FROM prs_kenmerk k, prs_kenmerklink kl
WHERE prs_kenmerk_niveau = 'C'
AND prs_kenmerk_verwijder IS NULL
AND prs_kenmerk_upper = 'VEILIGHEIDS-DVD'
AND prs_kenmerklink_verwijder IS NULL
AND kl.prs_kenmerk_key = k.prs_kenmerk_key) dvd,
(SELECT prs_link_key, prs_kenmerklink_waarde
FROM prs_kenmerk k, prs_kenmerklink kl
WHERE prs_kenmerk_niveau = 'C'
AND prs_kenmerk_verwijder IS NULL
AND prs_kenmerk_upper = 'TAALTEST DATUM'
AND prs_kenmerklink_verwijder IS NULL
AND kl.prs_kenmerk_key = k.prs_kenmerk_key)
taaldatum,
(SELECT prs_link_key,
ud.fac_usrdata_omschr,
ud.fac_usrtab_key
FROM prs_kenmerk k, prs_kenmerklink kl, fac_usrdata ud
WHERE prs_kenmerk_niveau = 'C'
AND prs_kenmerk_verwijder IS NULL
AND prs_kenmerk_upper = 'TAALTEST RESULTAAT'
AND prs_kenmerklink_verwijder IS NULL
AND kl.prs_kenmerk_key = k.prs_kenmerk_key
AND ud.fac_usrdata_key =
fac.safe_to_number (prs_kenmerklink_waarde))
taalres
WHERE cp.prs_contactpersoon_verwijder IS NULL
AND b.prs_bedrijf_key = cp.prs_bedrijf_key
AND soort.prs_link_key(+) = cp.prs_contactpersoon_key
AND kenteken.prs_link_key(+) = cp.prs_contactpersoon_key
AND legitimatie.prs_link_key(+) =
cp.prs_contactpersoon_key
AND dvd.prs_link_key(+) = cp.prs_contactpersoon_key
AND taaldatum.prs_link_key(+) = cp.prs_contactpersoon_key
AND taalres.prs_link_key(+) = cp.prs_contactpersoon_key);
CREATE OR REPLACE PROCEDURE nour_import_perslid (p_import_key IN NUMBER)
AS
oracle_err_num NUMBER;
oracle_err_mes VARCHAR2 (200);
v_errormsg VARCHAR2 (400);
v_errorhint VARCHAR2 (400);
v_aantal_in_FCLT NUMBER;
BEGIN
v_errorhint := 'Generieke update';
-- de sequence array staat beschreven in PRS_PAC.SRC bij de prs.import_perslid proc
prs.import_perslid (
p_import_key,
'1;2;3;4;5;6;7;8;9;11;'
|| '10;0;0;0;0;13;14;15;0;17;'
|| '16;18;0;12;0;0;0;0;0;0;'
|| '0;0;0;0;0;0;0;0;0;0;'
|| '0;0;0;0;0;0',
'LOCATIECODE;GEBOUWCODE;BOUWLAAGVOLGNUMMER;RUIMTENUMMER;WERKPLEKVOLGNUMMER;OMSCHRIJVING;AFDELINGSCODE;PERSOONACHTERNAAM;TUSSENVOEGSEL;VOORLETTERS;VOORNAAM;TITEL_AANHEF;TELEFOONNUMMER;MOBIEL;EMAIL;FUNCTIE;PERSONEELSNUMMER;LOGINNAAM%');
COMMIT;
EXCEPTION
WHEN OTHERS
THEN
oracle_err_num := SQLCODE;
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
v_errormsg := 'Error ' || oracle_err_num || '/' || oracle_err_mes;
fac.imp_writelog (p_import_key,
'E',
v_errormsg,
v_errorhint);
END nour_import_perslid;
/
CREATE OR REPLACE PROCEDURE nour_update_perslid (p_import_key IN NUMBER)
IS
-- Alle personen verwijderen die niet meer in import bestand voorkomen.
-- Match bij STAM is personeelnummer, hieronder de query om alle personen te verwijderen die:
-- a) niet meer in het importbestand staan, wel in Facilitor, en
-- b) waarvan de persoon in Facilitor een gevulde personeelsnummer heeft (leeg personeelsnummer van af blijven, dit handmatig ingevoerde persleden)
-- c) waarvan de persoon in Facilitor niet begint met een _ in de loginnaam (ook van af blijven)
CURSOR c_del IS
SELECT p.prs_perslid_key, p.prs_perslid_nr, pf.prs_perslid_naam_full
FROM fac_imp_perslid i,
prs_perslid p,
prs_v_perslid_fullnames_all pf
WHERE UPPER (p.prs_perslid_nr) = UPPER (i.prs_perslid_nr(+))
AND p.prs_perslid_verwijder IS NULL
AND SUBSTR (p.prs_perslid_oslogin, 1, 1) <> '_'
AND p.prs_perslid_nr IS NOT NULL
AND pf.prs_perslid_key = p.prs_perslid_key
AND i.prs_perslid_nr IS NULL
ORDER BY 2;
v_count NUMBER;
BEGIN
-- generic update
-- NR - personeelsnummer
-- EMAIL - emailadres
-- LOGIN - logincode
prs.update_perslid (p_import_key, 'EMAIL', NULL);
-- Verwijder personen die niet meer in de import voorkomen.
FOR rec IN c_del
LOOP
BEGIN
prs.delete_perslid (p_import_key, rec.prs_perslid_key);
END;
END LOOP;
COMMIT;
-- mailadressen corrigeren, omzetten naar Nouryon
UPDATE prs_perslid
SET prs_perslid_email =
REPLACE (UPPER (prs_perslid_email),
'@AKZONOBEL.COM',
'@NOURYON.COM')
WHERE UPPER (prs_perslid_email) LIKE '%@AKZONOBEL.COM'
AND prs_perslid_verwijder IS NULL
AND UPPER (prs_perslid_naam) NOT LIKE '%INACTIEF%';
COMMIT;
END nour_update_perslid;
/
CREATE OR REPLACE VIEW NOUR_V_RAP_FE_VS_KEYDATA_LOC
(
last_login,
naam,
oslogin,
key_user,
xd_user,
werklocatie
)
AS
SELECT lc.last_login,
lc.naam,
lc.oslogin,
lc.key_user,
lc.xd_user,
COALESCE (wp.alg_locatie_omschrijving, 'Werklocatie onbekend') werklocatie
FROM fac_v_lcrap_fe_vs_key_data lc,
(SELECT pw.prs_perslid_key, l.alg_locatie_omschrijving
FROM prs_v_werkplekperslid_gegevens pw, alg_locatie l
WHERE pw.alg_locatie_key = l.alg_locatie_key) wp
WHERE lc.prs_perslid_key = wp.prs_perslid_key(+);
-- Trainingen die al gevolgd hadden moeten worden of die de komende maand gevolgd moeten worden
CREATE OR REPLACE VIEW NOUR_V_RAP_HERCERTIFICERING
(
INS_DEEL_KEY,
INS_DEEL_OMSCHRIJVING,
SRT_TRAINING,
NEXT_TRAINING,
PRS_PERSLID_KEY,
PRS_PERSLID_NAAM_FULL,
STATUS,
INS_DEEL_BEHEERDER
)
AS
SELECT d.ins_deel_key,
d.ins_deel_omschrijving,
d.ins_srtcontrole_omschrijving,
fac.nextcyclusdatedeel (d.ins_deel_key, d.ins_srtcontrole_key, 1),
d.prs_perslid_key,
d.prs_perslid_naam_full,
'Nog in te plannen' AS status,
d.beheerder
FROM (SELECT sc.ins_srtcontrole_key,
d.ins_deel_key,
d.ins_deel_omschrijving,
d.ins_deel_opmerking,
sc.ins_srtcontrole_omschrijving,
sc.ins_srtcontrole_periode,
sd.ins_srtdeel_omschrijving,
pfa.prs_perslid_key,
pfa.prs_perslid_naam_full,
pfab.prs_perslid_naam_full beheerder
FROM ins_srtcontrole sc,
ins_discipline di,
ins_v_aanwezigsrtgroep sg,
ins_v_aanwezigsrtdeel sd,
ins_v_aanwezigdeel d,
prs_perslid p,
prs_v_perslid_fullnames_all pfa,
prs_v_perslid_fullnames_all pfab
WHERE sd.ins_srtdeel_key = d.ins_srtdeel_key
AND sg.ins_srtgroep_key = sd.ins_srtgroep_key
AND sc.ins_srtinstallatie_key = sd.ins_srtdeel_key --- taken op trainingen zijn op srtdeel niveau vastgeleged
AND di.ins_discipline_key = sg.ins_discipline_key
AND d.prs_perslid_key_beh = pfab.prs_perslid_key (+)
AND COALESCE (d.ins_deel_vervaldatum, SYSDATE + 1) >= SYSDATE
AND p.prs_perslid_key = d.ins_alg_ruimte_key -- de trainingen zijn allen persoonsgebonden
AND pfa.prs_perslid_key = d.ins_alg_ruimte_key
AND sg.ins_srtgroep_key = 1) d
LEFT OUTER JOIN ins_srtcontroledl_xcp xcp
ON xcp.ins_deel_key = d.ins_deel_key
AND xcp.ins_srtcontrole_key = d.ins_srtcontrole_key
WHERE COALESCE (xcp.ins_srtcontroledl_xcp_periode,
d.ins_srtcontrole_periode) >
0
AND fac.nextcyclusdatedeel (d.ins_deel_key, d.ins_srtcontrole_key, 1) <=
ADD_MONTHS (SYSDATE, 1)
AND d.ins_deel_key NOT IN --- als een inspectie al is ingepland weegt dat zwaarder dan de oorspronkelijke datum, object komt op de lijst als plandatum komende maand is
(SELECT ins_deel_key
FROM ins_v_udr_deelinspect ins,
ins_deel opl,
ins_srtdeel sd,
ins_srtgroep sg
WHERE ins_deelsrtcontrole_plandatum IS NOT NULL
AND ins_deelsrtcontrole_datum IS NULL
AND opl.ins_deel_key = ins.deel_key
AND opl.ins_srtdeel_key = sd.ins_srtdeel_key
AND sd.ins_srtgroep_key = sg.ins_srtgroep_key
AND opl.ins_alg_ruimte_type = 'P'
AND sg.ins_srtgroep_key = 1
AND opl.ins_deel_verwijder IS NULL)
UNION ALL
SELECT opl.ins_deel_key,
opl.ins_deel_omschrijving,
ins.srtcontrole_omschrijving,
ins_deelsrtcontrole_plandatum,
pfa.prs_perslid_key,
pfa.prs_perslid_naam_full,
deelsrtcontrole_status,
pfab.prs_perslid_naam_full beheerder
FROM ins_v_udr_deelinspect ins,
ins_deel opl,
ins_srtdeel sd,
ins_srtgroep sg,
prs_perslid p,
prs_v_perslid_fullnames_all pfa,
prs_v_perslid_fullnames_all pfab
WHERE ins_deelsrtcontrole_plandatum IS NOT NULL
AND opl.ins_srtdeel_key = sd.ins_srtdeel_key
AND sd.ins_srtgroep_key = sg.ins_srtgroep_key
AND sg.ins_srtgroep_key = 1
AND opl.prs_perslid_key_beh = pfab.prs_perslid_key (+)
AND p.prs_perslid_key = opl.ins_alg_ruimte_key -- de trainingen zijn allen persoonsgebonden
AND pfa.prs_perslid_key = opl.ins_alg_ruimte_key
AND ins_deelsrtcontrole_datum IS NULL
AND opl.ins_alg_ruimte_type = 'P'
AND opl.ins_deel_key = ins.deel_key
AND opl.ins_deel_verwijder IS NULL
AND actief = 'ja'
AND ins_deelsrtcontrole_plandatum <= ADD_MONTHS (SYSDATE, 1);
-- notificatie voor hercertificeren
CREATE OR REPLACE FORCE VIEW NOUR_V_NOTI_TRAINING
(
CODE,
SENDER,
RECEIVER,
TEXT,
KEY,
XKEY
)
AS
SELECT sn.fac_srtnotificatie_code,
'',
cert.prs_perslid_key,
REPLACE (sn.fac_srtnotificatie_oms,
'##naam training##',
cert.ins_deel_omschrijving),
cert.ins_deel_key,
NULL
FROM nour_v_rap_hercertificering cert,
ins_deel sd,
ins_srtdeel srt,
fac_notificatie_job nj,
fac_srtnotificatie sn
WHERE cert.ins_deel_key = sd.ins_deel_key
AND srt.ins_srtdeel_key = sd.ins_srtdeel_key
AND srt.ins_srtgroep_key = 1
AND sn.fac_srtnotificatie_code = 'CUST08'
AND nj.fac_notificatie_job_view = 'NOUR_V_NOTI_TRAINING'
AND TO_CHAR (SYSDATE, 'dd') = '01' -- Elke 1e dag van de maand
AND TO_CHAR (SYSDATE, 'mm') IN ('01',
'02',
'03',
'04',
'05',
'06',
'07',
'08',
'09',
'10',
'11',
'12');
CREATE OR REPLACE VIEW NOUR_V_RAP_MELDING_TASKNR
(
locatie,
vakgroeptype,
vakgroep,
standaardmelding,
meldingnummer,
order_tasknr,
status,
datum,
datum_afgemeld,
onderwerp,
omschrijving,
kostenplaats
)
AS
SELECT l.alg_locatie_omschrijving,
vt.ins_srtdiscipline_omschrijving
vakgroeptype,
vk.ins_discipline_omschrijving
vakgroep,
sm.mld_stdmelding_omschrijving
standaardmelding,
m.mld_melding_key
meldingnr,
m.mld_melding_ordernr
ordernr,
st.mld_statuses_omschrijving
status,
m.mld_melding_datum
datum,
mld.getmeldingstatusdate (m.mld_melding_key, 5)
afgemeld,
m.mld_melding_onderwerp
melding_onderwerp,
m.mld_melding_omschrijving
melding_omschr,
kp.prs_kostenplaats_nr
kostenplaats
FROM mld_melding m,
alg_locatie l,
mld_stdmelding sm,
ins_tab_discipline vk,
ins_srtdiscipline vt,
prs_kostenplaats kp,
mld_statuses st
WHERE m.mld_alg_locatie_key = l.alg_locatie_key
AND sm.mld_stdmelding_key = m.mld_stdmelding_key
AND vk.ins_discipline_key = m.mld_ins_discipline_key
AND vt.ins_srtdiscipline_key = vk.ins_srtdiscipline_key
AND kp.prs_kostenplaats_key = m.prs_kostenplaats_key
AND st.mld_statuses_key = m.mld_melding_status;
CREATE OR REPLACE FORCE VIEW NOUR_V_RAP_OPLEIDINGEN
(
PRS_PERSLID_KEY,
PRS_PERSLID_NAAM,
LOCATIE,
ATEX,
BBS,
BHV,
KBP,
KBT,
BRZO,
VIN,
EHBO,
LSR,
ONTR,
VCA,
VDG,
COMPEX,
HACCP,
NEN3140,
PERSL,
TVM,
PTW,
LOTOTO,
MGW,
LIFT,
HS_LS,
PBM,
VWH
)
AS
SELECT p.prs_perslid_key,
p.prs_perslid_naam_full,
wp.alg_locatie_omschrijving,
DECODE (atex.ins_deel_upper, NULL, 'Nee', 'Ja') ATEX,
DECODE (bbs.ins_deel_upper, NULL, 'Nee', 'Ja') BBS,
DECODE (bhv.ins_deel_upper, NULL, 'Nee', 'Ja') BHV,
DECODE (kbp.ins_deel_upper, NULL, 'Nee', 'Ja') KBP,
DECODE (kbt.ins_deel_upper, NULL, 'Nee', 'Ja') KBT,
DECODE (brzo.ins_deel_upper, NULL, 'Nee', 'Ja') BRZO,
DECODE (vin.ins_deel_upper, NULL, 'Nee', 'Ja') VIN,
DECODE (ehbo.ins_deel_upper, NULL, 'Nee', 'Ja') EHBO,
DECODE (lsr.ins_deel_upper, NULL, 'Nee', 'Ja') LSR,
DECODE (ontr.ins_deel_upper, NULL, 'Nee', 'Ja') ONTR,
DECODE (vca.ins_deel_upper, NULL, 'Nee', 'Ja') VCA,
DECODE (vdg.ins_deel_upper, NULL, 'Nee', 'Ja') VDG,
DECODE (compex.ins_deel_upper, NULL, 'Nee', 'Ja') COMPEX,
DECODE (haccp.ins_deel_upper, NULL, 'Nee', 'Ja') HACCP,
DECODE (nen3140.ins_deel_upper, NULL, 'Nee', 'Ja') NEN3140,
DECODE (persl.ins_deel_upper, NULL, 'Nee', 'Ja') PERSL,
DECODE (tvm.ins_deel_upper, NULL, 'Nee', 'Ja') TVM,
DECODE (ptw.ins_deel_upper, NULL, 'Nee', 'Ja') PTW,
DECODE (lototo.ins_deel_upper, NULL, 'Nee', 'Ja') LOTOTO,
DECODE (mgw.ins_deel_upper, NULL, 'Nee', 'Ja') MGW,
DECODE (lift.ins_deel_upper, NULL, 'Nee', 'Ja') LIFT,
DECODE (hs_ls.ins_deel_upper, NULL, 'Nee', 'Ja') HS_LS,
DECODE (pbm.ins_deel_upper, NULL, 'Nee', 'Ja') PBM,
DECODE (vwh.ins_deel_upper, NULL, 'Nee', 'Ja') VWH
FROM prs_v_perslid_fullnames_all p,
( select w.prs_perslid_key , l.alg_locatie_code, l.alg_locatie_omschrijving from prs_v_perslidwerkplek_gegevens w, alg_locatie l
where w.alg_locatie_key = l.alg_locatie_key ) wp,
(SELECT d.ins_srtdeel_key,
d.ins_deel_upper,
d.ins_alg_ruimte_key prs_perslid_key
FROM ins_deel d
WHERE d.ins_srtdeel_key = 7845
AND d.ins_alg_ruimte_type = 'P'
AND d.ins_deel_verwijder IS NULL) ATEX,
(SELECT d.ins_srtdeel_key,
d.ins_deel_upper,
d.ins_alg_ruimte_key prs_perslid_key
FROM ins_deel d
WHERE d.ins_srtdeel_key = 7846
AND d.ins_alg_ruimte_type = 'P'
AND d.ins_deel_verwijder IS NULL) BBS,
(SELECT d.ins_srtdeel_key,
d.ins_deel_upper,
d.ins_alg_ruimte_key prs_perslid_key
FROM ins_deel d
WHERE d.ins_srtdeel_key = 7848
AND d.ins_alg_ruimte_type = 'P'
AND d.ins_deel_verwijder IS NULL) BHV,
(SELECT d.ins_srtdeel_key,
d.ins_deel_upper,
d.ins_alg_ruimte_key prs_perslid_key
FROM ins_deel d
WHERE d.ins_srtdeel_key = 8285
AND d.ins_alg_ruimte_type = 'P'
AND d.ins_deel_verwijder IS NULL) KBP,
(SELECT d.ins_srtdeel_key,
d.ins_deel_upper,
d.ins_alg_ruimte_key prs_perslid_key
FROM ins_deel d
WHERE d.ins_srtdeel_key = 8225
AND d.ins_alg_ruimte_type = 'P'
AND d.ins_deel_verwijder IS NULL) BRZO,
(SELECT d.ins_srtdeel_key,
d.ins_deel_upper,
d.ins_alg_ruimte_key prs_perslid_key
FROM ins_deel d
WHERE d.ins_srtdeel_key = 8265
AND d.ins_alg_ruimte_type = 'P'
AND d.ins_deel_verwijder IS NULL) VIN,
(SELECT d.ins_srtdeel_key,
d.ins_deel_upper,
d.ins_alg_ruimte_key prs_perslid_key
FROM ins_deel d
WHERE d.ins_srtdeel_key = 7850
AND d.ins_alg_ruimte_type = 'P'
AND d.ins_deel_verwijder IS NULL) EHBO,
(SELECT d.ins_srtdeel_key,
d.ins_deel_upper,
d.ins_alg_ruimte_key prs_perslid_key
FROM ins_deel d
WHERE d.ins_srtdeel_key = 7852
AND d.ins_alg_ruimte_type = 'P'
AND d.ins_deel_verwijder IS NULL) KBT,
(SELECT d.ins_srtdeel_key,
d.ins_deel_upper,
d.ins_alg_ruimte_key prs_perslid_key
FROM ins_deel d
WHERE d.ins_srtdeel_key = 7853
AND d.ins_alg_ruimte_type = 'P'
AND d.ins_deel_verwijder IS NULL) LSR,
(SELECT d.ins_srtdeel_key,
d.ins_deel_upper,
d.ins_alg_ruimte_key prs_perslid_key
FROM ins_deel d
WHERE d.ins_srtdeel_key = 7856
AND d.ins_alg_ruimte_type = 'P'
AND d.ins_deel_verwijder IS NULL) ONTR,
(SELECT d.ins_srtdeel_key,
d.ins_deel_upper,
d.ins_alg_ruimte_key prs_perslid_key
FROM ins_deel d
WHERE d.ins_srtdeel_key = 7859
AND d.ins_alg_ruimte_type = 'P'
AND d.ins_deel_verwijder IS NULL) VCA,
(SELECT d.ins_srtdeel_key,
d.ins_deel_upper,
d.ins_alg_ruimte_key prs_perslid_key
FROM ins_deel d
WHERE d.ins_srtdeel_key = 7860
AND d.ins_alg_ruimte_type = 'P'
AND d.ins_deel_verwijder IS NULL) VDG,
(SELECT d.ins_srtdeel_key,
d.ins_deel_upper,
d.ins_alg_ruimte_key prs_perslid_key
FROM ins_deel d
WHERE d.ins_srtdeel_key = 7860
AND d.ins_alg_ruimte_type = 'P'
AND d.ins_deel_verwijder IS NULL) COMPEX,
(SELECT d.ins_srtdeel_key,
d.ins_deel_upper,
d.ins_alg_ruimte_key prs_perslid_key
FROM ins_deel d
WHERE d.ins_srtdeel_key = 7860
AND d.ins_alg_ruimte_type = 'P'
AND d.ins_deel_verwijder IS NULL) HACCP,
(SELECT d.ins_srtdeel_key,
d.ins_deel_upper,
d.ins_alg_ruimte_key prs_perslid_key
FROM ins_deel d
WHERE d.ins_srtdeel_key = 7854
AND d.ins_alg_ruimte_type = 'P'
AND d.ins_deel_verwijder IS NULL) NEN3140,
(SELECT d.ins_srtdeel_key,
d.ins_deel_upper,
d.ins_alg_ruimte_key prs_perslid_key
FROM ins_deel d
WHERE d.ins_srtdeel_key = 7857
AND d.ins_alg_ruimte_type = 'P'
AND d.ins_deel_verwijder IS NULL) PERSL,
(SELECT d.ins_srtdeel_key,
d.ins_deel_upper,
d.ins_alg_ruimte_key prs_perslid_key
FROM ins_deel d
WHERE d.ins_srtdeel_key = 7858
AND d.ins_alg_ruimte_type = 'P'
AND d.ins_deel_verwijder IS NULL) TVM,
(SELECT d.ins_srtdeel_key,
d.ins_deel_upper,
d.ins_alg_ruimte_key prs_perslid_key
FROM ins_deel d
WHERE d.ins_srtdeel_key = 8045
AND d.ins_alg_ruimte_type = 'P'
AND d.ins_deel_verwijder IS NULL) PTW,
(SELECT d.ins_srtdeel_key,
d.ins_deel_upper,
d.ins_alg_ruimte_key prs_perslid_key
FROM ins_deel d
WHERE d.ins_srtdeel_key = 8065
AND d.ins_alg_ruimte_type = 'P'
AND d.ins_deel_verwijder IS NULL) LOTOTO,
(SELECT d.ins_srtdeel_key,
d.ins_deel_upper,
d.ins_alg_ruimte_key prs_perslid_key
FROM ins_deel d
WHERE d.ins_srtdeel_key = 8005
AND d.ins_alg_ruimte_type = 'P'
AND d.ins_deel_verwijder IS NULL) MGW,
(SELECT d.ins_srtdeel_key,
d.ins_deel_upper,
d.ins_alg_ruimte_key prs_perslid_key
FROM ins_deel d
WHERE d.ins_srtdeel_key = 8025
AND d.ins_alg_ruimte_type = 'P'
AND d.ins_deel_verwijder IS NULL) LIFT,
(SELECT d.ins_srtdeel_key,
d.ins_deel_upper,
d.ins_alg_ruimte_key prs_perslid_key
FROM ins_deel d
WHERE d.ins_srtdeel_key = 8026
AND d.ins_alg_ruimte_type = 'P'
AND d.ins_deel_verwijder IS NULL) HS_LS,
(SELECT d.ins_srtdeel_key,
d.ins_deel_upper,
d.ins_alg_ruimte_key prs_perslid_key
FROM ins_deel d
WHERE d.ins_srtdeel_key = 8245
AND d.ins_alg_ruimte_type = 'P'
AND d.ins_deel_verwijder IS NULL) PBM,
(SELECT d.ins_srtdeel_key,
d.ins_deel_upper,
d.ins_alg_ruimte_key prs_perslid_key
FROM ins_deel d
WHERE d.ins_srtdeel_key = 8305
AND d.ins_alg_ruimte_type = 'P'
AND d.ins_deel_verwijder IS NULL) VWH
WHERE atex.prs_perslid_key(+) = p.prs_perslid_key
AND wp.prs_perslid_key (+)= p.prs_perslid_key
AND bbs.prs_perslid_key(+) = p.prs_perslid_key
AND bhv.prs_perslid_key(+) = p.prs_perslid_key
AND kbp.prs_perslid_key(+) = p.prs_perslid_key
AND brzo.prs_perslid_key(+) = p.prs_perslid_key
AND vin.prs_perslid_key(+) = p.prs_perslid_key
AND ehbo.prs_perslid_key(+) = p.prs_perslid_key
AND kbt.prs_perslid_key(+) = p.prs_perslid_key
AND lsr.prs_perslid_key(+) = p.prs_perslid_key
AND ontr.prs_perslid_key(+) = p.prs_perslid_key
AND vca.prs_perslid_key(+) = p.prs_perslid_key
AND vdg.prs_perslid_key(+) = p.prs_perslid_key
AND compex.prs_perslid_key(+) = p.prs_perslid_key
AND haccp.prs_perslid_key(+) = p.prs_perslid_key
AND nen3140.prs_perslid_key(+) = p.prs_perslid_key
AND persl.prs_perslid_key(+) = p.prs_perslid_key
AND tvm.prs_perslid_key(+) = p.prs_perslid_key
AND ptw.prs_perslid_key(+) = p.prs_perslid_key
AND lototo.prs_perslid_key(+) = p.prs_perslid_key
AND mgw.prs_perslid_key(+) = p.prs_perslid_key
AND lift.prs_perslid_key(+) = p.prs_perslid_key
AND hs_ls.prs_perslid_key(+) = p.prs_perslid_key
AND pbm.prs_perslid_key(+) = p.prs_perslid_key
AND vwh.prs_perslid_key(+) = p.prs_perslid_key
AND p.prs_perslid_verwijder IS NULL;
CREATE OR REPLACE VIEW NOUR_V_RAP_CONTR_AREAGED
(
ruimte_nr,
ruimte_omschrijving,
areagedelegeerde,
vinkje_aan
)
AS
SELECT r.alg_ruimte_nr,
r.alg_ruimte_omschrijving,
'areagedelegeerde: ' || areadel.prs_perslid_naam_full,
DECODE (areadel_vink.vinkje, 'Ja', 'Ja', 'Nee') Areagedelegeerde
FROM alg_ruimte r,
(SELECT ok.alg_onrgoed_key alg_ruimte_key,
pf.prs_perslid_key,
pf.prs_perslid_naam_full
FROM alg_onrgoedkenmerk ok, prs_v_perslid_fullnames pf
WHERE ok.alg_onrgoed_niveau = 'R'
AND ok.alg_kenmerk_key = 1160
AND ok.alg_onrgoedkenmerk_verwijder IS NULL
AND fac.safe_to_number (ok.alg_onrgoedkenmerk_waarde) =
pf.prs_perslid_key) areadel,
(SELECT prs_perslid_key, 'Ja' vinkje
FROM prs_perslid p, prs_kenmerklink kl, prs_kenmerk k
WHERE p.prs_perslid_key = kl.prs_link_key
AND k.prs_kenmerk_key = kl.prs_kenmerk_key
AND k.prs_kenmerk_key = 1464
AND p.prs_perslid_verwijder IS NULL) areadel_vink
WHERE r.alg_ruimte_key = areadel.alg_ruimte_key
AND areadel.prs_perslid_key = areadel_vink.prs_perslid_key(+)
AND r.alg_ruimte_verwijder IS NULL
UNION ALL
SELECT r.alg_ruimte_nr,
r.alg_ruimte_omschrijving,
'res areagedelegeerde: ' || areares.prs_perslid_naam_full,
DECODE (areares_vink.vinkje, 'Ja', 'Ja', 'Nee') Areagedelegeerde
FROM alg_ruimte r,
(SELECT ok.alg_onrgoed_key alg_ruimte_key,
pf.prs_perslid_key,
pf.prs_perslid_naam_full
FROM alg_onrgoedkenmerk ok, prs_v_perslid_fullnames pf
WHERE ok.alg_onrgoed_niveau = 'R'
AND ok.alg_kenmerk_key = 1180
AND ok.alg_onrgoedkenmerk_verwijder IS NULL
AND fac.safe_to_number (ok.alg_onrgoedkenmerk_waarde) =
pf.prs_perslid_key) areares,
(SELECT prs_perslid_key, 'Ja' vinkje
FROM prs_perslid p, prs_kenmerklink kl, prs_kenmerk k
WHERE p.prs_perslid_key = kl.prs_link_key
AND k.prs_kenmerk_key = kl.prs_kenmerk_key
AND k.prs_kenmerk_key = 1464
AND p.prs_perslid_verwijder IS NULL) areares_vink
WHERE r.alg_ruimte_key = areares.alg_ruimte_key
AND areares.prs_perslid_key = areares_vink.prs_perslid_key(+)
AND r.alg_ruimte_verwijder IS NULL
UNION ALL
SELECT r.alg_ruimte_nr,
r.alg_ruimte_omschrijving,
'res areagedelegeerde (res): ' || arearesres.prs_perslid_naam_full,
DECODE (arearesres_vink.vinkje, 'Ja', 'Ja', 'Nee')
Areagedelegeerde
FROM alg_ruimte r,
(SELECT ok.alg_onrgoed_key alg_ruimte_key,
pf.prs_perslid_key,
pf.prs_perslid_naam_full
FROM alg_onrgoedkenmerk ok, prs_v_perslid_fullnames pf
WHERE ok.alg_onrgoed_niveau = 'R'
AND ok.alg_kenmerk_key = 1185
AND ok.alg_onrgoedkenmerk_verwijder IS NULL
AND fac.safe_to_number (ok.alg_onrgoedkenmerk_waarde) =
pf.prs_perslid_key) arearesres,
(SELECT prs_perslid_key, 'Ja' vinkje
FROM prs_perslid p, prs_kenmerklink kl, prs_kenmerk k
WHERE p.prs_perslid_key = kl.prs_link_key
AND k.prs_kenmerk_key = kl.prs_kenmerk_key
AND k.prs_kenmerk_key = 1464
AND p.prs_perslid_verwijder IS NULL) arearesres_vink
WHERE r.alg_ruimte_key = arearesres.alg_ruimte_key
AND arearesres.prs_perslid_key =
arearesres_vink.prs_perslid_key(+)
AND r.alg_ruimte_verwijder IS NULL;
CREATE OR REPLACE VIEW NOUR_V_MAILING_AREAGED
(
gebouw_code,
gebouwe_naam,
verdieping,
mailing_list
)
AS
SELECT alg_gebouw_code,
alg_gebouw_naam,
alg_verdieping_code,
LISTAGG (LOWER (prs_perslid_email), ';')
WITHIN GROUP (ORDER BY alg_gebouw_code, alg_verdieping_code) mailing_ad
FROM ( SELECT og.alg_gebouw_code,
og.alg_gebouw_naam,
og.alg_verdieping_code,
areadel.prs_perslid_email,
ROW_NUMBER ()
OVER (
PARTITION BY og.alg_gebouw_code,
og.alg_gebouw_naam,
og.alg_verdieping_code,
areadel.prs_perslid_email
ORDER BY
og.alg_gebouw_code, og.alg_verdieping_code) AS rn
FROM alg_ruimte r,
alg_v_onroerendgoed_gegevens og,
(SELECT ok.alg_onrgoed_key alg_ruimte_key,
pf.prs_perslid_key,
pf.prs_perslid_email
FROM alg_onrgoedkenmerk ok, prs_perslid pf
WHERE ok.alg_onrgoed_niveau = 'R'
AND ok.alg_kenmerk_key = 1160
AND ok.alg_onrgoedkenmerk_verwijder IS NULL
AND fac.safe_to_number (
ok.alg_onrgoedkenmerk_waarde) =
pf.prs_perslid_key) areadel
WHERE og.alg_ruimte_key = r.alg_ruimte_key
AND r.alg_ruimte_key = areadel.alg_ruimte_key
AND r.alg_ruimte_verwijder IS NULL
AND og.alg_locatie_key = 121
ORDER BY og.alg_gebouw_code,
og.alg_gebouw_naam,
og.alg_verdieping_code,
areadel.prs_perslid_email) ad
WHERE rn = 1
GROUP BY alg_gebouw_code, alg_gebouw_naam, alg_verdieping_code;
CREATE OR REPLACE VIEW NOUR_V_MDW_DEVENTER
(
prs_perslid_key,
prs_perslid_naam,
prs_perslid_verwijder
)
AS
SELECT p.prs_perslid_key, p.prs_perslid_naam, p.prs_perslid_verwijder
FROM nour_v_perslid p,
(SELECT pw.prs_perslid_key,
l.alg_locatie_key,
l.alg_locatie_omschrijving
FROM prs_perslidwerkplek pw,
prs_werkplek w,
alg_ruimte r,
alg_verdieping v,
alg_gebouw g,
alg_locatie l
WHERE pw.prs_werkplek_key = w.prs_werkplek_key
AND w.prs_alg_ruimte_key = r.alg_ruimte_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 l.alg_locatie_key = 121) wp_dev -- alleen locatie Deventer
WHERE p.prs_perslid_key = wp_dev.prs_perslid_key;
CREATE OR REPLACE VIEW NOUR_V_STANDAARD_WVG
(
HTML_BESTAND
)
AS
SELECT ( '<a target ="_blank" href="ms-excel:ofe%7Cu%7Chttps:/d60c.sharepoint.com/sites/SC00025T12361/Shared%20Documents/PTW/standaard%20ptw/'
|| ud.fac_usrdata_code
|| '">'
|| HTF.escape_sc (ud.fac_usrdata_omschr)
|| '</a>') HTML
FROM fac_usrtab ut, fac_usrdata ud
WHERE ud.fac_usrtab_key = ut.fac_usrtab_key
AND UPPER (ut.fac_usrtab_naam) LIKE '%STANDAARD WVG%'
AND ud.fac_usrdata_vervaldatum IS NULL
AND ( ud.fac_usrdata_verwijder > SYSDATE
OR ud.fac_usrdata_verwijder IS NULL);
CREATE OR REPLACE VIEW NOUR_V_ALG_GEBOUW_DEVENTER
AS
SELECT alg_gebouw_key, alg_gebouw_omschrijving, alg_gebouw_verwijder
FROM alg_gebouw g
WHERE g.alg_locatie_key = 121;
CREATE OR REPLACE VIEW NOUR_V_BT_AFDELINGSMANAGER
AS
SELECT p.prs_perslid_key, p.prs_perslid_naam_friendly, p.prs_perslid_verwijder
FROM fac_groep g, fac_gebruikersgroep gg, prs_v_perslid_fullnames_all p
WHERE g.fac_groep_upper LIKE '%AFDELINGSMAN%'
AND gg.fac_groep_key = g.fac_groep_key
AND p.prs_perslid_key = gg.prs_perslid_key;
CREATE OR REPLACE VIEW NOUR_V_BT_HSE_MANAGER
AS
SELECT p.prs_perslid_key, p.prs_perslid_naam_friendly, p.prs_perslid_verwijder
FROM fac_groep g, fac_gebruikersgroep gg, prs_v_perslid_fullnames_all p
WHERE g.fac_groep_upper LIKE '%HSE MAN%'
AND gg.fac_groep_key = g.fac_groep_key
AND p.prs_perslid_key = gg.prs_perslid_key;
CREATE OR REPLACE VIEW NOUR_V_BT_PROCESS_ENGINEER
AS
SELECT p.prs_perslid_key, p.prs_perslid_naam_friendly, p.prs_perslid_verwijder
FROM fac_groep g, fac_gebruikersgroep gg, prs_v_perslid_fullnames_all p
WHERE g.fac_groep_upper LIKE '%PROCESS ENG%'
AND gg.fac_groep_key = g.fac_groep_key
AND p.prs_perslid_key = gg.prs_perslid_key;
CREATE OR REPLACE VIEW NOUR_V_BT_SHIFT_SUPERVISOR
AS
SELECT p.prs_perslid_key, p.prs_perslid_naam_friendly, p.prs_perslid_verwijder
FROM fac_groep g, fac_gebruikersgroep gg, prs_v_perslid_fullnames_all p
WHERE g.fac_groep_upper LIKE '%SHIFT SUPERV%'
AND gg.fac_groep_key = g.fac_groep_key
AND p.prs_perslid_key = gg.prs_perslid_key;
CREATE OR REPLACE VIEW NOUR_V_BT_SRE_OFFICER
AS
SELECT p.prs_perslid_key, p.prs_perslid_naam_friendly, p.prs_perslid_verwijder
FROM fac_groep g, fac_gebruikersgroep gg, prs_v_perslid_fullnames_all p
WHERE g.fac_groep_upper LIKE '%SRE OFF%'
AND gg.fac_groep_key = g.fac_groep_key
AND p.prs_perslid_key = gg.prs_perslid_key;
CREATE OR REPLACE VIEW NOUR_V_SELECTIE_WVG
(
mld_melding_key,
mld_omschrijving
)
AS
SELECT s.mld_melding_key,
s.mld_melding_key
|| '-'
|| t.mld_stdmelding_omschrijving
|| ' ('
|| s.mld_melding_onderwerp
|| ')'
FROM mld_melding s,
mld_stdmelding t,
prs_v_perslid_fullnames_all p,
prs_perslid pl,
prs_afdeling a,
mld_statuses u,
(SELECT k.mld_melding_key, k.mld_kenmerkmelding_waarde
FROM mld_kenmerkmelding k, mld_kenmerk n
WHERE n.mld_kenmerk_key = k.mld_kenmerk_key
AND n.mld_srtkenmerk_key = 961) bestand
WHERE p.prs_perslid_key = s.prs_perslid_key_voor
AND s.mld_stdmelding_key = t.mld_stdmelding_key
AND s.mld_melding_key = bestand.mld_melding_key
AND s.mld_melding_status = u.mld_statuses_key
AND p.prs_perslid_key = pl.prs_perslid_key
AND pl.prs_afdeling_key = a.prs_afdeling_key
AND s.mld_melding_status NOT IN (1, 99);
CREATE OR REPLACE VIEW NOUR_V_OVERBRUGGING
(
HIDE_F_MELDING_KEY,
HTML_AANVRAAG_NR,
MELDING_OMSCHRIJVING,
STATUS,
REGISTRATIE_DATUM,
AANVRAGER,
AFDELING,
AFDELING_OMSCHR,
FCLT_3D_LOCATIE_KEY,
OVERBR_AFDELING,
TAGNR,
ACTIE,
REDEN,
RISICO,
MAATREGELEN,
STARTDATUM_OVERBRUGGING,
AANVANGSTIJD,
DATUM_TIJD_VAN,
EINDDATUM_OVERBRUGGING,
EINDTIJD,
DATUM_TIJD_TOT,
GEPLAATST_DOOR,
WAAR_GEPLAATST,
DATUM_TIJD_GEPLAATST,
VERWIJDERD_DOOR,
DATUM_TIJD_VERWIJDERD,
CONTROLE_DOOR,
DATUM_TIJD_CONTROLE,
INGEBRUIKNAME_DOOR,
DATUM_TIJD_INGEBRUIKNAME
)
AS
SELECT s.mld_melding_key,
'<a class="details" onclick=''FcltMgr.openDetail("'
|| 'appl/mld/mld_melding.asp?urole=fe&'
|| 'mld_key='
|| s.mld_melding_key
|| '")''>'
|| HTF.escape_sc (s.mld_melding_key)
|| '</a>'
melding_key,
t.mld_stdmelding_omschrijving,
u.mld_statuses_omschrijving,
s.mld_melding_datum,
p.prs_perslid_naam_full,
a.prs_afdeling_naam,
a.prs_afdeling_omschrijving,
s.mld_alg_locatie_key,
afdeling.prs_afdeling_omschrijving
afdeling,
tagnummer.mld_kenmerkmelding_waarde
tagnummer,
actie.mld_kenmerkmelding_waarde
actie,
reden.mld_kenmerkmelding_waarde
reden,
risico.mld_kenmerkmelding_waarde
risico,
maatregelen.mld_kenmerkmelding_waarde
maatregelen,
fac.safe_to_date (startdatum.mld_kenmerkmelding_waarde,
'DD-MM-YYYY')
startdatum,
aanvangstijd.mld_kenmerkmelding_waarde
aanvangstijd,
TO_CHAR (
startdatum.mld_kenmerkmelding_waarde
|| ' '
|| aanvangstijd.mld_kenmerkmelding_waarde)
datum_tijd_van,
fac.safe_to_date (einddatum.mld_kenmerkmelding_waarde,
'DD-MM-YYYY')
einddatum,
eindtijd.mld_kenmerkmelding_waarde
eindtijd,
einddatum.mld_kenmerkmelding_waarde
|| ' '
|| eindtijd.mld_kenmerkmelding_waarde
datumtijd_tot,
geplaatst_door.prs_perslid_naam_friendly
geplaatst_door,
waar_gepl.mld_kenmerkmelding_waarde
waar_geplaatst,
tijd_gepl.mld_kenmerkmelding_waarde
datum_tijd_geplaatst,
verwijderd_door.prs_perslid_naam_friendly
verwijderd_door,
tijd_verwdr.mld_kenmerkmelding_waarde
datum_tijd_verwijderd,
controle_door.prs_perslid_naam_friendly
controle_door,
tijd_controle.mld_kenmerkmelding_waarde
datum_tijd_controle,
ingebruikname_door.prs_perslid_naam_friendly
ingebruikname_door,
tijd_ingebruikname.mld_kenmerkmelding_waarde
datum_tijd_ingebruikname
FROM mld_melding s,
mld_stdmelding t,
prs_v_perslid_fullnames_all p,
prs_perslid pl,
prs_afdeling a,
mld_statuses u,
(SELECT k.mld_melding_key, a.prs_afdeling_omschrijving
FROM mld_kenmerkmelding k, mld_kenmerk n, prs_afdeling a
WHERE n.mld_kenmerk_key = k.mld_kenmerk_key
AND n.mld_kenmerk_key = 2461
AND k.mld_kenmerkmelding_waarde = a.mld_adres_key) afdeling,
(SELECT k.mld_melding_key, k.mld_kenmerkmelding_waarde
FROM mld_kenmerkmelding k, mld_kenmerk n
WHERE n.mld_kenmerk_key = k.mld_kenmerk_key
AND n.mld_kenmerk_key = 2183) tagnummer,
(SELECT k.mld_melding_key, k.mld_kenmerkmelding_waarde
FROM mld_kenmerkmelding k, mld_kenmerk n
WHERE n.mld_kenmerk_key = k.mld_kenmerk_key
AND n.mld_kenmerk_key = 2184) actie,
(SELECT k.mld_melding_key, k.mld_kenmerkmelding_waarde
FROM mld_kenmerkmelding k, mld_kenmerk n
WHERE n.mld_kenmerk_key = k.mld_kenmerk_key
AND n.mld_kenmerk_key = 2185) reden,
(SELECT k.mld_melding_key, k.mld_kenmerkmelding_waarde
FROM mld_kenmerkmelding k, mld_kenmerk n
WHERE n.mld_kenmerk_key = k.mld_kenmerk_key
AND n.mld_kenmerk_key = 2186) risico,
(SELECT k.mld_melding_key, k.mld_kenmerkmelding_waarde
FROM mld_kenmerkmelding k, mld_kenmerk n
WHERE n.mld_kenmerk_key = k.mld_kenmerk_key
AND n.mld_kenmerk_key = 2187) maatregelen,
(SELECT k.mld_melding_key, k.mld_kenmerkmelding_waarde
FROM mld_kenmerkmelding k, mld_kenmerk n
WHERE n.mld_kenmerk_key = k.mld_kenmerk_key
AND n.mld_kenmerk_key = 2202) startdatum,
(SELECT k.mld_melding_key, k.mld_kenmerkmelding_waarde
FROM mld_kenmerkmelding k, mld_kenmerk n
WHERE n.mld_kenmerk_key = k.mld_kenmerk_key
AND n.mld_kenmerk_key = 2203) aanvangstijd,
(SELECT k.mld_melding_key, k.mld_kenmerkmelding_waarde
FROM mld_kenmerkmelding k, mld_kenmerk n
WHERE n.mld_kenmerk_key = k.mld_kenmerk_key
AND n.mld_kenmerk_key = 2204) einddatum,
(SELECT k.mld_melding_key, k.mld_kenmerkmelding_waarde
FROM mld_kenmerkmelding k, mld_kenmerk n
WHERE n.mld_kenmerk_key = k.mld_kenmerk_key
AND n.mld_kenmerk_key = 2205) eindtijd,
(SELECT k.mld_melding_key, p.prs_perslid_naam_friendly
FROM mld_kenmerkmelding k,
mld_kenmerk n,
prs_v_perslid_fullnames_all p
WHERE n.mld_kenmerk_key = k.mld_kenmerk_key
AND k.mld_kenmerkmelding_waarde = p.prs_perslid_key
AND n.mld_kenmerk_key = 2310) geplaatst_door,
(SELECT k.mld_melding_key, k.mld_kenmerkmelding_waarde
FROM mld_kenmerkmelding k, mld_kenmerk n
WHERE n.mld_kenmerk_key = k.mld_kenmerk_key
AND n.mld_kenmerk_key = 2313) waar_gepl,
(SELECT k.mld_melding_key, k.mld_kenmerkmelding_waarde
FROM mld_kenmerkmelding k, mld_kenmerk n
WHERE n.mld_kenmerk_key = k.mld_kenmerk_key
AND n.mld_kenmerk_key = 2318) tijd_gepl,
(SELECT k.mld_melding_key, p.prs_perslid_naam_friendly
FROM mld_kenmerkmelding k,
mld_kenmerk n,
prs_v_perslid_fullnames_all p
WHERE n.mld_kenmerk_key = k.mld_kenmerk_key
AND k.mld_kenmerkmelding_waarde = p.prs_perslid_key
AND n.mld_kenmerk_key = 2312) verwijderd_door,
(SELECT k.mld_melding_key, k.mld_kenmerkmelding_waarde
FROM mld_kenmerkmelding k, mld_kenmerk n
WHERE n.mld_kenmerk_key = k.mld_kenmerk_key
AND n.mld_kenmerk_key = 2323) tijd_verwdr,
(SELECT k.mld_melding_key, p.prs_perslid_naam_friendly
FROM mld_kenmerkmelding k,
mld_kenmerk n,
prs_v_perslid_fullnames_all p
WHERE n.mld_kenmerk_key = k.mld_kenmerk_key
AND k.mld_kenmerkmelding_waarde = p.prs_perslid_key
AND n.mld_kenmerk_key = 2326) controle_door,
(SELECT k.mld_melding_key, k.mld_kenmerkmelding_waarde
FROM mld_kenmerkmelding k, mld_kenmerk n
WHERE n.mld_kenmerk_key = k.mld_kenmerk_key
AND n.mld_kenmerk_key = 2330) tijd_controle,
(SELECT k.mld_melding_key, p.prs_perslid_naam_friendly
FROM mld_kenmerkmelding k,
mld_kenmerk n,
prs_v_perslid_fullnames_all p
WHERE n.mld_kenmerk_key = k.mld_kenmerk_key
AND k.mld_kenmerkmelding_waarde = p.prs_perslid_key
AND n.mld_kenmerk_key = 2327) ingebruikname_door,
(SELECT k.mld_melding_key, k.mld_kenmerkmelding_waarde
FROM mld_kenmerkmelding k, mld_kenmerk n
WHERE n.mld_kenmerk_key = k.mld_kenmerk_key
AND n.mld_kenmerk_key = 2331) tijd_ingebruikname
WHERE p.prs_perslid_key = s.prs_perslid_key_voor
AND s.mld_stdmelding_key = t.mld_stdmelding_key
AND s.mld_melding_status = u.mld_statuses_key
AND p.prs_perslid_key = pl.prs_perslid_key
AND pl.prs_afdeling_key = a.prs_afdeling_key
AND t.mld_stdmelding_key = 1881
AND s.mld_melding_key = afdeling.mld_melding_key(+)
AND s.mld_melding_key = tagnummer.mld_melding_key(+)
AND s.mld_melding_key = actie.mld_melding_key(+)
AND s.mld_melding_key = reden.mld_melding_key(+)
AND s.mld_melding_key = risico.mld_melding_key(+)
AND s.mld_melding_key = maatregelen.mld_melding_key(+)
AND s.mld_melding_key = startdatum.mld_melding_key(+)
AND s.mld_melding_key = aanvangstijd.mld_melding_key(+)
AND s.mld_melding_key = einddatum.mld_melding_key(+)
AND s.mld_melding_key = eindtijd.mld_melding_key(+)
AND s.mld_melding_key = geplaatst_door.mld_melding_key(+)
AND s.mld_melding_key = waar_gepl.mld_melding_key(+)
AND s.mld_melding_key = tijd_gepl.mld_melding_key(+)
AND s.mld_melding_key = verwijderd_door.mld_melding_key(+)
AND s.mld_melding_key = tijd_verwdr.mld_melding_key(+)
AND s.mld_melding_key = controle_door.mld_melding_key(+)
AND s.mld_melding_key = tijd_controle.mld_melding_key(+)
AND s.mld_melding_key = ingebruikname_door.mld_melding_key(+)
AND s.mld_melding_key = tijd_ingebruikname.mld_melding_key(+);
CREATE OR REPLACE VIEW NOUR_V_RAP_IN_OVERBRUGGING
(
MELDING_KEY,
HTML_AANVRAAG_NR,
MELDING_OMSCHRIJVING,
STATUS,
REGISTRATIE_DATUM,
AANVRAGER,
AFDELING,
AFDELING_OMSCHR,
FCLT_3D_LOCATIE_KEY,
OVERBR_AFDELING,
TAGNR,
ACTIE,
REDEN,
RISICO,
MAATREGELEN,
STARTDATUM_OVERBRUGGING,
AANVANGSTIJD,
DATUM_TIJD_VAN,
EINDDATUM_OVERBRUGGING,
EINDTIJD,
DATUM_TIJD_TOT,
GEPLAATST_DOOR,
WAAR_GEPLAATST,
DATUM_TIJD_GEPLAATST,
VERWIJDERD_DOOR,
DATUM_TIJD_VERWIJDERD,
CONTROLE_DOOR,
DATUM_TIJD_CONTROLE,
INGEBRUIKNAME_DOOR,
DATUM_TIJD_INGEBRUIKNAME,
VERLOPEN
)
AS
SELECT hide_f_melding_key,
html_aanvraag_nr,
melding_omschrijving,
status,
registratie_datum,
aanvrager,
afdeling,
afdeling_omschr,
fclt_3d_locatie_key,
overbr_afdeling,
tagnr,
actie,
reden,
risico,
maatregelen,
startdatum_overbrugging,
aanvangstijd,
datum_tijd_van,
einddatum_overbrugging,
eindtijd,
datum_tijd_tot,
geplaatst_door,
waar_geplaatst,
datum_tijd_geplaatst,
verwijderd_door,
datum_tijd_verwijderd,
controle_door,
datum_tijd_controle,
ingebruikname_door,
datum_tijd_ingebruikname,
CASE
WHEN fac.safe_to_date (datum_tijd_tot, 'DD-MM-YYYY HH24:MI') <
SYSDATE
THEN
'Ja'
ELSE
'Nee'
END AS verlopen
FROM nour_v_overbrugging o
WHERE fac.safe_to_date (datum_tijd_geplaatst, 'DD-MM-YYYY HH24:MI') <=
SYSDATE
AND o.datum_tijd_verwijderd IS NULL;
CREATE OR REPLACE VIEW NOUR_V_RAP_MLD_BUDGETHDR
(
fclt_3d_user_key,
budgethouder_naam,
datum,
melding,
omschrijving,
richtbedrag,
aanvrager,
kostenplaats,
kostenplaats_omschrijving
)
AS
SELECT b.prs_perslid_key budgethouder_key,
b.prs_perslid_naam_friendly budgethouder_naam,
m.mld_melding_datum datum,
m.mld_melding_key melding,
m.mld_melding_omschrijving onderwerp,
stfl.richtbedrag richtbedrag,
p.prs_perslid_naam_friendly aanvrager,
kpl.prs_kostenplaats_upper kostenplaats,
kpl.prs_kostenplaats_omschrijving kostenplaats_omschrijving
FROM mld_melding m,
prs_v_perslid_fullnames_all p,
prs_kostenplaats kpl,
prs_v_perslid_fullnames_all b,
(SELECT km.mld_melding_key, ud.fac_usrdata_omschr richtbedrag
FROM mld_kenmerkmelding km,
mld_kenmerk k,
mld_srtkenmerk sk,
fac_usrdata ud,
fac_usrtab ut
WHERE k.mld_kenmerk_key = km.mld_kenmerk_key
AND sk.mld_srtkenmerk_key = k.mld_srtkenmerk_key
AND sk.mld_srtkenmerk_key = 1182
AND fac.safe_to_number (km.mld_kenmerkmelding_waarde) =
ud.fac_usrdata_key
AND ut.fac_usrtab_key = ud.fac_usrtab_key
AND ut.fac_usrtab_key = 531) stfl
WHERE m.prs_perslid_key_voor = p.prs_perslid_key
AND kpl.prs_kostenplaats_key = m.prs_kostenplaats_key
AND kpl.prs_perslid_key = b.prs_perslid_key
AND stfl.mld_melding_key = m.mld_melding_key;
------ payload end ------
SET DEFINE OFF
BEGIN adm.systrackscriptId ('$Id$', 0); END;
/
COMMIT;
SET ECHO OFF
SPOOL OFF
SET DEFINE ON
PROMPT Logfile of this upgrade is: &fcltlogfile