Files
Customer/STCH/stch.sql
Robin Stoker db0ddd3160 STCH#61702 -- Strukton koppeling ondersteuning voor fiatteren in Focus
svn path=/Customer/trunk/; revision=48172
2020-09-15 12:56:46 +00:00

2028 lines
72 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;
WHENEVER SQLERROR EXIT;
SELECT adm.scriptspoolfile('&dbuser', '&thisfile') AS fcltlogfile FROM DUAL;
WHENEVER SQLERROR CONTINUE;
SPOOL &fcltlogfile
SET DEFINE OFF
------ payload begin ------
CREATE OR REPLACE VIEW 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;
CREATE OR REPLACE VIEW stch_v_rap_sapchecklist
(
MLD_OPDR_KEY,
CONTRACT_NUMMER,
EXTERN_NUMMER,
UITVOERENDE,
BEDRAG,
KOSTENPLAATS,
KOSTENPLAATS_CODE,
OPDRACHTNR,
GOEDGEKEURD,
OPDRACHT_AFGEROND
)
AS
SELECT mo.mld_opdr_key,
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,
DECODE (sub.mld_kenmerkopdr_waarde, '143', 'Nee', 'Leeg'),
mld.getopdrachtstatusdate (mo.mld_opdr_key, 9)
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,
(SELECT mld_opdr_key, mld_kenmerkopdr_waarde
FROM mld_kenmerkopdr
WHERE mld_kenmerk_key IN (1621, 1641, 1642)) sub
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 = sub.mld_opdr_key(+)
AND TRUNC (mld.getopdrachtstatusdate (mo.mld_opdr_key, 9)) >
TRUNC (SYSDATE - 365)
AND mo.mld_opdr_kosten IS NOT NULL
AND mo.mld_opdr_kosten NOT LIKE '0'
AND NOT EXISTS
(SELECT 1
FROM mld_kenmerkopdr
WHERE mld_opdr_key = mo.mld_opdr_key
AND mld_kenmerk_key IN (1621, 1641, 1642)
AND mld_kenmerkopdr_waarde LIKE '%142%');
CREATE OR REPLACE VIEW stch_v_export_sap
(
result,
result_order
)
AS
SELECT '"PO Nummer"'
|| ';"opdrachtnummer"'
|| ';"kostenplaats"'
|| ';"kostenplaatscode"'
|| ';"bedrag"'
|| ';"uitvoerende"',
0
FROM DUAL
UNION ALL
SELECT '"'
|| extern_nummer
|| '";"'
|| opdrachtnr
|| '";"'
|| kostenplaats
|| '";"'
|| kostenplaats_code
|| '";"'
|| bedrag
|| '";"'
|| uitvoerende
|| '"',
1
FROM stch_v_rap_opdrkosten;
CREATE OR REPLACE VIEW stch_v_export_sap_xml
(
result,
result_order
)
AS
SELECT '<?xml version="1.0" encoding="UTF-8"?>', 0 FROM DUAL
UNION ALL
SELECT '<ns0:MT_SES xmlns:ns0="http://sitech.nl/FACILITOR/ServiceEntrySheet">', 1 FROM DUAL
UNION ALL
SELECT '<SES>'
|| '<Ordernr>'
|| SUBSTR (extern_nummer, 1, 10)
|| '</Ordernr>'
|| '<Order_pos>'
|| SUBSTR (contract_nummer, -4, INSTR (contract_nummer, '-') - 1)
|| '</Order_pos>'
|| '<Text_hdr>'
|| uitvoerende
|| '</Text_hdr>'
|| '<Text_line>'
|| kostenplaats_code
|| '_'
|| opdrachtnr
|| '</Text_line>'
|| '<Quantity>1</Quantity>'
|| '<Unit>AU</Unit>'
|| '<Price_gross>'
|| bedrag
|| '</Price_gross>'
|| '</SES>',
2
FROM stch_v_rap_opdrkosten
UNION ALL
SELECT '</ns0:MT_SES>', 3 FROM DUAL;
-- 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';
-- 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