Files
Customer/AA/THHD/thhd.sql
Arthur Egberink 8583816dff THHD#90816 Import organisaties werkt niet als niveau 1 niet voorkomt in de import.
svn path=/Customer/trunk/; revision=70528
2025-10-06 07:09:24 +00:00

990 lines
41 KiB
SQL

--
-- $Id$
--
-- Script containing customer specific sql statements for the FACILITOR database
DEFINE thisfile = 'THHD.SQL'
DEFINE dbuser = '^THHD'
SET ECHO ON
SET DEFINE ON
COLUMN fcltlogfile NEW_VALUE fcltlogfile NOPRINT;
COLUMN fcltcusttxt NEW_VALUE fcltcusttxt NOPRINT;
WHENEVER SQLERROR CONTINUE;
SELECT adm.getscriptspoolfile('&thisfile') AS fcltlogfile FROM DUAL;
SPOOL &fcltlogfile
WHENEVER SQLERROR EXIT;
SELECT adm.checkscriptcust('&dbuser') AS fcltcusttxt FROM DUAL;
WHENEVER SQLERROR CONTINUE;
---------------------------------------
PROMPT &fcltcusttxt
---------------------------------------
SET DEFINE OFF
------ payload begin ------
CREATE OR REPLACE PACKAGE THHD
AS
FUNCTION change_delimitor (p_string VARCHAR2,
p_delimitor VARCHAR2)
RETURN VARCHAR2;
END;
/
CREATE OR REPLACE PACKAGE BODY THHD
AS
FUNCTION change_delimitor (p_string VARCHAR2,
p_delimitor VARCHAR2)
RETURN VARCHAR2
AS
v_field VARCHAR2 (1000) := 'QueQuLeQue';
v_result VARCHAR2 (2000);
v_line VARCHAR2 (2000);
BEGIN
v_line := p_string;
WHILE v_line IS NOT NULL
LOOP
fac.imp_getfield (v_line, p_delimitor, v_field);
v_result := v_result || '"' || v_field || '";';
END LOOP;
RETURN v_result;
EXCEPTION
WHEN OTHERS
THEN
RETURN NULL;
END;
END;
/
-----------------------------------
-- PERSONEN/ORGANISATIE import ---
-----------------------------------
-- Personen import
CREATE OR REPLACE PROCEDURE thhd_import_perslid (p_import_key IN NUMBER)
AS
v_seq_of_columns VARCHAR (255);
oracle_err_num NUMBER;
oracle_err_mes VARCHAR2 (200);
v_errormsg VARCHAR2 (200);
v_errorhint VARCHAR2 (200);
BEGIN
-- Verwijder lege records
DELETE fac_imp_file WHERE SUBSTR(fac_imp_file_line, 1,7) = ';;;;;;;' AND fac_import_key = p_import_key;
v_seq_of_columns := '1;2;3;4;0;0;5;7;8;10;'
-- v_alg_locatie_code 1
-- v_alg_gebouw_code 2
-- v_alg_verdieping_volgnr 3
-- v_alg_ruimte_nr 4
-- v_prs_werkplek_volgnr 5
-- v_prs_werkplek_omschrijving 6
-- v_prs_afdeling_naam 7
-- v_prs_perslid_naam 8
-- v_prs_perslid_tussenvoegsel 9
-- v_prs_perslid_voornaam 10
|| '9;0;0;0;0;12;13;14;0;15;'
-- v_prs_perslid_voorletters 11
-- v_prs_perslid_partner_naam 12
-- v_prs_perslid_partner_tussenv 13
-- v_prs_naamgebruik_code 14 0 (default) perslid_naam en perslid_tussenvoegsel worden gebruikt
-- 1 personen die de geboortenaam van de partner icm de eigen naam willen gebruiken
-- 2 personen die de geboortenaam van de partner willen gebruiken
-- 3 personen die de eigen naam icm de geboortenaam van de partner willen gebruiken
-- v_prs_perslid_geslacht 15 Gebruik 'man', 'm' of 1 voor man en 'vrouw', 'v' of 0 voor vrouw case insensitive geen default
-- v_prs_perslid_telefoonnr 16
-- v_prs_perslid_mobiel 17
-- v_prs_perslid_email 18
-- v_prs_perslid_dienstverband 19
-- v_prs_perslid_nr 20
|| '5;0;0;0;0;0;6;0;0;0;'
-- v_prs_srtperslid_omschrijving 21
-- v_prs_perslid_oslogin 22
-- v_prs_perslid_wachtwoord 23
-- v_prs_perslid_titel 24
-- v_prs_perslid_apikey 25
-- v_dummy 26
-- v_prs_kenmerk1 27
-- v_prs_kenmerk2 28
-- v_prs_kenmerk3 29
-- v_prs_kenmerk4 30
|| '0;0;0;0;0;0;0;0;0;0;'
|| '0;0;0;0;0;0';
-- Test bestand is aangeleverd met tabs ipv ;
UPDATE fac_imp_file SET fac_imp_file_line = REPLACE(fac_imp_file_line, CHR(9), ';') WHERE fac_import_key = p_import_key;
prs.import_perslid(p_import_key, v_seq_of_columns, 'VESTIGING;GEBOUWCODE;BOUWLAAGVOLGNNR;RUIMTENUMMERWERKPLEKVOLGNR;AFDELINGSCODE;AFDELINGSNAAM;PERSOONACHTERNAAM;TUSSENVOEGSEL;VOORLETTERS;VOORNAAM;TITELAANHEF;TELEFOONNUMMER;MOBIEL;EMAIL;PERSONEELSNUMMER%');
-- We maken een platte organistiestructuur aan.
DELETE fac_imp_organisatie;
INSERT INTO fac_imp_organisatie (prs_bedrijf_naam, prs_afdeling_naam, prs_afdeling_omschrijving)
VALUES ('Thales', 'Thales', 'Thales');
INSERT INTO fac_imp_organisatie (prs_bedrijf_naam,
prs_afdeling_naam_parent,
prs_afdeling_naam,
prs_afdeling_omschrijving)
SELECT DISTINCT 'Thales',
(SELECT prs_afdeling_naam
FROM prs_afdeling
WHERE prs_afdeling_key = 201) prs_afdeling_parent,
prs_afdeling_naam,
COALESCE (prs_kostenplaats_omschrijving, prs_kenmerk1) prs_afdeling_omschrijving
FROM fac_imp_perslid i,
(SELECT SUBSTR (prs_kostenplaats_nr, 10, 3) kpn, k2.*
FROM prs_kostenplaats k2
WHERE prs_kostenplaats_verwijder IS NULL AND prs_kostenplaats_eind IS NULL) k
WHERE prs_afdeling_naam = k.kpn(+);
DELETE fac_imp_perslid WHERE prs_perslid_email IS NULL;
-- We krijgen geen functie mee. Daarom wordt iedereen een Thales medewerker
-- De locatiecode in de import wijkt af van de locatiecode in Facilitor
-- De Login vullen we met het deel voor het @ teken in het mailadres
-- Het email adres zetten we naar kleine letters. Daarmee wordt het formaat uniform en kunnen we dit in de update makkelijker controleren.
-- Niet alle afdelingen hebben een afdeling omschrijving. Daarom vullen we daar een eigen omschrijving in.
UPDATE fac_imp_perslid
SET prs_srtperslid_omschrijving = 'Thales medewerker',
alg_locatie_code = NULL,
prs_perslid_oslogin = SUBSTR(SUBSTR(prs_perslid_email, 1, INSTR(prs_perslid_email, '@')-1),1,30),
prs_perslid_email = LOWER(prs_perslid_email),
prs_kenmerk1 = COALESCE(prs_kenmerk1, 'Afdeling ' || prs_afdeling_naam);
END thhd_import_perslid;
/
CREATE OR REPLACE PROCEDURE thhd_update_perslid (p_import_key IN NUMBER)
IS
CURSOR c_del IS
SELECT p.prs_perslid_key, p.prs_perslid_nr, pf.prs_perslid_naam_full, p.prs_perslid_oslogin
FROM fac_imp_perslid i, prs_perslid p, prs_v_perslid_fullnames_all pf, prs_v_afdeling a
WHERE p.prs_afdeling_key = a.prs_afdeling_key
AND a.prs_bedrijf_key = 601 -- Thales
AND p.prs_perslid_email = i.prs_perslid_email(+)
AND pf.prs_perslid_key = p.prs_perslid_key
AND SUBSTR(p.prs_perslid_oslogin,1,1) <> '_'
AND i.prs_perslid_email IS NULL
AND p.prs_perslid_verwijder IS NULL;
v_bedrijf_key NUMBER (10);
v_afdeling_key1 NUMBER (10);
v_afdeling_key2 NUMBER (10);
v_kostenplaats_key NUMBER (10);
v_kpn_nr_prev VARCHAR2 (20);
v_count_mandaat NUMBER (10);
v_count_man_prs NUMBER (10) := 0;
v_random VARCHAR2 (40);
v_aanduiding VARCHAR2 (100);
v_errorhint VARCHAR2 (1000);
v_errormsg VARCHAR2 (1000);
v_count NUMBER;
oracle_err_num NUMBER;
oracle_err_mes VARCHAR2 (200);
BEGIN
SELECT COUNT(*)
INTO v_count
FROM fac_imp_perslid
WHERE fac_import_key = p_import_key;
IF v_count > 2000
THEN
FOR rec IN c_del LOOP
BEGIN
v_errorhint := 'Persoon verwijderen: ' || rec.prs_perslid_naam_full || '-' || rec.prs_perslid_nr || '-' || rec.prs_perslid_oslogin;
prs.delete_perslid (p_import_key, rec.prs_perslid_key);
END;
END LOOP;
END IF;
fac_update_organisatie (p_import_key);
prs.update_perslid (p_import_key, 'EMAIL', NULL);
-- Zorg ervoor dat er geen persoonsgegevens achterblijven in de import tabel.
DELETE fac_imp_perslid;
-- Verwijder ook de persoonsgegevens uit de import file
DELETE fac_imp_file WHERE fac_import_key = p_import_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.imp_writelog (p_import_key,
'E',
v_aanduiding || v_errormsg,
v_errorhint);
END thhd_update_perslid;
/
CREATE OR REPLACE VIEW thhd_v_sync_alg_ruimte
(
alg_ruimte_key,
alg_verdieping_key,
cadlabel
)
AS
SELECT rg.alg_ruimte_key,
rg.alg_verdieping_key,
DECODE (
alg_locatie_code,
'HZN', DECODE( alg_verdieping_volgnr, 3, 'HAL.' || rg.alg_ruimte_nr, -- 3 is het volgnummer van de productiehal
'HU.' || rg.alg_ruimte_nr),
rg.alg_gebouw_upper || '.' || rg.alg_verdieping_volgnr || '-' || rg.alg_ruimte_nr) cadlabel
FROM alg_v_ruimte_gegevens rg;
-- Thema dat het type werkplek aangeeft.
CREATE OR REPLACE VIEW thhd_v_rap_type_werkplek
AS
SELECT d.ins_deel_key,
CASE WHEN FLX.getflex ('INS', 45, d.ins_deel_key) = 1 THEN 'ZitSta'
WHEN FLX.getflex ('INS', 63, d.ins_deel_key) = 1 THEN 'Aanland'
WHEN FLX.getflex ('INS', 64, d.ins_deel_key) = 1 THEN 'Duo plek'
ELSE 'Normaal'
END
waarde
FROM ins_deel d ;
-------------------------
-- ALBRON - CATERING ---
-------------------------
CREATE OR REPLACE VIEW thhd_v_rsv_ruimte_2_alg_ruimte
AS
SELECT r.res_rsv_ruimte_key, rr.res_ruimte_nr, MAX (COALESCE (ra.alg_ruimte_key, r.alg_ruimte_key)) alg_ruimte_key
FROM res_rsv_ruimte r,
res_ruimte_opstelling ro,
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 rr.res_ruimte_key = ra.res_ruimte_key(+)
GROUP BY res_rsv_ruimte_key, res_ruimte_nr;
CREATE OR REPLACE VIEW thhd_v_catering_albron
AS
SELECT TO_CHAR (rra.res_rsv_artikel_afgemeld, 'mon')
maand,
COALESCE (rar.res_ruimte_nr,
(SELECT rg.alg_gebouw_upper || '-' || rg.alg_verdieping_volgnr || '-' || rg.alg_ruimte_nr || ' (' || rg.alg_ruimte_omschrijving || ')'
FROM alg_v_ruimte_gegevens rg
WHERE rg.alg_ruimte_key = rar.alg_ruimte_key)) ruimte,
rrr.res_rsv_ruimte_omschrijving,
rrr.res_rsv_ruimte_bezoekers,
rrr.res_rsv_ruimte_van datum,
rrr.res_rsv_ruimte_van van,
rrr.res_rsv_ruimte_tot tot,
a.prs_afdeling_naam || '-' || a.prs_afdeling_omschrijving
organisatie_gastheer,
flx.getflex (
'RES',
DECODE (rrr.res_activiteit_key,
10, 1, -- vergadering
50, 2, -- Niet standaard
90, 3, -- Afhalen
70, 4, -- Couverts
0),
rrr.res_rsv_ruimte_key)
ordernummer,
rrr.res_reservering_key || '/' || rrr.res_rsv_ruimte_volgnr
reserveringsnummer,
pf.prs_perslid_naam_full
gastheer,
rra.res_rsv_artikel_levering
levering,
rra.res_rsv_artikel_afgemeld
afgemeld,
ra.res_artikel_omschrijving
omschrijving,
rra.res_rsv_artikel_aantal
aantal,
RES.getartikelprijs(rra.res_rsv_artikel_key) / rra.res_rsv_artikel_aantal
prijs_per_eenheid,
RES.getartikelprijs(rra.res_rsv_artikel_key)
prijs_excl_btw,
ra.res_artikel_btw
btw,
RES.getartikelprijs(rra.res_rsv_artikel_key) * (1 + ra.res_artikel_btw / 100)
bedrag_incl_btw,
rrr.res_rsv_ruimte_key,
DECODE(res_rsv_ruimte_noshow, 1, 'No-Show', DECODE(res_status_fo_key, 4, 'Geannuleerd')) status
FROM res_rsv_artikel rra,
res_artikel ra,
res_rsv_ruimte rrr,
prs_perslid p,
prs_v_perslid_fullnames_all pf,
prs_afdeling a,
thhd_v_rsv_ruimte_2_alg_ruimte rar
WHERE rrr.res_rsv_ruimte_key = rar.res_rsv_ruimte_key
AND rrr.prs_kostenplaats_key IS NULL
AND rra.res_artikel_key = ra.res_artikel_key
AND rra.res_rsv_ruimte_key = rrr.res_rsv_ruimte_key
AND rrr.res_rsv_ruimte_host_key = p.prs_perslid_key
AND ( (rrr.res_status_fo_key = 2 AND rrr.res_rsv_ruimte_verwijder IS NULL AND rra.res_rsv_artikel_verwijder IS NULL)
OR (rrr.res_status_fo_key = 4 AND rrr.res_rsv_ruimte_verwijder IS NOT NULL)
OR (rrr.res_rsv_ruimte_noshow = 1 ))
AND p.prs_perslid_key = pf.prs_perslid_key
AND p.prs_afdeling_key = a.prs_afdeling_key;
CREATE OR REPLACE VIEW thhd_v_ruimten_albron
AS
SELECT TO_CHAR (r.res_rsv_ruimte_van, 'mon')
maand,
a.prs_afdeling_naam || '-' || a.prs_afdeling_omschrijving
organisatie_gastheer,
flx.getflex ('RES',
DECODE (rac.res_activiteit_key, 10, 1, 50, 2, 0),
res_rsv_ruimte_key)
ordernummer,
r.res_reservering_key || '/' || r.res_rsv_ruimte_volgnr
reserveringsnummer,
pf.prs_perslid_naam_full
gastheer,
TO_CHAR (r.res_rsv_ruimte_van, 'yyyy-mm-dd')
datum_levering,
r.res_rsv_ruimte_van datum,
rr.res_ruimte_nr
omschrijving,
(r.res_rsv_ruimte_tot - r.res_rsv_ruimte_van) * 24
aantal,
rr.res_ruimte_prijs
prijs_per_eenheid,
res.getruimteprijs(r.res_rsv_ruimte_key)
prijs_excl_btw,
21
btw,
res.getruimteprijs(r.res_rsv_ruimte_key) * 1.21
bedrag_incl_btw,
k.prs_kostenplaats_nr || '-' || k.prs_kostenplaats_omschrijving kostenplaats,
DECODE(r.res_rsv_ruimte_noshow, 1, 'No-Show', DECODE(r.res_status_fo_key, 4, 'Geannuleerd' )) status
FROM res_rsv_ruimte r,
res_ruimte_opstelling ro,
res_ruimte rr,
res_alg_ruimte ra,
res_activiteit rac,
prs_perslid p,
prs_v_perslid_fullnames_all pf,
prs_afdeling a,
prs_kostenplaats k
WHERE r.res_ruimte_opstel_key = ro.res_ruimte_opstel_key
AND ro.res_ruimte_key = rr.res_ruimte_key
AND rr.res_ruimte_key = ra.res_ruimte_key
AND r.res_activiteit_key = rac.res_activiteit_key
AND r.prs_kostenplaats_key = k.prs_kostenplaats_key(+)
AND ( ( r.res_status_fo_key = 2 AND r.res_rsv_ruimte_verwijder IS NULL AND r.res_status_bo_key = 5) -- definitief, afgemeld
OR ( r.res_status_fo_key = 4 AND r.res_rsv_ruimte_verwijder IS NOT NULL) -- vervallen
OR ( res_rsv_ruimte_noshow = 1))
AND r.res_rsv_ruimte_host_key = p.prs_perslid_key
AND p.prs_perslid_key = pf.prs_perslid_key
AND p.prs_afdeling_key = a.prs_afdeling_key;
-------------------
-- RAPPORTAGES ---
-------------------
-- Deviatie workflow - bronview tbv THHD#85110
--- als gestyld rapport opgenomen in thhd.xsl
CREATE OR REPLACE VIEW thhd_v_rap_deviatie_goedkeur
(
mld_melding_key,
fclt_3d_user_key, -- prs_perslid_key van de goedkeurder (via rechten MLDBOF / MLDBO3 op desbetreffende vakgroep)
goedkeurder,
fclt_3d_discipline_key, -- vakgroep_key
fclt_3d_locatie_key,
alg_locatie_omschrijving,
gebouw_key,
alg_gebouw_naam,
melding_nr, -- actie-meldingsnr met prefix
melding_start_key, -- meldingsnummer aanvraag
vakgroep, -- vakgroep_naam
mld_stdmelding_omschrijving,
mld_stdmelding_key,
status,
datum, -- datum mld_goedkeuring
datum_m1, -- datum mld_start
aanvrager,
omschrijving,
opmerking,
opmerking_m1, -- opmerking mld_start
-- Alle kenmerkvelden op aanvraag
deviatiesoort,
titel,
impact_budget, -- keuzelijst Ja/Nee
value_convention, ---- Als geen impact dan deze tonen....
cust_dev_splits, -- keuzelijst voor splitsing in deviatie-workflow naar juiste vakgroep-goedkeuring.
-- locatie_cluster , -- voor THDD niet van toepassing..
gebouw, -- deze gebruiken voor verdere tekstmatige specificatie gebouw
ingangsdatum,
kostensoort_oud,
kostensoort_nieuw,
oud_budget,
nieuw_budget_jaarbasis,
nieuw_budget_jaarlopend,
deviatiebedrag_jaarlopend,
entiteit,
investering_totaal,
omschrijving_investering,
leverancier,
risico_code,
po_nummer,
co_nummer
)
AS
SELECT m.mld_melding_key,
pf.prs_perslid_key
fclt_3d_user_key,
pf.prs_perslid_naam
goedkeurder,
md.ins_discipline_key
fclt_3d_discipline_key,
l.alg_locatie_key
fclt_3d_locatie_key,
l.alg_locatie_omschrijving,
og.alg_gebouw_key,
og.alg_gebouw_naam,
sd.ins_srtdiscipline_prefix || to_char(m.mld_melding_key)
melding_nr,
m.mld_melding_start_key
melding_start_key,
md.ins_discipline_omschrijving
vakgroep,
s.mld_stdmelding_omschrijving,
s.mld_stdmelding_key,
DECODE (m.mld_melding_status, 2, 'nieuw', 'in behandeling')
status,
TO_CHAR(m.mld_melding_datum,'dd-mm-yyyy')
datum,
TO_CHAR(m1.mld_melding_datum,'dd-mm-yyyy')
datum_m1,
p.prs_perslid_naam || ' (' || p.prs_perslid_voornaam || ')'
aanvrager,
m.mld_melding_omschrijving,
m.mld_melding_opmerking,
m1.mld_melding_opmerking,
-- Kenmerkvelden bij aanvraag
(SELECT fu.fac_usrdata_omschr
FROM mld_kenmerkmelding mkm,
mld_kenmerk k,
mld_srtkenmerk sk,
fac_usrdata fu
WHERE mkm.mld_melding_key = m.mld_melding_key
AND mkm.mld_kenmerk_key = k.mld_kenmerk_key
AND fac.safe_to_number(mkm.mld_kenmerkmelding_waarde) = fu.fac_usrdata_key
AND k.mld_srtkenmerk_key = sk.mld_srtkenmerk_key
AND sk.mld_srtkenmerk_upper = 'DEVIATIESOORT')
deviatiesoort,
(SELECT mkm.mld_kenmerkmelding_waarde
FROM mld_kenmerkmelding mkm, mld_kenmerk k, mld_srtkenmerk sk
WHERE mkm.mld_melding_key = m.mld_melding_key
AND mkm.mld_kenmerk_key = k.mld_kenmerk_key
AND k.mld_srtkenmerk_key = sk.mld_srtkenmerk_key
AND sk.mld_srtkenmerk_upper = 'TITEL')
titel,
(SELECT fu.fac_usrdata_omschr
FROM mld_kenmerkmelding mkm,
mld_kenmerk k,
mld_srtkenmerk sk,
fac_usrdata fu
WHERE mkm.mld_melding_key = m.mld_melding_key
AND mkm.mld_kenmerk_key = k.mld_kenmerk_key
AND fac.safe_to_number(mkm.mld_kenmerkmelding_waarde) = fu.fac_usrdata_key
AND k.mld_srtkenmerk_key = sk.mld_srtkenmerk_key
AND sk.mld_srtkenmerk_upper = 'IMPACT OP BUDGET')
impact_budget,
(SELECT fu.fac_usrdata_omschr
FROM mld_kenmerkmelding mkm,
mld_kenmerk k,
mld_srtkenmerk sk,
fac_usrdata fu
WHERE mkm.mld_melding_key = m.mld_melding_key
AND mkm.mld_kenmerk_key = k.mld_kenmerk_key
AND fac.safe_to_number(mkm.mld_kenmerkmelding_waarde) = fu.fac_usrdata_key
AND k.mld_srtkenmerk_key = sk.mld_srtkenmerk_key
AND sk.mld_srtkenmerk_upper = 'VALUE CONVENTION')
value_convention,
(SELECT fu.fac_usrdata_omschr
FROM mld_kenmerkmelding mkm,
mld_kenmerk k,
mld_srtkenmerk sk,
fac_usrdata fu
WHERE mkm.mld_melding_key = m.mld_melding_key
AND mkm.mld_kenmerk_key = k.mld_kenmerk_key
AND fac.safe_to_number(mkm.mld_kenmerkmelding_waarde) = fu.fac_usrdata_key
AND k.mld_srtkenmerk_key = sk.mld_srtkenmerk_key
AND sk.mld_srtkenmerk_upper = 'CUST_DEV_SPLITS')
cust_dev_splits,
-- locaie_cluster -- eigen tabel - nvt voor thhd
(SELECT mkm.mld_kenmerkmelding_waarde
FROM mld_kenmerkmelding mkm, mld_kenmerk k, mld_srtkenmerk sk
WHERE mkm.mld_melding_key = m.mld_melding_key
AND mkm.mld_kenmerk_key = k.mld_kenmerk_key
AND k.mld_srtkenmerk_key = sk.mld_srtkenmerk_key
AND sk.mld_srtkenmerk_upper = 'GEBOUW')
gebouw,
(SELECT TO_CHAR(TO_DATE(mkm.mld_kenmerkmelding_waarde,'dd-mm-yyyy'),'dd-mm-yyyy')
FROM mld_kenmerkmelding mkm, mld_kenmerk k, mld_srtkenmerk sk
WHERE mkm.mld_melding_key = m.mld_melding_key
AND mkm.mld_kenmerk_key = k.mld_kenmerk_key
AND k.mld_srtkenmerk_key = sk.mld_srtkenmerk_key
AND sk.mld_srtkenmerk_upper = 'INGANGSDATUM')
ingangsdatum,
(SELECT k.prs_kostensoort_omschrijving
FROM mld_kenmerkmelding mkm, mld_kenmerk k, mld_srtkenmerk sk, aaxx_v_kostensoort k
WHERE mkm.mld_melding_key = m.mld_melding_key
AND mkm.mld_kenmerk_key = k.mld_kenmerk_key
AND fac.safe_to_number(mkm.mld_kenmerkmelding_waarde) = k.prs_kostensoort_key
AND k.mld_srtkenmerk_key = sk.mld_srtkenmerk_key
AND sk.mld_srtkenmerk_upper = 'KOSTENSOORT OUD')
kostensoort_oud,
(SELECT k.prs_kostensoort_omschrijving
FROM mld_kenmerkmelding mkm, mld_kenmerk k, mld_srtkenmerk sk, aaxx_v_kostensoort k
WHERE mkm.mld_melding_key = m.mld_melding_key
AND mkm.mld_kenmerk_key = k.mld_kenmerk_key
AND fac.safe_to_number(mkm.mld_kenmerkmelding_waarde) = k.prs_kostensoort_key
AND k.mld_srtkenmerk_key = sk.mld_srtkenmerk_key
AND sk.mld_srtkenmerk_upper = 'KOSTENSOORT NIEUW')
kostensoort_nieuw,
(SELECT mkm.mld_kenmerkmelding_waarde
FROM mld_kenmerkmelding mkm, mld_kenmerk k, mld_srtkenmerk sk
WHERE mkm.mld_melding_key = m.mld_melding_key
AND mkm.mld_kenmerk_key = k.mld_kenmerk_key
AND k.mld_srtkenmerk_key = sk.mld_srtkenmerk_key
AND sk.mld_srtkenmerk_upper = 'OUD BUDGET')
oud_budget,
(SELECT mkm.mld_kenmerkmelding_waarde
FROM mld_kenmerkmelding mkm, mld_kenmerk k, mld_srtkenmerk sk
WHERE mkm.mld_melding_key = m.mld_melding_key
AND mkm.mld_kenmerk_key = k.mld_kenmerk_key
AND k.mld_srtkenmerk_key = sk.mld_srtkenmerk_key
AND sk.mld_srtkenmerk_upper = 'NIEUW BUDGET (OP JAARBASIS)')
nieuw_budget_jaarbasis,
(SELECT mkm.mld_kenmerkmelding_waarde
FROM mld_kenmerkmelding mkm, mld_kenmerk k, mld_srtkenmerk sk
WHERE mkm.mld_melding_key = m.mld_melding_key
AND mkm.mld_kenmerk_key = k.mld_kenmerk_key
AND k.mld_srtkenmerk_key = sk.mld_srtkenmerk_key
AND sk.mld_srtkenmerk_upper = 'NIEUW BUDGET (LOPEND JAAR)')
nieuw_budget_jaarlopend,
(SELECT mkm.mld_kenmerkmelding_waarde
FROM mld_kenmerkmelding mkm, mld_kenmerk k, mld_srtkenmerk sk
WHERE mkm.mld_melding_key = m.mld_melding_key
AND mkm.mld_kenmerk_key = k.mld_kenmerk_key
AND k.mld_srtkenmerk_key = sk.mld_srtkenmerk_key
AND sk.mld_srtkenmerk_upper = 'DEVIATIEBEDRAG (LOPENDE JAAR)')
deviatiebedrag_lopendjaar,
(SELECT mkm.mld_kenmerkmelding_waarde
FROM mld_kenmerkmelding mkm, mld_kenmerk k, mld_srtkenmerk sk
WHERE mkm.mld_melding_key = m.mld_melding_key
AND mkm.mld_kenmerk_key = k.mld_kenmerk_key
AND k.mld_srtkenmerk_key = sk.mld_srtkenmerk_key
AND sk.mld_srtkenmerk_upper = 'ENTITEIT')
entiteit,
(SELECT mkm.mld_kenmerkmelding_waarde
FROM mld_kenmerkmelding mkm, mld_kenmerk k, mld_srtkenmerk sk
WHERE mkm.mld_melding_key = m.mld_melding_key
AND mkm.mld_kenmerk_key = k.mld_kenmerk_key
AND k.mld_srtkenmerk_key = sk.mld_srtkenmerk_key
AND sk.mld_srtkenmerk_upper = 'INVESTERING TOTAAL')
investering_totaal,
(SELECT mkm.mld_kenmerkmelding_waarde
FROM mld_kenmerkmelding mkm, mld_kenmerk k, mld_srtkenmerk sk
WHERE mkm.mld_melding_key = m.mld_melding_key
AND mkm.mld_kenmerk_key = k.mld_kenmerk_key
AND k.mld_srtkenmerk_key = sk.mld_srtkenmerk_key
AND sk.mld_srtkenmerk_upper = 'OMSCHRIJVING INVESTERING')
omschrijving_investering,
(SELECT b.prs_bedrijf_naam
FROM mld_kenmerkmelding mkm, mld_kenmerk k, mld_srtkenmerk sk, prs_bedrijf b
WHERE mkm.mld_melding_key = m.mld_melding_key
AND mkm.mld_kenmerk_key = k.mld_kenmerk_key
AND fac.safe_to_number(mkm.mld_kenmerkmelding_waarde) = b.prs_bedrijf_key
AND k.mld_srtkenmerk_key = sk.mld_srtkenmerk_key
AND sk.mld_srtkenmerk_upper = 'LEVERANCIER')
leverancier,
(SELECT fu.fac_usrdata_omschr
FROM mld_kenmerkmelding mkm,
mld_kenmerk k,
mld_srtkenmerk sk,
fac_usrdata fu
WHERE mkm.mld_melding_key = m.mld_melding_key
AND mkm.mld_kenmerk_key = k.mld_kenmerk_key
AND fac.safe_to_number(mkm.mld_kenmerkmelding_waarde) = fu.fac_usrdata_key
AND k.mld_srtkenmerk_key = sk.mld_srtkenmerk_key
AND sk.mld_srtkenmerk_upper = 'RISICOCODE')
risico_code,
(SELECT mkm.mld_kenmerkmelding_waarde
FROM mld_kenmerkmelding mkm, mld_kenmerk k, mld_srtkenmerk sk
WHERE mkm.mld_melding_key = m.mld_melding_key
AND mkm.mld_kenmerk_key = k.mld_kenmerk_key
AND k.mld_srtkenmerk_key = sk.mld_srtkenmerk_key
AND sk.mld_srtkenmerk_upper = 'PO NUMMER OPDRACHTGEVER')
po_nummer,
(SELECT mkm.mld_kenmerkmelding_waarde
FROM mld_kenmerkmelding mkm, mld_kenmerk k, mld_srtkenmerk sk
WHERE mkm.mld_melding_key = m.mld_melding_key
AND mkm.mld_kenmerk_key = k.mld_kenmerk_key
AND k.mld_srtkenmerk_key = sk.mld_srtkenmerk_key
AND sk.mld_srtkenmerk_upper = 'CO NUMMER HEYDAY NAAR LEVERANCIER')
co_nummer
FROM mld_melding m,
mld_melding m1,
alg_v_allonrgoed_gegevens og,
alg_locatie l,
prs_perslid p, -- aanvrager
mld_stdmelding s,
mld_discipline md,
mld_disc_params mdp,
ins_srtdiscipline sd,
(
SELECT gr.ins_discipline_key, gg.prs_perslid_key, p.prs_perslid_naam
FROM fac_gebruikersgroep gg,
fac_groep g,
fac_groeprechten gr,
mld_discipline md,
ins_srtdiscipline sd,
fac_functie f,
prs_perslid p
WHERE gg.fac_groep_key = g.fac_groep_key
AND g.fac_groep_key = gr.fac_groep_key
AND gg.prs_perslid_key = p.prs_perslid_key
AND gr.fac_functie_key = f.fac_functie_key
AND gr.ins_discipline_key = md.ins_discipline_key
AND sd.ins_srtdiscipline_key = md.ins_srtdiscipline_key
AND md.ins_srtdiscipline_key = 61
AND INSTR(lower(md.ins_discipline_omschrijving),'goedkeuring') > 0
AND gr.fac_functie_key = 29 -- MLDBOF
GROUP BY gr.ins_discipline_key, gg.prs_perslid_key, p.prs_perslid_naam
) pf -- p-fiatteur
WHERE s.mld_stdmelding_key = m.mld_stdmelding_key
AND m.mld_melding_start_key = m1.mld_melding_key
AND m1.mld_melding_status = 4 -- Lopende aanvraag
AND m.mld_melding_status in (2, 4) -- Moet in principe nieuw (2) zijn om nog te kunnen annuleren
-- Indien toch in behandeling (4) genomen dan wel opnemen maar in styling annuleren disablen
AND m.prs_perslid_key = p.prs_perslid_key
AND sd.ins_srtdiscipline_key = md.ins_srtdiscipline_key
AND md.ins_discipline_key = s.mld_ins_discipline_key
AND md.ins_discipline_key = mdp.mld_ins_discipline_key
AND md.ins_srtdiscipline_key = 61
AND INSTR(lower(md.ins_discipline_omschrijving),'goedkeuring') > 0 -- daarbinnen alle vakgroepen tbv goedkeuring
AND md.ins_discipline_key = pf.ins_discipline_key
AND m.mld_alg_locatie_key = l.alg_locatie_key(+)
AND m.mld_alg_onroerendgoed_keys = og.alg_onroerendgoed_keys(+) ;
----------------------
-- NOTIFICATIEJOBS ---
----------------------
CREATE OR REPLACE VIEW thhd_v_noti_mld_wvgreminder
AS
SELECT 'CUST30' code,
NULL sender,
COALESCE (m.prs_perslid_key_voor, prs_perslid_key) receiver,
'Uw melding '
|| sd.ins_srtdiscipline_prefix
|| m.mld_melding_key
|| ' staat nog open ter goedkeuring' text,
m.mld_melding_key key,
NULL par1,
NULL par2,
NULL xkey
FROM mld_kenmerkmelding km,
mld_kenmerk k,
mld_melding m,
mld_stdmelding sm,
mld_discipline md,
ins_srtdiscipline sd
WHERE km.mld_kenmerk_key = k.mld_kenmerk_key
AND k.mld_kenmerk_verwijder IS NULL
AND k.mld_srtkenmerk_key = 447 -- Begindatum
AND fac.safe_to_date (km.mld_kenmerkmelding_waarde, 'DD-MM-YYYY') = TRUNC (SYSDATE) + 2
AND km.mld_melding_key = m.mld_melding_key
AND m.mld_stdmelding_key = sm.mld_stdmelding_key
AND sm.mld_ins_discipline_key = md.ins_discipline_key
AND md.ins_discipline_key = 682 -- Aanvraag werkvergunning
AND md.ins_srtdiscipline_key = sd.ins_srtdiscipline_key
AND m.mld_melding_status NOT IN (1, 5, 6) -- Afgewezen, Afgemeld, Verwerkt
AND m.mld_melding_key = m.mld_melding_start_key;
-- Notificatie naar floormanager bij afmelden werkvergunning
CREATE OR REPLACE VIEW thhd_v_noti_wvgafm
AS
SELECT sn.fac_srtnotificatie_code code,
NULL sender,
NULL receiver,
REPLACE (
REPLACE (
REPLACE (
sn.fac_srtnotificatie_oms,
'##KEY##', sd.ins_srtdiscipline_prefix || TO_CHAR (m.mld_melding_key)),
'##STDMLD##', sm.mld_stdmelding_omschrijving),
'##GEBOUW##', aog.alg_gebouw_code) text, --|| ' - ' || aog.alg_gebouw_naam),
m.mld_melding_key key,
NULL par1,
NULL par2,
NULL xkey,
aogk.alg_onrgoedkenmerk_waarde xemail,
NULL xmobile
FROM fac_tracking t,
mld_melding m,
mld_stdmelding sm,
mld_discipline md,
ins_srtdiscipline sd,
alg_v_onroerendgoed_gegevens aog,
alg_kenmerk k,
alg_onrgoedkenmerk aogk,
fac_srtnotificatie sn,
fac_notificatie_job nj
WHERE t.fac_srtnotificatie_key = 29 -- MLDAFM
AND t.fac_tracking_refkey = m.mld_melding_key
AND m.mld_stdmelding_key = sm.mld_stdmelding_key
AND sm.mld_ins_discipline_key = md.ins_discipline_key
AND md.ins_discipline_key = 682 -- Aanvraag werkvergunning
AND md.ins_srtdiscipline_key = sd.ins_srtdiscipline_key
AND m.mld_alg_onroerendgoed_keys = aog.alg_onroerendgoed_keys
AND aog.alg_verdieping_key = aogk.alg_onrgoed_key
AND aogk.alg_kenmerk_key = k.alg_kenmerk_key
AND k.alg_kenmerk_code = 'EMAIL_FLOORMNGR'
AND sn.fac_srtnotificatie_code = 'CUST31'
AND UPPER(nj.fac_notificatie_job_view) = 'THHD_V_NOTI_WVGAFM'
AND t.fac_tracking_datum > nj.fac_notificatie_job_lastrun
UNION ALL
SELECT sn.fac_srtnotificatie_code code,
NULL sender,
NULL receiver,
REPLACE (
REPLACE (
REPLACE (
sn.fac_srtnotificatie_oms,
'##KEY##', sd.ins_srtdiscipline_prefix || TO_CHAR (m.mld_melding_key)),
'##STDMLD##', sm.mld_stdmelding_omschrijving),
'##GEBOUW##', aog.alg_gebouw_code) text, --|| ' - ' || aog.alg_gebouw_naam),
m.mld_melding_key key,
NULL par1,
NULL par2,
NULL xkey,
'Secos@nl.thalesgroup.com' xemail,
NULL xmobile
FROM fac_tracking t,
mld_melding m,
mld_stdmelding sm,
mld_discipline md,
ins_srtdiscipline sd,
alg_v_onroerendgoed_gegevens aog,
fac_srtnotificatie sn,
fac_notificatie_job nj
WHERE t.fac_srtnotificatie_key = 29 -- MLDAFM
AND t.fac_tracking_refkey = m.mld_melding_key
AND m.mld_stdmelding_key = sm.mld_stdmelding_key
AND sm.mld_ins_discipline_key = md.ins_discipline_key
AND md.ins_discipline_key = 682 -- Aanvraag werkvergunning
AND md.ins_srtdiscipline_key = sd.ins_srtdiscipline_key
AND m.mld_alg_onroerendgoed_keys = aog.alg_onroerendgoed_keys
AND sn.fac_srtnotificatie_code = 'CUST31'
AND UPPER(nj.fac_notificatie_job_view) = 'THHD_V_NOTI_WVGAFM'
AND t.fac_tracking_datum > nj.fac_notificatie_job_lastrun
-- Rapportage van de HSE manager per gebouw. Om ook inzichtelijk te krijgen dat een gebouw geen HSE Officer heeft.
CREATE OR REPLACE VIEW thhd_v_wv_hse_officer_gebouw
AS
SELECT l.alg_locatie_omschrijving,
g.alg_gebouw_code,
g.alg_gebouw_naam,
ho.prs_perslid_naam_full
FROM alg_gebouw g,
alg_locatie l,
( SELECT rg.alg_gebouw_key, pf.prs_perslid_key, pf.prs_perslid_naam_full
FROM fac_groep g,
fac_gebruikersgroep gg,
prs_werkplek wp,
prs_v_perslid_fullnames pf,
prs_perslidwerkplek pwp,
alg_v_ruimte_gegevens rg
WHERE g.fac_groep_key = 481 -- HSE Officer
AND gg.fac_groep_key = g.fac_groep_key
AND gg.prs_perslid_key = pf.prs_perslid_key
AND pf.prs_perslid_key = pwp.prs_perslid_key
AND pwp.prs_werkplek_key = wp.prs_werkplek_key
AND wp.prs_alg_ruimte_key = rg.alg_ruimte_key
GROUP BY rg.alg_gebouw_key, pf.prs_perslid_key, pf.prs_perslid_naam_full) ho
WHERE g.alg_gebouw_key = ho.alg_gebouw_key(+)
AND g.alg_locatie_key = l.alg_locatie_key;
---------------------
-- EXPORTFUNCTIES ---
---------------------
-- script om dagelijks terugkerende scripts aan te roepen.
CREATE OR REPLACE PROCEDURE thhd_select_daily_task (p_applname IN VARCHAR2, p_applrun IN VARCHAR2)
AS
BEGIN
aaxx_daily_task (p_applname, p_applrun);
END;
/
-- exact verkoop
CREATE OR REPLACE VIEW thhd_v_export_exact_verkoop (RESULT, result_order) AS SELECT RESULT, result_order FROM aaxx_v_export_exact_verkoop;
CREATE OR REPLACE PROCEDURE thhd_select_exact_verkoop (
p_applname IN VARCHAR2,
p_applrun IN VARCHAR2
)
AS
BEGIN
aaxx_select_exact_verkoop(p_applname, p_applrun, to_char(sysdate, 'yyyy'), 'CORE');
END;
/
CREATE OR REPLACE PROCEDURE thhd_export_exact_verkoop (
p_applname IN VARCHAR2,
p_applrun IN VARCHAR2,
p_filedir IN VARCHAR2,
p_filename IN VARCHAR2
)
AS
BEGIN
aaxx_export_exact_verkoop(p_applname, p_applrun, p_filedir, p_filename, to_char(sysdate, 'yyyy'), 'CORE');
END;
/
-- exact verkoop over het vorige jaar
CREATE OR REPLACE VIEW thhd_v_export_exact_verkoop_vj (RESULT, result_order) AS SELECT RESULT, result_order FROM aaxx_v_export_exact_verkoop;
CREATE OR REPLACE PROCEDURE thhd_select_exact_verkoop_vj (
p_applname IN VARCHAR2,
p_applrun IN VARCHAR2
)
AS
BEGIN
aaxx_select_exact_verkoop(p_applname, p_applrun, to_char(to_number(to_char(sysdate, 'yyyy'))-1), 'CORE');
END;
/
CREATE OR REPLACE PROCEDURE thhd_export_exact_verkoop_vj (
p_applname IN VARCHAR2,
p_applrun IN VARCHAR2,
p_filedir IN VARCHAR2,
p_filename IN VARCHAR2
)
AS
BEGIN
aaxx_export_exact_verkoop(p_applname, p_applrun, p_filedir, p_filename, to_char(to_number(to_char(sysdate, 'yyyy'))-1), 'CORE');
END;
/
-- exact verkoop - PROJECTEN CSV
CREATE OR REPLACE VIEW thhd_v_export_exact_verkoop_p (RESULT, result_order) AS SELECT RESULT, result_order FROM aaxx_v_export_exact_verkoop;
CREATE OR REPLACE PROCEDURE thhd_select_exact_verkoop_p (
p_applname IN VARCHAR2,
p_applrun IN VARCHAR2
)
AS
BEGIN
aaxx_select_exact_verkoop(p_applname, p_applrun, to_char(sysdate, 'yyyy'), 'PROJECT');
END;
/
CREATE OR REPLACE PROCEDURE thhd_export_exact_verkoop_p (
p_applname IN VARCHAR2,
p_applrun IN VARCHAR2,
p_filedir IN VARCHAR2,
p_filename IN VARCHAR2
)
AS
BEGIN
aaxx_export_exact_verkoop(p_applname, p_applrun, p_filedir, p_filename, to_char(sysdate, 'yyyy'), 'PROJECT');
END;
/
-- exact verkoop over het vorige jaar - PROJECTEN CSV
CREATE OR REPLACE VIEW thhd_v_export_exact_verkoop_vj_p (RESULT, result_order) AS SELECT RESULT, result_order FROM aaxx_v_export_exact_verkoop;
CREATE OR REPLACE PROCEDURE thhd_select_exact_verkoop_vj_p (
p_applname IN VARCHAR2,
p_applrun IN VARCHAR2
)
AS
BEGIN
aaxx_select_exact_verkoop(p_applname, p_applrun, to_char(to_number(to_char(sysdate, 'yyyy'))-1), 'PROJECT');
END;
/
CREATE OR REPLACE PROCEDURE thhd_export_exact_verkoop_vj_p (
p_applname IN VARCHAR2,
p_applrun IN VARCHAR2,
p_filedir IN VARCHAR2,
p_filename IN VARCHAR2
)
AS
BEGIN
aaxx_export_exact_verkoop(p_applname, p_applrun, p_filedir, p_filename, to_char(to_number(to_char(sysdate, 'yyyy'))-1), 'PROJECT');
END;
/
-- exact projecturen (XML)
CREATE OR REPLACE VIEW thhd_v_export_exact_uren (result, result_order)
AS SELECT result, result_order FROM aaxx_v_export_exact_uren_xml;
CREATE OR REPLACE PROCEDURE thhd_select_exact_uren (
p_applname IN VARCHAR2,
p_applrun IN VARCHAR2
)
AS
BEGIN
aaxx_select_exact_uren_xml(p_applname, p_applrun, '');
END;
/
-- verwerk exact projecturen (XML)
CREATE OR REPLACE PROCEDURE thhd_export_verwerk_exact_uren (
p_applname IN VARCHAR2,
p_applrun IN VARCHAR2,
p_filedir IN VARCHAR2,
p_filename IN VARCHAR2
)
AS
BEGIN
aaxx_export_verwerk_exact_uren(p_applname, p_applrun, p_filedir, p_filename, '');
END;
/
-- Rapportviews
------ 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