729 lines
28 KiB
SQL
729 lines
28 KiB
SQL
--
|
|
-- $Id$
|
|
--
|
|
-- Script containing customer specific sql statements for the FACILITOR database
|
|
|
|
DEFINE thisfile = 'SKHF.SQL'
|
|
DEFINE dbuser = 'SKHF'
|
|
|
|
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 skhf_v_bedrijven
|
|
(
|
|
PRS_BEDRIJF_KEY,
|
|
PRS_BEDRIJF_NAAM,
|
|
PRS_BEDRIJF_ACTIEF,
|
|
PRS_BEDRIJF_VERWIJDER
|
|
)
|
|
AS
|
|
SELECT prs_bedrijf_key,
|
|
prs_bedrijf_naam,
|
|
CASE
|
|
WHEN prs_bedrijf_leverancier IS NULL
|
|
AND prs_bedrijf_uitvoerende IS NULL
|
|
AND prs_bedrijf_contract IS NULL
|
|
THEN
|
|
'na' -- geen actieve relatie
|
|
ELSE
|
|
'a' -- actieve relatie
|
|
END prs_bedrijf_actief,
|
|
prs_bedrijf_verwijder
|
|
FROM prs_bedrijf
|
|
WHERE prs_bedrijf_intern IS NULL;
|
|
|
|
|
|
CREATE OR REPLACE VIEW skhf_v_kostenplaatsen
|
|
(
|
|
PRS_KOSTENPLAATS_KEY,
|
|
PRS_KOSTENPLAATS_OMSCHRIJVING,
|
|
PRS_KOSTENPLAATS_VERWIJDER
|
|
)
|
|
AS
|
|
SELECT k.prs_kostenplaats_key,
|
|
CASE
|
|
WHEN ( prs_kostenplaats_verwijder IS NOT NULL
|
|
OR ( prs_kostenplaats_eind IS NOT NULL
|
|
AND prs_kostenplaats_eind < TRUNC (SYSDATE)))
|
|
THEN
|
|
k.prs_kostenplaats_nr || ' - ' || k.prs_kostenplaats_omschrijving || ' - oud!'
|
|
ELSE
|
|
k.prs_kostenplaats_nr || ' - ' || k.prs_kostenplaats_omschrijving
|
|
END
|
|
prs_kostenplaats_omschrijving,
|
|
k.prs_kostenplaats_verwijder
|
|
FROM prs_kostenplaats k ;
|
|
|
|
CREATE OR REPLACE VIEW skhf_v_personenlijst
|
|
(
|
|
PRS_PERSLID_KEY,
|
|
NAAM,
|
|
PERSONEELSNUMMER,
|
|
EMAIL,
|
|
PRS_PERSLID_VERWIJDER
|
|
)
|
|
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,
|
|
p.prs_perslid_nr,
|
|
p.prs_perslid_email,
|
|
p.prs_perslid_verwijder
|
|
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 = 21 -- bedrijfs_key SKH
|
|
AND p.prs_srtperslid_key = sp.prs_srtperslid_key
|
|
ORDER BY sp.prs_srtperslid_omschrijving DESC, p.prs_perslid_voornaam, p.prs_perslid_naam
|
|
;
|
|
|
|
CREATE OR REPLACE VIEW skhf_v_locatielijst
|
|
(
|
|
ALG_LOCATIE_KEY,
|
|
ALG_LOCATIE_NAAM,
|
|
ALG_LOCATIE_CODE
|
|
)
|
|
AS
|
|
SELECT
|
|
l.alg_locatie_key,
|
|
l.alg_locatie_omschrijving || ' ' || l.alg_locatie_adres
|
|
alg_locatie_naam,
|
|
l.alg_locatie_code
|
|
FROM
|
|
alg_locatie l
|
|
WHERE
|
|
COALESCE(l.alg_locatie_verwijder, l.alg_locatie_vervaldatum, TRUNC(SYSDATE)) >= TRUNC(SYSDATE)
|
|
ORDER BY l.alg_locatie_omschrijving
|
|
;
|
|
|
|
CREATE OR REPLACE VIEW skhf_v_it_simkaarten
|
|
(
|
|
INS_DEEL_KEY,
|
|
SIMKAART
|
|
)
|
|
AS
|
|
SELECT
|
|
v.ins_deel_key,
|
|
v.ins_deel_upper
|
|
simkaart
|
|
FROM ins_v_deel_gegevens v, ins_deel d
|
|
WHERE v.ins_discipline_key = 82 -- IT-Intern
|
|
AND v.ins_srtdeel_key = 21 -- SIM-kaarten
|
|
AND v.ins_deel_key = d.ins_deel_key
|
|
AND d.ins_deel_verwijder IS NULL
|
|
AND (d.ins_deel_vervaldatum IS NULL OR TRUNC(d.ins_deel_vervaldatum) > TRUNC(sysdate) ) ;
|
|
|
|
----------------------------------------
|
|
--- AUTOCAD-THEMA'S en LABELS ----------
|
|
----------------------------------------
|
|
|
|
|
|
-------------------------------
|
|
--- PROCEDURES ---------------
|
|
-------------------------------
|
|
|
|
-- Kinderopvang Huizen registreert op de ruimtes in haar Facilitor vastgoed de M2 en de M2 bestemd voor LRK wn wettelijke toegestane hoeveelheid kindplekken
|
|
--- Op locatieniveau wordt de totalisatie gedaan mbv exportfunctie locatie_m2
|
|
----- Locatiekaart, waar ook locatieleiders rechten op hebben, is in hun Facilitor de bron van vele relevante gegevens.
|
|
----- Verdere rapportage die voor bijvoorbeeld GGD moet verstrekken, dienen zelf op basis UDR gemaakt te worden.
|
|
|
|
-- Hulpview bij exportfunctie LOCATIE_M2
|
|
CREATE OR REPLACE VIEW SKHF_V_LOCATIE_M2
|
|
(
|
|
ALG_LOCATIE_KEY,
|
|
ALG_LOCATIE_OMSCHRIJVING,
|
|
ALG_RUIMTE_KEY,
|
|
ALG_RUIMTE_NR,
|
|
ALG_RUIMTE_OMSCHRIJVING,
|
|
ALG_RUIMTE_BRUTO_VLOEROPP,
|
|
ALG_SRTRUIMTE_UPPER,
|
|
ALG_SRTRUIMTE_CODE,
|
|
RUIMTE_M2_NETTO,
|
|
RUIMTE_M2_NETTO_LRK,
|
|
RUIMTE_KINDPLAATSEN_TOT, -- op basis alle/totaal m2
|
|
RUIMTE_KINDPLAATSEN_LRK -- op basis opvang / LRK - ruimtes
|
|
)
|
|
AS
|
|
SELECT l.alg_locatie_key,
|
|
l.alg_locatie_omschrijving,
|
|
r.alg_ruimte_key,
|
|
r.alg_ruimte_nr,
|
|
r.alg_ruimte_omschrijving,
|
|
r.alg_ruimte_bruto_vloeropp,
|
|
sr.alg_srtruimte_upper,
|
|
sr.alg_srtruimte_code,
|
|
fac.safe_to_number(FLX.getflex ('ALG', 1105, r.alg_ruimte_key, 'R'))
|
|
ruimte_M2_netto,
|
|
fac.safe_to_number(DECODE (sr.alg_srtruimte_code, 'LRK', FLX.getflex ('ALG', 1105, r.alg_ruimte_key, 'R'), NULL))
|
|
ruimte_M2_netto_lrk,
|
|
fac.safe_to_number(FLX.getflex ('ALG', 1107, r.alg_ruimte_key, 'R'))
|
|
ruimte_kindplaatsen_tot,
|
|
fac.safe_to_number(DECODE (sr.alg_srtruimte_code, 'LRK', FLX.getflex ('ALG', 1107, r.alg_ruimte_key, 'R'), NULL))
|
|
ruimte_kindplaatsen_lrk
|
|
FROM alg_ruimte r,
|
|
alg_verdieping v,
|
|
alg_gebouw g,
|
|
alg_locatie l,
|
|
alg_srtruimte sr
|
|
WHERE r.alg_verdieping_key = v.alg_verdieping_key
|
|
AND v.alg_gebouw_key = g.alg_gebouw_key
|
|
AND g.alg_locatie_key = l.alg_locatie_key
|
|
AND r.alg_srtruimte_key = sr.alg_srtruimte_key
|
|
AND l.alg_locatie_verwijder IS NULL AND g.alg_gebouw_verwijder IS NULL AND v.alg_verdieping_verwijder IS NULL AND r.alg_ruimte_verwijder IS NULL
|
|
AND (
|
|
l.alg_locatie_vervaldatum IS NULL
|
|
OR
|
|
l.alg_locatie_vervaldatum > TRUNC(SYSDATE)
|
|
)
|
|
AND (
|
|
g.alg_gebouw_vervaldatum IS NULL
|
|
OR
|
|
g.alg_gebouw_vervaldatum > TRUNC(SYSDATE)
|
|
)
|
|
;
|
|
|
|
-- Exportfunctie LOCATIE_M2
|
|
CREATE OR REPLACE VIEW skhf_v_export_locatie_m2
|
|
(
|
|
result,
|
|
result_order
|
|
)
|
|
AS
|
|
SELECT '"SYNC - Locatie en m2"'
|
|
|| ';"Bijgewerkt"',
|
|
0
|
|
FROM DUAL
|
|
UNION
|
|
SELECT 'ERROR: Datum '|| TO_CHAR(imp_log_datum) || ' - ' || imp_log_omschrijving || ' - ' || imp_log_hint,
|
|
1
|
|
FROM imp_log
|
|
WHERE imp_log_applicatie = 'LOCATIE_M2' ;
|
|
|
|
CREATE OR REPLACE PROCEDURE skhf_select_locatie_m2
|
|
(
|
|
p_applname IN VARCHAR2,
|
|
p_applrun IN VARCHAR2
|
|
)
|
|
AS
|
|
|
|
CURSOR c
|
|
IS
|
|
SELECT l.alg_locatie_key,
|
|
COALESCE(FLX.getflex ('ALG',
|
|
1121,
|
|
l.alg_locatie_key,
|
|
'L'), NULL)
|
|
locatie_M2_netto_totaal,
|
|
COALESCE(FLX.getflex ('ALG',
|
|
1120,
|
|
l.alg_locatie_key,
|
|
'L'), NULL)
|
|
locatie_M2_LRK,
|
|
COALESCE(FLX.getflex ('ALG',
|
|
1140,
|
|
l.alg_locatie_key,
|
|
'L'), NULL)
|
|
locatie_kindplaatsen_tot,
|
|
COALESCE(FLX.getflex ('ALG',
|
|
1160,
|
|
l.alg_locatie_key,
|
|
'L'), NULL)
|
|
locatie_kindplaatsen_lrk,
|
|
COALESCE(FLX.getflex ('ALG',
|
|
1120,
|
|
l.alg_locatie_key,
|
|
'L'), NULL)
|
|
locatie_m2_update -- laatste update_datum uit exportfunctie
|
|
FROM alg_ruimte r,
|
|
alg_verdieping v,
|
|
alg_gebouw g,
|
|
alg_locatie l
|
|
WHERE r.alg_verdieping_key = v.alg_verdieping_key
|
|
AND v.alg_gebouw_key = g.alg_gebouw_key
|
|
AND g.alg_locatie_key = l.alg_locatie_key
|
|
AND l.alg_locatie_verwijder IS NULL AND g.alg_gebouw_verwijder IS NULL AND v.alg_verdieping_verwijder IS NULL AND r.alg_ruimte_verwijder IS NULL
|
|
AND (
|
|
l.alg_locatie_vervaldatum IS NULL
|
|
OR
|
|
l.alg_locatie_vervaldatum > TRUNC(SYSDATE)
|
|
)
|
|
AND (
|
|
g.alg_gebouw_vervaldatum IS NULL
|
|
OR
|
|
g.alg_gebouw_vervaldatum > TRUNC(SYSDATE)
|
|
)
|
|
GROUP BY l.alg_locatie_key ;
|
|
|
|
v_errormsg VARCHAR2 (1000);
|
|
v_errorhint VARCHAR2 (1000);
|
|
oracle_err_mes VARCHAR2 (200);
|
|
oracle_err_num NUMBER;
|
|
currentversion fac_module.fac_module_version%TYPE;
|
|
v_aanduiding VARCHAR2 (1000);
|
|
v_count NUMBER;
|
|
|
|
v_locatie_m2_netto_totaal NUMBER;
|
|
v_locatie_m2_lrk NUMBER;
|
|
v_locatie_kindplaatsen_tot NUMBER;
|
|
v_locatie_kindplaatsen_lrk NUMBER;
|
|
v_datum_export DATE;
|
|
v_mutatiedatum NUMBER(1) := 0 ; -- false
|
|
|
|
BEGIN
|
|
v_count := 0;
|
|
v_datum_export := SYSDATE;
|
|
|
|
FOR rec IN c
|
|
LOOP
|
|
BEGIN
|
|
|
|
-- vullen variabelen
|
|
v_aanduiding := 'Updaten m2/kindplaatsen bij locatie_key : ' || rec.alg_locatie_key ;
|
|
v_locatie_m2_netto_totaal := 0 ;
|
|
v_locatie_m2_lrk := 0 ;
|
|
v_locatie_kindplaatsen_tot := 0 ;
|
|
v_locatie_kindplaatsen_lrk := 0 ;
|
|
|
|
-- per locatie kijken wat de totalen nu zijn...
|
|
SELECT sum(v.ruimte_m2_netto), sum(v.ruimte_m2_netto_lrk), FLOOR(sum(v.ruimte_kindplaatsen_tot)), FLOOR(sum(v.ruimte_kindplaatsen_lrk))
|
|
INTO v_locatie_m2_netto_totaal, v_locatie_m2_lrk, v_locatie_kindplaatsen_tot, v_locatie_kindplaatsen_lrk
|
|
FROM skhf_v_locatie_m2 v
|
|
WHERE v.alg_locatie_key = rec.alg_locatie_key
|
|
GROUP BY v.alg_locatie_key ;
|
|
|
|
-- updaten locatiekaart als aantallen verschillen met huidige waarden
|
|
IF COALESCE(rec.locatie_m2_netto_totaal, 0) <> v_locatie_m2_netto_totaal
|
|
THEN
|
|
|
|
v_errorhint := 'bijwerken kenmerkveld locatie_M2_netto_totaal' ;
|
|
alg.upsertkenmerk (1121, rec.alg_locatie_key, v_locatie_M2_netto_totaal);
|
|
|
|
BEGIN fac.trackaction('ALGLUP', rec.alg_locatie_key, 3, NULL, 'Uit auto-export: M2 totaal (netto) ' || TO_CHAR(COALESCE(rec.locatie_m2_netto_totaal, 0)) || ' --> ' || TO_CHAR(v_locatie_M2_netto_totaal)); END;
|
|
|
|
v_mutatiedatum := 1 ;
|
|
|
|
END IF;
|
|
|
|
IF COALESCE(rec.locatie_m2_lrk, 0) <> v_locatie_m2_lrk
|
|
THEN
|
|
|
|
v_errorhint := 'bijwerken kenmerkveld locatie_M2_LRK' ;
|
|
alg.upsertkenmerk (1120, rec.alg_locatie_key, v_locatie_M2_LRK);
|
|
|
|
BEGIN fac.trackaction('ALGLUP', rec.alg_locatie_key, 3, NULL, 'Uit auto-export: M2 LRK ' || TO_CHAR(COALESCE(rec.locatie_m2_lrk, 0)) || ' --> ' || TO_CHAR(v_locatie_M2_lrk)); END;
|
|
|
|
v_mutatiedatum := 1 ;
|
|
|
|
END IF;
|
|
|
|
IF COALESCE(rec.locatie_kindplaatsen_tot, 0) <> v_locatie_kindplaatsen_tot
|
|
THEN
|
|
|
|
v_errorhint := 'bijwerken kenmerkveld locatie_kindplaatsen_tot' ;
|
|
alg.upsertkenmerk (1140, rec.alg_locatie_key, v_locatie_kindplaatsen_tot);
|
|
|
|
BEGIN fac.trackaction('ALGLUP', rec.alg_locatie_key, 3, NULL, 'Uit auto-export: Kindplaatsen TOT ' || TO_CHAR(COALESCE(rec.locatie_kindplaatsen_tot, 0)) || ' --> ' || TO_CHAR(v_locatie_kindplaatsen_tot)); END;
|
|
|
|
v_mutatiedatum := 1 ;
|
|
|
|
END IF;
|
|
|
|
IF COALESCE(rec.locatie_kindplaatsen_lrk, 0) <> v_locatie_kindplaatsen_lrk
|
|
THEN
|
|
|
|
v_errorhint := 'bijwerken kenmerkveld locatie_kindplaatsen_lrk' ;
|
|
alg.upsertkenmerk (1160, rec.alg_locatie_key, v_locatie_kindplaatsen_lrk);
|
|
|
|
BEGIN fac.trackaction('ALGLUP', rec.alg_locatie_key, 3, NULL, 'Uit auto-export: Kindplaatsen LRK ' || TO_CHAR(COALESCE(rec.locatie_kindplaatsen_lrk, 0)) || ' --> ' || TO_CHAR(v_locatie_kindplaatsen_lrk)); END;
|
|
|
|
v_mutatiedatum := 1 ;
|
|
|
|
END IF;
|
|
|
|
IF v_mutatiedatum = 1
|
|
THEN
|
|
|
|
-- datum in locatiekaart zetten wanneer deze voor het laatste automatisch is geupdate
|
|
v_errorhint := 'bijwerken kenmerkveld locatie_m2_update' ;
|
|
alg.upsertkenmerk (1180, rec.alg_locatie_key, v_datum_export);
|
|
|
|
END IF;
|
|
|
|
END;
|
|
END LOOP;
|
|
|
|
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.writelog (p_applname,
|
|
'E',
|
|
v_errormsg,
|
|
v_aanduiding || ' - HINT: ' || v_errorhint);
|
|
|
|
END;
|
|
/
|
|
|
|
|
|
-------------------------------
|
|
--- NOTI-JOBS ---------------
|
|
-------------------------------
|
|
|
|
|
|
|
|
-------------------------------
|
|
--- RAPPORTAGES ---------------
|
|
-------------------------------
|
|
|
|
-- Rapportage beheer simkaarten en mobiel
|
|
CREATE OR REPLACE VIEW skhf_v_it_simkaarten_man
|
|
(
|
|
MOBIEL_NUMMER,
|
|
SIMKAART_NUMMER,
|
|
PUK_CODE,
|
|
STATUS,
|
|
ICT_OBJECT,
|
|
ICT_OBJECT_VERVALDATUM,
|
|
GEKOPPELD_AAN_TYPE,
|
|
GEKOPPELD_AAN,
|
|
NR_INS_DEEL_KEY,
|
|
OBJ_INS_DEEL_KEY
|
|
)
|
|
AS
|
|
SELECT nr.ins_deel_upper,
|
|
flx.getflex ('INS', 21, nr.ins_deel_key) simkaart_nummer,
|
|
flx.getflex ('INS', 25, nr.ins_deel_key) puk_code,
|
|
CASE
|
|
WHEN d.ins_deel_upper IS NOT NULL THEN 'Gekoppeld'
|
|
ELSE 'Vrij'
|
|
END status,
|
|
d.ins_deel_upper,
|
|
d.ins_deel_vervaldatum,
|
|
d.gekoppeld_aan_type,
|
|
d.gekoppeld_aan,
|
|
nr.ins_deel_key,
|
|
d.ins_deel_key
|
|
FROM (SELECT v.ins_deel_key, v.ins_deel_upper
|
|
FROM ins_v_deel_gegevens v, ins_deel d
|
|
WHERE v.ins_discipline_key = 82 -- IT-Intern
|
|
AND v.ins_srtdeel_key = 21 -- SIM-kaarten
|
|
AND v.ins_deel_key = d.ins_deel_key
|
|
AND d.ins_deel_verwijder IS NULL
|
|
AND ( d.ins_deel_vervaldatum IS NULL
|
|
OR TRUNC (d.ins_deel_vervaldatum) > TRUNC (SYSDATE))) nr,
|
|
(SELECT d.ins_deel_key,
|
|
d.ins_deel_upper,
|
|
kw.ins_kenmerkdeel_waarde,
|
|
num.ins_deel_upper
|
|
nummer_gekoppeld,
|
|
DECODE (d.ins_alg_ruimte_type,
|
|
'R', 'Locatie',
|
|
'A', 'Afdeling',
|
|
'P', 'Persoon/Teamaccount',
|
|
'') gekoppeld_aan_type,
|
|
v.alg_plaatsaanduiding,
|
|
d.ins_deel_vervaldatum,
|
|
DECODE (d.ins_alg_ruimte_type,
|
|
'R', l.alg_locatie_omschrijving,
|
|
v.alg_plaatsaanduiding) gekoppeld_aan
|
|
FROM ins_deel d,
|
|
ins_kenmerkdeel kw,
|
|
ins_kenmerk k,
|
|
ins_deel num,
|
|
ins_v_deel_gegevens v,
|
|
alg_locatie l
|
|
WHERE d.ins_deel_key = kw.ins_deel_key
|
|
AND kw.ins_kenmerk_key = k.ins_kenmerk_key
|
|
AND k.ins_srtkenmerk_key = 61 -- SIM_kaart gekoppeld bij Mobiel
|
|
AND kw.ins_kenmerkdeel_verwijder IS NULL
|
|
AND kw.ins_kenmerkdeel_verwijder IS NULL
|
|
AND fac.safe_to_number (kw.ins_kenmerkdeel_waarde) =
|
|
num.ins_deel_key
|
|
AND d.ins_deel_key = v.ins_deel_key
|
|
AND d.ins_alg_locatie_key = l.alg_locatie_key(+)
|
|
) d
|
|
WHERE
|
|
nr.ins_deel_upper = d.nummer_gekoppeld(+) ;
|
|
|
|
CREATE OR REPLACE VIEW skhf_v_rap_opdrachten
|
|
(
|
|
INTERN,
|
|
TYPE,
|
|
MLD_OPDR_KEY,
|
|
MLD_UITVOERENDE_KEY,
|
|
OPDRACHTNR,
|
|
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,
|
|
UREN_BESTEED,
|
|
AFMELD_DATUM,
|
|
OPDRACHT_TYPE,
|
|
TD_NAAM,
|
|
PRIORITEIT,
|
|
STATUS_KALENDER -- t.b.v. kalenderweergave
|
|
)
|
|
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,
|
|
l.alg_locatie_plaats,
|
|
l.alg_locatie_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 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 = 78) -- 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,
|
|
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
|
|
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 || ' - ' || 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 = 1 -- keuzelijst eigen tabel Prioriteit
|
|
AND ko.mld_kenmerk_key = 6 -- 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 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(+);
|
|
|
|
CREATE OR REPLACE VIEW skhf_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 skhf_v_rap_opdrachten
|
|
ORDER BY geplande_aanvang_b ;
|
|
|
|
-------------------------------
|
|
--- DAILY SKHF ---------------
|
|
-------------------------------
|
|
|
|
CREATE OR REPLACE PROCEDURE skhf_daily
|
|
AS
|
|
v_errormsg VARCHAR2 (1000);
|
|
oracle_err_num NUMBER;
|
|
oracle_err_mes VARCHAR2 (200);
|
|
BEGIN
|
|
|
|
-- exportfunctie om de m2 en kindplekken op locatiekaart bij te werken
|
|
skhf_select_locatie_m2 ('LOCATIE_M2', SYSDATE);
|
|
|
|
END skhf_daily;
|
|
/
|
|
|
|
|
|
|
|
------ 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
|