Files
Customer/AA/AADS/aads.sql
Jos Migo 83c1a4944a AADS#82232 -- export_bundel_catering invalid in 2024.1
svn path=/Customer/trunk/; revision=63542
2024-02-08 20:20:42 +00:00

1663 lines
63 KiB
SQL

--
-- $Id$
--
-- Script containing customer specific configuration sql statements for aads: Arcadis Aqumen Facility Management
DEFINE thisfile = 'AADS.SQL'
DEFINE dbuser = '^AADS'
SET ECHO ON
SET DEFINE ON
COLUMN fcltlogfile NEW_VALUE fcltlogfile NOPRINT;
COLUMN fcltcusttxt NEW_VALUE fcltcusttxt NOPRINT;
WHENEVER SQLERROR CONTINUE;
SELECT adm.getscriptspoolfile('&thisfile') AS fcltlogfile FROM DUAL;
SPOOL &fcltlogfile
WHENEVER SQLERROR EXIT;
SELECT adm.checkscriptcust('&dbuser') AS fcltcusttxt FROM DUAL;
WHENEVER SQLERROR CONTINUE;
---------------------------------------
PROMPT &fcltcusttxt
---------------------------------------
SET DEFINE OFF
------ payload begin ------
-- script om dagelijks terugkerende scripts aan te roepen.
CREATE OR REPLACE PROCEDURE aads_select_daily_task (p_applname IN VARCHAR2, p_applrun IN VARCHAR2)
AS
BEGIN
aaxx_daily_task (p_applname, p_applrun);
END;
/
-- verwerk exact
-- Procedure ter voorbereiding van de export van facturen.
-- Deze procedure corrigeert de kostenplaats bij de opdracht indien de kostensoort begint met 'ST ONDH'
-- In dat geval wordt de kostenplaats overgenomen van de gebouweigenaar (kenmerkkey 1063 bij gebouw).
-- exact verkoop
CREATE OR REPLACE VIEW aads_v_export_exact_verkoop (RESULT, result_order) AS SELECT RESULT, result_order FROM aaxx_v_export_exact_verkoop;
CREATE OR REPLACE PROCEDURE aads_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'), 'CORE');
END;
/
CREATE OR REPLACE PROCEDURE aads_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'), 'CORE');
END;
/
-- exact verkoop over het vorige jaar
CREATE OR REPLACE VIEW aads_v_export_exact_verkoop_vj (RESULT, result_order) AS SELECT RESULT, result_order FROM aaxx_v_export_exact_verkoop;
CREATE OR REPLACE PROCEDURE aads_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), 'CORE');
END;
/
CREATE OR REPLACE PROCEDURE aads_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), 'CORE');
END;
/
-- exact verkoop - PROJECTEN CSV
CREATE OR REPLACE VIEW aads_v_export_exact_verkoop_p (RESULT, result_order) AS SELECT RESULT, result_order FROM aaxx_v_export_exact_verkoop;
CREATE OR REPLACE PROCEDURE aads_select_exact_verkoop_p (
p_applname IN VARCHAR2,
p_applrun IN VARCHAR2
)
AS
BEGIN
aaxx_select_exact_verkoop(p_applname, p_applrun, to_char(sysdate, 'yyyy'), 'PROJECT');
END;
/
CREATE OR REPLACE PROCEDURE aads_export_exact_verkoop_p (
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'), 'PROJECT');
END;
/
-- exact verkoop over het vorige jaar - PROJECTEN CSV
CREATE OR REPLACE VIEW aads_v_export_exact_verkoop_vj_p (RESULT, result_order) AS SELECT RESULT, result_order FROM aaxx_v_export_exact_verkoop;
CREATE OR REPLACE PROCEDURE aads_select_exact_verkoop_vj_p (
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), 'PROJECT');
END;
/
CREATE OR REPLACE PROCEDURE aads_export_exact_verkoop_vj_p (
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), 'PROJECT');
END;
/
-- NIEUW: GESPLITSTE VERKOOPINTERFACE
-- exact verkoop - splitsing PROJECT (=P) en CORE (=C)
---- de C krijgt als output de huidige CSV-format en kan/gaat dus verwijzen naar desbetreffende AAXX-exportfuncties
---- de P krijgt als output het nieuwe Exact XML-format (en kan/gaat dus verwijzen naar nieuw in te passen AAXX-exportfuncties
-- EXACT_VERK_P (XML-output)
-- EXACT_VERK_P_VJ
/*
CREATE OR REPLACE VIEW aads_v_export_exact_verk_p (RESULT, result_order) AS SELECT RESULT, result_order FROM aaxx_v_export_exact_verkoop_p;
CREATE OR REPLACE PROCEDURE aads_select_exact_verk_p (
p_applname IN VARCHAR2,
p_applrun IN VARCHAR2
)
AS
BEGIN
aaxx_select_exact_verkoop_p(p_applname, p_applrun, to_char(sysdate, 'yyyy'));
END;
/
CREATE OR REPLACE PROCEDURE aads_export_exact_verk_p (
p_applname IN VARCHAR2,
p_applrun IN VARCHAR2,
p_filedir IN VARCHAR2,
p_filename IN VARCHAR2
)
AS
BEGIN
aaxx_export_exact_verkoop_p(p_applname, p_applrun, p_filedir, p_filename, to_char(sysdate, 'yyyy'));
END;
/
-- exact verkoop over het vorige jaar
CREATE OR REPLACE VIEW aads_v_export_exact_verk_p_vj (RESULT, result_order) AS SELECT RESULT, result_order FROM aaxx_v_export_exact_verkoop_p;
CREATE OR REPLACE PROCEDURE aads_select_exact_verk_p_vj (
p_applname IN VARCHAR2,
p_applrun IN VARCHAR2
)
AS
BEGIN
aaxx_select_exact_verkoop_p(p_applname, p_applrun, to_char(to_number(to_char(sysdate, 'yyyy'))-1));
END;
/
CREATE OR REPLACE PROCEDURE aads_export_exact_verk_p_vj (
p_applname IN VARCHAR2,
p_applrun IN VARCHAR2,
p_filedir IN VARCHAR2,
p_filename IN VARCHAR2
)
AS
BEGIN
aaxx_export_exact_verkoop_p(p_applname, p_applrun, p_filedir, p_filename, to_char(to_number(to_char(sysdate, 'yyyy'))-1));
END;
/
-- EXACT_VERK_C
-- EXACT_VERK_C_VJ
---- Kan/gaat verwijzen naar de oorspronkelijke aaxx-exportfunties met CSV-output
CREATE OR REPLACE VIEW aads_v_export_exact_verk_c (RESULT, result_order) AS SELECT RESULT, result_order FROM aaxx_v_export_exact_verkoop;
CREATE OR REPLACE PROCEDURE aads_select_exact_verk_c (
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 aads_export_exact_verk_c (
p_applname IN VARCHAR2,
p_applrun IN VARCHAR2,
p_filedir IN VARCHAR2,
p_filename IN VARCHAR2
)
AS
BEGIN
aaxx_export_exact_verkoop(p_applname, p_applrun, p_filedir, p_filename, to_char(sysdate, 'yyyy'));
END;
/
-- exact verkoop over het vorige jaar
CREATE OR REPLACE VIEW aads_v_export_exact_verk_c_vj (RESULT, result_order) AS SELECT RESULT, result_order FROM aaxx_v_export_exact_verkoop_c;
CREATE OR REPLACE PROCEDURE aads_select_exact_verk_c_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 aads_export_exact_verk_c_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 aads_v_export_exact_uren (result, result_order)
AS SELECT result, result_order FROM aaxx_v_export_exact_uren_xml;
CREATE OR REPLACE PROCEDURE aads_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 aads_export_verwerk_exact_uren (
p_applname IN VARCHAR2,
p_applrun IN VARCHAR2,
p_filedir IN VARCHAR2,
p_filename IN VARCHAR2
)
AS
BEGIN
aaxx_export_verwerk_exact_uren(p_applname, p_applrun, p_filedir, p_filename, '');
END;
/
-- import overrulles
CREATE OR REPLACE VIEW aads_v_bundel_catering
(
prs_kostenplaats_key,
prs_bedrijf_key,
alg_gebouw_key,
alg_locatie_key,
res_rsv_artikel_prijs,
res_rsv_artikel_key,
res_rsv_artikel_levering,
res_status_bo_key,
mld_stdmelding_key
)
AS
SELECT rrr.prs_kostenplaats_key,
prs_bedrijf_key,
g.alg_gebouw_key,
g.alg_locatie_key,
res_rsv_artikel_prijs,
rra.res_rsv_artikel_key,
rra.res_rsv_artikel_levering,
rra.res_status_bo_key,
(SELECT FAC.safe_to_number(alg_onrgoedkenmerk_waarde)
FROM alg_onrgoedkenmerk
WHERE alg_kenmerk_key = 5 -- kenmerk voor catering stdmelding key
AND alg_onrgoed_key = g.alg_locatie_key) mld_stdmelding_key
FROM res_rsv_artikel rra,
res_rsv_ruimte rrr,
res_artikel ra,
(SELECT res_ins_discipline_key,
prs_bedrijf_key
FROM res_disc_params WHERE prs_bedrijf_key IS NOT NULL) rdp,
alg_ruimte r,
alg_verdieping v,
alg_gebouw g
WHERE rra.res_artikel_key = ra.res_artikel_key
AND ra.res_discipline_key = rdp.res_ins_discipline_key
AND rra.res_rsv_ruimte_key = rrr.res_rsv_ruimte_key
AND rra.res_rsv_artikel_verwijder IS NULL
AND rrr.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 res_rsv_artikel_prijs > 0;
CREATE OR REPLACE PROCEDURE aads_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 prs_kostenplaats_key,
prs_bedrijf_key,
alg_locatie_key,
alg_gebouw_key,
SUM (res_rsv_artikel_prijs) prijs,
mld_stdmelding_key
FROM aads_v_bundel_catering
WHERE res_rsv_artikel_levering < lev_date
AND res_status_bo_key = 5
GROUP BY prs_bedrijf_key, prs_kostenplaats_key, alg_locatie_key, alg_gebouw_key, mld_stdmelding_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_mld_opdr_key NUMBER;
v_prs_bedrijf_key NUMBER;
v_alg_locatie_key NUMBER;
v_prs_dienst_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;
-- stdmelding key voor recharge
v_mld_stdmelding_key := 941;
-- key van opdrachttype workorder
v_mld_workorder_key := 1;
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
v_errormsg := 'Aanpassen kostenplaatsen';
-- vul de kostenplaats van reserveringen die per abuis geen kostenplaats hebben.
UPDATE res_rsv_ruimte rrr
SET prs_kostenplaats_key =
(SELECT a.prs_kostenplaats_key
FROM prs_perslid p, prs_afdeling a
WHERE rrr.res_rsv_ruimte_host_key = p.prs_perslid_key
AND p.prs_afdeling_key = a.prs_afdeling_key)
WHERE rrr.prs_kostenplaats_key IS NULL;
FOR rec IN c(v_date) LOOP
-- maak een melding aan voor deze maand
v_errormsg := 'Aanmaken catering melding';
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 tot ' || to_char(v_date, 'dd-mm-yyyy'),
v_aanvrager,
rec.prs_kostenplaats_key,
COALESCE(rec.mld_stdmelding_key, v_mld_stdmelding_key),
rec.alg_locatie_key,
rec.alg_gebouw_key,
v_date-1,
add_months(v_date, -1),
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;
v_errormsg := 'Maak opdracht aan om factuur van cateraar te matchen';
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)
VALUES ( v_mld_melding_key
, rec.prs_kostenplaats_key
, 5 -- uitgegeven
, v_mld_workorder_key
, v_aanvrager
, rec.prs_bedrijf_key
, v_date -1
, FAC.DatumTijdPlusUitvoerTijd(sysdate, 1, 'DAGEN')
, 'MLD'
, 'Catering factuur tot: ' || to_char(v_date, 'dd-mm-yyyy')
, round(rec.prijs,2)
, round(rec.prijs,2)
, v_mld_opdr_bedrijfopdr_volgnr) RETURNING mld_opdr_key INTO v_mld_opdr_key;
MLD.setopdrachtstatus(v_mld_opdr_key, 6, v_aanvrager); -- afgemeld, facilitor
v_errormsg := 'Update melding/opdracht status';
MLD.updatemeldingstatus (v_mld_melding_key, 0, v_aanvrager); -- facilitor
MLD.setmeldingstatus(v_mld_melding_key, 5, v_aanvrager); -- afgemeld, facilitor
MLD.mld_nextworkflowstep (v_mld_melding_key, 1);
v_errormsg := 'Voeg regels toe aan mapping tabel';
INSERT INTO aaxx_bundel_catering_ref (mld_opdr_key, res_rsv_artikel_key, res_rsv_artikel_prijs, res_rsv_artikel_verwerkt)
SELECT v_mld_opdr_key, res_rsv_artikel_key, res_rsv_artikel_prijs, v_date
FROM aads_v_bundel_catering c
WHERE res_rsv_artikel_levering < v_date
AND c.prs_bedrijf_key = rec.prs_bedrijf_key
AND c.prs_kostenplaats_key = rec.prs_kostenplaats_key
AND c.alg_locatie_key = rec.alg_locatie_key
AND c.alg_gebouw_key = rec.alg_gebouw_key
AND COALESCE(c.mld_stdmelding_key, -1) = COALESCE(rec.mld_stdmelding_key, -1)
AND c.res_status_bo_key = 5;
v_errormsg := 'Pas de status van de artikelen aan ' || v_mld_opdr_key;
UPDATE res_rsv_artikel rra
SET res_rsv_artikel_verwerkt = SYSDATE,
res_status_bo_key = 6
WHERE EXISTS
(SELECT mld_opdr_key
FROM aaxx_bundel_catering_ref bc
WHERE bc.mld_opdr_key = v_mld_opdr_key
AND bc.res_rsv_artikel_key = rra.res_rsv_artikel_key);
END LOOP;
COMMIT;
END IF;
EXCEPTION WHEN OTHERS THEN
ROLLBACK;
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, '');
COMMIT;
END;
/
CREATE OR REPLACE VIEW AADS_V_RAP_CATERING_INKOOP
(
FCLT_F_EXPORTJOB,
FCLT_F_BEDRIJF,
AFLEVERADRES,
FCLT_F_AFLEVERDATUM,
TIJDSTIP,
BESTELNUMMER,
FCLT_F_ARTIKELNUMMER,
ARTIKELOMSCHRIJVING,
INTERNE_ARTIKELPRIJS,
AANTAL,
FCLT_F_BESTELLER,
COSTCENTER,
AFDELING
)
AS
SELECT TO_CHAR (res_rsv_artikel_verwerkt, 'dd-mm-yyyy'),
prs_bedrijf_naam,
alg_locatie_code
|| '-'
|| alg_gebouw_code
|| '-'
|| alg_verdieping_code
|| '-'
|| alg_ruimte_nr
|| ' ('
|| alg_ruimte_omschrijving
|| ')'
afleveradres,
TO_CHAR (rra.res_rsv_artikel_levering, 'dd-mm-yyyy') datum,
TO_CHAR (rra.res_rsv_artikel_levering, 'hh24:mi') tijd,
res_reservering_key || '/' || res_rsv_ruimte_volgnr bestelnummer,
res_artikel_nr artikelnummer,
res_artikel_omschrijving artikelomschrijving,
ROUND (
(rra.res_rsv_artikel_prijs / rra.res_rsv_artikel_aantal),
5)
interneprijs,
rra.res_rsv_artikel_aantal aantal,
pf.prs_perslid_naam_full besteller,
(SELECT MAX (res_kenmerkreservering_waarde)
FROM res_kenmerkwaarde kw, res_kenmerk rk
WHERE kw.res_kenmerk_key = rk.res_kenmerk_key
AND kw.res_rsv_ruimte_key = rrr.res_rsv_ruimte_key
AND kw.res_kenmerkwaarde_verwijder IS NULL
AND rk.res_srtkenmerk_key = 1)
costcenter,
k.prs_kostenplaats_nr || '-' || k.prs_kostenplaats_omschrijving
FROM res_rsv_ruimte rrr,
aads_v_bundel_catering bu,
prs_bedrijf b,
res_rsv_artikel rra,
alg_ruimte r,
alg_verdieping v,
alg_gebouw g,
alg_locatie l,
prs_perslid p,
prs_v_perslid_fullnames_all pf,
prs_kostenplaats k,
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, res_v_rsv_ruimte_2_alg_ruimte 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 rrr.prs_kostenplaats_key = k.prs_kostenplaats_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 g.alg_locatie_key = l.alg_locatie_key
AND rrr.res_rsv_ruimte_host_key = p.prs_perslid_key
AND p.prs_perslid_key = pf.prs_perslid_key
AND rra.res_rsv_artikel_verwijder IS NULL
AND rra.res_status_bo_key = 6
AND rra.res_artikel_key = ra.res_artikel_key
AND rra.res_rsv_artikel_levering > TO_DATE ('20110901', 'yyyymmdd')
AND rra.res_rsv_artikel_key = bu.res_rsv_artikel_key(+)
AND bu.prs_bedrijf_key = b.prs_bedrijf_key(+);
CREATE OR REPLACE VIEW aads_v_rap_catering_verkoop
(
fclt_f_bedrijf,
reservering,
afleveradres,
fclt_f_FDC,
FDC_omschrijving,
costcenter,
boekingsdatum,
fclt_f_periode,
aanvrager,
btw,
totaal
)
AS
SELECT bedrijf,
reservering,
afleveradres,
kostenplaats_nr,
kostenplaats,
costcenter,
boekingsdatum,
periode,
aanvrager,
btw,
SUM (totaalprijs)
FROM (SELECT b.prs_bedrijf_naam bedrijf,
rrr.res_reservering_key
|| '/'
|| rrr.res_rsv_ruimte_volgnr
reservering,
(SELECT alg_gebouw_code
FROM alg_gebouw g, alg_verdieping v, alg_ruimte r
WHERE r.alg_ruimte_key =
COALESCE (rrr.alg_ruimte_key,
r2a.alg_ruimte_key)
AND r.alg_verdieping_key =
v.alg_verdieping_key
AND v.alg_gebouw_key = g.alg_gebouw_key)
afleveradres,
k.prs_kostenplaats_nr kostenplaats_nr,
k.prs_kostenplaats_omschrijving kostenplaats,
(SELECT MAX (res_kenmerkreservering_waarde)
FROM res_kenmerkwaarde kw, res_kenmerk rk
WHERE kw.res_kenmerk_key = rk.res_kenmerk_key
AND kw.res_rsv_ruimte_key =
rrr.res_rsv_ruimte_key
AND kw.res_kenmerkwaarde_verwijder IS NULL
AND rk.res_srtkenmerk_key = 1)
costcenter,
TO_CHAR (rra.res_rsv_artikel_levering, 'dd-mm-yyyy')
boekingsdatum,
TO_CHAR (ADD_MONTHS (rra.res_rsv_artikel_verwerkt, -1),
'yyyy-mm')
periode,
pf.prs_perslid_naam_full aanvrager,
rra.res_rsv_artikel_btw btw,
rra.res_rsv_artikel_prijs totaalprijs
FROM res_rsv_artikel rra,
res_rsv_ruimte rrr,
prs_kostenplaats k,
prs_perslid p,
prs_afdeling a,
prs_bedrijf b,
aads_v_bundel_catering bu,
prs_v_perslid_fullnames_all pf,
( SELECT res_rsv_ruimte_key,
MAX (alg_ruimte_key) alg_ruimte_key
FROM res_v_rsv_ruimte_2_alg_ruimte
GROUP BY res_rsv_ruimte_key) r2a,
res_artikel ra
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 rrr.res_rsv_ruimte_host_key = p.prs_perslid_key
AND rrr.res_rsv_ruimte_key = r2a.res_rsv_ruimte_key(+)
AND p.prs_afdeling_key = a.prs_afdeling_key
AND p.prs_perslid_key = pf.prs_perslid_key
AND rra.res_artikel_key = ra.res_artikel_key
AND rra.res_rsv_artikel_key = bu.res_rsv_artikel_key(+)
AND bu.prs_bedrijf_key = b.prs_bedrijf_key(+)
AND rra.res_rsv_artikel_levering >
TO_DATE ('20110901', 'yyyymmdd'))
GROUP BY bedrijf,
reservering,
afleveradres,
kostenplaats_nr,
kostenplaats,
costcenter,
boekingsdatum,
periode,
aanvrager,
btw;
-- AADS#65512: DSM & Deviatie-workflow
CREATE OR REPLACE VIEW aads_v_rap_deviatie_goedkeur
(
mld_melding_key,
fclt_3d_user_key, -- prs_perslid_key van de goedkeurder (via rechten MLDBOF / MLDBO3 op desbetreffende vakgroep)
goedkeurder,
-- fclt_3d_afdeling_key, -- ook voor 3D-scoping op afdeling in meenemen voor DSM - ?
fclt_3d_discipline_key, -- vakgroep_key
melding_nr, -- actie-meldingsnr met prefix
melding_start_key, -- meldingsnummer aanvraag
vakgroep, -- vakgroep_naam
status, -- nieuw
datum, -- datum mld_goedkeuring
datum_m1, -- datum mld_start
aanvrager,
omschrijving,
opmerking,
opmerking_m1, -- opmerking mld_start
-- Alle kenmerkvelden op aanvraag
deviatiesoort,
titel,
ingangsdatum,
kostensoort_oud,
kostensoort_nieuw,
oud_budget,
nieuw_budget_jaarbasis,
nieuw_budget_jaarlopend,
deviatiebedrag_jaarlopend,
entiteit,
leverancier,
po_nummer,
value_convention,
co_nummer
)
AS
SELECT m.mld_melding_key,
pf.prs_perslid_key
fclt_3d_user_key,
pf.prs_perslid_naam
goedkeurder,
md.ins_discipline_key
fclt_3d_discipline_key,
sd.ins_srtdiscipline_prefix || to_char(m.mld_melding_key)
melding_nr,
m.mld_melding_start_key
melding_start_key,
md.ins_discipline_omschrijving
vakgroep,
DECODE (m.mld_melding_status, 2, 'nieuw', 'in behandeling')
status,
TO_CHAR(m.mld_melding_datum,'dd-mm-yyyy')
datum,
TO_CHAR(m1.mld_melding_datum,'dd-mm-yyyy')
datum_m1,
p.prs_perslid_naam || ' (' || p.prs_perslid_voornaam || ')'
aanvrager,
m.mld_melding_omschrijving,
m.mld_melding_opmerking,
m1.mld_melding_opmerking,
-- Kenmerkvelden bij aanvraag
(SELECT fu.fac_usrdata_omschr
FROM mld_kenmerkmelding mkm,
mld_kenmerk k,
fac_usrdata fu
WHERE mkm.mld_melding_key = m.mld_melding_key
AND mkm.mld_kenmerk_key = k.mld_kenmerk_key
AND fac.safe_to_number(mkm.mld_kenmerkmelding_waarde) = fu.fac_usrdata_key
AND k.mld_srtkenmerk_key = 643)
deviatiesoort,
(SELECT mkm.mld_kenmerkmelding_waarde
FROM mld_kenmerkmelding mkm, mld_kenmerk k
WHERE mkm.mld_melding_key = m.mld_melding_key
AND mkm.mld_kenmerk_key = k.mld_kenmerk_key
AND k.mld_srtkenmerk_key = 623)
titel,
(SELECT TO_CHAR(TO_DATE(mkm.mld_kenmerkmelding_waarde,'dd-mm-yyyy'),'dd-mm-yyyy')
FROM mld_kenmerkmelding mkm, mld_kenmerk k
WHERE mkm.mld_melding_key = m.mld_melding_key
AND mkm.mld_kenmerk_key = k.mld_kenmerk_key
AND k.mld_srtkenmerk_key = 644)
ingangsdatum,
(SELECT k.prs_kostensoort_omschrijving
FROM mld_kenmerkmelding mkm, mld_kenmerk k, aaxx_v_kostensoort k
WHERE mkm.mld_melding_key = m.mld_melding_key
AND mkm.mld_kenmerk_key = k.mld_kenmerk_key
AND fac.safe_to_number(mkm.mld_kenmerkmelding_waarde) = k.prs_kostensoort_key
AND k.mld_srtkenmerk_key = 645)
kostensoort_oud,
(SELECT k.prs_kostensoort_omschrijving
FROM mld_kenmerkmelding mkm, mld_kenmerk k, aaxx_v_kostensoort k
WHERE mkm.mld_melding_key = m.mld_melding_key
AND mkm.mld_kenmerk_key = k.mld_kenmerk_key
AND fac.safe_to_number(mkm.mld_kenmerkmelding_waarde) = k.prs_kostensoort_key
AND k.mld_srtkenmerk_key = 721)
kostensoort_nieuw,
(SELECT mkm.mld_kenmerkmelding_waarde
FROM mld_kenmerkmelding mkm, mld_kenmerk k
WHERE mkm.mld_melding_key = m.mld_melding_key
AND mkm.mld_kenmerk_key = k.mld_kenmerk_key
AND k.mld_srtkenmerk_key = 661)
oud_budget,
(SELECT mkm.mld_kenmerkmelding_waarde
FROM mld_kenmerkmelding mkm, mld_kenmerk k
WHERE mkm.mld_melding_key = m.mld_melding_key
AND mkm.mld_kenmerk_key = k.mld_kenmerk_key
AND k.mld_srtkenmerk_key = 641)
nieuw_budget_jaarbasis,
(SELECT mkm.mld_kenmerkmelding_waarde
FROM mld_kenmerkmelding mkm, mld_kenmerk k
WHERE mkm.mld_melding_key = m.mld_melding_key
AND mkm.mld_kenmerk_key = k.mld_kenmerk_key
AND k.mld_srtkenmerk_key = 642)
nieuw_budget_jaarlopend,
(SELECT mkm.mld_kenmerkmelding_waarde
FROM mld_kenmerkmelding mkm, mld_kenmerk k
WHERE mkm.mld_melding_key = m.mld_melding_key
AND mkm.mld_kenmerk_key = k.mld_kenmerk_key
AND k.mld_srtkenmerk_key = 722) -- Deviatiebedrag (lopende jaar)
deviatiebedrag_lopendjaar,
(SELECT mkm.mld_kenmerkmelding_waarde
FROM mld_kenmerkmelding mkm, mld_kenmerk k
WHERE mkm.mld_melding_key = m.mld_melding_key
AND mkm.mld_kenmerk_key = k.mld_kenmerk_key
AND k.mld_srtkenmerk_key = 682) -- Entiteit
entiteit,
(SELECT b.prs_bedrijf_naam
FROM mld_kenmerkmelding mkm, mld_kenmerk k, prs_bedrijf b
WHERE mkm.mld_melding_key = m.mld_melding_key
AND mkm.mld_kenmerk_key = k.mld_kenmerk_key
AND fac.safe_to_number(mkm.mld_kenmerkmelding_waarde) = b.prs_bedrijf_key
AND k.mld_srtkenmerk_key = 77)
leverancier,
(SELECT mkm.mld_kenmerkmelding_waarde
FROM mld_kenmerkmelding mkm, mld_kenmerk k
WHERE mkm.mld_melding_key = m.mld_melding_key
AND mkm.mld_kenmerk_key = k.mld_kenmerk_key
AND k.mld_srtkenmerk_key = 646) -- PO Nummer opdrachtgever
po_nummer,
(SELECT fu.fac_usrdata_omschr
FROM mld_kenmerkmelding mkm,
mld_kenmerk k,
fac_usrdata fu
WHERE mkm.mld_melding_key = m.mld_melding_key
AND mkm.mld_kenmerk_key = k.mld_kenmerk_key
AND fac.safe_to_number(mkm.mld_kenmerkmelding_waarde) = fu.fac_usrdata_key
AND k.mld_srtkenmerk_key = 701) -- Value Convention
value_convention,
(SELECT mkm.mld_kenmerkmelding_waarde
FROM mld_kenmerkmelding mkm, mld_kenmerk k
WHERE mkm.mld_melding_key = m.mld_melding_key
AND mkm.mld_kenmerk_key = k.mld_kenmerk_key
AND k.mld_srtkenmerk_key = 681) -- CO Nummer HEYDAY naar leverancier
co_nummer
FROM mld_melding m,
mld_melding m1,
prs_perslid p, -- aanvrager
-- prs_v_afdeling_boom ab,
-- prs_afdeling a,
mld_stdmelding s,
mld_discipline md,
mld_disc_params mdp,
ins_srtdiscipline sd,
(
SELECT gr.ins_discipline_key, gg.prs_perslid_key, p.prs_perslid_naam
FROM fac_gebruikersgroep gg,
fac_groep g,
fac_groeprechten gr,
mld_discipline md,
fac_functie f,
prs_perslid p
WHERE gg.fac_groep_key = g.fac_groep_key
AND g.fac_groep_key = gr.fac_groep_key
AND gg.prs_perslid_key = p.prs_perslid_key
AND gr.fac_functie_key = f.fac_functie_key
AND gr.ins_discipline_key = md.ins_discipline_key
AND md.ins_srtdiscipline_key = 61
AND INSTR(lower(md.ins_discipline_omschrijving),'goedkeuring') > 0
AND gr.fac_functie_key = 29 -- MLDBOF
GROUP BY gr.ins_discipline_key, gg.prs_perslid_key, p.prs_perslid_naam
) pf -- p-fiatteur
WHERE s.mld_stdmelding_key = m.mld_stdmelding_key
AND m.mld_melding_start_key = m1.mld_melding_key
AND m1.mld_melding_status = 4 -- Lopende aanvraag
AND m.mld_melding_status in (2, 4) -- Moet in principe nieuw (2) zijn om nog te kunnen annuleren
-- Indien toch in behandeling (4) genomen dan wel opnemen maar in styling annuleren disablen
AND m.prs_perslid_key = p.prs_perslid_key
-- AND p.prs_afdeling_key = ab.prs_afdeling_key AND ab.prs_afdeling_key1 = a.prs_afdeling_key
AND sd.ins_srtdiscipline_key = md.ins_srtdiscipline_key
AND md.ins_discipline_key = s.mld_ins_discipline_key
AND md.ins_discipline_key = mdp.mld_ins_discipline_key
AND sd.ins_srtdiscipline_key = 61 -- vakgroeptype Deviaties
AND INSTR(lower(md.ins_discipline_omschrijving),'goedkeuring') > 0 -- daarbinnen alle vakgroepen tbv goedkeuring
AND md.ins_discipline_key = pf.ins_discipline_key ;
-- Rapport opdrachten voor gebouwverantwoordelijke (ticket 58199)
CREATE OR REPLACE VIEW AADS_V_OPDR_GEBOUWVERANTW
(
VERANTW1_KEY,
NAAM_VERANTWOORDELIJK,
VERANTW2_KEY,
NAAM_VERANTWOORDELIJK2,
PLAATSAANDUIDING,
MLD_OPDR_KEY,
OPDRACHTNUMMER,
TYPE_OPDRACHT,
OPDRACHTOMSCHRIJVING,
OPDRACHT_BEDRAG,
OPDRACHT_AANMAAKDATUM,
OPDRACHT_EINDDATUM,
OPDRACHT_PLANDATUM,
HUIDIGE_STATUS,
GOEDGEKEURD_BO_1E,
GOEDGEKEURD_1E_DOOR,
GOEDGEKEURD_AANTAL,
GOEDGEKEURD_BO_MAX,
GOEDGEKEURD_MAX_DOOR,
GEFIATTERD_1E,
FIATTEUR,
LEVERANCIERSNAAM,
OPDRACHT_VERZONDEN,
OPDRACHT_ACCEPT,
DATUM_GEREED
)
AS
SELECT sub.prs_perslid_key_verantw,
sub.Naam_Verantwoordelijk,
sub.prs_perslid_key_verantw2,
sub.Naam_Verantwoordelijk2,
l.alg_locatie_code
|| ' - '
|| (SELECT g.alg_gebouw_naam || ' (' || og.alg_plaatsaanduiding || '}'
FROM alg_v_allonrgoed_gegevens og, alg_gebouw g
WHERE og.alg_gebouw_key = g.alg_gebouw_key
AND og.alg_onroerendgoed_keys =
m.mld_alg_onroerendgoed_keys
AND og.alg_locatie_key = m.mld_alg_locatie_key)
AS Locatie_Plaatsaanduiding,
o.mld_opdr_key,
ins_srtdiscipline_prefix
|| TO_CHAR (m.mld_melding_key)
|| '/'
|| o.mld_opdr_bedrijfopdr_volgnr
AS OPDR_NR,
top.mld_typeopdr_omschrijving,
o.mld_opdr_omschrijving,
o.mld_opdr_kosten,
o.mld_opdr_datumbegin,
o.mld_opdr_einddatum,
o.mld_opdr_plandatum,
(SELECT st.mld_statusopdr_omschrijving
FROM mld_statusopdr st
WHERE st.mld_statusopdr_key = o.mld_statusopdr_key)
AS HuidigeStatus,
(SELECT MIN (ft.fac_tracking_datum)
FROM fac_tracking ft
WHERE ft.fac_tracking_refkey = o.mld_opdr_key
AND SUBSTR (ft.fac_tracking_oms, 1, 28) =
'Opdracht is goedgekeurd door')
AS Goedgekeurd_BO_1e,
(SELECT p.prs_perslid_voornaam || ' ' || p.prs_perslid_naam
FROM prs_perslid p, fac_tracking ft
WHERE p.prs_perslid_key = ft.prs_perslid_key
AND ft.fac_tracking_key =
(SELECT MIN (ft.fac_tracking_key)
FROM fac_tracking ft
WHERE ft.fac_tracking_refkey = o.mld_opdr_key
AND SUBSTR (ft.fac_tracking_oms, 1, 28) =
'Opdracht is goedgekeurd door'))
AS Goedgekeurd_BO_1e_Door,
bo.teller_BO,
(CASE
WHEN bo.teller_bo > 1
THEN
((SELECT p.prs_perslid_voornaam || ' ' || p.prs_perslid_naam
FROM prs_perslid p, fac_tracking ft
WHERE p.prs_perslid_key = ft.prs_perslid_key
AND ft.fac_tracking_key =
(SELECT MAX (ft.fac_tracking_key)
FROM fac_tracking ft
WHERE ft.fac_tracking_refkey =
o.mld_opdr_key
AND SUBSTR (ft.fac_tracking_oms, 1, 28) =
'Opdracht is goedgekeurd door')))
ELSE
''
END)
AS Goedkeuring_BO_Door_max,
bo.datum_max,
(SELECT MIN (ft.fac_tracking_datum)
FROM fac_tracking ft
WHERE ft.fac_tracking_refkey = o.mld_opdr_key
AND ft.fac_srtnotificatie_key = 48)
AS Gefiatteerd_1e,
(SELECT p.prs_perslid_voornaam || ' ' || p.prs_perslid_naam
FROM prs_perslid p, fac_tracking ft
WHERE p.prs_perslid_key = ft.prs_perslid_key
AND ft.fac_tracking_key =
(SELECT MIN (ft.fac_tracking_key)
FROM fac_tracking ft
WHERE ft.fac_tracking_refkey = o.mld_opdr_key
AND ft.fac_srtnotificatie_key = 48))
AS Fiatteur,
(SELECT naam
FROM mld_v_uitvoerende u
WHERE u.mld_uitvoerende_key = o.mld_uitvoerende_keys)
opdracht_uitvoerende,
o.mld_opdr_verzonden
AS Opdracht_VerzondenLeverancier,
mld.getopdrachtstatusdate (o.mld_opdr_key, 8)
AS Opdracht_Accept,
mld.getopdrachtstatusdate (o.mld_opdr_key, 6)
AS DatumAfgemeld
FROM alg_locatie l,
mld_opdr o,
mld_typeopdr top,
mld_melding m,
mld_stdmelding stdm,
ins_tab_discipline di,
ins_srtdiscipline sdi,
(SELECT mm.mld_melding_key,
og.alg_onroerendgoed_keys,
og.alg_locatie_key,
g.prs_perslid_key_verantw,
p.prs_perslid_voornaam || ' ' || p.prs_perslid_naam
AS Naam_Verantwoordelijk,
g.prs_perslid_key_verantw2,
p2.prs_perslid_voornaam || ' ' || p2.prs_perslid_naam
AS Naam_Verantwoordelijk2,
g.alg_gebouw_naam,
g.alg_gebouw_code
FROM mld_melding mm,
alg_v_allonrgoed_gegevens og,
alg_gebouw g,
prs_perslid p,
prs_perslid p2
WHERE mm.mld_alg_onroerendgoed_keys = og.alg_onroerendgoed_keys
AND og.alg_gebouw_key = g.alg_gebouw_key
AND g.prs_perslid_key_verantw = p.prs_perslid_key
AND g.prs_perslid_key_verantw2 = p2.prs_perslid_key (+)) sub,
(SELECT *
FROM (SELECT v.mld_opdr_key, v.teller_bo, v.datum_max
FROM ( SELECT mo.mld_opdr_key,
COUNT (*) AS teller_bo,
MAX (fac_tracking_datum) AS Datum_max
FROM fac_tracking ft, mld_opdr mo
WHERE mo.mld_opdr_key = ft.fac_tracking_refkey
AND SUBSTR (ft.fac_tracking_oms, 1, 28) =
'Opdracht is goedgekeurd door'
GROUP BY mo.mld_opdr_key) v) vv
WHERE vv.Teller_BO > 1) bo
WHERE m.mld_alg_locatie_key = l.alg_locatie_key(+)
AND m.mld_melding_key = sub.mld_melding_key
AND o.mld_opdr_key = bo.mld_opdr_key(+)
AND m.mld_stdmelding_key = stdm.mld_stdmelding_key
AND stdm.mld_ins_discipline_key = di.ins_discipline_key
AND di.ins_srtdiscipline_key = sdi.ins_srtdiscipline_key
AND o.mld_melding_key = m.mld_melding_key
AND o.mld_typeopdr_key = top.mld_typeopdr_key(+)
AND o.mld_opdr_datumbegin >= TO_DATE ('01-01-2010', 'DD-MM-YYYY') ;
-- AADS#22801 rapport geautoriseerde bestellers
-- Keys: DSM Demand manager (=187), DSM Budgethouder (=182), DSM Geautoriseerd besteller (=181) en DSM Gedelegeerd Budgethouder (=12)
CREATE OR REPLACE VIEW AADS_V_RAP_AUTH_BESTELLERS
(
FCLT_F_NAAM,
FCLT_F_KOSTENPLAATS,
FCLT_F_MANDAAT,
FCLT_F_PROFIEL,
FCLT_F_AFDELING,
TELEFOONNUMMER,
EMAILADRES
)
AS
SELECT prs_perslid_naam_full Naam,
prs_kostenplaats_nr || ' ' || prs_kostenplaats_omschrijving
Kostenplaats,
'Afdeling',
g.fac_groep_omschrijving Profiel,
prs_afdeling_omschrijving Afdeling,
coalesce(prs_perslid_telefoonnr, prs_perslid_mobiel) Telefoon,
prs_perslid_email Mail
FROM prs_v_perslid_fullnames pf,
fac_gebruikersgroep fg,
fac_groep g,
prs_perslid p,
prs_afdeling a,
prs_kostenplaats k
WHERE pf.prs_perslid_key = fg.prs_perslid_key
AND pf.prs_perslid_key = p.prs_perslid_key
AND a.prs_afdeling_key = p.prs_afdeling_key
AND a.prs_kostenplaats_key = k.prs_kostenplaats_key
AND g.fac_groep_key = fg.fac_groep_key
AND fg.fac_groep_key IN (182, 187, 181, 12)
AND p.prs_perslid_upper NOT LIKE 'ARCHIVE%'
UNION ALL
SELECT prs_perslid_naam_full Naam,
prs_kostenplaats_nr || ' ' || prs_kostenplaats_omschrijving
Kostenplaats,
'Gemandateerd',
g.fac_groep_omschrijving Profiel,
prs_afdeling_omschrijving Afdeling,
coalesce(prs_perslid_telefoonnr, prs_perslid_mobiel) Telefoon,
prs_perslid_email Mail
FROM prs_v_perslid_fullnames pf,
fac_gebruikersgroep fg,
fac_groep g,
prs_perslid p,
prs_afdeling a,
prs_kostenplaats k,
(SELECT p.prs_perslid_key, k.prs_kostenplaats_key
FROM prs_perslidkostenplaats pk,
prs_perslid p,
prs_kostenplaats k
WHERE p.prs_perslid_key = pk.prs_perslid_key
AND k.prs_kostenplaats_key = pk.prs_kostenplaats_key
AND k.prs_kostenplaats_verwijder IS NULL
AND p.prs_perslid_verwijder IS NULL) m
WHERE pf.prs_perslid_key = fg.prs_perslid_key
AND pf.prs_perslid_key = p.prs_perslid_key
AND m.prs_perslid_key = p.prs_perslid_key
AND a.prs_afdeling_key = p.prs_afdeling_key
AND m.prs_kostenplaats_key = k.prs_kostenplaats_key
AND g.fac_groep_key = fg.fac_groep_key
AND fg.fac_groep_key IN (182, 187, 181, 12)
AND p.prs_perslid_upper NOT LIKE 'ARCHIVE%'
ORDER BY 1,
3,
4,
2;
-- AADS#39742 rapport geautoriseerde bestellers
-- Keys 1000, 1001 en 1002 zijn checkboxen Budgethouder, Geautoriseerd besteller en Gedelegeerd budgethouder
CREATE OR REPLACE VIEW aads_v_rap_auth_bestellers2
(
fclt_f_naam,
fclt_f_kostenplaats,
fclt_f_mandaat,
fclt_f_profiel,
fclt_f_afdeling,
telefoonnummer,
emailadres
)
AS
SELECT prs_perslid_naam_full naam,
prs_kostenplaats_nr || ' ' || prs_kostenplaats_omschrijving
kostenplaats,
'Afdeling',
aut.prs_kenmerk_omschrijving,
prs_afdeling_omschrijving afdeling,
COALESCE (prs_perslid_telefoonnr, prs_perslid_mobiel) telefoon,
prs_perslid_email mail
FROM prs_v_perslid_fullnames pf,
prs_perslid p,
prs_afdeling a,
prs_kostenplaats k,
(SELECT prs_link_key, prs_kenmerk_omschrijving
FROM prs_kenmerklink pkl, prs_kenmerk pk
WHERE pk.prs_kenmerk_key IN (1000, 1001, 1002)
AND pkl.prs_kenmerk_key = pk.prs_kenmerk_key) aut
WHERE pf.prs_perslid_key = p.prs_perslid_key
AND a.prs_afdeling_key = p.prs_afdeling_key
AND a.prs_kostenplaats_key = k.prs_kostenplaats_key
AND p.prs_perslid_upper NOT LIKE 'ARCHIVE%'
AND p.prs_perslid_key = aut.prs_link_key
UNION ALL
SELECT prs_perslid_naam_full naam,
prs_kostenplaats_nr || ' ' || prs_kostenplaats_omschrijving
kostenplaats,
'Gemandateerd',
aut.prs_kenmerk_omschrijving profiel,
prs_afdeling_omschrijving afdeling,
COALESCE (prs_perslid_telefoonnr, prs_perslid_mobiel) telefoon,
prs_perslid_email mail
FROM prs_v_perslid_fullnames pf,
prs_perslid p,
prs_afdeling a,
prs_kostenplaats k,
(SELECT p.prs_perslid_key, k.prs_kostenplaats_key
FROM prs_perslidkostenplaats pk,
prs_perslid p,
prs_kostenplaats k
WHERE p.prs_perslid_key = pk.prs_perslid_key
AND k.prs_kostenplaats_key = pk.prs_kostenplaats_key
AND k.prs_kostenplaats_verwijder IS NULL
AND p.prs_perslid_verwijder IS NULL) m,
(SELECT prs_link_key, prs_kenmerk_omschrijving
FROM prs_kenmerklink pkl, prs_kenmerk pk
WHERE pk.prs_kenmerk_key IN (1000, 1001, 1002)
AND pkl.prs_kenmerk_key = pk.prs_kenmerk_key) aut
WHERE pf.prs_perslid_key = p.prs_perslid_key
AND m.prs_perslid_key = p.prs_perslid_key
AND a.prs_afdeling_key = p.prs_afdeling_key
AND m.prs_kostenplaats_key = k.prs_kostenplaats_key
AND p.prs_perslid_upper NOT LIKE 'ARCHIVE%'
AND aut.prs_link_key = p.prs_perslid_key
ORDER BY 1,
3,
4,
2;
-- AADS#34572 rapportage tbv huuradministratie
-- AADS#56061 toevoeging huurbaas gedelegeerd
CREATE OR REPLACE VIEW AADS_V_RAP_ALG_HUURADMIN
(
FCLT_F_LOCATIE_CODE,
FCLT_F_GEBOUW_CODE,
BOUWDEEL,
VERDIEPING,
RUIMTENUMMER,
RUIMTEOMSCHRIJVING,
FCLT_F_RUIMTEFUNCTIE,
M2,
TEKEN_M2,
FCLT_F_HUURDER_NUMMER,
AFDELINGSOMSCHRIJVING,
FCLT_F_FDC,
BEZETTING,
TARIEF_KALE_HUUR,
TARIEF_SERVICEKOSTEN,
TARIEF_FMKOSTEN,
WERKPLEK_TARIEF,
AANTAL_WERPLEKKEN,
HUISBAAS,
HUISBAAS_GEDELEGEERD,
TOTAAL_KALE_HUUR,
TOTAAL_SERVICEKOSTEN,
TOTAAL_FMKOSTEN,
TOTAAL_WERKPLEK,
TOTAAL
)
AS
SELECT alg_locatie_code
locatie_code,
alg_gebouw_code
gebouw_code,
bd.bouwdeel,
alg_verdieping_volgnr
verdieping,
alg_ruimte_nr
ruimtenummer,
alg_ruimte_omschrijving
ruimteomschrijving,
alg_srtruimte_omschrijving
ruimtefunctie,
alg_ruimte_bruto_vloeropp
m2,
alg_ruimte_getekend
teken_m2,
pa.prs_afdeling_naam
huurder_nummer,
pa.prs_afdeling_omschrijving
afdelingsomschrijving,
pk.prs_kostenplaats_nr
fdc,
ROUND (
( pra.prs_ruimteafdeling_bezetting
* alg_ruimte_bruto_vloeropp)
/ 100,
2)
bezetting,
kh.tariefkh
tarief_kale_huur,
sk.tariefsk
tarief_servicekosten,
fmk.tarieffmk
tarief_fmkosten,
wk.tariefwk
werkplek_tarief,
aw.aantwp
aantal_werplekken,
hb.huisbaas
huisbaas,
ghb.gedelegeerdehuisbaas
Gedelegeerde_Huisbaas,
ROUND (
kh.tariefkh
* ( pra.prs_ruimteafdeling_bezetting
* alg_ruimte_bruto_vloeropp)
/ 100,
2)
totaal_kale_huur,
ROUND (
sk.tariefsk
* ( pra.prs_ruimteafdeling_bezetting
* alg_ruimte_bruto_vloeropp)
/ 100,
2)
totaal_servicekosten,
ROUND (
fmk.tarieffmk
* ( pra.prs_ruimteafdeling_bezetting
* alg_ruimte_bruto_vloeropp)
/ 100,
2)
totaal_fmkosten,
ROUND (aw.aantwp * wk.tariefwk, 2)
totaal_werkplek,
COALESCE (
ROUND (
kh.tariefkh
* ( pra.prs_ruimteafdeling_bezetting
* alg_ruimte_bruto_vloeropp)
/ 100,
2),
0)
+ COALESCE (
ROUND (
sk.tariefsk
* ( pra.prs_ruimteafdeling_bezetting
* alg_ruimte_bruto_vloeropp)
/ 100,
2),
0)
+ COALESCE (
ROUND (
fmk.tarieffmk
* ( pra.prs_ruimteafdeling_bezetting
* alg_ruimte_bruto_vloeropp)
/ 100,
2),
0)
+ COALESCE (ROUND (aw.aantwp * wk.tariefwk, 2), 0)
totaal
FROM alg_locatie l,
alg_gebouw g,
alg_verdieping v,
alg_ruimte r,
alg_srtruimte sr,
prs_v_aanwezigruimteafdeling pra,
prs_afdeling pa,
prs_kostenplaats pk,
(SELECT alg_onrgoed_key, alg_onrgoedkenmerk_waarde huisbaas
FROM alg_onrgoedkenmerk
WHERE alg_kenmerk_key = 1200) hb,
(SELECT alg_onrgoed_key, alg_onrgoedkenmerk_waarde gedelegeerdehuisbaas
FROM alg_onrgoedkenmerk
WHERE alg_kenmerk_key = 1240) ghb,
(SELECT alg_onrgoed_key,
fac.safe_to_number (alg_onrgoedkenmerk_waarde) aantwp
FROM alg_onrgoedkenmerk
WHERE alg_kenmerk_key = 1040) aw,
(SELECT alg_onrgoed_key,
fac.safe_to_number (alg_onrgoedkenmerk_waarde) tariefkh
FROM alg_onrgoedkenmerk
WHERE alg_kenmerk_key = 1041) kh,
(SELECT alg_onrgoed_key,
fac.safe_to_number (alg_onrgoedkenmerk_waarde) tariefsk
FROM alg_onrgoedkenmerk
WHERE alg_kenmerk_key = 1042) sk,
(SELECT alg_onrgoed_key,
fac.safe_to_number (alg_onrgoedkenmerk_waarde) tarieffmk
FROM alg_onrgoedkenmerk
WHERE alg_kenmerk_key = 1043) fmk,
(SELECT alg_onrgoed_key,
fac.safe_to_number (alg_onrgoedkenmerk_waarde) tariefwk
FROM alg_onrgoedkenmerk
WHERE alg_kenmerk_key = 1044) wk,
(SELECT alg_onrgoed_key, alg_onrgoedkenmerk_waarde bouwdeel
FROM alg_onrgoedkenmerk
WHERE alg_kenmerk_key = 1060) bd
WHERE g.alg_locatie_key = l.alg_locatie_key
AND g.alg_gebouw_key = v.alg_gebouw_key
AND r.alg_verdieping_key = v.alg_verdieping_key
AND sr.alg_srtruimte_key(+) = r.alg_srtruimte_key
AND alg_ruimte_verwijder IS NULL
AND pra.alg_ruimte_key(+) = r.alg_ruimte_key
AND pa.prs_afdeling_key(+) = pra.prs_afdeling_key
AND pk.prs_kostenplaats_key(+) = pa.prs_kostenplaats_key
AND hb.alg_onrgoed_key(+) = r.alg_ruimte_key
AND aw.alg_onrgoed_key(+) = r.alg_ruimte_key
AND kh.alg_onrgoed_key(+) = r.alg_ruimte_key
AND sk.alg_onrgoed_key(+) = r.alg_ruimte_key
AND fmk.alg_onrgoed_key(+) = r.alg_ruimte_key
AND wk.alg_onrgoed_key(+) = r.alg_ruimte_key
AND bd.alg_onrgoed_key(+) = r.alg_ruimte_key
AND ghb.alg_onrgoed_key(+) = r.alg_ruimte_key
;
-- HV FREEZE
CREATE OR REPLACE PROCEDURE aads_export_hv_freeze (p_applname IN VARCHAR2,
p_applrun IN VARCHAR2,
p_filedir IN VARCHAR2,
p_filename IN VARCHAR2)
AS
v_kwartaal VARCHAR2 (10);
v_aantal NUMBER;
v_maand NUMBER;
v_maand2 NUMBER;
v_opmerking VARCHAR2 (100);
BEGIN
BEGIN
-- freeze wordt altijd weggeschreven onder het volgende kwartaal
v_kwartaal :=
TO_CHAR (ADD_MONTHS (SYSDATE, 1), 'yyyy')
|| TRUNC( (TO_NUMBER (TO_CHAR (ADD_MONTHS (SYSDATE, 1), 'mm'))
+ 2)
/ 3);
-- kijk of er al een freeze bestaat
SELECT COUNT ( * )
INTO v_aantal
FROM aads_hv_freeze
WHERE kwartaal = v_kwartaal;
-- freeze mag alleen in maart, juni, september en december gemaakt worden.
v_maand := TO_NUMBER (TO_CHAR (SYSDATE, 'mm'));
-- speciaal verzoek om de eerste week in het volgende kwartaal ook nog te mogen freezen.
v_maand2 := TO_NUMBER (TO_CHAR (SYSDATE - 7, 'mm'));
IF MOD (v_maand, 3) <> 0 AND MOD (v_maand2, 3) <> 0
THEN
fac.writelog (
p_applname,
'E',
'Foutmelding!: Freeze mag alleen in de maanden maart, juni, september en december gemaakt worden!',
'Neem contact op met uw consultant.');
ELSE
-- verwijder eerder gemaakte freeze resultaten.
IF v_aantal > 0
THEN
DELETE aads_hv_freeze
WHERE kwartaal = v_kwartaal;
v_opmerking := ' Vorige freeze is verwijderd.';
END IF;
INSERT INTO aads_hv_freeze (freeze_datum,
kwartaal,
locatie_code,
gebouw_code,
bouwdeel,
verdieping,
ruimtenummer,
ruimteomschrijving,
ruimtefunctie,
m2,
huurder_nummer,
afdelingsomschrijving,
fdc,
bezetting,
tarief_kale_huur,
tarief_servicekosten,
tarief_fmkosten,
werkplek_tarief,
aantal_werplekken,
huisbaas,
totaal_kale_huur,
totaal_servicekosten,
totaal_fmkosten,
totaal_werkplek,
totaal)
SELECT SYSDATE,
v_kwartaal,
fclt_f_locatie_code,
fclt_f_gebouw_code,
bouwdeel,
verdieping,
ruimtenummer,
ruimteomschrijving,
fclt_f_ruimtefunctie,
m2,
fclt_f_huurder_nummer,
afdelingsomschrijving,
fclt_f_fdc,
bezetting,
tarief_kale_huur,
tarief_servicekosten,
tarief_fmkosten,
werkplek_tarief,
aantal_werplekken,
huisbaas,
totaal_kale_huur,
totaal_servicekosten,
totaal_fmkosten,
totaal_werkplek,
totaal
FROM aads_v_rap_alg_huuradmin;
fac.writelog (
p_applname,
'E',
'Freeze voor kwartaal:'
|| v_kwartaal
|| ' op '
|| TO_CHAR (SYSDATE, 'dd-mm-yyyy')
|| ' is succesvol aangemaakt.'
|| v_opmerking,
'');
END IF;
EXCEPTION
WHEN OTHERS
THEN
fac.writelog (
p_applname,
'E',
'Foutmelding!:' || SQLCODE || '/' || SUBSTR (SQLERRM, 1, 100),
'Neem contact op met uw consultant.');
END;
END;
/
-- Freeze rapportage over voorgaande freezes
CREATE OR REPLACE VIEW aads_v_rap_hv_freeze
(
fclt_f_kwartaal,
fclt_f_locatie_code,
fclt_f_gebouw_code,
bouwdeel,
verdieping,
ruimtenummer,
ruimteomschrijving,
fclt_f_ruimtefunctie,
m2,
fclt_f_huurder_nummer,
fclt_f_afdelingsomschrijving,
fclt_f_fdc,
bezetting,
tarief_kale_huur,
tarief_servicekosten,
tarief_fmkosten,
werkplek_tarief,
aantal_werplekken,
huisbaas,
totaal_kale_huur,
totaal_servicekosten,
totaal_fmkosten,
totaal_werkplek,
totaal
)
AS
SELECT kwartaal,
locatie_code,
gebouw_code,
bouwdeel,
verdieping,
ruimtenummer,
ruimteomschrijving,
ruimtefunctie,
m2,
huurder_nummer,
afdelingsomschrijving,
fdc,
bezetting,
TO_CHAR (tarief_kale_huur, '999990D99999', 'NLS_NUMERIC_CHARACTERS = '',.'''),
TO_CHAR (tarief_servicekosten, '999990D99999', 'NLS_NUMERIC_CHARACTERS = '',.'''),
TO_CHAR (tarief_fmkosten, '999990D99999', 'NLS_NUMERIC_CHARACTERS = '',.'''),
TO_CHAR (werkplek_tarief, '999990D99999', 'NLS_NUMERIC_CHARACTERS = '',.'''),
aantal_werplekken,
huisbaas,
TO_CHAR (totaal_kale_huur, '999990D99999', 'NLS_NUMERIC_CHARACTERS = '',.'''),
TO_CHAR (totaal_servicekosten, '999990D99999', 'NLS_NUMERIC_CHARACTERS = '',.'''),
TO_CHAR (totaal_fmkosten, '999990D99999', 'NLS_NUMERIC_CHARACTERS = '',.'''),
TO_CHAR (totaal_werkplek, '999990D99999', 'NLS_NUMERIC_CHARACTERS = '',.'''),
TO_CHAR (totaal, '999990D99999', 'NLS_NUMERIC_CHARACTERS = '',.''')
FROM aads_hv_freeze;
-- Freeze rapportage over voorgaande freezes naar DWH
CREATE OR REPLACE VIEW aads_v_dwh_hv_freeze
(
kwartaal,
locatie_code,
gebouw_code,
bouwdeel,
verdieping,
ruimtenummer,
ruimteomschrijving,
ruimtefunctie,
m2,
huurder_nummer,
afdelingsomschrijving,
fdc,
bezetting,
tarief_kale_huur,
tarief_servicekosten,
tarief_fmkosten,
werkplek_tarief,
aantal_werplekken,
huisbaas,
totaal_kale_huur,
totaal_servicekosten,
totaal_fmkosten,
totaal_werkplek,
totaal
)
AS
SELECT kwartaal,
locatie_code,
gebouw_code,
bouwdeel,
verdieping,
ruimtenummer,
ruimteomschrijving,
ruimtefunctie,
m2,
huurder_nummer,
afdelingsomschrijving,
fdc,
bezetting,
tarief_kale_huur,
tarief_servicekosten,
tarief_fmkosten,
werkplek_tarief,
aantal_werplekken,
huisbaas,
totaal_kale_huur,
totaal_servicekosten,
totaal_fmkosten,
totaal_werkplek,
totaal
FROM aads_hv_freeze;
-- en maak deze view beschikbaar voor het DWH
GRANT SELECT ON aads_v_dwh_hv_freeze TO aafm;
-- Thema's voor huisbaas en gedelegeerde huisbaas.
CREATE OR REPLACE VIEW aads_v_thema_huisbaas
(
alg_ruimte_key,
waarde
)
AS
SELECT alg_onrgoed_key, alg_onrgoedkenmerk_waarde
FROM alg_onrgoedkenmerk ogk, alg_ruimte ar
WHERE alg_kenmerk_key = 1200
AND alg_onrgoedkenmerk_verwijder IS NULL
AND ar.alg_ruimte_key = ogk.alg_onrgoed_key
AND ar.alg_ruimte_verwijder IS NULL;
CREATE OR REPLACE VIEW aads_v_thema_ged_huisbaas
(
alg_ruimte_key,
waarde
)
AS
SELECT alg_onrgoed_key, alg_onrgoedkenmerk_waarde
FROM alg_onrgoedkenmerk ogk, alg_ruimte ar
WHERE alg_kenmerk_key = 1240
AND alg_onrgoedkenmerk_verwijder IS NULL
AND ar.alg_ruimte_key = ogk.alg_onrgoed_key
AND ar.alg_ruimte_verwijder IS NULL;
CREATE OR REPLACE VIEW aads_v_thema_bouwdeel
(
alg_ruimte_key,
waarde,
waarde_key -- Deze heb je nodig als je er een sleepfunctie van wilt maken, vullen we nu default met 1, maar als ze dit willen gebruken dan moet kenmerk_key 1060 een listbox worden
)
AS
SELECT alg_onrgoed_key, alg_onrgoedkenmerk_waarde, 1
FROM alg_onrgoedkenmerk ogk, alg_ruimte ar
WHERE alg_kenmerk_key = 1060
AND alg_onrgoedkenmerk_verwijder IS NULL
AND ar.alg_ruimte_key = ogk.alg_onrgoed_key
AND ar.alg_ruimte_verwijder IS NULL;
-- SLEEPFUNCTIE -- Actie/trigger bij sleur+pleur van thema Bouwdeel
CREATE OR REPLACE TRIGGER aads_t_thema_bouwdeel_i_iu
INSTEAD OF INSERT OR UPDATE
ON aads_v_thema_bouwdeel
BEGIN
DELETE FROM alg_onrgoedkenmerk ok
WHERE ok.alg_onrgoed_key = :new.alg_ruimte_key
AND ok.alg_kenmerk_key = 1060
AND ok.alg_onrgoed_niveau='R';
INSERT INTO alg_onrgoedkenmerk (alg_onrgoed_key, alg_onrgoed_niveau, alg_kenmerk_key, alg_onrgoedkenmerk_waarde)
VALUES (:new.alg_ruimte_key, 'R', 1060, to_char(:new.waarde));
EXCEPTION
WHEN OTHERS
THEN NULL;
END;
/
------ 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