FSN#24677 Dirty berekening met schoonmaak weer correcter
svn path=/Database/trunk/; revision=15764
This commit is contained in:
@@ -341,7 +341,7 @@ AS
|
|||||||
-- of schoon worden
|
-- of schoon worden
|
||||||
PROCEDURE set_ruimte_dirty (prsv_ruimte_key IN NUMBER)
|
PROCEDURE set_ruimte_dirty (prsv_ruimte_key IN NUMBER)
|
||||||
AS
|
AS
|
||||||
preposttime res_disc_params.res_disc_params_preposttime%TYPE;
|
preposttime NUMBER(5,4); -- we gaan nog delen door 24, res_disc_params.res_disc_params_preposttime%TYPE is dan te klein;
|
||||||
my_res_ruimte_key res_ruimte.res_ruimte_key%TYPE;
|
my_res_ruimte_key res_ruimte.res_ruimte_key%TYPE;
|
||||||
n_overlap NUMBER (10);
|
n_overlap NUMBER (10);
|
||||||
CURSOR prsv_ruimtecur
|
CURSOR prsv_ruimtecur
|
||||||
@@ -386,20 +386,27 @@ AS
|
|||||||
THEN
|
THEN
|
||||||
preposttime := 0;
|
preposttime := 0;
|
||||||
END IF;
|
END IF;
|
||||||
|
-- 1 Minuut marge voor afrondfouten
|
||||||
|
IF preposttime > 1/24/60 THEN
|
||||||
|
preposttime := preposttime - 1/24/60;
|
||||||
|
END IF;
|
||||||
-- Oke, hoeveel overlappende alg_ruimte hebben we nu
|
-- Oke, hoeveel overlappende alg_ruimte hebben we nu
|
||||||
SELECT COUNT (DISTINCT rb.res_ruimte_key)
|
SELECT COUNT (DISTINCT rb.res_ruimte_key)
|
||||||
INTO n_overlap
|
INTO n_overlap
|
||||||
FROM res_alg_ruimte rb, -- ikzelf
|
FROM res_alg_ruimte rb, -- ikzelf
|
||||||
res_v_rsv_ruimte_2_alg_ruimte rr -- de andere
|
res_v_rsv_ruimte_2_alg_ruimte rr -- de andere
|
||||||
WHERE rr.alg_ruimte_key = rb.alg_ruimte_key AND rb.res_ruimte_key = my_res_ruimte_key
|
WHERE rr.alg_ruimte_key = rb.alg_ruimte_key AND rb.res_ruimte_key = my_res_ruimte_key
|
||||||
-- Redundant maar z??r goed voor performance
|
-- Redundant maar z<EFBFBD><EFBFBD>r goed voor performance
|
||||||
-- VOORKENNIS: Geen meerdaagse reserveringen
|
-- ONGETEST/komt niet voor maar: meerdaagse reserveringen zou zo maar goed kunnen gaan
|
||||||
AND rb.res_alg_ruimte_verwijder IS NULL
|
AND rb.res_alg_ruimte_verwijder IS NULL
|
||||||
AND rr.res_rsv_ruimte_van BETWEEN TRUNC (prsv_ruimte.res_rsv_ruimte_van)
|
AND rr.res_rsv_ruimte_van BETWEEN TRUNC (prsv_ruimte.res_rsv_ruimte_van)
|
||||||
AND prsv_ruimte.res_rsv_ruimte_tot
|
AND TRUNC (prsv_ruimte.res_rsv_ruimte_tot)+1
|
||||||
-- Er is overlap als
|
-- Er is overlap als
|
||||||
-- A) de andere ruimte begint voor ons einde
|
-- A) de andere ruimte begint voor ons einde
|
||||||
-- B) en eindigt na ons begin
|
-- B) en eindigt na ons begin
|
||||||
|
-- Let op: bij Blokkade(3) van de ander rekenen we geen schoonmaaktijd.
|
||||||
|
-- Dat gebeurt ietwat getruct door te tegen-corrigeren, vandaar
|
||||||
|
-- de rr.res_rsv_ruimte_van PLUS preposttime
|
||||||
AND CASE rr.res_status_fo_key
|
AND CASE rr.res_status_fo_key
|
||||||
WHEN 3 THEN rr.res_rsv_ruimte_van + preposttime
|
WHEN 3 THEN rr.res_rsv_ruimte_van + preposttime
|
||||||
ELSE rr.res_rsv_ruimte_van
|
ELSE rr.res_rsv_ruimte_van
|
||||||
|
|||||||
Reference in New Issue
Block a user