Files
Customer/AA/AASA/aasa.sql
2024-12-30 14:29:20 +00:00

2450 lines
105 KiB
SQL
Raw Blame History

--
-- $Id$
--
-- Script containing customer specific configuration sql statements for AASA: Arcadis Aqumen Facility Management for Sabic
DEFINE thisfile = 'AASA.SQL'
DEFINE dbuser = '^AASA'
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 aasa_select_daily_task (p_applname IN VARCHAR2, p_applrun IN VARCHAR2)
AS
CURSOR c
IS
SELECT ins_deel_omschrijving,
ins_deel_mjb_score1,
ins_deel_mjb_score2,
ins_srtcontroledl_xcp_key,
(SELECT ins_kenmerkdeel_waarde
FROM ins_kenmerkdeel kd, ins_kenmerk k, ins_srtkenmerk sk
WHERE kd.ins_deel_key = d.ins_deel_key
AND kd.ins_kenmerk_key = k.ins_kenmerk_key
AND k.ins_srtkenmerk_key = sk.ins_srtkenmerk_key
AND sk.ins_srtkenmerk_omschrijving = 'Kritische asset')
kritisch,
(SELECT TO_CHAR (ins_deelsrtcontrole_datum_org, 'YYYY')
FROM ins_deelsrtcontrole dsc
WHERE dsc.ins_deel_key = d.ins_deel_key
AND dsc.ins_srtcontrole_key = x.ins_srtcontrole_key
AND dsc.ins_deelsrtcontrole_status = 0)
orgdatum,
COALESCE (fac.nextcyclusdate (
COALESCE (
(SELECT MAX (ins_deelsrtcontrole_datum)
FROM ins_deelsrtcontrole dsc
WHERE ins_deelsrtcontrole_status <> 0
AND dsc.ins_deel_key =
d.ins_deel_key
AND dsc.ins_srtcontrole_key =
x.ins_srtcontrole_key),
DECODE (x.ins_srtcontroledl_xcp_startdat,
NULL, d.ins_deel_aanmaak,
TO_DATE (NULL))),
1, -- interval
ins_srtcontroledl_xcp_eenheid,
ins_srtcontroledl_xcp_periode,
ins_srtcontroledl_xcp_bits,
1,
1),
ins_srtcontroledl_xcp_startdat) volgende
FROM ins_deel d,
ins_srtcontroledl_xcp x,
ins_srtcontrole sc,
ctr_disc_params dp
WHERE d.ins_deel_key = x.ins_deel_key
AND x.ins_srtcontrole_key = sc.ins_srtcontrole_key
AND sc.ctr_discipline_key = dp.ctr_ins_discipline_key
AND dp.ctr_disc_params_ismjob = 1;
v_prio NUMBER;
v_freeze VARCHAR2 (4);
BEGIN
-- Conditiescores worden vanaf 2020.1 in het proces berekend, per melding en ook direct naar het object.
-- Deze object-scores worden moeten vervolgens geagregeerd worden naar gebouw en locatieniveau. Doen we dagelijks dmv onderstaande procedure:
---- Call this procedure to update aggregate scores (for a location/building)
---- PROCEDURE update_aggr_scores (p_locatie_key IN NUMBER DEFAULT NULL, p_gebouw_key IN NUMBER DEFAULT NULL);
cnd.update_aggr_scores (NULL, NULL);
-- pas de urgentie bij de taken aan
SELECT fac.getSetting ('mjb_freeze_year')
INTO v_freeze
FROM DUAL;
FOR rec IN c
LOOP
-- kritische installatie en planning dit jaar of vorig jaar niet uitgevoerd.
IF rec.kritisch = 1
AND (TO_CHAR (rec.volgende, 'yyyy') = v_freeze OR rec.orgdatum <= v_freeze)
THEN
v_prio := 3;
-- planning vorig jaar + storingshistorie
ELSIF rec.orgdatum < v_freeze
THEN
v_prio := 3;
--prioriteit < 4
ELSIF rec.ins_deel_mjb_score2 < 4 OR rec.ins_deel_mjb_score1 >= 4
THEN
v_prio := 3;
ELSIF rec.ins_deel_mjb_score2 < 7
THEN
v_prio := 2;
ELSE
v_prio := 1;
END IF;
UPDATE ins_srtcontroledl_xcp x
SET ins_srtcontroledl_xcp_prio = v_prio
WHERE x.ins_srtcontroledl_xcp_key = rec.ins_srtcontroledl_xcp_key;
END LOOP;
aaxx_daily_task (p_applname, p_applrun);
END;
/
-- budgettracker overrules
CREATE OR REPLACE VIEW aasa_v_export_budget_tracker (RESULT, result_order) AS SELECT RESULT, result_order FROM aaxx_v_export_budget_tracker;
-- export overrules
-- exact
-- gaat direct naar aaxx
-- bundel catering
-- Als de kostenplaats bij de reservering begint met 77 dan wordt de (top)kostenplaats bepaald a.d.h.v. de cateraar.
-- Deze view is basis voor cursur in bundel-export maar wordt tevens gebruikt om vooraf in beeld te krijgen voor Finance welke reservering door ontbrekende BU_kostenplaats buiten de bundeling vallen
CREATE OR REPLACE VIEW aasa_v_catering_kpn
(
res_rsv_ruimte_key,
res_reservering_nr,
res_rsv_artikel_key,
res_rsv_artikel_prijs,
res_artikel_kostenalgemeen_tot,
res_rsv_artikel_levering,
prs_bedrijf_key,
prs_bedrijf_naam,
prs_kostenplaats_omschrijving, -- kostenplaats in reservering
bu_kostenplaats_key, -- de vertaalde bu_kostenplaats waar de bundel-opdracht op komt..
bu_kostenplaats_omschrijving,
alg_ruimte_key,
alg_gebouw_key,
alg_gebouw_omschrijving,
alg_locatie_key,
alg_locatie_omschrijving
)
AS
SELECT v.res_rsv_ruimte_key,
v.res_reservering_nr,
v.res_rsv_artikel_key,
v.res_rsv_artikel_prijs,
v.res_artikel_kostenalgemeen_tot,
v.res_rsv_artikel_levering,
v.prs_bedrijf_key,
v.prs_bedrijf_naam,
v.prs_kostenplaats_omschrijving, -- kostenplaats in reservering
v.bu_kostenplaats_key, -- de vertaalde bu_kostenplaats waar de bundel-opdracht op komt..
CASE
WHEN v.bu_kostenplaats_key IS NOT NULL
THEN
(SELECT kp.prs_kostenplaats_nr
|| ' - '
|| kp.prs_kostenplaats_omschrijving
FROM prs_kostenplaats kp
WHERE prs_kostenplaats_key = v.bu_kostenplaats_key)
ELSE
NULL
END bu_kostenplaats_omschrijving,
v.alg_ruimte_key,
v.alg_gebouw_key,
CASE
WHEN v.alg_gebouw_key IS NOT NULL
THEN
(SELECT g.alg_gebouw_omschrijving
FROM alg_gebouw g
WHERE g.alg_gebouw_key = v.alg_gebouw_key)
ELSE
NULL
END alg_gebouw_omschrijving,
v.alg_locatie_key,
CASE
WHEN v.alg_locatie_key IS NOT NULL
THEN
(SELECT l.alg_locatie_omschrijving
FROM alg_locatie l
WHERE l.alg_locatie_key = v.alg_locatie_key)
ELSE
NULL
END alg_locatie_naam
FROM ( SELECT rrr.res_rsv_ruimte_key,
rrr.res_reservering_key || '/' || rrr.res_rsv_ruimte_volgnr
res_reservering_nr,
res_rsv_artikel_key,
res_rsv_artikel_prijs,
ra.res_artikel_kostenalgemeen * rra.res_rsv_artikel_aantal
res_artikel_kostenalgemeen_tot,
res_rsv_artikel_levering,
rdp.prs_bedrijf_key,
b.prs_bedrijf_naam,
k.prs_kostenplaats_nr
|| ' - '
|| k.prs_kostenplaats_omschrijving
prs_kostenplaats_omschrijving,
DECODE (
SUBSTR (k.prs_kostenplaats_nr, 1, 2),
'77', DECODE (rdp.prs_bedrijf_key, 66700, 4270 -- Compass Group NL h.o.d.n. Eurest (913910)
, 247) -- App<70>l (101025)
,
(SELECT DISTINCT ta.prs_kostenplaats_key
FROM prs_afdeling a,
prs_v_afdeling_boom ab,
prs_afdeling ta
WHERE rrr.prs_kostenplaats_key =
a.prs_kostenplaats_key
AND a.prs_afdeling_key = ab.prs_afdeling_key
AND ta.prs_bedrijf_key IS NOT NULL
AND ta.prs_afdeling_verwijder IS NULL
AND a.prs_afdeling_verwijder IS NULL
AND ab.prs_afdeling_key1 = ta.prs_afdeling_key))
bu_kostenplaats_key,
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_gebouw_key,
(SELECT l.alg_locatie_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_key
FROM res_rsv_ruimte rrr,
res_rsv_artikel rra,
res_artikel ra,
res_disc_params rdp,
prs_bedrijf b,
prs_kostenplaats k,
(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 rra.res_artikel_key = ra.res_artikel_key
AND ra.res_discipline_key = rdp.res_ins_discipline_key
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_rsv_ruimte_key = r.res_rsv_ruimte_key
AND rdp.prs_bedrijf_key = b.prs_bedrijf_key
ORDER BY rra.res_rsv_artikel_levering DESC) v;
CREATE OR REPLACE VIEW aasa_v_export_bundel_catering
(
result,
result_order
)
AS
SELECT res_rsv_artikel_key || ';' || res_rsv_artikel_prijs || ';' || res_artikel_kostenalgemeen_tot result,
res_rsv_artikel_key result_order
FROM aasa_v_catering_kpn;
CREATE OR REPLACE PROCEDURE aasa_export_bundel_catering (
p_applname IN VARCHAR2,
p_applrun IN VARCHAR2,
p_filedir IN VARCHAR2,
p_filename IN VARCHAR2)
AS
-- De cateraars onder SABIC
CURSOR c_bedr
IS
SELECT dp.prs_bedrijf_key, b.prs_bedrijf_naam
FROM res_disc_params dp, prs_bedrijf b
WHERE dp.prs_bedrijf_key = b.prs_bedrijf_key
GROUP BY dp.prs_bedrijf_key, b.prs_bedrijf_naam;
-- Twee soorten bundelopdrachten (per cateraar, per locatie, per BU_kp):
----- van de totaal-prijs van de catering
----- van de algemene kosten (intern administratief) die op artikel zijn vastgelegd - betreft voor Sabic het statiegeld (zie ook ticket AASA#82181)
CURSOR c_kpn (lev_date DATE, p_bedrijf_key NUMBER)
IS
SELECT v.prs_bedrijf_key,
v.alg_locatie_key,
v.bu_kostenplaats_key,
v.bedrag,
v.soort,
v.volgorde
FROM ( SELECT prs_bedrijf_key,
alg_locatie_key,
bu_kostenplaats_key,
SUM (res_rsv_artikel_prijs) bedrag,
'prijs_catering' soort,
2 volgorde
FROM aasa_v_catering_kpn
WHERE res_rsv_artikel_levering < lev_date
AND prs_bedrijf_key = p_bedrijf_key
GROUP BY prs_bedrijf_key, alg_locatie_key, bu_kostenplaats_key
UNION
SELECT prs_bedrijf_key,
alg_locatie_key,
bu_kostenplaats_key,
SUM (res_artikel_kostenalgemeen_tot) bedrag,
'kosten_algemeen' soort,
1 volgorde
FROM aasa_v_catering_kpn
WHERE res_rsv_artikel_levering < lev_date
AND prs_bedrijf_key = p_bedrijf_key
AND res_artikel_kostenalgemeen_tot IS NOT NULL
GROUP BY prs_bedrijf_key, alg_locatie_key, bu_kostenplaats_key) v
ORDER BY v.prs_bedrijf_key, v.alg_locatie_key, v.bu_kostenplaats_key, v.volgorde ;
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_prs_dienst_key NUMBER;
v_alg_gebouw_key NUMBER;
v_alg_locatie_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_month VARCHAR2(30);
v_count NUMBER;
BEGIN
-- Facilitor
v_aanvrager := 4;
-- key van opdrachttype workorder
v_mld_workorder_key := 2;
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 rec IN c_kpn (v_date, rec1.prs_bedrijf_key)
LOOP
BEGIN
v_alg_gebouw_key := NULL ;
IF rec.alg_locatie_key = 101 -- BERGEN OP ZOOM
THEN
v_mld_stdmelding_key := 2161;
v_alg_gebouw_key := 3441; -- BERGEN OP ZOOM - ADC
END IF;
IF rec.alg_locatie_key <> 101 -- AFWIJKEND VAN BERGEN OP ZOOM
THEN
v_mld_stdmelding_key := 2001;
IF rec.alg_locatie_key = 63 THEN v_alg_gebouw_key := 1823; END IF; -- GELEEN - 000-NGD
IF rec.alg_locatie_key = 64 THEN v_alg_gebouw_key := 1945; END IF; -- SITTARD - 000-907
END IF;
IF rec.bu_kostenplaats_key IS NOT NULL AND rec.alg_locatie_key IS NOT NULL AND v_alg_gebouw_key IS NOT NULL
THEN
-- controleer of ik een melding heb op deze kpn
BEGIN
v_errormsg := 'Opzoeken catering melding';
SELECT mld_melding_key
INTO v_mld_melding_key
FROM mld_melding
WHERE prs_kostenplaats_key = rec.bu_kostenplaats_key
AND mld_stdmelding_key = v_mld_stdmelding_key
AND mld_alg_locatie_key = rec.alg_locatie_key
AND mld_alg_onroerendgoed_keys = v_alg_gebouw_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,
rec.bu_kostenplaats_key,
v_mld_stdmelding_key,
v_alg_locatie_key,
v_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,
rec.bu_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 || DECODE(rec.soort, 'kosten_algemeen', ' - statiegeld', ''),
rec.bedrag,
rec.bedrag,
v_mld_opdr_bedrijfopdr_volgnr)
RETURNING mld_opdr_key INTO v_mld_opdr_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);
-- Indien van toepassing/aanwezig wordt eerst de bundelopdracht voor 'kosten_algemeen' aangemaakt (volgnr 1) en daarna de bundelopdracht voor prijs_catering.
-- Na deze laatste prijs_catering-opdracht gaan we de regels aan de mapping-tabel toevoegen en desbetreffende artikelregels op verwerkt zetten
IF rec.soort = 'prijs_catering'
THEN
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_artikel_kostenalgemeen_tot, res_rsv_artikel_verwerkt)
SELECT v_mld_opdr_key, res_rsv_artikel_key, res_rsv_artikel_prijs, res_artikel_kostenalgemeen_tot, v_date
FROM aasa_v_catering_kpn c
WHERE res_rsv_artikel_levering < v_date
AND COALESCE(c.bu_kostenplaats_key, -1) = COALESCE(rec.bu_kostenplaats_key, -1)
AND c.alg_locatie_key = rec.alg_locatie_key
AND c.prs_bedrijf_key = rec1.prs_bedrijf_key -- ivm probleem 58219
;
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 IF;
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: ' || rec.bedrag || ' euro kan niet aan een kostenplaats en/of locatie gekoppeld worden!', '');
END IF;
END;
END LOOP;
END;
END LOOP;
END IF;
COMMIT;
END;
/
CREATE OR REPLACE VIEW aasa_v_rap_catering_inkoop
(
fclt_f_exportjob,
opdrachtnr,
bu_kostenplaats,
dienst_kostensoort,
fclt_f_bedrijf,
locatie,
afleveradres,
fclt_f_afleverdatum,
tijdstip,
bestelnummer, -- reserverings_nr
fclt_f_artikelnummer,
artikelomschrijving,
interne_artikelprijs, -- stuksprijs
interne_artikelprijs_tot,
res_artikel_kostenalgemeen_st,
aantal,
artikel_btw,
fclt_f_besteller,
afdeling,
res_rsv_ruimte_key
)
AS
SELECT TO_CHAR (rra.res_rsv_artikel_verwerkt, 'yyyy-mm-dd'),
o.mld_melding_key || '/' || o.mld_opdr_bedrijfopdr_volgnr
opdrachtnr,
okp.prs_kostenplaats_nr || ' - ' || okp.prs_kostenplaats_omschrijving
bu_kostenplaats,
(SELECT ks.prs_kostensoort_oms
FROM mld_melding m, mld_stdmelding sm, prs_kostensoort ks
WHERE m.mld_melding_key = o.mld_melding_key AND m.mld_stdmelding_key = sm.mld_stdmelding_key AND sm.prs_kostensoort_key = ks.prs_kostensoort_key)
dienst_kostensoort,
prs_bedrijf_naam,
l.alg_locatie_omschrijving,
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_prijs
interne_artikelprijs_tot,
res_artikel_kostenalgemeen
res_artikel_kostenalgemeen_st,
rra.res_rsv_artikel_aantal
aantal,
COALESCE(rra.res_rsv_artikel_btw, ra.res_artikel_btw)
artikel_btw,
pf.prs_perslid_naam_full
besteller,
k.prs_kostenplaats_nr || '-' || k.prs_kostenplaats_omschrijving
afdeling,
rrr.res_rsv_ruimte_key
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,
prs_kostenplaats okp,
( 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.prs_kostenplaats_key = okp.prs_kostenplaats_key(+)
AND o.mld_uitvoerende_keys = b.prs_bedrijf_key(+) ;
CREATE OR REPLACE VIEW aasa_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,
mld_opdr o,
prs_bedrijf b,
aaxx_bundel_catering_ref 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.mld_opdr_key = o.mld_opdr_key(+)
AND o.mld_uitvoerende_keys = 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;
-- exact verkoop
CREATE OR REPLACE VIEW aasa_v_export_exact_verkoop (RESULT, result_order) AS SELECT RESULT, result_order FROM aaxx_v_export_exact_verkoop;
CREATE OR REPLACE PROCEDURE aasa_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 aasa_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 aasa_v_export_exact_verkoop_vj (RESULT, result_order) AS SELECT RESULT, result_order FROM aaxx_v_export_exact_verkoop;
CREATE OR REPLACE PROCEDURE aasa_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 aasa_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 aasa_v_export_exact_uren (result, result_order)
AS SELECT result, result_order FROM aaxx_v_export_exact_uren_xml;
CREATE OR REPLACE PROCEDURE aasa_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 aasa_export_verwerk_exact_uren (
p_applname IN VARCHAR2,
p_applrun IN VARCHAR2,
p_filedir IN VARCHAR2,
p_filename IN VARCHAR2
)
AS
BEGIN
aaxx_export_verwerk_exact_uren(p_applname, p_applrun, p_filedir, p_filename, '');
END;
/
-- import overrulles
-- import srtruimte
CREATE OR REPLACE PROCEDURE aasa_import_contract (p_import_key IN NUMBER)
AS
BEGIN
aaxx_import_contract(p_import_key);
END;
/
CREATE OR REPLACE PROCEDURE aasa_update_contract (p_import_key IN NUMBER)
AS
BEGIN
aaxx_update_contract(p_import_key);
END;
/
CREATE OR REPLACE PROCEDURE aasa_import_ruimte (p_import_key IN NUMBER)
AS
BEGIN
aaxx_import_ruimte(p_import_key);
END;
/
CREATE OR REPLACE PROCEDURE aasa_update_ruimte (p_import_key IN NUMBER)
AS
BEGIN
aaxx_update_ruimte(p_import_key);
END;
/
-- view voor gebouwlistbox bij bewonermutaties. Ivm nieuwe mobilisatie mogen alleen
-- de nieuw toegevoegde gebouwen hier getoond worden.
CREATE OR REPLACE VIEW aasa_v_gebouw
(
alg_gebouw_key,
alg_gebouw_omschrijving
)
AS
SELECT alg_gebouw_key, alg_gebouw_code||'-'||alg_gebouw_naam
FROM alg_gebouw
WHERE alg_gebouw_verwijder IS NULL
AND alg_gebouw_aanmaak > TO_DATE ('20131217', 'yyyymmdd');
CREATE OR REPLACE VIEW aasa_v_rap_gebouw_geg
(
code,
fclt_f_vak,
gebouwnr,
gebouwnaam,
fclt_f_fm_er,
fclt_f_eigenaar,
fclt_f_klantcode,
fclt_f_business_unit,
fclt_f_maint_cat,
m2,
code_exact
)
AS
SELECT alg_gebouw_code code,
SUBSTR (alg_gebouw_code, 1, 3) vak,
SUBSTR (alg_gebouw_code, 5, 3) gebouwnr,
alg_gebouw_naam gebouwnaam,
(SELECT ud.fac_usrdata_omschr
FROM fac_usrdata ud, alg_onrgoedkenmerk ogk
WHERE ogk.alg_onrgoed_key = g.alg_gebouw_key
AND ogk.alg_onrgoedkenmerk_waarde = ud.fac_usrdata_key
AND ogk.alg_kenmerk_key = 1040)
fmer,
(SELECT ud.fac_usrdata_omschr
FROM fac_usrdata ud, alg_onrgoedkenmerk ogk
WHERE ogk.alg_onrgoed_key = g.alg_gebouw_key
AND ogk.alg_onrgoedkenmerk_waarde = ud.fac_usrdata_key
AND ogk.alg_kenmerk_key = 1080)
eigenaar,
k.prs_kostenplaats_nr klantcode,
(SELECT ud.fac_usrdata_omschr
FROM fac_usrdata ud, alg_onrgoedkenmerk ogk
WHERE ogk.alg_onrgoed_key = g.alg_gebouw_key
AND ogk.alg_onrgoedkenmerk_waarde = ud.fac_usrdata_key
AND ogk.alg_kenmerk_key = 1100)
businessunit,
(SELECT ud.fac_usrdata_omschr
FROM fac_usrdata ud, alg_onrgoedkenmerk ogk
WHERE ogk.alg_onrgoed_key = g.alg_gebouw_key
AND ogk.alg_onrgoedkenmerk_waarde = ud.fac_usrdata_key
AND ogk.alg_kenmerk_key = 1140)
maintcat,
g.alg_gebouw_bruto_vloeropp m2,
(SELECT alg_onrgoedkenmerk_waarde
FROM alg_onrgoedkenmerk ogk
WHERE ogk.alg_onrgoed_key = g.alg_gebouw_key
AND ogk.alg_kenmerk_key = 1120)
exactcode
FROM alg_v_aanweziggebouw g, prs_kostenplaats k
WHERE g.prs_kostenplaats_key = k.prs_kostenplaats_key(+);
CREATE OR REPLACE VIEW aasa_v_rap_perslidgegevens
(
fclt_f_locatie,
fclt_f_gebouw,
verdieping,
naam,
lockernummer,
postvak,
telefoon,
mobielnr,
email,
personeelsnr,
inhuur,
dienstverband,
organisatie,
functie
)
AS
SELECT alg_locatie_omschrijving,
alg_gebouw_upper,
alg_verdieping_code,
prs_perslid_naam_full,
lo.ins_deel_omschrijving,
pv.fac_usrdata_omschr,
p.prs_perslid_telefoonnr,
p.prs_perslid_mobiel,
p.prs_perslid_email,
p.prs_perslid_nr,
ih.prs_kenmerklink_waarde,
p.prs_perslid_dienstverband,
a.prs_afdeling_omschrijving,
sp.prs_srtperslid_omschrijving
FROM prs_perslid p,
prs_afdeling a,
prs_srtperslid sp,
prs_v_perslid_fullnames pf,
prs_v_werkplekperslid_gegevens wp,
alg_locatie l,
(SELECT *
FROM prs_kenmerklink kl, fac_usrdata ud
WHERE prs_kenmerklink_waarde = ud.fac_usrdata_key
AND prs_kenmerk_key = 1060) pv, -- postvak
(SELECT *
FROM prs_kenmerklink
WHERE prs_kenmerk_key = 1080) ih, -- inhuur
(SELECT *
FROM ins_deel d, ins_srtdeel sd
WHERE d.ins_srtdeel_key = sd.ins_srtdeel_key
AND d.ins_alg_ruimte_type = 'P'
AND sd.ins_srtgroep_key = 81) lo -- locker
WHERE p.prs_perslid_key = wp.prs_perslid_key(+)
AND wp.alg_locatie_key = l.alg_locatie_key(+)
AND p.prs_perslid_key = pv.prs_link_key(+)
AND p.prs_perslid_key = ih.prs_link_key(+)
AND p.prs_perslid_key = lo.ins_alg_ruimte_key(+)
AND p.prs_perslid_key = pf.prs_perslid_key
AND p.prs_srtperslid_key = sp.prs_srtperslid_key
AND p.prs_afdeling_key = a.prs_afdeling_key
AND NOT EXISTS
(SELECT prs_kenmerklink_key
FROM prs_kenmerklink kl
WHERE kl.prs_kenmerk_key = 4
AND kl.prs_link_key = p.prs_perslid_key);
CREATE OR REPLACE VIEW aasa_v_noti_resreminder
(
code,
sender,
receiver,
text,
key,
xkey
)
AS
SELECT 'RESINF',
NULL,
rsvr.res_rsv_ruimte_contact_key,
'Reservering '
|| res.res_reservering_key
|| ': U heeft op '
|| TO_CHAR (rsvr.res_rsv_ruimte_van, 'DD-MM')
|| ' van '
|| TO_CHAR (rsvr.res_rsv_ruimte_van, 'HH24:MI')
|| ' tot '
|| TO_CHAR (rsvr.res_rsv_ruimte_tot, 'HH24:MI')
|| ' ruimte '
|| r.res_ruimte_nr
|| ' gereserveerd.',
res.res_reservering_key,
rsvr.res_rsv_ruimte_key
FROM res_v_aanwezigreservering res,
res_v_aanwezigrsv_ruimte rsvr,
res_ruimte_opstelling opst,
res_disc_params rdp,
res_ruimte r
WHERE r.res_discipline_key = rdp.res_ins_discipline_key
AND rdp.res_disc_params_noti_dagen IS NOT NULL
AND res.res_reservering_key = rsvr.res_reservering_key
AND opst.res_ruimte_opstel_key = rsvr.res_ruimte_opstel_key
AND opst.res_ruimte_key = r.res_ruimte_key
AND rsvr.res_status_fo_key <= 5
AND (rsvr.res_rsv_ruimte_van BETWEEN fac.datumtijdplusuitvoertijd (
SYSDATE,
res_disc_params_noti_dagen,
'DAGEN')
AND fac.datumtijdplusuitvoertijd (
SYSDATE,
res_disc_params_noti_dagen + 1,
'DAGEN')
OR rsvr.res_rsv_ruimte_van BETWEEN fac.datumtijdplusuitvoertijd (
SYSDATE,
1,
'DAGEN')
AND fac.datumtijdplusuitvoertijd (
SYSDATE,
2,
'DAGEN'))
AND TO_CHAR (SYSDATE, 'D') NOT IN (1, 7)
AND rsvr.res_rsv_ruimte_van >= SYSDATE
UNION ALL
SELECT 'RESINF',
NULL,
res_rsv_ruimte_contact_key,
'Reservering '
|| res_reservering_key
|| ': U heeft op '
|| TO_CHAR (MIN (van), 'dd-mm')
|| DECODE (
MIN (van),
MAX (tot),
' om ' || TO_CHAR (MIN (van), 'hh24:mi'),
' van '
|| TO_CHAR (MIN (van), 'hh24:mi')
|| ' tot '
|| TO_CHAR (MAX (tot), 'hh24:mi'))
|| ' in ruimte ('
|| (SELECT alg_gebouw_code
|| '-'
|| alg_verdieping_code
|| '-'
|| alg_ruimte_nr
FROM alg_v_onroerendgoed_gegevens arg
WHERE arg.alg_ruimte_key = ruimte_key)
|| ') '
|| COUNT (res_reservering_key)
|| ' voorziening(en) gereserveerd.',
res_reservering_key,
res_rsv_ruimte_key
FROM (SELECT rsvr.res_rsv_ruimte_contact_key,
res.res_reservering_key,
rsvd.res_rsv_deel_van van,
rsvd.res_rsv_deel_tot tot,
rsvr.res_rsv_ruimte_key,
rsvr.alg_ruimte_key ruimte_key
FROM res_v_aanwezigreservering res,
res_v_aanwezigrsv_ruimte rsvr,
res_disc_params rdp,
res_rsv_deel rsvd,
res_deel rd
WHERE rsvd.res_rsv_ruimte_key = rsvr.res_rsv_ruimte_key
AND rd.res_deel_key = rsvd.res_deel_key
AND rd.res_discipline_key = rdp.res_ins_discipline_key
AND rdp.res_disc_params_noti_dagen IS NOT NULL
AND res.res_reservering_key = rsvr.res_reservering_key
AND rsvr.res_ruimte_opstel_key IS NULL
AND rsvr.res_status_fo_key <= 5
AND rsvd.res_rsv_deel_verwijder IS NULL
AND (rsvd.res_rsv_deel_van BETWEEN fac.datumtijdplusuitvoertijd (
SYSDATE,
res_disc_params_noti_dagen,
'DAGEN')
AND fac.datumtijdplusuitvoertijd (
SYSDATE,
res_disc_params_noti_dagen
+ 1,
'DAGEN')
OR rsvd.res_rsv_deel_van BETWEEN fac.datumtijdplusuitvoertijd (
SYSDATE,
1,
'DAGEN')
AND fac.datumtijdplusuitvoertijd (
SYSDATE,
2,
'DAGEN'))
AND TO_CHAR (SYSDATE, 'D') NOT IN (1, 7)
AND rsvd.res_rsv_deel_van >= SYSDATE
UNION ALL
SELECT rsvr.res_rsv_ruimte_contact_key,
res.res_reservering_key,
rsva.res_rsv_artikel_levering van,
rsva.res_rsv_artikel_levering tot,
rsvr.res_rsv_ruimte_key,
rsvr.alg_ruimte_key ruimte_key
FROM res_v_aanwezigreservering res,
res_v_aanwezigrsv_ruimte rsvr,
res_disc_params rdp,
res_rsv_artikel rsva,
res_artikel ra
WHERE rsva.res_rsv_ruimte_key = rsvr.res_rsv_ruimte_key
AND ra.res_discipline_key = rdp.res_ins_discipline_key
AND rsva.res_artikel_key = ra.res_artikel_key
AND rdp.res_disc_params_noti_dagen IS NOT NULL
AND res.res_reservering_key = rsvr.res_reservering_key
AND rsvr.res_ruimte_opstel_key IS NULL
AND rsvr.res_status_fo_key <= 5
AND rsva.res_rsv_artikel_verwijder IS NULL
AND (rsva.res_rsv_artikel_levering BETWEEN fac.datumtijdplusuitvoertijd (
SYSDATE,
res_disc_params_noti_dagen,
'DAGEN')
AND fac.datumtijdplusuitvoertijd (
SYSDATE,
res_disc_params_noti_dagen
+ 1,
'DAGEN')
OR rsva.res_rsv_artikel_levering BETWEEN fac.datumtijdplusuitvoertijd (
SYSDATE,
1,
'DAGEN')
AND fac.datumtijdplusuitvoertijd (
SYSDATE,
2,
'DAGEN'))
AND TO_CHAR (SYSDATE, 'D') NOT IN (1, 7)
AND rsva.res_rsv_artikel_levering >= SYSDATE)
GROUP BY res_rsv_ruimte_contact_key,
res_reservering_key,
res_rsv_ruimte_key,
ruimte_key;
-- notificatie naar onderstaand email adres als er een melding in de vakgroep goedkeuring aangemaakt wordt.
CREATE OR REPLACE VIEW aasa_v_noti_goedkeuring
(
sender,
receiver,
text,
code,
fac_srtnotificatie_key,
key,
xkey,
xemail,
xmobile
)
AS
SELECT NULL sender,
NULL receiver,
NULL text,
'CUST07' code,
NULL fac_srtnotificatie_key,
m.mld_melding_key key,
NULL xkey,
'headofficeEurope.authorizations@sabic-europe.com' xemail,
NULL xmobile
FROM mld_melding m, mld_stdmelding std
WHERE m.mld_stdmelding_key = std.mld_stdmelding_key
AND std.mld_ins_discipline_key = 1222 -- vakgroep goedkeuring
AND m.mld_melding_datum BETWEEN TO_DATE (
TO_CHAR (SYSDATE, 'yyyymmdd hh24'),
'yyyymmdd hh24')
- (1 / 24)
AND TO_DATE (
TO_CHAR (SYSDATE, 'yyyymmdd hh24'),
'yyyymmdd hh24')
AND m.mld_melding_status = 2;
-- Rapport opdrachten voor gebouwverantwoordelijke (ticket 58199 / 63900)
CREATE OR REPLACE VIEW AASA_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 = 87) -- ORDFOK
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 = 87)) -- ORDFOK
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') ;
-- !!!!!!!!!!!!!!!!!!
-- Controleer de wijzigingen die in de aaxx gemaakt zijn. (Afsplitsing dateert van 6 maart 2015)
-- !!!!!!!!!!!!!!!!!!!!
CREATE OR REPLACE PROCEDURE aasa_import_opdrstat_strukton (
p_import_key IN NUMBER)
AS
c_delim VARCHAR2 (1) := ';';
v_newline VARCHAR2 (1000); -- Input line
v_errormsg VARCHAR2 (1000);
oracle_err_num NUMBER;
oracle_err_mes VARCHAR2 (200);
v_aanduiding VARCHAR2 (1200);
v_dummy VARCHAR2 (200);
header_is_valid NUMBER := 0;
v_count NUMBER;
v_count_tot NUMBER (10) := 0;
v_count_import NUMBER (10) := 0;
v_ongeldig NUMBER (1) := 0;
-- De importvelden
v_mld_opdr_opmerking VARCHAR2 (4000);
v_mld_opdr_key NUMBER (10);
v_mld_opdr_key_tekst VARCHAR2 (100);
v_extern_nummer VARCHAR2 (100);
v_status NUMBER (10);
v_status_tekst VARCHAR2 (100);
v_status_code VARCHAR2 (100);
v_datumtijd DATE;
v_datumtijd_tekst VARCHAR2 (100);
v_opmerking VARCHAR2 (3000);
v_totaal NUMBER (8,2);
v_totaal_str VARCHAR2 (100);
-- Overige velden:
CURSOR c1
IS
SELECT *
FROM fac_imp_file
WHERE fac_import_key = p_import_key
ORDER BY fac_imp_file_index;
BEGIN
-- Eerst opruiming
DELETE FROM aaxx_imp_opdrstat_strukton;
COMMIT;
FOR rec1 IN c1
LOOP
BEGIN
v_newline := rec1.fac_imp_file_line;
v_errormsg := 'Fout opvragen te importeren rij';
v_aanduiding := '';
v_ongeldig := 0;
fac.imp_getfield (v_newline, c_delim, v_mld_opdr_key_tekst);
fac.imp_getfield (v_newline, c_delim, v_extern_nummer);
fac.imp_getfield (v_newline, c_delim, v_status_code); -- typeID
fac.imp_getfield (v_newline, c_delim, v_datumtijd_tekst);
fac.imp_getfield (v_newline, c_delim, v_status_tekst);
fac.imp_getfield (v_newline, c_delim, v_opmerking);
fac.imp_getfield (v_newline, c_delim, v_totaal_str);
v_totaal := fac.safe_to_number(v_totaal_str);
fac.imp_writelog (p_import_key, 'I', 'v_totaal_str:' || v_totaal_str || ' v_totaal:' || v_totaal || ' fac.safe_to_number(v_totaal_str):' || fac.safe_to_number(v_totaal_str),'');
v_opmerking := substr(v_opmerking, 1, 1000);
-- verwijder de markering voor cr/lf die we zelf in de stylesheet toegevoegd hebben.
v_opmerking := replace(v_opmerking, '@@',CHR (13) || CHR (10));
v_aanduiding :=
'['
|| v_extern_nummer
|| '|'
|| v_mld_opdr_key_tekst
|| '|'
|| v_status_tekst
|| '|'
|| v_opmerking
|| '] ';
-- Ik controleer of ik een geldige header heb, dat is: in de juiste kolommen
-- de juiste kolomkop. Ik controleer daarbij ALLE kolommen!
-- Ik negeer alles totdat ik een geldige header ben gepasseerd.
IF (header_is_valid = 0)
THEN
IF UPPER (TRIM (v_mld_opdr_key_tekst)) = 'REFERENCEID'
AND UPPER (TRIM (v_extern_nummer)) = 'SERVICEREQUESTID'
AND UPPER (TRIM (v_status_code)) = 'TYPEID'
AND UPPER (TRIM (v_datumtijd_tekst)) = 'DATETIME'
AND UPPER (TRIM (v_opmerking)) = 'REMARKS'
AND UPPER (TRIM (v_totaal_str)) = 'TOTAL'
THEN
header_is_valid := 1;
END IF;
ELSE
v_count_tot := v_count_tot + 1;
-- Controleer alle veldwaarden
v_errormsg := 'Fout inlezen mld_opdr_key [' || v_aanduiding || ']';
v_mld_opdr_key := TRIM (v_mld_opdr_key);
BEGIN
SELECT o.mld_opdr_key, o.mld_opdr_opmerking
INTO v_mld_opdr_key, v_mld_opdr_opmerking
FROM mld_opdr o, mld_melding m, ins_tab_discipline d, ins_srtdiscipline sd, mld_stdmelding std
WHERE 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 sd.ins_srtdiscipline_prefix || m.mld_melding_key || '/' || o.mld_opdr_bedrijfopdr_volgnr = v_mld_opdr_key_tekst;
EXCEPTION WHEN NO_DATA_FOUND THEN
BEGIN
fac.imp_writelog (p_import_key, 'W', 'Opdracht kan niet gevonden worden. [' || v_aanduiding || ']', '');
-- kijk nu of de opdracht gevonden kan worden a.d.h.v het Struktonnummer
SELECT o.mld_opdr_key, o.mld_opdr_opmerking
INTO v_mld_opdr_key, v_mld_opdr_opmerking
FROM mld_opdr o, mld_kenmerkopdr ko, mld_kenmerk k
WHERE o.mld_opdr_key = ko.mld_opdr_key
AND ko.mld_kenmerk_key = k.mld_kenmerk_key
AND k.mld_srtkenmerk_key = 35
AND ko.mld_kenmerkopdr_waarde = v_extern_nummer;
EXCEPTION WHEN OTHERS THEN
v_ongeldig := 1;
v_errormsg := 'Opdracht kan niet gevonden worden (intern/externnr). [' || v_aanduiding || ']';
v_mld_opdr_key := NULL;
END;
END;
IF v_ongeldig = 0
THEN
v_errormsg :=
'Fout bij bepalen status [' || v_aanduiding || ']';
CASE
WHEN v_status_code = '5'
THEN
v_status := 5; -- uitgegeven
WHEN v_status_code = '10'
THEN
v_status := 8; -- geaccepteerd
WHEN v_status_code = '20' -- monteur gereed
THEN
v_status := 6; -- afgemeld
WHEN v_status_code = '25' -- specialist gereed
THEN
v_status := 6; -- afgemeld
WHEN v_status_code = '30' -- technisch gereed
THEN
v_status := 6; -- afgemeld
-- AASA#32991
-- WHEN v_status_code = '40' -- uitgeprijst
-- THEN
-- v_status := 9; -- afgerond
WHEN v_status_code = '70'
THEN
v_status := 1; -- geannuleerd
WHEN v_status_code = '80'
THEN
v_status := 1; -- afgewezen
ELSE
v_status := NULL;
v_ongeldig := 1; -- nog te bezien.
END CASE;
END IF;
-- Lees alle veldwaarden
IF v_ongeldig = 0
THEN
v_errormsg :=
'Fout bij converteren datumtijd [' || v_aanduiding || ']';
v_datumtijd :=
fac.safe_to_date (
REPLACE (
SUBSTR (v_datumtijd_tekst,
1,
INSTR (v_datumtijd_tekst, '.') - 1),
'T',
' '),
'yyyy-mm-dd hh24:mi:ss');
IF v_datumtijd = NULL
THEN
v_ongeldig := 0;
END IF;
END IF;
IF v_ongeldig = 0
THEN
v_errormsg :=
'Fout bij aanvullen opmerking [' || v_aanduiding || ']';
-- controleer of de opmerking niet leeg is en of dezelfde opmerking al bij een eerdere statusovergang
-- gemeld is.
IF v_opmerking IS NOT NULL AND INSTR(COALESCE(v_mld_opdr_opmerking, 'QueQuLeQue'), v_opmerking) = 0
THEN
v_opmerking :=
'['
|| v_datumtijd_tekst
|| '] - '
|| v_status_tekst
|| CHR (13)
|| CHR (10)
|| v_opmerking;
ELSE
v_opmerking :=
'[' || v_datumtijd_tekst || '] - ' || v_status_tekst;
END IF;
END IF;
-- Insert geformatteerde import record
IF (v_ongeldig = 0)
THEN
BEGIN
v_errormsg :=
'Fout toevoegen opdracht status ['
|| v_aanduiding
|| ']';
INSERT INTO aaxx_imp_opdrstat_strukton (mld_opdr_key,
extern_nummer,
status,
datumtijd,
opmerking,
totaal)
VALUES (v_mld_opdr_key,
v_extern_nummer,
v_status,
v_datumtijd,
v_opmerking,
v_totaal);
v_count_import := v_count_import + 1;
EXCEPTION
WHEN OTHERS
THEN
oracle_err_num := SQLCODE;
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
v_errormsg :=
v_errormsg
|| ' ORACLE (error '
|| oracle_err_num
|| '/'
|| oracle_err_mes
|| ')';
fac.imp_writelog (
p_import_key,
'E',
v_aanduiding || v_errormsg,
'Fout bij toevoegen regel aan importtabel aaxx_imp_opdr_status_strukton.');
END;
ELSE
fac.imp_writelog (p_import_key,
'E',
v_errormsg,
'');
END IF;
END IF;
END;
END LOOP;
IF (header_is_valid = 0)
THEN
fac.imp_writelog (p_import_key,
'E',
'Ongeldig importbestand',
'Geen header of header niet volgens specificatie!');
END IF;
COMMIT;
EXCEPTION
WHEN OTHERS
THEN
oracle_err_num := SQLCODE;
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
v_errormsg :=
v_errormsg
|| 'ORACLE (error '
|| oracle_err_num
|| '/'
|| oracle_err_mes
|| ')';
fac.imp_writelog (p_import_key,
'E',
v_aanduiding || v_errormsg,
'Inleesproces opdrachtstatusberichten afgebroken!');
END;
/
CREATE OR REPLACE PROCEDURE aasa_update_opdrstat_strukton (
p_import_key IN NUMBER)
AS
-- Cursor loopt - in volgorde! - over alle ingelezen opdrachtstatusberichten.
CURSOR c1
IS
SELECT mld_opdr_key,
extern_nummer,
datumtijd,
status,
opmerking,
totaal
FROM aaxx_imp_opdrstat_strukton
ORDER BY 1, 3;
CURSOR cp (
c_opdr_key IN NUMBER)
IS
SELECT pf.prs_perslid_key
FROM fac_tracking tr,
fac_srtnotificatie str,
prs_v_perslid_fullnames_all pf
WHERE tr.fac_srtnotificatie_key = str.fac_srtnotificatie_key
AND tr.prs_perslid_key = pf.prs_perslid_key(+)
AND (str.fac_srtnotificatie_code = 'ORDFOK'
AND tr.fac_tracking_refkey = c_opdr_key
AND str.fac_srtnotificatie_xmlnode IN ('opdracht'))
ORDER BY fac_tracking_datum DESC, fac_tracking_key DESC;
v_errormsg VARCHAR2 (1000);
oracle_err_num NUMBER;
oracle_err_mes VARCHAR2 (200);
v_aanduiding VARCHAR2 (200);
v_count_tot NUMBER (10);
v_count NUMBER (10);
v_mld_key NUMBER (10) := 0;
v_opdr_key NUMBER (10) := 0;
v_opdr_status NUMBER (10) := 0;
v_user_key NUMBER (10) := 0;
v_opdr_approved mld_opdr.mld_opdr_approved%TYPE;
v_approver_key prs_perslid.prs_perslid_key%TYPE;
v_mld_typeopdr_key mld_typeopdr.mld_typeopdr_key%TYPE;
v_mld_kenmerk_key mld_kenmerk.mld_kenmerk_key%TYPE;
v_mld_kenmerkopdr_key mld_kenmerkopdr.mld_kenmerkopdr_key%TYPE;
v_mld_srtkenmerk_key mld_srtkenmerk.mld_srtkenmerk_key%TYPE;
v_perslid_key prs_perslid.prs_perslid_key%TYPE;
v_opdr_kosten mld_opdr.mld_opdr_kosten%TYPE;
v_typeopdr_gvs mld_typeopdr.mld_typeopdr_gvs%TYPE;
v_mld_kk mld_melding.mld_kosten_klant%TYPE;
v_mld_kostenpl_key mld_melding.prs_kostenplaats_key%TYPE;
v_opdr_kostenpl_key mld_opdr.prs_kostenplaats_key%TYPE;
v_mld_perslid_key mld_melding.prs_perslid_key%TYPE;
v_mld_disc_key ins_tab_discipline.ins_discipline_key%TYPE;
v_refiat NUMBER (1);
v_reapprove NUMBER (1);
BEGIN
-- Loop door alle geimporteerde opdrachtstatusberichten en verwerk deze.
v_count_tot := 0;
-- Stel de key in van het srtkenmerk 'Ref. Nr. Leverancier'. Hier wordt
-- het nummer dat Strukton aan de call gegeven heeft geregistreerd.
IF aaxx_get_user = 'SABIC'
THEN
v_mld_srtkenmerk_key := 35;
END IF;
IF aaxx_get_user = 'ENEXIS'
THEN
v_mld_srtkenmerk_key := 381;
END IF;
IF aaxx_get_user = 'ESSENT'
THEN
v_mld_srtkenmerk_key := 741;
END IF;
IF aaxx_get_user = 'NS'
THEN
v_mld_srtkenmerk_key := 761;
END IF;
IF aaxx_get_user = 'DSM'
THEN
v_mld_srtkenmerk_key := 123;
END IF;
IF aaxx_get_user = 'VL'
THEN
v_mld_srtkenmerk_key := 82;
END IF;
IF aaxx_get_user = 'HUNTSMAN'
THEN
v_mld_srtkenmerk_key := 381;
END IF;
IF aaxx_get_user = 'DOW'
THEN
v_mld_srtkenmerk_key := 81;
END IF;
v_user_key := 10; -- Strukton user
FOR rec IN c1
LOOP
BEGIN
v_aanduiding :=
'['
|| rec.mld_opdr_key
|| '|'
|| SUBSTR (rec.opmerking, 1, 100)
|| '] ';
v_count_tot := v_count_tot + 1;
v_count := 0;
-- Key van melding/opdracht bepalen en externnr bij opdracht opslaan.
IF (rec.mld_opdr_key IS NOT NULL)
THEN
v_errormsg := 'Fout bij bepalen opdracht.';
SELECT mld_melding_key,
mld_opdr_key,
mld_statusopdr_key,
mld_typeopdr_key
INTO v_mld_key,
v_opdr_key,
v_opdr_status,
v_mld_typeopdr_key
FROM mld_opdr
WHERE mld_opdr_key = rec.mld_opdr_key;
v_errormsg := 'Fout bij bepalen kenmerk extern nummer.';
SELECT k.mld_kenmerk_key
INTO v_mld_kenmerk_key
FROM mld_kenmerk k
WHERE k.mld_srtkenmerk_key = v_mld_srtkenmerk_key
AND k.mld_typeopdr_key = v_mld_typeopdr_key;
v_errormsg := 'Fout bij bepalen kenmerkopdracht extern nummer.';
SELECT MAX (ko.mld_kenmerkopdr_key)
INTO v_mld_kenmerkopdr_key
FROM mld_kenmerkopdr ko
WHERE ko.mld_opdr_key = v_opdr_key
AND v_mld_kenmerk_key = ko.mld_kenmerk_key;
v_errormsg := 'Fout bij aanpassen extern nummer.';
IF v_mld_kenmerkopdr_key IS NULL
THEN
-- kenmerk toevoegen
INSERT INTO mld_kenmerkopdr (mld_kenmerk_key,
mld_opdr_key,
mld_kenmerkopdr_waarde)
VALUES (v_mld_kenmerk_key, v_opdr_key, rec.extern_nummer);
ELSE
-- kenmerk aanpassen
UPDATE mld_kenmerkopdr
SET mld_kenmerkopdr_waarde = rec.extern_nummer
WHERE mld_kenmerkopdr_key = v_mld_kenmerkopdr_key;
END IF;
v_errormsg := 'Fout bij bijwerken opdracht-opmerking.';
v_count := LENGTH (rec.opmerking) + 5; -- Beetje speling qua lengte!
UPDATE mld_opdr
SET mld_opdr_opmerking =
DECODE (
mld_opdr_opmerking,
NULL,
rec.opmerking,
rec.opmerking
|| CHR (13)
|| CHR (10)
|| SUBSTR (mld_opdr_opmerking, 1, (4000 - v_count)))
WHERE mld_opdr_key = v_opdr_key;
IF v_opdr_status <> rec.status
THEN
IF rec.status = 8 AND v_opdr_status = 5
THEN
-- Accepteer opdracht als de opdracht uitgegeven was
mld.setopdrachtstatus (v_opdr_key, 8, v_user_key); -- Facilitor
ELSIF rec.status = 6 AND v_opdr_status = 5
THEN
-- Meld de opdracht af als deze uitgegeven was
mld.setopdrachtstatus (v_opdr_key, 8, v_user_key); -- Facilitor, eerst accepteren
mld.setopdrachtstatus (v_opdr_key, 6, v_user_key); -- Facilitor
ELSIF rec.status = 6 AND v_opdr_status = 8
THEN
-- Meld de opdracht af als deze geaccepteerd was
mld.setopdrachtstatus (v_opdr_key, 6, v_user_key); -- Facilitor
ELSIF rec.status = 1 AND v_opdr_status = 5
THEN
-- Opdracht is afgewezen op het moment dat de opdracht nog niet geaccepteerd is.
mld.setopdrachtstatus (v_opdr_key, 1, v_user_key); -- Facilitor
mld.updatemeldingstatusav (v_mld_key,
0,
v_user_key,
0);
ELSIF rec.status = 1 AND v_opdr_status = 8
THEN
-- Opdracht is afgewezen op het moment dat de opdracht al geaccepteerd is.
mld.setopdrachtstatus (v_opdr_key, 6, v_user_key); -- Facilitor
--MLD.updatemeldingstatusAV (v_mld_key, 0, v_user_key, 0);
ELSIF rec.status = 9 AND v_opdr_status = 6
THEN
-- Opdracht is afgerond en opdrachtstatus was afgemeld.
mld.setopdrachtstatus (v_opdr_key, 9, v_user_key); -- Facilitor
END IF;
IF rec.status = 6 AND v_opdr_status <> 6
THEN
-- Sinds AADO#30922 wordt de melding niet meer automatisch afgemeld.
MLD.updatemeldingstatusAV (v_mld_key, 0, v_user_key, 0);
ELSE
IF rec.status = 9 AND v_opdr_status <> 9
THEN
-- Oorspronkelijke gegevens opdracht ophalen.
-- var opdr_info = mld.mld_opdr_info(opdr_key);
SELECT mld_opdr_kosten,
mld_typeopdr_gvs,
mld_kosten_klant,
m.prs_kostenplaats_key,
o.prs_kostenplaats_key,
m.prs_perslid_key,
std.mld_ins_discipline_key
INTO v_opdr_kosten,
v_typeopdr_gvs,
v_mld_kk,
v_mld_kostenpl_key,
v_opdr_kostenpl_key,
v_mld_perslid_key,
v_mld_disc_key
FROM mld_opdr o,
mld_melding m,
mld_typeopdr t,
mld_stdmelding std
WHERE o.mld_melding_key = m.mld_melding_key
AND m.mld_stdmelding_key = std.mld_stdmelding_key
AND o.mld_typeopdr_key = t.mld_typeopdr_key
AND o.mld_opdr_key = v_opdr_key;
-- Hergoedkeuring (Ter goedkeuring) wordt (pas) vereist als het opdrachtbedrag hoger is dan al is goedgekeurd en boven de GVS-grens uitkomt.
-- Herfiattering (Ter fiattering) wordt (pas) vereist indien het bedrag boven het mandaat van de oorspronkelijke (laatste) fiatteur uitkomt
-- en boven de GVS-grens uitkomt.
-- Hergoedkeuring en herfiattering kan alleen als het totaalbedrag van de opdracht is verhoogd en alleen in de statussen 5, 8, 6 en 9 (de uitvoeringsfase en de afhandelingsfase).
-- Hergoedkeuring en herfiattering kan leiden tot een tijdelijke terugkeer naar de voorfase status 3 of 10.
IF rec.totaal > v_opdr_kosten
THEN
fac.imp_writelog (p_import_key, 'I', 'rec.totaal > v_opdr_kosten: ' || rec.totaal || ' - ' || v_opdr_kosten, '');
-- Hergoedkeuring (Ter goedkeuring) wordt (pas) vereist als het opdrachtbedrag hoger is dan al is goedgekeurd en boven de GVS-grens uitkomt.
IF rec.totaal > COALESCE (v_opdr_approved, 0) AND rec.totaal > v_typeopdr_gvs
THEN
v_reapprove := 1;
ELSE
v_reapprove := 0;
END IF;
fac.imp_writelog (p_import_key, 'I', 'hergoedkeuring: ' || v_reapprove || ' - ' || v_opdr_approved || ' - ' || v_typeopdr_gvs, '');
-- Herfiattering (Ter fiattering) wordt (pas) vereist indien het bedrag boven het mandaat van de oorspronkelijke (laatste) fiatteur uitkomt
-- en boven de GVS-grens uitkomt.
-- Bepaal het mandaat van de oorspronkelijke (laatste) fiatteur.
-- Ook als er de vorige keer geen kosten waren dan moet pas worden geherfiatteerd als (tot_kosten > mandaat),
-- waarbij de mandaat van de Melder/aanvrager van melding of de user is.
v_perslid_key := NULL;
IF rec.totaal > v_opdr_kosten AND rec.totaal > 0 AND rec.totaal > v_typeopdr_gvs
THEN
fac.imp_writelog (p_import_key, 'I', 'F - rec.totaal > v_opdr_kosten: ' || rec.totaal || ' - ' || v_opdr_kosten || ' - ' || v_typeopdr_gvs, '');
-- De totale kosten zijn verhoogd en het bedrag zit boven de GVS-grens.
-- Bepaling oorspronkelijke (laatste) fiatteur, als die er was.
v_perslid_key := NULL;
FOR rec2 IN cp (v_opdr_key)
LOOP
BEGIN
v_perslid_key := rec2.prs_perslid_key;
END;
END LOOP;
fac.imp_writelog (p_import_key, 'I', 'F - laatste fiatteur: ' || v_perslid_key, '');
IF v_perslid_key IS NULL
THEN
-- Dan waren de opdracht kosten onder het mandaat van mijzelf of de BO-medewerker.
-- Als de kostenplaats bij de opdracht overruled is dan wordt altijd tegen het profiel van de BO-medewerker getest.
IF v_mld_kk = 1
AND v_mld_kostenpl_key = v_opdr_kostenpl_key
THEN
v_perslid_key := v_mld_perslid_key; -- Melder/aanvrager van melding
END IF;
END IF;
fac.imp_writelog (p_import_key, 'I', 'F - indien onbekend terugvallen op melder: ' || v_perslid_key, '');
IF fac.getsetting ('mld_use_order_approval') = 1
AND (rec.totaal >
fac.getsetting ('can_selfapprove')
OR rec.totaal >
prs.getprofiellimiet (v_perslid_key, v_mld_disc_key))
THEN
-- Er moet (opnieuw) gefiatteerd worden. Is er wel iemand met voldoende mandaat? Indien er niemand gevonden kan worden mag de wijziging niet doorgaan.
-- Het mandaat is al te hoog voor de melder/aanvrager van de melding of mijzelf.
v_approver_key :=
prs.getkpverantwoordelijke (
v_opdr_kostenpl_key,
fac.getsetting ('prs_approvemethod'),
v_user_key);
v_refiat := 1;
-- er moet (her)fiattering plaatsvinden
fac.imp_writelog (p_import_key, 'I', 'F - (her)fiatteur: ' || v_approver_key, '');
END IF;
END IF;
END IF;
IF v_reapprove = 1 OR v_refiat = 1
THEN
-- Zet de refiat waarden. Het hergoedkeurings- en/of herfiatteringstraject wordt opnieuw ingegaan. // Tracking hiervan is niet nodig.
IF v_opdr_kosten > 0
THEN
UPDATE mld_opdr
SET mld_opdr_materiaal_refiat = mld_opdr_materiaal,
mld_opdr_kosten_refiat = mld_opdr_kosten
WHERE mld_opdr_key = v_opdr_key;
END IF;
-- Ook voor status 5 wordt refiatstatus gezet zodat bekend is dat het om een herfiattering gaat. De fiatteringsvoorwaarde is dan iets anders.
UPDATE mld_opdr
SET mld_statusopdr_key_refiat = mld_statusopdr_key
WHERE mld_opdr_key = v_opdr_key;
-- Goedkeuring opnieuw ingaan kan alleen als het approved bedrag leeg is.
UPDATE mld_opdr
SET mld_opdr_approved_refiat = mld_opdr_approved
WHERE mld_opdr_key = v_opdr_key;
UPDATE mld_opdr
SET mld_opdr_approved = NULL,
mld_opdr_materiaal = rec.totaal,
mld_opdr_kosten = rec.totaal
WHERE mld_opdr_key = v_opdr_key;
ELSE
UPDATE mld_opdr
SET mld_opdr_materiaal = rec.totaal,
mld_opdr_kosten = rec.totaal
WHERE mld_opdr_key = v_opdr_key;
END IF;
-- geef in de tracking aan dat de kosten via de interface aangepast zijn.
IF v_opdr_kosten <> rec.totaal
THEN
fac.trackaction ('ORDUPD', v_opdr_key, v_user_key, SYSDATE,
'Gewijzigd' || CHR (13) || CHR (10)
|| 'Materiaal: ' || v_opdr_kosten || ' --> ' || rec.totaal || CHR (13) || CHR (10)
|| 'Totaal: ' || v_opdr_kosten || ' --> ' || rec.totaal);
END IF;
IF v_reapprove = 1
THEN
-- Zetten van de status van de gewijzigde opdracht op "Ter goedkeuring" en afhandelen van de tracking (status + uitvoerende tracking) en daarmee notificatie.
-- status = 10; Ter goedkeuring.
mld.setopdrachtstatus (v_opdr_key, 10, v_user_key);
ELSE
IF v_refiat = 1
THEN
-- Zetten van de status van de gewijzigde opdracht op "Ter fiattering" en afhandelen van de tracking (status + uitvoerende tracking) en daarmee notificatie.
-- status = 3; // Ter fiattering.
mld.setopdrachtstatus (v_opdr_key, 3, v_user_key);
END IF;
END IF;
END IF;
END IF;
END IF;
END IF;
COMMIT;
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.imp_writelog (p_import_key,
'E',
v_aanduiding || v_errormsg,
'Fout bij verwerken opdrachtstatusbericht.');
END;
END LOOP;
COMMIT;
END;
/
-- NEN2767 - Rapportage om foto's toe te voegen aan de gebreksmeldingen
---- levert commandlines voor batfile op die geplaatst/uitgevoerd kan worden in lokale map met de foto's en UploadFotoBijGebrek.js
---- in url de kenmerk_key van de foldermap meenemen (voor AASA is dit 5296)
CREATE OR REPLACE VIEW aasa_v_upload_foto_script
AS
SELECT v.mld_melding_key,
v.alg_gebouw_code,
v.alg_gebouw_naam,
v.mld_melding_datum,
v.mld_statuses_omschrijving,
'cscript //E:jscript "UploadFotoBijGebrek_AASA.js" "https://aasa.facilitor.nl/api2" 5296 '
|| v.mld_melding_key
|| ' "fotos/'
|| v.foto
|| '"' url
FROM (SELECT aogg.alg_gebouw_code,
aogg.alg_gebouw_naam,
m.mld_melding_key,
m.mld_melding_datum,
s.mld_statuses_omschrijving,
1 volgorde,
aaxx.imp_getfield_nr (mld_kenmerkmelding_waarde, ';', 1) foto
FROM mld_kenmerkmelding km, mld_melding m, alg_v_onroerendgoed_gegevens aogg, mld_kenmerk k, mld_srtkenmerk sk, mld_statuses s
WHERE aogg.alg_onroerendgoed_keys = m.mld_alg_onroerendgoed_keys
AND m.mld_melding_status = s.mld_statuses_key
AND m.mld_melding_key = km.mld_melding_key
AND km.mld_kenmerk_key = k.mld_kenmerk_key
AND k.mld_srtkenmerk_key = sk.mld_srtkenmerk_key
AND sk.mld_srtkenmerk_code = 'FOTONAAM'
UNION ALL
SELECT aogg.alg_gebouw_code,
aogg.alg_gebouw_naam,
m.mld_melding_key,
m.mld_melding_datum,
s.mld_statuses_omschrijving,
2,
aaxx.imp_getfield_nr (mld_kenmerkmelding_waarde, ';', 2)
FROM mld_kenmerkmelding km, mld_melding m, alg_v_onroerendgoed_gegevens aogg, mld_kenmerk k, mld_srtkenmerk sk, mld_statuses s
WHERE aogg.alg_onroerendgoed_keys = m.mld_alg_onroerendgoed_keys
AND m.mld_melding_status = s.mld_statuses_key
AND m.mld_melding_key = km.mld_melding_key
AND km.mld_kenmerk_key = k.mld_kenmerk_key
AND k.mld_srtkenmerk_key = sk.mld_srtkenmerk_key
AND sk.mld_srtkenmerk_code = 'FOTONAAM'
UNION ALL
SELECT aogg.alg_gebouw_code,
aogg.alg_gebouw_naam,
m.mld_melding_key,
m.mld_melding_datum,
s.mld_statuses_omschrijving,
3,
aaxx.imp_getfield_nr (mld_kenmerkmelding_waarde, ';', 3)
FROM mld_kenmerkmelding km, mld_melding m, alg_v_onroerendgoed_gegevens aogg, mld_kenmerk k, mld_srtkenmerk sk, mld_statuses s
WHERE aogg.alg_onroerendgoed_keys = m.mld_alg_onroerendgoed_keys
AND m.mld_melding_status = s.mld_statuses_key
AND m.mld_melding_key = km.mld_melding_key
AND km.mld_kenmerk_key = k.mld_kenmerk_key
AND k.mld_srtkenmerk_key = sk.mld_srtkenmerk_key
AND sk.mld_srtkenmerk_code = 'FOTONAAM'
UNION ALL
SELECT aogg.alg_gebouw_code,
aogg.alg_gebouw_naam,
m.mld_melding_key,
m.mld_melding_datum,
s.mld_statuses_omschrijving,
4,
aaxx.imp_getfield_nr (mld_kenmerkmelding_waarde, ';', 4)
FROM mld_kenmerkmelding km, mld_melding m, alg_v_onroerendgoed_gegevens aogg, mld_kenmerk k, mld_srtkenmerk sk, mld_statuses s
WHERE aogg.alg_onroerendgoed_keys = m.mld_alg_onroerendgoed_keys
AND m.mld_melding_status = s.mld_statuses_key
AND m.mld_melding_key = km.mld_melding_key
AND km.mld_kenmerk_key = k.mld_kenmerk_key
AND k.mld_srtkenmerk_key = sk.mld_srtkenmerk_key
AND sk.mld_srtkenmerk_code = 'FOTONAAM') v
WHERE v.foto IS NOT NULL
-- moet fotobestand zijn:
AND REGEXP_INSTR(UPPER(v.foto),'.JPEG|.JPG|.PNG|.GIF|.BMP',1,1)>0 ;
-- NEN2767 - Gestylde rapportage van de gebreken inclusief gebreksfoto
CREATE OR REPLACE VIEW aasa_v_rap_conditiemetingen
(
MLD_MELDING_KEY,
LOCATIE_CODE,
LOCATIE_NAAM,
GEBOUW_CODE,
GEBOUW_NAAM,
GEBOUW_GROEP,
HOOFDGROEP,
GROEP,
OBJECTSOORT,
IDENTIFICATIE,
GEBREKNR,
DATUM_TIJD,
DATUM,
INSPECTEUR,
STATUS,
GEBREK,
OMSCHRIJVING,
ERNST,
OMVANG,
INTENSITEIT,
VEILIGHEID_GEZONDHEID,
CULTUURHISTORISCHE_WAARDE,
GEBRUIK_EN_BEDRIJFSPROCES,
TECHNISCHE_VERVOLGSCHADE,
TOENAME_KLACHTENONDERHOUD,
BELEVING_ESTHETICA,
FOTO,
GEADVISEERD_STARTJAAR,
DATUM_GEREED_INSPECTEUR,
KOSTEN,
WERKZAAMHEDEN, -- omschrijving
CONDITIE,
PRIORITEIT
)
AS
SELECT m.mld_melding_key,
l.alg_locatie_code
locatie_code,
l.alg_locatie_omschrijving
locatie_naam,
aog.alg_gebouw_code
gebouw_code,
aog.alg_gebouw_naam
gebouw_naam,
aog.alg_gebouw_groep
gebouw_groep,
id.ins_discipline_omschrijving
hoofdgroep,
isg.ins_srtgroep_omschrijving
groep,
isd.ins_srtdeel_omschrijving
|| ' ('
|| isd.ins_srtdeel_code
|| ')'
objectsoort,
d.ins_deel_omschrijving
identificatie,
m.mld_melding_key
gebreknummer,
m.mld_melding_datum
datum_tijd,
TO_CHAR (mld_melding_datum, 'DD-MM-YYYY')
datum,
pf.prs_perslid_naam_full
inspecteur,
s.mld_statuses_omschrijving
status,
std.mld_stdmelding_omschrijving
gebrek,
m.mld_melding_omschrijving
omschrijving,
(SELECT fac_usrdata_omschr
FROM mld_kenmerkmelding mk,
mld_kenmerk k,
mld_srtkenmerk sk,
fac_kenmerkdomein kd,
fac_usrtab ut,
fac_usrdata ud
WHERE sk.mld_srtkenmerk_code = 'ERNST'
AND sk.mld_srtkenmerk_key = k.mld_srtkenmerk_key
AND k.mld_kenmerk_key = mk.mld_kenmerk_key
AND sk.fac_kenmerkdomein_key = kd.fac_kenmerkdomein_key
AND ut.fac_usrtab_key = kd.fac_usrtab_key
AND ud.fac_usrtab_key = ut.fac_usrtab_key
AND TO_CHAR (fac_usrdata_key) = mld_kenmerkmelding_waarde
AND mk.mld_melding_key = m.mld_melding_key)
ernst,
(SELECT fac_usrdata_omschr
FROM mld_kenmerkmelding mk,
mld_kenmerk k,
mld_srtkenmerk sk,
fac_kenmerkdomein kd,
fac_usrtab ut,
fac_usrdata ud
WHERE sk.mld_srtkenmerk_code = 'OMVANG'
AND sk.mld_srtkenmerk_key = k.mld_srtkenmerk_key
AND k.mld_kenmerk_key = mk.mld_kenmerk_key
AND sk.fac_kenmerkdomein_key = kd.fac_kenmerkdomein_key
AND ut.fac_usrtab_key = kd.fac_usrtab_key
AND ud.fac_usrtab_key = ut.fac_usrtab_key
AND TO_CHAR (fac_usrdata_key) = mld_kenmerkmelding_waarde
AND mk.mld_melding_key = m.mld_melding_key)
omvang,
(SELECT fac_usrdata_omschr
FROM mld_kenmerkmelding mk,
mld_kenmerk k,
mld_srtkenmerk sk,
fac_kenmerkdomein kd,
fac_usrtab ut,
fac_usrdata ud
WHERE sk.mld_srtkenmerk_code = 'INTENSITEIT'
AND sk.mld_srtkenmerk_key = k.mld_srtkenmerk_key
AND k.mld_kenmerk_key = mk.mld_kenmerk_key
AND sk.fac_kenmerkdomein_key = kd.fac_kenmerkdomein_key
AND ut.fac_usrtab_key = kd.fac_usrtab_key
AND ud.fac_usrtab_key = ut.fac_usrtab_key
AND TO_CHAR (fac_usrdata_key) = mld_kenmerkmelding_waarde
AND mk.mld_melding_key = m.mld_melding_key)
intensiteit,
(SELECT fac_usrdata_omschr
FROM mld_kenmerkmelding mk,
mld_kenmerk k,
mld_srtkenmerk sk,
fac_kenmerkdomein kd,
fac_usrtab ut,
fac_usrdata ud
WHERE sk.mld_srtkenmerk_code = 'ASPECT1'
AND sk.mld_srtkenmerk_key = k.mld_srtkenmerk_key
AND k.mld_kenmerk_key = mk.mld_kenmerk_key
AND sk.fac_kenmerkdomein_key = kd.fac_kenmerkdomein_key
AND ut.fac_usrtab_key = kd.fac_usrtab_key
AND ud.fac_usrtab_key = ut.fac_usrtab_key
AND TO_CHAR (fac_usrdata_key) = mld_kenmerkmelding_waarde
AND mk.mld_melding_key = m.mld_melding_key)
veiligheid_gezondheid,
(SELECT fac_usrdata_omschr
FROM mld_kenmerkmelding mk,
mld_kenmerk k,
mld_srtkenmerk sk,
fac_kenmerkdomein kd,
fac_usrtab ut,
fac_usrdata ud
WHERE sk.mld_srtkenmerk_code = 'ASPECT2'
AND sk.mld_srtkenmerk_key = k.mld_srtkenmerk_key
AND k.mld_kenmerk_key = mk.mld_kenmerk_key
AND sk.fac_kenmerkdomein_key = kd.fac_kenmerkdomein_key
AND ut.fac_usrtab_key = kd.fac_usrtab_key
AND ud.fac_usrtab_key = ut.fac_usrtab_key
AND TO_CHAR (fac_usrdata_key) = mld_kenmerkmelding_waarde
AND mk.mld_melding_key = m.mld_melding_key)
cultuurhistorische_waarde,
(SELECT fac_usrdata_omschr
FROM mld_kenmerkmelding mk,
mld_kenmerk k,
mld_srtkenmerk sk,
fac_kenmerkdomein kd,
fac_usrtab ut,
fac_usrdata ud
WHERE sk.mld_srtkenmerk_code = 'ASPECT3'
AND sk.mld_srtkenmerk_key = k.mld_srtkenmerk_key
AND k.mld_kenmerk_key = mk.mld_kenmerk_key
AND sk.fac_kenmerkdomein_key = kd.fac_kenmerkdomein_key
AND ut.fac_usrtab_key = kd.fac_usrtab_key
AND ud.fac_usrtab_key = ut.fac_usrtab_key
AND TO_CHAR (fac_usrdata_key) = mld_kenmerkmelding_waarde
AND mk.mld_melding_key = m.mld_melding_key)
gebruik_en_bedrijfsproces,
(SELECT fac_usrdata_omschr
FROM mld_kenmerkmelding mk,
mld_kenmerk k,
mld_srtkenmerk sk,
fac_kenmerkdomein kd,
fac_usrtab ut,
fac_usrdata ud
WHERE sk.mld_srtkenmerk_code = 'ASPECT4'
AND sk.mld_srtkenmerk_key = k.mld_srtkenmerk_key
AND k.mld_kenmerk_key = mk.mld_kenmerk_key
AND sk.fac_kenmerkdomein_key = kd.fac_kenmerkdomein_key
AND ut.fac_usrtab_key = kd.fac_usrtab_key
AND ud.fac_usrtab_key = ut.fac_usrtab_key
AND TO_CHAR (fac_usrdata_key) = mld_kenmerkmelding_waarde
AND mk.mld_melding_key = m.mld_melding_key)
technische_vervolgschade,
(SELECT fac_usrdata_omschr
FROM mld_kenmerkmelding mk,
mld_kenmerk k,
mld_srtkenmerk sk,
fac_kenmerkdomein kd,
fac_usrtab ut,
fac_usrdata ud
WHERE sk.mld_srtkenmerk_code = 'ASPECT5'
AND sk.mld_srtkenmerk_key = k.mld_srtkenmerk_key
AND k.mld_kenmerk_key = mk.mld_kenmerk_key
AND sk.fac_kenmerkdomein_key = kd.fac_kenmerkdomein_key
AND ut.fac_usrtab_key = kd.fac_usrtab_key
AND ud.fac_usrtab_key = ut.fac_usrtab_key
AND TO_CHAR (fac_usrdata_key) = mld_kenmerkmelding_waarde
AND mk.mld_melding_key = m.mld_melding_key)
toename_klachtenonderhoud,
(SELECT fac_usrdata_omschr
FROM mld_kenmerkmelding mk,
mld_kenmerk k,
mld_srtkenmerk sk,
fac_kenmerkdomein kd,
fac_usrtab ut,
fac_usrdata ud
WHERE sk.mld_srtkenmerk_code = 'ASPECT6'
AND sk.mld_srtkenmerk_key = k.mld_srtkenmerk_key
AND k.mld_kenmerk_key = mk.mld_kenmerk_key
AND sk.fac_kenmerkdomein_key = kd.fac_kenmerkdomein_key
AND ut.fac_usrtab_key = kd.fac_usrtab_key
AND ud.fac_usrtab_key = ut.fac_usrtab_key
AND TO_CHAR (fac_usrdata_key) = mld_kenmerkmelding_waarde
AND mk.mld_melding_key = m.mld_melding_key)
beleving_esthetica,
(SELECT k.mld_kenmerk_key
FROM mld_kenmerk k, mld_srtkenmerk sk
WHERE sk.mld_srtkenmerk_code = 'FOTO'
AND sk.mld_srtkenmerk_key = k.mld_srtkenmerk_key)
foto,
(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_code = 'GEADVISEERDSTARTJAAR')
geadviseerd_startjaar,
(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_code = 'DATUMGEREEDINSPECTEUR')
datum_gereed_inspecteur,
(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_code = 'KOSTEN')
kosten,
mld_melding_omschrijving,
d.ins_deel_mjb_score1,
d.ins_deel_mjb_score2
FROM mld_melding m,
mld_melding_object mo,
ins_deel d,
ins_srtdeel isd,
ins_srtgroep isg,
ins_discipline id,
alg_v_allonrgoed_gegevens aog,
alg_locatie l,
mld_statuses s,
prs_v_perslid_fullnames_all pf,
mld_stdmelding std
WHERE m.mld_melding_key = mo.mld_melding_key
AND d.ins_deel_key = mo.ins_deel_key
AND d.ins_srtdeel_key = isd.ins_srtdeel_key
AND isd.ins_srtgroep_key = isg.ins_srtgroep_key
AND isg.ins_discipline_key = id.ins_discipline_key
AND m.mld_alg_onroerendgoed_keys = aog.alg_onroerendgoed_keys
AND l.alg_locatie_key = aog.alg_locatie_key
AND s.mld_statuses_key = m.mld_melding_status
AND m.prs_perslid_key = pf.prs_perslid_key
AND m.mld_stdmelding_key = std.mld_stdmelding_key;
------ 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