897 lines
38 KiB
SQL
897 lines
38 KiB
SQL
--
|
|
-- $Id$
|
|
--
|
|
-- Script containing customer specific sql statements for the FACILITOR database
|
|
|
|
DEFINE thisfile = 'REME.SQL'
|
|
DEFINE dbuser = '^REME'
|
|
|
|
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 ------
|
|
|
|
CREATE OR REPLACE PACKAGE REME
|
|
AS
|
|
FUNCTION change_delimitor (p_string VARCHAR2,
|
|
p_delimitor VARCHAR2)
|
|
RETURN VARCHAR2;
|
|
|
|
END;
|
|
/
|
|
|
|
CREATE OR REPLACE PACKAGE BODY REME
|
|
AS
|
|
|
|
FUNCTION change_delimitor (p_string VARCHAR2,
|
|
p_delimitor VARCHAR2)
|
|
RETURN VARCHAR2
|
|
AS
|
|
v_field VARCHAR2 (1000) := 'QueQuLeQue';
|
|
v_result VARCHAR2 (2000);
|
|
v_line VARCHAR2 (2000);
|
|
BEGIN
|
|
v_line := p_string;
|
|
|
|
WHILE v_line IS NOT NULL
|
|
LOOP
|
|
fac.imp_getfield (v_line, p_delimitor, v_field);
|
|
v_result := v_result || '"' || v_field || '";';
|
|
END LOOP;
|
|
|
|
RETURN v_result;
|
|
EXCEPTION
|
|
WHEN OTHERS
|
|
THEN
|
|
RETURN NULL;
|
|
END;
|
|
|
|
|
|
END;
|
|
/
|
|
|
|
|
|
-- script om dagelijks terugkerende scripts aan te roepen.
|
|
CREATE OR REPLACE PROCEDURE reme_select_daily_task (p_applname IN VARCHAR2, p_applrun IN VARCHAR2)
|
|
AS
|
|
BEGIN
|
|
|
|
aaxx_daily_task (p_applname, p_applrun);
|
|
|
|
END;
|
|
/
|
|
|
|
|
|
-- exact verkoop
|
|
CREATE OR REPLACE VIEW reme_v_export_exact_verkoop (RESULT, result_order) AS SELECT RESULT, result_order FROM aaxx_v_export_exact_verkoop;
|
|
CREATE OR REPLACE PROCEDURE reme_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 reme_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 reme_v_export_exact_verkoop_vj (RESULT, result_order) AS SELECT RESULT, result_order FROM aaxx_v_export_exact_verkoop;
|
|
CREATE OR REPLACE PROCEDURE reme_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 reme_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 projecturen (XML)
|
|
CREATE OR REPLACE VIEW reme_v_export_exact_uren (result, result_order)
|
|
AS SELECT result, result_order FROM aaxx_v_export_exact_uren_xml;
|
|
CREATE OR REPLACE PROCEDURE reme_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 reme_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;
|
|
/
|
|
|
|
-- bundel catering
|
|
--- Voor REME geldt kostenplaatsen op gebouwniveau
|
|
CREATE OR REPLACE VIEW reme_v_catering_kpn
|
|
(
|
|
res_rsv_ruimte_key,
|
|
res_srtactiviteit_soort,
|
|
res_rsv_artikel_key,
|
|
res_rsv_artikel_prijs,
|
|
res_rsv_artikel_levering,
|
|
alg_ruimte_key,
|
|
alg_gebouw_key,
|
|
prs_bedrijf_key,
|
|
prs_kostenplaats_key,
|
|
bu_kostenplaats_nr,
|
|
gebouw_kostenplaats_nr
|
|
)
|
|
AS
|
|
SELECT rrr.res_rsv_ruimte_key,
|
|
srt.res_srtactiviteit_soort, -- = 0 is ruimte-reservering, 1 is roomservice
|
|
res_rsv_artikel_key,
|
|
res_rsv_artikel_prijs,
|
|
res_rsv_artikel_levering,
|
|
r.alg_ruimte_key,
|
|
(SELECT g.alg_gebouw_key
|
|
FROM alg_v_onroerendgoed v, alg_gebouw g, alg_locatie l
|
|
WHERE v.alg_ruimte_key = r.alg_ruimte_key
|
|
AND v.alg_gebouw_key = g.alg_gebouw_key
|
|
AND g.alg_locatie_key = l.alg_locatie_key)
|
|
alg_locatie_omschrijving,
|
|
rdp.prs_bedrijf_key,
|
|
k.prs_kostenplaats_key,
|
|
aaxx_get_top_kpn_nr(fac.safe_to_number (aaxx_get_top_kpn_key (k.prs_kostenplaats_key)))
|
|
bu_kostenplaats_nr,
|
|
aaxx_get_debiteur_gebouw (
|
|
(SELECT l.alg_locatie_code
|
|
FROM alg_v_onroerendgoed v, alg_gebouw g, alg_locatie l
|
|
WHERE v.alg_ruimte_key = r.alg_ruimte_key
|
|
AND v.alg_gebouw_key = g.alg_gebouw_key
|
|
AND g.alg_locatie_key = l.alg_locatie_key),
|
|
(SELECT g.alg_gebouw_code
|
|
FROM alg_v_onroerendgoed v, alg_gebouw g
|
|
WHERE v.alg_ruimte_key = r.alg_ruimte_key
|
|
AND v.alg_gebouw_key = g.alg_gebouw_key))
|
|
gebouw_kostenplaats_nr
|
|
FROM res_rsv_ruimte rrr,
|
|
res_rsv_artikel rra,
|
|
res_artikel ra,
|
|
res_disc_params rdp,
|
|
prs_kostenplaats k,
|
|
res_activiteit act,
|
|
res_srtactiviteit srt,
|
|
(SELECT rrr.res_rsv_ruimte_key,
|
|
CASE
|
|
WHEN rrr.alg_ruimte_key IS NULL
|
|
AND rrr.res_ruimte_opstel_key IS NOT NULL
|
|
THEN
|
|
(SELECT MAX (rar.alg_ruimte_key)
|
|
FROM res_v_ruimte_opstel_gegevens rog,
|
|
res_alg_ruimte rar
|
|
WHERE rog.res_ruimte_opstel_key =
|
|
rrr.res_ruimte_opstel_key
|
|
AND rog.res_ruimte_key = rar.res_ruimte_key
|
|
AND rar.res_alg_ruimte_verwijder IS NULL)
|
|
WHEN rrr.alg_ruimte_key IS NOT NULL
|
|
AND rrr.res_ruimte_opstel_key IS NULL
|
|
THEN
|
|
(SELECT avrg.alg_ruimte_key
|
|
FROM alg_v_ruimte_gegevens avrg
|
|
WHERE avrg.alg_ruimte_key = rrr.alg_ruimte_key)
|
|
ELSE
|
|
NULL
|
|
END
|
|
AS alg_ruimte_key
|
|
FROM res_rsv_ruimte rrr) r
|
|
WHERE rrr.res_rsv_ruimte_key = rra.res_rsv_ruimte_key
|
|
AND rrr.res_rsv_ruimte_key = r.res_rsv_ruimte_key
|
|
AND rra.res_artikel_key = ra.res_artikel_key
|
|
AND ra.res_discipline_key = rdp.res_ins_discipline_key
|
|
AND rdp.prs_bedrijf_key IS NOT NULL
|
|
AND rrr.res_rsv_ruimte_verwijder IS NULL
|
|
AND rra.res_rsv_artikel_verwijder IS NULL
|
|
AND rra.res_status_bo_key = 5
|
|
AND rrr.prs_kostenplaats_key = k.prs_kostenplaats_key(+)
|
|
AND rrr.res_activiteit_key = act.res_activiteit_key
|
|
AND act.res_srtactiviteit_key = srt.res_srtactiviteit_key;
|
|
|
|
CREATE OR REPLACE VIEW reme_v_export_bundel_catering
|
|
(
|
|
result,
|
|
result_order
|
|
)
|
|
AS
|
|
SELECT res_rsv_artikel_key || ';' || res_rsv_artikel_prijs result,
|
|
res_rsv_artikel_key result_order
|
|
FROM reme_v_catering_kpn;
|
|
|
|
|
|
CREATE OR REPLACE PROCEDURE reme_export_bundel_catering (
|
|
p_applname IN VARCHAR2,
|
|
p_applrun IN VARCHAR2,
|
|
p_filedir IN VARCHAR2,
|
|
p_filename IN VARCHAR2)
|
|
AS
|
|
|
|
CURSOR c_bedr
|
|
IS
|
|
SELECT prs_bedrijf_key
|
|
FROM res_disc_params
|
|
WHERE prs_bedrijf_key IS NOT NULL
|
|
GROUP BY prs_bedrijf_key;
|
|
|
|
-- Voor Vermaat geldt per Gebouw-kostenplaats 1 gebundelde opdracht
|
|
CURSOR c_gebouw_kp (lev_date DATE, p_bedrijf_key NUMBER)
|
|
IS
|
|
SELECT gebouw_kostenplaats_nr, alg_gebouw_key, sum(res_rsv_artikel_prijs) prijs
|
|
FROM reme_v_catering_kpn
|
|
WHERE res_rsv_artikel_levering < lev_date
|
|
AND prs_bedrijf_key = p_bedrijf_key
|
|
GROUP BY gebouw_kostenplaats_nr, alg_gebouw_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_alg_locatie_key NUMBER;
|
|
v_mld_opdr_key NUMBER;
|
|
v_prs_bedrijf_key NUMBER;
|
|
v_mld_opdr_bedrijfopdr_volgnr NUMBER;
|
|
v_aanvrager NUMBER;
|
|
v_mld_workorder_key NUMBER;
|
|
v_mld_stdmelding_key NUMBER;
|
|
v_prs_kostenplaats_key NUMBER;
|
|
v_prs_kostenplaat_key_fallback NUMBER;
|
|
v_date DATE;
|
|
v_month VARCHAR2(30);
|
|
v_count NUMBER;
|
|
BEGIN
|
|
-- Facilitor
|
|
v_aanvrager := 4;
|
|
-- stdmelding key voor recharge
|
|
v_mld_stdmelding_key := 602;
|
|
-- key van opdrachttype workorder
|
|
v_mld_workorder_key := 1;
|
|
-- dummy kostenplaats bij de melding in geval deze niet bepaald kan worden
|
|
v_prs_kostenplaat_key_fallback := 141; -- maar gewoon op 03900001 - Remeha NL zetten....
|
|
|
|
v_errormsg := 'Bepaal einddatum';
|
|
|
|
-- wat is de eerste dag van de huidige maand
|
|
v_date := TO_DATE (TO_CHAR (SYSDATE, 'yyyymm') || '01', 'yyyymmdd');
|
|
v_month := REPLACE(TO_CHAR (v_date-1, 'month-yyyy', 'NLS_DATE_LANGUAGE = ''dutch'''), ' ', '');
|
|
|
|
SELECT COUNT (mld_opdr_key)
|
|
INTO v_count
|
|
FROM mld_opdr
|
|
WHERE mld_opdr_omschrijving = 'Cateringreserveringen maand: ' || v_month;
|
|
|
|
IF v_count > 0
|
|
THEN
|
|
fac.writelog (
|
|
p_applname,
|
|
'E',
|
|
'Catering export is al eerder uitgevoerd.',
|
|
'Controleer opdrachten met omschrijving: '
|
|
|| 'Cateringreserveringen maand: ' || v_month);
|
|
ELSE
|
|
FOR rec1 IN c_bedr
|
|
LOOP
|
|
BEGIN
|
|
FOR rec2 IN c_gebouw_kp (v_date, rec1.prs_bedrijf_key)
|
|
LOOP
|
|
BEGIN
|
|
|
|
-- Voor gebouw_kostenplaatsen wordt vanuit functie aaxx_get_debiteur_gebouw 'Onbekende gebouw-debiteur:' teruggegeven.
|
|
--- Wellicht beter om wel gewoon altijd de verwerking te doen. In detailverslag reme_v_rap_catering_inkoop is de onbekende gebouw-debiteur dan ook in beeld en kan dan op gebouw_kaart nog aangepast worden.
|
|
IF INSTR(rec2.gebouw_kostenplaats_nr, 'Onbekende gebouw-debiteur') = 0
|
|
THEN
|
|
|
|
-- controleer of ik een melding heb op dit gebouw
|
|
BEGIN
|
|
v_errormsg := 'Opzoeken catering melding';
|
|
|
|
SELECT g.alg_locatie_key
|
|
INTO v_alg_locatie_key
|
|
FROM alg_gebouw g
|
|
WHERE g.alg_gebouw_key = rec2.alg_gebouw_key ;
|
|
|
|
SELECT mld_melding_key
|
|
INTO v_mld_melding_key
|
|
FROM mld_melding
|
|
WHERE mld_alg_locatie_key = v_alg_locatie_key
|
|
AND mld_alg_onroerendgoed_keys = rec2.alg_gebouw_key
|
|
AND mld_stdmelding_key = v_mld_stdmelding_key
|
|
AND prs_perslid_key = v_aanvrager
|
|
AND v_date BETWEEN mld_melding_datum
|
|
AND mld_melding_einddatum + 1;
|
|
EXCEPTION
|
|
WHEN NO_DATA_FOUND
|
|
THEN
|
|
-- geen melding voor dit locatie/gebouw gevonden. Dan maken we er maar een aan.
|
|
|
|
v_errormsg := 'Aanmaken catering melding';
|
|
|
|
BEGIN
|
|
|
|
-- v_prs_kostenplaats_key bepalen
|
|
---- NL = 03900001 - Remeha NL - key 141
|
|
---- BE = 03900002 - Remeha BE - key 121
|
|
SELECT CASE WHEN r.alg_regio_upper = 'NEDERLAND' THEN 141
|
|
WHEN r.alg_regio_upper = 'BELGIE' THEN 121
|
|
ELSE v_prs_kostenplaat_key_fallback
|
|
END
|
|
v_prs_kostenplaats_key
|
|
INTO v_prs_kostenplaats_key
|
|
FROM alg_locatie l, alg_district d, alg_regio r
|
|
WHERE l.alg_locatie_key = v_alg_locatie_key
|
|
AND l.alg_district_key = d.alg_district_key
|
|
AND d.alg_regio_key = r.alg_regio_key ;
|
|
|
|
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,
|
|
v_alg_locatie_key,
|
|
rec2.alg_gebouw_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 de opdracht aanmaken
|
|
BEGIN
|
|
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,
|
|
v_prs_kostenplaats_key,
|
|
5, -- uitgegeven
|
|
v_mld_workorder_key,
|
|
v_aanvrager,
|
|
rec1.prs_bedrijf_key,
|
|
v_date - 1,
|
|
fac.datumtijdplusuitvoertijd (SYSDATE, 1, 'DAGEN'),
|
|
'MLD',
|
|
'Cateringreserveringen maand: ' || v_month,
|
|
rec2.prijs,
|
|
rec2.prijs,
|
|
v_mld_opdr_bedrijfopdr_volgnr)
|
|
RETURNING mld_opdr_key INTO v_mld_opdr_key;
|
|
|
|
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 reme_v_catering_kpn
|
|
WHERE res_rsv_artikel_levering < v_date
|
|
AND gebouw_kostenplaats_nr = rec2.gebouw_kostenplaats_nr
|
|
AND alg_gebouw_key = rec2.alg_gebouw_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);
|
|
|
|
v_errormsg := 'Update melding status';
|
|
mld.updatemeldingstatus (v_mld_melding_key, 0, v_aanvrager); -- Facilitor
|
|
-- meld de opdracht af
|
|
MLD.setopdrachtstatus (v_mld_opdr_key, 6, v_aanvrager);
|
|
-- en zet de opdracht op afgerond zodat deze direct in het factuurvoorstel komt.
|
|
MLD.setopdrachtstatus (v_mld_opdr_key, 9, v_aanvrager);
|
|
|
|
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;
|
|
|
|
|
|
ELSE
|
|
fac.writelog (p_applname, 'E', 'Een bedrag van: ' || rec2.prijs || ' euro kan niet aan een kostenplaats gekoppeld worden!', '');
|
|
END IF;
|
|
|
|
END;
|
|
END LOOP;
|
|
|
|
END;
|
|
END LOOP;
|
|
END IF;
|
|
|
|
COMMIT;
|
|
END;
|
|
/
|
|
|
|
CREATE OR REPLACE VIEW reme_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,
|
|
afdeling,
|
|
gebouw_kostenplaats_nr
|
|
)
|
|
AS
|
|
SELECT TO_CHAR (rra.res_rsv_artikel_verwerkt, 'yyyy-mm-dd'),
|
|
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,
|
|
k.prs_kostenplaats_nr || '-' || k.prs_kostenplaats_omschrijving,
|
|
aaxx_get_debiteur_gebouw (l.alg_locatie_code, g.alg_gebouw_code)
|
|
FROM res_rsv_ruimte rrr,
|
|
aaxx_bundel_catering_ref 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,
|
|
mld_opdr o,
|
|
( 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.mld_opdr_key = o.mld_opdr_key(+)
|
|
AND o.mld_uitvoerende_keys = b.prs_bedrijf_key(+);
|
|
|
|
|
|
-- Rapportviews
|
|
|
|
-- Deviatie bronview tbv REME#81053
|
|
--- Op basis van AAAR#80370
|
|
CREATE OR REPLACE VIEW reme_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,
|
|
fclt_3d_discipline_key, -- vakgroep_key
|
|
fclt_3d_locatie_key,
|
|
alg_locatie_omschrijving,
|
|
gebouw_key,
|
|
alg_gebouw_naam,
|
|
melding_nr, -- actie-meldingsnr met prefix
|
|
melding_start_key, -- meldingsnummer aanvraag
|
|
vakgroep, -- vakgroep_naam
|
|
mld_stdmelding_omschrijving,
|
|
mld_stdmelding_key,
|
|
status,
|
|
datum, -- datum mld_goedkeuring
|
|
datum_m1, -- datum mld_start
|
|
aanvrager,
|
|
omschrijving,
|
|
opmerking,
|
|
opmerking_m1, -- opmerking mld_start
|
|
-- Alle kenmerkvelden op aanvraag
|
|
deviatiesoort,
|
|
titel,
|
|
impact_budget, -- keuzelijst Ja/Nee
|
|
value_convention, ---- Als geen impact dan deze tonen....
|
|
cust_dev_splits, -- keuzelijst voor splitsing in deviatie-workflow naar juiste vakgroep-goedkeuring. Bij AAAR zijn de opties: Arcadis of Assetrail
|
|
-- locatie_cluster , -- voor AAAR niet van toepassing..
|
|
gebouw, -- deze gebruiken voor verdere tekstmatige specificatie gebouw
|
|
ingangsdatum,
|
|
kostensoort_oud,
|
|
kostensoort_nieuw,
|
|
oud_budget,
|
|
nieuw_budget_jaarbasis,
|
|
nieuw_budget_jaarlopend,
|
|
deviatiebedrag_jaarlopend,
|
|
entiteit,
|
|
investering_totaal,
|
|
omschrijving_investering,
|
|
leverancier,
|
|
risico_code,
|
|
po_nummer,
|
|
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,
|
|
l.alg_locatie_key
|
|
fclt_3d_locatie_key,
|
|
l.alg_locatie_omschrijving,
|
|
og.alg_gebouw_key,
|
|
og.alg_gebouw_naam,
|
|
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,
|
|
s.mld_stdmelding_omschrijving,
|
|
s.mld_stdmelding_key,
|
|
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,
|
|
mld_srtkenmerk sk,
|
|
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 = sk.mld_srtkenmerk_key
|
|
AND sk.mld_srtkenmerk_upper = 'DEVIATIESOORT')
|
|
deviatiesoort,
|
|
(SELECT mkm.mld_kenmerkmelding_waarde
|
|
FROM mld_kenmerkmelding mkm, mld_kenmerk k, mld_srtkenmerk sk
|
|
WHERE mkm.mld_melding_key = m.mld_melding_key
|
|
AND mkm.mld_kenmerk_key = k.mld_kenmerk_key
|
|
AND k.mld_srtkenmerk_key = sk.mld_srtkenmerk_key
|
|
AND sk.mld_srtkenmerk_upper = 'TITEL')
|
|
titel,
|
|
(SELECT fu.fac_usrdata_omschr
|
|
FROM mld_kenmerkmelding mkm,
|
|
mld_kenmerk k,
|
|
mld_srtkenmerk sk,
|
|
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 = sk.mld_srtkenmerk_key
|
|
AND sk.mld_srtkenmerk_upper = 'IMPACT OP BUDGET')
|
|
impact_budget,
|
|
(SELECT fu.fac_usrdata_omschr
|
|
FROM mld_kenmerkmelding mkm,
|
|
mld_kenmerk k,
|
|
mld_srtkenmerk sk,
|
|
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 = sk.mld_srtkenmerk_key
|
|
AND sk.mld_srtkenmerk_upper = 'VALUE CONVENTION')
|
|
value_convention,
|
|
(SELECT fu.fac_usrdata_omschr
|
|
FROM mld_kenmerkmelding mkm,
|
|
mld_kenmerk k,
|
|
mld_srtkenmerk sk,
|
|
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 = sk.mld_srtkenmerk_key
|
|
AND sk.mld_srtkenmerk_upper = 'CUST_DEV_SPLITS')
|
|
cust_dev_splits,
|
|
-- locaie_cluster -- eigen tabel - nvt voor aaar
|
|
(SELECT mkm.mld_kenmerkmelding_waarde
|
|
FROM mld_kenmerkmelding mkm, mld_kenmerk k, mld_srtkenmerk sk
|
|
WHERE mkm.mld_melding_key = m.mld_melding_key
|
|
AND mkm.mld_kenmerk_key = k.mld_kenmerk_key
|
|
AND k.mld_srtkenmerk_key = sk.mld_srtkenmerk_key
|
|
AND sk.mld_srtkenmerk_upper = 'GEBOUW')
|
|
gebouw,
|
|
(SELECT TO_CHAR(TO_DATE(mkm.mld_kenmerkmelding_waarde,'dd-mm-yyyy'),'dd-mm-yyyy')
|
|
FROM mld_kenmerkmelding mkm, mld_kenmerk k, mld_srtkenmerk sk
|
|
WHERE mkm.mld_melding_key = m.mld_melding_key
|
|
AND mkm.mld_kenmerk_key = k.mld_kenmerk_key
|
|
AND k.mld_srtkenmerk_key = sk.mld_srtkenmerk_key
|
|
AND sk.mld_srtkenmerk_upper = 'INGANGSDATUM')
|
|
ingangsdatum,
|
|
(SELECT k.prs_kostensoort_omschrijving
|
|
FROM mld_kenmerkmelding mkm, mld_kenmerk k, mld_srtkenmerk sk, 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 = sk.mld_srtkenmerk_key
|
|
AND sk.mld_srtkenmerk_upper = 'KOSTENSOORT OUD')
|
|
kostensoort_oud,
|
|
(SELECT k.prs_kostensoort_omschrijving
|
|
FROM mld_kenmerkmelding mkm, mld_kenmerk k, mld_srtkenmerk sk, 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 = sk.mld_srtkenmerk_key
|
|
AND sk.mld_srtkenmerk_upper = 'KOSTENSOORT NIEUW')
|
|
kostensoort_nieuw,
|
|
(SELECT mkm.mld_kenmerkmelding_waarde
|
|
FROM mld_kenmerkmelding mkm, mld_kenmerk k, mld_srtkenmerk sk
|
|
WHERE mkm.mld_melding_key = m.mld_melding_key
|
|
AND mkm.mld_kenmerk_key = k.mld_kenmerk_key
|
|
AND k.mld_srtkenmerk_key = sk.mld_srtkenmerk_key
|
|
AND sk.mld_srtkenmerk_upper = 'OUD BUDGET')
|
|
oud_budget,
|
|
(SELECT mkm.mld_kenmerkmelding_waarde
|
|
FROM mld_kenmerkmelding mkm, mld_kenmerk k, mld_srtkenmerk sk
|
|
WHERE mkm.mld_melding_key = m.mld_melding_key
|
|
AND mkm.mld_kenmerk_key = k.mld_kenmerk_key
|
|
AND k.mld_srtkenmerk_key = sk.mld_srtkenmerk_key
|
|
AND sk.mld_srtkenmerk_upper = 'NIEUW BUDGET (OP JAARBASIS)')
|
|
nieuw_budget_jaarbasis,
|
|
(SELECT mkm.mld_kenmerkmelding_waarde
|
|
FROM mld_kenmerkmelding mkm, mld_kenmerk k, mld_srtkenmerk sk
|
|
WHERE mkm.mld_melding_key = m.mld_melding_key
|
|
AND mkm.mld_kenmerk_key = k.mld_kenmerk_key
|
|
AND k.mld_srtkenmerk_key = sk.mld_srtkenmerk_key
|
|
AND sk.mld_srtkenmerk_upper = 'NIEUW BUDGET (LOPEND JAAR)')
|
|
nieuw_budget_jaarlopend,
|
|
(SELECT mkm.mld_kenmerkmelding_waarde
|
|
FROM mld_kenmerkmelding mkm, mld_kenmerk k, mld_srtkenmerk sk
|
|
WHERE mkm.mld_melding_key = m.mld_melding_key
|
|
AND mkm.mld_kenmerk_key = k.mld_kenmerk_key
|
|
AND k.mld_srtkenmerk_key = sk.mld_srtkenmerk_key
|
|
AND sk.mld_srtkenmerk_upper = 'DEVIATIEBEDRAG (LOPENDE JAAR)')
|
|
deviatiebedrag_lopendjaar,
|
|
(SELECT mkm.mld_kenmerkmelding_waarde
|
|
FROM mld_kenmerkmelding mkm, mld_kenmerk k, mld_srtkenmerk sk
|
|
WHERE mkm.mld_melding_key = m.mld_melding_key
|
|
AND mkm.mld_kenmerk_key = k.mld_kenmerk_key
|
|
AND k.mld_srtkenmerk_key = sk.mld_srtkenmerk_key
|
|
AND sk.mld_srtkenmerk_upper = 'ENTITEIT')
|
|
entiteit,
|
|
(SELECT mkm.mld_kenmerkmelding_waarde
|
|
FROM mld_kenmerkmelding mkm, mld_kenmerk k, mld_srtkenmerk sk
|
|
WHERE mkm.mld_melding_key = m.mld_melding_key
|
|
AND mkm.mld_kenmerk_key = k.mld_kenmerk_key
|
|
AND k.mld_srtkenmerk_key = sk.mld_srtkenmerk_key
|
|
AND sk.mld_srtkenmerk_upper = 'INVESTERING TOTAAL')
|
|
investering_totaal,
|
|
(SELECT mkm.mld_kenmerkmelding_waarde
|
|
FROM mld_kenmerkmelding mkm, mld_kenmerk k, mld_srtkenmerk sk
|
|
WHERE mkm.mld_melding_key = m.mld_melding_key
|
|
AND mkm.mld_kenmerk_key = k.mld_kenmerk_key
|
|
AND k.mld_srtkenmerk_key = sk.mld_srtkenmerk_key
|
|
AND sk.mld_srtkenmerk_upper = 'OMSCHRIJVING INVESTERING')
|
|
omschrijving_investering,
|
|
(SELECT b.prs_bedrijf_naam
|
|
FROM mld_kenmerkmelding mkm, mld_kenmerk k, mld_srtkenmerk sk, 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 = sk.mld_srtkenmerk_key
|
|
AND sk.mld_srtkenmerk_upper = 'LEVERANCIER')
|
|
leverancier,
|
|
(SELECT fu.fac_usrdata_omschr
|
|
FROM mld_kenmerkmelding mkm,
|
|
mld_kenmerk k,
|
|
mld_srtkenmerk sk,
|
|
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 = sk.mld_srtkenmerk_key
|
|
AND sk.mld_srtkenmerk_upper = 'RISICOCODE')
|
|
risico_code,
|
|
(SELECT mkm.mld_kenmerkmelding_waarde
|
|
FROM mld_kenmerkmelding mkm, mld_kenmerk k, mld_srtkenmerk sk
|
|
WHERE mkm.mld_melding_key = m.mld_melding_key
|
|
AND mkm.mld_kenmerk_key = k.mld_kenmerk_key
|
|
AND k.mld_srtkenmerk_key = sk.mld_srtkenmerk_key
|
|
AND sk.mld_srtkenmerk_upper = 'PO NUMMER OPDRACHTGEVER')
|
|
po_nummer,
|
|
(SELECT mkm.mld_kenmerkmelding_waarde
|
|
FROM mld_kenmerkmelding mkm, mld_kenmerk k, mld_srtkenmerk sk
|
|
WHERE mkm.mld_melding_key = m.mld_melding_key
|
|
AND mkm.mld_kenmerk_key = k.mld_kenmerk_key
|
|
AND k.mld_srtkenmerk_key = sk.mld_srtkenmerk_key
|
|
AND sk.mld_srtkenmerk_upper = 'CO NUMMER HEYDAY NAAR LEVERANCIER')
|
|
co_nummer
|
|
FROM mld_melding m,
|
|
mld_melding m1,
|
|
alg_v_allonrgoed_gegevens og,
|
|
alg_locatie l,
|
|
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,
|
|
ins_srtdiscipline sd,
|
|
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 sd.ins_srtdiscipline_key = md.ins_srtdiscipline_key
|
|
AND md.ins_srtdiscipline_key = 81
|
|
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 md.ins_srtdiscipline_key = 81
|
|
AND INSTR(lower(md.ins_discipline_omschrijving),'goedkeuring') > 0 -- daarbinnen alle vakgroepen tbv goedkeuring
|
|
AND md.ins_discipline_key = pf.ins_discipline_key
|
|
AND m.mld_alg_locatie_key = l.alg_locatie_key(+)
|
|
AND m.mld_alg_onroerendgoed_keys = og.alg_onroerendgoed_keys(+) ;
|
|
|
|
|
|
|
|
------ 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
|
|
|