Files
Customer/AA/AANS/aans.sql
Arthur Egberink 862e9a160f AANS#30819 -- aanpassing berekening VVO
svn path=/Customer/trunk/; revision=23544
2014-12-03 12:13:48 +00:00

3140 lines
118 KiB
SQL

-- Script containing customer specific configuration sql statements for AANS: Nederlandse Spoorwegen (via AA)
-- (c) 2009 SG|facilitor
-- $Revision$
-- $Id$
--
-- Support: +31 53 4800710
@aaxx.sql;
SPOOL xAANS.LST
SET ECHO ON
-- script om dagelijks terugkerende scripts aan te roepen.
CREATE OR REPLACE PROCEDURE aans_select_daily_task (p_applname IN VARCHAR2, p_applrun IN VARCHAR2)
AS
BEGIN
aaxx_daily_task (p_applname, p_applrun);
END;
/
-- budgettracker overrules
CREATE OR REPLACE VIEW aans_v_export_budget_tracker (RESULT, result_order) AS SELECT RESULT, result_order FROM aaxx_v_export_budget_tracker;
-- export overrules
-- exact
CREATE OR REPLACE VIEW aans_v_export_exact (RESULT, result_order) AS SELECT RESULT, result_order FROM aaxx_v_export_exact_xml;
CREATE OR REPLACE PROCEDURE aans_select_exact (
p_applname IN VARCHAR2,
p_applrun IN VARCHAR2
)
AS
BEGIN
aaxx_select_exact_xml(p_applname, p_applrun);
END;
/
CREATE OR REPLACE PROCEDURE aans_export_exact (
p_applname IN VARCHAR2,
p_applrun IN VARCHAR2,
p_filedir IN VARCHAR2,
p_filename IN VARCHAR2
)
AS
BEGIN
aaxx_export_exact(p_applname, p_applrun, p_filedir, p_filename);
END;
/
-- verwerk exact
CREATE OR REPLACE VIEW aans_v_export_verwerk_exact (RESULT, result_order) AS SELECT RESULT, result_order FROM aaxx_v_export_verwerk_exact;
CREATE OR REPLACE PROCEDURE aans_export_verwerk_exact (
p_applname IN VARCHAR2,
p_applrun IN VARCHAR2,
p_filedir IN VARCHAR2,
p_filename IN VARCHAR2
)
AS
BEGIN
aaxx_export_verwerk_exact(p_applname, p_applrun, p_filedir, p_filename);
END;
/
-- bundel catering
CREATE OR REPLACE VIEW aans_v_export_bundel_catering (RESULT, result_order) AS SELECT RESULT, result_order FROM aaxx_v_export_bundel_catering;
CREATE OR REPLACE PROCEDURE aans_export_bundel_catering (
p_applname IN VARCHAR2,
p_applrun IN VARCHAR2,
p_filedir IN VARCHAR2,
p_filename IN VARCHAR2
)
AS
BEGIN
aaxx_export_bundel_catering(p_applname, p_applrun, p_filedir, p_filename);
END;
/
-- exact verkoop
CREATE OR REPLACE VIEW aans_v_export_exact_verkoop (RESULT, result_order) AS SELECT RESULT, result_order FROM aaxx_v_export_exact_verkoop;
CREATE OR REPLACE PROCEDURE aans_select_exact_verkoop (
p_applname IN VARCHAR2,
p_applrun IN VARCHAR2
)
AS
BEGIN
aaxx_select_exact_verkoop(p_applname, p_applrun, to_char(sysdate, 'yyyy'));
END;
/
CREATE OR REPLACE PROCEDURE aans_export_exact_verkoop (
p_applname IN VARCHAR2,
p_applrun IN VARCHAR2,
p_filedir IN VARCHAR2,
p_filename IN VARCHAR2
)
AS
BEGIN
aaxx_export_exact_verkoop(p_applname, p_applrun, p_filedir, p_filename, to_char(sysdate, 'yyyy'));
END;
/
-- exact verkoop over het vorige jaar
CREATE OR REPLACE VIEW aans_v_export_exact_verkoop_vj (RESULT, result_order) AS SELECT RESULT, result_order FROM aaxx_v_export_exact_verkoop;
CREATE OR REPLACE PROCEDURE aans_select_exact_verkoop_vj (
p_applname IN VARCHAR2,
p_applrun IN VARCHAR2
)
AS
BEGIN
aaxx_select_exact_verkoop(p_applname, p_applrun, to_char(to_number(to_char(sysdate, 'yyyy'))-1));
END;
/
CREATE OR REPLACE PROCEDURE aans_export_exact_verkoop_vj (
p_applname IN VARCHAR2,
p_applrun IN VARCHAR2,
p_filedir IN VARCHAR2,
p_filename IN VARCHAR2
)
AS
BEGIN
aaxx_export_exact_verkoop(p_applname, p_applrun, p_filedir, p_filename, to_char(to_number(to_char(sysdate, 'yyyy'))-1));
END;
/
-- exact projecturen (XML)
CREATE OR REPLACE VIEW aans_v_export_exact_uren (result, result_order)
AS SELECT result, result_order FROM aaxx_v_export_exact_uren_xml;
CREATE OR REPLACE PROCEDURE aans_select_exact_uren (
p_applname IN VARCHAR2,
p_applrun IN VARCHAR2
)
AS
BEGIN
aaxx_select_exact_uren_xml(p_applname, p_applrun, '');
END;
/
-- verwerk exact projecturen (XML)
CREATE OR REPLACE PROCEDURE aans_export_verwerk_exact_uren (
p_applname IN VARCHAR2,
p_applrun IN VARCHAR2,
p_filedir IN VARCHAR2,
p_filename IN VARCHAR2
)
AS
BEGIN
aaxx_export_verwerk_exact_uren(p_applname, p_applrun, p_filedir, p_filename, '');
END;
/
-- import overrulles
-- import srtruimte
CREATE OR REPLACE PROCEDURE aans_import_srtruimte (p_import_key IN NUMBER)
AS
BEGIN
aaxx_import_srtruimte(p_import_key);
END;
/
CREATE OR REPLACE PROCEDURE aans_update_srtruimte (p_import_key IN NUMBER)
AS
BEGIN
aaxx_update_srtruimte(p_import_key);
END;
/
-- uplift
CREATE OR REPLACE PROCEDURE aans_import_uplift (p_import_key IN NUMBER)
AS
BEGIN
aaxx_import_uplift(p_import_key);
END;
/
CREATE OR REPLACE PROCEDURE aans_update_uplift (p_import_key IN NUMBER)
AS
BEGIN
aaxx_update_uplift(p_import_key);
END;
/
CREATE OR REPLACE PROCEDURE aans_import_opdrstat_strukton (
p_import_key IN NUMBER)
AS
BEGIN
aaxx_import_opdrstat_strukton (p_import_key);
END aans_import_opdrstat_strukton;
/
CREATE OR REPLACE PROCEDURE aans_update_opdrstat_strukton (
p_import_key IN NUMBER)
AS
BEGIN
aaxx_update_opdrstat_strukton (p_import_key);
END aans_update_opdrstat_strukton;
/
--
-- AANHUURCONTRACTEN
--
-- View om het kenmerk aanhuurcontract bij de ruimte te vullen
-- key 441 zijn aanhuurcontracten.
CREATE OR REPLACE VIEW aans_v_cnt_aanhuur (
cnt_contract_key,
cnt_contract_omschrijving
)
AS
SELECT cnt_contract_key,
cnt_contract_nummer || '-' || cnt_contract_omschrijving
FROM cnt_v_aanwezigcontract
WHERE cnt_contract_looptijd_tot > SYSDATE AND ins_discipline_key = 441;
--
-- plat rapport met alle gegevens uit aanhuurcontracten
CREATE OR REPLACE VIEW aans_v_aanhuur_detail
(
CNT_CONTRACT_NUMMER,
CNT_CONTRACT_NUMMER_INTERN,
CNT_CONTRACT_OMSCHRIJVING,
CNT_CONTRACT_MANTEL,
CNT_CONTRACT_DOCUMENT,
CNT_CONTRACT_LOOPTIJD_VAN,
CNT_CONTRACT_LOOPTIJD_TOT,
CNT_OPZEGTERMIJN_OMSCHRIJVING,
CNT_OPZEGTERMIJN_DATUM,
CNT_RAPPELTERMIJN_OMSCHRIJVING,
CNT_RAPPELTERMIJN_DATUM,
CONTRACTPARTIJ,
EIGENAAR,
BEHEERDER,
OPMERKING,
DISTRICT,
LOCATIE,
GEBOUW,
EIGENAAR_VH_OBJECT,
STATUS_CONTRACT,
OPLEVERINGSNIVEAU,
VERLENGING1,
VERLENGING2,
VERLENGING3,
CONTRACT_M2,
CONTRACT_Q_PRIJS,
SERVICE_Q_PRIJS,
TERREIN_M2,
TERREIN_Q_PRIJS,
PARKEER,
PARKEER_Q_PRIJS,
HUURINDEXERING,
PEILDATUM,
AANPASSING,
CONTRACTDOCUMENT,
VERANTW,
ACTIE
)
AS
SELECT c.cnt_contract_nummer,
c.cnt_contract_nummer_intern,
c.cnt_contract_omschrijving,
(SELECT cnt_contract_omschrijving
FROM cnt_contract c1
WHERE c1.cnt_contract_key = c.cnt_contract_mantel_key)
mantel,
c.cnt_contract_document,
cnt_contract_looptijd_van,
cnt_contract_looptijd_tot,
(SELECT cnt_termijn_omschrijving
FROM cnt_termijn t
WHERE t.cnt_termijn_key = cnt_contract_opzegtermijn)
cnt_opzegtermijn_omschrijving,
cnt.cnt_getopzegdatum (c.cnt_contract_key) cnt_opzegtermijn_datum,
(SELECT cnt_termijn_omschrijving
FROM cnt_termijn t
WHERE t.cnt_termijn_key = cnt_contract_rappeltermijn)
cnt_rappeltermijn_omschrijving,
cnt.cnt_getrappeldatum (c.cnt_contract_key)
cnt_rappeltermijn_datum,
prs_bedrijf_naam,
prs_afdeling_omschrijving eigenaar,
prs_perslid_naam_full beheerder,
cnt_contract_opmerking,
(SELECT alg_district_omschrijving
FROM alg_locatie l, alg_district d
WHERE l.alg_locatie_key = scope.alg_locatie_key
AND l.alg_district_key = d.alg_district_key)
alg_district_omschrijving,
(SELECT alg_locatie_omschrijving
FROM alg_locatie l
WHERE l.alg_locatie_key = scope.alg_locatie_key)
alg_locatie_omschrijving,
(SELECT alg_gebouw_omschrijving
FROM alg_gebouw g
WHERE g.alg_gebouw_key = scope.alg_gebouw_key)
alg_gebouw_omschrijving,
(SELECT cnt_kenmerkcontract_waarde
FROM cnt_kenmerkcontract kc
WHERE cnt_kenmerk_key = 1
AND kc.cnt_contract_key = c.cnt_contract_key)
eigenaar_vh_object,
(SELECT fac_usrdata_omschr
FROM cnt_kenmerkcontract kc, fac_usrdata ud
WHERE fac.safe_to_number (cnt_kenmerkcontract_waarde) =
ud.fac_usrdata_key
AND cnt_kenmerk_key = 62
AND kc.cnt_contract_key = c.cnt_contract_key)
status_contract,
(SELECT fac_usrdata_omschr
FROM cnt_kenmerkcontract kc, fac_usrdata ud
WHERE fac.safe_to_number (cnt_kenmerkcontract_waarde) =
ud.fac_usrdata_key
AND cnt_kenmerk_key = 64
AND kc.cnt_contract_key = c.cnt_contract_key)
opleveringsniveau,
(SELECT fac_usrdata_omschr
FROM cnt_kenmerkcontract kc, fac_usrdata ud
WHERE fac.safe_to_number (cnt_kenmerkcontract_waarde) =
ud.fac_usrdata_key
AND cnt_kenmerk_key = 6
AND kc.cnt_contract_key = c.cnt_contract_key)
verlengingsoptie1,
(SELECT fac_usrdata_omschr
FROM cnt_kenmerkcontract kc, fac_usrdata ud
WHERE fac.safe_to_number (cnt_kenmerkcontract_waarde) =
ud.fac_usrdata_key
AND cnt_kenmerk_key = 22
AND kc.cnt_contract_key = c.cnt_contract_key)
verlengingsoptie2,
(SELECT fac_usrdata_omschr
FROM cnt_kenmerkcontract kc, fac_usrdata ud
WHERE fac.safe_to_number (cnt_kenmerkcontract_waarde) =
ud.fac_usrdata_key
AND cnt_kenmerk_key = 23
AND kc.cnt_contract_key = c.cnt_contract_key)
verlengingsoptie3,
(SELECT fac.safe_to_number (cnt_kenmerkcontract_waarde)
FROM cnt_kenmerkcontract kc
WHERE cnt_kenmerk_key = 5
AND kc.cnt_contract_key = c.cnt_contract_key)
contract_m2,
(SELECT fac.safe_to_number (cnt_kenmerkcontract_waarde)
FROM cnt_kenmerkcontract kc
WHERE cnt_kenmerk_key = 25
AND kc.cnt_contract_key = c.cnt_contract_key)
contract_m2_prijs,
(SELECT fac.safe_to_number (cnt_kenmerkcontract_waarde)
FROM cnt_kenmerkcontract kc
WHERE cnt_kenmerk_key = 30
AND kc.cnt_contract_key = c.cnt_contract_key)
service_q_prijs,
(SELECT fac.safe_to_number (cnt_kenmerkcontract_waarde)
FROM cnt_kenmerkcontract kc
WHERE cnt_kenmerk_key = 26
AND kc.cnt_contract_key = c.cnt_contract_key)
terrein_m2,
(SELECT fac.safe_to_number (cnt_kenmerkcontract_waarde)
FROM cnt_kenmerkcontract kc
WHERE cnt_kenmerk_key = 27
AND kc.cnt_contract_key = c.cnt_contract_key)
terrein_m2_prijs,
(SELECT fac.safe_to_number (cnt_kenmerkcontract_waarde)
FROM cnt_kenmerkcontract kc
WHERE cnt_kenmerk_key = 3
AND kc.cnt_contract_key = c.cnt_contract_key)
parkeer,
(SELECT fac.safe_to_number (cnt_kenmerkcontract_waarde)
FROM cnt_kenmerkcontract kc
WHERE cnt_kenmerk_key = 28
AND kc.cnt_contract_key = c.cnt_contract_key)
parkeer_stuk_prijs,
(SELECT fac_usrdata_omschr
FROM cnt_kenmerkcontract kc, fac_usrdata ud
WHERE fac.safe_to_number (cnt_kenmerkcontract_waarde) =
ud.fac_usrdata_key
AND cnt_kenmerk_key = 32
AND kc.cnt_contract_key = c.cnt_contract_key)
huurindexering,
(SELECT fac.safe_to_number (cnt_kenmerkcontract_waarde)
FROM cnt_kenmerkcontract kc
WHERE cnt_kenmerk_key = 33
AND kc.cnt_contract_key = c.cnt_contract_key)
peildatum,
(SELECT fac.safe_to_number (cnt_kenmerkcontract_waarde)
FROM cnt_kenmerkcontract kc
WHERE cnt_kenmerk_key = 63
AND kc.cnt_contract_key = c.cnt_contract_key)
aanpassing,
(SELECT fac.safe_to_number (cnt_kenmerkcontract_waarde)
FROM cnt_kenmerkcontract kc
WHERE cnt_kenmerk_key = 10
AND kc.cnt_contract_key = c.cnt_contract_key)
contractdocument,
(SELECT prs_perslid_naam_full
FROM alg_onrgoedkenmerk, prs_v_perslid_fullnames_all pf
WHERE alg_kenmerk_key = 1160
AND fac.safe_to_number(alg_onrgoedkenmerk_waarde) = pf.prs_perslid_key
AND scope.alg_gebouw_key = alg_onrgoed_key
AND alg_onrgoedkenmerk_verwijder IS NULL)
verantw,
(SELECT cnt_kenmerkcontract_waarde
FROM cnt_kenmerkcontract kc
WHERE cnt_kenmerk_key = 162
AND kc.cnt_contract_key = c.cnt_contract_key)
Actie
FROM cnt_v_aanwezigcontract c,
prs_bedrijf b,
prs_afdeling a,
(SELECT cp.cnt_contract_key,
l.alg_locatie_key,
NULL alg_gebouw_key,
cp.cnt_alg_plaats_code
FROM cnt_contract_plaats cp, alg_locatie l
WHERE cp.cnt_alg_plaats_code = 'L'
AND cp.cnt_alg_plaats_key = l.alg_locatie_key
UNION ALL
SELECT cp.cnt_contract_key,
g.alg_locatie_key,
alg_gebouw_key,
cp.cnt_alg_plaats_code
FROM cnt_contract_plaats cp, alg_gebouw g
WHERE cp.cnt_alg_plaats_code = 'G'
AND cp.cnt_alg_plaats_key = g.alg_gebouw_key) scope,
prs_v_perslid_fullnames pf
WHERE ins_discipline_key = 441 -- aanhuurcontracten
AND c.cnt_prs_bedrijf_key = b.prs_bedrijf_key
AND c.prs_afdeling_key_eig = a.prs_afdeling_key
AND c.prs_perslid_key_beh = pf.prs_perslid_key
AND c.cnt_contract_key = scope.cnt_contract_key;
CREATE OR REPLACE VIEW aans_v_rap_aanhuur_detail
(
NUMMER,
NUMMER_INTERN,
FCLT_F_BESCHRIJVING,
MANTEL,
OMSCHRIJVING,
VAN,
FCLT_F_TOT,
OPZEG_TERMIJN,
OPZEG_DATUM,
RAPPEL_TERMIJN,
RAPPEL_DATUM,
FCLT_F_CONTRACTPARTIJ,
FCLT_F_EIGENAAR,
BEHEERDER,
OPMERKING,
FCLT_F_DISTRICT,
FCLT_F_LOCATIE,
FCLT_F_GEBOUW,
EIGENAAR_VH_OBJECT,
FCLT_F_STATUS_CONTRACT,
OPLEVERINGSNIVEAU,
VERLENGING1,
VERLENGING2,
VERLENGING3,
CONTACT_M2,
CONTRACT_Q_PRIJS,
CONTRACT_Y_PRIJS,
CONTRACT_Q_M2_PRIJS,
SERVICE_Q_PRIJS,
SERVICE_Y_PRIJS,
TERREIN_M2,
TERREIN_Q_PRIJS,
TERREIN_Y_PRIJS,
TERREIN_Q_M2_PRIJS,
PARKEER,
PARKEER_Q_PRIJS,
PARKEER_Y_PRIJS,
PARKEER_Q_ST_PRIJS,
HUURINDEXERING,
PEILDATUM,
AANPASSING,
CONTRACTDOCUMENT,
FCLT_F_VERANTW,
ACTIE
)
AS
SELECT cnt_contract_nummer,
cnt_contract_nummer_intern,
cnt_contract_omschrijving,
cnt_contract_mantel,
cnt_contract_document,
TO_CHAR (cnt_contract_looptijd_van, 'dd-mm-yyyy'),
TO_CHAR (cnt_contract_looptijd_tot, 'dd-mm-yyyy'),
cnt_opzegtermijn_omschrijving,
TO_CHAR (cnt_opzegtermijn_datum, 'dd-mm-yyyy'),
cnt_rappeltermijn_omschrijving,
TO_CHAR (cnt_rappeltermijn_datum, 'dd-mm-yyyy'),
contractpartij,
eigenaar,
beheerder,
opmerking,
district,
locatie,
gebouw,
eigenaar_vh_object,
status_contract,
opleveringsniveau,
verlenging1,
verlenging2,
verlenging3,
contract_m2,
contract_q_prijs,
contract_q_prijs * 4 contract_y_prijs,
ROUND (contract_q_prijs / COALESCE (contract_m2, 1), 2)
contract_q_m2_prijs,
service_q_prijs,
service_q_prijs * 4,
terrein_m2,
terrein_q_prijs,
terrein_q_prijs * 4 terrein_y_prijs,
ROUND (terrein_q_prijs / COALESCE (terrein_m2, 1), 2)
terrein_q_m2_prijs,
parkeer,
parkeer_q_prijs,
parkeer_q_prijs * 4 parkeer_y_prijs,
ROUND (parkeer_q_prijs / COALESCE (parkeer, 1), 2)
parkeer_q_st_prijs,
huurindexering,
peildatum,
aanpassing,
contractdocument,
verantw,
actie
FROM aans_v_aanhuur_detail;
--
-- view om het aanhuurcontract bij een specifieke ruimte te vinden
-- dit zijn contracten van het type aanhuur met scope locatie of gebouw
-- maar deze kunnen op ruimteniveau overruled worden door kenmerk.
CREATE OR REPLACE VIEW aans_v_rap_cnt_ruimte_aanhuur (
alg_ruimte_key,
cnt_contract_key
)
AS
SELECT DISTINCT
r.alg_ruimte_key,
COALESCE (ruimte_scope.cnt_contract_key,
COALESCE (gebouw_scope.cnt_contract_key,
locatie_scope.cnt_contract_key
)
)
cnt_contract_key
FROM (SELECT cp.cnt_alg_plaats_key alg_locatie_key, cp.cnt_contract_key
FROM cnt_contract_plaats cp, cnt_v_aanwezigcontract c
WHERE cp.cnt_alg_plaats_code = 'L'
AND cp.cnt_contract_key = c.cnt_contract_key
AND c.ins_discipline_key = 441 -- aanhuur
) locatie_scope,
(SELECT cp.cnt_alg_plaats_key alg_gebouw_key, cp.cnt_contract_key
FROM cnt_contract_plaats cp, cnt_v_aanwezigcontract c
WHERE cp.cnt_alg_plaats_code = 'G'
AND cp.cnt_contract_key = c.cnt_contract_key
AND c.ins_discipline_key = 441 -- aanhuur
) gebouw_scope,
(SELECT alg_ruimte_key, cnt_contract_key
FROM alg_ruimte r, alg_onrgoedkenmerk ogk, cnt_v_aanwezigcontract c
WHERE ogk.alg_onrgoed_niveau = 'R'
AND ogk.alg_onrgoed_key = r.alg_ruimte_key
AND ogk.alg_kenmerk_key = 1061 -- aanhuurcontract
AND fac.safe_to_number (alg_onrgoedkenmerk_waarde) =
cnt_contract_key) ruimte_scope,
alg_ruimte r,
alg_verdieping v,
alg_gebouw g
WHERE r.alg_verdieping_key = v.alg_verdieping_key
AND v.alg_gebouw_key = g.alg_gebouw_key
AND r.alg_ruimte_key = ruimte_scope.alg_ruimte_key(+)
AND g.alg_gebouw_key = gebouw_scope.alg_gebouw_key(+)
AND g.alg_locatie_key = locatie_scope.alg_locatie_key(+);
--
-- rapport om dubbele aanhuurcontracten op te sporen.
CREATE OR REPLACE VIEW aans_v_rap_dubbel_contract (
alg_locatie_omschrijving,
alg_gebouw_omschrijving,
alg_verdieping_code,
alg_ruimte_nr
)
AS
SELECT alg_locatie_omschrijving,
alg_gebouw_omschrijving,
alg_verdieping_code,
alg_ruimte_nr
FROM alg_v_ruimte_gegevens
WHERE alg_ruimte_key IN (SELECT alg_ruimte_key
FROM aans_v_rap_cnt_ruimte_aanhuur
GROUP BY alg_ruimte_key
HAVING COUNT (alg_ruimte_key) > 1);
--
-- Notificatie aanhuurcontracten
--
-- notificatie sturen op de rapeldatum en 7 dagen voor de opzegdatum
CREATE OR REPLACE VIEW aans_v_noti_aanhuur_reminder (
code,
sender,
receiver,
text,
key,
par1,
par2,
xkey
)
AS
SELECT 'CNTMAI',
'',
noti.prs_perslid_key,
'Rappel: Contract '
|| c.cnt_contract_nummer_intern
|| ' ('
|| c.cnt_contract_omschrijving
|| ' '
|| b.prs_bedrijf_naam
|| ')'
|| ' moet uiterlijk per '
|| TO_CHAR (cnt.cnt_getopzegdatum (c.cnt_contract_key), 'DD-MM-YYYY'
)
|| ' worden verlengd of opgezegd.',
c.cnt_contract_key,
c.cnt_contract_nummer_intern,
cnt.cnt_getopzegdatum (c.cnt_contract_key),
NULL
FROM (SELECT prs_perslid_key, NULL cnt_contract_key
FROM fac_usrdata ud, prs_perslid p
WHERE fac_usrdata_verwijder IS NULL
AND fac.safe_to_number (fac_usrdata_code) = prs_perslid_key
AND fac_usrtab_key = 241 -- aanhuurnotificaties
UNION ALL
SELECT pwp.prs_perslid_key, c.cnt_contract_key
FROM fac_gebruikersgroep gg,
prs_v_perslidwerkplek_gegevens pwp,
cnt_v_aanwezigcontract c,
cnt_contract_plaats cp
WHERE fac_groep_key = 41 -- FM-ers
AND pwp.prs_perslid_key = gg.prs_perslid_key
AND ( (pwp.alg_gebouw_key = cp.cnt_alg_plaats_key
AND cp.cnt_alg_plaats_code = 'G')
OR (pwp.alg_locatie_key = cp.cnt_alg_plaats_key
AND cp.cnt_alg_plaats_code = 'L'))
AND cp.cnt_contract_key = c.cnt_contract_key
AND c.ins_discipline_key = 441) noti, -- aanhuurcontracten
cnt_v_aanwezigcontract c,
prs_bedrijf b
WHERE (c.cnt_contract_key = noti.cnt_contract_key
OR noti.cnt_contract_key IS NULL)
AND b.prs_bedrijf_key = c.cnt_prs_bedrijf_key
AND cnt_contract_verwijder IS NULL
AND (TRUNC (SYSDATE) =
TRUNC (cnt.cnt_getrappeldatum (c.cnt_contract_key))
OR
TRUNC (SYSDATE) =
TRUNC (cnt.cnt_getopzegdatum (c.cnt_contract_key))-7);
CREATE OR REPLACE VIEW aans_v_noti_aanhuur_oplever (
code,
sender,
receiver,
text,
key,
par1,
par2,
xkey
)
AS
SELECT 'CNTMAI',
'',
noti.prs_perslid_key,
'Vastgoed onder contract '
|| c.cnt_contract_nummer_intern
|| ' ('
|| c.cnt_contract_omschrijving
|| ' '
|| b.prs_bedrijf_naam
|| ')'
|| ' moet binnenkort opgeleverd worden.',
c.cnt_contract_key,
c.cnt_contract_nummer_intern,
cnt.cnt_getopzegdatum (c.cnt_contract_key),
NULL
FROM (SELECT prs_perslid_key, NULL cnt_contract_key
FROM fac_usrdata ud, prs_perslid p
WHERE fac_usrdata_verwijder IS NULL
AND fac.safe_to_number (fac_usrdata_code) = prs_perslid_key
AND fac_usrtab_key = 241 -- aanhuurnotificaties
UNION ALL
SELECT pwp.prs_perslid_key, c.cnt_contract_key
FROM fac_gebruikersgroep gg,
prs_v_perslidwerkplek_gegevens pwp,
cnt_v_aanwezigcontract c,
cnt_contract_plaats cp
WHERE fac_groep_key = 41 -- FM-ers
AND pwp.prs_perslid_key = gg.prs_perslid_key
AND ( (pwp.alg_gebouw_key = cp.cnt_alg_plaats_key
AND cp.cnt_alg_plaats_code = 'G')
OR (pwp.alg_locatie_key = cp.cnt_alg_plaats_key
AND cp.cnt_alg_plaats_code = 'L'))
AND cp.cnt_contract_key = c.cnt_contract_key
AND c.ins_discipline_key = 441) noti, -- aanhuurcontracten
cnt_v_aanwezigcontract c,
cnt_kenmerkcontract k,
fac_usrdata ud,
prs_bedrijf b
WHERE (c.cnt_contract_key = noti.cnt_contract_key
OR noti.cnt_contract_key IS NULL)
AND b.prs_bedrijf_key = c.cnt_prs_bedrijf_key
AND cnt_contract_verwijder IS NULL
AND add_months(TRUNC (sysdate), fac.safe_to_number(ud.fac_usrdata_code)) =
TRUNC (c.cnt_contract_looptijd_tot)
AND c.cnt_contract_key = k.cnt_contract_key
AND k.cnt_kenmerk_key = 81 -- oplevertermijn
AND fac.safe_to_number(k.cnt_kenmerkcontract_waarde) = ud.fac_usrdata_key;
-- AANS#26160
-- Notificatie naar facilitair bedrijfsbureau op basis van
-- kenmerk (key 1220) bij gebouw
-- melding_voor (perslid_key) = 10221 (MCC)
CREATE OR REPLACE VIEW AANS_V_NOTI_MLD_BLDREMINDER
(
CODE,
SENDER,
RECEIVER,
TEXT,
KEY,
XKEY
)
AS
SELECT 'MLDNEW',
NULL,
fac.safe_to_number (p.prs_perslid_key),
'Melding '
|| m.mld_melding_key
|| ' is aangemaakt voor gebouw '
|| g.alg_gebouw_omschrijving,
mld_melding_key,
NULL
FROM mld_melding m,
fac_tracking tr,
fac_srtnotificatie str,
alg_v_onroerendgoed a,
alg_onrgoedkenmerk ak,
prs_perslid p,
alg_gebouw g
WHERE mld_melding_status IN (0, 2, 3, 4, 7) -- open meldingen
AND tr.fac_srtnotificatie_key = str.fac_srtnotificatie_key
AND ( (tr.fac_tracking_refkey = mld_melding_key
AND str.fac_srtnotificatie_xmlnode IN ('melding')))
AND fac_srtnotificatie_code = 'MLDNEW'
AND tr.fac_tracking_datum >
(SELECT fac_notificatie_job_nextrun
- fac_notificatie_job_interval / 24
FROM fac_notificatie_job
WHERE fac_notificatie_job_view =
'AANS_V_NOTI_MLD_BLDREMINDER')
AND m.mld_alg_onroerendgoed_keys = a.alg_onroerendgoed_keys
AND ak.alg_onrgoedkenmerk_verwijder IS NULL
AND ak.alg_onrgoed_niveau = 'G'
AND a.alg_gebouw_key = ak.alg_onrgoed_key
AND alg_kenmerk_key = 1220 -- PRS_KEY facilitairbedrijfsbureau
AND m.prs_perslid_key_voor = 10221 -- PRS_KEY Medewerker Contact Centrum
AND p.prs_perslid_key = ak.alg_onrgoedkenmerk_waarde
AND p.prs_perslid_verwijder IS NULL
AND g.alg_gebouw_key = a.alg_gebouw_key;
--
-- VERHUURCONTRACTEN
--
CREATE OR REPLACE VIEW aans_v_rap_huurdetail
(
huurder,
district,
gebouw_code,
exact_code,
gebouw_naam,
gebouw_adres,
gebouw_postcode,
gebouw_plaats,
verdieping,
ruimte,
verantw_sfm,
verantw_fm,
ruimte_omschrijving,
contractnummer,
wo,
vvo,
huur,
tarief,
totaal_huur,
basispakket,
tarief_bp,
totaal_bp,
servicekosten,
tarief_sk,
totaal_sk,
leegstand,
totaal,
contract_nummer,
contract_omschrijving,
looptijd_tot,
opzegdatum,
verlenging,
verlenging_datum,
vervallen,
alg_ruimte_key,
prs_afdeling_key,
prs_ruimteafdeling_bezetting
)
AS
SELECT huurder,
district,
gebouw_code,
exact_code,
gebouw_naam,
gebouw_adres,
gebouw_postcode,
gebouw_plaats,
verdieping,
ruimte,
verantw_sfm,
verantw_fm,
ruimte_omschrijving,
contractnummer,
SUM (wo),
ROUND (SUM (vvo), 2),
huur,
tarief,
ROUND (SUM (vvo) * tarief, 2) totaal_huur,
basispakket,
tariefbp,
ROUND (SUM (vvo) * tariefbp, 2) totaal_bp,
servicekosten,
tariefsk,
ROUND (SUM (vvo) * tariefsk, 2) totaal_sk,
leegstand,
ROUND (
SUM (vvo) * tarief + SUM (vvo) * tariefbp + SUM (vvo) * tariefsk,
2)
totaal,
cnt_contract_nummer_intern,
cnt_contract_omschrijving,
TO_CHAR (looptijd_tot, 'dd-mm-yyyy'),
TO_CHAR (opzegdatum, 'dd-mm-yyyy'),
verlenging,
TO_CHAR (verlenging_datum, 'dd-mm-yyyy'),
vervallen,
alg_ruimte_key,
prs_afdeling_key,
prs_ruimteafdeling_bezetting
FROM (SELECT NVL (
(SELECT fac_usrdata_code || ' - ' || fac_usrdata_omschr
FROM fac_usrdata ud,
alg_onrgoedkenmerk ok,
alg_kenmerk k
WHERE k.alg_kenmerk_key = ok.alg_kenmerk_key
AND k.alg_kenmerk_omschrijving =
'Huur conditiesoortcode'
AND ok.alg_onrgoedkenmerk_waarde =
ud.fac_usrdata_key
AND ok.alg_onrgoed_key = ra.alg_ruimte_key),
'Geen huur')
huur,
(SELECT 'Leegstand'
FROM alg_srtruimte sr
WHERE sr.alg_srtruimte_key = rg.alg_srtruimte_key
AND sr.alg_srtruimte_key = 41)
leegstand,
(SELECT ok.alg_onrgoedkenmerk_waarde
FROM alg_onrgoedkenmerk ok, alg_kenmerk k
WHERE k.alg_kenmerk_key = ok.alg_kenmerk_key
AND k.alg_kenmerk_omschrijving = 'Contractnummer'
AND ok.alg_onrgoed_key = ra.alg_ruimte_key)
contractnummer,
NVL (
fac.safe_to_number( (SELECT ok.alg_onrgoedkenmerk_waarde
FROM alg_onrgoedkenmerk ok,
alg_kenmerk k
WHERE k.alg_kenmerk_key =
ok.alg_kenmerk_key
AND k.alg_kenmerk_omschrijving =
'Huur tarief'
AND ok.alg_onrgoed_key =
ra.alg_ruimte_key)),
0)
tarief,
(alg_ruimte_bruto_vloeropp
* ra.prs_ruimteafdeling_bezetting)
/ 100
wo,
NVL (
NVL (
fac.safe_to_number( (SELECT ok.alg_onrgoedkenmerk_waarde
FROM alg_onrgoedkenmerk ok,
alg_kenmerk k
WHERE k.alg_kenmerk_key =
ok.alg_kenmerk_key
AND alg_kenmerk_omschrijving =
'Parkeerplaatsen'
AND ok.alg_onrgoed_key =
ra.alg_ruimte_key)),
alg_ruimte_opp_alt1),
(SELECT ( ( alg_ruimte_bruto_vloeropp
+ alg_ruimte_bruto_vloeropp * COALESCE(fac.safe_to_number (ogkg.alg_onrgoedkenmerk_waarde),0)
+ alg_ruimte_bruto_vloeropp * COALESCE(fac.safe_to_number (ogkv.alg_onrgoedkenmerk_waarde),0)
)
* ra.prs_ruimteafdeling_bezetting)
/ 100
FROM alg_verdieping v,
(SELECT alg_onrgoed_key, alg_onrgoedkenmerk_waarde
FROM alg_onrgoedkenmerk ogk
WHERE alg_kenmerk_key = 1240) ogkg, -- factor niet verhuurbaar op gebouw
(SELECT alg_onrgoed_key, alg_onrgoedkenmerk_waarde
FROM alg_onrgoedkenmerk ogk
WHERE alg_kenmerk_key = 1180) ogkv -- factor niet verhuurbaar op verdieping
WHERE rg.alg_verdieping_key = v.alg_verdieping_key
AND rg.alg_verdieping_key = ogkv.alg_onrgoed_key(+)
AND v.alg_gebouw_key = ogkg.alg_onrgoed_key(+)))
vvo,
NVL (
(SELECT mld_dienstniveau_opmerking
|| ' - '
|| mld_dienstniveau_omschr
FROM mld_dienstniveau d
WHERE d.mld_dienstniveau_key = rg.mld_dienstniveau_key),
'Geen basispakket')
basispakket,
NVL (
(SELECT fac.safe_to_number (
ok.alg_onrgoedkenmerk_waarde)
FROM alg_onrgoedkenmerk ok, alg_kenmerk k
WHERE k.alg_kenmerk_key = ok.alg_kenmerk_key
AND k.alg_kenmerk_omschrijving =
'Basisp afw tarief'
AND ok.alg_onrgoed_key = ra.alg_ruimte_key),
NVL (
(SELECT fac_usrdata_prijs
FROM fac_usrdata ud, mld_dienstniveau d
WHERE d.mld_dienstniveau_opmerking =
ud.fac_usrdata_code
AND d.mld_dienstniveau_key =
rg.mld_dienstniveau_key),
0))
tariefbp,
NVL (
(SELECT fac_usrdata_code || ' - ' || fac_usrdata_omschr
FROM fac_usrdata ud,
alg_onrgoedkenmerk ok,
alg_kenmerk k
WHERE k.alg_kenmerk_key = ok.alg_kenmerk_key
AND k.alg_kenmerk_omschrijving = 'Servicekosten'
AND ok.alg_onrgoedkenmerk_waarde =
ud.fac_usrdata_key
AND ok.alg_onrgoed_key = ra.alg_ruimte_key),
'Geen servicekosten')
servicekosten,
NVL (
(SELECT fac.safe_to_number (
ok.alg_onrgoedkenmerk_waarde)
FROM alg_onrgoedkenmerk ok, alg_kenmerk k
WHERE k.alg_kenmerk_key = ok.alg_kenmerk_key
AND k.alg_kenmerk_omschrijving =
'Service afw tarief'
AND ok.alg_onrgoed_key = ra.alg_ruimte_key),
NVL (
(SELECT fac_usrdata_prijs
FROM fac_usrdata ud,
alg_onrgoedkenmerk ok,
alg_kenmerk k
WHERE k.alg_kenmerk_key = ok.alg_kenmerk_key
AND k.alg_kenmerk_omschrijving =
'Servicekosten'
AND ok.alg_onrgoedkenmerk_waarde =
ud.fac_usrdata_key
AND ok.alg_onrgoed_key = ra.alg_ruimte_key),
0))
tariefsk,
ra.alg_ruimte_key,
g.alg_gebouw_code gebouw_code,
(SELECT alg_onrgoedkenmerk_waarde
FROM alg_onrgoedkenmerk
WHERE alg_onrgoed_key = g.alg_gebouw_key
AND alg_kenmerk_key = 1009)
exact_code,
g.alg_gebouw_naam gebouw_naam,
(SELECT alg_onrgoedkenmerk_waarde
FROM alg_onrgoedkenmerk
WHERE alg_onrgoed_key = g.alg_gebouw_key
AND alg_kenmerk_key = 1020)
gebouw_adres,
(SELECT alg_onrgoedkenmerk_waarde
FROM alg_onrgoedkenmerk
WHERE alg_onrgoed_key = g.alg_gebouw_key
AND alg_kenmerk_key = 1021)
gebouw_postcode,
(SELECT alg_onrgoedkenmerk_waarde
FROM alg_onrgoedkenmerk
WHERE alg_onrgoed_key = g.alg_gebouw_key
AND alg_kenmerk_key = 1022)
gebouw_plaats,
alg_verdieping_code verdieping,
alg_ruimte_nr ruimte,
g.alg_gebouw_omschrijving gebouw_omschrijving,
di.alg_district_omschrijving district,
rg.alg_ruimte_omschrijving ruimte_omschrijving,
prs_afdeling_omschrijving huurder,
c.cnt_contract_nummer_intern,
c.cnt_contract_omschrijving,
cnt_contract_looptijd_tot looptijd_tot,
cnt_opzegtermijn_datum opzegdatum,
l.alg_locatie_verantw verantw_sfm,
gv.verantw verantw_fm,
v.verlenging,
v.verlenging_datum,
COALESCE (rvervallen,
COALESCE (gvervallen, alg_ruimte_verwijder))
vervallen,
ra.prs_afdeling_key,
prs_ruimteafdeling_bezetting
FROM prs_ruimteafdeling ra,
alg_ruimte rg,
alg_verdieping v,
prs_afdeling a,
alg_gebouw g,
alg_locatie l,
alg_district di,
(SELECT alg_ruimte_key,
c.cnt_contract_looptijd_tot,
cnt.cnt_getopzegdatum (c.cnt_contract_key)
cnt_opzegtermijn_datum,
cnt.cnt_getrappeldatum (c.cnt_contract_key)
cnt_rappeltermijn_datum,
c.cnt_contract_key,
c.cnt_contract_nummer_intern,
c.cnt_contract_omschrijving
FROM aans_v_rap_cnt_ruimte_aanhuur ah,
cnt_v_aanwezigcontract c
WHERE ah.cnt_contract_key = c.cnt_contract_key
AND c.cnt_contract_looptijd_tot > SYSDATE) c,
(SELECT fac_usrdata_omschr verlenging,
ADD_MONTHS (cnt_contract_looptijd_tot,
fac_usrdata_prijs * 12)
verlenging_datum,
c.cnt_contract_key
FROM fac_usrdata,
cnt_kenmerkcontract kc,
cnt_kenmerk k,
cnt_contract c
WHERE fac_usrdata_key =
fac.safe_to_number (cnt_kenmerkcontract_waarde)
AND k.cnt_srtkenmerk_key = 7 -- eerste verlenging
AND c.cnt_contract_key = kc.cnt_contract_key
AND kc.cnt_kenmerk_key = k.cnt_kenmerk_key) v,
(SELECT prs_perslid_naam_full verantw,
alg_onrgoed_key alg_gebouw_key
FROM alg_onrgoedkenmerk, prs_v_perslid_fullnames_all pf
WHERE alg_kenmerk_key = 1160
AND alg_onrgoedkenmerk_verwijder IS NULL
AND fac.safe_to_number(alg_onrgoedkenmerk_waarde) = pf.prs_perslid_key) gv,
(SELECT fac.safe_to_date (alg_onrgoedkenmerk_waarde,
'dd-mm-yyyy')
gvervallen,
alg_onrgoed_key alg_gebouw_key
FROM alg_onrgoedkenmerk
WHERE alg_kenmerk_key = 1100
AND alg_onrgoedkenmerk_verwijder IS NULL) gverv,
(SELECT fac.safe_to_date (alg_onrgoedkenmerk_waarde,
'dd-mm-yyyy')
rvervallen,
alg_onrgoed_key alg_ruimte_key
FROM alg_onrgoedkenmerk
WHERE alg_kenmerk_key = 1080
AND alg_onrgoedkenmerk_verwijder IS NULL) rverv
WHERE ra.alg_ruimte_key = rg.alg_ruimte_key
AND rg.alg_verdieping_key = v.alg_verdieping_key
AND ra.prs_afdeling_key = a.prs_afdeling_key
AND v.alg_gebouw_key = g.alg_gebouw_key
AND l.alg_locatie_key = g.alg_locatie_key
AND l.alg_district_key = di.alg_district_key
AND g.alg_gebouw_key = gv.alg_gebouw_key
AND rg.alg_ruimte_key = c.alg_ruimte_key(+)
AND c.cnt_contract_key = v.cnt_contract_key(+)
AND g.alg_gebouw_key = gverv.alg_gebouw_key(+)
AND rg.alg_ruimte_key = rverv.alg_ruimte_key(+))
GROUP BY huurder,
district,
gebouw_code,
exact_code,
gebouw_naam,
gebouw_adres,
gebouw_postcode,
gebouw_plaats,
verdieping,
ruimte,
ruimte_omschrijving,
huur,
tarief,
contractnummer,
gebouw_omschrijving,
verantw_fm,
verantw_sfm,
leegstand,
basispakket,
tariefbp,
servicekosten,
tariefsk,
cnt_contract_nummer_intern,
cnt_contract_omschrijving,
looptijd_tot,
opzegdatum,
verlenging,
verlenging_datum,
vervallen,
alg_ruimte_key,
prs_afdeling_key,
prs_ruimteafdeling_bezetting;
CREATE OR REPLACE VIEW aans_v_rap_huuroverzicht (
fclt_f_huurder,
fclt_f_district,
fclt_f_gebouw_code,
fclt_f_gebouw,
exact_code,
gebouw_naam,
gebouw_adres,
gebouw_postcode,
gebouw_plaats,
verantw_sfm,
verantw_fm,
verdieping,
ruimte,
ruimte_omschrijving,
contractnummer,
wo,
vvo,
fclt_f_huur,
tarief,
totaal_huur,
fclt_f_basispakket,
tarief_bp,
totaal_bp,
fclt_f_servicekosten,
tarief_sk,
totaal_sk,
fclt_f_leegstand,
totaal,
fclt_f_contract_nummer,
fclt_f_contract_omschrijving,
looptijd_tot,
opzegdatum,
verlenging,
verlenging_datum,
vervallen
)
AS
SELECT huurder,
district,
gebouw_code,
gebouw_code || ' - ' || gebouw_naam,
exact_code,
gebouw_naam,
gebouw_adres,
gebouw_postcode,
gebouw_plaats,
verantw_sfm,
verantw_fm,
verdieping,
ruimte,
ruimte_omschrijving,
contractnummer,
wo,
vvo,
huur,
tarief,
totaal_huur,
basispakket,
tarief_bp,
totaal_bp,
servicekosten,
tarief_sk,
totaal_sk,
leegstand,
totaal,
contract_nummer,
contract_omschrijving,
looptijd_tot,
opzegdatum,
verlenging,
verlenging_datum,
TO_CHAR (vervallen, 'dd-mm-yyyy')
FROM aans_v_rap_huurdetail
WHERE vervallen IS NULL OR vervallen > SYSDATE;
CREATE OR REPLACE VIEW aans_v_rap_hv_freeze (
fclt_f_freeze,
fclt_f_kwartaal,
fclt_f_huurder,
fclt_f_district,
fclt_f_gebouw_code,
fclt_f_gebouw,
exact_code,
gebouw_naam,
gebouw_adres,
gebouw_postcode,
gebouw_plaats,
verantw_sfm,
fclt_f_verantw_fm,
verdieping,
ruimte,
ruimte_omschrijving,
contractnummer,
wo,
vvo,
fclt_f_huur,
tarief,
totaal_huur,
fclt_f_basispakket,
tarief_bp,
totaal_bp,
fclt_f_servicekosten,
tarief_sk,
totaal_sk,
fclt_f_leegstand,
totaal,
fclt_f_contract_nummer,
fclt_f_contract_omschrijving,
looptijd_tot,
opzegdatum,
verlenging,
verlenging_datum,
vervallen
)
AS
SELECT to_char(freeze_date, 'dd-mm-yyyy'),
freeze_q,
huurder,
district,
gebouw_code,
gebouw,
exact_code,
gebouw_naam,
gebouw_adres,
gebouw_postcode,
gebouw_plaats,
verantw_sfm,
verantwoordelijke,
verdieping,
ruimte,
ruimte_omschrijving,
contractnummer,
wo,
vvo,
huur,
tarief,
totaal_huur,
basispakket,
tarief_bp,
totaal_bp,
servicekosten,
tarief_sk,
totaal_sk,
to_char(leegstand),
totaal,
contract_nummer,
contract_omschrijving,
looptijd_tot,
opzegdatum,
verlenging,
verlenging_datum,
vervallen
FROM aans_hv_freeze;
CREATE OR REPLACE VIEW aans_v_rap_huuroverz_vervallen (
fclt_f_huurder,
fclt_f_district,
fclt_f_gebouw_code,
exact_code,
gebouw_naam,
gebouw_adres,
gebouw_postcode,
gebouw_plaats,
verantw_sfm,
verantw_fm,
ruimte_omschrijving,
contractnummer,
wo,
vvo,
fclt_f_huur,
tarief,
fclt_f_basispakket,
tarief_bp,
fclt_f_servicekosten,
tarief_sk,
fclt_f_leegstand,
totaal,
looptijd_tot,
opzegdatum,
verlenging,
verlenging_datum,
fclt_d_vervallen
)
AS
SELECT huurder,
district,
gebouw_code,
exact_code,
gebouw_naam,
gebouw_adres,
gebouw_postcode,
gebouw_plaats,
verantw_sfm,
verantw_fm,
ruimte_omschrijving,
contractnummer,
wo,
vvo,
huur,
tarief,
basispakket,
tarief_bp,
servicekosten,
tarief_sk,
leegstand,
totaal,
looptijd_tot,
opzegdatum,
verlenging,
verlenging_datum,
TO_CHAR (vervallen, 'dd-mm-yyyy')
FROM aans_v_rap_huurdetail
WHERE vervallen IS NOT NULL AND vervallen < SYSDATE;
CREATE OR REPLACE VIEW aans_v_rap_hv_doorbel_delta (
fclt_f_district,
fclt_f_gebouw_code,
fclt_f_ruimte_omschrijving,
fclt_f_huuder,
vvo_actueel,
vvo_delta
)
AS
(SELECT DISTINCT
z.district,
z.gebouw_code,
z.ruimte_omschrijving,
z.huurder,
z.vvo_actueel,
z.vvo_verschil
FROM (SELECT COALESCE (x.district, y.district) district,
COALESCE (x.gebouw_code, y.gebouw_code) gebouw_code,
COALESCE (x.ruimte, y.ruimte)
ruimte_omschrijving,
DECODE (x.huurder,
COALESCE (y.huurder, x.huurder), x.huurder,
'***GEWIJZIGD: ' || COALESCE (x.huurder, ''))
huurder,
x.vvo vvo_actueel,
y.vvo vvo_laatste,
(COALESCE (x.vvo, 0) - COALESCE (y.vvo, 0))
vvo_verschil
FROM (SELECT huurder,
district,
gebouw_code,
verdieping,
ruimte || '-' || ruimte_omschrijving ruimte,
vvo
FROM aans_v_rap_huurdetail
WHERE vervallen IS NULL OR vervallen > SYSDATE) x
LEFT JOIN
(SELECT huurder,
district,
gebouw_code,
verdieping,
ruimte || '-' || ruimte_omschrijving ruimte,
vvo
FROM aans_hv_freeze
WHERE TO_CHAR (freeze_date, 'yyyy-mm-dd') =
(SELECT TO_CHAR (MAX (freeze_date), 'yyyy-mm-dd')
FROM aans_hv_freeze)) y
ON x.huurder = y.huurder
AND x.gebouw_code = y.gebouw_code
AND x.verdieping = y.verdieping
AND x.ruimte = y.ruimte
UNION
SELECT COALESCE (x.district, y.district) district,
COALESCE (x.gebouw_code, y.gebouw_code) gebouw,
COALESCE (x.ruimte, y.ruimte)
ruimte_omschrijving,
DECODE (x.huurder,
COALESCE (y.huurder, x.huurder), x.huurder,
'***GEWIJZIGD was: ' || COALESCE (y.huurder, ''))
huurder,
x.vvo vvo_actueel,
y.vvo vvo_laatste,
(COALESCE (x.vvo, 0) - COALESCE (y.vvo, 0))
vvo_verschil
FROM (SELECT huurder,
district,
gebouw_code,
verdieping,
ruimte || '-' || ruimte_omschrijving ruimte,
vvo
FROM aans_v_rap_huurdetail
WHERE vervallen IS NULL OR vervallen > SYSDATE) x
RIGHT JOIN
(SELECT huurder,
district,
gebouw_code,
verdieping,
ruimte || '-' || ruimte_omschrijving ruimte,
vvo
FROM aans_hv_freeze
WHERE TO_CHAR (freeze_date, 'yyyy-mm-dd') =
(SELECT TO_CHAR (MAX (freeze_date), 'yyyy-mm-dd')
FROM aans_hv_freeze)) y
ON x.huurder = y.huurder
AND x.gebouw_code = y.gebouw_code
AND x.verdieping = y.verdieping
AND x.ruimte = y.ruimte) z
WHERE vvo_verschil <> 0);
-- export om vierkante meters te bevriezen.
--
CREATE OR REPLACE PROCEDURE aans_export_hv_freeze (p_applname IN varchar2,
p_applrun IN varchar2,
p_filedir IN varchar2,
p_filename IN varchar2
)
AS
v_kwartaal VARCHAR2(10);
v_aantal NUMBER;
v_maand NUMBER;
v_datum DATE;
v_maand2 NUMBER;
v_opmerking VARCHAR2(100);
BEGIN
BEGIN
-- freeze wordt altijd weggeschreven onder het volgende kwartaal
v_kwartaal := TO_CHAR (ADD_MONTHS(SYSDATE,1), 'yyyy') || TRUNC ( (TO_NUMBER (TO_CHAR (ADD_MONTHS(SYSDATE,1), 'mm')) + 2) / 3);
-- kijk of er al een freeze bestaat
SELECT count(*), MAX(freeze_date) INTO v_aantal, v_datum FROM aans_hv_freeze WHERE freeze_q = v_kwartaal;
-- check of de freeze voor deze maand al gemaakt is.
IF v_aantal > 0 THEN
fac.writelog (p_applname,
'E',
'Error: Freeze voor kwartaal:' || v_kwartaal
|| ' is al op '
|| TO_CHAR (v_datum, 'dd-mm-yyyy')
|| ' aangemaakt.'|| v_opmerking,
''
);
ELSE
INSERT INTO aans_hv_freeze
(
freeze_date,
freeze_q,
huurder,
district,
gebouw,
gebouw_code,
exact_code,
gebouw_naam,
gebouw_adres,
gebouw_postcode,
gebouw_plaats,
verdieping,
ruimte,
verantw_sfm,
verantwoordelijke,
ruimte_omschrijving,
contractnummer,
wo,
vvo,
huur,
tarief,
totaal_huur,
basispakket,
tarief_bp,
totaal_bp,
servicekosten,
tarief_sk,
totaal_sk,
leegstand,
totaal,
contract_nummer,
contract_omschrijving,
looptijd_tot,
opzegdatum,
verlenging,
verlenging_datum,
vervallen,
alg_ruimte_key
)
SELECT SYSDATE,
v_kwartaal,
huurder,
district,
gebouw_code || ' - ' || gebouw_naam,
gebouw_code,
exact_code,
gebouw_naam,
gebouw_adres,
gebouw_postcode,
gebouw_plaats,
verdieping,
ruimte,
verantw_sfm,
verantw_fm,
ruimte_omschrijving,
contractnummer,
wo,
vvo,
huur,
tarief,
totaal_huur,
basispakket,
tarief_bp,
totaal_bp,
servicekosten,
tarief_sk,
totaal_sk,
DECODE(UPPER(leegstand), 'LEEGSTAND', 1,0),
totaal,
contract_nummer,
contract_omschrijving,
looptijd_tot,
opzegdatum,
verlenging,
verlenging_datum,
vervallen,
alg_ruimte_key
FROM aans_v_rap_huurdetail
WHERE vervallen IS NULL OR vervallen > SYSDATE;
fac.writelog (p_applname,
'E',
'Freeze voor kwartaal:' || v_kwartaal
|| ' op '
|| TO_CHAR (SYSDATE, 'dd-mm-yyyy')
|| ' is succesvol aangemaakt.'|| v_opmerking,
''
);
END IF;
EXCEPTION
WHEN OTHERS
THEN
fac.writelog (p_applname,
'E',
'Foutmelding!:'
|| SQLCODE
|| '/'
|| SUBSTR (SQLERRM, 1, 100),
'Neem contact op met uw consultant.'
);
END;
END;
/
CREATE OR REPLACE PACKAGE aans
AS
-- PACKAGES voor de AANS specifieke rapportages
TYPE t_cursor IS REF CURSOR;
PROCEDURE ppi_vakgroep (user_key IN NUMBER, p_datum_van IN VARCHAR2, p_datum_tot IN VARCHAR2, p_cursor OUT t_cursor);
PROCEDURE rap_freeze_delta (user_key IN number, p_datum_van IN varchar2, p_datum_tot IN varchar2, p_cursor OUT t_cursor);
END;
/
CREATE OR REPLACE PACKAGE BODY aans
AS
PROCEDURE ppi_vakgroep (user_key IN NUMBER,
p_datum_van IN VARCHAR2, -- Let wel: formaat '13-05-2005'
p_datum_tot IN VARCHAR2,
p_cursor OUT t_cursor)
AS
v_datum_van DATE;
v_datum_tot DATE;
BEGIN
v_datum_van := fac.safe_to_date (p_datum_van, 'dd-mm-yyyy');
v_datum_tot := fac.safe_to_date (p_datum_tot, 'dd-mm-yyyy');
OPEN p_cursor FOR
SELECT vakgroeptype || ' - ' || vakgroep || ' - ' || melding type_vakgroep_melding,
COUNT (mld_key) aantal_meldingen,
SUM (acceptoptijd) acceptoptijd,
SUM (uitvoeringoptijd) uitvoeringoptijd
FROM (SELECT DISTINCT
m.mld_melding_key mld_key,
(SELECT sd.ins_srtdiscipline_omschrijving
ins_srtdiscipline_omschrijving
FROM ins_srtdiscipline sd
WHERE sd.ins_srtdiscipline_key =
md.ins_srtdiscipline_key)
vakgroeptype,
md.ins_discipline_omschrijving vakgroep,
std.mld_stdmelding_omschrijving melding,
CASE SIGN(fac.datumtijdplusuitvoertijd (
fac.gettrackingdate ('MLDNEW', m.mld_melding_key),
std.mld_stdmelding_t_accepttijd.tijdsduur,
std.mld_stdmelding_t_accepttijd.eenheid)
- COALESCE (
fac.gettrackingdate ('MLDREJ', m.mld_melding_key),
fac.gettrackingdate ('MLDACP', m.mld_melding_key),
SYSDATE))
WHEN -1
THEN
0
ELSE
1
END
acceptoptijd,
CASE
WHEN fac.gettrackingdate ('MLDREJ',
m.mld_melding_key) IS NULL
THEN
CASE SIGN(fac.datumtijdplusuitvoertijd (
m.mld_melding_datum,
m.mld_melding_t_uitvoertijd.tijdsduur,
m.mld_melding_t_uitvoertijd.eenheid)
- COALESCE (
fac.gettrackingdate ('MLDREJ', m.mld_melding_key),
fac.gettrackingdate ('MLDAFM', m.mld_melding_key),
SYSDATE))
WHEN -1
THEN
0
ELSE
1
END
ELSE
1
END
uitvoeringoptijd
FROM mld_melding m,
mld_discipline md,
prs_perslid p,
mld_stdmelding std,
mld_opdr o
WHERE m.prs_perslid_key = p.prs_perslid_key
AND md.ins_discipline_key = std.mld_ins_discipline_key
AND std.mld_stdmelding_key = m.mld_stdmelding_key
AND m.mld_melding_key = o.mld_melding_key(+)
AND NOT EXISTS
(SELECT prs_link_key
FROM prs_kenmerklink kl
WHERE o.mld_uitvoerende_keys =
prs_link_key
AND kl.prs_kenmerk_key = 1040 -- opnemen in PPI
AND kl.prs_kenmerklink_waarde = 162) -- nee
AND m.mld_melding_datum BETWEEN v_datum_van
AND v_datum_tot)
GROUP BY vakgroeptype || ' - ' || vakgroep || ' - ' || melding
UNION ALL
SELECT '_Totaal',
COUNT (mld_key) aantal_meldingen,
SUM (acceptoptijd) acceptoptijd,
SUM (uitvoeringoptijd) uitvoeringoptijd
FROM (SELECT DISTINCT
m.mld_melding_key mld_key,
(SELECT sd.ins_srtdiscipline_omschrijving
ins_srtdiscipline_omschrijving
FROM ins_srtdiscipline sd
WHERE sd.ins_srtdiscipline_key =
md.ins_srtdiscipline_key)
vakgroeptype,
md.ins_discipline_omschrijving vakgroep,
std.mld_stdmelding_omschrijving melding,
CASE SIGN(fac.datumtijdplusuitvoertijd (
fac.gettrackingdate ('MLDNEW', m.mld_melding_key),
std.mld_stdmelding_t_accepttijd.tijdsduur,
std.mld_stdmelding_t_accepttijd.eenheid)
- COALESCE (
fac.gettrackingdate ('MLDREJ', m.mld_melding_key),
fac.gettrackingdate ('MLDACP', m.mld_melding_key),
SYSDATE))
WHEN -1
THEN
0
ELSE
1
END
acceptoptijd,
CASE
WHEN fac.gettrackingdate ('MLDREJ',
m.mld_melding_key) IS NULL
THEN
CASE SIGN(fac.datumtijdplusuitvoertijd (
m.mld_melding_datum,
m.mld_melding_t_uitvoertijd.tijdsduur,
m.mld_melding_t_uitvoertijd.eenheid)
- COALESCE (
fac.gettrackingdate ('MLDREJ', m.mld_melding_key),
fac.gettrackingdate ('MLDAFM', m.mld_melding_key),
SYSDATE))
WHEN -1
THEN
0
ELSE
1
END
ELSE
1
END
uitvoeringoptijd
FROM mld_melding m,
mld_discipline md,
prs_perslid p,
mld_stdmelding std,
mld_opdr o
WHERE m.prs_perslid_key = p.prs_perslid_key
AND md.ins_discipline_key = std.mld_ins_discipline_key
AND std.mld_stdmelding_key = m.mld_stdmelding_key
AND m.mld_melding_key = o.mld_melding_key(+)
AND NOT EXISTS
(SELECT prs_link_key
FROM prs_kenmerklink kl
WHERE o.mld_uitvoerende_keys =
prs_link_key
AND kl.prs_kenmerk_key = 1040 -- opnemen in PPI
AND kl.prs_kenmerklink_waarde = 162) -- nee
AND m.mld_melding_datum BETWEEN v_datum_van
AND v_datum_tot)
ORDER BY 1;
END;
-- Bepaal het verschil tussen twee freeze momenten
PROCEDURE rap_freeze_delta (user_key IN number,
p_datum_van IN varchar2, -- Let wel: formaat '13-05-2005' ,
p_datum_tot IN varchar2,
p_cursor OUT t_cursor
)
AS
v_datum_van DATE;
v_datum_tot DATE;
v_freeze_van DATE;
v_freeze_tot DATE;
BEGIN
v_datum_van := fac.safe_to_date (p_datum_van, 'dd-mm-yyyy');
v_datum_tot := fac.safe_to_date (p_datum_tot, 'dd-mm-yyyy') + 1;
SELECT DISTINCT freeze_date
INTO v_freeze_van
FROM aans_hv_freeze
WHERE ABS (freeze_date - v_datum_van) =
(SELECT MIN (ABS (freeze_date - v_datum_van))
FROM aans_hv_freeze);
SELECT DISTINCT freeze_date
INTO v_freeze_tot
FROM aans_hv_freeze
WHERE ABS (freeze_date - v_datum_tot) =
(SELECT MIN (ABS (freeze_date - v_datum_tot))
FROM aans_hv_freeze);
OPEN p_cursor FOR
SELECT DISTINCT
z.freeze,
z.district,
z.gebouw,
z.ruimte_omschrijving,
z.huurder,
z.vvo_actueel,
z.vvo_verschil
FROM (SELECT TO_CHAR (COALESCE (x.freeze_date, y.freeze_date),
'dd-mm-yyyy'
)
freeze,
COALESCE (x.district, y.district) district,
COALESCE (x.gebouw, y.gebouw) gebouw,
COALESCE (x.ruimte, y.ruimte) ruimte_omschrijving,
DECODE (x.huurder,
COALESCE (y.huurder, x.huurder), x.huurder,
'***GEWIJZIGD: ' || COALESCE (x.huurder, ''))
huurder,
x.vvo vvo_actueel,
y.vvo vvo_laatste,
(COALESCE (x.vvo, 0) - COALESCE (y.vvo, 0))
vvo_verschil
FROM (SELECT freeze_date,
huurder,
district,
gebouw,
verdieping,
ruimte || '-' || ruimte_omschrijving ruimte,
vvo
FROM aans_hv_freeze
WHERE freeze_date = v_freeze_van) x
LEFT JOIN
(SELECT freeze_date,
huurder,
district,
gebouw,
verdieping,
ruimte || '-' || ruimte_omschrijving ruimte,
vvo
FROM aans_hv_freeze
WHERE freeze_date = v_freeze_tot) y
ON x.huurder = y.huurder
AND x.gebouw = y.gebouw
AND x.verdieping = y.verdieping
AND x.ruimte = y.ruimte
UNION
SELECT TO_CHAR (COALESCE (x.freeze_date, y.freeze_date),
'dd-mm-yyyy'
)
freeze,
COALESCE (x.district, y.district) district,
COALESCE (x.gebouw, y.gebouw) gebouw,
COALESCE (x.ruimte, y.ruimte) ruimte_omschrijving,
DECODE (x.huurder,
COALESCE (y.huurder, x.huurder), x.huurder,
'***GEWIJZIGD was: ' || COALESCE (y.huurder, ''))
huurder,
x.vvo vvo_actueel,
y.vvo vvo_laatste,
(COALESCE (x.vvo, 0) - COALESCE (y.vvo, 0))
vvo_verschil
FROM (SELECT freeze_date,
huurder,
district,
gebouw,
verdieping,
ruimte || '-' || ruimte_omschrijving ruimte,
vvo
FROM aans_hv_freeze
WHERE freeze_date = v_freeze_van) x
RIGHT JOIN
(SELECT freeze_date,
huurder,
district,
gebouw,
verdieping,
ruimte || '-' || ruimte_omschrijving ruimte,
vvo
FROM aans_hv_freeze
WHERE freeze_date = v_freeze_tot) y
ON x.huurder = y.huurder
AND x.gebouw = y.gebouw
AND x.verdieping = y.verdieping
AND x.ruimte = y.ruimte) z
WHERE vvo_verschil <> 0;
END rap_freeze_delta;
END;
/
-- Vastgoed views themas en labels
CREATE OR REPLACE VIEW aans_v_sync_alg_ruimte
(
alg_ruimte_key,
alg_verdieping_key,
cadlabel
)
AS
SELECT r.alg_ruimte_key,
r.alg_verdieping_key,
REPLACE (alg_ruimte_nr, ' ', '')
FROM alg_ruimte r;
CREATE OR REPLACE VIEW aans_v_thema_basispakket
(
alg_ruimte_key,
waarde,
waarde_key
)
AS
SELECT r.alg_ruimte_key,
dn.mld_dienstniveau_omschr
|| ' ('
|| mld_dienstniveau_opmerking
|| ')',
r.mld_dienstniveau_key
FROM alg_v_aanwezigruimte r, mld_dienstniveau dn
WHERE r.mld_dienstniveau_key = dn.mld_dienstniveau_key;
CREATE OR REPLACE VIEW aans_v_thema_wptype
(
alg_ruimte_key,
waarde,
waarde_key
)
AS
SELECT r.alg_ruimte_key,
DECODE (aantal, 1, omschrijving, 'meerdere...'),
DECODE (aantal, 1, alg_kenmerk_key, '1')
FROM alg_v_aanwezigruimte r,
( SELECT MIN (k.alg_kenmerk_key) alg_kenmerk_key,
COUNT (k.alg_kenmerk_key) aantal,
REPLACE (MIN (k.alg_kenmerk_omschrijving), 'Aantal ', '')
omschrijving,
alg_onrgoed_key
FROM alg_onrgoedkenmerk ogk, alg_kenmerk k
WHERE ogk.alg_kenmerk_key = k.alg_kenmerk_key
AND k.alg_kenmerk_key IN (1182, 1183, 1184, 1185)
GROUP BY alg_onrgoed_key) kenmerk
WHERE r.alg_ruimte_key = kenmerk.alg_onrgoed_key;
CREATE OR REPLACE VIEW aans_v_thema_leegstand
(
alg_ruimte_key,
waarde,
waarde_key
)
AS
SELECT k.alg_onrgoed_key, fac_usrdata_omschr, fac_usrdata_key
FROM alg_onrgoedkenmerk k, fac_usrdata u
WHERE k.alg_onrgoed_key = k.alg_onrgoed_key
AND k.alg_onrgoedkenmerk_waarde = u.fac_usrdata_key
AND k.alg_kenmerk_key = 1186;
CREATE OR REPLACE VIEW aans_v_thema_wpopp
(
alg_ruimte_key,
waarde
)
AS
SELECT r.alg_ruimte_key,
ROUND ( (
alg_ruimte_bruto_vloeropp
+ alg_ruimte_bruto_vloeropp * COALESCE(fac.safe_to_number (ogkg.alg_onrgoedkenmerk_waarde),0)
+ alg_ruimte_bruto_vloeropp * COALESCE(fac.safe_to_number (ogkv.alg_onrgoedkenmerk_waarde),0)
)
/ SUM (fac.safe_to_number (ogkr.alg_onrgoedkenmerk_waarde)),
2)
FROM alg_v_aanwezigruimte r,
alg_verdieping v,
(SELECT alg_onrgoed_key, alg_onrgoedkenmerk_waarde
FROM alg_onrgoedkenmerk ogk
WHERE alg_kenmerk_key = 1240) ogkg, -- factor niet verhuurbaar op gebouw
(SELECT alg_onrgoed_key, alg_onrgoedkenmerk_waarde
FROM alg_onrgoedkenmerk ogk
WHERE alg_kenmerk_key = 1180) ogkv, -- factor niet verhuurbaar op verdieping
alg_onrgoedkenmerk ogkr
WHERE r.alg_verdieping_key = v.alg_verdieping_key
AND r.alg_ruimte_key = ogkr.alg_onrgoed_key
AND ogkr.alg_kenmerk_key IN (1182, 1183, 1184, 1185) -- werkplekken van verschillende types
AND r.alg_verdieping_key = ogkv.alg_onrgoed_key(+)
AND v.alg_gebouw_key = ogkg.alg_onrgoed_key(+)
GROUP BY r.alg_ruimte_key,
r.alg_ruimte_bruto_vloeropp,
ogkg.alg_onrgoedkenmerk_waarde,
ogkv.alg_onrgoedkenmerk_waarde;
CREATE OR REPLACE VIEW aans_v_rap_persoonsgegevens (
fclt_f_bedrijfsonderdeel,
fclt_f_achternaam,
voornaam,
telefoon,
fclt_f_autorisatie,
email,
fclt_f_pand
)
AS
SELECT (SELECT prs_afdeling_naam
FROM prs_afdeling a1
WHERE a1.prs_afdeling_key = a.prs_afdeling_key1)
bedrijfsonderdeel,
prs_perslid_naam achternaam,
prs_perslid_voornaam voornaam,
prs_perslid_telefoonnr telefoon,
fac_groep_omschrijving autorisatie,
prs_perslid_email email,
alg_gebouw_omschrijving pand
FROM prs_v_aanwezigperslid p,
prs_v_afdeling_boom a,
fac_gebruikersgroep gg,
fac_groep g,
prs_v_perslidwerkplek_gegevens pwg
WHERE p.prs_afdeling_key = a.prs_afdeling_key
AND p.prs_perslid_key = gg.prs_perslid_key(+)
AND p.prs_perslid_key = pwg.prs_perslid_key(+)
AND gg.fac_groep_key = g.fac_groep_key(+)
AND nvl (p.prs_perslid_oslogin, 'QueQueLeQue') NOT LIKE '\_%' ESCAPE '\';
-- view tbv kenmerk met bedrijven die hotelreserveringen kunnen aannemen
-- Hotelreserveringen
CREATE OR REPLACE VIEW aans_v_hotelbedrijven
(
prs_bedrijf_key,
prs_bedrijf_naam
)
AS
SELECT b.prs_bedrijf_key, b.prs_bedrijf_naam
FROM prs_bedrijf b, prs_bedrijfdienstlocatie bdl
WHERE b.prs_bedrijf_key = bdl.prs_bedrijf_key
AND bdl.prs_dienst_key = 358 --Hotelreserveringen
AND b.prs_bedrijf_verwijder IS NULL
AND b.prs_bedrijf_uitvoerende = 1
GROUP BY b.prs_bedrijf_key, b.prs_bedrijf_naam;
--=============================================================================
-- IMPORTFUNCTIES
-------------------------------------------------------------------------------
-------------------------------------------------------------------------------
-- IMPORTFUNCTIE - DIENST_LOC_BLD
-------------------------------------------------------------------------------
CREATE OR REPLACE VIEW aans_v_rap_dienst_loc_bld (fclt_f_bedrijfnaam
, fclt_f_bedrijf_nr
, fclt_f_dienst
, fclt_f_locatie_code
, fclt_f_gebouw_code
)
AS
SELECT prs_bedrijf_naam bedrijfnaam,
prs_leverancier_nr bedrijfnummer,
prs_dienst_omschrijving dienst,
alg_locatie_code locatie_code,
alg_gebouw_upper gebouw_code
FROM prs_v_aanwezigbedrijf b,
prs_dienst d,
alg_locatie l,
alg_gebouw g,
prs_bedrijfdienstlocatie bdl
WHERE b.prs_bedrijf_key = bdl.prs_bedrijf_key(+)
AND bdl.prs_dienst_key = d.prs_dienst_key(+)
AND bdl.alg_locatie_key = l.alg_locatie_key(+)
AND bdl.alg_gebouw_key = g.alg_gebouw_key(+)
AND COALESCE (b.prs_bedrijf_intern, 0) = 0;
CREATE OR REPLACE PROCEDURE aans_import_dienst_loc_bld (
p_import_key IN NUMBER
)
AS
CURSOR c_cursor
IS
SELECT *
FROM fac_imp_file
WHERE fac_import_key = p_import_key
ORDER BY fac_imp_file_index;
v_newline VARCHAR2 (1000); -- Import line
v_field VARCHAR2 (100); -- Import field
v_fielddelimitor VARCHAR2 (1); -- Field seperator
v_errormsg VARCHAR (200);
v_errorhint VARCHAR (200);
oracle_err_num NUMBER;
oracle_err_mes VARCHAR2 (200);
v_skipfield VARCHAR2 (100);
-- De importvelden
v_bedrijf_naam VARCHAR2 (100);
v_bedrijf_nr VARCHAR2 (100);
v_dienst_oms VARCHAR2 (100);
v_locatie_code VARCHAR2 (100);
v_gebouw_code VARCHAR2 (100);
header_found BOOLEAN;
BEGIN
-- Init
header_found := FALSE;
v_fielddelimitor := ';';
-- Clear my previous imported rows
DELETE FROM aans_imp_dienst_loc_bld;
FOR rec1 IN c_cursor
LOOP
BEGIN
v_newline := rec1.fac_imp_file_line;
IF SUBSTR (v_newline, 1, 3) = '?'
THEN
-- EF BB BF aangetroffen
fac.imp_writelog (p_import_key,
'W',
'Byte Order Mark aangetroffen',
'Bestand heeft onbehandeld UTF-8 formaat.'
);
v_newline := SUBSTR (v_newline, 4);
END IF;
fac.imp_getfield (v_newline, v_fielddelimitor, v_bedrijf_naam);
fac.imp_getfield (v_newline, v_fielddelimitor, v_bedrijf_nr);
fac.imp_getfield (v_newline, v_fielddelimitor, v_dienst_oms);
fac.imp_getfield (v_newline, v_fielddelimitor, v_locatie_code);
fac.imp_getfield (v_newline, v_fielddelimitor, v_gebouw_code);
-- Skip until a valid header is found
IF UPPER(v_bedrijf_naam) = 'BEDRIJFNAAM'
AND UPPER(v_bedrijf_nr) = 'BEDRIJF_NR'
AND UPPER(v_dienst_oms) = 'DIENST'
AND UPPER(v_locatie_code) = 'LOCATIE_CODE'
AND UPPER(v_gebouw_code) = 'GEBOUW_CODE'
THEN
-- Sla de kopregel over.
header_found := TRUE;
ELSIF (header_found)
THEN
INSERT INTO aans_imp_dienst_loc_bld
(prs_bedrijf_naam, prs_bedrijf_nr, prs_dienst_omschrijving, alg_locatie_code, alg_gebouw_code)
VALUES (SUBSTR (v_bedrijf_naam, 1, 60),
SUBSTR (v_bedrijf_nr, 1, 50),
SUBSTR (v_dienst_oms, 1, 60),
SUBSTR (v_locatie_code, 1, 10),
SUBSTR (v_gebouw_code, 1,10)
);
END IF;
COMMIT;
END;
END LOOP;
IF NOT header_found
THEN
fac.imp_writelog (p_import_key,
'E',
'Geen geldige header aangetroffen',
'Bestand is geen geldig BedrijfDienstLocatieGebouw importbestand.'
);
END IF;
EXCEPTION
WHEN OTHERS
THEN
oracle_err_num := SQLCODE;
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
v_errormsg := 'OTHERS (error ' || oracle_err_num || '/' || oracle_err_mes || ')';
fac.imp_writelog (p_import_key, 'E', SUBSTR (v_errormsg, 1, 1000), '');
-- maak de importtabel leeg om te voorkomen dat er halve bestanden ingelezen worden.
DELETE FROM aans_imp_dienst_loc_bld;
END;
/
CREATE OR REPLACE PROCEDURE aans_update_dienst_loc_bld (p_import_key IN NUMBER)
AS
CURSOR cbdlg
IS
SELECT prs_bedrijf_naam, prs_bedrijf_nr, prs_dienst_omschrijving, alg_locatie_code, alg_gebouw_code
FROM aans_imp_dienst_loc_bld
WHERE prs_dienst_omschrijving is not NULL;
v_oldcountbdlg NUMBER;
v_newcountbdlg NUMBER;
v_prs_bedrijf_key NUMBER;
v_prs_dienst_key NUMBER;
v_alg_locatie_key NUMBER;
v_alg_gebouw_key NUMBER;
v_errormsg VARCHAR (1000);
v_error_hint VARCHAR (1000);
oracle_err_mes VARCHAR2 (150);
oracle_err_num VARCHAR2 (150);
currentversion fac_module.fac_module_version%TYPE;
BEGIN
SELECT MAX (fac_module_version)
INTO currentversion
FROM fac_module;
fac.imp_writelog (p_import_key,
'I',
'Arcadis Aqumen BedrijfDienstLocatieGebouw import version ' || currentversion,
'$Revision$'
);
SELECT COUNT (*)
INTO v_oldcountbdlg
FROM aans_imp_dienst_loc_bld;
IF v_oldcountbdlg = 0 THEN
fac.imp_writelog (p_import_key,
'E',
'Arcadis Aqumen BedrijfDienstLocatieGebouw import bevat geen records',
'$Revision$'
);
return;
END IF;
-- How many active records are now present?
SELECT COUNT (*)
INTO v_oldcountbdlg
FROM prs_bedrijfdienstlocatie;
-- remove the existing records
DELETE prs_bedrijfdienstlocatie;
FOR rec IN cbdlg
LOOP
BEGIN
v_errormsg :=
'Kan dienst niet bepalen ['
|| rec.prs_dienst_omschrijving
|| '] ';
SELECT prs_dienst_key
INTO v_prs_dienst_key
FROM prs_dienst
WHERE UPPER(prs_dienst_omschrijving) = UPPER(rec.prs_dienst_omschrijving);
v_errormsg :=
'Kan locatie niet bepalen [' || rec.alg_locatie_code || '] ';
IF rec.alg_locatie_code IS NOT NULL
THEN
SELECT alg_locatie_key
INTO v_alg_locatie_key
FROM alg_v_aanweziglocatie
WHERE UPPER(alg_locatie_code) = UPPER(rec.alg_locatie_code);
ELSE
v_alg_locatie_key := NULL;
END IF;
v_errormsg :=
'Kan gebouw niet bepalen [' || rec.alg_gebouw_code || '] ';
IF rec.alg_gebouw_code IS NOT NULL
THEN
SELECT alg_gebouw_key
INTO v_alg_gebouw_key
FROM alg_v_aanweziggebouw
WHERE alg_gebouw_upper = UPPER(rec.alg_gebouw_code);
v_alg_locatie_key := NULL;
ELSE
v_alg_gebouw_key := NULL;
END IF;
v_errormsg :=
'Kan bedrijf niet bepalen [' || rec.prs_bedrijf_naam || '(' || rec.prs_bedrijf_nr || ')' || '] ';
-- BEGIN
-- SELECT prs_bedrijf_key
-- INTO v_prs_bedrijf_key
-- FROM prs_v_aanwezigbedrijf
-- WHERE upper(prs_leverancier_nr) = upper(rec.prs_bedrijf_nr)
-- OR COALESCE(fac.safe_to_number(prs_leverancier_nr), 1) = COALESCE(fac.safe_to_number(rec.prs_bedrijf_nr),0);
-- EXCEPTION
-- WHEN TOO_MANY_ROWS
-- THEN
SELECT prs_bedrijf_key
INTO v_prs_bedrijf_key
FROM prs_v_aanwezigbedrijf
WHERE upper(prs_bedrijf_naam) = upper (rec.prs_bedrijf_naam);
-- END;
v_errormsg :=
'Kan bedrijf/dienst/loc/bld niet wegschrijven ['
|| rec.prs_bedrijf_naam || '(' || rec.prs_bedrijf_nr || ')'
|| '/'
|| rec.prs_dienst_omschrijving
|| '/'
|| rec.alg_locatie_code
|| '/'
|| rec.alg_gebouw_code
|| '] ';
INSERT INTO prs_bedrijfdienstlocatie
(
prs_dienst_key, prs_bedrijf_key, alg_locatie_key, alg_gebouw_key
)
VALUES (v_prs_dienst_key, v_prs_bedrijf_key, v_alg_locatie_key, v_alg_gebouw_key);
COMMIT;
EXCEPTION
WHEN OTHERS
THEN
v_error_hint := v_errormsg;
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_errormsg,
v_error_hint
);
COMMIT; -- tbv logging
END;
END LOOP;
SELECT COUNT (*)
INTO v_newcountbdlg
FROM aans_imp_dienst_loc_bld;
fac.imp_writelog (p_import_key,
'S',
'Aantal BedrijfDienstLocBld vooraf: ' || TO_CHAR (v_oldcountbdlg) || ' nu: ' || TO_CHAR (v_newcountbdlg),
''
);
END;
/
--------------------------------
-- import contractorders
--------------------------------
CREATE OR REPLACE PROCEDURE aans_import_contract (
p_import_key IN NUMBER
) IS
BEGIN
aaxx_import_contract (p_import_key);
END aans_import_contract;
/
CREATE OR REPLACE PROCEDURE aans_update_contract (p_import_key IN NUMBER)
AS
BEGIN
aaxx_update_contract (p_import_key);
END aans_update_contract;
/
CREATE OR REPLACE VIEW aans_v_rap_ruimte_gegevens
(
fclt_f_locatiecode,
fclt_f_gebouwcode,
bouwlaagvolgnummer,
ruimtefunctie,
ruimtenummer,
ruimteomschrijving,
vloeroppervlak,
afdelingscode,
bezetting,
reserveerbare_ruimte,
categorie,
prijs,
opstelling,
aantalbezoekers,
naam,
omschrijving,
dienstniveau,
huur_conditiesoortcode,
contractnummer,
huur_tarief,
parkeerplaatsen,
servicekosten,
service_afw_tarief,
basisp__conditiesoort,
basisp_afw_tarief,
aanhuurcontract,
einddatum,
aantal_werkplekken_vast,
aantal_werkplekken_flex,
aantal_werkplekken_24_7,
aantal_vergaderwerkplekken,
vloerafwerking,
leegstand_ja_nee
)
AS
SELECT rg.alg_locatie_code locatiecode,
rg.alg_gebouw_upper gebouwcode,
rg.alg_verdieping_volgnr bouwlaagvolgnummer,
sr.alg_srtruimte_omschrijving ruimtefunctie,
r.alg_ruimte_nr ruimtenummer,
r.alg_ruimte_omschrijving ruimteomschrijving,
r.alg_ruimte_bruto_vloeropp vloeroppervlak,
a.prs_afdeling_naam afdelingscode,
ra.prs_ruimteafdeling_bezetting bezetting,
NULL reserveerbare_ruimte,
NULL categorie,
NULL prijs,
NULL opstelling,
NULL aantalbezoekers,
NULL naam,
NULL omschrijving,
mld_dienstniveau_omschr dienstniveau,
aaxx_get_kenmerk ('ALG', 1001, r.alg_ruimte_key)
huur_conditiesoortcode,
aaxx_get_kenmerk ('ALG', 1040, r.alg_ruimte_key) contractnummer,
aaxx_get_kenmerk ('ALG', 1002, r.alg_ruimte_key) huur_tarief,
aaxx_get_kenmerk ('ALG', 1010, r.alg_ruimte_key) parkeerplaatsen,
aaxx_get_kenmerk ('ALG', 1004, r.alg_ruimte_key) servicekosten,
aaxx_get_kenmerk ('ALG', 1005, r.alg_ruimte_key) service_afw_tarief,
aaxx_get_kenmerk ('ALG', 1007, r.alg_ruimte_key)
basisp__conditiesoort,
aaxx_get_kenmerk ('ALG', 1008, r.alg_ruimte_key) basisp_afw_tarief,
(SELECT cnt_contract_key
|| '.'
|| COALESCE (cnt_contract_versie, '0')
FROM cnt_contract c, alg_onrgoedkenmerk aogk
WHERE alg_kenmerk_key = 1061
AND alg_onrgoed_key = r.alg_ruimte_key
AND aogk.alg_onrgoedkenmerk_verwijder IS NULL
AND fac.safe_to_number (aogk.alg_onrgoedkenmerk_waarde) =
c.cnt_contract_key)
aanhuurcontract,
aaxx_get_kenmerk ('ALG', 1080, r.alg_ruimte_key) einddatum,
aaxx_get_kenmerk ('ALG', 1182, r.alg_ruimte_key) aantal_werkplekken_vast,
aaxx_get_kenmerk ('ALG', 1183, r.alg_ruimte_key) aantal_werkplekken_flex,
aaxx_get_kenmerk ('ALG', 1184, r.alg_ruimte_key) aantal_werkplekken_24_7,
aaxx_get_kenmerk ('ALG', 1185, r.alg_ruimte_key) aantal_vergaderwerkplekken,
aaxx_get_kenmerk ('ALG', 2, r.alg_ruimte_key) vloerafwerking,
aaxx_get_kenmerk ('ALG', 1186, r.alg_ruimte_key) leegstand_ja_nee
FROM alg_v_ruimte_gegevens rg,
alg_ruimte r,
alg_srtruimte sr,
mld_dienstniveau dn,
prs_v_aanwezigruimteafdeling ra,
prs_afdeling a
WHERE rg.alg_srtruimte_key = sr.alg_srtruimte_key
AND rg.alg_ruimte_key = r.alg_ruimte_key
AND r.mld_dienstniveau_key = dn.mld_dienstniveau_key(+)
AND r.alg_ruimte_key = ra.alg_ruimte_key(+)
AND ra.prs_afdeling_key = a.prs_afdeling_key(+);
CREATE OR REPLACE PROCEDURE aans_import_ruimte (p_import_key IN NUMBER)
AS
CURSOR c
IS
SELECT fac_imp_file_line
FROM fac_imp_file
WHERE fac_import_key = p_import_key
ORDER BY fac_imp_file_index;
v_locatie_code VARCHAR2 (10);
v_gebouw_code VARCHAR2 (12);
v_verdieping_volgnr NUMBER;
v_ruimte_nr VARCHAR2 (10);
v_dienstniveau VARCHAR2 (60);
v_huur_conditiesoortcode VARCHAR2 (60);
v_contractnummer VARCHAR2 (30);
v_huur_tarief NUMBER (7, 2);
v_parkeerplaatsen NUMBER;
v_servicekosten VARCHAR2 (60);
v_service_afw_tarief NUMBER (7, 2);
v_basisp_conditiesoort VARCHAR2 (60);
v_basisp_afw_tarief NUMBER (7, 2);
v_aanhuurcontract VARCHAR2 (30);
v_einddatum DATE;
v_afdelingscode VARCHAR2 (10);
v_bezettingspercentage NUMBER;
v_werkplekken_vast NUMBER;
v_werkplekken_flex NUMBER;
v_werkplekken_24_7 NUMBER;
v_vergaderwerkplekken NUMBER;
v_vloerafwerking VARCHAR2 (60);
v_leegstand VARCHAR2 (10);
v_dummy VARCHAR2 (1000);
v_newline VARCHAR2 (1000);
v_fielddelimitor VARCHAR2 (1);
v_errormsg VARCHAR2 (1000);
v_errorhint VARCHAR2 (1000);
v_header_is_valid NUMBER;
oracle_err_mes VARCHAR2 (150);
oracle_err_num VARCHAR2 (150);
BEGIN
fac_import_onrgoed2 (p_import_key);
-- verwijder de kenmerken en bezetting. Deze worden bij NS specifiek gevuld.
UPDATE fac_imp_onrgoed2
SET ALG_KENMERKWAARDE1 = NULL,
ALG_KENMERKWAARDE2 = NULL,
ALG_KENMERKWAARDE3 = NULL,
ALG_KENMERKWAARDE4 = NULL,
ALG_KENMERKWAARDE5 = NULL;
v_errorhint := 'Verwijderen vorige import';
DELETE FROM aans_imp_ruimte;
-- Init
v_fielddelimitor := ';';
v_header_is_valid := 0;
FOR rec IN c
LOOP
BEGIN
v_errorhint := 'Inlezen regel';
v_newline := rec.fac_imp_file_line;
IF UPPER (REPLACE(REPLACE(REPLACE(REPLACE (v_newline, '"', ''), ' ', '_'), '.', '_'), '/', '_')) LIKE
'LOCATIECODE;GEBOUWCODE;BOUWLAAGVOLGNUMMER;RUIMTEFUNCTIE;RUIMTENUMMER;RUIMTEOMSCHRIJVING;VLOEROPPERVLAK;AFDELINGSCODE;BEZETTING;RESERVEERBARE_RUIMTE;CATEGORIE;PRIJS;OPSTELLING;AANTALBEZOEKERS;NAAM;OMSCHRIJVING;DIENSTNIVEAU;HUUR_CONDITIESOORTCODE;CONTRACTNUMMER;HUUR_TARIEF;PARKEERPLAATSEN;SERVICEKOSTEN;SERVICE_AFW_TARIEF;BASISP__CONDITIESOORT;BASISP_AFW_TARIEF;AANHUURCONTRACT;EINDDATUM;AANTAL_WERKPLEKKEN_VAST;AANTAL_WERKPLEKKEN_FLEX;AANTAL_WERKPLEKKEN_24_7;AANTAL_VERGADERWERKPLEKKEN;VLOERAFWERKING;LEEGSTAND_JA_NEE%'
THEN
v_header_is_valid := 1;
-- we gaan geen regels inlezen die geen informatie bevatten.
ELSIF v_header_is_valid = 1
AND v_newline NOT LIKE ';;%'
AND LENGTH (v_newline) > 10
THEN
v_errorhint := 'Inlezen locatie_code';
fac.imp_getfield_nr (v_newline,
v_fielddelimitor,
1,
v_locatie_code);
v_errorhint := 'Inlezen gebouwcode';
fac.imp_getfield_nr (v_newline,
v_fielddelimitor,
2,
v_gebouw_code);
v_errorhint := 'Inlezen verdieping_volgnr';
fac.imp_getfield_nr (v_newline,
v_fielddelimitor,
3,
v_dummy);
v_verdieping_volgnr := fac.safe_to_number (v_dummy);
v_errorhint := 'Inlezen ruimte_nr';
fac.imp_getfield_nr (v_newline,
v_fielddelimitor,
5,
v_dummy);
v_ruimte_nr := SUBSTR(v_dummy, 1, 10);
IF LENGTH(v_dummy) > 10
THEN
fac.imp_writelog (p_import_key,
'W',
'Ruimtenummer te lang en wordt afgebroken tot: ' || v_ruimte_nr,
v_errorhint);
END IF;
v_errorhint := 'Inlezen dienstniveau';
fac.imp_getfield_nr (v_newline,
v_fielddelimitor,
17,
v_dienstniveau);
v_errorhint := 'Inlezen huur_conditiesoortcode';
fac.imp_getfield_nr (v_newline,
v_fielddelimitor,
18,
v_huur_conditiesoortcode);
v_errorhint := 'Inlezen contractnummer';
fac.imp_getfield_nr (v_newline,
v_fielddelimitor,
19,
v_contractnummer);
v_errorhint := 'Inlezen huur_tarief';
fac.imp_getfield_nr (v_newline,
v_fielddelimitor,
20,
v_dummy);
v_huur_tarief := fac.safe_to_number (REPLACE (v_dummy, ',', '.'));
v_errorhint := 'Inlezen parkeerplaatsen';
fac.imp_getfield_nr (v_newline,
v_fielddelimitor,
21,
v_parkeerplaatsen);
v_errorhint := 'Inlezen servicekosten';
fac.imp_getfield_nr (v_newline,
v_fielddelimitor,
22,
v_servicekosten);
v_errorhint := 'Inlezen service_afw_tarief';
fac.imp_getfield_nr (v_newline,
v_fielddelimitor,
23,
v_dummy);
v_service_afw_tarief :=
fac.safe_to_number (REPLACE (v_dummy, ',', '.'));
v_errorhint := 'Inlezen basisp_conditiesoort';
fac.imp_getfield_nr (v_newline,
v_fielddelimitor,
24,
v_basisp_conditiesoort);
v_errorhint := 'Inlezen basisp_afw_tarief';
fac.imp_getfield_nr (v_newline,
v_fielddelimitor,
25,
v_dummy);
v_basisp_afw_tarief :=
fac.safe_to_number (REPLACE (v_dummy, ',', '.'));
v_errorhint := 'Inlezen aanhuurcontract';
fac.imp_getfield_nr (v_newline,
v_fielddelimitor,
26,
v_aanhuurcontract);
v_errorhint := 'Inlezen einddatum';
fac.imp_getfield_nr (v_newline,
v_fielddelimitor,
27,
v_dummy);
v_einddatum := fac.safe_to_date (v_dummy, 'dd-mm-yyyy');
v_errorhint := 'Inlezen afdelingscode';
fac.imp_getfield_nr (v_newline,
v_fielddelimitor,
8,
v_dummy);
v_errorhint := 'Inlezen afdelingscode: ' || v_dummy;
v_afdelingscode := v_dummy;
v_errorhint := 'Inlezen bezettingspercentage';
fac.imp_getfield_nr (v_newline,
v_fielddelimitor,
9,
v_dummy);
v_bezettingspercentage :=
fac.safe_to_number (REPLACE (v_dummy, ',', '.'));
v_errorhint := 'Inlezen werkplekken_vast';
fac.imp_getfield_nr (v_newline,
v_fielddelimitor,
28,
v_dummy);
v_werkplekken_vast :=
fac.safe_to_number (REPLACE (v_dummy, ',', '.'));
v_errorhint := 'Inlezen werkplekken_flex';
fac.imp_getfield_nr (v_newline,
v_fielddelimitor,
29,
v_dummy);
v_werkplekken_flex :=
fac.safe_to_number (REPLACE (v_dummy, ',', '.'));
v_errorhint := 'Inlezen werkplekken_24_7';
fac.imp_getfield_nr (v_newline,
v_fielddelimitor,
30,
v_dummy);
v_werkplekken_24_7 :=
fac.safe_to_number (REPLACE (v_dummy, ',', '.'));
v_errorhint := 'Inlezen vergaderwerkplekken';
fac.imp_getfield_nr (v_newline,
v_fielddelimitor,
31,
v_dummy);
v_vergaderwerkplekken :=
fac.safe_to_number (REPLACE (v_dummy, ',', '.'));
v_errorhint := 'Inlezen vloerafwerking';
fac.imp_getfield_nr (v_newline,
v_fielddelimitor,
32,
v_vloerafwerking);
v_errorhint := 'Inlezen leegstand';
fac.imp_getfield_nr (v_newline,
v_fielddelimitor,
33,
v_leegstand);
INSERT INTO aans_imp_ruimte (locatie_code,
gebouw_code,
verdieping_volgnr,
ruimte_nr,
dienstniveau,
huur_conditiesoortcode,
contractnummer,
huur_tarief,
parkeerplaatsen,
servicekosten,
service_afw_tarief,
basisp_conditiesoort,
basisp_afw_tarief,
aanhuurcontract,
einddatum,
afdelingscode,
bezettingspercentage,
werkplekken_vast,
werkplekken_flex,
werkplekken_24_7,
vergaderwerkplekken,
vloerafwerking,
leegstand)
VALUES (v_locatie_code,
v_gebouw_code,
v_verdieping_volgnr,
v_ruimte_nr,
v_dienstniveau,
v_huur_conditiesoortcode,
v_contractnummer,
v_huur_tarief,
v_parkeerplaatsen,
v_servicekosten,
v_service_afw_tarief,
v_basisp_conditiesoort,
v_basisp_afw_tarief,
v_aanhuurcontract,
v_einddatum,
v_afdelingscode,
v_bezettingspercentage,
v_werkplekken_vast,
v_werkplekken_flex,
v_werkplekken_24_7,
v_vergaderwerkplekken,
v_vloerafwerking,
v_leegstand);
COMMIT;
END IF;
END;
END LOOP;
IF v_header_is_valid <> 1
THEN
fac.imp_writelog (p_import_key,
'E',
'Geen geldige header aangetroffen',
'');
END IF;
EXCEPTION
WHEN OTHERS
THEN
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
v_errormsg := ' ORACLE (error ' || oracle_err_mes || ')';
fac.imp_writelog (p_import_key,
'E',
v_errormsg,
v_errorhint);
END;
/
CREATE OR REPLACE PROCEDURE aans_update_ruimte (p_import_key IN NUMBER)
AS
CURSOR c IS
SELECT i.*, r.*
FROM aans_imp_ruimte i, alg_v_ruimte_gegevens r
WHERE i.locatie_code = r.alg_locatie_code
AND i.gebouw_code = r.alg_gebouw_upper
AND TRIM (i.verdieping_volgnr) = TRIM (r.alg_verdieping_volgnr)
AND TRIM (i.ruimte_nr) = TRIM (r.alg_ruimte_nr);
v_dummy VARCHAR2 (1000);
v_key NUMBER;
v_count_cnt NUMBER;
v_newline VARCHAR2 (1000);
v_fielddelimitor VARCHAR2 (1);
v_errormsg VARCHAR2 (1000);
v_errorhint VARCHAR2 (1000);
v_header_is_valid NUMBER;
oracle_err_mes VARCHAR2 (300);
oracle_err_num VARCHAR2 (300);
v_aanduiding VARCHAR2 (100);
v_count NUMBER;
v_k_aantal_werkplekken_vast NUMBER;
v_k_aantal_werkplekken_flex NUMBER;
v_k_aantal_werkplekken_24_7 NUMBER;
v_k_aantal_vergaderwerkplekken NUMBER;
v_k_leegstand_ja_nee NUMBER;
v_usrtab_vloerafwerking NUMBER;
BEGIN
v_k_aantal_werkplekken_vast := 1182;
v_k_aantal_werkplekken_flex := 1183;
v_k_aantal_werkplekken_24_7 := 1184;
v_k_aantal_vergaderwerkplekken := 1185;
v_k_leegstand_ja_nee := 1186;
v_usrtab_vloerafwerking := 641;
fac_update_onrgoed2 (p_import_key);
SELECT count(distinct aanhuurcontract)
INTO v_count_cnt
FROM aans_imp_ruimte
WHERE aanhuurcontract IS NOT NULL;
-- verwijder de ruimteafdelingbezetting voor alle ruimten in deze import
-- vervolgens wordt straks de bezetting weer ingevuld.
FOR rec IN c
LOOP
BEGIN
DELETE prs_ruimteafdeling
WHERE alg_ruimte_key = rec.alg_ruimte_key;
END;
END LOOP;
FOR rec IN c
LOOP
BEGIN
v_aanduiding := rec.locatie_code || '-' || rec.gebouw_code || '-' || rec.verdieping_volgnr || '-' || rec.ruimte_nr;
IF rec.dienstniveau IS NOT NULL
THEN
v_errorhint := 'Aanpassen dienstniveau: ' || rec.dienstniveau;
SELECT mld_dienstniveau_key
INTO v_key
FROM mld_dienstniveau
WHERE UPPER(mld_dienstniveau_omschr) = UPPER (rec.dienstniveau);
UPDATE alg_ruimte r SET mld_dienstniveau_key = v_key WHERE r.alg_ruimte_key = rec.alg_ruimte_key;
END IF;
IF rec.huur_conditiesoortcode IS NOT NULL
THEN
v_errorhint := 'Aanpassen huur_conditiesoortcode: ' || rec.huur_conditiesoortcode;
SELECT fac_usrdata_key
INTO v_key
FROM fac_usrdata
WHERE fac_usrdata_verwijder IS NULL
AND UPPER(fac_usrdata_omschr) = UPPER (rec.huur_conditiesoortcode)
AND fac_usrtab_key = 1;
-- Conditiecodes voor huur
aaxx_set_kenmerk('ALG', 1001, rec.alg_ruimte_key, v_key, 0); -- Huur conditiesoortcode
END IF;
-- contractnummer tbd ???
IF rec.huur_tarief IS NOT NULL
THEN
v_errorhint := 'Aanpassen huur_tarief: ' || rec.huur_tarief;
aaxx_set_kenmerk('ALG', 1002, rec.alg_ruimte_key, rec.huur_tarief, 0); -- Huur tarief
END IF;
IF rec.parkeerplaatsen IS NOT NULL
THEN
v_errorhint := 'Aanpassen parkeerplaatsen: ' || rec.parkeerplaatsen;
aaxx_set_kenmerk('ALG', 1010, rec.alg_ruimte_key, rec.parkeerplaatsen, 0);
END IF;
IF rec.servicekosten IS NOT NULL
THEN
v_errorhint := 'Aanpassen servicekosten: ' || rec.servicekosten;
SELECT fac_usrdata_key
INTO v_key
FROM fac_usrdata
WHERE fac_usrdata_verwijder IS NULL
AND UPPER(fac_usrdata_omschr) = UPPER (rec.servicekosten)
AND fac_usrtab_key = 2;
-- Conditiecodes voor service
aaxx_set_kenmerk('ALG', 1004, rec.alg_ruimte_key, v_key, 0); -- Servicekosten
END IF;
IF rec.service_afw_tarief IS NOT NULL
THEN
v_errorhint := 'Aanpassen service_afw_tarief: ' || rec.service_afw_tarief;
aaxx_set_kenmerk('ALG', 1005, rec.alg_ruimte_key, rec.service_afw_tarief, 0); -- Service afw tarief
END IF;
IF rec.basisp_conditiesoort IS NOT NULL
THEN
v_errorhint := 'Aanpassen basisp_conditiesoort: ' || rec.basisp_conditiesoort;
SELECT fac_usrdata_key
INTO v_key
FROM fac_usrdata
WHERE fac_usrdata_verwijder IS NULL
AND UPPER(fac_usrdata_omschr) = UPPER (rec.basisp_conditiesoort)
AND fac_usrtab_key = 3;
-- Conditiecodes voor BP
aaxx_set_kenmerk('ALG', 1007, rec.alg_ruimte_key, v_key, 0); -- Basisp. conditisoort
END IF;
IF rec.basisp_afw_tarief IS NOT NULL
THEN
v_errorhint := 'Aanpassen basisp_afw_tarief: ' || rec.basisp_afw_tarief;
aaxx_set_kenmerk('ALG', 1008, rec.alg_ruimte_key, rec.basisp_afw_tarief, 0); -- Basisp afw tarief
END IF;
-- contractnummers alleen op ruimteniveau bijhouden als er binnen het gebouw meerdere aanhuurcontracten zijn.
IF v_count_cnt > 1
THEN
IF rec.aanhuurcontract IS NOT NULL
THEN
v_errorhint := 'Aanpassen aanhuurcontract: ' || rec.aanhuurcontract;
SELECT cnt_contract_key
INTO v_key
FROM cnt_contract
WHERE cnt_contract_verwijder IS NULL
AND cnt_contract_nummer_intern || '.' || cnt_contract_versie = TRIM (rec.aanhuurcontract);
aaxx_set_kenmerk('ALG', 1061, rec.alg_ruimte_key, v_key, 0); -- Aanhuurcontract
END IF;
IF rec.einddatum IS NOT NULL
THEN
v_errorhint := 'Aanpassen einddatum aanhuurcontract: ' || rec.einddatum;
aaxx_set_kenmerk('ALG', 1080, rec.alg_ruimte_key, to_char(rec.einddatum, 'dd-mm-yyyy'), 0); -- Einddatum
END IF;
END IF;
IF rec.afdelingscode IS NOT NULL
THEN
v_errorhint := 'Aanpassen afdelingbezetting: ' || rec.afdelingscode || ' bezetting: ' || rec.bezettingspercentage;
BEGIN
SELECT prs_afdeling_key
INTO v_key
FROM prs_afdeling
WHERE prs_afdeling_verwijder IS NULL
AND prs_bedrijf_key IS NOT NULL
AND UPPER(prs_afdeling_naam) = UPPER(rec.afdelingscode);
EXCEPTION WHEN NO_DATA_FOUND THEN
SELECT prs_afdeling_key
INTO v_key
FROM prs_afdeling
WHERE prs_afdeling_verwijder IS NULL
AND prs_bedrijf_key IS NULL
AND UPPER(prs_afdeling_naam) = UPPER(rec.afdelingscode);
END;
INSERT INTO prs_ruimteafdeling (prs_afdeling_key, alg_ruimte_key, prs_ruimteafdeling_bezetting)
VALUES (v_key, rec.alg_ruimte_key, COALESCE(rec.bezettingspercentage, 100));
END IF;
IF rec.werkplekken_vast IS NOT NULL
THEN
v_errorhint := 'Aanpassen werkplekken_vast: ' || rec.werkplekken_vast;
aaxx_set_kenmerk('ALG', v_k_aantal_werkplekken_vast, rec.alg_ruimte_key, rec.werkplekken_vast, 0); -- Aantal werkplekken Vast
END IF;
IF rec.werkplekken_flex IS NOT NULL
THEN
v_errorhint := 'Aanpassen werkplekken_flex: ' || rec.werkplekken_flex;
aaxx_set_kenmerk('ALG', v_k_aantal_werkplekken_flex, rec.alg_ruimte_key, rec.werkplekken_flex, 0); -- Aantal werkplekken Flex
END IF;
IF rec.werkplekken_24_7 IS NOT NULL
THEN
v_errorhint := 'Aanpassen werkplekken_24_7: ' || rec.werkplekken_24_7;
aaxx_set_kenmerk('ALG', v_k_aantal_werkplekken_24_7, rec.alg_ruimte_key, rec.werkplekken_24_7, 0); -- Aantal werkplekken 24/7
END IF;
IF rec.vergaderwerkplekken IS NOT NULL
THEN
v_errorhint := 'Aanpassen vergaderwerkplekken: ' || rec.vergaderwerkplekken;
aaxx_set_kenmerk('ALG', v_k_aantal_vergaderwerkplekken, rec.alg_ruimte_key, rec.vergaderwerkplekken, 0); -- Aantal vergaderwerkplekken
END IF;
IF rec.vloerafwerking IS NOT NULL
THEN
v_errorhint := 'Aanpassen vloerafwerking: ' || rec.vloerafwerking;
SELECT fac_usrdata_key
INTO v_key
FROM fac_usrdata
WHERE fac_usrdata_verwijder IS NULL
AND UPPER(fac_usrdata_omschr) = UPPER (rec.vloerafwerking)
AND fac_usrtab_key = v_usrtab_vloerafwerking;
-- Vloerafwerking
aaxx_set_kenmerk('ALG', 2, rec.alg_ruimte_key, v_key, 0); -- Vloerafwerking
END IF;
IF rec.leegstand IS NOT NULL
THEN
v_errorhint := 'Aanpassen leegstand: rec.leegstand';
SELECT fac_usrdata_key
INTO v_key
FROM fac_usrdata
WHERE fac_usrdata_verwijder IS NULL
AND UPPER(fac_usrdata_omschr) = UPPER (rec.leegstand)
AND fac_usrtab_key = 121;
-- Leegstand
aaxx_set_kenmerk('ALG', v_k_leegstand_ja_nee, rec.alg_ruimte_key, v_key, 0); -- Leegstand
END IF;
EXCEPTION
WHEN OTHERS
THEN
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
v_errormsg := ' ORACLE (error ' || oracle_err_mes || ')';
fac.imp_writelog (p_import_key,
'E',
v_errormsg,
v_aanduiding || ': ' || v_errorhint);
END;
END LOOP;
EXCEPTION
WHEN OTHERS
THEN
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
v_errormsg := ' ORACLE (error ' || oracle_err_mes || ')';
fac.imp_writelog (p_import_key,
'E',
v_errormsg,
v_aanduiding || ': ' || v_errorhint);
END;
/
CREATE OR REPLACE PROCEDURE aans_export_bezoekers (
p_applname IN VARCHAR2,
p_applrun IN VARCHAR2,
p_filedir IN VARCHAR2,
p_filename IN VARCHAR2
)
AS
BEGIN
INSERT INTO fac_notificatie (fac_srtnotificatie_key,
fac_notificatie_status,
fac_notificatie_receiver_email,
fac_notificatie_oms,
fac_notificatie_refkey,
fac_notificatie_extrakey,
prs_perslid_key_sender,
fac_notificatie_lang)
SELECT (SELECT fac_srtnotificatie_key
FROM fac_srtnotificatie
WHERE fac_srtnotificatie_code = 'CUST01'),
2,
kw.bez_kenmerkwaarde_waarde,
'Bevestigingmail afspraak '
|| TO_CHAR (bez_afspraak_datum, 'dd-mm-yyyy'),
a.bez_afspraak_key,
b.bez_bezoekers_key,
4,
'NL'
FROM bez_afspraak a, bez_bezoekers b, bez_kenmerkwaarde kw, alg_v_onroerendgoed og
WHERE a.bez_afspraak_key = b.bez_afspraak_key
AND b.bez_bezoekers_key = KW.BEZ_BEZOEKERS_KEY
AND kw.bez_kenmerk_key = 1000
AND a.alg_locatie_key = 59
AND a.alg_onrgoed_keys = og.alg_onroerendgoed_keys
AND og.alg_gebouw_key = 175 -- katreinetoren
AND bez_afspraak_datum > SYSDATE
AND TRUNC (bez_kenmerkwaarde_aanmaak) = TRUNC (SYSDATE);
END;
/
CREATE OR REPLACE VIEW aans_v_export_res_ruimte_xml (
result,
result_order
)
AS
SELECT fac_rapport_regel, fac_rapport_volgnr
FROM fac_rapport
WHERE fac_rapport_node = SUBSTR ('RES_RUIMTE_XML', 1, 12);
CREATE OR REPLACE PROCEDURE aans_select_res_ruimte_xml (p_applname IN VARCHAR2,
p_applrun IN VARCHAR2
)
AS
CURSOR c_res
IS
SELECT TRIM(SUBSTR (
rr.res_ruimte_nr,
DECODE (INSTR (rr.res_ruimte_nr, 'etage -'),
0, 0,
INSTR (rr.res_ruimte_nr, 'etage -') + 7))) res_ruimte_nr,
rg.alg_locatie_code,
rg.alg_locatie_omschrijving,
rg.alg_gebouw_upper,
rg.alg_gebouw_omschrijving,
rg.alg_verdieping_code,
rg.alg_verdieping_omschrijving,
rr.res_ruimte_key,
TO_CHAR (rrr.res_rsv_ruimte_van, 'hh24:mi') van,
TO_CHAR (rrr.res_rsv_ruimte_tot, 'hh24:mi') tot,
rrr.res_reservering_key,
rrr.res_rsv_ruimte_volgnr,
rrr.res_rsv_ruimte_omschrijving,
ph.prs_perslid_naam_full HOST,
pc.prs_perslid_naam_full contact,
rrr.res_rsv_ruimte_host_key,
rrr.res_rsv_ruimte_bezoekers,
DECODE (
(SELECT COUNT ( * )
FROM bez_bezoekers b, bez_afspraak a
WHERE a.res_rsv_ruimte_key = rrr.res_rsv_ruimte_key
AND a.bez_afspraak_key = b.bez_afspraak_key),
0,
'nee',
'ja')
bez_aangemeld,
rd.res_disc_params_preposttime schoonmaak
FROM res_rsv_ruimte rrr,
( SELECT res_rsv_ruimte_key,
res_ruimte_key,
MAX (alg_ruimte_key) alg_ruimte_key
FROM res_v_rsv_ruimte_2_alg_ruimte
GROUP BY res_rsv_ruimte_key, res_ruimte_key) rarg,
res_ruimte rr,
alg_v_ruimte_gegevens rg,
prs_v_perslid_fullnames pc,
prs_v_perslid_fullnames ph,
res_disc_params rd
WHERE rarg.res_ruimte_key IS NOT NULL
AND rarg.res_ruimte_key = rr.res_ruimte_key
AND rarg.res_rsv_ruimte_key = rrr.res_rsv_ruimte_key
AND TRUNC (rrr.res_rsv_ruimte_van) = TRUNC (SYSDATE)
AND rarg.alg_ruimte_key = rg.alg_ruimte_key
AND rrr.res_rsv_ruimte_host_key = ph.prs_perslid_key
AND rrr.res_rsv_ruimte_contact_key = pc.prs_perslid_key
AND rr.res_discipline_key = rd.res_ins_discipline_key;
v_first NUMBER;
v_count NUMBER;
PROCEDURE add_row (p_regel IN varchar2)
AS
BEGIN
INSERT INTO fac_rapport
(
fac_rapport_node, fac_rapport_volgnr, fac_rapport_regel
)
VALUES (SUBSTR (p_applname, 1, 12), v_count, p_regel);
v_count := v_count + 1;
END;
PROCEDURE add_element (p_tag IN varchar2, p_value IN varchar2)
AS
BEGIN
add_row( '<'
|| p_tag
|| '>'
|| xml.char_to_html (p_value)
|| '</'
|| p_tag
|| '>');
END;
BEGIN
v_count := 0;
DELETE fac_rapport
WHERE fac_rapport_node = SUBSTR (p_applname, 1, 12);
-- header
add_row ('<?xml version="1.0" encoding="windows-1252" standalone="yes" ?>');
add_row ('<FACILITOR>');
add_row ('<RESERVERING>');
FOR rec IN c_res
LOOP
BEGIN
add_row ('<ROW>');
add_element ('RUIMTE_NAAM', rec.res_ruimte_nr);
add_element ('LOCATIE_CODE', rec.alg_locatie_code);
add_element ('LOCATIE_NAAM', rec.alg_locatie_omschrijving);
add_element ('GEBOUW_CODE', rec.alg_gebouw_upper);
add_element ('GEBOUW_NAAM', rec.alg_gebouw_omschrijving);
add_element ('VERDIEPING_CODE', rec.alg_verdieping_code);
add_element ('VERDIEPING_NAAM', rec.alg_verdieping_omschrijving);
add_element ('RUIMTE_KEY', rec.res_ruimte_key);
add_element ('VAN', rec.van);
add_element ('TOT', rec.tot);
add_element ('GASTHEER_NAAM', rec.host);
add_element ('CONTACT_NAAM', rec.contact);
add_element ('OMSCHRIJVING', rec.res_rsv_ruimte_omschrijving);
add_element ('BEZOEKERS_AANGEMELD', rec.bez_aangemeld);
add_element ('SCHOONMAAKTIJD', rec.schoonmaak);
add_row ('</ROW>');
END;
END LOOP;
add_row ('</RESERVERING>');
add_row ('</FACILITOR>');
END;
/
BEGIN adm.systrackscriptId('$Id$', 0); END;
/
BEGIN fac.registercustversion('AANS', 58); END;
/
COMMIT;
spool off