Merge DB46c changes
svn path=/Database/trunk/; revision=62465
This commit is contained in:
430
CTR/CTR_VIE.SRC
430
CTR/CTR_VIE.SRC
@@ -76,169 +76,276 @@ AS
|
||||
vervaldatum,
|
||||
ins_deelsrtcontrole_key)
|
||||
AS
|
||||
( -- 1a) Eerste deel bepaald de laatste inspectie (geplande(0), gestarte(2), afgemeld(5) of verwerkt(6)).
|
||||
SELECT di.deel_key ins_deel_key,
|
||||
xcp.ins_srtcontrole_key,
|
||||
di.ins_deelsrtcontrole_datum,
|
||||
xcp.ins_srtcontrole_eenheid,
|
||||
xcp.ins_srtcontrole_periode,
|
||||
COALESCE(di.ins_deelsrtcontrole_plandatum,
|
||||
CASE
|
||||
WHEN di.ins_deelsrtcontrole_status IN (2, 3)
|
||||
AND di.ins_deelsrtcontrole_datum_org IS NULL
|
||||
THEN -- Gestart(2) en de allereerste inspectie (ins_deelsrtcontrole_datum_org is NULL).
|
||||
-- Periodieke taken:
|
||||
-- De startdatum is MAX(startdatum, aanmaakdatum/registratiedatum) en heeft altijd een waarde (ins_deel_aanmaak is altijd gevuld).
|
||||
-- Er is nog geen inspectie geweest en de startdatum is ingevuld of de registratiedatum ligt in de toekomst.
|
||||
-- Er geldt dan het volgende:
|
||||
-- Voor Controle(1): Eerste inspectie tonen op MAX(startdatum, registratiedatum) van het object.
|
||||
-- Voor Vervanging(2) of Certificering(3):
|
||||
-- a) Als de startdatum het verst ligt: Eerste inspectie tonen op de startdatum.
|
||||
-- b) Als registratiedatum het verst in de toekomst ligt: Eerste inspectie tonen op 1 periode verder dan de registratiedatum.
|
||||
-- De aanmaakdatum/Registratiedatum is altijd ingevuld en als er al een inspectie is geweest,
|
||||
-- zijn de startdatum en registratiedatum niet meer van belang.
|
||||
CASE
|
||||
-- Er geldt dat (ctr_ismjob = 0), dus de eerste when is toch niet geldig.
|
||||
--WHEN di.ctr_ismjob = 1
|
||||
--THEN
|
||||
-- ins_deelsrtcontrole_freezedate
|
||||
WHEN xcp.ctr_controle_type = 1
|
||||
THEN -- Controle(1).
|
||||
(SELECT *
|
||||
FROM (
|
||||
-- 1a) Dit deel bepaald de laatste inspectie (geplande(0), gestarte(2), afgemeld(5) of verwerkt(6)),
|
||||
-- inclusief de allereerste inspectie die nog niet gereed gemeld is.
|
||||
SELECT di.deel_key ins_deel_key,
|
||||
xcp.ins_srtcontrole_key,
|
||||
di.ins_deelsrtcontrole_datum,
|
||||
xcp.ins_srtcontrole_eenheid,
|
||||
xcp.ins_srtcontrole_periode,
|
||||
COALESCE(di.ins_deelsrtcontrole_plandatum,
|
||||
CASE
|
||||
WHEN xcp.ins_srtcontroledl_xcp_startdat IS NOT NULL
|
||||
AND xcp.ins_srtcontroledl_xcp_startdat >= xcp.ins_deel_aanmaak
|
||||
THEN
|
||||
xcp.ins_srtcontroledl_xcp_startdat
|
||||
ELSE
|
||||
xcp.ins_deel_aanmaak
|
||||
END
|
||||
ELSE -- Vervanging(2), Certificering(3).
|
||||
CASE
|
||||
WHEN xcp.ins_srtcontroledl_xcp_startdat IS NOT NULL
|
||||
AND xcp.ins_srtcontroledl_xcp_startdat >= xcp.ins_deel_aanmaak
|
||||
THEN
|
||||
xcp.ins_srtcontroledl_xcp_startdat
|
||||
ELSE
|
||||
fac.nextcyclusdate(
|
||||
-- er is nog geen inspectie geweest, dus de laatste inspectie is null
|
||||
COALESCE(
|
||||
NULL,
|
||||
GREATEST(
|
||||
COALESCE(xcp.ins_srtcontroledl_xcp_startdat,
|
||||
xcp.ins_deel_aanmaak),
|
||||
COALESCE(xcp.ins_deel_aanmaak,
|
||||
xcp.ins_srtcontroledl_xcp_startdat))),
|
||||
xcp.ins_srtcontrole_mode,
|
||||
xcp.ins_srtcontrole_eenheid,
|
||||
xcp.ins_srtcontrole_periode,
|
||||
xcp.ins_srtcontrole_bits,
|
||||
1, -- steps. De eerste inspectie is nog niet geweest dus 1 periode verder dan startdatum/aanmaakdatum.
|
||||
0) -- Er geldt dat (ctr_ismjob = 0)
|
||||
END
|
||||
END
|
||||
WHEN di.ins_deelsrtcontrole_status IN (2, 3)
|
||||
AND di.ins_deelsrtcontrole_datum_org IS NOT NULL
|
||||
THEN -- Gestart(2) en niet de allereerste inspectie.
|
||||
di.ins_deelsrtcontrole_datum_org
|
||||
ELSE -- Status is Gereed gemeld(5) of Voltooid(6).
|
||||
CASE xcp.ins_srtcontrole_mode
|
||||
WHEN 0
|
||||
THEN -- Moment mode: ga uit van de originele berekende inspectiedatum.
|
||||
di.ins_deelsrtcontrole_datum_org
|
||||
ELSE -- Interval mode: ga uit van de werkelijke inspectiedatum.
|
||||
di.ins_deelsrtcontrole_datum
|
||||
END
|
||||
END) volgendedatum,
|
||||
discipline,
|
||||
soort,
|
||||
groep,
|
||||
soortcode,
|
||||
omschrijving,
|
||||
opmerking,
|
||||
locatie_omschrijving,
|
||||
gebouw,
|
||||
ruimtenr,
|
||||
aantal,
|
||||
srtcontrole_omschrijving,
|
||||
ctr_discipline_omschrijving taaksoort,
|
||||
ins_deelsrtcontrole_datum_org,
|
||||
controlemode_omschrijving,
|
||||
ins_deelsrtcontrole_opmerking,
|
||||
perslid,
|
||||
ins_deelsrtcontrole_plandatum,
|
||||
di.ins_deelsrtcontrole_status,
|
||||
COALESCE(
|
||||
(SELECT icm.ins_controlemode_success
|
||||
FROM ins_controlemode icm
|
||||
WHERE icm.ins_controlemode_key =
|
||||
(SELECT di2.ins_controlemode_key
|
||||
FROM ins_deelsrtcontrole di2
|
||||
WHERE di2.ins_deelsrtcontrole_key = di.ins_deelsrtcontrole_key)),
|
||||
-1) ins_controlemode_success,
|
||||
CASE di.ins_deelsrtcontrole_status
|
||||
WHEN 0
|
||||
THEN
|
||||
lcl.L('lcl_ins_controle_pending')
|
||||
WHEN 2
|
||||
THEN
|
||||
lcl.L('lcl_ins_controle_gestart')
|
||||
WHEN 3
|
||||
THEN
|
||||
lcl.L('lcl_ins_controle_ter_uitvoer')
|
||||
WHEN 5
|
||||
THEN
|
||||
CASE
|
||||
WHEN ((SELECT icm.ins_controlemode_success
|
||||
FROM ins_controlemode icm
|
||||
WHERE icm.ins_controlemode_key =
|
||||
(SELECT di2.ins_controlemode_key
|
||||
FROM ins_deelsrtcontrole di2
|
||||
WHERE di2.ins_deelsrtcontrole_key = di.ins_deelsrtcontrole_key)) =
|
||||
1)
|
||||
THEN
|
||||
lcl.L('lcl_ins_controlemode_approved')
|
||||
ELSE
|
||||
lcl.L('lcl_ins_controlemode_deprecated')
|
||||
END
|
||||
WHEN 6
|
||||
THEN
|
||||
CASE
|
||||
WHEN ((SELECT icm.ins_controlemode_success
|
||||
FROM ins_controlemode icm
|
||||
WHERE icm.ins_controlemode_key =
|
||||
(SELECT ins_controlemode_key
|
||||
FROM ins_deelsrtcontrole
|
||||
WHERE ins_deelsrtcontrole_key = di.ins_deelsrtcontrole_key)) =
|
||||
1)
|
||||
THEN
|
||||
lcl.L('lcl_ins_controlemode_approved')
|
||||
ELSE
|
||||
lcl.L('lcl_ins_controlemode_deprecated')
|
||||
END
|
||||
END deelsrtcontrole_status,
|
||||
xcp.ins_srtcontrole_eind vervaldatum,
|
||||
di.ins_deelsrtcontrole_key
|
||||
FROM ins_v_udr_deelinspect di,
|
||||
ins_v_defined_inspect_xcp xcp,
|
||||
ctr_disc_params dp
|
||||
WHERE di.ins_srtcontrole_key = xcp.ins_srtcontrole_key
|
||||
AND di.deel_key = xcp.ins_deel_key
|
||||
AND xcp.ctr_discipline_key = dp.ctr_ins_discipline_key
|
||||
AND dp.ctr_disc_params_ismjob = 0
|
||||
AND xcp.ins_srtcontrole_eenheid > 2
|
||||
AND xcp.ins_scenario_key = 1
|
||||
AND xcp.ins_srtcontrole_periode > 0
|
||||
AND di.ins_deelsrtcontrole_key = (SELECT MAX(ins_deelsrtcontrole_key)
|
||||
FROM ins_deelsrtcontrole id2
|
||||
WHERE id2.ins_deel_key = di.deel_key
|
||||
AND id2.ins_srtcontrole_key = di.ins_srtcontrole_key
|
||||
AND id2.ins_scenario_key = 1)
|
||||
AND COALESCE(di.ins_deelsrtcontrole_datum,
|
||||
di.ins_deelsrtcontrole_plandatum,
|
||||
di.ins_deelsrtcontrole_datum_org)
|
||||
IS NOT NULL
|
||||
WHEN di.ins_deelsrtcontrole_status IN (2, 3)
|
||||
AND di.ins_deelsrtcontrole_datum_org IS NULL
|
||||
THEN -- Gestart(2) en de allereerste inspectie (ins_deelsrtcontrole_datum_org is NULL).
|
||||
-- Periodieke taken:
|
||||
-- De startdatum is MAX(startdatum, aanmaakdatum/registratiedatum) en heeft altijd een waarde (ins_deel_aanmaak is altijd gevuld).
|
||||
-- Er is nog geen inspectie geweest en de startdatum is ingevuld of de registratiedatum ligt in de toekomst.
|
||||
-- Er geldt dan het volgende:
|
||||
-- Voor Controle(1): Eerste inspectie tonen op MAX(startdatum, registratiedatum) van het object.
|
||||
-- Voor Vervanging(2) of Certificering(3):
|
||||
-- a) Als de startdatum het verst ligt: Eerste inspectie tonen op de startdatum.
|
||||
-- b) Als registratiedatum het verst in de toekomst ligt: Eerste inspectie tonen op 1 periode verder dan de registratiedatum.
|
||||
-- De aanmaakdatum/Registratiedatum is altijd ingevuld en als er al een inspectie is geweest,
|
||||
-- zijn de startdatum en registratiedatum niet meer van belang.
|
||||
CASE
|
||||
-- Er geldt dat (ctr_ismjob = 0), dus de eerste when is toch niet geldig.
|
||||
--WHEN di.ctr_ismjob = 1
|
||||
--THEN
|
||||
-- ins_deelsrtcontrole_freezedate
|
||||
WHEN xcp.ctr_controle_type = 1
|
||||
THEN -- Controle(1).
|
||||
CASE
|
||||
WHEN xcp.ins_srtcontroledl_xcp_startdat IS NOT NULL
|
||||
AND xcp.ins_srtcontroledl_xcp_startdat >= xcp.ins_deel_aanmaak
|
||||
THEN
|
||||
xcp.ins_srtcontroledl_xcp_startdat
|
||||
ELSE
|
||||
xcp.ins_deel_aanmaak
|
||||
END
|
||||
ELSE -- Vervanging(2), Certificering(3).
|
||||
CASE
|
||||
WHEN xcp.ins_srtcontroledl_xcp_startdat IS NOT NULL
|
||||
AND xcp.ins_srtcontroledl_xcp_startdat >= xcp.ins_deel_aanmaak
|
||||
THEN
|
||||
xcp.ins_srtcontroledl_xcp_startdat
|
||||
ELSE
|
||||
fac.nextcyclusdate(
|
||||
-- er is nog geen inspectie geweest, dus de laatste inspectie is null
|
||||
COALESCE(
|
||||
NULL,
|
||||
GREATEST(
|
||||
COALESCE(xcp.ins_srtcontroledl_xcp_startdat,
|
||||
xcp.ins_deel_aanmaak),
|
||||
COALESCE(xcp.ins_deel_aanmaak,
|
||||
xcp.ins_srtcontroledl_xcp_startdat))),
|
||||
xcp.ins_srtcontrole_mode,
|
||||
xcp.ins_srtcontrole_eenheid,
|
||||
xcp.ins_srtcontrole_periode,
|
||||
xcp.ins_srtcontrole_bits,
|
||||
1, -- steps. De eerste inspectie is nog niet geweest dus 1 periode verder dan startdatum/aanmaakdatum.
|
||||
0) -- Er geldt dat (ctr_ismjob = 0)
|
||||
END
|
||||
END
|
||||
WHEN di.ins_deelsrtcontrole_status IN (2, 3)
|
||||
AND di.ins_deelsrtcontrole_datum_org IS NOT NULL
|
||||
THEN -- Gestart(2) en niet de allereerste inspectie.
|
||||
di.ins_deelsrtcontrole_datum_org
|
||||
ELSE -- Status is Gereed gemeld(5) of Voltooid(6).
|
||||
CASE xcp.ins_srtcontrole_mode
|
||||
WHEN 0
|
||||
THEN -- Moment mode: ga uit van de originele berekende inspectiedatum.
|
||||
di.ins_deelsrtcontrole_datum_org
|
||||
ELSE -- Interval mode: ga uit van de werkelijke inspectiedatum.
|
||||
di.ins_deelsrtcontrole_datum
|
||||
END
|
||||
END) volgendedatum,
|
||||
discipline,
|
||||
soort,
|
||||
groep,
|
||||
soortcode,
|
||||
omschrijving,
|
||||
opmerking,
|
||||
locatie_omschrijving,
|
||||
gebouw,
|
||||
ruimtenr,
|
||||
aantal,
|
||||
srtcontrole_omschrijving,
|
||||
ctr_discipline_omschrijving taaksoort,
|
||||
ins_deelsrtcontrole_datum_org,
|
||||
controlemode_omschrijving,
|
||||
ins_deelsrtcontrole_opmerking,
|
||||
perslid,
|
||||
ins_deelsrtcontrole_plandatum,
|
||||
di.ins_deelsrtcontrole_status,
|
||||
COALESCE(
|
||||
(SELECT icm.ins_controlemode_success
|
||||
FROM ins_controlemode icm
|
||||
WHERE icm.ins_controlemode_key =
|
||||
(SELECT di2.ins_controlemode_key
|
||||
FROM ins_deelsrtcontrole di2
|
||||
WHERE di2.ins_deelsrtcontrole_key = di.ins_deelsrtcontrole_key)),
|
||||
-1) ins_controlemode_success,
|
||||
CASE di.ins_deelsrtcontrole_status
|
||||
WHEN 0
|
||||
THEN
|
||||
lcl.L('lcl_ins_controle_pending')
|
||||
WHEN 2
|
||||
THEN
|
||||
lcl.L('lcl_ins_controle_gestart')
|
||||
WHEN 3
|
||||
THEN
|
||||
lcl.L('lcl_ins_controle_ter_uitvoer')
|
||||
WHEN 5
|
||||
THEN
|
||||
CASE
|
||||
WHEN ((SELECT icm.ins_controlemode_success
|
||||
FROM ins_controlemode icm
|
||||
WHERE icm.ins_controlemode_key =
|
||||
(SELECT di2.ins_controlemode_key
|
||||
FROM ins_deelsrtcontrole di2
|
||||
WHERE di2.ins_deelsrtcontrole_key = di.ins_deelsrtcontrole_key)) =
|
||||
1)
|
||||
THEN
|
||||
lcl.L('lcl_ins_controlemode_approved')
|
||||
ELSE
|
||||
lcl.L('lcl_ins_controlemode_deprecated')
|
||||
END
|
||||
WHEN 6
|
||||
THEN
|
||||
CASE
|
||||
WHEN ((SELECT icm.ins_controlemode_success
|
||||
FROM ins_controlemode icm
|
||||
WHERE icm.ins_controlemode_key =
|
||||
(SELECT ins_controlemode_key
|
||||
FROM ins_deelsrtcontrole
|
||||
WHERE ins_deelsrtcontrole_key = di.ins_deelsrtcontrole_key)) =
|
||||
1)
|
||||
THEN
|
||||
lcl.L('lcl_ins_controlemode_approved')
|
||||
ELSE
|
||||
lcl.L('lcl_ins_controlemode_deprecated')
|
||||
END
|
||||
END deelsrtcontrole_status,
|
||||
xcp.ins_srtcontrole_eind vervaldatum,
|
||||
di.ins_deelsrtcontrole_key
|
||||
FROM ins_v_udr_deelinspect di,
|
||||
ins_v_defined_inspect_xcp xcp,
|
||||
ctr_disc_params dp
|
||||
WHERE di.ins_srtcontrole_key = xcp.ins_srtcontrole_key
|
||||
AND di.deel_key = xcp.ins_deel_key
|
||||
AND xcp.ctr_discipline_key = dp.ctr_ins_discipline_key
|
||||
AND dp.ctr_disc_params_ismjob = 0
|
||||
AND xcp.ins_srtcontrole_eenheid > 2
|
||||
AND xcp.ins_scenario_key = 1
|
||||
AND xcp.ins_srtcontrole_periode > 0
|
||||
AND di.ins_deelsrtcontrole_key = (SELECT MAX(ins_deelsrtcontrole_key)
|
||||
FROM ins_deelsrtcontrole id2
|
||||
WHERE id2.ins_deel_key = di.deel_key
|
||||
AND id2.ins_srtcontrole_key = di.ins_srtcontrole_key
|
||||
AND id2.ins_scenario_key = 1)
|
||||
UNION ALL
|
||||
-- 1b) Dit deel bepaald de allereerste inspectie van een taak die nog niet ingepland of gestart is. Er is dus nog geen ins_deelsrtcontrole record van
|
||||
SELECT d.deel_key ins_deel_key,
|
||||
xcp.ins_srtcontrole_key,
|
||||
NULL,
|
||||
xcp.ins_srtcontrole_eenheid,
|
||||
xcp.ins_srtcontrole_periode,
|
||||
-- Gestart(2) en de allereerste inspectie (ins_deelsrtcontrole_datum_org is NULL).
|
||||
-- Periodieke taken:
|
||||
-- De startdatum is MAX(startdatum, aanmaakdatum/registratiedatum) en heeft altijd een waarde (ins_deel_aanmaak is altijd gevuld).
|
||||
-- Er is nog geen inspectie geweest en de startdatum is ingevuld of de registratiedatum ligt in de toekomst.
|
||||
-- Er geldt dan het volgende:
|
||||
-- Voor Controle(1): Eerste inspectie tonen op MAX(startdatum, registratiedatum) van het object.
|
||||
-- Voor Vervanging(2) of Certificering(3):
|
||||
-- a) Als de startdatum het verst ligt: Eerste inspectie tonen op de startdatum.
|
||||
-- b) Als registratiedatum het verst in de toekomst ligt: Eerste inspectie tonen op 1 periode verder dan de registratiedatum.
|
||||
-- De aanmaakdatum/Registratiedatum is altijd ingevuld en als er al een inspectie is geweest,
|
||||
-- zijn de startdatum en registratiedatum niet meer van belang.
|
||||
CASE
|
||||
-- Er geldt dat (ctr_ismjob = 0), dus de eerste when is toch niet geldig.
|
||||
--WHEN xcp.ctr_ismjob = 1
|
||||
--THEN
|
||||
-- xcp.ins_deelsrtcontrole_freezedate
|
||||
WHEN xcp.ctr_controle_type = 1
|
||||
THEN -- Controle(1).
|
||||
CASE
|
||||
WHEN xcp.ins_srtcontroledl_xcp_startdat IS NOT NULL
|
||||
AND xcp.ins_srtcontroledl_xcp_startdat >= xcp.ins_deel_aanmaak
|
||||
THEN
|
||||
xcp.ins_srtcontroledl_xcp_startdat
|
||||
ELSE
|
||||
xcp.ins_deel_aanmaak
|
||||
END
|
||||
ELSE -- Vervanging(2), Certificering(3).
|
||||
CASE
|
||||
WHEN xcp.ins_srtcontroledl_xcp_startdat IS NOT NULL
|
||||
AND xcp.ins_srtcontroledl_xcp_startdat >= xcp.ins_deel_aanmaak
|
||||
THEN
|
||||
xcp.ins_srtcontroledl_xcp_startdat
|
||||
ELSE
|
||||
fac.nextcyclusdate(
|
||||
-- er is nog geen inspectie geweest, dus de laatste inspectie is null
|
||||
COALESCE(
|
||||
NULL,
|
||||
GREATEST(
|
||||
COALESCE(xcp.ins_srtcontroledl_xcp_startdat,
|
||||
xcp.ins_deel_aanmaak),
|
||||
COALESCE(xcp.ins_deel_aanmaak,
|
||||
xcp.ins_srtcontroledl_xcp_startdat))),
|
||||
xcp.ins_srtcontrole_mode,
|
||||
xcp.ins_srtcontrole_eenheid,
|
||||
xcp.ins_srtcontrole_periode,
|
||||
xcp.ins_srtcontrole_bits,
|
||||
1, -- steps. De eerste inspectie is nog niet geweest dus 1 periode verder dan startdatum/aanmaakdatum.
|
||||
0) -- Er geldt dat (ctr_ismjob = 0)
|
||||
END
|
||||
END
|
||||
volgendedatum,
|
||||
d.discipline,
|
||||
d.soort,
|
||||
d.groep,
|
||||
d.soortcode,
|
||||
d.omschrijving,
|
||||
d.opmerking,
|
||||
d.locatie_omschrijving,
|
||||
d.gebouw,
|
||||
d.ruimtenr,
|
||||
d.aantal,
|
||||
(SELECT isc.ins_srtcontrole_omschrijving
|
||||
FROM ins_srtcontrole isc
|
||||
WHERE isc.ins_srtcontrole_key = xcp.ins_srtcontrole_key) srtcontrole_omschrijving,
|
||||
(SELECT cd.ins_discipline_omschrijving
|
||||
FROM ctr_discipline cd,
|
||||
ins_srtcontrole isc
|
||||
WHERE isc.ins_srtcontrole_key = xcp.ins_srtcontrole_key
|
||||
AND isc.ctr_discipline_key = cd.ins_discipline_key) taaksoort,
|
||||
ins_deelsrtcontrole_datum_org,
|
||||
NULL controlemode_omschrijving,
|
||||
ins_deelsrtcontrole_opmerking,
|
||||
NULL perslid,
|
||||
ins_deelsrtcontrole_plandatum,
|
||||
-1 ins_deelsrtcontrole_status,
|
||||
-1 ins_controlemode_success,
|
||||
lcl.L('lcl_ins_controlemode_notplaned') deelsrtcontrole_status,
|
||||
xcp.ins_srtcontrole_eind vervaldatum,
|
||||
NULL ins_deelsrtcontrole_key
|
||||
FROM ins_v_udr_deel d,
|
||||
ins_deelsrtcontrole idsc,
|
||||
ins_v_defined_inspect_xcp xcp,
|
||||
ctr_disc_params dp
|
||||
WHERE xcp.ins_srtcontrole_key = idsc.ins_srtcontrole_key(+)
|
||||
AND xcp.ins_deel_key = idsc.ins_deel_key(+)
|
||||
AND xcp.ins_scenario_key = idsc.ins_scenario_key(+)
|
||||
AND xcp.ins_deel_key = d.deel_key
|
||||
AND xcp.ctr_discipline_key = dp.ctr_ins_discipline_key
|
||||
AND dp.ctr_disc_params_ismjob = 0
|
||||
AND xcp.ins_srtcontrole_eenheid > 2
|
||||
AND xcp.ins_scenario_key = 1
|
||||
AND idsc.ins_deel_key IS NULL
|
||||
AND idsc.ins_srtcontrole_key IS NULL
|
||||
AND xcp.ins_srtcontrole_periode > 0
|
||||
AND (idsc.ins_deelsrtcontrole_key IS NULL
|
||||
OR idsc.ins_deelsrtcontrole_key =
|
||||
(SELECT MAX(ins_deelsrtcontrole_key)
|
||||
FROM ins_deelsrtcontrole id2
|
||||
WHERE id2.ins_deel_key = d.deel_key
|
||||
AND id2.ins_srtcontrole_key = xcp.ins_srtcontrole_key
|
||||
AND id2.ins_scenario_key = 1)))
|
||||
UNION ALL
|
||||
-- 1b) Tweede deel bepaalt/berekent de toekomstige inspecties van dit jaar en volgend jaar.
|
||||
-- 1c) Dit deel bepaalt/berekent de toekomstige inspecties van dit jaar en volgend jaar.
|
||||
SELECT m.ins_deel_key,
|
||||
m.ins_srtcontrole_key,
|
||||
NULL ins_deelsrtcontrole_datum,
|
||||
@@ -284,6 +391,7 @@ AS
|
||||
WHERE (ig.vervaldatum IS NULL
|
||||
OR ig.vervaldatum > ig.volgendedatum)
|
||||
AND ig.volgendedatum BETWEEN TRUNC(ADD_MONTHS(SYSDATE, -12), 'YYYY') AND TRUNC(ADD_MONTHS(SYSDATE, 24), 'YYYY')
|
||||
AND TRUNC(ig.volgendedatum, 'YYYY') < TRUNC(ADD_MONTHS(SYSDATE, 24), 'YYYY') -- 1 januari in het jaar dat 2 jaar verder ligt niet meetellen.
|
||||
UNION ALL
|
||||
-- 2) Inspecties die vorig jaar en dit jaar zijn uitgevoerd, uitgezonderd de laatste.
|
||||
SELECT di.discipline,
|
||||
|
||||
@@ -46,8 +46,6 @@ AS
|
||||
WHERE res_ruimte_opstel_verwijder IS NULL) ro2
|
||||
WHERE UPPER(r.res_ruimte_extern_id) = UPPER(p_room_id)
|
||||
AND r.res_ruimte_verwijder IS NULL
|
||||
AND (r.res_ruimte_startdatum IS NULL OR r.res_ruimte_startdatum <= SYSDATE)
|
||||
AND (r.res_ruimte_vervaldatum IS NULL OR r.res_ruimte_vervaldatum > SYSDATE)
|
||||
AND ro1.res_ruimte_key(+) = r.res_ruimte_key
|
||||
AND ro2.res_ruimte_key = r.res_ruimte_key
|
||||
AND ro2.res_ruimte_opstel_key =
|
||||
|
||||
@@ -514,8 +514,9 @@ FAC_LCL('lcl_about', 'Licentieinformatie', 'License information')
|
||||
FAC_LCL('lcl_fac_usage_frame', 'Gebruik', 'Usage')
|
||||
FAC_LCL('lcl_key_users', 'Key-users', 'Key users')
|
||||
FAC_LCL('lcl_fe_users', 'Frontend-users', 'Frontend users')
|
||||
FAC_LCL('lcl_sys_users', 'System-users', 'System users')
|
||||
FAC_LCL('lcl_sys_users', 'Apparaat-users', 'Device users')
|
||||
FAC_LCL('lcl_passive_users', 'Passieve users', 'Passive users')
|
||||
FAC_LCL('lcl_api_users', 'API-users', 'API-users')
|
||||
FAC_LCL('lcl_admin_users', 'Beheer-users', 'Admin users')
|
||||
FAC_LCL('lcl_usrs_licensed', 'Aantal in licentie', 'Number licensed')
|
||||
FAC_LCL('lcl_usrs_actual', 'Aantal in gebruik', 'Number in use')
|
||||
@@ -821,7 +822,7 @@ FAC_LCL('lcl_mld_is_mldafr', 'Afmelding is definitief gemaakt', 'Closing is fina
|
||||
FAC_LCL('lcl_mld_is_mldver', 'Administratief verwerkt', 'Accounted (processed)')
|
||||
FAC_LCL('lcl_mld_is_mldrej', 'Melding is afgewezen', 'Call is rejected')
|
||||
FAC_LCL('lcl_mld_is_mldbwd', 'In behandeling bij de frontoffice', 'Assigned to front office')
|
||||
FAC_LCL('lcl_mld_is_mldnot', 'Notitie is toegevoegd', 'Note has been added')
|
||||
FAC_LCL('lcl_mld_is_mldnot', 'Notitie is genotificeerd', 'Note has been notified')
|
||||
FAC_LCL('lcl_mld_is_mlda2b', 'Actie is bij backoffice gezet', 'Action assigned to back office')
|
||||
FAC_LCL('lcl_mld_is_mlda2m', 'Actie is bij aanvrager gezet', 'Action assigned to issuer')
|
||||
FAC_LCL('lcl_mld_note_detail', 'Detailniveau', 'Detail level')
|
||||
@@ -1080,6 +1081,7 @@ FAC_LCL('lcl_ord_is_ordook', 'Offerte geaccepteerd', 'Offer accepted')
|
||||
FAC_LCL('lcl_ord_is_ordono', 'Offerte afgewezen', 'Offer rejected')
|
||||
FAC_LCL('lcl_ord_is_orda2b', 'Actie is bij backoffice gezet', 'Action assigned to back office')
|
||||
FAC_LCL('lcl_ord_is_orda2u', 'Actie is bij uitvoerder gezet', 'Action assigned to contractor')
|
||||
FAC_LCL('lcl_ord_is_ordnob', 'Notitie is genotificeerd', 'Note has been notified')
|
||||
FAC_LCL('lcl_ord_is_updatedbysoap', 'Opdracht is gewijzigd door extern systeem', 'Order has been updated by an external system')
|
||||
FAC_LCL('lcl_ord_is_upd_material', 'Opdrachtregel {0} is aangepast.', 'Order line {0} is adjusted.')
|
||||
FAC_LCL('lcl_ord_notification_sent_to', 'Notificatie ''{0}'' verstuurd aan {1}', 'Notification ''{0}'' sent to {1}')
|
||||
@@ -1374,6 +1376,7 @@ FAC_LCL('lcl_mjb_status_mjob', 'Taakfilter', 'Task filter')
|
||||
FAC_LCL('lcl_mjb_overruled_xcp', 'Aangepast', 'Overruled')
|
||||
FAC_LCL('lcl_mjb_moved', 'Verschoven', 'Moved')
|
||||
FAC_LCL('lcl_mjb_started', 'Geaccordeerd', 'Approved')
|
||||
FAC_LCL('lcl_mjb_started_in_execution', 'Geaccordeerd + Ter uitvoering', 'Approved + In execution')
|
||||
FAC_LCL('lcl_mjb_notstarted', 'Niet geaccordeerd', 'Unapproved')
|
||||
FAC_LCL('lcl_mjb_year', 'Jaar', 'Year')
|
||||
FAC_LCL('lcl_mjb_years', 'Jaar(tal)', 'Year')
|
||||
@@ -1487,6 +1490,9 @@ FAC_LCL('lcl_order_description', 'Opdracht', 'Order')
|
||||
FAC_LCL('lcl_orders_title', 'Opdrachtenbeheer', 'Order management')
|
||||
FAC_LCL('lcl_contract', 'Contract', 'Contract')
|
||||
FAC_LCL('lcl_edit', 'Details', 'Details')
|
||||
FAC_LCL('lcl_schedule', 'Plannen', 'Schedule')
|
||||
FAC_LCL('lcl_schedule_start', 'Plannen begin', 'Schedule start')
|
||||
FAC_LCL('lcl_schedule_end', 'Plannen eind', 'Schedule end')
|
||||
FAC_LCL('lcl_reject', 'Afwijzen', 'Reject')
|
||||
FAC_LCL('lcl_forward', 'Doorsturen', 'Forward')
|
||||
FAC_LCL('lcl_forwarded', 'De melding is doorgestuurd.', 'The call has been forwarded')
|
||||
@@ -4951,6 +4957,9 @@ FAC_LCL('lcl_mld_opdr_regvalidate', 'De opdracht wordt ter goedkeuring aangebode
|
||||
FAC_LCL('lcl_mld_opdr_offerte_accept', 'Accepteren offerte ', 'Accept offer ')
|
||||
FAC_LCL('lcl_mld_opdr_close', 'Opdracht(en) afmelden', 'Close order(s)')
|
||||
FAC_LCL('lcl_mld_opdr_cancel', 'Opdracht annuleren', 'Cancel order')
|
||||
FAC_LCL('lcl_mld_opdr_edit_plandate', 'Geplande aanvang wijzigen', 'Edit planned date')
|
||||
FAC_LCL('lcl_mld_opdr_edit_plandate2', 'Einddatum wijzigen', 'Edit end date')
|
||||
FAC_LCL('lcl_mld_opdr_no_date_change', 'U heeft geen andere datum gekozen', 'You have not chosen a different date')
|
||||
FAC_LCL('lcl_mld_opdr_finish_1', 'Wilt u opdracht ', 'Do you want to close order ')
|
||||
FAC_LCL('lcl_mld_opdr_finish_2', ' qua kosten gereedmelden?', ' financially?')
|
||||
FAC_LCL('lcl_mld_opdr_cancelled_1', 'Opdracht ', 'Order ')
|
||||
@@ -5408,6 +5417,7 @@ FAC_LCL('lcl_shared_othertabactive', 'Sla eerst de wijzigingen op (of annuleer z
|
||||
FAC_LCL('lcl_shared_use_caller_werkplek', 'Werkplekgegevens van de beller invullen?', 'Enter workplace details of the caller?')
|
||||
FAC_LCL('lcl_shared_no_auth', 'Op grond van de u toegekende rechten heeft u hiervoor geen bevoegdheid.'||CHR(10)||CHR(10)||'Als u van mening bent dat dat niet terecht is kunt u het beste contact opnemen met uw Facilitor contactpersoon.', 'You are not authorised for this function'||CHR(10)||CHR(10)||'Please contact your Facilitor contact if you think you should be able to access to this function.')
|
||||
FAC_LCL('lcl_shared_no_action', 'Deze actie kan niet worden uitgevoerd, bijvoorbeeld omdat de actie al eerder werd uitgevoerd of omdat u niet voldoende rechten heeft.', 'The action you specified cannot be performed (any longer).'||CHR(10)||'This usually is because the action has already been executed.'||CHR(10)||'Sometimes this is because you do not have sufficient authorisation.')
|
||||
FAC_LCL('lcl_shared_old_freeze', 'Deze actie kan niet worden uitgevoerd, omdat er in {0} nog een onafgeronde taak is.', 'The action you specified cannot be performed, because there is still an unfinished task in {0}.')
|
||||
FAC_LCL('lcl_shared_needed_info', 'Benodigde gegevens', 'Required details')
|
||||
FAC_LCL('lcl_shared_send_email', 'Stuur via e-mail', 'Send via e-mail')
|
||||
FAC_LCL('lcl_shared_order', 'Opdracht', 'Order')
|
||||
|
||||
@@ -2133,7 +2133,7 @@ CREATE OR REPLACE PACKAGE BODY fac AS
|
||||
pbedrijfadreskey NUMBER DEFAULT NULL, pqueue VARCHAR2 DEFAULT 'DEFAULT',
|
||||
pgeturl VARCHAR2 DEFAULT NULL)
|
||||
AS
|
||||
lemail prs_perslid.prs_perslid_email%TYPE;
|
||||
lemail fac_notificatie.fac_notificatie_receiver_email%TYPE;
|
||||
lphone prs_perslid.prs_perslid_mobiel%TYPE;
|
||||
llang prs_perslid.prs_perslid_lang%TYPE;
|
||||
lsysteem prs_perslid.prs_perslid_systeemadres%TYPE;
|
||||
@@ -3746,7 +3746,7 @@ CREATE OR REPLACE PACKAGE BODY fac AS
|
||||
lworkflowstep_key mld_melding.mld_workflowstep_key%TYPE;
|
||||
lstart_key mld_melding.mld_melding_start_key%TYPE;
|
||||
luitvtype mld_v_uitvoerende.TYPE%TYPE;
|
||||
lemail prs_bedrijf.prs_bedrijf_email%TYPE;
|
||||
lemail fac_notificatie.fac_notificatie_receiver_email%TYPE;
|
||||
lemail3 alg_gebouw.alg_gebouw_email%TYPE;
|
||||
lphone prs_bedrijf.prs_bedrijf_telefoon2%TYPE;
|
||||
lreskey res_rsv_ruimte.res_reservering_key%TYPE;
|
||||
|
||||
@@ -407,7 +407,6 @@ CREATE OR REPLACE PACKAGE BODY ano AS
|
||||
SET mld_melding_omschrijving = CASE WHEN mld_melding_omschrijving IS NOT NULL THEN lcl.l('lcl_fac_anonymized') END
|
||||
, mld_melding_opmerking = CASE WHEN mld_melding_opmerking IS NOT NULL THEN lcl.l('lcl_fac_anonymized') END
|
||||
, mld_melding_document = CASE WHEN mld_melding_document IS NOT NULL THEN lcl.l('lcl_fac_anonymized') END
|
||||
, mld_melding_externnr = CASE WHEN mld_melding_externnr IS NOT NULL THEN lcl.l('lcl_fac_anonymized') END
|
||||
, mld_melding_satisfaction_op = CASE WHEN mld_melding_satisfaction_op IS NOT NULL THEN lcl.l('lcl_fac_anonymized') END
|
||||
, mld_melding_naam_ext = CASE WHEN mld_melding_naam_ext IS NOT NULL THEN lcl.l('lcl_fac_anonymized') END
|
||||
, mld_melding_email_ext = CASE WHEN mld_melding_email_ext IS NOT NULL THEN lcl.l('lcl_fac_anonymized') END
|
||||
@@ -467,7 +466,6 @@ CREATE OR REPLACE PACKAGE BODY ano AS
|
||||
, mld_opdr_contactpersoon = CASE WHEN mld_opdr_contactpersoon IS NOT NULL THEN lcl.l('lcl_fac_anonymized') END
|
||||
, mld_opdr_opmerking_fiat = CASE WHEN mld_opdr_opmerking_fiat IS NOT NULL THEN lcl.l('lcl_fac_anonymized') END
|
||||
, mld_opdr_opmerking = CASE WHEN mld_opdr_opmerking IS NOT NULL THEN lcl.l('lcl_fac_anonymized') END
|
||||
, mld_opdr_externnr = CASE WHEN mld_opdr_externnr IS NOT NULL THEN lcl.l('lcl_fac_anonymized') END
|
||||
WHERE mld_opdr_key = rec_o.mld_opdr_key;
|
||||
|
||||
-- Anonimiseren van tekstvelden in opdrachtregels van de melding.
|
||||
@@ -478,7 +476,6 @@ CREATE OR REPLACE PACKAGE BODY ano AS
|
||||
, mld_opdr_materiaal_extra2 = CASE WHEN mld_opdr_materiaal_extra2 IS NOT NULL THEN lcl.l('lcl_fac_anonymized') END
|
||||
, mld_opdr_materiaal_extra3 = CASE WHEN mld_opdr_materiaal_extra3 IS NOT NULL THEN lcl.l('lcl_fac_anonymized') END
|
||||
, mld_opdr_materiaal_extra4 = CASE WHEN mld_opdr_materiaal_extra4 IS NOT NULL THEN lcl.l('lcl_fac_anonymized') END
|
||||
, mld_opdr_materiaal_externnr = CASE WHEN mld_opdr_materiaal_extra4 IS NOT NULL THEN lcl.l('lcl_fac_anonymized') END
|
||||
WHERE mld_opdr_key = rec_o.mld_opdr_key;
|
||||
END IF;
|
||||
|
||||
|
||||
@@ -60,6 +60,11 @@ BEGIN
|
||||
|
||||
rec_count := rec_count + 1;
|
||||
|
||||
FOR f IN 1 .. a_fields.COUNT
|
||||
LOOP
|
||||
a_fields (f) := NULL;
|
||||
END LOOP;
|
||||
|
||||
FOR f IN 1 .. 100
|
||||
LOOP
|
||||
IF (rec_count = 1) -- eerste (header) regel bepaalt het aantal kolommen
|
||||
|
||||
@@ -684,6 +684,7 @@ DEFINE_SETTING('MLD', 0001, 'WEB_PRSSYS', 'mld_uren_weeks_back'
|
||||
DEFINE_SETTING('MLD', 0000, 'WEB_PRSSYS', 'mld_use_department' , 'number' , '0' , 'MLD also registers a department. You can see MLD of your department scope and below (0=don''t use | 1=use)')
|
||||
DEFINE_SETTING('MLD', 0001, 'WEB_PRSSYS', 'mld_use_order_approval' , 'number' , '0' , 'Approval mechanism is used for mld orders (0=disabled | 1=enabled)')
|
||||
DEFINE_SETTING('MLD', 0001, 'WEB_PRSSYS', 'mld_use_plandate2' , 'number' , '0' , '*Allow use of planned end date {0=no | 1=only show in list | 2=yes, but don''t show in list | 3=yes and show in list}')
|
||||
DEFINE_SETTING('MLD', 0001, 'WEB_PRSSYS', 'mld_ord_edit_plandates' , 'number' , '1' , 'Edit plandates { 1=in order (default), 2=with buttons, 3=both }')
|
||||
DEFINE_SETTING('MLD', 0001, 'WEB_PRSSYS', 'mld_workflow_set_defaults' , 'number' , '0' , 'Set defaults for flexkenmerken if they weren''t set by the predecessor (0=do not set | 1=set defaults)')
|
||||
DEFINE_SETTING('MLD', 0001, 'WEB_PRSSYS', 'mld_workflowstep_in_xml' , 'number' , '0' , 'Include all data of all other workflowsteps in XML for prints of a call from a workflow (0=no | 1=yes)')
|
||||
DEFINE_SETTING('MLD', 0001, 'WEB_PRSSYS', 'nightly_mld2bo_emailaddress' , 'string' , '' , 'Notification email address outside office hours')
|
||||
|
||||
@@ -342,6 +342,7 @@ CREATE_TRIGGER(fac_t_fac_notificatie_B_I)
|
||||
DECLARE
|
||||
loms web_user_messages.web_user_mess_dsc%TYPE;
|
||||
lxmlnode fac_srtnotificatie.fac_srtnotificatie_xmlnode%TYPE;
|
||||
lparamkey web_user_messages.web_user_mess_action_params%TYPE;
|
||||
BEGIN
|
||||
-- Kopieer direct naar statusinformatie op de portal indien van toepassing
|
||||
-- Daarbij worden alle oude berichten (eerst) verwijderd
|
||||
@@ -363,6 +364,13 @@ BEGIN
|
||||
FROM fac_srtnotificatie
|
||||
WHERE fac_srtnotificatie_key = :NEW.fac_srtnotificatie_key;
|
||||
|
||||
IF lxmlnode IN ('melding', 'opdracht')
|
||||
THEN
|
||||
lparamkey := :new.fac_notificatie_refkey; -- de optionele tracking-key is geen goede
|
||||
ELSE
|
||||
lparamkey := COALESCE (:new.fac_notificatie_extrakey, :new.fac_notificatie_refkey);
|
||||
END IF;
|
||||
|
||||
DELETE FROM web_user_messages
|
||||
WHERE fac_srtnotificatie_key IN
|
||||
(SELECT fac_srtnotificatie_key
|
||||
@@ -377,7 +385,7 @@ BEGIN
|
||||
web_user_mess_action_params, fac_srtnotificatie_key, web_user_mess_prioriteit
|
||||
)
|
||||
VALUES (:NEW.prs_perslid_key_sender, :NEW.prs_perslid_key_receiver, loms, 1,
|
||||
COALESCE (:NEW.fac_notificatie_extrakey, :NEW.fac_notificatie_refkey), :NEW.fac_srtnotificatie_key,
|
||||
lparamkey, :NEW.fac_srtnotificatie_key,
|
||||
:NEW.fac_notificatie_prioriteit
|
||||
);
|
||||
|
||||
|
||||
@@ -1136,6 +1136,28 @@ AS
|
||||
fac.safe_to_number (fac.getsetting ('xd_primary_bedrijfkey'))) b
|
||||
ON x.prs_perslid_key = b.prs_perslid_key;
|
||||
|
||||
-- Dit gaan we hanteren om API-users te tellen (zijn dan geen normale keyusers meer)
|
||||
CREATE_VIEW (fac_v_lcrap_apiusers, 0)
|
||||
AS
|
||||
SELECT apiuser, apinaam, LISTAGG (module, ', ') modules
|
||||
FROM ( SELECT prs_perslid_oslogin apiuser, prs_perslid_naam apinaam, fac_functie_module module
|
||||
FROM ( SELECT gg.prs_perslid_key, g.fac_functie_key, g.ins_discipline_key
|
||||
FROM fac_groeprechten g, fac_gebruikersgroep gg, fac_groep fg
|
||||
WHERE g.fac_groep_key = gg.fac_groep_key
|
||||
AND gg.fac_groep_key = fg.fac_groep_key
|
||||
AND fac_groep_upper <> '_DEFAULT'
|
||||
GROUP BY gg.prs_perslid_key, g.fac_functie_key, g.ins_discipline_key) w,
|
||||
fac_functie f,
|
||||
prs_perslid p
|
||||
WHERE w.fac_functie_key = f.fac_functie_key
|
||||
AND p.prs_perslid_key = w.prs_perslid_key
|
||||
AND prs_perslid_apikey IS NOT NULL
|
||||
AND BITAND (prs_perslid_flags, 36) = 0 --AND prs_perslid_oslogin NOT IN ('_HMAIL', '_PUTORDERS', 'SENSORS')
|
||||
AND prs_perslid_verwijder IS NULL
|
||||
GROUP BY prs_perslid_oslogin, prs_perslid_naam, fac_functie_module)
|
||||
GROUP BY apiuser, apinaam
|
||||
ORDER BY 1;
|
||||
|
||||
-- totaliseer data uit bovenstaande view tot in principe 1 samenvattingsregel
|
||||
-- (voor crossdomain (xd) fe-users bestaat geen definitie)
|
||||
-- personen zonder rechten worden als passive_user toegevoegd
|
||||
|
||||
@@ -8,6 +8,7 @@ START_LOCALEITEMS('INS_DISCIPLINE_KEY')
|
||||
DEFINE_LOCALEITEM(lcl_bld_terra)
|
||||
DEFINE_LOCALEITEM(lcl_deel_state)
|
||||
DEFINE_LOCALEITEM(lcl_discipline)
|
||||
DEFINE_LOCALEITEM(lcl_select_discipline)
|
||||
DEFINE_LOCALEITEM(lcl_estate_locatie_man_descr)
|
||||
DEFINE_LOCALEITEM(lcl_fg_gotofgheader)
|
||||
DEFINE_LOCALEITEM(lcl_floor)
|
||||
@@ -29,12 +30,14 @@ DEFINE_LOCALEITEM(lcl_obj_bind_r)
|
||||
DEFINE_LOCALEITEM(lcl_obj_geoxcoord)
|
||||
DEFINE_LOCALEITEM(lcl_obj_geoycoord)
|
||||
DEFINE_LOCALEITEM(lcl_obj_group)
|
||||
DEFINE_LOCALEITEM(lcl_select_srtgroep)
|
||||
DEFINE_LOCALEITEM(lcl_obj_identification)
|
||||
DEFINE_LOCALEITEM(lcl_obj_owner)
|
||||
DEFINE_LOCALEITEM(lcl_obj_photo)
|
||||
DEFINE_LOCALEITEM(lcl_obj_position)
|
||||
DEFINE_LOCALEITEM(lcl_obj_reserveerbaar)
|
||||
DEFINE_LOCALEITEM(lcl_obj_sort)
|
||||
DEFINE_LOCALEITEM(lcl_select_srtdeel)
|
||||
DEFINE_LOCALEITEM(lcl_obj_uitleensrtdeel)
|
||||
DEFINE_LOCALEITEM(lcl_owner_info)
|
||||
DEFINE_LOCALEITEM(lcl_prs_address_bezoek_adres)
|
||||
|
||||
@@ -8,6 +8,7 @@ CREATE OR REPLACE PACKAGE ins AS
|
||||
FUNCTION delete_deelkoppeling( DeelKey IN NUMBER ) RETURN BOOLEAN;
|
||||
FUNCTION get_description(pentityname IN VARCHAR2, pparentkey IN NUMBER, pprefix IN VARCHAR2) RETURN VARCHAR2;
|
||||
FUNCTION nextdescription(pprefix IN VARCHAR2, pparentkey IN NUMBER, pseparator IN VARCHAR2 DEFAULT 'default') RETURN VARCHAR2;
|
||||
PROCEDURE copyInsKenmerken(pdeel_key IN NUMBER, ptosrtdeel_key IN NUMBER);
|
||||
PROCEDURE altersrtdeel(pdeel_key IN NUMBER, ptosrtdeel_key IN NUMBER);
|
||||
FUNCTION sprintf (ps IN varchar2, pins_deel_key IN number) RETURN varchar2;
|
||||
FUNCTION contrsprintf (ps IN varchar2, pins_deelsrtcontr_key IN NUMBER) RETURN varchar2;
|
||||
@@ -101,6 +102,81 @@ CREATE OR REPLACE PACKAGE BODY ins AS
|
||||
RETURN returnstring;
|
||||
END;
|
||||
|
||||
PROCEDURE copyInsKenmerken(pdeel_key IN NUMBER, ptosrtdeel_key IN NUMBER)
|
||||
AS
|
||||
CURSOR c_kenmerkdeel (pdeel_key IN NUMBER, ptosrtdeel_key IN NUMBER)
|
||||
IS
|
||||
SELECT kd1.ins_kenmerkdeel_key, k2.ins_kenmerk_key
|
||||
FROM ins_kenmerk k1,
|
||||
ins_kenmerk k2,
|
||||
ins_kenmerkdeel kd1,
|
||||
ins_srtdeel sd2,
|
||||
ins_srtgroep sg2,
|
||||
ins_srtkenmerk sk
|
||||
WHERE k1.ins_srtkenmerk_key = k2.ins_srtkenmerk_key
|
||||
AND k1.ins_kenmerk_key <> k2.ins_kenmerk_key
|
||||
AND sk.ins_srtkenmerk_key = k1.ins_srtkenmerk_key
|
||||
AND COALESCE (k1.ins_kenmerk_omschrijving,
|
||||
sk.ins_srtkenmerk_omschrijving) =
|
||||
COALESCE (k2.ins_kenmerk_omschrijving,
|
||||
sk.ins_srtkenmerk_omschrijving)
|
||||
AND sd2.ins_srtgroep_key = sg2.ins_srtgroep_key
|
||||
AND k1.ins_kenmerk_niveau = k2.ins_kenmerk_niveau
|
||||
AND k1.ins_kenmerk_niveau <> 'C'
|
||||
AND kd1.ins_kenmerk_key = k1.ins_kenmerk_key
|
||||
AND k2.ins_srtinstallatie_key =
|
||||
(CASE
|
||||
WHEN k2.ins_kenmerk_niveau = 'D' THEN sg2.ins_discipline_key
|
||||
WHEN k2.ins_kenmerk_niveau = 'G' THEN sg2.ins_srtgroep_key
|
||||
WHEN k2.ins_kenmerk_niveau = 'S' THEN sd2.ins_srtdeel_key
|
||||
END)
|
||||
AND kd1.ins_deel_key = pdeel_key
|
||||
AND sd2.ins_srtdeel_key = ptosrtdeel_key;
|
||||
|
||||
CURSOR c_facbijlagen (pdeel_key IN NUMBER, ptosrtdeel_key IN NUMBER)
|
||||
IS
|
||||
SELECT fb1.fac_bijlagen_key, k2.ins_kenmerk_key
|
||||
FROM ins_kenmerk k1,
|
||||
ins_kenmerk k2,
|
||||
fac_bijlagen fb1,
|
||||
ins_srtdeel sd2,
|
||||
ins_srtgroep sg2,
|
||||
ins_srtkenmerk sk
|
||||
WHERE k1.ins_srtkenmerk_key = k2.ins_srtkenmerk_key
|
||||
AND k1.ins_kenmerk_key <> k2.ins_kenmerk_key
|
||||
AND sk.ins_srtkenmerk_key = k1.ins_srtkenmerk_key
|
||||
AND COALESCE (k1.ins_kenmerk_omschrijving,
|
||||
sk.ins_srtkenmerk_omschrijving) =
|
||||
COALESCE (k2.ins_kenmerk_omschrijving,
|
||||
sk.ins_srtkenmerk_omschrijving)
|
||||
AND sd2.ins_srtgroep_key = sg2.ins_srtgroep_key
|
||||
AND k1.ins_kenmerk_niveau = k2.ins_kenmerk_niveau
|
||||
AND k1.ins_kenmerk_niveau <> 'C'
|
||||
AND fb1.fac_bijlagen_kenmerk_key = k1.ins_kenmerk_key
|
||||
AND k2.ins_srtinstallatie_key =
|
||||
(CASE
|
||||
WHEN k2.ins_kenmerk_niveau = 'D' THEN sg2.ins_discipline_key
|
||||
WHEN k2.ins_kenmerk_niveau = 'G' THEN sg2.ins_srtgroep_key
|
||||
WHEN k2.ins_kenmerk_niveau = 'S' THEN sd2.ins_srtdeel_key
|
||||
END)
|
||||
AND fb1.fac_bijlagen_refkey = pdeel_key
|
||||
AND sd2.ins_srtdeel_key = ptosrtdeel_key;
|
||||
BEGIN
|
||||
FOR kd_upd IN c_kenmerkdeel (pdeel_key, ptosrtdeel_key)
|
||||
LOOP
|
||||
UPDATE ins_kenmerkdeel
|
||||
SET ins_kenmerk_key = kd_upd.ins_kenmerk_key
|
||||
WHERE ins_kenmerkdeel_key = kd_upd.ins_kenmerkdeel_key;
|
||||
END LOOP;
|
||||
|
||||
FOR fb_upd IN c_facbijlagen (pdeel_key, ptosrtdeel_key)
|
||||
LOOP
|
||||
UPDATE fac_bijlagen
|
||||
SET fac_bijlagen_kenmerk_key = fb_upd.ins_kenmerk_key
|
||||
WHERE fac_bijlagen_key = fb_upd.fac_bijlagen_key;
|
||||
END LOOP;
|
||||
END;
|
||||
|
||||
-- omkatten van het objectsoort van een object. Controleert wat technische voorwaarden qua binding
|
||||
-- maar kijkt niet naar bv autorisaties. Trackt alleen als er ook echt iets verandert
|
||||
PROCEDURE altersrtdeel(pdeel_key IN NUMBER, ptosrtdeel_key IN NUMBER)
|
||||
@@ -140,10 +216,10 @@ CREATE OR REPLACE PACKAGE BODY ins AS
|
||||
|
||||
-- de redundante ins_deel.ins_discipline_key wordt door de trigger bijgewerkt
|
||||
|
||||
copyInsKenmerken(pdeel_key, ptosrtdeel_key);
|
||||
|
||||
-- het is nu mogelijk dat er kenmerken (ins_kenmerkdeel) zijn die qua definitie niet horen
|
||||
-- tot de kenmerken van de nieuwe soort. Ik vind dat niet erg. Het maximale wat we zouden
|
||||
-- kunnen doen is immers kenmerken weggooien, we kunnen niet aanpassen of bijverzinnen
|
||||
-- vooralsnog kunnen we dat nog laten, bij editen komt dit goed.
|
||||
-- tot de kenmerken van de nieuwe soort. Ik vind dat niet erg.
|
||||
|
||||
-- de tracking zou discipline/srtgroep/srtdeel -> discipline/srtgroep/srtdeel kunnen zijn
|
||||
-- voor de volledigheid, maar daar mag iemand om gaan vragen, zo essentieel is dat niet
|
||||
|
||||
@@ -337,6 +337,19 @@ BEGIN
|
||||
END;
|
||||
/
|
||||
|
||||
-- vul de sensorwaarde datumtijd (alleen) als die met een mutatie van de waarde niet werd meegegeven
|
||||
CREATE_TRIGGER(ins_t_ins_deel_b_u)
|
||||
BEFORE UPDATE
|
||||
ON ins_deel
|
||||
FOR EACH ROW
|
||||
BEGIN
|
||||
IF UPDATING ('ins_deel_state') AND NOT UPDATING ('ins_deel_statedate')
|
||||
THEN
|
||||
:new.ins_deel_statedate := SYSDATE;
|
||||
END IF;
|
||||
END;
|
||||
/
|
||||
|
||||
CREATE_TRIGGER(ins_t_ins_deel_A_U)
|
||||
AFTER UPDATE
|
||||
ON ins_deel
|
||||
|
||||
@@ -2241,7 +2241,7 @@ CREATE OR REPLACE PACKAGE BODY mld AS
|
||||
END IF;
|
||||
|
||||
-- ook standaardondersteuning voor p.alg_gebouw_key, p.alg_verdieping_key, p.alg_ruimte_key en p.alg_terreinsector_key in de conditie
|
||||
l_sql := 'select 1 from mld_melding, alg_v_onroerendgoed p where mld_melding.mld_alg_onroerendgoed_keys = p.alg_onroerendgoed_keys(+) AND mld_melding_key = :mld_key AND ' || p_where;
|
||||
l_sql := 'select 1 from mld_melding, alg_v_onroerendgoed p where mld_melding.mld_alg_onroerendgoed_keys = p.alg_onroerendgoed_keys(+) AND mld_melding_key = :mld_key AND (' || p_where ||')';
|
||||
DBMS_OUTPUT.put_line (l_sql);
|
||||
DBMS_SQL.parse (l_cursor, l_sql, DBMS_SQL.native);
|
||||
DBMS_SQL.bind_variable (l_cursor, ':mld_key', p_mld_key);
|
||||
|
||||
Reference in New Issue
Block a user