SKHF#84951 -- Vervolgactie consultdag: Locatiekaarten vullen voor M2 / Aantal Kindplekken

svn path=/Customer/trunk/; revision=66118
This commit is contained in:
Jos Migo
2024-09-04 05:34:40 +00:00
parent 669286a8af
commit 0eb6999a04

View File

@@ -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 ------