26578 lines
1.1 MiB
26578 lines
1.1 MiB
--
|
||
-- $Id$
|
||
--
|
||
-- Script containing customer generic configuration sql statements for HEYDAY
|
||
|
||
DEFINE thisfile = 'AAXX.SQL'
|
||
DEFINE dbuser = 'AAXX'
|
||
|
||
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
|
||
|
||
|
||
@@aa_prs_pack.sql;
|
||
|
||
--=============================================================================
|
||
-- EXPORTFUNCTIES GENERIEK
|
||
-------------------------------------------------------------------------------
|
||
CREATE OR REPLACE FUNCTION aaxx_exp_escape (a VARCHAR2) RETURN VARCHAR2
|
||
AS
|
||
BEGIN
|
||
RETURN replace(a, '"', '''');
|
||
END aaxx_exp_escape;
|
||
/
|
||
|
||
CREATE OR REPLACE FUNCTION aaxx_get_user
|
||
RETURN VARCHAR2
|
||
AS
|
||
v_user VARCHAR2 (20);
|
||
BEGIN
|
||
v_user := SUBSTR (USER, 1, 4);
|
||
|
||
-- DWH views komen binnen onder user AAFM. Dan werkt get user niet meer. In dat geval
|
||
-- halen we nu de informatie uit de fac_version tabel
|
||
IF v_user = 'AAFM' THEN
|
||
SELECT UPPER(fac_version_cust)
|
||
INTO v_user
|
||
FROM fac_version;
|
||
END IF;
|
||
IF v_user = 'AAAH' THEN RETURN 'AH'; END IF;
|
||
IF v_user = 'AAAR' THEN RETURN 'ARCADIS'; END IF;
|
||
IF v_user = 'AADS' THEN RETURN 'DSM'; END IF;
|
||
IF v_user = 'AAES' THEN RETURN 'ESSENT'; END IF;
|
||
IF v_user = 'AAGN' THEN RETURN 'GN'; END IF;
|
||
IF v_user = 'AAIT' THEN RETURN 'IT'; END IF;
|
||
IF v_user = 'AASA' THEN RETURN 'SABIC'; END IF;
|
||
IF v_user = 'ALLR' THEN RETURN 'ALLIANDER'; END IF;
|
||
IF v_user = 'CVGZ' THEN RETURN 'VGZ'; END IF;
|
||
IF v_user = 'GULU' THEN RETURN 'GUL'; END IF;
|
||
IF v_user = 'NMMS' THEN RETURN 'NMM'; END IF;
|
||
IF v_user = 'REME' THEN RETURN 'REMEHA'; END IF;
|
||
IF v_user = 'MENZ' THEN RETURN 'MENZIS'; END IF;
|
||
RETURN v_user;
|
||
END aaxx_get_user;
|
||
/
|
||
|
||
CREATE OR REPLACE FUNCTION aaxx_get_user_sub (p_aaxx_get_user IN VARCHAR2,
|
||
p_user_exactcode IN VARCHAR2
|
||
) RETURN VARCHAR2
|
||
AS
|
||
v_user_sub VARCHAR2(60);
|
||
|
||
BEGIN
|
||
|
||
IF p_aaxx_get_user = 'INLO' THEN
|
||
|
||
SELECT UPPER(fud.fac_usrdata_omschr)
|
||
INTO v_user_sub
|
||
FROM fac_usrtab fut, fac_usrdata fud
|
||
WHERE fut.fac_usrtab_key = 81
|
||
AND fut.fac_usrtab_key = fud.fac_usrtab_key
|
||
AND fud.fac_usrdata_verwijder IS NULL
|
||
AND (
|
||
fud.fac_usrdata_vervaldatum IS NULL
|
||
OR
|
||
(fud.fac_usrdata_vervaldatum IS NOT NULL AND TRUNC(fud.fac_usrdata_vervaldatum) > TRUNC(SYSDATE) )
|
||
)
|
||
AND fud.fac_usrdata_upper = p_user_exactcode
|
||
GROUP BY fud.fac_usrdata_omschr ;
|
||
|
||
ELSE
|
||
v_user_sub := NULL;
|
||
END IF;
|
||
|
||
RETURN v_user_sub;
|
||
|
||
END aaxx_get_user_sub;
|
||
/
|
||
|
||
-- functie om geimporteerde bedragen te converteren naar getallen.
|
||
CREATE OR REPLACE FUNCTION aaxx_get_imp_float (f_float VARCHAR2)
|
||
RETURN NUMBER
|
||
AS
|
||
v_komma_pos NUMBER;
|
||
v_punt_pos NUMBER;
|
||
v_float_text VARCHAR2 (100);
|
||
BEGIN
|
||
v_punt_pos := INSTR (f_float, '.');
|
||
v_komma_pos := INSTR (f_float, ',');
|
||
|
||
IF v_punt_pos <> 0 AND v_komma_pos <> 0
|
||
THEN
|
||
IF v_punt_pos > v_komma_pos
|
||
THEN
|
||
v_float_text := REPLACE (f_float, ',', '');
|
||
ELSE
|
||
v_float_text := REPLACE (f_float, '.', '');
|
||
END IF;
|
||
ELSE
|
||
v_float_text := f_float;
|
||
END IF;
|
||
|
||
RETURN fac.safe_to_number (REPLACE (v_float_text, ',', '.'));
|
||
END;
|
||
/
|
||
|
||
-- view met gegevens over een bestelling en bestelopdracht
|
||
CREATE OR REPLACE VIEW aaxx_v_bestelgegevens
|
||
AS
|
||
SELECT boi.bes_bestelopdr_key,
|
||
bes_bestelopdr_id,
|
||
sg.ins_discipline_key,
|
||
be.mld_adres_key_lev,
|
||
be.bes_bestelling_leverdatum,
|
||
bo.prs_bedrijf_key
|
||
FROM bes_bestelling be,
|
||
bes_bestelling_item bi,
|
||
bes_bestelopdr bo,
|
||
bes_bestelopdr_item boi,
|
||
bes_srtdeel sd,
|
||
bes_srtgroep sg
|
||
WHERE be.bes_bestelling_key = bi.bes_bestelling_key
|
||
AND bi.bes_bestelopdr_item_key = boi.bes_bestelopdr_item_key
|
||
AND boi.bes_bestelopdr_key = bo.bes_bestelopdr_key
|
||
AND bi.bes_srtdeel_key = sd.bes_srtdeel_key
|
||
AND sd.bes_srtgroep_key = sg.bes_srtgroep_key;
|
||
|
||
|
||
-- View om de exact code van een gebouw te bepalen.
|
||
CREATE OR REPLACE VIEW aaxx_v_exact_code_gebouw (
|
||
alg_gebouw_key,
|
||
exact_code)
|
||
AS
|
||
SELECT alg_onrgoed_key alg_gebouw_key,
|
||
alg_onrgoedkenmerk_waarde exact_code
|
||
FROM alg_onrgoedkenmerk kw, alg_kenmerk k
|
||
WHERE alg_onrgoed_niveau = 'G'
|
||
AND kw.alg_kenmerk_key = k.alg_kenmerk_key
|
||
AND k.alg_kenmerk_verwijder IS NULL
|
||
AND k.alg_kenmerk_upper = 'CODE EXACT' ;
|
||
|
||
-- View om de exact code van een district te bepalen.
|
||
CREATE OR REPLACE VIEW aaxx_v_exact_code_district
|
||
(
|
||
alg_district_key,
|
||
exact_code
|
||
)
|
||
AS
|
||
SELECT alg_onrgoed_key alg_district_key,
|
||
alg_onrgoedkenmerk_waarde exact_code
|
||
FROM alg_onrgoedkenmerk kw, alg_kenmerk k
|
||
WHERE alg_onrgoed_niveau = 'D'
|
||
AND kw.alg_kenmerk_key = k.alg_kenmerk_key
|
||
AND k.alg_kenmerk_verwijder IS NULL
|
||
AND k.alg_kenmerk_upper = 'CODE EXACT' ;
|
||
|
||
-- View om de klantcode van een gebouw te bepalen.
|
||
-- Vooralsnog specifieke inrichting voor INLO (ticket 57359)
|
||
CREATE OR REPLACE VIEW aaxx_v_klantcode_gebouw
|
||
(
|
||
alg_gebouw_key,
|
||
klantcode
|
||
)
|
||
AS
|
||
SELECT g.alg_gebouw_key, fud.fac_usrdata_upper
|
||
FROM alg_gebouw g, alg_onrgoedkenmerk k, fac_usrdata fud
|
||
WHERE g.alg_gebouw_key = k.alg_onrgoed_key
|
||
AND k.alg_onrgoed_niveau = 'G'
|
||
AND alg_kenmerk_key = DECODE (aaxx_get_user, 'INLO', 1100, 1100)
|
||
AND fac.safe_to_number(k.alg_onrgoedkenmerk_waarde) = fud.fac_usrdata_key;
|
||
|
||
-- View om de exact code van een gebouw te bepalen op basis van een factuurkey
|
||
-- Op dit moment ondersteunen we dit alleen bij opdrachten en contracten
|
||
CREATE OR REPLACE VIEW aaxx_v_exact_code_gebouw_fac
|
||
(
|
||
fin_factuur_key,
|
||
exact_code
|
||
)
|
||
AS
|
||
SELECT fin_factuur_key, exact_code
|
||
FROM fin_factuur f,
|
||
mld_opdr o,
|
||
mld_melding m,
|
||
alg_v_onroerendgoed og,
|
||
aaxx_v_exact_code_gebouw eg
|
||
WHERE f.mld_opdr_key = o.mld_opdr_key
|
||
AND o.mld_melding_key = m.mld_melding_key
|
||
AND m.mld_alg_onroerendgoed_keys = og.alg_onroerendgoed_keys
|
||
AND og.alg_gebouw_key = eg.alg_gebouw_key
|
||
UNION ALL
|
||
SELECT fin_factuur_key, exact_code
|
||
FROM fin_factuur f, cnt_contract_plaats cp, aaxx_v_exact_code_gebouw eg
|
||
WHERE f.cnt_contract_key = cp.cnt_contract_key
|
||
AND cp.cnt_alg_plaats_key = eg.alg_gebouw_key
|
||
AND cp.cnt_alg_plaats_code = 'G'
|
||
UNION ALL
|
||
SELECT DISTINCT fin_factuur_key, exact_code
|
||
FROM fin_factuur f,
|
||
aaxx_v_bestelgegevens bg,
|
||
mld_adres ma,
|
||
aaxx_v_exact_code_gebouw eg,
|
||
alg_gebouw g
|
||
WHERE f.bes_bestelopdr_key = bg.bes_bestelopdr_key
|
||
AND bg.mld_adres_key_lev = ma.mld_adres_key(+)
|
||
AND ma.mld_adres_gebouw_ruimte = g.alg_gebouw_code(+)
|
||
AND g.alg_gebouw_key = eg.alg_gebouw_key(+);
|
||
|
||
-- View om de exact code van een district te bepalen op basis van een factuurkey
|
||
-- Op dit moment alleen nog voor DSM
|
||
CREATE OR REPLACE VIEW aaxx_v_exact_code_district_fac
|
||
(
|
||
fin_factuur_key,
|
||
exact_code
|
||
)
|
||
AS
|
||
SELECT fin_factuur_key, exact_code
|
||
FROM fin_factuur f,
|
||
mld_opdr o,
|
||
mld_melding m,
|
||
alg_v_allonrgoed_gegevens og,
|
||
alg_locatie l,
|
||
aaxx_v_exact_code_district aed
|
||
WHERE f.mld_opdr_key = o.mld_opdr_key
|
||
AND o.mld_melding_key = m.mld_melding_key
|
||
AND m.mld_alg_onroerendgoed_keys = og.alg_onroerendgoed_keys
|
||
AND og.alg_locatie_key = l.alg_locatie_key
|
||
AND l.alg_district_key = aed.alg_district_key
|
||
UNION ALL
|
||
SELECT fin_factuur_key, exact_code
|
||
FROM fin_factuur f,
|
||
cnt_contract_plaats cp,
|
||
alg_gebouw g,
|
||
alg_locatie l,
|
||
aaxx_v_exact_code_district aed
|
||
WHERE f.cnt_contract_key = cp.cnt_contract_key
|
||
AND cp.cnt_alg_plaats_key = g.alg_gebouw_key
|
||
AND g.alg_locatie_key = l.alg_locatie_key
|
||
AND l.alg_district_key = aed.alg_district_key
|
||
AND cp.cnt_alg_plaats_code = 'G'
|
||
GROUP BY fin_factuur_key, exact_code
|
||
UNION ALL
|
||
SELECT fin_factuur_key, exact_code
|
||
FROM fin_factuur f,
|
||
cnt_contract_plaats cp,
|
||
alg_locatie l,
|
||
aaxx_v_exact_code_district aed
|
||
WHERE f.cnt_contract_key = cp.cnt_contract_key
|
||
AND cp.cnt_alg_plaats_key = l.alg_locatie_key
|
||
AND l.alg_district_key = aed.alg_district_key
|
||
AND cp.cnt_alg_plaats_code = 'L'
|
||
GROUP BY fin_factuur_key, exact_code
|
||
UNION ALL
|
||
SELECT DISTINCT fin_factuur_key, exact_code
|
||
FROM fin_factuur f,
|
||
aaxx_v_bestelgegevens bg,
|
||
mld_adres ma,
|
||
aaxx_v_exact_code_district aed,
|
||
(SELECT g.alg_gebouw_key, g.alg_gebouw_code, l.alg_district_key
|
||
FROM alg_gebouw g, alg_locatie l
|
||
WHERE g.alg_locatie_key = l.alg_locatie_key) vg
|
||
WHERE f.bes_bestelopdr_key = bg.bes_bestelopdr_key
|
||
AND bg.mld_adres_key_lev = ma.mld_adres_key(+)
|
||
AND ma.mld_adres_gebouw_ruimte = vg.alg_gebouw_code(+)
|
||
AND vg.alg_district_key = aed.alg_district_key(+);
|
||
|
||
-- View om de klantcode van een gebouw te bepalen op basis van een factuurkey
|
||
-- Vooralsnog specifieke inrichting voor INLO (ticket 57359)
|
||
CREATE OR REPLACE VIEW aaxx_v_klantcode_gebouw_fac
|
||
(
|
||
fin_factuur_key,
|
||
klantcode
|
||
)
|
||
AS
|
||
SELECT fin_factuur_key, klantcode
|
||
FROM fin_factuur f,
|
||
mld_opdr o,
|
||
mld_melding m,
|
||
alg_v_onroerendgoed og,
|
||
aaxx_v_klantcode_gebouw kg
|
||
WHERE f.mld_opdr_key = o.mld_opdr_key
|
||
AND o.mld_melding_key = m.mld_melding_key
|
||
AND m.mld_alg_onroerendgoed_keys = og.alg_onroerendgoed_keys
|
||
AND og.alg_gebouw_key = kg.alg_gebouw_key
|
||
UNION ALL
|
||
SELECT fin_factuur_key, klantcode
|
||
FROM fin_factuur f, cnt_contract_plaats cp, aaxx_v_klantcode_gebouw kg
|
||
WHERE f.cnt_contract_key = cp.cnt_contract_key
|
||
AND cp.cnt_alg_plaats_key = kg.alg_gebouw_key
|
||
AND cp.cnt_alg_plaats_code = 'G'
|
||
GROUP BY fin_factuur_key, klantcode
|
||
UNION ALL
|
||
SELECT fin_factuur_key, klantcode
|
||
FROM fin_factuur f,
|
||
aaxx_v_bestelgegevens bg,
|
||
mld_adres ma,
|
||
aaxx_v_klantcode_gebouw kg,
|
||
alg_gebouw g
|
||
WHERE f.bes_bestelopdr_key = bg.bes_bestelopdr_key
|
||
AND bg.mld_adres_key_lev = ma.mld_adres_key(+)
|
||
AND ma.mld_adres_gebouw_ruimte = g.alg_gebouw_code(+)
|
||
AND g.alg_gebouw_key = kg.alg_gebouw_key(+)
|
||
GROUP BY fin_factuur_key, klantcode;
|
||
|
||
-- Hulpview voor financiele interface tbv opdrachttype 'Projectorder' en 'Projectorder (externe uren)'
|
||
CREATE OR REPLACE VIEW AAXX_V_PROJECTORDERS_BRON
|
||
(
|
||
VAKGROEPTYPE,
|
||
VAKGROEP,
|
||
MLD_MELDING_KEY,
|
||
HTML_MELDING,
|
||
MELDING_STATUS,
|
||
MLD_OPDR_KEY,
|
||
MLD_OPDR_NR,
|
||
HTML_OPDRACHT,
|
||
OPDRACHT_STATUS,
|
||
MLD_OPDR_DATUMBEGIN,
|
||
MLD_TYPEOPDR_OMSCHRIJVING,
|
||
MLD_PROJECT_VOORWAARDEN, -- relatietype voor PR (MA of CP)
|
||
MLD_MELDING_OPMERKING,
|
||
MLD_PROJECT_OMSCHRIJVING,
|
||
MLD_PROJECT_OPDRACHTOMSCHR,
|
||
MLD_PROJECT_NR,
|
||
MLD_PO_NR,
|
||
MLD_PO_NR_AFW,
|
||
MLD_PROJECTMARGE,
|
||
MLD_PROJECTMARGE_VAST,
|
||
OPDR_PROJECT_INKOOPTARIEF,
|
||
OPDR_PROJECT_VERKOOPTARIEF,
|
||
PO_NR,
|
||
FEE_PROC,
|
||
FEE_VAST,
|
||
FEE_EXTERNE_UREN,
|
||
INLO_SUBACCOUNT,
|
||
KOSTENPLAATS,
|
||
KOSTENPLAATSGROEP,
|
||
VERKOOPFACTUREN_AANWEZIG,
|
||
AANTAL_REGELS_BEDRAG,
|
||
AANTAL_REGELS_OPDRACHT,
|
||
AANTAL_REGELS_FEE,
|
||
AANTAL_REGELS_FEE_VAST,
|
||
AANTAL_REGELS_OPDRACHT_VERWERKT,
|
||
AANTAL_REGELS_FEE_VERWERKT,
|
||
AANTAL_RUNS_VERWERKT
|
||
)
|
||
AS
|
||
SELECT v.ins_srtdiscipline_omschrijving,
|
||
v.ins_discipline_omschrijving,
|
||
v.mld_melding_key,
|
||
'<a class="details" onclick=''FcltMgr.openDetail("appl/mld/mld_melding.asp?urole=bo&'||'mld_key='
|
||
|| v.mld_melding_key
|
||
|| '")''>'
|
||
|| 'klik naar ' || v.mld_project_nr
|
||
|| '</a>'
|
||
html_melding,
|
||
v.melding_status,
|
||
v.mld_opdr_key,
|
||
v.mld_opdr_nr,
|
||
'<a class="details" onclick=''FcltMgr.openDetail("appl/mld/mld_opdr.asp?urole=bo&'||'opdr_key='
|
||
|| v.mld_opdr_key
|
||
|| '")''>'
|
||
|| 'klik naar ' || v.mld_opdr_nr
|
||
|| '</a>'
|
||
html_opdracht,
|
||
v.opdracht_status,
|
||
v.mld_opdr_datumbegin,
|
||
v.mld_typeopdr_omschrijving,
|
||
v.mld_project_voorwaarden,
|
||
v.mld_melding_opmerking,
|
||
v.mld_project_omschrijving,
|
||
v.mld_project_opdrachtomschr,
|
||
v.mld_project_nr,
|
||
v.mld_po_nr,
|
||
v.mld_po_nr_afw,
|
||
v.mld_projectmarge,
|
||
v.mld_projectmarge_vast,
|
||
v.opdr_project_inkooptarief,
|
||
v.opdr_project_verkooptarief,
|
||
COALESCE (v.mld_po_nr_afw, v.mld_po_nr, 'onbekend')
|
||
po_nr,
|
||
CASE
|
||
WHEN v.mld_typeopdr_omschrijving = 'Projectorder'
|
||
AND fac.safe_to_number(v.mld_projectmarge) IS NOT NULL
|
||
AND v.mld_projectmarge <> 0
|
||
THEN TO_CHAR ((100 + v.mld_projectmarge) / 100)
|
||
WHEN v.mld_typeopdr_omschrijving = 'Projectorder'
|
||
AND fac.safe_to_number(v.mld_projectmarge) IS NOT NULL
|
||
AND v.mld_projectmarge = 0
|
||
THEN TO_CHAR(0)
|
||
ELSE
|
||
'onbekend'
|
||
END
|
||
fee_proc,
|
||
CASE
|
||
WHEN v.mld_typeopdr_omschrijving = 'Projectorder'
|
||
AND fac.safe_to_number(v.mld_projectmarge_vast) IS NOT NULL
|
||
THEN TO_CHAR(v.mld_projectmarge_vast)
|
||
ELSE
|
||
'onbekend'
|
||
END
|
||
fee_vast,
|
||
CASE
|
||
WHEN v.mld_typeopdr_omschrijving = 'Projectorder (externe uren)'
|
||
AND v.opdr_project_inkooptarief IS NOT NULL
|
||
AND v.opdr_project_verkooptarief IS NOT NULL
|
||
THEN TO_CHAR (ROUND (v.opdr_project_verkooptarief / v.opdr_project_inkooptarief, 3))
|
||
ELSE 'onbekend'
|
||
END
|
||
fee_externe_uren,
|
||
(SELECT aaxx_get_user_sub ('INLO', exact_k.klantcode)
|
||
FROM alg_v_onroerendgoed onr, aaxx_v_klantcode_gebouw exact_k
|
||
WHERE onr.alg_gebouw_key = exact_k.alg_gebouw_key
|
||
AND onr.alg_onroerendgoed_keys = v.mld_alg_onroerendgoed_keys)
|
||
inlo_subaccount,
|
||
v.kostenplaats,
|
||
v.kostenplaatsgroep,
|
||
-- verkoopfacturen
|
||
CASE
|
||
WHEN w.mld_opdr_key IS NULL
|
||
THEN 'nee'
|
||
ELSE 'ja'
|
||
END
|
||
verkoopfacturen_aanwezig,
|
||
w.aantal_regels_bedrag,
|
||
w.aantal_regels_opdracht,
|
||
w.aantal_regels_fee,
|
||
w.aantal_regels_fee_vast,
|
||
w.aantal_regels_opdracht_verwerkt,
|
||
w.aantal_regels_fee_verwerkt,
|
||
w.aantal_runs_verwerkt
|
||
FROM (SELECT m.mld_melding_key,
|
||
d.ins_discipline_omschrijving,
|
||
sd.ins_srtdiscipline_omschrijving,
|
||
m.mld_alg_onroerendgoed_keys,
|
||
(SELECT mld_statuses_omschrijving
|
||
FROM mld_statuses
|
||
WHERE mld_statuses_key = m.mld_melding_status)
|
||
melding_status,
|
||
o.mld_opdr_key,
|
||
sd.ins_srtdiscipline_prefix
|
||
|| m.mld_melding_key
|
||
|| '/'
|
||
|| o.mld_opdr_bedrijfopdr_volgnr
|
||
mld_opdr_nr,
|
||
(SELECT mld_statusopdr_omschrijving
|
||
FROM mld_statusopdr
|
||
WHERE mld_statusopdr_key = o.mld_statusopdr_key)
|
||
opdracht_status,
|
||
o.mld_opdr_datumbegin,
|
||
ot.mld_typeopdr_omschrijving,
|
||
m.mld_melding_opmerking,
|
||
TO_CHAR (
|
||
(SELECT DISTINCT COALESCE (mld_kenmerkmelding_waarde, '')
|
||
FROM mld_kenmerkmelding km,
|
||
mld_kenmerk k,
|
||
mld_srtkenmerk sk
|
||
WHERE km.mld_melding_key = o.mld_melding_key
|
||
AND k.mld_kenmerk_key = km.mld_kenmerk_key
|
||
AND k.mld_srtkenmerk_key = sk.mld_srtkenmerk_key
|
||
AND km.mld_kenmerkmelding_verwijder IS NULL
|
||
AND k.mld_kenmerk_verwijder IS NULL
|
||
AND sk.mld_srtkenmerk_omschrijving = 'Projectnaam'))
|
||
mld_project_omschrijving,
|
||
TO_CHAR(
|
||
(SELECT DISTINCT COALESCE(mld_kenmerkopdr_waarde, '')
|
||
FROM mld_kenmerkopdr ko,
|
||
mld_kenmerk k,
|
||
mld_srtkenmerk sk
|
||
WHERE ko.mld_opdr_key = o.mld_opdr_key
|
||
AND k.mld_kenmerk_key = ko.mld_kenmerk_key
|
||
AND k.mld_srtkenmerk_key = sk.mld_srtkenmerk_key
|
||
AND ko.mld_kenmerkopdr_verwijder IS NULL
|
||
AND k.mld_kenmerk_verwijder IS NULL
|
||
AND sk.mld_srtkenmerk_omschrijving = 'Project-opdrachtomschrijving'))
|
||
mld_project_opdrachtomschr,
|
||
TO_CHAR (
|
||
(SELECT DISTINCT COALESCE (ud.fac_usrdata_omschr, '')
|
||
FROM mld_kenmerkmelding km,
|
||
mld_kenmerk k,
|
||
mld_srtkenmerk sk,
|
||
fac_usrtab ut,
|
||
fac_usrdata ud
|
||
WHERE km.mld_melding_key = o.mld_melding_key
|
||
AND k.mld_kenmerk_key = km.mld_kenmerk_key
|
||
AND k.mld_srtkenmerk_key = sk.mld_srtkenmerk_key
|
||
AND km.mld_kenmerkmelding_verwijder IS NULL
|
||
AND k.mld_kenmerk_verwijder IS NULL
|
||
AND sk.mld_srtkenmerk_omschrijving =
|
||
'Project voorwaarden'
|
||
AND ud.fac_usrdata_key =
|
||
fac.safe_to_number (
|
||
km.mld_kenmerkmelding_waarde)
|
||
AND ud.fac_usrtab_key = ut.fac_usrtab_key
|
||
AND UPPER (ut.fac_usrtab_naam) = 'PR-VOORWAARDEN'))
|
||
mld_project_voorwaarden,
|
||
sd.ins_srtdiscipline_prefix || m.mld_melding_key
|
||
mld_project_nr,
|
||
TO_CHAR (
|
||
(SELECT DISTINCT COALESCE (mld_kenmerkmelding_waarde, '')
|
||
FROM mld_kenmerkmelding km,
|
||
mld_kenmerk k,
|
||
mld_srtkenmerk sk
|
||
WHERE km.mld_melding_key = o.mld_melding_key
|
||
AND k.mld_kenmerk_key = km.mld_kenmerk_key
|
||
AND k.mld_srtkenmerk_key = sk.mld_srtkenmerk_key
|
||
AND km.mld_kenmerkmelding_verwijder IS NULL
|
||
AND k.mld_kenmerk_verwijder IS NULL
|
||
AND sk.mld_srtkenmerk_omschrijving =
|
||
'Ordernummer klant'))
|
||
mld_po_nr,
|
||
TO_CHAR (
|
||
(SELECT DISTINCT COALESCE (mld_kenmerkopdr_waarde, '')
|
||
FROM mld_kenmerkopdr ko,
|
||
mld_kenmerk k,
|
||
mld_srtkenmerk sk
|
||
WHERE ko.mld_opdr_key = o.mld_opdr_key
|
||
AND k.mld_kenmerk_key = ko.mld_kenmerk_key
|
||
AND k.mld_srtkenmerk_key = sk.mld_srtkenmerk_key
|
||
AND ko.mld_kenmerkopdr_verwijder IS NULL
|
||
AND k.mld_kenmerk_verwijder IS NULL
|
||
AND sk.mld_srtkenmerk_omschrijving =
|
||
'Ordernummer klant'))
|
||
mld_po_nr_afw, -- op opdrachtniveau als overrule
|
||
fac.safe_to_number (
|
||
(SELECT DISTINCT COALESCE (mld_kenmerkmelding_waarde, '')
|
||
FROM mld_kenmerkmelding km,
|
||
mld_kenmerk k,
|
||
mld_srtkenmerk sk
|
||
WHERE km.mld_melding_key = o.mld_melding_key
|
||
AND k.mld_kenmerk_key = km.mld_kenmerk_key
|
||
AND k.mld_srtkenmerk_key = sk.mld_srtkenmerk_key
|
||
AND km.mld_kenmerkmelding_verwijder IS NULL
|
||
AND k.mld_kenmerk_verwijder IS NULL
|
||
AND sk.mld_srtkenmerk_omschrijving =
|
||
'Projectmarge'))
|
||
mld_projectmarge,
|
||
fac.safe_to_number (
|
||
(SELECT DISTINCT COALESCE (mld_kenmerkmelding_waarde, '')
|
||
FROM mld_kenmerkmelding km,
|
||
mld_kenmerk k,
|
||
mld_srtkenmerk sk
|
||
WHERE km.mld_melding_key = o.mld_melding_key
|
||
AND k.mld_kenmerk_key = km.mld_kenmerk_key
|
||
AND k.mld_srtkenmerk_key = sk.mld_srtkenmerk_key
|
||
AND km.mld_kenmerkmelding_verwijder IS NULL
|
||
AND k.mld_kenmerk_verwijder IS NULL
|
||
AND sk.mld_srtkenmerk_omschrijving =
|
||
'Projectmarge vast'))
|
||
mld_projectmarge_vast,
|
||
fac.safe_to_number (
|
||
(SELECT DISTINCT COALESCE (mld_kenmerkopdr_waarde, '')
|
||
FROM mld_kenmerkopdr ko,
|
||
mld_kenmerk k,
|
||
mld_srtkenmerk sk
|
||
WHERE ko.mld_opdr_key = o.mld_opdr_key
|
||
AND k.mld_kenmerk_key = ko.mld_kenmerk_key
|
||
AND k.mld_srtkenmerk_key = sk.mld_srtkenmerk_key
|
||
AND ko.mld_kenmerkopdr_verwijder IS NULL
|
||
AND k.mld_kenmerk_verwijder IS NULL
|
||
AND sk.mld_srtkenmerk_omschrijving = '(Uur)tarief'))
|
||
opdr_project_inkooptarief,
|
||
fac.safe_to_number (
|
||
(SELECT DISTINCT COALESCE (mld_kenmerkopdr_waarde, '')
|
||
FROM mld_kenmerkopdr ko,
|
||
mld_kenmerk k,
|
||
mld_srtkenmerk sk
|
||
WHERE ko.mld_opdr_key = o.mld_opdr_key
|
||
AND k.mld_kenmerk_key = ko.mld_kenmerk_key
|
||
AND k.mld_srtkenmerk_key = sk.mld_srtkenmerk_key
|
||
AND ko.mld_kenmerkopdr_verwijder IS NULL
|
||
AND k.mld_kenmerk_verwijder IS NULL
|
||
AND sk.mld_srtkenmerk_omschrijving =
|
||
'Extern (uur)tarief'))
|
||
opdr_project_verkooptarief,
|
||
kp.prs_kostenplaats_nr || ' ' || kp.prs_kostenplaats_omschrijving
|
||
kostenplaats,
|
||
CASE WHEN kpg.prs_kostenplaatsgrp_key IS NULL
|
||
THEN '<geen subaccount - kostenplaatsgroep>'
|
||
ELSE kpg.prs_kostenplaatsgrp_nr || ' ' || kpg.prs_kostenplaatsgrp_oms
|
||
END
|
||
kostenplaatsgroep
|
||
FROM mld_melding m,
|
||
mld_opdr o,
|
||
prs_kostenplaats kp,
|
||
prs_kostenplaatsgrp kpg,
|
||
mld_typeopdr ot,
|
||
mld_stdmelding std,
|
||
ins_tab_discipline d,
|
||
ins_srtdiscipline sd
|
||
WHERE m.mld_melding_key = o.mld_melding_key
|
||
AND o.mld_typeopdr_key = ot.mld_typeopdr_key
|
||
AND LOWER (SUBSTR (ot.mld_typeopdr_omschrijving, 1, 12)) =
|
||
'projectorder'
|
||
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 o.prs_kostenplaats_key = kp.prs_kostenplaats_key
|
||
AND kp.prs_kostenplaatsgrp_key = kpg.prs_kostenplaatsgrp_key (+)
|
||
) v,
|
||
(
|
||
SELECT b.mld_melding_key,
|
||
b.mld_opdr_key,
|
||
count(*) aantal_regels_bedrag,
|
||
(SELECT count(*) FROM fin_verkoopfactuur WHERE fin_verkoopfactuur_refkey = b.mld_opdr_key AND fin_verkoopfactuur_xmlnode = 'opdracht' AND INSTR(fin_verkoopfactuur_omschr, 'Projectfee')= 0 AND fin_verkoopfactuur_bedrag <> 0)
|
||
aantal_regels_opdracht,
|
||
(SELECT count(*) FROM fin_verkoopfactuur WHERE fin_verkoopfactuur_refkey = b.mld_opdr_key AND fin_verkoopfactuur_xmlnode = 'opdracht' AND INSTR(fin_verkoopfactuur_omschr, 'Projectfee')> 0 AND fin_verkoopfactuur_bedrag <> 0)
|
||
aantal_regels_fee,
|
||
(SELECT count(*) FROM fin_verkoopfactuur WHERE fin_verkoopfactuur_refkey = b.mld_opdr_key AND fin_verkoopfactuur_xmlnode = 'opdracht' AND INSTR(fin_verkoopfactuur_omschr, 'Projectfee vast')> 0 AND fin_verkoopfactuur_bedrag <> 0)
|
||
aantal_regels_fee_vast,
|
||
(SELECT count(*) FROM fin_verkoopfactuur WHERE fin_verkoopfactuur_refkey = b.mld_opdr_key AND fin_verkoopfactuur_xmlnode = 'opdracht' AND INSTR(fin_verkoopfactuur_omschr, 'Projectfee')= 0 AND fin_verkoopfactuur_bedrag <> 0 AND fin_verkoopfactuur_datum IS NOT NULL)
|
||
aantal_regels_opdracht_verwerkt,
|
||
(SELECT count(*) FROM fin_verkoopfactuur WHERE fin_verkoopfactuur_refkey = b.mld_opdr_key AND fin_verkoopfactuur_xmlnode = 'opdracht' AND INSTR(fin_verkoopfactuur_omschr, 'Projectfee')> 0 AND fin_verkoopfactuur_bedrag <> 0 AND fin_verkoopfactuur_datum IS NOT NULL)
|
||
aantal_regels_fee_verwerkt,
|
||
(SELECT count(*) FROM (SELECT fin_verkoopfactuurkop_key FROM fin_verkoopfactuur WHERE fin_verkoopfactuur_refkey = b.mld_opdr_key AND fin_verkoopfactuur_xmlnode = 'opdracht' AND INSTR(fin_verkoopfactuur_omschr, 'Projectfee')= 0 AND fin_verkoopfactuur_bedrag <> 0 AND fin_verkoopfactuur_datum IS NOT NULL GROUP BY fin_verkoopfactuurkop_key))
|
||
aantal_runs_verwerkt
|
||
FROM
|
||
(SELECT o.mld_opdr_key,
|
||
o.mld_melding_key,
|
||
vf.fin_verkoopfactuur_id,
|
||
vf.fin_verkoopfactuur_c6, -- ordernummer_klant
|
||
vf.fin_verkoopfactuur_n2, -- marge vast
|
||
vf.fin_verkoopfactuur_n3, -- marge procedure
|
||
vf.fin_verkoopfactuur_bedrag,
|
||
vf.fin_verkoopfactuur_datum,
|
||
CASE WHEN INSTR(vf.fin_verkoopfactuur_omschr, 'Projectfee')> 0 THEN 'FEE' ELSE 'OPDRACHT' END soort_regel,
|
||
vf.fin_verkoopfactuurkop_key
|
||
FROM fin_verkoopfactuur vf, mld_opdr o
|
||
WHERE vf.fin_verkoopfactuur_refkey = o.mld_opdr_key
|
||
AND vf.fin_verkoopfactuur_xmlnode = 'opdracht'
|
||
AND vf.fin_verkoopfactuur_c8 = 'PROJECT'
|
||
AND vf.fin_verkoopfactuur_bedrag <> 0
|
||
ORDER BY o.mld_melding_key, o.mld_opdr_key) b
|
||
GROUP BY b.mld_melding_key, b.mld_opdr_key
|
||
) w -- verkoopfacturen op deze mld_opdr
|
||
WHERE v.mld_opdr_key = w.mld_opdr_key (+) ;
|
||
|
||
-- In eigen tabel BTW_VK_INTERFACE is voor HEYDAY de mapping inkoop-btw naar verkoop-btw opgenomen
|
||
--- de daarin opgenomen codes zijn de exact-codes
|
||
--- met deze functie haal je der exact-verkoop-btw-code op die hoort bij de exact-inkoop-btw-code.
|
||
--- ps. wordt gebruikt voor verkoopinterface om op de aan te maken verkoopfactuur de juiste btw-code te krijgen
|
||
CREATE OR REPLACE FUNCTION aaxx_get_verkoop_btw_code (
|
||
p_btwtabelwaarde_key IN NUMBER,
|
||
p_retour IN NUMBER DEFAULT NULL
|
||
) RETURN VARCHAR2
|
||
AS
|
||
v_fac_usrtab_key NUMBER;
|
||
v_btw_inkoopcode VARCHAR(10) ;
|
||
v_btw_verkoopcode VARCHAR2(10);
|
||
v_btw_verkoopperc VARCHAR2(10);
|
||
v_retour VARCHAR2(10) := 'onbekend' ;
|
||
|
||
BEGIN
|
||
|
||
-- BTW - conversie-tabel-key ophalen
|
||
SELECT MAX(fac_usrtab_key)
|
||
INTO v_fac_usrtab_key
|
||
FROM fac_usrtab
|
||
WHERE UPPER(fac_usrtab_naam) = 'BTW_VK_INTERFACE'
|
||
AND fac_usrtab_verwijder IS NULL ;
|
||
|
||
-- BTW - inkoopcode ophalen
|
||
SELECT MAX(fin_btwtabelwaarde_code)
|
||
INTO v_btw_inkoopcode
|
||
FROM fin_btwtabelwaarde
|
||
WHERE fin_btwtabelwaarde_key = p_btwtabelwaarde_key;
|
||
|
||
|
||
IF v_fac_usrtab_key IS NOT NULL AND v_btw_inkoopcode IS NOT NULL
|
||
THEN
|
||
|
||
-- Op basis inkoopcode gaan we de verkoopcode uit de eigen tabel halen
|
||
BEGIN
|
||
|
||
SELECT fac_usrdata_omschr, fac_usrdata_volgnr
|
||
INTO v_btw_verkoopcode, v_btw_verkoopperc
|
||
FROM fac_usrdata
|
||
WHERE fac_usrtab_key = v_fac_usrtab_key
|
||
AND fac_usrdata_code = v_btw_inkoopcode
|
||
AND fac_usrdata_verwijder IS NULL ;
|
||
|
||
EXCEPTION
|
||
WHEN NO_DATA_FOUND
|
||
THEN
|
||
v_btw_verkoopcode := 'onbekend';
|
||
v_btw_verkoopperc := 'onbekend' ;
|
||
END;
|
||
|
||
IF p_retour IS NULL OR p_retour = 1
|
||
THEN
|
||
|
||
v_retour := v_btw_verkoopcode ;
|
||
|
||
END IF;
|
||
|
||
IF p_retour = 2
|
||
THEN
|
||
|
||
v_retour := v_btw_verkoopperc || '%' ;
|
||
|
||
END IF;
|
||
|
||
|
||
END IF;
|
||
|
||
RETURN v_retour;
|
||
|
||
END aaxx_get_verkoop_btw_code;
|
||
/
|
||
|
||
-- In eigen tabel BTW_VK_INTERFACE is voor HEYDAY de mapping inkoop-btw naar verkoop-btw opgenomen
|
||
---- de daarin opgenomen codes zijn de exact-codes
|
||
---- met deze functie halen we het percentage op behorende bij de verkoop-btw-code
|
||
CREATE OR REPLACE FUNCTION aaxx_get_verkoop_btw_perc (
|
||
p_btw_verkoopcode IN VARCHAR2
|
||
) RETURN NUMBER
|
||
AS
|
||
v_fac_usrtab_key NUMBER;
|
||
v_btw_verkoopperc VARCHAR2(10);
|
||
v_retour NUMBER ;
|
||
|
||
BEGIN
|
||
|
||
-- BTW - conversie-tabel-key ophalen
|
||
SELECT MAX(fac_usrtab_key)
|
||
INTO v_fac_usrtab_key
|
||
FROM fac_usrtab
|
||
WHERE UPPER(fac_usrtab_naam) = 'BTW_VK_INTERFACE'
|
||
AND fac_usrtab_verwijder IS NULL ;
|
||
|
||
IF v_fac_usrtab_key IS NOT NULL
|
||
THEN
|
||
|
||
-- Op basis verkoopcode gaan we het percentage ophalen
|
||
|
||
SELECT MAX(fac_usrdata_volgnr)
|
||
INTO v_btw_verkoopperc
|
||
FROM fac_usrdata
|
||
WHERE fac_usrtab_key = v_fac_usrtab_key
|
||
AND fac_usrdata_omschr = p_btw_verkoopcode
|
||
AND fac_usrdata_verwijder IS NULL ;
|
||
|
||
v_retour := v_btw_verkoopperc ;
|
||
|
||
END IF;
|
||
|
||
RETURN v_retour;
|
||
|
||
END aaxx_get_verkoop_btw_perc;
|
||
/
|
||
|
||
|
||
-- script om uurlijks terugkerende scripts aan te roepen. Kan aangeroepen worden vanuit de klantomgeving
|
||
-- indien er voor die klant ook specifieke zaken dagelijks geregeld moeten worden.
|
||
CREATE OR REPLACE PROCEDURE aaxx_hourly_task (p_applname IN VARCHAR2, p_applrun IN VARCHAR2)
|
||
AS
|
||
BEGIN
|
||
-- vul bij de opdrachten het kenmerk relatietype in voor opdrachten
|
||
-- die vandaag aangemaakt zijn. Dit doen we door naar de eerste datum in
|
||
-- de tracking te kijken.
|
||
-- het kenmerk mag niet al aanwezig zijn.
|
||
INSERT INTO mld_kenmerkopdr (mld_kenmerk_key, mld_opdr_key, mld_kenmerkopdr_waarde)
|
||
SELECT k.mld_kenmerk_key, o.mld_opdr_key, b.prs_relatietype_key
|
||
FROM mld_opdr o,
|
||
mld_kenmerk k,
|
||
mld_srtkenmerk sk,
|
||
prs_bedrijf b
|
||
WHERE k.mld_srtkenmerk_key = sk.mld_srtkenmerk_key
|
||
AND sk.mld_srtkenmerk_omschrijving = 'Relatietype'
|
||
AND o.mld_typeopdr_key = k.mld_typeopdr_key
|
||
AND o.mld_uitvoerende_keys = b.prs_bedrijf_key
|
||
AND (SELECT TRUNC (MIN (fac_tracking_datum))
|
||
FROM fac_tracking t, fac_srtnotificatie sn
|
||
WHERE t.fac_srtnotificatie_key = sn.fac_srtnotificatie_key
|
||
AND sn.fac_srtnotificatie_xmlnode = 'opdracht'
|
||
AND fac_tracking_refkey = o.mld_opdr_key) = TRUNC (SYSDATE)
|
||
AND NOT EXISTS
|
||
(SELECT mld_kenmerkopdr_key
|
||
FROM mld_kenmerkopdr ko
|
||
WHERE ko.mld_opdr_key = o.mld_opdr_key AND ko.mld_kenmerk_key = k.mld_kenmerk_key);
|
||
|
||
-- dit zelfde gaan we nu ook bij contracten doen waar het kenmerk nog niet aanwezig is.
|
||
INSERT INTO fac_kenmerkdomein (fac_kenmerkdomein_module,
|
||
fac_kenmerkdomein_omschrijving,
|
||
fac_kenmerkdomein_objectnaam,
|
||
fac_kenmerkdomein_kolomnaam,
|
||
fac_kenmerkdomein_kolomtxt,
|
||
fac_kenmerkdomein_verval)
|
||
SELECT 'CNT',
|
||
'PRS_RELATIETYPE',
|
||
'PRS_RELATIETYPE',
|
||
'PRS_RELATIETYPE_KEY',
|
||
'PRS_RELATIETYPE_OMSCHRIJVING',
|
||
'PRS_RELATIETYPE_VERWIJDER'
|
||
FROM DUAL
|
||
WHERE NOT EXISTS
|
||
(SELECT fac_kenmerkdomein_key
|
||
FROM fac_kenmerkdomein
|
||
WHERE fac_kenmerkdomein_module = 'CNT'
|
||
AND fac_kenmerkdomein_objectnaam = 'PRS_RELATIETYPE');
|
||
|
||
INSERT INTO cnt_srtkenmerk (cnt_srtkenmerk_omschrijving, cnt_srtkenmerk_kenmerktype, fac_kenmerkdomein_key)
|
||
SELECT 'Relatietype', 'R', fac_kenmerkdomein_key
|
||
FROM fac_kenmerkdomein
|
||
WHERE fac_kenmerkdomein_module = 'CNT'
|
||
AND fac_kenmerkdomein_objectnaam = 'PRS_RELATIETYPE'
|
||
AND NOT EXISTS (SELECT cnt_srtkenmerk_key
|
||
FROM cnt_srtkenmerk
|
||
WHERE cnt_srtkenmerk_omschrijving = 'Relatietype');
|
||
|
||
INSERT INTO cnt_kenmerk (cnt_srtkenmerk_key,
|
||
cnt_srtcontract_key,
|
||
cnt_kenmerk_niveau,
|
||
cnt_kenmerk_toonbaar,
|
||
cnt_kenmerk_volgnummer)
|
||
SELECT cnt_srtkenmerk_key,
|
||
ins_discipline_key,
|
||
'S',
|
||
1,
|
||
100
|
||
FROM cnt_srtkenmerk sk, cnt_discipline d
|
||
WHERE cnt_srtkenmerk_omschrijving = 'Relatietype'
|
||
AND NOT EXISTS
|
||
(SELECT cnt_kenmerk_key
|
||
FROM cnt_kenmerk k
|
||
WHERE k.cnt_srtkenmerk_key = sk.cnt_srtkenmerk_key
|
||
AND k.cnt_srtcontract_key = d.ins_discipline_key);
|
||
|
||
INSERT INTO cnt_kenmerkcontract (cnt_kenmerk_key, cnt_contract_key, cnt_kenmerkcontract_waarde)
|
||
SELECT k.cnt_kenmerk_key, c.cnt_contract_key, b.prs_relatietype_key
|
||
FROM cnt_contract c,
|
||
cnt_kenmerk k,
|
||
cnt_srtkenmerk sk,
|
||
prs_bedrijf b
|
||
WHERE k.cnt_srtkenmerk_key = sk.cnt_srtkenmerk_key
|
||
AND sk.cnt_srtkenmerk_omschrijving = 'Relatietype'
|
||
AND c.ins_discipline_key = k.cnt_srtcontract_key
|
||
AND c.cnt_prs_bedrijf_key = b.prs_bedrijf_key
|
||
AND b.prs_relatietype_key IS NOT NULL
|
||
AND NOT EXISTS
|
||
(SELECT cnt_kenmerkcontract_key
|
||
FROM cnt_kenmerkcontract kc
|
||
WHERE kc.cnt_contract_key = c.cnt_contract_key
|
||
AND kc.cnt_kenmerk_key = k.cnt_kenmerk_key);
|
||
|
||
-- dit zelfde gaan we nu ook bij bestellingen doen waar het kenmerk nog niet aanwezig is.
|
||
INSERT INTO fac_kenmerkdomein (fac_kenmerkdomein_module,
|
||
fac_kenmerkdomein_omschrijving,
|
||
fac_kenmerkdomein_objectnaam,
|
||
fac_kenmerkdomein_kolomnaam,
|
||
fac_kenmerkdomein_kolomtxt,
|
||
fac_kenmerkdomein_verval)
|
||
SELECT 'BES',
|
||
'PRS_RELATIETYPE',
|
||
'PRS_RELATIETYPE',
|
||
'PRS_RELATIETYPE_KEY',
|
||
'PRS_RELATIETYPE_OMSCHRIJVING',
|
||
'PRS_RELATIETYPE_VERWIJDER'
|
||
FROM DUAL
|
||
WHERE NOT EXISTS
|
||
(SELECT fac_kenmerkdomein_key
|
||
FROM fac_kenmerkdomein
|
||
WHERE fac_kenmerkdomein_module = 'BES'
|
||
AND fac_kenmerkdomein_objectnaam = 'PRS_RELATIETYPE');
|
||
|
||
INSERT INTO bes_srtkenmerk (bes_srtkenmerk_omschrijving, bes_srtkenmerk_kenmerktype, fac_kenmerkdomein_key)
|
||
SELECT 'Relatietype', 'R', fac_kenmerkdomein_key
|
||
FROM fac_kenmerkdomein
|
||
WHERE fac_kenmerkdomein_module = 'BES'
|
||
AND fac_kenmerkdomein_objectnaam = 'PRS_RELATIETYPE'
|
||
AND NOT EXISTS (SELECT bes_srtkenmerk_key
|
||
FROM bes_srtkenmerk
|
||
WHERE bes_srtkenmerk_omschrijving = 'Relatietype');
|
||
|
||
INSERT INTO bes_kenmerk (bes_srtkenmerk_key,
|
||
bes_srtinstallatie_key,
|
||
bes_kenmerk_type,
|
||
bes_kenmerk_niveau,
|
||
bes_kenmerk_toonbaar,
|
||
bes_kenmerk_volgnummer)
|
||
SELECT bes_srtkenmerk_key,
|
||
ins_discipline_key,
|
||
'B',
|
||
'D',
|
||
1,
|
||
100
|
||
FROM bes_srtkenmerk sk, bes_discipline d
|
||
WHERE bes_srtkenmerk_omschrijving = 'Relatietype'
|
||
AND NOT EXISTS
|
||
(SELECT bes_kenmerk_key
|
||
FROM bes_kenmerk k
|
||
WHERE k.bes_srtkenmerk_key = sk.bes_srtkenmerk_key
|
||
AND k.bes_srtinstallatie_key = d.ins_discipline_key);
|
||
|
||
INSERT INTO bes_kenmerkbestell (bes_kenmerk_key, bes_bestelling_key, bes_kenmerkbestell_waarde)
|
||
SELECT k.bes_kenmerk_key, bi.bes_bestelling_key, bd.prs_relatietype_key
|
||
FROM bes_bestelling_item bi,
|
||
bes_bestelopdr_item boi,
|
||
bes_bestelopdr bo,
|
||
bes_kenmerk k,
|
||
bes_srtkenmerk sk,
|
||
prs_bedrijf bd,
|
||
bes_srtdeel sd,
|
||
bes_srtgroep sg
|
||
WHERE bi.bes_bestelopdr_item_key = boi.bes_bestelopdr_item_key
|
||
AND boi.bes_bestelopdr_key = bo.bes_bestelopdr_key
|
||
AND bo.prs_bedrijf_key = bd.prs_bedrijf_key
|
||
AND k.bes_srtkenmerk_key = sk.bes_srtkenmerk_key
|
||
AND sk.bes_srtkenmerk_omschrijving = 'Relatietype'
|
||
AND bi.bes_srtdeel_key = sd.bes_srtdeel_key
|
||
AND sd.bes_srtgroep_key = sg.bes_srtgroep_key
|
||
AND sg.ins_discipline_key = k.bes_srtinstallatie_key
|
||
AND bd.prs_relatietype_key IS NOT NULL
|
||
AND NOT EXISTS
|
||
(SELECT bes_kenmerkbestell_key
|
||
FROM bes_kenmerkbestell kb
|
||
WHERE kb.bes_bestelling_key = bi.bes_bestelling_key
|
||
AND kb.bes_kenmerk_key = k.bes_kenmerk_key)
|
||
GROUP BY k.bes_kenmerk_key, bi.bes_bestelling_key, bd.prs_relatietype_key;
|
||
|
||
END;
|
||
/
|
||
|
||
-- script om dagelijks terugkerende scripts aan te roepen. Indien er geen klantspecifieke versie is.
|
||
CREATE OR REPLACE PROCEDURE aaxx_select_hourly_task (p_applname IN VARCHAR2, p_applrun IN VARCHAR2)
|
||
AS
|
||
BEGIN
|
||
aaxx_hourly_task (p_applname, p_applrun);
|
||
END;
|
||
/
|
||
|
||
-- script om dagelijks terugkerende scripts aan te roepen. Kan aangeroepen worden vanuit de klantomgeving
|
||
-- indien er voor die klant ook specifieke zaken dagelijks geregeld moeten worden.
|
||
CREATE OR REPLACE PROCEDURE aaxx_daily_task (p_applname IN VARCHAR2, p_applrun IN VARCHAR2)
|
||
AS
|
||
BEGIN
|
||
-- job om flexkenmerken bij projectorders in te vullen
|
||
IF aaxx_get_user <> 'GUL' THEN
|
||
aaxx_select_dwh_set_kenmerken (p_applname, p_applrun);
|
||
END IF;
|
||
|
||
-- job om gebruikers die recentelijk niet ingelogd zijn de rechten te ontnemen.
|
||
IF aaxx_get_user = 'ARCADIS' -- AAAR#26433 / weer aangezet AAAR#60481
|
||
OR aaxx_get_user = 'DSM'
|
||
OR aaxx_get_user = 'SABIC'
|
||
OR aaxx_get_user = 'GUL'
|
||
OR aaxx_get_user = 'ESSENT' -- AAES#65629
|
||
THEN
|
||
aaxx_delete_non_active_users (p_applname, p_applrun);
|
||
END IF;
|
||
|
||
-- verwijder key users met ORDBO2 rechten
|
||
IF -- aaxx_get_user = 'ARCADIS' AAAR#26433
|
||
-- OR
|
||
aaxx_get_user = 'AH'
|
||
OR aaxx_get_user = 'DSM'
|
||
OR aaxx_get_user = 'SABIC'
|
||
OR aaxx_get_user = 'GUL'
|
||
OR aaxx_get_user = 'NMM'
|
||
OR aaxx_get_user = 'RABO'
|
||
THEN
|
||
aaxx_delete_non_active_key (p_applname, p_applrun);
|
||
END IF;
|
||
|
||
-- exportfunctie om per klantomgeving de inkoopinterface autuomatisch om 18:00 te runnen
|
||
IF aaxx_get_user = 'ARCADIS'
|
||
OR aaxx_get_user = 'DSM'
|
||
OR aaxx_get_user = 'ESSENT'
|
||
OR aaxx_get_user = 'EXPO'
|
||
OR aaxx_get_user = 'RABO'
|
||
OR aaxx_get_user = 'GN'
|
||
OR aaxx_get_user = 'SABIC'
|
||
OR aaxx_get_user = 'REMEHA'
|
||
OR aaxx_get_user = 'NMM'
|
||
OR aaxx_get_user = 'IT'
|
||
OR aaxx_get_user = 'INLO'
|
||
OR aaxx_get_user = 'MENZIS'
|
||
OR aaxx_get_user = 'THHD'
|
||
THEN
|
||
aaxx_export_exact_auto (p_applname, p_applrun);
|
||
END IF;
|
||
|
||
|
||
-- Haal de mensen die we zojuist de login hebben ontnomen ook uit de autorisatiegroepen.
|
||
DELETE fac_gebruikersgroep gg
|
||
WHERE EXISTS
|
||
(SELECT p.prs_perslid_key
|
||
FROM prs_perslid p
|
||
WHERE prs_perslid_oslogin IS NULL
|
||
AND prs_perslid_oslogin2 IS NULL
|
||
AND p.prs_perslid_key = gg.prs_perslid_key);
|
||
|
||
-- job om bij to houden welke gebruikers vandaag ingelogd zijn geweest.
|
||
aaxx_export_login (p_applname, p_applrun);
|
||
|
||
-- job om complimenten af te melden.
|
||
aaxx_afmelden_complimenten (p_applname, p_applrun);
|
||
|
||
-- job om ordercorrecties door te voeren.
|
||
aaxx_ordercorrecties (p_applname, p_applrun);
|
||
END;
|
||
/
|
||
|
||
-- script om dagelijks terugkerende scripts aan te roepen. Indien er geen klantspecifieke versie is.
|
||
CREATE OR REPLACE PROCEDURE aaxx_select_daily_task (p_applname IN VARCHAR2, p_applrun IN VARCHAR2)
|
||
AS
|
||
BEGIN
|
||
aaxx_daily_task (p_applname, p_applrun);
|
||
END;
|
||
/
|
||
|
||
CREATE OR REPLACE PROCEDURE aaxx_imp_writelog (
|
||
p_import_key IN NUMBER,
|
||
p_severity IN VARCHAR2,
|
||
p_errormsg IN VARCHAR2,
|
||
p_errorhint IN VARCHAR2)
|
||
AS
|
||
PRAGMA AUTONOMOUS_TRANSACTION;
|
||
BEGIN
|
||
fac.imp_writelog (p_import_key,
|
||
p_severity,
|
||
SUBSTR(p_errormsg,1,1000),
|
||
SUBSTR(p_errorhint,1,1000));
|
||
COMMIT;
|
||
END;
|
||
/
|
||
|
||
CREATE OR REPLACE PROCEDURE aaxx_add_xml_row_p (
|
||
p_bestand IN VARCHAR2,
|
||
p_prefix IN VARCHAR2,
|
||
p_regel IN VARCHAR2)
|
||
AS
|
||
v_index NUMBER;
|
||
BEGIN
|
||
SELECT COALESCE( MAX(fac_rapport_volgnr), 0) + 1
|
||
INTO v_index
|
||
FROM fac_rapport
|
||
WHERE fac_rapport_node = p_bestand;
|
||
|
||
INSERT INTO fac_rapport (
|
||
fac_rapport_node,
|
||
fac_rapport_volgnr,
|
||
fac_rapport_regel)
|
||
VALUES (p_bestand,
|
||
v_index,
|
||
p_prefix || p_regel);
|
||
END;
|
||
/
|
||
|
||
CREATE OR REPLACE PROCEDURE aaxx_add_xml_element_p (
|
||
p_bestand IN VARCHAR2,
|
||
p_prefix IN VARCHAR2,
|
||
p_tag IN VARCHAR2,
|
||
p_value IN VARCHAR2)
|
||
AS
|
||
BEGIN
|
||
aaxx_add_xml_row_p(p_bestand,
|
||
p_prefix,
|
||
'<' || p_tag || '>'
|
||
|| xml.char_to_html(p_value)
|
||
|| '</' || p_tag || '>');
|
||
END;
|
||
/
|
||
|
||
|
||
CREATE OR REPLACE PROCEDURE aaxx_add_xml_row (
|
||
p_bestand IN VARCHAR2,
|
||
p_regel IN VARCHAR2)
|
||
AS
|
||
BEGIN
|
||
aaxx_add_xml_row_p (p_bestand, NULL, p_regel);
|
||
END;
|
||
/
|
||
|
||
CREATE OR REPLACE PROCEDURE aaxx_add_xml_element (
|
||
p_bestand IN VARCHAR2,
|
||
p_tag IN VARCHAR2,
|
||
p_value IN VARCHAR2)
|
||
AS
|
||
BEGIN
|
||
aaxx_add_xml_element_p (p_bestand, NULL, p_tag, p_value);
|
||
END;
|
||
/
|
||
|
||
CREATE OR REPLACE FUNCTION aaxx_get_kenmerk (p_module IN VARCHAR2,
|
||
p_kenmerk_key IN NUMBER,
|
||
p_link_key IN NUMBER)
|
||
RETURN VARCHAR2
|
||
AS
|
||
v_kenmerk_type mld_srtkenmerk.mld_srtkenmerk_kenmerktype%TYPE;
|
||
v_kenmerk_waarde mld_kenmerkmelding.mld_kenmerkmelding_waarde%TYPE;
|
||
v_kenmerkdomein_key fac_kenmerkdomein.fac_kenmerkdomein_key%TYPE;
|
||
v_kenmerk_niveau ins_kenmerk.ins_kenmerk_niveau%TYPE;
|
||
BEGIN
|
||
CASE p_module
|
||
WHEN 'MLD'
|
||
THEN
|
||
SELECT mld_srtkenmerk_kenmerktype,
|
||
sk.fac_kenmerkdomein_key,
|
||
km.mld_kenmerkmelding_waarde
|
||
INTO v_kenmerk_type,
|
||
v_kenmerkdomein_key,
|
||
v_kenmerk_waarde
|
||
FROM mld_v_aanwezigkenmerkmelding km,
|
||
mld_kenmerk k,
|
||
mld_srtkenmerk sk
|
||
WHERE km.mld_melding_key = p_link_key
|
||
AND km.mld_kenmerk_key = p_kenmerk_key
|
||
AND km.mld_kenmerk_key = k.mld_kenmerk_key
|
||
AND k.mld_srtkenmerk_key = sk.mld_srtkenmerk_key;
|
||
WHEN 'CNT'
|
||
THEN
|
||
SELECT cnt_srtkenmerk_kenmerktype,
|
||
sk.fac_kenmerkdomein_key,
|
||
kc.cnt_kenmerkcontract_waarde
|
||
INTO v_kenmerk_type,
|
||
v_kenmerkdomein_key,
|
||
v_kenmerk_waarde
|
||
FROM cnt_kenmerkcontract kc,
|
||
cnt_kenmerk k,
|
||
cnt_srtkenmerk sk
|
||
WHERE kc.cnt_contract_key = p_link_key
|
||
AND kc.cnt_kenmerk_key = p_kenmerk_key
|
||
AND kc.cnt_kenmerk_key = k.cnt_kenmerk_key
|
||
AND k.cnt_srtkenmerk_key = sk.cnt_srtkenmerk_key;
|
||
WHEN 'ALG'
|
||
THEN
|
||
SELECT alg_kenmerk_kenmerktype,
|
||
k.fac_kenmerkdomein_key,
|
||
aogk.alg_onrgoedkenmerk_waarde
|
||
INTO v_kenmerk_type,
|
||
v_kenmerkdomein_key,
|
||
v_kenmerk_waarde
|
||
FROM alg_onrgoedkenmerk aogk, alg_kenmerk k
|
||
WHERE aogk.alg_onrgoed_key = p_link_key
|
||
AND aogk.alg_kenmerk_key = p_kenmerk_key
|
||
AND aogk.alg_kenmerk_key = k.alg_kenmerk_key;
|
||
WHEN 'FIN'
|
||
THEN
|
||
SELECT k.fin_kenmerk_kenmerktype,
|
||
k.fac_kenmerkdomein_key,
|
||
kf.fin_kenmerkfactuur_waarde
|
||
INTO v_kenmerk_type,
|
||
v_kenmerkdomein_key,
|
||
v_kenmerk_waarde
|
||
FROM fin_kenmerkfactuur kf, fin_kenmerk k
|
||
WHERE kf.fin_factuur_key = p_link_key
|
||
AND kf.fin_kenmerk_key = p_kenmerk_key
|
||
AND kf.fin_kenmerk_key = k.fin_kenmerk_key;
|
||
WHEN 'INS'
|
||
THEN
|
||
SELECT k.ins_kenmerk_niveau
|
||
INTO v_kenmerk_niveau
|
||
FROM ins_kenmerk k
|
||
WHERE ins_kenmerk_key = p_kenmerk_key;
|
||
|
||
IF v_kenmerk_niveau = 'C' THEN
|
||
SELECT sk.ins_srtkenmerk_kenmerktype,
|
||
sk.fac_kenmerkdomein_key,
|
||
ikds.ins_kmdeelsrtcontr_waarde
|
||
INTO v_kenmerk_type,
|
||
v_kenmerkdomein_key,
|
||
v_kenmerk_waarde
|
||
FROM ins_kmdeelsrtcontr ikds, ins_kenmerk k, ins_srtkenmerk sk
|
||
WHERE ikds.ins_deelsrtcontrole_key = p_link_key
|
||
AND ikds.ins_kmdeelsrtcontr_verwijder IS NULL
|
||
AND ikds.ins_kenmerk_key = p_kenmerk_key
|
||
AND ikds.ins_kenmerk_key = k.ins_kenmerk_key
|
||
AND k.ins_srtkenmerk_key = sk.ins_srtkenmerk_key;
|
||
ELSE
|
||
SELECT sk.ins_srtkenmerk_kenmerktype,
|
||
sk.fac_kenmerkdomein_key,
|
||
ikd.ins_kenmerkdeel_waarde
|
||
INTO v_kenmerk_type,
|
||
v_kenmerkdomein_key,
|
||
v_kenmerk_waarde
|
||
FROM ins_kenmerkdeel ikd, ins_kenmerk k, ins_srtkenmerk sk
|
||
WHERE ikd.ins_deel_key = p_link_key
|
||
AND ikd.ins_kenmerkdeel_verwijder IS NULL
|
||
AND ikd.ins_kenmerk_key = p_kenmerk_key
|
||
AND ikd.ins_kenmerk_key = k.ins_kenmerk_key
|
||
AND k.ins_srtkenmerk_key = sk.ins_srtkenmerk_key;
|
||
END IF;
|
||
END CASE;
|
||
|
||
RETURN aaxx_get_kenmerkwaarde (v_kenmerk_type,
|
||
v_kenmerkdomein_key,
|
||
v_kenmerk_waarde);
|
||
END;
|
||
/
|
||
|
||
|
||
CREATE OR REPLACE FUNCTION aaxx_get_kenmerkwaarde (
|
||
p_kenmerk_type VARCHAR2,
|
||
p_kenmerkdomein_key NUMBER,
|
||
p_kenmerk_waarde VARCHAR2)
|
||
RETURN VARCHAR2
|
||
AS
|
||
v_result VARCHAR2(4000);
|
||
BEGIN
|
||
IF p_kenmerk_type = 'R' OR p_kenmerk_type = 'S' THEN
|
||
v_result := fac.getdomeinwaarde (p_kenmerkdomein_key,
|
||
p_kenmerk_waarde);
|
||
ELSIF p_kenmerk_type = 'D' THEN
|
||
v_result := TO_CHAR (fac.safe_to_date (p_kenmerk_waarde, 'dd-mm-yyyy'), 'yyyy-mm-dd');
|
||
ELSE
|
||
v_result := p_kenmerk_waarde;
|
||
END IF;
|
||
return v_result;
|
||
END aaxx_get_kenmerkwaarde;
|
||
/
|
||
|
||
CREATE OR REPLACE PROCEDURE aaxx_set_kenmerk(p_module IN VARCHAR2,
|
||
p_kenmerk_key IN NUMBER,
|
||
p_link_key IN NUMBER,
|
||
p_kenmerk_waarde IN VARCHAR2,
|
||
p_history IN NUMBER)
|
||
AS
|
||
v_count NUMBER;
|
||
v_niveau VARCHAR2 (1);
|
||
BEGIN
|
||
CASE p_module
|
||
WHEN 'PRS'
|
||
THEN
|
||
-- niveau van prs_kenmerk ophalen, omdat deze ook in prs_kenmerklink wordt
|
||
-- opgeslagen (da's dus redundant..?)
|
||
SELECT prs_kenmerk_niveau
|
||
INTO v_niveau
|
||
FROM prs_kenmerk
|
||
WHERE prs_kenmerk_key = p_kenmerk_key;
|
||
|
||
SELECT COUNT ( * )
|
||
INTO v_count
|
||
FROM prs_kenmerklink
|
||
WHERE prs_link_key = p_link_key
|
||
AND prs_kenmerk_key = p_kenmerk_key
|
||
AND prs_kenmerklink_verwijder IS NULL;
|
||
|
||
IF v_count = 1
|
||
THEN
|
||
IF p_kenmerk_waarde IS NULL
|
||
THEN
|
||
DELETE prs_kenmerklink
|
||
WHERE prs_link_key = p_link_key
|
||
AND prs_kenmerk_key = p_kenmerk_key
|
||
AND prs_kenmerklink_verwijder IS NULL;
|
||
ELSE
|
||
UPDATE prs_kenmerklink
|
||
SET prs_kenmerklink_waarde = p_kenmerk_waarde
|
||
WHERE prs_link_key = p_link_key
|
||
AND prs_kenmerk_key = p_kenmerk_key
|
||
AND prs_kenmerklink_verwijder IS NULL;
|
||
END IF;
|
||
ELSE
|
||
IF p_kenmerk_key IS NOT NULL AND p_kenmerk_waarde IS NOT NULL
|
||
THEN
|
||
INSERT INTO prs_kenmerklink (prs_kenmerk_key,
|
||
prs_link_key,
|
||
prs_kenmerklink_niveau,
|
||
prs_kenmerklink_waarde)
|
||
VALUES (p_kenmerk_key,
|
||
p_link_key,
|
||
v_niveau,
|
||
p_kenmerk_waarde);
|
||
END IF;
|
||
END IF;
|
||
|
||
WHEN 'ALG'
|
||
THEN
|
||
-- niveau van prs_kenmerk ophalen, omdat deze ook in prs_kenmerklink wordt
|
||
-- opgeslagen (da's dus redundant..?)
|
||
SELECT alg_kenmerk_niveau
|
||
INTO v_niveau
|
||
FROM alg_kenmerk
|
||
WHERE alg_kenmerk_key = p_kenmerk_key;
|
||
|
||
SELECT COUNT ( * )
|
||
INTO v_count
|
||
FROM alg_onrgoedkenmerk
|
||
WHERE alg_onrgoed_key = p_link_key
|
||
AND alg_kenmerk_key = p_kenmerk_key
|
||
AND alg_onrgoedkenmerk_verwijder IS NULL;
|
||
|
||
IF v_count = 1
|
||
THEN
|
||
IF p_kenmerk_waarde IS NULL
|
||
THEN
|
||
DELETE alg_onrgoedkenmerk
|
||
WHERE alg_onrgoed_key = p_link_key
|
||
AND alg_kenmerk_key = p_kenmerk_key
|
||
AND alg_onrgoedkenmerk_verwijder IS NULL;
|
||
ELSE
|
||
UPDATE alg_onrgoedkenmerk
|
||
SET alg_onrgoedkenmerk_waarde = p_kenmerk_waarde
|
||
WHERE alg_onrgoed_key = p_link_key
|
||
AND alg_kenmerk_key = p_kenmerk_key
|
||
AND alg_onrgoedkenmerk_verwijder IS NULL;
|
||
END IF;
|
||
ELSE
|
||
IF p_kenmerk_key IS NOT NULL AND p_kenmerk_waarde IS NOT NULL
|
||
THEN
|
||
INSERT INTO alg_onrgoedkenmerk (alg_kenmerk_key,
|
||
alg_onrgoed_key,
|
||
alg_onrgoed_niveau,
|
||
alg_onrgoedkenmerk_waarde)
|
||
VALUES (p_kenmerk_key,
|
||
p_link_key,
|
||
v_niveau,
|
||
p_kenmerk_waarde);
|
||
END IF;
|
||
END IF;
|
||
|
||
WHEN 'MLD'
|
||
THEN
|
||
-- melding- of opdrachtkenmerk?
|
||
SELECT mld_kenmerk_niveau
|
||
INTO v_niveau
|
||
FROM mld_kenmerk
|
||
WHERE mld_kenmerk_key = p_kenmerk_key;
|
||
|
||
CASE v_niveau
|
||
WHEN 'O'
|
||
THEN
|
||
SELECT COUNT ( * )
|
||
INTO v_count
|
||
FROM mld_kenmerkopdr
|
||
WHERE mld_opdr_key = p_link_key
|
||
AND mld_kenmerk_key = p_kenmerk_key
|
||
AND mld_kenmerkopdr_verwijder IS NULL;
|
||
|
||
IF v_count = 1
|
||
THEN
|
||
IF p_kenmerk_waarde IS NULL
|
||
THEN
|
||
DELETE mld_kenmerkopdr
|
||
WHERE mld_opdr_key = p_link_key
|
||
AND mld_kenmerk_key = p_kenmerk_key
|
||
AND mld_kenmerkopdr_verwijder IS NULL;
|
||
ELSE
|
||
UPDATE mld_kenmerkopdr
|
||
SET mld_kenmerkopdr_waarde = p_kenmerk_waarde
|
||
WHERE mld_opdr_key = p_link_key
|
||
AND mld_kenmerk_key = p_kenmerk_key
|
||
AND mld_kenmerkopdr_verwijder IS NULL;
|
||
END IF;
|
||
ELSE
|
||
IF p_kenmerk_key IS NOT NULL AND p_kenmerk_waarde IS NOT NULL
|
||
THEN
|
||
INSERT INTO mld_kenmerkopdr (mld_kenmerk_key,
|
||
mld_opdr_key,
|
||
mld_kenmerkopdr_waarde)
|
||
VALUES (p_kenmerk_key,
|
||
p_link_key,
|
||
p_kenmerk_waarde);
|
||
END IF;
|
||
END IF;
|
||
WHEN 'S'
|
||
THEN
|
||
SELECT COUNT ( * )
|
||
INTO v_count
|
||
FROM mld_kenmerkmelding
|
||
WHERE mld_melding_key = p_link_key
|
||
AND mld_kenmerk_key = p_kenmerk_key
|
||
AND mld_kenmerkmelding_verwijder IS NULL;
|
||
|
||
IF v_count = 1
|
||
THEN
|
||
IF p_kenmerk_waarde IS NULL
|
||
THEN
|
||
DELETE mld_kenmerkmelding
|
||
WHERE mld_melding_key = p_link_key
|
||
AND mld_kenmerk_key = p_kenmerk_key
|
||
AND mld_kenmerkmelding_verwijder IS NULL;
|
||
ELSE
|
||
UPDATE mld_kenmerkmelding
|
||
SET mld_kenmerkmelding_waarde = p_kenmerk_waarde
|
||
WHERE mld_melding_key = p_link_key
|
||
AND mld_kenmerk_key = p_kenmerk_key
|
||
AND mld_kenmerkmelding_verwijder IS NULL;
|
||
END IF;
|
||
ELSE
|
||
IF p_kenmerk_key IS NOT NULL AND p_kenmerk_waarde IS NOT NULL
|
||
THEN
|
||
INSERT INTO mld_kenmerkmelding (mld_kenmerk_key,
|
||
mld_melding_key,
|
||
mld_kenmerkmelding_waarde)
|
||
VALUES (p_kenmerk_key,
|
||
p_link_key,
|
||
p_kenmerk_waarde);
|
||
END IF;
|
||
END IF;
|
||
END CASE;
|
||
WHEN 'RES'
|
||
THEN
|
||
-- melding- of opdrachtkenmerk?
|
||
SELECT res_kenmerk_niveau
|
||
INTO v_niveau
|
||
FROM res_kenmerk
|
||
WHERE res_kenmerk_key = p_kenmerk_key;
|
||
|
||
CASE v_niveau
|
||
WHEN 'A'
|
||
THEN
|
||
SELECT COUNT ( * )
|
||
INTO v_count
|
||
FROM res_kenmerkwaarde
|
||
WHERE res_rsv_ruimte_key = p_link_key
|
||
AND res_kenmerk_key = p_kenmerk_key
|
||
AND res_kenmerkwaarde_verwijder IS NULL;
|
||
|
||
IF v_count = 1
|
||
THEN
|
||
IF p_kenmerk_waarde IS NULL
|
||
THEN
|
||
DELETE res_kenmerkwaarde
|
||
WHERE res_rsv_ruimte_key = p_link_key
|
||
AND res_kenmerk_key = p_kenmerk_key
|
||
AND res_kenmerkwaarde_verwijder IS NULL;
|
||
ELSE
|
||
UPDATE res_kenmerkwaarde
|
||
SET res_kenmerkreservering_waarde = p_kenmerk_waarde
|
||
WHERE res_rsv_ruimte_key = p_link_key
|
||
AND res_kenmerk_key = p_kenmerk_key
|
||
AND res_kenmerkwaarde_verwijder IS NULL;
|
||
END IF;
|
||
ELSE
|
||
IF p_kenmerk_key IS NOT NULL AND p_kenmerk_waarde IS NOT NULL
|
||
THEN
|
||
INSERT INTO res_kenmerkwaarde (res_kenmerk_key,
|
||
res_rsv_ruimte_key,
|
||
res_kenmerkreservering_waarde)
|
||
VALUES (p_kenmerk_key,
|
||
p_link_key,
|
||
p_kenmerk_waarde);
|
||
END IF;
|
||
END IF;
|
||
-- Voorlopig alleen op ruimte niveau.
|
||
END CASE;
|
||
WHEN 'FIN'
|
||
THEN
|
||
-- niveau van prs_kenmerk ophalen, omdat deze ook in prs_kenmerklink wordt
|
||
-- opgeslagen (da's dus redundant..?)
|
||
SELECT fin_kenmerk_type
|
||
INTO v_niveau
|
||
FROM fin_kenmerk
|
||
WHERE fin_kenmerk_key = p_kenmerk_key;
|
||
|
||
|
||
IF v_niveau = 'F'
|
||
THEN
|
||
SELECT COUNT ( * )
|
||
INTO v_count
|
||
FROM fin_kenmerkfactuur
|
||
WHERE fin_factuur_key = p_link_key
|
||
AND fin_kenmerk_key = p_kenmerk_key
|
||
AND fin_kenmerkfactuur_verwijder IS NULL;
|
||
|
||
IF v_count = 1
|
||
THEN
|
||
IF p_kenmerk_waarde IS NULL
|
||
THEN
|
||
DELETE fin_kenmerkfactuur
|
||
WHERE fin_factuur_key = p_link_key
|
||
AND fin_kenmerk_key = p_kenmerk_key
|
||
AND fin_kenmerkfactuur_verwijder IS NULL;
|
||
ELSE
|
||
UPDATE fin_kenmerkfactuur
|
||
SET fin_kenmerkfactuur_waarde = p_kenmerk_waarde
|
||
WHERE fin_factuur_key = p_link_key
|
||
AND fin_kenmerk_key = p_kenmerk_key
|
||
AND fin_kenmerkfactuur_verwijder IS NULL;
|
||
END IF;
|
||
ELSE
|
||
IF p_kenmerk_key IS NOT NULL AND p_kenmerk_waarde IS NOT NULL
|
||
THEN
|
||
INSERT INTO fin_kenmerkfactuur (fin_kenmerk_key,
|
||
fin_factuur_key,
|
||
fin_kenmerkfactuur_waarde)
|
||
VALUES (p_kenmerk_key,
|
||
p_link_key,
|
||
p_kenmerk_waarde);
|
||
END IF;
|
||
END IF;
|
||
ELSE
|
||
-- Kenmerk bij factuurregel
|
||
SELECT COUNT ( * )
|
||
INTO v_count
|
||
FROM fin_kenmerkfactregel
|
||
WHERE fin_factuurregel_key = p_link_key
|
||
AND fin_kenmerk_key = p_kenmerk_key
|
||
AND fin_kenmerkfactregel_verwijder IS NULL;
|
||
|
||
IF v_count = 1
|
||
THEN
|
||
IF p_kenmerk_waarde IS NULL
|
||
THEN
|
||
DELETE fin_kenmerkfactregel
|
||
WHERE fin_factuurregel_key = p_link_key
|
||
AND fin_kenmerk_key = p_kenmerk_key
|
||
AND fin_kenmerkfactregel_verwijder IS NULL;
|
||
ELSE
|
||
UPDATE fin_kenmerkfactregel
|
||
SET fin_kenmerkfactregel_waarde = p_kenmerk_waarde
|
||
WHERE fin_factuurregel_key = p_link_key
|
||
AND fin_kenmerk_key = p_kenmerk_key
|
||
AND fin_kenmerkfactregel_verwijder IS NULL;
|
||
END IF;
|
||
ELSE
|
||
IF p_kenmerk_key IS NOT NULL AND p_kenmerk_waarde IS NOT NULL
|
||
THEN
|
||
INSERT INTO fin_kenmerkfactregel (fin_kenmerk_key,
|
||
fin_factuurregel_key,
|
||
fin_kenmerkfactregel_waarde)
|
||
VALUES (p_kenmerk_key,
|
||
p_link_key,
|
||
p_kenmerk_waarde);
|
||
END IF;
|
||
END IF;
|
||
|
||
END IF;
|
||
END CASE;
|
||
END;
|
||
/
|
||
|
||
CREATE OR REPLACE FUNCTION aaxx_get_NEN2767_kenmerkwaarde (p_melding_key IN NUMBER, p_srtkenmerk_code IN VARCHAR2)
|
||
RETURN VARCHAR2
|
||
AS
|
||
v_kenmerkwaarde MLD_KENMERKMELDING.MLD_KENMERKMELDING_WAARDE%TYPE;
|
||
BEGIN
|
||
SELECT mld_kenmerkmelding_waarde
|
||
INTO v_kenmerkwaarde
|
||
FROM mld_kenmerkmelding km, mld_kenmerk k, mld_srtkenmerk sk
|
||
WHERE km.mld_kenmerk_key = k.mld_kenmerk_key
|
||
AND k.mld_srtkenmerk_key = sk.mld_srtkenmerk_key
|
||
AND sk.mld_srtkenmerk_code = p_srtkenmerk_code
|
||
AND km.mld_melding_key = p_melding_key;
|
||
RETURN v_kenmerkwaarde;
|
||
EXCEPTION WHEN NO_DATA_FOUND
|
||
THEN
|
||
RETURN NULL;
|
||
END;
|
||
/
|
||
|
||
CREATE OR REPLACE FUNCTION aaxx_get_NEN2767_instelling (p_instelling IN VARCHAR2)
|
||
RETURN NUMBER
|
||
AS
|
||
v_usrdata_prijs NUMBER;
|
||
BEGIN
|
||
SELECT ud.fac_usrdata_prijs
|
||
INTO v_usrdata_prijs
|
||
FROM fac_usrdata ud, fac_usrtab ut
|
||
WHERE ud.fac_usrtab_key = ut.fac_usrtab_key
|
||
AND ut.fac_usrtab_naam = '$PlatoNEN2727'
|
||
AND ud.fac_usrdata_code = p_instelling
|
||
AND ud.fac_usrdata_verwijder IS NULL;
|
||
|
||
RETURN v_usrdata_prijs;
|
||
END;
|
||
/
|
||
CREATE OR REPLACE FUNCTION aaxx_get_cnt_cont_plaats_index (p_contract_plaats_key number
|
||
)
|
||
RETURN NUMBER
|
||
AS
|
||
CURSOR c (c_cnt_contract_key number)
|
||
IS
|
||
SELECT cnt_contract_plaats_key
|
||
FROM cnt_contract_plaats
|
||
WHERE cnt_contract_key = c_cnt_contract_key
|
||
ORDER BY cnt_contract_plaats_key;
|
||
|
||
v_contract_key NUMBER (10);
|
||
v_index NUMBER (10);
|
||
BEGIN
|
||
v_index := 1;
|
||
|
||
SELECT cnt_contract_key
|
||
INTO v_contract_key
|
||
FROM cnt_contract_plaats
|
||
WHERE cnt_contract_plaats_key = p_contract_plaats_key;
|
||
|
||
FOR rec IN c(v_contract_key)
|
||
LOOP
|
||
IF rec.cnt_contract_plaats_key = p_contract_plaats_key
|
||
THEN
|
||
RETURN (v_index);
|
||
END IF;
|
||
|
||
v_index := v_index + 1;
|
||
END LOOP;
|
||
END;
|
||
/
|
||
|
||
CREATE OR REPLACE FUNCTION aaxx_get_dep_code (p_prs_kostenplaats_nr VARCHAR2) RETURN VARCHAR2
|
||
AS
|
||
v_result VARCHAR2(100);
|
||
BEGIN
|
||
v_result := 'Onbekend - ' || p_prs_kostenplaats_nr;
|
||
BEGIN
|
||
SELECT prs_afdeling_upper
|
||
INTO v_result
|
||
FROM prs_v_aanwezigafdeling a, prs_kostenplaats k
|
||
WHERE niveau = 1
|
||
AND a.prs_kostenplaats_key = k.prs_kostenplaats_key
|
||
AND k.prs_kostenplaats_nr = p_prs_kostenplaats_nr;
|
||
RETURN v_result;
|
||
EXCEPTION WHEN NO_DATA_FOUND
|
||
THEN
|
||
BEGIN
|
||
SELECT prs_afdeling_upper
|
||
INTO v_result
|
||
FROM prs_v_aanwezigafdeling a, prs_kostenplaats k
|
||
WHERE niveau = 2
|
||
AND a.prs_kostenplaats_key = k.prs_kostenplaats_key
|
||
AND k.prs_kostenplaats_nr = p_prs_kostenplaats_nr;
|
||
RETURN v_result;
|
||
EXCEPTION WHEN OTHERS
|
||
THEN
|
||
RETURN v_result;
|
||
END;
|
||
END;
|
||
END aaxx_get_dep_code;
|
||
/
|
||
|
||
-- zoek naar de afdelingscode van het hoogste niveau afdeling
|
||
CREATE OR REPLACE FUNCTION aaxx_get_top_dep_code (p_prs_kostenplaats_nr VARCHAR2) RETURN VARCHAR2
|
||
AS
|
||
CURSOR c IS
|
||
SELECT ta.prs_afdeling_naam
|
||
FROM prs_kostenplaats kp,
|
||
prs_afdeling a,
|
||
prs_v_afdeling_boom ab,
|
||
prs_afdeling ta
|
||
WHERE kp.prs_kostenplaats_key = a.prs_kostenplaats_key
|
||
AND a.prs_afdeling_key = ab.prs_afdeling_key
|
||
AND ab.prs_afdeling_key1 = ta.prs_afdeling_key
|
||
AND kp.prs_kostenplaats_nr = p_prs_kostenplaats_nr
|
||
ORDER BY COALESCE(a.prs_afdeling_verwijder, sysdate) DESC;
|
||
v_result VARCHAR2(100);
|
||
|
||
BEGIN
|
||
v_result := 'Onbekend - ' || p_prs_kostenplaats_nr;
|
||
BEGIN
|
||
FOR rec IN C
|
||
LOOP
|
||
BEGIN
|
||
RETURN rec.prs_afdeling_naam;
|
||
END;
|
||
END LOOP;
|
||
RETURN v_result;
|
||
EXCEPTION WHEN OTHERS THEN
|
||
RETURN v_result;
|
||
END;
|
||
END aaxx_get_top_dep_code;
|
||
/
|
||
|
||
|
||
-- zoek naar de bedrijf_key van het hoogste niveau afdeling
|
||
CREATE OR REPLACE FUNCTION aaxx_get_top_bedrijf_key (p_prs_kostenplaats_nr VARCHAR2) RETURN NUMBER
|
||
AS
|
||
CURSOR c IS
|
||
SELECT ta.prs_afdeling_naam, ta.prs_bedrijf_key
|
||
FROM prs_kostenplaats kp,
|
||
prs_afdeling a,
|
||
prs_v_afdeling_boom ab,
|
||
prs_afdeling ta
|
||
WHERE kp.prs_kostenplaats_key = a.prs_kostenplaats_key
|
||
AND a.prs_afdeling_key = ab.prs_afdeling_key
|
||
AND ab.prs_afdeling_key1 = ta.prs_afdeling_key
|
||
AND kp.prs_kostenplaats_nr = p_prs_kostenplaats_nr
|
||
ORDER BY COALESCE(a.prs_afdeling_verwijder, sysdate) DESC;
|
||
v_result NUMBER;
|
||
|
||
BEGIN
|
||
v_result := NULL;
|
||
BEGIN
|
||
FOR rec IN C
|
||
LOOP
|
||
BEGIN
|
||
RETURN rec.prs_bedrijf_key;
|
||
END;
|
||
END LOOP;
|
||
RETURN v_result;
|
||
EXCEPTION WHEN OTHERS THEN
|
||
RETURN v_result;
|
||
END;
|
||
END aaxx_get_top_bedrijf_key;
|
||
/
|
||
|
||
-- zoek naar de kostenplaats_key van het hoogste niveau afdeling
|
||
CREATE OR REPLACE FUNCTION aaxx_get_top_kpn_key (p_prs_kostenplaats_key NUMBER) RETURN VARCHAR2
|
||
AS
|
||
CURSOR c IS
|
||
SELECT ta.prs_kostenplaats_key
|
||
FROM prs_afdeling a,
|
||
prs_v_afdeling_boom ab,
|
||
prs_bedrijf b,
|
||
prs_afdeling ta
|
||
WHERE p_prs_kostenplaats_key = a.prs_kostenplaats_key
|
||
AND a.prs_afdeling_key = ab.prs_afdeling_key
|
||
AND ab.prs_afdeling_key1 = ta.prs_afdeling_key
|
||
AND ab.prs_bedrijf_key = b.prs_bedrijf_key
|
||
AND a.prs_afdeling_verwijder IS NULL AND ta.prs_afdeling_verwijder IS NULL AND b.prs_bedrijf_verwijder IS NULL
|
||
ORDER BY a.prs_afdeling_key;
|
||
v_result NUMBER;
|
||
|
||
BEGIN
|
||
v_result := NULL;
|
||
BEGIN
|
||
FOR rec IN C
|
||
LOOP
|
||
BEGIN
|
||
RETURN rec.prs_kostenplaats_key;
|
||
END;
|
||
END LOOP;
|
||
RETURN v_result;
|
||
EXCEPTION WHEN OTHERS THEN
|
||
RETURN v_result;
|
||
END;
|
||
END aaxx_get_top_kpn_key;
|
||
/
|
||
|
||
-- zoek naar de kostenplaats_nr van het hoogste niveau afdeling
|
||
CREATE OR REPLACE FUNCTION aaxx_get_top_kpn_nr (p_prs_kostenplaats_key NUMBER) RETURN VARCHAR2
|
||
AS
|
||
CURSOR c IS
|
||
SELECT ta.prs_kostenplaats_key
|
||
FROM prs_afdeling a,
|
||
prs_v_afdeling_boom ab,
|
||
prs_bedrijf b,
|
||
prs_afdeling ta
|
||
WHERE p_prs_kostenplaats_key = a.prs_kostenplaats_key
|
||
AND a.prs_afdeling_key = ab.prs_afdeling_key
|
||
AND ab.prs_afdeling_key1 = ta.prs_afdeling_key
|
||
AND ab.prs_bedrijf_key = b.prs_bedrijf_key
|
||
AND a.prs_afdeling_verwijder IS NULL AND ta.prs_afdeling_verwijder IS NULL AND b.prs_bedrijf_verwijder IS NULL
|
||
ORDER BY a.prs_afdeling_key;
|
||
v_result VARCHAR2(30);
|
||
|
||
BEGIN
|
||
v_result := NULL;
|
||
BEGIN
|
||
FOR rec IN C
|
||
LOOP
|
||
BEGIN
|
||
-- RETURN rec.prs_kostenplaats_key;
|
||
|
||
SELECT kp.prs_kostenplaats_nr
|
||
INTO v_result
|
||
FROM prs_kostenplaats kp
|
||
WHERE kp.prs_kostenplaats_key = rec.prs_kostenplaats_key ;
|
||
|
||
END;
|
||
END LOOP;
|
||
RETURN v_result;
|
||
EXCEPTION WHEN OTHERS THEN
|
||
RETURN v_result;
|
||
END;
|
||
END aaxx_get_top_kpn_nr;
|
||
/
|
||
|
||
|
||
-- Zoek bovenliggende afdelingsniveau 1 en de daarbij vastgelegde kostenplaats bij kenmerkwaarde-veld 'Kostenplaats'
|
||
-- Nieuwe structuur voor interface voor bepaling DEBITEUR (zie ticket 57797)
|
||
CREATE OR REPLACE FUNCTION aaxx_get_top_afdeling_kpkenm (p_prs_kostenplaats_key VARCHAR2) RETURN VARCHAR2
|
||
AS
|
||
CURSOR c IS
|
||
SELECT kp.prs_kostenplaats_nr
|
||
FROM prs_kenmerklink km,
|
||
prs_kostenplaats kp,
|
||
(SELECT kp.prs_kostenplaats_key,
|
||
a.prs_afdeling_key,
|
||
ab.prs_afdeling_key1
|
||
FROM prs_afdeling a, prs_v_afdeling_boom ab, prs_kostenplaats kp
|
||
WHERE a.prs_afdeling_key = ab.prs_afdeling_key
|
||
AND a.prs_kostenplaats_key = p_prs_kostenplaats_key
|
||
AND prs_afdeling_verwijder IS NULL) v
|
||
WHERE km.prs_link_key = v.prs_afdeling_key1
|
||
AND km.prs_kenmerklink_niveau = 'A'
|
||
AND km.prs_kenmerklink_waarde = kp.prs_kostenplaats_key
|
||
AND km.prs_kenmerk_key = 1000 ;
|
||
v_result VARCHAR2(100);
|
||
|
||
BEGIN
|
||
v_result := '';
|
||
BEGIN
|
||
FOR rec IN C
|
||
LOOP
|
||
BEGIN
|
||
RETURN rec.prs_kostenplaats_nr;
|
||
END;
|
||
END LOOP;
|
||
RETURN v_result;
|
||
EXCEPTION WHEN OTHERS THEN
|
||
RETURN v_result;
|
||
END;
|
||
END aaxx_get_top_afdeling_kpkenm;
|
||
/
|
||
|
||
|
||
-- zoek naar de afdelingscode van het <20><>n na hoogste niveau afdeling
|
||
CREATE OR REPLACE FUNCTION aaxx_get_lev2_dep_code (p_prs_kostenplaats_nr VARCHAR2) RETURN VARCHAR2
|
||
AS
|
||
v_result VARCHAR2(100);
|
||
BEGIN
|
||
v_result := 'Onbekend - ' || p_prs_kostenplaats_nr;
|
||
BEGIN
|
||
SELECT ta.prs_afdeling_naam
|
||
INTO v_result
|
||
FROM prs_kostenplaats kp,
|
||
prs_afdeling a,
|
||
prs_v_afdeling_boom ab,
|
||
prs_afdeling ta
|
||
WHERE kp.prs_kostenplaats_key = a.prs_kostenplaats_key
|
||
AND a.prs_afdeling_key = ab.prs_afdeling_key
|
||
AND ab.prs_afdeling_key2 = ta.prs_afdeling_key
|
||
AND kp.prs_kostenplaats_nr = p_prs_kostenplaats_nr;
|
||
RETURN v_result;
|
||
EXCEPTION WHEN OTHERS THEN
|
||
RETURN v_result;
|
||
END;
|
||
END aaxx_get_lev2_dep_code;
|
||
/
|
||
|
||
CREATE OR REPLACE FUNCTION aaxx_bestelling_items (bes_key IN NUMBER)
|
||
RETURN VARCHAR2
|
||
IS
|
||
lret VARCHAR2 (512);
|
||
lfirst NUMBER;
|
||
llast NUMBER;
|
||
|
||
CURSOR items
|
||
IS
|
||
SELECT TO_CHAR (bi.bes_bestelling_item_aantal)
|
||
|| 'x '
|
||
|| s.bes_srtdeel_omschrijving /* lcl.x()?*/
|
||
|| ' ('
|
||
|| s.bes_srtdeel_eenheid
|
||
|| ') ' besitemdsc
|
||
FROM bes_bestelling_item bi, bes_srtdeel s
|
||
WHERE bi.bes_srtdeel_key = s.bes_srtdeel_key
|
||
AND bi.bes_bestelling_key = bes_key;
|
||
BEGIN
|
||
lret := NULL;
|
||
lfirst := 0;
|
||
llast := 0;
|
||
|
||
FOR besitem_rec IN items
|
||
LOOP
|
||
IF lfirst = 0
|
||
THEN
|
||
BEGIN
|
||
lret := besitem_rec.besitemdsc;
|
||
lfirst := 1;
|
||
END;
|
||
ELSE
|
||
IF llast = 0
|
||
THEN
|
||
IF LENGTH (lret) + LENGTH (besitem_rec.besitemdsc) < (512 - 5)
|
||
THEN
|
||
lret := lret || CHR (10) || besitem_rec.besitemdsc;
|
||
ELSE
|
||
lret := lret || CHR (10) || '...';
|
||
llast := 1;
|
||
END IF;
|
||
END IF;
|
||
END IF;
|
||
END LOOP;
|
||
|
||
RETURN lret;
|
||
END;
|
||
/
|
||
|
||
CREATE OR REPLACE PROCEDURE aaxx_delete_non_active_users (p_applname IN VARCHAR2, p_applrun IN VARCHAR2)
|
||
AS
|
||
BEGIN
|
||
UPDATE prs_perslid p
|
||
SET prs_perslid_oslogin = NULL,
|
||
prs_perslid_oslogin2 = NULL
|
||
WHERE prs_perslid_verwijder IS NULL
|
||
AND (prs_perslid_oslogin IS NOT NULL OR prs_perslid_oslogin2 IS NOT NULL)
|
||
AND ( SYSDATE - prs_perslid_aanmaak > 90
|
||
AND ( prs_perslid_login IS NULL
|
||
OR SYSDATE - prs_perslid_login > 90
|
||
)
|
||
)
|
||
AND NOT EXISTS
|
||
(SELECT fac_groep_omschrijving
|
||
FROM fac_gebruikersgroep gg, fac_groep g
|
||
WHERE p.prs_perslid_key = gg.prs_perslid_key
|
||
AND gg.fac_groep_key = g.fac_groep_key
|
||
AND UPPER(g.fac_groep_omschrijving) LIKE '%EXTENDED LOGIN%'
|
||
AND SYSDATE - prs_perslid_login < 276)
|
||
AND NOT EXISTS
|
||
( SELECT fac_tracking_refkey
|
||
FROM fac_tracking t, fac_srtnotificatie sn
|
||
WHERE fac_tracking_refkey = p.prs_perslid_key
|
||
AND t.fac_srtnotificatie_key = sn.fac_srtnotificatie_key
|
||
AND sn.fac_srtnotificatie_code = 'PRSUPD'
|
||
AND SYSDATE - t.fac_tracking_datum < 90)
|
||
AND NOT EXISTS
|
||
( SELECT prs_afdeling_key
|
||
FROM prs_afdeling a
|
||
WHERE a.prs_afdeling_key = p.prs_afdeling_key
|
||
AND (a.prs_afdeling_omschrijving = 'AAFM' OR a.prs_afdeling_naam = 'HEYDAY'))
|
||
AND SUBSTR(COALESCE(prs_perslid_oslogin, 'Q'), 1, 1) <> '_'
|
||
AND NOT EXISTS
|
||
( SELECT prs_srtperslid_key
|
||
FROM prs_srtperslid ps
|
||
WHERE ps.prs_srtperslid_key = p.prs_srtperslid_key
|
||
AND prs_srtperslid_verwijder IS NULL
|
||
AND UPPER (ps.prs_srtperslid_omschrijving) = 'LEV AFMELDSCHERM');
|
||
END;
|
||
/
|
||
|
||
CREATE OR REPLACE PROCEDURE aaxx_delete_non_active_key (p_applname IN VARCHAR2, p_applrun IN VARCHAR2)
|
||
AS
|
||
BEGIN
|
||
UPDATE prs_perslid p
|
||
SET prs_perslid_oslogin = NULL,
|
||
prs_perslid_oslogin2 = NULL
|
||
WHERE prs_perslid_verwijder IS NULL
|
||
AND (prs_perslid_oslogin IS NOT NULL OR prs_perslid_oslogin2 IS NOT NULL)
|
||
AND ( SYSDATE - prs_perslid_aanmaak > 30
|
||
AND ( prs_perslid_login IS NULL
|
||
OR SYSDATE - prs_perslid_login > 30
|
||
)
|
||
)
|
||
AND EXISTS
|
||
( SELECT gg.fac_groep_key
|
||
FROM fac_gebruikersgroep gg, fac_groeprechten gr, fac_functie f
|
||
WHERE f.fac_functie_key = gr.fac_functie_key
|
||
AND f.fac_functie_code = 'WEB_EXTORD'
|
||
AND gr.fac_groep_key = gg.fac_groep_key
|
||
AND gg.prs_perslid_key = p.prs_perslid_key)
|
||
AND NOT EXISTS
|
||
( SELECT fac_tracking_refkey
|
||
FROM fac_tracking t, fac_srtnotificatie sn
|
||
WHERE fac_tracking_refkey = p.prs_perslid_key
|
||
AND t.fac_srtnotificatie_key = sn.fac_srtnotificatie_key
|
||
AND sn.fac_srtnotificatie_code = 'PRSUPD'
|
||
AND SYSDATE - t.fac_tracking_datum < 30)
|
||
AND NOT EXISTS
|
||
( SELECT prs_afdeling_key
|
||
FROM prs_afdeling a
|
||
WHERE a.prs_afdeling_key = p.prs_afdeling_key
|
||
AND (a.prs_afdeling_omschrijving = 'AAFM' OR a.prs_afdeling_naam = 'HEYDAY'))
|
||
AND SUBSTR(COALESCE(prs_perslid_oslogin, 'Q'), 1, 1) <> '_'
|
||
AND NOT EXISTS
|
||
( SELECT prs_srtperslid_key
|
||
FROM prs_srtperslid ps
|
||
WHERE ps.prs_srtperslid_key = p.prs_srtperslid_key
|
||
AND prs_srtperslid_verwijder IS NULL
|
||
AND UPPER (ps.prs_srtperslid_omschrijving) = 'LEV AFMELDSCHERM');
|
||
END;
|
||
/
|
||
|
||
CREATE OR REPLACE VIEW aaxx_v_noti_non_active_users
|
||
(
|
||
sender,
|
||
receiver,
|
||
text,
|
||
code,
|
||
fac_srtnotificatie_key,
|
||
key,
|
||
xkey,
|
||
xemail,
|
||
xmobile
|
||
)
|
||
AS
|
||
SELECT NULL sender,
|
||
prs_perslid_key receiver,
|
||
'Uw account voor FACILITOR is bijna verlopen. ' text,
|
||
'CUST05' code,
|
||
NULL fac_srtnotificatie_key,
|
||
p.prs_perslid_key key,
|
||
NULL xkey,
|
||
NULL xemail,
|
||
NULL xmobile
|
||
FROM prs_perslid p
|
||
WHERE p.prs_perslid_email IS NOT NULL
|
||
AND p.prs_perslid_verwijder IS NULL
|
||
AND TRUNC (p.prs_perslid_login) = TRUNC (SYSDATE - 90 + 7)
|
||
AND NOT EXISTS
|
||
(SELECT prs_afdeling_key
|
||
FROM prs_afdeling a
|
||
WHERE a.prs_afdeling_key = p.prs_afdeling_key
|
||
AND (a.prs_afdeling_omschrijving = 'AAFM' OR a.prs_afdeling_naam = 'HEYDAY'))
|
||
AND SUBSTR (prs_perslid_oslogin, 1, 1) <> '_'
|
||
AND NOT EXISTS
|
||
( SELECT prs_srtperslid_key
|
||
FROM prs_srtperslid ps
|
||
WHERE ps.prs_srtperslid_key = p.prs_srtperslid_key
|
||
AND prs_srtperslid_verwijder IS NULL
|
||
AND UPPER (ps.prs_srtperslid_omschrijving) = 'LEV AFMELDSCHERM');
|
||
|
||
CREATE OR REPLACE PROCEDURE aaxx_export_login (
|
||
p_applname IN VARCHAR2,
|
||
p_applrun IN VARCHAR2
|
||
)
|
||
AS
|
||
BEGIN
|
||
|
||
INSERT INTO aaxx_perslid_login
|
||
(prs_perslid_key, login_datum)
|
||
(SELECT prs_perslid_key, prs_perslid_login
|
||
FROM prs_perslid
|
||
WHERE TRUNC (prs_perslid_login) = TRUNC (SYSDATE));
|
||
|
||
END;
|
||
/
|
||
|
||
-- Job om meldingen onder de vakgroeptype AA Complimenten binnen de SLA automatisch af te melden
|
||
-- Hierbij wordt in de afhandeling de afmeldtekst gebruikt die standaard geconfigureerd staat.
|
||
CREATE OR REPLACE PROCEDURE aaxx_afmelden_complimenten (
|
||
p_applname IN VARCHAR2,
|
||
p_applrun IN VARCHAR2
|
||
)
|
||
AS
|
||
CURSOR c
|
||
IS
|
||
SELECT m.*, a.mld_afmeldtekst_omschrijving
|
||
FROM mld_melding m,
|
||
mld_stdmelding std,
|
||
ins_tab_discipline d,
|
||
ins_srtdiscipline sd,
|
||
mld_afmeldtekst a
|
||
WHERE 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 = 'AA'
|
||
AND a.mld_ins_discipline_key = std.mld_ins_discipline_key
|
||
AND a.mld_stdmelding_key IS NULL
|
||
AND m.mld_melding_status IN (2, 3, 4)
|
||
AND m.mld_melding_einddatum_std < SYSDATE + 1;
|
||
BEGIN
|
||
|
||
FOR rec in c
|
||
LOOP
|
||
BEGIN
|
||
UPDATE mld_melding
|
||
SET mld_melding_opmerking = rec.mld_afmeldtekst_omschrijving
|
||
WHERE mld_melding_key = rec.mld_melding_key;
|
||
|
||
-- Als status is nieuw of te accepteren dan eerst op geaccepteerd zetten.
|
||
IF rec.mld_melding_status = 2 OR rec.mld_melding_status = 3
|
||
THEN
|
||
mld.setmeldingstatus(rec.mld_melding_key, 4, NULL);
|
||
END IF;
|
||
|
||
-- nu de status op afgemeld zetten.
|
||
mld.setmeldingstatus(rec.mld_melding_key, 5, NULL);
|
||
END;
|
||
END LOOP;
|
||
END;
|
||
/
|
||
|
||
|
||
-- Correcties op meldingen/opdrachten/facturen bestaan uit aanpassingen in de kostenplaats
|
||
-- of standaardmelding (kostensoort). De originele opdracht is dan al verwerkt en naar Exact
|
||
-- gehaald. Daar willen we niet aan gaan zitten knutselen.
|
||
-- Daarom kan aan een melding die ingelegd is op een verkeerde stdmelding of kostenplaats
|
||
-- een vervolgmelding (Ordercorrectie) gekoppeld worden. Deze ordercorrectiemelding heeft
|
||
-- flexvelden voor de nieuwe kostenplaats en nieuwe stdmelding. Onderstaande procedure
|
||
-- maakt nu een nieuwe structuur van melding/opdrach(en)/factuur(en) aan die gelijk is aan
|
||
-- de structuur van de originele melding maar met de tegenboeking (negatieve bedragen). Als
|
||
-- tweede wordt dezelfde structuur nog een keer aangemaakt voor de correctiemelding. Deze
|
||
-- structuur bevat de originele bedragen maar bevat de nieuwe kostenplaats en/of stdmelding.
|
||
-- Correctiemeldingen worden pas uitgevoerd op het moment dat ze afgemeld zijn. Aan het
|
||
-- einde van deze procedure wordt de correctiemelding op afgerond gezet zodat deze niet
|
||
-- nogmaals uitgevoerd wordt.
|
||
CREATE OR REPLACE PROCEDURE aaxx_ordercorrecties (
|
||
p_applname IN VARCHAR2,
|
||
p_applrun IN VARCHAR2
|
||
)
|
||
AS
|
||
CURSOR c
|
||
IS
|
||
SELECT m.mld_melding_start_key,
|
||
m.mld_melding_key,
|
||
COALESCE (
|
||
(SELECT fac.safe_to_number (km.mld_kenmerkmelding_waarde)
|
||
FROM mld_kenmerkmelding km,
|
||
mld_kenmerk k,
|
||
mld_srtkenmerk sk
|
||
WHERE km.mld_kenmerk_key = k.mld_kenmerk_key
|
||
AND km.mld_melding_key = m.mld_melding_key
|
||
AND k.mld_srtkenmerk_key = sk.mld_srtkenmerk_key
|
||
AND sk.mld_srtkenmerk_upper = 'NIEUWE KOSTENPLAATS'),
|
||
m_org.prs_kostenplaats_key)
|
||
nieuwe_kostenplaats,
|
||
COALESCE (
|
||
(SELECT fac.safe_to_number (km.mld_kenmerkmelding_waarde)
|
||
FROM mld_kenmerkmelding km,
|
||
mld_kenmerk k,
|
||
mld_srtkenmerk sk
|
||
WHERE km.mld_kenmerk_key = k.mld_kenmerk_key
|
||
AND km.mld_melding_key = m.mld_melding_key
|
||
AND k.mld_srtkenmerk_key = sk.mld_srtkenmerk_key
|
||
AND sk.mld_srtkenmerk_upper = 'NIEUWE MELDING'),
|
||
m_org.prs_kostenplaats_key)
|
||
nieuwe_melding
|
||
FROM mld_melding m, mld_stdmelding std, mld_melding m_org
|
||
WHERE m.mld_stdmelding_key = std.mld_stdmelding_key
|
||
AND std.mld_stdmelding_omschrijving = 'Ordercorrecties'
|
||
AND m.mld_melding_start_key = m_org.mld_melding_key
|
||
AND m.mld_melding_status = 5
|
||
AND m.mld_melding_afgerond = 0;
|
||
|
||
CURSOR c_o (c_melding_key NUMBER)
|
||
IS
|
||
SELECT *
|
||
FROM mld_opdr
|
||
WHERE mld_melding_key = c_melding_key;
|
||
|
||
CURSOR c_f (c_opdr_key NUMBER)
|
||
IS
|
||
SELECT *
|
||
FROM fin_factuur
|
||
WHERE mld_opdr_key = c_opdr_key AND fin_factuur_verwijder IS NULL;
|
||
|
||
CURSOR c_fr (c_factuur_key NUMBER)
|
||
IS
|
||
SELECT *
|
||
FROM fin_factuurregel
|
||
WHERE fin_factuur_key = c_factuur_key;
|
||
|
||
v_melding_tegenb_key NUMBER;
|
||
v_opdr_tegenb_key NUMBER;
|
||
v_factuur_tegenb_key NUMBER;
|
||
v_factuurregel_tegenb_key NUMBER;
|
||
v_melding_cor_key NUMBER;
|
||
v_opdr_cor_key NUMBER;
|
||
v_factuur_cor_key NUMBER;
|
||
v_factuurregel_cor_key NUMBER;
|
||
BEGIN
|
||
FOR rec IN c
|
||
LOOP
|
||
BEGIN
|
||
-- Maak een tegenboeking aan met dezelfde stdmelding/kostenplaats
|
||
SELECT mld_s_mld_melding_key.NEXTVAL
|
||
INTO v_melding_tegenb_key
|
||
FROM DUAL;
|
||
|
||
INSERT INTO mld_melding (mld_melding_key,
|
||
mld_melding_module,
|
||
mld_meldbron_key,
|
||
mld_alg_locatie_key,
|
||
mld_alg_onroerendgoed_keys,
|
||
mld_melding_datum,
|
||
mld_melding_omschrijving,
|
||
mld_melding_opmerking,
|
||
mld_stdmelding_key,
|
||
mld_melding_status,
|
||
mld_kosten_klant,
|
||
mld_melding_document,
|
||
prs_kostenplaats_key,
|
||
prs_perslid_key,
|
||
mld_adres_key,
|
||
mld_melding_ordernr,
|
||
mld_melding_spoed,
|
||
mld_melding_onderwerp,
|
||
mld_melding_start_key)
|
||
SELECT v_melding_tegenb_key,
|
||
mld_melding_module,
|
||
mld_meldbron_key,
|
||
mld_alg_locatie_key,
|
||
mld_alg_onroerendgoed_keys,
|
||
mld_melding_datum,
|
||
SUBSTR (
|
||
'Tegenboeking'
|
||
|| CHR (10)
|
||
|| mld_melding_omschrijving,
|
||
1,
|
||
4000),
|
||
SUBSTR (
|
||
'Tegenboeking'
|
||
|| CHR (10)
|
||
|| mld_melding_opmerking,
|
||
1,
|
||
4000),
|
||
mld_stdmelding_key,
|
||
2,
|
||
mld_kosten_klant,
|
||
mld_melding_document,
|
||
prs_kostenplaats_key,
|
||
prs_perslid_key,
|
||
mld_adres_key,
|
||
mld_melding_ordernr,
|
||
mld_melding_spoed,
|
||
SUBSTR ('Tegenboeking: ' || mld_melding_onderwerp, 1, 60),
|
||
mld_melding_key
|
||
FROM mld_melding
|
||
WHERE mld_melding_key = rec.mld_melding_start_key;
|
||
|
||
fac.trackaction ('MLDNEW',
|
||
v_melding_tegenb_key,
|
||
NULL,
|
||
NULL,
|
||
NULL);
|
||
|
||
mld.setmeldingstatus (v_melding_tegenb_key, 4, NULL);
|
||
|
||
-- Maak een correctie melding aan met de nieuwe stdmelding en nieuwe kostenplaats
|
||
SELECT mld_s_mld_melding_key.NEXTVAL
|
||
INTO v_melding_cor_key
|
||
FROM DUAL;
|
||
|
||
INSERT INTO mld_melding (mld_melding_key,
|
||
mld_melding_module,
|
||
mld_meldbron_key,
|
||
mld_alg_locatie_key,
|
||
mld_alg_onroerendgoed_keys,
|
||
mld_melding_datum,
|
||
mld_melding_omschrijving,
|
||
mld_melding_opmerking,
|
||
mld_stdmelding_key,
|
||
mld_melding_status,
|
||
mld_kosten_klant,
|
||
mld_melding_document,
|
||
prs_kostenplaats_key,
|
||
prs_perslid_key,
|
||
mld_adres_key,
|
||
mld_melding_ordernr,
|
||
mld_melding_spoed,
|
||
mld_melding_onderwerp,
|
||
mld_melding_start_key)
|
||
SELECT v_melding_cor_key,
|
||
mld_melding_module,
|
||
mld_meldbron_key,
|
||
mld_alg_locatie_key,
|
||
mld_alg_onroerendgoed_keys,
|
||
mld_melding_datum,
|
||
SUBSTR (
|
||
'Correctie melding'
|
||
|| CHR (10)
|
||
|| mld_melding_omschrijving,
|
||
1,
|
||
4000),
|
||
SUBSTR (
|
||
'Correctie melding'
|
||
|| CHR (10)
|
||
|| mld_melding_opmerking,
|
||
1,
|
||
4000),
|
||
rec.nieuwe_melding,
|
||
2,
|
||
mld_kosten_klant,
|
||
mld_melding_document,
|
||
rec.nieuwe_kostenplaats,
|
||
prs_perslid_key,
|
||
mld_adres_key,
|
||
mld_melding_ordernr,
|
||
mld_melding_spoed,
|
||
SUBSTR ('Correctie: ' || mld_melding_onderwerp, 1, 60),
|
||
mld_melding_key
|
||
FROM mld_melding
|
||
WHERE mld_melding_key = rec.mld_melding_start_key;
|
||
|
||
fac.trackaction ('MLDNEW',
|
||
v_melding_cor_key,
|
||
NULL,
|
||
NULL,
|
||
NULL);
|
||
|
||
mld.setmeldingstatus (v_melding_cor_key, 4, NULL);
|
||
|
||
|
||
|
||
DBMS_OUTPUT.put_line (
|
||
'Originele melding_key:' || rec.mld_melding_start_key);
|
||
|
||
FOR rec_o IN c_o (rec.mld_melding_start_key)
|
||
LOOP
|
||
BEGIN
|
||
DBMS_OUTPUT.put_line (
|
||
'Originele opdracht_key:' || rec_o.mld_opdr_key);
|
||
|
||
-- Maak voor iedere opdracht onder de originele melding een tegenboekingsopdracht aan.
|
||
SELECT mld_s_mld_opdr_key.NEXTVAL
|
||
INTO v_opdr_tegenb_key
|
||
FROM DUAL;
|
||
|
||
DBMS_OUTPUT.put_line (
|
||
'Tegenboeking opdracht_key:' || v_opdr_tegenb_key);
|
||
|
||
INSERT INTO mld_opdr (mld_opdr_key,
|
||
mld_opdr_module,
|
||
mld_melding_key,
|
||
mld_alg_locatie_key,
|
||
mld_alg_onroerendgoed_keys,
|
||
mld_uitvoerende_keys,
|
||
mld_typeopdr_key,
|
||
mld_statusopdr_key,
|
||
mld_standaardopdr_key,
|
||
mld_opdr_omschrijving,
|
||
mld_opdr_datumbegin,
|
||
mld_opdr_dagen,
|
||
mld_opdr_einddatum,
|
||
mld_opdr_werkzaamheden,
|
||
mld_opdr_uren,
|
||
mld_opdr_materiaal,
|
||
mld_opdr_kosten,
|
||
prs_kostenplaats_key,
|
||
mld_opdr_ordernr,
|
||
mld_opdr_contactpersoon,
|
||
mld_opdr_bedrijfopdr_volgnr,
|
||
mld_opdr_teverzenden,
|
||
mld_opdr_uurloon,
|
||
prs_perslid_key,
|
||
prs_contactpersoon_key,
|
||
mld_opdr_opmerking_fiat,
|
||
fac_activiteit_key,
|
||
mld_opdr_opmerking,
|
||
cnt_contract_key,
|
||
cnt_contract_dienst_key,
|
||
mld_opdr_plandatum,
|
||
mld_opdr_id)
|
||
SELECT v_opdr_tegenb_key,
|
||
mld_opdr_module,
|
||
v_melding_tegenb_key,
|
||
mld_alg_locatie_key,
|
||
mld_alg_onroerendgoed_keys,
|
||
mld_uitvoerende_keys,
|
||
mld_typeopdr_key,
|
||
5, -- toegekend
|
||
mld_standaardopdr_key,
|
||
mld_opdr_omschrijving,
|
||
mld_opdr_datumbegin,
|
||
mld_opdr_dagen,
|
||
mld_opdr_einddatum,
|
||
mld_opdr_werkzaamheden,
|
||
0,
|
||
0,
|
||
-1 * mld_opdr_kosten,
|
||
prs_kostenplaats_key,
|
||
mld_opdr_ordernr,
|
||
mld_opdr_contactpersoon,
|
||
mld_opdr_bedrijfopdr_volgnr,
|
||
NULL, -- mld_opdr_teverzenden
|
||
mld_opdr_uurloon,
|
||
prs_perslid_key,
|
||
prs_contactpersoon_key,
|
||
mld_opdr_opmerking_fiat,
|
||
fac_activiteit_key,
|
||
SUBSTR (
|
||
'Tegenboeking'
|
||
|| CHR (10)
|
||
|| mld_opdr_opmerking,
|
||
1,
|
||
4000),
|
||
cnt_contract_key,
|
||
cnt_contract_dienst_key,
|
||
mld_opdr_plandatum,
|
||
mld_opdr_id
|
||
FROM mld_opdr
|
||
WHERE mld_opdr_key = rec_o.mld_opdr_key;
|
||
|
||
fac.trackaction ('#ORDNEW',
|
||
v_opdr_tegenb_key,
|
||
NULL,
|
||
NULL,
|
||
NULL);
|
||
|
||
-- Maak voor iedere opdracht onder de originele melding een correctieopdracht aan.
|
||
SELECT mld_s_mld_opdr_key.NEXTVAL
|
||
INTO v_opdr_cor_key
|
||
FROM DUAL;
|
||
|
||
DBMS_OUTPUT.put_line (
|
||
'Correctie opdracht_key:' || v_opdr_cor_key);
|
||
|
||
INSERT INTO mld_opdr (mld_opdr_key,
|
||
mld_opdr_module,
|
||
mld_melding_key,
|
||
mld_alg_locatie_key,
|
||
mld_alg_onroerendgoed_keys,
|
||
mld_uitvoerende_keys,
|
||
mld_typeopdr_key,
|
||
mld_statusopdr_key,
|
||
mld_standaardopdr_key,
|
||
mld_opdr_omschrijving,
|
||
mld_opdr_datumbegin,
|
||
mld_opdr_dagen,
|
||
mld_opdr_einddatum,
|
||
mld_opdr_werkzaamheden,
|
||
mld_opdr_uren,
|
||
mld_opdr_materiaal,
|
||
mld_opdr_kosten,
|
||
prs_kostenplaats_key,
|
||
mld_opdr_ordernr,
|
||
mld_opdr_contactpersoon,
|
||
mld_opdr_bedrijfopdr_volgnr,
|
||
mld_opdr_teverzenden,
|
||
mld_opdr_uurloon,
|
||
prs_perslid_key,
|
||
prs_contactpersoon_key,
|
||
mld_opdr_opmerking_fiat,
|
||
fac_activiteit_key,
|
||
mld_opdr_opmerking,
|
||
cnt_contract_key,
|
||
cnt_contract_dienst_key,
|
||
mld_opdr_plandatum,
|
||
mld_opdr_id)
|
||
SELECT v_opdr_cor_key,
|
||
mld_opdr_module,
|
||
v_melding_cor_key,
|
||
mld_alg_locatie_key,
|
||
mld_alg_onroerendgoed_keys,
|
||
mld_uitvoerende_keys,
|
||
mld_typeopdr_key,
|
||
5, -- toegekend
|
||
mld_standaardopdr_key,
|
||
mld_opdr_omschrijving,
|
||
mld_opdr_datumbegin,
|
||
mld_opdr_dagen,
|
||
mld_opdr_einddatum,
|
||
mld_opdr_werkzaamheden,
|
||
mld_opdr_uren,
|
||
mld_opdr_materiaal,
|
||
mld_opdr_kosten,
|
||
rec.nieuwe_kostenplaats,
|
||
mld_opdr_ordernr,
|
||
mld_opdr_contactpersoon,
|
||
mld_opdr_bedrijfopdr_volgnr,
|
||
NULL, -- mld_opdr_teverzenden
|
||
mld_opdr_uurloon,
|
||
prs_perslid_key,
|
||
prs_contactpersoon_key,
|
||
mld_opdr_opmerking_fiat,
|
||
fac_activiteit_key,
|
||
SUBSTR (
|
||
'Correctie'
|
||
|| CHR (10)
|
||
|| mld_opdr_opmerking,
|
||
1,
|
||
4000),
|
||
cnt_contract_key,
|
||
cnt_contract_dienst_key,
|
||
mld_opdr_plandatum,
|
||
mld_opdr_id
|
||
FROM mld_opdr
|
||
WHERE mld_opdr_key = rec_o.mld_opdr_key;
|
||
|
||
fac.trackaction ('#ORDNEW',
|
||
v_opdr_cor_key,
|
||
NULL,
|
||
NULL,
|
||
NULL);
|
||
|
||
FOR rec_f IN c_f (rec_o.mld_opdr_key)
|
||
LOOP
|
||
BEGIN
|
||
DBMS_OUTPUT.put_line (
|
||
'Originele factuur_key:' || rec_f.fin_factuur_key);
|
||
|
||
-- Maak voor iedere factuur onder de originele opdracht een tegenboekingsfactuur aan.
|
||
SELECT fin_s_fin_factuur_key.NEXTVAL
|
||
INTO v_factuur_tegenb_key
|
||
FROM DUAL;
|
||
|
||
DBMS_OUTPUT.put_line (
|
||
'Tegenboekingsfactuur_key:' || v_factuur_tegenb_key);
|
||
|
||
INSERT INTO fin_factuur (fin_factuur_key,
|
||
mld_opdr_key,
|
||
fin_factuur_nr,
|
||
fin_factuur_totaal,
|
||
fin_factuur_totaal_btw,
|
||
prs_perslid_key_user,
|
||
fin_factuur_datum,
|
||
fin_factuur_boekmaand,
|
||
fin_factuur_debiteur_nr,
|
||
prs_kostensoort_key,
|
||
fin_factuur_opmerking,
|
||
fin_factuur_statuses_key)
|
||
SELECT v_factuur_tegenb_key,
|
||
v_opdr_tegenb_key,
|
||
fin_factuur_nr,
|
||
-1 * fin_factuur_totaal,
|
||
-1 * fin_factuur_totaal_btw,
|
||
prs_perslid_key_user,
|
||
fin_factuur_datum,
|
||
fin_factuur_boekmaand,
|
||
fin_factuur_debiteur_nr,
|
||
prs_kostensoort_key,
|
||
SUBSTR (
|
||
'Tegenboeking'
|
||
|| CHR (10)
|
||
|| fin_factuur_opmerking,
|
||
1,
|
||
4000),
|
||
6 -- goedgekeurd
|
||
FROM fin_factuur
|
||
WHERE fin_factuur_key = rec_f.fin_factuur_key;
|
||
|
||
INSERT INTO fin_kenmerkfactuur (fin_factuur_key, fin_kenmerk_key, fin_kenmerkfactuur_waarde)
|
||
SELECT v_factuur_tegenb_key,
|
||
fin_kenmerk_key,
|
||
fin_kenmerkfactuur_waarde
|
||
FROM fin_kenmerkfactuur
|
||
WHERE fin_factuur_key = rec_f.fin_factuur_key;
|
||
|
||
fac.trackaction ('FINNEW',
|
||
v_factuur_tegenb_key,
|
||
NULL,
|
||
NULL,
|
||
NULL);
|
||
|
||
-- Maak voor iedere factuur onder de originele opdracht een correctiefactuur aan.
|
||
SELECT fin_s_fin_factuur_key.NEXTVAL
|
||
INTO v_factuur_cor_key
|
||
FROM DUAL;
|
||
|
||
DBMS_OUTPUT.put_line (
|
||
'Correctie factuur_key:' || v_factuur_cor_key);
|
||
|
||
INSERT INTO fin_factuur (fin_factuur_key,
|
||
mld_opdr_key,
|
||
fin_factuur_nr,
|
||
fin_factuur_totaal,
|
||
fin_factuur_totaal_btw,
|
||
prs_perslid_key_user,
|
||
fin_factuur_datum,
|
||
fin_factuur_boekmaand,
|
||
fin_factuur_debiteur_nr,
|
||
prs_kostensoort_key,
|
||
fin_factuur_opmerking,
|
||
fin_factuur_statuses_key)
|
||
SELECT v_factuur_cor_key,
|
||
v_opdr_cor_key,
|
||
fin_factuur_nr,
|
||
fin_factuur_totaal,
|
||
fin_factuur_totaal_btw,
|
||
prs_perslid_key_user,
|
||
fin_factuur_datum,
|
||
fin_factuur_boekmaand,
|
||
fin_factuur_debiteur_nr,
|
||
(SELECT COALESCE (std.prs_kostensoort_key,
|
||
d.prs_kostensoort_key)
|
||
FROM mld_stdmelding std,
|
||
ins_tab_discipline d
|
||
WHERE std.mld_ins_discipline_key =
|
||
d.ins_discipline_key
|
||
AND std.mld_stdmelding_key =
|
||
rec.nieuwe_melding),
|
||
SUBSTR (
|
||
'Correctie'
|
||
|| CHR (10)
|
||
|| fin_factuur_opmerking,
|
||
1,
|
||
4000),
|
||
6 -- goedgekeurd
|
||
FROM fin_factuur
|
||
WHERE fin_factuur_key = rec_f.fin_factuur_key;
|
||
|
||
fac.trackaction ('FINNEW',
|
||
v_factuur_cor_key,
|
||
NULL,
|
||
NULL,
|
||
NULL);
|
||
|
||
INSERT INTO fin_kenmerkfactuur (fin_factuur_key, fin_kenmerk_key, fin_kenmerkfactuur_waarde)
|
||
SELECT v_factuur_cor_key,
|
||
fin_kenmerk_key,
|
||
fin_kenmerkfactuur_waarde
|
||
FROM fin_kenmerkfactuur
|
||
WHERE fin_factuur_key = rec_f.fin_factuur_key;
|
||
|
||
FOR rec_fr IN c_fr (rec_f.fin_factuur_key)
|
||
LOOP
|
||
BEGIN
|
||
DBMS_OUTPUT.put_line('Originele factuurregel_key:'
|
||
|| rec_fr.fin_factuurregel_key);
|
||
|
||
-- Maak voor iedere factuurregel onder de originele factuur een tegenboekings factuurregel aan.
|
||
SELECT fin_s_fin_factuurregel_key.NEXTVAL
|
||
INTO v_factuurregel_tegenb_key
|
||
FROM DUAL;
|
||
|
||
DBMS_OUTPUT.put_line('Tegenboekings factuurregel_key:'
|
||
|| v_factuurregel_tegenb_key);
|
||
|
||
INSERT INTO fin_factuurregel (fin_factuurregel_key,
|
||
fin_factuur_key,
|
||
fin_factuurregel_nr,
|
||
fin_factuurregel_totaal,
|
||
fin_factuurregel_btw,
|
||
fin_factuurregel_omschrijving,
|
||
fin_factuurregel_referentie,
|
||
fin_btwtabelwaarde_key,
|
||
prs_kostensoort_key)
|
||
SELECT v_factuurregel_tegenb_key,
|
||
v_factuur_tegenb_key,
|
||
fin_factuurregel_nr,
|
||
-1 * fin_factuurregel_totaal,
|
||
-1 * fin_factuurregel_btw,
|
||
fin_factuurregel_omschrijving,
|
||
fin_factuurregel_referentie,
|
||
fin_btwtabelwaarde_key,
|
||
prs_kostensoort_key
|
||
FROM fin_factuurregel
|
||
WHERE fin_factuurregel_key =
|
||
rec_fr.fin_factuurregel_key;
|
||
|
||
|
||
-- Maak voor iedere factuurregel onder de originele factuur een correctie factuurregel aan.
|
||
SELECT fin_s_fin_factuurregel_key.NEXTVAL
|
||
INTO v_factuurregel_cor_key
|
||
FROM DUAL;
|
||
|
||
DBMS_OUTPUT.put_line('Correctie factuurregel_key:'
|
||
|| v_factuurregel_cor_key);
|
||
|
||
INSERT INTO fin_factuurregel (fin_factuurregel_key,
|
||
fin_factuur_key,
|
||
fin_factuurregel_nr,
|
||
fin_factuurregel_totaal,
|
||
fin_factuurregel_btw,
|
||
fin_factuurregel_omschrijving,
|
||
fin_factuurregel_referentie,
|
||
fin_btwtabelwaarde_key,
|
||
prs_kostensoort_key)
|
||
SELECT v_factuurregel_cor_key,
|
||
v_factuur_cor_key,
|
||
fin_factuurregel_nr,
|
||
fin_factuurregel_totaal,
|
||
fin_factuurregel_btw,
|
||
fin_factuurregel_omschrijving,
|
||
fin_factuurregel_referentie,
|
||
fin_btwtabelwaarde_key,
|
||
(SELECT COALESCE (
|
||
std.prs_kostensoort_key,
|
||
d.prs_kostensoort_key)
|
||
FROM mld_stdmelding std,
|
||
ins_tab_discipline d
|
||
WHERE std.mld_ins_discipline_key =
|
||
d.ins_discipline_key
|
||
AND std.mld_stdmelding_key =
|
||
rec.nieuwe_melding)
|
||
FROM fin_factuurregel
|
||
WHERE fin_factuurregel_key =
|
||
rec_fr.fin_factuurregel_key;
|
||
END;
|
||
END LOOP;
|
||
END;
|
||
END LOOP;
|
||
|
||
-- set opdrachtstatus op technisch gereed
|
||
mld.setopdrachtstatus (v_opdr_tegenb_key, 6, NULL);
|
||
mld.setopdrachtstatus (v_opdr_cor_key, 6, NULL);
|
||
END;
|
||
END LOOP;
|
||
-- zet meldingstatus op technisch gereed
|
||
mld.updatemeldingstatus (v_melding_tegenb_key, 1, NULL);
|
||
mld.updatemeldingstatus (v_melding_cor_key, 1, NULL);
|
||
|
||
-- zet de status van de correctiemelding op afgerond zodat deze niet opnieuw verwerkt wordt.
|
||
UPDATE mld_melding
|
||
SET mld_melding_afgerond = 1
|
||
WHERE mld_melding_key = rec.mld_melding_key;
|
||
END;
|
||
END LOOP;
|
||
END;
|
||
/
|
||
|
||
-- view om stdmeldingen als suggest bij kenmerk te tonen.
|
||
CREATE OR REPLACE VIEW aaxx_v_stdmelding_gegevens
|
||
AS
|
||
SELECT sd.ins_srtdiscipline_key,
|
||
ins_srtdiscipline_prefix,
|
||
ins_srtdiscipline_omschrijving,
|
||
ins_discipline_key,
|
||
ins_discipline_omschrijving,
|
||
mld_stdmelding_key,
|
||
mld_stdmelding_omschrijving,
|
||
ins_discipline_omschrijving || '/' || mld_stdmelding_omschrijving
|
||
discstd,
|
||
mld_stdmelding_verwijder
|
||
FROM ins_tab_discipline d, ins_srtdiscipline sd, mld_stdmelding std
|
||
WHERE sd.ins_srtdiscipline_key = d.ins_srtdiscipline_key
|
||
AND d.ins_discipline_key = std.mld_ins_discipline_key;
|
||
|
||
--=============================================================================
|
||
-- EXPORTFUNCTIES Reserveringen NoShow.
|
||
-- Exportfunctie moet voor de putorders van de betreffende klant gescheduled worden.
|
||
-- 10 minuten na aanvang wordt bij no_show een noshow reminder gestuurd
|
||
-- 15 minuten na aanvang wordt de reservering als noshow aangemerkt en
|
||
-- wordt de ruimte vrijgegeven.
|
||
-------------------------------------------------------------------------------
|
||
|
||
CREATE OR REPLACE PROCEDURE aaxx_select_noshow_reminder (
|
||
p_applname IN VARCHAR2,
|
||
p_applrun IN VARCHAR2)
|
||
AS
|
||
CURSOR c (
|
||
c_srtnotificatie_key NUMBER)
|
||
IS
|
||
SELECT DISTINCT rrr.res_rsv_ruimte_host_key,
|
||
rr.res_ruimte_nr,
|
||
pf.prs_perslid_naam_full,
|
||
rrr.res_reservering_key,
|
||
rrr.res_rsv_ruimte_key
|
||
FROM cad_v_thema_srtruimtesensor s,
|
||
res_v_rsv_ruimte_2_alg_ruimte r2a,
|
||
res_rsv_ruimte rrr,
|
||
res_ruimte rr,
|
||
prs_v_perslid_fullnames pf
|
||
WHERE waarde = 'NoShow'
|
||
AND res_rsv_ruimte_host_key = pf.prs_perslid_key
|
||
AND s.alg_ruimte_key = r2a.alg_ruimte_key
|
||
AND r2a.res_rsv_ruimte_key = rrr.res_rsv_ruimte_key
|
||
AND r2a.res_ruimte_key = rr.res_ruimte_key
|
||
AND SYSDATE BETWEEN rrr.res_rsv_ruimte_van
|
||
AND rrr.res_rsv_ruimte_tot
|
||
AND rrr.res_rsv_ruimte_van < SYSDATE - 1 / (24 * 6) -- verder dan tien minuten
|
||
AND rrr.res_rsv_ruimte_van > SYSDATE - 2 / (24 * 6) -- niet verder dan twintig minuten
|
||
AND NOT EXISTS
|
||
(SELECT fac_tracking_key
|
||
FROM fac_tracking t
|
||
WHERE t.fac_srtnotificatie_key = c_srtnotificatie_key
|
||
AND fac_tracking_refkey = rrr.res_rsv_ruimte_key);
|
||
|
||
CURSOR c2 (
|
||
c_srtnotificatie_key NUMBER)
|
||
IS
|
||
SELECT DISTINCT r2a.res_rsv_ruimte_key
|
||
FROM cad_v_thema_srtruimtesensor s, res_v_rsv_ruimte_2_alg_ruimte r2a
|
||
WHERE waarde = 'NoShow' AND s.alg_ruimte_key = r2a.alg_ruimte_key
|
||
AND SYSDATE BETWEEN r2a.res_rsv_ruimte_van
|
||
AND r2a.res_rsv_ruimte_tot
|
||
AND r2a.res_rsv_ruimte_van < SYSDATE - 1 / (24 * 4) -- verder dan een kwartier
|
||
AND r2a.res_rsv_ruimte_van > SYSDATE - 2 / (24 * 4) -- niet verder dan een half uur
|
||
AND EXISTS
|
||
(SELECT fac_tracking_key
|
||
FROM fac_tracking t
|
||
WHERE t.fac_srtnotificatie_key = c_srtnotificatie_key
|
||
AND fac_tracking_refkey = r2a.res_rsv_ruimte_key);
|
||
|
||
v_srtnotificatie_key NUMBER;
|
||
BEGIN
|
||
SELECT fac_srtnotificatie_key
|
||
INTO v_srtnotificatie_key
|
||
FROM fac_srtnotificatie
|
||
WHERE fac_srtnotificatie_code = 'CUST06'; -- herinnering noshow
|
||
|
||
FOR rec IN c (v_srtnotificatie_key)
|
||
LOOP
|
||
BEGIN
|
||
fac.putnotificationsrtprio (
|
||
NULL,
|
||
rec.res_rsv_ruimte_host_key,
|
||
'CUST06',
|
||
rec.res_reservering_key,
|
||
'No-show waarschuwing reservering ' || rec.res_ruimte_nr,
|
||
2, -- mail
|
||
NULL, -- geen specifiek mail adres
|
||
NULL, -- geen specifiek mobile nummer
|
||
rec.res_rsv_ruimte_key,
|
||
1, -- hoge prioriteit
|
||
NULL);
|
||
|
||
fac.trackaction (
|
||
'#CUST06',
|
||
rec.res_rsv_ruimte_key,
|
||
NULL,
|
||
NULL,
|
||
'No-show waarschuwing verzonden naar: '
|
||
|| rec.prs_perslid_naam_full);
|
||
END;
|
||
END LOOP;
|
||
|
||
FOR rec IN c2 (v_srtnotificatie_key)
|
||
LOOP
|
||
BEGIN
|
||
UPDATE res_rsv_ruimte
|
||
SET res_rsv_ruimte_bezoekers_shown = 0,
|
||
res_rsv_ruimte_tot =
|
||
GREATEST (
|
||
res_rsv_ruimte_van,
|
||
LEAST (res_rsv_ruimte_tot, TRUNC (SYSDATE, 'MI')))
|
||
WHERE res_rsv_ruimte_key = rec.res_rsv_ruimte_key;
|
||
|
||
UPDATE res_rsv_deel
|
||
SET res_rsv_deel_tot =
|
||
LEAST (
|
||
res_rsv_deel_tot,
|
||
(SELECT res_rsv_ruimte_tot
|
||
FROM res_rsv_ruimte
|
||
WHERE res_rsv_ruimte_key = rec.res_rsv_ruimte_key))
|
||
WHERE res_rsv_ruimte_key = rec.res_rsv_ruimte_key;
|
||
|
||
fac.trackaction ('RESNOS',
|
||
rec.res_rsv_ruimte_key,
|
||
NULL,
|
||
NULL,
|
||
NULL);
|
||
END;
|
||
END LOOP;
|
||
|
||
COMMIT;
|
||
END;
|
||
/
|
||
|
||
|
||
-- hulpview - om mareon-factuurverwerking zo efficient mogelijk te laten lopen registreert men vanaf dec-2022 of men bij verkeerde facturen mareon-helpdesk of leverancier om actie/aanpassing vraagt
|
||
CREATE OR REPLACE VIEW aaxx_v_fin_factuur_retour
|
||
(
|
||
fin_factuur_key,
|
||
fin_factuur_nr,
|
||
referentie_facilitor,
|
||
fin_factuur_aanmaak,
|
||
fin_factuur_verwijder,
|
||
fin_factuur_status,
|
||
fin_factuur_retour_lev,
|
||
fin_factuur_retour_lev_reden,
|
||
fin_factuur_retour_mar,
|
||
fin_factuur_retour_mar_reden,
|
||
prs_bedrijf_naam
|
||
)
|
||
AS
|
||
SELECT f.fin_factuur_key,
|
||
f.fin_factuur_nr,
|
||
v.referentie_facilitor,
|
||
v.fin_factuur_aanmaak,
|
||
f.fin_factuur_verwijder,
|
||
v.fin_factuur_status,
|
||
v.fin_factuur_retour_lev,
|
||
v.fin_factuur_retour_lev_reden,
|
||
v.fin_factuur_retour_mar,
|
||
v.fin_factuur_retour_mar_reden,
|
||
COALESCE (b_c.prs_bedrijf_naam,
|
||
COALESCE (b_o.prs_bedrijf_naam, b_b.prs_bedrijf_naam))
|
||
prs_bedrijf_naam
|
||
FROM fin_factuur f,
|
||
( SELECT fin_factuur_key,
|
||
COALESCE (opdr_id, contract_id, bestel_id)
|
||
referentie_facilitor,
|
||
fin_factuur_aanmaak,
|
||
fin_factuur_retour_lev,
|
||
fin_factuur_retour_lev_reden,
|
||
fin_factuur_status,
|
||
fin_factuur_retour_mar,
|
||
fin_factuur_retour_mar_reden
|
||
FROM aaxx_v_dwh_fin_factuur
|
||
GROUP BY fin_factuur_key,
|
||
COALESCE (opdr_id, contract_id, bestel_id),
|
||
fin_factuur_aanmaak,
|
||
fin_factuur_status,
|
||
fin_factuur_retour_lev,
|
||
fin_factuur_retour_lev_reden,
|
||
fin_factuur_retour_mar,
|
||
fin_factuur_retour_mar_reden) v,
|
||
mld_opdr o,
|
||
cnt_contract c,
|
||
bes_bestelopdr bo,
|
||
prs_bedrijf b_o,
|
||
prs_bedrijf b_c,
|
||
prs_bedrijf b_b
|
||
WHERE v.fin_factuur_key = f.fin_factuur_key
|
||
AND f.mld_opdr_key = o.mld_opdr_key(+)
|
||
AND f.cnt_contract_key = c.cnt_contract_key(+)
|
||
AND f.bes_bestelopdr_key = bo.bes_bestelopdr_key(+)
|
||
AND bo.prs_bedrijf_key = b_b.prs_bedrijf_key(+)
|
||
AND o.mld_uitvoerende_keys = b_o.prs_bedrijf_key(+)
|
||
AND c.cnt_prs_bedrijf_key = b_c.prs_bedrijf_key(+)
|
||
AND (v.fin_factuur_retour_lev = 1 OR v.fin_factuur_retour_mar = 1);
|
||
|
||
|
||
--=============================================================================
|
||
-- EXPORTFUNCTIES PROJECTUREN
|
||
--=============================================================================
|
||
-- Basisgegevens van door te belasten opdrachturen
|
||
-- (uurtarief van opdracht, anders van persoon)
|
||
-- Keys: 7 (Project) uren (opdrachttype)
|
||
-- 14 Type project (eigen tabel)
|
||
-- 15 Rekening courant (eigen tabel)
|
||
-- 55 Projectnaam (kenmerksoort)
|
||
-- 186 Type project (flex opdracht)
|
||
-- 187 Verrekenen met (flex opdracht)
|
||
-- 188 Uurtarief (flex opdracht)
|
||
-- 189 ProjectKPN uit AD (flex opdracht)
|
||
-- 2 ProjectKPN uit AD (flex perslid)
|
||
-- 3 AAFM Personeelsnummber (flex perslid)
|
||
-- 6 Uurtarief intern (flex perslid)
|
||
CREATE OR REPLACE VIEW aaxx_v_exact_uren_gegevens
|
||
AS
|
||
SELECT m.mld_melding_key,
|
||
o.mld_opdr_key,
|
||
o.mld_opdr_bedrijfopdr_volgnr,
|
||
vt.ins_srtdiscipline_prefix,
|
||
vt.ins_srtdiscipline_prefix || m.mld_melding_key meldingnr,
|
||
vt.ins_srtdiscipline_prefix || m.mld_melding_key || '/'
|
||
|| o.mld_opdr_bedrijfopdr_volgnr opdrachtnr,
|
||
pn.mld_kenmerkmelding_waarde projectnaam,
|
||
tp.fac_usrdata_code projecttype_code,
|
||
tp.fac_usrdata_omschr projecttype_omschr,
|
||
DECODE (aaxx_get_user,
|
||
'SABIC', DECODE (
|
||
(SELECT l.alg_locatie_key
|
||
FROM alg_locatie l
|
||
WHERE l.alg_locatie_key = m.mld_alg_locatie_key
|
||
AND m.mld_melding_key = o.mld_melding_key),
|
||
101, -- Bergen op Zoom BOZ
|
||
'00601000',
|
||
102, -- Raamsdonksveer RDV
|
||
'00601000',
|
||
121, -- Genk AASA#66258
|
||
'00602000',
|
||
'00600000'),
|
||
kpn.prs_kostenplaats_nr)
|
||
prs_kostenplaats_nr,
|
||
kpo.mld_kenmerkopdr_waarde projectkpn_opdr,
|
||
kpp.prs_kenmerklink_waarde projectkpn_perslid,
|
||
rc.fac_usrdata_code rek_courant,
|
||
o.mld_statusopdr_key,
|
||
so.mld_statusopdr_omschrijving,
|
||
ap.prs_perslid_key,
|
||
DECODE (aaxx_get_user,
|
||
'IT', prs_perslid_nr,
|
||
pnp.prs_kenmerklink_waarde)
|
||
aafm_perslid_nr,
|
||
akpn.prs_kostenplaats_nr afdkpn,
|
||
o.mld_opdr_uren,
|
||
ou.mld_opdr_uren_key,
|
||
ou.mld_opdr_uren_datum,
|
||
ou.mld_opdr_uren_status,
|
||
lx.fac_locale_xsl_tekst uren_status_tekst,
|
||
ou.mld_opdr_uren_besteed,
|
||
ou.mld_opdr_uren_opmerking,
|
||
fac.safe_To_Number(ut.mld_kenmerkopdr_waarde) uurtarief_opdr,
|
||
DECODE (UPPER(tp.fac_usrdata_omschr), 'INTERN INTERIM MANAGEMENT PROJECT DIRECT - DIRECT', fac.safe_to_number(uti.prs_kenmerklink_waarde),
|
||
ap.prs_perslid_uurloon) uurtarief_perslid
|
||
FROM mld_melding m,
|
||
mld_stdmelding sm,
|
||
mld_discipline vg,
|
||
ins_srtdiscipline vt,
|
||
prs_kostenplaats kpn,
|
||
mld_opdr o,
|
||
mld_statusopdr so,
|
||
prs_perslid ap,
|
||
prs_v_aanwezigafdeling aa,
|
||
prs_kostenplaats akpn,
|
||
mld_opdr_uren ou,
|
||
(SELECT * FROM mld_kenmerkmelding WHERE mld_kenmerk_key IN
|
||
(SELECT mld_kenmerk_key FROM mld_kenmerk
|
||
WHERE mld_srtkenmerk_key = 55
|
||
AND mld_kenmerk_verwijder IS NULL) ) pn, -- projectnaam
|
||
(SELECT * FROM mld_kenmerkopdr WHERE mld_kenmerk_key = 187) vm, -- verrekenen met
|
||
(SELECT * FROM fac_usrdata WHERE fac_usrtab_key = 15) rc, -- rekening courant
|
||
(SELECT * FROM mld_kenmerkopdr WHERE mld_kenmerk_key = 186) ep, -- type project
|
||
(SELECT * FROM fac_usrdata WHERE fac_usrtab_key = 14) tp, -- type project
|
||
(SELECT * FROM mld_kenmerkopdr WHERE mld_kenmerk_key = 189) kpo, -- projectkpn (opdr)
|
||
(SELECT * FROM prs_kenmerklink WHERE prs_kenmerk_key = 2) kpp, -- projectkpn (perslid)
|
||
(SELECT * FROM prs_kenmerklink WHERE prs_kenmerk_key = 6) uti, -- uurtarief intern (perslid)
|
||
(SELECT * FROM mld_kenmerkopdr WHERE mld_kenmerk_key = 188) ut, -- uurtarief (opdracht)
|
||
(SELECT * FROM fac_locale_xsl WHERE fac_locale_xsl_lang = 'NL') lx, -- locale-strings
|
||
(SELECT * FROM prs_kenmerklink WHERE prs_kenmerk_key = 3) pnp -- personeelsnummer (perslid)
|
||
WHERE o.mld_typeopdr_key = 7
|
||
AND m.mld_melding_key = o.mld_melding_key
|
||
AND sm.mld_stdmelding_key = m.mld_stdmelding_key
|
||
AND vg.ins_discipline_key = sm.mld_ins_discipline_key
|
||
AND vt.ins_srtdiscipline_key = vg.ins_srtdiscipline_key
|
||
AND pn.mld_melding_key(+) = m.mld_melding_key
|
||
AND so.mld_statusopdr_key = o.mld_statusopdr_key
|
||
AND kpn.prs_kostenplaats_key = o.prs_kostenplaats_key
|
||
AND vm.mld_opdr_key(+) = o.mld_opdr_key
|
||
AND rc.fac_usrdata_key(+) = fac.safe_To_Number(vm.mld_kenmerkopdr_waarde)
|
||
AND ep.mld_opdr_key(+) = o.mld_opdr_key
|
||
AND tp.fac_usrdata_key(+) = fac.safe_To_Number(ep.mld_kenmerkopdr_waarde)
|
||
AND kpo.mld_opdr_key(+) = o.mld_opdr_key
|
||
AND kpp.prs_link_key(+) = o.mld_uitvoerende_keys
|
||
AND uti.prs_link_key(+) = o.mld_uitvoerende_keys
|
||
AND pnp.prs_link_key(+) = o.mld_uitvoerende_keys
|
||
AND ut.mld_opdr_key(+) = o.mld_opdr_key
|
||
AND ap.prs_perslid_key = o.mld_uitvoerende_keys
|
||
AND aa.prs_afdeling_key = ap.prs_afdeling_key
|
||
AND akpn.prs_kostenplaats_key(+) = aa.prs_kostenplaats_key
|
||
AND ou.mld_opdr_key = o.mld_opdr_key
|
||
AND lx.fac_locale_xsl_label = 'lcl_mld_uren_status_'||ou.mld_opdr_uren_status;
|
||
|
||
-- Van fac_rapport naar exportbestand (XML)
|
||
CREATE OR REPLACE VIEW aaxx_v_export_exact_uren_xml (
|
||
result,
|
||
result_order
|
||
)
|
||
AS
|
||
SELECT fac_rapport_regel, fac_rapport_volgnr
|
||
FROM fac_rapport
|
||
WHERE fac_rapport_node = SUBSTR ('EXACT_UREN', 1, 12);
|
||
|
||
-- Exportregels (XML-structuur) in fac_rapport
|
||
CREATE OR REPLACE PROCEDURE aaxx_select_exact_uren_xml (
|
||
p_applname IN VARCHAR2,
|
||
p_applrun IN VARCHAR2,
|
||
p_kpnprefix IN VARCHAR2
|
||
)
|
||
AS
|
||
-- Status 3 = Goedgekeurd
|
||
CURSOR c
|
||
IS
|
||
SELECT *
|
||
FROM aaxx_v_exact_uren_gegevens
|
||
WHERE mld_opdr_uren_status = 3
|
||
AND prs_kostenplaats_nr LIKE p_kpnprefix||'%'
|
||
AND (aaxx_get_user <> 'IT' OR ins_srtdiscipline_prefix = 'PR')
|
||
ORDER BY mld_opdr_uren_datum, opdrachtnr;
|
||
|
||
v_order_count NUMBER;
|
||
v_amount_sum NUMBER(10,2);
|
||
v_count NUMBER;
|
||
v_bestand VARCHAR2(12);
|
||
BEGIN
|
||
|
||
v_order_count := 0;
|
||
v_amount_sum := 0;
|
||
v_count := 0;
|
||
v_bestand := SUBSTR(p_applname, 1, 12);
|
||
|
||
-- Eerst opruiming
|
||
DELETE FROM imp_log
|
||
WHERE imp_log_applicatie = p_applname;
|
||
|
||
DELETE fac_rapport
|
||
WHERE fac_rapport_node = v_bestand;
|
||
|
||
DELETE aaxx_exp_uren
|
||
WHERE COALESCE(administratie, 'GEEN') = COALESCE(p_kpnprefix, 'GEEN');
|
||
|
||
-- header
|
||
aaxx_add_xml_row (v_bestand, '<?xml version="1.0" encoding="windows-1252"?>');
|
||
aaxx_add_xml_row (v_bestand, '<eExact>');
|
||
aaxx_add_xml_row (v_bestand, '<GLEntries>');
|
||
|
||
FOR rec IN c
|
||
LOOP
|
||
BEGIN
|
||
aaxx_add_xml_row (v_bestand, '<GLEntry>');
|
||
aaxx_add_xml_row (v_bestand, '<Journal code="24" type="M"/>');
|
||
aaxx_add_xml_row (v_bestand, '<FinEntryLine>');
|
||
aaxx_add_xml_element (v_bestand, 'Date', TO_CHAR(rec.mld_opdr_uren_datum, 'yyyy-mm-dd') );
|
||
aaxx_add_xml_row (v_bestand, '<GLAccount code="' || rec.projecttype_code || '"/>');
|
||
aaxx_add_xml_element (v_bestand, 'Description', rec.projectnaam);
|
||
aaxx_add_xml_row (v_bestand, '<Costcenter code="' || rec.prs_kostenplaats_nr || '"/>');
|
||
aaxx_add_xml_row (v_bestand, '<Resource number="'|| rec.aafm_perslid_nr ||'"/>');
|
||
aaxx_add_xml_row (v_bestand, '<Project code="' || rec.meldingnr || '" type="I" status="A">');
|
||
aaxx_add_xml_element (v_bestand, 'Description', rec.projectnaam);
|
||
aaxx_add_xml_row (v_bestand, '</Project>');
|
||
aaxx_add_xml_element (v_bestand, 'Quantity', TO_CHAR(rec.mld_opdr_uren_besteed) );
|
||
aaxx_add_xml_row (v_bestand, '<Amount>');
|
||
aaxx_add_xml_row (v_bestand, '<Currency code="EUR"/>');
|
||
aaxx_add_xml_element (v_bestand, 'Debit', TO_CHAR(rec.mld_opdr_uren_besteed*COALESCE(rec.uurtarief_opdr, rec.uurtarief_perslid) ) );
|
||
aaxx_add_xml_element (v_bestand, 'Credit', '0');
|
||
aaxx_add_xml_row (v_bestand, '</Amount>');
|
||
aaxx_add_xml_row (v_bestand, '<FinReferences>');
|
||
aaxx_add_xml_element (v_bestand, 'DocumentDate', TO_CHAR(SYSDATE, 'YYYY-MM-DD') );
|
||
aaxx_add_xml_row (v_bestand, '</FinReferences>');
|
||
aaxx_add_xml_row (v_bestand, '</FinEntryLine>');
|
||
IF COALESCE(rec.uurtarief_opdr, rec.uurtarief_perslid) IS NULL
|
||
THEN
|
||
fac.writelog (p_applname, 'W', 'Geen uurtarief voor persoon nr ' || rec.aafm_perslid_nr, '');
|
||
END IF;
|
||
v_amount_sum := v_amount_sum + rec.mld_opdr_uren_besteed*COALESCE(rec.uurtarief_opdr, COALESCE(rec.uurtarief_perslid, 0));
|
||
aaxx_add_xml_row (v_bestand, '<FinEntryLine>');
|
||
aaxx_add_xml_row (v_bestand, '<GLAccount code="'||rec.rek_courant||'"/>');
|
||
aaxx_add_xml_element (v_bestand, 'Description', rec.projectnaam);
|
||
--aaxx_add_xml_row (v_bestand, '<Costcenter code="' || coalesce(rec.projectkpn_opdr, rec.projectkpn_perslid) || '"/>');
|
||
IF (SUBSTR (rec.rek_courant, 1, 1) = '2' OR aaxx_get_user = 'SABIC') -- Begint met '2'!
|
||
THEN
|
||
aaxx_add_xml_row (v_bestand, '<Costcenter code="' || rec.prs_kostenplaats_nr || '"/>');
|
||
ELSE
|
||
aaxx_add_xml_row (v_bestand, '<Costcenter code="' || coalesce(rec.projectkpn_opdr, rec.projectkpn_perslid) || '"/>');
|
||
END IF;
|
||
aaxx_add_xml_row (v_bestand, '<Resource number="'|| rec.aafm_perslid_nr ||'"/>');
|
||
aaxx_add_xml_row (v_bestand, '<Project code="' || rec.meldingnr || '" type="I" status="A">');
|
||
aaxx_add_xml_element (v_bestand, 'Description', rec.projectnaam);
|
||
aaxx_add_xml_row (v_bestand, '</Project>');
|
||
aaxx_add_xml_element (v_bestand, 'Quantity', '-'||TO_CHAR(rec.mld_opdr_uren_besteed) );
|
||
aaxx_add_xml_row (v_bestand, '<Amount>');
|
||
aaxx_add_xml_row (v_bestand, '<Currency code="EUR"/>');
|
||
aaxx_add_xml_element (v_bestand, 'Debit', '0');
|
||
aaxx_add_xml_element (v_bestand, 'Credit', TO_CHAR(rec.mld_opdr_uren_besteed*COALESCE(rec.uurtarief_opdr, rec.uurtarief_perslid)) );
|
||
aaxx_add_xml_row (v_bestand, '</Amount>');
|
||
aaxx_add_xml_row (v_bestand, '<FinReferences>');
|
||
aaxx_add_xml_element (v_bestand, 'DocumentDate', SYSDATE);
|
||
aaxx_add_xml_row (v_bestand, '</FinReferences>');
|
||
aaxx_add_xml_row (v_bestand, '</FinEntryLine>');
|
||
aaxx_add_xml_row (v_bestand, '</GLEntry>');
|
||
END;
|
||
|
||
INSERT INTO aaxx_exp_uren
|
||
(mld_opdr_uren_key, administratie)
|
||
VALUES
|
||
(rec.mld_opdr_uren_key, p_kpnprefix);
|
||
|
||
v_order_count := v_order_count + 1;
|
||
END LOOP;
|
||
|
||
aaxx_add_xml_row (v_bestand, '</GLEntries>');
|
||
aaxx_add_xml_row (v_bestand, '</eExact>');
|
||
fac.writelog (p_applname, 'S', 'Exact export uitgevoerd. Aantal regels: ' || v_order_count || ' Totaal bedrag: ' || v_amount_sum, '');
|
||
|
||
END;
|
||
/
|
||
|
||
-- AAIT#22483: kenmerken van urenopdrachten vullen vanuit personeelsgegevens,
|
||
-- t.b.v. DWH-views
|
||
CREATE OR REPLACE PROCEDURE aaxx_select_dwh_set_kenmerken (
|
||
p_applname IN VARCHAR2,
|
||
p_applrun IN VARCHAR2
|
||
)
|
||
AS
|
||
oracle_err_num NUMBER;
|
||
oracle_err_mes VARCHAR2 (200);
|
||
v_errormsg VARCHAR2 (200);
|
||
v_aanduiding VARCHAR2 (100);
|
||
|
||
CURSOR c_flex
|
||
IS
|
||
SELECT 'PR'||o.mld_melding_key||'/'||o.mld_opdr_bedrijfopdr_volgnr opdrachtnr,
|
||
o.mld_opdr_key,
|
||
kpo.mld_kenmerkopdr_waarde projectkpn_opdr,
|
||
kpp.prs_kenmerklink_waarde projectkpn_perslid,
|
||
ut.mld_kenmerkopdr_waarde uurtarief_opdr,
|
||
DECODE (UPPER(tp.fac_usrdata_omschr),
|
||
'INTERN INTERIM MANAGEMENT PROJECT DIRECT - DIRECT', fac.safe_to_number(uti.prs_kenmerklink_waarde),
|
||
ap.prs_perslid_uurloon) uurtarief_perslid
|
||
FROM mld_opdr o,
|
||
prs_v_aanwezigperslid ap,
|
||
(SELECT *
|
||
FROM mld_kenmerkopdr
|
||
WHERE mld_kenmerk_key = 189) kpo, -- projectkpn (opdr)
|
||
(SELECT *
|
||
FROM prs_kenmerklink
|
||
WHERE prs_kenmerk_key = 2) kpp, -- projectkpn (perslid)
|
||
(SELECT *
|
||
FROM mld_kenmerkopdr
|
||
WHERE mld_kenmerk_key = 188) ut, -- uurtarief (opdracht)
|
||
(SELECT mld_opdr_key, fac_usrdata_omschr
|
||
FROM fac_usrdata ud, mld_kenmerkopdr ko
|
||
WHERE ud.fac_usrtab_key = 14
|
||
AND ko.mld_kenmerk_key = 186
|
||
AND ud.fac_usrdata_key = fac.safe_To_Number(ko.mld_kenmerkopdr_waarde)
|
||
) tp, -- type project
|
||
(SELECT prs_link_key prs_perslid_key, prs_kenmerklink_waarde
|
||
FROM prs_kenmerklink
|
||
WHERE prs_kenmerk_key = 6) uti -- uurtarief intern (perslid)
|
||
WHERE o.mld_typeopdr_key = 7 -- (Project) uren
|
||
AND kpo.mld_opdr_key(+) = o.mld_opdr_key
|
||
AND ut.mld_opdr_key(+) = o.mld_opdr_key
|
||
AND tp.mld_opdr_key(+) = o.mld_opdr_key
|
||
AND kpp.prs_link_key = o.mld_uitvoerende_keys
|
||
AND ap.prs_perslid_key = o.mld_uitvoerende_keys
|
||
AND ap.prs_perslid_key = uti.prs_perslid_key(+);
|
||
|
||
BEGIN
|
||
-- Project-KPN en uurtarief vastleggen
|
||
FOR rec IN c_flex
|
||
LOOP
|
||
BEGIN
|
||
v_aanduiding := rec.opdrachtnr;
|
||
|
||
IF (rec.projectkpn_opdr IS NULL)
|
||
THEN
|
||
IF (rec.projectkpn_perslid IS NULL)
|
||
THEN
|
||
fac.writelog (p_applname,
|
||
'W',
|
||
v_aanduiding||': Geen project-KPN bekend!',
|
||
'');
|
||
ELSE
|
||
aaxx_set_kenmerk('MLD', 189, rec.mld_opdr_key, rec.projectkpn_perslid, 0);
|
||
END IF;
|
||
END IF;
|
||
|
||
IF (rec.uurtarief_opdr IS NULL)
|
||
THEN
|
||
IF(rec.uurtarief_perslid IS NULL)
|
||
THEN
|
||
fac.writelog (p_applname,
|
||
'W',
|
||
v_aanduiding||': Geen uurtarief bekend!',
|
||
'');
|
||
ELSE
|
||
aaxx_set_kenmerk('MLD', 188, rec.mld_opdr_key, rec.uurtarief_perslid, 0);
|
||
END IF;
|
||
END IF;
|
||
|
||
EXCEPTION
|
||
WHEN OTHERS
|
||
THEN
|
||
oracle_err_num := SQLCODE;
|
||
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
|
||
v_errormsg := 'OTHERS (error '||oracle_err_num||'/'||oracle_err_mes||')';
|
||
fac.writelog (p_applname,
|
||
'E',
|
||
v_aanduiding || ': ' || v_errormsg,
|
||
'');
|
||
END;
|
||
END LOOP;
|
||
END aaxx_select_dwh_set_kenmerken;
|
||
/
|
||
|
||
-- Ge<47>xporteerde uren op Verwerkt zetten en uurtarief + kostenplaats vastleggen bij
|
||
-- opdracht (kopi<70>ren van perslid).
|
||
-- AAIT#26399: Naast het op Verwerkt zetten van de kostenboekingen tevens voor
|
||
-- AAIT#35694: ALLEEN de uren op '5130976', '5101200', '4130976', '4370901', '4370904', '0100024' en '4130990') de tegenboeking aanmaken/opslaan!
|
||
---- Onder INLO#75512 is dit aangevuld met 5130996 (keuzeoptie 'implementatie')
|
||
---- Let op: Als er voor een nieuw project-rekeningnr een dekking/tegenboeking aangemaakt moet worden in aaxx_exp_uren_dekking dan moet
|
||
---- dit bij de maandelijkse verwerking in AAIT aangevuld worden op de zogenaamde coveringcode (zie aait_select_uren_dekking_xml)
|
||
|
||
CREATE OR REPLACE PROCEDURE aaxx_export_verwerk_exact_uren (
|
||
p_applname IN VARCHAR2,
|
||
p_applrun IN VARCHAR2,
|
||
p_filedir IN VARCHAR2,
|
||
p_filename IN VARCHAR2,
|
||
p_kpnprefix IN VARCHAR2
|
||
)
|
||
AS
|
||
oracle_err_num NUMBER;
|
||
oracle_err_mes VARCHAR2 (200);
|
||
v_errormsg VARCHAR2 (200);
|
||
v_count NUMBER;
|
||
v_logdate DATE;
|
||
BEGIN
|
||
v_logdate := SYSDATE;
|
||
|
||
-- Goedgekeurde en ge<67>xporteerde urenregistraties op verwerkt zetten.
|
||
-- Status 4 = Verwerkt
|
||
UPDATE mld_opdr_uren
|
||
SET mld_opdr_uren_status = 4
|
||
WHERE mld_opdr_uren_key IN
|
||
(SELECT mld_opdr_uren_key
|
||
FROM aaxx_exp_uren
|
||
WHERE COALESCE (administratie, 'GEEN') =
|
||
COALESCE (p_kpnprefix, 'GEEN'));
|
||
|
||
-- Goedgekeurde improductieve uren op verwerkt zetten.
|
||
-- Status 3 = Goedgekeurd
|
||
-- Status 4 = Verwerkt
|
||
UPDATE mld_opdr_uren
|
||
SET mld_opdr_uren_status = 4
|
||
WHERE mld_impropdr_key IS NOT NULL AND mld_opdr_uren_status = 3;
|
||
|
||
COMMIT;
|
||
|
||
-- AAIT#26399: Van de hierboven verwerkte/geexporteerde uren wordt voor de
|
||
-- regels op gedefinieerde projecten (hardgecodeerd!) tot slot
|
||
-- nog een dekkingsregel aangemaakt.
|
||
-- Het leverende account wordt bepaald door het gedeelte achter
|
||
-- de slash ('/') in de 'Rek. Courant'-eigen tabel!
|
||
INSERT INTO aaxx_exp_uren_dekking (aanmaak,
|
||
mld_opdr_uren_key,
|
||
mld_opdr_uren_datum,
|
||
projecttype,
|
||
rek_courant,
|
||
kostenplaats,
|
||
perslid_nr,
|
||
projectcode,
|
||
projectnaam,
|
||
uren_besteed,
|
||
uurtarief,
|
||
lev_account)
|
||
SELECT SYSDATE,
|
||
ug.mld_opdr_uren_key,
|
||
ug.mld_opdr_uren_datum,
|
||
SUBSTR (ug.projecttype_code, 1, 10),
|
||
SUBSTR (ug.rek_courant, 1, 10),
|
||
SUBSTR (COALESCE (ug.projectkpn_opdr, ug.projectkpn_perslid), 1 , 30),
|
||
SUBSTR (ug.aafm_perslid_nr, 1, 30),
|
||
SUBSTR (ug.meldingnr, 1, 20),
|
||
SUBSTR (ug.projectnaam, 1, 30),
|
||
ug.mld_opdr_uren_besteed,
|
||
COALESCE (ug.uurtarief_opdr, ug.uurtarief_perslid),
|
||
COALESCE (
|
||
SUBSTR (
|
||
TRIM(SUBSTR (ud.fac_usrdata_omschr,
|
||
INSTR (ud.fac_usrdata_omschr, '/') + 1)),
|
||
1,
|
||
30
|
||
),
|
||
'XXX'
|
||
)
|
||
FROM aaxx_exp_uren u, aaxx_v_exact_uren_gegevens ug, fac_usrdata ud
|
||
WHERE COALESCE (u.administratie, 'GEEN') =
|
||
COALESCE (p_kpnprefix, 'GEEN')
|
||
AND u.mld_opdr_uren_key = ug.mld_opdr_uren_key
|
||
AND ug.projecttype_code IN ('5130976', '5101200', '4130976', '4370901', '4370904', '0100024', '4130990', '5130996')
|
||
AND TRIM (ug.rek_courant) = TRIM (ud.fac_usrdata_code)
|
||
AND ud.fac_usrtab_key = 15 -- Rek. Courant-tabel
|
||
AND SUBSTR (ud.fac_usrdata_code, 1, 1) = '2' -- Begint met '2'!
|
||
AND ud.fac_usrdata_verwijder IS NULL
|
||
AND NOT EXISTS
|
||
(SELECT 1
|
||
FROM aaxx_exp_uren_dekking
|
||
WHERE mld_opdr_uren_key = ug.mld_opdr_uren_key);
|
||
|
||
COMMIT;
|
||
EXCEPTION
|
||
WHEN OTHERS
|
||
THEN
|
||
oracle_err_num := SQLCODE;
|
||
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
|
||
v_errormsg :=
|
||
'OTHERS (error ' || oracle_err_num || '/' || oracle_err_mes || ')';
|
||
fac.writelog ('UREN',
|
||
'E',
|
||
v_errormsg,
|
||
'');
|
||
END;
|
||
/
|
||
|
||
--=============================================================================
|
||
-- EXPORTFUNCTIES BUNDEL_CATERING
|
||
-------------------------------------------------------------------------------
|
||
CREATE OR REPLACE VIEW aaxx_v_export_bundel_catering (
|
||
result,
|
||
result_order
|
||
)
|
||
AS
|
||
SELECT REPLACE(REPLACE('RES'
|
||
|| ';'
|
||
|| SYSDATE
|
||
|| ';'
|
||
|| SUBSTR (prs_kostenplaats_nr, 1, 30)
|
||
|| ';'
|
||
|| SUBSTR (prs_kostenplaats_omschrijving, 1, 60)
|
||
|| ';'
|
||
|| SUBSTR (prs_kostensoort_oms, 1, 60)
|
||
|| ';'
|
||
|| rra.res_rsv_artikel_aantal || ' * ' || ra.res_artikel_omschrijving
|
||
|| ';'
|
||
|| to_char(rra.res_rsv_artikel_prijs)
|
||
|| ';'
|
||
|| to_char(ra.res_artikel_inkoopprijs)
|
||
|| ';'
|
||
|| rra.res_rsv_artikel_key
|
||
,CHR (13), ''), CHR (10), '<ret>'), res_rsv_artikel_key
|
||
FROM res_rsv_ruimte rrr,
|
||
res_rsv_artikel rra,
|
||
res_artikel ra,
|
||
ins_tab_discipline d,
|
||
prs_kostensoort ks,
|
||
prs_kostenplaats k
|
||
WHERE rrr.res_rsv_ruimte_key = rra.res_rsv_ruimte_key
|
||
AND rra.res_rsv_artikel_verwijder IS NULL
|
||
AND rra.res_status_bo_key = 5
|
||
AND rra.res_artikel_key = ra.res_artikel_key
|
||
AND ra.res_discipline_key = d.ins_discipline_key
|
||
AND d.prs_kostensoort_key = ks.prs_kostensoort_key(+)
|
||
AND rrr.prs_kostenplaats_key = k.prs_kostenplaats_key
|
||
AND NVL (rra.res_rsv_artikel_levering,
|
||
TO_DATE ('20070101', 'yyyymmdd')
|
||
) <
|
||
TO_DATE ( TO_CHAR (SYSDATE, 'yyyy')
|
||
|| TO_CHAR (SYSDATE, 'mm')
|
||
|| '01',
|
||
'yyyymmdd'
|
||
);
|
||
|
||
-- Procedure om alle geexporteerde facturen naar status verwerkt te zetten.
|
||
CREATE OR REPLACE PROCEDURE aaxx_export_bundel_catering (
|
||
p_applname IN VARCHAR2,
|
||
p_applrun IN VARCHAR2,
|
||
p_filedir IN VARCHAR2,
|
||
p_filename IN VARCHAR2
|
||
)
|
||
AS
|
||
c_catmld_uitvoertijd mld_stdmelding.mld_stdmelding_t_uitvoertijd%TYPE := MLD_T_UITVOERTIJD(2, 'D');
|
||
v_errormsg VARCHAR (200);
|
||
oracle_err_num NUMBER;
|
||
oracle_err_mes VARCHAR2 (200);
|
||
v_laatste_export DATE;
|
||
v_mld_melding_key NUMBER;
|
||
v_prs_bedrijf_key NUMBER;
|
||
v_prs_kostenplaats_key NUMBER;
|
||
v_mld_opdr_bedrijfopdr_volgnr NUMBER;
|
||
v_aanvrager NUMBER;
|
||
v_mld_workorder_key NUMBER;
|
||
BEGIN
|
||
|
||
-- Volgens mij (AEG) wordt deze niet meer gebruikt.
|
||
-- JM: Klopt. In geval BUNDEL_CATERING wordt dit opgezet in de CUST (zie AASA en INLO bijv.)
|
||
|
||
|
||
COMMIT;
|
||
END;
|
||
/
|
||
|
||
--=============================================================================
|
||
-- EXPORTFUNCTIES BUDGET TRACKER
|
||
-------------------------------------------------------------------------------
|
||
CREATE OR REPLACE VIEW aaxx_v_export_budget_tracker (result, result_order)
|
||
AS
|
||
SELECT '"nummer";' ||
|
||
'"datum";' ||
|
||
'"status";' ||
|
||
'"laatste_actie";' ||
|
||
'"vakgroeptype";' ||
|
||
'"vakgroep";' ||
|
||
'"kostensoort_code";' ||
|
||
'"kostensoort_omschrijving";' ||
|
||
'"financiele_waarde";' ||
|
||
'"kostensoortgroep_omschrijving";' ||
|
||
'"melding";' ||
|
||
'"omschrijving";' ||
|
||
'"organisatie";' ||
|
||
'"naam";' ||
|
||
'"kostenplaats";' ||
|
||
'"kostenplaats_omschrijving";' ||
|
||
'"plaats";' ||
|
||
'"locatie";' ||
|
||
'"gebouw";' ||
|
||
'"code_exact";' ||
|
||
'"opdracht_status";' ||
|
||
'"uitvoerende";' ||
|
||
'"contactpersoon";' ||
|
||
'"uren";' ||
|
||
'"uurloon";' ||
|
||
'"materiaal";' ||
|
||
'"kosten";' ||
|
||
'"gefactureerd"', 0
|
||
FROM dual
|
||
UNION ALL
|
||
SELECT REPLACE(REPLACE( '"'
|
||
|| nummer
|
||
|| '";"'
|
||
|| datum
|
||
|| '";"'
|
||
|| status
|
||
|| '";"'
|
||
|| laatste_actie
|
||
|| '";"'
|
||
|| vakgroeptype
|
||
|| '";"'
|
||
|| vakgroep
|
||
|| '";"'
|
||
|| kostensoort_code
|
||
|| '";"'
|
||
|| kostensoort_omschrijving
|
||
|| '";"'
|
||
|| financiele_waarde
|
||
|| '";"'
|
||
|| kostensoortgroep_omschrijving
|
||
|| '";"'
|
||
|| melding
|
||
|| '";"'
|
||
|| aaxx_exp_escape (omschrijving)
|
||
|| '";"'
|
||
|| organisatie
|
||
|| '";"'
|
||
|| naam
|
||
|| '";"'
|
||
|| kostenplaats
|
||
|| '";"'
|
||
|| kostenplaats_omschrijving
|
||
|| '";"'
|
||
|| plaats
|
||
|| '";"'
|
||
|| locatie
|
||
|| '";"'
|
||
|| gebouw
|
||
|| '";"'
|
||
|| code_exact
|
||
|| '";"'
|
||
|| opdracht_status
|
||
|| '";"'
|
||
|| uitvoerende
|
||
|| '";"'
|
||
|| contactpersoon
|
||
|| '";"'
|
||
|| uren
|
||
|| '";"'
|
||
|| uurloon
|
||
|| '";"'
|
||
|| materiaal
|
||
|| '";"'
|
||
|| kosten
|
||
|| '";"'
|
||
|| gefactureerd
|
||
|| '"',CHR (13), ''), CHR (10), '<ret>'),
|
||
1
|
||
FROM (SELECT m.mld_melding_key || '/' || mld_opdr_bedrijfopdr_volgnr nummer,
|
||
TO_CHAR (o.mld_opdr_datumbegin, 'DD-MM-YYYY HH24:MI') datum,
|
||
(SELECT mld_statusopdr_omschrijving
|
||
FROM mld_statusopdr s
|
||
WHERE o.mld_statusopdr_key = s.mld_statusopdr_key)
|
||
status,
|
||
TO_CHAR (mld.getopdrachtstatusdate (o.mld_opdr_key, mld_statusopdr_key)
|
||
, 'DD-MM-YYYY HH24:MI'
|
||
)
|
||
laatste_actie,
|
||
sd.ins_srtdiscipline_prefix vakgroeptype,
|
||
md.ins_discipline_omschrijving vakgroep,
|
||
COALESCE (kstd.prs_kostensoort_oms, kvg.prs_kostensoort_oms)
|
||
kostensoort_code,
|
||
COALESCE (kstd.prs_kostensoort_opmerking,
|
||
kvg.prs_kostensoort_opmerking
|
||
)
|
||
kostensoort_omschrijving,
|
||
COALESCE (kstd.prs_kostensoort_refcode,
|
||
kvg.prs_kostensoort_refcode
|
||
)
|
||
financiele_waarde,
|
||
(SELECT prs_kostensoortgrp_oms FROM prs_kostensoortgrp ksg
|
||
WHERE ksg.prs_kostensoortgrp_key = COALESCE (kstd.prs_kostensoortgrp_key, kvg.prs_kostensoortgrp_key)) kostensoortgroep_omschrijving,
|
||
std.mld_stdmelding_omschrijving melding,
|
||
TO_CHAR(SUBSTR (REPLACE (mld_melding_omschrijving,
|
||
CHR (13) || CHR (10),
|
||
'<ret>'
|
||
),
|
||
1,
|
||
2000)
|
||
)
|
||
omschrijving,
|
||
(SELECT d.prs_afdeling_naam
|
||
FROM prs_v_afdeling d
|
||
WHERE p.prs_afdeling_key = d.prs_afdeling_key)
|
||
organisatie,
|
||
p.prs_perslid_naam
|
||
|| DECODE (NVL (p.prs_perslid_voorletters, ''),
|
||
'', '',
|
||
', ' || p.prs_perslid_voorletters)
|
||
|| DECODE (NVL (p.prs_perslid_tussenvoegsel, ''),
|
||
'', '',
|
||
' ' || p.prs_perslid_tussenvoegsel)
|
||
|| DECODE (NVL (p.prs_perslid_voornaam, ''),
|
||
'', '',
|
||
' (' || p.prs_perslid_voornaam || ')')
|
||
naam,
|
||
(SELECT k.prs_kostenplaats_nr
|
||
FROM prs_kostenplaats k
|
||
WHERE k.prs_kostenplaats_key = o.prs_kostenplaats_key)
|
||
kostenplaats,
|
||
(SELECT k.prs_kostenplaats_omschrijving
|
||
FROM prs_kostenplaats k
|
||
WHERE k.prs_kostenplaats_key = o.prs_kostenplaats_key)
|
||
kostenplaats_omschrijving,
|
||
(SELECT alg_locatie_code
|
||
FROM alg_locatie l
|
||
WHERE m.mld_alg_locatie_key = l.alg_locatie_key)
|
||
|| (SELECT CASE COALESCE(G.alg_gebouw_code, '')
|
||
WHEN '' THEN '' ELSE '-' || G.alg_gebouw_code
|
||
END
|
||
|| CASE COALESCE(G.alg_verdieping_code, '')
|
||
WHEN '' THEN '' ELSE '-' || G.alg_verdieping_code
|
||
END
|
||
|| CASE COALESCE(G.alg_ruimte_nr, '')
|
||
WHEN '' THEN '' ELSE '-' || G.alg_ruimte_nr
|
||
END
|
||
FROM alg_v_allonrgoed_gegevens g
|
||
WHERE m.mld_alg_onroerendgoed_keys = g.alg_onroerendgoed_keys) plaats,
|
||
alg_locatie_code locatie,
|
||
alg_gebouw_code gebouw,
|
||
COALESCE ((SELECT exact_code
|
||
FROM aaxx_v_exact_code_gebouw ogk
|
||
WHERE ogk.alg_gebouw_key = v.alg_gebouw_key)
|
||
, v.alg_gebouw_code)
|
||
code_exact,
|
||
(SELECT mld_statusopdr_omschrijving
|
||
FROM mld_statusopdr so
|
||
WHERE o.mld_statusopdr_key = so.mld_statusopdr_key)
|
||
opdracht_status,
|
||
COALESCE ( (SELECT prs_bedrijf_naam
|
||
FROM prs_bedrijf b
|
||
WHERE o.mld_uitvoerende_keys = prs_bedrijf_key),
|
||
(SELECT prs_perslid_naam_full
|
||
FROM prs_v_perslid_fullnames_all
|
||
WHERE o.mld_uitvoerende_keys = prs_perslid_key)
|
||
)
|
||
uitvoerende,
|
||
(SELECT prs_perslid_naam_full
|
||
FROM prs_v_perslid_fullnames_all pf
|
||
WHERE o.prs_perslid_key = pf.prs_perslid_key)
|
||
contactpersoon,
|
||
replace(to_char (o.mld_opdr_uren, '999999990.99'), '.', ',') uren,
|
||
replace(to_char (o.mld_opdr_uurloon, '999999990.99'), '.', ',') uurloon,
|
||
replace(to_char (o.mld_opdr_materiaal, '999999990.99'), '.', ',') materiaal,
|
||
replace(to_char (o.mld_opdr_kosten, '999999990.99'), '.', ',') kosten,
|
||
COALESCE ( (SELECT trim(to_char (SUM (f.fin_factuur_totaal), '999999990.99'))
|
||
FROM aaxx_v_aanwezigfactuur f
|
||
WHERE f.mld_opdr_key = o.mld_opdr_key), '0'
|
||
)
|
||
gefactureerd
|
||
FROM mld_melding m,
|
||
mld_discipline md,
|
||
ins_srtdiscipline sd,
|
||
alg_v_allonrgoed_gegevens v,
|
||
alg_locatie l,
|
||
alg_district di,
|
||
prs_perslid p,
|
||
mld_opdr o,
|
||
mld_stdmelding std,
|
||
prs_kostensoort kstd,
|
||
prs_kostensoort kvg
|
||
WHERE m.mld_alg_locatie_key = l.alg_locatie_key(+)
|
||
AND l.alg_district_key = di.alg_district_key(+)
|
||
AND md.ins_srtdiscipline_key = sd.ins_srtdiscipline_key(+)
|
||
AND m.mld_alg_onroerendgoed_keys = v.alg_onroerendgoed_keys(+)
|
||
AND m.prs_perslid_key = p.prs_perslid_key
|
||
AND m.mld_stdmelding_key = std.mld_stdmelding_key
|
||
AND std.mld_ins_discipline_key = md.ins_discipline_key
|
||
AND m.mld_melding_key = o.mld_melding_key
|
||
AND std.prs_kostensoort_key = kstd.prs_kostensoort_key(+)
|
||
AND md.prs_kostensoort_key = kvg.prs_kostensoort_key(+)
|
||
UNION ALL
|
||
SELECT cnt_contract_nummer_intern,
|
||
TO_CHAR (c.cnt_contract_looptijd_van, 'DD-MM-YYYY HH24:MI') datum,
|
||
DECODE (SIGN (cnt_contract_looptijd_van - SYSDATE),
|
||
1,
|
||
'Toekomst',
|
||
-1,
|
||
DECODE (SIGN (cnt_contract_looptijd_tot - SYSDATE),
|
||
1,
|
||
'Actueel',
|
||
-1,
|
||
'Verlopen'
|
||
)
|
||
)
|
||
status,
|
||
TO_CHAR (c.cnt_contract_looptijd_tot, 'DD-MM-YYYY HH24:MI')
|
||
laatste_actie,
|
||
'Contract' vakgroeptype,
|
||
d.ins_discipline_omschrijving vakgroep,
|
||
k.prs_kostensoort_oms kostensoort_code,
|
||
k.prs_kostensoort_opmerking kostensoort_omschrijving,
|
||
k.prs_kostensoort_refcode financiele_waarde,
|
||
(SELECT prs_kostensoortgrp_oms FROM prs_kostensoortgrp ksg
|
||
WHERE ksg.prs_kostensoortgrp_key = k.prs_kostensoortgrp_key) kostensoortgroep_omschrijving,
|
||
c.cnt_contract_omschrijving melding,
|
||
SUBSTR (REPLACE (cnt_contract_document, CHR (13) || CHR (10), '<ret>'),
|
||
1,
|
||
2000
|
||
)
|
||
omschrijving,
|
||
prs_afdeling_naam organisatie,
|
||
p.prs_perslid_naam
|
||
|| DECODE (NVL (p.prs_perslid_voorletters, ''),
|
||
'', '',
|
||
', ' || p.prs_perslid_voorletters)
|
||
|| DECODE (NVL (p.prs_perslid_tussenvoegsel, ''),
|
||
'', '',
|
||
' ' || p.prs_perslid_tussenvoegsel)
|
||
|| DECODE (NVL (p.prs_perslid_voornaam, ''),
|
||
'', '',
|
||
' (' || p.prs_perslid_voornaam || ')')
|
||
naam,
|
||
kp.prs_kostenplaats_nr kostenplaats,
|
||
kp.prs_kostenplaats_omschrijving kostenplaats_omschrijving,
|
||
alg_locatie_code || '-' || alg_gebouw_code plaats,
|
||
alg_locatie_code locatie,
|
||
alg_gebouw_code gebouw,
|
||
COALESCE ((SELECT exact_code
|
||
FROM aaxx_v_exact_code_gebouw ogk
|
||
WHERE ogk.alg_gebouw_key = g.alg_gebouw_key)
|
||
, g.alg_gebouw_code)
|
||
code_exact,
|
||
'-' opdracht_status,
|
||
prs_bedrijf_naam uitvoerende,
|
||
'-' contactpersoon,
|
||
'0' uren,
|
||
'0' uurloon,
|
||
'0' materiaal,
|
||
COALESCE ( trim(to_char (DECODE (cnt_gew.cnt_contract_plaats_gewicht,
|
||
0,
|
||
1,
|
||
(cp.cnt_contract_plaats_gewicht
|
||
/ cnt_gew.cnt_contract_plaats_gewicht)
|
||
* c.cnt_contract_kosten), '999999990.99'))
|
||
,
|
||
'0'
|
||
)
|
||
kosten,
|
||
COALESCE ( trim(to_char (DECODE (cnt_gew.cnt_contract_plaats_gewicht,
|
||
0,
|
||
1,
|
||
(cp.cnt_contract_plaats_gewicht
|
||
/ cnt_gew.cnt_contract_plaats_gewicht)
|
||
* (SELECT SUM(fin_factuur_totaal)
|
||
FROM aaxx_v_aanwezigfactuur f
|
||
WHERE f.cnt_contract_key = c.cnt_contract_key
|
||
)), '999999990.99'))
|
||
,
|
||
'0'
|
||
)
|
||
gefactureerd
|
||
FROM cnt_contract c,
|
||
cnt_discipline d,
|
||
cnt_contract_plaats cp,
|
||
prs_bedrijf b,
|
||
prs_kostensoort k,
|
||
prs_kostenplaats kp,
|
||
prs_afdeling a,
|
||
prs_perslid p,
|
||
alg_locatie l,
|
||
alg_gebouw g,
|
||
prs_contactpersoon cop,
|
||
(SELECT cnt_contract_key,
|
||
SUM (cnt_contract_plaats_gewicht) cnt_contract_plaats_gewicht
|
||
FROM cnt_contract_plaats
|
||
GROUP BY cnt_contract_key) cnt_gew,
|
||
(SELECT cp.cnt_contract_plaats_key, alg_locatie_key, alg_gebouw_key
|
||
FROM alg_v_allonroerendgoed aog, cnt_contract_plaats cp
|
||
WHERE aog.alg_type = cp.cnt_alg_plaats_code
|
||
AND aog.alg_onroerendgoed_keys = cp.cnt_alg_plaats_key) cog
|
||
WHERE c.cnt_contract_key = cp.cnt_contract_key(+)
|
||
AND c.cnt_contract_key = cnt_gew.cnt_contract_key(+)
|
||
AND c.cnt_prs_bedrijf_key = b.prs_bedrijf_key
|
||
AND c.ins_discipline_key = d.ins_discipline_key
|
||
AND d.prs_kostensoort_key = k.prs_kostensoort_key(+)
|
||
AND c.prs_kostenplaats_key = kp.prs_kostenplaats_key(+)
|
||
AND c.prs_afdeling_key_eig = a.prs_afdeling_key
|
||
AND c.prs_perslid_key_beh = p.prs_perslid_key
|
||
AND cp.cnt_contract_plaats_key = cog.cnt_contract_plaats_key(+)
|
||
AND c.prs_contactpersoon_key = cop.prs_contactpersoon_key(+)
|
||
AND cog.alg_locatie_key = l.alg_locatie_key(+)
|
||
AND cog.alg_gebouw_key = g.alg_gebouw_key(+)
|
||
AND cnt_contract_verwijder IS NULL
|
||
);
|
||
|
||
|
||
--=============================================================================
|
||
-- EXPORTFUNCTIES MJB
|
||
-------------------------------------------------------------------------------
|
||
CREATE OR REPLACE VIEW aaxx_v_mjb_assets
|
||
AS
|
||
SELECT ins_discipline_omschrijving,
|
||
ins_srtgroep_omschrijving,
|
||
ins_srtdeel_code,
|
||
sd.ins_srtdeel_omschrijving,
|
||
d.ins_deel_omschrijving,
|
||
d.ins_deel_opmerking,
|
||
l.alg_locatie_code,
|
||
d.alg_gebouw_upper,
|
||
d.alg_verdieping_code,
|
||
d.alg_ruimte_nr,
|
||
d.ins_deel_aantal,
|
||
aaxx_get_kenmerk (
|
||
'INS',
|
||
(SELECT ins_kenmerk_key
|
||
FROM ins_kenmerk k, ins_srtkenmerk sk
|
||
WHERE k.ins_srtkenmerk_key = sk.ins_srtkenmerk_key
|
||
AND sk.INS_SRTKENMERK_OMSCHRIJVING = 'Plaats'
|
||
AND k.INS_SRTINSTALLATIE_KEY = d.ins_discipline_key
|
||
AND k.ins_kenmerk_verwijder IS NULL
|
||
AND sk.ins_srtkenmerk_verwijder IS NULL),
|
||
d.ins_deel_key)
|
||
plaats,
|
||
aaxx_get_kenmerk (
|
||
'INS',
|
||
(SELECT ins_kenmerk_key
|
||
FROM ins_kenmerk k, ins_srtkenmerk sk
|
||
WHERE k.ins_srtkenmerk_key = sk.ins_srtkenmerk_key
|
||
AND sk.INS_SRTKENMERK_OMSCHRIJVING = 'Bouwjaar'
|
||
AND k.INS_SRTINSTALLATIE_KEY = d.ins_discipline_key
|
||
AND k.ins_kenmerk_verwijder IS NULL
|
||
AND sk.ins_srtkenmerk_verwijder IS NULL),
|
||
d.ins_deel_key)
|
||
bouwjaar,
|
||
aaxx_get_kenmerk (
|
||
'INS',
|
||
(SELECT ins_kenmerk_key
|
||
FROM ins_kenmerk k, ins_srtkenmerk sk
|
||
WHERE k.ins_srtkenmerk_key = sk.ins_srtkenmerk_key
|
||
AND sk.INS_SRTKENMERK_OMSCHRIJVING = 'Capaciteit'
|
||
AND k.INS_SRTINSTALLATIE_KEY = d.ins_discipline_key
|
||
AND k.ins_kenmerk_verwijder IS NULL
|
||
AND sk.ins_srtkenmerk_verwijder IS NULL),
|
||
d.ins_deel_key)
|
||
capaciteit,
|
||
aaxx_get_kenmerk (
|
||
'INS',
|
||
(SELECT ins_kenmerk_key
|
||
FROM ins_kenmerk k, ins_srtkenmerk sk
|
||
WHERE k.ins_srtkenmerk_key = sk.ins_srtkenmerk_key
|
||
AND sk.INS_SRTKENMERK_OMSCHRIJVING =
|
||
'Datum laatste asset survey'
|
||
AND k.INS_SRTINSTALLATIE_KEY = d.ins_discipline_key
|
||
AND k.ins_kenmerk_verwijder IS NULL
|
||
AND sk.ins_srtkenmerk_verwijder IS NULL),
|
||
d.ins_deel_key)
|
||
laatste_survey,
|
||
aaxx_get_kenmerk (
|
||
'INS',
|
||
(SELECT ins_kenmerk_key
|
||
FROM ins_kenmerk k, ins_srtkenmerk sk
|
||
WHERE k.ins_srtkenmerk_key = sk.ins_srtkenmerk_key
|
||
AND sk.INS_SRTKENMERK_OMSCHRIJVING = 'Fabricaat'
|
||
AND k.INS_SRTINSTALLATIE_KEY = d.ins_discipline_key
|
||
AND k.ins_kenmerk_verwijder IS NULL
|
||
AND sk.ins_srtkenmerk_verwijder IS NULL),
|
||
d.ins_deel_key)
|
||
fabricaat,
|
||
aaxx_get_kenmerk (
|
||
'INS',
|
||
(SELECT ins_kenmerk_key
|
||
FROM ins_kenmerk k, ins_srtkenmerk sk
|
||
WHERE k.ins_srtkenmerk_key = sk.ins_srtkenmerk_key
|
||
AND sk.INS_SRTKENMERK_OMSCHRIJVING = 'Gewenste Conditie'
|
||
AND k.INS_SRTINSTALLATIE_KEY = d.ins_discipline_key
|
||
AND k.ins_kenmerk_verwijder IS NULL
|
||
AND sk.ins_srtkenmerk_verwijder IS NULL),
|
||
d.ins_deel_key)
|
||
gewenste_conditie,
|
||
id.ins_deel_mjb_score1
|
||
huidige_conditie,
|
||
aaxx_get_kenmerk (
|
||
'INS',
|
||
(SELECT ins_kenmerk_key
|
||
FROM ins_kenmerk k, ins_srtkenmerk sk
|
||
WHERE k.ins_srtkenmerk_key = sk.ins_srtkenmerk_key
|
||
AND sk.INS_SRTKENMERK_OMSCHRIJVING = 'Kritische asset'
|
||
AND k.INS_SRTINSTALLATIE_KEY = d.ins_discipline_key
|
||
AND k.ins_kenmerk_verwijder IS NULL
|
||
AND sk.ins_srtkenmerk_verwijder IS NULL),
|
||
d.ins_deel_key)
|
||
kritische_asset,
|
||
aaxx_get_kenmerk (
|
||
'INS',
|
||
(SELECT ins_kenmerk_key
|
||
FROM ins_kenmerk k, ins_srtkenmerk sk
|
||
WHERE k.ins_srtkenmerk_key = sk.ins_srtkenmerk_key
|
||
AND sk.INS_SRTKENMERK_OMSCHRIJVING =
|
||
'Referentienummer leverancier'
|
||
AND k.INS_SRTINSTALLATIE_KEY = d.ins_discipline_key
|
||
AND k.ins_kenmerk_verwijder IS NULL
|
||
AND sk.ins_srtkenmerk_verwijder IS NULL),
|
||
d.ins_deel_key)
|
||
referentie_leverancier,
|
||
aaxx_get_kenmerk (
|
||
'INS',
|
||
(SELECT ins_kenmerk_key
|
||
FROM ins_kenmerk k, ins_srtkenmerk sk
|
||
WHERE k.ins_srtkenmerk_key = sk.ins_srtkenmerk_key
|
||
AND sk.INS_SRTKENMERK_OMSCHRIJVING = 'Type'
|
||
AND k.INS_SRTINSTALLATIE_KEY = d.ins_discipline_key
|
||
AND k.ins_kenmerk_verwijder IS NULL
|
||
AND sk.ins_srtkenmerk_verwijder IS NULL),
|
||
d.ins_deel_key)
|
||
type_asset,
|
||
aaxx_get_kenmerk (
|
||
'INS',
|
||
(SELECT ins_kenmerk_key
|
||
FROM ins_kenmerk k, ins_srtkenmerk sk
|
||
WHERE k.ins_srtkenmerk_key = sk.ins_srtkenmerk_key
|
||
AND sk.INS_SRTKENMERK_OMSCHRIJVING = 'Eenheid'
|
||
AND k.INS_SRTINSTALLATIE_KEY = d.ins_discipline_key
|
||
AND k.ins_kenmerk_verwijder IS NULL
|
||
AND sk.ins_srtkenmerk_verwijder IS NULL),
|
||
d.ins_deel_key)
|
||
eenheid,
|
||
COALESCE(g.alg_gebouw_vervaldatum, d.ins_deel_vervaldatum) vervaldatum,
|
||
g.alg_gebouw_vervaldatum vervaldatum_gebouw,
|
||
d.ins_deel_vervaldatum vervaldatum_object,
|
||
d.ins_deel_key
|
||
FROM ins_v_deel_gegevens d,
|
||
ins_srtdeel sd,
|
||
alg_locatie l,
|
||
alg_gebouw g,
|
||
ins_deel id
|
||
WHERE d.ins_srtdeel_key = sd.ins_srtdeel_key
|
||
AND d.alg_locatie_key = l.alg_locatie_key
|
||
AND d.alg_gebouw_key = g.alg_gebouw_key
|
||
AND d.ins_deel_key = id.ins_deel_key
|
||
AND id.ins_deel_verwijder IS NULL
|
||
AND UPPER(d.ins_discipline_omschrijving) = 'GEBOUWOBJECTEN';
|
||
|
||
-- Basislijst voor Assetmanagement - Start opstellen nieuwe begroting mjob + als checklist bij upload mjob-excel naar facilitor
|
||
CREATE OR REPLACE VIEW AAXX_V_MJB_TAKEN
|
||
(
|
||
INS_SRTCONTROLE_KEY,
|
||
INS_DEEL_KEY,
|
||
OBJECTIDENTIFICATIE,
|
||
OMSCHRIJVING,
|
||
CATEGORIE,
|
||
TAAKOMSCHRIJVING,
|
||
GROEP,
|
||
PRIORITEIT,
|
||
PERCENTAGE,
|
||
TAAKOPMERKING_X,
|
||
KOSTEN_MATERIAAL,
|
||
DIENST,
|
||
BEDRIJF,
|
||
PERIODE_EENHEID,
|
||
PERIODE_FREQUENCY,
|
||
CYCLUS_STARTDATUM,
|
||
TAAK_KERENGERUND,
|
||
STATUS_LAATST_GERUNDE_TAAK,
|
||
INS_DEELSRTCONTROLE_KEY,
|
||
PLANDATUM,
|
||
MJOB_DOORGESCHOVEN,
|
||
GEPLAND_OP,
|
||
GEPLAND_DOOR,
|
||
INBEHANDELING,
|
||
INBEHANDELING_DOOR,
|
||
BEHANDELAAR_OPTAAK,
|
||
GEREEDDATUM,
|
||
ACTIE_VEREIST,
|
||
TAAKAFHANDELING,
|
||
AFGEMELD,
|
||
AFGEMELD_DOOR,
|
||
VERWERKT,
|
||
VERWERKT_DOOR,
|
||
UITVOERDATUM_ORIGINEEL,
|
||
TELAAT,
|
||
FREEZE_JAAR,
|
||
KOSTEN_MATERIAAL_FREEZE,
|
||
OPMERKING,
|
||
FILTERDATUM_GEREED,
|
||
CYLCUS_VOLGENDE_DATUM,
|
||
CYCLUS_EINDDATUM,
|
||
EINDATUM_GEBOUW,
|
||
EINDDATUM_OBJECT,
|
||
EINDDATUM_OBJECTTAAK,
|
||
EINDDATUM_BASISTAAK,
|
||
FILTER_VERVALLEN,
|
||
LOCATIE,
|
||
GEBOUW,
|
||
MJOB
|
||
)
|
||
AS
|
||
SELECT x.ins_srtcontrole_key,
|
||
x.ins_deel_key,
|
||
d.ins_deel_omschrijving
|
||
objectidentificatie,
|
||
d.ins_deel_opmerking
|
||
omschrijving,
|
||
di.ins_discipline_omschrijving
|
||
categorie,
|
||
sc.ins_srtcontrole_omschrijving
|
||
taakomschrijving,
|
||
COALESCE (ins_srtcontroledl_xcp_groep, sc.ins_srtcontrole_groep)
|
||
groep,
|
||
sc.ins_srtcontrole_level
|
||
prioriteit,
|
||
COALESCE(ins_srtcontroledl_xcp_perc, sc.ins_srtcontrole_percentage)
|
||
percentage,
|
||
x.ins_srtcontroledl_xcp_opmerk
|
||
taakopmerking_X,
|
||
COALESCE (ins_srtcontroledl_xcp_materia, sc.ins_srtcontrole_materiaal)
|
||
kosten_materiaal,
|
||
prs_dienst_omschrijving
|
||
Dienst,
|
||
(SELECT LISTAGG (b.prs_bedrijf_naam, ',')
|
||
WITHIN GROUP (ORDER BY b.prs_bedrijf_naam)
|
||
AS bedrijf
|
||
FROM prs_bedrijf b, prs_bedrijfdienstlocatie bdl
|
||
WHERE pd.prs_dienst_key = bdl.prs_dienst_key
|
||
AND bdl.prs_bedrijf_key = b.prs_bedrijf_key
|
||
AND ( bdl.alg_gebouw_key = d.alg_gebouw_key
|
||
OR bdl.alg_locatie_key = d.alg_locatie_key))
|
||
Bedrijf,
|
||
DECODE (COALESCE (ins_srtcontroledl_xcp_eenheid, sc.ins_srtcontrole_eenheid),
|
||
4, 'J',
|
||
3, 'M',
|
||
2, 'W',
|
||
1, 'D')
|
||
periode_eenheid,
|
||
COALESCE(ins_srtcontroledl_xcp_periode, sc.ins_srtcontrole_periode)
|
||
periode_frequency,
|
||
ins_srtcontroledl_xcp_startdat
|
||
AS cyclus_startdatum,
|
||
(SELECT COUNT (dc.ins_deelsrtcontrole_key)
|
||
FROM ins_deelsrtcontrole dc
|
||
WHERE dc.ins_deel_key = d.ins_deel_key
|
||
AND dc.ins_srtcontrole_key = x.ins_srtcontrole_key)
|
||
taak_kerengerund,
|
||
v.status_laatst_gerunde_taak,
|
||
v.ins_deelsrtcontrole_key,
|
||
v.plandatum,
|
||
CASE WHEN v.mjob_doorgeschoven IS NOT NULL THEN TO_CHAR(v.ins_deelsrtcontrole_freezedate,'yyyy') ELSE NULL END mjob_doorgeschoven,
|
||
v.gepland_op,
|
||
v.gepland_door,
|
||
v.inbehandeling,
|
||
v.inbehandeling_door,
|
||
v.behandelaar_optaak,
|
||
v.gereeddatum,
|
||
v.actie_vereist,
|
||
v.taakafhandeling,
|
||
v.afgemeld,
|
||
v.afgemeld_door,
|
||
v.verwerkt,
|
||
v.verwerkt_door,
|
||
v.uitvoerdatum_origineel,
|
||
v.telaat,
|
||
v.jaar_freeze,
|
||
v.kosten_materiaal_freeze,
|
||
v.opmerking,
|
||
v.filterdatum_gereed,
|
||
CASE WHEN dip.ctr_disc_params_ismjob = 1 AND v.status_laatst_gerunde_taak = 'Voltooid' AND v.ins_controlemode_success = 0 THEN TO_DATE('01-01-' || v.freeze_year_facilitor, 'DD-MM-YYYY')
|
||
WHEN dip.ctr_disc_params_ismjob = 1 AND v.status_laatst_gerunde_taak = 'Ingepland' THEN
|
||
fac.nextcyclusdate (v.plandatum, -- datum
|
||
COALESCE (ins_srtcontroledl_xcp_eenheid, sc.ins_srtcontrole_eenheid), -- intervalmode = 1
|
||
COALESCE (ins_srtcontroledl_xcp_eenheid, sc.ins_srtcontrole_eenheid), -- eenheid jaar = 4
|
||
COALESCE(ins_srtcontroledl_xcp_periode, sc.ins_srtcontrole_periode), -- p_periode
|
||
COALESCE(ins_srtcontroledl_xcp_bits, sc.ins_srtcontrole_bits), -- x.ins_srtcontrole_bits,
|
||
1, -- step = 1
|
||
1) -- mjob = 1
|
||
WHEN dip.ctr_disc_params_ismjob = 1 AND v.status_laatst_gerunde_taak IN ('In behandeling', 'Ter uitvoering') THEN
|
||
fac.nextcyclusdate (v.ins_deelsrtcontrole_freezedate, -- datum
|
||
COALESCE (ins_srtcontroledl_xcp_eenheid, sc.ins_srtcontrole_eenheid), -- intervalmode = 1
|
||
COALESCE (ins_srtcontroledl_xcp_eenheid, sc.ins_srtcontrole_eenheid), -- eenheid jaar = 4
|
||
COALESCE(ins_srtcontroledl_xcp_periode, sc.ins_srtcontrole_periode), -- p_periode
|
||
COALESCE(ins_srtcontroledl_xcp_bits, sc.ins_srtcontrole_bits), -- x.ins_srtcontrole_bits,
|
||
1, -- step = 1
|
||
1) -- mjob = 1
|
||
ELSE fac.nextcyclusdatedeel (d.ins_deel_key, sc.ins_srtcontrole_key,1)
|
||
END
|
||
cylcus_volgende_datum,
|
||
COALESCE(g.alg_gebouw_vervaldatum, d.ins_deel_vervaldatum, x.ins_srtcontroledl_xcp_eind, sc.ins_srtcontrole_eind)
|
||
AS cyclus_einddatum,
|
||
g.alg_gebouw_vervaldatum,
|
||
d.ins_deel_vervaldatum,
|
||
x.ins_srtcontroledl_xcp_eind,
|
||
sc.ins_srtcontrole_eind,
|
||
CASE WHEN g.alg_gebouw_vervaldatum IS NULL AND d.ins_deel_vervaldatum IS NULL AND x.ins_srtcontroledl_xcp_eind IS NULL AND sc.ins_srtcontrole_eind IS NULL
|
||
THEN 'actueel'
|
||
WHEN COALESCE(g.alg_gebouw_vervaldatum, TO_DATE('31-12-3000', 'DD-MM-YYYY')) <= TRUNC(SYSDATE)
|
||
OR COALESCE(d.ins_deel_vervaldatum, TO_DATE('31-12-3000', 'DD-MM-YYYY')) <= TRUNC(SYSDATE)
|
||
OR COALESCE(x.ins_srtcontroledl_xcp_eind, sc.ins_srtcontrole_eind, TO_DATE('31-12-3000', 'DD-MM-YYYY')) <= TRUNC(SYSDATE)
|
||
THEN 'vervallen - verleden'
|
||
WHEN COALESCE(g.alg_gebouw_vervaldatum, TO_DATE('31-12-3000', 'DD-MM-YYYY')) > TRUNC(SYSDATE)
|
||
AND COALESCE(d.ins_deel_vervaldatum, TO_DATE('31-12-3000', 'DD-MM-YYYY')) > TRUNC(SYSDATE)
|
||
AND COALESCE(x.ins_srtcontroledl_xcp_eind, sc.ins_srtcontrole_eind, TO_DATE('31-12-3000', 'DD-MM-YYYY')) > TRUNC(SYSDATE)
|
||
THEN 'vervallen - toekomst'
|
||
ELSE 'nog bepalen'
|
||
END
|
||
filter_vervallen,
|
||
l.alg_locatie_omschrijving,
|
||
g.alg_gebouw_code||'-'||g.alg_gebouw_naam,
|
||
dip.ctr_disc_params_ismjob
|
||
FROM ins_srtcontrole sc,
|
||
ins_srtcontroledl_xcp x,
|
||
ins_v_deel_gegevens d,
|
||
alg_locatie l,
|
||
alg_gebouw g,
|
||
ins_tab_discipline di,
|
||
ctr_disc_params dip,
|
||
prs_dienst pd,
|
||
( SELECT dc.ins_deelsrtcontrole_key,
|
||
dc.ins_deel_key,
|
||
dc.ins_srtcontrole_key,
|
||
DECODE (dc.ins_deelsrtcontrole_status,
|
||
0, 'Ingepland',
|
||
2, 'In behandeling',
|
||
3, 'Ter uitvoering',
|
||
5, 'Afgemeld',
|
||
6, 'Voltooid')
|
||
status_laatst_gerunde_taak,
|
||
dc.ins_deelsrtcontrole_plandatum
|
||
plandatum,
|
||
'<geen tracking van..>'
|
||
gepland_op,
|
||
'<geen tracking van..>'
|
||
gepland_door,
|
||
(SELECT MAX (fac_tracking_datum)
|
||
FROM fac_tracking ft, fac_srtnotificatie sn
|
||
WHERE ft.fac_srtnotificatie_key =
|
||
sn.fac_srtnotificatie_key
|
||
AND sn.fac_srtnotificatie_code = 'INSCBE'
|
||
AND fac_tracking_refkey =
|
||
dc.ins_deelsrtcontrole_key)
|
||
inbehandeling,
|
||
(SELECT MAX (p.prs_perslid_voornaam
|
||
|| ' '
|
||
|| p.prs_perslid_naam)
|
||
FROM fac_srtnotificatie sn,
|
||
fac_tracking ft,
|
||
prs_perslid p
|
||
WHERE ft.prs_perslid_key = p.prs_perslid_key
|
||
AND ft.fac_srtnotificatie_key =
|
||
sn.fac_srtnotificatie_key
|
||
AND sn.fac_srtnotificatie_code = 'INSCBE'
|
||
AND ft.fac_tracking_refkey =
|
||
dc.ins_deelsrtcontrole_key)
|
||
inbehandeling_door,
|
||
(SELECT p.prs_perslid_voornaam
|
||
|| ' '
|
||
|| p.prs_perslid_naam
|
||
FROM prs_perslid p
|
||
WHERE prs_perslid_key = dc.prs_perslid_key)
|
||
behandelaar_optaak,
|
||
dc.ins_deelsrtcontrole_datum
|
||
gereeddatum,
|
||
CASE
|
||
WHEN dc.ins_deelsrtcontrole_status = 5 THEN 'Ja'
|
||
WHEN dc.ins_deelsrtcontrole_status = 6 THEN 'Nee'
|
||
ELSE ''
|
||
END
|
||
actie_vereist,
|
||
CASE
|
||
WHEN cm.ins_controlemode_success = 1
|
||
THEN
|
||
ins_controlemode_oms || ' - Succes'
|
||
WHEN cm.ins_controlemode_success = 0
|
||
THEN
|
||
ins_controlemode_oms || ' - Geen succes'
|
||
ELSE
|
||
NULL
|
||
END
|
||
taakafhandeling,
|
||
cm.ins_controlemode_success,
|
||
fac.getsetting('mjb_freeze_year')
|
||
freeze_year_facilitor,
|
||
(SELECT MAX (ft.fac_tracking_datum)
|
||
FROM fac_tracking ft, fac_srtnotificatie sn
|
||
WHERE ft.fac_srtnotificatie_key =
|
||
sn.fac_srtnotificatie_key
|
||
AND sn.fac_srtnotificatie_code = 'INSCAF'
|
||
AND ft.fac_tracking_refkey =
|
||
dc.ins_deelsrtcontrole_key)
|
||
afgemeld,
|
||
(SELECT MAX (p.prs_perslid_voornaam
|
||
|| ' '
|
||
|| p.prs_perslid_naam)
|
||
FROM fac_srtnotificatie sn,
|
||
fac_tracking ft,
|
||
prs_perslid p
|
||
WHERE ft.prs_perslid_key = p.prs_perslid_key
|
||
AND ft.fac_srtnotificatie_key =
|
||
sn.fac_srtnotificatie_key
|
||
AND sn.fac_srtnotificatie_code = 'INSCAF'
|
||
AND fac_tracking_refkey =
|
||
dc.ins_deelsrtcontrole_key)
|
||
afgemeld_door,
|
||
(SELECT MAX (ft.fac_tracking_datum)
|
||
FROM fac_tracking ft, fac_srtnotificatie sn
|
||
WHERE ft.fac_srtnotificatie_key =
|
||
sn.fac_srtnotificatie_key
|
||
AND sn.fac_srtnotificatie_code = 'INSCVE'
|
||
AND ft.fac_tracking_refkey =
|
||
dc.ins_deelsrtcontrole_key)
|
||
verwerkt,
|
||
(SELECT MAX (p.prs_perslid_voornaam
|
||
|| ' '
|
||
|| p.prs_perslid_naam)
|
||
FROM fac_srtnotificatie sn,
|
||
fac_tracking ft,
|
||
prs_perslid p
|
||
WHERE ft.prs_perslid_key = p.prs_perslid_key
|
||
AND ft.fac_srtnotificatie_key =
|
||
sn.fac_srtnotificatie_key
|
||
AND sn.fac_srtnotificatie_code = 'INSCVE'
|
||
AND fac_tracking_refkey =
|
||
dc.ins_deelsrtcontrole_key)
|
||
verwerkt_door,
|
||
dc.ins_deelsrtcontrole_datum_org
|
||
uitvoerdatum_origineel,
|
||
CASE
|
||
WHEN dc.ins_deelsrtcontrole_status in (5,6)
|
||
AND COALESCE(dc.ins_deelsrtcontrole_plandatum, dc.ins_deelsrtcontrole_datum_org) < dc.ins_deelsrtcontrole_datum THEN 'Ja'
|
||
WHEN dc.ins_deelsrtcontrole_status in (5,6)
|
||
AND COALESCE(dc.ins_deelsrtcontrole_plandatum, dc.ins_deelsrtcontrole_datum_org) >= dc.ins_deelsrtcontrole_datum THEN 'Nee'
|
||
ELSE ''
|
||
END telaat,
|
||
TO_CHAR(dc.ins_deelsrtcontrole_freezedate, 'yyyy')
|
||
jaar_freeze,
|
||
dc.ins_deelsrtcontrole_freezecost
|
||
kosten_materiaal_freeze,
|
||
dc.ins_deelsrtcontrole_opmerking
|
||
opmerking,
|
||
CASE
|
||
WHEN dc.ins_deelsrtcontrole_status = 5
|
||
THEN
|
||
(SELECT MAX (ft.fac_tracking_datum)
|
||
FROM fac_tracking ft, fac_srtnotificatie sn
|
||
WHERE ft.fac_srtnotificatie_key =
|
||
sn.fac_srtnotificatie_key
|
||
AND sn.fac_srtnotificatie_code = 'INSCAF'
|
||
AND ft.fac_tracking_refkey =
|
||
dc.ins_deelsrtcontrole_key)
|
||
WHEN dc.ins_deelsrtcontrole_status = 6
|
||
THEN
|
||
(SELECT MAX (ft.fac_tracking_datum)
|
||
FROM fac_tracking ft, fac_srtnotificatie sn
|
||
WHERE ft.fac_srtnotificatie_key =
|
||
sn.fac_srtnotificatie_key
|
||
AND sn.fac_srtnotificatie_code = 'INSCVE'
|
||
AND ft.fac_tracking_refkey =
|
||
dc.ins_deelsrtcontrole_key)
|
||
ELSE
|
||
NULL
|
||
END
|
||
filterdatum_gereed,
|
||
(SELECT max(ft.fac_tracking_datum)
|
||
FROM fac_tracking ft, fac_srtnotificatie sn
|
||
WHERE ft.fac_srtnotificatie_key =
|
||
sn.fac_srtnotificatie_key
|
||
AND sn.fac_srtnotificatie_code = 'INSCUP'
|
||
AND instr(lower(ft.fac_tracking_oms),'freeze datum:')>0
|
||
AND ft.fac_tracking_refkey =
|
||
dc.ins_deelsrtcontrole_key)
|
||
mjob_doorgeschoven,
|
||
dc.ins_deelsrtcontrole_freezedate
|
||
FROM ins_deelsrtcontrole dc, ins_controlemode cm
|
||
WHERE dc.ins_deelsrtcontrole_key =
|
||
(SELECT MAX (dc2.ins_deelsrtcontrole_key)
|
||
FROM ins_deelsrtcontrole dc2
|
||
WHERE dc2.ins_deel_key = dc.ins_deel_key
|
||
AND dc2.ins_srtcontrole_key =
|
||
dc.ins_srtcontrole_key)
|
||
AND dc.ins_controlemode_key = cm.ins_controlemode_key(+)
|
||
ORDER BY dc.ins_deel_key, dc.ins_srtcontrole_key) v
|
||
WHERE sc.ins_srtcontrole_key = x.ins_srtcontrole_key
|
||
AND x.ins_deel_key = d.ins_deel_key
|
||
AND sc.ctr_discipline_key = di.ins_discipline_key
|
||
AND di.ins_discipline_key = dip.ctr_ins_discipline_key
|
||
AND sc.prs_dienst_key = pd.prs_dienst_key(+)
|
||
AND UPPER (d.ins_discipline_omschrijving) = 'GEBOUWOBJECTEN'
|
||
AND x.ins_deel_key = v.ins_deel_key(+)
|
||
AND x.ins_srtcontrole_key = v.ins_srtcontrole_key(+)
|
||
AND d.alg_locatie_key = l.alg_locatie_key
|
||
AND d.alg_gebouw_key = g.alg_gebouw_key
|
||
AND sc.ins_srtcontrole_key IN (SELECT i.ins_srtcontrole_key FROM ins_v_defined_inspect i WHERE i.ins_deel_key = d.ins_deel_key)
|
||
ORDER BY d.ins_deel_omschrijving ;
|
||
|
||
-- AAGN#76391 - MJOB-taken en controle op de gekoppelde M-meldingen
|
||
CREATE OR REPLACE VIEW AAXX_V_MJB_TAKEN_MLD
|
||
(
|
||
INS_DEEL_KEY,
|
||
OBJECTIDENTIFICATIE,
|
||
OMSCHRIJVING,
|
||
CATEGORIE,
|
||
TAAKOMSCHRIJVING,
|
||
DIENST,
|
||
BEDRIJF,
|
||
FREEZE_JAAR,
|
||
STATUS_LAATST_GERUNDE_TAAK,
|
||
INS_DEELSRTCONTROLE_KEY,
|
||
KOSTEN_MATERIAAL_FREEZE,
|
||
LOCATIE,
|
||
GEBOUW,
|
||
MJOB,
|
||
MLD_MELDING_KEY,
|
||
MLD_MELDING_NR,
|
||
MLD_HOOFDMELDING_NR,
|
||
MELDING_SORT,
|
||
MLD_MELDING_BEHANDELAAR,
|
||
MLD_MELDING_STATUS,
|
||
MARKERING_STATUS
|
||
-- AANTAL OFFERTES + STATUS
|
||
-- AANTAL OPDRACHTEN + STATUS
|
||
-- KOSTEN OPDRACHTEN
|
||
)
|
||
AS
|
||
SELECT v.ins_deel_key,
|
||
v.objectidentificatie,
|
||
v.omschrijving,
|
||
v.categorie,
|
||
v.taakomschrijving,
|
||
v.dienst,
|
||
v.bedrijf,
|
||
v.freeze_jaar,
|
||
v.status_laatst_gerunde_taak,
|
||
v.ins_deelsrtcontrole_key,
|
||
v.kosten_materiaal_freeze,
|
||
v.locatie,
|
||
v.gebouw,
|
||
v.mjob,
|
||
m.mld_melding_key,
|
||
m.mld_melding_nr,
|
||
m.mld_hoofdmelding_nr,
|
||
m.melding_sort,
|
||
m.behandelaar,
|
||
m.status,
|
||
m.markering_status
|
||
FROM aaxx_v_mjb_taken v,
|
||
(SELECT mo.ins_deelsrtcontrole_key,
|
||
m.mld_melding_key,
|
||
v.mld_statuses_omschrijving
|
||
status,
|
||
sd.ins_srtdiscipline_prefix || TO_CHAR(m.mld_melding_key)
|
||
mld_melding_nr,
|
||
COALESCE (TO_CHAR(m.mld_melding_mldgroup_key), '-')
|
||
mld_hoofdmelding_nr,
|
||
COALESCE(m.mld_melding_mldgroup_key, m.mld_melding_key) melding_sort,
|
||
m.mld_melding_datum,
|
||
m.mld_melding_einddatum,
|
||
p.prs_perslid_naam_full
|
||
behandelaar,
|
||
(CASE WHEN m.mld_melding_flag>0 THEN Lcl.L('lcl_mld_flag' || m.mld_melding_flag)
|
||
ELSE ''
|
||
END) markering_status
|
||
FROM mld_melding m, mld_melding_object mo, alg_locatie l,mld_stdmelding sm, mld_discipline d, ins_srtdiscipline sd, mld_statuses v, prs_v_perslid_fullnames p
|
||
WHERE m.mld_melding_status = v.mld_statuses_key
|
||
AND m.mld_melding_key = mo.mld_melding_key
|
||
AND m.mld_alg_locatie_key = l.alg_locatie_key(+)
|
||
AND m.mld_stdmelding_key = sm.mld_stdmelding_key
|
||
AND sm.mld_ins_discipline_key = d.ins_discipline_key
|
||
AND d.ins_srtdiscipline_key = sd.ins_srtdiscipline_key
|
||
AND m.mld_melding_behandelaar_key = p.prs_perslid_key(+)
|
||
) m
|
||
WHERE v.mjob = 1
|
||
AND v.ins_deelsrtcontrole_key = m.ins_deelsrtcontrole_key
|
||
ORDER BY m.melding_sort DESC ;
|
||
|
||
CREATE OR REPLACE VIEW aaxx_v_mjb_gebreken
|
||
AS
|
||
SELECT d.ins_deel_omschrijving objectomschrijving,
|
||
sd.ins_srtdeel_omschrijving objectsoortomschrijving,
|
||
mld_melding_datum datum,
|
||
disc.ins_discipline_omschrijving vakgroep,
|
||
sm.mld_stdmelding_omschrijving stdmeldingomschrijving,
|
||
(SELECT DECODE(substr(ud.fac_usrdata_code,1,1), 'G', 1, 'S', 2, 'E', 3) FROM fac_usrdata ud WHERE fac_usrdata_key = FAC.safe_to_number(aaxx_get_NEN2767_kenmerkwaarde(m.mld_melding_key, 'ERNST'))) ernst,
|
||
(SELECT SUBSTR(ud.fac_usrdata_code,1,1) FROM fac_usrdata ud WHERE fac_usrdata_key = FAC.safe_to_number(aaxx_get_NEN2767_kenmerkwaarde(m.mld_melding_key, 'INTENSITEIT'))) intensiteit,
|
||
(SELECT SUBSTR(ud.fac_usrdata_volgnr,1,1) FROM fac_usrdata ud WHERE fac_usrdata_key = FAC.safe_to_number(aaxx_get_NEN2767_kenmerkwaarde(m.mld_melding_key, 'OMVANG'))) omvang,
|
||
(SELECT DECODE(ud.fac_usrdata_code,'NVT', NULL, 'Gering', 1, 'Matig', 2, 'Sterk', 3) FROM fac_usrdata ud WHERE fac_usrdata_key = FAC.safe_to_number(aaxx_get_NEN2767_kenmerkwaarde(m.mld_melding_key, 'ASPECT1'))) aspectwaardeVG,
|
||
(SELECT DECODE(ud.fac_usrdata_code,'NVT', NULL, 'Gering', 1, 'Matig', 2, 'Sterk', 3) FROM fac_usrdata ud WHERE fac_usrdata_key = FAC.safe_to_number(aaxx_get_NEN2767_kenmerkwaarde(m.mld_melding_key, 'ASPECT2'))) aspectwaardeCH,
|
||
(SELECT DECODE(ud.fac_usrdata_code,'NVT', NULL, 'Gering', 1, 'Matig', 2, 'Sterk', 3) FROM fac_usrdata ud WHERE fac_usrdata_key = FAC.safe_to_number(aaxx_get_NEN2767_kenmerkwaarde(m.mld_melding_key, 'ASPECT3'))) aspectwaardeGB,
|
||
(SELECT DECODE(ud.fac_usrdata_code,'NVT', NULL, 'Gering', 1, 'Matig', 2, 'Sterk', 3) FROM fac_usrdata ud WHERE fac_usrdata_key = FAC.safe_to_number(aaxx_get_NEN2767_kenmerkwaarde(m.mld_melding_key, 'ASPECT4'))) aspectwaardeTV,
|
||
(SELECT DECODE(ud.fac_usrdata_code,'NVT', NULL, 'Gering', 1, 'Matig', 2, 'Sterk', 3) FROM fac_usrdata ud WHERE fac_usrdata_key = FAC.safe_to_number(aaxx_get_NEN2767_kenmerkwaarde(m.mld_melding_key, 'ASPECT5'))) aspectwaardeTK,
|
||
(SELECT DECODE(ud.fac_usrdata_code,'NVT', NULL, 'Gering', 1, 'Matig', 2, 'Sterk', 3) FROM fac_usrdata ud WHERE fac_usrdata_key = FAC.safe_to_number(aaxx_get_NEN2767_kenmerkwaarde(m.mld_melding_key, 'ASPECT6'))) aspectwaardeBE,
|
||
(SELECT DECODE(ud.fac_usrdata_code,'NVT', NULL, 'Gering', 1, 'Matig', 2, 'Sterk', 3) FROM fac_usrdata ud WHERE fac_usrdata_key = FAC.safe_to_number(aaxx_get_NEN2767_kenmerkwaarde(m.mld_melding_key, 'ASPECT7'))) aspectwaardeEN,
|
||
mld_melding_omschrijving opmerking,
|
||
aaxx_get_NEN2767_kenmerkwaarde(m.mld_melding_key, 'CONDITIESCORE') cond,
|
||
aaxx_get_NEN2767_kenmerkwaarde(m.mld_melding_key, 'PRIORITEITSCORE') prio,
|
||
p.prs_perslid_email inspecteur,
|
||
aaxx_get_NEN2767_kenmerkwaarde(m.mld_melding_key, 'FOTONAAM') fotonaam,
|
||
fac.safe_to_number(aaxx_get_NEN2767_kenmerkwaarde(m.mld_melding_key, 'KOSTEN')) kosten,
|
||
NULL vervaldatum,
|
||
m.mld_melding_einddatum datum_gepland,
|
||
(select mld_kenmerk_waarde from aaxx_v_dwh_kenmerk_melding where mld_melding_id = m.mld_melding_key and mld_kenmerk_omschrijving = 'Dienst') dienst,
|
||
(select mld_kenmerk_waarde from aaxx_v_dwh_kenmerk_melding where mld_melding_id = m.mld_melding_key and mld_kenmerk_omschrijving = 'Taakgroep') taakgroep,
|
||
aaxx_get_NEN2767_kenmerkwaarde(m.mld_melding_key, 'GEADVISEERDSTARTJAAR') geadviseerd_startjaar,
|
||
aaxx_get_NEN2767_kenmerkwaarde(m.mld_melding_key, 'DATUMGEREEDINSPECTEUR') datum_gereed_inspecteur,
|
||
m.mld_melding_key,
|
||
s.mld_statuses_omschrijving status,
|
||
p.prs_perslid_naam || ' (' || p.prs_perslid_voornaam || ')' aanvrager,
|
||
CASE WHEN m.mld_melding_behandelaar_key IS NOT NULL THEN bh.prs_perslid_naam || ' (' || bh.prs_perslid_voornaam || ')' ELSE ''
|
||
END behandelaar
|
||
FROM mld_melding m,
|
||
mld_stdmelding sm,
|
||
mld_discipline disc,
|
||
mld_melding_object mo,
|
||
ins_deel d,
|
||
ins_srtdeel sd,
|
||
prs_perslid p,
|
||
mld_statuses s,
|
||
prs_perslid bh
|
||
WHERE disc.ins_srtdiscipline_key = FAC.getSetting('cnd_gebreken_srtdisc_key')
|
||
AND sm.mld_stdmelding_code <> 'GEEN'
|
||
AND disc.ins_discipline_verwijder IS NULL
|
||
AND d.ins_srtdeel_key = sd.ins_srtdeel_key
|
||
AND sm.mld_ins_discipline_key = disc.ins_discipline_key
|
||
AND m.mld_stdmelding_key = sm.mld_stdmelding_key
|
||
AND mo.mld_melding_key = m.mld_melding_key
|
||
AND mo.mld_melding_object_verwijder IS NULL
|
||
AND d.ins_deel_key = mo.ins_deel_key
|
||
AND m.prs_perslid_key = p.prs_perslid_key
|
||
AND m.mld_melding_behandelaar_key = bh.prs_perslid_key (+)
|
||
AND m.mld_melding_key >=
|
||
COALESCE (
|
||
(SELECT MAX (gg.mld_melding_key)
|
||
FROM (SELECT gg2.ins_deel_key,
|
||
gg2.mld_melding_key,
|
||
m.mld_melding_status
|
||
FROM (SELECT d.ins_deel_key,
|
||
MAX (m.mld_melding_key) mld_melding_key
|
||
FROM mld_melding m,
|
||
mld_melding_object mo,
|
||
ins_deel d,
|
||
mld_stdmelding std
|
||
WHERE m.mld_stdmelding_key =
|
||
std.mld_stdmelding_key
|
||
AND std.mld_stdmelding_code = 'GEEN'
|
||
AND mo.mld_melding_key =
|
||
m.mld_melding_key
|
||
AND mo.mld_melding_object_verwijder
|
||
IS NULL
|
||
AND d.ins_deel_key = mo.ins_deel_key
|
||
GROUP BY d.ins_deel_key)
|
||
gg2,
|
||
mld_melding m
|
||
WHERE m.mld_melding_key = gg2.mld_melding_key) gg
|
||
WHERE gg.ins_deel_key = d.ins_deel_key),
|
||
m.mld_melding_key)
|
||
AND m.mld_melding_status = s.mld_statuses_key
|
||
AND m.mld_melding_status in (0,2,3,4,7,99) -- Alleen lopende zaken
|
||
;
|
||
|
||
CREATE OR REPLACE VIEW AAXX_V_MJB_PRIJSLIJST
|
||
(
|
||
INS_DEEL_KEY,
|
||
OBJECTIDENTIFICATIE,
|
||
INS_DEEL_AANTAL,
|
||
EENHEID,
|
||
OMSCHRIJVING,
|
||
FABRICAAT,
|
||
TYPE_ASSET,
|
||
CAPACITEIT,
|
||
BOUWJAAR,
|
||
PLAATS,
|
||
CATEGORIE,
|
||
TAAKOMSCHRIJVING,
|
||
GROEP,
|
||
PRIORITEIT,
|
||
PERCENTAGE,
|
||
TAAKOPMERKING_X,
|
||
DIENST,
|
||
BEDRIJF,
|
||
PERIODE_EENHEID,
|
||
PERIODE_FREQUENCY,
|
||
CYCLUS_STARTDATUM,
|
||
CYLCUS_VOLGENDE_DATUM,
|
||
LOCATIE,
|
||
KOSTEN_PERUITVOER,
|
||
KOSTEN_PERJAAR
|
||
)
|
||
AS
|
||
SELECT v1.ins_deel_key,
|
||
v1.objectidentificatie,
|
||
v2.ins_deel_aantal,
|
||
v2.eenheid,
|
||
v1.omschrijving,
|
||
v2.fabricaat,
|
||
v2.type_asset,
|
||
v2.capaciteit,
|
||
v2.bouwjaar,
|
||
v2.plaats,
|
||
v1.categorie,
|
||
v1.taakomschrijving,
|
||
v1.groep,
|
||
v1.prioriteit,
|
||
v1.percentage,
|
||
v1.taakopmerking_x,
|
||
v1.dienst,
|
||
v1.bedrijf,
|
||
v1.periode_eenheid,
|
||
v1.periode_frequency,
|
||
v1.cyclus_startdatum,
|
||
v1.cylcus_volgende_datum,
|
||
v1.locatie,
|
||
v1.kosten_materiaal
|
||
* v2.ins_deel_aantal
|
||
* (COALESCE (v1.percentage, 100) / 100)
|
||
kosten_peruitvoer,
|
||
CASE
|
||
WHEN v1.periode_eenheid = 'J'
|
||
THEN
|
||
(1 / v1.periode_frequency)
|
||
* v1.kosten_materiaal
|
||
* v2.ins_deel_aantal
|
||
* (COALESCE (v1.percentage, 100) / 100)
|
||
WHEN v1.periode_eenheid = 'M'
|
||
THEN
|
||
(12 / v1.periode_frequency)
|
||
* v1.kosten_materiaal
|
||
* v2.ins_deel_aantal
|
||
* (COALESCE (v1.percentage, 100) / 100)
|
||
WHEN v1.periode_eenheid = 'W'
|
||
THEN
|
||
(52 / v1.periode_frequency)
|
||
* v1.kosten_materiaal
|
||
* v2.ins_deel_aantal
|
||
* (COALESCE (v1.percentage, 100) / 100)
|
||
WHEN v1.periode_eenheid = 'D'
|
||
THEN
|
||
(365 / v1.periode_frequency)
|
||
* v1.kosten_materiaal
|
||
* v2.ins_deel_aantal
|
||
* (COALESCE (v1.percentage, 100) / 100)
|
||
ELSE
|
||
v1.kosten_materiaal
|
||
* v2.ins_deel_aantal
|
||
* (COALESCE (v1.percentage, 100) / 100)
|
||
END
|
||
kosten_perjaar
|
||
FROM aaxx_v_mjb_taken v1, aaxx_v_mjb_assets v2
|
||
WHERE v1.ins_deel_key = v2.ins_deel_key
|
||
AND v1.periode_frequency > 0 -- we sluiten (xcp-)taken uit indien deze niet aan objecten zijn gekoppeld
|
||
AND (v2.vervaldatum IS NULL OR TRUNC(SYSDATE) < TRUNC(v2.vervaldatum) ) ;
|
||
|
||
-- Ten behoeve van Assetteam - Voor aantal klanten zijn het de externe inspecteurs die de gebreken op de installaties direct in Facilitor loggen
|
||
---- Zie ticket 70981 + AAGN#71470
|
||
---- Met deze rapportage-view kan Team Assetmanagement de mutaties (op objecten en gebreken) monitoren en hetzelfde rapport wordt gebruikt door de externe inspecteurs zelf om te kunnen zien wat er aan werk gedaan is
|
||
CREATE OR REPLACE VIEW aaxx_v_ins_objectmutaties_insp
|
||
(
|
||
ins_deel_key,
|
||
identificatie,
|
||
beschrijving,
|
||
discipline_omschrijving,
|
||
groep_omschrijving,
|
||
objectsoort_omschrijving,
|
||
objectsoort_code,
|
||
registratiedatum,
|
||
vervaldatum,
|
||
koppel_type,
|
||
plaats_ruimte,
|
||
regio,
|
||
district,
|
||
locatie,
|
||
gebouw,
|
||
actief,
|
||
hoeveelheid,
|
||
conditie,
|
||
prioriteit,
|
||
soort,
|
||
prs_perslid_key,
|
||
inspecteur,
|
||
datum,
|
||
mutatie,
|
||
mld_melding_key,
|
||
html_melding,
|
||
html_object
|
||
)
|
||
AS
|
||
SELECT d.ins_deel_key,
|
||
ins_deel_omschrijving,
|
||
ins_deel_opmerking,
|
||
ins_discipline_omschrijving,
|
||
ins_srtgroep_omschrijving,
|
||
ins_srtdeel_omschrijving,
|
||
ins_srtdeel_code,
|
||
ins_deel_aanmaak,
|
||
ins_deel_vervaldatum,
|
||
DECODE (o.alg_onroerendgoed_type,
|
||
'R',
|
||
'Ruimte',
|
||
'T',
|
||
'Terrein',
|
||
'W',
|
||
'Werkplek')
|
||
type_koppeling,
|
||
o.alg_plaatsaanduiding || ' ('
|
||
|| DECODE (
|
||
o.alg_onroerendgoed_type,
|
||
'R',
|
||
(SELECT r.alg_ruimte_omschrijving
|
||
FROM alg_ruimte r
|
||
WHERE r.alg_ruimte_key = d.ins_alg_ruimte_key),
|
||
'T',
|
||
(SELECT t.alg_terreinsector_naam
|
||
FROM alg_terreinsector t
|
||
WHERE t.alg_terreinsector_key = d.ins_alg_ruimte_key),
|
||
'W',
|
||
(SELECT r.alg_ruimte_omschrijving
|
||
FROM alg_ruimte r, prs_werkplek w
|
||
WHERE r.alg_ruimte_key = w.prs_alg_ruimte_key
|
||
AND w.prs_werkplek_key = d.ins_alg_ruimte_key)
|
||
)
|
||
|| ')'
|
||
plaats,
|
||
r.alg_regio_omschrijving,
|
||
di.alg_district_omschrijving,
|
||
l.alg_locatie_omschrijving,
|
||
o.alg_gebouw_omschrijving,
|
||
ins_deel_actief,
|
||
ins_deel_aantal,
|
||
ins_deel_mjb_score1,
|
||
ins_deel_mjb_score2,
|
||
v.soort,
|
||
v.prs_perslid_key,
|
||
v.inspecteur,
|
||
v.datum,
|
||
v.mutatie,
|
||
v.mld_melding_key,
|
||
CASE WHEN v.mld_melding_key IS NOT NULL
|
||
THEN
|
||
'<a class="details" onclick=''FcltMgr.openDetail("appl/mld/mld_melding.asp?urole=bo&'||'mld_key='
|
||
|| v.mld_melding_key
|
||
|| '")''>'
|
||
|| 'klik naar N' || v.mld_melding_key
|
||
|| '</a>'
|
||
ELSE
|
||
NULL
|
||
END
|
||
html_melding,
|
||
'<a class="details" onclick=''FcltMgr.openDetail("appl/ins/ins_deel.asp?urole=bo&'||'ins_key='
|
||
|| d.ins_deel_key
|
||
|| '")''>'
|
||
|| 'klik naar object'
|
||
|| '</a>'
|
||
html_object
|
||
FROM ins_v_aanwezigdeel d,
|
||
ins_v_aanwezigsrtdeel srt,
|
||
ins_v_aanwezigsrtgroep sg,
|
||
ins_v_aanwezigdiscipline disc,
|
||
ins_v_alg_overzicht o,
|
||
alg_locatie l,
|
||
alg_district di,
|
||
alg_regio r,
|
||
(SELECT n.ins_deel_key,
|
||
p.prs_perslid_key,
|
||
p.prs_perslid_naam inspecteur,
|
||
CASE WHEN g.fac_groep_externid = '1000' THEN 'notitie op object'
|
||
WHEN g.fac_groep_externid = '1001' THEN 'notitie (via QRC)'
|
||
ELSE 'notitie op object'
|
||
END
|
||
soort,
|
||
n.ins_deel_note_aanmaak datum,
|
||
n.ins_deel_note_omschrijving mutatie,
|
||
NULL mld_melding_key
|
||
FROM ins_deel_note n,
|
||
prs_perslid p,
|
||
fac_gebruikersgroep gg,
|
||
fac_groep g
|
||
WHERE n.prs_perslid_key = p.prs_perslid_key
|
||
AND p.prs_perslid_key = gg.prs_perslid_key
|
||
AND gg.fac_groep_key = g.fac_groep_key
|
||
AND g.fac_groep_externid IN ('1000','1001')
|
||
UNION ALL
|
||
SELECT ft.fac_tracking_refkey ins_deel_key,
|
||
p.prs_perslid_key,
|
||
p.prs_perslid_naam inspecteur,
|
||
'mutatie op object' soort,
|
||
ft.fac_tracking_datum datum,
|
||
ft.fac_tracking_oms mutatie,
|
||
NULL mld_melding_key
|
||
FROM fac_tracking ft,
|
||
fac_srtnotificatie sn,
|
||
prs_perslid p,
|
||
fac_gebruikersgroep gg,
|
||
fac_groep g
|
||
WHERE ft.fac_srtnotificatie_key = sn.fac_srtnotificatie_key
|
||
AND INSTR (ft.fac_tracking_oms, 'Object gewijzigd') > 0
|
||
AND UPPER (sn.fac_srtnotificatie_xmlnode) = 'DEEL'
|
||
AND UPPER (sn.fac_srtnotificatie_code) = 'INSUPD'
|
||
AND ft.prs_perslid_key = p.prs_perslid_key
|
||
AND p.prs_perslid_key = gg.prs_perslid_key
|
||
AND gg.fac_groep_key = g.fac_groep_key
|
||
AND g.fac_groep_externid = '1000'
|
||
UNION ALL
|
||
SELECT ft.fac_tracking_refkey ins_deel_key,
|
||
p.prs_perslid_key,
|
||
p.prs_perslid_naam inspecteur,
|
||
'mutatie (via QRC)' soort,
|
||
ft.fac_tracking_datum datum,
|
||
ft.fac_tracking_oms mutatie,
|
||
NULL mld_melding_key
|
||
FROM fac_tracking ft,
|
||
fac_srtnotificatie sn,
|
||
prs_perslid p,
|
||
fac_gebruikersgroep gg,
|
||
fac_groep g
|
||
WHERE ft.fac_srtnotificatie_key = sn.fac_srtnotificatie_key
|
||
-- AND INSTR (ft.fac_tracking_oms, 'Object gewijzigd') > 0
|
||
AND UPPER (sn.fac_srtnotificatie_xmlnode) = 'DEEL'
|
||
AND UPPER (sn.fac_srtnotificatie_code) = 'INSUPD'
|
||
AND ft.prs_perslid_key = p.prs_perslid_key
|
||
AND p.prs_perslid_key = gg.prs_perslid_key
|
||
AND gg.fac_groep_key = g.fac_groep_key
|
||
AND g.fac_groep_externid = '1001'
|
||
UNION ALL
|
||
SELECT mo.ins_deel_key ins_deel_key,
|
||
p.prs_perslid_key,
|
||
p.prs_perslid_naam inspecteur,
|
||
'gebrek toegevoegd' soort,
|
||
ft.fac_tracking_datum datum,
|
||
sm.mld_stdmelding_omschrijving mutatie,
|
||
m.mld_melding_key
|
||
FROM fac_tracking ft,
|
||
fac_srtnotificatie sn,
|
||
prs_perslid p,
|
||
fac_gebruikersgroep gg,
|
||
fac_groep g,
|
||
mld_melding m,
|
||
mld_melding_object mo,
|
||
mld_stdmelding sm,
|
||
mld_discipline di
|
||
WHERE ft.fac_srtnotificatie_key = sn.fac_srtnotificatie_key
|
||
AND UPPER (sn.fac_srtnotificatie_xmlnode) = 'MELDING'
|
||
AND UPPER (sn.fac_srtnotificatie_code) = 'MLDNEW'
|
||
AND ft.prs_perslid_key = p.prs_perslid_key
|
||
AND p.prs_perslid_key = gg.prs_perslid_key
|
||
AND gg.fac_groep_key = g.fac_groep_key
|
||
AND g.fac_groep_externid = '1000'
|
||
AND ft.fac_tracking_refkey = m.mld_melding_key
|
||
AND m.mld_melding_key = mo.mld_melding_key
|
||
AND m.mld_stdmelding_key = sm.mld_stdmelding_key
|
||
AND sm.mld_ins_discipline_key = di.ins_discipline_key
|
||
AND di.ins_srtdiscipline_key = fac.getsetting('cnd_gebreken_srtdisc_key')
|
||
UNION ALL
|
||
SELECT mo.ins_deel_key ins_deel_key,
|
||
p.prs_perslid_key,
|
||
p.prs_perslid_naam inspecteur,
|
||
'gebrek aangepast' soort,
|
||
ft.fac_tracking_datum datum,
|
||
ft.fac_tracking_oms mutatie,
|
||
m.mld_melding_key
|
||
FROM fac_tracking ft,
|
||
fac_srtnotificatie sn,
|
||
prs_perslid p,
|
||
fac_gebruikersgroep gg,
|
||
fac_groep g,
|
||
mld_melding m,
|
||
mld_melding_object mo,
|
||
mld_stdmelding sm,
|
||
mld_discipline di
|
||
WHERE ft.fac_srtnotificatie_key = sn.fac_srtnotificatie_key
|
||
AND UPPER (sn.fac_srtnotificatie_xmlnode) = 'MELDING'
|
||
AND UPPER (sn.fac_srtnotificatie_code) = 'MLDUPD'
|
||
AND INSTR (ft.fac_tracking_oms, 'is gewijzigd') > 0
|
||
AND ft.prs_perslid_key = p.prs_perslid_key
|
||
AND p.prs_perslid_key = gg.prs_perslid_key
|
||
AND gg.fac_groep_key = g.fac_groep_key
|
||
AND g.fac_groep_externid = '1000'
|
||
AND ft.fac_tracking_refkey = m.mld_melding_key
|
||
AND m.mld_melding_key = mo.mld_melding_key
|
||
AND m.mld_stdmelding_key = sm.mld_stdmelding_key
|
||
AND sm.mld_ins_discipline_key = di.ins_discipline_key
|
||
AND di.ins_srtdiscipline_key = fac.getsetting('cnd_gebreken_srtdisc_key')
|
||
UNION ALL
|
||
SELECT mo.ins_deel_key ins_deel_key,
|
||
p.prs_perslid_key,
|
||
p.prs_perslid_naam inspecteur,
|
||
'gebrek notitie geplaatst' soort,
|
||
mn.mld_melding_note_aanmaak datum,
|
||
mn.mld_melding_note_omschrijving mutatie,
|
||
m.mld_melding_key
|
||
FROM mld_melding_note mn,
|
||
prs_perslid p,
|
||
fac_gebruikersgroep gg,
|
||
fac_groep g,
|
||
mld_melding m,
|
||
mld_melding_object mo,
|
||
mld_stdmelding sm,
|
||
mld_discipline di
|
||
WHERE mn.mld_melding_key = m.mld_melding_key
|
||
AND mn.prs_perslid_key = p.prs_perslid_key
|
||
AND p.prs_perslid_key = gg.prs_perslid_key
|
||
AND gg.fac_groep_key = g.fac_groep_key
|
||
AND g.fac_groep_externid = '1000'
|
||
AND m.mld_melding_key = mo.mld_melding_key
|
||
AND m.mld_stdmelding_key = sm.mld_stdmelding_key
|
||
AND sm.mld_ins_discipline_key = di.ins_discipline_key
|
||
AND di.ins_srtdiscipline_key = fac.getsetting('cnd_gebreken_srtdisc_key')
|
||
) v
|
||
WHERE srt.ins_srtdeel_key = d.ins_srtdeel_key
|
||
AND sg.ins_srtgroep_key = srt.ins_srtgroep_key
|
||
AND sg.ins_discipline_key = disc.ins_discipline_key
|
||
AND d.ins_deel_module = 'INS'
|
||
AND d.ins_deel_parent_key IS NULL
|
||
AND COALESCE (ins_alg_ruimte_type_org, ins_alg_ruimte_type) IN
|
||
('T', 'R', 'W')
|
||
AND o.alg_onroerendgoed_keys =
|
||
COALESCE (ins_alg_ruimte_key_org, ins_alg_ruimte_key)
|
||
AND o.alg_onroerendgoed_type =
|
||
COALESCE (ins_alg_ruimte_type_org, ins_alg_ruimte_type)
|
||
AND o.alg_locatie_key = d.ins_alg_locatie_key
|
||
AND o.alg_locatie_key = l.alg_locatie_key
|
||
AND l.alg_district_key = di.alg_district_key
|
||
AND di.alg_regio_key = r.alg_regio_key
|
||
AND d.ins_deel_key = v.ins_deel_key (+)
|
||
;
|
||
|
||
-- Rapporten voor EXPORT van bijlagen naar zip-file
|
||
-- Oorspronkelijk, klantspecifiekopgzet via ticket 64348 voorRabo(-exit)
|
||
-- Onder ticket 86210 generieke opzet voor alle heyday-klant-omgevingen
|
||
--- In rapport opgenomen fac_bijlagen_key en fac_bijlagen_zippath voor download-optie vanuit rapport-wizard
|
||
--- Exportdefinities voor: 1. TAKEN 2. ASSETS 3. CONTRACTEN 4. MELDINGEN/OPDRACHTEN
|
||
|
||
-- 1. Taken
|
||
CREATE OR REPLACE VIEW aaxx_v_export_taken_udr
|
||
(
|
||
ins_discpline_omschrijving,
|
||
alg_regio_omschrijving,
|
||
alg_district_omschrijving,
|
||
alg_locatie_omschrijving,
|
||
alg_locatie_plaats,
|
||
alg_locatie_adres,
|
||
alg_gebouw_naam,
|
||
alg_gebouw_adres,
|
||
inlo_subaccount,
|
||
ins_srtgroep_omschrijving,
|
||
ins_srtdeel_code,
|
||
ins_deel_omschrijving,
|
||
ins_srtcontrole_omschrijving,
|
||
fac_bijlagen_aanmaak,
|
||
fac_bijlagen_key,
|
||
fac_bijlagen_zippath,
|
||
check_lengte
|
||
)
|
||
AS
|
||
SELECT sd.ins_discipline_omschrijving,
|
||
r.alg_regio_omschrijving,
|
||
di.alg_district_omschrijving,
|
||
l.alg_locatie_omschrijving || ' (' || l.alg_locatie_code || ')',
|
||
l.alg_locatie_plaats,
|
||
l.alg_locatie_adres,
|
||
g.alg_gebouw_naam || ' (' || g.alg_gebouw_code || ')',
|
||
g.alg_gebouw_adres,
|
||
v.inlo_subaccount,
|
||
d.ins_srtgroep_omschrijving,
|
||
srtd.ins_srtdeel_code,
|
||
d.ins_deel_omschrijving,
|
||
sc.ins_srtcontrole_omschrijving,
|
||
b.fac_bijlagen_aanmaak,
|
||
b.fac_bijlagen_key,
|
||
alg_regio_omschrijving
|
||
|| CHR(92)
|
||
|| alg_district_omschrijving
|
||
|| CHR(92)
|
||
|| REPLACE(REGEXP_REPLACE(l.alg_locatie_omschrijving , '[^[a-z,A-Z,0-9,[:space:]]]*', ''), CHR(44),'')
|
||
|| CHR(92)
|
||
|| REPLACE(REGEXP_REPLACE(g.alg_gebouw_omschrijving , '[^[a-z,A-Z,0-9,[:space:]]]*', ''), CHR(44), '')
|
||
|| CHR(92)
|
||
|| sd.ins_discipline_omschrijving
|
||
|| CHR(92)
|
||
|| REGEXP_REPLACE(d.ins_srtgroep_omschrijving , '[^[a-z,A-Z,0-9,[:space:]]]*', '')
|
||
|| CHR(92)
|
||
|| srtd.ins_srtdeel_code
|
||
|| CHR(92)
|
||
|| b.fac_bijlagen_filename
|
||
fac_bijlagen_zippath, -- Let op, padnaam kan/mag MAX 258 posities hebben (i.v.m. insuffficient memory)
|
||
LENGTH
|
||
(
|
||
alg_regio_omschrijving
|
||
|| CHR(92)
|
||
|| alg_district_omschrijving
|
||
|| CHR(92)
|
||
|| REPLACE(REGEXP_REPLACE(l.alg_locatie_omschrijving , '[^[a-z,A-Z,0-9,[:space:]]]*', ''), CHR(44),'')
|
||
|| CHR(92)
|
||
|| REPLACE(REGEXP_REPLACE(g.alg_gebouw_omschrijving , '[^[a-z,A-Z,0-9,[:space:]]]*', ''), CHR(44), '')
|
||
|| CHR(92)
|
||
|| sd.ins_discipline_omschrijving
|
||
|| CHR(92)
|
||
|| REGEXP_REPLACE(d.ins_srtgroep_omschrijving , '[^[a-z,A-Z,0-9,[:space:]]]*', '')
|
||
|| CHR(92)
|
||
|| srtd.ins_srtdeel_code
|
||
|| CHR(92)
|
||
|| b.fac_bijlagen_filename
|
||
)
|
||
check_lengte
|
||
FROM fac_v_bijlagen b,
|
||
ins_deelsrtcontrole c,
|
||
ins_srtcontrole sc,
|
||
ins_tab_discipline sd,
|
||
ctr_disc_params sdp,
|
||
ins_v_deel_gegevens d,
|
||
ins_srtdeel srtd,
|
||
alg_gebouw g,
|
||
(SELECT g.alg_gebouw_key,
|
||
fud.fac_usrdata_upper,
|
||
fud.fac_usrdata_omschr
|
||
inlo_subaccount
|
||
FROM alg_gebouw g, alg_onrgoedkenmerk k, fac_usrdata fud
|
||
WHERE g.alg_gebouw_key = k.alg_onrgoed_key
|
||
AND k.alg_onrgoed_niveau = 'G'
|
||
AND alg_kenmerk_key = DECODE (aaxx_get_user, 'INLO', 1100, NULL)
|
||
AND fac.safe_to_number(k.alg_onrgoedkenmerk_waarde) = fud.fac_usrdata_key
|
||
) v,
|
||
alg_locatie l,
|
||
alg_district di,
|
||
alg_regio r,
|
||
ins_kenmerk k
|
||
WHERE b.fac_bijlagen_refkey = c.ins_deelsrtcontrole_key
|
||
AND b.fac_bijlagen_module = 'INS'
|
||
AND c.ins_srtcontrole_key = sc.ins_srtcontrole_key
|
||
AND sc.ctr_discipline_key = sd.ins_discipline_key
|
||
AND sd.ins_discipline_module = 'CTR'
|
||
AND sd.ins_discipline_key = sdp.ctr_ins_discipline_key
|
||
-- AND sd.ins_discipline_key in (821, 624) -- Verplichtingen en Preventief onderhoud
|
||
AND c.ins_deel_key = d.ins_deel_key
|
||
AND d.ins_srtdeel_key = srtd.ins_srtdeel_key
|
||
AND d.alg_locatie_key = l.alg_locatie_key
|
||
AND d.alg_gebouw_key = g.alg_gebouw_key
|
||
AND l.alg_district_key = di.alg_district_key
|
||
AND di.alg_regio_key = r.alg_regio_key
|
||
AND b.fac_bijlagen_verwijder IS NULL
|
||
AND k.ins_kenmerk_key = b.fac_bijlagen_kenmerk_key
|
||
AND k.ins_kenmerk_niveau IN ('T', 'C', 'E') -- D=Discipline, G=Objectgroep, S=Objectsoort, T=Alle taken, C=Periodiek taken, E=Taakcategorie
|
||
AND c.ins_srtcontrole_key = k.ins_srtinstallatie_key
|
||
AND g.alg_gebouw_key = v.alg_gebouw_key(+)
|
||
ORDER BY fac_bijlagen_zippath
|
||
;
|
||
|
||
-- 2. Assets
|
||
CREATE OR REPLACE VIEW aaxx_v_export_assets_udr
|
||
(
|
||
ins_discpline_omschrijving,
|
||
alg_regio_omschrijving,
|
||
alg_district_omschrijving,
|
||
alg_locatie_omschrijving,
|
||
alg_locatie_plaats,
|
||
alg_locatie_adres,
|
||
alg_gebouw_naam,
|
||
alg_gebouw_adres,
|
||
inlo_subaccount,
|
||
ins_srtgroep_omschrijving,
|
||
ins_srtdeel_code,
|
||
ins_deel_omschrijving,
|
||
fac_bijlagen_aanmaak,
|
||
fac_bijlagen_key,
|
||
fac_bijlagen_zippath,
|
||
check_lengte
|
||
)
|
||
AS
|
||
SELECT sd.ins_discipline_omschrijving,
|
||
r.alg_regio_omschrijving,
|
||
di.alg_district_omschrijving,
|
||
l.alg_locatie_omschrijving || ' (' || l.alg_locatie_code || ')',
|
||
l.alg_locatie_plaats,
|
||
l.alg_locatie_adres,
|
||
g.alg_gebouw_naam || ' (' || g.alg_gebouw_code || ')',
|
||
g.alg_gebouw_adres,
|
||
v.inlo_subaccount,
|
||
d.ins_srtgroep_omschrijving,
|
||
srtd.ins_srtdeel_code,
|
||
d.ins_deel_omschrijving,
|
||
b.fac_bijlagen_aanmaak,
|
||
b.fac_bijlagen_key,
|
||
alg_regio_omschrijving
|
||
|| CHR(92)
|
||
|| alg_district_omschrijving
|
||
|| CHR(92)
|
||
|| REPLACE(REGEXP_REPLACE(l.alg_locatie_omschrijving , '[^[a-z,A-Z,0-9,[:space:]]]*', ''), CHR(44),'')
|
||
|| CHR(92)
|
||
|| REPLACE(REGEXP_REPLACE(g.alg_gebouw_omschrijving , '[^[a-z,A-Z,0-9,[:space:]]]*', ''), CHR(44), '')
|
||
|| CHR(92)
|
||
|| TO_CHAR (b.fac_bijlagen_aanmaak, 'YYYY-MM')
|
||
|| CHR(92)
|
||
|| REGEXP_REPLACE(d.ins_srtgroep_omschrijving , '[^[a-z,A-Z,0-9,[:space:]]]*', '')
|
||
|| CHR(92)
|
||
|| srtd.ins_srtdeel_code
|
||
|| CHR(92)
|
||
|| b.fac_bijlagen_filename
|
||
fac_bijlagen_zippath, -- Let op, padnaam kan/mag MAX 258 posities hebben (i.v.m. insuffficient memory)
|
||
LENGTH
|
||
(
|
||
alg_regio_omschrijving
|
||
|| CHR(92)
|
||
|| alg_district_omschrijving
|
||
|| CHR(92)
|
||
|| REPLACE(REGEXP_REPLACE(l.alg_locatie_omschrijving , '[^[a-z,A-Z,0-9,[:space:]]]*', ''), CHR(44),'')
|
||
|| CHR(92)
|
||
|| REPLACE(REGEXP_REPLACE(g.alg_gebouw_omschrijving , '[^[a-z,A-Z,0-9,[:space:]]]*', ''), CHR(44), '')
|
||
|| CHR(92)
|
||
|| TO_CHAR (b.fac_bijlagen_aanmaak, 'YYYY-MM')
|
||
|| CHR(92)
|
||
|| REGEXP_REPLACE(d.ins_srtgroep_omschrijving , '[^[a-z,A-Z,0-9,[:space:]]]*', '')
|
||
|| CHR(92)
|
||
|| srtd.ins_srtdeel_code
|
||
|| CHR(92)
|
||
|| b.fac_bijlagen_filename
|
||
)
|
||
check_lengte
|
||
FROM fac_v_bijlagen b,
|
||
ins_tab_discipline sd,
|
||
ins_v_deel_gegevens d,
|
||
ins_kenmerk k,
|
||
ins_srtdeel srtd,
|
||
alg_gebouw g,
|
||
(SELECT g.alg_gebouw_key,
|
||
fud.fac_usrdata_upper,
|
||
fud.fac_usrdata_omschr
|
||
inlo_subaccount
|
||
FROM alg_gebouw g, alg_onrgoedkenmerk k, fac_usrdata fud
|
||
WHERE g.alg_gebouw_key = k.alg_onrgoed_key
|
||
AND k.alg_onrgoed_niveau = 'G'
|
||
AND alg_kenmerk_key = DECODE (aaxx_get_user, 'INLO', 1100, NULL)
|
||
AND fac.safe_to_number(k.alg_onrgoedkenmerk_waarde) = fud.fac_usrdata_key
|
||
) v,
|
||
alg_locatie l,
|
||
alg_district di,
|
||
alg_regio r
|
||
WHERE b.fac_bijlagen_refkey = d.ins_deel_key
|
||
AND b.fac_bijlagen_module = 'INS'
|
||
AND b.fac_bijlagen_verwijder IS NULL
|
||
AND b.fac_bijlagen_kenmerk_key = k.ins_kenmerk_key
|
||
AND k.ins_kenmerk_niveau IN ('D', 'G', 'S') -- /* D=Discipline, G=Objectgroep, S=Objectsoort, T=Alle taken, C=Periodiek taken, E=Taakcategorie
|
||
AND k.ins_kenmerk_verwijder IS NULL
|
||
AND d.ins_discipline_key = sd.ins_discipline_key
|
||
AND sd.ins_discipline_module = 'INS'
|
||
AND d.ins_srtdeel_key = srtd.ins_srtdeel_key
|
||
AND d.alg_locatie_key = l.alg_locatie_key
|
||
AND d.alg_gebouw_key = g.alg_gebouw_key
|
||
AND l.alg_district_key = di.alg_district_key
|
||
AND di.alg_regio_key = r.alg_regio_key
|
||
AND g.alg_gebouw_key = v.alg_gebouw_key(+)
|
||
ORDER BY fac_bijlagen_zippath
|
||
;
|
||
|
||
-- 3. Contracten
|
||
CREATE OR REPLACE VIEW aaxx_v_export_contracten_udr
|
||
(
|
||
ins_discpline_omschrijving,
|
||
alg_regio_omschrijving,
|
||
alg_district_omschrijving,
|
||
alg_locatie_omschrijving,
|
||
alg_locatie_plaats,
|
||
alg_locatie_adres,
|
||
alg_gebouw_naam,
|
||
alg_gebouw_adres,
|
||
inlo_subaccount,
|
||
contractnr,
|
||
fac_bijlagen_aanmaak,
|
||
fac_bijlagen_key,
|
||
fac_bijlagen_zippath,
|
||
check_lengte
|
||
)
|
||
AS
|
||
SELECT d.ins_discipline_omschrijving,
|
||
r.alg_regio_omschrijving,
|
||
di.alg_district_omschrijving,
|
||
l.alg_locatie_omschrijving || ' (' || l.alg_locatie_code || ')',
|
||
l.alg_locatie_plaats,
|
||
l.alg_locatie_adres,
|
||
CASE WHEN cp.cnt_alg_gebouw_key IS NULL THEN cp.cnt_alg_gebouw_code -- Dus contract-scope op Locatie (dus ALLE gebouwen)
|
||
ELSE g.alg_gebouw_naam || ' (' || g.alg_gebouw_code || ')'
|
||
END
|
||
alg_gebouw_naam,
|
||
CASE WHEN cp.cnt_alg_gebouw_key IS NULL THEN cp.cnt_alg_gebouw_code -- Dus contract-scope op Locatie (dus ALLE gebouwen)
|
||
ELSE g.alg_gebouw_adres
|
||
END
|
||
alg_gebouw_adres,
|
||
v.inlo_subaccount,
|
||
c.cnt_contract_nummer_intern || DECODE (c.cnt_contract_versie, NULL, '.0', '.' || c.cnt_contract_versie)
|
||
contractnr,
|
||
b.fac_bijlagen_aanmaak,
|
||
b.fac_bijlagen_key,
|
||
r.alg_regio_omschrijving
|
||
|| CHR(92)
|
||
|| di.alg_district_omschrijving
|
||
|| CHR(92)
|
||
|| REPLACE(REGEXP_REPLACE(l.alg_locatie_omschrijving , '[^[a-z,A-Z,0-9,[:space:]]]*', ''), CHR(44),'')
|
||
|| CHR(92)
|
||
|| REPLACE(REGEXP_REPLACE(DECODE(cp.cnt_alg_gebouw_code, 'Alle gebouwen', 'Alle gebouwen', g.alg_gebouw_omschrijving) , '[^[a-z,A-Z,0-9,[:space:]]]*', ''), CHR(44),'') -- Deze geeft voor scope op Locatie de tekst/map ALLE GEBOUWEN en anders de echte gebouwomschrijving
|
||
|| CHR(92)
|
||
|| d.ins_discipline_omschrijving
|
||
|| CHR(92)
|
||
|| TO_CHAR (b.fac_bijlagen_aanmaak, 'YYYY-MM')
|
||
|| CHR(92)
|
||
|| cnt_contract_nummer_intern || '.' || COALESCE (cnt_contract_versie, '0')
|
||
|| CHR(92)
|
||
|| b.fac_bijlagen_filename
|
||
fac_bijlagen_zippath, -- Let op, padnaam kan/mag MAX 258 posities hebben (i.v.m. insuffficient memory)
|
||
LENGTH
|
||
(
|
||
r.alg_regio_omschrijving
|
||
|| CHR(92)
|
||
|| di.alg_district_omschrijving
|
||
|| CHR(92)
|
||
|| REPLACE(REGEXP_REPLACE(l.alg_locatie_omschrijving , '[^[a-z,A-Z,0-9,[:space:]]]*', ''), CHR(44),'')
|
||
|| CHR(92)
|
||
|| REPLACE(REGEXP_REPLACE(DECODE(cp.cnt_alg_gebouw_code, 'Alle gebouwen', 'Alle gebouwen', g.alg_gebouw_omschrijving) , '[^[a-z,A-Z,0-9,[:space:]]]*', ''), CHR(44),'') -- Deze geeft voor scope op Locatie de tekst/map ALLE GEBOUWEN en anders de echte gebouwomschrijving
|
||
|| CHR(92)
|
||
|| d.ins_discipline_omschrijving
|
||
|| CHR(92)
|
||
|| TO_CHAR (b.fac_bijlagen_aanmaak, 'YYYY-MM')
|
||
|| CHR(92)
|
||
|| cnt_contract_nummer_intern || '.' || COALESCE (cnt_contract_versie, '0')
|
||
|| CHR(92)
|
||
|| b.fac_bijlagen_filename
|
||
)
|
||
check_lengte
|
||
FROM fac_v_bijlagen b,
|
||
cnt_contract c,
|
||
cnt_discipline d,
|
||
(SELECT v.cnt_contract_key,
|
||
CASE WHEN v.cnt_alg_plaats_code = 'L' THEN v.cnt_alg_plaats_key ELSE
|
||
(SELECT og.alg_locatie_key FROM alg_v_onroerendgoed_gegevens og WHERE og.alg_onroerendgoed_keys = v.cnt_alg_plaats_key)
|
||
END
|
||
cnt_alg_locatie_key,
|
||
CASE WHEN v.cnt_alg_plaats_code = 'L' THEN 'Alle gebouwen' ELSE
|
||
(SELECT og.alg_gebouw_code FROM alg_v_onroerendgoed_gegevens og WHERE og.alg_onroerendgoed_keys = v.cnt_alg_plaats_key)
|
||
END
|
||
cnt_alg_gebouw_code,
|
||
CASE WHEN v.cnt_alg_plaats_code = 'L' THEN NULL ELSE
|
||
(SELECT og.alg_gebouw_key FROM alg_v_onroerendgoed_gegevens og WHERE og.alg_onroerendgoed_keys = v.cnt_alg_plaats_key)
|
||
END
|
||
cnt_alg_gebouw_key
|
||
FROM cnt_v_aanwezigcontract_plaats v
|
||
WHERE v.cnt_contract_plaats_verwijder IS NULL ) cp,
|
||
alg_locatie l,
|
||
alg_gebouw g,
|
||
(SELECT g.alg_gebouw_key,
|
||
fud.fac_usrdata_upper,
|
||
fud.fac_usrdata_omschr
|
||
inlo_subaccount
|
||
FROM alg_gebouw g, alg_onrgoedkenmerk k, fac_usrdata fud
|
||
WHERE g.alg_gebouw_key = k.alg_onrgoed_key
|
||
AND k.alg_onrgoed_niveau = 'G'
|
||
AND alg_kenmerk_key = DECODE (aaxx_get_user, 'INLO', 1100, NULL)
|
||
AND fac.safe_to_number(k.alg_onrgoedkenmerk_waarde) = fud.fac_usrdata_key
|
||
) v,
|
||
alg_district di,
|
||
alg_regio r
|
||
WHERE b.fac_bijlagen_refkey = c.cnt_contract_key
|
||
AND b.fac_bijlagen_module = 'CNT'
|
||
AND c.ins_discipline_key = d.ins_discipline_key
|
||
AND d.ins_discipline_module = 'CNT'
|
||
AND c.cnt_contract_key = cp.cnt_contract_key
|
||
AND cp.cnt_alg_locatie_key = l.alg_locatie_key
|
||
AND cp.cnt_alg_gebouw_key = g.alg_gebouw_key(+)
|
||
AND cp.cnt_alg_gebouw_key = v.alg_gebouw_key(+)
|
||
AND l.alg_district_key = di.alg_district_key
|
||
AND di.alg_regio_key = r.alg_regio_key
|
||
AND b.fac_bijlagen_verwijder IS NULL
|
||
;
|
||
|
||
-- 4. Meldingen/Opdrachten
|
||
CREATE OR REPLACE VIEW aaxx_v_export_meldingen_udr
|
||
(
|
||
ins_discpline_omschrijving,
|
||
alg_regio_omschrijving,
|
||
alg_district_omschrijving,
|
||
alg_locatie_omschrijving,
|
||
alg_locatie_plaats,
|
||
alg_locatie_adres,
|
||
alg_gebouw_naam,
|
||
alg_gebouw_adres,
|
||
inlo_subaccount,
|
||
referentie,
|
||
fac_bijlagen_aanmaak,
|
||
fac_bijlagen_key,
|
||
fac_bijlagen_zippath,
|
||
check_lengte
|
||
)
|
||
AS
|
||
SELECT sd.ins_srtdiscipline_omschrijving,
|
||
r.alg_regio_omschrijving,
|
||
di.alg_district_omschrijving,
|
||
l.alg_locatie_omschrijving || ' (' || l.alg_locatie_code || ')',
|
||
l.alg_locatie_plaats,
|
||
l.alg_locatie_adres,
|
||
g.alg_gebouw_naam || ' (' || g.alg_gebouw_code || ')',
|
||
g.alg_gebouw_adres,
|
||
v.inlo_subaccount,
|
||
TO_CHAR(m.mld_melding_key)
|
||
referentie,
|
||
b.fac_bijlagen_aanmaak,
|
||
b.fac_bijlagen_key,
|
||
r.alg_regio_omschrijving
|
||
|| CHR(92)
|
||
|| di.alg_district_omschrijving
|
||
|| CHR(92)
|
||
|| REPLACE(REGEXP_REPLACE(l.alg_locatie_omschrijving , '[^[a-z,A-Z,0-9,[:space:]]]*', ''), CHR(44),'')
|
||
|| CHR(92)
|
||
|| REPLACE(REGEXP_REPLACE(g.alg_gebouw_omschrijving , '[^[a-z,A-Z,0-9,[:space:]]]*', ''), CHR(44), '')
|
||
|| CHR(92)
|
||
|| sd.ins_srtdiscipline_omschrijving
|
||
|| CHR(92)
|
||
|| TO_CHAR (b.fac_bijlagen_aanmaak, 'YYYY-MM')
|
||
|| CHR(92)
|
||
|| TO_CHAR(m.mld_melding_key) || DECODE (m.mld_melding_externnr, NULL, NULL, ' - ' || m.mld_melding_externnr)
|
||
|| CHR(92)
|
||
|| b.fac_bijlagen_filename
|
||
fac_bijlagen_zippath, -- Let op, padnaam kan/mag MAX 258 posities hebben (i.v.m. insuffficient memory)
|
||
LENGTH
|
||
(
|
||
r.alg_regio_omschrijving
|
||
|| CHR(92)
|
||
|| di.alg_district_omschrijving
|
||
|| CHR(92)
|
||
|| REPLACE(REGEXP_REPLACE(l.alg_locatie_omschrijving , '[^[a-z,A-Z,0-9,[:space:]]]*', ''), CHR(44),'')
|
||
|| CHR(92)
|
||
|| REPLACE(REGEXP_REPLACE(g.alg_gebouw_omschrijving , '[^[a-z,A-Z,0-9,[:space:]]]*', ''), CHR(44), '')
|
||
|| CHR(92)
|
||
|| sd.ins_srtdiscipline_omschrijving
|
||
|| CHR(92)
|
||
|| TO_CHAR (b.fac_bijlagen_aanmaak, 'YYYY-MM')
|
||
|| CHR(92)
|
||
|| TO_CHAR(m.mld_melding_key) || DECODE (m.mld_melding_externnr, NULL, NULL, ' - ' || m.mld_melding_externnr)
|
||
|| CHR(92)
|
||
|| b.fac_bijlagen_filename
|
||
)
|
||
check_lengte
|
||
FROM fac_v_bijlagen b,
|
||
mld_melding m,
|
||
mld_stdmelding sm,
|
||
mld_discipline d,
|
||
ins_srtdiscipline sd,
|
||
(SELECT m.mld_melding_key,
|
||
COALESCE (og.alg_gebouw_code, 'Geen gebouw') alg_gebouw_code,
|
||
og.alg_gebouw_key,
|
||
g.alg_gebouw_adres,
|
||
g.alg_gebouw_omschrijving,
|
||
g.alg_gebouw_naam
|
||
FROM mld_melding m,
|
||
alg_v_onroerendgoed_gegevens og,
|
||
alg_gebouw g
|
||
WHERE m.mld_alg_onroerendgoed_keys = og.alg_onroerendgoed_keys
|
||
and og.alg_gebouw_key = g.alg_gebouw_key ) g,
|
||
alg_locatie l,
|
||
(SELECT g.alg_gebouw_key,
|
||
fud.fac_usrdata_upper,
|
||
fud.fac_usrdata_omschr
|
||
inlo_subaccount
|
||
FROM alg_gebouw g, alg_onrgoedkenmerk k, fac_usrdata fud
|
||
WHERE g.alg_gebouw_key = k.alg_onrgoed_key
|
||
AND k.alg_onrgoed_niveau = 'G'
|
||
AND alg_kenmerk_key = DECODE (aaxx_get_user, 'INLO', 1100, NULL)
|
||
AND fac.safe_to_number(k.alg_onrgoedkenmerk_waarde) = fud.fac_usrdata_key
|
||
) v,
|
||
alg_district di,
|
||
alg_regio r
|
||
WHERE b.fac_bijlagen_refkey = m.mld_melding_key
|
||
AND b.fac_bijlagen_module = 'MLD'
|
||
AND m.mld_stdmelding_key = sm.mld_stdmelding_key
|
||
AND sm.mld_ins_discipline_key = d.ins_discipline_key
|
||
AND d.ins_discipline_module = 'MLD'
|
||
AND d.ins_srtdiscipline_key = sd.ins_srtdiscipline_key
|
||
AND m.mld_melding_key = g.mld_melding_key
|
||
AND m.mld_alg_locatie_key = l.alg_locatie_key
|
||
AND l.alg_district_key = di.alg_district_key
|
||
AND di.alg_regio_key = r.alg_regio_key
|
||
AND b.fac_bijlagen_verwijder IS NULL
|
||
AND g.alg_gebouw_key = v.alg_gebouw_key(+)
|
||
UNION
|
||
SELECT sd.ins_srtdiscipline_omschrijving,
|
||
r.alg_regio_omschrijving,
|
||
di.alg_district_omschrijving,
|
||
l.alg_locatie_omschrijving || ' (' || l.alg_locatie_code || ')',
|
||
l.alg_locatie_plaats,
|
||
l.alg_locatie_adres,
|
||
g.alg_gebouw_naam || ' (' || g.alg_gebouw_code || ')',
|
||
g.alg_gebouw_adres,
|
||
v.inlo_subaccount,
|
||
m.mld_melding_key || '/' || mld_opdr_bedrijfopdr_volgnr
|
||
referentie,
|
||
b.fac_bijlagen_aanmaak,
|
||
b.fac_bijlagen_key,
|
||
r.alg_regio_omschrijving
|
||
|| CHR(92)
|
||
|| di.alg_district_omschrijving
|
||
|| CHR(92)
|
||
|| REPLACE(REGEXP_REPLACE(l.alg_locatie_omschrijving , '[^[a-z,A-Z,0-9,[:space:]]]*', ''), CHR(44),'')
|
||
|| CHR(92)
|
||
|| REPLACE(REGEXP_REPLACE(g.alg_gebouw_omschrijving , '[^[a-z,A-Z,0-9,[:space:]]]*', ''), CHR(44), '')
|
||
|| CHR(92)
|
||
|| sd.ins_srtdiscipline_omschrijving
|
||
|| CHR(92)
|
||
|| TO_CHAR (b.fac_bijlagen_aanmaak, 'YYYY-MM')
|
||
|| CHR(92)
|
||
|| TO_CHAR(m.mld_melding_key) || DECODE (m.mld_melding_externnr, NULL, NULL, ' - ' || m.mld_melding_externnr)
|
||
|| CHR(92)
|
||
|| o.mld_opdr_bedrijfopdr_volgnr
|
||
|| CHR(92)
|
||
|| b.fac_bijlagen_filename
|
||
fac_bijlagen_zippath, -- Let op, padnaam kan/mag MAX 258 posities hebben (i.v.m. insuffficient memory)
|
||
LENGTH
|
||
(
|
||
r.alg_regio_omschrijving
|
||
|| CHR(92)
|
||
|| di.alg_district_omschrijving
|
||
|| CHR(92)
|
||
|| REPLACE(REGEXP_REPLACE(l.alg_locatie_omschrijving , '[^[a-z,A-Z,0-9,[:space:]]]*', ''), CHR(44),'')
|
||
|| CHR(92)
|
||
|| REPLACE(REGEXP_REPLACE(g.alg_gebouw_omschrijving , '[^[a-z,A-Z,0-9,[:space:]]]*', ''), CHR(44), '')
|
||
|| CHR(92)
|
||
|| sd.ins_srtdiscipline_omschrijving
|
||
|| CHR(92)
|
||
|| TO_CHAR (b.fac_bijlagen_aanmaak, 'YYYY-MM')
|
||
|| CHR(92)
|
||
|| TO_CHAR(m.mld_melding_key) || DECODE (m.mld_melding_externnr, NULL, NULL, ' - ' || m.mld_melding_externnr)
|
||
|| CHR(92)
|
||
|| o.mld_opdr_bedrijfopdr_volgnr
|
||
|| CHR(92)
|
||
|| b.fac_bijlagen_filename
|
||
)
|
||
check_lengte
|
||
FROM fac_v_bijlagen b,
|
||
mld_melding m,
|
||
mld_opdr o,
|
||
mld_stdmelding sm,
|
||
mld_discipline d,
|
||
ins_srtdiscipline sd,
|
||
(SELECT m.mld_melding_key,
|
||
COALESCE (og.alg_gebouw_code, 'Geen gebouw') alg_gebouw_code,
|
||
og.alg_gebouw_key,
|
||
g.alg_gebouw_adres,
|
||
g.alg_gebouw_omschrijving,
|
||
g.alg_gebouw_naam
|
||
FROM mld_melding m,
|
||
alg_v_onroerendgoed_gegevens og,
|
||
alg_gebouw g
|
||
WHERE m.mld_alg_onroerendgoed_keys = og.alg_onroerendgoed_keys
|
||
and og.alg_gebouw_key = g.alg_gebouw_key ) g,
|
||
alg_locatie l,
|
||
(SELECT g.alg_gebouw_key,
|
||
fud.fac_usrdata_upper,
|
||
fud.fac_usrdata_omschr
|
||
inlo_subaccount
|
||
FROM alg_gebouw g, alg_onrgoedkenmerk k, fac_usrdata fud
|
||
WHERE g.alg_gebouw_key = k.alg_onrgoed_key
|
||
AND k.alg_onrgoed_niveau = 'G'
|
||
AND alg_kenmerk_key = DECODE (aaxx_get_user, 'INLO', 1100, NULL)
|
||
AND fac.safe_to_number(k.alg_onrgoedkenmerk_waarde) = fud.fac_usrdata_key
|
||
) v,
|
||
alg_district di,
|
||
alg_regio r,
|
||
mld_kenmerk km
|
||
WHERE b.fac_bijlagen_refkey = o.mld_opdr_key
|
||
AND b.fac_bijlagen_module = 'MLD'
|
||
AND o.mld_melding_key = m.mld_melding_key
|
||
AND m.mld_stdmelding_key = sm.mld_stdmelding_key
|
||
AND sm.mld_ins_discipline_key = d.ins_discipline_key
|
||
AND d.ins_discipline_module = 'MLD'
|
||
AND d.ins_srtdiscipline_key = sd.ins_srtdiscipline_key
|
||
AND m.mld_melding_key = g.mld_melding_key
|
||
AND m.mld_alg_locatie_key = l.alg_locatie_key
|
||
AND l.alg_district_key = di.alg_district_key
|
||
AND di.alg_regio_key = r.alg_regio_key
|
||
AND b.fac_bijlagen_verwijder IS NULL
|
||
AND b.fac_bijlagen_kenmerk_key = km.mld_kenmerk_key AND km.mld_kenmerk_niveau = 'O'
|
||
AND g.alg_gebouw_key = v.alg_gebouw_key(+)
|
||
;
|
||
|
||
|
||
--=============================================================================
|
||
-- EXPORTFUNCTIES DATAWAREHOUSE
|
||
-------------------------------------------------------------------------------
|
||
|
||
-------------------------------------------------------------------------------
|
||
-- EXPORTFUNCTIE - DWH_PRS_BEDRIJF
|
||
-------------------------------------------------------------------------------
|
||
CREATE OR REPLACE VIEW aaxx_v_dwh_prs_bedrijf
|
||
(
|
||
prs_bedrijf_key,
|
||
prs_bedrijf_naam,
|
||
prs_bedrijf_naam_upper,
|
||
prs_bedrijf_post_adres,
|
||
prs_bedrijf_post_postcode,
|
||
prs_bedrijf_post_plaats,
|
||
prs_bedrijf_post_land,
|
||
prs_bedrijf_bezoek_adres,
|
||
prs_bedrijf_bezoek_postcode,
|
||
prs_bedrijf_bezoek_plaats,
|
||
prs_bedrijf_bezoek_land,
|
||
prs_bedrijf_telefoon,
|
||
prs_bedrijf_fax,
|
||
prs_bedrijf_telefoon2,
|
||
prs_bedrijf_contact_persoon,
|
||
prs_bedrijf_contact_telefoon,
|
||
prs_bedrijf_contact_fax,
|
||
prs_bedrijf_opmerking,
|
||
prs_bedrijf_opmerking2,
|
||
prs_bedrijf_uurloon,
|
||
prs_leverancier_nr,
|
||
prs_overeenkomst_nr,
|
||
prs_overeenkomst_datum,
|
||
prs_bedrijf_aanmaak,
|
||
prs_bedrijf_verwijder,
|
||
prs_bedrijf_leverancier,
|
||
prs_bedrijf_uitvoerende,
|
||
prs_bedrijf_contract,
|
||
prs_bedrijf_intern,
|
||
prs_bedrijf_huurder,
|
||
prs_bedrijf_email,
|
||
prs_bedrijf_ingids,
|
||
prs_relatietype
|
||
)
|
||
AS
|
||
SELECT prs_bedrijf_key,
|
||
prs_bedrijf_naam,
|
||
prs_bedrijf_naam_upper,
|
||
prs_bedrijf_post_adres,
|
||
prs_bedrijf_post_postcode,
|
||
prs_bedrijf_post_plaats,
|
||
prs_bedrijf_post_land,
|
||
prs_bedrijf_bezoek_adres,
|
||
prs_bedrijf_bezoek_postcode,
|
||
prs_bedrijf_bezoek_plaats,
|
||
prs_bedrijf_bezoek_land,
|
||
prs_bedrijf_telefoon,
|
||
prs_bedrijf_fax,
|
||
prs_bedrijf_telefoon2,
|
||
prs_bedrijf_contact_persoon,
|
||
prs_bedrijf_contact_telefoon,
|
||
prs_bedrijf_contact_fax,
|
||
prs_bedrijf_opmerking,
|
||
prs_bedrijf_opmerking2,
|
||
prs_bedrijf_uurloon,
|
||
prs_leverancier_nr,
|
||
prs_overeenkomst_nr,
|
||
prs_overeenkomst_datum,
|
||
prs_bedrijf_aanmaak,
|
||
prs_bedrijf_verwijder,
|
||
prs_bedrijf_leverancier,
|
||
prs_bedrijf_uitvoerende,
|
||
prs_bedrijf_contract,
|
||
prs_bedrijf_intern,
|
||
prs_bedrijf_huurder,
|
||
prs_bedrijf_email,
|
||
prs_bedrijf_ingids,
|
||
prs_relatietype_omschrijving
|
||
FROM prs_bedrijf b, prs_relatietype rt
|
||
WHERE prs_bedrijf_verwijder IS NULL
|
||
AND b.prs_relatietype_key = rt.prs_relatietype_key(+);
|
||
|
||
-------------------------------------------------------------------------------
|
||
-- EXPORTFUNCTIE - DWH_PRS_BEDRIJFADRES
|
||
-------------------------------------------------------------------------------
|
||
CREATE OR REPLACE VIEW aaxx_v_dwh_prs_bedrijfadres
|
||
(
|
||
prs_bedrijf_key,
|
||
prs_bedrijfadres_type,
|
||
opdrachttype,
|
||
prs_bedrijfadres_url,
|
||
prs_bedrijfadres_ordermode,
|
||
prs_bedrijfadres_certificate,
|
||
prs_bedrijfadres_xsl,
|
||
prs_fixed_attach,
|
||
prs_send_flex,
|
||
alg_district_omschrijving,
|
||
alg_locatie_code,
|
||
prs_perslid_naam,
|
||
prs_perslid_key,
|
||
prs_bedrijfadres_expire
|
||
)
|
||
AS
|
||
SELECT prs_bedrijf_key,
|
||
DECODE (prs_bedrijfadres_type,
|
||
'C', 'Contracten',
|
||
'O', 'Opdrachten',
|
||
'B', 'Bestellingen',
|
||
'Anders?')
|
||
TYPE,
|
||
DECODE (
|
||
prs_bedrijfadres_type,
|
||
'O',
|
||
COALESCE (t.mld_typeopdr_omschrijving,
|
||
'Geen/Overige opdrachten'),
|
||
'N.v.t'
|
||
)
|
||
Opdrachttype,
|
||
prs_bedrijfadres_url,
|
||
prs_bedrijfadres_ordermode,
|
||
prs_bedrijfadres_certificate,
|
||
prs_bedrijfadres_xsl,
|
||
prs_bedrijfadres_attachfile prs_fixed_attach,
|
||
DECODE (
|
||
prs_bedrijfadres_flexfiles,
|
||
0,
|
||
DECODE (
|
||
(SELECT COALESCE (fac_setting_pvalue, fac_setting_default)
|
||
FROM fac_setting
|
||
WHERE LOWER (fac_setting_name) = 'puo_order_flexfiles'),
|
||
0,
|
||
'Nee',
|
||
'Ja'
|
||
),
|
||
1,
|
||
'Ja',
|
||
'Nee'
|
||
)
|
||
prs_send_flex,
|
||
d.alg_district_omschrijving,
|
||
l.alg_locatie_code,
|
||
pf.prs_perslid_naam_full,
|
||
pf.prs_perslid_key,
|
||
ba.prs_bedrijfadres_lockexpire
|
||
FROM prs_bedrijfadres ba, mld_typeopdr t, alg_locatie l, alg_district d, prs_v_perslid_fullnames_all pf
|
||
WHERE ba.mld_typeopdr_key = t.mld_typeopdr_key(+)
|
||
AND ba.alg_locatie_key = l.alg_locatie_key(+)
|
||
AND ba.alg_district_key = d.alg_district_key(+)
|
||
AND ba.prs_bedrijfadres_lockuser_key = prs_perslid_key(+);
|
||
|
||
-------------------------------------------------------------------------------
|
||
-- EXPORTFUNCTIE - DWH_PRS_AFDELING
|
||
-------------------------------------------------------------------------------
|
||
CREATE OR REPLACE VIEW aaxx_v_dwh_prs_afdeling
|
||
(
|
||
prs_afdeling_parent_naam,
|
||
prs_afdeling_naam,
|
||
prs_afdeling_omschrijving,
|
||
prs_afdeling_code,
|
||
prs_kostenplaats_nr,
|
||
prs_afdeling_verwijder,
|
||
prs_bedrijf_naam,
|
||
niveau
|
||
)
|
||
AS
|
||
SELECT ap.prs_afdeling_naam,
|
||
a.prs_afdeling_naam,
|
||
a.prs_afdeling_omschrijving,
|
||
a1.prs_afdeling_naam afdeling_code,
|
||
k.prs_kostenplaats_nr,
|
||
a.prs_afdeling_verwijder,
|
||
prs_bedrijf_naam,
|
||
niveau
|
||
FROM prs_v_afdeling a,
|
||
prs_kostenplaats k,
|
||
prs_bedrijf b,
|
||
prs_afdeling ap,
|
||
prs_afdeling a1
|
||
WHERE a.prs_kostenplaats_key = k.prs_kostenplaats_key(+)
|
||
AND a.prs_bedrijf_key = b.prs_bedrijf_key(+)
|
||
AND a.prs_afdeling_parentkey = ap.prs_afdeling_key(+)
|
||
AND a.prs_afdeling_key = a1.prs_afdeling_key
|
||
AND ap.prs_afdeling_verwijder IS NULL;
|
||
|
||
-------------------------------------------------------------------------------
|
||
-- EXPORTFUNCTIE - DWH_PRS_PERSOON
|
||
-------------------------------------------------------------------------------
|
||
CREATE OR REPLACE VIEW aaxx_v_dwh_prs_perslid
|
||
(
|
||
prs_perslid_key,
|
||
prs_afdeling_naam,
|
||
prs_perslid_naam,
|
||
prs_perslid_tussenvoegsel,
|
||
prs_perslid_voornaam,
|
||
prs_perslid_full,
|
||
prs_perslid_login,
|
||
prs_perslid_nr,
|
||
prs_perslid_telefoon,
|
||
prs_perslid_email,
|
||
prs_perslid_lastlogin,
|
||
prs_perslid_aanmaak,
|
||
prs_perslid_verwijder,
|
||
prs_perslid_laatstgezien,
|
||
prs_perslid_bezetdatum
|
||
)
|
||
AS
|
||
SELECT p.prs_perslid_key,
|
||
a.prs_afdeling_naam,
|
||
p.prs_perslid_naam,
|
||
p.prs_perslid_tussenvoegsel,
|
||
p.prs_perslid_voornaam,
|
||
pf.prs_perslid_naam_full,
|
||
p.prs_perslid_oslogin,
|
||
p.prs_perslid_nr,
|
||
p.prs_perslid_telefoonnr,
|
||
p.prs_perslid_email,
|
||
p.prs_perslid_login,
|
||
p.prs_perslid_aanmaak,
|
||
p.prs_perslid_verwijder,
|
||
CASE
|
||
WHEN ( p.alg_onroerendgoed_type = 'G'
|
||
OR p.alg_onroerendgoed_type = 'V'
|
||
OR p.alg_onroerendgoed_type = 'R')
|
||
THEN
|
||
(SELECT og.alg_gebouw_naam
|
||
FROM alg_v_allonrgoed_gegevens og
|
||
WHERE og.alg_onroerendgoed_keys =
|
||
p.alg_onroerendgoed_keys)
|
||
WHEN (p.alg_onroerendgoed_type = 'L')
|
||
THEN
|
||
(SELECT alg_locatie_omschrijving
|
||
FROM alg_locatie
|
||
WHERE alg_locatie_key = alg_onroerendgoed_keys)
|
||
END
|
||
laatst_gezien,
|
||
p.prs_perslid_bezetdatum
|
||
FROM prs_perslid p, prs_afdeling a, prs_v_perslid_fullnames_all pf
|
||
WHERE a.prs_afdeling_key = p.prs_afdeling_key
|
||
AND p.prs_perslid_key = pf.prs_perslid_key;
|
||
|
||
-------------------------------------------------------------------------------
|
||
-- EXPORTFUNCTIE - DWH_FAC_GROEPRECHTEN
|
||
-------------------------------------------------------------------------------
|
||
CREATE OR REPLACE VIEW aaxx_v_dwh_fac_groeprechten
|
||
(
|
||
prs_perslid_naam,
|
||
prs_perslid_key,
|
||
prs_perslid_login,
|
||
fac_functie_code,
|
||
fac_functie_omschrijving,
|
||
fac_functie_module,
|
||
ins_discipline_omschrijving,
|
||
fac_groep_omschrijving,
|
||
orgr,
|
||
orgw,
|
||
algr,
|
||
algw
|
||
)
|
||
AS
|
||
SELECT -- GROEPEN MET DISCIPLINES
|
||
p.prs_perslid_naam,
|
||
gg.prs_perslid_key,
|
||
p.prs_perslid_oslogin,
|
||
f.fac_functie_code,
|
||
f.fac_functie_omschrijving,
|
||
f.fac_functie_module,
|
||
(CASE
|
||
WHEN ins_srtdiscipline_prefix IS NULL THEN ''
|
||
ELSE ins_srtdiscipline_prefix || '-'
|
||
END)
|
||
|| ins_discipline_omschrijving
|
||
omschrijving,
|
||
gr.fac_groep_omschrijving,
|
||
g.fac_gebruiker_prs_level_read orgr,
|
||
g.fac_gebruiker_prs_level_write orgw,
|
||
g.fac_gebruiker_alg_level_read algr,
|
||
g.fac_gebruiker_alg_level_write algw
|
||
FROM fac_groeprechten g,
|
||
fac_gebruikersgroep gg,
|
||
prs_v_aanwezigperslid p,
|
||
fac_functie f,
|
||
ins_srtdiscipline isd,
|
||
ins_tab_discipline a,
|
||
fac_groep gr
|
||
WHERE g.ins_discipline_key = a.ins_discipline_key
|
||
AND g.fac_groep_key = gr.fac_groep_key
|
||
AND p.prs_perslid_key = gg.prs_perslid_key
|
||
AND gg.fac_groep_key = gr.fac_groep_key
|
||
AND isd.ins_srtdiscipline_key(+) = a.ins_srtdiscipline_key
|
||
AND f.fac_functie_key = g.fac_functie_key
|
||
AND f.fac_functie_discipline = 1
|
||
AND ins_discipline_verwijder IS NULL
|
||
UNION ALL -- GROEPEN ZONDER DISCIPLINES
|
||
SELECT p.prs_perslid_naam,
|
||
p.prs_perslid_key,
|
||
p.prs_perslid_oslogin,
|
||
f.fac_functie_code,
|
||
f.fac_functie_omschrijving,
|
||
f.fac_functie_module,
|
||
NULL,
|
||
gr.fac_groep_omschrijving,
|
||
g.fac_gebruiker_prs_level_read orgr,
|
||
g.fac_gebruiker_prs_level_write orgw,
|
||
g.fac_gebruiker_alg_level_read algr,
|
||
g.fac_gebruiker_alg_level_write algw
|
||
FROM fac_groeprechten g,
|
||
fac_functie f,
|
||
fac_gebruikersgroep gg,
|
||
prs_v_aanwezigperslid p,
|
||
fac_groep gr
|
||
WHERE fac_functie_module <> 'LAN'
|
||
AND fac_functie_discipline = 0
|
||
AND g.fac_functie_key = f.fac_functie_key
|
||
AND g.fac_groep_key = gg.fac_groep_key
|
||
AND gg.fac_groep_key = gr.fac_groep_key
|
||
AND p.prs_perslid_key = gg.prs_perslid_key;
|
||
|
||
-------------------------------------------------------------------------------
|
||
-- EXPORTFUNCTIE - DWH_PRS_KOSTENPLAATS
|
||
-------------------------------------------------------------------------------
|
||
CREATE OR REPLACE VIEW aaxx_v_dwh_prs_kostenplaats
|
||
(
|
||
prs_kostenplaats_nr,
|
||
prs_kostenplaats_omschrijving,
|
||
prs_kostenplaats_budgethouder,
|
||
prs_kostenplaats_extern,
|
||
prs_kostenplaatsgrp_oms,
|
||
prs_kostenplaats_aanmaak,
|
||
prs_kostenplaats_verwijder
|
||
)
|
||
AS
|
||
SELECT k.prs_kostenplaats_nr,
|
||
k.prs_kostenplaats_omschrijving,
|
||
pf.prs_perslid_naam_full,
|
||
k.prs_kostenplaats_extern,
|
||
kg.prs_kostenplaatsgrp_oms,
|
||
k.prs_kostenplaats_aanmaak,
|
||
k.prs_kostenplaats_verwijder
|
||
FROM prs_kostenplaats k, prs_v_perslid_fullnames_all pf, prs_kostenplaatsgrp kg
|
||
WHERE k.prs_perslid_key = pf.prs_perslid_key(+)
|
||
AND k.prs_kostenplaatsgrp_key = kg.prs_kostenplaatsgrp_key(+);
|
||
|
||
-------------------------------------------------------------------------------
|
||
-- EXPORTFUNCTIE - DWH_PRS_KOSTENSOORT
|
||
-------------------------------------------------------------------------------
|
||
CREATE OR REPLACE VIEW aaxx_v_dwh_prs_kostensoort
|
||
(
|
||
prs_kostensoort_code,
|
||
prs_kostensoort_omschrijving,
|
||
prs_kostensoort_fin_waarde,
|
||
prs_kostensoortgroep,
|
||
prs_kostensoort_aanmaak,
|
||
prs_kostensoort_altcode
|
||
)
|
||
AS
|
||
SELECT k.prs_kostensoort_oms,
|
||
k.prs_kostensoort_opmerking,
|
||
k.prs_kostensoort_refcode,
|
||
(SELECT prs_kostensoortgrp_oms
|
||
FROM prs_kostensoortgrp ksg
|
||
WHERE ksg.prs_kostensoortgrp_key = k.prs_kostensoortgrp_key),
|
||
k.prs_kostensoort_aanmaak,
|
||
k.prs_kostensoort_altcode
|
||
FROM prs_kostensoort k;
|
||
|
||
|
||
-------------------------------------------------------------------------------
|
||
-- EXPORTFUNCTIE - DWH_PRS_KENMERK_PRS
|
||
-------------------------------------------------------------------------------
|
||
CREATE OR REPLACE VIEW aaxx_v_dwh_kenmerk_prs
|
||
(
|
||
prs_link_key,
|
||
prs_kenmerk_niveau,
|
||
prs_kenmerk_omschrijving,
|
||
prs_kenmerk_waarde
|
||
)
|
||
AS
|
||
SELECT prs_link_key,
|
||
prs_kenmerk_niveau,
|
||
prs_kenmerk_omschrijving,
|
||
aaxx_get_kenmerkwaarde (k.prs_kenmerk_kenmerktype,
|
||
k.fac_kenmerkdomein_key,
|
||
kl.prs_kenmerklink_waarde)
|
||
FROM prs_kenmerklink kl, prs_kenmerk k
|
||
WHERE kl.prs_kenmerk_key = k.prs_kenmerk_key;
|
||
|
||
-------------------------------------------------------------------------------
|
||
-- EXPORTFUNCTIE - DWH_CNT_ALGEMEEN
|
||
-------------------------------------------------------------------------------
|
||
CREATE OR REPLACE VIEW aaxx_v_dwh_cnt_contract
|
||
(
|
||
contract_key,
|
||
internnr,
|
||
externnr,
|
||
mantelcontract_key,
|
||
beschrijving,
|
||
contractsoort,
|
||
typecontract,
|
||
versie,
|
||
status,
|
||
ingangsdatum,
|
||
rappeldatum,
|
||
opzegdatum,
|
||
einddatum,
|
||
aanmaakdatum,
|
||
verwijderdatum,
|
||
eigenaar,
|
||
verantwoordelijk_manager,
|
||
beheerder,
|
||
uitvoerder,
|
||
kostenplaats,
|
||
termijnbedrag,
|
||
contractbedrag,
|
||
volgnummer,
|
||
locatie_code,
|
||
gebouw_code,
|
||
gebouw_kosten,
|
||
gebouw_gefactureerd,
|
||
gebouw_gefactureerd_incl,
|
||
gebouw_gefactureerdverwerkt,
|
||
facturatieschema_aanwezig
|
||
)
|
||
AS
|
||
SELECT c.cnt_contract_key,
|
||
cnt_contract_nummer_intern
|
||
|| '.'
|
||
|| COALESCE (cnt_contract_versie, '0'),
|
||
cnt_contract_nummer,
|
||
cnt_contract_mantel_key,
|
||
cnt_contract_omschrijving,
|
||
d.ins_discipline_omschrijving,
|
||
tc.cnt_typecontract_omschrijving,
|
||
COALESCE (c.cnt_contract_versie, '0'),
|
||
DECODE (
|
||
c.cnt_contract_status,
|
||
0, DECODE (fac.getsetting ('cnt_contract_approval'),
|
||
1, lcl.l ('lcl_cnt_active_approval'),
|
||
lcl.l ('lcl_cnt_active_approval')), -- lcl_cnt_active
|
||
1, lcl.l ('lcl_cnt_inactive'),
|
||
2, lcl.l ('lcl_cnt_new'),
|
||
3, lcl.l ('lcl_cnt_forapproval'))
|
||
status,
|
||
cnt_contract_looptijd_van,
|
||
cnt.cnt_getrappeldatum (c.cnt_contract_key),
|
||
cnt.cnt_getopzegdatum (c.cnt_contract_key),
|
||
c.cnt_contract_looptijd_tot,
|
||
c.cnt_contract_aanmaak,
|
||
c.cnt_contract_verwijder,
|
||
a.prs_afdeling_naam,
|
||
pf2.prs_perslid_naam_full,
|
||
pf.prs_perslid_naam_full,
|
||
prs_bedrijf_naam,
|
||
kp.prs_kostenplaats_nr,
|
||
coalesce (cnt_contract_termijnkosten, 0),
|
||
cnt_contract_kosten,
|
||
aaxx_get_cnt_cont_plaats_index (cp.cnt_contract_plaats_key),
|
||
alg_locatie_code,
|
||
g.alg_gebouw_code,
|
||
ROUND (
|
||
DECODE (
|
||
cnt_gew.cnt_contract_plaats_gewicht,
|
||
0,
|
||
0,
|
||
COALESCE (
|
||
(cp.cnt_contract_plaats_gewicht
|
||
/ cnt_gew.cnt_contract_plaats_gewicht)
|
||
* c.cnt_contract_kosten,
|
||
0)),
|
||
2),
|
||
ROUND (
|
||
COALESCE (
|
||
DECODE (
|
||
cnt_gew.cnt_contract_plaats_gewicht,
|
||
0,
|
||
1,
|
||
(cp.cnt_contract_plaats_gewicht
|
||
/ cnt_gew.cnt_contract_plaats_gewicht))
|
||
* fin.fin_factuur_totaal,
|
||
0),
|
||
2) gg,
|
||
ROUND (
|
||
COALESCE (
|
||
DECODE (
|
||
cnt_gew.cnt_contract_plaats_gewicht,
|
||
0,
|
||
1,
|
||
(cp.cnt_contract_plaats_gewicht
|
||
/ cnt_gew.cnt_contract_plaats_gewicht))
|
||
* (fin.fin_factuur_totaal + fin.fin_factuur_totaal_incl),
|
||
0),
|
||
2) ggib,
|
||
ROUND (
|
||
COALESCE (
|
||
DECODE (
|
||
cnt_gew.cnt_contract_plaats_gewicht,
|
||
0,
|
||
1,
|
||
(cp.cnt_contract_plaats_gewicht
|
||
/ cnt_gew.cnt_contract_plaats_gewicht))
|
||
* finv.fin_factuur_totaal,
|
||
0),
|
||
2),
|
||
CASE WHEN (SELECT count(*) FROM cnt_factuurschema fs WHERE fs.cnt_contract_key = c.cnt_contract_key) = 0 THEN 0 ELSE 1 END
|
||
facturatieschema_aanwezig
|
||
FROM cnt_contract c,
|
||
cnt_discipline d,
|
||
cnt_disc_params cd,
|
||
cnt_typecontract tc,
|
||
(SELECT cnt_contract_plaats_gewicht,
|
||
cnt_contract_plaats_key,
|
||
cnt_contract_key,
|
||
cnt_alg_plaats_key,
|
||
cnt_alg_plaats_code
|
||
FROM cnt_contract_plaats
|
||
WHERE cnt_contract_plaats_verwijder IS NULL) cp,
|
||
prs_bedrijf b,
|
||
prs_kostensoort k,
|
||
prs_kostenplaats kp,
|
||
prs_afdeling a,
|
||
prs_v_perslid_fullnames_all pf2,
|
||
prs_v_perslid_fullnames_all pf,
|
||
alg_locatie l,
|
||
alg_gebouw g,
|
||
( SELECT cnt_contract_key,
|
||
SUM (fin_factuurregel_totaal) fin_factuur_totaal, SUM(fin_factuurregel_btw) fin_factuur_totaal_incl
|
||
FROM aaxx_v_aanwezigfactuur f, fin_factuurregel fr
|
||
WHERE f.fin_factuur_key = fr.fin_factuur_key
|
||
GROUP BY cnt_contract_key) fin,
|
||
( SELECT cnt_contract_key,
|
||
SUM (fin_factuurregel_totaal) fin_factuur_totaal
|
||
FROM aaxx_v_aanwezigfactuur f, fin_factuurregel fr
|
||
WHERE f.fin_factuur_key = fr.fin_factuur_key
|
||
AND f.fin_factuur_statuses_key = 7 -- verwerkt
|
||
GROUP BY cnt_contract_key) finv,
|
||
( SELECT cnt_contract_key,
|
||
SUM (cnt_contract_plaats_gewicht)
|
||
cnt_contract_plaats_gewicht
|
||
FROM cnt_contract_plaats
|
||
WHERE cnt_contract_plaats_verwijder IS NULL
|
||
GROUP BY cnt_contract_key) cnt_gew,
|
||
(SELECT cp.cnt_contract_plaats_key, alg_locatie_key, alg_gebouw_key
|
||
FROM alg_v_allonroerendgoed aog, cnt_contract_plaats cp
|
||
WHERE aog.alg_type = cp.cnt_alg_plaats_code
|
||
AND aog.alg_onroerendgoed_keys = cp.cnt_alg_plaats_key) cog
|
||
WHERE c.cnt_contract_key = cp.cnt_contract_key(+)
|
||
AND c.cnt_contract_key = cnt_gew.cnt_contract_key(+)
|
||
AND c.cnt_prs_bedrijf_key = b.prs_bedrijf_key
|
||
AND c.ins_discipline_key = d.ins_discipline_key
|
||
AND d.ins_discipline_key = cd.cnt_ins_discipline_key
|
||
AND cd.cnt_srtcontract_type = tc.cnt_typecontract_key
|
||
AND cd.cnt_srtcontract_type <> 6 -- Mantelcontracten worden (vooralsnog) uitgesloten AALB#28095
|
||
AND d.prs_kostensoort_key = k.prs_kostensoort_key(+)
|
||
AND c.prs_kostenplaats_key = kp.prs_kostenplaats_key(+)
|
||
AND c.prs_afdeling_key_eig = a.prs_afdeling_key
|
||
AND c.prs_perslid_key_beh = pf.prs_perslid_key
|
||
AND c.prs_perslid_key_eig = pf2.prs_perslid_key(+)
|
||
AND cp.cnt_contract_plaats_key = cog.cnt_contract_plaats_key(+)
|
||
AND cog.alg_locatie_key = l.alg_locatie_key(+)
|
||
AND cog.alg_gebouw_key = g.alg_gebouw_key(+)
|
||
AND c.cnt_contract_key = fin.cnt_contract_key(+)
|
||
AND c.cnt_contract_key = finv.cnt_contract_key(+);
|
||
|
||
|
||
CREATE OR REPLACE VIEW AAXX_V_DWH_CNT_CONTRACT_SCOPE
|
||
(
|
||
CNT_CONTRACT_PLAATS_KEY,
|
||
CNT_CONTRACT_KEY,
|
||
EXTERNNR,
|
||
INTERNNR,
|
||
FIN_FACTUUR_KEY,
|
||
FACTUUR_BOEKMAAND,
|
||
GEBOUW_CODE,
|
||
GEBOUW_BEDRAG,
|
||
GEBOUW_GEFACTUREERD_INCL,
|
||
GEBOUW_GEFACTUREERDVERWERKT,
|
||
FACTUURSCHEMA_BOEKMAAND,
|
||
GEBOUW_GEFACTUREERD_SCHEMA
|
||
)
|
||
AS
|
||
SELECT cp.cnt_contract_plaats_key,
|
||
c.cnt_contract_key,
|
||
cnt_contract_nummer externnr,
|
||
cnt_contract_nummer_intern
|
||
|| '.'
|
||
|| COALESCE (cnt_contract_versie, '0')
|
||
internnr,
|
||
f.fin_factuur_key,
|
||
f.fin_factuur_boekmaand factuur_boekmaand,
|
||
gc.alg_gebouw_code gebouw_code,
|
||
ROUND (
|
||
cp.cnt_contract_plaats_gewicht
|
||
/ (SELECT DECODE (SUM (cp2.cnt_contract_plaats_gewicht),
|
||
0, 1,
|
||
SUM (cp2.cnt_contract_plaats_gewicht))
|
||
FROM cnt_contract_plaats cp2
|
||
WHERE cp2.cnt_contract_key = cp.cnt_contract_key)
|
||
* fin_factuurregel_totaal,
|
||
4)
|
||
gebouw_bedrag,
|
||
ROUND (
|
||
COALESCE (
|
||
DECODE (
|
||
cnt_gew.cnt_contract_plaats_gewicht,
|
||
0,
|
||
1,
|
||
(cp.cnt_contract_plaats_gewicht
|
||
/ cnt_gew.cnt_contract_plaats_gewicht))
|
||
* (fin.fin_factuur_totaal + fin.fin_factuur_totaal_incl),
|
||
0),
|
||
4)
|
||
gebouw_gefactureerd_incl,
|
||
ROUND (
|
||
COALESCE (
|
||
DECODE (
|
||
cnt_gew.cnt_contract_plaats_gewicht,
|
||
0,
|
||
1,
|
||
(cp.cnt_contract_plaats_gewicht
|
||
/ cnt_gew.cnt_contract_plaats_gewicht))
|
||
* finv.fin_factuur_totaal,
|
||
0),
|
||
4)
|
||
gebouw_gefactureerdverwerkt,
|
||
cfs.cnt_factuurschema_boekmaand,
|
||
ROUND (
|
||
COALESCE (
|
||
DECODE (
|
||
cnt_gew.cnt_contract_plaats_gewicht,
|
||
0,
|
||
1,
|
||
(cp.cnt_contract_plaats_gewicht
|
||
/ cnt_gew.cnt_contract_plaats_gewicht))
|
||
* (cfs.fin_factuur_totaal),
|
||
NULL),
|
||
4)
|
||
gebouw_gefcatureerd_schema
|
||
FROM fin_factuur f,
|
||
fin_factuurregel fr,
|
||
fin_btwtabelwaarde btw,
|
||
cnt_contract c,
|
||
(SELECT c.cnt_contract_key,
|
||
cnt_factuurschema_boekmaand,
|
||
fin_factuur_totaal
|
||
FROM ( SELECT SUM (fin_factuur_totaal) fin_factuur_totaal,
|
||
SUM (fin_factuurregel_btw) fin_factuur_totaal_incl,
|
||
cfs.cnt_factuurschema_boekmaand,
|
||
cfs.cnt_contract_key
|
||
FROM aaxx_v_aanwezigfactuur f,
|
||
fin_factuurregel fr,
|
||
cnt_factuurschema cfs
|
||
WHERE f.fin_factuur_boekmaand =
|
||
cfs.cnt_factuurschema_boekmaand
|
||
AND f.fin_factuur_key = fr.fin_factuur_key
|
||
AND f.cnt_contract_key = cfs.cnt_contract_key
|
||
AND f.fin_factuur_verwijder IS NULL
|
||
GROUP BY cfs.cnt_factuurschema_boekmaand,
|
||
cfs.cnt_contract_key) cs1,
|
||
cnt_contract c
|
||
WHERE c.cnt_contract_key = cs1.cnt_contract_key(+)) cfs,
|
||
(SELECT *
|
||
FROM cnt_contract_plaats
|
||
WHERE cnt_alg_plaats_code = 'G') cp,
|
||
alg_gebouw gc,
|
||
( SELECT cnt_contract_key,
|
||
SUM (cnt_contract_plaats_gewicht)
|
||
cnt_contract_plaats_gewicht
|
||
FROM cnt_contract_plaats
|
||
WHERE cnt_contract_plaats_verwijder IS NULL
|
||
GROUP BY cnt_contract_key) cnt_gew,
|
||
( SELECT cnt_contract_key,
|
||
SUM (fin_factuurregel_totaal) fin_factuur_totaal
|
||
FROM aaxx_v_aanwezigfactuur f, fin_factuurregel fr
|
||
WHERE f.fin_factuur_key = fr.fin_factuur_key
|
||
AND f.fin_factuur_statuses_key = 7 -- verwerkt
|
||
GROUP BY cnt_contract_key) finv,
|
||
( SELECT cnt_contract_key,
|
||
SUM (fin_factuurregel_totaal) fin_factuur_totaal,
|
||
SUM (fin_factuurregel_btw) fin_factuur_totaal_incl
|
||
FROM aaxx_v_aanwezigfactuur f, fin_factuurregel fr
|
||
WHERE f.fin_factuur_key = fr.fin_factuur_key
|
||
GROUP BY cnt_contract_key) fin
|
||
WHERE f.fin_factuur_key = fr.fin_factuur_key
|
||
AND f.cnt_contract_key = cp.cnt_contract_key
|
||
AND f.cnt_contract_key = c.cnt_contract_key
|
||
AND cp.cnt_alg_plaats_key = gc.alg_gebouw_key(+)
|
||
AND f.cnt_contract_key = cnt_gew.cnt_contract_key
|
||
AND f.cnt_contract_key = finv.cnt_contract_key(+)
|
||
AND f.cnt_contract_key = fin.cnt_contract_key(+)
|
||
AND fr.fin_btwtabelwaarde_key = btw.fin_btwtabelwaarde_key(+)
|
||
AND c.cnt_contract_key = cfs.cnt_contract_key
|
||
AND (f.fin_factuur_boekmaand = cfs.cnt_factuurschema_boekmaand
|
||
OR cfs.cnt_factuurschema_boekmaand IS NULL);
|
||
|
||
|
||
CREATE OR REPLACE VIEW aaxx_v_dwh_cnt_contract_mantel
|
||
(
|
||
cnt_contract_key,
|
||
internnr,
|
||
externnr,
|
||
beschrijving,
|
||
contractsoort,
|
||
typecontract,
|
||
versie,
|
||
status,
|
||
ingangsdatum,
|
||
rappeldatum,
|
||
opzegdatum,
|
||
einddatum,
|
||
aanmaakdatum,
|
||
verwijderdatum,
|
||
eigenaar,
|
||
beheerder,
|
||
beheerder_key,
|
||
uitvoerder,
|
||
kostenplaats,
|
||
termijnbedrag,
|
||
contractbedrag,
|
||
soort_overeenkomst,
|
||
omvang_contractduur,
|
||
commodity,
|
||
omschrijving_optie_verlenging,
|
||
tijdstip_facturatie,
|
||
indexering_tijdens_periode,
|
||
datum_van_indexering,
|
||
kortingsafspraken,
|
||
kortingsafspraak,
|
||
opmerking_cm_bijzonderheden,
|
||
contract_met_leverancier,
|
||
contracteigenaar,
|
||
indexeringsformule_afspraak,
|
||
besparing,
|
||
betalingsafspraak,
|
||
betalingstermijn,
|
||
link_contract,
|
||
omvang_contract_pj,
|
||
max_indexering,
|
||
link_prijzenblad,
|
||
pct_besparing_pj,
|
||
rappeltermijn_indexering,
|
||
link_overig
|
||
)
|
||
AS
|
||
SELECT cnt_contract_key,
|
||
cnt_contract_nummer_intern
|
||
|| '.'
|
||
|| COALESCE (cnt_contract_versie, '0'),
|
||
cnt_contract_nummer,
|
||
cnt_contract_omschrijving,
|
||
d.ins_discipline_omschrijving,
|
||
tc.cnt_typecontract_omschrijving,
|
||
COALESCE (c.cnt_contract_versie, '0'),
|
||
DECODE (c.cnt_contract_status, '1', 'Gesloten', 'Open'),
|
||
cnt_contract_looptijd_van,
|
||
cnt.cnt_getrappeldatum (c.cnt_contract_key),
|
||
cnt.cnt_getopzegdatum (c.cnt_contract_key),
|
||
c.cnt_contract_looptijd_tot,
|
||
c.cnt_contract_aanmaak,
|
||
c.cnt_contract_verwijder,
|
||
a.prs_afdeling_naam,
|
||
prs_perslid_naam_full,
|
||
pf.prs_perslid_key,
|
||
prs_bedrijf_naam,
|
||
kp.prs_kostenplaats_nr,
|
||
cnt_contract_termijnkosten,
|
||
cnt_contract_kosten,
|
||
aaxx_get_kenmerk (
|
||
'CNT',
|
||
(SELECT MAX (cnt_kenmerk_key)
|
||
FROM cnt_kenmerk k, cnt_srtkenmerk sk
|
||
WHERE k.cnt_srtkenmerk_key = sk.cnt_srtkenmerk_key
|
||
AND sk.cnt_srtkenmerk_upper = 'SOORT OVEREENKOMST'),
|
||
c.cnt_contract_key),
|
||
aaxx_get_kenmerk (
|
||
'CNT',
|
||
(SELECT MAX (cnt_kenmerk_key)
|
||
FROM cnt_kenmerk k, cnt_srtkenmerk sk
|
||
WHERE k.cnt_srtkenmerk_key = sk.cnt_srtkenmerk_key
|
||
AND sk.cnt_srtkenmerk_upper = 'OMVANG CONTRACTDUUR'),
|
||
c.cnt_contract_key),
|
||
aaxx_get_kenmerk (
|
||
'CNT',
|
||
(SELECT MAX (cnt_kenmerk_key)
|
||
FROM cnt_kenmerk k, cnt_srtkenmerk sk
|
||
WHERE k.cnt_srtkenmerk_key = sk.cnt_srtkenmerk_key
|
||
AND sk.cnt_srtkenmerk_upper = 'COMMODITY'),
|
||
c.cnt_contract_key),
|
||
aaxx_get_kenmerk (
|
||
'CNT',
|
||
(SELECT MAX (cnt_kenmerk_key)
|
||
FROM cnt_kenmerk k, cnt_srtkenmerk sk
|
||
WHERE k.cnt_srtkenmerk_key = sk.cnt_srtkenmerk_key
|
||
AND sk.cnt_srtkenmerk_upper =
|
||
'OMSCHRIJVING OPTIE CONTRACTVERLENGING'),
|
||
c.cnt_contract_key),
|
||
aaxx_get_kenmerk (
|
||
'CNT',
|
||
(SELECT MAX (cnt_kenmerk_key)
|
||
FROM cnt_kenmerk k, cnt_srtkenmerk sk
|
||
WHERE k.cnt_srtkenmerk_key = sk.cnt_srtkenmerk_key
|
||
AND sk.cnt_srtkenmerk_upper = 'TIJDSTIP FACTURATIE'),
|
||
c.cnt_contract_key),
|
||
aaxx_get_kenmerk (
|
||
'CNT',
|
||
(SELECT MAX (cnt_kenmerk_key)
|
||
FROM cnt_kenmerk k, cnt_srtkenmerk sk
|
||
WHERE k.cnt_srtkenmerk_key = sk.cnt_srtkenmerk_key
|
||
AND sk.cnt_srtkenmerk_upper =
|
||
'INDEXERING TIJDENS CONTRACTPERIODE'),
|
||
c.cnt_contract_key),
|
||
aaxx_get_kenmerk (
|
||
'CNT',
|
||
(SELECT MAX (cnt_kenmerk_key)
|
||
FROM cnt_kenmerk k, cnt_srtkenmerk sk
|
||
WHERE k.cnt_srtkenmerk_key = sk.cnt_srtkenmerk_key
|
||
AND sk.cnt_srtkenmerk_upper = 'DATUM VAN INDEXERING'),
|
||
c.cnt_contract_key),
|
||
aaxx_get_kenmerk (
|
||
'CNT',
|
||
(SELECT MAX (cnt_kenmerk_key)
|
||
FROM cnt_kenmerk k, cnt_srtkenmerk sk
|
||
WHERE k.cnt_srtkenmerk_key = sk.cnt_srtkenmerk_key
|
||
AND sk.cnt_srtkenmerk_upper = 'KORTINGSAFSPRAKEN'),
|
||
c.cnt_contract_key),
|
||
aaxx_get_kenmerk (
|
||
'CNT',
|
||
(SELECT MAX (cnt_kenmerk_key)
|
||
FROM cnt_kenmerk k, cnt_srtkenmerk sk
|
||
WHERE k.cnt_srtkenmerk_key = sk.cnt_srtkenmerk_key
|
||
AND sk.cnt_srtkenmerk_upper = 'KORTINGSAFSPRAAK'),
|
||
c.cnt_contract_key),
|
||
aaxx_get_kenmerk (
|
||
'CNT',
|
||
(SELECT MAX (cnt_kenmerk_key)
|
||
FROM cnt_kenmerk k, cnt_srtkenmerk sk
|
||
WHERE k.cnt_srtkenmerk_key = sk.cnt_srtkenmerk_key
|
||
AND sk.cnt_srtkenmerk_upper = 'OPMERKING CM/ BIJZONDERHEDEN'),
|
||
c.cnt_contract_key),
|
||
aaxx_get_kenmerk (
|
||
'CNT',
|
||
(SELECT MAX (cnt_kenmerk_key)
|
||
FROM cnt_kenmerk k, cnt_srtkenmerk sk
|
||
WHERE k.cnt_srtkenmerk_key = sk.cnt_srtkenmerk_key
|
||
AND sk.cnt_srtkenmerk_upper = 'CONTRACT MET LEVERANCIER'),
|
||
c.cnt_contract_key),
|
||
aaxx_get_kenmerk (
|
||
'CNT',
|
||
(SELECT MAX (cnt_kenmerk_key)
|
||
FROM cnt_kenmerk k, cnt_srtkenmerk sk
|
||
WHERE k.cnt_srtkenmerk_key = sk.cnt_srtkenmerk_key
|
||
AND sk.cnt_srtkenmerk_upper = 'CONTRACTEIGENAAR'),
|
||
c.cnt_contract_key),
|
||
aaxx_get_kenmerk (
|
||
'CNT',
|
||
(SELECT MAX (cnt_kenmerk_key)
|
||
FROM cnt_kenmerk k, cnt_srtkenmerk sk
|
||
WHERE k.cnt_srtkenmerk_key = sk.cnt_srtkenmerk_key
|
||
AND sk.cnt_srtkenmerk_upper =
|
||
'INDEXERINGSFORMULE/ -AFSPRAAK'),
|
||
c.cnt_contract_key),
|
||
aaxx_get_kenmerk (
|
||
'CNT',
|
||
(SELECT MAX (cnt_kenmerk_key)
|
||
FROM cnt_kenmerk k, cnt_srtkenmerk sk
|
||
WHERE k.cnt_srtkenmerk_key = sk.cnt_srtkenmerk_key
|
||
AND sk.cnt_srtkenmerk_upper = 'BESPARING'),
|
||
c.cnt_contract_key),
|
||
aaxx_get_kenmerk (
|
||
'CNT',
|
||
(SELECT MAX (cnt_kenmerk_key)
|
||
FROM cnt_kenmerk k, cnt_srtkenmerk sk
|
||
WHERE k.cnt_srtkenmerk_key = sk.cnt_srtkenmerk_key
|
||
AND sk.cnt_srtkenmerk_upper = 'BETALINGSAFSPRAAK'),
|
||
c.cnt_contract_key),
|
||
aaxx_get_kenmerk (
|
||
'CNT',
|
||
(SELECT MAX (cnt_kenmerk_key)
|
||
FROM cnt_kenmerk k, cnt_srtkenmerk sk
|
||
WHERE k.cnt_srtkenmerk_key = sk.cnt_srtkenmerk_key
|
||
AND sk.cnt_srtkenmerk_upper = 'BETALINGSTERMIJN'),
|
||
c.cnt_contract_key),
|
||
aaxx_get_kenmerk (
|
||
'CNT',
|
||
(SELECT MAX (cnt_kenmerk_key)
|
||
FROM cnt_kenmerk k, cnt_srtkenmerk sk
|
||
WHERE k.cnt_srtkenmerk_key = sk.cnt_srtkenmerk_key
|
||
AND sk.cnt_srtkenmerk_upper = 'LINK CONTRACT'),
|
||
c.cnt_contract_key),
|
||
aaxx_get_kenmerk (
|
||
'CNT',
|
||
(SELECT MAX (cnt_kenmerk_key)
|
||
FROM cnt_kenmerk k, cnt_srtkenmerk sk
|
||
WHERE k.cnt_srtkenmerk_key = sk.cnt_srtkenmerk_key
|
||
AND sk.cnt_srtkenmerk_upper = 'OMVANG CONTRACT P/J'),
|
||
c.cnt_contract_key),
|
||
aaxx_get_kenmerk (
|
||
'CNT',
|
||
(SELECT MAX (cnt_kenmerk_key)
|
||
FROM cnt_kenmerk k, cnt_srtkenmerk sk
|
||
WHERE k.cnt_srtkenmerk_key = sk.cnt_srtkenmerk_key
|
||
AND sk.cnt_srtkenmerk_upper = 'MAX. INDEXERING'),
|
||
c.cnt_contract_key),
|
||
aaxx_get_kenmerk (
|
||
'CNT',
|
||
(SELECT MAX (cnt_kenmerk_key)
|
||
FROM cnt_kenmerk k, cnt_srtkenmerk sk
|
||
WHERE k.cnt_srtkenmerk_key = sk.cnt_srtkenmerk_key
|
||
AND sk.cnt_srtkenmerk_upper = 'LINK PRIJZENBLAD'),
|
||
c.cnt_contract_key),
|
||
aaxx_get_kenmerk (
|
||
'CNT',
|
||
(SELECT MAX (cnt_kenmerk_key)
|
||
FROM cnt_kenmerk k, cnt_srtkenmerk sk
|
||
WHERE k.cnt_srtkenmerk_key = sk.cnt_srtkenmerk_key
|
||
AND sk.cnt_srtkenmerk_upper = '% BESPARING P/J'),
|
||
c.cnt_contract_key),
|
||
aaxx_get_kenmerk (
|
||
'CNT',
|
||
(SELECT MAX (cnt_kenmerk_key)
|
||
FROM cnt_kenmerk k, cnt_srtkenmerk sk
|
||
WHERE k.cnt_srtkenmerk_key = sk.cnt_srtkenmerk_key
|
||
AND sk.cnt_srtkenmerk_upper = 'RAPPELTERMIJN INDEXERING'),
|
||
c.cnt_contract_key),
|
||
aaxx_get_kenmerk (
|
||
'CNT',
|
||
(SELECT MAX (cnt_kenmerk_key)
|
||
FROM cnt_kenmerk k, cnt_srtkenmerk sk
|
||
WHERE k.cnt_srtkenmerk_key = sk.cnt_srtkenmerk_key
|
||
AND sk.cnt_srtkenmerk_upper = 'LINK OVERIG'),
|
||
c.cnt_contract_key)
|
||
FROM cnt_contract c,
|
||
cnt_discipline d,
|
||
cnt_disc_params cd,
|
||
cnt_typecontract tc,
|
||
prs_bedrijf b,
|
||
prs_kostensoort k,
|
||
prs_kostenplaats kp,
|
||
prs_afdeling a,
|
||
prs_v_perslid_fullnames_all pf
|
||
WHERE c.cnt_prs_bedrijf_key = b.prs_bedrijf_key
|
||
AND c.ins_discipline_key = d.ins_discipline_key
|
||
AND d.ins_discipline_key = cd.cnt_ins_discipline_key
|
||
AND cd.cnt_srtcontract_type = tc.cnt_typecontract_key
|
||
AND d.prs_kostensoort_key = k.prs_kostensoort_key(+)
|
||
AND c.prs_kostenplaats_key = kp.prs_kostenplaats_key(+)
|
||
AND c.prs_afdeling_key_eig = a.prs_afdeling_key
|
||
AND c.prs_perslid_key_beh = pf.prs_perslid_key
|
||
AND tc.cnt_typecontract_key = 6;
|
||
|
||
CREATE OR REPLACE VIEW aaxx_v_dwh_cnt_factuurschema
|
||
(
|
||
internnr,
|
||
externnr,
|
||
contractsoort,
|
||
kostenplaats,
|
||
volgnummer,
|
||
locatie_code,
|
||
gebouw_code,
|
||
verdeelperiode,
|
||
termijnbedrag,
|
||
gebouwkosten,
|
||
opmerking
|
||
)
|
||
AS
|
||
SELECT cnt_contract_nummer_intern
|
||
|| '.'
|
||
|| COALESCE (cnt_contract_versie, '0')
|
||
internnr,
|
||
cnt_contract_nummer externnr,
|
||
cd.ins_discipline_omschrijving contractsoort,
|
||
kp.prs_kostenplaats_nr kostenplaats,
|
||
aaxx_get_cnt_cont_plaats_index (cp.cnt_contract_plaats_key)
|
||
volgnummer,
|
||
alg_locatie_code locatie_code,
|
||
g.alg_gebouw_code gebouw_code,
|
||
cf.cnt_factuurschema_boekmaand verdeelperiode,
|
||
cf.cnt_factuurschema_bedrag termijnbedrag,
|
||
ROUND (
|
||
DECODE (
|
||
cnt_gew.cnt_contract_plaats_gewicht,
|
||
0,
|
||
0,
|
||
COALESCE (
|
||
(cp.cnt_contract_plaats_gewicht
|
||
/ cnt_gew.cnt_contract_plaats_gewicht)
|
||
* cf.cnt_factuurschema_bedrag,
|
||
0)),
|
||
2)
|
||
gebouwkosten,
|
||
cf.cnt_factuurschema_opmerking
|
||
FROM cnt_contract c,
|
||
cnt_discipline cd,
|
||
cnt_factuurschema cf,
|
||
prs_kostenplaats kp,
|
||
alg_locatie l,
|
||
alg_gebouw g,
|
||
(SELECT cnt_contract_plaats_gewicht,
|
||
cnt_contract_plaats_key,
|
||
cnt_contract_key,
|
||
cnt_alg_plaats_key,
|
||
cnt_alg_plaats_code
|
||
FROM cnt_contract_plaats
|
||
WHERE cnt_contract_plaats_verwijder IS NULL) cp,
|
||
( SELECT cnt_contract_key,
|
||
SUM (cnt_contract_plaats_gewicht)
|
||
cnt_contract_plaats_gewicht
|
||
FROM cnt_contract_plaats
|
||
WHERE cnt_contract_plaats_verwijder IS NULL
|
||
GROUP BY cnt_contract_key) cnt_gew,
|
||
(SELECT cp.cnt_contract_plaats_key, alg_locatie_key, alg_gebouw_key
|
||
FROM alg_v_allonroerendgoed aog, cnt_contract_plaats cp
|
||
WHERE aog.alg_type = cp.cnt_alg_plaats_code
|
||
AND aog.alg_onroerendgoed_keys = cp.cnt_alg_plaats_key) cog
|
||
WHERE c.ins_discipline_key = cd.ins_discipline_key
|
||
AND c.cnt_contract_verwijder IS NULL
|
||
AND c.cnt_contract_key = cp.cnt_contract_key(+)
|
||
AND c.cnt_contract_key = cnt_gew.cnt_contract_key(+)
|
||
AND cp.cnt_contract_plaats_key = cog.cnt_contract_plaats_key(+)
|
||
AND cog.alg_locatie_key = l.alg_locatie_key(+)
|
||
AND cog.alg_gebouw_key = g.alg_gebouw_key(+)
|
||
AND cf.cnt_contract_key = c.cnt_contract_key
|
||
AND c.prs_kostenplaats_key = kp.prs_kostenplaats_key(+);
|
||
|
||
CREATE OR REPLACE VIEW aaxx_v_dwh_kenmerk_contract
|
||
(
|
||
CNT_CONTRACT_KEY,
|
||
CNT_KENMERK_OMSCHRIJVING,
|
||
CNT_KENMERK_WAARDE
|
||
)
|
||
AS
|
||
SELECT cnt_contract_key,
|
||
sk.cnt_srtkenmerk_omschrijving,
|
||
aaxx_get_kenmerkwaarde (sk.cnt_srtkenmerk_kenmerktype,
|
||
sk.fac_kenmerkdomein_key,
|
||
kc.cnt_kenmerkcontract_waarde)
|
||
FROM cnt_kenmerk k, cnt_srtkenmerk sk, cnt_kenmerkcontract kc
|
||
WHERE k.cnt_srtkenmerk_key = sk.cnt_srtkenmerk_key
|
||
AND kc.cnt_kenmerk_key = k.cnt_kenmerk_key;
|
||
|
||
-------------------------------------------------------------------------------
|
||
-- EXPORTFUNCTIE - DWH_FIN_FACTUUR
|
||
-------------------------------------------------------------------------------
|
||
CREATE OR REPLACE VIEW aaxx_v_dwh_fin_factuur
|
||
(
|
||
fin_factuur_key,
|
||
fin_factuur_nr,
|
||
fin_factuur_totaal_btw,
|
||
opdr_id,
|
||
contract_id,
|
||
bestel_id,
|
||
fin_factuur_datum,
|
||
fin_factuur_boekmaand,
|
||
fin_factuur_debiteur_nr,
|
||
kostensoort,
|
||
fin_factuur_datumfiat_ok,
|
||
fin_factuur_datumfiat_nok,
|
||
fin_factuur_fiat_user,
|
||
fin_factuur_opmerking,
|
||
fin_factuur_datum_export,
|
||
fin_factuur_status,
|
||
fin_factuur_aanmaak,
|
||
fin_factuur_verwerkt,
|
||
fin_factuur_verwijder,
|
||
fin_factuur_badgeid,
|
||
invoerder,
|
||
invoerder_key,
|
||
fin_factuurregel_nr,
|
||
fin_factuurregel_totaal,
|
||
fin_factuurregel_btw,
|
||
fin_factuurregel_btw_perc,
|
||
uplift,
|
||
incl_uplift,
|
||
fin_factuurregel_omschrijving,
|
||
fin_factuurregel_referentie,
|
||
fin_btwtabelwaarde_code,
|
||
fin_btwtabelwaarde_oms,
|
||
fin_factuur_bron,
|
||
fin_factuur_bron_mareon,
|
||
fin_factuur_bron_mareon_type,
|
||
fin_factuur_boekstuknr,
|
||
fin_factuur_verzamelfactuur,
|
||
fin_factuur_controle,
|
||
fin_factuur_controle_ok,
|
||
fin_factuur_retour_lev,
|
||
fin_factuur_retour_lev_reden,
|
||
fin_factuur_retour_mar,
|
||
fin_factuur_retour_mar_reden,
|
||
fin_factuur_flag,
|
||
fin_factuur_flag_oms,
|
||
fin_factuur_intern_bedrijf -- zie ticket AAIT#84789
|
||
)
|
||
AS
|
||
SELECT f.fin_factuur_key,
|
||
f.fin_factuur_nr,
|
||
f.fin_factuur_totaal_btw,
|
||
(SELECT mld_melding_key || '/' || mld_opdr_bedrijfopdr_volgnr
|
||
FROM mld_opdr
|
||
WHERE mld_opdr_key = f.mld_opdr_key),
|
||
(SELECT cc.cnt_contract_nummer_intern
|
||
|| '.'
|
||
|| COALESCE (cc.cnt_contract_versie, '0')
|
||
FROM cnt_contract cc
|
||
WHERE cc.cnt_contract_key = f.cnt_contract_key),
|
||
(SELECT bes_bestelopdr_id
|
||
FROM bes_bestelopdr
|
||
WHERE bes_bestelopdr_key = f.bes_bestelopdr_key),
|
||
f.fin_factuur_datum,
|
||
f.fin_factuur_boekmaand,
|
||
f.fin_factuur_debiteur_nr,
|
||
(SELECT prs_kostensoort_oms
|
||
FROM prs_kostensoort
|
||
WHERE prs_kostensoort_key = f.prs_kostensoort_key),
|
||
fac.gettrackingdate ('FINFOK', f.fin_factuur_key),
|
||
fac.gettrackingdate ('FINFNO', f.fin_factuur_key),
|
||
(SELECT prs_perslid_naam_full
|
||
FROM prs_v_perslid_fullnames_all pf
|
||
WHERE pf.prs_perslid_key =
|
||
fac.gettrackinguserkey ('FINFOK', f.fin_factuur_key)),
|
||
f.fin_factuur_opmerking,
|
||
fac.gettrackingdate ('FINVER', f.fin_factuur_key),
|
||
(SELECT fin_factuur_statuses_omschr
|
||
FROM fin_factuur_statuses s
|
||
WHERE s.fin_factuur_statuses_key = f.fin_factuur_statuses_key),
|
||
COALESCE (fac.gettrackingdate ('FINNEW', f.fin_factuur_key),
|
||
fin_factuur_datum),
|
||
fac.gettrackingdate ('FINVER', f.fin_factuur_key),
|
||
fin_factuur_verwijder,
|
||
TO_CHAR (fac.gettrackingdate ('FINVER', f.fin_factuur_key),
|
||
'yyyymmdd'),
|
||
fac.gettrackinguserkey ('FINNEW', f.fin_factuur_key) invoerder,
|
||
(SELECT prs_perslid_naam_full
|
||
FROM prs_v_perslid_fullnames_all pf
|
||
WHERE pf.prs_perslid_key =
|
||
fac.gettrackinguserkey ('FINNEW', f.fin_factuur_key))
|
||
invoerder_key,
|
||
fr.fin_factuurregel_nr,
|
||
fr.fin_factuurregel_totaal,
|
||
ROUND (fr.fin_factuurregel_btw, 2),
|
||
btw.fin_btwtabelwaarde_perc,
|
||
uplift,
|
||
uplift * fr.fin_factuurregel_totaal,
|
||
fr.fin_factuurregel_omschrijving,
|
||
fr.fin_factuurregel_referentie,
|
||
btw.fin_btwtabelwaarde_code,
|
||
btw.fin_btwtabelwaarde_oms,
|
||
DECODE (f.fin_factuur_bron,
|
||
0, lcl.l ('lcl_fin_source_manual'),
|
||
1, lcl.l ('lcl_fin_source_excel'),
|
||
2, lcl.l ('lcl_fin_source_mail'),
|
||
'Onbekend') factuurbron,
|
||
(SELECT 'mareon'
|
||
FROM fac_tracking ft, fac_srtnotificatie sn
|
||
WHERE ft.fac_tracking_refkey = f.fin_factuur_key
|
||
AND ft.fac_srtnotificatie_key = sn.fac_srtnotificatie_key
|
||
AND sn.fac_srtnotificatie_xmlnode = 'factuur'
|
||
AND sn.fac_srtnotificatie_code = 'FINUPD'
|
||
AND INSTR(ft.fac_tracking_oms, 'Factuur geimporteerd vanuit Mareon')>0) fin_factuur_bron_mareon,
|
||
(SELECT LOWER(fin_kenmerkfactuur_waarde)
|
||
FROM fin_kenmerkfactuur fk, fin_kenmerk k
|
||
WHERE fk.fin_kenmerk_key = k.fin_kenmerk_key
|
||
AND k.fin_kenmerk_verwijder IS NULL
|
||
AND UPPER (fin_kenmerk_code) = 'MAREON_BRON'
|
||
AND fk.fin_factuur_key = f.fin_factuur_key) fin_factuur_bron_mareon_type,
|
||
(SELECT fin_kenmerkfactuur_waarde
|
||
FROM fin_kenmerkfactuur fk, fin_kenmerk k
|
||
WHERE fk.fin_kenmerk_key = k.fin_kenmerk_key
|
||
AND k.fin_kenmerk_verwijder IS NULL
|
||
AND UPPER (fin_kenmerk_omschrijving) = 'BOEKSTUKNUMMER'
|
||
AND fk.fin_factuur_key = f.fin_factuur_key) fin_factuur_boekstuknr,
|
||
(SELECT fin_kenmerkfactuur_waarde
|
||
FROM fin_kenmerkfactuur fk, fin_kenmerk k
|
||
WHERE fk.fin_kenmerk_key = k.fin_kenmerk_key
|
||
AND k.fin_kenmerk_verwijder IS NULL
|
||
AND UPPER (fin_kenmerk_omschrijving) = 'VERZAMELFACTUUR?'
|
||
AND fk.fin_factuur_key = f.fin_factuur_key) fin_factuur_verzamelfactuur,
|
||
(SELECT fin_kenmerkfactuur_waarde
|
||
FROM fin_kenmerkfactuur fk, fin_kenmerk k
|
||
WHERE fk.fin_kenmerk_key = k.fin_kenmerk_key
|
||
AND k.fin_kenmerk_verwijder IS NULL
|
||
AND UPPER (fin_kenmerk_omschrijving) = 'EXTRA CONTROLE?'
|
||
AND fk.fin_factuur_key = f.fin_factuur_key) fin_factuur_controle,
|
||
(SELECT fin_kenmerkfactuur_waarde
|
||
FROM fin_kenmerkfactuur fk, fin_kenmerk k
|
||
WHERE fk.fin_kenmerk_key = k.fin_kenmerk_key
|
||
AND k.fin_kenmerk_verwijder IS NULL
|
||
AND UPPER (fin_kenmerk_omschrijving) = 'GECONTROLEERD'
|
||
AND fk.fin_factuur_key = f.fin_factuur_key) fin_factuur_controle_ok,
|
||
(SELECT fin_kenmerkfactuur_waarde
|
||
FROM fin_kenmerkfactuur fk, fin_kenmerk k
|
||
WHERE fk.fin_kenmerk_key = k.fin_kenmerk_key
|
||
AND k.fin_kenmerk_verwijder IS NULL
|
||
AND UPPER (fin_kenmerk_omschrijving) = 'RETOUR LEVERANCIER'
|
||
AND fk.fin_factuur_key = f.fin_factuur_key) fin_factuur_retour_lev,
|
||
flx.getdomeinwaarde ((SELECT fac_kenmerkdomein_key FROM fac_kenmerkdomein WHERE fac_kenmerkdomein_upper = 'RETOUR - LEVERANCIER'), flx.getflex ('FIN', COALESCE((SELECT fin_kenmerk_key FROM fin_kenmerk WHERE fin_kenmerk_upper = 'RETOUR LEVERANCIER - REDEN'),0), f.fin_factuur_key))
|
||
fin_factuur_retour_lev_reden,
|
||
(SELECT fin_kenmerkfactuur_waarde
|
||
FROM fin_kenmerkfactuur fk, fin_kenmerk k
|
||
WHERE fk.fin_kenmerk_key = k.fin_kenmerk_key
|
||
AND k.fin_kenmerk_verwijder IS NULL
|
||
AND UPPER (fin_kenmerk_omschrijving) = 'RETOUR MAREON-HELPDESK'
|
||
AND fk.fin_factuur_key = f.fin_factuur_key) fin_factuur_retour_mar,
|
||
flx.getdomeinwaarde ((SELECT fac_kenmerkdomein_key FROM fac_kenmerkdomein WHERE fac_kenmerkdomein_upper = 'RETOUR - MAREON HELPDESK'), flx.getflex ('FIN', COALESCE((SELECT fin_kenmerk_key FROM fin_kenmerk WHERE fin_kenmerk_upper = 'RETOUR MAREON HELPDESK - REDEN'),0), f.fin_factuur_key))
|
||
fin_factuur_retour_mar_reden,
|
||
f.fin_factuur_flag,
|
||
(CASE
|
||
WHEN f.fin_factuur_flag>0 THEN Lcl.L('lcl_fin_flag' || f.fin_factuur_flag)
|
||
ELSE ''
|
||
END) fin_factuur_flag_oms,
|
||
(SELECT LOWER(fin_kenmerkfactuur_waarde)
|
||
FROM fin_kenmerkfactuur fk, fin_kenmerk k
|
||
WHERE fk.fin_kenmerk_key = k.fin_kenmerk_key
|
||
AND k.fin_kenmerk_verwijder IS NULL
|
||
AND UPPER (fin_kenmerk_code) = 'MAREON_BEDRIJF_INTERN'
|
||
AND fk.fin_factuur_key = f.fin_factuur_key) fin_factuur_intern_bedrijf
|
||
FROM fin_factuur f,
|
||
fin_factuurregel fr,
|
||
fin_btwtabelwaarde btw,
|
||
(SELECT f2.fin_factuur_key, uplift
|
||
FROM aaxx_imp_uplift u,
|
||
prs_bedrijf b,
|
||
prs_kostensoort ks,
|
||
fin_factuur f2,
|
||
mld_opdr o,
|
||
cnt_contract c
|
||
WHERE u.prs_leverancier_nr = b.prs_leverancier_nr
|
||
AND f2.mld_opdr_key = o.mld_opdr_key(+)
|
||
AND f2.cnt_contract_key = c.cnt_contract_key(+)
|
||
AND COALESCE (o.mld_uitvoerende_keys,
|
||
c.cnt_prs_bedrijf_key) =
|
||
b.prs_bedrijf_key
|
||
AND UPPER (u.prs_kostensoort_oms) =
|
||
ks.prs_kostensoort_upper
|
||
AND f2.prs_kostensoort_key = ks.prs_kostensoort_key
|
||
AND soort_order =
|
||
DECODE (o.mld_opdr_key, NULL, 'CO', 'WO')
|
||
AND f2.fin_factuur_boekmaand =
|
||
u.jaar || '-' || LTRIM (TO_CHAR (u.maand, '00')))
|
||
UP
|
||
WHERE f.fin_factuur_key = fr.fin_factuur_key(+)
|
||
AND f.fin_factuur_key = UP.fin_factuur_key(+)
|
||
AND fr.fin_btwtabelwaarde_key = btw.fin_btwtabelwaarde_key(+);
|
||
|
||
|
||
CREATE OR REPLACE VIEW aaxx_v_dwh_fin_factuur_vk
|
||
(
|
||
fin_factuurrun_key, -- Interne key van de verkooprun
|
||
fin_factuurrun_nr, -- Omschrijving van de verkooprun = BOEKJAAR + Datum run
|
||
fin_factuur_nr, -- Referentie verkoopfactuur = Datum + Verplichtingsref (opdr, cnt, bestlopdr)
|
||
fin_factuur_totaal, -- Totaal verkoopfactuur (excl btw)
|
||
opdr_id,
|
||
contract_id,
|
||
bestel_id,
|
||
fin_factuur_datum,
|
||
fin_factuur_boekmaand,
|
||
fin_factuur_debiteur_nr,
|
||
kostensoort,
|
||
prs_kostensoortgrp_oms, -- Referentie, omschrijving van de verkoopfactuur
|
||
fin_factuur_datum_export,
|
||
fin_factuur_status,
|
||
fin_factuur_aanmaak,
|
||
fin_factuur_verwerkt,
|
||
fin_factuur_verwijder, -- NULL want verwijderactie niet mogelijk voor verkoopfacturen
|
||
fin_factuur_badgeid,
|
||
invoerder, -- NULL want verkoopfactuur wordt automatisch bij draaien inkooprun aangemaakt
|
||
invoerder_key, -- Idem
|
||
fin_factuurregel_key, -- Interne key van de aangemaakte verkoopregel
|
||
fin_factuurregel_totaal, -- Regelbedrag (exl btw)
|
||
fin_factuurregel_btw,
|
||
fin_factuurregel_btw_perc,
|
||
fin_factuurregel_omschrijving,
|
||
fin_factuurregel_referentie, -- Exact code van het gebouw. Is kenmerk van gebouw
|
||
fin_btwtabelwaarde_code,
|
||
fin_btwtabelwaarde_oms,
|
||
fin_factuur_bron,
|
||
fin_factuur_boekstuknr, -- NULL, nvt voor verkoopfacturen
|
||
fin_verkoopfactuur_c4 -- Deze wordt gebruikt in RABO om 'Verkoopfactuur_VASTVAR' te vullen
|
||
)
|
||
AS
|
||
SELECT vf.fin_verkoopfactuurkop_key,
|
||
vfk.fin_verkoopfactuurkop_id,
|
||
vf.fin_verkoopfactuur_id fin_factuur_nr,
|
||
(SELECT sum(fin_verkoopfactuur_bedrag) FROM fin_verkoopfactuur vf2 WHERE vf2.fin_verkoopfactuur_refkey = vf.fin_verkoopfactuur_refkey AND vf2.fin_verkoopfactuurkop_key = vf.fin_verkoopfactuurkop_key)
|
||
fin_factuur_totaal,
|
||
CASE WHEN vf.fin_verkoopfactuur_xmlnode='opdracht'
|
||
THEN
|
||
(SELECT mld_melding_key || '/' || mld_opdr_bedrijfopdr_volgnr
|
||
FROM mld_opdr
|
||
WHERE mld_opdr_key = vf.fin_verkoopfactuur_refkey)
|
||
ELSE NULL END opdr_id,
|
||
CASE WHEN vf.fin_verkoopfactuur_xmlnode='contract'
|
||
THEN
|
||
(SELECT cc.cnt_contract_nummer_intern || '.' || COALESCE (cc.cnt_contract_versie, '0')
|
||
FROM cnt_contract cc
|
||
WHERE cc.cnt_contract_key = vf.fin_verkoopfactuur_refkey)
|
||
ELSE NULL END contract_id,
|
||
CASE WHEN vf.fin_verkoopfactuur_xmlnode='bestelopdr'
|
||
THEN
|
||
(SELECT b.bes_bestelopdr_id
|
||
FROM bes_bestelopdr b
|
||
WHERE b.bes_bestelopdr_key = vf.fin_verkoopfactuur_refkey)
|
||
ELSE NULL END bestel_id,
|
||
vf.fin_verkoopfactuur_aanmaak fin_factuur_datum,
|
||
vf.fin_verkoopfactuur_maand fin_factuur_boekmaand,
|
||
vf.prs_debiteur_naam fin_factuur_debiteur_nr,
|
||
vf.prs_kostensoort_oms,
|
||
vf.prs_kostensoortgrp_oms prs_kostensoortgrp_oms,
|
||
vf.fin_verkoopfactuur_datum fin_factuur_datum_export,
|
||
CASE WHEN vf.fin_verkoopfactuur_datum IS NULL THEN 'nog verwerken' ELSE 'verwerkt' END
|
||
fin_factuur_status,
|
||
vf.fin_verkoopfactuur_aanmaak,
|
||
vf.fin_verkoopfactuur_datum,
|
||
NULL fin_factuur_verwijder,
|
||
TO_CHAR (vf.fin_verkoopfactuur_datum,'yyyymmdd') badgeid,
|
||
NULL invoerder,
|
||
NULL invoerder_key,
|
||
vf.fin_verkoopfactuur_key,
|
||
fin_verkoopfactuur_bedrag fin_factuurregel_totaal,
|
||
ROUND((btw.fin_btwtabelwaarde_perc/100) * fin_verkoopfactuur_bedrag,2) fin_factuurregel_btw,
|
||
btw.fin_btwtabelwaarde_perc,
|
||
fin_verkoopfactuur_omschr fin_factuuregel_omschrijving,
|
||
fin_verkoopfactuur_c1 fin_factuurregel_referentie,
|
||
btw.fin_btwtabelwaarde_code,
|
||
btw.fin_btwtabelwaarde_oms,
|
||
'interface' factuurbron,
|
||
NULL fin_factuur_boekstuknr,
|
||
CASE WHEN vf.fin_verkoopfactuur_c4 IS NULL THEN 'nee'
|
||
WHEN vf.fin_verkoopfactuur_c4 = 'Verkoopfactuur_VASTVAR' THEN 'ja'
|
||
ELSE 'anders' END
|
||
vast_variabel_opdracht
|
||
FROM fin_verkoopfactuur vf,
|
||
fin_verkoopfactuurkop vfk,
|
||
fin_btwtabelwaarde btw
|
||
WHERE vf.fin_verkoopfactuurkop_key = vfk.fin_verkoopfactuurkop_key
|
||
AND vf.fin_btwtabelwaarde_code = btw.fin_btwtabelwaarde_code
|
||
ORDER BY vf.fin_verkoopfactuur_refkey, vf.fin_verkoopfactuur_key ;
|
||
|
||
-------------------------------------------------------------------------------
|
||
-- EXPORTFUNCTIE - DWH_MLD_STDMELDING
|
||
-------------------------------------------------------------------------------
|
||
|
||
CREATE OR REPLACE VIEW aaxx_v_dwh_mld_stdmelding
|
||
AS
|
||
SELECT mld_stdmelding_key,
|
||
'https://' || (SELECT LOWER(fac_version_cust) FROM fac_version) || '.facilitor.nl/appl/mld/mld_melding.asp?mld_defaultstdmelding=' || mld_stdmelding_key || CHR(38) || 'role=fe' || CHR(38) || 'sso=HEYDAY' link,
|
||
(SELECT fac_version_cust FROM fac_version)
|
||
account,
|
||
ins_srtdiscipline_omschrijving,
|
||
vak.ins_discipline_omschrijving,
|
||
mld_stdmelding_omschrijving,
|
||
std.mld_stdmelding_t_uitvoertijd.tijdsduur
|
||
|| DECODE (std.mld_stdmelding_t_uitvoertijd.eenheid,
|
||
'U', ' Uren',
|
||
'D', ' Dagen',
|
||
'')
|
||
mld_stdmelding_t_uitvoertijd,
|
||
mld_stdmeldinggroep_naam,
|
||
pks.prs_kostensoort_oms,
|
||
mld_stdmelding_vervaldatum,
|
||
DECODE (mld_stdmelding_notfrontend, 1, 'ja', 'nee')
|
||
mld_stdmelding_notfrontend,
|
||
mld_stdmelding_kanverwijzen,
|
||
DECODE (alg_onrgoed_niveau,
|
||
'R', 'ruimte',
|
||
'V', 'verdieping',
|
||
'G', 'gebouw',
|
||
'L', 'locatie')
|
||
alg_onrgoed_niveau,
|
||
DECODE (mld_disc_params_notify,
|
||
0, 'Nooit',
|
||
1, 'Altijd',
|
||
2, 'Afhankelijk van melding',
|
||
'Onbekend')
|
||
mld_disc_params_notify,
|
||
DECODE (mld_stdmelding_planbaar, 1, 'ja', 'nee')
|
||
mld_stdmelding_planbaar,
|
||
DECODE (mld_stdmelding_freetext,
|
||
0, 'onzichtbaar',
|
||
2, 'verplicht',
|
||
'optioneel')
|
||
mld_stdmelding_freetext,
|
||
NULL
|
||
ins_srtinst_verplicht,
|
||
mld_stdmelding_hint,
|
||
DECODE (mld_stdmelding_autoorder, 1, 'ja', 'nee')
|
||
mld_stdmelding_autoorder,
|
||
DECODE (mld_stdmelding_vereisdienst, 1, 'ja', 'nee')
|
||
mld_stdmelding_vereisdienst,
|
||
ot.mld_typeopdr_omschrijving
|
||
standaard_opdrachttype,
|
||
mld_stdmelding_opdrtypevast,
|
||
std.mld_stdmelding_t_accepttijd.tijdsduur
|
||
|| DECODE (std.mld_stdmelding_t_accepttijd.eenheid,
|
||
'U', ' Uren',
|
||
'D', ' Dagen',
|
||
'')
|
||
mld_stdmelding_t_accepttijd,
|
||
std.mld_stdmelding_t_uitvtijd_pr1.tijdsduur
|
||
|| DECODE (std.mld_stdmelding_t_uitvtijd_pr1.eenheid,
|
||
'U', ' Uren',
|
||
'D', ' Dagen',
|
||
'')
|
||
mld_stdmelding_t_uitvtijd_pr1,
|
||
std.mld_stdmelding_t_uitvtijd_pr2.tijdsduur
|
||
|| DECODE (std.mld_stdmelding_t_uitvtijd_pr2.eenheid,
|
||
'U', ' Uren',
|
||
'D', ' Dagen',
|
||
'')
|
||
mld_stdmelding_t_uitvtijd_pr2,
|
||
std.mld_stdmelding_t_uitvtijd_pr4.tijdsduur
|
||
|| DECODE (std.mld_stdmelding_t_uitvtijd_pr4.eenheid,
|
||
'U', ' Uren',
|
||
'D', ' Dagen',
|
||
'')
|
||
mld_stdmelding_t_uitvtijd_pr4
|
||
FROM mld_stdmelding std,
|
||
mld_stdmeldinggroep smg,
|
||
mld_discipline vak,
|
||
ins_srtdiscipline srt,
|
||
prs_kostensoort pks,
|
||
prs_dienst d,
|
||
mld_disc_params dp,
|
||
mld_typeopdr ot,
|
||
bes_discipline bd
|
||
WHERE std.mld_stdmelding_verwijder IS NULL
|
||
AND std.mld_ins_discipline_key = vak.ins_discipline_key
|
||
AND vak.ins_discipline_verwijder IS NULL
|
||
AND vak.ins_srtdiscipline_key = srt.ins_srtdiscipline_key
|
||
AND srt.ins_srtdiscipline_verwijder IS NULL
|
||
AND std.prs_kostensoort_key = pks.prs_kostensoort_key(+)
|
||
AND std.prs_dienst_key = d.prs_dienst_key(+)
|
||
AND std.mld_typeopdr_key = ot.mld_typeopdr_key(+)
|
||
AND std.mld_stdmeldinggroep_key = smg.mld_stdmeldinggroep_key(+)
|
||
AND bd.ins_discipline_key(+) = std.bes_ins_discipline_key
|
||
AND vak.ins_discipline_key = dp.mld_ins_discipline_key;
|
||
|
||
-------------------------------------------------------------------------------
|
||
-- EXPORTFUNCTIE - DWH_MLD_ALGEMEEN
|
||
-------------------------------------------------------------------------------
|
||
|
||
CREATE OR REPLACE VIEW aaxx_v_dwh_mld_melding
|
||
(
|
||
mld_melding_key,
|
||
meldingnummer,
|
||
extern_nr,
|
||
meldbron,
|
||
mld_melding_start_key,
|
||
alg_district_omschrijving,
|
||
locatie,
|
||
locatie_omschrijving,
|
||
alg_locatie_key,
|
||
onrgoed_key,
|
||
gebouw,
|
||
gebouw_naam,
|
||
gebouw_key,
|
||
verdieping,
|
||
verdieping_key,
|
||
ruimtenr,
|
||
ruimte_omschrijving,
|
||
ruimte_key,
|
||
melding_ordernr,
|
||
kostensoortgroep,
|
||
kostensoort,
|
||
kostenplaats,
|
||
kostenplaats_oms,
|
||
melder,
|
||
prs_perslid_key,
|
||
afdeling,
|
||
afdeling_omschrijving,
|
||
prs_bedrijf_key,
|
||
invoerder,
|
||
invoerder_key,
|
||
behandelaar,
|
||
behandelaar_key,
|
||
soortmelding,
|
||
ins_discipline_key,
|
||
ins_srtdiscipline_prefix,
|
||
productgroep,
|
||
subproductgroep,
|
||
subproductgroepgroep,
|
||
status,
|
||
sla_werkdgn,
|
||
plan_uitvoertijd,
|
||
datum,
|
||
datumfilter,
|
||
plan_einddatum,
|
||
prioriteit,
|
||
ingezien,
|
||
geaccepteerd,
|
||
afgemeld,
|
||
verwerkt, -- nieuw
|
||
doorlooptijd_werkdgn,
|
||
acceptoptijd,
|
||
uitvoeringoptijd_sla,
|
||
uitvoeringoptijd_afspraak,
|
||
onderwerp,
|
||
omschrijving,
|
||
opmerking,
|
||
mld_melding_parentkey,
|
||
tevredenheid,
|
||
tevredenheid_opm,
|
||
object_omschrijving,
|
||
geplande_actie,
|
||
opdracht_key,
|
||
opdracht_volgnummer,
|
||
opdracht_type,
|
||
opdracht_status,
|
||
opdracht_duur_gepland,
|
||
opdracht_datum,
|
||
opdracht_einddatum,
|
||
opdracht_plandatum,
|
||
opdracht_verzonden,
|
||
opdracht_geaccepteerd,
|
||
opdracht_afgemeld,
|
||
opdracht_verwerkt, -- nieuw
|
||
opdracht_doorlooptijd,
|
||
opdracht_omschrijving,
|
||
opdracht_opmerking,
|
||
opdracht_uitvoerende,
|
||
opdracht_contract,
|
||
opdracht_behandelaar,
|
||
opdracht_behandelaar_key,
|
||
opdracht_uren,
|
||
opdracht_uren_besteed,
|
||
opdracht_correctie,
|
||
opdracht_materiaal,
|
||
opdracht_uurtarief,
|
||
opdracht_kosten,
|
||
opdracht_kostenplaats,
|
||
opdracht_kostenplaats_oms,
|
||
deelsrtcontrole_key
|
||
)
|
||
AS
|
||
SELECT m.mld_melding_key,
|
||
TO_CHAR (m.mld_melding_key) meldingnummer,
|
||
m.mld_melding_externnr,
|
||
mld_meldbron_omschrijving meldbron,
|
||
m.mld_melding_start_key,
|
||
alg_district_omschrijving,
|
||
alg_locatie_code locatie,
|
||
alg_locatie_omschrijving locatie_omschrijving,
|
||
l.alg_locatie_key,
|
||
m.mld_alg_onroerendgoed_keys,
|
||
og.alg_gebouw_code gebouw,
|
||
og.alg_gebouw_naam gebouw_naam,
|
||
og.alg_gebouw_key,
|
||
og.alg_verdieping_code verdieping,
|
||
og.alg_verdieping_key,
|
||
og.alg_ruimte_nr ruimte,
|
||
og.alg_ruimte_omschrijving ruimte_omschrijving,
|
||
og.alg_ruimte_key,
|
||
m.mld_melding_ordernr melding_ordernr,
|
||
(SELECT ksg.prs_kostensoortgrp_oms
|
||
FROM prs_kostensoortgrp ksg, prs_kostensoort ks
|
||
WHERE ksg.prs_kostensoortgrp_key = ks.prs_kostensoortgrp_key
|
||
AND ks.prs_kostensoort_key =
|
||
(SELECT COALESCE (sm.prs_kostensoort_key,
|
||
disc.prs_kostensoort_key)
|
||
FROM mld_stdmelding sm, mld_discipline disc
|
||
WHERE sm.mld_ins_discipline_key =
|
||
disc.ins_discipline_key
|
||
AND sm.mld_stdmelding_key =
|
||
s.mld_stdmelding_key))
|
||
kostensoortgroep,
|
||
(SELECT ks.prs_kostensoort_oms
|
||
FROM prs_kostensoort ks
|
||
WHERE ks.prs_kostensoort_key =
|
||
(SELECT COALESCE (sm.prs_kostensoort_key,
|
||
disc.prs_kostensoort_key)
|
||
FROM mld_stdmelding sm, mld_discipline disc
|
||
WHERE sm.mld_ins_discipline_key =
|
||
disc.ins_discipline_key
|
||
AND sm.mld_stdmelding_key =
|
||
s.mld_stdmelding_key))
|
||
kostensoort,
|
||
(SELECT k.prs_kostenplaats_nr
|
||
FROM prs_kostenplaats k
|
||
WHERE k.prs_kostenplaats_key = m.prs_kostenplaats_key)
|
||
kostenplaats,
|
||
(SELECT k.prs_kostenplaats_omschrijving
|
||
FROM prs_kostenplaats k
|
||
WHERE k.prs_kostenplaats_key = m.prs_kostenplaats_key)
|
||
kostenplaats_oms,
|
||
(SELECT prs_perslid_naam_full
|
||
FROM prs_v_perslid_fullnames_all pf
|
||
WHERE pf.prs_perslid_key = m.prs_perslid_key)
|
||
melder,
|
||
m.prs_perslid_key,
|
||
(SELECT prs_afdeling_naam
|
||
FROM prs_afdeling afd, prs_perslid pp
|
||
WHERE afd.prs_afdeling_key = pp.prs_afdeling_key
|
||
AND pp.prs_perslid_key = m.prs_perslid_key)
|
||
afdeling,
|
||
(SELECT prs_afdeling_omschrijving
|
||
FROM prs_afdeling afd, prs_perslid pp
|
||
WHERE afd.prs_afdeling_key = pp.prs_afdeling_key
|
||
AND pp.prs_perslid_key = m.prs_perslid_key)
|
||
afdeling_omschrijving,
|
||
(SELECT prs_bedrijf_key
|
||
FROM prs_v_afdeling pva, prs_perslid pp
|
||
WHERE pva.prs_afdeling_key = pp.prs_afdeling_key
|
||
AND pp.prs_perslid_key = m.prs_perslid_key)
|
||
prs_bedrijf_key,
|
||
(SELECT prs_perslid_naam_full
|
||
FROM prs_v_perslid_fullnames_all pf
|
||
WHERE pf.prs_perslid_key =
|
||
mld.getmeldinguser (m.mld_melding_key))
|
||
invoerder,
|
||
fac.gettrackinguserkey ('MLDNEW', m.mld_melding_key),
|
||
(SELECT prs_perslid_naam_full
|
||
FROM prs_v_perslid_fullnames_all
|
||
WHERE prs_perslid_key = m.mld_melding_behandelaar_key),
|
||
m.mld_melding_behandelaar_key,
|
||
sd.ins_srtdiscipline_omschrijving soortmelding,
|
||
md.ins_discipline_key ins_discipline_key,
|
||
ins_srtdiscipline_prefix ins_srtdiscipline_prefix,
|
||
md.ins_discipline_omschrijving productgroep,
|
||
s.mld_stdmelding_omschrijving subproductgroep,
|
||
(SELECT smg.mld_stdmeldinggroep_naam
|
||
FROM mld_stdmeldinggroep smg
|
||
WHERE smg.mld_stdmeldinggroep_key = s.mld_stdmeldinggroep_key)
|
||
subproductgroepgroep,
|
||
(SELECT DECODE (
|
||
COALESCE (par.mld_melding_status,
|
||
m.mld_melding_status),
|
||
4,
|
||
DECODE (o.mld_opdr_key,
|
||
NULL, mld_statuses_omschrijving,
|
||
'Niet opgelost'),
|
||
mld_statuses_omschrijving
|
||
)
|
||
FROM mld_statuses sta
|
||
WHERE sta.mld_statuses_key =
|
||
COALESCE (par.mld_melding_status,
|
||
m.mld_melding_status))
|
||
status,
|
||
COALESCE (
|
||
par.sla_werkdgn,
|
||
aaxx.count_work_days (m.mld_melding_datum,
|
||
m.mld_melding_einddatum)
|
||
)
|
||
sla_werkdgn,
|
||
COALESCE (
|
||
par.plan_uitvoertijd,
|
||
DECODE (m.mld_melding_t_uitvoertijd.eenheid,
|
||
'U', TO_NUMBER (NULL),
|
||
m.mld_melding_t_uitvoertijd.tijdsduur)
|
||
)
|
||
plan_uitvoertijd, -- Altijd in dagen; anders NULL!
|
||
COALESCE (par.mld_melding_datum, m.mld_melding_datum) datum,
|
||
m.mld_melding_datum datumfilter,
|
||
COALESCE (par.mld_melding_einddatum, m.mld_melding_einddatum)
|
||
plan_einddatum,
|
||
DECODE(mld_melding_spoed, 1, 'Kritiek', 2, 'Hoog', 3, 'Normaal', 4, 'Laag', 'Onbekend') prioritieit,
|
||
mld.getmeldingstatusdate (m.mld_melding_key, 3) ingezien,
|
||
mld.getmeldingstatusdate (m.mld_melding_key, 4) geaccepteerd,
|
||
COALESCE (mld.getmeldingstatusdate (m.mld_melding_key, 5),
|
||
mld.getmeldingstatusdate (m.mld_melding_key, 1))
|
||
afgemeld,
|
||
fac.gettrackingdate ('MLDVER', m.mld_melding_key) verwerkt,
|
||
aaxx.count_work_days_incltime (
|
||
m.mld_melding_datum,
|
||
COALESCE (mld.getmeldingstatusdate (m.mld_melding_key, 5),
|
||
mld.getmeldingstatusdate (m.mld_melding_key, 1),
|
||
SYSDATE)
|
||
)
|
||
doorlooptijd_werkdgn,
|
||
CASE
|
||
WHEN mld_melding_acceptdatum_std <
|
||
COALESCE (
|
||
fac.gettrackingdate ('MLDREJ', m.mld_melding_key),
|
||
COALESCE (
|
||
fac.gettrackingdate ('MLDACP',
|
||
m.mld_melding_key),
|
||
SYSDATE
|
||
)
|
||
)
|
||
THEN
|
||
0
|
||
ELSE
|
||
1
|
||
END
|
||
acceptoptijd,
|
||
CASE
|
||
WHEN s.mld_stdmelding_slabewaken = 0
|
||
OR m.mld_melding_indult = 1
|
||
THEN
|
||
NULL
|
||
WHEN fac.gettrackingdate ('MLDREJ', m.mld_melding_key) IS NOT NULL
|
||
THEN
|
||
1
|
||
ELSE
|
||
CASE
|
||
-- vooralsnog WHEN mld.getactualuitvoer(m.mld_melding_key).tijdsduur <
|
||
-- te traag m.mld_melding_t_uitvoertijd.tijdsduur + m.mld_melding_t_respijt.tijdsduur
|
||
WHEN m.mld_melding_einddatum_std >
|
||
COALESCE (
|
||
fac.gettrackingdate ('MLDAFM',
|
||
m.mld_melding_key),
|
||
SYSDATE
|
||
)
|
||
THEN
|
||
1
|
||
ELSE
|
||
0
|
||
END
|
||
END
|
||
uitvoeringoptijd_sla,
|
||
CASE
|
||
WHEN fac.gettrackingdate ('MLDREJ', m.mld_melding_key) IS NOT NULL
|
||
THEN
|
||
1
|
||
ELSE
|
||
CASE
|
||
WHEN m.mld_melding_einddatum >
|
||
COALESCE (
|
||
fac.gettrackingdate ('MLDAFM',
|
||
m.mld_melding_key),
|
||
SYSDATE
|
||
)
|
||
THEN
|
||
1
|
||
ELSE
|
||
0
|
||
END
|
||
END
|
||
uitvoeringoptijd_afspraak,
|
||
m.mld_melding_onderwerp,
|
||
TO_CHAR(SUBSTR(m.mld_melding_omschrijving,1,4000)) omschrijving,
|
||
m.mld_melding_opmerking opmerking,
|
||
m.mld_melding_parentkey,
|
||
m.mld_melding_satisfaction,
|
||
m.mld_melding_satisfaction_op,
|
||
(SELECT MAX (ins_deel_omschrijving)
|
||
FROM ins_deel id, mld_melding_object mo
|
||
WHERE mo.mld_melding_key = m.mld_melding_key
|
||
AND mo.ins_deel_key = id.ins_deel_key)
|
||
object_omschrijving,
|
||
DECODE (
|
||
INSTR (mld_melding_opmerking, 'Automatisch gegenereerd door'),
|
||
1,
|
||
'yes',
|
||
'no')
|
||
geplande_actie,
|
||
o.mld_opdr_key,
|
||
o.mld_opdr_bedrijfopdr_volgnr opdracht_volgnummer,
|
||
(SELECT mld_typeopdr_omschrijving
|
||
FROM mld_typeopdr t
|
||
WHERE o.mld_typeopdr_key = t.mld_typeopdr_key)
|
||
opdracht_type,
|
||
(SELECT REPLACE (mld_statusopdr_omschrijving,
|
||
'Uitgegeven',
|
||
'Toegekend')
|
||
mld_statusopdr_omschrijving
|
||
FROM mld_statusopdr sta
|
||
WHERE sta.mld_statusopdr_key = o.mld_statusopdr_key)
|
||
opdracht_status,
|
||
aaxx.count_work_days (o.mld_opdr_datumbegin,
|
||
o.mld_opdr_einddatum)
|
||
opdracht_duur_gepland,
|
||
o.mld_opdr_datumbegin opdracht_datum,
|
||
o.mld_opdr_einddatum opdracht_einddatum,
|
||
o.mld_opdr_plandatum opdracht_plandatum,
|
||
o.mld_opdr_verzonden opdracht_verzonden,
|
||
fac.gettrackingdate ('ORDACP', o.mld_opdr_key)
|
||
opdracht_geaccepteerd,
|
||
mld.getopdrachtstatusdate (o.mld_opdr_key, 6) opdracht_afgemeld,
|
||
fac.gettrackingdate ('ORDVER', mld_opdr_key) opdracht_verwerkt,
|
||
aaxx.count_work_days (
|
||
o.mld_opdr_datumbegin,
|
||
mld.getopdrachtstatusdate (o.mld_opdr_key, 6)
|
||
)
|
||
opdracht_doorlooptijd,
|
||
o.mld_opdr_omschrijving opdracht_omschrijving,
|
||
o.mld_opdr_opmerking opdracht_opmerking,
|
||
(SELECT naam
|
||
FROM mld_v_uitvoerende u
|
||
WHERE u.mld_uitvoerende_key = o.mld_uitvoerende_keys)
|
||
opdracht_uitvoerende,
|
||
NULL opdracht_contract,
|
||
(SELECT prs_perslid_naam_full
|
||
FROM prs_v_perslid_fullnames_all
|
||
WHERE prs_perslid_key = o.prs_perslid_key)
|
||
behandelaar,
|
||
o.prs_perslid_key opdracht_contactpersoon,
|
||
DECODE (mld_statusopdr_key, 1, 0, 2, 0, -- afgewezen, niet akkoord
|
||
o.mld_opdr_uren)
|
||
opdracht_uren,
|
||
(SELECT COUNT (mld_opdr_uren_besteed)
|
||
FROM mld_opdr_uren ou
|
||
WHERE ou.mld_opdr_key = o.mld_opdr_key
|
||
AND mld_opdr_uren_status IN (3, -- goedgekeurd
|
||
4) -- verwerkt
|
||
)
|
||
uren_besteed,
|
||
DECODE (
|
||
mld_statusopdr_key,
|
||
1,
|
||
0,
|
||
2,
|
||
0,
|
||
o.mld_opdr_kosten
|
||
- o.mld_opdr_materiaal
|
||
- (o.mld_opdr_uren * o.mld_opdr_uurloon)
|
||
)
|
||
opdracht_correctie,
|
||
DECODE (mld_statusopdr_key, 1, 0, 2, 0, o.mld_opdr_materiaal)
|
||
opdracht_materiaal,
|
||
DECODE (mld_statusopdr_key, 1, 0, 2, 0, o.mld_opdr_uurloon)
|
||
opdracht_uurtarief,
|
||
DECODE (mld_statusopdr_key, 1, 0, 2, 0, o.mld_opdr_kosten)
|
||
opdracht_kosten,
|
||
(SELECT k.prs_kostenplaats_nr
|
||
FROM prs_kostenplaats k
|
||
WHERE k.prs_kostenplaats_key = o.prs_kostenplaats_key)
|
||
opdracht_kostenplaats,
|
||
(SELECT k.prs_kostenplaats_omschrijving
|
||
FROM prs_kostenplaats k
|
||
WHERE k.prs_kostenplaats_key = o.prs_kostenplaats_key)
|
||
opdracht_kostenplaats_oms,
|
||
(SELECT min(ins_deelsrtcontrole_key) FROM mld_melding_object mo WHERE mo.mld_melding_key = m.mld_melding_key AND mo.ins_deelsrtcontrole_key IS NOT NULL) -- NOG HERZIEN. In 2023.2 kunnen er meerdere taken aan 1 melding gekoppeld worden. Heyday moet nog aangeven hoe ze dit nu gebruiken en hoe dit aangepast moet worden..
|
||
deelsrtcontrole_key
|
||
FROM mld_melding m,
|
||
mld_meldbron mb,
|
||
mld_stdmelding s,
|
||
alg_locatie l,
|
||
alg_district d,
|
||
alg_v_allonrgoed_gegevens og,
|
||
mld_discipline md,
|
||
ins_srtdiscipline sd,
|
||
mld_opdr o,
|
||
(SELECT mld_melding_key,
|
||
mld_melding_status,
|
||
mld_melding_datum,
|
||
mld_melding_einddatum,
|
||
aaxx.count_work_days (m.mld_melding_datum,
|
||
m.mld_melding_einddatum)
|
||
sla_werkdgn,
|
||
DECODE (m.mld_melding_t_uitvoertijd.eenheid,
|
||
'U', TO_NUMBER (NULL),
|
||
m.mld_melding_t_uitvoertijd.tijdsduur)
|
||
plan_uitvoertijd
|
||
FROM mld_melding m
|
||
WHERE mld_melding_key IN
|
||
(SELECT mld_melding_parentkey
|
||
FROM mld_melding
|
||
WHERE mld_melding_parentkey IS NOT NULL)) par
|
||
WHERE s.mld_stdmelding_key = m.mld_stdmelding_key
|
||
AND m.mld_meldbron_key = mb.mld_meldbron_key
|
||
AND m.fac_activiteit_key IS NULL
|
||
AND m.mld_alg_locatie_key = l.alg_locatie_key(+)
|
||
AND sd.ins_srtdiscipline_key = md.ins_srtdiscipline_key
|
||
AND md.ins_discipline_key = s.mld_ins_discipline_key
|
||
AND l.alg_district_key = d.alg_district_key(+)
|
||
AND m.mld_alg_onroerendgoed_keys = og.alg_onroerendgoed_keys(+)
|
||
AND m.mld_melding_key = o.mld_melding_key(+)
|
||
AND m.mld_melding_parentkey = par.mld_melding_key(+)
|
||
UNION ALL
|
||
SELECT cnt_contract_key,
|
||
cnt_contract_nummer_intern
|
||
|| '.'
|
||
|| COALESCE (cnt_contract_versie, '0'),
|
||
TO_CHAR(NULL),
|
||
TO_CHAR (NULL),
|
||
TO_NUMBER (NULL),
|
||
TO_CHAR (NULL),
|
||
TO_CHAR (NULL),
|
||
TO_CHAR (NULL),
|
||
TO_NUMBER (NULL),
|
||
TO_NUMBER (NULL),
|
||
TO_CHAR (NULL),
|
||
TO_CHAR (NULL),
|
||
TO_NUMBER (NULL),
|
||
TO_CHAR (NULL),
|
||
TO_NUMBER (NULL),
|
||
TO_CHAR (NULL),
|
||
TO_CHAR (NULL),
|
||
TO_NUMBER (NULL),
|
||
TO_CHAR (NULL),
|
||
kg.prs_kostensoortgrp_oms,
|
||
prs_kostensoort_oms,
|
||
kp.prs_kostenplaats_nr,
|
||
prs_kostenplaats_omschrijving,
|
||
prs_perslid_naam_full,
|
||
c.prs_perslid_key_beh,
|
||
prs_afdeling_naam,
|
||
prs_afdeling_omschrijving,
|
||
a.prs_bedrijf_key,
|
||
TO_CHAR (NULL),
|
||
TO_NUMBER (NULL),
|
||
TO_CHAR (NULL),
|
||
TO_NUMBER (NULL),
|
||
'Contract',
|
||
c.ins_discipline_key,
|
||
'C',
|
||
d.ins_discipline_omschrijving,
|
||
TO_CHAR (NULL),
|
||
TO_CHAR (NULL),
|
||
DECODE (cnt_contract_status,
|
||
1, 'Gesloten', DECODE (SIGN (cnt_contract_looptijd_van - SYSDATE),
|
||
1, 'Toekomst',
|
||
-1, DECODE (SIGN (cnt_contract_looptijd_tot - SYSDATE),
|
||
1, 'Actueel',
|
||
-1, 'Verlopen'))),
|
||
TO_NUMBER (NULL),
|
||
TO_NUMBER (NULL), -- Altijd in dagen; anders NULL!
|
||
TO_DATE (NULL),
|
||
TO_DATE (NULL),
|
||
TO_DATE (NULL),
|
||
TO_CHAR (NULL), -- prioriteit
|
||
TO_DATE (NULL),
|
||
TO_DATE (NULL),
|
||
TO_DATE (NULL),
|
||
TO_DATE (NULL), -- datum verwerkt
|
||
TO_NUMBER (NULL),
|
||
TO_NUMBER (NULL), -- acceptoptijd
|
||
TO_NUMBER (NULL), -- uitvoeringoptijd_sla
|
||
TO_NUMBER (NULL), -- uitvoeringoptijd_afspraak
|
||
TO_CHAR (NULL), -- Onderwerp
|
||
c.cnt_contract_document,
|
||
TO_CHAR (NULL),
|
||
TO_NUMBER (NULL),
|
||
TO_NUMBER (NULL), -- tevredenheid
|
||
TO_CHAR (NULL), -- Opmering bij tevredenheid
|
||
TO_CHAR (NULL), -- object omschrijving
|
||
TO_CHAR (NULL), -- geplande actie
|
||
TO_NUMBER (NULL),
|
||
1,
|
||
'Contract Order',
|
||
DECODE (SIGN (cnt_contract_looptijd_tot - SYSDATE),
|
||
1,
|
||
'Uitgegeven',
|
||
-1,
|
||
'Afgemeld'),
|
||
TO_NUMBER (NULL),
|
||
TO_DATE (NULL),
|
||
TO_DATE (NULL),
|
||
TO_DATE (NULL),
|
||
TO_DATE (NULL),
|
||
TO_DATE (NULL),
|
||
TO_DATE (NULL),
|
||
TO_DATE (NULL), -- opdracht verwerkt
|
||
TO_NUMBER (NULL),
|
||
TO_CHAR (NULL),
|
||
TO_CHAR (NULL),
|
||
b.prs_bedrijf_naam,
|
||
TO_NUMBER (NULL),
|
||
TO_CHAR (NULL),
|
||
TO_NUMBER (NULL),
|
||
TO_NUMBER (NULL),
|
||
TO_NUMBER (NULL),
|
||
TO_NUMBER (NULL),
|
||
TO_NUMBER (NULL),
|
||
c.cnt_contract_uurloon,
|
||
c.cnt_contract_kosten,
|
||
kp.prs_kostenplaats_nr,
|
||
prs_kostenplaats_omschrijving,
|
||
NULL deelsrtcontrole_key
|
||
FROM cnt_contract c,
|
||
cnt_disc_params cd,
|
||
ins_tab_discipline d,
|
||
prs_kostensoort ks,
|
||
prs_kostensoortgrp kg,
|
||
prs_kostenplaats kp,
|
||
prs_v_perslid_fullnames_all pf,
|
||
prs_v_afdeling a,
|
||
prs_bedrijf b
|
||
WHERE c.ins_discipline_key = d.ins_discipline_key
|
||
AND d.ins_discipline_key = cd.cnt_ins_discipline_key
|
||
AND cd.cnt_srtcontract_type <> 6 -- Mantelcontracten worden (vooralsnog) uitgesloten AALB#28095
|
||
AND d.prs_kostensoort_key = ks.prs_kostensoort_key(+)
|
||
AND ks.prs_kostensoortgrp_key = kg.prs_kostensoortgrp_key(+)
|
||
AND c.prs_kostenplaats_key = kp.prs_kostenplaats_key(+)
|
||
AND c.prs_perslid_key_beh = pf.prs_perslid_key
|
||
AND c.prs_afdeling_key_eig = a.prs_afdeling_key(+)
|
||
AND c.cnt_prs_bedrijf_key = b.prs_bedrijf_key
|
||
AND c.cnt_contract_verwijder IS NULL
|
||
UNION ALL
|
||
SELECT bes_bestelling_key,
|
||
TO_CHAR (bestelaanvraagnr),
|
||
TO_CHAR(NULL),
|
||
TO_CHAR (NULL),
|
||
TO_NUMBER (NULL),
|
||
alg_district_omschrijving,
|
||
alg_locatie_code,
|
||
alg_locatie_omschrijving,
|
||
alg_locatie_key,
|
||
alg_gebouw_key,
|
||
alg_gebouw_code,
|
||
alg_gebouw_naam,
|
||
alg_gebouw_key,
|
||
TO_CHAR (NULL), -- verdieping
|
||
TO_NUMBER (NULL),
|
||
TO_CHAR (NULL), -- ruimte_nr
|
||
TO_CHAR (NULL), -- ruimte_omschrijving
|
||
TO_NUMBER (NULL),
|
||
bes_bestelling_ordernr,
|
||
kostensoortgroep,
|
||
kostensoort,
|
||
kpn,
|
||
kpn_omschrijving,
|
||
besteller,
|
||
prs_perslid_key_best,
|
||
afdeling_code,
|
||
afdeling_omschrijving,
|
||
prs_bedrijf_key,
|
||
invoerder,
|
||
invoerder_key,
|
||
TO_CHAR (NULL), -- Naam van de behandelaar
|
||
TO_NUMBER (NULL), -- Key van de behandelaar
|
||
'Bestelling',
|
||
ins_discipline_key,
|
||
'BE',
|
||
ins_discipline_omschrijving,
|
||
TO_CHAR (NULL), -- stdmelding
|
||
kostensoortgroep,
|
||
status,
|
||
sla_tijd,
|
||
sla_tijd, -- Altijd in dagen; anders NULL!
|
||
besteldatum,
|
||
besteldatum,
|
||
TO_DATE (NULL),
|
||
TO_CHAR (NULL), -- prioriteit
|
||
TO_DATE (NULL), -- datum ingezien
|
||
acceptatie_datum,
|
||
ontvangen_datum,
|
||
TO_DATE (NULL), -- datum verwerkt
|
||
doorlooptijd_werkdgn,
|
||
TO_NUMBER (NULL), -- acceptoptijd
|
||
TO_NUMBER (NULL), -- uitvoeringoptijd_sla
|
||
TO_NUMBER (NULL), -- uitvoeringoptijd_afspraak
|
||
TO_CHAR (NULL), -- onderwerp
|
||
omschrijving,
|
||
TO_CHAR (NULL), -- opmerking
|
||
TO_NUMBER (NULL),
|
||
bes_bestelling_satisfaction, -- tevredenheid
|
||
bes_bestelling_satisfaction_op, -- opmerking bij tevredenheid
|
||
TO_CHAR (NULL), -- object omschrijving
|
||
TO_CHAR (NULL), -- geplande actie
|
||
bes_bestelopdr_key,
|
||
opdr_volgnr,
|
||
'Purchase Order',
|
||
opdr_status,
|
||
DECODE (opdr_volgnr, NULL, TO_NUMBER (NULL), sla_tijd),
|
||
opdr_datum, -- opdr datum
|
||
TO_DATE (NULL), -- opdr_einddatum
|
||
TO_DATE (NULL), -- opdr plandatum
|
||
verzonden_datum,
|
||
TO_DATE (NULL), -- opdr geaccepteerd
|
||
opdr_ontv_datum,
|
||
TO_DATE (NULL), -- datum opdracht verwerkt
|
||
DECODE (opdr_volgnr,
|
||
NULL, TO_NUMBER (NULL),
|
||
doorlooptijd_werkdgn),
|
||
opdr_omschrijving,
|
||
bes_bestelopdr_opmerking,
|
||
leverancier,
|
||
TO_NUMBER (NULL), -- contract
|
||
TO_CHAR (NULL), -- behandelaar
|
||
TO_NUMBER (NULL), -- behandelaar_key
|
||
TO_NUMBER (NULL), -- uren
|
||
TO_NUMBER (NULL), -- uren_besteed
|
||
TO_NUMBER (NULL), -- correctie
|
||
TO_NUMBER (NULL), -- materiaal
|
||
TO_NUMBER (NULL), -- uurtarief
|
||
-- Indien de laatste factuur ontvangen is en de status van de factuur is goedgekeurd
|
||
-- of verwerkt zal het bedrag uit de factuur gebruikt worden.
|
||
COALESCE (
|
||
(SELECT DECODE (SUM (laatste_factuur),
|
||
0, TO_NUMBER (NULL),
|
||
SUM (fin_factuurregel_totaal))
|
||
FROM aaxx_v_factuur_gegevens g
|
||
WHERE g.bes_bestelopdr_key = b.bes_bestelopdr_key
|
||
AND g.fin_factuur_statuses_key >= 6),
|
||
opdr_kosten
|
||
)
|
||
opdr_kosten,
|
||
DECODE (opdr_volgnr, NULL, TO_CHAR (NULL), kpn),
|
||
DECODE (opdr_volgnr, NULL, TO_CHAR (NULL), kpn_omschrijving),
|
||
NULL deelsrtcontrole_key
|
||
FROM (SELECT b.bes_bestelling_key bes_bestelling_key,
|
||
b.bes_bestelling_key bestelaanvraagnr,
|
||
di.alg_district_omschrijving,
|
||
l.alg_locatie_code,
|
||
l.alg_locatie_omschrijving,
|
||
l.alg_locatie_key,
|
||
g.alg_gebouw_code,
|
||
g.alg_gebouw_naam,
|
||
g.alg_gebouw_key,
|
||
b.bes_bestelling_ordernr,
|
||
b.bes_bestelling_datum besteldatum,
|
||
b.bes_bestelling_satisfaction,
|
||
b.bes_bestelling_satisfaction_op,
|
||
(SELECT prs_perslid_naam_full
|
||
FROM prs_v_perslid_fullnames_all pf
|
||
WHERE pf.prs_perslid_key = p.prs_perslid_key)
|
||
besteller,
|
||
p.prs_perslid_key prs_perslid_key_best,
|
||
(SELECT MAX (prs_perslid_naam_full)
|
||
FROM prs_v_perslid_fullnames_all pf
|
||
WHERE pf.prs_perslid_key =
|
||
COALESCE (
|
||
fac.gettrackinguserkey (
|
||
'BESNEW',
|
||
b.bes_bestelling_key
|
||
),
|
||
fac.gettrackinguserkey (
|
||
'BESAP2',
|
||
b.bes_bestelling_key
|
||
)
|
||
))
|
||
invoerder,
|
||
COALESCE (
|
||
fac.gettrackinguserkey ('BESNEW',
|
||
b.bes_bestelling_key),
|
||
fac.gettrackinguserkey ('BESAP2',
|
||
b.bes_bestelling_key)
|
||
)
|
||
invoerder_key,
|
||
fac.gettrackingdate ('BESACP', b.bes_bestelling_key)
|
||
acceptatie_datum,
|
||
fac.gettrackingdate ('BESOTV', b.bes_bestelling_key)
|
||
ontvangen_datum,
|
||
aaxx_bestelling_items (b.bes_bestelling_key)
|
||
omschrijving,
|
||
(SELECT ksg.prs_kostensoortgrp_oms
|
||
FROM prs_kostensoortgrp ksg, prs_kostensoort ks
|
||
WHERE ksg.prs_kostensoortgrp_key =
|
||
ks.prs_kostensoortgrp_key
|
||
AND ks.prs_kostensoort_key =
|
||
d.prs_kostensoort_key)
|
||
kostensoortgroep,
|
||
(SELECT ks.prs_kostensoort_oms
|
||
FROM prs_kostensoort ks
|
||
WHERE ks.prs_kostensoort_key =
|
||
d.prs_kostensoort_key)
|
||
kostensoort,
|
||
k.prs_kostenplaats_nr kpn,
|
||
k.prs_kostenplaats_omschrijving kpn_omschrijving,
|
||
a.prs_afdeling_naam afdeling_code,
|
||
a.prs_afdeling_omschrijving afdeling_omschrijving,
|
||
d.ins_discipline_key,
|
||
d.ins_discipline_omschrijving,
|
||
b.bes_bestelling_leverdatum afleverdatum,
|
||
aaxx.count_work_days (
|
||
b.bes_bestelling_datum,
|
||
NVL (
|
||
fac.gettrackingdate ('BESOTV',
|
||
b.bes_bestelling_key),
|
||
SYSDATE
|
||
)
|
||
)
|
||
doorlooptijd_werkdgn,
|
||
NVL (
|
||
(SELECT bdp.bes_disc_params_leverdagen
|
||
FROM bes_disc_params bdp
|
||
WHERE d.ins_discipline_key =
|
||
bdp.bes_ins_discipline_key),
|
||
0
|
||
)
|
||
sla_tijd,
|
||
(SELECT bes_bestellingstatuses_omschr
|
||
FROM bes_bestellingstatuses bs
|
||
WHERE bs.bes_bestellingstatuses_key =
|
||
b.bes_bestelling_status)
|
||
status,
|
||
(SELECT b.prs_bedrijf_naam
|
||
FROM prs_bedrijf b
|
||
WHERE b.prs_bedrijf_key = bo.prs_bedrijf_key)
|
||
leverancier,
|
||
(SELECT bes_bestelopdrstatuses_omschr
|
||
FROM bes_bestelopdrstatuses bs
|
||
WHERE bs.bes_bestelopdrstatuses_key =
|
||
bo.bes_bestelopdr_status)
|
||
opdr_status,
|
||
bo.bes_bestelopdr_key,
|
||
fac.safe_to_number(SUBSTR (
|
||
bo.bes_bestelopdr_id,
|
||
INSTR (bo.bes_bestelopdr_id, '/')
|
||
+ 1
|
||
))
|
||
opdr_volgnr,
|
||
bo.bes_bestelopdr_datum opdr_datum,
|
||
fac.gettrackingdate ('BES2SN', bo.bes_bestelopdr_key)
|
||
verzonden_datum,
|
||
fac.gettrackingdate ('BES2AF', bo.bes_bestelopdr_key)
|
||
opdr_ontv_datum,
|
||
bes.bestelopdr_tooltip (bo.bes_bestelopdr_key)
|
||
opdr_omschrijving,
|
||
bes_bestelopdr_opmerking,
|
||
DECODE (
|
||
bes_bestelopdr_status,
|
||
8,
|
||
0, -- geannuleerd
|
||
(SELECT SUM(bes_bestelopdr_item_aantal
|
||
* COALESCE (
|
||
bes_bestelopdr_item_inkprijs,
|
||
bes_bestelopdr_item_prijs
|
||
))
|
||
FROM bes_bestelopdr_item boi
|
||
WHERE boi.bes_bestelopdr_key =
|
||
bo.bes_bestelopdr_key)
|
||
)
|
||
opdr_kosten,
|
||
bo.prs_bedrijf_key
|
||
FROM bes_bestelling b,
|
||
prs_perslid p,
|
||
prs_kostenplaats k,
|
||
prs_afdeling a,
|
||
mld_adres ma,
|
||
bes_bestelopdr bo,
|
||
ins_tab_discipline d,
|
||
alg_gebouw g,
|
||
alg_locatie l,
|
||
alg_district di,
|
||
(SELECT DISTINCT
|
||
bes_bestelling_key, bes_bestelopdr_key
|
||
FROM bes_bestelling_item bi,
|
||
bes_bestelopdr_item boi
|
||
WHERE bi.bes_bestelopdr_item_key =
|
||
boi.bes_bestelopdr_item_key) bes_opdr,
|
||
(SELECT DISTINCT
|
||
bes_bestelling_key, ins_discipline_key
|
||
FROM bes_bestelling_item bi,
|
||
bes_srtdeel sd,
|
||
bes_srtgroep sg
|
||
WHERE bi.bes_srtdeel_key = sd.bes_srtdeel_key
|
||
AND sd.bes_srtgroep_key = sg.bes_srtgroep_key)
|
||
cat,
|
||
( SELECT mld_adres_key, MAX (alg_gebouw_key) alg_gebouw_key
|
||
FROM (SELECT ma.mld_adres_key,
|
||
DECODE (
|
||
aaxx_get_user,
|
||
'AH',
|
||
DECODE (ma.mld_adres_key,
|
||
101, 280,
|
||
alg_gebouw_key),
|
||
alg_gebouw_key)
|
||
alg_gebouw_key
|
||
FROM alg_gebouw g FULL OUTER JOIN mld_adres ma
|
||
ON g.mld_adres_key = ma.mld_adres_key)
|
||
WHERE alg_gebouw_key IS NOT NULL
|
||
GROUP BY mld_adres_key) adr_geb
|
||
WHERE b.prs_perslid_key = p.prs_perslid_key
|
||
AND b.prs_kostenplaats_key = k.prs_kostenplaats_key
|
||
AND p.prs_afdeling_key = a.prs_afdeling_key
|
||
AND b.mld_adres_key_lev = ma.mld_adres_key
|
||
AND b.bes_bestelling_key =
|
||
bes_opdr.bes_bestelling_key(+)
|
||
AND bes_opdr.bes_bestelopdr_key =
|
||
bo.bes_bestelopdr_key(+)
|
||
AND ma.alg_locatie_key = l.alg_locatie_key(+)
|
||
AND l.alg_district_key = di.alg_district_key(+)
|
||
AND b.bes_bestelling_key = cat.bes_bestelling_key
|
||
AND cat.ins_discipline_key = d.ins_discipline_key
|
||
AND ma.mld_adres_key = adr_geb.mld_adres_key(+)
|
||
AND adr_geb.alg_gebouw_key = g.alg_gebouw_key(+)) b;
|
||
|
||
-------------------------------------------------------------------------------
|
||
-- EXPORTFUNCTIE - DWH_MLD_KENM_MLD
|
||
-------------------------------------------------------------------------------
|
||
CREATE OR REPLACE VIEW aaxx_v_dwh_kenmerk_melding
|
||
(
|
||
mld_melding_id,
|
||
mld_kenmerk_omschrijving,
|
||
mld_kenmerk_waarde
|
||
)
|
||
AS
|
||
SELECT mld_melding_key,
|
||
sk.mld_srtkenmerk_omschrijving,
|
||
aaxx_get_kenmerkwaarde (sk.mld_srtkenmerk_kenmerktype,
|
||
sk.fac_kenmerkdomein_key,
|
||
km.mld_kenmerkmelding_waarde)
|
||
FROM mld_kenmerk k, mld_srtkenmerk sk, mld_kenmerkmelding km
|
||
WHERE k.mld_srtkenmerk_key = sk.mld_srtkenmerk_key
|
||
AND km.mld_kenmerk_key = k.mld_kenmerk_key;
|
||
|
||
-------------------------------------------------------------------------------
|
||
-- EXPORTFUNCTIE - DWH_MLD_KENM_OPD
|
||
-------------------------------------------------------------------------------
|
||
CREATE OR REPLACE VIEW aaxx_v_dwh_kenmerk_opdracht
|
||
(
|
||
mld_opdr_id,
|
||
mld_kenmerk_omschrijving,
|
||
mld_kenmerk_waarde
|
||
)
|
||
AS
|
||
SELECT mld_melding_key || '/' || mld_opdr_bedrijfopdr_volgnr,
|
||
sk.mld_srtkenmerk_omschrijving,
|
||
aaxx_get_kenmerkwaarde (sk.mld_srtkenmerk_kenmerktype,
|
||
sk.fac_kenmerkdomein_key,
|
||
ko.mld_kenmerkopdr_waarde)
|
||
FROM mld_kenmerk k,
|
||
mld_srtkenmerk sk,
|
||
mld_kenmerkopdr ko,
|
||
mld_opdr o
|
||
WHERE k.mld_srtkenmerk_key = sk.mld_srtkenmerk_key
|
||
AND ko.mld_kenmerk_key = k.mld_kenmerk_key
|
||
AND ko.mld_opdr_key = o.mld_opdr_key;
|
||
|
||
|
||
-------------------------------------------------------------------------------
|
||
-- EXPORTFUNCTIE - DWH_RES_ALGEMEEN
|
||
-------------------------------------------------------------------------------
|
||
CREATE OR REPLACE VIEW aaxx_v_dwh_res_reservering
|
||
(
|
||
res_reservering_key,
|
||
res_rsv_ruimte_key,
|
||
nummer,
|
||
res_omschrijving,
|
||
res_opmerking,
|
||
res_ruimte_naam,
|
||
invoerdatum,
|
||
datum,
|
||
gastheer,
|
||
gastheer_key,
|
||
contact,
|
||
contact_key,
|
||
invoerder,
|
||
invoerder_key,
|
||
kostensoortgroep,
|
||
kostensoort,
|
||
kpn,
|
||
kpn_omschrijving,
|
||
prs_bedrijf_key,
|
||
afdeling_code,
|
||
afdeling_omschrijving,
|
||
district_omschrijving,
|
||
alg_locatie_key,
|
||
locatie,
|
||
locatie_omschrijving,
|
||
gebouw,
|
||
gebouw_omschrijving,
|
||
verdieping,
|
||
ruimte,
|
||
ruimte_key,
|
||
opstelling,
|
||
no_show,
|
||
shown_bezoekers,
|
||
mandaat,
|
||
personeelsnr,
|
||
werkplek,
|
||
ins_discipline_key,
|
||
catalogus_ins_discipline_key,
|
||
catalogus,
|
||
reserveerbare_ruimte,
|
||
bezoekers,
|
||
van,
|
||
tot,
|
||
duur,
|
||
status,
|
||
status_fo,
|
||
activiteit,
|
||
kosten_ruimte,
|
||
tevredenheid,
|
||
tevredenheid_opm,
|
||
voorziening_ins_discipline_key,
|
||
voorziening_catalogus,
|
||
voorziening_product,
|
||
voorziening_totaalprijs,
|
||
voorziening_van,
|
||
voorziening_tot,
|
||
voorziening_aantal,
|
||
voorziening_prijs,
|
||
voorziening_inkoopprijs,
|
||
voorziening_btw,
|
||
voorziening_afgemeld,
|
||
mld_opdr_key,
|
||
mld_opdr_id,
|
||
reservering_verwijder
|
||
)
|
||
AS
|
||
SELECT res.res_reservering_key,
|
||
rrr.res_rsv_ruimte_key,
|
||
res.res_reservering_key || '/' || rrr.res_rsv_ruimte_volgnr,
|
||
rrr.res_rsv_ruimte_omschrijving,
|
||
rrr.res_rsv_ruimte_opmerking,
|
||
rr.res_ruimte_nr,
|
||
COALESCE (rrr.res_rsv_ruimte_aanmaak, voorz.van),
|
||
COALESCE (rrr.res_rsv_ruimte_van, voorz.van),
|
||
(SELECT prs_perslid_naam_full
|
||
FROM prs_v_perslid_fullnames_all pf
|
||
WHERE pf.prs_perslid_key = rrr.res_rsv_ruimte_host_key),
|
||
rrr.res_rsv_ruimte_host_key,
|
||
(SELECT prs_perslid_naam_full
|
||
FROM prs_v_perslid_fullnames_all pf
|
||
WHERE pf.prs_perslid_key = rrr.res_rsv_ruimte_contact_key),
|
||
rrr.res_rsv_ruimte_contact_key,
|
||
(SELECT prs_perslid_naam_full
|
||
FROM fac_tracking t,
|
||
fac_srtnotificatie sn,
|
||
prs_v_perslid_fullnames_all pf
|
||
WHERE sn.fac_srtnotificatie_code = 'RESNEW'
|
||
AND sn.fac_srtnotificatie_key = t.fac_srtnotificatie_key
|
||
AND t.prs_perslid_key = pf.prs_perslid_key
|
||
AND fac_tracking_refkey = rrr.res_rsv_ruimte_key),
|
||
(SELECT prs_perslid_key
|
||
FROM fac_tracking t, fac_srtnotificatie sn
|
||
WHERE sn.fac_srtnotificatie_code = 'RESNEW'
|
||
AND sn.fac_srtnotificatie_key = t.fac_srtnotificatie_key
|
||
AND fac_tracking_refkey = rrr.res_rsv_ruimte_key),
|
||
(SELECT ksg.prs_kostensoortgrp_oms
|
||
FROM prs_kostensoortgrp ksg, prs_kostensoort ks
|
||
WHERE ksg.prs_kostensoortgrp_key = ks.prs_kostensoortgrp_key
|
||
AND ks.prs_kostensoort_key =
|
||
(SELECT disc.prs_kostensoort_key
|
||
FROM res_discipline disc
|
||
WHERE disc.ins_discipline_key =
|
||
COALESCE (
|
||
voorz.ins_discipline_key,
|
||
(SELECT ins_discipline_key
|
||
FROM ins_tab_discipline d,
|
||
res_ruimte_opstelling ro,
|
||
res_ruimte rr
|
||
WHERE rrr.res_ruimte_opstel_key =
|
||
ro.res_ruimte_opstel_key
|
||
AND ro.res_ruimte_key =
|
||
rr.res_ruimte_key
|
||
AND rr.res_discipline_key =
|
||
d.ins_discipline_key))))
|
||
kostensoortgroep,
|
||
(SELECT ks.prs_kostensoort_oms
|
||
FROM prs_kostensoort ks
|
||
WHERE ks.prs_kostensoort_key =
|
||
(SELECT disc.prs_kostensoort_key
|
||
FROM res_discipline disc
|
||
WHERE disc.ins_discipline_key =
|
||
COALESCE (
|
||
voorz.ins_discipline_key,
|
||
(SELECT ins_discipline_key
|
||
FROM ins_tab_discipline d,
|
||
res_ruimte_opstelling ro,
|
||
res_ruimte rr
|
||
WHERE rrr.res_ruimte_opstel_key =
|
||
ro.res_ruimte_opstel_key
|
||
AND ro.res_ruimte_key =
|
||
rr.res_ruimte_key
|
||
AND rr.res_discipline_key =
|
||
d.ins_discipline_key))))
|
||
kostensoort,
|
||
k.prs_kostenplaats_nr,
|
||
k.prs_kostenplaats_omschrijving,
|
||
(SELECT prs_bedrijf_key
|
||
FROM prs_v_afdeling pva
|
||
WHERE pva.prs_afdeling_key = a.prs_afdeling_key),
|
||
a.prs_afdeling_naam,
|
||
a.prs_afdeling_omschrijving,
|
||
(SELECT d.alg_district_omschrijving
|
||
FROM alg_district d,
|
||
alg_locatie l,
|
||
alg_gebouw g,
|
||
alg_verdieping v,
|
||
alg_ruimte r
|
||
WHERE d.alg_district_key = l.alg_district_key
|
||
AND l.alg_locatie_key = g.alg_locatie_key
|
||
AND g.alg_gebouw_key = v.alg_gebouw_key
|
||
AND v.alg_verdieping_key = r.alg_verdieping_key
|
||
AND r.alg_ruimte_key = r2a.alg_ruimte_key),
|
||
(SELECT l.alg_locatie_key
|
||
FROM alg_locatie l,
|
||
alg_gebouw g,
|
||
alg_verdieping v,
|
||
alg_ruimte r
|
||
WHERE l.alg_locatie_key = g.alg_locatie_key
|
||
AND g.alg_gebouw_key = v.alg_gebouw_key
|
||
AND v.alg_verdieping_key = r.alg_verdieping_key
|
||
AND r.alg_ruimte_key = r2a.alg_ruimte_key),
|
||
(SELECT alg_locatie_code
|
||
FROM alg_locatie l,
|
||
alg_gebouw g,
|
||
alg_verdieping v,
|
||
alg_ruimte r
|
||
WHERE l.alg_locatie_key = g.alg_locatie_key
|
||
AND g.alg_gebouw_key = v.alg_gebouw_key
|
||
AND v.alg_verdieping_key = r.alg_verdieping_key
|
||
AND r.alg_ruimte_key = r2a.alg_ruimte_key),
|
||
(SELECT alg_locatie_omschrijving
|
||
FROM alg_locatie l,
|
||
alg_gebouw g,
|
||
alg_verdieping v,
|
||
alg_ruimte r
|
||
WHERE l.alg_locatie_key = g.alg_locatie_key
|
||
AND g.alg_gebouw_key = v.alg_gebouw_key
|
||
AND v.alg_verdieping_key = r.alg_verdieping_key
|
||
AND r.alg_ruimte_key = r2a.alg_ruimte_key),
|
||
(SELECT alg_gebouw_code
|
||
FROM alg_gebouw g, alg_verdieping v, alg_ruimte r
|
||
WHERE g.alg_gebouw_key = v.alg_gebouw_key
|
||
AND v.alg_verdieping_key = r.alg_verdieping_key
|
||
AND r.alg_ruimte_key = r2a.alg_ruimte_key),
|
||
(SELECT alg_gebouw_naam
|
||
FROM alg_gebouw g, alg_verdieping v, alg_ruimte r
|
||
WHERE g.alg_gebouw_key = v.alg_gebouw_key
|
||
AND v.alg_verdieping_key = r.alg_verdieping_key
|
||
AND r.alg_ruimte_key = r2a.alg_ruimte_key),
|
||
(SELECT alg_verdieping_code
|
||
FROM alg_verdieping v, alg_ruimte r
|
||
WHERE v.alg_verdieping_key = r.alg_verdieping_key
|
||
AND r.alg_ruimte_key = r2a.alg_ruimte_key),
|
||
(SELECT alg_ruimte_nr
|
||
FROM alg_ruimte r
|
||
WHERE r.alg_ruimte_key = r2a.alg_ruimte_key),
|
||
r2a.alg_ruimte_key,
|
||
r2a.opstelling,
|
||
rrr.res_rsv_ruimte_noshow,
|
||
rrr.res_rsv_ruimte_bezoekers_shown,
|
||
NVL ( (SELECT pr.fac_profiel_limiet
|
||
FROM fac_profiel pr
|
||
WHERE p.fac_profiel_key = pr.fac_profiel_key), 0),
|
||
prs_perslid_nr,
|
||
wp2.prs_werkplek_aanduiding,
|
||
COALESCE (
|
||
voorz.ins_discipline_key,
|
||
(SELECT ins_discipline_key
|
||
FROM ins_tab_discipline d,
|
||
res_ruimte_opstelling ro,
|
||
res_ruimte rr
|
||
WHERE rrr.res_ruimte_opstel_key = ro.res_ruimte_opstel_key
|
||
AND ro.res_ruimte_key = rr.res_ruimte_key
|
||
AND rr.res_discipline_key = d.ins_discipline_key)),
|
||
(SELECT ins_discipline_key
|
||
FROM ins_tab_discipline d,
|
||
res_ruimte_opstelling ro,
|
||
res_ruimte rr
|
||
WHERE rrr.res_ruimte_opstel_key = ro.res_ruimte_opstel_key
|
||
AND ro.res_ruimte_key = rr.res_ruimte_key
|
||
AND rr.res_discipline_key = d.ins_discipline_key),
|
||
(SELECT ins_discipline_omschrijving
|
||
FROM ins_tab_discipline d,
|
||
res_ruimte_opstelling ro,
|
||
res_ruimte rr
|
||
WHERE rrr.res_ruimte_opstel_key = ro.res_ruimte_opstel_key
|
||
AND ro.res_ruimte_key = rr.res_ruimte_key
|
||
AND rr.res_discipline_key = d.ins_discipline_key),
|
||
DECODE (rrr.alg_ruimte_key, NULL, 'Ja', 'Nee'),
|
||
rrr.res_rsv_ruimte_bezoekers,
|
||
rrr.res_rsv_ruimte_van,
|
||
rrr.res_rsv_ruimte_tot,
|
||
NVL ( (rrr.res_rsv_ruimte_tot - rrr.res_rsv_ruimte_van) * 24, 0),
|
||
(SELECT res_status_bo_omschrijving
|
||
FROM res_status_bo rs
|
||
WHERE rs.res_status_bo_key =
|
||
COALESCE (voorz.res_status_bo_key,
|
||
rrr.res_status_bo_key)),
|
||
(SELECT res_status_fo_omschrijving
|
||
FROM res_status_fo rs2
|
||
WHERE rs2.res_status_fo_key = rrr.res_status_fo_key
|
||
),
|
||
(SELECT res_activiteit_omschrijving
|
||
FROM res_activiteit ra
|
||
WHERE ra.res_activiteit_key = rrr.res_activiteit_key),
|
||
(SELECT res.getruimteprijs(rrr.res_rsv_ruimte_key) from dual),
|
||
rrr.res_rsv_ruimte_satisfaction,
|
||
rrr.res_rsv_ruimte_satisfaction_op,
|
||
voorz.ins_discipline_key,
|
||
voorz.catalogus,
|
||
voorz.product,
|
||
voorz.totaalprijs,
|
||
voorz.van,
|
||
voorz.tot,
|
||
voorz.aantal,
|
||
voorz.prijs,
|
||
voorz.inkoopprijs,
|
||
voorz.btw,
|
||
voorz.afgemeld,
|
||
o.mld_opdr_key,
|
||
o.mld_melding_key || '/' || o.mld_opdr_bedrijfopdr_volgnr,
|
||
res_rsv_ruimte_verwijder
|
||
FROM res_rsv_ruimte rrr,
|
||
res_reservering res,
|
||
prs_kostenplaats k,
|
||
prs_perslid p,
|
||
prs_afdeling a,
|
||
res_ruimte_opstelling rro,
|
||
res_ruimte rr,
|
||
mld_opdr o,
|
||
( SELECT res_rsv_ruimte_key,
|
||
MAX (o.res_opstelling_omschrijving) opstelling,
|
||
MAX (ra.alg_ruimte_key) alg_ruimte_key
|
||
FROM res_rsv_ruimte r,
|
||
res_ruimte_opstelling ro,
|
||
res_opstelling o,
|
||
res_ruimte rr,
|
||
res_alg_ruimte ra
|
||
WHERE r.res_ruimte_opstel_key = ro.res_ruimte_opstel_key
|
||
AND ro.res_ruimte_key = rr.res_ruimte_key
|
||
AND ro.res_opstelling_key = o.res_opstelling_key
|
||
AND rr.res_ruimte_key = ra.res_ruimte_key
|
||
AND res_alg_ruimte_verwijder IS NULL
|
||
GROUP BY res_rsv_ruimte_key
|
||
UNION ALL
|
||
SELECT res_rsv_ruimte_key, '' opstelling, alg_ruimte_key
|
||
FROM res_rsv_ruimte
|
||
WHERE alg_ruimte_key IS NOT NULL) r2a,
|
||
(SELECT rrd.res_rsv_ruimte_key res_rsv_ruimte_key,
|
||
d.ins_deel_omschrijving product,
|
||
rrd.res_status_bo_key,
|
||
DECODE (
|
||
rd.res_deel_prijs_vast,
|
||
1,
|
||
NVL (rrd.res_rsv_deel_prijs, rd.res_deel_prijs),
|
||
(rrd.res_rsv_deel_tot - rrd.res_rsv_deel_van)
|
||
* 24
|
||
* NVL (rrd.res_rsv_deel_prijs, rd.res_deel_prijs))
|
||
totaalprijs,
|
||
rrd.res_rsv_deel_van van,
|
||
rrd.res_rsv_deel_tot tot,
|
||
(rrd.res_rsv_deel_tot - rrd.res_rsv_deel_van) * 24 aantal,
|
||
NVL (rrd.res_rsv_deel_prijs, rd.res_deel_prijs) prijs,
|
||
NULL inkoopprijs,
|
||
NULL btw,
|
||
res_rsv_deel_afgemeld afgemeld,
|
||
c.ins_discipline_key ins_discipline_key,
|
||
c.ins_discipline_omschrijving catalogus,
|
||
TO_NUMBER(NULL) mld_opdr_key
|
||
FROM res_rsv_deel rrd,
|
||
res_deel rd,
|
||
ins_deel d,
|
||
ins_tab_discipline c
|
||
WHERE rrd.res_deel_key = rd.res_deel_key
|
||
AND d.ins_deel_key = rd.res_ins_deel_key
|
||
AND rrd.res_rsv_ruimte_key IS NOT NULL
|
||
AND c.ins_discipline_key = rd.res_discipline_key
|
||
UNION ALL
|
||
SELECT rra.res_rsv_ruimte_key res_rsv_ruimte_key,
|
||
ra.res_artikel_omschrijving product,
|
||
rra.res_status_bo_key,
|
||
NVL (rra.res_rsv_artikel_prijs,
|
||
rra.res_rsv_artikel_aantal * res_artikel_prijs)
|
||
totaalprijs,
|
||
rra.res_rsv_artikel_levering van,
|
||
NULL tot,
|
||
rra.res_rsv_artikel_aantal aantal,
|
||
NVL (
|
||
rra.res_rsv_artikel_prijs / rra.res_rsv_artikel_aantal,
|
||
res_artikel_prijs)
|
||
prijs,
|
||
res_artikel_inkoopprijs inkoopprijs,
|
||
res_artikel_btw btw,
|
||
res_rsv_artikel_afgemeld afgemeld,
|
||
c.ins_discipline_key ins_discipline_key,
|
||
c.ins_discipline_omschrijving catalogus,
|
||
bc.mld_opdr_key
|
||
FROM res_rsv_artikel rra,
|
||
res_artikel ra,
|
||
ins_tab_discipline c,
|
||
aaxx_bundel_catering_ref bc
|
||
WHERE rra.res_artikel_key = ra.res_artikel_key
|
||
AND ra.res_discipline_key = c.ins_discipline_key
|
||
AND rra.res_rsv_artikel_key = bc.res_rsv_artikel_key(+)) voorz,
|
||
( SELECT pw.prs_perslid_key,
|
||
MIN (prs_werkplek_aanduiding)
|
||
|| DECODE (COUNT ( * ), 1, '', '...')
|
||
prs_werkplek_aanduiding
|
||
FROM prs_v_werkplek_gegevens wp, prs_perslidwerkplek pw
|
||
WHERE wp.prs_werkplek_key = pw.prs_werkplek_key
|
||
GROUP BY pw.prs_perslid_key) wp2
|
||
WHERE rrr.res_reservering_key = res.res_reservering_key
|
||
AND rrr.res_ruimte_opstel_key = rro.res_ruimte_opstel_key(+)
|
||
AND rro.res_ruimte_key = rr.res_ruimte_key(+)
|
||
AND rrr.res_rsv_ruimte_key = r2a.res_rsv_ruimte_key(+)
|
||
AND rrr.prs_kostenplaats_key = k.prs_kostenplaats_key(+)
|
||
AND rrr.res_rsv_ruimte_key = voorz.res_rsv_ruimte_key(+)
|
||
AND voorz.mld_opdr_key = o.mld_opdr_key(+)
|
||
AND rrr.res_rsv_ruimte_host_key = p.prs_perslid_key
|
||
AND p.prs_afdeling_key = a.prs_afdeling_key
|
||
AND wp2.prs_perslid_key(+) = p.prs_perslid_key
|
||
AND (rrr.res_ruimte_opstel_key IS NOT NULL
|
||
OR voorz.res_rsv_ruimte_key IS NOT NULL)
|
||
;
|
||
|
||
-------------------------------------------------------------------------------
|
||
-- EXPORTFUNCTIE - DWH_RES_KENMERK
|
||
-------------------------------------------------------------------------------
|
||
|
||
CREATE OR REPLACE VIEW aaxx_v_dwh_kenmerk_reservering
|
||
(
|
||
nummer,
|
||
kenmerk_omschrijving,
|
||
kenmerk_waarde,
|
||
reservering_verwijder
|
||
)
|
||
AS
|
||
SELECT
|
||
dwhres.nummer,
|
||
sk.res_srtkenmerk_omschrijving,
|
||
aaxx_get_kenmerkwaarde (sk.res_srtkenmerk_kenmerktype,
|
||
sk.fac_kenmerkdomein_key,
|
||
kw.res_kenmerkreservering_waarde),
|
||
dwhres.reservering_verwijder
|
||
FROM res_kenmerk k,
|
||
res_srtkenmerk sk,
|
||
res_kenmerkwaarde kw,
|
||
aaxx_v_dwh_res_reservering dwhres
|
||
WHERE dwhres.res_rsv_ruimte_key = kw.res_rsv_ruimte_key
|
||
AND kw.res_kenmerk_key = k.res_kenmerk_key
|
||
AND k.res_srtkenmerk_key = sk.res_srtkenmerk_key ;
|
||
|
||
-------------------------------------------------------------------------------
|
||
-- EXPORTFUNCTIE - DWH_BES_ALGEMEEN
|
||
-------------------------------------------------------------------------------
|
||
CREATE OR REPLACE VIEW aaxx_v_dwh_bes_bestelling
|
||
(
|
||
bes_bestelling_key,
|
||
bestelaanvraagnr,
|
||
besteldatum,
|
||
besteller,
|
||
invoerder,
|
||
kostensoortgroep,
|
||
kostensoort,
|
||
kpn,
|
||
kpn_omschrijving,
|
||
prs_bedrijf_key,
|
||
afdeling_code,
|
||
afdeling_omschrijving,
|
||
alg_locatie_key,
|
||
locatie_code,
|
||
district_omschijving,
|
||
afleveradres,
|
||
mandaat,
|
||
personeelsnr,
|
||
werkplek,
|
||
ins_discipline_key,
|
||
catalogus,
|
||
groep,
|
||
afleverdatum,
|
||
doorlooptijd_werkdgn,
|
||
sla_tijd,
|
||
productcode,
|
||
prijs,
|
||
inkoopprijs,
|
||
status,
|
||
gefiatteerddoor,
|
||
tevredenheid,
|
||
tevredenheid_opm,
|
||
bestelopdrachtnummer,
|
||
leverancier,
|
||
aantal,
|
||
itemprijs,
|
||
iteminkoopprijs,
|
||
productomschrijving,
|
||
itemposnr
|
||
)
|
||
AS
|
||
SELECT b.bes_bestelling_key bes_bestelling_key,
|
||
b.bes_bestelling_key bestelaanvraagnr,
|
||
b.bes_bestelling_datum besteldatum,
|
||
(SELECT prs_perslid_naam_full
|
||
FROM prs_v_perslid_fullnames_all pf
|
||
WHERE pf.prs_perslid_key = p.prs_perslid_key)
|
||
besteller,
|
||
(SELECT MAX (prs_perslid_naam_full)
|
||
FROM prs_v_perslid_fullnames_all pf
|
||
WHERE pf.prs_perslid_key =
|
||
COALESCE(fac.gettrackinguserkey ('BESNEW', b.bes_bestelling_key), fac.gettrackinguserkey ('BESAP2', b.bes_bestelling_key)))
|
||
invoerder,
|
||
(SELECT ksg.prs_kostensoortgrp_oms
|
||
FROM prs_kostensoortgrp ksg, prs_kostensoort ks
|
||
WHERE ksg.prs_kostensoortgrp_key = ks.prs_kostensoortgrp_key
|
||
AND ks.prs_kostensoort_key =
|
||
(SELECT disc.prs_kostensoort_key
|
||
FROM bes_discipline disc
|
||
WHERE disc.ins_discipline_key = d.ins_discipline_key))
|
||
kostensoortgroep,
|
||
(SELECT ks.prs_kostensoort_oms
|
||
FROM prs_kostensoort ks
|
||
WHERE ks.prs_kostensoort_key =
|
||
(SELECT disc.prs_kostensoort_key
|
||
FROM bes_discipline disc
|
||
WHERE disc.ins_discipline_key = d.ins_discipline_key))
|
||
kostensoort,
|
||
k.prs_kostenplaats_nr kpn,
|
||
k.prs_kostenplaats_omschrijving kpn_omschrijving,
|
||
(SELECT prs_bedrijf_key
|
||
FROM prs_v_afdeling pva
|
||
WHERE pva.prs_afdeling_key = a.prs_afdeling_key)
|
||
prs_bedrijf_key,
|
||
a.prs_afdeling_naam afdeling_code,
|
||
a.prs_afdeling_omschrijving afdeling_omschrijving,
|
||
ma.alg_locatie_key alg_locatie_key,
|
||
(SELECT alg_locatie_code
|
||
FROM alg_locatie l
|
||
WHERE l.alg_locatie_key = ma.alg_locatie_key)
|
||
locatie_code,
|
||
(SELECT alg_district_omschrijving
|
||
FROM alg_locatie l, alg_district d
|
||
WHERE l.alg_district_key = d.alg_district_key
|
||
AND l.alg_locatie_key = ma.alg_locatie_key)
|
||
district_omschijving,
|
||
ma.mld_adres_naam afleveradres,
|
||
NVL ( (SELECT pr.fac_profiel_limiet
|
||
FROM fac_profiel pr
|
||
WHERE p.fac_profiel_key = pr.fac_profiel_key), 0)
|
||
mandaat,
|
||
prs_perslid_nr personeelsnr,
|
||
wp2.prs_werkplek_aanduiding werkplek,
|
||
d.ins_discipline_key ins_discipline_key,
|
||
d.ins_discipline_omschrijving catalogus,
|
||
sg.bes_srtgroep_omschrijving groep,
|
||
b.bes_bestelling_leverdatum afleverdatum,
|
||
TO_CHAR(aaxx.count_work_days (
|
||
b.bes_bestelling_datum,
|
||
NVL (
|
||
fac.gettrackingdate ('BESOTV', b.bes_bestelling_key),
|
||
SYSDATE)))
|
||
doorlooptijd_werkdgn,
|
||
NVL ( (SELECT bdp.bes_disc_params_leverdagen
|
||
FROM bes_disc_params bdp
|
||
WHERE d.ins_discipline_key = bdp.bes_ins_discipline_key),
|
||
0)
|
||
sla_tijd,
|
||
sd.bes_srtdeel_nr productcode,
|
||
DECODE(bes_bestelling_status,
|
||
8,0, -- geannuleerd
|
||
bi.bes_bestelling_item_prijs * bi.bes_bestelling_item_aantal) prijs,
|
||
DECODE(bes_bestelling_status,
|
||
8,0, -- geannuleerd
|
||
NVL (bi.bes_bestelling_item_inkprijs, bi.bes_bestelling_item_prijs)
|
||
* bi.bes_bestelling_item_aantal)
|
||
inkoopprijs,
|
||
(SELECT bes_bestellingstatuses_omschr
|
||
FROM bes_bestellingstatuses bs
|
||
WHERE bs.bes_bestellingstatuses_key = b.bes_bestelling_status)
|
||
status,
|
||
(SELECT prs_perslid_naam_full
|
||
FROM prs_v_perslid_fullnames_all pf
|
||
WHERE pf.prs_perslid_key = b.bes_bestelling_fiat_user)
|
||
gefiatteerddoor,
|
||
b.bes_bestelling_satisfaction,
|
||
b.bes_bestelling_satisfaction_op,
|
||
bo.bes_bestelopdr_id bestelopdrachtnummer,
|
||
(SELECT b.prs_bedrijf_naam
|
||
FROM prs_bedrijf b
|
||
WHERE b.prs_bedrijf_key = bo.prs_bedrijf_key)
|
||
leverancier,
|
||
bi.bes_bestelling_item_aantal aantal,
|
||
DECODE (bes_bestelling_status,
|
||
8, 0, -- geannuleerd
|
||
bi.bes_bestelling_item_prijs) itemprijs,
|
||
DECODE (bes_bestelling_status,
|
||
8,0, -- geannuleerd
|
||
NVL (bi.bes_bestelling_item_inkprijs, bi.bes_bestelling_item_prijs))
|
||
iteminkoopprijs,
|
||
sd.bes_srtdeel_omschrijving productomschrijving,
|
||
boi.bes_bestelopdr_item_posnr itemposnr
|
||
FROM bes_bestelling b,
|
||
prs_perslid p,
|
||
prs_kostenplaats k,
|
||
prs_afdeling a,
|
||
mld_adres ma,
|
||
( SELECT pw.prs_perslid_key,
|
||
MIN (prs_werkplek_aanduiding)
|
||
|| DECODE (COUNT ( * ), 1, '', '...')
|
||
prs_werkplek_aanduiding
|
||
FROM prs_v_werkplek_gegevens wp, prs_perslidwerkplek pw
|
||
WHERE wp.prs_werkplek_key = pw.prs_werkplek_key
|
||
GROUP BY pw.prs_perslid_key) wp2,
|
||
bes_bestelling_item bi,
|
||
bes_bestelopdr_item boi,
|
||
bes_bestelopdr bo,
|
||
bes_srtdeel sd,
|
||
bes_srtgroep sg,
|
||
ins_tab_discipline d
|
||
WHERE b.prs_perslid_key = p.prs_perslid_key
|
||
AND b.prs_kostenplaats_key = k.prs_kostenplaats_key
|
||
AND p.prs_afdeling_key = a.prs_afdeling_key
|
||
AND b.mld_adres_key_lev = ma.mld_adres_key
|
||
AND wp2.prs_perslid_key(+) = p.prs_perslid_key
|
||
AND b.bes_bestelling_key = bi.bes_bestelling_key
|
||
AND bi.bes_bestelopdr_item_key = boi.bes_bestelopdr_item_key(+)
|
||
AND boi.bes_bestelopdr_key = bo.bes_bestelopdr_key(+)
|
||
AND bi.bes_srtdeel_key = sd.bes_srtdeel_key
|
||
AND sd.bes_srtgroep_key = sg.bes_srtgroep_key
|
||
AND sg.ins_discipline_key = d.ins_discipline_key;
|
||
|
||
-------------------------------------------------------------------------------
|
||
-- EXPORTFUNCTIE - DWH_BES_KENMERK
|
||
-------------------------------------------------------------------------------
|
||
CREATE OR REPLACE VIEW aaxx_v_dwh_kenmerk_bestelling
|
||
(
|
||
nummer,
|
||
kenmerk_omschrijving,
|
||
kenmerk_waarde
|
||
)
|
||
AS
|
||
SELECT kb.bes_bestelling_key,
|
||
sk.bes_srtkenmerk_omschrijving,
|
||
aaxx_get_kenmerkwaarde (sk.bes_srtkenmerk_kenmerktype,
|
||
sk.fac_kenmerkdomein_key,
|
||
bes_kenmerkbestell_waarde)
|
||
FROM bes_kenmerk k,
|
||
bes_srtkenmerk sk,
|
||
fac_kenmerkdomein fkd,
|
||
bes_kenmerkbestell kb
|
||
WHERE kb.bes_kenmerk_key = k.bes_kenmerk_key
|
||
AND k.bes_srtkenmerk_key = sk.bes_srtkenmerk_key;
|
||
|
||
-------------------------------------------------------------------------------
|
||
-- EXPORTFUNCTIE - DWH_FIN_KENMERK
|
||
-------------------------------------------------------------------------------
|
||
CREATE OR REPLACE VIEW aaxx_v_dwh_kenmerk_factuur
|
||
(
|
||
fin_factuur_key,
|
||
kenmerk_omschrijving,
|
||
kenmerk_waarde
|
||
)
|
||
AS
|
||
SELECT kf.fin_factuur_key,
|
||
k.fin_kenmerk_omschrijving,
|
||
aaxx_get_kenmerkwaarde (k.fin_kenmerk_kenmerktype,
|
||
k.fac_kenmerkdomein_key,
|
||
kf.fin_kenmerkfactuur_waarde)
|
||
FROM fin_kenmerk k, fin_kenmerkfactuur kf
|
||
WHERE k.fin_kenmerk_key = kf.fin_kenmerk_key ;
|
||
|
||
-------------------------------------------------------------------------------
|
||
-- EXPORTFUNCTIE - DWH_BEZ_BEZOEKERS
|
||
-------------------------------------------------------------------------------
|
||
CREATE OR REPLACE VIEW aaxx_v_dwh_bez_bezoekers
|
||
(
|
||
bezoekers_key,
|
||
afspraak_begin,
|
||
afspraak_ontvangen,
|
||
ontvangen_door,
|
||
afspraak_eind,
|
||
afspraak_afgemeld,
|
||
afgemeld_door,
|
||
contactpersoon,
|
||
gastheer,
|
||
locatie,
|
||
gebouw,
|
||
verdieping,
|
||
ruimte,
|
||
actie,
|
||
opmerking,
|
||
parkeerplaats,
|
||
ingevoerd_door,
|
||
ingevoerd,
|
||
res_rsv_ruimte_key,
|
||
reservering,
|
||
bezoeker,
|
||
bedrijf
|
||
)
|
||
AS
|
||
SELECT b.bez_bezoekers_key,
|
||
a.bez_afspraak_datum,
|
||
bez_bezoekers_done,
|
||
bezdon.prs_perslid_key,
|
||
bez_afspraak_eind,
|
||
bez_bezoekers_out,
|
||
bezout.prs_perslid_key,
|
||
(SELECT prs_perslid_naam_full
|
||
FROM prs_v_perslid_fullnames_all pf
|
||
WHERE pf.prs_perslid_key = a.bez_afspraak_contact_key)
|
||
contact,
|
||
(SELECT prs_perslid_naam_full
|
||
FROM prs_v_perslid_fullnames_all pf
|
||
WHERE pf.prs_perslid_key = a.bez_afspraak_host_key)
|
||
HOST,
|
||
alg_locatie_code || '-' || alg_locatie_omschrijving,
|
||
(SELECT alg_gebouw_upper || '-' || alg_gebouw_naam
|
||
FROM alg_gebouw g
|
||
WHERE g.alg_gebouw_key = og.alg_gebouw_key)
|
||
gebouw,
|
||
(SELECT alg_verdieping_volgnr
|
||
FROM alg_verdieping v
|
||
WHERE v.alg_verdieping_key = og.alg_verdieping_key)
|
||
verdieping,
|
||
(SELECT alg_ruimte_nr || '-' || alg_ruimte_omschrijving
|
||
FROM alg_ruimte r
|
||
WHERE r.alg_ruimte_key = og.alg_ruimte_key)
|
||
ruimte,
|
||
(SELECT bez_actie_omschrijving
|
||
FROM bez_actie ac
|
||
WHERE ac.bez_actie_key = a.bez_actie_key)
|
||
actie,
|
||
a.bez_afspraak_opmerking opmerking,
|
||
(SELECT MAX (ins_deel_omschrijving)
|
||
FROM res_v_aanwezigrsv_deel rrd, res_deel rd, ins_deel d
|
||
WHERE rrd.bez_bezoekers_key = b.bez_bezoekers_key
|
||
AND rrd.res_deel_key = rd.res_deel_key
|
||
AND rd.res_ins_deel_key = d.ins_deel_key)
|
||
parkeer,
|
||
bezmut.prs_perslid_key,
|
||
bezmut.fac_tracking_datum,
|
||
a.res_rsv_ruimte_key res_rsv_ruimte_key,
|
||
(SELECT rrr.res_reservering_key || '/' || rrr.res_rsv_ruimte_volgnr
|
||
FROM res_rsv_ruimte rrr
|
||
WHERE rrr.res_rsv_ruimte_key = a.res_rsv_ruimte_key)
|
||
reservering_nummer,
|
||
b.bez_afspraak_naam,
|
||
b.bez_afspraak_bedrijf
|
||
FROM bez_bezoekers b,
|
||
bez_afspraak a,
|
||
alg_v_onroerendgoed og,
|
||
alg_locatie l,
|
||
(SELECT fac_tracking_refkey, prs_perslid_key
|
||
FROM fac_tracking t, fac_srtnotificatie sn
|
||
WHERE t.fac_srtnotificatie_key = sn.fac_srtnotificatie_key
|
||
AND sn.fac_srtnotificatie_code = 'BEZDON'
|
||
AND NOT EXISTS
|
||
(SELECT fac_tracking_refkey
|
||
FROM fac_tracking t2
|
||
WHERE t2.fac_srtnotificatie_key =
|
||
t.fac_srtnotificatie_key
|
||
AND t2.fac_tracking_refkey = t.fac_tracking_refkey
|
||
AND t2.fac_tracking_key > t.fac_tracking_key))
|
||
bezdon,
|
||
(SELECT fac_tracking_refkey, prs_perslid_key
|
||
FROM fac_tracking t, fac_srtnotificatie sn
|
||
WHERE t.fac_srtnotificatie_key = sn.fac_srtnotificatie_key
|
||
AND sn.fac_srtnotificatie_code = 'BEZOUT'
|
||
AND NOT EXISTS
|
||
(SELECT fac_tracking_refkey
|
||
FROM fac_tracking t2
|
||
WHERE t2.fac_srtnotificatie_key =
|
||
t.fac_srtnotificatie_key
|
||
AND t2.fac_tracking_refkey = t.fac_tracking_refkey
|
||
AND t2.fac_tracking_key > t.fac_tracking_key))
|
||
bezout,
|
||
(SELECT fac_tracking_refkey, prs_perslid_key, fac_tracking_datum
|
||
FROM fac_tracking t, fac_srtnotificatie sn
|
||
WHERE t.fac_srtnotificatie_key = sn.fac_srtnotificatie_key
|
||
AND sn.fac_srtnotificatie_code = 'BEZMUT'
|
||
AND NOT EXISTS
|
||
(SELECT fac_tracking_refkey
|
||
FROM fac_tracking t2
|
||
WHERE t2.fac_srtnotificatie_key =
|
||
t.fac_srtnotificatie_key
|
||
AND t2.fac_tracking_refkey = t.fac_tracking_refkey
|
||
AND t2.fac_tracking_key > t.fac_tracking_key))
|
||
bezmut
|
||
WHERE b.bez_afspraak_key = a.bez_afspraak_key
|
||
AND a.alg_onrgoed_keys = og.alg_onroerendgoed_keys(+)
|
||
AND a.alg_locatie_key = l.alg_locatie_key(+)
|
||
AND b.bez_bezoekers_key = bezdon.fac_tracking_refkey(+)
|
||
AND b.bez_bezoekers_key = bezout.fac_tracking_refkey(+)
|
||
AND a.bez_afspraak_key = bezmut.fac_tracking_refkey(+);
|
||
|
||
-------------------------------------------------------------------------------
|
||
-- EXPORTFUNCTIE - DWH_ALG_ONRGOED
|
||
-------------------------------------------------------------------------------
|
||
CREATE OR REPLACE VIEW aaxx_v_dwh_alg_onrgoed
|
||
(
|
||
alg_onroerendgoed_keys,
|
||
alg_onroerendgoed_code,
|
||
alg_onroerendgoed_omschrijving,
|
||
alg_onroerendgoed_aanmaak,
|
||
alg_onroerendgoed_verwijder,
|
||
alg_type,
|
||
alg_regio_key,
|
||
alg_regio_omschrijving,
|
||
alg_district_key,
|
||
alg_district_omschrijving,
|
||
alg_locatie_key,
|
||
alg_locatie_code,
|
||
alg_locatie_omschrijving,
|
||
alg_locatie_bezoek_adres,
|
||
alg_locatie_bezoek_postcode,
|
||
alg_locatie_bezoek_plaats,
|
||
alg_terreinsector_key,
|
||
alg_terreinsector_code,
|
||
alg_terreinsector_naam,
|
||
alg_gebouw_key,
|
||
alg_gebouw_code,
|
||
alg_gebouw_naam,
|
||
alg_gebouw_verantwoordelijke,
|
||
alg_gebouw_verantwoordelijke2,
|
||
alg_gebouw_mjb_score1,
|
||
alg_gebouw_bvo,
|
||
alg_gebouw_bez,
|
||
alg_gebouw_werkdagen,
|
||
alg_gebouw_beginuur,
|
||
alg_gebouw_einduur,
|
||
alg_gebouw_functie,
|
||
alg_gebouw_kostenplaats_key,
|
||
alg_gebouw_kostenplaats_oms,
|
||
alg_gebouw_x,
|
||
alg_gebouw_y,
|
||
alg_verdieping_key,
|
||
alg_verdieping_code,
|
||
alg_verdieping_omschrijving,
|
||
alg_ruimte_key,
|
||
alg_ruimte_nr,
|
||
alg_ruimte_omschrijving,
|
||
alg_ruimte_m2,
|
||
alg_ruimte_m2_alt1,
|
||
alg_ruimte_m2_alt2,
|
||
dienstniveau_niveau,
|
||
dienstniveau,
|
||
alg_srtruimte_omschrijving,
|
||
prs_afdeling_upper
|
||
)
|
||
AS
|
||
SELECT alg_onroerendgoed_keys,
|
||
DECODE (alg_type,
|
||
'T', alg_terreinsector_code,
|
||
'G', alg_gebouw_code,
|
||
'V', alg_verdieping_code,
|
||
'R', alg_ruimte_nr)
|
||
code,
|
||
DECODE (alg_type,
|
||
'T', alg_terreinsector_naam,
|
||
'G', alg_gebouw_naam,
|
||
'V', alg_verdieping_omschrijving,
|
||
'R', alg_ruimte_omschrijving)
|
||
omschrijving,
|
||
DECODE (alg_type,
|
||
'T', alg_terreinsector_aanmaak,
|
||
'G', alg_gebouw_aanmaak,
|
||
'V', alg_verdieping_aanmaak,
|
||
'R', alg_ruimte_aanmaak)
|
||
aanmaak,
|
||
DECODE (alg_type,
|
||
'T', alg_terreinsector_verwijder,
|
||
'G', alg_gebouw_verwijder,
|
||
'V', COALESCE(alg_verdieping_verwijder, alg_gebouw_verwijder),
|
||
'R', COALESCE(alg_ruimte_verwijder, alg_verdieping_verwijder, alg_gebouw_verwijder)
|
||
)verwijder,
|
||
aog.alg_type,
|
||
r.alg_regio_key,
|
||
r.alg_regio_omschrijving,
|
||
d.alg_district_key,
|
||
d.alg_district_omschrijving,
|
||
l.alg_locatie_key,
|
||
l.alg_locatie_code,
|
||
l.alg_locatie_omschrijving,
|
||
l.alg_locatie_adres,
|
||
l.alg_locatie_postcode,
|
||
l.alg_locatie_plaats,
|
||
t.alg_terreinsector_key,
|
||
t.alg_terreinsector_code,
|
||
t.alg_terreinsector_naam,
|
||
g.alg_gebouw_key,
|
||
g.alg_gebouw_code,
|
||
g.alg_gebouw_naam,
|
||
g.prs_perslid_key_verantw,
|
||
g.prs_perslid_key_verantw2,
|
||
g.alg_gebouw_mjb_score1,
|
||
(SELECT SUM (alg_ruimte_bruto_vloeropp) alg_gebouw_bvo
|
||
FROM alg_ruimte r, alg_verdieping v
|
||
WHERE v.alg_verdieping_key = r.alg_verdieping_key
|
||
AND r.alg_ruimte_verwijder IS NULL
|
||
AND v.alg_gebouw_key = g.alg_gebouw_key)
|
||
alg_gebouw_bvo,
|
||
alg_gebouw_bez,
|
||
alg_gebouw_werkdagen,
|
||
DECODE (
|
||
alg_gebouw_beginuur,
|
||
NULL,
|
||
TO_CHAR (NULL),
|
||
0,
|
||
TO_CHAR (NULL),
|
||
TO_CHAR (TRUNC (alg_gebouw_beginuur)) || ':'
|
||
|| TO_CHAR (
|
||
(alg_gebouw_beginuur - TRUNC (alg_gebouw_beginuur)) * 60,
|
||
'FM00'))
|
||
alg_gebouw_beginuur,
|
||
DECODE (
|
||
alg_gebouw_einduur,
|
||
NULL,
|
||
TO_CHAR (NULL),
|
||
0,
|
||
TO_CHAR (NULL),
|
||
TO_CHAR (TRUNC (alg_gebouw_einduur)) || ':'
|
||
|| TO_CHAR (
|
||
(alg_gebouw_einduur - TRUNC (alg_gebouw_einduur)) * 60,
|
||
'FM00'))
|
||
alg_gebouw_einduur,
|
||
(SELECT alg_srtgebouw_omschrijving
|
||
FROM alg_srtgebouw sg
|
||
WHERE sg.alg_srtgebouw_key = g.alg_srtgebouw_key)
|
||
alg_gebouw_functie,
|
||
g.prs_kostenplaats_key,
|
||
CASE WHEN g.prs_kostenplaats_key IS NOT NULL THEN kp.prs_kostenplaats_nr || ' ' || kp.prs_kostenplaats_omschrijving ELSE '' END
|
||
alg_gebouw_kostenplaats_oms,
|
||
alg_gebouw_x,
|
||
alg_gebouw_y,
|
||
v.alg_verdieping_key,
|
||
v.alg_verdieping_code,
|
||
v.alg_verdieping_omschrijving,
|
||
ru.alg_ruimte_key,
|
||
ru.alg_ruimte_nr,
|
||
ru.alg_ruimte_omschrijving,
|
||
ru.alg_ruimte_bruto_vloeropp,
|
||
ru.alg_ruimte_opp_alt1,
|
||
ru.alg_ruimte_opp_alt2,
|
||
CASE
|
||
WHEN mdr.mld_dienstniveau_omschr IS NOT NULL THEN 'R'
|
||
WHEN mdv.mld_dienstniveau_omschr IS NOT NULL THEN 'V'
|
||
WHEN mdg.mld_dienstniveau_omschr IS NOT NULL THEN 'G'
|
||
WHEN mdl.mld_dienstniveau_omschr IS NOT NULL THEN 'L'
|
||
END
|
||
dienstniveau_gevuld,
|
||
COALESCE (mdr.mld_dienstniveau_omschr,
|
||
mdv.mld_dienstniveau_omschr,
|
||
mdg.mld_dienstniveau_omschr,
|
||
mdl.mld_dienstniveau_omschr)
|
||
dienstniveau,
|
||
sru.alg_srtruimte_omschrijving,
|
||
afd.prs_afdeling_upper
|
||
FROM alg_v_allonroerendgoed aog,
|
||
mld_dienstniveau mdr,
|
||
mld_dienstniveau mdv,
|
||
mld_dienstniveau mdg,
|
||
mld_dienstniveau mdl,
|
||
alg_ruimte ru,
|
||
alg_verdieping v,
|
||
alg_terreinsector t,
|
||
alg_gebouw g,
|
||
prs_kostenplaats kp,
|
||
alg_locatie l,
|
||
alg_district d,
|
||
alg_regio r,
|
||
alg_srtruimte sru,
|
||
(SELECT ra.alg_ruimte_key, a.prs_afdeling_upper
|
||
FROM prs_ruimteafdeling ra, prs_v_afdeling a
|
||
WHERE ra.prs_afdeling_key = a.prs_afdeling_key) afd
|
||
WHERE aog.alg_gebouw_key = g.alg_gebouw_key(+)
|
||
AND aog.alg_terreinsector_key = t.alg_terreinsector_key(+)
|
||
AND aog.alg_verdieping_key = v.alg_verdieping_key(+)
|
||
AND aog.alg_ruimte_key = ru.alg_ruimte_key(+)
|
||
AND g.alg_locatie_key = l.alg_locatie_key
|
||
AND l.alg_district_key = d.alg_district_key
|
||
AND d.alg_regio_key = r.alg_regio_key
|
||
AND ru.mld_dienstniveau_key = mdr.mld_dienstniveau_key(+)
|
||
AND v.mld_dienstniveau_key = mdv.mld_dienstniveau_key(+)
|
||
AND g.mld_dienstniveau_key = mdg.mld_dienstniveau_key(+)
|
||
AND l.mld_dienstniveau_key = mdl.mld_dienstniveau_key(+)
|
||
AND ru.alg_srtruimte_key = sru.alg_srtruimte_key (+)
|
||
AND ru.alg_ruimte_key = afd.alg_ruimte_key (+)
|
||
AND g.prs_kostenplaats_key = kp.prs_kostenplaats_key (+)
|
||
UNION ALL
|
||
SELECT TO_NUMBER (NULL),
|
||
alg_locatie_code,
|
||
alg_locatie_omschrijving,
|
||
l.alg_locatie_aanmaak,
|
||
l.alg_locatie_verwijder,
|
||
'L',
|
||
r.alg_regio_key,
|
||
alg_regio_omschrijving,
|
||
d.alg_district_key,
|
||
alg_district_omschrijving,
|
||
l.alg_locatie_key,
|
||
alg_locatie_code,
|
||
alg_locatie_omschrijving,
|
||
alg_locatie_adres,
|
||
alg_locatie_postcode,
|
||
alg_locatie_plaats,
|
||
TO_NUMBER (NULL),
|
||
TO_CHAR (NULL),
|
||
TO_CHAR (NULL),
|
||
TO_NUMBER (NULL),
|
||
TO_CHAR (NULL),
|
||
TO_CHAR (NULL),
|
||
TO_NUMBER (NULL),
|
||
TO_NUMBER (NULL),
|
||
TO_NUMBER (NULL),
|
||
TO_NUMBER (NULL), -- alg_gebouw_bvo,
|
||
TO_NUMBER (NULL), -- alg_gebouw_bez,
|
||
TO_NUMBER (NULL), -- alg_gebouw_werkdagen,
|
||
TO_CHAR (NULL), -- alg_gebouw_beginuur,
|
||
TO_CHAR (NULL), -- alg_gebouw_einduur,
|
||
TO_CHAR (NULL), -- alg_gebouw_functie,
|
||
TO_NUMBER (NULL), -- prs_kostenplaats_key van gebouw
|
||
TO_CHAR (NULL), -- prs_kostenplaats_omschrijving van gebouw
|
||
TO_NUMBER (NULL), -- alg_gebouw_x,
|
||
TO_NUMBER (NULL), -- alg_gebouw_y,
|
||
TO_NUMBER (NULL),
|
||
TO_CHAR (NULL),
|
||
TO_CHAR (NULL),
|
||
TO_NUMBER (NULL),
|
||
TO_CHAR (NULL),
|
||
TO_CHAR (NULL),
|
||
TO_NUMBER (NULL),
|
||
TO_NUMBER (NULL),
|
||
TO_NUMBER (NULL),
|
||
'L',
|
||
md.mld_dienstniveau_omschr,
|
||
TO_CHAR (NULL),
|
||
TO_CHAR (NULL)
|
||
FROM alg_locatie l,
|
||
alg_district d,
|
||
alg_regio r,
|
||
mld_dienstniveau md
|
||
WHERE l.alg_district_key = d.alg_district_key
|
||
AND d.alg_regio_key = r.alg_regio_key
|
||
AND l.mld_dienstniveau_key = md.mld_dienstniveau_key(+)
|
||
UNION ALL
|
||
SELECT TO_NUMBER (NULL),
|
||
TO_CHAR (NULL),
|
||
alg_district_omschrijving,
|
||
d.alg_district_aanmaak,
|
||
d.alg_district_verwijder,
|
||
'D',
|
||
r.alg_regio_key,
|
||
alg_regio_omschrijving,
|
||
d.alg_district_key,
|
||
alg_district_omschrijving,
|
||
TO_NUMBER (NULL),
|
||
TO_CHAR (NULL),
|
||
TO_CHAR (NULL),
|
||
TO_CHAR (NULL),
|
||
TO_CHAR (NULL),
|
||
TO_CHAR (NULL),
|
||
TO_NUMBER (NULL),
|
||
TO_CHAR (NULL),
|
||
TO_CHAR (NULL),
|
||
TO_NUMBER (NULL),
|
||
TO_CHAR (NULL),
|
||
TO_CHAR (NULL),
|
||
TO_NUMBER (NULL),
|
||
TO_NUMBER (NULL),
|
||
TO_NUMBER (NULL),
|
||
TO_NUMBER (NULL), -- alg_gebouw_bvo,
|
||
TO_NUMBER (NULL), -- alg_gebouw_bez,
|
||
TO_NUMBER (NULL), -- alg_gebouw_werkdagen,
|
||
TO_CHAR (NULL), -- alg_gebouw_beginuur,
|
||
TO_CHAR (NULL), -- alg_gebouw_einduur,
|
||
TO_CHAR (NULL), -- alg_gebouw_functie,
|
||
TO_NUMBER (NULL), -- prs_kostenplaats_key van gebouw
|
||
TO_CHAR (NULL), -- prs_kostenplaats_omschrijving van gebouw
|
||
TO_NUMBER (NULL), -- alg_gebouw_x,
|
||
TO_NUMBER (NULL), -- alg_gebouw_y,
|
||
TO_NUMBER (NULL),
|
||
TO_CHAR (NULL),
|
||
TO_CHAR (NULL),
|
||
TO_NUMBER (NULL),
|
||
TO_CHAR (NULL),
|
||
TO_CHAR (NULL),
|
||
TO_NUMBER (NULL),
|
||
TO_NUMBER (NULL),
|
||
TO_NUMBER (NULL),
|
||
TO_CHAR (NULL),
|
||
TO_CHAR (NULL),
|
||
TO_CHAR (NULL),
|
||
TO_CHAR (NULL)
|
||
FROM alg_district d, alg_regio r
|
||
WHERE d.alg_regio_key = r.alg_regio_key
|
||
UNION ALL
|
||
SELECT TO_NUMBER (NULL),
|
||
TO_CHAR (NULL),
|
||
alg_regio_omschrijving,
|
||
r.alg_regio_aanmaak,
|
||
r.alg_regio_verwijder,
|
||
'R',
|
||
r.alg_regio_key,
|
||
alg_regio_omschrijving,
|
||
TO_NUMBER (NULL),
|
||
TO_CHAR (NULL),
|
||
TO_NUMBER (NULL),
|
||
TO_CHAR (NULL),
|
||
TO_CHAR (NULL),
|
||
TO_CHAR (NULL),
|
||
TO_CHAR (NULL),
|
||
TO_CHAR (NULL),
|
||
TO_NUMBER (NULL),
|
||
TO_CHAR (NULL),
|
||
TO_CHAR (NULL),
|
||
TO_NUMBER (NULL),
|
||
TO_CHAR (NULL),
|
||
TO_CHAR (NULL),
|
||
TO_NUMBER (NULL),
|
||
TO_NUMBER (NULL),
|
||
TO_NUMBER (NULL),
|
||
TO_NUMBER (NULL), -- alg_gebouw_bvo,
|
||
TO_NUMBER (NULL), -- alg_gebouw_bez,
|
||
TO_NUMBER (NULL), -- alg_gebouw_werkdagen,
|
||
TO_CHAR (NULL), -- alg_gebouw_beginuur,
|
||
TO_CHAR (NULL), -- alg_gebouw_einduur,
|
||
TO_CHAR (NULL), -- alg_gebouw_functie,
|
||
TO_NUMBER (NULL), -- prs_kostenplaats_key van gebouw
|
||
TO_CHAR (NULL), -- prs_kostenplaats_omschrijving van gebouw
|
||
TO_NUMBER (NULL), -- alg_gebouw_x,
|
||
TO_NUMBER (NULL), -- alg_gebouw_y,
|
||
TO_NUMBER (NULL),
|
||
TO_CHAR (NULL),
|
||
TO_CHAR (NULL),
|
||
TO_NUMBER (NULL),
|
||
TO_CHAR (NULL),
|
||
TO_CHAR (NULL),
|
||
TO_NUMBER (NULL),
|
||
TO_NUMBER (NULL),
|
||
TO_NUMBER (NULL),
|
||
TO_CHAR (NULL),
|
||
TO_CHAR (NULL),
|
||
TO_CHAR (NULL),
|
||
TO_CHAR (NULL)
|
||
FROM alg_regio r;
|
||
|
||
-------------------------------------------------------------------------------
|
||
-- EXPORTFUNCTIE - DWH_ALG_KENMERK
|
||
-------------------------------------------------------------------------------
|
||
CREATE OR REPLACE VIEW aaxx_v_dwh_kenmerk_onrgoed
|
||
(
|
||
alg_onrgoed_key,
|
||
alg_kenmerk_niveau,
|
||
alg_kenmerk_omschrijving,
|
||
alg_kenmerk_waarde
|
||
)
|
||
AS
|
||
SELECT aog.alg_onrgoed_key,
|
||
k.alg_kenmerk_niveau,
|
||
k.alg_kenmerk_omschrijving,
|
||
aaxx_get_kenmerkwaarde (k.alg_kenmerk_kenmerktype,
|
||
k.fac_kenmerkdomein_key,
|
||
aog.alg_onrgoedkenmerk_waarde)
|
||
FROM alg_kenmerk k, alg_onrgoedkenmerk aog
|
||
WHERE k.alg_kenmerk_key = aog.alg_kenmerk_key
|
||
AND aog.alg_onrgoedkenmerk_verwijder IS NULL;
|
||
|
||
|
||
-------------------------------------------------------------------------------
|
||
-- EXPORTFUNCTIE - DWH_INS_SENSOR_STATUS
|
||
-------------------------------------------------------------------------------
|
||
CREATE OR REPLACE VIEW aaxx_v_dwh_ins_sensor_status
|
||
(
|
||
ruimte_key,
|
||
sensor_id,
|
||
tijdstip_aan,
|
||
tijdstip_uit
|
||
)
|
||
AS
|
||
SELECT d.ins_alg_ruimte_key,
|
||
d.ins_deel_omschrijving,
|
||
h.ins_deel_statedate,
|
||
h.uit
|
||
FROM (SELECT h.*,
|
||
LEAD (ins_deel_statedate)
|
||
OVER (PARTITION BY ins_deel_key ORDER BY ins_deel_statedate)
|
||
AS uit
|
||
FROM ins_deel_state_history h) h,
|
||
ins_srtdeel sd,
|
||
ins_deel d
|
||
WHERE h.ins_deel_key = d.ins_deel_key
|
||
AND d.ins_srtdeel_key = sd.ins_srtdeel_key
|
||
AND h.ins_deel_state = '1'
|
||
ORDER BY d.ins_alg_ruimte_key, h.ins_deel_statedate;
|
||
|
||
|
||
-------------------------------------------------------------------------------
|
||
-- EXPORTFUNCTIE - DWH_INSPECTIE
|
||
-------------------------------------------------------------------------------
|
||
|
||
-- Zie ticket 63820. Betreft DWH-view_2.0. Dit is afgeleide van de AAXX_V_DWH_INSPECTIE.
|
||
-- Bedoeling:
|
||
---- Deze view hanteert men nu eerst voor Gemeente Nijmegen om o.a. de gewenste Dashboards mee te realiseren.
|
||
---- Indien dit gereed is dan zou de oude AAXX-view vervangen moeten gaan worden door deze.
|
||
CREATE OR REPLACE VIEW aaxx_v_dwh_inspectie_2
|
||
(
|
||
taakcategorie,
|
||
taaksoort,
|
||
taakmodus,
|
||
ismjob,
|
||
taakopties,
|
||
uitvoer_aantal,
|
||
deelsrtcontrole_key,
|
||
deelsrtcontrole_key_vorig,
|
||
deel_key,
|
||
deel_omschrijving,
|
||
srtcontrole_key,
|
||
srtcontrole_info,
|
||
srtcontrole_niveau,
|
||
srtcontrole_omschrijving,
|
||
srtcontrole_opmerking,
|
||
srtcontrole_periode,
|
||
srtcontrole_eenheid, -- Eenheid (jaar, maand, week, dag) op basistaak
|
||
srtcontrole_level, -- prioriteit basistaak
|
||
srtcontrole_percentage,
|
||
srtcontrole_start,
|
||
srtcontrole_eind,
|
||
srtcontrole_groep,
|
||
uitvoer_x, -- De x-ste uitvoer
|
||
status, -- Is status van de uitvoerende taak (ingepland, in behandeling, afgemeld, voltooid)
|
||
deelsrtcontrole_datum, -- Voor Uitvoertaak de coalesce(Uitvoerdatum, Plandatum of Startdatum)
|
||
-- Voor Basistaak indien geen geschiedenis, StartdatumTaak (of indien leeg ins_deel_datum)
|
||
----- en indien wel geschiedenis dan NextCyclus op basis van (uitvoerdatum, plandatum, FreezeDate ivm MJOB) laatste/hudige taak.
|
||
mjob_doorgeschoven,
|
||
uitvoerdatum_gepland,
|
||
uitvoerdatum_inbehandeling,
|
||
uitvoerdatum_gereed,
|
||
succes,
|
||
actie_vereist,
|
||
afmeld_datum, -- Afgemeld op (= gereed/voltooid met vervolgactie..)
|
||
verwerk_datum, -- Verwerkt op (= voltooid zonder vervolgactie / vervolgactie voltooid)
|
||
uitvoerdatum_origineel, -- Datum waarop uitvoertaak uitgevoerd zou moeten worden
|
||
respijt,
|
||
deelsrtcontrole_status, -- Voor uitvoertaak, de beoordeling Te laat of op Tijd (op basis coalesce(plandatum, originele uitvoerdatum)
|
||
-- Voor basistaak indicatie of de nog te starten taak al opgestart had moeten worden
|
||
cycli_dagen, -- VorigeUitvoerdatum MINUS deze uitvoerdatum
|
||
srtcontrole_materiaal,
|
||
controlemode_omschrijving,
|
||
controlemode_opmerking,
|
||
deelsrtcontrole_opmerking,
|
||
prs_perslid_key,
|
||
gecontroleerd_door,
|
||
taak_categorie,
|
||
dienst,
|
||
prs_bedrijf_key
|
||
)
|
||
AS
|
||
SELECT
|
||
cd.ins_discipline_omschrijving,
|
||
CASE
|
||
WHEN cdp.ctr_disc_params_controle_type = 1
|
||
THEN
|
||
lcl.l ('lcl_ins_srtcontrole_insp')
|
||
WHEN cdp.ctr_disc_params_controle_type = 2
|
||
THEN
|
||
lcl.l ('lcl_ins_srtcontrole_repl')
|
||
WHEN cdp.ctr_disc_params_controle_type = 3
|
||
THEN
|
||
lcl.l ('lcl_ins_srtcontrole_cert')
|
||
END
|
||
taaksoort,
|
||
CASE
|
||
WHEN sc.ins_srtcontrole_mode = 0
|
||
THEN
|
||
lcl.l ('lcl_ins_srtcontrole_moment')
|
||
ELSE
|
||
lcl.l ('lcl_ins_srtcontrole_interval')
|
||
END
|
||
taak_modus,
|
||
cdp.ctr_disc_params_ismjob ismjob,
|
||
sc.ins_srtcontrole_options taakopties,
|
||
(SELECT COUNT (dc2.ins_deelsrtcontrole_key)
|
||
FROM ins_deelsrtcontrole dc2
|
||
WHERE dc2.ins_deel_key = d.ins_deel_key
|
||
AND dc2.ins_srtcontrole_key = x.ins_srtcontrole_key)
|
||
uitvoer_aantal,
|
||
dc.ins_deelsrtcontrole_key,
|
||
dcp.ins_deelsrtcontrole_key_vorige deelsrtcontrole_key_vorig,
|
||
d.ins_deel_key,
|
||
d.ins_deel_omschrijving,
|
||
sc.ins_srtcontrole_key,
|
||
sc.ins_srtcontrole_info,
|
||
sc.ins_srtcontrole_niveau,
|
||
sc.ins_srtcontrole_omschrijving,
|
||
COALESCE (x.ins_srtcontroledl_xcp_opmerk, sc.ins_srtcontrole_opmerking) ins_srtcontrole_opmerking,
|
||
COALESCE (x.ins_srtcontroledl_xcp_periode, sc.ins_srtcontrole_periode) ins_srtcontrole_periode,
|
||
DECODE (
|
||
COALESCE (x.ins_srtcontroledl_xcp_eenheid, sc.ins_srtcontrole_eenheid),
|
||
0,
|
||
'Uurlijks',
|
||
1,
|
||
'Dagelijks',
|
||
2,
|
||
'Wekelijks',
|
||
3,
|
||
'Maandelijks',
|
||
4,
|
||
'Jaarlijks',
|
||
'Onbekend')
|
||
ins_srtcontrole_eenheid,
|
||
sc.ins_srtcontrole_level, -- prioriteit
|
||
COALESCE (x.ins_srtcontroledl_xcp_perc, sc.ins_srtcontrole_percentage) ins_srtcontrole_percentage,
|
||
x.ins_srtcontroledl_xcp_startdat,
|
||
COALESCE (x.ins_srtcontroledl_xcp_eind, ins_srtcontrole_eind) ins_srtcontrole_eind,
|
||
COALESCE (x.ins_srtcontroledl_xcp_groep, ins_srtcontrole_groep) ins_srtcontrole_groep,
|
||
(SELECT count(*)+1
|
||
FROM ins_deelsrtcontrole dc2
|
||
WHERE dc2.ins_deelsrtcontrole_key < dc.ins_deelsrtcontrole_key
|
||
AND dc2.ins_deel_key = dc.ins_deel_key
|
||
AND dc2.ins_srtcontrole_key = dc.ins_srtcontrole_key
|
||
AND dc2.ins_scenario_key = dc.ins_scenario_key) uitvoer_x,
|
||
DECODE (dc.ins_deelsrtcontrole_status,
|
||
0, 'Ingepland',
|
||
2, 'In behandeling',
|
||
3, 'Ter uitvoering',
|
||
5, 'Afgemeld',
|
||
6, 'Voltooid') status,
|
||
COALESCE(dc.ins_deelsrtcontrole_datum, dc.ins_deelsrtcontrole_plandatum, tr.datum_inbehandeling) ins_deelsrtcontrole_datum,
|
||
CASE
|
||
WHEN tr.mjob_doorgeschoven IS NOT NULL
|
||
THEN
|
||
TO_CHAR (dc.ins_deelsrtcontrole_freezedate, 'yyyy')
|
||
ELSE
|
||
NULL
|
||
END mjob_doorgeschoven,
|
||
dc.ins_deelsrtcontrole_plandatum
|
||
uitvoerdatum_gepland,
|
||
tr.datum_inbehandeling
|
||
uitvoerdatum_inbehandeling,
|
||
dc.ins_deelsrtcontrole_datum
|
||
uitvoerdatum_gereed,
|
||
(SELECT CASE
|
||
WHEN cm.ins_controlemode_success = 1 THEN 'ja' ELSE 'nee'
|
||
END
|
||
FROM ins_controlemode cm
|
||
WHERE cm.ins_controlemode_key = dc.ins_controlemode_key)
|
||
succes,
|
||
CASE
|
||
WHEN dc.ins_deelsrtcontrole_status = 5 THEN 'ja'
|
||
WHEN dc.ins_deelsrtcontrole_status = 6 THEN 'nee'
|
||
ELSE ''
|
||
END
|
||
actie_vereist,
|
||
tr.datum_afgemeld
|
||
afmeld_datum, -- Afgemeld op (= gereed/voltooid met vervolgactie..)
|
||
tr.datum_verwerkt
|
||
verwerk_datum, -- Verwerkt op (= voltooid zonder vervolgactie / vervolgactie voltooid)
|
||
dc.ins_deelsrtcontrole_datum_org
|
||
uitvoerdatum_origineel,
|
||
CASE
|
||
WHEN dc.ins_deelsrtcontrole_plandatum IS NOT NULL
|
||
AND dc.ins_deelsrtcontrole_plandatum > dc.ins_deelsrtcontrole_datum_org THEN 'respijt'
|
||
ELSE ''
|
||
END NN_respijt,
|
||
CASE
|
||
WHEN dc.ins_deelsrtcontrole_status in (5,6)
|
||
AND COALESCE(dc.ins_deelsrtcontrole_plandatum, dc.ins_deelsrtcontrole_datum_org) < dc.ins_deelsrtcontrole_datum THEN 'Te laat'
|
||
WHEN dc.ins_deelsrtcontrole_status in (5,6)
|
||
AND COALESCE(dc.ins_deelsrtcontrole_plandatum, dc.ins_deelsrtcontrole_datum_org) >= dc.ins_deelsrtcontrole_datum THEN 'Op tijd'
|
||
ELSE ''
|
||
END NN_ins_deelsrtcontrole_status,
|
||
CASE
|
||
WHEN dc.ins_deelsrtcontrole_status in (5,6) THEN
|
||
dc.ins_deelsrtcontrole_datum - COALESCE(dcp.ins_deelsrtcontrole_datum, x.ins_srtcontroledl_xcp_startdat, d.ins_deel_aanmaak)
|
||
ELSE NULL
|
||
END NN_cycli_dagen,
|
||
COALESCE (COALESCE(ins_deelsrtcontrole_freezecost, ins_srtcontroledl_xcp_materia), sc.ins_srtcontrole_materiaal) srtcontrole_materiaal,
|
||
cm.ins_controlemode_oms,
|
||
cm.ins_controlemode_opmerking,
|
||
dc.ins_deelsrtcontrole_opmerking,
|
||
dc.prs_perslid_key,
|
||
pf.prs_perslid_naam_full,
|
||
cd.ins_discipline_omschrijving,
|
||
pd.prs_dienst_omschrijving,
|
||
(SELECT max(b.prs_bedrijf_key)
|
||
FROM prs_bedrijf b, prs_bedrijfdienstlocatie bdl
|
||
WHERE pd.prs_dienst_key = bdl.prs_dienst_key
|
||
AND bdl.prs_bedrijf_key = b.prs_bedrijf_key
|
||
AND ( bdl.alg_gebouw_key = d.alg_gebouw_key
|
||
OR bdl.alg_locatie_key = d.alg_locatie_key)) prs_bedrijf_key
|
||
FROM ins_deelsrtcontrole dc,
|
||
ins_v_deel_gegevens d,
|
||
ins_srtcontrole sc,
|
||
prs_dienst pd,
|
||
alg_locatie l,
|
||
alg_gebouw g,
|
||
ins_controlemode cm,
|
||
ins_srtcontroledl_xcp x,
|
||
prs_v_perslid_fullnames_all pf,
|
||
ctr_discipline cd,
|
||
ctr_disc_params cdp,
|
||
(SELECT
|
||
v.ins_deelsrtcontrole_key,
|
||
v.ins_deelsrtcontrole_key_vorige,
|
||
dcv.ins_deelsrtcontrole_datum,
|
||
dcv.ins_controlemode_key,
|
||
dcv.ins_deelsrtcontrole_status
|
||
FROM (SELECT dc.ins_deelsrtcontrole_key,
|
||
dc.ins_deel_key,
|
||
dc.ins_srtcontrole_key,
|
||
(SELECT MAX (dc2.ins_deelsrtcontrole_key)
|
||
FROM ins_deelsrtcontrole dc2
|
||
WHERE dc2.ins_deelsrtcontrole_key < dc.ins_deelsrtcontrole_key
|
||
AND dc2.ins_deel_key = dc.ins_deel_key
|
||
AND dc2.ins_srtcontrole_key = dc.ins_srtcontrole_key
|
||
AND dc2.ins_scenario_key = dc.ins_scenario_key)
|
||
AS ins_deelsrtcontrole_key_vorige
|
||
FROM ins_deelsrtcontrole dc,
|
||
ins_srtcontroledl_xcp x,
|
||
ins_srtcontrole sc
|
||
WHERE dc.ins_deel_key = x.ins_deel_key
|
||
AND dc.ins_srtcontrole_key = x.ins_srtcontrole_key
|
||
AND x.ins_srtcontrole_key = sc.ins_srtcontrole_key) v,
|
||
ins_deelsrtcontrole dcv
|
||
WHERE v.ins_deelsrtcontrole_key_vorige = dcv.ins_deelsrtcontrole_key) dcp, -- dc_previous
|
||
(SELECT dc.ins_deelsrtcontrole_key,
|
||
(SELECT MAX (fac_tracking_datum)
|
||
FROM fac_tracking ft, fac_srtnotificatie sn
|
||
WHERE ft.fac_srtnotificatie_key = sn.fac_srtnotificatie_key
|
||
AND sn.fac_srtnotificatie_code = 'INSCBE'
|
||
AND fac_tracking_refkey = dc.ins_deelsrtcontrole_key) datum_inbehandeling,
|
||
(SELECT MAX (ft.fac_tracking_datum)
|
||
FROM fac_tracking ft, fac_srtnotificatie sn
|
||
WHERE ft.fac_srtnotificatie_key = sn.fac_srtnotificatie_key
|
||
AND sn.fac_srtnotificatie_code = 'INSCAF'
|
||
AND ft.fac_tracking_refkey = dc.ins_deelsrtcontrole_key) datum_afgemeld,
|
||
(SELECT MAX (ft.fac_tracking_datum)
|
||
FROM fac_tracking ft, fac_srtnotificatie sn
|
||
WHERE ft.fac_srtnotificatie_key = sn.fac_srtnotificatie_key
|
||
AND sn.fac_srtnotificatie_code = 'INSCVE'
|
||
AND ft.fac_tracking_refkey =dc.ins_deelsrtcontrole_key) datum_verwerkt,
|
||
(SELECT MAX (ft.fac_tracking_datum)
|
||
FROM fac_tracking ft, fac_srtnotificatie sn
|
||
WHERE ft.fac_srtnotificatie_key = sn.fac_srtnotificatie_key
|
||
AND sn.fac_srtnotificatie_code = 'INSCUP'
|
||
AND instr(lower(ft.fac_tracking_oms),'freeze datum:')>0
|
||
AND ft.fac_tracking_refkey =dc.ins_deelsrtcontrole_key) mjob_doorgeschoven
|
||
FROM ins_deelsrtcontrole dc ) tr
|
||
WHERE dc.ins_deel_key = d.ins_deel_key
|
||
AND dc.ins_srtcontrole_key = sc.ins_srtcontrole_key
|
||
AND dc.ins_controlemode_key = cm.ins_controlemode_key(+)
|
||
AND dc.prs_perslid_key = pf.prs_perslid_key(+)
|
||
AND sc.ctr_discipline_key = cd.ins_discipline_key
|
||
AND cd.ins_discipline_key = cdp.ctr_ins_discipline_key
|
||
AND x.ins_srtcontrole_key = sc.ins_srtcontrole_key(+)
|
||
AND x.ins_deel_key = d.ins_deel_key(+)
|
||
AND sc.prs_dienst_key = pd.prs_dienst_key(+)
|
||
AND d.alg_locatie_key = l.alg_locatie_key AND d.alg_gebouw_key = g.alg_gebouw_key
|
||
AND dc.ins_deelsrtcontrole_key = dcp.ins_deelsrtcontrole_key (+)
|
||
AND dc.ins_deelsrtcontrole_key = tr.ins_deelsrtcontrole_key (+)
|
||
UNION ALL
|
||
-- Controledefinities ook opmenen. Dus zonder dat er een resultaat record is.
|
||
-- Controles met een periode van 0 worden uitgesloten omdat dit geen daadwerkelijk ingeplande of in te plannen controles zijn.
|
||
SELECT
|
||
cd.ins_discipline_omschrijving,
|
||
CASE
|
||
WHEN cdp.ctr_disc_params_controle_type = 1
|
||
THEN
|
||
lcl.l ('lcl_ins_srtcontrole_insp')
|
||
WHEN cdp.ctr_disc_params_controle_type = 2
|
||
THEN
|
||
lcl.l ('lcl_ins_srtcontrole_repl')
|
||
WHEN cdp.ctr_disc_params_controle_type = 3
|
||
THEN
|
||
lcl.l ('lcl_ins_srtcontrole_cert')
|
||
END
|
||
taaksoort,
|
||
CASE
|
||
WHEN sc.ins_srtcontrole_mode = 0
|
||
THEN
|
||
lcl.l ('lcl_ins_srtcontrole_moment')
|
||
ELSE
|
||
lcl.l ('lcl_ins_srtcontrole_interval')
|
||
END
|
||
taak_modus,
|
||
cdp.ctr_disc_params_ismjob ismjob,
|
||
sc.ins_srtcontrole_options taakopties,
|
||
(SELECT COUNT (dc2.ins_deelsrtcontrole_key)
|
||
FROM ins_deelsrtcontrole dc2
|
||
WHERE dc2.ins_deel_key = xcp.ins_deel_key
|
||
AND dc2.ins_srtcontrole_key = xcp.ins_srtcontrole_key)
|
||
uitvoer_aantal,
|
||
NULL ins_deelsrtcontrole_key,
|
||
(SELECT MAX (dc2.ins_deelsrtcontrole_key)
|
||
FROM ins_deelsrtcontrole dc2
|
||
WHERE dc2.ins_deel_key = xcp.ins_deel_key
|
||
AND dc2.ins_srtcontrole_key = xcp.ins_srtcontrole_key
|
||
)
|
||
deelsrtcontrole_key_vorig,
|
||
xcp.ins_deel_key,
|
||
d.ins_deel_omschrijving,
|
||
sc.ins_srtcontrole_key,
|
||
xcp.ins_srtcontrole_info,
|
||
ins_srtcontrole_niveau,
|
||
xcp.ins_srtcontrole_omschrijving,
|
||
xcp.ins_srtcontrole_opmerking,
|
||
xcp.ins_srtcontrole_periode,
|
||
DECODE (xcp.ins_srtcontrole_eenheid,
|
||
0, 'Uurlijks',
|
||
1, 'Dagelijks',
|
||
2, 'Wekelijks',
|
||
3, 'Maandelijks',
|
||
4, 'Jaarlijks',
|
||
'Onbekend')
|
||
ins_srtcontrole_eenheid,
|
||
xcp.ins_srtcontrole_level, -- prioriteit
|
||
xcp.ins_srtcontroledl_xcp_perc,
|
||
xcp.ins_srtcontroledl_xcp_startdat,
|
||
xcp.ins_srtcontroledl_xcp_eind,
|
||
xcp.ins_srtcontroledl_xcp_groep,
|
||
0 uitvoer_x,
|
||
NULL status,
|
||
CASE WHEN v.ins_deelsrtcontrole_key IS NULL THEN
|
||
COALESCE (
|
||
ins_srtcontroledl_xcp_startdat,
|
||
fac.nextcyclusdatedeel (xcp.ins_deel_key,
|
||
xcp.ins_srtcontrole_key,
|
||
1))
|
||
WHEN v.ins_deelsrtcontrole_key IS NOT NULL AND v.ins_controlemode_success = 0 AND cdp.ctr_disc_params_ismjob = 1 THEN
|
||
-- Als mjob taak afhandeling niet succesvol heeft (= niet uitgevoerd), dan wordt deze in Facilitor voor nieuwe freeze-jaar opgenomen/voorgesteld. Nemen we ook zo op in deze dwh-view
|
||
(SELECT TO_DATE ('01-01-' || fac_setting_pvalue, 'dd-MM-yyyy') FROM fac_setting WHERE fac_setting_name = 'mjb_freeze_year')
|
||
ELSE
|
||
fac.nextcyclusdate (v.datum_uitvoer, xcp.ins_srtcontrole_mode, xcp.ins_srtcontrole_eenheid, xcp.ins_srtcontrole_periode, xcp.ins_srtcontrole_bits,1,cdp.ctr_disc_params_ismjob)
|
||
END ins_deelsrtcontrole_datum,
|
||
NULL
|
||
mjob_doorgeschoven,
|
||
NULL
|
||
uitvoerdatum_gepland,
|
||
NULL
|
||
uitvoerdatum_inbehandeling,
|
||
NULL
|
||
uitvoerdatum_gereed,
|
||
NULL
|
||
succes,
|
||
NULL
|
||
actie_vereist,
|
||
NULL
|
||
afmeld_datum,
|
||
NULL
|
||
verwerk_datum,
|
||
NULL
|
||
uitvoerdatum_origineel,
|
||
NULL
|
||
respijt,
|
||
CASE WHEN v.ins_deelsrtcontrole_key IS NULL THEN
|
||
DECODE (
|
||
SIGN(
|
||
COALESCE (ins_srtcontroledl_xcp_startdat, fac.nextcyclusdatedeel (xcp.ins_deel_key, xcp.ins_srtcontrole_key, 1))
|
||
- SYSDATE),
|
||
-1,
|
||
'Te laat',
|
||
'')
|
||
WHEN v.ins_deelsrtcontrole_key IS NOT NULL AND v.ins_controlemode_success = 0 AND cdp.ctr_disc_params_ismjob = 1 THEN
|
||
DECODE (
|
||
SIGN(
|
||
(SELECT TO_DATE ('01-01-' || fac_setting_pvalue, 'dd-MM-yyyy') FROM fac_setting WHERE fac_setting_name = 'mjb_freeze_year')
|
||
- SYSDATE),
|
||
-1,
|
||
'Te laat',
|
||
'')
|
||
ELSE
|
||
DECODE (
|
||
SIGN( (fac.nextcyclusdate (v.datum_uitvoer, xcp.ins_srtcontrole_mode, xcp.ins_srtcontrole_eenheid, xcp.ins_srtcontrole_periode, xcp.ins_srtcontrole_bits,1,cdp.ctr_disc_params_ismjob))
|
||
- SYSDATE),
|
||
-1,
|
||
'Te laat',
|
||
'')
|
||
END ins_deelsrtcontrole_status,
|
||
NULL cycli_dagen,
|
||
xcp.ins_srtcontrole_materiaal,
|
||
NULL ins_controlemode_oms,
|
||
NULL ins_controlemode_opmerking,
|
||
NULL ins_deelsrtcontrole_opmerking,
|
||
NULL prs_perslid_key,
|
||
NULL prs_perslid_naam_full,
|
||
cd.ins_discipline_omschrijving,
|
||
pd.prs_dienst_omschrijving,
|
||
(SELECT max(b.prs_bedrijf_key)
|
||
FROM prs_bedrijf b, prs_bedrijfdienstlocatie bdl
|
||
WHERE pd.prs_dienst_key = bdl.prs_dienst_key
|
||
AND bdl.prs_bedrijf_key = b.prs_bedrijf_key
|
||
AND ( bdl.alg_gebouw_key = d.alg_gebouw_key
|
||
OR bdl.alg_locatie_key = d.alg_locatie_key)) prs_bedrijf_key
|
||
FROM ins_v_defined_inspect_xcp xcp,
|
||
ins_v_deel_gegevens d,
|
||
ins_srtcontrole sc,
|
||
prs_dienst pd,
|
||
alg_locatie l,
|
||
alg_gebouw g,
|
||
ctr_discipline cd,
|
||
ctr_disc_params cdp,
|
||
(SELECT dc.ins_deelsrtcontrole_key,
|
||
dc.ins_deel_key,
|
||
dc.ins_srtcontrole_key,
|
||
dc.ins_controlemode_key,
|
||
cm.ins_controlemode_success,
|
||
dc.ins_deelsrtcontrole_freezedate,
|
||
COALESCE(dc.ins_deelsrtcontrole_datum,
|
||
DECODE(xcp.ctr_ismjob, 1, COALESCE(dc.ins_deelsrtcontrole_freezedate, dc.ins_deelsrtcontrole_plandatum),
|
||
COALESCE(dc.ins_deelsrtcontrole_plandatum, tr.datum_inbehandeling)
|
||
)) datum_uitvoer
|
||
FROM ins_deelsrtcontrole dc, ins_v_defined_inspect_xcp xcp, ins_controlemode cm,
|
||
(SELECT dc.ins_deelsrtcontrole_key,
|
||
(SELECT MAX (fac_tracking_datum)
|
||
FROM fac_tracking ft, fac_srtnotificatie sn
|
||
WHERE ft.fac_srtnotificatie_key = sn.fac_srtnotificatie_key
|
||
AND sn.fac_srtnotificatie_code = 'INSCBE'
|
||
AND fac_tracking_refkey = dc.ins_deelsrtcontrole_key) datum_inbehandeling
|
||
FROM ins_deelsrtcontrole dc ) tr
|
||
WHERE dc.ins_deelsrtcontrole_key = (SELECT max(ins_deelsrtcontrole_key)
|
||
FROM ins_deelsrtcontrole dc2
|
||
WHERE dc2.ins_deel_key = dc.ins_deel_key
|
||
AND dc2.ins_srtcontrole_key = dc.ins_srtcontrole_key)
|
||
AND dc.ins_srtcontrole_key = xcp.ins_srtcontrole_key AND dc.ins_deel_key = xcp.ins_deel_key
|
||
AND dc.ins_deelsrtcontrole_key = tr.ins_deelsrtcontrole_key
|
||
AND dc.ins_controlemode_key = cm.ins_controlemode_key(+)
|
||
) v
|
||
WHERE xcp.ins_deel_key = d.ins_deel_key
|
||
AND xcp.ins_srtcontrole_key = sc.ins_srtcontrole_key
|
||
AND xcp.ins_srtcontrole_periode <> 0
|
||
AND sc.ctr_discipline_key = cd.ins_discipline_key
|
||
AND cd.ins_discipline_key = cdp.ctr_ins_discipline_key
|
||
AND sc.prs_dienst_key = pd.prs_dienst_key(+)
|
||
AND d.alg_locatie_key = l.alg_locatie_key AND d.alg_gebouw_key = g.alg_gebouw_key
|
||
AND xcp.ins_deel_key = v.ins_deel_key (+) AND xcp.ins_srtcontrole_key = v.ins_srtcontrole_key (+) ;
|
||
|
||
CREATE OR REPLACE VIEW aaxx_v_dwh_inspectie
|
||
(
|
||
deelsrtcontrole_key,
|
||
deel_key,
|
||
deel_omschrijving,
|
||
srtcontrole_info,
|
||
srtcontrole_niveau,
|
||
srtcontrole_omschrijving,
|
||
srtcontrole_opmerking,
|
||
srtcontrole_periode,
|
||
srtcontrole_eenheid,
|
||
srtcontrole_level, -- prioriteit
|
||
srtcontrole_percentage,
|
||
srtcontrole_start,
|
||
srtcontrole_eind,
|
||
srtcontrole_groep,
|
||
deelsrtcontrole_datum,
|
||
deelsrtcontrole_gepland,
|
||
deelsrtcontrole_status,
|
||
deelsrtcontrole_status_next,
|
||
srtcontrole_materiaal,
|
||
controlemode_omschrijving,
|
||
controlemode_opmerking,
|
||
deelsrtcontrole_opmerking,
|
||
prs_perslid_key,
|
||
gecontroleerd_door,
|
||
taak_categorie,
|
||
dienst,
|
||
prs_bedrijf_key,
|
||
status,
|
||
uitvoerdatum
|
||
)
|
||
AS
|
||
SELECT dc.ins_deelsrtcontrole_key,
|
||
d.ins_deel_key,
|
||
d.ins_deel_omschrijving,
|
||
sc.ins_srtcontrole_info,
|
||
sc.ins_srtcontrole_niveau,
|
||
sc.ins_srtcontrole_omschrijving,
|
||
COALESCE (x.ins_srtcontroledl_xcp_opmerk, sc.ins_srtcontrole_opmerking) ins_srtcontrole_opmerking,
|
||
COALESCE (x.ins_srtcontroledl_xcp_periode, sc.ins_srtcontrole_periode) ins_srtcontrole_periode,
|
||
DECODE (
|
||
COALESCE (x.ins_srtcontroledl_xcp_eenheid, sc.ins_srtcontrole_eenheid),
|
||
0,
|
||
'Uurlijks',
|
||
1,
|
||
'Dagelijks',
|
||
2,
|
||
'Wekelijks',
|
||
3,
|
||
'Maandelijks',
|
||
4,
|
||
'Jaarlijks',
|
||
'Onbekend')
|
||
ins_srtcontrole_eenheid,
|
||
sc.ins_srtcontrole_level, -- prioriteit
|
||
COALESCE (x.ins_srtcontroledl_xcp_perc, sc.ins_srtcontrole_percentage) ins_srtcontrole_percentage,
|
||
x.ins_srtcontroledl_xcp_startdat,
|
||
COALESCE (x.ins_srtcontroledl_xcp_eind, ins_srtcontrole_eind) ins_srtcontrole_eind,
|
||
COALESCE (x.ins_srtcontroledl_xcp_groep, ins_srtcontrole_groep) ins_srtcontrole_groep,
|
||
ins_deelsrtcontrole_datum,
|
||
(SELECT MAX (dc2.ins_deelsrtcontrole_datum)
|
||
+ sc.ins_srtcontrole_periode
|
||
FROM ins_deelsrtcontrole dc2
|
||
WHERE dc2.ins_deelsrtcontrole_datum <
|
||
dc.ins_deelsrtcontrole_datum
|
||
AND dc2.ins_deel_key = dc.ins_deel_key
|
||
AND dc2.ins_srtcontrole_key = dc.ins_srtcontrole_key
|
||
AND dc2.ins_controlemode_key = dc.ins_controlemode_key)
|
||
ins_deelsrtcontrole_gepland,
|
||
(SELECT DECODE (
|
||
SIGN( MAX (dc2.ins_deelsrtcontrole_datum)
|
||
+ sc.ins_srtcontrole_periode
|
||
- dc.ins_deelsrtcontrole_datum),
|
||
-1,
|
||
'Te laat',
|
||
'Op tijd')
|
||
FROM ins_deelsrtcontrole dc2
|
||
WHERE dc2.ins_deelsrtcontrole_datum <
|
||
dc.ins_deelsrtcontrole_datum
|
||
AND dc2.ins_deel_key = dc.ins_deel_key
|
||
AND dc2.ins_srtcontrole_key = dc.ins_srtcontrole_key
|
||
AND dc2.ins_controlemode_key = dc.ins_controlemode_key)
|
||
ins_deelsrtcontrole_status,
|
||
(SELECT DECODE (
|
||
COUNT ( * ),
|
||
0,
|
||
DECODE (
|
||
SIGN( (dc.ins_deelsrtcontrole_datum
|
||
+ sc.ins_srtcontrole_periode)
|
||
- SYSDATE),
|
||
-1,
|
||
'Te laat',
|
||
''))
|
||
status_fut
|
||
FROM ins_deelsrtcontrole dc2
|
||
WHERE dc2.ins_deelsrtcontrole_datum >
|
||
dc.ins_deelsrtcontrole_datum
|
||
AND dc2.ins_deel_key = dc.ins_deel_key
|
||
AND dc2.ins_srtcontrole_key = dc.ins_srtcontrole_key
|
||
AND dc2.ins_controlemode_key = dc.ins_controlemode_key)
|
||
ins_deelsrtcontrole_next,
|
||
COALESCE (COALESCE(ins_deelsrtcontrole_freezecost, ins_srtcontroledl_xcp_materia), sc.ins_srtcontrole_materiaal) srtcontrole_materiaal,
|
||
cm.ins_controlemode_oms,
|
||
cm.ins_controlemode_opmerking,
|
||
dc.ins_deelsrtcontrole_opmerking,
|
||
dc.prs_perslid_key,
|
||
pf.prs_perslid_naam_full,
|
||
cd.ins_discipline_omschrijving,
|
||
pd.prs_dienst_omschrijving,
|
||
(SELECT max(b.prs_bedrijf_key)
|
||
FROM prs_bedrijf b, prs_bedrijfdienstlocatie bdl
|
||
WHERE pd.prs_dienst_key = bdl.prs_dienst_key
|
||
AND bdl.prs_bedrijf_key = b.prs_bedrijf_key
|
||
AND ( bdl.alg_gebouw_key = d.alg_gebouw_key
|
||
OR bdl.alg_locatie_key = d.alg_locatie_key)) prs_bedrijf_key,
|
||
DECODE (dc.ins_deelsrtcontrole_status,
|
||
0, 'Ingepland',
|
||
2, 'In behandeling',
|
||
5, 'Afgemeld',
|
||
6, 'Voltooid') status,
|
||
dc.ins_deelsrtcontrole_datum
|
||
FROM ins_deelsrtcontrole dc,
|
||
ins_v_deel_gegevens d,
|
||
ins_srtcontrole sc,
|
||
prs_dienst pd,
|
||
alg_locatie l,
|
||
alg_gebouw g,
|
||
ins_controlemode cm,
|
||
ins_srtcontroledl_xcp x,
|
||
prs_v_perslid_fullnames_all pf,
|
||
ctr_discipline cd
|
||
WHERE dc.ins_deel_key = d.ins_deel_key
|
||
AND dc.ins_srtcontrole_key = sc.ins_srtcontrole_key
|
||
AND dc.ins_controlemode_key = cm.ins_controlemode_key(+)
|
||
AND dc.prs_perslid_key = pf.prs_perslid_key(+)
|
||
AND sc.ctr_discipline_key = cd.ins_discipline_key
|
||
AND x.ins_srtcontrole_key = sc.ins_srtcontrole_key(+)
|
||
AND x.ins_deel_key = d.ins_deel_key(+)
|
||
AND sc.prs_dienst_key = pd.prs_dienst_key(+)
|
||
AND d.alg_locatie_key = l.alg_locatie_key AND d.alg_gebouw_key = g.alg_gebouw_key
|
||
UNION ALL
|
||
-- Controledefinities ook opmenen. Dus zonder dat er een resultaat record is.
|
||
-- Controles met een periode van 0 worden uitgesloten omdat dit geen daadwerkelijk ingeplande of in te plannen controles zijn.
|
||
SELECT NULL ins_deelsrtcontrole_key,
|
||
xcp.ins_deel_key,
|
||
d.ins_deel_omschrijving,
|
||
xcp.ins_srtcontrole_info,
|
||
ins_srtcontrole_niveau,
|
||
xcp.ins_srtcontrole_omschrijving,
|
||
xcp.ins_srtcontrole_opmerking,
|
||
xcp.ins_srtcontrole_periode,
|
||
DECODE (xcp.ins_srtcontrole_eenheid,
|
||
0, 'Uurlijks',
|
||
1, 'Dagelijks',
|
||
2, 'Wekelijks',
|
||
3, 'Maandelijks',
|
||
4, 'Jaarlijks',
|
||
'Onbekend')
|
||
ins_srtcontrole_eenheid,
|
||
xcp.ins_srtcontrole_level, -- prioriteit
|
||
xcp.ins_srtcontroledl_xcp_perc,
|
||
xcp.ins_srtcontroledl_xcp_startdat,
|
||
xcp.ins_srtcontroledl_xcp_eind,
|
||
xcp.ins_srtcontroledl_xcp_groep,
|
||
DECODE (
|
||
(SELECT COUNT ( * )
|
||
FROM ins_deelsrtcontrole dsc
|
||
WHERE dsc.ins_deel_key = d.ins_deel_key
|
||
AND dsc.ins_srtcontrole_key = xcp.ins_srtcontrole_key),
|
||
0,
|
||
COALESCE (
|
||
ins_srtcontroledl_xcp_startdat,
|
||
fac.nextcyclusdatedeel (xcp.ins_deel_key,
|
||
xcp.ins_srtcontrole_key,
|
||
1)),
|
||
fac.nextcyclusdatedeel (d.ins_deel_key,
|
||
xcp.ins_srtcontrole_key,
|
||
1))
|
||
ins_deelsrtcontrole_datum,
|
||
NULL ins_deelsrtcontrole_gepland,
|
||
DECODE (
|
||
SIGN(DECODE (
|
||
(SELECT COUNT ( * )
|
||
FROM ins_deelsrtcontrole dsc
|
||
WHERE dsc.ins_deel_key = d.ins_deel_key
|
||
AND dsc.ins_srtcontrole_key =
|
||
xcp.ins_srtcontrole_key),
|
||
0,
|
||
COALESCE (
|
||
ins_srtcontroledl_xcp_startdat,
|
||
fac.nextcyclusdatedeel (xcp.ins_deel_key,
|
||
xcp.ins_srtcontrole_key,
|
||
1)),
|
||
fac.nextcyclusdatedeel (d.ins_deel_key,
|
||
xcp.ins_srtcontrole_key,
|
||
1))
|
||
- SYSDATE),
|
||
-1,
|
||
'Te laat',
|
||
'Op tijd')
|
||
ins_deelsrtcontrole_status,
|
||
NULL ins_deelsrtcontrole_next,
|
||
xcp.ins_srtcontrole_materiaal,
|
||
NULL ins_controlemode_oms,
|
||
NULL ins_controlemode_opmerking,
|
||
NULL ins_deelsrtcontrole_opmerking,
|
||
NULL prs_perslid_key,
|
||
NULL prs_perslid_naam_full,
|
||
cd.ins_discipline_omschrijving,
|
||
pd.prs_dienst_omschrijving,
|
||
(SELECT max(b.prs_bedrijf_key)
|
||
FROM prs_bedrijf b, prs_bedrijfdienstlocatie bdl
|
||
WHERE pd.prs_dienst_key = bdl.prs_dienst_key
|
||
AND bdl.prs_bedrijf_key = b.prs_bedrijf_key
|
||
AND ( bdl.alg_gebouw_key = d.alg_gebouw_key
|
||
OR bdl.alg_locatie_key = d.alg_locatie_key)) prs_bedrijf_key,
|
||
NULL status,
|
||
NULL ins_deelsrtcontrole_datum
|
||
FROM ins_v_defined_inspect_xcp xcp,
|
||
ins_v_deel_gegevens d,
|
||
ins_srtcontrole sc,
|
||
prs_dienst pd,
|
||
alg_locatie l,
|
||
alg_gebouw g,
|
||
ctr_discipline cd
|
||
WHERE xcp.ins_deel_key = d.ins_deel_key
|
||
AND xcp.ins_srtcontrole_key = sc.ins_srtcontrole_key
|
||
AND xcp.ins_srtcontrole_periode <> 0
|
||
AND sc.ctr_discipline_key = cd.ins_discipline_key
|
||
AND sc.prs_dienst_key = pd.prs_dienst_key(+)
|
||
AND d.alg_locatie_key = l.alg_locatie_key AND d.alg_gebouw_key = g.alg_gebouw_key ;
|
||
|
||
-------------------------------------------------------------------------------
|
||
-- EXPORTFUNCTIE - DWH_INS_OBJECT
|
||
-------------------------------------------------------------------------------
|
||
|
||
CREATE OR REPLACE VIEW aaxx_v_dwh_ins_object
|
||
(
|
||
ins_deel_key,
|
||
identificatie,
|
||
beschrijving,
|
||
discipline_omschrijving,
|
||
groep_omschrijving,
|
||
objectsoort_omschrijving,
|
||
objectsoort_code,
|
||
registratiedatum,
|
||
vervaldatum,
|
||
koppel_type,
|
||
plaats_eigenaar,
|
||
regio_key,
|
||
district_key,
|
||
locatie_key,
|
||
gebouw_key,
|
||
terreinsector_key,
|
||
verdieping_key,
|
||
ruimte_key,
|
||
werkplek_key,
|
||
afdeling_key,
|
||
perslid_key,
|
||
beheerder,
|
||
actief,
|
||
hoeveelheid,
|
||
conditie,
|
||
prioriteit
|
||
)
|
||
AS
|
||
SELECT ins_deel_key,
|
||
ins_deel_omschrijving identificatie,
|
||
ins_deel_opmerking beschrijving,
|
||
ins_discipline_omschrijving discipline_omschrijving,
|
||
ins_srtgroep_omschrijving groep_omschrijving,
|
||
ins_srtdeel_omschrijving objectsoort_omschrijving,
|
||
ins_srtdeel_code objectsoort_code,
|
||
ins_deel_aanmaak registratiedatum,
|
||
ins_deel_vervaldatum vervaldatum,
|
||
'Afdeling' koppel_type,
|
||
(SELECT d.prs_afdeling_omschrijving
|
||
FROM prs_v_afdeling d
|
||
WHERE prs_afdeling_key =
|
||
COALESCE (ins_alg_ruimte_key_org, ins_alg_ruimte_key))
|
||
plaats_eigenaar,
|
||
NULL alg_regio_key,
|
||
NULL alg_district_key,
|
||
NULL alg_locatie_key,
|
||
NULL alg_gebouw_key,
|
||
NULL terreinsector_key,
|
||
NULL alg_verdieping_key,
|
||
NULL alg_ruimte_key,
|
||
NULL prs_werkplek_key,
|
||
COALESCE (ins_alg_ruimte_key_org, ins_alg_ruimte_key) prs_afdeling_key,
|
||
NULL prs_perslid_key,
|
||
pf1.prs_perslid_naam_full beheerder,
|
||
ins_deel_actief,
|
||
ins_deel_aantal,
|
||
ins_deel_mjb_score1,
|
||
ins_deel_mjb_score2
|
||
FROM ins_v_aanwezigdeel d,
|
||
ins_v_aanwezigsrtdeel srt,
|
||
ins_v_aanwezigsrtgroep sg,
|
||
ins_v_aanwezigdiscipline disc,
|
||
prs_v_perslid_fullnames_all pf1,
|
||
prs_v_afdeling_boom pb
|
||
WHERE srt.ins_srtdeel_key = d.ins_srtdeel_key
|
||
AND sg.ins_srtgroep_key = srt.ins_srtgroep_key
|
||
AND sg.ins_discipline_key = disc.ins_discipline_key
|
||
AND prs_perslid_key_beh = pf1.prs_perslid_key(+)
|
||
AND d.ins_alg_ruimte_key = pb.prs_afdeling_key
|
||
AND d.ins_deel_module = 'INS'
|
||
AND d.ins_deel_parent_key IS NULL
|
||
AND COALESCE (ins_alg_ruimte_type_org, ins_alg_ruimte_type) = 'A'
|
||
UNION
|
||
SELECT ins_deel_key,
|
||
ins_deel_omschrijving,
|
||
ins_deel_opmerking,
|
||
ins_discipline_omschrijving,
|
||
ins_srtgroep_omschrijving,
|
||
ins_srtdeel_omschrijving,
|
||
ins_srtdeel_code,
|
||
ins_deel_aanmaak,
|
||
ins_deel_vervaldatum,
|
||
'Persoon',
|
||
COALESCE (pf2.prs_perslid_naam_full, 'onbekend') eigenaar,
|
||
NULL alg_regio_key,
|
||
NULL alg_district_key,
|
||
NULL alg_locatie_key,
|
||
NULL alg_gebouw_key,
|
||
NULL terreinsector_key,
|
||
NULL alg_verdieping_key,
|
||
NULL alg_ruimte_key,
|
||
NULL prs_werkplek_key,
|
||
NULL prs_afdeling_key,
|
||
COALESCE (ins_alg_ruimte_key_org, ins_alg_ruimte_key) prs_perslid_key,
|
||
pf1.prs_perslid_naam_full,
|
||
ins_deel_actief,
|
||
ins_deel_aantal,
|
||
ins_deel_mjb_score1,
|
||
ins_deel_mjb_score2
|
||
FROM ins_v_aanwezigdeel d,
|
||
ins_v_aanwezigsrtdeel srt,
|
||
ins_v_aanwezigsrtgroep sg,
|
||
ins_v_aanwezigdiscipline disc,
|
||
prs_v_perslid_fullnames_all pf1,
|
||
prs_v_perslid_fullnames_all pf2
|
||
WHERE srt.ins_srtdeel_key = d.ins_srtdeel_key
|
||
AND sg.ins_srtgroep_key = srt.ins_srtgroep_key
|
||
AND sg.ins_discipline_key = disc.ins_discipline_key
|
||
AND prs_perslid_key_beh = pf1.prs_perslid_key(+)
|
||
AND d.ins_deel_module = 'INS'
|
||
AND d.ins_deel_parent_key IS NULL
|
||
AND COALESCE (ins_alg_ruimte_type_org, ins_alg_ruimte_type) = 'P'
|
||
AND pf2.prs_perslid_key(+) =
|
||
COALESCE (ins_alg_ruimte_key_org, ins_alg_ruimte_key)
|
||
UNION
|
||
SELECT ins_deel_key,
|
||
ins_deel_omschrijving,
|
||
ins_deel_opmerking,
|
||
ins_discipline_omschrijving,
|
||
ins_srtgroep_omschrijving,
|
||
ins_srtdeel_omschrijving,
|
||
ins_srtdeel_code,
|
||
ins_deel_aanmaak,
|
||
ins_deel_vervaldatum,
|
||
DECODE (o.alg_onroerendgoed_type,
|
||
'R',
|
||
'Ruimte',
|
||
'T',
|
||
'Terrein',
|
||
'W',
|
||
'Werkplek'),
|
||
o.alg_plaatsaanduiding || ' ('
|
||
|| DECODE (
|
||
o.alg_onroerendgoed_type,
|
||
'R',
|
||
(SELECT r.alg_ruimte_omschrijving
|
||
FROM alg_ruimte r
|
||
WHERE r.alg_ruimte_key = d.ins_alg_ruimte_key),
|
||
'T',
|
||
(SELECT t.alg_terreinsector_naam
|
||
FROM alg_terreinsector t
|
||
WHERE t.alg_terreinsector_key = d.ins_alg_ruimte_key),
|
||
'W',
|
||
(SELECT r.alg_ruimte_omschrijving
|
||
FROM alg_ruimte r, prs_werkplek w
|
||
WHERE r.alg_ruimte_key = w.prs_alg_ruimte_key
|
||
AND w.prs_werkplek_key = d.ins_alg_ruimte_key)
|
||
)
|
||
|| ')'
|
||
eigenaar,
|
||
di.alg_regio_key alg_regio_key,
|
||
l.alg_district_key alg_district_key,
|
||
o.alg_locatie_key alg_locatie_key,
|
||
o.alg_gebouw_key alg_gebouw_key,
|
||
o.alg_terreinsector_key terreinsector_key,
|
||
o.alg_verdieping_key alg_verdieping_key,
|
||
o.alg_ruimte_key alg_ruimte_key,
|
||
o.prs_werkplek_key alg_werkplek_key,
|
||
NULL prs_afdeling_key,
|
||
NULL prs_perslid_key,
|
||
pf1.prs_perslid_naam_full,
|
||
ins_deel_actief,
|
||
ins_deel_aantal,
|
||
ins_deel_mjb_score1,
|
||
ins_deel_mjb_score2
|
||
FROM ins_v_aanwezigdeel d,
|
||
ins_v_aanwezigsrtdeel srt,
|
||
ins_v_aanwezigsrtgroep sg,
|
||
ins_v_aanwezigdiscipline disc,
|
||
prs_v_perslid_fullnames_all pf1,
|
||
ins_v_alg_overzicht o,
|
||
alg_locatie l,
|
||
alg_district di
|
||
WHERE srt.ins_srtdeel_key = d.ins_srtdeel_key
|
||
AND sg.ins_srtgroep_key = srt.ins_srtgroep_key
|
||
AND sg.ins_discipline_key = disc.ins_discipline_key
|
||
AND prs_perslid_key_beh = pf1.prs_perslid_key(+)
|
||
AND d.ins_deel_module = 'INS'
|
||
AND d.ins_deel_parent_key IS NULL
|
||
AND COALESCE (ins_alg_ruimte_type_org, ins_alg_ruimte_type) IN
|
||
('T', 'R', 'W')
|
||
AND o.alg_onroerendgoed_keys =
|
||
COALESCE (ins_alg_ruimte_key_org, ins_alg_ruimte_key)
|
||
AND o.alg_onroerendgoed_type =
|
||
COALESCE (ins_alg_ruimte_type_org, ins_alg_ruimte_type)
|
||
AND o.alg_locatie_key = d.ins_alg_locatie_key
|
||
AND o.alg_locatie_key = l.alg_locatie_key
|
||
AND l.alg_district_key = di.alg_district_key;
|
||
|
||
-------------------------------------------------------------------------------
|
||
-- EXPORTFUNCTIE - DWH_INS_KENMERK_OBJECT
|
||
-------------------------------------------------------------------------------
|
||
CREATE OR REPLACE VIEW aaxx_v_dwh_kenmerk_object
|
||
(
|
||
deel_key,
|
||
ins_kenmerk_omschrijving,
|
||
ins_kenmerk_waarde
|
||
)
|
||
AS
|
||
SELECT ins_deel_key deel_key,
|
||
srt.ins_srtkenmerk_omschrijving kenmerk_omschrijving,
|
||
aaxx_get_kenmerkwaarde (srt.ins_srtkenmerk_kenmerktype,
|
||
srt.fac_kenmerkdomein_key,
|
||
kd.ins_kenmerkdeel_waarde)
|
||
kenmerk_waarde
|
||
FROM ins_kenmerkdeel kd, ins_kenmerk k, ins_srtkenmerk srt
|
||
WHERE kd.ins_kenmerk_key = k.ins_kenmerk_key
|
||
AND srt.ins_srtkenmerk_key = k.ins_srtkenmerk_key
|
||
AND ins_kenmerkdeel_verwijder IS NULL;
|
||
|
||
-------------------------------------------------------------------------------
|
||
-- EXPORTFUNCTIE - DWH_KENMERK_INSPECTIE
|
||
-------------------------------------------------------------------------------
|
||
CREATE OR REPLACE VIEW aaxx_v_dwh_kenmerk_inspectie
|
||
(
|
||
deelsrtcontrole_key,
|
||
ins_kenmerk_omschrijving,
|
||
ins_kenmerk_waarde
|
||
)
|
||
AS
|
||
SELECT ins_deelsrtcontrole_key deelsrtcontrole_key,
|
||
srt.ins_srtkenmerk_omschrijving kenmerk_omschrijving,
|
||
aaxx_get_kenmerkwaarde (srt.ins_srtkenmerk_kenmerktype,
|
||
srt.fac_kenmerkdomein_key,
|
||
kds.ins_kmdeelsrtcontr_waarde)
|
||
kenmerk_waarde
|
||
FROM ins_kmdeelsrtcontr kds, ins_kenmerk k, ins_srtkenmerk srt
|
||
WHERE kds.ins_kenmerk_key = k.ins_kenmerk_key
|
||
AND srt.ins_srtkenmerk_key = k.ins_srtkenmerk_key
|
||
AND ins_kmdeelsrtcontr_verwijder IS NULL;
|
||
|
||
|
||
-------------------------------------------------------------------------------
|
||
-- EXPORTFUNCTIE - DWH_UREN
|
||
-------------------------------------------------------------------------------
|
||
CREATE OR REPLACE VIEW aaxx_v_dwh_uren
|
||
(
|
||
mld_opdr_id,
|
||
prs_perslid_key,
|
||
datum,
|
||
uren_besteed,
|
||
uren_opmerking,
|
||
uren_status
|
||
)
|
||
AS
|
||
SELECT ug.mld_melding_key || '/' || ug.mld_opdr_bedrijfopdr_volgnr,
|
||
ug.prs_perslid_key,
|
||
ug.mld_opdr_uren_datum,
|
||
ug.mld_opdr_uren_besteed,
|
||
ug.mld_opdr_uren_opmerking,
|
||
REPLACE(ug.uren_status_tekst, '&'||'nbsp;', ' ') uren_status_tekst
|
||
FROM aaxx_v_exact_uren_gegevens ug;
|
||
|
||
-------------------------------------------------------------------------------
|
||
-- EXPORTFUNCTIE - DWH_UREN_IMPROD
|
||
-------------------------------------------------------------------------------
|
||
CREATE OR REPLACE VIEW aaxx_v_dwh_uren_improd
|
||
(
|
||
prs_perslid_key,
|
||
code_improductief,
|
||
omschr_improductief,
|
||
datum,
|
||
uren_besteed,
|
||
uren_opmerking,
|
||
uren_status
|
||
)
|
||
AS
|
||
SELECT ou.prs_perslid_key,
|
||
io.mld_impropdr_code,
|
||
io.mld_impropdr_omschrijving,
|
||
ou.mld_opdr_uren_datum,
|
||
ou.mld_opdr_uren_besteed,
|
||
ou.mld_opdr_uren_opmerking,
|
||
REPLACE(lx.fac_locale_xsl_tekst, '&'||'nbsp;', ' ') fac_locale_xsl_tekst
|
||
FROM mld_opdr_uren ou,
|
||
mld_impropdr io,
|
||
(SELECT *
|
||
FROM fac_locale_xsl
|
||
WHERE fac_locale_xsl_lang = 'NL') lx
|
||
WHERE ou.mld_impropdr_key = io.mld_impropdr_key
|
||
AND lx.fac_locale_xsl_label =
|
||
'lcl_mld_uren_status_' || ou.mld_opdr_uren_status;
|
||
|
||
-------------------------------------------------------------------------------
|
||
-- DATAWAREHOUSE - DWH_TRACKING
|
||
-------------------------------------------------------------------------------
|
||
CREATE OR REPLACE VIEW aaxx_v_dwh_tracking
|
||
AS
|
||
SELECT t.fac_tracking_refkey ref_key,
|
||
sn.fac_srtnotificatie_xmlnode soort,
|
||
t.fac_tracking_datum datum,
|
||
-- specifieke actiecodes zijn bepaald bij mareon-factuurverwerking (FIN_FACTUR_MARX) en zijn vastgelegd op Z:\Project\Implementaties\Customers\AAXX\DOC\Mareon_Factuurverwerking\Mareon_factuurscanning_SPELREGELS.xlsx (ticket AAIT#75826)
|
||
CASE WHEN sn.fac_srtnotificatie_xmlnode = 'factuur' AND fac_srtnotificatie_code = 'FINUPD' AND INSTR(t.fac_tracking_oms, 'Deze factuur is ingeboekt terwijl de Opdracht al op VERWERKT staat') > 0 THEN 'FINA01'
|
||
WHEN sn.fac_srtnotificatie_xmlnode = 'factuur' AND fac_srtnotificatie_code = 'FINUPD' AND INSTR(t.fac_tracking_oms, 'Hetzelfde factuur-nummer is al eerder geregistreerd op deze Opdracht') > 0 THEN 'FINA02'
|
||
WHEN sn.fac_srtnotificatie_xmlnode = 'factuur' AND fac_srtnotificatie_code = 'FINUPD' AND t.fac_tracking_oms = 'CONTROLE - Bedrag van gekoppelde verplichting is 0,- euro' THEN 'FINA03'
|
||
WHEN sn.fac_srtnotificatie_xmlnode = 'factuur' AND fac_srtnotificatie_code = 'FINUPD' AND INSTR(t.fac_tracking_oms, 'Bedrag van gekoppelde verplichting is 0,- euro en er is een REDEN ingevuld') > 0 THEN 'FINA04'
|
||
WHEN sn.fac_srtnotificatie_xmlnode = 'factuur' AND fac_srtnotificatie_code = 'FINUPD' AND INSTR(t.fac_tracking_oms, 'Credit geboekt op Opdracht/Bestelling') > 0 THEN 'FINA05'
|
||
WHEN sn.fac_srtnotificatie_xmlnode = 'factuur' AND fac_srtnotificatie_code = 'FINUPD' AND INSTR(t.fac_tracking_oms, 'Credit geboekt op Contract in voorgaande periode') > 0 THEN 'FINA06'
|
||
WHEN sn.fac_srtnotificatie_xmlnode = 'factuur' AND fac_srtnotificatie_code = 'FINUPD' AND INSTR(t.fac_tracking_oms, 'Verdeelperiode voor Contract kan niet goed bepaald worden en is dus niet weggeschreven') > 0 THEN 'FINA07'
|
||
WHEN sn.fac_srtnotificatie_xmlnode = 'factuur' AND fac_srtnotificatie_code = 'FINUPD' AND INSTR(t.fac_tracking_oms, 'Betreft factuur op Contract uit vorig boekjaar') > 0 THEN 'FINA08'
|
||
WHEN sn.fac_srtnotificatie_xmlnode = 'factuur' AND fac_srtnotificatie_code = 'FINUPD' AND INSTR(t.fac_tracking_oms, 'Contract is op factuur zonder versie-nummer weergegeven; hoogste versienr is gekoppeld') > 0 THEN 'FINA09'
|
||
WHEN sn.fac_srtnotificatie_xmlnode = 'factuur' AND fac_srtnotificatie_code = 'FINUPD' AND INSTR(t.fac_tracking_oms, 'Contract met gebroken boekjaar en dus (nog) geen automatische bepaling verdeelperiode') > 0 THEN 'FINA10'
|
||
WHEN sn.fac_srtnotificatie_xmlnode = 'factuur' AND fac_srtnotificatie_code = 'FINUPD' AND INSTR(t.fac_tracking_oms, 'Dit betreft een verzamelfactuur') > 0 THEN 'FINA11'
|
||
WHEN sn.fac_srtnotificatie_xmlnode = 'factuur' AND fac_srtnotificatie_code = 'FINUPD' AND INSTR(t.fac_tracking_oms, 'PDF opslaan voor SABIC GENK') > 0 THEN 'FINA12'
|
||
WHEN sn.fac_srtnotificatie_xmlnode = 'factuur' AND fac_srtnotificatie_code = 'FINUPD' AND INSTR(t.fac_tracking_oms, 'Contract CF en 90% al gefactureerd in voorgaande periode') > 0 THEN 'FINA13'
|
||
WHEN sn.fac_srtnotificatie_xmlnode = 'factuur' AND fac_srtnotificatie_code = 'FINUPD' AND INSTR(t.fac_tracking_oms, 'Factuur incompleet i.v.m. ontbrekende orderreferentie (vanuit scanning)') > 0 THEN 'FINA14'
|
||
WHEN sn.fac_srtnotificatie_xmlnode = 'factuur' AND fac_srtnotificatie_code = 'FINUPD' AND INSTR(t.fac_tracking_oms, 'Betreft D-categorie factuur!') > 0 THEN 'FINA15'
|
||
WHEN sn.fac_srtnotificatie_xmlnode = 'factuur' AND fac_srtnotificatie_code = 'FINUPD' AND INSTR(t.fac_tracking_oms, 'Leveranciersnummer ontbreekt op leverancierskaart') > 0 THEN 'FINA16'
|
||
WHEN sn.fac_srtnotificatie_xmlnode = 'factuur' AND fac_srtnotificatie_code = 'FINUPD' AND INSTR(t.fac_tracking_oms, 'Contract met gebroken boekjaar (check verdeelperiode)') > 0 THEN 'FINA17'
|
||
WHEN sn.fac_srtnotificatie_xmlnode = 'factuur' AND fac_srtnotificatie_code = 'FINUPD' AND INSTR(t.fac_tracking_oms, 'PDF factuur doorzetten naar klant') > 0 THEN 'FINA18'
|
||
WHEN sn.fac_srtnotificatie_xmlnode = 'factuur' AND fac_srtnotificatie_code = 'FINUPD' AND INSTR(t.fac_tracking_oms, 'Factuur op opdracht met 0-reden') > 0 THEN 'FINA19'
|
||
WHEN sn.fac_srtnotificatie_xmlnode = 'factuur' AND fac_srtnotificatie_code = 'FINUPD' AND INSTR(t.fac_tracking_oms, 'Factuur op contract met onjuiste scoping') > 0 THEN 'FINA20'
|
||
WHEN sn.fac_srtnotificatie_xmlnode = 'factuur' AND fac_srtnotificatie_code = 'FINUPD' AND INSTR(t.fac_tracking_oms, 'Factuurregels niet (allemaal) aangemaakt') > 0 THEN 'FINA21'
|
||
WHEN sn.fac_srtnotificatie_xmlnode = 'factuur' AND fac_srtnotificatie_code = 'FINUPD' AND INSTR(t.fac_tracking_oms, 'Gecontroleerd: (leeg) --> 1') > 0 THEN 'FINAOK'
|
||
ELSE fac_srtnotificatie_code
|
||
END
|
||
actiecode,
|
||
t.fac_tracking_oms omschrijving,
|
||
t.prs_perslid_key prs_perslid_key
|
||
FROM fac_tracking t,
|
||
fac_srtnotificatie sn
|
||
WHERE sn.fac_srtnotificatie_key = t.fac_srtnotificatie_key
|
||
AND sn.fac_srtnotificatie_xmlnode IS NOT NULL;
|
||
|
||
-------------------------------------------------------------------------------
|
||
-- DATAWAREHOUSE - DWH_FAQ
|
||
-------------------------------------------------------------------------------
|
||
CREATE OR REPLACE VIEW aaxx_v_dwh_faq
|
||
AS
|
||
SELECT f.fac_faq_key,
|
||
(SELECT fac_version_cust FROM fac_version)
|
||
fac_version_cust,
|
||
'https://' || LOWER( (SELECT fac_version_cust FROM fac_version)) || '.facilitor.nl/appl/mld/mld_melding.asp?mld_defaultstdmelding=' || std.mld_stdmelding_key ||chr(38) || 'role=fe' ||chr(38) || 'sso=HEYDAY' link,
|
||
'https://' || LOWER( (SELECT fac_version_cust FROM fac_version)) || '.facilitor.nl/appl/fac/fac_faq.asp?faq_key=' || f.fac_faq_key ||chr(38) || 'role=bo' ||chr(38) || 'sso=HEYDAY' faq_link,
|
||
fac_faq_question,
|
||
fac_faq_answer,
|
||
f.fac_faq_source,
|
||
f.fac_faq_datum,
|
||
sd.ins_srtdiscipline_prefix
|
||
|| '-'
|
||
|| d.ins_discipline_omschrijving
|
||
ins_discipline_omschrijving,
|
||
std.mld_stdmelding_key,
|
||
std.mld_stdmelding_omschrijving,
|
||
DECODE (alg_type, NULL, 'Locatie', 'G', 'Gebouw', '')
|
||
alg_scope,
|
||
aogg.alg_onroerendgoed_omschrijving,
|
||
l.alg_locatie_omschrijving,
|
||
l.alg_locatie_code,
|
||
COALESCE (aogg.alg_gebouw_naam, aogg.alg_terreinsector_naam)
|
||
alg_gebouwterrein_naam,
|
||
COALESCE (aogg.alg_gebouw_code, aogg.alg_terreinsector_code)
|
||
alg_gebouwterrein_code,
|
||
aogg.alg_verdieping_code,
|
||
aogg.alg_ruimte_nr,
|
||
DECODE (f.fac_faq_level,
|
||
1, 'Zelfservice',
|
||
2, 'Professionals',
|
||
3, 'Zelfservice en Professionals')
|
||
fac_faq_level,
|
||
fac_faq_hint,
|
||
fac_faq_url,
|
||
pf.prs_perslid_naam_full
|
||
prs_perslid_key_mut
|
||
FROM fac_faq f,
|
||
mld_stdmeldingfaq s,
|
||
mld_stdmelding std,
|
||
ins_tab_discipline d,
|
||
ins_srtdiscipline sd,
|
||
alg_algfaq a,
|
||
alg_v_onroerendgoed_gegevens aogg,
|
||
alg_locatie l,
|
||
prs_v_perslid_fullnames_all pf
|
||
WHERE f.fac_faq_key = s.fac_faq_key
|
||
AND s.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 a.fac_faq_key = f.fac_faq_key
|
||
AND a.alg_locatie_key = l.alg_locatie_key(+)
|
||
AND a.alg_onroerendgoed_keys = aogg.alg_onroerendgoed_keys(+)
|
||
AND f.prs_perslid_key = pf.prs_perslid_key(+);
|
||
|
||
-------------------------------------------------------------------------------
|
||
-- DATAWAREHOUSE - DWH_FAQ2 Kennisbankitems per vakgroepen en locaties
|
||
-------------------------------------------------------------------------------
|
||
CREATE OR REPLACE VIEW AAXX_V_DWH_FAQ2
|
||
(
|
||
KENNISBANKSLEUTEL,
|
||
VRAAG,
|
||
ANTWOORD,
|
||
BRON,
|
||
DATUM,
|
||
URL,
|
||
LAATS_GEWIJZIGD,
|
||
LOCATIE_SCOPE,
|
||
ONTROERENDGOED_OMSCHR,
|
||
LOCATIE,
|
||
LOCATIE_CODE,
|
||
GEBOUW_NAAM,
|
||
TERREIN_CODE,
|
||
VEDRIEPING_CODE,
|
||
RUIMTE_NR,
|
||
KENNISBANK_NIVEAU,
|
||
KENNISBANK_HINT,
|
||
KENNISBANK_URL,
|
||
VAKGROEP
|
||
)
|
||
AS
|
||
SELECT f.fac_faq_key,
|
||
f.fac_faq_question,
|
||
f.fac_faq_answer,
|
||
f.fac_faq_source,
|
||
f.fac_faq_datum,
|
||
'https://'
|
||
|| LOWER ((SELECT fac_version_cust FROM fac_version))
|
||
|| '.facilitor.nl/appl/fac/fac_faq.asp?faq_key='
|
||
|| f.fac_faq_key
|
||
|| CHR (38)
|
||
|| 'role=bo'
|
||
|| CHR (38)
|
||
|| 'sso=1',
|
||
pf.PRS_PERSLID_NAAM_FULL,
|
||
DECODE (alg_type, NULL, 'Locatie', 'G', 'Gebouw', '')
|
||
alg_scope,
|
||
aogg.alg_onroerendgoed_omschrijving,
|
||
l.alg_locatie_omschrijving,
|
||
l.alg_locatie_code,
|
||
COALESCE (aogg.alg_gebouw_naam, aogg.alg_terreinsector_naam)
|
||
alg_gebouwterrein_naam,
|
||
COALESCE (aogg.alg_gebouw_code, aogg.alg_terreinsector_code)
|
||
alg_gebouwterrein_code,
|
||
aogg.alg_verdieping_code,
|
||
aogg.alg_ruimte_nr,
|
||
DECODE (f.fac_faq_level,
|
||
1, 'Zelfservice',
|
||
2, 'Professionals',
|
||
3, 'Zelfservice en Professionals')
|
||
fac_faq_level,
|
||
fac_faq_hint,
|
||
fac_faq_url,
|
||
sd.ins_srtdiscipline_prefix
|
||
|| '-'
|
||
|| d.ins_discipline_omschrijving
|
||
ins_discipline_omschrijving
|
||
FROM fac_faq f,
|
||
prs_v_perslid_fullnames_all pf,
|
||
alg_algfaq a,
|
||
alg_v_onroerendgoed_gegevens aogg,
|
||
alg_locatie l,
|
||
mld_stdmeldingfaq s,
|
||
ins_tab_discipline d,
|
||
ins_srtdiscipline sd
|
||
WHERE f.fac_faq_key = s.fac_faq_key (+)
|
||
AND s.ins_discipline_key = d.ins_discipline_key (+)
|
||
AND d.ins_srtdiscipline_key = sd.ins_srtdiscipline_key (+)
|
||
AND f.fac_faq_key = a.fac_faq_key (+)
|
||
AND a.alg_locatie_key = l.alg_locatie_key(+)
|
||
AND a.alg_onroerendgoed_keys = aogg.alg_onroerendgoed_keys(+)
|
||
AND f.prs_perslid_key = pf.prs_perslid_key(+)
|
||
ORDER BY f.fac_faq_key;
|
||
|
||
-------------------------------------------------------------------------------
|
||
-- DATAWAREHOUSE - DWH_USRDATA Data uit de eigen tabellen in Facilitor
|
||
-------------------------------------------------------------------------------
|
||
|
||
CREATE OR REPLACE VIEW aaxx_v_dwh_usrdata
|
||
(
|
||
tabel_key,
|
||
tabel_naam,
|
||
waarde_key,
|
||
waarde_code,
|
||
waarde_omschrijving1,
|
||
waarde_omschrijving2,
|
||
waarde_vervaldatum,
|
||
parenttabel_key,
|
||
parenttabel_waarde_key,
|
||
parenttabel_waarde
|
||
)
|
||
AS
|
||
SELECT ut.fac_usrtab_key,
|
||
ut.fac_usrtab_naam,
|
||
ud.fac_usrdata_key,
|
||
ud.fac_usrdata_code,
|
||
ud.fac_usrdata_omschr,
|
||
ud.fac_usrdata_omschr2,
|
||
ud.fac_usrdata_vervaldatum,
|
||
ut.fac_usrtab_parentkey,
|
||
ud.fac_usrdata_parentkey,
|
||
(SELECT udp.fac_usrdata_omschr FROM fac_usrdata udp WHERE udp.fac_usrtab_key = ut.fac_usrtab_parentkey AND udp.fac_usrdata_key = ud.fac_usrdata_parentkey)
|
||
parenttabel_waarde
|
||
FROM fac_usrdata ud, fac_usrtab ut
|
||
WHERE ud.fac_usrtab_key = ut.fac_usrtab_key
|
||
AND ut.fac_usrtab_verwijder IS NULL
|
||
AND ud.fac_usrdata_verwijder IS NULL ;
|
||
|
||
-------------------------------------------------------------------------------
|
||
-- EXPORTFUNCTIE - DWH_BUDGET_TRACKER
|
||
-------------------------------------------------------------------------------
|
||
CREATE OR REPLACE VIEW aaxx_v_dwh_budget_tracker
|
||
(
|
||
nummer,
|
||
datum,
|
||
status,
|
||
laatste_actie,
|
||
vakgroeptype,
|
||
vakgroep,
|
||
kostensoort_code,
|
||
kostensoort_omschrijving,
|
||
financiele_waarde,
|
||
kostensoortgroep_omschrijving,
|
||
melding,
|
||
omschrijving,
|
||
organisatie,
|
||
naam,
|
||
kostenplaats,
|
||
kostenplaats_omschrijving,
|
||
plaats,
|
||
locatie,
|
||
gebouw,
|
||
code_exact,
|
||
opdracht_status,
|
||
uitvoerende,
|
||
contactpersoon,
|
||
uren,
|
||
uurloon,
|
||
materiaal,
|
||
kosten,
|
||
gefactureerd
|
||
)
|
||
AS
|
||
SELECT m.mld_melding_key || '/' || mld_opdr_bedrijfopdr_volgnr nummer,
|
||
o.mld_opdr_datumbegin datum,
|
||
(SELECT mld_statusopdr_omschrijving
|
||
FROM mld_statusopdr s
|
||
WHERE o.mld_statusopdr_key = s.mld_statusopdr_key)
|
||
status,
|
||
mld.getopdrachtstatusdate (o.mld_opdr_key, mld_statusopdr_key)
|
||
laatste_actie,
|
||
sd.ins_srtdiscipline_prefix vakgroeptype,
|
||
md.ins_discipline_omschrijving vakgroep,
|
||
COALESCE (kstd.prs_kostensoort_oms, kvg.prs_kostensoort_oms)
|
||
kostensoort_code,
|
||
COALESCE (kstd.prs_kostensoort_opmerking,
|
||
kvg.prs_kostensoort_opmerking)
|
||
kostensoort_omschrijving,
|
||
COALESCE (kstd.prs_kostensoort_refcode,
|
||
kvg.prs_kostensoort_refcode)
|
||
financiele_waarde,
|
||
(SELECT prs_kostensoortgrp_oms
|
||
FROM prs_kostensoortgrp ksg
|
||
WHERE ksg.prs_kostensoortgrp_key =
|
||
COALESCE (kstd.prs_kostensoortgrp_key,
|
||
kvg.prs_kostensoortgrp_key))
|
||
kostensoortgroep_omschrijving,
|
||
std.mld_stdmelding_omschrijving melding,
|
||
TO_CHAR(SUBSTR(m.mld_melding_omschrijving,1,4000)) omschrijving,
|
||
(SELECT d.prs_afdeling_naam
|
||
FROM prs_v_afdeling d
|
||
WHERE p.prs_afdeling_key = d.prs_afdeling_key)
|
||
organisatie,
|
||
p.prs_perslid_naam
|
||
|| DECODE (NVL (p.prs_perslid_voorletters, ''),
|
||
'', '',
|
||
', ' || p.prs_perslid_voorletters)
|
||
|| DECODE (NVL (p.prs_perslid_tussenvoegsel, ''),
|
||
'', '',
|
||
' ' || p.prs_perslid_tussenvoegsel)
|
||
|| DECODE (NVL (p.prs_perslid_voornaam, ''),
|
||
'', '',
|
||
' (' || p.prs_perslid_voornaam || ')')
|
||
naam,
|
||
(SELECT k.prs_kostenplaats_nr
|
||
FROM prs_kostenplaats k
|
||
WHERE k.prs_kostenplaats_key = o.prs_kostenplaats_key)
|
||
kostenplaats,
|
||
(SELECT k.prs_kostenplaats_omschrijving
|
||
FROM prs_kostenplaats k
|
||
WHERE k.prs_kostenplaats_key = o.prs_kostenplaats_key)
|
||
kostenplaats_omschrijving,
|
||
(SELECT alg_locatie_code
|
||
FROM alg_locatie l
|
||
WHERE m.mld_alg_locatie_key = l.alg_locatie_key)
|
||
|| (SELECT CASE COALESCE (g.alg_gebouw_code, '')
|
||
WHEN '' THEN ''
|
||
ELSE '-' || g.alg_gebouw_code
|
||
END
|
||
|| CASE COALESCE (g.alg_verdieping_code, '')
|
||
WHEN '' THEN ''
|
||
ELSE '-' || g.alg_verdieping_code
|
||
END
|
||
|| CASE COALESCE (g.alg_ruimte_nr, '')
|
||
WHEN '' THEN ''
|
||
ELSE '-' || g.alg_ruimte_nr
|
||
END
|
||
FROM alg_v_allonrgoed_gegevens g
|
||
WHERE m.mld_alg_onroerendgoed_keys = g.alg_onroerendgoed_keys)
|
||
plaats,
|
||
alg_locatie_code locatie,
|
||
alg_gebouw_code gebouw,
|
||
COALESCE ( (SELECT exact_code
|
||
FROM aaxx_v_exact_code_gebouw ogk
|
||
WHERE ogk.alg_gebouw_key = v.alg_gebouw_key),
|
||
v.alg_gebouw_code)
|
||
code_exact,
|
||
(SELECT mld_statusopdr_omschrijving
|
||
FROM mld_statusopdr so
|
||
WHERE o.mld_statusopdr_key = so.mld_statusopdr_key)
|
||
opdracht_status,
|
||
COALESCE ( (SELECT prs_bedrijf_naam
|
||
FROM prs_bedrijf b
|
||
WHERE o.mld_uitvoerende_keys = prs_bedrijf_key),
|
||
(SELECT prs_perslid_naam_full
|
||
FROM prs_v_perslid_fullnames_all
|
||
WHERE o.mld_uitvoerende_keys = prs_perslid_key))
|
||
uitvoerende,
|
||
(SELECT prs_perslid_naam_full
|
||
FROM prs_v_perslid_fullnames_all pf
|
||
WHERE o.prs_perslid_key = pf.prs_perslid_key)
|
||
contactpersoon,
|
||
o.mld_opdr_uren uren,
|
||
o.mld_opdr_uurloon uurloon,
|
||
o.mld_opdr_materiaal materiaal,
|
||
o.mld_opdr_kosten kosten,
|
||
COALESCE ( (SELECT SUM (f.fin_factuur_totaal)
|
||
FROM aaxx_v_aanwezigfactuur f
|
||
WHERE f.mld_opdr_key = o.mld_opdr_key), 0)
|
||
gefactureerd
|
||
FROM mld_melding m,
|
||
mld_discipline md,
|
||
ins_srtdiscipline sd,
|
||
alg_v_allonrgoed_gegevens v,
|
||
alg_locatie l,
|
||
alg_district di,
|
||
prs_perslid p,
|
||
mld_opdr o,
|
||
mld_stdmelding std,
|
||
prs_kostensoort kstd,
|
||
prs_kostensoort kvg
|
||
WHERE m.mld_alg_locatie_key = l.alg_locatie_key(+)
|
||
AND l.alg_district_key = di.alg_district_key(+)
|
||
AND md.ins_srtdiscipline_key = sd.ins_srtdiscipline_key(+)
|
||
AND m.mld_alg_onroerendgoed_keys = v.alg_onroerendgoed_keys(+)
|
||
AND m.prs_perslid_key = p.prs_perslid_key
|
||
AND m.mld_stdmelding_key = std.mld_stdmelding_key
|
||
AND std.mld_ins_discipline_key = md.ins_discipline_key
|
||
AND m.mld_melding_key = o.mld_melding_key
|
||
AND std.prs_kostensoort_key = kstd.prs_kostensoort_key(+)
|
||
AND md.prs_kostensoort_key = kvg.prs_kostensoort_key(+)
|
||
UNION ALL
|
||
SELECT cnt_contract_nummer_intern,
|
||
c.cnt_contract_looptijd_van,
|
||
DECODE (
|
||
SIGN (cnt_contract_looptijd_van - SYSDATE),
|
||
1,
|
||
'Toekomst',
|
||
-1,
|
||
DECODE (SIGN (cnt_contract_looptijd_tot - SYSDATE),
|
||
1, 'Actueel',
|
||
-1, 'Verlopen'))
|
||
status,
|
||
c.cnt_contract_looptijd_tot laatste_actie,
|
||
'Contract' vakgroeptype,
|
||
d.ins_discipline_omschrijving vakgroep,
|
||
k.prs_kostensoort_oms kostensoort_code,
|
||
k.prs_kostensoort_opmerking kostensoort_omschrijving,
|
||
k.prs_kostensoort_refcode financiele_waarde,
|
||
(SELECT prs_kostensoortgrp_oms
|
||
FROM prs_kostensoortgrp ksg
|
||
WHERE ksg.prs_kostensoortgrp_key = k.prs_kostensoortgrp_key)
|
||
kostensoortgroep_omschrijving,
|
||
c.cnt_contract_omschrijving melding,
|
||
SUBSTR (
|
||
REPLACE (cnt_contract_document, CHR (13) || CHR (10), '<ret>'),
|
||
1,
|
||
2000)
|
||
omschrijving,
|
||
prs_afdeling_naam organisatie,
|
||
p.prs_perslid_naam
|
||
|| DECODE (NVL (p.prs_perslid_voorletters, ''),
|
||
'', '',
|
||
', ' || p.prs_perslid_voorletters)
|
||
|| DECODE (NVL (p.prs_perslid_tussenvoegsel, ''),
|
||
'', '',
|
||
' ' || p.prs_perslid_tussenvoegsel)
|
||
|| DECODE (NVL (p.prs_perslid_voornaam, ''),
|
||
'', '',
|
||
' (' || p.prs_perslid_voornaam || ')')
|
||
naam,
|
||
kp.prs_kostenplaats_nr kostenplaats,
|
||
kp.prs_kostenplaats_omschrijving kostenplaats_omschrijving,
|
||
alg_locatie_code || '-' || alg_gebouw_code plaats,
|
||
alg_locatie_code locatie,
|
||
alg_gebouw_code gebouw,
|
||
COALESCE ( (SELECT exact_code
|
||
FROM aaxx_v_exact_code_gebouw ogk
|
||
WHERE ogk.alg_gebouw_key = g.alg_gebouw_key),
|
||
g.alg_gebouw_code)
|
||
code_exact,
|
||
'-' opdracht_status,
|
||
prs_bedrijf_naam uitvoerende,
|
||
'-' contactpersoon,
|
||
0 uren,
|
||
0 uurloon,
|
||
0 materiaal,
|
||
COALESCE (
|
||
DECODE (
|
||
cnt_gew.cnt_contract_plaats_gewicht,
|
||
0,
|
||
1,
|
||
(cp.cnt_contract_plaats_gewicht
|
||
/ cnt_gew.cnt_contract_plaats_gewicht)
|
||
* c.cnt_contract_kosten),
|
||
0)
|
||
kosten,
|
||
COALESCE (
|
||
DECODE (
|
||
cnt_gew.cnt_contract_plaats_gewicht,
|
||
0,
|
||
1,
|
||
(cp.cnt_contract_plaats_gewicht
|
||
/ cnt_gew.cnt_contract_plaats_gewicht)
|
||
* (SELECT SUM (fin_factuur_totaal)
|
||
FROM aaxx_v_aanwezigfactuur f
|
||
WHERE f.cnt_contract_key = c.cnt_contract_key)),
|
||
0)
|
||
gefactureerd
|
||
FROM cnt_contract c,
|
||
cnt_discipline d,
|
||
cnt_contract_plaats cp,
|
||
prs_bedrijf b,
|
||
prs_kostensoort k,
|
||
prs_kostenplaats kp,
|
||
prs_afdeling a,
|
||
prs_perslid p,
|
||
alg_locatie l,
|
||
alg_gebouw g,
|
||
prs_contactpersoon cop,
|
||
( SELECT cnt_contract_key,
|
||
SUM (cnt_contract_plaats_gewicht)
|
||
cnt_contract_plaats_gewicht
|
||
FROM cnt_contract_plaats
|
||
GROUP BY cnt_contract_key) cnt_gew,
|
||
(SELECT cp.cnt_contract_plaats_key, alg_locatie_key, alg_gebouw_key
|
||
FROM alg_v_allonroerendgoed aog, cnt_contract_plaats cp
|
||
WHERE aog.alg_type = cp.cnt_alg_plaats_code
|
||
AND aog.alg_onroerendgoed_keys = cp.cnt_alg_plaats_key) cog
|
||
WHERE c.cnt_contract_key = cp.cnt_contract_key(+)
|
||
AND c.cnt_contract_key = cnt_gew.cnt_contract_key(+)
|
||
AND c.cnt_prs_bedrijf_key = b.prs_bedrijf_key
|
||
AND c.ins_discipline_key = d.ins_discipline_key
|
||
AND d.prs_kostensoort_key = k.prs_kostensoort_key(+)
|
||
AND c.prs_kostenplaats_key = kp.prs_kostenplaats_key(+)
|
||
AND c.prs_afdeling_key_eig = a.prs_afdeling_key
|
||
AND c.prs_perslid_key_beh = p.prs_perslid_key
|
||
AND cp.cnt_contract_plaats_key = cog.cnt_contract_plaats_key(+)
|
||
AND c.prs_contactpersoon_key = cop.prs_contactpersoon_key(+)
|
||
AND cog.alg_locatie_key = l.alg_locatie_key(+)
|
||
AND cog.alg_gebouw_key = g.alg_gebouw_key(+)
|
||
AND cnt_contract_verwijder IS NULL;
|
||
|
||
-------------------------------------------------------------------------------
|
||
-- EXPORTFUNCTIE - DWH_SEARCH_RESULTS
|
||
-------------------------------------------------------------------------------
|
||
|
||
CREATE OR REPLACE VIEW aaxx_v_dwh_gui_counter
|
||
(
|
||
fac_gui_counter_key,
|
||
fac_gui_counter_group,
|
||
fac_gui_counter_info,
|
||
fac_gui_counter_refkey,
|
||
fac_gui_counter_choice,
|
||
fac_gui_counter_result,
|
||
fac_gui_counter_date,
|
||
prs_perslid_key,
|
||
prs_perslid_naam_full
|
||
)
|
||
AS
|
||
SELECT fgc.fac_gui_counter_key,
|
||
fgc.fac_gui_counter_group,
|
||
fgc.fac_gui_counter_info,
|
||
fgc.fac_gui_counter_refkey,
|
||
choice.fac_gui_counter_info fac_gui_counter_choice,
|
||
result.fac_gui_counter_info fac_gui_counter_result,
|
||
fac_gui_counter_date,
|
||
fgc.prs_perslid_key,
|
||
prs_perslid_naam_full
|
||
FROM fac_gui_counter fgc,
|
||
prs_v_perslid_fullnames pf,
|
||
(SELECT fac_gui_counter_refkey, fac_gui_counter_info
|
||
FROM fac_gui_counter fgc
|
||
WHERE fac_gui_counter_info IS NOT NULL
|
||
AND fac_gui_counter_group = 'searchchoice') choice,
|
||
(SELECT fac_gui_counter_refkey, fac_gui_counter_info
|
||
FROM fac_gui_counter fgc
|
||
WHERE fac_gui_counter_info IS NOT NULL
|
||
AND fac_gui_counter_group = 'searchresult') result
|
||
WHERE fac_gui_counter_group = 'search'
|
||
AND fgc.fac_gui_counter_info IS NOT NULL
|
||
AND fgc.prs_perslid_key = pf.prs_perslid_key
|
||
AND choice.fac_gui_counter_refkey(+) = fgc.fac_gui_counter_key
|
||
AND result.fac_gui_counter_refkey(+) = fgc.fac_gui_counter_key
|
||
UNION ALL
|
||
SELECT fgc.fac_gui_counter_key,
|
||
fgc.fac_gui_counter_group,
|
||
fac_usrrap_omschrijving,
|
||
fgc.fac_gui_counter_refkey,
|
||
NULL,
|
||
NULL,
|
||
fac_gui_counter_date,
|
||
fgc.prs_perslid_key,
|
||
prs_perslid_naam_full
|
||
FROM fac_gui_counter fgc, prs_v_perslid_fullnames pf, fac_usrrap fr
|
||
WHERE fgc.fac_gui_counter_group = 'report'
|
||
AND fgc.prs_perslid_key = pf.prs_perslid_key(+)
|
||
AND fr.fac_usrrap_key(+) = fgc.fac_gui_counter_refkey
|
||
UNION ALL
|
||
SELECT fgc.fac_gui_counter_key,
|
||
fgc.fac_gui_counter_group,
|
||
COALESCE (fac_menu_altlabel, lcl.l (fac_menuitems_label)),
|
||
fgc.fac_gui_counter_refkey,
|
||
NULL,
|
||
NULL,
|
||
fac_gui_counter_date,
|
||
fgc.prs_perslid_key,
|
||
prs_perslid_naam_full
|
||
FROM fac_gui_counter fgc,
|
||
prs_v_perslid_fullnames pf,
|
||
fac_menu m,
|
||
fac_menuitems mi
|
||
WHERE fgc.fac_gui_counter_group = 'menu'
|
||
AND fgc.prs_perslid_key = pf.prs_perslid_key(+)
|
||
AND m.fac_menu_key = fac_gui_counter_refkey
|
||
AND mi.fac_menuitems_key(+) = m.fac_menuitems_key;
|
||
|
||
-------------------------------------------------------------------------------
|
||
-- Rapportage tbv berekening aantal key users
|
||
-------------------------------------------------------------------------------
|
||
CREATE OR REPLACE VIEW aaxx_v_lcrap_key_stats
|
||
(
|
||
PRS_PERSLID_KEY,
|
||
PRS_PERSLID_OSLOGIN,
|
||
PRS_PERSLID_OSLOGIN2,
|
||
PRS_PERSLID_NR,
|
||
PRS_PERSLID_NAAM_FULL,
|
||
PRS_AFDELING_NAAM,
|
||
LEV_WRITE_CNT,
|
||
MAX_ALG_WRITE,
|
||
MAX_PRS_WRITE,
|
||
LEV_READ_CNT,
|
||
MAX_ALG_READ,
|
||
MAX_PRS_READ,
|
||
AUT_GROEP_CNT
|
||
)
|
||
AS
|
||
SELECT x.prs_perslid_key,
|
||
x.prs_perslid_oslogin,
|
||
x.prs_perslid_oslogin2,
|
||
x.prs_perslid_nr,
|
||
x.prs_perslid_naam_full,
|
||
prs_afdeling_naam,
|
||
COALESCE (y.lev_write_cnt, 0) lev_write_cnt,
|
||
y.max_alg_write,
|
||
y.max_prs_write,
|
||
COALESCE (z.lev_read_cnt, 0) lev_read_cnt,
|
||
z.max_alg_read,
|
||
z.max_prs_read,
|
||
x.aut_groep_cnt
|
||
FROM ( SELECT fn.prs_perslid_key,
|
||
p.prs_perslid_oslogin,
|
||
p.prs_perslid_oslogin2,
|
||
kl.prs_kenmerklink_waarde prs_perslid_nr,
|
||
prs_afdeling_naam,
|
||
fn.prs_perslid_naam_full,
|
||
COUNT (DISTINCT gg.fac_groep_key) aut_groep_cnt
|
||
FROM prs_v_aanwezigperslid p,
|
||
prs_afdeling a,
|
||
prs_v_perslid_fullnames fn,
|
||
fac_gebruikersgroep gg,
|
||
(SELECT prs_kenmerklink_waarde, prs_link_key
|
||
FROM prs_kenmerklink
|
||
WHERE prs_kenmerk_key = 3) kl -- personeelsnummer AAFM
|
||
WHERE a.prs_afdeling_key = p.prs_afdeling_key
|
||
AND p.prs_perslid_oslogin IS NOT NULL
|
||
AND p.prs_perslid_key = fn.prs_perslid_key
|
||
AND p.prs_perslid_key = gg.prs_perslid_key
|
||
AND p.prs_perslid_key = kl.prs_link_key(+)
|
||
GROUP BY fn.prs_perslid_key,
|
||
fn.prs_perslid_naam_full,
|
||
prs_perslid_oslogin,
|
||
prs_perslid_oslogin2,
|
||
kl.prs_kenmerklink_waarde,
|
||
prs_afdeling_naam) x
|
||
LEFT JOIN ( SELECT gg.prs_perslid_key,
|
||
COUNT (DISTINCT gr.fac_groeprechten_key)
|
||
lev_write_cnt,
|
||
MIN (gr.fac_gebruiker_alg_level_write)
|
||
max_alg_write,
|
||
MIN (gr.fac_gebruiker_prs_level_write)
|
||
max_prs_write
|
||
FROM fac_gebruikersgroep gg,
|
||
fac_groeprechten gr,
|
||
fac_functie f
|
||
WHERE gg.fac_groep_key = gr.fac_groep_key
|
||
AND gr.fac_functie_key = f.fac_functie_key
|
||
AND fac_functie_groep IN (1, 2)
|
||
AND (gr.fac_gebruiker_alg_level_write <> 9
|
||
OR gr.fac_gebruiker_prs_level_write <> 9)
|
||
GROUP BY gg.prs_perslid_key) y
|
||
ON x.prs_perslid_key = y.prs_perslid_key
|
||
LEFT JOIN ( SELECT gg.prs_perslid_key,
|
||
COUNT (DISTINCT gr.fac_groeprechten_key)
|
||
lev_read_cnt,
|
||
MIN (gr.fac_gebruiker_alg_level_read)
|
||
max_alg_read,
|
||
MIN (gr.fac_gebruiker_prs_level_read)
|
||
max_prs_read
|
||
FROM fac_gebruikersgroep gg,
|
||
fac_groeprechten gr,
|
||
fac_functie f
|
||
WHERE gg.fac_groep_key = gr.fac_groep_key
|
||
AND gr.fac_functie_key = f.fac_functie_key
|
||
AND fac_functie_groep IN (1, 2)
|
||
AND (gr.fac_gebruiker_alg_level_read <> 9
|
||
OR gr.fac_gebruiker_prs_level_read <> 9)
|
||
GROUP BY gg.prs_perslid_key) z
|
||
ON x.prs_perslid_key = z.prs_perslid_key
|
||
WHERE COALESCE (y.lev_write_cnt, 0) > 0
|
||
OR COALESCE (z.lev_read_cnt, 0) > 0;
|
||
|
||
|
||
--=============================================================================
|
||
-- IMPORTFUNCTIES
|
||
-------------------------------------------------------------------------------
|
||
|
||
-------------------------------------------------------------------------------
|
||
-- IMPORTFUNCTIE - Import srtruimte
|
||
-------------------------------------------------------------------------------
|
||
CREATE OR REPLACE VIEW aaxx_v_rap_srtruimte (
|
||
key,
|
||
omschrijving,
|
||
code,
|
||
werkplek,
|
||
verhuurbaar,
|
||
huur,
|
||
sk_onderhoud,
|
||
sk_utility,
|
||
sk_overig,
|
||
prijs5
|
||
)
|
||
AS
|
||
SELECT alg_srtruimte_key,
|
||
alg_srtruimte_omschrijving,
|
||
alg_srtruimte_code,
|
||
prs_bevat_werkplek,
|
||
prs_verhuurbaar,
|
||
alg_srtruimte_prijs,
|
||
alg_srtruimte_prijs2,
|
||
alg_srtruimte_prijs3,
|
||
alg_srtruimte_prijs4,
|
||
alg_srtruimte_prijs5
|
||
FROM alg_v_aanwezigsrtruimte;
|
||
|
||
CREATE OR REPLACE PROCEDURE aaxx_import_srtruimte (
|
||
p_import_key IN NUMBER
|
||
)
|
||
AS
|
||
CURSOR c_cursor
|
||
IS
|
||
SELECT *
|
||
FROM fac_imp_file
|
||
WHERE fac_import_key = p_import_key
|
||
ORDER BY fac_imp_file_index;
|
||
|
||
v_newline VARCHAR2 (1000);
|
||
v_aanduiding VARCHAR2 (1000); -- Import line
|
||
v_field VARCHAR2 (100); -- Import field
|
||
v_fielddelimitor VARCHAR2 (1); -- Field seperator
|
||
v_errormsg VARCHAR (200);
|
||
v_errorhint VARCHAR (200);
|
||
oracle_err_num NUMBER;
|
||
oracle_err_mes VARCHAR2 (200);
|
||
v_skipfield VARCHAR2 (100);
|
||
-- De importvelden
|
||
v_key VARCHAR2 (100);
|
||
v_omschrijving VARCHAR2 (100);
|
||
v_code VARCHAR2 (100);
|
||
v_werkplek VARCHAR2 (100);
|
||
v_verhuurbaar VARCHAR2 (100);
|
||
v_prijs1 VARCHAR2 (100);
|
||
v_prijs2 VARCHAR2 (100);
|
||
v_prijs3 VARCHAR2 (100);
|
||
v_prijs4 VARCHAR2 (100);
|
||
v_prijs5 VARCHAR2 (100);
|
||
header_found BOOLEAN;
|
||
|
||
BEGIN
|
||
-- Init
|
||
header_found := FALSE;
|
||
v_fielddelimitor := ';';
|
||
|
||
-- Clear my previous imported rows
|
||
DELETE FROM aaxx_imp_srtruimte;
|
||
|
||
FOR rec1 IN c_cursor
|
||
LOOP
|
||
BEGIN
|
||
v_newline := rec1.fac_imp_file_line;
|
||
v_aanduiding := v_newline;
|
||
|
||
IF SUBSTR (v_newline, 1, 3) = '?'
|
||
THEN
|
||
-- EF BB BF aangetroffen
|
||
fac.imp_writelog (p_import_key,
|
||
'W',
|
||
'Byte Order Mark aangetroffen',
|
||
'Bestand heeft onbehandeld UTF-8 formaat.'
|
||
);
|
||
v_newline := SUBSTR (v_newline, 4);
|
||
END IF;
|
||
|
||
fac.imp_getfield (v_newline, v_fielddelimitor, v_key);
|
||
fac.imp_getfield (v_newline, v_fielddelimitor, v_omschrijving);
|
||
fac.imp_getfield (v_newline, v_fielddelimitor, v_code);
|
||
fac.imp_getfield (v_newline, v_fielddelimitor, v_werkplek);
|
||
fac.imp_getfield (v_newline, v_fielddelimitor, v_verhuurbaar);
|
||
fac.imp_getfield (v_newline, v_fielddelimitor, v_prijs1);
|
||
fac.imp_getfield (v_newline, v_fielddelimitor, v_prijs2);
|
||
fac.imp_getfield (v_newline, v_fielddelimitor, v_prijs3);
|
||
fac.imp_getfield (v_newline, v_fielddelimitor, v_prijs4);
|
||
fac.imp_getfield (v_newline, v_fielddelimitor, v_prijs5);
|
||
|
||
|
||
-- Skip until a valid header is found
|
||
IF UPPER(v_key) = 'KEY'
|
||
AND UPPER(v_code) = 'CODE'
|
||
AND UPPER(v_prijs1) = 'HUUR'
|
||
AND UPPER(v_prijs5) = 'PRIJS5'
|
||
THEN
|
||
-- Sla de kopregel over.
|
||
header_found := TRUE;
|
||
ELSIF (header_found AND v_omschrijving IS NOT NULL)
|
||
THEN
|
||
INSERT INTO aaxx_imp_srtruimte
|
||
(alg_srtruimte_key,
|
||
alg_srtruimte_omschrijving,
|
||
alg_srtruimte_code,
|
||
prs_bevat_werkplek,
|
||
prs_verhuurbaar,
|
||
alg_srtruimte_prijs,
|
||
alg_srtruimte_prijs2,
|
||
alg_srtruimte_prijs3,
|
||
alg_srtruimte_prijs4,
|
||
alg_srtruimte_prijs5 )
|
||
VALUES (fac.safe_to_number (v_key),
|
||
SUBSTR (v_omschrijving, 1, 30),
|
||
SUBSTR (v_code, 1, 10),
|
||
fac.safe_to_number (SUBSTR(v_werkplek, 1)),
|
||
fac.safe_to_number (SUBSTR(v_verhuurbaar, 1)),
|
||
fac.safe_to_number (REPLACE(v_prijs1,',','.')),
|
||
fac.safe_to_number (REPLACE(v_prijs2,',','.')),
|
||
fac.safe_to_number (REPLACE(v_prijs3,',','.')),
|
||
fac.safe_to_number (REPLACE(v_prijs4,',','.')),
|
||
fac.safe_to_number (REPLACE(v_prijs5,',','.'))
|
||
);
|
||
END IF;
|
||
|
||
COMMIT;
|
||
END;
|
||
END LOOP;
|
||
|
||
IF NOT header_found
|
||
THEN
|
||
fac.imp_writelog (p_import_key,
|
||
'E',
|
||
'Geen geldige header aangetroffen',
|
||
'Bestand is geen geldig ruimtesoort importbestand.'
|
||
);
|
||
END IF;
|
||
EXCEPTION
|
||
WHEN OTHERS
|
||
THEN
|
||
oracle_err_num := SQLCODE;
|
||
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
|
||
v_errormsg := 'OTHERS (error ' || oracle_err_num || '/' || oracle_err_mes || ')';
|
||
fac.imp_writelog (p_import_key, 'E', SUBSTR (v_errormsg, 1, 1000), v_aanduiding);
|
||
-- maak de importtabel leeg om te voorkomen dat er halve bestanden ingelezen worden.
|
||
DELETE FROM aaxx_imp_srtruimte;
|
||
END;
|
||
/
|
||
|
||
|
||
CREATE OR REPLACE PROCEDURE aaxx_update_srtruimte (p_import_key IN NUMBER)
|
||
AS
|
||
CURSOR c
|
||
IS
|
||
SELECT *
|
||
FROM aaxx_imp_srtruimte
|
||
WHERE alg_srtruimte_omschrijving is not NULL;
|
||
|
||
v_oldcount NUMBER;
|
||
v_newcount NUMBER;
|
||
v_prs_bedrijf_key NUMBER;
|
||
v_prs_dienst_key NUMBER;
|
||
v_alg_locatie_key NUMBER;
|
||
v_alg_gebouw_key NUMBER;
|
||
v_errormsg VARCHAR (1000);
|
||
v_error_hint VARCHAR (1000);
|
||
oracle_err_mes VARCHAR2 (150);
|
||
oracle_err_num VARCHAR2 (150);
|
||
currentversion fac_module.fac_module_version%TYPE;
|
||
BEGIN
|
||
|
||
SELECT MAX (fac_module_version)
|
||
INTO currentversion
|
||
FROM fac_module;
|
||
|
||
fac.imp_writelog (p_import_key,
|
||
'I',
|
||
'AAFM ruimtesoort import version ' || currentversion,
|
||
'$Revision$'
|
||
);
|
||
|
||
SELECT COUNT (*)
|
||
INTO v_newcount
|
||
FROM alg_v_aanwezigsrtruimte;
|
||
|
||
IF v_newcount = 0 THEN
|
||
fac.imp_writelog (p_import_key,
|
||
'E',
|
||
'AAFM ruimtesoort import bevat geen records',
|
||
'$Revision$'
|
||
);
|
||
return;
|
||
END IF;
|
||
|
||
-- How many active records are now present?
|
||
SELECT COUNT (*)
|
||
INTO v_oldcount
|
||
FROM alg_v_aanwezigsrtruimte;
|
||
|
||
FOR rec IN c
|
||
LOOP
|
||
BEGIN
|
||
IF rec.alg_srtruimte_key IS NULL THEN
|
||
v_errormsg := 'Toevoegen ruimtesoort [' || rec.alg_srtruimte_code || '] ';
|
||
INSERT INTO alg_srtruimte (
|
||
alg_srtruimte_omschrijving,
|
||
alg_srtruimte_code,
|
||
prs_bevat_werkplek,
|
||
prs_verhuurbaar,
|
||
alg_srtruimte_prijs,
|
||
alg_srtruimte_prijs2,
|
||
alg_srtruimte_prijs3,
|
||
alg_srtruimte_prijs4,
|
||
alg_srtruimte_prijs5)
|
||
VALUES (
|
||
rec.alg_srtruimte_omschrijving,
|
||
rec.alg_srtruimte_code,
|
||
rec.prs_bevat_werkplek,
|
||
rec.prs_verhuurbaar,
|
||
rec.alg_srtruimte_prijs,
|
||
rec.alg_srtruimte_prijs2,
|
||
rec.alg_srtruimte_prijs3,
|
||
rec.alg_srtruimte_prijs4,
|
||
rec.alg_srtruimte_prijs5);
|
||
ELSE
|
||
v_errormsg := 'Aanpassen ruimtesoort [' || rec.alg_srtruimte_code || '] ';
|
||
UPDATE alg_srtruimte SET
|
||
alg_srtruimte_omschrijving = rec.alg_srtruimte_omschrijving,
|
||
alg_srtruimte_code = rec.alg_srtruimte_code,
|
||
prs_bevat_werkplek = rec.prs_bevat_werkplek,
|
||
prs_verhuurbaar = rec.prs_verhuurbaar,
|
||
alg_srtruimte_prijs = rec.alg_srtruimte_prijs,
|
||
alg_srtruimte_prijs2 = rec.alg_srtruimte_prijs2,
|
||
alg_srtruimte_prijs3 = rec.alg_srtruimte_prijs3,
|
||
alg_srtruimte_prijs4 = rec.alg_srtruimte_prijs4,
|
||
alg_srtruimte_prijs5 = rec.alg_srtruimte_prijs5
|
||
WHERE alg_srtruimte_key = rec.alg_srtruimte_key;
|
||
END IF;
|
||
|
||
COMMIT;
|
||
EXCEPTION
|
||
WHEN OTHERS
|
||
THEN
|
||
v_error_hint := v_errormsg;
|
||
oracle_err_num := SQLCODE;
|
||
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
|
||
v_errormsg :=
|
||
v_errormsg
|
||
|| 'ORACLE (error '
|
||
|| oracle_err_num
|
||
|| '/'
|
||
|| oracle_err_mes
|
||
|| ')';
|
||
fac.imp_writelog (p_import_key,
|
||
'E',
|
||
v_errormsg,
|
||
v_error_hint
|
||
);
|
||
COMMIT; -- tbv logging
|
||
END;
|
||
END LOOP;
|
||
|
||
SELECT COUNT (*)
|
||
INTO v_newcount
|
||
FROM alg_v_aanwezigsrtruimte;
|
||
|
||
fac.imp_writelog (p_import_key,
|
||
'S',
|
||
'Aantal ruimte soorten vooraf: ' || TO_CHAR (v_oldcount) || ' nu: ' || TO_CHAR (v_newcount),
|
||
''
|
||
);
|
||
|
||
END;
|
||
/
|
||
|
||
--------------------------------
|
||
-- import facturen
|
||
--------------------------------
|
||
|
||
-- rapportage factuurvoorstel inkoopfacturen. Het resultaat kan met onderstaande importroutines ingelezen worden.
|
||
CREATE OR REPLACE VIEW aaxx_v_rap_inkoopfactuur
|
||
(
|
||
fclt_x_bedrijfnaam,
|
||
fclt_x_afrond_datum,
|
||
leveranciernr,
|
||
factuurnr,
|
||
factuurdatum,
|
||
ordernr,
|
||
locatie,
|
||
afleverdatum,
|
||
omschrijving,
|
||
aantal,
|
||
kostprijs,
|
||
btwbedrag,
|
||
btw,
|
||
docid,
|
||
debiteurnummer,
|
||
opmerking,
|
||
lastinvoice,
|
||
btwverlegd,
|
||
gebouw,
|
||
orderomschrijving,
|
||
referentie,
|
||
afmelddatum,
|
||
uren,
|
||
materiaal,
|
||
opdracht_type
|
||
)
|
||
AS
|
||
SELECT prs_bedrijf_naam bedrijfsnaam,
|
||
tr2.fac_tracking_datum datum,
|
||
prs_leverancier_nr leveranciernr,
|
||
NULL factuurnr,
|
||
NULL factuurdatum,
|
||
(SELECT sd.ins_srtdiscipline_prefix
|
||
|| m.mld_melding_key
|
||
|| '/'
|
||
|| o.mld_opdr_bedrijfopdr_volgnr
|
||
FROM mld_melding m,
|
||
mld_stdmelding std,
|
||
ins_tab_discipline d,
|
||
ins_srtdiscipline sd
|
||
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)
|
||
ordernr,
|
||
(SELECT alg_locatie_code || ' - ' || alg_locatie_omschrijving
|
||
FROM alg_locatie l
|
||
WHERE l.alg_locatie_key = m.mld_alg_locatie_key)
|
||
locatie,
|
||
TO_CHAR (mld_opdr_datumbegin, 'ddmmyyyy') afleverdatum,
|
||
NULL omschrijving,
|
||
1 aantal,
|
||
o.mld_opdr_kosten kostprijs,
|
||
NULL btwbedrag,
|
||
21 btw,
|
||
NULL docid,
|
||
NULL debiteurnummer,
|
||
NULL opmerking,
|
||
'Ja' lastinvoice,
|
||
'Nee' btwverlegd,
|
||
(SELECT og.alg_gebouw_code || ' - ' || og.alg_gebouw_naam
|
||
FROM alg_v_allonrgoed_gegevens og
|
||
WHERE m.mld_alg_onroerendgoed_keys =
|
||
og.alg_onroerendgoed_keys)
|
||
gebouw,
|
||
REPLACE (REPLACE (o.mld_opdr_omschrijving, CHR (13), ''),
|
||
CHR (10),
|
||
'<ret>')
|
||
orderomschrijving,
|
||
(SELECT mld_kenmerkopdr_waarde
|
||
FROM mld_srtkenmerk sk, mld_kenmerk k, mld_kenmerkopdr ko
|
||
WHERE sk.mld_srtkenmerk_key = k.mld_srtkenmerk_key
|
||
AND mld_kenmerk_niveau = 'O'
|
||
AND ko.mld_kenmerk_key = k.mld_kenmerk_key
|
||
AND ko.mld_kenmerkopdr_verwijder IS NULL
|
||
AND ko.mld_opdr_key = o.mld_opdr_key
|
||
AND mld_srtkenmerk_omschrijving LIKE
|
||
'Ref. Nr. Leverancier%')
|
||
referentie,
|
||
tr.fac_tracking_datum afmelddatum,
|
||
o.mld_opdr_uren,
|
||
o.mld_opdr_materiaal,
|
||
mt.mld_typeopdr_omschrijving
|
||
FROM prs_bedrijf b,
|
||
mld_opdr o,
|
||
mld_typeopdr mt,
|
||
mld_melding m,
|
||
mld_typeopdr ot,
|
||
fac_tracking tr,
|
||
fac_tracking tr2,
|
||
fac_srtnotificatie str,
|
||
fac_srtnotificatie str2
|
||
WHERE o.mld_uitvoerende_keys = b.prs_bedrijf_key
|
||
AND o.mld_typeopdr_key = mt.mld_typeopdr_key
|
||
AND tr.fac_srtnotificatie_key = str.fac_srtnotificatie_key
|
||
AND tr2.fac_srtnotificatie_key = str2.fac_srtnotificatie_key
|
||
AND str.fac_srtnotificatie_code = 'ORDAFM'
|
||
AND str2.fac_srtnotificatie_code = 'ORDAFR'
|
||
AND o.mld_opdr_key = tr.fac_tracking_refkey
|
||
AND o.mld_opdr_key = tr2.fac_tracking_refkey
|
||
AND o.mld_melding_key = m.mld_melding_key
|
||
AND o.mld_statusopdr_key = 9 -- Afgerond
|
||
AND o.mld_opdr_kosten <> 0
|
||
AND o.mld_typeopdr_key = ot.mld_typeopdr_key
|
||
AND (ot.mld_typeopdr_omschrijving = 'Workorder'
|
||
OR ot.mld_typeopdr_omschrijving = 'Projectorder'
|
||
OR ot.mld_typeopdr_omschrijving = 'Vast variabel'
|
||
OR ot.mld_typeopdr_omschrijving = 'Opdracht'
|
||
)
|
||
AND NOT EXISTS
|
||
(SELECT mld_kenmerkopdr_key
|
||
FROM mld_kenmerkopdr ko, mld_kenmerk k
|
||
WHERE mld_opdr_key = o.mld_opdr_key
|
||
AND ko.mld_kenmerk_key = k.mld_kenmerk_key
|
||
AND k.mld_srtkenmerk_key =
|
||
DECODE (aaxx_get_user,
|
||
'IT', 381,
|
||
'SABIC', 34,
|
||
2))
|
||
AND NOT EXISTS
|
||
(SELECT mld_kenmerkopdr_key
|
||
FROM mld_kenmerkopdr ko,
|
||
mld_kenmerk k,
|
||
mld_srtkenmerk sk
|
||
WHERE mld_opdr_key = o.mld_opdr_key
|
||
AND ko.mld_kenmerk_key = k.mld_kenmerk_key
|
||
AND k.mld_srtkenmerk_key = sk.mld_srtkenmerk_key
|
||
AND UPPER (sk.mld_srtkenmerk_omschrijving) =
|
||
'CLAUSULE'
|
||
AND UPPER(aaxx_get_kenmerkwaarde (
|
||
sk.mld_srtkenmerk_kenmerktype,
|
||
sk.fac_kenmerkdomein_key,
|
||
ko.mld_kenmerkopdr_waarde
|
||
)) = 'BINNEN CLAUSULE');
|
||
|
||
-- AAVL#33405 rapportage factuurvoorstel inkoopfacturen tbv bestellingen.
|
||
-- Het resultaat kan met onderstaande importroutines ingelezen worden.
|
||
CREATE OR REPLACE VIEW aaxx_v_rap_bes_inkfactuur
|
||
(
|
||
FCLT_X_BEDRIJFNAAM,
|
||
FCLT_X_LEVER_DATUM,
|
||
LEVERANCIERNR,
|
||
FACTUURNR,
|
||
FACTUURDATUM,
|
||
ORDERNR,
|
||
LOCATIE,
|
||
AFLEVERDATUM,
|
||
OMSCHRIJVING,
|
||
AANTAL,
|
||
KOSTPRIJS,
|
||
BTWBEDRAG,
|
||
BTW,
|
||
DOCID,
|
||
DEBITEURNUMMER,
|
||
OPMERKING,
|
||
LASTINVOICE,
|
||
BTWVERLEGD,
|
||
GEBOUW,
|
||
ORDEROMSCHRIJVING,
|
||
REFERENTIE,
|
||
AFMELDDATUM,
|
||
UREN,
|
||
MATERIAAL
|
||
)
|
||
AS
|
||
SELECT prs_bedrijf_naam,
|
||
ft.fac_tracking_datum datum,
|
||
prs_leverancier_nr leveranciernr,
|
||
NULL factuurnr,
|
||
NULL factuurdatum,
|
||
bes_bestelopdr_id,
|
||
(SELECT alg_locatie_code || ' - ' || alg_locatie_omschrijving
|
||
FROM alg_locatie l
|
||
WHERE l.alg_locatie_key = ma.alg_locatie_key)
|
||
locatie,
|
||
TO_CHAR (ft.fac_tracking_datum, 'ddmmyyyy') afleverdatum,
|
||
NULL omschrijving,
|
||
SUM (bes_bestelopdr_item_aantalontv) aantal,
|
||
SUM (bes_bestelopdr_item_prijs * bes_bestelopdr_item_aantalontv) kostprijs,
|
||
NULL btwbedrag,
|
||
bes_srtdeel_btw BTW,
|
||
NULL docid,
|
||
NULL debiteurnummer,
|
||
NULL opmerking,
|
||
'Ja' lastinvoice,
|
||
'Nee' btwverlegd,
|
||
NULL gebouw,
|
||
NULL orderomschrijving,
|
||
NULL referentie,
|
||
ft.fac_tracking_datum afmelddatum,
|
||
NULL uren,
|
||
NULL materiaal
|
||
FROM bes_bestelopdr bo,
|
||
prs_bedrijf b,
|
||
mld_adres ma,
|
||
bes_bestelopdr_item bboi,
|
||
bes_bestelling_item bbi,
|
||
bes_srtdeel bsd,
|
||
fac_tracking ft,
|
||
fac_srtnotificatie srt
|
||
WHERE bes_bestelopdr_status = 6
|
||
AND b.prs_bedrijf_key = bo.prs_bedrijf_key
|
||
AND bo.mld_adres_key_lev = ma.mld_adres_key
|
||
AND bo.bes_bestelopdr_key = bboi.bes_bestelopdr_key
|
||
AND bbi.bes_bestelopdr_item_key = bboi.bes_bestelopdr_item_key
|
||
AND bbi.bes_srtdeel_key = bsd.bes_srtdeel_key
|
||
AND ft.fac_tracking_refkey = bo.bes_bestelopdr_key
|
||
AND srt.fac_srtnotificatie_key = ft.fac_srtnotificatie_key
|
||
AND srt.fac_srtnotificatie_code = 'BES2AF'
|
||
GROUP BY prs_bedrijf_naam,
|
||
TO_CHAR (ft.fac_tracking_datum, 'yyyy-mm'),
|
||
prs_leverancier_nr,
|
||
bes_bestelopdr_id,
|
||
ma.alg_locatie_key,
|
||
ft.fac_tracking_datum,
|
||
bes_srtdeel_btw,
|
||
ft.fac_tracking_datum;
|
||
|
||
CREATE OR REPLACE PROCEDURE aaxx_import_factuur (p_import_key IN NUMBER)
|
||
AS
|
||
|
||
-- Standaard volgorde van de kolommen in het CSV-formaat, waarbij 3 velden VERPLICHT (minimaal door Facilitor vereist)
|
||
-- Variabelelijst
|
||
-- v_leveranciernr: 1
|
||
-- v_factuurnr: 2 (VERPLICHT, anders zet Facilitor '-' in factuurnr, en is status van factuur "Incompleet")
|
||
-- v_factuurdatum: 3
|
||
-- v_ordernr: 4 (VERPLICHT, anders is status van factuur "Incompleet")
|
||
-- v_locatie: 5
|
||
-- v_afleverdatum: 6
|
||
-- v_omschrijving: 7
|
||
-- v_aantal: 8
|
||
-- v_kostprijs: 9 (VERPLICHT, anders is status van factuur "Incompleet")
|
||
-- v_btw_bedrag: 10 (VERPLICHT, of anders veld 11, anders is status van factuur "Incompleet")
|
||
-- v_btw: 11 (VERPLICHT, of anders veld 10, anders is status van factuur "Incompleet")
|
||
-- v_docid: 12
|
||
-- v_debiteur_nr: 13
|
||
-- v_opmerking: 14
|
||
-- v_btw_verlegd: 15 (VERPLICHT, Ja/Nee/<leeg> waarbij leeg gelijk is aan Nee. Andere waarden leidt tot "Incompleet")
|
||
-- v_kenmerk1: 16
|
||
-- v_kenmerk2: 17
|
||
-- v_kenmerk3: 18
|
||
-- v_kenmerk4: 19
|
||
-- v_kenmerk5: 20
|
||
-- v_boekmaand: 21 (GELDIG, Indien gevuld dan moet er een geldige jaar-maand combinatie staan. Andere waarden leidt tot "Incompleet")
|
||
-- Eerst geprobeerd via nette array, geeft problemen met type buiten package, en in package lukt niet omdat
|
||
-- de import in Facilitor package-loos is (en niet 1-2-3 zo kan worden gemaakt vanwege alle bestaande klanten)
|
||
-- v_seq_of_columns ListOfInteger := (1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21);
|
||
|
||
-- Dus dan maar via een string, en ook op slimme wijze, nl alsof het een ingelezen factuur-record is met p_fielddelimitor
|
||
v_seq_of_columns VARCHAR(100);
|
||
|
||
|
||
-- Afwijkingen op deze volgorde zijn in eigen cust_import_factuur te regelen.
|
||
|
||
-- Als leveranciersnr en factuurnr b.v. zijn omgedraaid in het CSV-formaat,
|
||
-- dan factuurimport ListOfInteger := (2,1,3,4,5,6,7,8,9,10,11,12);
|
||
-- v_seq_of_columns := '2;1;3;4;5;6;7;8;9;10;11;12';
|
||
|
||
-- Als leveranciersnr NIET in CSV staat, dan factuurimport ListOfInteger := (0,2,3,4,5,6,7,8,9,10,11,12);
|
||
-- v_seq_of_columns := '0;2;3;4;5;6;7;8;9;10;11;12';
|
||
-- M.a.w. waar een 0 staat, wordt de variabele niet ingelezen en blift LEEG.
|
||
|
||
BEGIN
|
||
v_seq_of_columns := '1;2;3;4;5;6;7;8;9;10;11;12;13;14;16;15;0;0;0;0;17';
|
||
fac_import_factuur_body(p_import_key, v_seq_of_columns);
|
||
|
||
-- voeg een voorloopnul toe aan de boekmaanden op positie 6
|
||
-- 2017-9 wordt dan 2017-09
|
||
|
||
UPDATE fac_imp_factuur
|
||
SET boekmaand = SUBSTR (boekmaand, 1, 5) || 0 || SUBSTR (boekmaand, 6, 1)
|
||
WHERE SUBSTR (boekmaand, 1, 4) IS NOT NULL
|
||
AND SUBSTR (boekmaand, 5, 1) = '-'
|
||
AND SUBSTR (boekmaand, 6, 1) IS NOT NULL
|
||
AND SUBSTR (boekmaand, 7, 1) IS NULL
|
||
AND fac_import_key = p_import_key;
|
||
|
||
COMMIT;
|
||
|
||
END;
|
||
/
|
||
|
||
|
||
|
||
CREATE OR REPLACE PROCEDURE aaxx_update_factuur (p_import_key IN NUMBER)
|
||
AS
|
||
v_invoerder NUMBER(10);
|
||
BEGIN
|
||
|
||
fac_update_factuur (p_import_key);
|
||
|
||
-- AAFM specifieke update voor kenmerken
|
||
-- ja = 1
|
||
-- nee = 2
|
||
-- kenmerk_key = 2 voor kenmerk laatste factuur.
|
||
INSERT INTO fin_kenmerkfactuur (fin_factuur_key, fin_kenmerk_key, fin_kenmerkfactuur_waarde)
|
||
SELECT DISTINCT fin_factuur_key, fin_kenmerk_key, fac_usrdata_key
|
||
FROM fac_imp_factuur i,
|
||
fin_kenmerk k,
|
||
fac_kenmerkdomein kd,
|
||
fac_usrdata ud
|
||
WHERE UPPER (COALESCE (i.kenmerk1, 'Nee')) = UPPER (ud.fac_usrdata_omschr)
|
||
AND ud.fac_usrtab_key = kd.fac_usrtab_key
|
||
AND k.fac_kenmerkdomein_key = kd.fac_kenmerkdomein_key
|
||
AND k.fin_kenmerk_key = 2
|
||
AND i.fin_factuur_key IS NOT NULL
|
||
AND i.fac_import_key = p_import_key
|
||
AND NOT EXISTS
|
||
(SELECT fin_kenmerkfactuur_key
|
||
FROM fin_kenmerkfactuur kf
|
||
WHERE kf.fin_kenmerk_key = 2
|
||
AND kf.fin_factuur_key = i.fin_factuur_key);
|
||
|
||
SELECT MAX(prs_perslid_key)
|
||
INTO v_invoerder
|
||
FROM fac_import
|
||
WHERE fac_import_key = p_import_key;
|
||
|
||
-- zet de FINNEW notificatie op de gebruiker die de import gestart heeft om te kunnen traceren hoe de facturen in het
|
||
-- systeem gekomen zijn.
|
||
UPDATE fac_tracking t
|
||
SET prs_perslid_key = v_invoerder
|
||
, fac_tracking_oms = fac_tracking_oms || ' (via Excel)'
|
||
WHERE prs_perslid_key IS NULL
|
||
AND EXISTS
|
||
(SELECT fac_tracking_key
|
||
FROM fac_imp_factuur i, fac_srtnotificatie sn
|
||
WHERE i.fin_factuur_key = t.fac_tracking_refkey
|
||
AND i.fac_import_key = p_import_key
|
||
AND t.fac_srtnotificatie_key = sn.fac_srtnotificatie_key
|
||
AND sn.fac_srtnotificatie_code = 'FINNEW');
|
||
|
||
END;
|
||
/
|
||
|
||
CREATE OR REPLACE PROCEDURE aaxx_import_fin_factuur_marx (p_import_key IN NUMBER)
|
||
AS
|
||
v_seq_of_columns VARCHAR(255);
|
||
BEGIN
|
||
v_seq_of_columns := '1;2;3;4;5;6;7;8;9;10;11;12;13;14;15;16;17;18;19;20;21;22;23;24;25;26;27;28';
|
||
fac_import_factuur_body(p_import_key, v_seq_of_columns);
|
||
END;
|
||
/
|
||
|
||
CREATE OR REPLACE PROCEDURE aaxx_update_fin_factuur_marx (p_import_key IN NUMBER)
|
||
AS
|
||
|
||
-- Voor Correctie ORDERNR om standaard update-procedure goed te laten lopen.
|
||
--- 0. Bug - Als uit Mareo/Scanning geen order-referentie meekomt en er zijn meerdere factuurregels, dan wordt er vanuit fac_update_factuur niet 1 maar meerdere factuurnr's aangemaakt. Oplossing: Ordernr vullen.
|
||
--- 0.1 Verzamelfactuur-indicatie (2022-maart actief): Vanuit Mareon wordt deze met een "(*)" achter de referentie meegegeven, bijvoorbeeld C5602.5(*).
|
||
-------- Ticket AAIT#90356 - AI Flowmatic - Als verzamelfactuur door AI bepaald dan wordt de bestandsnaam uitgebreid met '_VERZAMEL'
|
||
--- 0.2 Orderreferentie-opschoning: Vanuit scanning komt de orderreferentie soms mee inclusief 'extra tekst'. Bijv CO284IN<49>T of CO534.7HEERLEN. Voor goede verwerking gaan we de tekst achteraan de orderreferentie weghalen.
|
||
--- 1. Ordernr 101132/1 wordt niet als Opdracht herkend. In FUNCTION try_getopdracht_id gaat Facilitor alleen maar opdrachten matchen als er 1,2 of 3 letters voorstaan... Daarom gaan we er in import-tabel een 'O' voorzetten (dus: 'O101132/1')
|
||
--- Ps. BCT-regel: Indien geen prefix, en kolom ORDERNR is 6- of 7 cijferig en met een '/' en dan numeriek 1 t/m 3 posities. Voorbeeld: Bijv: 104370/2 vanuit BCT moet worden O104370/2
|
||
--- 2. Ordernr beginnende met "CO" wordt niet als Contract herkend. Daarom gaan we er in import-tabel een "C" van maken.
|
||
--- 3. Als ordernr is C (= contract) echter zonder versienummer - Dan wordt in standaard update altijd automatisch het hoogste versienummer gepakt.
|
||
--- Ivm overlap 'jaarovergangen' is dat niet altijd juist en moet de vanuit Mareon geimporteerde factuur nog status 'te controleren' meekrijgen voordat deze automatisch de financiele-interface in gaat.
|
||
--- 4. Ordernr beginnende met "BE" of "B" wordt niet als Bestelling herkend. Daarom gaan we deze prefix in de import-tabel weghalen.
|
||
--- 5. De klant geeft in PDF/XML als orderreferentie soms ook de klantnaam mee (bijv REMEHA C10.0) - deze wordt dan niet verwerkt in Facilor en daarom halen we klantnamen voor de orderreferentie weg
|
||
--- 6. Zie ticket AADS#82917 Error in fac_update_factuur bij Ordernr - Er worden verkeerde ORDERNR doorgezet bijv. 'Burg van den (Emiel) Tel. 06-27829750' die een ORA opleveren in standaard verwerking.
|
||
------- Gevolg: wel een 200 code naar mareon, maar geen factuuraanmaak in Facilitoir - OPLOSSEN!!!!!
|
||
--- 7. BTW-verlegd 0% -> Onbekend bij HEYDAY en kan moet onder BTW-verlegd 21% verwerkt worden..
|
||
|
||
CURSOR ccor_0
|
||
IS
|
||
SELECT ordernr
|
||
FROM fac_imp_factuur
|
||
WHERE fac_import_key = p_import_key
|
||
AND ordernr IS NULL
|
||
GROUP BY ordernr ;
|
||
|
||
CURSOR ccor_0_1
|
||
IS
|
||
SELECT factuurnr, ordernr, kenmerk1
|
||
FROM fac_imp_factuur
|
||
WHERE fac_import_key = p_import_key
|
||
AND (
|
||
INSTR(ordernr,'(*)') > 1
|
||
OR
|
||
SUBSTR (UPPER(kenmerk1), LENGTH (kenmerk1) - 12) = '_VERZAMEL.PDF'
|
||
)
|
||
GROUP BY factuurnr, ordernr, kenmerk1 ;
|
||
|
||
CURSOR ccor_0_2
|
||
IS
|
||
SELECT factuurnr, ordernr
|
||
FROM fac_imp_factuur
|
||
WHERE fac_import_key = p_import_key
|
||
AND REGEXP_INSTR(REVERSE(ordernr), '\d') > 1
|
||
GROUP BY factuurnr, ordernr ;
|
||
|
||
CURSOR ccor_1
|
||
IS
|
||
SELECT factuurnr, ordernr, fac.safe_to_number(SUBSTR(ordernr,1,(INSTR(ordernr,'/')-1))) as melding_key, fac.safe_to_number(SUBSTR(ordernr,(INSTR(ordernr,'/')+1),LENGTH(ordernr))) opdracht_volgnr, fac.safe_to_number(TO_CHAR(fac.safe_to_date (factuurdatum, 'yyyy-mm-dd'), 'yyyy')) factuurdatum_jaar
|
||
FROM fac_imp_factuur
|
||
WHERE fac_import_key = p_import_key
|
||
AND INSTR(ordernr,'/') >0
|
||
AND LENGTH(SUBSTR(ordernr,1,(INSTR(ordernr,'/')-1))) IN (6,7)
|
||
GROUP BY factuurnr, ordernr, factuurdatum ;
|
||
|
||
CURSOR ccor_2
|
||
IS
|
||
SELECT factuurnr, ordernr
|
||
FROM fac_imp_factuur
|
||
WHERE fac_import_key = p_import_key
|
||
AND LENGTH(ordernr) >= 2
|
||
AND (SUBSTR(UPPER(ordernr),1,2) = 'CO' OR SUBSTR(UPPER(ordernr),1,2) = 'CC')
|
||
GROUP BY factuurnr, ordernr ;
|
||
|
||
CURSOR ccor_3
|
||
IS
|
||
SELECT factuurnr, ordernr, SUBSTR(ordernr,2) cnt_contract_nummer_intern
|
||
FROM fac_imp_factuur
|
||
WHERE fac_import_key = p_import_key
|
||
AND SUBSTR(UPPER(ordernr),1,1) = 'C'
|
||
AND INSTR(ordernr,'.')=0
|
||
GROUP BY factuurnr, ordernr ;
|
||
|
||
CURSOR ccor_4
|
||
IS
|
||
SELECT factuurnr, ordernr
|
||
FROM fac_imp_factuur
|
||
WHERE fac_import_key = p_import_key
|
||
AND ( SUBSTR (ordernr, 1, 1) = 'B'
|
||
AND fac.safe_to_number (SUBSTR (ordernr, 2, 1)) IS NOT NULL)
|
||
OR (SUBSTR (ordernr, 1, 2) = 'BE')
|
||
GROUP BY factuurnr, ordernr ;
|
||
|
||
CURSOR ccor_5
|
||
IS
|
||
SELECT factuurnr, ordernr
|
||
FROM fac_imp_factuur
|
||
WHERE fac_import_key = p_import_key
|
||
AND INSTR(SUBSTR(ordernr, 1, (REGEXP_INSTR((ordernr), '\d')-1)), aaxx_get_user) = 1 -- tekst_voornummer_bevatklantnaam
|
||
GROUP BY factuurnr, ordernr ;
|
||
|
||
CURSOR ccor_6
|
||
IS
|
||
SELECT factuurnr, ordernr
|
||
FROM fac_imp_factuur
|
||
WHERE fac_import_key = p_import_key
|
||
AND LENGTH(ordernr)>23 AND UPPER(SUBSTR(ordernr, 1, 1)) <> 'C'
|
||
GROUP BY factuurnr, ordernr ;
|
||
|
||
CURSOR ccor_7
|
||
IS
|
||
SELECT fac_imp_file_index, factuurnr, btw, btw_verlegd
|
||
FROM fac_imp_factuur
|
||
WHERE fac_import_key = p_import_key
|
||
AND UPPER(btw_verlegd) = 'JA' AND btw = 0 ;
|
||
|
||
CURSOR cfactuur
|
||
IS
|
||
SELECT i.fin_factuur_key, factuurdatum, i.kenmerk1, i.kenmerk2, i.kenmerk3, i.kenmerk6, i.kenmerk7, i.kenmerk8, i.kenmerk9, i.kenmerk10, i.factuurnr, i.fac_imp_file_index, f.fin_factuur_totaal, f.fin_factuur_totaal_btw, f.mld_opdr_key, f.cnt_contract_key, f.bes_bestelopdr_key
|
||
FROM fac_imp_factuur i, fin_factuur f
|
||
WHERE i.fin_factuur_key IS NOT NULL
|
||
AND i.fac_import_key = p_import_key
|
||
AND f.fin_factuur_key = i.fin_factuur_key
|
||
AND kenmerk1 IS NOT NULL -- Incl bijlage
|
||
;
|
||
|
||
CURSOR cfactuurregel
|
||
IS
|
||
SELECT i.fin_factuur_key, i.fac_imp_file_index, i.fin_factuurregel_key, i.kostprijs, i.btw, DECODE(i.btw_verlegd, NULL, 'nee', 'ja') btw_verlegd
|
||
FROM fac_imp_factuur i
|
||
WHERE i.fac_import_key = p_import_key
|
||
AND i.kenmerk1 IS NOT NULL -- Incl bijlage
|
||
ORDER BY i.fac_imp_file_index
|
||
;
|
||
|
||
|
||
v_aanduiding VARCHAR2 (1000);
|
||
v_errorhint VARCHAR2 (1000);
|
||
v_errormsg VARCHAR2 (1000);
|
||
oracle_err_num NUMBER;
|
||
oracle_err_mes VARCHAR2 (200);
|
||
|
||
c_kenmerk_key_bijlage NUMBER(10);
|
||
c_kenmerk_key_soort VARCHAR(1) := 'F'; -- fin_kenmerk_kenmerktype = M(foldermap) of F(enkelvoudig bestand)
|
||
c_huidig_jaar NUMBER(4) := fac.safe_to_number((TO_CHAR (SYSDATE, 'yyyy')));
|
||
v_disk_directory VARCHAR2 (200);
|
||
v_bedrag_totaal NUMBER(10);
|
||
v_bedrag_gefactureerd NUMBER(10);
|
||
v_count_gefactureerd NUMBER(10);
|
||
v_bedrag_termijn NUMBER(10);
|
||
v_ordersoort VARCHAR2 (200);
|
||
v_contractsoort VARCHAR2 (200);
|
||
v_bestelsoort VARCHAR2 (200);
|
||
v_klantnummer_key NUMBER(10);
|
||
v_klantnummer VARCHAR2 (200);
|
||
v_prs_leverancier_nr VARCHAR2 (200);
|
||
v_contract_versies NUMBER(10);
|
||
c_kenmerk_key_controle NUMBER(10);
|
||
c_kenmerk_key_verzamel NUMBER(10);
|
||
c_kenmerk_key_mareon_bron NUMBER(10);
|
||
c_kenmerk_key_mareon_info NUMBER(10);
|
||
c_kenmerk_key_bedrijf_intern NUMBER(10); -- interne bedrijfsherkenning (tbv INLO)
|
||
v_prs_bedrijf_key NUMBER(10);
|
||
v_opdracht_key NUMBER(10);
|
||
v_controle NUMBER(1) := 0 ; -- 1 = controlevinkje op inkoopfactuur zetten
|
||
v_aanduiding_controle VARCHAR2 (1000); -- Voor logging op bijbehorende controle zodat men weet wat men moet controleren
|
||
v_fac_usrdata_key_ja NUMBER(10);
|
||
v_fac_usrdata_key_nee NUMBER(10);
|
||
v_mld_statusopdr_key NUMBER(10);
|
||
v_count_gefactureerd_nr NUMBER(10);
|
||
v_opdracht_0_reden VARCHAR2 (1000);
|
||
v_fin_factuur_key NUMBER(10);
|
||
v_sabic_genk VARCHAR2 (200);
|
||
v_prs_kostenplaats_key NUMBER(10);
|
||
v_prs_kostenplaatsgrp_key NUMBER(10);
|
||
|
||
-- Verdeelperiode voor de contracten gaan bepalen
|
||
v_cnt_jaar_start NUMBER(10);
|
||
v_cnt_jaar_eind NUMBER(10);
|
||
v_cnt_maand_start NUMBER(10);
|
||
v_cnt_maand_start_tekst VARCHAR(2);
|
||
v_cnt_maand_eind NUMBER(10);
|
||
v_cnt_maand_eind_tekst VARCHAR(2);
|
||
v_cnt_start VARCHAR(7); -- Start contract in format tekst "jaar-mnd" (2022-05)
|
||
v_cnt_eind VARCHAR(7); -- Einde contract in format tekst "jaar-mnd" (2022-05)
|
||
|
||
v_fin_factuur_boekmaand_nu VARCHAR(7); -- Ingelezen factuur in format tekst "jaar-mnd" (2022-05)
|
||
v_gebroken_boekjaar NUMBER(1) := 0 ;
|
||
v_cnt_looptijd_mnd NUMBER(10);
|
||
v_cnt_deel_betaald_1 NUMBER(10); -- Deel van contract wat reeds betaald is
|
||
v_cnt_deel_betaald_2 NUMBER(10); -- Deel van contract wat betaald is als de mareon-factuur ook verwerkt is
|
||
v_cnt_deel_betaald_tekst VARCHAR2 (200); -- Tekst voor in tijdelijke kenmerveld om te kijken of bepaling boekmaand correct is
|
||
v_cnt_deel_betaald_pvm NUMBER(10); -- Percentage vorige maand (pvm) betaald - ivm 90%-regel heyday
|
||
v_fin_factuur_boekmaand_2 VARCHAR(7); -- De nieuwe boekmaand op de geimporteerde Mareon-factuur - METHODE 2
|
||
v_fin_factuur_boekmaand_tekst VARCHAR2 (1000); -- Tekst voor in tijdelijke kenmerkveld om te kijken of bepaling boekmaand correct is
|
||
c_kenmerk_key_boekmaand NUMBER(10);
|
||
v_cnt_termijn_type VARCHAR(1);
|
||
v_cnt_termijn_aantal NUMBER(3);
|
||
v_cnt_soort VARCHAR2 (200);
|
||
v_factuur_datum_boekmaand NUMBER(10);
|
||
v_factuur_datum_boekmaand_jr NUMBER(10);
|
||
v_factuur_datum_boekmaand_prev VARCHAR(2);
|
||
v_factuur_datum_boekmaand_nu VARCHAR(2);
|
||
v_fin_factuur_boekmaand_laatst VARCHAR(7);
|
||
v_fin_factuur_boekmaand_prev VARCHAR(7);
|
||
|
||
v_cnt_maandbedrag NUMBER(10);
|
||
v_gefactureerd_vorige_maand NUMBER(10);
|
||
|
||
v_cnt_scope_gebouw NUMBER(10);
|
||
v_cnt_scope_afwijkend NUMBER(10);
|
||
|
||
v_fin_btwtabel VARCHAR(30);
|
||
v_fin_btwtabel_default VARCHAR(30);
|
||
v_factuurregels_aantal_fout NUMBER(10);
|
||
v_fin_btwtabelwaarde_found NUMBER(10);
|
||
v_controle_btw NUMBER(1) := 0 ; -- 1 = controlevinkje ivm geen (eenduidige) btw-code op inkoopfactuur zetten
|
||
|
||
|
||
BEGIN
|
||
|
||
-- Voor draaien standaard factuur-update gaan we eerst op fac_imp_factuur een aantal correcties doorvoeren
|
||
FOR rec IN ccor_0
|
||
LOOP
|
||
BEGIN
|
||
|
||
UPDATE fac_imp_factuur
|
||
SET ordernr = '00000' -- Geen ordernr vanuit scanning
|
||
WHERE fac_import_key = p_import_key ;
|
||
|
||
END;
|
||
END LOOP;
|
||
|
||
FOR rec IN ccor_0_1
|
||
LOOP
|
||
BEGIN
|
||
|
||
UPDATE fac_imp_factuur
|
||
SET kenmerk3 = 'verzamelfactuur'
|
||
WHERE fac_import_key = p_import_key ;
|
||
|
||
END;
|
||
END LOOP;
|
||
|
||
FOR rec IN ccor_0_2
|
||
LOOP
|
||
BEGIN
|
||
|
||
UPDATE fac_imp_factuur
|
||
SET ordernr = SUBSTR(ordernr,1,LENGTH(ordernr)-(REGEXP_INSTR(REVERSE(ordernr), '\d')-1))
|
||
WHERE fac_import_key = p_import_key ;
|
||
|
||
END;
|
||
END LOOP;
|
||
|
||
FOR rec IN ccor_1
|
||
LOOP
|
||
BEGIN
|
||
|
||
-- check of je er een ACTUELE opdracht_key voor kunt vinden. zo ja dan gaan we er vanuit dat het idd opdracht is en vullen we ordernr aan met een prefix "O"
|
||
--- Actueel = Nog niet verwerkte opdracht + Jaar(opdrachtdatum) gelijk aan Jaar(factuurdatum) of Jaar(factuurdatum)-1
|
||
IF rec.melding_key IS NOT NULL and rec.opdracht_volgnr IS NOT NULL and rec.factuurdatum_jaar IS NOT NULL THEN
|
||
|
||
SELECT min(mld_opdr_key)
|
||
INTO v_opdracht_key
|
||
FROM mld_opdr
|
||
WHERE mld_melding_key = rec.melding_key AND mld_opdr_bedrijfopdr_volgnr = rec.opdracht_volgnr
|
||
AND fac.safe_to_number((TO_CHAR (mld_opdr_datumbegin, 'yyyy'))) BETWEEN (rec.factuurdatum_jaar - 1) AND rec.factuurdatum_jaar
|
||
AND mld_statusopdr_key NOT IN (1,7) ; -- verwerkt of afgewezen
|
||
|
||
IF v_opdracht_key IS NOT NULL THEN
|
||
|
||
UPDATE fac_imp_factuur
|
||
SET ordernr = 'O' || ordernr
|
||
WHERE fac_import_key = p_import_key ;
|
||
|
||
END IF;
|
||
|
||
END IF;
|
||
|
||
END;
|
||
END LOOP;
|
||
|
||
FOR rec IN ccor_2
|
||
LOOP
|
||
BEGIN
|
||
|
||
UPDATE fac_imp_factuur
|
||
SET ordernr = 'C' || SUBSTR(ordernr,3,LENGTH(ordernr))
|
||
WHERE fac_import_key = p_import_key ;
|
||
|
||
END;
|
||
END LOOP;
|
||
|
||
FOR rec IN ccor_3
|
||
LOOP
|
||
BEGIN
|
||
|
||
IF fac.safe_to_number(rec.cnt_contract_nummer_intern) IS NOT NULL THEN
|
||
|
||
SELECT count(*)
|
||
INTO v_contract_versies
|
||
FROM cnt_contract
|
||
WHERE cnt_contract_verwijder IS NULL AND cnt_contract_status = 0
|
||
AND cnt_contract_nummer_intern = rec.cnt_contract_nummer_intern ;
|
||
|
||
-- Als er meer dan 1 versie is, dan moet factuur ter controle. We gaan hiervoor een kenmerkveld vullen...
|
||
IF v_contract_versies > 1 THEN
|
||
|
||
UPDATE fac_imp_factuur
|
||
SET kenmerk2 = 'ter controle'
|
||
WHERE fac_import_key = p_import_key ;
|
||
|
||
END IF;
|
||
|
||
END IF;
|
||
|
||
END;
|
||
END LOOP;
|
||
|
||
FOR rec IN ccor_4
|
||
LOOP
|
||
BEGIN
|
||
|
||
UPDATE fac_imp_factuur
|
||
SET ordernr = REPLACE(ordernr,'BE','')
|
||
WHERE fac_import_key = p_import_key ;
|
||
|
||
UPDATE fac_imp_factuur
|
||
SET ordernr = REPLACE(ordernr,'B','')
|
||
WHERE fac_import_key = p_import_key ;
|
||
|
||
END;
|
||
END LOOP;
|
||
|
||
FOR rec IN ccor_5
|
||
LOOP
|
||
BEGIN
|
||
|
||
UPDATE fac_imp_factuur
|
||
SET ordernr = REPLACE(ordernr, aaxx_get_user , '')
|
||
WHERE fac_import_key = p_import_key ;
|
||
|
||
END;
|
||
END LOOP;
|
||
|
||
FOR rec IN ccor_6
|
||
LOOP
|
||
BEGIN
|
||
|
||
UPDATE fac_imp_factuur
|
||
SET ordernr = SUBSTR(ordernr, 1, 23)
|
||
WHERE fac_import_key = p_import_key ;
|
||
|
||
END;
|
||
END LOOP;
|
||
|
||
FOR rec IN ccor_7
|
||
LOOP
|
||
BEGIN
|
||
|
||
UPDATE fac_imp_factuur
|
||
SET btw = '21'
|
||
WHERE fac_import_key = p_import_key AND fac_imp_file_index = rec.fac_imp_file_index ;
|
||
|
||
END;
|
||
END LOOP;
|
||
|
||
|
||
-- Nu kunnen we de standaard FCLT verwerk import facturen draaien
|
||
fac_update_factuur (p_import_key);
|
||
|
||
|
||
-- CUST: post processing voor verwerking van het PDF document
|
||
SELECT MIN (fin_kenmerk_key)
|
||
INTO c_kenmerk_key_bijlage
|
||
FROM fin_kenmerk
|
||
WHERE fin_kenmerk_type = 'F' -- niveau kenmerk op Factuurniveau en niet op R-regel
|
||
AND fin_kenmerk_kenmerktype = c_kenmerk_key_soort
|
||
AND fin_kenmerk_verwijder IS NULL;
|
||
|
||
-- CUST: Voor vullen Klantnummer het kenmerk_key ophalen
|
||
SELECT MIN (prs_kenmerk_key)
|
||
INTO v_klantnummer_key
|
||
FROM prs_kenmerk
|
||
WHERE prs_kenmerk_niveau = 'B' AND prs_kenmerk_upper = 'KLANTNUMMER' AND prs_kenmerk_verwijder IS NULL;
|
||
|
||
-- CUST: Voor verwerking Contracten die qua versienr nog gecontroleerd moeten worden het kenmerk_key ophalen
|
||
SELECT MIN (fin_kenmerk_key)
|
||
INTO c_kenmerk_key_controle
|
||
FROM fin_kenmerk
|
||
WHERE fin_kenmerk_type = 'F' -- niveau kenmerk op Factuurniveau en niet op R-regel
|
||
AND fin_kenmerk_kenmerktype = 'V'
|
||
AND fin_kenmerk_upper = 'EXTRA CONTROLE?'
|
||
AND fin_kenmerk_verwijder IS NULL;
|
||
|
||
-- CUST: Voor verwerking Contracten en Verdeelperiode goed doorvoeren (= fin_factuur_boekmaand)
|
||
----- We gaan dit in een kenmerveld vullen en indien goed te bepalen dan wordt dit ook in procedure straks in het factuur-boekmaand veld weggeschreven
|
||
SELECT MIN (fin_kenmerk_key)
|
||
INTO c_kenmerk_key_boekmaand
|
||
FROM fin_kenmerk
|
||
WHERE fin_kenmerk_type = 'F' -- niveau kenmerk op Factuurniveau en niet op R-regel
|
||
AND fin_kenmerk_kenmerktype = 'C'
|
||
AND fin_kenmerk_upper = 'MAREON_CNT_BOEKMAAND'
|
||
AND fin_kenmerk_verwijder IS NULL;
|
||
|
||
-- CUST: Voor verwerking Verzamelfactuur-indicatie het kenmerk_key ophalen
|
||
SELECT MIN (fin_kenmerk_key)
|
||
INTO c_kenmerk_key_verzamel
|
||
FROM fin_kenmerk
|
||
WHERE fin_kenmerk_type = 'F' -- niveau kenmerk op Factuurniveau en niet op R-regel
|
||
AND fin_kenmerk_kenmerktype = 'V'
|
||
AND fin_kenmerk_upper = 'VERZAMELFACTUUR?'
|
||
AND fin_kenmerk_verwijder IS NULL;
|
||
|
||
-- CUST: Ophalen key-waarde Ja en Nee van kenmerkveld Laatste Factuur
|
||
SELECT ud.fac_usrdata_key
|
||
INTO v_fac_usrdata_key_ja
|
||
FROM fin_kenmerk k,
|
||
fac_kenmerkdomein kd,
|
||
fac_usrtab ut,
|
||
fac_usrdata ud
|
||
WHERE fin_kenmerk_key = 2
|
||
AND k.fac_kenmerkdomein_key = kd.fac_kenmerkdomein_key
|
||
AND kd.fac_usrtab_key = ut.fac_usrtab_key
|
||
AND ut.fac_usrtab_key = ud.fac_usrtab_key
|
||
AND fac.safe_to_number (ud.fac_usrdata_code) = 1; -- Waarde is Ja
|
||
|
||
SELECT ud.fac_usrdata_key
|
||
INTO v_fac_usrdata_key_nee
|
||
FROM fin_kenmerk k,
|
||
fac_kenmerkdomein kd,
|
||
fac_usrtab ut,
|
||
fac_usrdata ud
|
||
WHERE fin_kenmerk_key = 2
|
||
AND k.fac_kenmerkdomein_key = kd.fac_kenmerkdomein_key
|
||
AND kd.fac_usrtab_key = ut.fac_usrtab_key
|
||
AND ut.fac_usrtab_key = ud.fac_usrtab_key
|
||
AND fac.safe_to_number (ud.fac_usrdata_code) = 2; -- Waarde is Nee
|
||
|
||
-- CUST: Voor verwerking Mareon-bron het kenmerk_key ophalen
|
||
SELECT MIN (fin_kenmerk_key)
|
||
INTO c_kenmerk_key_mareon_bron
|
||
FROM fin_kenmerk
|
||
WHERE fin_kenmerk_type = 'F' -- niveau kenmerk op Factuurniveau en niet op R-regel
|
||
AND fin_kenmerk_kenmerktype = 'C'
|
||
AND fin_kenmerk_code = 'MAREON_BRON'
|
||
AND fin_kenmerk_verwijder IS NULL;
|
||
|
||
-- CUST: Voor btw-verhaal (indien factuurregels niet aangemaakt worden)
|
||
SELECT fin_btwtabel_omschrijving
|
||
INTO v_fin_btwtabel_default
|
||
FROM fin_btwtabel
|
||
WHERE fin_btwtabel_default = 1 AND fin_btwtabel_verwijder IS NULL ;
|
||
|
||
-- CUST: Voor aanvullende info uit mareon-facuurverwerking - Iig voor factuurregels die niet allemaal aangemaakt worden
|
||
SELECT MIN (fin_kenmerk_key)
|
||
INTO c_kenmerk_key_mareon_info
|
||
FROM fin_kenmerk
|
||
WHERE fin_kenmerk_type = 'F' -- niveau kenmerk op Factuurniveau en niet op R-regel
|
||
AND fin_kenmerk_kenmerktype = 'C'
|
||
AND fin_kenmerk_code = 'MAREON_INFO'
|
||
AND fin_kenmerk_verwijder IS NULL;
|
||
|
||
-- CUST: Voor interne bedrijfsherkenning - In Mareon hebben de INLO-subaccounts eigen mailadressen en AX-nr wordt meegestuurd naar Facilitor met naam subaccount (zie AAIT#84789)
|
||
SELECT MIN (fin_kenmerk_key)
|
||
INTO c_kenmerk_key_bedrijf_intern
|
||
FROM fin_kenmerk
|
||
WHERE fin_kenmerk_type = 'F' -- niveau kenmerk op Factuurniveau en niet op R-regel
|
||
AND fin_kenmerk_kenmerktype = 'C'
|
||
AND fin_kenmerk_code = 'MAREON_BEDRIJF_INTERN'
|
||
AND fin_kenmerk_verwijder IS NULL;
|
||
|
||
-- We gaan nu beginnen met het verder verwerken van de factuur..
|
||
FOR rec IN cfactuur
|
||
LOOP
|
||
BEGIN
|
||
|
||
-- Als er een bijlage-flexprop en een bijlage is, dan gaan we deze PDF hier inzetten....
|
||
IF c_kenmerk_key_bijlage IS NOT NULL AND rec.kenmerk1 IS NOT NULL
|
||
THEN
|
||
|
||
BEGIN
|
||
INSERT INTO fac_result (fac_result_sessionid, fac_result_naam, fac_result_waarde)
|
||
VALUES('IMPORT:' || TO_CHAR (p_import_key),
|
||
'flexcode',
|
||
'FIN:'
|
||
|| TO_CHAR (rec.fin_factuur_key) -- We kunnen niet meerdere imports tegelijk aan!
|
||
|| ':' || c_kenmerk_key_bijlage || ':' -- De kenmerk key
|
||
|| c_kenmerk_key_soort -- 'F of M'
|
||
);
|
||
|
||
-- FSN#33363: Zelf de insert in fin_kenmerkfactuur doen van het bestandskenmerk (FSN#33105 verzorgt dit niet namelijk)
|
||
-- Aanvulling JM: Voor F-enkelvoudig bestand wel nodig om kenmerk aan te maken, voor M-folder hoeft/moet dit niet
|
||
IF c_kenmerk_key_soort = 'F'
|
||
THEN
|
||
INSERT INTO fin_kenmerkfactuur (fin_factuur_key, fin_kenmerk_key, fin_kenmerkfactuur_waarde)
|
||
VALUES (rec.fin_factuur_key, c_kenmerk_key_bijlage, rec.kenmerk1);
|
||
END IF;
|
||
|
||
EXCEPTION
|
||
WHEN OTHERS
|
||
THEN
|
||
fac.imp_writelog (p_import_key,
|
||
'W',
|
||
'Van factuur met key ' || rec.fin_factuur_key || ' is de bestandsnaam niet bewaard (regel ' || rec.fac_imp_file_index || ')',
|
||
'Factuurnr:' || rec.factuurnr || ' / Bestandsnaam: ' || rec.kenmerk1
|
||
);
|
||
END;
|
||
|
||
COMMIT;
|
||
|
||
END IF;
|
||
|
||
-- Als er een ref-key gekoppeld is, dan gaan we o.a. de waarde van deze verplichting ophalen en verschillende controles doen
|
||
IF (rec.mld_opdr_key IS NOT NULL OR rec.cnt_contract_key IS NOT NULL OR rec.bes_bestelopdr_key IS NOT NULL)
|
||
THEN
|
||
v_bedrag_totaal := 0;
|
||
v_count_gefactureerd := 0;
|
||
v_bedrag_gefactureerd := 0;
|
||
v_ordersoort := '';
|
||
|
||
-- Voor Opdracht..
|
||
IF rec.mld_opdr_key IS NOT NULL
|
||
THEN
|
||
SELECT COALESCE(o.mld_opdr_kosten, 0), ot.mld_typeopdr_omschrijving, o.mld_uitvoerende_keys, mld_statusopdr_key, o.prs_kostenplaats_key, COALESCE(bt.fin_btwtabel_omschrijving, v_fin_btwtabel_default)
|
||
INTO v_bedrag_totaal, v_ordersoort, v_prs_bedrijf_key, v_mld_statusopdr_key, v_prs_kostenplaats_key, v_fin_btwtabel
|
||
FROM mld_opdr o, mld_typeopdr ot, prs_bedrijf b, fin_btwtabel bt
|
||
WHERE o.mld_opdr_key = rec.mld_opdr_key
|
||
AND o.mld_typeopdr_key = ot.mld_typeopdr_key
|
||
AND o.mld_uitvoerende_keys = b.prs_bedrijf_key
|
||
AND b.fin_btwtabel_key = bt.fin_btwtabel_key (+);
|
||
|
||
SELECT count(*)
|
||
INTO v_count_gefactureerd
|
||
FROM fin_factuur
|
||
WHERE mld_opdr_key = rec.mld_opdr_key
|
||
AND fin_factuur_verwijder IS NULL;
|
||
|
||
IF v_count_gefactureerd > 1
|
||
THEN
|
||
SELECT sum(fin_factuur_totaal)
|
||
INTO v_bedrag_gefactureerd
|
||
FROM fin_factuur f
|
||
WHERE f.mld_opdr_key = rec.mld_opdr_key
|
||
AND f.fin_factuur_key NOT IN (rec.fin_factuur_key)
|
||
AND f.fin_factuur_verwijder IS NULL;
|
||
END IF;
|
||
|
||
-- Als de Opdracht waar deze factuur op is gekomen al verwerkt is, dan moet deze factuur ter controle
|
||
IF v_mld_statusopdr_key IN (1,7) -- verwerkt of afgewezen
|
||
THEN
|
||
|
||
v_aanduiding_controle := 'CONTROLE - Deze factuur is ingeboekt terwijl de Opdracht al op VERWERKT staat' ;
|
||
v_controle := 1 ;
|
||
|
||
fac.trackaction ('FINUPD', rec.fin_factuur_key, 4, NULL, v_aanduiding_controle);
|
||
|
||
END IF;
|
||
|
||
-- Als hetzelfde factuurnummer al vaker op deze opdracht is geregistreerd, dan moet deze factuur ter controle
|
||
SELECT count(*)
|
||
INTO v_count_gefactureerd_nr
|
||
FROM fin_factuur
|
||
WHERE mld_opdr_key = rec.mld_opdr_key
|
||
AND fin_factuur_key NOT IN (rec.fin_factuur_key)
|
||
AND fin_factuur_nr = rec.factuurnr
|
||
AND fin_factuur_verwijder IS NULL ;
|
||
|
||
IF v_count_gefactureerd_nr > 0
|
||
THEN
|
||
|
||
v_aanduiding_controle := 'CONTROLE - Hetzelfde factuur-nummer is al eerder geregistreerd op deze Opdracht' ;
|
||
v_controle := 1 ;
|
||
|
||
fac.trackaction ('FINUPD', rec.fin_factuur_key, 4, NULL, v_aanduiding_controle);
|
||
|
||
END IF;
|
||
|
||
-- Voor een opdracht waar een 0-reden is ingevuld, moet de factuur ter controle
|
||
IF v_bedrag_totaal IS NOT NULL
|
||
THEN
|
||
-- Eerst dus kijken of er bij opdracht een reden is vermeld
|
||
BEGIN
|
||
|
||
SELECT MIN(ko.mld_kenmerkopdr_waarde)
|
||
INTO v_opdracht_0_reden
|
||
FROM mld_kenmerkopdr ko, mld_kenmerk k, mld_srtkenmerk sk
|
||
WHERE ko.mld_kenmerk_key = k.mld_kenmerk_key
|
||
AND k.mld_srtkenmerk_key = sk.mld_srtkenmerk_key
|
||
AND sk.mld_srtkenmerk_upper = 'REDEN 0 ORDER'
|
||
AND k.mld_kenmerk_verwijder IS NULL AND sk.mld_srtkenmerk_verwijder IS NULL
|
||
AND ko.mld_opdr_key = rec.mld_opdr_key
|
||
AND ko.mld_kenmerkopdr_waarde IS NOT NULL
|
||
AND ko.mld_kenmerkopdr_verwijder IS NULL ;
|
||
EXCEPTION
|
||
WHEN NO_DATA_FOUND
|
||
THEN
|
||
v_opdracht_0_reden := NULL;
|
||
END;
|
||
|
||
-- Zo ja, dan zetten we de controle
|
||
IF v_opdracht_0_reden IS NOT NULL
|
||
THEN
|
||
v_aanduiding_controle := 'CONTROLE - Factuur op opdracht met 0-reden' ;
|
||
v_controle := 1 ;
|
||
|
||
fac.trackaction ('FINUPD', rec.fin_factuur_key, 4, NULL, v_aanduiding_controle);
|
||
END IF;
|
||
|
||
END IF;
|
||
|
||
-- Specifiek voor SABIC-GENK - Altijd op controle omdat ze nog een PDF moeten opslaan
|
||
IF aaxx_get_user = 'SABIC'
|
||
THEN
|
||
|
||
BEGIN
|
||
|
||
SELECT d.alg_district_omschrijving
|
||
INTO v_sabic_genk
|
||
FROM mld_opdr o, mld_melding m, alg_locatie l, alg_district d
|
||
WHERE o.mld_melding_key = m.mld_melding_key
|
||
AND m.mld_alg_locatie_key = l.alg_locatie_key
|
||
AND l.alg_district_key = d.alg_district_key
|
||
AND d.alg_district_key = 61 -- SABIC-GENK
|
||
AND o.mld_opdr_key = rec.mld_opdr_key ;
|
||
EXCEPTION
|
||
WHEN NO_DATA_FOUND
|
||
THEN
|
||
v_sabic_genk := NULL;
|
||
END;
|
||
|
||
IF v_sabic_genk IS NOT NULL
|
||
THEN
|
||
v_aanduiding_controle := 'CONTROLE - PDF opslaan voor SABIC GENK' ;
|
||
v_controle := 1 ;
|
||
|
||
fac.trackaction ('FINUPD', rec.fin_factuur_key, 4, NULL, v_aanduiding_controle);
|
||
END IF;
|
||
|
||
END IF;
|
||
|
||
|
||
END IF;
|
||
|
||
-- Voor Bestelopdracht..
|
||
IF rec.bes_bestelopdr_key IS NOT NULL
|
||
THEN
|
||
SELECT COALESCE(SUM (br.bes_bestelopdr_item_aantal * br.bes_bestelopdr_item_prijs), 0) bedrag_totaal, b.prs_bedrijf_key, bs.prs_kostenplaats_key, COALESCE(bt.fin_btwtabel_omschrijving, v_fin_btwtabel_default) -- LETOP! Bedragen en BTW - check inclusief of Exclusief bij AAIT (via bes_bestelling_item)!!!
|
||
INTO v_bedrag_totaal, v_prs_bedrijf_key, v_prs_kostenplaats_key, v_fin_btwtabel
|
||
FROM bes_bestelopdr b, bes_bestelopdr_item br, bes_bestelling_item bi, bes_bestelling bs, prs_bedrijf bd, fin_btwtabel bt
|
||
WHERE b.bes_bestelopdr_key = br.bes_bestelopdr_key
|
||
AND b.bes_bestelopdr_key = rec.bes_bestelopdr_key
|
||
AND br.bes_bestelopdr_item_key = bi.bes_bestelopdr_item_key
|
||
AND bi.bes_bestelling_key = bs.bes_bestelling_key
|
||
AND b.prs_bedrijf_key = bd.prs_bedrijf_key AND bd.fin_btwtabel_key = bt.fin_btwtabel_key (+)
|
||
GROUP BY b.prs_bedrijf_key, bs.prs_kostenplaats_key, bt.fin_btwtabel_omschrijving ;
|
||
|
||
SELECT count(*)
|
||
INTO v_count_gefactureerd
|
||
FROM fin_factuur
|
||
WHERE bes_bestelopdr_key = rec.bes_bestelopdr_key
|
||
AND fin_factuur_verwijder IS NULL;
|
||
|
||
IF v_count_gefactureerd > 1
|
||
THEN
|
||
SELECT sum(fin_factuur_totaal)
|
||
INTO v_bedrag_gefactureerd
|
||
FROM fin_factuur f
|
||
WHERE f.bes_bestelopdr_key = rec.bes_bestelopdr_key
|
||
AND f.fin_factuur_key NOT IN (rec.fin_factuur_key)
|
||
AND f.fin_factuur_verwijder IS NULL ;
|
||
END IF;
|
||
|
||
-- Als hetzelfde factuurnummer al vaker op deze opdracht is geregistreerd, dan moet deze factuur ter controle
|
||
SELECT count(*)
|
||
INTO v_count_gefactureerd_nr
|
||
FROM fin_factuur
|
||
WHERE bes_bestelopdr_key = rec.bes_bestelopdr_key
|
||
AND fin_factuur_key NOT IN (rec.fin_factuur_key)
|
||
AND fin_factuur_nr = rec.factuurnr
|
||
AND fin_factuur_verwijder IS NULL ;
|
||
|
||
IF v_count_gefactureerd_nr > 0
|
||
THEN
|
||
|
||
v_aanduiding_controle := 'CONTROLE - Hetzelfde factuur-nummer is al eerder geregistreerd op deze Opdracht' ;
|
||
v_controle := 1 ;
|
||
|
||
fac.trackaction ('FINUPD', rec.fin_factuur_key, 4, NULL, v_aanduiding_controle);
|
||
|
||
END IF;
|
||
|
||
-- Voor Bestelopdrachten met 0-waarde zetten we Controle
|
||
IF v_bedrag_totaal = 0
|
||
THEN
|
||
|
||
v_aanduiding_controle := 'CONTROLE - Bedrag van gekoppelde verplichting is 0,- euro' ;
|
||
v_controle := 1 ;
|
||
|
||
fac.trackaction ('FINUPD', rec.fin_factuur_key, 4, NULL, v_aanduiding_controle);
|
||
|
||
END IF;
|
||
|
||
-- Specifiek voor SABIC-GENK - Altijd op controle omdat ze nog een PDF moeten opslaan
|
||
IF aaxx_get_user = 'SABIC'
|
||
THEN
|
||
|
||
BEGIN
|
||
|
||
SELECT d.alg_district_omschrijving
|
||
INTO v_sabic_genk
|
||
FROM bes_bestelopdr bo, mld_adres a, alg_locatie l, alg_district d
|
||
WHERE bo.mld_adres_key_lev = a.mld_adres_key
|
||
AND a.alg_locatie_key = l.alg_locatie_key
|
||
AND l.alg_district_key = d.alg_district_key
|
||
AND d.alg_district_key = 61 -- SABIC-GENK
|
||
AND bo.bes_bestelopdr_key = rec.bes_bestelopdr_key ;
|
||
EXCEPTION
|
||
WHEN NO_DATA_FOUND
|
||
THEN
|
||
v_sabic_genk := NULL;
|
||
END;
|
||
|
||
IF v_sabic_genk IS NOT NULL
|
||
THEN
|
||
v_aanduiding_controle := 'CONTROLE - PDF opslaan voor SABIC GENK' ;
|
||
v_controle := 1 ;
|
||
|
||
fac.trackaction ('FINUPD', rec.fin_factuur_key, 4, NULL, v_aanduiding_controle);
|
||
END IF;
|
||
|
||
END IF;
|
||
|
||
|
||
END IF;
|
||
|
||
-- Voor Contract..
|
||
IF rec.cnt_contract_key IS NOT NULL
|
||
THEN
|
||
SELECT COALESCE(c.cnt_contract_kosten, 0), c.cnt_contract_termijnkosten, cs.ins_discipline_omschrijving, c.cnt_prs_bedrijf_key, c.prs_kostenplaats_key, COALESCE(bt.fin_btwtabel_omschrijving, v_fin_btwtabel_default)
|
||
INTO v_bedrag_totaal, v_bedrag_termijn, v_contractsoort, v_prs_bedrijf_key, v_prs_kostenplaats_key, v_fin_btwtabel
|
||
FROM cnt_contract c, ins_tab_discipline cs, prs_bedrijf b, fin_btwtabel bt
|
||
WHERE c.cnt_contract_key = rec.cnt_contract_key
|
||
AND c.ins_discipline_key = cs.ins_discipline_key AND cs.ins_discipline_module = 'CNT'
|
||
AND c.cnt_prs_bedrijf_key = b.prs_bedrijf_key AND b.fin_btwtabel_key = bt.fin_btwtabel_key (+) ;
|
||
|
||
SELECT count(*)
|
||
INTO v_count_gefactureerd
|
||
FROM fin_factuur
|
||
WHERE cnt_contract_key = rec.cnt_contract_key
|
||
AND fin_factuur_verwijder IS NULL;
|
||
|
||
IF v_count_gefactureerd > 1
|
||
THEN
|
||
SELECT sum(fin_factuur_totaal)
|
||
INTO v_bedrag_gefactureerd
|
||
FROM fin_factuur f
|
||
WHERE f.cnt_contract_key = rec.cnt_contract_key
|
||
AND f.fin_factuur_key NOT IN (rec.fin_factuur_key)
|
||
AND f.fin_factuur_verwijder IS NULL ;
|
||
END IF;
|
||
|
||
-- Als hetzelfde factuurnummer al vaker op deze opdracht is geregistreerd, dan moet deze factuur ter controle
|
||
SELECT count(*)
|
||
INTO v_count_gefactureerd_nr
|
||
FROM fin_factuur
|
||
WHERE cnt_contract_key = rec.cnt_contract_key
|
||
AND fin_factuur_key NOT IN (rec.fin_factuur_key)
|
||
AND fin_factuur_nr = rec.factuurnr
|
||
AND fin_factuur_verwijder IS NULL ;
|
||
|
||
IF v_count_gefactureerd_nr > 0
|
||
THEN
|
||
|
||
v_aanduiding_controle := 'CONTROLE - Hetzelfde factuur-nummer is al eerder geregistreerd op deze Opdracht' ;
|
||
v_controle := 1 ;
|
||
|
||
fac.trackaction ('FINUPD', rec.fin_factuur_key, 4, NULL, v_aanduiding_controle);
|
||
|
||
END IF;
|
||
|
||
-- Voor Contracten met 0-waarde zetten we Controle
|
||
IF v_bedrag_totaal = 0
|
||
THEN
|
||
|
||
v_aanduiding_controle := 'CONTROLE - Bedrag van gekoppelde verplichting is 0,- euro' ;
|
||
v_controle := 1 ;
|
||
|
||
fac.trackaction ('FINUPD', rec.fin_factuur_key, 4, NULL, v_aanduiding_controle);
|
||
|
||
END IF;
|
||
|
||
-- Specifiek voor SABIC-GENK - Altijd op controle omdat ze nog een PDF moeten opslaan
|
||
IF aaxx_get_user = 'SABIC'
|
||
THEN
|
||
|
||
BEGIN
|
||
|
||
SELECT d.alg_district_omschrijving
|
||
INTO v_sabic_genk
|
||
FROM cnt_contract c,
|
||
(SELECT cl.cnt_contract_key, MAX(cl.alg_locatie_key) alg_locatie_key
|
||
FROM (SELECT cp.cnt_contract_key, cnt_alg_plaats_key alg_locatie_key
|
||
FROM cnt_contract_plaats cp
|
||
WHERE cnt_alg_plaats_code = 'L'
|
||
UNION
|
||
SELECT cp.cnt_contract_key, g.alg_locatie_key
|
||
FROM cnt_contract_plaats cp, alg_gebouw g
|
||
WHERE cnt_alg_plaats_code = 'G'
|
||
AND cp.cnt_alg_plaats_key = g.alg_gebouw_key
|
||
) cl
|
||
GROUP BY cl.cnt_contract_key
|
||
) cp,
|
||
alg_locatie l, alg_district d
|
||
WHERE c.cnt_contract_key = cp.cnt_contract_key
|
||
AND cp.alg_locatie_key = l.alg_locatie_key
|
||
AND l.alg_district_key = d.alg_district_key
|
||
AND d.alg_district_key = 61 -- SABIC-GENK
|
||
AND c.cnt_contract_key = rec.cnt_contract_key ;
|
||
EXCEPTION
|
||
WHEN NO_DATA_FOUND
|
||
THEN
|
||
v_sabic_genk := NULL;
|
||
END;
|
||
|
||
IF v_sabic_genk IS NOT NULL
|
||
THEN
|
||
v_aanduiding_controle := 'CONTROLE - PDF opslaan voor SABIC GENK' ;
|
||
v_controle := 1 ;
|
||
|
||
fac.trackaction ('FINUPD', rec.fin_factuur_key, 4, NULL, v_aanduiding_controle);
|
||
END IF;
|
||
END IF;
|
||
|
||
-- Contract moet altijd op 1 of meerdere GEBOUWEN gescoped zijn voor heyday. Indien dit niet geval is, dan op controle zetten.
|
||
SELECT (SELECT COUNT (*) aantal_gebouw
|
||
FROM cnt_contract_plaats cp
|
||
WHERE cp.cnt_contract_key = c.cnt_contract_key AND cp.cnt_alg_plaats_code = 'G'
|
||
GROUP BY cp.cnt_contract_key) scope_gebouw,
|
||
(SELECT COUNT (*) aantal_gebouw
|
||
FROM cnt_contract_plaats cp
|
||
WHERE cp.cnt_contract_key = c.cnt_contract_key AND cp.cnt_alg_plaats_code <> 'G'
|
||
GROUP BY cp.cnt_contract_key) scope_afwijkend
|
||
INTO v_cnt_scope_gebouw, v_cnt_scope_afwijkend
|
||
FROM cnt_contract c
|
||
WHERE c.cnt_contract_key = rec.cnt_contract_key;
|
||
|
||
IF v_cnt_scope_gebouw IS NULL OR v_cnt_scope_afwijkend IS NOT NULL
|
||
THEN
|
||
|
||
v_aanduiding_controle := 'CONTROLE - Factuur op contract met onjuiste scoping' ;
|
||
v_controle := 1 ;
|
||
|
||
fac.trackaction ('FINUPD', rec.fin_factuur_key, 4, NULL, v_aanduiding_controle);
|
||
|
||
END IF;
|
||
|
||
|
||
END IF;
|
||
|
||
-- Checken of op de verplichting gekoppelde uitvoerende/leverancier/contractant ook het leveranciersnr is gevuld
|
||
SELECT MAX(prs_leverancier_nr)
|
||
INTO v_prs_leverancier_nr
|
||
FROM prs_bedrijf
|
||
WHERE prs_bedrijf_key = v_prs_bedrijf_key;
|
||
|
||
IF v_prs_leverancier_nr IS NULL
|
||
THEN
|
||
|
||
v_aanduiding_controle := 'CONTROLE - Leveranciersnummer ontbreekt op leverancierskaart' ;
|
||
v_controle := 1 ;
|
||
|
||
fac.trackaction ('FINUPD', rec.fin_factuur_key, 4, NULL, v_aanduiding_controle);
|
||
|
||
END IF;
|
||
|
||
-- Bepalen of kenmerk LaatsteFactuur op JA(1) of op NEE(2) moet. Afgesproken methodiek:
|
||
-- Voor alle opdrachtsoorten Workorder/Opdrachten en Bestelopdrachten ALTIJD op laatste factuur JA (m.u.v. RABO), ook bij opdrachtwaarde 0,-
|
||
-- Voor alle andere andere opdrachtsoorten (en contract-facturen) en voor account RABO, volgende mechanisme:
|
||
--- Als procentuele afwijking tussen opdrachtwaarde en totaal_gefactureerd kleiner/gelijk aan 1% dan mag die op JA
|
||
--- Als opdrachtwaarde van het PROJECT is 0 dan laatste factuur op NEE
|
||
--- Als het een verzamelfactuur-indicatie heeft, dan ook op NEE
|
||
---- Voor RABO geldt nog dat Workorders met opdrachtwaarde 0 ook op JA moeten komen
|
||
|
||
IF (UPPER(v_ordersoort) IN ('WORKORDER', 'OPDRACHT') OR rec.bes_bestelopdr_key IS NOT NULL )
|
||
AND aaxx_get_user NOT IN ('RABO')
|
||
THEN
|
||
|
||
-- Zet kenmerk laatste factuur op Ja
|
||
INSERT INTO fin_kenmerkfactuur (fin_factuur_key, fin_kenmerk_key, fin_kenmerkfactuur_waarde)
|
||
VALUES (rec.fin_factuur_key, 2, v_fac_usrdata_key_ja);
|
||
|
||
ELSE
|
||
|
||
-- Geen verzamelfactuur - check 1% regel
|
||
IF rec.kenmerk3 IS NULL
|
||
THEN
|
||
|
||
IF v_bedrag_totaal <> 0
|
||
THEN
|
||
|
||
IF ((v_bedrag_totaal - (rec.fin_factuur_totaal + v_bedrag_gefactureerd))/ v_bedrag_totaal) * 100 <= 1
|
||
THEN
|
||
-- Zet kenmerk laatste factuur op Ja
|
||
INSERT INTO fin_kenmerkfactuur (fin_factuur_key, fin_kenmerk_key, fin_kenmerkfactuur_waarde)
|
||
VALUES (rec.fin_factuur_key, 2, v_fac_usrdata_key_ja);
|
||
|
||
ELSE
|
||
-- Zet kenmerk laatste factuur op Nee
|
||
INSERT INTO fin_kenmerkfactuur (fin_factuur_key, fin_kenmerk_key, fin_kenmerkfactuur_waarde)
|
||
VALUES (rec.fin_factuur_key, 2, v_fac_usrdata_key_nee);
|
||
|
||
END IF;
|
||
END IF;
|
||
|
||
IF v_bedrag_totaal = 0 AND INSTR(UPPER(v_ordersoort),'PROJECT')>0
|
||
THEN
|
||
|
||
INSERT INTO fin_kenmerkfactuur (fin_factuur_key, fin_kenmerk_key, fin_kenmerkfactuur_waarde)
|
||
VALUES (rec.fin_factuur_key, 2, v_fac_usrdata_key_nee);
|
||
END IF;
|
||
|
||
IF v_bedrag_totaal = 0 AND UPPER(v_ordersoort) IN ('WORKORDER', 'OPDRACHT') AND aaxx_get_user IN ('RABO')
|
||
THEN
|
||
|
||
INSERT INTO fin_kenmerkfactuur (fin_factuur_key, fin_kenmerk_key, fin_kenmerkfactuur_waarde)
|
||
VALUES (rec.fin_factuur_key, 2, v_fac_usrdata_key_ja);
|
||
END IF;
|
||
|
||
|
||
END IF;
|
||
|
||
-- Wel verzamelfactuur -altijd op ja
|
||
IF rec.kenmerk3 IS NOT NULL
|
||
THEN
|
||
|
||
INSERT INTO fin_kenmerkfactuur (fin_factuur_key, fin_kenmerk_key, fin_kenmerkfactuur_waarde)
|
||
VALUES (rec.fin_factuur_key, 2, v_fac_usrdata_key_nee);
|
||
END IF;
|
||
|
||
END IF;
|
||
|
||
-- CREDITS - Deze moeten altijd op controle JA
|
||
-- Voor Contracten is dat hieronder bij Verdeelperiode-bepaling al ingeregeld. Voor Opdrachten/Bestellingen doen we dat hier
|
||
IF rec.fin_factuur_totaal < 0 AND (rec.bes_bestelopdr_key IS NOT NULL OR rec.mld_opdr_key IS NOT NULL)
|
||
THEN
|
||
|
||
v_aanduiding_controle := 'CONTROLE - Credit geboekt op Opdracht/Bestelling' ;
|
||
v_controle := 1 ;
|
||
|
||
fac.trackaction ('FINUPD', rec.fin_factuur_key, 4, NULL, v_aanduiding_controle);
|
||
|
||
END IF;
|
||
|
||
-- Makering zetten voor bepaalde accounts
|
||
--- Key 2 = Interface - Wel in inkoopinterface maar geen XML-output en wel op status verwerkt
|
||
IF v_prs_kostenplaats_key IS NOT NULL
|
||
THEN
|
||
|
||
SELECT MAX(kp.prs_kostenplaatsgrp_key)
|
||
INTO v_prs_kostenplaatsgrp_key
|
||
FROM prs_kostenplaats kp
|
||
WHERE kp.prs_kostenplaats_key = v_prs_kostenplaats_key ;
|
||
|
||
IF aaxx_get_user IN ('INLO') AND v_prs_kostenplaatsgrp_key IN (321) -- Vivada
|
||
THEN
|
||
|
||
-- markering zetten op factuur
|
||
UPDATE fin_factuur
|
||
SET fin_factuur_flag = 2
|
||
WHERE fin_factuur_key = rec.fin_factuur_key ;
|
||
|
||
-- en altijd controle zetten (omdat facturen door FM-er nog apart doorgezet moeten worden naar externe partij) - ticket AAXX#80045
|
||
v_aanduiding_controle := 'CONTROLE - PDF factuur doorzetten naar klant' ;
|
||
v_controle := 1 ;
|
||
|
||
fac.trackaction ('FINUPD', rec.fin_factuur_key, 4, NULL, v_aanduiding_controle);
|
||
|
||
|
||
END IF;
|
||
|
||
END IF;
|
||
|
||
|
||
-- Verdeelperiode voor de contracten bepalen - Daarvoor eerst nog diverse parameters te vullen
|
||
--- METHODE 1 - OUD : Op basis van het deel dat al op contract gefactureerd is, wordt de verdeelperiode op de factuur bepaald.
|
||
--- METHODE 2 - NIEUW : Op basis contractsoort CF en in voorgaande periode mits daarin minder dan 90% gefactureerd (herziening mei-2022 in opdracht van Siert Jan Bolt)
|
||
IF rec.cnt_contract_key IS NOT NULL
|
||
THEN
|
||
|
||
SELECT SUBSTR(d.ins_discipline_omschrijving,1,2) cnt_soort, ROUND((c.cnt_contract_looptijd_tot - c.cnt_contract_looptijd_van)/30) cnt_looptijd_mnd,
|
||
fac.safe_to_number((TO_CHAR (c.cnt_contract_looptijd_van, 'yyyy'))) cnt_jaar_start,
|
||
fac.safe_to_number((TO_CHAR (c.cnt_contract_looptijd_tot, 'yyyy'))) cnt_jaar_eind,
|
||
fac.safe_to_number((TO_CHAR (c.cnt_contract_looptijd_van, 'mm'))) cnt_maand_start,
|
||
fac.safe_to_number((TO_CHAR (c.cnt_contract_looptijd_tot, 'mm'))) cnt_maand_eind,
|
||
t.cnt_termijn_type, t.cnt_termijn_aantal,
|
||
TO_NUMBER (TO_CHAR (SYSDATE, 'mm')) factuur_datum_boekmaand,
|
||
TO_NUMBER (TO_CHAR (SYSDATE, 'yyyy')) factuur_datum_boekmaand_jr
|
||
INTO v_cnt_soort, v_cnt_looptijd_mnd, v_cnt_jaar_start, v_cnt_jaar_eind, v_cnt_maand_start, v_cnt_maand_eind, v_cnt_termijn_type, v_cnt_termijn_aantal, v_factuur_datum_boekmaand, v_factuur_datum_boekmaand_jr
|
||
FROM cnt_contract c, cnt_termijn t, cnt_discipline d
|
||
WHERE c.cnt_contract_key = rec.cnt_contract_key
|
||
AND c.cnt_contract_termijntermijn = t.cnt_termijn_key (+)
|
||
AND c.ins_discipline_key = d.ins_discipline_key;
|
||
|
||
-- Bepalen of het een gebroken boekjaar is...
|
||
IF v_cnt_jaar_start <> v_cnt_jaar_eind
|
||
THEN
|
||
v_gebroken_boekjaar := 1 ;
|
||
END IF;
|
||
|
||
-- METHODE 1 - niet meer actief maar onderstaande bepaling wordt nog wel tekstmarig in tekst-kenmerkveld van factuur weggeschreven want is wel een 'goede' indicatie voor degene die factuur oppakt
|
||
IF v_bedrag_totaal >0 AND v_cnt_looptijd_mnd > 0
|
||
THEN
|
||
v_cnt_deel_betaald_1 := (v_bedrag_gefactureerd / v_bedrag_totaal) * v_cnt_looptijd_mnd ;
|
||
v_cnt_deel_betaald_2 := ((v_bedrag_gefactureerd + rec.fin_factuur_totaal) / v_bedrag_totaal) * v_cnt_looptijd_mnd ;
|
||
|
||
v_cnt_deel_betaald_tekst := TO_CHAR(ROUND((v_cnt_deel_betaald_2/v_cnt_looptijd_mnd)*100,2)) || '%' ;
|
||
|
||
v_cnt_maandbedrag := ROUND(v_bedrag_totaal / v_cnt_looptijd_mnd,2) ;
|
||
|
||
END IF;
|
||
|
||
-- METHODE 2
|
||
-- Nieuwe setting in 2022.1 (fin_defaultboekmaand_cnt) waarmee je met instelling 2 kunt afdwingen dat invoice-datum wordt gehanteerd voor bepaling boek-periode
|
||
-- Deze setting dient default op 2 te staan voor HEYDAY en daarmee worden in onderstaande uitwerking alle CF-contractn indien nodig aangepast en komen de CV's automatisch goed te staan.
|
||
-- 1. Facturen die na contractperiode worden geboekt moeten altijd op de laatste periode uit contract
|
||
-- 2. Eerste factuur die in de contractperiode geboekt wordt, moet op eerste periode uit contract komen,
|
||
----- evenals de facturen die ingeboekt worden op datum die binnen eerste periode contract vallen
|
||
-- 3. Facturen op CF-contracten die in de contractperiode geboekt worden, moeten op voorgaande verdeelperiode komen, mits daar nog niet meer dan 90% qua facturatie op voldaan is.
|
||
----- Indien al meer dan 90% dan boeken op de periode van inboeken factuur + controle
|
||
-- 4. Credit-facturen moeten altijd op de laatste geboekt verdeelperiode komen, inclusief controle
|
||
-- 5. Overige varianten waarvan boekmaand nog her-bepaald moet worden?
|
||
-- 6. Alle overige contract-facturen komen door de facilitor-setting fin_defaultboekmaand_cnt (=2 voor heyday) dus altijd automatisch op verdeelperiode die overeenkomt met de factuurdatum (dit is voor CV's de HEYDAY-regel)
|
||
|
||
|
||
-- Gaan eerst in tekststring de relevante boekmaand-data bepalen. Dit zijn:
|
||
---- 1. Begin contract = v_cnt_start = " "2022-01"
|
||
---- 2. Einde contract = v_cnt_eind = "2022-09"
|
||
---- 3. Laatste factuur geboekt in boekmaand = v_fin_factuur_boekmaand_laatst = "2022-06" of "geen"
|
||
---- 4. NU geboekt = sysdate factuur ingelezen, vertaald naar boekmaand = v_fin_factuur_boekmaand_nu = "2022-10"
|
||
---- 5.1. Voorgaande boekmaand = v_fin_factuur_boekmaand_prev
|
||
---- 5.2. Voorgaande boekmaand bedrag al gefactureerd = v_gefactureerd_vorige_maand
|
||
|
||
-- 1. v_cnt_start
|
||
v_cnt_maand_start_tekst := TO_CHAR(v_cnt_maand_start) ;
|
||
IF LENGTH (v_cnt_maand_start_tekst) = 1 THEN v_cnt_maand_start_tekst := '0' || v_cnt_maand_start_tekst ; END IF;
|
||
v_cnt_start := TO_CHAR(v_cnt_jaar_start) || '-' || v_cnt_maand_start_tekst ;
|
||
|
||
-- 2. v_cnt_eind
|
||
v_cnt_maand_eind_tekst := TO_CHAR(v_cnt_maand_eind) ;
|
||
IF LENGTH (v_cnt_maand_eind_tekst) = 1 THEN v_cnt_maand_eind_tekst := '0' || v_cnt_maand_eind_tekst ; END IF;
|
||
v_cnt_eind := TO_CHAR(v_cnt_jaar_eind) || '-' || v_cnt_maand_eind_tekst ;
|
||
|
||
|
||
-- 3. v_fin_factuur_boekmaand_laatst
|
||
SELECT MAX(f.fin_factuur_boekmaand)
|
||
INTO v_fin_factuur_boekmaand_laatst
|
||
FROM fin_factuur f
|
||
WHERE cnt_contract_key = rec.cnt_contract_key AND fin_factuur_boekmaand IS NOT NULL AND fin_factuur_key NOT IN (rec.fin_factuur_key) AND fin_factuur_verwijder IS NULL ;
|
||
|
||
IF v_fin_factuur_boekmaand_laatst IS NULL THEN v_fin_factuur_boekmaand_laatst := 'geen'; END IF ;
|
||
|
||
-- 4. v_fin_factuur_boekmaand_nu
|
||
v_factuur_datum_boekmaand_nu := TO_CHAR(v_factuur_datum_boekmaand);
|
||
IF LENGTH (v_factuur_datum_boekmaand_nu) = 1 THEN v_factuur_datum_boekmaand_nu := '0' || v_factuur_datum_boekmaand_nu ; END IF;
|
||
v_fin_factuur_boekmaand_nu := TO_CHAR(v_factuur_datum_boekmaand_jr) || '-' || v_factuur_datum_boekmaand_nu ;
|
||
|
||
-- 5.1. v_fin_factuur_boekmaand_prev
|
||
--- Geen previous-maand te bepalen als looptijd cnt <= 1 maand en/of geboekt in maand 1 van het contract
|
||
IF v_cnt_looptijd_mnd <= 1 OR v_fin_factuur_boekmaand_nu = v_cnt_start
|
||
THEN
|
||
v_fin_factuur_boekmaand_prev := 'geen' ;
|
||
|
||
--- Wel previous-maand te bepalen
|
||
ELSE
|
||
|
||
--- als datum ingeboekt in contractperiode
|
||
IF v_fin_factuur_boekmaand_nu > v_cnt_start AND v_fin_factuur_boekmaand_nu <= v_cnt_eind
|
||
THEN
|
||
v_factuur_datum_boekmaand_prev := TO_CHAR(v_factuur_datum_boekmaand -1);
|
||
|
||
IF v_factuur_datum_boekmaand_prev = '0'
|
||
THEN
|
||
v_fin_factuur_boekmaand_prev := TO_CHAR(v_factuur_datum_boekmaand_jr-1) || '-' || '12';
|
||
|
||
ELSE
|
||
|
||
IF LENGTH (v_factuur_datum_boekmaand_prev) = 1 THEN v_factuur_datum_boekmaand_prev := '0' || v_factuur_datum_boekmaand_prev ; END IF;
|
||
v_fin_factuur_boekmaand_prev := TO_CHAR(v_factuur_datum_boekmaand_jr) || '-' || v_factuur_datum_boekmaand_prev;
|
||
|
||
END IF;
|
||
|
||
END IF;
|
||
|
||
--- als datum ingeboekt na contractperiode dan is v_fin_factuur_boekmaand_prev dus v_cnt_eind-1
|
||
IF v_fin_factuur_boekmaand_nu > v_cnt_eind
|
||
THEN
|
||
v_factuur_datum_boekmaand_prev := TO_CHAR(v_cnt_maand_eind -1);
|
||
|
||
IF v_factuur_datum_boekmaand_prev = '0'
|
||
THEN
|
||
v_fin_factuur_boekmaand_prev := TO_CHAR(v_cnt_jaar_eind-1) || '-' || '12';
|
||
|
||
ELSE
|
||
|
||
IF LENGTH (v_factuur_datum_boekmaand_prev) = 1 THEN v_factuur_datum_boekmaand_prev := '0' || v_factuur_datum_boekmaand_prev ; END IF;
|
||
v_fin_factuur_boekmaand_prev := TO_CHAR(v_cnt_jaar_eind) || '-' || v_factuur_datum_boekmaand_prev;
|
||
|
||
END IF;
|
||
|
||
END IF;
|
||
|
||
END IF;
|
||
|
||
-- 5.2. v_gefactureerd_vorige_maand
|
||
IF v_fin_factuur_boekmaand_prev = 'geen'
|
||
THEN
|
||
v_gefactureerd_vorige_maand := 0 ;
|
||
|
||
ELSE
|
||
|
||
SELECT COALESCE(sum(f.fin_factuur_totaal),0)
|
||
INTO v_gefactureerd_vorige_maand
|
||
FROM fin_factuur f
|
||
WHERE cnt_contract_key = rec.cnt_contract_key
|
||
AND fin_factuur_boekmaand IS NOT NULL
|
||
AND fin_factuur_key NOT IN (rec.fin_factuur_key)
|
||
AND fin_factuur_verwijder IS NULL
|
||
AND fin_factuur_boekmaand = v_fin_factuur_boekmaand_prev ;
|
||
|
||
END IF;
|
||
|
||
-- Nu gaan we de juiste boekmaand conform METHODE 2 bepalen
|
||
|
||
-- default
|
||
v_fin_factuur_boekmaand_2 := 'nvt' ;
|
||
|
||
-- 1. Voor zowel CF en CV: boekmaand/jr na contractperiode = boekmaand altijd laatste contractperiode aanhouden
|
||
IF v_fin_factuur_boekmaand_nu > v_cnt_eind
|
||
THEN
|
||
v_fin_factuur_boekmaand_2 := v_cnt_eind ;
|
||
|
||
-- wegschrijven in fin_factuur_boekmaand
|
||
UPDATE fin_factuur
|
||
SET fin_factuur_boekmaand = v_fin_factuur_boekmaand_2
|
||
WHERE fin_factuur_key = rec.fin_factuur_key ;
|
||
|
||
END IF;
|
||
|
||
-- 2. Eerste factuur (inleesdatum binnen contract) of factuur ingeboekt in eerste periode contract dan altijd op de eerste periode uit contract laten komen
|
||
IF (v_fin_factuur_boekmaand_nu <= v_cnt_eind AND v_fin_factuur_boekmaand_laatst = 'geen')
|
||
OR
|
||
(v_fin_factuur_boekmaand_nu = v_cnt_start)
|
||
THEN
|
||
v_fin_factuur_boekmaand_2 := v_cnt_start ;
|
||
|
||
-- wegschrijven in fin_factuur_boekmaand
|
||
UPDATE fin_factuur
|
||
SET fin_factuur_boekmaand = v_fin_factuur_boekmaand_2
|
||
WHERE fin_factuur_key = rec.fin_factuur_key ;
|
||
|
||
END IF;
|
||
|
||
-- 3. Voor CF die qua inlees-datum binnen contract valt, moet op voorgaande boekmaand gezet worden, mits daarop minder dan 90% al op is gefactureerd. Anders op v_fin_factuur_boekmaand_nu
|
||
IF v_cnt_soort = 'CF' AND v_fin_factuur_boekmaand_nu <= v_cnt_eind AND v_fin_factuur_boekmaand_prev <> 'geen' AND v_bedrag_totaal >0 AND v_cnt_looptijd_mnd > 0 AND rec.fin_factuur_totaal > 0
|
||
THEN
|
||
|
||
v_cnt_maandbedrag := ROUND(v_bedrag_totaal / v_cnt_looptijd_mnd) ;
|
||
|
||
-- Dus als inleesactie op 2022-4 EN totaal gefactureerd voor 2022-3 is al >90% , dan de factuur niet op 2022-3 maar op 2022-4 zetten
|
||
IF v_cnt_maandbedrag <>0
|
||
THEN
|
||
v_cnt_deel_betaald_pvm := (ROUND(v_gefactureerd_vorige_maand/v_cnt_maandbedrag)*100) ;
|
||
|
||
IF v_cnt_deel_betaald_pvm > 90
|
||
THEN
|
||
v_fin_factuur_boekmaand_2 := v_fin_factuur_boekmaand_nu;
|
||
|
||
-- incl controle (per omgeving indien gewenst te zetten)
|
||
v_aanduiding_controle := 'CONTROLE - Contract CF en 90% al gefactureerd in voorgaande periode' ;
|
||
|
||
IF aaxx_get_user IN ('XXXX', 'YYYY')
|
||
THEN
|
||
v_controle := 1 ;
|
||
|
||
fac.trackaction ('FINUPD', rec.fin_factuur_key, 4, NULL, v_aanduiding_controle);
|
||
END IF;
|
||
|
||
ELSE
|
||
-- anders kan de factuur 'gewoon' op de vorige boekmaand
|
||
v_fin_factuur_boekmaand_2 := v_fin_factuur_boekmaand_prev;
|
||
|
||
END IF;
|
||
END IF;
|
||
|
||
-- wegschrijven van de hierboven bepaalde boekmaand
|
||
UPDATE fin_factuur
|
||
SET fin_factuur_boekmaand = v_fin_factuur_boekmaand_2
|
||
WHERE fin_factuur_key = rec.fin_factuur_key ;
|
||
|
||
END IF;
|
||
|
||
-- 4. Voor CREDITS altijd op controle JA + kijken of het op de laatste gebruikte boekmaand geboekt kan worden
|
||
IF rec.fin_factuur_totaal < 0
|
||
THEN
|
||
|
||
v_aanduiding_controle := 'CONTROLE - Credit geboekt op Contract in voorgaande periode' ;
|
||
v_controle := 1 ;
|
||
|
||
fac.trackaction ('FINUPD', rec.fin_factuur_key, 4, NULL, v_aanduiding_controle);
|
||
|
||
-- indien mogelijk de boekmaand op de laatste gehanteerde boekmaand zetten
|
||
IF v_fin_factuur_boekmaand_laatst <> 'geen'
|
||
THEN
|
||
v_fin_factuur_boekmaand_2 := v_fin_factuur_boekmaand_laatst;
|
||
|
||
UPDATE fin_factuur
|
||
SET fin_factuur_boekmaand = v_fin_factuur_boekmaand_2
|
||
WHERE fin_factuur_key = rec.fin_factuur_key ;
|
||
|
||
END IF;
|
||
|
||
END IF;
|
||
|
||
-- 5. Nog andere varianten waar boekmaand van bepaald moet worden?
|
||
|
||
-- 6. Alle overige contract-facturen ....
|
||
--- Deze worden bij import al AUTOMATISCH gevuld met boekmaand = factuurdatum (ivm setting fin_defaultboekmaand_cnt = 2)
|
||
|
||
|
||
-- wegschrijven van de uitleg tav de bepaling van de boekmaand in een kenmerkveld
|
||
IF v_fin_factuur_boekmaand_2 = 'nvt' -- dwz verdeelperiode bepaald door stap 6 de factuurdatum
|
||
THEN
|
||
|
||
v_fin_factuur_boekmaand_tekst := 'Type: ' || v_cnt_soort || '. Contractduur: ' || TO_CHAR(v_cnt_looptijd_mnd) || ' mnd. Contractbedrag: ' || TO_CHAR(v_bedrag_totaal) || ' Start/Einddatum: ' || v_cnt_start || ' - ' || v_cnt_eind || chr(10) || chr(13)
|
||
|| 'Deel nu betaald: ' || v_cnt_deel_betaald_tekst || ' (correspondeert met verdeelperiode ' || TO_CHAR(ROUND(v_cnt_deel_betaald_2,2)) || ')' || chr(10) || chr(13)
|
||
|| 'BEPALING HEYDAY: ' || 'Maandbedrag: ' || TO_CHAR(v_cnt_maandbedrag) || ' Gefactureerd vorige maand ' || TO_CHAR(v_gefactureerd_vorige_maand) || ' Verdeelperiode bepaald op basis Factuurdatum: ' || rec.factuurdatum
|
||
-- || chr(10) || chr(13) || 'TEST: 1.' || v_cnt_start || ' - 2.' || v_cnt_eind || ' - 3.' || v_fin_factuur_boekmaand_laatst || ' - 4.' || v_fin_factuur_boekmaand_nu || ' - 5.1.' || v_fin_factuur_boekmaand_prev || ' - 5.2.' || v_gefactureerd_vorige_maand
|
||
;
|
||
ELSE
|
||
v_fin_factuur_boekmaand_tekst := 'Type: ' || v_cnt_soort || '. Contractduur: ' || TO_CHAR(v_cnt_looptijd_mnd) || ' mnd. Contractbedrag: ' || TO_CHAR(v_bedrag_totaal) || ' Start/Einddatum: ' || v_cnt_start || ' - ' || v_cnt_eind || chr(10) || chr(13)
|
||
|| 'Deel nu betaald: ' || v_cnt_deel_betaald_tekst || ' (correspondeert met verdeelperiode ' || TO_CHAR(ROUND(v_cnt_deel_betaald_2,2)) || ')' || chr(10) || chr(13)
|
||
|| 'BEPALING HEYDAY: ' || 'Maandbedrag: ' || TO_CHAR(v_cnt_maandbedrag) || ' Gefactureerd vorige maand ' || TO_CHAR(v_gefactureerd_vorige_maand) || ' (' || TO_CHAR(v_cnt_deel_betaald_pvm) || '%)' || ' Verdeelperiode bepaald:' || v_fin_factuur_boekmaand_2
|
||
-- || chr(10) || chr(13) || 'TEST: 1.' || v_cnt_start || ' - 2.' || v_cnt_eind || ' - 3.' || v_fin_factuur_boekmaand_laatst || ' - 4.' || v_fin_factuur_boekmaand_nu || ' - 5.1.' || v_fin_factuur_boekmaand_prev || ' - 5.2.' || v_gefactureerd_vorige_maand
|
||
;
|
||
END IF;
|
||
|
||
|
||
INSERT INTO fin_kenmerkfactuur (fin_factuur_key, fin_kenmerk_key, fin_kenmerkfactuur_waarde)
|
||
VALUES (rec.fin_factuur_key, c_kenmerk_key_boekmaand, SUBSTR(v_fin_factuur_boekmaand_tekst,1,1000));
|
||
|
||
|
||
-- Tot slot voor Contracten nog de volgende controles zetten
|
||
---- Op facturen op CO's van vorig boekjaar de CONTROLE zetten voor die facturen ingeboekt na FEBR (= FINA08)
|
||
---- Alle inkoopfacturen op contracten-met-gebroken-boekjaar op ter controle verdeelperiode (= FINA17)
|
||
IF (c_huidig_jaar - v_cnt_jaar_eind > 1)
|
||
OR
|
||
(c_huidig_jaar - v_cnt_jaar_eind = 1 AND fac.safe_to_number((TO_CHAR (SYSDATE, 'mm'))) NOT IN (1,2))
|
||
THEN
|
||
|
||
v_aanduiding_controle := 'CONTROLE - Betreft factuur op Contract uit vorig boekjaar' ;
|
||
v_controle := 1 ;
|
||
|
||
fac.trackaction ('FINUPD', rec.fin_factuur_key, 4, NULL, v_aanduiding_controle);
|
||
|
||
END IF;
|
||
|
||
IF v_cnt_jaar_start < v_cnt_jaar_eind
|
||
THEN
|
||
|
||
-- Voor INLO: Voor IKEA (281 en 461) de controle aanzetten en voor alle andere (is igg VEH (21) kan die uit
|
||
-- Voor alle andere klanten aan..
|
||
IF (
|
||
aaxx_get_user IN ('INLO') AND v_prs_kostenplaatsgrp_key IN (281, 461)
|
||
)
|
||
OR
|
||
(
|
||
aaxx_get_user NOT IN ('INLO')
|
||
)
|
||
THEN
|
||
|
||
v_aanduiding_controle := 'CONTROLE - Contract met gebroken boekjaar (check verdeelperiode)' ;
|
||
v_controle := 1 ;
|
||
|
||
fac.trackaction ('FINUPD', rec.fin_factuur_key, 4, NULL, v_aanduiding_controle);
|
||
|
||
END IF;
|
||
|
||
END IF;
|
||
|
||
-- Einde methode 2
|
||
|
||
END IF;
|
||
|
||
-- Veld debiteurnummer nog vullen indien gevuld bij relatie
|
||
IF v_klantnummer_key IS NOT NULL
|
||
THEN
|
||
|
||
-- Waarde ophalen met v_prs_bedrijf_key en vullen in v_klantnummer
|
||
SELECT MAX(prs_kenmerklink_waarde)
|
||
INTO v_klantnummer
|
||
FROM prs_kenmerklink
|
||
WHERE prs_kenmerk_key = v_klantnummer_key AND prs_link_key = v_prs_bedrijf_key AND prs_kenmerklink_verwijder IS NULL;
|
||
|
||
-- Indien waarde dan vullen in inkoopfactuur veld debiteurnummer
|
||
IF v_klantnummer IS NOT NULL
|
||
THEN
|
||
|
||
UPDATE fin_factuur
|
||
SET fin_factuur_debiteur_nr = v_klantnummer
|
||
WHERE fin_factuur_key = rec.fin_factuur_key ;
|
||
|
||
END IF;
|
||
END IF;
|
||
|
||
-- Voor Contracten geldt dat ze nog ter controle moeten als er automatisch een hoogste contractversie-nummer gekoppeld wordt
|
||
IF rec.kenmerk2 = 'ter controle'
|
||
THEN
|
||
|
||
v_aanduiding_controle := 'CONTROLE - Contract is op factuur zonder versie-nummer weergegeven; hoogste versienr is gekoppeld' ;
|
||
v_controle := 1 ;
|
||
|
||
fac.trackaction ('FINUPD', rec.fin_factuur_key, 4, NULL, v_aanduiding_controle);
|
||
|
||
END IF;
|
||
|
||
-- Als het de verzamelfactuurinidcatie "(*)" heeft dan het daarvoor bestemd kenmerk vullen + controle zetten
|
||
IF rec.kenmerk3 = 'verzamelfactuur'
|
||
THEN
|
||
|
||
INSERT INTO fin_kenmerkfactuur (fin_factuur_key, fin_kenmerk_key, fin_kenmerkfactuur_waarde)
|
||
VALUES (rec.fin_factuur_key, c_kenmerk_key_verzamel, 1);
|
||
|
||
v_aanduiding_controle := 'CONTROLE - Dit betreft een verzamelfactuur' ;
|
||
v_controle := 1 ;
|
||
|
||
fac.trackaction ('FINUPD', rec.fin_factuur_key, 4, NULL, v_aanduiding_controle);
|
||
|
||
END IF;
|
||
|
||
-- Tot slot controle-vinkje zetten indien nodig
|
||
-- 9-2-2022 - aanpassing/verzoek HEYDAY om de facturen die op controle moeten komen ook de factuurstatus incomplete.
|
||
--- Reden is om op die manier er voor te zorgen dat de goedkeuringsflow (fiatteur) niet parallel loopt met de Administratieve controle.
|
||
--- In kenmerk6 wordt met status 3 aangegeven dat het een D-categorie-factuur betreft. Deze is per definitie niet 'Correct verwerkt' en sluiten we uit.
|
||
IF v_controle = 1 AND rec.kenmerk6 NOT IN ('3')
|
||
THEN
|
||
|
||
INSERT INTO fin_kenmerkfactuur (fin_factuur_key, fin_kenmerk_key, fin_kenmerkfactuur_waarde)
|
||
VALUES (rec.fin_factuur_key, c_kenmerk_key_controle, 1);
|
||
|
||
UPDATE fin_factuur
|
||
SET fin_factuur_statuses_key = 3,
|
||
fin_factuur_opmerking = 'Correct verwerkt, maar op Administratieve controle - zie logging voor detailinfo'
|
||
WHERE fin_factuur_key = rec.fin_factuur_key ;
|
||
|
||
END IF;
|
||
|
||
END IF;
|
||
|
||
-- Incomplete facturen, zonder orderreferentie, gaan we ook op controle zetten
|
||
--- D-categorie: Voorheen via fallback-emailadres, maar sinds 2022.3 vanuit Mareon wel doorgestuurd naar Facilitor.
|
||
IF (rec.mld_opdr_key IS NULL AND rec.cnt_contract_key IS NULL AND rec.bes_bestelopdr_key IS NULL) AND rec.kenmerk6 NOT IN ('3')
|
||
THEN
|
||
|
||
v_aanduiding_controle := 'CONTROLE - Factuur incompleet i.v.m. ontbrekende orderreferentie (vanuit scanning)' ;
|
||
v_controle := 1 ;
|
||
|
||
fac.trackaction ('FINUPD', rec.fin_factuur_key, 4, NULL, v_aanduiding_controle);
|
||
|
||
|
||
INSERT INTO fin_kenmerkfactuur (fin_factuur_key, fin_kenmerk_key, fin_kenmerkfactuur_waarde)
|
||
VALUES (rec.fin_factuur_key, c_kenmerk_key_controle, 1);
|
||
|
||
INSERT INTO fin_kenmerkfactuur (fin_factuur_key, fin_kenmerk_key, fin_kenmerkfactuur_waarde)
|
||
VALUES (rec.fin_factuur_key, 2, v_fac_usrdata_key_nee);
|
||
|
||
END IF;
|
||
|
||
-- D-categorie -
|
||
-- Kan zowel voor facturen met als zonder order-referentie doorkomen
|
||
IF rec.kenmerk6 = '3'
|
||
THEN
|
||
|
||
v_aanduiding_controle := 'CONTROLE - Betreft D-categorie factuur!' ;
|
||
|
||
fac.trackaction ('FINUPD', rec.fin_factuur_key, 4, NULL, v_aanduiding_controle);
|
||
|
||
-- als controlevinkje nog niet in de voorgaande factuurverwerkingsacties is gezet, dan gaan we dat nu dus nog doen
|
||
IF v_controle = 0
|
||
THEN
|
||
|
||
INSERT INTO fin_kenmerkfactuur (fin_factuur_key, fin_kenmerk_key, fin_kenmerkfactuur_waarde)
|
||
VALUES (v_fin_factuur_key, c_kenmerk_key_controle, 1);
|
||
|
||
END IF;
|
||
|
||
-- nog reden vullen:
|
||
UPDATE fin_factuur
|
||
SET fin_factuur_statuses_key = 3,
|
||
fin_factuur_opmerking = rec.kenmerk7
|
||
WHERE fin_factuur_key = rec.fin_factuur_key ;
|
||
|
||
END IF;
|
||
|
||
-- Mareon_bron tonen in Facilitor bij Factuur
|
||
IF rec.kenmerk9 IS NOT NULL AND c_kenmerk_key_mareon_bron IS NOT NULL
|
||
THEN
|
||
|
||
INSERT INTO fin_kenmerkfactuur (fin_factuur_key, fin_kenmerk_key, fin_kenmerkfactuur_waarde)
|
||
VALUES (rec.fin_factuur_key, c_kenmerk_key_mareon_bron, rec.kenmerk9);
|
||
|
||
END IF;
|
||
|
||
-- Mareon_bedrijf_intern tonen in Facilitor bij Factuur
|
||
IF rec.kenmerk10 IS NOT NULL AND c_kenmerk_key_bedrijf_intern IS NOT NULL
|
||
THEN
|
||
|
||
INSERT INTO fin_kenmerkfactuur (fin_factuur_key, fin_kenmerk_key, fin_kenmerkfactuur_waarde)
|
||
VALUES (rec.fin_factuur_key, c_kenmerk_key_bedrijf_intern, rec.kenmerk10);
|
||
|
||
END IF;
|
||
|
||
-- tot slot nog nette logging
|
||
v_aanduiding := 'Factuur geimporteerd vanuit Mareon' ;
|
||
fac.trackaction ('FINUPD', rec.fin_factuur_key, 4, NULL, v_aanduiding);
|
||
|
||
-- Setting FOUTAFHANDELING op API marx_fin_factuur staat op 200 (ipv default 400)
|
||
-- Als de factuur wel via FAC_UPDATE_FACTUUR is ingelezen, maar het vervolgens in bovenstaande cust_post_processing fout gaat, dan laten we deze wel via exception in facilitor doorlopen met dus status 200 naar MARX
|
||
-- Omdat:
|
||
--- Via MARX wordt de factuur-import voor deze factuur dan niet steeds opnieuw aangeroepen zodat HEYDAY ook niet steeds opnieuw de nieuwe, dubbele facturen in Facilitor moet verwijderen om dubbele betaling te voorkomen..
|
||
--- HEYDAY kan zo dus factuurproces verder opppakken voor deze factuur en MOET Facilitor inlichten zodat in alle rust import-probleem indien nodig structureel opgelost kan worden
|
||
|
||
EXCEPTION
|
||
WHEN OTHERS
|
||
THEN
|
||
oracle_err_num := SQLCODE;
|
||
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
|
||
|
||
v_errormsg :=
|
||
'OTHERS (error ' || oracle_err_num || '/' || oracle_err_mes || ')';
|
||
|
||
SELECT i.fin_factuur_key,
|
||
'Factuur wel in Facilitor verwerkt, maar met foutmelding! - bron ' || i.kenmerk9 || CHR(10)
|
||
|| 'Betreft factuur_key: ' || TO_CHAR(i.fin_factuur_key) || CHR(10)
|
||
|| 'Factuurnr lev.: ' || i.factuurnr
|
||
errorhint
|
||
INTO v_fin_factuur_key, v_errorhint
|
||
FROM (SELECT fin_factuur_key, factuurnr, ordernr, kenmerk1, kenmerk9 FROM fac_imp_factuur
|
||
WHERE fac_import_key = p_import_key
|
||
AND fin_factuurregel_key IS NOT NULL
|
||
AND fin_factuur_key IS NOT NULL
|
||
GROUP BY fin_factuur_key, factuurnr, ordernr, kenmerk1, kenmerk9) i,
|
||
fin_factuur f
|
||
WHERE i.fin_factuur_key = f.fin_factuur_key ;
|
||
|
||
UPDATE fin_factuur
|
||
SET fin_factuur_statuses_key = 3,
|
||
fin_factuur_opmerking = SUBSTR('LET OP! Bij factuurimport is Errormessage gemeld: ' || v_errormsg || CHR (13) || CHR (10) ||
|
||
'Actie 1: Informeren Facilitor!' || CHR (13) || CHR (10) ||
|
||
'Actie 2: Deze factuur gewoon oppakken: Aanvullen, doorzetten, etc', 1, 250)
|
||
WHERE fin_factuur_key = v_fin_factuur_key ;
|
||
|
||
|
||
fac.imp_writelog (p_import_key,
|
||
'E',
|
||
v_errormsg,
|
||
v_errorhint || ' - ' || v_aanduiding);
|
||
COMMIT;
|
||
|
||
END;
|
||
END LOOP;
|
||
|
||
-- TOT SLOT
|
||
-- Er is WEL een factuur_key in Facilitor aangemaakt, maar GEEN/NIET ALLE factuurregels zijn aangemaakt
|
||
--- Oorzaak waarschijnlijk btw-inrichting van HEYDAY
|
||
--- Dit gaan we in volgende loop per regel checken en in de factuur_opmerking vermelden + indien btw-issue dan op controle Ja zetten
|
||
|
||
v_aanduiding := 'Factuurregel(s) niet aangemaakt:' ;
|
||
v_factuurregels_aantal_fout := 0 ;
|
||
|
||
FOR rec IN cfactuurregel
|
||
LOOP
|
||
BEGIN
|
||
|
||
IF rec.fin_factuur_key IS NOT NULL
|
||
THEN
|
||
v_fin_factuur_key := rec.fin_factuur_key ;
|
||
END IF;
|
||
|
||
-- factuurregels die niet zijn aangemaakt via fac_update_factuur gaan we oppakken en een controle op zetten.
|
||
IF rec.fin_factuurregel_key IS NULL
|
||
THEN
|
||
|
||
v_factuurregels_aantal_fout := v_factuurregels_aantal_fout + 1 ;
|
||
|
||
-- check of het aan btw-code ligt
|
||
SELECT count(*)
|
||
INTO v_fin_btwtabelwaarde_found
|
||
FROM fin_btwtabel b, fin_btwtabelwaarde bw
|
||
WHERE b.fin_btwtabel_key = bw.fin_btwtabel_key
|
||
AND b.fin_btwtabel_verwijder IS NULL AND bw.fin_btwtabelwaarde_verwijder IS NULL
|
||
AND b.fin_btwtabel_omschrijving = v_fin_btwtabel
|
||
AND bw.fin_btwtabelwaarde_perc = rec.btw
|
||
AND COALESCE(bw.fin_btwtabelwaarde_verlegd, 0) = DECODE(rec.btw_verlegd, 'ja', 1, 0) ;
|
||
|
||
IF v_fin_btwtabelwaarde_found = 0
|
||
THEN
|
||
|
||
v_controle_btw := 1 ;
|
||
|
||
v_aanduiding := v_aanduiding || CHR(10) || '- Regel ' || TO_CHAR(rec.fac_imp_file_index) || ' NIET aangemaakt. Btw: ' || rec.btw || ' verlegd: ' || rec.btw_verlegd || ' bedrag: ' || rec.kostprijs
|
||
|| CHR(10) || '-- Oorzaak: btw-code niet gevonden in ' || v_fin_btwtabel ;
|
||
|
||
END IF;
|
||
|
||
IF v_fin_btwtabelwaarde_found > 1
|
||
THEN
|
||
|
||
v_controle_btw := 1 ;
|
||
|
||
v_aanduiding := v_aanduiding || CHR(10) || '- Regel ' || TO_CHAR(rec.fac_imp_file_index) || ' NIET aangemaakt. Btw: ' || rec.btw || ' verlegd: ' || rec.btw_verlegd || ' bedrag: ' || rec.kostprijs
|
||
|| CHR(10) || '-- Oorzaak: btw-code niet eenduidig gevonden in ' || v_fin_btwtabel ;
|
||
|
||
|
||
END IF;
|
||
|
||
IF v_fin_btwtabelwaarde_found = 1
|
||
THEN
|
||
|
||
|
||
v_aanduiding := v_aanduiding || CHR(10) || '- Regel ' || TO_CHAR(rec.fac_imp_file_index) || ' NIET aangemaakt. Btw: ' || rec.btw || ' verlegd: ' || rec.btw_verlegd || ' bedrag: ' || rec.kostprijs
|
||
|| CHR(10) || '-- Oorzaak: Onbekend..' ;
|
||
|
||
END IF;
|
||
|
||
END IF;
|
||
|
||
EXCEPTION
|
||
WHEN OTHERS
|
||
THEN
|
||
oracle_err_num := SQLCODE;
|
||
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
|
||
|
||
v_errormsg :=
|
||
'OTHERS (error ' || oracle_err_num || '/' || oracle_err_mes || ')';
|
||
|
||
fac.imp_writelog (p_import_key,
|
||
'E',
|
||
v_errormsg,
|
||
v_errorhint || ' - ' || v_aanduiding);
|
||
COMMIT;
|
||
|
||
END;
|
||
END LOOP;
|
||
|
||
-- Indien van toepassing administrateur hierover informeren en controle zetten..
|
||
IF v_factuurregels_aantal_fout > 0
|
||
THEN
|
||
|
||
INSERT INTO fin_kenmerkfactuur (fin_factuur_key, fin_kenmerk_key, fin_kenmerkfactuur_waarde)
|
||
VALUES (v_fin_factuur_key, c_kenmerk_key_mareon_info, v_aanduiding);
|
||
|
||
v_aanduiding_controle := 'CONTROLE - Factuurregels niet (allemaal) aangemaakt' ;
|
||
|
||
fac.trackaction ('FINUPD', v_fin_factuur_key, 4, NULL, v_aanduiding_controle);
|
||
|
||
-- als controlevinkje nog niet in de voorgaande factuurverwerkingsacties is gezet, dan gaan we dat nu dus nog doen
|
||
IF v_controle = 0
|
||
THEN
|
||
|
||
INSERT INTO fin_kenmerkfactuur (fin_factuur_key, fin_kenmerk_key, fin_kenmerkfactuur_waarde)
|
||
VALUES (v_fin_factuur_key, c_kenmerk_key_controle, 1);
|
||
|
||
END IF;
|
||
|
||
-- status incomplete (als die al niet gezet is...)
|
||
UPDATE fin_factuur
|
||
SET fin_factuur_statuses_key = 3,
|
||
fin_factuur_opmerking = 'LET OP! Factuur niet correct verwerkt. Zijn ontbrekende factuurregels. Zie veld Mareon - Aanvullende informatie voor detailinfo'
|
||
WHERE fin_factuur_key = v_fin_factuur_key ;
|
||
|
||
END IF;
|
||
|
||
EXCEPTION
|
||
WHEN OTHERS
|
||
THEN
|
||
oracle_err_num := SQLCODE;
|
||
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
|
||
|
||
v_errormsg := 'OTHERS LAATSTE (error ' || oracle_err_num || '/' || oracle_err_mes || ')';
|
||
|
||
v_aanduiding := 'Factuur NIET geimporteerd vanuit Mareon - !!!!' ;
|
||
|
||
-- Er is GEEN factuur in facilitor aangemaakt.
|
||
-- Setting FOUTAFHANDELING op API marx_fin_factuur staat op 200 (ipv default 400)
|
||
---- Omdat we dus geen 400-code teruggeven aan Mareon en deze factuur/mail in mareon-factuurverwerkingproces voor heyday verdwijnt, gaan we dit maar in FACILITOR-LOGGING vermelden
|
||
---- HEWYDAY kan dit dan met rapportage in beeld krijgen (zie aaxx_v_rap_factuur_marx_error), zodat zij tijdig actie kunnen ondernemen
|
||
SELECT 'Factuur niet in Facilitor verwerkt! - bron ' || i.kenmerk9 || CHR(10)
|
||
|| 'Bestand-pdf: ' || i.kenmerk1 || CHR(10)
|
||
|| 'Factuurnr lev.: ' || i.factuurnr || CHR(10)
|
||
|| 'Ordernr: ' || i.ordernr
|
||
errorhint
|
||
INTO v_errorhint
|
||
FROM fac_imp_factuur i
|
||
WHERE i.fac_import_key = p_import_key AND i.fac_imp_file_index = 1
|
||
GROUP BY fin_factuur_key, factuurnr, ordernr, kenmerk1, kenmerk9, fac_import_key
|
||
;
|
||
|
||
fac.imp_writelog (p_import_key,
|
||
'E',
|
||
v_errormsg,
|
||
v_errorhint || ' - ' || v_aanduiding);
|
||
|
||
END;
|
||
/
|
||
|
||
-- Error-rapport uir FIN_FACTUUR_MARX
|
||
---- als in de fac_update_factuur de aangeboden factuur uit mareon toch niet aangemaakt kan worden, geven we aan mareon wel 200-ok-code terug door deze daar in de exception af te vangen met error-logging.
|
||
---- met dit rapport krijgen we deze wel in beeld voor heyday waarna zij kunnen herleiden welke mail niet is doorgekomen en juiste actie kunnen ondernemen.
|
||
------ VERVOLGACTIE = Beter/mooier hier uiteindelijk een noti-job op in te richten..
|
||
CREATE OR REPLACE VIEW aaxx_v_rap_factuur_marx_error
|
||
(
|
||
fac_import_app_code,
|
||
imp_log_datum,
|
||
imp_log_error,
|
||
imp_log_hint
|
||
)
|
||
AS
|
||
SELECT a.fac_import_app_code,
|
||
l.imp_log_datum,
|
||
'ERROR - Factuur NIET in FACILITOR verwerkt'
|
||
error,
|
||
l.imp_log_hint
|
||
FROM imp_log l, fac_import i, fac_import_app a
|
||
WHERE l.fac_import_key = i.fac_import_key
|
||
AND i.fac_import_app_key = a.fac_import_app_key
|
||
AND a.fac_import_app_code = 'FIN_FACTUUR_MARX'
|
||
AND INSTR (l.imp_log_hint, 'Factuur niet in Facilitor verwerkt') > 0
|
||
AND l.imp_log_status = 'E' ;
|
||
|
||
-- view om aantal ingevoerde facturen terug te herleiden naar scanning en excel import.
|
||
CREATE OR REPLACE VIEW aaxx_v_rap_invoice_scan
|
||
(
|
||
hide_f_ts,
|
||
fclt_d_datum,
|
||
totaal,
|
||
scanning,
|
||
excel
|
||
)
|
||
AS
|
||
SELECT TO_CHAR (fac_tracking_datum, 'yyyymmdd'),
|
||
TO_CHAR (fac_tracking_datum, 'dd-mm-yyyy'),
|
||
SUM (aantal),
|
||
SUM (scanning),
|
||
SUM (excel)
|
||
FROM (SELECT f.fin_factuur_key,
|
||
fac_tracking_datum,
|
||
fac_tracking_key,
|
||
fac_tracking_oms,
|
||
1 aantal,
|
||
DECODE (t.prs_perslid_key, 8, 1, 0) excel,
|
||
DECODE (t.prs_perslid_key, 9, 1, 0) scanning
|
||
FROM fin_factuur f,
|
||
(SELECT t.*
|
||
FROM fac_tracking t, fac_srtnotificatie sn
|
||
WHERE t.fac_srtnotificatie_key =
|
||
sn.fac_srtnotificatie_key
|
||
AND sn.fac_srtnotificatie_code = 'FINNEW') t
|
||
WHERE f.fin_factuur_verwijder IS NULL
|
||
AND f.fin_factuur_key = t.fac_tracking_refkey(+))
|
||
GROUP BY TO_CHAR (fac_tracking_datum, 'dd-mm-yyyy'),
|
||
TO_CHAR (fac_tracking_datum, 'yyyymmdd');
|
||
|
||
--------------------------------
|
||
-- import contractorders
|
||
---- basisrapport CNT: Export-import jaarorders (aaxx_v_rap_imp_jaarcontract)
|
||
---- functie om quotes te herstellen (aaxx_correct_imp_file)
|
||
---- de onderstaande CUST-importfuntie CONTRACT
|
||
--------------------------------
|
||
|
||
CREATE OR REPLACE PROCEDURE aaxx_correct_imp_file(p_import_key IN NUMBER, p_delimitor IN VARCHAR2)
|
||
AS
|
||
CURSOR c IS
|
||
SELECT *
|
||
FROM fac_imp_file
|
||
WHERE fac_import_key = p_import_key
|
||
ORDER BY fac_imp_file_index;
|
||
|
||
v_index NUMBER;
|
||
v_newline VARCHAR2 (4000);
|
||
v_newline_tmp VARCHAR2 (4000);
|
||
v_result_line VARCHAR2 (4000);
|
||
v_read VARCHAR2 (4000);
|
||
v_field VARCHAR2 (4000);
|
||
v_inquotes NUMBER;
|
||
rec c%ROWTYPE;
|
||
BEGIN
|
||
DELETE fac_imp_csv
|
||
WHERE fac_import_key = p_import_key;
|
||
|
||
v_index := 0;
|
||
|
||
OPEN c;
|
||
|
||
IF (c%ISOPEN)
|
||
THEN
|
||
LOOP
|
||
BEGIN
|
||
--v_errormsg := 'Fout FETCH te importeren rij';
|
||
|
||
FETCH c INTO rec;
|
||
|
||
EXIT WHEN c%NOTFOUND;
|
||
v_read := rec.fac_imp_file_line;
|
||
v_newline := v_read;
|
||
|
||
v_result_line := v_newline;
|
||
|
||
WHILE v_newline IS NOT NULL
|
||
LOOP
|
||
DBMS_OUTPUT.put_line (v_newline);
|
||
v_newline_tmp := v_newline;
|
||
|
||
IF SUBSTR (v_newline, 1, 1) = '"'
|
||
THEN
|
||
DBMS_OUTPUT.put_line ('BEGIN DoubleQuote Found');
|
||
v_inquotes := 1;
|
||
END IF;
|
||
|
||
fac.imp_getfield (v_newline, p_delimitor, v_field);
|
||
IF v_newline IS NOT NULL OR SUBSTR(v_newline_tmp, length(v_newline_tmp), 1) = '"'
|
||
THEN
|
||
v_inquotes := 0; -- Er zijn nog meer velden aanwezig dus dit is geen cr/lf in een veld. Of het was het laatste veld in de regel
|
||
END IF;
|
||
|
||
IF SUBSTR (v_newline_tmp, LENGTH (v_field), 1) = '"'
|
||
THEN
|
||
DBMS_OUTPUT.put_line ('END DoubleQuote Found');
|
||
v_inquotes := 0;
|
||
END IF;
|
||
|
||
IF v_inquotes = 1
|
||
THEN
|
||
FETCH c INTO rec;
|
||
|
||
EXIT WHEN c%NOTFOUND;
|
||
v_read := rec.fac_imp_file_line;
|
||
v_result_line := v_result_line || CHR(10) || v_read;
|
||
v_newline := v_newline || v_read;
|
||
END IF;
|
||
END LOOP;
|
||
|
||
v_index := v_index + 1;
|
||
DBMS_OUTPUT.put_line ('New line: ' || v_result_line);
|
||
|
||
INSERT INTO fac_imp_csv (fac_imp_csv_index,
|
||
fac_import_key,
|
||
fac_imp_csv_datum,
|
||
fac_imp_file_line)
|
||
VALUES (v_index,
|
||
p_import_key,
|
||
SYSDATE,
|
||
v_result_line);
|
||
END;
|
||
END LOOP;
|
||
CLOSE c;
|
||
COMMIT;
|
||
DELETE fac_imp_file WHERE fac_import_key = p_import_key;
|
||
INSERT INTO fac_imp_file (fac_imp_file_index, fac_imp_file_line, fac_import_key)
|
||
SELECT fac_imp_csv_index, fac_imp_file_line, fac_import_key FROM fac_imp_csv WHERE fac_import_key = p_import_key;
|
||
DELETE fac_imp_csv WHERE fac_import_key = p_import_key;
|
||
END IF;
|
||
END;
|
||
/
|
||
|
||
CREATE OR REPLACE PROCEDURE aaxx_import_contract (
|
||
p_import_key IN NUMBER)
|
||
IS
|
||
c_fielddelimitor VARCHAR2 (1) := ';';
|
||
|
||
v_newline VARCHAR2 (4000); -- Input line
|
||
v_read VARCHAR2 (4000);
|
||
v_lastchar VARCHAR2 (1);
|
||
v_firstchar VARCHAR2 (1);
|
||
v_errormsg VARCHAR (1000);
|
||
v_hint VARCHAR (1000);
|
||
oracle_err_num NUMBER;
|
||
oracle_err_mes VARCHAR2 (200);
|
||
v_count NUMBER;
|
||
v_ongeldig NUMBER (1);
|
||
v_mode NUMBER (1);
|
||
v_aanduiding VARCHAR (200);
|
||
v_header_is_valid NUMBER (1);
|
||
|
||
-- De importvelden:
|
||
v_gebouw_code VARCHAR2 (100);
|
||
v_leverancier VARCHAR2 (100);
|
||
v_beschrijving VARCHAR2 (100);
|
||
v_van VARCHAR2 (100);
|
||
v_dienst VARCHAR2 (100);
|
||
v_tot VARCHAR2 (100);
|
||
v_versie VARCHAR2 (100);
|
||
v_omschrijving VARCHAR2 (4000);
|
||
v_bedrag VARCHAR2 (100);
|
||
v_termijnbedrag VARCHAR2 (100);
|
||
v_contractsoort VARCHAR2 (100);
|
||
v_contractnummer VARCHAR2 (100);
|
||
v_volgnummer VARCHAR2 (100);
|
||
v_leveranciernummer VARCHAR2 (100);
|
||
v_contractafdeling VARCHAR2 (100);
|
||
v_gewijzigddoor VARCHAR2 (100);
|
||
v_contractmanager VARCHAR2 (100);
|
||
v_discipline_key NUMBER;
|
||
v_dummy VARCHAR2 (100);
|
||
|
||
|
||
|
||
CURSOR c
|
||
IS
|
||
SELECT *
|
||
FROM fac_imp_file
|
||
WHERE fac_import_key = p_import_key
|
||
ORDER BY fac_imp_file_index;
|
||
|
||
rec c%ROWTYPE;
|
||
BEGIN
|
||
-- Eerst opruiming
|
||
DELETE FROM aaxx_imp_contract;
|
||
|
||
-- En eerst correctie op quotes en cr/lf
|
||
aaxx_correct_imp_file(p_import_key, c_fielddelimitor);
|
||
|
||
COMMIT;
|
||
|
||
v_header_is_valid := 0;
|
||
|
||
OPEN c;
|
||
|
||
IF (c%ISOPEN)
|
||
THEN
|
||
LOOP
|
||
BEGIN
|
||
|
||
v_errormsg := 'Fout FETCH te importeren rij';
|
||
|
||
|
||
FETCH c INTO rec;
|
||
|
||
EXIT WHEN c%NOTFOUND;
|
||
v_read := rec.fac_imp_file_line;
|
||
v_newline := v_read;
|
||
|
||
v_errormsg := 'Fout opvragen te importeren rij:' || substr(v_newline,1,200);
|
||
v_aanduiding := '';
|
||
v_ongeldig := 0;
|
||
|
||
IF (UPPER(v_newline) like
|
||
'GEBOUW;BEDRIJF;LEVNR;BESCHRIJVING;INGANGSDATUM;EINDDATUM;ORDEROMSCHRIJVING;BEDRAG;TERMIJNBEDRAG;DIENST;CONTRACTSOORT;CONTRACTNR;VERSIE;REGELNR;CONTRACTAFDELING;CONTRACTMANAGER;GEWIJZIGDDOOR%')
|
||
THEN
|
||
v_header_is_valid := 1;
|
||
ELSE
|
||
-- Lees alle veldwaarden
|
||
fac.imp_getfield (v_newline, C_FIELDDELIMITOR, v_gebouw_code);
|
||
--
|
||
v_errormsg :=
|
||
'Fout opvragen te importeren rij (leverancier)'
|
||
|| v_gebouw_code;
|
||
fac.imp_getfield (v_newline, C_FIELDDELIMITOR, v_leverancier);
|
||
--
|
||
v_errormsg :=
|
||
'Fout opvragen te importeren rij (leveranciernummer)'
|
||
|| v_gebouw_code;
|
||
fac.imp_getfield (v_newline,
|
||
C_FIELDDELIMITOR,
|
||
v_leveranciernummer);
|
||
--
|
||
v_errormsg :=
|
||
'Fout opvragen te importeren rij (beschrijving)'
|
||
|| v_gebouw_code;
|
||
fac.imp_getfield (v_newline, C_FIELDDELIMITOR, v_beschrijving);
|
||
--
|
||
v_errormsg :=
|
||
'Fout opvragen te importeren rij (van)' || v_gebouw_code;
|
||
fac.imp_getfield (v_newline, C_FIELDDELIMITOR, v_van);
|
||
--
|
||
v_errormsg :=
|
||
'Fout opvragen te importeren rij (tot)' || v_gebouw_code;
|
||
fac.imp_getfield (v_newline, C_FIELDDELIMITOR, v_tot);
|
||
--
|
||
v_errormsg :=
|
||
'Fout opvragen te importeren rij (omschrijving)'
|
||
|| v_gebouw_code;
|
||
fac.imp_getfield (v_newline, C_FIELDDELIMITOR, v_omschrijving);
|
||
--
|
||
v_errormsg :=
|
||
'Fout opvragen te importeren rij (bedrag)' || v_gebouw_code;
|
||
fac.imp_getfield (v_newline, C_FIELDDELIMITOR, v_bedrag);
|
||
--
|
||
v_errormsg :=
|
||
'Fout opvragen te importeren rij (termijnbedrag)' || v_gebouw_code;
|
||
fac.imp_getfield (v_newline, C_FIELDDELIMITOR, v_termijnbedrag);
|
||
|
||
-- tekens uit bedragvelden halen
|
||
v_bedrag := TRIM(replace(v_bedrag, CHR(128),''));
|
||
v_termijnbedrag := TRIM(replace(v_termijnbedrag, CHR(128),''));
|
||
|
||
--
|
||
v_errormsg :=
|
||
'Fout opvragen te importeren rij (dienst)' || v_gebouw_code;
|
||
fac.imp_getfield (v_newline, C_FIELDDELIMITOR, v_dienst);
|
||
--
|
||
v_errormsg :=
|
||
'Fout opvragen te importeren rij (dienst)' || v_gebouw_code;
|
||
fac.imp_getfield (v_newline,
|
||
C_FIELDDELIMITOR,
|
||
v_contractsoort);
|
||
|
||
-- controleeer of het contractsoort bestaat
|
||
v_errormsg :=
|
||
'Controleer of de contractsoort al bestaat: ' || v_contractsoort;
|
||
BEGIN
|
||
SELECT ins_discipline_key
|
||
INTO v_discipline_key
|
||
FROM cnt_discipline
|
||
WHERE ins_discipline_verwijder IS NULL
|
||
AND UPPER (TRIM (ins_discipline_omschrijving)) =
|
||
UPPER (TRIM (SUBSTR(v_contractsoort,1,60)));
|
||
EXCEPTION WHEN NO_DATA_FOUND
|
||
THEN
|
||
fac.imp_writelog (p_import_key,
|
||
'E',
|
||
v_aanduiding || 'Onbekende contractsoort: ' || v_contractsoort,
|
||
'Toelichting: ... ');
|
||
END;
|
||
--
|
||
v_errormsg :=
|
||
'Fout opvragen te importeren rij (contractcode):'
|
||
|| v_gebouw_code;
|
||
fac.imp_getfield (v_newline,
|
||
C_FIELDDELIMITOR,
|
||
v_contractnummer);
|
||
--
|
||
v_errormsg :=
|
||
'Fout opvragen te importeren rij (versie)' || v_gebouw_code;
|
||
fac.imp_getfield (v_newline, C_FIELDDELIMITOR, v_versie);
|
||
--
|
||
v_errormsg :=
|
||
'Fout opvragen te importeren rij (volgnummer)'
|
||
|| v_gebouw_code;
|
||
fac.imp_getfield (v_newline, C_FIELDDELIMITOR, v_volgnummer);
|
||
--
|
||
v_errormsg :=
|
||
'Fout opvragen te importeren rij (contractafdeling)'
|
||
|| v_gebouw_code;
|
||
fac.imp_getfield (v_newline,
|
||
C_FIELDDELIMITOR,
|
||
v_contractafdeling);
|
||
--
|
||
v_errormsg :=
|
||
'Fout opvragen te importeren rij (contractmanager)'
|
||
|| v_gebouw_code;
|
||
fac.imp_getfield (v_newline,
|
||
C_FIELDDELIMITOR,
|
||
v_contractmanager);
|
||
--
|
||
v_errormsg :=
|
||
'Fout opvragen te importeren rij (gewijzigddoor)'
|
||
|| v_gebouw_code;
|
||
fac.imp_getfield (v_newline,
|
||
C_FIELDDELIMITOR,
|
||
v_gewijzigddoor);
|
||
|
||
|
||
-- Insert geformatteerde import record
|
||
|
||
v_errormsg :=
|
||
'Fout bij toevoegen te importeren gebouw ['
|
||
|| v_gebouw_code
|
||
|| ']';
|
||
|
||
INSERT INTO AAXX_IMP_CONTRACT (gebouw,
|
||
leverancier,
|
||
leveranciernummer,
|
||
beschrijving,
|
||
van,
|
||
tot,
|
||
omschrijving,
|
||
bedrag,
|
||
termijnbedrag,
|
||
dienst,
|
||
contractsoort,
|
||
contractnummer,
|
||
versie,
|
||
volgnummer,
|
||
contractafdeling,
|
||
contractmanager,
|
||
gewijzigddoor,
|
||
volgorde)
|
||
VALUES (v_gebouw_code,
|
||
v_leverancier,
|
||
v_leveranciernummer,
|
||
v_beschrijving,
|
||
fac.safe_to_date (v_van, 'dd-mm-yy'),
|
||
fac.safe_to_date (v_tot, 'dd-mm-yy'),
|
||
v_omschrijving,
|
||
aaxx_get_imp_float (v_bedrag),
|
||
aaxx_get_imp_float (v_termijnbedrag),
|
||
v_dienst,
|
||
SUBSTR(v_contractsoort,1,60),
|
||
TRIM(v_contractnummer),
|
||
v_versie,
|
||
fac.safe_to_number (
|
||
REPLACE (v_volgnummer, ',', '.')),
|
||
v_contractafdeling,
|
||
v_contractmanager,
|
||
v_gewijzigddoor,
|
||
rec.fac_imp_file_index);
|
||
END IF;
|
||
END;
|
||
END LOOP;
|
||
END IF;
|
||
|
||
IF v_header_is_valid = 0
|
||
THEN
|
||
fac.imp_writelog (p_import_key,
|
||
'E',
|
||
v_aanduiding || 'Ongeldig importbestand',
|
||
'Toelichting: ... ');
|
||
END IF;
|
||
|
||
|
||
COMMIT;
|
||
EXCEPTION
|
||
WHEN OTHERS
|
||
THEN
|
||
oracle_err_num := SQLCODE;
|
||
v_hint := v_errormsg;
|
||
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
|
||
v_errormsg :=
|
||
'OTHERS (error ' || oracle_err_num || '/' || oracle_err_mes || ')';
|
||
fac.imp_writelog (p_import_key,
|
||
'E',
|
||
v_errormsg,
|
||
v_hint);
|
||
END aaxx_import_contract;
|
||
/
|
||
|
||
|
||
CREATE OR REPLACE PROCEDURE aaxx_update_contract (p_import_key IN NUMBER)
|
||
AS
|
||
CURSOR cdisc
|
||
IS
|
||
SELECT contractsoort, MIN(volgorde) volgorde
|
||
FROM aaxx_imp_contract
|
||
WHERE NOT EXISTS
|
||
(SELECT ins_discipline_key
|
||
FROM cnt_discipline
|
||
WHERE UPPER (TRIM (ins_discipline_omschrijving)) =
|
||
UPPER (TRIM (contractsoort)))
|
||
GROUP BY contractsoort;
|
||
|
||
CURSOR c
|
||
IS
|
||
SELECT *
|
||
FROM aaxx_imp_contract
|
||
ORDER BY volgorde;
|
||
|
||
v_aanduiding VARCHAR2 (200);
|
||
v_oldcountcnt NUMBER;
|
||
v_newcountcnt NUMBER;
|
||
v_countcnt NUMBER;
|
||
v_errormsg VARCHAR (1000);
|
||
v_error NUMBER (1);
|
||
v_error_hint VARCHAR (1000);
|
||
oracle_err_mes VARCHAR2 (150);
|
||
oracle_err_num VARCHAR2 (150);
|
||
currentversion fac_module.fac_module_version%TYPE;
|
||
v_gebouw_key NUMBER;
|
||
v_dienst_key NUMBER;
|
||
v_afdeling_key NUMBER;
|
||
v_perslid_key NUMBER;
|
||
v_perslid_man_key NUMBER;
|
||
v_discipline_key NUMBER;
|
||
v_contract_key NUMBER;
|
||
v_bedrijf_key NUMBER;
|
||
v_kostenplaats_key NUMBER;
|
||
v_count NUMBER;
|
||
v_versie NUMBER;
|
||
v_contract_nummer_intern NUMBER;
|
||
|
||
BEGIN
|
||
v_error := 0;
|
||
|
||
SELECT MAX (fac_module_version) INTO currentversion FROM fac_module;
|
||
|
||
fac.imp_writelog (
|
||
p_import_key,
|
||
'I',
|
||
'AAFM Contract import version ' || currentversion,
|
||
'$Revision$');
|
||
|
||
SELECT COUNT ( * ) INTO v_countcnt FROM aaxx_imp_contract;
|
||
|
||
IF v_countcnt = 0
|
||
THEN
|
||
fac.imp_writelog (p_import_key,
|
||
'E',
|
||
'AAFM Contract import bevat geen records',
|
||
'$Revision$');
|
||
RETURN;
|
||
END IF;
|
||
|
||
SELECT COUNT ( * ) INTO v_oldcountcnt FROM cnt_contract;
|
||
|
||
UPDATE cnt_contract
|
||
SET cnt_contract_versie = '0'
|
||
WHERE cnt_contract_versie IS NULL;
|
||
|
||
FOR rec IN cdisc
|
||
LOOP
|
||
BEGIN
|
||
v_aanduiding := ' regel[' || rec.volgorde || '] contractsoort: ' || rec.contractsoort;
|
||
v_error_hint := 'Toevoegen contractsoort:' || rec.contractsoort;
|
||
|
||
INSERT INTO ins_tab_discipline (ins_discipline_module,
|
||
ins_discipline_omschrijving)
|
||
VALUES ('CNT', rec.contractsoort)
|
||
RETURNING ins_discipline_key
|
||
INTO v_discipline_key;
|
||
|
||
INSERT INTO cnt_disc_params (cnt_ins_discipline_key,
|
||
cnt_srtcontract_type)
|
||
VALUES (v_discipline_key, 5);
|
||
END;
|
||
END LOOP;
|
||
|
||
FOR rec IN c
|
||
LOOP
|
||
BEGIN
|
||
v_aanduiding :=
|
||
'regel['
|
||
|| rec.volgorde
|
||
|| '] nummer: '
|
||
|| rec.contractnummer
|
||
|| ' versie: '
|
||
|| rec.versie
|
||
|| ' volgnummer: '
|
||
|| rec.volgnummer;
|
||
v_error_hint := 'Controle op bedrijf (check contract vinkje)';
|
||
|
||
v_perslid_man_key := NULL;
|
||
|
||
SELECT prs_bedrijf_key
|
||
INTO v_bedrijf_key
|
||
FROM prs_v_aanwezigbedrijf
|
||
WHERE prs_bedrijf_contract = 1
|
||
AND ( UPPER (TRIM (prs_leverancier_nr)) = UPPER (TRIM (rec.leveranciernummer))
|
||
OR (rec.leveranciernummer IS NULL AND rec.leverancier = prs_bedrijf_naam));
|
||
|
||
v_error_hint := 'Controle op dienst';
|
||
|
||
IF rec.dienst IS NOT NULL
|
||
THEN
|
||
SELECT prs_dienst_key
|
||
INTO v_dienst_key
|
||
FROM prs_dienst
|
||
WHERE UPPER (TRIM (prs_dienst_omschrijving)) = UPPER (TRIM (rec.dienst));
|
||
END IF;
|
||
|
||
v_error_hint := 'Controle op contractsoort';
|
||
|
||
SELECT ins_discipline_key
|
||
INTO v_discipline_key
|
||
FROM cnt_discipline
|
||
WHERE ins_discipline_verwijder IS NULL
|
||
AND UPPER (TRIM (ins_discipline_omschrijving)) =
|
||
UPPER (TRIM (rec.contractsoort));
|
||
|
||
v_error_hint := 'Controle op contractafdeling';
|
||
|
||
SELECT prs_afdeling_key
|
||
INTO v_afdeling_key
|
||
FROM prs_afdeling
|
||
WHERE prs_afdeling_verwijder IS NULL
|
||
AND UPPER (TRIM (prs_afdeling_naam)) = UPPER (TRIM (rec.contractafdeling));
|
||
|
||
v_error_hint := 'Controle op contractmanager';
|
||
|
||
IF rec.contractmanager IS NOT NULL
|
||
THEN
|
||
SELECT prs_perslid_key
|
||
INTO v_perslid_man_key
|
||
FROM prs_v_aanwezigperslid
|
||
WHERE prs_perslid_oslogin = UPPER (TRIM (rec.contractmanager))
|
||
OR prs_perslid_oslogin2 = UPPER (TRIM (rec.contractmanager));
|
||
END IF;
|
||
|
||
v_error_hint := 'Controle op gewijzigddoor';
|
||
|
||
SELECT prs_perslid_key
|
||
INTO v_perslid_key
|
||
FROM prs_v_aanwezigperslid
|
||
WHERE prs_perslid_oslogin = UPPER (TRIM (rec.gewijzigddoor))
|
||
OR prs_perslid_oslogin2 = UPPER (TRIM (rec.gewijzigddoor));
|
||
|
||
IF rec.volgnummer IS NULL
|
||
THEN
|
||
-- kopregel
|
||
v_contract_key := NULL;
|
||
v_versie := NULL;
|
||
v_error_hint := 'Controle op kostenplaats';
|
||
|
||
SELECT prs_kostenplaats_key
|
||
INTO v_kostenplaats_key
|
||
FROM prs_v_aanwezigkostenplaats
|
||
WHERE UPPER (TRIM (prs_kostenplaats_nr)) = UPPER (TRIM (rec.gebouw));
|
||
|
||
v_error_hint := 'Controle op contractnummer';
|
||
-- Als rec.contractnummer gevuld is, dan gaan we kijken of er een aanwezig contract is
|
||
---- Zo ja, dan hoogste versie-nummer bepalen en insert doen
|
||
---- Zo niet, dan geen contract aanmaken maar via exception afhandelen
|
||
|
||
IF rec.contractnummer IS NOT NULL
|
||
THEN
|
||
SELECT COUNT (*)
|
||
INTO v_count
|
||
FROM cnt_v_aanwezigcontract
|
||
WHERE TRIM (cnt_contract_nummer_intern) = TRIM (rec.contractnummer) ;
|
||
|
||
IF v_count > 0
|
||
THEN
|
||
|
||
SELECT max(fac.safe_to_number(cnt_contract_versie)) + 1
|
||
INTO v_versie
|
||
FROM cnt_v_aanwezigcontract
|
||
WHERE TRIM (cnt_contract_nummer_intern) = TRIM (rec.contractnummer) ;
|
||
|
||
END IF;
|
||
|
||
IF v_count = 0
|
||
THEN
|
||
|
||
-- Dan gaan we hem niet aanmaken. Onderstaande select levert geen resultaat op en zal dus netjes via de exception lopen
|
||
SELECT cnt_contract_nummer_intern
|
||
INTO v_contract_nummer_intern
|
||
FROM cnt_v_aanwezigcontract
|
||
WHERE TRIM (cnt_contract_nummer_intern) = TRIM (rec.contractnummer) ;
|
||
|
||
END IF;
|
||
|
||
|
||
END IF;
|
||
|
||
v_error_hint := 'Toevoegen contract';
|
||
|
||
INSERT INTO cnt_contract (cnt_contract_nummer,
|
||
cnt_contract_nummer_intern,
|
||
cnt_contract_omschrijving,
|
||
cnt_contract_document,
|
||
cnt_contract_looptijd_van,
|
||
cnt_contract_looptijd_tot,
|
||
cnt_contract_status,
|
||
cnt_contract_kosten,
|
||
cnt_contract_termijnkosten,
|
||
cnt_prs_bedrijf_key,
|
||
prs_afdeling_key_eig,
|
||
ins_discipline_key,
|
||
prs_perslid_key_eig,
|
||
prs_perslid_key_beh,
|
||
prs_kostenplaats_key,
|
||
cnt_contract_versie,
|
||
cnt_contract_opzegtermijn,
|
||
cnt_contract_rappeltermijn)
|
||
VALUES (rec.contractnummer,
|
||
rec.contractnummer,
|
||
SUBSTR (rec.beschrijving, 1, 50),
|
||
REPLACE (REPLACE (rec.omschrijving, '<(>', ''),
|
||
'<)>',
|
||
''),
|
||
rec.van,
|
||
rec.tot,
|
||
2, -- Status Nieuw (want cnt_contract_approval voor heyday altijd op 1) - Nieuwe concept-contract wordt dus altijd eerst ter goedkeuring aangeboden
|
||
rec.bedrag,
|
||
rec.termijnbedrag,
|
||
v_bedrijf_key,
|
||
v_afdeling_key,
|
||
v_discipline_key,
|
||
v_perslid_man_key,
|
||
v_perslid_key,
|
||
v_kostenplaats_key,
|
||
DECODE(v_versie, NULL, '0', v_versie),
|
||
1,
|
||
1)
|
||
RETURNING cnt_contract_key
|
||
INTO v_contract_key;
|
||
|
||
-- Uitsturen contracten naar leverancier - vanaf 2025.3 werkend (zie ticket INLO#90541)
|
||
--- Door @cntnew te zetten, wordt de uitsturing van contract naar leverancier via systeemadres met gebeurtenis cntnew uitgesteld totdat de status defintief wordt (=0)
|
||
fac.trackaction('@CNTNEW', v_contract_key, NULL, NULL, NULL);
|
||
|
||
-- Indien het een import van nieuw contract betreft, dan moeten we contractnummer en contract_nummer_intern nog vullen met de net aangemaakte contract_key
|
||
IF rec.contractnummer IS NULL
|
||
THEN
|
||
UPDATE cnt_contract
|
||
SET cnt_contract_nummer = cnt_contract_key,
|
||
cnt_contract_nummer_intern = cnt_contract_key
|
||
WHERE cnt_contract_key = v_contract_key;
|
||
END IF;
|
||
|
||
|
||
-- rec.volgnummer gevuld met 1 dus vanaf hier de gebouw-regels
|
||
ELSE
|
||
v_error_hint := 'Controle op gebouwcode';
|
||
|
||
SELECT alg_gebouw_key
|
||
INTO v_gebouw_key
|
||
FROM alg_v_aanweziggebouw
|
||
WHERE UPPER (alg_gebouw_code) = UPPER (rec.gebouw);
|
||
|
||
-- als het bovenliggende contract niet aangemaakt kon worden gaan we ook geen scope invullen.
|
||
IF v_contract_key IS NOT NULL
|
||
THEN
|
||
-- Scope van het contract zetten.
|
||
INSERT INTO cnt_contract_plaats (cnt_contract_key,
|
||
cnt_alg_plaats_key,
|
||
cnt_alg_plaats_code,
|
||
cnt_contract_plaats_gewicht)
|
||
VALUES (v_contract_key,
|
||
v_gebouw_key,
|
||
'G',
|
||
rec.bedrag);
|
||
END IF;
|
||
END IF;
|
||
EXCEPTION
|
||
WHEN OTHERS
|
||
THEN
|
||
oracle_err_num := SQLCODE;
|
||
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
|
||
IF oracle_err_num = 1 THEN oracle_err_mes := 'Combinatie contractnummer/versie bestaat al.'; END IF;
|
||
IF oracle_err_num = -1422 THEN oracle_err_mes := 'Controle levert meer dan <20><>n resultaat op.'; END IF;
|
||
IF oracle_err_num = 100 THEN oracle_err_mes := 'Controle levert geen resultaat op.'; END IF;
|
||
v_errormsg :=
|
||
'OTHERS (error '
|
||
|| oracle_err_num
|
||
|| '/'
|
||
|| oracle_err_mes
|
||
|| ')';
|
||
aaxx_imp_writelog (p_import_key,
|
||
'E',
|
||
v_errormsg,
|
||
v_error_hint || ' - ' || v_aanduiding);
|
||
v_error := 1;
|
||
END;
|
||
END LOOP;
|
||
|
||
IF v_error = 0
|
||
THEN
|
||
COMMIT;
|
||
ELSE
|
||
ROLLBACK;
|
||
END IF;
|
||
|
||
-- How many active records are now present?
|
||
SELECT COUNT ( * ) INTO v_newcountcnt FROM cnt_contract;
|
||
|
||
fac.imp_writelog (
|
||
p_import_key,
|
||
'S',
|
||
'Aantal contracten vooraf: '
|
||
|| TO_CHAR (v_oldcountcnt)
|
||
|| ' nu: '
|
||
|| TO_CHAR (v_newcountcnt),
|
||
'');
|
||
|
||
EXCEPTION
|
||
WHEN OTHERS
|
||
THEN
|
||
ROLLBACK;
|
||
oracle_err_num := SQLCODE;
|
||
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
|
||
v_errormsg :=
|
||
'OTHERS (error ' || oracle_err_num || '/' || oracle_err_mes || ')';
|
||
fac.imp_writelog (p_import_key,
|
||
'E',
|
||
v_errormsg,
|
||
v_error_hint || ' - ' || v_aanduiding);
|
||
COMMIT;
|
||
END;
|
||
/
|
||
|
||
-------------------------------------------
|
||
-- Import inspecties / MJOB
|
||
-------------------------------------------
|
||
CREATE OR REPLACE PROCEDURE aaxx_import_insp_mjob (p_import_key IN NUMBER)
|
||
IS
|
||
c_fielddelimitor VARCHAR2 (1) := ';';
|
||
|
||
v_newline VARCHAR2 (4000); -- Input line
|
||
v_errormsg VARCHAR (1000);
|
||
v_hint VARCHAR2 (1000);
|
||
oracle_err_num NUMBER;
|
||
oracle_err_mes VARCHAR2 (200);
|
||
v_ongeldig NUMBER (1);
|
||
v_aanduiding VARCHAR2 (200);
|
||
v_header_is_valid NUMBER (1);
|
||
v_dummy VARCHAR2 (1000);
|
||
v_count NUMBER;
|
||
v_count_rec NUMBER := 0 ; -- totaal aantal record in csv
|
||
v_count_verwerk NUMBER ; -- aantal te verwerken regels
|
||
v_count_n_taak NUMBER ; -- aantal nieuw aan te maken basistaken
|
||
v_count_n_taakobject NUMBER ; -- aantal nieuw aan te maken objecttaken
|
||
v_count_w_taak NUMBER ; -- aantal bestaande taken te wijzigen
|
||
|
||
-- De importvelden:
|
||
v_locatiecode VARCHAR2(1000);
|
||
v_objectomschrijving VARCHAR2(1000);
|
||
v_taakcategorie VARCHAR2(1000);
|
||
v_taakomschrijving VARCHAR2(1000);
|
||
v_taakomschrijving_nieuw VARCHAR2(1000); -- Vullen we in kolom extra_veld5
|
||
v_taakopmerking VARCHAR2(1000);
|
||
v_taakgroep VARCHAR2(1000);
|
||
v_taakprioriteit VARCHAR2(1000);
|
||
v_taakobjectpercentage VARCHAR2(1000);
|
||
v_taakobjectopmerking VARCHAR2(1000);
|
||
v_taakobjectperiode VARCHAR2(1000);
|
||
v_taakobjectstartjaar VARCHAR2(1000); -- Startjaar uit CSV
|
||
v_taakobjectstartjaar_d DATE;
|
||
v_object_aanmaak DATE; -- Datum aanmaak van Object
|
||
|
||
v_taakobjecteindjaar VARCHAR2(1000);
|
||
v_taakobjecteindjaar_d DATE;
|
||
v_taakobjectmateriaal VARCHAR2(1000);
|
||
v_taakobjectkosten VARCHAR2(1000);
|
||
v_taakobjecteenheid VARCHAR2(1000);
|
||
v_taakdienst VARCHAR2(1000);
|
||
v_deel_key NUMBER(10);
|
||
v_discipline_key NUMBER(10);
|
||
v_ismjob NUMBER;
|
||
v_taak_geschiedenis NUMBER (10); -- Vullen we in kolom extra_veld4
|
||
|
||
v_srtcontrole_key NUMBER(10);
|
||
v_srtcontrole_teller NUMBER(10);
|
||
v_ins_srtdeel_key NUMBER(10);
|
||
v_ins_srtdeel_code VARCHAR2(10);
|
||
v_ins_srtcontroledl_xcp_key NUMBER(10);
|
||
v_taakobject_startjaar_d DATE; -- Startjaar van de reeds in Facilitor gekoppelde objecttaak
|
||
|
||
CURSOR c
|
||
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_insp_mjob;
|
||
|
||
COMMIT;
|
||
|
||
v_header_is_valid := 0;
|
||
v_ongeldig := 0;
|
||
|
||
FOR rec IN c
|
||
LOOP
|
||
|
||
BEGIN
|
||
v_ongeldig := 0;
|
||
v_taak_geschiedenis := NULL ;
|
||
v_deel_key := NULL ;
|
||
v_ins_srtdeel_key := NULL ;
|
||
v_ins_srtdeel_code := NULL ;
|
||
v_srtcontrole_key := NULL ;
|
||
v_ins_srtcontroledl_xcp_key := NULL;
|
||
|
||
v_errormsg := 'Fout FETCH te importeren rij';
|
||
v_newline := rec.fac_imp_file_line;
|
||
|
||
v_errormsg := 'Fout opvragen te importeren rij:' || SUBSTR (v_newline, 1, 200);
|
||
v_aanduiding := '';
|
||
|
||
-- OUD: 'OBJECTOMSCHRIJVING;TAAKCATEGORIE;TAAKOMSCHRIJVING;TAAKOPMERKING;TAAKGROEP;TAAKPRIORITEIT;TAAKBTW;TAAKKOSTENPLAATSNR;TAAKKOSTENPLAATSOMSCHRIJVING;TAAKOBJECTPERCENTAGE;TAAKOBJECTOPMERKING;TAAKOBJECTEENHEID;TAAKOBJECTPERIODE;TAAKOBJECTSTARTJAAR;TAAKOBJECTEINDJAAR;TAAKOBJECTKOSTEN%
|
||
-- NIEUW (vanaf 2020-6): OBJECTIDENTIFICATIE;TAAKCATEGORIE;TAAKOMSCHRIJVING;TAAKOPMERKING;TAAKGROEP;TAAKPRIORITEIT;TAAKOBJECTPERCENTAGE;TAAKOBJECTOPMERKING;TAAKOBJECTEENHEID;TAAKOBJECTPERIODE;TAAKOBJECTSTARTJAAR;TAAKOBJECTEINDJAAR;TAAKOBJECTKOSTEN;DIENST;TAAKOMSCHRIJVINGNIEUW;
|
||
|
||
IF (REPLACE(UPPER (v_newline), ' ') LIKE 'OBJECTIDENTIFICATIE;TAAKCATEGORIE;TAAKOMSCHRIJVING;TAAKOPMERKING;TAAKGROEP;TAAKPRIORITEIT;TAAKOBJECTPERCENTAGE;TAAKOBJECTOPMERKING;TAAKOBJECTEENHEID;TAAKOBJECTPERIODE;TAAKOBJECTSTARTJAAR;TAAKOBJECTEINDJAAR;TAAKOBJECTKOSTEN;DIENST;TAAKOMSCHRIJVINGNIEUW%')
|
||
THEN
|
||
v_header_is_valid := 1;
|
||
ELSE
|
||
-- Lees alle veldwaarden
|
||
v_count_rec := v_count_rec + 1 ;
|
||
|
||
v_errormsg := 'Fout opvragen te importeren rij (object)';
|
||
fac.imp_getfield (v_newline, c_fielddelimitor, v_objectomschrijving);
|
||
|
||
v_errormsg := 'Fout opvragen te importeren rij (discipline)';
|
||
fac.imp_getfield (v_newline, c_fielddelimitor, v_taakcategorie);
|
||
|
||
v_errormsg := 'Fout opvragen te importeren rij (taakomschrijving)';
|
||
fac.imp_getfield (v_newline, c_fielddelimitor, v_taakomschrijving);
|
||
|
||
v_errormsg := 'Fout opvragen te importeren rij (taakopmerking)';
|
||
fac.imp_getfield (v_newline, c_fielddelimitor, v_taakopmerking);
|
||
|
||
v_errormsg := 'Fout opvragen te importeren rij (taakgroep)';
|
||
fac.imp_getfield (v_newline, c_fielddelimitor, v_taakgroep);
|
||
|
||
v_errormsg := 'Fout opvragen te importeren rij (prioriteit)';
|
||
fac.imp_getfield (v_newline, c_fielddelimitor, v_taakprioriteit);
|
||
|
||
v_errormsg := 'Fout opvragen te importeren rij (percentage)';
|
||
fac.imp_getfield (v_newline, c_fielddelimitor, v_taakobjectpercentage);
|
||
|
||
v_errormsg := 'Fout opvragen te importeren rij (opmerking)';
|
||
fac.imp_getfield (v_newline, c_fielddelimitor, v_taakobjectopmerking);
|
||
|
||
v_errormsg := 'Fout opvragen te importeren rij (eenheid)';
|
||
fac.imp_getfield (v_newline, c_fielddelimitor, v_taakobjecteenheid);
|
||
|
||
v_errormsg := 'Fout opvragen te importeren rij (periode)';
|
||
fac.imp_getfield (v_newline, c_fielddelimitor, v_taakobjectperiode);
|
||
|
||
v_errormsg := 'Fout opvragen te importeren rij (startjaar)';
|
||
fac.imp_getfield (v_newline, c_fielddelimitor, v_taakobjectstartjaar);
|
||
|
||
v_errormsg := 'Fout opvragen te importeren rij (eindjaar)';
|
||
fac.imp_getfield (v_newline, c_fielddelimitor, v_taakobjecteindjaar);
|
||
|
||
v_errormsg := 'Fout opvragen te importeren rij (materiaal)';
|
||
fac.imp_getfield (v_newline, c_fielddelimitor, v_taakobjectmateriaal);
|
||
|
||
v_errormsg := 'Fout opvragen te importeren rij (dienst)';
|
||
fac.imp_getfield (v_newline, c_fielddelimitor, v_taakdienst);
|
||
|
||
v_errormsg := 'Fout opvragen te importeren rij (taakomschrijvingnieuw)';
|
||
fac.imp_getfield (v_newline, c_fielddelimitor, v_taakomschrijving_nieuw);
|
||
|
||
|
||
IF v_header_is_valid = 1 THEN -- Als geldige header gepasseerd en csv-recordvelden gevuld dan gaan we eerst checken of data klopt
|
||
|
||
-- Controleer of het object bestaat
|
||
-- Controleer of object er meerdere keren in staat (valt terug naar OTHERS, regel 300)
|
||
BEGIN
|
||
v_errormsg :=
|
||
'Fout bij opzoeken object: ' || v_objectomschrijving ||' komt vaker dan 1 keer voor';
|
||
|
||
SELECT ins_deel_key
|
||
INTO v_deel_key
|
||
FROM ins_deel
|
||
WHERE ins_deel_omschrijving = v_objectomschrijving
|
||
AND ins_deel_verwijder IS NULL;
|
||
EXCEPTION WHEN NO_DATA_FOUND
|
||
THEN
|
||
aaxx_imp_writelog (
|
||
p_import_key, 'E', 'Object bestaat niet - Regel wordt niet verwerkt ',
|
||
rec.fac_imp_file_index || ' - ' || v_objectomschrijving);
|
||
v_ongeldig := 1;
|
||
END;
|
||
|
||
-- Controleer de taakcategorie
|
||
v_errormsg :=
|
||
'Fout bij controleren taakcategorie ' ;
|
||
BEGIN
|
||
SELECT ins_discipline_key, ctr_disc_params_ismjob
|
||
INTO v_discipline_key, v_ismjob
|
||
FROM ins_tab_discipline d, ctr_disc_params dp
|
||
WHERE dp.ctr_ins_discipline_key = d.ins_discipline_key
|
||
AND d.ins_discipline_verwijder IS NULL
|
||
AND d.ins_discipline_module = 'CTR'
|
||
AND UPPER (d.ins_discipline_omschrijving) = TRIM(UPPER(v_taakcategorie));
|
||
EXCEPTION WHEN NO_DATA_FOUND
|
||
THEN
|
||
aaxx_imp_writelog (
|
||
p_import_key, 'E', 'Inspectie discipline niet gevonden - Regel wordt niet verwerkt ',
|
||
rec.fac_imp_file_index || ' - ' || v_taakcategorie);
|
||
v_ongeldig := 1;
|
||
END;
|
||
|
||
-- Controleer de eenheid
|
||
IF v_ismjob = 1
|
||
THEN
|
||
v_taakobjecteenheid := '4'; -- jaar
|
||
END IF;
|
||
|
||
IF v_taakobjecteenheid IS NOT NULL AND v_taakobjecteenheid NOT IN ('1', '2', '3', '4')
|
||
THEN
|
||
aaxx_imp_writelog (
|
||
p_import_key, 'E', 'Eenheid is niet correct gevuld (of leeg of 1,2,3,4) - Regel wordt niet verwerkt ',
|
||
rec.fac_imp_file_index || ' - ' || v_objectomschrijving || ' - ' || v_taakobjecteenheid);
|
||
v_ongeldig := 1;
|
||
END IF;
|
||
|
||
-- Controleer dienst
|
||
v_errormsg :=
|
||
'Fout controleren dienst ';
|
||
|
||
IF v_taakdienst IS NOT NULL
|
||
THEN
|
||
SELECT count(*)
|
||
INTO v_count
|
||
FROM prs_dienst
|
||
WHERE UPPER(prs_dienst_omschrijving) = UPPER(v_taakdienst);
|
||
|
||
IF v_count = 0
|
||
THEN
|
||
aaxx_imp_writelog (
|
||
p_import_key, 'W', 'Dienst onbekend - zal bij verwerken aangemaakt worden.. ',
|
||
rec.fac_imp_file_index || ' - ' || v_objectomschrijving || ' - ' || v_taakdienst);
|
||
END IF;
|
||
END IF;
|
||
|
||
-- Controleer de kosten - leeg of numeriek
|
||
v_errormsg :=
|
||
'Fout controleren kosten ';
|
||
|
||
IF v_taakobjectmateriaal IS NOT NULL AND fac.safe_to_number (REPLACE (v_taakobjectmateriaal, ',', '.')) IS NULL
|
||
THEN
|
||
aaxx_imp_writelog (
|
||
p_import_key, 'E', 'Kosten taakobject niet goed ingevuld - Regel wordt niet verwerkt.. ',
|
||
rec.fac_imp_file_index || ' - ' || v_objectomschrijving || 'Kosten csv: ' || v_taakobjectmateriaal);
|
||
v_ongeldig := 1;
|
||
END IF;
|
||
|
||
-- Controleer de taakperiode - Leeg of numeriek
|
||
v_errormsg :=
|
||
'Fout controleren taakperiode ';
|
||
|
||
IF v_taakobjectperiode IS NOT NULL AND fac.safe_to_number (v_taakobjectperiode) IS NULL
|
||
THEN
|
||
aaxx_imp_writelog (
|
||
p_import_key, 'E', 'Ongeldige taakobjectperiode - Regel wordt niet verwerkt ',
|
||
rec.fac_imp_file_index || ' - ' || v_objectomschrijving || ' - ' || v_taakobjectperiode);
|
||
v_ongeldig := 1;
|
||
END IF;
|
||
|
||
-- Controleer de taakprioriteit - Leeg of numeriek
|
||
v_errormsg :=
|
||
'Fout controleren taakprioriteit ';
|
||
|
||
IF v_taakprioriteit IS NOT NULL AND fac.safe_to_number (v_taakprioriteit) IS NULL
|
||
THEN
|
||
aaxx_imp_writelog (
|
||
p_import_key, 'E', 'Prioriteit taak niet goed ingevuld - Regel wordt niet verwerkt.. ',
|
||
rec.fac_imp_file_index || ' - ' || v_objectomschrijving || 'Kosten csv: ' || v_taakprioriteit);
|
||
v_ongeldig := 1;
|
||
END IF;
|
||
|
||
-- Controleer de startdatum
|
||
v_errormsg :=
|
||
'Fout bij controle startdatum ';
|
||
|
||
-- In geval jaar-invoer op datum zetten..
|
||
IF LENGTH (v_taakobjectstartjaar) = 4
|
||
THEN
|
||
v_taakobjectstartjaar := '01-01-' || v_taakobjectstartjaar;
|
||
END IF;
|
||
|
||
IF v_taakobjectstartjaar IS NOT NULL AND fac.safe_to_date (v_taakobjectstartjaar, 'dd-mm-yyyy') IS NULL
|
||
THEN
|
||
aaxx_imp_writelog (
|
||
p_import_key, 'E', 'Startdatum ongeldige invoer - Regel wordt niet verwerkt.. ',
|
||
rec.fac_imp_file_index || ' - ' || v_objectomschrijving || ' - Datum csv: ' || v_taakobjectstartjaar);
|
||
v_ongeldig := 1;
|
||
ELSE
|
||
v_taakobjectstartjaar_d := fac.safe_to_date(v_taakobjectstartjaar, 'dd-mm-yyyy') ;
|
||
END IF;
|
||
|
||
-- Hier controleren of de startdatum voor de Objectregisratiedatum ligt
|
||
v_errormsg :=
|
||
'Fout bij controle start- en objectregistratiedatum ';
|
||
|
||
IF v_deel_key IS NOT NULL AND v_ongeldig = 0
|
||
THEN
|
||
|
||
SELECT ins_deel_aanmaak
|
||
INTO v_object_aanmaak
|
||
FROM ins_deel
|
||
WHERE ins_deel_key = v_deel_key ;
|
||
|
||
IF v_taakobjectstartjaar_d < v_object_aanmaak
|
||
THEN
|
||
v_taakobjectstartjaar_d := v_object_aanmaak;
|
||
|
||
aaxx_imp_writelog (
|
||
p_import_key, 'W', 'Startdatum objecttaak ligt voor Objectregistratiedatum - Startdatum zal bij verwerken gelijkgezet worden aan de Objectregistratiedatum.. ',
|
||
rec.fac_imp_file_index || ' - ' || v_objectomschrijving || ' - Datum csv: ' || v_taakobjectstartjaar || ' wordt ' || v_object_aanmaak);
|
||
END IF;
|
||
END IF;
|
||
|
||
-- Controleer de einddatum
|
||
v_errormsg :=
|
||
'Fout bij controle einddatum ';
|
||
|
||
-- In geval jaar-invoer op datum zetten..
|
||
IF LENGTH (v_taakobjecteindjaar) = 4
|
||
THEN
|
||
v_taakobjecteindjaar := '31-12-' || v_taakobjecteindjaar;
|
||
END IF;
|
||
|
||
IF v_taakobjecteindjaar IS NOT NULL AND fac.safe_to_date (v_taakobjecteindjaar, 'dd-mm-yyyy') IS NULL
|
||
THEN
|
||
aaxx_imp_writelog (
|
||
p_import_key, 'E', 'Einddatum ongeldige invoer - Regel wordt niet verwerkt.. ',
|
||
rec.fac_imp_file_index || ' - ' || v_objectomschrijving || ' - Datum csv: ' || v_taakobjecteindjaar);
|
||
v_ongeldig := 1;
|
||
ELSE
|
||
v_taakobjecteindjaar_d := fac.safe_to_date(v_taakobjecteindjaar, 'dd-mm-yyyy') ;
|
||
END IF;
|
||
|
||
-- Hier controleren of de taak al bestaat...
|
||
v_errormsg :=
|
||
'Fout controleren nieuwe of bestaande taak ' || rec.fac_imp_file_index || ' - ' || v_objectomschrijving || ' - ' || v_taakomschrijving ;
|
||
|
||
IF v_deel_key IS NOT NULL AND v_ongeldig = 0
|
||
THEN
|
||
|
||
-- Eerst ins_srtdeel_code bepalen
|
||
SELECT d.ins_srtdeel_key, sd.ins_srtdeel_code
|
||
INTO v_ins_srtdeel_key, v_ins_srtdeel_code
|
||
FROM ins_deel d, ins_srtdeel sd
|
||
WHERE d.ins_deel_key = v_deel_key
|
||
AND d.ins_srtdeel_key = sd.ins_srtdeel_key
|
||
AND ins_deel_verwijder IS NULL;
|
||
|
||
-- Vervolgens kijken of er al een taak op aangemaakt is
|
||
|
||
SELECT count(*)
|
||
INTO v_srtcontrole_teller
|
||
FROM ins_srtcontrole
|
||
WHERE LOWER(ins_srtcontrole_omschrijving) =
|
||
SUBSTR (
|
||
TRIM (
|
||
v_ins_srtdeel_code
|
||
|| ' - '
|
||
|| LOWER(v_taakomschrijving)),
|
||
1,
|
||
60);
|
||
|
||
-- Zo ja, dan gaan we de srt_controle_key vullen
|
||
--- Ps. Komt soms bij heyday voor dat eenzelfde basistaak er meer dan 1 keer in staat (per ongeluk) en daarom pakken we hier dan de max(key).
|
||
IF v_srtcontrole_teller >0 THEN
|
||
|
||
SELECT max(ins_srtcontrole_key)
|
||
INTO v_srtcontrole_key
|
||
FROM ins_srtcontrole
|
||
WHERE LOWER(ins_srtcontrole_omschrijving) =
|
||
SUBSTR (
|
||
TRIM (
|
||
v_ins_srtdeel_code
|
||
|| ' - '
|
||
|| LOWER(v_taakomschrijving)),
|
||
1,
|
||
60) ;
|
||
|
||
ELSE -- Zo niet, dan is het dus geen bestaande standaard taak en gaan we straks in de update NIEUWE taak aanmaken
|
||
|
||
-- En passen dan ook maar gelijk taakomschrijving goed aan
|
||
v_errormsg := 'Fout bij aanpassen taakomschrijving ';
|
||
|
||
IF (LENGTH (TRIM(v_ins_srtdeel_code)) + 3 + LENGTH(TRIM(v_taakomschrijving))) > 60
|
||
THEN
|
||
aaxx_imp_writelog (
|
||
p_import_key, 'W', 'Nieuwe taak - Aangepast ivm lengte groter dan 60 ',
|
||
rec.fac_imp_file_index || ' - ' || v_objectomschrijving || ' - ' || v_taakomschrijving || ' wordt: ' || SUBSTR (TRIM (v_ins_srtdeel_code || ' - ' || v_taakomschrijving), 1, 60) );
|
||
END IF;
|
||
|
||
v_taakomschrijving := SUBSTR (TRIM (v_ins_srtdeel_code || ' - ' || v_taakomschrijving), 1, 60) ;
|
||
|
||
END IF;
|
||
END IF;
|
||
|
||
-- Hier controleren of voor de bestaande taak ook de objecttaak al bestaat...
|
||
v_errormsg :=
|
||
'Fout controleren nieuwe of bestaande objecttaak ' || rec.fac_imp_file_index || ' - ' || v_objectomschrijving || ' - ' || v_taakomschrijving ;
|
||
|
||
IF v_deel_key IS NOT NULL AND v_ongeldig = 0 AND v_srtcontrole_key IS NOT NULL THEN
|
||
|
||
SELECT max(t.ins_srtcontroledl_xcp_key), max(t.ins_srtcontroledl_xcp_startdat)
|
||
INTO v_ins_srtcontroledl_xcp_key, v_taakobject_startjaar_d
|
||
FROM ins_srtcontroledl_xcp t
|
||
WHERE t.ins_srtcontrole_key = v_srtcontrole_key AND t.ins_deel_key = v_deel_key ;
|
||
|
||
END IF;
|
||
|
||
-- Hier controleren of alle verplichte velden voor de nieuwe objecttaak correct zijn gevuld
|
||
---- Dit zijn: Startdatum + Eenheid + Periode + Taakgroep(?) + Percentage (?) + Kosten (?)
|
||
v_errormsg := 'Fout controleren verplichte velden bij nieuwe objecttaak ';
|
||
|
||
IF v_deel_key IS NOT NULL AND v_ongeldig = 0 AND v_ins_srtcontroledl_xcp_key IS NULL THEN
|
||
|
||
IF v_taakobjectstartjaar IS NULL THEN
|
||
aaxx_imp_writelog (
|
||
p_import_key, 'E', 'Startdatum niet ingevuld - Regel wordt niet verwerkt.. ',
|
||
rec.fac_imp_file_index || ' - ' || v_objectomschrijving);
|
||
v_ongeldig := 1;
|
||
END IF;
|
||
|
||
IF v_taakobjecteenheid IS NULL or v_taakobjecteenheid NOT IN ('1', '2', '3', '4') THEN
|
||
aaxx_imp_writelog (
|
||
p_import_key, 'E', 'Geen of ongeldige eenheid gevonden - Regel wordt niet verwerkt ',
|
||
rec.fac_imp_file_index || ' - ' || v_objectomschrijving || ' - ' || v_taakobjecteenheid);
|
||
v_ongeldig := 1;
|
||
END IF;
|
||
|
||
IF (v_taakobjectperiode IS NULL) OR (v_taakobjectperiode IS NOT NULL AND fac.safe_to_number (v_taakobjectperiode) IS NULL) THEN
|
||
aaxx_imp_writelog (
|
||
p_import_key, 'E', 'Geen of ongeldige taakobjectperiode - Regel wordt niet verwerkt ',
|
||
rec.fac_imp_file_index || ' - ' || v_objectomschrijving || ' - ' || v_taakobjectperiode);
|
||
v_ongeldig := 1;
|
||
END IF;
|
||
|
||
END IF;
|
||
|
||
-- Hier controleren of er al geschiedenis op de objecttaak zit en de startdatum afwijkt van degene meegegeven in csv
|
||
v_errormsg :=
|
||
'Fout controleren geschiedenis op objecttaak ';
|
||
|
||
IF v_deel_key IS NOT NULL AND v_ongeldig = 0 AND v_srtcontrole_key IS NOT NULL AND v_ins_srtcontroledl_xcp_key IS NOT NULL THEN
|
||
|
||
v_taak_geschiedenis := 0;
|
||
|
||
SELECT count(*)
|
||
INTO v_taak_geschiedenis
|
||
FROM ins_deelsrtcontrole
|
||
WHERE ins_deel_key = v_deel_key and ins_srtcontrole_key = v_srtcontrole_key ;
|
||
|
||
IF v_taak_geschiedenis > 0 AND v_taakobjectstartjaar IS NOT NULL AND v_taakobjectstartjaar_d <> v_taakobject_startjaar_d
|
||
THEN
|
||
|
||
aaxx_imp_writelog (
|
||
p_import_key, 'W', 'Op deze objecttaak zit al geschiedenis - afwijkende startdatum zal niet aangepast worden.. ',
|
||
rec.fac_imp_file_index || ' - ' || v_objectomschrijving || ' - ' || v_taakomschrijving || ' - ' || v_taakobjectstartjaar_d || ' vs. ' || v_taakobject_startjaar_d) ;
|
||
|
||
END IF;
|
||
END IF;
|
||
|
||
-- Nu kunnen we de tussentabel vullen
|
||
v_errormsg :=
|
||
'Fout bij toevoegen regel aan tabel '
|
||
|| v_objectomschrijving;
|
||
|
||
IF v_ongeldig = 0
|
||
THEN
|
||
|
||
INSERT INTO aaxx_imp_insp_mjob (locatiecode,
|
||
objectomschrijving ,
|
||
taakcategorie,
|
||
taakomschrijving,
|
||
taakopmerking,
|
||
taakgroep,
|
||
taakprioriteit,
|
||
taakobjectpercentage,
|
||
taakobjectopmerking,
|
||
taakobjectperiode,
|
||
taakobjectstartjaar,
|
||
taakobjecteindjaar,
|
||
taakobjectmateriaal,
|
||
taakobjecteenheid,
|
||
taakdienst,
|
||
extra_veld4, -- Gebruiken voor taakgeschiedenis
|
||
extra_veld5, -- Gebruiken voor taakomschrijving_nieuw
|
||
deel_key,
|
||
discipline_key,
|
||
ismjob,
|
||
ins_srtcontrole_key,
|
||
ins_srtcontroledl_xcp_key,
|
||
ins_srtdeel_key)
|
||
VALUES (v_locatiecode,
|
||
v_objectomschrijving,
|
||
v_taakcategorie,
|
||
v_taakomschrijving,
|
||
v_taakopmerking,
|
||
v_taakgroep,
|
||
v_taakprioriteit,
|
||
v_taakobjectpercentage,
|
||
v_taakobjectopmerking,
|
||
v_taakobjectperiode,
|
||
v_taakobjectstartjaar_d,
|
||
v_taakobjecteindjaar_d,
|
||
v_taakobjectmateriaal,
|
||
v_taakobjecteenheid,
|
||
v_taakdienst,
|
||
v_taak_geschiedenis,
|
||
v_taakomschrijving_nieuw,
|
||
v_deel_key,
|
||
v_discipline_key,
|
||
v_ismjob,
|
||
v_srtcontrole_key,
|
||
v_ins_srtcontroledl_xcp_key,
|
||
v_ins_srtdeel_key);
|
||
|
||
END IF;
|
||
END IF;
|
||
END IF;
|
||
EXCEPTION
|
||
WHEN OTHERS
|
||
THEN
|
||
oracle_err_num := SQLCODE;
|
||
v_hint := v_errormsg;
|
||
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
|
||
v_errormsg := 'OTHERS (error ' || oracle_err_num || '/' || oracle_err_mes || ')';
|
||
fac.imp_writelog (p_import_key, 'E', v_errormsg, v_hint);
|
||
END;
|
||
END LOOP;
|
||
|
||
-- Aantallen tellen voor logging
|
||
v_errormsg := 'Fout bij tellen aantallen voor logging ' ;
|
||
|
||
v_count_verwerk := 0 ; -- aantal te verwerken regels
|
||
v_count_n_taak := 0 ; -- aantal nieuw aan te maken basistaken
|
||
v_count_n_taakobject := 0 ; -- aantal nieuw aan te maken objecttaken
|
||
v_count_w_taak := 0 ; -- aantal bestaande (object)taken te wijzigen
|
||
|
||
SELECT count(*) INTO v_count_verwerk FROM aaxx_imp_insp_mjob ;
|
||
SELECT count(*) INTO v_count_n_taak FROM (SELECT DISTINCT(taakomschrijving) FROM aaxx_imp_insp_mjob WHERE ins_srtcontrole_key IS NULL) v ;
|
||
SELECT count(*) INTO v_count_n_taakobject FROM aaxx_imp_insp_mjob WHERE ins_srtcontroledl_xcp_key IS NULL ;
|
||
SELECT count(*) INTO v_count_w_taak FROM aaxx_imp_insp_mjob WHERE ins_srtcontrole_key IS NOT NULL AND ins_srtcontroledl_xcp_key IS NOT NULL ;
|
||
|
||
|
||
IF v_header_is_valid = 0
|
||
THEN
|
||
ROLLBACK;
|
||
aaxx_imp_writelog (p_import_key, 'E', v_aanduiding || 'Ongeldig importbestand', 'Toelichting: Verkeerde header. Niet conform specs. ');
|
||
ELSE
|
||
fac.imp_writelog (
|
||
p_import_key,
|
||
'S',
|
||
'IMPORT TAKEN: aantal te verwerken regels: ' || TO_CHAR (v_count_verwerk) || ' (van de ' || TO_CHAR (v_count_rec) || ' records in csv)'
|
||
|| CHR(13) || CHR(10)
|
||
|| 'Aantal nieuwe taken: ' || TO_CHAR (v_count_n_taak)
|
||
|| CHR(13) || CHR(10)
|
||
|| 'Aantal nieuwe objecttaken: ' || TO_CHAR (v_count_n_taakobject)
|
||
|| CHR(13) || CHR(10)
|
||
|| 'Aantal bestaande, te wijzigen (object)taken: ' || TO_CHAR (v_count_w_taak),
|
||
'');
|
||
END IF;
|
||
COMMIT;
|
||
|
||
EXCEPTION
|
||
WHEN OTHERS
|
||
THEN
|
||
ROLLBACK;
|
||
oracle_err_num := SQLCODE;
|
||
v_hint := v_errormsg;
|
||
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
|
||
v_errormsg := 'OTHERS (error ' || oracle_err_num || '/' || oracle_err_mes || ')';
|
||
fac.imp_writelog (p_import_key, 'E', v_errormsg, v_hint);
|
||
END aaxx_import_insp_mjob;
|
||
/
|
||
|
||
CREATE OR REPLACE PROCEDURE aaxx_update_insp_mjob (p_import_key IN NUMBER)
|
||
AS
|
||
CURSOR c_n -- nieuwe taken en objecttaken aanmaken..
|
||
IS
|
||
SELECT i.*
|
||
FROM aaxx_imp_insp_mjob i
|
||
WHERE i.ins_srtcontrole_key IS NULL;
|
||
|
||
CURSOR c_no -- nieuwe objecttaken aanmaken..
|
||
IS
|
||
SELECT i.*
|
||
FROM aaxx_imp_insp_mjob i
|
||
WHERE i.ins_srtcontrole_key IS NOT NULL AND i.ins_srtcontroledl_xcp_key IS NULL;
|
||
|
||
CURSOR c_m -- bestaande taak en/of objecttaak wijzigen
|
||
IS
|
||
SELECT i.*
|
||
FROM aaxx_imp_insp_mjob i
|
||
WHERE i.ins_srtcontrole_key IS NOT NULL AND i.ins_srtcontroledl_xcp_key IS NOT NULL;
|
||
|
||
v_errormsg VARCHAR2 (4000);
|
||
v_error_hint VARCHAR2 (4000);
|
||
oracle_err_mes VARCHAR2 (4000);
|
||
oracle_err_num VARCHAR2 (4000);
|
||
v_aanduiding VARCHAR2 (1000);
|
||
v_aanduiding_objecttaak VARCHAR2 (1000);
|
||
v_ongeldig NUMBER (1);
|
||
v_ins_srtcontrole_key NUMBER (10);
|
||
v_dienst_key NUMBER (10);
|
||
v_taak_al_aangemaakt NUMBER(10);
|
||
|
||
v_count_verwerk NUMBER := 0 ; -- aantal verwerkte records
|
||
v_count_n_taak NUMBER := 0 ; -- aantal nieuw aangemaakte basistaken
|
||
v_count_n_taakobject NUMBER := 0 ; -- aantal nieuw aangemaakte objecttaken
|
||
v_count_w_taak NUMBER := 0 ; -- aantal bestaande basistaken gewijzigd
|
||
v_count_w_taakobject NUMBER := 0 ; -- aantal bestaande object-taken gewijzigd
|
||
v_count_taak NUMBER := 0 ;
|
||
v_count_taakobject NUMBER := 0 ;
|
||
|
||
|
||
-- Velden
|
||
v_taakomschrijving VARCHAR2(1000);
|
||
v_ins_srtdeel_code VARCHAR2(10);
|
||
v_taakomschrijving_nieuw VARCHAR2(1000);
|
||
v_taakopmerking VARCHAR2(1000);
|
||
v_taakgroep VARCHAR2(1000);
|
||
v_taakdienst_key NUMBER(10);
|
||
v_taakdienst VARCHAR2(1000);
|
||
v_taakprioriteit NUMBER(3);
|
||
v_percentage NUMBER(3);
|
||
v_objecttaakopmerking VARCHAR2(1000);
|
||
v_eenheid NUMBER(3);
|
||
v_periode NUMBER(3);
|
||
v_startjaar DATE;
|
||
v_eindjaar DATE;
|
||
v_materiaalkosten NUMBER(10);
|
||
|
||
BEGIN
|
||
v_ongeldig := 0;
|
||
|
||
FOR rec IN c_n
|
||
LOOP
|
||
|
||
BEGIN
|
||
v_aanduiding :=
|
||
rec.objectomschrijving
|
||
|| ' / '
|
||
|| rec.taakcategorie
|
||
|| ' - '
|
||
|| rec.taakomschrijving;
|
||
|
||
-- Eenzelfde basistaak kan meerdere keren in CSV zitten.
|
||
-- Daarom gaan we in deze cursor eerst kijken of de basistaak er in deze LOOP al ingezet is.
|
||
-- Zo ja, dan kunnen we door naar de Objecttaak. Zo niet, dan gaan we eerst de basis
|
||
v_errormsg := 'Opzoeken basistaak ' || v_aanduiding;
|
||
v_taak_al_aangemaakt:=0;
|
||
|
||
SELECT count(*)
|
||
INTO v_taak_al_aangemaakt
|
||
FROM ins_srtcontrole
|
||
WHERE ins_srtcontrole_omschrijving = rec.taakomschrijving;
|
||
|
||
-- Als basistaak al in loop was aangemaakt nog even de key erbij zoeken
|
||
IF v_taak_al_aangemaakt >0
|
||
THEN
|
||
|
||
SELECT max(ins_srtcontrole_key)
|
||
INTO v_ins_srtcontrole_key
|
||
FROM ins_srtcontrole
|
||
WHERE ins_srtcontrole_omschrijving = rec.taakomschrijving;
|
||
|
||
END IF;
|
||
|
||
-- Basistaak aanmaken
|
||
IF v_taak_al_aangemaakt = 0
|
||
THEN
|
||
|
||
-- We gaan we eerst op zoek naar de dienst.
|
||
v_errormsg := 'Aanmaken/opzoeken dienst ' || v_aanduiding;
|
||
v_dienst_key := NULL;
|
||
IF rec.taakdienst IS NOT NULL
|
||
THEN
|
||
BEGIN
|
||
SELECT prs_dienst_key
|
||
INTO v_dienst_key
|
||
FROM prs_dienst
|
||
WHERE UPPER(prs_dienst_omschrijving) = UPPER(SUBSTR(rec.taakdienst, 1,60));
|
||
EXCEPTION WHEN NO_DATA_FOUND
|
||
THEN
|
||
INSERT INTO prs_dienst (prs_dienst_omschrijving)
|
||
VALUES (SUBSTR(rec.taakdienst,1,60))
|
||
RETURNING prs_dienst_key INTO v_dienst_key;
|
||
END;
|
||
END IF;
|
||
|
||
v_count_verwerk := v_count_verwerk + 1 ;
|
||
v_count_n_taak := v_count_n_taak +1 ;
|
||
|
||
v_errormsg := 'Aanmaken taak ' || v_aanduiding;
|
||
INSERT INTO ins_srtcontrole (
|
||
ins_srtinstallatie_key,
|
||
ins_srtcontrole_niveau,
|
||
ins_srtcontrole_omschrijving,
|
||
ctr_discipline_key,
|
||
ins_srtcontrole_info,
|
||
ins_srtcontrole_periode,
|
||
ins_srtcontrole_eenheid,
|
||
ins_srtcontrole_mode,
|
||
ins_srtcontrole_level,
|
||
ins_srtcontrole_opmerking,
|
||
prs_dienst_key)
|
||
VALUES (
|
||
rec.ins_srtdeel_key,
|
||
'S',
|
||
rec.taakomschrijving,
|
||
rec.discipline_key,
|
||
NULL,
|
||
0,
|
||
rec.taakobjecteenheid,
|
||
1,
|
||
COALESCE (rec.taakprioriteit, '0'),
|
||
rec.taakopmerking,
|
||
v_dienst_key)
|
||
RETURNING ins_srtcontrole_key
|
||
INTO v_ins_srtcontrole_key;
|
||
|
||
fac.trackaction('CTRSUP', v_ins_srtcontrole_key, 4, NULL, 'Periodieke taak toegevoegd - Via taakimport ');
|
||
|
||
END IF;
|
||
|
||
-- Nu kunnen we de objectaak aanmaken
|
||
v_count_n_taakobject := v_count_n_taakobject +1 ;
|
||
|
||
v_errormsg := 'Aanmaken taak object ' || v_aanduiding || ' ['
|
||
|| rec.deel_key || '|'
|
||
|| v_ins_srtcontrole_key || '|'
|
||
|| rec.taakobjectperiode || '|'
|
||
|| rec.taakobjecteenheid || '|'
|
||
|| fac.safe_to_number (REPLACE (rec.taakobjectmateriaal, ',', '.')) || '|'
|
||
|| ROUND(fac.safe_to_number (REPLACE (rec.taakobjectpercentage, ',', '.'))) || '|'
|
||
|| rec.taakgroep || '|'
|
||
|| rec.taakobjectopmerking || '|'
|
||
|| rec.taakobjectstartjaar || ']';
|
||
|
||
INSERT INTO ins_srtcontroledl_xcp (
|
||
ins_deel_key,
|
||
ins_srtcontrole_key,
|
||
ins_srtcontroledl_xcp_periode,
|
||
ins_srtcontroledl_xcp_eenheid,
|
||
ins_srtcontroledl_xcp_materia,
|
||
ins_srtcontroledl_xcp_perc,
|
||
ins_srtcontroledl_xcp_groep,
|
||
ins_srtcontroledl_xcp_opmerk,
|
||
ins_srtcontroledl_xcp_startdat)
|
||
VALUES (
|
||
rec.deel_key,
|
||
v_ins_srtcontrole_key,
|
||
rec.taakobjectperiode,
|
||
rec.taakobjecteenheid,
|
||
fac.safe_to_number (
|
||
REPLACE (rec.taakobjectmateriaal, ',', '.')),
|
||
ROUND(fac.safe_to_number (
|
||
REPLACE (rec.taakobjectpercentage, ',', '.'))),
|
||
rec.taakgroep,
|
||
rec.taakobjectopmerking,
|
||
rec.taakobjectstartjaar
|
||
);
|
||
EXCEPTION
|
||
WHEN OTHERS
|
||
THEN
|
||
v_error_hint := v_errormsg;
|
||
oracle_err_num := SQLCODE;
|
||
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
|
||
v_errormsg :=
|
||
v_errormsg
|
||
|| 'ORACLE (error '
|
||
|| oracle_err_num
|
||
|| '/'
|
||
|| oracle_err_mes
|
||
|| ')';
|
||
aaxx_imp_writelog (p_import_key,
|
||
'E',
|
||
v_errormsg,
|
||
v_error_hint);
|
||
v_ongeldig := 1;
|
||
END;
|
||
v_aanduiding := 'Einde loop ' || v_aanduiding;
|
||
END LOOP;
|
||
|
||
FOR rec IN c_no
|
||
LOOP
|
||
BEGIN
|
||
|
||
v_aanduiding :=
|
||
rec.objectomschrijving
|
||
|| ' / '
|
||
|| rec.taakcategorie
|
||
|| ' - '
|
||
|| rec.taakomschrijving;
|
||
|
||
-- We kunnen direct objectaak aanmaken
|
||
v_count_verwerk := v_count_verwerk + 1 ;
|
||
v_count_n_taakobject := v_count_n_taakobject +1 ;
|
||
|
||
v_errormsg := 'Aanmaken taak object ' || v_aanduiding || ' ['
|
||
|| rec.deel_key || '|'
|
||
|| rec.ins_srtcontrole_key || '|'
|
||
|| rec.taakobjectperiode || '|'
|
||
|| rec.taakobjecteenheid || '|'
|
||
|| fac.safe_to_number (REPLACE (rec.taakobjectmateriaal, ',', '.')) || '|'
|
||
|| ROUND(fac.safe_to_number (REPLACE (rec.taakobjectpercentage, ',', '.'))) || '|'
|
||
|| rec.taakgroep || '|'
|
||
|| rec.taakobjectopmerking || '|'
|
||
|| rec.taakobjectstartjaar || ']';
|
||
INSERT INTO ins_srtcontroledl_xcp (
|
||
ins_deel_key,
|
||
ins_srtcontrole_key,
|
||
ins_srtcontroledl_xcp_periode,
|
||
ins_srtcontroledl_xcp_eenheid,
|
||
ins_srtcontroledl_xcp_materia,
|
||
ins_srtcontroledl_xcp_perc,
|
||
ins_srtcontroledl_xcp_groep,
|
||
ins_srtcontroledl_xcp_opmerk,
|
||
ins_srtcontroledl_xcp_startdat)
|
||
VALUES (
|
||
rec.deel_key,
|
||
rec.ins_srtcontrole_key,
|
||
rec.taakobjectperiode,
|
||
rec.taakobjecteenheid,
|
||
fac.safe_to_number (
|
||
REPLACE (rec.taakobjectmateriaal, ',', '.')),
|
||
ROUND(fac.safe_to_number (
|
||
REPLACE (rec.taakobjectpercentage, ',', '.'))),
|
||
rec.taakgroep,
|
||
rec.taakobjectopmerking,
|
||
rec.taakobjectstartjaar);
|
||
EXCEPTION
|
||
WHEN OTHERS
|
||
THEN
|
||
v_error_hint := v_errormsg;
|
||
oracle_err_num := SQLCODE;
|
||
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
|
||
v_errormsg :=
|
||
v_errormsg
|
||
|| 'ORACLE (error '
|
||
|| oracle_err_num
|
||
|| '/'
|
||
|| oracle_err_mes
|
||
|| ')';
|
||
aaxx_imp_writelog (p_import_key,
|
||
'E',
|
||
v_errormsg,
|
||
v_error_hint);
|
||
v_ongeldig := 1;
|
||
END;
|
||
v_aanduiding := 'Einde loop ' || v_aanduiding;
|
||
END LOOP;
|
||
|
||
FOR rec IN c_m
|
||
LOOP
|
||
BEGIN
|
||
v_count_verwerk := v_count_verwerk + 1 ;
|
||
|
||
v_aanduiding :=
|
||
rec.objectomschrijving
|
||
|| ' / '
|
||
|| rec.taakcategorie
|
||
|| ' - '
|
||
|| rec.taakomschrijving;
|
||
|
||
-- Basis-taak - Taakomschrijving
|
||
v_errormsg := 'Fout taakomschrijving wijzigen ';
|
||
v_taakomschrijving := '' ; -- huidige taakomschrijving
|
||
v_taakomschrijving_nieuw := '' ;
|
||
|
||
IF rec.extra_veld5 IS NOT NULL
|
||
THEN
|
||
|
||
-- Eerst de objectsrt-code ophalen en nieuwe taakomschrijving bepalen
|
||
SELECT ins_srtdeel_code_upper
|
||
INTO v_ins_srtdeel_code
|
||
FROM ins_srtdeel
|
||
WHERE ins_srtdeel_key = rec.ins_srtdeel_key ;
|
||
|
||
v_taakomschrijving_nieuw := SUBSTR (TRIM (v_ins_srtdeel_code || ' - ' || rec.extra_veld5), 1, 60) ;
|
||
|
||
-- Huidige omschrijving ophalen
|
||
SELECT ins_srtcontrole_omschrijving
|
||
INTO v_taakomschrijving
|
||
FROM ins_srtcontrole
|
||
WHERE ins_srtcontrole_key = rec.ins_srtcontrole_key;
|
||
|
||
IF v_taakomschrijving <> v_taakomschrijving_nieuw
|
||
THEN
|
||
|
||
UPDATE ins_srtcontrole
|
||
SET ins_srtcontrole_omschrijving = v_taakomschrijving_nieuw
|
||
WHERE ins_srtcontrole_key = rec.ins_srtcontrole_key;
|
||
v_count_taak:= 1 ;
|
||
|
||
fac.trackaction('CTRSUP', rec.ins_srtcontrole_key, 4, NULL, 'Gewijzigd Taakomschrijving: ' || v_taakomschrijving || '-->' || v_taakomschrijving_nieuw);
|
||
END IF;
|
||
|
||
END IF;
|
||
|
||
-- Basis-taak - Taakopmerking
|
||
v_errormsg := 'Fout taakopmerking wijzigen ';
|
||
|
||
SELECT ins_srtcontrole_opmerking
|
||
INTO v_taakopmerking
|
||
FROM ins_srtcontrole
|
||
WHERE ins_srtcontrole_key = rec.ins_srtcontrole_key;
|
||
|
||
IF v_taakopmerking IS NULL THEN v_taakopmerking := '<leeg>' ;
|
||
END IF;
|
||
|
||
IF v_taakopmerking <> rec.taakopmerking AND rec.taakopmerking IS NOT NULL
|
||
THEN
|
||
|
||
UPDATE ins_srtcontrole
|
||
SET ins_srtcontrole_opmerking = rec.taakopmerking
|
||
WHERE ins_srtcontrole_key = rec.ins_srtcontrole_key;
|
||
v_count_taak:= 1 ;
|
||
|
||
fac.trackaction('CTRSUP', rec.ins_srtcontrole_key, 4, NULL, 'Gewijzigd Taakopmerking: ' || v_taakopmerking || '-->' || rec.taakopmerking);
|
||
|
||
END IF;
|
||
|
||
-- Basis-taak - Taakprioriteit
|
||
v_errormsg := 'Fout prioriteit wijzigen ';
|
||
|
||
SELECT ins_srtcontrole_level
|
||
INTO v_taakprioriteit
|
||
FROM ins_srtcontrole
|
||
WHERE ins_srtcontrole_key = rec.ins_srtcontrole_key;
|
||
|
||
IF rec.taakprioriteit IS NOT NULL AND v_taakprioriteit <> fac.safe_to_number(rec.taakprioriteit)
|
||
THEN
|
||
|
||
UPDATE ins_srtcontrole
|
||
SET ins_srtcontrole_level = fac.safe_to_number(rec.taakprioriteit)
|
||
WHERE ins_srtcontrole_key = rec.ins_srtcontrole_key;
|
||
v_count_taak:= 1 ;
|
||
|
||
fac.trackaction('CTRSUP', rec.ins_srtcontrole_key, 4, NULL, 'Gewijzigd Prioriteit: ' || v_taakprioriteit || '-->' || rec.taakprioriteit);
|
||
|
||
END IF;
|
||
|
||
-- Basis-taak - Dienst
|
||
v_errormsg := 'Fout dienst wijzigen ' || v_aanduiding;
|
||
v_taakdienst_key := NULL ;
|
||
v_taakdienst := '<leeg>' ;
|
||
|
||
-- Eerst huidige dienstkey en omschrijving ophalen
|
||
BEGIN
|
||
|
||
SELECT max(t.prs_dienst_key), max(d.prs_dienst_omschrijving)
|
||
INTO v_taakdienst_key, v_taakdienst
|
||
FROM ins_srtcontrole t, prs_dienst d
|
||
WHERE t.ins_srtcontrole_key = rec.ins_srtcontrole_key AND t.prs_dienst_key = d.prs_dienst_key AND t.prs_dienst_key IS NOT NULL ;
|
||
|
||
IF v_taakdienst IS NULL THEN v_taakdienst := '<leeg>' ; END IF;
|
||
IF v_taakdienst_key IS NULL THEN v_taakdienst_key := -1 ; END IF;
|
||
|
||
END;
|
||
|
||
-- Dan gaan we kijken of de dienst meegegeven in csv al bestaat
|
||
v_errormsg := 'Aanmaken/opzoeken dienst ' || v_aanduiding;
|
||
v_dienst_key := NULL;
|
||
IF rec.taakdienst IS NOT NULL
|
||
THEN
|
||
BEGIN
|
||
SELECT prs_dienst_key
|
||
INTO v_dienst_key
|
||
FROM prs_dienst
|
||
WHERE UPPER(prs_dienst_omschrijving) = UPPER(SUBSTR(rec.taakdienst, 1,60));
|
||
EXCEPTION WHEN NO_DATA_FOUND
|
||
THEN
|
||
INSERT INTO prs_dienst (prs_dienst_omschrijving)
|
||
VALUES (SUBSTR(rec.taakdienst,1,60))
|
||
RETURNING prs_dienst_key INTO v_dienst_key;
|
||
END;
|
||
END IF;
|
||
|
||
IF v_taakdienst_key <> v_dienst_key AND rec.taakdienst IS NOT NULL
|
||
THEN
|
||
|
||
UPDATE ins_srtcontrole
|
||
SET prs_dienst_key = v_dienst_key
|
||
WHERE ins_srtcontrole_key = rec.ins_srtcontrole_key;
|
||
v_count_taak:= 1 ;
|
||
|
||
fac.trackaction('CTRSUP', rec.ins_srtcontrole_key, 4, NULL, 'Gewijzigd taakdienst: ' || v_taakdienst || '-->' || rec.taakdienst);
|
||
|
||
END IF;
|
||
|
||
IF v_count_taak = 1 THEN
|
||
v_count_w_taak := v_count_w_taak +1 ;
|
||
END IF;
|
||
|
||
-- Gaan nu de object-taken aanpassen
|
||
v_aanduiding_objecttaak := rec.taakcategorie || ' - ' || v_ins_srtdeel_code || rec.taakomschrijving || CHR(13) || CHR(10) ;
|
||
|
||
-- Object-taak - Percentage
|
||
v_errormsg := 'Fout percentage wijzigen ';
|
||
|
||
SELECT COALESCE(ins_srtcontroledl_xcp_perc, 0)
|
||
INTO v_percentage
|
||
FROM ins_srtcontroledl_xcp
|
||
WHERE ins_srtcontroledl_xcp_key = rec.ins_srtcontroledl_xcp_key ;
|
||
|
||
IF rec.taakobjectpercentage IS NOT NULL AND v_percentage <> rec.taakobjectpercentage
|
||
THEN
|
||
|
||
UPDATE ins_srtcontroledl_xcp
|
||
SET ins_srtcontroledl_xcp_perc = ROUND(fac.safe_to_number (REPLACE (rec.taakobjectpercentage, ',', '.')))
|
||
WHERE ins_srtcontroledl_xcp_key = rec.ins_srtcontroledl_xcp_key ;
|
||
v_count_taakobject:= 1 ;
|
||
|
||
fac.trackaction ('INSUPD', rec.deel_key, sys_context('USERENV', 'CLIENT_IDENTIFIER'), NULL, v_aanduiding_objecttaak || 'Percentage: (' || v_percentage || ') --> ' || rec.taakobjectpercentage );
|
||
|
||
END IF;
|
||
|
||
-- Object-taak - Opmerking
|
||
v_errormsg := 'Fout opmerking objecttaak wijzigen ';
|
||
|
||
SELECT ins_srtcontroledl_xcp_opmerk
|
||
INTO v_objecttaakopmerking
|
||
FROM ins_srtcontroledl_xcp
|
||
WHERE ins_srtcontroledl_xcp_key = rec.ins_srtcontroledl_xcp_key ;
|
||
|
||
IF v_objecttaakopmerking IS NULL THEN v_objecttaakopmerking := '<leeg>' ;
|
||
END IF;
|
||
|
||
IF rec.taakobjectopmerking IS NOT NULL AND v_objecttaakopmerking <> rec.taakobjectopmerking
|
||
THEN
|
||
|
||
UPDATE ins_srtcontroledl_xcp
|
||
SET ins_srtcontroledl_xcp_opmerk = rec.taakobjectopmerking
|
||
WHERE ins_srtcontroledl_xcp_key = rec.ins_srtcontroledl_xcp_key ;
|
||
v_count_taakobject:= 1 ;
|
||
|
||
fac.trackaction ('INSUPD', rec.deel_key, sys_context('USERENV', 'CLIENT_IDENTIFIER'), NULL, v_aanduiding_objecttaak || 'Taakopmerking: (' || v_objecttaakopmerking || ') --> ' || rec.taakobjectopmerking );
|
||
|
||
END IF;
|
||
|
||
-- Object-taak - Eenheid
|
||
v_errormsg := 'Fout eenheid wijzigen ';
|
||
|
||
SELECT COALESCE(ins_srtcontroledl_xcp_eenheid,0)
|
||
INTO v_eenheid
|
||
FROM ins_srtcontroledl_xcp
|
||
WHERE ins_srtcontroledl_xcp_key = rec.ins_srtcontroledl_xcp_key ;
|
||
|
||
IF rec.taakobjecteenheid IS NOT NULL AND fac.safe_to_number(rec.taakobjecteenheid) <> v_eenheid AND rec.ismjob = 0
|
||
THEN
|
||
|
||
UPDATE ins_srtcontroledl_xcp
|
||
SET ins_srtcontroledl_xcp_eenheid = fac.safe_to_number(rec.taakobjecteenheid)
|
||
WHERE ins_srtcontroledl_xcp_key = rec.ins_srtcontroledl_xcp_key ;
|
||
v_count_taakobject:= 1 ;
|
||
|
||
fac.trackaction ('INSUPD', rec.deel_key, sys_context('USERENV', 'CLIENT_IDENTIFIER'), NULL, v_aanduiding_objecttaak || 'Eenheid: (' || v_eenheid || ') --> ' || rec.taakobjecteenheid );
|
||
|
||
END IF;
|
||
|
||
-- Object-taak - Periode
|
||
v_errormsg := 'Fout periode wijzigen ';
|
||
|
||
SELECT COALESCE(ins_srtcontroledl_xcp_periode,0)
|
||
INTO v_periode
|
||
FROM ins_srtcontroledl_xcp
|
||
WHERE ins_srtcontroledl_xcp_key = rec.ins_srtcontroledl_xcp_key ;
|
||
|
||
IF rec.taakobjectperiode IS NOT NULL AND fac.safe_to_number(rec.taakobjectperiode) <> v_periode
|
||
THEN
|
||
|
||
UPDATE ins_srtcontroledl_xcp
|
||
SET ins_srtcontroledl_xcp_periode = fac.safe_to_number(rec.taakobjectperiode)
|
||
WHERE ins_srtcontroledl_xcp_key = rec.ins_srtcontroledl_xcp_key ;
|
||
v_count_taakobject:= 1 ;
|
||
|
||
fac.trackaction ('INSUPD', rec.deel_key, sys_context('USERENV', 'CLIENT_IDENTIFIER'), NULL, v_aanduiding_objecttaak || 'Periode: (' || v_periode || ') --> ' || rec.taakobjectperiode );
|
||
|
||
END IF;
|
||
|
||
-- Object-taak - Taakgroep
|
||
v_errormsg := 'Fout taakgroep wijzigen ';
|
||
|
||
SELECT ins_srtcontroledl_xcp_groep
|
||
INTO v_taakgroep
|
||
FROM ins_srtcontroledl_xcp
|
||
WHERE ins_srtcontroledl_xcp_key = rec.ins_srtcontroledl_xcp_key ;
|
||
|
||
IF v_taakgroep IS NULL THEN v_taakgroep := '<leeg>' ;
|
||
END IF;
|
||
|
||
IF v_taakgroep <> rec.taakgroep AND rec.taakgroep IS NOT NULL
|
||
THEN
|
||
|
||
UPDATE ins_srtcontroledl_xcp
|
||
SET ins_srtcontroledl_xcp_groep = rec.taakgroep
|
||
WHERE ins_srtcontroledl_xcp_key = rec.ins_srtcontroledl_xcp_key ;
|
||
v_count_taakobject:= 1 ;
|
||
|
||
fac.trackaction ('INSUPD', rec.deel_key, sys_context('USERENV', 'CLIENT_IDENTIFIER'), NULL, v_aanduiding_objecttaak || 'Taakgroep: (' || v_taakgroep || ') --> ' || rec.taakgroep );
|
||
|
||
END IF;
|
||
|
||
-- Object-taak - Startjaar
|
||
v_errormsg := 'Fout startjaar wijzigen ';
|
||
|
||
SELECT ins_srtcontroledl_xcp_startdat
|
||
INTO v_startjaar
|
||
FROM ins_srtcontroledl_xcp
|
||
WHERE ins_srtcontroledl_xcp_key = rec.ins_srtcontroledl_xcp_key ;
|
||
|
||
IF rec.taakobjectstartjaar IS NOT NULL AND COALESCE(v_startjaar, TO_DATE('01-01-1900','dd-MM-yyyy')) <> rec.taakobjectstartjaar
|
||
AND (rec.extra_veld4 = 0 OR (rec.extra_veld4 > 0 AND v_startjaar IS NULL))
|
||
-- extra_veld4 is wel/geen geschiedenis op taak. Als er geschiedenis op zit taak startdatum niet aan te passen.
|
||
-- Uitzondering als in xcp startdaum op NULL is gekomen (zie bug/ticket 64450)
|
||
THEN
|
||
|
||
UPDATE ins_srtcontroledl_xcp
|
||
SET ins_srtcontroledl_xcp_startdat = rec.taakobjectstartjaar
|
||
WHERE ins_srtcontroledl_xcp_key = rec.ins_srtcontroledl_xcp_key ;
|
||
v_count_taakobject:= 1 ;
|
||
|
||
fac.trackaction ('INSUPD', rec.deel_key, sys_context('USERENV', 'CLIENT_IDENTIFIER'), NULL, v_aanduiding_objecttaak || 'Startjaar: (' || v_startjaar || ') --> ' || rec.taakobjectstartjaar );
|
||
|
||
END IF;
|
||
|
||
-- Object-taak - Eindjaar
|
||
v_errormsg := 'Fout eindjaar wijzigen ';
|
||
|
||
SELECT ins_srtcontroledl_xcp_eind
|
||
INTO v_eindjaar
|
||
FROM ins_srtcontroledl_xcp
|
||
WHERE ins_srtcontroledl_xcp_key = rec.ins_srtcontroledl_xcp_key ;
|
||
|
||
-- IF v_eindjaar IS NULL THEN v_eindjaar := TO_DATE(01-01-1900, 'DD-MM-YYYY'); END IF;
|
||
|
||
IF (v_eindjaar IS NULL and rec.taakobjecteindjaar IS NOT NULL) OR (v_eindjaar IS NOT NULL AND rec.taakobjecteindjaar IS NOT NULL AND v_eindjaar <> rec.taakobjecteindjaar)
|
||
THEN
|
||
|
||
UPDATE ins_srtcontroledl_xcp
|
||
SET ins_srtcontroledl_xcp_eind = rec.taakobjecteindjaar
|
||
WHERE ins_srtcontroledl_xcp_key = rec.ins_srtcontroledl_xcp_key ;
|
||
v_count_taakobject:= 1 ;
|
||
|
||
fac.trackaction ('INSUPD', rec.deel_key, sys_context('USERENV', 'CLIENT_IDENTIFIER'), NULL, v_aanduiding_objecttaak || 'Eindjaar: (' || v_eindjaar || ') --> ' || rec.taakobjecteindjaar );
|
||
|
||
END IF;
|
||
|
||
-- Object-taak - Kosten
|
||
v_errormsg := 'Fout kosten wijzigen ';
|
||
|
||
SELECT COALESCE(max(ins_srtcontroledl_xcp_materia),0)
|
||
INTO v_materiaalkosten
|
||
FROM ins_srtcontroledl_xcp
|
||
WHERE ins_srtcontroledl_xcp_key = rec.ins_srtcontroledl_xcp_key ;
|
||
|
||
IF v_materiaalkosten <> fac.safe_to_number (REPLACE (rec.taakobjectmateriaal, ',', '.')) AND rec.taakobjectmateriaal IS NOT NULL
|
||
THEN
|
||
|
||
UPDATE ins_srtcontroledl_xcp
|
||
SET ins_srtcontroledl_xcp_materia = fac.safe_to_number (REPLACE (rec.taakobjectmateriaal, ',', '.'))
|
||
WHERE ins_srtcontroledl_xcp_key = rec.ins_srtcontroledl_xcp_key ;
|
||
v_count_taakobject:= 1 ;
|
||
|
||
fac.trackaction ('INSUPD', rec.deel_key, sys_context('USERENV', 'CLIENT_IDENTIFIER'), NULL, v_aanduiding_objecttaak || 'Kosten: (' || v_materiaalkosten || ') --> ' || rec.taakobjectmateriaal );
|
||
|
||
END IF;
|
||
|
||
IF v_count_taakobject = 1 THEN
|
||
v_count_w_taakobject := v_count_w_taakobject + 1 ;
|
||
END IF;
|
||
|
||
EXCEPTION
|
||
WHEN OTHERS
|
||
THEN
|
||
v_error_hint := v_errormsg;
|
||
oracle_err_num := SQLCODE;
|
||
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
|
||
v_errormsg :=
|
||
v_errormsg
|
||
|| 'ORACLE (error '
|
||
|| oracle_err_num
|
||
|| '/'
|
||
|| oracle_err_mes
|
||
|| ')';
|
||
aaxx_imp_writelog (p_import_key,
|
||
'E',
|
||
v_errormsg,
|
||
v_error_hint);
|
||
v_ongeldig := 1;
|
||
END;
|
||
v_aanduiding := 'Einde loop ' || v_aanduiding;
|
||
END LOOP;
|
||
|
||
IF v_ongeldig = 0
|
||
THEN
|
||
COMMIT;
|
||
|
||
fac.imp_writelog (
|
||
p_import_key,
|
||
'S',
|
||
'IMPORT TAKEN: aantal verwerkte regels: ' || TO_CHAR (v_count_verwerk)
|
||
|| CHR(13) || CHR(10)
|
||
|| 'Aantal nieuwe taken ingelezen: ' || TO_CHAR (v_count_n_taak)
|
||
|| CHR(13) || CHR(10)
|
||
|| 'Aantal nieuwe objecttaken ingelezen: ' || TO_CHAR (v_count_n_taakobject)
|
||
|| CHR(13) || CHR(10)
|
||
|| 'Aantal bestaande basistaken gewijzigd: ' || TO_CHAR (v_count_w_taak)
|
||
|| CHR(13) || CHR(10)
|
||
|| 'Aantal bestaande objecttaken gewijzigd: ' || TO_CHAR (v_count_w_taakobject),
|
||
'');
|
||
|
||
ELSE
|
||
ROLLBACK;
|
||
|
||
END IF;
|
||
|
||
END;
|
||
/
|
||
|
||
-------------------------------------------
|
||
-- Import contracttermijnen / Factuurschema
|
||
-------------------------------------------
|
||
|
||
CREATE OR REPLACE PROCEDURE aaxx_import_factuurschema (p_import_key IN NUMBER)
|
||
IS
|
||
c_fielddelimitor VARCHAR2 (1) := ';';
|
||
|
||
v_newline VARCHAR2 (4000); -- Input line
|
||
v_errormsg VARCHAR (1000);
|
||
v_hint VARCHAR2 (1000);
|
||
oracle_err_num NUMBER;
|
||
oracle_err_mes VARCHAR2 (200);
|
||
v_ongeldig NUMBER (1);
|
||
v_aanduiding VARCHAR2 (200);
|
||
v_header_is_valid NUMBER (1);
|
||
v_dummy VARCHAR2 (1000);
|
||
-- De importvelden:
|
||
v_bedrijf_naam prs_bedrijf.prs_bedrijf_naam%TYPE;
|
||
v_contract_nr VARCHAR2 (100);
|
||
v_contract_key cnt_contract.cnt_contract_key%TYPE;
|
||
v_contract_nummer cnt_contract.cnt_contract_nummer%TYPE;
|
||
v_contract_versie cnt_contract.cnt_contract_versie%TYPE;
|
||
v_boekmaand cnt_factuurschema.cnt_factuurschema_boekmaand%TYPE;
|
||
v_bedrag cnt_factuurschema.cnt_factuurschema_bedrag%TYPE;
|
||
v_opmerking cnt_factuurschema.cnt_factuurschema_opmerking%TYPE;
|
||
|
||
|
||
CURSOR c
|
||
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_factuurschema;
|
||
|
||
COMMIT;
|
||
|
||
v_header_is_valid := 0;
|
||
v_ongeldig := 0;
|
||
|
||
FOR rec IN c
|
||
LOOP
|
||
BEGIN
|
||
v_bedrijf_naam := NULL;
|
||
v_contract_nr := NULL;
|
||
v_contract_key := NULL;
|
||
v_contract_nummer := NULL;
|
||
v_contract_versie := NULL;
|
||
v_boekmaand := NULL;
|
||
v_bedrag := NULL;
|
||
v_opmerking := NULL;
|
||
|
||
v_errormsg := 'Fout FETCH te importeren rij';
|
||
v_newline := rec.fac_imp_file_line;
|
||
|
||
v_errormsg := 'Fout opvragen te importeren rij:' || SUBSTR (v_newline, 1, 200);
|
||
v_aanduiding := '';
|
||
|
||
IF (UPPER (v_newline) LIKE 'BEDRIJF;CONTRACTNR;VERSIE;BOEKMAAND;BEDRAG;OPMERKING%')
|
||
THEN
|
||
v_header_is_valid := 1;
|
||
ELSE
|
||
-- Lees alle veldwaarden
|
||
v_errormsg := 'Fout opvragen te importeren rij (bedrijf)';
|
||
fac.imp_getfield (v_newline, c_fielddelimitor, v_dummy);
|
||
v_bedrijf_naam := SUBSTR (v_dummy, 1, 60);
|
||
|
||
v_errormsg := 'Fout opvragen te importeren rij (contract_nr) ' || v_bedrijf_naam;
|
||
fac.imp_getfield (v_newline, c_fielddelimitor, v_dummy);
|
||
v_contract_nummer := fac.safe_to_number (v_dummy);
|
||
|
||
v_errormsg := 'Fout opvragen te importeren rij (contract_versie) ' || v_bedrijf_naam;
|
||
fac.imp_getfield (v_newline, c_fielddelimitor, v_dummy);
|
||
v_contract_versie := fac.safe_to_number (v_dummy);
|
||
|
||
--
|
||
BEGIN
|
||
SELECT cnt_contract_key
|
||
INTO v_contract_key
|
||
FROM cnt_v_aanwezigcontract
|
||
WHERE TRIM (cnt_contract_nummer_intern) = TRIM (v_contract_nummer)
|
||
AND COALESCE(cnt_contract_versie,'0') = v_contract_versie;
|
||
v_contract_nr := v_contract_nummer || '.' || v_contract_versie;
|
||
EXCEPTION
|
||
WHEN NO_DATA_FOUND
|
||
THEN
|
||
aaxx_imp_writelog (
|
||
p_import_key, 'E', 'Contract kan niet gevonden worden', v_bedrijf_naam || ' / ' || v_contract_nummer || '.' || v_contract_versie);
|
||
v_ongeldig := 1;
|
||
END;
|
||
|
||
v_errormsg := 'Fout opvragen te importeren rij (boekmaand) ' || v_bedrijf_naam || ' / ' || v_contract_nummer || '.' || v_contract_versie;
|
||
fac.imp_getfield (v_newline, c_fielddelimitor, v_dummy);
|
||
|
||
IF fac.safe_to_number (SUBSTR (v_dummy, 1, 4)) IS NOT NULL
|
||
AND SUBSTR (v_dummy, 5, 1) = '-'
|
||
AND fac.safe_to_number (SUBSTR (v_dummy, 6, 2)) IS NOT NULL
|
||
THEN
|
||
v_boekmaand := SUBSTR (v_dummy, 1, 7);
|
||
ELSE
|
||
aaxx_imp_writelog (
|
||
p_import_key, 'E', 'Ongeldige boekmaand',
|
||
v_bedrijf_naam|| ' / ' || v_contract_nummer || '.' || v_contract_versie || ' - ' || v_dummy);
|
||
v_ongeldig := 1;
|
||
END IF;
|
||
|
||
v_errormsg := 'Fout opvragen te importeren rij (bedrag)' || v_bedrijf_naam || ' / ' || v_contract_nummer || '.' || v_contract_versie;
|
||
fac.imp_getfield (v_newline, c_fielddelimitor, v_dummy);
|
||
|
||
v_dummy := REPLACE(v_dummy, ',', '.');
|
||
IF fac.safe_to_number (v_dummy) IS NOT NULL
|
||
THEN
|
||
v_bedrag := fac.safe_to_number (v_dummy);
|
||
ELSE
|
||
aaxx_imp_writelog (
|
||
p_import_key, 'E', 'Ongeldige bedrag',
|
||
v_bedrijf_naam || ' / ' || v_contract_nummer || '.' || v_contract_versie || ' - ' || v_boekmaand);
|
||
v_ongeldig := 1;
|
||
END IF;
|
||
|
||
--
|
||
v_errormsg := 'Fout opvragen te importeren rij (opmerking) ' || v_bedrijf_naam || ' / ' || v_contract_nummer || '.' || v_contract_versie;
|
||
fac.imp_getfield (v_newline, c_fielddelimitor, v_dummy);
|
||
v_opmerking := SUBSTR (v_dummy, 1, 320);
|
||
|
||
v_errormsg :=
|
||
'Fout bij toevoegen regel aan tabel '
|
||
|| v_bedrijf_naam
|
||
|| ' / '
|
||
|| v_contract_nummer
|
||
|| '.'
|
||
|| v_contract_versie
|
||
|| ' - '
|
||
|| v_boekmaand;
|
||
|
||
INSERT INTO aaxx_imp_factuurschema (cnt_contract_key,
|
||
cnt_factuurschema_bedrag,
|
||
cnt_factuurschema_boekmaand,
|
||
cnt_factuurschema_opmerking,
|
||
cnt_contract_nr,
|
||
prs_bedrijf_naam)
|
||
VALUES (v_contract_key,
|
||
v_bedrag,
|
||
v_boekmaand,
|
||
v_opmerking,
|
||
v_contract_nr,
|
||
v_bedrijf_naam);
|
||
END IF;
|
||
END;
|
||
END LOOP;
|
||
|
||
|
||
IF v_header_is_valid = 0
|
||
THEN
|
||
aaxx_imp_writelog (p_import_key, 'E', v_aanduiding || 'Ongeldig importbestand', 'Toelichting: ... ');
|
||
v_ongeldig := 1;
|
||
END IF;
|
||
|
||
IF v_ongeldig = 0
|
||
THEN
|
||
COMMIT;
|
||
ELSE
|
||
ROLLBACK;
|
||
END IF;
|
||
EXCEPTION
|
||
WHEN OTHERS
|
||
THEN
|
||
ROLLBACK;
|
||
oracle_err_num := SQLCODE;
|
||
v_hint := v_errormsg;
|
||
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
|
||
v_errormsg := 'OTHERS (error ' || oracle_err_num || '/' || oracle_err_mes || ')';
|
||
fac.imp_writelog (p_import_key, 'E', v_errormsg, v_hint);
|
||
END aaxx_import_factuurschema;
|
||
/
|
||
|
||
CREATE OR REPLACE PROCEDURE aaxx_update_factuurschema (
|
||
p_import_key IN NUMBER)
|
||
AS
|
||
CURSOR c
|
||
IS
|
||
SELECT *
|
||
FROM aaxx_imp_factuurschema;
|
||
|
||
v_errormsg VARCHAR2(1000);
|
||
v_error_hint VARCHAR2(1000);
|
||
oracle_err_mes VARCHAR2(150);
|
||
oracle_err_num VARCHAR2(150);
|
||
v_aanduiding VARCHAR2(200);
|
||
v_ongeldig NUMBER(1);
|
||
v_van DATE;
|
||
v_tot DATE;
|
||
v_bm_start DATE;
|
||
v_bm_eind DATE;
|
||
v_som NUMBER(11,2);
|
||
v_contract_bedrag NUMBER(11,2);
|
||
v_factuurschema_key NUMBER(10);
|
||
v_disc_params_factuurschema NUMBER(1);
|
||
BEGIN
|
||
v_ongeldig := 0;
|
||
FOR rec IN c
|
||
LOOP
|
||
BEGIN
|
||
v_aanduiding := rec.prs_bedrijf_naam || ' / ' || rec.cnt_contract_nr || ' - ' || rec.cnt_factuurschema_boekmaand;
|
||
v_errormsg := 'Bepaling contract termijn ' || v_aanduiding;
|
||
|
||
SELECT cnt_disc_params_factuurschema dp, cnt_contract_looptijd_van, cnt_contract_looptijd_tot, cnt_contract_kosten
|
||
INTO v_disc_params_factuurschema, v_van, v_tot, v_contract_bedrag
|
||
FROM cnt_disc_params dp, cnt_contract c
|
||
WHERE c.ins_discipline_key = dp.cnt_ins_discipline_key
|
||
AND c.cnt_contract_key = rec.cnt_contract_key;
|
||
|
||
v_errormsg := 'Controleer of de boekmaand in de contracttermijn valt ' || v_aanduiding;
|
||
v_bm_start := TO_DATE(rec.cnt_factuurschema_boekmaand || '-01', 'yyyy-mm-dd');
|
||
v_bm_eind := ADD_MONTHS(v_bm_start, 1)-1;
|
||
IF NOT(v_van BETWEEN v_bm_start AND v_bm_eind OR
|
||
v_tot BETWEEN v_bm_start AND v_bm_eind OR
|
||
v_bm_start BETWEEN v_van AND v_tot)
|
||
THEN
|
||
-- ongeldige boekmaand
|
||
aaxx_imp_writelog (p_import_key, 'E', 'Boekmaand ligt niet binnen de contracttermijn ', v_aanduiding);
|
||
v_ongeldig := 1;
|
||
END IF;
|
||
|
||
v_errormsg := 'Controleer of het contract wel geconfigueerd is voor factuurschemas ' || v_aanduiding;
|
||
IF COALESCE(v_disc_params_factuurschema,0) <> 1
|
||
THEN
|
||
-- contracttype ondersteund geen factuurschema
|
||
aaxx_imp_writelog (p_import_key, 'E', 'Contracttype ondersteund geen factuurschema ', v_aanduiding);
|
||
v_ongeldig := 1;
|
||
END IF;
|
||
|
||
v_errormsg := 'Controleer of het totaal van het schema past bij het contract ' || v_aanduiding;
|
||
SELECT SUM(cnt_factuurschema_bedrag)
|
||
INTO v_som
|
||
FROM aaxx_imp_factuurschema
|
||
WHERE cnt_contract_key = rec.cnt_contract_key;
|
||
|
||
IF ROUND(v_som) <> ROUND(v_contract_bedrag)
|
||
THEN
|
||
-- Totaalbedrag schema wijkt af van contract bedrag
|
||
aaxx_imp_writelog (p_import_key, 'E', 'Totaalbedrag schema wijkt af van contract bedrag ', v_aanduiding || ' [' || v_contract_bedrag || ' vs ' || v_som || ']');
|
||
v_ongeldig := 1;
|
||
END IF;
|
||
|
||
v_errormsg := 'Controleer of de boekmaand al bestaat bij dit contract ' || v_aanduiding;
|
||
BEGIN
|
||
SELECT cnt_factuurschema_key
|
||
INTO v_factuurschema_key
|
||
FROM cnt_factuurschema
|
||
WHERE cnt_factuurschema_boekmaand = rec.cnt_factuurschema_boekmaand
|
||
AND cnt_contract_key = rec.cnt_contract_key;
|
||
|
||
UPDATE cnt_factuurschema
|
||
SET cnt_factuurschema_bedrag = rec.cnt_factuurschema_bedrag,
|
||
cnt_factuurschema_opmerking = cnt_factuurschema_opmerking
|
||
WHERE cnt_factuurschema_key = v_factuurschema_key;
|
||
EXCEPTION WHEN NO_DATA_FOUND
|
||
THEN
|
||
-- Boekmaand bestaat nog niet in het schema
|
||
v_errormsg := 'Aanmaken van nieuw factuurschemaregel ' || v_aanduiding;
|
||
INSERT INTO cnt_factuurschema (cnt_contract_key, cnt_factuurschema_bedrag, cnt_factuurschema_boekmaand, cnt_factuurschema_opmerking)
|
||
VALUES (rec.cnt_contract_key, rec.cnt_factuurschema_bedrag, rec.cnt_factuurschema_boekmaand, rec.cnt_factuurschema_opmerking);
|
||
END;
|
||
EXCEPTION
|
||
WHEN OTHERS
|
||
THEN
|
||
v_error_hint := v_errormsg;
|
||
oracle_err_num := SQLCODE;
|
||
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
|
||
v_errormsg :=
|
||
v_errormsg
|
||
|| 'ORACLE (error '
|
||
|| oracle_err_num
|
||
|| '/'
|
||
|| oracle_err_mes
|
||
|| ')';
|
||
fac.imp_writelog (p_import_key,
|
||
'E',
|
||
v_errormsg,
|
||
v_error_hint);
|
||
v_ongeldig := 1;
|
||
END;
|
||
END LOOP;
|
||
|
||
IF v_ongeldig = 0
|
||
THEN
|
||
COMMIT;
|
||
ELSE
|
||
ROLLBACK;
|
||
END IF;
|
||
END;
|
||
/
|
||
|
||
--------------------------------
|
||
-- import ruimtegegevens
|
||
--------------------------------
|
||
CREATE OR REPLACE PROCEDURE aaxx_import_ruimte (
|
||
p_import_key IN NUMBER)
|
||
IS
|
||
c_fielddelimitor VARCHAR2 (1) := ';';
|
||
|
||
v_newline VARCHAR2 (4000); -- Input line
|
||
v_read VARCHAR2 (4000);
|
||
v_lastchar VARCHAR2 (1);
|
||
v_firstchar VARCHAR2 (1);
|
||
v_errormsg VARCHAR (1000);
|
||
v_hint VARCHAR (1000);
|
||
oracle_err_num NUMBER;
|
||
oracle_err_mes VARCHAR2 (200);
|
||
v_count NUMBER;
|
||
v_ongeldig NUMBER (1);
|
||
v_mode NUMBER (1);
|
||
v_aanduiding VARCHAR (200);
|
||
v_header_is_valid NUMBER (1);
|
||
|
||
-- De importvelden:
|
||
v_locatie_code VARCHAR2(100);
|
||
v_gebouw_code VARCHAR2(100);
|
||
v_verdieping_code VARCHAR2(100);
|
||
v_ruimte_key VARCHAR2(100);
|
||
v_ruimte_nr VARCHAR2(100);
|
||
v_ruimte_omschrijving VARCHAR2(100);
|
||
v_srtruimte_omschrijving VARCHAR2(100);
|
||
v_dienstniveau_omschr VARCHAR2(100);
|
||
v_ruimte_bruto_vloeropp VARCHAR2(100);
|
||
v_dummy VARCHAR2(100);
|
||
|
||
|
||
|
||
CURSOR c
|
||
IS
|
||
SELECT *
|
||
FROM fac_imp_file
|
||
WHERE fac_import_key = p_import_key
|
||
ORDER BY fac_imp_file_index;
|
||
|
||
rec c%ROWTYPE;
|
||
BEGIN
|
||
-- Eerst opruiming
|
||
|
||
DELETE FROM aaxx_imp_ruimte;
|
||
|
||
COMMIT;
|
||
|
||
v_header_is_valid := 0;
|
||
|
||
OPEN c;
|
||
|
||
IF (c%ISOPEN)
|
||
THEN
|
||
LOOP
|
||
BEGIN
|
||
v_errormsg := 'Fout FETCH te importeren rij';
|
||
|
||
FETCH c INTO rec;
|
||
|
||
EXIT WHEN c%NOTFOUND;
|
||
v_read := rec.fac_imp_file_line;
|
||
v_newline := v_read;
|
||
|
||
v_lastchar := SUBSTR (v_read, LENGTH (v_read), 1);
|
||
v_firstchar := SUBSTR (v_read, 1, 1);
|
||
|
||
-- voeg regels samen die een cr/lf bevatten.
|
||
IF v_firstchar = '"'
|
||
THEN
|
||
WHILE v_lastchar <> '"'
|
||
LOOP
|
||
BEGIN
|
||
FETCH c INTO rec;
|
||
|
||
EXIT WHEN c%NOTFOUND;
|
||
v_read := rec.fac_imp_file_line;
|
||
v_lastchar := SUBSTR (v_read, LENGTH (v_read), 1);
|
||
v_newline := v_newline || CHR (13) || CHR (10) || v_read;
|
||
END;
|
||
END LOOP;
|
||
END IF;
|
||
|
||
v_errormsg := 'Fout opvragen te importeren rij';
|
||
v_aanduiding := '';
|
||
v_ongeldig := 0;
|
||
|
||
IF (v_newline like
|
||
'LOCATIE;GEBOUW;VERDIEPING;ALG_RUIMTE_KEY;ALG_RUIMTE_NR;ALG_RUIMTE_OMSCHRIJVING;ALG_SRTRUIMTE_OMSCHRIJVING;MLD_DIENSTNIVEAU_OMSCHR;ALG_RUIMTE_BRUTO_VLOEROPP%')
|
||
THEN
|
||
v_header_is_valid := 1;
|
||
ELSE
|
||
-- Lees alle veldwaarden
|
||
v_errormsg :=
|
||
'Fout opvragen te importeren rij (alg_locatie_code) Regel [' || rec.fac_imp_file_index || ']';
|
||
fac.imp_getfield (v_newline, C_FIELDDELIMITOR, v_locatie_code);
|
||
--
|
||
v_errormsg :=
|
||
'Fout opvragen te importeren rij (alg_gebouw_code) Regel [' || rec.fac_imp_file_index || ']';
|
||
fac.imp_getfield (v_newline, C_FIELDDELIMITOR, v_gebouw_code);
|
||
--
|
||
v_errormsg :=
|
||
'Fout opvragen te importeren rij (alg_verdieping_code) Regel [' || rec.fac_imp_file_index || ']';
|
||
fac.imp_getfield (v_newline, C_FIELDDELIMITOR, v_verdieping_code);
|
||
--
|
||
v_errormsg :=
|
||
'Fout opvragen te importeren rij (alg_ruimte_key) Regel [' || rec.fac_imp_file_index || ']';
|
||
fac.imp_getfield (v_newline, C_FIELDDELIMITOR, v_ruimte_key);
|
||
--
|
||
v_errormsg :=
|
||
'Fout opvragen te importeren rij (alg_ruimte_nr) Regel [' || rec.fac_imp_file_index || ']';
|
||
fac.imp_getfield (v_newline, C_FIELDDELIMITOR, v_ruimte_nr);
|
||
--
|
||
v_errormsg :=
|
||
'Fout opvragen te importeren rij (alg_ruimte_omschrijving) Regel [' || rec.fac_imp_file_index || ']';
|
||
fac.imp_getfield (v_newline, C_FIELDDELIMITOR, v_ruimte_omschrijving);
|
||
--
|
||
v_errormsg :=
|
||
'Fout opvragen te importeren rij (alg_srtruimte_omschrijving) Regel [' || rec.fac_imp_file_index || ']';
|
||
fac.imp_getfield (v_newline, C_FIELDDELIMITOR, v_srtruimte_omschrijving);
|
||
--
|
||
v_errormsg :=
|
||
'Fout opvragen te importeren rij (mld_dienstniveau_omschr) Regel [' || rec.fac_imp_file_index || ']';
|
||
fac.imp_getfield (v_newline, C_FIELDDELIMITOR, v_dienstniveau_omschr);
|
||
--
|
||
v_errormsg :=
|
||
'Fout opvragen te importeren rij (alg_ruimte_bruto_vloeropp) Regel [' || rec.fac_imp_file_index || ']';
|
||
fac.imp_getfield (v_newline, C_FIELDDELIMITOR, v_ruimte_bruto_vloeropp);
|
||
--
|
||
-- Insert geformatteerde import record
|
||
IF v_ruimte_key IS NOT NULL
|
||
THEN
|
||
v_errormsg :=
|
||
'Fout bij toevoegen te importeren gebouw ['
|
||
|| v_gebouw_code
|
||
|| ']';
|
||
|
||
INSERT INTO aaxx_imp_ruimte(volgorde,
|
||
alg_locatie_code,
|
||
alg_gebouw_code,
|
||
alg_verdieping_code,
|
||
alg_ruimte_key,
|
||
alg_ruimte_nr,
|
||
alg_ruimte_omschrijving,
|
||
alg_srtruimte_omschrijving,
|
||
mld_dienstniveau_omschr,
|
||
alg_ruimte_bruto_vloeropp)
|
||
VALUES (rec.fac_imp_file_index,
|
||
SUBSTR(v_locatie_code, 1, 10),
|
||
SUBSTR(v_gebouw_code, 1, 12),
|
||
SUBSTR(v_verdieping_code, 1, 10),
|
||
v_ruimte_key,
|
||
SUBSTR(v_ruimte_nr, 1,10),
|
||
SUBSTR(v_ruimte_omschrijving, 1, 30),
|
||
SUBSTR(v_srtruimte_omschrijving, 1, 30),
|
||
SUBSTR(v_dienstniveau_omschr, 1, 60),
|
||
replace(v_ruimte_bruto_vloeropp, ',','.'));
|
||
END IF;
|
||
END IF;
|
||
END;
|
||
END LOOP;
|
||
END IF;
|
||
|
||
IF v_header_is_valid = 0
|
||
THEN
|
||
fac.imp_writelog (p_import_key,
|
||
'E',
|
||
v_aanduiding || 'Ongeldig importbestand',
|
||
'Toelichting: ... ');
|
||
END IF;
|
||
|
||
|
||
COMMIT;
|
||
EXCEPTION
|
||
WHEN OTHERS
|
||
THEN
|
||
oracle_err_num := SQLCODE;
|
||
v_hint := v_errormsg;
|
||
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
|
||
v_errormsg :=
|
||
'OTHERS (error ' || oracle_err_num || '/' || oracle_err_mes || ')';
|
||
fac.imp_writelog (p_import_key,
|
||
'E',
|
||
v_errormsg,
|
||
v_hint);
|
||
END aaxx_import_ruimte;
|
||
/
|
||
|
||
|
||
CREATE OR REPLACE PROCEDURE aaxx_update_ruimte (p_import_key IN NUMBER)
|
||
AS
|
||
CURSOR c
|
||
IS
|
||
SELECT *
|
||
FROM aaxx_imp_ruimte
|
||
ORDER BY volgorde;
|
||
|
||
v_aanduiding VARCHAR2 (200);
|
||
v_errormsg VARCHAR (1000);
|
||
v_error NUMBER (1);
|
||
v_error_hint VARCHAR (1000);
|
||
oracle_err_mes VARCHAR2 (150);
|
||
oracle_err_num VARCHAR2 (150);
|
||
currentversion fac_module.fac_module_version%TYPE;
|
||
v_srtruimte_key NUMBER;
|
||
v_dienstniveau_key NUMBER;
|
||
BEGIN
|
||
v_error := 0;
|
||
|
||
SELECT MAX (fac_module_version) INTO currentversion FROM fac_module;
|
||
|
||
fac.imp_writelog (
|
||
p_import_key,
|
||
'I',
|
||
'AAFM Ruimte update version ' || currentversion,
|
||
'$Revision$');
|
||
|
||
FOR rec IN c
|
||
LOOP
|
||
BEGIN
|
||
v_aanduiding :=
|
||
'regel['
|
||
|| rec.volgorde
|
||
|| '] plaats: '
|
||
|| rec.alg_locatie_code || '-'
|
||
|| rec.alg_gebouw_code || '-'
|
||
|| rec.alg_verdieping_code || '-'
|
||
|| rec.alg_ruimte_nr;
|
||
|
||
v_error_hint := 'Controle op ruimtesoort';
|
||
|
||
v_srtruimte_key := NULL;
|
||
IF rec.alg_srtruimte_omschrijving IS NOT NULL
|
||
THEN
|
||
SELECT alg_srtruimte_key
|
||
INTO v_srtruimte_key
|
||
FROM alg_srtruimte
|
||
WHERE alg_srtruimte_verwijder IS NULL
|
||
AND alg_srtruimte_upper = UPPER (rec.alg_srtruimte_omschrijving);
|
||
END IF;
|
||
|
||
v_error_hint := 'Controle op dienstniveau';
|
||
|
||
v_dienstniveau_key := NULL;
|
||
IF rec.mld_dienstniveau_omschr IS NOT NULL
|
||
THEN
|
||
SELECT mld_dienstniveau_key
|
||
INTO v_dienstniveau_key
|
||
FROM mld_dienstniveau
|
||
WHERE UPPER (TRIM (mld_dienstniveau_omschr)) = UPPER (TRIM (rec.mld_dienstniveau_omschr));
|
||
END IF;
|
||
|
||
v_error_hint := 'Aanpassen ruimtegegevens.';
|
||
UPDATE alg_ruimte SET alg_ruimte_nr = rec.alg_ruimte_nr,
|
||
alg_ruimte_omschrijving = rec.alg_ruimte_omschrijving,
|
||
alg_srtruimte_key = v_srtruimte_key,
|
||
mld_dienstniveau_key = v_dienstniveau_key,
|
||
alg_ruimte_bruto_vloeropp = rec.alg_ruimte_bruto_vloeropp
|
||
WHERE alg_ruimte_key = rec.alg_ruimte_key;
|
||
|
||
EXCEPTION
|
||
WHEN OTHERS
|
||
THEN
|
||
oracle_err_num := SQLCODE;
|
||
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
|
||
IF oracle_err_num = -1422 THEN oracle_err_mes := 'Controle levert meer dan <20><>n resultaat op.'; END IF;
|
||
IF oracle_err_num = 100 THEN oracle_err_mes := 'Controle levert geen resultaat op.'; END IF;
|
||
v_errormsg :=
|
||
'OTHERS (error '
|
||
|| oracle_err_num
|
||
|| '/'
|
||
|| oracle_err_mes
|
||
|| ')';
|
||
aaxx_imp_writelog (p_import_key,
|
||
'E',
|
||
v_errormsg,
|
||
v_error_hint || ' - ' || v_aanduiding);
|
||
v_error := 1;
|
||
END;
|
||
END LOOP;
|
||
|
||
IF v_error = 0
|
||
THEN
|
||
COMMIT;
|
||
ELSE
|
||
ROLLBACK;
|
||
END IF;
|
||
|
||
EXCEPTION
|
||
WHEN OTHERS
|
||
THEN
|
||
ROLLBACK;
|
||
oracle_err_num := SQLCODE;
|
||
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
|
||
v_errormsg :=
|
||
'OTHERS (error ' || oracle_err_num || '/' || oracle_err_mes || ')';
|
||
fac.imp_writelog (p_import_key,
|
||
'E',
|
||
v_errormsg,
|
||
v_error_hint || ' - ' || v_aanduiding);
|
||
COMMIT;
|
||
END;
|
||
/
|
||
|
||
|
||
-------------------------------------------------------------------------------
|
||
-- IMPORTFUNCTIE - Import uplift
|
||
-------------------------------------------------------------------------------
|
||
CREATE OR REPLACE VIEW aaxx_v_rap_uplift (
|
||
jaar,
|
||
maand,
|
||
kostensoort,
|
||
soort_order,
|
||
leverancier,
|
||
nummer,
|
||
uplift
|
||
)
|
||
AS
|
||
SELECT jaar,
|
||
maand,
|
||
prs_kostensoort_oms,
|
||
soort_order,
|
||
prs_bedrijf_naam,
|
||
prs_leverancier_nr,
|
||
uplift
|
||
FROM aaxx_imp_uplift;
|
||
|
||
CREATE OR REPLACE PROCEDURE aaxx_import_uplift (
|
||
p_import_key IN NUMBER
|
||
)
|
||
AS
|
||
CURSOR c_cursor
|
||
IS
|
||
SELECT *
|
||
FROM fac_imp_file
|
||
WHERE fac_import_key = p_import_key
|
||
ORDER BY fac_imp_file_index;
|
||
|
||
v_newline VARCHAR2 (1000);
|
||
v_aanduiding VARCHAR2 (1000); -- Import line
|
||
v_field VARCHAR2 (100); -- Import field
|
||
v_fielddelimitor VARCHAR2 (1); -- Field seperator
|
||
v_errormsg VARCHAR (200);
|
||
v_errorhint VARCHAR (200);
|
||
v_count NUMBER;
|
||
oracle_err_num NUMBER;
|
||
oracle_err_mes VARCHAR2 (200);
|
||
v_skipfield VARCHAR2 (100);
|
||
-- De importvelden
|
||
v_jaar VARCHAR2 (100);
|
||
v_maand VARCHAR2 (100);
|
||
v_prs_kostensoort_oms VARCHAR2 (100);
|
||
v_soort_order VARCHAR2 (100);
|
||
v_prs_bedrijf_naam VARCHAR2 (100);
|
||
v_prs_leverancier_nr VARCHAR2 (100);
|
||
v_uplift VARCHAR2 (100);
|
||
header_found BOOLEAN;
|
||
|
||
BEGIN
|
||
-- Eerst opruiming
|
||
|
||
-- Init
|
||
header_found := FALSE;
|
||
v_fielddelimitor := ';';
|
||
|
||
FOR rec1 IN c_cursor
|
||
LOOP
|
||
BEGIN
|
||
v_newline := rec1.fac_imp_file_line;
|
||
v_aanduiding := v_newline;
|
||
|
||
IF SUBSTR (v_newline, 1, 3) = '?'
|
||
THEN
|
||
-- EF BB BF aangetroffen
|
||
fac.imp_writelog (p_import_key,
|
||
'W',
|
||
'Byte Order Mark aangetroffen',
|
||
'Bestand heeft onbehandeld UTF-8 formaat.'
|
||
);
|
||
v_newline := SUBSTR (v_newline, 4);
|
||
END IF;
|
||
|
||
fac.imp_getfield (v_newline, v_fielddelimitor, v_jaar);
|
||
fac.imp_getfield (v_newline, v_fielddelimitor, v_maand);
|
||
fac.imp_getfield (v_newline, v_fielddelimitor, v_prs_kostensoort_oms);
|
||
fac.imp_getfield (v_newline, v_fielddelimitor, v_soort_order);
|
||
fac.imp_getfield (v_newline, v_fielddelimitor, v_prs_bedrijf_naam);
|
||
fac.imp_getfield (v_newline, v_fielddelimitor, v_prs_leverancier_nr);
|
||
fac.imp_getfield (v_newline, v_fielddelimitor, v_uplift);
|
||
|
||
-- Skip until a valid header is found
|
||
IF UPPER(v_jaar) = 'JAAR'
|
||
AND UPPER(v_maand) = 'MAAND'
|
||
AND UPPER(v_prs_kostensoort_oms) = 'KOSTENSOORT'
|
||
AND UPPER(v_prs_leverancier_nr) = 'NUMMER'
|
||
AND UPPER(v_uplift) = 'UPLIFT'
|
||
THEN
|
||
-- Sla de kopregel over.
|
||
header_found := TRUE;
|
||
ELSIF (header_found AND v_jaar IS NOT NULL)
|
||
THEN
|
||
-- voeg nieuwe records toe
|
||
-- en wijzig bestaande records
|
||
|
||
-- ken ik de combinatie van jaar,maand, kostensoort, en leveranciernummer al?
|
||
SELECT count(*)
|
||
INTO v_count
|
||
FROM aaxx_imp_uplift
|
||
WHERE jaar = v_jaar
|
||
AND maand = v_maand
|
||
AND prs_kostensoort_oms = v_prs_kostensoort_oms
|
||
AND soort_order = v_soort_order
|
||
AND prs_leverancier_nr = v_prs_leverancier_nr;
|
||
|
||
IF v_count > 0 THEN
|
||
-- update de bestaande record(s)
|
||
UPDATE aaxx_imp_uplift
|
||
SET uplift = fac.safe_to_number (REPLACE(v_uplift,',','.'))
|
||
WHERE jaar = v_jaar
|
||
AND maand = v_maand
|
||
AND soort_order = v_soort_order
|
||
AND prs_kostensoort_oms = v_prs_kostensoort_oms
|
||
AND prs_leverancier_nr = v_prs_leverancier_nr;
|
||
ELSE
|
||
-- voeg nieuwe records toe
|
||
INSERT INTO aaxx_imp_uplift
|
||
(jaar,
|
||
maand,
|
||
prs_kostensoort_oms,
|
||
soort_order,
|
||
prs_bedrijf_naam,
|
||
prs_leverancier_nr,
|
||
uplift)
|
||
VALUES (fac.safe_to_number (v_jaar),
|
||
fac.safe_to_number (v_maand),
|
||
v_prs_kostensoort_oms,
|
||
v_soort_order,
|
||
v_prs_bedrijf_naam,
|
||
v_prs_leverancier_nr,
|
||
fac.safe_to_number (REPLACE(v_uplift,',','.')));
|
||
|
||
END IF;
|
||
SELECT count(*)
|
||
INTO v_count
|
||
FROM prs_bedrijf
|
||
WHERE prs_leverancier_nr = v_prs_leverancier_nr;
|
||
IF v_count = 0 THEN
|
||
fac.imp_writelog (p_import_key,
|
||
'W',
|
||
'Geen leverancier met nummer ['||v_prs_leverancier_nr||'] gevonden',
|
||
''
|
||
);
|
||
END IF;
|
||
SELECT count(*)
|
||
INTO v_count
|
||
FROM prs_kostensoort
|
||
WHERE prs_kostensoort_upper = upper(v_prs_kostensoort_oms);
|
||
IF v_count = 0 THEN
|
||
fac.imp_writelog (p_import_key,
|
||
'W',
|
||
'Geen kostensoort met code ['||v_prs_kostensoort_oms ||'] gevonden',
|
||
''
|
||
);
|
||
END IF;
|
||
END IF;
|
||
|
||
COMMIT;
|
||
END;
|
||
END LOOP;
|
||
|
||
IF NOT header_found
|
||
THEN
|
||
fac.imp_writelog (p_import_key,
|
||
'E',
|
||
'Geen geldige header aangetroffen',
|
||
'Bestand is geen geldig ruimtesoort importbestand.'
|
||
);
|
||
END IF;
|
||
EXCEPTION
|
||
WHEN OTHERS
|
||
THEN
|
||
oracle_err_num := SQLCODE;
|
||
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
|
||
v_errormsg := 'OTHERS (error ' || oracle_err_num || '/' || oracle_err_mes || ')';
|
||
fac.imp_writelog (p_import_key, 'E', SUBSTR (v_errormsg, 1, 1000), v_aanduiding);
|
||
-- maak de importtabel leeg om te voorkomen dat er halve bestanden ingelezen worden.
|
||
END;
|
||
/
|
||
|
||
|
||
CREATE OR REPLACE PROCEDURE aaxx_update_uplift (p_import_key IN NUMBER)
|
||
AS
|
||
BEGIN
|
||
NULL;
|
||
END;
|
||
/
|
||
|
||
-------------------------------------------------------------------------------
|
||
-- Importfunctie om elementen op te voeren voor assetmanagement
|
||
--
|
||
--
|
||
-------------------------------------------------------------------------------
|
||
CREATE OR REPLACE PROCEDURE aaxx_import_asset (p_import_key IN NUMBER)
|
||
AS
|
||
|
||
CURSOR c_disc
|
||
IS
|
||
SELECT DISTINCT i.ins_discipline_omschrijving
|
||
FROM fac_imp_ins i
|
||
WHERE NOT EXISTS
|
||
( SELECT ins_discipline_key
|
||
FROM ins_discipline d
|
||
WHERE UPPER(d.ins_discipline_omschrijving) = UPPER(i.ins_discipline_omschrijving));
|
||
|
||
CURSOR c_srtgroep
|
||
IS
|
||
SELECT DISTINCT i.ins_discipline_omschrijving, i.ins_srtgroep_omschrijving
|
||
FROM fac_imp_ins i
|
||
WHERE NOT EXISTS
|
||
( SELECT d.ins_discipline_key
|
||
FROM ins_discipline d, ins_srtgroep sg
|
||
WHERE sg.ins_discipline_key = d.ins_discipline_key
|
||
AND UPPER(sg.ins_srtgroep_omschrijving) = UPPER(i.ins_srtgroep_omschrijving)
|
||
AND UPPER(d.ins_discipline_omschrijving) = UPPER(i.ins_discipline_omschrijving));
|
||
|
||
CURSOR c_srtdeel
|
||
IS
|
||
SELECT DISTINCT i.ins_discipline_omschrijving, i.ins_srtgroep_omschrijving, i.ins_srtdeel_omschrijving, i.ins_srtdeel_code
|
||
FROM fac_imp_ins i
|
||
WHERE NOT EXISTS
|
||
( SELECT d.ins_discipline_key
|
||
FROM ins_discipline d, ins_srtgroep sg, ins_srtdeel sd
|
||
WHERE sg.ins_discipline_key = d.ins_discipline_key
|
||
AND sd.ins_srtgroep_key = sg.ins_srtgroep_key
|
||
AND UPPER(sd.ins_srtdeel_omschrijving||'-'||sd.ins_srtdeel_code) = UPPER(i.ins_srtdeel_omschrijving || '-' || i.ins_srtdeel_code)
|
||
AND UPPER(sg.ins_srtgroep_omschrijving) = UPPER(i.ins_srtgroep_omschrijving)
|
||
AND UPPER(d.ins_discipline_omschrijving) = UPPER(i.ins_discipline_omschrijving));
|
||
|
||
BEGIN
|
||
fac_import_ins(p_import_key);
|
||
|
||
-- controleer of de discipline, groep en objectsoort wel bestaan.
|
||
FOR rec IN c_disc
|
||
LOOP
|
||
fac.imp_writelog (p_import_key, 'E', 'Discipline bestaat nog niet', rec.ins_discipline_omschrijving);
|
||
END LOOP;
|
||
|
||
FOR rec IN c_srtgroep
|
||
LOOP
|
||
fac.imp_writelog (p_import_key, 'E', 'Groep bestaat nog niet', rec.ins_discipline_omschrijving || ' / ' || rec.ins_srtgroep_omschrijving);
|
||
END LOOP;
|
||
|
||
FOR rec IN c_srtdeel
|
||
LOOP
|
||
fac.imp_writelog (p_import_key, 'E', 'Objectsoort bestaat nog niet', rec.ins_discipline_omschrijving || ' / ' || rec.ins_srtgroep_omschrijving || ' / ' || rec.ins_srtdeel_code || ' ' || rec.ins_srtdeel_omschrijving);
|
||
END LOOP;
|
||
|
||
END;
|
||
/
|
||
|
||
|
||
|
||
CREATE OR REPLACE PROCEDURE aaxx_update_asset (p_import_key IN NUMBER)
|
||
AS
|
||
v_count NUMBER;
|
||
BEGIN
|
||
SELECT count(*)
|
||
INTO v_count
|
||
FROM imp_log
|
||
WHERE fac_import_key = p_import_key
|
||
AND imp_log_status = 'E';
|
||
|
||
IF v_count = 0
|
||
THEN
|
||
fac_update_ins(p_import_key);
|
||
ELSE
|
||
fac.imp_writelog (p_import_key, 'E', 'Verwerk actie niet uitgevoerd ivm fouten in bestand', '');
|
||
END IF;
|
||
END;
|
||
/
|
||
|
||
-- Overzicht met geplande en uitgevoerde inspecties.
|
||
CREATE OR REPLACE VIEW aaxx_v_rap_asset_insp
|
||
(
|
||
ins_deel_key,
|
||
ins_discipline_omschrijving,
|
||
ins_srtgroep_omschrijving,
|
||
ins_srtdeel_code,
|
||
ins_deel_omschrijving,
|
||
alg_locatie_plaats,
|
||
alg_locatie_omschrijving,
|
||
alg_gebouw_omschrijving,
|
||
alg_plaatsaanduiding,
|
||
ins_srtcontrole_omschrijving,
|
||
volgende_controle,
|
||
laatste_controle,
|
||
gepland_controle
|
||
)
|
||
AS
|
||
SELECT idg.ins_deel_key,
|
||
idg.ins_discipline_omschrijving,
|
||
idg.ins_srtgroep_omschrijving,
|
||
idg.ins_srtdeel_upper,
|
||
idg.ins_deel_omschrijving,
|
||
l.alg_locatie_plaats,
|
||
l.alg_locatie_omschrijving,
|
||
idg.alg_gebouw_omschrijving,
|
||
idg.alg_plaatsaanduiding,
|
||
idg.ins_srtcontrole_omschrijving,
|
||
idg.nextdate,
|
||
DECODE (TRUNC (idg.ins_deel_aanmaak),
|
||
TRUNC (dc.ins_deelsrtcontrole_datum), TO_DATE (NULL),
|
||
dc.ins_deelsrtcontrole_datum)
|
||
uitgevoerd_op,
|
||
dc.ins_deelsrtcontrole_plandatum
|
||
gepland_op
|
||
FROM (SELECT i.*,
|
||
sc.*,
|
||
fac.nextcyclusdatedeel (i.ins_deel_key,
|
||
sc.ins_srtcontrole_key,
|
||
1)
|
||
nextdate,
|
||
(SELECT dsc.ins_deelsrtcontrole_key
|
||
FROM ins_deelsrtcontrole dsc
|
||
WHERE dsc.ins_deel_key = i.ins_deel_key
|
||
AND dsc.ins_srtcontrole_key = sc.ins_srtcontrole_key
|
||
AND NOT EXISTS
|
||
(SELECT dsc1.ins_deelsrtcontrole_key
|
||
FROM ins_deelsrtcontrole dsc1
|
||
WHERE dsc.ins_deel_key = dsc1.ins_deel_key
|
||
AND dsc.ins_srtcontrole_key =
|
||
dsc1.ins_srtcontrole_key
|
||
AND dsc1.ins_deelsrtcontrole_key >
|
||
dsc.ins_deelsrtcontrole_key))
|
||
ins_deelsrtcontrole_key1
|
||
FROM ins_v_deel_gegevens i,
|
||
ins_srtcontrole sc,
|
||
ins_srtcontroledl_xcp xcp
|
||
WHERE i.ins_discipline_key = sc.ins_srtinstallatie_key
|
||
AND i.ins_deel_key = xcp.ins_deel_key
|
||
AND sc.ins_srtcontrole_key = xcp.ins_srtcontrole_key) idg,
|
||
ins_deelsrtcontrole dc,
|
||
alg_locatie l
|
||
WHERE idg.ins_deelsrtcontrole_key1 = dc.ins_deelsrtcontrole_key(+)
|
||
AND idg.alg_locatie_key = l.alg_locatie_key
|
||
ORDER BY fac.safe_to_number (ins_deel_omschrijving);
|
||
|
||
-------------------------------------------------------------------------------
|
||
-- Importfunctie om contactpersonen bij bedrijven toe te voegen aan FACILITOR
|
||
--
|
||
--
|
||
-------------------------------------------------------------------------------
|
||
CREATE OR REPLACE PROCEDURE aaxx_import_contactpersoon (p_import_key IN NUMBER)
|
||
AS
|
||
oracle_err_num NUMBER;
|
||
oracle_err_mes VARCHAR2 (200);
|
||
v_errormsg VARCHAR2 (400);
|
||
v_errorhint VARCHAR2 (400);
|
||
v_count NUMBER;
|
||
BEGIN
|
||
|
||
v_errorhint := 'Generieke update';
|
||
-- de sequence array staat beschreven in FAC_PACF.SRC bij de fac_import_perslid_upd_body proc
|
||
prs.import_perslid (p_import_key,
|
||
'0;0;0;0;0;0;1;2;3;5;' ||
|
||
'4;0;0;0;0;7;8;9;0;11;' ||
|
||
'10;12;13;6;0;0;14;15;0;0;'||
|
||
'0;0;0;0;0;0;0;0;0;0;'||
|
||
'0;0;0;0;0;0',
|
||
'Afdelingscode;PersoonAchternaam;Tussenvoegsel;Voorletters;Voornaam;Titel/Aanhef;Telefoonnummer;Mobiel;Email;Functie;Personeelsnummer;Loginnaam;Password;Bedrijf;Autorisatieprofiel%'
|
||
);
|
||
|
||
-- Klantspecifieke aanpassingen
|
||
v_errorhint := 'Controle op Bedrijf';
|
||
FOR rec IN (SELECT distinct prs_kenmerk1 FROM fac_imp_perslid)
|
||
LOOP
|
||
IF rec.prs_kenmerk1 IS NOT NULL
|
||
THEN
|
||
SELECT count(*)
|
||
INTO v_count
|
||
FROM prs_bedrijf
|
||
WHERE prs_bedrijf_verwijder IS NULL
|
||
AND UPPER(prs_bedrijf_naam) = upper(rec.prs_kenmerk1);
|
||
|
||
IF v_count <> 1
|
||
THEN
|
||
fac.imp_writelog (p_import_key, 'E', 'Bedrijf: ' || rec.prs_kenmerk1 || ' komt ' || v_count || ' keer voor in de lijst met bedrijven.', v_errorhint);
|
||
END IF;
|
||
END IF;
|
||
END LOOP;
|
||
|
||
v_errorhint := 'Controle op Autorisatieprofiel';
|
||
FOR rec IN (SELECT prs_kenmerk2 FROM fac_imp_perslid)
|
||
LOOP
|
||
IF rec.prs_kenmerk2 IS NOT NULL
|
||
THEN
|
||
SELECT count(*)
|
||
INTO v_count
|
||
FROM fac_groep
|
||
WHERE upper(fac_groep_omschrijving) = upper(rec.prs_kenmerk2);
|
||
|
||
IF v_count <> 1
|
||
THEN
|
||
fac.imp_writelog (p_import_key, 'E', 'Autorisatieprofiel: ' || rec.prs_kenmerk2 || ' komt ' || v_count || ' keer voor in de lijst met autorisatieprofielen.', v_errorhint);
|
||
END IF;
|
||
END IF;
|
||
END LOOP;
|
||
|
||
COMMIT;
|
||
EXCEPTION
|
||
WHEN OTHERS
|
||
THEN
|
||
oracle_err_num := SQLCODE;
|
||
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
|
||
v_errormsg := 'Error ' || oracle_err_num || '/' || oracle_err_mes;
|
||
fac.imp_writelog (p_import_key, 'E', v_errormsg, v_errorhint);
|
||
END aaxx_import_contactpersoon;
|
||
/
|
||
|
||
|
||
CREATE OR REPLACE PROCEDURE aaxx_update_contactpersoon (
|
||
p_import_key IN NUMBER)
|
||
IS
|
||
CURSOR c
|
||
IS
|
||
SELECT * FROM fac_imp_perslid;
|
||
|
||
v_count NUMBER;
|
||
v_perslid_key NUMBER;
|
||
v_bedrijf_key NUMBER;
|
||
v_groep_key NUMBER;
|
||
oracle_err_num NUMBER;
|
||
oracle_err_mes VARCHAR2 (200);
|
||
v_errormsg VARCHAR2 (400);
|
||
v_errorhint VARCHAR2 (400);
|
||
BEGIN
|
||
-- generic update
|
||
prs.update_perslid (p_import_key, 'NR', 'A');
|
||
|
||
FOR rec IN c
|
||
LOOP
|
||
BEGIN
|
||
v_errorhint := 'Zoek aangemaakt persoon.';
|
||
|
||
SELECT MAX (prs_perslid_key)
|
||
INTO v_perslid_key
|
||
FROM prs_perslid p
|
||
WHERE rec.prs_perslid_naam = p.prs_perslid_naam
|
||
AND COALESCE (rec.prs_perslid_voornaam, 'Voornaam') =
|
||
COALESCE (p.prs_perslid_voornaam, 'Voornaam')
|
||
AND COALESCE (rec.prs_perslid_tussenvoegsel, 'Tussenvoegsel') =
|
||
COALESCE (p.prs_perslid_tussenvoegsel, 'Tussenvoegsel')
|
||
AND COALESCE (rec.prs_perslid_voorletters, 'Voorletters') =
|
||
COALESCE (p.prs_perslid_voorletters, 'Voorletters')
|
||
AND p.prs_perslid_aanmaak > SYSDATE - 1
|
||
AND p.prs_perslid_verwijder IS NULL;
|
||
|
||
IF v_perslid_key IS NULL
|
||
THEN
|
||
fac.imp_writelog (
|
||
p_import_key,
|
||
'E',
|
||
'Persoon: '
|
||
|| rec.prs_perslid_naam
|
||
|| '-'
|
||
|| rec.prs_perslid_voornaam
|
||
|| '-'
|
||
|| rec.prs_perslid_voorletters
|
||
|| ' kan niet gevonden worden.',
|
||
v_errorhint);
|
||
ELSE
|
||
v_errorhint := 'Zoek bedrijf.';
|
||
|
||
SELECT MAX (prs_bedrijf_key)
|
||
INTO v_bedrijf_key
|
||
FROM prs_bedrijf
|
||
WHERE prs_bedrijf_verwijder IS NULL
|
||
AND UPPER (prs_bedrijf_naam) = UPPER (rec.prs_kenmerk1);
|
||
|
||
IF v_bedrijf_key IS NULL
|
||
THEN
|
||
fac.imp_writelog (
|
||
p_import_key,
|
||
'E',
|
||
'Bedrijf: ' || rec.prs_kenmerk1 || ' kan niet gevonden worden.',
|
||
v_errorhint);
|
||
ELSE
|
||
INSERT INTO prs_contactpersoon (prs_contactpersoon_naam,
|
||
prs_contactpersoon_tussenv,
|
||
prs_contactpersoon_voorletters,
|
||
prs_contactpersoon_voornaam,
|
||
prs_contactpersoon_titel,
|
||
prs_contactpersoon_telefoon_1,
|
||
prs_contactpersoon_telefoon_2,
|
||
prs_contactpersoon_email,
|
||
prs_perslid_key,
|
||
prs_bedrijf_key)
|
||
VALUES (rec.prs_perslid_naam,
|
||
rec.prs_perslid_tussenvoegsel,
|
||
rec.prs_perslid_voorletters,
|
||
rec.prs_perslid_voornaam,
|
||
rec.prs_perslid_titel,
|
||
rec.prs_perslid_telefoonnr,
|
||
rec.prs_perslid_mobiel,
|
||
rec.prs_perslid_email,
|
||
v_perslid_key,
|
||
v_bedrijf_key);
|
||
|
||
v_errorhint := 'Zoek autorisatiegroep.';
|
||
|
||
SELECT MAX (fac_groep_key)
|
||
INTO v_groep_key
|
||
FROM fac_groep
|
||
WHERE UPPER (rec.prs_kenmerk2) = UPPER (fac_groep_omschrijving);
|
||
|
||
IF v_groep_key IS NULL
|
||
THEN
|
||
fac.imp_writelog (
|
||
p_import_key,
|
||
'E',
|
||
'Autorisatiegroep: '
|
||
|| rec.prs_kenmerk2
|
||
|| ' kan niet gevonden worden.',
|
||
v_errorhint);
|
||
ELSE
|
||
INSERT INTO fac_gebruikersgroep (prs_perslid_key,
|
||
fac_groep_key)
|
||
VALUES (v_perslid_key, v_groep_key);
|
||
END IF;
|
||
END IF;
|
||
END IF;
|
||
END;
|
||
END LOOP;
|
||
EXCEPTION
|
||
WHEN OTHERS
|
||
THEN
|
||
oracle_err_num := SQLCODE;
|
||
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
|
||
v_errormsg := 'Error ' || oracle_err_num || '/' || oracle_err_mes;
|
||
fac.imp_writelog (p_import_key,
|
||
'E',
|
||
v_errormsg,
|
||
v_errorhint);
|
||
END aaxx_update_contactpersoon;
|
||
/
|
||
|
||
|
||
|
||
-------------------------------------------------------------------------------
|
||
-- Importfunctie om personen die gedefinieerd zijn in de AAIT database ook in
|
||
-- de klantdatabase toe te voegen.
|
||
-- kenmerk_key 4 = prs_perslid_key in AAIT database
|
||
-- kenmerk_key 3 = personeelsnummer in AAIT
|
||
-- kenmerk_key 2 = kostenplaats in AD
|
||
-------------------------------------------------------------------------------
|
||
CREATE OR REPLACE PROCEDURE aaxx_import_aafm_medewerkers (
|
||
p_import_key IN NUMBER)
|
||
AS
|
||
BEGIN
|
||
NULL;
|
||
END;
|
||
/
|
||
|
||
CREATE OR REPLACE PROCEDURE aaxx_update_aafm_medewerkers (
|
||
p_import_key IN NUMBER)
|
||
AS
|
||
CURSOR c
|
||
IS
|
||
SELECT afdelingscode,
|
||
persoonachternaam,
|
||
tussenvoegsel,
|
||
voorletters,
|
||
voornaam,
|
||
titel,
|
||
telefoonnummer,
|
||
mobiel,
|
||
email,
|
||
functie,
|
||
loginnaam,
|
||
personeelsnummer,
|
||
dienstverband,
|
||
uurloon,
|
||
uurloon_intern,
|
||
kostenplaats,
|
||
prs_perslid_apikey,
|
||
i.prs_perslid_key prs_perslid_key_aait,
|
||
p.prs_perslid_key,
|
||
p.prs_perslid_nr,
|
||
(SELECT gg.prs_perslid_key
|
||
FROM fac_gebruikersgroep gg, fac_groep g
|
||
WHERE gg.fac_groep_key = g.fac_groep_key
|
||
AND g.fac_groep_externid = 'BO_SERVICEDESK'
|
||
AND gg.prs_perslid_key = i.prs_perslid_key
|
||
GROUP BY gg.prs_perslid_key)
|
||
prs_perslid_key_sd -- deze medewerker is lid van heyday servicedesk en zal bij distributie automatisch ook in de klant-autorisatiegroep 'BO_SERVICEDESK' gezet worden (zie ticket AAIT#89829)
|
||
FROM aait.aait_imp_perslid i,
|
||
(SELECT prs_perslid_key,
|
||
prs_perslid_nr,
|
||
prs_kenmerklink_waarde aait_prs_perslid_key
|
||
FROM prs_perslid p, prs_kenmerklink kl
|
||
WHERE p.prs_perslid_key = kl.prs_link_key
|
||
AND kl.prs_kenmerk_key = 4
|
||
AND p.prs_perslid_verwijder IS NULL
|
||
AND kl.prs_kenmerklink_verwijder IS NULL) p
|
||
WHERE i.prs_perslid_key = p.aait_prs_perslid_key(+)
|
||
AND i.prs_perslid_key IS NOT NULL
|
||
AND ( INSTR(UPPER(i.distributie), SUBSTR (USER, 1, 4)) > 0 -- persoon moet gedistribueerd worden over deze Heyday omgeving
|
||
OR INSTR(i.distributie, '*') > 0) -- persoon moet gedistribueerd worden over alle Heyday omgevingen
|
||
AND i.personeelsnummer <> 'N/A';
|
||
|
||
CURSOR c_del
|
||
IS
|
||
SELECT prs_perslid_key,
|
||
prs_perslid_naam,
|
||
prs_perslid_voornaam,
|
||
prs_perslid_login,
|
||
prs_afdeling_omschrijving,
|
||
klo.prs_kenmerklink_waarde nr
|
||
FROM prs_perslid p, prs_kenmerklink klo, prs_afdeling a
|
||
WHERE p.prs_perslid_key = klo.prs_link_key
|
||
AND p.prs_afdeling_key = a.prs_afdeling_key
|
||
AND prs_kenmerk_key = 3 -- personeelsnummer AAFM
|
||
AND prs_perslid_verwijder IS NULL
|
||
AND NOT EXISTS
|
||
(SELECT prs_kenmerklink_key
|
||
FROM prs_kenmerklink kl, aait.aait_imp_perslid i
|
||
WHERE kl.prs_link_key = p.prs_perslid_key AND prs_kenmerk_key = 4 -- prs_perslid_key in AAIT
|
||
AND ( INSTR(UPPER(i.distributie), SUBSTR (USER, 1, 4)) > 0 -- persoon moet gedistribueerd worden over deze Heyday omgeving
|
||
OR INSTR(i.distributie, '*') > 0) -- persoon moet gedistribueerd worden over alle Heyday omgevingen
|
||
AND fac.safe_to_number(kl.prs_kenmerklink_waarde) = i.prs_perslid_key);
|
||
|
||
v_count NUMBER;
|
||
v_prs_bedrijf_key NUMBER;
|
||
v_prs_bedrijf_naam VARCHAR2 (100);
|
||
v_prs_afdeling_key NUMBER;
|
||
v_prs_srtperslid_key NUMBER;
|
||
v_prs_perslid_key NUMBER;
|
||
v_fac_groep_key NUMBER;
|
||
v_fac_default_key NUMBER;
|
||
v_errormsg VARCHAR2 (1000);
|
||
v_error_hint VARCHAR2 (1000);
|
||
oracle_err_num NUMBER;
|
||
oracle_err_mes VARCHAR2 (2000);
|
||
BEGIN
|
||
|
||
v_errormsg := 'Controle of importbestand goed gevuld is.';
|
||
SELECT COUNT(*)
|
||
INTO v_count
|
||
FROM aait.aait_imp_perslid
|
||
WHERE prs_perslid_key IS NOT NULL;
|
||
|
||
IF v_count < 200 THEN
|
||
fac.imp_writelog (p_import_key, 'E', 'Import bestand bevat te weinig (' || v_count || ') records.', '');
|
||
RETURN;
|
||
END IF;
|
||
|
||
v_prs_bedrijf_naam := 'HEYDAY Facility Management';
|
||
|
||
v_errormsg := 'Check of autorisatiegroep al bestaat';
|
||
BEGIN
|
||
SELECT fac_groep_key
|
||
INTO v_fac_groep_key
|
||
FROM fac_groep
|
||
WHERE UPPER (fac_groep_omschrijving) = 'HEYDAY MEDEWERKER';
|
||
EXCEPTION
|
||
WHEN NO_DATA_FOUND
|
||
THEN
|
||
INSERT INTO fac_groep (fac_groep_omschrijving)
|
||
VALUES ('HEYDAY Medewerker')
|
||
RETURNING fac_groep_key
|
||
INTO v_fac_groep_key;
|
||
END;
|
||
|
||
v_errormsg := 'Zoek de default groep';
|
||
BEGIN
|
||
SELECT fac_groep_key
|
||
INTO v_fac_default_key
|
||
FROM fac_groep
|
||
WHERE UPPER (fac_groep_omschrijving) = '_DEFAULT';
|
||
EXCEPTION
|
||
WHEN NO_DATA_FOUND
|
||
THEN
|
||
fac.imp_writelog (p_import_key,
|
||
'E',
|
||
'Defaultgroep kan niet gevonden worden.' ,
|
||
'');
|
||
END;
|
||
|
||
-- Check of bedrijf HEYDAY Facility Management al bestaat
|
||
v_errormsg := 'Check of bedrijf bestaat';
|
||
|
||
BEGIN
|
||
SELECT prs_bedrijf_key
|
||
INTO v_prs_bedrijf_key
|
||
FROM prs_bedrijf
|
||
WHERE prs_bedrijf_naam_upper = UPPER(v_prs_bedrijf_naam)
|
||
AND prs_bedrijf_intern = 1
|
||
AND prs_bedrijf_verwijder IS NULL;
|
||
EXCEPTION
|
||
WHEN NO_DATA_FOUND
|
||
THEN
|
||
INSERT INTO prs_bedrijf (prs_bedrijf_naam, prs_bedrijf_intern)
|
||
VALUES (v_prs_bedrijf_naam, 1)
|
||
RETURNING prs_bedrijf_key
|
||
INTO v_prs_bedrijf_key;
|
||
END;
|
||
|
||
-- Check of afdeling HEYDAY al bestaat
|
||
v_errormsg := 'Check of afdeling bestaat';
|
||
|
||
BEGIN
|
||
SELECT prs_afdeling_key
|
||
INTO v_prs_afdeling_key
|
||
FROM prs_afdeling
|
||
WHERE prs_afdeling_upper = 'HEYDAY'
|
||
AND prs_bedrijf_key = v_prs_bedrijf_key
|
||
AND prs_afdeling_verwijder IS NULL;
|
||
EXCEPTION
|
||
WHEN NO_DATA_FOUND
|
||
THEN
|
||
INSERT INTO prs_afdeling (prs_afdeling_naam,
|
||
prs_afdeling_omschrijving,
|
||
prs_bedrijf_key)
|
||
VALUES ('HEYDAY', 'HEYDAY Facility Management', v_prs_bedrijf_key)
|
||
RETURNING prs_afdeling_key
|
||
INTO v_prs_afdeling_key;
|
||
END;
|
||
|
||
v_errormsg := 'Bepaal srtperslid';
|
||
|
||
SELECT prs_srtperslid_key
|
||
INTO v_prs_srtperslid_key
|
||
FROM prs_srtperslid
|
||
WHERE prs_srtperslid_omschrijving = 'Onbekend';
|
||
|
||
FOR rec IN c
|
||
LOOP
|
||
BEGIN
|
||
-- set alvast de variable om straks de kenmerken goed te kunnen opslaan.
|
||
v_prs_perslid_key := rec.prs_perslid_key;
|
||
|
||
-- als de persoon een personeelsnummer van de klant heeft gaan we niets aan zijn
|
||
-- gegevens aanpassen maar wordt de persoon alleen aan de autorisatiegroep toegevoegd.
|
||
IF rec.prs_perslid_nr IS NULL
|
||
THEN
|
||
IF rec.prs_perslid_key IS NULL
|
||
THEN
|
||
-- misschien kunnen we de persoon nog vinden op basis van personeelsnummer
|
||
v_errormsg := 'Zoek persoon met zelfde personeelsnummer ' || rec.personeelsnummer;
|
||
SELECT MAX(prs_perslid_key)
|
||
INTO v_prs_perslid_key
|
||
FROM prs_kenmerklink, prs_perslid
|
||
WHERE prs_kenmerk_key = 3
|
||
AND prs_kenmerklink_verwijder IS NULL
|
||
AND prs_link_key = prs_perslid_key
|
||
AND prs_perslid_verwijder IS NULL
|
||
AND rec.personeelsnummer = prs_kenmerklink_waarde;
|
||
|
||
-- persoon bestaat nog niet
|
||
v_errormsg := 'Controle login ' || rec.personeelsnummer;
|
||
SELECT count(prs_perslid_key)
|
||
INTO v_count
|
||
FROM prs_perslid
|
||
WHERE prs_perslid_oslogin = UPPER(rec.loginnaam);
|
||
|
||
IF v_count = 0 AND v_prs_perslid_key IS NULL THEN
|
||
|
||
v_errormsg := 'Toevoegen persoon ' || rec.personeelsnummer;
|
||
|
||
INSERT INTO prs_perslid (prs_afdeling_key,
|
||
prs_perslid_naam,
|
||
prs_perslid_tussenvoegsel,
|
||
prs_perslid_voorletters,
|
||
prs_perslid_voornaam,
|
||
prs_perslid_titel,
|
||
prs_perslid_telefoonnr,
|
||
prs_perslid_mobiel,
|
||
prs_perslid_email,
|
||
prs_srtperslid_key,
|
||
prs_perslid_oslogin,
|
||
prs_perslid_apikey,
|
||
prs_perslid_ingids,
|
||
prs_perslid_dienstverband,
|
||
prs_perslid_uurloon)
|
||
VALUES (v_prs_afdeling_key,
|
||
rec.persoonachternaam,
|
||
rec.tussenvoegsel,
|
||
rec.voorletters,
|
||
rec.voornaam,
|
||
rec.titel,
|
||
SUBSTR(rec.telefoonnummer,1,15),
|
||
rec.mobiel,
|
||
rec.email,
|
||
v_prs_srtperslid_key,
|
||
rec.loginnaam,
|
||
rec.prs_perslid_apikey,
|
||
NULL,
|
||
fac.safe_to_number (
|
||
REPLACE (rec.dienstverband, ',', '.')),
|
||
fac.safe_to_number (REPLACE (rec.uurloon, ',', '.')))
|
||
RETURNING prs_perslid_key
|
||
INTO v_prs_perslid_key;
|
||
|
||
ELSE
|
||
fac.imp_writelog (p_import_key,
|
||
'E',
|
||
'Login bestaat al bij andere persoon. (' || rec.persoonachternaam || ' - ' || rec.loginnaam || ' - ' || rec.personeelsnummer || ')' ,
|
||
'');
|
||
END IF;
|
||
|
||
ELSE
|
||
-- persoon bestaat al
|
||
v_errormsg := 'Aanpassen persoon ' || rec.personeelsnummer;
|
||
|
||
UPDATE prs_perslid
|
||
SET prs_afdeling_key = v_prs_afdeling_key,
|
||
prs_perslid_naam = rec.persoonachternaam,
|
||
prs_perslid_tussenvoegsel = rec.tussenvoegsel,
|
||
prs_perslid_voorletters = rec.voorletters,
|
||
prs_perslid_voornaam = rec.voornaam,
|
||
prs_perslid_titel = rec.titel,
|
||
prs_perslid_telefoonnr = COALESCE(prs_perslid_telefoonnr, SUBSTR(rec.telefoonnummer,1,15)),
|
||
prs_perslid_mobiel = COALESCE(prs_perslid_mobiel, rec.mobiel),
|
||
prs_perslid_email = COALESCE(prs_perslid_email, rec.email),
|
||
prs_srtperslid_key = v_prs_srtperslid_key,
|
||
prs_perslid_oslogin = rec.loginnaam,
|
||
prs_perslid_apikey = rec.prs_perslid_apikey,
|
||
prs_perslid_ingids = NULL,
|
||
prs_perslid_dienstverband =
|
||
fac.safe_to_number (
|
||
REPLACE (rec.dienstverband, ',', '.')),
|
||
prs_perslid_uurloon =
|
||
fac.safe_to_number (REPLACE (rec.uurloon, ',', '.'))
|
||
WHERE prs_perslid_key = rec.prs_perslid_key;
|
||
|
||
|
||
END IF;
|
||
-- verwijder de zojuist toegevoegde persoon uit de default groep.
|
||
DELETE fac_gebruikersgroep
|
||
WHERE fac_groep_key = v_fac_default_key
|
||
AND prs_perslid_key = v_prs_perslid_key;
|
||
END IF;
|
||
|
||
IF v_prs_perslid_key IS NOT NULL
|
||
THEN
|
||
v_errormsg := 'Toevoegen key naar AAIT prs_perslid_key kenmerk ' || v_prs_perslid_key;
|
||
aaxx.set_prs_kenmerk (p_import_key,
|
||
'P',
|
||
4,
|
||
v_prs_perslid_key,
|
||
rec.prs_perslid_key_aait);
|
||
|
||
v_errormsg := 'Toevoegen personeelsnummer kenmerk ' || v_prs_perslid_key;
|
||
aaxx.set_prs_kenmerk (p_import_key,
|
||
'P',
|
||
3,
|
||
v_prs_perslid_key,
|
||
rec.personeelsnummer);
|
||
|
||
v_errormsg := 'Toevoegen kostenplaats kenmerk ' || v_prs_perslid_key;
|
||
aaxx.set_prs_kenmerk (p_import_key,
|
||
'P',
|
||
2,
|
||
v_prs_perslid_key,
|
||
rec.kostenplaats);
|
||
|
||
v_errormsg := 'Toevoegen uurloon intern kenmerk ' || v_prs_perslid_key;
|
||
aaxx.set_prs_kenmerk (p_import_key,
|
||
'P',
|
||
6,
|
||
v_prs_perslid_key,
|
||
rec.uurloon_intern);
|
||
|
||
IF rec.prs_perslid_key_sd IS NOT NULL
|
||
THEN
|
||
|
||
-- Servicedesk autorisatie toevoegen.
|
||
v_errormsg := 'Toevoegen aan autorisatiegroep BO_SERVICEDESK de servicedesk-medewerker ' || rec.personeelsnummer;
|
||
INSERT INTO fac_gebruikersgroep (prs_perslid_key, fac_groep_key)
|
||
(SELECT v_prs_perslid_key, fac_groep_key
|
||
FROM fac_groep g
|
||
WHERE fac_groep_externid = 'BO_SERVICEDESK'
|
||
AND NOT EXISTS
|
||
(SELECT fac_gebruikersgroep_key
|
||
FROM fac_gebruikersgroep gg
|
||
WHERE gg.prs_perslid_key = v_prs_perslid_key
|
||
AND gg.fac_groep_key = g.fac_groep_key));
|
||
|
||
-- Servicedesk medewerkers mandateren voor alle kostenplaatsen.
|
||
v_errormsg := 'Toevoegen SD mandaat ' || rec.personeelsnummer;
|
||
DELETE prs_perslidkostenplaats
|
||
WHERE prs_perslid_key = v_prs_perslid_key
|
||
AND prs_kostenplaats_key IS NOT NULL;
|
||
|
||
INSERT INTO prs_perslidkostenplaats (prs_perslid_key)
|
||
(SELECT v_prs_perslid_key FROM DUAL
|
||
WHERE NOT EXISTS
|
||
(SELECT prs_perslid_key
|
||
FROM prs_perslidkostenplaats pkp
|
||
WHERE pkp.prs_perslid_key = v_prs_perslid_key));
|
||
|
||
END IF;
|
||
|
||
|
||
-- voeg iedereen toe aan de gebruikersgroep HEYDAY Medewerker
|
||
INSERT INTO fac_gebruikersgroep (fac_groep_key, prs_perslid_key)
|
||
SELECT fac_groep_key, prs_perslid_key
|
||
FROM fac_groep g, prs_perslid p
|
||
WHERE g.fac_groep_key = v_fac_groep_key
|
||
AND p.prs_perslid_key = v_prs_perslid_key
|
||
AND NOT EXISTS
|
||
(SELECT fac_gebruikersgroep_key
|
||
FROM fac_gebruikersgroep gg
|
||
WHERE gg.prs_perslid_key = p.prs_perslid_key
|
||
AND gg.fac_groep_key = g.fac_groep_key);
|
||
|
||
END IF;
|
||
|
||
COMMIT;
|
||
EXCEPTION
|
||
WHEN OTHERS
|
||
THEN
|
||
v_error_hint := v_errormsg;
|
||
oracle_err_num := SQLCODE;
|
||
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
|
||
v_errormsg :=
|
||
v_errormsg
|
||
|| 'ORACLE (error '
|
||
|| oracle_err_num
|
||
|| '/'
|
||
|| oracle_err_mes
|
||
|| ')';
|
||
fac.imp_writelog (p_import_key,
|
||
'E',
|
||
v_errormsg,
|
||
v_error_hint);
|
||
COMMIT; -- tbv logging
|
||
END;
|
||
END LOOP;
|
||
|
||
DELETE fac_gebruikersgroep
|
||
WHERE fac_groep_key = v_fac_groep_key
|
||
AND prs_perslid_key NOT IN
|
||
(SELECT p.prs_perslid_key
|
||
FROM aait.aait_imp_perslid i,
|
||
prs_perslid p,
|
||
prs_kenmerklink kl
|
||
WHERE p.prs_perslid_key = kl.prs_link_key
|
||
AND kl.prs_kenmerk_key = 3
|
||
AND i.personeelsnummer = kl.prs_kenmerklink_waarde);
|
||
|
||
-- probeer personen te verwijderen die niet meer voorkomen in het importbestand
|
||
FOR rec_del IN c_del
|
||
LOOP
|
||
BEGIN
|
||
IF COALESCE(rec_del.prs_perslid_login, SYSDATE -11) > SYSDATE -10
|
||
THEN
|
||
fac.imp_writelog (p_import_key,
|
||
'I',
|
||
'Persoon ' || rec_del.prs_perslid_naam || ' (' || rec_del.prs_perslid_voornaam || ') zou verwijderd moeten worden',
|
||
'');
|
||
UPDATE prs_perslid
|
||
SET prs_perslid_oslogin = NULL,
|
||
prs_perslid_oslogin2 = NULL
|
||
WHERE prs_perslid_key = rec_del.prs_perslid_key;
|
||
ELSE
|
||
fac.imp_writelog (p_import_key,
|
||
'I',
|
||
'Persoon ' || rec_del.prs_perslid_naam || ' (' || rec_del.prs_perslid_voornaam || ') zou verwijderd moeten worden',
|
||
'');
|
||
aaxx.prs_del_perslid (p_import_key, rec_del.prs_perslid_key, 0, 0);
|
||
END IF;
|
||
END;
|
||
END LOOP;
|
||
END;
|
||
/
|
||
|
||
|
||
-- view om ongeldige records te vinden.
|
||
CREATE OR REPLACE VIEW aaxx_rap_perslid_mismatch (hide_f_index, naam, voornaam, lastlogin, afdeling, AAFMpersoneelsnummer)
|
||
AS
|
||
SELECT sysdate - prs_perslid_login,
|
||
prs_perslid_naam,
|
||
prs_perslid_voornaam,
|
||
prs_perslid_login,
|
||
prs_afdeling_omschrijving,
|
||
klo.prs_kenmerklink_waarde nr
|
||
FROM prs_perslid p, prs_kenmerklink klo, prs_afdeling a
|
||
WHERE p.prs_perslid_key = klo.prs_link_key
|
||
AND p.prs_afdeling_key = a.prs_afdeling_key
|
||
AND prs_kenmerk_key = 3
|
||
AND prs_perslid_verwijder IS NULL
|
||
AND prs_perslid_login IS NOT NULL
|
||
AND NOT EXISTS
|
||
(SELECT prs_kenmerklink_key
|
||
FROM prs_kenmerklink
|
||
WHERE prs_link_key = p.prs_perslid_key AND prs_kenmerk_key = 4);
|
||
|
||
|
||
-------------------------------------------------------------------------------
|
||
-- KOPPELINGEN MET LEVERANCIERS
|
||
-------------------------------------------------------------------------------
|
||
CREATE OR REPLACE PROCEDURE aaxx_import_opdrstat_strukton (
|
||
p_import_key IN NUMBER)
|
||
AS
|
||
c_delim VARCHAR2 (1) := ';';
|
||
v_newline VARCHAR2 (1000); -- Input line
|
||
v_errormsg VARCHAR2 (4000);
|
||
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);
|
||
|
||
-- 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);
|
||
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));
|
||
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'
|
||
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
|
||
-- For future use
|
||
-- WHEN v_status_code = '40' -- uitgeprijst
|
||
-- THEN
|
||
-- v_status := 6; -- afgemeld
|
||
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 || ']';
|
||
IF INSTR (v_datumtijd_tekst, '.') > 0
|
||
THEN
|
||
v_datumtijd :=
|
||
fac.safe_to_date (
|
||
REPLACE (
|
||
SUBSTR (v_datumtijd_tekst,
|
||
1,
|
||
INSTR (v_datumtijd_tekst, '.') - 1),
|
||
'T',
|
||
' '),
|
||
'yyyy-mm-dd hh24:mi:ss');
|
||
ELSE
|
||
v_datumtijd := fac.safe_to_date(v_datumtijd_tekst, 'yyyy-mm-dd hh24:mi:ss');
|
||
END IF;
|
||
|
||
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)
|
||
VALUES (v_mld_opdr_key,
|
||
v_extern_nummer,
|
||
v_status,
|
||
v_datumtijd,
|
||
v_opmerking);
|
||
|
||
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
|
||
IF v_status_code <> '40' AND v_status_code <> '45'
|
||
THEN
|
||
fac.imp_writelog (p_import_key,
|
||
'E',
|
||
v_errormsg,
|
||
'');
|
||
END IF;
|
||
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 := SUBSTR(
|
||
v_errormsg
|
||
|| 'ORACLE (error '
|
||
|| oracle_err_num
|
||
|| '/'
|
||
|| oracle_err_mes
|
||
|| ')', 1, 490);
|
||
fac.imp_writelog (p_import_key,
|
||
'E',
|
||
SUBSTR(v_aanduiding, 1, 500) || ' - ' || v_errormsg,
|
||
'Inleesproces opdrachtstatusberichten afgebroken!');
|
||
END;
|
||
/
|
||
|
||
|
||
CREATE OR REPLACE PROCEDURE aaxx_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
|
||
FROM aaxx_imp_opdrstat_strukton
|
||
ORDER BY 1, 3;
|
||
|
||
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_mld_typeopdr_key NUMBER (10);
|
||
v_mld_kenmerk_key NUMBER (10);
|
||
v_mld_kenmerkopdr_key NUMBER (10);
|
||
v_mld_srtkenmerk_key NUMBER (10);
|
||
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 = 'ESSENT' THEN v_mld_srtkenmerk_key := 741; 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, 1, v_user_key); -- Facilitor
|
||
MLD.updatemeldingstatusAV (v_mld_key, 0, v_user_key, 0);
|
||
END IF;
|
||
|
||
IF rec.status = 6 AND v_opdr_status <> 6
|
||
THEN
|
||
v_errormsg := 'Fout bij statusaanpassing melding.';
|
||
-- Sinds AADO#30922 wordt de melding niet meer automatisch afgemeld.
|
||
MLD.updatemeldingstatusAV (v_mld_key, 0, v_user_key, 0);
|
||
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;
|
||
/
|
||
|
||
|
||
-------------------------------------------------------------------------------
|
||
-- IMPORTFUNCTIE - DIENST_LOC_BLD
|
||
-------------------------------------------------------------------------------
|
||
CREATE OR REPLACE PROCEDURE aaxx_import_dienst_loc_bld (
|
||
p_import_key IN NUMBER)
|
||
AS
|
||
CURSOR c_cursor
|
||
IS
|
||
SELECT *
|
||
FROM fac_imp_file
|
||
WHERE fac_import_key = p_import_key
|
||
ORDER BY fac_imp_file_index;
|
||
|
||
v_newline VARCHAR2 (1000); -- Import line
|
||
v_field VARCHAR2 (100); -- Import field
|
||
v_fielddelimitor VARCHAR2 (1); -- Field seperator
|
||
v_errormsg VARCHAR (200);
|
||
v_errorhint VARCHAR (200);
|
||
oracle_err_num NUMBER;
|
||
oracle_err_mes VARCHAR2 (200);
|
||
v_skipfield VARCHAR2 (100);
|
||
-- De importvelden
|
||
v_bedrijf_naam VARCHAR2 (100);
|
||
v_bedrijf_nr VARCHAR2 (100);
|
||
v_dienst_oms VARCHAR2 (100);
|
||
v_locatie_code VARCHAR2 (100);
|
||
v_gebouw_code VARCHAR2 (100);
|
||
header_found BOOLEAN;
|
||
BEGIN
|
||
-- Init
|
||
header_found := FALSE;
|
||
v_fielddelimitor := ';';
|
||
|
||
-- Clear my previous imported rows
|
||
DELETE FROM aaxx_imp_dienst_loc_bld;
|
||
|
||
FOR rec1 IN c_cursor
|
||
LOOP
|
||
BEGIN
|
||
v_newline := rec1.fac_imp_file_line;
|
||
|
||
IF SUBSTR (v_newline, 1, 3) = '?'
|
||
THEN
|
||
-- EF BB BF aangetroffen
|
||
fac.imp_writelog (p_import_key,
|
||
'W',
|
||
'Byte Order Mark aangetroffen',
|
||
'Bestand heeft onbehandeld UTF-8 formaat.');
|
||
v_newline := SUBSTR (v_newline, 4);
|
||
END IF;
|
||
|
||
fac.imp_getfield (v_newline, v_fielddelimitor, v_bedrijf_naam);
|
||
fac.imp_getfield (v_newline, v_fielddelimitor, v_bedrijf_nr);
|
||
fac.imp_getfield (v_newline, v_fielddelimitor, v_dienst_oms);
|
||
fac.imp_getfield (v_newline, v_fielddelimitor, v_locatie_code);
|
||
fac.imp_getfield (v_newline, v_fielddelimitor, v_gebouw_code);
|
||
|
||
-- Skip until a valid header is found
|
||
IF UPPER (v_bedrijf_naam) = 'BEDRIJFNAAM'
|
||
AND UPPER (v_bedrijf_nr) = 'BEDRIJF_NR'
|
||
AND UPPER (v_dienst_oms) = 'DIENST'
|
||
AND UPPER (v_locatie_code) = 'LOCATIE_CODE'
|
||
AND UPPER (v_gebouw_code) = 'GEBOUW_CODE'
|
||
THEN
|
||
-- Sla de kopregel over.
|
||
header_found := TRUE;
|
||
ELSIF (header_found)
|
||
THEN
|
||
INSERT INTO aaxx_imp_dienst_loc_bld (prs_bedrijf_naam,
|
||
prs_bedrijf_nr,
|
||
prs_dienst_omschrijving,
|
||
alg_locatie_code,
|
||
alg_gebouw_code)
|
||
VALUES (SUBSTR (v_bedrijf_naam, 1, 60),
|
||
SUBSTR (v_bedrijf_nr, 1, 50),
|
||
SUBSTR (v_dienst_oms, 1, 60),
|
||
SUBSTR (v_locatie_code, 1, 10),
|
||
SUBSTR (v_gebouw_code, 1, 12));
|
||
END IF;
|
||
|
||
COMMIT;
|
||
END;
|
||
END LOOP;
|
||
|
||
IF NOT header_found
|
||
THEN
|
||
fac.imp_writelog (
|
||
p_import_key,
|
||
'E',
|
||
'Geen geldige header aangetroffen',
|
||
'Bestand is geen geldig BedrijfDienstLocatieGebouw importbestand.');
|
||
END IF;
|
||
EXCEPTION
|
||
WHEN OTHERS
|
||
THEN
|
||
oracle_err_num := SQLCODE;
|
||
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
|
||
v_errormsg :=
|
||
'OTHERS (error ' || oracle_err_num || '/' || oracle_err_mes || ')';
|
||
fac.imp_writelog (p_import_key,
|
||
'E',
|
||
SUBSTR (v_errormsg, 1, 1000),
|
||
'');
|
||
|
||
-- maak de importtabel leeg om te voorkomen dat er halve bestanden ingelezen worden.
|
||
DELETE FROM aaxx_imp_dienst_loc_bld;
|
||
END;
|
||
/
|
||
|
||
CREATE OR REPLACE PROCEDURE aaxx_update_dienst_loc_bld (
|
||
p_import_key IN NUMBER)
|
||
AS
|
||
CURSOR cbdlg
|
||
IS
|
||
SELECT prs_bedrijf_naam,
|
||
prs_bedrijf_nr,
|
||
prs_dienst_omschrijving,
|
||
alg_locatie_code,
|
||
alg_gebouw_code
|
||
FROM aaxx_imp_dienst_loc_bld
|
||
WHERE prs_dienst_omschrijving IS NOT NULL;
|
||
|
||
v_oldcountbdlg NUMBER;
|
||
v_newcountbdlg NUMBER;
|
||
v_prs_bedrijf_key NUMBER;
|
||
v_prs_dienst_key NUMBER;
|
||
v_alg_locatie_key NUMBER;
|
||
v_alg_gebouw_key NUMBER;
|
||
v_errormsg VARCHAR (1000);
|
||
v_error_hint VARCHAR (1000);
|
||
oracle_err_mes VARCHAR2 (150);
|
||
oracle_err_num VARCHAR2 (150);
|
||
currentversion fac_module.fac_module_version%TYPE;
|
||
BEGIN
|
||
SELECT MAX (fac_module_version) INTO currentversion FROM fac_module;
|
||
|
||
fac.imp_writelog (
|
||
p_import_key,
|
||
'I',
|
||
'Arcadis Aqumen BedrijfDienstLocatieGebouw import version '
|
||
|| currentversion,
|
||
'$Revision$');
|
||
|
||
SELECT COUNT ( * ) INTO v_oldcountbdlg FROM aaxx_imp_dienst_loc_bld;
|
||
|
||
IF v_oldcountbdlg = 0
|
||
THEN
|
||
fac.imp_writelog (
|
||
p_import_key,
|
||
'E',
|
||
'Arcadis Aqumen BedrijfDienstLocatieGebouw import bevat geen records',
|
||
'$Revision$');
|
||
RETURN;
|
||
END IF;
|
||
|
||
-- How many active records are now present?
|
||
SELECT COUNT ( * ) INTO v_oldcountbdlg FROM prs_bedrijfdienstlocatie;
|
||
|
||
-- remove the existing records
|
||
DELETE prs_bedrijfdienstlocatie;
|
||
|
||
FOR rec IN cbdlg
|
||
LOOP
|
||
BEGIN
|
||
v_errormsg :=
|
||
'Kan dienst niet bepalen ['
|
||
|| rec.prs_dienst_omschrijving
|
||
|| '] ';
|
||
|
||
SELECT prs_dienst_key
|
||
INTO v_prs_dienst_key
|
||
FROM prs_dienst
|
||
WHERE UPPER (prs_dienst_omschrijving) =
|
||
UPPER (rec.prs_dienst_omschrijving);
|
||
|
||
v_errormsg :=
|
||
'Kan locatie niet bepalen [' || rec.alg_locatie_code || '] ';
|
||
|
||
IF rec.alg_locatie_code IS NOT NULL
|
||
THEN
|
||
SELECT alg_locatie_key
|
||
INTO v_alg_locatie_key
|
||
FROM alg_v_aanweziglocatie
|
||
WHERE UPPER (alg_locatie_code) = UPPER (rec.alg_locatie_code);
|
||
ELSE
|
||
v_alg_locatie_key := NULL;
|
||
END IF;
|
||
|
||
v_errormsg :=
|
||
'Kan gebouw niet bepalen [' || rec.alg_gebouw_code || '] ';
|
||
|
||
IF rec.alg_gebouw_code IS NOT NULL
|
||
THEN
|
||
SELECT alg_gebouw_key
|
||
INTO v_alg_gebouw_key
|
||
FROM alg_v_aanweziggebouw
|
||
WHERE alg_gebouw_upper = UPPER (rec.alg_gebouw_code);
|
||
|
||
v_alg_locatie_key := NULL;
|
||
ELSE
|
||
v_alg_gebouw_key := NULL;
|
||
END IF;
|
||
|
||
v_errormsg :=
|
||
'Kan bedrijf niet bepalen ['
|
||
|| rec.prs_bedrijf_naam
|
||
|| '('
|
||
|| rec.prs_bedrijf_nr
|
||
|| ')'
|
||
|| '] ';
|
||
|
||
SELECT prs_bedrijf_key
|
||
INTO v_prs_bedrijf_key
|
||
FROM prs_v_aanwezigbedrijf
|
||
WHERE UPPER (prs_bedrijf_naam) = UPPER (rec.prs_bedrijf_naam);
|
||
|
||
v_errormsg :=
|
||
'Kan bedrijf/dienst/loc/bld niet wegschrijven ['
|
||
|| rec.prs_bedrijf_naam
|
||
|| '('
|
||
|| rec.prs_bedrijf_nr
|
||
|| ')'
|
||
|| '/'
|
||
|| rec.prs_dienst_omschrijving
|
||
|| '/'
|
||
|| rec.alg_locatie_code
|
||
|| '/'
|
||
|| rec.alg_gebouw_code
|
||
|| '] ';
|
||
|
||
INSERT INTO prs_bedrijfdienstlocatie (prs_dienst_key,
|
||
prs_bedrijf_key,
|
||
alg_locatie_key,
|
||
alg_gebouw_key)
|
||
VALUES (v_prs_dienst_key,
|
||
v_prs_bedrijf_key,
|
||
v_alg_locatie_key,
|
||
v_alg_gebouw_key);
|
||
|
||
COMMIT;
|
||
EXCEPTION
|
||
WHEN OTHERS
|
||
THEN
|
||
v_error_hint := v_errormsg;
|
||
oracle_err_num := SQLCODE;
|
||
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
|
||
v_errormsg :=
|
||
v_errormsg
|
||
|| 'ORACLE (error '
|
||
|| oracle_err_num
|
||
|| '/'
|
||
|| oracle_err_mes
|
||
|| ')';
|
||
fac.imp_writelog (p_import_key,
|
||
'E',
|
||
v_errormsg,
|
||
v_error_hint);
|
||
COMMIT;
|
||
END;
|
||
END LOOP;
|
||
|
||
SELECT COUNT ( * ) INTO v_newcountbdlg FROM aaxx_imp_dienst_loc_bld;
|
||
|
||
fac.imp_writelog (
|
||
p_import_key,
|
||
'S',
|
||
'Aantal BedrijfDienstLocBld vooraf: '
|
||
|| TO_CHAR (v_oldcountbdlg)
|
||
|| ' => nu: '
|
||
|| TO_CHAR (v_newcountbdlg),
|
||
'');
|
||
END;
|
||
/
|
||
|
||
|
||
-------------------------------------------------------------------------------
|
||
-- RAPPORTAGES aaxx_v_rap_gebruikers_auth
|
||
-------------------------------------------------------------------------------
|
||
CREATE OR REPLACE VIEW aaxx_v_rap_gebruikers_auth (
|
||
naam,
|
||
afdeling,
|
||
functie,
|
||
email,
|
||
login,
|
||
alt_login,
|
||
auth_groep,
|
||
last_login
|
||
)
|
||
AS
|
||
SELECT prs_perslid_naam_full,
|
||
prs_afdeling_omschrijving,
|
||
prs_srtperslid_omschrijving,
|
||
prs_perslid_email,
|
||
prs_perslid_oslogin,
|
||
prs_perslid_oslogin2,
|
||
fac_groep_omschrijving,
|
||
prs_perslid_login
|
||
FROM prs_v_aanwezigperslid p,
|
||
prs_v_perslid_fullnames pf,
|
||
fac_gebruikersgroep gg,
|
||
prs_afdeling a,
|
||
fac_groep g,
|
||
prs_srtperslid sp
|
||
WHERE p.prs_perslid_key = pf.prs_perslid_key
|
||
AND p.prs_perslid_key = gg.prs_perslid_key(+)
|
||
AND p.prs_afdeling_key = a.prs_afdeling_key
|
||
AND p.prs_srtperslid_key = sp.prs_srtperslid_key
|
||
AND gg.fac_groep_key = g.fac_groep_key(+)
|
||
AND (p.prs_perslid_oslogin IS NOT NULL
|
||
OR p.prs_perslid_oslogin2 IS NOT NULL)
|
||
AND SUBSTR(COALESCE (p.prs_perslid_oslogin, 'QueQueLeQue'),1,1) <> '_';
|
||
|
||
-- Geatoriseerd voor ORDBO2 maar niet gekoppeld aan een bedrijf of AAFMer
|
||
CREATE OR REPLACE VIEW aaxx_v_rap_ordbo2_no_bdr
|
||
(
|
||
prs_perslid_key,
|
||
naam,
|
||
login_naam,
|
||
email,
|
||
autorisatiegroep
|
||
)
|
||
AS
|
||
SELECT DISTINCT pf.prs_perslid_key,
|
||
prs_perslid_naam_full,
|
||
prs_perslid_oslogin,
|
||
prs_perslid_email,
|
||
fac_groep_omschrijving
|
||
FROM fac_groeprechten fgr,
|
||
fac_functie ff,
|
||
fac_gebruikersgroep fgg,
|
||
fac_groep fg,
|
||
prs_v_perslid_fullnames pf,
|
||
prs_perslid p
|
||
WHERE ff.fac_functie_key = fgr.fac_functie_key
|
||
AND UPPER (fac_functie_code) = 'WEB_ORDBO2'
|
||
AND (fac_gebruiker_prs_level_read < 9
|
||
OR fac_gebruiker_alg_level_read < 9)
|
||
AND fgr.fac_groep_key = fgg.fac_groep_key
|
||
AND p.prs_perslid_key = fgg.prs_perslid_key
|
||
AND fg.fac_groep_key = fgg.fac_groep_key
|
||
AND p.prs_perslid_key = pf.prs_perslid_key
|
||
AND UPPER (prs_perslid_oslogin) != '_FACILITOR'
|
||
AND fgg.prs_perslid_key NOT IN
|
||
(SELECT prs_perslid_key
|
||
FROM prs_contactpersoon pc, prs_bedrijf b
|
||
WHERE prs_contactpersoon_verwijder IS NULL
|
||
AND pc.prs_bedrijf_key = b.prs_bedrijf_key
|
||
AND b.prs_bedrijf_verwijder IS NULL
|
||
AND pc.prs_perslid_key IS NOT NULL)
|
||
AND NOT EXISTS
|
||
(SELECT prs_afdeling_key
|
||
FROM prs_afdeling a
|
||
WHERE a.prs_afdeling_key = p.prs_afdeling_key
|
||
AND (a.prs_afdeling_omschrijving = 'AAFM' OR a.prs_afdeling_upper = 'HEYDAY'));
|
||
|
||
|
||
CREATE OR REPLACE VIEW aaxx_v_rap_dienst_loc_bld (fclt_f_bedrijfnaam
|
||
, fclt_f_bedrijf_nr
|
||
, fclt_f_dienst
|
||
, fclt_f_locatie_code
|
||
, fclt_f_gebouw_code
|
||
)
|
||
AS
|
||
SELECT prs_bedrijf_naam bedrijfnaam,
|
||
prs_leverancier_nr bedrijfnummer,
|
||
prs_dienst_omschrijving dienst,
|
||
alg_locatie_code locatie_code,
|
||
alg_gebouw_upper gebouw_code
|
||
FROM prs_v_aanwezigbedrijf b,
|
||
prs_dienst d,
|
||
alg_locatie l,
|
||
alg_gebouw g,
|
||
prs_bedrijfdienstlocatie bdl
|
||
WHERE b.prs_bedrijf_key = bdl.prs_bedrijf_key(+)
|
||
AND bdl.prs_dienst_key = d.prs_dienst_key(+)
|
||
AND bdl.alg_locatie_key = l.alg_locatie_key(+)
|
||
AND bdl.alg_gebouw_key = g.alg_gebouw_key(+)
|
||
AND COALESCE (b.prs_bedrijf_intern, 0) = 0;
|
||
|
||
|
||
CREATE OR REPLACE VIEW aaxx_v_rap_bdl_contract
|
||
(
|
||
fclt_f_profiel,
|
||
fclt_f_bedrijfnaam,
|
||
fclt_f_bedrijf_nr,
|
||
fclt_f_dienst,
|
||
fclt_f_locatie_code,
|
||
fclt_f_gebouw_code,
|
||
fclt_f_contract
|
||
)
|
||
AS
|
||
SELECT 'Contract',
|
||
prs_bedrijf_naam,
|
||
prs_leverancier_nr,
|
||
prs_dienst_omschrijving,
|
||
(SELECT alg_locatie_code
|
||
FROM alg_locatie l
|
||
WHERE l.alg_locatie_key =
|
||
COALESCE (cpl.alg_locatie_key, cpg.alg_locatie_key)),
|
||
(SELECT alg_gebouw_upper
|
||
FROM alg_gebouw g1
|
||
WHERE g1.alg_gebouw_key = cpg.alg_gebouw_key),
|
||
c.cnt_contract_nummer_intern
|
||
FROM cnt_contract c,
|
||
(SELECT cnt_contract_key, cnt_alg_plaats_key alg_locatie_key
|
||
FROM cnt_contract_plaats cp
|
||
WHERE cp.cnt_contract_plaats_verwijder IS NULL
|
||
AND cp.cnt_alg_plaats_code = 'L') cpl,
|
||
(SELECT cnt_contract_key, g.alg_locatie_key, g.alg_gebouw_key
|
||
FROM cnt_contract_plaats cp, alg_gebouw g
|
||
WHERE cp.cnt_alg_plaats_code = 'G'
|
||
AND cnt_alg_plaats_key = g.alg_gebouw_key) cpg,
|
||
prs_bedrijf b,
|
||
prs_dienst d
|
||
WHERE c.cnt_contract_key = cpl.cnt_contract_key(+)
|
||
AND c.cnt_contract_key = cpg.cnt_contract_key(+)
|
||
AND c.prs_dienst_key = d.prs_dienst_key(+)
|
||
AND c.cnt_prs_bedrijf_key = b.prs_bedrijf_key(+)
|
||
AND c.cnt_contract_looptijd_tot > SYSDATE
|
||
UNION ALL
|
||
SELECT 'Uitvoerder',
|
||
prs_bedrijf_naam bedrijfnaam,
|
||
prs_leverancier_nr bedrijfnummer,
|
||
prs_dienst_omschrijving dienst,
|
||
alg_locatie_code locatie_code,
|
||
alg_gebouw_upper gebouw_code,
|
||
NULL
|
||
FROM prs_v_aanwezigbedrijf b,
|
||
prs_dienst d,
|
||
alg_locatie l,
|
||
alg_gebouw g,
|
||
prs_bedrijfdienstlocatie bdl
|
||
WHERE b.prs_bedrijf_key = bdl.prs_bedrijf_key(+)
|
||
AND bdl.prs_dienst_key = d.prs_dienst_key(+)
|
||
AND bdl.alg_locatie_key = l.alg_locatie_key(+)
|
||
AND bdl.alg_gebouw_key = g.alg_gebouw_key(+)
|
||
AND COALESCE (b.prs_bedrijf_intern, 0) = 0;
|
||
|
||
CREATE OR REPLACE VIEW aaxx_v_rap_contractorders (
|
||
contractorder,
|
||
versie,
|
||
fclt_f_gebouwcode,
|
||
fclt_f_leverancier,
|
||
fclt_f_beschrijving,
|
||
fclt_f_pakket,
|
||
ingangsdatum,
|
||
einddatum,
|
||
fclt_f_status,
|
||
kosten,
|
||
totaalkosten,
|
||
gefactureerd,
|
||
dienst,
|
||
leveranciernr
|
||
)
|
||
AS
|
||
SELECT cnt_contract_nummer_intern contractorder,
|
||
cnt_contract_versie,
|
||
alg_gebouw_code gebouwcode,
|
||
prs_bedrijf_naam leverancier,
|
||
k.prs_kostensoort_opmerking beschrijving,
|
||
(SELECT prs_kostensoortgrp_oms
|
||
FROM prs_kostensoortgrp ksg
|
||
WHERE ksg.prs_kostensoortgrp_key = k.prs_kostensoortgrp_key)
|
||
pakket,
|
||
TO_CHAR (c.cnt_contract_looptijd_van, 'DD-MM-YYYY') ingangsdatum,
|
||
TO_CHAR (c.cnt_contract_looptijd_tot, 'DD-MM-YYYY') einddatum,
|
||
DECODE (SIGN (cnt_contract_looptijd_van - SYSDATE),
|
||
1,
|
||
'Toekomst',
|
||
-1,
|
||
DECODE (SIGN (cnt_contract_looptijd_tot - SYSDATE),
|
||
1,
|
||
'Actueel',
|
||
-1,
|
||
'Verlopen'
|
||
)
|
||
)
|
||
status,
|
||
COALESCE (ROUND ( DECODE (cnt_gew.cnt_contract_plaats_gewicht,
|
||
0,
|
||
1,
|
||
(cp.cnt_contract_plaats_gewicht
|
||
/ cnt_gew.cnt_contract_plaats_gewicht)
|
||
* c.cnt_contract_kosten),
|
||
2
|
||
),
|
||
0
|
||
)
|
||
kosten,
|
||
c.cnt_contract_kosten orderbedrag,
|
||
(SELECT SUM (fr.fin_factuurregel_totaal)
|
||
FROM aaxx_v_aanwezigfactuur f, fin_factuurregel fr
|
||
WHERE f.fin_factuur_key = fr.fin_factuur_key
|
||
AND f.cnt_contract_key = c.cnt_contract_key)
|
||
gefactureerd,
|
||
k.prs_kostensoort_refcode dienst,
|
||
b.prs_leverancier_nr leveranciernr
|
||
FROM cnt_contract c,
|
||
cnt_discipline d,
|
||
cnt_contract_plaats cp,
|
||
prs_bedrijf b,
|
||
prs_kostensoort k,
|
||
prs_kostenplaats kp,
|
||
prs_afdeling a,
|
||
prs_perslid p,
|
||
alg_locatie l,
|
||
alg_gebouw g,
|
||
prs_contactpersoon cop,
|
||
(SELECT cnt_contract_key,
|
||
SUM (cnt_contract_plaats_gewicht) cnt_contract_plaats_gewicht
|
||
FROM cnt_contract_plaats
|
||
GROUP BY cnt_contract_key) cnt_gew,
|
||
(SELECT cp.cnt_contract_plaats_key, alg_locatie_key, alg_gebouw_key
|
||
FROM alg_v_allonroerendgoed aog, cnt_contract_plaats cp
|
||
WHERE aog.alg_type = cp.cnt_alg_plaats_code
|
||
AND aog.alg_onroerendgoed_keys = cp.cnt_alg_plaats_key) cog
|
||
WHERE c.cnt_contract_key = cp.cnt_contract_key(+)
|
||
AND c.cnt_contract_key = cnt_gew.cnt_contract_key(+)
|
||
AND c.cnt_prs_bedrijf_key = b.prs_bedrijf_key
|
||
AND c.ins_discipline_key = d.ins_discipline_key
|
||
AND d.prs_kostensoort_key = k.prs_kostensoort_key(+)
|
||
AND c.prs_kostenplaats_key = kp.prs_kostenplaats_key(+)
|
||
AND c.prs_afdeling_key_eig = a.prs_afdeling_key
|
||
AND c.prs_perslid_key_beh = p.prs_perslid_key
|
||
AND cp.cnt_contract_plaats_key = cog.cnt_contract_plaats_key(+)
|
||
AND c.prs_contactpersoon_key = cop.prs_contactpersoon_key(+)
|
||
AND cog.alg_locatie_key = l.alg_locatie_key(+)
|
||
AND cog.alg_gebouw_key = g.alg_gebouw_key(+)
|
||
AND cnt_contract_verwijder IS NULL;
|
||
|
||
-- eerst volgen de kopregels en de tweede union bevat de detailregels.
|
||
CREATE OR REPLACE VIEW aaxx_v_rap_imp_jaarcontract
|
||
(
|
||
HIDE_F_VOLGORDE,
|
||
GEBOUW,
|
||
BEDRIJF,
|
||
LEVNR,
|
||
BESCHRIJVING,
|
||
INGANGSDATUM,
|
||
EINDDATUM,
|
||
ORDEROMSCHRIJVING,
|
||
BEDRAG,
|
||
TERMIJNBEDRAG,
|
||
DIENST,
|
||
CONTRACTSOORT,
|
||
CONTRACTNR,
|
||
VERSIE,
|
||
REGELNR,
|
||
CONTRACTAFDELING,
|
||
CONTRACTMANAGER,
|
||
GEWIJZIGDDOOR,
|
||
STATUS,
|
||
PRS_KOSTENPLAATSGRP_OMS
|
||
)
|
||
AS
|
||
SELECT COALESCE (fac.safe_to_number (cnt_contract_nummer_intern),
|
||
cs.ins_discipline_key * 1000 + b.prs_bedrijf_key)
|
||
* 100,
|
||
k.prs_kostenplaats_nr,
|
||
prs_bedrijf_naam,
|
||
prs_leverancier_nr,
|
||
cnt_contract_omschrijving,
|
||
TO_CHAR (ADD_MONTHS (cnt_contract_looptijd_van, 12), 'dd-mm-yyyy'),
|
||
TO_CHAR (ADD_MONTHS (cnt_contract_looptijd_tot, 12), 'dd-mm-yyyy'),
|
||
REPLACE (cnt_contract_document, '"', ' - '),
|
||
cnt_contract_kosten,
|
||
cnt_contract_termijnkosten,
|
||
prs_dienst_omschrijving,
|
||
cs.ins_discipline_omschrijving,
|
||
cnt_contract_nummer_intern,
|
||
COALESCE (fac.safe_to_number (cnt_contract_versie), 0) + 1,
|
||
NULL,
|
||
a.prs_afdeling_naam,
|
||
p2.prs_perslid_oslogin,
|
||
p.prs_perslid_oslogin,
|
||
DECODE (SIGN(SYSDATE - c.cnt_contract_looptijd_tot), -1, 'Actief', 'Niet Actief') status,
|
||
DECODE(k.prs_kostenplaatsgrp_key, NULL, '', kg.prs_kostenplaatsgrp_nr || ' - ' || kg.prs_kostenplaatsgrp_oms)
|
||
prs_kostenplaatsgrp_oms
|
||
FROM cnt_v_aanwezigcontract c,
|
||
prs_kostenplaats k,
|
||
prs_kostenplaatsgrp kg,
|
||
prs_perslid p,
|
||
prs_perslid p2,
|
||
prs_afdeling a,
|
||
prs_dienst d,
|
||
prs_bedrijf b,
|
||
ins_tab_discipline cs
|
||
WHERE (SYSDATE BETWEEN c.cnt_contract_looptijd_van -- TRUNC(SYSDATE, 'YEAR')
|
||
AND c.cnt_contract_looptijd_tot
|
||
OR c.cnt_contract_looptijd_van >= TRUNC(SYSDATE, 'YEAR')
|
||
OR c.cnt_contract_looptijd_tot >= SYSDATE - 150 )
|
||
AND c.prs_kostenplaats_key = k.prs_kostenplaats_key(+)
|
||
AND k.prs_kostenplaatsgrp_key = kg.prs_kostenplaatsgrp_key(+)
|
||
AND c.prs_perslid_key_beh = p.prs_perslid_key
|
||
AND c.prs_perslid_key_eig = p2.prs_perslid_key(+)
|
||
AND c.prs_afdeling_key_eig = a.prs_afdeling_key
|
||
AND c.cnt_prs_bedrijf_key = b.prs_bedrijf_key
|
||
AND c.prs_dienst_key = d.prs_dienst_key(+)
|
||
AND c.ins_discipline_key = cs.ins_discipline_key
|
||
UNION ALL
|
||
SELECT (COALESCE (fac.safe_to_number (cnt_contract_nummer_intern),
|
||
cs.ins_discipline_key * 1000 + b.prs_bedrijf_key)
|
||
* 100)
|
||
+ aaxx_get_cnt_cont_plaats_index (cp.cnt_contract_plaats_key),
|
||
alg_gebouw_code,
|
||
prs_bedrijf_naam,
|
||
prs_leverancier_nr,
|
||
cnt_contract_omschrijving,
|
||
TO_CHAR (ADD_MONTHS (cnt_contract_looptijd_van, 12), 'dd-mm-yyyy'),
|
||
TO_CHAR (ADD_MONTHS (cnt_contract_looptijd_tot, 12), 'dd-mm-yyyy'),
|
||
NULL,
|
||
DECODE (
|
||
cnt_gew.cnt_contract_plaats_gewicht,
|
||
0,
|
||
c.cnt_contract_kosten,
|
||
ROUND (
|
||
(cp.cnt_contract_plaats_gewicht
|
||
/ cnt_gew.cnt_contract_plaats_gewicht)
|
||
* c.cnt_contract_kosten,
|
||
2)),
|
||
NULL,
|
||
prs_dienst_omschrijving,
|
||
cs.ins_discipline_omschrijving,
|
||
cnt_contract_nummer_intern,
|
||
COALESCE (fac.safe_to_number (cnt_contract_versie), 0) + 1,
|
||
aaxx_get_cnt_cont_plaats_index (cp.cnt_contract_plaats_key),
|
||
a.prs_afdeling_naam,
|
||
p2.prs_perslid_oslogin,
|
||
p.prs_perslid_oslogin,
|
||
DECODE (SIGN(SYSDATE - c.cnt_contract_looptijd_tot), -1, 'Actief', 'Niet Actief') status,
|
||
DECODE(k.prs_kostenplaatsgrp_key, NULL, '', kg.prs_kostenplaatsgrp_nr || ' - ' || kg.prs_kostenplaatsgrp_oms)
|
||
prs_kostenplaatsgrp_oms
|
||
FROM cnt_v_aanwezigcontract c,
|
||
prs_kostenplaats k,
|
||
prs_kostenplaatsgrp kg,
|
||
prs_perslid p,
|
||
prs_perslid p2,
|
||
prs_afdeling a,
|
||
prs_dienst d,
|
||
prs_bedrijf b,
|
||
ins_tab_discipline cs,
|
||
cnt_contract_plaats cp,
|
||
alg_gebouw g,
|
||
( SELECT cnt_contract_key,
|
||
SUM (cnt_contract_plaats_gewicht)
|
||
cnt_contract_plaats_gewicht
|
||
FROM cnt_contract_plaats
|
||
WHERE cnt_contract_plaats_verwijder IS NULL
|
||
GROUP BY cnt_contract_key) cnt_gew
|
||
WHERE (SYSDATE BETWEEN c.cnt_contract_looptijd_van -- TRUNC(SYSDATE, 'YEAR')
|
||
AND c.cnt_contract_looptijd_tot
|
||
OR c.cnt_contract_looptijd_van >= TRUNC(SYSDATE, 'YEAR')
|
||
OR c.cnt_contract_looptijd_tot >= SYSDATE - 150 )
|
||
AND c.prs_kostenplaats_key = k.prs_kostenplaats_key(+)
|
||
AND k.prs_kostenplaatsgrp_key = kg.prs_kostenplaatsgrp_key(+)
|
||
AND c.prs_perslid_key_beh = p.prs_perslid_key
|
||
AND c.prs_perslid_key_eig = p2.prs_perslid_key(+)
|
||
AND c.prs_afdeling_key_eig = a.prs_afdeling_key
|
||
AND c.cnt_prs_bedrijf_key = b.prs_bedrijf_key
|
||
AND c.prs_dienst_key = d.prs_dienst_key(+)
|
||
AND c.ins_discipline_key = cs.ins_discipline_key
|
||
AND c.cnt_contract_key = cp.cnt_contract_key
|
||
AND cp.cnt_alg_plaats_key = g.alg_gebouw_key
|
||
AND cp.cnt_alg_plaats_code = 'G'
|
||
AND c.cnt_contract_key = cnt_gew.cnt_contract_key;
|
||
|
||
-- rapportage om ruimteinformatie te exporteren / bewerken en importeren in Facilitor
|
||
CREATE OR REPLACE VIEW aaxx_v_rap_imp_ruimte
|
||
(
|
||
fclt_f_locatie,
|
||
fclt_f_gebouw,
|
||
fclt_f_verdieping,
|
||
alg_ruimte_key,
|
||
alg_ruimte_nr,
|
||
alg_ruimte_omschrijving,
|
||
alg_srtruimte_omschrijving,
|
||
mld_dienstniveau_omschr,
|
||
alg_ruimte_bruto_vloeropp
|
||
)
|
||
AS
|
||
SELECT alg_locatie_code,
|
||
alg_gebouw_code,
|
||
alg_verdieping_code,
|
||
alg_ruimte_key,
|
||
alg_ruimte_nr,
|
||
alg_ruimte_omschrijving,
|
||
sr.alg_srtruimte_omschrijving,
|
||
d.mld_dienstniveau_omschr,
|
||
r.alg_ruimte_bruto_vloeropp
|
||
FROM alg_ruimte r,
|
||
mld_dienstniveau d,
|
||
alg_srtruimte sr,
|
||
alg_verdieping v,
|
||
alg_gebouw g,
|
||
alg_locatie l
|
||
WHERE r.mld_dienstniveau_key = d.mld_dienstniveau_key(+)
|
||
AND r.alg_srtruimte_key = sr.alg_srtruimte_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 r.alg_ruimte_verwijder IS NULL;
|
||
|
||
|
||
CREATE OR REPLACE VIEW aaxx_v_rap_stdmelding_gegbasis
|
||
(
|
||
fclt_f_vakgroeptype,
|
||
fclt_f_vakgroep,
|
||
fclt_f_melding,
|
||
groep,
|
||
niet_zichtbaar_fe,
|
||
acceptatietijd,
|
||
uitvoertijd,
|
||
kostensoort,
|
||
kostensoort_code,
|
||
fin_waarde,
|
||
aanwijzing_nederlands,
|
||
aanwijzing_english,
|
||
aanwijzing_deutsch,
|
||
aanwijzing_francais,
|
||
dienst,
|
||
vereist_dienst,
|
||
opdrachttype,
|
||
autoorder,
|
||
alg_niveau,
|
||
vervallen
|
||
)
|
||
AS
|
||
SELECT sd.ins_srtdiscipline_omschrijving,
|
||
d.ins_discipline_omschrijving,
|
||
m.mld_stdmelding_omschrijving,
|
||
g.mld_stdmeldinggroep_naam mld_stdmelding_groep,
|
||
DECODE (m.mld_stdmelding_notfrontend, 1, 'Ja', 'Nee'),
|
||
TO_CHAR (m.mld_stdmelding_t_accepttijd.tijdsduur)
|
||
|| m.mld_stdmelding_t_accepttijd.eenheid,
|
||
TO_CHAR (m.mld_stdmelding_t_uitvoertijd.tijdsduur)
|
||
|| m.mld_stdmelding_t_uitvoertijd.eenheid,
|
||
COALESCE (k2.prs_kostensoort_opmerking,
|
||
k.prs_kostensoort_opmerking),
|
||
COALESCE (k2.prs_kostensoort_oms, k.prs_kostensoort_oms),
|
||
COALESCE (k2.prs_kostensoort_refcode, k.prs_kostensoort_refcode),
|
||
mld_stdmelding_hint,
|
||
len.fac_locale_tekst,
|
||
lde.fac_locale_tekst,
|
||
lfr.fac_locale_tekst,
|
||
d.prs_dienst_omschrijving,
|
||
m.mld_stdmelding_vereisdienst,
|
||
ot.mld_typeopdr_omschrijving,
|
||
m.mld_stdmelding_autoorder,
|
||
alg_onrgoed_niveau,
|
||
mld_stdmelding_vervaldatum
|
||
FROM mld_stdmelding m,
|
||
mld_stdmeldinggroep g,
|
||
mld_discipline d,
|
||
ins_srtdiscipline sd,
|
||
prs_kostensoort k,
|
||
prs_kostensoort k2,
|
||
prs_dienst d,
|
||
mld_typeopdr ot,
|
||
(SELECT fac_locale_kolomkeyval, fac_locale_tekst
|
||
FROM fac_locale
|
||
WHERE fac_locale_kolomnaam = 'MLD_STDMELDING_HINT'
|
||
AND fac_locale_lang = 'EN') len,
|
||
(SELECT fac_locale_kolomkeyval, fac_locale_tekst
|
||
FROM fac_locale
|
||
WHERE fac_locale_kolomnaam = 'MLD_STDMELDING_HINT'
|
||
AND fac_locale_lang = 'DE') lde,
|
||
(SELECT fac_locale_kolomkeyval, fac_locale_tekst
|
||
FROM fac_locale
|
||
WHERE fac_locale_kolomnaam = 'MLD_STDMELDING_HINT'
|
||
AND fac_locale_lang = 'FR') lfr
|
||
WHERE m.mld_stdmelding_verwijder IS NULL
|
||
AND m.mld_ins_discipline_key = d.ins_discipline_key
|
||
AND d.ins_srtdiscipline_key = sd.ins_srtdiscipline_key
|
||
AND d.prs_kostensoort_key = k.prs_kostensoort_key(+)
|
||
AND m.prs_kostensoort_key = k2.prs_kostensoort_key(+)
|
||
AND m.prs_dienst_key = d.prs_dienst_key(+)
|
||
AND m.mld_typeopdr_key = ot.mld_typeopdr_key(+)
|
||
AND m.mld_stdmeldinggroep_key = g.mld_stdmeldinggroep_key(+)
|
||
AND len.fac_locale_kolomkeyval(+) = m.mld_stdmelding_key
|
||
AND lde.fac_locale_kolomkeyval(+) = m.mld_stdmelding_key
|
||
AND lfr.fac_locale_kolomkeyval(+) = m.mld_stdmelding_key;
|
||
|
||
CREATE OR REPLACE VIEW aaxx_v_rap_stdmelding_gegevens
|
||
(
|
||
fclt_f_vakgroeptype,
|
||
fclt_f_vakgroep,
|
||
fclt_f_melding,
|
||
groep,
|
||
niet_zichtbaar_fe,
|
||
acceptatietijd,
|
||
uitvoertijd,
|
||
kostensoort,
|
||
kostensoort_code,
|
||
fin_waarde,
|
||
aanwijzing_nederlands,
|
||
aanwijzing_english,
|
||
aanwijzing_deutsch,
|
||
aanwijzing_francais,
|
||
alg_niveau,
|
||
vervallen,
|
||
vereist_dienst,
|
||
opdrachttype,
|
||
autoorder,
|
||
fclt_f_dienst,
|
||
fclt_f_bedrijf,
|
||
fclt_f_locatie_code,
|
||
fclt_f_gebouw_code
|
||
)
|
||
AS
|
||
SELECT sd.ins_srtdiscipline_omschrijving,
|
||
d.ins_discipline_omschrijving,
|
||
m.mld_stdmelding_omschrijving,
|
||
g.mld_stdmeldinggroep_naam mld_stdmelding_groep,
|
||
DECODE (m.mld_stdmelding_notfrontend, 1, 'Ja', 'Nee'),
|
||
TO_CHAR (m.mld_stdmelding_t_accepttijd.tijdsduur)
|
||
|| m.mld_stdmelding_t_accepttijd.eenheid,
|
||
TO_CHAR (m.mld_stdmelding_t_uitvoertijd.tijdsduur)
|
||
|| m.mld_stdmelding_t_uitvoertijd.eenheid,
|
||
COALESCE (k2.prs_kostensoort_opmerking,
|
||
k.prs_kostensoort_opmerking),
|
||
COALESCE (k2.prs_kostensoort_oms, k.prs_kostensoort_oms),
|
||
COALESCE (k2.prs_kostensoort_refcode, k.prs_kostensoort_refcode),
|
||
mld_stdmelding_hint,
|
||
len.fac_locale_tekst,
|
||
lde.fac_locale_tekst,
|
||
lfr.fac_locale_tekst,
|
||
alg_onrgoed_niveau,
|
||
mld_stdmelding_vervaldatum,
|
||
m.mld_stdmelding_vereisdienst,
|
||
ot.mld_typeopdr_omschrijving,
|
||
m.mld_stdmelding_autoorder,
|
||
dl.dienst,
|
||
dl.bedrijfnaam,
|
||
dl.locatie_code,
|
||
dl.gebouw_code
|
||
FROM mld_stdmelding m,
|
||
mld_stdmeldinggroep g,
|
||
mld_discipline d,
|
||
ins_srtdiscipline sd,
|
||
prs_kostensoort k,
|
||
prs_kostensoort k2,
|
||
(SELECT d.prs_dienst_key,
|
||
prs_bedrijf_naam bedrijfnaam,
|
||
prs_dienst_omschrijving dienst,
|
||
alg_locatie_code locatie_code,
|
||
alg_gebouw_upper gebouw_code
|
||
FROM prs_v_aanwezigbedrijf b,
|
||
prs_dienst d,
|
||
alg_locatie l,
|
||
alg_gebouw g,
|
||
prs_bedrijfdienstlocatie bdl
|
||
WHERE b.prs_bedrijf_key = bdl.prs_bedrijf_key(+)
|
||
AND bdl.prs_dienst_key = d.prs_dienst_key(+)
|
||
AND bdl.alg_locatie_key = l.alg_locatie_key(+)
|
||
AND bdl.alg_gebouw_key = g.alg_gebouw_key(+)
|
||
AND COALESCE (b.prs_bedrijf_intern, 0) = 0) dl,
|
||
mld_typeopdr ot,
|
||
(SELECT fac_locale_kolomkeyval, fac_locale_tekst
|
||
FROM fac_locale
|
||
WHERE fac_locale_kolomnaam = 'MLD_STDMELDING_HINT'
|
||
AND fac_locale_lang = 'EN') len,
|
||
(SELECT fac_locale_kolomkeyval, fac_locale_tekst
|
||
FROM fac_locale
|
||
WHERE fac_locale_kolomnaam = 'MLD_STDMELDING_HINT'
|
||
AND fac_locale_lang = 'DE') lde,
|
||
(SELECT fac_locale_kolomkeyval, fac_locale_tekst
|
||
FROM fac_locale
|
||
WHERE fac_locale_kolomnaam = 'MLD_STDMELDING_HINT'
|
||
AND fac_locale_lang = 'FR') lfr
|
||
WHERE m.mld_stdmelding_verwijder IS NULL
|
||
AND m.mld_ins_discipline_key = d.ins_discipline_key
|
||
AND d.ins_srtdiscipline_key = sd.ins_srtdiscipline_key
|
||
AND d.prs_kostensoort_key = k.prs_kostensoort_key(+)
|
||
AND m.prs_kostensoort_key = k2.prs_kostensoort_key(+)
|
||
AND m.prs_dienst_key = dl.prs_dienst_key(+)
|
||
AND m.mld_typeopdr_key = ot.mld_typeopdr_key(+)
|
||
AND m.mld_stdmeldinggroep_key = g.mld_stdmeldinggroep_key(+)
|
||
AND len.fac_locale_kolomkeyval(+) = m.mld_stdmelding_key
|
||
AND lde.fac_locale_kolomkeyval(+) = m.mld_stdmelding_key
|
||
AND lfr.fac_locale_kolomkeyval(+) = m.mld_stdmelding_key;
|
||
|
||
-- Ticket RABO#66623 - Bewaking afmelding bij vervolgmeldingen (toepassing o.a. bij N-meldingen binnen Assetmanagement)
|
||
CREATE OR REPLACE VIEW aaxx_v_rap_bewaking_vervolgmld
|
||
(
|
||
VAKGROEPTYPE,
|
||
VAKGROEP,
|
||
HOOFD_MELDING_NR,
|
||
AANVRAGER,
|
||
GEKOPPELD,
|
||
HOOFD_MELDING_DATUM,
|
||
HOOFD_MELDING_STATUS,
|
||
VERVOLGMELDINGEN_AANTAL,
|
||
VERVOLGMELDINGEN,
|
||
VERVOLGMELDING_AFGEHANDELD,
|
||
OP_CONTROLELIJST
|
||
)
|
||
AS
|
||
SELECT sd.ins_srtdiscipline_omschrijving,
|
||
md.ins_discipline_omschrijving,
|
||
m.mld_melding_key,
|
||
p.prs_perslid_naam,
|
||
CASE WHEN m.mld_melding_parentkey IS NULL THEN 'nee' ELSE 'ja, via ' || TO_CHAR(m.mld_melding_key) END
|
||
gekoppeld,
|
||
m.mld_melding_datum,
|
||
s.mld_statuses_omschrijving,
|
||
v1.aantal,
|
||
v1.vervolgmeldingen,
|
||
COALESCE(v2.aantal_afgehandeld,0)
|
||
vervolgmeldingen_afgehandeld,
|
||
CASE WHEN mld_melding_status NOT IN (1,5,6)
|
||
AND COALESCE(v2.aantal_afgehandeld,0) = v1.aantal
|
||
THEN 'ja'
|
||
ELSE 'nee'
|
||
END op_controlelijst
|
||
FROM mld_melding m, mld_statuses s, prs_perslid p, mld_stdmelding sm, mld_discipline md, ins_srtdiscipline sd,
|
||
(SELECT m.mld_melding_start_key, count(*) aantal,
|
||
LISTAGG ( TO_CHAR (m.mld_melding_key)
|
||
|| ' (' || s.mld_statuses_omschrijving || ')',
|
||
chr(13) || chr(10))
|
||
WITHIN GROUP (ORDER BY m.mld_melding_key)
|
||
AS vervolgmeldingen
|
||
FROM mld_melding m, mld_statuses s
|
||
WHERE m.mld_melding_start_key IS NOT NULL
|
||
AND mld_workflowstep_key IS NULL
|
||
AND m.mld_melding_status = s.mld_statuses_key
|
||
GROUP BY m.mld_melding_start_key ) v1,
|
||
(SELECT m.mld_melding_start_key, count(*) aantal_afgehandeld
|
||
FROM mld_melding m
|
||
WHERE m.mld_melding_start_key IS NOT NULL
|
||
AND mld_workflowstep_key IS NULL
|
||
AND mld_melding_status IN (1,5,6)
|
||
GROUP BY m.mld_melding_start_key ) v2
|
||
WHERE m.mld_melding_status = s.mld_statuses_key
|
||
AND m.prs_perslid_key = p.prs_perslid_key
|
||
AND m.mld_stdmelding_key = sm.mld_stdmelding_key
|
||
AND sm.mld_ins_discipline_key = md.ins_discipline_key
|
||
AND sd.ins_srtdiscipline_key = md.ins_srtdiscipline_key
|
||
AND m.mld_melding_key = v1.mld_melding_start_key
|
||
AND m.mld_melding_key = v2.mld_melding_start_key (+)
|
||
;
|
||
|
||
|
||
-- Grafische thema's en labels voor de plattegrond met reserveringsinfo
|
||
CREATE OR REPLACE VIEW aaxx_v_cad_label_res_info
|
||
(
|
||
alg_ruimte_key,
|
||
waarde
|
||
)
|
||
AS
|
||
SELECT rar.alg_ruimte_key,
|
||
max( TO_CHAR (res_rsv_ruimte_van, 'HH24:MI')
|
||
|| '-'
|
||
|| TO_CHAR (res_rsv_ruimte_tot, 'HH24:MI')
|
||
|| '~[s60]host: '
|
||
|| prs_perslid_naam
|
||
|| '~[s40][b]'
|
||
|| DECODE (COALESCE (INSTR (res_rsv_ruimte_omschrijving, ' ', 15),0),
|
||
0, res_rsv_ruimte_omschrijving,
|
||
SUBSTR (res_rsv_ruimte_omschrijving, 1, INSTR (res_rsv_ruimte_omschrijving, ' ', 15)-1)
|
||
|| chr(10)
|
||
|| '~[s40][b]' || SUBSTR(res_rsv_ruimte_omschrijving, INSTR(res_rsv_ruimte_omschrijving, ' ', 15)+1, 50))
|
||
) waarde
|
||
FROM res_v_aanwezigrsv_ruimte rrr,
|
||
res_ruimte_opstelling rro,
|
||
res_ruimte rr,
|
||
res_alg_ruimte rar,
|
||
res_opstelling ro,
|
||
prs_perslid pp
|
||
WHERE rrr.res_ruimte_opstel_key = rro.res_ruimte_opstel_key
|
||
AND rro.res_ruimte_key = rr.res_ruimte_key
|
||
AND rro.res_opstelling_key = ro.res_opstelling_key
|
||
AND rar.res_ruimte_key = rr.res_ruimte_key
|
||
AND SYSDATE BETWEEN res_rsv_ruimte_van - (1 / 96) -- kwartier
|
||
AND res_rsv_ruimte_tot
|
||
AND pp.prs_perslid_key = res_rsv_ruimte_host_key
|
||
AND (res_rsv_ruimte_bezoekers_shown IS NULL
|
||
OR res_rsv_ruimte_bezoekers_shown > 0)
|
||
GROUP BY rar.alg_ruimte_key;
|
||
|
||
|
||
CREATE OR REPLACE VIEW aaxx_v_cad_thema_resinfo
|
||
(
|
||
alg_ruimte_key,
|
||
waarde
|
||
)
|
||
AS
|
||
SELECT rar.alg_ruimte_key alg_ruimte_key,
|
||
ROUND ( (res_rsv_ruimte_tot - SYSDATE) * 24, 2) waarde
|
||
FROM res_v_aanwezigrsv_ruimte rrr,
|
||
res_ruimte_opstelling rro,
|
||
res_ruimte rr,
|
||
res_alg_ruimte rar,
|
||
res_opstelling ro
|
||
WHERE rrr.res_ruimte_opstel_key = rro.res_ruimte_opstel_key
|
||
AND rro.res_ruimte_key = rr.res_ruimte_key
|
||
AND rro.res_opstelling_key = ro.res_opstelling_key
|
||
AND rar.res_ruimte_key = rr.res_ruimte_key
|
||
AND SYSDATE BETWEEN res_rsv_ruimte_van AND res_rsv_ruimte_tot
|
||
AND (res_rsv_ruimte_bezoekers_shown IS NULL
|
||
OR res_rsv_ruimte_bezoekers_shown > 0)
|
||
UNION
|
||
-- binnenkort aanvangende reserveringen
|
||
SELECT rar.alg_ruimte_key alg_ruimte_key,
|
||
ROUND ( (SYSDATE - res_rsv_ruimte_van) * 24, 2) waarde
|
||
FROM res_v_aanwezigrsv_ruimte rrr,
|
||
res_ruimte_opstelling rro,
|
||
res_ruimte rr,
|
||
res_alg_ruimte rar,
|
||
res_opstelling ro
|
||
WHERE rrr.res_ruimte_opstel_key = rro.res_ruimte_opstel_key
|
||
AND rro.res_ruimte_key = rr.res_ruimte_key
|
||
AND rro.res_opstelling_key = ro.res_opstelling_key
|
||
AND rar.res_ruimte_key = rr.res_ruimte_key
|
||
AND SYSDATE BETWEEN res_rsv_ruimte_van - (1 / 24)
|
||
AND res_rsv_ruimte_tot
|
||
AND SYSDATE < res_rsv_ruimte_van
|
||
AND (res_rsv_ruimte_bezoekers_shown IS NULL
|
||
OR res_rsv_ruimte_bezoekers_shown > 0)
|
||
UNION
|
||
-- voorlopig vrije ruimte
|
||
SELECT rar.alg_ruimte_key alg_ruimte_key, 0 waarde
|
||
FROM res_ruimte_opstelling rro,
|
||
res_ruimte rr,
|
||
res_alg_ruimte rar,
|
||
res_opstelling ro
|
||
WHERE rro.res_ruimte_key = rr.res_ruimte_key
|
||
AND rro.res_opstelling_key = ro.res_opstelling_key
|
||
AND rar.res_ruimte_key = rr.res_ruimte_key
|
||
AND NOT EXISTS
|
||
(SELECT ''
|
||
FROM res_v_aanwezigrsv_ruimte rrr
|
||
WHERE rrr.res_ruimte_opstel_key = rro.res_ruimte_opstel_key
|
||
AND SYSDATE BETWEEN res_rsv_ruimte_van - (1 / 24)
|
||
AND res_rsv_ruimte_tot
|
||
AND (res_rsv_ruimte_bezoekers_shown IS NULL
|
||
OR res_rsv_ruimte_bezoekers_shown > 0));
|
||
|
||
|
||
|
||
|
||
-- view voor het exporteren van een catalogus. Deze kan later via de import ingelezen worden.
|
||
CREATE OR REPLACE VIEW aaxx_v_imp_bes_artikel_sync
|
||
(
|
||
FCLT_F_CatalogusNaam,
|
||
Leverancier,
|
||
CatDatum,
|
||
Artikelnr,
|
||
Groep,
|
||
Omschrijving,
|
||
Prijs,
|
||
Eenheid,
|
||
Picture,
|
||
Orderaantal,
|
||
Tax,
|
||
DueDate,
|
||
Inkoopprijs,
|
||
Minimum,
|
||
Staffeltabel,
|
||
Wijzigdagen,
|
||
Annuleerdagen
|
||
)
|
||
AS
|
||
SELECT td.ins_discipline_omschrijving,
|
||
b.prs_bedrijf_naam,
|
||
TO_CHAR (td.ins_discipline_aanmaak, 'yyyymmdd'),
|
||
sd.bes_srtdeel_nr,
|
||
sg.bes_srtgroep_omschrijving,
|
||
sd.bes_srtdeel_omschrijving,
|
||
TO_CHAR (bes.getsrtdeelprijs (sd.bes_srtdeel_key, NULL)),
|
||
sd.bes_srtdeel_eenheid,
|
||
sd.bes_srtdeel_image,
|
||
TO_CHAR (sd.bes_srtdeel_veelvoud),
|
||
TO_CHAR (sd.bes_srtdeel_btw),
|
||
TO_CHAR (sd.bes_srtdeel_vervaldatum, 'yyyymmdd'),
|
||
TO_CHAR (bes.getsrtdeelinkprijs (sd.bes_srtdeel_key, NULL)),
|
||
NULL,
|
||
bs.bes_staffeltabel_naam,
|
||
sd.bes_srtdeel_wijzigdagen,
|
||
sd.bes_srtdeel_annuleerdagen
|
||
FROM ins_tab_discipline td,
|
||
bes_srtgroep sg,
|
||
bes_srtdeel sd,
|
||
prs_bedrijf b,
|
||
bes_staffeltabel bs
|
||
WHERE td.ins_discipline_module = 'BES'
|
||
AND td.ins_discipline_verwijder IS NULL
|
||
AND td.ins_discipline_key = sg.ins_discipline_key
|
||
AND sg.bes_srtgroep_verwijder IS NULL
|
||
AND sg.bes_srtgroep_key = sd.bes_srtgroep_key
|
||
AND sd.bes_srtdeel_verwijder IS NULL
|
||
AND sd.prs_bedrijf_key = b.prs_bedrijf_key
|
||
AND bs.bes_staffeltabel_key(+) = sd.bes_staffeltabel_key;
|
||
|
||
CREATE OR REPLACE VIEW aaxx_v_rap_kostenmutatie
|
||
(
|
||
opdracht,
|
||
vakgroeptype,
|
||
vakgroep,
|
||
mutatie,
|
||
fclt_d_datum,
|
||
fclt_f_leverancier,
|
||
persoon
|
||
)
|
||
AS
|
||
SELECT o.mld_melding_key || '/' || o.mld_opdr_bedrijfopdr_volgnr opdracht,
|
||
(SELECT ins_srtdiscipline_omschrijving
|
||
FROM ins_srtdiscipline sd
|
||
WHERE sd.ins_srtdiscipline_key = d.ins_srtdiscipline_key)
|
||
Vakgroeptype,
|
||
ins_discipline_omschrijving vakgroep,
|
||
SUBSTR (
|
||
fac_tracking_oms,
|
||
INSTR (fac_tracking_oms, 'Totaal ex. BTW:'),
|
||
DECODE (
|
||
INSTR (fac_tracking_oms,
|
||
CHR (10),
|
||
INSTR (fac_tracking_oms, 'Totaal ex. BTW:')),
|
||
0,
|
||
10000,
|
||
INSTR (fac_tracking_oms,
|
||
CHR (10),
|
||
INSTR (fac_tracking_oms, 'Totaal ex. BTW:')))
|
||
- INSTR (fac_tracking_oms, 'Totaal ex. BTW:'))
|
||
oud_nieuw,
|
||
TO_CHAR (fac_tracking_datum, 'dd-mm-yyyy') datum,
|
||
prs_bedrijf_naam leverancier,
|
||
prs_perslid_naam_full persoon
|
||
FROM fac_tracking t,
|
||
mld_opdr o,
|
||
mld_melding m,
|
||
mld_stdmelding std,
|
||
ins_tab_discipline d,
|
||
prs_v_perslid_fullnames_all pf,
|
||
prs_bedrijf b
|
||
WHERE fac_tracking_oms LIKE '%Totaal ex. BTW:%'
|
||
AND t.fac_tracking_refkey = o.mld_opdr_key
|
||
AND o.mld_melding_key = m.mld_melding_key
|
||
AND m.mld_stdmelding_key = std.mld_stdmelding_key
|
||
AND std.mld_ins_discipline_key = d.ins_discipline_key
|
||
AND t.prs_perslid_key = pf.prs_perslid_key(+)
|
||
AND o.mld_uitvoerende_keys = b.prs_bedrijf_key(+)
|
||
AND t.fac_tracking_datum BETWEEN mld.getopdrachtstatusdate (
|
||
o.mld_opdr_key,
|
||
6) -- afgemeld
|
||
AND COALESCE (
|
||
mld.getopdrachtstatusdate (
|
||
o.mld_opdr_key,
|
||
9), -- afgerond
|
||
SYSDATE);
|
||
|
||
CREATE OR REPLACE VIEW aaxx_v_rap_bedrijf_orderadres
|
||
(
|
||
fclt_f_bedrijf,
|
||
fclt_f_plaats,
|
||
fclt_f_nummer,
|
||
fclt_f_email,
|
||
fclt_f_kanaal,
|
||
fclt_f_type,
|
||
fclt_f_orderadres,
|
||
stylesheet,
|
||
afzender_adres,
|
||
reply_adres,
|
||
gedeelde_gebruiker,
|
||
gedeelde_geheim,
|
||
gedeelde_geheim_dagen,
|
||
bijlagen_meesturen,
|
||
bijlage_vast,
|
||
district,
|
||
locatie,
|
||
relatietype
|
||
)
|
||
AS
|
||
SELECT b.prs_bedrijf_naam,
|
||
b.prs_bedrijf_bezoek_plaats,
|
||
b.prs_leverancier_nr,
|
||
b.prs_bedrijf_email,
|
||
a.prs_bedrijfadres_type,
|
||
DECODE (a.prs_bedrijfadres_type,
|
||
'C', 'Contract',
|
||
'B', 'Bestelling',
|
||
'Opdracht')
|
||
|| ' '
|
||
|| ot.mld_typeopdr_omschrijving
|
||
TYPE,
|
||
a.prs_bedrijfadres_url,
|
||
a.prs_bedrijfadres_xsl,
|
||
a.prs_bedrijfadres_sender,
|
||
a.prs_bedrijfadres_replyaddress,
|
||
(SELECT p.prs_perslid_naam || ' (' || TO_CHAR(p.prs_perslid_key) || ')' FROM prs_perslid p WHERE p.prs_perslid_verwijder IS NULL AND p.prs_perslid_key = a.prs_bedrijfadres_lockuser_key)
|
||
gedeelde_gebruiker,
|
||
a.prs_bedrijfadres_locksecret,
|
||
a.prs_bedrijfadres_lockexpire,
|
||
DECODE(
|
||
CASE WHEN a.prs_bedrijfadres_flexfiles = 0 THEN fac.getsetting ('puo_order_flexfiles') ELSE TO_CHAR(a.prs_bedrijfadres_flexfiles) END,
|
||
'1', 'ja',
|
||
'nee') -- 2 = nee, 1 = ja, 0 = standaard
|
||
bijlage_vast,
|
||
a.prs_bedrijfadres_attachfile,
|
||
d.alg_district_omschrijving,
|
||
CASE WHEN l.alg_locatie_code IS NULL THEN '' ELSE l.alg_locatie_omschrijving || ' (' || l.alg_locatie_code || ')' END
|
||
locatie,
|
||
(SELECT r.prs_relatietype_omschrijving FROM prs_relatietype r WHERE r.prs_relatietype_key = b.prs_relatietype_key)
|
||
relatietype
|
||
FROM prs_bedrijf b, prs_bedrijfadres a, mld_typeopdr ot, alg_locatie l, alg_district d
|
||
WHERE b.prs_bedrijf_key = a.prs_bedrijf_key
|
||
AND b.prs_bedrijf_verwijder IS NULL
|
||
AND NVL (b.prs_bedrijf_intern, 0) <> 1
|
||
AND a.mld_typeopdr_key = ot.mld_typeopdr_key(+)
|
||
AND a.alg_locatie_key = l.alg_locatie_key(+)
|
||
AND a.alg_district_key = d.alg_district_key(+) ;
|
||
|
||
-- view om offertestatus in dashbord te tonen
|
||
-- functionaliteit overgenomen uit mld.inc
|
||
CREATE OR REPLACE VIEW aaxx_v_rap_offerte_status
|
||
AS
|
||
SELECT m.melder_key,
|
||
m.melder,
|
||
u.*,
|
||
g.prs_perslid_key_verantw opdracht_gebouw_verantw_key,
|
||
m.kostensoort kostensoort,
|
||
subproductgroepgroep,
|
||
DECODE (
|
||
COALESCE (na.aantal, 0),
|
||
1,
|
||
'Offerte geaccepteerd',
|
||
DECODE (COALESCE (nta.aantal, 0),
|
||
0, 'Niet opgelost',
|
||
'Offerte acceptatie'))
|
||
offerte_status,
|
||
(CASE
|
||
WHEN mo.mld_opdr_flag>0 THEN Lcl.L('lcl_opdr_flag' || mo.mld_opdr_flag)
|
||
ELSE ''
|
||
END) vlag,
|
||
(SELECT ok.waarde_n
|
||
FROM mld_v_udr_opdrachtkenmerk_cnd ok
|
||
WHERE ok.opdracht_key = u.opdracht_key AND ok.kenmerk = 'Offerte bedrag'
|
||
) Offertebedrag,-- Op naam 'Offerte bedrag' ipv Key ivm gebruik afwijkende keys in de diverse HeyDayomgevingen
|
||
(SELECT fac.safe_to_number(kw.mld_kenmerkmelding_waarde)
|
||
FROM mld_kenmerkmelding kw, mld_kenmerk km, mld_srtkenmerk sk
|
||
WHERE kw.mld_melding_key = m.melding_key AND kw.mld_kenmerk_key = km.mld_kenmerk_key
|
||
AND km.mld_srtkenmerk_key = sk.mld_srtkenmerk_key
|
||
AND sk.mld_srtkenmerk_upper = 'PROJECT LEIDER'
|
||
AND sk.mld_srtkenmerk_kenmerktype = 'S') projectleider_key,
|
||
(SELECT p.prs_perslid_naam
|
||
FROM mld_kenmerkmelding kw, mld_kenmerk km, mld_srtkenmerk sk, prs_perslid p
|
||
WHERE kw.mld_melding_key = m.melding_key AND kw.mld_kenmerk_key = km.mld_kenmerk_key
|
||
AND km.mld_srtkenmerk_key = sk.mld_srtkenmerk_key
|
||
AND sk.mld_srtkenmerk_upper = 'PROJECT LEIDER'
|
||
AND sk.mld_srtkenmerk_kenmerktype = 'S'
|
||
AND fac.safe_to_number (kw.mld_kenmerkmelding_waarde) = p.prs_perslid_key) projectleider
|
||
FROM mld_v_udr_opdracht u,
|
||
mld_opdr mo,
|
||
alg_gebouw g,
|
||
mld_v_udr_melding m,
|
||
ins_tab_discipline d,
|
||
( SELECT o.mld_melding_key, COUNT (o.mld_statusopdr_key) aantal
|
||
FROM mld_opdr o
|
||
WHERE o.mld_statusopdr_key = 6
|
||
AND o.mld_opdr_key >
|
||
COALESCE (
|
||
(SELECT MAX (o1.mld_opdr_key)
|
||
FROM mld_opdr o1, mld_typeopdr mo1
|
||
WHERE o1.mld_typeopdr_key =
|
||
mo1.mld_typeopdr_key
|
||
AND mo1.mld_typeopdr_isofferte = 0
|
||
AND o1.mld_melding_key = o.mld_melding_key),
|
||
0)
|
||
GROUP BY o.mld_melding_key) nta,
|
||
( SELECT o.mld_melding_key, COUNT (o.mld_statusopdr_key) aantal
|
||
FROM mld_opdr o
|
||
WHERE o.mld_statusopdr_key = 9
|
||
AND o.mld_opdr_key >
|
||
COALESCE (
|
||
(SELECT MAX (o1.mld_opdr_key)
|
||
FROM mld_opdr o1, mld_typeopdr mo1
|
||
WHERE o1.mld_typeopdr_key =
|
||
mo1.mld_typeopdr_key
|
||
AND mo1.mld_typeopdr_isofferte = 0
|
||
AND o1.mld_melding_key = o.mld_melding_key),
|
||
0)
|
||
GROUP BY o.mld_melding_key) na
|
||
WHERE u.opdracht_gebouwcode = g.alg_gebouw_code
|
||
AND u.melding_key = m.melding_key
|
||
AND u.opdracht_key = mo.mld_opdr_key
|
||
AND m.fclt_3d_discipline_key = d.ins_discipline_key
|
||
AND d.ins_discipline_verwijder IS NULL
|
||
AND u.melding_key = na.mld_melding_key(+)
|
||
AND u.melding_key = nta.mld_melding_key(+)
|
||
AND (u.opdracht_type = 'RFQ' OR u.opdracht_type = 'Project RFQ') ;
|
||
|
||
CREATE OR REPLACE VIEW aaxx_v_rap_trace_uitvoerder
|
||
(
|
||
fclt_x_fm,
|
||
fclt_x_tfm,
|
||
html_opdracht,
|
||
fclt_f_district,
|
||
fclt_f_locatie,
|
||
fclt_f_gebouw,
|
||
fclt_f_bedrijf,
|
||
opdracht_omschrijving,
|
||
einddatum,
|
||
t,
|
||
m,
|
||
e,
|
||
notitie_datum,
|
||
notitie_omschrijving
|
||
)
|
||
AS
|
||
SELECT COALESCE (p.prs_perslid_naam_full, 'Onbekend') fmer, -- verantwoordelijke FMer
|
||
COALESCE (
|
||
(SELECT fac.getdomeinwaarde (fac_kenmerkdomein_key,
|
||
alg_onrgoedkenmerk_waarde)
|
||
FROM alg_kenmerk k, alg_onrgoedkenmerk ogk
|
||
WHERE k.alg_kenmerk_key = ogk.alg_kenmerk_key
|
||
AND ogk.alg_onrgoed_key = g.alg_gebouw_key
|
||
AND k.alg_kenmerk_key =
|
||
DECODE (aaxx_get_user,
|
||
'SABIC', 1180,
|
||
-1)),
|
||
'Onbekend'
|
||
)
|
||
tfmer, -- verantwoordelijke Technisch FMer
|
||
'<a onclick=''FcltMgr.openDetail("Appl/MLD/mld_opdr.asp?urole=bo&'
|
||
|| 'opdr_key='
|
||
|| o.mld_opdr_key
|
||
|| ' ", "Opdracht '
|
||
|| o.mld_melding_key
|
||
|| '/'
|
||
|| o.mld_opdr_bedrijfopdr_volgnr
|
||
|| '")''>'
|
||
|| o.mld_melding_key
|
||
|| '/'
|
||
|| o.mld_opdr_bedrijfopdr_volgnr
|
||
|| '</a>'
|
||
opdracht,
|
||
d.alg_district_omschrijving,
|
||
l.alg_locatie_omschrijving,
|
||
g.alg_gebouw_code||'-'||g.alg_gebouw_naam,
|
||
prs_bedrijf_naam,
|
||
mld_opdr_omschrijving,
|
||
mld_opdr_einddatum,
|
||
(SELECT COUNT ( * )
|
||
FROM mld_opdr_note n3
|
||
WHERE n3.mld_opdr_key = o.mld_opdr_key
|
||
AND UPPER (n3.mld_opdr_note_omschrijving) LIKE '%#T%')
|
||
nt,
|
||
(SELECT COUNT ( * )
|
||
FROM mld_opdr_note n3
|
||
WHERE n3.mld_opdr_key = o.mld_opdr_key
|
||
AND UPPER (n3.mld_opdr_note_omschrijving) LIKE '%#M%')
|
||
nm,
|
||
(SELECT COUNT ( * )
|
||
FROM mld_opdr_note n3
|
||
WHERE n3.mld_opdr_key = o.mld_opdr_key
|
||
AND UPPER (n3.mld_opdr_note_omschrijving) LIKE '%#E%')
|
||
ne,
|
||
lastnote.mld_opdr_note_aanmaak,
|
||
lastnote.mld_opdr_note_omschrijving omschrijving
|
||
FROM mld_opdr o,
|
||
mld_melding m,
|
||
mld_stdmelding std,
|
||
prs_bedrijf b,
|
||
alg_v_onroerendgoed alg,
|
||
alg_gebouw g,
|
||
alg_locatie l,
|
||
alg_district d,
|
||
prs_v_perslid_fullnames_all p,
|
||
(SELECT n.mld_opdr_key,
|
||
mld_opdr_note_aanmaak,
|
||
mld_opdr_note_omschrijving
|
||
FROM mld_opdr_note n
|
||
WHERE ( UPPER (n.mld_opdr_note_omschrijving) LIKE '%#T%'
|
||
OR UPPER (n.mld_opdr_note_omschrijving) LIKE '%#M%'
|
||
OR UPPER (n.mld_opdr_note_omschrijving) LIKE '%#E%')
|
||
AND NOT EXISTS
|
||
(SELECT mld_opdr_note_key
|
||
FROM mld_opdr_note n2
|
||
WHERE n2.mld_opdr_note_aanmaak >
|
||
n.mld_opdr_note_aanmaak
|
||
AND n2.mld_opdr_key = n.mld_opdr_key))
|
||
note,
|
||
(SELECT n.mld_opdr_key,
|
||
mld_opdr_note_aanmaak,
|
||
mld_opdr_note_omschrijving
|
||
FROM mld_opdr_note n
|
||
WHERE NOT EXISTS
|
||
(SELECT mld_opdr_note_key
|
||
FROM mld_opdr_note n2
|
||
WHERE n2.mld_opdr_note_aanmaak >
|
||
n.mld_opdr_note_aanmaak
|
||
AND n2.mld_opdr_key = n.mld_opdr_key))
|
||
lastnote
|
||
WHERE o.mld_opdr_einddatum < SYSDATE
|
||
AND o.mld_opdr_key = note.mld_opdr_key(+)
|
||
AND o.fac_activiteit_key IS NULL
|
||
AND o.mld_opdr_key = lastnote.mld_opdr_key(+)
|
||
AND m.mld_stdmelding_key = std.mld_stdmelding_key
|
||
AND std.mld_stdmelding_slabewaken = 1
|
||
AND o.mld_statusopdr_key IN (5, 8) -- Toegekend + Geaccepteerd
|
||
AND b.prs_bedrijf_key = o.mld_uitvoerende_keys
|
||
AND m.mld_melding_key = o.mld_melding_key
|
||
AND g.prs_perslid_key_verantw = p.prs_perslid_key(+)
|
||
AND m.mld_alg_onroerendgoed_keys = alg.alg_onroerendgoed_keys
|
||
AND alg.alg_gebouw_key = g.alg_gebouw_key
|
||
AND g.alg_locatie_key = l.alg_locatie_key
|
||
AND l.alg_district_key = d.alg_district_key
|
||
AND (note.mld_opdr_note_aanmaak IS NULL
|
||
OR note.mld_opdr_note_aanmaak < SYSDATE - 7);
|
||
|
||
|
||
CREATE OR REPLACE VIEW aaxx_v_rap_trace_uitv_z_tfm
|
||
(
|
||
fclt_x_fm,
|
||
html_opdracht,
|
||
fclt_f_district,
|
||
fclt_f_locatie,
|
||
fclt_f_gebouw,
|
||
fclt_f_bedrijf,
|
||
opdracht_omschrijving,
|
||
einddatum,
|
||
t,
|
||
m,
|
||
e,
|
||
notitie_datum,
|
||
notitie_omschrijving
|
||
)
|
||
AS
|
||
SELECT fclt_x_fm,
|
||
html_opdracht,
|
||
fclt_f_district,
|
||
fclt_f_locatie,
|
||
fclt_f_gebouw,
|
||
fclt_f_bedrijf,
|
||
opdracht_omschrijving,
|
||
einddatum,
|
||
t,
|
||
m,
|
||
e,
|
||
notitie_datum,
|
||
notitie_omschrijving
|
||
FROM aaxx_v_rap_trace_uitvoerder;
|
||
|
||
|
||
/* Formatted on 19-7-2016 18:06:24 (QP5 v5.136.908.31019) */
|
||
CREATE OR REPLACE VIEW aaxx_v_rap_catering_export
|
||
(
|
||
reservering,
|
||
fclt_f_afdelingscode,
|
||
afdelings_omschrijving,
|
||
boekingsdatum,
|
||
afmelddatum,
|
||
fclt_f_periode,
|
||
aanvrager,
|
||
gebouw,
|
||
aantal,
|
||
artikel,
|
||
btw,
|
||
totaal
|
||
)
|
||
AS
|
||
SELECT rrr.res_reservering_key || '/' || rrr.res_rsv_ruimte_volgnr
|
||
reservering,
|
||
k.prs_kostenplaats_nr,
|
||
k.prs_kostenplaats_omschrijving,
|
||
rra.res_rsv_artikel_levering,
|
||
rra.res_rsv_artikel_afgemeld,
|
||
TO_CHAR (ADD_MONTHS (rra.res_rsv_artikel_verwerkt, -1), 'yyyy-mm')
|
||
periode,
|
||
pf.prs_perslid_naam_full,
|
||
g.alg_gebouw_code,
|
||
rra.res_rsv_artikel_aantal,
|
||
ra.res_artikel_omschrijving,
|
||
ra.res_artikel_btw,
|
||
rra.res_rsv_artikel_prijs
|
||
FROM res_rsv_artikel rra,
|
||
res_rsv_ruimte rrr,
|
||
prs_kostenplaats k,
|
||
prs_perslid p,
|
||
alg_gebouw g,
|
||
prs_afdeling a,
|
||
prs_v_perslid_fullnames_all pf,
|
||
res_artikel ra,
|
||
( SELECT res_rsv_ruimte_key, MAX (alg_gebouw_key) alg_gebouw_key
|
||
FROM (SELECT rrr.res_rsv_ruimte_key,
|
||
(SELECT alg_gebouw_key
|
||
FROM alg_verdieping v, alg_ruimte r
|
||
WHERE v.alg_verdieping_key = r.alg_verdieping_key
|
||
AND r.alg_ruimte_key = COALESCE (r2ar.alg_ruimte_key, rrr.alg_ruimte_key))
|
||
alg_gebouw_key
|
||
FROM res_v_rsv_ruimte_2_alg_ruimte r2ar,
|
||
res_v_aanwezigrsv_ruimte rrr
|
||
WHERE rrr.res_rsv_ruimte_key = r2ar.res_rsv_ruimte_key(+))
|
||
GROUP BY res_rsv_ruimte_key) rg
|
||
WHERE rra.res_status_bo_key = 6
|
||
AND rra.res_rsv_ruimte_key = rrr.res_rsv_ruimte_key
|
||
AND rrr.prs_kostenplaats_key = k.prs_kostenplaats_key(+)
|
||
AND rrr.res_rsv_ruimte_host_key = p.prs_perslid_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 rrr.res_rsv_ruimte_key = rg.res_rsv_ruimte_key
|
||
AND rg.alg_gebouw_key = g.alg_gebouw_key(+);
|
||
|
||
CREATE OR REPLACE VIEW aaxx_v_rap_login_user (hide_f_datum, fclt_d_datum, aantal)
|
||
AS
|
||
SELECT trunc(sysdate)-trunc(pl.login_datum),
|
||
TO_CHAR (pl.login_datum, 'dd-mm-yyyy'),
|
||
COUNT (prs_perslid_key)
|
||
FROM aaxx_perslid_login pl
|
||
GROUP BY trunc(sysdate)-trunc(pl.login_datum),
|
||
TO_CHAR (pl.login_datum, 'dd-mm-yyyy');
|
||
|
||
CREATE OR REPLACE VIEW aaxx_v_rap_errorlog
|
||
(
|
||
HIDE_F_IMP_LOG_DATUM,
|
||
FCLT_F_APPLICATIE,
|
||
FCLT_F_DATUM,
|
||
TIJDSTIP,
|
||
FCLT_F_NIVEAU,
|
||
FCLT_F_OMSCHRIJVING,
|
||
FCLT_F_HINT
|
||
)
|
||
AS
|
||
SELECT imp_log_datum hide_f_imp_log_datum,
|
||
imp_log_applicatie,
|
||
TO_CHAR (imp_log_datum, 'YYYYMMDD') fclt_f_datum,
|
||
TO_CHAR (imp_log_datum, 'HH24:MI:SS') tijdstip,
|
||
DECODE (imp_log_status,
|
||
'F', 'Fataal',
|
||
'E', 'Error',
|
||
'W', 'Waarschuwing',
|
||
'I', 'Informatief',
|
||
'-')
|
||
fclt_f_niveau,
|
||
imp_log_omschrijving fclt_f_omschrijving,
|
||
imp_log_hint fclt_f_hint
|
||
FROM imp_log;
|
||
|
||
CREATE OR REPLACE VIEW aaxx_v_rap_lang_stdmelding_oms
|
||
(
|
||
key,
|
||
vakgroeptype,
|
||
vakgroep,
|
||
melding_omschrijving,
|
||
en,
|
||
de
|
||
)
|
||
AS
|
||
SELECT mld_stdmelding_key,
|
||
ins_srtdiscipline_prefix,
|
||
ins_discipline_omschrijving,
|
||
mld_stdmelding_omschrijving,
|
||
(SELECT fac_locale_tekst
|
||
FROM fac_locale
|
||
WHERE fac_locale_kolomnaam = 'MLD_STDMELDING_OMSCHRIJVING'
|
||
AND fac_locale_lang = 'EN'
|
||
AND fac_locale_kolomkeyval = std.mld_stdmelding_key)
|
||
EN,
|
||
(SELECT fac_locale_tekst
|
||
FROM fac_locale
|
||
WHERE fac_locale_kolomnaam = 'MLD_STDMELDING_OMSCHRIJVING'
|
||
AND fac_locale_lang = 'DE'
|
||
AND fac_locale_kolomkeyval = std.mld_stdmelding_key)
|
||
DE
|
||
FROM ins_tab_discipline d, mld_stdmelding std, ins_srtdiscipline sd
|
||
WHERE d.ins_discipline_key = std.mld_ins_discipline_key
|
||
AND d.ins_srtdiscipline_key = sd.ins_srtdiscipline_key(+)
|
||
AND ins_discipline_verwijder IS NULL
|
||
AND mld_stdmelding_verwijder IS NULL;
|
||
|
||
CREATE OR REPLACE VIEW aaxx_v_rap_lang_discipline_oms
|
||
(
|
||
key,
|
||
fclt_f_module,
|
||
vakgroeptype,
|
||
vakgroep,
|
||
en,
|
||
de
|
||
)
|
||
AS
|
||
SELECT ins_discipline_key,
|
||
ins_discipline_module,
|
||
ins_srtdiscipline_prefix,
|
||
ins_discipline_omschrijving,
|
||
(SELECT fac_locale_tekst
|
||
FROM fac_locale
|
||
WHERE fac_locale_kolomnaam = 'INS_DISCIPLINE_OMSCHRIJVING'
|
||
AND fac_locale_lang = 'EN'
|
||
AND fac_locale_kolomkeyval = d.ins_discipline_key)
|
||
EN,
|
||
(SELECT fac_locale_tekst
|
||
FROM fac_locale
|
||
WHERE fac_locale_kolomnaam = 'INS_DISCIPLINE_OMSCHRIJVING'
|
||
AND fac_locale_lang = 'DE'
|
||
AND fac_locale_kolomkeyval = d.ins_discipline_key)
|
||
DE
|
||
FROM ins_tab_discipline d, ins_srtdiscipline sd
|
||
WHERE d.ins_srtdiscipline_key = sd.ins_srtdiscipline_key(+)
|
||
AND ins_discipline_verwijder IS NULL;
|
||
|
||
|
||
-------------------------------------------------------------------------------
|
||
-- IMPORTFUNCTIE - MLD_LANG
|
||
-------------------------------------------------------------------------------
|
||
CREATE OR REPLACE PROCEDURE aaxx_import_mld_lang (
|
||
p_import_key IN NUMBER)
|
||
AS
|
||
CURSOR c_cursor
|
||
IS
|
||
SELECT *
|
||
FROM fac_imp_file
|
||
WHERE fac_import_key = p_import_key
|
||
ORDER BY fac_imp_file_index;
|
||
|
||
v_newline VARCHAR2 (1000); -- Import line
|
||
v_field VARCHAR2 (100); -- Import field
|
||
v_fielddelimitor VARCHAR2 (1); -- Field seperator
|
||
v_errormsg VARCHAR (200);
|
||
v_errorhint VARCHAR (200);
|
||
oracle_err_num NUMBER;
|
||
oracle_err_mes VARCHAR2 (200);
|
||
v_skipfield VARCHAR2 (100);
|
||
v_dummy VARCHAR2 (1000);
|
||
-- De importvelden
|
||
v_vakgroeptype_nl VARCHAR2 (200);
|
||
v_vakgroeptype_prefix VARCHAR2 (200);
|
||
v_vakgroep_nl VARCHAR2 (200);
|
||
v_stdmelding_nl VARCHAR2 (200);
|
||
v_stdmelding_hint_nl VARCHAR2 (4000);
|
||
v_vakgroeptype_en VARCHAR2 (200);
|
||
v_vakgroep_en VARCHAR2 (200);
|
||
v_stdmelding_en VARCHAR2 (200);
|
||
v_stdmelding_hint_en VARCHAR2 (4000);
|
||
header_found BOOLEAN;
|
||
BEGIN
|
||
-- Init
|
||
header_found := FALSE;
|
||
v_fielddelimitor := ';';
|
||
|
||
-- Clear my previous imported rows
|
||
DELETE FROM aaxx_imp_mld_lang;
|
||
|
||
FOR rec1 IN c_cursor
|
||
LOOP
|
||
BEGIN
|
||
v_newline := rec1.fac_imp_file_line;
|
||
|
||
IF SUBSTR (v_newline, 1, 3) = '?'
|
||
THEN
|
||
-- EF BB BF aangetroffen
|
||
fac.imp_writelog (p_import_key,
|
||
'W',
|
||
'Byte Order Mark aangetroffen',
|
||
'Bestand heeft onbehandeld UTF-8 formaat.');
|
||
v_newline := SUBSTR (v_newline, 4);
|
||
END IF;
|
||
--vakgroeptype NL;prefix;plaatsgegevens;objectgegevens;bestelgegevens;vakgroep NL;melding NL;aanwijzingen (NL)
|
||
fac.imp_getfield (v_newline, v_fielddelimitor, v_vakgroeptype_nl);
|
||
fac.imp_getfield (v_newline, v_fielddelimitor, v_vakgroeptype_prefix);
|
||
fac.imp_getfield (v_newline, v_fielddelimitor, v_dummy);
|
||
fac.imp_getfield (v_newline, v_fielddelimitor, v_dummy);
|
||
fac.imp_getfield (v_newline, v_fielddelimitor, v_dummy);
|
||
fac.imp_getfield (v_newline, v_fielddelimitor, v_vakgroep_nl);
|
||
fac.imp_getfield (v_newline, v_fielddelimitor, v_stdmelding_nl);
|
||
fac.imp_getfield (v_newline, v_fielddelimitor, v_stdmelding_hint_nl);
|
||
-- ;groep;kostensoort;acceptatietijd;uitvoertijd;uitvoertijd kritiek;uitvoertijd hoog;uitvoertijd laag;streeftijd;directklaar;dienst;Vakgroeptype EN;vakgroep EN;melding EN;aanwijzingen EN;
|
||
fac.imp_getfield (v_newline, v_fielddelimitor, v_dummy);
|
||
fac.imp_getfield (v_newline, v_fielddelimitor, v_dummy);
|
||
fac.imp_getfield (v_newline, v_fielddelimitor, v_dummy);
|
||
fac.imp_getfield (v_newline, v_fielddelimitor, v_dummy);
|
||
fac.imp_getfield (v_newline, v_fielddelimitor, v_dummy);
|
||
fac.imp_getfield (v_newline, v_fielddelimitor, v_dummy);
|
||
fac.imp_getfield (v_newline, v_fielddelimitor, v_dummy);
|
||
fac.imp_getfield (v_newline, v_fielddelimitor, v_dummy);
|
||
fac.imp_getfield (v_newline, v_fielddelimitor, v_dummy);
|
||
fac.imp_getfield (v_newline, v_fielddelimitor, v_dummy);
|
||
fac.imp_getfield (v_newline, v_fielddelimitor, v_vakgroeptype_en);
|
||
fac.imp_getfield (v_newline, v_fielddelimitor, v_vakgroep_en);
|
||
fac.imp_getfield (v_newline, v_fielddelimitor, v_stdmelding_en);
|
||
fac.imp_getfield (v_newline, v_fielddelimitor, v_stdmelding_hint_en);
|
||
|
||
-- Skip until a valid header is found
|
||
IF UPPER (v_vakgroeptype_nl) = 'VAKGROEPTYPE NL'
|
||
AND UPPER (v_vakgroeptype_prefix) = 'PREFIX'
|
||
AND UPPER (v_vakgroep_nl) = 'VAKGROEP NL'
|
||
AND UPPER (v_stdmelding_nl) = 'MELDING NL'
|
||
AND UPPER (v_stdmelding_hint_nl) = 'AANWIJZINGEN (NL)'
|
||
AND UPPER (v_vakgroeptype_en) = 'VAKGROEPTYPE EN'
|
||
AND UPPER (v_vakgroep_en) = 'VAKGROEP EN'
|
||
AND UPPER (v_stdmelding_en) = 'MELDING EN'
|
||
AND UPPER (v_stdmelding_hint_en) = 'AANWIJZINGEN EN'
|
||
THEN
|
||
-- Sla de kopregel over.
|
||
header_found := TRUE;
|
||
ELSIF (header_found)
|
||
THEN
|
||
INSERT INTO aaxx_imp_mld_lang ( ins_srtdiscipline_omschrijving,
|
||
ins_srtdiscipline_prefix,
|
||
ins_discipline_omschrijving,
|
||
mld_stdmelding_omschrijving,
|
||
mld_stdmelding_hint,
|
||
ins_srtdiscipline_omschr_en,
|
||
ins_discipline_omschrijving_en,
|
||
mld_stdmelding_omschrijving_en,
|
||
mld_stdmelding_hint_en)
|
||
VALUES (SUBSTR (v_vakgroeptype_nl, 1, 30),
|
||
SUBSTR (v_vakgroeptype_prefix, 1, 3),
|
||
SUBSTR (v_vakgroep_nl, 1, 30),
|
||
SUBSTR (v_stdmelding_nl, 1, 60),
|
||
SUBSTR (v_stdmelding_hint_nl, 1, 1000),
|
||
SUBSTR (v_vakgroeptype_en, 1, 30),
|
||
SUBSTR (v_vakgroep_en, 1, 30),
|
||
SUBSTR (v_stdmelding_en, 1, 60),
|
||
SUBSTR (v_stdmelding_hint_en, 1, 1000));
|
||
ELSE -- geen geldige header aangetroffen
|
||
IF rec1.fac_imp_file_index = 1
|
||
THEN
|
||
fac.imp_writelog (p_import_key,
|
||
'I',
|
||
'Aangetroffen header',
|
||
SUBSTR( v_vakgroeptype_nl || '-1-' ||
|
||
v_vakgroeptype_prefix || '-2-' ||
|
||
v_vakgroep_nl || '-3-' ||
|
||
v_stdmelding_nl || '-4-' ||
|
||
v_stdmelding_hint_nl || '-5-' ||
|
||
v_vakgroeptype_en || '-6-' ||
|
||
v_vakgroep_en || '-7-' ||
|
||
v_stdmelding_en || '-8-' ||
|
||
v_stdmelding_hint_en,1,1000));
|
||
END IF;
|
||
END IF;
|
||
COMMIT;
|
||
END;
|
||
END LOOP;
|
||
|
||
IF NOT header_found
|
||
THEN
|
||
fac.imp_writelog (
|
||
p_import_key,
|
||
'E',
|
||
'Geen geldige header aangetroffen',
|
||
'Bestand is geen geldig MLD vertaling importbestand.');
|
||
END IF;
|
||
EXCEPTION
|
||
WHEN OTHERS
|
||
THEN
|
||
oracle_err_num := SQLCODE;
|
||
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
|
||
v_errormsg :=
|
||
'OTHERS (error ' || oracle_err_num || '/' || oracle_err_mes || ')';
|
||
fac.imp_writelog (p_import_key,
|
||
'E',
|
||
SUBSTR (v_errormsg, 1, 1000),
|
||
'');
|
||
|
||
-- maak de importtabel leeg om te voorkomen dat er halve bestanden ingelezen worden.
|
||
DELETE FROM aaxx_imp_mld_lang;
|
||
END;
|
||
/
|
||
|
||
CREATE OR REPLACE PROCEDURE aaxx_update_mld_lang (
|
||
p_import_key IN NUMBER)
|
||
AS
|
||
CURSOR c
|
||
IS
|
||
SELECT *
|
||
FROM aaxx_imp_mld_lang
|
||
WHERE ins_srtdiscipline_omschrijving IS NOT NULL;
|
||
|
||
v_srtdiscipline_key NUMBER;
|
||
v_discipline_key NUMBER;
|
||
v_stdmelding_key NUMBER;
|
||
v_errormsg VARCHAR (1000);
|
||
v_error_hint VARCHAR (1000);
|
||
v_tekst VARCHAR (300);
|
||
oracle_err_mes VARCHAR2 (150);
|
||
oracle_err_num VARCHAR2 (150);
|
||
currentversion fac_module.fac_module_version%TYPE;
|
||
|
||
PROCEDURE update_locale(p_kolom IN VARCHAR2, p_key IN NUMBER, p_lang IN VARCHAR, p_value IN VARCHAR)
|
||
AS
|
||
BEGIN
|
||
BEGIN
|
||
SELECT fac_locale_tekst
|
||
INTO v_tekst
|
||
FROM fac_locale
|
||
WHERE UPPER(fac_locale_kolomnaam) = UPPER(p_kolom)
|
||
AND fac_locale_kolomkeyval = p_key
|
||
AND UPPER(fac_locale_lang) = UPPER(p_lang);
|
||
EXCEPTION WHEN NO_DATA_FOUND
|
||
THEN
|
||
INSERT INTO fac_locale (fac_locale_kolomkeyval, fac_locale_kolomnaam, fac_locale_lang, fac_locale_tekst)
|
||
VALUES (p_key, UPPER(p_kolom), UPPER(p_lang), SUBSTR(p_value,1,300));
|
||
RETURN;
|
||
END;
|
||
|
||
UPDATE fac_locale SET fac_locale_tekst = SUBSTR(p_value,1,300)
|
||
WHERE UPPER(fac_locale_kolomnaam) = UPPER(p_kolom)
|
||
AND fac_locale_kolomkeyval = p_key
|
||
AND UPPER(fac_locale_lang) = UPPER(p_lang);
|
||
RETURN;
|
||
END;
|
||
|
||
BEGIN
|
||
|
||
SELECT MAX (fac_module_version) INTO currentversion FROM fac_module;
|
||
|
||
fac.imp_writelog (
|
||
p_import_key,
|
||
'I',
|
||
'AA-FM Melding vertaling import version '
|
||
|| currentversion,
|
||
'$Revision$');
|
||
|
||
FOR rec IN c
|
||
LOOP
|
||
BEGIN
|
||
v_errormsg := 'Kan srtdiscipline [' || rec.ins_srtdiscipline_omschrijving || '] niet vinden.';
|
||
|
||
SELECT ins_srtdiscipline_key
|
||
INTO v_srtdiscipline_key
|
||
FROM ins_srtdiscipline
|
||
WHERE ins_srtdiscipline_verwijder IS NULL
|
||
AND TRIM(UPPER (ins_srtdiscipline_omschrijving)) =
|
||
TRIM(UPPER (rec.ins_srtdiscipline_omschrijving));
|
||
|
||
v_errormsg := 'Kan discipline [' || rec.ins_srtdiscipline_omschrijving || '-' || rec.ins_discipline_omschrijving || '] niet vinden.';
|
||
|
||
SELECT ins_discipline_key
|
||
INTO v_discipline_key
|
||
FROM ins_tab_discipline
|
||
WHERE ins_discipline_verwijder IS NULL
|
||
AND ins_srtdiscipline_key = v_srtdiscipline_key
|
||
AND TRIM(UPPER (ins_discipline_omschrijving)) = TRIM(UPPER (rec.ins_discipline_omschrijving));
|
||
|
||
v_errormsg := 'Kan stdmelding [' || rec.ins_srtdiscipline_omschrijving || '-' || rec.ins_discipline_omschrijving || '-' || rec.mld_stdmelding_omschrijving || '] niet vinden.';
|
||
|
||
SELECT mld_stdmelding_key
|
||
INTO v_stdmelding_key
|
||
FROM mld_stdmelding
|
||
WHERE mld_stdmelding_verwijder IS NULL
|
||
AND mld_ins_discipline_key = v_discipline_key
|
||
AND TRIM(UPPER (mld_stdmelding_omschrijving)) = TRIM(UPPER (rec.mld_stdmelding_omschrijving));
|
||
|
||
UPDATE mld_stdmelding SET mld_stdmelding_hint = rec.mld_stdmelding_hint WHERE mld_stdmelding_key = v_stdmelding_key;
|
||
update_locale('INS_SRTDISCIPLINE_OMSCHRIJVING', v_srtdiscipline_key, 'EN', rec.ins_srtdiscipline_omschr_en);
|
||
update_locale('INS_DISCIPLINE_OMSCHRIJVING', v_discipline_key, 'EN', rec.ins_discipline_omschrijving_en);
|
||
update_locale('MLD_STDMELDING_OMSCHRIJVING', v_stdmelding_key, 'EN', rec.mld_stdmelding_omschrijving_en);
|
||
update_locale('MLD_STDMELDING_HINT', v_stdmelding_key, 'EN', rec.mld_stdmelding_hint_en);
|
||
|
||
COMMIT;
|
||
EXCEPTION
|
||
WHEN OTHERS
|
||
THEN
|
||
v_error_hint := v_errormsg;
|
||
oracle_err_num := SQLCODE;
|
||
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
|
||
v_errormsg :=
|
||
'ORACLE (error '
|
||
|| oracle_err_num
|
||
|| '/'
|
||
|| oracle_err_mes
|
||
|| ')';
|
||
fac.imp_writelog (p_import_key,
|
||
'E',
|
||
v_errormsg,
|
||
v_error_hint);
|
||
COMMIT;
|
||
END;
|
||
END LOOP;
|
||
|
||
END;
|
||
/
|
||
|
||
|
||
-------------------------------------------------------------------------------
|
||
-- RAPPORTAGES Projecturen
|
||
-- AAIT#22843 en AADS#22701
|
||
-------------------------------------------------------------------------------
|
||
-- Alle project-meldingen (srtdisc_key = 1)
|
||
CREATE OR REPLACE VIEW aaxx_v_project_boom_nodes
|
||
AS
|
||
SELECT vt.ins_srtdiscipline_prefix,
|
||
m.mld_melding_key,
|
||
m.mld_melding_start_key,
|
||
vg.ins_discipline_omschrijving,
|
||
sm.mld_stdmelding_omschrijving,
|
||
m.mld_melding_status
|
||
FROM mld_melding m,
|
||
mld_stdmelding sm,
|
||
mld_discipline vg,
|
||
ins_srtdiscipline vt
|
||
WHERE sm.mld_stdmelding_key = m.mld_stdmelding_key
|
||
AND vg.ins_discipline_key = sm.mld_ins_discipline_key
|
||
AND vt.ins_srtdiscipline_key = vg.ins_srtdiscipline_key
|
||
AND vt.ins_srtdiscipline_omschrijving = 'Project';
|
||
|
||
-- Boomstructuur van projectmeldingen (vgl prs_v_afdelingsboom)
|
||
CREATE OR REPLACE VIEW aaxx_v_project_boom
|
||
(
|
||
niveau,
|
||
mld_melding_key,
|
||
mld_melding_key1,
|
||
mld_melding_key2,
|
||
mld_melding_key3,
|
||
mld_melding_key4
|
||
)
|
||
AS
|
||
SELECT '1' Niveau,
|
||
m1.mld_melding_key,
|
||
m1.mld_melding_key,
|
||
TO_NUMBER (NULL),
|
||
TO_NUMBER (NULL),
|
||
TO_NUMBER (NULL)
|
||
FROM aaxx_v_project_boom_nodes m1
|
||
WHERE m1.mld_melding_start_key IS NULL
|
||
AND m1.mld_melding_status IN (2, 3, 4, 7)
|
||
UNION
|
||
SELECT '2' Niveau,
|
||
m2.mld_melding_key,
|
||
m1.mld_melding_key,
|
||
m2.mld_melding_key,
|
||
TO_NUMBER (NULL),
|
||
TO_NUMBER (NULL)
|
||
FROM aaxx_v_project_boom_nodes m1,
|
||
aaxx_v_project_boom_nodes m2
|
||
WHERE m2.mld_melding_start_key = m1.mld_melding_key
|
||
AND m1.mld_melding_start_key IS NULL
|
||
AND m2.mld_melding_status IN (2, 3, 4, 7)
|
||
UNION
|
||
SELECT '3' Niveau,
|
||
m3.mld_melding_key,
|
||
m1.mld_melding_key,
|
||
m2.mld_melding_key,
|
||
m3.mld_melding_key,
|
||
TO_NUMBER (NULL)
|
||
FROM aaxx_v_project_boom_nodes m1,
|
||
aaxx_v_project_boom_nodes m2,
|
||
aaxx_v_project_boom_nodes m3
|
||
WHERE m3.mld_melding_start_key = m2.mld_melding_key
|
||
AND m2.mld_melding_start_key = m1.mld_melding_key
|
||
AND m1.mld_melding_start_key IS NULL
|
||
AND m3.mld_melding_status IN (2, 3, 4, 7)
|
||
UNION
|
||
SELECT '4' Niveau,
|
||
m4.mld_melding_key,
|
||
m1.mld_melding_key,
|
||
m2.mld_melding_key,
|
||
m3.mld_melding_key,
|
||
m4.mld_melding_key
|
||
FROM aaxx_v_project_boom_nodes m1,
|
||
aaxx_v_project_boom_nodes m2,
|
||
aaxx_v_project_boom_nodes m3,
|
||
aaxx_v_project_boom_nodes m4
|
||
WHERE m4.mld_melding_start_key = m3.mld_melding_key
|
||
AND m3.mld_melding_start_key = m2.mld_melding_key
|
||
AND m2.mld_melding_start_key = m1.mld_melding_key
|
||
AND m1.mld_melding_start_key IS NULL
|
||
AND m4.mld_melding_status IN (2, 3, 4, 7);
|
||
|
||
-- Rapportageview
|
||
CREATE OR REPLACE VIEW aaxx_v_rap_projectboom
|
||
AS
|
||
SELECT pb.mld_melding_key1||pb.mld_melding_key2||pb.mld_melding_key3||pb.mld_melding_key4||'/'||o.mld_opdr_bedrijfopdr_volgnr hide_f_srt,
|
||
pbn.ins_srtdiscipline_prefix || pb.mld_melding_key1
|
||
fclt_f_hoofdproject,
|
||
CASE
|
||
WHEN pb.mld_melding_key2 IS NULL THEN NULL
|
||
ELSE pbn.ins_srtdiscipline_prefix || pb.mld_melding_key2
|
||
END
|
||
deelproject1,
|
||
CASE
|
||
WHEN pb.mld_melding_key3 IS NULL THEN NULL
|
||
ELSE pbn.ins_srtdiscipline_prefix || pb.mld_melding_key3
|
||
END
|
||
deelproject2,
|
||
CASE
|
||
WHEN pb.mld_melding_key4 IS NULL THEN NULL
|
||
ELSE pbn.ins_srtdiscipline_prefix || pb.mld_melding_key4
|
||
END
|
||
deelproject3,
|
||
m.mld_melding_key hide_f_melding_key,
|
||
km.mld_kenmerkmelding_waarde fclt_f_projectnaam,
|
||
'<a class="details" onclick=''FcltMgr.openDetail("appl/mld/mld_melding.asp?urole=bo&'
|
||
|| 'mld_key='
|
||
|| m.mld_melding_key
|
||
|| '")''>'
|
||
|| pbn.ins_srtdiscipline_prefix || m.mld_melding_key
|
||
|| '</a>'
|
||
html_meldingnr,
|
||
pf.prs_perslid_naam_full fclt_x_projectmedewerker,
|
||
CASE
|
||
WHEN o.mld_opdr_bedrijfopdr_volgnr IS NULL
|
||
THEN
|
||
NULL
|
||
ELSE
|
||
'<a class="details" onclick=''FcltMgr.openDetail("appl/mld/mld_opdr.asp?urole=bo&'
|
||
|| 'opdr_key='
|
||
|| o.mld_opdr_key
|
||
|| '")''>'
|
||
|| htf.escape_sc(pf.prs_perslid_naam_full)
|
||
|| '</a>'
|
||
END
|
||
html_projectmedewerker,
|
||
so.mld_statusopdr_omschrijving statusopdr,
|
||
o.mld_opdr_uren weekplanning,
|
||
(SELECT SUM (mld_opdr_uren_besteed)
|
||
FROM mld_opdr_uren
|
||
WHERE mld_opdr_key = o.mld_opdr_key)
|
||
uren_besteed
|
||
FROM aaxx_v_project_boom pb,
|
||
aaxx_v_project_boom_nodes pbn,
|
||
mld_melding m,
|
||
(SELECT *
|
||
FROM mld_kenmerkmelding km, mld_kenmerk k
|
||
WHERE km.mld_kenmerk_key = k.mld_kenmerk_key
|
||
AND k.mld_srtkenmerk_key = 55) km,
|
||
(SELECT *
|
||
FROM mld_opdr
|
||
WHERE mld_typeopdr_key = 7) o,
|
||
mld_statusopdr so,
|
||
prs_v_perslid_fullnames_all pf
|
||
WHERE m.mld_melding_key = pb.mld_melding_key
|
||
AND pbn.mld_melding_key = pb.mld_melding_key
|
||
AND km.mld_melding_key(+) = m.mld_melding_key
|
||
AND o.mld_melding_key(+) = m.mld_melding_key
|
||
AND pf.prs_perslid_key(+) = o.mld_uitvoerende_keys
|
||
AND so.mld_statusopdr_key(+) = o.mld_statusopdr_key
|
||
AND o.mld_statusopdr_key(+) != 1;
|
||
|
||
|
||
-- rapportage tbv SAS70. Verificatie van kosten in FACILITOR tov de BudgetTracker.
|
||
CREATE OR REPLACE PACKAGE AAXX_RAP
|
||
AS
|
||
TYPE t_cursor IS REF CURSOR;
|
||
|
||
PROCEDURE kostenoverzicht (user_key IN NUMBER,
|
||
p_datum_van IN VARCHAR2,
|
||
p_datum_tot IN VARCHAR2,
|
||
p_cursor OUT t_cursor);
|
||
END;
|
||
/
|
||
|
||
CREATE OR REPLACE PACKAGE BODY AAXX_RAP
|
||
AS
|
||
--
|
||
--Rapportages
|
||
--
|
||
PROCEDURE kostenoverzicht (user_key IN NUMBER,
|
||
p_datum_van IN VARCHAR2, -- Let wel: formaat '13-05-2005'
|
||
p_datum_tot IN VARCHAR2,
|
||
p_cursor OUT t_cursor)
|
||
AS
|
||
v_datum_van DATE;
|
||
v_datum_tot DATE;
|
||
v_alg_level_read NUMBER;
|
||
BEGIN
|
||
v_datum_van := fac.safe_to_date (p_datum_van, 'dd-mm-yyyy');
|
||
v_datum_tot := fac.safe_to_date (p_datum_tot, 'dd-mm-yyyy');
|
||
|
||
OPEN p_cursor FOR
|
||
SELECT soort,
|
||
(SELECT prs_kostensoort_oms
|
||
FROM prs_kostensoort ks
|
||
WHERE v.prs_kostensoort_key = ks.prs_kostensoort_key)
|
||
kostensoort,
|
||
(SELECT prs_kostenplaats_omschrijving
|
||
FROM prs_kostenplaats kp
|
||
WHERE v.prs_kostenplaats_key = kp.prs_kostenplaats_key)
|
||
kostenplaats,
|
||
(SELECT g.alg_gebouw_code||'-'||g.alg_gebouw_naam
|
||
FROM alg_gebouw g
|
||
WHERE v.alg_gebouw_key = g.alg_gebouw_key)
|
||
gebouw,
|
||
SUM (opdr_kosten) opdr_kosten,
|
||
SUM (fin_factuur_totaal) fin_kosten
|
||
FROM (SELECT 'Opdracht' soort,
|
||
prs_kostensoort_key,
|
||
prs_kostenplaats_key,
|
||
alg_gebouw_key,
|
||
opdr_kosten,
|
||
fin_factuur_totaal
|
||
FROM ( SELECT COALESCE (
|
||
f.prs_kostensoort_key,
|
||
COALESCE (std.prs_kostensoort_key,
|
||
d.prs_kostensoort_key))
|
||
prs_kostensoort_key,
|
||
o.prs_kostenplaats_key,
|
||
alg_gebouw_key,
|
||
o.mld_opdr_kosten opdr_kosten,
|
||
SUM (f.fin_factuur_totaal) fin_factuur_totaal
|
||
FROM mld_opdr o,
|
||
mld_typeopdr t,
|
||
mld_melding m,
|
||
mld_stdmelding std,
|
||
ins_tab_discipline d,
|
||
aaxx_v_aanwezigfactuur f,
|
||
alg_v_onroerendgoed_gegevens og
|
||
WHERE o.mld_typeopdr_key = t.mld_typeopdr_key
|
||
AND t.mld_typeopdr_omschrijving = 'Workorder'
|
||
AND o.mld_melding_key = m.mld_melding_key
|
||
AND m.mld_stdmelding_key = std.mld_stdmelding_key
|
||
AND std.mld_ins_discipline_key = d.ins_discipline_key
|
||
AND o.mld_opdr_key = f.mld_opdr_key(+)
|
||
AND m.mld_alg_onroerendgoed_keys =
|
||
og.alg_onroerendgoed_keys(+)
|
||
AND o.mld_opdr_datumbegin BETWEEN v_datum_van
|
||
AND v_datum_tot
|
||
GROUP BY f.prs_kostensoort_key,
|
||
std.prs_kostensoort_key,
|
||
d.prs_kostensoort_key,
|
||
o.prs_kostenplaats_key,
|
||
alg_gebouw_key,
|
||
o.mld_opdr_kosten
|
||
UNION ALL
|
||
SELECT COALESCE (f.prs_kostensoort_key,
|
||
d.prs_kostensoort_key)
|
||
prs_kostensoort_key,
|
||
k.prs_kostenplaats_key,
|
||
g.alg_gebouw_key,
|
||
(SELECT SUM(bes_bestelopdr_item_aantal
|
||
* bes_bestelopdr_item_prijs)
|
||
FROM bes_bestelopdr_item boi
|
||
WHERE boi.bes_bestelopdr_key = bo.bes_bestelopdr_key)
|
||
opdr_prijs,
|
||
SUM (f.fin_factuur_totaal)
|
||
FROM bes_bestelling b,
|
||
prs_kostenplaats k,
|
||
aaxx_v_aanwezigfactuur f,
|
||
mld_adres ma,
|
||
bes_bestelopdr bo,
|
||
ins_tab_discipline d,
|
||
alg_gebouw g,
|
||
alg_locatie l,
|
||
(SELECT DISTINCT
|
||
bes_bestelling_key, bes_bestelopdr_key
|
||
FROM bes_bestelling_item bi,
|
||
bes_bestelopdr_item boi
|
||
WHERE bi.bes_bestelopdr_item_key =
|
||
boi.bes_bestelopdr_item_key) bes_opdr,
|
||
(SELECT DISTINCT
|
||
bes_bestelling_key, ins_discipline_key
|
||
FROM bes_bestelling_item bi,
|
||
bes_srtdeel sd,
|
||
bes_srtgroep sg
|
||
WHERE bi.bes_srtdeel_key = sd.bes_srtdeel_key
|
||
AND sd.bes_srtgroep_key = sg.bes_srtgroep_key)
|
||
cat,
|
||
( SELECT mld_adres_key, MAX (alg_gebouw_key) alg_gebouw_key
|
||
FROM (SELECT ma.mld_adres_key,
|
||
DECODE (
|
||
aaxx_get_user,
|
||
'AH',
|
||
DECODE (ma.mld_adres_key,
|
||
101, 280,
|
||
alg_gebouw_key),
|
||
alg_gebouw_key)
|
||
alg_gebouw_key
|
||
FROM alg_gebouw g FULL OUTER JOIN mld_adres ma
|
||
ON g.mld_adres_key = ma.mld_adres_key)
|
||
WHERE alg_gebouw_key IS NOT NULL
|
||
GROUP BY mld_adres_key) adr_geb
|
||
WHERE b.prs_kostenplaats_key = k.prs_kostenplaats_key
|
||
AND b.mld_adres_key_lev = ma.mld_adres_key
|
||
AND b.bes_bestelling_key =
|
||
bes_opdr.bes_bestelling_key(+)
|
||
AND bes_opdr.bes_bestelopdr_key =
|
||
bo.bes_bestelopdr_key(+)
|
||
AND ma.alg_locatie_key = l.alg_locatie_key(+)
|
||
AND b.bes_bestelling_key = cat.bes_bestelling_key
|
||
AND cat.ins_discipline_key = d.ins_discipline_key
|
||
AND ma.mld_adres_key = adr_geb.mld_adres_key(+)
|
||
AND adr_geb.alg_gebouw_key = g.alg_gebouw_key(+)
|
||
AND bo.bes_bestelopdr_key = f.bes_bestelopdr_key(+)
|
||
AND bo.bes_bestelopdr_datum BETWEEN v_datum_van
|
||
AND v_datum_tot
|
||
GROUP BY f.prs_kostensoort_key,
|
||
d.prs_kostensoort_key,
|
||
k.prs_kostenplaats_key,
|
||
g.alg_gebouw_key,
|
||
bo.bes_bestelopdr_key)
|
||
UNION ALL
|
||
SELECT 'Contract',
|
||
d.prs_kostensoort_key,
|
||
c.prs_kostenplaats_key,
|
||
g.alg_gebouw_key,
|
||
DECODE (
|
||
cnt_gew.cnt_contract_plaats_gewicht,
|
||
0,
|
||
TO_NUMBER (NULL),
|
||
COALESCE (
|
||
(cp.cnt_contract_plaats_gewicht
|
||
/ cnt_gew.cnt_contract_plaats_gewicht)
|
||
* c.cnt_contract_kosten,
|
||
TO_NUMBER (NULL)))
|
||
opdr_kosten,
|
||
COALESCE (
|
||
DECODE (
|
||
cnt_gew.cnt_contract_plaats_gewicht,
|
||
0,
|
||
1,
|
||
(cp.cnt_contract_plaats_gewicht
|
||
/ cnt_gew.cnt_contract_plaats_gewicht))
|
||
* fin.fin_factuur_totaal,
|
||
NULL)
|
||
fin_factuur_totaal
|
||
FROM cnt_contract c,
|
||
cnt_contract_plaats cp,
|
||
ins_tab_discipline d,
|
||
alg_locatie l,
|
||
alg_gebouw g,
|
||
( SELECT cnt_contract_key,
|
||
SUM (fin_factuur_totaal) fin_factuur_totaal
|
||
FROM aaxx_v_aanwezigfactuur f
|
||
WHERE f.fin_factuur_datum BETWEEN v_datum_van AND v_datum_tot
|
||
GROUP BY cnt_contract_key) fin,
|
||
( SELECT cnt_contract_key,
|
||
SUM (cnt_contract_plaats_gewicht)
|
||
cnt_contract_plaats_gewicht
|
||
FROM cnt_contract_plaats
|
||
WHERE cnt_contract_plaats_verwijder IS NULL
|
||
GROUP BY cnt_contract_key) cnt_gew,
|
||
(SELECT cp.cnt_contract_plaats_key,
|
||
alg_locatie_key,
|
||
alg_gebouw_key
|
||
FROM alg_v_allonroerendgoed aog, cnt_contract_plaats cp
|
||
WHERE aog.alg_type = cp.cnt_alg_plaats_code
|
||
AND aog.alg_onroerendgoed_keys = cp.cnt_alg_plaats_key)
|
||
cog
|
||
WHERE c.ins_discipline_key = d.ins_discipline_key
|
||
AND c.cnt_contract_key = cp.cnt_contract_key(+)
|
||
AND c.cnt_contract_key = cnt_gew.cnt_contract_key(+)
|
||
AND cp.cnt_contract_plaats_key =
|
||
cog.cnt_contract_plaats_key(+)
|
||
AND c.cnt_contract_verwijder IS NULL
|
||
AND cp.cnt_contract_plaats_verwijder IS NULL
|
||
AND cog.alg_locatie_key = l.alg_locatie_key(+)
|
||
AND cog.alg_gebouw_key = g.alg_gebouw_key(+)
|
||
AND c.cnt_contract_key = fin.cnt_contract_key(+)
|
||
AND (v_datum_van BETWEEN c.cnt_contract_looptijd_van
|
||
AND c.cnt_contract_looptijd_tot
|
||
OR v_datum_tot BETWEEN c.cnt_contract_looptijd_van
|
||
AND c.cnt_contract_looptijd_tot)) v
|
||
GROUP BY soort,
|
||
prs_kostensoort_key,
|
||
prs_kostenplaats_key,
|
||
alg_gebouw_key;
|
||
END;
|
||
END;
|
||
/
|
||
|
||
-- VIEWS tbv RealTimeMonitor
|
||
|
||
|
||
|
||
CREATE OR REPLACE VIEW aaxx_v_graph_meldingpm
|
||
(
|
||
FCLT_XAS_,
|
||
FCLT_YAS_,
|
||
VOLGORDE
|
||
)
|
||
AS
|
||
SELECT DECODE (SUBSTR (TO_CHAR (mld_melding_datum, 'yyyymm'), 5),
|
||
'01', 'Januari',
|
||
'02', 'Februari',
|
||
'03', 'Maart',
|
||
'04', 'April',
|
||
'05', 'Mei',
|
||
'06', 'Juni',
|
||
'07', 'Juli',
|
||
'08', 'Augustus',
|
||
'09', 'September',
|
||
'10', 'Oktober',
|
||
'11', 'November',
|
||
'December'),
|
||
COUNT (d.ins_discipline_omschrijving),
|
||
TO_CHAR (mld_melding_datum, 'yyyymm')
|
||
FROM mld_melding m, mld_stdmelding std, ins_tab_discipline d
|
||
WHERE mld_melding_datum BETWEEN ADD_MONTHS (
|
||
TO_DATE (
|
||
TO_CHAR (SYSDATE, 'yyyymm') || '01',
|
||
'yyyymmdd'),
|
||
-11)
|
||
AND SYSDATE
|
||
AND m.mld_stdmelding_key = std.mld_stdmelding_key
|
||
AND std.mld_ins_discipline_key = d.ins_discipline_key
|
||
AND (aaxx_get_user <> 'IT' OR d.ins_srtdiscipline_key = 22) -- IT helpdesk
|
||
GROUP BY TO_CHAR (mld_melding_datum, 'yyyymm');
|
||
|
||
|
||
CREATE OR REPLACE VIEW aaxx_v_graph_openst_behand
|
||
(
|
||
FCLT_XAS_,
|
||
FCLT_YAS_,
|
||
FCLT_YAS2_OP_TIJD
|
||
)
|
||
AS
|
||
SELECT COALESCE (behandelaar, 'Onbekend') behandelaar,
|
||
COUNT (mld_key) - SUM (uitvoeringoptijd) totaal,
|
||
SUM (uitvoeringoptijd) op_tijd
|
||
FROM (SELECT DISTINCT
|
||
m.mld_melding_key mld_key,
|
||
CASE
|
||
WHEN fac.gettrackingdate ('MLDREJ', m.mld_melding_key) IS NULL
|
||
THEN
|
||
CASE SIGN(fac.datumtijdplusuitvoertijd (
|
||
m.mld_melding_datum,
|
||
m.mld_melding_t_uitvoertijd.tijdsduur,
|
||
m.mld_melding_t_uitvoertijd.eenheid)
|
||
- COALESCE (
|
||
fac.gettrackingdate ('MLDREJ', m.mld_melding_key),
|
||
fac.gettrackingdate ('MLDAFM', m.mld_melding_key),
|
||
SYSDATE))
|
||
WHEN -1
|
||
THEN
|
||
0
|
||
ELSE
|
||
1
|
||
END
|
||
ELSE
|
||
1
|
||
END
|
||
uitvoeringoptijd,
|
||
DECODE (
|
||
mld_melding_status,
|
||
7,
|
||
(SELECT MAX (prs_bedrijf_naam)
|
||
FROM mld_opdr o, prs_bedrijf b
|
||
WHERE o.mld_melding_key = m.mld_melding_key
|
||
AND O.MLD_UITVOERENDE_KEYS = b.prs_bedrijf_key
|
||
AND O.MLD_STATUSOPDR_KEY IN (3, 4, 5, 8)), -- 3- Ter fiattering, 4-Gefiatteerd, 5-Uitgegeven, 8-Geaccepteerd
|
||
4,
|
||
COALESCE (
|
||
(SELECT MAX (prs_bedrijf_naam)
|
||
FROM mld_opdr o, prs_bedrijf b
|
||
WHERE o.mld_melding_key = m.mld_melding_key
|
||
AND O.MLD_UITVOERENDE_KEYS =
|
||
b.prs_bedrijf_key
|
||
AND O.MLD_STATUSOPDR_KEY IN (3, 4, 5, 8)), -- 3- Ter fiattering, 4-Gefiatteerd, 5-Uitgegeven, 8-Geaccepteerd
|
||
(SELECT prs_perslid_naam_full
|
||
FROM prs_v_perslid_fullnames pf
|
||
WHERE pf.prs_perslid_key =
|
||
M.MLD_MELDING_BEHANDELAAR_KEY)),
|
||
(SELECT prs_perslid_naam_full
|
||
FROM prs_v_perslid_fullnames pf
|
||
WHERE pf.prs_perslid_key =
|
||
M.MLD_MELDING_BEHANDELAAR_KEY))
|
||
behandelaar
|
||
FROM mld_melding m,
|
||
mld_discipline md,
|
||
prs_perslid p,
|
||
mld_stdmelding std
|
||
WHERE m.prs_perslid_key = p.prs_perslid_key
|
||
AND md.ins_discipline_key = std.mld_ins_discipline_key
|
||
AND std.mld_stdmelding_key = m.mld_stdmelding_key
|
||
AND mld_melding_status IN (2, 3, 4, 7, 0) -- 2-ingevoerd, 3-ingezien, 4-geaccepteerd, 7-uitgegeven, 0-pending
|
||
AND (aaxx_get_user <> 'IT' OR md.ins_srtdiscipline_key = 22)) -- IT
|
||
GROUP BY behandelaar;
|
||
|
||
|
||
CREATE OR REPLACE VIEW aaxx_v_graph_ppi_acc (FCLT_XAS_, FCLT_YAS_)
|
||
AS
|
||
SELECT SUM (acceptoptijd) aantal, COUNT (mld_key) totaal
|
||
FROM (SELECT DISTINCT
|
||
m.mld_melding_key mld_key,
|
||
CASE SIGN(fac.datumtijdplusuitvoertijd (
|
||
fac.gettrackingdate ('MLDNEW',
|
||
m.mld_melding_key),
|
||
std.mld_stdmelding_t_accepttijd.tijdsduur,
|
||
std.mld_stdmelding_t_accepttijd.eenheid)
|
||
- COALESCE (
|
||
fac.gettrackingdate ('MLDREJ',
|
||
m.mld_melding_key),
|
||
fac.gettrackingdate ('MLDAFM',
|
||
m.mld_melding_key),
|
||
SYSDATE))
|
||
WHEN -1
|
||
THEN
|
||
0
|
||
ELSE
|
||
1
|
||
END
|
||
acceptoptijd
|
||
FROM mld_melding m, mld_discipline md, mld_stdmelding std
|
||
WHERE md.ins_discipline_key = std.mld_ins_discipline_key
|
||
AND std.mld_stdmelding_key = m.mld_stdmelding_key
|
||
AND (aaxx_get_user <> 'IT' OR md.ins_srtdiscipline_key = 22) -- IT helpdesk
|
||
AND mld_melding_status IN (2, 3) -- 2-ingevoerd, 3-ingezien
|
||
);
|
||
|
||
CREATE OR REPLACE VIEW aaxx_v_graph_ppi_uitv
|
||
(
|
||
FCLT_XAS_,
|
||
FCLT_YAS_
|
||
)
|
||
AS
|
||
SELECT SUM (uitvoeringoptijd) aantal, COUNT (mld_key) totaal
|
||
FROM (SELECT DISTINCT
|
||
m.mld_melding_key mld_key,
|
||
CASE
|
||
WHEN fac.gettrackingdate ('MLDREJ', m.mld_melding_key) IS NULL
|
||
THEN
|
||
CASE SIGN(fac.datumtijdplusuitvoertijd (
|
||
m.mld_melding_datum,
|
||
m.mld_melding_t_uitvoertijd.tijdsduur,
|
||
m.mld_melding_t_uitvoertijd.eenheid)
|
||
- COALESCE (
|
||
fac.gettrackingdate ('MLDREJ', m.mld_melding_key),
|
||
fac.gettrackingdate ('MLDAFM', m.mld_melding_key),
|
||
SYSDATE))
|
||
WHEN -1
|
||
THEN
|
||
0
|
||
ELSE
|
||
1
|
||
END
|
||
ELSE
|
||
1
|
||
END
|
||
uitvoeringoptijd
|
||
FROM mld_melding m, mld_discipline md, mld_stdmelding std
|
||
WHERE md.ins_discipline_key = std.mld_ins_discipline_key
|
||
AND std.mld_stdmelding_key = m.mld_stdmelding_key
|
||
AND (aaxx_get_user <> 'IT' OR md.ins_srtdiscipline_key = 22) -- IT helpdesk
|
||
AND mld_melding_status IN (2, 3, 4, 7, 0) -- 2-ingevoerd, 3-ingezien, 4-geaccepteerd, 7-uitgegeven, 0-pending
|
||
);
|
||
|
||
CREATE OR REPLACE VIEW aaxx_v_graph_vakgroep_afg
|
||
(
|
||
fclt_xas_,
|
||
fclt_yas_,
|
||
fclt_url,
|
||
fclt_3d_discipline_key
|
||
)
|
||
AS
|
||
SELECT d.ins_discipline_omschrijving,
|
||
COUNT (d.ins_discipline_omschrijving),
|
||
'appl/mld/mld_search.asp?urole=fo&autosearch=1&disc_key_str=',
|
||
d.ins_discipline_key
|
||
FROM mld_melding m,
|
||
mld_stdmelding std,
|
||
ins_tab_discipline d,
|
||
fac_srtnotificatie sn,
|
||
fac_tracking t
|
||
WHERE m.mld_stdmelding_key = std.mld_stdmelding_key
|
||
AND std.mld_ins_discipline_key = d.ins_discipline_key
|
||
AND (aaxx_get_user <> 'IT' OR d.ins_srtdiscipline_key = 22) -- IT helpdesk
|
||
AND t.fac_tracking_refkey = mld_melding_key
|
||
AND t.fac_srtnotificatie_key = sn.fac_srtnotificatie_key
|
||
AND sn.fac_srtnotificatie_code = 'MLDAFM'
|
||
AND t.fac_tracking_datum > SYSDATE - 30
|
||
GROUP BY d.ins_discipline_key, d.ins_discipline_omschrijving;
|
||
|
||
|
||
CREATE OR REPLACE VIEW aaxx_v_graph_vakgroep_open
|
||
(
|
||
FCLT_XAS_,
|
||
FCLT_YAS_,
|
||
FCLT_URL,
|
||
FCLT_3D_DISCIPLINE_KEY
|
||
)
|
||
AS
|
||
SELECT d.ins_discipline_omschrijving,
|
||
COUNT (d.ins_discipline_omschrijving),
|
||
'appl/mld/mld_search.asp?urole=fo&autosearch=1&disc_key_str='
|
||
|| d.ins_discipline_key,
|
||
d.ins_discipline_key
|
||
FROM mld_melding m, mld_stdmelding std, ins_tab_discipline d
|
||
WHERE m.mld_stdmelding_key = std.mld_stdmelding_key
|
||
AND std.mld_ins_discipline_key = d.ins_discipline_key
|
||
AND mld_melding_status IN (2, 3, 4, 7, 0) -- 2-ingevoerd, 3-ingezien, 4-geaccepteerd, 7-uitgegeven, 0-pending
|
||
AND (
|
||
(aaxx_get_user = 'GN' AND d.ins_srtdiscipline_key = 5) -- Storingen
|
||
OR
|
||
(aaxx_get_user = 'IT' AND d.ins_srtdiscipline_key = 22) -- IT helpdesk
|
||
OR
|
||
(aaxx_get_user <> 'GN' AND aaxx_get_user <> 'IT')
|
||
)
|
||
GROUP BY d.ins_discipline_key, d.ins_discipline_omschrijving
|
||
ORDER BY COUNT (d.ins_discipline_omschrijving) DESC;
|
||
|
||
|
||
--
|
||
-- Notificatie jobs
|
||
--
|
||
-- AAES#25128: BEZMUT-notificatie ook naar bezoeker sturen.
|
||
-- Wat te doen om dit aan te zetten:
|
||
-- Notificatiejob AAXX_V_NOTI_BEZOEKERS
|
||
-- Stylesheet aanpassen
|
||
-- Key van het kenmerk email hieronder invullen
|
||
CREATE OR REPLACE VIEW aaxx_v_noti_bezoekers
|
||
(
|
||
sender,
|
||
receiver,
|
||
text,
|
||
code,
|
||
fac_srtnotificatie_key,
|
||
KEY,
|
||
xkey,
|
||
xemail,
|
||
xmobile
|
||
)
|
||
AS
|
||
SELECT NULL sender,
|
||
NULL receiver,
|
||
DECODE (aaxx_get_user, 'ESSENT', 'Essent',
|
||
'ARCADIS', 'Arcadis',
|
||
'SABIC', 'Sabic',
|
||
'VGZ', 'VGZ',
|
||
'HEYDAY')
|
||
|| ' bevestigingmail afspraak '
|
||
|| TO_CHAR (a.bez_afspraak_datum, 'dd-mm-yyyy') text,
|
||
'CUST03' code,
|
||
(SELECT fac_srtnotificatie_key
|
||
FROM fac_srtnotificatie
|
||
WHERE fac_srtnotificatie_code = 'CUST03') fac_srtnotificatie_key,
|
||
b.bez_afspraak_key key,
|
||
b.bez_bezoekers_key xkey,
|
||
COALESCE(v.email,v.email_kenmerk)
|
||
xemail,
|
||
NULL xmobile
|
||
FROM fac_tracking t,
|
||
bez_afspraak a,
|
||
bez_bezoekers b,
|
||
(SELECT b1.bez_afspraak_key,
|
||
b1.bez_bezoekers_key,
|
||
b1.bez_bezoekers_email
|
||
AS email,
|
||
(SELECT kw.bez_kenmerkwaarde_waarde
|
||
FROM bez_kenmerkwaarde kw
|
||
WHERE kw.bez_bezoekers_key = b1.bez_bezoekers_key
|
||
AND kw.bez_kenmerk_key =
|
||
DECODE (aaxx_get_user,
|
||
'ESSENT', 1001,
|
||
'IT', 1022,
|
||
'ARCADIS', 1003,
|
||
'SABIC', 1000)) -- Zie ticket 60226 - 'SABIC' kan in principe weg..
|
||
AS email_kenmerk
|
||
FROM bez_bezoekers b1, bez_afspraak a1
|
||
WHERE b1.bez_afspraak_key = a1.bez_afspraak_key
|
||
AND a1.bez_afspraak_datum > SYSDATE) v
|
||
WHERE t.fac_srtnotificatie_key =
|
||
(SELECT fac_srtnotificatie_key
|
||
FROM fac_srtnotificatie
|
||
WHERE fac_srtnotificatie_code = 'BEZMUT')
|
||
AND t.fac_tracking_datum > (SELECT fac_notificatie_job_nextrun - fac_notificatie_job_interval/24
|
||
FROM fac_notificatie_job
|
||
WHERE fac_notificatie_job_view = 'AAXX_V_NOTI_BEZOEKERS')
|
||
AND t.fac_tracking_datum < (SELECT fac_notificatie_job_nextrun
|
||
FROM fac_notificatie_job
|
||
WHERE fac_notificatie_job_view = 'AAXX_V_NOTI_BEZOEKERS')
|
||
AND a.bez_afspraak_key = t.fac_tracking_refkey
|
||
AND a.bez_afspraak_datum > SYSDATE
|
||
AND b.bez_afspraak_key = t.fac_tracking_refkey
|
||
AND b.bez_bezoekers_key = v.bez_bezoekers_key ;
|
||
|
||
|
||
-- Rapportage t.b.v. Share & Meet
|
||
-- Share and Meet reserveringen zijn te herkennen aan een host die een login heeft met de volgende struktuur _<account>_<remote_prs_perslid_key>
|
||
-- bijvoorbeeld _AANS_4533
|
||
CREATE OR REPLACE VIEW aaxx_v_rap_share_meet_kosten
|
||
(
|
||
reservering,
|
||
afdelingscode,
|
||
fclt_f_afdelings_omschrijving,
|
||
verbruiksartikelen,
|
||
boekingsdatum,
|
||
afmelddatum,
|
||
fclt_f_periode,
|
||
aanvrager,
|
||
locatie,
|
||
gebouw,
|
||
ruimtenaam,
|
||
btw,
|
||
stuksprijs,
|
||
aantal,
|
||
totaal
|
||
)
|
||
AS
|
||
SELECT rrr.res_reservering_key || '/' || rrr.res_rsv_ruimte_volgnr resnr,
|
||
a.prs_afdeling_naam,
|
||
a.prs_afdeling_omschrijving,
|
||
rrp.omschrijving,
|
||
TO_CHAR (rrr.res_rsv_ruimte_van, 'dd-mm-yyyy'),
|
||
TO_CHAR (rrp.afgemeld, 'dd-mm-yyyy'),
|
||
TO_CHAR (rrp.afgemeld, 'yyyy-mm'),
|
||
pf_h.prs_perslid_naam_full pfh,
|
||
rg.alg_locatie_omschrijving,
|
||
rg.alg_gebouw_omschrijving,
|
||
rr.res_ruimte_nr,
|
||
btw,
|
||
rrp.artikel_prijs,
|
||
rrp.aantal,
|
||
rrp.prijs
|
||
FROM res_rsv_ruimte rrr,
|
||
(SELECT rrr.res_rsv_ruimte_key,
|
||
ra.res_artikel_omschrijving omschrijving,
|
||
rra.res_rsv_artikel_aantal aantal,
|
||
ROUND (
|
||
res.getartikelprijs (rra.res_rsv_artikel_key)
|
||
/ rra.res_rsv_artikel_aantal,
|
||
2)
|
||
artikel_prijs,
|
||
rra.res_rsv_artikel_prijs prijs,
|
||
rra.res_rsv_artikel_afgemeld afgemeld,
|
||
ra.res_artikel_btw btw
|
||
FROM res_rsv_ruimte rrr, res_rsv_artikel rra, res_artikel ra
|
||
WHERE rrr.res_rsv_ruimte_key = rra.res_rsv_ruimte_key
|
||
AND rra.res_artikel_key = ra.res_artikel_key
|
||
AND rra.res_rsv_artikel_verwijder IS NULL
|
||
UNION
|
||
SELECT fac_tracking_refkey res_rsv_ruimte_key,
|
||
'Zaalhuur',
|
||
1 aantal,
|
||
res_rsv_ruimte_prijs artikel_prijs,
|
||
res_rsv_ruimte_prijs prijs,
|
||
t.fac_tracking_datum afgemeld,
|
||
21 btw
|
||
FROM res_rsv_ruimte rrr, fac_tracking t, fac_srtnotificatie sn
|
||
WHERE res_rsv_ruimte_prijs <> 0
|
||
AND rrr.res_rsv_ruimte_key = t.fac_tracking_refkey
|
||
AND t.fac_srtnotificatie_key = sn.fac_srtnotificatie_key
|
||
AND sn.fac_srtnotificatie_code = 'RESAFM'
|
||
AND t.fac_tracking_oms IS NULL
|
||
AND res_rsv_ruimte_verwijder IS NULL) rrp,
|
||
prs_v_perslid_fullnames_all pf_h,
|
||
res_ruimte rr,
|
||
prs_afdeling a,
|
||
prs_perslid p,
|
||
( SELECT MAX (alg_ruimte_key) alg_ruimte_key,
|
||
res_rsv_ruimte_key,
|
||
res_ruimte_key
|
||
FROM res_v_rsv_ruimte_2_alg_ruimte
|
||
GROUP BY res_rsv_ruimte_key, res_ruimte_key) r,
|
||
alg_v_ruimte_gegevens rg
|
||
WHERE rrp.res_rsv_ruimte_key = rrr.res_rsv_ruimte_key
|
||
AND rrr.res_rsv_ruimte_host_key = pf_h.prs_perslid_key
|
||
AND rrr.res_rsv_ruimte_host_key = p.prs_perslid_key
|
||
AND p.prs_afdeling_key = a.prs_afdeling_key
|
||
AND r.res_ruimte_key = rr.res_ruimte_key
|
||
AND rrr.res_rsv_ruimte_key = r.res_rsv_ruimte_key
|
||
AND r.alg_ruimte_key = rg.alg_ruimte_key
|
||
AND rrp.afgemeld IS NOT NULL
|
||
AND p.prs_perslid_oslogin like '/_AA__/_%' escape '/';
|
||
|
||
-- AAAR#52939 notificatiejobs voor AAAR werken niet meer
|
||
-- MOET DEZE VIEW NIET VERWIJDERD WORDEN ??
|
||
-- AAIT#28929 notificaties t.b.v Share & Meet voor beoordeling dag later
|
||
CREATE OR REPLACE VIEW aaxx_v_noti_sm_resafm_reminder
|
||
(
|
||
CODE,
|
||
SENDER,
|
||
RECEIVER,
|
||
TEXT,
|
||
KEY,
|
||
XKEY
|
||
)
|
||
AS
|
||
SELECT 'RESAFM',
|
||
NULL,
|
||
res_rsv_ruimte_contact_key,
|
||
'Herinnering beoordeling reservering: '
|
||
|| res_reservering_key
|
||
|| '/'
|
||
|| res_rsv_ruimte_volgnr,
|
||
rsv.res_reservering_key,
|
||
rsv.res_rsv_ruimte_key
|
||
FROM res_rsv_ruimte rsv,
|
||
res_activiteit ra,
|
||
res_srtactiviteit rsr,
|
||
fac_tracking tr,
|
||
fac_srtnotificatie str
|
||
WHERE res_rsv_ruimte_verwijder IS NULL
|
||
AND rsv.res_activiteit_key = ra.res_activiteit_key
|
||
AND ra.res_srtactiviteit_key = rsr.res_srtactiviteit_key
|
||
AND UPPER(rsr.res_srtactiviteit_omschrijving) = 'SHARE & MEET'
|
||
AND tr.fac_srtnotificatie_key = str.fac_srtnotificatie_key
|
||
AND tr.fac_tracking_refkey = res_rsv_ruimte_key
|
||
AND str.fac_srtnotificatie_xmlnode IN
|
||
('reservering', 'xreservering')
|
||
AND fac_srtnotificatie_code = 'RESAFM'
|
||
AND fac_tracking_oms IS NULL
|
||
AND TO_DATE (fac_tracking_datum, 'DD-MM-YYYY') =
|
||
TO_DATE (SYSDATE-1, 'DD-MM-YYYY');
|
||
|
||
-- kenmerk key 1000: afspraak is prive (dus niet op infobord)
|
||
-- geld voor IT en Arcadis
|
||
CREATE OR REPLACE VIEW aaxx_v_rap_infobord
|
||
(
|
||
item_type,
|
||
item_key,
|
||
aktief,
|
||
bezoek_status,
|
||
offset,
|
||
dag,
|
||
tijd_van,
|
||
tijd_tot,
|
||
ruimte,
|
||
catalogus,
|
||
aanvrager,
|
||
gastheer,
|
||
omschrijving,
|
||
status,
|
||
bezoeker,
|
||
bedrijf,
|
||
locatie_code,
|
||
gebouw_code,
|
||
verdieping_code,
|
||
locatie_omschrijving,
|
||
gebouw_omschrijving,
|
||
verdieping_omschrijving,
|
||
alg_locatie_key,
|
||
alg_gebouw_key,
|
||
alg_verdieping_key
|
||
)
|
||
AS
|
||
SELECT 'RES',
|
||
rrr.res_rsv_ruimte_key,
|
||
(CASE
|
||
WHEN res_rsv_ruimte_van > SYSDATE THEN 'expected'
|
||
WHEN res_rsv_ruimte_tot < SYSDATE THEN 'passed'
|
||
ELSE 'active'
|
||
END)
|
||
aktief,
|
||
(CASE
|
||
WHEN b.bez_bezoekers_out IS NOT NULL THEN 'out'
|
||
WHEN b.bez_bezoekers_done IS NOT NULL THEN 'in'
|
||
ELSE 'expected'
|
||
END)
|
||
bezoek_status,
|
||
TRUNC ( (SYSDATE - res_rsv_ruimte_van) * 24 * 60) offset,
|
||
TO_CHAR (res_rsv_ruimte_van, 'dd-mm-yyyy') dag,
|
||
TO_CHAR (res_rsv_ruimte_van, 'hh24:mi') tijd_van,
|
||
TO_CHAR (res_rsv_ruimte_tot, 'hh24:mi') tijd_tot,
|
||
res_ruimte_nr ruimte,
|
||
ins_discipline_omschrijving catalogus,
|
||
aanvrager.prs_perslid_naam_full aanvrager,
|
||
COALESCE (gastheer.prs_perslid_naam_full,
|
||
a.bez_afspraak_gastheer)
|
||
gastheer,
|
||
res_rsv_ruimte_omschrijving omschrijving,
|
||
sf.res_status_fo_omschrijving status,
|
||
b.bez_afspraak_naam,
|
||
b.bez_afspraak_bedrijf,
|
||
alg_locatie_code locatie_code,
|
||
alg_gebouw_code gebouw_code,
|
||
alg_verdieping_code verdieping_code,
|
||
alg_locatie_omschrijving locatie_omschrijving,
|
||
g.alg_gebouw_code||'-'||g.alg_gebouw_naam gebouw_omschrijving,
|
||
alg_verdieping_omschrijving verdieping_omschrijving,
|
||
l.alg_locatie_key,
|
||
g.alg_gebouw_key,
|
||
v.alg_verdieping_key
|
||
FROM res_v_aanwezigrsv_ruimte rrr,
|
||
res_ruimte_opstelling rro,
|
||
prs_v_perslid_fullnames aanvrager,
|
||
prs_v_perslid_fullnames gastheer,
|
||
res_v_res_ruimte_gegevens rrg,
|
||
alg_locatie l,
|
||
alg_gebouw g,
|
||
alg_verdieping v,
|
||
res_status_fo sf,
|
||
res_discipline rd,
|
||
bez_afspraak a,
|
||
bez_bezoekers b,
|
||
(SELECT * FROM bez_kenmerkwaarde
|
||
WHERE bez_kenmerk_key = 1000
|
||
AND bez_kenmerkwaarde_verwijder IS NULL) prive
|
||
WHERE rrr.res_ruimte_opstel_key = rro.res_ruimte_opstel_key
|
||
AND rro.res_ruimte_key = rrg.res_ruimte_key
|
||
AND rrr.res_rsv_ruimte_host_key = gastheer.prs_perslid_key(+)
|
||
AND rrr.res_rsv_ruimte_contact_key = aanvrager.prs_perslid_key
|
||
AND TRUNC (res_rsv_ruimte_van) = TRUNC (SYSDATE)
|
||
AND rrg.alg_locatie_key = l.alg_locatie_key
|
||
AND rrg.alg_gebouw_key = g.alg_gebouw_key
|
||
AND rrg.alg_verdieping_key = v.alg_verdieping_key
|
||
AND rrr.res_status_fo_key = sf.res_status_fo_key
|
||
AND rrg.res_discipline_key = rd.ins_discipline_key
|
||
AND rrr.res_rsv_ruimte_key = a.res_rsv_ruimte_key(+)
|
||
AND a.bez_afspraak_key = b.bez_afspraak_key(+)
|
||
AND prive.bez_bezoekers_key(+) = b.bez_bezoekers_key
|
||
AND COALESCE(prive.bez_kenmerkwaarde_waarde, '0') = '0'
|
||
UNION ALL
|
||
SELECT 'BEZ',
|
||
b.bez_afspraak_key,
|
||
(CASE
|
||
WHEN a.bez_afspraak_datum > SYSDATE THEN 'expected'
|
||
WHEN a.bez_afspraak_eind < SYSDATE THEN 'passed'
|
||
ELSE 'active'
|
||
END)
|
||
aktief,
|
||
(CASE
|
||
WHEN b.bez_bezoekers_out IS NOT NULL THEN 'out'
|
||
WHEN b.bez_bezoekers_done IS NOT NULL THEN 'in'
|
||
ELSE 'expected'
|
||
END)
|
||
bezoek_status,
|
||
TRUNC ( (SYSDATE - bez_afspraak_datum) * 24 * 60) offset,
|
||
TO_CHAR (bez_afspraak_datum, 'dd-mm-yyyy') dag,
|
||
TO_CHAR (bez_afspraak_datum, 'hh24:mi') tijd_van,
|
||
TO_CHAR (bez_afspraak_eind, 'hh24:mi') tijd_tot,
|
||
NULL ruimte,
|
||
NULL catalogus,
|
||
aanvrager.prs_perslid_naam_full aanvrager,
|
||
COALESCE (gastheer.prs_perslid_naam_full,
|
||
a.bez_afspraak_gastheer)
|
||
gastheer,
|
||
NULL omschrijving,
|
||
NULL status,
|
||
b.bez_afspraak_naam,
|
||
b.bez_afspraak_bedrijf,
|
||
alg_locatie_code locatie_code,
|
||
alg_gebouw_code gebouw_code,
|
||
NULL verdieping_code,
|
||
alg_locatie_omschrijving locatie_omschrijving,
|
||
alg_gebouw_naam gebouw_omschrijving,
|
||
alg_verdieping_omschrijving verdieping_omschrijving,
|
||
l.alg_locatie_key,
|
||
ogg.alg_gebouw_key,
|
||
ogg.alg_verdieping_key
|
||
FROM bez_afspraak a,
|
||
bez_bezoekers b,
|
||
prs_v_perslid_fullnames aanvrager,
|
||
alg_locatie l,
|
||
alg_v_allonrgoed_gegevens ogg,
|
||
prs_v_perslid_fullnames gastheer,
|
||
(SELECT * FROM bez_kenmerkwaarde
|
||
WHERE bez_kenmerk_key = 1000
|
||
AND bez_kenmerkwaarde_verwijder IS NULL) prive
|
||
WHERE a.bez_afspraak_key = b.bez_afspraak_key
|
||
AND TRUNC(a.bez_afspraak_datum) = TRUNC(SYSDATE)
|
||
AND a.bez_afspraak_host_key = gastheer.prs_perslid_key(+)
|
||
AND a.bez_afspraak_contact_key = aanvrager.prs_perslid_key
|
||
AND a.alg_locatie_key = l.alg_locatie_key
|
||
AND a.alg_onrgoed_keys = ogg.alg_onroerendgoed_keys(+)
|
||
AND a.res_rsv_ruimte_key IS NULL
|
||
AND prive.bez_bezoekers_key(+) = b.bez_bezoekers_key
|
||
AND COALESCE(prive.bez_kenmerkwaarde_waarde, '0') = '0';
|
||
|
||
|
||
-- AAES#24665/AANS#27628: In eerste instantie vormgegeven tbv. meldingen op
|
||
-- objecten. Later uitgebreid tbv. reserveringen.
|
||
/* Formatted on 10-10-2013 14:32:24 (QP5 v5.115.810.9015) */
|
||
CREATE OR REPLACE VIEW aaxx_v_rap_mld_qrc
|
||
(
|
||
fclt_3d_locatie_key,
|
||
fclt_3d_discipline_key,
|
||
fclt_f_discipline,
|
||
fclt_f_soortmelding,
|
||
fclt_f_locatie,
|
||
fclt_f_gebouw,
|
||
fclt_f_verdieping,
|
||
plaats,
|
||
ruimte_key,
|
||
ruimtefunctie,
|
||
fclt_f_objectdiscipline,
|
||
fclt_f_objectgroep,
|
||
objectsoort_key,
|
||
fclt_f_objectsoort,
|
||
objectsoort_code,
|
||
ins_deel_key,
|
||
ins_deel_omschrijving,
|
||
ins_deel_upper,
|
||
hide_f_bookmark_id,
|
||
variabele
|
||
)
|
||
AS
|
||
SELECT l.alg_locatie_key,
|
||
disc.ins_discipline_key,
|
||
disc.ins_discipline_omschrijving,
|
||
msd.mld_stdmelding_omschrijving,
|
||
l.alg_locatie_omschrijving,
|
||
o.alg_gebouw_omschrijving,
|
||
o.alg_verdieping_omschrijving,
|
||
o.alg_plaatsaanduiding plaats,
|
||
d.ins_alg_ruimte_key ruimte_key,
|
||
sr.alg_srtruimte_omschrijving,
|
||
disc.ins_discipline_omschrijving,
|
||
sg.ins_srtgroep_omschrijving,
|
||
sd.ins_srtdeel_key,
|
||
sd.ins_srtdeel_omschrijving,
|
||
sd.ins_srtdeel_code,
|
||
d.ins_deel_key,
|
||
d.ins_deel_omschrijving,
|
||
d.ins_deel_upper,
|
||
b.fac_bookmark_id,
|
||
'INS_KEY'
|
||
FROM (SELECT DECODE (
|
||
INSTR (
|
||
SUBSTR (
|
||
UPPER (fac_bookmark_query),
|
||
INSTR (UPPER (fac_bookmark_query),
|
||
'STDM_KEY=')
|
||
),
|
||
'&'
|
||
),
|
||
0,
|
||
SUBSTR (
|
||
SUBSTR (
|
||
UPPER (fac_bookmark_query),
|
||
INSTR (UPPER (fac_bookmark_query),
|
||
'STDM_KEY=')
|
||
),
|
||
10
|
||
),
|
||
SUBSTR (
|
||
SUBSTR (
|
||
UPPER (fac_bookmark_query),
|
||
INSTR (UPPER (fac_bookmark_query),
|
||
'STDM_KEY=')
|
||
),
|
||
10,
|
||
INSTR (
|
||
SUBSTR (
|
||
UPPER (fac_bookmark_query),
|
||
INSTR (UPPER (fac_bookmark_query),
|
||
'STDM_KEY=')
|
||
),
|
||
'&'
|
||
)
|
||
- 10
|
||
)
|
||
)
|
||
stdm_key,
|
||
fac_bookmark_id
|
||
FROM fac_bookmark
|
||
WHERE UPPER (fac_bookmark_path) = 'APPL/PDA/MELDING.ASP'
|
||
AND INSTR (UPPER (fac_bookmark_query), 'STDM_KEY') > 0)
|
||
b, -- stdm_key-bookmarks
|
||
(SELECT sm.mld_stdmelding_key,
|
||
sm.mld_stdmelding_omschrijving,
|
||
si.ins_srtinstallatie_key ins_srtdeel_key
|
||
FROM mld_stdmelding sm,
|
||
mld_stdmelding_srtinst si
|
||
WHERE sm.mld_stdmelding_key = si.mld_stdmelding_key
|
||
AND sm.mld_stdmelding_verwijder IS NULL
|
||
AND si.ins_srtinstallatie_niveau = 'S'
|
||
UNION ALL
|
||
SELECT sm.mld_stdmelding_key,
|
||
sm.mld_stdmelding_omschrijving,
|
||
sd.ins_srtdeel_key
|
||
FROM mld_stdmelding sm,
|
||
mld_stdmelding_srtinst si,
|
||
ins_srtdeel sd
|
||
WHERE sm.mld_stdmelding_key = si.mld_stdmelding_key
|
||
AND sm.mld_stdmelding_verwijder IS NULL
|
||
AND si.ins_srtinstallatie_niveau = 'G'
|
||
AND si.ins_srtinstallatie_key = sd.ins_srtgroep_key
|
||
UNION ALL
|
||
SELECT sm.mld_stdmelding_key,
|
||
sm.mld_stdmelding_omschrijving,
|
||
sd.ins_srtdeel_key
|
||
FROM mld_stdmelding sm,
|
||
mld_stdmelding_srtinst si,
|
||
ins_srtgroep sg,
|
||
ins_srtdeel sd
|
||
WHERE sm.mld_stdmelding_key = si.mld_stdmelding_key
|
||
AND sm.mld_stdmelding_verwijder IS NULL
|
||
AND si.ins_srtinstallatie_niveau = 'D'
|
||
AND si.ins_srtinstallatie_key = sg.ins_discipline_key
|
||
AND sg.ins_srtgroep_key = sd.ins_srtgroep_key) msd, -- object-meldingen
|
||
ins_v_aanwezigdeel d,
|
||
ins_srtdeel sd,
|
||
ins_srtgroep sg,
|
||
ins_discipline disc,
|
||
ins_v_alg_overzicht o,
|
||
alg_locatie l,
|
||
alg_ruimte r,
|
||
alg_srtruimte sr
|
||
WHERE fac.safe_to_number (b.stdm_key) = msd.mld_stdmelding_key
|
||
AND msd.ins_srtdeel_key = d.ins_srtdeel_key
|
||
AND d.ins_alg_ruimte_type IN ('T', 'R', 'W')
|
||
AND d.ins_deel_parent_key IS NULL
|
||
AND d.ins_srtdeel_key = sd.ins_srtdeel_key
|
||
AND sd.ins_srtgroep_key = sg.ins_srtgroep_key
|
||
AND sg.ins_discipline_key = disc.ins_discipline_key
|
||
AND d.ins_alg_ruimte_key = o.alg_onroerendgoed_keys
|
||
AND d.ins_alg_ruimte_type = o.alg_onroerendgoed_type
|
||
AND d.ins_alg_locatie_key = o.alg_locatie_key -- redundant?
|
||
AND o.alg_locatie_key = l.alg_locatie_key
|
||
AND d.ins_alg_ruimte_key = r.alg_ruimte_key
|
||
AND r.alg_srtruimte_key = sr.alg_srtruimte_key(+)
|
||
UNION ALL
|
||
SELECT l.alg_locatie_key,
|
||
disc.ins_discipline_key,
|
||
disc.ins_discipline_omschrijving,
|
||
'Reserveer ruimte',
|
||
l.alg_locatie_omschrijving,
|
||
o.alg_gebouw_omschrijving,
|
||
o.alg_verdieping_omschrijving,
|
||
rr.res_ruimte_nr plaats,
|
||
rar.res_ruimte_key ruimte_key,
|
||
sr.alg_srtruimte_omschrijving,
|
||
NULL ins_discipline_omschrijving,
|
||
NULL ins_srtgroep_omschrijving,
|
||
NULL ins_srtdeel_key,
|
||
NULL ins_srtdeel_omschrijving,
|
||
NULL ins_srtdeel_code,
|
||
NULL ins_deel_key,
|
||
NULL ins_deel_omschrijving,
|
||
NULL ins_deel_upper,
|
||
b.fac_bookmark_id,
|
||
'RES_RUIMTE_KEY'
|
||
FROM fac_bookmark b,
|
||
res_ruimte rr,
|
||
res_discipline disc,
|
||
( SELECT res_ruimte_key, MAX (alg_ruimte_key) alg_ruimte_key
|
||
FROM res_alg_ruimte
|
||
WHERE res_alg_ruimte_verwijder IS NULL
|
||
GROUP BY res_ruimte_key) rar,
|
||
alg_ruimte r,
|
||
alg_srtruimte sr,
|
||
ins_v_alg_overzicht o,
|
||
alg_locatie l
|
||
WHERE TRUNC (b.fac_bookmark_aanmaak) = TO_DATE ('10102013', 'ddmmyyyy')
|
||
AND UPPER (b.fac_bookmark_path) = 'APPL/PDA/RESERVERINGEN.ASP'
|
||
AND rr.res_discipline_key = disc.ins_discipline_key
|
||
AND rr.res_ruimte_key = rar.res_ruimte_key
|
||
AND rar.alg_ruimte_key = r.alg_ruimte_key
|
||
AND r.alg_srtruimte_key = sr.alg_srtruimte_key(+)
|
||
AND r.alg_ruimte_key = o.alg_onroerendgoed_keys
|
||
AND o.alg_onroerendgoed_type = 'R'
|
||
AND o.alg_locatie_key = l.alg_locatie_key;
|
||
|
||
-- AASA#37919
|
||
-- Rapport met opdrachtgegevens van hergoedkeuringsverzoeken incl gebouwverantwoordelijke
|
||
-- Status 10 = ter goedkeuring
|
||
CREATE OR REPLACE VIEW aaxx_v_udr_hergoedkeuren
|
||
AS
|
||
SELECT mld_opdr_key,
|
||
srt.ins_srtdiscipline_prefix
|
||
|| o.mld_melding_key
|
||
|| '/'
|
||
|| mld_opdr_bedrijfopdr_volgnr
|
||
opdrachtnr,
|
||
mu.naam uitvoerende,
|
||
ot.mld_typeopdr_omschrijving opdrachttype,
|
||
mld_opdr_omschrijving omschrijving,
|
||
k.prs_kostenplaats_nr || ' ' || prs_kostenplaats_omschrijving
|
||
kostenplaats,
|
||
mld_opdr_kosten kosten,
|
||
pf1.prs_perslid_naam_full behandelaar,
|
||
mld_opdr_opmerking afhandeling,
|
||
mld_opdr_datumbegin opdrachtdatum,
|
||
mld_opdr_einddatum einddatum,
|
||
mld_opdr_plandatum plandatum,
|
||
l.alg_locatie_code || aog.alg_plaatsaanduiding plaats,
|
||
aog.alg_gebouw_key,
|
||
aog.alg_gebouw_code gebouw_code,
|
||
g.prs_perslid_key_verantw gebouw_verwantwoordelijke_key,
|
||
pf2.prs_perslid_naam_full gebouw_verwantwoordelijke,
|
||
aog.alg_verdieping_omschrijving verdieping_omschrijving,
|
||
aog.alg_verdieping_code verdieping,
|
||
aog.alg_ruimte_nr ruimte_nr,
|
||
aog.alg_ruimte_omschrijving ruimte_omschrijving,
|
||
std.mld_stdmelding_omschrijving melding,
|
||
d.ins_discipline_omschrijving vakgroep,
|
||
srt.ins_srtdiscipline_omschrijving vakgroeptype
|
||
FROM mld_opdr o,
|
||
mld_melding m,
|
||
alg_v_allonrgoed_gegevens aog,
|
||
alg_locatie l,
|
||
alg_gebouw g,
|
||
mld_stdmelding std,
|
||
mld_discipline d,
|
||
ins_srtdiscipline srt,
|
||
mld_typeopdr ot,
|
||
prs_v_perslid_fullnames_all pf1,
|
||
prs_v_perslid_fullnames_all pf2,
|
||
mld_v_uitvoerende mu,
|
||
prs_kostenplaats k
|
||
WHERE mld_statusopdr_key = 10
|
||
AND mld_opdr_approved_refiat IS NOT NULL
|
||
AND o.mld_melding_key = m.mld_melding_key
|
||
AND o.fac_activiteit_key IS NULL
|
||
AND aog.alg_onroerendgoed_keys = m.mld_alg_onroerendgoed_keys
|
||
AND aog.alg_locatie_key = l.alg_locatie_key
|
||
AND g.alg_gebouw_key = aog.alg_gebouw_key
|
||
AND m.mld_stdmelding_key = std.mld_stdmelding_key
|
||
AND std.mld_ins_discipline_key = d.ins_discipline_key
|
||
AND srt.ins_srtdiscipline_key = d.ins_srtdiscipline_key
|
||
AND ot.mld_typeopdr_key = o.mld_typeopdr_key
|
||
AND pf1.prs_perslid_key(+) = o.prs_perslid_key
|
||
AND pf2.prs_perslid_key(+) = g.prs_perslid_key_verantw
|
||
AND mu.mld_uitvoerende_key = o.mld_uitvoerende_keys
|
||
AND o.prs_kostenplaats_key = k.prs_kostenplaats_key(+);
|
||
|
||
-- specifieke versie van mld_v_udr_meldingopdracht vanwege performance problemen met de core versie.
|
||
CREATE OR REPLACE VIEW aaxx_v_udr_meldingopdracht
|
||
AS
|
||
SELECT m.mld_melding_key meldingnummer,
|
||
l.alg_locatie_omschrijving melding_locatie,
|
||
aog.alg_gebouw_naam melding_gebouw,
|
||
d.ins_discipline_omschrijving productgroep,
|
||
mld_statuses_omschrijving melding_status,
|
||
mld_melding_datum melding_datum,
|
||
mld_melding_einddatum melding_einddatum,
|
||
mld_melding_omschrijving vomschrijving,
|
||
mld_statusopdr_omschrijving opdracht_status,
|
||
o.mld_opdr_key opdracht_key,
|
||
d.ins_discipline_key fclt_3d_discipline_key
|
||
FROM mld_melding m,
|
||
mld_statuses ms,
|
||
mld_opdr o,
|
||
mld_statusopdr so,
|
||
alg_v_onroerendgoed_gegevens aog,
|
||
alg_locatie l,
|
||
mld_stdmelding std,
|
||
ins_tab_discipline d
|
||
WHERE m.mld_melding_key = o.mld_melding_key
|
||
AND m.mld_melding_status = ms.mld_statuses_key
|
||
AND o.mld_statusopdr_key = so.mld_statusopdr_key
|
||
AND m.mld_alg_locatie_key = l.alg_locatie_key
|
||
AND m.mld_alg_onroerendgoed_keys = aog.alg_onroerendgoed_keys
|
||
AND m.mld_stdmelding_key = std.mld_stdmelding_key
|
||
AND std.mld_ins_discipline_key = d.ins_discipline_key;
|
||
|
||
|
||
-- AAFM#26513 Notificatie goedgekeurde offerte naar autorisatiegroep "HEYDAY Servicedesk"'
|
||
-- Opdracht in status 9 (na ORDOOK)
|
||
-- 'opdracht bij melding wanneer automatische offerteafhandeling uitgeschakeld is' --> mld_disc_params_offerteauto = 0
|
||
-- Opdracht (RFQ) sinds de vorige check goedgekeurd (eenmalig sturen) - 2 views voor beschikbaar. Notificatie naar Gebouwbeheerder + naar ORDOAP-rechthebbenden
|
||
-- Bestemming zijn de personen(0..n) in autorisatiegroep HEYDAY Servicedesk. -> 14-7-2025 - #89829 - autorisatiegroep_ExternID = <20>BO_SERVICEDESK<53>
|
||
CREATE OR REPLACE VIEW aaxx_v_noti_offerte_accepted
|
||
(
|
||
sender,
|
||
receiver,
|
||
text,
|
||
code,
|
||
key,
|
||
xkey
|
||
)
|
||
AS
|
||
SELECT DISTINCT NULL sender,
|
||
gg.prs_perslid_key receiver,
|
||
(SELECT fac_version_cust FROM fac_version)
|
||
|| ': Offerte '
|
||
|| m.mld_melding_key||'/'||o.mld_opdr_bedrijfopdr_volgnr
|
||
|| ' is geaccepteerd' text,
|
||
'CUST04' code,
|
||
o.mld_opdr_key key,
|
||
NULL xkey
|
||
FROM mld_opdr o,
|
||
mld_melding m,
|
||
mld_stdmelding s,
|
||
mld_discipline d,
|
||
mld_disc_params dp,
|
||
fac_srtnotificatie sn,
|
||
fac_tracking t,
|
||
(SELECT g.fac_groep_key
|
||
FROM fac_groep g
|
||
WHERE (g.fac_groep_externid = 'BO_SERVICEDESK' OR g.fac_groep_externid = 'BO_SERVICEDESK_KLANT')
|
||
) g,
|
||
fac_gebruikersgroep gg
|
||
WHERE o.mld_statusopdr_key = 9
|
||
AND m.mld_melding_key = o.mld_melding_key
|
||
AND s.mld_stdmelding_key = m.mld_stdmelding_key
|
||
AND d.ins_discipline_key = s.mld_ins_discipline_key
|
||
AND dp.mld_ins_discipline_key = d.ins_discipline_key
|
||
AND dp.mld_disc_params_offerteauto = 0
|
||
AND sn.fac_srtnotificatie_code = 'ORDOOK'
|
||
AND t.fac_srtnotificatie_key = sn.fac_srtnotificatie_key
|
||
AND t.fac_tracking_refkey = o.mld_opdr_key
|
||
AND t.fac_tracking_datum BETWEEN (SELECT fac_notificatie_job_nextrun - fac_notificatie_job_interval/24
|
||
FROM fac_notificatie_job
|
||
WHERE fac_notificatie_job_view = 'AAXX_V_NOTI_OFFERTE_ACCEPTED')
|
||
AND (SELECT fac_notificatie_job_nextrun
|
||
FROM fac_notificatie_job
|
||
WHERE fac_notificatie_job_view = 'AAXX_V_NOTI_OFFERTE_ACCEPTED')
|
||
AND gg.fac_groep_key = g.fac_groep_key;
|
||
|
||
-- Bij HEYDAY drie smaken voor notificatie van mensen als er Offertes goedgekeurd moeten worden
|
||
--- 1. Aan Gebouwverantwoordelijke (muv de PR- en MJOP-meldingen, want die gaan via 3.)
|
||
--- 2. Aan ALLE mensen met ORDOAP-rechten
|
||
--- 3. Aan de Projectleider van de PR- of MJOP-meldingen
|
||
|
||
--- 1. Notificatie Offerte goed te keuren voor alle GEBOUW-verantwoordelijke
|
||
CREATE OR REPLACE VIEW aaxx_v_noti_offerte_goedkeuren
|
||
(
|
||
sender,
|
||
receiver,
|
||
text,
|
||
code,
|
||
key,
|
||
xkey
|
||
)
|
||
AS
|
||
SELECT NULL,
|
||
gv.prs_perslid_key,
|
||
'Offerte '
|
||
|| m.mld_melding_key
|
||
|| '/'
|
||
|| mld_opdr_bedrijfopdr_volgnr
|
||
|| ' is afgemeld en dient beoordeeld te worden',
|
||
'CUST18',
|
||
o.mld_opdr_key,
|
||
NULL
|
||
FROM mld_opdr o,
|
||
mld_typeopdr ot,
|
||
mld_melding m,
|
||
mld_stdmelding sm,
|
||
mld_discipline d,
|
||
ins_srtdiscipline sd,
|
||
alg_v_allonroerendgoed aor,
|
||
(SELECT alg_gebouw_key, g.prs_perslid_key_verantw prs_perslid_key
|
||
FROM alg_gebouw g
|
||
WHERE prs_perslid_key_verantw IS NOT NULL
|
||
UNION ALL
|
||
SELECT alg_gebouw_key, g.prs_perslid_key_verantw2 prs_perslid_key
|
||
FROM alg_gebouw g
|
||
WHERE g.prs_perslid_key_verantw2 IS NOT NULL) gv,
|
||
prs_perslid p,
|
||
( SELECT fac_tracking_refkey,
|
||
MAX (fac_tracking_datum) fac_tracking_datum
|
||
FROM fac_tracking ft, fac_srtnotificatie fsn
|
||
WHERE fsn.fac_srtnotificatie_key = ft.fac_srtnotificatie_key
|
||
AND fac_srtnotificatie_code = 'ORDAFM'
|
||
GROUP BY fac_tracking_refkey) ft
|
||
WHERE mld_statusopdr_key = 6
|
||
AND ot.mld_typeopdr_key = o.mld_typeopdr_key
|
||
AND mld_typeopdr_isofferte = 1
|
||
AND m.mld_stdmelding_key = sm.mld_stdmelding_key AND sm.mld_ins_discipline_key = d.ins_discipline_key AND d.ins_srtdiscipline_key = sd.ins_srtdiscipline_key
|
||
AND UPPER(sd.ins_srtdiscipline_omschrijving) NOT IN ('MJOP', 'PROJECT') -- voor MJOP en PROJECT loopt de notificatie via de Projectleiders (zie optie 3.)
|
||
AND m.mld_melding_key = o.mld_melding_key
|
||
AND m.mld_alg_onroerendgoed_keys = aor.alg_onroerendgoed_keys
|
||
AND gv.alg_gebouw_key = aor.alg_gebouw_key
|
||
AND gv.prs_perslid_key = p.prs_perslid_key
|
||
AND ft.fac_tracking_refkey = o.mld_opdr_key
|
||
AND ft.fac_tracking_datum >= (SELECT COALESCE(fac_notificatie_job_lastrun, TRUNC(SYSDATE)) FROM fac_notificatie_job WHERE fac_notificatie_job_view = 'AAXX_V_NOTI_OFFERTE_GOEDKEUREN') ;
|
||
|
||
--- 2. Notificatie Offerte goed te keuren voor alle ORDOAP-mensen
|
||
CREATE OR REPLACE VIEW aaxx_v_noti_offerte_goedk_2
|
||
(
|
||
sender,
|
||
receiver,
|
||
text,
|
||
code,
|
||
key,
|
||
xkey
|
||
)
|
||
AS
|
||
SELECT NULL,
|
||
oap.prs_perslid_key,
|
||
'Offerte '
|
||
|| m.mld_melding_key
|
||
|| '/'
|
||
|| mld_opdr_bedrijfopdr_volgnr
|
||
|| ' is afgemeld en dient beoordeeld te worden',
|
||
'CUST12',
|
||
o.mld_opdr_key,
|
||
NULL
|
||
FROM mld_opdr o,
|
||
mld_typeopdr ot,
|
||
mld_melding m,
|
||
(SELECT gg.prs_perslid_key
|
||
FROM fac_functie f,
|
||
fac_groeprechten gr,
|
||
fac_groep g,
|
||
fac_gebruikersgroep gg
|
||
WHERE f.fac_functie_code = 'WEB_ORDOAP'
|
||
AND f.fac_functie_key = gr.fac_functie_key
|
||
AND gr.fac_groep_key = g.fac_groep_key
|
||
AND g.fac_groep_key = gg.fac_groep_key
|
||
GROUP BY gg.prs_perslid_key
|
||
) oap,
|
||
( SELECT fac_tracking_refkey,
|
||
MAX (fac_tracking_datum) fac_tracking_datum
|
||
FROM fac_tracking ft, fac_srtnotificatie fsn
|
||
WHERE fsn.fac_srtnotificatie_key = ft.fac_srtnotificatie_key
|
||
AND fac_srtnotificatie_code = 'ORDAFM'
|
||
GROUP BY fac_tracking_refkey) ft
|
||
WHERE mld_statusopdr_key = 6
|
||
AND ot.mld_typeopdr_key = o.mld_typeopdr_key
|
||
AND mld_typeopdr_isofferte = 1
|
||
AND m.mld_melding_key = o.mld_melding_key
|
||
AND ft.fac_tracking_refkey = o.mld_opdr_key
|
||
AND ft.fac_tracking_datum >= (SELECT COALESCE(fac_notificatie_job_lastrun, TRUNC(SYSDATE)) FROM fac_notificatie_job WHERE fac_notificatie_job_view = 'AAXX_V_NOTI_OFFERTE_GOEDK_2') ;
|
||
|
||
--- 3. Notificatie Offerte goed te keuren voor alle PROJECTLEIDERS (op PROJECT en MJOP-hoofdstroom)
|
||
CREATE OR REPLACE VIEW aaxx_v_noti_offerte_goedk_3
|
||
(
|
||
sender,
|
||
receiver,
|
||
text,
|
||
code,
|
||
key,
|
||
xkey
|
||
)
|
||
AS
|
||
SELECT NULL,
|
||
prl.prs_perslid_key,
|
||
sd.ins_srtdiscipline_omschrijving ||'-offerte '
|
||
|| m.mld_melding_key
|
||
|| '/'
|
||
|| mld_opdr_bedrijfopdr_volgnr
|
||
|| ' is afgemeld en dient beoordeeld te worden',
|
||
'CUST17',
|
||
o.mld_opdr_key,
|
||
NULL
|
||
FROM mld_opdr o,
|
||
mld_typeopdr ot,
|
||
mld_melding m,
|
||
mld_stdmelding sm,
|
||
mld_discipline d,
|
||
ins_srtdiscipline sd,
|
||
(SELECT kw.mld_melding_key, fac.safe_to_number(kw.mld_kenmerkmelding_waarde) prs_perslid_key
|
||
FROM mld_kenmerkmelding kw, mld_kenmerk km, mld_srtkenmerk sk
|
||
WHERE kw.mld_kenmerk_key = km.mld_kenmerk_key
|
||
AND km.mld_srtkenmerk_key = sk.mld_srtkenmerk_key
|
||
AND sk.mld_srtkenmerk_upper = 'PROJECT LEIDER'
|
||
AND sk.mld_srtkenmerk_kenmerktype = 'S') prl, -- projectleider op melding
|
||
( SELECT fac_tracking_refkey,
|
||
MAX (fac_tracking_datum) fac_tracking_datum
|
||
FROM fac_tracking ft, fac_srtnotificatie fsn
|
||
WHERE fsn.fac_srtnotificatie_key = ft.fac_srtnotificatie_key
|
||
AND fac_srtnotificatie_code = 'ORDAFM'
|
||
GROUP BY fac_tracking_refkey) ft
|
||
WHERE mld_statusopdr_key = 6
|
||
AND ot.mld_typeopdr_key = o.mld_typeopdr_key
|
||
AND mld_typeopdr_isofferte = 1
|
||
AND m.mld_stdmelding_key = sm.mld_stdmelding_key AND sm.mld_ins_discipline_key = d.ins_discipline_key AND d.ins_srtdiscipline_key = sd.ins_srtdiscipline_key
|
||
AND UPPER(sd.ins_srtdiscipline_omschrijving) IN ('MJOP', 'PROJECT') -- alleen voor deze hoofdstromen moeten projectleiders genotificeerd worden
|
||
AND m.mld_melding_key = o.mld_melding_key
|
||
AND m.mld_melding_key = prl.mld_melding_key
|
||
AND ft.fac_tracking_refkey = o.mld_opdr_key
|
||
AND ft.fac_tracking_datum >= (SELECT COALESCE(fac_notificatie_job_lastrun, TRUNC(SYSDATE)) FROM fac_notificatie_job WHERE fac_notificatie_job_view = 'AAXX_V_NOTI_OFFERTE_GOEDK_3') ;
|
||
|
||
-- AAIT#78372 notificatie naar aanvrager bij verzetten opdracht-datum
|
||
CREATE OR REPLACE VIEW aaxx_v_noti_melder_datumverzet
|
||
(
|
||
sender,
|
||
receiver,
|
||
text,
|
||
code,
|
||
key,
|
||
xkey,
|
||
xemail,
|
||
xmobile
|
||
)
|
||
AS
|
||
SELECT NULL
|
||
sender,
|
||
p.prs_perslid_key
|
||
receiver,
|
||
'TER INFO - Einddatum van uw melding '
|
||
|| sd.ins_srtdiscipline_prefix
|
||
|| m.mld_melding_key
|
||
|| ' is verzet'
|
||
text,
|
||
'CUST20'
|
||
code,
|
||
m.mld_melding_key
|
||
key,
|
||
NULL
|
||
xkey,
|
||
NULL
|
||
xemail,
|
||
NULL
|
||
xmobile
|
||
FROM mld_opdr o,
|
||
mld_melding m,
|
||
mld_stdmelding sm,
|
||
mld_discipline d,
|
||
ins_srtdiscipline sd,
|
||
prs_perslid p,
|
||
fac_tracking fto,
|
||
fac_srtnotificatie sno,
|
||
fac_tracking ftm,
|
||
fac_srtnotificatie snm,
|
||
(SELECT ko.mld_opdr_key,
|
||
flx.getdomeinwaarde (
|
||
sk.fac_kenmerkdomein_key,
|
||
flx.getflex ('OPD',
|
||
km.mld_kenmerk_key,
|
||
ko.mld_opdr_key))
|
||
reden
|
||
FROM mld_kenmerkopdr ko, mld_kenmerk km, mld_srtkenmerk sk
|
||
WHERE ko.mld_kenmerk_key = km.mld_kenmerk_key
|
||
AND km.mld_srtkenmerk_key = sk.mld_srtkenmerk_key
|
||
AND sk.mld_srtkenmerk_code = 'DATUMVERZET_REDEN') mut
|
||
WHERE o.mld_melding_key = m.mld_melding_key
|
||
AND m.prs_perslid_key = p.prs_perslid_key
|
||
AND p.prs_perslid_email IS NOT NULL
|
||
AND m.mld_stdmelding_key = sm.mld_stdmelding_key
|
||
AND sm.mld_ins_discipline_key = d.ins_discipline_key
|
||
AND d.ins_srtdiscipline_key = sd.ins_srtdiscipline_key
|
||
-- Welke meldingen moeten in de job komen?
|
||
---- 1. In MLD fac_tracking met MLDUPD en in omschrijving 'Gereed:' en fac_trackingsdatum >= dan laatste notificatiejob
|
||
AND m.mld_melding_key = ftm.fac_tracking_refkey
|
||
AND ftm.fac_srtnotificatie_key = snm.fac_srtnotificatie_key
|
||
AND snm.fac_srtnotificatie_code = 'MLDUPD'
|
||
AND INSTR (ftm.fac_tracking_oms, 'Gereed:') > 0
|
||
AND ftm.fac_tracking_datum >=
|
||
(SELECT fac_notificatie_job_lastrun
|
||
FROM fac_notificatie_job
|
||
WHERE fac_notificatie_job_view =
|
||
'AAXX_V_NOTI_MELDER_DATUMVERZET')
|
||
---- 2. En in OPDR een fac_tracking op ORDDAT fac_trackingsdatum >= dan laatste notificatiejob
|
||
AND o.mld_opdr_key = fto.fac_tracking_refkey
|
||
AND fto.fac_srtnotificatie_key = sno.fac_srtnotificatie_key
|
||
AND sno.fac_srtnotificatie_code = 'ORDDAT'
|
||
AND fto.fac_tracking_datum >=
|
||
(SELECT fac_notificatie_job_lastrun
|
||
FROM fac_notificatie_job
|
||
WHERE fac_notificatie_job_view =
|
||
'AAXX_V_NOTI_MELDER_DATUMVERZET')
|
||
---- 3. En op die opdracht is een kenmerk-reden gevuld die ongelijk 'Aangepast - Geen notificatie' is
|
||
AND o.mld_opdr_key = mut.mld_opdr_key
|
||
AND mut.reden NOT IN ('Aangepast - Geen notificatie')
|
||
GROUP BY p.prs_perslid_key, m.mld_melding_key, sd.ins_srtdiscipline_prefix ;
|
||
|
||
|
||
-- AAHU#29410 Notificatie geregistreerde klacht naar groep "HEYDAY-FMer"
|
||
-- prefix KL is klacht
|
||
CREATE OR REPLACE VIEW aaxx_v_noti_klacht_reminder
|
||
(
|
||
sender,
|
||
receiver,
|
||
text,
|
||
code,
|
||
key,
|
||
xkey
|
||
)
|
||
AS
|
||
SELECT NULL,
|
||
fm.prs_perslid_key,
|
||
'Er is een klacht geregistreerd met referentienummer: '
|
||
|| m.mld_melding_key,
|
||
'MLDNEW',
|
||
m.mld_melding_key,
|
||
NULL
|
||
FROM mld_melding m,
|
||
mld_stdmelding std,
|
||
mld_discipline d,
|
||
ins_srtdiscipline srt,
|
||
fac_tracking tr,
|
||
fac_srtnotificatie str,
|
||
(SELECT p.prs_perslid_key
|
||
FROM fac_gebruikersgroep fg, fac_groep g, prs_perslid p
|
||
WHERE g.fac_groep_key = fg.fac_groep_key
|
||
AND p.prs_perslid_key = fg.prs_perslid_key
|
||
AND UPPER (g.fac_groep_omschrijving) = 'HEYDAY FM-ER'
|
||
AND prs_perslid_verwijder IS NULL
|
||
AND prs_perslid_email IS NOT NULL) fm
|
||
WHERE m.mld_stdmelding_key = std.mld_stdmelding_key
|
||
AND std.mld_ins_discipline_key = d.ins_discipline_key
|
||
AND d.ins_srtdiscipline_key = srt.ins_srtdiscipline_key
|
||
AND srt.ins_srtdiscipline_module = 'MLD'
|
||
AND srt.ins_srtdiscipline_prefix = 'KL'
|
||
AND m.fac_activiteit_key IS NULL
|
||
AND tr.fac_srtnotificatie_key = str.fac_srtnotificatie_key
|
||
AND tr.fac_tracking_refkey = m.mld_melding_key
|
||
AND str.fac_srtnotificatie_code = 'MLDNEW'
|
||
AND tr.fac_tracking_datum > SYSDATE - 1 / 24;
|
||
|
||
|
||
-- AAFM#33840 notificatie tbv gepland bezoek
|
||
CREATE OR REPLACE VIEW aaxx_v_noti_plan_opdr
|
||
(
|
||
sender,
|
||
receiver,
|
||
text,
|
||
code,
|
||
key,
|
||
xkey,
|
||
xemail,
|
||
xmobile
|
||
)
|
||
AS
|
||
SELECT NULL sender,
|
||
NULL receiver,
|
||
'Aankondiging werkzaamheden door '
|
||
|| b.prs_bedrijf_naam
|
||
|| ' op '
|
||
|| mld_opdr_plandatum
|
||
|| ' op uw locatie'
|
||
text,
|
||
'CUST08' code,
|
||
mld_opdr_key key,
|
||
NULL xkey,
|
||
g.alg_gebouw_email xemail,
|
||
NULL xmobile
|
||
FROM mld_opdr o,
|
||
mld_melding m,
|
||
alg_v_allonrgoed_gegevens aog,
|
||
alg_gebouw g,
|
||
prs_bedrijf b
|
||
WHERE ( (TRUNC (mld_opdr_plandatum) = TRUNC (SYSDATE + 1)
|
||
AND fac.getweekdaynum (SYSDATE) != 6)
|
||
OR (TRUNC (mld_opdr_plandatum) BETWEEN TRUNC (SYSDATE + 1)
|
||
AND TRUNC (SYSDATE + 3)
|
||
AND fac.getweekdaynum (SYSDATE) = 6))
|
||
AND mld_statusopdr_key NOT IN (1, 6, 7, 9)
|
||
AND o.mld_melding_key = m.mld_melding_key
|
||
AND aog.alg_onroerendgoed_keys = m.mld_alg_onroerendgoed_keys
|
||
AND o.mld_uitvoerende_keys = b.prs_bedrijf_key
|
||
AND g.alg_gebouw_key = aog.alg_gebouw_key;
|
||
|
||
-- AAIT#31201 automatische notificatie naar melder van PR meldingen sturen
|
||
-- 2 weken voorafgaand aan de einddatum van een project (PR melding).
|
||
CREATE OR REPLACE VIEW aaxx_v_noti_mld_projecten
|
||
(
|
||
sender,
|
||
receiver,
|
||
text,
|
||
code,
|
||
key,
|
||
xkey
|
||
)
|
||
AS
|
||
SELECT NULL sender,
|
||
prs_perslid_key_voor,
|
||
'Herinnering: Over 2 weken sluit projectnummer '
|
||
|| ins_srtdiscipline_prefix
|
||
|| mld_melding_key
|
||
text,
|
||
'MLDNEW' code,
|
||
mld_melding_key key,
|
||
NULL xkey
|
||
FROM mld_melding m,
|
||
mld_stdmelding std,
|
||
mld_discipline d,
|
||
ins_srtdiscipline srt
|
||
WHERE m.mld_stdmelding_key = std.mld_stdmelding_key
|
||
AND std.mld_ins_discipline_key = d.ins_discipline_key
|
||
AND d.ins_srtdiscipline_key = srt.ins_srtdiscipline_key
|
||
AND UPPER (ins_srtdiscipline_prefix) = 'PR'
|
||
AND m.mld_melding_status NOT IN (1, 5, 6)
|
||
AND m.mld_melding_einddatum BETWEEN SYSDATE + 13 AND SYSDATE + 14;
|
||
|
||
|
||
CREATE OR REPLACE VIEW aaxx_v_kostensoort
|
||
(
|
||
prs_kostensoort_key,
|
||
prs_kostensoort_omschrijving
|
||
)
|
||
AS
|
||
SELECT prs_kostensoort_key,
|
||
prs_kostensoort_oms || '-' || prs_kostensoort_opmerking
|
||
FROM prs_kostensoort;
|
||
|
||
-- AAIT#32784 inzage in zoekgedrag. View te gebruiken icm 20151 rapport mogelijkheden.
|
||
CREATE OR REPLACE VIEW aaxx_v_gui_searchresults
|
||
(
|
||
Zoekterm,
|
||
Datum,
|
||
Persoon,
|
||
Keuze,
|
||
Resultaat
|
||
)
|
||
AS
|
||
SELECT fgc.fac_gui_counter_info zoekterm,
|
||
fac_gui_counter_date datum,
|
||
prs_perslid_naam_full persoon,
|
||
choice.fac_gui_counter_info keuze,
|
||
result.fac_gui_counter_info resultaat
|
||
FROM fac_gui_counter fgc,
|
||
prs_v_perslid_fullnames pf,
|
||
(SELECT fac_gui_counter_refkey, fac_gui_counter_info
|
||
FROM fac_gui_counter fgc
|
||
WHERE fac_gui_counter_info IS NOT NULL
|
||
AND fac_gui_counter_group = 'searchchoice') choice,
|
||
(SELECT fac_gui_counter_refkey, fac_gui_counter_info
|
||
FROM fac_gui_counter fgc
|
||
WHERE fac_gui_counter_info IS NOT NULL
|
||
AND fac_gui_counter_group = 'searchresult') result
|
||
WHERE fac_gui_counter_group = 'search'
|
||
AND fgc.fac_gui_counter_info IS NOT NULL
|
||
AND fgc.prs_perslid_key = pf.prs_perslid_key
|
||
AND choice.fac_gui_counter_refkey(+) = fgc.fac_gui_counter_key
|
||
AND result.fac_gui_counter_refkey(+) = fgc.fac_gui_counter_key;
|
||
|
||
-- procedure om ontvangen emails te processen. De klant specifieke eigenschappen, keys e.d. moeten
|
||
-- in de aanroep meegegeven worden.
|
||
CREATE OR REPLACE PROCEDURE aaxx_processemail (
|
||
pfrom IN VARCHAR2,
|
||
pto IN VARCHAR2,
|
||
psubject IN VARCHAR2,
|
||
pbody IN VARCHAR2,
|
||
psessionid IN VARCHAR2,
|
||
pemailkey IN NUMBER)
|
||
AS
|
||
sender_key prs_perslid.prs_perslid_key%TYPE;
|
||
melder_key prs_perslid.prs_perslid_key%TYPE;
|
||
kostenplaats_key prs_afdeling.prs_kostenplaats_key%TYPE;
|
||
mldkey mld_melding.mld_melding_key%TYPE;
|
||
opdrkey mld_opdr.mld_opdr_key%TYPE;
|
||
stdmelding mld_stdmelding.mld_stdmelding_key%TYPE;
|
||
subject_regexp fac_setting.fac_setting_default%TYPE;
|
||
kkey mld_kenmerk.mld_kenmerk_key%TYPE;
|
||
errormsg fac_result.fac_result_waarde%TYPE;
|
||
behandelaar_key mld_melding.mld_melding_behandelaar_key%TYPE;
|
||
typeopdrkey mld_typeopdr.mld_typeopdr_key%TYPE;
|
||
mldnum VARCHAR2 (4000);
|
||
opdrnum VARCHAR2 (4000);
|
||
opdrvolgnr NUMBER (10);
|
||
srtdisc VARCHAR2 (4000);
|
||
cnt NUMBER (10);
|
||
v_flag_on_fenote NUMBER (10);
|
||
v_flag_on_bonote NUMBER (10);
|
||
v_from VARCHAR2 (4000);
|
||
v_body VARCHAR2 (4000);
|
||
v_subject VARCHAR2 (1000);
|
||
v_pos NUMBER;
|
||
v_result NUMBER;
|
||
v_factuur_key fin_factuur.fin_factuur_key%TYPE;
|
||
v_kenmerk_key fin_kenmerk.fin_kenmerk_key%TYPE;
|
||
v_fac_usrdata_key_ja NUMBER(10);
|
||
v_fac_usrdata_key_nee NUMBER(10);
|
||
|
||
|
||
BEGIN
|
||
errormsg := '(0x143)';
|
||
|
||
-- de mailberichten worden doorgestuurd vanuit de AAFM exchange omgeving. Hierbij
|
||
-- is het niet mogelijk de afzender te laten staan. Daarom wordt de afzender in het subject
|
||
-- van de mail geplaatst. Scheidingsteken in de ';'.
|
||
v_from := SUBSTR (psubject, 1, INSTR (psubject, ';') - 1);
|
||
v_subject := SUBSTR (psubject, INSTR (psubject, ';') + 1);
|
||
|
||
-- Verwijder de Bounce Address Tag Validation
|
||
IF v_from LIKE 'prvs=%'
|
||
THEN
|
||
v_from := SUBSTR (v_from, INSTR (v_from, '=', -1) + 1);
|
||
END IF;
|
||
|
||
|
||
v_body :=
|
||
v_from || ': ' || CHR (13) || CHR (10)
|
||
|| SUBSTR (
|
||
v_subject || CHR (13) || CHR (10)
|
||
|| REPLACE (SUBSTR (pbody, 1, 3900 - (LENGTH (v_subject) + 2)),
|
||
CHR (13) || CHR (10) || CHR (13) || CHR (10),
|
||
CHR (13) || CHR (10)),
|
||
1,
|
||
3900); -- verwijder onnodige witregels
|
||
|
||
-- DBMS_OUTPUT.PUT_LINE('v_from: '||v_from);
|
||
|
||
errormsg := '(0x143a)';
|
||
-- Valideer de sender in pfrom: kennen we deze?
|
||
SELECT MIN (prs_perslid_key), MIN (d.prs_kostenplaats_key)
|
||
INTO sender_key, kostenplaats_key
|
||
FROM prs_perslid p, prs_afdeling d
|
||
WHERE p.prs_afdeling_key = d.prs_afdeling_key
|
||
AND prs_perslid_verwijder IS NULL
|
||
AND UPPER (prs_perslid_email) = UPPER (v_from);
|
||
|
||
errormsg := '(0x143b)';
|
||
IF sender_key IS NULL
|
||
THEN
|
||
sender_key := 11; -- prs_perslid_key onbekend mail adres.
|
||
|
||
SELECT d.prs_kostenplaats_key
|
||
INTO kostenplaats_key
|
||
FROM prs_perslid p, prs_afdeling d
|
||
WHERE p.prs_afdeling_key = d.prs_afdeling_key
|
||
AND prs_perslid_verwijder IS NULL
|
||
AND p.prs_perslid_key = sender_key;
|
||
END IF;
|
||
|
||
CASE
|
||
WHEN UPPER (pto) LIKE 'INVOICES@%'
|
||
THEN
|
||
errormsg := '(0x143c)';
|
||
INSERT INTO fin_factuur (fin_factuur_statuses_key,
|
||
fin_factuur_datum,
|
||
fin_factuur_totaal_btw,
|
||
fin_factuur_nr,
|
||
fin_factuur_bron)
|
||
VALUES (3,
|
||
SYSDATE,
|
||
0,
|
||
'#',
|
||
2)
|
||
RETURNING fin_factuur_key
|
||
INTO v_factuur_key;
|
||
|
||
-- Zet kenmerk laatste factuur op Ja
|
||
-- Ophalen key-waarde Ja van kenmerkveld Laatste Factuur
|
||
SELECT ud.fac_usrdata_key
|
||
INTO v_fac_usrdata_key_ja
|
||
FROM fin_kenmerk k,
|
||
fac_kenmerkdomein kd,
|
||
fac_usrtab ut,
|
||
fac_usrdata ud
|
||
WHERE fin_kenmerk_key = 2
|
||
AND k.fac_kenmerkdomein_key = kd.fac_kenmerkdomein_key
|
||
AND kd.fac_usrtab_key = ut.fac_usrtab_key
|
||
AND ut.fac_usrtab_key = ud.fac_usrtab_key
|
||
AND fac.safe_to_number (ud.fac_usrdata_code) = 1; -- Waarde is Ja
|
||
|
||
errormsg := '(0x143d)';
|
||
INSERT INTO fin_kenmerkfactuur (fin_factuur_key, fin_kenmerk_key, fin_kenmerkfactuur_waarde)
|
||
VALUES (v_factuur_key, 2, v_fac_usrdata_key_ja);
|
||
|
||
-- Bepaal de key van de bijlages
|
||
errormsg := '(0x143e)';
|
||
SELECT fin_kenmerk_key
|
||
INTO v_kenmerk_key
|
||
FROM fin_kenmerk
|
||
WHERE fin_kenmerk_verwijder IS NULL
|
||
AND UPPER(fin_kenmerk_omschrijving) = 'BIJLAGES';
|
||
|
||
errormsg := '(0x143f)';
|
||
INSERT INTO fac_result (fac_result_sessionid,
|
||
fac_result_naam,
|
||
fac_result_waarde)
|
||
VALUES (psessionid,
|
||
'kenmerkpath',
|
||
'FIN\F'
|
||
|| TO_CHAR (TRUNC (v_factuur_key / 1000), 'FM0000')
|
||
|| '___\F'
|
||
|| v_factuur_key
|
||
|| '\'
|
||
|| v_kenmerk_key
|
||
|| '\');
|
||
WHEN UPPER (pto) LIKE 'SERVICEDESK@%'
|
||
THEN
|
||
errormsg := '(0x145)';
|
||
|
||
-- append (as a note?) to an existing melding if #key is found in the subject
|
||
-- Alternatief was: scannen van fac_srtnotificatie_oms maar dat voelt ook niet echt lekker
|
||
-- subject_regexp := fac.getsetting ('mld_reply_subject_regexp'); -- [[:alpha:]]*[[:digit:]]{3,}
|
||
|
||
-- hebben we een referentie naar een opdracht of naar een melding?
|
||
subject_regexp := '[[:digit:]]{3,}/[[:digit:]]*';
|
||
opdrnum :=
|
||
REGEXP_SUBSTR (v_subject,
|
||
subject_regexp,
|
||
1,
|
||
1,
|
||
'i'); -- MA12345
|
||
|
||
DBMS_OUTPUT.put_line ('opdrnum: ' || opdrnum);
|
||
|
||
-- Ja, nu komt het voor dat de opdracht/melding verward wordt met een
|
||
-- bestelling/opdracht. Daarom gaan we kijken of er een bestelling of
|
||
-- bestelopdracht is. Als deze er is dan kijken we naar de aanmaakdatum
|
||
-- is deze nieuwe dan de aanmaakdatum van de melding/opdracht, dan doen
|
||
-- we niets met de mail en hoort deze waarschijnlijk bij een bestelling.
|
||
-- Voor opdrachten (eerste gedeelte) en meldingen (tweede gedeelte) wordt
|
||
-- deze controle uitgevoerd zodra het melding/opdracht nummer bekend is.
|
||
IF opdrnum IS NOT NULL
|
||
THEN
|
||
opdrvolgnr :=
|
||
fac.safe_to_number (
|
||
SUBSTR (opdrnum, INSTR (opdrnum, '/') + 1));
|
||
DBMS_OUTPUT.put_line ('opdrvolgnr: ' || opdrvolgnr);
|
||
|
||
mldkey :=
|
||
fac.safe_to_number (
|
||
SUBSTR (opdrnum, 1, INSTR (opdrnum, '/') - 1));
|
||
DBMS_OUTPUT.put_line ('mldkey: ' || mldkey);
|
||
|
||
SELECT MAX (SIGN (b_o.datum - m_o.datum)) -- 1 als b_o datum > m_o datum
|
||
INTO v_result
|
||
FROM (SELECT bes_bestelopdr_datum datum
|
||
FROM bes_bestelopdr
|
||
WHERE bes_bestelopdr_id = mldkey || '/' || opdrvolgnr) b_o,
|
||
(SELECT mld_opdr_datumbegin datum
|
||
FROM mld_opdr
|
||
WHERE mld_melding_key = mldkey AND mld_opdr_bedrijfopdr_volgnr = opdrvolgnr) m_o;
|
||
|
||
ELSE
|
||
subject_regexp := '[[:alpha:]]*[[:digit:]]{3,}';
|
||
mldnum :=
|
||
REGEXP_SUBSTR (v_subject,
|
||
subject_regexp,
|
||
1,
|
||
1,
|
||
'i'); -- MA12345
|
||
srtdisc :=
|
||
REGEXP_SUBSTR (mldnum,
|
||
'[[:alpha:]]*',
|
||
1,
|
||
1,
|
||
'i'); -- MA
|
||
mldkey :=
|
||
fac.safe_to_number (SUBSTR (mldnum, LENGTH (srtdisc) + 1));
|
||
|
||
SELECT MAX (SIGN (b.datum - m.datum)) -- 1 als bes datum > mld datum
|
||
INTO v_result
|
||
FROM (SELECT bes_bestelling_datum datum
|
||
FROM bes_bestelling
|
||
WHERE bes_bestelling_key = mldkey) b,
|
||
(SELECT mld_melding_datum datum
|
||
FROM mld_melding
|
||
WHERE mld_melding_key = mldkey) m;
|
||
END IF;
|
||
|
||
IF v_result = 1 AND v_result IS NOT NULL
|
||
THEN
|
||
-- resultaat is 1 als de datum van de bestelling/opdracht groter is dan de datum van
|
||
-- de melding/opdracht.
|
||
DBMS_OUTPUT.put_line ('v_result: ' || v_result);
|
||
RETURN;
|
||
END IF;
|
||
|
||
DBMS_OUTPUT.put_line ('mldnum: ' || mldnum);
|
||
DBMS_OUTPUT.put_line ('srtdisc: ' || srtdisc);
|
||
DBMS_OUTPUT.put_line ('mldkey: ' || mldkey);
|
||
|
||
-- We eisen
|
||
-- - Goed meldingnummer
|
||
-- - Goede srtdiscipline
|
||
-- - Afzender is degene voor wie de melding was
|
||
-- suggested extensions: ook collega's toestaan?
|
||
SELECT MIN (mm.mld_stdmelding_key), MIN (prs_perslid_key_voor)
|
||
INTO stdmelding, melder_key
|
||
FROM mld_melding mm,
|
||
mld_stdmelding msm,
|
||
ins_tab_discipline insd,
|
||
ins_srtdiscipline isd
|
||
WHERE mm.mld_melding_key = mldkey
|
||
AND mm.mld_stdmelding_key = msm.mld_stdmelding_key
|
||
AND msm.mld_ins_discipline_key = insd.ins_discipline_key
|
||
AND insd.ins_srtdiscipline_key = isd.ins_srtdiscipline_key;
|
||
|
||
-- Controle op srtdisc werkt niet goed. Mails worden na binnenkomst namelijk doorgezet
|
||
-- naar de definitieve stdmelding(/discipline/srtdiscpline) en daarmee verandert de
|
||
-- prefix letter
|
||
--AND isd.ins_srtdiscipline_prefix = srtdisc
|
||
--AND mm.prs_perslid_key_voor = sender; -- Mogen anderen ook reageren?
|
||
|
||
DBMS_OUTPUT.put_line (
|
||
'mld_stdmelding_key: ' || TO_CHAR (stdmelding));
|
||
|
||
-- kijk of de referentie naar de opdracht wel correct is:
|
||
IF opdrvolgnr IS NOT NULL
|
||
THEN
|
||
BEGIN
|
||
SELECT mld_opdr_key, mld_typeopdr_key
|
||
INTO opdrkey, typeopdrkey
|
||
FROM mld_opdr
|
||
WHERE mld_melding_key = mldkey
|
||
AND mld_opdr_bedrijfopdr_volgnr = opdrvolgnr;
|
||
EXCEPTION
|
||
WHEN OTHERS
|
||
THEN
|
||
opdrkey := NULL;
|
||
END;
|
||
END IF;
|
||
|
||
BEGIN
|
||
IF opdrkey IS NOT NULL
|
||
THEN
|
||
SELECT o.prs_perslid_key
|
||
INTO behandelaar_key
|
||
FROM mld_opdr o, prs_perslid p
|
||
WHERE o.mld_opdr_key = opdrkey
|
||
AND o.prs_perslid_key = p.prs_perslid_key
|
||
AND p.prs_perslid_email IS NOT NULL
|
||
AND p.prs_perslid_verwijder IS NULL;
|
||
ELSE
|
||
SELECT mld_melding_behandelaar_key
|
||
INTO behandelaar_key
|
||
FROM mld_melding m, prs_perslid p
|
||
WHERE mld_melding_key = mldkey
|
||
AND mld_melding_behandelaar_key = p.prs_perslid_key
|
||
AND p.prs_perslid_email IS NOT NULL
|
||
AND p.prs_perslid_verwijder IS NULL;
|
||
END IF;
|
||
EXCEPTION
|
||
WHEN OTHERS
|
||
THEN
|
||
behandelaar_key := NULL;
|
||
END;
|
||
|
||
IF (stdmelding IS NOT NULL)
|
||
THEN -- Bestaande opdracht.
|
||
IF opdrkey IS NOT NULL
|
||
THEN
|
||
INSERT INTO mld_opdr_note (mld_opdr_key,
|
||
mld_opdr_note_omschrijving,
|
||
prs_perslid_key)
|
||
VALUES (opdrkey, v_body, sender_key);
|
||
|
||
fac.trackaction ('ORDUPD',
|
||
opdrkey,
|
||
sender_key,
|
||
NULL,
|
||
'#Notitie toegevoegd vanuit e-mail'); -- # voorkomt notificatie
|
||
DBMS_OUTPUT.put_line ('Notitie toegevoegd.');
|
||
ELSE
|
||
INSERT INTO mld_melding_note (mld_melding_key,
|
||
mld_melding_note_omschrijving,
|
||
prs_perslid_key,
|
||
mld_melding_note_flag)
|
||
VALUES (mldkey,
|
||
v_body,
|
||
sender_key,
|
||
DECODE (sender_key, melder_key, 1, 0)); -- 1 is zichtbaar FE want zelf ingevoerd.
|
||
|
||
fac.trackaction ('MLDNOT',
|
||
mldkey,
|
||
sender_key,
|
||
NULL,
|
||
'#Notitie toegevoegd vanuit e-mail'); -- # voorkomt notificatie
|
||
DBMS_OUTPUT.put_line ('Notitie toegevoegd.');
|
||
|
||
INSERT INTO fac_result (fac_result_sessionid,
|
||
fac_result_naam,
|
||
fac_result_waarde)
|
||
VALUES (psessionid,
|
||
'maillog',
|
||
'Als notitie toegevoegd aan melding ' || mldkey);
|
||
|
||
IF behandelaar_key IS NOT NULL
|
||
THEN
|
||
-- Notificatie naar behandelaar
|
||
fac.putnotificationsrtprio (
|
||
NULL,
|
||
behandelaar_key,
|
||
'MLDNOB',
|
||
mldkey,
|
||
'Melding ' || mldkey || ' is door de klant aangepast.',
|
||
2,
|
||
NULL,
|
||
NULL,
|
||
NULL,
|
||
2,
|
||
NULL);
|
||
END IF;
|
||
END IF;
|
||
|
||
-- Vlaggetjes zetten zoals mld_edit_note.asp dat doet
|
||
BEGIN
|
||
UPDATE mld_melding
|
||
SET mld_melding_actiecode = 1+128 -- Backoffice + Attentie
|
||
WHERE mld_melding_key = mldkey;
|
||
EXCEPTION
|
||
WHEN OTHERS
|
||
THEN
|
||
DBMS_OUTPUT.put_line( 'Niet gelukt om flag '
|
||
|| v_flag_on_fenote
|
||
|| ' te zetten.');
|
||
END;
|
||
ELSE
|
||
-- suggested extensions:
|
||
-- check for MLDUSE-write autorisations
|
||
-- parse the subject to find an appropriate stdmelding, if uniquely possible
|
||
errormsg := '(0x148)';
|
||
|
||
BEGIN
|
||
stdmelding :=
|
||
fac.safe_to_number (fac.getsetting ('defaultstdmelding'));
|
||
|
||
INSERT INTO mld_melding (mld_melding_module,
|
||
mld_meldbron_key,
|
||
mld_melding_datum,
|
||
mld_melding_omschrijving,
|
||
mld_melding_status,
|
||
mld_melding_t_uitvoertijd,
|
||
mld_stdmelding_key,
|
||
prs_perslid_key,
|
||
prs_perslid_key_voor,
|
||
prs_kostenplaats_key,
|
||
mld_melding_spoed)
|
||
VALUES ('MLD',
|
||
4, -- email
|
||
SYSDATE,
|
||
v_body,
|
||
NULL,
|
||
mld_t_uitvoertijd (2, 'D'),
|
||
stdmelding,
|
||
sender_key,
|
||
sender_key,
|
||
kostenplaats_key,
|
||
3)
|
||
RETURNING mld_melding_key
|
||
INTO mldkey;
|
||
|
||
-- DBMS_OUTPUT.PUT_LINE('Melding toegevoegd: ' || mldkey);
|
||
errormsg := '(0x165)';
|
||
mld.setmeldingstatus (mldkey, 2, sender_key);
|
||
|
||
INSERT INTO fac_result (fac_result_sessionid,
|
||
fac_result_naam,
|
||
fac_result_waarde)
|
||
VALUES (psessionid,
|
||
'maillog',
|
||
'Geregistreerd onder melding ' || mldkey);
|
||
END;
|
||
END IF;
|
||
|
||
IF opdrkey IS NULL
|
||
THEN
|
||
-- Zoek het laagste bijlagen kenmerk key (AAEN#34590) om de bijlagen onder te stoppen
|
||
errormsg := '(0x151)';
|
||
|
||
SELECT MIN (mld_kenmerk_key)
|
||
INTO kkey
|
||
FROM mld_kenmerk k,
|
||
mld_srtkenmerk sk,
|
||
mld_stdmelding std,
|
||
ins_tab_discipline d
|
||
WHERE mld_srtkenmerk_kenmerktype = 'M'
|
||
AND sk.mld_srtkenmerk_key = k.mld_srtkenmerk_key
|
||
AND std.mld_stdmelding_key = stdmelding
|
||
AND std.mld_ins_discipline_key = d.ins_discipline_key
|
||
AND ( (k.mld_stdmelding_key = std.mld_stdmelding_key
|
||
AND k.mld_kenmerk_niveau = 'S')
|
||
OR (k.mld_stdmelding_key = d.ins_discipline_key
|
||
AND k.mld_kenmerk_niveau = 'D')
|
||
OR (k.mld_stdmelding_key = d.ins_srtdiscipline_key
|
||
AND k.mld_kenmerk_niveau = 'T'))
|
||
AND k.mld_kenmerk_verwijder IS NULL
|
||
AND NOT EXISTS
|
||
(SELECT mld_kenmerk_volgnummer
|
||
FROM mld_kenmerk k1,
|
||
mld_srtkenmerk sk1,
|
||
mld_stdmelding std1,
|
||
ins_tab_discipline d1
|
||
WHERE sk1.mld_srtkenmerk_kenmerktype = 'M'
|
||
AND sk1.mld_srtkenmerk_key = k1.mld_srtkenmerk_key
|
||
AND std1.mld_stdmelding_key = stdmelding
|
||
AND std1.mld_ins_discipline_key =
|
||
d1.ins_discipline_key
|
||
AND ( (k1.mld_stdmelding_key =
|
||
std1.mld_stdmelding_key
|
||
AND k1.mld_kenmerk_niveau = 'S')
|
||
OR (k1.mld_stdmelding_key = d1.ins_discipline_key
|
||
AND k1.mld_kenmerk_niveau = 'D')
|
||
OR (k1.mld_stdmelding_key =
|
||
d1.ins_srtdiscipline_key
|
||
AND k1.mld_kenmerk_niveau = 'T'))
|
||
AND k1.mld_kenmerk_verwijder IS NULL
|
||
AND k1.mld_kenmerk_key < k.mld_kenmerk_key);
|
||
|
||
errormsg := '(0x153)';
|
||
|
||
IF kkey IS NOT NULL
|
||
THEN
|
||
-- DBMS_OUTPUT.PUT_LINE('Bijlagen kenmerk: ' || kkey);
|
||
errormsg := '(0x157)';
|
||
|
||
INSERT INTO fac_result (fac_result_sessionid,
|
||
fac_result_naam,
|
||
fac_result_waarde)
|
||
VALUES (psessionid,
|
||
'kenmerkpath',
|
||
'MLD\M'
|
||
|| TO_CHAR (TRUNC (mldkey / 1000), 'FM0000')
|
||
|| '___\M'
|
||
|| mldkey
|
||
|| '\'
|
||
|| kkey
|
||
|| '\');
|
||
END IF;
|
||
ELSE
|
||
-- Zoek het laagste bijlagen kenmerk om de bijlagen onder te stoppen
|
||
errormsg := '(0x152)';
|
||
|
||
SELECT MIN (mld_kenmerk_key)
|
||
INTO kkey
|
||
FROM mld_kenmerk k, mld_srtkenmerk sk
|
||
WHERE sk.mld_srtkenmerk_kenmerktype = 'M'
|
||
AND sk.mld_srtkenmerk_key = k.mld_srtkenmerk_key
|
||
AND k.mld_typeopdr_key = typeopdrkey
|
||
AND k.mld_kenmerk_niveau = 'O'
|
||
AND k.mld_kenmerk_verwijder IS NULL
|
||
AND NOT EXISTS
|
||
(SELECT mld_kenmerk_volgnummer
|
||
FROM mld_kenmerk k1, mld_srtkenmerk sk1
|
||
WHERE sk1.mld_srtkenmerk_kenmerktype = 'M'
|
||
AND sk1.mld_srtkenmerk_key = k1.mld_srtkenmerk_key
|
||
AND k1.mld_typeopdr_key = typeopdrkey
|
||
AND k1.mld_kenmerk_niveau = 'O'
|
||
AND k1.mld_kenmerk_verwijder IS NULL
|
||
AND k1.mld_kenmerk_volgnummer <
|
||
k.mld_kenmerk_volgnummer);
|
||
|
||
errormsg := '(0x154)';
|
||
|
||
IF kkey IS NOT NULL
|
||
THEN
|
||
-- DBMS_OUTPUT.PUT_LINE('Bijlagen kenmerk: ' || kkey);
|
||
errormsg := '(0x157)';
|
||
|
||
INSERT INTO fac_result (fac_result_sessionid,
|
||
fac_result_naam,
|
||
fac_result_waarde)
|
||
VALUES (psessionid,
|
||
'kenmerkpath',
|
||
'MLD\O'
|
||
|| TO_CHAR (TRUNC (opdrkey / 1000), 'FM0000')
|
||
|| '___\O'
|
||
|| opdrkey
|
||
|| '\'
|
||
|| kkey
|
||
|| '\');
|
||
END IF;
|
||
END IF;
|
||
ELSE
|
||
errormsg := '(0x188)';
|
||
|
||
INSERT INTO fac_result (fac_result_sessionid,
|
||
fac_result_naam,
|
||
fac_result_waarde)
|
||
VALUES (psessionid,
|
||
'errormsg',
|
||
'Database fout - Neem contact op met uw systeembeheerder '
|
||
|| errormsg);
|
||
END CASE;
|
||
EXCEPTION
|
||
WHEN OTHERS
|
||
THEN
|
||
-- DBMS_OUTPUT.PUT_LINE('Mail niet geaccepteerd: ' || 'OTHERS (error ' || SQLCODE || '/' || SUBSTR (SQLERRM, 1, 100) || ')');
|
||
INSERT INTO fac_result (fac_result_sessionid,
|
||
fac_result_naam,
|
||
fac_result_waarde)
|
||
VALUES (psessionid,
|
||
'errormsg',
|
||
'Database fout - Neem contact op met uw systeembeheerder '
|
||
|| errormsg);
|
||
|
||
fac.writelog (
|
||
'PROCESSEMAIL',
|
||
'E',
|
||
'Mail kon niet ingelezen worden afzender:'
|
||
|| v_from
|
||
|| '['
|
||
|| errormsg
|
||
|| ']'
|
||
|| psubject,
|
||
'OTHERS (error '
|
||
|| SQLCODE
|
||
|| '/'
|
||
|| SUBSTR (SQLERRM, 1, 100)
|
||
|| ')');
|
||
END;
|
||
/
|
||
|
||
-- View tbv notificatiejob - Notities meldingen naar backoffice ipv behandelaar (ipv MLDNOB)
|
||
-- Notificatie gaat naar emailadres Servicedesk Heyday (= vakgroep email-adres) (ticket 60002 en 60269)
|
||
CREATE OR REPLACE VIEW AAXX_V_NOTIFY_BACKOFFICE_NOB
|
||
(
|
||
SENDER,
|
||
RECEIVER,
|
||
TEXT,
|
||
CODE,
|
||
FAC_SRTNOTIFICATIE_KEY,
|
||
KEY,
|
||
XKEY,
|
||
XEMAIL,
|
||
XMOBILE
|
||
)
|
||
AS
|
||
SELECT (SELECT prs_perslid_key
|
||
FROM prs_perslid
|
||
WHERE prs_perslid_upper = 'FACILITOR')
|
||
sender,
|
||
NULL
|
||
receiver,
|
||
'Er is/zijn '
|
||
|| TO_CHAR (v.aantalopmerkingen)
|
||
|| ' nieuwe opmerking(en) geplaatst bij melding '
|
||
|| v.mld_melding_key
|
||
|| ' ('
|
||
|| v.mld_stdmelding_omschrijving
|
||
|| ' / '
|
||
|| v.ins_discipline_omschrijving
|
||
|| ')'
|
||
text,
|
||
'CUST10'
|
||
code,
|
||
(SELECT fac_srtnotificatie_key
|
||
FROM fac_srtnotificatie
|
||
WHERE fac_srtnotificatie_code = 'CUST10')
|
||
fac_srtnotificatie_key,
|
||
v.mld_melding_key
|
||
key,
|
||
NULL
|
||
xkey,
|
||
v.vakgroep_email
|
||
xemail,
|
||
NULL
|
||
xmobile
|
||
FROM (SELECT m.mld_melding_key,
|
||
sm.mld_stdmelding_omschrijving,
|
||
d.ins_discipline_omschrijving,
|
||
dp.mld_disc_params_emailnw3
|
||
AS vakgroep_email,
|
||
COALESCE (
|
||
( SELECT MAX (fac_tracking_datum)
|
||
FROM fac_tracking
|
||
WHERE INSTR (fac_tracking_oms, 'CUST10') > 0),
|
||
SYSDATE -
|
||
(SELECT COALESCE (fac_notificatie_job_interval, 1) / 24
|
||
FROM fac_notificatie_job
|
||
WHERE fac_notificatie_job_view = 'AAXX_V_NOTIFY_BACKOFFICE_NOB' )
|
||
)
|
||
datum_vanaf,
|
||
(SELECT COUNT (*)
|
||
FROM mld_melding_note mn2
|
||
WHERE mn2.mld_melding_key = m.mld_melding_key
|
||
AND mn.prs_perslid_key NOT IN -- Alleen notities van mensen die niet bij Servicedesk zitten
|
||
(SELECT gg.prs_perslid_key
|
||
FROM fac_gebruikersgroep gg, fac_groep g
|
||
WHERE gg.fac_groep_key = g.fac_groep_key
|
||
AND (g.fac_groep_externid = 'BO_SERVICEDESK' OR g.fac_groep_externid = 'BO_SERVICEDESK_KLANT')
|
||
GROUP BY gg.prs_perslid_key)
|
||
AND mn2.mld_melding_note_aanmaak >=
|
||
COALESCE (
|
||
( SELECT MAX (fac_tracking_datum)
|
||
FROM fac_tracking
|
||
WHERE INSTR (fac_tracking_oms,
|
||
'CUST10') >
|
||
0),
|
||
SYSDATE -
|
||
(SELECT COALESCE (fac_notificatie_job_interval, 1) / 24
|
||
FROM fac_notificatie_job
|
||
WHERE fac_notificatie_job_view = 'AAXX_V_NOTIFY_BACKOFFICE_NOB' )
|
||
)
|
||
)
|
||
AS aantalopmerkingen
|
||
FROM mld_melding m,
|
||
mld_stdmelding sm,
|
||
ins_tab_discipline d,
|
||
mld_disc_params dp,
|
||
mld_melding_note mn,
|
||
prs_perslid p
|
||
WHERE m.mld_melding_key = mn.mld_melding_key
|
||
AND m.mld_stdmelding_key = sm.mld_stdmelding_key
|
||
AND sm.mld_ins_discipline_key = d.ins_discipline_key
|
||
AND d.ins_discipline_module = 'MLD'
|
||
AND d.ins_discipline_key = dp.mld_ins_discipline_key
|
||
AND (m.mld_melding_behandelaar_key <> mn.prs_perslid_key or m.mld_melding_behandelaar_key is null)
|
||
AND mn.prs_perslid_key = p.prs_perslid_key AND p.prs_perslid_verwijder is null
|
||
AND mn.mld_melding_note_aanmaak >=
|
||
COALESCE (
|
||
( SELECT MAX (fac_tracking_datum)
|
||
FROM fac_tracking
|
||
WHERE INSTR (fac_tracking_oms, 'CUST10') > 0),
|
||
SYSDATE -
|
||
(SELECT COALESCE (fac_notificatie_job_interval, 1) / 24
|
||
FROM fac_notificatie_job
|
||
WHERE fac_notificatie_job_view = 'AAXX_V_NOTIFY_BACKOFFICE_NOB' )
|
||
)
|
||
AND mn.mld_melding_note_aanmaak >= sysdate - 3 -- Max langer dan 3 dagen terugkijken is voldoende
|
||
AND dp.mld_disc_params_emailnw3 IS NOT NULL
|
||
AND mn.prs_perslid_key NOT IN -- Alleen notities van mensen die niet bij Servicedesk zitten
|
||
(SELECT gg.prs_perslid_key
|
||
FROM fac_gebruikersgroep gg, fac_groep g
|
||
WHERE gg.fac_groep_key = g.fac_groep_key
|
||
AND (g.fac_groep_externid = 'BO_SERVICEDESK' OR g.fac_groep_externid = 'BO_SERVICEDESK_KLANT')
|
||
GROUP BY gg.prs_perslid_key)
|
||
) v
|
||
;
|
||
|
||
-- View tbv notificatiejob - Notities op opdrachten naar backoffice
|
||
---- indien de notities door iemand anders dan de servicedesk gedaan zijn, dan een groepsnotificatie naar emailadres Servicedesk Heyday (= vakgroep email-adres)
|
||
---- Zie ticket 62800 => In principe oude methodiek - vervangen door ordertrackinglijst waarbij men als backoffice een verzameling van notities/statusupdate krijgt over ALLE aangepaste opdrachten
|
||
---- Zie ticket 86546 => Voor AAIT eigen soortgelijke CUST-job ingepast omdat voor Functioneel Beheer men toch liever een overzicht heeft PER OPDRACHT
|
||
CREATE OR REPLACE VIEW AAXX_V_NOTIFY_BACKOFFICE_ORD
|
||
(
|
||
SENDER,
|
||
RECEIVER,
|
||
TEXT,
|
||
CODE,
|
||
FAC_SRTNOTIFICATIE_KEY,
|
||
KEY,
|
||
XKEY,
|
||
XEMAIL,
|
||
XMOBILE
|
||
)
|
||
AS
|
||
SELECT (SELECT prs_perslid_key
|
||
FROM prs_perslid
|
||
WHERE prs_perslid_upper = 'FACILITOR')
|
||
sender,
|
||
NULL
|
||
receiver,
|
||
'Er is/zijn '
|
||
|| TO_CHAR (v.aantalopmerkingen)
|
||
|| ' notities geplaatst bij opdrachtnr '
|
||
|| v.mld_melding_key || '/' || v.mld_opdr_bedrijfopdr_volgnr
|
||
|| ' ('
|
||
|| v.mld_stdmelding_omschrijving
|
||
|| ' / '
|
||
|| v.ins_discipline_omschrijving
|
||
|| ')'
|
||
text,
|
||
'CUST11'
|
||
code,
|
||
(SELECT fac_srtnotificatie_key
|
||
FROM fac_srtnotificatie
|
||
WHERE fac_srtnotificatie_code = 'CUST11')
|
||
fac_srtnotificatie_key,
|
||
v.mld_opdr_key
|
||
key,
|
||
NULL
|
||
xkey,
|
||
v.vakgroep_email
|
||
xemail,
|
||
NULL
|
||
xmobile
|
||
FROM (SELECT o.mld_opdr_key,
|
||
o.mld_melding_key,
|
||
o.mld_opdr_bedrijfopdr_volgnr,
|
||
o.prs_perslid_key,
|
||
sm.mld_stdmelding_omschrijving,
|
||
d.ins_discipline_omschrijving,
|
||
dp.mld_disc_params_emailnw3
|
||
AS vakgroep_email,
|
||
COALESCE (
|
||
( SELECT MAX (fac_tracking_datum)
|
||
FROM fac_tracking
|
||
WHERE INSTR (fac_tracking_oms, 'CUST11') > 0),
|
||
SYSDATE -
|
||
(SELECT COALESCE (fac_notificatie_job_interval, 1) / 24
|
||
FROM fac_notificatie_job
|
||
WHERE fac_notificatie_job_view = 'AAXX_V_NOTIFY_BACKOFFICE_ORD' )
|
||
)
|
||
datum_vanaf, -- Laatste keer job gerund of Ne...
|
||
on1.mld_opdr_note_aanmaak,
|
||
(SELECT COUNT (*)
|
||
FROM mld_opdr_note on2
|
||
WHERE on2.mld_opdr_key = o.mld_opdr_key
|
||
AND on2.prs_perslid_key NOT IN
|
||
(SELECT gg.prs_perslid_key
|
||
FROM fac_gebruikersgroep gg, fac_groep g
|
||
WHERE gg.fac_groep_key = g.fac_groep_key
|
||
AND (g.fac_groep_externid = 'BO_SERVICEDESK' OR g.fac_groep_externid = 'BO_SERVICEDESK_KLANT')
|
||
GROUP BY gg.prs_perslid_key)
|
||
AND on2.mld_opdr_note_aanmaak >=
|
||
COALESCE (
|
||
( SELECT MAX (fac_tracking_datum)
|
||
FROM fac_tracking
|
||
WHERE INSTR (fac_tracking_oms,
|
||
'CUST11') > 0),
|
||
SYSDATE -
|
||
(SELECT COALESCE (fac_notificatie_job_interval, 1) / 24
|
||
FROM fac_notificatie_job
|
||
WHERE fac_notificatie_job_view = 'AAXX_V_NOTIFY_BACKOFFICE_ORD' )
|
||
))
|
||
AS aantalopmerkingen
|
||
FROM mld_melding m,
|
||
mld_opdr o,
|
||
mld_opdr_note on1,
|
||
mld_stdmelding sm,
|
||
ins_tab_discipline d,
|
||
mld_disc_params dp,
|
||
prs_perslid p
|
||
WHERE o.mld_opdr_key = on1.mld_opdr_key
|
||
AND m.mld_melding_key = o.mld_melding_key
|
||
AND m.mld_stdmelding_key = sm.mld_stdmelding_key
|
||
AND sm.mld_ins_discipline_key = d.ins_discipline_key
|
||
AND d.ins_discipline_module = 'MLD'
|
||
AND d.ins_discipline_key = dp.mld_ins_discipline_key
|
||
AND on1.prs_perslid_key NOT IN
|
||
(SELECT gg.prs_perslid_key
|
||
FROM fac_gebruikersgroep gg, fac_groep g
|
||
WHERE gg.fac_groep_key = g.fac_groep_key
|
||
AND (g.fac_groep_externid = 'BO_SERVICEDESK' OR g.fac_groep_externid = 'BO_SERVICEDESK_KLANT')
|
||
GROUP BY gg.prs_perslid_key
|
||
)
|
||
AND on1.prs_perslid_key = p.prs_perslid_key AND p.prs_perslid_verwijder is null
|
||
AND on1.mld_opdr_note_aanmaak >=
|
||
COALESCE (
|
||
( SELECT MAX (fac_tracking_datum)
|
||
FROM fac_tracking
|
||
WHERE INSTR (fac_tracking_oms, 'CUST11') > 0
|
||
AND fac_tracking_datum >= SYSDATE - 30),
|
||
SYSDATE -
|
||
(SELECT COALESCE (fac_notificatie_job_interval, 1) / 24
|
||
FROM fac_notificatie_job
|
||
WHERE fac_notificatie_job_view = 'AAXX_V_NOTIFY_BACKOFFICE_ORD' )
|
||
)
|
||
AND on1.mld_opdr_note_aanmaak >= sysdate - 3 -- Max langer dan 3 dagen terugkijken is voldoende
|
||
AND dp.mld_disc_params_emailnw3 IS NOT NULL
|
||
) v
|
||
;
|
||
|
||
-- Ordertracking: Per omgeving ontvang de verantwoordelijke Servicedesk alle notities en mutaties/status-updates op de Opdrachtenstroom die zijn geweest per gestylde mail
|
||
---- Opzet: Job kijkt of er vanaf de laatste job_run nog mutaties zijn geweest en indien geval dan wordt gestyled rapport gemaild naar desbtreffende backoffice-email-adres
|
||
|
||
-- Bronview behorende bij job AAXX_V_NOTIFY_BACKOFFICE_OT
|
||
CREATE OR REPLACE VIEW aaxx_v_rap_ordertracking_bron
|
||
(
|
||
account,
|
||
subaccount, -- in geval INLO - Op gebouwniveau een kenmerk...!
|
||
regio, -- in geval dsm en rabo en allr
|
||
vakgroep_email, -- voor ALLR locatie_email
|
||
extra_key, -- vanuit job extra filter_key - deze gaan we gelijk trekken aan vakgroep_email
|
||
opdrachtnr,
|
||
mld_opdr_key,
|
||
uitvoerder,
|
||
behandelaar,
|
||
opdracht_type,
|
||
soort, -- soort wijziging: Status of notitie of opdrachtgegevens-wijziging
|
||
datum,
|
||
actie_door,
|
||
actie_omschrijving,
|
||
actie_details,
|
||
datum_mutatie_filter,
|
||
uur_filter
|
||
)
|
||
AS
|
||
SELECT -- Voor notities
|
||
fac_version_cust
|
||
account,
|
||
CASE WHEN acc.fac_version_cust IN ('INLO') THEN v.klant ELSE NULL END
|
||
subaccount, -- in geval INLO
|
||
CASE
|
||
WHEN acc.fac_version_cust IN ('RABO')
|
||
THEN
|
||
og.alg_regio_omschrijving
|
||
WHEN acc.fac_version_cust IN ('AADS', 'AASA')
|
||
THEN
|
||
og.alg_district_omschrijving
|
||
WHEN acc.fac_version_cust IN ('ALLR')
|
||
THEN l.alg_locatie_upper
|
||
ELSE
|
||
NULL
|
||
END
|
||
regio, -- in geval dsm, rabo en sabic
|
||
CASE WHEN acc.fac_version_cust IN ('ALLR') THEN flx.getflex('ALG',1320, l.alg_locatie_key, 'L') ELSE dp.mld_disc_params_emailnw3 END
|
||
vakgroep_email,
|
||
CASE WHEN acc.fac_version_cust IN ('ALLR') THEN
|
||
(SELECT MAX (ud.fac_usrdata_key)
|
||
FROM fac_usrtab ut, fac_usrdata ud
|
||
WHERE ud.fac_usrtab_key = ut.fac_usrtab_key
|
||
AND UPPER (ut.fac_usrtab_naam) = 'ORDTRACK_CUST16'
|
||
AND ud.fac_usrdata_verwijder IS NULL
|
||
AND ( ud.fac_usrdata_vervaldatum IS NULL
|
||
OR ud.fac_usrdata_vervaldatum > TRUNC (SYSDATE))
|
||
AND LOWER (ud.fac_usrdata_omschr) = LOWER(flx.getflex('ALG',1320, l.alg_locatie_key, 'L'))
|
||
)
|
||
ELSE
|
||
(SELECT MAX (ud.fac_usrdata_key)
|
||
FROM fac_usrtab ut, fac_usrdata ud
|
||
WHERE ud.fac_usrtab_key = ut.fac_usrtab_key
|
||
AND UPPER (ut.fac_usrtab_naam) = 'ORDTRACK_CUST16'
|
||
AND ud.fac_usrdata_verwijder IS NULL
|
||
AND ( ud.fac_usrdata_vervaldatum IS NULL
|
||
OR ud.fac_usrdata_vervaldatum > TRUNC (SYSDATE))
|
||
AND LOWER (ud.fac_usrdata_omschr) = LOWER(dp.mld_disc_params_emailnw3)
|
||
)
|
||
END
|
||
extra_key, -- Voor gesplitste rapporten geven we een extra_key mee. Deze wordt via eigen tabel ORDTRACK_CUST16 beheerd
|
||
m.mld_melding_key || '/' || o.mld_opdr_bedrijfopdr_volgnr
|
||
opdrachtnr,
|
||
o.mld_opdr_key,
|
||
u.naam
|
||
uitvoerder,
|
||
po.prs_perslid_naam || ' (' || po.prs_perslid_voornaam || ')'
|
||
behandelaar,
|
||
ot.mld_typeopdr_omschrijving
|
||
opdracht_type,
|
||
'Notitie'
|
||
soort, -- soort wijziging: Status of notitie of opdrachtgegevens-wijzigign
|
||
TO_CHAR (mld_opdr_note_aanmaak, 'dd-mm-yyyy hh24:mi:ss')
|
||
datum,
|
||
pn.prs_perslid_naam || ' (' || pn.prs_perslid_voornaam || ')'
|
||
actie_door,
|
||
'Notitie'
|
||
actie_omschrijving, -- Subsoort voor status
|
||
mld_opdr_note_omschrijving
|
||
actie_details,
|
||
note.mld_opdr_note_aanmaak
|
||
datum_mutatie_filter,
|
||
TO_NUMBER(TO_CHAR(note.mld_opdr_note_aanmaak, 'hh24'))
|
||
uur_filter
|
||
FROM mld_melding m,
|
||
mld_opdr o,
|
||
mld_typeopdr ot,
|
||
mld_v_uitvoerende u,
|
||
mld_opdr_note note,
|
||
prs_perslid pn,
|
||
prs_perslid po,
|
||
mld_stdmelding sm,
|
||
ins_tab_discipline d,
|
||
mld_disc_params dp,
|
||
aaxx_v_dwh_alg_onrgoed og,
|
||
alg_locatie l,
|
||
(SELECT m.mld_melding_key,
|
||
og.alg_gebouw_key,
|
||
CASE
|
||
WHEN aaxx_get_user = 'INLO'
|
||
AND fud.fac_usrdata_omschr = 'Covestro'
|
||
THEN
|
||
fud.fac_usrdata_omschr
|
||
|| ' - '
|
||
|| og.alg_locatie_omschrijving
|
||
WHEN aaxx_get_user = 'INLO'
|
||
AND fud.fac_usrdata_omschr = 'Upfield Europe B.V.'
|
||
THEN
|
||
fud.fac_usrdata_omschr
|
||
|| ' - '
|
||
|| og.alg_locatie_omschrijving
|
||
ELSE
|
||
fud.fac_usrdata_omschr
|
||
END
|
||
klant
|
||
FROM mld_melding m,
|
||
aaxx_v_dwh_alg_onrgoed og,
|
||
alg_onrgoedkenmerk k,
|
||
fac_usrdata fud
|
||
WHERE m.mld_alg_onroerendgoed_keys = og.alg_onroerendgoed_keys
|
||
AND og.alg_gebouw_key = k.alg_onrgoed_key
|
||
AND alg_kenmerk_key =
|
||
DECODE (aaxx_get_user, 'INLO', 1100, 1100)
|
||
AND fac.safe_to_number (k.alg_onrgoedkenmerk_waarde) =
|
||
fud.fac_usrdata_key) v,
|
||
(SELECT fac_version_cust FROM fac_version) acc
|
||
WHERE o.mld_opdr_key = note.mld_opdr_key
|
||
AND m.mld_melding_key = o.mld_melding_key
|
||
AND o.mld_typeopdr_key = ot.mld_typeopdr_key
|
||
AND m.mld_stdmelding_key = sm.mld_stdmelding_key
|
||
AND sm.mld_ins_discipline_key = d.ins_discipline_key
|
||
AND d.ins_discipline_module = 'MLD'
|
||
AND d.ins_discipline_key = dp.mld_ins_discipline_key
|
||
AND note.prs_perslid_key = pn.prs_perslid_key
|
||
AND pn.prs_perslid_verwijder IS NULL
|
||
AND o.mld_uitvoerende_keys = u.mld_uitvoerende_key
|
||
AND o.prs_perslid_key = po.prs_perslid_key(+)
|
||
AND m.mld_alg_locatie_key = og.alg_locatie_key
|
||
AND og.alg_locatie_key = l.alg_locatie_key
|
||
AND og.alg_type = 'L'
|
||
AND o.mld_melding_key = v.mld_melding_key(+)
|
||
AND note.prs_perslid_key NOT IN
|
||
(SELECT gg.prs_perslid_key
|
||
FROM fac_gebruikersgroep gg, fac_groep g
|
||
WHERE gg.fac_groep_key = g.fac_groep_key
|
||
AND (g.fac_groep_externid = 'BO_SERVICEDESK' OR g.fac_groep_externid = 'BO_SERVICEDESK_KLANT' OR g.fac_groep_key = 263) -- ALLR - groep FSP
|
||
GROUP BY gg.prs_perslid_key
|
||
)
|
||
UNION
|
||
SELECT -- Voor status
|
||
acc.fac_version_cust
|
||
account,
|
||
CASE WHEN acc.fac_version_cust IN ('INLO') THEN v.klant ELSE NULL END
|
||
subaccount, -- in geval INLO
|
||
CASE
|
||
WHEN acc.fac_version_cust IN ('RABO')
|
||
THEN
|
||
og.alg_regio_omschrijving
|
||
WHEN acc.fac_version_cust IN ('AADS', 'AASA')
|
||
THEN
|
||
og.alg_district_omschrijving
|
||
WHEN acc.fac_version_cust IN ('ALLR')
|
||
THEN l.alg_locatie_upper
|
||
ELSE
|
||
NULL
|
||
END
|
||
regio, -- in geval dsm, rabo en sabic
|
||
CASE WHEN acc.fac_version_cust IN ('ALLR') THEN flx.getflex('ALG',1320, l.alg_locatie_key, 'L') ELSE dp.mld_disc_params_emailnw3 END
|
||
vakgroep_email,
|
||
CASE WHEN acc.fac_version_cust IN ('ALLR') THEN
|
||
(SELECT MAX (ud.fac_usrdata_key)
|
||
FROM fac_usrtab ut, fac_usrdata ud
|
||
WHERE ud.fac_usrtab_key = ut.fac_usrtab_key
|
||
AND UPPER (ut.fac_usrtab_naam) = 'ORDTRACK_CUST16'
|
||
AND ud.fac_usrdata_verwijder IS NULL
|
||
AND ( ud.fac_usrdata_vervaldatum IS NULL
|
||
OR ud.fac_usrdata_vervaldatum > TRUNC (SYSDATE))
|
||
AND LOWER (ud.fac_usrdata_omschr) = LOWER(flx.getflex('ALG',1320, l.alg_locatie_key, 'L'))
|
||
)
|
||
ELSE
|
||
(SELECT MAX (ud.fac_usrdata_key)
|
||
FROM fac_usrtab ut, fac_usrdata ud
|
||
WHERE ud.fac_usrtab_key = ut.fac_usrtab_key
|
||
AND UPPER (ut.fac_usrtab_naam) = 'ORDTRACK_CUST16'
|
||
AND ud.fac_usrdata_verwijder IS NULL
|
||
AND ( ud.fac_usrdata_vervaldatum IS NULL
|
||
OR ud.fac_usrdata_vervaldatum > TRUNC (SYSDATE))
|
||
AND LOWER (ud.fac_usrdata_omschr) = LOWER(dp.mld_disc_params_emailnw3)
|
||
)
|
||
END
|
||
extra_key, -- Voor gesplitste rapporten geven we een extra_key mee. Deze wordt via eigen tabel ORDTRACK_CUST16 beheerd
|
||
m.mld_melding_key || '/' || o.mld_opdr_bedrijfopdr_volgnr
|
||
opdrachtnr,
|
||
o.mld_opdr_key,
|
||
u.naam
|
||
uitvoerder,
|
||
po.prs_perslid_naam || ' (' || po.prs_perslid_voornaam || ')'
|
||
behandelaar,
|
||
ot.mld_typeopdr_omschrijving
|
||
opdracht_type,
|
||
'Status'
|
||
soort, -- soort wijziging: Status of notitie of opdrachtgegevens-wijzigign
|
||
TO_CHAR (t.datum, 'dd-mm-yyyy hh24:mi:ss')
|
||
datum,
|
||
pt.prs_perslid_naam || ' (' || pt.prs_perslid_voornaam || ')'
|
||
actie_door,
|
||
COALESCE (vert.actiecode_tekst, t.actiecode)
|
||
actie_omschrijving,
|
||
t.omschrijving
|
||
actie_details,
|
||
t.datum
|
||
datum_mutatie_filter,
|
||
TO_NUMBER(TO_CHAR(t.datum, 'hh24'))
|
||
uur_filter
|
||
FROM mld_melding m,
|
||
mld_opdr o,
|
||
mld_typeopdr ot,
|
||
aaxx_v_dwh_tracking t,
|
||
(SELECT UPPER (SUBSTR (fac_locale_xsl_label, 12)) AS actiecode,
|
||
fac_locale_xsl_tekst AS actiecode_tekst
|
||
FROM fac_locale_xsl
|
||
WHERE INSTR (fac_locale_xsl_label, 'lcl_ord_is_') > 0
|
||
AND fac_locale_xsl_lang = 'NL') vert,
|
||
mld_v_uitvoerende u,
|
||
prs_perslid pt,
|
||
prs_perslid po,
|
||
mld_stdmelding sm,
|
||
ins_tab_discipline d,
|
||
mld_disc_params dp,
|
||
aaxx_v_dwh_alg_onrgoed og,
|
||
alg_locatie l,
|
||
(SELECT m.mld_melding_key,
|
||
og.alg_gebouw_key,
|
||
CASE
|
||
WHEN aaxx_get_user = 'INLO'
|
||
AND fud.fac_usrdata_omschr = 'Covestro'
|
||
THEN
|
||
fud.fac_usrdata_omschr
|
||
|| ' - '
|
||
|| og.alg_locatie_omschrijving
|
||
WHEN aaxx_get_user = 'INLO'
|
||
AND fud.fac_usrdata_omschr = 'Upfield Europe B.V.'
|
||
THEN
|
||
fud.fac_usrdata_omschr
|
||
|| ' - '
|
||
|| og.alg_locatie_omschrijving
|
||
ELSE
|
||
fud.fac_usrdata_omschr
|
||
END
|
||
klant
|
||
FROM mld_melding m,
|
||
aaxx_v_dwh_alg_onrgoed og,
|
||
alg_onrgoedkenmerk k,
|
||
fac_usrdata fud
|
||
WHERE m.mld_alg_onroerendgoed_keys = og.alg_onroerendgoed_keys
|
||
AND og.alg_gebouw_key = k.alg_onrgoed_key
|
||
AND alg_kenmerk_key =
|
||
DECODE (aaxx_get_user, 'INLO', 1100, 1100)
|
||
AND fac.safe_to_number (k.alg_onrgoedkenmerk_waarde) =
|
||
fud.fac_usrdata_key) v,
|
||
(SELECT fac_version_cust FROM fac_version) acc
|
||
WHERE o.mld_opdr_key = t.ref_key
|
||
AND t.soort = 'opdracht'
|
||
AND t.actiecode = vert.actiecode(+)
|
||
AND o.mld_typeopdr_key = ot.mld_typeopdr_key
|
||
AND m.mld_melding_key = o.mld_melding_key
|
||
AND m.mld_stdmelding_key = sm.mld_stdmelding_key
|
||
AND sm.mld_ins_discipline_key = d.ins_discipline_key
|
||
AND d.ins_discipline_module = 'MLD'
|
||
AND d.ins_discipline_key = dp.mld_ins_discipline_key
|
||
AND t.prs_perslid_key = pt.prs_perslid_key
|
||
AND pt.prs_perslid_verwijder IS NULL
|
||
AND o.mld_uitvoerende_keys = u.mld_uitvoerende_key
|
||
AND o.prs_perslid_key = po.prs_perslid_key(+)
|
||
AND m.mld_alg_locatie_key = og.alg_locatie_key
|
||
AND og.alg_locatie_key = l.alg_locatie_key
|
||
AND og.alg_type = 'L'
|
||
AND o.mld_melding_key = v.mld_melding_key(+)
|
||
AND t.prs_perslid_key NOT IN
|
||
(SELECT gg.prs_perslid_key
|
||
FROM fac_gebruikersgroep gg, fac_groep g
|
||
WHERE gg.fac_groep_key = g.fac_groep_key
|
||
AND (g.fac_groep_externid = 'BO_SERVICEDESK' OR g.fac_groep_externid = 'BO_SERVICEDESK_KLANT' OR g.fac_groep_key = 263) -- ALLR - groep FSP
|
||
GROUP BY gg.prs_perslid_key
|
||
)
|
||
;
|
||
|
||
-- Job voor de ordertrackinglijst te versturen
|
||
--- Ps. Omdat de last_job_run wat later wordt gezet dan de fac_tracking op cust16 halen we er in de where een minuutje van af.. (- 1/(24*60))
|
||
CREATE OR REPLACE VIEW AAXX_V_NOTIFY_BACKOFFICE_OT -- OT = Ordertrackinglijst
|
||
(
|
||
SENDER,
|
||
RECEIVER,
|
||
TEXT,
|
||
CODE,
|
||
FAC_SRTNOTIFICATIE_KEY,
|
||
KEY,
|
||
XKEY,
|
||
XEMAIL,
|
||
XMOBILE
|
||
)
|
||
AS
|
||
SELECT (SELECT prs_perslid_key
|
||
FROM prs_perslid
|
||
WHERE prs_perslid_upper = 'FACILITOR')
|
||
sender,
|
||
NULL
|
||
receiver,
|
||
'Ordertrackinglijst klant ' || acc.fac_version_cust
|
||
text,
|
||
'CUST16'
|
||
code,
|
||
(SELECT fac_srtnotificatie_key
|
||
FROM fac_srtnotificatie
|
||
WHERE fac_srtnotificatie_code = 'CUST16')
|
||
fac_srtnotificatie_key,
|
||
acc.fac_usrrap_key
|
||
key,
|
||
v.extra_key
|
||
xkey, -- op alle gesplitste ordertrackinglijsten gaan we de gevulde xkey meegeven. dit wordt via bronlijst netjes bepaald/gevuld
|
||
v.vakgroep_email
|
||
xemail,
|
||
NULL
|
||
xmobile
|
||
FROM (SELECT UPPER(fac_version_cust) fac_version_cust,
|
||
(SELECT fac_usrrap_key FROM fac_usrrap WHERE fac_usrrap_code = 'CUST16_ORDERTRACKING')
|
||
fac_usrrap_key
|
||
FROM fac_version) acc,
|
||
(SELECT vakgroep_email, extra_key
|
||
FROM aaxx_v_rap_ordertracking_bron
|
||
WHERE datum_mutatie_filter >= (SELECT COALESCE(fac_notificatie_job_lastrun - 1/(24*60), TRUNC(SYSDATE)) FROM fac_notificatie_job WHERE fac_notificatie_job_view = 'AAXX_V_NOTIFY_BACKOFFICE_OT')
|
||
AND vakgroep_email IS NOT NULL
|
||
AND LOWER(vakgroep_email) NOT IN ('functioneelbeheer@heydayfm.nl') -- Zie ticket AAIT#89211 Deze Ordertrackinglijst voor FB stop zetten
|
||
GROUP BY vakgroep_email, extra_key) v
|
||
WHERE acc.fac_usrrap_key IS NOT NULL ;
|
||
|
||
-- Rapportview behorende bij job AAXX_V_NOTIFY_BACKOFFICE_OT
|
||
--- De lijst die gemaild wordt - inclusief filtering op notificatie-interval
|
||
CREATE OR REPLACE VIEW aaxx_v_rap_ordertrackinglijst
|
||
(
|
||
account,
|
||
subaccount, -- in geval INLO - Op gebouwniveau een kenmerk...!
|
||
regio, -- in geval dsm en rabo
|
||
vakgroep_email,
|
||
extra_key, -- vanuit job extra filter_key
|
||
opdrachtnr,
|
||
mld_opdr_key,
|
||
uitvoerder,
|
||
behandelaar,
|
||
opdracht_type,
|
||
soort, -- soort wijziging: Status of notitie of opdrachtgegevens-wijziging
|
||
datum,
|
||
actie_door,
|
||
actie_omschrijving,
|
||
actie_details,
|
||
run_deze,
|
||
run_vorige
|
||
)
|
||
AS
|
||
SELECT v.account,
|
||
v.subaccount, -- in geval INLO - Op gebouwniveau een kenmerk...!
|
||
v.regio, -- in geval dsm en rabo
|
||
vakgroep_email,
|
||
v.extra_key, -- vanuit job extra filter_key
|
||
v.opdrachtnr,
|
||
v.mld_opdr_key,
|
||
v.uitvoerder,
|
||
v.behandelaar,
|
||
v.opdracht_type,
|
||
v.soort, -- soort wijziging: Status of notitie of opdrachtgegevens-wijziging
|
||
v.datum,
|
||
v.actie_door,
|
||
v.actie_omschrijving,
|
||
v.actie_details,
|
||
TO_CHAR (d.last_jobrun, 'dd-mm-yyyy hh24:mi:ss')
|
||
run_deze,
|
||
TO_CHAR (d.last_cust16, 'dd-mm-yyyy hh24:mi:ss')
|
||
run_vorige
|
||
FROM aaxx_v_rap_ordertracking_bron v,
|
||
(SELECT MAX (COALESCE(ft.fac_tracking_datum, SYSDATE)) last_cust16, -- subview waarin notificatie-interval bepaald wordt (=datums waartussen het resultaat in rapport getoond moet worden)
|
||
MAX ((SELECT COALESCE (fac_notificatie_job_lastrun, SYSDATE)
|
||
FROM fac_notificatie_job
|
||
WHERE fac_notificatie_job_view = 'AAXX_V_NOTIFY_BACKOFFICE_OT')) last_jobrun
|
||
FROM fac_tracking ft, fac_srtnotificatie sn
|
||
WHERE ft.fac_srtnotificatie_key = sn.fac_srtnotificatie_key
|
||
AND sn.fac_srtnotificatie_code = 'CUST16'
|
||
AND ft.fac_tracking_datum < (SELECT COALESCE (fac_notificatie_job_lastrun, SYSDATE)
|
||
FROM fac_notificatie_job
|
||
WHERE fac_notificatie_job_view = 'AAXX_V_NOTIFY_BACKOFFICE_OT')
|
||
) d
|
||
WHERE v.datum_mutatie_filter BETWEEN d.last_cust16 AND d.last_jobrun ;
|
||
|
||
-- Notificatiejob voor notificeren uitvoerder bij goedkeuring en/of afkeuring van de kosten (ticket 62830)
|
||
---- CUST13 voor goedkeuring
|
||
---- CUST14 voor afkeuring
|
||
CREATE OR REPLACE VIEW AAXX_V_NOTI_UITVOERDER_KOSTEN
|
||
(
|
||
SENDER,
|
||
RECEIVER,
|
||
TEXT,
|
||
CODE,
|
||
FAC_SRTNOTIFICATIE_KEY,
|
||
KEY,
|
||
XKEY,
|
||
XEMAIL,
|
||
XMOBILE
|
||
)
|
||
AS
|
||
SELECT (SELECT prs_perslid_key
|
||
FROM prs_perslid
|
||
WHERE prs_perslid_upper = 'FACILITOR')
|
||
sender,
|
||
NULL
|
||
receiver,
|
||
CASE
|
||
WHEN w.akkoord = 'ja'
|
||
THEN
|
||
'Notificatie ivm goedkeuring opdracht ' || w.opdrachtnr
|
||
ELSE
|
||
'Notificatie ivm afkeuring opdracht ' || w.opdrachtnr
|
||
END
|
||
text,
|
||
CASE
|
||
WHEN w.akkoord = 'ja'
|
||
THEN
|
||
'CUST13'
|
||
ELSE
|
||
'CUST14'
|
||
END
|
||
code,
|
||
CASE
|
||
WHEN w.akkoord = 'ja'
|
||
THEN
|
||
(SELECT fac_srtnotificatie_key
|
||
FROM fac_srtnotificatie
|
||
WHERE fac_srtnotificatie_code = 'CUST13')
|
||
ELSE
|
||
(SELECT fac_srtnotificatie_key
|
||
FROM fac_srtnotificatie
|
||
WHERE fac_srtnotificatie_code = 'CUST14')
|
||
END
|
||
fac_srtnotificatie_key,
|
||
w.mld_opdr_key
|
||
key,
|
||
NULL
|
||
xkey,
|
||
w.email
|
||
AS x_email,
|
||
NULL
|
||
xmobile
|
||
FROM
|
||
mld_opdr o,
|
||
(SELECT v.mld_typeopdr_omschrijving,
|
||
v.mld_melding_key,
|
||
v.opdrachtnr,
|
||
v.mld_opdr_key,
|
||
v.mld_statusopdr_key,
|
||
v.status_nu,
|
||
v.status,
|
||
CASE
|
||
WHEN COALESCE (v.datum_goedgekeurd,
|
||
TO_DATE ('01-01-1900', 'dd-mm-yyyy')) >
|
||
COALESCE (v.datum_afgekeurd,
|
||
TO_DATE ('01-01-1900', 'dd-mm-yyyy'))
|
||
THEN
|
||
'ja'
|
||
WHEN COALESCE (v.datum_goedgekeurd,
|
||
TO_DATE ('01-01-1900', 'dd-mm-yyyy')) <
|
||
COALESCE (v.datum_afgekeurd,
|
||
TO_DATE ('01-01-1900', 'dd-mm-yyyy'))
|
||
THEN
|
||
'nee'
|
||
ELSE
|
||
'nvt'
|
||
END
|
||
AS akkoord,
|
||
CASE
|
||
WHEN COALESCE (v.datum_goedgekeurd,
|
||
TO_DATE ('01-01-1900', 'dd-mm-yyyy')) >
|
||
COALESCE (v.datum_cust13,
|
||
TO_DATE ('01-01-1900', 'dd-mm-yyyy'))
|
||
AND COALESCE(v.datum_ORDSNT, sysdate) < v.datum_goedgekeurd
|
||
AND TRUNC(v.datum_goedgekeurd) >= TRUNC(sysdate-3) -- Peildatum, 3 dagen na goedkeuring zodat bij aanzetten job de mailing niet te gedateerd is en alleen actuele goedkeuringen gemaild worden
|
||
THEN
|
||
'ja' -- ja, opnieuw te notificeren
|
||
ELSE
|
||
'nee'
|
||
END
|
||
AS te_notificeren_cust13,
|
||
CASE
|
||
WHEN COALESCE (v.datum_afgekeurd,
|
||
TO_DATE ('01-01-1900', 'dd-mm-yyyy')) >
|
||
COALESCE (v.datum_cust14,
|
||
TO_DATE ('01-01-1900', 'dd-mm-yyyy'))
|
||
AND TRUNC(v.datum_afgekeurd) = TRUNC(sysdate) -- Binnen zelfde dag vanuit SD actie om na te bellen
|
||
THEN
|
||
'ja' -- ja, opnieuw te notificeren
|
||
ELSE
|
||
'nee'
|
||
END
|
||
AS te_notificeren_cust14,
|
||
v.mld_statusopdr_key_refiat,
|
||
v.mld_opdr_kosten,
|
||
v.mld_opdr_kosten_refiat,
|
||
v.mld_opdr_approved,
|
||
v.mld_opdr_teverzenden,
|
||
v.mld_opdr_verzonden,
|
||
v.datum_ORDSNT,
|
||
v.mld_opdr_teverzenden_datum,
|
||
v.datum_goedgekeurd,
|
||
v.datum_cust13,
|
||
v.datum_afgekeurd,
|
||
v.datum_cust14,
|
||
COALESCE (v.email_contactpers, v.email_relatie, v.email_servicedesk)
|
||
AS email
|
||
FROM (SELECT ot.mld_typeopdr_omschrijving,
|
||
o.mld_melding_key,
|
||
o.mld_melding_key
|
||
|| '/'
|
||
|| TO_CHAR (o.mld_opdr_bedrijfopdr_volgnr)
|
||
AS opdrachtnr,
|
||
o.mld_opdr_key,
|
||
o.mld_statusopdr_key,
|
||
os.mld_statusopdr_omschrijving
|
||
AS status_nu,
|
||
(CASE
|
||
WHEN o.mld_statusopdr_key IN (5, 8) THEN 'lopend' -- alle lopende statussen die voor deze job relevant zijn (toegekend, geaccepteerd)
|
||
WHEN o.mld_statusopdr_key IN (6) THEN 'uitgevoerd' -- alle uitgevoerde statussen die voor deze job relenvant zijn (afgemeld)
|
||
ELSE 'intern' -- opdracht ligt INTERN ter controle, ter fiattering, afgekeurd, afgewezen, financieel voltooid, verwerkt
|
||
END)
|
||
status,
|
||
o.mld_statusopdr_key_refiat,
|
||
o.mld_opdr_kosten,
|
||
o.mld_opdr_kosten_refiat,
|
||
o.mld_opdr_approved,
|
||
o.mld_opdr_teverzenden,
|
||
o.mld_opdr_verzonden,
|
||
(SELECT MAX (ft.fac_tracking_datum)
|
||
FROM fac_tracking ft, fac_srtnotificatie sn
|
||
WHERE ft.fac_tracking_refkey = o.mld_opdr_key
|
||
AND ft.fac_srtnotificatie_key =
|
||
sn.fac_srtnotificatie_key
|
||
AND sn.fac_srtnotificatie_xmlnode = 'opdracht'
|
||
AND sn.fac_srtnotificatie_code = 'ORDSNT')
|
||
AS datum_ORDSNT,
|
||
o.mld_opdr_teverzenden_datum,
|
||
(SELECT MAX (ft.fac_tracking_datum)
|
||
FROM fac_tracking ft, fac_srtnotificatie sn
|
||
WHERE ft.fac_tracking_refkey = o.mld_opdr_key
|
||
AND ft.fac_srtnotificatie_key =
|
||
sn.fac_srtnotificatie_key
|
||
AND sn.fac_srtnotificatie_xmlnode = 'opdracht'
|
||
AND (
|
||
(sn.fac_srtnotificatie_code = 'ORDUPD' AND INSTR (LOWER (ft.fac_tracking_oms), 'opdracht is goedgekeurd') > 0)
|
||
OR
|
||
(sn.fac_srtnotificatie_code='ORDFOK')
|
||
)
|
||
)
|
||
AS datum_goedgekeurd,
|
||
(SELECT MAX (ft.fac_tracking_datum)
|
||
FROM fac_tracking ft, fac_srtnotificatie sn
|
||
WHERE ft.fac_tracking_refkey = o.mld_opdr_key
|
||
AND ft.fac_srtnotificatie_key =
|
||
sn.fac_srtnotificatie_key
|
||
AND sn.fac_srtnotificatie_xmlnode = 'opdracht'
|
||
AND sn.fac_srtnotificatie_code = 'CUST13')
|
||
AS datum_cust13, -- Datum genotificeerd door noti-job
|
||
(SELECT MAX (ft.fac_tracking_datum)
|
||
FROM fac_tracking ft, fac_srtnotificatie sn
|
||
WHERE ft.fac_tracking_refkey = o.mld_opdr_key
|
||
AND ft.fac_srtnotificatie_key =
|
||
sn.fac_srtnotificatie_key
|
||
AND sn.fac_srtnotificatie_xmlnode = 'opdracht'
|
||
AND ( sn.fac_srtnotificatie_code = 'ORDGNO'
|
||
OR sn.fac_srtnotificatie_code = 'ORDFNO'))
|
||
AS datum_afgekeurd,
|
||
(SELECT MAX (ft.fac_tracking_datum)
|
||
FROM fac_tracking ft, fac_srtnotificatie sn
|
||
WHERE ft.fac_tracking_refkey = o.mld_opdr_key
|
||
AND ft.fac_srtnotificatie_key =
|
||
sn.fac_srtnotificatie_key
|
||
AND sn.fac_srtnotificatie_xmlnode = 'opdracht'
|
||
AND sn.fac_srtnotificatie_code = 'CUST14')
|
||
AS datum_cust14, -- Datum genotificeerd door noti-job
|
||
(SELECT prs_contactpersoon_email
|
||
FROM prs_contactpersoon
|
||
WHERE prs_contactpersoon_key = o.prs_contactpersoon_key)
|
||
AS email_contactpers,
|
||
(SELECT prs_bedrijf_email
|
||
FROM prs_bedrijf
|
||
WHERE prs_bedrijf_key = o.mld_uitvoerende_keys)
|
||
AS email_relatie,
|
||
(SELECT dp.mld_disc_params_emailnw3
|
||
FROM mld_melding m,
|
||
mld_stdmelding sm,
|
||
ins_tab_discipline d,
|
||
mld_disc_params dp
|
||
WHERE m.mld_stdmelding_key = sm.mld_stdmelding_key
|
||
AND sm.mld_ins_discipline_key = d.ins_discipline_key
|
||
AND d.ins_discipline_module = 'MLD'
|
||
AND d.ins_discipline_key = dp.mld_ins_discipline_key
|
||
AND m.mld_melding_key = o.mld_melding_key)
|
||
AS email_servicedesk -- uit vakgroep
|
||
FROM mld_opdr o, mld_statusopdr os, mld_typeopdr ot
|
||
WHERE o.mld_statusopdr_key = os.mld_statusopdr_key
|
||
AND o.mld_statusopdr_key NOT IN (7) -- Sowieso uitgesloten: Verwerkte opdrachten
|
||
AND o.mld_typeopdr_key = ot.mld_typeopdr_key
|
||
AND ot.mld_typeopdr_isofferte = 0
|
||
) v
|
||
) w
|
||
WHERE
|
||
o.mld_opdr_key = w.mld_opdr_key
|
||
AND (w.status = 'lopend' OR w.status = 'uitgevoerd')
|
||
AND (
|
||
(w.akkoord = 'ja' and w.te_notificeren_cust13 = 'ja')
|
||
OR
|
||
(w.akkoord = 'nee' and w.te_notificeren_cust14 = 'ja')
|
||
) ;
|
||
|
||
|
||
-- Domeinview voor Assetmanagement - Zie ticket 70981 - verzoek registratie nieuw asset
|
||
CREATE OR REPLACE VIEW aaxx_v_nen2767_meldingen
|
||
(
|
||
KEY,
|
||
OMSCHRIJVING
|
||
)
|
||
AS
|
||
SELECT sm.mld_stdmelding_key,
|
||
disc.ins_discipline_omschrijving || ' - ' || sm.mld_stdmelding_omschrijving
|
||
FROM mld_stdmelding sm, mld_discipline disc
|
||
WHERE disc.ins_srtdiscipline_key = FAC.getSetting ('cnd_gebreken_srtdisc_key')
|
||
AND sm.mld_stdmelding_code <> 'GEEN'
|
||
AND sm.mld_stdmelding_omschrijving <> 'Nieuwe asset'
|
||
AND disc.ins_discipline_verwijder IS NULL
|
||
AND sm.mld_ins_discipline_key = disc.ins_discipline_key
|
||
AND sm.mld_stdmelding_vervaldatum IS NULL
|
||
ORDER BY disc.ins_discipline_omschrijving, sm.mld_stdmelding_omschrijving ;
|
||
|
||
-- Basisview NEN2767 - Tbv totaalrapportage voor heyday (informatie gebouw / assets inclusief lopende gebreken
|
||
---- loopt gestyled rapport op: MJOB - Rapportage MJOB/NEN2767
|
||
CREATE OR REPLACE VIEW aaxx_v_rap_mjob_nen2767
|
||
(
|
||
INS_DEEL_KEY,
|
||
ALG_GEBOUW_KEY,
|
||
MLD_MELDING_KEY,
|
||
-- GEGEVENS GEBOUW/LOCATIE
|
||
LOCATIE_CODE,
|
||
LOCATIE_NAAM,
|
||
LOCATIE_PLAATS,
|
||
GEBOUW_CODE,
|
||
GEBOUW_NAAM,
|
||
GEBOUW_ADRES,
|
||
GEBOUW_POSTCODE,
|
||
GEBOUW_CONDITIE,
|
||
GEBOUW_ORGANISATIE,
|
||
GEBOUW_BEBOUWDOPPERVLAK_M2,
|
||
GEBOUW_BOUWJAAR,
|
||
GEBOUW_ENERGIELABEL,
|
||
GEBOUW_ENERGIELABEL_DATUM,
|
||
NAAM_INSPECTECTIEBUREAU,
|
||
NAAM_INSPECTEURS,
|
||
INSPECTIEDATUM,
|
||
PRIJSPEILJAAR,
|
||
BTW,
|
||
BTW_PERCENTAGE,
|
||
GEBOUW_FOTO_0,
|
||
GEBOUW_FOTO_1,
|
||
GEBOUW_FOTO_2,
|
||
RISICO_PRIO_MATRIX,
|
||
GEBOUWFUNCTIE,
|
||
OPDRACHTGEVER,
|
||
OPDRACHTGEVER_ADRES,
|
||
OPDRACHTGEVER_TELEFOON,
|
||
MJOB_10JR,
|
||
-- GEGEVENS OBJECT
|
||
HOOFDGROEP,
|
||
GROEP,
|
||
OBJECTSOORT,
|
||
IDENTIFICATIE,
|
||
CONDITIE,
|
||
PRIORITEIT,
|
||
INS_DEEL_OPMERKING,
|
||
INS_DEEL_AANTAL,
|
||
INS_KENMERK_EENHEID,
|
||
INS_KENMERK_PLAATS,
|
||
INS_KENMERK_LEVERANCIERNR,
|
||
INS_KENMERK_CAPACITEIT,
|
||
INS_KENMERK_TYPE,
|
||
INS_KENMERK_FABRICAAT,
|
||
INS_KENMERK_BOUWJAAR,
|
||
INS_KENMERK_CONDITIE_INIT,
|
||
INS_KENMERK_CONDITIE_GEWENST,
|
||
INS_KENMERK_CONDITIE_DUURZAAMHEID,
|
||
-- GEGEVENS GEBREKSMELDING
|
||
GEBREKNR,
|
||
DATUM_TIJD,
|
||
DATUM,
|
||
INSPECTEUR,
|
||
STATUS,
|
||
GEBREK,
|
||
ERNST,
|
||
OMVANG,
|
||
INTENSITEIT,
|
||
ASPECT1,
|
||
ASPECT2,
|
||
ASPECT3,
|
||
ASPECT4,
|
||
ASPECT5,
|
||
ASPECT6,
|
||
ASPECT7,
|
||
FOTO,
|
||
GEADVISEERD_STARTJAAR,
|
||
DATUM_GEREED_INSPECTEUR,
|
||
KOSTEN,
|
||
WERKZAAMHEDEN, -- omschrijving
|
||
-- verwijderdatum en vervaldatum assest
|
||
INS_DEEL_VERWIJDER,
|
||
INS_DEEL_VERVALDATUM
|
||
)
|
||
AS
|
||
SELECT d.ins_deel_key,
|
||
aog.alg_gebouw_key,
|
||
gm.mld_melding_key,
|
||
-- GEGEVENS GEBOUW/LOCATIE
|
||
l.alg_locatie_code
|
||
locatie_code,
|
||
l.alg_locatie_omschrijving
|
||
locatie_naam,
|
||
l.alg_locatie_plaats
|
||
locatie_plaats,
|
||
g.alg_gebouw_code
|
||
gebouw_code,
|
||
g.alg_gebouw_naam
|
||
gebouw_naam,
|
||
flx.getflex (
|
||
'ALG',
|
||
COALESCE (
|
||
(SELECT alg_kenmerk_key
|
||
FROM alg_kenmerk
|
||
WHERE alg_kenmerk_niveau = 'G'
|
||
AND alg_kenmerk_verwijder IS NULL
|
||
AND alg_kenmerk_upper = 'ADRES'),
|
||
-1),
|
||
aog.alg_gebouw_key,
|
||
'G')
|
||
alg_gebouw_adres,
|
||
flx.getflex (
|
||
'ALG',
|
||
COALESCE (
|
||
(SELECT alg_kenmerk_key
|
||
FROM alg_kenmerk
|
||
WHERE alg_kenmerk_niveau = 'G'
|
||
AND alg_kenmerk_verwijder IS NULL
|
||
AND alg_kenmerk_upper = 'POSTCODE'),
|
||
-1),
|
||
aog.alg_gebouw_key,
|
||
'G')
|
||
alg_gebouw_postcode,
|
||
g.alg_gebouw_mjb_score1,
|
||
flx.getflex (
|
||
'ALG',
|
||
COALESCE (
|
||
(SELECT alg_kenmerk_key
|
||
FROM alg_kenmerk
|
||
WHERE alg_kenmerk_niveau = 'G'
|
||
AND alg_kenmerk_verwijder IS NULL
|
||
AND alg_kenmerk_upper = 'ORGANISATIE'),
|
||
-1),
|
||
aog.alg_gebouw_key,
|
||
'G')
|
||
gebouw_organisatie,
|
||
flx.getflex (
|
||
'ALG',
|
||
COALESCE (
|
||
(SELECT alg_kenmerk_key
|
||
FROM alg_kenmerk
|
||
WHERE alg_kenmerk_niveau = 'G'
|
||
AND alg_kenmerk_verwijder IS NULL
|
||
AND alg_kenmerk_upper = 'BEBOUWD OPP.(M2)'),
|
||
-1),
|
||
aog.alg_gebouw_key,
|
||
'G')
|
||
gebouw_bebouwdoppervlak_m2,
|
||
flx.getflex (
|
||
'ALG',
|
||
COALESCE (
|
||
(SELECT alg_kenmerk_key
|
||
FROM alg_kenmerk
|
||
WHERE alg_kenmerk_niveau = 'G'
|
||
AND alg_kenmerk_verwijder IS NULL
|
||
AND alg_kenmerk_upper = 'BOUWJAAR'),
|
||
-1),
|
||
aog.alg_gebouw_key,
|
||
'G')
|
||
gebouw_bouwjaar,
|
||
flx.getflex (
|
||
'ALG',
|
||
COALESCE (
|
||
(SELECT alg_kenmerk_key
|
||
FROM alg_kenmerk
|
||
WHERE alg_kenmerk_niveau = 'G'
|
||
AND alg_kenmerk_verwijder IS NULL
|
||
AND alg_kenmerk_upper = 'ENERGIELABEL'),
|
||
-1),
|
||
aog.alg_gebouw_key,
|
||
'G')
|
||
gebouw_energielabel,
|
||
flx.getflex (
|
||
'ALG',
|
||
COALESCE (
|
||
(SELECT alg_kenmerk_key
|
||
FROM alg_kenmerk
|
||
WHERE alg_kenmerk_niveau = 'G'
|
||
AND alg_kenmerk_verwijder IS NULL
|
||
AND alg_kenmerk_upper = 'ENERGIELABEL DATUM'),
|
||
-1),
|
||
aog.alg_gebouw_key,
|
||
'G')
|
||
gebouw_energielabel_datum,
|
||
flx.getflex (
|
||
'ALG',
|
||
COALESCE (
|
||
(SELECT alg_kenmerk_key
|
||
FROM alg_kenmerk
|
||
WHERE alg_kenmerk_niveau = 'G'
|
||
AND alg_kenmerk_verwijder IS NULL
|
||
AND alg_kenmerk_upper = 'NAAM INSPECTIEBUREAU'),
|
||
-1),
|
||
aog.alg_gebouw_key,
|
||
'G')
|
||
naam_inspectiebureau,
|
||
flx.getflex (
|
||
'ALG',
|
||
COALESCE (
|
||
(SELECT alg_kenmerk_key
|
||
FROM alg_kenmerk
|
||
WHERE alg_kenmerk_niveau = 'G'
|
||
AND alg_kenmerk_verwijder IS NULL
|
||
AND alg_kenmerk_upper = 'NAAM INSPECTEUR(S)'),
|
||
-1),
|
||
aog.alg_gebouw_key,
|
||
'G')
|
||
naam_inspecteurs,
|
||
flx.getflex (
|
||
'ALG',
|
||
COALESCE (
|
||
(SELECT alg_kenmerk_key
|
||
FROM alg_kenmerk
|
||
WHERE alg_kenmerk_niveau = 'G'
|
||
AND alg_kenmerk_verwijder IS NULL
|
||
AND alg_kenmerk_upper = 'INSPECTIEDATUM'),
|
||
-1),
|
||
aog.alg_gebouw_key,
|
||
'G')
|
||
inspectiedatum,
|
||
flx.getflex (
|
||
'ALG',
|
||
COALESCE (
|
||
(SELECT alg_kenmerk_key
|
||
FROM alg_kenmerk
|
||
WHERE alg_kenmerk_niveau = 'G'
|
||
AND alg_kenmerk_verwijder IS NULL
|
||
AND alg_kenmerk_upper = 'PRIJSPEILJAAR'),
|
||
-1),
|
||
aog.alg_gebouw_key,
|
||
'G')
|
||
prijspeiljaar,
|
||
flx.getflex (
|
||
'ALG',
|
||
COALESCE (
|
||
(SELECT alg_kenmerk_key
|
||
FROM alg_kenmerk
|
||
WHERE alg_kenmerk_niveau = 'G'
|
||
AND alg_kenmerk_verwijder IS NULL
|
||
AND alg_kenmerk_upper = 'BTW'),
|
||
-1),
|
||
aog.alg_gebouw_key,
|
||
'G')
|
||
btw,
|
||
flx.getflex (
|
||
'ALG',
|
||
COALESCE (
|
||
(SELECT alg_kenmerk_key
|
||
FROM alg_kenmerk
|
||
WHERE alg_kenmerk_niveau = 'G'
|
||
AND alg_kenmerk_verwijder IS NULL
|
||
AND alg_kenmerk_upper = 'BTW PERCENTAGE'),
|
||
-1),
|
||
aog.alg_gebouw_key,
|
||
'G')
|
||
btw_percentage,
|
||
(SELECT alg_kenmerk_key
|
||
FROM alg_kenmerk
|
||
WHERE alg_kenmerk_niveau = 'G'
|
||
AND alg_kenmerk_upper = 'FOTO GEBOUW - AANZICHT (0)')
|
||
gebouw_foto_0,
|
||
(SELECT alg_kenmerk_key
|
||
FROM alg_kenmerk
|
||
WHERE alg_kenmerk_niveau = 'G'
|
||
AND alg_kenmerk_upper = 'FOTO GEBOUW - AANZICHT (1)')
|
||
gebouw_foto_1,
|
||
(SELECT alg_kenmerk_key
|
||
FROM alg_kenmerk
|
||
WHERE alg_kenmerk_niveau = 'G'
|
||
AND alg_kenmerk_upper = 'FOTO GEBOUW - AANZICHT (2)')
|
||
gebouw_foto_2,
|
||
(SELECT alg_kenmerk_key
|
||
FROM alg_kenmerk
|
||
WHERE alg_kenmerk_niveau = 'G'
|
||
AND alg_kenmerk_upper = 'RISICO/PRIORITEIT-MATRIX')
|
||
risico_prio_matrix,
|
||
sg.alg_srtgebouw_omschrijving,
|
||
'HEYDAY Facility Management'
|
||
opdrachtgever,
|
||
'Het Zuiderkruis 51'
|
||
|| CHR (10)
|
||
|| '5215 MV'
|
||
|| CHR (10)
|
||
|| CHR (39)
|
||
|| 's-Hertogenbosch'
|
||
opdrachtgever_adres,
|
||
'+31 402332800'
|
||
opdrachtgever_telefoon,
|
||
(SELECT alg_kenmerk_key
|
||
FROM alg_kenmerk
|
||
WHERE alg_kenmerk_niveau = 'G'
|
||
AND alg_kenmerk_upper = 'MJOP - 10 JAAR (HOOFDGROEPEN)')
|
||
mjob_10jr,
|
||
-- GEGEVENS OBJECT
|
||
id.ins_discipline_omschrijving
|
||
hoofdgroep,
|
||
isg.ins_srtgroep_omschrijving
|
||
groep,
|
||
isd.ins_srtdeel_omschrijving
|
||
|| ' ('
|
||
|| isd.ins_srtdeel_code
|
||
|| ')'
|
||
objectsoort,
|
||
d.ins_deel_omschrijving
|
||
identificatie,
|
||
d.ins_deel_mjb_score1,
|
||
d.ins_deel_mjb_score2,
|
||
d.ins_deel_opmerking,
|
||
d.ins_deel_aantal,
|
||
flx.getflex (
|
||
'INS',
|
||
COALESCE (
|
||
(SELECT MAX (k.ins_kenmerk_key)
|
||
FROM ins_kenmerk k,
|
||
ins_srtkenmerk sk,
|
||
ins_tab_discipline d
|
||
WHERE sk.ins_srtkenmerk_key = k.ins_srtkenmerk_key
|
||
AND k.ins_kenmerk_niveau = 'D'
|
||
AND k.ins_srtinstallatie_key =
|
||
d.ins_discipline_key
|
||
AND d.ins_discipline_omschrijving =
|
||
'Gebouwobjecten'
|
||
AND sk.ins_srtkenmerk_upper = 'EENHEID'),
|
||
-1),
|
||
d.ins_deel_key)
|
||
ins_kenmerk_eenheid,
|
||
flx.getflex (
|
||
'INS',
|
||
COALESCE (
|
||
(SELECT MAX (k.ins_kenmerk_key)
|
||
FROM ins_kenmerk k,
|
||
ins_srtkenmerk sk,
|
||
ins_tab_discipline d
|
||
WHERE sk.ins_srtkenmerk_key = k.ins_srtkenmerk_key
|
||
AND k.ins_kenmerk_niveau = 'D'
|
||
AND k.ins_srtinstallatie_key =
|
||
d.ins_discipline_key
|
||
AND d.ins_discipline_omschrijving =
|
||
'Gebouwobjecten'
|
||
AND sk.ins_srtkenmerk_upper = 'PLAATS'),
|
||
-1),
|
||
d.ins_deel_key)
|
||
ins_kenmerk_plaats,
|
||
flx.getflex (
|
||
'INS',
|
||
COALESCE (
|
||
(SELECT MAX (k.ins_kenmerk_key)
|
||
FROM ins_kenmerk k,
|
||
ins_srtkenmerk sk,
|
||
ins_tab_discipline d
|
||
WHERE sk.ins_srtkenmerk_key = k.ins_srtkenmerk_key
|
||
AND k.ins_kenmerk_niveau = 'D'
|
||
AND k.ins_srtinstallatie_key =
|
||
d.ins_discipline_key
|
||
AND d.ins_discipline_omschrijving =
|
||
'Gebouwobjecten'
|
||
AND sk.ins_srtkenmerk_upper =
|
||
'REFERENTIENUMMER LEVERANCIER'),
|
||
-1),
|
||
d.ins_deel_key)
|
||
ins_kenmerk_leveranciernr,
|
||
flx.getflex (
|
||
'INS',
|
||
COALESCE (
|
||
(SELECT MAX (k.ins_kenmerk_key)
|
||
FROM ins_kenmerk k,
|
||
ins_srtkenmerk sk,
|
||
ins_tab_discipline d
|
||
WHERE sk.ins_srtkenmerk_key = k.ins_srtkenmerk_key
|
||
AND k.ins_kenmerk_niveau = 'D'
|
||
AND k.ins_srtinstallatie_key =
|
||
d.ins_discipline_key
|
||
AND d.ins_discipline_omschrijving =
|
||
'Gebouwobjecten'
|
||
AND sk.ins_srtkenmerk_upper = 'CAPACITEIT'),
|
||
-1),
|
||
d.ins_deel_key)
|
||
ins_kenmerk_capaciteit,
|
||
flx.getflex (
|
||
'INS',
|
||
COALESCE (
|
||
(SELECT MAX (k.ins_kenmerk_key)
|
||
FROM ins_kenmerk k,
|
||
ins_srtkenmerk sk,
|
||
ins_tab_discipline d
|
||
WHERE sk.ins_srtkenmerk_key = k.ins_srtkenmerk_key
|
||
AND k.ins_kenmerk_niveau = 'D'
|
||
AND k.ins_srtinstallatie_key =
|
||
d.ins_discipline_key
|
||
AND d.ins_discipline_omschrijving =
|
||
'Gebouwobjecten'
|
||
AND sk.ins_srtkenmerk_upper = 'TYPE'),
|
||
-1),
|
||
d.ins_deel_key)
|
||
ins_kenmerk_type,
|
||
flx.getflex (
|
||
'INS',
|
||
COALESCE (
|
||
(SELECT MAX (k.ins_kenmerk_key)
|
||
FROM ins_kenmerk k,
|
||
ins_srtkenmerk sk,
|
||
ins_tab_discipline d
|
||
WHERE sk.ins_srtkenmerk_key = k.ins_srtkenmerk_key
|
||
AND k.ins_kenmerk_niveau = 'D'
|
||
AND k.ins_srtinstallatie_key =
|
||
d.ins_discipline_key
|
||
AND d.ins_discipline_omschrijving =
|
||
'Gebouwobjecten'
|
||
AND sk.ins_srtkenmerk_upper = 'FABRICAAT'),
|
||
-1),
|
||
d.ins_deel_key)
|
||
ins_kenmerk_fabricaat,
|
||
flx.getflex (
|
||
'INS',
|
||
COALESCE (
|
||
(SELECT MAX (k.ins_kenmerk_key)
|
||
FROM ins_kenmerk k,
|
||
ins_srtkenmerk sk,
|
||
ins_tab_discipline d
|
||
WHERE sk.ins_srtkenmerk_key = k.ins_srtkenmerk_key
|
||
AND k.ins_kenmerk_niveau = 'D'
|
||
AND k.ins_srtinstallatie_key =
|
||
d.ins_discipline_key
|
||
AND d.ins_discipline_omschrijving =
|
||
'Gebouwobjecten'
|
||
AND sk.ins_srtkenmerk_upper = 'BOUWJAAR'),
|
||
-1),
|
||
d.ins_deel_key)
|
||
ins_kenmerk_bouwjaar,
|
||
flx.getflex (
|
||
'INS',
|
||
COALESCE (
|
||
(SELECT MAX (k.ins_kenmerk_key)
|
||
FROM ins_kenmerk k,
|
||
ins_srtkenmerk sk,
|
||
ins_tab_discipline d
|
||
WHERE sk.ins_srtkenmerk_key = k.ins_srtkenmerk_key
|
||
AND k.ins_kenmerk_niveau = 'D'
|
||
AND k.ins_srtinstallatie_key =
|
||
d.ins_discipline_key
|
||
AND d.ins_discipline_omschrijving =
|
||
'Gebouwobjecten'
|
||
AND sk.ins_srtkenmerk_upper = 'CONDITIE NULMETING'),
|
||
-1),
|
||
d.ins_deel_key)
|
||
ins_kenmerk_conditie_init,
|
||
flx.getflex (
|
||
'INS',
|
||
COALESCE (
|
||
(SELECT MAX (k.ins_kenmerk_key)
|
||
FROM ins_kenmerk k,
|
||
ins_srtkenmerk sk,
|
||
ins_tab_discipline d
|
||
WHERE sk.ins_srtkenmerk_key = k.ins_srtkenmerk_key
|
||
AND k.ins_kenmerk_niveau = 'D'
|
||
AND k.ins_srtinstallatie_key =
|
||
d.ins_discipline_key
|
||
AND d.ins_discipline_omschrijving =
|
||
'Gebouwobjecten'
|
||
AND sk.ins_srtkenmerk_upper = 'GEWENSTE CONDITIE'),
|
||
-1),
|
||
d.ins_deel_key)
|
||
ins_kenmerk_conditie_gewenst,
|
||
flx.getflex (
|
||
'INS',
|
||
COALESCE (
|
||
(SELECT MAX (k.ins_kenmerk_key)
|
||
FROM ins_kenmerk k,
|
||
ins_srtkenmerk sk,
|
||
ins_tab_discipline d
|
||
WHERE sk.ins_srtkenmerk_key = k.ins_srtkenmerk_key
|
||
AND k.ins_kenmerk_niveau = 'D'
|
||
AND k.ins_srtinstallatie_key =
|
||
d.ins_discipline_key
|
||
AND d.ins_discipline_omschrijving =
|
||
'Gebouwobjecten'
|
||
AND sk.ins_srtkenmerk_upper = 'DUURZAAMHEID'),
|
||
-1),
|
||
d.ins_deel_key)
|
||
ins_kenmerk_duurzaamheid,
|
||
-- GEGEVENS LOPENDE GEBREKSMELDINGEN
|
||
gm.gebreknummer,
|
||
gm.datum_tijd,
|
||
gm.datum,
|
||
gm.inspecteur,
|
||
gm.status,
|
||
gm.gebrek,
|
||
gm.ernst,
|
||
gm.omvang,
|
||
gm.intensiteit,
|
||
gm.aspect1,
|
||
gm.aspect2,
|
||
gm.aspect3,
|
||
gm.aspect4,
|
||
gm.aspect5,
|
||
gm.aspect6,
|
||
gm.aspect7,
|
||
gm.foto,
|
||
gm.geadviseerd_startjaar,
|
||
gm.datum_gereed_inspecteur,
|
||
gm.kosten,
|
||
gm.werkzaamheden,
|
||
d.ins_deel_verwijder,
|
||
d.ins_deel_vervaldatum
|
||
FROM ins_deel d,
|
||
alg_v_allonrgoed_gegevens aog,
|
||
alg_gebouw g,
|
||
alg_srtgebouw sg,
|
||
alg_locatie l,
|
||
ins_srtdeel isd,
|
||
ins_srtgroep isg,
|
||
ins_discipline id,
|
||
(SELECT mo.ins_deel_key,
|
||
m.mld_melding_key,
|
||
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
|
||
werkzaamheden,
|
||
(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)
|
||
aspect1,
|
||
(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)
|
||
aspect2,
|
||
(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)
|
||
aspect3,
|
||
(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)
|
||
aspect4,
|
||
(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)
|
||
aspect5,
|
||
(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)
|
||
aspect6,
|
||
(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 = 'ASPECT7'
|
||
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)
|
||
aspect7,
|
||
(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 =
|
||
'GEADVISEERD STARTJAAR')
|
||
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 =
|
||
'DATUM GEREED (INSPECTEUR)')
|
||
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
|
||
FROM mld_melding m,
|
||
mld_melding_object mo,
|
||
mld_statuses s,
|
||
prs_v_perslid_fullnames_all pf,
|
||
mld_stdmelding std,
|
||
mld_discipline d,
|
||
ins_srtdiscipline sd
|
||
WHERE m.mld_melding_key = mo.mld_melding_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
|
||
AND std.mld_ins_discipline_key = d.ins_discipline_key
|
||
AND d.ins_srtdiscipline_key = sd.ins_srtdiscipline_key
|
||
AND sd.ins_srtdiscipline_key =
|
||
(SELECT COALESCE (fac_setting_pvalue,
|
||
fac_setting_default)
|
||
FROM fac_setting
|
||
WHERE fac_setting_name = 'cnd_gebreken_srtdisc_key')
|
||
-- alleen lopende gebreken tonen
|
||
AND m.mld_melding_status IN (2,3,4,7,99)
|
||
) gm -- lopende gebreksmeldingen op dit asset
|
||
WHERE d.ins_alg_ruimte_type = 'R'
|
||
AND d.ins_alg_ruimte_key = aog.alg_onroerendgoed_keys
|
||
AND aog.alg_gebouw_key = g.alg_gebouw_key
|
||
AND g.alg_locatie_key = l.alg_locatie_key
|
||
AND g.alg_srtgebouw_key = sg.alg_srtgebouw_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
|
||
-- lopende gebreksmelding
|
||
AND d.ins_deel_key = gm.ins_deel_key(+)
|
||
;
|
||
|
||
-- Compliance verklaring (ticket AAXX#86360)
|
||
CREATE OR REPLACE VIEW AAXX_V_RAP_TAKEN_COMPLIANCE
|
||
(
|
||
TOEPASSING, -- Compliance_toepassing - keuzelijst eigen tabel
|
||
UITGEVOERD,
|
||
JAAR, -- Jaar laatste uitvoer
|
||
DATUM, -- Laatste uitvoerdatum OF datum waarop het uitgevoerd had moeten worden
|
||
JAAR_NEXTCYCLUS,
|
||
DATUM_NEXTCYCLUS,
|
||
JAAR_COMPLIANCE, -- SYSDATE - 1
|
||
CATEGORIE,
|
||
TAAKSOORT,
|
||
SRTCONTROLE__KEY,
|
||
OP_COMPLIANCE, -- In basistaak_info-veld opgenomen of de taak wel/niet in de compliance meegenomen moet worden
|
||
DEELSOORTCONTROLE_KEY, -- Laatste uitvoer_key
|
||
STATUS,
|
||
INS_DEEL_KEY,
|
||
INLO_SUBACCOUNT,
|
||
LOCATIE_PLAATS,
|
||
REGIO,
|
||
DISTRICT,
|
||
LOCATIE,
|
||
LOCATIE_CODE,
|
||
GEBOUW_NAAM,
|
||
GEBOUWFUNCTIE,
|
||
VERVALDATUM_GEBOUW,
|
||
HEYDAY_GEBOUWVERANTW,
|
||
HEYDAY_GEBOUWVERANTW_MAIL,
|
||
HEYDAY_GEBOUWVERANTW_TEL,
|
||
OMSCHRIJVING,
|
||
OBJECTIDENTIFICATIE,
|
||
VERVALDATUM_OBJECT,
|
||
OBJECT_VERVAL_FILTER,
|
||
TAAKOMSCHRIJVING,
|
||
FREQUENCY,
|
||
PERIODE,
|
||
AANTAL_X_UITGEVOERD, -- In Compliancejaar (sysdate-jaar minus 1)
|
||
AANTAL_X_UITGEVOERD_TOT, -- In totaal
|
||
ACTIE, -- 1, 0.5, 0 of -1 (1 = voltooid 0.5 = afgemeld 0 = ingepland, -1 is nog niet gestart/uitgevoerd in geselecteerde jaar
|
||
DEMARCATIE,
|
||
OPMERKING_UITVOER,
|
||
OPMERKING_OBJECTTAAK,
|
||
DIENST,
|
||
DIENST_LEV_BDL,
|
||
DIENST_LEV_BDL_AANTAL
|
||
)
|
||
AS -- Uitgevoerd t/m datum van uitdraai...
|
||
SELECT ud.fac_usrdata_upper,
|
||
'ja' uitgevoerd,
|
||
TO_CHAR (dc.ins_deelsrtcontrole_datum, 'YYYY')
|
||
jaar,
|
||
dc.ins_deelsrtcontrole_datum
|
||
datum, -- datum laatste uitvoering
|
||
TO_CHAR(fac.nextcyclusdatedeel (d.ins_deel_key, sc.ins_srtcontrole_key,1),'YYYY')
|
||
jaar_nextcyclus,
|
||
fac.nextcyclusdatedeel (d.ins_deel_key, sc.ins_srtcontrole_key,1)
|
||
datum_nextcyclus,
|
||
CASE WHEN ud.fac_usrdata_key = ut.key_vj THEN TO_CHAR(sysdate,'YYYY')-1 ELSE TO_CHAR(sysdate,'YYYY')-0 END -- key van compliance voorgaand jaar
|
||
jaar_compliance,
|
||
cd.ins_discipline_omschrijving,
|
||
CASE
|
||
WHEN cdp.ctr_disc_params_controle_type = 1
|
||
THEN
|
||
lcl.l ('lcl_ins_srtcontrole_insp')
|
||
WHEN cdp.ctr_disc_params_controle_type = 2
|
||
THEN
|
||
lcl.l ('lcl_ins_srtcontrole_repl')
|
||
WHEN cdp.ctr_disc_params_controle_type = 3
|
||
THEN
|
||
lcl.l ('lcl_ins_srtcontrole_cert')
|
||
END
|
||
taaksoort,
|
||
t.ins_srtcontrole_key,
|
||
CASE
|
||
WHEN INSTR(UPPER(sc.ins_srtcontrole_info), 'NIET OP COMPLIANCE')>0
|
||
THEN 'nee'
|
||
ELSE 'ja'
|
||
END
|
||
op_compliance,
|
||
t.laatste_uitvoer_key,
|
||
DECODE (dc.ins_deelsrtcontrole_status,
|
||
0, 'Ingepland',
|
||
2, 'In behandeling',
|
||
5, 'Afgemeld',
|
||
6, 'Voltooid')
|
||
status,
|
||
d.ins_deel_key,
|
||
v.inlo_subaccount,
|
||
l.alg_locatie_plaats || ' ' || l.alg_locatie_adres,
|
||
r.alg_regio_omschrijving,
|
||
di.alg_district_omschrijving,
|
||
l.alg_locatie_omschrijving,
|
||
l.alg_locatie_code,
|
||
g.alg_gebouw_naam || ' (' || g.alg_gebouw_code || ')'
|
||
alg_gebouw_naam,
|
||
sg.alg_srtgebouw_omschrijving
|
||
gebouwfunctie,
|
||
TO_CHAR(g.alg_gebouw_vervaldatum,'dd-mm-yyyy'),
|
||
CASE WHEN p.prs_perslid_tussenvoegsel IS NULL THEN p.prs_perslid_voornaam || ' ' || p.prs_perslid_naam
|
||
ELSE p.prs_perslid_voornaam || ' ' || p.prs_perslid_tussenvoegsel || ' ' || p.prs_perslid_naam
|
||
END
|
||
heyday_gebouwverantw,
|
||
p.prs_perslid_email
|
||
heyday_gebouwverantw_mail,
|
||
CASE WHEN p.prs_perslid_telefoonnr IS NOT NULL THEN p.prs_perslid_telefoonnr
|
||
WHEN p.prs_perslid_telefoonnr IS NULL AND p.prs_perslid_mobiel IS NOT NULL THEN p.prs_perslid_mobiel
|
||
WHEN p.prs_perslid_telefoonnr IS NULL AND p.prs_perslid_mobiel IS NULL THEN 'n.b.'
|
||
ELSE NULL
|
||
END
|
||
heyday_gebouwverantw_tel,
|
||
d.ins_deel_opmerking,
|
||
d.ins_deel_omschrijving,
|
||
TO_CHAR(d.ins_deel_vervaldatum, 'dd-mm-yyyy'),
|
||
CASE WHEN d.ins_deel_vervaldatum IS NULL THEN 'actueel'
|
||
WHEN d.ins_deel_vervaldatum IS NOT NULL AND d.ins_deel_vervaldatum <= sysdate THEN 'vervallen'
|
||
WHEN d.ins_deel_vervaldatum IS NOT NULL AND d.ins_deel_vervaldatum > sysdate THEN 'vervallen - toekomst'
|
||
ELSE '<?>'
|
||
END
|
||
object_verval_filter,
|
||
sc.ins_srtcontrole_omschrijving,
|
||
DECODE (
|
||
COALESCE (x.ins_srtcontroledl_xcp_eenheid,
|
||
sc.ins_srtcontrole_eenheid),
|
||
0, 'Uurlijks',
|
||
1, 'Dagelijks',
|
||
2, 'Wekelijks',
|
||
3, 'Maandelijks',
|
||
4, 'Jaarlijks',
|
||
'Onbekend')
|
||
frequentie,
|
||
COALESCE (x.ins_srtcontroledl_xcp_periode,
|
||
sc.ins_srtcontrole_periode)
|
||
periode,
|
||
(SELECT count(*)
|
||
FROM ins_deelsrtcontrole dc
|
||
WHERE dc.ins_deel_key = d.ins_deel_key
|
||
AND dc.ins_srtcontrole_key = t.ins_srtcontrole_key
|
||
AND TO_CHAR(dc.ins_deelsrtcontrole_datum,'yyyy') = to_char(sysdate,'yyyy') - DECODE(ud.fac_usrdata_key,ut.key_vj,1,0)
|
||
) aantal_x_uitgevoerd_c, -- in compliance-jaar uitgevoerd
|
||
t.aantal_x_uitgevoerd
|
||
aantal_x_uitgevoerd_tot,
|
||
CASE
|
||
WHEN
|
||
INSTR (LOWER (x.ins_srtcontroledl_xcp_groep), 'nee') > 0 AND ud.fac_usrdata_key = ut.key_vj -- compliance voorgaand jaar
|
||
AND (
|
||
LOWER (dc.ins_deelsrtcontrole_status) NOT IN (6) -- uitleg: Als demarcatie is nee (geen taak HEYDAY) en laatste taak is niet of niet succesvol uitgevoerd, dan op verklaring altijd nvt vermelden
|
||
OR
|
||
(LOWER (dc.ins_deelsrtcontrole_status) IN (6) -- uitleg: Ook als laatste uitvoerdatum nog voor compliance jaar ligt en voltooid was en de nextcycli_datum is in compliance-jaar (of ervoor) ligt, dan wordt status op nvt gezet
|
||
AND TO_NUMBER(TO_CHAR(dc.ins_deelsrtcontrole_datum, 'YYYY')) < TO_NUMBER(TO_CHAR(sysdate,'YYYY')-1)
|
||
AND TO_NUMBER(TO_CHAR(fac.nextcyclusdatedeel (d.ins_deel_key, sc.ins_srtcontrole_key,1),'YYYY')) <= TO_NUMBER(TO_CHAR(sysdate,'YYYY')-1)
|
||
)
|
||
)
|
||
THEN
|
||
'nvt'
|
||
WHEN -- uitleg: Als demarcatie is nee (geen taak HEYDAY) en laatste uitvoerdatum nog voor compliance jaar ligt en nextcycli_datum is in compliance-jaar (of ervoor) en is kleiner dan datum uitdraai, dan status nvt (= nog uitvoeren)
|
||
INSTR (LOWER (x.ins_srtcontroledl_xcp_groep), 'nee') > 0 AND ud.fac_usrdata_key = ut.key_lj -- compliance lopend jaar
|
||
AND TO_NUMBER(TO_CHAR(dc.ins_deelsrtcontrole_datum, 'YYYY')) < TO_NUMBER(TO_CHAR(sysdate,'YYYY'))
|
||
AND TO_NUMBER(TO_CHAR(fac.nextcyclusdatedeel (d.ins_deel_key, sc.ins_srtcontrole_key,1),'YYYY')) <= TO_NUMBER(TO_CHAR(sysdate,'YYYY'))
|
||
AND TRUNC(fac.nextcyclusdatedeel (d.ins_deel_key, sc.ins_srtcontrole_key,1)) <= TRUNC(SYSDATE)
|
||
THEN
|
||
'nvt'
|
||
WHEN -- uitleg: Als demarcatie is ja (is taak HEYDAY) en laatste uitvoerdatum nog voor compliance jaar ligt en nextcycli_datum is in compliance-jaar (of ervoor) en is kleiner dan datum uitdraai, dan status -1 (= nog uitvoeren)
|
||
INSTR (LOWER (COALESCE(x.ins_srtcontroledl_xcp_groep,'leeg')), 'nee') = 0
|
||
AND TO_NUMBER(TO_CHAR(dc.ins_deelsrtcontrole_datum, 'YYYY')) < TO_NUMBER(TO_CHAR(sysdate,'YYYY')-DECODE(ud.fac_usrdata_key,ut.key_vj,1,0)) -- compliance voorgaand jaar
|
||
AND TO_NUMBER(TO_CHAR(fac.nextcyclusdatedeel (d.ins_deel_key, sc.ins_srtcontrole_key,1),'YYYY')) <= TO_NUMBER(TO_CHAR(sysdate,'YYYY')-DECODE(ud.fac_usrdata_key,ut.key_vj,1,0))
|
||
AND TRUNC(fac.nextcyclusdatedeel (d.ins_deel_key, sc.ins_srtcontrole_key,1)) <= TRUNC(SYSDATE)
|
||
THEN '-1'
|
||
ELSE
|
||
DECODE (dc.ins_deelsrtcontrole_status,
|
||
6, '1', -- Voltooid
|
||
5, '0.5', -- Afgemeld
|
||
2, '0', -- In behandeling
|
||
0, '0', -- Ingepland
|
||
'-1')
|
||
END
|
||
actie,
|
||
x.ins_srtcontroledl_xcp_groep
|
||
demarcatie,
|
||
dc.ins_deelsrtcontrole_opmerking
|
||
opmerking_uitvoer, -- opmerking bij laatste uitvoering
|
||
x.ins_srtcontroledl_xcp_opmerk
|
||
opmerking_basistaak,
|
||
die.prs_dienst_omschrijving,
|
||
bdl.lev_max
|
||
dienst_lev_bdl,
|
||
bdl.aantal_leveranciers
|
||
dienst_lev_bdl_aantal
|
||
FROM ins_v_deel_gegevens d,
|
||
ins_srtcontrole sc,
|
||
prs_dienst die,
|
||
ins_srtcontroledl_xcp x,
|
||
ins_srtdeel ds,
|
||
ins_srtgroep dg,
|
||
ctr_discipline cd,
|
||
ctr_disc_params cdp,
|
||
( SELECT dc.ins_deel_key,
|
||
dc.ins_srtcontrole_key,
|
||
MAX (ins_deelsrtcontrole_key)
|
||
laatste_uitvoer_key,
|
||
COUNT (ins_deelsrtcontrole_key)
|
||
aantal_x_uitgevoerd
|
||
FROM ins_deelsrtcontrole dc, ins_deel d
|
||
WHERE d.ins_deel_key = dc.ins_deel_key
|
||
AND d.ins_deel_verwijder IS NULL
|
||
GROUP BY dc.ins_deel_key,
|
||
dc.ins_srtcontrole_key
|
||
) t,
|
||
ins_deelsrtcontrole dc,
|
||
alg_gebouw g,
|
||
prs_perslid p,
|
||
(SELECT g.alg_gebouw_key,
|
||
fud.fac_usrdata_upper,
|
||
fud.fac_usrdata_omschr
|
||
inlo_subaccount
|
||
FROM alg_gebouw g, alg_onrgoedkenmerk k, fac_usrdata fud
|
||
WHERE g.alg_gebouw_key = k.alg_onrgoed_key
|
||
AND k.alg_onrgoed_niveau = 'G'
|
||
AND alg_kenmerk_key = DECODE (aaxx_get_user, 'INLO', 1100, NULL)
|
||
AND fac.safe_to_number(k.alg_onrgoedkenmerk_waarde) = fud.fac_usrdata_key
|
||
) v,
|
||
alg_locatie l,
|
||
alg_district di,
|
||
alg_regio r,
|
||
alg_srtgebouw sg,
|
||
(SELECT ut.fac_usrtab_key, ut.fac_usrtab_naam , ud.fac_usrdata_key, ud.fac_usrdata_upper
|
||
FROM fac_usrdata ud, fac_usrtab ut
|
||
WHERE ud.fac_usrtab_key = ut.fac_usrtab_key
|
||
AND ut.fac_usrtab_naam = 'ASSET_COMPLIANCE'
|
||
AND ut.fac_usrtab_verwijder IS NULL
|
||
AND ud.fac_usrdata_verwijder IS NULL AND ud.fac_usrdata_vervaldatum IS NULL
|
||
) ud,
|
||
(SELECT ut.fac_usrtab_key,
|
||
(SELECT ud.fac_usrdata_key FROM fac_usrdata ud WHERE ud.fac_usrtab_key = ut.fac_usrtab_key AND ud.fac_usrdata_upper = 'COMPLIANCE VOORGAAND JAAR')
|
||
key_vj,
|
||
(SELECT ud.fac_usrdata_key FROM fac_usrdata ud WHERE ud.fac_usrtab_key = ut.fac_usrtab_key AND ud.fac_usrdata_upper = 'COMPLIANCE LOPEND JAAR')
|
||
key_lj
|
||
FROM fac_usrtab ut
|
||
WHERE ut.fac_usrtab_naam = 'ASSET_COMPLIANCE'
|
||
AND ut.fac_usrtab_verwijder IS NULL
|
||
) ut,
|
||
(
|
||
SELECT d.prs_dienst_key, d.prs_dienst_omschrijving, g.alg_gebouw_key, MAX (b.prs_bedrijf_naam) lev_max, MIN (b.prs_bedrijf_naam) lev_min, count(*) aantal_leveranciers
|
||
FROM prs_bedrijfdienstlocatie bdl,
|
||
prs_dienst d,
|
||
prs_bedrijf b,
|
||
alg_gebouw g,
|
||
alg_locatie l
|
||
WHERE d.prs_dienst_key = bdl.prs_dienst_key
|
||
AND b.prs_bedrijf_key = bdl.prs_bedrijf_key
|
||
AND bdl.alg_gebouw_key IS NOT NULL
|
||
AND bdl.alg_gebouw_key = g.alg_gebouw_key
|
||
AND g.alg_locatie_key = l.alg_locatie_key
|
||
GROUP BY d.prs_dienst_omschrijving, d.prs_dienst_key, g.alg_gebouw_key
|
||
) bdl
|
||
WHERE d.ins_deel_key = t.ins_deel_key
|
||
AND d.ins_discipline_omschrijving = 'Gebouwobjecten'
|
||
AND t.ins_srtcontrole_key = sc.ins_srtcontrole_key
|
||
AND sc.prs_dienst_key = die.prs_dienst_key (+)
|
||
AND sc.ctr_discipline_key = cd.ins_discipline_key
|
||
AND cdp.ctr_disc_params_controle_type = 3 -- Taaksoort Certificering
|
||
AND cd.ins_discipline_key = cdp.ctr_ins_discipline_key
|
||
AND t.ins_deel_key = x.ins_deel_key
|
||
AND t.ins_srtcontrole_key = x.ins_srtcontrole_key
|
||
AND x.ins_scenario_key = 1
|
||
AND t.laatste_uitvoer_key = dc.ins_deelsrtcontrole_key
|
||
AND sc.ins_srtinstallatie_key = ds.ins_srtdeel_key
|
||
AND sc.ins_srtcontrole_niveau = 'S'
|
||
AND ds.ins_srtgroep_key = dg.ins_srtgroep_key
|
||
-- AND dg.ins_srtgroep_key NOT IN (321) -- Groep 01 Algemeen uitsluiten
|
||
AND d.alg_gebouw_key = g.alg_gebouw_key
|
||
AND g.prs_perslid_key_verantw = p.prs_perslid_key (+)
|
||
AND g.alg_locatie_key = l.alg_locatie_key
|
||
AND l.alg_district_key = di.alg_district_key
|
||
AND di.alg_regio_key = r.alg_regio_key
|
||
AND g.alg_srtgebouw_key = sg.alg_srtgebouw_key
|
||
AND g.alg_gebouw_key = bdl.alg_gebouw_key (+)
|
||
AND g.alg_gebouw_key = v.alg_gebouw_key (+)
|
||
AND sc.prs_dienst_key = bdl.prs_dienst_key (+)
|
||
UNION -- Nog niet uitgevoerd in geselecteerde jaar
|
||
SELECT ud.fac_usrdata_upper,
|
||
CASE WHEN TO_NUMBER(TO_CHAR(t.deelsrtcontrole_datum, 'yyyy')) < TO_NUMBER (TO_CHAR (SYSDATE, 'yyyy')) THEN 'nee - verleden'
|
||
WHEN TO_NUMBER(TO_CHAR(t.deelsrtcontrole_datum, 'yyyy')) = TO_NUMBER (TO_CHAR (SYSDATE, 'yyyy')) THEN 'nee - lopend jaar'
|
||
WHEN TO_NUMBER(TO_CHAR(t.deelsrtcontrole_datum, 'yyyy')) > TO_NUMBER (TO_CHAR (SYSDATE, 'yyyy')) THEN 'nee - toekomst'
|
||
ELSE '<?>'
|
||
END
|
||
uitgevoerd,
|
||
t.jaar,
|
||
t.deelsrtcontrole_datum
|
||
datum, -- datum waarop het uitgevoerd had moeten worden..
|
||
TO_CHAR(fac.nextcyclusdatedeel (d.ins_deel_key, sc.ins_srtcontrole_key,1),'YYYY')
|
||
jaar_nextcyclus,
|
||
fac.nextcyclusdatedeel (d.ins_deel_key, sc.ins_srtcontrole_key,1)
|
||
datum_nextcyclus,
|
||
CASE WHEN ud.fac_usrdata_key = ut.key_vj THEN TO_CHAR(sysdate,'YYYY')-1 ELSE TO_CHAR(sysdate,'YYYY')-0 END
|
||
jaar_compliance,
|
||
cd.ins_discipline_omschrijving,
|
||
CASE
|
||
WHEN cdp.ctr_disc_params_controle_type = 1
|
||
THEN
|
||
lcl.l ('lcl_ins_srtcontrole_insp')
|
||
WHEN cdp.ctr_disc_params_controle_type = 2
|
||
THEN
|
||
lcl.l ('lcl_ins_srtcontrole_repl')
|
||
WHEN cdp.ctr_disc_params_controle_type = 3
|
||
THEN
|
||
lcl.l ('lcl_ins_srtcontrole_cert')
|
||
END
|
||
taaksoort,
|
||
t.ins_srtcontrole_key,
|
||
CASE
|
||
WHEN INSTR(UPPER(sc.ins_srtcontrole_info), 'NIET OP COMPLIANCE')>0
|
||
THEN 'nee'
|
||
ELSE 'ja'
|
||
END
|
||
op_compliance,
|
||
NULL
|
||
deelsrtcontrole_key,
|
||
NULL
|
||
status,
|
||
d.ins_deel_key,
|
||
v.inlo_subaccount,
|
||
l.alg_locatie_plaats || ' ' || l.alg_locatie_adres,
|
||
r.alg_regio_omschrijving,
|
||
di.alg_district_omschrijving,
|
||
l.alg_locatie_omschrijving,
|
||
l.alg_locatie_code,
|
||
g.alg_gebouw_naam || ' (' || g.alg_gebouw_code || ')'
|
||
alg_gebouw_naam,
|
||
sg.alg_srtgebouw_omschrijving gebouwfunctie,
|
||
TO_CHAR(g.alg_gebouw_vervaldatum,'dd-mm-yyyy'),
|
||
CASE WHEN p.prs_perslid_tussenvoegsel IS NULL THEN p.prs_perslid_voornaam || ' ' || p.prs_perslid_naam
|
||
ELSE p.prs_perslid_voornaam || ' ' || p.prs_perslid_tussenvoegsel || ' ' || p.prs_perslid_naam
|
||
END
|
||
heyday_gebouwverantw,
|
||
p.prs_perslid_email
|
||
heyday_gebouwverantw_mail,
|
||
CASE WHEN p.prs_perslid_telefoonnr IS NOT NULL THEN p.prs_perslid_telefoonnr
|
||
WHEN p.prs_perslid_telefoonnr IS NULL AND p.prs_perslid_mobiel IS NOT NULL THEN p.prs_perslid_mobiel
|
||
WHEN p.prs_perslid_telefoonnr IS NULL AND p.prs_perslid_mobiel IS NULL THEN 'n.b.'
|
||
ELSE NULL
|
||
END
|
||
heyday_gebouwverantw_tel,
|
||
d.ins_deel_opmerking,
|
||
d.ins_deel_omschrijving,
|
||
TO_CHAR(d.ins_deel_vervaldatum, 'dd-mm-yyyy'),
|
||
CASE WHEN d.ins_deel_vervaldatum IS NULL THEN 'actueel'
|
||
WHEN d.ins_deel_vervaldatum IS NOT NULL AND d.ins_deel_vervaldatum <= sysdate THEN 'vervallen'
|
||
WHEN d.ins_deel_vervaldatum IS NOT NULL AND d.ins_deel_vervaldatum > sysdate THEN 'vervallen - toekomst'
|
||
ELSE '<?>'
|
||
END
|
||
object_verval_filter,
|
||
sc.ins_srtcontrole_omschrijving,
|
||
DECODE (
|
||
COALESCE (x.ins_srtcontroledl_xcp_eenheid,
|
||
sc.ins_srtcontrole_eenheid),
|
||
0, 'Uurlijks',
|
||
1, 'Dagelijks',
|
||
2, 'Wekelijks',
|
||
3, 'Maandelijks',
|
||
4, 'Jaarlijks',
|
||
'Onbekend')
|
||
frequentie,
|
||
COALESCE (x.ins_srtcontroledl_xcp_periode,
|
||
sc.ins_srtcontrole_periode)
|
||
periode,
|
||
0 aantal_x_uitgevoerd,
|
||
0 aantal_x_uitgevoerd_c,
|
||
CASE
|
||
WHEN INSTR (LOWER (x.ins_srtcontroledl_xcp_groep), 'nee') > 0
|
||
THEN 'nvt'
|
||
WHEN INSTR (LOWER (COALESCE(x.ins_srtcontroledl_xcp_groep,'leeg')), 'nee') = 0
|
||
AND TRUNC(t.deelsrtcontrole_datum) > TRUNC(SYSDATE) -- taak voor toekomst
|
||
THEN '-0.5'
|
||
ELSE '-1'
|
||
END
|
||
actie,
|
||
x.ins_srtcontroledl_xcp_groep demarcatie,
|
||
NULL
|
||
opmerking_uitvoer,
|
||
x.ins_srtcontroledl_xcp_opmerk
|
||
opmerking_basistaak,
|
||
die.prs_dienst_omschrijving,
|
||
bdl.lev_max
|
||
dienst_lev_bdl,
|
||
bdl.aantal_leveranciers
|
||
dienst_lev_bdl_aantal
|
||
FROM ins_v_deel_gegevens d,
|
||
ins_srtcontrole sc,
|
||
prs_dienst die,
|
||
ins_srtcontroledl_xcp x,
|
||
ins_srtdeel ds,
|
||
ins_srtgroep dg,
|
||
ctr_discipline cd,
|
||
ctr_disc_params cdp,
|
||
( SELECT v.deel_key,
|
||
v.srtcontrole_key
|
||
ins_srtcontrole_key,
|
||
MAX(TO_CHAR (v.deelsrtcontrole_datum, 'YYYY'))
|
||
jaar,
|
||
MAX (v.deelsrtcontrole_datum)
|
||
deelsrtcontrole_datum
|
||
FROM aaxx_v_dwh_inspectie_2 v
|
||
WHERE v.deelsrtcontrole_key IS NULL -- Of wel de basistaak uit deze view
|
||
AND v.taaksoort = 'Certificering'
|
||
AND NOT EXISTS
|
||
(SELECT dc.ins_deelsrtcontrole_key FROM ins_deelsrtcontrole dc
|
||
WHERE dc.ins_deel_key = v.deel_key
|
||
AND dc.ins_srtcontrole_key = v.srtcontrole_key)
|
||
GROUP BY v.deel_key,
|
||
v.srtcontrole_key
|
||
) t,
|
||
alg_gebouw g,
|
||
prs_perslid p,
|
||
(SELECT g.alg_gebouw_key,
|
||
fud.fac_usrdata_upper,
|
||
fud.fac_usrdata_omschr
|
||
inlo_subaccount
|
||
FROM alg_gebouw g, alg_onrgoedkenmerk k, fac_usrdata fud
|
||
WHERE g.alg_gebouw_key = k.alg_onrgoed_key
|
||
AND k.alg_onrgoed_niveau = 'G'
|
||
AND alg_kenmerk_key = DECODE (aaxx_get_user, 'INLO', 1100, NULL)
|
||
AND fac.safe_to_number(k.alg_onrgoedkenmerk_waarde) = fud.fac_usrdata_key
|
||
) v,
|
||
alg_locatie l,
|
||
alg_district di,
|
||
alg_regio r,
|
||
alg_srtgebouw sg,
|
||
(SELECT ut.fac_usrtab_key, ut.fac_usrtab_naam , ud.fac_usrdata_key, ud.fac_usrdata_upper
|
||
FROM fac_usrdata ud, fac_usrtab ut
|
||
WHERE ud.fac_usrtab_key = ut.fac_usrtab_key
|
||
AND ut.fac_usrtab_naam = 'ASSET_COMPLIANCE'
|
||
AND ut.fac_usrtab_verwijder IS NULL
|
||
AND ud.fac_usrdata_verwijder IS NULL AND ud.fac_usrdata_vervaldatum IS NULL
|
||
) ud,
|
||
(SELECT ut.fac_usrtab_key,
|
||
(SELECT ud.fac_usrdata_key FROM fac_usrdata ud WHERE ud.fac_usrtab_key = ut.fac_usrtab_key AND ud.fac_usrdata_upper = 'COMPLIANCE VOORGAAND JAAR')
|
||
key_vj,
|
||
(SELECT ud.fac_usrdata_key FROM fac_usrdata ud WHERE ud.fac_usrtab_key = ut.fac_usrtab_key AND ud.fac_usrdata_upper = 'COMPLIANCE LOPEND JAAR')
|
||
key_lj
|
||
FROM fac_usrtab ut
|
||
WHERE ut.fac_usrtab_naam = 'ASSET_COMPLIANCE'
|
||
AND ut.fac_usrtab_verwijder IS NULL
|
||
) ut,
|
||
(
|
||
SELECT d.prs_dienst_key, d.prs_dienst_omschrijving, g.alg_gebouw_key, MAX (b.prs_bedrijf_naam) lev_max, MIN (b.prs_bedrijf_naam) lev_min, count(*) aantal_leveranciers
|
||
FROM prs_bedrijfdienstlocatie bdl,
|
||
prs_dienst d,
|
||
prs_bedrijf b,
|
||
alg_gebouw g,
|
||
alg_locatie l
|
||
WHERE d.prs_dienst_key = bdl.prs_dienst_key
|
||
AND b.prs_bedrijf_key = bdl.prs_bedrijf_key
|
||
AND bdl.alg_gebouw_key IS NOT NULL
|
||
AND bdl.alg_gebouw_key = g.alg_gebouw_key
|
||
AND g.alg_locatie_key = l.alg_locatie_key
|
||
GROUP BY d.prs_dienst_omschrijving, d.prs_dienst_key, g.alg_gebouw_key
|
||
) bdl
|
||
WHERE d.ins_deel_key = t.deel_key
|
||
AND d.ins_discipline_omschrijving = 'Gebouwobjecten'
|
||
AND t.ins_srtcontrole_key = sc.ins_srtcontrole_key
|
||
AND sc.prs_dienst_key = die.prs_dienst_key (+)
|
||
AND t.deel_key = x.ins_deel_key
|
||
AND t.ins_srtcontrole_key = x.ins_srtcontrole_key
|
||
AND x.ins_scenario_key = 1
|
||
AND sc.ctr_discipline_key = cd.ins_discipline_key
|
||
AND cdp.ctr_disc_params_controle_type = 3 -- Taaksoort Certificering
|
||
AND cd.ins_discipline_key = cdp.ctr_ins_discipline_key
|
||
AND sc.ins_srtinstallatie_key = ds.ins_srtdeel_key
|
||
AND sc.ins_srtcontrole_niveau = 'S'
|
||
AND ds.ins_srtgroep_key = dg.ins_srtgroep_key
|
||
-- AND dg.ins_srtgroep_key NOT IN (321) -- Groep 01 Algemeen uitsluiten
|
||
AND d.alg_gebouw_key = g.alg_gebouw_key
|
||
AND g.prs_perslid_key_verantw = p.prs_perslid_key (+)
|
||
AND g.alg_locatie_key = l.alg_locatie_key
|
||
AND l.alg_district_key = di.alg_district_key
|
||
AND di.alg_regio_key = r.alg_regio_key
|
||
AND g.alg_srtgebouw_key = sg.alg_srtgebouw_key
|
||
AND g.alg_gebouw_key = bdl.alg_gebouw_key (+)
|
||
AND g.alg_gebouw_key = v.alg_gebouw_key (+)
|
||
AND sc.prs_dienst_key = bdl.prs_dienst_key (+)
|
||
;
|
||
|
||
|
||
CREATE OR REPLACE PROCEDURE aaxx_import_ins_assetman (p_import_key IN NUMBER)
|
||
IS
|
||
c_delim VARCHAR2 (1) := ';';
|
||
v_newline fac_imp_file.fac_imp_file_line%TYPE; -- Input line
|
||
v_errormsg VARCHAR2 (1000);
|
||
v_errorhint VARCHAR2 (1000);
|
||
oracle_err_num NUMBER;
|
||
oracle_err_mes VARCHAR2 (200);
|
||
header_is_valid NUMBER;
|
||
v_count_tot NUMBER (10);
|
||
v_count_import NUMBER (10);
|
||
v_ongeldig NUMBER (1);
|
||
v_aanduiding VARCHAR (400);
|
||
v_ins_kenmerk_key1 VARCHAR2 (255);
|
||
v_ins_kenmerk_key2 VARCHAR2 (255);
|
||
v_ins_kenmerk_key3 VARCHAR2 (255);
|
||
v_ins_kenmerk_key4 VARCHAR2 (255);
|
||
v_ins_kenmerk_key5 VARCHAR2 (255);
|
||
v_ins_kenmerk_key6 VARCHAR2 (255);
|
||
v_ins_kenmerk_key7 VARCHAR2 (255);
|
||
v_ins_kenmerk_key8 VARCHAR2 (255);
|
||
v_ins_kenmerk_key9 VARCHAR2 (255);
|
||
v_ins_kenmerk_key10 VARCHAR2 (255);
|
||
v_ins_kenmerk_key11 VARCHAR2 (255);
|
||
v_ins_kenmerk_key12 VARCHAR2 (255);
|
||
v_ins_kenmerk_key13 VARCHAR2 (255);
|
||
v_ins_kenmerk_key14 VARCHAR2 (255);
|
||
v_ins_kenmerk_key15 VARCHAR2 (255);
|
||
v_ins_kenmerk_key16 VARCHAR2 (255);
|
||
v_ins_kenmerk_key17 VARCHAR2 (255);
|
||
v_ins_kenmerk_key18 VARCHAR2 (255);
|
||
v_ins_kenmerk_key19 VARCHAR2 (255);
|
||
v_ins_kenmerk_key20 VARCHAR2 (255);
|
||
-- De importvelden
|
||
v_ins_discipline_omschrijving VARCHAR2 (255); -- C60
|
||
v_ins_discipline_kostensoort VARCHAR2 (255); --C60
|
||
v_ins_srtgroep_omschrijving VARCHAR2 (255); -- C60
|
||
v_ins_srtdeel_code VARCHAR2 (255); -- C10
|
||
v_ins_srtdeel_omschrijving VARCHAR2 (255); -- C100
|
||
v_ins_deel_omschrijving VARCHAR2 (255); -- C60
|
||
v_ins_deel_opmerking VARCHAR2 (1000); -- C320
|
||
v_alg_locatie_code VARCHAR2 (255); -- C10
|
||
v_alg_gebouw_code VARCHAR2 (255); -- C12
|
||
v_alg_verdieping_volgnr VARCHAR2 (255); -- N3
|
||
v_alg_verdieping_volgnr_n NUMBER (3); -- N3
|
||
v_alg_ruimte_nr VARCHAR2 (255); -- C10
|
||
v_ins_kenmerkwaarde1 VARCHAR2 (4000);
|
||
v_ins_kenmerkwaarde2 VARCHAR2 (4000);
|
||
v_ins_kenmerkwaarde3 VARCHAR2 (4000);
|
||
v_ins_kenmerkwaarde4 VARCHAR2 (4000);
|
||
v_ins_kenmerkwaarde5 VARCHAR2 (4000);
|
||
v_ins_kenmerkwaarde6 VARCHAR2 (4000);
|
||
v_ins_kenmerkwaarde7 VARCHAR2 (4000);
|
||
v_ins_kenmerkwaarde8 VARCHAR2 (4000);
|
||
v_ins_kenmerkwaarde9 VARCHAR2 (4000);
|
||
v_ins_kenmerkwaarde10 VARCHAR2 (4000);
|
||
v_ins_kenmerkwaarde11 VARCHAR2 (4000);
|
||
v_ins_kenmerkwaarde12 VARCHAR2 (4000);
|
||
v_ins_kenmerkwaarde13 VARCHAR2 (4000);
|
||
v_ins_kenmerkwaarde14 VARCHAR2 (4000);
|
||
v_ins_kenmerkwaarde15 VARCHAR2 (4000);
|
||
v_ins_kenmerkwaarde16 VARCHAR2 (4000);
|
||
v_ins_kenmerkwaarde17 VARCHAR2 (4000);
|
||
v_ins_kenmerkwaarde18 VARCHAR2 (4000);
|
||
v_ins_kenmerkwaarde19 VARCHAR2 (4000);
|
||
v_ins_kenmerkwaarde20 VARCHAR2 (4000);
|
||
v_ins_deel_aanmaak VARCHAR2 (255); -- DATE
|
||
v_ins_deel_aanmaak_d DATE;
|
||
v_ins_deel_vervaldatum VARCHAR2 (255); -- DATE
|
||
v_ins_deel_vervaldatum_d DATE;
|
||
v_ins_deel_aantal VARCHAR2 (255); -- N8,2
|
||
v_ins_deel_aantal_n NUMBER(8, 2);
|
||
v_file_index NUMBER;
|
||
v_bestaande_objectketen NUMBER (10);
|
||
v_bestaande_objectcode NUMBER (10);
|
||
|
||
|
||
-- Overige velden:
|
||
CURSOR c1
|
||
IS
|
||
SELECT *
|
||
FROM fac_imp_file
|
||
WHERE fac_import_key = p_import_key
|
||
ORDER BY fac_imp_file_index;
|
||
|
||
-- LET OP!!! Dit is/was in DB39 op srtkenmerk_key. Is voor DB40 omgezet naar kenmerk_key. Zie ook in FAC_PACF.SRC (fac_import_ins)
|
||
---- DE AAXX met de hieronder aangepast procedure kan/moet dus pas vanaf 2021.1 meegeleverd worden!!!
|
||
--
|
||
-- Controleer tijdens import-fase alleen op het bestaan van een kenmerk met de meegegeven omschrijving of kenmerk key.
|
||
-- De omschrijving (header van kolom) kan de omschrijving zijn van het kenmerksoort of het kenmerk.
|
||
-- De omschrijving van het kenmerksoort kan namelijk overruled worden door de omschrijving van het kenmerk.
|
||
-- Daarnaast kan hetzelfde kenmerk vaker voorkomen voor verschillende groepen.
|
||
-- Of het kenmerksoort/kenmerk wel is gedefinieerd voor de betreffende
|
||
-- object-discipline/groep/soort, volgt pas tijdens de update-fase)!
|
||
--
|
||
-- p_kw is bijvoorbeeld 'Parkeercode', 'Parkeercode|3', 234 of 234|3 waarbij de tweede en laatste in groep 3 zitten
|
||
-- het resultaat is NULL (als niet gevonden) of Parkeercode|3 of 234|3 voor kenmer_key 234 in groep 3
|
||
-- Als geen groep is meegegeven dan wordt 'Parkeercode|0' opgeleverd (de default groep)
|
||
FUNCTION bepaal_kenmerk (p_kw IN VARCHAR)
|
||
RETURN VARCHAR
|
||
IS
|
||
v_kenmerk_key NUMBER;
|
||
v_kenmerk_groep NUMBER;
|
||
v_kw VARCHAR(250);
|
||
BEGIN
|
||
v_kenmerk_groep := 0;
|
||
v_kw := p_kw;
|
||
IF INSTR (v_kw, '|') > 1
|
||
THEN
|
||
v_kenmerk_groep := SUBSTR (v_kw, INSTR (v_kw, '|') + 1);
|
||
v_kw := SUBSTR (v_kw, 1, INSTR (v_kw, '|') - 1);
|
||
END IF;
|
||
|
||
IF fac.safe_to_number (v_kw) IS NULL
|
||
THEN -- kenmerkwaarde is alfanumeriek (dus omschrijving)!
|
||
SELECT MIN(k.ins_kenmerk_key)
|
||
INTO v_kenmerk_key
|
||
FROM ins_v_aanwezigkenmerk k,
|
||
ins_v_aanwezigsrtkenmerk sk
|
||
WHERE k.ins_srtkenmerk_key = sk.ins_srtkenmerk_key
|
||
AND k.ins_kenmerk_groep = v_kenmerk_groep
|
||
AND COALESCE(UPPER(k.ins_kenmerk_omschrijving), sk.ins_srtkenmerk_upper) = UPPER(v_kw)
|
||
AND sk.ins_srtkenmerk_kenmerktype IN ('C', 'D', 'N', 'R', 'S', 'X', 'B', 'V');
|
||
ELSE -- kenmerkwaarde is numeriek (dus key)!
|
||
SELECT k.ins_kenmerk_key
|
||
INTO v_kenmerk_key
|
||
FROM ins_v_aanwezigkenmerk k,
|
||
ins_v_aanwezigsrtkenmerk sk
|
||
WHERE k.ins_srtkenmerk_key = sk.ins_srtkenmerk_key
|
||
AND k.ins_kenmerk_groep = v_kenmerk_groep
|
||
AND k.ins_kenmerk_key = fac.safe_to_number (v_kw)
|
||
AND sk.ins_srtkenmerk_kenmerktype IN ('C', 'D', 'N', 'R', 'S', 'X', 'B', 'V');
|
||
END IF;
|
||
|
||
IF v_kenmerk_key IS NULL
|
||
THEN
|
||
RETURN NULL;
|
||
ELSE
|
||
-- Er is een kenmerksoort of kenmerk aanwezig met de omschrijving/kenmerk_key (v_kw)
|
||
RETURN v_kw || '|' || TO_CHAR(v_kenmerk_groep);
|
||
END IF;
|
||
EXCEPTION
|
||
WHEN NO_DATA_FOUND
|
||
THEN
|
||
IF p_kw IS NULL OR UPPER (p_kw) LIKE 'KENMERK%'
|
||
THEN
|
||
RETURN NULL;
|
||
ELSE
|
||
fac.imp_writelog (p_import_key,
|
||
'W',
|
||
'Fout bij bepalen kenmerk [' || p_kw || ']',
|
||
'Bestaat niet of type ongeldig');
|
||
COMMIT;
|
||
RETURN NULL;
|
||
END IF;
|
||
END;
|
||
|
||
BEGIN
|
||
-- Eerst opruiming
|
||
DELETE FROM fac_imp_ins;
|
||
|
||
COMMIT;
|
||
|
||
v_count_tot := 0;
|
||
v_count_import := 0;
|
||
header_is_valid := 0;
|
||
|
||
FOR rec1 IN c1
|
||
LOOP
|
||
BEGIN
|
||
v_newline := rec1.fac_imp_file_line;
|
||
v_file_index := rec1.fac_imp_file_index;
|
||
v_errormsg := 'Fout bij opvragen importregel';
|
||
v_aanduiding := '';
|
||
v_ongeldig := 0;
|
||
-- Lees alle veldwaarden
|
||
fac.imp_getfield (v_newline, c_delim, v_ins_discipline_omschrijving);
|
||
fac.imp_getfield (v_newline, c_delim, v_ins_srtgroep_omschrijving);
|
||
fac.imp_getfield (v_newline, c_delim, v_ins_srtdeel_code);
|
||
fac.imp_getfield (v_newline, c_delim, v_ins_srtdeel_omschrijving);
|
||
fac.imp_getfield (v_newline, c_delim, v_ins_deel_omschrijving);
|
||
fac.imp_getfield (v_newline, c_delim, v_ins_deel_opmerking);
|
||
fac.imp_getfield (v_newline, c_delim, v_alg_locatie_code);
|
||
fac.imp_getfield (v_newline, c_delim, v_alg_gebouw_code);
|
||
fac.imp_getfield (v_newline, c_delim, v_alg_verdieping_volgnr);
|
||
fac.imp_getfield (v_newline, c_delim, v_alg_ruimte_nr);
|
||
fac.imp_getfield (v_newline, c_delim, v_ins_deel_aanmaak);
|
||
fac.imp_getfield (v_newline, c_delim, v_ins_deel_vervaldatum);
|
||
fac.imp_getfield (v_newline, c_delim, v_ins_deel_aantal);
|
||
fac.imp_getfield (v_newline, c_delim, v_ins_kenmerkwaarde1);
|
||
fac.imp_getfield (v_newline, c_delim, v_ins_kenmerkwaarde2);
|
||
fac.imp_getfield (v_newline, c_delim, v_ins_kenmerkwaarde3);
|
||
fac.imp_getfield (v_newline, c_delim, v_ins_kenmerkwaarde4);
|
||
fac.imp_getfield (v_newline, c_delim, v_ins_kenmerkwaarde5);
|
||
fac.imp_getfield (v_newline, c_delim, v_ins_kenmerkwaarde6);
|
||
fac.imp_getfield (v_newline, c_delim, v_ins_kenmerkwaarde7);
|
||
fac.imp_getfield (v_newline, c_delim, v_ins_kenmerkwaarde8);
|
||
fac.imp_getfield (v_newline, c_delim, v_ins_kenmerkwaarde9);
|
||
fac.imp_getfield (v_newline, c_delim, v_ins_kenmerkwaarde10);
|
||
fac.imp_getfield (v_newline, c_delim, v_ins_kenmerkwaarde11);
|
||
fac.imp_getfield (v_newline, c_delim, v_ins_kenmerkwaarde12);
|
||
fac.imp_getfield (v_newline, c_delim, v_ins_kenmerkwaarde13);
|
||
fac.imp_getfield (v_newline, c_delim, v_ins_kenmerkwaarde14);
|
||
fac.imp_getfield (v_newline, c_delim, v_ins_kenmerkwaarde15);
|
||
fac.imp_getfield (v_newline, c_delim, v_ins_kenmerkwaarde16);
|
||
fac.imp_getfield (v_newline, c_delim, v_ins_kenmerkwaarde17);
|
||
fac.imp_getfield (v_newline, c_delim, v_ins_kenmerkwaarde18);
|
||
fac.imp_getfield (v_newline, c_delim, v_ins_kenmerkwaarde19);
|
||
fac.imp_getfield (v_newline, c_delim, v_ins_kenmerkwaarde20);
|
||
|
||
v_aanduiding :=
|
||
'['
|
||
|| v_ins_discipline_omschrijving
|
||
|| '|'
|
||
|| v_ins_srtgroep_omschrijving
|
||
|| '|'
|
||
|| v_ins_srtdeel_code
|
||
|| '|'
|
||
|| v_ins_srtdeel_omschrijving
|
||
|| '|'
|
||
|| v_ins_deel_omschrijving
|
||
|| '] ';
|
||
|
||
|
||
-- HEADER NIEUW HEYDAY
|
||
---- disciplineomschrijving;groepsoortomschrijving;objectsoortcode;objectsoortomschrijving;objectidentificatie;objectopmerking;locatiecode;gebouwcode;bouwlaagvolgnummer;ruimtenummer;
|
||
----- ingangsdatum;Vervaldatum;Aantal;Plaats;Aantal v2;Bouwjaar;Capaciteit;Datum laatste asset survey;Fabricaat;Gewenste Conditie;Conditie nulmeting;Kritische asset;Referentienummer leverancier;Type;Eenheid;Garantie tot datum;Garantiepartij;kenmerk15;kenmerk16;kenmerk17;kenmerk18;kenmerk19;kenmerk20
|
||
|
||
-- Ik controleer of ik een geldige header heb, dat is: in de juiste kolommen
|
||
-- de juiste kolomkop. Ik controleer daarbij alle NIET-kenmerk kolommen!
|
||
-- Ik negeer alles totdat ik een geldige header ben gepasseerd.
|
||
IF (header_is_valid = 0)
|
||
THEN
|
||
IF UPPER (v_ins_discipline_omschrijving) = 'DISCIPLINEOMSCHRIJVING'
|
||
AND UPPER (v_ins_srtgroep_omschrijving) = 'GROEPSOORTOMSCHRIJVING'
|
||
AND UPPER (v_ins_srtdeel_code) = 'OBJECTSOORTCODE'
|
||
AND UPPER (v_ins_srtdeel_omschrijving) = 'OBJECTSOORTOMSCHRIJVING'
|
||
AND UPPER (v_ins_deel_omschrijving) = 'OBJECTIDENTIFICATIE'
|
||
AND UPPER (v_ins_deel_opmerking) = 'OBJECTOPMERKING'
|
||
AND UPPER (v_alg_locatie_code) = 'LOCATIECODE'
|
||
AND UPPER (v_alg_gebouw_code) = 'GEBOUWCODE'
|
||
AND UPPER (v_alg_verdieping_volgnr) = 'BOUWLAAGVOLGNUMMER'
|
||
AND UPPER (v_alg_ruimte_nr) = 'RUIMTENUMMER'
|
||
AND UPPER (v_ins_deel_aanmaak) = 'INGANGSDATUM'
|
||
AND UPPER (v_ins_deel_vervaldatum) = 'VERVALDATUM'
|
||
AND UPPER (v_ins_deel_aantal) = 'AANTAL'
|
||
THEN
|
||
v_ins_kenmerk_key1 := bepaal_kenmerk (v_ins_kenmerkwaarde1);
|
||
v_ins_kenmerk_key2 := bepaal_kenmerk (v_ins_kenmerkwaarde2);
|
||
v_ins_kenmerk_key3 := bepaal_kenmerk (v_ins_kenmerkwaarde3);
|
||
v_ins_kenmerk_key4 := bepaal_kenmerk (v_ins_kenmerkwaarde4);
|
||
v_ins_kenmerk_key5 := bepaal_kenmerk (v_ins_kenmerkwaarde5);
|
||
v_ins_kenmerk_key6 := bepaal_kenmerk (v_ins_kenmerkwaarde6);
|
||
v_ins_kenmerk_key7 := bepaal_kenmerk (v_ins_kenmerkwaarde7);
|
||
v_ins_kenmerk_key8 := bepaal_kenmerk (v_ins_kenmerkwaarde8);
|
||
v_ins_kenmerk_key9 := bepaal_kenmerk (v_ins_kenmerkwaarde9);
|
||
v_ins_kenmerk_key10 := bepaal_kenmerk (v_ins_kenmerkwaarde10);
|
||
v_ins_kenmerk_key11 := bepaal_kenmerk (v_ins_kenmerkwaarde11);
|
||
v_ins_kenmerk_key12 := bepaal_kenmerk (v_ins_kenmerkwaarde12);
|
||
v_ins_kenmerk_key13 := bepaal_kenmerk (v_ins_kenmerkwaarde13);
|
||
v_ins_kenmerk_key14 := bepaal_kenmerk (v_ins_kenmerkwaarde14);
|
||
v_ins_kenmerk_key15 := bepaal_kenmerk (v_ins_kenmerkwaarde15);
|
||
v_ins_kenmerk_key16 := bepaal_kenmerk (v_ins_kenmerkwaarde16);
|
||
v_ins_kenmerk_key17 := bepaal_kenmerk (v_ins_kenmerkwaarde17);
|
||
v_ins_kenmerk_key18 := bepaal_kenmerk (v_ins_kenmerkwaarde18);
|
||
v_ins_kenmerk_key19 := bepaal_kenmerk (v_ins_kenmerkwaarde19);
|
||
v_ins_kenmerk_key20 := bepaal_kenmerk (v_ins_kenmerkwaarde20);
|
||
|
||
header_is_valid := 1;
|
||
END IF;
|
||
ELSE
|
||
v_count_tot := v_count_tot + 1;
|
||
-- Controleer alle veldwaarden
|
||
v_errormsg := 'Disciplineomschrijving ongeldig';
|
||
v_ins_discipline_omschrijving :=
|
||
TRIM (v_ins_discipline_omschrijving);
|
||
|
||
IF v_ins_discipline_omschrijving IS NULL
|
||
OR LENGTH (v_ins_discipline_omschrijving) > 60
|
||
THEN
|
||
fac.imp_writelog (p_import_key,
|
||
'W',
|
||
v_aanduiding || v_errormsg,
|
||
'Regel wordt overgeslagen');
|
||
v_ongeldig := 1;
|
||
END IF;
|
||
|
||
--
|
||
v_errormsg := 'Groepsoortomschrijving ongeldig';
|
||
v_ins_srtgroep_omschrijving := TRIM (v_ins_srtgroep_omschrijving);
|
||
|
||
IF v_ins_srtgroep_omschrijving IS NULL
|
||
OR LENGTH (v_ins_srtgroep_omschrijving) > 60
|
||
THEN
|
||
fac.imp_writelog (p_import_key,
|
||
'W',
|
||
v_aanduiding || v_errormsg,
|
||
'Regel wordt overgeslagen');
|
||
v_ongeldig := 1;
|
||
END IF;
|
||
|
||
--
|
||
v_errormsg := 'Objectsoortcode ongeldig';
|
||
v_ins_srtdeel_code := TRIM (v_ins_srtdeel_code);
|
||
|
||
IF v_ins_srtdeel_code IS NULL OR LENGTH (v_ins_srtdeel_code) > 10
|
||
THEN
|
||
fac.imp_writelog (p_import_key,
|
||
'W',
|
||
v_aanduiding || v_errormsg,
|
||
'Regel wordt overgeslagen');
|
||
v_ongeldig := 1;
|
||
END IF;
|
||
|
||
--
|
||
v_errormsg := 'Objectsoortomschrijving ongeldig';
|
||
v_ins_srtdeel_omschrijving := TRIM (v_ins_srtdeel_omschrijving);
|
||
|
||
IF v_ins_srtdeel_omschrijving IS NULL
|
||
OR LENGTH (v_ins_srtdeel_omschrijving) > 100
|
||
THEN
|
||
fac.imp_writelog (p_import_key,
|
||
'W',
|
||
v_aanduiding || v_errormsg,
|
||
'Regel wordt overgeslagen');
|
||
v_ongeldig := 1;
|
||
END IF;
|
||
|
||
--
|
||
v_errormsg := 'Objectomschrijving ongeldig';
|
||
v_ins_deel_omschrijving := TRIM (v_ins_deel_omschrijving);
|
||
|
||
IF v_ins_deel_omschrijving IS NULL
|
||
OR LENGTH (v_ins_deel_omschrijving) > 60
|
||
THEN
|
||
fac.imp_writelog (p_import_key,
|
||
'W',
|
||
v_aanduiding || v_errormsg,
|
||
'Regel wordt overgeslagen');
|
||
v_ongeldig := 1;
|
||
END IF;
|
||
|
||
v_errormsg := 'Objectopmerking ongeldig';
|
||
v_ins_deel_opmerking := TRIM (v_ins_deel_opmerking);
|
||
|
||
IF LENGTH (v_ins_deel_opmerking) > 320
|
||
THEN
|
||
v_ins_deel_opmerking := SUBSTR (v_ins_deel_opmerking, 1, 320);
|
||
fac.imp_writelog (
|
||
p_import_key,
|
||
'W',
|
||
v_aanduiding || v_errormsg,
|
||
'Objectopmerking wordt afgebroken tot ['
|
||
|| v_ins_deel_opmerking
|
||
|| ']'
|
||
);
|
||
END IF;
|
||
|
||
--
|
||
v_errormsg := 'Locatiecode ongeldig';
|
||
v_alg_locatie_code := TRIM (v_alg_locatie_code);
|
||
|
||
IF LENGTH (v_alg_locatie_code) > 10
|
||
THEN
|
||
v_alg_locatie_code := SUBSTR (v_alg_locatie_code, 1, 10);
|
||
fac.imp_writelog (
|
||
p_import_key,
|
||
'W',
|
||
v_aanduiding || v_errormsg,
|
||
'Locatiecode wordt afgebroken tot ['
|
||
|| v_alg_locatie_code
|
||
|| ']'
|
||
);
|
||
END IF;
|
||
|
||
--
|
||
v_errormsg := 'Gebouwcode ongeldig';
|
||
v_alg_gebouw_code := TRIM (v_alg_gebouw_code);
|
||
|
||
IF LENGTH (v_alg_gebouw_code) > 12
|
||
THEN
|
||
v_alg_gebouw_code := SUBSTR (v_alg_gebouw_code, 1, 12);
|
||
fac.imp_writelog (
|
||
p_import_key,
|
||
'W',
|
||
v_aanduiding || v_errormsg,
|
||
'Gebouwcode wordt afgebroken tot ['
|
||
|| v_alg_gebouw_code
|
||
|| ']'
|
||
);
|
||
END IF;
|
||
|
||
--
|
||
v_errormsg := 'Bouwlaagvolgnummer ongeldig';
|
||
v_alg_verdieping_volgnr := TRIM (v_alg_verdieping_volgnr);
|
||
v_alg_verdieping_volgnr_n := NULL;
|
||
|
||
IF (v_alg_verdieping_volgnr IS NOT NULL)
|
||
THEN
|
||
v_alg_verdieping_volgnr_n :=
|
||
ROUND (fac.safe_to_number (v_alg_verdieping_volgnr));
|
||
|
||
IF v_alg_verdieping_volgnr_n NOT BETWEEN -999 AND 999
|
||
THEN
|
||
v_ongeldig := 1;
|
||
fac.imp_writelog (p_import_key,
|
||
'W',
|
||
v_aanduiding || v_errormsg,
|
||
'Regel wordt overgeslagen!');
|
||
ELSE
|
||
v_alg_verdieping_volgnr_n :=
|
||
fac.safe_to_number (v_alg_verdieping_volgnr);
|
||
END IF;
|
||
END IF;
|
||
|
||
--
|
||
v_errormsg := 'Ruimtenummer ongeldig';
|
||
v_alg_ruimte_nr := TRIM (v_alg_ruimte_nr);
|
||
|
||
IF LENGTH (v_alg_ruimte_nr) > 10
|
||
THEN
|
||
v_alg_ruimte_nr := SUBSTR (v_alg_ruimte_nr, 1, 10);
|
||
fac.imp_writelog (
|
||
p_import_key,
|
||
'W',
|
||
v_aanduiding || v_errormsg,
|
||
'Ruimtenummer wordt afgebroken tot ['
|
||
|| v_alg_ruimte_nr
|
||
|| ']'
|
||
);
|
||
END IF;
|
||
|
||
--
|
||
v_errormsg := 'Aantal ongeldig; maximale grootte 999999.99';
|
||
v_ins_deel_aantal := TRIM (v_ins_deel_aantal);
|
||
v_ins_deel_aantal := REPLACE (v_ins_deel_aantal, ',', '.');
|
||
v_ins_deel_aantal_n := NULL;
|
||
|
||
IF (v_ins_deel_aantal IS NOT NULL AND fac.getSetting('ins_explode_objects') = 0)
|
||
THEN
|
||
IF (fac.safe_to_number (v_ins_deel_aantal) IS NULL)
|
||
THEN
|
||
v_ongeldig := 1;
|
||
fac.imp_writelog (p_import_key,
|
||
'W',
|
||
v_aanduiding || v_errormsg,
|
||
'Regel wordt overgeslagen!');
|
||
ELSE
|
||
v_ins_deel_aantal_n := fac.safe_to_number (v_ins_deel_aantal);
|
||
END IF;
|
||
ELSE
|
||
v_ins_deel_aantal_n := 0 ; -- Als de aantal-waarde in kolom leeg wordt gelaten dan vullen we deze met 0. Bij update gaan we dit conform afspraak vullen met juiste aantal-waarde.
|
||
END IF;
|
||
|
||
--
|
||
v_errormsg := 'Aanmaakdatum ongeldig';
|
||
IF v_ins_deel_aanmaak IS NOT NULL
|
||
THEN
|
||
v_ins_deel_aanmaak_d :=
|
||
TO_DATE (v_ins_deel_aanmaak, 'dd-mm-yyyy');
|
||
|
||
IF fac.safe_to_number(to_char(v_ins_deel_aanmaak_d, 'yyyy'))<1900 THEN
|
||
v_ongeldig := 1;
|
||
fac.imp_writelog (p_import_key,
|
||
'W',
|
||
v_aanduiding || v_errormsg,
|
||
'Let op, verkeerde datumnotatie!');
|
||
END IF;
|
||
|
||
ELSE
|
||
v_ins_deel_aanmaak_d := NULL;
|
||
END IF;
|
||
|
||
--
|
||
v_errormsg := 'Vervaldatum ongeldig';
|
||
IF v_ins_deel_vervaldatum IS NOT NULL
|
||
THEN
|
||
v_ins_deel_vervaldatum_d :=
|
||
TO_DATE (v_ins_deel_vervaldatum, 'dd-mm-yyyy');
|
||
|
||
IF fac.safe_to_number(to_char(v_ins_deel_vervaldatum_d, 'yyyy'))<1900 THEN
|
||
v_ongeldig := 1;
|
||
fac.imp_writelog (p_import_key,
|
||
'W',
|
||
v_aanduiding || v_errormsg,
|
||
'Let op, verkeerde datumnotatie!');
|
||
END IF;
|
||
|
||
ELSE
|
||
v_ins_deel_vervaldatum_d := NULL;
|
||
END IF;
|
||
|
||
-- De rest alleen ff trimmen.
|
||
v_ins_kenmerkwaarde1 := TRIM (v_ins_kenmerkwaarde1);
|
||
v_ins_kenmerkwaarde2 := TRIM (v_ins_kenmerkwaarde2);
|
||
v_ins_kenmerkwaarde3 := TRIM (v_ins_kenmerkwaarde3);
|
||
v_ins_kenmerkwaarde4 := TRIM (v_ins_kenmerkwaarde4);
|
||
v_ins_kenmerkwaarde5 := TRIM (v_ins_kenmerkwaarde5);
|
||
v_ins_kenmerkwaarde6 := TRIM (v_ins_kenmerkwaarde6);
|
||
v_ins_kenmerkwaarde7 := TRIM (v_ins_kenmerkwaarde7);
|
||
v_ins_kenmerkwaarde8 := TRIM (v_ins_kenmerkwaarde8);
|
||
v_ins_kenmerkwaarde9 := TRIM (v_ins_kenmerkwaarde9);
|
||
v_ins_kenmerkwaarde10 := TRIM (v_ins_kenmerkwaarde10);
|
||
v_ins_kenmerkwaarde11 := TRIM (v_ins_kenmerkwaarde11);
|
||
v_ins_kenmerkwaarde12 := TRIM (v_ins_kenmerkwaarde12);
|
||
v_ins_kenmerkwaarde13 := TRIM (v_ins_kenmerkwaarde13);
|
||
v_ins_kenmerkwaarde14 := TRIM (v_ins_kenmerkwaarde14);
|
||
v_ins_kenmerkwaarde15 := TRIM (v_ins_kenmerkwaarde15);
|
||
v_ins_kenmerkwaarde16 := TRIM (v_ins_kenmerkwaarde16);
|
||
v_ins_kenmerkwaarde17 := TRIM (v_ins_kenmerkwaarde17);
|
||
v_ins_kenmerkwaarde18 := TRIM (v_ins_kenmerkwaarde18);
|
||
v_ins_kenmerkwaarde19 := TRIM (v_ins_kenmerkwaarde19);
|
||
v_ins_kenmerkwaarde20 := TRIM (v_ins_kenmerkwaarde20);
|
||
|
||
|
||
-- Controle nieuwe objectcode en keten
|
||
v_errormsg := 'Controle Objectidentificatie en keten';
|
||
|
||
IF v_ongeldig = 0
|
||
THEN
|
||
v_bestaande_objectketen := 0;
|
||
v_bestaande_objectcode := 0 ;
|
||
|
||
SELECT count(*)
|
||
INTO v_bestaande_objectketen
|
||
FROM aaxx_v_dwh_ins_object v, ins_deel d
|
||
WHERE UPPER (v_ins_discipline_omschrijving) =
|
||
UPPER (v.discipline_omschrijving)
|
||
AND UPPER (v_ins_srtgroep_omschrijving) =
|
||
UPPER (v.groep_omschrijving)
|
||
AND UPPER (v_ins_srtdeel_omschrijving) =
|
||
UPPER (v.objectsoort_omschrijving)
|
||
AND UPPER (v_ins_srtdeel_code) =
|
||
UPPER (v.objectsoort_code)
|
||
AND UPPER (v_ins_deel_omschrijving) =
|
||
UPPER (v.identificatie)
|
||
AND v.koppel_type = 'Ruimte'
|
||
AND v.ins_deel_key = d.ins_deel_key
|
||
AND v.ruimte_key = d.ins_alg_ruimte_key
|
||
AND d.ins_deel_verwijder IS NULL ;
|
||
|
||
SELECT count(*)
|
||
INTO v_bestaande_objectcode
|
||
FROM aaxx_v_dwh_ins_object v
|
||
WHERE UPPER (v_ins_deel_omschrijving) =
|
||
UPPER (v.identificatie) ;
|
||
|
||
IF v_bestaande_objectketen=0 AND v_bestaande_objectcode > 0 THEN -- Nieuwe objectketen ECHTER de objectcode bestaat al. Klopt niet, dus we gaan waarschuwen en NIET inlezen..
|
||
v_ongeldig := 1;
|
||
fac.imp_writelog (p_import_key,
|
||
'W',
|
||
v_aanduiding || v_errormsg,
|
||
'Nieuwe objectketen in CSV aangeboden, ECHTER de objectidentificatie bestaat al in Facilitor onder andere keten!. Record wordt niet ingelezen');
|
||
END IF;
|
||
|
||
END IF;
|
||
|
||
-- Insert geformatteerde import record
|
||
IF v_ongeldig = 0
|
||
THEN
|
||
BEGIN
|
||
v_errormsg := 'Fout bij wegschrijven importregel';
|
||
|
||
-- Als uit kenmerkheader een geldige kenmerksoort-key volgt,
|
||
-- dan is kenmerkwaarde<n> gevuld met <key>=<waarde>; zoniet,
|
||
-- dan is kenmerkwaarde<n> gevuld met <waarde>!
|
||
-- NB. Een NULL-waarde resulteert NIET in het wissen van een
|
||
-- kenmerkveld (bijwerken kan wel, maar wissen dus niet)!
|
||
INSERT INTO fac_imp_ins (
|
||
ins_discipline_omschrijving,
|
||
-- ins_discipline_kostensoort,
|
||
ins_srtgroep_omschrijving,
|
||
ins_srtdeel_code,
|
||
ins_srtdeel_omschrijving,
|
||
ins_deel_omschrijving,
|
||
ins_deel_opmerking,
|
||
reserveerbaar,
|
||
alg_locatie_code,
|
||
alg_gebouw_code,
|
||
alg_verdieping_volgnr,
|
||
alg_ruimte_nr,
|
||
res_deel_alg_level,
|
||
ins_kenmerkwaarde1,
|
||
ins_kenmerkwaarde2,
|
||
ins_kenmerkwaarde3,
|
||
ins_kenmerkwaarde4,
|
||
ins_kenmerkwaarde5,
|
||
ins_kenmerkwaarde6,
|
||
ins_kenmerkwaarde7,
|
||
ins_kenmerkwaarde8,
|
||
ins_kenmerkwaarde9,
|
||
ins_kenmerkwaarde10,
|
||
ins_kenmerkwaarde11,
|
||
ins_kenmerkwaarde12,
|
||
ins_kenmerkwaarde13,
|
||
ins_kenmerkwaarde14,
|
||
ins_kenmerkwaarde15,
|
||
ins_kenmerkwaarde16,
|
||
ins_kenmerkwaarde17,
|
||
ins_kenmerkwaarde18,
|
||
ins_kenmerkwaarde19,
|
||
ins_kenmerkwaarde20,
|
||
ins_deel_aanmaak,
|
||
ins_deel_vervaldatum,
|
||
ins_deel_aantal
|
||
)
|
||
VALUES (
|
||
v_ins_discipline_omschrijving,
|
||
v_ins_srtgroep_omschrijving,
|
||
v_ins_srtdeel_code,
|
||
v_ins_srtdeel_omschrijving,
|
||
v_ins_deel_omschrijving,
|
||
v_ins_deel_opmerking,
|
||
0, -- v_reserveerbaar_n, --
|
||
v_alg_locatie_code,
|
||
v_alg_gebouw_code,
|
||
v_alg_verdieping_volgnr_n,
|
||
v_alg_ruimte_nr,
|
||
-1, -- v_res_deel_alg_level_n,
|
||
DECODE (v_ins_kenmerk_key1, NULL, v_ins_kenmerkwaarde1, TO_CHAR (v_ins_kenmerk_key1) || '=' || SUBSTR (v_ins_kenmerkwaarde1, 1, 3900)),
|
||
DECODE (v_ins_kenmerk_key2, NULL, v_ins_kenmerkwaarde2, TO_CHAR (v_ins_kenmerk_key2) || '=' || SUBSTR (v_ins_kenmerkwaarde2, 1, 3900)),
|
||
DECODE (v_ins_kenmerk_key3, NULL, v_ins_kenmerkwaarde3, TO_CHAR (v_ins_kenmerk_key3) || '=' || SUBSTR (v_ins_kenmerkwaarde3, 1, 3900)),
|
||
DECODE (v_ins_kenmerk_key4, NULL, v_ins_kenmerkwaarde4, TO_CHAR (v_ins_kenmerk_key4) || '=' || SUBSTR (v_ins_kenmerkwaarde4, 1, 3900)),
|
||
DECODE (v_ins_kenmerk_key5, NULL, v_ins_kenmerkwaarde5, TO_CHAR (v_ins_kenmerk_key5) || '=' || SUBSTR (v_ins_kenmerkwaarde5, 1, 3900)),
|
||
DECODE (v_ins_kenmerk_key6, NULL, v_ins_kenmerkwaarde6, TO_CHAR (v_ins_kenmerk_key6) || '=' || SUBSTR (v_ins_kenmerkwaarde6, 1, 3900)),
|
||
DECODE (v_ins_kenmerk_key7, NULL, v_ins_kenmerkwaarde7, TO_CHAR (v_ins_kenmerk_key7) || '=' || SUBSTR (v_ins_kenmerkwaarde7, 1, 3900)),
|
||
DECODE (v_ins_kenmerk_key8, NULL, v_ins_kenmerkwaarde8, TO_CHAR (v_ins_kenmerk_key8) || '=' || SUBSTR (v_ins_kenmerkwaarde8, 1, 3900)),
|
||
DECODE (v_ins_kenmerk_key9, NULL, v_ins_kenmerkwaarde9, TO_CHAR (v_ins_kenmerk_key9) || '=' || SUBSTR (v_ins_kenmerkwaarde9, 1, 3900)),
|
||
DECODE (v_ins_kenmerk_key10, NULL, v_ins_kenmerkwaarde10, TO_CHAR (v_ins_kenmerk_key10) || '=' || SUBSTR (v_ins_kenmerkwaarde10, 1, 3900)),
|
||
DECODE (v_ins_kenmerk_key11, NULL, v_ins_kenmerkwaarde11, TO_CHAR (v_ins_kenmerk_key11) || '=' || SUBSTR (v_ins_kenmerkwaarde11, 1, 3900)),
|
||
DECODE (v_ins_kenmerk_key12, NULL, v_ins_kenmerkwaarde12, TO_CHAR (v_ins_kenmerk_key12) || '=' || SUBSTR (v_ins_kenmerkwaarde12, 1, 3900)),
|
||
DECODE (v_ins_kenmerk_key13, NULL, v_ins_kenmerkwaarde13, TO_CHAR (v_ins_kenmerk_key13) || '=' || SUBSTR (v_ins_kenmerkwaarde13, 1, 3900)),
|
||
DECODE (v_ins_kenmerk_key14, NULL, v_ins_kenmerkwaarde14, TO_CHAR (v_ins_kenmerk_key14) || '=' || SUBSTR (v_ins_kenmerkwaarde14, 1, 3900)),
|
||
DECODE (v_ins_kenmerk_key15, NULL, v_ins_kenmerkwaarde15, TO_CHAR (v_ins_kenmerk_key15) || '=' || SUBSTR (v_ins_kenmerkwaarde15, 1, 3900)),
|
||
DECODE (v_ins_kenmerk_key16, NULL, v_ins_kenmerkwaarde16, TO_CHAR (v_ins_kenmerk_key16) || '=' || SUBSTR (v_ins_kenmerkwaarde16, 1, 3900)),
|
||
DECODE (v_ins_kenmerk_key17, NULL, v_ins_kenmerkwaarde17, TO_CHAR (v_ins_kenmerk_key17) || '=' || SUBSTR (v_ins_kenmerkwaarde17, 1, 3900)),
|
||
DECODE (v_ins_kenmerk_key18, NULL, v_ins_kenmerkwaarde18, TO_CHAR (v_ins_kenmerk_key18) || '=' || SUBSTR (v_ins_kenmerkwaarde18, 1, 3900)),
|
||
DECODE (v_ins_kenmerk_key19, NULL, v_ins_kenmerkwaarde19, TO_CHAR (v_ins_kenmerk_key19) || '=' || SUBSTR (v_ins_kenmerkwaarde19, 1, 3900)),
|
||
DECODE (v_ins_kenmerk_key20, NULL, v_ins_kenmerkwaarde20, TO_CHAR (v_ins_kenmerk_key20) || '=' || SUBSTR (v_ins_kenmerkwaarde20, 1, 3900)),
|
||
v_ins_deel_aanmaak_d,
|
||
v_ins_deel_vervaldatum_d,
|
||
v_ins_deel_aantal_n
|
||
);
|
||
|
||
COMMIT;
|
||
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,
|
||
'W',
|
||
v_aanduiding || v_errormsg,
|
||
'');
|
||
COMMIT;
|
||
END;
|
||
END IF;
|
||
END IF;
|
||
|
||
|
||
EXCEPTION
|
||
WHEN OTHERS
|
||
THEN
|
||
v_ongeldig := 1;
|
||
oracle_err_num := SQLCODE;
|
||
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
|
||
v_errormsg :=
|
||
v_errorhint
|
||
|| ' ORACLE (error '
|
||
|| oracle_err_num
|
||
|| '/'
|
||
|| oracle_err_mes
|
||
|| ')';
|
||
fac.imp_writelog (p_import_key,
|
||
'E',
|
||
v_aanduiding || v_errormsg,
|
||
'Regel wordt overgeslagen!'
|
||
);
|
||
COMMIT;
|
||
|
||
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!');
|
||
ELSE
|
||
fac.imp_writelog (
|
||
p_import_key,
|
||
'S',
|
||
'Objecten/aantal ingelezen importregels: ' || TO_CHAR (v_count_tot),
|
||
''
|
||
);
|
||
fac.imp_writelog (
|
||
p_import_key,
|
||
'S',
|
||
'Objecten/aantal ongeldige niet ingelezen importregels: '
|
||
|| TO_CHAR (v_count_tot - v_count_import),
|
||
''
|
||
);
|
||
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 objecten afgebroken! regel:' || v_file_index);
|
||
END aaxx_import_ins_assetman;
|
||
/
|
||
|
||
CREATE OR REPLACE PROCEDURE aaxx_update_ins_assetman (p_import_key IN NUMBER)
|
||
AS
|
||
|
||
CURSOR c_bestaand -- Aantal op huidige aantal ins_deel_key zetten
|
||
IS
|
||
SELECT DISTINCT d.ins_deel_key,
|
||
d.ins_deel_omschrijving,
|
||
i.ins_deel_aantal aantal_imp,
|
||
d.ins_deel_aantal aantal_ins
|
||
FROM fac_imp_ins i, aaxx_v_dwh_ins_object v, ins_deel d
|
||
WHERE UPPER (i.ins_discipline_omschrijving) =
|
||
UPPER (v.discipline_omschrijving)
|
||
AND UPPER (i.ins_srtgroep_omschrijving) = UPPER (v.groep_omschrijving)
|
||
AND UPPER (i.ins_srtdeel_omschrijving) =
|
||
UPPER (v.objectsoort_omschrijving)
|
||
AND UPPER (i.ins_srtdeel_code) = UPPER (v.objectsoort_code)
|
||
AND UPPER (i.ins_deel_omschrijving) = UPPER (v.identificatie)
|
||
AND v.koppel_type = 'Ruimte'
|
||
AND v.ins_deel_key = d.ins_deel_key
|
||
AND v.ruimte_key = d.ins_alg_ruimte_key
|
||
AND d.ins_deel_verwijder IS NULL
|
||
AND i.ins_deel_aantal = 0;
|
||
|
||
CURSOR c_nieuw -- aantal op 1
|
||
IS
|
||
SELECT i.ins_deel_omschrijving, i.ins_deel_aantal aantal_imp
|
||
FROM fac_imp_ins i
|
||
WHERE i.ins_deel_aantal = 0
|
||
AND i.ins_deel_omschrijving NOT IN
|
||
(SELECT DISTINCT d.ins_deel_omschrijving
|
||
FROM fac_imp_ins i, aaxx_v_dwh_ins_object v, ins_deel d
|
||
WHERE UPPER (i.ins_discipline_omschrijving) =
|
||
UPPER (v.discipline_omschrijving)
|
||
AND UPPER (i.ins_srtgroep_omschrijving) =
|
||
UPPER (v.groep_omschrijving)
|
||
AND UPPER (i.ins_srtdeel_omschrijving) =
|
||
UPPER (v.objectsoort_omschrijving)
|
||
AND UPPER (i.ins_srtdeel_code) =
|
||
UPPER (v.objectsoort_code)
|
||
AND UPPER (i.ins_deel_omschrijving) =
|
||
UPPER (v.identificatie)
|
||
AND v.koppel_type = 'Ruimte'
|
||
AND v.ins_deel_key = d.ins_deel_key
|
||
AND v.ruimte_key = d.ins_alg_ruimte_key
|
||
AND d.ins_deel_verwijder IS NULL
|
||
AND i.ins_deel_aantal = 0);
|
||
|
||
-- Alle niet gevulde kenmerken echt leegmaken, want anders worden ze met standaard update namelijk verwijderd.
|
||
-- p_srtkenmerkgroepwaarde = '234|1=37-ZB-DR' is gevuld..... -- p_srtkenmerkgroepwaarde = '234|1=' is LEEG maar moet ook echt op NULL
|
||
-- Voor HeyDay-upload geldt namelijk dat als het niet gevuld is, dan wordt er ook niets gewijzigd.
|
||
CURSOR c_del
|
||
IS
|
||
SELECT ins_deel_omschrijving, ins_kenmerkwaarde1, ins_kenmerkwaarde2, ins_kenmerkwaarde3, ins_kenmerkwaarde4, ins_kenmerkwaarde5, ins_kenmerkwaarde6, ins_kenmerkwaarde7, ins_kenmerkwaarde8, ins_kenmerkwaarde9, ins_kenmerkwaarde10,
|
||
ins_kenmerkwaarde11, ins_kenmerkwaarde12, ins_kenmerkwaarde13, ins_kenmerkwaarde14, ins_kenmerkwaarde15, ins_kenmerkwaarde16, ins_kenmerkwaarde17, ins_kenmerkwaarde18, ins_kenmerkwaarde19, ins_kenmerkwaarde20
|
||
FROM fac_imp_ins i ;
|
||
|
||
BEGIN
|
||
-- Starten met correctie op het aantal-veld.
|
||
--- Alle 0-waarden terugzetten naar ins_deel_aantal indien het bestaande objecten zijn..
|
||
FOR rec IN c_bestaand
|
||
LOOP
|
||
BEGIN
|
||
|
||
UPDATE fac_imp_ins i
|
||
SET i.ins_deel_aantal = rec.aantal_ins
|
||
WHERE i.ins_deel_omschrijving = rec.ins_deel_omschrijving ;
|
||
|
||
END;
|
||
END LOOP;
|
||
|
||
FOR rec IN c_nieuw
|
||
LOOP
|
||
BEGIN
|
||
|
||
UPDATE fac_imp_ins i
|
||
SET i.ins_deel_aantal = 1
|
||
WHERE i.ins_deel_omschrijving = rec.ins_deel_omschrijving ;
|
||
|
||
END;
|
||
END LOOP;
|
||
|
||
FOR rec IN c_del
|
||
LOOP
|
||
BEGIN
|
||
|
||
IF SUBSTR (rec.ins_kenmerkwaarde1, INSTR (rec.ins_kenmerkwaarde1, '=') + 1) IS NULL THEN
|
||
UPDATE fac_imp_ins i
|
||
SET i.ins_kenmerkwaarde1 = ''
|
||
WHERE i.ins_deel_omschrijving = rec.ins_deel_omschrijving ;
|
||
END IF;
|
||
|
||
IF SUBSTR (rec.ins_kenmerkwaarde2, INSTR (rec.ins_kenmerkwaarde2, '=') + 1) IS NULL THEN
|
||
UPDATE fac_imp_ins i
|
||
SET i.ins_kenmerkwaarde2 = ''
|
||
WHERE i.ins_deel_omschrijving = rec.ins_deel_omschrijving ;
|
||
END IF;
|
||
|
||
IF SUBSTR (rec.ins_kenmerkwaarde3, INSTR (rec.ins_kenmerkwaarde3, '=') + 1) IS NULL THEN
|
||
UPDATE fac_imp_ins i
|
||
SET i.ins_kenmerkwaarde3 = ''
|
||
WHERE i.ins_deel_omschrijving = rec.ins_deel_omschrijving ;
|
||
END IF;
|
||
|
||
IF SUBSTR (rec.ins_kenmerkwaarde4, INSTR (rec.ins_kenmerkwaarde4, '=') + 1) IS NULL THEN
|
||
UPDATE fac_imp_ins i
|
||
SET i.ins_kenmerkwaarde4 = ''
|
||
WHERE i.ins_deel_omschrijving = rec.ins_deel_omschrijving ;
|
||
END IF;
|
||
|
||
IF SUBSTR (rec.ins_kenmerkwaarde5, INSTR (rec.ins_kenmerkwaarde5, '=') + 1) IS NULL THEN
|
||
UPDATE fac_imp_ins i
|
||
SET i.ins_kenmerkwaarde5 = ''
|
||
WHERE i.ins_deel_omschrijving = rec.ins_deel_omschrijving ;
|
||
END IF;
|
||
|
||
IF SUBSTR (rec.ins_kenmerkwaarde6, INSTR (rec.ins_kenmerkwaarde6, '=') + 1) IS NULL THEN
|
||
UPDATE fac_imp_ins i
|
||
SET i.ins_kenmerkwaarde6 = ''
|
||
WHERE i.ins_deel_omschrijving = rec.ins_deel_omschrijving ;
|
||
END IF;
|
||
|
||
IF SUBSTR (rec.ins_kenmerkwaarde7, INSTR (rec.ins_kenmerkwaarde7, '=') + 1) IS NULL THEN
|
||
UPDATE fac_imp_ins i
|
||
SET i.ins_kenmerkwaarde7 = ''
|
||
WHERE i.ins_deel_omschrijving = rec.ins_deel_omschrijving ;
|
||
END IF;
|
||
|
||
IF SUBSTR (rec.ins_kenmerkwaarde8, INSTR (rec.ins_kenmerkwaarde8, '=') + 1) IS NULL THEN
|
||
UPDATE fac_imp_ins i
|
||
SET i.ins_kenmerkwaarde8 = ''
|
||
WHERE i.ins_deel_omschrijving = rec.ins_deel_omschrijving ;
|
||
END IF;
|
||
|
||
IF SUBSTR (rec.ins_kenmerkwaarde9, INSTR (rec.ins_kenmerkwaarde9, '=') + 1) IS NULL THEN
|
||
UPDATE fac_imp_ins i
|
||
SET i.ins_kenmerkwaarde9 = ''
|
||
WHERE i.ins_deel_omschrijving = rec.ins_deel_omschrijving ;
|
||
END IF;
|
||
|
||
IF SUBSTR (rec.ins_kenmerkwaarde10, INSTR (rec.ins_kenmerkwaarde10, '=') + 1) IS NULL THEN
|
||
UPDATE fac_imp_ins i
|
||
SET i.ins_kenmerkwaarde10 = ''
|
||
WHERE i.ins_deel_omschrijving = rec.ins_deel_omschrijving ;
|
||
END IF;
|
||
|
||
IF SUBSTR (rec.ins_kenmerkwaarde11, INSTR (rec.ins_kenmerkwaarde11, '=') + 1) IS NULL THEN
|
||
UPDATE fac_imp_ins i
|
||
SET i.ins_kenmerkwaarde11 = ''
|
||
WHERE i.ins_deel_omschrijving = rec.ins_deel_omschrijving ;
|
||
END IF;
|
||
|
||
IF SUBSTR (rec.ins_kenmerkwaarde12, INSTR (rec.ins_kenmerkwaarde12, '=') + 1) IS NULL THEN
|
||
UPDATE fac_imp_ins i
|
||
SET i.ins_kenmerkwaarde12 = ''
|
||
WHERE i.ins_deel_omschrijving = rec.ins_deel_omschrijving ;
|
||
END IF;
|
||
|
||
IF SUBSTR (rec.ins_kenmerkwaarde13, INSTR (rec.ins_kenmerkwaarde13, '=') + 1) IS NULL THEN
|
||
UPDATE fac_imp_ins i
|
||
SET i.ins_kenmerkwaarde13 = ''
|
||
WHERE i.ins_deel_omschrijving = rec.ins_deel_omschrijving ;
|
||
END IF;
|
||
|
||
IF SUBSTR (rec.ins_kenmerkwaarde14, INSTR (rec.ins_kenmerkwaarde14, '=') + 1) IS NULL THEN
|
||
UPDATE fac_imp_ins i
|
||
SET i.ins_kenmerkwaarde14 = ''
|
||
WHERE i.ins_deel_omschrijving = rec.ins_deel_omschrijving ;
|
||
END IF;
|
||
|
||
IF SUBSTR (rec.ins_kenmerkwaarde15, INSTR (rec.ins_kenmerkwaarde15, '=') + 1) IS NULL THEN
|
||
UPDATE fac_imp_ins i
|
||
SET i.ins_kenmerkwaarde15 = ''
|
||
WHERE i.ins_deel_omschrijving = rec.ins_deel_omschrijving ;
|
||
END IF;
|
||
|
||
IF SUBSTR (rec.ins_kenmerkwaarde16, INSTR (rec.ins_kenmerkwaarde16, '=') + 1) IS NULL THEN
|
||
UPDATE fac_imp_ins i
|
||
SET i.ins_kenmerkwaarde16 = ''
|
||
WHERE i.ins_deel_omschrijving = rec.ins_deel_omschrijving ;
|
||
END IF;
|
||
|
||
IF SUBSTR (rec.ins_kenmerkwaarde17, INSTR (rec.ins_kenmerkwaarde17, '=') + 1) IS NULL THEN
|
||
UPDATE fac_imp_ins i
|
||
SET i.ins_kenmerkwaarde17 = ''
|
||
WHERE i.ins_deel_omschrijving = rec.ins_deel_omschrijving ;
|
||
END IF;
|
||
|
||
IF SUBSTR (rec.ins_kenmerkwaarde18, INSTR (rec.ins_kenmerkwaarde18, '=') + 1) IS NULL THEN
|
||
UPDATE fac_imp_ins i
|
||
SET i.ins_kenmerkwaarde18 = ''
|
||
WHERE i.ins_deel_omschrijving = rec.ins_deel_omschrijving ;
|
||
END IF;
|
||
|
||
IF SUBSTR (rec.ins_kenmerkwaarde19, INSTR (rec.ins_kenmerkwaarde19, '=') + 1) IS NULL THEN
|
||
UPDATE fac_imp_ins i
|
||
SET i.ins_kenmerkwaarde19 = ''
|
||
WHERE i.ins_deel_omschrijving = rec.ins_deel_omschrijving ;
|
||
END IF;
|
||
|
||
IF SUBSTR (rec.ins_kenmerkwaarde20, INSTR (rec.ins_kenmerkwaarde20, '=') + 1) IS NULL THEN
|
||
UPDATE fac_imp_ins i
|
||
SET i.ins_kenmerkwaarde20 = ''
|
||
WHERE i.ins_deel_omschrijving = rec.ins_deel_omschrijving ;
|
||
END IF;
|
||
|
||
END;
|
||
END LOOP;
|
||
|
||
-- Nu staat alles in fac_imp_ins goed en kunnen we gaan updaten via de standaard procedure
|
||
fac_update_ins (p_import_key);
|
||
|
||
-- De gewijzigde standaard objectvelden die niet in standaard update worden meegenomen, gaan we via post_update regelen.
|
||
aaxx_post_update_ins_assetman (p_import_key);
|
||
|
||
END aaxx_update_ins_assetman;
|
||
/
|
||
|
||
CREATE OR REPLACE PROCEDURE aaxx_post_update_ins_assetman (p_import_key IN NUMBER)
|
||
AS
|
||
v_aanduiding VARCHAR (400);
|
||
|
||
-- Bestaande Objecten aanpassen: Datum aanmaak, Datum vervallen, Opmerking en Aantal
|
||
---- Werkwijze: Als gevuld en afwijkend huidige ins_waarde dan aanpassen. Als niet gevuld in importsheet, dan asset intact laten.
|
||
CURSOR c_update
|
||
IS
|
||
SELECT DISTINCT d.ins_deel_key,
|
||
i.ins_deel_omschrijving,
|
||
i.ins_deel_aanmaak aanmaak_imp,
|
||
d.ins_deel_aanmaak aanmaak_ins,
|
||
i.ins_deel_vervaldatum vervaldatum_imp,
|
||
d.ins_deel_vervaldatum vervaldatum_ins,
|
||
i.ins_deel_opmerking opmerking_imp,
|
||
d.ins_deel_opmerking opmerking_ins,
|
||
i.ins_deel_aantal aantal_imp,
|
||
d.ins_deel_aantal aantal_ins
|
||
FROM fac_imp_ins i, aaxx_v_dwh_ins_object v, ins_deel d
|
||
WHERE UPPER (i.ins_discipline_omschrijving) =
|
||
UPPER (v.discipline_omschrijving)
|
||
AND UPPER (i.ins_srtgroep_omschrijving) = UPPER (v.groep_omschrijving)
|
||
AND UPPER (i.ins_srtdeel_omschrijving) =
|
||
UPPER (v.objectsoort_omschrijving)
|
||
AND UPPER (i.ins_srtdeel_code) = UPPER (v.objectsoort_code)
|
||
AND UPPER (i.ins_deel_omschrijving) = UPPER (v.identificatie)
|
||
AND v.koppel_type = 'Ruimte'
|
||
AND v.ins_deel_key = d.ins_deel_key
|
||
AND v.ruimte_key = d.ins_alg_ruimte_key
|
||
AND d.ins_deel_verwijder IS NULL ;
|
||
|
||
BEGIN
|
||
FOR rec IN c_update
|
||
LOOP
|
||
BEGIN
|
||
|
||
v_aanduiding := 'Gewijzigd aanmaakdatum van ' || TO_CHAR(rec.aanmaak_ins, 'dd-mm-yyyy') || ' naar ' || TO_CHAR(rec.aanmaak_imp, 'dd-mm-yyyy') ;
|
||
|
||
IF rec.aanmaak_imp is not null and rec.aanmaak_imp <> rec.aanmaak_ins THEN
|
||
UPDATE ins_deel d
|
||
SET d.ins_deel_aanmaak = rec.aanmaak_imp
|
||
WHERE d.ins_deel_key = rec.ins_deel_key ;
|
||
|
||
fac.trackaction ('INSUPD', rec.ins_deel_key, sys_context('USERENV', 'CLIENT_IDENTIFIER'), NULL, v_aanduiding);
|
||
|
||
END IF;
|
||
|
||
v_aanduiding := 'Gewijzigd vervaldatum ' || TO_CHAR(rec.vervaldatum_ins, 'dd-mm-yyyy') || ' naar ' || TO_CHAR(rec.vervaldatum_imp, 'dd-mm-yyyy') ;
|
||
|
||
IF rec.vervaldatum_imp is not null and (rec.vervaldatum_imp <> rec.vervaldatum_ins or rec.vervaldatum_ins is null) THEN
|
||
UPDATE ins_deel d
|
||
SET d.ins_deel_vervaldatum = rec.vervaldatum_imp
|
||
WHERE d.ins_deel_key = rec.ins_deel_key ;
|
||
|
||
fac.trackaction ('INSUPD', rec.ins_deel_key, sys_context('USERENV', 'CLIENT_IDENTIFIER'), NULL, v_aanduiding);
|
||
|
||
END IF;
|
||
|
||
v_aanduiding := 'Gewijzigd omschrijving ' || rec.opmerking_ins || ' naar ' || rec.opmerking_imp ;
|
||
|
||
IF rec.opmerking_imp is not null and (rec.opmerking_imp <> rec.opmerking_ins or rec.opmerking_ins is null) THEN
|
||
UPDATE ins_deel d
|
||
SET d.ins_deel_opmerking = rec.opmerking_imp
|
||
WHERE d.ins_deel_key = rec.ins_deel_key ;
|
||
|
||
fac.trackaction ('INSUPD', rec.ins_deel_key, sys_context('USERENV', 'CLIENT_IDENTIFIER'), NULL, v_aanduiding);
|
||
|
||
END IF;
|
||
|
||
v_aanduiding := 'Gewijzigd aantal ' || rec.aantal_ins || ' naar ' || rec.aantal_imp ;
|
||
|
||
IF rec.aantal_imp is not null and rec.aantal_imp <> rec.aantal_ins THEN
|
||
UPDATE ins_deel d
|
||
SET d.ins_deel_aantal = rec.aantal_imp
|
||
WHERE d.ins_deel_key = rec.ins_deel_key ;
|
||
|
||
fac.trackaction ('INSUPD', rec.ins_deel_key, sys_context('USERENV', 'CLIENT_IDENTIFIER'), NULL, v_aanduiding);
|
||
|
||
END IF;
|
||
|
||
END;
|
||
END LOOP;
|
||
|
||
END;
|
||
/
|
||
|
||
-- Nieuwe upload GEBREKEN
|
||
CREATE OR REPLACE PROCEDURE aaxx_import_nen2767_assetman (
|
||
p_import_key IN NUMBER)
|
||
AS
|
||
c_fielddelimitor VARCHAR2 (1) := ';';
|
||
v_newline VARCHAR2 (1000); -- Input line
|
||
v_aanduiding VARCHAR2 (200);
|
||
v_errorhint VARCHAR2 (1000);
|
||
v_errormsg VARCHAR2 (1000);
|
||
oracle_err_num NUMBER;
|
||
oracle_err_mes VARCHAR2 (200);
|
||
header_is_valid NUMBER := 0;
|
||
v_ongeldig NUMBER (1);
|
||
v_count_tot NUMBER (10);
|
||
v_count_import NUMBER (10);
|
||
v_count_import_n NUMBER (10);
|
||
v_count NUMBER;
|
||
v_mld_stdmelding_key NUMBER (10);
|
||
v_regel NUMBER;
|
||
v_mld_srtkenmerk_key1 VARCHAR2 (255);
|
||
v_mld_srtkenmerk_key2 VARCHAR2 (255);
|
||
v_mld_srtkenmerk_key3 VARCHAR2 (255);
|
||
v_mld_srtkenmerk_key4 VARCHAR2 (255);
|
||
v_mld_srtkenmerk_key5 VARCHAR2 (255);
|
||
v_mld_srtkenmerk_key6 VARCHAR2 (255);
|
||
v_mld_srtkenmerk_key7 VARCHAR2 (255);
|
||
v_mld_srtkenmerk_key8 VARCHAR2 (255);
|
||
v_mld_srtkenmerk_key9 VARCHAR2 (255);
|
||
v_mld_srtkenmerk_key10 VARCHAR2 (255);
|
||
|
||
v_alg_gebouw_code VARCHAR2 (1000) :=NULL; -- Zie 02 - !!
|
||
v_ins_deel_omschrijving VARCHAR2 (1000);
|
||
v_ins_deel NUMBER (10);
|
||
v_mld_melding_datum VARCHAR2 (1000);
|
||
v_mld_melding_omschrijving VARCHAR2 (1000);
|
||
v_prs_perslid_email VARCHAR2 (1000); -- inspecteur
|
||
v_behandelaar_email VARCHAR2 (1000); -- behandelaar
|
||
v_gebrekcode VARCHAR2 (1000);
|
||
-- v_ernst VARCHAR2 (1000);
|
||
v_omvang VARCHAR2 (1000);
|
||
v_intensiteit VARCHAR2 (1000);
|
||
v_aspect1 VARCHAR2 (1000);
|
||
v_aspect2 VARCHAR2 (1000);
|
||
v_aspect3 VARCHAR2 (1000);
|
||
v_aspect4 VARCHAR2 (1000);
|
||
v_aspect5 VARCHAR2 (1000);
|
||
v_aspect6 VARCHAR2 (1000);
|
||
v_aspect7 VARCHAR2 (1000);
|
||
v_foto VARCHAR2 (1000);
|
||
v_kosten VARCHAR2 (1000);
|
||
v_plandatum VARCHAR2 (1000);
|
||
v_meldingnr VARCHAR2 (1000);
|
||
v_ongeldig_object NUMBER (1) :=0;
|
||
v_ongeldig_gebrek NUMBER (1) :=0;
|
||
v_melding_GV_aantal NUMBER (10);
|
||
v_melding_GV VARCHAR2 (1000);
|
||
|
||
v_mld_kenmerkwaarde1 VARCHAR2 (4000);
|
||
v_mld_kenmerkwaarde2 VARCHAR2 (4000);
|
||
v_mld_kenmerkwaarde3 VARCHAR2 (4000);
|
||
v_mld_kenmerkwaarde4 VARCHAR2 (4000);
|
||
v_mld_kenmerkwaarde5 VARCHAR2 (4000);
|
||
v_mld_kenmerkwaarde6 VARCHAR2 (4000);
|
||
v_mld_kenmerkwaarde7 VARCHAR2 (4000);
|
||
v_mld_kenmerkwaarde8 VARCHAR2 (4000);
|
||
v_mld_kenmerkwaarde9 VARCHAR2 (4000); -- Voor vullen van de behandelaar
|
||
v_mld_kenmerkwaarde10 VARCHAR2 (4000); -- Voor vullen van de lopende gebreksmelding
|
||
|
||
CURSOR c1
|
||
IS
|
||
SELECT *
|
||
FROM fac_imp_file
|
||
WHERE fac_import_key = p_import_key
|
||
ORDER BY fac_imp_file_index;
|
||
|
||
|
||
-- Controleer tijdens import-fase alleen op bestaan van kenmerksoort (of
|
||
-- deze - via een kenmerk - wel is gedefinieerd voor de betreffende melding -
|
||
-- discipline/vakgroep/st-melding, volgt pas tijdens de update-fase)!
|
||
--
|
||
-- kw is bijvoorbeeld 'Parkeercode' of 'Parkeercode|3' waarbij de laatste in groep 3 zit
|
||
-- het resultaat is NULL (als niet gevonden) of 234|3 voor strkenmer_key 234 in groep 3
|
||
-- Als geen groep is meegegeven wordt 234|0 opgeleverd (de default groep)
|
||
FUNCTION bepaal_srtkenmerk_key (p_kw IN VARCHAR)
|
||
RETURN VARCHAR
|
||
IS
|
||
v_srtkenmerk_key NUMBER;
|
||
v_kenmerk_groep NUMBER;
|
||
v_kw VARCHAR(250);
|
||
BEGIN
|
||
v_kenmerk_groep := 0;
|
||
v_kw := p_kw;
|
||
IF INSTR (v_kw, '|') > 1
|
||
THEN
|
||
v_kenmerk_groep := SUBSTR (v_kw, INSTR (v_kw, '|') + 1);
|
||
v_kw := SUBSTR (v_kw, 1, INSTR (v_kw, '|') - 1);
|
||
END IF;
|
||
|
||
IF fac.safe_to_number (v_kw) IS NULL
|
||
THEN -- kenmerkwaarde is alfanumeriek (dus omschrijving)!
|
||
SELECT mld_srtkenmerk_key
|
||
INTO v_srtkenmerk_key
|
||
FROM mld_srtkenmerk -- ins_v_aanwezigsrtkenmerk
|
||
WHERE mld_srtkenmerk_upper = UPPER (v_kw)
|
||
AND mld_srtkenmerk_kenmerktype IN ('C', 'D', 'N', 'R', 'S', 'X', 'B', 'V');
|
||
ELSE -- kenmerkwaarde is numeriek (dus key)!
|
||
SELECT mld_srtkenmerk_key
|
||
INTO v_srtkenmerk_key
|
||
FROM mld_srtkenmerk -- ins_v_aanwezigsrtkenmerk
|
||
WHERE mld_srtkenmerk_key = fac.safe_to_number (v_kw)
|
||
AND mld_srtkenmerk_kenmerktype IN ('C', 'D', 'N', 'R', 'S', 'X', 'B', 'V');
|
||
END IF;
|
||
|
||
RETURN TO_CHAR(v_srtkenmerk_key) || '|' || TO_CHAR(v_kenmerk_groep);
|
||
EXCEPTION
|
||
WHEN NO_DATA_FOUND
|
||
THEN
|
||
IF p_kw IS NULL OR UPPER (p_kw) LIKE 'KENMERK%'
|
||
THEN
|
||
RETURN NULL;
|
||
ELSE
|
||
fac.imp_writelog (p_import_key,
|
||
'W',
|
||
'Fout bij bepalen kenmerksoort [' || p_kw || ']',
|
||
'Bestaat niet of type ongeldig');
|
||
COMMIT;
|
||
RETURN NULL;
|
||
END IF;
|
||
END;
|
||
|
||
FUNCTION get_aspect_value (p_aspect IN VARCHAR2)
|
||
RETURN VARCHAR2
|
||
IS
|
||
v_result VARCHAR2 (100);
|
||
BEGIN
|
||
v_result := p_aspect;
|
||
|
||
IF p_aspect IS NULL
|
||
THEN
|
||
v_result := 'NVT';
|
||
END IF;
|
||
|
||
IF p_aspect = '0' -- Nodig om bij aanvullen lopende gebreksmeldingen de aspectwaarde weer op NVT te krijgen
|
||
THEN
|
||
v_result := '0 - NVT';
|
||
END IF;
|
||
|
||
IF p_aspect = '1'
|
||
THEN
|
||
v_result := 'Gering';
|
||
END IF;
|
||
|
||
IF p_aspect = '2'
|
||
THEN
|
||
v_result := 'Matig';
|
||
END IF;
|
||
|
||
IF p_aspect = '3'
|
||
THEN
|
||
v_result := 'Sterk';
|
||
END IF;
|
||
|
||
RETURN v_result;
|
||
END;
|
||
BEGIN
|
||
v_errorhint := 'cnd_import_nen2767_results';
|
||
|
||
v_count_tot := 0;
|
||
v_count_import := 0;
|
||
|
||
FOR rec1 IN c1
|
||
LOOP
|
||
BEGIN
|
||
v_newline := rec1.fac_imp_file_line;
|
||
v_regel := rec1.fac_imp_file_index;
|
||
v_aanduiding := '';
|
||
v_errorhint := 'Fout bij opvragen te importeren rij';
|
||
v_ongeldig := 0;
|
||
-- Lees alle veldwaarden
|
||
|
||
-- 01
|
||
v_aanduiding := 'Probleem bij v_ins_deel_omschrijving: ';
|
||
fac.imp_getfield_nr (v_newline,
|
||
c_fielddelimitor,
|
||
1,
|
||
v_ins_deel_omschrijving);
|
||
v_ins_deel_omschrijving := TRIM (v_ins_deel_omschrijving);
|
||
|
||
-- 02
|
||
v_aanduiding := 'Probleem bij v_mld_melding_datum: ';
|
||
fac.imp_getfield_nr (v_newline,
|
||
c_fielddelimitor,
|
||
2,
|
||
v_mld_melding_datum);
|
||
v_mld_melding_datum := TRIM (v_mld_melding_datum);
|
||
|
||
|
||
-- 03
|
||
v_aanduiding := 'Probleem bij v_gebrekcode: ';
|
||
fac.imp_getfield_nr (v_newline,
|
||
c_fielddelimitor,
|
||
3,
|
||
v_gebrekcode);
|
||
v_gebrekcode := TRIM (v_gebrekcode);
|
||
|
||
-- 05
|
||
v_aanduiding := 'Probleem bij v_omvang: ';
|
||
fac.imp_getfield_nr (v_newline,
|
||
c_fielddelimitor,
|
||
5,
|
||
v_omvang);
|
||
v_omvang := TRIM (v_omvang);
|
||
|
||
-- 06
|
||
v_aanduiding := 'Probleem bij v_intensiteit: ';
|
||
fac.imp_getfield_nr (v_newline,
|
||
c_fielddelimitor,
|
||
6,
|
||
v_intensiteit);
|
||
v_intensiteit := TRIM (v_intensiteit);
|
||
|
||
-- 07
|
||
v_aanduiding := 'Probleem bij v_aspect1: ';
|
||
fac.imp_getfield_nr (v_newline,
|
||
c_fielddelimitor,
|
||
7,
|
||
v_aspect1);
|
||
v_aspect1 := TRIM (v_aspect1);
|
||
|
||
-- 08
|
||
v_aanduiding := 'Probleem bij v_aspect2: ';
|
||
fac.imp_getfield_nr (v_newline,
|
||
c_fielddelimitor,
|
||
8,
|
||
v_aspect2);
|
||
v_aspect2 := TRIM (v_aspect2);
|
||
|
||
-- 09
|
||
v_aanduiding := 'Probleem bij v_aspect3: ';
|
||
fac.imp_getfield_nr (v_newline,
|
||
c_fielddelimitor,
|
||
9,
|
||
v_aspect3);
|
||
v_aspect3 := TRIM (v_aspect3);
|
||
|
||
-- 10
|
||
v_aanduiding := 'Probleem bij v_aspect4: ';
|
||
fac.imp_getfield_nr (v_newline,
|
||
c_fielddelimitor,
|
||
10,
|
||
v_aspect4);
|
||
v_aspect4 := TRIM (v_aspect4);
|
||
|
||
-- 11
|
||
v_aanduiding := 'Probleem bij v_aspect5: ';
|
||
fac.imp_getfield_nr (v_newline,
|
||
c_fielddelimitor,
|
||
11,
|
||
v_aspect5);
|
||
v_aspect5 := TRIM (v_aspect5);
|
||
|
||
-- 12
|
||
v_aanduiding := 'Probleem bij v_aspect6: ';
|
||
fac.imp_getfield_nr (v_newline,
|
||
c_fielddelimitor,
|
||
12,
|
||
v_aspect6);
|
||
v_aspect6 := TRIM (v_aspect6);
|
||
|
||
-- 13
|
||
v_aanduiding := 'Probleem bij v_aspect7: ';
|
||
fac.imp_getfield_nr (v_newline,
|
||
c_fielddelimitor,
|
||
13,
|
||
v_aspect7);
|
||
v_aspect7 := TRIM (v_aspect7);
|
||
|
||
-- 14
|
||
v_aanduiding := 'Probleem bij v_mld_melding_omschrijving: ';
|
||
fac.imp_getfield_nr (v_newline,
|
||
c_fielddelimitor,
|
||
14,
|
||
v_mld_melding_omschrijving);
|
||
v_mld_melding_omschrijving := TRIM (v_mld_melding_omschrijving);
|
||
|
||
-- 15
|
||
v_aanduiding := 'Probleem bij v_prs_perslid_email: ';
|
||
fac.imp_getfield_nr (v_newline,
|
||
c_fielddelimitor,
|
||
15,
|
||
v_prs_perslid_email);
|
||
v_prs_perslid_email := TRIM (v_prs_perslid_email);
|
||
|
||
|
||
-- 16
|
||
v_aanduiding := 'Probleem bij v_behandelaar_email: ';
|
||
fac.imp_getfield_nr (v_newline,
|
||
c_fielddelimitor,
|
||
16,
|
||
v_behandelaar_email);
|
||
v_behandelaar_email := TRIM (v_behandelaar_email);
|
||
|
||
|
||
-- 17
|
||
v_aanduiding := 'Probleem bij v_foto: ';
|
||
fac.imp_getfield_nr (v_newline,
|
||
c_fielddelimitor,
|
||
17,
|
||
v_foto);
|
||
v_foto := TRIM (v_foto);
|
||
|
||
-- 18
|
||
v_aanduiding := 'Probleem bij v_kosten: ';
|
||
fac.imp_getfield_nr (v_newline,
|
||
c_fielddelimitor,
|
||
18,
|
||
v_kosten);
|
||
v_kosten := TRIM (v_kosten);
|
||
|
||
-- 19
|
||
v_aanduiding := 'Probleem bij v_plandatum: ';
|
||
fac.imp_getfield_nr (v_newline,
|
||
c_fielddelimitor,
|
||
19,
|
||
v_plandatum);
|
||
v_plandatum := TRIM (v_plandatum);
|
||
|
||
-- 19 t/m 28
|
||
v_aanduiding := 'Probleem bij vullen v_mld_kenmerkwaarde 1 t/m 10: ';
|
||
fac.imp_getfield_nr (v_newline,c_fielddelimitor,20, v_mld_kenmerkwaarde1);
|
||
v_mld_kenmerkwaarde1 := TRIM (v_mld_kenmerkwaarde1);
|
||
fac.imp_getfield_nr (v_newline,c_fielddelimitor,21, v_mld_kenmerkwaarde2);
|
||
v_mld_kenmerkwaarde2 := TRIM (v_mld_kenmerkwaarde2);
|
||
fac.imp_getfield_nr (v_newline,c_fielddelimitor,22, v_mld_kenmerkwaarde3);
|
||
v_mld_kenmerkwaarde3 := TRIM (v_mld_kenmerkwaarde3);
|
||
fac.imp_getfield_nr (v_newline,c_fielddelimitor,23, v_mld_kenmerkwaarde4);
|
||
v_mld_kenmerkwaarde4 := TRIM (v_mld_kenmerkwaarde4);
|
||
fac.imp_getfield_nr (v_newline,c_fielddelimitor,24, v_mld_kenmerkwaarde5);
|
||
v_mld_kenmerkwaarde5 := TRIM (v_mld_kenmerkwaarde5);
|
||
fac.imp_getfield_nr (v_newline,c_fielddelimitor,25, v_mld_kenmerkwaarde6);
|
||
v_mld_kenmerkwaarde6 := TRIM (v_mld_kenmerkwaarde6);
|
||
fac.imp_getfield_nr (v_newline,c_fielddelimitor,26, v_mld_kenmerkwaarde7);
|
||
v_mld_kenmerkwaarde7 := TRIM (v_mld_kenmerkwaarde7);
|
||
fac.imp_getfield_nr (v_newline,c_fielddelimitor,27, v_mld_kenmerkwaarde8);
|
||
v_mld_kenmerkwaarde8 := TRIM (v_mld_kenmerkwaarde8);
|
||
/* fac.imp_getfield_nr (v_newline,c_fielddelimitor,28, v_mld_kenmerkwaarde9);
|
||
v_mld_kenmerkwaarde9 := TRIM (v_mld_kenmerkwaarde9);
|
||
fac.imp_getfield_nr (v_newline,c_fielddelimitor,28, v_mld_kenmerkwaarde10);
|
||
v_mld_kenmerkwaarde10 := TRIM (v_mld_kenmerkwaarde10);
|
||
*/
|
||
v_aanduiding :=
|
||
'['
|
||
|| v_alg_gebouw_code
|
||
|| '-'
|
||
|| v_ins_deel_omschrijving
|
||
|| '-'
|
||
|| v_gebrekcode
|
||
|| '] ';
|
||
|
||
-- Ik controleer of ik een geldige header heb, dat is: in de juiste kolommen
|
||
-- de juiste kolomkop. Ik controleer daarbij de volgende kolommen:
|
||
|
||
-- 1. Objectidentificatie
|
||
-- 2. Datum
|
||
-- 3. stdmelding
|
||
-- 5. omvang
|
||
-- 9. intensiteit
|
||
-- 10. Aspectwaarde1
|
||
-- 11. Aspectwaarde2
|
||
-- 12. Aspectwaarde3
|
||
-- 13. Aspectwaarde4
|
||
-- 14. Aspectwaarde5
|
||
-- 15. Aspectwaarde6
|
||
-- 16. Aspectwaarde7
|
||
-- 17. Opmerking
|
||
-- 18. Inspecteur
|
||
-- 19. Behandelaar
|
||
-- 20. Foto
|
||
-- 21. Kosten
|
||
-- 22. Datum gepland
|
||
-- 23. Dienst
|
||
-- 24. Taakgroep
|
||
-- 25. Datum Gereed (inspecteur)
|
||
-- 26. geadviseerd startjaar
|
||
|
||
-- Ik negeer alles totdat ik een geldige header ben gepasseerd.
|
||
-- De tweede waarde is de waarde uit de plato import. Als er geen tweede waarde is dan zijn ze gelijk.
|
||
IF (header_is_valid = 0)
|
||
THEN
|
||
IF
|
||
UPPER (v_ins_deel_omschrijving) = 'OBJECTIDENTIFICATIE'
|
||
AND UPPER (v_mld_melding_datum) = 'DATUM'
|
||
AND (UPPER (v_gebrekcode) = 'STDMELDING' OR UPPER (v_gebrekcode) = 'GEBREKCODE')
|
||
AND UPPER (v_omvang) = 'OMVANG'
|
||
AND UPPER (v_intensiteit) = 'INTENSITEIT'
|
||
AND UPPER (v_aspect1) = 'ASPECTWAARDE1'
|
||
AND UPPER (v_aspect2) = 'ASPECTWAARDE2'
|
||
AND UPPER (v_aspect3) = 'ASPECTWAARDE3'
|
||
AND UPPER (v_aspect4) = 'ASPECTWAARDE4'
|
||
AND UPPER (v_aspect5) = 'ASPECTWAARDE5'
|
||
AND UPPER (v_aspect6) = 'ASPECTWAARDE6'
|
||
AND UPPER (v_aspect7) = 'ASPECTWAARDE7'
|
||
AND UPPER (v_mld_melding_omschrijving) = 'OPMERKING'
|
||
AND UPPER (v_prs_perslid_email) = 'INSPECTEUR'
|
||
AND UPPER (v_behandelaar_email) = 'BEHANDELAAR'
|
||
AND UPPER (v_foto) = 'FOTO'
|
||
AND UPPER (v_kosten) = 'KOSTEN'
|
||
AND UPPER (v_plandatum) = 'DATUM GEPLAND'
|
||
AND UPPER (v_mld_kenmerkwaarde1) = 'DIENST'
|
||
AND UPPER (v_mld_kenmerkwaarde2) = 'TAAKGROEP'
|
||
AND UPPER (v_mld_kenmerkwaarde3) = 'DATUM GEREED (INSPECTEUR)'
|
||
AND UPPER (v_mld_kenmerkwaarde4) = 'GEADVISEERD STARTJAAR'
|
||
|
||
THEN
|
||
v_mld_srtkenmerk_key1 := bepaal_srtkenmerk_key (v_mld_kenmerkwaarde1);
|
||
v_mld_srtkenmerk_key2 := bepaal_srtkenmerk_key (v_mld_kenmerkwaarde2);
|
||
v_mld_srtkenmerk_key3 := bepaal_srtkenmerk_key (v_mld_kenmerkwaarde3);
|
||
v_mld_srtkenmerk_key4 := bepaal_srtkenmerk_key (v_mld_kenmerkwaarde4);
|
||
v_mld_srtkenmerk_key5 := bepaal_srtkenmerk_key (v_mld_kenmerkwaarde5);
|
||
v_mld_srtkenmerk_key6 := bepaal_srtkenmerk_key (v_mld_kenmerkwaarde6);
|
||
v_mld_srtkenmerk_key7 := bepaal_srtkenmerk_key (v_mld_kenmerkwaarde7);
|
||
v_mld_srtkenmerk_key8 := bepaal_srtkenmerk_key (v_mld_kenmerkwaarde8);
|
||
-- v_mld_srtkenmerk_key9 := bepaal_srtkenmerk_key (v_mld_kenmerkwaarde9);
|
||
-- v_mld_srtkenmerk_key10 := bepaal_srtkenmerk_key (v_mld_kenmerkwaarde10);
|
||
|
||
header_is_valid := 1;
|
||
ELSE
|
||
IF rec1.fac_imp_file_index = 1
|
||
THEN
|
||
fac.imp_writelog (
|
||
p_import_key,
|
||
'I',
|
||
'Header ongeldig: '
|
||
|| UPPER (v_ins_deel_omschrijving) || '-' || UPPER (v_mld_melding_datum) || '-'
|
||
|| UPPER (v_gebrekcode) || '-' || UPPER (v_omvang) || '-' || UPPER (v_intensiteit) || '-' || UPPER (v_aspect1) || '-'
|
||
|| UPPER (v_aspect2) || '-' || UPPER (v_aspect3) || '-' || UPPER (v_aspect4) || '-' || UPPER (v_aspect5) || '-' || UPPER (v_aspect6) || '-' || UPPER (v_aspect7) || '-'
|
||
|| UPPER (v_mld_melding_omschrijving) || '-' || UPPER (v_prs_perslid_email) || '-' || UPPER (v_behandelaar_email) || '-' || UPPER (v_foto) || '-' || UPPER (v_kosten) || '-' || UPPER (v_plandatum) || '-'
|
||
|| UPPER (v_mld_kenmerkwaarde1) || '-' || UPPER (v_mld_kenmerkwaarde2) || '-' || UPPER (v_mld_kenmerkwaarde3) || '-' || UPPER (v_mld_kenmerkwaarde4),
|
||
'');
|
||
END IF;
|
||
END IF;
|
||
ELSE
|
||
v_count_tot := v_count_tot + 1;
|
||
|
||
--
|
||
v_errorhint :=
|
||
'Ongeldige kolom OBJECTIDENTIFICATIE (moet gevuld en maximaal 60 tekens zijn) [' || v_ins_deel_omschrijving || ']';
|
||
v_ongeldig_object := 0;
|
||
|
||
IF (v_ins_deel_omschrijving IS NULL)
|
||
OR (LENGTH (v_ins_deel_omschrijving) > 60)
|
||
THEN
|
||
fac.imp_writelog (
|
||
p_import_key,
|
||
'W',
|
||
v_aanduiding,
|
||
v_errorhint || ' - Regel wordt overgeslagen');
|
||
v_ongeldig := 1;
|
||
v_ongeldig_object := 1;
|
||
END IF;
|
||
|
||
--
|
||
v_errorhint :=
|
||
'Ongeldige kolom OBJECTIDENTIFICATIE (object is onbekend) [' || v_ins_deel_omschrijving || ']';
|
||
|
||
IF v_ongeldig_object=0
|
||
THEN
|
||
|
||
SELECT count(*)
|
||
INTO v_ins_deel
|
||
FROM ins_v_aanwezigdeel
|
||
WHERE ins_deel_upper = UPPER (v_ins_deel_omschrijving) ;
|
||
|
||
IF v_ins_deel = 0
|
||
THEN
|
||
fac.imp_writelog (
|
||
p_import_key,
|
||
'W',
|
||
v_aanduiding,
|
||
v_errorhint || ' - Regel wordt overgeslagen');
|
||
v_ongeldig := 1;
|
||
v_ongeldig_object := 1;
|
||
END IF;
|
||
END IF;
|
||
|
||
--
|
||
v_errorhint :=
|
||
'Ongeldige kolom DATUM (indien gevuld dan met geldige datum in formaat dd-mm-jjjj zijn) [' || v_mld_melding_datum || ']';
|
||
|
||
IF v_mld_melding_datum IS NOT NULL AND fac.safe_to_date (v_mld_melding_datum, 'dd-mm-yyyy') IS NULL
|
||
THEN
|
||
fac.imp_writelog (
|
||
p_import_key,
|
||
'W',
|
||
v_aanduiding,
|
||
v_errorhint || ' - Regel wordt overgeslagen');
|
||
v_ongeldig := 1;
|
||
END IF;
|
||
|
||
--
|
||
v_errorhint :=
|
||
'Ongeldig kolom STDMELDING (moet gevuld en maximaal 20 tekens zijn) [' || v_gebrekcode || ']';
|
||
v_ongeldig_gebrek := 0;
|
||
|
||
IF (v_gebrekcode IS NULL) OR (LENGTH (v_gebrekcode) > 20)
|
||
THEN
|
||
fac.imp_writelog (
|
||
p_import_key,
|
||
'W',
|
||
v_aanduiding,
|
||
v_errorhint || ' - Regel wordt overgeslagen');
|
||
v_ongeldig := 1;
|
||
v_ongeldig_gebrek := 1;
|
||
END IF;
|
||
|
||
-- Bepaal of gebrek uberhaupt wel in gebrekenlijst voorkomt
|
||
v_errorhint :=
|
||
'Gebrek (melding) niet gevonden (bestaat niet), regel wordt overgeslagen';
|
||
|
||
SELECT max(sm.mld_stdmelding_key)
|
||
INTO v_mld_stdmelding_key
|
||
FROM mld_stdmelding sm
|
||
WHERE UPPER(mld_stdmelding_code) = UPPER (v_gebrekcode);
|
||
|
||
IF v_mld_stdmelding_key IS NULL
|
||
THEN
|
||
fac.imp_writelog (
|
||
p_import_key,
|
||
'W',
|
||
v_aanduiding,
|
||
v_errorhint || ' - Regel wordt overgeslagen');
|
||
v_ongeldig := 1;
|
||
v_ongeldig_gebrek := 1;
|
||
END IF;
|
||
|
||
--
|
||
v_errorhint :=
|
||
'Ongeldig kolom OMVANG - indien gevuld moet 1,2,3,4 of 5 zijn [' || v_omvang || ']';
|
||
|
||
-- Als de codering ingevuld is dan gaan we zelf op zoek naar de omschrijving.
|
||
IF v_omvang IS NOT NULL
|
||
THEN
|
||
IF fac.safe_to_number(v_omvang) IN (1,
|
||
2,
|
||
3,
|
||
4,
|
||
5)
|
||
THEN
|
||
CASE v_omvang
|
||
WHEN 1
|
||
THEN
|
||
v_omvang := '< 2% Incidenteel';
|
||
WHEN 2
|
||
THEN
|
||
v_omvang := '2% tot 10% Plaatselijk';
|
||
WHEN 3
|
||
THEN
|
||
v_omvang := '10% tot 30% Regelmatig';
|
||
WHEN 4
|
||
THEN
|
||
v_omvang := '30% tot 70% Aanzienlijk';
|
||
WHEN 5
|
||
THEN
|
||
v_omvang := '> 70% Algemeen';
|
||
END CASE;
|
||
ELSE
|
||
fac.imp_writelog (
|
||
p_import_key,
|
||
'W',
|
||
v_aanduiding,
|
||
v_errorhint || ' - Regel wordt overgeslagen');
|
||
v_ongeldig := 1;
|
||
END IF;
|
||
END IF;
|
||
|
||
--
|
||
v_errorhint :=
|
||
'Ongeldig kolom INTENSITEIT - indien gevuld moet 1,2 of 3 zijn: [' || v_intensiteit || ']'
|
||
|| v_intensiteit;
|
||
|
||
-- Als de codering ingevuld is dan gaan we zelf op zoek naar de omschrijving.
|
||
IF v_intensiteit IS NOT NULL
|
||
THEN
|
||
IF fac.safe_to_number(v_intensiteit) IN (1, 2, 3)
|
||
THEN
|
||
CASE v_intensiteit
|
||
WHEN 1
|
||
THEN
|
||
v_intensiteit := '1 - Beginstadium';
|
||
WHEN 2
|
||
THEN
|
||
v_intensiteit := '2 - Gevorderd stadium';
|
||
WHEN 3
|
||
THEN
|
||
v_intensiteit := '3 - Eindstadium';
|
||
END CASE;
|
||
ELSE
|
||
fac.imp_writelog (
|
||
p_import_key,
|
||
'W',
|
||
v_aanduiding,
|
||
v_errorhint || ' - Regel wordt overgeslagen');
|
||
v_ongeldig := 1;
|
||
END IF;
|
||
END IF;
|
||
|
||
--
|
||
v_errorhint :=
|
||
'Ongeldig kolom ASPECT1 (moet gevuld en maximaal 20 tekens zijn)';
|
||
v_aspect1 := get_aspect_value (v_aspect1);
|
||
|
||
IF (v_aspect1 IS NULL) OR (LENGTH (v_aspect1) > 20)
|
||
THEN
|
||
fac.imp_writelog (
|
||
p_import_key,
|
||
'W',
|
||
v_aanduiding,
|
||
v_errorhint || ' - Regel wordt overgeslagen');
|
||
v_ongeldig := 1;
|
||
END IF;
|
||
|
||
--
|
||
v_errorhint :=
|
||
'Ongeldig kolom ASPECT2 (moet gevuld en maximaal 20 tekens zijn)';
|
||
v_aspect2 := get_aspect_value (v_aspect2);
|
||
|
||
IF (v_aspect2 IS NULL) OR (LENGTH (v_aspect2) > 20)
|
||
THEN
|
||
fac.imp_writelog (
|
||
p_import_key,
|
||
'W',
|
||
v_aanduiding,
|
||
v_errorhint || ' - Regel wordt overgeslagen');
|
||
v_ongeldig := 1;
|
||
END IF;
|
||
|
||
--
|
||
v_errorhint :=
|
||
'Ongeldig kolom ASPECT3 (moet gevuld en maximaal 20 tekens zijn)';
|
||
v_aspect3 := get_aspect_value (v_aspect3);
|
||
|
||
IF (v_aspect3 IS NULL) OR (LENGTH (v_aspect3) > 20)
|
||
THEN
|
||
fac.imp_writelog (
|
||
p_import_key,
|
||
'W',
|
||
v_aanduiding,
|
||
v_errorhint || ' - Regel wordt overgeslagen');
|
||
v_ongeldig := 1;
|
||
END IF;
|
||
|
||
--
|
||
v_errorhint :=
|
||
'Ongeldig kolom ASPECT4 (moet gevuld en maximaal 20 tekens zijn)';
|
||
v_aspect4 := get_aspect_value (v_aspect4);
|
||
|
||
IF (v_aspect4 IS NULL) OR (LENGTH (v_aspect4) > 20)
|
||
THEN
|
||
fac.imp_writelog (
|
||
p_import_key,
|
||
'W',
|
||
v_aanduiding,
|
||
v_errorhint || ' - Regel wordt overgeslagen');
|
||
v_ongeldig := 1;
|
||
END IF;
|
||
|
||
--
|
||
v_errorhint :=
|
||
'Ongeldig kolom ASPECT5 (moet gevuld en maximaal 20 tekens zijn)';
|
||
v_aspect5 := get_aspect_value (v_aspect5);
|
||
|
||
IF (v_aspect5 IS NULL) OR (LENGTH (v_aspect5) > 20)
|
||
THEN
|
||
fac.imp_writelog (
|
||
p_import_key,
|
||
'W',
|
||
v_aanduiding,
|
||
v_errorhint || ' - Regel wordt overgeslagen');
|
||
v_ongeldig := 1;
|
||
END IF;
|
||
|
||
--
|
||
v_errorhint :=
|
||
'Ongeldig kolom ASPECT6 (moet gevuld en maximaal 20 tekens zijn)';
|
||
v_aspect6 := get_aspect_value (v_aspect6);
|
||
|
||
IF (v_aspect6 IS NULL) OR (LENGTH (v_aspect6) > 20)
|
||
THEN
|
||
fac.imp_writelog (
|
||
p_import_key,
|
||
'W',
|
||
v_aanduiding,
|
||
v_errorhint || ' - Regel wordt overgeslagen');
|
||
v_ongeldig := 1;
|
||
END IF;
|
||
|
||
--
|
||
v_errorhint :=
|
||
'Ongeldig kolom ASPECT7 (moet gevuld en maximaal 20 tekens zijn)';
|
||
v_aspect7 := get_aspect_value (v_aspect7);
|
||
|
||
IF (v_aspect7 IS NULL) OR (LENGTH (v_aspect7) > 20)
|
||
THEN
|
||
fac.imp_writelog (
|
||
p_import_key,
|
||
'W',
|
||
v_aanduiding,
|
||
v_errorhint || ' - Regel wordt overgeslagen');
|
||
v_ongeldig := 1;
|
||
END IF;
|
||
|
||
--
|
||
v_errorhint :=
|
||
'Ongeldig kolom OPMERKING (mag maximaal 2000 tekens zijn)';
|
||
|
||
IF (LENGTH (v_mld_melding_omschrijving) > 2000)
|
||
THEN
|
||
fac.imp_writelog (
|
||
p_import_key,
|
||
'W',
|
||
v_aanduiding,
|
||
v_errorhint
|
||
|| ' - Opmerking wordt afgekapt op 2000 tekens');
|
||
v_mld_melding_omschrijving :=
|
||
SUBSTR (v_mld_melding_omschrijving, 1, 2000);
|
||
END IF;
|
||
|
||
--
|
||
v_errorhint :=
|
||
'Ongeldig kolom INSPECTEUR (moet ingevuld en mag maximaal 200 tekens zijn) [' || v_prs_perslid_email || ']';
|
||
|
||
IF v_prs_perslid_email IS NOT NULL
|
||
AND LENGTH (v_prs_perslid_email) > 200
|
||
THEN
|
||
fac.imp_writelog (
|
||
p_import_key,
|
||
'W',
|
||
v_aanduiding,
|
||
v_errorhint || ' - Regel wordt overgeslagen');
|
||
v_ongeldig := 1;
|
||
END IF;
|
||
|
||
--
|
||
v_errorhint :=
|
||
'Ongeldig kolom BEHANDELAAR (indien ingevuld mag het maximaal 200 tekens zijn) [' || v_behandelaar_email || ']';
|
||
|
||
IF LENGTH (v_behandelaar_email) > 200
|
||
THEN
|
||
fac.imp_writelog (
|
||
p_import_key,
|
||
'W',
|
||
v_aanduiding,
|
||
v_errorhint || ' - Regel wordt overgeslagen');
|
||
v_ongeldig := 1;
|
||
END IF;
|
||
|
||
|
||
--
|
||
v_errorhint :=
|
||
'Ongeldig kolom FOTO (mag maximaal 1000 tekens zijn) [' || v_foto || ']';
|
||
|
||
IF (LENGTH (v_foto) > 1000)
|
||
THEN
|
||
fac.imp_writelog (
|
||
p_import_key,
|
||
'W',
|
||
v_aanduiding,
|
||
v_errorhint || ' - Foto wordt overgeslagen');
|
||
v_foto := NULL;
|
||
END IF;
|
||
|
||
|
||
--
|
||
v_kosten := REPLACE (v_kosten, ',', '.');
|
||
v_errorhint :=
|
||
'Ongeldig kolom KOSTEN (indien gevuld dan een cijfer met max 2 decimalen)';
|
||
|
||
IF (v_kosten IS NOT NULL)
|
||
AND (fac.safe_to_number (v_kosten) IS NULL)
|
||
THEN
|
||
fac.imp_writelog (
|
||
p_import_key,
|
||
'W',
|
||
v_aanduiding,
|
||
v_errorhint || ' - Regel wordt overgeslagen');
|
||
v_ongeldig := 1;
|
||
END IF;
|
||
|
||
v_errorhint := 'Ongeldig kolom DATUM GEPLAND (indien gevuld dan met geldige datum in formaat dd-mm-jjjj zijn) [' || v_plandatum || ']';
|
||
|
||
IF v_plandatum IS NOT NULL AND fac.safe_to_date (v_plandatum, 'dd-mm-yyyy') IS NULL
|
||
THEN
|
||
fac.imp_writelog (
|
||
p_import_key,
|
||
'W',
|
||
v_aanduiding,
|
||
v_errorhint || ' - Regel wordt overgeslagen');
|
||
v_ongeldig := 1;
|
||
END IF;
|
||
|
||
-- Onderstaande doen we in UPDATE...
|
||
v_errorhint := 'Bepaal of er al een lopende gebreks-melding is';
|
||
v_meldingnr := NULL ;
|
||
|
||
IF v_ongeldig_object = 0 AND v_ongeldig_gebrek = 0 AND v_ongeldig = 0
|
||
THEN
|
||
|
||
SELECT MAX (m.mld_melding_key)
|
||
INTO v_meldingnr
|
||
FROM mld_melding m,
|
||
mld_stdmelding sm,
|
||
mld_melding_object mo,
|
||
ins_deel d
|
||
WHERE m.mld_melding_key = mo.mld_melding_key
|
||
AND m.mld_stdmelding_key = sm.mld_stdmelding_key
|
||
AND UPPER (sm.mld_stdmelding_code) = UPPER (v_gebrekcode)
|
||
AND mo.ins_deel_key = d.ins_deel_key
|
||
AND UPPER (d.ins_deel_omschrijving) = UPPER (v_ins_deel_omschrijving)
|
||
AND m.mld_melding_status IN (0,2,3,4,7,99) ; -- Lopend
|
||
|
||
END IF;
|
||
|
||
-- Als het GEEN bestaande melding is, dan zijn intensiteit en omvang verplicht en plandatum en meldingsdatum
|
||
IF v_meldingnr IS NULL AND v_ongeldig = 0
|
||
THEN
|
||
|
||
v_errorhint :=
|
||
'Betreft nieuwe melding - Kolom OMVANG is leeg en moet gevuld zijn (met 1,2,3,4 of 5 zijn)';
|
||
IF v_omvang IS NULL AND UPPER(v_gebrekcode) <> 'GEEN'
|
||
THEN
|
||
fac.imp_writelog (
|
||
p_import_key,
|
||
'W',
|
||
v_aanduiding,
|
||
v_errorhint || ' - Regel wordt overgeslagen');
|
||
v_ongeldig := 1;
|
||
END IF;
|
||
|
||
v_errorhint :=
|
||
'Betreft nieuwe melding - Kolom INTENSITEIT is leeg en moet gevuld zijn (met 1,2,3 zijn)';
|
||
IF v_intensiteit IS NULL AND UPPER(v_gebrekcode) <> 'GEEN'
|
||
THEN
|
||
fac.imp_writelog (
|
||
p_import_key,
|
||
'W',
|
||
v_aanduiding,
|
||
v_errorhint || ' - Regel wordt overgeslagen');
|
||
v_ongeldig := 1;
|
||
END IF;
|
||
|
||
v_errorhint :=
|
||
'Betreft nieuwe melding - Kolom DATUM is leeg en moet gevuld zijn met datum';
|
||
IF v_mld_melding_datum IS NULL
|
||
THEN
|
||
fac.imp_writelog (
|
||
p_import_key,
|
||
'W',
|
||
v_aanduiding,
|
||
v_errorhint || ' - Regel wordt overgeslagen');
|
||
v_ongeldig := 1;
|
||
END IF;
|
||
|
||
v_errorhint :=
|
||
'Betreft nieuwe melding - Kolom DATUM GEPLAND is leeg en moet gevuld zijn met datum';
|
||
IF v_plandatum IS NULL AND UPPER(v_gebrekcode) <> 'GEEN'
|
||
THEN
|
||
fac.imp_writelog (
|
||
p_import_key,
|
||
'W',
|
||
v_aanduiding,
|
||
v_errorhint || ' - Regel wordt overgeslagen');
|
||
v_ongeldig := 1;
|
||
END IF;
|
||
|
||
v_errorhint :=
|
||
'Betreft nieuwe melding - Kolom INSPECTEUR is leeg en moet gevuld zijn met email-adres inspecteur (is aanvrager)';
|
||
IF v_prs_perslid_email IS NULL
|
||
THEN
|
||
fac.imp_writelog (
|
||
p_import_key,
|
||
'W',
|
||
v_aanduiding,
|
||
v_errorhint || ' - Regel wordt overgeslagen');
|
||
v_ongeldig := 1;
|
||
END IF;
|
||
|
||
|
||
END IF;
|
||
|
||
|
||
-- Geen fouten, we gaan tussentabel vullen
|
||
IF (v_ongeldig = 0)
|
||
THEN
|
||
BEGIN
|
||
v_errorhint :=
|
||
'Fout bij toevoegen regel aan importtabel cnd_imp_nen2767_results';
|
||
|
||
INSERT INTO cnd_imp_nen2767_results (
|
||
fac_import_key,
|
||
-- alg_gebouw_code,
|
||
ins_deel_omschrijving,
|
||
mld_melding_datum,
|
||
mld_melding_omschrijving,
|
||
prs_perslid_email,
|
||
gebrekcode,
|
||
-- ernst,
|
||
omvang,
|
||
intensiteit,
|
||
aspect1,
|
||
aspect2,
|
||
aspect3,
|
||
aspect4,
|
||
aspect5,
|
||
aspect6,
|
||
aspect7,
|
||
kosten,
|
||
plandatum,
|
||
foto,
|
||
-- condscore,
|
||
-- prioscore,
|
||
flex1,
|
||
flex2,
|
||
flex3,
|
||
flex4,
|
||
flex5,
|
||
flex6,
|
||
flex7,
|
||
flex8,
|
||
flex9,
|
||
flex10)
|
||
VALUES (p_import_key,
|
||
v_ins_deel_omschrijving,
|
||
v_mld_melding_datum,
|
||
v_mld_melding_omschrijving,
|
||
v_prs_perslid_email,
|
||
v_gebrekcode,
|
||
v_omvang,
|
||
v_intensiteit,
|
||
DECODE(v_meldingnr, NULL, DECODE(v_aspect1,'0 - NVT','NVT',v_aspect1),v_aspect1), -- Correctie aspectwaarde: Voor de nieuwe meldingen die gevuld zijn met waarde 0 moeten ook netjes op NVT komen
|
||
DECODE(v_meldingnr, NULL, DECODE(v_aspect2,'0 - NVT','NVT',v_aspect2),v_aspect2),
|
||
DECODE(v_meldingnr, NULL, DECODE(v_aspect3,'0 - NVT','NVT',v_aspect3),v_aspect3),
|
||
DECODE(v_meldingnr, NULL, DECODE(v_aspect4,'0 - NVT','NVT',v_aspect4),v_aspect4),
|
||
DECODE(v_meldingnr, NULL, DECODE(v_aspect5,'0 - NVT','NVT',v_aspect5),v_aspect5),
|
||
DECODE(v_meldingnr, NULL, DECODE(v_aspect6,'0 - NVT','NVT',v_aspect6),v_aspect6),
|
||
DECODE(v_meldingnr, NULL, DECODE(v_aspect7,'0 - NVT','NVT',v_aspect7),v_aspect7),
|
||
v_kosten,
|
||
fac.safe_to_date (v_plandatum, 'dd-mm-yyyy'),
|
||
v_foto,
|
||
DECODE (v_mld_srtkenmerk_key1,
|
||
NULL, v_mld_kenmerkwaarde1,
|
||
TO_CHAR (v_mld_srtkenmerk_key1)
|
||
|| '='
|
||
|| SUBSTR (v_mld_kenmerkwaarde1, 1, 3900)
|
||
),
|
||
DECODE (v_mld_srtkenmerk_key2,
|
||
NULL, v_mld_kenmerkwaarde2,
|
||
TO_CHAR (v_mld_srtkenmerk_key2)
|
||
|| '='
|
||
|| SUBSTR (v_mld_kenmerkwaarde2, 1, 3900)
|
||
),
|
||
DECODE (v_mld_srtkenmerk_key3,
|
||
NULL, v_mld_kenmerkwaarde3,
|
||
TO_CHAR (v_mld_srtkenmerk_key3)
|
||
|| '='
|
||
|| SUBSTR (v_mld_kenmerkwaarde3, 1, 3900)
|
||
),
|
||
DECODE (v_mld_srtkenmerk_key4,
|
||
NULL, v_mld_kenmerkwaarde4,
|
||
TO_CHAR (v_mld_srtkenmerk_key4)
|
||
|| '='
|
||
|| SUBSTR (v_mld_kenmerkwaarde4, 1, 3900)
|
||
),
|
||
DECODE (v_mld_srtkenmerk_key5,
|
||
NULL, v_mld_kenmerkwaarde5,
|
||
TO_CHAR (v_mld_srtkenmerk_key5)
|
||
|| '='
|
||
|| SUBSTR (v_mld_kenmerkwaarde5, 1, 3900)
|
||
),
|
||
DECODE (v_mld_srtkenmerk_key6,
|
||
NULL, v_mld_kenmerkwaarde6,
|
||
TO_CHAR (v_mld_srtkenmerk_key6)
|
||
|| '='
|
||
|| SUBSTR (v_mld_kenmerkwaarde6, 1, 3900)
|
||
),
|
||
DECODE (v_mld_srtkenmerk_key7,
|
||
NULL, v_mld_kenmerkwaarde7,
|
||
TO_CHAR (v_mld_srtkenmerk_key7)
|
||
|| '='
|
||
|| SUBSTR (v_mld_kenmerkwaarde7, 1, 3900)
|
||
),
|
||
DECODE (v_mld_srtkenmerk_key8,
|
||
NULL, v_mld_kenmerkwaarde8,
|
||
TO_CHAR (v_mld_srtkenmerk_key8)
|
||
|| '='
|
||
|| SUBSTR (v_mld_kenmerkwaarde8, 1, 3900)
|
||
),
|
||
v_behandelaar_email,
|
||
v_meldingnr
|
||
);
|
||
|
||
v_count_import := v_count_import + 1;
|
||
COMMIT;
|
||
EXCEPTION
|
||
WHEN OTHERS
|
||
THEN
|
||
oracle_err_num := SQLCODE;
|
||
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
|
||
v_errormsg :=
|
||
v_errorhint
|
||
|| ' ORACLE (error '
|
||
|| oracle_err_num
|
||
|| '/'
|
||
|| oracle_err_mes
|
||
|| ')';
|
||
fac.imp_writelog (
|
||
p_import_key,
|
||
'E',
|
||
v_aanduiding || v_errormsg,
|
||
'Ingelezen regel kan niet worden weggeschreven!');
|
||
COMMIT;
|
||
END;
|
||
END IF;
|
||
END IF;
|
||
END;
|
||
END LOOP;
|
||
|
||
-- Aantal nieuwe meldingen
|
||
SELECT count(*)
|
||
INTO v_count_import_n
|
||
FROM cnd_imp_nen2767_results
|
||
WHERE fac_import_key = p_import_key AND flex10 IS NULL ;
|
||
|
||
|
||
IF (header_is_valid = 0)
|
||
THEN
|
||
fac.imp_writelog (
|
||
p_import_key,
|
||
'E',
|
||
'Ongeldig importbestand',
|
||
'Geen header of header niet volgens specificatie: <zie specs-documentatie>');
|
||
ELSE
|
||
fac.imp_writelog (
|
||
p_import_key,
|
||
'S',
|
||
'IMPORT NEN2767 RESULTS: aantal ingelezen regels: '
|
||
|| TO_CHAR (v_count_tot)
|
||
|| ' / aantal geldige regels: '
|
||
|| TO_CHAR (v_count_import)
|
||
|| ' / waarvan nieuwe melding(en): '
|
||
|| TO_CHAR (v_count_import_n),
|
||
'');
|
||
END IF;
|
||
|
||
|
||
COMMIT;
|
||
EXCEPTION
|
||
WHEN OTHERS
|
||
THEN
|
||
oracle_err_num := SQLCODE;
|
||
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
|
||
v_errormsg := 'Error ' || oracle_err_num || '/' || oracle_err_mes;
|
||
fac.imp_writelog (p_import_key,
|
||
'E',
|
||
v_errormsg,
|
||
v_errorhint || ' regel[' || v_regel || ']');
|
||
END aaxx_import_nen2767_assetman;
|
||
/
|
||
|
||
|
||
CREATE OR REPLACE PROCEDURE aaxx_update_nen2767_assetman (
|
||
p_import_key IN NUMBER)
|
||
IS
|
||
CURSOR c_nieuw
|
||
IS
|
||
SELECT *
|
||
FROM cnd_imp_nen2767_results
|
||
WHERE fac_import_key = p_import_key AND flex10 IS NULL ;
|
||
|
||
CURSOR c_bestaand
|
||
IS
|
||
SELECT *
|
||
FROM cnd_imp_nen2767_results
|
||
WHERE fac_import_key = p_import_key AND flex10 IS NOT NULL ;
|
||
|
||
|
||
v_aanduiding VARCHAR2 (1000);
|
||
v_errorhint VARCHAR2 (1000);
|
||
v_errormsg VARCHAR2 (1000);
|
||
oracle_err_num NUMBER;
|
||
oracle_err_mes VARCHAR2 (200);
|
||
v_count_tot NUMBER (10);
|
||
v_count_tot_n NUMBER (10);
|
||
v_count_import NUMBER (10);
|
||
|
||
v_mld_melding_key NUMBER (10);
|
||
|
||
v_alg_gebouw_key NUMBER (10);
|
||
v_ins_deel_key NUMBER (10);
|
||
v_alg_ruimte_key NUMBER (10);
|
||
v_prs_perslid_key NUMBER (10);
|
||
v_prs_behandelaar_key NUMBER (10);
|
||
v_mld_stdmelding_key NUMBER (10);
|
||
|
||
v_ernst_kenmerk_key NUMBER (10);
|
||
v_ernst_key NUMBER (10);
|
||
v_omvang_kenmerk_key NUMBER (10);
|
||
v_omvang_key NUMBER (10);
|
||
v_intensiteit_kenmerk_key NUMBER (10);
|
||
v_intensiteit_key NUMBER (10);
|
||
|
||
v_foto_kenmerk_key NUMBER (10);
|
||
v_kosten_kenmerk_key NUMBER (10) := NULL;
|
||
v_kosten_srtkenmerk_key NUMBER (10);
|
||
|
||
v_ernst_srtkenmerk_key NUMBER (10);
|
||
v_omvang_srtkenmerk_key NUMBER (10);
|
||
v_intensiteit_srtkenmerk_key NUMBER (10);
|
||
|
||
v_mld_melding_omschrijving mld_melding.mld_melding_omschrijving%TYPE;
|
||
v_omvang VARCHAR2 (1000);
|
||
v_intensiteit VARCHAR2 (1000);
|
||
v_aspect1 VARCHAR2 (1000);
|
||
v_aspect2 VARCHAR2 (1000);
|
||
v_aspect3 VARCHAR2 (1000);
|
||
v_aspect4 VARCHAR2 (1000);
|
||
v_aspect5 VARCHAR2 (1000);
|
||
v_aspect6 VARCHAR2 (1000);
|
||
v_aspect7 VARCHAR2 (1000);
|
||
v_inspecteur VARCHAR2 (1000);
|
||
v_behandelaar VARCHAR2 (1000);
|
||
v_foto VARCHAR2 (1000);
|
||
v_kosten VARCHAR2 (1000);
|
||
v_plandatum_date DATE;
|
||
v_dienst VARCHAR2 (1000);
|
||
v_taakgroep VARCHAR2 (1000);
|
||
v_datumgereedinspecteur VARCHAR2 (1000);
|
||
v_geadviseerdstartjaar VARCHAR2 (1000);
|
||
v_flex1_kenmerk_key NUMBER (10);
|
||
v_flex2_kenmerk_key NUMBER (10);
|
||
v_flex3_kenmerk_key NUMBER (10);
|
||
v_flex4_kenmerk_key NUMBER (10);
|
||
v_flex5_kenmerk_key NUMBER (10);
|
||
v_flex6_kenmerk_key NUMBER (10);
|
||
v_flex7_kenmerk_key NUMBER (10);
|
||
v_flex8_kenmerk_key NUMBER (10);
|
||
|
||
v_flex1_waarde VARCHAR2 (1000);
|
||
v_flex1_waarde_key NUMBER (10);
|
||
v_flex2_waarde VARCHAR2 (1000);
|
||
v_flex2_waarde_key NUMBER (10);
|
||
v_flex3_waarde VARCHAR2 (1000);
|
||
v_flex4_waarde VARCHAR2 (1000);
|
||
|
||
v_conditiescore NUMBER (10) ;
|
||
v_prioscore NUMBER (10) ;
|
||
v_herberekenen NUMBER (1) :=0;
|
||
|
||
v_melding_GV_aantal NUMBER(10);
|
||
v_melding_GV VARCHAR2 (1000);
|
||
v_mld_melding_status NUMBER(10);
|
||
|
||
|
||
|
||
PROCEDURE set_aspect (p_aspect IN VARCHAR2,
|
||
p_aspect_waarde IN VARCHAR2,
|
||
p_mld_melding_key IN NUMBER)
|
||
IS
|
||
v_key NUMBER (10);
|
||
v_kenmerk_key NUMBER (10);
|
||
v_srtkenmerk_key NUMBER (10);
|
||
BEGIN
|
||
SELECT MAX (mld_srtkenmerk_key)
|
||
INTO v_srtkenmerk_key
|
||
FROM mld_srtkenmerk
|
||
WHERE mld_srtkenmerk_code = p_aspect;
|
||
|
||
IF v_srtkenmerk_key IS NOT NULL
|
||
THEN
|
||
v_errorhint :=
|
||
p_aspect
|
||
|| ' (eigen tabel) niet gevonden (bestaat niet), regel wordt overgeslagen';
|
||
|
||
SELECT ud.fac_usrdata_key, k.mld_kenmerk_key
|
||
INTO v_key, v_kenmerk_key
|
||
FROM mld_srtkenmerk sk,
|
||
fac_kenmerkdomein kd,
|
||
fac_usrtab ut,
|
||
fac_usrdata ud,
|
||
mld_kenmerk k
|
||
WHERE sk.mld_srtkenmerk_key = v_srtkenmerk_key
|
||
AND kd.fac_kenmerkdomein_key = sk.fac_kenmerkdomein_key
|
||
AND ut.fac_usrtab_key = kd.fac_usrtab_key
|
||
AND ud.fac_usrtab_key = kd.fac_usrtab_key
|
||
AND ud.fac_usrdata_upper = UPPER (p_aspect_waarde)
|
||
AND k.mld_srtkenmerk_key = sk.mld_srtkenmerk_key;
|
||
|
||
mld.upsertmeldingkenmerk (v_kenmerk_key,
|
||
p_mld_melding_key,
|
||
v_key);
|
||
END IF;
|
||
END;
|
||
|
||
-- SUBPROC
|
||
-- Voor vullen van de optionele kenmerkvelden 1 t/m 10
|
||
-- p_srtkenmerkgroepwaarde = '234|1=37-ZB-DR'. Ofwel: srtkenmerk_key|groep=waarde
|
||
PROCEDURE insert_mldkenmerk (p_mld_melding_key IN NUMBER,
|
||
p_srtkenmerkgroepwaarde IN VARCHAR2)
|
||
AS
|
||
v_kenmerk_key NUMBER;
|
||
v_srtkenmerk_key NUMBER;
|
||
v_groep NUMBER;
|
||
v_waarde VARCHAR(4000);
|
||
v_srtkenmerk_type VARCHAR2 (1);
|
||
ccount NUMBER;
|
||
v_objectnaam VARCHAR2 (30);
|
||
v_kolomnaam VARCHAR2 (30);
|
||
v_kolomtxt VARCHAR2 (30);
|
||
sql_stmt VARCHAR2 (1000);
|
||
v_kenmerkdeel_key NUMBER;
|
||
l_cursor_1 INTEGER;
|
||
l_rowsprocessed NUMBER DEFAULT 0;
|
||
BEGIN
|
||
IF p_srtkenmerkgroepwaarde IS NOT NULL
|
||
THEN
|
||
v_errormsg := 'Fout bij bepalen kenmerk van soort [' || p_srtkenmerkgroepwaarde || ']';
|
||
|
||
v_srtkenmerk_key := fac.safe_to_number (
|
||
SUBSTR (p_srtkenmerkgroepwaarde, 1, INSTR (p_srtkenmerkgroepwaarde, '|') - 1));
|
||
v_groep := fac.safe_to_number (
|
||
SUBSTR (p_srtkenmerkgroepwaarde,
|
||
INSTR (p_srtkenmerkgroepwaarde, '|') + 1,
|
||
INSTR (p_srtkenmerkgroepwaarde, '=') - 1 - INSTR (p_srtkenmerkgroepwaarde, '|')));
|
||
v_waarde := SUBSTR (p_srtkenmerkgroepwaarde, INSTR (p_srtkenmerkgroepwaarde, '=') + 1);
|
||
|
||
|
||
-- Niveau en mld_kenmerk_key bepalen vanuit de ingelezen gebreksmelding
|
||
SELECT mk.mld_kenmerk_key, msk.mld_srtkenmerk_kenmerktype
|
||
INTO v_kenmerk_key, v_srtkenmerk_type
|
||
FROM mld_kenmerk mk, mld_srtkenmerk msk, mld_melding m, mld_stdmelding sm, mld_discipline d, ins_srtdiscipline t
|
||
WHERE mk.mld_srtkenmerk_key = v_srtkenmerk_key
|
||
AND mk.mld_kenmerk_groep = v_groep
|
||
AND mk.mld_srtkenmerk_key = msk.mld_srtkenmerk_key
|
||
AND m.mld_melding_key = p_mld_melding_key
|
||
AND m.mld_stdmelding_key = sm.mld_stdmelding_key
|
||
AND sm.mld_ins_discipline_key = d.ins_discipline_key
|
||
AND d.ins_srtdiscipline_key = t.ins_srtdiscipline_key AND t.ins_srtdiscipline_module = 'MLD'
|
||
AND (
|
||
(mk.mld_stdmelding_key = sm.mld_stdmelding_key and mk.mld_kenmerk_niveau = 'S')
|
||
OR
|
||
(mk.mld_stdmelding_key = d.ins_discipline_key and mk.mld_kenmerk_niveau = 'D')
|
||
OR
|
||
(mk.mld_stdmelding_key = t.ins_srtdiscipline_key and mk.mld_kenmerk_niveau = 'T')
|
||
) ;
|
||
|
||
IF v_waarde IS NOT NULL
|
||
THEN
|
||
IF v_srtkenmerk_type IN ('R', 'S')
|
||
THEN
|
||
v_errormsg := 'Fout bij bepalen eigen tabel';
|
||
|
||
SELECT COUNT ( * )
|
||
INTO ccount
|
||
FROM mld_srtkenmerk sk, fac_kenmerkdomein d
|
||
WHERE sk.mld_srtkenmerk_key = v_srtkenmerk_key
|
||
AND sk.fac_kenmerkdomein_key = d.fac_kenmerkdomein_key
|
||
AND d.fac_usrtab_key IS NOT NULL;
|
||
|
||
v_errormsg := 'Fout bij bepalen nieuwe waarde [' || v_waarde || ']';
|
||
|
||
IF ccount = 1
|
||
THEN -- Eigen tabel
|
||
SELECT TO_CHAR (ud.fac_usrdata_key)
|
||
INTO v_waarde
|
||
FROM mld_srtkenmerk sk, fac_kenmerkdomein d, fac_v_aanwezigusrdata ud
|
||
WHERE sk.mld_srtkenmerk_key = v_srtkenmerk_key
|
||
AND sk.fac_kenmerkdomein_key = d.fac_kenmerkdomein_key
|
||
AND d.fac_usrtab_key = ud.fac_usrtab_key
|
||
AND UPPER (TRIM (ud.fac_usrdata_omschr)) = UPPER (v_waarde);
|
||
ELSE -- FACILITOR view/tabel
|
||
SELECT d.fac_kenmerkdomein_objectnaam,
|
||
d.fac_kenmerkdomein_kolomnaam,
|
||
d.fac_kenmerkdomein_kolomtxt
|
||
INTO v_objectnaam, v_kolomnaam, v_kolomtxt
|
||
FROM mld_srtkenmerk sk, fac_kenmerkdomein d
|
||
WHERE sk.mld_srtkenmerk_key = v_srtkenmerk_key
|
||
AND sk.fac_kenmerkdomein_key = d.fac_kenmerkdomein_key
|
||
AND d.fac_usrtab_key IS NULL;
|
||
|
||
sql_stmt :=
|
||
'SELECT MAX ('
|
||
|| v_kolomnaam
|
||
|| ') FROM '
|
||
|| v_objectnaam
|
||
|| ' WHERE UPPER (TRIM ('
|
||
|| v_kolomtxt
|
||
|| ')) = UPPER (:pwaarde)';
|
||
l_cursor_1 := DBMS_SQL.open_cursor;
|
||
DBMS_SQL.parse (l_cursor_1, sql_stmt, DBMS_SQL.native);
|
||
DBMS_SQL.BIND_VARIABLE(l_cursor_1,':pwaarde', v_waarde);
|
||
DBMS_SQL.define_column(l_cursor_1, 1, v_waarde, 255);
|
||
l_rowsprocessed := DBMS_SQL.execute_and_fetch (l_cursor_1);
|
||
DBMS_SQL.column_value (l_cursor_1, 1, v_waarde);
|
||
DBMS_SQL.close_cursor(l_cursor_1);
|
||
END IF;
|
||
ELSE -- C(Karakter)/D(Datum)/N(Numeriek)/X(Bestandsnaam)
|
||
NULL; -- v_waarde := p_waarde;
|
||
END IF;
|
||
|
||
IF v_srtkenmerk_type = 'N' -- Alleen voor numerieke waarden de decimale komma vervangen door punt.
|
||
THEN
|
||
v_waarde := REPLACE (v_waarde, ',', '.');
|
||
END IF;
|
||
|
||
v_errormsg := 'Fout bij toevoegen waarde [' || v_waarde || ']';
|
||
|
||
INSERT INTO mld_kenmerkmelding (mld_melding_key, mld_kenmerk_key, mld_kenmerkmelding_waarde)
|
||
VALUES (p_mld_melding_key, v_kenmerk_key, v_waarde);
|
||
ELSE
|
||
NULL;
|
||
|
||
END IF;
|
||
END IF;
|
||
EXCEPTION
|
||
WHEN OTHERS
|
||
THEN
|
||
oracle_err_num := SQLCODE;
|
||
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
|
||
v_errormsg :=
|
||
v_errormsg || ' (error ' || oracle_err_num || '/' || oracle_err_mes || ')';
|
||
fac.imp_writelog (p_import_key,
|
||
'W',
|
||
v_aanduiding || v_errormsg,
|
||
'insert_mldkenmerk');
|
||
END;
|
||
|
||
|
||
BEGIN
|
||
v_count_tot := 0;
|
||
v_count_tot_n := 0;
|
||
v_count_import := 0;
|
||
|
||
v_errorhint :=
|
||
'Ernst kenmerk bij gebreken niet gevonden (bestaat niet), import wordt niet uitgevoerd';
|
||
|
||
SELECT mld_srtkenmerk_key
|
||
INTO v_ernst_srtkenmerk_key
|
||
FROM mld_srtkenmerk
|
||
WHERE mld_srtkenmerk_code = 'ERNST';
|
||
|
||
v_errorhint :=
|
||
'Omvang kenmerk bij gebreken niet gevonden (bestaat niet), import wordt niet uitgevoerd';
|
||
|
||
SELECT mld_srtkenmerk_key
|
||
INTO v_omvang_srtkenmerk_key
|
||
FROM mld_srtkenmerk
|
||
WHERE mld_srtkenmerk_code = 'OMVANG';
|
||
|
||
v_errorhint :=
|
||
'Intensiteit kenmerk bij gebreken niet gevonden (bestaat niet), import wordt niet uitgevoerd';
|
||
|
||
SELECT mld_srtkenmerk_key
|
||
INTO v_intensiteit_srtkenmerk_key
|
||
FROM mld_srtkenmerk
|
||
WHERE mld_srtkenmerk_code = 'INTENSITEIT';
|
||
|
||
v_errorhint :=
|
||
'Fout bij bepalen kenmerk foto-bestand';
|
||
|
||
SELECT max(k.mld_kenmerk_key)
|
||
INTO v_foto_kenmerk_key
|
||
FROM mld_kenmerk k, mld_srtkenmerk sk
|
||
WHERE k.mld_srtkenmerk_key = sk.mld_srtkenmerk_key
|
||
AND k.mld_kenmerk_niveau = 'T'
|
||
AND k.mld_stdmelding_key = fac.getsetting ('cnd_gebreken_srtdisc_key')
|
||
AND sk.mld_srtkenmerk_upper = 'FOTONAAM' ;
|
||
|
||
v_errorhint :=
|
||
'Kosten kenmerk bij gebreken niet gevonden (bestaat niet), import wordt niet uitgevoerd';
|
||
|
||
SELECT MAX (mld_srtkenmerk_key)
|
||
INTO v_kosten_srtkenmerk_key
|
||
FROM mld_srtkenmerk
|
||
WHERE mld_srtkenmerk_code = 'KOSTEN';
|
||
|
||
IF v_kosten_srtkenmerk_key IS NOT NULL
|
||
THEN
|
||
SELECT mld_kenmerk_key
|
||
INTO v_kosten_kenmerk_key
|
||
FROM mld_kenmerk
|
||
WHERE mld_srtkenmerk_key = v_kosten_srtkenmerk_key
|
||
AND mld_kenmerk_niveau = 'T' AND mld_stdmelding_key = fac.getSetting ('cnd_gebreken_srtdisc_key') ;
|
||
END IF;
|
||
|
||
FOR rec IN c_nieuw
|
||
LOOP
|
||
BEGIN
|
||
v_count_tot := v_count_tot + 1;
|
||
v_aanduiding :=
|
||
'['
|
||
|| rec.alg_gebouw_code
|
||
|| '-'
|
||
|| rec.ins_deel_omschrijving
|
||
|| '-'
|
||
|| rec.gebrekcode
|
||
|| '] ';
|
||
|
||
v_errorhint :=
|
||
'Gebouwcode niet gevonden (bestaat niet), regel wordt overgeslagen';
|
||
|
||
v_alg_gebouw_key := -1;
|
||
|
||
IF rec.alg_gebouw_code IS NOT NULL
|
||
THEN
|
||
SELECT alg_gebouw_key
|
||
INTO v_alg_gebouw_key
|
||
FROM alg_v_aanweziggebouw
|
||
WHERE alg_gebouw_upper = UPPER (rec.alg_gebouw_code);
|
||
END IF;
|
||
|
||
v_errorhint :=
|
||
'Element (object) niet gevonden (bestaat niet bij gebouw), regel wordt overgeslagen';
|
||
|
||
-- Uitgangspunt hierbij is dat objectnaam uniek is per gebouw, op zich mag in Facilitor de objectnaam per objectsoort per locatie uniek zijn.
|
||
SELECT ins_deel_key, r.alg_ruimte_key
|
||
INTO v_ins_deel_key, v_alg_ruimte_key
|
||
FROM ins_v_aanwezigdeel, alg_ruimte r, alg_verdieping v
|
||
WHERE ins_deel_upper = UPPER (rec.ins_deel_omschrijving)
|
||
AND ins_alg_ruimte_key = r.alg_ruimte_key
|
||
AND r.alg_verdieping_key = v.alg_verdieping_key
|
||
AND ( v_alg_gebouw_key = -1
|
||
OR v.alg_gebouw_key = v_alg_gebouw_key)
|
||
AND ins_alg_ruimte_type = 'R';
|
||
|
||
v_errorhint :=
|
||
'Mailadres van inspecteur (persoon) niet gevonden (bestaat niet), regel wordt overgeslagen';
|
||
|
||
SELECT prs_perslid_key
|
||
INTO v_prs_perslid_key
|
||
FROM prs_v_aanwezigperslid
|
||
WHERE UPPER (prs_perslid_email) = UPPER (rec.prs_perslid_email);
|
||
|
||
v_errorhint :=
|
||
'Mailadres van behandelaar (persoon) niet gevonden (bestaat niet), regel wordt overgeslagen';
|
||
|
||
IF rec.flex9 IS NOT NULL
|
||
THEN
|
||
|
||
SELECT prs_perslid_key
|
||
INTO v_prs_behandelaar_key
|
||
FROM prs_v_aanwezigperslid
|
||
WHERE UPPER (prs_perslid_email) = UPPER (rec.flex9);
|
||
|
||
ELSE
|
||
v_prs_behandelaar_key := NULL ;
|
||
|
||
END IF;
|
||
|
||
v_errorhint :=
|
||
'Gebrek (melding) niet gevonden (bestaat niet), regel wordt overgeslagen';
|
||
|
||
SELECT sm.mld_stdmelding_key
|
||
INTO v_mld_stdmelding_key
|
||
FROM mld_stdmelding sm
|
||
WHERE UPPER(mld_stdmelding_code) = UPPER (rec.gebrekcode);
|
||
|
||
IF UPPER(rec.gebrekcode) = 'GEEN'
|
||
THEN
|
||
v_errorhint :=
|
||
'Geen Gebrek melding. Ernst, Omvang en Intensiteit worden overgeslagen';
|
||
ELSE
|
||
|
||
v_errorhint :=
|
||
'Ernst (eigen tabel) niet gevonden (bestaat niet), regel wordt overgeslagen';
|
||
|
||
-- We vullen de ERNST altijd met de default-waarde bij kenmerk_key
|
||
SELECT ud.fac_usrdata_key, k.mld_kenmerk_key
|
||
INTO v_ernst_key, v_ernst_kenmerk_key
|
||
FROM mld_srtkenmerk sk,
|
||
fac_kenmerkdomein kd,
|
||
fac_usrtab ut,
|
||
fac_usrdata ud,
|
||
mld_kenmerk k
|
||
WHERE sk.mld_srtkenmerk_key = v_ernst_srtkenmerk_key
|
||
AND kd.fac_kenmerkdomein_key = sk.fac_kenmerkdomein_key
|
||
AND ut.fac_usrtab_key = kd.fac_usrtab_key
|
||
AND ud.fac_usrtab_key = kd.fac_usrtab_key
|
||
AND ud.fac_usrdata_key = k.mld_kenmerk_default
|
||
AND k.mld_srtkenmerk_key = sk.mld_srtkenmerk_key
|
||
AND k.mld_stdmelding_key = v_mld_stdmelding_key
|
||
AND k.mld_kenmerk_niveau = 'S';
|
||
|
||
v_errorhint :=
|
||
'Omvang (eigen tabel) niet gevonden (bestaat niet), regel wordt overgeslagen';
|
||
|
||
SELECT ud.fac_usrdata_key, k.mld_kenmerk_key
|
||
INTO v_omvang_key, v_omvang_kenmerk_key
|
||
FROM mld_srtkenmerk sk,
|
||
fac_kenmerkdomein kd,
|
||
fac_usrtab ut,
|
||
fac_usrdata ud,
|
||
mld_kenmerk k
|
||
WHERE sk.mld_srtkenmerk_key = v_omvang_srtkenmerk_key
|
||
AND kd.fac_kenmerkdomein_key = sk.fac_kenmerkdomein_key
|
||
AND ut.fac_usrtab_key = kd.fac_usrtab_key
|
||
AND ud.fac_usrtab_key = kd.fac_usrtab_key
|
||
AND ud.fac_usrdata_upper = UPPER (rec.omvang)
|
||
AND k.mld_srtkenmerk_key = sk.mld_srtkenmerk_key
|
||
AND k.mld_stdmelding_key = v_mld_stdmelding_key
|
||
AND k.mld_kenmerk_niveau = 'S';
|
||
|
||
v_errorhint :=
|
||
'Intensiteit (eigen tabel) niet gevonden (bestaat niet), regel wordt overgeslagen';
|
||
|
||
SELECT ud.fac_usrdata_key, k.mld_kenmerk_key
|
||
INTO v_intensiteit_key, v_intensiteit_kenmerk_key
|
||
FROM mld_srtkenmerk sk,
|
||
fac_kenmerkdomein kd,
|
||
fac_usrtab ut,
|
||
fac_usrdata ud,
|
||
mld_kenmerk k
|
||
WHERE sk.mld_srtkenmerk_key = v_intensiteit_srtkenmerk_key
|
||
AND kd.fac_kenmerkdomein_key = sk.fac_kenmerkdomein_key
|
||
AND ut.fac_usrtab_key = kd.fac_usrtab_key
|
||
AND ud.fac_usrtab_key = kd.fac_usrtab_key
|
||
AND ud.fac_usrdata_upper = UPPER (rec.intensiteit)
|
||
AND k.mld_srtkenmerk_key = sk.mld_srtkenmerk_key
|
||
AND k.mld_stdmelding_key = v_mld_stdmelding_key
|
||
AND k.mld_kenmerk_niveau = 'S';
|
||
END IF;
|
||
|
||
v_errorhint :=
|
||
'Check of er voor GV-gebrek al een soortgelijk gebrek loopt';
|
||
v_melding_GV_aantal:=0;
|
||
|
||
IF INSTR (rec.gebrekcode, 'GV') > 0
|
||
THEN
|
||
|
||
SELECT COUNT (*)
|
||
INTO v_melding_GV_aantal
|
||
FROM mld_melding m,
|
||
mld_stdmelding sm,
|
||
mld_melding_object mo,
|
||
ins_deel d
|
||
WHERE m.mld_melding_key = mo.mld_melding_key
|
||
AND m.mld_stdmelding_key = sm.mld_stdmelding_key
|
||
AND mo.ins_deel_key = d.ins_deel_key
|
||
-- AND UPPER (d.ins_deel_omschrijving) = UPPER (v_ins_deel_omschrijving) -- '0247.43-0016'
|
||
AND d.ins_deel_key = v_ins_deel_key
|
||
AND m.mld_melding_status IN (0,2,3,4,7,99)
|
||
AND INSTR (rec.gebrekcode, 'GV') > 0
|
||
AND UPPER (SUBSTR (sm.mld_stdmelding_code,1,INSTR (sm.mld_stdmelding_code, 'GV') + 1)) = UPPER (SUBSTR (rec.gebrekcode, 1, INSTR (rec.gebrekcode, 'GV') + 1))
|
||
AND sm.mld_stdmelding_code <> rec.gebrekcode;
|
||
|
||
IF v_melding_GV_aantal > 0
|
||
THEN
|
||
v_melding_GV := 'Bij invoer is/zijn er nog ' || TO_CHAR(v_melding_GV_aantal) || ' melding(en) op code ' || SUBSTR (rec.gebrekcode, 1, INSTR (rec.gebrekcode, 'GV') + 1) ;
|
||
END IF;
|
||
|
||
END IF;
|
||
|
||
v_errorhint :=
|
||
'Toevoegen melding';
|
||
INSERT INTO mld_melding (mld_melding_module,
|
||
mld_meldbron_key,
|
||
mld_melding_datum,
|
||
mld_melding_omschrijving,
|
||
mld_stdmelding_key,
|
||
mld_alg_onroerendgoed_keys,
|
||
mld_melding_einddatum,
|
||
prs_perslid_key,
|
||
prs_perslid_key_voor,
|
||
-- mld_melding_behandelaar_key,
|
||
mld_melding_status,
|
||
mld_melding_spoed)
|
||
VALUES (
|
||
'MLD',
|
||
6,
|
||
fac.safe_to_date (rec.mld_melding_datum, 'dd-mm-yyyy'),
|
||
CASE
|
||
WHEN v_melding_GV_aantal >0 THEN rec.mld_melding_omschrijving || CHR (13) || CHR (10) || 'LET OP!: ' || v_melding_GV
|
||
ELSE rec.mld_melding_omschrijving END,
|
||
v_mld_stdmelding_key,
|
||
v_alg_ruimte_key,
|
||
rec.plandatum,
|
||
v_prs_perslid_key,
|
||
v_prs_perslid_key,
|
||
-- v_prs_behandelaar_key,
|
||
NULL,
|
||
3)
|
||
RETURNING mld_melding_key
|
||
INTO v_mld_melding_key;
|
||
|
||
mld.setmeldingstatus(v_mld_melding_key, 2, v_prs_perslid_key, 0);
|
||
|
||
v_errorhint := 'Koppelen object';
|
||
INSERT INTO mld_melding_object (mld_melding_key, ins_deel_key)
|
||
VALUES (v_mld_melding_key, v_ins_deel_key);
|
||
|
||
|
||
IF UPPER(rec.gebrekcode) <> 'GEEN' THEN
|
||
v_errorhint := 'Toevoegen Ernst kenmerk';
|
||
mld.upsertmeldingkenmerk (v_ernst_kenmerk_key,
|
||
v_mld_melding_key,
|
||
v_ernst_key);
|
||
|
||
v_errorhint := 'Toevoegen Omvang kenmerk';
|
||
mld.upsertmeldingkenmerk (v_omvang_kenmerk_key,
|
||
v_mld_melding_key,
|
||
v_omvang_key);
|
||
v_errorhint := 'Toevoegen Intensiteit kenmerk';
|
||
mld.upsertmeldingkenmerk (v_intensiteit_kenmerk_key,
|
||
v_mld_melding_key,
|
||
v_intensiteit_key);
|
||
END IF;
|
||
|
||
set_aspect ('ASPECT1', rec.aspect1, v_mld_melding_key);
|
||
set_aspect ('ASPECT2', rec.aspect2, v_mld_melding_key);
|
||
set_aspect ('ASPECT3', rec.aspect3, v_mld_melding_key);
|
||
set_aspect ('ASPECT4', rec.aspect4, v_mld_melding_key);
|
||
set_aspect ('ASPECT5', rec.aspect5, v_mld_melding_key);
|
||
set_aspect ('ASPECT6', rec.aspect6, v_mld_melding_key);
|
||
set_aspect ('ASPECT7', rec.aspect7, v_mld_melding_key);
|
||
|
||
v_errorhint := 'Toevoegen Foto kenmerk';
|
||
IF rec.foto IS NOT NULL
|
||
THEN
|
||
mld.upsertmeldingkenmerk (v_foto_kenmerk_key,
|
||
v_mld_melding_key,
|
||
rec.foto);
|
||
END IF;
|
||
|
||
v_errorhint := 'Toevoegen Kosten kenmerk';
|
||
IF rec.kosten IS NOT NULL AND v_kosten_kenmerk_key IS NOT NULL
|
||
THEN
|
||
mld.upsertmeldingkenmerk (v_kosten_kenmerk_key,
|
||
v_mld_melding_key,
|
||
TO_CHAR(rec.kosten));
|
||
END IF;
|
||
|
||
-- Hier toevoegen insert_meldingskenmerken 1 t/m 10..
|
||
v_errorhint := 'Toevoegen kenmerk-velden ';
|
||
insert_mldkenmerk (v_mld_melding_key, rec.flex1);
|
||
insert_mldkenmerk (v_mld_melding_key, rec.flex2);
|
||
insert_mldkenmerk (v_mld_melding_key, rec.flex3);
|
||
insert_mldkenmerk (v_mld_melding_key, rec.flex4);
|
||
insert_mldkenmerk (v_mld_melding_key, rec.flex5);
|
||
insert_mldkenmerk (v_mld_melding_key, rec.flex6);
|
||
insert_mldkenmerk (v_mld_melding_key, rec.flex7);
|
||
insert_mldkenmerk (v_mld_melding_key, rec.flex8);
|
||
-- insert_mldkenmerk (v_mld_melding_key, rec.flex9);
|
||
-- insert_mldkenmerk (v_mld_melding_key, rec.flex10);
|
||
|
||
-- Bij direct accepteren moet ook de CND-berekening uitgevoerd worden
|
||
---- En indien meegegeven wordt ook de behandelaar op melding gezet.
|
||
v_errorhint := 'Meldingen direct accepteren ';
|
||
IF fac.getsetting('cnd_autoaccept') = 1
|
||
THEN
|
||
mld.setmeldingstatus(v_mld_melding_key, 4, v_prs_perslid_key, 0);
|
||
|
||
BEGIN
|
||
cnd.process_mjb_score_effects (v_mld_melding_key);
|
||
END;
|
||
COMMIT;
|
||
|
||
IF v_prs_behandelaar_key IS NOT NULL
|
||
THEN
|
||
|
||
UPDATE mld_melding
|
||
SET mld_melding_behandelaar_key = v_prs_behandelaar_key
|
||
WHERE mld_melding_key = v_mld_melding_key ;
|
||
|
||
/* -- Notificatie naar behandelaar
|
||
fac.putnotificationsrtprio (
|
||
NULL,
|
||
v_behandelaar_key,
|
||
'MLDBE2',
|
||
v_mld_melding_key,
|
||
'Melding '
|
||
|| N
|
||
|| v_mld_melding_key
|
||
|| ' is door de klant aangepast.',
|
||
2,
|
||
NULL,
|
||
NULL,
|
||
NULL,
|
||
2,
|
||
NULL); */
|
||
|
||
END IF;
|
||
|
||
END IF;
|
||
|
||
v_count_import := v_count_import + 1;
|
||
COMMIT;
|
||
EXCEPTION
|
||
WHEN OTHERS
|
||
THEN
|
||
oracle_err_num := SQLCODE;
|
||
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
|
||
v_errormsg :=
|
||
'OTHERS (error '
|
||
|| oracle_err_num
|
||
|| '/'
|
||
|| oracle_err_mes
|
||
|| ')';
|
||
fac.imp_writelog (p_import_key,
|
||
'E',
|
||
v_aanduiding || v_errormsg,
|
||
v_errorhint);
|
||
COMMIT;
|
||
END;
|
||
END LOOP;
|
||
|
||
|
||
FOR rec IN c_bestaand
|
||
LOOP
|
||
BEGIN
|
||
v_count_tot := v_count_tot + 1;
|
||
v_count_tot_n := v_count_tot_n + 1;
|
||
|
||
v_aanduiding :=
|
||
'['
|
||
|| rec.alg_gebouw_code
|
||
|| '-'
|
||
|| rec.ins_deel_omschrijving
|
||
|| '-'
|
||
|| rec.gebrekcode
|
||
|| '- lopende melding '
|
||
|| rec.flex10
|
||
|| '] ';
|
||
|
||
v_mld_melding_key := fac.safe_to_number(rec.flex10) ;
|
||
|
||
-- Gaan eerst alle waarden vullen uit de lopende melding
|
||
--
|
||
v_errorhint := 'Vullen huidige waarde OPMERKING van lopende melding';
|
||
v_mld_melding_omschrijving := '';
|
||
|
||
SELECT max(TO_CHAR(SUBSTR(mld_melding_omschrijving,1,4000)))
|
||
INTO v_mld_melding_omschrijving
|
||
FROM mld_melding
|
||
WHERE mld_melding_key = v_mld_melding_key ;
|
||
|
||
--
|
||
v_errorhint := 'Vullen huidige waarde OMVANG van lopende melding';
|
||
v_omvang := '';
|
||
|
||
SELECT ud.fac_usrdata_omschr, k.mld_kenmerk_key
|
||
INTO v_omvang, v_omvang_kenmerk_key
|
||
FROM mld_srtkenmerk sk,
|
||
fac_kenmerkdomein kd,
|
||
fac_usrtab ut,
|
||
fac_usrdata ud,
|
||
mld_kenmerk k,
|
||
mld_kenmerkmelding km
|
||
WHERE sk.mld_srtkenmerk_key = v_omvang_srtkenmerk_key
|
||
AND kd.fac_kenmerkdomein_key = sk.fac_kenmerkdomein_key
|
||
AND ut.fac_usrtab_key = kd.fac_usrtab_key
|
||
AND ud.fac_usrtab_key = kd.fac_usrtab_key
|
||
AND ud.fac_usrdata_key = fac.safe_to_number(km.mld_kenmerkmelding_waarde)
|
||
AND k.mld_srtkenmerk_key = sk.mld_srtkenmerk_key
|
||
AND km.mld_kenmerk_key = k.mld_kenmerk_key
|
||
AND km.mld_melding_key = v_mld_melding_key
|
||
AND k.mld_kenmerk_niveau = 'S';
|
||
|
||
-- De v_omvang_key bepalen die hoort bij de te importeren gebreksmelding
|
||
v_errorhint :=
|
||
'De Omvang (eigen tabel) niet gevonden (bestaat niet), regel wordt overgeslagen';
|
||
|
||
SELECT ud.fac_usrdata_key
|
||
INTO v_omvang_key
|
||
FROM mld_srtkenmerk sk,
|
||
fac_kenmerkdomein kd,
|
||
fac_usrtab ut,
|
||
fac_usrdata ud,
|
||
mld_kenmerk k,
|
||
mld_kenmerkmelding km
|
||
WHERE sk.mld_srtkenmerk_key = v_omvang_srtkenmerk_key
|
||
AND kd.fac_kenmerkdomein_key = sk.fac_kenmerkdomein_key
|
||
AND ut.fac_usrtab_key = kd.fac_usrtab_key
|
||
AND ud.fac_usrtab_key = kd.fac_usrtab_key
|
||
AND ud.fac_usrdata_upper = UPPER (rec.omvang)
|
||
AND k.mld_srtkenmerk_key = sk.mld_srtkenmerk_key
|
||
AND km.mld_kenmerk_key = k.mld_kenmerk_key
|
||
AND km.mld_melding_key = v_mld_melding_key
|
||
AND k.mld_kenmerk_niveau = 'S';
|
||
|
||
--
|
||
v_errorhint := 'Vullen huidige waarde INTENSITEIT van lopende melding';
|
||
v_intensiteit := '';
|
||
|
||
SELECT ud.fac_usrdata_omschr, k.mld_kenmerk_key
|
||
INTO v_intensiteit, v_intensiteit_kenmerk_key
|
||
FROM mld_srtkenmerk sk,
|
||
fac_kenmerkdomein kd,
|
||
fac_usrtab ut,
|
||
fac_usrdata ud,
|
||
mld_kenmerk k,
|
||
mld_kenmerkmelding km
|
||
WHERE sk.mld_srtkenmerk_key = v_intensiteit_srtkenmerk_key
|
||
AND kd.fac_kenmerkdomein_key = sk.fac_kenmerkdomein_key
|
||
AND ut.fac_usrtab_key = kd.fac_usrtab_key
|
||
AND ud.fac_usrtab_key = kd.fac_usrtab_key
|
||
AND ud.fac_usrdata_key = fac.safe_to_number(km.mld_kenmerkmelding_waarde)
|
||
AND k.mld_srtkenmerk_key = sk.mld_srtkenmerk_key
|
||
AND km.mld_kenmerk_key = k.mld_kenmerk_key
|
||
AND km.mld_melding_key = v_mld_melding_key
|
||
AND k.mld_kenmerk_niveau = 'S';
|
||
|
||
-- De v_intensiteit_key bepalen die hoort bij de te importeren gebreksmelding
|
||
v_errorhint := 'Intensiteit (eigen tabel) niet gevonden (bestaat niet), regel wordt overgeslagen';
|
||
|
||
SELECT ud.fac_usrdata_key
|
||
INTO v_intensiteit_key
|
||
FROM mld_srtkenmerk sk,
|
||
fac_kenmerkdomein kd,
|
||
fac_usrtab ut,
|
||
fac_usrdata ud,
|
||
mld_kenmerk k,
|
||
mld_kenmerkmelding km
|
||
WHERE sk.mld_srtkenmerk_key = v_intensiteit_srtkenmerk_key
|
||
AND kd.fac_kenmerkdomein_key = sk.fac_kenmerkdomein_key
|
||
AND ut.fac_usrtab_key = kd.fac_usrtab_key
|
||
AND ud.fac_usrtab_key = kd.fac_usrtab_key
|
||
AND ud.fac_usrdata_upper = UPPER (rec.intensiteit)
|
||
AND k.mld_srtkenmerk_key = sk.mld_srtkenmerk_key
|
||
AND km.mld_kenmerk_key = k.mld_kenmerk_key
|
||
AND km.mld_melding_key = v_mld_melding_key
|
||
AND k.mld_kenmerk_niveau = 'S';
|
||
|
||
--
|
||
v_errorhint := 'Vullen huidige waarde ASPECT1 van lopende melding';
|
||
v_aspect1 := '';
|
||
|
||
SELECT ud.fac_usrdata_omschr
|
||
INTO v_aspect1
|
||
FROM mld_srtkenmerk sk,
|
||
fac_kenmerkdomein kd,
|
||
fac_usrtab ut,
|
||
fac_usrdata ud,
|
||
mld_kenmerk k,
|
||
mld_kenmerkmelding km
|
||
WHERE sk.mld_srtkenmerk_code = 'ASPECT1'
|
||
AND kd.fac_kenmerkdomein_key = sk.fac_kenmerkdomein_key
|
||
AND ut.fac_usrtab_key = kd.fac_usrtab_key
|
||
AND ud.fac_usrtab_key = kd.fac_usrtab_key
|
||
AND ud.fac_usrdata_key = fac.safe_to_number(km.mld_kenmerkmelding_waarde)
|
||
AND k.mld_srtkenmerk_key = sk.mld_srtkenmerk_key
|
||
AND km.mld_kenmerk_key = k.mld_kenmerk_key
|
||
AND km.mld_melding_key = v_mld_melding_key
|
||
AND k.mld_kenmerk_niveau = 'T';
|
||
|
||
--
|
||
v_errorhint := 'Vullen huidige waarde ASPECT2 van lopende melding';
|
||
v_aspect2 := '';
|
||
|
||
SELECT ud.fac_usrdata_omschr
|
||
INTO v_aspect2
|
||
FROM mld_srtkenmerk sk,
|
||
fac_kenmerkdomein kd,
|
||
fac_usrtab ut,
|
||
fac_usrdata ud,
|
||
mld_kenmerk k,
|
||
mld_kenmerkmelding km
|
||
WHERE sk.mld_srtkenmerk_code = 'ASPECT2'
|
||
AND kd.fac_kenmerkdomein_key = sk.fac_kenmerkdomein_key
|
||
AND ut.fac_usrtab_key = kd.fac_usrtab_key
|
||
AND ud.fac_usrtab_key = kd.fac_usrtab_key
|
||
AND ud.fac_usrdata_key = fac.safe_to_number(km.mld_kenmerkmelding_waarde)
|
||
AND k.mld_srtkenmerk_key = sk.mld_srtkenmerk_key
|
||
AND km.mld_kenmerk_key = k.mld_kenmerk_key
|
||
AND km.mld_melding_key = v_mld_melding_key
|
||
AND k.mld_kenmerk_niveau = 'T';
|
||
|
||
--
|
||
v_errorhint := 'Vullen huidige waarde ASPECT3 van lopende melding';
|
||
v_aspect3 := '';
|
||
|
||
SELECT ud.fac_usrdata_omschr
|
||
INTO v_aspect3
|
||
FROM mld_srtkenmerk sk,
|
||
fac_kenmerkdomein kd,
|
||
fac_usrtab ut,
|
||
fac_usrdata ud,
|
||
mld_kenmerk k,
|
||
mld_kenmerkmelding km
|
||
WHERE sk.mld_srtkenmerk_code = 'ASPECT3'
|
||
AND kd.fac_kenmerkdomein_key = sk.fac_kenmerkdomein_key
|
||
AND ut.fac_usrtab_key = kd.fac_usrtab_key
|
||
AND ud.fac_usrtab_key = kd.fac_usrtab_key
|
||
AND ud.fac_usrdata_key = fac.safe_to_number(km.mld_kenmerkmelding_waarde)
|
||
AND k.mld_srtkenmerk_key = sk.mld_srtkenmerk_key
|
||
AND km.mld_kenmerk_key = k.mld_kenmerk_key
|
||
AND km.mld_melding_key = v_mld_melding_key
|
||
AND k.mld_kenmerk_niveau = 'T';
|
||
|
||
--
|
||
v_errorhint := 'Vullen huidige waarde ASPECT4 van lopende melding';
|
||
v_aspect4 := '';
|
||
|
||
SELECT ud.fac_usrdata_omschr
|
||
INTO v_aspect4
|
||
FROM mld_srtkenmerk sk,
|
||
fac_kenmerkdomein kd,
|
||
fac_usrtab ut,
|
||
fac_usrdata ud,
|
||
mld_kenmerk k,
|
||
mld_kenmerkmelding km
|
||
WHERE sk.mld_srtkenmerk_code = 'ASPECT4'
|
||
AND kd.fac_kenmerkdomein_key = sk.fac_kenmerkdomein_key
|
||
AND ut.fac_usrtab_key = kd.fac_usrtab_key
|
||
AND ud.fac_usrtab_key = kd.fac_usrtab_key
|
||
AND ud.fac_usrdata_key = fac.safe_to_number(km.mld_kenmerkmelding_waarde)
|
||
AND k.mld_srtkenmerk_key = sk.mld_srtkenmerk_key
|
||
AND km.mld_kenmerk_key = k.mld_kenmerk_key
|
||
AND km.mld_melding_key = v_mld_melding_key
|
||
AND k.mld_kenmerk_niveau = 'T';
|
||
|
||
--
|
||
v_errorhint := 'Vullen huidige waarde ASPECT5 van lopende melding';
|
||
v_aspect5 := '';
|
||
|
||
SELECT ud.fac_usrdata_omschr
|
||
INTO v_aspect5
|
||
FROM mld_srtkenmerk sk,
|
||
fac_kenmerkdomein kd,
|
||
fac_usrtab ut,
|
||
fac_usrdata ud,
|
||
mld_kenmerk k,
|
||
mld_kenmerkmelding km
|
||
WHERE sk.mld_srtkenmerk_code = 'ASPECT5'
|
||
AND kd.fac_kenmerkdomein_key = sk.fac_kenmerkdomein_key
|
||
AND ut.fac_usrtab_key = kd.fac_usrtab_key
|
||
AND ud.fac_usrtab_key = kd.fac_usrtab_key
|
||
AND ud.fac_usrdata_key = fac.safe_to_number(km.mld_kenmerkmelding_waarde)
|
||
AND k.mld_srtkenmerk_key = sk.mld_srtkenmerk_key
|
||
AND km.mld_kenmerk_key = k.mld_kenmerk_key
|
||
AND km.mld_melding_key = v_mld_melding_key
|
||
AND k.mld_kenmerk_niveau = 'T';
|
||
|
||
--
|
||
v_errorhint := 'Vullen huidige waarde ASPECT6 van lopende melding';
|
||
v_aspect6 := '';
|
||
|
||
SELECT ud.fac_usrdata_omschr
|
||
INTO v_aspect6
|
||
FROM mld_srtkenmerk sk,
|
||
fac_kenmerkdomein kd,
|
||
fac_usrtab ut,
|
||
fac_usrdata ud,
|
||
mld_kenmerk k,
|
||
mld_kenmerkmelding km
|
||
WHERE sk.mld_srtkenmerk_code = 'ASPECT6'
|
||
AND kd.fac_kenmerkdomein_key = sk.fac_kenmerkdomein_key
|
||
AND ut.fac_usrtab_key = kd.fac_usrtab_key
|
||
AND ud.fac_usrtab_key = kd.fac_usrtab_key
|
||
AND ud.fac_usrdata_key = fac.safe_to_number(km.mld_kenmerkmelding_waarde)
|
||
AND k.mld_srtkenmerk_key = sk.mld_srtkenmerk_key
|
||
AND km.mld_kenmerk_key = k.mld_kenmerk_key
|
||
AND km.mld_melding_key = v_mld_melding_key
|
||
AND k.mld_kenmerk_niveau = 'T';
|
||
|
||
--
|
||
v_errorhint := 'Vullen huidige waarde ASPECT7 van lopende melding';
|
||
v_aspect7 := '';
|
||
|
||
SELECT ud.fac_usrdata_omschr
|
||
INTO v_aspect7
|
||
FROM mld_srtkenmerk sk,
|
||
fac_kenmerkdomein kd,
|
||
fac_usrtab ut,
|
||
fac_usrdata ud,
|
||
mld_kenmerk k,
|
||
mld_kenmerkmelding km
|
||
WHERE sk.mld_srtkenmerk_code = 'ASPECT7'
|
||
AND kd.fac_kenmerkdomein_key = sk.fac_kenmerkdomein_key
|
||
AND ut.fac_usrtab_key = kd.fac_usrtab_key
|
||
AND ud.fac_usrtab_key = kd.fac_usrtab_key
|
||
AND ud.fac_usrdata_key = fac.safe_to_number(km.mld_kenmerkmelding_waarde)
|
||
AND k.mld_srtkenmerk_key = sk.mld_srtkenmerk_key
|
||
AND km.mld_kenmerk_key = k.mld_kenmerk_key
|
||
AND km.mld_melding_key = v_mld_melding_key
|
||
AND k.mld_kenmerk_niveau = 'T';
|
||
|
||
--
|
||
v_errorhint := 'Vullen huidige waarde FOTO van lopende melding';
|
||
v_foto := '';
|
||
-- v_foto_kenmerk_key;
|
||
|
||
SELECT max(km.mld_kenmerkmelding_waarde)
|
||
INTO v_foto
|
||
FROM mld_kenmerkmelding km, mld_kenmerk k
|
||
WHERE km.mld_melding_key = v_mld_melding_key
|
||
AND km.mld_kenmerk_key = k.mld_kenmerk_key
|
||
AND k.mld_srtkenmerk_key = (SELECT MAX (mld_srtkenmerk_key) FROM mld_srtkenmerk WHERE mld_srtkenmerk_code = 'FOTONAAM');
|
||
|
||
--
|
||
v_errorhint := 'Vullen huidige waarde KOSTEN van lopende melding';
|
||
v_kosten := '';
|
||
|
||
SELECT max(km.mld_kenmerkmelding_waarde)
|
||
INTO v_kosten
|
||
FROM mld_kenmerkmelding km, mld_kenmerk k
|
||
WHERE km.mld_melding_key = v_mld_melding_key
|
||
AND km.mld_kenmerk_key = k.mld_kenmerk_key
|
||
AND k.mld_srtkenmerk_key = (SELECT MAX (mld_srtkenmerk_key) FROM mld_srtkenmerk WHERE mld_srtkenmerk_code = 'KOSTEN');
|
||
|
||
--
|
||
v_errorhint := 'Vullen huidige waarde PLANDATUM van lopende melding';
|
||
|
||
SELECT max(mld_melding_einddatum)
|
||
INTO v_plandatum_date
|
||
FROM mld_melding
|
||
WHERE mld_melding_key = v_mld_melding_key ;
|
||
|
||
-- flex1
|
||
v_errorhint := 'Vullen huidige waarde DIENST van lopende melding';
|
||
v_dienst := '';
|
||
|
||
SELECT max(d.prs_dienst_omschrijving)
|
||
INTO v_dienst
|
||
FROM mld_kenmerkmelding km, mld_kenmerk k, mld_srtkenmerk sk, fac_kenmerkdomein kd, prs_dienst d
|
||
WHERE km.mld_melding_key = v_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 = 'DIENST'
|
||
AND sk.fac_kenmerkdomein_key = kd.fac_kenmerkdomein_key
|
||
AND kd.fac_kenmerkdomein_objectnaam = 'PRS_DIENST'
|
||
AND d.prs_dienst_key = fac.safe_to_number(km.mld_kenmerkmelding_waarde)
|
||
AND k.mld_kenmerk_niveau = 'T' ;
|
||
|
||
SELECT max(k.mld_kenmerk_key)
|
||
INTO v_flex1_kenmerk_key
|
||
FROM mld_kenmerk k, mld_srtkenmerk sk
|
||
WHERE k.mld_srtkenmerk_key = sk.mld_srtkenmerk_key
|
||
AND k.mld_kenmerk_niveau = 'T'
|
||
AND k.mld_stdmelding_key = fac.getsetting ('cnd_gebreken_srtdisc_key')
|
||
AND sk.mld_srtkenmerk_code = 'DIENST' ;
|
||
|
||
-- flex2
|
||
v_errorhint := 'Vullen huidige waarde TAAKGROEP van lopende melding';
|
||
v_taakgroep := '';
|
||
|
||
SELECT max(ud.fac_usrdata_omschr)
|
||
INTO v_taakgroep
|
||
FROM mld_srtkenmerk sk,
|
||
fac_kenmerkdomein kd,
|
||
fac_usrtab ut,
|
||
fac_usrdata ud,
|
||
mld_kenmerk k,
|
||
mld_kenmerkmelding km
|
||
WHERE sk.mld_srtkenmerk_code = 'TAAKGROEP'
|
||
-- sk.mld_srtkenmerk_key = (DISTINCT(select fac.safe_to_number(substr(flex2, 1, INSTR(flex2,'|')-1))) -- DIT EVT NOG INPASSEN voor de FLEX5 t/m 9
|
||
-- from cnd_imp_nen2767_results where fac_import_key = p_import_key)
|
||
AND kd.fac_kenmerkdomein_key = sk.fac_kenmerkdomein_key
|
||
AND ut.fac_usrtab_key = kd.fac_usrtab_key
|
||
AND ud.fac_usrtab_key = kd.fac_usrtab_key
|
||
AND ud.fac_usrdata_key = fac.safe_to_number(km.mld_kenmerkmelding_waarde)
|
||
AND k.mld_srtkenmerk_key = sk.mld_srtkenmerk_key
|
||
AND km.mld_kenmerk_key = k.mld_kenmerk_key
|
||
AND km.mld_melding_key = v_mld_melding_key
|
||
AND k.mld_kenmerk_niveau = 'T';
|
||
|
||
SELECT max(k.mld_kenmerk_key)
|
||
INTO v_flex2_kenmerk_key
|
||
FROM mld_kenmerk k, mld_srtkenmerk sk
|
||
WHERE k.mld_srtkenmerk_key = sk.mld_srtkenmerk_key
|
||
AND k.mld_kenmerk_niveau = 'T'
|
||
AND k.mld_stdmelding_key = fac.getsetting ('cnd_gebreken_srtdisc_key')
|
||
AND sk.mld_srtkenmerk_code = 'TAAKGROEP' ;
|
||
|
||
-- flex3
|
||
v_errorhint := 'Vullen huidige waarde DATUMGEREEDINSPECTEUR van lopende melding';
|
||
v_datumgereedinspecteur := '';
|
||
|
||
SELECT max(km.mld_kenmerkmelding_waarde)
|
||
INTO v_datumgereedinspecteur
|
||
FROM mld_kenmerkmelding km, mld_kenmerk k
|
||
WHERE km.mld_melding_key = v_mld_melding_key
|
||
AND km.mld_kenmerk_key = k.mld_kenmerk_key
|
||
AND k.mld_srtkenmerk_key = (SELECT MAX (mld_srtkenmerk_key) FROM mld_srtkenmerk WHERE mld_srtkenmerk_code = 'DATUMGEREEDINSPECTEUR');
|
||
|
||
SELECT max(k.mld_kenmerk_key)
|
||
INTO v_flex3_kenmerk_key
|
||
FROM mld_kenmerk k, mld_srtkenmerk sk
|
||
WHERE k.mld_srtkenmerk_key = sk.mld_srtkenmerk_key
|
||
AND k.mld_kenmerk_niveau = 'T'
|
||
AND k.mld_stdmelding_key = fac.getsetting ('cnd_gebreken_srtdisc_key')
|
||
AND sk.mld_srtkenmerk_code = 'DATUMGEREEDINSPECTEUR' ;
|
||
|
||
-- flex4
|
||
v_errorhint := 'Vullen huidige waarde GEADVISEERDSTARTJAAR van lopende melding';
|
||
v_geadviseerdstartjaar := '';
|
||
|
||
SELECT max(km.mld_kenmerkmelding_waarde)
|
||
INTO v_geadviseerdstartjaar
|
||
FROM mld_kenmerkmelding km, mld_kenmerk k
|
||
WHERE km.mld_melding_key = v_mld_melding_key
|
||
AND km.mld_kenmerk_key = k.mld_kenmerk_key
|
||
AND k.mld_srtkenmerk_key = (SELECT MAX (mld_srtkenmerk_key) FROM mld_srtkenmerk WHERE mld_srtkenmerk_code = 'GEADVISEERDSTARTJAAR');
|
||
|
||
SELECT max(k.mld_kenmerk_key)
|
||
INTO v_flex4_kenmerk_key
|
||
FROM mld_kenmerk k, mld_srtkenmerk sk
|
||
WHERE k.mld_srtkenmerk_key = sk.mld_srtkenmerk_key
|
||
AND k.mld_kenmerk_niveau = 'T'
|
||
AND k.mld_stdmelding_key = fac.getsetting ('cnd_gebreken_srtdisc_key')
|
||
AND sk.mld_srtkenmerk_code = 'GEADVISEERDSTARTJAAR' ;
|
||
|
||
-- Conditiescore
|
||
v_errorhint := 'Vullen huidige waarde CONDITIESCORE van lopende melding';
|
||
v_conditiescore := '';
|
||
|
||
SELECT max(km.mld_kenmerkmelding_waarde)
|
||
INTO v_conditiescore
|
||
FROM mld_kenmerkmelding km, mld_kenmerk k
|
||
WHERE km.mld_melding_key = v_mld_melding_key
|
||
AND km.mld_kenmerk_key = k.mld_kenmerk_key
|
||
AND k.mld_srtkenmerk_key = (SELECT MAX (mld_srtkenmerk_key) FROM mld_srtkenmerk WHERE mld_srtkenmerk_code = 'CONDITIESCORE');
|
||
|
||
-- Prioriteitsscore
|
||
v_errorhint := 'Vullen huidige waarde PRIORITEITS-SCORE van lopende melding';
|
||
v_prioscore := '';
|
||
|
||
SELECT max(km.mld_kenmerkmelding_waarde)
|
||
INTO v_prioscore
|
||
FROM mld_kenmerkmelding km, mld_kenmerk k
|
||
WHERE km.mld_melding_key = v_mld_melding_key
|
||
AND km.mld_kenmerk_key = k.mld_kenmerk_key
|
||
AND k.mld_srtkenmerk_key = (SELECT MAX (mld_srtkenmerk_key) FROM mld_srtkenmerk WHERE mld_srtkenmerk_code = 'PRIORITEITSCORE');
|
||
|
||
--
|
||
v_errorhint := 'Bepalen STATUS van lopende melding';
|
||
v_mld_melding_status := '';
|
||
|
||
SELECT max(mld_melding_status)
|
||
INTO v_mld_melding_status
|
||
FROM mld_melding
|
||
WHERE mld_melding_key = v_mld_melding_key ;
|
||
|
||
--
|
||
v_errorhint := 'Bepalen INSPECTEUR / AANVRAGER van lopende melding';
|
||
v_inspecteur := '';
|
||
|
||
SELECT p.prs_perslid_email
|
||
INTO v_inspecteur
|
||
FROM mld_melding m, prs_perslid p
|
||
WHERE m.prs_perslid_key = p.prs_perslid_key
|
||
AND mld_melding_key = v_mld_melding_key ;
|
||
|
||
--
|
||
v_errorhint := 'Bepalen BEHANDELAAR van lopende melding';
|
||
v_behandelaar := '';
|
||
|
||
SELECT max(p.prs_perslid_email)
|
||
INTO v_behandelaar
|
||
FROM mld_melding m, prs_perslid p
|
||
WHERE m.mld_melding_behandelaar_key = p.prs_perslid_key
|
||
AND mld_melding_key = v_mld_melding_key ;
|
||
|
||
|
||
-- Alles gevuld. Nu alle meldingsvelden updaten als REC-waarde gevuld is en als deze afwijkt van de huidige waarde
|
||
v_herberekenen:=0;
|
||
|
||
-- Omschrijving melding - Opmerking melding
|
||
v_errorhint := 'Aanpassen opmerking bij melding';
|
||
v_aanduiding := 'Melding N' || TO_CHAR(v_mld_melding_key) || ' is gewijzigd via upload gebreken:' || CHR(13) || CHR(10) || 'Omschrijving aangevuld met: ' || rec.mld_melding_omschrijving ;
|
||
|
||
IF v_mld_melding_omschrijving <> rec.mld_melding_omschrijving AND rec.mld_melding_omschrijving IS NOT NULL
|
||
THEN
|
||
|
||
UPDATE mld_melding
|
||
SET mld_melding_omschrijving = v_mld_melding_omschrijving || CHR (13) || CHR(13) || CHR (10) || to_char(sysdate,'DD-MM-YYYY') || ':' || CHR(13) || CHR (10) || rec.mld_melding_omschrijving
|
||
WHERE mld_melding_key = v_mld_melding_key;
|
||
|
||
END IF;
|
||
|
||
-- Omvang
|
||
v_errorhint := 'Aanpassen Omvang kenmerk';
|
||
v_aanduiding := 'Melding N' || TO_CHAR(v_mld_melding_key) || ' is gewijzigd via upload gebreken:' || CHR(13) || CHR(10) || 'Omvang: (' || v_omvang || ') --> ' || rec.omvang ;
|
||
|
||
IF rec.omvang IS NOT NULL AND v_omvang <> rec.omvang
|
||
THEN
|
||
mld.upsertmeldingkenmerk (v_omvang_kenmerk_key,
|
||
v_mld_melding_key,
|
||
v_omvang_key);
|
||
|
||
v_herberekenen:=1;
|
||
fac.trackaction ('MLDUPD', v_mld_melding_key, sys_context('USERENV', 'CLIENT_IDENTIFIER'), NULL, v_aanduiding);
|
||
END IF;
|
||
|
||
v_errorhint := 'Aanpassen Intensiteit kenmerk';
|
||
v_aanduiding := 'Melding N' || TO_CHAR(v_mld_melding_key) || ' is gewijzigd via upload gebreken:' || CHR(13) || CHR(10) || 'Intensiteit: (' || v_intensiteit || ') --> ' || rec.intensiteit ;
|
||
|
||
IF rec.intensiteit IS NOT NULL AND v_intensiteit <> rec.intensiteit
|
||
THEN
|
||
mld.upsertmeldingkenmerk (v_intensiteit_kenmerk_key,
|
||
v_mld_melding_key,
|
||
v_intensiteit_key);
|
||
|
||
v_herberekenen:=1;
|
||
fac.trackaction ('MLDUPD', v_mld_melding_key, sys_context('USERENV', 'CLIENT_IDENTIFIER'), NULL, v_aanduiding);
|
||
END IF;
|
||
|
||
-- Aspect 1
|
||
v_errorhint := 'Aanpassen aspectwaarde 1';
|
||
v_aanduiding := 'Melding N' || TO_CHAR(v_mld_melding_key) || ' is gewijzigd via upload gebreken:' || CHR(13) || CHR(10) || 'Aspect1: (' || v_aspect1 || ') --> ' || rec.aspect1 ;
|
||
|
||
IF NOT(rec.aspect1 = 'NVT') AND v_aspect1 <> rec.aspect1 AND NOT(INSTR(v_aspect1,'NVT')>0 AND INSTR(rec.aspect1,'NVT')>0)
|
||
THEN
|
||
IF rec.aspect1 = '0 - NVT' THEN
|
||
set_aspect ('ASPECT1', 'NVT', v_mld_melding_key);
|
||
ELSE
|
||
set_aspect ('ASPECT1', rec.aspect1, v_mld_melding_key);
|
||
END IF;
|
||
|
||
v_herberekenen:=1;
|
||
fac.trackaction ('MLDUPD', v_mld_melding_key, sys_context('USERENV', 'CLIENT_IDENTIFIER'), NULL, v_aanduiding);
|
||
END IF;
|
||
|
||
-- Aspect 2
|
||
v_errorhint := 'Aanpassen aspectwaarde 2';
|
||
v_aanduiding := 'Melding N' || TO_CHAR(v_mld_melding_key) || ' is gewijzigd via upload gebreken:' || CHR(13) || CHR(10) || 'Aspect2: (' || v_aspect2 || ') --> ' || rec.aspect2 ;
|
||
|
||
IF NOT(rec.aspect2 = 'NVT') AND v_aspect2 <> rec.aspect2 AND NOT(INSTR(v_aspect2,'NVT')>0 AND INSTR(rec.aspect2,'NVT')>0)
|
||
THEN
|
||
IF rec.aspect2 = '0 - NVT' THEN
|
||
set_aspect ('ASPECT2', 'NVT', v_mld_melding_key);
|
||
ELSE
|
||
set_aspect ('ASPECT2', rec.aspect2, v_mld_melding_key);
|
||
END IF;
|
||
|
||
v_herberekenen:=1;
|
||
fac.trackaction ('MLDUPD', v_mld_melding_key, sys_context('USERENV', 'CLIENT_IDENTIFIER'), NULL, v_aanduiding);
|
||
END IF;
|
||
|
||
-- Aspect 3
|
||
v_errorhint := 'Aanpassen aspectwaarde 3';
|
||
v_aanduiding := 'Melding N' || TO_CHAR(v_mld_melding_key) || ' is gewijzigd via upload gebreken:' || CHR(13) || CHR(10) || 'Aspect3: (' || v_aspect3 || ') --> ' || rec.aspect3 ;
|
||
|
||
IF NOT(rec.aspect3 = 'NVT') AND v_aspect3 <> rec.aspect3 AND NOT(INSTR(v_aspect3,'NVT')>0 AND INSTR(rec.aspect3,'NVT')>0)
|
||
THEN
|
||
IF rec.aspect3 = '0 - NVT' THEN
|
||
set_aspect ('ASPECT3', 'NVT', v_mld_melding_key);
|
||
ELSE
|
||
set_aspect ('ASPECT3', rec.aspect3, v_mld_melding_key);
|
||
END IF;
|
||
|
||
v_herberekenen:=1;
|
||
fac.trackaction ('MLDUPD', v_mld_melding_key, sys_context('USERENV', 'CLIENT_IDENTIFIER'), NULL, v_aanduiding);
|
||
END IF;
|
||
|
||
-- Aspect 4
|
||
v_errorhint := 'Aanpassen aspectwaarde 4';
|
||
v_aanduiding := 'Melding N' || TO_CHAR(v_mld_melding_key) || ' is gewijzigd via upload gebreken:' || CHR(13) || CHR(10) || 'Aspect4: (' || v_aspect4 || ') --> ' || rec.aspect4 ;
|
||
|
||
IF NOT(rec.aspect4 = 'NVT') AND v_aspect4 <> rec.aspect4 AND NOT(INSTR(v_aspect4,'NVT')>0 AND INSTR(rec.aspect4,'NVT')>0)
|
||
THEN
|
||
IF rec.aspect4 = '0 - NVT' THEN
|
||
set_aspect ('ASPECT4', 'NVT', v_mld_melding_key);
|
||
ELSE
|
||
set_aspect ('ASPECT4', rec.aspect4, v_mld_melding_key);
|
||
END IF;
|
||
|
||
v_herberekenen:=1;
|
||
fac.trackaction ('MLDUPD', v_mld_melding_key, sys_context('USERENV', 'CLIENT_IDENTIFIER'), NULL, v_aanduiding);
|
||
END IF;
|
||
|
||
-- Aspect 5
|
||
v_errorhint := 'Aanpassen aspectwaarde 5';
|
||
v_aanduiding := 'Melding N' || TO_CHAR(v_mld_melding_key) || ' is gewijzigd via upload gebreken:' || CHR(13) || CHR(10) || 'Aspect5: (' || v_aspect5 || ') --> ' || rec.aspect5 ;
|
||
|
||
IF NOT(rec.aspect5 = 'NVT') AND v_aspect5 <> rec.aspect5 AND NOT(INSTR(v_aspect5,'NVT')>0 AND INSTR(rec.aspect5,'NVT')>0)
|
||
THEN
|
||
IF rec.aspect5 = '0 - NVT' THEN
|
||
set_aspect ('ASPECT5', 'NVT', v_mld_melding_key);
|
||
ELSE
|
||
set_aspect ('ASPECT5', rec.aspect5, v_mld_melding_key);
|
||
END IF;
|
||
|
||
v_herberekenen:=1;
|
||
fac.trackaction ('MLDUPD', v_mld_melding_key, sys_context('USERENV', 'CLIENT_IDENTIFIER'), NULL, v_aanduiding);
|
||
END IF;
|
||
|
||
-- Aspect 6
|
||
v_errorhint := 'Aanpassen aspectwaarde 6';
|
||
v_aanduiding := 'Melding N' || TO_CHAR(v_mld_melding_key) || ' is gewijzigd via upload gebreken:' || CHR(13) || CHR(10) || 'Aspect6: (' || v_aspect6 || ') --> ' || rec.aspect6 ;
|
||
|
||
IF NOT(rec.aspect6 = 'NVT') AND v_aspect6 <> rec.aspect6 AND NOT(INSTR(v_aspect6,'NVT')>0 AND INSTR(rec.aspect6,'NVT')>0)
|
||
THEN
|
||
IF rec.aspect6 = '0 - NVT' THEN
|
||
set_aspect ('ASPECT6', 'NVT', v_mld_melding_key);
|
||
ELSE
|
||
set_aspect ('ASPECT6', rec.aspect6, v_mld_melding_key);
|
||
END IF;
|
||
|
||
v_herberekenen:=1;
|
||
fac.trackaction ('MLDUPD', v_mld_melding_key, sys_context('USERENV', 'CLIENT_IDENTIFIER'), NULL, v_aanduiding);
|
||
END IF;
|
||
|
||
-- Aspect 7
|
||
v_errorhint := 'Aanpassen aspectwaarde 7';
|
||
v_aanduiding := 'Melding N' || TO_CHAR(v_mld_melding_key) || ' is gewijzigd via upload gebreken:' || CHR(13) || CHR(10) || 'Aspect7: (' || v_aspect7 || ') --> ' || rec.aspect7 ;
|
||
|
||
IF NOT(rec.aspect7 = 'NVT') AND v_aspect7 <> rec.aspect7 AND NOT(INSTR(v_aspect7,'NVT')>0 AND INSTR(rec.aspect7,'NVT')>0)
|
||
THEN
|
||
IF rec.aspect7 = '0 - NVT' THEN
|
||
set_aspect ('ASPECT7', 'NVT', v_mld_melding_key);
|
||
ELSE
|
||
set_aspect ('ASPECT7', rec.aspect7, v_mld_melding_key);
|
||
END IF;
|
||
|
||
v_herberekenen:=1;
|
||
fac.trackaction ('MLDUPD', v_mld_melding_key, sys_context('USERENV', 'CLIENT_IDENTIFIER'), NULL, v_aanduiding);
|
||
END IF;
|
||
|
||
--
|
||
v_errorhint := 'Aanpassen Foto kenmerk';
|
||
v_aanduiding := 'Melding N' || TO_CHAR(v_mld_melding_key) || ' is gewijzigd via upload gebreken:' || CHR(13) || CHR(10) || 'Fotonaam: (' || v_foto || ') --> ' || rec.foto ;
|
||
|
||
IF rec.foto IS NOT NULL AND COALESCE(v_foto, '<leeg>') <> rec.foto AND v_foto_kenmerk_key IS NOT NULL
|
||
THEN
|
||
mld.upsertmeldingkenmerk (v_foto_kenmerk_key,
|
||
v_mld_melding_key,
|
||
rec.foto);
|
||
|
||
fac.trackaction ('MLDUPD', v_mld_melding_key, sys_context('USERENV', 'CLIENT_IDENTIFIER'), NULL, v_aanduiding);
|
||
END IF;
|
||
|
||
--
|
||
v_errorhint := 'Aanpassen Kosten kenmerk';
|
||
v_aanduiding := 'Melding N' || TO_CHAR(v_mld_melding_key) || ' is gewijzigd via upload gebreken:' || CHR(13) || CHR(10) || 'Kosten: (' || v_kosten || ') --> ' || rec.kosten ;
|
||
|
||
IF rec.kosten IS NOT NULL AND COALESCE(fac.safe_to_number(v_kosten), -1) <> rec.kosten AND v_kosten_kenmerk_key IS NOT NULL
|
||
THEN
|
||
mld.upsertmeldingkenmerk (v_kosten_kenmerk_key,
|
||
v_mld_melding_key,
|
||
TO_CHAR(rec.kosten));
|
||
|
||
fac.trackaction ('MLDUPD', v_mld_melding_key, sys_context('USERENV', 'CLIENT_IDENTIFIER'), NULL, v_aanduiding);
|
||
END IF;
|
||
|
||
-- Plandatum
|
||
v_errorhint := 'Aanpassen Plandatum';
|
||
v_aanduiding := 'Melding N' || TO_CHAR(v_mld_melding_key) || ' is gewijzigd via upload gebreken:' || CHR(13) || CHR(10) || 'Plandatum: (' || TO_CHAR(v_plandatum_date) || ') --> ' || TO_CHAR(rec.plandatum) ;
|
||
|
||
IF rec.plandatum IS NOT NULL AND v_plandatum_date <> rec.plandatum
|
||
THEN
|
||
UPDATE mld_melding
|
||
SET mld_melding_einddatum = rec.plandatum
|
||
WHERE mld_melding_key = v_mld_melding_key ;
|
||
|
||
fac.trackaction ('MLDUPD', v_mld_melding_key, sys_context('USERENV', 'CLIENT_IDENTIFIER'), NULL, v_aanduiding);
|
||
END IF;
|
||
|
||
-- flex1
|
||
v_errorhint := 'Aanpassen Dienst (Flex1)';
|
||
v_flex1_waarde := substr(rec.flex1,instr(rec.flex1,'=')+1,length(rec.flex1)-instr(rec.flex1,'='));
|
||
v_flex1_waarde_key := NULL;
|
||
v_aanduiding := 'Melding N' || TO_CHAR(v_mld_melding_key) || ' is gewijzigd via upload gebreken:' || CHR(13) || CHR(10) || 'Dienst: (' || v_dienst || ') --> ' || v_flex1_waarde ;
|
||
|
||
IF v_flex1_waarde IS NOT NULL AND COALESCE(v_dienst,'<leeg>') <> v_flex1_waarde AND v_flex1_kenmerk_key IS NOT NULL
|
||
THEN
|
||
SELECT max(prs_dienst_key)
|
||
INTO v_flex1_waarde_key
|
||
FROM prs_dienst
|
||
WHERE UPPER(prs_dienst_omschrijving) = UPPER(v_flex1_waarde);
|
||
|
||
IF v_flex1_waarde_key IS NOT NULL
|
||
THEN
|
||
mld.upsertmeldingkenmerk (v_flex1_kenmerk_key,
|
||
v_mld_melding_key,
|
||
v_flex1_waarde_key);
|
||
|
||
fac.trackaction ('MLDUPD', v_mld_melding_key, sys_context('USERENV', 'CLIENT_IDENTIFIER'), NULL, v_aanduiding);
|
||
END IF;
|
||
END IF;
|
||
|
||
-- flex2
|
||
v_errorhint := 'Aanpassen Taakgroep (Flex2)';
|
||
v_flex2_waarde := substr(rec.flex2,instr(rec.flex2,'=')+1,length(rec.flex2)-instr(rec.flex2,'='));
|
||
v_flex2_waarde_key := NULL;
|
||
v_aanduiding := 'Melding N' || TO_CHAR(v_mld_melding_key) || ' is gewijzigd via upload gebreken:' || CHR(13) || CHR(10) || 'Taakgroep: (' || v_taakgroep || ') --> ' || v_flex2_waarde ;
|
||
|
||
IF v_flex2_waarde IS NOT NULL AND COALESCE(v_taakgroep,'<leeg>') <> v_flex2_waarde AND v_flex2_kenmerk_key IS NOT NULL
|
||
THEN
|
||
SELECT ud.fac_usrdata_key
|
||
INTO v_flex2_waarde_key
|
||
FROM mld_srtkenmerk sk,
|
||
fac_kenmerkdomein kd,
|
||
fac_usrtab ut,
|
||
fac_usrdata ud,
|
||
mld_kenmerk k
|
||
WHERE sk.mld_srtkenmerk_code = 'TAAKGROEP'
|
||
AND kd.fac_kenmerkdomein_key = sk.fac_kenmerkdomein_key
|
||
AND ut.fac_usrtab_key = kd.fac_usrtab_key
|
||
AND ud.fac_usrtab_key = kd.fac_usrtab_key
|
||
AND k.mld_srtkenmerk_key = sk.mld_srtkenmerk_key
|
||
AND k.mld_kenmerk_niveau = 'T'
|
||
AND ud.fac_usrdata_upper = UPPER(v_flex2_waarde);
|
||
|
||
IF v_flex2_waarde_key IS NOT NULL
|
||
THEN
|
||
mld.upsertmeldingkenmerk (v_flex2_kenmerk_key,
|
||
v_mld_melding_key,
|
||
v_flex2_waarde_key);
|
||
|
||
fac.trackaction ('MLDUPD', v_mld_melding_key, sys_context('USERENV', 'CLIENT_IDENTIFIER'), NULL, v_aanduiding);
|
||
END IF;
|
||
END IF;
|
||
|
||
-- flex3
|
||
v_errorhint := 'Aanpassen DatumGereedInspecteur (Flex3)';
|
||
v_flex3_waarde := substr(rec.flex3,instr(rec.flex3,'=')+1,length(rec.flex3)-instr(rec.flex3,'='));
|
||
v_aanduiding := 'Melding N' || TO_CHAR(v_mld_melding_key) || ' is gewijzigd via upload gebreken:' || CHR(13) || CHR(10) || 'Datum gereed (inspecteur): (' || v_datumgereedinspecteur || ') --> ' || v_flex3_waarde ;
|
||
|
||
IF v_flex3_waarde IS NOT NULL AND (fac.safe_to_date (v_flex3_waarde, 'dd-mm-yyyy') IS NOT NULL) AND (COALESCE(v_datumgereedinspecteur,'<leeg>') <> v_flex3_waarde) AND v_flex3_kenmerk_key IS NOT NULL
|
||
THEN
|
||
mld.upsertmeldingkenmerk (v_flex3_kenmerk_key,
|
||
v_mld_melding_key,
|
||
v_flex3_waarde);
|
||
|
||
fac.trackaction ('MLDUPD', v_mld_melding_key, sys_context('USERENV', 'CLIENT_IDENTIFIER'), NULL, v_aanduiding);
|
||
END IF;
|
||
|
||
-- flex4
|
||
v_errorhint := 'Aanpassen Geadviseerd Startjaar (Flex4)';
|
||
v_flex4_waarde := substr(rec.flex4,instr(rec.flex4,'=')+1,length(rec.flex4)-instr(rec.flex4,'='));
|
||
v_aanduiding := 'Melding N' || TO_CHAR(v_mld_melding_key) || ' is gewijzigd via upload gebreken:' || CHR(13) || CHR(10) || 'Startjaar: (' || v_geadviseerdstartjaar || ') --> ' || v_flex4_waarde ;
|
||
|
||
IF v_flex4_waarde IS NOT NULL AND COALESCE(v_geadviseerdstartjaar,'<leeg>') <> v_flex4_waarde AND v_flex4_kenmerk_key IS NOT NULL
|
||
THEN
|
||
mld.upsertmeldingkenmerk (v_flex4_kenmerk_key,
|
||
v_mld_melding_key,
|
||
v_flex4_waarde);
|
||
|
||
fac.trackaction ('MLDUPD', v_mld_melding_key, sys_context('USERENV', 'CLIENT_IDENTIFIER'), NULL, v_aanduiding);
|
||
END IF;
|
||
|
||
-- Inspecteur
|
||
v_errorhint := 'Aanpassen Inspecteur / Aanvrager';
|
||
v_aanduiding := 'Melding N' || TO_CHAR(v_mld_melding_key) || ' is gewijzigd via upload gebreken:' || CHR(13) || CHR(10) || 'Inspecteur: (' || v_inspecteur || ') --> ' || rec.prs_perslid_email ;
|
||
|
||
IF (rec.prs_perslid_email IS NOT NULL OR LENGTH (rec.prs_perslid_email) > 200) AND COALESCE(v_inspecteur, '<leeg>') <> rec.prs_perslid_email
|
||
THEN
|
||
|
||
SELECT prs_perslid_key
|
||
INTO v_prs_perslid_key
|
||
FROM prs_v_aanwezigperslid
|
||
WHERE UPPER (prs_perslid_email) = UPPER (rec.prs_perslid_email);
|
||
|
||
IF v_prs_perslid_key IS NOT NULL
|
||
THEN
|
||
|
||
UPDATE mld_melding
|
||
SET prs_perslid_key = v_prs_perslid_key, prs_perslid_key_voor = v_prs_perslid_key
|
||
WHERE mld_melding_key = v_mld_melding_key ;
|
||
|
||
fac.trackaction ('MLDUPD', v_mld_melding_key, sys_context('USERENV', 'CLIENT_IDENTIFIER'), NULL, v_aanduiding);
|
||
END IF;
|
||
END IF;
|
||
|
||
-- Behandelaar als nodig in behandeling zetten
|
||
v_errorhint := 'Aanpassen Behandelaar';
|
||
v_aanduiding := 'Melding N' || TO_CHAR(v_mld_melding_key) || ' is gewijzigd via upload gebreken:' || CHR(13) || CHR(10) || 'Behandelaar: (' || v_behandelaar || ') --> ' || rec.flex9 ;
|
||
|
||
IF rec.flex9 IS NOT NULL AND COALESCE(v_behandelaar, '<leeg>') <> rec.flex9
|
||
THEN
|
||
|
||
SELECT max(prs_perslid_key)
|
||
INTO v_prs_behandelaar_key
|
||
FROM prs_v_aanwezigperslid
|
||
WHERE UPPER (prs_perslid_email) = UPPER (rec.flex9);
|
||
|
||
IF v_prs_behandelaar_key IS NOT NULL
|
||
THEN
|
||
|
||
UPDATE mld_melding
|
||
SET mld_melding_behandelaar_key = v_prs_behandelaar_key
|
||
WHERE mld_melding_key = v_mld_melding_key ;
|
||
|
||
fac.trackaction ('MLDUPD', v_mld_melding_key, sys_context('USERENV', 'CLIENT_IDENTIFIER'), NULL, v_aanduiding);
|
||
END IF;
|
||
|
||
IF v_mld_melding_status IN (2)
|
||
THEN
|
||
|
||
-- PROCEDURE setmeldingstatus (pmeldingkey IN NUMBER, pstatus IN NUMBER, puserkey IN NUMBER, pnotificeren IN NUMBER DEFAULT 1)
|
||
BEGIN mld.setmeldingstatus(v_mld_melding_key, 4, sys_context('USERENV', 'CLIENT_IDENTIFIER'), 1); END; -- Status 4 is in behandeling
|
||
|
||
v_mld_melding_status:=4;
|
||
v_herberekenen:=1;
|
||
|
||
END IF;
|
||
|
||
END IF;
|
||
|
||
|
||
-- Her-berekenen van de Conditie- en Prioriteitscore
|
||
---- Alleen als de melding status lopend heeft..
|
||
---- Alleen als de omvang, intensiteit of 1 vd aspectwaarden is veranderd..
|
||
v_errorhint := 'Herberekenen conditie- en prio-score';
|
||
v_aanduiding := 'Melding N' || TO_CHAR(v_mld_melding_key) || ' is herberekend via upload gebreken:' || CHR(13) || CHR(10) || 'Oorspronkelijke conditiescore: ' || TO_CHAR(v_conditiescore) || CHR(13) || CHR(10) || 'Oorspronkelijke prioriteitscore: ' || TO_CHAR(v_prioscore) ;
|
||
|
||
IF v_mld_melding_status IN (0,4,7,99) AND v_herberekenen=1
|
||
THEN
|
||
|
||
BEGIN
|
||
cnd.process_mjb_score_effects (v_mld_melding_key);
|
||
END;
|
||
COMMIT;
|
||
|
||
fac.trackaction ('MLDUPD', v_mld_melding_key, sys_context('USERENV', 'CLIENT_IDENTIFIER'), NULL, v_aanduiding);
|
||
END IF;
|
||
|
||
v_count_import := v_count_import + 1;
|
||
COMMIT;
|
||
EXCEPTION
|
||
WHEN OTHERS
|
||
THEN
|
||
oracle_err_num := SQLCODE;
|
||
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
|
||
v_errormsg :=
|
||
'OTHERS (error '
|
||
|| oracle_err_num
|
||
|| '/'
|
||
|| oracle_err_mes
|
||
|| ')';
|
||
fac.imp_writelog (p_import_key,
|
||
'E',
|
||
v_aanduiding || v_errormsg,
|
||
v_errorhint);
|
||
COMMIT;
|
||
END;
|
||
END LOOP;
|
||
|
||
fac.imp_writelog (
|
||
p_import_key,
|
||
'S',
|
||
'UPDATE NEN2767_RESULTS: aantal regels te verwerken: '
|
||
|| TO_CHAR (v_count_tot)
|
||
|| ' / aantal geldige regels: '
|
||
|| TO_CHAR (v_count_import)
|
||
|| ' / aantal BIJGEWERKTE, BESTAANDE gebreken: '
|
||
|| TO_CHAR (v_count_tot_n)
|
||
,
|
||
'');
|
||
EXCEPTION
|
||
WHEN OTHERS
|
||
THEN
|
||
oracle_err_num := SQLCODE;
|
||
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
|
||
v_errormsg :=
|
||
'OTHERS (error '
|
||
|| oracle_err_num
|
||
|| '/'
|
||
|| oracle_err_mes
|
||
|| ')';
|
||
fac.imp_writelog (p_import_key,
|
||
'E',
|
||
v_aanduiding || v_errormsg,
|
||
v_errorhint);
|
||
COMMIT;
|
||
END aaxx_update_nen2767_assetman;
|
||
/
|
||
|
||
-------------------------------------------------------------------------------
|
||
-- GRANTS naar AAFM database.
|
||
-------------------------------------------------------------------------------
|
||
GRANT SELECT ON aaxx_v_dwh_prs_bedrijf TO aafm;
|
||
GRANT SELECT ON aaxx_v_dwh_prs_bedrijfadres TO aafm;
|
||
GRANT SELECT ON aaxx_v_dwh_cnt_contract TO aafm;
|
||
GRANT SELECT ON aaxx_v_dwh_cnt_contract_scope TO aafm;
|
||
GRANT SELECT ON aaxx_v_dwh_cnt_contract_mantel TO aafm;
|
||
GRANT SELECT ON aaxx_v_dwh_cnt_factuurschema TO aafm;
|
||
GRANT SELECT ON aaxx_v_dwh_kenmerk_contract TO aafm;
|
||
GRANT SELECT ON aaxx_v_dwh_mld_stdmelding TO aafm;
|
||
GRANT SELECT ON aaxx_v_dwh_mld_melding TO aafm;
|
||
GRANT SELECT ON aaxx_v_dwh_res_reservering TO aafm;
|
||
GRANT SELECT ON aaxx_v_dwh_bes_bestelling TO aafm;
|
||
GRANT SELECT ON aaxx_v_dwh_bez_bezoekers TO aafm;
|
||
GRANT SELECT ON aaxx_v_dwh_kenmerk_melding TO aafm;
|
||
GRANT SELECT ON aaxx_v_dwh_kenmerk_opdracht TO aafm;
|
||
GRANT SELECT ON aaxx_v_dwh_kenmerk_reservering TO aafm;
|
||
GRANT SELECT ON aaxx_v_dwh_kenmerk_bestelling TO aafm;
|
||
GRANT SELECT ON aaxx_v_dwh_fin_factuur TO aafm;
|
||
GRANT SELECT ON aaxx_v_dwh_kenmerk_factuur TO aafm;
|
||
GRANT SELECT ON aaxx_v_dwh_fin_factuur_vk TO aafm;
|
||
GRANT SELECT ON aaxx_v_dwh_prs_kostenplaats TO aafm;
|
||
GRANT SELECT ON aaxx_v_dwh_prs_kostensoort TO aafm;
|
||
GRANT SELECT ON aaxx_v_dwh_prs_perslid TO aafm;
|
||
GRANT SELECT ON aaxx_v_dwh_fac_groeprechten TO aafm;
|
||
GRANT SELECT ON aaxx_v_dwh_prs_afdeling TO aafm;
|
||
GRANT SELECT ON aaxx_v_dwh_kenmerk_prs TO aafm;
|
||
GRANT SELECT ON aaxx_v_dwh_alg_onrgoed TO aafm;
|
||
GRANT SELECT ON aaxx_v_dwh_kenmerk_onrgoed TO aafm;
|
||
GRANT SELECT ON aaxx_v_dwh_ins_sensor_status TO aafm;
|
||
GRANT SELECT ON aaxx_v_dwh_inspectie TO aafm;
|
||
GRANT SELECT ON aaxx_v_dwh_inspectie_2 TO aafm;
|
||
GRANT SELECT ON aaxx_v_dwh_ins_object TO aafm;
|
||
GRANT SELECT ON aaxx_v_dwh_kenmerk_object TO AAFM;
|
||
GRANT SELECT ON aaxx_v_dwh_kenmerk_inspectie TO aafm;
|
||
GRANT SELECT ON aaxx_v_dwh_uren TO aafm;
|
||
GRANT SELECT ON aaxx_v_dwh_uren_improd TO aafm;
|
||
GRANT SELECT ON aaxx_v_dwh_tracking TO aafm;
|
||
GRANT SELECT ON aaxx_v_dwh_faq TO aafm;
|
||
GRANT SELECT ON aaxx_v_dwh_budget_tracker TO aafm;
|
||
GRANT SELECT ON AAXX_V_DWH_GUI_COUNTER TO aafm;
|
||
GRANT SELECT ON AAXX_V_DWH_FAQ2 TO aafm;
|
||
GRANT SELECT ON AAXX_V_DWH_USRDATA TO aafm;
|
||
|
||
-- views tbv user telling
|
||
GRANT SELECT ON aaxx_v_lcrap_key_stats TO aafm;
|
||
GRANT SELECT ON fac_v_lcrap_fe_vs_key TO aafm;
|
||
|
||
GRANT SELECT ON aaxx_exp_uren_dekking TO aait;
|
||
|
||
|
||
|
||
|
||
------ 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
|