HMOD#83254 -- Herstructurering Bedrijfsbureau - Views tbv interne/externe opdrachten in calenderweergave

svn path=/Customer/trunk/; revision=64418
This commit is contained in:
Jos Migo
2024-04-26 15:24:44 +00:00
parent 71ef46473c
commit 02831a8134

View File

@@ -2638,7 +2638,7 @@ SELECT
AND v.formatieplaats = k.code (+)
;
-- Meldingen en Actiedatums - Tbv Kalenderview (gebouwbeheerders)
-- Meldingen en Actiedatums
CREATE OR REPLACE VIEW hmod_v_rap_meldingen_bo
(
MLD_MELDING_KEY,
@@ -2701,7 +2701,7 @@ AS
AND std.mld_stdmeldinggroep_key = stg.mld_stdmeldinggroep_key (+)
;
-- Tbv calenderview op actiedatum (voor Gebouwbeheerders)
-- Tbv calenderview op actiedatum vanuit Meldingen
CREATE OR REPLACE VIEW hmod_v_cal_meldingen_bo
(
USER_KEY,
@@ -2752,39 +2752,54 @@ SELECT behandelaar_key,
FROM hmod_v_rap_meldingen_bo
ORDER BY mld_melding_actiedatum ;
-- Opdrachten en Gebouwbeheer
CREATE OR REPLACE VIEW HMOD_V_RAP_OPDRACHTEN_INTERN
-- Opdrachten en Geplande aanvang
--- uit storingen en service-aanvragen
CREATE OR REPLACE VIEW hmod_v_rap_opdrachten
(
INTERN,
TYPE,
MLD_OPDR_KEY,
MLD_UITVOERENDE_KEY,
OPDRACHTNR,
OPDRACHT_DATUM,
STATUS,
MELDING,
BEHANDELAAR,
LOCATIE_PLAATS,
LOCATIE_OMSCHRIJVING,
OPDRACHT_AANMAAKDATUM,
GEPLANDE_AANVANG,
GEPLANDE_AANVANG_B, -- berekend voor kalenderweergave
GEPLANDE_EINDDATUM,
GEPLANDE_EINDDATUM_B, -- berekend voor kalenderweergave
OPDRACHT_EINDDATUM,
MELDING_EINDDATUM,
OMSCHRIJVING,
PRS_PERSLID_KEY,
NAAM_UITVOERDER,
TYPE_LOCATIE,
UREN_BESTEED,
AFMELD_DATUM,
OPDRACHT_TYPE,
TD_NAAM
TD_NAAM,
PRIORITEIT,
STATUS_KALENDER, -- t.b.v. kalenderweergave
FCLT_3D_DISCIPLINE_KEY, -- vakgroep_key
VAKGROEP,
VAKGROEPTYPE
)
AS
SELECT CASE
WHEN mu.TYPE = 'B' THEN 'Poule-opdracht'
WHEN mu.TYPE = 'P' THEN 'Klus-opdracht'
SELECT mu.intern,
CASE
WHEN mu.TYPE = 'B' AND mu.intern = 1 THEN 'Poule-opdracht'
WHEN mu.TYPE = 'P' AND mu.intern = 1 THEN 'Klus-opdracht'
WHEN mu.intern = 0 THEN 'Externe opdracht'
ELSE '<?>'
END
TYPE,
o.mld_opdr_key,
CASE
WHEN mu.TYPE = 'B' THEN o.prs_perslid_key
WHEN mu.TYPE = 'P' THEN mu.mld_uitvoerende_key
WHEN mu.TYPE = 'B' AND mu.intern = 1 THEN mu.mld_uitvoerende_key
WHEN mu.TYPE = 'P' AND mu.intern = 1 THEN mu.mld_uitvoerende_key
WHEN mu.intern = 0 THEN mu.mld_uitvoerende_key
ELSE NULL
END
mld_uitvoerende_key,
@@ -2792,7 +2807,6 @@ AS
|| '/'
|| o.mld_opdr_bedrijfopdr_volgnr
opdrachtnummer,
o.mld_opdr_datumbegin,
DECODE (
os.mld_statusopdr_key,
8, DECODE (o.mld_opdr_halted,
@@ -2801,59 +2815,176 @@ AS
os.mld_statusopdr_omschrijving)
status,
std.mld_stdmelding_omschrijving,
COALESCE (p.prs_perslid_naam_full, '<nog geen behandelaar>'), -- BEHANDELAAR
COALESCE (p.prs_perslid_naam_full, '<nog geen behandelaar>')
behandelaar,
l.alg_locatie_plaats,
l.alg_locatie_omschrijving,
COALESCE (o.mld_opdr_plandatum, o.mld_opdr_einddatum)
geplande_aanvang,
TRIM (
o.mld_opdr_datumbegin,
o.mld_opdr_plandatum
geplande_aanvang,
CASE WHEN o.mld_opdr_plandatum IS NOT NULL THEN o.mld_opdr_plandatum ELSE o.mld_opdr_datumbegin END
geplande_aanvang_b,
o.mld_opdr_plandatum2
geplande_einddatum,
CASE WHEN o.mld_opdr_plandatum2 IS NOT NULL AND o.mld_opdr_plandatum IS NOT NULL THEN o.mld_opdr_plandatum2
WHEN o.mld_opdr_plandatum2 IS NULL AND o.mld_opdr_plandatum IS NOT NULL THEN o.mld_opdr_plandatum + 2/24
ELSE o.mld_opdr_datumbegin + 2/24
END
geplande_einddatum_b,
o.mld_opdr_einddatum,
m.mld_melding_einddatum,
TRIM (
REGEXP_REPLACE (
REGEXP_SUBSTR (o.mld_opdr_omschrijving,
'(([^ ]*)( |$)*){10}'),
'[[:space:]]',
' '))
|| '...',
|| '...'
omschrijving,
p.prs_perslid_key,
mu.naam,
d.alg_district_omschrijving,
mu.naam
naam_uitvoerder,
(SELECT ko.mld_kenmerkopdr_waarde
FROM mld_kenmerkopdr ko
WHERE ko.mld_opdr_key = o.mld_opdr_key
AND ko.mld_kenmerk_key = 203) -- kenmerk Uren_besteed
uren_besteed,
(SELECT MAX (ft.fac_tracking_datum)
FROM fac_tracking ft
WHERE ft.fac_tracking_refkey = o.mld_opdr_key
AND ft.fac_srtnotificatie_key = 74), -- MLDAFM
AND ft.fac_srtnotificatie_key = 78) -- ORDAFM
afmeld_datum,
ot.mld_typeopdr_omschrijving,
CASE
WHEN mu.TYPE = 'B'
THEN
COALESCE (p.prs_perslid_naam_full,
'<nog geen behandelaar>')
WHEN mu.TYPE = 'P'
THEN
mu.naam
ELSE
'<?>'
END
TD_NAAM
WHEN mu.TYPE = 'B' AND mu.intern = 1 THEN COALESCE (p.prs_perslid_naam_full, '<nog geen behandelaar>')
WHEN mu.TYPE = 'P' AND mu.intern = 1 THEN mu.naam
ELSE ''
END td_naam,
CASE WHEN mu.intern = 1 THEN COALESCE(v.prioriteit,'3 - NORMAAL')
ELSE 'nvt'
END
prioriteit,
CASE
WHEN os.mld_statusopdr_omschrijving = 'Afgemeld' THEN 'Afgemeld'
WHEN os.mld_statusopdr_omschrijving = 'Afgewezen' THEN 'Afgewezen'
WHEN mu.intern = 1 AND os.mld_statusopdr_omschrijving = 'Toegekend' AND o.mld_opdr_plandatum IS NULL THEN 'Nog inplannen'
WHEN mu.intern = 1 AND os.mld_statusopdr_omschrijving = 'Toegekend' AND o.mld_opdr_plandatum IS NOT NULL THEN 'Ingepland'
WHEN mu.intern = 0 AND os.mld_statusopdr_omschrijving = 'Toegekend' AND o.mld_opdr_plandatum IS NULL THEN 'Nog niet bevestigd'
WHEN mu.intern = 0 AND os.mld_statusopdr_omschrijving = 'Toegekend' AND o.mld_opdr_plandatum IS NOT NULL THEN 'Bevestigd'
ELSE ''
END status_kalender,
d.ins_discipline_key,
d.ins_discipline_omschrijving,
sd.ins_srtdiscipline_omschrijving
FROM mld_opdr o,
mld_melding m,
mld_typeopdr ot,
prs_v_perslid_fullnames p,
ins_tab_discipline d,
ins_srtdiscipline sd,
mld_stdmelding std,
alg_locatie l,
alg_district d,
alg_district di,
mld_v_uitvoerende mu,
mld_statusopdr os
mld_statusopdr os,
(
SELECT ko.mld_opdr_key, ud.fac_usrdata_code || ' - ' || ud.fac_usrdata_omschr prioriteit
FROM mld_kenmerkopdr ko, fac_usrdata ud
WHERE fac.safe_to_number(ko.mld_kenmerkopdr_waarde) = ud.fac_usrdata_key
AND fac_usrtab_key = 641 -- keuzelijst eigen tabel Prioriteit
AND ko.mld_kenmerk_key IN (3881, 3901) -- kenmerk Prioriteit
) v
WHERE o.mld_melding_key = m.mld_melding_key(+)
AND o.prs_perslid_key = p.prs_perslid_key(+)
AND o.mld_typeopdr_key = ot.mld_typeopdr_key
AND ot.mld_typeopdr_isofferte = 0 -- Alleen werkopdrachten
AND m.mld_stdmelding_key = std.mld_stdmelding_key(+)
AND std.mld_ins_discipline_key = d.ins_discipline_key(+)
AND m.mld_alg_locatie_key = l.alg_locatie_key -- alle std-meldingen hebben verplicht-niveau locatie
AND l.alg_district_key = d.alg_district_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 IN (22, 23) -- Storingen en Serviceaanvragen
AND m.mld_alg_locatie_key = l.alg_locatie_key (+)
AND l.alg_district_key = di.alg_district_key (+)
AND o.mld_uitvoerende_keys = mu.mld_uitvoerende_key
AND os.mld_statusopdr_key = o.mld_statusopdr_key
AND mu.intern = 1;
AND o.mld_opdr_key = v.mld_opdr_key(+);
-- Tbv calenderview vanuit Opdrachten - geplande aanvang
CREATE OR REPLACE VIEW hmod_v_cal_opdrachten
(
USER_KEY,
TITLE,
VAN,
TOT,
ITEM_KEY,
COLOR,
TEXTCOLOR,
NAAM_UITVOERRDER,
LOCATIE_PLAATS,
STATUS_KALENDER,
INTERN,
OPDRACHT_TYPE
)
AS
SELECT mld_uitvoerende_key,
' - ' || opdrachtnr || CHR(10)
|| naam_uitvoerder || CHR(10)
|| locatie_omschrijving || CHR(10)
|| 'Status: ' || status_kalender || CHR(10)
|| CASE WHEN geplande_einddatum IS NOT NULL THEN DECODE(intern, 1, 'Ingepland tot ', 'Bevestigd voor ') || TO_CHAR(geplande_einddatum_b) || CHR(10) ELSE '' END
|| CASE WHEN intern = 1 THEN CHR(10) || 'Prio: ' || prioriteit ELSE '' END
title,
geplande_aanvang_b
van,
geplande_einddatum_b
tot,
mld_opdr_key,
DECODE (intern, 1,
DECODE (status_kalender,
'Afgewezen', '#C0C0C0', -- grijs
'Afgemeld', '#C0C0C0', -- grijs
'Nog inplannen', '#f58a20', -- oranje
'Ingepland', '#20b2f5', -- lichtblauw
'#0000FF'),
0,
DECODE (status_kalender,
'Afgewezen', '#C0C0C0', -- grijs
'Afgemeld', '#C0C0C0', -- grijs
'Nog niet bevestigd', '#F5ED5D', -- lichtgeel
'Bevestigd', '#DED304', -- donkergeel
'#0000FF'),
'#0000FF'
) color, --
DECODE (intern, 1,
DECODE (status_kalender,
'Afgewezen', '#bf0b3b', -- rood
'Afgemeld', '#000000', -- zwart
'Nog inplannen', '#FFFFFF', -- wit,
'Ingepland',
DECODE (LOWER(prioriteit),
'3 - normaal', '#FFFFFF', -- wit
'4 - laag', '#FFFFFF', -- wit
'2 - hoog', '#f58a20', -- oranje
'1 - kritiek', '#bf0b3b', -- rood
'#000000'),
'#000000'),
0,
DECODE (status_kalender,
'Afgewezen', '#bf0b3b', -- rood
'Afgemeld', '#000000', -- zwart
'Nog niet bevestigd', '#000000', -- zwart
'Bevestigd', '#000000', -- zwart
'Toegekend', '#FFFFFF', -- wit,
'#0000FF'),
'#000000'
) textcolor,
naam_uitvoerder,
locatie_plaats,
status_kalender,
intern,
opdracht_type
FROM hmod_v_rap_opdrachten
ORDER BY geplande_aanvang_b ;
-- view om QR codes voor een deel te genereren
CREATE OR REPLACE VIEW hmod_v_rap_qr_deel