Files
Customer/TAYL/tayl.sql
2024-03-25 16:44:56 +00:00

1116 lines
47 KiB
MySQL

--
-- $Id$
--
-- Script containing customer specific sql statements for the FACILITOR database
DEFINE thisfile = 'TAYL.SQL'
DEFINE dbuser = 'TAYL'
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 ------
-------------------------------
--- DOMEIN-VIEWS --------------
-------------------------------
CREATE OR REPLACE VIEW tayl_v_leverancierslijst
(
PRS_BEDRIJF_KEY,
BEDRIJF_NAAM,
BEDRIJF_PLAATS,
PRS_BEDRIJF_VERWIJDER
)
AS
SELECT
b.prs_bedrijf_key,
b.prs_bedrijf_naam,
b.prs_bedrijf_post_plaats,
b.prs_bedrijf_verwijder
FROM
prs_bedrijf b
WHERE
prs_bedrijf_intern IS NULL
AND prs_bedrijf_verwijder IS NULL
ORDER BY prs_bedrijf_naam
;
-- Lijst van Locatieleiders (tbv domeinview)
CREATE OR REPLACE VIEW tayl_v_medewerkers
(
PRS_PERSLID_KEY,
NAAM,
AFDELING
)
AS
SELECT
p.prs_perslid_key,
CASE WHEN p.prs_perslid_tussenvoegsel IS NULL
THEN p.prs_perslid_voornaam || ' ' || p.prs_perslid_naam -- || ' (' || sp.prs_srtperslid_omschrijving || ')'
ELSE p.prs_perslid_voornaam || ' ' || p.prs_perslid_tussenvoegsel || ' ' || p.prs_perslid_naam -- || ' (' || sp.prs_srtperslid_omschrijving || ')'
END
naam,
a.prs_afdeling_naam2
FROM
prs_perslid p,
prs_srtperslid sp,
prs_v_afdeling a,
prs_bedrijf b
WHERE
p.prs_afdeling_key = a.prs_afdeling_key
AND a.prs_bedrijf_key = b.prs_bedrijf_key
AND b.prs_bedrijf_key = 6 -- bedrijfs_key TAYL
AND p.prs_srtperslid_key = sp.prs_srtperslid_key
AND p.prs_perslid_verwijder IS NULL
ORDER BY p.prs_perslid_naam
;
----------------------------------------
--- AUTOCAD-THEMA'S en LABELS ----------
----------------------------------------
-- Cust-label tekst bij werkplekreserveringen
--- Op basis van cad_v_label_deel_reservering aangevuld met hulpview tayl_v_label_werkplek_info om de objecten in tekening (wel/niet reserveerbaar) aan te vullen met informatie uit object-kenmerken (vast plek van... en werkplek voor alleen laptops)
-- hulpview...
CREATE OR REPLACE VIEW tayl_v_label_werkplek_info
(
INS_DEEL_KEY,
INS_DEEL_UPPER,
RESERVEERBAAR,
WAARDE
)
AS
SELECT isd.ins_deel_key,
isd.ins_deel_upper,
DECODE(kw.reserveerbaar, NULL, 'nee', 'ja')
reserveerbaar,
CASE WHEN isd.ins_srtdeel_key = 81 THEN '' -- leeg bureau...
WHEN isd.ins_srtdeel_key = 41 AND kw.reserveerbaar IS NULL AND kw.vaste_werkplek_van IS NOT NULL THEN kw.vaste_werkplek_van -- vast plek van...
WHEN isd.ins_srtdeel_key = 41 AND kw.reserveerbaar IS NOT NULL AND kw.laptop_werkplek = 62 THEN 'laptop-plek' -- reserveerbare plek voor alleen laptop (key = 62)
ELSE NULL
END
waarde
FROM ins_v_aanwezigdeel isd,
(SELECT d.ins_deel_key,
FLX.getdomeinwaarde (61,FLX.getflex('INS', 63, d.ins_deel_key))
vaste_werkplek_van,
FLX.getflex('INS', 62, d.ins_deel_key) -- key 62 is laptop-werkplek
laptop_werkplek,
FLX.getflex('INS', 64, d.ins_deel_key)
werkplek_info,
(SELECT max(rd.res_deel_key) FROM res_deel rd WHERE rd.res_ins_deel_key = d.ins_deel_key AND rd.res_deel_verwijder IS NULL AND rd.res_discipline_key = 101 )
reserveerbaar
FROM ins_deel d) kw
WHERE isd.ins_discipline_key IN (81) -- werkplekken
AND isd.ins_deel_key = kw.ins_deel_key;
CREATE OR REPLACE VIEW tayl_v_label_deel_res_datum
(
fclt_f_datum,
ins_deel_key,
res_deel_omschrijving,
waarde1,
waarde,
waarde3,
waarde_html,
waarde_html2
)
AS
WITH
datums
AS
( SELECT TRUNC (SYSDATE) + LEVEL - 1 datum
FROM DUAL
CONNECT BY LEVEL <= 42)
SELECT datums.datum
fclt_f_datum,
isd.res_ins_deel_key
ins_deel_key,
res_deel_omschrijving,
DECODE (naam, NULL, v.waarde, '') ||
CHR (10)
|| LISTAGG (
DECODE (
naam,
NULL, '',
'[s75]'
|| naam
|| ' ('
|| TO_CHAR (res_rsv_deel_van, 'HH24:MI')
|| '-'
|| DECODE (TRUNC (res_rsv_deel_tot),
TRUNC (res_rsv_deel_van), TO_CHAR (res_rsv_deel_tot, 'HH24:MI'),
TO_CHAR (res_rsv_deel_tot, 'DD-MM-YYYY HH24:MI'))
|| ')'),
CHR (10))
WITHIN GROUP (ORDER BY res_rsv_deel_van)
waarde1,
DECODE (naam, NULL, v.waarde, '') ||
CHR (10)
|| LISTAGG (
DECODE (naam,
NULL, '',
'[s75]' || TO_CHAR (res_rsv_deel_van, 'HH24:MI') || ' ' || naam),
CHR (10))
WITHIN GROUP (ORDER BY res_rsv_deel_van)
waarde2,
DECODE (naam, NULL, v.waarde, '') ||
CHR (10)
|| LISTAGG (DECODE (naam, NULL, '', '[s40]' || naam), CHR (10))
WITHIN GROUP (ORDER BY res_rsv_deel_van)
waarde3,
LISTAGG (
DECODE (
naam,
NULL, v.waarde,
'<span class="body">'
|| v.waarde || ' '
|| TO_CHAR (res_rsv_deel_van, 'HH24:MI')
|| ' '
|| naam
|| '</span>'),
'<br>')
WITHIN GROUP (ORDER BY res_rsv_deel_van)
waarde_html,
LISTAGG (DECODE (naam, NULL, v.waarde, '<span class="body">' || naam || '</span>'), '<br>')
WITHIN GROUP (ORDER BY res_rsv_deel_van)
waarde_html2
FROM res_v_aanwezigdeel isd,
datums,
(SELECT datum,
res_ins_deel_key,
DECODE (p.prs_perslid_visibility,
1, pf.prs_perslid_naam_friendly,
a.prs_afdeling_omschrijving)
naam,
res_rsv_deel_van,
res_rsv_deel_tot
FROM res_v_aanwezigdeel r,
res_v_aanwezigrsv_deel rrd,
res_rsv_ruimte rrr,
prs_v_perslid_fullnames pf,
prs_perslid p,
prs_afdeling a,
datums
WHERE r.res_deel_key = rrd.res_deel_key
AND rrd.res_rsv_ruimte_key = rrr.res_rsv_ruimte_key
AND rrr.res_rsv_ruimte_host_key = pf.prs_perslid_key
AND pf.prs_perslid_key = p.prs_perslid_key
AND p.prs_afdeling_key = a.prs_afdeling_key
AND datum + 1 >= res_rsv_deel_van
AND datum < res_rsv_deel_tot ) res, -- Bezet
tayl_v_label_werkplek_info v
WHERE isd.res_ins_deel_key = res.res_ins_deel_key(+) AND datums.datum = res.datum(+)
AND isd.res_ins_deel_key = v.ins_deel_key
GROUP BY datums.datum, isd.res_ins_deel_key, res_deel_omschrijving, v.waarde, naam
UNION -- Voor alle NIET-reserveerbare objecten in de tekening de extra info erbij halen
SELECT datums.datum
fclt_f_datum,
v.ins_deel_key,
v.ins_deel_upper,
v.waarde waarde1,
v.waarde waarde,
v.waarde waarde3,
v.waarde waarde_html,
v.waarde waarde_html2
FROM tayl_v_label_werkplek_info v, datums
WHERE v.reserveerbaar = 'nee'
GROUP BY datums.datum, v.ins_deel_key, v.ins_deel_upper, v.waarde
;
CREATE OR REPLACE VIEW tayl_v_thema_vloersoort
(
ALG_RUIMTE_KEY,
WAARDE,
WAARDE_KEY
)
AS
SELECT r.alg_ruimte_key,
COALESCE (va.fac_usrdata_omschr, 'Onbekend'),
va.fac_usrdata_key
FROM alg_ruimte r,
(SELECT rr.alg_ruimte_key,
ud.fac_usrdata_omschr,
ud.fac_usrdata_key
FROM alg_onrgoedkenmerk ok,
fac_usrdata ud,
fac_kenmerkdomein rk,
alg_kenmerk k,
alg_v_aanwezigruimte rr
WHERE rk.fac_usrtab_key = ud.fac_usrtab_key
AND k.fac_kenmerkdomein_key = rk.fac_kenmerkdomein_key
AND TO_CHAR (ud.fac_usrdata_key) =
ok.alg_onrgoedkenmerk_waarde
AND ok.alg_kenmerk_key = 1040
AND k.alg_kenmerk_niveau = 'R'
AND k.alg_kenmerk_verwijder IS NULL
AND rr.alg_ruimte_key = ok.alg_onrgoed_key) va
WHERE r.alg_ruimte_key = va.alg_ruimte_key(+);
CREATE OR REPLACE VIEW tayl_v_thema_set_res_wp
AS
SELECT ins_deel_key, DECODE (rd.res_deel_key, NULL, 0, 1) waarde
FROM ins_deel d,
(SELECT *
FROM res_deel
WHERE res_deel_verwijder IS NULL) rd
WHERE d.ins_deel_key = rd.res_ins_deel_key(+);
-------------------------------
--- PROCEDURES ---------------
-------------------------------
-------------------------------
--- NOTI-JOBS ---------------
-------------------------------
-- Contract-Rappel
--- Notificatie op contractbeheerder, verantwoordelijke en/of 2e aanspreekpunt
--- Onderstaand rapport is basisview en deze fungeert als bron voor de rappel-notificatie
CREATE OR REPLACE VIEW tayl_v_cnt_rappel_basis
AS
SELECT d.ins_discipline_omschrijving,
c.cnt_contract_key,
c.cnt_contract_nummer_intern
|| DECODE (c.cnt_contract_versie,
NULL, '',
'.' || c.cnt_contract_versie)
cnt_contract_nr,
c.cnt_contract_looptijd_van begindatum,
c.cnt_contract_looptijd_tot einddatum,
cnt.cnt_getopzegdatum (c.cnt_contract_key) cnt_opzegdatum,
cnt.cnt_getrappeldatum (c.cnt_contract_key) cnt_rappeldatum,
DECODE (cnt.cnt_contract_status (c.cnt_contract_looptijd_van,
cnt.cnt_getrappeldatum (c.cnt_contract_key),
cnt.cnt_getopzegdatum (c.cnt_contract_key),
c.cnt_contract_looptijd_tot),
0, lcl.l ('lcl_cnt_future'),
1, lcl.l ('lcl_cnt_topical'),
2, lcl.l ('lcl_cnt_warn'),
3, lcl.l ('lcl_cnt_cancel'),
4, lcl.l ('lcl_cnt_past'))
fase_actief,
DECODE (
c.cnt_contract_status,
0,
DECODE (fac.getsetting ('cnt_contract_approval'),
1, lcl.l ('lcl_cnt_active_approval'),
lcl.l ('lcl_cnt_active')),
1,
lcl.l ('lcl_cnt_inactive'),
2,
lcl.l ('lcl_cnt_new'),
3,
lcl.l ('lcl_cnt_forapproval'))
cnt_contract_status,
(SELECT kc.cnt_kenmerkcontract_waarde
FROM cnt_kenmerkcontract kc, cnt_kenmerk k
WHERE k.cnt_kenmerk_key = kc.cnt_kenmerk_key
AND kc.cnt_contract_key = c.cnt_contract_key
AND k.cnt_srtkenmerk_key = 22) -- contractbeheerder
vink_beheerder,
(SELECT p.prs_perslid_email
FROM prs_perslid p
WHERE p.prs_perslid_key = c.prs_perslid_key_beh
AND p.prs_perslid_verwijder IS NULL)
beheerder_email,
(SELECT kc.cnt_kenmerkcontract_waarde
FROM cnt_kenmerkcontract kc, cnt_kenmerk k
WHERE k.cnt_kenmerk_key = kc.cnt_kenmerk_key
AND kc.cnt_contract_key = c.cnt_contract_key
AND k.cnt_srtkenmerk_key = 23) -- contractverantwoordelijke
vink_verantwoordelijke,
(SELECT p.prs_perslid_email
FROM prs_perslid p
WHERE p.prs_perslid_key = c.prs_perslid_key_eig
AND p.prs_perslid_verwijder IS NULL)
veantwoordelijke_email,
(SELECT kc.cnt_kenmerkcontract_waarde
FROM cnt_kenmerkcontract kc, cnt_kenmerk k
WHERE k.cnt_kenmerk_key = kc.cnt_kenmerk_key
AND kc.cnt_contract_key = c.cnt_contract_key
AND k.cnt_srtkenmerk_key = 25) -- rappel 2e aanspreekpunt
vink_2e_aanspreekpunt,
(SELECT p.prs_perslid_email
FROM prs_perslid p
WHERE p.prs_perslid_key = (SELECT fac.safe_to_number(kc.cnt_kenmerkcontract_waarde)
FROM cnt_kenmerkcontract kc, cnt_kenmerk k
WHERE k.cnt_kenmerk_key = kc.cnt_kenmerk_key
AND kc.cnt_contract_key = c.cnt_contract_key
AND k.cnt_srtkenmerk_key = 21)
AND p.prs_perslid_verwijder IS NULL)
tweede_aanspreekpunt_email
FROM cnt_v_aanwezigcontract c, ins_tab_discipline d
WHERE c.ins_discipline_key = d.ins_discipline_key
AND d.ins_discipline_module = 'CNT';
-- TAYLOR: Contractbeheerder(_eig) is Beheerder/Administrateur en de Contractverantwoordelijke (_beh) is 1e aanspreekpunt die beslist over wel/niet verlengen. Tevens optie om 2e aanspreekpunt mee te nemen in rappel
CREATE OR REPLACE VIEW tayl_v_noti_cntreminder
(
code,
sender,
receiver,
text,
key,
xkey,
xemail,
xmobile
)
AS -- Op rappel-datum naar de Beheerder/Administrateur sturen
SELECT 'CNTMAI',
NULL,
c.prs_perslid_key_beh,
'TER INFO: Rappel verstuurd voor contract ' || c.cnt_contract_nummer_intern
|| DECODE (c.cnt_contract_versie, NULL, '', '.' || c.cnt_contract_versie)
|| ' (' || c.cnt_contract_omschrijving || ' ' || b.prs_bedrijf_naam || ')'
|| ' - Moet uiterlijk per ' || TO_CHAR (cnt.cnt_getopzegdatum (c.cnt_contract_key), 'dd-mm-yyyy')
|| ' worden verlengd of opgezegd.',
c.cnt_contract_key,
NULL,
NULL,
NULL
FROM tayl_v_cnt_rappel_basis v, cnt_v_aanwezigcontract c, prs_bedrijf b
WHERE c.cnt_prs_bedrijf_key = b.prs_bedrijf_key
AND v.cnt_contract_key = c.cnt_contract_key
AND v.vink_beheerder = 1
AND c.cnt_contract_status = 0
AND cnt.cnt_getrappeldatum (c.cnt_contract_key) = TRUNC (SYSDATE)
AND c.prs_perslid_key_beh <> c.prs_perslid_key_eig -- als administrateur gelijk aan 1e aanspreekpunt dan dan sturen we de info-mail niet uit
AND NOT EXISTS -- kenmerkveld 'Opgezegd' staat uit
(SELECT km.cnt_contract_key
FROM cnt_kenmerkcontract km, cnt_kenmerk k
WHERE km.cnt_contract_key = c.cnt_contract_key AND km.cnt_kenmerk_key = k.cnt_kenmerk_key AND k.cnt_srtkenmerk_key = 4)
UNION ALL -- Op rappel-datum ACTIE-mail naar het 1e aanspreekpunt sturen (contractverantwoordelijke)
SELECT 'CUST01',
NULL,
c.prs_perslid_key_eig,
'ACTIE: Rappel verstuurd voor contract ' || c.cnt_contract_nummer_intern
|| DECODE (c.cnt_contract_versie, NULL, '', '.' || c.cnt_contract_versie)
|| ' (' || c.cnt_contract_omschrijving || ' ' || b.prs_bedrijf_naam || ')'
|| ' - Moet uiterlijk per ' || TO_CHAR (cnt.cnt_getopzegdatum (c.cnt_contract_key), 'dd-mm-yyyy')
|| ' worden verlengd of opgezegd.',
c.cnt_contract_key,
NULL,
NULL,
NULL
FROM tayl_v_cnt_rappel_basis v, cnt_v_aanwezigcontract c, prs_bedrijf b
WHERE c.cnt_prs_bedrijf_key = b.prs_bedrijf_key
AND v.cnt_contract_key = c.cnt_contract_key
AND v.vink_verantwoordelijke = 1
AND c.cnt_contract_status = 0
AND cnt.cnt_getrappeldatum (c.cnt_contract_key) = TRUNC (SYSDATE)
AND c.prs_perslid_key_eig IS NOT NULL
AND NOT EXISTS -- kenmerkveld 'Opgezegd' staat uit
(SELECT km.cnt_contract_key
FROM cnt_kenmerkcontract km, cnt_kenmerk k
WHERE km.cnt_contract_key = c.cnt_contract_key AND km.cnt_kenmerk_key = k.cnt_kenmerk_key AND k.cnt_srtkenmerk_key = 4)
UNION ALL -- Op rappel-datum ACTIE-mail naar het tweede aanspreekpunt
SELECT 'CUST02',
NULL,
NULL,
'TER INFO: Rappel verstuurd voor contract ' || c.cnt_contract_nummer_intern
|| DECODE (c.cnt_contract_versie, NULL, '', '.' || c.cnt_contract_versie)
|| ' (' || c.cnt_contract_omschrijving || ' ' || b.prs_bedrijf_naam || ')'
|| ' - Moet uiterlijk per ' || TO_CHAR (cnt.cnt_getopzegdatum (c.cnt_contract_key), 'dd-mm-yyyy')
|| ' worden verlengd of opgezegd.',
c.cnt_contract_key,
NULL,
v.tweede_aanspreekpunt_email,
NULL
FROM tayl_v_cnt_rappel_basis v, cnt_v_aanwezigcontract c, prs_bedrijf b
WHERE c.cnt_prs_bedrijf_key = b.prs_bedrijf_key
AND v.cnt_contract_key = c.cnt_contract_key
AND v.vink_2e_aanspreekpunt = 1
AND c.cnt_contract_status = 0
AND cnt.cnt_getrappeldatum (c.cnt_contract_key) = TRUNC (SYSDATE)
AND NOT EXISTS -- kenmerkveld 'Opgezegd' staat uit
(SELECT km.cnt_contract_key
FROM cnt_kenmerkcontract km, cnt_kenmerk k
WHERE km.cnt_contract_key = c.cnt_contract_key AND km.cnt_kenmerk_key = k.cnt_kenmerk_key AND k.cnt_srtkenmerk_key = 4) ;
-------------------------------
--- RAPPORTAGES ---------------
-------------------------------
CREATE OR REPLACE VIEW tayl_v_medewerkers_werktijden
(
PRS_PERSLID_KEY,
PRS_PERSLID_NAAM,
PRS_PERSLID_AFDELING,
MAANDAG,
MAANDAG_LOCATIE,
DINSDAG,
DINSDAG_LOCATIE,
WOENSDAG,
WOENSDAG_LOCATIE,
DONDERDAG,
DONDERDAG_LOCATIE,
VRIJDAG,
VRIJDAG_LOCATIE,
WERKWEEK_TOELICHTING
)
AS
SELECT
p.prs_perslid_key,
CASE WHEN p.prs_perslid_tussenvoegsel IS NULL
THEN p.prs_perslid_voornaam || ' ' || p.prs_perslid_naam || ' (' || sp.prs_srtperslid_omschrijving || ')'
ELSE p.prs_perslid_voornaam || ' ' || p.prs_perslid_tussenvoegsel || ' ' || p.prs_perslid_naam || ' (' || sp.prs_srtperslid_omschrijving || ')'
END
naam,
a.prs_afdeling_naam2,
CASE WHEN kw.ma_ochtend IS NULL and kw.ma_middag IS NULL THEN NULL
WHEN kw.ma_ochtend IS NOT NULL and kw.ma_middag IS NULL THEN 'ochtend'
WHEN kw.ma_ochtend IS NULL and kw.ma_middag IS NOT NULL THEN 'middag'
WHEN kw.ma_ochtend IS NOT NULL and kw.ma_middag IS NOT NULL THEN 'hele dag'
ELSE NULL
END
maandag,
CASE WHEN kw.ma_ochtend IS NOT NULL OR kw.ma_middag IS NOT NULL THEN kw.ma_locatie
ELSE NULL
END
maandag_locatie,
CASE WHEN kw.di_ochtend IS NULL and kw.di_middag IS NULL THEN NULL
WHEN kw.di_ochtend IS NOT NULL and kw.di_middag IS NULL THEN 'ochtend'
WHEN kw.di_ochtend IS NULL and kw.di_middag IS NOT NULL THEN 'middag'
WHEN kw.di_ochtend IS NOT NULL and kw.di_middag IS NOT NULL THEN 'hele dag'
ELSE NULL
END
dinsdag,
CASE WHEN kw.di_ochtend IS NOT NULL OR kw.di_middag IS NOT NULL THEN kw.di_locatie
ELSE NULL
END
dinsdag_locatie,
CASE WHEN kw.wo_ochtend IS NULL and kw.wo_middag IS NULL THEN NULL
WHEN kw.wo_ochtend IS NOT NULL and kw.wo_middag IS NULL THEN 'ochtend'
WHEN kw.wo_ochtend IS NULL and kw.wo_middag IS NOT NULL THEN 'middag'
WHEN kw.wo_ochtend IS NOT NULL and kw.wo_middag IS NOT NULL THEN 'hele dag'
ELSE NULL
END
woensdag,
CASE WHEN kw.wo_ochtend IS NOT NULL OR kw.wo_middag IS NOT NULL THEN kw.wo_locatie
ELSE NULL
END
woensdag_locatie,
CASE WHEN kw.do_ochtend IS NULL and kw.do_middag IS NULL THEN NULL
WHEN kw.do_ochtend IS NOT NULL and kw.do_middag IS NULL THEN 'ochtend'
WHEN kw.do_ochtend IS NULL and kw.do_middag IS NOT NULL THEN 'middag'
WHEN kw.do_ochtend IS NOT NULL and kw.do_middag IS NOT NULL THEN 'hele dag'
ELSE NULL
END
donderdag,
CASE WHEN kw.do_ochtend IS NOT NULL OR kw.do_middag IS NOT NULL THEN kw.do_locatie
ELSE NULL
END
donderdag_locatie,
CASE WHEN kw.vr_ochtend IS NULL and kw.vr_middag IS NULL THEN NULL
WHEN kw.vr_ochtend IS NOT NULL and kw.vr_middag IS NULL THEN 'ochtend'
WHEN kw.vr_ochtend IS NULL and kw.vr_middag IS NOT NULL THEN 'middag'
WHEN kw.vr_ochtend IS NOT NULL and kw.vr_middag IS NOT NULL THEN 'hele dag'
ELSE NULL
END
vrijdag,
CASE WHEN kw.vr_ochtend IS NOT NULL OR kw.vr_middag IS NOT NULL THEN kw.vr_locatie
ELSE NULL
END
vrijdag_locatie,
kw.werkweek_toelichting
FROM
prs_perslid p,
prs_v_afdeling a,
prs_bedrijf b,
prs_srtperslid sp,
(SELECT p.prs_perslid_key,
FLX.getflex('PRS',1000, p.prs_perslid_key, 'P')
werkweek_toelichting,
FLX.getflex('PRS',1041, p.prs_perslid_key, 'P')
ma_ochtend,
FLX.getflex('PRS',1051, p.prs_perslid_key, 'P')
ma_middag,
FLX.getdomeinwaarde (81, FLX.getflex('PRS',1056, p.prs_perslid_key, 'P'))
ma_locatie,
FLX.getflex('PRS',1042, p.prs_perslid_key, 'P')
di_ochtend,
FLX.getflex('PRS',1052, p.prs_perslid_key, 'P')
di_middag,
FLX.getdomeinwaarde (81, FLX.getflex('PRS',1057, p.prs_perslid_key, 'P'))
di_locatie,
FLX.getflex('PRS',1043, p.prs_perslid_key, 'P')
wo_ochtend,
FLX.getflex('PRS',1053, p.prs_perslid_key, 'P')
wo_middag,
FLX.getdomeinwaarde (81, FLX.getflex('PRS',1058, p.prs_perslid_key, 'P'))
wo_locatie,
FLX.getflex('PRS',1044, p.prs_perslid_key, 'P')
do_ochtend,
FLX.getflex('PRS',1054, p.prs_perslid_key, 'P')
do_middag,
FLX.getdomeinwaarde (81, FLX.getflex('PRS',1059, p.prs_perslid_key, 'P'))
do_locatie,
FLX.getflex('PRS',1045, p.prs_perslid_key, 'P')
vr_ochtend,
FLX.getflex('PRS',1055, p.prs_perslid_key, 'P')
vr_middag,
FLX.getdomeinwaarde (81, FLX.getflex('PRS',1060, p.prs_perslid_key, 'P'))
vr_locatie
FROM prs_perslid p) kw
WHERE
p.prs_perslid_key = kw.prs_perslid_key
AND p.prs_perslid_verwijder IS NULL
AND p.prs_afdeling_key = a.prs_afdeling_key
AND a.prs_bedrijf_key = b.prs_bedrijf_key
AND b.prs_bedrijf_key = 6 -- bedrijfs_key TAYL
AND p.prs_srtperslid_key = sp.prs_srtperslid_key ;
-- Bronview - Wie zit waar met werkplekreserveringen
CREATE OR REPLACE VIEW TAYL_V_RES_RESERVERINGINCL
(
KEY,
NUMMER,
RES_OMSCHRIJVING,
INVOERDATUM,
DATUM,
GASTHEER,
ZICHTBARE_GASTHEER,
CONTACT,
GASTHEER_EMAIL,
CONTACT_EMAIL,
INVOERDER,
KOSTENSOORTGROEP,
KOSTENSOORT,
KPN,
KPN_OMSCHRIJVING,
KPN_EXTERN,
FCLT_3D_DIVISIE_KEY,
DIVISIE_NAAM,
DIVISIE_OMSCHRIJVING,
FCLT_3D_AFDELING_KEY,
AFDELING_CODE,
AFDELING_OMSCHRIJVING,
REGIO_OMSCHRIJVING,
DISTRICT_OMSCHIJVING,
FCLT_3D_LOCATIE_KEY,
LOCATIE,
LOCATIE_OMSCHRIJVING,
LOCATIE_PLAATS,
GEBOUW,
VERDIEPING,
RUIMTE,
ALG_RUIMTE_KEY,
OPSTELLING,
CAPACITEIT,
NO_SHOW,
ACTUAL_SHOWN,
MANDAAT,
PERSONEELSNR,
FCLT_3D_DISCIPLINE_KEY,
CATALOGUS_KEY,
CATALOGUS,
RESERVEERBARE_RUIMTE,
BEZOEKERS,
VAN,
TOT,
DUUR,
STATUS,
BOSTATUS,
ACTIVITEIT,
SRTACTIVITEIT_KEY,
ACTIVITEITSOORT,
OPMERKING,
BEZORGMODE,
VOORZIENING_DISCIPLINE_KEY,
VOORZIENING_TYPE,
VOORZIENING_CATALOGUS,
LEVERANCIER,
VOORZIENING_PRODUCT_KEY,
VOORZIENING_PRODUCT,
VOORZIENING_TOTAALPRIJS,
VOORZIENING_VAN,
VOORZIENING_TOT,
VOORZIENING_AANTAL,
VOORZIENING_PRIJS,
-- KENMERKEN TAYLOR
LUNCH,
TOEGANG_BALIE,
PERSOON_INFO,
-- DOORKLIK NAAR RUIMTE-INDICATIE OP PLATTEGROND
HTML_PLATTEGROND,
DIRTLEVEL_CV,
VERVALDATUM_CV,
DIRTLEVEL_CV_FILTER
)
AS
SELECT rrr.res_rsv_ruimte_key,
res.res_reservering_key || '/' || rrr.res_rsv_ruimte_volgnr,
rrr.res_rsv_ruimte_omschrijving,
COALESCE (rrr.res_rsv_ruimte_aanmaak, voorz.van),
rrr.res_rsv_ruimte_van,
(SELECT prs_perslid_naam_full
FROM prs_v_perslid_fullnames_all pf
WHERE pf.prs_perslid_key = rrr.res_rsv_ruimte_host_key),
DECODE (
p.prs_perslid_visibility,
1, (SELECT prs_perslid_naam_friendly
FROM prs_v_perslid_fullnames_all pf
WHERE pf.prs_perslid_key = rrr.res_rsv_ruimte_host_key),
a.prs_afdeling_omschrijving)
zichtbare_gastheer,
(SELECT prs_perslid_naam_full
FROM prs_v_perslid_fullnames_all pf
WHERE pf.prs_perslid_key = rrr.res_rsv_ruimte_contact_key),
(SELECT ph.prs_perslid_email
FROM prs_perslid ph
WHERE ph.prs_perslid_key = rrr.res_rsv_ruimte_host_key),
(SELECT pc.prs_perslid_email
FROM prs_perslid pc
WHERE pc.prs_perslid_key = rrr.res_rsv_ruimte_contact_key),
(SELECT pf.prs_perslid_naam_full
FROM fac_tracking tr,
fac_srtnotificatie str,
prs_v_perslid_fullnames_all pf
WHERE tr.prs_perslid_key = pf.prs_perslid_key
AND str.fac_srtnotificatie_code = 'RESNEW'
AND tr.fac_srtnotificatie_key = str.fac_srtnotificatie_key
AND tr.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,
k.prs_kostenplaats_extern,
an.prs_afdeling_key,
an.prs_afdeling_naam,
an.prs_afdeling_omschrijving,
a.prs_afdeling_key,
a.prs_afdeling_naam,
a.prs_afdeling_omschrijving,
(SELECT rg.alg_regio_omschrijving
FROM alg_regio rg,
alg_district d,
alg_locatie l,
alg_gebouw g,
alg_verdieping v,
alg_ruimte r
WHERE rg.alg_regio_key = d.alg_regio_key
AND 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 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_locatie_plaats
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_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),
r2a.ruimte_nr,
r2a.alg_ruimte_key,
r2a.opstelling,
r2a.capaciteit,
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,
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,
COALESCE ((rrr.res_rsv_ruimte_tot - rrr.res_rsv_ruimte_van) * 24,
0),
(SELECT res_status_fo_omschrijving
FROM res_status_fo rs
WHERE rs.res_status_fo_key = rrr.res_status_fo_key),
(SELECT res_status_bo_omschrijving
FROM res_status_bo rs
WHERE rs.res_status_bo_key = rrr.res_status_bo_key),
ra.res_activiteit_omschrijving,
rsa.res_srtactiviteit_key,
rsa.res_srtactiviteit_omschrijving,
rrr.res_rsv_ruimte_opmerking,
DECODE (rrr.res_rsv_ruimte_cvab_mode,
0, lcl.l ('lcl_res_afhalen'),
1, lcl.l ('lcl_res_bezorgen'),
''),
voorz.ins_discipline_key,
voorz.vtype,
voorz.catalogus,
(SELECT prs_bedrijf_naam
FROM res_disc_params rdp, prs_bedrijf b
WHERE rdp.prs_bedrijf_key = b.prs_bedrijf_key
AND rdp.res_ins_discipline_key = voorz.ins_discipline_key),
voorz.product_key,
voorz.product,
voorz.totaalprijs,
TO_CHAR (voorz.van, 'hh24:mi'),
TO_CHAR (voorz.tot, 'hh24:mi'),
voorz.aantal,
voorz.prijs,
(SELECT kw.res_kenmerkreservering_waarde
FROM res_kenmerkwaarde kw, res_kenmerk k
WHERE kw.res_kenmerk_key = k.res_kenmerk_key AND kw.res_kenmerkwaarde_verwijder IS NULL
AND k.res_kenmerk_code='LUNCH'
AND kw.res_rsv_ruimte_key=rrr.res_rsv_ruimte_key)
lunch,
(SELECT kw.res_kenmerkreservering_waarde
FROM res_kenmerkwaarde kw, res_kenmerk k
WHERE kw.res_kenmerk_key = k.res_kenmerk_key AND kw.res_kenmerkwaarde_verwijder IS NULL
AND k.res_kenmerk_code='VIA_BALIE'
AND kw.res_rsv_ruimte_key=rrr.res_rsv_ruimte_key)
toegang_balie,
(SELECT MAX(kl.prs_kenmerklink_waarde)
FROM prs_kenmerklink kl, prs_kenmerk k, prs_perslid p
WHERE kl.prs_link_key = p.prs_perslid_key AND kl.prs_kenmerklink_verwijder IS NULL
AND kl.prs_kenmerklink_niveau = 'P'
AND kl.prs_kenmerk_key = k.prs_kenmerk_key
AND k.prs_kenmerk_code = 'BESCHIKBAARHEID'
AND p.prs_perslid_key = rrr.res_rsv_ruimte_contact_key)
persoon_info,
'<a class="details" onclick=''FcltMgr.openDetail("appl/cad/ShowRoom.asp?rKey='||r2a.alg_ruimte_key || '")''>'
|| 'klik hier'
|| '</a>' html_plattegrond_ruimte,
DECODE(voorz.dirtlevel, 0, NULL, 'Ongeldig')
dirtlevel_cv,
voorz.vervaldatum,
CASE WHEN voorz.vervaldatum IS NOT NULL THEN
'Ongeldig - wp vervallen'
WHEN voorz.dirtlevel > 0 THEN
'Ongeldig - wp al bezet'
ELSE NULL END
dirtlevel_cv_filter
FROM res_v_aanwezigrsv_ruimte rrr,
res_activiteit ra,
res_srtactiviteit rsa,
res_reservering res,
prs_kostenplaats k,
prs_perslid p,
prs_afdeling a,
prs_afdeling an,
prs_v_afdeling_boom ab,
( SELECT res_rsv_ruimte_key,
MAX (o.res_opstelling_omschrijving) opstelling,
MAX (ro.res_ruimte_opstel_bezoekers) capaciteit,
MAX (ra.alg_ruimte_key) alg_ruimte_key,
MAX (rr.res_ruimte_nr) ruimte_nr
FROM res_rsv_ruimte r,
res_ruimte_opstelling ro,
res_opstelling o,
res_ruimte rr,
res_alg_ruimte ra
WHERE r.res_rsv_ruimte_verwijder IS NULL
AND 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
GROUP BY res_rsv_ruimte_key
UNION ALL
SELECT res_rsv_ruimte_key,
'' opstelling,
NULL capaciteit,
rrr.alg_ruimte_key,
r.alg_ruimte_nr
FROM res_rsv_ruimte rrr, alg_ruimte r
WHERE rrr.alg_ruimte_key IS NOT NULL
AND r.alg_ruimte_key = rrr.alg_ruimte_key) r2a,
(SELECT rrd.res_rsv_ruimte_key
res_rsv_ruimte_key,
-rd.res_deel_key
product_key,
rd.res_deel_omschrijving
product,
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,
c.ins_discipline_key
ins_discipline_key,
c.ins_discipline_omschrijving
catalogus,
'object'
vtype,
rrd.res_rsv_deel_dirtlevel
dirtlevel,
rd.res_deel_vervaldatum
vervaldatum
FROM res_v_aanwezigrsv_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_key
product_key,
ra.res_artikel_omschrijving
product,
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,
c.ins_discipline_key
ins_discipline_key,
c.ins_discipline_omschrijving
catalogus,
'consumable'
vtype,
rra.res_rsv_artikel_dirtlevel
dirtlevel,
ra.res_artikel_vervaldatum
vervaldatum
FROM res_v_aanwezigrsv_artikel rra,
res_artikel ra,
ins_tab_discipline c
WHERE rra.res_artikel_key = ra.res_artikel_key
AND ra.res_discipline_key = c.ins_discipline_key) voorz
WHERE rrr.res_reservering_key = res.res_reservering_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 rrr.res_activiteit_key = ra.res_activiteit_key
AND ra.res_srtactiviteit_key = rsa.res_srtactiviteit_key
AND rrr.res_rsv_ruimte_host_key = p.prs_perslid_key
AND p.prs_afdeling_key = a.prs_afdeling_key
AND p.prs_afdeling_key = ab.prs_afdeling_key
AND ab.prs_afdeling_key1 = an.prs_afdeling_key
AND ( rrr.res_ruimte_opstel_key IS NOT NULL
OR voorz.res_rsv_ruimte_key IS NOT NULL)
AND rrr.res_rsv_ruimte_van >= TO_DATE ('01-01-2010', 'DD-MM-YYYY');
-- Bronview voor QRC-codes en melden storingen op objecten
CREATE OR REPLACE VIEW tayl_v_rap_qr_deel
AS
SELECT user
omgeving,
fac_bookmark_naam,
fac_bookmark_id,
b.fac_bookmark_path,
b.fac_bookmark_query,
d.ins_discipline_omschrijving,
d.ins_srtgroep_omschrijving,
d.ins_srtdeel_omschrijving,
d.ins_deel_omschrijving,
(SELECT km.ins_kenmerkdeel_waarde
FROM ins_kenmerkdeel km, ins_kenmerk k
WHERE km.ins_deel_key = d.ins_deel_key
AND km.ins_kenmerk_key = k.ins_kenmerk_key
AND k.ins_kenmerk_code = 'QRC_SERIENUMMER'
AND km.ins_kenmerkdeel_verwijder IS NULL)
qrc_serienummer,
CASE
WHEN (SELECT MAX (k.ins_kenmerk_key)
FROM ins_kenmerkdeel km, ins_kenmerk k
WHERE km.ins_deel_key = d.ins_deel_key
AND km.ins_kenmerk_key = k.ins_kenmerk_key
AND k.ins_kenmerk_code = 'QRC_BESTICKEREN'
AND km.ins_kenmerkdeel_verwijder IS NULL)
IS NOT NULL
THEN
flx.getdomeinwaarde (2,
flx.getflex (
'INS',
(SELECT MAX (k.ins_kenmerk_key)
FROM ins_kenmerkdeel km,
ins_kenmerk k
WHERE km.ins_deel_key =
d.ins_deel_key
AND km.ins_kenmerk_key =
k.ins_kenmerk_key
AND k.ins_kenmerk_code =
'QRC_BESTICKEREN'
AND km.ins_kenmerkdeel_verwijder
IS NULL),
d.ins_deel_key))
ELSE
'Nvt'
END
nog_bestickeren,
CASE
WHEN d.alg_locatie_key IS NOT NULL THEN 'Locatiegebonden'
WHEN d.prs_perslid_key IS NOT NULL THEN 'Persoonsgebonden'
ELSE 'Overig'
END
TYPE,
d.alg_locatie_key,
d.prs_perslid_key,
CASE
WHEN d.alg_locatie_key IS NOT NULL THEN d.alg_gebouw_naam
WHEN d.prs_perslid_key IS NOT NULL THEN d.prs_perslid_volnaam
ELSE ''
END
plaats,
d.alg_plaatsaanduiding,
d.ins_deel_aanmaak,
d.ins_deel_key
FROM fac_bookmark b, ins_v_deel_gegevens d
WHERE fac_bookmark_expire IS NULL
AND fac_bookmark_id = 'jUY0LZPaCv9u2n6n'
AND d.ins_discipline_key NOT IN (43, 81) -- Geen SYSTEMEN en WERKPLEKKEN
AND ( d.ins_deel_vervaldatum IS NULL
OR d.ins_deel_vervaldatum >= TRUNC (SYSDATE));
------ 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