3292 lines
126 KiB
SQL
3292 lines
126 KiB
SQL
--
|
|
-- $Id$
|
|
--
|
|
-- Script containing customer specific sql statements for the FACILITOR database
|
|
|
|
DEFINE thisfile = 'AAEN.SQL'
|
|
DEFINE dbuser = '^AAEN'
|
|
|
|
SET ECHO ON
|
|
SET DEFINE ON
|
|
COLUMN fcltlogfile NEW_VALUE fcltlogfile NOPRINT;
|
|
WHENEVER SQLERROR EXIT;
|
|
SELECT adm.scriptspoolfile('&dbuser', '&thisfile') AS fcltlogfile FROM DUAL;
|
|
WHENEVER SQLERROR CONTINUE;
|
|
SPOOL &fcltlogfile
|
|
SET DEFINE OFF
|
|
|
|
------ payload begin ------
|
|
|
|
-- script om dagelijks terugkerende scripts aan te roepen.
|
|
CREATE OR REPLACE PROCEDURE aaen_select_daily_task (p_applname IN VARCHAR2, p_applrun IN VARCHAR2)
|
|
AS
|
|
BEGIN
|
|
aaxx_daily_task (p_applname, p_applrun);
|
|
|
|
-- voeg actuele bezetting toe aan reserveringen die afgelopen zijn.
|
|
INSERT INTO res_kenmerkwaarde (res_rsv_ruimte_key, res_kenmerk_key, res_kenmerkreservering_waarde)
|
|
SELECT rrr.res_rsv_ruimte_key,
|
|
10,
|
|
ROUND (aaen.get_rsv_ruimte_bezetting (res_rsv_ruimte_key) * 24, 2)
|
|
FROM res_rsv_ruimte rrr,
|
|
res_ruimte_opstelling ro,
|
|
res_alg_ruimte rar,
|
|
ins_deel d
|
|
WHERE rrr.res_ruimte_opstel_key = ro.res_ruimte_opstel_key
|
|
AND ro.res_ruimte_key = rar.res_ruimte_key
|
|
AND rar.alg_ruimte_key = d.ins_alg_ruimte_key
|
|
AND d.ins_srtdeel_key = 681
|
|
AND res_alg_ruimte_verwijder IS NULL
|
|
AND res_rsv_ruimte_van < TRUNC (SYSDATE)
|
|
AND NOT EXISTS
|
|
(SELECT res_kenmerkwaarde_key
|
|
FROM res_kenmerkwaarde kw
|
|
WHERE res_kenmerk_key = 10
|
|
AND kw.res_rsv_ruimte_key = rrr.res_rsv_ruimte_key);
|
|
|
|
END;
|
|
/
|
|
|
|
-- budgettracker overrules
|
|
CREATE OR REPLACE VIEW aaen_v_export_budget_tracker (RESULT, result_order) AS SELECT RESULT, result_order FROM aaxx_v_export_budget_tracker;
|
|
|
|
-- export overrules
|
|
-- exact
|
|
-- Leverancier overrulles
|
|
CREATE OR REPLACE PROCEDURE aaen_import_opdrstat_strukton (
|
|
p_import_key IN NUMBER)
|
|
AS
|
|
BEGIN
|
|
aaxx_import_opdrstat_strukton (p_import_key);
|
|
END aaen_import_opdrstat_strukton;
|
|
/
|
|
|
|
CREATE OR REPLACE PROCEDURE aaen_update_opdrstat_strukton (
|
|
p_import_key IN NUMBER)
|
|
AS
|
|
BEGIN
|
|
aaxx_update_opdrstat_strukton (p_import_key);
|
|
END aaen_update_opdrstat_strukton;
|
|
/
|
|
|
|
CREATE OR REPLACE VIEW aaen_v_export_exact (RESULT, result_order) AS SELECT RESULT, result_order FROM aaxx_v_export_exact_xml;
|
|
CREATE OR REPLACE PROCEDURE aaen_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 aaen_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;
|
|
/
|
|
|
|
CREATE OR REPLACE VIEW aaen_v_export_verwerk_exact (RESULT, result_order) AS SELECT RESULT, result_order FROM aaxx_v_export_verwerk_exact;
|
|
-- Procedure om alle geexporteerde facturen naar status verwerkt te zetten.
|
|
CREATE OR REPLACE PROCEDURE aaen_export_verwerk_exact (
|
|
p_applname IN VARCHAR2,
|
|
p_applrun IN VARCHAR2,
|
|
p_filedir IN VARCHAR2,
|
|
p_filename IN VARCHAR2
|
|
)
|
|
AS
|
|
CURSOR c_fact
|
|
IS
|
|
SELECT f.fin_factuur_key
|
|
FROM aaxx_exp_factuur f
|
|
, aaxx_v_factuur_gegevens fg
|
|
WHERE f.fin_factuur_key = fg.fin_factuur_key
|
|
AND fg.fin_factuur_statuses_key = 6;
|
|
|
|
CURSOR c_opdr
|
|
IS
|
|
SELECT fg.mld_opdr_key, mld_statusopdr_key, m.mld_melding_status
|
|
FROM aaxx_exp_factuur f
|
|
, aaxx_v_factuur_gegevens fg
|
|
, mld_opdr o
|
|
, mld_melding m
|
|
WHERE f.fin_factuur_key = fg.fin_factuur_key
|
|
AND fg.mld_opdr_key = o.mld_opdr_key
|
|
AND o.mld_melding_key = m.mld_melding_key
|
|
AND laatste_factuur = 1
|
|
AND fg.fin_factuur_statuses_key = 6;
|
|
|
|
v_errormsg VARCHAR (200);
|
|
oracle_err_num NUMBER;
|
|
oracle_err_mes VARCHAR2 (200);
|
|
v_aanvrager NUMBER;
|
|
v_bestelling_key NUMBER;
|
|
v_logdate DATE;
|
|
BEGIN
|
|
v_errormsg := 'Geen akties';
|
|
|
|
-- Facilitor user
|
|
v_aanvrager := 4;
|
|
v_logdate := SYSDATE;
|
|
|
|
-- voeg opdrachten toe aan aaen specifieke verkoopbuffer. Deze verkoopbuffer wordt gebruikt om bestanden
|
|
-- aan te leveren naar de klant
|
|
INSERT INTO aaen_verkoopbuffer (ins_srtdiscipline_prefix,
|
|
referentie,
|
|
grootboekrekening,
|
|
bedrag,
|
|
kostenplaats,
|
|
ponummer,
|
|
omschrijving,
|
|
ordernummer,
|
|
factuurnummer)
|
|
(SELECT sd.ins_srtdiscipline_prefix,
|
|
ks.prs_kostensoort_oms || ' - ' || l.alg_locatie_omschrijving,
|
|
ud.fac_usrdata_omschr,
|
|
f.fin_factuur_totaal,
|
|
(SELECT prs_kenmerklink_waarde
|
|
FROM prs_kenmerklink kl
|
|
WHERE kl.prs_kenmerk_key = 1000 -- kostenplaats
|
|
AND prs_link_key = m.prs_perslid_key)
|
|
kostenplaats,
|
|
DECODE (
|
|
mld_typeopdr_omschrijving,
|
|
'Projectorder',
|
|
(SELECT mld_kenmerkopdr_waarde
|
|
FROM mld_kenmerkopdr ko, mld_kenmerk k
|
|
WHERE ko.mld_kenmerk_key = k.mld_kenmerk_key
|
|
AND k.mld_srtkenmerk_key = 341 -- PO enexis
|
|
AND ko.mld_opdr_key = o.mld_opdr_key),
|
|
'')
|
|
poenexis,
|
|
SUBSTR (o.mld_opdr_omschrijving, 1, 1000) omschrijving,
|
|
m.mld_melding_key || '/' || o.mld_opdr_bedrijfopdr_volgnr,
|
|
f.fin_factuur_key
|
|
FROM mld_opdr o,
|
|
fin_factuur f,
|
|
mld_melding m,
|
|
mld_stdmelding std,
|
|
ins_tab_discipline d,
|
|
ins_srtdiscipline sd,
|
|
fac_usrdata ud,
|
|
prs_kostensoort ks,
|
|
mld_typeopdr ot,
|
|
alg_locatie l,
|
|
aaxx_exp_factuur ef,
|
|
aaxx_v_factuur_gegevens fg
|
|
WHERE ef.fin_factuur_key = f.fin_factuur_key
|
|
AND f.fin_factuur_key = fg.fin_factuur_key
|
|
AND fg.fin_factuur_statuses_key = 6
|
|
AND f.mld_opdr_key = o.mld_opdr_key
|
|
AND o.mld_melding_key = m.mld_melding_key
|
|
AND m.mld_stdmelding_key = std.mld_stdmelding_key
|
|
AND std.mld_ins_discipline_key = d.ins_discipline_key
|
|
AND d.ins_srtdiscipline_key = sd.ins_srtdiscipline_key
|
|
AND f.prs_kostensoort_key = ks.prs_kostensoort_key
|
|
AND ks.prs_kostensoort_oms = ud.fac_usrdata_code
|
|
AND ud.fac_usrtab_key = 281 -- Grootboekrekening Enexis
|
|
AND ud.fac_usrdata_verwijder IS NULL
|
|
AND m.mld_alg_locatie_key = l.alg_locatie_key
|
|
AND o.mld_typeopdr_key = ot.mld_typeopdr_key);
|
|
|
|
|
|
-- voeg opdrachten toe aan de generieke verkoopbuffer om orders door te zetten naar Exact.
|
|
INSERT INTO fin_verkoopfactuur
|
|
(
|
|
-- module, export_datum, prs_kostenplaats_nr, debiteur, prs_kostensoort_oms, prs_kostensoort_opmerking, prs_kostensoort_refcode, prs_kostensoortgrp_oms, omschrijving, bedrag, btw, fin_btwtabelwaarde_code, opdr_jaar, exact_code_gebouw, groepering, subregelvolgorde
|
|
fin_verkoopfactuur_id, fin_verkoopfactuur_xmlnode, fin_verkoopfactuur_refkey, fin_verkoopfactuur_aanmaak, prs_kostenplaats_nr, prs_debiteur_naam, prs_bedrijf_key, prs_kostensoort_oms, prs_kostensoort_opmerking, prs_kostensoortgrp_oms, fin_verkoopfactuur_omschr, fin_verkoopfactuur_bedrag, fin_btwtabelwaarde_code, fin_verkoopfactuur_maand, fin_verkoopfactuur_c1, fin_verkoopfactuur_c2, fin_verkoopfactuur_c3
|
|
)
|
|
SELECT substr(to_char(v_logdate, 'dd-mm-yyyy') || ' - ' || sd.ins_srtdiscipline_prefix || m.mld_melding_key || '/' || mld_opdr_bedrijfopdr_volgnr, 1,30 ),
|
|
'opdracht',
|
|
o.mld_opdr_key,
|
|
v_logdate,
|
|
k.prs_kostenplaats_nr,
|
|
k.prs_kostenplaats_nr debiteur,
|
|
b.prs_bedrijf_key,
|
|
ks.prs_kostensoort_oms || DECODE(TO_CHAR(opdr_datum,'YYYY'), TO_CHAR(TO_NUMBER(TO_CHAR(SYSDATE, 'yyyy'))-1), ' VJ','') ,
|
|
ks.prs_kostensoort_opmerking,
|
|
DECODE (
|
|
mld_typeopdr_omschrijving,
|
|
'Projectorder',
|
|
(SELECT mld_kenmerkopdr_waarde
|
|
FROM mld_kenmerkopdr ko, mld_kenmerk k
|
|
WHERE ko.mld_kenmerk_key = k.mld_kenmerk_key
|
|
AND k.mld_srtkenmerk_key = 341 -- PO enexis
|
|
AND ko.mld_opdr_key = o.mld_opdr_key),
|
|
'')
|
|
poenexis,
|
|
sd.ins_srtdiscipline_prefix
|
|
|| m.mld_melding_key
|
|
|| '/'
|
|
|| mld_opdr_bedrijfopdr_volgnr
|
|
|| ' '
|
|
|| d.ins_discipline_omschrijving
|
|
|| ' ('
|
|
|| (SELECT MAX(mld_kenmerkmelding_waarde)
|
|
FROM mld_kenmerkmelding km, mld_kenmerk k
|
|
WHERE km.mld_kenmerk_key = k.mld_kenmerk_key
|
|
AND k.mld_srtkenmerk_key = 143 -- opdrachtnummer
|
|
AND km.mld_melding_key = m.mld_melding_key)
|
|
|| ')'
|
|
omschrijving,
|
|
fg.bedrag,
|
|
fin_btwtabelwaarde_code,
|
|
to_char(opdr_datum, 'YYYY'),
|
|
COALESCE(exact_code, alg_gebouw_code),
|
|
DECODE (
|
|
mld_typeopdr_omschrijving,
|
|
'Projectorder',
|
|
(SELECT mld_kenmerkopdr_waarde
|
|
FROM mld_kenmerkopdr ko, mld_kenmerk k
|
|
WHERE ko.mld_kenmerk_key = k.mld_kenmerk_key
|
|
AND k.mld_srtkenmerk_key = 341 -- PO enexis
|
|
AND ko.mld_opdr_key = o.mld_opdr_key),
|
|
'')
|
|
groepering,
|
|
'' subregelvolgorde
|
|
FROM mld_opdr o,
|
|
mld_typeopdr ot,
|
|
prs_bedrijf b,
|
|
prs_kostenplaats k,
|
|
mld_melding m,
|
|
mld_stdmelding std,
|
|
ins_tab_discipline d,
|
|
ins_srtdiscipline sd,
|
|
prs_kostensoort ks,
|
|
aaxx_exp_factuur f,
|
|
alg_gebouw g,
|
|
alg_v_onroerendgoed og,
|
|
aaxx_v_exact_code_gebouw exact,
|
|
(SELECT fin_factuur_key,
|
|
mld_opdr_key,
|
|
SUM (fin_factuurregel_totaal) bedrag,
|
|
aaxx_get_verkoop_btw_code (fin_btwtabelwaarde_key) fin_btwtabelwaarde_code,
|
|
prs_kostenplaats_key,
|
|
prs_kostensoort_key,
|
|
fin_factuur_boekmaand,
|
|
opdr_datum,
|
|
fin_factuur_datum
|
|
FROM aaxx_v_factuur_gegevens
|
|
WHERE fin_factuur_statuses_key = 6
|
|
GROUP BY fin_factuur_key,
|
|
fin_btwtabelwaarde_key,
|
|
mld_opdr_key,
|
|
prs_kostenplaats_key,
|
|
prs_kostensoort_key,
|
|
fin_factuur_boekmaand,
|
|
opdr_datum,
|
|
fin_factuur_datum,
|
|
fin_factuurregel_btw,
|
|
fin_btwtabelwaarde_code,
|
|
prs_kostensoort_refcode,
|
|
fin_factuurregel_totaal) fg
|
|
WHERE fg.prs_kostenplaats_key = k.prs_kostenplaats_key(+)
|
|
AND o.mld_typeopdr_key = ot.mld_typeopdr_key
|
|
AND fg.mld_opdr_key = o.mld_opdr_key
|
|
AND m.mld_alg_onroerendgoed_keys = og.alg_onroerendgoed_keys(+)
|
|
AND og.alg_gebouw_key = g.alg_gebouw_key(+)
|
|
AND og.alg_gebouw_key = exact.alg_gebouw_key(+)
|
|
AND fg.fin_factuur_key = f.fin_factuur_key
|
|
AND o.mld_melding_key = m.mld_melding_key
|
|
AND o.mld_uitvoerende_keys = b.prs_bedrijf_key
|
|
AND m.mld_stdmelding_key = std.mld_stdmelding_key
|
|
AND std.mld_ins_discipline_key = d.ins_discipline_key
|
|
AND d.ins_srtdiscipline_key = sd.ins_srtdiscipline_key
|
|
AND ( ks.prs_kostensoort_oms LIKE 'NC P %'
|
|
OR ks.prs_kostensoort_oms LIKE 'NC PROJ%'
|
|
OR ks.prs_kostensoort_oms LIKE 'CVE %')
|
|
AND fg.prs_kostensoort_key = ks.prs_kostensoort_key(+);
|
|
|
|
|
|
FOR rec1 IN c_opdr
|
|
LOOP
|
|
BEGIN
|
|
-- indien nog niet afgemeld, dan maar even afmelden.
|
|
IF rec1.mld_statusopdr_key <> 6 AND rec1.mld_statusopdr_key <> 7 AND rec1.mld_statusopdr_key <> 9 THEN
|
|
mld.setopdrachtstatus (rec1.mld_opdr_key, 6, v_aanvrager);
|
|
mld.setopdrachtstatus (rec1.mld_opdr_key, 9, v_aanvrager);
|
|
END IF;
|
|
|
|
UPDATE mld_opdr o
|
|
SET mld_opdr_kosten =
|
|
(SELECT SUM (fin_factuurregel_totaal)
|
|
FROM fin_factuur f
|
|
, fin_factuurregel fr
|
|
WHERE f.fin_factuur_key = fr.fin_factuur_key
|
|
AND f.mld_opdr_key = o.mld_opdr_key
|
|
AND f.fin_factuur_statuses_key >= 6)
|
|
WHERE o.mld_opdr_key = rec1.mld_opdr_key
|
|
AND rec1.mld_melding_status IN (4, 5, 7); -- anders faalt de trigger sowieso
|
|
|
|
-- zet de status naar afgemeld (user is facilitor)
|
|
mld.setopdrachtstatus (rec1.mld_opdr_key, 7, v_aanvrager);
|
|
END;
|
|
END LOOP;
|
|
|
|
FOR rec1 IN c_fact
|
|
LOOP
|
|
BEGIN
|
|
UPDATE fin_factuur f
|
|
SET fin_factuur_statuses_key = 7
|
|
WHERE f.fin_factuur_key = rec1.fin_factuur_key;
|
|
|
|
fac.trackaction ('FINVER', rec1.fin_factuur_key, v_aanvrager, NULL, NULL);
|
|
END;
|
|
END LOOP;
|
|
END;
|
|
/
|
|
|
|
-- exact verkoop
|
|
CREATE OR REPLACE VIEW aaen_v_export_cust_verkoop (RESULT, result_order) AS
|
|
SELECT
|
|
'Bedrijf,Doc. datum,Boek datum,Doc. soort,Valuta,Referentie,Bus. area,Boek sleutel,GBR rekening,Bedrag,BTW code,BTW bedrag,Kosten plaats,WBS element,Interne order,Netw plan nr,Netw plan act.,Partner mij,Kosten drager,Bew. soort,Tekst,ordernummer,Factuurnummer','000000000'
|
|
FROM DUAL
|
|
UNION ALL
|
|
SELECT '1000' -- a
|
|
|| ',' || to_char(sysdate, 'dd.mm.yyyy') -- b
|
|
|| ',' || to_char(sysdate, 'dd.mm.yyyy') -- c
|
|
|| ',' || 'SA' -- d
|
|
|| ',' || 'EUR' -- e
|
|
|| ',' || replace(referentie, ',', '') -- f
|
|
|| ',' || '' -- g
|
|
|| ',' || decode (sign(bedrag),-1,'50','40') -- h 50 = credit en 40 = debet
|
|
|| ',' || replace(grootboekrekening, ',', '') -- i
|
|
|| ',' || REPLACE (TO_CHAR (bedrag), ',', '.') -- j
|
|
|| ',' || '' -- k
|
|
|| ',' || '' -- l
|
|
|| ',' || replace(kostenplaats, ',', '') -- m
|
|
|| ',' || '' -- n
|
|
|| ',' || replace(ponummer, ',', '') -- o
|
|
|| ',' || '' -- p
|
|
|| ',' || '' -- q
|
|
|| ',' || '' -- r
|
|
|| ',' || '' -- s
|
|
|| ',' || '' -- t
|
|
|| ',' || replace(replace(replace(omschrijving, CHR (13), ''), CHR (10), '<ret>'),',','') -- u
|
|
|| ',' || ordernummer -- v
|
|
|| ',' || factuurnummer -- w
|
|
, factuurnummer || '0'
|
|
FROM aaen_verkoopbuffer
|
|
WHERE naar_exact IS NULL;
|
|
|
|
CREATE OR REPLACE PROCEDURE aaen_export_cust_verkoop (
|
|
p_applname IN VARCHAR2,
|
|
p_applrun IN VARCHAR2,
|
|
p_filedir IN VARCHAR2,
|
|
p_filename IN VARCHAR2
|
|
)
|
|
AS
|
|
BEGIN
|
|
UPDATE aaen_verkoopbuffer
|
|
SET naar_exact = sysdate
|
|
WHERE naar_exact IS NULL;
|
|
END;
|
|
/
|
|
|
|
CREATE OR REPLACE VIEW aaen_v_export_exact_verkoop (RESULT, result_order) AS SELECT result, result_order FROM aaxx_v_export_exact_verkoop;
|
|
CREATE OR REPLACE PROCEDURE aaen_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 aaen_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'));
|
|
-- zorg ervoor dat in dezelfde run ook de klantspecifieke verkoopinterface uitgevoerd wordt.
|
|
INSERT INTO imp_schedule (imp_schedule_name) VALUES ('CUST_VERKOOP');
|
|
END;
|
|
/
|
|
|
|
-- exact verkoop over het vorige jaar
|
|
CREATE OR REPLACE VIEW aaen_v_export_exact_verkoop_vj (RESULT, result_order) AS SELECT RESULT, result_order FROM aaxx_v_export_exact_verkoop;
|
|
CREATE OR REPLACE PROCEDURE aaen_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 aaen_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 aaen_v_export_exact_uren (result, result_order)
|
|
AS SELECT result, result_order FROM aaxx_v_export_exact_uren_xml;
|
|
CREATE OR REPLACE PROCEDURE aaen_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 aaen_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;
|
|
/
|
|
|
|
-- eigen afdelingstructuur omdat Enexis meer dan 5 niveaus kent.
|
|
CREATE OR REPLACE VIEW aaen_v_afdeling
|
|
(
|
|
prs_bedrijf_key,
|
|
prs_afdeling_key,
|
|
prs_afdeling_parentkey
|
|
)
|
|
AS
|
|
SELECT a.prs_bedrijf_key, a.prs_afdeling_key, kl.prs_afdeling_parentkey
|
|
FROM prs_afdeling a,
|
|
(SELECT prs_link_key prs_afdeling_key,
|
|
prs_kenmerklink_waarde prs_afdeling_parentkey
|
|
FROM prs_kenmerklink
|
|
WHERE prs_kenmerk_key = 1080) kl
|
|
WHERE a.prs_afdeling_key = kl.prs_afdeling_key(+);
|
|
|
|
CREATE OR REPLACE VIEW aaen_v_afdeling_boom
|
|
(
|
|
niveau,
|
|
prs_bedrijf_key,
|
|
prs_afdeling_key,
|
|
prs_afdeling_key1,
|
|
prs_afdeling_key2,
|
|
prs_afdeling_key3,
|
|
prs_afdeling_key4,
|
|
prs_afdeling_key5,
|
|
prs_afdeling_key6,
|
|
prs_afdeling_key7,
|
|
prs_afdeling_key8,
|
|
prs_afdeling_key9,
|
|
prs_afdeling_key10
|
|
)
|
|
AS
|
|
SELECT '1' niveau,
|
|
a1.prs_bedrijf_key,
|
|
a1.prs_afdeling_key,
|
|
a1.prs_afdeling_key,
|
|
TO_NUMBER (NULL),
|
|
TO_NUMBER (NULL),
|
|
TO_NUMBER (NULL),
|
|
TO_NUMBER (NULL),
|
|
TO_NUMBER (NULL),
|
|
TO_NUMBER (NULL),
|
|
TO_NUMBER (NULL),
|
|
TO_NUMBER (NULL),
|
|
TO_NUMBER (NULL)
|
|
FROM aaen_v_afdeling a1
|
|
WHERE a1.prs_afdeling_parentkey IS NULL
|
|
UNION
|
|
SELECT '2' niveau,
|
|
a1.prs_bedrijf_key,
|
|
a2.prs_afdeling_key,
|
|
a1.prs_afdeling_key,
|
|
a2.prs_afdeling_key,
|
|
TO_NUMBER (NULL),
|
|
TO_NUMBER (NULL),
|
|
TO_NUMBER (NULL),
|
|
TO_NUMBER (NULL),
|
|
TO_NUMBER (NULL),
|
|
TO_NUMBER (NULL),
|
|
TO_NUMBER (NULL),
|
|
TO_NUMBER (NULL)
|
|
FROM aaen_v_afdeling a1, aaen_v_afdeling a2
|
|
WHERE a2.prs_afdeling_parentkey = a1.prs_afdeling_key
|
|
AND a1.prs_afdeling_parentkey IS NULL
|
|
UNION
|
|
SELECT '3' niveau,
|
|
a1.prs_bedrijf_key,
|
|
a3.prs_afdeling_key,
|
|
a1.prs_afdeling_key,
|
|
a2.prs_afdeling_key,
|
|
a3.prs_afdeling_key,
|
|
TO_NUMBER (NULL),
|
|
TO_NUMBER (NULL),
|
|
TO_NUMBER (NULL),
|
|
TO_NUMBER (NULL),
|
|
TO_NUMBER (NULL),
|
|
TO_NUMBER (NULL),
|
|
TO_NUMBER (NULL)
|
|
FROM aaen_v_afdeling a1, aaen_v_afdeling a2, aaen_v_afdeling a3
|
|
WHERE a2.prs_afdeling_parentkey = a1.prs_afdeling_key
|
|
AND a3.prs_afdeling_parentkey = a2.prs_afdeling_key
|
|
AND a1.prs_afdeling_parentkey IS NULL
|
|
UNION
|
|
SELECT '4' niveau,
|
|
a1.prs_bedrijf_key,
|
|
a4.prs_afdeling_key,
|
|
a1.prs_afdeling_key,
|
|
a2.prs_afdeling_key,
|
|
a3.prs_afdeling_key,
|
|
a4.prs_afdeling_key,
|
|
TO_NUMBER (NULL),
|
|
TO_NUMBER (NULL),
|
|
TO_NUMBER (NULL),
|
|
TO_NUMBER (NULL),
|
|
TO_NUMBER (NULL),
|
|
TO_NUMBER (NULL)
|
|
FROM aaen_v_afdeling a1,
|
|
aaen_v_afdeling a2,
|
|
aaen_v_afdeling a3,
|
|
aaen_v_afdeling a4
|
|
WHERE a2.prs_afdeling_parentkey = a1.prs_afdeling_key
|
|
AND a3.prs_afdeling_parentkey = a2.prs_afdeling_key
|
|
AND a4.prs_afdeling_parentkey = a3.prs_afdeling_key
|
|
AND a1.prs_afdeling_parentkey IS NULL
|
|
UNION
|
|
SELECT '5' niveau,
|
|
a1.prs_bedrijf_key,
|
|
a5.prs_afdeling_key,
|
|
a1.prs_afdeling_key,
|
|
a2.prs_afdeling_key,
|
|
a3.prs_afdeling_key,
|
|
a4.prs_afdeling_key,
|
|
a5.prs_afdeling_key,
|
|
TO_NUMBER (NULL),
|
|
TO_NUMBER (NULL),
|
|
TO_NUMBER (NULL),
|
|
TO_NUMBER (NULL),
|
|
TO_NUMBER (NULL)
|
|
FROM aaen_v_afdeling a1,
|
|
aaen_v_afdeling a2,
|
|
aaen_v_afdeling a3,
|
|
aaen_v_afdeling a4,
|
|
aaen_v_afdeling a5
|
|
WHERE a2.prs_afdeling_parentkey = a1.prs_afdeling_key
|
|
AND a3.prs_afdeling_parentkey = a2.prs_afdeling_key
|
|
AND a4.prs_afdeling_parentkey = a3.prs_afdeling_key
|
|
AND a5.prs_afdeling_parentkey = a4.prs_afdeling_key
|
|
AND a1.prs_afdeling_parentkey IS NULL
|
|
UNION
|
|
SELECT '6' niveau,
|
|
a1.prs_bedrijf_key,
|
|
a6.prs_afdeling_key,
|
|
a1.prs_afdeling_key,
|
|
a2.prs_afdeling_key,
|
|
a3.prs_afdeling_key,
|
|
a4.prs_afdeling_key,
|
|
a5.prs_afdeling_key,
|
|
a6.prs_afdeling_key,
|
|
TO_NUMBER (NULL),
|
|
TO_NUMBER (NULL),
|
|
TO_NUMBER (NULL),
|
|
TO_NUMBER (NULL)
|
|
FROM aaen_v_afdeling a1,
|
|
aaen_v_afdeling a2,
|
|
aaen_v_afdeling a3,
|
|
aaen_v_afdeling a4,
|
|
aaen_v_afdeling a5,
|
|
aaen_v_afdeling a6
|
|
WHERE a2.prs_afdeling_parentkey = a1.prs_afdeling_key
|
|
AND a3.prs_afdeling_parentkey = a2.prs_afdeling_key
|
|
AND a4.prs_afdeling_parentkey = a3.prs_afdeling_key
|
|
AND a5.prs_afdeling_parentkey = a4.prs_afdeling_key
|
|
AND a6.prs_afdeling_parentkey = a5.prs_afdeling_key
|
|
AND a1.prs_afdeling_parentkey IS NULL
|
|
UNION
|
|
SELECT '7' niveau,
|
|
a1.prs_bedrijf_key,
|
|
a7.prs_afdeling_key,
|
|
a1.prs_afdeling_key,
|
|
a2.prs_afdeling_key,
|
|
a3.prs_afdeling_key,
|
|
a4.prs_afdeling_key,
|
|
a5.prs_afdeling_key,
|
|
a6.prs_afdeling_key,
|
|
a7.prs_afdeling_key,
|
|
TO_NUMBER (NULL),
|
|
TO_NUMBER (NULL),
|
|
TO_NUMBER (NULL)
|
|
FROM aaen_v_afdeling a1,
|
|
aaen_v_afdeling a2,
|
|
aaen_v_afdeling a3,
|
|
aaen_v_afdeling a4,
|
|
aaen_v_afdeling a5,
|
|
aaen_v_afdeling a6,
|
|
aaen_v_afdeling a7
|
|
WHERE a2.prs_afdeling_parentkey = a1.prs_afdeling_key
|
|
AND a3.prs_afdeling_parentkey = a2.prs_afdeling_key
|
|
AND a4.prs_afdeling_parentkey = a3.prs_afdeling_key
|
|
AND a5.prs_afdeling_parentkey = a4.prs_afdeling_key
|
|
AND a6.prs_afdeling_parentkey = a5.prs_afdeling_key
|
|
AND a7.prs_afdeling_parentkey = a6.prs_afdeling_key
|
|
AND a1.prs_afdeling_parentkey IS NULL
|
|
UNION
|
|
SELECT '8' niveau,
|
|
a1.prs_bedrijf_key,
|
|
a8.prs_afdeling_key,
|
|
a1.prs_afdeling_key,
|
|
a2.prs_afdeling_key,
|
|
a3.prs_afdeling_key,
|
|
a4.prs_afdeling_key,
|
|
a5.prs_afdeling_key,
|
|
a6.prs_afdeling_key,
|
|
a7.prs_afdeling_key,
|
|
a8.prs_afdeling_key,
|
|
TO_NUMBER (NULL),
|
|
TO_NUMBER (NULL)
|
|
FROM aaen_v_afdeling a1,
|
|
aaen_v_afdeling a2,
|
|
aaen_v_afdeling a3,
|
|
aaen_v_afdeling a4,
|
|
aaen_v_afdeling a5,
|
|
aaen_v_afdeling a6,
|
|
aaen_v_afdeling a7,
|
|
aaen_v_afdeling a8
|
|
WHERE a2.prs_afdeling_parentkey = a1.prs_afdeling_key
|
|
AND a3.prs_afdeling_parentkey = a2.prs_afdeling_key
|
|
AND a4.prs_afdeling_parentkey = a3.prs_afdeling_key
|
|
AND a5.prs_afdeling_parentkey = a4.prs_afdeling_key
|
|
AND a6.prs_afdeling_parentkey = a5.prs_afdeling_key
|
|
AND a7.prs_afdeling_parentkey = a6.prs_afdeling_key
|
|
AND a8.prs_afdeling_parentkey = a7.prs_afdeling_key
|
|
AND a1.prs_afdeling_parentkey IS NULL
|
|
UNION
|
|
SELECT '9' niveau,
|
|
a1.prs_bedrijf_key,
|
|
a9.prs_afdeling_key,
|
|
a1.prs_afdeling_key,
|
|
a2.prs_afdeling_key,
|
|
a3.prs_afdeling_key,
|
|
a4.prs_afdeling_key,
|
|
a5.prs_afdeling_key,
|
|
a6.prs_afdeling_key,
|
|
a7.prs_afdeling_key,
|
|
a8.prs_afdeling_key,
|
|
a9.prs_afdeling_key,
|
|
TO_NUMBER (NULL)
|
|
FROM aaen_v_afdeling a1,
|
|
aaen_v_afdeling a2,
|
|
aaen_v_afdeling a3,
|
|
aaen_v_afdeling a4,
|
|
aaen_v_afdeling a5,
|
|
aaen_v_afdeling a6,
|
|
aaen_v_afdeling a7,
|
|
aaen_v_afdeling a8,
|
|
aaen_v_afdeling a9
|
|
WHERE a2.prs_afdeling_parentkey = a1.prs_afdeling_key
|
|
AND a3.prs_afdeling_parentkey = a2.prs_afdeling_key
|
|
AND a4.prs_afdeling_parentkey = a3.prs_afdeling_key
|
|
AND a5.prs_afdeling_parentkey = a4.prs_afdeling_key
|
|
AND a6.prs_afdeling_parentkey = a5.prs_afdeling_key
|
|
AND a7.prs_afdeling_parentkey = a6.prs_afdeling_key
|
|
AND a8.prs_afdeling_parentkey = a7.prs_afdeling_key
|
|
AND a9.prs_afdeling_parentkey = a8.prs_afdeling_key
|
|
AND a1.prs_afdeling_parentkey IS NULL
|
|
UNION
|
|
SELECT '10' niveau,
|
|
a1.prs_bedrijf_key,
|
|
a10.prs_afdeling_key,
|
|
a1.prs_afdeling_key,
|
|
a2.prs_afdeling_key,
|
|
a3.prs_afdeling_key,
|
|
a4.prs_afdeling_key,
|
|
a5.prs_afdeling_key,
|
|
a6.prs_afdeling_key,
|
|
a7.prs_afdeling_key,
|
|
a8.prs_afdeling_key,
|
|
a9.prs_afdeling_key,
|
|
a10.prs_afdeling_key
|
|
FROM aaen_v_afdeling a1,
|
|
aaen_v_afdeling a2,
|
|
aaen_v_afdeling a3,
|
|
aaen_v_afdeling a4,
|
|
aaen_v_afdeling a5,
|
|
aaen_v_afdeling a6,
|
|
aaen_v_afdeling a7,
|
|
aaen_v_afdeling a8,
|
|
aaen_v_afdeling a9,
|
|
aaen_v_afdeling a10
|
|
WHERE a2.prs_afdeling_parentkey = a1.prs_afdeling_key
|
|
AND a3.prs_afdeling_parentkey = a2.prs_afdeling_key
|
|
AND a4.prs_afdeling_parentkey = a3.prs_afdeling_key
|
|
AND a5.prs_afdeling_parentkey = a4.prs_afdeling_key
|
|
AND a6.prs_afdeling_parentkey = a5.prs_afdeling_key
|
|
AND a7.prs_afdeling_parentkey = a6.prs_afdeling_key
|
|
AND a8.prs_afdeling_parentkey = a7.prs_afdeling_key
|
|
AND a9.prs_afdeling_parentkey = a8.prs_afdeling_key
|
|
AND a10.prs_afdeling_parentkey = a9.prs_afdeling_key
|
|
AND a1.prs_afdeling_parentkey IS NULL;
|
|
|
|
|
|
|
|
-- PACKAGE
|
|
CREATE OR REPLACE PACKAGE AAEN AS
|
|
-- PACKAGES voor de Enexis specifieke functies en procedures
|
|
FUNCTION cat_gebouw (p_locatie_key IN NUMBER) RETURN NUMBER;
|
|
FUNCTION get_rsv_ruimte_bezetting (f_res_rsv_ruimte_key IN NUMBER) RETURN NUMBER;
|
|
END;
|
|
/
|
|
CREATE OR REPLACE PACKAGE BODY AAEN AS
|
|
FUNCTION cat_gebouw (p_locatie_key IN NUMBER)
|
|
RETURN NUMBER
|
|
AS
|
|
CURSOR c (lkey NUMBER)
|
|
IS
|
|
SELECT 1 kantoor, g.alg_gebouw_key, alg_onrgoedkenmerk_waarde waarde
|
|
FROM alg_gebouw g, alg_onrgoedkenmerk ogk
|
|
WHERE alg_srtgebouw_key = 7 -- kantoor
|
|
AND ogk.alg_onrgoed_key = alg_gebouw_key
|
|
AND ogk.alg_onrgoed_niveau = 'G'
|
|
AND g.alg_gebouw_verwijder IS NULL
|
|
AND g.alg_locatie_key = lkey
|
|
UNION ALL
|
|
SELECT 0 kantoor, g.alg_gebouw_key, alg_onrgoedkenmerk_waarde waarde
|
|
FROM alg_gebouw g, alg_onrgoedkenmerk ogk
|
|
WHERE alg_srtgebouw_key <> 7 -- kantoor
|
|
AND ogk.alg_onrgoed_key = g.alg_gebouw_key
|
|
AND ogk.alg_onrgoed_niveau = 'G'
|
|
AND g.alg_gebouw_verwijder IS NULL
|
|
AND g.alg_locatie_key = lkey
|
|
UNION ALL
|
|
SELECT -1 kantoor, g.alg_gebouw_key, '9999'
|
|
FROM alg_gebouw g
|
|
WHERE g.alg_locatie_key = lkey
|
|
ORDER BY kantoor DESC, waarde;
|
|
BEGIN
|
|
FOR rec IN c (p_locatie_key)
|
|
LOOP
|
|
RETURN rec.alg_gebouw_key;
|
|
END LOOP;
|
|
|
|
RETURN NULL;
|
|
END;
|
|
|
|
FUNCTION get_rsv_ruimte_bezetting (
|
|
f_res_rsv_ruimte_key IN NUMBER)
|
|
RETURN NUMBER
|
|
AS
|
|
CURSOR c
|
|
IS
|
|
SELECT rrr.res_rsv_ruimte_van,
|
|
rrr.res_rsv_ruimte_tot,
|
|
(SELECT ins_deel_state
|
|
FROM ins_deel_state_history h1
|
|
WHERE h1.ins_deel_key = d.ins_deel_key
|
|
AND ins_deel_statedate < rrr.res_rsv_ruimte_van
|
|
AND NOT EXISTS
|
|
(SELECT ins_deel_state
|
|
FROM ins_deel_state_history h2
|
|
WHERE h2.ins_deel_key = d.ins_deel_key
|
|
AND h2.ins_deel_statedate <
|
|
rrr.res_rsv_ruimte_van
|
|
AND h2.ins_deel_statedate > h1.ins_deel_statedate))
|
|
ins_deel_state
|
|
FROM res_rsv_ruimte rrr,
|
|
res_ruimte_opstelling ro,
|
|
res_alg_ruimte rar,
|
|
ins_deel d
|
|
WHERE rrr.res_rsv_ruimte_key = f_res_rsv_ruimte_key
|
|
AND rrr.res_ruimte_opstel_key = ro.res_ruimte_opstel_key
|
|
AND ro.res_ruimte_key = rar.res_ruimte_key
|
|
AND rar.alg_ruimte_key = d.ins_alg_ruimte_key
|
|
AND d.ins_srtdeel_key = 681
|
|
AND res_alg_ruimte_verwijder IS NULL;
|
|
|
|
CURSOR c2
|
|
IS
|
|
SELECT h.ins_deel_statedate, h.ins_deel_state
|
|
FROM res_rsv_ruimte rrr,
|
|
res_ruimte_opstelling ro,
|
|
res_alg_ruimte rar,
|
|
ins_deel d,
|
|
ins_deel_state_history h
|
|
WHERE rrr.res_rsv_ruimte_key = f_res_rsv_ruimte_key
|
|
AND rrr.res_ruimte_opstel_key = ro.res_ruimte_opstel_key
|
|
AND ro.res_ruimte_key = rar.res_ruimte_key
|
|
AND rar.alg_ruimte_key = d.ins_alg_ruimte_key
|
|
AND d.ins_srtdeel_key = 681
|
|
AND d.ins_deel_key = h.ins_deel_key
|
|
AND h.ins_deel_statedate >= rrr.res_rsv_ruimte_van
|
|
AND h.ins_deel_statedate <= rrr.res_rsv_ruimte_tot
|
|
AND res_alg_ruimte_verwijder IS NULL
|
|
ORDER BY h.ins_deel_statedate;
|
|
|
|
v_nr_sensors NUMBER;
|
|
v_nr_sensors_on NUMBER;
|
|
v_tijd_bezet NUMBER (12, 8);
|
|
v_start DATE;
|
|
v_stop DATE;
|
|
v_laatste_activiteit DATE;
|
|
BEGIN
|
|
v_nr_sensors := 0;
|
|
v_nr_sensors_on := 0;
|
|
v_tijd_bezet := 0;
|
|
|
|
FOR rec IN c
|
|
LOOP
|
|
BEGIN
|
|
v_start := rec.res_rsv_ruimte_van;
|
|
v_stop := rec.res_rsv_ruimte_tot;
|
|
v_nr_sensors := v_nr_sensors + 1;
|
|
|
|
IF rec.ins_deel_state = '1'
|
|
THEN
|
|
v_nr_sensors_on := v_nr_sensors_on + 1;
|
|
END IF;
|
|
END;
|
|
END LOOP;
|
|
|
|
IF v_nr_sensors_on > 0
|
|
THEN
|
|
v_laatste_activiteit := v_start;
|
|
END IF;
|
|
|
|
FOR rec IN c2
|
|
LOOP
|
|
BEGIN
|
|
IF rec.ins_deel_state = '1'
|
|
THEN
|
|
v_nr_sensors_on := v_nr_sensors_on + 1;
|
|
|
|
-- beweging in de ruimte gedetecteerd
|
|
IF v_nr_sensors_on = 1
|
|
THEN
|
|
v_laatste_activiteit := rec.ins_deel_statedate;
|
|
END IF;
|
|
ELSE
|
|
v_nr_sensors_on := v_nr_sensors_on - 1;
|
|
|
|
-- geen activiteit meer waargenomen
|
|
IF v_nr_sensors_on = 0
|
|
THEN
|
|
v_tijd_bezet :=
|
|
v_tijd_bezet
|
|
+ (rec.ins_deel_statedate - v_laatste_activiteit);
|
|
/* DBMS_OUTPUT.put_line(v_tijd_bezet || ' ** '
|
|
|| TO_CHAR (rec.ins_deel_statedate,
|
|
'hh24:mi:ss')
|
|
|| ' - '
|
|
|| TO_CHAR (v_laatste_activiteit,
|
|
'hh24:mi:ss')
|
|
|| '-d-'
|
|
|| TO_CHAR(rec.ins_deel_statedate
|
|
- v_laatste_activiteit));*/
|
|
v_laatste_activiteit := NULL;
|
|
END IF;
|
|
END IF;
|
|
END;
|
|
END LOOP;
|
|
|
|
-- correctie einde
|
|
IF v_laatste_activiteit IS NOT NULL
|
|
THEN
|
|
v_tijd_bezet := v_tijd_bezet + (v_stop - v_laatste_activiteit);
|
|
/* DBMS_OUTPUT.put_line( v_tijd_bezet
|
|
|| ' ** '
|
|
|| TO_CHAR (v_stop, 'hh24:mi:ss')
|
|
|| ' - '
|
|
|| TO_CHAR (v_laatste_activiteit, 'hh24:mi:ss')
|
|
|| '-d-'
|
|
|| TO_CHAR (v_stop - v_laatste_activiteit));*/
|
|
END IF;
|
|
|
|
RETURN v_tijd_bezet;
|
|
END;
|
|
|
|
END;
|
|
/
|
|
|
|
|
|
|
|
CREATE OR REPLACE VIEW aaen_v_catering_loc
|
|
(
|
|
res_rsv_artikel_key,
|
|
res_rsv_artikel_prijs,
|
|
res_rsv_artikel_levering,
|
|
alg_locatie_key
|
|
)
|
|
AS
|
|
SELECT rra.res_rsv_artikel_key,
|
|
rra.res_rsv_artikel_prijs,
|
|
rra.res_rsv_artikel_levering,
|
|
alg_locatie_key
|
|
FROM res_rsv_ruimte rrr,
|
|
res_rsv_artikel rra,
|
|
alg_ruimte r,
|
|
alg_verdieping v,
|
|
alg_gebouw g,
|
|
res_artikel ra,
|
|
( SELECT COALESCE (MAX (ir2a.alg_ruimte_key), irrr.alg_ruimte_key)
|
|
alg_ruimte_key,
|
|
irrr.res_rsv_ruimte_key
|
|
FROM res_rsv_ruimte irrr,
|
|
(SELECT res_rsv_ruimte_key, alg_ruimte_key
|
|
FROM res_v_rsv_ruimte_2_alg_ruimte
|
|
WHERE res_alg_ruimte_verwijder IS NULL) ir2a
|
|
WHERE irrr.res_rsv_ruimte_key = ir2a.res_rsv_ruimte_key(+)
|
|
GROUP BY irrr.res_rsv_ruimte_key, irrr.alg_ruimte_key) r2a
|
|
WHERE rrr.res_rsv_ruimte_key = rra.res_rsv_ruimte_key
|
|
AND r2a.res_rsv_ruimte_key = rrr.res_rsv_ruimte_key
|
|
AND r2a.alg_ruimte_key = r.alg_ruimte_key
|
|
AND r.alg_verdieping_key = v.alg_verdieping_key
|
|
AND v.alg_gebouw_key = g.alg_gebouw_key
|
|
AND rra.res_rsv_artikel_verwijder IS NULL
|
|
AND rra.res_status_bo_key = 5
|
|
AND rra.res_artikel_key = ra.res_artikel_key;
|
|
|
|
-- Procedure om alle geexporteerde facturen naar status verwerkt te zetten.
|
|
CREATE OR REPLACE PROCEDURE aaen_export_bundel_catering (
|
|
p_applname IN VARCHAR2,
|
|
p_applrun IN VARCHAR2,
|
|
p_filedir IN VARCHAR2,
|
|
p_filename IN VARCHAR2
|
|
)
|
|
AS
|
|
CURSOR c(lev_date DATE) IS
|
|
SELECT SUM(res_rsv_artikel_prijs),
|
|
alg_locatie_key
|
|
FROM aaen_v_catering_loc
|
|
WHERE res_rsv_artikel_levering < lev_date
|
|
GROUP BY alg_locatie_key;
|
|
|
|
c_catmld_uitvoertijd mld_stdmelding.mld_stdmelding_t_uitvoertijd%TYPE := MLD_T_UITVOERTIJD(2, 'D');
|
|
v_errormsg VARCHAR (200);
|
|
oracle_err_num NUMBER;
|
|
oracle_err_mes VARCHAR2 (200);
|
|
v_laatste_export DATE;
|
|
v_mld_melding_key NUMBER;
|
|
v_prs_bedrijf_key NUMBER;
|
|
v_prs_dienst_key NUMBER;
|
|
v_prs_kostenplaats_key NUMBER;
|
|
v_mld_opdr_bedrijfopdr_volgnr NUMBER;
|
|
v_aanvrager NUMBER;
|
|
v_mld_workorder_key NUMBER;
|
|
v_mld_stdmelding_key NUMBER;
|
|
v_date DATE;
|
|
v_count NUMBER;
|
|
BEGIN
|
|
-- Facilitor
|
|
v_aanvrager := 4;
|
|
-- 911165 Enexis Demand kostenplaats key
|
|
v_prs_kostenplaats_key := 1762;
|
|
-- stdmelding key voor recharge
|
|
v_mld_stdmelding_key := 2101;
|
|
-- key van opdrachttype workorder
|
|
v_mld_workorder_key := 3;
|
|
-- key van dienst catering
|
|
v_prs_dienst_key := 12;
|
|
|
|
v_errormsg := 'Bepaal einddatum';
|
|
|
|
-- wat is de eerste dag van de huidige maand
|
|
v_date := to_date(to_char(sysdate, 'yyyymm')||'01','yyyymmdd');
|
|
|
|
SELECT count(mld_opdr_key)
|
|
INTO v_count
|
|
FROM mld_opdr
|
|
WHERE mld_opdr_omschrijving = 'Catering factuur tot: ' || to_char(v_date, 'dd-mm-yyyy');
|
|
|
|
IF v_count > 0 THEN
|
|
fac.writelog (p_applname,'E', 'Catering export is al eerder uitgevoerd.',
|
|
'Controleer opdrachten met datum: ' || to_char(v_date, 'dd-mm-yyyy'));
|
|
ELSE
|
|
|
|
FOR rec IN c(v_date) LOOP
|
|
-- controleer of ik een melding heb op deze locatie
|
|
BEGIN
|
|
v_errormsg := 'Opzoeken catering melding';
|
|
SELECT mld_melding_key
|
|
INTO v_mld_melding_key
|
|
FROM mld_melding
|
|
WHERE mld_alg_locatie_key = rec.alg_locatie_key
|
|
AND mld_stdmelding_key = v_mld_stdmelding_key
|
|
AND v_date BETWEEN mld_melding_datum AND mld_melding_einddatum+1;
|
|
EXCEPTION WHEN NO_DATA_FOUND THEN
|
|
-- geen melding voor deze locatie gevonden. Dan maken we er maar een aan.
|
|
|
|
v_errormsg := 'Aanmaken catering melding';
|
|
BEGIN
|
|
INSERT INTO mld_melding
|
|
(
|
|
mld_melding_omschrijving,
|
|
prs_perslid_key,
|
|
prs_kostenplaats_key,
|
|
mld_stdmelding_key,
|
|
mld_alg_locatie_key,
|
|
mld_alg_onroerendgoed_keys,
|
|
mld_melding_einddatum,
|
|
mld_melding_datum,
|
|
mld_melding_t_uitvoertijd,
|
|
mld_meldbron_key,
|
|
mld_melding_module,
|
|
mld_melding_spoed
|
|
)
|
|
VALUES (
|
|
'Catering factuur boekingen',
|
|
v_aanvrager,
|
|
v_prs_kostenplaats_key,
|
|
v_mld_stdmelding_key,
|
|
rec.alg_locatie_key,
|
|
aaen.cat_gebouw(rec.alg_locatie_key),
|
|
to_date(to_char(v_date, 'YYYY') || '1231', 'YYYYMMDD'),
|
|
to_date(to_char(v_date, 'YYYY') || '0101', 'YYYYMMDD'),
|
|
c_catmld_uitvoertijd,
|
|
5,
|
|
'MLD',
|
|
3
|
|
) RETURNING mld_melding_key INTO v_mld_melding_key;
|
|
|
|
BEGIN mld.setmeldingstatus(v_mld_melding_key, 2, v_aanvrager); END;
|
|
BEGIN mld.setmeldingstatus(v_mld_melding_key, 4, v_aanvrager); END;
|
|
UPDATE mld_melding SET mld_melding_behandelaar_key= v_aanvrager WHERE mld_melding_key = v_mld_melding_key;
|
|
END;
|
|
END;
|
|
-- nu gaan we op zoek naar de cateraar die op deze locatie zijn diensten levert.
|
|
BEGIN
|
|
v_errormsg := 'Zoek een cateraar op deze locatie (key:' || rec.alg_locatie_key ||')';
|
|
SELECT prs_bedrijf_key
|
|
INTO v_prs_bedrijf_key
|
|
FROM prs_bedrijfdienstlocatie
|
|
WHERE prs_dienst_key = v_prs_dienst_key
|
|
AND alg_locatie_key = rec.alg_locatie_key;
|
|
|
|
v_mld_opdr_bedrijfopdr_volgnr := mld.BepaalOpdrMeldingVolgnr (v_mld_melding_key);
|
|
|
|
v_errormsg := 'Maak opdracht aan om factuur van cateraar te matchen';
|
|
-- maak opdracht aan om cateringfactuur van leverancier te matchen
|
|
INSERT INTO mld_opdr (mld_melding_key
|
|
, prs_kostenplaats_key
|
|
, mld_statusopdr_key
|
|
, mld_typeopdr_key
|
|
, prs_perslid_key
|
|
, mld_uitvoerende_keys
|
|
, mld_opdr_datumbegin
|
|
, mld_opdr_einddatum
|
|
, mld_opdr_module
|
|
, mld_opdr_omschrijving
|
|
, mld_opdr_materiaal
|
|
, mld_opdr_kosten
|
|
, mld_opdr_bedrijfopdr_volgnr)
|
|
( SELECT v_mld_melding_key
|
|
, v_prs_kostenplaats_key
|
|
, 5 -- uitgegeven
|
|
, v_mld_workorder_key
|
|
, v_aanvrager
|
|
, v_prs_bedrijf_key
|
|
, v_date-1
|
|
, FAC.DatumTijdPlusUitvoerTijd(sysdate, 1, 'DAGEN')
|
|
, 'MLD'
|
|
, 'Catering factuur tot: ' || to_char(v_date, 'dd-mm-yyyy')
|
|
, sum(res_rsv_artikel_prijs)
|
|
, sum(res_rsv_artikel_prijs)
|
|
, v_mld_opdr_bedrijfopdr_volgnr
|
|
FROM aaen_v_catering_loc
|
|
WHERE alg_locatie_key = rec.alg_locatie_key
|
|
AND res_rsv_artikel_levering < v_date);
|
|
|
|
UPDATE res_rsv_artikel rra
|
|
SET res_rsv_artikel_verwerkt = SYSDATE,
|
|
res_status_bo_key = 6
|
|
WHERE EXISTS (SELECT res_rsv_artikel_key
|
|
FROM aaen_v_catering_loc cl
|
|
WHERE cl.res_rsv_artikel_key = rra.res_rsv_artikel_key
|
|
AND cl.alg_locatie_key = rec.alg_locatie_key
|
|
AND res_rsv_artikel_levering < v_date);
|
|
|
|
v_errormsg := 'Update melding status';
|
|
MLD.updatemeldingstatus (v_mld_melding_key, 0, v_aanvrager); -- Facilitor
|
|
|
|
EXCEPTION WHEN OTHERS THEN
|
|
oracle_err_num := SQLCODE;
|
|
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
|
|
v_errormsg := v_errormsg || ' ORACLE (error ' || oracle_err_num || '/' || oracle_err_mes || ')';
|
|
fac.writelog (p_applname,'E', v_errormsg, '');
|
|
END;
|
|
END LOOP;
|
|
END IF;
|
|
COMMIT;
|
|
END;
|
|
/
|
|
|
|
|
|
CREATE OR REPLACE VIEW aaen_v_rap_catering_export
|
|
(
|
|
extern_factuurnummer,
|
|
datum_factuur,
|
|
crediteurnummer,
|
|
naam_bedrijfsonderdeel,
|
|
budgethouder,
|
|
kostenplaats,
|
|
ordernummer,
|
|
ordernummer_klant,
|
|
btw,
|
|
bedrag_excl,
|
|
bedrag_btw,
|
|
bedrag_incl,
|
|
fclt_f_periode
|
|
)
|
|
AS
|
|
SELECT 'N/A',
|
|
'N/A',
|
|
'809062',
|
|
kostenplaats,
|
|
'N/A',
|
|
pers_kostenplaats,
|
|
reservering,
|
|
'',
|
|
TO_CHAR (btw) btw,
|
|
SUM (totaalprijs) bedragexcl,
|
|
ROUND (SUM (totaalprijs) * (btw / 100), 2) bedragbtw,
|
|
ROUND (SUM (totaalprijs) * (1 + btw / 100), 2) bedragincl,
|
|
periode
|
|
FROM (SELECT rrr.res_reservering_key || '/' || rrr.res_rsv_ruimte_volgnr
|
|
reservering,
|
|
k.prs_kostenplaats_omschrijving kostenplaats,
|
|
(SELECT prs_kenmerklink_waarde
|
|
FROM prs_kenmerklink
|
|
WHERE prs_kenmerk_key = 1000
|
|
AND prs_link_key = rrr.res_rsv_ruimte_host_key)
|
|
pers_kostenplaats,
|
|
TO_CHAR (ADD_MONTHS (rra.res_rsv_artikel_verwerkt, -1),
|
|
'yyyy-mm')
|
|
periode,
|
|
ra.res_artikel_btw btw,
|
|
rra.res_rsv_artikel_prijs totaalprijs
|
|
FROM res_rsv_artikel rra,
|
|
res_rsv_ruimte rrr,
|
|
prs_kostenplaats k,
|
|
res_artikel ra,
|
|
( SELECT res_rsv_ruimte_key,
|
|
MAX (alg_gebouw_key) alg_gebouw_key
|
|
FROM (SELECT rrr.res_rsv_ruimte_key,
|
|
(SELECT alg_gebouw_key
|
|
FROM alg_verdieping v, alg_ruimte r
|
|
WHERE v.alg_verdieping_key =
|
|
r.alg_verdieping_key
|
|
AND r.alg_ruimte_key =
|
|
COALESCE (r2ar.alg_ruimte_key,
|
|
rrr.alg_ruimte_key))
|
|
alg_gebouw_key
|
|
FROM res_v_rsv_ruimte_2_alg_ruimte r2ar,
|
|
res_v_aanwezigrsv_ruimte rrr
|
|
WHERE rrr.res_rsv_ruimte_key =
|
|
r2ar.res_rsv_ruimte_key(+))
|
|
GROUP BY res_rsv_ruimte_key) rg
|
|
WHERE rra.res_status_bo_key = 6
|
|
AND rra.res_rsv_ruimte_key = rrr.res_rsv_ruimte_key
|
|
AND rrr.prs_kostenplaats_key = k.prs_kostenplaats_key(+)
|
|
AND rra.res_artikel_key = ra.res_artikel_key
|
|
AND rrr.res_rsv_ruimte_key = rg.res_rsv_ruimte_key)
|
|
GROUP BY reservering,
|
|
kostenplaats,
|
|
pers_kostenplaats,
|
|
periode,
|
|
btw;
|
|
|
|
-- export leaseopdracht naar leasemaatschappij
|
|
CREATE OR REPLACE PROCEDURE aaen_export_lease_aanvraag (
|
|
p_applname IN VARCHAR2,
|
|
p_applrun IN VARCHAR2,
|
|
p_filedir IN VARCHAR2,
|
|
p_filename IN VARCHAR2
|
|
)
|
|
AS
|
|
CURSOR c
|
|
IS
|
|
SELECT m.mld_melding_key,
|
|
m.prs_kostenplaats_key,
|
|
m.mld_melding_omschrijving,
|
|
MAX (bdl.prs_bedrijf_key) prs_bedrijf_key
|
|
FROM mld_melding m,
|
|
mld_stdmelding std,
|
|
prs_dienst d,
|
|
prs_bedrijfdienstlocatie bdl
|
|
WHERE ( m.mld_stdmelding_key = 143 -- goedkeuring 2e leidinggevende
|
|
OR ( m.mld_stdmelding_key = 144 -- goedkeuring 1e leidinggevende
|
|
AND mld_workflowstep_key in (6,8, 13) -- 0-6 Maanden huurauto / 6-12 Maanden Shortlease / Stallingsauto
|
|
)
|
|
)
|
|
AND m.mld_melding_status = 5 -- afgemeld
|
|
AND m.mld_stdmelding_key = STD.MLD_STDMELDING_KEY
|
|
AND std.prs_dienst_key = bdl.prs_dienst_key
|
|
AND NOT EXISTS (SELECT mld_melding_key
|
|
FROM mld_opdr o
|
|
WHERE mld_melding_key = m.mld_melding_key)
|
|
GROUP BY mld_melding_key, prs_kostenplaats_key, mld_melding_omschrijving;
|
|
|
|
CURSOR co
|
|
IS
|
|
SELECT mld_opdr_key
|
|
FROM mld_melding m, mld_opdr o
|
|
WHERE m.mld_melding_key = o.mld_melding_key
|
|
AND m.mld_stdmelding_key IN (143, 144) -- goedkeuring 1e en 2e leidinggevende
|
|
AND o.mld_statusopdr_key = 5 -- toegekend
|
|
AND o.mld_opdr_verzonden IS NOT NULL;
|
|
|
|
CURSOR cl
|
|
IS
|
|
SELECT nivleiding, mld_melding_key
|
|
FROM (SELECT '2' nivleiding,
|
|
fac.safe_to_number (l.prs_perslid_key_leid) leidinggevende,
|
|
mld_melding_key
|
|
FROM mld_melding m, aaen_v_leidinggevende l
|
|
WHERE m.prs_perslid_key = l.prs_perslid_key
|
|
AND m.mld_stdmelding_key = 144
|
|
AND m.mld_melding_status IN (2, 3, 4)
|
|
-- 2e leidinggevende notificeren
|
|
UNION ALL
|
|
SELECT '1',
|
|
fac.safe_to_number(DECODE (l.prs_perslid_key_leid,
|
|
l.niveau1, NULL,
|
|
l.niveau2, l.niveau1,
|
|
l.niveau2)),
|
|
mld_melding_key
|
|
FROM mld_melding m, aaen_v_leidinggevende l
|
|
WHERE m.prs_perslid_key = l.prs_perslid_key
|
|
AND m.mld_stdmelding_key = 143
|
|
AND m.mld_melding_status IN (2, 3, 4))
|
|
WHERE leidinggevende IS NULL;
|
|
|
|
CURSOR cg
|
|
IS
|
|
SELECT *
|
|
FROM mld_melding m
|
|
WHERE mld_stdmelding_key IN (143, 144) -- goedkeuring 1e en 2e leidinggevende
|
|
AND prs_perslid_key = fac.gettrackinguserkey ('MLDAFM', mld_melding_key)
|
|
AND TRUNC (fac.gettrackingdate('MLDAFM', mld_melding_key)) > sysdate -1;
|
|
|
|
v_opdr_count NUMBER(10);
|
|
v_melding_key NUMBER(10);
|
|
|
|
BEGIN
|
|
|
|
FOR rec IN cg -- lijst met meldingen goedkeuring 1e of 2e leidinggevende die door melder zelf zijn goedgekeurd.
|
|
LOOP
|
|
BEGIN
|
|
SELECT count(*)
|
|
INTO v_opdr_count
|
|
FROM mld_opdr o, mld_melding m
|
|
WHERE o.mld_melding_key = m.mld_melding_key
|
|
AND m.mld_melding_start_key = rec.mld_melding_start_key;
|
|
|
|
-- Als er al opdrachten naar de leasemaatschappij verstuurd zijn, is het te laat om de meldingen nog te verwijderen
|
|
IF v_opdr_count = 0
|
|
THEN
|
|
|
|
DELETE fac_tracking t WHERE
|
|
EXISTS (SELECT mld_melding_key
|
|
FROM mld_melding m, fac_srtnotificatie sn
|
|
WHERE mld_melding_start_key = rec.mld_melding_start_key
|
|
AND t.fac_tracking_refkey = m.mld_melding_key
|
|
AND t.fac_srtnotificatie_key = sn.fac_srtnotificatie_key
|
|
AND m.mld_melding_key <> m.mld_melding_start_key
|
|
AND sn.fac_srtnotificatie_xmlnode = 'melding');
|
|
|
|
SELECT mld_melding_key
|
|
INTO v_melding_key
|
|
FROM mld_melding m
|
|
WHERE m.mld_melding_start_key = rec.mld_melding_start_key
|
|
AND m.mld_melding_start_key = m.mld_melding_key;
|
|
|
|
DELETE mld_melding m WHERE m.mld_melding_start_key = rec.mld_melding_start_key
|
|
AND m.mld_melding_key <> m.mld_melding_start_key;
|
|
|
|
-- set de melding status weer op nieuw om deze vervolgens af te wijzen
|
|
UPDATE mld_melding
|
|
SET mld_melding_status = 2,
|
|
mld_melding_opmerking = mld_melding_opmerking || CHR (13) || CHR (10) || 'Melding afgewezen omdat goedkeuring door aanvrager zelf is uitgevoerd.'
|
|
WHERE mld_melding_start_key = rec.mld_melding_start_key;
|
|
|
|
|
|
MLD.setmeldingstatus(v_melding_key, 1, NULL);
|
|
END IF;
|
|
END;
|
|
END LOOP;
|
|
|
|
FOR rec IN cl -- hangende meldingen die geen leidinggevende meer hebben.
|
|
LOOP
|
|
BEGIN
|
|
MLD.setmeldingstatus(rec.mld_melding_key, 4, 4); -- accepteren door facilitor
|
|
MLD.setmeldingstatus(rec.mld_melding_key, 5, 4); -- afmelden door facilitor
|
|
MLD.mld_nextworkflowstep (rec.mld_melding_key, 1); -- Succes en trap de volgende workflow stap af.
|
|
EXCEPTION
|
|
WHEN OTHERS
|
|
THEN
|
|
fac.writelog (p_applname
|
|
, 'E'
|
|
, 'OTHERS (error ' || SQLCODE || '/' || SUBSTR (SQLERRM, 1, 100) || ')'
|
|
, 'Fout bij afhandelen van melding: ' || rec.mld_melding_key);
|
|
|
|
END;
|
|
END LOOP;
|
|
|
|
-- opdrachten aanmaken voor leaseaanvragen die een eindsituatie bereikt hebben.
|
|
FOR rec IN c
|
|
LOOP
|
|
BEGIN
|
|
INSERT INTO mld_opdr (mld_melding_key
|
|
, prs_kostenplaats_key
|
|
, mld_statusopdr_key
|
|
, mld_typeopdr_key
|
|
, prs_perslid_key
|
|
, mld_uitvoerende_keys
|
|
, mld_opdr_datumbegin
|
|
, mld_opdr_einddatum
|
|
, mld_opdr_module
|
|
, mld_opdr_omschrijving
|
|
, mld_opdr_bedrijfopdr_volgnr
|
|
, mld_opdr_teverzenden)
|
|
VALUES ( rec.mld_melding_key
|
|
, rec.prs_kostenplaats_key
|
|
, 5 -- uitgegeven
|
|
, 1 -- docket
|
|
, 4 -- facilitor
|
|
, rec.prs_bedrijf_key
|
|
, SYSDATE
|
|
, FAC.DatumTijdPlusUitvoerTijd (SYSDATE, 1, 'DAGEN')
|
|
, 'MLD'
|
|
, rec.mld_melding_omschrijving
|
|
, 1
|
|
, 1);
|
|
|
|
-- update melding status is niet nodig omdat de melding al afgemeld is.
|
|
-- MLD.updatemeldingstatus (rec.mld_melding_key, 0, 4); -- facilitor
|
|
|
|
EXCEPTION
|
|
WHEN OTHERS
|
|
THEN
|
|
fac.writelog (p_applname
|
|
, 'E'
|
|
, 'OTHERS (error ' || SQLCODE || '/' || SUBSTR (SQLERRM, 1, 100) || ')'
|
|
, 'Fout bij aanmaken opdracht: ' || rec.mld_melding_key);
|
|
|
|
END;
|
|
COMMIT;
|
|
END LOOP;
|
|
|
|
FOR rec IN co
|
|
LOOP
|
|
BEGIN
|
|
mld.setopdrachtstatus(rec.mld_opdr_key, 6, 4); -- afgemeld, facilitor
|
|
EXCEPTION
|
|
WHEN OTHERS
|
|
THEN
|
|
fac.writelog (p_applname
|
|
, 'E'
|
|
, 'OTHERS (error ' || SQLCODE || '/' || SUBSTR (SQLERRM, 1, 100) || ')'
|
|
, 'Fout bij afmelden opdracht: ' || rec.mld_opdr_key);
|
|
END;
|
|
END LOOP;
|
|
END aaen_export_lease_aanvraag;
|
|
/
|
|
|
|
--
|
|
--
|
|
-- IMPORT FUNCTIES
|
|
--
|
|
--
|
|
|
|
|
|
CREATE OR REPLACE PROCEDURE aaen_import_perslid (p_import_key IN NUMBER)
|
|
AS
|
|
CURSOR c IS
|
|
SELECT alg_locatie_code, alg_gebouw_code, prs_perslid_nr FROM fac_imp_perslid;
|
|
|
|
oracle_err_num NUMBER;
|
|
oracle_err_mes VARCHAR2 (200);
|
|
v_errormsg VARCHAR2 (400);
|
|
v_errorhint VARCHAR2 (400);
|
|
|
|
v_alg_ruimte_key NUMBER;
|
|
v_alg_verdieping_volgnr NUMBER;
|
|
v_alg_ruimte_nr VARCHAR2(10);
|
|
|
|
BEGIN
|
|
|
|
v_errorhint := 'Generieke update';
|
|
-- de sequence array staat beschreven in PRS_PAC.SRC bij de prs.import_perslid proc
|
|
prs.import_perslid (p_import_key,
|
|
'1;2;0;0;0;0;3;4;5;7;' ||
|
|
'6;19;18;0;8;9;10;11;0;13;' ||
|
|
'12;14;0;0;0;0;17;15;0;0;'||
|
|
'0;0;0;0;0;0;0;0;0;0;'||
|
|
'0;0;0;0;0;0',
|
|
''
|
|
);
|
|
|
|
-- Klantspecifieke aanpassingen
|
|
|
|
-- Codering naamgebruik Enexis:
|
|
-- 00 - Gebruik eigennaam
|
|
-- 01 - Gebruik partnernaam
|
|
-- 02 - Gebruik eigennaam - partnernaam
|
|
-- 03 - Gebruik partnernaam - eigennaam
|
|
UPDATE fac_imp_perslid SET PRS_PERSLID_NAAMGEBRUIK_CODE = 0 WHERE PRS_KENMERK1 = '00'; -- 0 (default) perslid_naam en perslid_tussenvoegsel worden gebruikt
|
|
UPDATE fac_imp_perslid SET PRS_PERSLID_NAAMGEBRUIK_CODE = 1 WHERE PRS_KENMERK1 = '03'; -- 1 personen die de geboortenaam van de partner icm de eigen naam willen gebruiken
|
|
UPDATE fac_imp_perslid SET PRS_PERSLID_NAAMGEBRUIK_CODE = 2 WHERE PRS_KENMERK1 = '01'; -- 2 personen die de geboortenaam van de partner willen gebruiken
|
|
UPDATE fac_imp_perslid SET PRS_PERSLID_NAAMGEBRUIK_CODE = 3 WHERE PRS_KENMERK1 = '02'; -- 3 personen die de eigen naam icm de geboortenaam van de partner willen gebruiken
|
|
|
|
-- verwijder AAFM medewerkers uit de lijst. Deze mensen worden via de AAFM import methode ingelezen.
|
|
DELETE fac_imp_perslid i
|
|
WHERE prs_afdeling_naam = '50141837' -- uitbesteede diensten
|
|
AND EXISTS
|
|
(SELECT prs_perslid_key
|
|
FROM prs_v_aanwezigperslid p
|
|
WHERE p.prs_perslid_naam = i.prs_perslid_naam
|
|
AND p.prs_perslid_voornaam = i.prs_perslid_voornaam
|
|
AND p.prs_afdeling_key = 643 -- aafm
|
|
);
|
|
|
|
-- default werkplek invullen
|
|
/*
|
|
FOR rec in c
|
|
LOOP
|
|
BEGIN
|
|
SELECT MAX(alg_ruimte_key)
|
|
INTO v_alg_ruimte_key
|
|
FROM prs_v_werkplek_gegevens wpg, prs_perslidwerkplek pwp, prs_perslid p
|
|
WHERE wpg.prs_werkplek_key = pwp.prs_werkplek_key
|
|
AND pwp.prs_perslid_key = p.prs_perslid_key
|
|
AND p.prs_perslid_nr = rec.prs_perslid_nr
|
|
AND wpg.alg_gebouw_code = rec.alg_gebouw_code;
|
|
|
|
IF v_alg_ruimte_key IS NULL
|
|
THEN
|
|
SELECT MAX(alg_ruimte_key)
|
|
INTO v_alg_ruimte_key
|
|
FROM alg_v_ruimte_gegevens
|
|
WHERE alg_gebouw_upper = rec.alg_gebouw_code
|
|
AND alg_ruimte_nr = '000';
|
|
END IF;
|
|
|
|
IF v_alg_ruimte_key IS NOT NULL
|
|
THEN
|
|
SELECT alg_verdieping_volgnr, alg_ruimte_nr
|
|
INTO v_alg_verdieping_volgnr, v_alg_ruimte_nr
|
|
FROM alg_v_ruimte_gegevens
|
|
WHERE alg_ruimte_key = v_alg_ruimte_key;
|
|
|
|
UPDATE fac_imp_perslid
|
|
SET alg_verdieping_volgnr = v_alg_verdieping_volgnr,
|
|
alg_ruimte_nr = v_alg_ruimte_nr
|
|
WHERE prs_perslid_nr = rec.prs_perslid_nr;
|
|
END IF;
|
|
END;
|
|
END LOOP;
|
|
*/
|
|
|
|
COMMIT;
|
|
EXCEPTION
|
|
WHEN OTHERS
|
|
THEN
|
|
oracle_err_num := SQLCODE;
|
|
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
|
|
v_errormsg := 'Error ' || oracle_err_num || '/' || oracle_err_mes;
|
|
fac.imp_writelog (p_import_key, 'E', v_errormsg, v_errorhint);
|
|
END aaen_import_perslid;
|
|
/
|
|
|
|
|
|
|
|
CREATE OR REPLACE PROCEDURE aaen_update_perslid (p_import_key IN NUMBER)
|
|
IS
|
|
CURSOR c
|
|
IS
|
|
SELECT p.prs_perslid_key, p.prs_perslid_nr, pf.prs_perslid_naam_full
|
|
FROM fac_imp_perslid i,
|
|
prs_perslid p,
|
|
prs_v_perslid_fullnames_all pf
|
|
WHERE p.prs_perslid_nr = i.prs_perslid_nr(+)
|
|
AND pf.prs_perslid_key = p.prs_perslid_key
|
|
AND p.prs_perslid_nr IS NOT NULL
|
|
AND i.prs_perslid_nr IS NULL
|
|
AND p.prs_perslid_verwijder IS NULL
|
|
ORDER BY 2;
|
|
|
|
CURSOR c_flex
|
|
IS
|
|
SELECT i.*, p.prs_perslid_key prs_key
|
|
FROM fac_imp_perslid i, prs_perslid p
|
|
WHERE p.prs_perslid_nr = i.prs_perslid_nr
|
|
AND p.prs_perslid_verwijder IS NULL
|
|
ORDER BY 2;
|
|
|
|
-- Maximaal toegestane afname van #personen door import!
|
|
c_max_delta_percentage NUMBER (10) := 20;
|
|
v_perslid_key NUMBER;
|
|
v_perslid_nr VARCHAR2 (100);
|
|
v_kostenplaats_nr VARCHAR2 (100);
|
|
v_count_prs_actual NUMBER (10);
|
|
v_count_prs_import NUMBER (10);
|
|
BEGIN
|
|
-- #actieve personen voor import!
|
|
SELECT DECODE (COUNT ( * ), 0, 1, COUNT ( * ))
|
|
INTO v_count_prs_actual
|
|
FROM prs_v_aanwezigperslid
|
|
WHERE prs_perslid_nr IS NOT NULL;
|
|
|
|
-- #actieve personen *na* import!
|
|
SELECT DECODE (COUNT ( * ), 0, 1, COUNT ( * ))
|
|
INTO v_count_prs_import
|
|
FROM prs_v_aanwezigperslid p, fac_imp_perslid ip
|
|
WHERE p.prs_perslid_nr IS NOT NULL
|
|
AND UPPER (p.prs_perslid_nr) = UPPER (ip.prs_perslid_nr);
|
|
|
|
IF ( (TRUNC ( (v_count_prs_import / v_count_prs_actual) * 100) >=
|
|
(100 - c_max_delta_percentage)))
|
|
THEN
|
|
-- Geldig importbestand wat betreft aantal personen
|
|
-- generic update
|
|
prs.update_perslid (p_import_key, 'NR', '');
|
|
|
|
-- remove perslid records if people registered with perslid_nr are not present in the import file.
|
|
FOR rec IN c
|
|
LOOP
|
|
BEGIN
|
|
prs.delete_perslid (p_import_key, rec.prs_perslid_key);
|
|
END;
|
|
END LOOP;
|
|
|
|
-- update flex fields
|
|
FOR rec IN c_flex
|
|
LOOP
|
|
BEGIN
|
|
PRS.upsertkenmerk (1000, rec.prs_key, rec.prs_kenmerk2); -- Kostenplaats
|
|
END;
|
|
END LOOP;
|
|
|
|
ELSE
|
|
fac.imp_writelog (
|
|
p_import_key,
|
|
'E',
|
|
'Afname van #personen door import te groot!',
|
|
'- #personen voor import = ['
|
|
|| TO_CHAR (v_count_prs_actual)
|
|
|| '] <br> '
|
|
|| '- #personen *na* import = ['
|
|
|| TO_CHAR (v_count_prs_import)
|
|
|| ']'
|
|
);
|
|
COMMIT;
|
|
END IF; -- Geldig importbestand wat betreft aantal inserts
|
|
|
|
COMMIT;
|
|
END aaen_update_perslid;
|
|
/
|
|
|
|
|
|
CREATE OR REPLACE PROCEDURE aaen_import_organisatie_mut (p_import_key IN NUMBER)
|
|
AS
|
|
c_fielddelimitor VARCHAR2 (1) := ';';
|
|
v_newline VARCHAR2 (1000); -- Input line
|
|
v_errormsg VARCHAR2 (1000);
|
|
oracle_err_num NUMBER;
|
|
oracle_err_mes VARCHAR2 (200);
|
|
header_is_valid NUMBER;
|
|
v_count NUMBER;
|
|
v_ongeldig NUMBER (1);
|
|
v_mode NUMBER (1);
|
|
v_aanduiding VARCHAR2 (200);
|
|
v_all_null BOOLEAN;
|
|
v_count_error NUMBER (10);
|
|
v_count_tot NUMBER (10);
|
|
v_count_import NUMBER (10);
|
|
-- De importvelden:
|
|
v_bedrijf_naam VARCHAR2 (256);
|
|
v_afdeling_naam VARCHAR2 (256);
|
|
v_afdeling_naam_parent VARCHAR2 (256);
|
|
v_afdeling_omschrijving VARCHAR2 (256);
|
|
v_afdeling_niveau_txt VARCHAR2(20);
|
|
v_afdeling_leiding_txt VARCHAR2(20);
|
|
v_afdeling_niveau NUMBER(10);
|
|
v_afdeling_leiding NUMBER (10);
|
|
|
|
-- PRS_BEDRIJF
|
|
CURSOR c1
|
|
IS
|
|
SELECT *
|
|
FROM fac_imp_file
|
|
WHERE fac_import_key = p_import_key
|
|
ORDER BY fac_imp_file_index;
|
|
BEGIN
|
|
DELETE FROM aaen_imp_organisatie;
|
|
|
|
COMMIT;
|
|
v_count_error := 0;
|
|
header_is_valid := 0;
|
|
v_count_tot := 0;
|
|
v_count_import := 0;
|
|
|
|
FOR rec1 IN c1
|
|
LOOP
|
|
BEGIN
|
|
v_errormsg := 'Fout FETCH te importeren rij';
|
|
|
|
v_newline := rec1.fac_imp_file_line;
|
|
v_errormsg := 'Fout opvragen te importeren rij';
|
|
v_aanduiding := '';
|
|
v_ongeldig := 0;
|
|
|
|
-- Lees alle veldwaarden
|
|
fac.imp_getfield (v_newline, c_fielddelimitor, v_bedrijf_naam);
|
|
fac.imp_getfield (v_newline, c_fielddelimitor, v_afdeling_naam_parent);
|
|
fac.imp_getfield (v_newline, c_fielddelimitor, v_afdeling_naam);
|
|
fac.imp_getfield (v_newline, c_fielddelimitor, v_afdeling_omschrijving);
|
|
fac.imp_getfield (v_newline, c_fielddelimitor, v_afdeling_niveau_txt);
|
|
fac.imp_getfield (v_newline, c_fielddelimitor, v_afdeling_leiding_txt);
|
|
v_aanduiding := v_bedrijf_naam || '|' || v_afdeling_naam || '|' || v_afdeling_omschrijving || '| ';
|
|
|
|
v_count_tot := v_count_tot + 1;
|
|
-- bedrijf komt standaard op Enexis te staan omdat ze nogal eens wijzigende bedrijfsnamen
|
|
-- hebben. AAEN#26821
|
|
v_bedrijf_naam := 'Enexis';
|
|
|
|
--
|
|
v_afdeling_naam := TRIM (v_afdeling_naam);
|
|
|
|
IF LENGTH (v_afdeling_naam) > 10
|
|
THEN
|
|
v_afdeling_naam := SUBSTR (v_afdeling_naam, 1, 10);
|
|
fac.imp_writelog (p_import_key,
|
|
'W',
|
|
v_aanduiding || 'Afdeling-aanduiding is te lang',
|
|
'Aanduiding wordt afgebroken tot [' || v_afdeling_naam || ']'
|
|
);
|
|
END IF;
|
|
|
|
--
|
|
v_afdeling_naam_parent := TRIM (v_afdeling_naam_parent);
|
|
|
|
IF LENGTH (v_afdeling_naam_parent) > 10
|
|
THEN
|
|
v_afdeling_naam_parent := SUBSTR (v_afdeling_naam_parent, 1, 10);
|
|
fac.imp_writelog (p_import_key,
|
|
'W',
|
|
v_aanduiding || 'Afdeling-aanduiding is te lang',
|
|
'Aanduiding wordt afgebroken tot [' || v_afdeling_naam_parent || ']'
|
|
);
|
|
END IF;
|
|
|
|
--
|
|
v_afdeling_omschrijving := TRIM (v_afdeling_omschrijving);
|
|
|
|
IF LENGTH (v_afdeling_omschrijving) > 60
|
|
THEN
|
|
v_afdeling_omschrijving := SUBSTR (v_afdeling_omschrijving, 1, 60);
|
|
fac.imp_writelog (p_import_key,
|
|
'W',
|
|
v_aanduiding || 'Afdelingsomschrijving is te lang',
|
|
'Aanduiding wordt afgebroken tot [' || v_afdeling_omschrijving || ']'
|
|
);
|
|
END IF;
|
|
|
|
--
|
|
v_afdeling_niveau := fac.safe_to_number(v_afdeling_niveau_txt);
|
|
|
|
-- als het afdelingniveau 1 is (top element) dan doet de parent er niet meer toe.
|
|
IF v_afdeling_niveau = 1
|
|
THEN
|
|
v_afdeling_naam_parent := NULL;
|
|
END IF;
|
|
|
|
v_afdeling_leiding := fac.safe_to_number(v_afdeling_leiding_txt);
|
|
|
|
v_all_null :=
|
|
(v_bedrijf_naam IS NULL)
|
|
AND (v_afdeling_naam IS NULL)
|
|
AND (v_afdeling_naam_parent IS NULL)
|
|
AND (v_afdeling_omschrijving IS NULL);
|
|
|
|
-- Insert geformatteerde import record
|
|
IF v_ongeldig = 0
|
|
THEN
|
|
v_errormsg := 'Fout bij toevoegen te impoteren bedrijf/afdeling [' || v_afdeling_naam || ']';
|
|
|
|
INSERT INTO aaen_imp_organisatie (
|
|
prs_bedrijf_naam,
|
|
prs_afdeling_naam,
|
|
prs_afdeling_naam_parent,
|
|
prs_afdeling_omschrijving,
|
|
prs_afdeling_niveau,
|
|
prs_afdeling_leiding
|
|
)
|
|
VALUES (
|
|
v_bedrijf_naam,
|
|
v_afdeling_naam,
|
|
v_afdeling_naam_parent,
|
|
v_afdeling_omschrijving,
|
|
v_afdeling_niveau,
|
|
v_afdeling_leiding
|
|
);
|
|
|
|
v_count_import := v_count_import + 1;
|
|
END IF;
|
|
END;
|
|
END LOOP;
|
|
|
|
fac.imp_writelog (p_import_key, 'S', 'Bedrijf: aantal ingelezen regels: ' || TO_CHAR (v_count_tot), '');
|
|
fac.imp_writelog (p_import_key,
|
|
'S',
|
|
'Bedrijf: aantal ongeldige importregels: ' || TO_CHAR (v_count_tot - v_count_import),
|
|
''
|
|
);
|
|
|
|
COMMIT;
|
|
EXCEPTION
|
|
WHEN OTHERS
|
|
THEN
|
|
oracle_err_num := SQLCODE;
|
|
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
|
|
v_errormsg := 'error ' || oracle_err_num || '/' || oracle_err_mes;
|
|
fac.imp_writelog (p_import_key, 'E', v_errormsg, '');
|
|
END aaen_import_organisatie_mut;
|
|
/
|
|
|
|
|
|
CREATE OR REPLACE PROCEDURE aaen_update_organisatie_mut (p_import_key IN NUMBER)
|
|
AS
|
|
CURSOR c
|
|
IS
|
|
SELECT i.*, a.prs_afdeling_key
|
|
FROM aaen_imp_organisatie i, prs_afdeling a
|
|
WHERE i.prs_afdeling_naam = a.prs_afdeling_naam(+)
|
|
ORDER BY i.prs_afdeling_niveau;
|
|
|
|
v_errormsg VARCHAR (200);
|
|
v_errorhint VARCHAR (200);
|
|
oracle_err_mes VARCHAR2 (150);
|
|
v_maxvariation NUMBER;
|
|
currentversion fac_module.fac_module_version%TYPE;
|
|
v_aanduiding VARCHAR (100);
|
|
v_prs_bedrijf_key NUMBER;
|
|
v_prs_afd_parent_key NUMBER;
|
|
v_prs_kostenplaats_key NUMBER;
|
|
v_prs_afdeling_leiding NUMBER;
|
|
v_prs_afdeling_key NUMBER;
|
|
v_prs_afd_niveau_parent NUMBER;
|
|
v_count NUMBER;
|
|
v_newcount NUMBER;
|
|
v_oldcount NUMBER;
|
|
v_impcount NUMBER;
|
|
|
|
BEGIN
|
|
v_maxvariation := 0.8; -- Max new/old ratio to prevent undesired changes
|
|
|
|
SELECT MAX (fac_module_version)
|
|
INTO currentversion
|
|
FROM fac_module;
|
|
|
|
fac.imp_writelog (p_import_key,
|
|
'I',
|
|
'Facilitor afdeling import version ' || currentversion,
|
|
'$Revision$'
|
|
);
|
|
|
|
-- How many active records are now present?
|
|
SELECT COUNT ( * )
|
|
INTO v_oldcount
|
|
FROM prs_afdeling
|
|
WHERE (prs_afdeling_parentkey IS NULL OR prs_afdeling_parentkey <> 1)
|
|
AND prs_afdeling_verwijder IS NULL;
|
|
|
|
-- How many active records are imported?
|
|
SELECT COUNT ( * )
|
|
INTO v_impcount
|
|
FROM aaen_imp_organisatie;
|
|
|
|
IF (ABS ( (v_impcount) - v_oldcount) > v_maxvariation * v_oldcount)
|
|
THEN
|
|
fac.imp_writelog (p_import_key,
|
|
'E',
|
|
'Het verschil tussen de actieve afdelingen ('
|
|
|| TO_CHAR (v_oldcount)
|
|
|| ') en geimporteerde aantallen ('
|
|
|| TO_CHAR (v_impcount)
|
|
|| ') is te groot',
|
|
'Zie Specificaties: De afwijking is teveel en bedraagt '
|
|
|| TO_CHAR ( ( (v_impcount) - v_oldcount)
|
|
/ v_oldcount,
|
|
'999D9'
|
|
)
|
|
|| '%.'
|
|
);
|
|
RETURN;
|
|
END IF;
|
|
|
|
FOR rec IN c
|
|
LOOP
|
|
v_aanduiding := rec.prs_afdeling_naam;
|
|
v_errorhint := 'Kijk of bedrijf al bestaat';
|
|
|
|
-- Bestaat het bedrijf al?
|
|
BEGIN
|
|
SELECT prs_bedrijf_key
|
|
INTO v_prs_bedrijf_key
|
|
FROM prs_bedrijf
|
|
WHERE UPPER (prs_bedrijf_naam) = UPPER (rec.prs_bedrijf_naam)
|
|
AND prs_bedrijf_verwijder IS NULL;
|
|
|
|
v_errorhint := 'Kijk of leidinggevende bestaat';
|
|
|
|
IF rec.prs_afdeling_leiding IS NOT NULL
|
|
THEN
|
|
BEGIN
|
|
SELECT prs_perslid_key
|
|
INTO v_prs_afdeling_leiding
|
|
FROM prs_perslid
|
|
WHERE prs_perslid_verwijder IS NULL
|
|
AND prs_perslid_nr = rec.prs_afdeling_leiding;
|
|
EXCEPTION
|
|
WHEN NO_DATA_FOUND
|
|
THEN
|
|
-- log geen leidinggevende gevonden
|
|
v_prs_afdeling_leiding := NULL;
|
|
END;
|
|
ELSE
|
|
v_prs_afdeling_leiding := NULL;
|
|
END IF;
|
|
|
|
v_errorhint := 'Kijk of kostenplaats al bestaat';
|
|
|
|
BEGIN
|
|
SELECT prs_kostenplaats_key
|
|
INTO v_prs_kostenplaats_key
|
|
FROM prs_kostenplaats
|
|
WHERE prs_kostenplaats_verwijder IS NULL
|
|
AND prs_kostenplaats_nr = rec.prs_afdeling_naam;
|
|
|
|
UPDATE prs_kostenplaats
|
|
SET prs_kostenplaats_omschrijving =
|
|
rec.prs_afdeling_omschrijving,
|
|
prs_perslid_key = v_prs_afdeling_leiding
|
|
WHERE prs_kostenplaats_key = v_prs_kostenplaats_key;
|
|
EXCEPTION
|
|
WHEN NO_DATA_FOUND
|
|
THEN
|
|
v_errorhint := 'Nieuwe kostenplaats toevoegen';
|
|
|
|
INSERT INTO prs_kostenplaats
|
|
(
|
|
prs_kostenplaats_nr,
|
|
prs_kostenplaats_omschrijving,
|
|
prs_kostenplaats_module,
|
|
prs_perslid_key
|
|
)
|
|
VALUES (
|
|
rec.prs_afdeling_naam,
|
|
rec.prs_afdeling_omschrijving,
|
|
'PRS',
|
|
v_prs_afdeling_leiding
|
|
)
|
|
RETURNING prs_kostenplaats_key INTO v_prs_kostenplaats_key;
|
|
END;
|
|
|
|
v_errorhint := 'Kijk of parent bestaat';
|
|
|
|
IF rec.prs_afdeling_naam_parent IS NOT NULL
|
|
THEN
|
|
SELECT prs_afdeling_key
|
|
INTO v_prs_afd_parent_key
|
|
FROM prs_afdeling
|
|
WHERE prs_afdeling_verwijder IS NULL
|
|
AND prs_afdeling_naam = rec.prs_afdeling_naam_parent;
|
|
ELSE
|
|
v_prs_afd_parent_key := NULL;
|
|
END IF;
|
|
|
|
|
|
v_errorhint := 'Zoek het niveau van de parent';
|
|
IF v_prs_afd_parent_key IS NOT NULL
|
|
THEN
|
|
SELECT prs_kenmerklink_waarde
|
|
INTO v_prs_afd_niveau_parent
|
|
FROM prs_kenmerklink
|
|
WHERE prs_kenmerk_key = 1081 -- afdelingsniveau
|
|
AND prs_link_key = v_prs_afd_parent_key;
|
|
ELSE
|
|
v_prs_afd_niveau_parent := 0;
|
|
END IF;
|
|
v_prs_afd_niveau_parent := v_prs_afd_niveau_parent +1;
|
|
|
|
IF rec.prs_afdeling_key IS NULL
|
|
THEN
|
|
-- toevoegen afdeling
|
|
v_errorhint := 'Toevoegen afdeling';
|
|
|
|
INSERT INTO prs_afdeling
|
|
(
|
|
prs_bedrijf_key,
|
|
prs_afdeling_parentkey,
|
|
prs_afdeling_naam,
|
|
prs_afdeling_omschrijving,
|
|
prs_kostenplaats_key
|
|
)
|
|
VALUES (
|
|
v_prs_bedrijf_key,
|
|
NULL,
|
|
rec.prs_afdeling_naam,
|
|
rec.prs_afdeling_omschrijving,
|
|
v_prs_kostenplaats_key
|
|
)
|
|
RETURNING prs_afdeling_key INTO v_prs_afdeling_key;
|
|
ELSE
|
|
-- aanpassen afdeling
|
|
v_errorhint := 'Aanpassen afdeling';
|
|
|
|
UPDATE prs_afdeling
|
|
SET prs_bedrijf_key = v_prs_bedrijf_key,
|
|
prs_afdeling_parentkey = NULL,
|
|
prs_afdeling_naam = rec.prs_afdeling_naam,
|
|
prs_afdeling_omschrijving = rec.prs_afdeling_omschrijving,
|
|
prs_kostenplaats_key = v_prs_kostenplaats_key
|
|
WHERE prs_afdeling_key = rec.prs_afdeling_key;
|
|
v_prs_afdeling_key := rec.prs_afdeling_key;
|
|
END IF;
|
|
|
|
aaxx.set_prs_kenmerk(p_import_key, 'A', 1020, v_prs_afdeling_key, v_prs_afdeling_leiding);
|
|
aaxx.set_prs_kenmerk(p_import_key, 'A', 1080, v_prs_afdeling_key, v_prs_afd_parent_key);
|
|
aaxx.set_prs_kenmerk(p_import_key, 'A', 1081, v_prs_afdeling_key, v_prs_afd_niveau_parent);
|
|
|
|
EXCEPTION
|
|
WHEN OTHERS
|
|
THEN
|
|
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
|
|
v_errormsg := 'error ' || SQLCODE || '/' || oracle_err_mes;
|
|
fac.imp_writelog (p_import_key,
|
|
'E',
|
|
v_errormsg,
|
|
v_errorhint || '-' || v_aanduiding
|
|
);
|
|
END;
|
|
END LOOP;
|
|
|
|
SELECT COUNT ( * )
|
|
INTO v_newcount
|
|
FROM prs_afdeling
|
|
WHERE (prs_afdeling_parentkey IS NULL OR prs_afdeling_parentkey <> 1)
|
|
AND prs_afdeling_verwijder IS NULL;
|
|
|
|
|
|
fac.imp_writelog (p_import_key,
|
|
'S',
|
|
'Aantal ingelezen afdelingen: ' || TO_CHAR (v_impcount),
|
|
''
|
|
);
|
|
fac.imp_writelog (p_import_key,
|
|
'S',
|
|
'Aantal afdelingen vooraf: '
|
|
|| TO_CHAR (v_oldcount)
|
|
|| ' nu: '
|
|
|| TO_CHAR (v_newcount),
|
|
''
|
|
);
|
|
|
|
-- postprocessing
|
|
-- voeg alle leidinggevenden toe aan de groep Enexis leidinggevenden (key 141)
|
|
INSERT INTO fac_gebruikersgroep
|
|
(
|
|
prs_perslid_key, fac_groep_key
|
|
)
|
|
SELECT DISTINCT prs_perslid_key, 141
|
|
FROM prs_kostenplaats k
|
|
WHERE NOT EXISTS
|
|
(SELECT prs_perslid_key
|
|
FROM fac_gebruikersgroep gg
|
|
WHERE k.prs_perslid_key = gg.prs_perslid_key
|
|
AND fac_groep_key = 141)
|
|
AND prs_perslid_key IS NOT NULL;
|
|
|
|
-- verwijder personen als leidinggevende als ze geen budgethouder meer zijn
|
|
DELETE fac_gebruikersgroep gg
|
|
WHERE fac_groep_key = 141
|
|
AND NOT EXISTS (SELECT prs_perslid_key
|
|
FROM prs_kostenplaats k
|
|
WHERE k.prs_perslid_key = gg.prs_perslid_key);
|
|
|
|
-- set het profiel van alle leidinggevenden.
|
|
UPDATE prs_perslid p
|
|
SET fac_profiel_key = 1
|
|
WHERE EXISTS (SELECT prs_perslid_key
|
|
FROM prs_kostenplaats kp
|
|
WHERE kp.prs_perslid_key = p.prs_perslid_key);
|
|
|
|
-- reset het profiel van alle oud-leidinggevenden.
|
|
UPDATE prs_perslid p
|
|
SET fac_profiel_key = NULL
|
|
WHERE NOT EXISTS (SELECT prs_perslid_key
|
|
FROM prs_kostenplaats kp
|
|
WHERE kp.prs_perslid_key = p.prs_perslid_key)
|
|
AND fac_profiel_key = 1;
|
|
|
|
-- todo afdelingen verwijderen;
|
|
|
|
END aaen_update_organisatie_mut;
|
|
/
|
|
|
|
|
|
CREATE OR REPLACE VIEW aaen_v_afdeling_ban
|
|
(
|
|
prs_afdeling_key,
|
|
fac_usrdata_code,
|
|
fac_usrdata_omschr
|
|
)
|
|
AS
|
|
SELECT prs_afdeling_key, fac_usrdata_code, fac_usrdata_omschr
|
|
FROM (SELECT prs_afdeling_key,
|
|
COALESCE (
|
|
al6,
|
|
COALESCE (
|
|
al5,
|
|
COALESCE (al4, COALESCE (al3, COALESCE (al2, al1)))))
|
|
ban_key
|
|
FROM (SELECT a.prs_afdeling_key,
|
|
(SELECT kl.prs_kenmerklink_waarde
|
|
FROM prs_kenmerklink kl
|
|
WHERE a.prs_afdeling_key1 = kl.prs_link_key
|
|
AND kl.prs_kenmerk_key = 1021)
|
|
al1,
|
|
(SELECT kl.prs_kenmerklink_waarde
|
|
FROM prs_kenmerklink kl
|
|
WHERE a.prs_afdeling_key2 = kl.prs_link_key
|
|
AND kl.prs_kenmerk_key = 1021)
|
|
al2,
|
|
(SELECT kl.prs_kenmerklink_waarde
|
|
FROM prs_kenmerklink kl
|
|
WHERE a.prs_afdeling_key3 = kl.prs_link_key
|
|
AND kl.prs_kenmerk_key = 1021)
|
|
al3,
|
|
(SELECT kl.prs_kenmerklink_waarde
|
|
FROM prs_kenmerklink kl
|
|
WHERE a.prs_afdeling_key4 = kl.prs_link_key
|
|
AND kl.prs_kenmerk_key = 1021)
|
|
al4,
|
|
(SELECT kl.prs_kenmerklink_waarde
|
|
FROM prs_kenmerklink kl
|
|
WHERE a.prs_afdeling_key5 = kl.prs_link_key
|
|
AND kl.prs_kenmerk_key = 1021)
|
|
al5,
|
|
(SELECT kl.prs_kenmerklink_waarde
|
|
FROM prs_kenmerklink kl
|
|
WHERE a.prs_afdeling_key6 = kl.prs_link_key
|
|
AND kl.prs_kenmerk_key = 1021)
|
|
al6
|
|
FROM aaen_v_afdeling_boom a)) a,
|
|
fac_usrdata ud
|
|
WHERE a.ban_key = fac_usrdata_key;
|
|
|
|
|
|
--------------------------------
|
|
-- import contractorders
|
|
--------------------------------
|
|
CREATE OR REPLACE PROCEDURE aaen_import_contract (
|
|
p_import_key IN NUMBER
|
|
) IS
|
|
BEGIN
|
|
aaxx_import_contract (p_import_key);
|
|
END aaen_import_contract;
|
|
/
|
|
|
|
CREATE OR REPLACE PROCEDURE aaen_update_contract (p_import_key IN NUMBER)
|
|
AS
|
|
BEGIN
|
|
aaxx_update_contract (p_import_key);
|
|
END aaen_update_contract;
|
|
/
|
|
|
|
CREATE OR REPLACE PROCEDURE aaen_import_ruimte (p_import_key IN NUMBER)
|
|
AS
|
|
BEGIN
|
|
aaxx_import_ruimte(p_import_key);
|
|
END;
|
|
/
|
|
|
|
CREATE OR REPLACE PROCEDURE aaen_update_ruimte (p_import_key IN NUMBER)
|
|
AS
|
|
BEGIN
|
|
aaxx_update_ruimte(p_import_key);
|
|
END;
|
|
/
|
|
|
|
CREATE OR REPLACE VIEW aaen_v_export_ruimte_xml (
|
|
result,
|
|
result_order
|
|
)
|
|
AS
|
|
SELECT fac_rapport_regel, fac_rapport_volgnr
|
|
FROM fac_rapport
|
|
WHERE fac_rapport_node = SUBSTR ('RUIMTE_XML', 1, 12);
|
|
|
|
CREATE OR REPLACE PROCEDURE aaen_select_ruimte_xml (p_applname IN VARCHAR2,
|
|
p_applrun IN VARCHAR2
|
|
)
|
|
AS
|
|
CURSOR c_loc
|
|
IS
|
|
SELECT alg_locatie_key,
|
|
alg_locatie_code,
|
|
alg_locatie_omschrijving,
|
|
alg_locatie_adres,
|
|
alg_locatie_plaats
|
|
FROM alg_locatie
|
|
WHERE alg_locatie_verwijder IS NULL;
|
|
|
|
-- ruimtenummer 000 wordt gebruikt om personen te plaatsen die alleen een locatie en gebouw code kennen.
|
|
CURSOR c_bld (c_alg_locatie_key number
|
|
)
|
|
IS
|
|
SELECT g.alg_gebouw_code,
|
|
DECODE(r.alg_ruimte_nr, '000', '', r.alg_ruimte_nr) alg_ruimte_nr,
|
|
DECODE(r.alg_ruimte_nr, '000', '', r.alg_ruimte_omschrijving) alg_ruimte_omschrijving,
|
|
DECODE(r.alg_ruimte_nr, '000', '', v.alg_verdieping_code) alg_verdieping_code,
|
|
DECODE(r.alg_ruimte_nr, '000', '', v.alg_verdieping_omschrijving) alg_verdieping_omschrijving,
|
|
p.prs_perslid_nr,
|
|
p.prs_perslid_telefoonnr,
|
|
p.prs_perslid_mobiel,
|
|
sg.alg_srtgebouw_omschrijving
|
|
FROM alg_gebouw g,
|
|
alg_verdieping v,
|
|
alg_ruimte r,
|
|
prs_werkplek wp,
|
|
prs_perslidwerkplek pwp,
|
|
prs_perslid p,
|
|
alg_srtgebouw sg
|
|
WHERE prs_perslid_verwijder IS NULL
|
|
AND g.alg_locatie_key = c_alg_locatie_key
|
|
AND g.alg_srtgebouw_key = sg.alg_srtgebouw_key(+)
|
|
AND g.alg_gebouw_key = v.alg_gebouw_key
|
|
AND v.alg_verdieping_key = r.alg_verdieping_key
|
|
AND r.alg_ruimte_key = wp.prs_alg_ruimte_key
|
|
AND wp.prs_werkplek_key = pwp.prs_werkplek_key
|
|
AND pwp.prs_perslid_key = p.prs_perslid_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 ('<FACILITYTALK>');
|
|
add_row ('<HEADER>');
|
|
add_element ('INTERFACEID', 'Ruimten');
|
|
add_element ('DOCUMENTID', 'ExportPersRmt');
|
|
add_element ('DESCRIPTION', 'Export personen met bijbehorende ruimten');
|
|
add_element ('DATEFORMAT', 'd/M/yyyy');
|
|
add_element ('DATESEPARATOR', '-');
|
|
add_element ('DECIMALSEPARATOR', ',');
|
|
add_element ('TRANSACTIONID', '{4F7D4E95-2FCB-4C2E-8FCE-3E0AD3BC39D0}');
|
|
add_element ('FORMATTEDDATECREATED', TO_CHAR (SYSDATE, 'dd-mm-yyyy'));
|
|
add_element ('DATETIMECREATED', TO_CHAR (SYSDATE, 'dd-mm-yyyy hh24:mi:ss')
|
|
);
|
|
add_element ('PLANONLICENCENAME', 'Enexis');
|
|
add_element ('PLANONLICENCECODE', 'NL3087');
|
|
add_element ('PLANONSUITERELEASE', '200710');
|
|
add_element ('PLANONDBSERVICEPACK', '0');
|
|
add_row ('</HEADER>');
|
|
add_row ('<SET>');
|
|
|
|
FOR rec_loc IN c_loc
|
|
LOOP
|
|
BEGIN
|
|
add_row ('<ROW>');
|
|
add_element ('OBJECTCODE', rec_loc.alg_locatie_code);
|
|
add_element ('PARENTOBJECTCODE', '');
|
|
add_element ('OBJECTPLAATS', rec_loc.alg_locatie_plaats);
|
|
add_element ('OBJECTADRES', rec_loc.alg_locatie_adres);
|
|
add_element ('RUIMTENUMMER', '');
|
|
add_element ('RUIMTENAAM', '');
|
|
add_element ('ETAGECODE', '');
|
|
add_element ('PERSONEELSNUMMER',
|
|
'LOC' || SUBSTR (rec_loc.alg_locatie_code, 1, 3)
|
|
);
|
|
add_element ('TELEFOONVOLLEDIG', '');
|
|
add_element ('MOBIELVOLLEDIG', '');
|
|
add_element ('TELEFOON', '');
|
|
add_element ('MOBIEL', '');
|
|
add_element ('TYPE', '');
|
|
add_row ('</ROW>');
|
|
|
|
FOR rec_bld IN c_bld (rec_loc.alg_locatie_key)
|
|
LOOP
|
|
BEGIN
|
|
add_row ('<ROW>');
|
|
add_element ('OBJECTCODE', rec_bld.alg_gebouw_code);
|
|
add_element ('PARENTOBJECTCODE', rec_loc.alg_locatie_code);
|
|
add_element ('OBJECTPLAATS', rec_loc.alg_locatie_plaats);
|
|
add_element ('OBJECTADRES', rec_loc.alg_locatie_adres);
|
|
add_element ('RUIMTENUMMER', rec_bld.alg_ruimte_nr);
|
|
add_element ('RUIMTENAAM', rec_bld.alg_ruimte_omschrijving);
|
|
add_element ('ETAGECODE', rec_bld.alg_verdieping_code);
|
|
add_element ('PERSONEELSNUMMER', rec_bld.prs_perslid_nr);
|
|
add_element ('TELEFOONVOLLEDIG',
|
|
rec_bld.prs_perslid_telefoonnr
|
|
);
|
|
add_element ('MOBIELVOLLEDIG', rec_bld.prs_perslid_mobiel);
|
|
add_element ('TELEFOON', '');
|
|
add_element ('MOBIEL', '');
|
|
add_element ('TYPE', rec_bld.alg_srtgebouw_omschrijving);
|
|
add_row ('</ROW>');
|
|
END;
|
|
END LOOP;
|
|
END;
|
|
END LOOP;
|
|
|
|
add_row ('</SET>');
|
|
add_row ('</FACILITYTALK>');
|
|
END;
|
|
/
|
|
|
|
|
|
CREATE OR REPLACE VIEW aaen_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 aaen_select_res_ruimte_xml (p_applname IN VARCHAR2,
|
|
p_applrun IN VARCHAR2
|
|
)
|
|
AS
|
|
CURSOR c_gebouw
|
|
IS
|
|
SELECT g.alg_gebouw_key, alg_gebouw_code, alg_gebouw_omschrijving
|
|
FROM res_v_alg_ruimte_gegevens rarg, alg_gebouw g
|
|
WHERE g.alg_gebouw_key = rarg.alg_gebouw_key
|
|
AND rarg.res_ruimte_key IS NOT NULL
|
|
GROUP BY g.alg_gebouw_key, alg_gebouw_code, alg_gebouw_omschrijving
|
|
ORDER BY alg_gebouw_code;
|
|
|
|
CURSOR c_ruimte (c_alg_gebouw_key number
|
|
)
|
|
IS
|
|
SELECT rr.res_ruimte_key,
|
|
rr.res_ruimte_nr,
|
|
r.alg_ruimte_nr,
|
|
rr.res_ruimte_omschrijving,
|
|
v.alg_verdieping_code,
|
|
v.alg_verdieping_omschrijving,
|
|
r.alg_ruimte_key
|
|
FROM res_v_alg_ruimte_gegevens rarg,
|
|
alg_ruimte r,
|
|
res_ruimte rr,
|
|
alg_verdieping v
|
|
WHERE rarg.alg_gebouw_key = c_alg_gebouw_key
|
|
AND rarg.alg_ruimte_key = r.alg_ruimte_key
|
|
AND rarg.res_ruimte_key = rr.res_ruimte_key
|
|
AND rarg.alg_verdieping_key = v.alg_verdieping_key
|
|
ORDER BY res_ruimte_key;
|
|
|
|
CURSOR c_res (c_alg_ruimte_key number
|
|
)
|
|
IS
|
|
SELECT rrr.res_reservering_key,
|
|
rrr.res_rsv_ruimte_volgnr,
|
|
rrr.res_rsv_ruimte_omschrijving,
|
|
rrr.res_rsv_ruimte_contact_key,
|
|
rrr.res_rsv_ruimte_host_key,
|
|
rrr.res_rsv_ruimte_van,
|
|
rrr.res_rsv_ruimte_tot,
|
|
rrr.res_rsv_ruimte_bezoekers,
|
|
DECODE ( (SELECT COUNT ( * )
|
|
FROM res_rsv_artikel rra
|
|
WHERE rra.res_rsv_ruimte_key = rrr.res_rsv_ruimte_key
|
|
AND rra.res_rsv_artikel_verwijder IS NULL),
|
|
0, 'Nee',
|
|
'Ja')
|
|
catering
|
|
FROM res_rsv_ruimte rrr, res_v_rsv_ruimte_2_alg_ruimte rarg
|
|
WHERE rarg.alg_ruimte_key = c_alg_ruimte_key
|
|
AND rarg.res_ruimte_key IS NOT NULL
|
|
AND rarg.res_rsv_ruimte_key = rrr.res_rsv_ruimte_key
|
|
AND TRUNC (rrr.res_rsv_ruimte_van) = TRUNC(SYSDATE)
|
|
ORDER BY rarg.alg_ruimte_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;
|
|
|
|
PROCEDURE add_perslid (p_prs_perslid_key IN number)
|
|
AS
|
|
v_prs_perslid_nr VARCHAR2 (16);
|
|
v_prs_perslid_voornaam VARCHAR2 (30);
|
|
v_prs_perslid_tussenvoegsel VARCHAR2 (15);
|
|
v_prs_perslid_naam VARCHAR2 (60);
|
|
v_prs_perslid_telefoonnr VARCHAR2 (15);
|
|
v_prs_perslid_mobiel VARCHAR2 (15);
|
|
BEGIN
|
|
SELECT prs_perslid_nr,
|
|
prs_perslid_voornaam,
|
|
prs_perslid_tussenvoegsel,
|
|
prs_perslid_naam,
|
|
prs_perslid_telefoonnr,
|
|
prs_perslid_mobiel
|
|
INTO v_prs_perslid_nr,
|
|
v_prs_perslid_voornaam,
|
|
v_prs_perslid_tussenvoegsel,
|
|
v_prs_perslid_naam,
|
|
v_prs_perslid_telefoonnr,
|
|
v_prs_perslid_mobiel
|
|
FROM prs_perslid
|
|
WHERE prs_perslid_key = p_prs_perslid_key;
|
|
|
|
add_row ('<ROW>');
|
|
add_element ('CODE', v_prs_perslid_nr);
|
|
add_element ('VOORNAAM', v_prs_perslid_voornaam);
|
|
add_element ('TUSSENVOEGSEL', v_prs_perslid_tussenvoegsel);
|
|
add_element ('ACHTERNAAM', v_prs_perslid_naam);
|
|
add_element ('TELEFOON ', v_prs_perslid_telefoonnr);
|
|
add_element ('MOBIEL', v_prs_perslid_mobiel);
|
|
add_row ('</ROW>');
|
|
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 ('<FACILITYTALK>');
|
|
add_row ('<HEADER>');
|
|
add_element ('INTERFACEID', 'ExportRes');
|
|
add_element ('DOCUMENTID', 'ExportRes');
|
|
add_element ('DESCRIPTION', 'Export Reserveringen');
|
|
add_element ('DATEFORMAT', 'd/M/yyyy');
|
|
add_element ('DATESEPARATOR', '-');
|
|
add_element ('DECIMALSEPARATOR', ',');
|
|
add_element ('TRANSACTIONID', '{905FF3EB-8BDE-4BDF-827E-6DAA24B6D101}');
|
|
add_element ('FORMATTEDDATECREATED', TO_CHAR (SYSDATE, 'dd-mm-yyyy'));
|
|
add_element ('DATETIMECREATED', TO_CHAR (SYSDATE, 'dd-mm-yyyy hh24:mi:ss')
|
|
);
|
|
add_element ('PLANONLICENCENAME', 'Enexis');
|
|
add_element ('PLANONLICENCECODE', 'NL3087');
|
|
add_element ('PLANONSUITERELEASE', '200710');
|
|
add_element ('PLANONDBSERVICEPACK', '0');
|
|
add_row ('</HEADER>');
|
|
add_row ('<SET>');
|
|
|
|
FOR rec_gebouw IN c_gebouw
|
|
LOOP
|
|
BEGIN
|
|
add_row ('<ROW>');
|
|
add_element ('GEBOUWSYSCODE', rec_gebouw.alg_gebouw_key);
|
|
add_element ('GEBOUWCODE', rec_gebouw.alg_gebouw_code);
|
|
add_element ('GEBOUWNAAM', rec_gebouw.alg_gebouw_omschrijving);
|
|
add_row ('<ROWSET NAME="RUIMTEN">');
|
|
|
|
FOR rec_ruimte IN c_ruimte (rec_gebouw.alg_gebouw_key)
|
|
LOOP
|
|
BEGIN
|
|
add_row ('<ROW>');
|
|
add_element ('RESEENHSYSCODE', rec_ruimte.res_ruimte_key);
|
|
add_element ('RESERVERINGSEENHEIDCODE',
|
|
rec_ruimte.res_ruimte_nr
|
|
);
|
|
add_element ('RUIMTECODE', rec_ruimte.alg_ruimte_nr);
|
|
add_element ('RUIMTENAAM', rec_ruimte.res_ruimte_omschrijving);
|
|
add_element ('ETAGECODE', rec_ruimte.alg_verdieping_code);
|
|
add_element ('ETAGENAAM',
|
|
rec_ruimte.alg_verdieping_omschrijving
|
|
);
|
|
add_element ('RUIMTECODE', rec_ruimte.alg_ruimte_nr);
|
|
add_row ('<ROWSET NAME="RESERVERINGEN">');
|
|
|
|
FOR rec_res IN c_res (rec_ruimte.alg_ruimte_key)
|
|
LOOP
|
|
BEGIN
|
|
add_row ('<ROW>');
|
|
add_element ('RESERVERINGCODE',
|
|
rec_res.res_reservering_key
|
|
|| '/'
|
|
|| rec_res.res_rsv_ruimte_volgnr
|
|
);
|
|
add_element ('RESERVERINGNAAM',
|
|
rec_res.res_rsv_ruimte_omschrijving
|
|
);
|
|
add_element ('SYSMELDER',
|
|
rec_res.res_rsv_ruimte_contact_key
|
|
);
|
|
add_element ('VRIJ1', rec_res.res_rsv_ruimte_host_key);
|
|
add_element ('STARTDATUM',
|
|
TO_CHAR (rec_res.res_rsv_ruimte_van,
|
|
'dd-mm-yyyy'
|
|
)
|
|
);
|
|
add_element ('STARTTIJD',
|
|
TO_CHAR (rec_res.res_rsv_ruimte_van,
|
|
'hh24-mi-ss'
|
|
)
|
|
);
|
|
add_element ('EINDDATUM',
|
|
TO_CHAR (rec_res.res_rsv_ruimte_tot,
|
|
'dd-mm-yyyy'
|
|
)
|
|
);
|
|
add_element ('EINDTIJD',
|
|
TO_CHAR (rec_res.res_rsv_ruimte_tot,
|
|
'hh24-mi-ss'
|
|
)
|
|
);
|
|
add_element ('AANTALPERSONEN',
|
|
rec_res.res_rsv_ruimte_bezoekers
|
|
);
|
|
add_element ('CATERING', rec_res.catering);
|
|
add_row ('<ROWSET NAME="MELDER">');
|
|
add_perslid (rec_res.res_rsv_ruimte_contact_key);
|
|
add_row ('</ROWSET>');
|
|
add_row ('<ROWSET NAME="VOORWIE">');
|
|
add_perslid (rec_res.res_rsv_ruimte_host_key);
|
|
add_row ('</ROWSET>');
|
|
add_row ('</ROW>');
|
|
END;
|
|
END LOOP;
|
|
|
|
add_row ('</ROWSET>');
|
|
add_row ('</ROW>');
|
|
END;
|
|
END LOOP;
|
|
|
|
add_row ('</ROWSET>');
|
|
add_row ('</ROW>');
|
|
END;
|
|
END LOOP;
|
|
|
|
add_row ('</SET>');
|
|
add_row ('</FACILITYTALK>');
|
|
END;
|
|
/
|
|
|
|
|
|
CREATE OR REPLACE FORCE VIEW aaen_v_info_vergaderruimte (
|
|
alg_ruimte_key,
|
|
alg_ruimte_nr,
|
|
van1,
|
|
tot1,
|
|
naam1,
|
|
bez1,
|
|
cat1,
|
|
van2,
|
|
tot2,
|
|
naam2,
|
|
bez2,
|
|
cat2
|
|
)
|
|
AS
|
|
SELECT rar.alg_ruimte_key,
|
|
r.alg_ruimte_nr,
|
|
to_char(rrr.res_rsv_ruimte_van, 'hh24:mi') van1,
|
|
to_char(rrr.res_rsv_ruimte_tot, 'hh24:mi') tot1,
|
|
(SELECT prs_perslid_voornaam || ' '
|
|
|| DECODE (prs_perslid_tussenvoegsel,
|
|
NULL, '',
|
|
prs_perslid_tussenvoegsel || ' ')
|
|
|| prs_perslid_naam
|
|
FROM prs_perslid p
|
|
WHERE p.prs_perslid_key = rrr.res_rsv_ruimte_host_key)
|
|
naam1,
|
|
rrr.res_rsv_ruimte_bezoekers bez1,
|
|
(SELECT COUNT ( * )
|
|
FROM res_rsv_artikel rra
|
|
WHERE res_rsv_artikel_verwijder IS NULL
|
|
AND rra.res_rsv_ruimte_key = rrr.res_rsv_ruimte_key)
|
|
cat1,
|
|
to_char(rrrn.res_rsv_ruimte_van,'hh24:mi') van2,
|
|
to_char(rrrn.res_rsv_ruimte_tot,'hh24:mi') tot2,
|
|
(SELECT prs_perslid_voornaam || ' '
|
|
|| DECODE (prs_perslid_tussenvoegsel,
|
|
NULL, '',
|
|
prs_perslid_tussenvoegsel || ' ')
|
|
|| prs_perslid_naam
|
|
FROM prs_perslid p
|
|
WHERE p.prs_perslid_key = rrrn.res_rsv_ruimte_host_key)
|
|
naam2,
|
|
rrrn.res_rsv_ruimte_bezoekers bez2,
|
|
(SELECT COUNT ( * )
|
|
FROM res_rsv_artikel rra
|
|
WHERE res_rsv_artikel_verwijder IS NULL
|
|
AND rra.res_rsv_ruimte_key = rrrn.res_rsv_ruimte_key)
|
|
cat2
|
|
FROM res_rsv_ruimte rrr,
|
|
res_rsv_ruimte rrrn,
|
|
res_alg_ruimte rar,
|
|
alg_ruimte r,
|
|
(SELECT rr.res_ruimte_key,
|
|
(SELECT MAX (res_rsv_ruimte_key)
|
|
FROM res_rsv_ruimte rrr
|
|
WHERE res_rsv_ruimte_verwijder IS NULL
|
|
AND res_ruimte_opstel_key = ro.res_ruimte_opstel_key
|
|
AND rrr.res_rsv_ruimte_van < SYSDATE
|
|
AND rrr.res_rsv_ruimte_tot > SYSDATE)
|
|
huidige,
|
|
(SELECT res_rsv_ruimte_key
|
|
FROM res_rsv_ruimte rrr
|
|
WHERE res_rsv_ruimte_verwijder IS NULL
|
|
AND res_rsv_ruimte_van > SYSDATE
|
|
AND TRUNC (res_rsv_ruimte_van) = TRUNC (SYSDATE)
|
|
AND rrr.res_ruimte_opstel_key = ro.res_ruimte_opstel_key
|
|
AND NOT EXISTS
|
|
(SELECT rrr2.res_rsv_ruimte_key
|
|
FROM res_rsv_ruimte rrr2
|
|
WHERE rrr2.res_rsv_ruimte_van <
|
|
rrr.res_rsv_ruimte_van
|
|
AND rrr2.res_ruimte_opstel_key =
|
|
rrr.res_ruimte_opstel_key
|
|
AND rrr2.res_rsv_ruimte_van > SYSDATE))
|
|
volgende
|
|
FROM res_ruimte_opstelling ro, res_ruimte rr
|
|
WHERE ro.res_ruimte_key = rr.res_ruimte_key) beschikbaar
|
|
WHERE beschikbaar.huidige = rrr.res_rsv_ruimte_key(+)
|
|
AND beschikbaar.volgende = rrrn.res_rsv_ruimte_key(+)
|
|
AND beschikbaar.res_ruimte_key = rar.res_ruimte_key
|
|
AND rar.res_alg_ruimte_verwijder is NULL
|
|
AND rar.alg_ruimte_key = r.alg_ruimte_key
|
|
AND r.alg_ruimte_verwijder is NULL;
|
|
|
|
-- view die gebruikt wordt door het aaen infobord om de vrije ruimten aan te geven.
|
|
CREATE OR REPLACE VIEW aaen_v_rap_res_ruimte_free
|
|
(
|
|
ruimte,
|
|
locatie_code,
|
|
gebouw_code,
|
|
verdieping_code,
|
|
personen,
|
|
van,
|
|
status,
|
|
van_org
|
|
)
|
|
AS
|
|
SELECT rr.res_ruimte_nr,
|
|
(SELECT alg_locatie_code
|
|
FROM alg_locatie l
|
|
WHERE l.alg_locatie_key = rarg.alg_locatie_key)
|
|
locatie_code,
|
|
(SELECT alg_gebouw_upper
|
|
FROM alg_gebouw g
|
|
WHERE g.alg_gebouw_key = rarg.alg_gebouw_key)
|
|
gebouw_code,
|
|
(SELECT alg_verdieping_code
|
|
FROM alg_verdieping v
|
|
WHERE v.alg_verdieping_key = rarg.alg_verdieping_key)
|
|
verdieping_code,
|
|
(SELECT DECODE (
|
|
COUNT (ro.res_ruimte_key),
|
|
1,
|
|
TO_CHAR (MAX (res_ruimte_opstel_bezoekers)),
|
|
TO_CHAR (MIN (res_ruimte_opstel_bezoekers))
|
|
|| '-'
|
|
|| TO_CHAR (MAX (res_ruimte_opstel_bezoekers)))
|
|
FROM res_ruimte_opstelling ro
|
|
WHERE ro.res_ruimte_key = rr.res_ruimte_key)
|
|
personen,
|
|
DECODE (TO_CHAR (MIN (van), 'yyyymmdd'),
|
|
TO_CHAR (SYSDATE, 'yyyymmdd'),
|
|
TO_CHAR (MIN (van), 'hh24:mi'),
|
|
NULL)
|
|
van,
|
|
DECODE (SIGN (MIN (van) - SYSDATE), -1, 'active', 'free') status,
|
|
MIN (van) van_org
|
|
FROM res_ruimte rr,
|
|
res_v_alg_ruimte_gegevens rarg,
|
|
( SELECT MIN (res_rsv_ruimte_van) van, rarg.alg_ruimte_key
|
|
FROM res_ruimte rr,
|
|
res_rsv_ruimte rrr,
|
|
res_ruimte_opstelling ror,
|
|
res_v_alg_ruimte_gegevens rarg
|
|
WHERE rr.res_ruimte_key = ror.res_ruimte_key(+)
|
|
AND ror.res_ruimte_opstel_key = rrr.res_ruimte_opstel_key(+)
|
|
AND rrr.res_rsv_ruimte_tot > SYSDATE
|
|
AND rr.res_ruimte_key = rarg.res_ruimte_key
|
|
GROUP BY rarg.alg_ruimte_key) bez
|
|
WHERE rr.res_ruimte_key = rarg.res_ruimte_key
|
|
AND rarg.alg_ruimte_key = bez.alg_ruimte_key(+)
|
|
GROUP BY rr.res_ruimte_nr,
|
|
rarg.alg_locatie_key,
|
|
rarg.alg_gebouw_key,
|
|
rarg.alg_verdieping_key,
|
|
rr.res_ruimte_key;
|
|
|
|
|
|
CREATE OR REPLACE VIEW AAEN_V_RUIMTE_BEZETTING
|
|
(
|
|
MLD_ADRES_NAAM,
|
|
MLD_ADRES_BEZOEK_PLAATS,
|
|
MLD_ADRES_BEZOEK_ADRES,
|
|
ALG_LOCATIE_CODE,
|
|
ALG_GEBOUW_OMSCHRIJVING,
|
|
HULPKOSTENPLAATS,
|
|
ALG_VERDIEPING_OMSCHRIJVING,
|
|
ALG_RUIMTE_KEY,
|
|
ALG_VERDIEPING_KEY,
|
|
ALG_RUIMTE_NR,
|
|
ALG_SRTRUIMTE_OMSCHRIJVING,
|
|
FACILITAIR_ACTIEF,
|
|
PRS_RUIMTEAFDELING_BEZETTING,
|
|
ALG_RUIMTE_BRUTO_VLOEROPP,
|
|
ALG_RUIMTE_OMSCHRIJVING,
|
|
ALG_RUIMTE_OPP_ALT1,
|
|
ALG_RUIMTE_OPP_ALT2,
|
|
WERKPLEKKEN,
|
|
KANTOOR,
|
|
PRS_AFDELING_NAAM,
|
|
PRS_AFDELING_OMSCHRIJVING
|
|
)
|
|
AS
|
|
SELECT mld_adres_naam,
|
|
mld_adres_bezoek_plaats,
|
|
mld_adres_bezoek_adres,
|
|
alg_locatie_code,
|
|
alg_gebouw_omschrijving,
|
|
hulpkostenplaats,
|
|
alg_verdieping_omschrijving,
|
|
r.alg_ruimte_key,
|
|
r.alg_verdieping_key,
|
|
r.alg_ruimte_nr,
|
|
r.alg_srtruimte_omschrijving,
|
|
DECODE(r.alg_srtgebouw_passief, 1, 'Nee', 'Ja') facilitair_actief,
|
|
ra.prs_ruimteafdeling_bezetting,
|
|
ROUND( (COALESCE(ra.prs_ruimteafdeling_bezetting, 1) -- bvo ook tonen als niet bezet
|
|
/ COALESCE (rab.bezetting, 1))
|
|
* r.alg_ruimte_bruto_vloeropp)
|
|
alg_ruimte_bruto_vloeropp,
|
|
r.alg_ruimte_omschrijving,
|
|
r.alg_ruimte_opp_alt1,
|
|
r.alg_ruimte_opp_alt2,
|
|
ROUND( (COALESCE(ra.prs_ruimteafdeling_bezetting, 1) -- werkplekken ook tonen als niet bezet
|
|
/ COALESCE (rab.bezetting, 1))
|
|
* werkplekken),
|
|
kantoor werkplekken,
|
|
prs_afdeling_naam,
|
|
prs_afdeling_omschrijving
|
|
FROM (SELECT adr.mld_adres_naam,
|
|
adr.mld_adres_bezoek_plaats,
|
|
adr.mld_adres_bezoek_adres,
|
|
alg_l.alg_locatie_code,
|
|
alg_g.alg_gebouw_omschrijving,
|
|
hulpkostenplaats,
|
|
alg_v.alg_verdieping_omschrijving,
|
|
alg_r.alg_ruimte_key alg_ruimte_key,
|
|
alg_v.alg_verdieping_key alg_verdieping_key,
|
|
alg_r.alg_ruimte_omschrijving alg_ruimte_omschrijving,
|
|
alg_r.alg_ruimte_nr alg_ruimte_nr,
|
|
alg_s.alg_srtruimte_omschrijving alg_srtruimte_omschrijving,
|
|
alg_sg.alg_srtgebouw_passief alg_srtgebouw_passief,
|
|
alg_r.alg_ruimte_bruto_vloeropp,
|
|
alg_r.alg_ruimte_opp_alt1,
|
|
alg_r.alg_ruimte_opp_alt2,
|
|
DECODE (alg_s.alg_srtruimte_key, 20, 1, 81, 1, 82, 1, 0) kantoor, -- kantoor, kantoor primair of kantoor sec
|
|
fac.safe_to_number (werkplekken) werkplekken
|
|
FROM alg_locatie alg_l,
|
|
alg_gebouw alg_g,
|
|
alg_verdieping alg_v,
|
|
alg_v_aanwezigruimte alg_r,
|
|
alg_srtruimte alg_s,
|
|
alg_srtgebouw alg_sg,
|
|
mld_adres adr,
|
|
(SELECT alg_onrgoed_key alg_ruimte_key,
|
|
alg_onrgoedkenmerk_waarde werkplekken
|
|
FROM alg_onrgoedkenmerk k
|
|
WHERE k.alg_kenmerk_key = 1000 -- aantal werkplekken
|
|
AND k.alg_onrgoedkenmerk_verwijder IS NULL) wp,
|
|
(SELECT alg_onrgoed_key alg_gebouw_key,
|
|
alg_onrgoedkenmerk_waarde hulpkostenplaats
|
|
FROM alg_onrgoedkenmerk k
|
|
WHERE k.alg_kenmerk_key = 1060 -- hulpkostenplaats
|
|
AND k.alg_onrgoedkenmerk_verwijder IS NULL) hkp
|
|
WHERE alg_l.alg_locatie_key = alg_g.alg_locatie_key
|
|
AND alg_v.alg_verdieping_key = alg_r.alg_verdieping_key
|
|
AND alg_g.alg_gebouw_key = alg_v.alg_gebouw_key
|
|
AND alg_r.alg_ruimte_key = wp.alg_ruimte_key(+)
|
|
AND alg_g.alg_gebouw_key = hkp.alg_gebouw_key(+)
|
|
AND alg_g.alg_srtgebouw_key = alg_sg.alg_srtgebouw_key(+)
|
|
AND alg_g.mld_adres_key = adr.mld_adres_key(+)
|
|
AND alg_r.alg_srtruimte_key = alg_s.alg_srtruimte_key(+)) r,
|
|
prs_ruimteafdeling ra,
|
|
prs_afdeling a,
|
|
( SELECT alg_ruimte_key,
|
|
SUM (prs_ruimteafdeling_bezetting) bezetting
|
|
FROM prs_ruimteafdeling rab
|
|
WHERE rab.prs_ruimteafdeling_verwijder IS NULL
|
|
GROUP BY alg_ruimte_key) rab
|
|
WHERE ra.alg_ruimte_key(+) = r.alg_ruimte_key
|
|
AND r.alg_ruimte_key = rab.alg_ruimte_key(+)
|
|
AND ra.prs_afdeling_key = a.prs_afdeling_key(+)
|
|
AND ra.prs_ruimteafdeling_verwijder IS NULL;
|
|
|
|
|
|
CREATE OR REPLACE VIEW AAEN_V_RAP_RUIMTE_BEZETTING
|
|
(
|
|
HULPKOSTENPLAATS,
|
|
FCLT_F_GEBOUW,
|
|
PLAATS,
|
|
ADRES,
|
|
RUIMTE,
|
|
FCLT_F_FUNCTIE,
|
|
WERKPLEKKEN,
|
|
FCLT_F_AFDELING_CODE,
|
|
FCLT_F_AFDELING_OMSCHRIJVING,
|
|
BVO,
|
|
OMSCHRIJVING,
|
|
HOEVEELHEID,
|
|
FCLT_F_LOCATIE,
|
|
FCLT_F_VERDIEPING,
|
|
BEZETTING,
|
|
FCLT_X_FACILITAIR_ACTIEF
|
|
)
|
|
AS
|
|
SELECT
|
|
hulpkostenplaats,
|
|
alg_gebouw_omschrijving,
|
|
mld_adres_bezoek_plaats,
|
|
mld_adres_bezoek_adres,
|
|
alg_ruimte_nr,
|
|
alg_srtruimte_omschrijving,
|
|
werkplekken,
|
|
prs_afdeling_naam,
|
|
prs_afdeling_omschrijving,
|
|
alg_ruimte_bruto_vloeropp,
|
|
alg_ruimte_omschrijving,
|
|
DECODE (kantoor, 1, werkplekken, alg_ruimte_bruto_vloeropp)
|
|
hoeveelheid,
|
|
alg_locatie_code,
|
|
alg_verdieping_omschrijving,
|
|
prs_ruimteafdeling_bezetting,
|
|
facilitair_actief
|
|
FROM aaen_v_ruimte_bezetting;
|
|
|
|
CREATE OR REPLACE VIEW aaen_v_sync_alg_ruimte (
|
|
alg_ruimte_key,
|
|
alg_verdieping_key,
|
|
cadlabel
|
|
)
|
|
AS
|
|
SELECT r.alg_ruimte_key,
|
|
r.alg_verdieping_key,
|
|
c.cad_imp_contour_nr
|
|
FROM alg_v_aanwezigruimte r, cad_tekening t, cad_imp_contour c
|
|
WHERE r.alg_verdieping_key = t.alg_verdieping_key
|
|
AND t.cad_tekening_key = c.cad_tekening_key
|
|
AND upper(alg_ruimte_nr) = upper(substr(cad_imp_contour_nr, 1, instr(cad_imp_contour_nr,'\P')-1))
|
|
UNION ALL
|
|
SELECT r.alg_ruimte_key,
|
|
r.alg_verdieping_key,
|
|
r.alg_ruimte_nr
|
|
FROM alg_v_aanwezigruimte r where not exists (select alg_ruimte_key from cad_tekening t, cad_imp_contour c
|
|
WHERE r.alg_verdieping_key = t.alg_verdieping_key
|
|
AND t.cad_tekening_key = c.cad_tekening_key
|
|
AND upper(alg_ruimte_nr) = upper(substr(cad_imp_contour_nr, 1, instr(cad_imp_contour_nr,'\P')-1)));
|
|
|
|
CREATE OR REPLACE VIEW aaen_v_hr_adviseur (
|
|
prs_perslid_key,
|
|
prs_perslid_naam_full
|
|
)
|
|
AS
|
|
SELECT p.prs_perslid_key, prs_perslid_naam_full
|
|
FROM prs_v_perslid_fullnames p, fac_gebruikersgroep gg
|
|
WHERE p.prs_perslid_key = gg.prs_perslid_key AND gg.fac_groep_key = 122;
|
|
|
|
|
|
CREATE OR REPLACE VIEW AAEN_V_LEIDINGGEVENDE
|
|
(
|
|
PRS_PERSLID_KEY,
|
|
PRS_AFDELING_KEY,
|
|
PRS_PERSLID_KEY_LEID,
|
|
NIVEAU2,
|
|
NIVEAU1
|
|
)
|
|
AS
|
|
SELECT prs_perslid_key,
|
|
prs_afdeling_key,
|
|
COALESCE (al5, COALESCE (al4, COALESCE (al3, COALESCE (al2, al1)))),
|
|
al2,
|
|
al1
|
|
FROM (SELECT prs_perslid_key,
|
|
p.prs_afdeling_key,
|
|
(SELECT fac.safe_to_number(kl.prs_kenmerklink_waarde)
|
|
FROM prs_kenmerklink kl
|
|
WHERE a.prs_afdeling_key1 = kl.prs_link_key
|
|
AND kl.prs_kenmerklink_waarde <> p.prs_perslid_key
|
|
AND kl.prs_kenmerk_key = 1020)
|
|
al1,
|
|
(SELECT fac.safe_to_number(kl.prs_kenmerklink_waarde)
|
|
FROM prs_kenmerklink kl
|
|
WHERE a.prs_afdeling_key2 = kl.prs_link_key
|
|
AND kl.prs_kenmerklink_waarde <> p.prs_perslid_key
|
|
AND kl.prs_kenmerk_key = 1020)
|
|
al2,
|
|
(SELECT fac.safe_to_number(kl.prs_kenmerklink_waarde)
|
|
FROM prs_kenmerklink kl
|
|
WHERE a.prs_afdeling_key3 = kl.prs_link_key
|
|
AND kl.prs_kenmerklink_waarde <> p.prs_perslid_key
|
|
AND kl.prs_kenmerk_key = 1020)
|
|
al3,
|
|
(SELECT fac.safe_to_number(kl.prs_kenmerklink_waarde)
|
|
FROM prs_kenmerklink kl
|
|
WHERE a.prs_afdeling_key4 = kl.prs_link_key
|
|
AND kl.prs_kenmerklink_waarde <> p.prs_perslid_key
|
|
AND kl.prs_kenmerk_key = 1020)
|
|
al4,
|
|
(SELECT fac.safe_to_number(kl.prs_kenmerklink_waarde)
|
|
FROM prs_kenmerklink kl
|
|
WHERE a.prs_afdeling_key5 = kl.prs_link_key
|
|
AND kl.prs_kenmerklink_waarde <> p.prs_perslid_key
|
|
AND kl.prs_kenmerk_key = 1020)
|
|
al5,
|
|
(SELECT fac.safe_to_number(kl.prs_kenmerklink_waarde)
|
|
FROM prs_kenmerklink kl
|
|
WHERE a.prs_afdeling_key6 = kl.prs_link_key
|
|
AND kl.prs_kenmerklink_waarde <> p.prs_perslid_key
|
|
AND kl.prs_kenmerk_key = 1020)
|
|
al6,
|
|
(SELECT fac.safe_to_number(kl.prs_kenmerklink_waarde)
|
|
FROM prs_kenmerklink kl
|
|
WHERE a.prs_afdeling_key7 = kl.prs_link_key
|
|
AND kl.prs_kenmerklink_waarde <> p.prs_perslid_key
|
|
AND kl.prs_kenmerk_key = 1020)
|
|
al7
|
|
FROM prs_perslid p, aaen_v_afdeling_boom a
|
|
WHERE p.prs_afdeling_key = a.prs_afdeling_key);
|
|
|
|
|
|
-- rapport goedkeuring leidinggevende voor aanvragen lease-auto
|
|
CREATE OR REPLACE VIEW aaen_v_rap_fiat_leiding
|
|
(
|
|
NUMMER,
|
|
DATUM,
|
|
VAKGROEP,
|
|
MELDING,
|
|
MELDING_TEKST,
|
|
MELDER,
|
|
MLD_STATUSES_KEY,
|
|
STATUS,
|
|
GEPLANDE_EINDDATUM,
|
|
HIDE_F_MLD_MELDING_KEY,
|
|
MLD_STDMELDING_KEY,
|
|
FCLT_3D_USER_KEY
|
|
)
|
|
AS
|
|
SELECT DECODE (COALESCE (sd.ins_srtdiscipline_prefix, ''),
|
|
'', '',
|
|
sd.ins_srtdiscipline_prefix)
|
|
|| TO_CHAR (m.mld_melding_key)
|
|
nummer,
|
|
TO_CHAR (m.mld_melding_datum, 'dd-mm-yyyy') datum,
|
|
DECODE (COALESCE (sd.ins_srtdiscipline_prefix, ''),
|
|
'', '',
|
|
sd.ins_srtdiscipline_prefix || '-')
|
|
|| td.ins_discipline_omschrijving
|
|
vakgroep,
|
|
sm.mld_stdmelding_omschrijving melding,
|
|
'Prive adres: '
|
|
|| (SELECT mld_kenmerkmelding_waarde
|
|
FROM mld_kenmerkmelding km, mld_kenmerk k
|
|
WHERE km.mld_melding_key = m.mld_melding_key
|
|
AND km.mld_kenmerk_key = k.mld_kenmerk_key
|
|
AND mld_srtkenmerk_key = 1)
|
|
|| CHR (13)
|
|
|| 'Postcode / Woonplaats: '
|
|
|| (SELECT mld_kenmerkmelding_waarde
|
|
FROM mld_kenmerkmelding km, mld_kenmerk k
|
|
WHERE km.mld_melding_key = m.mld_melding_key
|
|
AND km.mld_kenmerk_key = k.mld_kenmerk_key
|
|
AND mld_srtkenmerk_key = 2)
|
|
|| CHR (13)
|
|
|| 'Huidige merk en kenteken: '
|
|
|| (SELECT mld_kenmerkmelding_waarde
|
|
FROM mld_kenmerkmelding km, mld_kenmerk k
|
|
WHERE km.mld_melding_key = m.mld_melding_key
|
|
AND km.mld_kenmerk_key = k.mld_kenmerk_key
|
|
AND mld_srtkenmerk_key = 3)
|
|
|| CHR (13)
|
|
|| 'Prognose zakelijk per jaar: '
|
|
|| (SELECT fac_usrdata_omschr
|
|
FROM fac_usrdata ud, mld_kenmerkmelding km, mld_kenmerk k
|
|
WHERE fac.safe_to_number (mld_kenmerkmelding_waarde) =
|
|
fac_usrdata_key
|
|
AND km.mld_melding_key = m.mld_melding_key
|
|
AND km.mld_kenmerk_key = k.mld_kenmerk_key
|
|
AND mld_srtkenmerk_key = 4)
|
|
|| CHR (13)
|
|
|| 'Prognose prive per jaar: '
|
|
|| (SELECT fac_usrdata_omschr
|
|
FROM fac_usrdata ud, mld_kenmerkmelding km, mld_kenmerk k
|
|
WHERE fac.safe_to_number (mld_kenmerkmelding_waarde) =
|
|
fac_usrdata_key
|
|
AND km.mld_melding_key = m.mld_melding_key
|
|
AND km.mld_kenmerk_key = k.mld_kenmerk_key
|
|
AND mld_srtkenmerk_key = 6)
|
|
|| CHR (13)
|
|
|| 'Prognose woon- werk per jaar: '
|
|
|| (SELECT fac_usrdata_omschr
|
|
FROM fac_usrdata ud, mld_kenmerkmelding km, mld_kenmerk k
|
|
WHERE fac.safe_to_number (mld_kenmerkmelding_waarde) =
|
|
fac_usrdata_key
|
|
AND km.mld_melding_key = m.mld_melding_key
|
|
AND km.mld_kenmerk_key = k.mld_kenmerk_key
|
|
AND mld_srtkenmerk_key = 7)
|
|
|| CHR (13)
|
|
|| 'Voorstel categorieindeling: '
|
|
|| (SELECT fac_usrdata_omschr
|
|
FROM fac_usrdata ud, mld_kenmerkmelding km, mld_kenmerk k
|
|
WHERE fac.safe_to_number (mld_kenmerkmelding_waarde) =
|
|
fac_usrdata_key
|
|
AND km.mld_melding_key = m.mld_melding_key
|
|
AND km.mld_kenmerk_key = k.mld_kenmerk_key
|
|
AND mld_srtkenmerk_key = 5)
|
|
|| CHR (13)
|
|
|| 'Omschrijving: '
|
|
|| SUBSTR(mld_melding_omschrijving,1,2000),
|
|
pf.prs_perslid_naam_full melder,
|
|
s.mld_statuses_key,
|
|
s.mld_statuses_omschrijving status,
|
|
m.mld_melding_einddatum geplande_einddatum,
|
|
m.mld_melding_key mld_key,
|
|
sm.mld_stdmelding_key,
|
|
DECODE (
|
|
sm.mld_stdmelding_key,
|
|
144,
|
|
l.prs_perslid_key_leid,
|
|
143,
|
|
DECODE (l.prs_perslid_key_leid,
|
|
l.niveau1, NULL,
|
|
l.niveau2, l.niveau1,
|
|
l.niveau2)
|
|
)
|
|
leidinggevende
|
|
FROM mld_melding m,
|
|
mld_statuses s,
|
|
mld_stdmelding sm,
|
|
ins_tab_discipline td,
|
|
ins_srtdiscipline sd,
|
|
prs_v_perslid_fullnames_all pf,
|
|
aaen_v_leidinggevende l
|
|
WHERE m.mld_melding_status IN (2, 3, 4) -- Te behandelen! + in behandeling.
|
|
AND m.mld_melding_status = s.mld_statuses_key
|
|
AND m.mld_stdmelding_key = sm.mld_stdmelding_key
|
|
AND sm.mld_ins_discipline_key = td.ins_discipline_key
|
|
AND (sm.mld_stdmelding_key = 144 -- Goedkeuring lease auto door 1e leid.
|
|
OR sm.mld_stdmelding_key = 143) -- Goedkeuring lease auto door 2e leid.
|
|
AND td.ins_srtdiscipline_key = sd.ins_srtdiscipline_key
|
|
AND m.prs_perslid_key = pf.prs_perslid_key
|
|
AND pf.prs_perslid_key = l.prs_perslid_key;
|
|
|
|
CREATE OR REPLACE VIEW aaen_v_noti_leaseaanvraag
|
|
(
|
|
code,
|
|
sender,
|
|
receiver,
|
|
xemail,
|
|
text,
|
|
key,
|
|
xkey,
|
|
xmobile
|
|
)
|
|
AS
|
|
SELECT 'CUST01',
|
|
NULL,
|
|
NULL,
|
|
mail,
|
|
'Jouw goedkeuring is vereist voor '
|
|
|| COUNT (mld_melding_key)
|
|
|| ' aanvragen (aanvraag auto van de zaak)',
|
|
MAX (mld_melding_key),
|
|
NULL,
|
|
NULL
|
|
FROM (SELECT COALESCE (p.prs_perslid_email, 'vervoer@enexis.nl')
|
|
mail,
|
|
mld_melding_key
|
|
FROM mld_melding m, aaen_v_leidinggevende l, prs_perslid p
|
|
WHERE m.prs_perslid_key = l.prs_perslid_key
|
|
AND l.prs_perslid_key_leid = p.prs_perslid_key(+)
|
|
AND m.mld_stdmelding_key = 144
|
|
AND m.mld_melding_status IN (2, 3, 4)
|
|
-- 2e leidinggevende notificeren
|
|
UNION ALL
|
|
SELECT COALESCE (
|
|
(SELECT prs_perslid_email
|
|
FROM prs_perslid p
|
|
WHERE prs_perslid_key =
|
|
(DECODE (l.prs_perslid_key_leid,
|
|
l.niveau1, NULL,
|
|
l.niveau2, l.niveau1,
|
|
l.niveau2))),
|
|
'vervoer@enexis.nl'
|
|
)
|
|
mail,
|
|
mld_melding_key
|
|
FROM mld_melding m, aaen_v_leidinggevende l
|
|
WHERE m.prs_perslid_key = l.prs_perslid_key
|
|
AND m.mld_stdmelding_key = 143
|
|
AND m.mld_melding_status IN (2, 3, 4))
|
|
GROUP BY mail;
|
|
|
|
CREATE OR REPLACE VIEW AAEN_V_NOTI_ORDREMINDER
|
|
(
|
|
CODE,
|
|
SENDER,
|
|
RECEIVER,
|
|
TEXT,
|
|
KEY,
|
|
PAR1,
|
|
PAR2,
|
|
XKEY
|
|
)
|
|
AS
|
|
SELECT 'CUST02',
|
|
'',
|
|
prs.getkpverantwoordelijke (o.prs_kostenplaats_key, 2, -1)
|
|
budgethouder,
|
|
'REMINDER: '
|
|
|| COUNT (o.mld_opdr_key)
|
|
|| ' Service Request'
|
|
|| DECODE (COUNT (o.mld_opdr_key), 1, '', 's'),
|
|
MIN (o.mld_opdr_key), -- Dummy key, althans een willekeurige; nog testen of dit werkt???
|
|
NULL,
|
|
NULL,
|
|
NULL
|
|
FROM mld_opdr o
|
|
WHERE o.mld_statusopdr_key = 3
|
|
GROUP BY prs.getkpverantwoordelijke (prs_kostenplaats_key, 2, -1);
|
|
|
|
-- AAEN#30105 inspectie reminder BHV middelen. Key 1841 = Bedrijfshulpverlening
|
|
CREATE OR REPLACE VIEW AAEN_V_NOTI_INSPECTIEREMINDER
|
|
(
|
|
CODE,
|
|
SENDER,
|
|
RECEIVER,
|
|
TEXT,
|
|
KEY,
|
|
PAR1,
|
|
PAR2,
|
|
XKEY,
|
|
XEMAIL,
|
|
XMOBILE
|
|
)
|
|
AS
|
|
SELECT sn.fac_srtnotificatie_code code,
|
|
NULL sender,
|
|
NULL, --x.receiver,
|
|
REPLACE (
|
|
REPLACE (
|
|
sn.fac_srtnotificatie_oms,
|
|
'##SRTGROEP##',
|
|
DECODE (
|
|
x.min_srtgroep_oms,
|
|
x.max_srtgroep_oms,
|
|
x.min_srtgroep_oms
|
|
|| DECODE (x.aantal, 1, '-' || max_controle_oms, ''),
|
|
x.min_srtgroep_oms || ', ...'
|
|
)
|
|
),
|
|
'##AANTAL##',
|
|
x.aantal
|
|
)
|
|
subject,
|
|
x.dummy_deel_key, -- Dummy key!!!
|
|
NULL,
|
|
NULL,
|
|
NULL,
|
|
(SELECT prs_perslid_email
|
|
FROM prs_perslid
|
|
WHERE prs_perslid_key = x.receiver),
|
|
NULL
|
|
FROM ( SELECT MIN (gv.prs_perslid_key_verantw) receiver,
|
|
MAX (cso.ins_srtcontrole_omschrijving) max_controle_oms,
|
|
MIN (o.ins_srtgroep_omschrijving) min_srtgroep_oms,
|
|
MAX (o.ins_srtgroep_omschrijving) max_srtgroep_oms,
|
|
MIN (o.ins_deel_key) dummy_deel_key,
|
|
MIN (o.alg_gebouw_key) gebouw_key,
|
|
COUNT (DISTINCT o.ins_deel_key) aantal
|
|
FROM (SELECT scs.ins_srtinstallatie_key
|
|
ins_srtdeel_key,
|
|
scs.ins_srtcontrole_key,
|
|
scs.ins_srtcontrole_omschrijving,
|
|
scs.ins_srtcontrole_periode
|
|
FROM ins_srtcontrole scs
|
|
WHERE scs.ins_srtcontrole_niveau = 'S'
|
|
UNION ALL
|
|
SELECT sd.ins_srtdeel_key,
|
|
scg.ins_srtcontrole_key,
|
|
scg.ins_srtcontrole_omschrijving,
|
|
scg.ins_srtcontrole_periode
|
|
FROM ins_srtcontrole scg,
|
|
ins_srtdeel sd
|
|
WHERE scg.ins_srtcontrole_niveau = 'G'
|
|
AND scg.ins_srtinstallatie_key =
|
|
sd.ins_srtgroep_key
|
|
UNION ALL
|
|
SELECT sd.ins_srtdeel_key,
|
|
scd.ins_srtcontrole_key,
|
|
scd.ins_srtcontrole_omschrijving,
|
|
scd.ins_srtcontrole_periode
|
|
FROM ins_srtcontrole scd,
|
|
ins_srtgroep sg,
|
|
ins_srtdeel sd
|
|
WHERE scd.ins_srtcontrole_niveau = 'D'
|
|
AND scd.ins_srtinstallatie_key =
|
|
sg.ins_discipline_key
|
|
AND sg.ins_srtgroep_key =
|
|
sd.ins_srtgroep_key) cso -- ControleSoortObjecten
|
|
LEFT JOIN
|
|
(SELECT d.ins_deel_key,
|
|
d.ins_deel_aanmaak,
|
|
d.ins_alg_ruimte_key,
|
|
d.ins_alg_ruimte_type,
|
|
sd.ins_srtdeel_key,
|
|
sg.ins_srtgroep_omschrijving,
|
|
td.ins_discipline_key,
|
|
td.ins_discipline_omschrijving,
|
|
onr.alg_gebouw_key alg_gebouw_key
|
|
FROM ins_v_aanwezigdeel d,
|
|
ins_srtdeel sd,
|
|
ins_srtgroep sg,
|
|
ins_tab_discipline td,
|
|
alg_v_onroerendgoed onr
|
|
WHERE d.ins_srtdeel_key =
|
|
sd.ins_srtdeel_key
|
|
AND sd.ins_srtgroep_key =
|
|
sg.ins_srtgroep_key
|
|
AND sg.ins_discipline_key =
|
|
td.ins_discipline_key
|
|
AND d.ins_alg_ruimte_type = 'R'
|
|
AND onr.alg_ruimte_key =
|
|
d.ins_alg_ruimte_key
|
|
AND td.ins_discipline_key = 1841)
|
|
o -- Objecten
|
|
ON cso.ins_srtdeel_key = o.ins_srtdeel_key
|
|
LEFT JOIN
|
|
(SELECT alg_gebouw_key,
|
|
prs_perslid_key_verantw
|
|
FROM alg_gebouw ag) gv -- GebouwVerantwoordelijke
|
|
ON o.alg_gebouw_key = gv.alg_gebouw_key
|
|
LEFT JOIN
|
|
(SELECT ins_deel_key,
|
|
ins_kenmerkdeel_waarde afgekeurd
|
|
FROM ins_v_aanwezigkenmerkdeel kd,
|
|
ins_kenmerk k
|
|
WHERE kd.ins_kenmerk_key = k.ins_kenmerk_key
|
|
AND k.ins_srtkenmerk_key = -1) oa -- ObjectAfgekeurd
|
|
ON o.ins_deel_key = oa.ins_deel_key
|
|
LEFT JOIN
|
|
(SELECT dsc.ins_deel_key,
|
|
dsc.ins_srtcontrole_key,
|
|
dsc.ins_deelsrtcontrole_datum,
|
|
dsc.ins_deelsrtcontrole_opmerking
|
|
FROM ins_deelsrtcontrole dsc
|
|
WHERE dsc.ins_deelsrtcontrole_datum =
|
|
(SELECT MAX (
|
|
ins_deelsrtcontrole_datum
|
|
)
|
|
FROM ins_deelsrtcontrole
|
|
WHERE ins_deel_key =
|
|
dsc.ins_deel_key
|
|
AND ins_srtcontrole_key =
|
|
dsc.ins_srtcontrole_key))
|
|
olc -- ObjectLaatsteControle
|
|
ON o.ins_deel_key = olc.ins_deel_key
|
|
AND cso.ins_srtcontrole_key =
|
|
olc.ins_srtcontrole_key
|
|
WHERE (oa.afgekeurd IS NULL OR oa.afgekeurd = -1) -- 'Nee'
|
|
AND COALESCE (olc.ins_deelsrtcontrole_datum,
|
|
o.ins_deel_aanmaak)
|
|
+ cso.ins_srtcontrole_periode BETWEEN TRUNC(SYSDATE
|
|
+ 61)
|
|
AND TRUNC(SYSDATE
|
|
+ 68)
|
|
GROUP BY o.alg_gebouw_key) x,
|
|
fac_srtnotificatie sn
|
|
WHERE sn.fac_srtnotificatie_code = 'CUST07';
|
|
|
|
------ payload end ------
|
|
|
|
SET DEFINE OFF
|
|
BEGIN adm.systrackscriptId ('$Id$', 0); END;
|
|
/
|
|
|
|
COMMIT;
|
|
SET ECHO OFF
|
|
SPOOL OFF
|
|
SET DEFINE ON
|
|
PROMPT Logfile of this upgrade is: &fcltlogfile
|