2400 lines
85 KiB
SQL
2400 lines
85 KiB
SQL
--
|
|
-- $Id$
|
|
--
|
|
-- Script containing customer specific db-configuration for STCH.
|
|
DEFINE thisfile = 'STCH.SQL'
|
|
DEFINE dbuser = '^STCH'
|
|
|
|
SET ECHO ON
|
|
SET DEFINE ON
|
|
COLUMN fcltlogfile NEW_VALUE fcltlogfile NOPRINT;
|
|
COLUMN fcltcusttxt NEW_VALUE fcltcusttxt NOPRINT;
|
|
WHENEVER SQLERROR CONTINUE;
|
|
SELECT adm.getscriptspoolfile('&thisfile') AS fcltlogfile FROM DUAL;
|
|
SPOOL &fcltlogfile
|
|
WHENEVER SQLERROR EXIT;
|
|
SELECT adm.checkscriptcust('&dbuser') AS fcltcusttxt FROM DUAL;
|
|
WHENEVER SQLERROR CONTINUE;
|
|
---------------------------------------
|
|
PROMPT &fcltcusttxt
|
|
---------------------------------------
|
|
SET DEFINE OFF
|
|
|
|
------ payload begin ------
|
|
|
|
CREATE OR REPLACE VIEW stch_v_rap_ocr
|
|
(
|
|
opdracht_key,
|
|
opdracht_nummer,
|
|
opdracht_regio,
|
|
opdracht_district,
|
|
opdracht_locatie_code,
|
|
opdracht_locatie,
|
|
opdracht_locatieplaats,
|
|
fclt_3d_locatie_key,
|
|
opdracht_gebouwcode,
|
|
opdracht_gebouw,
|
|
opdracht_verdieping,
|
|
opdracht_ruimtenr,
|
|
opdracht_ruimte,
|
|
opdracht_kostenplaats,
|
|
opdracht_kostenplaats_oms,
|
|
melding_key,
|
|
opdracht_type,
|
|
opdracht_volgnummer,
|
|
opdracht_status,
|
|
opdracht_duur_gepland,
|
|
opdracht_datum,
|
|
opdracht_einddatum,
|
|
opdracht_plandatum,
|
|
opdracht_acceptdatum,
|
|
opdracht_goedgekeurd,
|
|
opdracht_afgemeld,
|
|
opdracht_doorlooptijd,
|
|
opdracht_accepttijd,
|
|
opdracht_omschrijving,
|
|
opdracht_opmerking,
|
|
opdracht_uitvoerende,
|
|
opdracht_uitvoerende_contact,
|
|
opdracht_behandelaar,
|
|
opdracht_contract,
|
|
opdracht_contract_versie,
|
|
opdracht_contactpersoon,
|
|
opdracht_uren,
|
|
opdracht_correctie,
|
|
opdracht_materiaal,
|
|
opdracht_uurtarief,
|
|
opdracht_kosten,
|
|
reason_0_order,
|
|
inkoopprijs,
|
|
uurtarief,
|
|
aantal_uren,
|
|
percentage,
|
|
subtotaal_kosten_uren,
|
|
totaal_kosten,
|
|
berekende_marge,
|
|
verkoopprijs,
|
|
periode,
|
|
aanvrager,
|
|
organisatie,
|
|
categorie,
|
|
opdracht_gereeddatum,
|
|
kostensoortgroep,
|
|
kostensoortnr,
|
|
kostensoort,
|
|
melding,
|
|
meldingsgroep,
|
|
kostenplaatsnummer,
|
|
rema_budget,
|
|
veiligheid
|
|
)
|
|
AS
|
|
SELECT DISTINCT
|
|
o.opdracht_key,
|
|
o.opdracht_nummer,
|
|
o.opdracht_regio,
|
|
o.opdracht_district,
|
|
o.opdracht_locatie_code,
|
|
o.opdracht_locatie,
|
|
o.opdracht_locatieplaats,
|
|
o.fclt_3d_locatie_key,
|
|
o.opdracht_gebouwcode,
|
|
o.opdracht_gebouw,
|
|
o.opdracht_verdieping,
|
|
o.opdracht_ruimtenr,
|
|
o.opdracht_ruimte,
|
|
o.opdracht_kostenplaats,
|
|
o.opdracht_kostenplaats_oms,
|
|
o.melding_key,
|
|
o.opdracht_type,
|
|
o.opdracht_volgnummer,
|
|
o.opdracht_status,
|
|
o.opdracht_duur_gepland,
|
|
o.opdracht_datum,
|
|
o.opdracht_einddatum,
|
|
o.opdracht_plandatum,
|
|
o.opdracht_acceptdatum,
|
|
track.datum,
|
|
o.opdracht_afgemeld,
|
|
o.opdracht_doorlooptijd,
|
|
o.opdracht_accepttijd,
|
|
o.opdracht_omschrijving,
|
|
o.opdracht_opmerking,
|
|
o.opdracht_uitvoerende,
|
|
o.opdracht_uitvoerende_contact,
|
|
o.opdracht_behandelaar,
|
|
o.opdracht_contract,
|
|
o.opdracht_contract_versie,
|
|
o.opdracht_contactpersoon,
|
|
o.opdracht_uren,
|
|
o.opdracht_correctie,
|
|
o.opdracht_materiaal,
|
|
o.opdracht_uurtarief,
|
|
o.opdracht_kosten,
|
|
(SELECT f.fac_usrdata_omschr
|
|
FROM fac_usrdata f
|
|
WHERE f.fac_usrdata_key =
|
|
(SELECT mvk.mld_kenmerkopdr_waarde
|
|
FROM mld_kenmerk mk,
|
|
mld_srtkenmerk msk,
|
|
mld_v_aanwezigkenmerkopdr mvk
|
|
WHERE mk.mld_srtkenmerk_key = msk.mld_srtkenmerk_key
|
|
AND mk.mld_kenmerk_key = mvk.mld_kenmerk_key
|
|
AND mvk.mld_opdr_key = mo.mld_opdr_key
|
|
AND mk.mld_kenmerk_niveau = 'O'
|
|
AND msk.mld_srtkenmerk_key = 321))
|
|
reason_0_order,
|
|
(SELECT mvk.mld_kenmerkopdr_waarde
|
|
FROM mld_kenmerk mk,
|
|
mld_srtkenmerk msk,
|
|
mld_v_aanwezigkenmerkopdr mvk
|
|
WHERE mk.mld_srtkenmerk_key = msk.mld_srtkenmerk_key
|
|
AND mk.mld_kenmerk_key = mvk.mld_kenmerk_key
|
|
AND mvk.mld_opdr_key = mo.mld_opdr_key
|
|
AND mk.mld_kenmerk_niveau = 'O'
|
|
AND msk.mld_srtkenmerk_key = 1066)
|
|
inkoopprijs,
|
|
(SELECT mvk.mld_kenmerkopdr_waarde
|
|
FROM mld_kenmerk mk,
|
|
mld_srtkenmerk msk,
|
|
mld_v_aanwezigkenmerkopdr mvk
|
|
WHERE mk.mld_srtkenmerk_key = msk.mld_srtkenmerk_key
|
|
AND mk.mld_kenmerk_key = mvk.mld_kenmerk_key
|
|
AND mvk.mld_opdr_key = mo.mld_opdr_key
|
|
AND mk.mld_kenmerk_niveau = 'O'
|
|
AND msk.mld_srtkenmerk_key = 1064)
|
|
uurtarief,
|
|
(SELECT mvk.mld_kenmerkopdr_waarde
|
|
FROM mld_kenmerk mk,
|
|
mld_srtkenmerk msk,
|
|
mld_v_aanwezigkenmerkopdr mvk
|
|
WHERE mk.mld_srtkenmerk_key = msk.mld_srtkenmerk_key
|
|
AND mk.mld_kenmerk_key = mvk.mld_kenmerk_key
|
|
AND mvk.mld_opdr_key = mo.mld_opdr_key
|
|
AND mk.mld_kenmerk_niveau = 'O'
|
|
AND msk.mld_srtkenmerk_key = 1063)
|
|
geraamde_uren,
|
|
(SELECT mvk.mld_kenmerkopdr_waarde
|
|
FROM mld_kenmerk mk,
|
|
mld_srtkenmerk msk,
|
|
mld_v_aanwezigkenmerkopdr mvk
|
|
WHERE mk.mld_srtkenmerk_key = msk.mld_srtkenmerk_key
|
|
AND mk.mld_kenmerk_key = mvk.mld_kenmerk_key
|
|
AND mvk.mld_opdr_key = mo.mld_opdr_key
|
|
AND mk.mld_kenmerk_niveau = 'O'
|
|
AND msk.mld_srtkenmerk_key = 1067)
|
|
interne_marge_perc,
|
|
(SELECT mvk.mld_kenmerkopdr_waarde
|
|
FROM mld_kenmerk mk,
|
|
mld_srtkenmerk msk,
|
|
mld_v_aanwezigkenmerkopdr mvk
|
|
WHERE mk.mld_srtkenmerk_key = msk.mld_srtkenmerk_key
|
|
AND mk.mld_kenmerk_key = mvk.mld_kenmerk_key
|
|
AND mvk.mld_opdr_key = mo.mld_opdr_key
|
|
AND mk.mld_kenmerk_niveau = 'O'
|
|
AND msk.mld_srtkenmerk_key = 1065)
|
|
subtotaal_kosten_uren,
|
|
(SELECT mvk.mld_kenmerkopdr_waarde
|
|
FROM mld_kenmerk mk,
|
|
mld_srtkenmerk msk,
|
|
mld_v_aanwezigkenmerkopdr mvk
|
|
WHERE mk.mld_srtkenmerk_key = msk.mld_srtkenmerk_key
|
|
AND mk.mld_kenmerk_key = mvk.mld_kenmerk_key
|
|
AND mvk.mld_opdr_key = mo.mld_opdr_key
|
|
AND mk.mld_kenmerk_niveau = 'O'
|
|
AND msk.mld_srtkenmerk_key = 1070)
|
|
totale_kosten,
|
|
(SELECT mvk.mld_kenmerkopdr_waarde
|
|
FROM mld_kenmerk mk,
|
|
mld_srtkenmerk msk,
|
|
mld_v_aanwezigkenmerkopdr mvk
|
|
WHERE mk.mld_srtkenmerk_key = msk.mld_srtkenmerk_key
|
|
AND mk.mld_kenmerk_key = mvk.mld_kenmerk_key
|
|
AND mvk.mld_opdr_key = mo.mld_opdr_key
|
|
AND mk.mld_kenmerk_niveau = 'O'
|
|
AND msk.mld_srtkenmerk_key = 1069)
|
|
berekende_marge,
|
|
(SELECT mvk.mld_kenmerkopdr_waarde
|
|
FROM mld_kenmerk mk,
|
|
mld_srtkenmerk msk,
|
|
mld_v_aanwezigkenmerkopdr mvk
|
|
WHERE mk.mld_srtkenmerk_key = msk.mld_srtkenmerk_key
|
|
AND mk.mld_kenmerk_key = mvk.mld_kenmerk_key
|
|
AND mvk.mld_opdr_key = mo.mld_opdr_key
|
|
AND mk.mld_kenmerk_niveau = 'O'
|
|
AND msk.mld_srtkenmerk_key = 1068)
|
|
verkoopprijs,
|
|
TO_CHAR (o.opdracht_datum, 'yyyy-mm') periode,
|
|
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 || ')',
|
|
'')
|
|
aanvrager,
|
|
d.prs_afdeling_naam organisatie,
|
|
md.ins_discipline_omschrijving,
|
|
mo.mld_opdr_einddatum,
|
|
ksg.prs_kostensoortgrp_oms,
|
|
ks.prs_kostensoort_refcode,
|
|
ks.prs_kostensoort_oms,
|
|
std.mld_stdmelding_omschrijving,
|
|
stdg.mld_stdmeldinggroep_oms,
|
|
k.prs_kostenplaats_nr,
|
|
(SELECT f.fac_usrdata_omschr
|
|
FROM fac_usrdata f
|
|
WHERE f.fac_usrdata_key =
|
|
(SELECT fac.safe_to_number(mvk.mld_kenmerkopdr_waarde)
|
|
FROM mld_v_aanwezigkenmerkopdr mvk
|
|
WHERE mvk.mld_kenmerk_key = 1601
|
|
AND mvk.mld_opdr_key = mo.mld_opdr_key))
|
|
rema_budget,
|
|
(SELECT f.fac_usrdata_omschr
|
|
FROM fac_usrdata f
|
|
WHERE f.fac_usrdata_key =
|
|
(SELECT fac.safe_to_number(mvk.mld_kenmerkopdr_waarde)
|
|
FROM mld_v_aanwezigkenmerkopdr mvk
|
|
WHERE mvk.mld_kenmerk_key = 1721
|
|
AND mvk.mld_opdr_key = mo.mld_opdr_key))
|
|
veiligheid
|
|
FROM mld_v_udr_opdracht o,
|
|
mld_opdr mo,
|
|
prs_kostenplaats k,
|
|
prs_kostenplaatsgrp kpg,
|
|
prs_kostensoort ks,
|
|
prs_kostensoortgrp ksg,
|
|
prs_v_afdeling d,
|
|
prs_perslid p,
|
|
mld_discipline md,
|
|
mld_stdmelding std,
|
|
mld_stdmeldinggroep stdg,
|
|
mld_melding m,
|
|
( SELECT fac_tracking_refkey key, MAX (fac_tracking_datum) datum
|
|
FROM fac_tracking
|
|
WHERE fac_tracking_oms LIKE '%Goedgekeurd%'
|
|
AND fac_tracking_oms LIKE '%--> Ja%'
|
|
GROUP BY fac_tracking_refkey) track
|
|
WHERE mo.prs_kostenplaats_key = k.prs_kostenplaats_key(+)
|
|
AND std.prs_kostensoort_key = ks.prs_kostensoort_key(+)
|
|
AND k.prs_kostenplaatsgrp_key = kpg.prs_kostenplaatsgrp_key(+)
|
|
AND ks.prs_kostensoortgrp_key = ksg.prs_kostensoortgrp_key(+)
|
|
AND m.mld_stdmelding_key = std.mld_stdmelding_key
|
|
AND stdg.mld_stdmeldinggroep_key(+) = std.mld_stdmeldinggroep_key
|
|
AND std.mld_ins_discipline_key = md.ins_discipline_key
|
|
AND m.mld_melding_key = mo.mld_melding_key
|
|
AND mo.mld_opdr_key = o.opdracht_key
|
|
AND p.prs_afdeling_key = d.prs_afdeling_key(+)
|
|
AND p.prs_perslid_key = mo.prs_perslid_key
|
|
AND TRUNC (o.opdracht_einddatum) >
|
|
TO_DATE ('01-01-2018', 'dd-mm-yyyy')
|
|
AND track.key(+) = o.opdracht_key;
|
|
|
|
CREATE OR REPLACE VIEW stch_v_rap_opdrkosten
|
|
(
|
|
CONTRACT_NUMMER,
|
|
EXTERN_NUMMER,
|
|
UITVOERENDE,
|
|
BEDRAG,
|
|
KOSTENPLAATS,
|
|
KOSTENPLAATS_CODE,
|
|
OPDRACHTNR,
|
|
OPDRACHT_AFGEROND,
|
|
OPDRACHT_GOEDGEKEURD
|
|
)
|
|
AS
|
|
SELECT cn.cnt_contract_nummer,
|
|
cn.cnt_contract_nummer_intern,
|
|
pb.prs_bedrijf_naam,
|
|
mo.mld_opdr_kosten,
|
|
pk.prs_kostenplaats_omschrijving,
|
|
pk.prs_kostenplaats_nr,
|
|
sd.ins_srtdiscipline_prefix
|
|
|| TO_CHAR (m.mld_melding_key)
|
|
|| '/'
|
|
|| mo.mld_opdr_bedrijfopdr_volgnr,
|
|
mld.getopdrachtstatusdate (mo.mld_opdr_key, 9),
|
|
track.datum
|
|
FROM mld_opdr mo,
|
|
cnt_contract cn,
|
|
mld_melding m,
|
|
ins_srtdiscipline sd,
|
|
mld_stdmelding s,
|
|
mld_discipline md,
|
|
prs_kostenplaats pk,
|
|
prs_bedrijf pb,
|
|
mld_kenmerkopdr mk,
|
|
( SELECT fac_tracking_refkey key, MAX (fac_tracking_datum) datum
|
|
FROM fac_tracking
|
|
WHERE fac_tracking_oms LIKE '%Goedgekeurd%'
|
|
AND fac_tracking_oms LIKE '%--> Ja%'
|
|
GROUP BY fac_tracking_refkey) track
|
|
WHERE mo.cnt_contract_key = cn.cnt_contract_key(+)
|
|
AND m.mld_melding_key = mo.mld_melding_key(+)
|
|
AND s.mld_stdmelding_key = m.mld_stdmelding_key
|
|
AND md.ins_discipline_key = s.mld_ins_discipline_key
|
|
AND sd.ins_srtdiscipline_key = md.ins_srtdiscipline_key
|
|
AND mo.prs_kostenplaats_key = pk.prs_kostenplaats_key
|
|
AND mo.mld_uitvoerende_keys = pb.prs_bedrijf_key
|
|
AND mo.mld_opdr_key = mk.mld_opdr_key
|
|
AND mk.mld_kenmerk_key IN (1621, 1641, 1642)
|
|
AND mk.mld_kenmerkopdr_waarde = '142' -- Goedgekeurd = Ja
|
|
AND TRUNC (track.datum) = TRUNC (SYSDATE - 1)
|
|
AND mo.mld_opdr_kosten IS NOT NULL
|
|
AND mo.mld_opdr_kosten NOT LIKE '0'
|
|
AND track.key = mo.mld_opdr_key;
|
|
|
|
-- Rapport voor het controleren van keyusers
|
|
CREATE OR REPLACE VIEW stch_v_rap_keyusers
|
|
(
|
|
perslid_key,
|
|
naam,
|
|
keyuser,
|
|
laatste_login
|
|
)
|
|
AS
|
|
SELECT f.prs_perslid_key,
|
|
f.naam,
|
|
DECODE (f.key_user, 1, 'Ja', 'Nee'),
|
|
f.last_login
|
|
FROM fac_v_lcrap_fe_vs_key_data f, prs_perslid p
|
|
WHERE f.prs_perslid_key = p.prs_perslid_key
|
|
AND p.prs_perslid_verwijder IS NULL;
|
|
|
|
-- Aantal dagen geen reactie op RFQ naar strukton
|
|
CREATE OR REPLACE VIEW stch_v_rap_uitvoerdagen
|
|
(
|
|
opdracht_key,
|
|
opdrachtnummer,
|
|
verzonden,
|
|
reactie_werkdagen
|
|
)
|
|
AS
|
|
SELECT o.mld_opdr_key,
|
|
TO_CHAR (mo.mld_typeopdr_omschrijving || o.mld_melding_key || '/' || o.mld_opdr_bedrijfopdr_volgnr)
|
|
opdrachtnummer,
|
|
o.mld_opdr_verzonden,
|
|
(TRUNC (SYSDATE, 'iw') - TRUNC (mld_opdr_verzonden, 'iw')) * 5 / 7
|
|
+ LEAST (5, TRUNC (SYSDATE) - TRUNC (SYSDATE, 'iw'))
|
|
- LEAST (5, TRUNC (mld_opdr_verzonden) - TRUNC (mld_opdr_verzonden, 'iw'))
|
|
werkdagen
|
|
FROM mld_opdr o, mld_typeopdr mo
|
|
WHERE o.mld_typeopdr_key = 165
|
|
AND o.mld_statusopdr_key IN (5) -- Toegekend, dus nog geen reactie ontvangen
|
|
AND o.mld_uitvoerende_keys = 50422
|
|
AND o.mld_typeopdr_key = mo.mld_typeopdr_key;
|
|
|
|
--Strukton koppeling
|
|
CREATE OR REPLACE PROCEDURE stch_import_opdrstat_strukton (
|
|
p_import_key IN NUMBER)
|
|
AS
|
|
c_delim VARCHAR2 (1) := ';';
|
|
v_newline VARCHAR2 (1000); -- Input line
|
|
v_errormsg VARCHAR2 (4000);
|
|
oracle_err_num NUMBER;
|
|
oracle_err_mes VARCHAR2 (200);
|
|
v_aanduiding VARCHAR2 (1200);
|
|
v_dummy VARCHAR2 (200);
|
|
header_is_valid NUMBER := 0;
|
|
v_count NUMBER;
|
|
v_count_tot NUMBER (10) := 0;
|
|
v_count_import NUMBER (10) := 0;
|
|
v_ongeldig NUMBER (1) := 0;
|
|
-- De importvelden
|
|
v_mld_opdr_opmerking VARCHAR2 (4000);
|
|
v_mld_opdr_key NUMBER (10);
|
|
v_mld_opdr_key_tekst VARCHAR2 (100);
|
|
v_extern_nummer VARCHAR2 (100);
|
|
v_status NUMBER (10);
|
|
v_status_tekst VARCHAR2 (100);
|
|
v_status_code VARCHAR2 (100);
|
|
v_datumtijd DATE;
|
|
v_datumtijd_tekst VARCHAR2 (100);
|
|
v_opmerking VARCHAR2 (3000);
|
|
v_totaal NUMBER (8,2);
|
|
v_totaal_str VARCHAR2 (100);
|
|
|
|
-- Overige velden:
|
|
CURSOR c1
|
|
IS
|
|
SELECT *
|
|
FROM fac_imp_file
|
|
WHERE fac_import_key = p_import_key
|
|
ORDER BY fac_imp_file_index;
|
|
BEGIN
|
|
-- Eerst opruiming
|
|
DELETE FROM stch_imp_opdrstat_strukton;
|
|
|
|
COMMIT;
|
|
|
|
FOR rec1 IN c1
|
|
LOOP
|
|
BEGIN
|
|
v_newline := rec1.fac_imp_file_line;
|
|
v_errormsg := 'Fout opvragen te importeren rij';
|
|
v_aanduiding := '';
|
|
v_ongeldig := 0;
|
|
|
|
fac.imp_getfield (v_newline, c_delim, v_mld_opdr_key_tekst);
|
|
fac.imp_getfield (v_newline, c_delim, v_extern_nummer);
|
|
fac.imp_getfield (v_newline, c_delim, v_status_code); -- typeID
|
|
fac.imp_getfield (v_newline, c_delim, v_datumtijd_tekst);
|
|
fac.imp_getfield (v_newline, c_delim, v_status_tekst);
|
|
fac.imp_getfield (v_newline, c_delim, v_opmerking);
|
|
fac.imp_getfield (v_newline, c_delim, v_totaal_str);
|
|
v_opmerking := substr(v_opmerking, 1, 1000);
|
|
-- verwijder de markering voor cr/lf die we zelf in de stylesheet toegevoegd hebben.
|
|
v_opmerking := replace(v_opmerking, '@@',CHR (13));
|
|
v_aanduiding :=
|
|
'['
|
|
|| v_extern_nummer
|
|
|| '|'
|
|
|| v_mld_opdr_key_tekst
|
|
|| '|'
|
|
|| v_status_tekst
|
|
|| '|'
|
|
|| v_opmerking
|
|
|| '] ';
|
|
v_totaal := fac.safe_to_number(v_totaal_str);
|
|
|
|
fac.imp_writelog (p_import_key, 'I', 'v_totaal_str:' || v_totaal_str || ' v_totaal:' || v_totaal || ' fac.safe_to_number(v_totaal_str):' || fac.safe_to_number(v_totaal_str),'');
|
|
|
|
-- Ik controleer of ik een geldige header heb, dat is: in de juiste kolommen
|
|
-- de juiste kolomkop. Ik controleer daarbij ALLE kolommen!
|
|
-- Ik negeer alles totdat ik een geldige header ben gepasseerd.
|
|
IF (header_is_valid = 0)
|
|
THEN
|
|
IF UPPER (TRIM (v_mld_opdr_key_tekst)) = 'REFERENCEID'
|
|
AND UPPER (TRIM (v_extern_nummer)) = 'SERVICEREQUESTID'
|
|
AND UPPER (TRIM (v_status_code)) = 'TYPEID'
|
|
AND UPPER (TRIM (v_datumtijd_tekst)) = 'DATETIME'
|
|
AND UPPER (TRIM (v_opmerking)) = 'REMARKS'
|
|
AND UPPER (TRIM (v_totaal_str)) = 'TOTAL'
|
|
THEN
|
|
header_is_valid := 1;
|
|
END IF;
|
|
ELSE
|
|
v_count_tot := v_count_tot + 1;
|
|
-- Controleer alle veldwaarden
|
|
v_errormsg := 'Fout inlezen mld_opdr_key [' || v_aanduiding || ']';
|
|
v_mld_opdr_key := TRIM (v_mld_opdr_key);
|
|
|
|
BEGIN
|
|
SELECT o.mld_opdr_key, o.mld_opdr_opmerking
|
|
INTO v_mld_opdr_key, v_mld_opdr_opmerking
|
|
FROM mld_opdr o, mld_melding m, ins_tab_discipline d, ins_srtdiscipline sd, mld_stdmelding std
|
|
WHERE o.mld_melding_key = m.mld_melding_key
|
|
AND m.mld_stdmelding_key = std.mld_stdmelding_key
|
|
AND std.mld_ins_discipline_key = d.ins_discipline_key
|
|
AND d.ins_srtdiscipline_key = sd.ins_srtdiscipline_key
|
|
AND sd.ins_srtdiscipline_prefix || m.mld_melding_key || '/' || o.mld_opdr_bedrijfopdr_volgnr = v_mld_opdr_key_tekst;
|
|
|
|
EXCEPTION WHEN NO_DATA_FOUND THEN
|
|
BEGIN
|
|
fac.imp_writelog (p_import_key, 'W', 'Opdracht kan niet gevonden worden. [' || v_aanduiding || ']', '');
|
|
|
|
-- kijk nu of de opdracht gevonden kan worden a.d.h.v het Struktonnummer
|
|
SELECT o.mld_opdr_key, o.mld_opdr_opmerking
|
|
INTO v_mld_opdr_key, v_mld_opdr_opmerking
|
|
FROM mld_opdr o, mld_kenmerkopdr ko, mld_kenmerk k
|
|
WHERE o.mld_opdr_key = ko.mld_opdr_key
|
|
AND ko.mld_kenmerk_key = k.mld_kenmerk_key
|
|
AND k.mld_srtkenmerk_key = 35
|
|
AND ko.mld_kenmerkopdr_waarde = v_extern_nummer;
|
|
|
|
EXCEPTION WHEN OTHERS THEN
|
|
v_ongeldig := 1;
|
|
v_errormsg := 'Opdracht kan niet gevonden worden (intern/externnr). [' || v_aanduiding || ']';
|
|
v_mld_opdr_key := NULL;
|
|
END;
|
|
END;
|
|
|
|
IF v_ongeldig = 0
|
|
THEN
|
|
v_errormsg :=
|
|
'Fout bij bepalen status [' || v_aanduiding || ']';
|
|
|
|
CASE
|
|
WHEN v_status_code = '5'
|
|
THEN
|
|
v_status := 5; -- uitgegeven
|
|
WHEN v_status_code = '10'
|
|
THEN
|
|
v_status := 8; -- geaccepteerd
|
|
WHEN v_status_code = '20' -- monteur gereed
|
|
THEN
|
|
v_status := 6; -- afgemeld
|
|
WHEN v_status_code = '25' -- specialist gereed
|
|
THEN
|
|
v_status := 6; -- afgemeld
|
|
WHEN v_status_code = '30' -- technisch gereed
|
|
THEN
|
|
v_status := 6; -- afgemeld
|
|
WHEN v_status_code = '45' -- uitgeprijst
|
|
THEN
|
|
v_status := 9; -- afgerond
|
|
WHEN v_status_code = '70'
|
|
THEN
|
|
v_status := 1; -- geannuleerd
|
|
WHEN v_status_code = '80'
|
|
THEN
|
|
v_status := 1; -- afgewezen
|
|
ELSE
|
|
v_status := NULL;
|
|
v_ongeldig := 1; -- nog te bezien.
|
|
END CASE;
|
|
END IF;
|
|
|
|
-- Lees alle veldwaarden
|
|
IF v_ongeldig = 0
|
|
THEN
|
|
v_errormsg :=
|
|
'Fout bij converteren datumtijd [' || v_aanduiding || ']';
|
|
IF INSTR (v_datumtijd_tekst, '.') > 0
|
|
THEN
|
|
v_datumtijd :=
|
|
fac.safe_to_date (
|
|
REPLACE (
|
|
SUBSTR (v_datumtijd_tekst,
|
|
1,
|
|
INSTR (v_datumtijd_tekst, '.') - 1),
|
|
'T',
|
|
' '),
|
|
'yyyy-mm-dd hh24:mi:ss');
|
|
ELSE
|
|
v_datumtijd := fac.safe_to_date(v_datumtijd_tekst, 'yyyy-mm-dd hh24:mi:ss');
|
|
END IF;
|
|
|
|
IF v_datumtijd = NULL
|
|
THEN
|
|
v_ongeldig := 0;
|
|
END IF;
|
|
END IF;
|
|
|
|
IF v_ongeldig = 0
|
|
THEN
|
|
v_errormsg :=
|
|
'Fout bij aanvullen opmerking [' || v_aanduiding || ']';
|
|
|
|
-- controleer of de opmerking niet leeg is en of dezelfde opmerking al bij een eerdere statusovergang
|
|
-- gemeld is.
|
|
IF v_opmerking IS NOT NULL AND INSTR(COALESCE(v_mld_opdr_opmerking, 'QueQuLeQue'), v_opmerking) = 0
|
|
THEN
|
|
v_opmerking :=
|
|
'['
|
|
|| v_datumtijd_tekst
|
|
|| '] - '
|
|
|| v_status_tekst
|
|
|| CHR (13)
|
|
|| CHR (10)
|
|
|| v_opmerking;
|
|
ELSE
|
|
v_opmerking :=
|
|
'[' || v_datumtijd_tekst || '] - ' || v_status_tekst;
|
|
END IF;
|
|
END IF;
|
|
|
|
-- Insert geformatteerde import record
|
|
IF (v_ongeldig = 0)
|
|
THEN
|
|
BEGIN
|
|
v_errormsg :=
|
|
'Fout toevoegen opdracht status ['
|
|
|| v_aanduiding
|
|
|| ']';
|
|
|
|
INSERT INTO stch_imp_opdrstat_strukton (mld_opdr_key,
|
|
extern_nummer,
|
|
status,
|
|
datumtijd,
|
|
opmerking,
|
|
totaal)
|
|
VALUES (v_mld_opdr_key,
|
|
v_extern_nummer,
|
|
v_status,
|
|
v_datumtijd,
|
|
v_opmerking,
|
|
v_totaal);
|
|
|
|
v_count_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,
|
|
'E',
|
|
v_aanduiding || v_errormsg,
|
|
'Fout bij toevoegen regel aan importtabel stch_imp_opdr_status_strukton.');
|
|
END;
|
|
ELSE
|
|
IF v_status_code <> '40' AND v_status_code <> '45'
|
|
THEN
|
|
fac.imp_writelog (p_import_key,
|
|
'E',
|
|
v_errormsg,
|
|
'');
|
|
END IF;
|
|
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!');
|
|
END IF;
|
|
|
|
COMMIT;
|
|
EXCEPTION
|
|
WHEN OTHERS
|
|
THEN
|
|
oracle_err_num := SQLCODE;
|
|
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
|
|
v_errormsg := SUBSTR(
|
|
v_errormsg
|
|
|| 'ORACLE (error '
|
|
|| oracle_err_num
|
|
|| '/'
|
|
|| oracle_err_mes
|
|
|| ')', 1, 490);
|
|
fac.imp_writelog (p_import_key,
|
|
'E',
|
|
SUBSTR(v_aanduiding, 1, 500) || ' - ' || v_errormsg,
|
|
'Inleesproces opdrachtstatusberichten afgebroken!');
|
|
END;
|
|
/
|
|
|
|
CREATE OR REPLACE PROCEDURE stch_update_opdrstat_strukton (p_import_key IN NUMBER)
|
|
AS
|
|
-- Cursor loopt - in volgorde! - over alle ingelezen opdrachtstatusberichten.
|
|
CURSOR c1
|
|
IS
|
|
SELECT mld_opdr_key,
|
|
extern_nummer,
|
|
datumtijd,
|
|
status,
|
|
opmerking,
|
|
totaal
|
|
FROM stch_imp_opdrstat_strukton
|
|
ORDER BY 1, 3;
|
|
|
|
v_errormsg VARCHAR2 (1000);
|
|
oracle_err_num NUMBER;
|
|
oracle_err_mes VARCHAR2 (200);
|
|
v_aanduiding VARCHAR2 (200);
|
|
v_count_tot NUMBER (10);
|
|
v_count NUMBER (10);
|
|
v_mld_key NUMBER (10) := 0;
|
|
v_opdr_key NUMBER (10) := 0;
|
|
v_opdr_status NUMBER (10) := 0;
|
|
v_user_key NUMBER (10) := 0;
|
|
v_mld_typeopdr_key NUMBER (10);
|
|
v_mld_kenmerk_key NUMBER (10);
|
|
v_mld_kenmerkopdr_key NUMBER (10);
|
|
v_mld_srtkenmerk_key NUMBER (10);
|
|
v_goedgekeurd NUMBER (10);
|
|
v_opdrgoed_key NUMBER (10);
|
|
|
|
BEGIN
|
|
-- Loop door alle geimporteerde opdrachtstatusberichten en verwerk deze.
|
|
v_count_tot := 0;
|
|
|
|
-- Stel de key in van het srtkenmerk 'Ref. Nr. Leverancier'. Hier wordt
|
|
-- het nummer dat Strukton aan de call gegeven heeft geregistreerd.
|
|
v_mld_srtkenmerk_key := 123;
|
|
|
|
|
|
v_user_key := 10; -- Strukton user
|
|
|
|
FOR rec IN c1
|
|
LOOP
|
|
BEGIN
|
|
v_aanduiding :=
|
|
'['
|
|
|| rec.mld_opdr_key
|
|
|| '|'
|
|
|| SUBSTR (rec.opmerking, 1, 100)
|
|
|| '] ';
|
|
v_count_tot := v_count_tot + 1;
|
|
v_count := 0;
|
|
|
|
-- Key van melding/opdracht bepalen en externnr bij opdracht opslaan.
|
|
IF (rec.mld_opdr_key IS NOT NULL)
|
|
THEN
|
|
v_errormsg := 'Fout bij bepalen opdracht.';
|
|
|
|
SELECT mld_melding_key, mld_opdr_key, mld_statusopdr_key, mld_typeopdr_key
|
|
INTO v_mld_key, v_opdr_key, v_opdr_status, v_mld_typeopdr_key
|
|
FROM mld_opdr
|
|
WHERE mld_opdr_key = rec.mld_opdr_key;
|
|
|
|
v_errormsg := 'Fout bij bepalen kenmerk extern nummer.';
|
|
SELECT k.mld_kenmerk_key
|
|
INTO v_mld_kenmerk_key
|
|
FROM mld_kenmerk k
|
|
WHERE k.mld_srtkenmerk_key = v_mld_srtkenmerk_key
|
|
AND k.mld_typeopdr_key = v_mld_typeopdr_key;
|
|
|
|
v_errormsg := 'Fout bij bepalen kenmerkopdracht extern nummer.';
|
|
SELECT max(ko.mld_kenmerkopdr_key)
|
|
INTO v_mld_kenmerkopdr_key
|
|
FROM mld_kenmerkopdr ko
|
|
WHERE ko.mld_opdr_key = v_opdr_key
|
|
AND v_mld_kenmerk_key = ko.mld_kenmerk_key;
|
|
|
|
v_errormsg := 'Fout bij bepalen kenmerk goedgekeurd.';
|
|
SELECT k.mld_kenmerk_key
|
|
INTO v_goedgekeurd
|
|
FROM mld_kenmerk k
|
|
WHERE k.mld_srtkenmerk_key = 1041 -- goedgekeurd
|
|
AND k.mld_typeopdr_key = v_mld_typeopdr_key;
|
|
|
|
v_errormsg := 'Fout bij bepalen kenmerkopdracht goedgekeurd.';
|
|
SELECT max(ko.mld_kenmerkopdr_key)
|
|
INTO v_opdrgoed_key
|
|
FROM mld_kenmerkopdr ko
|
|
WHERE ko.mld_opdr_key = v_opdr_key
|
|
AND v_goedgekeurd = ko.mld_kenmerk_key;
|
|
|
|
v_errormsg := 'Fout bij aanpassen extern nummer.';
|
|
IF v_mld_kenmerkopdr_key IS NULL THEN
|
|
-- kenmerk toevoegen
|
|
INSERT INTO mld_kenmerkopdr (mld_kenmerk_key, mld_opdr_key, mld_kenmerkopdr_waarde)
|
|
VALUES (v_mld_kenmerk_key, v_opdr_key, rec.extern_nummer);
|
|
ELSE
|
|
-- kenmerk aanpassen
|
|
UPDATE mld_kenmerkopdr SET mld_kenmerkopdr_waarde = rec.extern_nummer WHERE mld_kenmerkopdr_key = v_mld_kenmerkopdr_key;
|
|
END IF;
|
|
|
|
v_errormsg := 'Fout bij bijwerken opdracht-opmerking.';
|
|
|
|
v_count := LENGTH (rec.opmerking) + 5; -- Beetje speling qua lengte!
|
|
|
|
UPDATE mld_opdr
|
|
SET mld_opdr_opmerking =
|
|
DECODE (
|
|
mld_opdr_opmerking,
|
|
NULL,
|
|
rec.opmerking,
|
|
rec.opmerking
|
|
|| CHR (13)
|
|
|| CHR (10)
|
|
|| SUBSTR (mld_opdr_opmerking, 1, (4000 - v_count)))
|
|
WHERE mld_opdr_key = v_opdr_key;
|
|
|
|
IF v_opdr_status <> rec.status
|
|
THEN
|
|
IF rec.status = 8 AND v_opdr_status = 5
|
|
THEN
|
|
-- Accepteer opdracht als de opdracht uitgegeven was
|
|
MLD.setopdrachtstatus (v_opdr_key, 8, v_user_key); -- Facilitor
|
|
ELSIF rec.status = 6 AND v_opdr_status = 5
|
|
THEN
|
|
-- Meld de opdracht af als deze uitgegeven was
|
|
MLD.setopdrachtstatus (v_opdr_key, 8, v_user_key); -- Facilitor, eerst accepteren
|
|
MLD.setopdrachtstatus (v_opdr_key, 6, v_user_key); -- Facilitor
|
|
ELSIF rec.status = 6 AND v_opdr_status = 8
|
|
THEN
|
|
-- Meld de opdracht af als deze geaccepteerd was
|
|
MLD.setopdrachtstatus (v_opdr_key, 6, v_user_key); -- Facilitor
|
|
ELSIF rec.status = 9 AND v_opdr_status = 6
|
|
THEN
|
|
-- De opdracht is in Focus uitgeprijst door Sitech, dus deze mag nu als goedgekeurd worden gezien.
|
|
IF v_opdrgoed_key IS NULL THEN
|
|
-- kenmerk toevoegen
|
|
INSERT INTO mld_kenmerkopdr (mld_kenmerk_key, mld_opdr_key, mld_kenmerkopdr_waarde)
|
|
VALUES (v_goedgekeurd, v_opdr_key, '142');
|
|
fac.trackaction ('ORDUPD', v_opdr_key, NULL, SYSDATE, 'Goedgekeurd: --> Ja');
|
|
ELSE
|
|
-- kenmerk aanpassen
|
|
UPDATE mld_kenmerkopdr SET mld_kenmerkopdr_waarde = '142' WHERE mld_kenmerkopdr_key = v_opdrgoed_key;
|
|
fac.trackaction ('ORDUPD', v_opdr_key, NULL, SYSDATE, 'Goedgekeurd: --> Ja');
|
|
END IF;
|
|
-- Het totaalbedrag mag nu ook worden weggeschreven, dit is immers al goedgekeurd.
|
|
UPDATE mld_opdr SET mld_opdr_materiaal = rec.totaal,
|
|
mld_opdr_kosten = rec.totaal
|
|
WHERE mld_opdr_key = v_opdr_key;
|
|
-- Meld de opdracht kostentechnisch gereed wanneer deze was afgemeld
|
|
MLD.setopdrachtstatus (v_opdr_key, 9, v_user_key); -- Facilitor
|
|
ELSIF rec.status = 1 AND v_opdr_status = 5
|
|
THEN
|
|
-- Opdracht is afgewezen op het moment dat de opdracht nog niet geaccepteerd is.
|
|
MLD.setopdrachtstatus (v_opdr_key, 1, v_user_key); -- Facilitor
|
|
MLD.updatemeldingstatusAV (v_mld_key, 0, v_user_key, 0);
|
|
ELSIF rec.status = 1 AND v_opdr_status = 8
|
|
THEN
|
|
-- Opdracht is afgewezen op het moment dat de opdracht al geaccepteerd is.
|
|
MLD.setopdrachtstatus (v_opdr_key, 1, v_user_key); -- Facilitor
|
|
MLD.updatemeldingstatusAV (v_mld_key, 0, v_user_key, 0);
|
|
END IF;
|
|
|
|
IF rec.status = 6 AND v_opdr_status <> 6
|
|
THEN
|
|
v_errormsg := 'Fout bij statusaanpassing melding.';
|
|
MLD.updatemeldingstatusAV (v_mld_key, 0, v_user_key, 0);
|
|
END IF;
|
|
END IF;
|
|
END IF;
|
|
|
|
COMMIT;
|
|
EXCEPTION
|
|
WHEN OTHERS
|
|
THEN
|
|
oracle_err_num := SQLCODE;
|
|
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
|
|
v_errormsg :=
|
|
v_errormsg
|
|
|| ' ORACLE (error '
|
|
|| oracle_err_num
|
|
|| '/'
|
|
|| oracle_err_mes
|
|
|| ')';
|
|
fac.imp_writelog (p_import_key,
|
|
'E',
|
|
v_aanduiding || v_errormsg,
|
|
'Fout bij verwerken opdrachtstatusbericht.');
|
|
END;
|
|
END LOOP;
|
|
|
|
COMMIT;
|
|
END;
|
|
/
|
|
|
|
-- Rapportage voor login
|
|
CREATE OR REPLACE VIEW STCH_V_RAP_NOLOGIN
|
|
(
|
|
VOORNAAM,
|
|
ACHTERNAAM,
|
|
EMAIL,
|
|
LAATSTE_LOGIN
|
|
)
|
|
AS
|
|
SELECT pa.prs_perslid_voornaam,
|
|
pa.prs_perslid_naam,
|
|
pa.prs_perslid_email,
|
|
pa.prs_perslid_login
|
|
FROM prs_v_aanwezigperslid pa, prs_perslid p
|
|
WHERE pa.prs_perslid_login < SYSDATE - 30
|
|
AND p.prs_perslid_key = pa.prs_perslid_key
|
|
AND pa.prs_perslid_naam NOT LIKE '%INACTIEF%'
|
|
AND p.prs_perslid_verwijder IS NULL;
|
|
|
|
-- Rapport met users die meldingen mogen inleggen (MLDUSE).
|
|
CREATE OR REPLACE VIEW STCH_V_RAP_MLDUSERS
|
|
(
|
|
prskey,
|
|
achternaam,
|
|
voornaam,
|
|
email,
|
|
login,
|
|
functie_code
|
|
)
|
|
AS
|
|
SELECT p.prs_perslid_key,
|
|
p.prs_perslid_naam,
|
|
p.prs_perslid_voornaam,
|
|
p.prs_perslid_email,
|
|
p.prs_perslid_oslogin,
|
|
f.fac_functie_code
|
|
FROM fac_groeprechten g,
|
|
fac_gebruikersgroep gg,
|
|
prs_v_aanwezigperslid p,
|
|
fac_functie f,
|
|
fac_groep gr
|
|
WHERE g.fac_groep_key = gr.fac_groep_key
|
|
AND p.prs_perslid_key = gg.prs_perslid_key
|
|
AND gg.fac_groep_key = gr.fac_groep_key
|
|
AND f.fac_functie_key = g.fac_functie_key
|
|
AND f.fac_functie_code = 'WEB_MLDUSE'
|
|
AND p.prs_perslid_verwijder IS NULL
|
|
GROUP BY (p.prs_perslid_key,
|
|
p.prs_perslid_voornaam,
|
|
p.prs_perslid_naam,
|
|
p.prs_perslid_email,
|
|
p.prs_perslid_oslogin,
|
|
f.fac_functie_code)
|
|
ORDER BY p.prs_perslid_naam;
|
|
|
|
--
|
|
-- GRAFISCH
|
|
--
|
|
CREATE OR REPLACE VIEW stch_v_thema_srtruimte
|
|
(
|
|
alg_ruimte_key,
|
|
waarde,
|
|
waarde_key
|
|
)
|
|
AS
|
|
SELECT DISTINCT
|
|
r.alg_ruimte_key,
|
|
COALESCE (
|
|
(SELECT fac_usrdata_omschr
|
|
FROM fac_usrdata
|
|
WHERE fac_usrtab_key = 221 -- omzettingstabel soortruimte naar omschrijving
|
|
AND alg_srtruimte_omschrijving LIKE
|
|
fac_usrdata_code || '%'),
|
|
'onbekend'),
|
|
NULL alg_srtruimte_key
|
|
FROM alg_v_aanwezigruimte r, alg_srtruimte sr
|
|
WHERE r.alg_srtruimte_key = sr.alg_srtruimte_key;
|
|
|
|
|
|
-- views ter ondersteuning aan Facilitor graphics
|
|
-- sleepbaar thema om huurder aan thema te koppelen.
|
|
CREATE OR REPLACE VIEW stch_v_thema_ruimte_huurder (
|
|
alg_ruimte_key,
|
|
waarde,
|
|
waarde_key
|
|
)
|
|
AS
|
|
SELECT x.alg_ruimte_key,
|
|
DECODE (y.aantal,
|
|
NULL, DECODE(verhuurbaar, 1, '[Leegstand]', '[Niet verhuurbaar]'),
|
|
1, SUBSTR (y.sp, 1, 60),
|
|
'Meer dan 1 huurder!'),
|
|
DECODE (y.aantal, NULL, -1, 1, y.sp_key, NULL)
|
|
FROM (SELECT r.alg_ruimte_key, sr.prs_verhuurbaar verhuurbaar
|
|
FROM alg_v_aanwezigruimte r, alg_srtruimte sr
|
|
WHERE r.alg_srtruimte_key = sr.alg_srtruimte_key) 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
|
|
AND a.prs_afdeling_naam <> 'Onbekend'
|
|
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_ruimteafdeling ra
|
|
WHERE ra.prs_ruimteafdeling_verwijder IS NULL
|
|
AND ra.prs_afdeling_key = a.prs_afdeling_key)
|
|
AND a.prs_afdeling_naam <> 'Onbekend';
|
|
|
|
CREATE OR REPLACE TRIGGER stch_t_thema_ruimte_die_i_iu
|
|
INSTEAD OF INSERT OR UPDATE
|
|
ON STCH_V_THEMA_RUIMTE_HUURDER
|
|
DECLARE
|
|
verhuurbaar NUMBER;
|
|
BEGIN
|
|
IF UPDATING -- oude hard weggooien; dus DELETE (lekker opruimen)!
|
|
THEN
|
|
DELETE FROM prs_ruimteafdeling
|
|
WHERE alg_ruimte_key = :new.alg_ruimte_key
|
|
AND prs_afdeling_key <> :new.waarde_key;
|
|
END IF;
|
|
|
|
BEGIN
|
|
SELECT prs_verhuurbaar
|
|
INTO verhuurbaar
|
|
FROM alg_ruimte r, alg_srtruimte sr
|
|
WHERE r.alg_ruimte_key = :new.alg_ruimte_key
|
|
AND r.alg_srtruimte_key = sr.alg_srtruimte_key;
|
|
|
|
IF :new.waarde_key <> -1 AND verhuurbaar = 1
|
|
THEN
|
|
INSERT INTO prs_ruimteafdeling
|
|
(
|
|
alg_ruimte_key, prs_afdeling_key
|
|
)
|
|
VALUES (:new.alg_ruimte_key, :new.waarde_key);
|
|
END IF;
|
|
EXCEPTION
|
|
WHEN DUP_VAL_ON_INDEX -- was al aanwezig
|
|
THEN
|
|
NULL;
|
|
END;
|
|
END;
|
|
/
|
|
|
|
-- views ter ondersteuning aan Facilitor graphics
|
|
-- Niet sleepbaar thema om huurder op hoogste afdelingsniveau te bekijken.
|
|
CREATE OR REPLACE VIEW stch_v_thema_ruimte_huurder1 (
|
|
alg_ruimte_key,
|
|
waarde,
|
|
waarde_key
|
|
)
|
|
AS
|
|
SELECT x.alg_ruimte_key,
|
|
DECODE (y.aantal,
|
|
NULL, DECODE(verhuurbaar, 1, '[Leegstand]', '[Niet verhuurbaar]'),
|
|
1, SUBSTR (y.sp, 1, 60),
|
|
'Meer dan 1 huurder!'),
|
|
DECODE (y.aantal, NULL, -1, 1, y.sp_key, NULL)
|
|
FROM (SELECT r.alg_ruimte_key, sr.prs_verhuurbaar verhuurbaar
|
|
FROM alg_v_aanwezigruimte r, alg_srtruimte sr
|
|
WHERE r.alg_srtruimte_key = sr.alg_srtruimte_key) 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, prs_v_afdeling_boom ab
|
|
WHERE ra.prs_afdeling_key = ab.prs_afdeling_key
|
|
AND ab.prs_afdeling_key1 = a.prs_afdeling_key
|
|
AND a.prs_afdeling_naam <> 'Onbekend'
|
|
GROUP BY ra.alg_ruimte_key) y
|
|
ON x.alg_ruimte_key = y.alg_ruimte_key;
|
|
|
|
-- views ter ondersteuning aan Facilitor graphics
|
|
-- Niet sleepbaar thema om inzicht te krijgen in de leegstand situatie
|
|
CREATE OR REPLACE VIEW stch_v_thema_leegstand (
|
|
alg_ruimte_key,
|
|
waarde,
|
|
waarde_key
|
|
)
|
|
AS
|
|
SELECT x.alg_ruimte_key,
|
|
DECODE (y.aantal,
|
|
NULL, DECODE(verhuurbaar, 1, '[Leegstand]', '[Niet verhuurbaar]'),
|
|
'[Verhuurd]'),
|
|
DECODE (y.aantal, NULL, -1, 1, y.sp_key, NULL)
|
|
FROM (SELECT r.alg_ruimte_key, sr.prs_verhuurbaar verhuurbaar
|
|
FROM alg_v_aanwezigruimte r, alg_srtruimte sr
|
|
WHERE r.alg_srtruimte_key = sr.alg_srtruimte_key) 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, prs_v_afdeling_boom ab
|
|
WHERE ra.prs_afdeling_key = ab.prs_afdeling_key
|
|
AND ab.prs_afdeling_key1 = a.prs_afdeling_key
|
|
AND a.prs_afdeling_naam <> 'Onbekend'
|
|
GROUP BY ra.alg_ruimte_key) y
|
|
ON x.alg_ruimte_key = y.alg_ruimte_key;
|
|
|
|
-- HV views afkomstig uit AASI
|
|
CREATE OR REPLACE VIEW STCH_V_DWH_HV_FREEZE
|
|
(
|
|
KWARTAAL,
|
|
EIGENAAR,
|
|
LOC_CODE,
|
|
GEB_CODE,
|
|
VER_CODE,
|
|
RUIMTE_NR,
|
|
RUIMTESOORT,
|
|
CODE,
|
|
OPP,
|
|
TEKEN_OPP,
|
|
HUURDER_NUMMER,
|
|
HUURDER_NAAM,
|
|
FDC,
|
|
BEZETTING,
|
|
TARIEF_HUUR,
|
|
TARIEF_SERVICE,
|
|
SK_ONDERHOUD,
|
|
SK_UTILITY,
|
|
SK_OVERIG,
|
|
SK_KORTING
|
|
)
|
|
AS
|
|
SELECT kwartaal,
|
|
eigenaar,
|
|
loc_code,
|
|
geb_code,
|
|
ver_code,
|
|
ruimte_nr,
|
|
ruimtesoort,
|
|
code,
|
|
opp,
|
|
teken_opp,
|
|
huurder_nummer,
|
|
huurder_naam,
|
|
fdc,
|
|
bezetting,
|
|
tarief_huur,
|
|
tarief_service,
|
|
sk_onderhoud,
|
|
sk_utility,
|
|
sk_overig,
|
|
sk_korting
|
|
FROM stch_hv_freeze
|
|
WHERE loc_code = 'ON';
|
|
|
|
-- HV nu alleen nog met ONSITE gebouwen
|
|
CREATE OR REPLACE VIEW STCH_V_HV_DETAIL
|
|
(
|
|
EIGENAAR,
|
|
LOC_CODE,
|
|
GEB_CODE,
|
|
VER_CODE,
|
|
RUIMTE_NR,
|
|
RUIMTESOORT,
|
|
CODE,
|
|
VERHUURBAAR,
|
|
OPP,
|
|
TEKEN_OPP,
|
|
DSM_DERDEN,
|
|
DEBITEUR,
|
|
HUURDER_NUMMER,
|
|
HUURDER_NAAM,
|
|
FDC,
|
|
BEZETTING,
|
|
TARIEF_HUUR,
|
|
TARIEF_SERVICE,
|
|
TARIEF_SERVICE2,
|
|
TARIEF_SERVICE3,
|
|
TARIEF_SERVICE4,
|
|
TARIEF_SERVICE5,
|
|
TOTAAL_HUUR,
|
|
TOTAAL_SERVICE,
|
|
HIDE_F_PRS_AFDELING_KEY,
|
|
REMA,
|
|
FM
|
|
)
|
|
AS
|
|
SELECT * FROM
|
|
((SELECT a.eigenaar,
|
|
a.alg_locatie_code,
|
|
a.alg_gebouw_upper,
|
|
a.alg_verdieping_code,
|
|
a.alg_ruimte_nr,
|
|
COALESCE (
|
|
(SELECT fac_usrdata_omschr
|
|
FROM fac_usrdata
|
|
WHERE fac_usrtab_key = 221
|
|
AND b.ruimtesoort LIKE fac_usrdata_code || '%'),
|
|
'onbekend') ruimtesrt,
|
|
b.ruimtesoort,
|
|
verhuurbaar,
|
|
a.opp * d.afd_bez / 100,
|
|
a.opp teken_opp,
|
|
prs_bedrijf_naam dsm_derden,
|
|
debiteur debiteur,
|
|
d.afd_naam,
|
|
d.afd_oms,
|
|
kostenpl fdc,
|
|
d.afd_bez,
|
|
huur m2_huur,
|
|
COALESCE (service2, 0)
|
|
+ COALESCE (service3, 0)
|
|
+ COALESCE (service4, 0)
|
|
+ COALESCE (service5, 0)
|
|
m2_service,
|
|
service2 m2_service2,
|
|
service3 m2_service3,
|
|
service4 m2_service4,
|
|
service5 m2_service5,
|
|
ROUND (a.opp * (d.afd_bez / 100) * huur, 2) tot_huur,
|
|
ROUND (
|
|
a.opp * (d.afd_bez / 100)
|
|
* ( COALESCE (service2, 0)
|
|
+ COALESCE (service3, 0)
|
|
+ COALESCE (service4, 0)
|
|
+ COALESCE (service5, 0)),
|
|
2)
|
|
tot_service,
|
|
d.prs_afdeling_key,
|
|
(SELECT fac_usrdata_omschr rema
|
|
FROM alg_onrgoedkenmerk ogk, fac_usrdata ud
|
|
WHERE ogk.alg_kenmerk_key = 1060
|
|
AND fac.safe_to_number (ogk.alg_onrgoedkenmerk_waarde) =
|
|
ud.fac_usrdata_key
|
|
AND ogk.alg_onrgoed_key = a.alg_gebouw_key)
|
|
rema,
|
|
(SELECT fac_usrdata_omschr fm
|
|
FROM alg_onrgoedkenmerk ogk, fac_usrdata ud
|
|
WHERE ogk.alg_kenmerk_key = 1061
|
|
AND fac.safe_to_number (ogk.alg_onrgoedkenmerk_waarde) =
|
|
ud.fac_usrdata_key
|
|
AND ogk.alg_onrgoed_key = a.alg_gebouw_key)
|
|
fm
|
|
FROM (SELECT (SELECT COALESCE (fac_usrdata_omschr, 'Onbekend')
|
|
FROM alg_onrgoedkenmerk ok, fac_usrdata ud
|
|
WHERE alg_kenmerk_key = 1063
|
|
AND ok.alg_onrgoed_niveau = 'G'
|
|
AND ok.alg_onrgoed_key = rg.alg_gebouw_key
|
|
AND fac.safe_to_number (alg_onrgoedkenmerk_waarde) =
|
|
ud.fac_usrdata_key)
|
|
eigenaar,
|
|
rg.alg_ruimte_key,
|
|
rg.alg_ruimte_nr,
|
|
rg.alg_verdieping_code,
|
|
rg.alg_gebouw_key,
|
|
rg.alg_gebouw_upper,
|
|
rg.alg_locatie_code,
|
|
rg.alg_ruimte_bruto_vloeropp opp,
|
|
srlg.alg_srtruimte_lg_prijs huur,
|
|
srlg.alg_srtruimte_lg_prijs2 service2,
|
|
srlg.alg_srtruimte_lg_prijs3 service3,
|
|
srlg.alg_srtruimte_lg_prijs4 service4,
|
|
srlg.alg_srtruimte_lg_prijs5 service5,
|
|
sr.prs_verhuurbaar verhuurbaar
|
|
FROM (SELECT r.*,
|
|
(SELECT alg_srtruimte_lg_key
|
|
FROM alg_srtruimte_locatiegebouw srlg
|
|
WHERE srlg.alg_gebouw_key = r.alg_gebouw_key
|
|
AND srlg.alg_srtruimte_key =
|
|
r.alg_srtruimte_key)
|
|
alg_srtruimte_lg_key
|
|
FROM alg_v_ruimte_gegevens r) rg,
|
|
alg_srtruimte sr,
|
|
alg_srtruimte_locatiegebouw srlg
|
|
WHERE rg.alg_srtruimte_key = sr.alg_srtruimte_key(+)
|
|
AND rg.alg_srtruimte_lg_key = srlg.alg_srtruimte_lg_key(+))
|
|
a
|
|
LEFT JOIN (SELECT r.alg_ruimte_key,
|
|
COALESCE (sr.alg_srtruimte_omschrijving, '-')
|
|
ruimtesoort
|
|
FROM alg_v_aanwezigruimte r, alg_srtruimte sr
|
|
WHERE r.alg_srtruimte_key = sr.alg_srtruimte_key) b
|
|
ON a.alg_ruimte_key = b.alg_ruimte_key
|
|
LEFT JOIN -- afdeling(en) op ruimte
|
|
(SELECT ra.alg_ruimte_key,
|
|
afd.prs_afdeling_naam afd_naam,
|
|
k.prs_kostenplaats_nr kostenpl,
|
|
afd.prs_afdeling_key,
|
|
afd.prs_afdeling_omschrijving afd_oms,
|
|
ra.prs_ruimteafdeling_bezetting afd_bez,
|
|
a1.prs_afdeling_naam debiteur,
|
|
b.prs_bedrijf_naam
|
|
FROM prs_v_aanwezigruimteafdeling ra,
|
|
prs_afdeling afd
|
|
LEFT JOIN
|
|
prs_kostenplaats k
|
|
ON afd.prs_kostenplaats_key =
|
|
k.prs_kostenplaats_key,
|
|
prs_v_afdeling_boom ab,
|
|
prs_afdeling a1,
|
|
prs_bedrijf b
|
|
WHERE ra.prs_afdeling_key = afd.prs_afdeling_key
|
|
AND afd.prs_afdeling_key = ab.prs_afdeling_key
|
|
AND ab.prs_afdeling_key1 = a1.prs_afdeling_key
|
|
AND ab.prs_bedrijf_key = b.prs_bedrijf_key
|
|
UNION ALL
|
|
SELECT x.alg_ruimte_key,
|
|
NULL afd_naam,
|
|
NULL afd_oms,
|
|
NULL kostenpl,
|
|
NULL prs_afdeling_key,
|
|
(100 - x.rui_bez) afd_bez,
|
|
NULL debiteur,
|
|
NULL prs_bedrijf_naam
|
|
FROM ( SELECT ra.alg_ruimte_key,
|
|
SUM (ra.prs_ruimteafdeling_bezetting)
|
|
rui_bez
|
|
FROM prs_v_aanwezigruimteafdeling ra
|
|
GROUP BY ra.alg_ruimte_key) x
|
|
WHERE x.rui_bez < 100) d
|
|
ON a.alg_ruimte_key = d.alg_ruimte_key)) sub
|
|
WHERE sub.alg_locatie_code = 'ON'
|
|
AND NOT EXISTS
|
|
(SELECT 1
|
|
FROM alg_gebouw ag
|
|
WHERE ag.alg_gebouw_upper = sub.alg_gebouw_upper
|
|
AND ag.alg_gebouw_verwijder IS NOT NULL);
|
|
|
|
CREATE OR REPLACE VIEW STCH_V_HV_ACTUAL
|
|
(
|
|
EIGENAAR,
|
|
LOC_CODE,
|
|
GEB_CODE,
|
|
VER_CODE,
|
|
RUIMTE_NR,
|
|
RUIMTESOORT,
|
|
CODE,
|
|
OPP,
|
|
TEKEN_OPP,
|
|
HUURDER_NUMMER,
|
|
HUURDER_NAAM,
|
|
FDC,
|
|
BEZETTING,
|
|
TARIEF_HUUR,
|
|
TARIEF_SERVICE,
|
|
SK_ONDERHOUD,
|
|
SK_UTILITY,
|
|
SK_OVERIG,
|
|
SK_KORTING,
|
|
TOTAAL_HUUR,
|
|
TOTAAL_SERVICE,
|
|
PRS_AFDELING_KEY
|
|
)
|
|
AS
|
|
SELECT eigenaar,
|
|
loc_code,
|
|
geb_code,
|
|
ver_code,
|
|
ruimte_nr,
|
|
ruimtesoort,
|
|
code,
|
|
opp,
|
|
teken_opp,
|
|
huurder_nummer,
|
|
huurder_naam,
|
|
fdc,
|
|
bezetting,
|
|
tarief_huur,
|
|
tarief_service,
|
|
tarief_service2,
|
|
tarief_service3,
|
|
tarief_service4,
|
|
tarief_service5,
|
|
totaal_huur,
|
|
totaal_service,
|
|
hide_f_prs_afdeling_key
|
|
FROM stch_v_hv_detail
|
|
WHERE verhuurbaar = 1;
|
|
|
|
CREATE OR REPLACE VIEW STCH_V_RAP_AUTH_BESTELLERS
|
|
(
|
|
FCLT_F_NAAM,
|
|
FCLT_F_KOSTENPLAATS,
|
|
FCLT_F_MANDAAT,
|
|
FCLT_F_PROFIEL,
|
|
FCLT_F_AFDELING,
|
|
TELEFOONNUMMER,
|
|
EMAILADRES
|
|
)
|
|
AS
|
|
SELECT prs_perslid_naam_full Naam,
|
|
prs_kostenplaats_nr || ' ' || prs_kostenplaats_omschrijving
|
|
Kostenplaats,
|
|
'Afdeling',
|
|
g.fac_groep_omschrijving Profiel,
|
|
prs_afdeling_omschrijving Afdeling,
|
|
COALESCE (prs_perslid_telefoonnr, prs_perslid_mobiel) Telefoon,
|
|
prs_perslid_email Mail
|
|
FROM prs_v_perslid_fullnames pf,
|
|
fac_gebruikersgroep fg,
|
|
fac_groep g,
|
|
prs_perslid p,
|
|
prs_afdeling a,
|
|
prs_kostenplaats k
|
|
WHERE pf.prs_perslid_key = fg.prs_perslid_key
|
|
AND pf.prs_perslid_key = p.prs_perslid_key
|
|
AND a.prs_afdeling_key = p.prs_afdeling_key
|
|
AND a.prs_kostenplaats_key = k.prs_kostenplaats_key
|
|
AND g.fac_groep_key = fg.fac_groep_key
|
|
AND fg.fac_groep_key IN (621, 681, 2)
|
|
AND p.prs_perslid_upper NOT LIKE 'ARCHIVE%'
|
|
UNION ALL
|
|
SELECT prs_perslid_naam_full Naam,
|
|
prs_kostenplaats_nr || ' ' || prs_kostenplaats_omschrijving
|
|
Kostenplaats,
|
|
'Gemandateerd',
|
|
g.fac_groep_omschrijving Profiel,
|
|
prs_afdeling_omschrijving Afdeling,
|
|
COALESCE (prs_perslid_telefoonnr, prs_perslid_mobiel) Telefoon,
|
|
prs_perslid_email Mail
|
|
FROM prs_v_perslid_fullnames pf,
|
|
fac_gebruikersgroep fg,
|
|
fac_groep g,
|
|
prs_perslid p,
|
|
prs_afdeling a,
|
|
prs_kostenplaats k,
|
|
(SELECT p.prs_perslid_key, k.prs_kostenplaats_key
|
|
FROM prs_perslidkostenplaats pk,
|
|
prs_perslid p,
|
|
prs_kostenplaats k
|
|
WHERE p.prs_perslid_key = pk.prs_perslid_key
|
|
AND k.prs_kostenplaats_key = pk.prs_kostenplaats_key
|
|
AND k.prs_kostenplaats_verwijder IS NULL
|
|
AND p.prs_perslid_verwijder IS NULL) m
|
|
WHERE pf.prs_perslid_key = fg.prs_perslid_key
|
|
AND pf.prs_perslid_key = p.prs_perslid_key
|
|
AND m.prs_perslid_key = p.prs_perslid_key
|
|
AND a.prs_afdeling_key = p.prs_afdeling_key
|
|
AND m.prs_kostenplaats_key = k.prs_kostenplaats_key
|
|
AND g.fac_groep_key = fg.fac_groep_key
|
|
AND fg.fac_groep_key IN (621, 681, 2)
|
|
AND p.prs_perslid_upper NOT LIKE 'ARCHIVE%'
|
|
ORDER BY 1,
|
|
3,
|
|
4,
|
|
2;
|
|
|
|
CREATE OR REPLACE VIEW STCH_V_RAP_HV_ACTUAL
|
|
(
|
|
FCLT_F_EIGENAAR,
|
|
FCLT_F_LOC_CODE,
|
|
FCLT_F_GEB_CODE,
|
|
VER_CODE,
|
|
RUIMTE_NR,
|
|
FCLT_F_RUIMTESOORT,
|
|
FCLT_F_CODE,
|
|
OPP,
|
|
TEKEN_OPP,
|
|
FCLT_F_HUURDER_NUMMER,
|
|
FCLT_F_HUURDER_NAAM,
|
|
FCLT_F_FDC,
|
|
BEZETTING,
|
|
TARIEF_HUUR,
|
|
TARIEF_SERVICE,
|
|
SK_ONDERHOUD,
|
|
SK_UTILITY,
|
|
SK_OVERIG,
|
|
SK_KORTING,
|
|
TOTAAL_HUUR,
|
|
TOTAAL_SERVICE,
|
|
HIDE_F_PRS_AFDELING_KEY
|
|
)
|
|
AS
|
|
SELECT eigenaar,
|
|
loc_code,
|
|
geb_code,
|
|
ver_code,
|
|
ruimte_nr,
|
|
ruimtesoort,
|
|
code,
|
|
opp,
|
|
teken_opp,
|
|
huurder_nummer,
|
|
huurder_naam,
|
|
fdc,
|
|
bezetting,
|
|
TO_CHAR (tarief_huur,
|
|
'999990D99999',
|
|
'NLS_NUMERIC_CHARACTERS = '',.'''),
|
|
TO_CHAR (tarief_service,
|
|
'999990D99999',
|
|
'NLS_NUMERIC_CHARACTERS = '',.'''),
|
|
TO_CHAR (sk_onderhoud,
|
|
'999990D99999',
|
|
'NLS_NUMERIC_CHARACTERS = '',.'''),
|
|
TO_CHAR (sk_utility,
|
|
'999990D99999',
|
|
'NLS_NUMERIC_CHARACTERS = '',.'''),
|
|
TO_CHAR (sk_overig,
|
|
'999990D99999',
|
|
'NLS_NUMERIC_CHARACTERS = '',.'''),
|
|
TO_CHAR (sk_korting,
|
|
'999990D99999',
|
|
'NLS_NUMERIC_CHARACTERS = '',.'''),
|
|
totaal_huur,
|
|
totaal_service,
|
|
prs_afdeling_key
|
|
FROM stch_v_hv_actual;
|
|
|
|
CREATE OR REPLACE VIEW STCH_V_RAP_HV_AFD_TOTALEN
|
|
(
|
|
FCLT_F_EIGENAAR,
|
|
FCLT_F_FDC,
|
|
FCLT_F_HOOFDHUURDER,
|
|
TOTAAL_HUUR,
|
|
TOTAAL_HUUR_MND,
|
|
TOTAAL_SERVICE,
|
|
TOTAAL_SERVICE_MND
|
|
)
|
|
AS
|
|
SELECT v.eigenaar,
|
|
v.fdc,
|
|
a.prs_afdeling_omschrijving,
|
|
ROUND (SUM (v.totaal_huur), 2),
|
|
ROUND ( (SUM (v.totaal_huur) / 12), 2),
|
|
ROUND (SUM (v.totaal_service), 2),
|
|
ROUND ( (SUM (v.totaal_service) / 12), 2)
|
|
FROM stch_v_hv_actual v, prs_v_afdeling_boom ab, prs_v_afdeling a
|
|
WHERE v.prs_afdeling_key = ab.prs_afdeling_key
|
|
AND ab.prs_afdeling_key1 = a.prs_afdeling_key
|
|
GROUP BY v.eigenaar, v.fdc, a.prs_afdeling_omschrijving;
|
|
|
|
CREATE OR REPLACE VIEW STCH_V_RAP_HV_CHECK
|
|
(
|
|
FCLT_F_EIGENAAR,
|
|
FCLT_F_LOC_CODE,
|
|
FCLT_F_GEB_CODE,
|
|
VER_CODE,
|
|
RUIMTE_NR,
|
|
FCLT_F_RUIMTESOORT,
|
|
FCLT_F_CODE,
|
|
OPP,
|
|
TEKEN_OPP,
|
|
FCLT_F_HUURDER_NUMMER,
|
|
FCLT_F_HUURDER_NAAM,
|
|
FCLT_F_FDC,
|
|
BEZETTING,
|
|
FCLT_F_VERHUURBAAR,
|
|
TARIEF_HUUR,
|
|
SK_ONDERHOUD,
|
|
SK_UTILITY,
|
|
SK_OVERIG,
|
|
SK_KORTING,
|
|
TARIEF_SERVICE
|
|
)
|
|
AS
|
|
SELECT eigenaar,
|
|
loc_code,
|
|
geb_code,
|
|
ver_code,
|
|
ruimte_nr,
|
|
ruimtesoort,
|
|
code,
|
|
opp,
|
|
teken_opp,
|
|
huurder_nummer,
|
|
huurder_naam,
|
|
fdc,
|
|
bezetting,
|
|
DECODE (verhuurbaar, 1, 'Ja', 'Nee'),
|
|
TO_CHAR (tarief_huur,
|
|
'999990D99999',
|
|
'NLS_NUMERIC_CHARACTERS = '',.'''),
|
|
TO_CHAR (tarief_service2,
|
|
'999990D99999',
|
|
'NLS_NUMERIC_CHARACTERS = '',.'''),
|
|
TO_CHAR (tarief_service3,
|
|
'999990D99999',
|
|
'NLS_NUMERIC_CHARACTERS = '',.'''),
|
|
TO_CHAR (tarief_service4,
|
|
'999990D99999',
|
|
'NLS_NUMERIC_CHARACTERS = '',.'''),
|
|
TO_CHAR (tarief_service5,
|
|
'999990D99999',
|
|
'NLS_NUMERIC_CHARACTERS = '',.'''),
|
|
TO_CHAR (tarief_service,
|
|
'999990D99999',
|
|
'NLS_NUMERIC_CHARACTERS = '',.''')
|
|
FROM stch_v_hv_detail;
|
|
|
|
CREATE OR REPLACE VIEW STCH_V_RAP_HV_DOORBEL_DELTA
|
|
(
|
|
FCLT_F_LOCATIE,
|
|
FCLT_F_GEBOUW,
|
|
FCLT_F_VERDIEPING,
|
|
FCLT_F_RUIMTE,
|
|
FCLT_F_HUURDER_NUMMER,
|
|
FCLT_F_HUURDER_NAAM,
|
|
M2_NU,
|
|
M2_DELTA
|
|
)
|
|
AS
|
|
(SELECT DISTINCT z.loc,
|
|
z.geb,
|
|
z.verd,
|
|
z.ruimte,
|
|
z.nr,
|
|
z.naam,
|
|
z.m2_actueel,
|
|
z.m2_verschil
|
|
FROM (SELECT COALESCE (x.loc, y.loc) loc,
|
|
COALESCE (x.geb, y.geb) geb,
|
|
COALESCE (x.verd, y.verd) verd,
|
|
COALESCE (x.ruimte, y.ruimte) ruimte,
|
|
COALESCE (x.nr, y.nr) nr,
|
|
DECODE (x.naam,
|
|
COALESCE (y.naam, x.naam), x.naam,
|
|
'***GEWIJZIGD: ' || COALESCE (x.naam, ''))
|
|
naam,
|
|
x.m2 m2_actueel,
|
|
y.m2 m2_laatste,
|
|
(COALESCE (x.m2, 0) - COALESCE (y.m2, 0)) m2_verschil
|
|
FROM (SELECT loc_code loc,
|
|
geb_code geb,
|
|
ver_code verd,
|
|
ruimte_nr ruimte,
|
|
huurder_nummer nr,
|
|
huurder_naam naam,
|
|
opp m2
|
|
FROM stch_v_hv_actual) x
|
|
LEFT JOIN
|
|
(SELECT loc_code loc,
|
|
geb_code geb,
|
|
ver_code verd,
|
|
ruimte_nr ruimte,
|
|
huurder_nummer nr,
|
|
huurder_naam naam,
|
|
opp m2
|
|
FROM stch_hv_freeze
|
|
WHERE TO_CHAR (freeze_datum, 'yyyy-mm-dd') =
|
|
(SELECT TO_CHAR (MAX (freeze_datum),
|
|
'yyyy-mm-dd')
|
|
FROM stch_hv_freeze)) y
|
|
ON x.loc = y.loc
|
|
AND x.geb = y.geb
|
|
AND x.verd = y.verd
|
|
AND x.ruimte = y.ruimte
|
|
AND x.nr = y.nr
|
|
UNION
|
|
SELECT COALESCE (x.loc, y.loc) loc,
|
|
COALESCE (x.geb, y.geb) geb,
|
|
COALESCE (x.verd, y.verd) verd,
|
|
COALESCE (x.ruimte, y.ruimte) ruimte,
|
|
COALESCE (x.nr, y.nr) nr,
|
|
DECODE (y.naam,
|
|
COALESCE (x.naam, y.naam), y.naam,
|
|
'***GEWIJZIGD: ' || COALESCE (x.naam, ''))
|
|
naam,
|
|
x.m2 m2_actueel,
|
|
y.m2 m2_laatste,
|
|
(COALESCE (x.m2, 0) - COALESCE (y.m2, 0)) m2_verschil
|
|
FROM (SELECT loc_code loc,
|
|
geb_code geb,
|
|
ver_code verd,
|
|
ruimte_nr ruimte,
|
|
huurder_nummer nr,
|
|
huurder_naam naam,
|
|
opp m2
|
|
FROM stch_v_hv_actual) x
|
|
RIGHT JOIN
|
|
(SELECT loc_code loc,
|
|
geb_code geb,
|
|
ver_code verd,
|
|
ruimte_nr ruimte,
|
|
huurder_nummer nr,
|
|
huurder_naam naam,
|
|
opp m2
|
|
FROM stch_hv_freeze
|
|
WHERE TO_CHAR (freeze_datum, 'yyyy-mm-dd') =
|
|
(SELECT TO_CHAR (MAX (freeze_datum),
|
|
'yyyy-mm-dd')
|
|
FROM stch_hv_freeze)) y
|
|
ON x.loc = y.loc
|
|
AND x.geb = y.geb
|
|
AND x.verd = y.verd
|
|
AND x.ruimte = y.ruimte
|
|
AND x.nr = y.nr) z
|
|
WHERE m2_verschil <> 0);
|
|
|
|
CREATE OR REPLACE VIEW STCH_V_RAP_HV_FREEZE
|
|
(
|
|
FCLT_F_KWARTAAL,
|
|
FCLT_F_EIGENAAR,
|
|
FCLT_F_LOC_CODE,
|
|
FCLT_F_GEB_CODE,
|
|
VER_CODE,
|
|
RUIMTE_NR,
|
|
FCLT_F_RUIMTESOORT,
|
|
FCLT_F_CODE,
|
|
OPP,
|
|
TEKEN_OPP,
|
|
FCLT_F_HUURDER_NUMMER,
|
|
FCLT_F_HUURDER_NAAM,
|
|
FCLT_F_FDC,
|
|
BEZETTING,
|
|
TARIEF_HUUR,
|
|
SK_ONDERHOUD,
|
|
SK_UTILITY,
|
|
SK_OVERIG,
|
|
SK_KORTING,
|
|
TARIEF_SERVICE
|
|
)
|
|
AS
|
|
SELECT kwartaal,
|
|
eigenaar,
|
|
loc_code,
|
|
geb_code,
|
|
ver_code,
|
|
ruimte_nr,
|
|
ruimtesoort,
|
|
code,
|
|
opp,
|
|
teken_opp,
|
|
huurder_nummer,
|
|
huurder_naam,
|
|
fdc,
|
|
bezetting,
|
|
TO_CHAR (tarief_huur,
|
|
'999990D99999',
|
|
'NLS_NUMERIC_CHARACTERS = '',.'''),
|
|
TO_CHAR (sk_onderhoud,
|
|
'999990D99999',
|
|
'NLS_NUMERIC_CHARACTERS = '',.'''),
|
|
TO_CHAR (sk_utility,
|
|
'999990D99999',
|
|
'NLS_NUMERIC_CHARACTERS = '',.'''),
|
|
TO_CHAR (sk_overig,
|
|
'999990D99999',
|
|
'NLS_NUMERIC_CHARACTERS = '',.'''),
|
|
TO_CHAR (sk_korting,
|
|
'999990D99999',
|
|
'NLS_NUMERIC_CHARACTERS = '',.'''),
|
|
TO_CHAR (tarief_service,
|
|
'999990D99999',
|
|
'NLS_NUMERIC_CHARACTERS = '',.''')
|
|
FROM stch_hv_freeze
|
|
WHERE loc_code = 'ON';
|
|
|
|
CREATE OR REPLACE VIEW STCH_V_RAP_OFFERTE_STATUS
|
|
(
|
|
OPDRACHT_KEY,
|
|
OPDRACHT_NUMMER,
|
|
OPDRACHT_REGIO,
|
|
OPDRACHT_DISTRICT,
|
|
OPDRACHT_LOCATIE_CODE,
|
|
OPDRACHT_LOCATIE,
|
|
OPDRACHT_LOCATIEPLAATS,
|
|
FCLT_3D_LOCATIE_KEY,
|
|
OPDRACHT_GEBOUWCODE,
|
|
OPDRACHT_GEBOUW,
|
|
OPDRACHT_VERDIEPING,
|
|
OPDRACHT_RUIMTENR,
|
|
OPDRACHT_RUIMTE,
|
|
OPDRACHT_KOSTENPLAATS,
|
|
OPDRACHT_KOSTENPLAATS_OMS,
|
|
MELDING_KEY,
|
|
OPDRACHT_TYPE,
|
|
OPDRACHT_VOLGNUMMER,
|
|
OPDRACHT_STATUS,
|
|
OPDRACHT_DUUR_GEPLAND,
|
|
OPDRACHT_DATUM,
|
|
OPDRACHT_EINDDATUM,
|
|
OPDRACHT_PLANDATUM,
|
|
OPDRACHT_ACCEPTDATUM,
|
|
OPDRACHT_AFGEMELD,
|
|
OPDRACHT_DOORLOOPTIJD,
|
|
OPDRACHT_ACCEPTTIJD,
|
|
OPDRACHT_OMSCHRIJVING,
|
|
OPDRACHT_OPMERKING,
|
|
OPDRACHT_UITVOERENDE,
|
|
OPDRACHT_BEHANDELAAR,
|
|
OPDRACHT_CONTRACT,
|
|
OPDRACHT_CONTRACT_VERSIE,
|
|
OPDRACHT_CONTACTPERSOON,
|
|
OPDRACHT_UREN,
|
|
OPDRACHT_CORRECTIE,
|
|
OPDRACHT_MATERIAAL,
|
|
OPDRACHT_UURTARIEF,
|
|
OPDRACHT_KOSTEN,
|
|
OPDRACHT_GEBOUW_VERANTW_KEY,
|
|
KOSTENSOORT,
|
|
SUBPRODUCTGROEPGROEP,
|
|
OFFERTE_STATUS
|
|
)
|
|
AS
|
|
SELECT u."OPDRACHT_KEY",
|
|
u."OPDRACHT_NUMMER",
|
|
u."OPDRACHT_REGIO",
|
|
u."OPDRACHT_DISTRICT",
|
|
u."OPDRACHT_LOCATIE_CODE",
|
|
u."OPDRACHT_LOCATIE",
|
|
u."OPDRACHT_LOCATIEPLAATS",
|
|
u."FCLT_3D_LOCATIE_KEY",
|
|
u."OPDRACHT_GEBOUWCODE",
|
|
u."OPDRACHT_GEBOUW",
|
|
u."OPDRACHT_VERDIEPING",
|
|
u."OPDRACHT_RUIMTENR",
|
|
u."OPDRACHT_RUIMTE",
|
|
u."OPDRACHT_KOSTENPLAATS",
|
|
u."OPDRACHT_KOSTENPLAATS_OMS",
|
|
u."MELDING_KEY",
|
|
u."OPDRACHT_TYPE",
|
|
u."OPDRACHT_VOLGNUMMER",
|
|
u."OPDRACHT_STATUS",
|
|
u."OPDRACHT_DUUR_GEPLAND",
|
|
u."OPDRACHT_DATUM",
|
|
u."OPDRACHT_EINDDATUM",
|
|
u."OPDRACHT_PLANDATUM",
|
|
u."OPDRACHT_ACCEPTDATUM",
|
|
u."OPDRACHT_AFGEMELD",
|
|
u."OPDRACHT_DOORLOOPTIJD",
|
|
u."OPDRACHT_ACCEPTTIJD",
|
|
u."OPDRACHT_OMSCHRIJVING",
|
|
u."OPDRACHT_OPMERKING",
|
|
u."OPDRACHT_UITVOERENDE",
|
|
u."OPDRACHT_BEHANDELAAR",
|
|
u."OPDRACHT_CONTRACT",
|
|
u."OPDRACHT_CONTRACT_VERSIE",
|
|
u."OPDRACHT_CONTACTPERSOON",
|
|
u."OPDRACHT_UREN",
|
|
u."OPDRACHT_CORRECTIE",
|
|
u."OPDRACHT_MATERIAAL",
|
|
u."OPDRACHT_UURTARIEF",
|
|
u."OPDRACHT_KOSTEN",
|
|
g.prs_perslid_key_verantw opdracht_gebouw_verantw_key,
|
|
m.kostensoort kostensoort,
|
|
subproductgroepgroep,
|
|
DECODE (
|
|
COALESCE (na.aantal, 0),
|
|
1,
|
|
'Offerte geaccepteerd',
|
|
DECODE (COALESCE (nta.aantal, 0),
|
|
0, 'Niet opgelost',
|
|
'Offerte acceptatie'))
|
|
offerte_status
|
|
FROM mld_v_udr_opdracht u,
|
|
alg_gebouw g,
|
|
mld_v_udr_melding m,
|
|
( SELECT o.mld_melding_key, COUNT (o.mld_statusopdr_key) aantal
|
|
FROM mld_opdr o
|
|
WHERE o.mld_statusopdr_key = 6
|
|
AND o.mld_opdr_key >
|
|
COALESCE (
|
|
(SELECT MAX (o1.mld_opdr_key)
|
|
FROM mld_opdr o1, mld_typeopdr mo1
|
|
WHERE o1.mld_typeopdr_key = mo1.mld_typeopdr_key
|
|
AND mo1.mld_typeopdr_isofferte = 0
|
|
AND o1.mld_melding_key = o.mld_melding_key),
|
|
0)
|
|
GROUP BY o.mld_melding_key) nta,
|
|
( SELECT o.mld_melding_key, COUNT (o.mld_statusopdr_key) aantal
|
|
FROM mld_opdr o
|
|
WHERE o.mld_statusopdr_key = 9
|
|
AND o.mld_opdr_key >
|
|
COALESCE (
|
|
(SELECT MAX (o1.mld_opdr_key)
|
|
FROM mld_opdr o1, mld_typeopdr mo1
|
|
WHERE o1.mld_typeopdr_key = mo1.mld_typeopdr_key
|
|
AND mo1.mld_typeopdr_isofferte = 0
|
|
AND o1.mld_melding_key = o.mld_melding_key),
|
|
0)
|
|
GROUP BY o.mld_melding_key) na
|
|
WHERE u.opdracht_gebouwcode = g.alg_gebouw_code
|
|
AND u.melding_key = m.melding_key
|
|
AND u.melding_key = na.mld_melding_key(+)
|
|
AND u.melding_key = nta.mld_melding_key(+)
|
|
AND u.opdracht_type = 'RFQ';
|
|
|
|
CREATE OR REPLACE VIEW stch_v_rap_gebouwbezetting
|
|
(
|
|
alg_gebouw_key,
|
|
alg_gebouw_omschrijving,
|
|
prs_afdeling_key,
|
|
prs_afdeling_omschrijving,
|
|
m2,
|
|
totaal_m2,
|
|
perc_v_totaal,
|
|
perc_formatted
|
|
)
|
|
AS
|
|
SELECT g.alg_gebouw_key,
|
|
g.alg_gebouw_omschrijving,
|
|
pa.prs_afdeling_key,
|
|
pa.prs_afdeling_omschrijving,
|
|
SUM (r.alg_ruimte_bruto_vloeropp) m2,
|
|
x.bezet totaal_m2,
|
|
ROUND ((SUM (r.alg_ruimte_bruto_vloeropp) / x.bezet) * 100, 2) perc_v_totaal,
|
|
ROUND (SUM (r.alg_ruimte_bruto_vloeropp) / x.bezet, 3)
|
|
FROM prs_ruimteafdeling pr,
|
|
prs_afdeling pa,
|
|
alg_ruimte r,
|
|
alg_verdieping v,
|
|
alg_gebouw g,
|
|
( SELECT g.alg_gebouw_key, SUM (r.alg_ruimte_bruto_vloeropp) bezet
|
|
FROM prs_ruimteafdeling pr,
|
|
alg_ruimte r,
|
|
alg_verdieping v,
|
|
alg_gebouw g
|
|
WHERE pr.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_gebouw_verwijder IS NULL
|
|
AND pr.prs_ruimteafdeling_verwijder IS NULL
|
|
AND r.alg_ruimte_bruto_vloeropp > 0
|
|
AND g.alg_gebouw_vervaldatum IS NULL
|
|
GROUP BY g.alg_gebouw_key) x
|
|
WHERE pr.alg_ruimte_key = r.alg_ruimte_key
|
|
AND pr.prs_afdeling_key = pa.prs_afdeling_key
|
|
AND r.alg_verdieping_key = v.alg_verdieping_key
|
|
AND v.alg_gebouw_key = g.alg_gebouw_key
|
|
AND g.alg_gebouw_key = x.alg_gebouw_key
|
|
AND g.alg_gebouw_verwijder IS NULL
|
|
AND pr.prs_ruimteafdeling_verwijder IS NULL
|
|
GROUP BY g.alg_gebouw_key,
|
|
g.alg_gebouw_omschrijving,
|
|
pa.prs_afdeling_key,
|
|
pa.prs_afdeling_omschrijving,
|
|
x.bezet;
|
|
|
|
CREATE OR REPLACE VIEW stch_v_rap_facturatie
|
|
(
|
|
NUMMER,
|
|
NUMMER_EXTERN,
|
|
VERSIE,
|
|
OMSCHRIJVING,
|
|
GEBOUW_KEY,
|
|
GEBOUW_OMSCHRIJVING,
|
|
AFDELING_KEY,
|
|
AFDELING_OMSHCRIJVING,
|
|
KENMERK,
|
|
WAARDE_C,
|
|
WAARDE_N,
|
|
WAARDE_D,
|
|
WAARDE_X
|
|
)
|
|
AS
|
|
SELECT DISTINCT c.cnt_contract_nummer_intern,
|
|
c.cnt_contract_nummer,
|
|
c.cnt_contract_versie,
|
|
c.cnt_contract_omschrijving,
|
|
g.alg_gebouw_key,
|
|
g.alg_gebouw_omschrijving,
|
|
c.prs_afdeling_key_eig,
|
|
pa.prs_afdeling_omschrijving,
|
|
COALESCE (
|
|
lcl.x ('cnt_kenmerk_omschrijving',
|
|
k.cnt_kenmerk_key,
|
|
k.cnt_kenmerk_omschrijving),
|
|
lcl.x ('cnt_srtkenmerk_omschrijving',
|
|
skm.cnt_srtkenmerk_key,
|
|
cnt_srtkenmerk_omschrijving)) kenmerk,
|
|
CASE
|
|
WHEN skm.cnt_srtkenmerk_kenmerktype = 'R'
|
|
OR skm.cnt_srtkenmerk_kenmerktype = 'S'
|
|
THEN
|
|
flx.getdomeinwaarde (skm.fac_kenmerkdomein_key,
|
|
km.cnt_kenmerkcontract_waarde)
|
|
WHEN skm.cnt_srtkenmerk_kenmerktype = 'C'
|
|
OR skm.cnt_srtkenmerk_kenmerktype = 'F'
|
|
THEN
|
|
km.cnt_kenmerkcontract_waarde
|
|
ELSE
|
|
NULL
|
|
END waarde_c,
|
|
CASE
|
|
WHEN skm.cnt_srtkenmerk_kenmerktype = 'N'
|
|
OR skm.cnt_srtkenmerk_kenmerktype = 'B'
|
|
THEN
|
|
TO_NUMBER (km.cnt_kenmerkcontract_waarde)
|
|
ELSE
|
|
TO_NUMBER (NULL)
|
|
END waarde_n,
|
|
CASE
|
|
WHEN skm.cnt_srtkenmerk_kenmerktype = 'D'
|
|
THEN
|
|
TO_DATE (km.cnt_kenmerkcontract_waarde, 'DD-MM-YYYY')
|
|
ELSE
|
|
TO_DATE (NULL)
|
|
END waarde_d,
|
|
CASE
|
|
WHEN skm.cnt_srtkenmerk_kenmerktype IN ('R', 'S')
|
|
THEN
|
|
flx.getdomeinwaarde (skm.fac_kenmerkdomein_key,
|
|
km.cnt_kenmerkcontract_waarde)
|
|
ELSE
|
|
km.cnt_kenmerkcontract_waarde
|
|
END waarde_x
|
|
FROM cnt_v_aanwezigcontract c,
|
|
cnt_contract_plaats cp,
|
|
cnt_kenmerkcontract km,
|
|
cnt_kenmerk k,
|
|
cnt_srtkenmerk skm,
|
|
alg_gebouw g,
|
|
prs_afdeling pa
|
|
WHERE c.ins_discipline_key = 3161 -- Facturatie
|
|
AND c.cnt_contract_key = cp.cnt_contract_key
|
|
AND cp.cnt_alg_plaats_code = 'G' -- Het gaat altijd om contracten op gebouwniveau
|
|
AND cp.cnt_alg_plaats_key = g.alg_gebouw_key
|
|
AND c.prs_afdeling_key_eig = pa.prs_afdeling_key
|
|
AND km.cnt_contract_key(+) = c.cnt_contract_key
|
|
AND km.cnt_kenmerkcontract_verwijder IS NULL
|
|
AND k.cnt_kenmerk_verwijder IS NULL
|
|
AND k.cnt_kenmerk_key BETWEEN 242 AND 263 -- Kenmerken waar de bedragen in staan
|
|
AND skm.cnt_srtkenmerk_verwijder IS NULL
|
|
AND km.cnt_kenmerk_key(+) = k.cnt_kenmerk_key
|
|
AND k.cnt_srtkenmerk_key = skm.cnt_srtkenmerk_key;
|
|
|
|
CREATE OR REPLACE VIEW stch_v_rap_gebouwkenmerk
|
|
(
|
|
gebouw_key,
|
|
kenmerk,
|
|
kenmerk_waarde
|
|
)
|
|
AS
|
|
SELECT g.alg_gebouw_key,
|
|
ak.alg_kenmerk_omschrijving,
|
|
fac.safe_to_number (oak.alg_onrgoedkenmerk_waarde)
|
|
FROM alg_gebouw g, alg_kenmerk ak, alg_onrgoedkenmerk oak
|
|
WHERE oak.alg_kenmerk_key = ak.alg_kenmerk_key
|
|
AND oak.alg_onrgoed_key = alg_gebouw_key
|
|
AND oak.alg_onrgoed_niveau = 'G'
|
|
AND ak.alg_kenmerk_key BETWEEN 1281 AND 1302;
|
|
|
|
CREATE OR REPLACE VIEW stch_v_rap_faturatieoverzicht
|
|
(
|
|
bedrijf,
|
|
bezettingspercentage,
|
|
gebouw,
|
|
kenmerk,
|
|
kenmerk_waarde,
|
|
soort_bedrag
|
|
)
|
|
AS
|
|
SELECT gb.prs_afdeling_omschrijving,
|
|
gb.perc_v_totaal,
|
|
gb.alg_gebouw_omschrijving,
|
|
gk.kenmerk,
|
|
COALESCE (f.waarde_n, (gk.kenmerk_waarde * gb.perc_formatted))
|
|
bedrag,
|
|
CASE
|
|
WHEN f.waarde_n IS NOT NULL THEN 'Contract'
|
|
ELSE 'Standaard'
|
|
END
|
|
CASE
|
|
FROM stch_v_rap_facturatie f,
|
|
stch_v_rap_gebouwkenmerk gk,
|
|
stch_v_rap_gebouwbezetting gb
|
|
WHERE gb.alg_gebouw_key = gk.gebouw_key
|
|
AND gb.alg_gebouw_key = f.gebouw_key(+)
|
|
AND gb.prs_afdeling_key = f.afdeling_key(+)
|
|
AND gk.kenmerk = f.kenmerk(+);
|
|
|
|
-- Taken rapportage
|
|
CREATE OR REPLACE VIEW stch_v_rap_deelinspect
|
|
(
|
|
deel_key,
|
|
discipline,
|
|
soort,
|
|
groep,
|
|
soortcode,
|
|
omschrijving,
|
|
plaatseigenaar,
|
|
plaatseigenaartype,
|
|
plaatsaanduiding,
|
|
eigenaar,
|
|
eigenaar_key,
|
|
opmerking,
|
|
regio,
|
|
district,
|
|
locatie_code,
|
|
locatie_omschrijving,
|
|
locatie_plaats,
|
|
gebouwcode,
|
|
gebouw,
|
|
terreinsectorcode,
|
|
terreinsector,
|
|
verdiepingcode,
|
|
ruimtenr,
|
|
werkplekvolgnr,
|
|
werkplek,
|
|
uitleenbaar,
|
|
uitgeleend,
|
|
res_opmerking,
|
|
beheerder,
|
|
vervaldatum,
|
|
actief,
|
|
aantal,
|
|
state,
|
|
statedate,
|
|
fclt_3d_discipline_key,
|
|
fclt_3d_afdeling_key,
|
|
fclt_3d_locatie_key,
|
|
ins_deelsrtcontrole_key,
|
|
ins_srtcontrole_key,
|
|
srtcontrole_omschrijving,
|
|
ins_deelsrtcontrole_datum,
|
|
controlemode_omschrijving,
|
|
ins_deelsrtcontrole_opmerking,
|
|
perslid,
|
|
ins_deelsrtcontrole_datum_org,
|
|
ins_deelsrtcontrole_plandatum,
|
|
deelsrtcontrole_status
|
|
)
|
|
AS
|
|
SELECT deel_key,
|
|
discipline,
|
|
soort,
|
|
groep,
|
|
soortcode,
|
|
omschrijving,
|
|
plaatseigenaar,
|
|
plaatseigenaartype,
|
|
plaatsaanduiding,
|
|
eigenaar,
|
|
eigenaar_key,
|
|
opmerking,
|
|
regio,
|
|
district,
|
|
locatie_code,
|
|
locatie_omschrijving,
|
|
locatie_plaats,
|
|
gebouwcode,
|
|
gebouw,
|
|
terreinsectorcode,
|
|
terreinsector,
|
|
verdiepingcode,
|
|
ruimtenr,
|
|
werkplekvolgnr,
|
|
werkplek,
|
|
uitleenbaar,
|
|
uitgeleend,
|
|
res_opmerking,
|
|
beheerder,
|
|
vervaldatum,
|
|
actief,
|
|
aantal,
|
|
state,
|
|
statedate,
|
|
fclt_3d_discipline_key,
|
|
fclt_3d_afdeling_key,
|
|
fclt_3d_locatie_key,
|
|
ins_deelsrtcontrole_key,
|
|
ins_srtcontrole_key,
|
|
srtcontrole_omschrijving,
|
|
ins_deelsrtcontrole_datum,
|
|
controlemode_omschrijving,
|
|
ins_deelsrtcontrole_opmerking,
|
|
perslid,
|
|
ins_deelsrtcontrole_datum_org,
|
|
ins_deelsrtcontrole_plandatum,
|
|
deelsrtcontrole_status
|
|
FROM ins_v_udr_deelinspect
|
|
UNION ALL
|
|
SELECT ud.deel_key,
|
|
ud.discipline,
|
|
ud.soort,
|
|
ud.groep,
|
|
ud.soortcode,
|
|
ud.omschrijving,
|
|
ud.plaatseigenaar,
|
|
ud.plaatseigenaartype,
|
|
ud.plaatsaanduiding,
|
|
ud.eigenaar,
|
|
ud.eigenaar_key,
|
|
ud.opmerking,
|
|
ud.regio,
|
|
ud.district,
|
|
ud.locatie_code,
|
|
ud.locatie_omschrijving,
|
|
ud.locatie_plaats,
|
|
ud.gebouwcode,
|
|
ud.gebouw,
|
|
ud.terreinsectorcode,
|
|
ud.terreinsector,
|
|
ud.verdiepingcode,
|
|
ud.ruimtenr,
|
|
ud.werkplekvolgnr,
|
|
ud.werkplek,
|
|
ud.uitleenbaar,
|
|
ud.uitgeleend,
|
|
ud.res_opmerking,
|
|
ud.beheerder,
|
|
ud.vervaldatum,
|
|
ud.actief,
|
|
ud.aantal,
|
|
ud.state,
|
|
ud.statedate,
|
|
ud.fclt_3d_discipline_key,
|
|
ud.fclt_3d_afdeling_key,
|
|
ud.fclt_3d_locatie_key,
|
|
NULL,
|
|
sc.ins_srtcontrole_key,
|
|
sc.ins_srtcontrole_omschrijving,
|
|
NULL,
|
|
'Nog niet gepland',
|
|
NULL,
|
|
NULL,
|
|
NULL,
|
|
fac.nextcyclusdatedeel (d.ins_deel_key, sc.ins_srtcontrole_key),
|
|
NULL
|
|
FROM ins_v_udr_deel ud,
|
|
ins_deel d,
|
|
ins_srtdeel sd,
|
|
ins_srtgroep sg,
|
|
ins_tab_discipline disc,
|
|
ins_srtcontrole sc
|
|
WHERE d.ins_deel_key = ud.deel_key
|
|
AND sd.ins_srtdeel_key = d.ins_srtdeel_key
|
|
AND sg.ins_srtgroep_key = sd.ins_srtgroep_key
|
|
AND disc.ins_discipline_key = sg.ins_discipline_key
|
|
AND ( (sd.ins_srtdeel_key = sc.ins_srtinstallatie_key
|
|
AND ins_srtcontrole_niveau = 'S')
|
|
OR (sg.ins_srtgroep_key = sc.ins_srtinstallatie_key
|
|
AND ins_srtcontrole_niveau = 'G')
|
|
OR (disc.ins_discipline_key = sc.ins_srtinstallatie_key
|
|
AND ins_srtcontrole_niveau = 'D'));
|
|
|
|
|
|
-- Notificaties obv periodieke taken naar objectbeheerders
|
|
CREATE OR REPLACE VIEW stch_v_rap_ctrbeh
|
|
(
|
|
plaats,
|
|
gebouw,
|
|
verdieping,
|
|
ruimte,
|
|
discipline,
|
|
objectgroep,
|
|
objectsoort,
|
|
deel_key,
|
|
objectomschrijving,
|
|
plandatum,
|
|
extra_key,
|
|
taakomschrijving,
|
|
status,
|
|
beheerder_key,
|
|
beheerder_email
|
|
)
|
|
AS
|
|
SELECT di.locatie_plaats,
|
|
di.gebouw,
|
|
di.verdiepingcode,
|
|
di.ruimtenr,
|
|
di.discipline,
|
|
di.groep,
|
|
di.soort,
|
|
di.deel_key,
|
|
di.omschrijving,
|
|
TRUNC (di.ins_deelsrtcontrole_plandatum),
|
|
dsc.ins_deelsrtcontrole_key,
|
|
di.srtcontrole_omschrijving,
|
|
di.deelsrtcontrole_status,
|
|
p.prs_perslid_key,
|
|
p.prs_perslid_email
|
|
FROM stch_v_rap_deelinspect di,
|
|
ins_deel d,
|
|
prs_perslid p,
|
|
ins_deelsrtcontrole dsc,
|
|
ins_tab_discipline disc,
|
|
fac_usrtab ut,
|
|
fac_usrdata ud
|
|
WHERE di.ins_deelsrtcontrole_datum IS NULL
|
|
AND (di.vervaldatum > SYSDATE OR di.vervaldatum IS NULL)
|
|
AND d.prs_perslid_key_beh = p.prs_perslid_key(+)
|
|
AND d.ins_deel_key = di.deel_key
|
|
AND dsc.ins_deelsrtcontrole_key = di.ins_deelsrtcontrole_key
|
|
AND d.ins_discipline_key = disc.ins_discipline_key
|
|
AND UPPER (ut.fac_usrtab_naam) = 'NOTI_CUST11'
|
|
AND ut.fac_usrtab_verwijder IS NULL
|
|
AND ut.fac_usrtab_key = ud.fac_usrtab_key
|
|
AND fac.safe_to_number (ud.fac_usrdata_code) = d.ins_discipline_key
|
|
ORDER BY di.ins_deelsrtcontrole_datum,
|
|
TRUNC (di.ins_deelsrtcontrole_plandatum),
|
|
di.controlemode_omschrijving,
|
|
p.prs_perslid_email;
|
|
|
|
-- STCH#87363 QR-code rapportage
|
|
CREATE OR REPLACE VIEW stch_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,
|
|
sm.mld_stdmelding_key mld_key,
|
|
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);
|
|
|
|
--Notificaties obv periodieke taken naar objectbeheerders
|
|
CREATE OR REPLACE VIEW stch_v_noti_ctrbeh_wk
|
|
(
|
|
code,
|
|
sender,
|
|
receiver,
|
|
text,
|
|
key,
|
|
xkey
|
|
)
|
|
AS
|
|
SELECT DISTINCT
|
|
'CUST11' AS code,
|
|
NULL,
|
|
beheerder_key,
|
|
'Herinnering: '
|
|
|| discipline
|
|
|| ' - '
|
|
|| objectgroep
|
|
|| ' - '
|
|
|| taakomschrijving
|
|
|| ', dient uiterlijk '
|
|
|| TO_CHAR (plandatum, 'DD-MM-YYYY')
|
|
|| ' te worden afgehandeld',
|
|
(SELECT fac_usrrap_key
|
|
FROM fac_usrrap
|
|
WHERE UPPER (fac_usrrap_code) = 'STCH_V_RAP_CTRBEH')
|
|
rapportnr,
|
|
extra_key
|
|
FROM stch_v_rap_ctrbeh
|
|
WHERE TRUNC (plandatum) = TRUNC (SYSDATE) + 7;
|
|
|
|
|
|
-- Opdracht ook via mail naar interne mailbox wanneer verstuurd aan een technische leverancier.
|
|
CREATE OR REPLACE VIEW stch_v_noti_opdracht
|
|
(
|
|
code,
|
|
sender,
|
|
receiver,
|
|
text,
|
|
key,
|
|
xkey,
|
|
xsender,
|
|
xemail,
|
|
xmobile,
|
|
attachments
|
|
)
|
|
AS
|
|
SELECT 'ORDSNT', -- Opdracht verzonden naar leverancier
|
|
NULL,
|
|
NULL,
|
|
'Opdracht met nummer '|| TO_CHAR (o.mld_melding_key) || '/' || o.mld_opdr_bedrijfopdr_volgnr || 'is verzonden naar ' || b.prs_bedrijf_naam,
|
|
o.mld_opdr_key,
|
|
NULL,
|
|
NULL,
|
|
'werkvergunningen.facility@sitech.nl',
|
|
NULL,
|
|
NULL
|
|
FROM mld_opdr o, fac_tracking t, prs_bedrijf b, fac_usrdata f
|
|
WHERE o.mld_opdr_key = t.fac_tracking_refkey
|
|
AND o.mld_uitvoerende_keys = b.prs_bedrijf_key
|
|
AND f.fac_usrtab_key = 661
|
|
AND f.fac_usrdata_code = b.prs_bedrijf_key
|
|
AND t.fac_srtnotificatie_key = 131 -- ORDSNT
|
|
AND t.fac_tracking_datum BETWEEN (SELECT fac_notificatie_job_nextrun
|
|
- fac_notificatie_job_interval
|
|
/ 24
|
|
FROM fac_notificatie_job
|
|
WHERE UPPER(fac_notificatie_job_view) =
|
|
'STCH_V_NOTI_OPDRACHT')
|
|
AND (SELECT fac_notificatie_job_nextrun
|
|
FROM fac_notificatie_job
|
|
WHERE UPPER(fac_notificatie_job_view) =
|
|
'STCH_V_NOTI_OPDRACHT');
|
|
|
|
------ 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 |