666 lines
28 KiB
MySQL
666 lines
28 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 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
|