SINN#82298 -- Periodieke reguliere controle taken - TD-proces en opdrachtbewaking

svn path=/Customer/trunk/; revision=70856
This commit is contained in:
Jos Migo
2025-11-07 08:38:31 +00:00
parent 60778b4c5e
commit 78ab7157de

View File

@@ -1737,6 +1737,245 @@ AS
ORDER BY b.ins_deelsrtcontrole_key, b.volgnr) rie
WHERE v.ins_deelsrtcontrole_key = rie.ins_deelsrtcontrole_key;
-- PROCES OPDRAVCHTEN EN PLANNING
--- View tbv planbord calenderweergave
CREATE OR REPLACE VIEW sinn_v_rap_opdrachten
(
INTERN,
TYPE,
MLD_OPDR_KEY,
MLD_UITVOERENDE_KEY,
OPDRACHTNR,
STATUS,
MELDING,
BEHANDELAAR,
DISTRICT_OMSCHRIJVING, -- KOEPEL
LOCATIE_PLAATS,
LOCATIE_OMSCHRIJVING,
GEBOUW_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,
AFMELD_DATUM,
OPDRACHT_TYPE,
TD_NAAM,
PRIORITEIT,
STATUS_KALENDER, -- t.b.v. kalenderweergave
INS_SRTDISCIPLINE_KEY
)
AS
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' AND mu.intern = 1 THEN mu.mld_uitvoerende_key
WHEN mu.TYPE = 'P' AND mu.intern = 1 THEN o.prs_perslid_key
WHEN mu.intern = 0 THEN mu.mld_uitvoerende_key
ELSE NULL
END
mld_uitvoerende_key,
TO_CHAR (o.mld_melding_key)
|| '/'
|| o.mld_opdr_bedrijfopdr_volgnr
opdrachtnummer,
DECODE (
os.mld_statusopdr_key,
8, DECODE (o.mld_opdr_halted,
1, 'Onderbroken',
os.mld_statusopdr_omschrijving),
os.mld_statusopdr_omschrijving)
status,
std.mld_stdmelding_omschrijving,
COALESCE (p.prs_perslid_naam_full, '<nog geen behandelaar>')
behandelaar,
d.alg_district_omschrijving,
l.alg_locatie_plaats,
l.alg_locatie_omschrijving,
(SELECT g.alg_gebouw_naam
FROM alg_v_onroerendgoed_gegevens v, alg_gebouw g
WHERE v.alg_gebouw_key = g.alg_gebouw_key
AND v.alg_onroerendgoed_keys = m.mld_alg_onroerendgoed_keys)
gebouw_omschrijving,
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
naam_uitvoerder,
(SELECT MAX (ft.fac_tracking_datum)
FROM fac_tracking ft
WHERE ft.fac_tracking_refkey = o.mld_opdr_key
AND ft.fac_srtnotificatie_key = 80) -- ORDAFM
afmeld_datum,
ot.mld_typeopdr_omschrijving,
CASE
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,
COALESCE(v.prioriteit,'3 - NORMAAL')
prioriteit,
CASE
WHEN os.mld_statusopdr_omschrijving = 'Afgemeld' THEN 'Afgemeld'
WHEN os.mld_statusopdr_omschrijving = 'Afgewezen' THEN 'Afgewezen'
WHEN os.mld_statusopdr_omschrijving = 'Afgerond' THEN 'Afgerond'
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_srtdiscipline_key
FROM mld_opdr o,
mld_melding m,
mld_typeopdr ot,
prs_v_perslid_fullnames p,
ins_tab_discipline d,
mld_stdmelding std,
alg_locatie l,
alg_district d,
mld_v_uitvoerende mu,
mld_statusopdr os,
(
SELECT ko.mld_opdr_key, ud.fac_usrdata_code 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 = 62 -- keuzelijst eigen tabel Prioriteit
AND ko.mld_kenmerk_key IN (265) -- 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/gebouw
AND l.alg_district_key = d.alg_district_key
AND o.mld_uitvoerende_keys = mu.mld_uitvoerende_key
AND os.mld_statusopdr_key = o.mld_statusopdr_key
AND o.mld_opdr_key = v.mld_opdr_key(+);
-- bijbehorende calenderview
CREATE OR REPLACE VIEW sinn_v_cal_opdrachten
(
USER_KEY,
TITLE,
VAN,
TOT,
ITEM_KEY,
COLOR,
TEXTCOLOR,
NAAM_UITVOERRDER,
LOCATIE_PLAATS,
STATUS_KALENDER,
INTERN,
OPDRACHT_TYPE,
INS_SRTDISCIPLINE_KEY
)
AS
SELECT mld_uitvoerende_key,
' - ' || opdrachtnr || CHR(10)
|| naam_uitvoerder || CHR(10)
|| district_omschrijving || ' - ' || locatie_omschrijving || CHR(10)
|| gebouw_omschrijving || CHR(10)
|| 'Status: ' || status_kalender || CHR(10)
|| CASE
WHEN geplande_aanvang IS NOT NULL AND geplande_einddatum IS NOT NULL THEN 'Van ' || TO_CHAR(geplande_aanvang_b) || ' tot ' || TO_CHAR(geplande_einddatum_b)
WHEN geplande_aanvang IS NOT NULL AND geplande_einddatum IS NULL THEN 'Aanvang: ' || TO_CHAR(geplande_aanvang_b)
WHEN geplande_aanvang IS NULL AND geplande_einddatum IS NOT NULL THEN 'Einddatum: ' || TO_CHAR(geplande_einddatum_b)
ELSE '<nog te plannen>' END
|| CHR(10) || 'Prio: ' || prioriteit
title,
geplande_aanvang_b
van,
geplande_einddatum_b
tot,
mld_opdr_key,
DECODE (intern, 1,
DECODE (status_kalender,
'Afgewezen', '#C0C0C0', -- grijs
'Afgemeld', '#C0C0C0', -- grijs
'Afgerond', '#C0C0C0', -- grijs
'Nog inplannen', '#f58a20', -- oranje
'Ingepland', '#20b2f5', -- lichtblauw
'#0000FF'),
0,
DECODE (status_kalender,
'Afgewezen', '#C0C0C0', -- grijs
'Afgemeld', '#C0C0C0', -- grijs
'Afgerond', '#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
'Afgerond', '#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
'Afgerond', '#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,
ins_srtdiscipline_key
FROM sinn_v_rap_opdrachten
ORDER BY geplande_aanvang_b ;
------ payload end ------
SET DEFINE OFF