SKHF#84951 -- Vervolgactie consultdag: Locatiekaarten vullen voor M2 / Aantal Kindplekken
svn path=/Customer/trunk/; revision=66118
This commit is contained in:
263
SKHF/skhf.sql
263
SKHF/skhf.sql
@@ -149,6 +149,251 @@ WHERE v.ins_discipline_key = 82 -- IT-Intern
|
||||
--- 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 ---------------
|
||||
@@ -451,6 +696,24 @@ SELECT mld_uitvoerende_key,
|
||||
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 ------
|
||||
|
||||
|
||||
Reference in New Issue
Block a user