3140 lines
118 KiB
SQL
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
|