FSN#24920: RES: res.set_delen_clean en schoonmaaktijden, gaat dat goed?
svn path=/Database/trunk/; revision=16209
This commit is contained in:
@@ -34,9 +34,9 @@ CREATE OR REPLACE PACKAGE BODY res
|
||||
AS
|
||||
FUNCTION res_copy_deelres (prsv_ruimte_key IN NUMBER, newdate IN DATE, puserkey NUMBER) RETURN NUMBER
|
||||
AS
|
||||
nextvolg res_rsv_ruimte.res_rsv_ruimte_volgnr%TYPE;
|
||||
nextkey res_rsv_ruimte.res_rsv_ruimte_key%TYPE;
|
||||
destatus res_rsv_ruimte.res_status_bo_key%TYPE;
|
||||
nextvolg res_rsv_ruimte.res_rsv_ruimte_volgnr%TYPE;
|
||||
nextkey res_rsv_ruimte.res_rsv_ruimte_key%TYPE;
|
||||
destatus res_rsv_ruimte.res_status_bo_key%TYPE;
|
||||
BEGIN
|
||||
SELECT res_s_res_rsv_ruimte_key.NEXTVAL INTO nextkey FROM DUAL;
|
||||
SELECT MAX (a.res_rsv_ruimte_volgnr) + 1, MAX(a.res_status_bo_key)
|
||||
@@ -518,8 +518,8 @@ AS
|
||||
-- Mag dit res_deel in deze alg_ruimte_key gereserveerd worden
|
||||
FUNCTION res_deel_in_scope (pres_deel_key IN NUMBER, palg_ruimte_key IN NUMBER)
|
||||
RETURN BOOLEAN IS
|
||||
result BOOLEAN;
|
||||
n_inscope INTEGER;
|
||||
result BOOLEAN;
|
||||
n_inscope INTEGER;
|
||||
BEGIN
|
||||
DBMS_OUTPUT.put_line ('res_deel_in_scope(' || pres_deel_key || ',' || palg_ruimte_key || ')');
|
||||
SELECT COUNT (d.ins_deel_key)
|
||||
@@ -560,17 +560,17 @@ AS
|
||||
-- of door out-of-scope geraakt
|
||||
PROCEDURE set_deel_dirty (prsv_deel_key IN NUMBER)
|
||||
AS
|
||||
n_overlap NUMBER (10);
|
||||
preposttime NUMBER(5,4); -- we gaan nog delen door 24, res_disc_params.res_disc_params_preposttime%TYPE is dan te klein;
|
||||
lres_deel_key res_rsv_deel.res_deel_key%TYPE;
|
||||
lrsv_ruimte_key res_rsv_deel.res_rsv_ruimte_key%TYPE;
|
||||
lrsv_deel_key res_rsv_deel.res_rsv_deel_key%TYPE;
|
||||
lrsv_deel_van res_rsv_deel.res_rsv_deel_van%TYPE;
|
||||
lrsv_deel_tot res_rsv_deel.res_rsv_deel_tot%TYPE;
|
||||
lres_rsv_deel_verwijder res_rsv_deel.res_rsv_deel_verwijder%TYPE;
|
||||
newdirtlevel res_rsv_deel.res_rsv_deel_dirtlevel%TYPE;
|
||||
lruimtevan res_rsv_ruimte.res_rsv_ruimte_van%TYPE;
|
||||
lruimtetot res_rsv_ruimte.res_rsv_ruimte_tot%TYPE;
|
||||
n_overlap NUMBER (10);
|
||||
preposttime NUMBER(5,4); -- we gaan nog delen door 24, res_disc_params.res_disc_params_preposttime%TYPE is dan te klein;
|
||||
lres_deel_key res_rsv_deel.res_deel_key%TYPE;
|
||||
lrsv_ruimte_key res_rsv_deel.res_rsv_ruimte_key%TYPE;
|
||||
lrsv_deel_key res_rsv_deel.res_rsv_deel_key%TYPE;
|
||||
lrsv_deel_van res_rsv_deel.res_rsv_deel_van%TYPE;
|
||||
lrsv_deel_tot res_rsv_deel.res_rsv_deel_tot%TYPE;
|
||||
lres_rsv_deel_verwijder res_rsv_deel.res_rsv_deel_verwijder%TYPE;
|
||||
newdirtlevel res_rsv_deel.res_rsv_deel_dirtlevel%TYPE;
|
||||
lruimtevan res_rsv_ruimte.res_rsv_ruimte_van%TYPE;
|
||||
lruimtetot res_rsv_ruimte.res_rsv_ruimte_tot%TYPE;
|
||||
BEGIN
|
||||
BEGIN
|
||||
SELECT d.res_deel_key,
|
||||
@@ -580,7 +580,7 @@ AS
|
||||
res_rsv_deel_tot,
|
||||
r.res_rsv_ruimte_van,
|
||||
r.res_rsv_ruimte_tot,
|
||||
lres_rsv_deel_verwijder,
|
||||
res_rsv_deel_verwijder,
|
||||
res_disc_params_preposttime / 24
|
||||
INTO lres_deel_key,lrsv_ruimte_key,lrsv_deel_key,lrsv_deel_van,lrsv_deel_tot,
|
||||
lruimtevan,lruimtetot,lres_rsv_deel_verwijder,
|
||||
@@ -631,14 +631,28 @@ AS
|
||||
-- checkdate is op zich redundant maar heel goed voor de performance
|
||||
PROCEDURE set_delen_clean (pdeel_key IN NUMBER, checkdate_van IN DATE, checkdate_tot IN DATE)
|
||||
AS
|
||||
preposttime NUMBER(5,4); -- we gaan nog delen door 24, res_disc_params.res_disc_params_preposttime%TYPE is dan te klein;
|
||||
BEGIN
|
||||
BEGIN
|
||||
SELECT res_disc_params_preposttime / 24
|
||||
INTO preposttime
|
||||
FROM res_deel rd,
|
||||
res_disc_params dp
|
||||
WHERE rd.res_deel_key = pdeel_key
|
||||
AND rd.res_discipline_key = dp.res_ins_discipline_key;
|
||||
END;
|
||||
-- 1 Minuut marge voor afrondfouten
|
||||
IF preposttime > 1/24/60 THEN
|
||||
preposttime := preposttime - 1/24/60;
|
||||
END IF;
|
||||
|
||||
FOR prsv_deel
|
||||
IN (SELECT res_rsv_deel_key
|
||||
FROM res_rsv_deel
|
||||
WHERE res_deel_key = pdeel_key
|
||||
AND res_rsv_deel_dirtlevel <> 0
|
||||
AND res_rsv_deel_van <= checkdate_tot
|
||||
AND res_rsv_deel_tot >= checkdate_van)
|
||||
WHERE res_deel_key = pdeel_key
|
||||
AND res_rsv_deel_dirtlevel <> 0
|
||||
AND res_rsv_deel_van < checkdate_tot + preposttime
|
||||
AND res_rsv_deel_tot > checkdate_van - preposttime)
|
||||
loop
|
||||
set_deel_dirty (prsv_deel.res_rsv_deel_key);
|
||||
-- TODO: Alle ruimtes met Dirty-bitje bekijken
|
||||
@@ -647,8 +661,8 @@ AS
|
||||
-- Mag dit res_dartikel in deze alg_ruimte_key gereserveerd worden
|
||||
FUNCTION res_artikel_in_scope (pres_artikel_key IN NUMBER, palg_ruimte_key IN NUMBER)
|
||||
RETURN BOOLEAN IS
|
||||
result BOOLEAN;
|
||||
n_inscope INTEGER;
|
||||
result BOOLEAN;
|
||||
n_inscope INTEGER;
|
||||
BEGIN
|
||||
DBMS_OUTPUT.put_line ('res_artikel_in_scope(' || pres_artikel_key || ',' || palg_ruimte_key || ')');
|
||||
SELECT COUNT ( * )
|
||||
@@ -690,7 +704,7 @@ AS
|
||||
WHERE res_rsv_artikel_key = prsv_artikel_key
|
||||
FOR UPDATE OF res_rsv_artikel_dirtlevel;
|
||||
prsv_artikel prsv_artikelcur%ROWTYPE;
|
||||
newdirtlevel res_rsv_artikel.res_rsv_artikel_dirtlevel%TYPE;
|
||||
newdirtlevel res_rsv_artikel.res_rsv_artikel_dirtlevel%TYPE;
|
||||
BEGIN
|
||||
OPEN prsv_artikelcur;
|
||||
FETCH prsv_artikelcur INTO prsv_artikel;
|
||||
@@ -723,8 +737,8 @@ AS
|
||||
FROM res_rsv_artikel rra
|
||||
WHERE rra.res_rsv_ruimte_key = prsv_ruimte_key;
|
||||
prsv_artikel prsv_artikelcur%ROWTYPE;
|
||||
newvan res_rsv_ruimte.res_rsv_ruimte_van%TYPE;
|
||||
newtot res_rsv_ruimte.res_rsv_ruimte_tot%TYPE;
|
||||
newvan res_rsv_ruimte.res_rsv_ruimte_van%TYPE;
|
||||
newtot res_rsv_ruimte.res_rsv_ruimte_tot%TYPE;
|
||||
BEGIN
|
||||
SELECT res_rsv_ruimte_van, res_rsv_ruimte_tot
|
||||
INTO newvan,newtot
|
||||
@@ -751,8 +765,8 @@ AS
|
||||
-- niet de parkeerplaatsen, dat doet de afspraak
|
||||
PROCEDURE follow_deel (prsv_ruimte_key IN NUMBER, oldvan IN DATE, oldtot IN DATE)
|
||||
AS
|
||||
newvan res_rsv_ruimte.res_rsv_ruimte_van%TYPE;
|
||||
newtot res_rsv_ruimte.res_rsv_ruimte_tot%TYPE;
|
||||
newvan res_rsv_ruimte.res_rsv_ruimte_van%TYPE;
|
||||
newtot res_rsv_ruimte.res_rsv_ruimte_tot%TYPE;
|
||||
CURSOR prsv_deelcur
|
||||
IS
|
||||
SELECT *
|
||||
|
||||
Reference in New Issue
Block a user